<?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>209292</bug_id>
          
          <creation_ts>2020-03-19 10:17:45 -0700</creation_ts>
          <short_desc>CSS hover and &quot;pointer: fine&quot; media queries do not evaluate to true with iOS 13.4 mouse support</short_desc>
          <delta_ts>2021-05-11 13:49:16 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>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=212580</see_also>
    
    <see_also>https://bugs.webkit.org/show_bug.cgi?id=217413</see_also>
    
    <see_also>https://bugs.webkit.org/show_bug.cgi?id=225672</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar, WebExposed</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>224529</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Devon Govett">govett</reporter>
          <assigned_to name="Devin Rousso">hi</assigned_to>
          <cc>annulen</cc>
    
    <cc>bdakin</cc>
    
    <cc>cdumez</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>graouts</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>hi</cc>
    
    <cc>japhet</cc>
    
    <cc>jer.noble</cc>
    
    <cc>koivisto</cc>
    
    <cc>macpherson</cc>
    
    <cc>megan_gardner</cc>
    
    <cc>menard</cc>
    
    <cc>mjs</cc>
    
    <cc>philipj</cc>
    
    <cc>redux</cc>
    
    <cc>ryuan.choi</cc>
    
    <cc>sam</cc>
    
    <cc>sergio</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>thorton</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>wenson_hsieh</cc>
    
    <cc>wilander</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1631716</commentid>
    <comment_count>0</comment_count>
    <who name="Devon Govett">govett</who>
    <bug_when>2020-03-19 10:17:45 -0700</bug_when>
    <thetext>In the iOS 13.4 beta, which supports external mouse/trackpad support, several media queries are not working properly. See linked examples on MDN for reproduction.

* `@media (hover: hover)` - https://developer.mozilla.org/en-US/docs/Web/CSS/@media/hover
* `@media (any-hover: hover)` - https://developer.mozilla.org/en-US/docs/Web/CSS/@media/any-hover
* `@media (pointer: fine)` - https://developer.mozilla.org/en-US/docs/Web/CSS/@media/any-pointer
* `@media (any-pointer: fine)` - https://developer.mozilla.org/en-US/docs/Web/CSS/@media/any-pointer

I would expect that when a mouse is connected, the `hover` media query would activate while the user is using the mouse as their primary input mechanism. This would enable hover effects to be disabled while using touch, but enabled when using a mouse pointer. I believe this should change dynamically when the user switches interaction modes. The `any-hover` media query should activate while a mouse is connected at all, even when touch is the primary input mechanism.

The `pointer: fine` media query should activate while the user is using the mouse as their primary input mechanism. The `any-pointer: fine` media query should activate when a mouse is connected. This would enable the sizes of UI elements to adjust depending on whether they are being interacted with by touch or mouse input. It&apos;s unclear to me whether this should change dynamically while the page is loaded, e.g. if the user switches from mouse to touch, as that might cause strange UI shifts. Perhaps `pointer: fine` should never match, and `any-pointer: fine` should when a mouse is connected?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1631933</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-03-19 17:59:52 -0700</bug_when>
    <thetext>&lt;rdar://problem/60663124&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1631966</commentid>
    <comment_count>2</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2020-03-19 20:00:37 -0700</bug_when>
    <thetext>Did we #ifdef out all the hover stuff for iOS?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1631988</commentid>
    <comment_count>3</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2020-03-19 21:07:59 -0700</bug_when>
    <thetext>Hover stuff in general works (the pseudoselector, mouseover/out, etc.), but the media queries don&apos;t.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1631989</commentid>
    <comment_count>4</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2020-03-19 21:08:39 -0700</bug_when>
    <thetext>They do appear to parse, we just return the wrong value.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1632024</commentid>
    <comment_count>5</comment_count>
    <who name="Maciej Stachowiak">mjs</who>
    <bug_when>2020-03-20 01:11:51 -0700</bug_when>
    <thetext>Seems clear that `(any-hover: hover)` and `(any-pointer: fine)` should be true when a pointing device is attached. The non-any cases are less obvious (at least to me). 

On balance, I think it would be better if thoughtful sites kept their layout touch-suitable even when a pointing device is attached, which suggests those should be always false.

Media queries are in general supposed to be re-evaluated when their conditions change, so this model would suggest the `any-` versions should change when a pointing device is attached or detached.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1632140</commentid>
    <comment_count>6</comment_count>
    <who name="Devon Govett">govett</who>
    <bug_when>2020-03-20 10:00:53 -0700</bug_when>
    <thetext>&gt; On balance, I think it would be better if thoughtful sites kept their layout touch-suitable even when a pointing device is attached, which suggests those should be always false.

I would agree for (pointer: fine) (it should always be false), but for (hover: hover) it would be nice if it changed dynamically depending on what the user is using. For example, if wrapped in a hover media query, you could apply hover effects only when the user is hovering over an element with a mouse and not when using touch.

The :hover pseudo selector is sticky with touch: tap once to get the hover effect, tap again to remove it. In cases where the hover effect isn&apos;t important for touch, we can use the hover media query to enable it only for mouse input. For that reason, I think it&apos;s important that the media query match while using a mouse, and not match while using touch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1632169</commentid>
    <comment_count>7</comment_count>
    <who name="Maciej Stachowiak">mjs</who>
    <bug_when>2020-03-20 10:47:31 -0700</bug_when>
    <thetext>None of these media queries can tell you if input was actually performed with a mouse, rather than with touch. On an iPad, the best they can do is tell you that a mouse or trackpad was attached, and thus potentially could have been the source of input.

For truly optional hover effects that are desired for pointer input but not mouse, the only method I know of to do them conditionally is to build them using pointer events. You can use the `pointerenter`/`pointerleave` pair, or the `pointerover`/`pointerout` pair, and then look at the `pointerType` property. https://www.w3.org/TR/pointerevents2/#dom-pointerevent-pointertype

It would be nice if there was a way to use pure CSS to get hover that only reacts to mouse events, and not to touch event hover simulation, but I don&apos;t think there is a way.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1638753</commentid>
    <comment_count>8</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2020-04-07 13:08:01 -0700</bug_when>
    <thetext>*** Bug 210024 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1638762</commentid>
    <comment_count>9</comment_count>
    <who name="Patrick H. Lauke">redux</who>
    <bug_when>2020-04-07 13:18:53 -0700</bug_when>
    <thetext>(In reply to Maciej Stachowiak from comment #5)
&gt; Seems clear that `(any-hover: hover)` and `(any-pointer: fine)` should be
&gt; true when a pointing device is attached. The non-any cases are less obvious
&gt; (at least to me). 

to crowbar this in from my recent duplicate:

pointer/hover relate to whatever the device/browser considers to be the &quot;primary&quot; input mechanism. So it comes down to deciding if iPad should treat the mouse as primary or not (i.e. if, even with mouse/trackpad present, it should consider the touchscreen its primary)

&gt; On balance, I think it would be better if thoughtful sites kept their layout
&gt; touch-suitable even when a pointing device is attached, which suggests those
&gt; should be always false.


ideally, authors should not just take their cue about whether or not to make their content touch-suitable from `pointer:coarse` evaluating to true / `pointer:fine` evaluating to false, but from whether or not `any-pointer:coarse` is true - indicating that there is at least one coarse/touch input, be it &quot;primary&quot; or not. (I make kind of the reverse argument in some of the notes in https://www.w3.org/TR/mediaqueries-4/#any-input but the principle is the same).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1657773</commentid>
    <comment_count>10</comment_count>
    <who name="Patrick H. Lauke">redux</who>
    <bug_when>2020-05-31 06:07:25 -0700</bug_when>
    <thetext>Cross-referencing a similar/milder situation with any-pointer:fine and Pencil https://bugs.webkit.org/show_bug.cgi?id=212580</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1693571</commentid>
    <comment_count>11</comment_count>
      <attachid>410167</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2020-09-30 16:19:51 -0700</bug_when>
    <thetext>Created attachment 410167
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1693591</commentid>
    <comment_count>12</comment_count>
      <attachid>410176</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2020-09-30 17:14:49 -0700</bug_when>
    <thetext>Created attachment 410176
Patch

fix copypasta oops</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1693815</commentid>
    <comment_count>13</comment_count>
      <attachid>410251</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2020-10-01 11:47:09 -0700</bug_when>
    <thetext>Created attachment 410251
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1693822</commentid>
    <comment_count>14</comment_count>
      <attachid>410255</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2020-10-01 12:03:04 -0700</bug_when>
    <thetext>Created attachment 410255
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1693892</commentid>
    <comment_count>15</comment_count>
      <attachid>410274</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2020-10-01 15:11:58 -0700</bug_when>
    <thetext>Created attachment 410274
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1694240</commentid>
    <comment_count>16</comment_count>
      <attachid>410274</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2020-10-02 14:22:12 -0700</bug_when>
    <thetext>Comment on attachment 410274
Patch

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

&gt; Source/WebCore/css/MediaQueryEvaluator.cpp:719
&gt; +#if !(HAVE(UIKIT_WITH_MOUSE_SUPPORT) &amp;&amp; PLATFORM(MACCATALYST))

I have a crazy thought to make this whole thing less chaos: get the catalyst-always-has-a-mouse behavior out of here, replace all the &quot;HAVE(UIKIT_WITH_MOUSE_SUPPORT) &amp;&amp; PLATFORM(IOS)&quot; ifdefs elsewhere with just &quot;HAVE(UIKIT_WITH_MOUSE_SUPPORT)&quot;, and make it WebKit2&apos;s job to say (via hasMouseDevice) that catalyst has a mouse.

The way you have it now, I think, changes UIWebView behavior in macCatalyst, which is not right. Also would be easier to read, and the less #ifdefs the better.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1694245</commentid>
    <comment_count>17</comment_count>
      <attachid>410274</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2020-10-02 15:01:35 -0700</bug_when>
    <thetext>Comment on attachment 410274
Patch

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

&gt;&gt; Source/WebCore/css/MediaQueryEvaluator.cpp:719
&gt;&gt; +#if !(HAVE(UIKIT_WITH_MOUSE_SUPPORT) &amp;&amp; PLATFORM(MACCATALYST))
&gt; 
&gt; I have a crazy thought to make this whole thing less chaos: get the catalyst-always-has-a-mouse behavior out of here, replace all the &quot;HAVE(UIKIT_WITH_MOUSE_SUPPORT) &amp;&amp; PLATFORM(IOS)&quot; ifdefs elsewhere with just &quot;HAVE(UIKIT_WITH_MOUSE_SUPPORT)&quot;, and make it WebKit2&apos;s job to say (via hasMouseDevice) that catalyst has a mouse.
&gt; 
&gt; The way you have it now, I think, changes UIWebView behavior in macCatalyst, which is not right. Also would be easier to read, and the less #ifdefs the better.

As discussed offline, my goal with all these &quot;shenanigans&quot; was to try to avoid unnecessary messages and member variables where possible.  We decided to keep the existing `HAVE(UIKIT_WITH_MOUSE_SUPPORT) &amp;&amp; PLATFORM(IOS)` in the UIProcess and just change the WebProcess to have a `WebProcess::hasMouseDevice() const { return false; }` variant when `PLATFORM(MACCATALYST)`.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1694249</commentid>
    <comment_count>18</comment_count>
      <attachid>410375</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2020-10-02 15:03:56 -0700</bug_when>
    <thetext>Created attachment 410375
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1694421</commentid>
    <comment_count>19</comment_count>
      <attachid>410375</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2020-10-03 10:02:50 -0700</bug_when>
    <thetext>Comment on attachment 410375
Patch

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

&gt; Source/WebCore/css/MediaQueryEvaluator.cpp:723
&gt; +#if HAVE(UIKIT_WITH_MOUSE_SUPPORT)
&gt; +    auto* page = frame.page();
&gt; +    if (page &amp;&amp; page-&gt;chrome().client().hasMouseDevice())
&gt; +        return true;
&gt; +#endif // HAVE(UIKIT_WITH_MOUSE_SUPPORT)

I think the HAVE(UIKIT_WITH_MOUSE_SUPPORT) check would make more sense in the implementation of hasMouseDevice(). The more we reduce platform #ifdefs in core code like this the better.

&gt; Source/WebCore/page/ChromeClient.h:183
&gt; +#if HAVE(UIKIT_WITH_MOUSE_SUPPORT)
&gt; +    virtual bool hasMouseDevice() = 0;
&gt; +#endif

It seems like all platforms could implement this, so I would prefer if it were not within HAVE(UIKIT_WITH_MOUSE_SUPPORT).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1694772</commentid>
    <comment_count>20</comment_count>
      <attachid>410375</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2020-10-05 11:26:10 -0700</bug_when>
    <thetext>Comment on attachment 410375
Patch

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

&gt;&gt; Source/WebCore/css/MediaQueryEvaluator.cpp:723
&gt;&gt; +#endif // HAVE(UIKIT_WITH_MOUSE_SUPPORT)
&gt; 
&gt; I think the HAVE(UIKIT_WITH_MOUSE_SUPPORT) check would make more sense in the implementation of hasMouseDevice(). The more we reduce platform #ifdefs in core code like this the better.

I generally agree that less `#if` is better, but in this case I think the context of `HAVE(UIKIT_WITH_MOUSE_SUPPORT)` is actually somewhat desirable, as right now `hasMouseDevice` will only be `true` when a trackpad/mouse is connected to an iPad (via BackBoardServices).  Yes we could have `hasMouseDevice` be `true` in other cases too, but I think having extra logic for non-iOS is unnecessary as other ports all support (and expect) mouse devices to be connected.  Previously this was only determined by `screenHasTouchDevice()` (if supported) and otherwise assumed to have a mouse.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1694813</commentid>
    <comment_count>21</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2020-10-05 13:11:04 -0700</bug_when>
    <thetext>(In reply to Devin Rousso from comment #20)
&gt; Comment on attachment 410375 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=410375&amp;action=review
&gt; 
&gt; &gt;&gt; Source/WebCore/css/MediaQueryEvaluator.cpp:723
&gt; &gt;&gt; +#endif // HAVE(UIKIT_WITH_MOUSE_SUPPORT)
&gt; &gt; 
&gt; &gt; I think the HAVE(UIKIT_WITH_MOUSE_SUPPORT) check would make more sense in the implementation of hasMouseDevice(). The more we reduce platform #ifdefs in core code like this the better.
&gt; 
&gt; I generally agree that less `#if` is better, but in this case I think the
&gt; context of `HAVE(UIKIT_WITH_MOUSE_SUPPORT)` is actually somewhat desirable,
&gt; as right now `hasMouseDevice` will only be `true` when a trackpad/mouse is
&gt; connected to an iPad (via BackBoardServices).  Yes we could have
&gt; `hasMouseDevice` be `true` in other cases too, but I think having extra
&gt; logic for non-iOS is unnecessary as other ports all support (and expect)
&gt; mouse devices to be connected.  Previously this was only determined by
&gt; `screenHasTouchDevice()` (if supported) and otherwise assumed to have a
&gt; mouse.

WebCore should really not care or know about the platform as much as possible. Adding more specific logic about UIKit here is the wrong direction to go. Please move the #ifdefs into the implementation of the ChromeClient.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1694901</commentid>
    <comment_count>22</comment_count>
      <attachid>410375</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2020-10-05 15:33:17 -0700</bug_when>
    <thetext>Comment on attachment 410375
Patch

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

&gt;&gt;&gt;&gt; Source/WebCore/css/MediaQueryEvaluator.cpp:723
&gt;&gt;&gt;&gt; +#endif // HAVE(UIKIT_WITH_MOUSE_SUPPORT)
&gt;&gt;&gt; 
&gt;&gt;&gt; I think the HAVE(UIKIT_WITH_MOUSE_SUPPORT) check would make more sense in the implementation of hasMouseDevice(). The more we reduce platform #ifdefs in core code like this the better.
&gt;&gt; 
&gt;&gt; I generally agree that less `#if` is better, but in this case I think the context of `HAVE(UIKIT_WITH_MOUSE_SUPPORT)` is actually somewhat desirable, as right now `hasMouseDevice` will only be `true` when a trackpad/mouse is connected to an iPad (via BackBoardServices).  Yes we could have `hasMouseDevice` be `true` in other cases too, but I think having extra logic for non-iOS is unnecessary as other ports all support (and expect) mouse devices to be connected.  Previously this was only determined by `screenHasTouchDevice()` (if supported) and otherwise assumed to have a mouse.
&gt; 
&gt; WebCore should really not care or know about the platform as much as possible. Adding more specific logic about UIKit here is the wrong direction to go. Please move the #ifdefs into the implementation of the ChromeClient.

I realize that I should&apos;ve provided more info in my last comment.  I apologize for not doing so.  To be clear, I am not &quot;set in stone&quot; or anything like that about this, but I have a hard time seeing a good way forward for moving this logic to WebKit that doesn&apos;t _add_ complexity/confusion on top of what&apos;s already there.  Based on what I&apos;ve written below, if you have a good idea for how to do so I am very interested and more than happy to make a change.

This code really only exists for the purposes of one specific feature: dispatching mouse events on an iPad with a connected trackpad/mouse.  One of the concerns I had was that for WK1 catalyst, we are intentionally &quot;lying&quot; about supporting mouse devices (macOS assumes that there is always a mouse, which is perhaps a bad assumption, but is such nonetheless) because WK1 does not have support for this feature.  As such, having something general like `hasMouseDevice` seems like a bad idea (when not guarded by this `#if`) because someone in the future may use `hasMouseDevice` thinking that it would give them the right value in all situations.  This can be assuaged by having a better name (e.g. `hasMouseDeviceForDispatchingMouseEvents`), but the issue still remains.  I personally felt that wrapping the method inside an `#if` alleviated most of this concern as it made it explicitly clear that this method existed for this particular feature/support not something general/global (although to be fair one could argue that even then the concern still exists).

There&apos;s also the question of &quot;how does this interplay with `screenHasTouchDevice`?&quot; (previously, `screenHasTouchDevice` was the way that mouse/touch support was determined for these media queries (e.g. &quot;if touch events are enabled and a touch device exists, then there is no mouse&quot;)) but this is only really needed by GTK/WPE so I&apos;d likely just need to ask which `ChromeClient` to move that call into in order to make it work.  If the rest of the logic moves, however, then I think this must also move as well, because if a non-iOS `ChromeClient` say `true` then this function would return before we&apos;ve had a chance to evaluate `screenHasTouchDevice`.

Putting this on the `ChromeClient` may be slightly problematic though as I don&apos;t think it&apos;s a good idea to assume that `frame.page()` is valid, meaning that we&apos;d need some way of determining the fallback value.  Right now, `screenHasTouchDevice` takes care of that , but I&apos;d preferably not want to have to put that in more places than it already is now.  This is perhaps more of an academic concern, though, and we could just say `false` if there is no `Page`.

FWIW I think that the naming of `UIKIT_WITH_MOUSE_SUPPORT` is not entirely ideal and perhaps could&apos;ve been named differently so as to not be as platform specific.

As I mentioned, if you feel strongly about not having platform code inside WebCore then I can go figure out better names and get the answers to these questions, but I personally feel like this is doing a lot more work and headache than is really necessary for such a small and specifically &quot;targeted&quot; feature.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1694927</commentid>
    <comment_count>23</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2020-10-05 16:17:16 -0700</bug_when>
    <thetext>(In reply to Devin Rousso from comment #22)

The things you are describing here are examples of things that should be handled by the ChromeClient. The lack of page at times is endemic to WebCore, but we must utilize the chromeClient non-the-less. I also think the current behavior where ports assume there is always a mouse is not necessarily the right long term behavior, it&apos;s just the current behavior.

Let&apos;s take a step back and think about what we might want this to look like in an idealized model. There are four media queries of interest in this general area:

&quot;hover&quot; - does the *primary* pointing device support hover?
&quot;any-hover&quot; - does *any* attached pointing device support hover?
&quot;pointer&quot; - what are the pointer characteristics of the *primary* pointing device?
&quot;any-pointer&quot; - what pointer characteristics are supported by *any* pointing device? (in this one, we may want to match on more than one value). 

To answer these questions I could ask the client a few different sets of questions. The most basic would be one for each:

  bool ChromeClient::hoverSupportedByPrimaryPointingDevice() const;
  bool ChromeClient::hoverSupportedByAnyAttachedPointingDevice() const

  enum PointerCharacteristics { None, Coarse, Fine };
  
  PointerCharacteristics ChromeClient::pointerCharacteristicsOfPrimaryPointingDevice() const
  OptionSet&lt;PointerCharacteristics&gt; ChromeClient::pointerCharacteristicsOfAllAttachedPointingDevices() const

(syntax and whatnot, not necessarily correct, just there for illustrative purposes).

This is a bit verbose, but I think ok. You could probably reduce it to two, and have a struct for describing the &quot;primary pointing device&quot; and one for &quot;all attached pointing devices&quot;.


So, let&apos;s address some of your concerns.

What about ports that want to always return true even if there is no mouse attached?

I&apos;m not sure if we should, but if you want this behavior, the way I would recommend going about it would be to add something to Settings to &quot;forceMediaQueryForPointerAlwaysEvaluatesTrueEnabled&quot; (or something less verbose), and then allow that platform to enable that setting by default. Doing this as a setting allows us to test the behavior on all platforms, which is helpful since many of us don&apos;t run the tests in all configurations all the time.

What about when there is no Page?

We already bail on MediaQuery evaluation if there is no Document, no Frame or no FrameView. It seems reasonable to also bail if there is no Page. 


So, in summary, from looking more closely at the code, I think more should move in ChromeClient, not less.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1694974</commentid>
    <comment_count>24</comment_count>
    <who name="Devin Rousso">hi</who>
    <bug_when>2020-10-05 17:30:21 -0700</bug_when>
    <thetext>(In reply to Sam Weinig from comment #23)
Ah, I think I understand more clearly what you are describing.  That sounds much more reasonable than the image I had in my mind.

FWIW I phrased some of the things I said in my last response somewhat badly (which is usually why I prefer to speak in person), in that I meant them more as questions rather than statements (e.g. instead of &quot;I don&apos;t think it&apos;s a good idea to assume that `frame.page()` is valid, meaning that we&apos;d need some way of determining the fallback value&quot; I really meant something more like &quot;can I assume that `frame.page()` is valid, and if not what should the fallback be?&quot;).  Apologies for that.

I&apos;ll work on reorganizing this :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1695018</commentid>
    <comment_count>25</comment_count>
      <attachid>410607</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2020-10-05 21:13:34 -0700</bug_when>
    <thetext>Created attachment 410607
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1695061</commentid>
    <comment_count>26</comment_count>
    <who name="Patrick H. Lauke">redux</who>
    <bug_when>2020-10-06 01:17:33 -0700</bug_when>
    <thetext>(In reply to Sam Weinig from comment #23)
[...]
&gt; &quot;any-pointer&quot; - what pointer characteristics are supported by *any* pointing
&gt; device? (in this one, we may want to match on more than one value). 

Just about the parenthetical, per spec yes you would match more than one when there are 2 or more devices, and they have different pointer precision/characteristics. For touch AND mouse scenarios, both any-pointer:coarse AND any-pointer:fine should evaluate to true.

also, as an aside, work here *may* cross/synergise with https://bugs.webkit.org/show_bug.cgi?id=212580 (about possibility of detecting/exposing Pencil)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1695205</commentid>
    <comment_count>27</comment_count>
      <attachid>410655</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2020-10-06 10:30:49 -0700</bug_when>
    <thetext>Created attachment 410655
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1695213</commentid>
    <comment_count>28</comment_count>
      <attachid>410658</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2020-10-06 10:44:46 -0700</bug_when>
    <thetext>Created attachment 410658
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1695214</commentid>
    <comment_count>29</comment_count>
      <attachid>410655</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2020-10-06 10:47:11 -0700</bug_when>
    <thetext>Comment on attachment 410655
Patch

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

&gt; Source/WebCore/css/MediaQueryEvaluator.cpp:-733
&gt; -static bool anyHoverEvaluate(CSSValue* value, const CSSToLengthConversionData&amp;, Frame&amp;, MediaFeaturePrefix)

Noiceee

&gt; Source/WebKit/UIProcess/WebProcessProxy.cpp:216
&gt; +#if !PLATFORM(IOS)

To save someone some heartache in the future (likely, someone adding something to platformInitialize in WebProcessProxyIOS and then finding out the hard way it isn&apos;t run for other iOS-y platforms, unlike most of the code in that file), I would make these IOS_FAMILY and make the WebProcessProxyIOS implementation unconditional (and put the PLATFORM(IOS) check inside the functions with the UIKIT_WITH_MOUSE_SUPPORT check). Up to you.

&gt; Source/WebKit/UIProcess/ios/WKMouseDeviceObserver.mm:59
&gt; +    _token = [[BKSMousePointerService sharedInstance] addPointerDeviceObserver:self];

Little bit confused about the lifetime of _token. The method /sounds/ like it would return an autoreleased object (no `create` or `new`), but you&apos;re storing it as a bare pointer. What&apos;s keeping it alive?

&gt; Source/WebKit/UIProcess/ios/WKMouseDeviceObserver.mm:75
&gt; +    BOOL hasMouseDevice = [mousePointerDevices count] &gt; 0;

We prefer dots for properties where possible.

&gt; Source/WebKit/WebProcess/WebProcess.cpp:410
&gt; +    m_hasMouseDevice = parameters.hasMouseDevice;

Possible this could shuffle off into platformInitializeWebProcess?

&gt; Tools/TestWebKitAPI/Tests/WebKitCocoa/iOSMouseSupport.mm:305
&gt; +static BOOL evaluateMediaQuery(RetainPtr&lt;TestWKWebView&gt;&amp; webView, NSString *query)

This almost might be useful as a TestWKWebView method! I can /totally/ imagine other tests using it.

&gt; Tools/TestWebKitAPI/Tests/WebKitCocoa/iOSMouseSupport.mm:354
&gt; +    [mouseDeviceObserver start];

Isn&apos;t creating the web view going to start it again (because of the way you implemented the observer above, always starting when the first process comes alive)? Maybe it&apos;s not a problem, though?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1695249</commentid>
    <comment_count>30</comment_count>
      <attachid>410655</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2020-10-06 11:56:13 -0700</bug_when>
    <thetext>Comment on attachment 410655
Patch

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

&gt;&gt; Source/WebKit/UIProcess/WebProcessProxy.cpp:216
&gt;&gt; +#if !PLATFORM(IOS)
&gt; 
&gt; To save someone some heartache in the future (likely, someone adding something to platformInitialize in WebProcessProxyIOS and then finding out the hard way it isn&apos;t run for other iOS-y platforms, unlike most of the code in that file), I would make these IOS_FAMILY and make the WebProcessProxyIOS implementation unconditional (and put the PLATFORM(IOS) check inside the functions with the UIKIT_WITH_MOUSE_SUPPORT check). Up to you.

good call

&gt;&gt; Source/WebKit/WebProcess/WebProcess.cpp:410
&gt;&gt; +    m_hasMouseDevice = parameters.hasMouseDevice;
&gt; 
&gt; Possible this could shuffle off into platformInitializeWebProcess?

did not know that existed :P

&gt;&gt; Tools/TestWebKitAPI/Tests/WebKitCocoa/iOSMouseSupport.mm:305
&gt;&gt; +static BOOL evaluateMediaQuery(RetainPtr&lt;TestWKWebView&gt;&amp; webView, NSString *query)
&gt; 
&gt; This almost might be useful as a TestWKWebView method! I can /totally/ imagine other tests using it.

ooo good idea!

&gt;&gt; Tools/TestWebKitAPI/Tests/WebKitCocoa/iOSMouseSupport.mm:354
&gt;&gt; +    [mouseDeviceObserver start];
&gt; 
&gt; Isn&apos;t creating the web view going to start it again (because of the way you implemented the observer above, always starting when the first process comes alive)? Maybe it&apos;s not a problem, though?

yes `start` will get called again, but because we already have a `_token` we shouldn&apos;t re-add the observer, so it should be fine</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1695255</commentid>
    <comment_count>31</comment_count>
      <attachid>410675</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2020-10-06 12:02:07 -0700</bug_when>
    <thetext>Created attachment 410675
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1695258</commentid>
    <comment_count>32</comment_count>
      <attachid>410675</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2020-10-06 12:08:07 -0700</bug_when>
    <thetext>Comment on attachment 410675
Patch

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

&gt; Source/WebCore/page/PointerCharacteristics.h:45
&gt; +template&lt;&gt; struct EnumTraits&lt;WebCore::PointerCharacteristics&gt; {
&gt; +    using values = EnumValues&lt;
&gt; +        WebCore::PointerCharacteristics,
&gt; +        WebCore::PointerCharacteristics::Coarse,
&gt; +        WebCore::PointerCharacteristics::Fine
&gt; +    &gt;;
&gt; +};

I feel like this isn&apos;t going to work right. The enum is actually flags so you can set multiple bits...  these traits specify the valid values for decoding, but if you had both bits set, it isn&apos;t one of these valid values. Am I crazy?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1695265</commentid>
    <comment_count>33</comment_count>
      <attachid>410675</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2020-10-06 12:23:38 -0700</bug_when>
    <thetext>Comment on attachment 410675
Patch

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

&gt;&gt; Source/WebCore/page/PointerCharacteristics.h:45
&gt;&gt; +};
&gt; 
&gt; I feel like this isn&apos;t going to work right. The enum is actually flags so you can set multiple bits...  these traits specify the valid values for decoding, but if you had both bits set, it isn&apos;t one of these valid values. Am I crazy?

`Coarse` and `Fine` really are mutually exclusive (I don&apos;t know of a pointer device that is both), so they shouldn&apos;t really be used in conjunction (unless inside an `OptionSet`).  The only reason I even added a specific value for each item was because `any-pointer` is supposed to represent the union of all pointer characteristics, and an `OptionSet` seemed the most simple option for that.

Also, I don&apos;t think I actually need `WTF::EnumTraits&lt;WebCore::PointerCharacteristics&gt;` for this patch, so I could just remove it.  I was following a pattern I saw from other things (e.g. `IPC::MessageFlags`, `WebCore::AutoplayEventFlags`, `WebCore::DragApplicationFlags`, etc.).

How would you suggest I change this?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1695267</commentid>
    <comment_count>34</comment_count>
      <attachid>410675</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2020-10-06 12:29:20 -0700</bug_when>
    <thetext>Comment on attachment 410675
Patch

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

&gt;&gt;&gt; Source/WebCore/page/PointerCharacteristics.h:45
&gt;&gt;&gt; +};
&gt;&gt; 
&gt;&gt; I feel like this isn&apos;t going to work right. The enum is actually flags so you can set multiple bits...  these traits specify the valid values for decoding, but if you had both bits set, it isn&apos;t one of these valid values. Am I crazy?
&gt; 
&gt; `Coarse` and `Fine` really are mutually exclusive (I don&apos;t know of a pointer device that is both), so they shouldn&apos;t really be used in conjunction (unless inside an `OptionSet`).  The only reason I even added a specific value for each item was because `any-pointer` is supposed to represent the union of all pointer characteristics, and an `OptionSet` seemed the most simple option for that.
&gt; 
&gt; Also, I don&apos;t think I actually need `WTF::EnumTraits&lt;WebCore::PointerCharacteristics&gt;` for this patch, so I could just remove it.  I was following a pattern I saw from other things (e.g. `IPC::MessageFlags`, `WebCore::AutoplayEventFlags`, `WebCore::DragApplicationFlags`, etc.).
&gt; 
&gt; How would you suggest I change this?

Oh, you&apos;re right, you don&apos;t need it, because you never encode it (I missed that). Delete it! No reason to add it prematurely.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1695279</commentid>
    <comment_count>35</comment_count>
      <attachid>410681</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2020-10-06 12:48:01 -0700</bug_when>
    <thetext>Created attachment 410681
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1695313</commentid>
    <comment_count>36</comment_count>
      <attachid>410681</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2020-10-06 14:27:59 -0700</bug_when>
    <thetext>Comment on attachment 410681
Patch

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

&gt; Source/WebKit/UIProcess/ios/WKMouseDeviceObserver.mm:39
&gt; ++ (WKMouseDeviceObserver *)sharedInstance {

This brace should be on the next line :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1695316</commentid>
    <comment_count>37</comment_count>
      <attachid>410694</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2020-10-06 14:37:48 -0700</bug_when>
    <thetext>Created attachment 410694
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1695384</commentid>
    <comment_count>38</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-10-06 16:44:52 -0700</bug_when>
    <thetext>Committed r268086: &lt;https://trac.webkit.org/changeset/268086&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 410694.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>410167</attachid>
            <date>2020-09-30 16:19:51 -0700</date>
            <delta_ts>2020-09-30 17:15:23 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-209292-20200930161950.patch</filename>
            <type>text/plain</type>
            <size>50753</size>
            <attacher name="Devin Rousso">hi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCBiMGM0NGZlNWNjNDNiYTMzZjcyMDk0N2ExMGVmZWFlMTMzMjJlM2NjLi4z
MDMyYTNmYmM4MjJlYjdlNTdmYjc0ZTA2YTc1ZDE2ZTRiYjY1NWQzIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMjkgQEAKKzIwMjAtMDktMzAgIERldmluIFJvdXNzbyAgPGRyb3Vzc29AYXBwbGUuY29t
PgorCisgICAgICAgIENTUyBob3ZlciBhbmQgInBvaW50ZXI6IGZpbmUiIG1lZGlhIHF1ZXJpZXMg
ZG8gbm90IGV2YWx1YXRlIHRvIHRydWUgd2l0aCBpT1MgMTMuNCBtb3VzZSBzdXBwb3J0CisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDkyOTIKKyAgICAg
ICAgPHJkYXI6Ly9wcm9ibGVtLzYwNjYzMTI0PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIE9uIGlPUywgdGhlIHByaW1hcnkgcG9pbnRlciB3aWxsIGFs
d2F5cyBiZSB0b3VjaCBpbnB1dCwgc28gdGhlIGBob3ZlcmAvYHBvaW50ZXJgIG1lZGlhIHF1ZXJ5
CisgICAgICAgIHNob3VsZCBuZXZlciBjaGFuZ2UuIElmIGEgbW91c2UgaXMgY29ubmVjdGVkLCBo
b3dldmVyLCBgYW55LWhvdmVyYC9gYW55LXBvaW50ZXJgIHNob3VsZAorICAgICAgICBjaGFuZ2Ug
YXMgbm93IHRoZXJlIGlzIGF0IGxlYXN0IG9uZSBkZXZpY2UgdGhhdCBzdXBwb3J0cyBgaG92ZXJg
L2BmaW5lYC4gTm90ZSB0aGF0IGluIHRoZQorICAgICAgICBjYXNlIG9mIGBhbnktcG9pbnRlcmAg
dGhpcyBtZWFucyB0aGF0IGJvdGggYGNvYXJzZWAgYW5kIGBmaW5lYCB3aWxsIGFwcGx5LiBDYXRh
bHlzdCBhc3N1bWVzCisgICAgICAgIHRoYXQgdGhlcmUgaXMgYWx3YXlzIGEgbW91c2UgY29ubmVj
dGVkLgorCisgICAgICAgIFNwZWM6IGh0dHBzOi8vZHJhZnRzLmNzc3dnLm9yZy9tZWRpYXF1ZXJp
ZXMtNC8jYW55LWlucHV0CisKKyAgICAgICAgKiBjc3MvTWVkaWFRdWVyeUV2YWx1YXRvci5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpoYXNNb3VzZURldmljZSk6IEFkZGVkLgorICAgICAgICAoV2Vi
Q29yZTo6YW55SG92ZXJFdmFsdWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjphbnlQb2ludGVyRXZh
bHVhdGUpOgorCisgICAgICAgICogcGFnZS9DaHJvbWVDbGllbnQuaDoKKyAgICAgICAgKiBsb2Fk
ZXIvRW1wdHlDbGllbnRzLmg6CisgICAgICAgIChXZWJDb3JlOjpFbXB0eUNocm9tZUNsaWVudDo6
aGFzTW91c2VEZXZpY2UpOiBBZGRlZC4KKyAgICAgICAgUHJvdmlkZSBhIHdheSBmb3IgV2ViQ29y
ZSB0byBnZXQgdGhlIGN1cnJlbnQgc3RhdGUgb2Ygd2hldGhlciB0aGVyZSBhcmUgYW55IG1vdXNl
IGRldmljZXMuCisKIDIwMjAtMDktMzAgIFphbGFuIEJ1anRhcyAgPHphbGFuQGFwcGxlLmNvbT4K
IAogICAgICAgICBbTEZDXVtJbnRlZ3JhdGlvbl0gRW5hYmxlIDx3YnI+IGNvbnRlbnQKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cK
aW5kZXggZmUwMzc5ZjcyYTdjYTc4NGNkZDcwMjI1ZmNkN2JlMzJlYjQyMGQ4My4uYTNlNjUzYTRi
NDVmOGNlMzIwNjA1MjU5YzQ5MDFiYzdlN2Y1MTBjZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSw3NCBA
QAorMjAyMC0wOS0zMCAgRGV2aW4gUm91c3NvICA8ZHJvdXNzb0BhcHBsZS5jb20+CisKKyAgICAg
ICAgQ1NTIGhvdmVyIGFuZCAicG9pbnRlcjogZmluZSIgbWVkaWEgcXVlcmllcyBkbyBub3QgZXZh
bHVhdGUgdG8gdHJ1ZSB3aXRoIGlPUyAxMy40IG1vdXNlIHN1cHBvcnQKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwOTI5MgorICAgICAgICA8cmRhcjov
L3Byb2JsZW0vNjA2NjMxMjQ+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgT24gaU9TLCB0aGUgcHJpbWFyeSBwb2ludGVyIHdpbGwgYWx3YXlzIGJlIHRv
dWNoIGlucHV0LCBzbyB0aGUgYGhvdmVyYC9gcG9pbnRlcmAgbWVkaWEgcXVlcnkKKyAgICAgICAg
c2hvdWxkIG5ldmVyIGNoYW5nZS4gSWYgYSBtb3VzZSBpcyBjb25uZWN0ZWQsIGhvd2V2ZXIsIGBh
bnktaG92ZXJgL2BhbnktcG9pbnRlcmAgc2hvdWxkCisgICAgICAgIGNoYW5nZSBhcyBub3cgdGhl
cmUgaXMgYXQgbGVhc3Qgb25lIGRldmljZSB0aGF0IHN1cHBvcnRzIGBob3ZlcmAvYGZpbmVgLiBO
b3RlIHRoYXQgaW4gdGhlCisgICAgICAgIGNhc2Ugb2YgYGFueS1wb2ludGVyYCB0aGlzIG1lYW5z
IHRoYXQgYm90aCBgY29hcnNlYCBhbmQgYGZpbmVgIHdpbGwgYXBwbHkuIENhdGFseXN0IGFzc3Vt
ZXMKKyAgICAgICAgdGhhdCB0aGVyZSBpcyBhbHdheXMgYSBtb3VzZSBjb25uZWN0ZWQuCisKKyAg
ICAgICAgU3BlYzogaHR0cHM6Ly9kcmFmdHMuY3Nzd2cub3JnL21lZGlhcXVlcmllcy00LyNhbnkt
aW5wdXQKKworICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvV0tNb3VzZURldmljZU9ic2VydmVyLmg6
IEFkZGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvV0tNb3VzZURldmljZU9ic2VydmVyLm1t
OiBBZGRlZC4KKyAgICAgICAgKCtbV0tNb3VzZURldmljZU9ic2VydmVyIHNoYXJlZEluc3RhbmNl
XSk6CisgICAgICAgICgtW1dLTW91c2VEZXZpY2VPYnNlcnZlciBkZWFsbG9jXSk6CisgICAgICAg
ICgtW1dLTW91c2VEZXZpY2VPYnNlcnZlciBhZGRXZWJQcm9jZXNzUHJveHk6XSk6CisgICAgICAg
ICgtW1dLTW91c2VEZXZpY2VPYnNlcnZlciByZW1vdmVXZWJQcm9jZXNzUHJveHk6XSk6CisgICAg
ICAgICgtW1dLTW91c2VEZXZpY2VPYnNlcnZlciBzdGFydF0pOgorICAgICAgICAoLVtXS01vdXNl
RGV2aWNlT2JzZXJ2ZXIgc3RvcF0pOgorICAgICAgICAoLVtXS01vdXNlRGV2aWNlT2JzZXJ2ZXIg
bW91c2VQb2ludGVyRGV2aWNlc0RpZENoYW5nZTpdKToKKyAgICAgICAgKC1bV0tNb3VzZURldmlj
ZU9ic2VydmVyIF9zZXRIYXNNb3VzZURldmljZUZvclRlc3Rpbmc6XSk6CisgICAgICAgIFVzZSBg
QmFja0JvYXJkU2VydmljZXNgIFNQSSB0byBsaXN0ZW4gZm9yIG1vdXNlIGRldmljZXMgY2hhbmdl
cyBhbmQgbm90aWZ5IGFsbCBXZWJQcm9jZXNzLgorCisgICAgICAgICogVUlQcm9jZXNzL1dlYlBy
b2Nlc3NQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwOgor
ICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUHJveHk6OmNvbm5lY3Rpb25XaWxsT3Blbik6Cisg
ICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQcm94eTo6cGxhdGZvcm1Db25uZWN0aW9uV2lsbE9w
ZW4pOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Byb3h5Ojpwcm9jZXNzV2ls
bFNodXREb3duKToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Byb3h5OjpwbGF0Zm9ybVBy
b2Nlc3NXaWxsU2h1dERvd24pOiBBZGRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dlYlBy
b2Nlc3NQcm94eUlPUy5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Byb3h5OjpwbGF0
Zm9ybUNvbm5lY3Rpb25XaWxsT3Blbik6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9j
ZXNzUHJveHk6OnBsYXRmb3JtUHJvY2Vzc1dpbGxTaHV0RG93bik6IEFkZGVkLgorICAgICAgICAo
V2ViS2l0OjpXZWJQcm9jZXNzUHJveHk6OnNldEhhc01vdXNlRGV2aWNlKTogQWRkZWQuCisgICAg
ICAgIEF0dGFjaCB0byB0aGUgc2hhcmVkIGBXS01vdXNlRGV2aWNlT2JzZXJ2ZXJgIHdoZW4gY3Jl
YXRpbmcgdGhlIFdlYlByb2Nlc3Mgc28gdGhhdCB0aGUgc2hhcmVkCisgICAgICAgIGBXS01vdXNl
RGV2aWNlT2JzZXJ2ZXJgIGtub3dzIHRvIG5vdGlmeSB0aGF0IGluc3RhbmNlIHdoZW4gbW91c2Ug
ZGV2aWNlcyBjaGFuZ2UuCisKKyAgICAgICAgKiBTaGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFy
YW1ldGVycy5oOgorICAgICAgICAqIFNoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJz
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyczo6ZW5j
b2RlIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVy
czo6ZGVjb2RlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvV2ViUHJvY2Vzc1Bvb2xDb2Nv
YS5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Bvb2w6OnBsYXRmb3JtSW5pdGlhbGl6
ZVdlYlByb2Nlc3MpOgorICAgICAgICBVc2UgdGhlIGN1cnJlbnQgc3RhdGUgb2YgdGhlIHNoYXJl
ZCBgV0tNb3VzZURldmljZU9ic2VydmVyYCB3aGVuIGNyZWF0aW5nIFdlYlByb2Nlc3MgaW5zdGVh
ZAorICAgICAgICBvZiBzZW5kaW5nIGEgYFNldEhhc01vdXNlRGV2aWNlYCBtZXNzYWdlIGltbWVk
aWF0ZWx5IGFmdGVyIHRoZSBXZWJQcm9jZXNzIGlzIGNyZWF0ZWQuCisKKyAgICAgICAgKiBXZWJQ
cm9jZXNzL1dlYlByb2Nlc3MubWVzc2FnZXMuaW46CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQ
cm9jZXNzLmg6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6Omhhc01vdXNlRGV2aWNlIGNv
bnN0KTogQWRkZWQuCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6aW5pdGlhbGl6ZVdlYlByb2Nlc3MpOgorICAgICAgICAo
V2ViS2l0OjpXZWJQcm9jZXNzOjpzZXRIYXNNb3VzZURldmljZSk6IEFkZGVkLgorICAgICAgICBV
cGRhdGUgc3R5bGUgKGluY2x1ZGluZyBgYW55LWhvdmVyYCBhbmQgYGFueS1wb2ludGVyYCkgd2hl
bmV2ZXIgbW91c2UgZGV2aWNlcyBjaGFuZ2UuCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNv
cmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29y
ZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViQ2hyb21l
Q2xpZW50OjpoYXNNb3VzZURldmljZSk6IEFkZGVkLgorICAgICAgICBQcm92aWRlIGEgd2F5IGZv
ciBXZWJDb3JlIHRvIGdldCB0aGUgY3VycmVudCBzdGF0ZSBvZiB3aGV0aGVyIHRoZXJlIGFyZSBh
bnkgbW91c2UgZGV2aWNlcy4KKworICAgICAgICAqIFBsYXRmb3JtL3NwaS9pb3MvQmFja0JvYXJk
U2VydmljZXNTUEkuaDoKKyAgICAgICAgKiBQbGF0Zm9ybS9zcGkvaW9zL0Jhc2VCb2FyZFNQSS5o
OiBBZGRlZC4KKyAgICAgICAgKiBDb25maWd1cmF0aW9ucy9XZWJLaXQueGNjb25maWc6CisgICAg
ICAgIExpbmsgYEJhY2tCb2FyZFNlcnZpY2VzYCBmb3IgaU9TLgorCisgICAgICAgICogU291cmNl
c0NvY29hLnR4dDoKKyAgICAgICAgKiBXZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoK
KwogMjAyMC0wOS0zMCAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4KIAog
ICAgICAgICBbR1BVIFByb2Nlc3NdIENhbnZhcyBsYXlvdXQgdGVzdHMgb2NjYXNpb25hbGx5IGNy
YXNoIHRoZSB3ZWIgcHJvY2VzcyB1bmRlciBQdXRJbWFnZURhdGE6OmFwcGx5CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0TGVnYWN5L2lvcy9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5
L2lvcy9DaGFuZ2VMb2cKaW5kZXggMTJlNjU1YjFlY2RkNWQ0NzBmM2VhNDBmYWM3ODM1ZmUxZjU3
ZmJmYy4uZjg3YzA4NmIzNjE2OGE0YWI2NjhjOWI3MWQ5ODU1MjUxZTNkNzE4OCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdExlZ2FjeS9pb3MvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXRM
ZWdhY3kvaW9zL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDIwLTA5LTMwICBEZXZpbiBS
b3Vzc28gIDxkcm91c3NvQGFwcGxlLmNvbT4KKworICAgICAgICBDU1MgaG92ZXIgYW5kICJwb2lu
dGVyOiBmaW5lIiBtZWRpYSBxdWVyaWVzIGRvIG5vdCBldmFsdWF0ZSB0byB0cnVlIHdpdGggaU9T
IDEzLjQgbW91c2Ugc3VwcG9ydAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MjA5MjkyCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS82MDY2MzEyND4KKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYkNvcmVT
dXBwb3J0L1dlYkNocm9tZUNsaWVudElPUy5oOgorICAgICAgICAoV2ViQ2hyb21lQ2xpZW50SU9T
OjpoYXNNb3VzZURldmljZSk6IEFkZGVkLgorICAgICAgICBNb3VzZSBkZXZpY2VzIGFyZSBub3Qg
c3VwcG9ydGVkIGZvciBXSzEuCisKIDIwMjAtMDktMjAgIERhcmluIEFkbGVyICA8ZGFyaW5AYXBw
bGUuY29tPgogCiAgICAgICAgIE5leHQgc3RlcCB0b3dhcmRzIGVsaW1pbmF0aW5nIGRlcHJlY2F0
ZWQgbGVnYWN5IHBvc2l0aW9ucwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL01lZGlh
UXVlcnlFdmFsdWF0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL01lZGlhUXVlcnlFdmFsdWF0
b3IuY3BwCmluZGV4IDgxMThiN2FiM2M1MGIzY2VkODEyMGZjMTA2ZGNlOWM3MzE0MWFmZTQuLjc3
NmM5NDYzY2YyYmNjMjRhNjVkM2EzMDQxMzQyMWE0ODAxMWY4ZDMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5RXZhbHVhdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9jc3MvTWVkaWFRdWVyeUV2YWx1YXRvci5jcHAKQEAgLTMzLDYgKzMzLDggQEAKICNpbmNsdWRl
ICJDU1NQcmltaXRpdmVWYWx1ZS5oIgogI2luY2x1ZGUgIkNTU1RvTGVuZ3RoQ29udmVyc2lvbkRh
dGEuaCIKICNpbmNsdWRlICJDU1NWYWx1ZUtleXdvcmRzLmgiCisjaW5jbHVkZSAiQ2hyb21lLmgi
CisjaW5jbHVkZSAiQ2hyb21lQ2xpZW50LmgiCiAjaW5jbHVkZSAiRnJhbWUuaCIKICNpbmNsdWRl
ICJGcmFtZVZpZXcuaCIKICNpbmNsdWRlICJMb2dnaW5nLmgiCkBAIC03MTIsNiArNzE0LDI3IEBA
IHN0YXRpYyBib29sIHZpZGVvUGxheWFibGVJbmxpbmVFdmFsdWF0ZShDU1NWYWx1ZSosIGNvbnN0
IENTU1RvTGVuZ3RoQ29udmVyc2lvbkRhCiAgICAgcmV0dXJuIGZyYW1lLnNldHRpbmdzKCkuYWxs
b3dzSW5saW5lTWVkaWFQbGF5YmFjaygpOwogfQogCitzdGF0aWMgYm9vbCBoYXNNb3VzZURldmlj
ZShGcmFtZSYgZnJhbWUpCit7CisjaWYgUExBVEZPUk0oTUFDQ0FUQUxZU1QpCisgICAgVU5VU0VE
X1BBUkFNKGZyYW1lKTsKKyAgICByZXR1cm4gdHJ1ZTsKKyNlbHNlIC8vIFBMQVRGT1JNKE1BQ0NB
VEFMWVNUKQorI2lmIFBMQVRGT1JNKElPUykKKyAgICBhdXRvKiBwYWdlID0gZnJhbWUucGFnZSgp
OworICAgIGlmIChwYWdlICYmIHBhZ2UtPmNocm9tZSgpLmNsaWVudCgpLmhhc01vdXNlRGV2aWNl
KCkpCisgICAgICAgIHJldHVybiB0cnVlOworI2Vsc2UgLy8gUExBVEZPUk0oSU9TKQorICAgIFVO
VVNFRF9QQVJBTShmcmFtZSk7CisjZW5kaWYgLy8gUExBVEZPUk0oSU9TKQorI2lmIEVOQUJMRShU
T1VDSF9FVkVOVFMpCisgICAgaWYgKCFzY3JlZW5IYXNUb3VjaERldmljZSgpKQorICAgICAgICBy
ZXR1cm4gdHJ1ZTsKKyNlbmRpZiAvLyBFTkFCTEUoVE9VQ0hfRVZFTlRTKQorICAgIHJldHVybiBm
YWxzZTsKKyNlbmRpZiAvLyBQTEFURk9STShNQUNDQVRBTFlTVCkKK30KKwogc3RhdGljIGJvb2wg
aG92ZXJFdmFsdWF0ZShDU1NWYWx1ZSogdmFsdWUsIGNvbnN0IENTU1RvTGVuZ3RoQ29udmVyc2lv
bkRhdGEmLCBGcmFtZSYsIE1lZGlhRmVhdHVyZVByZWZpeCkKIHsKICAgICBpZiAoIWlzPENTU1By
aW1pdGl2ZVZhbHVlPih2YWx1ZSkpIHsKQEAgLTczMCwyMiArNzUzLDEzIEBAIHN0YXRpYyBib29s
IGhvdmVyRXZhbHVhdGUoQ1NTVmFsdWUqIHZhbHVlLCBjb25zdCBDU1NUb0xlbmd0aENvbnZlcnNp
b25EYXRhJiwgRnJhCiAgICAgcmV0dXJuIGtleXdvcmQgPT0gQ1NTVmFsdWVIb3ZlcjsKIH0KIAot
c3RhdGljIGJvb2wgYW55SG92ZXJFdmFsdWF0ZShDU1NWYWx1ZSogdmFsdWUsIGNvbnN0IENTU1Rv
TGVuZ3RoQ29udmVyc2lvbkRhdGEmLCBGcmFtZSYsIE1lZGlhRmVhdHVyZVByZWZpeCkKK3N0YXRp
YyBib29sIGFueUhvdmVyRXZhbHVhdGUoQ1NTVmFsdWUqIHZhbHVlLCBjb25zdCBDU1NUb0xlbmd0
aENvbnZlcnNpb25EYXRhJiwgRnJhbWUmIGZyYW1lLCBNZWRpYUZlYXR1cmVQcmVmaXgpCiB7Ci0g
ICAgaWYgKCFpczxDU1NQcmltaXRpdmVWYWx1ZT4odmFsdWUpKSB7Ci0jaWYgRU5BQkxFKFRPVUNI
X0VWRU5UUykKLSAgICAgICAgcmV0dXJuICFzY3JlZW5IYXNUb3VjaERldmljZSgpOwotI2Vsc2UK
LSAgICAgICAgcmV0dXJuIHRydWU7Ci0jZW5kaWYKLSAgICB9CisgICAgaWYgKCFpczxDU1NQcmlt
aXRpdmVWYWx1ZT4odmFsdWUpKQorICAgICAgICByZXR1cm4gaGFzTW91c2VEZXZpY2UoZnJhbWUp
OwogCiAgICAgYXV0byBrZXl3b3JkID0gZG93bmNhc3Q8Q1NTUHJpbWl0aXZlVmFsdWU+KCp2YWx1
ZSkudmFsdWVJRCgpOwotI2lmIEVOQUJMRShUT1VDSF9FVkVOVFMpCi0gICAgaWYgKHNjcmVlbkhh
c1RvdWNoRGV2aWNlKCkpCi0gICAgICAgIHJldHVybiBrZXl3b3JkID09IENTU1ZhbHVlTm9uZTsK
LSNlbmRpZgotICAgIHJldHVybiBrZXl3b3JkID09IENTU1ZhbHVlSG92ZXI7CisgICAgcmV0dXJu
IGhhc01vdXNlRGV2aWNlKGZyYW1lKSA/IChrZXl3b3JkID09IENTU1ZhbHVlSG92ZXIpIDogKGtl
eXdvcmQgPT0gQ1NTVmFsdWVOb25lKTsKIH0KIAogc3RhdGljIGJvb2wgcG9pbnRlckV2YWx1YXRl
KENTU1ZhbHVlKiB2YWx1ZSwgY29uc3QgQ1NTVG9MZW5ndGhDb252ZXJzaW9uRGF0YSYsIEZyYW1l
JiBmcmFtZSwgTWVkaWFGZWF0dXJlUHJlZml4KQpAQCAtNzY1LDE3ICs3NzksMjIgQEAgc3RhdGlj
IGJvb2wgcG9pbnRlckV2YWx1YXRlKENTU1ZhbHVlKiB2YWx1ZSwgY29uc3QgQ1NTVG9MZW5ndGhD
b252ZXJzaW9uRGF0YSYsIEYKICAgICByZXR1cm4ga2V5d29yZCA9PSBDU1NWYWx1ZUZpbmU7CiB9
CiAKLXN0YXRpYyBib29sIGFueVBvaW50ZXJFdmFsdWF0ZShDU1NWYWx1ZSogdmFsdWUsIGNvbnN0
IENTU1RvTGVuZ3RoQ29udmVyc2lvbkRhdGEmLCBGcmFtZSYsIE1lZGlhRmVhdHVyZVByZWZpeCkK
K3N0YXRpYyBib29sIGFueVBvaW50ZXJFdmFsdWF0ZShDU1NWYWx1ZSogdmFsdWUsIGNvbnN0IENT
U1RvTGVuZ3RoQ29udmVyc2lvbkRhdGEmLCBGcmFtZSYgZnJhbWUsIE1lZGlhRmVhdHVyZVByZWZp
eCkKIHsKICAgICBpZiAoIWlzPENTU1ByaW1pdGl2ZVZhbHVlPih2YWx1ZSkpCiAgICAgICAgIHJl
dHVybiB0cnVlOwogCiAgICAgYXV0byBrZXl3b3JkID0gZG93bmNhc3Q8Q1NTUHJpbWl0aXZlVmFs
dWU+KCp2YWx1ZSkudmFsdWVJRCgpOworCisgICAgaWYgKGtleXdvcmQgPT0gQ1NTVmFsdWVGaW5l
KQorICAgICAgICByZXR1cm4gaGFzTW91c2VEZXZpY2UoZnJhbWUpOworCiAjaWYgRU5BQkxFKFRP
VUNIX0VWRU5UUykKLSAgICBpZiAoc2NyZWVuSGFzVG91Y2hEZXZpY2UoKSkKLSAgICAgICAgcmV0
dXJuIGtleXdvcmQgPT0gQ1NTVmFsdWVDb2Fyc2U7Ci0jZW5kaWYKLSAgICByZXR1cm4ga2V5d29y
ZCA9PSBDU1NWYWx1ZUZpbmU7CisgICAgaWYgKGtleXdvcmQgPT0gQ1NTVmFsdWVDb2Fyc2UpCisg
ICAgICAgIHJldHVybiBzY3JlZW5IYXNUb3VjaERldmljZSgpOworI2VuZGlmIC8vIEVOQUJMRShU
T1VDSF9FVkVOVFMpCisKKyAgICByZXR1cm4gZmFsc2U7CiB9CiAKIHN0YXRpYyBib29sIHByZWZl
cnNEYXJrSW50ZXJmYWNlRXZhbHVhdGUoQ1NTVmFsdWUqIHZhbHVlLCBjb25zdCBDU1NUb0xlbmd0
aENvbnZlcnNpb25EYXRhJiwgRnJhbWUmIGZyYW1lLCBNZWRpYUZlYXR1cmVQcmVmaXgpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmggYi9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmgKaW5kZXggM2U5ZGU3ZDI2NmE5ZGVhNmUxYTAzNDQ2
YTU5ZWY3ZjQwMDYwOTk0ZS4uNTY5NDhhMGNlMzNhYmFkZWQ4ZmFiNzk0YTEyNGE1NzBhMTI3ZDU1
NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuaApAQCAtMTAyLDYgKzEwMiwxMCBA
QCBjbGFzcyBFbXB0eUNocm9tZUNsaWVudCA6IHB1YmxpYyBDaHJvbWVDbGllbnQgewogCiAgICAg
S2V5Ym9hcmRVSU1vZGUga2V5Ym9hcmRVSU1vZGUoKSBmaW5hbCB7IHJldHVybiBLZXlib2FyZEFj
Y2Vzc0RlZmF1bHQ7IH0KIAorI2lmIFBMQVRGT1JNKElPUykKKyAgICBib29sIGhhc01vdXNlRGV2
aWNlKCkgZmluYWwgeyByZXR1cm4gZmFsc2U7IH0KKyNlbmRpZgorCiAgICAgdm9pZCBpbnZhbGlk
YXRlUm9vdFZpZXcoY29uc3QgSW50UmVjdCYpIGZpbmFsIHsgfQogICAgIHZvaWQgaW52YWxpZGF0
ZUNvbnRlbnRzQW5kUm9vdFZpZXcoY29uc3QgSW50UmVjdCYpIG92ZXJyaWRlIHsgfQogICAgIHZv
aWQgaW52YWxpZGF0ZUNvbnRlbnRzRm9yU2xvd1Njcm9sbChjb25zdCBJbnRSZWN0JikgZmluYWwg
eyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVudC5oIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaAppbmRleCBmZTU5ZGI4NGFlYWNhNWY5OTEy
MWI3OTBkMDA4MDkyMDYyZmY0Y2MxLi5mODhlMGY1MDc0ZTc3OGNiOGFlOTAyNWEzZjI1ZGRhMzdl
OWRmMDUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVudC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmgKQEAgLTE3OCw2ICsxNzgsMTAg
QEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBzZXRTdGF0dXNiYXJUZXh0KGNvbnN0IFN0cmlu
ZyYpID0gMDsKICAgICB2aXJ0dWFsIEtleWJvYXJkVUlNb2RlIGtleWJvYXJkVUlNb2RlKCkgPSAw
OwogCisjaWYgUExBVEZPUk0oSU9TKQorICAgIHZpcnR1YWwgYm9vbCBoYXNNb3VzZURldmljZSgp
ID0gMDsKKyNlbmRpZgorCiAgICAgdmlydHVhbCBib29sIHN1cHBvcnRzSW1tZWRpYXRlSW52YWxp
ZGF0aW9uKCkgeyByZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0dWFsIHZvaWQgaW52YWxpZGF0ZVJv
b3RWaWV3KGNvbnN0IEludFJlY3QmKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGludmFsaWRhdGVD
b250ZW50c0FuZFJvb3RWaWV3KGNvbnN0IEludFJlY3QmKSA9IDA7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L0NvbmZpZ3VyYXRpb25zL1dlYktpdC54Y2NvbmZpZyBiL1NvdXJjZS9XZWJLaXQv
Q29uZmlndXJhdGlvbnMvV2ViS2l0LnhjY29uZmlnCmluZGV4IDVmNzVlY2JiMTQ5YzU1MWE0NTEx
YTkwNmZkN2Y0M2MxN2U5ODg5MjEuLmJlYWM1YWU1ZGQ4MWY2NDVjYTAyYjNhYjRhMmYxMmJhYjhi
Y2U0MzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ29uZmlndXJhdGlvbnMvV2ViS2l0Lnhj
Y29uZmlnCisrKyBiL1NvdXJjZS9XZWJLaXQvQ29uZmlndXJhdGlvbnMvV2ViS2l0LnhjY29uZmln
CkBAIC02MCw2ICs2MCwxMCBAQCBXS19BU1NFUlRJT05fU0VSVklDRVNfTERGTEFHU19hcHBsZXR2
b3MgPSAtZnJhbWV3b3JrIEFzc2VydGlvblNlcnZpY2VzOwogV0tfQVNTRVJUSU9OX1NFUlZJQ0VT
X0xERkxBR1NfYXBwbGV0dnNpbXVsYXRvciA9IC1mcmFtZXdvcmsgQXNzZXJ0aW9uU2VydmljZXM7
CiBXS19BU1NFUlRJT05fU0VSVklDRVNfTERGTEFHU19tYWNjYXRhbHlzdCA9IC1mcmFtZXdvcmsg
QXNzZXJ0aW9uU2VydmljZXM7CiAKK1dLX0JBQ0tCT0FSRF9TRVJWSUNFU19MREZMQUdTID0gJChX
S19CQUNLQk9BUkRfU0VSVklDRVNfTERGTEFHU18kKFdLX1BMQVRGT1JNX05BTUUpKTsKK1dLX0FT
U0VSVElPTl9TRVJWSUNFU19MREZMQUdTX2lwaG9uZW9zID0gLWZyYW1ld29yayBCYWNrQm9hcmRT
ZXJ2aWNlczsKK1dLX0FTU0VSVElPTl9TRVJWSUNFU19MREZMQUdTX2lwaG9uZXNpbXVsYXRvciA9
IC1mcmFtZXdvcmsgQmFja0JvYXJkU2VydmljZXM7CisKIFdLX1JVTk5JTkdCT0FSRF9TRVJWSUNF
U19MREZMQUdTID0gJChXS19SVU5OSU5HQk9BUkRfU0VSVklDRVNfTERGTEFHU18kKFdLX0NPQ09B
X1RPVUNIKSk7CiBXS19SVU5OSU5HQk9BUkRfU0VSVklDRVNfTERGTEFHU19jb2NvYXRvdWNoID0g
LWZyYW1ld29yayBSdW5uaW5nQm9hcmRTZXJ2aWNlczsKIApAQCAtMTIzLDcgKzEyNyw3IEBAIFdL
X0FVVEhLSVRfTERGTEFHU19JT1NfU0lOQ0VfMTMgPSAtZnJhbWV3b3JrIEF1dGhLaXQ7CiBXS19B
VVRIS0lUX0xERkxBR1NfbWFjb3N4ID0gJChXS19BVVRIS0lUX0xERkxBR1MkKFdLX01BQ09TXzEw
MTUpKTsKIFdLX0FVVEhLSVRfTERGTEFHU19NQUNPU19TSU5DRV8xMDE1ID0gLWZyYW1ld29yayBB
dXRoS2l0OwogCi1GUkFNRVdPUktfQU5EX0xJQlJBUllfTERGTEFHUyA9IC1sb2JqYyAtZnJhbWV3
b3JrIENGTmV0d29yayAtZnJhbWV3b3JrIENvcmVBdWRpbyAtZnJhbWV3b3JrIENvcmVGb3VuZGF0
aW9uIC1mcmFtZXdvcmsgQ29yZUdyYXBoaWNzIC1mcmFtZXdvcmsgQ29yZVRleHQgLWZyYW1ld29y
ayBGb3VuZGF0aW9uIC1mcmFtZXdvcmsgSW1hZ2VJTyAtZnJhbWV3b3JrIElPS2l0IC1mcmFtZXdv
cmsgSU9TdXJmYWNlIC1mcmFtZXdvcmsgV2ViS2l0TGVnYWN5IC1sbmV0d29yayAkKFdLX0FDQ0VT
U0lCSUxJVFlfTERGTEFHUykgJChXS19BUFBLSVRfTERGTEFHUykgJChXS19BU1NFUlRJT05fU0VS
VklDRVNfTERGTEFHUykgJChXS19SVU5OSU5HQk9BUkRfU0VSVklDRVNfTERGTEFHUykgJChXS19B
VVRIS0lUX0xERkxBR1MpICQoV0tfQ0FSQk9OX0xERkxBR1MpICQoV0tfQ09SRV9QUkVESUNUSU9O
X0xERkxBR1MpICQoV0tfQ09SRV9TRVJWSUNFU19MREZMQUdTKSAkKFdLX0dSQVBISUNTX1NFUlZJ
Q0VTX0xERkxBR1MpICQoV0tfTElCU0FOREJPWF9MREZMQUdTKSAkKFdLX0xJQldFQlJUQ19MREZM
QUdTKSAkKFdLX01PQklMRV9DT1JFX1NFUlZJQ0VTX0xERkxBR1MpICQoV0tfTU9CSUxFX0dFU1RB
TFRfTERGTEFHUykgJChXS19QREZLSVRfTERGTEFHUykgJChXS19TQUZFX0JST1dTSU5HX0xERkxB
R1MpICQoV0tfU0VDVVJJVFlfSU5URVJGQUNFX0xERkxBR1MpICQoV0tfVUlLSVRfTERGTEFHUykg
JChXS19VUkxfRk9STUFUVElOR19MREZMQUdTKSAkKFdLX1dFQklOU1BFQ1RPUlVJX0xERkxBR1Mp
OworRlJBTUVXT1JLX0FORF9MSUJSQVJZX0xERkxBR1MgPSAtbG9iamMgLWZyYW1ld29yayBDRk5l
dHdvcmsgLWZyYW1ld29yayBDb3JlQXVkaW8gLWZyYW1ld29yayBDb3JlRm91bmRhdGlvbiAtZnJh
bWV3b3JrIENvcmVHcmFwaGljcyAtZnJhbWV3b3JrIENvcmVUZXh0IC1mcmFtZXdvcmsgRm91bmRh
dGlvbiAtZnJhbWV3b3JrIEltYWdlSU8gLWZyYW1ld29yayBJT0tpdCAtZnJhbWV3b3JrIElPU3Vy
ZmFjZSAtZnJhbWV3b3JrIFdlYktpdExlZ2FjeSAtbG5ldHdvcmsgJChXS19BQ0NFU1NJQklMSVRZ
X0xERkxBR1MpICQoV0tfQVBQS0lUX0xERkxBR1MpICQoV0tfQVNTRVJUSU9OX1NFUlZJQ0VTX0xE
RkxBR1MpICQoV0tfQkFDS0JPQVJEX1NFUlZJQ0VTX0xERkxBR1MpICQoV0tfUlVOTklOR0JPQVJE
X1NFUlZJQ0VTX0xERkxBR1MpICQoV0tfQVVUSEtJVF9MREZMQUdTKSAkKFdLX0NBUkJPTl9MREZM
QUdTKSAkKFdLX0NPUkVfUFJFRElDVElPTl9MREZMQUdTKSAkKFdLX0NPUkVfU0VSVklDRVNfTERG
TEFHUykgJChXS19HUkFQSElDU19TRVJWSUNFU19MREZMQUdTKSAkKFdLX0xJQlNBTkRCT1hfTERG
TEFHUykgJChXS19MSUJXRUJSVENfTERGTEFHUykgJChXS19NT0JJTEVfQ09SRV9TRVJWSUNFU19M
REZMQUdTKSAkKFdLX01PQklMRV9HRVNUQUxUX0xERkxBR1MpICQoV0tfUERGS0lUX0xERkxBR1Mp
ICQoV0tfU0FGRV9CUk9XU0lOR19MREZMQUdTKSAkKFdLX1NFQ1VSSVRZX0lOVEVSRkFDRV9MREZM
QUdTKSAkKFdLX1VJS0lUX0xERkxBR1MpICQoV0tfVVJMX0ZPUk1BVFRJTkdfTERGTEFHUykgJChX
S19XRUJJTlNQRUNUT1JVSV9MREZMQUdTKTsKIAogLy8gUHJldmVudCBDKysgc3RhbmRhcmQgbGli
cmFyeSBiYXNpY19zdHJpbmdzdHJlYW0sIG9wZXJhdG9yIG5ldywgZGVsZXRlIGFuZCB0aGVpciBy
ZWxhdGVkIGV4Y2VwdGlvbiB0eXBlcyBmcm9tIGJlaW5nIGV4cG9ydGVkIGFzIHdlYWsgc3ltYm9s
cy4KIFVORVhQT1JURURfU1lNQk9MX0xERkxBR1MgPSAtV2wsLXVuZXhwb3J0ZWRfc3ltYm9sIC1X
bCxfX1pUSVN0OWJhZF9hbGxvYyAtV2wsLXVuZXhwb3J0ZWRfc3ltYm9sIC1XbCxfX1pUSVN0OWV4
Y2VwdGlvbiAtV2wsLXVuZXhwb3J0ZWRfc3ltYm9sIC1XbCxfX1pUU1N0OWJhZF9hbGxvYyAtV2ws
LXVuZXhwb3J0ZWRfc3ltYm9sIC1XbCxfX1pUU1N0OWV4Y2VwdGlvbiAtV2wsLXVuZXhwb3J0ZWRf
c3ltYm9sIC1XbCxfX1pkbFB2U18gLVdsLC11bmV4cG9ydGVkX3N5bWJvbCAtV2wsX19abndtUHYg
LVdsLC11bmV4cG9ydGVkX3N5bWJvbCAtV2wsX19abndtIC1XbCwtdW5leHBvcnRlZF9zeW1ib2wg
LVdsLF9fWk5TdDNfXzE4ZnVuY3Rpb25JRnZON1dlYkNvcmUxMlBvbGljeUFjdGlvbkVFRUMyRU9T
NF8gLVdsLC11bmV4cG9ydGVkX3N5bWJvbCAtV2wsX19aTlN0M19fMThmdW5jdGlvbklGdk43V2Vi
Q29yZTEyUG9saWN5QWN0aW9uRUVFQzFFT1M0XyAtV2wsLXVuZXhwb3J0ZWRfc3ltYm9sIC1XbCxf
X1pOU3QzX18xOGZ1bmN0aW9uSUZ2TjdXZWJDb3JlMTJQb2xpY3lBY3Rpb25FRUVhU0VEbiAtV2ws
LXVuZXhwb3J0ZWRfc3ltYm9sIC1XbCxfX1pOS1N0M19fMThmdW5jdGlvbklGdk43V2ViQ29yZTEy
UG9saWN5QWN0aW9uRUVFY2xFUzJfIC1XbCwtdW5leHBvcnRlZF9zeW1ib2wgLVdsLF9fWk5TdDNf
XzE4ZnVuY3Rpb25JRnZON1dlYkNvcmUxMlBvbGljeUFjdGlvbkVFRTRzd2FwRVJTNF8gLVdsLC11
bmV4cG9ydGVkX3N5bWJvbCAtV2wsX19aTlN0M19fMThmdW5jdGlvbklGdk43V2ViQ29yZTEyUG9s
aWN5QWN0aW9uRUVFQzFFUktTNF8gLVdsLC11bmV4cG9ydGVkX3N5bWJvbCAtV2wsX19aTlN0M19f
MThmdW5jdGlvbklGdk43V2ViQ29yZTEyUG9saWN5QWN0aW9uRUVFQzJFUktTNF8gLVdsLC11bmV4
cG9ydGVkX3N5bWJvbCAtV2wsX19aTlN0M19fMThmdW5jdGlvbklGdk43V2ViQ29yZTEyUG9saWN5
QWN0aW9uRUVFRDFFdiAtV2wsLXVuZXhwb3J0ZWRfc3ltYm9sIC1XbCxfX1pOU3QzX18xOGZ1bmN0
aW9uSUZ2TjdXZWJDb3JlMTJQb2xpY3lBY3Rpb25FRUVEMkV2IC1XbCwtdW5leHBvcnRlZF9zeW1i
b2wgLVdsLF9fWk5TdDNfXzE4ZnVuY3Rpb25JRnZON1dlYkNvcmUxMlBvbGljeUFjdGlvbkVFRWFT
RVJLUzRfIC1XbCwtdW5leHBvcnRlZF9zeW1ib2wgLVdsLF9fWlRWTlN0M19fMTE3YmFkX2Z1bmN0
aW9uX2NhbGxFIC1XbCwtdW5leHBvcnRlZF9zeW1ib2wgLVdsLF9fWlRDTlN0M19fMTE4YmFzaWNf
c3RyaW5nc3RyZWFtSWNOU18xMWNoYXJfdHJhaXRzSWNFRU5TXzlhbGxvY2F0b3JJY0VFRUUwX05T
XzEzYmFzaWNfaXN0cmVhbUljUzJfRUUgLVdsLC11bmV4cG9ydGVkX3N5bWJvbCAtV2wsX19aVENO
U3QzX18xMThiYXNpY19zdHJpbmdzdHJlYW1JY05TXzExY2hhcl90cmFpdHNJY0VFTlNfOWFsbG9j
YXRvckljRUVFRTBfTlNfMTRiYXNpY19pb3N0cmVhbUljUzJfRUUgLVdsLC11bmV4cG9ydGVkX3N5
bWJvbCAtV2wsX19aVENOU3QzX18xMThiYXNpY19zdHJpbmdzdHJlYW1JY05TXzExY2hhcl90cmFp
dHNJY0VFTlNfOWFsbG9jYXRvckljRUVFRTE2X05TXzEzYmFzaWNfb3N0cmVhbUljUzJfRUUgLVds
LC11bmV4cG9ydGVkX3N5bWJvbCAtV2wsX19aVFROU3QzX18xMThiYXNpY19zdHJpbmdzdHJlYW1J
Y05TXzExY2hhcl90cmFpdHNJY0VFTlNfOWFsbG9jYXRvckljRUVFRSAtV2wsLXVuZXhwb3J0ZWRf
c3ltYm9sIC1XbCxfX1pUVk5TdDNfXzExNWJhc2ljX3N0cmluZ2J1ZkljTlNfMTFjaGFyX3RyYWl0
c0ljRUVOU185YWxsb2NhdG9ySWNFRUVFIC1XbCwtdW5leHBvcnRlZF9zeW1ib2wgLVdsLF9fWlRW
TlN0M19fMTE4YmFzaWNfc3RyaW5nc3RyZWFtSWNOU18xMWNoYXJfdHJhaXRzSWNFRU5TXzlhbGxv
Y2F0b3JJY0VFRUUgLVdsLC11bmV4cG9ydGVkX3N5bWJvbCAtV2wsX19aVENOU3QzX18xMThiYXNp
Y19zdHJpbmdzdHJlYW1JY05TXzExY2hhcl90cmFpdHNJY0VFTlNfOWFsbG9jYXRvckljRUVFRThf
TlNfMTNiYXNpY19vc3RyZWFtSWNTMl9FRTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvUGxh
dGZvcm0vc3BpL2lvcy9CYWNrQm9hcmRTZXJ2aWNlc1NQSS5oIGIvU291cmNlL1dlYktpdC9QbGF0
Zm9ybS9zcGkvaW9zL0JhY2tCb2FyZFNlcnZpY2VzU1BJLmgKaW5kZXggNmQ4ZDg5NDNlNGNjM2Nh
Nzk5ZjM3MjIxNDQxMzY5MjQwOWQ3OTYzNy4uMDkwMTRkNDQxZTFhZDliMGY0ZjI3MDM3YmRjMTBj
MjMzZDQ1ZWMxYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9zcGkvaW9zL0Jh
Y2tCb2FyZFNlcnZpY2VzU1BJLmgKKysrIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9zcGkvaW9z
L0JhY2tCb2FyZFNlcnZpY2VzU1BJLmgKQEAgLTI3LDExICsyNywyNyBAQAogCiAjaW1wb3J0IDxC
YWNrQm9hcmRTZXJ2aWNlcy9CS1NBbmltYXRpb25GZW5jZS5oPgogI2ltcG9ydCA8QmFja0JvYXJk
U2VydmljZXMvQktTQW5pbWF0aW9uRmVuY2VfUHJpdmF0ZS5oPgorI2ltcG9ydCA8QmFja0JvYXJk
U2VydmljZXMvQktTTW91c2VQb2ludGVyU2VydmljZS5oPgogCiAjZWxzZQogCisjaW1wb3J0ICJC
YXNlQm9hcmRTUEkuaCIKKwogQGludGVyZmFjZSBCS1NBbmltYXRpb25GZW5jZUhhbmRsZSA6IE5T
T2JqZWN0CiAtIChtYWNoX3BvcnRfdClDQVBvcnQ7CiBAZW5kCiAKK0BjbGFzcyBCS1NNb3VzZVBv
aW50ZXJEZXZpY2U7CisKK0Bwcm90b2NvbCBCS1NNb3VzZVBvaW50ZXJEZXZpY2VPYnNlcnZlciA8
TlNPYmplY3Q+CitAb3B0aW9uYWwKKy0gKHZvaWQpbW91c2VQb2ludGVyRGV2aWNlc0RpZENvbm5l
Y3Q6KE5TU2V0PEJLU01vdXNlUG9pbnRlckRldmljZSAqPiAqKW1vdXNlUG9pbnRlckRldmljZXM7
CistICh2b2lkKW1vdXNlUG9pbnRlckRldmljZXNEaWREaXNjb25uZWN0OihOU1NldDxCS1NNb3Vz
ZVBvaW50ZXJEZXZpY2UgKj4gKiltb3VzZVBvaW50ZXJEZXZpY2VzOworQGVuZAorCitAaW50ZXJm
YWNlIEJLU01vdXNlUG9pbnRlclNlcnZpY2UgOiBOU09iamVjdAorKyAoQktTTW91c2VQb2ludGVy
U2VydmljZSAqKXNoYXJlZEluc3RhbmNlOworLSAoaWQ8QlNJbnZhbGlkYXRhYmxlPilhZGRQb2lu
dGVyRGV2aWNlT2JzZXJ2ZXI6KGlkPEJLU01vdXNlUG9pbnRlckRldmljZU9ic2VydmVyPilvYnNl
cnZlcjsKK0BlbmQKKwogI2VuZGlmIC8vIFVTRShBUFBMRV9JTlRFUk5BTF9TREspCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL3NwaS9pb3MvQmFzZUJvYXJkU1BJLmggYi9Tb3Vy
Y2UvV2ViS2l0L1BsYXRmb3JtL3NwaS9pb3MvQmFzZUJvYXJkU1BJLmgKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYWIw
NDE4Njk1YjkwZmQ4MzFiOGQ2MWFkODE4OWEwYzM5NmNkZGI0MAotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vc3BpL2lvcy9CYXNlQm9hcmRTUEkuaApAQCAtMCwwICsx
LDM2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgor
ICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAq
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI2lmIFVTRShBUFBMRV9JTlRFUk5BTF9TREspCisKKyNpbXBv
cnQgPEJhc2VCb2FyZC9CU0ludmFsaWRhdGFibGUuaD4KKworI2Vsc2UKKworQHByb3RvY29sIEJT
SW52YWxpZGF0YWJsZSA8TlNPYmplY3Q+CistICh2b2lkKWludmFsaWRhdGU7CitAZW5kCisKKyNl
bmRpZiAvLyBVU0UoQVBQTEVfSU5URVJOQUxfU0RLKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9TaGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHAgYi9Tb3VyY2UvV2ViS2l0
L1NoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcAppbmRleCBjN2E1OWEwNGRj
YmQxOTNmZDVhMmEwMDMyMmQ4NTVlODU1MWUyOTAxLi40NjQzMWVhYzI1NmQzYWNiMzFkMTY3OGJh
YTdiMmQyOGYwMmZhOGZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcm9j
ZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQ
cm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcApAQCAtODUsNiArODUsOSBAQCB2b2lkIFdlYlBy
b2Nlc3NDcmVhdGlvblBhcmFtZXRlcnM6OmVuY29kZShJUEM6OkVuY29kZXImIGVuY29kZXIpIGNv
bnN0CiAjZW5kaWYKICAgICBlbmNvZGVyIDw8IHRleHRDaGVja2VyU3RhdGU7CiAgICAgZW5jb2Rl
ciA8PCBmdWxsS2V5Ym9hcmRBY2Nlc3NFbmFibGVkOworI2lmIFBMQVRGT1JNKElPUykKKyAgICBl
bmNvZGVyIDw8IGhhc01vdXNlRGV2aWNlOworI2VuZGlmCiAgICAgZW5jb2RlciA8PCBkZWZhdWx0
UmVxdWVzdFRpbWVvdXRJbnRlcnZhbDsKICAgICBlbmNvZGVyIDw8IGJhY2tGb3J3YXJkQ2FjaGVD
YXBhY2l0eTsKICNpZiBQTEFURk9STShDT0NPQSkKQEAgLTI5Myw2ICsyOTYsMTAgQEAgYm9vbCBX
ZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzOjpkZWNvZGUoSVBDOjpEZWNvZGVyJiBkZWNvZGVy
LCBXZWJQcm9jZXNzQ3JlYXQKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIGlmICghZGVjb2Rl
ci5kZWNvZGUocGFyYW1ldGVycy5mdWxsS2V5Ym9hcmRBY2Nlc3NFbmFibGVkKSkKICAgICAgICAg
cmV0dXJuIGZhbHNlOworI2lmIFBMQVRGT1JNKElPUykKKyAgICBpZiAoIWRlY29kZXIuZGVjb2Rl
KHBhcmFtZXRlcnMuaGFzTW91c2VEZXZpY2UpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisjZW5k
aWYKICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHBhcmFtZXRlcnMuZGVmYXVsdFJlcXVlc3RUaW1l
b3V0SW50ZXJ2YWwpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgaWYgKCFkZWNvZGVyLmRl
Y29kZShwYXJhbWV0ZXJzLmJhY2tGb3J3YXJkQ2FjaGVDYXBhY2l0eSkpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmggYi9Tb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgKaW5kZXggMGQz
YTI5Njc3MTUzN2ZjMzFlMTJmNTAxMTk4NjM2M2RhYzEwOTFkOS4uNzQwZTgwNmJmNDFmODM1ODc3
NzY1NGNhMTE1NDczZTJiNTllMzAzYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQv
V2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVk
L1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaApAQCAtMTE3LDYgKzExNyw5IEBAIHN0cnVj
dCBXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzIHsKICAgICBib29sIHNob3VsZFN1cHByZXNz
TWVtb3J5UHJlc3N1cmVIYW5kbGVyIHsgZmFsc2UgfTsKICAgICBib29sIHNob3VsZFVzZUZvbnRT
bW9vdGhpbmcgeyB0cnVlIH07CiAgICAgYm9vbCBmdWxsS2V5Ym9hcmRBY2Nlc3NFbmFibGVkIHsg
ZmFsc2UgfTsKKyNpZiBQTEFURk9STShJT1MpCisgICAgYm9vbCBoYXNNb3VzZURldmljZSB7IGZh
bHNlIH07CisjZW5kaWYKICAgICBib29sIG1lbW9yeUNhY2hlRGlzYWJsZWQgeyBmYWxzZSB9Owog
ICAgIGJvb2wgYXR0clN0eWxlRW5hYmxlZCB7IGZhbHNlIH07CiAgICAgYm9vbCB1c2VHUFVQcm9j
ZXNzRm9yTWVkaWFFbmFibGVkIHsgZmFsc2UgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
U291cmNlc0NvY29hLnR4dCBiL1NvdXJjZS9XZWJLaXQvU291cmNlc0NvY29hLnR4dAppbmRleCBi
NmUzYjRkYmFiOTA0MzA5MDQwYTlkNzNmYTI2YmQzODU5Yjg3NWQ4Li42MjdiMDYxMzg1Y2VlNzIz
YzNmNDk2YWMzZjZlYjdjZmI0MzU3MTQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NvdXJj
ZXNDb2NvYS50eHQKKysrIGIvU291cmNlL1dlYktpdC9Tb3VyY2VzQ29jb2EudHh0CkBAIC00NjAs
NiArNDYwLDcgQEAgVUlQcm9jZXNzL2lvcy9XS0dlb2xvY2F0aW9uUHJvdmlkZXJJT1MubW0KIFVJ
UHJvY2Vzcy9pb3MvV0tHZW9sb2NhdGlvblByb3ZpZGVySU9TT2JqQ1NlY3VyaXR5T3JpZ2luLm1t
CiBVSVByb2Nlc3MvaW9zL1dLSGlnaGxpZ2h0TG9uZ1ByZXNzR2VzdHVyZVJlY29nbml6ZXIubW0K
IFVJUHJvY2Vzcy9pb3MvV0tLZXlib2FyZFNjcm9sbGluZ0FuaW1hdG9yLm1tCitVSVByb2Nlc3Mv
aW9zL1dLTW91c2VEZXZpY2VPYnNlcnZlci5tbQogVUlQcm9jZXNzL2lvcy9XS01vdXNlR2VzdHVy
ZVJlY29nbml6ZXIubW0KIFVJUHJvY2Vzcy9pb3MvV0tQYXNzd29yZFZpZXcubW0KIFVJUHJvY2Vz
cy9pb3MvV0tQREZQYWdlTnVtYmVySW5kaWNhdG9yLm1tCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJQcm9jZXNzUG9vbENvY29hLm1tIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQ29jb2EvV2ViUHJvY2Vzc1Bvb2xDb2NvYS5tbQppbmRleCA4NDcyYWU5MjAy
MmViZWQwZjRhZDdlMTI0OTQ2YzgwZTAxNWY2MTJkLi4yYTYxOTI5MWIwNDkyZDFlNWFmYjUyODRm
YTExMTQyMjExMDRmMTNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2Nv
YS9XZWJQcm9jZXNzUG9vbENvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0Nv
Y29hL1dlYlByb2Nlc3NQb29sQ29jb2EubW0KQEAgLTg4LDYgKzg4LDEwIEBACiAjaW1wb3J0IDxw
YWwvc3BpL2lvcy9Nb2JpbGVHZXN0YWx0U1BJLmg+CiAjZW5kaWYKIAorI2lmIFBMQVRGT1JNKElP
UykKKyNpbXBvcnQgIldLTW91c2VEZXZpY2VPYnNlcnZlci5oIgorI2VuZGlmCisKICNpZiBQTEFU
Rk9STShDT0NPQSkKICNpbXBvcnQgPFdlYkNvcmUvU3lzdGVtQmF0dGVyeS5oPgogI2VuZGlmCkBA
IC00ODUsNiArNDg5LDEwIEBAIHZvaWQgV2ViUHJvY2Vzc1Bvb2w6OnBsYXRmb3JtSW5pdGlhbGl6
ZVdlYlByb2Nlc3MoY29uc3QgV2ViUHJvY2Vzc1Byb3h5JiBwcm9jZXNzCiAjaWYgSEFWRShDQVRB
TFlTVF9VU0VSX0lOVEVSRkFDRV9JRElPTV9BTkRfU0NBTEVfRkFDVE9SKQogICAgIHBhcmFtZXRl
cnMub3ZlcnJpZGVVc2VySW50ZXJmYWNlSWRpb21BbmRTY2FsZSA9IHsgX1VJQXBwbGljYXRpb25D
YXRhbHlzdFVzZXJJbnRlcmZhY2VJZGlvbSgpLCBfVUlBcHBsaWNhdGlvbkNhdGFseXN0U2NhbGVG
YWN0b3IoKSB9OwogI2VuZGlmCisKKyNpZiBQTEFURk9STShJT1MpCisgICAgcGFyYW1ldGVycy5o
YXNNb3VzZURldmljZSA9IFtbV0tNb3VzZURldmljZU9ic2VydmVyIHNoYXJlZEluc3RhbmNlXSBo
YXNNb3VzZURldmljZV07CisjZW5kaWYKIH0KIAogdm9pZCBXZWJQcm9jZXNzUG9vbDo6cGxhdGZv
cm1Jbml0aWFsaXplTmV0d29ya1Byb2Nlc3MoTmV0d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFtZXRl
cnMmIHBhcmFtZXRlcnMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQ
cm9jZXNzUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5
LmNwcAppbmRleCA1ZTJjNzA4ZjIyZjk3YmVhZjM3MDkzNTJjYjY5ZTNkNGMyOGUxZDliLi4xNmUw
OTQzNjQ5NjE0NmRmZmIxZDg3YzkzMGI2ZDM0MWU1ZGE3ZjdhIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAKQEAgLTM5OCw4ICszOTgsMTYgQEAgdm9pZCBX
ZWJQcm9jZXNzUHJveHk6OmNvbm5lY3Rpb25XaWxsT3BlbihJUEM6OkNvbm5lY3Rpb24mIGNvbm5l
Y3Rpb24pCiAjaWYgRU5BQkxFKFNFQ19JVEVNX1NISU0pCiAgICAgU2VjSXRlbVNoaW1Qcm94eTo6
c2luZ2xldG9uKCkuaW5pdGlhbGl6ZUNvbm5lY3Rpb24oY29ubmVjdGlvbik7CiAjZW5kaWYKKwor
ICAgIHBsYXRmb3JtQ29ubmVjdGlvbldpbGxPcGVuKCk7CiB9CiAKKyNpZiAhUExBVEZPUk0oSU9T
KQordm9pZCBXZWJQcm9jZXNzUHJveHk6OnBsYXRmb3JtQ29ubmVjdGlvbldpbGxPcGVuKCkKK3sK
K30KKyNlbmRpZgorCiB2b2lkIFdlYlByb2Nlc3NQcm94eTo6cHJvY2Vzc1dpbGxTaHV0RG93bihJ
UEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24pCiB7CiAgICAgQVNTRVJUX1VOVVNFRChjb25uZWN0
aW9uLCB0aGlzLT5jb25uZWN0aW9uKCkgPT0gJmNvbm5lY3Rpb24pOwpAQCAtNDA3LDggKzQxNSwx
NiBAQCB2b2lkIFdlYlByb2Nlc3NQcm94eTo6cHJvY2Vzc1dpbGxTaHV0RG93bihJUEM6OkNvbm5l
Y3Rpb24mIGNvbm5lY3Rpb24pCiAjaWYgUExBVEZPUk0oTUFDKSAmJiBFTkFCTEUoV0VCUFJPQ0VT
U19XSU5ET1dTRVJWRVJfQkxPQ0tJTkcpCiAgICAgcHJvY2Vzc1Bvb2woKS5zdG9wRGlzcGxheUxp
bmtzKGNvbm5lY3Rpb24pOwogI2VuZGlmCisKKyAgICBwbGF0Zm9ybVByb2Nlc3NXaWxsU2h1dERv
d24oKTsKIH0KIAorI2lmICFQTEFURk9STShJT1MpCit2b2lkIFdlYlByb2Nlc3NQcm94eTo6cGxh
dGZvcm1Qcm9jZXNzV2lsbFNodXREb3duKCkKK3sKK30KKyNlbmRpZgorCiB2b2lkIFdlYlByb2Nl
c3NQcm94eTo6c2h1dERvd24oKQogewogICAgIFJFTEVBU0VfQVNTRVJUKGlzTWFpblRocmVhZE9y
Q2hlY2tEaXNhYmxlZCgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dl
YlByb2Nlc3NQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5
LmgKaW5kZXggZTBlOGRjMGFjNzA4YjEyNDhiMWNjODBhZGNiMTlkMTg0MTIzOWM3My4uZjhlMWE1
YjFmYjkzYTQ2NWZiNTc5YzNiZGRlOGJiZDQ5N2E4ZDdmNiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmgKQEAgLTMwNiw2ICszMDYsMTAgQEAgcHVibGljOgogICAg
IHZvaWQgZGlkU2V0QXNzZXJ0aW9uVHlwZShQcm9jZXNzQXNzZXJ0aW9uVHlwZSkgZmluYWw7CiAg
ICAgQVNDSUlMaXRlcmFsIGNsaWVudE5hbWUoKSBjb25zdCBmaW5hbCB7IHJldHVybiAiV2ViUHJv
Y2VzcyJfczsgfQogCisjaWYgUExBVEZPUk0oSU9TKQorICAgIHZvaWQgc2V0SGFzTW91c2VEZXZp
Y2UoYm9vbCk7CisjZW5kaWYKKwogI2lmIFBMQVRGT1JNKENPQ09BKQogICAgIGVudW0gU2FuZGJv
eEV4dGVuc2lvblR5cGUgOiB1aW50MzJfdCB7CiAgICAgICAgIE5vbmUgPSAwLApAQCAtNDEwLDYg
KzQxNCw5IEBAIHByb3RlY3RlZDoKICAgICB2b2lkIHZhbGlkYXRlRnJlZXplclN0YXR1cygpOwog
CiBwcml2YXRlOgorICAgIHZvaWQgcGxhdGZvcm1Db25uZWN0aW9uV2lsbE9wZW4oKTsKKyAgICB2
b2lkIHBsYXRmb3JtUHJvY2Vzc1dpbGxTaHV0RG93bigpOworCiAgICAgLy8gSVBDIG1lc3NhZ2Ug
aGFuZGxlcnMuCiAgICAgdm9pZCB1cGRhdGVCYWNrRm9yd2FyZEl0ZW0oY29uc3QgQmFja0Zvcndh
cmRMaXN0SXRlbVN0YXRlJik7CiAgICAgdm9pZCBkaWREZXN0cm95RnJhbWUoV2ViQ29yZTo6RnJh
bWVJZGVudGlmaWVyKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9X
S01vdXNlRGV2aWNlT2JzZXJ2ZXIuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS01v
dXNlRGV2aWNlT2JzZXJ2ZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41MWQyMTdiOWNjY2Q5ZDg5NWI0MWE0ZmU1
YjI2NjBkNjM3ZTVmYTJjCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvaW9zL1dLTW91c2VEZXZpY2VPYnNlcnZlci5oCkBAIC0wLDAgKzEsNDcgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRT
IENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgor
ICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkK
KyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisjaWYgUExBVEZPUk0oSU9TKQorCisjaW1wb3J0ICJCYWNrQm9hcmRTZXJ2aWNlc1NQSS5o
IgorCituYW1lc3BhY2UgV2ViS2l0IHsKK2NsYXNzIFdlYlByb2Nlc3NQcm94eTsKK30KKworQGlu
dGVyZmFjZSBXS01vdXNlRGV2aWNlT2JzZXJ2ZXIgOiBOU09iamVjdDxCS1NNb3VzZVBvaW50ZXJE
ZXZpY2VPYnNlcnZlcj4KKworKyAoV0tNb3VzZURldmljZU9ic2VydmVyICopc2hhcmVkSW5zdGFu
Y2U7CisKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkgQk9PTCBoYXNNb3VzZURldmlj
ZTsKKworLSAodm9pZClhZGRXZWJQcm9jZXNzUHJveHk6KFdlYktpdDo6V2ViUHJvY2Vzc1Byb3h5
Jil3ZWJQcm9jZXNzUHJveHk7CistICh2b2lkKXJlbW92ZVdlYlByb2Nlc3NQcm94eTooV2ViS2l0
OjpXZWJQcm9jZXNzUHJveHkmKXdlYlByb2Nlc3NQcm94eTsKKworLSAodm9pZClfc2V0SGFzTW91
c2VEZXZpY2VGb3JUZXN0aW5nOihCT09MKWhhc01vdXNlRGV2aWNlOworCitAZW5kCisKKyNlbmRp
ZiAvLyBQTEFURk9STShJT1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9p
b3MvV0tNb3VzZURldmljZU9ic2VydmVyLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9z
L1dLTW91c2VEZXZpY2VPYnNlcnZlci5tbQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45YmU4MWQzNTM3MTc2ZmU0YTgz
NTk3MmM5ODUzMGU0MjkyOWI0Mjc0Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvaW9zL1dLTW91c2VEZXZpY2VPYnNlcnZlci5tbQpAQCAtMCwwICsxLDEyMCBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNpbXBvcnQgImNvbmZpZy5oIgorI2ltcG9ydCAiV0tNb3VzZURldmljZU9i
c2VydmVyLmgiCisKKyNpZiBQTEFURk9STShJT1MpCisKKyNpbXBvcnQgIldlYlByb2Nlc3NQcm94
eS5oIgorI2luY2x1ZGUgPHd0Zi9XZWFrSGFzaFNldC5oPgorCitAaW1wbGVtZW50YXRpb24gV0tN
b3VzZURldmljZU9ic2VydmVyIHsKKyAgICBXZWFrSGFzaFNldDxXZWJLaXQ6OldlYlByb2Nlc3NQ
cm94eT4gX3dlYlByb2Nlc3NQcm94eUxpc3Q7CisKKyAgICBCT09MIF9oYXNNb3VzZURldmljZTsK
KyAgICBpZDxCU0ludmFsaWRhdGFibGU+IF90b2tlbjsKK30KKworKyAoV0tNb3VzZURldmljZU9i
c2VydmVyICopc2hhcmVkSW5zdGFuY2UgeworICAgIHN0YXRpYyBXS01vdXNlRGV2aWNlT2JzZXJ2
ZXIgKmluc3RhbmNlOworICAgIGlmICghaW5zdGFuY2UpCisgICAgICAgIGluc3RhbmNlID0gW1tX
S01vdXNlRGV2aWNlT2JzZXJ2ZXIgYWxsb2NdIGluaXRdOworICAgIHJldHVybiBpbnN0YW5jZTsK
K30KKworLSAodm9pZClkZWFsbG9jCit7CisgICAgaWYgKF90b2tlbikKKyAgICAgICAgW3NlbGYg
c3RvcF07CisKKyAgICBbc3VwZXIgZGVhbGxvY107Cit9CisKKyNwcmFnbWEgbWFyayAtIFdlYlBy
b2Nlc3NQcm94eSBBUEkKKworLSAodm9pZClhZGRXZWJQcm9jZXNzUHJveHk6KFdlYktpdDo6V2Vi
UHJvY2Vzc1Byb3h5Jil3ZWJQcm9jZXNzUHJveHkKK3sKKyAgICBpZiAoIV93ZWJQcm9jZXNzUHJv
eHlMaXN0LmFkZCh3ZWJQcm9jZXNzUHJveHkpKQorICAgICAgICByZXR1cm47CisKKyAgICBpZiAo
X3dlYlByb2Nlc3NQcm94eUxpc3QuY29tcHV0ZVNpemUoKSA9PSAxKQorICAgICAgICBbc2VsZiBz
dGFydF07Cit9CisKKy0gKHZvaWQpcmVtb3ZlV2ViUHJvY2Vzc1Byb3h5OihXZWJLaXQ6OldlYlBy
b2Nlc3NQcm94eSYpd2ViUHJvY2Vzc1Byb3h5Cit7CisgICAgaWYgKCFfd2ViUHJvY2Vzc1Byb3h5
TGlzdC5yZW1vdmUod2ViUHJvY2Vzc1Byb3h5KSkKKyAgICAgICAgcmV0dXJuOworCisgICAgaWYg
KF93ZWJQcm9jZXNzUHJveHlMaXN0LmNvbXB1dGVTaXplKCkgPT0gMCkKKyAgICAgICAgW3NlbGYg
c3RvcF07Cit9CisKKyNwcmFnbWEgbWFyayAtIEJLU01vdXNlUG9pbnRlckRldmljZU9ic2VydmVy
IHN0YXRlCisKKy0gKHZvaWQpc3RhcnQKK3sKKyAgICBBU1NFUlQoIV90b2tlbik7CisgICAgX3Rv
a2VuID0gW1tCS1NNb3VzZVBvaW50ZXJTZXJ2aWNlIHNoYXJlZEluc3RhbmNlXSBhZGRQb2ludGVy
RGV2aWNlT2JzZXJ2ZXI6c2VsZl07Cit9CisKKy0gKHZvaWQpc3RvcAoreworICAgIEFTU0VSVChf
dG9rZW4pOworICAgIFtfdG9rZW4gaW52YWxpZGF0ZV07CisgICAgX3Rva2VuID0gbmlsOworfQor
CisjcHJhZ21hIG1hcmsgLSBCS1NNb3VzZVBvaW50ZXJEZXZpY2VPYnNlcnZlciBoYW5kbGVycwor
CistICh2b2lkKW1vdXNlUG9pbnRlckRldmljZXNEaWRDaGFuZ2U6KE5TU2V0PEJLU01vdXNlUG9p
bnRlckRldmljZSAqPiAqKW1vdXNlUG9pbnRlckRldmljZXMKK3sKKyAgICBCT09MIGhhc01vdXNl
RGV2aWNlID0gW21vdXNlUG9pbnRlckRldmljZXMgY291bnRdID4gMDsKKyAgICBpZiAoaGFzTW91
c2VEZXZpY2UgPT0gX2hhc01vdXNlRGV2aWNlKQorICAgICAgICByZXR1cm47CisKKyAgICBfaGFz
TW91c2VEZXZpY2UgPSBoYXNNb3VzZURldmljZTsKKworICAgIGZvciAoYXV0byYgd2ViUHJvY2Vz
c1Byb3h5IDogX3dlYlByb2Nlc3NQcm94eUxpc3QpCisgICAgICAgIHdlYlByb2Nlc3NQcm94eS5z
ZXRIYXNNb3VzZURldmljZShfaGFzTW91c2VEZXZpY2UpOworfQorCisjcHJhZ21hIG1hcmsgLSBU
ZXN0aW5nCisKKy0gKHZvaWQpX3NldEhhc01vdXNlRGV2aWNlRm9yVGVzdGluZzooQk9PTCloYXNN
b3VzZURldmljZQoreworICAgIGlmIChoYXNNb3VzZURldmljZSA9PSBfaGFzTW91c2VEZXZpY2Up
CisgICAgICAgIHJldHVybjsKKworICAgIF9oYXNNb3VzZURldmljZSA9IGhhc01vdXNlRGV2aWNl
OworCisgICAgZm9yIChhdXRvJiB3ZWJQcm9jZXNzUHJveHkgOiBfd2ViUHJvY2Vzc1Byb3h5TGlz
dCkKKyAgICAgICAgd2ViUHJvY2Vzc1Byb3h5LnNldEhhc01vdXNlRGV2aWNlKF9oYXNNb3VzZURl
dmljZSk7Cit9CisKK0BlbmQKKworI2VuZGlmIC8vIFBMQVRGT1JNKElPUykKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XZWJQcm9jZXNzUHJveHlJT1MubW0gYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV2ViUHJvY2Vzc1Byb3h5SU9TLm1tCmluZGV4IGViMTc3
Y2Q3Y2RmNTFmMDI3ZjdjNWIxZWM3MmM4NzNmZmE2MTg0ZmEuLjY5ZTMyNDczNmE0YzQ4ZjNkNzA0
MzU0NzRlMGQ2YmY2MzBkOTFlMTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L2lvcy9XZWJQcm9jZXNzUHJveHlJT1MubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
aW9zL1dlYlByb2Nlc3NQcm94eUlPUy5tbQpAQCAtMzAsMTAgKzMwLDI4IEBACiAKICNpbXBvcnQg
IkFjY2Vzc2liaWxpdHlTdXBwb3J0U1BJLmgiCiAjaW1wb3J0ICJXS0Z1bGxLZXlib2FyZEFjY2Vz
c1dhdGNoZXIuaCIKKyNpbXBvcnQgIldLTW91c2VEZXZpY2VPYnNlcnZlci5oIgogI2ltcG9ydCAi
V2ViUHJvY2Vzc01lc3NhZ2VzLmgiCiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCisjaWYgUExBVEZP
Uk0oSU9TKQordm9pZCBXZWJQcm9jZXNzUHJveHk6OnBsYXRmb3JtQ29ubmVjdGlvbldpbGxPcGVu
KCkKK3sKKyAgICBbW1dLTW91c2VEZXZpY2VPYnNlcnZlciBzaGFyZWRJbnN0YW5jZV0gYWRkV2Vi
UHJvY2Vzc1Byb3h5Oip0aGlzXTsKK30KKwordm9pZCBXZWJQcm9jZXNzUHJveHk6OnBsYXRmb3Jt
UHJvY2Vzc1dpbGxTaHV0RG93bigpCit7CisgICAgW1tXS01vdXNlRGV2aWNlT2JzZXJ2ZXIgc2hh
cmVkSW5zdGFuY2VdIHJlbW92ZVdlYlByb2Nlc3NQcm94eToqdGhpc107Cit9CisKK3ZvaWQgV2Vi
UHJvY2Vzc1Byb3h5OjpzZXRIYXNNb3VzZURldmljZShib29sIGhhc01vdXNlRGV2aWNlKQorewor
ICAgIHNlbmQoTWVzc2FnZXM6OldlYlByb2Nlc3M6OlNldEhhc01vdXNlRGV2aWNlKGhhc01vdXNl
RGV2aWNlKSwgMCk7Cit9CisjZW5kaWYKKwogYm9vbCBXZWJQcm9jZXNzUHJveHk6OmZ1bGxLZXli
b2FyZEFjY2Vzc0VuYWJsZWQoKQogewogI2lmIEVOQUJMRShGVUxMX0tFWUJPQVJEX0FDQ0VTUykK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2ogYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4
IDVkZTA4NmEwNDQwNWMwNDMyYjQ0MTZiNDE4MTFkM2M0NWQxYjVhM2IuLjZkZTg1ZTYzN2U2ZDVi
NjkzNzIyNDkxNDRhNDEzNTAzYjQ5NzU2N2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2Vi
S2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYktpdC9XZWJLaXQu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMTM3OSw2ICsxMzc5LDggQEAKIAkJOTNCREVC
MDExNzFERDdBRjAwQkZFRTFCIC8qIFdLUGFnZUxvYWRUeXBlc1ByaXZhdGUuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzQkRFQjAwMTcxREQ3QUYwMEJG
RUUxQiAvKiBXS1BhZ2VMb2FkVHlwZXNQcml2YXRlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVU
RVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJOTNFNkE0RUUxQkM1REQzOTAwRjhBMEU3IC8qIF9X
S0hpdFRlc3RSZXN1bHQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDkzRTZBNEVEMUJDNUREMzkwMEY4QTBFNyAvKiBfV0tIaXRUZXN0UmVzdWx0LmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJOTNGNTQ5QjQx
RTMxNzRCNzAwMEU3MjM5IC8qIFdLU25hcHNob3RDb25maWd1cmF0aW9uLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0Y1NDlCMzFFMzE3NEI3MDAwRTcy
MzkgLyogV0tTbmFwc2hvdENvbmZpZ3VyYXRpb24uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRF
UyA9IChQdWJsaWMsICk7IH07IH07CisJCTk1MEYyODgwMjUyNDE0RUEwMEI3NEYxQyAvKiBXS01v
dXNlRGV2aWNlT2JzZXJ2ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDk1MEYyODdFMjUyNDE0RTkwMEI3NEYxQyAvKiBXS01vdXNlRGV2aWNlT2JzZXJ2
ZXIuaCAqLzsgfTsKKwkJOTVDOTQzOTEyNTIzQzBEMDAwNTRGM0Q1IC8qIEJhc2VCb2FyZFNQSS5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTVDOTQzOTAy
NTIzQzBEMDAwNTRGM0Q1IC8qIEJhc2VCb2FyZFNQSS5oICovOyB9OwogCQk5OTAzNkFFMjIzQTk0
OUNGMDAwMEIwNkEgLyogX1dLSW5zcGVjdG9yRGVidWdnYWJsZUluZm9JbnRlcm5hbC5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTkwMzZBRTEyM0E5NDlD
RTAwMDBCMDZBIC8qIF9XS0luc3BlY3RvckRlYnVnZ2FibGVJbmZvSW50ZXJuYWwuaCAqLzsgfTsK
IAkJOTkwMzZBRTUyM0E5NTg3NTAwMDBCMDZBIC8qIEFQSURlYnVnZ2FibGVJbmZvLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5OTAzNkFFMzIzQTk1ODc0
MDAwMEIwNkEgLyogQVBJRGVidWdnYWJsZUluZm8uaCAqLzsgfTsKIAkJOTkwMzZBRTkyM0E5NzA4
NzAwMDBCMDZBIC8qIERlYnVnZ2FibGVJbmZvRGF0YS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTkwMzZBRTcyM0E5NzA4NzAwMDBCMDZBIC8qIERlYnVn
Z2FibGVJbmZvRGF0YS5oICovOyB9OwpAQCAtNDQyMCw2ICs0NDIyLDkgQEAKIAkJOTNFNkE0RUQx
QkM1REQzOTAwRjhBMEU3IC8qIF9XS0hpdFRlc3RSZXN1bHQuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gX1dLSGl0VGVzdFJlc3VsdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk5M0Y1NDlCMzFFMzE3NEI3MDAwRTcyMzkgLyogV0tTbmFwc2hvdENvbmZpZ3VyYXRp
b24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0tTbmFwc2hvdENvbmZpZ3Vy
YXRpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTNGNTQ5QjUxRTMxNzREQTAw
MEU3MjM5IC8qIFdLU25hcHNob3RDb25maWd1cmF0aW9uLm1tICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAub2JqY3BwOyBwYXRoID0gV0tTbmFwc2hvdENvbmZpZ3VyYXRpb24ubW07IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCTk1MEYyODdFMjUyNDE0RTkwMEI3NEYxQyAvKiBXS01vdXNl
RGV2aWNlT2JzZXJ2ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gV0tNb3Vz
ZURldmljZU9ic2VydmVyLmg7IHBhdGggPSBpb3MvV0tNb3VzZURldmljZU9ic2VydmVyLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTk1MEYyODdGMjUyNDE0RUEwMEI3NEYxQyAvKiBX
S01vdXNlRGV2aWNlT2JzZXJ2ZXIubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7
IG5hbWUgPSBXS01vdXNlRGV2aWNlT2JzZXJ2ZXIubW07IHBhdGggPSBpb3MvV0tNb3VzZURldmlj
ZU9ic2VydmVyLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5NUM5NDM5MDI1MjND
MEQwMDA1NEYzRDUgLyogQmFzZUJvYXJkU1BJLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IEJhc2VCb2FyZFNQSS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5OTAz
NkFFMTIzQTk0OUNFMDAwMEIwNkEgLyogX1dLSW5zcGVjdG9yRGVidWdnYWJsZUluZm9JbnRlcm5h
bC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBfV0tJbnNwZWN0b3JEZWJ1Z2dh
YmxlSW5mb0ludGVybmFsLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTk5MDM2QUUz
MjNBOTU4NzQwMDAwQjA2QSAvKiBBUElEZWJ1Z2dhYmxlSW5mby5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBBUElEZWJ1Z2dhYmxlSW5mby5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk5OTAzNkFFNDIzQTk1ODc0MDAwMEIwNkEgLyogQVBJRGVidWdnYWJsZUluZm8u
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQVBJRGVidWdnYWJsZUlu
Zm8uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNzAxNCw2ICs3MDE5LDggQEAK
IAkJCQk5MzNERjgyRjFCM0JDMEI0MDBBRUE5RTMgLyogV0tJbWFnZVByZXZpZXdWaWV3Q29udHJv
bGxlci5tbSAqLywKIAkJCQkyREQ1RTEyNzIxMEFEQzdBMDBEQjYwMTIgLyogV0tLZXlib2FyZFNj
cm9sbGluZ0FuaW1hdG9yLmggKi8sCiAJCQkJMkRENUUxMjYyMTBBREM3QTAwREI2MDEyIC8qIFdL
S2V5Ym9hcmRTY3JvbGxpbmdBbmltYXRvci5tbSAqLywKKwkJCQk5NTBGMjg3RTI1MjQxNEU5MDBC
NzRGMUMgLyogV0tNb3VzZURldmljZU9ic2VydmVyLmggKi8sCisJCQkJOTUwRjI4N0YyNTI0MTRF
QTAwQjc0RjFDIC8qIFdLTW91c2VEZXZpY2VPYnNlcnZlci5tbSAqLywKIAkJCQkyREI5NDI5NzIz
NEU3QTdGMDBFNzc2QUQgLyogV0tNb3VzZUdlc3R1cmVSZWNvZ25pemVyLmggKi8sCiAJCQkJMkRC
OTQyOTgyMzRFN0E3RjAwRTc3NkFEIC8qIFdLTW91c2VHZXN0dXJlUmVjb2duaXplci5tbSAqLywK
IAkJCQlBMTVFRURFNDFFMzAxQ0VFMDAwMDY5QjAgLyogV0tQYXNzd29yZFZpZXcuaCAqLywKQEAg
LTEwMzc0LDYgKzEwMzgxLDcgQEAKIAkJCWNoaWxkcmVuID0gKAogCQkJCUNFMUEwQkNDMUE0OEU2
QzYwMDU0RUY3NCAvKiBBc3NlcnRpb25TZXJ2aWNlc1NQSS5oICovLAogCQkJCUNEQTA0MUYzMUFD
RTIxMDUwMDRBMTNFQyAvKiBCYWNrQm9hcmRTZXJ2aWNlc1NQSS5oICovLAorCQkJCTk1Qzk0Mzkw
MjUyM0MwRDAwMDU0RjNENSAvKiBCYXNlQm9hcmRTUEkuaCAqLywKIAkJCQkyRDRBRjA4ODIwNDRD
M0M0MDA2Qzg4MTcgLyogRnJvbnRCb2FyZFNlcnZpY2VzU1BJLmggKi8sCiAJCQkJQTEzQjNEQTEy
MDdGMzlERTAwOTBDNThEIC8qIE1vYmlsZVdpRmlTUEkuaCAqLywKIAkJCQkzMTc4QUY5NzIwRTJB
N0Y4MDA3NERFOTQgLyogUERGS2l0U1BJLmggKi8sCkBAIC0xMDc0MCw2ICsxMDc0OCw3IEBACiAJ
CQkJMjkwRjQyNzIxNzJBMEM3NDAwOTM5RkYwIC8qIEF1eGlsaWFyeVByb2Nlc3NTdXBwbGVtZW50
LmggaW4gSGVhZGVycyAqLywKIAkJCQlDREEwNDFGNDFBQ0UyMTA1MDA0QTEzRUMgLyogQmFja0Jv
YXJkU2VydmljZXNTUEkuaCBpbiBIZWFkZXJzICovLAogCQkJCTQ2QTJCNjA5MUU1Njc2QTYwMEMz
REVEQSAvKiBCYWNrZ3JvdW5kUHJvY2Vzc1Jlc3BvbnNpdmVuZXNzVGltZXIuaCBpbiBIZWFkZXJz
ICovLAorCQkJCTk1Qzk0MzkxMjUyM0MwRDAwMDU0RjNENSAvKiBCYXNlQm9hcmRTUEkuaCBpbiBI
ZWFkZXJzICovLAogCQkJCUUxNjRBMkYyMTkxQUYxNEUwMDEwNzM3RCAvKiBCbG9iRGF0YUZpbGVS
ZWZlcmVuY2VXaXRoU2FuZGJveEV4dGVuc2lvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTE3MDg3
NkMxNkQ2Q0E2OTAwRjk5MjI2IC8qIEJsb2JSZWdpc3RyeVByb3h5LmggaW4gSGVhZGVycyAqLywK
IAkJCQk0RjYwMTQzMjE1NUM1QUEyMDAxRkJERTAgLyogQmxvY2tpbmdSZXNwb25zZU1hcC5oIGlu
IEhlYWRlcnMgKi8sCkBAIC0xMTU5Nyw2ICsxMTYwNiw3IEBACiAJCQkJNUNBQkRDODYyMkM0MEZE
RTAwMUVERThFIC8qIFdLTWVzc2FnZUxpc3RlbmVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlDMTFF
MTY5NDIxMkI4N0M1MDA5ODVGRjYgLyogV0tNb2NrRGlzcGxheS5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJNDExQThEREIyMERERDFBQzAwNjBEMzRGIC8qIFdLTW9ja01lZGlhRGV2aWNlLmggaW4gSGVh
ZGVycyAqLywKKwkJCQk5NTBGMjg4MDI1MjQxNEVBMDBCNzRGMUMgLyogV0tNb3VzZURldmljZU9i
c2VydmVyLmggaW4gSGVhZGVycyAqLywKIAkJCQkyREI5NDI5OTIzNEU3QTdGMDBFNzc2QUQgLyog
V0tNb3VzZUdlc3R1cmVSZWNvZ25pemVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzQwNzVGRTEy
NEZGMDI3MDA2OEYyMEEgLyogV0tNdXRhYmxlQXJyYXkuaCBpbiBIZWFkZXJzICovLAogCQkJCUJD
NDA3NjAwMTI0RkYwMjcwMDY4RjIwQSAvKiBXS011dGFibGVEaWN0aW9uYXJ5LmggaW4gSGVhZGVy
cyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9y
dC9XZWJDaHJvbWVDbGllbnQuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAKaW5kZXggMTg4YmM1ZTllYjlkYjc0NDA1ZTA4ZjZl
MDU4MjNlYTNjMzdhODJhMS4uODkzNmMzYzMyNGY5M2VjYTk1YWU0NGY1YzMyM2E1OGM2MmU1ZGQ3
OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dl
YkNocm9tZUNsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAKQEAgLTUwNiw2ICs1MDYsMTMgQEAgS2V5Ym9hcmRV
SU1vZGUgV2ViQ2hyb21lQ2xpZW50OjprZXlib2FyZFVJTW9kZSgpCiAgICAgcmV0dXJuIG1fcGFn
ZS5rZXlib2FyZFVJTW9kZSgpOwogfQogCisjaWYgUExBVEZPUk0oSU9TKQorYm9vbCBXZWJDaHJv
bWVDbGllbnQ6Omhhc01vdXNlRGV2aWNlKCkKK3sKKyAgICByZXR1cm4gV2ViUHJvY2Vzczo6c2lu
Z2xldG9uKCkuaGFzTW91c2VEZXZpY2UoKTsKK30KKyNlbmRpZgorCiAjaWYgRU5BQkxFKFBPSU5U
RVJfTE9DSykKIAogYm9vbCBXZWJDaHJvbWVDbGllbnQ6OnJlcXVlc3RQb2ludGVyTG9jaygpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hy
b21lQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2Vi
Q2hyb21lQ2xpZW50LmgKaW5kZXggYmRiNGRmZmJiMDE1YTM3NzIwNmJkYjQyNWE3MjVhZDY0ZTAx
NTg3Yi4uN2Q1M2NiYjViZTE5YjExZTFlZjQ4MDkzY2Y3MmIxZTIxYTlmZmY5NSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVu
dC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJv
bWVDbGllbnQuaApAQCAtMTEyLDYgKzExMiwxMCBAQCBwcml2YXRlOgogCiAgICAgV2ViQ29yZTo6
S2V5Ym9hcmRVSU1vZGUga2V5Ym9hcmRVSU1vZGUoKSBmaW5hbDsKIAorI2lmIFBMQVRGT1JNKElP
UykKKyAgICBib29sIGhhc01vdXNlRGV2aWNlKCkgZmluYWw7CisjZW5kaWYKKwogICAgIC8vIEhv
c3RXaW5kb3cgbWVtYmVyIGZ1bmN0aW9uIGZpbmFscy4KICAgICB2b2lkIGludmFsaWRhdGVSb290
Vmlldyhjb25zdCBXZWJDb3JlOjpJbnRSZWN0JikgZmluYWw7CiAgICAgdm9pZCBpbnZhbGlkYXRl
Q29udGVudHNBbmRSb290Vmlldyhjb25zdCBXZWJDb3JlOjpJbnRSZWN0JikgZmluYWw7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAKaW5kZXggNzdlOGZiNmQyZmNlMmVmNWJh
ODRmNjZmOTI2Y2M1M2I1ZTAyOWNjNy4uMGY4MGI2MjA3ZjRkYzgxZWQ4Y2ZjZWI1MGZiNmVlMjgw
ZjdjYjc3OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3Mu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcApAQCAtNDA2
LDYgKzQwNiwxMCBAQCB2b2lkIFdlYlByb2Nlc3M6OmluaXRpYWxpemVXZWJQcm9jZXNzKFdlYlBy
b2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMmJiBwYXJhbWV0ZXJzKQogCiAgICAgbV9mdWxsS2V5Ym9h
cmRBY2Nlc3NFbmFibGVkID0gcGFyYW1ldGVycy5mdWxsS2V5Ym9hcmRBY2Nlc3NFbmFibGVkOwog
CisjaWYgUExBVEZPUk0oSU9TKQorICAgIG1faGFzTW91c2VEZXZpY2UgPSBwYXJhbWV0ZXJzLmhh
c01vdXNlRGV2aWNlOworI2VuZGlmCisKICAgICBmb3IgKGF1dG8mIHNjaGVtZSA6IHBhcmFtZXRl
cnMudXJsU2NoZW1lc1JlZ2lzdGVyZWRBc0VtcHR5RG9jdW1lbnQpCiAgICAgICAgIHJlZ2lzdGVy
VVJMU2NoZW1lQXNFbXB0eURvY3VtZW50KHNjaGVtZSk7CiAKQEAgLTEwNTAsNiArMTA1NCwxOCBA
QCB2b2lkIFdlYlByb2Nlc3M6Om1lc3NhZ2VzQXZhaWxhYmxlRm9yUG9ydChjb25zdCBNZXNzYWdl
UG9ydElkZW50aWZpZXImIGlkZW50aWZpZQogICAgIE1lc3NhZ2VQb3J0Ojpub3RpZnlNZXNzYWdl
QXZhaWxhYmxlKGlkZW50aWZpZXIpOwogfQogCisjaWYgUExBVEZPUk0oSU9TKQordm9pZCBXZWJQ
cm9jZXNzOjpzZXRIYXNNb3VzZURldmljZShib29sIGhhc01vdXNlRGV2aWNlKQoreworICAgIGlm
IChoYXNNb3VzZURldmljZSA9PSBtX2hhc01vdXNlRGV2aWNlKQorICAgICAgICByZXR1cm47CisK
KyAgICBtX2hhc01vdXNlRGV2aWNlID0gaGFzTW91c2VEZXZpY2U7CisKKyAgICBQYWdlOjp1cGRh
dGVTdHlsZUZvckFsbFBhZ2VzQWZ0ZXJHbG9iYWxDaGFuZ2VJbkVudmlyb25tZW50KCk7Cit9Cisj
ZW5kaWYKKwogI2lmIEVOQUJMRShHQU1FUEFEKQogCiB2b2lkIFdlYlByb2Nlc3M6OnNldEluaXRp
YWxHYW1lcGFkcyhjb25zdCBWZWN0b3I8V2ViS2l0OjpHYW1lcGFkRGF0YT4mIGdhbWVwYWREYXRh
cykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmggYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oCmluZGV4IDlkMGRkYmZkMzhkZTM4
MWRjMjVkYmViOTdkNDg2OWU5NGZkZWI4MjcuLjRiMmMxZDljYTA5Zjg3NWQ3OWQ4YjEzODMyZjRl
ZGQzOTZkOTVmYzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9j
ZXNzLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuaApAQCAtMTg3
LDYgKzE4NywxMSBAQCBwdWJsaWM6CiAKICAgICBib29sIGZ1bGxLZXlib2FyZEFjY2Vzc0VuYWJs
ZWQoKSBjb25zdCB7IHJldHVybiBtX2Z1bGxLZXlib2FyZEFjY2Vzc0VuYWJsZWQ7IH0KIAorI2lm
IFBMQVRGT1JNKElPUykKKyAgICBib29sIGhhc01vdXNlRGV2aWNlKCkgY29uc3QgeyByZXR1cm4g
bV9oYXNNb3VzZURldmljZTsgfQorICAgIHZvaWQgc2V0SGFzTW91c2VEZXZpY2UoYm9vbCk7Cisj
ZW5kaWYKKwogICAgIFdlYkZyYW1lKiB3ZWJGcmFtZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIp
IGNvbnN0OwogICAgIFZlY3RvcjxXZWJGcmFtZSo+IHdlYkZyYW1lcygpIGNvbnN0OwogICAgIHZv
aWQgYWRkV2ViRnJhbWUoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBXZWJGcmFtZSopOwpAQCAt
NTUzLDYgKzU1OCw5IEBAIHByaXZhdGU6CiAjZW5kaWYKIAogICAgIGJvb2wgbV9mdWxsS2V5Ym9h
cmRBY2Nlc3NFbmFibGVkIHsgZmFsc2UgfTsKKyNpZiBQTEFURk9STShJT1MpCisgICAgYm9vbCBt
X2hhc01vdXNlRGV2aWNlIHsgZmFsc2UgfTsKKyNlbmRpZgogCiAgICAgSGFzaE1hcDxXZWJDb3Jl
OjpGcmFtZUlkZW50aWZpZXIsIFdlYkZyYW1lKj4gbV9mcmFtZU1hcDsKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MubWVzc2FnZXMuaW4gYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5tZXNzYWdlcy5pbgppbmRleCAwMTIzNjc1N2E1
YzVmMGQyODBjNmRkMWY5YTE4MTUyYmJjZjE5YzA0Li44NTk2MjA1YzQ0OTRjYTUwZmM3MjI2NjNi
NDFiNmQ3OTI5ZTU5MjAwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
UHJvY2Vzcy5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJv
Y2Vzcy5tZXNzYWdlcy5pbgpAQCAtNTIsNiArNTIsMTAgQEAgbWVzc2FnZXMgLT4gV2ViUHJvY2Vz
cyBMZWdhY3lSZWNlaXZlciBOb3RSZWZDb3VudGVkIHsKICAgICBVc2VyUHJlZmVycmVkTGFuZ3Vh
Z2VzQ2hhbmdlZCgpCiAgICAgRnVsbEtleWJvYXJkQWNjZXNzTW9kZUNoYW5nZWQoYm9vbCBmdWxs
S2V5Ym9hcmRBY2Nlc3NFbmFibGVkKQogCisjaWYgUExBVEZPUk0oSU9TKQorICAgIFNldEhhc01v
dXNlRGV2aWNlKGJvb2wgaGFzTW91c2VEZXZpY2UpCisjZW5kaWYKKwogICAgICMgUGx1Zy1pbnMu
CiAgICAgRGlkQWRkUGx1Z0luQXV0b1N0YXJ0T3JpZ2luSGFzaCh1aW50MzJfdCBoYXNoLCBXYWxs
VGltZSBleHBpcmF0aW9uVGltZSkKICAgICBSZXNldFBsdWdJbkF1dG9TdGFydE9yaWdpbkhhc2hl
cyhIYXNoTWFwPHVpbnQzMl90LFdhbGxUaW1lPiBoYXNoZXMpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0TGVnYWN5L2lvcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnRJT1MuaCBiL1Nv
dXJjZS9XZWJLaXRMZWdhY3kvaW9zL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudElPUy5o
CmluZGV4IGE5MmJhYTZiMzA1OWRlODkxNDVmMDNiMWE1NzU3Zjk3MmE5NDA5OTkuLmYxNDFmNGI4
ZWM5MTNmOWQ1NWE5ODEyMjg0ODI2M2VjZGVlNGE1OWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXRMZWdhY3kvaW9zL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudElPUy5oCisrKyBiL1Nv
dXJjZS9XZWJLaXRMZWdhY3kvaW9zL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudElPUy5o
CkBAIC01MCw2ICs1MCwxMCBAQCBwcml2YXRlOgogICAgIHZvaWQgcnVuT3BlblBhbmVsKFdlYkNv
cmU6OkZyYW1lJiwgV2ViQ29yZTo6RmlsZUNob29zZXImKSBmaW5hbDsKICAgICB2b2lkIHNob3dT
aGFyZVNoZWV0KFdlYkNvcmU6OlNoYXJlRGF0YVdpdGhQYXJzZWRVUkwmLCBDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKGJvb2wpPiYmKSBmaW5hbDsKIAorI2lmIFBMQVRGT1JNKElPUykKKyAgICBib29s
IGhhc01vdXNlRGV2aWNlKCkgZmluYWwgeyByZXR1cm4gZmFsc2U7IH0KKyNlbmRpZgorCiAgICAg
dm9pZCBzZXRDdXJzb3IoY29uc3QgV2ViQ29yZTo6Q3Vyc29yJikgZmluYWwgeyB9CiAgICAgdm9p
ZCBzZXRDdXJzb3JIaWRkZW5VbnRpbE1vdXNlTW92ZXMoYm9vbCkgZmluYWwgeyB9CiAKZGlmZiAt
LWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCBjZmMzYjE3Y2Yx
MzYzZmUzYWE5MzY4Mzk0OGQwY2M5ZGM3ZDZmNWRjLi5jNTQwN2E3YjZkMGQ3M2IwNGU2NDY2ZWVk
MjQ5NTE2YWQwNWVlMmU4IDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTkgQEAKKzIwMjAtMDktMzAgIERldmluIFJvdXNzbyAgPGRy
b3Vzc29AYXBwbGUuY29tPgorCisgICAgICAgIENTUyBob3ZlciBhbmQgInBvaW50ZXI6IGZpbmUi
IG1lZGlhIHF1ZXJpZXMgZG8gbm90IGV2YWx1YXRlIHRvIHRydWUgd2l0aCBpT1MgMTMuNCBtb3Vz
ZSBzdXBwb3J0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0yMDkyOTIKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzYwNjYzMTI0PgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0
cy9XZWJLaXRDb2NvYS9pT1NNb3VzZVN1cHBvcnQubW06CisgICAgICAgIChldmFsdWF0ZU1lZGlh
UXVlcnkpOiBBZGRlZC4KKyAgICAgICAgKGlPU01vdXNlU3VwcG9ydC5Nb3VzZUluaXRpYWxseURp
c2Nvbm5lY3RlZCk6IEFkZGVkLgorICAgICAgICAoaU9TTW91c2VTdXBwb3J0Lk1vdXNlSW5pdGlh
bGx5Q29ubmVjdGVkKTogQWRkZWQuCisgICAgICAgIChpT1NNb3VzZVN1cHBvcnQuTW91c2VMYXRl
ckRpc2Nvbm5lY3RlZCk6IEFkZGVkLgorICAgICAgICAoaU9TTW91c2VTdXBwb3J0Lk1vdXNlTGF0
ZXJDb25uZWN0ZWQpOiBBZGRlZC4KKyAgICAgICAgKGlPU01vdXNlU3VwcG9ydC5Nb3VzZUFsd2F5
c0Nvbm5lY3RlZCk6IEFkZGVkLgorCiAyMDIwLTA5LTMwICBKb25hdGhhbiBCZWRhcmQgIDxqYmVk
YXJkQGFwcGxlLmNvbT4KIAogICAgICAgICBbd2Via2l0cHldIFVzZSB3ZWJraXRjb3JlcHkncyBh
dXRvIGluc3RhbGxlciBmb3IgaHRtbDVsaWIKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViS2l0Q29jb2EvaU9TTW91c2VTdXBwb3J0Lm1tIGIvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9pT1NNb3VzZVN1cHBvcnQubW0KaW5kZXggYzI0MzBiMjBl
Zjc3NmFlYTEzMDllOTMzOGQ2ZTJlYTBjZjUwYWExNi4uMGViYTM3OWFhZTFjMDVjNDg0NWQ3MjQ0
NWQ5NGRlZWVkZmM0M2ViMiAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJLaXRDb2NvYS9pT1NNb3VzZVN1cHBvcnQubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJLaXRDb2NvYS9pT1NNb3VzZVN1cHBvcnQubW0KQEAgLTMwMCw0ICszMDAsMTU5IEBA
IFRFU1QoaU9TTW91c2VTdXBwb3J0LCBXZWJzaXRlTW91c2VFdmVudFBvbGljaWVzKQogCiAjZW5k
aWYgLy8gRU5BQkxFKElPU19UT1VDSF9FVkVOVFMpCiAKK3N0YXRpYyBCT09MIGV2YWx1YXRlTWVk
aWFRdWVyeShSZXRhaW5QdHI8VGVzdFdLV2ViVmlldz4mIHdlYlZpZXcsIE5TU3RyaW5nICpxdWVy
eSkKK3sKKyAgICByZXR1cm4gW1t3ZWJWaWV3IG9iamVjdEJ5RXZhbHVhdGluZ0phdmFTY3JpcHQ6
W05TU3RyaW5nIHN0cmluZ1dpdGhGb3JtYXQ6QCJ3aW5kb3cubWF0Y2hNZWRpYShcIiglQClcIiku
bWF0Y2hlcyIsIHF1ZXJ5XV0gYm9vbFZhbHVlXTsKK30KKworI2lmIFBMQVRGT1JNKElPUykKKwor
QGludGVyZmFjZSBXS01vdXNlRGV2aWNlT2JzZXJ2ZXIKKysgKFdLTW91c2VEZXZpY2VPYnNlcnZl
ciAqKXNoYXJlZEluc3RhbmNlOworLSAodm9pZClfc2V0SGFzTW91c2VEZXZpY2VGb3JUZXN0aW5n
OihCT09MKWhhc01vdXNlRGV2aWNlOworQGVuZAorCitURVNUKGlPU01vdXNlU3VwcG9ydCwgTW91
c2VJbml0aWFsbHlEaXNjb25uZWN0ZWQpCit7CisgICAgW1tOU0NsYXNzRnJvbVN0cmluZyhAIldL
TW91c2VEZXZpY2VPYnNlcnZlciIpIHNoYXJlZEluc3RhbmNlXSBfc2V0SGFzTW91c2VEZXZpY2VG
b3JUZXN0aW5nOk5PXTsKKworICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJW
aWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5TTWFrZVJlY3QoMCwgMCwgODAwLCA2MDApXSk7CisK
KyAgICBbd2ViVmlldyBzeW5jaHJvbm91c2x5TG9hZEhUTUxTdHJpbmc6QCIiXTsKKworICAgIEVY
UEVDVF9GQUxTRShldmFsdWF0ZU1lZGlhUXVlcnkod2ViVmlldywgQCJob3ZlciIpKTsKKyAgICBF
WFBFQ1RfVFJVRShldmFsdWF0ZU1lZGlhUXVlcnkod2ViVmlldywgQCJob3Zlcjogbm9uZSIpKTsK
KyAgICBFWFBFQ1RfRkFMU0UoZXZhbHVhdGVNZWRpYVF1ZXJ5KHdlYlZpZXcsIEAiaG92ZXI6IGhv
dmVyIikpOworCisgICAgRVhQRUNUX0ZBTFNFKGV2YWx1YXRlTWVkaWFRdWVyeSh3ZWJWaWV3LCBA
ImFueS1ob3ZlciIpKTsKKyAgICBFWFBFQ1RfVFJVRShldmFsdWF0ZU1lZGlhUXVlcnkod2ViVmll
dywgQCJhbnktaG92ZXI6IG5vbmUiKSk7CisgICAgRVhQRUNUX0ZBTFNFKGV2YWx1YXRlTWVkaWFR
dWVyeSh3ZWJWaWV3LCBAImFueS1ob3ZlcjogaG92ZXIiKSk7CisKKyAgICBFWFBFQ1RfVFJVRShl
dmFsdWF0ZU1lZGlhUXVlcnkod2ViVmlldywgQCJwb2ludGVyIikpOworICAgIEVYUEVDVF9GQUxT
RShldmFsdWF0ZU1lZGlhUXVlcnkod2ViVmlldywgQCJwb2ludGVyOiBub25lIikpOworICAgIEVY
UEVDVF9UUlVFKGV2YWx1YXRlTWVkaWFRdWVyeSh3ZWJWaWV3LCBAInBvaW50ZXI6IGNvYXJzZSIp
KTsKKyAgICBFWFBFQ1RfRkFMU0UoZXZhbHVhdGVNZWRpYVF1ZXJ5KHdlYlZpZXcsIEAicG9pbnRl
cjogZmluZSIpKTsKKworICAgIEVYUEVDVF9UUlVFKGV2YWx1YXRlTWVkaWFRdWVyeSh3ZWJWaWV3
LCBAImFueS1wb2ludGVyIikpOworICAgIEVYUEVDVF9GQUxTRShldmFsdWF0ZU1lZGlhUXVlcnko
d2ViVmlldywgQCJhbnktcG9pbnRlcjogbm9uZSIpKTsKKyAgICBFWFBFQ1RfVFJVRShldmFsdWF0
ZU1lZGlhUXVlcnkod2ViVmlldywgQCJhbnktcG9pbnRlcjogY29hcnNlIikpOworICAgIEVYUEVD
VF9GQUxTRShldmFsdWF0ZU1lZGlhUXVlcnkod2ViVmlldywgQCJhbnktcG9pbnRlcjogZmluZSIp
KTsKK30KKworVEVTVChpT1NNb3VzZVN1cHBvcnQsIE1vdXNlSW5pdGlhbGx5Q29ubmVjdGVkKQor
eworICAgIFtbTlNDbGFzc0Zyb21TdHJpbmcoQCJXS01vdXNlRGV2aWNlT2JzZXJ2ZXIiKSBzaGFy
ZWRJbnN0YW5jZV0gX3NldEhhc01vdXNlRGV2aWNlRm9yVGVzdGluZzpZRVNdOworCisgICAgYXV0
byB3ZWJWaWV3ID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6
TlNNYWtlUmVjdCgwLCAwLCA4MDAsIDYwMCldKTsKKworICAgIFt3ZWJWaWV3IHN5bmNocm9ub3Vz
bHlMb2FkSFRNTFN0cmluZzpAIiJdOworCisgICAgRVhQRUNUX0ZBTFNFKGV2YWx1YXRlTWVkaWFR
dWVyeSh3ZWJWaWV3LCBAImhvdmVyIikpOworICAgIEVYUEVDVF9UUlVFKGV2YWx1YXRlTWVkaWFR
dWVyeSh3ZWJWaWV3LCBAImhvdmVyOiBub25lIikpOworICAgIEVYUEVDVF9GQUxTRShldmFsdWF0
ZU1lZGlhUXVlcnkod2ViVmlldywgQCJob3ZlcjogaG92ZXIiKSk7CisKKyAgICBFWFBFQ1RfVFJV
RShldmFsdWF0ZU1lZGlhUXVlcnkod2ViVmlldywgQCJhbnktaG92ZXIiKSk7CisgICAgRVhQRUNU
X0ZBTFNFKGV2YWx1YXRlTWVkaWFRdWVyeSh3ZWJWaWV3LCBAImFueS1ob3Zlcjogbm9uZSIpKTsK
KyAgICBFWFBFQ1RfVFJVRShldmFsdWF0ZU1lZGlhUXVlcnkod2ViVmlldywgQCJhbnktaG92ZXI6
IGhvdmVyIikpOworCisgICAgRVhQRUNUX1RSVUUoZXZhbHVhdGVNZWRpYVF1ZXJ5KHdlYlZpZXcs
IEAicG9pbnRlciIpKTsKKyAgICBFWFBFQ1RfRkFMU0UoZXZhbHVhdGVNZWRpYVF1ZXJ5KHdlYlZp
ZXcsIEAicG9pbnRlcjogbm9uZSIpKTsKKyAgICBFWFBFQ1RfVFJVRShldmFsdWF0ZU1lZGlhUXVl
cnkod2ViVmlldywgQCJwb2ludGVyOiBjb2Fyc2UiKSk7CisgICAgRVhQRUNUX0ZBTFNFKGV2YWx1
YXRlTWVkaWFRdWVyeSh3ZWJWaWV3LCBAInBvaW50ZXI6IGZpbmUiKSk7CisKKyAgICBFWFBFQ1Rf
VFJVRShldmFsdWF0ZU1lZGlhUXVlcnkod2ViVmlldywgQCJhbnktcG9pbnRlciIpKTsKKyAgICBF
WFBFQ1RfRkFMU0UoZXZhbHVhdGVNZWRpYVF1ZXJ5KHdlYlZpZXcsIEAiYW55LXBvaW50ZXI6IG5v
bmUiKSk7CisgICAgRVhQRUNUX1RSVUUoZXZhbHVhdGVNZWRpYVF1ZXJ5KHdlYlZpZXcsIEAiYW55
LXBvaW50ZXI6IGNvYXJzZSIpKTsKKyAgICBFWFBFQ1RfVFJVRShldmFsdWF0ZU1lZGlhUXVlcnko
d2ViVmlldywgQCJhbnktcG9pbnRlcjogZmluZSIpKTsKK30KKworVEVTVChpT1NNb3VzZVN1cHBv
cnQsIE1vdXNlTGF0ZXJEaXNjb25uZWN0ZWQpCit7CisgICAgW1tOU0NsYXNzRnJvbVN0cmluZyhA
IldLTW91c2VEZXZpY2VPYnNlcnZlciIpIHNoYXJlZEluc3RhbmNlXSBfc2V0SGFzTW91c2VEZXZp
Y2VGb3JUZXN0aW5nOllFU107CisKKyAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdL
V2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU01ha2VSZWN0KDAsIDAsIDgwMCwgNjAwKV0p
OworCisgICAgW3dlYlZpZXcgc3luY2hyb25vdXNseUxvYWRIVE1MU3RyaW5nOkAiIl07CisKKyAg
ICBbW05TQ2xhc3NGcm9tU3RyaW5nKEAiV0tNb3VzZURldmljZU9ic2VydmVyIikgc2hhcmVkSW5z
dGFuY2VdIF9zZXRIYXNNb3VzZURldmljZUZvclRlc3Rpbmc6Tk9dOworCisgICAgRVhQRUNUX0ZB
TFNFKGV2YWx1YXRlTWVkaWFRdWVyeSh3ZWJWaWV3LCBAImhvdmVyIikpOworICAgIEVYUEVDVF9U
UlVFKGV2YWx1YXRlTWVkaWFRdWVyeSh3ZWJWaWV3LCBAImhvdmVyOiBub25lIikpOworICAgIEVY
UEVDVF9GQUxTRShldmFsdWF0ZU1lZGlhUXVlcnkod2ViVmlldywgQCJob3ZlcjogaG92ZXIiKSk7
CisKKyAgICBFWFBFQ1RfRkFMU0UoZXZhbHVhdGVNZWRpYVF1ZXJ5KHdlYlZpZXcsIEAiYW55LWhv
dmVyIikpOworICAgIEVYUEVDVF9UUlVFKGV2YWx1YXRlTWVkaWFRdWVyeSh3ZWJWaWV3LCBAImFu
eS1ob3Zlcjogbm9uZSIpKTsKKyAgICBFWFBFQ1RfRkFMU0UoZXZhbHVhdGVNZWRpYVF1ZXJ5KHdl
YlZpZXcsIEAiYW55LWhvdmVyOiBob3ZlciIpKTsKKworICAgIEVYUEVDVF9UUlVFKGV2YWx1YXRl
TWVkaWFRdWVyeSh3ZWJWaWV3LCBAInBvaW50ZXIiKSk7CisgICAgRVhQRUNUX0ZBTFNFKGV2YWx1
YXRlTWVkaWFRdWVyeSh3ZWJWaWV3LCBAInBvaW50ZXI6IG5vbmUiKSk7CisgICAgRVhQRUNUX1RS
VUUoZXZhbHVhdGVNZWRpYVF1ZXJ5KHdlYlZpZXcsIEAicG9pbnRlcjogY29hcnNlIikpOworICAg
IEVYUEVDVF9GQUxTRShldmFsdWF0ZU1lZGlhUXVlcnkod2ViVmlldywgQCJwb2ludGVyOiBmaW5l
IikpOworCisgICAgRVhQRUNUX1RSVUUoZXZhbHVhdGVNZWRpYVF1ZXJ5KHdlYlZpZXcsIEAiYW55
LXBvaW50ZXIiKSk7CisgICAgRVhQRUNUX0ZBTFNFKGV2YWx1YXRlTWVkaWFRdWVyeSh3ZWJWaWV3
LCBAImFueS1wb2ludGVyOiBub25lIikpOworICAgIEVYUEVDVF9UUlVFKGV2YWx1YXRlTWVkaWFR
dWVyeSh3ZWJWaWV3LCBAImFueS1wb2ludGVyOiBjb2Fyc2UiKSk7CisgICAgRVhQRUNUX0ZBTFNF
KGV2YWx1YXRlTWVkaWFRdWVyeSh3ZWJWaWV3LCBAImFueS1wb2ludGVyOiBmaW5lIikpOworfQor
CitURVNUKGlPU01vdXNlU3VwcG9ydCwgTW91c2VMYXRlckNvbm5lY3RlZCkKK3sKKyAgICBbW05T
Q2xhc3NGcm9tU3RyaW5nKEAiV0tNb3VzZURldmljZU9ic2VydmVyIikgc2hhcmVkSW5zdGFuY2Vd
IF9zZXRIYXNNb3VzZURldmljZUZvclRlc3Rpbmc6Tk9dOworCisgICAgYXV0byB3ZWJWaWV3ID0g
YWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6TlNNYWtlUmVjdCgw
LCAwLCA4MDAsIDYwMCldKTsKKworICAgIFt3ZWJWaWV3IHN5bmNocm9ub3VzbHlMb2FkSFRNTFN0
cmluZzpAIiJdOworCisgICAgW1tOU0NsYXNzRnJvbVN0cmluZyhAIldLTW91c2VEZXZpY2VPYnNl
cnZlciIpIHNoYXJlZEluc3RhbmNlXSBfc2V0SGFzTW91c2VEZXZpY2VGb3JUZXN0aW5nOllFU107
CisKKyAgICBFWFBFQ1RfRkFMU0UoZXZhbHVhdGVNZWRpYVF1ZXJ5KHdlYlZpZXcsIEAiaG92ZXIi
KSk7CisgICAgRVhQRUNUX1RSVUUoZXZhbHVhdGVNZWRpYVF1ZXJ5KHdlYlZpZXcsIEAiaG92ZXI6
IG5vbmUiKSk7CisgICAgRVhQRUNUX0ZBTFNFKGV2YWx1YXRlTWVkaWFRdWVyeSh3ZWJWaWV3LCBA
ImhvdmVyOiBob3ZlciIpKTsKKworICAgIEVYUEVDVF9UUlVFKGV2YWx1YXRlTWVkaWFRdWVyeSh3
ZWJWaWV3LCBAImFueS1ob3ZlciIpKTsKKyAgICBFWFBFQ1RfRkFMU0UoZXZhbHVhdGVNZWRpYVF1
ZXJ5KHdlYlZpZXcsIEAiYW55LWhvdmVyOiBub25lIikpOworICAgIEVYUEVDVF9UUlVFKGV2YWx1
YXRlTWVkaWFRdWVyeSh3ZWJWaWV3LCBAImFueS1ob3ZlcjogaG92ZXIiKSk7CisKKyAgICBFWFBF
Q1RfVFJVRShldmFsdWF0ZU1lZGlhUXVlcnkod2ViVmlldywgQCJwb2ludGVyIikpOworICAgIEVY
UEVDVF9GQUxTRShldmFsdWF0ZU1lZGlhUXVlcnkod2ViVmlldywgQCJwb2ludGVyOiBub25lIikp
OworICAgIEVYUEVDVF9UUlVFKGV2YWx1YXRlTWVkaWFRdWVyeSh3ZWJWaWV3LCBAInBvaW50ZXI6
IGNvYXJzZSIpKTsKKyAgICBFWFBFQ1RfRkFMU0UoZXZhbHVhdGVNZWRpYVF1ZXJ5KHdlYlZpZXcs
IEAicG9pbnRlcjogZmluZSIpKTsKKworICAgIEVYUEVDVF9UUlVFKGV2YWx1YXRlTWVkaWFRdWVy
eSh3ZWJWaWV3LCBAImFueS1wb2ludGVyIikpOworICAgIEVYUEVDVF9GQUxTRShldmFsdWF0ZU1l
ZGlhUXVlcnkod2ViVmlldywgQCJhbnktcG9pbnRlcjogbm9uZSIpKTsKKyAgICBFWFBFQ1RfVFJV
RShldmFsdWF0ZU1lZGlhUXVlcnkod2ViVmlldywgQCJhbnktcG9pbnRlcjogY29hcnNlIikpOwor
ICAgIEVYUEVDVF9UUlVFKGV2YWx1YXRlTWVkaWFRdWVyeSh3ZWJWaWV3LCBAImFueS1wb2ludGVy
OiBmaW5lIikpOworfQorCisjZW5kaWYgLy8gUExBVEZPUk0oSU9TKQorCisjaWYgUExBVEZPUk0o
TUFDQ0FUQUxZU1QpCisKK1RFU1QoaU9TTW91c2VTdXBwb3J0LCBNb3VzZUFsd2F5c0Nvbm5lY3Rl
ZCkKK3sKKyAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10g
aW5pdFdpdGhGcmFtZTpOU01ha2VSZWN0KDAsIDAsIDgwMCwgNjAwKV0pOworCisgICAgW3dlYlZp
ZXcgc3luY2hyb25vdXNseUxvYWRIVE1MU3RyaW5nOkAiIl07CisKKyAgICBFWFBFQ1RfRkFMU0Uo
ZXZhbHVhdGVNZWRpYVF1ZXJ5KHdlYlZpZXcsIEAiaG92ZXIiKSk7CisgICAgRVhQRUNUX1RSVUUo
ZXZhbHVhdGVNZWRpYVF1ZXJ5KHdlYlZpZXcsIEAiaG92ZXI6IG5vbmUiKSk7CisgICAgRVhQRUNU
X0ZBTFNFKGV2YWx1YXRlTWVkaWFRdWVyeSh3ZWJWaWV3LCBAImhvdmVyOiBob3ZlciIpKTsKKwor
ICAgIEVYUEVDVF9UUlVFKGV2YWx1YXRlTWVkaWFRdWVyeSh3ZWJWaWV3LCBAImFueS1ob3ZlciIp
KTsKKyAgICBFWFBFQ1RfRkFMU0UoZXZhbHVhdGVNZWRpYVF1ZXJ5KHdlYlZpZXcsIEAiYW55LWhv
dmVyOiBub25lIikpOworICAgIEVYUEVDVF9UUlVFKGV2YWx1YXRlTWVkaWFRdWVyeSh3ZWJWaWV3
LCBAImFueS1ob3ZlcjogaG92ZXIiKSk7CisKKyAgICBFWFBFQ1RfVFJVRShldmFsdWF0ZU1lZGlh
UXVlcnkod2ViVmlldywgQCJwb2ludGVyIikpOworICAgIEVYUEVDVF9GQUxTRShldmFsdWF0ZU1l
ZGlhUXVlcnkod2ViVmlldywgQCJwb2ludGVyOiBub25lIikpOworICAgIEVYUEVDVF9UUlVFKGV2
YWx1YXRlTWVkaWFRdWVyeSh3ZWJWaWV3LCBAInBvaW50ZXI6IGNvYXJzZSIpKTsKKyAgICBFWFBF
Q1RfRkFMU0UoZXZhbHVhdGVNZWRpYVF1ZXJ5KHdlYlZpZXcsIEAicG9pbnRlcjogZmluZSIpKTsK
KworICAgIEVYUEVDVF9UUlVFKGV2YWx1YXRlTWVkaWFRdWVyeSh3ZWJWaWV3LCBAImFueS1wb2lu
dGVyIikpOworICAgIEVYUEVDVF9GQUxTRShldmFsdWF0ZU1lZGlhUXVlcnkod2ViVmlldywgQCJh
bnktcG9pbnRlcjogbm9uZSIpKTsKKyAgICBFWFBFQ1RfVFJVRShldmFsdWF0ZU1lZGlhUXVlcnko
d2ViVmlldywgQCJhbnktcG9pbnRlcjogY29hcnNlIikpOworICAgIEVYUEVDVF9UUlVFKGV2YWx1
YXRlTWVkaWFRdWVyeSh3ZWJWaWV3LCBAImFueS1wb2ludGVyOiBmaW5lIikpOworfQorCisjZW5k
aWYgLy8gUExBVEZPUk0oTUFDQ0FUQUxZU1QpCisKICNlbmRpZiAvLyBQTEFURk9STShJT1MpIHx8
IFBMQVRGT1JNKE1BQ0NBVEFMWVNUKQo=
</data>
<flag name="commit-queue"
          id="426045"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>410176</attachid>
            <date>2020-09-30 17:14:49 -0700</date>
            <delta_ts>2020-10-01 11:45:11 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-209292-20200930171449.patch</filename>
            <type>text/plain</type>
            <size>50753</size>
            <attacher name="Devin Rousso">hi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCBiMGM0NGZlNWNjNDNiYTMzZjcyMDk0N2ExMGVmZWFlMTMzMjJlM2NjLi4z
MDMyYTNmYmM4MjJlYjdlNTdmYjc0ZTA2YTc1ZDE2ZTRiYjY1NWQzIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMjkgQEAKKzIwMjAtMDktMzAgIERldmluIFJvdXNzbyAgPGRyb3Vzc29AYXBwbGUuY29t
PgorCisgICAgICAgIENTUyBob3ZlciBhbmQgInBvaW50ZXI6IGZpbmUiIG1lZGlhIHF1ZXJpZXMg
ZG8gbm90IGV2YWx1YXRlIHRvIHRydWUgd2l0aCBpT1MgMTMuNCBtb3VzZSBzdXBwb3J0CisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDkyOTIKKyAgICAg
ICAgPHJkYXI6Ly9wcm9ibGVtLzYwNjYzMTI0PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIE9uIGlPUywgdGhlIHByaW1hcnkgcG9pbnRlciB3aWxsIGFs
d2F5cyBiZSB0b3VjaCBpbnB1dCwgc28gdGhlIGBob3ZlcmAvYHBvaW50ZXJgIG1lZGlhIHF1ZXJ5
CisgICAgICAgIHNob3VsZCBuZXZlciBjaGFuZ2UuIElmIGEgbW91c2UgaXMgY29ubmVjdGVkLCBo
b3dldmVyLCBgYW55LWhvdmVyYC9gYW55LXBvaW50ZXJgIHNob3VsZAorICAgICAgICBjaGFuZ2Ug
YXMgbm93IHRoZXJlIGlzIGF0IGxlYXN0IG9uZSBkZXZpY2UgdGhhdCBzdXBwb3J0cyBgaG92ZXJg
L2BmaW5lYC4gTm90ZSB0aGF0IGluIHRoZQorICAgICAgICBjYXNlIG9mIGBhbnktcG9pbnRlcmAg
dGhpcyBtZWFucyB0aGF0IGJvdGggYGNvYXJzZWAgYW5kIGBmaW5lYCB3aWxsIGFwcGx5LiBDYXRh
bHlzdCBhc3N1bWVzCisgICAgICAgIHRoYXQgdGhlcmUgaXMgYWx3YXlzIGEgbW91c2UgY29ubmVj
dGVkLgorCisgICAgICAgIFNwZWM6IGh0dHBzOi8vZHJhZnRzLmNzc3dnLm9yZy9tZWRpYXF1ZXJp
ZXMtNC8jYW55LWlucHV0CisKKyAgICAgICAgKiBjc3MvTWVkaWFRdWVyeUV2YWx1YXRvci5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpoYXNNb3VzZURldmljZSk6IEFkZGVkLgorICAgICAgICAoV2Vi
Q29yZTo6YW55SG92ZXJFdmFsdWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjphbnlQb2ludGVyRXZh
bHVhdGUpOgorCisgICAgICAgICogcGFnZS9DaHJvbWVDbGllbnQuaDoKKyAgICAgICAgKiBsb2Fk
ZXIvRW1wdHlDbGllbnRzLmg6CisgICAgICAgIChXZWJDb3JlOjpFbXB0eUNocm9tZUNsaWVudDo6
aGFzTW91c2VEZXZpY2UpOiBBZGRlZC4KKyAgICAgICAgUHJvdmlkZSBhIHdheSBmb3IgV2ViQ29y
ZSB0byBnZXQgdGhlIGN1cnJlbnQgc3RhdGUgb2Ygd2hldGhlciB0aGVyZSBhcmUgYW55IG1vdXNl
IGRldmljZXMuCisKIDIwMjAtMDktMzAgIFphbGFuIEJ1anRhcyAgPHphbGFuQGFwcGxlLmNvbT4K
IAogICAgICAgICBbTEZDXVtJbnRlZ3JhdGlvbl0gRW5hYmxlIDx3YnI+IGNvbnRlbnQKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cK
aW5kZXggZmUwMzc5ZjcyYTdjYTc4NGNkZDcwMjI1ZmNkN2JlMzJlYjQyMGQ4My4uYTNlNjUzYTRi
NDVmOGNlMzIwNjA1MjU5YzQ5MDFiYzdlN2Y1MTBjZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSw3NCBA
QAorMjAyMC0wOS0zMCAgRGV2aW4gUm91c3NvICA8ZHJvdXNzb0BhcHBsZS5jb20+CisKKyAgICAg
ICAgQ1NTIGhvdmVyIGFuZCAicG9pbnRlcjogZmluZSIgbWVkaWEgcXVlcmllcyBkbyBub3QgZXZh
bHVhdGUgdG8gdHJ1ZSB3aXRoIGlPUyAxMy40IG1vdXNlIHN1cHBvcnQKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwOTI5MgorICAgICAgICA8cmRhcjov
L3Byb2JsZW0vNjA2NjMxMjQ+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgT24gaU9TLCB0aGUgcHJpbWFyeSBwb2ludGVyIHdpbGwgYWx3YXlzIGJlIHRv
dWNoIGlucHV0LCBzbyB0aGUgYGhvdmVyYC9gcG9pbnRlcmAgbWVkaWEgcXVlcnkKKyAgICAgICAg
c2hvdWxkIG5ldmVyIGNoYW5nZS4gSWYgYSBtb3VzZSBpcyBjb25uZWN0ZWQsIGhvd2V2ZXIsIGBh
bnktaG92ZXJgL2BhbnktcG9pbnRlcmAgc2hvdWxkCisgICAgICAgIGNoYW5nZSBhcyBub3cgdGhl
cmUgaXMgYXQgbGVhc3Qgb25lIGRldmljZSB0aGF0IHN1cHBvcnRzIGBob3ZlcmAvYGZpbmVgLiBO
b3RlIHRoYXQgaW4gdGhlCisgICAgICAgIGNhc2Ugb2YgYGFueS1wb2ludGVyYCB0aGlzIG1lYW5z
IHRoYXQgYm90aCBgY29hcnNlYCBhbmQgYGZpbmVgIHdpbGwgYXBwbHkuIENhdGFseXN0IGFzc3Vt
ZXMKKyAgICAgICAgdGhhdCB0aGVyZSBpcyBhbHdheXMgYSBtb3VzZSBjb25uZWN0ZWQuCisKKyAg
ICAgICAgU3BlYzogaHR0cHM6Ly9kcmFmdHMuY3Nzd2cub3JnL21lZGlhcXVlcmllcy00LyNhbnkt
aW5wdXQKKworICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvV0tNb3VzZURldmljZU9ic2VydmVyLmg6
IEFkZGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvV0tNb3VzZURldmljZU9ic2VydmVyLm1t
OiBBZGRlZC4KKyAgICAgICAgKCtbV0tNb3VzZURldmljZU9ic2VydmVyIHNoYXJlZEluc3RhbmNl
XSk6CisgICAgICAgICgtW1dLTW91c2VEZXZpY2VPYnNlcnZlciBkZWFsbG9jXSk6CisgICAgICAg
ICgtW1dLTW91c2VEZXZpY2VPYnNlcnZlciBhZGRXZWJQcm9jZXNzUHJveHk6XSk6CisgICAgICAg
ICgtW1dLTW91c2VEZXZpY2VPYnNlcnZlciByZW1vdmVXZWJQcm9jZXNzUHJveHk6XSk6CisgICAg
ICAgICgtW1dLTW91c2VEZXZpY2VPYnNlcnZlciBzdGFydF0pOgorICAgICAgICAoLVtXS01vdXNl
RGV2aWNlT2JzZXJ2ZXIgc3RvcF0pOgorICAgICAgICAoLVtXS01vdXNlRGV2aWNlT2JzZXJ2ZXIg
bW91c2VQb2ludGVyRGV2aWNlc0RpZENoYW5nZTpdKToKKyAgICAgICAgKC1bV0tNb3VzZURldmlj
ZU9ic2VydmVyIF9zZXRIYXNNb3VzZURldmljZUZvclRlc3Rpbmc6XSk6CisgICAgICAgIFVzZSBg
QmFja0JvYXJkU2VydmljZXNgIFNQSSB0byBsaXN0ZW4gZm9yIG1vdXNlIGRldmljZXMgY2hhbmdl
cyBhbmQgbm90aWZ5IGFsbCBXZWJQcm9jZXNzLgorCisgICAgICAgICogVUlQcm9jZXNzL1dlYlBy
b2Nlc3NQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwOgor
ICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUHJveHk6OmNvbm5lY3Rpb25XaWxsT3Blbik6Cisg
ICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQcm94eTo6cGxhdGZvcm1Db25uZWN0aW9uV2lsbE9w
ZW4pOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Byb3h5Ojpwcm9jZXNzV2ls
bFNodXREb3duKToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Byb3h5OjpwbGF0Zm9ybVBy
b2Nlc3NXaWxsU2h1dERvd24pOiBBZGRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dlYlBy
b2Nlc3NQcm94eUlPUy5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Byb3h5OjpwbGF0
Zm9ybUNvbm5lY3Rpb25XaWxsT3Blbik6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9j
ZXNzUHJveHk6OnBsYXRmb3JtUHJvY2Vzc1dpbGxTaHV0RG93bik6IEFkZGVkLgorICAgICAgICAo
V2ViS2l0OjpXZWJQcm9jZXNzUHJveHk6OnNldEhhc01vdXNlRGV2aWNlKTogQWRkZWQuCisgICAg
ICAgIEF0dGFjaCB0byB0aGUgc2hhcmVkIGBXS01vdXNlRGV2aWNlT2JzZXJ2ZXJgIHdoZW4gY3Jl
YXRpbmcgdGhlIFdlYlByb2Nlc3Mgc28gdGhhdCB0aGUgc2hhcmVkCisgICAgICAgIGBXS01vdXNl
RGV2aWNlT2JzZXJ2ZXJgIGtub3dzIHRvIG5vdGlmeSB0aGF0IGluc3RhbmNlIHdoZW4gbW91c2Ug
ZGV2aWNlcyBjaGFuZ2UuCisKKyAgICAgICAgKiBTaGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFy
YW1ldGVycy5oOgorICAgICAgICAqIFNoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJz
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyczo6ZW5j
b2RlIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVy
czo6ZGVjb2RlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvV2ViUHJvY2Vzc1Bvb2xDb2Nv
YS5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Bvb2w6OnBsYXRmb3JtSW5pdGlhbGl6
ZVdlYlByb2Nlc3MpOgorICAgICAgICBVc2UgdGhlIGN1cnJlbnQgc3RhdGUgb2YgdGhlIHNoYXJl
ZCBgV0tNb3VzZURldmljZU9ic2VydmVyYCB3aGVuIGNyZWF0aW5nIFdlYlByb2Nlc3MgaW5zdGVh
ZAorICAgICAgICBvZiBzZW5kaW5nIGEgYFNldEhhc01vdXNlRGV2aWNlYCBtZXNzYWdlIGltbWVk
aWF0ZWx5IGFmdGVyIHRoZSBXZWJQcm9jZXNzIGlzIGNyZWF0ZWQuCisKKyAgICAgICAgKiBXZWJQ
cm9jZXNzL1dlYlByb2Nlc3MubWVzc2FnZXMuaW46CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQ
cm9jZXNzLmg6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6Omhhc01vdXNlRGV2aWNlIGNv
bnN0KTogQWRkZWQuCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6aW5pdGlhbGl6ZVdlYlByb2Nlc3MpOgorICAgICAgICAo
V2ViS2l0OjpXZWJQcm9jZXNzOjpzZXRIYXNNb3VzZURldmljZSk6IEFkZGVkLgorICAgICAgICBV
cGRhdGUgc3R5bGUgKGluY2x1ZGluZyBgYW55LWhvdmVyYCBhbmQgYGFueS1wb2ludGVyYCkgd2hl
bmV2ZXIgbW91c2UgZGV2aWNlcyBjaGFuZ2UuCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNv
cmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29y
ZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViQ2hyb21l
Q2xpZW50OjpoYXNNb3VzZURldmljZSk6IEFkZGVkLgorICAgICAgICBQcm92aWRlIGEgd2F5IGZv
ciBXZWJDb3JlIHRvIGdldCB0aGUgY3VycmVudCBzdGF0ZSBvZiB3aGV0aGVyIHRoZXJlIGFyZSBh
bnkgbW91c2UgZGV2aWNlcy4KKworICAgICAgICAqIFBsYXRmb3JtL3NwaS9pb3MvQmFja0JvYXJk
U2VydmljZXNTUEkuaDoKKyAgICAgICAgKiBQbGF0Zm9ybS9zcGkvaW9zL0Jhc2VCb2FyZFNQSS5o
OiBBZGRlZC4KKyAgICAgICAgKiBDb25maWd1cmF0aW9ucy9XZWJLaXQueGNjb25maWc6CisgICAg
ICAgIExpbmsgYEJhY2tCb2FyZFNlcnZpY2VzYCBmb3IgaU9TLgorCisgICAgICAgICogU291cmNl
c0NvY29hLnR4dDoKKyAgICAgICAgKiBXZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoK
KwogMjAyMC0wOS0zMCAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4KIAog
ICAgICAgICBbR1BVIFByb2Nlc3NdIENhbnZhcyBsYXlvdXQgdGVzdHMgb2NjYXNpb25hbGx5IGNy
YXNoIHRoZSB3ZWIgcHJvY2VzcyB1bmRlciBQdXRJbWFnZURhdGE6OmFwcGx5CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0TGVnYWN5L2lvcy9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5
L2lvcy9DaGFuZ2VMb2cKaW5kZXggMTJlNjU1YjFlY2RkNWQ0NzBmM2VhNDBmYWM3ODM1ZmUxZjU3
ZmJmYy4uZjg3YzA4NmIzNjE2OGE0YWI2NjhjOWI3MWQ5ODU1MjUxZTNkNzE4OCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdExlZ2FjeS9pb3MvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXRM
ZWdhY3kvaW9zL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDIwLTA5LTMwICBEZXZpbiBS
b3Vzc28gIDxkcm91c3NvQGFwcGxlLmNvbT4KKworICAgICAgICBDU1MgaG92ZXIgYW5kICJwb2lu
dGVyOiBmaW5lIiBtZWRpYSBxdWVyaWVzIGRvIG5vdCBldmFsdWF0ZSB0byB0cnVlIHdpdGggaU9T
IDEzLjQgbW91c2Ugc3VwcG9ydAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MjA5MjkyCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS82MDY2MzEyND4KKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYkNvcmVT
dXBwb3J0L1dlYkNocm9tZUNsaWVudElPUy5oOgorICAgICAgICAoV2ViQ2hyb21lQ2xpZW50SU9T
OjpoYXNNb3VzZURldmljZSk6IEFkZGVkLgorICAgICAgICBNb3VzZSBkZXZpY2VzIGFyZSBub3Qg
c3VwcG9ydGVkIGZvciBXSzEuCisKIDIwMjAtMDktMjAgIERhcmluIEFkbGVyICA8ZGFyaW5AYXBw
bGUuY29tPgogCiAgICAgICAgIE5leHQgc3RlcCB0b3dhcmRzIGVsaW1pbmF0aW5nIGRlcHJlY2F0
ZWQgbGVnYWN5IHBvc2l0aW9ucwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL01lZGlh
UXVlcnlFdmFsdWF0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL01lZGlhUXVlcnlFdmFsdWF0
b3IuY3BwCmluZGV4IDgxMThiN2FiM2M1MGIzY2VkODEyMGZjMTA2ZGNlOWM3MzE0MWFmZTQuLjc3
NmM5NDYzY2YyYmNjMjRhNjVkM2EzMDQxMzQyMWE0ODAxMWY4ZDMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5RXZhbHVhdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9jc3MvTWVkaWFRdWVyeUV2YWx1YXRvci5jcHAKQEAgLTMzLDYgKzMzLDggQEAKICNpbmNsdWRl
ICJDU1NQcmltaXRpdmVWYWx1ZS5oIgogI2luY2x1ZGUgIkNTU1RvTGVuZ3RoQ29udmVyc2lvbkRh
dGEuaCIKICNpbmNsdWRlICJDU1NWYWx1ZUtleXdvcmRzLmgiCisjaW5jbHVkZSAiQ2hyb21lLmgi
CisjaW5jbHVkZSAiQ2hyb21lQ2xpZW50LmgiCiAjaW5jbHVkZSAiRnJhbWUuaCIKICNpbmNsdWRl
ICJGcmFtZVZpZXcuaCIKICNpbmNsdWRlICJMb2dnaW5nLmgiCkBAIC03MTIsNiArNzE0LDI3IEBA
IHN0YXRpYyBib29sIHZpZGVvUGxheWFibGVJbmxpbmVFdmFsdWF0ZShDU1NWYWx1ZSosIGNvbnN0
IENTU1RvTGVuZ3RoQ29udmVyc2lvbkRhCiAgICAgcmV0dXJuIGZyYW1lLnNldHRpbmdzKCkuYWxs
b3dzSW5saW5lTWVkaWFQbGF5YmFjaygpOwogfQogCitzdGF0aWMgYm9vbCBoYXNNb3VzZURldmlj
ZShGcmFtZSYgZnJhbWUpCit7CisjaWYgUExBVEZPUk0oTUFDQ0FUQUxZU1QpCisgICAgVU5VU0VE
X1BBUkFNKGZyYW1lKTsKKyAgICByZXR1cm4gdHJ1ZTsKKyNlbHNlIC8vIFBMQVRGT1JNKE1BQ0NB
VEFMWVNUKQorI2lmIFBMQVRGT1JNKElPUykKKyAgICBhdXRvKiBwYWdlID0gZnJhbWUucGFnZSgp
OworICAgIGlmIChwYWdlICYmIHBhZ2UtPmNocm9tZSgpLmNsaWVudCgpLmhhc01vdXNlRGV2aWNl
KCkpCisgICAgICAgIHJldHVybiB0cnVlOworI2Vsc2UgLy8gUExBVEZPUk0oSU9TKQorICAgIFVO
VVNFRF9QQVJBTShmcmFtZSk7CisjZW5kaWYgLy8gUExBVEZPUk0oSU9TKQorI2lmIEVOQUJMRShU
T1VDSF9FVkVOVFMpCisgICAgaWYgKCFzY3JlZW5IYXNUb3VjaERldmljZSgpKQorICAgICAgICBy
ZXR1cm4gdHJ1ZTsKKyNlbmRpZiAvLyBFTkFCTEUoVE9VQ0hfRVZFTlRTKQorICAgIHJldHVybiBm
YWxzZTsKKyNlbmRpZiAvLyBQTEFURk9STShNQUNDQVRBTFlTVCkKK30KKwogc3RhdGljIGJvb2wg
aG92ZXJFdmFsdWF0ZShDU1NWYWx1ZSogdmFsdWUsIGNvbnN0IENTU1RvTGVuZ3RoQ29udmVyc2lv
bkRhdGEmLCBGcmFtZSYsIE1lZGlhRmVhdHVyZVByZWZpeCkKIHsKICAgICBpZiAoIWlzPENTU1By
aW1pdGl2ZVZhbHVlPih2YWx1ZSkpIHsKQEAgLTczMCwyMiArNzUzLDEzIEBAIHN0YXRpYyBib29s
IGhvdmVyRXZhbHVhdGUoQ1NTVmFsdWUqIHZhbHVlLCBjb25zdCBDU1NUb0xlbmd0aENvbnZlcnNp
b25EYXRhJiwgRnJhCiAgICAgcmV0dXJuIGtleXdvcmQgPT0gQ1NTVmFsdWVIb3ZlcjsKIH0KIAot
c3RhdGljIGJvb2wgYW55SG92ZXJFdmFsdWF0ZShDU1NWYWx1ZSogdmFsdWUsIGNvbnN0IENTU1Rv
TGVuZ3RoQ29udmVyc2lvbkRhdGEmLCBGcmFtZSYsIE1lZGlhRmVhdHVyZVByZWZpeCkKK3N0YXRp
YyBib29sIGFueUhvdmVyRXZhbHVhdGUoQ1NTVmFsdWUqIHZhbHVlLCBjb25zdCBDU1NUb0xlbmd0
aENvbnZlcnNpb25EYXRhJiwgRnJhbWUmIGZyYW1lLCBNZWRpYUZlYXR1cmVQcmVmaXgpCiB7Ci0g
ICAgaWYgKCFpczxDU1NQcmltaXRpdmVWYWx1ZT4odmFsdWUpKSB7Ci0jaWYgRU5BQkxFKFRPVUNI
X0VWRU5UUykKLSAgICAgICAgcmV0dXJuICFzY3JlZW5IYXNUb3VjaERldmljZSgpOwotI2Vsc2UK
LSAgICAgICAgcmV0dXJuIHRydWU7Ci0jZW5kaWYKLSAgICB9CisgICAgaWYgKCFpczxDU1NQcmlt
aXRpdmVWYWx1ZT4odmFsdWUpKQorICAgICAgICByZXR1cm4gaGFzTW91c2VEZXZpY2UoZnJhbWUp
OwogCiAgICAgYXV0byBrZXl3b3JkID0gZG93bmNhc3Q8Q1NTUHJpbWl0aXZlVmFsdWU+KCp2YWx1
ZSkudmFsdWVJRCgpOwotI2lmIEVOQUJMRShUT1VDSF9FVkVOVFMpCi0gICAgaWYgKHNjcmVlbkhh
c1RvdWNoRGV2aWNlKCkpCi0gICAgICAgIHJldHVybiBrZXl3b3JkID09IENTU1ZhbHVlTm9uZTsK
LSNlbmRpZgotICAgIHJldHVybiBrZXl3b3JkID09IENTU1ZhbHVlSG92ZXI7CisgICAgcmV0dXJu
IGhhc01vdXNlRGV2aWNlKGZyYW1lKSA/IChrZXl3b3JkID09IENTU1ZhbHVlSG92ZXIpIDogKGtl
eXdvcmQgPT0gQ1NTVmFsdWVOb25lKTsKIH0KIAogc3RhdGljIGJvb2wgcG9pbnRlckV2YWx1YXRl
KENTU1ZhbHVlKiB2YWx1ZSwgY29uc3QgQ1NTVG9MZW5ndGhDb252ZXJzaW9uRGF0YSYsIEZyYW1l
JiBmcmFtZSwgTWVkaWFGZWF0dXJlUHJlZml4KQpAQCAtNzY1LDE3ICs3NzksMjIgQEAgc3RhdGlj
IGJvb2wgcG9pbnRlckV2YWx1YXRlKENTU1ZhbHVlKiB2YWx1ZSwgY29uc3QgQ1NTVG9MZW5ndGhD
b252ZXJzaW9uRGF0YSYsIEYKICAgICByZXR1cm4ga2V5d29yZCA9PSBDU1NWYWx1ZUZpbmU7CiB9
CiAKLXN0YXRpYyBib29sIGFueVBvaW50ZXJFdmFsdWF0ZShDU1NWYWx1ZSogdmFsdWUsIGNvbnN0
IENTU1RvTGVuZ3RoQ29udmVyc2lvbkRhdGEmLCBGcmFtZSYsIE1lZGlhRmVhdHVyZVByZWZpeCkK
K3N0YXRpYyBib29sIGFueVBvaW50ZXJFdmFsdWF0ZShDU1NWYWx1ZSogdmFsdWUsIGNvbnN0IENT
U1RvTGVuZ3RoQ29udmVyc2lvbkRhdGEmLCBGcmFtZSYgZnJhbWUsIE1lZGlhRmVhdHVyZVByZWZp
eCkKIHsKICAgICBpZiAoIWlzPENTU1ByaW1pdGl2ZVZhbHVlPih2YWx1ZSkpCiAgICAgICAgIHJl
dHVybiB0cnVlOwogCiAgICAgYXV0byBrZXl3b3JkID0gZG93bmNhc3Q8Q1NTUHJpbWl0aXZlVmFs
dWU+KCp2YWx1ZSkudmFsdWVJRCgpOworCisgICAgaWYgKGtleXdvcmQgPT0gQ1NTVmFsdWVGaW5l
KQorICAgICAgICByZXR1cm4gaGFzTW91c2VEZXZpY2UoZnJhbWUpOworCiAjaWYgRU5BQkxFKFRP
VUNIX0VWRU5UUykKLSAgICBpZiAoc2NyZWVuSGFzVG91Y2hEZXZpY2UoKSkKLSAgICAgICAgcmV0
dXJuIGtleXdvcmQgPT0gQ1NTVmFsdWVDb2Fyc2U7Ci0jZW5kaWYKLSAgICByZXR1cm4ga2V5d29y
ZCA9PSBDU1NWYWx1ZUZpbmU7CisgICAgaWYgKGtleXdvcmQgPT0gQ1NTVmFsdWVDb2Fyc2UpCisg
ICAgICAgIHJldHVybiBzY3JlZW5IYXNUb3VjaERldmljZSgpOworI2VuZGlmIC8vIEVOQUJMRShU
T1VDSF9FVkVOVFMpCisKKyAgICByZXR1cm4gZmFsc2U7CiB9CiAKIHN0YXRpYyBib29sIHByZWZl
cnNEYXJrSW50ZXJmYWNlRXZhbHVhdGUoQ1NTVmFsdWUqIHZhbHVlLCBjb25zdCBDU1NUb0xlbmd0
aENvbnZlcnNpb25EYXRhJiwgRnJhbWUmIGZyYW1lLCBNZWRpYUZlYXR1cmVQcmVmaXgpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmggYi9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmgKaW5kZXggM2U5ZGU3ZDI2NmE5ZGVhNmUxYTAzNDQ2
YTU5ZWY3ZjQwMDYwOTk0ZS4uNTY5NDhhMGNlMzNhYmFkZWQ4ZmFiNzk0YTEyNGE1NzBhMTI3ZDU1
NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuaApAQCAtMTAyLDYgKzEwMiwxMCBA
QCBjbGFzcyBFbXB0eUNocm9tZUNsaWVudCA6IHB1YmxpYyBDaHJvbWVDbGllbnQgewogCiAgICAg
S2V5Ym9hcmRVSU1vZGUga2V5Ym9hcmRVSU1vZGUoKSBmaW5hbCB7IHJldHVybiBLZXlib2FyZEFj
Y2Vzc0RlZmF1bHQ7IH0KIAorI2lmIFBMQVRGT1JNKElPUykKKyAgICBib29sIGhhc01vdXNlRGV2
aWNlKCkgZmluYWwgeyByZXR1cm4gZmFsc2U7IH0KKyNlbmRpZgorCiAgICAgdm9pZCBpbnZhbGlk
YXRlUm9vdFZpZXcoY29uc3QgSW50UmVjdCYpIGZpbmFsIHsgfQogICAgIHZvaWQgaW52YWxpZGF0
ZUNvbnRlbnRzQW5kUm9vdFZpZXcoY29uc3QgSW50UmVjdCYpIG92ZXJyaWRlIHsgfQogICAgIHZv
aWQgaW52YWxpZGF0ZUNvbnRlbnRzRm9yU2xvd1Njcm9sbChjb25zdCBJbnRSZWN0JikgZmluYWwg
eyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVudC5oIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaAppbmRleCBmZTU5ZGI4NGFlYWNhNWY5OTEy
MWI3OTBkMDA4MDkyMDYyZmY0Y2MxLi5mODhlMGY1MDc0ZTc3OGNiOGFlOTAyNWEzZjI1ZGRhMzdl
OWRmMDUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVudC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmgKQEAgLTE3OCw2ICsxNzgsMTAg
QEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBzZXRTdGF0dXNiYXJUZXh0KGNvbnN0IFN0cmlu
ZyYpID0gMDsKICAgICB2aXJ0dWFsIEtleWJvYXJkVUlNb2RlIGtleWJvYXJkVUlNb2RlKCkgPSAw
OwogCisjaWYgUExBVEZPUk0oSU9TKQorICAgIHZpcnR1YWwgYm9vbCBoYXNNb3VzZURldmljZSgp
ID0gMDsKKyNlbmRpZgorCiAgICAgdmlydHVhbCBib29sIHN1cHBvcnRzSW1tZWRpYXRlSW52YWxp
ZGF0aW9uKCkgeyByZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0dWFsIHZvaWQgaW52YWxpZGF0ZVJv
b3RWaWV3KGNvbnN0IEludFJlY3QmKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGludmFsaWRhdGVD
b250ZW50c0FuZFJvb3RWaWV3KGNvbnN0IEludFJlY3QmKSA9IDA7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L0NvbmZpZ3VyYXRpb25zL1dlYktpdC54Y2NvbmZpZyBiL1NvdXJjZS9XZWJLaXQv
Q29uZmlndXJhdGlvbnMvV2ViS2l0LnhjY29uZmlnCmluZGV4IDVmNzVlY2JiMTQ5YzU1MWE0NTEx
YTkwNmZkN2Y0M2MxN2U5ODg5MjEuLmNlNzE4NTlkZGE5MDU0YWRmYzA0NTU4NDA3ZjE2NGUzN2Uz
NmZmN2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ29uZmlndXJhdGlvbnMvV2ViS2l0Lnhj
Y29uZmlnCisrKyBiL1NvdXJjZS9XZWJLaXQvQ29uZmlndXJhdGlvbnMvV2ViS2l0LnhjY29uZmln
CkBAIC02MCw2ICs2MCwxMCBAQCBXS19BU1NFUlRJT05fU0VSVklDRVNfTERGTEFHU19hcHBsZXR2
b3MgPSAtZnJhbWV3b3JrIEFzc2VydGlvblNlcnZpY2VzOwogV0tfQVNTRVJUSU9OX1NFUlZJQ0VT
X0xERkxBR1NfYXBwbGV0dnNpbXVsYXRvciA9IC1mcmFtZXdvcmsgQXNzZXJ0aW9uU2VydmljZXM7
CiBXS19BU1NFUlRJT05fU0VSVklDRVNfTERGTEFHU19tYWNjYXRhbHlzdCA9IC1mcmFtZXdvcmsg
QXNzZXJ0aW9uU2VydmljZXM7CiAKK1dLX0JBQ0tCT0FSRF9TRVJWSUNFU19MREZMQUdTID0gJChX
S19CQUNLQk9BUkRfU0VSVklDRVNfTERGTEFHU18kKFdLX1BMQVRGT1JNX05BTUUpKTsKK1dLX0JB
Q0tCT0FSRF9TRVJWSUNFU19MREZMQUdTX2lwaG9uZW9zID0gLWZyYW1ld29yayBCYWNrQm9hcmRT
ZXJ2aWNlczsKK1dLX0JBQ0tCT0FSRF9TRVJWSUNFU19MREZMQUdTX2lwaG9uZXNpbXVsYXRvciA9
IC1mcmFtZXdvcmsgQmFja0JvYXJkU2VydmljZXM7CisKIFdLX1JVTk5JTkdCT0FSRF9TRVJWSUNF
U19MREZMQUdTID0gJChXS19SVU5OSU5HQk9BUkRfU0VSVklDRVNfTERGTEFHU18kKFdLX0NPQ09B
X1RPVUNIKSk7CiBXS19SVU5OSU5HQk9BUkRfU0VSVklDRVNfTERGTEFHU19jb2NvYXRvdWNoID0g
LWZyYW1ld29yayBSdW5uaW5nQm9hcmRTZXJ2aWNlczsKIApAQCAtMTIzLDcgKzEyNyw3IEBAIFdL
X0FVVEhLSVRfTERGTEFHU19JT1NfU0lOQ0VfMTMgPSAtZnJhbWV3b3JrIEF1dGhLaXQ7CiBXS19B
VVRIS0lUX0xERkxBR1NfbWFjb3N4ID0gJChXS19BVVRIS0lUX0xERkxBR1MkKFdLX01BQ09TXzEw
MTUpKTsKIFdLX0FVVEhLSVRfTERGTEFHU19NQUNPU19TSU5DRV8xMDE1ID0gLWZyYW1ld29yayBB
dXRoS2l0OwogCi1GUkFNRVdPUktfQU5EX0xJQlJBUllfTERGTEFHUyA9IC1sb2JqYyAtZnJhbWV3
b3JrIENGTmV0d29yayAtZnJhbWV3b3JrIENvcmVBdWRpbyAtZnJhbWV3b3JrIENvcmVGb3VuZGF0
aW9uIC1mcmFtZXdvcmsgQ29yZUdyYXBoaWNzIC1mcmFtZXdvcmsgQ29yZVRleHQgLWZyYW1ld29y
ayBGb3VuZGF0aW9uIC1mcmFtZXdvcmsgSW1hZ2VJTyAtZnJhbWV3b3JrIElPS2l0IC1mcmFtZXdv
cmsgSU9TdXJmYWNlIC1mcmFtZXdvcmsgV2ViS2l0TGVnYWN5IC1sbmV0d29yayAkKFdLX0FDQ0VT
U0lCSUxJVFlfTERGTEFHUykgJChXS19BUFBLSVRfTERGTEFHUykgJChXS19BU1NFUlRJT05fU0VS
VklDRVNfTERGTEFHUykgJChXS19SVU5OSU5HQk9BUkRfU0VSVklDRVNfTERGTEFHUykgJChXS19B
VVRIS0lUX0xERkxBR1MpICQoV0tfQ0FSQk9OX0xERkxBR1MpICQoV0tfQ09SRV9QUkVESUNUSU9O
X0xERkxBR1MpICQoV0tfQ09SRV9TRVJWSUNFU19MREZMQUdTKSAkKFdLX0dSQVBISUNTX1NFUlZJ
Q0VTX0xERkxBR1MpICQoV0tfTElCU0FOREJPWF9MREZMQUdTKSAkKFdLX0xJQldFQlJUQ19MREZM
QUdTKSAkKFdLX01PQklMRV9DT1JFX1NFUlZJQ0VTX0xERkxBR1MpICQoV0tfTU9CSUxFX0dFU1RB
TFRfTERGTEFHUykgJChXS19QREZLSVRfTERGTEFHUykgJChXS19TQUZFX0JST1dTSU5HX0xERkxB
R1MpICQoV0tfU0VDVVJJVFlfSU5URVJGQUNFX0xERkxBR1MpICQoV0tfVUlLSVRfTERGTEFHUykg
JChXS19VUkxfRk9STUFUVElOR19MREZMQUdTKSAkKFdLX1dFQklOU1BFQ1RPUlVJX0xERkxBR1Mp
OworRlJBTUVXT1JLX0FORF9MSUJSQVJZX0xERkxBR1MgPSAtbG9iamMgLWZyYW1ld29yayBDRk5l
dHdvcmsgLWZyYW1ld29yayBDb3JlQXVkaW8gLWZyYW1ld29yayBDb3JlRm91bmRhdGlvbiAtZnJh
bWV3b3JrIENvcmVHcmFwaGljcyAtZnJhbWV3b3JrIENvcmVUZXh0IC1mcmFtZXdvcmsgRm91bmRh
dGlvbiAtZnJhbWV3b3JrIEltYWdlSU8gLWZyYW1ld29yayBJT0tpdCAtZnJhbWV3b3JrIElPU3Vy
ZmFjZSAtZnJhbWV3b3JrIFdlYktpdExlZ2FjeSAtbG5ldHdvcmsgJChXS19BQ0NFU1NJQklMSVRZ
X0xERkxBR1MpICQoV0tfQVBQS0lUX0xERkxBR1MpICQoV0tfQVNTRVJUSU9OX1NFUlZJQ0VTX0xE
RkxBR1MpICQoV0tfQkFDS0JPQVJEX1NFUlZJQ0VTX0xERkxBR1MpICQoV0tfUlVOTklOR0JPQVJE
X1NFUlZJQ0VTX0xERkxBR1MpICQoV0tfQVVUSEtJVF9MREZMQUdTKSAkKFdLX0NBUkJPTl9MREZM
QUdTKSAkKFdLX0NPUkVfUFJFRElDVElPTl9MREZMQUdTKSAkKFdLX0NPUkVfU0VSVklDRVNfTERG
TEFHUykgJChXS19HUkFQSElDU19TRVJWSUNFU19MREZMQUdTKSAkKFdLX0xJQlNBTkRCT1hfTERG
TEFHUykgJChXS19MSUJXRUJSVENfTERGTEFHUykgJChXS19NT0JJTEVfQ09SRV9TRVJWSUNFU19M
REZMQUdTKSAkKFdLX01PQklMRV9HRVNUQUxUX0xERkxBR1MpICQoV0tfUERGS0lUX0xERkxBR1Mp
ICQoV0tfU0FGRV9CUk9XU0lOR19MREZMQUdTKSAkKFdLX1NFQ1VSSVRZX0lOVEVSRkFDRV9MREZM
QUdTKSAkKFdLX1VJS0lUX0xERkxBR1MpICQoV0tfVVJMX0ZPUk1BVFRJTkdfTERGTEFHUykgJChX
S19XRUJJTlNQRUNUT1JVSV9MREZMQUdTKTsKIAogLy8gUHJldmVudCBDKysgc3RhbmRhcmQgbGli
cmFyeSBiYXNpY19zdHJpbmdzdHJlYW0sIG9wZXJhdG9yIG5ldywgZGVsZXRlIGFuZCB0aGVpciBy
ZWxhdGVkIGV4Y2VwdGlvbiB0eXBlcyBmcm9tIGJlaW5nIGV4cG9ydGVkIGFzIHdlYWsgc3ltYm9s
cy4KIFVORVhQT1JURURfU1lNQk9MX0xERkxBR1MgPSAtV2wsLXVuZXhwb3J0ZWRfc3ltYm9sIC1X
bCxfX1pUSVN0OWJhZF9hbGxvYyAtV2wsLXVuZXhwb3J0ZWRfc3ltYm9sIC1XbCxfX1pUSVN0OWV4
Y2VwdGlvbiAtV2wsLXVuZXhwb3J0ZWRfc3ltYm9sIC1XbCxfX1pUU1N0OWJhZF9hbGxvYyAtV2ws
LXVuZXhwb3J0ZWRfc3ltYm9sIC1XbCxfX1pUU1N0OWV4Y2VwdGlvbiAtV2wsLXVuZXhwb3J0ZWRf
c3ltYm9sIC1XbCxfX1pkbFB2U18gLVdsLC11bmV4cG9ydGVkX3N5bWJvbCAtV2wsX19abndtUHYg
LVdsLC11bmV4cG9ydGVkX3N5bWJvbCAtV2wsX19abndtIC1XbCwtdW5leHBvcnRlZF9zeW1ib2wg
LVdsLF9fWk5TdDNfXzE4ZnVuY3Rpb25JRnZON1dlYkNvcmUxMlBvbGljeUFjdGlvbkVFRUMyRU9T
NF8gLVdsLC11bmV4cG9ydGVkX3N5bWJvbCAtV2wsX19aTlN0M19fMThmdW5jdGlvbklGdk43V2Vi
Q29yZTEyUG9saWN5QWN0aW9uRUVFQzFFT1M0XyAtV2wsLXVuZXhwb3J0ZWRfc3ltYm9sIC1XbCxf
X1pOU3QzX18xOGZ1bmN0aW9uSUZ2TjdXZWJDb3JlMTJQb2xpY3lBY3Rpb25FRUVhU0VEbiAtV2ws
LXVuZXhwb3J0ZWRfc3ltYm9sIC1XbCxfX1pOS1N0M19fMThmdW5jdGlvbklGdk43V2ViQ29yZTEy
UG9saWN5QWN0aW9uRUVFY2xFUzJfIC1XbCwtdW5leHBvcnRlZF9zeW1ib2wgLVdsLF9fWk5TdDNf
XzE4ZnVuY3Rpb25JRnZON1dlYkNvcmUxMlBvbGljeUFjdGlvbkVFRTRzd2FwRVJTNF8gLVdsLC11
bmV4cG9ydGVkX3N5bWJvbCAtV2wsX19aTlN0M19fMThmdW5jdGlvbklGdk43V2ViQ29yZTEyUG9s
aWN5QWN0aW9uRUVFQzFFUktTNF8gLVdsLC11bmV4cG9ydGVkX3N5bWJvbCAtV2wsX19aTlN0M19f
MThmdW5jdGlvbklGdk43V2ViQ29yZTEyUG9saWN5QWN0aW9uRUVFQzJFUktTNF8gLVdsLC11bmV4
cG9ydGVkX3N5bWJvbCAtV2wsX19aTlN0M19fMThmdW5jdGlvbklGdk43V2ViQ29yZTEyUG9saWN5
QWN0aW9uRUVFRDFFdiAtV2wsLXVuZXhwb3J0ZWRfc3ltYm9sIC1XbCxfX1pOU3QzX18xOGZ1bmN0
aW9uSUZ2TjdXZWJDb3JlMTJQb2xpY3lBY3Rpb25FRUVEMkV2IC1XbCwtdW5leHBvcnRlZF9zeW1i
b2wgLVdsLF9fWk5TdDNfXzE4ZnVuY3Rpb25JRnZON1dlYkNvcmUxMlBvbGljeUFjdGlvbkVFRWFT
RVJLUzRfIC1XbCwtdW5leHBvcnRlZF9zeW1ib2wgLVdsLF9fWlRWTlN0M19fMTE3YmFkX2Z1bmN0
aW9uX2NhbGxFIC1XbCwtdW5leHBvcnRlZF9zeW1ib2wgLVdsLF9fWlRDTlN0M19fMTE4YmFzaWNf
c3RyaW5nc3RyZWFtSWNOU18xMWNoYXJfdHJhaXRzSWNFRU5TXzlhbGxvY2F0b3JJY0VFRUUwX05T
XzEzYmFzaWNfaXN0cmVhbUljUzJfRUUgLVdsLC11bmV4cG9ydGVkX3N5bWJvbCAtV2wsX19aVENO
U3QzX18xMThiYXNpY19zdHJpbmdzdHJlYW1JY05TXzExY2hhcl90cmFpdHNJY0VFTlNfOWFsbG9j
YXRvckljRUVFRTBfTlNfMTRiYXNpY19pb3N0cmVhbUljUzJfRUUgLVdsLC11bmV4cG9ydGVkX3N5
bWJvbCAtV2wsX19aVENOU3QzX18xMThiYXNpY19zdHJpbmdzdHJlYW1JY05TXzExY2hhcl90cmFp
dHNJY0VFTlNfOWFsbG9jYXRvckljRUVFRTE2X05TXzEzYmFzaWNfb3N0cmVhbUljUzJfRUUgLVds
LC11bmV4cG9ydGVkX3N5bWJvbCAtV2wsX19aVFROU3QzX18xMThiYXNpY19zdHJpbmdzdHJlYW1J
Y05TXzExY2hhcl90cmFpdHNJY0VFTlNfOWFsbG9jYXRvckljRUVFRSAtV2wsLXVuZXhwb3J0ZWRf
c3ltYm9sIC1XbCxfX1pUVk5TdDNfXzExNWJhc2ljX3N0cmluZ2J1ZkljTlNfMTFjaGFyX3RyYWl0
c0ljRUVOU185YWxsb2NhdG9ySWNFRUVFIC1XbCwtdW5leHBvcnRlZF9zeW1ib2wgLVdsLF9fWlRW
TlN0M19fMTE4YmFzaWNfc3RyaW5nc3RyZWFtSWNOU18xMWNoYXJfdHJhaXRzSWNFRU5TXzlhbGxv
Y2F0b3JJY0VFRUUgLVdsLC11bmV4cG9ydGVkX3N5bWJvbCAtV2wsX19aVENOU3QzX18xMThiYXNp
Y19zdHJpbmdzdHJlYW1JY05TXzExY2hhcl90cmFpdHNJY0VFTlNfOWFsbG9jYXRvckljRUVFRThf
TlNfMTNiYXNpY19vc3RyZWFtSWNTMl9FRTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvUGxh
dGZvcm0vc3BpL2lvcy9CYWNrQm9hcmRTZXJ2aWNlc1NQSS5oIGIvU291cmNlL1dlYktpdC9QbGF0
Zm9ybS9zcGkvaW9zL0JhY2tCb2FyZFNlcnZpY2VzU1BJLmgKaW5kZXggNmQ4ZDg5NDNlNGNjM2Nh
Nzk5ZjM3MjIxNDQxMzY5MjQwOWQ3OTYzNy4uMDkwMTRkNDQxZTFhZDliMGY0ZjI3MDM3YmRjMTBj
MjMzZDQ1ZWMxYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9zcGkvaW9zL0Jh
Y2tCb2FyZFNlcnZpY2VzU1BJLmgKKysrIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9zcGkvaW9z
L0JhY2tCb2FyZFNlcnZpY2VzU1BJLmgKQEAgLTI3LDExICsyNywyNyBAQAogCiAjaW1wb3J0IDxC
YWNrQm9hcmRTZXJ2aWNlcy9CS1NBbmltYXRpb25GZW5jZS5oPgogI2ltcG9ydCA8QmFja0JvYXJk
U2VydmljZXMvQktTQW5pbWF0aW9uRmVuY2VfUHJpdmF0ZS5oPgorI2ltcG9ydCA8QmFja0JvYXJk
U2VydmljZXMvQktTTW91c2VQb2ludGVyU2VydmljZS5oPgogCiAjZWxzZQogCisjaW1wb3J0ICJC
YXNlQm9hcmRTUEkuaCIKKwogQGludGVyZmFjZSBCS1NBbmltYXRpb25GZW5jZUhhbmRsZSA6IE5T
T2JqZWN0CiAtIChtYWNoX3BvcnRfdClDQVBvcnQ7CiBAZW5kCiAKK0BjbGFzcyBCS1NNb3VzZVBv
aW50ZXJEZXZpY2U7CisKK0Bwcm90b2NvbCBCS1NNb3VzZVBvaW50ZXJEZXZpY2VPYnNlcnZlciA8
TlNPYmplY3Q+CitAb3B0aW9uYWwKKy0gKHZvaWQpbW91c2VQb2ludGVyRGV2aWNlc0RpZENvbm5l
Y3Q6KE5TU2V0PEJLU01vdXNlUG9pbnRlckRldmljZSAqPiAqKW1vdXNlUG9pbnRlckRldmljZXM7
CistICh2b2lkKW1vdXNlUG9pbnRlckRldmljZXNEaWREaXNjb25uZWN0OihOU1NldDxCS1NNb3Vz
ZVBvaW50ZXJEZXZpY2UgKj4gKiltb3VzZVBvaW50ZXJEZXZpY2VzOworQGVuZAorCitAaW50ZXJm
YWNlIEJLU01vdXNlUG9pbnRlclNlcnZpY2UgOiBOU09iamVjdAorKyAoQktTTW91c2VQb2ludGVy
U2VydmljZSAqKXNoYXJlZEluc3RhbmNlOworLSAoaWQ8QlNJbnZhbGlkYXRhYmxlPilhZGRQb2lu
dGVyRGV2aWNlT2JzZXJ2ZXI6KGlkPEJLU01vdXNlUG9pbnRlckRldmljZU9ic2VydmVyPilvYnNl
cnZlcjsKK0BlbmQKKwogI2VuZGlmIC8vIFVTRShBUFBMRV9JTlRFUk5BTF9TREspCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL3NwaS9pb3MvQmFzZUJvYXJkU1BJLmggYi9Tb3Vy
Y2UvV2ViS2l0L1BsYXRmb3JtL3NwaS9pb3MvQmFzZUJvYXJkU1BJLmgKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYWIw
NDE4Njk1YjkwZmQ4MzFiOGQ2MWFkODE4OWEwYzM5NmNkZGI0MAotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vc3BpL2lvcy9CYXNlQm9hcmRTUEkuaApAQCAtMCwwICsx
LDM2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgor
ICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAq
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI2lmIFVTRShBUFBMRV9JTlRFUk5BTF9TREspCisKKyNpbXBv
cnQgPEJhc2VCb2FyZC9CU0ludmFsaWRhdGFibGUuaD4KKworI2Vsc2UKKworQHByb3RvY29sIEJT
SW52YWxpZGF0YWJsZSA8TlNPYmplY3Q+CistICh2b2lkKWludmFsaWRhdGU7CitAZW5kCisKKyNl
bmRpZiAvLyBVU0UoQVBQTEVfSU5URVJOQUxfU0RLKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9TaGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHAgYi9Tb3VyY2UvV2ViS2l0
L1NoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcAppbmRleCBjN2E1OWEwNGRj
YmQxOTNmZDVhMmEwMDMyMmQ4NTVlODU1MWUyOTAxLi40NjQzMWVhYzI1NmQzYWNiMzFkMTY3OGJh
YTdiMmQyOGYwMmZhOGZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcm9j
ZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQ
cm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcApAQCAtODUsNiArODUsOSBAQCB2b2lkIFdlYlBy
b2Nlc3NDcmVhdGlvblBhcmFtZXRlcnM6OmVuY29kZShJUEM6OkVuY29kZXImIGVuY29kZXIpIGNv
bnN0CiAjZW5kaWYKICAgICBlbmNvZGVyIDw8IHRleHRDaGVja2VyU3RhdGU7CiAgICAgZW5jb2Rl
ciA8PCBmdWxsS2V5Ym9hcmRBY2Nlc3NFbmFibGVkOworI2lmIFBMQVRGT1JNKElPUykKKyAgICBl
bmNvZGVyIDw8IGhhc01vdXNlRGV2aWNlOworI2VuZGlmCiAgICAgZW5jb2RlciA8PCBkZWZhdWx0
UmVxdWVzdFRpbWVvdXRJbnRlcnZhbDsKICAgICBlbmNvZGVyIDw8IGJhY2tGb3J3YXJkQ2FjaGVD
YXBhY2l0eTsKICNpZiBQTEFURk9STShDT0NPQSkKQEAgLTI5Myw2ICsyOTYsMTAgQEAgYm9vbCBX
ZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzOjpkZWNvZGUoSVBDOjpEZWNvZGVyJiBkZWNvZGVy
LCBXZWJQcm9jZXNzQ3JlYXQKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIGlmICghZGVjb2Rl
ci5kZWNvZGUocGFyYW1ldGVycy5mdWxsS2V5Ym9hcmRBY2Nlc3NFbmFibGVkKSkKICAgICAgICAg
cmV0dXJuIGZhbHNlOworI2lmIFBMQVRGT1JNKElPUykKKyAgICBpZiAoIWRlY29kZXIuZGVjb2Rl
KHBhcmFtZXRlcnMuaGFzTW91c2VEZXZpY2UpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisjZW5k
aWYKICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHBhcmFtZXRlcnMuZGVmYXVsdFJlcXVlc3RUaW1l
b3V0SW50ZXJ2YWwpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgaWYgKCFkZWNvZGVyLmRl
Y29kZShwYXJhbWV0ZXJzLmJhY2tGb3J3YXJkQ2FjaGVDYXBhY2l0eSkpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmggYi9Tb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgKaW5kZXggMGQz
YTI5Njc3MTUzN2ZjMzFlMTJmNTAxMTk4NjM2M2RhYzEwOTFkOS4uNzQwZTgwNmJmNDFmODM1ODc3
NzY1NGNhMTE1NDczZTJiNTllMzAzYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQv
V2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVk
L1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaApAQCAtMTE3LDYgKzExNyw5IEBAIHN0cnVj
dCBXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzIHsKICAgICBib29sIHNob3VsZFN1cHByZXNz
TWVtb3J5UHJlc3N1cmVIYW5kbGVyIHsgZmFsc2UgfTsKICAgICBib29sIHNob3VsZFVzZUZvbnRT
bW9vdGhpbmcgeyB0cnVlIH07CiAgICAgYm9vbCBmdWxsS2V5Ym9hcmRBY2Nlc3NFbmFibGVkIHsg
ZmFsc2UgfTsKKyNpZiBQTEFURk9STShJT1MpCisgICAgYm9vbCBoYXNNb3VzZURldmljZSB7IGZh
bHNlIH07CisjZW5kaWYKICAgICBib29sIG1lbW9yeUNhY2hlRGlzYWJsZWQgeyBmYWxzZSB9Owog
ICAgIGJvb2wgYXR0clN0eWxlRW5hYmxlZCB7IGZhbHNlIH07CiAgICAgYm9vbCB1c2VHUFVQcm9j
ZXNzRm9yTWVkaWFFbmFibGVkIHsgZmFsc2UgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
U291cmNlc0NvY29hLnR4dCBiL1NvdXJjZS9XZWJLaXQvU291cmNlc0NvY29hLnR4dAppbmRleCBi
NmUzYjRkYmFiOTA0MzA5MDQwYTlkNzNmYTI2YmQzODU5Yjg3NWQ4Li42MjdiMDYxMzg1Y2VlNzIz
YzNmNDk2YWMzZjZlYjdjZmI0MzU3MTQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NvdXJj
ZXNDb2NvYS50eHQKKysrIGIvU291cmNlL1dlYktpdC9Tb3VyY2VzQ29jb2EudHh0CkBAIC00NjAs
NiArNDYwLDcgQEAgVUlQcm9jZXNzL2lvcy9XS0dlb2xvY2F0aW9uUHJvdmlkZXJJT1MubW0KIFVJ
UHJvY2Vzcy9pb3MvV0tHZW9sb2NhdGlvblByb3ZpZGVySU9TT2JqQ1NlY3VyaXR5T3JpZ2luLm1t
CiBVSVByb2Nlc3MvaW9zL1dLSGlnaGxpZ2h0TG9uZ1ByZXNzR2VzdHVyZVJlY29nbml6ZXIubW0K
IFVJUHJvY2Vzcy9pb3MvV0tLZXlib2FyZFNjcm9sbGluZ0FuaW1hdG9yLm1tCitVSVByb2Nlc3Mv
aW9zL1dLTW91c2VEZXZpY2VPYnNlcnZlci5tbQogVUlQcm9jZXNzL2lvcy9XS01vdXNlR2VzdHVy
ZVJlY29nbml6ZXIubW0KIFVJUHJvY2Vzcy9pb3MvV0tQYXNzd29yZFZpZXcubW0KIFVJUHJvY2Vz
cy9pb3MvV0tQREZQYWdlTnVtYmVySW5kaWNhdG9yLm1tCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJQcm9jZXNzUG9vbENvY29hLm1tIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQ29jb2EvV2ViUHJvY2Vzc1Bvb2xDb2NvYS5tbQppbmRleCA4NDcyYWU5MjAy
MmViZWQwZjRhZDdlMTI0OTQ2YzgwZTAxNWY2MTJkLi4yYTYxOTI5MWIwNDkyZDFlNWFmYjUyODRm
YTExMTQyMjExMDRmMTNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2Nv
YS9XZWJQcm9jZXNzUG9vbENvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0Nv
Y29hL1dlYlByb2Nlc3NQb29sQ29jb2EubW0KQEAgLTg4LDYgKzg4LDEwIEBACiAjaW1wb3J0IDxw
YWwvc3BpL2lvcy9Nb2JpbGVHZXN0YWx0U1BJLmg+CiAjZW5kaWYKIAorI2lmIFBMQVRGT1JNKElP
UykKKyNpbXBvcnQgIldLTW91c2VEZXZpY2VPYnNlcnZlci5oIgorI2VuZGlmCisKICNpZiBQTEFU
Rk9STShDT0NPQSkKICNpbXBvcnQgPFdlYkNvcmUvU3lzdGVtQmF0dGVyeS5oPgogI2VuZGlmCkBA
IC00ODUsNiArNDg5LDEwIEBAIHZvaWQgV2ViUHJvY2Vzc1Bvb2w6OnBsYXRmb3JtSW5pdGlhbGl6
ZVdlYlByb2Nlc3MoY29uc3QgV2ViUHJvY2Vzc1Byb3h5JiBwcm9jZXNzCiAjaWYgSEFWRShDQVRB
TFlTVF9VU0VSX0lOVEVSRkFDRV9JRElPTV9BTkRfU0NBTEVfRkFDVE9SKQogICAgIHBhcmFtZXRl
cnMub3ZlcnJpZGVVc2VySW50ZXJmYWNlSWRpb21BbmRTY2FsZSA9IHsgX1VJQXBwbGljYXRpb25D
YXRhbHlzdFVzZXJJbnRlcmZhY2VJZGlvbSgpLCBfVUlBcHBsaWNhdGlvbkNhdGFseXN0U2NhbGVG
YWN0b3IoKSB9OwogI2VuZGlmCisKKyNpZiBQTEFURk9STShJT1MpCisgICAgcGFyYW1ldGVycy5o
YXNNb3VzZURldmljZSA9IFtbV0tNb3VzZURldmljZU9ic2VydmVyIHNoYXJlZEluc3RhbmNlXSBo
YXNNb3VzZURldmljZV07CisjZW5kaWYKIH0KIAogdm9pZCBXZWJQcm9jZXNzUG9vbDo6cGxhdGZv
cm1Jbml0aWFsaXplTmV0d29ya1Byb2Nlc3MoTmV0d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFtZXRl
cnMmIHBhcmFtZXRlcnMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQ
cm9jZXNzUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5
LmNwcAppbmRleCA1ZTJjNzA4ZjIyZjk3YmVhZjM3MDkzNTJjYjY5ZTNkNGMyOGUxZDliLi4xNmUw
OTQzNjQ5NjE0NmRmZmIxZDg3YzkzMGI2ZDM0MWU1ZGE3ZjdhIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAKQEAgLTM5OCw4ICszOTgsMTYgQEAgdm9pZCBX
ZWJQcm9jZXNzUHJveHk6OmNvbm5lY3Rpb25XaWxsT3BlbihJUEM6OkNvbm5lY3Rpb24mIGNvbm5l
Y3Rpb24pCiAjaWYgRU5BQkxFKFNFQ19JVEVNX1NISU0pCiAgICAgU2VjSXRlbVNoaW1Qcm94eTo6
c2luZ2xldG9uKCkuaW5pdGlhbGl6ZUNvbm5lY3Rpb24oY29ubmVjdGlvbik7CiAjZW5kaWYKKwor
ICAgIHBsYXRmb3JtQ29ubmVjdGlvbldpbGxPcGVuKCk7CiB9CiAKKyNpZiAhUExBVEZPUk0oSU9T
KQordm9pZCBXZWJQcm9jZXNzUHJveHk6OnBsYXRmb3JtQ29ubmVjdGlvbldpbGxPcGVuKCkKK3sK
K30KKyNlbmRpZgorCiB2b2lkIFdlYlByb2Nlc3NQcm94eTo6cHJvY2Vzc1dpbGxTaHV0RG93bihJ
UEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24pCiB7CiAgICAgQVNTRVJUX1VOVVNFRChjb25uZWN0
aW9uLCB0aGlzLT5jb25uZWN0aW9uKCkgPT0gJmNvbm5lY3Rpb24pOwpAQCAtNDA3LDggKzQxNSwx
NiBAQCB2b2lkIFdlYlByb2Nlc3NQcm94eTo6cHJvY2Vzc1dpbGxTaHV0RG93bihJUEM6OkNvbm5l
Y3Rpb24mIGNvbm5lY3Rpb24pCiAjaWYgUExBVEZPUk0oTUFDKSAmJiBFTkFCTEUoV0VCUFJPQ0VT
U19XSU5ET1dTRVJWRVJfQkxPQ0tJTkcpCiAgICAgcHJvY2Vzc1Bvb2woKS5zdG9wRGlzcGxheUxp
bmtzKGNvbm5lY3Rpb24pOwogI2VuZGlmCisKKyAgICBwbGF0Zm9ybVByb2Nlc3NXaWxsU2h1dERv
d24oKTsKIH0KIAorI2lmICFQTEFURk9STShJT1MpCit2b2lkIFdlYlByb2Nlc3NQcm94eTo6cGxh
dGZvcm1Qcm9jZXNzV2lsbFNodXREb3duKCkKK3sKK30KKyNlbmRpZgorCiB2b2lkIFdlYlByb2Nl
c3NQcm94eTo6c2h1dERvd24oKQogewogICAgIFJFTEVBU0VfQVNTRVJUKGlzTWFpblRocmVhZE9y
Q2hlY2tEaXNhYmxlZCgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dl
YlByb2Nlc3NQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5
LmgKaW5kZXggZTBlOGRjMGFjNzA4YjEyNDhiMWNjODBhZGNiMTlkMTg0MTIzOWM3My4uZjhlMWE1
YjFmYjkzYTQ2NWZiNTc5YzNiZGRlOGJiZDQ5N2E4ZDdmNiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmgKQEAgLTMwNiw2ICszMDYsMTAgQEAgcHVibGljOgogICAg
IHZvaWQgZGlkU2V0QXNzZXJ0aW9uVHlwZShQcm9jZXNzQXNzZXJ0aW9uVHlwZSkgZmluYWw7CiAg
ICAgQVNDSUlMaXRlcmFsIGNsaWVudE5hbWUoKSBjb25zdCBmaW5hbCB7IHJldHVybiAiV2ViUHJv
Y2VzcyJfczsgfQogCisjaWYgUExBVEZPUk0oSU9TKQorICAgIHZvaWQgc2V0SGFzTW91c2VEZXZp
Y2UoYm9vbCk7CisjZW5kaWYKKwogI2lmIFBMQVRGT1JNKENPQ09BKQogICAgIGVudW0gU2FuZGJv
eEV4dGVuc2lvblR5cGUgOiB1aW50MzJfdCB7CiAgICAgICAgIE5vbmUgPSAwLApAQCAtNDEwLDYg
KzQxNCw5IEBAIHByb3RlY3RlZDoKICAgICB2b2lkIHZhbGlkYXRlRnJlZXplclN0YXR1cygpOwog
CiBwcml2YXRlOgorICAgIHZvaWQgcGxhdGZvcm1Db25uZWN0aW9uV2lsbE9wZW4oKTsKKyAgICB2
b2lkIHBsYXRmb3JtUHJvY2Vzc1dpbGxTaHV0RG93bigpOworCiAgICAgLy8gSVBDIG1lc3NhZ2Ug
aGFuZGxlcnMuCiAgICAgdm9pZCB1cGRhdGVCYWNrRm9yd2FyZEl0ZW0oY29uc3QgQmFja0Zvcndh
cmRMaXN0SXRlbVN0YXRlJik7CiAgICAgdm9pZCBkaWREZXN0cm95RnJhbWUoV2ViQ29yZTo6RnJh
bWVJZGVudGlmaWVyKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9X
S01vdXNlRGV2aWNlT2JzZXJ2ZXIuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS01v
dXNlRGV2aWNlT2JzZXJ2ZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41MWQyMTdiOWNjY2Q5ZDg5NWI0MWE0ZmU1
YjI2NjBkNjM3ZTVmYTJjCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvaW9zL1dLTW91c2VEZXZpY2VPYnNlcnZlci5oCkBAIC0wLDAgKzEsNDcgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRT
IENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgor
ICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkK
KyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisjaWYgUExBVEZPUk0oSU9TKQorCisjaW1wb3J0ICJCYWNrQm9hcmRTZXJ2aWNlc1NQSS5o
IgorCituYW1lc3BhY2UgV2ViS2l0IHsKK2NsYXNzIFdlYlByb2Nlc3NQcm94eTsKK30KKworQGlu
dGVyZmFjZSBXS01vdXNlRGV2aWNlT2JzZXJ2ZXIgOiBOU09iamVjdDxCS1NNb3VzZVBvaW50ZXJE
ZXZpY2VPYnNlcnZlcj4KKworKyAoV0tNb3VzZURldmljZU9ic2VydmVyICopc2hhcmVkSW5zdGFu
Y2U7CisKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkgQk9PTCBoYXNNb3VzZURldmlj
ZTsKKworLSAodm9pZClhZGRXZWJQcm9jZXNzUHJveHk6KFdlYktpdDo6V2ViUHJvY2Vzc1Byb3h5
Jil3ZWJQcm9jZXNzUHJveHk7CistICh2b2lkKXJlbW92ZVdlYlByb2Nlc3NQcm94eTooV2ViS2l0
OjpXZWJQcm9jZXNzUHJveHkmKXdlYlByb2Nlc3NQcm94eTsKKworLSAodm9pZClfc2V0SGFzTW91
c2VEZXZpY2VGb3JUZXN0aW5nOihCT09MKWhhc01vdXNlRGV2aWNlOworCitAZW5kCisKKyNlbmRp
ZiAvLyBQTEFURk9STShJT1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9p
b3MvV0tNb3VzZURldmljZU9ic2VydmVyLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9z
L1dLTW91c2VEZXZpY2VPYnNlcnZlci5tbQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45YmU4MWQzNTM3MTc2ZmU0YTgz
NTk3MmM5ODUzMGU0MjkyOWI0Mjc0Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvaW9zL1dLTW91c2VEZXZpY2VPYnNlcnZlci5tbQpAQCAtMCwwICsxLDEyMCBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNpbXBvcnQgImNvbmZpZy5oIgorI2ltcG9ydCAiV0tNb3VzZURldmljZU9i
c2VydmVyLmgiCisKKyNpZiBQTEFURk9STShJT1MpCisKKyNpbXBvcnQgIldlYlByb2Nlc3NQcm94
eS5oIgorI2luY2x1ZGUgPHd0Zi9XZWFrSGFzaFNldC5oPgorCitAaW1wbGVtZW50YXRpb24gV0tN
b3VzZURldmljZU9ic2VydmVyIHsKKyAgICBXZWFrSGFzaFNldDxXZWJLaXQ6OldlYlByb2Nlc3NQ
cm94eT4gX3dlYlByb2Nlc3NQcm94eUxpc3Q7CisKKyAgICBCT09MIF9oYXNNb3VzZURldmljZTsK
KyAgICBpZDxCU0ludmFsaWRhdGFibGU+IF90b2tlbjsKK30KKworKyAoV0tNb3VzZURldmljZU9i
c2VydmVyICopc2hhcmVkSW5zdGFuY2UgeworICAgIHN0YXRpYyBXS01vdXNlRGV2aWNlT2JzZXJ2
ZXIgKmluc3RhbmNlOworICAgIGlmICghaW5zdGFuY2UpCisgICAgICAgIGluc3RhbmNlID0gW1tX
S01vdXNlRGV2aWNlT2JzZXJ2ZXIgYWxsb2NdIGluaXRdOworICAgIHJldHVybiBpbnN0YW5jZTsK
K30KKworLSAodm9pZClkZWFsbG9jCit7CisgICAgaWYgKF90b2tlbikKKyAgICAgICAgW3NlbGYg
c3RvcF07CisKKyAgICBbc3VwZXIgZGVhbGxvY107Cit9CisKKyNwcmFnbWEgbWFyayAtIFdlYlBy
b2Nlc3NQcm94eSBBUEkKKworLSAodm9pZClhZGRXZWJQcm9jZXNzUHJveHk6KFdlYktpdDo6V2Vi
UHJvY2Vzc1Byb3h5Jil3ZWJQcm9jZXNzUHJveHkKK3sKKyAgICBpZiAoIV93ZWJQcm9jZXNzUHJv
eHlMaXN0LmFkZCh3ZWJQcm9jZXNzUHJveHkpKQorICAgICAgICByZXR1cm47CisKKyAgICBpZiAo
X3dlYlByb2Nlc3NQcm94eUxpc3QuY29tcHV0ZVNpemUoKSA9PSAxKQorICAgICAgICBbc2VsZiBz
dGFydF07Cit9CisKKy0gKHZvaWQpcmVtb3ZlV2ViUHJvY2Vzc1Byb3h5OihXZWJLaXQ6OldlYlBy
b2Nlc3NQcm94eSYpd2ViUHJvY2Vzc1Byb3h5Cit7CisgICAgaWYgKCFfd2ViUHJvY2Vzc1Byb3h5
TGlzdC5yZW1vdmUod2ViUHJvY2Vzc1Byb3h5KSkKKyAgICAgICAgcmV0dXJuOworCisgICAgaWYg
KF93ZWJQcm9jZXNzUHJveHlMaXN0LmNvbXB1dGVTaXplKCkgPT0gMCkKKyAgICAgICAgW3NlbGYg
c3RvcF07Cit9CisKKyNwcmFnbWEgbWFyayAtIEJLU01vdXNlUG9pbnRlckRldmljZU9ic2VydmVy
IHN0YXRlCisKKy0gKHZvaWQpc3RhcnQKK3sKKyAgICBBU1NFUlQoIV90b2tlbik7CisgICAgX3Rv
a2VuID0gW1tCS1NNb3VzZVBvaW50ZXJTZXJ2aWNlIHNoYXJlZEluc3RhbmNlXSBhZGRQb2ludGVy
RGV2aWNlT2JzZXJ2ZXI6c2VsZl07Cit9CisKKy0gKHZvaWQpc3RvcAoreworICAgIEFTU0VSVChf
dG9rZW4pOworICAgIFtfdG9rZW4gaW52YWxpZGF0ZV07CisgICAgX3Rva2VuID0gbmlsOworfQor
CisjcHJhZ21hIG1hcmsgLSBCS1NNb3VzZVBvaW50ZXJEZXZpY2VPYnNlcnZlciBoYW5kbGVycwor
CistICh2b2lkKW1vdXNlUG9pbnRlckRldmljZXNEaWRDaGFuZ2U6KE5TU2V0PEJLU01vdXNlUG9p
bnRlckRldmljZSAqPiAqKW1vdXNlUG9pbnRlckRldmljZXMKK3sKKyAgICBCT09MIGhhc01vdXNl
RGV2aWNlID0gW21vdXNlUG9pbnRlckRldmljZXMgY291bnRdID4gMDsKKyAgICBpZiAoaGFzTW91
c2VEZXZpY2UgPT0gX2hhc01vdXNlRGV2aWNlKQorICAgICAgICByZXR1cm47CisKKyAgICBfaGFz
TW91c2VEZXZpY2UgPSBoYXNNb3VzZURldmljZTsKKworICAgIGZvciAoYXV0byYgd2ViUHJvY2Vz
c1Byb3h5IDogX3dlYlByb2Nlc3NQcm94eUxpc3QpCisgICAgICAgIHdlYlByb2Nlc3NQcm94eS5z
ZXRIYXNNb3VzZURldmljZShfaGFzTW91c2VEZXZpY2UpOworfQorCisjcHJhZ21hIG1hcmsgLSBU
ZXN0aW5nCisKKy0gKHZvaWQpX3NldEhhc01vdXNlRGV2aWNlRm9yVGVzdGluZzooQk9PTCloYXNN
b3VzZURldmljZQoreworICAgIGlmIChoYXNNb3VzZURldmljZSA9PSBfaGFzTW91c2VEZXZpY2Up
CisgICAgICAgIHJldHVybjsKKworICAgIF9oYXNNb3VzZURldmljZSA9IGhhc01vdXNlRGV2aWNl
OworCisgICAgZm9yIChhdXRvJiB3ZWJQcm9jZXNzUHJveHkgOiBfd2ViUHJvY2Vzc1Byb3h5TGlz
dCkKKyAgICAgICAgd2ViUHJvY2Vzc1Byb3h5LnNldEhhc01vdXNlRGV2aWNlKF9oYXNNb3VzZURl
dmljZSk7Cit9CisKK0BlbmQKKworI2VuZGlmIC8vIFBMQVRGT1JNKElPUykKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XZWJQcm9jZXNzUHJveHlJT1MubW0gYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV2ViUHJvY2Vzc1Byb3h5SU9TLm1tCmluZGV4IGViMTc3
Y2Q3Y2RmNTFmMDI3ZjdjNWIxZWM3MmM4NzNmZmE2MTg0ZmEuLjY5ZTMyNDczNmE0YzQ4ZjNkNzA0
MzU0NzRlMGQ2YmY2MzBkOTFlMTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L2lvcy9XZWJQcm9jZXNzUHJveHlJT1MubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
aW9zL1dlYlByb2Nlc3NQcm94eUlPUy5tbQpAQCAtMzAsMTAgKzMwLDI4IEBACiAKICNpbXBvcnQg
IkFjY2Vzc2liaWxpdHlTdXBwb3J0U1BJLmgiCiAjaW1wb3J0ICJXS0Z1bGxLZXlib2FyZEFjY2Vz
c1dhdGNoZXIuaCIKKyNpbXBvcnQgIldLTW91c2VEZXZpY2VPYnNlcnZlci5oIgogI2ltcG9ydCAi
V2ViUHJvY2Vzc01lc3NhZ2VzLmgiCiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCisjaWYgUExBVEZP
Uk0oSU9TKQordm9pZCBXZWJQcm9jZXNzUHJveHk6OnBsYXRmb3JtQ29ubmVjdGlvbldpbGxPcGVu
KCkKK3sKKyAgICBbW1dLTW91c2VEZXZpY2VPYnNlcnZlciBzaGFyZWRJbnN0YW5jZV0gYWRkV2Vi
UHJvY2Vzc1Byb3h5Oip0aGlzXTsKK30KKwordm9pZCBXZWJQcm9jZXNzUHJveHk6OnBsYXRmb3Jt
UHJvY2Vzc1dpbGxTaHV0RG93bigpCit7CisgICAgW1tXS01vdXNlRGV2aWNlT2JzZXJ2ZXIgc2hh
cmVkSW5zdGFuY2VdIHJlbW92ZVdlYlByb2Nlc3NQcm94eToqdGhpc107Cit9CisKK3ZvaWQgV2Vi
UHJvY2Vzc1Byb3h5OjpzZXRIYXNNb3VzZURldmljZShib29sIGhhc01vdXNlRGV2aWNlKQorewor
ICAgIHNlbmQoTWVzc2FnZXM6OldlYlByb2Nlc3M6OlNldEhhc01vdXNlRGV2aWNlKGhhc01vdXNl
RGV2aWNlKSwgMCk7Cit9CisjZW5kaWYKKwogYm9vbCBXZWJQcm9jZXNzUHJveHk6OmZ1bGxLZXli
b2FyZEFjY2Vzc0VuYWJsZWQoKQogewogI2lmIEVOQUJMRShGVUxMX0tFWUJPQVJEX0FDQ0VTUykK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2ogYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4
IDVkZTA4NmEwNDQwNWMwNDMyYjQ0MTZiNDE4MTFkM2M0NWQxYjVhM2IuLjZkZTg1ZTYzN2U2ZDVi
NjkzNzIyNDkxNDRhNDEzNTAzYjQ5NzU2N2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2Vi
S2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYktpdC9XZWJLaXQu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMTM3OSw2ICsxMzc5LDggQEAKIAkJOTNCREVC
MDExNzFERDdBRjAwQkZFRTFCIC8qIFdLUGFnZUxvYWRUeXBlc1ByaXZhdGUuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzQkRFQjAwMTcxREQ3QUYwMEJG
RUUxQiAvKiBXS1BhZ2VMb2FkVHlwZXNQcml2YXRlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVU
RVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJOTNFNkE0RUUxQkM1REQzOTAwRjhBMEU3IC8qIF9X
S0hpdFRlc3RSZXN1bHQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDkzRTZBNEVEMUJDNUREMzkwMEY4QTBFNyAvKiBfV0tIaXRUZXN0UmVzdWx0LmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJOTNGNTQ5QjQx
RTMxNzRCNzAwMEU3MjM5IC8qIFdLU25hcHNob3RDb25maWd1cmF0aW9uLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0Y1NDlCMzFFMzE3NEI3MDAwRTcy
MzkgLyogV0tTbmFwc2hvdENvbmZpZ3VyYXRpb24uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRF
UyA9IChQdWJsaWMsICk7IH07IH07CisJCTk1MEYyODgwMjUyNDE0RUEwMEI3NEYxQyAvKiBXS01v
dXNlRGV2aWNlT2JzZXJ2ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDk1MEYyODdFMjUyNDE0RTkwMEI3NEYxQyAvKiBXS01vdXNlRGV2aWNlT2JzZXJ2
ZXIuaCAqLzsgfTsKKwkJOTVDOTQzOTEyNTIzQzBEMDAwNTRGM0Q1IC8qIEJhc2VCb2FyZFNQSS5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTVDOTQzOTAy
NTIzQzBEMDAwNTRGM0Q1IC8qIEJhc2VCb2FyZFNQSS5oICovOyB9OwogCQk5OTAzNkFFMjIzQTk0
OUNGMDAwMEIwNkEgLyogX1dLSW5zcGVjdG9yRGVidWdnYWJsZUluZm9JbnRlcm5hbC5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTkwMzZBRTEyM0E5NDlD
RTAwMDBCMDZBIC8qIF9XS0luc3BlY3RvckRlYnVnZ2FibGVJbmZvSW50ZXJuYWwuaCAqLzsgfTsK
IAkJOTkwMzZBRTUyM0E5NTg3NTAwMDBCMDZBIC8qIEFQSURlYnVnZ2FibGVJbmZvLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5OTAzNkFFMzIzQTk1ODc0
MDAwMEIwNkEgLyogQVBJRGVidWdnYWJsZUluZm8uaCAqLzsgfTsKIAkJOTkwMzZBRTkyM0E5NzA4
NzAwMDBCMDZBIC8qIERlYnVnZ2FibGVJbmZvRGF0YS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTkwMzZBRTcyM0E5NzA4NzAwMDBCMDZBIC8qIERlYnVn
Z2FibGVJbmZvRGF0YS5oICovOyB9OwpAQCAtNDQyMCw2ICs0NDIyLDkgQEAKIAkJOTNFNkE0RUQx
QkM1REQzOTAwRjhBMEU3IC8qIF9XS0hpdFRlc3RSZXN1bHQuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gX1dLSGl0VGVzdFJlc3VsdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk5M0Y1NDlCMzFFMzE3NEI3MDAwRTcyMzkgLyogV0tTbmFwc2hvdENvbmZpZ3VyYXRp
b24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0tTbmFwc2hvdENvbmZpZ3Vy
YXRpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTNGNTQ5QjUxRTMxNzREQTAw
MEU3MjM5IC8qIFdLU25hcHNob3RDb25maWd1cmF0aW9uLm1tICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAub2JqY3BwOyBwYXRoID0gV0tTbmFwc2hvdENvbmZpZ3VyYXRpb24ubW07IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCTk1MEYyODdFMjUyNDE0RTkwMEI3NEYxQyAvKiBXS01vdXNl
RGV2aWNlT2JzZXJ2ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gV0tNb3Vz
ZURldmljZU9ic2VydmVyLmg7IHBhdGggPSBpb3MvV0tNb3VzZURldmljZU9ic2VydmVyLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTk1MEYyODdGMjUyNDE0RUEwMEI3NEYxQyAvKiBX
S01vdXNlRGV2aWNlT2JzZXJ2ZXIubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7
IG5hbWUgPSBXS01vdXNlRGV2aWNlT2JzZXJ2ZXIubW07IHBhdGggPSBpb3MvV0tNb3VzZURldmlj
ZU9ic2VydmVyLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5NUM5NDM5MDI1MjND
MEQwMDA1NEYzRDUgLyogQmFzZUJvYXJkU1BJLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IEJhc2VCb2FyZFNQSS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5OTAz
NkFFMTIzQTk0OUNFMDAwMEIwNkEgLyogX1dLSW5zcGVjdG9yRGVidWdnYWJsZUluZm9JbnRlcm5h
bC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBfV0tJbnNwZWN0b3JEZWJ1Z2dh
YmxlSW5mb0ludGVybmFsLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTk5MDM2QUUz
MjNBOTU4NzQwMDAwQjA2QSAvKiBBUElEZWJ1Z2dhYmxlSW5mby5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBBUElEZWJ1Z2dhYmxlSW5mby5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk5OTAzNkFFNDIzQTk1ODc0MDAwMEIwNkEgLyogQVBJRGVidWdnYWJsZUluZm8u
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQVBJRGVidWdnYWJsZUlu
Zm8uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNzAxNCw2ICs3MDE5LDggQEAK
IAkJCQk5MzNERjgyRjFCM0JDMEI0MDBBRUE5RTMgLyogV0tJbWFnZVByZXZpZXdWaWV3Q29udHJv
bGxlci5tbSAqLywKIAkJCQkyREQ1RTEyNzIxMEFEQzdBMDBEQjYwMTIgLyogV0tLZXlib2FyZFNj
cm9sbGluZ0FuaW1hdG9yLmggKi8sCiAJCQkJMkRENUUxMjYyMTBBREM3QTAwREI2MDEyIC8qIFdL
S2V5Ym9hcmRTY3JvbGxpbmdBbmltYXRvci5tbSAqLywKKwkJCQk5NTBGMjg3RTI1MjQxNEU5MDBC
NzRGMUMgLyogV0tNb3VzZURldmljZU9ic2VydmVyLmggKi8sCisJCQkJOTUwRjI4N0YyNTI0MTRF
QTAwQjc0RjFDIC8qIFdLTW91c2VEZXZpY2VPYnNlcnZlci5tbSAqLywKIAkJCQkyREI5NDI5NzIz
NEU3QTdGMDBFNzc2QUQgLyogV0tNb3VzZUdlc3R1cmVSZWNvZ25pemVyLmggKi8sCiAJCQkJMkRC
OTQyOTgyMzRFN0E3RjAwRTc3NkFEIC8qIFdLTW91c2VHZXN0dXJlUmVjb2duaXplci5tbSAqLywK
IAkJCQlBMTVFRURFNDFFMzAxQ0VFMDAwMDY5QjAgLyogV0tQYXNzd29yZFZpZXcuaCAqLywKQEAg
LTEwMzc0LDYgKzEwMzgxLDcgQEAKIAkJCWNoaWxkcmVuID0gKAogCQkJCUNFMUEwQkNDMUE0OEU2
QzYwMDU0RUY3NCAvKiBBc3NlcnRpb25TZXJ2aWNlc1NQSS5oICovLAogCQkJCUNEQTA0MUYzMUFD
RTIxMDUwMDRBMTNFQyAvKiBCYWNrQm9hcmRTZXJ2aWNlc1NQSS5oICovLAorCQkJCTk1Qzk0Mzkw
MjUyM0MwRDAwMDU0RjNENSAvKiBCYXNlQm9hcmRTUEkuaCAqLywKIAkJCQkyRDRBRjA4ODIwNDRD
M0M0MDA2Qzg4MTcgLyogRnJvbnRCb2FyZFNlcnZpY2VzU1BJLmggKi8sCiAJCQkJQTEzQjNEQTEy
MDdGMzlERTAwOTBDNThEIC8qIE1vYmlsZVdpRmlTUEkuaCAqLywKIAkJCQkzMTc4QUY5NzIwRTJB
N0Y4MDA3NERFOTQgLyogUERGS2l0U1BJLmggKi8sCkBAIC0xMDc0MCw2ICsxMDc0OCw3IEBACiAJ
CQkJMjkwRjQyNzIxNzJBMEM3NDAwOTM5RkYwIC8qIEF1eGlsaWFyeVByb2Nlc3NTdXBwbGVtZW50
LmggaW4gSGVhZGVycyAqLywKIAkJCQlDREEwNDFGNDFBQ0UyMTA1MDA0QTEzRUMgLyogQmFja0Jv
YXJkU2VydmljZXNTUEkuaCBpbiBIZWFkZXJzICovLAogCQkJCTQ2QTJCNjA5MUU1Njc2QTYwMEMz
REVEQSAvKiBCYWNrZ3JvdW5kUHJvY2Vzc1Jlc3BvbnNpdmVuZXNzVGltZXIuaCBpbiBIZWFkZXJz
ICovLAorCQkJCTk1Qzk0MzkxMjUyM0MwRDAwMDU0RjNENSAvKiBCYXNlQm9hcmRTUEkuaCBpbiBI
ZWFkZXJzICovLAogCQkJCUUxNjRBMkYyMTkxQUYxNEUwMDEwNzM3RCAvKiBCbG9iRGF0YUZpbGVS
ZWZlcmVuY2VXaXRoU2FuZGJveEV4dGVuc2lvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTE3MDg3
NkMxNkQ2Q0E2OTAwRjk5MjI2IC8qIEJsb2JSZWdpc3RyeVByb3h5LmggaW4gSGVhZGVycyAqLywK
IAkJCQk0RjYwMTQzMjE1NUM1QUEyMDAxRkJERTAgLyogQmxvY2tpbmdSZXNwb25zZU1hcC5oIGlu
IEhlYWRlcnMgKi8sCkBAIC0xMTU5Nyw2ICsxMTYwNiw3IEBACiAJCQkJNUNBQkRDODYyMkM0MEZE
RTAwMUVERThFIC8qIFdLTWVzc2FnZUxpc3RlbmVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlDMTFF
MTY5NDIxMkI4N0M1MDA5ODVGRjYgLyogV0tNb2NrRGlzcGxheS5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJNDExQThEREIyMERERDFBQzAwNjBEMzRGIC8qIFdLTW9ja01lZGlhRGV2aWNlLmggaW4gSGVh
ZGVycyAqLywKKwkJCQk5NTBGMjg4MDI1MjQxNEVBMDBCNzRGMUMgLyogV0tNb3VzZURldmljZU9i
c2VydmVyLmggaW4gSGVhZGVycyAqLywKIAkJCQkyREI5NDI5OTIzNEU3QTdGMDBFNzc2QUQgLyog
V0tNb3VzZUdlc3R1cmVSZWNvZ25pemVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzQwNzVGRTEy
NEZGMDI3MDA2OEYyMEEgLyogV0tNdXRhYmxlQXJyYXkuaCBpbiBIZWFkZXJzICovLAogCQkJCUJD
NDA3NjAwMTI0RkYwMjcwMDY4RjIwQSAvKiBXS011dGFibGVEaWN0aW9uYXJ5LmggaW4gSGVhZGVy
cyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9y
dC9XZWJDaHJvbWVDbGllbnQuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAKaW5kZXggMTg4YmM1ZTllYjlkYjc0NDA1ZTA4ZjZl
MDU4MjNlYTNjMzdhODJhMS4uODkzNmMzYzMyNGY5M2VjYTk1YWU0NGY1YzMyM2E1OGM2MmU1ZGQ3
OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dl
YkNocm9tZUNsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAKQEAgLTUwNiw2ICs1MDYsMTMgQEAgS2V5Ym9hcmRV
SU1vZGUgV2ViQ2hyb21lQ2xpZW50OjprZXlib2FyZFVJTW9kZSgpCiAgICAgcmV0dXJuIG1fcGFn
ZS5rZXlib2FyZFVJTW9kZSgpOwogfQogCisjaWYgUExBVEZPUk0oSU9TKQorYm9vbCBXZWJDaHJv
bWVDbGllbnQ6Omhhc01vdXNlRGV2aWNlKCkKK3sKKyAgICByZXR1cm4gV2ViUHJvY2Vzczo6c2lu
Z2xldG9uKCkuaGFzTW91c2VEZXZpY2UoKTsKK30KKyNlbmRpZgorCiAjaWYgRU5BQkxFKFBPSU5U
RVJfTE9DSykKIAogYm9vbCBXZWJDaHJvbWVDbGllbnQ6OnJlcXVlc3RQb2ludGVyTG9jaygpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hy
b21lQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2Vi
Q2hyb21lQ2xpZW50LmgKaW5kZXggYmRiNGRmZmJiMDE1YTM3NzIwNmJkYjQyNWE3MjVhZDY0ZTAx
NTg3Yi4uN2Q1M2NiYjViZTE5YjExZTFlZjQ4MDkzY2Y3MmIxZTIxYTlmZmY5NSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVu
dC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJv
bWVDbGllbnQuaApAQCAtMTEyLDYgKzExMiwxMCBAQCBwcml2YXRlOgogCiAgICAgV2ViQ29yZTo6
S2V5Ym9hcmRVSU1vZGUga2V5Ym9hcmRVSU1vZGUoKSBmaW5hbDsKIAorI2lmIFBMQVRGT1JNKElP
UykKKyAgICBib29sIGhhc01vdXNlRGV2aWNlKCkgZmluYWw7CisjZW5kaWYKKwogICAgIC8vIEhv
c3RXaW5kb3cgbWVtYmVyIGZ1bmN0aW9uIGZpbmFscy4KICAgICB2b2lkIGludmFsaWRhdGVSb290
Vmlldyhjb25zdCBXZWJDb3JlOjpJbnRSZWN0JikgZmluYWw7CiAgICAgdm9pZCBpbnZhbGlkYXRl
Q29udGVudHNBbmRSb290Vmlldyhjb25zdCBXZWJDb3JlOjpJbnRSZWN0JikgZmluYWw7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAKaW5kZXggNzdlOGZiNmQyZmNlMmVmNWJh
ODRmNjZmOTI2Y2M1M2I1ZTAyOWNjNy4uMGY4MGI2MjA3ZjRkYzgxZWQ4Y2ZjZWI1MGZiNmVlMjgw
ZjdjYjc3OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3Mu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcApAQCAtNDA2
LDYgKzQwNiwxMCBAQCB2b2lkIFdlYlByb2Nlc3M6OmluaXRpYWxpemVXZWJQcm9jZXNzKFdlYlBy
b2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMmJiBwYXJhbWV0ZXJzKQogCiAgICAgbV9mdWxsS2V5Ym9h
cmRBY2Nlc3NFbmFibGVkID0gcGFyYW1ldGVycy5mdWxsS2V5Ym9hcmRBY2Nlc3NFbmFibGVkOwog
CisjaWYgUExBVEZPUk0oSU9TKQorICAgIG1faGFzTW91c2VEZXZpY2UgPSBwYXJhbWV0ZXJzLmhh
c01vdXNlRGV2aWNlOworI2VuZGlmCisKICAgICBmb3IgKGF1dG8mIHNjaGVtZSA6IHBhcmFtZXRl
cnMudXJsU2NoZW1lc1JlZ2lzdGVyZWRBc0VtcHR5RG9jdW1lbnQpCiAgICAgICAgIHJlZ2lzdGVy
VVJMU2NoZW1lQXNFbXB0eURvY3VtZW50KHNjaGVtZSk7CiAKQEAgLTEwNTAsNiArMTA1NCwxOCBA
QCB2b2lkIFdlYlByb2Nlc3M6Om1lc3NhZ2VzQXZhaWxhYmxlRm9yUG9ydChjb25zdCBNZXNzYWdl
UG9ydElkZW50aWZpZXImIGlkZW50aWZpZQogICAgIE1lc3NhZ2VQb3J0Ojpub3RpZnlNZXNzYWdl
QXZhaWxhYmxlKGlkZW50aWZpZXIpOwogfQogCisjaWYgUExBVEZPUk0oSU9TKQordm9pZCBXZWJQ
cm9jZXNzOjpzZXRIYXNNb3VzZURldmljZShib29sIGhhc01vdXNlRGV2aWNlKQoreworICAgIGlm
IChoYXNNb3VzZURldmljZSA9PSBtX2hhc01vdXNlRGV2aWNlKQorICAgICAgICByZXR1cm47CisK
KyAgICBtX2hhc01vdXNlRGV2aWNlID0gaGFzTW91c2VEZXZpY2U7CisKKyAgICBQYWdlOjp1cGRh
dGVTdHlsZUZvckFsbFBhZ2VzQWZ0ZXJHbG9iYWxDaGFuZ2VJbkVudmlyb25tZW50KCk7Cit9Cisj
ZW5kaWYKKwogI2lmIEVOQUJMRShHQU1FUEFEKQogCiB2b2lkIFdlYlByb2Nlc3M6OnNldEluaXRp
YWxHYW1lcGFkcyhjb25zdCBWZWN0b3I8V2ViS2l0OjpHYW1lcGFkRGF0YT4mIGdhbWVwYWREYXRh
cykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmggYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oCmluZGV4IDlkMGRkYmZkMzhkZTM4
MWRjMjVkYmViOTdkNDg2OWU5NGZkZWI4MjcuLjRiMmMxZDljYTA5Zjg3NWQ3OWQ4YjEzODMyZjRl
ZGQzOTZkOTVmYzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9j
ZXNzLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuaApAQCAtMTg3
LDYgKzE4NywxMSBAQCBwdWJsaWM6CiAKICAgICBib29sIGZ1bGxLZXlib2FyZEFjY2Vzc0VuYWJs
ZWQoKSBjb25zdCB7IHJldHVybiBtX2Z1bGxLZXlib2FyZEFjY2Vzc0VuYWJsZWQ7IH0KIAorI2lm
IFBMQVRGT1JNKElPUykKKyAgICBib29sIGhhc01vdXNlRGV2aWNlKCkgY29uc3QgeyByZXR1cm4g
bV9oYXNNb3VzZURldmljZTsgfQorICAgIHZvaWQgc2V0SGFzTW91c2VEZXZpY2UoYm9vbCk7Cisj
ZW5kaWYKKwogICAgIFdlYkZyYW1lKiB3ZWJGcmFtZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIp
IGNvbnN0OwogICAgIFZlY3RvcjxXZWJGcmFtZSo+IHdlYkZyYW1lcygpIGNvbnN0OwogICAgIHZv
aWQgYWRkV2ViRnJhbWUoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBXZWJGcmFtZSopOwpAQCAt
NTUzLDYgKzU1OCw5IEBAIHByaXZhdGU6CiAjZW5kaWYKIAogICAgIGJvb2wgbV9mdWxsS2V5Ym9h
cmRBY2Nlc3NFbmFibGVkIHsgZmFsc2UgfTsKKyNpZiBQTEFURk9STShJT1MpCisgICAgYm9vbCBt
X2hhc01vdXNlRGV2aWNlIHsgZmFsc2UgfTsKKyNlbmRpZgogCiAgICAgSGFzaE1hcDxXZWJDb3Jl
OjpGcmFtZUlkZW50aWZpZXIsIFdlYkZyYW1lKj4gbV9mcmFtZU1hcDsKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MubWVzc2FnZXMuaW4gYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5tZXNzYWdlcy5pbgppbmRleCAwMTIzNjc1N2E1
YzVmMGQyODBjNmRkMWY5YTE4MTUyYmJjZjE5YzA0Li44NTk2MjA1YzQ0OTRjYTUwZmM3MjI2NjNi
NDFiNmQ3OTI5ZTU5MjAwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
UHJvY2Vzcy5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJv
Y2Vzcy5tZXNzYWdlcy5pbgpAQCAtNTIsNiArNTIsMTAgQEAgbWVzc2FnZXMgLT4gV2ViUHJvY2Vz
cyBMZWdhY3lSZWNlaXZlciBOb3RSZWZDb3VudGVkIHsKICAgICBVc2VyUHJlZmVycmVkTGFuZ3Vh
Z2VzQ2hhbmdlZCgpCiAgICAgRnVsbEtleWJvYXJkQWNjZXNzTW9kZUNoYW5nZWQoYm9vbCBmdWxs
S2V5Ym9hcmRBY2Nlc3NFbmFibGVkKQogCisjaWYgUExBVEZPUk0oSU9TKQorICAgIFNldEhhc01v
dXNlRGV2aWNlKGJvb2wgaGFzTW91c2VEZXZpY2UpCisjZW5kaWYKKwogICAgICMgUGx1Zy1pbnMu
CiAgICAgRGlkQWRkUGx1Z0luQXV0b1N0YXJ0T3JpZ2luSGFzaCh1aW50MzJfdCBoYXNoLCBXYWxs
VGltZSBleHBpcmF0aW9uVGltZSkKICAgICBSZXNldFBsdWdJbkF1dG9TdGFydE9yaWdpbkhhc2hl
cyhIYXNoTWFwPHVpbnQzMl90LFdhbGxUaW1lPiBoYXNoZXMpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0TGVnYWN5L2lvcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnRJT1MuaCBiL1Nv
dXJjZS9XZWJLaXRMZWdhY3kvaW9zL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudElPUy5o
CmluZGV4IGE5MmJhYTZiMzA1OWRlODkxNDVmMDNiMWE1NzU3Zjk3MmE5NDA5OTkuLmYxNDFmNGI4
ZWM5MTNmOWQ1NWE5ODEyMjg0ODI2M2VjZGVlNGE1OWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXRMZWdhY3kvaW9zL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudElPUy5oCisrKyBiL1Nv
dXJjZS9XZWJLaXRMZWdhY3kvaW9zL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudElPUy5o
CkBAIC01MCw2ICs1MCwxMCBAQCBwcml2YXRlOgogICAgIHZvaWQgcnVuT3BlblBhbmVsKFdlYkNv
cmU6OkZyYW1lJiwgV2ViQ29yZTo6RmlsZUNob29zZXImKSBmaW5hbDsKICAgICB2b2lkIHNob3dT
aGFyZVNoZWV0KFdlYkNvcmU6OlNoYXJlRGF0YVdpdGhQYXJzZWRVUkwmLCBDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKGJvb2wpPiYmKSBmaW5hbDsKIAorI2lmIFBMQVRGT1JNKElPUykKKyAgICBib29s
IGhhc01vdXNlRGV2aWNlKCkgZmluYWwgeyByZXR1cm4gZmFsc2U7IH0KKyNlbmRpZgorCiAgICAg
dm9pZCBzZXRDdXJzb3IoY29uc3QgV2ViQ29yZTo6Q3Vyc29yJikgZmluYWwgeyB9CiAgICAgdm9p
ZCBzZXRDdXJzb3JIaWRkZW5VbnRpbE1vdXNlTW92ZXMoYm9vbCkgZmluYWwgeyB9CiAKZGlmZiAt
LWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCBjZmMzYjE3Y2Yx
MzYzZmUzYWE5MzY4Mzk0OGQwY2M5ZGM3ZDZmNWRjLi5jNTQwN2E3YjZkMGQ3M2IwNGU2NDY2ZWVk
MjQ5NTE2YWQwNWVlMmU4IDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTkgQEAKKzIwMjAtMDktMzAgIERldmluIFJvdXNzbyAgPGRy
b3Vzc29AYXBwbGUuY29tPgorCisgICAgICAgIENTUyBob3ZlciBhbmQgInBvaW50ZXI6IGZpbmUi
IG1lZGlhIHF1ZXJpZXMgZG8gbm90IGV2YWx1YXRlIHRvIHRydWUgd2l0aCBpT1MgMTMuNCBtb3Vz
ZSBzdXBwb3J0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0yMDkyOTIKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzYwNjYzMTI0PgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0
cy9XZWJLaXRDb2NvYS9pT1NNb3VzZVN1cHBvcnQubW06CisgICAgICAgIChldmFsdWF0ZU1lZGlh
UXVlcnkpOiBBZGRlZC4KKyAgICAgICAgKGlPU01vdXNlU3VwcG9ydC5Nb3VzZUluaXRpYWxseURp
c2Nvbm5lY3RlZCk6IEFkZGVkLgorICAgICAgICAoaU9TTW91c2VTdXBwb3J0Lk1vdXNlSW5pdGlh
bGx5Q29ubmVjdGVkKTogQWRkZWQuCisgICAgICAgIChpT1NNb3VzZVN1cHBvcnQuTW91c2VMYXRl
ckRpc2Nvbm5lY3RlZCk6IEFkZGVkLgorICAgICAgICAoaU9TTW91c2VTdXBwb3J0Lk1vdXNlTGF0
ZXJDb25uZWN0ZWQpOiBBZGRlZC4KKyAgICAgICAgKGlPU01vdXNlU3VwcG9ydC5Nb3VzZUFsd2F5
c0Nvbm5lY3RlZCk6IEFkZGVkLgorCiAyMDIwLTA5LTMwICBKb25hdGhhbiBCZWRhcmQgIDxqYmVk
YXJkQGFwcGxlLmNvbT4KIAogICAgICAgICBbd2Via2l0cHldIFVzZSB3ZWJraXRjb3JlcHkncyBh
dXRvIGluc3RhbGxlciBmb3IgaHRtbDVsaWIKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViS2l0Q29jb2EvaU9TTW91c2VTdXBwb3J0Lm1tIGIvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9pT1NNb3VzZVN1cHBvcnQubW0KaW5kZXggYzI0MzBiMjBl
Zjc3NmFlYTEzMDllOTMzOGQ2ZTJlYTBjZjUwYWExNi4uMGViYTM3OWFhZTFjMDVjNDg0NWQ3MjQ0
NWQ5NGRlZWVkZmM0M2ViMiAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJLaXRDb2NvYS9pT1NNb3VzZVN1cHBvcnQubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJLaXRDb2NvYS9pT1NNb3VzZVN1cHBvcnQubW0KQEAgLTMwMCw0ICszMDAsMTU5IEBA
IFRFU1QoaU9TTW91c2VTdXBwb3J0LCBXZWJzaXRlTW91c2VFdmVudFBvbGljaWVzKQogCiAjZW5k
aWYgLy8gRU5BQkxFKElPU19UT1VDSF9FVkVOVFMpCiAKK3N0YXRpYyBCT09MIGV2YWx1YXRlTWVk
aWFRdWVyeShSZXRhaW5QdHI8VGVzdFdLV2ViVmlldz4mIHdlYlZpZXcsIE5TU3RyaW5nICpxdWVy
eSkKK3sKKyAgICByZXR1cm4gW1t3ZWJWaWV3IG9iamVjdEJ5RXZhbHVhdGluZ0phdmFTY3JpcHQ6
W05TU3RyaW5nIHN0cmluZ1dpdGhGb3JtYXQ6QCJ3aW5kb3cubWF0Y2hNZWRpYShcIiglQClcIiku
bWF0Y2hlcyIsIHF1ZXJ5XV0gYm9vbFZhbHVlXTsKK30KKworI2lmIFBMQVRGT1JNKElPUykKKwor
QGludGVyZmFjZSBXS01vdXNlRGV2aWNlT2JzZXJ2ZXIKKysgKFdLTW91c2VEZXZpY2VPYnNlcnZl
ciAqKXNoYXJlZEluc3RhbmNlOworLSAodm9pZClfc2V0SGFzTW91c2VEZXZpY2VGb3JUZXN0aW5n
OihCT09MKWhhc01vdXNlRGV2aWNlOworQGVuZAorCitURVNUKGlPU01vdXNlU3VwcG9ydCwgTW91
c2VJbml0aWFsbHlEaXNjb25uZWN0ZWQpCit7CisgICAgW1tOU0NsYXNzRnJvbVN0cmluZyhAIldL
TW91c2VEZXZpY2VPYnNlcnZlciIpIHNoYXJlZEluc3RhbmNlXSBfc2V0SGFzTW91c2VEZXZpY2VG
b3JUZXN0aW5nOk5PXTsKKworICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJW
aWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5TTWFrZVJlY3QoMCwgMCwgODAwLCA2MDApXSk7CisK
KyAgICBbd2ViVmlldyBzeW5jaHJvbm91c2x5TG9hZEhUTUxTdHJpbmc6QCIiXTsKKworICAgIEVY
UEVDVF9GQUxTRShldmFsdWF0ZU1lZGlhUXVlcnkod2ViVmlldywgQCJob3ZlciIpKTsKKyAgICBF
WFBFQ1RfVFJVRShldmFsdWF0ZU1lZGlhUXVlcnkod2ViVmlldywgQCJob3Zlcjogbm9uZSIpKTsK
KyAgICBFWFBFQ1RfRkFMU0UoZXZhbHVhdGVNZWRpYVF1ZXJ5KHdlYlZpZXcsIEAiaG92ZXI6IGhv
dmVyIikpOworCisgICAgRVhQRUNUX0ZBTFNFKGV2YWx1YXRlTWVkaWFRdWVyeSh3ZWJWaWV3LCBA
ImFueS1ob3ZlciIpKTsKKyAgICBFWFBFQ1RfVFJVRShldmFsdWF0ZU1lZGlhUXVlcnkod2ViVmll
dywgQCJhbnktaG92ZXI6IG5vbmUiKSk7CisgICAgRVhQRUNUX0ZBTFNFKGV2YWx1YXRlTWVkaWFR
dWVyeSh3ZWJWaWV3LCBAImFueS1ob3ZlcjogaG92ZXIiKSk7CisKKyAgICBFWFBFQ1RfVFJVRShl
dmFsdWF0ZU1lZGlhUXVlcnkod2ViVmlldywgQCJwb2ludGVyIikpOworICAgIEVYUEVDVF9GQUxT
RShldmFsdWF0ZU1lZGlhUXVlcnkod2ViVmlldywgQCJwb2ludGVyOiBub25lIikpOworICAgIEVY
UEVDVF9UUlVFKGV2YWx1YXRlTWVkaWFRdWVyeSh3ZWJWaWV3LCBAInBvaW50ZXI6IGNvYXJzZSIp
KTsKKyAgICBFWFBFQ1RfRkFMU0UoZXZhbHVhdGVNZWRpYVF1ZXJ5KHdlYlZpZXcsIEAicG9pbnRl
cjogZmluZSIpKTsKKworICAgIEVYUEVDVF9UUlVFKGV2YWx1YXRlTWVkaWFRdWVyeSh3ZWJWaWV3
LCBAImFueS1wb2ludGVyIikpOworICAgIEVYUEVDVF9GQUxTRShldmFsdWF0ZU1lZGlhUXVlcnko
d2ViVmlldywgQCJhbnktcG9pbnRlcjogbm9uZSIpKTsKKyAgICBFWFBFQ1RfVFJVRShldmFsdWF0
ZU1lZGlhUXVlcnkod2ViVmlldywgQCJhbnktcG9pbnRlcjogY29hcnNlIikpOworICAgIEVYUEVD
VF9GQUxTRShldmFsdWF0ZU1lZGlhUXVlcnkod2ViVmlldywgQCJhbnktcG9pbnRlcjogZmluZSIp
KTsKK30KKworVEVTVChpT1NNb3VzZVN1cHBvcnQsIE1vdXNlSW5pdGlhbGx5Q29ubmVjdGVkKQor
eworICAgIFtbTlNDbGFzc0Zyb21TdHJpbmcoQCJXS01vdXNlRGV2aWNlT2JzZXJ2ZXIiKSBzaGFy
ZWRJbnN0YW5jZV0gX3NldEhhc01vdXNlRGV2aWNlRm9yVGVzdGluZzpZRVNdOworCisgICAgYXV0
byB3ZWJWaWV3ID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6
TlNNYWtlUmVjdCgwLCAwLCA4MDAsIDYwMCldKTsKKworICAgIFt3ZWJWaWV3IHN5bmNocm9ub3Vz
bHlMb2FkSFRNTFN0cmluZzpAIiJdOworCisgICAgRVhQRUNUX0ZBTFNFKGV2YWx1YXRlTWVkaWFR
dWVyeSh3ZWJWaWV3LCBAImhvdmVyIikpOworICAgIEVYUEVDVF9UUlVFKGV2YWx1YXRlTWVkaWFR
dWVyeSh3ZWJWaWV3LCBAImhvdmVyOiBub25lIikpOworICAgIEVYUEVDVF9GQUxTRShldmFsdWF0
ZU1lZGlhUXVlcnkod2ViVmlldywgQCJob3ZlcjogaG92ZXIiKSk7CisKKyAgICBFWFBFQ1RfVFJV
RShldmFsdWF0ZU1lZGlhUXVlcnkod2ViVmlldywgQCJhbnktaG92ZXIiKSk7CisgICAgRVhQRUNU
X0ZBTFNFKGV2YWx1YXRlTWVkaWFRdWVyeSh3ZWJWaWV3LCBAImFueS1ob3Zlcjogbm9uZSIpKTsK
KyAgICBFWFBFQ1RfVFJVRShldmFsdWF0ZU1lZGlhUXVlcnkod2ViVmlldywgQCJhbnktaG92ZXI6
IGhvdmVyIikpOworCisgICAgRVhQRUNUX1RSVUUoZXZhbHVhdGVNZWRpYVF1ZXJ5KHdlYlZpZXcs
IEAicG9pbnRlciIpKTsKKyAgICBFWFBFQ1RfRkFMU0UoZXZhbHVhdGVNZWRpYVF1ZXJ5KHdlYlZp
ZXcsIEAicG9pbnRlcjogbm9uZSIpKTsKKyAgICBFWFBFQ1RfVFJVRShldmFsdWF0ZU1lZGlhUXVl
cnkod2ViVmlldywgQCJwb2ludGVyOiBjb2Fyc2UiKSk7CisgICAgRVhQRUNUX0ZBTFNFKGV2YWx1
YXRlTWVkaWFRdWVyeSh3ZWJWaWV3LCBAInBvaW50ZXI6IGZpbmUiKSk7CisKKyAgICBFWFBFQ1Rf
VFJVRShldmFsdWF0ZU1lZGlhUXVlcnkod2ViVmlldywgQCJhbnktcG9pbnRlciIpKTsKKyAgICBF
WFBFQ1RfRkFMU0UoZXZhbHVhdGVNZWRpYVF1ZXJ5KHdlYlZpZXcsIEAiYW55LXBvaW50ZXI6IG5v
bmUiKSk7CisgICAgRVhQRUNUX1RSVUUoZXZhbHVhdGVNZWRpYVF1ZXJ5KHdlYlZpZXcsIEAiYW55
LXBvaW50ZXI6IGNvYXJzZSIpKTsKKyAgICBFWFBFQ1RfVFJVRShldmFsdWF0ZU1lZGlhUXVlcnko
d2ViVmlldywgQCJhbnktcG9pbnRlcjogZmluZSIpKTsKK30KKworVEVTVChpT1NNb3VzZVN1cHBv
cnQsIE1vdXNlTGF0ZXJEaXNjb25uZWN0ZWQpCit7CisgICAgW1tOU0NsYXNzRnJvbVN0cmluZyhA
IldLTW91c2VEZXZpY2VPYnNlcnZlciIpIHNoYXJlZEluc3RhbmNlXSBfc2V0SGFzTW91c2VEZXZp
Y2VGb3JUZXN0aW5nOllFU107CisKKyAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdL
V2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU01ha2VSZWN0KDAsIDAsIDgwMCwgNjAwKV0p
OworCisgICAgW3dlYlZpZXcgc3luY2hyb25vdXNseUxvYWRIVE1MU3RyaW5nOkAiIl07CisKKyAg
ICBbW05TQ2xhc3NGcm9tU3RyaW5nKEAiV0tNb3VzZURldmljZU9ic2VydmVyIikgc2hhcmVkSW5z
dGFuY2VdIF9zZXRIYXNNb3VzZURldmljZUZvclRlc3Rpbmc6Tk9dOworCisgICAgRVhQRUNUX0ZB
TFNFKGV2YWx1YXRlTWVkaWFRdWVyeSh3ZWJWaWV3LCBAImhvdmVyIikpOworICAgIEVYUEVDVF9U
UlVFKGV2YWx1YXRlTWVkaWFRdWVyeSh3ZWJWaWV3LCBAImhvdmVyOiBub25lIikpOworICAgIEVY
UEVDVF9GQUxTRShldmFsdWF0ZU1lZGlhUXVlcnkod2ViVmlldywgQCJob3ZlcjogaG92ZXIiKSk7
CisKKyAgICBFWFBFQ1RfRkFMU0UoZXZhbHVhdGVNZWRpYVF1ZXJ5KHdlYlZpZXcsIEAiYW55LWhv
dmVyIikpOworICAgIEVYUEVDVF9UUlVFKGV2YWx1YXRlTWVkaWFRdWVyeSh3ZWJWaWV3LCBAImFu
eS1ob3Zlcjogbm9uZSIpKTsKKyAgICBFWFBFQ1RfRkFMU0UoZXZhbHVhdGVNZWRpYVF1ZXJ5KHdl
YlZpZXcsIEAiYW55LWhvdmVyOiBob3ZlciIpKTsKKworICAgIEVYUEVDVF9UUlVFKGV2YWx1YXRl
TWVkaWFRdWVyeSh3ZWJWaWV3LCBAInBvaW50ZXIiKSk7CisgICAgRVhQRUNUX0ZBTFNFKGV2YWx1
YXRlTWVkaWFRdWVyeSh3ZWJWaWV3LCBAInBvaW50ZXI6IG5vbmUiKSk7CisgICAgRVhQRUNUX1RS
VUUoZXZhbHVhdGVNZWRpYVF1ZXJ5KHdlYlZpZXcsIEAicG9pbnRlcjogY29hcnNlIikpOworICAg
IEVYUEVDVF9GQUxTRShldmFsdWF0ZU1lZGlhUXVlcnkod2ViVmlldywgQCJwb2ludGVyOiBmaW5l
IikpOworCisgICAgRVhQRUNUX1RSVUUoZXZhbHVhdGVNZWRpYVF1ZXJ5KHdlYlZpZXcsIEAiYW55
LXBvaW50ZXIiKSk7CisgICAgRVhQRUNUX0ZBTFNFKGV2YWx1YXRlTWVkaWFRdWVyeSh3ZWJWaWV3
LCBAImFueS1wb2ludGVyOiBub25lIikpOworICAgIEVYUEVDVF9UUlVFKGV2YWx1YXRlTWVkaWFR
dWVyeSh3ZWJWaWV3LCBAImFueS1wb2ludGVyOiBjb2Fyc2UiKSk7CisgICAgRVhQRUNUX0ZBTFNF
KGV2YWx1YXRlTWVkaWFRdWVyeSh3ZWJWaWV3LCBAImFueS1wb2ludGVyOiBmaW5lIikpOworfQor
CitURVNUKGlPU01vdXNlU3VwcG9ydCwgTW91c2VMYXRlckNvbm5lY3RlZCkKK3sKKyAgICBbW05T
Q2xhc3NGcm9tU3RyaW5nKEAiV0tNb3VzZURldmljZU9ic2VydmVyIikgc2hhcmVkSW5zdGFuY2Vd
IF9zZXRIYXNNb3VzZURldmljZUZvclRlc3Rpbmc6Tk9dOworCisgICAgYXV0byB3ZWJWaWV3ID0g
YWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6TlNNYWtlUmVjdCgw
LCAwLCA4MDAsIDYwMCldKTsKKworICAgIFt3ZWJWaWV3IHN5bmNocm9ub3VzbHlMb2FkSFRNTFN0
cmluZzpAIiJdOworCisgICAgW1tOU0NsYXNzRnJvbVN0cmluZyhAIldLTW91c2VEZXZpY2VPYnNl
cnZlciIpIHNoYXJlZEluc3RhbmNlXSBfc2V0SGFzTW91c2VEZXZpY2VGb3JUZXN0aW5nOllFU107
CisKKyAgICBFWFBFQ1RfRkFMU0UoZXZhbHVhdGVNZWRpYVF1ZXJ5KHdlYlZpZXcsIEAiaG92ZXIi
KSk7CisgICAgRVhQRUNUX1RSVUUoZXZhbHVhdGVNZWRpYVF1ZXJ5KHdlYlZpZXcsIEAiaG92ZXI6
IG5vbmUiKSk7CisgICAgRVhQRUNUX0ZBTFNFKGV2YWx1YXRlTWVkaWFRdWVyeSh3ZWJWaWV3LCBA
ImhvdmVyOiBob3ZlciIpKTsKKworICAgIEVYUEVDVF9UUlVFKGV2YWx1YXRlTWVkaWFRdWVyeSh3
ZWJWaWV3LCBAImFueS1ob3ZlciIpKTsKKyAgICBFWFBFQ1RfRkFMU0UoZXZhbHVhdGVNZWRpYVF1
ZXJ5KHdlYlZpZXcsIEAiYW55LWhvdmVyOiBub25lIikpOworICAgIEVYUEVDVF9UUlVFKGV2YWx1
YXRlTWVkaWFRdWVyeSh3ZWJWaWV3LCBAImFueS1ob3ZlcjogaG92ZXIiKSk7CisKKyAgICBFWFBF
Q1RfVFJVRShldmFsdWF0ZU1lZGlhUXVlcnkod2ViVmlldywgQCJwb2ludGVyIikpOworICAgIEVY
UEVDVF9GQUxTRShldmFsdWF0ZU1lZGlhUXVlcnkod2ViVmlldywgQCJwb2ludGVyOiBub25lIikp
OworICAgIEVYUEVDVF9UUlVFKGV2YWx1YXRlTWVkaWFRdWVyeSh3ZWJWaWV3LCBAInBvaW50ZXI6
IGNvYXJzZSIpKTsKKyAgICBFWFBFQ1RfRkFMU0UoZXZhbHVhdGVNZWRpYVF1ZXJ5KHdlYlZpZXcs
IEAicG9pbnRlcjogZmluZSIpKTsKKworICAgIEVYUEVDVF9UUlVFKGV2YWx1YXRlTWVkaWFRdWVy
eSh3ZWJWaWV3LCBAImFueS1wb2ludGVyIikpOworICAgIEVYUEVDVF9GQUxTRShldmFsdWF0ZU1l
ZGlhUXVlcnkod2ViVmlldywgQCJhbnktcG9pbnRlcjogbm9uZSIpKTsKKyAgICBFWFBFQ1RfVFJV
RShldmFsdWF0ZU1lZGlhUXVlcnkod2ViVmlldywgQCJhbnktcG9pbnRlcjogY29hcnNlIikpOwor
ICAgIEVYUEVDVF9UUlVFKGV2YWx1YXRlTWVkaWFRdWVyeSh3ZWJWaWV3LCBAImFueS1wb2ludGVy
OiBmaW5lIikpOworfQorCisjZW5kaWYgLy8gUExBVEZPUk0oSU9TKQorCisjaWYgUExBVEZPUk0o
TUFDQ0FUQUxZU1QpCisKK1RFU1QoaU9TTW91c2VTdXBwb3J0LCBNb3VzZUFsd2F5c0Nvbm5lY3Rl
ZCkKK3sKKyAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10g
aW5pdFdpdGhGcmFtZTpOU01ha2VSZWN0KDAsIDAsIDgwMCwgNjAwKV0pOworCisgICAgW3dlYlZp
ZXcgc3luY2hyb25vdXNseUxvYWRIVE1MU3RyaW5nOkAiIl07CisKKyAgICBFWFBFQ1RfRkFMU0Uo
ZXZhbHVhdGVNZWRpYVF1ZXJ5KHdlYlZpZXcsIEAiaG92ZXIiKSk7CisgICAgRVhQRUNUX1RSVUUo
ZXZhbHVhdGVNZWRpYVF1ZXJ5KHdlYlZpZXcsIEAiaG92ZXI6IG5vbmUiKSk7CisgICAgRVhQRUNU
X0ZBTFNFKGV2YWx1YXRlTWVkaWFRdWVyeSh3ZWJWaWV3LCBAImhvdmVyOiBob3ZlciIpKTsKKwor
ICAgIEVYUEVDVF9UUlVFKGV2YWx1YXRlTWVkaWFRdWVyeSh3ZWJWaWV3LCBAImFueS1ob3ZlciIp
KTsKKyAgICBFWFBFQ1RfRkFMU0UoZXZhbHVhdGVNZWRpYVF1ZXJ5KHdlYlZpZXcsIEAiYW55LWhv
dmVyOiBub25lIikpOworICAgIEVYUEVDVF9UUlVFKGV2YWx1YXRlTWVkaWFRdWVyeSh3ZWJWaWV3
LCBAImFueS1ob3ZlcjogaG92ZXIiKSk7CisKKyAgICBFWFBFQ1RfVFJVRShldmFsdWF0ZU1lZGlh
UXVlcnkod2ViVmlldywgQCJwb2ludGVyIikpOworICAgIEVYUEVDVF9GQUxTRShldmFsdWF0ZU1l
ZGlhUXVlcnkod2ViVmlldywgQCJwb2ludGVyOiBub25lIikpOworICAgIEVYUEVDVF9UUlVFKGV2
YWx1YXRlTWVkaWFRdWVyeSh3ZWJWaWV3LCBAInBvaW50ZXI6IGNvYXJzZSIpKTsKKyAgICBFWFBF
Q1RfRkFMU0UoZXZhbHVhdGVNZWRpYVF1ZXJ5KHdlYlZpZXcsIEAicG9pbnRlcjogZmluZSIpKTsK
KworICAgIEVYUEVDVF9UUlVFKGV2YWx1YXRlTWVkaWFRdWVyeSh3ZWJWaWV3LCBAImFueS1wb2lu
dGVyIikpOworICAgIEVYUEVDVF9GQUxTRShldmFsdWF0ZU1lZGlhUXVlcnkod2ViVmlldywgQCJh
bnktcG9pbnRlcjogbm9uZSIpKTsKKyAgICBFWFBFQ1RfVFJVRShldmFsdWF0ZU1lZGlhUXVlcnko
d2ViVmlldywgQCJhbnktcG9pbnRlcjogY29hcnNlIikpOworICAgIEVYUEVDVF9UUlVFKGV2YWx1
YXRlTWVkaWFRdWVyeSh3ZWJWaWV3LCBAImFueS1wb2ludGVyOiBmaW5lIikpOworfQorCisjZW5k
aWYgLy8gUExBVEZPUk0oTUFDQ0FUQUxZU1QpCisKICNlbmRpZiAvLyBQTEFURk9STShJT1MpIHx8
IFBMQVRGT1JNKE1BQ0NBVEFMWVNUKQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>410251</attachid>
            <date>2020-10-01 11:47:09 -0700</date>
            <delta_ts>2020-10-01 12:27:25 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-209292-20201001114709.patch</filename>
            <type>text/plain</type>
            <size>53140</size>
            <attacher name="Devin Rousso">hi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCBiNDFjZjdmNjQ1ZmZkYzYzMzQ2YmY1MDM5ZDBkZDliNzEwYTkwNGNlLi44
ZTA3OWMxZDU2N2VkNTFjYzZlZTc4NjJhMzI1NWU0YzQ5YzgyMWIxIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMjkgQEAKKzIwMjAtMDktMzAgIERldmluIFJvdXNzbyAgPGRyb3Vzc29AYXBwbGUuY29t
PgorCisgICAgICAgIENTUyBob3ZlciBhbmQgInBvaW50ZXI6IGZpbmUiIG1lZGlhIHF1ZXJpZXMg
ZG8gbm90IGV2YWx1YXRlIHRvIHRydWUgd2l0aCBpT1MgMTMuNCBtb3VzZSBzdXBwb3J0CisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDkyOTIKKyAgICAg
ICAgPHJkYXI6Ly9wcm9ibGVtLzYwNjYzMTI0PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIE9uIGlPUywgdGhlIHByaW1hcnkgcG9pbnRlciB3aWxsIGFs
d2F5cyBiZSB0b3VjaCBpbnB1dCwgc28gdGhlIGBob3ZlcmAvYHBvaW50ZXJgIG1lZGlhIHF1ZXJ5
CisgICAgICAgIHNob3VsZCBuZXZlciBjaGFuZ2UuIElmIGEgbW91c2UgaXMgY29ubmVjdGVkLCBo
b3dldmVyLCBgYW55LWhvdmVyYC9gYW55LXBvaW50ZXJgIHNob3VsZAorICAgICAgICBjaGFuZ2Ug
YXMgbm93IHRoZXJlIGlzIGF0IGxlYXN0IG9uZSBkZXZpY2UgdGhhdCBzdXBwb3J0cyBgaG92ZXJg
L2BmaW5lYC4gTm90ZSB0aGF0IGluIHRoZQorICAgICAgICBjYXNlIG9mIGBhbnktcG9pbnRlcmAg
dGhpcyBtZWFucyB0aGF0IGJvdGggYGNvYXJzZWAgYW5kIGBmaW5lYCB3aWxsIGFwcGx5LiBDYXRh
bHlzdCBhc3N1bWVzCisgICAgICAgIHRoYXQgdGhlcmUgaXMgYWx3YXlzIGEgbW91c2UgY29ubmVj
dGVkLgorCisgICAgICAgIFNwZWM6IGh0dHBzOi8vZHJhZnRzLmNzc3dnLm9yZy9tZWRpYXF1ZXJp
ZXMtNC8jYW55LWlucHV0CisKKyAgICAgICAgKiBjc3MvTWVkaWFRdWVyeUV2YWx1YXRvci5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpoYXNNb3VzZURldmljZSk6IEFkZGVkLgorICAgICAgICAoV2Vi
Q29yZTo6YW55SG92ZXJFdmFsdWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjphbnlQb2ludGVyRXZh
bHVhdGUpOgorCisgICAgICAgICogcGFnZS9DaHJvbWVDbGllbnQuaDoKKyAgICAgICAgKiBsb2Fk
ZXIvRW1wdHlDbGllbnRzLmg6CisgICAgICAgIChXZWJDb3JlOjpFbXB0eUNocm9tZUNsaWVudDo6
aGFzTW91c2VEZXZpY2UpOiBBZGRlZC4KKyAgICAgICAgUHJvdmlkZSBhIHdheSBmb3IgV2ViQ29y
ZSB0byBnZXQgdGhlIGN1cnJlbnQgc3RhdGUgb2Ygd2hldGhlciB0aGVyZSBhcmUgYW55IG1vdXNl
IGRldmljZXMuCisKIDIwMjAtMDktMzAgIEpvaG4gV2lsYW5kZXIgIDx3aWxhbmRlckBhcHBsZS5j
b20+CiAKICAgICAgICAgU3RvcmFnZSBBY2Nlc3MgQVBJOiBFbmFibGUgcGVyLXBhZ2Ugc3RvcmFn
ZSBhY2Nlc3Mgc2NvcGUgYW5kIGFsaWduIHRlc3QgY2FzZXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggMDFkNTRjMTAx
NmE4MjFmZmQyMzk2OWZmM2Q5MjFhM2I2OWVjZmRiNS4uODBlODliNWE0Y2EzYmRiOTZiNjZjMTBl
Y2YxYjgyNWE4YWIxNGVhNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysr
IGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSw3MiBAQAorMjAyMC0wOS0zMCAg
RGV2aW4gUm91c3NvICA8ZHJvdXNzb0BhcHBsZS5jb20+CisKKyAgICAgICAgQ1NTIGhvdmVyIGFu
ZCAicG9pbnRlcjogZmluZSIgbWVkaWEgcXVlcmllcyBkbyBub3QgZXZhbHVhdGUgdG8gdHJ1ZSB3
aXRoIGlPUyAxMy40IG1vdXNlIHN1cHBvcnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTIwOTI5MgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNjA2NjMx
MjQ+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgT24g
aU9TLCB0aGUgcHJpbWFyeSBwb2ludGVyIHdpbGwgYWx3YXlzIGJlIHRvdWNoIGlucHV0LCBzbyB0
aGUgYGhvdmVyYC9gcG9pbnRlcmAgbWVkaWEgcXVlcnkKKyAgICAgICAgc2hvdWxkIG5ldmVyIGNo
YW5nZS4gSWYgYSBtb3VzZSBpcyBjb25uZWN0ZWQsIGhvd2V2ZXIsIGBhbnktaG92ZXJgL2Bhbnkt
cG9pbnRlcmAgc2hvdWxkCisgICAgICAgIGNoYW5nZSBhcyBub3cgdGhlcmUgaXMgYXQgbGVhc3Qg
b25lIGRldmljZSB0aGF0IHN1cHBvcnRzIGBob3ZlcmAvYGZpbmVgLiBOb3RlIHRoYXQgaW4gdGhl
CisgICAgICAgIGNhc2Ugb2YgYGFueS1wb2ludGVyYCB0aGlzIG1lYW5zIHRoYXQgYm90aCBgY29h
cnNlYCBhbmQgYGZpbmVgIHdpbGwgYXBwbHkuIENhdGFseXN0IGFzc3VtZXMKKyAgICAgICAgdGhh
dCB0aGVyZSBpcyBhbHdheXMgYSBtb3VzZSBjb25uZWN0ZWQuCisKKyAgICAgICAgU3BlYzogaHR0
cHM6Ly9kcmFmdHMuY3Nzd2cub3JnL21lZGlhcXVlcmllcy00LyNhbnktaW5wdXQKKworICAgICAg
ICAqIFVJUHJvY2Vzcy9pb3MvV0tNb3VzZURldmljZU9ic2VydmVyLmg6IEFkZGVkLgorICAgICAg
ICAqIFVJUHJvY2Vzcy9pb3MvV0tNb3VzZURldmljZU9ic2VydmVyLm1tOiBBZGRlZC4KKyAgICAg
ICAgKCtbV0tNb3VzZURldmljZU9ic2VydmVyIHNoYXJlZEluc3RhbmNlXSk6CisgICAgICAgICgt
W1dLTW91c2VEZXZpY2VPYnNlcnZlciBkZWFsbG9jXSk6CisgICAgICAgICgtW1dLTW91c2VEZXZp
Y2VPYnNlcnZlciBhZGRXZWJQcm9jZXNzUHJveHk6XSk6CisgICAgICAgICgtW1dLTW91c2VEZXZp
Y2VPYnNlcnZlciByZW1vdmVXZWJQcm9jZXNzUHJveHk6XSk6CisgICAgICAgICgtW1dLTW91c2VE
ZXZpY2VPYnNlcnZlciBzdGFydF0pOgorICAgICAgICAoLVtXS01vdXNlRGV2aWNlT2JzZXJ2ZXIg
c3RvcF0pOgorICAgICAgICAoLVtXS01vdXNlRGV2aWNlT2JzZXJ2ZXIgbW91c2VQb2ludGVyRGV2
aWNlc0RpZENoYW5nZTpdKToKKyAgICAgICAgKC1bV0tNb3VzZURldmljZU9ic2VydmVyIF9zZXRI
YXNNb3VzZURldmljZUZvclRlc3Rpbmc6XSk6CisgICAgICAgIFVzZSBgQmFja0JvYXJkU2Vydmlj
ZXNgIHRvIGxpc3RlbiBmb3IgbW91c2UgZGV2aWNlcyBjaGFuZ2VzIGFuZCBub3RpZnkgYWxsIFdl
YlByb2Nlc3MuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5Lmg6CisgICAg
ICAgICogVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6Oldl
YlByb2Nlc3NQcm94eTo6Y29ubmVjdGlvbldpbGxPcGVuKToKKyAgICAgICAgKFdlYktpdDo6V2Vi
UHJvY2Vzc1Byb3h5OjpwbGF0Zm9ybUNvbm5lY3Rpb25XaWxsT3Blbik6IEFkZGVkLgorICAgICAg
ICAoV2ViS2l0OjpXZWJQcm9jZXNzUHJveHk6OnByb2Nlc3NXaWxsU2h1dERvd24pOgorICAgICAg
ICAoV2ViS2l0OjpXZWJQcm9jZXNzUHJveHk6OnBsYXRmb3JtUHJvY2Vzc1dpbGxTaHV0RG93bik6
IEFkZGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvV2ViUHJvY2Vzc1Byb3h5SU9TLm1tOgor
ICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUHJveHk6OnBsYXRmb3JtQ29ubmVjdGlvbldpbGxP
cGVuKTogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQcm94eTo6cGxhdGZvcm1Q
cm9jZXNzV2lsbFNodXREb3duKTogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQ
cm94eTo6c2V0SGFzTW91c2VEZXZpY2UpOiBBZGRlZC4KKyAgICAgICAgQXR0YWNoIHRvIHRoZSBz
aGFyZWQgYFdLTW91c2VEZXZpY2VPYnNlcnZlcmAgd2hlbiBjcmVhdGluZyB0aGUgV2ViUHJvY2Vz
cyBzbyB0aGF0IHRoZSBzaGFyZWQKKyAgICAgICAgYFdLTW91c2VEZXZpY2VPYnNlcnZlcmAga25v
d3MgdG8gbm90aWZ5IHRoYXQgaW5zdGFuY2Ugd2hlbiBtb3VzZSBkZXZpY2VzIGNoYW5nZS4KKwor
ICAgICAgICAqIFNoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmg6CisgICAgICAg
ICogU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwOgorICAgICAgICAoV2Vi
S2l0OjpXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzOjplbmNvZGUgY29uc3QpOgorICAgICAg
ICAoV2ViS2l0OjpXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzOjpkZWNvZGUpOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9Db2NvYS9XZWJQcm9jZXNzUG9vbENvY29hLm1tOgorICAgICAgICAoV2Vi
S2l0OjpXZWJQcm9jZXNzUG9vbDo6cGxhdGZvcm1Jbml0aWFsaXplV2ViUHJvY2Vzcyk6CisgICAg
ICAgIFVzZSB0aGUgY3VycmVudCBzdGF0ZSBvZiB0aGUgc2hhcmVkIGBXS01vdXNlRGV2aWNlT2Jz
ZXJ2ZXJgIHdoZW4gY3JlYXRpbmcgV2ViUHJvY2VzcyBpbnN0ZWFkCisgICAgICAgIG9mIHNlbmRp
bmcgYSBgU2V0SGFzTW91c2VEZXZpY2VgIG1lc3NhZ2UgaW1tZWRpYXRlbHkgYWZ0ZXIgdGhlIFdl
YlByb2Nlc3MgaXMgY3JlYXRlZC4KKworICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUHJvY2Vzcy5t
ZXNzYWdlcy5pbjoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlByb2Nlc3MuaDoKKyAgICAgICAg
KFdlYktpdDo6V2ViUHJvY2Vzczo6aGFzTW91c2VEZXZpY2UgY29uc3QpOiBBZGRlZC4KKyAgICAg
ICAgKiBXZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9j
ZXNzOjppbml0aWFsaXplV2ViUHJvY2Vzcyk6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6
OnNldEhhc01vdXNlRGV2aWNlKTogQWRkZWQuCisgICAgICAgIFVwZGF0ZSBzdHlsZSAoaW5jbHVk
aW5nIGBhbnktaG92ZXJgIGFuZCBgYW55LXBvaW50ZXJgKSB3aGVuZXZlciBtb3VzZSBkZXZpY2Vz
IGNoYW5nZS4KKworICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21l
Q2xpZW50Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVD
bGllbnQuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJDaHJvbWVDbGllbnQ6Omhhc01vdXNlRGV2
aWNlKTogQWRkZWQuCisgICAgICAgIFByb3ZpZGUgYSB3YXkgZm9yIFdlYkNvcmUgdG8gZ2V0IHRo
ZSBjdXJyZW50IHN0YXRlIG9mIHdoZXRoZXIgdGhlcmUgYXJlIGFueSBtb3VzZSBkZXZpY2VzLgor
CisgICAgICAgICogQ29uZmlndXJhdGlvbnMvV2ViS2l0LnhjY29uZmlnOgorICAgICAgICAqIFBs
YXRmb3JtL3NwaS9pb3MvQmFja0JvYXJkU2VydmljZXNTUEkuaDoKKyAgICAgICAgKiBQbGF0Zm9y
bS9zcGkvaW9zL0Jhc2VCb2FyZFNQSS5oOiBBZGRlZC4KKyAgICAgICAgKiBTb3VyY2VzQ29jb2Eu
dHh0OgorICAgICAgICAqIFdlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorCiAyMDIw
LTA5LTMwICBQZW5nIExpdSAgPHBlbmcubGl1NkBhcHBsZS5jb20+CiAKICAgICAgICAgW01lZGlh
IGluIEdQVSBQcm9jZXNzXSBFbmFibGUgSVBDIG1lc3NhZ2UgaGFuZGxlcnMgb2YgUmVtb3RlTWVk
aWFTZXNzaW9uSGVscGVyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L2lvcy9DaGFu
Z2VMb2cgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L2lvcy9DaGFuZ2VMb2cKaW5kZXggMTJlNjU1YjFl
Y2RkNWQ0NzBmM2VhNDBmYWM3ODM1ZmUxZjU3ZmJmYy4uZjg3YzA4NmIzNjE2OGE0YWI2NjhjOWI3
MWQ5ODU1MjUxZTNkNzE4OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9pb3MvQ2hh
bmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvaW9zL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDE1IEBACisyMDIwLTA5LTMwICBEZXZpbiBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNvbT4KKwor
ICAgICAgICBDU1MgaG92ZXIgYW5kICJwb2ludGVyOiBmaW5lIiBtZWRpYSBxdWVyaWVzIGRvIG5v
dCBldmFsdWF0ZSB0byB0cnVlIHdpdGggaU9TIDEzLjQgbW91c2Ugc3VwcG9ydAorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA5MjkyCisgICAgICAgIDxy
ZGFyOi8vcHJvYmxlbS82MDY2MzEyND4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudElPUy5oOgor
ICAgICAgICAoV2ViQ2hyb21lQ2xpZW50SU9TOjpoYXNNb3VzZURldmljZSk6IEFkZGVkLgorICAg
ICAgICBNb3VzZSBkZXZpY2VzIGFyZSBub3Qgc3VwcG9ydGVkIGZvciBXSzEuCisKIDIwMjAtMDkt
MjAgIERhcmluIEFkbGVyICA8ZGFyaW5AYXBwbGUuY29tPgogCiAgICAgICAgIE5leHQgc3RlcCB0
b3dhcmRzIGVsaW1pbmF0aW5nIGRlcHJlY2F0ZWQgbGVnYWN5IHBvc2l0aW9ucwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvY3NzL01lZGlhUXVlcnlFdmFsdWF0b3IuY3BwIGIvU291cmNlL1dl
YkNvcmUvY3NzL01lZGlhUXVlcnlFdmFsdWF0b3IuY3BwCmluZGV4IDgxMThiN2FiM2M1MGIzY2Vk
ODEyMGZjMTA2ZGNlOWM3MzE0MWFmZTQuLjdjNzUzMWRmODIyZGZhZjJlM2ViNzM4YjkxZmY1ZmQ5
NzRhZjRiMjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5RXZhbHVh
dG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvTWVkaWFRdWVyeUV2YWx1YXRvci5jcHAK
QEAgLTMzLDYgKzMzLDggQEAKICNpbmNsdWRlICJDU1NQcmltaXRpdmVWYWx1ZS5oIgogI2luY2x1
ZGUgIkNTU1RvTGVuZ3RoQ29udmVyc2lvbkRhdGEuaCIKICNpbmNsdWRlICJDU1NWYWx1ZUtleXdv
cmRzLmgiCisjaW5jbHVkZSAiQ2hyb21lLmgiCisjaW5jbHVkZSAiQ2hyb21lQ2xpZW50LmgiCiAj
aW5jbHVkZSAiRnJhbWUuaCIKICNpbmNsdWRlICJGcmFtZVZpZXcuaCIKICNpbmNsdWRlICJMb2dn
aW5nLmgiCkBAIC03MTIsNiArNzE0LDI3IEBAIHN0YXRpYyBib29sIHZpZGVvUGxheWFibGVJbmxp
bmVFdmFsdWF0ZShDU1NWYWx1ZSosIGNvbnN0IENTU1RvTGVuZ3RoQ29udmVyc2lvbkRhCiAgICAg
cmV0dXJuIGZyYW1lLnNldHRpbmdzKCkuYWxsb3dzSW5saW5lTWVkaWFQbGF5YmFjaygpOwogfQog
CitzdGF0aWMgYm9vbCBoYXNNb3VzZURldmljZShGcmFtZSYgZnJhbWUpCit7CisjaWYgUExBVEZP
Uk0oTUFDQ0FUQUxZU1QpCisgICAgVU5VU0VEX1BBUkFNKGZyYW1lKTsKKyAgICByZXR1cm4gdHJ1
ZTsKKyNlbHNlIC8vIFBMQVRGT1JNKE1BQ0NBVEFMWVNUKQorI2lmIFBMQVRGT1JNKElPUykKKyAg
ICBhdXRvKiBwYWdlID0gZnJhbWUucGFnZSgpOworICAgIGlmIChwYWdlICYmIHBhZ2UtPmNocm9t
ZSgpLmNsaWVudCgpLmhhc01vdXNlRGV2aWNlKCkpCisgICAgICAgIHJldHVybiB0cnVlOworI2Vs
c2UgLy8gUExBVEZPUk0oSU9TKQorICAgIFVOVVNFRF9QQVJBTShmcmFtZSk7CisjZW5kaWYgLy8g
UExBVEZPUk0oSU9TKQorI2lmIEVOQUJMRShUT1VDSF9FVkVOVFMpCisgICAgaWYgKHNjcmVlbkhh
c1RvdWNoRGV2aWNlKCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyNlbmRpZiAvLyBFTkFCTEUo
VE9VQ0hfRVZFTlRTKQorICAgIHJldHVybiB0cnVlOworI2VuZGlmIC8vIFBMQVRGT1JNKE1BQ0NB
VEFMWVNUKQorfQorCiBzdGF0aWMgYm9vbCBob3ZlckV2YWx1YXRlKENTU1ZhbHVlKiB2YWx1ZSwg
Y29uc3QgQ1NTVG9MZW5ndGhDb252ZXJzaW9uRGF0YSYsIEZyYW1lJiwgTWVkaWFGZWF0dXJlUHJl
Zml4KQogewogICAgIGlmICghaXM8Q1NTUHJpbWl0aXZlVmFsdWU+KHZhbHVlKSkgewpAQCAtNzMw
LDIyICs3NTMsMTMgQEAgc3RhdGljIGJvb2wgaG92ZXJFdmFsdWF0ZShDU1NWYWx1ZSogdmFsdWUs
IGNvbnN0IENTU1RvTGVuZ3RoQ29udmVyc2lvbkRhdGEmLCBGcmEKICAgICByZXR1cm4ga2V5d29y
ZCA9PSBDU1NWYWx1ZUhvdmVyOwogfQogCi1zdGF0aWMgYm9vbCBhbnlIb3ZlckV2YWx1YXRlKENT
U1ZhbHVlKiB2YWx1ZSwgY29uc3QgQ1NTVG9MZW5ndGhDb252ZXJzaW9uRGF0YSYsIEZyYW1lJiwg
TWVkaWFGZWF0dXJlUHJlZml4KQorc3RhdGljIGJvb2wgYW55SG92ZXJFdmFsdWF0ZShDU1NWYWx1
ZSogdmFsdWUsIGNvbnN0IENTU1RvTGVuZ3RoQ29udmVyc2lvbkRhdGEmLCBGcmFtZSYgZnJhbWUs
IE1lZGlhRmVhdHVyZVByZWZpeCkKIHsKLSAgICBpZiAoIWlzPENTU1ByaW1pdGl2ZVZhbHVlPih2
YWx1ZSkpIHsKLSNpZiBFTkFCTEUoVE9VQ0hfRVZFTlRTKQotICAgICAgICByZXR1cm4gIXNjcmVl
bkhhc1RvdWNoRGV2aWNlKCk7Ci0jZWxzZQotICAgICAgICByZXR1cm4gdHJ1ZTsKLSNlbmRpZgot
ICAgIH0KKyAgICBpZiAoIWlzPENTU1ByaW1pdGl2ZVZhbHVlPih2YWx1ZSkpCisgICAgICAgIHJl
dHVybiBoYXNNb3VzZURldmljZShmcmFtZSk7CiAKICAgICBhdXRvIGtleXdvcmQgPSBkb3duY2Fz
dDxDU1NQcmltaXRpdmVWYWx1ZT4oKnZhbHVlKS52YWx1ZUlEKCk7Ci0jaWYgRU5BQkxFKFRPVUNI
X0VWRU5UUykKLSAgICBpZiAoc2NyZWVuSGFzVG91Y2hEZXZpY2UoKSkKLSAgICAgICAgcmV0dXJu
IGtleXdvcmQgPT0gQ1NTVmFsdWVOb25lOwotI2VuZGlmCi0gICAgcmV0dXJuIGtleXdvcmQgPT0g
Q1NTVmFsdWVIb3ZlcjsKKyAgICByZXR1cm4gaGFzTW91c2VEZXZpY2UoZnJhbWUpID8gKGtleXdv
cmQgPT0gQ1NTVmFsdWVIb3ZlcikgOiAoa2V5d29yZCA9PSBDU1NWYWx1ZU5vbmUpOwogfQogCiBz
dGF0aWMgYm9vbCBwb2ludGVyRXZhbHVhdGUoQ1NTVmFsdWUqIHZhbHVlLCBjb25zdCBDU1NUb0xl
bmd0aENvbnZlcnNpb25EYXRhJiwgRnJhbWUmIGZyYW1lLCBNZWRpYUZlYXR1cmVQcmVmaXgpCkBA
IC03NjUsMTcgKzc3OSwyMiBAQCBzdGF0aWMgYm9vbCBwb2ludGVyRXZhbHVhdGUoQ1NTVmFsdWUq
IHZhbHVlLCBjb25zdCBDU1NUb0xlbmd0aENvbnZlcnNpb25EYXRhJiwgRgogICAgIHJldHVybiBr
ZXl3b3JkID09IENTU1ZhbHVlRmluZTsKIH0KIAotc3RhdGljIGJvb2wgYW55UG9pbnRlckV2YWx1
YXRlKENTU1ZhbHVlKiB2YWx1ZSwgY29uc3QgQ1NTVG9MZW5ndGhDb252ZXJzaW9uRGF0YSYsIEZy
YW1lJiwgTWVkaWFGZWF0dXJlUHJlZml4KQorc3RhdGljIGJvb2wgYW55UG9pbnRlckV2YWx1YXRl
KENTU1ZhbHVlKiB2YWx1ZSwgY29uc3QgQ1NTVG9MZW5ndGhDb252ZXJzaW9uRGF0YSYsIEZyYW1l
JiBmcmFtZSwgTWVkaWFGZWF0dXJlUHJlZml4KQogewogICAgIGlmICghaXM8Q1NTUHJpbWl0aXZl
VmFsdWU+KHZhbHVlKSkKICAgICAgICAgcmV0dXJuIHRydWU7CiAKICAgICBhdXRvIGtleXdvcmQg
PSBkb3duY2FzdDxDU1NQcmltaXRpdmVWYWx1ZT4oKnZhbHVlKS52YWx1ZUlEKCk7CisKKyAgICBp
ZiAoa2V5d29yZCA9PSBDU1NWYWx1ZUZpbmUpCisgICAgICAgIHJldHVybiBoYXNNb3VzZURldmlj
ZShmcmFtZSk7CisKICNpZiBFTkFCTEUoVE9VQ0hfRVZFTlRTKQotICAgIGlmIChzY3JlZW5IYXNU
b3VjaERldmljZSgpKQotICAgICAgICByZXR1cm4ga2V5d29yZCA9PSBDU1NWYWx1ZUNvYXJzZTsK
LSNlbmRpZgotICAgIHJldHVybiBrZXl3b3JkID09IENTU1ZhbHVlRmluZTsKKyAgICBpZiAoa2V5
d29yZCA9PSBDU1NWYWx1ZUNvYXJzZSkKKyAgICAgICAgcmV0dXJuIHNjcmVlbkhhc1RvdWNoRGV2
aWNlKCk7CisjZW5kaWYgLy8gRU5BQkxFKFRPVUNIX0VWRU5UUykKKworICAgIHJldHVybiBmYWxz
ZTsKIH0KIAogc3RhdGljIGJvb2wgcHJlZmVyc0RhcmtJbnRlcmZhY2VFdmFsdWF0ZShDU1NWYWx1
ZSogdmFsdWUsIGNvbnN0IENTU1RvTGVuZ3RoQ29udmVyc2lvbkRhdGEmLCBGcmFtZSYgZnJhbWUs
IE1lZGlhRmVhdHVyZVByZWZpeCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9F
bXB0eUNsaWVudHMuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuaAppbmRl
eCAzZTlkZTdkMjY2YTlkZWE2ZTFhMDM0NDZhNTllZjdmNDAwNjA5OTRlLi41Njk0OGEwY2UzM2Fi
YWRlZDhmYWI3OTRhMTI0YTU3MGExMjdkNTU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvRW1wdHlDbGllbnRzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xp
ZW50cy5oCkBAIC0xMDIsNiArMTAyLDEwIEBAIGNsYXNzIEVtcHR5Q2hyb21lQ2xpZW50IDogcHVi
bGljIENocm9tZUNsaWVudCB7CiAKICAgICBLZXlib2FyZFVJTW9kZSBrZXlib2FyZFVJTW9kZSgp
IGZpbmFsIHsgcmV0dXJuIEtleWJvYXJkQWNjZXNzRGVmYXVsdDsgfQogCisjaWYgUExBVEZPUk0o
SU9TKQorICAgIGJvb2wgaGFzTW91c2VEZXZpY2UoKSBmaW5hbCB7IHJldHVybiBmYWxzZTsgfQor
I2VuZGlmCisKICAgICB2b2lkIGludmFsaWRhdGVSb290Vmlldyhjb25zdCBJbnRSZWN0JikgZmlu
YWwgeyB9CiAgICAgdm9pZCBpbnZhbGlkYXRlQ29udGVudHNBbmRSb290Vmlldyhjb25zdCBJbnRS
ZWN0Jikgb3ZlcnJpZGUgeyB9CiAgICAgdm9pZCBpbnZhbGlkYXRlQ29udGVudHNGb3JTbG93U2Ny
b2xsKGNvbnN0IEludFJlY3QmKSBmaW5hbCB7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvQ2hyb21lQ2xpZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVudC5o
CmluZGV4IGZlNTlkYjg0YWVhY2E1Zjk5MTIxYjc5MGQwMDgwOTIwNjJmZjRjYzEuLmY4OGUwZjUw
NzRlNzc4Y2I4YWU5MDI1YTNmMjVkZGEzN2U5ZGYwNTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWVD
bGllbnQuaApAQCAtMTc4LDYgKzE3OCwxMCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHNl
dFN0YXR1c2JhclRleHQoY29uc3QgU3RyaW5nJikgPSAwOwogICAgIHZpcnR1YWwgS2V5Ym9hcmRV
SU1vZGUga2V5Ym9hcmRVSU1vZGUoKSA9IDA7CiAKKyNpZiBQTEFURk9STShJT1MpCisgICAgdmly
dHVhbCBib29sIGhhc01vdXNlRGV2aWNlKCkgPSAwOworI2VuZGlmCisKICAgICB2aXJ0dWFsIGJv
b2wgc3VwcG9ydHNJbW1lZGlhdGVJbnZhbGlkYXRpb24oKSB7IHJldHVybiBmYWxzZTsgfQogICAg
IHZpcnR1YWwgdm9pZCBpbnZhbGlkYXRlUm9vdFZpZXcoY29uc3QgSW50UmVjdCYpID0gMDsKICAg
ICB2aXJ0dWFsIHZvaWQgaW52YWxpZGF0ZUNvbnRlbnRzQW5kUm9vdFZpZXcoY29uc3QgSW50UmVj
dCYpID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ29uZmlndXJhdGlvbnMvV2ViS2l0
LnhjY29uZmlnIGIvU291cmNlL1dlYktpdC9Db25maWd1cmF0aW9ucy9XZWJLaXQueGNjb25maWcK
aW5kZXggNWY3NWVjYmIxNDljNTUxYTQ1MTFhOTA2ZmQ3ZjQzYzE3ZTk4ODkyMS4uY2U3MTg1OWRk
YTkwNTRhZGZjMDQ1NTg0MDdmMTY0ZTM3ZTM2ZmY3YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9Db25maWd1cmF0aW9ucy9XZWJLaXQueGNjb25maWcKKysrIGIvU291cmNlL1dlYktpdC9Db25m
aWd1cmF0aW9ucy9XZWJLaXQueGNjb25maWcKQEAgLTYwLDYgKzYwLDEwIEBAIFdLX0FTU0VSVElP
Tl9TRVJWSUNFU19MREZMQUdTX2FwcGxldHZvcyA9IC1mcmFtZXdvcmsgQXNzZXJ0aW9uU2Vydmlj
ZXM7CiBXS19BU1NFUlRJT05fU0VSVklDRVNfTERGTEFHU19hcHBsZXR2c2ltdWxhdG9yID0gLWZy
YW1ld29yayBBc3NlcnRpb25TZXJ2aWNlczsKIFdLX0FTU0VSVElPTl9TRVJWSUNFU19MREZMQUdT
X21hY2NhdGFseXN0ID0gLWZyYW1ld29yayBBc3NlcnRpb25TZXJ2aWNlczsKIAorV0tfQkFDS0JP
QVJEX1NFUlZJQ0VTX0xERkxBR1MgPSAkKFdLX0JBQ0tCT0FSRF9TRVJWSUNFU19MREZMQUdTXyQo
V0tfUExBVEZPUk1fTkFNRSkpOworV0tfQkFDS0JPQVJEX1NFUlZJQ0VTX0xERkxBR1NfaXBob25l
b3MgPSAtZnJhbWV3b3JrIEJhY2tCb2FyZFNlcnZpY2VzOworV0tfQkFDS0JPQVJEX1NFUlZJQ0VT
X0xERkxBR1NfaXBob25lc2ltdWxhdG9yID0gLWZyYW1ld29yayBCYWNrQm9hcmRTZXJ2aWNlczsK
KwogV0tfUlVOTklOR0JPQVJEX1NFUlZJQ0VTX0xERkxBR1MgPSAkKFdLX1JVTk5JTkdCT0FSRF9T
RVJWSUNFU19MREZMQUdTXyQoV0tfQ09DT0FfVE9VQ0gpKTsKIFdLX1JVTk5JTkdCT0FSRF9TRVJW
SUNFU19MREZMQUdTX2NvY29hdG91Y2ggPSAtZnJhbWV3b3JrIFJ1bm5pbmdCb2FyZFNlcnZpY2Vz
OwogCkBAIC0xMjMsNyArMTI3LDcgQEAgV0tfQVVUSEtJVF9MREZMQUdTX0lPU19TSU5DRV8xMyA9
IC1mcmFtZXdvcmsgQXV0aEtpdDsKIFdLX0FVVEhLSVRfTERGTEFHU19tYWNvc3ggPSAkKFdLX0FV
VEhLSVRfTERGTEFHUyQoV0tfTUFDT1NfMTAxNSkpOwogV0tfQVVUSEtJVF9MREZMQUdTX01BQ09T
X1NJTkNFXzEwMTUgPSAtZnJhbWV3b3JrIEF1dGhLaXQ7CiAKLUZSQU1FV09SS19BTkRfTElCUkFS
WV9MREZMQUdTID0gLWxvYmpjIC1mcmFtZXdvcmsgQ0ZOZXR3b3JrIC1mcmFtZXdvcmsgQ29yZUF1
ZGlvIC1mcmFtZXdvcmsgQ29yZUZvdW5kYXRpb24gLWZyYW1ld29yayBDb3JlR3JhcGhpY3MgLWZy
YW1ld29yayBDb3JlVGV4dCAtZnJhbWV3b3JrIEZvdW5kYXRpb24gLWZyYW1ld29yayBJbWFnZUlP
IC1mcmFtZXdvcmsgSU9LaXQgLWZyYW1ld29yayBJT1N1cmZhY2UgLWZyYW1ld29yayBXZWJLaXRM
ZWdhY3kgLWxuZXR3b3JrICQoV0tfQUNDRVNTSUJJTElUWV9MREZMQUdTKSAkKFdLX0FQUEtJVF9M
REZMQUdTKSAkKFdLX0FTU0VSVElPTl9TRVJWSUNFU19MREZMQUdTKSAkKFdLX1JVTk5JTkdCT0FS
RF9TRVJWSUNFU19MREZMQUdTKSAkKFdLX0FVVEhLSVRfTERGTEFHUykgJChXS19DQVJCT05fTERG
TEFHUykgJChXS19DT1JFX1BSRURJQ1RJT05fTERGTEFHUykgJChXS19DT1JFX1NFUlZJQ0VTX0xE
RkxBR1MpICQoV0tfR1JBUEhJQ1NfU0VSVklDRVNfTERGTEFHUykgJChXS19MSUJTQU5EQk9YX0xE
RkxBR1MpICQoV0tfTElCV0VCUlRDX0xERkxBR1MpICQoV0tfTU9CSUxFX0NPUkVfU0VSVklDRVNf
TERGTEFHUykgJChXS19NT0JJTEVfR0VTVEFMVF9MREZMQUdTKSAkKFdLX1BERktJVF9MREZMQUdT
KSAkKFdLX1NBRkVfQlJPV1NJTkdfTERGTEFHUykgJChXS19TRUNVUklUWV9JTlRFUkZBQ0VfTERG
TEFHUykgJChXS19VSUtJVF9MREZMQUdTKSAkKFdLX1VSTF9GT1JNQVRUSU5HX0xERkxBR1MpICQo
V0tfV0VCSU5TUEVDVE9SVUlfTERGTEFHUyk7CitGUkFNRVdPUktfQU5EX0xJQlJBUllfTERGTEFH
UyA9IC1sb2JqYyAtZnJhbWV3b3JrIENGTmV0d29yayAtZnJhbWV3b3JrIENvcmVBdWRpbyAtZnJh
bWV3b3JrIENvcmVGb3VuZGF0aW9uIC1mcmFtZXdvcmsgQ29yZUdyYXBoaWNzIC1mcmFtZXdvcmsg
Q29yZVRleHQgLWZyYW1ld29yayBGb3VuZGF0aW9uIC1mcmFtZXdvcmsgSW1hZ2VJTyAtZnJhbWV3
b3JrIElPS2l0IC1mcmFtZXdvcmsgSU9TdXJmYWNlIC1mcmFtZXdvcmsgV2ViS2l0TGVnYWN5IC1s
bmV0d29yayAkKFdLX0FDQ0VTU0lCSUxJVFlfTERGTEFHUykgJChXS19BUFBLSVRfTERGTEFHUykg
JChXS19BU1NFUlRJT05fU0VSVklDRVNfTERGTEFHUykgJChXS19CQUNLQk9BUkRfU0VSVklDRVNf
TERGTEFHUykgJChXS19SVU5OSU5HQk9BUkRfU0VSVklDRVNfTERGTEFHUykgJChXS19BVVRIS0lU
X0xERkxBR1MpICQoV0tfQ0FSQk9OX0xERkxBR1MpICQoV0tfQ09SRV9QUkVESUNUSU9OX0xERkxB
R1MpICQoV0tfQ09SRV9TRVJWSUNFU19MREZMQUdTKSAkKFdLX0dSQVBISUNTX1NFUlZJQ0VTX0xE
RkxBR1MpICQoV0tfTElCU0FOREJPWF9MREZMQUdTKSAkKFdLX0xJQldFQlJUQ19MREZMQUdTKSAk
KFdLX01PQklMRV9DT1JFX1NFUlZJQ0VTX0xERkxBR1MpICQoV0tfTU9CSUxFX0dFU1RBTFRfTERG
TEFHUykgJChXS19QREZLSVRfTERGTEFHUykgJChXS19TQUZFX0JST1dTSU5HX0xERkxBR1MpICQo
V0tfU0VDVVJJVFlfSU5URVJGQUNFX0xERkxBR1MpICQoV0tfVUlLSVRfTERGTEFHUykgJChXS19V
UkxfRk9STUFUVElOR19MREZMQUdTKSAkKFdLX1dFQklOU1BFQ1RPUlVJX0xERkxBR1MpOwogCiAv
LyBQcmV2ZW50IEMrKyBzdGFuZGFyZCBsaWJyYXJ5IGJhc2ljX3N0cmluZ3N0cmVhbSwgb3BlcmF0
b3IgbmV3LCBkZWxldGUgYW5kIHRoZWlyIHJlbGF0ZWQgZXhjZXB0aW9uIHR5cGVzIGZyb20gYmVp
bmcgZXhwb3J0ZWQgYXMgd2VhayBzeW1ib2xzLgogVU5FWFBPUlRFRF9TWU1CT0xfTERGTEFHUyA9
IC1XbCwtdW5leHBvcnRlZF9zeW1ib2wgLVdsLF9fWlRJU3Q5YmFkX2FsbG9jIC1XbCwtdW5leHBv
cnRlZF9zeW1ib2wgLVdsLF9fWlRJU3Q5ZXhjZXB0aW9uIC1XbCwtdW5leHBvcnRlZF9zeW1ib2wg
LVdsLF9fWlRTU3Q5YmFkX2FsbG9jIC1XbCwtdW5leHBvcnRlZF9zeW1ib2wgLVdsLF9fWlRTU3Q5
ZXhjZXB0aW9uIC1XbCwtdW5leHBvcnRlZF9zeW1ib2wgLVdsLF9fWmRsUHZTXyAtV2wsLXVuZXhw
b3J0ZWRfc3ltYm9sIC1XbCxfX1pud21QdiAtV2wsLXVuZXhwb3J0ZWRfc3ltYm9sIC1XbCxfX1pu
d20gLVdsLC11bmV4cG9ydGVkX3N5bWJvbCAtV2wsX19aTlN0M19fMThmdW5jdGlvbklGdk43V2Vi
Q29yZTEyUG9saWN5QWN0aW9uRUVFQzJFT1M0XyAtV2wsLXVuZXhwb3J0ZWRfc3ltYm9sIC1XbCxf
X1pOU3QzX18xOGZ1bmN0aW9uSUZ2TjdXZWJDb3JlMTJQb2xpY3lBY3Rpb25FRUVDMUVPUzRfIC1X
bCwtdW5leHBvcnRlZF9zeW1ib2wgLVdsLF9fWk5TdDNfXzE4ZnVuY3Rpb25JRnZON1dlYkNvcmUx
MlBvbGljeUFjdGlvbkVFRWFTRURuIC1XbCwtdW5leHBvcnRlZF9zeW1ib2wgLVdsLF9fWk5LU3Qz
X18xOGZ1bmN0aW9uSUZ2TjdXZWJDb3JlMTJQb2xpY3lBY3Rpb25FRUVjbEVTMl8gLVdsLC11bmV4
cG9ydGVkX3N5bWJvbCAtV2wsX19aTlN0M19fMThmdW5jdGlvbklGdk43V2ViQ29yZTEyUG9saWN5
QWN0aW9uRUVFNHN3YXBFUlM0XyAtV2wsLXVuZXhwb3J0ZWRfc3ltYm9sIC1XbCxfX1pOU3QzX18x
OGZ1bmN0aW9uSUZ2TjdXZWJDb3JlMTJQb2xpY3lBY3Rpb25FRUVDMUVSS1M0XyAtV2wsLXVuZXhw
b3J0ZWRfc3ltYm9sIC1XbCxfX1pOU3QzX18xOGZ1bmN0aW9uSUZ2TjdXZWJDb3JlMTJQb2xpY3lB
Y3Rpb25FRUVDMkVSS1M0XyAtV2wsLXVuZXhwb3J0ZWRfc3ltYm9sIC1XbCxfX1pOU3QzX18xOGZ1
bmN0aW9uSUZ2TjdXZWJDb3JlMTJQb2xpY3lBY3Rpb25FRUVEMUV2IC1XbCwtdW5leHBvcnRlZF9z
eW1ib2wgLVdsLF9fWk5TdDNfXzE4ZnVuY3Rpb25JRnZON1dlYkNvcmUxMlBvbGljeUFjdGlvbkVF
RUQyRXYgLVdsLC11bmV4cG9ydGVkX3N5bWJvbCAtV2wsX19aTlN0M19fMThmdW5jdGlvbklGdk43
V2ViQ29yZTEyUG9saWN5QWN0aW9uRUVFYVNFUktTNF8gLVdsLC11bmV4cG9ydGVkX3N5bWJvbCAt
V2wsX19aVFZOU3QzX18xMTdiYWRfZnVuY3Rpb25fY2FsbEUgLVdsLC11bmV4cG9ydGVkX3N5bWJv
bCAtV2wsX19aVENOU3QzX18xMThiYXNpY19zdHJpbmdzdHJlYW1JY05TXzExY2hhcl90cmFpdHNJ
Y0VFTlNfOWFsbG9jYXRvckljRUVFRTBfTlNfMTNiYXNpY19pc3RyZWFtSWNTMl9FRSAtV2wsLXVu
ZXhwb3J0ZWRfc3ltYm9sIC1XbCxfX1pUQ05TdDNfXzExOGJhc2ljX3N0cmluZ3N0cmVhbUljTlNf
MTFjaGFyX3RyYWl0c0ljRUVOU185YWxsb2NhdG9ySWNFRUVFMF9OU18xNGJhc2ljX2lvc3RyZWFt
SWNTMl9FRSAtV2wsLXVuZXhwb3J0ZWRfc3ltYm9sIC1XbCxfX1pUQ05TdDNfXzExOGJhc2ljX3N0
cmluZ3N0cmVhbUljTlNfMTFjaGFyX3RyYWl0c0ljRUVOU185YWxsb2NhdG9ySWNFRUVFMTZfTlNf
MTNiYXNpY19vc3RyZWFtSWNTMl9FRSAtV2wsLXVuZXhwb3J0ZWRfc3ltYm9sIC1XbCxfX1pUVE5T
dDNfXzExOGJhc2ljX3N0cmluZ3N0cmVhbUljTlNfMTFjaGFyX3RyYWl0c0ljRUVOU185YWxsb2Nh
dG9ySWNFRUVFIC1XbCwtdW5leHBvcnRlZF9zeW1ib2wgLVdsLF9fWlRWTlN0M19fMTE1YmFzaWNf
c3RyaW5nYnVmSWNOU18xMWNoYXJfdHJhaXRzSWNFRU5TXzlhbGxvY2F0b3JJY0VFRUUgLVdsLC11
bmV4cG9ydGVkX3N5bWJvbCAtV2wsX19aVFZOU3QzX18xMThiYXNpY19zdHJpbmdzdHJlYW1JY05T
XzExY2hhcl90cmFpdHNJY0VFTlNfOWFsbG9jYXRvckljRUVFRSAtV2wsLXVuZXhwb3J0ZWRfc3lt
Ym9sIC1XbCxfX1pUQ05TdDNfXzExOGJhc2ljX3N0cmluZ3N0cmVhbUljTlNfMTFjaGFyX3RyYWl0
c0ljRUVOU185YWxsb2NhdG9ySWNFRUVFOF9OU18xM2Jhc2ljX29zdHJlYW1JY1MyX0VFOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9zcGkvaW9zL0JhY2tCb2FyZFNlcnZpY2Vz
U1BJLmggYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL3NwaS9pb3MvQmFja0JvYXJkU2VydmljZXNT
UEkuaAppbmRleCA2ZDhkODk0M2U0Y2MzY2E3OTlmMzcyMjE0NDEzNjkyNDA5ZDc5NjM3Li4wOTAx
NGQ0NDFlMWFkOWIwZjRmMjcwMzdiZGMxMGMyMzNkNDVlYzFhIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1BsYXRmb3JtL3NwaS9pb3MvQmFja0JvYXJkU2VydmljZXNTUEkuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1BsYXRmb3JtL3NwaS9pb3MvQmFja0JvYXJkU2VydmljZXNTUEkuaApAQCAtMjcs
MTEgKzI3LDI3IEBACiAKICNpbXBvcnQgPEJhY2tCb2FyZFNlcnZpY2VzL0JLU0FuaW1hdGlvbkZl
bmNlLmg+CiAjaW1wb3J0IDxCYWNrQm9hcmRTZXJ2aWNlcy9CS1NBbmltYXRpb25GZW5jZV9Qcml2
YXRlLmg+CisjaW1wb3J0IDxCYWNrQm9hcmRTZXJ2aWNlcy9CS1NNb3VzZVBvaW50ZXJTZXJ2aWNl
Lmg+CiAKICNlbHNlCiAKKyNpbXBvcnQgIkJhc2VCb2FyZFNQSS5oIgorCiBAaW50ZXJmYWNlIEJL
U0FuaW1hdGlvbkZlbmNlSGFuZGxlIDogTlNPYmplY3QKIC0gKG1hY2hfcG9ydF90KUNBUG9ydDsK
IEBlbmQKIAorQGNsYXNzIEJLU01vdXNlUG9pbnRlckRldmljZTsKKworQHByb3RvY29sIEJLU01v
dXNlUG9pbnRlckRldmljZU9ic2VydmVyIDxOU09iamVjdD4KK0BvcHRpb25hbAorLSAodm9pZClt
b3VzZVBvaW50ZXJEZXZpY2VzRGlkQ29ubmVjdDooTlNTZXQ8QktTTW91c2VQb2ludGVyRGV2aWNl
ICo+ICopbW91c2VQb2ludGVyRGV2aWNlczsKKy0gKHZvaWQpbW91c2VQb2ludGVyRGV2aWNlc0Rp
ZERpc2Nvbm5lY3Q6KE5TU2V0PEJLU01vdXNlUG9pbnRlckRldmljZSAqPiAqKW1vdXNlUG9pbnRl
ckRldmljZXM7CitAZW5kCisKK0BpbnRlcmZhY2UgQktTTW91c2VQb2ludGVyU2VydmljZSA6IE5T
T2JqZWN0CisrIChCS1NNb3VzZVBvaW50ZXJTZXJ2aWNlICopc2hhcmVkSW5zdGFuY2U7CistIChp
ZDxCU0ludmFsaWRhdGFibGU+KWFkZFBvaW50ZXJEZXZpY2VPYnNlcnZlcjooaWQ8QktTTW91c2VQ
b2ludGVyRGV2aWNlT2JzZXJ2ZXI+KW9ic2VydmVyOworQGVuZAorCiAjZW5kaWYgLy8gVVNFKEFQ
UExFX0lOVEVSTkFMX1NESykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vc3Bp
L2lvcy9CYXNlQm9hcmRTUEkuaCBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vc3BpL2lvcy9CYXNl
Qm9hcmRTUEkuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hYjA0MTg2OTViOTBmZDgzMWI4ZDYxYWQ4MTg5YTBjMzk2
Y2RkYjQwCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9zcGkvaW9z
L0Jhc2VCb2FyZFNQSS5oCkBAIC0wLDAgKzEsMzYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBg
YEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJ
QlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWYgVVNFKEFQ
UExFX0lOVEVSTkFMX1NESykKKworI2ltcG9ydCA8QmFzZUJvYXJkL0JTSW52YWxpZGF0YWJsZS5o
PgorCisjZWxzZQorCitAcHJvdG9jb2wgQlNJbnZhbGlkYXRhYmxlIDxOU09iamVjdD4KKy0gKHZv
aWQpaW52YWxpZGF0ZTsKK0BlbmQKKworI2VuZGlmIC8vIFVTRShBUFBMRV9JTlRFUk5BTF9TREsp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJh
bWV0ZXJzLmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFt
ZXRlcnMuY3BwCmluZGV4IGM3YTU5YTA0ZGNiZDE5M2ZkNWEyYTAwMzIyZDg1NWU4NTUxZTI5MDEu
LjQ2NDMxZWFjMjU2ZDNhY2IzMWQxNjc4YmFhN2IyZDI4ZjAyZmE4ZmEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwCkBA
IC04NSw2ICs4NSw5IEBAIHZvaWQgV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyczo6ZW5jb2Rl
KElQQzo6RW5jb2RlciYgZW5jb2RlcikgY29uc3QKICNlbmRpZgogICAgIGVuY29kZXIgPDwgdGV4
dENoZWNrZXJTdGF0ZTsKICAgICBlbmNvZGVyIDw8IGZ1bGxLZXlib2FyZEFjY2Vzc0VuYWJsZWQ7
CisjaWYgUExBVEZPUk0oSU9TKQorICAgIGVuY29kZXIgPDwgaGFzTW91c2VEZXZpY2U7CisjZW5k
aWYKICAgICBlbmNvZGVyIDw8IGRlZmF1bHRSZXF1ZXN0VGltZW91dEludGVydmFsOwogICAgIGVu
Y29kZXIgPDwgYmFja0ZvcndhcmRDYWNoZUNhcGFjaXR5OwogI2lmIFBMQVRGT1JNKENPQ09BKQpA
QCAtMjkzLDYgKzI5NiwxMCBAQCBib29sIFdlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnM6OmRl
Y29kZShJUEM6OkRlY29kZXImIGRlY29kZXIsIFdlYlByb2Nlc3NDcmVhdAogICAgICAgICByZXR1
cm4gZmFsc2U7CiAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShwYXJhbWV0ZXJzLmZ1bGxLZXlib2Fy
ZEFjY2Vzc0VuYWJsZWQpKQogICAgICAgICByZXR1cm4gZmFsc2U7CisjaWYgUExBVEZPUk0oSU9T
KQorICAgIGlmICghZGVjb2Rlci5kZWNvZGUocGFyYW1ldGVycy5oYXNNb3VzZURldmljZSkpCisg
ICAgICAgIHJldHVybiBmYWxzZTsKKyNlbmRpZgogICAgIGlmICghZGVjb2Rlci5kZWNvZGUocGFy
YW1ldGVycy5kZWZhdWx0UmVxdWVzdFRpbWVvdXRJbnRlcnZhbCkpCiAgICAgICAgIHJldHVybiBm
YWxzZTsKICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHBhcmFtZXRlcnMuYmFja0ZvcndhcmRDYWNo
ZUNhcGFjaXR5KSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByb2Nlc3ND
cmVhdGlvblBhcmFtZXRlcnMuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByb2Nlc3NDcmVh
dGlvblBhcmFtZXRlcnMuaAppbmRleCAwZDNhMjk2NzcxNTM3ZmMzMWUxMmY1MDExOTg2MzYzZGFj
MTA5MWQ5Li43NDBlODA2YmY0MWY4MzU4Nzc3NjU0Y2ExMTU0NzNlMmI1OWUzMDNiIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgK
KysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5o
CkBAIC0xMTcsNiArMTE3LDkgQEAgc3RydWN0IFdlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMg
ewogICAgIGJvb2wgc2hvdWxkU3VwcHJlc3NNZW1vcnlQcmVzc3VyZUhhbmRsZXIgeyBmYWxzZSB9
OwogICAgIGJvb2wgc2hvdWxkVXNlRm9udFNtb290aGluZyB7IHRydWUgfTsKICAgICBib29sIGZ1
bGxLZXlib2FyZEFjY2Vzc0VuYWJsZWQgeyBmYWxzZSB9OworI2lmIFBMQVRGT1JNKElPUykKKyAg
ICBib29sIGhhc01vdXNlRGV2aWNlIHsgZmFsc2UgfTsKKyNlbmRpZgogICAgIGJvb2wgbWVtb3J5
Q2FjaGVEaXNhYmxlZCB7IGZhbHNlIH07CiAgICAgYm9vbCBhdHRyU3R5bGVFbmFibGVkIHsgZmFs
c2UgfTsKICAgICBib29sIHVzZUdQVVByb2Nlc3NGb3JNZWRpYUVuYWJsZWQgeyBmYWxzZSB9Owpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9Tb3VyY2VzQ29jb2EudHh0IGIvU291cmNlL1dlYktp
dC9Tb3VyY2VzQ29jb2EudHh0CmluZGV4IGI2ZTNiNGRiYWI5MDQzMDkwNDBhOWQ3M2ZhMjZiZDM4
NTliODc1ZDguLjYyN2IwNjEzODVjZWU3MjNjM2Y0OTZhYzNmNmViN2NmYjQzNTcxNDIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU291cmNlc0NvY29hLnR4dAorKysgYi9Tb3VyY2UvV2ViS2l0
L1NvdXJjZXNDb2NvYS50eHQKQEAgLTQ2MCw2ICs0NjAsNyBAQCBVSVByb2Nlc3MvaW9zL1dLR2Vv
bG9jYXRpb25Qcm92aWRlcklPUy5tbQogVUlQcm9jZXNzL2lvcy9XS0dlb2xvY2F0aW9uUHJvdmlk
ZXJJT1NPYmpDU2VjdXJpdHlPcmlnaW4ubW0KIFVJUHJvY2Vzcy9pb3MvV0tIaWdobGlnaHRMb25n
UHJlc3NHZXN0dXJlUmVjb2duaXplci5tbQogVUlQcm9jZXNzL2lvcy9XS0tleWJvYXJkU2Nyb2xs
aW5nQW5pbWF0b3IubW0KK1VJUHJvY2Vzcy9pb3MvV0tNb3VzZURldmljZU9ic2VydmVyLm1tCiBV
SVByb2Nlc3MvaW9zL1dLTW91c2VHZXN0dXJlUmVjb2duaXplci5tbQogVUlQcm9jZXNzL2lvcy9X
S1Bhc3N3b3JkVmlldy5tbQogVUlQcm9jZXNzL2lvcy9XS1BERlBhZ2VOdW1iZXJJbmRpY2F0b3Iu
bW0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlByb2Nlc3NQ
b29sQ29jb2EubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJQcm9jZXNzUG9v
bENvY29hLm1tCmluZGV4IDg0NzJhZTkyMDIyZWJlZDBmNGFkN2UxMjQ5NDZjODBlMDE1ZjYxMmQu
LjJhNjE5MjkxYjA0OTJkMWU1YWZiNTI4NGZhMTExNDIyMTEwNGYxM2UgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlByb2Nlc3NQb29sQ29jb2EubW0KKysrIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViUHJvY2Vzc1Bvb2xDb2NvYS5tbQpAQCAt
ODgsNiArODgsMTAgQEAKICNpbXBvcnQgPHBhbC9zcGkvaW9zL01vYmlsZUdlc3RhbHRTUEkuaD4K
ICNlbmRpZgogCisjaWYgUExBVEZPUk0oSU9TKQorI2ltcG9ydCAiV0tNb3VzZURldmljZU9ic2Vy
dmVyLmgiCisjZW5kaWYKKwogI2lmIFBMQVRGT1JNKENPQ09BKQogI2ltcG9ydCA8V2ViQ29yZS9T
eXN0ZW1CYXR0ZXJ5Lmg+CiAjZW5kaWYKQEAgLTQ4NSw2ICs0ODksMTAgQEAgdm9pZCBXZWJQcm9j
ZXNzUG9vbDo6cGxhdGZvcm1Jbml0aWFsaXplV2ViUHJvY2Vzcyhjb25zdCBXZWJQcm9jZXNzUHJv
eHkmIHByb2Nlc3MKICNpZiBIQVZFKENBVEFMWVNUX1VTRVJfSU5URVJGQUNFX0lESU9NX0FORF9T
Q0FMRV9GQUNUT1IpCiAgICAgcGFyYW1ldGVycy5vdmVycmlkZVVzZXJJbnRlcmZhY2VJZGlvbUFu
ZFNjYWxlID0geyBfVUlBcHBsaWNhdGlvbkNhdGFseXN0VXNlckludGVyZmFjZUlkaW9tKCksIF9V
SUFwcGxpY2F0aW9uQ2F0YWx5c3RTY2FsZUZhY3RvcigpIH07CiAjZW5kaWYKKworI2lmIFBMQVRG
T1JNKElPUykKKyAgICBwYXJhbWV0ZXJzLmhhc01vdXNlRGV2aWNlID0gW1tXS01vdXNlRGV2aWNl
T2JzZXJ2ZXIgc2hhcmVkSW5zdGFuY2VdIGhhc01vdXNlRGV2aWNlXTsKKyNlbmRpZgogfQogCiB2
b2lkIFdlYlByb2Nlc3NQb29sOjpwbGF0Zm9ybUluaXRpYWxpemVOZXR3b3JrUHJvY2VzcyhOZXR3
b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyYgcGFyYW1ldGVycykKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwCmluZGV4IDVlMmM3MDhmMjJmOTdiZWFmMzcw
OTM1MmNiNjllM2Q0YzI4ZTFkOWIuLjE2ZTA5NDM2NDk2MTQ2ZGZmYjFkODdjOTMwYjZkMzQxZTVk
YTdmN2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94
eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcApA
QCAtMzk4LDggKzM5OCwxNiBAQCB2b2lkIFdlYlByb2Nlc3NQcm94eTo6Y29ubmVjdGlvbldpbGxP
cGVuKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbikKICNpZiBFTkFCTEUoU0VDX0lURU1fU0hJ
TSkKICAgICBTZWNJdGVtU2hpbVByb3h5OjpzaW5nbGV0b24oKS5pbml0aWFsaXplQ29ubmVjdGlv
bihjb25uZWN0aW9uKTsKICNlbmRpZgorCisgICAgcGxhdGZvcm1Db25uZWN0aW9uV2lsbE9wZW4o
KTsKIH0KIAorI2lmICFQTEFURk9STShJT1MpCit2b2lkIFdlYlByb2Nlc3NQcm94eTo6cGxhdGZv
cm1Db25uZWN0aW9uV2lsbE9wZW4oKQoreworfQorI2VuZGlmCisKIHZvaWQgV2ViUHJvY2Vzc1By
b3h5Ojpwcm9jZXNzV2lsbFNodXREb3duKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbikKIHsK
ICAgICBBU1NFUlRfVU5VU0VEKGNvbm5lY3Rpb24sIHRoaXMtPmNvbm5lY3Rpb24oKSA9PSAmY29u
bmVjdGlvbik7CkBAIC00MDcsOCArNDE1LDE2IEBAIHZvaWQgV2ViUHJvY2Vzc1Byb3h5Ojpwcm9j
ZXNzV2lsbFNodXREb3duKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbikKICNpZiBQTEFURk9S
TShNQUMpICYmIEVOQUJMRShXRUJQUk9DRVNTX1dJTkRPV1NFUlZFUl9CTE9DS0lORykKICAgICBw
cm9jZXNzUG9vbCgpLnN0b3BEaXNwbGF5TGlua3MoY29ubmVjdGlvbik7CiAjZW5kaWYKKworICAg
IHBsYXRmb3JtUHJvY2Vzc1dpbGxTaHV0RG93bigpOwogfQogCisjaWYgIVBMQVRGT1JNKElPUykK
K3ZvaWQgV2ViUHJvY2Vzc1Byb3h5OjpwbGF0Zm9ybVByb2Nlc3NXaWxsU2h1dERvd24oKQorewor
fQorI2VuZGlmCisKIHZvaWQgV2ViUHJvY2Vzc1Byb3h5OjpzaHV0RG93bigpCiB7CiAgICAgUkVM
RUFTRV9BU1NFUlQoaXNNYWluVGhyZWFkT3JDaGVja0Rpc2FibGVkKCkpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmggYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaAppbmRleCBlMGU4ZGMwYWM3MDhiMTI0OGIxY2M4
MGFkY2IxOWQxODQxMjM5YzczLi5mOGUxYTViMWZiOTNhNDY1ZmI1NzljM2JkZGU4YmJkNDk3YThk
N2Y2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHku
aAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaApAQCAtMzA2
LDYgKzMwNiwxMCBAQCBwdWJsaWM6CiAgICAgdm9pZCBkaWRTZXRBc3NlcnRpb25UeXBlKFByb2Nl
c3NBc3NlcnRpb25UeXBlKSBmaW5hbDsKICAgICBBU0NJSUxpdGVyYWwgY2xpZW50TmFtZSgpIGNv
bnN0IGZpbmFsIHsgcmV0dXJuICJXZWJQcm9jZXNzIl9zOyB9CiAKKyNpZiBQTEFURk9STShJT1Mp
CisgICAgdm9pZCBzZXRIYXNNb3VzZURldmljZShib29sKTsKKyNlbmRpZgorCiAjaWYgUExBVEZP
Uk0oQ09DT0EpCiAgICAgZW51bSBTYW5kYm94RXh0ZW5zaW9uVHlwZSA6IHVpbnQzMl90IHsKICAg
ICAgICAgTm9uZSA9IDAsCkBAIC00MTAsNiArNDE0LDkgQEAgcHJvdGVjdGVkOgogICAgIHZvaWQg
dmFsaWRhdGVGcmVlemVyU3RhdHVzKCk7CiAKIHByaXZhdGU6CisgICAgdm9pZCBwbGF0Zm9ybUNv
bm5lY3Rpb25XaWxsT3BlbigpOworICAgIHZvaWQgcGxhdGZvcm1Qcm9jZXNzV2lsbFNodXREb3du
KCk7CisKICAgICAvLyBJUEMgbWVzc2FnZSBoYW5kbGVycy4KICAgICB2b2lkIHVwZGF0ZUJhY2tG
b3J3YXJkSXRlbShjb25zdCBCYWNrRm9yd2FyZExpc3RJdGVtU3RhdGUmKTsKICAgICB2b2lkIGRp
ZERlc3Ryb3lGcmFtZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLTW91c2VEZXZpY2VPYnNlcnZlci5oIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLTW91c2VEZXZpY2VPYnNlcnZlci5oCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjUxZDIxN2I5Y2NjZDlkODk1YjQxYTRmZTViMjY2MGQ2MzdlNWZhMmMKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tNb3VzZURldmljZU9ic2VydmVyLmgK
QEAgLTAsMCArMSw0NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZiBQTEFURk9STShJT1MpCisKKyNpbXBv
cnQgIkJhY2tCb2FyZFNlcnZpY2VzU1BJLmgiCisKK25hbWVzcGFjZSBXZWJLaXQgeworY2xhc3Mg
V2ViUHJvY2Vzc1Byb3h5OworfQorCitAaW50ZXJmYWNlIFdLTW91c2VEZXZpY2VPYnNlcnZlciA6
IE5TT2JqZWN0PEJLU01vdXNlUG9pbnRlckRldmljZU9ic2VydmVyPgorCisrIChXS01vdXNlRGV2
aWNlT2JzZXJ2ZXIgKilzaGFyZWRJbnN0YW5jZTsKKworQHByb3BlcnR5IChub25hdG9taWMsIHJl
YWRvbmx5KSBCT09MIGhhc01vdXNlRGV2aWNlOworCistICh2b2lkKWFkZFdlYlByb2Nlc3NQcm94
eTooV2ViS2l0OjpXZWJQcm9jZXNzUHJveHkmKXdlYlByb2Nlc3NQcm94eTsKKy0gKHZvaWQpcmVt
b3ZlV2ViUHJvY2Vzc1Byb3h5OihXZWJLaXQ6OldlYlByb2Nlc3NQcm94eSYpd2ViUHJvY2Vzc1By
b3h5OworCistICh2b2lkKV9zZXRIYXNNb3VzZURldmljZUZvclRlc3Rpbmc6KEJPT0wpaGFzTW91
c2VEZXZpY2U7CisKK0BlbmQKKworI2VuZGlmIC8vIFBMQVRGT1JNKElPUykKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS01vdXNlRGV2aWNlT2JzZXJ2ZXIubW0gYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tNb3VzZURldmljZU9ic2VydmVyLm1tCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjBhM2NhZTE4NzMwYzU2ZmYxY2JjZTIzY2JlY2Q3YTI5OThkYTgwNTgKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tNb3VzZURldmljZU9ic2Vy
dmVyLm1tCkBAIC0wLDAgKzEsMTE3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycn
CisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwor
ICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICog
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2ltcG9ydCAiY29uZmlnLmgi
CisjaW1wb3J0ICJXS01vdXNlRGV2aWNlT2JzZXJ2ZXIuaCIKKworI2lmIFBMQVRGT1JNKElPUykK
KworI2ltcG9ydCAiV2ViUHJvY2Vzc1Byb3h5LmgiCisjaW5jbHVkZSA8d3RmL1dlYWtIYXNoU2V0
Lmg+CisKK0BpbXBsZW1lbnRhdGlvbiBXS01vdXNlRGV2aWNlT2JzZXJ2ZXIgeworICAgIFdlYWtI
YXNoU2V0PFdlYktpdDo6V2ViUHJvY2Vzc1Byb3h5PiBfd2ViUHJvY2Vzc1Byb3h5TGlzdDsKKwor
ICAgIEJPT0wgX2hhc01vdXNlRGV2aWNlOworICAgIGlkPEJTSW52YWxpZGF0YWJsZT4gX3Rva2Vu
OworfQorCisrIChXS01vdXNlRGV2aWNlT2JzZXJ2ZXIgKilzaGFyZWRJbnN0YW5jZSB7CisgICAg
c3RhdGljIFdLTW91c2VEZXZpY2VPYnNlcnZlciAqaW5zdGFuY2U7CisgICAgaWYgKCFpbnN0YW5j
ZSkKKyAgICAgICAgaW5zdGFuY2UgPSBbW1dLTW91c2VEZXZpY2VPYnNlcnZlciBhbGxvY10gaW5p
dF07CisgICAgcmV0dXJuIGluc3RhbmNlOworfQorCistICh2b2lkKWRlYWxsb2MKK3sKKyAgICBp
ZiAoX3Rva2VuKQorICAgICAgICBbc2VsZiBzdG9wXTsKKworICAgIFtzdXBlciBkZWFsbG9jXTsK
K30KKworI3ByYWdtYSBtYXJrIC0gV2ViUHJvY2Vzc1Byb3h5IEFQSQorCistICh2b2lkKWFkZFdl
YlByb2Nlc3NQcm94eTooV2ViS2l0OjpXZWJQcm9jZXNzUHJveHkmKXdlYlByb2Nlc3NQcm94eQor
eworICAgIGlmICghX3dlYlByb2Nlc3NQcm94eUxpc3QuYWRkKHdlYlByb2Nlc3NQcm94eSkpCisg
ICAgICAgIHJldHVybjsKKworICAgIGlmIChfd2ViUHJvY2Vzc1Byb3h5TGlzdC5jb21wdXRlU2l6
ZSgpID09IDEpCisgICAgICAgIFtzZWxmIHN0YXJ0XTsKK30KKworLSAodm9pZClyZW1vdmVXZWJQ
cm9jZXNzUHJveHk6KFdlYktpdDo6V2ViUHJvY2Vzc1Byb3h5Jil3ZWJQcm9jZXNzUHJveHkKK3sK
KyAgICBpZiAoIV93ZWJQcm9jZXNzUHJveHlMaXN0LnJlbW92ZSh3ZWJQcm9jZXNzUHJveHkpKQor
ICAgICAgICByZXR1cm47CisKKyAgICBpZiAoX3dlYlByb2Nlc3NQcm94eUxpc3QuY29tcHV0ZVNp
emUoKSA9PSAwKQorICAgICAgICBbc2VsZiBzdG9wXTsKK30KKworI3ByYWdtYSBtYXJrIC0gQktT
TW91c2VQb2ludGVyRGV2aWNlT2JzZXJ2ZXIgc3RhdGUKKworLSAodm9pZClzdGFydAoreworICAg
IEFTU0VSVCghX3Rva2VuKTsKKyAgICBfdG9rZW4gPSBbW0JLU01vdXNlUG9pbnRlclNlcnZpY2Ug
c2hhcmVkSW5zdGFuY2VdIGFkZFBvaW50ZXJEZXZpY2VPYnNlcnZlcjpzZWxmXTsKK30KKworLSAo
dm9pZClzdG9wCit7CisgICAgQVNTRVJUKF90b2tlbik7CisgICAgW190b2tlbiBpbnZhbGlkYXRl
XTsKKyAgICBfdG9rZW4gPSBuaWw7Cit9CisKKyNwcmFnbWEgbWFyayAtIEJLU01vdXNlUG9pbnRl
ckRldmljZU9ic2VydmVyIGhhbmRsZXJzCisKKy0gKHZvaWQpbW91c2VQb2ludGVyRGV2aWNlc0Rp
ZENoYW5nZTooTlNTZXQ8QktTTW91c2VQb2ludGVyRGV2aWNlICo+ICopbW91c2VQb2ludGVyRGV2
aWNlcworeworICAgIEJPT0wgaGFzTW91c2VEZXZpY2UgPSBbbW91c2VQb2ludGVyRGV2aWNlcyBj
b3VudF0gPiAwOworICAgIGlmIChoYXNNb3VzZURldmljZSA9PSBfaGFzTW91c2VEZXZpY2UpCisg
ICAgICAgIHJldHVybjsKKworICAgIF9oYXNNb3VzZURldmljZSA9IGhhc01vdXNlRGV2aWNlOwor
CisgICAgZm9yIChhdXRvJiB3ZWJQcm9jZXNzUHJveHkgOiBfd2ViUHJvY2Vzc1Byb3h5TGlzdCkK
KyAgICAgICAgd2ViUHJvY2Vzc1Byb3h5LnNldEhhc01vdXNlRGV2aWNlKF9oYXNNb3VzZURldmlj
ZSk7Cit9CisKKyNwcmFnbWEgbWFyayAtIFRlc3RpbmcKKworLSAodm9pZClfc2V0SGFzTW91c2VE
ZXZpY2VGb3JUZXN0aW5nOihCT09MKWhhc01vdXNlRGV2aWNlCit7CisgICAgX2hhc01vdXNlRGV2
aWNlID0gaGFzTW91c2VEZXZpY2U7CisKKyAgICBmb3IgKGF1dG8mIHdlYlByb2Nlc3NQcm94eSA6
IF93ZWJQcm9jZXNzUHJveHlMaXN0KQorICAgICAgICB3ZWJQcm9jZXNzUHJveHkuc2V0SGFzTW91
c2VEZXZpY2UoX2hhc01vdXNlRGV2aWNlKTsKK30KKworQGVuZAorCisjZW5kaWYgLy8gUExBVEZP
Uk0oSU9TKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dlYlByb2Nl
c3NQcm94eUlPUy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XZWJQcm9jZXNzUHJv
eHlJT1MubW0KaW5kZXggZWIxNzdjZDdjZGY1MWYwMjdmN2M1YjFlYzcyYzg3M2ZmYTYxODRmYS4u
NjllMzI0NzM2YTRjNDhmM2Q3MDQzNTQ3NGUwZDZiZjYzMGQ5MWUxMiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dlYlByb2Nlc3NQcm94eUlPUy5tbQorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV2ViUHJvY2Vzc1Byb3h5SU9TLm1tCkBAIC0zMCwxMCAr
MzAsMjggQEAKIAogI2ltcG9ydCAiQWNjZXNzaWJpbGl0eVN1cHBvcnRTUEkuaCIKICNpbXBvcnQg
IldLRnVsbEtleWJvYXJkQWNjZXNzV2F0Y2hlci5oIgorI2ltcG9ydCAiV0tNb3VzZURldmljZU9i
c2VydmVyLmgiCiAjaW1wb3J0ICJXZWJQcm9jZXNzTWVzc2FnZXMuaCIKIAogbmFtZXNwYWNlIFdl
YktpdCB7CiAKKyNpZiBQTEFURk9STShJT1MpCit2b2lkIFdlYlByb2Nlc3NQcm94eTo6cGxhdGZv
cm1Db25uZWN0aW9uV2lsbE9wZW4oKQoreworICAgIFtbV0tNb3VzZURldmljZU9ic2VydmVyIHNo
YXJlZEluc3RhbmNlXSBhZGRXZWJQcm9jZXNzUHJveHk6KnRoaXNdOworfQorCit2b2lkIFdlYlBy
b2Nlc3NQcm94eTo6cGxhdGZvcm1Qcm9jZXNzV2lsbFNodXREb3duKCkKK3sKKyAgICBbW1dLTW91
c2VEZXZpY2VPYnNlcnZlciBzaGFyZWRJbnN0YW5jZV0gcmVtb3ZlV2ViUHJvY2Vzc1Byb3h5Oip0
aGlzXTsKK30KKwordm9pZCBXZWJQcm9jZXNzUHJveHk6OnNldEhhc01vdXNlRGV2aWNlKGJvb2wg
aGFzTW91c2VEZXZpY2UpCit7CisgICAgc2VuZChNZXNzYWdlczo6V2ViUHJvY2Vzczo6U2V0SGFz
TW91c2VEZXZpY2UoaGFzTW91c2VEZXZpY2UpLCAwKTsKK30KKyNlbmRpZgorCiBib29sIFdlYlBy
b2Nlc3NQcm94eTo6ZnVsbEtleWJvYXJkQWNjZXNzRW5hYmxlZCgpCiB7CiAjaWYgRU5BQkxFKEZV
TExfS0VZQk9BUkRfQUNDRVNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJLaXQueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oKaW5kZXggNWRlMDg2YTA0NDA1YzA0MzJiNDQxNmI0MTgxMWQzYzQ1ZDFi
NWEzYi4uNmRlODVlNjM3ZTZkNWI2OTM3MjI0OTE0NGE0MTM1MDNiNDk3NTY3YiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9T
b3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xMzc5LDYg
KzEzNzksOCBAQAogCQk5M0JERUIwMTE3MUREN0FGMDBCRkVFMUIgLyogV0tQYWdlTG9hZFR5cGVz
UHJpdmF0ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
OTNCREVCMDAxNzFERDdBRjAwQkZFRTFCIC8qIFdLUGFnZUxvYWRUeXBlc1ByaXZhdGUuaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk5M0U2QTRFRTFC
QzVERDM5MDBGOEEwRTcgLyogX1dLSGl0VGVzdFJlc3VsdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNFNkE0RUQxQkM1REQzOTAwRjhBMEU3IC8qIF9X
S0hpdFRlc3RSZXN1bHQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OwogCQk5M0Y1NDlCNDFFMzE3NEI3MDAwRTcyMzkgLyogV0tTbmFwc2hvdENvbmZpZ3Vy
YXRpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkz
RjU0OUIzMUUzMTc0QjcwMDBFNzIzOSAvKiBXS1NuYXBzaG90Q29uZmlndXJhdGlvbi5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFB1YmxpYywgKTsgfTsgfTsKKwkJOTUwRjI4ODAyNTI0
MTRFQTAwQjc0RjFDIC8qIFdLTW91c2VEZXZpY2VPYnNlcnZlci5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTUwRjI4N0UyNTI0MTRFOTAwQjc0RjFDIC8q
IFdLTW91c2VEZXZpY2VPYnNlcnZlci5oICovOyB9OworCQk5NUM5NDM5MTI1MjNDMEQwMDA1NEYz
RDUgLyogQmFzZUJvYXJkU1BJLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA5NUM5NDM5MDI1MjNDMEQwMDA1NEYzRDUgLyogQmFzZUJvYXJkU1BJLmggKi87
IH07CiAJCTk5MDM2QUUyMjNBOTQ5Q0YwMDAwQjA2QSAvKiBfV0tJbnNwZWN0b3JEZWJ1Z2dhYmxl
SW5mb0ludGVybmFsLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA5OTAzNkFFMTIzQTk0OUNFMDAwMEIwNkEgLyogX1dLSW5zcGVjdG9yRGVidWdnYWJsZUlu
Zm9JbnRlcm5hbC5oICovOyB9OwogCQk5OTAzNkFFNTIzQTk1ODc1MDAwMEIwNkEgLyogQVBJRGVi
dWdnYWJsZUluZm8uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDk5MDM2QUUzMjNBOTU4NzQwMDAwQjA2QSAvKiBBUElEZWJ1Z2dhYmxlSW5mby5oICovOyB9
OwogCQk5OTAzNkFFOTIzQTk3MDg3MDAwMEIwNkEgLyogRGVidWdnYWJsZUluZm9EYXRhLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5OTAzNkFFNzIzQTk3
MDg3MDAwMEIwNkEgLyogRGVidWdnYWJsZUluZm9EYXRhLmggKi87IH07CkBAIC00NDIwLDYgKzQ0
MjIsOSBAQAogCQk5M0U2QTRFRDFCQzVERDM5MDBGOEEwRTcgLyogX1dLSGl0VGVzdFJlc3VsdC5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBfV0tIaXRUZXN0UmVzdWx0Lmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzRjU0OUIzMUUzMTc0QjcwMDBFNzIzOSAvKiBX
S1NuYXBzaG90Q29uZmlndXJhdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBXS1NuYXBzaG90Q29uZmlndXJhdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk5M0Y1NDlCNTFFMzE3NERBMDAwRTcyMzkgLyogV0tTbmFwc2hvdENvbmZpZ3VyYXRpb24ubW0g
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBXS1NuYXBzaG90Q29uZmln
dXJhdGlvbi5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTUwRjI4N0UyNTI0MTRF
OTAwQjc0RjFDIC8qIFdLTW91c2VEZXZpY2VPYnNlcnZlci5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IG5hbWUgPSBXS01vdXNlRGV2aWNlT2JzZXJ2ZXIuaDsgcGF0aCA9IGlvcy9XS01vdXNl
RGV2aWNlT2JzZXJ2ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTUwRjI4N0Yy
NTI0MTRFQTAwQjc0RjFDIC8qIFdLTW91c2VEZXZpY2VPYnNlcnZlci5tbSAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLm9iamNwcDsgbmFtZSA9IFdLTW91c2VEZXZpY2VPYnNlcnZlci5tbTsgcGF0
aCA9IGlvcy9XS01vdXNlRGV2aWNlT2JzZXJ2ZXIubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCTk1Qzk0MzkwMjUyM0MwRDAwMDU0RjNENSAvKiBCYXNlQm9hcmRTUEkuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQmFzZUJvYXJkU1BJLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTk5MDM2QUUxMjNBOTQ5Q0UwMDAwQjA2QSAvKiBfV0tJbnNwZWN0b3JE
ZWJ1Z2dhYmxlSW5mb0ludGVybmFsLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IF9XS0luc3BlY3RvckRlYnVnZ2FibGVJbmZvSW50ZXJuYWwuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJOTkwMzZBRTMyM0E5NTg3NDAwMDBCMDZBIC8qIEFQSURlYnVnZ2FibGVJbmZv
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEFQSURlYnVnZ2FibGVJbmZvLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTk5MDM2QUU0MjNBOTU4NzQwMDAwQjA2QSAv
KiBBUElEZWJ1Z2dhYmxlSW5mby5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBBUElEZWJ1Z2dhYmxlSW5mby5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBA
IC03MDE0LDYgKzcwMTksOCBAQAogCQkJCTkzM0RGODJGMUIzQkMwQjQwMEFFQTlFMyAvKiBXS0lt
YWdlUHJldmlld1ZpZXdDb250cm9sbGVyLm1tICovLAogCQkJCTJERDVFMTI3MjEwQURDN0EwMERC
NjAxMiAvKiBXS0tleWJvYXJkU2Nyb2xsaW5nQW5pbWF0b3IuaCAqLywKIAkJCQkyREQ1RTEyNjIx
MEFEQzdBMDBEQjYwMTIgLyogV0tLZXlib2FyZFNjcm9sbGluZ0FuaW1hdG9yLm1tICovLAorCQkJ
CTk1MEYyODdFMjUyNDE0RTkwMEI3NEYxQyAvKiBXS01vdXNlRGV2aWNlT2JzZXJ2ZXIuaCAqLywK
KwkJCQk5NTBGMjg3RjI1MjQxNEVBMDBCNzRGMUMgLyogV0tNb3VzZURldmljZU9ic2VydmVyLm1t
ICovLAogCQkJCTJEQjk0Mjk3MjM0RTdBN0YwMEU3NzZBRCAvKiBXS01vdXNlR2VzdHVyZVJlY29n
bml6ZXIuaCAqLywKIAkJCQkyREI5NDI5ODIzNEU3QTdGMDBFNzc2QUQgLyogV0tNb3VzZUdlc3R1
cmVSZWNvZ25pemVyLm1tICovLAogCQkJCUExNUVFREU0MUUzMDFDRUUwMDAwNjlCMCAvKiBXS1Bh
c3N3b3JkVmlldy5oICovLApAQCAtMTAzNzQsNiArMTAzODEsNyBAQAogCQkJY2hpbGRyZW4gPSAo
CiAJCQkJQ0UxQTBCQ0MxQTQ4RTZDNjAwNTRFRjc0IC8qIEFzc2VydGlvblNlcnZpY2VzU1BJLmgg
Ki8sCiAJCQkJQ0RBMDQxRjMxQUNFMjEwNTAwNEExM0VDIC8qIEJhY2tCb2FyZFNlcnZpY2VzU1BJ
LmggKi8sCisJCQkJOTVDOTQzOTAyNTIzQzBEMDAwNTRGM0Q1IC8qIEJhc2VCb2FyZFNQSS5oICov
LAogCQkJCTJENEFGMDg4MjA0NEMzQzQwMDZDODgxNyAvKiBGcm9udEJvYXJkU2VydmljZXNTUEku
aCAqLywKIAkJCQlBMTNCM0RBMTIwN0YzOURFMDA5MEM1OEQgLyogTW9iaWxlV2lGaVNQSS5oICov
LAogCQkJCTMxNzhBRjk3MjBFMkE3RjgwMDc0REU5NCAvKiBQREZLaXRTUEkuaCAqLywKQEAgLTEw
NzQwLDYgKzEwNzQ4LDcgQEAKIAkJCQkyOTBGNDI3MjE3MkEwQzc0MDA5MzlGRjAgLyogQXV4aWxp
YXJ5UHJvY2Vzc1N1cHBsZW1lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUNEQTA0MUY0MUFDRTIx
MDUwMDRBMTNFQyAvKiBCYWNrQm9hcmRTZXJ2aWNlc1NQSS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
NDZBMkI2MDkxRTU2NzZBNjAwQzNERURBIC8qIEJhY2tncm91bmRQcm9jZXNzUmVzcG9uc2l2ZW5l
c3NUaW1lci5oIGluIEhlYWRlcnMgKi8sCisJCQkJOTVDOTQzOTEyNTIzQzBEMDAwNTRGM0Q1IC8q
IEJhc2VCb2FyZFNQSS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTE2NEEyRjIxOTFBRjE0RTAwMTA3
MzdEIC8qIEJsb2JEYXRhRmlsZVJlZmVyZW5jZVdpdGhTYW5kYm94RXh0ZW5zaW9uLmggaW4gSGVh
ZGVycyAqLywKIAkJCQlFMTcwODc2QzE2RDZDQTY5MDBGOTkyMjYgLyogQmxvYlJlZ2lzdHJ5UHJv
eHkuaCBpbiBIZWFkZXJzICovLAogCQkJCTRGNjAxNDMyMTU1QzVBQTIwMDFGQkRFMCAvKiBCbG9j
a2luZ1Jlc3BvbnNlTWFwLmggaW4gSGVhZGVycyAqLywKQEAgLTExNTk3LDYgKzExNjA2LDcgQEAK
IAkJCQk1Q0FCREM4NjIyQzQwRkRFMDAxRURFOEUgLyogV0tNZXNzYWdlTGlzdGVuZXIuaCBpbiBI
ZWFkZXJzICovLAogCQkJCUMxMUUxNjk0MjEyQjg3QzUwMDk4NUZGNiAvKiBXS01vY2tEaXNwbGF5
LmggaW4gSGVhZGVycyAqLywKIAkJCQk0MTFBOEREQjIwREREMUFDMDA2MEQzNEYgLyogV0tNb2Nr
TWVkaWFEZXZpY2UuaCBpbiBIZWFkZXJzICovLAorCQkJCTk1MEYyODgwMjUyNDE0RUEwMEI3NEYx
QyAvKiBXS01vdXNlRGV2aWNlT2JzZXJ2ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTJEQjk0Mjk5
MjM0RTdBN0YwMEU3NzZBRCAvKiBXS01vdXNlR2VzdHVyZVJlY29nbml6ZXIuaCBpbiBIZWFkZXJz
ICovLAogCQkJCUJDNDA3NUZFMTI0RkYwMjcwMDY4RjIwQSAvKiBXS011dGFibGVBcnJheS5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJQkM0MDc2MDAxMjRGRjAyNzAwNjhGMjBBIC8qIFdLTXV0YWJsZURp
Y3Rpb25hcnkuaCBpbiBIZWFkZXJzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcAppbmRleCAxODhi
YzVlOWViOWRiNzQ0MDVlMDhmNmUwNTgyM2VhM2MzN2E4MmExLi44OTM2YzNjMzI0ZjkzZWNhOTVh
ZTQ0ZjVjMzIzYTU4YzYyZTVkZDc5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcApAQCAtNTA2LDYg
KzUwNiwxMyBAQCBLZXlib2FyZFVJTW9kZSBXZWJDaHJvbWVDbGllbnQ6OmtleWJvYXJkVUlNb2Rl
KCkKICAgICByZXR1cm4gbV9wYWdlLmtleWJvYXJkVUlNb2RlKCk7CiB9CiAKKyNpZiBQTEFURk9S
TShJT1MpCitib29sIFdlYkNocm9tZUNsaWVudDo6aGFzTW91c2VEZXZpY2UoKQoreworICAgIHJl
dHVybiBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5oYXNNb3VzZURldmljZSgpOworfQorI2VuZGlm
CisKICNpZiBFTkFCTEUoUE9JTlRFUl9MT0NLKQogCiBib29sIFdlYkNocm9tZUNsaWVudDo6cmVx
dWVzdFBvaW50ZXJMb2NrKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaAppbmRleCBiZGI0ZGZmYmIwMTVhMzc3
MjA2YmRiNDI1YTcyNWFkNjRlMDE1ODdiLi43ZDUzY2JiNWJlMTliMTFlMWVmNDgwOTNjZjcyYjFl
MjFhOWZmZjk1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCkBAIC0xMTIsNiArMTEyLDEwIEBAIHByaXZh
dGU6CiAKICAgICBXZWJDb3JlOjpLZXlib2FyZFVJTW9kZSBrZXlib2FyZFVJTW9kZSgpIGZpbmFs
OwogCisjaWYgUExBVEZPUk0oSU9TKQorICAgIGJvb2wgaGFzTW91c2VEZXZpY2UoKSBmaW5hbDsK
KyNlbmRpZgorCiAgICAgLy8gSG9zdFdpbmRvdyBtZW1iZXIgZnVuY3Rpb24gZmluYWxzLgogICAg
IHZvaWQgaW52YWxpZGF0ZVJvb3RWaWV3KGNvbnN0IFdlYkNvcmU6OkludFJlY3QmKSBmaW5hbDsK
ICAgICB2b2lkIGludmFsaWRhdGVDb250ZW50c0FuZFJvb3RWaWV3KGNvbnN0IFdlYkNvcmU6Oklu
dFJlY3QmKSBmaW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQ
cm9jZXNzLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcAppbmRl
eCA3N2U4ZmI2ZDJmY2UyZWY1YmE4NGY2NmY5MjZjYzUzYjVlMDI5Y2M3Li4wZjgwYjYyMDdmNGRj
ODFlZDhjZmNlYjUwZmI2ZWUyODBmN2NiNzc5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YlByb2Nlc3MuY3BwCkBAIC00MDYsNiArNDA2LDEwIEBAIHZvaWQgV2ViUHJvY2Vzczo6aW5pdGlh
bGl6ZVdlYlByb2Nlc3MoV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyYmIHBhcmFtZXRlcnMp
CiAKICAgICBtX2Z1bGxLZXlib2FyZEFjY2Vzc0VuYWJsZWQgPSBwYXJhbWV0ZXJzLmZ1bGxLZXli
b2FyZEFjY2Vzc0VuYWJsZWQ7CiAKKyNpZiBQTEFURk9STShJT1MpCisgICAgbV9oYXNNb3VzZURl
dmljZSA9IHBhcmFtZXRlcnMuaGFzTW91c2VEZXZpY2U7CisjZW5kaWYKKwogICAgIGZvciAoYXV0
byYgc2NoZW1lIDogcGFyYW1ldGVycy51cmxTY2hlbWVzUmVnaXN0ZXJlZEFzRW1wdHlEb2N1bWVu
dCkKICAgICAgICAgcmVnaXN0ZXJVUkxTY2hlbWVBc0VtcHR5RG9jdW1lbnQoc2NoZW1lKTsKIApA
QCAtMTA1MCw2ICsxMDU0LDE4IEBAIHZvaWQgV2ViUHJvY2Vzczo6bWVzc2FnZXNBdmFpbGFibGVG
b3JQb3J0KGNvbnN0IE1lc3NhZ2VQb3J0SWRlbnRpZmllciYgaWRlbnRpZmllCiAgICAgTWVzc2Fn
ZVBvcnQ6Om5vdGlmeU1lc3NhZ2VBdmFpbGFibGUoaWRlbnRpZmllcik7CiB9CiAKKyNpZiBQTEFU
Rk9STShJT1MpCit2b2lkIFdlYlByb2Nlc3M6OnNldEhhc01vdXNlRGV2aWNlKGJvb2wgaGFzTW91
c2VEZXZpY2UpCit7CisgICAgaWYgKGhhc01vdXNlRGV2aWNlID09IG1faGFzTW91c2VEZXZpY2Up
CisgICAgICAgIHJldHVybjsKKworICAgIG1faGFzTW91c2VEZXZpY2UgPSBoYXNNb3VzZURldmlj
ZTsKKworICAgIFBhZ2U6OnVwZGF0ZVN0eWxlRm9yQWxsUGFnZXNBZnRlckdsb2JhbENoYW5nZUlu
RW52aXJvbm1lbnQoKTsKK30KKyNlbmRpZgorCiAjaWYgRU5BQkxFKEdBTUVQQUQpCiAKIHZvaWQg
V2ViUHJvY2Vzczo6c2V0SW5pdGlhbEdhbWVwYWRzKGNvbnN0IFZlY3RvcjxXZWJLaXQ6OkdhbWVw
YWREYXRhPiYgZ2FtZXBhZERhdGFzKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYlByb2Nlc3MuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmgK
aW5kZXggOWQwZGRiZmQzOGRlMzgxZGMyNWRiZWI5N2Q0ODY5ZTk0ZmRlYjgyNy4uNGIyYzFkOWNh
MDlmODc1ZDc5ZDhiMTM4MzJmNGVkZDM5NmQ5NWZjMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViUHJvY2Vzcy5oCkBAIC0xODcsNiArMTg3LDExIEBAIHB1YmxpYzoKIAogICAgIGJvb2wgZnVs
bEtleWJvYXJkQWNjZXNzRW5hYmxlZCgpIGNvbnN0IHsgcmV0dXJuIG1fZnVsbEtleWJvYXJkQWNj
ZXNzRW5hYmxlZDsgfQogCisjaWYgUExBVEZPUk0oSU9TKQorICAgIGJvb2wgaGFzTW91c2VEZXZp
Y2UoKSBjb25zdCB7IHJldHVybiBtX2hhc01vdXNlRGV2aWNlOyB9CisgICAgdm9pZCBzZXRIYXNN
b3VzZURldmljZShib29sKTsKKyNlbmRpZgorCiAgICAgV2ViRnJhbWUqIHdlYkZyYW1lKFdlYkNv
cmU6OkZyYW1lSWRlbnRpZmllcikgY29uc3Q7CiAgICAgVmVjdG9yPFdlYkZyYW1lKj4gd2ViRnJh
bWVzKCkgY29uc3Q7CiAgICAgdm9pZCBhZGRXZWJGcmFtZShXZWJDb3JlOjpGcmFtZUlkZW50aWZp
ZXIsIFdlYkZyYW1lKik7CkBAIC01NTMsNiArNTU4LDkgQEAgcHJpdmF0ZToKICNlbmRpZgogCiAg
ICAgYm9vbCBtX2Z1bGxLZXlib2FyZEFjY2Vzc0VuYWJsZWQgeyBmYWxzZSB9OworI2lmIFBMQVRG
T1JNKElPUykKKyAgICBib29sIG1faGFzTW91c2VEZXZpY2UgeyBmYWxzZSB9OworI2VuZGlmCiAK
ICAgICBIYXNoTWFwPFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgV2ViRnJhbWUqPiBtX2ZyYW1l
TWFwOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5t
ZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLm1lc3NhZ2Vz
LmluCmluZGV4IDAxMjM2NzU3YTVjNWYwZDI4MGM2ZGQxZjlhMTgxNTJiYmNmMTljMDQuLjg1OTYy
MDVjNDQ5NGNhNTBmYzcyMjY2M2I0MWI2ZDc5MjllNTkyMDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLm1lc3NhZ2VzLmluCkBAIC01Miw2ICs1MiwxMCBAQCBt
ZXNzYWdlcyAtPiBXZWJQcm9jZXNzIExlZ2FjeVJlY2VpdmVyIE5vdFJlZkNvdW50ZWQgewogICAg
IFVzZXJQcmVmZXJyZWRMYW5ndWFnZXNDaGFuZ2VkKCkKICAgICBGdWxsS2V5Ym9hcmRBY2Nlc3NN
b2RlQ2hhbmdlZChib29sIGZ1bGxLZXlib2FyZEFjY2Vzc0VuYWJsZWQpCiAKKyNpZiBQTEFURk9S
TShJT1MpCisgICAgU2V0SGFzTW91c2VEZXZpY2UoYm9vbCBoYXNNb3VzZURldmljZSkKKyNlbmRp
ZgorCiAgICAgIyBQbHVnLWlucy4KICAgICBEaWRBZGRQbHVnSW5BdXRvU3RhcnRPcmlnaW5IYXNo
KHVpbnQzMl90IGhhc2gsIFdhbGxUaW1lIGV4cGlyYXRpb25UaW1lKQogICAgIFJlc2V0UGx1Z0lu
QXV0b1N0YXJ0T3JpZ2luSGFzaGVzKEhhc2hNYXA8dWludDMyX3QsV2FsbFRpbWU+IGhhc2hlcykK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvaW9zL1dlYkNvcmVTdXBwb3J0L1dlYkNo
cm9tZUNsaWVudElPUy5oIGIvU291cmNlL1dlYktpdExlZ2FjeS9pb3MvV2ViQ29yZVN1cHBvcnQv
V2ViQ2hyb21lQ2xpZW50SU9TLmgKaW5kZXggYTkyYmFhNmIzMDU5ZGU4OTE0NWYwM2IxYTU3NTdm
OTcyYTk0MDk5OS4uZjE0MWY0YjhlYzkxM2Y5ZDU1YTk4MTIyODQ4MjYzZWNkZWU0YTU5YSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9pb3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21l
Q2xpZW50SU9TLmgKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9pb3MvV2ViQ29yZVN1cHBvcnQv
V2ViQ2hyb21lQ2xpZW50SU9TLmgKQEAgLTUwLDYgKzUwLDEwIEBAIHByaXZhdGU6CiAgICAgdm9p
ZCBydW5PcGVuUGFuZWwoV2ViQ29yZTo6RnJhbWUmLCBXZWJDb3JlOjpGaWxlQ2hvb3NlciYpIGZp
bmFsOwogICAgIHZvaWQgc2hvd1NoYXJlU2hlZXQoV2ViQ29yZTo6U2hhcmVEYXRhV2l0aFBhcnNl
ZFVSTCYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYpIGZpbmFsOwogCisjaWYgUExB
VEZPUk0oSU9TKQorICAgIGJvb2wgaGFzTW91c2VEZXZpY2UoKSBmaW5hbCB7IHJldHVybiBmYWxz
ZTsgfQorI2VuZGlmCisKICAgICB2b2lkIHNldEN1cnNvcihjb25zdCBXZWJDb3JlOjpDdXJzb3Im
KSBmaW5hbCB7IH0KICAgICB2b2lkIHNldEN1cnNvckhpZGRlblVudGlsTW91c2VNb3Zlcyhib29s
KSBmaW5hbCB7IH0KIApkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdl
TG9nCmluZGV4IDZlMGZhOTE1M2Y1ODdlMDU2YTZmNGZlYjUwOWM4N2E2OWFjMWI1ZTIuLmRjNzI4
MGMyMmEwNjViZjEzMzA5OGVhYmU3MjhiYTQ1ODJjNjk5ODAgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0No
YW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOSBAQAorMjAyMC0wOS0z
MCAgRGV2aW4gUm91c3NvICA8ZHJvdXNzb0BhcHBsZS5jb20+CisKKyAgICAgICAgQ1NTIGhvdmVy
IGFuZCAicG9pbnRlcjogZmluZSIgbWVkaWEgcXVlcmllcyBkbyBub3QgZXZhbHVhdGUgdG8gdHJ1
ZSB3aXRoIGlPUyAxMy40IG1vdXNlIHN1cHBvcnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTIwOTI5MgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNjA2
NjMxMjQ+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
KiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL2lPU01vdXNlU3VwcG9ydC5tbToKKyAg
ICAgICAgKGV2YWx1YXRlTWVkaWFRdWVyeSk6IEFkZGVkLgorICAgICAgICAoaU9TTW91c2VTdXBw
b3J0Lk1vdXNlSW5pdGlhbGx5RGlzY29ubmVjdGVkKTogQWRkZWQuCisgICAgICAgIChpT1NNb3Vz
ZVN1cHBvcnQuTW91c2VJbml0aWFsbHlDb25uZWN0ZWQpOiBBZGRlZC4KKyAgICAgICAgKGlPU01v
dXNlU3VwcG9ydC5Nb3VzZUxhdGVyRGlzY29ubmVjdGVkKTogQWRkZWQuCisgICAgICAgIChpT1NN
b3VzZVN1cHBvcnQuTW91c2VMYXRlckNvbm5lY3RlZCk6IEFkZGVkLgorICAgICAgICAoaU9TTW91
c2VTdXBwb3J0Lk1vdXNlQWx3YXlzQ29ubmVjdGVkKTogQWRkZWQuCisKIDIwMjAtMDktMzAgIEpv
bmF0aGFuIEJlZGFyZCAgPGpiZWRhcmRAYXBwbGUuY29tPgogCiAgICAgICAgIFt3ZWJraXRzY21w
eV0gQWRkIENvbW1pdCBvYmplY3QKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViS2l0Q29jb2EvaU9TTW91c2VTdXBwb3J0Lm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJLaXRDb2NvYS9pT1NNb3VzZVN1cHBvcnQubW0KaW5kZXggYzI0MzBiMjBlZjc3NmFl
YTEzMDllOTMzOGQ2ZTJlYTBjZjUwYWExNi4uMGViYTM3OWFhZTFjMDVjNDg0NWQ3MjQ0NWQ5NGRl
ZWVkZmM0M2ViMiAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRD
b2NvYS9pT1NNb3VzZVN1cHBvcnQubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJLaXRDb2NvYS9pT1NNb3VzZVN1cHBvcnQubW0KQEAgLTMwMCw0ICszMDAsMTU5IEBAIFRFU1Qo
aU9TTW91c2VTdXBwb3J0LCBXZWJzaXRlTW91c2VFdmVudFBvbGljaWVzKQogCiAjZW5kaWYgLy8g
RU5BQkxFKElPU19UT1VDSF9FVkVOVFMpCiAKK3N0YXRpYyBCT09MIGV2YWx1YXRlTWVkaWFRdWVy
eShSZXRhaW5QdHI8VGVzdFdLV2ViVmlldz4mIHdlYlZpZXcsIE5TU3RyaW5nICpxdWVyeSkKK3sK
KyAgICByZXR1cm4gW1t3ZWJWaWV3IG9iamVjdEJ5RXZhbHVhdGluZ0phdmFTY3JpcHQ6W05TU3Ry
aW5nIHN0cmluZ1dpdGhGb3JtYXQ6QCJ3aW5kb3cubWF0Y2hNZWRpYShcIiglQClcIikubWF0Y2hl
cyIsIHF1ZXJ5XV0gYm9vbFZhbHVlXTsKK30KKworI2lmIFBMQVRGT1JNKElPUykKKworQGludGVy
ZmFjZSBXS01vdXNlRGV2aWNlT2JzZXJ2ZXIKKysgKFdLTW91c2VEZXZpY2VPYnNlcnZlciAqKXNo
YXJlZEluc3RhbmNlOworLSAodm9pZClfc2V0SGFzTW91c2VEZXZpY2VGb3JUZXN0aW5nOihCT09M
KWhhc01vdXNlRGV2aWNlOworQGVuZAorCitURVNUKGlPU01vdXNlU3VwcG9ydCwgTW91c2VJbml0
aWFsbHlEaXNjb25uZWN0ZWQpCit7CisgICAgW1tOU0NsYXNzRnJvbVN0cmluZyhAIldLTW91c2VE
ZXZpY2VPYnNlcnZlciIpIHNoYXJlZEluc3RhbmNlXSBfc2V0SGFzTW91c2VEZXZpY2VGb3JUZXN0
aW5nOk5PXTsKKworICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFs
bG9jXSBpbml0V2l0aEZyYW1lOk5TTWFrZVJlY3QoMCwgMCwgODAwLCA2MDApXSk7CisKKyAgICBb
d2ViVmlldyBzeW5jaHJvbm91c2x5TG9hZEhUTUxTdHJpbmc6QCIiXTsKKworICAgIEVYUEVDVF9G
QUxTRShldmFsdWF0ZU1lZGlhUXVlcnkod2ViVmlldywgQCJob3ZlciIpKTsKKyAgICBFWFBFQ1Rf
VFJVRShldmFsdWF0ZU1lZGlhUXVlcnkod2ViVmlldywgQCJob3Zlcjogbm9uZSIpKTsKKyAgICBF
WFBFQ1RfRkFMU0UoZXZhbHVhdGVNZWRpYVF1ZXJ5KHdlYlZpZXcsIEAiaG92ZXI6IGhvdmVyIikp
OworCisgICAgRVhQRUNUX0ZBTFNFKGV2YWx1YXRlTWVkaWFRdWVyeSh3ZWJWaWV3LCBAImFueS1o
b3ZlciIpKTsKKyAgICBFWFBFQ1RfVFJVRShldmFsdWF0ZU1lZGlhUXVlcnkod2ViVmlldywgQCJh
bnktaG92ZXI6IG5vbmUiKSk7CisgICAgRVhQRUNUX0ZBTFNFKGV2YWx1YXRlTWVkaWFRdWVyeSh3
ZWJWaWV3LCBAImFueS1ob3ZlcjogaG92ZXIiKSk7CisKKyAgICBFWFBFQ1RfVFJVRShldmFsdWF0
ZU1lZGlhUXVlcnkod2ViVmlldywgQCJwb2ludGVyIikpOworICAgIEVYUEVDVF9GQUxTRShldmFs
dWF0ZU1lZGlhUXVlcnkod2ViVmlldywgQCJwb2ludGVyOiBub25lIikpOworICAgIEVYUEVDVF9U
UlVFKGV2YWx1YXRlTWVkaWFRdWVyeSh3ZWJWaWV3LCBAInBvaW50ZXI6IGNvYXJzZSIpKTsKKyAg
ICBFWFBFQ1RfRkFMU0UoZXZhbHVhdGVNZWRpYVF1ZXJ5KHdlYlZpZXcsIEAicG9pbnRlcjogZmlu
ZSIpKTsKKworICAgIEVYUEVDVF9UUlVFKGV2YWx1YXRlTWVkaWFRdWVyeSh3ZWJWaWV3LCBAImFu
eS1wb2ludGVyIikpOworICAgIEVYUEVDVF9GQUxTRShldmFsdWF0ZU1lZGlhUXVlcnkod2ViVmll
dywgQCJhbnktcG9pbnRlcjogbm9uZSIpKTsKKyAgICBFWFBFQ1RfVFJVRShldmFsdWF0ZU1lZGlh
UXVlcnkod2ViVmlldywgQCJhbnktcG9pbnRlcjogY29hcnNlIikpOworICAgIEVYUEVDVF9GQUxT
RShldmFsdWF0ZU1lZGlhUXVlcnkod2ViVmlldywgQCJhbnktcG9pbnRlcjogZmluZSIpKTsKK30K
KworVEVTVChpT1NNb3VzZVN1cHBvcnQsIE1vdXNlSW5pdGlhbGx5Q29ubmVjdGVkKQoreworICAg
IFtbTlNDbGFzc0Zyb21TdHJpbmcoQCJXS01vdXNlRGV2aWNlT2JzZXJ2ZXIiKSBzaGFyZWRJbnN0
YW5jZV0gX3NldEhhc01vdXNlRGV2aWNlRm9yVGVzdGluZzpZRVNdOworCisgICAgYXV0byB3ZWJW
aWV3ID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6TlNNYWtl
UmVjdCgwLCAwLCA4MDAsIDYwMCldKTsKKworICAgIFt3ZWJWaWV3IHN5bmNocm9ub3VzbHlMb2Fk
SFRNTFN0cmluZzpAIiJdOworCisgICAgRVhQRUNUX0ZBTFNFKGV2YWx1YXRlTWVkaWFRdWVyeSh3
ZWJWaWV3LCBAImhvdmVyIikpOworICAgIEVYUEVDVF9UUlVFKGV2YWx1YXRlTWVkaWFRdWVyeSh3
ZWJWaWV3LCBAImhvdmVyOiBub25lIikpOworICAgIEVYUEVDVF9GQUxTRShldmFsdWF0ZU1lZGlh
UXVlcnkod2ViVmlldywgQCJob3ZlcjogaG92ZXIiKSk7CisKKyAgICBFWFBFQ1RfVFJVRShldmFs
dWF0ZU1lZGlhUXVlcnkod2ViVmlldywgQCJhbnktaG92ZXIiKSk7CisgICAgRVhQRUNUX0ZBTFNF
KGV2YWx1YXRlTWVkaWFRdWVyeSh3ZWJWaWV3LCBAImFueS1ob3Zlcjogbm9uZSIpKTsKKyAgICBF
WFBFQ1RfVFJVRShldmFsdWF0ZU1lZGlhUXVlcnkod2ViVmlldywgQCJhbnktaG92ZXI6IGhvdmVy
IikpOworCisgICAgRVhQRUNUX1RSVUUoZXZhbHVhdGVNZWRpYVF1ZXJ5KHdlYlZpZXcsIEAicG9p
bnRlciIpKTsKKyAgICBFWFBFQ1RfRkFMU0UoZXZhbHVhdGVNZWRpYVF1ZXJ5KHdlYlZpZXcsIEAi
cG9pbnRlcjogbm9uZSIpKTsKKyAgICBFWFBFQ1RfVFJVRShldmFsdWF0ZU1lZGlhUXVlcnkod2Vi
VmlldywgQCJwb2ludGVyOiBjb2Fyc2UiKSk7CisgICAgRVhQRUNUX0ZBTFNFKGV2YWx1YXRlTWVk
aWFRdWVyeSh3ZWJWaWV3LCBAInBvaW50ZXI6IGZpbmUiKSk7CisKKyAgICBFWFBFQ1RfVFJVRShl
dmFsdWF0ZU1lZGlhUXVlcnkod2ViVmlldywgQCJhbnktcG9pbnRlciIpKTsKKyAgICBFWFBFQ1Rf
RkFMU0UoZXZhbHVhdGVNZWRpYVF1ZXJ5KHdlYlZpZXcsIEAiYW55LXBvaW50ZXI6IG5vbmUiKSk7
CisgICAgRVhQRUNUX1RSVUUoZXZhbHVhdGVNZWRpYVF1ZXJ5KHdlYlZpZXcsIEAiYW55LXBvaW50
ZXI6IGNvYXJzZSIpKTsKKyAgICBFWFBFQ1RfVFJVRShldmFsdWF0ZU1lZGlhUXVlcnkod2ViVmll
dywgQCJhbnktcG9pbnRlcjogZmluZSIpKTsKK30KKworVEVTVChpT1NNb3VzZVN1cHBvcnQsIE1v
dXNlTGF0ZXJEaXNjb25uZWN0ZWQpCit7CisgICAgW1tOU0NsYXNzRnJvbVN0cmluZyhAIldLTW91
c2VEZXZpY2VPYnNlcnZlciIpIHNoYXJlZEluc3RhbmNlXSBfc2V0SGFzTW91c2VEZXZpY2VGb3JU
ZXN0aW5nOllFU107CisKKyAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmll
dyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU01ha2VSZWN0KDAsIDAsIDgwMCwgNjAwKV0pOworCisg
ICAgW3dlYlZpZXcgc3luY2hyb25vdXNseUxvYWRIVE1MU3RyaW5nOkAiIl07CisKKyAgICBbW05T
Q2xhc3NGcm9tU3RyaW5nKEAiV0tNb3VzZURldmljZU9ic2VydmVyIikgc2hhcmVkSW5zdGFuY2Vd
IF9zZXRIYXNNb3VzZURldmljZUZvclRlc3Rpbmc6Tk9dOworCisgICAgRVhQRUNUX0ZBTFNFKGV2
YWx1YXRlTWVkaWFRdWVyeSh3ZWJWaWV3LCBAImhvdmVyIikpOworICAgIEVYUEVDVF9UUlVFKGV2
YWx1YXRlTWVkaWFRdWVyeSh3ZWJWaWV3LCBAImhvdmVyOiBub25lIikpOworICAgIEVYUEVDVF9G
QUxTRShldmFsdWF0ZU1lZGlhUXVlcnkod2ViVmlldywgQCJob3ZlcjogaG92ZXIiKSk7CisKKyAg
ICBFWFBFQ1RfRkFMU0UoZXZhbHVhdGVNZWRpYVF1ZXJ5KHdlYlZpZXcsIEAiYW55LWhvdmVyIikp
OworICAgIEVYUEVDVF9UUlVFKGV2YWx1YXRlTWVkaWFRdWVyeSh3ZWJWaWV3LCBAImFueS1ob3Zl
cjogbm9uZSIpKTsKKyAgICBFWFBFQ1RfRkFMU0UoZXZhbHVhdGVNZWRpYVF1ZXJ5KHdlYlZpZXcs
IEAiYW55LWhvdmVyOiBob3ZlciIpKTsKKworICAgIEVYUEVDVF9UUlVFKGV2YWx1YXRlTWVkaWFR
dWVyeSh3ZWJWaWV3LCBAInBvaW50ZXIiKSk7CisgICAgRVhQRUNUX0ZBTFNFKGV2YWx1YXRlTWVk
aWFRdWVyeSh3ZWJWaWV3LCBAInBvaW50ZXI6IG5vbmUiKSk7CisgICAgRVhQRUNUX1RSVUUoZXZh
bHVhdGVNZWRpYVF1ZXJ5KHdlYlZpZXcsIEAicG9pbnRlcjogY29hcnNlIikpOworICAgIEVYUEVD
VF9GQUxTRShldmFsdWF0ZU1lZGlhUXVlcnkod2ViVmlldywgQCJwb2ludGVyOiBmaW5lIikpOwor
CisgICAgRVhQRUNUX1RSVUUoZXZhbHVhdGVNZWRpYVF1ZXJ5KHdlYlZpZXcsIEAiYW55LXBvaW50
ZXIiKSk7CisgICAgRVhQRUNUX0ZBTFNFKGV2YWx1YXRlTWVkaWFRdWVyeSh3ZWJWaWV3LCBAImFu
eS1wb2ludGVyOiBub25lIikpOworICAgIEVYUEVDVF9UUlVFKGV2YWx1YXRlTWVkaWFRdWVyeSh3
ZWJWaWV3LCBAImFueS1wb2ludGVyOiBjb2Fyc2UiKSk7CisgICAgRVhQRUNUX0ZBTFNFKGV2YWx1
YXRlTWVkaWFRdWVyeSh3ZWJWaWV3LCBAImFueS1wb2ludGVyOiBmaW5lIikpOworfQorCitURVNU
KGlPU01vdXNlU3VwcG9ydCwgTW91c2VMYXRlckNvbm5lY3RlZCkKK3sKKyAgICBbW05TQ2xhc3NG
cm9tU3RyaW5nKEAiV0tNb3VzZURldmljZU9ic2VydmVyIikgc2hhcmVkSW5zdGFuY2VdIF9zZXRI
YXNNb3VzZURldmljZUZvclRlc3Rpbmc6Tk9dOworCisgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHRO
UyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6TlNNYWtlUmVjdCgwLCAwLCA4
MDAsIDYwMCldKTsKKworICAgIFt3ZWJWaWV3IHN5bmNocm9ub3VzbHlMb2FkSFRNTFN0cmluZzpA
IiJdOworCisgICAgW1tOU0NsYXNzRnJvbVN0cmluZyhAIldLTW91c2VEZXZpY2VPYnNlcnZlciIp
IHNoYXJlZEluc3RhbmNlXSBfc2V0SGFzTW91c2VEZXZpY2VGb3JUZXN0aW5nOllFU107CisKKyAg
ICBFWFBFQ1RfRkFMU0UoZXZhbHVhdGVNZWRpYVF1ZXJ5KHdlYlZpZXcsIEAiaG92ZXIiKSk7Cisg
ICAgRVhQRUNUX1RSVUUoZXZhbHVhdGVNZWRpYVF1ZXJ5KHdlYlZpZXcsIEAiaG92ZXI6IG5vbmUi
KSk7CisgICAgRVhQRUNUX0ZBTFNFKGV2YWx1YXRlTWVkaWFRdWVyeSh3ZWJWaWV3LCBAImhvdmVy
OiBob3ZlciIpKTsKKworICAgIEVYUEVDVF9UUlVFKGV2YWx1YXRlTWVkaWFRdWVyeSh3ZWJWaWV3
LCBAImFueS1ob3ZlciIpKTsKKyAgICBFWFBFQ1RfRkFMU0UoZXZhbHVhdGVNZWRpYVF1ZXJ5KHdl
YlZpZXcsIEAiYW55LWhvdmVyOiBub25lIikpOworICAgIEVYUEVDVF9UUlVFKGV2YWx1YXRlTWVk
aWFRdWVyeSh3ZWJWaWV3LCBAImFueS1ob3ZlcjogaG92ZXIiKSk7CisKKyAgICBFWFBFQ1RfVFJV
RShldmFsdWF0ZU1lZGlhUXVlcnkod2ViVmlldywgQCJwb2ludGVyIikpOworICAgIEVYUEVDVF9G
QUxTRShldmFsdWF0ZU1lZGlhUXVlcnkod2ViVmlldywgQCJwb2ludGVyOiBub25lIikpOworICAg
IEVYUEVDVF9UUlVFKGV2YWx1YXRlTWVkaWFRdWVyeSh3ZWJWaWV3LCBAInBvaW50ZXI6IGNvYXJz
ZSIpKTsKKyAgICBFWFBFQ1RfRkFMU0UoZXZhbHVhdGVNZWRpYVF1ZXJ5KHdlYlZpZXcsIEAicG9p
bnRlcjogZmluZSIpKTsKKworICAgIEVYUEVDVF9UUlVFKGV2YWx1YXRlTWVkaWFRdWVyeSh3ZWJW
aWV3LCBAImFueS1wb2ludGVyIikpOworICAgIEVYUEVDVF9GQUxTRShldmFsdWF0ZU1lZGlhUXVl
cnkod2ViVmlldywgQCJhbnktcG9pbnRlcjogbm9uZSIpKTsKKyAgICBFWFBFQ1RfVFJVRShldmFs
dWF0ZU1lZGlhUXVlcnkod2ViVmlldywgQCJhbnktcG9pbnRlcjogY29hcnNlIikpOworICAgIEVY
UEVDVF9UUlVFKGV2YWx1YXRlTWVkaWFRdWVyeSh3ZWJWaWV3LCBAImFueS1wb2ludGVyOiBmaW5l
IikpOworfQorCisjZW5kaWYgLy8gUExBVEZPUk0oSU9TKQorCisjaWYgUExBVEZPUk0oTUFDQ0FU
QUxZU1QpCisKK1RFU1QoaU9TTW91c2VTdXBwb3J0LCBNb3VzZUFsd2F5c0Nvbm5lY3RlZCkKK3sK
KyAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdp
dGhGcmFtZTpOU01ha2VSZWN0KDAsIDAsIDgwMCwgNjAwKV0pOworCisgICAgW3dlYlZpZXcgc3lu
Y2hyb25vdXNseUxvYWRIVE1MU3RyaW5nOkAiIl07CisKKyAgICBFWFBFQ1RfRkFMU0UoZXZhbHVh
dGVNZWRpYVF1ZXJ5KHdlYlZpZXcsIEAiaG92ZXIiKSk7CisgICAgRVhQRUNUX1RSVUUoZXZhbHVh
dGVNZWRpYVF1ZXJ5KHdlYlZpZXcsIEAiaG92ZXI6IG5vbmUiKSk7CisgICAgRVhQRUNUX0ZBTFNF
KGV2YWx1YXRlTWVkaWFRdWVyeSh3ZWJWaWV3LCBAImhvdmVyOiBob3ZlciIpKTsKKworICAgIEVY
UEVDVF9UUlVFKGV2YWx1YXRlTWVkaWFRdWVyeSh3ZWJWaWV3LCBAImFueS1ob3ZlciIpKTsKKyAg
ICBFWFBFQ1RfRkFMU0UoZXZhbHVhdGVNZWRpYVF1ZXJ5KHdlYlZpZXcsIEAiYW55LWhvdmVyOiBu
b25lIikpOworICAgIEVYUEVDVF9UUlVFKGV2YWx1YXRlTWVkaWFRdWVyeSh3ZWJWaWV3LCBAImFu
eS1ob3ZlcjogaG92ZXIiKSk7CisKKyAgICBFWFBFQ1RfVFJVRShldmFsdWF0ZU1lZGlhUXVlcnko
d2ViVmlldywgQCJwb2ludGVyIikpOworICAgIEVYUEVDVF9GQUxTRShldmFsdWF0ZU1lZGlhUXVl
cnkod2ViVmlldywgQCJwb2ludGVyOiBub25lIikpOworICAgIEVYUEVDVF9UUlVFKGV2YWx1YXRl
TWVkaWFRdWVyeSh3ZWJWaWV3LCBAInBvaW50ZXI6IGNvYXJzZSIpKTsKKyAgICBFWFBFQ1RfRkFM
U0UoZXZhbHVhdGVNZWRpYVF1ZXJ5KHdlYlZpZXcsIEAicG9pbnRlcjogZmluZSIpKTsKKworICAg
IEVYUEVDVF9UUlVFKGV2YWx1YXRlTWVkaWFRdWVyeSh3ZWJWaWV3LCBAImFueS1wb2ludGVyIikp
OworICAgIEVYUEVDVF9GQUxTRShldmFsdWF0ZU1lZGlhUXVlcnkod2ViVmlldywgQCJhbnktcG9p
bnRlcjogbm9uZSIpKTsKKyAgICBFWFBFQ1RfVFJVRShldmFsdWF0ZU1lZGlhUXVlcnkod2ViVmll
dywgQCJhbnktcG9pbnRlcjogY29hcnNlIikpOworICAgIEVYUEVDVF9UUlVFKGV2YWx1YXRlTWVk
aWFRdWVyeSh3ZWJWaWV3LCBAImFueS1wb2ludGVyOiBmaW5lIikpOworfQorCisjZW5kaWYgLy8g
UExBVEZPUk0oTUFDQ0FUQUxZU1QpCisKICNlbmRpZiAvLyBQTEFURk9STShJT1MpIHx8IFBMQVRG
T1JNKE1BQ0NBVEFMWVNUKQpkaWZmIC0tZ2l0IGEvV2ViS2l0TGlicmFyaWVzL0NoYW5nZUxvZyBi
L1dlYktpdExpYnJhcmllcy9DaGFuZ2VMb2cKaW5kZXggMTYyNDQ2NDhkMmFhMzNhZDU3MmFkYjNj
Mzc0YTMxYzc0NzBjMTU3NC4uYzcyM2FiYjdiY2Y1YWE0OWFhMmU4ZDU4YzZjM2FhMDUyMTkwNjE0
YSAxMDA2NDQKLS0tIGEvV2ViS2l0TGlicmFyaWVzL0NoYW5nZUxvZworKysgYi9XZWJLaXRMaWJy
YXJpZXMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMjAtMDktMzAgIERldmluIFJvdXNz
byAgPGRyb3Vzc29AYXBwbGUuY29tPgorCisgICAgICAgIENTUyBob3ZlciBhbmQgInBvaW50ZXI6
IGZpbmUiIG1lZGlhIHF1ZXJpZXMgZG8gbm90IGV2YWx1YXRlIHRvIHRydWUgd2l0aCBpT1MgMTMu
NCBtb3VzZSBzdXBwb3J0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0yMDkyOTIKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzYwNjYzMTI0PgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2ViS2l0UHJpdmF0
ZUZyYW1ld29ya1N0dWJzL2lPUy8xMy9CYWNrQm9hcmRTZXJ2aWNlcy9CYWNrQm9hcmRTZXJ2aWNl
cy50YmQ6IEFkZGVkLgorICAgICAgICAqIFdlYktpdFByaXZhdGVGcmFtZXdvcmtTdHVicy9pT1Mv
MTQvQmFja0JvYXJkU2VydmljZXMvQmFja0JvYXJkU2VydmljZXMudGJkOiBBZGRlZC4KKyAgICAg
ICAgVXNlIGBCYWNrQm9hcmRTZXJ2aWNlc2AgdG8gbGlzdGVuIGZvciBtb3VzZSBkZXZpY2VzIGNo
YW5nZXMuCisKIDIwMjAtMDctMjYgIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5j
b20+CiAKICAgICAgICAgUkVHUkVTU0lPTiAocjI2NDY5MCk6IFsgaU9TIHdrMiBdIGVkaXRpbmcv
c2VsZWN0aW9uL3NoaWZ0LWNsaWNrLWluY2x1ZGVzLWV4aXN0aW5nLXNlbGVjdGlvbi5odG1sIGlz
IGEgZmxha3kgZmFpbHVyZQpkaWZmIC0tZ2l0IGEvV2ViS2l0TGlicmFyaWVzL1dlYktpdFByaXZh
dGVGcmFtZXdvcmtTdHVicy9pT1MvMTMvQmFja0JvYXJkU2VydmljZXMvQmFja0JvYXJkU2Vydmlj
ZXMudGJkIGIvV2ViS2l0TGlicmFyaWVzL1dlYktpdFByaXZhdGVGcmFtZXdvcmtTdHVicy9pT1Mv
MTMvQmFja0JvYXJkU2VydmljZXMvQmFja0JvYXJkU2VydmljZXMudGJkCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjAw
MjM0OGJkM2VlMGUxMzNhM2Q5NThmYmRlYzU3ZmY3ZmRiM2I3ZjcKLS0tIC9kZXYvbnVsbAorKysg
Yi9XZWJLaXRMaWJyYXJpZXMvV2ViS2l0UHJpdmF0ZUZyYW1ld29ya1N0dWJzL2lPUy8xMy9CYWNr
Qm9hcmRTZXJ2aWNlcy9CYWNrQm9hcmRTZXJ2aWNlcy50YmQKQEAgLTAsMCArMSw5IEBACistLS0g
IXRhcGktdGJkLXYzCithcmNoczogICAgICAgICAgIFsgeDg2XzY0LCBhcm02NCwgYXJtNjRlIF0K
K2luc3RhbGwtbmFtZTogICAgJy9TeXN0ZW0vTGlicmFyeS9Qcml2YXRlRnJhbWV3b3Jrcy9CYWNr
Qm9hcmRTZXJ2aWNlcy5mcmFtZXdvcmsvQmFja0JvYXJkU2VydmljZXMnCitvYmpjLWNvbnN0cmFp
bnQ6IG5vbmUKK3BsYXRmb3JtOiBpb3MKK2V4cG9ydHM6CisgIC0gYXJjaHM6ICAgICAgICAgICBb
IHg4Nl82NCwgYXJtNjQsIGFybTY0ZSBdCisgICAgb2JqYy1jbGFzc2VzOiAgICBbIEJLU01vdXNl
UG9pbnRlckRldmljZSwgQktTTW91c2VQb2ludGVyU2VydmljZSBdCisuLi4KZGlmZiAtLWdpdCBh
L1dlYktpdExpYnJhcmllcy9XZWJLaXRQcml2YXRlRnJhbWV3b3JrU3R1YnMvaU9TLzE0L0JhY2tC
b2FyZFNlcnZpY2VzL0JhY2tCb2FyZFNlcnZpY2VzLnRiZCBiL1dlYktpdExpYnJhcmllcy9XZWJL
aXRQcml2YXRlRnJhbWV3b3JrU3R1YnMvaU9TLzE0L0JhY2tCb2FyZFNlcnZpY2VzL0JhY2tCb2Fy
ZFNlcnZpY2VzLnRiZApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wMDIzNDhiZDNlZTBlMTMzYTNkOTU4ZmJkZWM1N2Zm
N2ZkYjNiN2Y3Ci0tLSAvZGV2L251bGwKKysrIGIvV2ViS2l0TGlicmFyaWVzL1dlYktpdFByaXZh
dGVGcmFtZXdvcmtTdHVicy9pT1MvMTQvQmFja0JvYXJkU2VydmljZXMvQmFja0JvYXJkU2Vydmlj
ZXMudGJkCkBAIC0wLDAgKzEsOSBAQAorLS0tICF0YXBpLXRiZC12MworYXJjaHM6ICAgICAgICAg
ICBbIHg4Nl82NCwgYXJtNjQsIGFybTY0ZSBdCitpbnN0YWxsLW5hbWU6ICAgICcvU3lzdGVtL0xp
YnJhcnkvUHJpdmF0ZUZyYW1ld29ya3MvQmFja0JvYXJkU2VydmljZXMuZnJhbWV3b3JrL0JhY2tC
b2FyZFNlcnZpY2VzJworb2JqYy1jb25zdHJhaW50OiBub25lCitwbGF0Zm9ybTogaW9zCitleHBv
cnRzOgorICAtIGFyY2hzOiAgICAgICAgICAgWyB4ODZfNjQsIGFybTY0LCBhcm02NGUgXQorICAg
IG9iamMtY2xhc3NlczogICAgWyBCS1NNb3VzZVBvaW50ZXJEZXZpY2UsIEJLU01vdXNlUG9pbnRl
clNlcnZpY2UgXQorLi4uCg==
</data>
<flag name="commit-queue"
          id="426157"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>410255</attachid>
            <date>2020-10-01 12:03:04 -0700</date>
            <delta_ts>2020-10-01 15:11:56 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-209292-20201001120303.patch</filename>
            <type>text/plain</type>
            <size>53220</size>
            <attacher name="Devin Rousso">hi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCBiNDFjZjdmNjQ1ZmZkYzYzMzQ2YmY1MDM5ZDBkZDliNzEwYTkwNGNlLi44
ZTA3OWMxZDU2N2VkNTFjYzZlZTc4NjJhMzI1NWU0YzQ5YzgyMWIxIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMjkgQEAKKzIwMjAtMDktMzAgIERldmluIFJvdXNzbyAgPGRyb3Vzc29AYXBwbGUuY29t
PgorCisgICAgICAgIENTUyBob3ZlciBhbmQgInBvaW50ZXI6IGZpbmUiIG1lZGlhIHF1ZXJpZXMg
ZG8gbm90IGV2YWx1YXRlIHRvIHRydWUgd2l0aCBpT1MgMTMuNCBtb3VzZSBzdXBwb3J0CisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDkyOTIKKyAgICAg
ICAgPHJkYXI6Ly9wcm9ibGVtLzYwNjYzMTI0PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIE9uIGlPUywgdGhlIHByaW1hcnkgcG9pbnRlciB3aWxsIGFs
d2F5cyBiZSB0b3VjaCBpbnB1dCwgc28gdGhlIGBob3ZlcmAvYHBvaW50ZXJgIG1lZGlhIHF1ZXJ5
CisgICAgICAgIHNob3VsZCBuZXZlciBjaGFuZ2UuIElmIGEgbW91c2UgaXMgY29ubmVjdGVkLCBo
b3dldmVyLCBgYW55LWhvdmVyYC9gYW55LXBvaW50ZXJgIHNob3VsZAorICAgICAgICBjaGFuZ2Ug
YXMgbm93IHRoZXJlIGlzIGF0IGxlYXN0IG9uZSBkZXZpY2UgdGhhdCBzdXBwb3J0cyBgaG92ZXJg
L2BmaW5lYC4gTm90ZSB0aGF0IGluIHRoZQorICAgICAgICBjYXNlIG9mIGBhbnktcG9pbnRlcmAg
dGhpcyBtZWFucyB0aGF0IGJvdGggYGNvYXJzZWAgYW5kIGBmaW5lYCB3aWxsIGFwcGx5LiBDYXRh
bHlzdCBhc3N1bWVzCisgICAgICAgIHRoYXQgdGhlcmUgaXMgYWx3YXlzIGEgbW91c2UgY29ubmVj
dGVkLgorCisgICAgICAgIFNwZWM6IGh0dHBzOi8vZHJhZnRzLmNzc3dnLm9yZy9tZWRpYXF1ZXJp
ZXMtNC8jYW55LWlucHV0CisKKyAgICAgICAgKiBjc3MvTWVkaWFRdWVyeUV2YWx1YXRvci5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpoYXNNb3VzZURldmljZSk6IEFkZGVkLgorICAgICAgICAoV2Vi
Q29yZTo6YW55SG92ZXJFdmFsdWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjphbnlQb2ludGVyRXZh
bHVhdGUpOgorCisgICAgICAgICogcGFnZS9DaHJvbWVDbGllbnQuaDoKKyAgICAgICAgKiBsb2Fk
ZXIvRW1wdHlDbGllbnRzLmg6CisgICAgICAgIChXZWJDb3JlOjpFbXB0eUNocm9tZUNsaWVudDo6
aGFzTW91c2VEZXZpY2UpOiBBZGRlZC4KKyAgICAgICAgUHJvdmlkZSBhIHdheSBmb3IgV2ViQ29y
ZSB0byBnZXQgdGhlIGN1cnJlbnQgc3RhdGUgb2Ygd2hldGhlciB0aGVyZSBhcmUgYW55IG1vdXNl
IGRldmljZXMuCisKIDIwMjAtMDktMzAgIEpvaG4gV2lsYW5kZXIgIDx3aWxhbmRlckBhcHBsZS5j
b20+CiAKICAgICAgICAgU3RvcmFnZSBBY2Nlc3MgQVBJOiBFbmFibGUgcGVyLXBhZ2Ugc3RvcmFn
ZSBhY2Nlc3Mgc2NvcGUgYW5kIGFsaWduIHRlc3QgY2FzZXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggMDFkNTRjMTAx
NmE4MjFmZmQyMzk2OWZmM2Q5MjFhM2I2OWVjZmRiNS4uODBlODliNWE0Y2EzYmRiOTZiNjZjMTBl
Y2YxYjgyNWE4YWIxNGVhNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysr
IGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSw3MiBAQAorMjAyMC0wOS0zMCAg
RGV2aW4gUm91c3NvICA8ZHJvdXNzb0BhcHBsZS5jb20+CisKKyAgICAgICAgQ1NTIGhvdmVyIGFu
ZCAicG9pbnRlcjogZmluZSIgbWVkaWEgcXVlcmllcyBkbyBub3QgZXZhbHVhdGUgdG8gdHJ1ZSB3
aXRoIGlPUyAxMy40IG1vdXNlIHN1cHBvcnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTIwOTI5MgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNjA2NjMx
MjQ+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgT24g
aU9TLCB0aGUgcHJpbWFyeSBwb2ludGVyIHdpbGwgYWx3YXlzIGJlIHRvdWNoIGlucHV0LCBzbyB0
aGUgYGhvdmVyYC9gcG9pbnRlcmAgbWVkaWEgcXVlcnkKKyAgICAgICAgc2hvdWxkIG5ldmVyIGNo
YW5nZS4gSWYgYSBtb3VzZSBpcyBjb25uZWN0ZWQsIGhvd2V2ZXIsIGBhbnktaG92ZXJgL2Bhbnkt
cG9pbnRlcmAgc2hvdWxkCisgICAgICAgIGNoYW5nZSBhcyBub3cgdGhlcmUgaXMgYXQgbGVhc3Qg
b25lIGRldmljZSB0aGF0IHN1cHBvcnRzIGBob3ZlcmAvYGZpbmVgLiBOb3RlIHRoYXQgaW4gdGhl
CisgICAgICAgIGNhc2Ugb2YgYGFueS1wb2ludGVyYCB0aGlzIG1lYW5zIHRoYXQgYm90aCBgY29h
cnNlYCBhbmQgYGZpbmVgIHdpbGwgYXBwbHkuIENhdGFseXN0IGFzc3VtZXMKKyAgICAgICAgdGhh
dCB0aGVyZSBpcyBhbHdheXMgYSBtb3VzZSBjb25uZWN0ZWQuCisKKyAgICAgICAgU3BlYzogaHR0
cHM6Ly9kcmFmdHMuY3Nzd2cub3JnL21lZGlhcXVlcmllcy00LyNhbnktaW5wdXQKKworICAgICAg
ICAqIFVJUHJvY2Vzcy9pb3MvV0tNb3VzZURldmljZU9ic2VydmVyLmg6IEFkZGVkLgorICAgICAg
ICAqIFVJUHJvY2Vzcy9pb3MvV0tNb3VzZURldmljZU9ic2VydmVyLm1tOiBBZGRlZC4KKyAgICAg
ICAgKCtbV0tNb3VzZURldmljZU9ic2VydmVyIHNoYXJlZEluc3RhbmNlXSk6CisgICAgICAgICgt
W1dLTW91c2VEZXZpY2VPYnNlcnZlciBkZWFsbG9jXSk6CisgICAgICAgICgtW1dLTW91c2VEZXZp
Y2VPYnNlcnZlciBhZGRXZWJQcm9jZXNzUHJveHk6XSk6CisgICAgICAgICgtW1dLTW91c2VEZXZp
Y2VPYnNlcnZlciByZW1vdmVXZWJQcm9jZXNzUHJveHk6XSk6CisgICAgICAgICgtW1dLTW91c2VE
ZXZpY2VPYnNlcnZlciBzdGFydF0pOgorICAgICAgICAoLVtXS01vdXNlRGV2aWNlT2JzZXJ2ZXIg
c3RvcF0pOgorICAgICAgICAoLVtXS01vdXNlRGV2aWNlT2JzZXJ2ZXIgbW91c2VQb2ludGVyRGV2
aWNlc0RpZENoYW5nZTpdKToKKyAgICAgICAgKC1bV0tNb3VzZURldmljZU9ic2VydmVyIF9zZXRI
YXNNb3VzZURldmljZUZvclRlc3Rpbmc6XSk6CisgICAgICAgIFVzZSBgQmFja0JvYXJkU2Vydmlj
ZXNgIHRvIGxpc3RlbiBmb3IgbW91c2UgZGV2aWNlcyBjaGFuZ2VzIGFuZCBub3RpZnkgYWxsIFdl
YlByb2Nlc3MuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5Lmg6CisgICAg
ICAgICogVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6Oldl
YlByb2Nlc3NQcm94eTo6Y29ubmVjdGlvbldpbGxPcGVuKToKKyAgICAgICAgKFdlYktpdDo6V2Vi
UHJvY2Vzc1Byb3h5OjpwbGF0Zm9ybUNvbm5lY3Rpb25XaWxsT3Blbik6IEFkZGVkLgorICAgICAg
ICAoV2ViS2l0OjpXZWJQcm9jZXNzUHJveHk6OnByb2Nlc3NXaWxsU2h1dERvd24pOgorICAgICAg
ICAoV2ViS2l0OjpXZWJQcm9jZXNzUHJveHk6OnBsYXRmb3JtUHJvY2Vzc1dpbGxTaHV0RG93bik6
IEFkZGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvV2ViUHJvY2Vzc1Byb3h5SU9TLm1tOgor
ICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUHJveHk6OnBsYXRmb3JtQ29ubmVjdGlvbldpbGxP
cGVuKTogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQcm94eTo6cGxhdGZvcm1Q
cm9jZXNzV2lsbFNodXREb3duKTogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQ
cm94eTo6c2V0SGFzTW91c2VEZXZpY2UpOiBBZGRlZC4KKyAgICAgICAgQXR0YWNoIHRvIHRoZSBz
aGFyZWQgYFdLTW91c2VEZXZpY2VPYnNlcnZlcmAgd2hlbiBjcmVhdGluZyB0aGUgV2ViUHJvY2Vz
cyBzbyB0aGF0IHRoZSBzaGFyZWQKKyAgICAgICAgYFdLTW91c2VEZXZpY2VPYnNlcnZlcmAga25v
d3MgdG8gbm90aWZ5IHRoYXQgaW5zdGFuY2Ugd2hlbiBtb3VzZSBkZXZpY2VzIGNoYW5nZS4KKwor
ICAgICAgICAqIFNoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmg6CisgICAgICAg
ICogU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwOgorICAgICAgICAoV2Vi
S2l0OjpXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzOjplbmNvZGUgY29uc3QpOgorICAgICAg
ICAoV2ViS2l0OjpXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzOjpkZWNvZGUpOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9Db2NvYS9XZWJQcm9jZXNzUG9vbENvY29hLm1tOgorICAgICAgICAoV2Vi
S2l0OjpXZWJQcm9jZXNzUG9vbDo6cGxhdGZvcm1Jbml0aWFsaXplV2ViUHJvY2Vzcyk6CisgICAg
ICAgIFVzZSB0aGUgY3VycmVudCBzdGF0ZSBvZiB0aGUgc2hhcmVkIGBXS01vdXNlRGV2aWNlT2Jz
ZXJ2ZXJgIHdoZW4gY3JlYXRpbmcgV2ViUHJvY2VzcyBpbnN0ZWFkCisgICAgICAgIG9mIHNlbmRp
bmcgYSBgU2V0SGFzTW91c2VEZXZpY2VgIG1lc3NhZ2UgaW1tZWRpYXRlbHkgYWZ0ZXIgdGhlIFdl
YlByb2Nlc3MgaXMgY3JlYXRlZC4KKworICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUHJvY2Vzcy5t
ZXNzYWdlcy5pbjoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlByb2Nlc3MuaDoKKyAgICAgICAg
KFdlYktpdDo6V2ViUHJvY2Vzczo6aGFzTW91c2VEZXZpY2UgY29uc3QpOiBBZGRlZC4KKyAgICAg
ICAgKiBXZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9j
ZXNzOjppbml0aWFsaXplV2ViUHJvY2Vzcyk6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6
OnNldEhhc01vdXNlRGV2aWNlKTogQWRkZWQuCisgICAgICAgIFVwZGF0ZSBzdHlsZSAoaW5jbHVk
aW5nIGBhbnktaG92ZXJgIGFuZCBgYW55LXBvaW50ZXJgKSB3aGVuZXZlciBtb3VzZSBkZXZpY2Vz
IGNoYW5nZS4KKworICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21l
Q2xpZW50Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVD
bGllbnQuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJDaHJvbWVDbGllbnQ6Omhhc01vdXNlRGV2
aWNlKTogQWRkZWQuCisgICAgICAgIFByb3ZpZGUgYSB3YXkgZm9yIFdlYkNvcmUgdG8gZ2V0IHRo
ZSBjdXJyZW50IHN0YXRlIG9mIHdoZXRoZXIgdGhlcmUgYXJlIGFueSBtb3VzZSBkZXZpY2VzLgor
CisgICAgICAgICogQ29uZmlndXJhdGlvbnMvV2ViS2l0LnhjY29uZmlnOgorICAgICAgICAqIFBs
YXRmb3JtL3NwaS9pb3MvQmFja0JvYXJkU2VydmljZXNTUEkuaDoKKyAgICAgICAgKiBQbGF0Zm9y
bS9zcGkvaW9zL0Jhc2VCb2FyZFNQSS5oOiBBZGRlZC4KKyAgICAgICAgKiBTb3VyY2VzQ29jb2Eu
dHh0OgorICAgICAgICAqIFdlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorCiAyMDIw
LTA5LTMwICBQZW5nIExpdSAgPHBlbmcubGl1NkBhcHBsZS5jb20+CiAKICAgICAgICAgW01lZGlh
IGluIEdQVSBQcm9jZXNzXSBFbmFibGUgSVBDIG1lc3NhZ2UgaGFuZGxlcnMgb2YgUmVtb3RlTWVk
aWFTZXNzaW9uSGVscGVyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L2lvcy9DaGFu
Z2VMb2cgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L2lvcy9DaGFuZ2VMb2cKaW5kZXggMTJlNjU1YjFl
Y2RkNWQ0NzBmM2VhNDBmYWM3ODM1ZmUxZjU3ZmJmYy4uZjg3YzA4NmIzNjE2OGE0YWI2NjhjOWI3
MWQ5ODU1MjUxZTNkNzE4OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9pb3MvQ2hh
bmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvaW9zL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDE1IEBACisyMDIwLTA5LTMwICBEZXZpbiBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNvbT4KKwor
ICAgICAgICBDU1MgaG92ZXIgYW5kICJwb2ludGVyOiBmaW5lIiBtZWRpYSBxdWVyaWVzIGRvIG5v
dCBldmFsdWF0ZSB0byB0cnVlIHdpdGggaU9TIDEzLjQgbW91c2Ugc3VwcG9ydAorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA5MjkyCisgICAgICAgIDxy
ZGFyOi8vcHJvYmxlbS82MDY2MzEyND4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudElPUy5oOgor
ICAgICAgICAoV2ViQ2hyb21lQ2xpZW50SU9TOjpoYXNNb3VzZURldmljZSk6IEFkZGVkLgorICAg
ICAgICBNb3VzZSBkZXZpY2VzIGFyZSBub3Qgc3VwcG9ydGVkIGZvciBXSzEuCisKIDIwMjAtMDkt
MjAgIERhcmluIEFkbGVyICA8ZGFyaW5AYXBwbGUuY29tPgogCiAgICAgICAgIE5leHQgc3RlcCB0
b3dhcmRzIGVsaW1pbmF0aW5nIGRlcHJlY2F0ZWQgbGVnYWN5IHBvc2l0aW9ucwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvY3NzL01lZGlhUXVlcnlFdmFsdWF0b3IuY3BwIGIvU291cmNlL1dl
YkNvcmUvY3NzL01lZGlhUXVlcnlFdmFsdWF0b3IuY3BwCmluZGV4IDgxMThiN2FiM2M1MGIzY2Vk
ODEyMGZjMTA2ZGNlOWM3MzE0MWFmZTQuLjdjNzUzMWRmODIyZGZhZjJlM2ViNzM4YjkxZmY1ZmQ5
NzRhZjRiMjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5RXZhbHVh
dG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvTWVkaWFRdWVyeUV2YWx1YXRvci5jcHAK
QEAgLTMzLDYgKzMzLDggQEAKICNpbmNsdWRlICJDU1NQcmltaXRpdmVWYWx1ZS5oIgogI2luY2x1
ZGUgIkNTU1RvTGVuZ3RoQ29udmVyc2lvbkRhdGEuaCIKICNpbmNsdWRlICJDU1NWYWx1ZUtleXdv
cmRzLmgiCisjaW5jbHVkZSAiQ2hyb21lLmgiCisjaW5jbHVkZSAiQ2hyb21lQ2xpZW50LmgiCiAj
aW5jbHVkZSAiRnJhbWUuaCIKICNpbmNsdWRlICJGcmFtZVZpZXcuaCIKICNpbmNsdWRlICJMb2dn
aW5nLmgiCkBAIC03MTIsNiArNzE0LDI3IEBAIHN0YXRpYyBib29sIHZpZGVvUGxheWFibGVJbmxp
bmVFdmFsdWF0ZShDU1NWYWx1ZSosIGNvbnN0IENTU1RvTGVuZ3RoQ29udmVyc2lvbkRhCiAgICAg
cmV0dXJuIGZyYW1lLnNldHRpbmdzKCkuYWxsb3dzSW5saW5lTWVkaWFQbGF5YmFjaygpOwogfQog
CitzdGF0aWMgYm9vbCBoYXNNb3VzZURldmljZShGcmFtZSYgZnJhbWUpCit7CisjaWYgUExBVEZP
Uk0oTUFDQ0FUQUxZU1QpCisgICAgVU5VU0VEX1BBUkFNKGZyYW1lKTsKKyAgICByZXR1cm4gdHJ1
ZTsKKyNlbHNlIC8vIFBMQVRGT1JNKE1BQ0NBVEFMWVNUKQorI2lmIFBMQVRGT1JNKElPUykKKyAg
ICBhdXRvKiBwYWdlID0gZnJhbWUucGFnZSgpOworICAgIGlmIChwYWdlICYmIHBhZ2UtPmNocm9t
ZSgpLmNsaWVudCgpLmhhc01vdXNlRGV2aWNlKCkpCisgICAgICAgIHJldHVybiB0cnVlOworI2Vs
c2UgLy8gUExBVEZPUk0oSU9TKQorICAgIFVOVVNFRF9QQVJBTShmcmFtZSk7CisjZW5kaWYgLy8g
UExBVEZPUk0oSU9TKQorI2lmIEVOQUJMRShUT1VDSF9FVkVOVFMpCisgICAgaWYgKHNjcmVlbkhh
c1RvdWNoRGV2aWNlKCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyNlbmRpZiAvLyBFTkFCTEUo
VE9VQ0hfRVZFTlRTKQorICAgIHJldHVybiB0cnVlOworI2VuZGlmIC8vIFBMQVRGT1JNKE1BQ0NB
VEFMWVNUKQorfQorCiBzdGF0aWMgYm9vbCBob3ZlckV2YWx1YXRlKENTU1ZhbHVlKiB2YWx1ZSwg
Y29uc3QgQ1NTVG9MZW5ndGhDb252ZXJzaW9uRGF0YSYsIEZyYW1lJiwgTWVkaWFGZWF0dXJlUHJl
Zml4KQogewogICAgIGlmICghaXM8Q1NTUHJpbWl0aXZlVmFsdWU+KHZhbHVlKSkgewpAQCAtNzMw
LDIyICs3NTMsMTMgQEAgc3RhdGljIGJvb2wgaG92ZXJFdmFsdWF0ZShDU1NWYWx1ZSogdmFsdWUs
IGNvbnN0IENTU1RvTGVuZ3RoQ29udmVyc2lvbkRhdGEmLCBGcmEKICAgICByZXR1cm4ga2V5d29y
ZCA9PSBDU1NWYWx1ZUhvdmVyOwogfQogCi1zdGF0aWMgYm9vbCBhbnlIb3ZlckV2YWx1YXRlKENT
U1ZhbHVlKiB2YWx1ZSwgY29uc3QgQ1NTVG9MZW5ndGhDb252ZXJzaW9uRGF0YSYsIEZyYW1lJiwg
TWVkaWFGZWF0dXJlUHJlZml4KQorc3RhdGljIGJvb2wgYW55SG92ZXJFdmFsdWF0ZShDU1NWYWx1
ZSogdmFsdWUsIGNvbnN0IENTU1RvTGVuZ3RoQ29udmVyc2lvbkRhdGEmLCBGcmFtZSYgZnJhbWUs
IE1lZGlhRmVhdHVyZVByZWZpeCkKIHsKLSAgICBpZiAoIWlzPENTU1ByaW1pdGl2ZVZhbHVlPih2
YWx1ZSkpIHsKLSNpZiBFTkFCTEUoVE9VQ0hfRVZFTlRTKQotICAgICAgICByZXR1cm4gIXNjcmVl
bkhhc1RvdWNoRGV2aWNlKCk7Ci0jZWxzZQotICAgICAgICByZXR1cm4gdHJ1ZTsKLSNlbmRpZgot
ICAgIH0KKyAgICBpZiAoIWlzPENTU1ByaW1pdGl2ZVZhbHVlPih2YWx1ZSkpCisgICAgICAgIHJl
dHVybiBoYXNNb3VzZURldmljZShmcmFtZSk7CiAKICAgICBhdXRvIGtleXdvcmQgPSBkb3duY2Fz
dDxDU1NQcmltaXRpdmVWYWx1ZT4oKnZhbHVlKS52YWx1ZUlEKCk7Ci0jaWYgRU5BQkxFKFRPVUNI
X0VWRU5UUykKLSAgICBpZiAoc2NyZWVuSGFzVG91Y2hEZXZpY2UoKSkKLSAgICAgICAgcmV0dXJu
IGtleXdvcmQgPT0gQ1NTVmFsdWVOb25lOwotI2VuZGlmCi0gICAgcmV0dXJuIGtleXdvcmQgPT0g
Q1NTVmFsdWVIb3ZlcjsKKyAgICByZXR1cm4gaGFzTW91c2VEZXZpY2UoZnJhbWUpID8gKGtleXdv
cmQgPT0gQ1NTVmFsdWVIb3ZlcikgOiAoa2V5d29yZCA9PSBDU1NWYWx1ZU5vbmUpOwogfQogCiBz
dGF0aWMgYm9vbCBwb2ludGVyRXZhbHVhdGUoQ1NTVmFsdWUqIHZhbHVlLCBjb25zdCBDU1NUb0xl
bmd0aENvbnZlcnNpb25EYXRhJiwgRnJhbWUmIGZyYW1lLCBNZWRpYUZlYXR1cmVQcmVmaXgpCkBA
IC03NjUsMTcgKzc3OSwyMiBAQCBzdGF0aWMgYm9vbCBwb2ludGVyRXZhbHVhdGUoQ1NTVmFsdWUq
IHZhbHVlLCBjb25zdCBDU1NUb0xlbmd0aENvbnZlcnNpb25EYXRhJiwgRgogICAgIHJldHVybiBr
ZXl3b3JkID09IENTU1ZhbHVlRmluZTsKIH0KIAotc3RhdGljIGJvb2wgYW55UG9pbnRlckV2YWx1
YXRlKENTU1ZhbHVlKiB2YWx1ZSwgY29uc3QgQ1NTVG9MZW5ndGhDb252ZXJzaW9uRGF0YSYsIEZy
YW1lJiwgTWVkaWFGZWF0dXJlUHJlZml4KQorc3RhdGljIGJvb2wgYW55UG9pbnRlckV2YWx1YXRl
KENTU1ZhbHVlKiB2YWx1ZSwgY29uc3QgQ1NTVG9MZW5ndGhDb252ZXJzaW9uRGF0YSYsIEZyYW1l
JiBmcmFtZSwgTWVkaWFGZWF0dXJlUHJlZml4KQogewogICAgIGlmICghaXM8Q1NTUHJpbWl0aXZl
VmFsdWU+KHZhbHVlKSkKICAgICAgICAgcmV0dXJuIHRydWU7CiAKICAgICBhdXRvIGtleXdvcmQg
PSBkb3duY2FzdDxDU1NQcmltaXRpdmVWYWx1ZT4oKnZhbHVlKS52YWx1ZUlEKCk7CisKKyAgICBp
ZiAoa2V5d29yZCA9PSBDU1NWYWx1ZUZpbmUpCisgICAgICAgIHJldHVybiBoYXNNb3VzZURldmlj
ZShmcmFtZSk7CisKICNpZiBFTkFCTEUoVE9VQ0hfRVZFTlRTKQotICAgIGlmIChzY3JlZW5IYXNU
b3VjaERldmljZSgpKQotICAgICAgICByZXR1cm4ga2V5d29yZCA9PSBDU1NWYWx1ZUNvYXJzZTsK
LSNlbmRpZgotICAgIHJldHVybiBrZXl3b3JkID09IENTU1ZhbHVlRmluZTsKKyAgICBpZiAoa2V5
d29yZCA9PSBDU1NWYWx1ZUNvYXJzZSkKKyAgICAgICAgcmV0dXJuIHNjcmVlbkhhc1RvdWNoRGV2
aWNlKCk7CisjZW5kaWYgLy8gRU5BQkxFKFRPVUNIX0VWRU5UUykKKworICAgIHJldHVybiBmYWxz
ZTsKIH0KIAogc3RhdGljIGJvb2wgcHJlZmVyc0RhcmtJbnRlcmZhY2VFdmFsdWF0ZShDU1NWYWx1
ZSogdmFsdWUsIGNvbnN0IENTU1RvTGVuZ3RoQ29udmVyc2lvbkRhdGEmLCBGcmFtZSYgZnJhbWUs
IE1lZGlhRmVhdHVyZVByZWZpeCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9F
bXB0eUNsaWVudHMuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuaAppbmRl
eCAzZTlkZTdkMjY2YTlkZWE2ZTFhMDM0NDZhNTllZjdmNDAwNjA5OTRlLi41Njk0OGEwY2UzM2Fi
YWRlZDhmYWI3OTRhMTI0YTU3MGExMjdkNTU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvRW1wdHlDbGllbnRzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xp
ZW50cy5oCkBAIC0xMDIsNiArMTAyLDEwIEBAIGNsYXNzIEVtcHR5Q2hyb21lQ2xpZW50IDogcHVi
bGljIENocm9tZUNsaWVudCB7CiAKICAgICBLZXlib2FyZFVJTW9kZSBrZXlib2FyZFVJTW9kZSgp
IGZpbmFsIHsgcmV0dXJuIEtleWJvYXJkQWNjZXNzRGVmYXVsdDsgfQogCisjaWYgUExBVEZPUk0o
SU9TKQorICAgIGJvb2wgaGFzTW91c2VEZXZpY2UoKSBmaW5hbCB7IHJldHVybiBmYWxzZTsgfQor
I2VuZGlmCisKICAgICB2b2lkIGludmFsaWRhdGVSb290Vmlldyhjb25zdCBJbnRSZWN0JikgZmlu
YWwgeyB9CiAgICAgdm9pZCBpbnZhbGlkYXRlQ29udGVudHNBbmRSb290Vmlldyhjb25zdCBJbnRS
ZWN0Jikgb3ZlcnJpZGUgeyB9CiAgICAgdm9pZCBpbnZhbGlkYXRlQ29udGVudHNGb3JTbG93U2Ny
b2xsKGNvbnN0IEludFJlY3QmKSBmaW5hbCB7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvQ2hyb21lQ2xpZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVudC5o
CmluZGV4IGZlNTlkYjg0YWVhY2E1Zjk5MTIxYjc5MGQwMDgwOTIwNjJmZjRjYzEuLmY4OGUwZjUw
NzRlNzc4Y2I4YWU5MDI1YTNmMjVkZGEzN2U5ZGYwNTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWVD
bGllbnQuaApAQCAtMTc4LDYgKzE3OCwxMCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHNl
dFN0YXR1c2JhclRleHQoY29uc3QgU3RyaW5nJikgPSAwOwogICAgIHZpcnR1YWwgS2V5Ym9hcmRV
SU1vZGUga2V5Ym9hcmRVSU1vZGUoKSA9IDA7CiAKKyNpZiBQTEFURk9STShJT1MpCisgICAgdmly
dHVhbCBib29sIGhhc01vdXNlRGV2aWNlKCkgPSAwOworI2VuZGlmCisKICAgICB2aXJ0dWFsIGJv
b2wgc3VwcG9ydHNJbW1lZGlhdGVJbnZhbGlkYXRpb24oKSB7IHJldHVybiBmYWxzZTsgfQogICAg
IHZpcnR1YWwgdm9pZCBpbnZhbGlkYXRlUm9vdFZpZXcoY29uc3QgSW50UmVjdCYpID0gMDsKICAg
ICB2aXJ0dWFsIHZvaWQgaW52YWxpZGF0ZUNvbnRlbnRzQW5kUm9vdFZpZXcoY29uc3QgSW50UmVj
dCYpID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ29uZmlndXJhdGlvbnMvV2ViS2l0
LnhjY29uZmlnIGIvU291cmNlL1dlYktpdC9Db25maWd1cmF0aW9ucy9XZWJLaXQueGNjb25maWcK
aW5kZXggNWY3NWVjYmIxNDljNTUxYTQ1MTFhOTA2ZmQ3ZjQzYzE3ZTk4ODkyMS4uY2U3MTg1OWRk
YTkwNTRhZGZjMDQ1NTg0MDdmMTY0ZTM3ZTM2ZmY3YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9Db25maWd1cmF0aW9ucy9XZWJLaXQueGNjb25maWcKKysrIGIvU291cmNlL1dlYktpdC9Db25m
aWd1cmF0aW9ucy9XZWJLaXQueGNjb25maWcKQEAgLTYwLDYgKzYwLDEwIEBAIFdLX0FTU0VSVElP
Tl9TRVJWSUNFU19MREZMQUdTX2FwcGxldHZvcyA9IC1mcmFtZXdvcmsgQXNzZXJ0aW9uU2Vydmlj
ZXM7CiBXS19BU1NFUlRJT05fU0VSVklDRVNfTERGTEFHU19hcHBsZXR2c2ltdWxhdG9yID0gLWZy
YW1ld29yayBBc3NlcnRpb25TZXJ2aWNlczsKIFdLX0FTU0VSVElPTl9TRVJWSUNFU19MREZMQUdT
X21hY2NhdGFseXN0ID0gLWZyYW1ld29yayBBc3NlcnRpb25TZXJ2aWNlczsKIAorV0tfQkFDS0JP
QVJEX1NFUlZJQ0VTX0xERkxBR1MgPSAkKFdLX0JBQ0tCT0FSRF9TRVJWSUNFU19MREZMQUdTXyQo
V0tfUExBVEZPUk1fTkFNRSkpOworV0tfQkFDS0JPQVJEX1NFUlZJQ0VTX0xERkxBR1NfaXBob25l
b3MgPSAtZnJhbWV3b3JrIEJhY2tCb2FyZFNlcnZpY2VzOworV0tfQkFDS0JPQVJEX1NFUlZJQ0VT
X0xERkxBR1NfaXBob25lc2ltdWxhdG9yID0gLWZyYW1ld29yayBCYWNrQm9hcmRTZXJ2aWNlczsK
KwogV0tfUlVOTklOR0JPQVJEX1NFUlZJQ0VTX0xERkxBR1MgPSAkKFdLX1JVTk5JTkdCT0FSRF9T
RVJWSUNFU19MREZMQUdTXyQoV0tfQ09DT0FfVE9VQ0gpKTsKIFdLX1JVTk5JTkdCT0FSRF9TRVJW
SUNFU19MREZMQUdTX2NvY29hdG91Y2ggPSAtZnJhbWV3b3JrIFJ1bm5pbmdCb2FyZFNlcnZpY2Vz
OwogCkBAIC0xMjMsNyArMTI3LDcgQEAgV0tfQVVUSEtJVF9MREZMQUdTX0lPU19TSU5DRV8xMyA9
IC1mcmFtZXdvcmsgQXV0aEtpdDsKIFdLX0FVVEhLSVRfTERGTEFHU19tYWNvc3ggPSAkKFdLX0FV
VEhLSVRfTERGTEFHUyQoV0tfTUFDT1NfMTAxNSkpOwogV0tfQVVUSEtJVF9MREZMQUdTX01BQ09T
X1NJTkNFXzEwMTUgPSAtZnJhbWV3b3JrIEF1dGhLaXQ7CiAKLUZSQU1FV09SS19BTkRfTElCUkFS
WV9MREZMQUdTID0gLWxvYmpjIC1mcmFtZXdvcmsgQ0ZOZXR3b3JrIC1mcmFtZXdvcmsgQ29yZUF1
ZGlvIC1mcmFtZXdvcmsgQ29yZUZvdW5kYXRpb24gLWZyYW1ld29yayBDb3JlR3JhcGhpY3MgLWZy
YW1ld29yayBDb3JlVGV4dCAtZnJhbWV3b3JrIEZvdW5kYXRpb24gLWZyYW1ld29yayBJbWFnZUlP
IC1mcmFtZXdvcmsgSU9LaXQgLWZyYW1ld29yayBJT1N1cmZhY2UgLWZyYW1ld29yayBXZWJLaXRM
ZWdhY3kgLWxuZXR3b3JrICQoV0tfQUNDRVNTSUJJTElUWV9MREZMQUdTKSAkKFdLX0FQUEtJVF9M
REZMQUdTKSAkKFdLX0FTU0VSVElPTl9TRVJWSUNFU19MREZMQUdTKSAkKFdLX1JVTk5JTkdCT0FS
RF9TRVJWSUNFU19MREZMQUdTKSAkKFdLX0FVVEhLSVRfTERGTEFHUykgJChXS19DQVJCT05fTERG
TEFHUykgJChXS19DT1JFX1BSRURJQ1RJT05fTERGTEFHUykgJChXS19DT1JFX1NFUlZJQ0VTX0xE
RkxBR1MpICQoV0tfR1JBUEhJQ1NfU0VSVklDRVNfTERGTEFHUykgJChXS19MSUJTQU5EQk9YX0xE
RkxBR1MpICQoV0tfTElCV0VCUlRDX0xERkxBR1MpICQoV0tfTU9CSUxFX0NPUkVfU0VSVklDRVNf
TERGTEFHUykgJChXS19NT0JJTEVfR0VTVEFMVF9MREZMQUdTKSAkKFdLX1BERktJVF9MREZMQUdT
KSAkKFdLX1NBRkVfQlJPV1NJTkdfTERGTEFHUykgJChXS19TRUNVUklUWV9JTlRFUkZBQ0VfTERG
TEFHUykgJChXS19VSUtJVF9MREZMQUdTKSAkKFdLX1VSTF9GT1JNQVRUSU5HX0xERkxBR1MpICQo
V0tfV0VCSU5TUEVDVE9SVUlfTERGTEFHUyk7CitGUkFNRVdPUktfQU5EX0xJQlJBUllfTERGTEFH
UyA9IC1sb2JqYyAtZnJhbWV3b3JrIENGTmV0d29yayAtZnJhbWV3b3JrIENvcmVBdWRpbyAtZnJh
bWV3b3JrIENvcmVGb3VuZGF0aW9uIC1mcmFtZXdvcmsgQ29yZUdyYXBoaWNzIC1mcmFtZXdvcmsg
Q29yZVRleHQgLWZyYW1ld29yayBGb3VuZGF0aW9uIC1mcmFtZXdvcmsgSW1hZ2VJTyAtZnJhbWV3
b3JrIElPS2l0IC1mcmFtZXdvcmsgSU9TdXJmYWNlIC1mcmFtZXdvcmsgV2ViS2l0TGVnYWN5IC1s
bmV0d29yayAkKFdLX0FDQ0VTU0lCSUxJVFlfTERGTEFHUykgJChXS19BUFBLSVRfTERGTEFHUykg
JChXS19BU1NFUlRJT05fU0VSVklDRVNfTERGTEFHUykgJChXS19CQUNLQk9BUkRfU0VSVklDRVNf
TERGTEFHUykgJChXS19SVU5OSU5HQk9BUkRfU0VSVklDRVNfTERGTEFHUykgJChXS19BVVRIS0lU
X0xERkxBR1MpICQoV0tfQ0FSQk9OX0xERkxBR1MpICQoV0tfQ09SRV9QUkVESUNUSU9OX0xERkxB
R1MpICQoV0tfQ09SRV9TRVJWSUNFU19MREZMQUdTKSAkKFdLX0dSQVBISUNTX1NFUlZJQ0VTX0xE
RkxBR1MpICQoV0tfTElCU0FOREJPWF9MREZMQUdTKSAkKFdLX0xJQldFQlJUQ19MREZMQUdTKSAk
KFdLX01PQklMRV9DT1JFX1NFUlZJQ0VTX0xERkxBR1MpICQoV0tfTU9CSUxFX0dFU1RBTFRfTERG
TEFHUykgJChXS19QREZLSVRfTERGTEFHUykgJChXS19TQUZFX0JST1dTSU5HX0xERkxBR1MpICQo
V0tfU0VDVVJJVFlfSU5URVJGQUNFX0xERkxBR1MpICQoV0tfVUlLSVRfTERGTEFHUykgJChXS19V
UkxfRk9STUFUVElOR19MREZMQUdTKSAkKFdLX1dFQklOU1BFQ1RPUlVJX0xERkxBR1MpOwogCiAv
LyBQcmV2ZW50IEMrKyBzdGFuZGFyZCBsaWJyYXJ5IGJhc2ljX3N0cmluZ3N0cmVhbSwgb3BlcmF0
b3IgbmV3LCBkZWxldGUgYW5kIHRoZWlyIHJlbGF0ZWQgZXhjZXB0aW9uIHR5cGVzIGZyb20gYmVp
bmcgZXhwb3J0ZWQgYXMgd2VhayBzeW1ib2xzLgogVU5FWFBPUlRFRF9TWU1CT0xfTERGTEFHUyA9
IC1XbCwtdW5leHBvcnRlZF9zeW1ib2wgLVdsLF9fWlRJU3Q5YmFkX2FsbG9jIC1XbCwtdW5leHBv
cnRlZF9zeW1ib2wgLVdsLF9fWlRJU3Q5ZXhjZXB0aW9uIC1XbCwtdW5leHBvcnRlZF9zeW1ib2wg
LVdsLF9fWlRTU3Q5YmFkX2FsbG9jIC1XbCwtdW5leHBvcnRlZF9zeW1ib2wgLVdsLF9fWlRTU3Q5
ZXhjZXB0aW9uIC1XbCwtdW5leHBvcnRlZF9zeW1ib2wgLVdsLF9fWmRsUHZTXyAtV2wsLXVuZXhw
b3J0ZWRfc3ltYm9sIC1XbCxfX1pud21QdiAtV2wsLXVuZXhwb3J0ZWRfc3ltYm9sIC1XbCxfX1pu
d20gLVdsLC11bmV4cG9ydGVkX3N5bWJvbCAtV2wsX19aTlN0M19fMThmdW5jdGlvbklGdk43V2Vi
Q29yZTEyUG9saWN5QWN0aW9uRUVFQzJFT1M0XyAtV2wsLXVuZXhwb3J0ZWRfc3ltYm9sIC1XbCxf
X1pOU3QzX18xOGZ1bmN0aW9uSUZ2TjdXZWJDb3JlMTJQb2xpY3lBY3Rpb25FRUVDMUVPUzRfIC1X
bCwtdW5leHBvcnRlZF9zeW1ib2wgLVdsLF9fWk5TdDNfXzE4ZnVuY3Rpb25JRnZON1dlYkNvcmUx
MlBvbGljeUFjdGlvbkVFRWFTRURuIC1XbCwtdW5leHBvcnRlZF9zeW1ib2wgLVdsLF9fWk5LU3Qz
X18xOGZ1bmN0aW9uSUZ2TjdXZWJDb3JlMTJQb2xpY3lBY3Rpb25FRUVjbEVTMl8gLVdsLC11bmV4
cG9ydGVkX3N5bWJvbCAtV2wsX19aTlN0M19fMThmdW5jdGlvbklGdk43V2ViQ29yZTEyUG9saWN5
QWN0aW9uRUVFNHN3YXBFUlM0XyAtV2wsLXVuZXhwb3J0ZWRfc3ltYm9sIC1XbCxfX1pOU3QzX18x
OGZ1bmN0aW9uSUZ2TjdXZWJDb3JlMTJQb2xpY3lBY3Rpb25FRUVDMUVSS1M0XyAtV2wsLXVuZXhw
b3J0ZWRfc3ltYm9sIC1XbCxfX1pOU3QzX18xOGZ1bmN0aW9uSUZ2TjdXZWJDb3JlMTJQb2xpY3lB
Y3Rpb25FRUVDMkVSS1M0XyAtV2wsLXVuZXhwb3J0ZWRfc3ltYm9sIC1XbCxfX1pOU3QzX18xOGZ1
bmN0aW9uSUZ2TjdXZWJDb3JlMTJQb2xpY3lBY3Rpb25FRUVEMUV2IC1XbCwtdW5leHBvcnRlZF9z
eW1ib2wgLVdsLF9fWk5TdDNfXzE4ZnVuY3Rpb25JRnZON1dlYkNvcmUxMlBvbGljeUFjdGlvbkVF
RUQyRXYgLVdsLC11bmV4cG9ydGVkX3N5bWJvbCAtV2wsX19aTlN0M19fMThmdW5jdGlvbklGdk43
V2ViQ29yZTEyUG9saWN5QWN0aW9uRUVFYVNFUktTNF8gLVdsLC11bmV4cG9ydGVkX3N5bWJvbCAt
V2wsX19aVFZOU3QzX18xMTdiYWRfZnVuY3Rpb25fY2FsbEUgLVdsLC11bmV4cG9ydGVkX3N5bWJv
bCAtV2wsX19aVENOU3QzX18xMThiYXNpY19zdHJpbmdzdHJlYW1JY05TXzExY2hhcl90cmFpdHNJ
Y0VFTlNfOWFsbG9jYXRvckljRUVFRTBfTlNfMTNiYXNpY19pc3RyZWFtSWNTMl9FRSAtV2wsLXVu
ZXhwb3J0ZWRfc3ltYm9sIC1XbCxfX1pUQ05TdDNfXzExOGJhc2ljX3N0cmluZ3N0cmVhbUljTlNf
MTFjaGFyX3RyYWl0c0ljRUVOU185YWxsb2NhdG9ySWNFRUVFMF9OU18xNGJhc2ljX2lvc3RyZWFt
SWNTMl9FRSAtV2wsLXVuZXhwb3J0ZWRfc3ltYm9sIC1XbCxfX1pUQ05TdDNfXzExOGJhc2ljX3N0
cmluZ3N0cmVhbUljTlNfMTFjaGFyX3RyYWl0c0ljRUVOU185YWxsb2NhdG9ySWNFRUVFMTZfTlNf
MTNiYXNpY19vc3RyZWFtSWNTMl9FRSAtV2wsLXVuZXhwb3J0ZWRfc3ltYm9sIC1XbCxfX1pUVE5T
dDNfXzExOGJhc2ljX3N0cmluZ3N0cmVhbUljTlNfMTFjaGFyX3RyYWl0c0ljRUVOU185YWxsb2Nh
dG9ySWNFRUVFIC1XbCwtdW5leHBvcnRlZF9zeW1ib2wgLVdsLF9fWlRWTlN0M19fMTE1YmFzaWNf
c3RyaW5nYnVmSWNOU18xMWNoYXJfdHJhaXRzSWNFRU5TXzlhbGxvY2F0b3JJY0VFRUUgLVdsLC11
bmV4cG9ydGVkX3N5bWJvbCAtV2wsX19aVFZOU3QzX18xMThiYXNpY19zdHJpbmdzdHJlYW1JY05T
XzExY2hhcl90cmFpdHNJY0VFTlNfOWFsbG9jYXRvckljRUVFRSAtV2wsLXVuZXhwb3J0ZWRfc3lt
Ym9sIC1XbCxfX1pUQ05TdDNfXzExOGJhc2ljX3N0cmluZ3N0cmVhbUljTlNfMTFjaGFyX3RyYWl0
c0ljRUVOU185YWxsb2NhdG9ySWNFRUVFOF9OU18xM2Jhc2ljX29zdHJlYW1JY1MyX0VFOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9zcGkvaW9zL0JhY2tCb2FyZFNlcnZpY2Vz
U1BJLmggYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL3NwaS9pb3MvQmFja0JvYXJkU2VydmljZXNT
UEkuaAppbmRleCA2ZDhkODk0M2U0Y2MzY2E3OTlmMzcyMjE0NDEzNjkyNDA5ZDc5NjM3Li4wOTAx
NGQ0NDFlMWFkOWIwZjRmMjcwMzdiZGMxMGMyMzNkNDVlYzFhIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1BsYXRmb3JtL3NwaS9pb3MvQmFja0JvYXJkU2VydmljZXNTUEkuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1BsYXRmb3JtL3NwaS9pb3MvQmFja0JvYXJkU2VydmljZXNTUEkuaApAQCAtMjcs
MTEgKzI3LDI3IEBACiAKICNpbXBvcnQgPEJhY2tCb2FyZFNlcnZpY2VzL0JLU0FuaW1hdGlvbkZl
bmNlLmg+CiAjaW1wb3J0IDxCYWNrQm9hcmRTZXJ2aWNlcy9CS1NBbmltYXRpb25GZW5jZV9Qcml2
YXRlLmg+CisjaW1wb3J0IDxCYWNrQm9hcmRTZXJ2aWNlcy9CS1NNb3VzZVBvaW50ZXJTZXJ2aWNl
Lmg+CiAKICNlbHNlCiAKKyNpbXBvcnQgIkJhc2VCb2FyZFNQSS5oIgorCiBAaW50ZXJmYWNlIEJL
U0FuaW1hdGlvbkZlbmNlSGFuZGxlIDogTlNPYmplY3QKIC0gKG1hY2hfcG9ydF90KUNBUG9ydDsK
IEBlbmQKIAorQGNsYXNzIEJLU01vdXNlUG9pbnRlckRldmljZTsKKworQHByb3RvY29sIEJLU01v
dXNlUG9pbnRlckRldmljZU9ic2VydmVyIDxOU09iamVjdD4KK0BvcHRpb25hbAorLSAodm9pZClt
b3VzZVBvaW50ZXJEZXZpY2VzRGlkQ29ubmVjdDooTlNTZXQ8QktTTW91c2VQb2ludGVyRGV2aWNl
ICo+ICopbW91c2VQb2ludGVyRGV2aWNlczsKKy0gKHZvaWQpbW91c2VQb2ludGVyRGV2aWNlc0Rp
ZERpc2Nvbm5lY3Q6KE5TU2V0PEJLU01vdXNlUG9pbnRlckRldmljZSAqPiAqKW1vdXNlUG9pbnRl
ckRldmljZXM7CitAZW5kCisKK0BpbnRlcmZhY2UgQktTTW91c2VQb2ludGVyU2VydmljZSA6IE5T
T2JqZWN0CisrIChCS1NNb3VzZVBvaW50ZXJTZXJ2aWNlICopc2hhcmVkSW5zdGFuY2U7CistIChp
ZDxCU0ludmFsaWRhdGFibGU+KWFkZFBvaW50ZXJEZXZpY2VPYnNlcnZlcjooaWQ8QktTTW91c2VQ
b2ludGVyRGV2aWNlT2JzZXJ2ZXI+KW9ic2VydmVyOworQGVuZAorCiAjZW5kaWYgLy8gVVNFKEFQ
UExFX0lOVEVSTkFMX1NESykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vc3Bp
L2lvcy9CYXNlQm9hcmRTUEkuaCBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vc3BpL2lvcy9CYXNl
Qm9hcmRTUEkuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hYjA0MTg2OTViOTBmZDgzMWI4ZDYxYWQ4MTg5YTBjMzk2
Y2RkYjQwCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9zcGkvaW9z
L0Jhc2VCb2FyZFNQSS5oCkBAIC0wLDAgKzEsMzYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBg
YEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJ
QlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWYgVVNFKEFQ
UExFX0lOVEVSTkFMX1NESykKKworI2ltcG9ydCA8QmFzZUJvYXJkL0JTSW52YWxpZGF0YWJsZS5o
PgorCisjZWxzZQorCitAcHJvdG9jb2wgQlNJbnZhbGlkYXRhYmxlIDxOU09iamVjdD4KKy0gKHZv
aWQpaW52YWxpZGF0ZTsKK0BlbmQKKworI2VuZGlmIC8vIFVTRShBUFBMRV9JTlRFUk5BTF9TREsp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJh
bWV0ZXJzLmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFt
ZXRlcnMuY3BwCmluZGV4IGM3YTU5YTA0ZGNiZDE5M2ZkNWEyYTAwMzIyZDg1NWU4NTUxZTI5MDEu
LjQ2NDMxZWFjMjU2ZDNhY2IzMWQxNjc4YmFhN2IyZDI4ZjAyZmE4ZmEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwCkBA
IC04NSw2ICs4NSw5IEBAIHZvaWQgV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyczo6ZW5jb2Rl
KElQQzo6RW5jb2RlciYgZW5jb2RlcikgY29uc3QKICNlbmRpZgogICAgIGVuY29kZXIgPDwgdGV4
dENoZWNrZXJTdGF0ZTsKICAgICBlbmNvZGVyIDw8IGZ1bGxLZXlib2FyZEFjY2Vzc0VuYWJsZWQ7
CisjaWYgUExBVEZPUk0oSU9TKQorICAgIGVuY29kZXIgPDwgaGFzTW91c2VEZXZpY2U7CisjZW5k
aWYKICAgICBlbmNvZGVyIDw8IGRlZmF1bHRSZXF1ZXN0VGltZW91dEludGVydmFsOwogICAgIGVu
Y29kZXIgPDwgYmFja0ZvcndhcmRDYWNoZUNhcGFjaXR5OwogI2lmIFBMQVRGT1JNKENPQ09BKQpA
QCAtMjkzLDYgKzI5NiwxMCBAQCBib29sIFdlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnM6OmRl
Y29kZShJUEM6OkRlY29kZXImIGRlY29kZXIsIFdlYlByb2Nlc3NDcmVhdAogICAgICAgICByZXR1
cm4gZmFsc2U7CiAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShwYXJhbWV0ZXJzLmZ1bGxLZXlib2Fy
ZEFjY2Vzc0VuYWJsZWQpKQogICAgICAgICByZXR1cm4gZmFsc2U7CisjaWYgUExBVEZPUk0oSU9T
KQorICAgIGlmICghZGVjb2Rlci5kZWNvZGUocGFyYW1ldGVycy5oYXNNb3VzZURldmljZSkpCisg
ICAgICAgIHJldHVybiBmYWxzZTsKKyNlbmRpZgogICAgIGlmICghZGVjb2Rlci5kZWNvZGUocGFy
YW1ldGVycy5kZWZhdWx0UmVxdWVzdFRpbWVvdXRJbnRlcnZhbCkpCiAgICAgICAgIHJldHVybiBm
YWxzZTsKICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHBhcmFtZXRlcnMuYmFja0ZvcndhcmRDYWNo
ZUNhcGFjaXR5KSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByb2Nlc3ND
cmVhdGlvblBhcmFtZXRlcnMuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByb2Nlc3NDcmVh
dGlvblBhcmFtZXRlcnMuaAppbmRleCAwZDNhMjk2NzcxNTM3ZmMzMWUxMmY1MDExOTg2MzYzZGFj
MTA5MWQ5Li43NDBlODA2YmY0MWY4MzU4Nzc3NjU0Y2ExMTU0NzNlMmI1OWUzMDNiIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgK
KysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5o
CkBAIC0xMTcsNiArMTE3LDkgQEAgc3RydWN0IFdlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMg
ewogICAgIGJvb2wgc2hvdWxkU3VwcHJlc3NNZW1vcnlQcmVzc3VyZUhhbmRsZXIgeyBmYWxzZSB9
OwogICAgIGJvb2wgc2hvdWxkVXNlRm9udFNtb290aGluZyB7IHRydWUgfTsKICAgICBib29sIGZ1
bGxLZXlib2FyZEFjY2Vzc0VuYWJsZWQgeyBmYWxzZSB9OworI2lmIFBMQVRGT1JNKElPUykKKyAg
ICBib29sIGhhc01vdXNlRGV2aWNlIHsgZmFsc2UgfTsKKyNlbmRpZgogICAgIGJvb2wgbWVtb3J5
Q2FjaGVEaXNhYmxlZCB7IGZhbHNlIH07CiAgICAgYm9vbCBhdHRyU3R5bGVFbmFibGVkIHsgZmFs
c2UgfTsKICAgICBib29sIHVzZUdQVVByb2Nlc3NGb3JNZWRpYUVuYWJsZWQgeyBmYWxzZSB9Owpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9Tb3VyY2VzQ29jb2EudHh0IGIvU291cmNlL1dlYktp
dC9Tb3VyY2VzQ29jb2EudHh0CmluZGV4IGI2ZTNiNGRiYWI5MDQzMDkwNDBhOWQ3M2ZhMjZiZDM4
NTliODc1ZDguLjYyN2IwNjEzODVjZWU3MjNjM2Y0OTZhYzNmNmViN2NmYjQzNTcxNDIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU291cmNlc0NvY29hLnR4dAorKysgYi9Tb3VyY2UvV2ViS2l0
L1NvdXJjZXNDb2NvYS50eHQKQEAgLTQ2MCw2ICs0NjAsNyBAQCBVSVByb2Nlc3MvaW9zL1dLR2Vv
bG9jYXRpb25Qcm92aWRlcklPUy5tbQogVUlQcm9jZXNzL2lvcy9XS0dlb2xvY2F0aW9uUHJvdmlk
ZXJJT1NPYmpDU2VjdXJpdHlPcmlnaW4ubW0KIFVJUHJvY2Vzcy9pb3MvV0tIaWdobGlnaHRMb25n
UHJlc3NHZXN0dXJlUmVjb2duaXplci5tbQogVUlQcm9jZXNzL2lvcy9XS0tleWJvYXJkU2Nyb2xs
aW5nQW5pbWF0b3IubW0KK1VJUHJvY2Vzcy9pb3MvV0tNb3VzZURldmljZU9ic2VydmVyLm1tCiBV
SVByb2Nlc3MvaW9zL1dLTW91c2VHZXN0dXJlUmVjb2duaXplci5tbQogVUlQcm9jZXNzL2lvcy9X
S1Bhc3N3b3JkVmlldy5tbQogVUlQcm9jZXNzL2lvcy9XS1BERlBhZ2VOdW1iZXJJbmRpY2F0b3Iu
bW0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlByb2Nlc3NQ
b29sQ29jb2EubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJQcm9jZXNzUG9v
bENvY29hLm1tCmluZGV4IDg0NzJhZTkyMDIyZWJlZDBmNGFkN2UxMjQ5NDZjODBlMDE1ZjYxMmQu
LjJhNjE5MjkxYjA0OTJkMWU1YWZiNTI4NGZhMTExNDIyMTEwNGYxM2UgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlByb2Nlc3NQb29sQ29jb2EubW0KKysrIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViUHJvY2Vzc1Bvb2xDb2NvYS5tbQpAQCAt
ODgsNiArODgsMTAgQEAKICNpbXBvcnQgPHBhbC9zcGkvaW9zL01vYmlsZUdlc3RhbHRTUEkuaD4K
ICNlbmRpZgogCisjaWYgUExBVEZPUk0oSU9TKQorI2ltcG9ydCAiV0tNb3VzZURldmljZU9ic2Vy
dmVyLmgiCisjZW5kaWYKKwogI2lmIFBMQVRGT1JNKENPQ09BKQogI2ltcG9ydCA8V2ViQ29yZS9T
eXN0ZW1CYXR0ZXJ5Lmg+CiAjZW5kaWYKQEAgLTQ4NSw2ICs0ODksMTAgQEAgdm9pZCBXZWJQcm9j
ZXNzUG9vbDo6cGxhdGZvcm1Jbml0aWFsaXplV2ViUHJvY2Vzcyhjb25zdCBXZWJQcm9jZXNzUHJv
eHkmIHByb2Nlc3MKICNpZiBIQVZFKENBVEFMWVNUX1VTRVJfSU5URVJGQUNFX0lESU9NX0FORF9T
Q0FMRV9GQUNUT1IpCiAgICAgcGFyYW1ldGVycy5vdmVycmlkZVVzZXJJbnRlcmZhY2VJZGlvbUFu
ZFNjYWxlID0geyBfVUlBcHBsaWNhdGlvbkNhdGFseXN0VXNlckludGVyZmFjZUlkaW9tKCksIF9V
SUFwcGxpY2F0aW9uQ2F0YWx5c3RTY2FsZUZhY3RvcigpIH07CiAjZW5kaWYKKworI2lmIFBMQVRG
T1JNKElPUykKKyAgICBwYXJhbWV0ZXJzLmhhc01vdXNlRGV2aWNlID0gW1tXS01vdXNlRGV2aWNl
T2JzZXJ2ZXIgc2hhcmVkSW5zdGFuY2VdIGhhc01vdXNlRGV2aWNlXTsKKyNlbmRpZgogfQogCiB2
b2lkIFdlYlByb2Nlc3NQb29sOjpwbGF0Zm9ybUluaXRpYWxpemVOZXR3b3JrUHJvY2VzcyhOZXR3
b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyYgcGFyYW1ldGVycykKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwCmluZGV4IDVlMmM3MDhmMjJmOTdiZWFmMzcw
OTM1MmNiNjllM2Q0YzI4ZTFkOWIuLjE2ZTA5NDM2NDk2MTQ2ZGZmYjFkODdjOTMwYjZkMzQxZTVk
YTdmN2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94
eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcApA
QCAtMzk4LDggKzM5OCwxNiBAQCB2b2lkIFdlYlByb2Nlc3NQcm94eTo6Y29ubmVjdGlvbldpbGxP
cGVuKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbikKICNpZiBFTkFCTEUoU0VDX0lURU1fU0hJ
TSkKICAgICBTZWNJdGVtU2hpbVByb3h5OjpzaW5nbGV0b24oKS5pbml0aWFsaXplQ29ubmVjdGlv
bihjb25uZWN0aW9uKTsKICNlbmRpZgorCisgICAgcGxhdGZvcm1Db25uZWN0aW9uV2lsbE9wZW4o
KTsKIH0KIAorI2lmICFQTEFURk9STShJT1MpCit2b2lkIFdlYlByb2Nlc3NQcm94eTo6cGxhdGZv
cm1Db25uZWN0aW9uV2lsbE9wZW4oKQoreworfQorI2VuZGlmCisKIHZvaWQgV2ViUHJvY2Vzc1By
b3h5Ojpwcm9jZXNzV2lsbFNodXREb3duKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbikKIHsK
ICAgICBBU1NFUlRfVU5VU0VEKGNvbm5lY3Rpb24sIHRoaXMtPmNvbm5lY3Rpb24oKSA9PSAmY29u
bmVjdGlvbik7CkBAIC00MDcsOCArNDE1LDE2IEBAIHZvaWQgV2ViUHJvY2Vzc1Byb3h5Ojpwcm9j
ZXNzV2lsbFNodXREb3duKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbikKICNpZiBQTEFURk9S
TShNQUMpICYmIEVOQUJMRShXRUJQUk9DRVNTX1dJTkRPV1NFUlZFUl9CTE9DS0lORykKICAgICBw
cm9jZXNzUG9vbCgpLnN0b3BEaXNwbGF5TGlua3MoY29ubmVjdGlvbik7CiAjZW5kaWYKKworICAg
IHBsYXRmb3JtUHJvY2Vzc1dpbGxTaHV0RG93bigpOwogfQogCisjaWYgIVBMQVRGT1JNKElPUykK
K3ZvaWQgV2ViUHJvY2Vzc1Byb3h5OjpwbGF0Zm9ybVByb2Nlc3NXaWxsU2h1dERvd24oKQorewor
fQorI2VuZGlmCisKIHZvaWQgV2ViUHJvY2Vzc1Byb3h5OjpzaHV0RG93bigpCiB7CiAgICAgUkVM
RUFTRV9BU1NFUlQoaXNNYWluVGhyZWFkT3JDaGVja0Rpc2FibGVkKCkpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmggYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaAppbmRleCBlMGU4ZGMwYWM3MDhiMTI0OGIxY2M4
MGFkY2IxOWQxODQxMjM5YzczLi5mOGUxYTViMWZiOTNhNDY1ZmI1NzljM2JkZGU4YmJkNDk3YThk
N2Y2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHku
aAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaApAQCAtMzA2
LDYgKzMwNiwxMCBAQCBwdWJsaWM6CiAgICAgdm9pZCBkaWRTZXRBc3NlcnRpb25UeXBlKFByb2Nl
c3NBc3NlcnRpb25UeXBlKSBmaW5hbDsKICAgICBBU0NJSUxpdGVyYWwgY2xpZW50TmFtZSgpIGNv
bnN0IGZpbmFsIHsgcmV0dXJuICJXZWJQcm9jZXNzIl9zOyB9CiAKKyNpZiBQTEFURk9STShJT1Mp
CisgICAgdm9pZCBzZXRIYXNNb3VzZURldmljZShib29sKTsKKyNlbmRpZgorCiAjaWYgUExBVEZP
Uk0oQ09DT0EpCiAgICAgZW51bSBTYW5kYm94RXh0ZW5zaW9uVHlwZSA6IHVpbnQzMl90IHsKICAg
ICAgICAgTm9uZSA9IDAsCkBAIC00MTAsNiArNDE0LDkgQEAgcHJvdGVjdGVkOgogICAgIHZvaWQg
dmFsaWRhdGVGcmVlemVyU3RhdHVzKCk7CiAKIHByaXZhdGU6CisgICAgdm9pZCBwbGF0Zm9ybUNv
bm5lY3Rpb25XaWxsT3BlbigpOworICAgIHZvaWQgcGxhdGZvcm1Qcm9jZXNzV2lsbFNodXREb3du
KCk7CisKICAgICAvLyBJUEMgbWVzc2FnZSBoYW5kbGVycy4KICAgICB2b2lkIHVwZGF0ZUJhY2tG
b3J3YXJkSXRlbShjb25zdCBCYWNrRm9yd2FyZExpc3RJdGVtU3RhdGUmKTsKICAgICB2b2lkIGRp
ZERlc3Ryb3lGcmFtZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLTW91c2VEZXZpY2VPYnNlcnZlci5oIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLTW91c2VEZXZpY2VPYnNlcnZlci5oCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjUxZDIxN2I5Y2NjZDlkODk1YjQxYTRmZTViMjY2MGQ2MzdlNWZhMmMKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tNb3VzZURldmljZU9ic2VydmVyLmgK
QEAgLTAsMCArMSw0NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZiBQTEFURk9STShJT1MpCisKKyNpbXBv
cnQgIkJhY2tCb2FyZFNlcnZpY2VzU1BJLmgiCisKK25hbWVzcGFjZSBXZWJLaXQgeworY2xhc3Mg
V2ViUHJvY2Vzc1Byb3h5OworfQorCitAaW50ZXJmYWNlIFdLTW91c2VEZXZpY2VPYnNlcnZlciA6
IE5TT2JqZWN0PEJLU01vdXNlUG9pbnRlckRldmljZU9ic2VydmVyPgorCisrIChXS01vdXNlRGV2
aWNlT2JzZXJ2ZXIgKilzaGFyZWRJbnN0YW5jZTsKKworQHByb3BlcnR5IChub25hdG9taWMsIHJl
YWRvbmx5KSBCT09MIGhhc01vdXNlRGV2aWNlOworCistICh2b2lkKWFkZFdlYlByb2Nlc3NQcm94
eTooV2ViS2l0OjpXZWJQcm9jZXNzUHJveHkmKXdlYlByb2Nlc3NQcm94eTsKKy0gKHZvaWQpcmVt
b3ZlV2ViUHJvY2Vzc1Byb3h5OihXZWJLaXQ6OldlYlByb2Nlc3NQcm94eSYpd2ViUHJvY2Vzc1By
b3h5OworCistICh2b2lkKV9zZXRIYXNNb3VzZURldmljZUZvclRlc3Rpbmc6KEJPT0wpaGFzTW91
c2VEZXZpY2U7CisKK0BlbmQKKworI2VuZGlmIC8vIFBMQVRGT1JNKElPUykKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS01vdXNlRGV2aWNlT2JzZXJ2ZXIubW0gYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tNb3VzZURldmljZU9ic2VydmVyLm1tCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjBhM2NhZTE4NzMwYzU2ZmYxY2JjZTIzY2JlY2Q3YTI5OThkYTgwNTgKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tNb3VzZURldmljZU9ic2Vy
dmVyLm1tCkBAIC0wLDAgKzEsMTE3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycn
CisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwor
ICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICog
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2ltcG9ydCAiY29uZmlnLmgi
CisjaW1wb3J0ICJXS01vdXNlRGV2aWNlT2JzZXJ2ZXIuaCIKKworI2lmIFBMQVRGT1JNKElPUykK
KworI2ltcG9ydCAiV2ViUHJvY2Vzc1Byb3h5LmgiCisjaW5jbHVkZSA8d3RmL1dlYWtIYXNoU2V0
Lmg+CisKK0BpbXBsZW1lbnRhdGlvbiBXS01vdXNlRGV2aWNlT2JzZXJ2ZXIgeworICAgIFdlYWtI
YXNoU2V0PFdlYktpdDo6V2ViUHJvY2Vzc1Byb3h5PiBfd2ViUHJvY2Vzc1Byb3h5TGlzdDsKKwor
ICAgIEJPT0wgX2hhc01vdXNlRGV2aWNlOworICAgIGlkPEJTSW52YWxpZGF0YWJsZT4gX3Rva2Vu
OworfQorCisrIChXS01vdXNlRGV2aWNlT2JzZXJ2ZXIgKilzaGFyZWRJbnN0YW5jZSB7CisgICAg
c3RhdGljIFdLTW91c2VEZXZpY2VPYnNlcnZlciAqaW5zdGFuY2U7CisgICAgaWYgKCFpbnN0YW5j
ZSkKKyAgICAgICAgaW5zdGFuY2UgPSBbW1dLTW91c2VEZXZpY2VPYnNlcnZlciBhbGxvY10gaW5p
dF07CisgICAgcmV0dXJuIGluc3RhbmNlOworfQorCistICh2b2lkKWRlYWxsb2MKK3sKKyAgICBp
ZiAoX3Rva2VuKQorICAgICAgICBbc2VsZiBzdG9wXTsKKworICAgIFtzdXBlciBkZWFsbG9jXTsK
K30KKworI3ByYWdtYSBtYXJrIC0gV2ViUHJvY2Vzc1Byb3h5IEFQSQorCistICh2b2lkKWFkZFdl
YlByb2Nlc3NQcm94eTooV2ViS2l0OjpXZWJQcm9jZXNzUHJveHkmKXdlYlByb2Nlc3NQcm94eQor
eworICAgIGlmICghX3dlYlByb2Nlc3NQcm94eUxpc3QuYWRkKHdlYlByb2Nlc3NQcm94eSkpCisg
ICAgICAgIHJldHVybjsKKworICAgIGlmIChfd2ViUHJvY2Vzc1Byb3h5TGlzdC5jb21wdXRlU2l6
ZSgpID09IDEpCisgICAgICAgIFtzZWxmIHN0YXJ0XTsKK30KKworLSAodm9pZClyZW1vdmVXZWJQ
cm9jZXNzUHJveHk6KFdlYktpdDo6V2ViUHJvY2Vzc1Byb3h5Jil3ZWJQcm9jZXNzUHJveHkKK3sK
KyAgICBpZiAoIV93ZWJQcm9jZXNzUHJveHlMaXN0LnJlbW92ZSh3ZWJQcm9jZXNzUHJveHkpKQor
ICAgICAgICByZXR1cm47CisKKyAgICBpZiAoX3dlYlByb2Nlc3NQcm94eUxpc3QuY29tcHV0ZVNp
emUoKSA9PSAwKQorICAgICAgICBbc2VsZiBzdG9wXTsKK30KKworI3ByYWdtYSBtYXJrIC0gQktT
TW91c2VQb2ludGVyRGV2aWNlT2JzZXJ2ZXIgc3RhdGUKKworLSAodm9pZClzdGFydAoreworICAg
IEFTU0VSVCghX3Rva2VuKTsKKyAgICBfdG9rZW4gPSBbW0JLU01vdXNlUG9pbnRlclNlcnZpY2Ug
c2hhcmVkSW5zdGFuY2VdIGFkZFBvaW50ZXJEZXZpY2VPYnNlcnZlcjpzZWxmXTsKK30KKworLSAo
dm9pZClzdG9wCit7CisgICAgQVNTRVJUKF90b2tlbik7CisgICAgW190b2tlbiBpbnZhbGlkYXRl
XTsKKyAgICBfdG9rZW4gPSBuaWw7Cit9CisKKyNwcmFnbWEgbWFyayAtIEJLU01vdXNlUG9pbnRl
ckRldmljZU9ic2VydmVyIGhhbmRsZXJzCisKKy0gKHZvaWQpbW91c2VQb2ludGVyRGV2aWNlc0Rp
ZENoYW5nZTooTlNTZXQ8QktTTW91c2VQb2ludGVyRGV2aWNlICo+ICopbW91c2VQb2ludGVyRGV2
aWNlcworeworICAgIEJPT0wgaGFzTW91c2VEZXZpY2UgPSBbbW91c2VQb2ludGVyRGV2aWNlcyBj
b3VudF0gPiAwOworICAgIGlmIChoYXNNb3VzZURldmljZSA9PSBfaGFzTW91c2VEZXZpY2UpCisg
ICAgICAgIHJldHVybjsKKworICAgIF9oYXNNb3VzZURldmljZSA9IGhhc01vdXNlRGV2aWNlOwor
CisgICAgZm9yIChhdXRvJiB3ZWJQcm9jZXNzUHJveHkgOiBfd2ViUHJvY2Vzc1Byb3h5TGlzdCkK
KyAgICAgICAgd2ViUHJvY2Vzc1Byb3h5LnNldEhhc01vdXNlRGV2aWNlKF9oYXNNb3VzZURldmlj
ZSk7Cit9CisKKyNwcmFnbWEgbWFyayAtIFRlc3RpbmcKKworLSAodm9pZClfc2V0SGFzTW91c2VE
ZXZpY2VGb3JUZXN0aW5nOihCT09MKWhhc01vdXNlRGV2aWNlCit7CisgICAgX2hhc01vdXNlRGV2
aWNlID0gaGFzTW91c2VEZXZpY2U7CisKKyAgICBmb3IgKGF1dG8mIHdlYlByb2Nlc3NQcm94eSA6
IF93ZWJQcm9jZXNzUHJveHlMaXN0KQorICAgICAgICB3ZWJQcm9jZXNzUHJveHkuc2V0SGFzTW91
c2VEZXZpY2UoX2hhc01vdXNlRGV2aWNlKTsKK30KKworQGVuZAorCisjZW5kaWYgLy8gUExBVEZP
Uk0oSU9TKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dlYlByb2Nl
c3NQcm94eUlPUy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XZWJQcm9jZXNzUHJv
eHlJT1MubW0KaW5kZXggZWIxNzdjZDdjZGY1MWYwMjdmN2M1YjFlYzcyYzg3M2ZmYTYxODRmYS4u
NjllMzI0NzM2YTRjNDhmM2Q3MDQzNTQ3NGUwZDZiZjYzMGQ5MWUxMiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dlYlByb2Nlc3NQcm94eUlPUy5tbQorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV2ViUHJvY2Vzc1Byb3h5SU9TLm1tCkBAIC0zMCwxMCAr
MzAsMjggQEAKIAogI2ltcG9ydCAiQWNjZXNzaWJpbGl0eVN1cHBvcnRTUEkuaCIKICNpbXBvcnQg
IldLRnVsbEtleWJvYXJkQWNjZXNzV2F0Y2hlci5oIgorI2ltcG9ydCAiV0tNb3VzZURldmljZU9i
c2VydmVyLmgiCiAjaW1wb3J0ICJXZWJQcm9jZXNzTWVzc2FnZXMuaCIKIAogbmFtZXNwYWNlIFdl
YktpdCB7CiAKKyNpZiBQTEFURk9STShJT1MpCit2b2lkIFdlYlByb2Nlc3NQcm94eTo6cGxhdGZv
cm1Db25uZWN0aW9uV2lsbE9wZW4oKQoreworICAgIFtbV0tNb3VzZURldmljZU9ic2VydmVyIHNo
YXJlZEluc3RhbmNlXSBhZGRXZWJQcm9jZXNzUHJveHk6KnRoaXNdOworfQorCit2b2lkIFdlYlBy
b2Nlc3NQcm94eTo6cGxhdGZvcm1Qcm9jZXNzV2lsbFNodXREb3duKCkKK3sKKyAgICBbW1dLTW91
c2VEZXZpY2VPYnNlcnZlciBzaGFyZWRJbnN0YW5jZV0gcmVtb3ZlV2ViUHJvY2Vzc1Byb3h5Oip0
aGlzXTsKK30KKwordm9pZCBXZWJQcm9jZXNzUHJveHk6OnNldEhhc01vdXNlRGV2aWNlKGJvb2wg
aGFzTW91c2VEZXZpY2UpCit7CisgICAgc2VuZChNZXNzYWdlczo6V2ViUHJvY2Vzczo6U2V0SGFz
TW91c2VEZXZpY2UoaGFzTW91c2VEZXZpY2UpLCAwKTsKK30KKyNlbmRpZgorCiBib29sIFdlYlBy
b2Nlc3NQcm94eTo6ZnVsbEtleWJvYXJkQWNjZXNzRW5hYmxlZCgpCiB7CiAjaWYgRU5BQkxFKEZV
TExfS0VZQk9BUkRfQUNDRVNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJLaXQueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oKaW5kZXggNWRlMDg2YTA0NDA1YzA0MzJiNDQxNmI0MTgxMWQzYzQ1ZDFi
NWEzYi4uNmRlODVlNjM3ZTZkNWI2OTM3MjI0OTE0NGE0MTM1MDNiNDk3NTY3YiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9T
b3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xMzc5LDYg
KzEzNzksOCBAQAogCQk5M0JERUIwMTE3MUREN0FGMDBCRkVFMUIgLyogV0tQYWdlTG9hZFR5cGVz
UHJpdmF0ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
OTNCREVCMDAxNzFERDdBRjAwQkZFRTFCIC8qIFdLUGFnZUxvYWRUeXBlc1ByaXZhdGUuaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk5M0U2QTRFRTFC
QzVERDM5MDBGOEEwRTcgLyogX1dLSGl0VGVzdFJlc3VsdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNFNkE0RUQxQkM1REQzOTAwRjhBMEU3IC8qIF9X
S0hpdFRlc3RSZXN1bHQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OwogCQk5M0Y1NDlCNDFFMzE3NEI3MDAwRTcyMzkgLyogV0tTbmFwc2hvdENvbmZpZ3Vy
YXRpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkz
RjU0OUIzMUUzMTc0QjcwMDBFNzIzOSAvKiBXS1NuYXBzaG90Q29uZmlndXJhdGlvbi5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFB1YmxpYywgKTsgfTsgfTsKKwkJOTUwRjI4ODAyNTI0
MTRFQTAwQjc0RjFDIC8qIFdLTW91c2VEZXZpY2VPYnNlcnZlci5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTUwRjI4N0UyNTI0MTRFOTAwQjc0RjFDIC8q
IFdLTW91c2VEZXZpY2VPYnNlcnZlci5oICovOyB9OworCQk5NUM5NDM5MTI1MjNDMEQwMDA1NEYz
RDUgLyogQmFzZUJvYXJkU1BJLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA5NUM5NDM5MDI1MjNDMEQwMDA1NEYzRDUgLyogQmFzZUJvYXJkU1BJLmggKi87
IH07CiAJCTk5MDM2QUUyMjNBOTQ5Q0YwMDAwQjA2QSAvKiBfV0tJbnNwZWN0b3JEZWJ1Z2dhYmxl
SW5mb0ludGVybmFsLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA5OTAzNkFFMTIzQTk0OUNFMDAwMEIwNkEgLyogX1dLSW5zcGVjdG9yRGVidWdnYWJsZUlu
Zm9JbnRlcm5hbC5oICovOyB9OwogCQk5OTAzNkFFNTIzQTk1ODc1MDAwMEIwNkEgLyogQVBJRGVi
dWdnYWJsZUluZm8uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDk5MDM2QUUzMjNBOTU4NzQwMDAwQjA2QSAvKiBBUElEZWJ1Z2dhYmxlSW5mby5oICovOyB9
OwogCQk5OTAzNkFFOTIzQTk3MDg3MDAwMEIwNkEgLyogRGVidWdnYWJsZUluZm9EYXRhLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5OTAzNkFFNzIzQTk3
MDg3MDAwMEIwNkEgLyogRGVidWdnYWJsZUluZm9EYXRhLmggKi87IH07CkBAIC00NDIwLDYgKzQ0
MjIsOSBAQAogCQk5M0U2QTRFRDFCQzVERDM5MDBGOEEwRTcgLyogX1dLSGl0VGVzdFJlc3VsdC5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBfV0tIaXRUZXN0UmVzdWx0Lmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzRjU0OUIzMUUzMTc0QjcwMDBFNzIzOSAvKiBX
S1NuYXBzaG90Q29uZmlndXJhdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBXS1NuYXBzaG90Q29uZmlndXJhdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk5M0Y1NDlCNTFFMzE3NERBMDAwRTcyMzkgLyogV0tTbmFwc2hvdENvbmZpZ3VyYXRpb24ubW0g
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBXS1NuYXBzaG90Q29uZmln
dXJhdGlvbi5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTUwRjI4N0UyNTI0MTRF
OTAwQjc0RjFDIC8qIFdLTW91c2VEZXZpY2VPYnNlcnZlci5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IG5hbWUgPSBXS01vdXNlRGV2aWNlT2JzZXJ2ZXIuaDsgcGF0aCA9IGlvcy9XS01vdXNl
RGV2aWNlT2JzZXJ2ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTUwRjI4N0Yy
NTI0MTRFQTAwQjc0RjFDIC8qIFdLTW91c2VEZXZpY2VPYnNlcnZlci5tbSAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLm9iamNwcDsgbmFtZSA9IFdLTW91c2VEZXZpY2VPYnNlcnZlci5tbTsgcGF0
aCA9IGlvcy9XS01vdXNlRGV2aWNlT2JzZXJ2ZXIubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCTk1Qzk0MzkwMjUyM0MwRDAwMDU0RjNENSAvKiBCYXNlQm9hcmRTUEkuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQmFzZUJvYXJkU1BJLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTk5MDM2QUUxMjNBOTQ5Q0UwMDAwQjA2QSAvKiBfV0tJbnNwZWN0b3JE
ZWJ1Z2dhYmxlSW5mb0ludGVybmFsLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IF9XS0luc3BlY3RvckRlYnVnZ2FibGVJbmZvSW50ZXJuYWwuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJOTkwMzZBRTMyM0E5NTg3NDAwMDBCMDZBIC8qIEFQSURlYnVnZ2FibGVJbmZv
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEFQSURlYnVnZ2FibGVJbmZvLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTk5MDM2QUU0MjNBOTU4NzQwMDAwQjA2QSAv
KiBBUElEZWJ1Z2dhYmxlSW5mby5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBBUElEZWJ1Z2dhYmxlSW5mby5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBA
IC03MDE0LDYgKzcwMTksOCBAQAogCQkJCTkzM0RGODJGMUIzQkMwQjQwMEFFQTlFMyAvKiBXS0lt
YWdlUHJldmlld1ZpZXdDb250cm9sbGVyLm1tICovLAogCQkJCTJERDVFMTI3MjEwQURDN0EwMERC
NjAxMiAvKiBXS0tleWJvYXJkU2Nyb2xsaW5nQW5pbWF0b3IuaCAqLywKIAkJCQkyREQ1RTEyNjIx
MEFEQzdBMDBEQjYwMTIgLyogV0tLZXlib2FyZFNjcm9sbGluZ0FuaW1hdG9yLm1tICovLAorCQkJ
CTk1MEYyODdFMjUyNDE0RTkwMEI3NEYxQyAvKiBXS01vdXNlRGV2aWNlT2JzZXJ2ZXIuaCAqLywK
KwkJCQk5NTBGMjg3RjI1MjQxNEVBMDBCNzRGMUMgLyogV0tNb3VzZURldmljZU9ic2VydmVyLm1t
ICovLAogCQkJCTJEQjk0Mjk3MjM0RTdBN0YwMEU3NzZBRCAvKiBXS01vdXNlR2VzdHVyZVJlY29n
bml6ZXIuaCAqLywKIAkJCQkyREI5NDI5ODIzNEU3QTdGMDBFNzc2QUQgLyogV0tNb3VzZUdlc3R1
cmVSZWNvZ25pemVyLm1tICovLAogCQkJCUExNUVFREU0MUUzMDFDRUUwMDAwNjlCMCAvKiBXS1Bh
c3N3b3JkVmlldy5oICovLApAQCAtMTAzNzQsNiArMTAzODEsNyBAQAogCQkJY2hpbGRyZW4gPSAo
CiAJCQkJQ0UxQTBCQ0MxQTQ4RTZDNjAwNTRFRjc0IC8qIEFzc2VydGlvblNlcnZpY2VzU1BJLmgg
Ki8sCiAJCQkJQ0RBMDQxRjMxQUNFMjEwNTAwNEExM0VDIC8qIEJhY2tCb2FyZFNlcnZpY2VzU1BJ
LmggKi8sCisJCQkJOTVDOTQzOTAyNTIzQzBEMDAwNTRGM0Q1IC8qIEJhc2VCb2FyZFNQSS5oICov
LAogCQkJCTJENEFGMDg4MjA0NEMzQzQwMDZDODgxNyAvKiBGcm9udEJvYXJkU2VydmljZXNTUEku
aCAqLywKIAkJCQlBMTNCM0RBMTIwN0YzOURFMDA5MEM1OEQgLyogTW9iaWxlV2lGaVNQSS5oICov
LAogCQkJCTMxNzhBRjk3MjBFMkE3RjgwMDc0REU5NCAvKiBQREZLaXRTUEkuaCAqLywKQEAgLTEw
NzQwLDYgKzEwNzQ4LDcgQEAKIAkJCQkyOTBGNDI3MjE3MkEwQzc0MDA5MzlGRjAgLyogQXV4aWxp
YXJ5UHJvY2Vzc1N1cHBsZW1lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUNEQTA0MUY0MUFDRTIx
MDUwMDRBMTNFQyAvKiBCYWNrQm9hcmRTZXJ2aWNlc1NQSS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
NDZBMkI2MDkxRTU2NzZBNjAwQzNERURBIC8qIEJhY2tncm91bmRQcm9jZXNzUmVzcG9uc2l2ZW5l
c3NUaW1lci5oIGluIEhlYWRlcnMgKi8sCisJCQkJOTVDOTQzOTEyNTIzQzBEMDAwNTRGM0Q1IC8q
IEJhc2VCb2FyZFNQSS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTE2NEEyRjIxOTFBRjE0RTAwMTA3
MzdEIC8qIEJsb2JEYXRhRmlsZVJlZmVyZW5jZVdpdGhTYW5kYm94RXh0ZW5zaW9uLmggaW4gSGVh
ZGVycyAqLywKIAkJCQlFMTcwODc2QzE2RDZDQTY5MDBGOTkyMjYgLyogQmxvYlJlZ2lzdHJ5UHJv
eHkuaCBpbiBIZWFkZXJzICovLAogCQkJCTRGNjAxNDMyMTU1QzVBQTIwMDFGQkRFMCAvKiBCbG9j
a2luZ1Jlc3BvbnNlTWFwLmggaW4gSGVhZGVycyAqLywKQEAgLTExNTk3LDYgKzExNjA2LDcgQEAK
IAkJCQk1Q0FCREM4NjIyQzQwRkRFMDAxRURFOEUgLyogV0tNZXNzYWdlTGlzdGVuZXIuaCBpbiBI
ZWFkZXJzICovLAogCQkJCUMxMUUxNjk0MjEyQjg3QzUwMDk4NUZGNiAvKiBXS01vY2tEaXNwbGF5
LmggaW4gSGVhZGVycyAqLywKIAkJCQk0MTFBOEREQjIwREREMUFDMDA2MEQzNEYgLyogV0tNb2Nr
TWVkaWFEZXZpY2UuaCBpbiBIZWFkZXJzICovLAorCQkJCTk1MEYyODgwMjUyNDE0RUEwMEI3NEYx
QyAvKiBXS01vdXNlRGV2aWNlT2JzZXJ2ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTJEQjk0Mjk5
MjM0RTdBN0YwMEU3NzZBRCAvKiBXS01vdXNlR2VzdHVyZVJlY29nbml6ZXIuaCBpbiBIZWFkZXJz
ICovLAogCQkJCUJDNDA3NUZFMTI0RkYwMjcwMDY4RjIwQSAvKiBXS011dGFibGVBcnJheS5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJQkM0MDc2MDAxMjRGRjAyNzAwNjhGMjBBIC8qIFdLTXV0YWJsZURp
Y3Rpb25hcnkuaCBpbiBIZWFkZXJzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcAppbmRleCAxODhi
YzVlOWViOWRiNzQ0MDVlMDhmNmUwNTgyM2VhM2MzN2E4MmExLi44OTM2YzNjMzI0ZjkzZWNhOTVh
ZTQ0ZjVjMzIzYTU4YzYyZTVkZDc5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcApAQCAtNTA2LDYg
KzUwNiwxMyBAQCBLZXlib2FyZFVJTW9kZSBXZWJDaHJvbWVDbGllbnQ6OmtleWJvYXJkVUlNb2Rl
KCkKICAgICByZXR1cm4gbV9wYWdlLmtleWJvYXJkVUlNb2RlKCk7CiB9CiAKKyNpZiBQTEFURk9S
TShJT1MpCitib29sIFdlYkNocm9tZUNsaWVudDo6aGFzTW91c2VEZXZpY2UoKQoreworICAgIHJl
dHVybiBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5oYXNNb3VzZURldmljZSgpOworfQorI2VuZGlm
CisKICNpZiBFTkFCTEUoUE9JTlRFUl9MT0NLKQogCiBib29sIFdlYkNocm9tZUNsaWVudDo6cmVx
dWVzdFBvaW50ZXJMb2NrKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaAppbmRleCBiZGI0ZGZmYmIwMTVhMzc3
MjA2YmRiNDI1YTcyNWFkNjRlMDE1ODdiLi43ZDUzY2JiNWJlMTliMTFlMWVmNDgwOTNjZjcyYjFl
MjFhOWZmZjk1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCkBAIC0xMTIsNiArMTEyLDEwIEBAIHByaXZh
dGU6CiAKICAgICBXZWJDb3JlOjpLZXlib2FyZFVJTW9kZSBrZXlib2FyZFVJTW9kZSgpIGZpbmFs
OwogCisjaWYgUExBVEZPUk0oSU9TKQorICAgIGJvb2wgaGFzTW91c2VEZXZpY2UoKSBmaW5hbDsK
KyNlbmRpZgorCiAgICAgLy8gSG9zdFdpbmRvdyBtZW1iZXIgZnVuY3Rpb24gZmluYWxzLgogICAg
IHZvaWQgaW52YWxpZGF0ZVJvb3RWaWV3KGNvbnN0IFdlYkNvcmU6OkludFJlY3QmKSBmaW5hbDsK
ICAgICB2b2lkIGludmFsaWRhdGVDb250ZW50c0FuZFJvb3RWaWV3KGNvbnN0IFdlYkNvcmU6Oklu
dFJlY3QmKSBmaW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQ
cm9jZXNzLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcAppbmRl
eCA3N2U4ZmI2ZDJmY2UyZWY1YmE4NGY2NmY5MjZjYzUzYjVlMDI5Y2M3Li4wZjgwYjYyMDdmNGRj
ODFlZDhjZmNlYjUwZmI2ZWUyODBmN2NiNzc5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YlByb2Nlc3MuY3BwCkBAIC00MDYsNiArNDA2LDEwIEBAIHZvaWQgV2ViUHJvY2Vzczo6aW5pdGlh
bGl6ZVdlYlByb2Nlc3MoV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyYmIHBhcmFtZXRlcnMp
CiAKICAgICBtX2Z1bGxLZXlib2FyZEFjY2Vzc0VuYWJsZWQgPSBwYXJhbWV0ZXJzLmZ1bGxLZXli
b2FyZEFjY2Vzc0VuYWJsZWQ7CiAKKyNpZiBQTEFURk9STShJT1MpCisgICAgbV9oYXNNb3VzZURl
dmljZSA9IHBhcmFtZXRlcnMuaGFzTW91c2VEZXZpY2U7CisjZW5kaWYKKwogICAgIGZvciAoYXV0
byYgc2NoZW1lIDogcGFyYW1ldGVycy51cmxTY2hlbWVzUmVnaXN0ZXJlZEFzRW1wdHlEb2N1bWVu
dCkKICAgICAgICAgcmVnaXN0ZXJVUkxTY2hlbWVBc0VtcHR5RG9jdW1lbnQoc2NoZW1lKTsKIApA
QCAtMTA1MCw2ICsxMDU0LDE4IEBAIHZvaWQgV2ViUHJvY2Vzczo6bWVzc2FnZXNBdmFpbGFibGVG
b3JQb3J0KGNvbnN0IE1lc3NhZ2VQb3J0SWRlbnRpZmllciYgaWRlbnRpZmllCiAgICAgTWVzc2Fn
ZVBvcnQ6Om5vdGlmeU1lc3NhZ2VBdmFpbGFibGUoaWRlbnRpZmllcik7CiB9CiAKKyNpZiBQTEFU
Rk9STShJT1MpCit2b2lkIFdlYlByb2Nlc3M6OnNldEhhc01vdXNlRGV2aWNlKGJvb2wgaGFzTW91
c2VEZXZpY2UpCit7CisgICAgaWYgKGhhc01vdXNlRGV2aWNlID09IG1faGFzTW91c2VEZXZpY2Up
CisgICAgICAgIHJldHVybjsKKworICAgIG1faGFzTW91c2VEZXZpY2UgPSBoYXNNb3VzZURldmlj
ZTsKKworICAgIFBhZ2U6OnVwZGF0ZVN0eWxlRm9yQWxsUGFnZXNBZnRlckdsb2JhbENoYW5nZUlu
RW52aXJvbm1lbnQoKTsKK30KKyNlbmRpZgorCiAjaWYgRU5BQkxFKEdBTUVQQUQpCiAKIHZvaWQg
V2ViUHJvY2Vzczo6c2V0SW5pdGlhbEdhbWVwYWRzKGNvbnN0IFZlY3RvcjxXZWJLaXQ6OkdhbWVw
YWREYXRhPiYgZ2FtZXBhZERhdGFzKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYlByb2Nlc3MuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmgK
aW5kZXggOWQwZGRiZmQzOGRlMzgxZGMyNWRiZWI5N2Q0ODY5ZTk0ZmRlYjgyNy4uNGIyYzFkOWNh
MDlmODc1ZDc5ZDhiMTM4MzJmNGVkZDM5NmQ5NWZjMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViUHJvY2Vzcy5oCkBAIC0xODcsNiArMTg3LDExIEBAIHB1YmxpYzoKIAogICAgIGJvb2wgZnVs
bEtleWJvYXJkQWNjZXNzRW5hYmxlZCgpIGNvbnN0IHsgcmV0dXJuIG1fZnVsbEtleWJvYXJkQWNj
ZXNzRW5hYmxlZDsgfQogCisjaWYgUExBVEZPUk0oSU9TKQorICAgIGJvb2wgaGFzTW91c2VEZXZp
Y2UoKSBjb25zdCB7IHJldHVybiBtX2hhc01vdXNlRGV2aWNlOyB9CisgICAgdm9pZCBzZXRIYXNN
b3VzZURldmljZShib29sKTsKKyNlbmRpZgorCiAgICAgV2ViRnJhbWUqIHdlYkZyYW1lKFdlYkNv
cmU6OkZyYW1lSWRlbnRpZmllcikgY29uc3Q7CiAgICAgVmVjdG9yPFdlYkZyYW1lKj4gd2ViRnJh
bWVzKCkgY29uc3Q7CiAgICAgdm9pZCBhZGRXZWJGcmFtZShXZWJDb3JlOjpGcmFtZUlkZW50aWZp
ZXIsIFdlYkZyYW1lKik7CkBAIC01NTMsNiArNTU4LDkgQEAgcHJpdmF0ZToKICNlbmRpZgogCiAg
ICAgYm9vbCBtX2Z1bGxLZXlib2FyZEFjY2Vzc0VuYWJsZWQgeyBmYWxzZSB9OworI2lmIFBMQVRG
T1JNKElPUykKKyAgICBib29sIG1faGFzTW91c2VEZXZpY2UgeyBmYWxzZSB9OworI2VuZGlmCiAK
ICAgICBIYXNoTWFwPFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgV2ViRnJhbWUqPiBtX2ZyYW1l
TWFwOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5t
ZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLm1lc3NhZ2Vz
LmluCmluZGV4IDAxMjM2NzU3YTVjNWYwZDI4MGM2ZGQxZjlhMTgxNTJiYmNmMTljMDQuLjg1OTYy
MDVjNDQ5NGNhNTBmYzcyMjY2M2I0MWI2ZDc5MjllNTkyMDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLm1lc3NhZ2VzLmluCkBAIC01Miw2ICs1MiwxMCBAQCBt
ZXNzYWdlcyAtPiBXZWJQcm9jZXNzIExlZ2FjeVJlY2VpdmVyIE5vdFJlZkNvdW50ZWQgewogICAg
IFVzZXJQcmVmZXJyZWRMYW5ndWFnZXNDaGFuZ2VkKCkKICAgICBGdWxsS2V5Ym9hcmRBY2Nlc3NN
b2RlQ2hhbmdlZChib29sIGZ1bGxLZXlib2FyZEFjY2Vzc0VuYWJsZWQpCiAKKyNpZiBQTEFURk9S
TShJT1MpCisgICAgU2V0SGFzTW91c2VEZXZpY2UoYm9vbCBoYXNNb3VzZURldmljZSkKKyNlbmRp
ZgorCiAgICAgIyBQbHVnLWlucy4KICAgICBEaWRBZGRQbHVnSW5BdXRvU3RhcnRPcmlnaW5IYXNo
KHVpbnQzMl90IGhhc2gsIFdhbGxUaW1lIGV4cGlyYXRpb25UaW1lKQogICAgIFJlc2V0UGx1Z0lu
QXV0b1N0YXJ0T3JpZ2luSGFzaGVzKEhhc2hNYXA8dWludDMyX3QsV2FsbFRpbWU+IGhhc2hlcykK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvaW9zL1dlYkNvcmVTdXBwb3J0L1dlYkNo
cm9tZUNsaWVudElPUy5oIGIvU291cmNlL1dlYktpdExlZ2FjeS9pb3MvV2ViQ29yZVN1cHBvcnQv
V2ViQ2hyb21lQ2xpZW50SU9TLmgKaW5kZXggYTkyYmFhNmIzMDU5ZGU4OTE0NWYwM2IxYTU3NTdm
OTcyYTk0MDk5OS4uZjE0MWY0YjhlYzkxM2Y5ZDU1YTk4MTIyODQ4MjYzZWNkZWU0YTU5YSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9pb3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21l
Q2xpZW50SU9TLmgKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9pb3MvV2ViQ29yZVN1cHBvcnQv
V2ViQ2hyb21lQ2xpZW50SU9TLmgKQEAgLTUwLDYgKzUwLDEwIEBAIHByaXZhdGU6CiAgICAgdm9p
ZCBydW5PcGVuUGFuZWwoV2ViQ29yZTo6RnJhbWUmLCBXZWJDb3JlOjpGaWxlQ2hvb3NlciYpIGZp
bmFsOwogICAgIHZvaWQgc2hvd1NoYXJlU2hlZXQoV2ViQ29yZTo6U2hhcmVEYXRhV2l0aFBhcnNl
ZFVSTCYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYpIGZpbmFsOwogCisjaWYgUExB
VEZPUk0oSU9TKQorICAgIGJvb2wgaGFzTW91c2VEZXZpY2UoKSBmaW5hbCB7IHJldHVybiBmYWxz
ZTsgfQorI2VuZGlmCisKICAgICB2b2lkIHNldEN1cnNvcihjb25zdCBXZWJDb3JlOjpDdXJzb3Im
KSBmaW5hbCB7IH0KICAgICB2b2lkIHNldEN1cnNvckhpZGRlblVudGlsTW91c2VNb3Zlcyhib29s
KSBmaW5hbCB7IH0KIApkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdl
TG9nCmluZGV4IDZlMGZhOTE1M2Y1ODdlMDU2YTZmNGZlYjUwOWM4N2E2OWFjMWI1ZTIuLmRjNzI4
MGMyMmEwNjViZjEzMzA5OGVhYmU3MjhiYTQ1ODJjNjk5ODAgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0No
YW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOSBAQAorMjAyMC0wOS0z
MCAgRGV2aW4gUm91c3NvICA8ZHJvdXNzb0BhcHBsZS5jb20+CisKKyAgICAgICAgQ1NTIGhvdmVy
IGFuZCAicG9pbnRlcjogZmluZSIgbWVkaWEgcXVlcmllcyBkbyBub3QgZXZhbHVhdGUgdG8gdHJ1
ZSB3aXRoIGlPUyAxMy40IG1vdXNlIHN1cHBvcnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTIwOTI5MgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNjA2
NjMxMjQ+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
KiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL2lPU01vdXNlU3VwcG9ydC5tbToKKyAg
ICAgICAgKGV2YWx1YXRlTWVkaWFRdWVyeSk6IEFkZGVkLgorICAgICAgICAoaU9TTW91c2VTdXBw
b3J0Lk1vdXNlSW5pdGlhbGx5RGlzY29ubmVjdGVkKTogQWRkZWQuCisgICAgICAgIChpT1NNb3Vz
ZVN1cHBvcnQuTW91c2VJbml0aWFsbHlDb25uZWN0ZWQpOiBBZGRlZC4KKyAgICAgICAgKGlPU01v
dXNlU3VwcG9ydC5Nb3VzZUxhdGVyRGlzY29ubmVjdGVkKTogQWRkZWQuCisgICAgICAgIChpT1NN
b3VzZVN1cHBvcnQuTW91c2VMYXRlckNvbm5lY3RlZCk6IEFkZGVkLgorICAgICAgICAoaU9TTW91
c2VTdXBwb3J0Lk1vdXNlQWx3YXlzQ29ubmVjdGVkKTogQWRkZWQuCisKIDIwMjAtMDktMzAgIEpv
bmF0aGFuIEJlZGFyZCAgPGpiZWRhcmRAYXBwbGUuY29tPgogCiAgICAgICAgIFt3ZWJraXRzY21w
eV0gQWRkIENvbW1pdCBvYmplY3QKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViS2l0Q29jb2EvaU9TTW91c2VTdXBwb3J0Lm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJLaXRDb2NvYS9pT1NNb3VzZVN1cHBvcnQubW0KaW5kZXggYzI0MzBiMjBlZjc3NmFl
YTEzMDllOTMzOGQ2ZTJlYTBjZjUwYWExNi4uMGViYTM3OWFhZTFjMDVjNDg0NWQ3MjQ0NWQ5NGRl
ZWVkZmM0M2ViMiAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRD
b2NvYS9pT1NNb3VzZVN1cHBvcnQubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJLaXRDb2NvYS9pT1NNb3VzZVN1cHBvcnQubW0KQEAgLTMwMCw0ICszMDAsMTU5IEBAIFRFU1Qo
aU9TTW91c2VTdXBwb3J0LCBXZWJzaXRlTW91c2VFdmVudFBvbGljaWVzKQogCiAjZW5kaWYgLy8g
RU5BQkxFKElPU19UT1VDSF9FVkVOVFMpCiAKK3N0YXRpYyBCT09MIGV2YWx1YXRlTWVkaWFRdWVy
eShSZXRhaW5QdHI8VGVzdFdLV2ViVmlldz4mIHdlYlZpZXcsIE5TU3RyaW5nICpxdWVyeSkKK3sK
KyAgICByZXR1cm4gW1t3ZWJWaWV3IG9iamVjdEJ5RXZhbHVhdGluZ0phdmFTY3JpcHQ6W05TU3Ry
aW5nIHN0cmluZ1dpdGhGb3JtYXQ6QCJ3aW5kb3cubWF0Y2hNZWRpYShcIiglQClcIikubWF0Y2hl
cyIsIHF1ZXJ5XV0gYm9vbFZhbHVlXTsKK30KKworI2lmIFBMQVRGT1JNKElPUykKKworQGludGVy
ZmFjZSBXS01vdXNlRGV2aWNlT2JzZXJ2ZXIKKysgKFdLTW91c2VEZXZpY2VPYnNlcnZlciAqKXNo
YXJlZEluc3RhbmNlOworLSAodm9pZClfc2V0SGFzTW91c2VEZXZpY2VGb3JUZXN0aW5nOihCT09M
KWhhc01vdXNlRGV2aWNlOworQGVuZAorCitURVNUKGlPU01vdXNlU3VwcG9ydCwgTW91c2VJbml0
aWFsbHlEaXNjb25uZWN0ZWQpCit7CisgICAgW1tOU0NsYXNzRnJvbVN0cmluZyhAIldLTW91c2VE
ZXZpY2VPYnNlcnZlciIpIHNoYXJlZEluc3RhbmNlXSBfc2V0SGFzTW91c2VEZXZpY2VGb3JUZXN0
aW5nOk5PXTsKKworICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFs
bG9jXSBpbml0V2l0aEZyYW1lOk5TTWFrZVJlY3QoMCwgMCwgODAwLCA2MDApXSk7CisKKyAgICBb
d2ViVmlldyBzeW5jaHJvbm91c2x5TG9hZEhUTUxTdHJpbmc6QCIiXTsKKworICAgIEVYUEVDVF9G
QUxTRShldmFsdWF0ZU1lZGlhUXVlcnkod2ViVmlldywgQCJob3ZlciIpKTsKKyAgICBFWFBFQ1Rf
VFJVRShldmFsdWF0ZU1lZGlhUXVlcnkod2ViVmlldywgQCJob3Zlcjogbm9uZSIpKTsKKyAgICBF
WFBFQ1RfRkFMU0UoZXZhbHVhdGVNZWRpYVF1ZXJ5KHdlYlZpZXcsIEAiaG92ZXI6IGhvdmVyIikp
OworCisgICAgRVhQRUNUX0ZBTFNFKGV2YWx1YXRlTWVkaWFRdWVyeSh3ZWJWaWV3LCBAImFueS1o
b3ZlciIpKTsKKyAgICBFWFBFQ1RfVFJVRShldmFsdWF0ZU1lZGlhUXVlcnkod2ViVmlldywgQCJh
bnktaG92ZXI6IG5vbmUiKSk7CisgICAgRVhQRUNUX0ZBTFNFKGV2YWx1YXRlTWVkaWFRdWVyeSh3
ZWJWaWV3LCBAImFueS1ob3ZlcjogaG92ZXIiKSk7CisKKyAgICBFWFBFQ1RfVFJVRShldmFsdWF0
ZU1lZGlhUXVlcnkod2ViVmlldywgQCJwb2ludGVyIikpOworICAgIEVYUEVDVF9GQUxTRShldmFs
dWF0ZU1lZGlhUXVlcnkod2ViVmlldywgQCJwb2ludGVyOiBub25lIikpOworICAgIEVYUEVDVF9U
UlVFKGV2YWx1YXRlTWVkaWFRdWVyeSh3ZWJWaWV3LCBAInBvaW50ZXI6IGNvYXJzZSIpKTsKKyAg
ICBFWFBFQ1RfRkFMU0UoZXZhbHVhdGVNZWRpYVF1ZXJ5KHdlYlZpZXcsIEAicG9pbnRlcjogZmlu
ZSIpKTsKKworICAgIEVYUEVDVF9UUlVFKGV2YWx1YXRlTWVkaWFRdWVyeSh3ZWJWaWV3LCBAImFu
eS1wb2ludGVyIikpOworICAgIEVYUEVDVF9GQUxTRShldmFsdWF0ZU1lZGlhUXVlcnkod2ViVmll
dywgQCJhbnktcG9pbnRlcjogbm9uZSIpKTsKKyAgICBFWFBFQ1RfVFJVRShldmFsdWF0ZU1lZGlh
UXVlcnkod2ViVmlldywgQCJhbnktcG9pbnRlcjogY29hcnNlIikpOworICAgIEVYUEVDVF9GQUxT
RShldmFsdWF0ZU1lZGlhUXVlcnkod2ViVmlldywgQCJhbnktcG9pbnRlcjogZmluZSIpKTsKK30K
KworVEVTVChpT1NNb3VzZVN1cHBvcnQsIE1vdXNlSW5pdGlhbGx5Q29ubmVjdGVkKQoreworICAg
IFtbTlNDbGFzc0Zyb21TdHJpbmcoQCJXS01vdXNlRGV2aWNlT2JzZXJ2ZXIiKSBzaGFyZWRJbnN0
YW5jZV0gX3NldEhhc01vdXNlRGV2aWNlRm9yVGVzdGluZzpZRVNdOworCisgICAgYXV0byB3ZWJW
aWV3ID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6TlNNYWtl
UmVjdCgwLCAwLCA4MDAsIDYwMCldKTsKKworICAgIFt3ZWJWaWV3IHN5bmNocm9ub3VzbHlMb2Fk
SFRNTFN0cmluZzpAIiJdOworCisgICAgRVhQRUNUX0ZBTFNFKGV2YWx1YXRlTWVkaWFRdWVyeSh3
ZWJWaWV3LCBAImhvdmVyIikpOworICAgIEVYUEVDVF9UUlVFKGV2YWx1YXRlTWVkaWFRdWVyeSh3
ZWJWaWV3LCBAImhvdmVyOiBub25lIikpOworICAgIEVYUEVDVF9GQUxTRShldmFsdWF0ZU1lZGlh
UXVlcnkod2ViVmlldywgQCJob3ZlcjogaG92ZXIiKSk7CisKKyAgICBFWFBFQ1RfVFJVRShldmFs
dWF0ZU1lZGlhUXVlcnkod2ViVmlldywgQCJhbnktaG92ZXIiKSk7CisgICAgRVhQRUNUX0ZBTFNF
KGV2YWx1YXRlTWVkaWFRdWVyeSh3ZWJWaWV3LCBAImFueS1ob3Zlcjogbm9uZSIpKTsKKyAgICBF
WFBFQ1RfVFJVRShldmFsdWF0ZU1lZGlhUXVlcnkod2ViVmlldywgQCJhbnktaG92ZXI6IGhvdmVy
IikpOworCisgICAgRVhQRUNUX1RSVUUoZXZhbHVhdGVNZWRpYVF1ZXJ5KHdlYlZpZXcsIEAicG9p
bnRlciIpKTsKKyAgICBFWFBFQ1RfRkFMU0UoZXZhbHVhdGVNZWRpYVF1ZXJ5KHdlYlZpZXcsIEAi
cG9pbnRlcjogbm9uZSIpKTsKKyAgICBFWFBFQ1RfVFJVRShldmFsdWF0ZU1lZGlhUXVlcnkod2Vi
VmlldywgQCJwb2ludGVyOiBjb2Fyc2UiKSk7CisgICAgRVhQRUNUX0ZBTFNFKGV2YWx1YXRlTWVk
aWFRdWVyeSh3ZWJWaWV3LCBAInBvaW50ZXI6IGZpbmUiKSk7CisKKyAgICBFWFBFQ1RfVFJVRShl
dmFsdWF0ZU1lZGlhUXVlcnkod2ViVmlldywgQCJhbnktcG9pbnRlciIpKTsKKyAgICBFWFBFQ1Rf
RkFMU0UoZXZhbHVhdGVNZWRpYVF1ZXJ5KHdlYlZpZXcsIEAiYW55LXBvaW50ZXI6IG5vbmUiKSk7
CisgICAgRVhQRUNUX1RSVUUoZXZhbHVhdGVNZWRpYVF1ZXJ5KHdlYlZpZXcsIEAiYW55LXBvaW50
ZXI6IGNvYXJzZSIpKTsKKyAgICBFWFBFQ1RfVFJVRShldmFsdWF0ZU1lZGlhUXVlcnkod2ViVmll
dywgQCJhbnktcG9pbnRlcjogZmluZSIpKTsKK30KKworVEVTVChpT1NNb3VzZVN1cHBvcnQsIE1v
dXNlTGF0ZXJEaXNjb25uZWN0ZWQpCit7CisgICAgW1tOU0NsYXNzRnJvbVN0cmluZyhAIldLTW91
c2VEZXZpY2VPYnNlcnZlciIpIHNoYXJlZEluc3RhbmNlXSBfc2V0SGFzTW91c2VEZXZpY2VGb3JU
ZXN0aW5nOllFU107CisKKyAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmll
dyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU01ha2VSZWN0KDAsIDAsIDgwMCwgNjAwKV0pOworCisg
ICAgW3dlYlZpZXcgc3luY2hyb25vdXNseUxvYWRIVE1MU3RyaW5nOkAiIl07CisKKyAgICBbW05T
Q2xhc3NGcm9tU3RyaW5nKEAiV0tNb3VzZURldmljZU9ic2VydmVyIikgc2hhcmVkSW5zdGFuY2Vd
IF9zZXRIYXNNb3VzZURldmljZUZvclRlc3Rpbmc6Tk9dOworCisgICAgRVhQRUNUX0ZBTFNFKGV2
YWx1YXRlTWVkaWFRdWVyeSh3ZWJWaWV3LCBAImhvdmVyIikpOworICAgIEVYUEVDVF9UUlVFKGV2
YWx1YXRlTWVkaWFRdWVyeSh3ZWJWaWV3LCBAImhvdmVyOiBub25lIikpOworICAgIEVYUEVDVF9G
QUxTRShldmFsdWF0ZU1lZGlhUXVlcnkod2ViVmlldywgQCJob3ZlcjogaG92ZXIiKSk7CisKKyAg
ICBFWFBFQ1RfRkFMU0UoZXZhbHVhdGVNZWRpYVF1ZXJ5KHdlYlZpZXcsIEAiYW55LWhvdmVyIikp
OworICAgIEVYUEVDVF9UUlVFKGV2YWx1YXRlTWVkaWFRdWVyeSh3ZWJWaWV3LCBAImFueS1ob3Zl
cjogbm9uZSIpKTsKKyAgICBFWFBFQ1RfRkFMU0UoZXZhbHVhdGVNZWRpYVF1ZXJ5KHdlYlZpZXcs
IEAiYW55LWhvdmVyOiBob3ZlciIpKTsKKworICAgIEVYUEVDVF9UUlVFKGV2YWx1YXRlTWVkaWFR
dWVyeSh3ZWJWaWV3LCBAInBvaW50ZXIiKSk7CisgICAgRVhQRUNUX0ZBTFNFKGV2YWx1YXRlTWVk
aWFRdWVyeSh3ZWJWaWV3LCBAInBvaW50ZXI6IG5vbmUiKSk7CisgICAgRVhQRUNUX1RSVUUoZXZh
bHVhdGVNZWRpYVF1ZXJ5KHdlYlZpZXcsIEAicG9pbnRlcjogY29hcnNlIikpOworICAgIEVYUEVD
VF9GQUxTRShldmFsdWF0ZU1lZGlhUXVlcnkod2ViVmlldywgQCJwb2ludGVyOiBmaW5lIikpOwor
CisgICAgRVhQRUNUX1RSVUUoZXZhbHVhdGVNZWRpYVF1ZXJ5KHdlYlZpZXcsIEAiYW55LXBvaW50
ZXIiKSk7CisgICAgRVhQRUNUX0ZBTFNFKGV2YWx1YXRlTWVkaWFRdWVyeSh3ZWJWaWV3LCBAImFu
eS1wb2ludGVyOiBub25lIikpOworICAgIEVYUEVDVF9UUlVFKGV2YWx1YXRlTWVkaWFRdWVyeSh3
ZWJWaWV3LCBAImFueS1wb2ludGVyOiBjb2Fyc2UiKSk7CisgICAgRVhQRUNUX0ZBTFNFKGV2YWx1
YXRlTWVkaWFRdWVyeSh3ZWJWaWV3LCBAImFueS1wb2ludGVyOiBmaW5lIikpOworfQorCitURVNU
KGlPU01vdXNlU3VwcG9ydCwgTW91c2VMYXRlckNvbm5lY3RlZCkKK3sKKyAgICBbW05TQ2xhc3NG
cm9tU3RyaW5nKEAiV0tNb3VzZURldmljZU9ic2VydmVyIikgc2hhcmVkSW5zdGFuY2VdIF9zZXRI
YXNNb3VzZURldmljZUZvclRlc3Rpbmc6Tk9dOworCisgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHRO
UyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6TlNNYWtlUmVjdCgwLCAwLCA4
MDAsIDYwMCldKTsKKworICAgIFt3ZWJWaWV3IHN5bmNocm9ub3VzbHlMb2FkSFRNTFN0cmluZzpA
IiJdOworCisgICAgW1tOU0NsYXNzRnJvbVN0cmluZyhAIldLTW91c2VEZXZpY2VPYnNlcnZlciIp
IHNoYXJlZEluc3RhbmNlXSBfc2V0SGFzTW91c2VEZXZpY2VGb3JUZXN0aW5nOllFU107CisKKyAg
ICBFWFBFQ1RfRkFMU0UoZXZhbHVhdGVNZWRpYVF1ZXJ5KHdlYlZpZXcsIEAiaG92ZXIiKSk7Cisg
ICAgRVhQRUNUX1RSVUUoZXZhbHVhdGVNZWRpYVF1ZXJ5KHdlYlZpZXcsIEAiaG92ZXI6IG5vbmUi
KSk7CisgICAgRVhQRUNUX0ZBTFNFKGV2YWx1YXRlTWVkaWFRdWVyeSh3ZWJWaWV3LCBAImhvdmVy
OiBob3ZlciIpKTsKKworICAgIEVYUEVDVF9UUlVFKGV2YWx1YXRlTWVkaWFRdWVyeSh3ZWJWaWV3
LCBAImFueS1ob3ZlciIpKTsKKyAgICBFWFBFQ1RfRkFMU0UoZXZhbHVhdGVNZWRpYVF1ZXJ5KHdl
YlZpZXcsIEAiYW55LWhvdmVyOiBub25lIikpOworICAgIEVYUEVDVF9UUlVFKGV2YWx1YXRlTWVk
aWFRdWVyeSh3ZWJWaWV3LCBAImFueS1ob3ZlcjogaG92ZXIiKSk7CisKKyAgICBFWFBFQ1RfVFJV
RShldmFsdWF0ZU1lZGlhUXVlcnkod2ViVmlldywgQCJwb2ludGVyIikpOworICAgIEVYUEVDVF9G
QUxTRShldmFsdWF0ZU1lZGlhUXVlcnkod2ViVmlldywgQCJwb2ludGVyOiBub25lIikpOworICAg
IEVYUEVDVF9UUlVFKGV2YWx1YXRlTWVkaWFRdWVyeSh3ZWJWaWV3LCBAInBvaW50ZXI6IGNvYXJz
ZSIpKTsKKyAgICBFWFBFQ1RfRkFMU0UoZXZhbHVhdGVNZWRpYVF1ZXJ5KHdlYlZpZXcsIEAicG9p
bnRlcjogZmluZSIpKTsKKworICAgIEVYUEVDVF9UUlVFKGV2YWx1YXRlTWVkaWFRdWVyeSh3ZWJW
aWV3LCBAImFueS1wb2ludGVyIikpOworICAgIEVYUEVDVF9GQUxTRShldmFsdWF0ZU1lZGlhUXVl
cnkod2ViVmlldywgQCJhbnktcG9pbnRlcjogbm9uZSIpKTsKKyAgICBFWFBFQ1RfVFJVRShldmFs
dWF0ZU1lZGlhUXVlcnkod2ViVmlldywgQCJhbnktcG9pbnRlcjogY29hcnNlIikpOworICAgIEVY
UEVDVF9UUlVFKGV2YWx1YXRlTWVkaWFRdWVyeSh3ZWJWaWV3LCBAImFueS1wb2ludGVyOiBmaW5l
IikpOworfQorCisjZW5kaWYgLy8gUExBVEZPUk0oSU9TKQorCisjaWYgUExBVEZPUk0oTUFDQ0FU
QUxZU1QpCisKK1RFU1QoaU9TTW91c2VTdXBwb3J0LCBNb3VzZUFsd2F5c0Nvbm5lY3RlZCkKK3sK
KyAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdp
dGhGcmFtZTpOU01ha2VSZWN0KDAsIDAsIDgwMCwgNjAwKV0pOworCisgICAgW3dlYlZpZXcgc3lu
Y2hyb25vdXNseUxvYWRIVE1MU3RyaW5nOkAiIl07CisKKyAgICBFWFBFQ1RfRkFMU0UoZXZhbHVh
dGVNZWRpYVF1ZXJ5KHdlYlZpZXcsIEAiaG92ZXIiKSk7CisgICAgRVhQRUNUX1RSVUUoZXZhbHVh
dGVNZWRpYVF1ZXJ5KHdlYlZpZXcsIEAiaG92ZXI6IG5vbmUiKSk7CisgICAgRVhQRUNUX0ZBTFNF
KGV2YWx1YXRlTWVkaWFRdWVyeSh3ZWJWaWV3LCBAImhvdmVyOiBob3ZlciIpKTsKKworICAgIEVY
UEVDVF9UUlVFKGV2YWx1YXRlTWVkaWFRdWVyeSh3ZWJWaWV3LCBAImFueS1ob3ZlciIpKTsKKyAg
ICBFWFBFQ1RfRkFMU0UoZXZhbHVhdGVNZWRpYVF1ZXJ5KHdlYlZpZXcsIEAiYW55LWhvdmVyOiBu
b25lIikpOworICAgIEVYUEVDVF9UUlVFKGV2YWx1YXRlTWVkaWFRdWVyeSh3ZWJWaWV3LCBAImFu
eS1ob3ZlcjogaG92ZXIiKSk7CisKKyAgICBFWFBFQ1RfVFJVRShldmFsdWF0ZU1lZGlhUXVlcnko
d2ViVmlldywgQCJwb2ludGVyIikpOworICAgIEVYUEVDVF9GQUxTRShldmFsdWF0ZU1lZGlhUXVl
cnkod2ViVmlldywgQCJwb2ludGVyOiBub25lIikpOworICAgIEVYUEVDVF9UUlVFKGV2YWx1YXRl
TWVkaWFRdWVyeSh3ZWJWaWV3LCBAInBvaW50ZXI6IGNvYXJzZSIpKTsKKyAgICBFWFBFQ1RfRkFM
U0UoZXZhbHVhdGVNZWRpYVF1ZXJ5KHdlYlZpZXcsIEAicG9pbnRlcjogZmluZSIpKTsKKworICAg
IEVYUEVDVF9UUlVFKGV2YWx1YXRlTWVkaWFRdWVyeSh3ZWJWaWV3LCBAImFueS1wb2ludGVyIikp
OworICAgIEVYUEVDVF9GQUxTRShldmFsdWF0ZU1lZGlhUXVlcnkod2ViVmlldywgQCJhbnktcG9p
bnRlcjogbm9uZSIpKTsKKyAgICBFWFBFQ1RfVFJVRShldmFsdWF0ZU1lZGlhUXVlcnkod2ViVmll
dywgQCJhbnktcG9pbnRlcjogY29hcnNlIikpOworICAgIEVYUEVDVF9UUlVFKGV2YWx1YXRlTWVk
aWFRdWVyeSh3ZWJWaWV3LCBAImFueS1wb2ludGVyOiBmaW5lIikpOworfQorCisjZW5kaWYgLy8g
UExBVEZPUk0oTUFDQ0FUQUxZU1QpCisKICNlbmRpZiAvLyBQTEFURk9STShJT1MpIHx8IFBMQVRG
T1JNKE1BQ0NBVEFMWVNUKQpkaWZmIC0tZ2l0IGEvV2ViS2l0TGlicmFyaWVzL0NoYW5nZUxvZyBi
L1dlYktpdExpYnJhcmllcy9DaGFuZ2VMb2cKaW5kZXggMTYyNDQ2NDhkMmFhMzNhZDU3MmFkYjNj
Mzc0YTMxYzc0NzBjMTU3NC4uMWU1YWJhNTJlMWM2MWIzNDgyMmNkODc0MGU2Y2MyYjdkMjkyNjdi
ZCAxMDA2NDQKLS0tIGEvV2ViS2l0TGlicmFyaWVzL0NoYW5nZUxvZworKysgYi9XZWJLaXRMaWJy
YXJpZXMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMjAtMDktMzAgIERldmluIFJvdXNz
byAgPGRyb3Vzc29AYXBwbGUuY29tPgorCisgICAgICAgIENTUyBob3ZlciBhbmQgInBvaW50ZXI6
IGZpbmUiIG1lZGlhIHF1ZXJpZXMgZG8gbm90IGV2YWx1YXRlIHRvIHRydWUgd2l0aCBpT1MgMTMu
NCBtb3VzZSBzdXBwb3J0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0yMDkyOTIKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzYwNjYzMTI0PgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2ViS2l0UHJpdmF0
ZUZyYW1ld29ya1N0dWJzL2lPUy8xMy9CYWNrQm9hcmRTZXJ2aWNlcy5mcmFtZXdvcmsvQmFja0Jv
YXJkU2VydmljZXMudGJkOiBBZGRlZC4KKyAgICAgICAgKiBXZWJLaXRQcml2YXRlRnJhbWV3b3Jr
U3R1YnMvaU9TLzE0L0JhY2tCb2FyZFNlcnZpY2VzLmZyYW1ld29yay9CYWNrQm9hcmRTZXJ2aWNl
cy50YmQ6IEFkZGVkLgorICAgICAgICBVc2UgYEJhY2tCb2FyZFNlcnZpY2VzYCB0byBsaXN0ZW4g
Zm9yIG1vdXNlIGRldmljZXMgY2hhbmdlcy4KKwogMjAyMC0wNy0yNiAgV2Vuc29uIEhzaWVoICA8
d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4KIAogICAgICAgICBSRUdSRVNTSU9OIChyMjY0NjkwKTog
WyBpT1Mgd2syIF0gZWRpdGluZy9zZWxlY3Rpb24vc2hpZnQtY2xpY2staW5jbHVkZXMtZXhpc3Rp
bmctc2VsZWN0aW9uLmh0bWwgaXMgYSBmbGFreSBmYWlsdXJlCmRpZmYgLS1naXQgYS9XZWJLaXRM
aWJyYXJpZXMvV2ViS2l0UHJpdmF0ZUZyYW1ld29ya1N0dWJzL2lPUy8xMy9CYWNrQm9hcmRTZXJ2
aWNlcy5mcmFtZXdvcmsvQmFja0JvYXJkU2VydmljZXMudGJkIGIvV2ViS2l0TGlicmFyaWVzL1dl
YktpdFByaXZhdGVGcmFtZXdvcmtTdHVicy9pT1MvMTMvQmFja0JvYXJkU2VydmljZXMuZnJhbWV3
b3JrL0JhY2tCb2FyZFNlcnZpY2VzLnRiZApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wMDIzNDhiZDNlZTBlMTMzYTNk
OTU4ZmJkZWM1N2ZmN2ZkYjNiN2Y3Ci0tLSAvZGV2L251bGwKKysrIGIvV2ViS2l0TGlicmFyaWVz
L1dlYktpdFByaXZhdGVGcmFtZXdvcmtTdHVicy9pT1MvMTMvQmFja0JvYXJkU2VydmljZXMuZnJh
bWV3b3JrL0JhY2tCb2FyZFNlcnZpY2VzLnRiZApAQCAtMCwwICsxLDkgQEAKKy0tLSAhdGFwaS10
YmQtdjMKK2FyY2hzOiAgICAgICAgICAgWyB4ODZfNjQsIGFybTY0LCBhcm02NGUgXQoraW5zdGFs
bC1uYW1lOiAgICAnL1N5c3RlbS9MaWJyYXJ5L1ByaXZhdGVGcmFtZXdvcmtzL0JhY2tCb2FyZFNl
cnZpY2VzLmZyYW1ld29yay9CYWNrQm9hcmRTZXJ2aWNlcycKK29iamMtY29uc3RyYWludDogbm9u
ZQorcGxhdGZvcm06IGlvcworZXhwb3J0czoKKyAgLSBhcmNoczogICAgICAgICAgIFsgeDg2XzY0
LCBhcm02NCwgYXJtNjRlIF0KKyAgICBvYmpjLWNsYXNzZXM6ICAgIFsgQktTTW91c2VQb2ludGVy
RGV2aWNlLCBCS1NNb3VzZVBvaW50ZXJTZXJ2aWNlIF0KKy4uLgpkaWZmIC0tZ2l0IGEvV2ViS2l0
TGlicmFyaWVzL1dlYktpdFByaXZhdGVGcmFtZXdvcmtTdHVicy9pT1MvMTQvQmFja0JvYXJkU2Vy
dmljZXMuZnJhbWV3b3JrL0JhY2tCb2FyZFNlcnZpY2VzLnRiZCBiL1dlYktpdExpYnJhcmllcy9X
ZWJLaXRQcml2YXRlRnJhbWV3b3JrU3R1YnMvaU9TLzE0L0JhY2tCb2FyZFNlcnZpY2VzLmZyYW1l
d29yay9CYWNrQm9hcmRTZXJ2aWNlcy50YmQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDAyMzQ4YmQzZWUwZTEzM2Ez
ZDk1OGZiZGVjNTdmZjdmZGIzYjdmNwotLS0gL2Rldi9udWxsCisrKyBiL1dlYktpdExpYnJhcmll
cy9XZWJLaXRQcml2YXRlRnJhbWV3b3JrU3R1YnMvaU9TLzE0L0JhY2tCb2FyZFNlcnZpY2VzLmZy
YW1ld29yay9CYWNrQm9hcmRTZXJ2aWNlcy50YmQKQEAgLTAsMCArMSw5IEBACistLS0gIXRhcGkt
dGJkLXYzCithcmNoczogICAgICAgICAgIFsgeDg2XzY0LCBhcm02NCwgYXJtNjRlIF0KK2luc3Rh
bGwtbmFtZTogICAgJy9TeXN0ZW0vTGlicmFyeS9Qcml2YXRlRnJhbWV3b3Jrcy9CYWNrQm9hcmRT
ZXJ2aWNlcy5mcmFtZXdvcmsvQmFja0JvYXJkU2VydmljZXMnCitvYmpjLWNvbnN0cmFpbnQ6IG5v
bmUKK3BsYXRmb3JtOiBpb3MKK2V4cG9ydHM6CisgIC0gYXJjaHM6ICAgICAgICAgICBbIHg4Nl82
NCwgYXJtNjQsIGFybTY0ZSBdCisgICAgb2JqYy1jbGFzc2VzOiAgICBbIEJLU01vdXNlUG9pbnRl
ckRldmljZSwgQktTTW91c2VQb2ludGVyU2VydmljZSBdCisuLi4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>410274</attachid>
            <date>2020-10-01 15:11:58 -0700</date>
            <delta_ts>2020-10-02 15:03:54 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-209292-20201001151157.patch</filename>
            <type>text/plain</type>
            <size>54553</size>
            <attacher name="Devin Rousso">hi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA5YTVlYjE4NDk1NzcxMmY5MDFlY2U2NmRjYjdlOGM0OTJlMGMwOTVjLi5m
ZmRhNDFiZmM5NmQ0NjVmZTFlMzJjNDZiYmNlYzJiZmRhNjcyODJlIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMjkgQEAKKzIwMjAtMDktMzAgIERldmluIFJvdXNzbyAgPGRyb3Vzc29AYXBwbGUuY29t
PgorCisgICAgICAgIENTUyBob3ZlciBhbmQgInBvaW50ZXI6IGZpbmUiIG1lZGlhIHF1ZXJpZXMg
ZG8gbm90IGV2YWx1YXRlIHRvIHRydWUgd2l0aCBpT1MgMTMuNCBtb3VzZSBzdXBwb3J0CisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDkyOTIKKyAgICAg
ICAgPHJkYXI6Ly9wcm9ibGVtLzYwNjYzMTI0PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIE9uIGlPUywgdGhlIHByaW1hcnkgcG9pbnRlciB3aWxsIGFs
d2F5cyBiZSB0b3VjaCBpbnB1dCwgc28gdGhlIGBob3ZlcmAvYHBvaW50ZXJgIG1lZGlhIHF1ZXJ5
CisgICAgICAgIHNob3VsZCBuZXZlciBjaGFuZ2UuIElmIGEgbW91c2UgaXMgY29ubmVjdGVkLCBo
b3dldmVyLCBgYW55LWhvdmVyYC9gYW55LXBvaW50ZXJgIHNob3VsZAorICAgICAgICBjaGFuZ2Ug
YXMgbm93IHRoZXJlIGlzIGF0IGxlYXN0IG9uZSBkZXZpY2UgdGhhdCBzdXBwb3J0cyBgaG92ZXJg
L2BmaW5lYC4gTm90ZSB0aGF0IGluIHRoZQorICAgICAgICBjYXNlIG9mIGBhbnktcG9pbnRlcmAg
dGhpcyBtZWFucyB0aGF0IGJvdGggYGNvYXJzZWAgYW5kIGBmaW5lYCB3aWxsIGFwcGx5LiBDYXRh
bHlzdCBhc3N1bWVzCisgICAgICAgIHRoYXQgdGhlcmUgaXMgYWx3YXlzIGEgbW91c2UgY29ubmVj
dGVkLgorCisgICAgICAgIFNwZWM6IGh0dHBzOi8vZHJhZnRzLmNzc3dnLm9yZy9tZWRpYXF1ZXJp
ZXMtNC8jYW55LWlucHV0CisKKyAgICAgICAgKiBjc3MvTWVkaWFRdWVyeUV2YWx1YXRvci5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpoYXNNb3VzZURldmljZSk6IEFkZGVkLgorICAgICAgICAoV2Vi
Q29yZTo6YW55SG92ZXJFdmFsdWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjphbnlQb2ludGVyRXZh
bHVhdGUpOgorCisgICAgICAgICogcGFnZS9DaHJvbWVDbGllbnQuaDoKKyAgICAgICAgKiBsb2Fk
ZXIvRW1wdHlDbGllbnRzLmg6CisgICAgICAgIChXZWJDb3JlOjpFbXB0eUNocm9tZUNsaWVudDo6
aGFzTW91c2VEZXZpY2UpOiBBZGRlZC4KKyAgICAgICAgUHJvdmlkZSBhIHdheSBmb3IgV2ViQ29y
ZSB0byBnZXQgdGhlIGN1cnJlbnQgc3RhdGUgb2Ygd2hldGhlciB0aGVyZSBhcmUgYW55IG1vdXNl
IGRldmljZXMuCisKIDIwMjAtMTAtMDEgIFRydWl0dCBTYXZlbGwgIDx0c2F2ZWxsQGFwcGxlLmNv
bT4KIAogICAgICAgICBVbnJldmlld2VkLCByZXZlcnRpbmcgcjI2Nzg0MS4KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXgg
MDc5ODZiMTZkMGFjMDhkNTE2ZjA0NjNiOGQwYzIwNGZlNjMwYjEwOS4uZmM5MWYwZGU5ZWYzZTdm
NjBiMGI5MDc4Mjk0MmQ2NWRjM2JjNDc2MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFu
Z2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSw3MiBAQAorMjAy
MC0wOS0zMCAgRGV2aW4gUm91c3NvICA8ZHJvdXNzb0BhcHBsZS5jb20+CisKKyAgICAgICAgQ1NT
IGhvdmVyIGFuZCAicG9pbnRlcjogZmluZSIgbWVkaWEgcXVlcmllcyBkbyBub3QgZXZhbHVhdGUg
dG8gdHJ1ZSB3aXRoIGlPUyAxMy40IG1vdXNlIHN1cHBvcnQKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwOTI5MgorICAgICAgICA8cmRhcjovL3Byb2Js
ZW0vNjA2NjMxMjQ+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgT24gaU9TLCB0aGUgcHJpbWFyeSBwb2ludGVyIHdpbGwgYWx3YXlzIGJlIHRvdWNoIGlu
cHV0LCBzbyB0aGUgYGhvdmVyYC9gcG9pbnRlcmAgbWVkaWEgcXVlcnkKKyAgICAgICAgc2hvdWxk
IG5ldmVyIGNoYW5nZS4gSWYgYSBtb3VzZSBpcyBjb25uZWN0ZWQsIGhvd2V2ZXIsIGBhbnktaG92
ZXJgL2BhbnktcG9pbnRlcmAgc2hvdWxkCisgICAgICAgIGNoYW5nZSBhcyBub3cgdGhlcmUgaXMg
YXQgbGVhc3Qgb25lIGRldmljZSB0aGF0IHN1cHBvcnRzIGBob3ZlcmAvYGZpbmVgLiBOb3RlIHRo
YXQgaW4gdGhlCisgICAgICAgIGNhc2Ugb2YgYGFueS1wb2ludGVyYCB0aGlzIG1lYW5zIHRoYXQg
Ym90aCBgY29hcnNlYCBhbmQgYGZpbmVgIHdpbGwgYXBwbHkuIENhdGFseXN0IGFzc3VtZXMKKyAg
ICAgICAgdGhhdCB0aGVyZSBpcyBhbHdheXMgYSBtb3VzZSBjb25uZWN0ZWQuCisKKyAgICAgICAg
U3BlYzogaHR0cHM6Ly9kcmFmdHMuY3Nzd2cub3JnL21lZGlhcXVlcmllcy00LyNhbnktaW5wdXQK
KworICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvV0tNb3VzZURldmljZU9ic2VydmVyLmg6IEFkZGVk
LgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvV0tNb3VzZURldmljZU9ic2VydmVyLm1tOiBBZGRl
ZC4KKyAgICAgICAgKCtbV0tNb3VzZURldmljZU9ic2VydmVyIHNoYXJlZEluc3RhbmNlXSk6Cisg
ICAgICAgICgtW1dLTW91c2VEZXZpY2VPYnNlcnZlciBkZWFsbG9jXSk6CisgICAgICAgICgtW1dL
TW91c2VEZXZpY2VPYnNlcnZlciBhZGRXZWJQcm9jZXNzUHJveHk6XSk6CisgICAgICAgICgtW1dL
TW91c2VEZXZpY2VPYnNlcnZlciByZW1vdmVXZWJQcm9jZXNzUHJveHk6XSk6CisgICAgICAgICgt
W1dLTW91c2VEZXZpY2VPYnNlcnZlciBzdGFydF0pOgorICAgICAgICAoLVtXS01vdXNlRGV2aWNl
T2JzZXJ2ZXIgc3RvcF0pOgorICAgICAgICAoLVtXS01vdXNlRGV2aWNlT2JzZXJ2ZXIgbW91c2VQ
b2ludGVyRGV2aWNlc0RpZENoYW5nZTpdKToKKyAgICAgICAgKC1bV0tNb3VzZURldmljZU9ic2Vy
dmVyIF9zZXRIYXNNb3VzZURldmljZUZvclRlc3Rpbmc6XSk6CisgICAgICAgIFVzZSBgQmFja0Jv
YXJkU2VydmljZXNgIHRvIGxpc3RlbiBmb3IgbW91c2UgZGV2aWNlcyBjaGFuZ2VzIGFuZCBub3Rp
ZnkgYWxsIFdlYlByb2Nlc3MuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5
Lmg6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHA6CisgICAgICAgIChX
ZWJLaXQ6OldlYlByb2Nlc3NQcm94eTo6Y29ubmVjdGlvbldpbGxPcGVuKToKKyAgICAgICAgKFdl
YktpdDo6V2ViUHJvY2Vzc1Byb3h5OjpwbGF0Zm9ybUNvbm5lY3Rpb25XaWxsT3Blbik6IEFkZGVk
LgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUHJveHk6OnByb2Nlc3NXaWxsU2h1dERvd24p
OgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUHJveHk6OnBsYXRmb3JtUHJvY2Vzc1dpbGxT
aHV0RG93bik6IEFkZGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvV2ViUHJvY2Vzc1Byb3h5
SU9TLm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUHJveHk6OnBsYXRmb3JtQ29ubmVj
dGlvbldpbGxPcGVuKTogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQcm94eTo6
cGxhdGZvcm1Qcm9jZXNzV2lsbFNodXREb3duKTogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6Oldl
YlByb2Nlc3NQcm94eTo6c2V0SGFzTW91c2VEZXZpY2UpOiBBZGRlZC4KKyAgICAgICAgQXR0YWNo
IHRvIHRoZSBzaGFyZWQgYFdLTW91c2VEZXZpY2VPYnNlcnZlcmAgd2hlbiBjcmVhdGluZyB0aGUg
V2ViUHJvY2VzcyBzbyB0aGF0IHRoZSBzaGFyZWQKKyAgICAgICAgYFdLTW91c2VEZXZpY2VPYnNl
cnZlcmAga25vd3MgdG8gbm90aWZ5IHRoYXQgaW5zdGFuY2Ugd2hlbiBtb3VzZSBkZXZpY2VzIGNo
YW5nZS4KKworICAgICAgICAqIFNoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmg6
CisgICAgICAgICogU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwOgorICAg
ICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzOjplbmNvZGUgY29uc3Qp
OgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzOjpkZWNvZGUp
OgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9XZWJQcm9jZXNzUG9vbENvY29hLm1tOgorICAg
ICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUG9vbDo6cGxhdGZvcm1Jbml0aWFsaXplV2ViUHJvY2Vz
cyk6CisgICAgICAgIFVzZSB0aGUgY3VycmVudCBzdGF0ZSBvZiB0aGUgc2hhcmVkIGBXS01vdXNl
RGV2aWNlT2JzZXJ2ZXJgIHdoZW4gY3JlYXRpbmcgV2ViUHJvY2VzcyBpbnN0ZWFkCisgICAgICAg
IG9mIHNlbmRpbmcgYSBgU2V0SGFzTW91c2VEZXZpY2VgIG1lc3NhZ2UgaW1tZWRpYXRlbHkgYWZ0
ZXIgdGhlIFdlYlByb2Nlc3MgaXMgY3JlYXRlZC4KKworICAgICAgICAqIFdlYlByb2Nlc3MvV2Vi
UHJvY2Vzcy5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlByb2Nlc3MuaDoK
KyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6aGFzTW91c2VEZXZpY2UgY29uc3QpOiBBZGRl
ZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwOgorICAgICAgICAoV2ViS2l0
OjpXZWJQcm9jZXNzOjppbml0aWFsaXplV2ViUHJvY2Vzcyk6CisgICAgICAgIChXZWJLaXQ6Oldl
YlByb2Nlc3M6OnNldEhhc01vdXNlRGV2aWNlKTogQWRkZWQuCisgICAgICAgIFVwZGF0ZSBzdHls
ZSAoaW5jbHVkaW5nIGBhbnktaG92ZXJgIGFuZCBgYW55LXBvaW50ZXJgKSB3aGVuZXZlciBtb3Vz
ZSBkZXZpY2VzIGNoYW5nZS4KKworICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
V2ViQ2hyb21lQ2xpZW50Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9X
ZWJDaHJvbWVDbGllbnQuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJDaHJvbWVDbGllbnQ6Omhh
c01vdXNlRGV2aWNlKTogQWRkZWQuCisgICAgICAgIFByb3ZpZGUgYSB3YXkgZm9yIFdlYkNvcmUg
dG8gZ2V0IHRoZSBjdXJyZW50IHN0YXRlIG9mIHdoZXRoZXIgdGhlcmUgYXJlIGFueSBtb3VzZSBk
ZXZpY2VzLgorCisgICAgICAgICogQ29uZmlndXJhdGlvbnMvV2ViS2l0LnhjY29uZmlnOgorICAg
ICAgICAqIFBsYXRmb3JtL3NwaS9pb3MvQmFja0JvYXJkU2VydmljZXNTUEkuaDoKKyAgICAgICAg
KiBQbGF0Zm9ybS9zcGkvaW9zL0Jhc2VCb2FyZFNQSS5oOiBBZGRlZC4KKyAgICAgICAgKiBTb3Vy
Y2VzQ29jb2EudHh0OgorICAgICAgICAqIFdlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
OgorCiAyMDIwLTEwLTAxICBFcmljIENhcmxzb24gIDxlcmljLmNhcmxzb25AYXBwbGUuY29tPgog
CiAgICAgICAgIFByZXZlbnQgbWVkaWEgY2FwdHVyZSB1bmxlc3MgdGhlIGFwcGxpY2F0aW9uIGhh
cyBjb3JyZWN0IGRhdGEgZm9yIHN5c3RlbSBwZXJtaXNzaW9uIHByb21wdApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdExlZ2FjeS9pb3MvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdExlZ2FjeS9p
b3MvQ2hhbmdlTG9nCmluZGV4IDEyZTY1NWIxZWNkZDVkNDcwZjNlYTQwZmFjNzgzNWZlMWY1N2Zi
ZmMuLmY4N2MwODZiMzYxNjhhNGFiNjY4YzliNzFkOTg1NTI1MWUzZDcxODggMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXRMZWdhY3kvaW9zL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0TGVn
YWN5L2lvcy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAyMC0wOS0zMCAgRGV2aW4gUm91
c3NvICA8ZHJvdXNzb0BhcHBsZS5jb20+CisKKyAgICAgICAgQ1NTIGhvdmVyIGFuZCAicG9pbnRl
cjogZmluZSIgbWVkaWEgcXVlcmllcyBkbyBub3QgZXZhbHVhdGUgdG8gdHJ1ZSB3aXRoIGlPUyAx
My40IG1vdXNlIHN1cHBvcnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTIwOTI5MgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNjA2NjMxMjQ+CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXZWJDb3JlU3Vw
cG9ydC9XZWJDaHJvbWVDbGllbnRJT1MuaDoKKyAgICAgICAgKFdlYkNocm9tZUNsaWVudElPUzo6
aGFzTW91c2VEZXZpY2UpOiBBZGRlZC4KKyAgICAgICAgTW91c2UgZGV2aWNlcyBhcmUgbm90IHN1
cHBvcnRlZCBmb3IgV0sxLgorCiAyMDIwLTA5LTIwICBEYXJpbiBBZGxlciAgPGRhcmluQGFwcGxl
LmNvbT4KIAogICAgICAgICBOZXh0IHN0ZXAgdG93YXJkcyBlbGltaW5hdGluZyBkZXByZWNhdGVk
IGxlZ2FjeSBwb3NpdGlvbnMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9NZWRpYVF1
ZXJ5RXZhbHVhdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5RXZhbHVhdG9y
LmNwcAppbmRleCA4MTE4YjdhYjNjNTBiM2NlZDgxMjBmYzEwNmRjZTljNzMxNDFhZmU0Li4yMmJl
MzkwNDE2NjIwNmE2YWM3MzM3ZDI5MjNhNDg1MDAyYjExMGM4IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9jc3MvTWVkaWFRdWVyeUV2YWx1YXRvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
Y3NzL01lZGlhUXVlcnlFdmFsdWF0b3IuY3BwCkBAIC0zMyw2ICszMyw4IEBACiAjaW5jbHVkZSAi
Q1NTUHJpbWl0aXZlVmFsdWUuaCIKICNpbmNsdWRlICJDU1NUb0xlbmd0aENvbnZlcnNpb25EYXRh
LmgiCiAjaW5jbHVkZSAiQ1NTVmFsdWVLZXl3b3Jkcy5oIgorI2luY2x1ZGUgIkNocm9tZS5oIgor
I2luY2x1ZGUgIkNocm9tZUNsaWVudC5oIgogI2luY2x1ZGUgIkZyYW1lLmgiCiAjaW5jbHVkZSAi
RnJhbWVWaWV3LmgiCiAjaW5jbHVkZSAiTG9nZ2luZy5oIgpAQCAtNzEyLDYgKzcxNCwyNyBAQCBz
dGF0aWMgYm9vbCB2aWRlb1BsYXlhYmxlSW5saW5lRXZhbHVhdGUoQ1NTVmFsdWUqLCBjb25zdCBD
U1NUb0xlbmd0aENvbnZlcnNpb25EYQogICAgIHJldHVybiBmcmFtZS5zZXR0aW5ncygpLmFsbG93
c0lubGluZU1lZGlhUGxheWJhY2soKTsKIH0KIAorc3RhdGljIGJvb2wgaGFzTW91c2VEZXZpY2Uo
RnJhbWUmIGZyYW1lKQoreworI2lmICEoSEFWRShVSUtJVF9XSVRIX01PVVNFX1NVUFBPUlQpICYm
IFBMQVRGT1JNKE1BQ0NBVEFMWVNUKSkKKworI2lmIEhBVkUoVUlLSVRfV0lUSF9NT1VTRV9TVVBQ
T1JUKSAmJiBQTEFURk9STShJT1MpCisgICAgYXV0byogcGFnZSA9IGZyYW1lLnBhZ2UoKTsKKyAg
ICBpZiAocGFnZSAmJiBwYWdlLT5jaHJvbWUoKS5jbGllbnQoKS5oYXNNb3VzZURldmljZSgpKQor
ICAgICAgICByZXR1cm4gdHJ1ZTsKKyNlbmRpZiAvLyBIQVZFKFVJS0lUX1dJVEhfTU9VU0VfU1VQ
UE9SVCkgJiYgUExBVEZPUk0oSU9TKQorCisjaWYgRU5BQkxFKFRPVUNIX0VWRU5UUykKKyAgICBp
ZiAoc2NyZWVuSGFzVG91Y2hEZXZpY2UoKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworI2VuZGlm
IC8vIEVOQUJMRShUT1VDSF9FVkVOVFMpCisKKyNlbmRpZiAvLyAhKEhBVkUoVUlLSVRfV0lUSF9N
T1VTRV9TVVBQT1JUKSAmJiBQTEFURk9STShNQUNDQVRBTFlTVCkpCisKKyAgICBVTlVTRURfUEFS
QU0oZnJhbWUpOworICAgIHJldHVybiB0cnVlOworfQorCiBzdGF0aWMgYm9vbCBob3ZlckV2YWx1
YXRlKENTU1ZhbHVlKiB2YWx1ZSwgY29uc3QgQ1NTVG9MZW5ndGhDb252ZXJzaW9uRGF0YSYsIEZy
YW1lJiwgTWVkaWFGZWF0dXJlUHJlZml4KQogewogICAgIGlmICghaXM8Q1NTUHJpbWl0aXZlVmFs
dWU+KHZhbHVlKSkgewpAQCAtNzMwLDIyICs3NTMsMTMgQEAgc3RhdGljIGJvb2wgaG92ZXJFdmFs
dWF0ZShDU1NWYWx1ZSogdmFsdWUsIGNvbnN0IENTU1RvTGVuZ3RoQ29udmVyc2lvbkRhdGEmLCBG
cmEKICAgICByZXR1cm4ga2V5d29yZCA9PSBDU1NWYWx1ZUhvdmVyOwogfQogCi1zdGF0aWMgYm9v
bCBhbnlIb3ZlckV2YWx1YXRlKENTU1ZhbHVlKiB2YWx1ZSwgY29uc3QgQ1NTVG9MZW5ndGhDb252
ZXJzaW9uRGF0YSYsIEZyYW1lJiwgTWVkaWFGZWF0dXJlUHJlZml4KQorc3RhdGljIGJvb2wgYW55
SG92ZXJFdmFsdWF0ZShDU1NWYWx1ZSogdmFsdWUsIGNvbnN0IENTU1RvTGVuZ3RoQ29udmVyc2lv
bkRhdGEmLCBGcmFtZSYgZnJhbWUsIE1lZGlhRmVhdHVyZVByZWZpeCkKIHsKLSAgICBpZiAoIWlz
PENTU1ByaW1pdGl2ZVZhbHVlPih2YWx1ZSkpIHsKLSNpZiBFTkFCTEUoVE9VQ0hfRVZFTlRTKQot
ICAgICAgICByZXR1cm4gIXNjcmVlbkhhc1RvdWNoRGV2aWNlKCk7Ci0jZWxzZQotICAgICAgICBy
ZXR1cm4gdHJ1ZTsKLSNlbmRpZgotICAgIH0KKyAgICBpZiAoIWlzPENTU1ByaW1pdGl2ZVZhbHVl
Pih2YWx1ZSkpCisgICAgICAgIHJldHVybiBoYXNNb3VzZURldmljZShmcmFtZSk7CiAKICAgICBh
dXRvIGtleXdvcmQgPSBkb3duY2FzdDxDU1NQcmltaXRpdmVWYWx1ZT4oKnZhbHVlKS52YWx1ZUlE
KCk7Ci0jaWYgRU5BQkxFKFRPVUNIX0VWRU5UUykKLSAgICBpZiAoc2NyZWVuSGFzVG91Y2hEZXZp
Y2UoKSkKLSAgICAgICAgcmV0dXJuIGtleXdvcmQgPT0gQ1NTVmFsdWVOb25lOwotI2VuZGlmCi0g
ICAgcmV0dXJuIGtleXdvcmQgPT0gQ1NTVmFsdWVIb3ZlcjsKKyAgICByZXR1cm4gaGFzTW91c2VE
ZXZpY2UoZnJhbWUpID8gKGtleXdvcmQgPT0gQ1NTVmFsdWVIb3ZlcikgOiAoa2V5d29yZCA9PSBD
U1NWYWx1ZU5vbmUpOwogfQogCiBzdGF0aWMgYm9vbCBwb2ludGVyRXZhbHVhdGUoQ1NTVmFsdWUq
IHZhbHVlLCBjb25zdCBDU1NUb0xlbmd0aENvbnZlcnNpb25EYXRhJiwgRnJhbWUmIGZyYW1lLCBN
ZWRpYUZlYXR1cmVQcmVmaXgpCkBAIC03NjUsMTcgKzc3OSwyMiBAQCBzdGF0aWMgYm9vbCBwb2lu
dGVyRXZhbHVhdGUoQ1NTVmFsdWUqIHZhbHVlLCBjb25zdCBDU1NUb0xlbmd0aENvbnZlcnNpb25E
YXRhJiwgRgogICAgIHJldHVybiBrZXl3b3JkID09IENTU1ZhbHVlRmluZTsKIH0KIAotc3RhdGlj
IGJvb2wgYW55UG9pbnRlckV2YWx1YXRlKENTU1ZhbHVlKiB2YWx1ZSwgY29uc3QgQ1NTVG9MZW5n
dGhDb252ZXJzaW9uRGF0YSYsIEZyYW1lJiwgTWVkaWFGZWF0dXJlUHJlZml4KQorc3RhdGljIGJv
b2wgYW55UG9pbnRlckV2YWx1YXRlKENTU1ZhbHVlKiB2YWx1ZSwgY29uc3QgQ1NTVG9MZW5ndGhD
b252ZXJzaW9uRGF0YSYsIEZyYW1lJiBmcmFtZSwgTWVkaWFGZWF0dXJlUHJlZml4KQogewogICAg
IGlmICghaXM8Q1NTUHJpbWl0aXZlVmFsdWU+KHZhbHVlKSkKICAgICAgICAgcmV0dXJuIHRydWU7
CiAKICAgICBhdXRvIGtleXdvcmQgPSBkb3duY2FzdDxDU1NQcmltaXRpdmVWYWx1ZT4oKnZhbHVl
KS52YWx1ZUlEKCk7CisKKyAgICBpZiAoa2V5d29yZCA9PSBDU1NWYWx1ZUZpbmUpCisgICAgICAg
IHJldHVybiBoYXNNb3VzZURldmljZShmcmFtZSk7CisKICNpZiBFTkFCTEUoVE9VQ0hfRVZFTlRT
KQotICAgIGlmIChzY3JlZW5IYXNUb3VjaERldmljZSgpKQotICAgICAgICByZXR1cm4ga2V5d29y
ZCA9PSBDU1NWYWx1ZUNvYXJzZTsKLSNlbmRpZgotICAgIHJldHVybiBrZXl3b3JkID09IENTU1Zh
bHVlRmluZTsKKyAgICBpZiAoa2V5d29yZCA9PSBDU1NWYWx1ZUNvYXJzZSkKKyAgICAgICAgcmV0
dXJuIHNjcmVlbkhhc1RvdWNoRGV2aWNlKCk7CisjZW5kaWYgLy8gRU5BQkxFKFRPVUNIX0VWRU5U
UykKKworICAgIHJldHVybiBmYWxzZTsKIH0KIAogc3RhdGljIGJvb2wgcHJlZmVyc0RhcmtJbnRl
cmZhY2VFdmFsdWF0ZShDU1NWYWx1ZSogdmFsdWUsIGNvbnN0IENTU1RvTGVuZ3RoQ29udmVyc2lv
bkRhdGEmLCBGcmFtZSYgZnJhbWUsIE1lZGlhRmVhdHVyZVByZWZpeCkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9FbXB0eUNsaWVudHMuaAppbmRleCAzZTlkZTdkMjY2YTlkZWE2ZTFhMDM0NDZhNTllZjdmNDAw
NjA5OTRlLi5jMDM1YjA4YzM2OTA2NjEzMmMyYmI1NzU0MDYwYzdhYWFkYmQwZTgwIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5oCkBAIC0xMDIsNiArMTAyLDEwIEBAIGNsYXNzIEVt
cHR5Q2hyb21lQ2xpZW50IDogcHVibGljIENocm9tZUNsaWVudCB7CiAKICAgICBLZXlib2FyZFVJ
TW9kZSBrZXlib2FyZFVJTW9kZSgpIGZpbmFsIHsgcmV0dXJuIEtleWJvYXJkQWNjZXNzRGVmYXVs
dDsgfQogCisjaWYgSEFWRShVSUtJVF9XSVRIX01PVVNFX1NVUFBPUlQpICYmIFBMQVRGT1JNKElP
UykKKyAgICBib29sIGhhc01vdXNlRGV2aWNlKCkgZmluYWwgeyByZXR1cm4gZmFsc2U7IH0KKyNl
bmRpZgorCiAgICAgdm9pZCBpbnZhbGlkYXRlUm9vdFZpZXcoY29uc3QgSW50UmVjdCYpIGZpbmFs
IHsgfQogICAgIHZvaWQgaW52YWxpZGF0ZUNvbnRlbnRzQW5kUm9vdFZpZXcoY29uc3QgSW50UmVj
dCYpIG92ZXJyaWRlIHsgfQogICAgIHZvaWQgaW52YWxpZGF0ZUNvbnRlbnRzRm9yU2xvd1Njcm9s
bChjb25zdCBJbnRSZWN0JikgZmluYWwgeyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL0Nocm9tZUNsaWVudC5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaApp
bmRleCBmZTU5ZGI4NGFlYWNhNWY5OTEyMWI3OTBkMDA4MDkyMDYyZmY0Y2MxLi5jZjIzYzQ1Mzlj
ODNhOTI3NzMxZjNjMGQ5ZmFiMTk2NDdlNzdhYmRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL0Nocm9tZUNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xp
ZW50LmgKQEAgLTE3OCw2ICsxNzgsMTAgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBzZXRT
dGF0dXNiYXJUZXh0KGNvbnN0IFN0cmluZyYpID0gMDsKICAgICB2aXJ0dWFsIEtleWJvYXJkVUlN
b2RlIGtleWJvYXJkVUlNb2RlKCkgPSAwOwogCisjaWYgSEFWRShVSUtJVF9XSVRIX01PVVNFX1NV
UFBPUlQpICYmIFBMQVRGT1JNKElPUykKKyAgICB2aXJ0dWFsIGJvb2wgaGFzTW91c2VEZXZpY2Uo
KSA9IDA7CisjZW5kaWYKKwogICAgIHZpcnR1YWwgYm9vbCBzdXBwb3J0c0ltbWVkaWF0ZUludmFs
aWRhdGlvbigpIHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgdmlydHVhbCB2b2lkIGludmFsaWRhdGVS
b290Vmlldyhjb25zdCBJbnRSZWN0JikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBpbnZhbGlkYXRl
Q29udGVudHNBbmRSb290Vmlldyhjb25zdCBJbnRSZWN0JikgPSAwOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9Db25maWd1cmF0aW9ucy9XZWJLaXQueGNjb25maWcgYi9Tb3VyY2UvV2ViS2l0
L0NvbmZpZ3VyYXRpb25zL1dlYktpdC54Y2NvbmZpZwppbmRleCA1Zjc1ZWNiYjE0OWM1NTFhNDUx
MWE5MDZmZDdmNDNjMTdlOTg4OTIxLi5jZTcxODU5ZGRhOTA1NGFkZmMwNDU1ODQwN2YxNjRlMzdl
MzZmZjdiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NvbmZpZ3VyYXRpb25zL1dlYktpdC54
Y2NvbmZpZworKysgYi9Tb3VyY2UvV2ViS2l0L0NvbmZpZ3VyYXRpb25zL1dlYktpdC54Y2NvbmZp
ZwpAQCAtNjAsNiArNjAsMTAgQEAgV0tfQVNTRVJUSU9OX1NFUlZJQ0VTX0xERkxBR1NfYXBwbGV0
dm9zID0gLWZyYW1ld29yayBBc3NlcnRpb25TZXJ2aWNlczsKIFdLX0FTU0VSVElPTl9TRVJWSUNF
U19MREZMQUdTX2FwcGxldHZzaW11bGF0b3IgPSAtZnJhbWV3b3JrIEFzc2VydGlvblNlcnZpY2Vz
OwogV0tfQVNTRVJUSU9OX1NFUlZJQ0VTX0xERkxBR1NfbWFjY2F0YWx5c3QgPSAtZnJhbWV3b3Jr
IEFzc2VydGlvblNlcnZpY2VzOwogCitXS19CQUNLQk9BUkRfU0VSVklDRVNfTERGTEFHUyA9ICQo
V0tfQkFDS0JPQVJEX1NFUlZJQ0VTX0xERkxBR1NfJChXS19QTEFURk9STV9OQU1FKSk7CitXS19C
QUNLQk9BUkRfU0VSVklDRVNfTERGTEFHU19pcGhvbmVvcyA9IC1mcmFtZXdvcmsgQmFja0JvYXJk
U2VydmljZXM7CitXS19CQUNLQk9BUkRfU0VSVklDRVNfTERGTEFHU19pcGhvbmVzaW11bGF0b3Ig
PSAtZnJhbWV3b3JrIEJhY2tCb2FyZFNlcnZpY2VzOworCiBXS19SVU5OSU5HQk9BUkRfU0VSVklD
RVNfTERGTEFHUyA9ICQoV0tfUlVOTklOR0JPQVJEX1NFUlZJQ0VTX0xERkxBR1NfJChXS19DT0NP
QV9UT1VDSCkpOwogV0tfUlVOTklOR0JPQVJEX1NFUlZJQ0VTX0xERkxBR1NfY29jb2F0b3VjaCA9
IC1mcmFtZXdvcmsgUnVubmluZ0JvYXJkU2VydmljZXM7CiAKQEAgLTEyMyw3ICsxMjcsNyBAQCBX
S19BVVRIS0lUX0xERkxBR1NfSU9TX1NJTkNFXzEzID0gLWZyYW1ld29yayBBdXRoS2l0OwogV0tf
QVVUSEtJVF9MREZMQUdTX21hY29zeCA9ICQoV0tfQVVUSEtJVF9MREZMQUdTJChXS19NQUNPU18x
MDE1KSk7CiBXS19BVVRIS0lUX0xERkxBR1NfTUFDT1NfU0lOQ0VfMTAxNSA9IC1mcmFtZXdvcmsg
QXV0aEtpdDsKIAotRlJBTUVXT1JLX0FORF9MSUJSQVJZX0xERkxBR1MgPSAtbG9iamMgLWZyYW1l
d29yayBDRk5ldHdvcmsgLWZyYW1ld29yayBDb3JlQXVkaW8gLWZyYW1ld29yayBDb3JlRm91bmRh
dGlvbiAtZnJhbWV3b3JrIENvcmVHcmFwaGljcyAtZnJhbWV3b3JrIENvcmVUZXh0IC1mcmFtZXdv
cmsgRm91bmRhdGlvbiAtZnJhbWV3b3JrIEltYWdlSU8gLWZyYW1ld29yayBJT0tpdCAtZnJhbWV3
b3JrIElPU3VyZmFjZSAtZnJhbWV3b3JrIFdlYktpdExlZ2FjeSAtbG5ldHdvcmsgJChXS19BQ0NF
U1NJQklMSVRZX0xERkxBR1MpICQoV0tfQVBQS0lUX0xERkxBR1MpICQoV0tfQVNTRVJUSU9OX1NF
UlZJQ0VTX0xERkxBR1MpICQoV0tfUlVOTklOR0JPQVJEX1NFUlZJQ0VTX0xERkxBR1MpICQoV0tf
QVVUSEtJVF9MREZMQUdTKSAkKFdLX0NBUkJPTl9MREZMQUdTKSAkKFdLX0NPUkVfUFJFRElDVElP
Tl9MREZMQUdTKSAkKFdLX0NPUkVfU0VSVklDRVNfTERGTEFHUykgJChXS19HUkFQSElDU19TRVJW
SUNFU19MREZMQUdTKSAkKFdLX0xJQlNBTkRCT1hfTERGTEFHUykgJChXS19MSUJXRUJSVENfTERG
TEFHUykgJChXS19NT0JJTEVfQ09SRV9TRVJWSUNFU19MREZMQUdTKSAkKFdLX01PQklMRV9HRVNU
QUxUX0xERkxBR1MpICQoV0tfUERGS0lUX0xERkxBR1MpICQoV0tfU0FGRV9CUk9XU0lOR19MREZM
QUdTKSAkKFdLX1NFQ1VSSVRZX0lOVEVSRkFDRV9MREZMQUdTKSAkKFdLX1VJS0lUX0xERkxBR1Mp
ICQoV0tfVVJMX0ZPUk1BVFRJTkdfTERGTEFHUykgJChXS19XRUJJTlNQRUNUT1JVSV9MREZMQUdT
KTsKK0ZSQU1FV09SS19BTkRfTElCUkFSWV9MREZMQUdTID0gLWxvYmpjIC1mcmFtZXdvcmsgQ0ZO
ZXR3b3JrIC1mcmFtZXdvcmsgQ29yZUF1ZGlvIC1mcmFtZXdvcmsgQ29yZUZvdW5kYXRpb24gLWZy
YW1ld29yayBDb3JlR3JhcGhpY3MgLWZyYW1ld29yayBDb3JlVGV4dCAtZnJhbWV3b3JrIEZvdW5k
YXRpb24gLWZyYW1ld29yayBJbWFnZUlPIC1mcmFtZXdvcmsgSU9LaXQgLWZyYW1ld29yayBJT1N1
cmZhY2UgLWZyYW1ld29yayBXZWJLaXRMZWdhY3kgLWxuZXR3b3JrICQoV0tfQUNDRVNTSUJJTElU
WV9MREZMQUdTKSAkKFdLX0FQUEtJVF9MREZMQUdTKSAkKFdLX0FTU0VSVElPTl9TRVJWSUNFU19M
REZMQUdTKSAkKFdLX0JBQ0tCT0FSRF9TRVJWSUNFU19MREZMQUdTKSAkKFdLX1JVTk5JTkdCT0FS
RF9TRVJWSUNFU19MREZMQUdTKSAkKFdLX0FVVEhLSVRfTERGTEFHUykgJChXS19DQVJCT05fTERG
TEFHUykgJChXS19DT1JFX1BSRURJQ1RJT05fTERGTEFHUykgJChXS19DT1JFX1NFUlZJQ0VTX0xE
RkxBR1MpICQoV0tfR1JBUEhJQ1NfU0VSVklDRVNfTERGTEFHUykgJChXS19MSUJTQU5EQk9YX0xE
RkxBR1MpICQoV0tfTElCV0VCUlRDX0xERkxBR1MpICQoV0tfTU9CSUxFX0NPUkVfU0VSVklDRVNf
TERGTEFHUykgJChXS19NT0JJTEVfR0VTVEFMVF9MREZMQUdTKSAkKFdLX1BERktJVF9MREZMQUdT
KSAkKFdLX1NBRkVfQlJPV1NJTkdfTERGTEFHUykgJChXS19TRUNVUklUWV9JTlRFUkZBQ0VfTERG
TEFHUykgJChXS19VSUtJVF9MREZMQUdTKSAkKFdLX1VSTF9GT1JNQVRUSU5HX0xERkxBR1MpICQo
V0tfV0VCSU5TUEVDVE9SVUlfTERGTEFHUyk7CiAKIC8vIFByZXZlbnQgQysrIHN0YW5kYXJkIGxp
YnJhcnkgYmFzaWNfc3RyaW5nc3RyZWFtLCBvcGVyYXRvciBuZXcsIGRlbGV0ZSBhbmQgdGhlaXIg
cmVsYXRlZCBleGNlcHRpb24gdHlwZXMgZnJvbSBiZWluZyBleHBvcnRlZCBhcyB3ZWFrIHN5bWJv
bHMuCiBVTkVYUE9SVEVEX1NZTUJPTF9MREZMQUdTID0gLVdsLC11bmV4cG9ydGVkX3N5bWJvbCAt
V2wsX19aVElTdDliYWRfYWxsb2MgLVdsLC11bmV4cG9ydGVkX3N5bWJvbCAtV2wsX19aVElTdDll
eGNlcHRpb24gLVdsLC11bmV4cG9ydGVkX3N5bWJvbCAtV2wsX19aVFNTdDliYWRfYWxsb2MgLVds
LC11bmV4cG9ydGVkX3N5bWJvbCAtV2wsX19aVFNTdDlleGNlcHRpb24gLVdsLC11bmV4cG9ydGVk
X3N5bWJvbCAtV2wsX19aZGxQdlNfIC1XbCwtdW5leHBvcnRlZF9zeW1ib2wgLVdsLF9fWm53bVB2
IC1XbCwtdW5leHBvcnRlZF9zeW1ib2wgLVdsLF9fWm53bSAtV2wsLXVuZXhwb3J0ZWRfc3ltYm9s
IC1XbCxfX1pOU3QzX18xOGZ1bmN0aW9uSUZ2TjdXZWJDb3JlMTJQb2xpY3lBY3Rpb25FRUVDMkVP
UzRfIC1XbCwtdW5leHBvcnRlZF9zeW1ib2wgLVdsLF9fWk5TdDNfXzE4ZnVuY3Rpb25JRnZON1dl
YkNvcmUxMlBvbGljeUFjdGlvbkVFRUMxRU9TNF8gLVdsLC11bmV4cG9ydGVkX3N5bWJvbCAtV2ws
X19aTlN0M19fMThmdW5jdGlvbklGdk43V2ViQ29yZTEyUG9saWN5QWN0aW9uRUVFYVNFRG4gLVds
LC11bmV4cG9ydGVkX3N5bWJvbCAtV2wsX19aTktTdDNfXzE4ZnVuY3Rpb25JRnZON1dlYkNvcmUx
MlBvbGljeUFjdGlvbkVFRWNsRVMyXyAtV2wsLXVuZXhwb3J0ZWRfc3ltYm9sIC1XbCxfX1pOU3Qz
X18xOGZ1bmN0aW9uSUZ2TjdXZWJDb3JlMTJQb2xpY3lBY3Rpb25FRUU0c3dhcEVSUzRfIC1XbCwt
dW5leHBvcnRlZF9zeW1ib2wgLVdsLF9fWk5TdDNfXzE4ZnVuY3Rpb25JRnZON1dlYkNvcmUxMlBv
bGljeUFjdGlvbkVFRUMxRVJLUzRfIC1XbCwtdW5leHBvcnRlZF9zeW1ib2wgLVdsLF9fWk5TdDNf
XzE4ZnVuY3Rpb25JRnZON1dlYkNvcmUxMlBvbGljeUFjdGlvbkVFRUMyRVJLUzRfIC1XbCwtdW5l
eHBvcnRlZF9zeW1ib2wgLVdsLF9fWk5TdDNfXzE4ZnVuY3Rpb25JRnZON1dlYkNvcmUxMlBvbGlj
eUFjdGlvbkVFRUQxRXYgLVdsLC11bmV4cG9ydGVkX3N5bWJvbCAtV2wsX19aTlN0M19fMThmdW5j
dGlvbklGdk43V2ViQ29yZTEyUG9saWN5QWN0aW9uRUVFRDJFdiAtV2wsLXVuZXhwb3J0ZWRfc3lt
Ym9sIC1XbCxfX1pOU3QzX18xOGZ1bmN0aW9uSUZ2TjdXZWJDb3JlMTJQb2xpY3lBY3Rpb25FRUVh
U0VSS1M0XyAtV2wsLXVuZXhwb3J0ZWRfc3ltYm9sIC1XbCxfX1pUVk5TdDNfXzExN2JhZF9mdW5j
dGlvbl9jYWxsRSAtV2wsLXVuZXhwb3J0ZWRfc3ltYm9sIC1XbCxfX1pUQ05TdDNfXzExOGJhc2lj
X3N0cmluZ3N0cmVhbUljTlNfMTFjaGFyX3RyYWl0c0ljRUVOU185YWxsb2NhdG9ySWNFRUVFMF9O
U18xM2Jhc2ljX2lzdHJlYW1JY1MyX0VFIC1XbCwtdW5leHBvcnRlZF9zeW1ib2wgLVdsLF9fWlRD
TlN0M19fMTE4YmFzaWNfc3RyaW5nc3RyZWFtSWNOU18xMWNoYXJfdHJhaXRzSWNFRU5TXzlhbGxv
Y2F0b3JJY0VFRUUwX05TXzE0YmFzaWNfaW9zdHJlYW1JY1MyX0VFIC1XbCwtdW5leHBvcnRlZF9z
eW1ib2wgLVdsLF9fWlRDTlN0M19fMTE4YmFzaWNfc3RyaW5nc3RyZWFtSWNOU18xMWNoYXJfdHJh
aXRzSWNFRU5TXzlhbGxvY2F0b3JJY0VFRUUxNl9OU18xM2Jhc2ljX29zdHJlYW1JY1MyX0VFIC1X
bCwtdW5leHBvcnRlZF9zeW1ib2wgLVdsLF9fWlRUTlN0M19fMTE4YmFzaWNfc3RyaW5nc3RyZWFt
SWNOU18xMWNoYXJfdHJhaXRzSWNFRU5TXzlhbGxvY2F0b3JJY0VFRUUgLVdsLC11bmV4cG9ydGVk
X3N5bWJvbCAtV2wsX19aVFZOU3QzX18xMTViYXNpY19zdHJpbmdidWZJY05TXzExY2hhcl90cmFp
dHNJY0VFTlNfOWFsbG9jYXRvckljRUVFRSAtV2wsLXVuZXhwb3J0ZWRfc3ltYm9sIC1XbCxfX1pU
Vk5TdDNfXzExOGJhc2ljX3N0cmluZ3N0cmVhbUljTlNfMTFjaGFyX3RyYWl0c0ljRUVOU185YWxs
b2NhdG9ySWNFRUVFIC1XbCwtdW5leHBvcnRlZF9zeW1ib2wgLVdsLF9fWlRDTlN0M19fMTE4YmFz
aWNfc3RyaW5nc3RyZWFtSWNOU18xMWNoYXJfdHJhaXRzSWNFRU5TXzlhbGxvY2F0b3JJY0VFRUU4
X05TXzEzYmFzaWNfb3N0cmVhbUljUzJfRUU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1Bs
YXRmb3JtL3NwaS9pb3MvQmFja0JvYXJkU2VydmljZXNTUEkuaCBiL1NvdXJjZS9XZWJLaXQvUGxh
dGZvcm0vc3BpL2lvcy9CYWNrQm9hcmRTZXJ2aWNlc1NQSS5oCmluZGV4IDZkOGQ4OTQzZTRjYzNj
YTc5OWYzNzIyMTQ0MTM2OTI0MDlkNzk2MzcuLjA5MDE0ZDQ0MWUxYWQ5YjBmNGYyNzAzN2JkYzEw
YzIzM2Q0NWVjMWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vc3BpL2lvcy9C
YWNrQm9hcmRTZXJ2aWNlc1NQSS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vc3BpL2lv
cy9CYWNrQm9hcmRTZXJ2aWNlc1NQSS5oCkBAIC0yNywxMSArMjcsMjcgQEAKIAogI2ltcG9ydCA8
QmFja0JvYXJkU2VydmljZXMvQktTQW5pbWF0aW9uRmVuY2UuaD4KICNpbXBvcnQgPEJhY2tCb2Fy
ZFNlcnZpY2VzL0JLU0FuaW1hdGlvbkZlbmNlX1ByaXZhdGUuaD4KKyNpbXBvcnQgPEJhY2tCb2Fy
ZFNlcnZpY2VzL0JLU01vdXNlUG9pbnRlclNlcnZpY2UuaD4KIAogI2Vsc2UKIAorI2ltcG9ydCAi
QmFzZUJvYXJkU1BJLmgiCisKIEBpbnRlcmZhY2UgQktTQW5pbWF0aW9uRmVuY2VIYW5kbGUgOiBO
U09iamVjdAogLSAobWFjaF9wb3J0X3QpQ0FQb3J0OwogQGVuZAogCitAY2xhc3MgQktTTW91c2VQ
b2ludGVyRGV2aWNlOworCitAcHJvdG9jb2wgQktTTW91c2VQb2ludGVyRGV2aWNlT2JzZXJ2ZXIg
PE5TT2JqZWN0PgorQG9wdGlvbmFsCistICh2b2lkKW1vdXNlUG9pbnRlckRldmljZXNEaWRDb25u
ZWN0OihOU1NldDxCS1NNb3VzZVBvaW50ZXJEZXZpY2UgKj4gKiltb3VzZVBvaW50ZXJEZXZpY2Vz
OworLSAodm9pZCltb3VzZVBvaW50ZXJEZXZpY2VzRGlkRGlzY29ubmVjdDooTlNTZXQ8QktTTW91
c2VQb2ludGVyRGV2aWNlICo+ICopbW91c2VQb2ludGVyRGV2aWNlczsKK0BlbmQKKworQGludGVy
ZmFjZSBCS1NNb3VzZVBvaW50ZXJTZXJ2aWNlIDogTlNPYmplY3QKKysgKEJLU01vdXNlUG9pbnRl
clNlcnZpY2UgKilzaGFyZWRJbnN0YW5jZTsKKy0gKGlkPEJTSW52YWxpZGF0YWJsZT4pYWRkUG9p
bnRlckRldmljZU9ic2VydmVyOihpZDxCS1NNb3VzZVBvaW50ZXJEZXZpY2VPYnNlcnZlcj4pb2Jz
ZXJ2ZXI7CitAZW5kCisKICNlbmRpZiAvLyBVU0UoQVBQTEVfSU5URVJOQUxfU0RLKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9zcGkvaW9zL0Jhc2VCb2FyZFNQSS5oIGIvU291
cmNlL1dlYktpdC9QbGF0Zm9ybS9zcGkvaW9zL0Jhc2VCb2FyZFNQSS5oCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmFi
MDQxODY5NWI5MGZkODMxYjhkNjFhZDgxODlhMGMzOTZjZGRiNDAKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL3NwaS9pb3MvQmFzZUJvYXJkU1BJLmgKQEAgLTAsMCAr
MSwzNiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
KyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisg
KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNpZiBVU0UoQVBQTEVfSU5URVJOQUxfU0RLKQorCisjaW1w
b3J0IDxCYXNlQm9hcmQvQlNJbnZhbGlkYXRhYmxlLmg+CisKKyNlbHNlCisKK0Bwcm90b2NvbCBC
U0ludmFsaWRhdGFibGUgPE5TT2JqZWN0PgorLSAodm9pZClpbnZhbGlkYXRlOworQGVuZAorCisj
ZW5kaWYgLy8gVVNFKEFQUExFX0lOVEVSTkFMX1NESykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwIGIvU291cmNlL1dlYktp
dC9TaGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHAKaW5kZXggYzdhNTlhMDRk
Y2JkMTkzZmQ1YTJhMDAzMjJkODU1ZTg1NTFlMjkwMS4uNjU5YjdkZDRhYTYwYjg2NDQ1OWZhZDAx
Y2IwN2Y0ZDhlZWVkODc1ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJv
Y2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2Vi
UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHAKQEAgLTg1LDYgKzg1LDkgQEAgdm9pZCBXZWJQ
cm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzOjplbmNvZGUoSVBDOjpFbmNvZGVyJiBlbmNvZGVyKSBj
b25zdAogI2VuZGlmCiAgICAgZW5jb2RlciA8PCB0ZXh0Q2hlY2tlclN0YXRlOwogICAgIGVuY29k
ZXIgPDwgZnVsbEtleWJvYXJkQWNjZXNzRW5hYmxlZDsKKyNpZiBIQVZFKFVJS0lUX1dJVEhfTU9V
U0VfU1VQUE9SVCkgJiYgUExBVEZPUk0oSU9TKQorICAgIGVuY29kZXIgPDwgaGFzTW91c2VEZXZp
Y2U7CisjZW5kaWYKICAgICBlbmNvZGVyIDw8IGRlZmF1bHRSZXF1ZXN0VGltZW91dEludGVydmFs
OwogICAgIGVuY29kZXIgPDwgYmFja0ZvcndhcmRDYWNoZUNhcGFjaXR5OwogI2lmIFBMQVRGT1JN
KENPQ09BKQpAQCAtMjkzLDYgKzI5NiwxMCBAQCBib29sIFdlYlByb2Nlc3NDcmVhdGlvblBhcmFt
ZXRlcnM6OmRlY29kZShJUEM6OkRlY29kZXImIGRlY29kZXIsIFdlYlByb2Nlc3NDcmVhdAogICAg
ICAgICByZXR1cm4gZmFsc2U7CiAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShwYXJhbWV0ZXJzLmZ1
bGxLZXlib2FyZEFjY2Vzc0VuYWJsZWQpKQogICAgICAgICByZXR1cm4gZmFsc2U7CisjaWYgSEFW
RShVSUtJVF9XSVRIX01PVVNFX1NVUFBPUlQpICYmIFBMQVRGT1JNKElPUykKKyAgICBpZiAoIWRl
Y29kZXIuZGVjb2RlKHBhcmFtZXRlcnMuaGFzTW91c2VEZXZpY2UpKQorICAgICAgICByZXR1cm4g
ZmFsc2U7CisjZW5kaWYKICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHBhcmFtZXRlcnMuZGVmYXVs
dFJlcXVlc3RUaW1lb3V0SW50ZXJ2YWwpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgaWYg
KCFkZWNvZGVyLmRlY29kZShwYXJhbWV0ZXJzLmJhY2tGb3J3YXJkQ2FjaGVDYXBhY2l0eSkpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0
ZXJzLmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJz
LmgKaW5kZXggMGQzYTI5Njc3MTUzN2ZjMzFlMTJmNTAxMTk4NjM2M2RhYzEwOTFkOS4uMjE4YWI1
YmQzZGU1MmJhODE1ZWU0NjIyZTE2Y2IyODdhM2ZmODE0MCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9TaGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaApAQCAtMTE3LDYgKzEx
Nyw5IEBAIHN0cnVjdCBXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzIHsKICAgICBib29sIHNo
b3VsZFN1cHByZXNzTWVtb3J5UHJlc3N1cmVIYW5kbGVyIHsgZmFsc2UgfTsKICAgICBib29sIHNo
b3VsZFVzZUZvbnRTbW9vdGhpbmcgeyB0cnVlIH07CiAgICAgYm9vbCBmdWxsS2V5Ym9hcmRBY2Nl
c3NFbmFibGVkIHsgZmFsc2UgfTsKKyNpZiBIQVZFKFVJS0lUX1dJVEhfTU9VU0VfU1VQUE9SVCkg
JiYgUExBVEZPUk0oSU9TKQorICAgIGJvb2wgaGFzTW91c2VEZXZpY2UgeyBmYWxzZSB9OworI2Vu
ZGlmCiAgICAgYm9vbCBtZW1vcnlDYWNoZURpc2FibGVkIHsgZmFsc2UgfTsKICAgICBib29sIGF0
dHJTdHlsZUVuYWJsZWQgeyBmYWxzZSB9OwogICAgIGJvb2wgdXNlR1BVUHJvY2Vzc0Zvck1lZGlh
RW5hYmxlZCB7IGZhbHNlIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2Nv
YS50eHQgYi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50eHQKaW5kZXggYmJkMzA1OTUyOWFm
Y2M5NmNkMzQ2Njk0N2E2Y2JhYjlkNTQ2NzA1MS4uNTc0YjdjYzdmMGUxZDRkMzU4MjI3ODY4Zjhk
ZDBjZDY2MTVhMTNhNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9Tb3VyY2VzQ29jb2EudHh0
CisrKyBiL1NvdXJjZS9XZWJLaXQvU291cmNlc0NvY29hLnR4dApAQCAtNDYxLDYgKzQ2MSw3IEBA
IFVJUHJvY2Vzcy9pb3MvV0tHZW9sb2NhdGlvblByb3ZpZGVySU9TLm1tCiBVSVByb2Nlc3MvaW9z
L1dLR2VvbG9jYXRpb25Qcm92aWRlcklPU09iakNTZWN1cml0eU9yaWdpbi5tbQogVUlQcm9jZXNz
L2lvcy9XS0hpZ2hsaWdodExvbmdQcmVzc0dlc3R1cmVSZWNvZ25pemVyLm1tCiBVSVByb2Nlc3Mv
aW9zL1dLS2V5Ym9hcmRTY3JvbGxpbmdBbmltYXRvci5tbQorVUlQcm9jZXNzL2lvcy9XS01vdXNl
RGV2aWNlT2JzZXJ2ZXIubW0KIFVJUHJvY2Vzcy9pb3MvV0tNb3VzZUdlc3R1cmVSZWNvZ25pemVy
Lm1tCiBVSVByb2Nlc3MvaW9zL1dLUGFzc3dvcmRWaWV3Lm1tCiBVSVByb2Nlc3MvaW9zL1dLUERG
UGFnZU51bWJlckluZGljYXRvci5tbQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQ29jb2EvV2ViUHJvY2Vzc1Bvb2xDb2NvYS5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0NvY29hL1dlYlByb2Nlc3NQb29sQ29jb2EubW0KaW5kZXggODQ3MmFlOTIwMjJlYmVkMGY0YWQ3
ZTEyNDk0NmM4MGUwMTVmNjEyZC4uYTRjNjhmZTVhNWI2NWU0NjkwOWMwMjA0OGNmY2Q4NTViOTJj
OTQ1NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViUHJvY2Vz
c1Bvb2xDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJQcm9j
ZXNzUG9vbENvY29hLm1tCkBAIC00MSw2ICs0MSw3IEBACiAjaW1wb3J0ICJVc2VySW50ZXJmYWNl
SWRpb20uaCIKICNpbXBvcnQgIlZlcnNpb25DaGVja3MuaCIKICNpbXBvcnQgIldLQnJvd3NpbmdD
b250ZXh0Q29udHJvbGxlckludGVybmFsLmgiCisjaW1wb3J0ICJXS01vdXNlRGV2aWNlT2JzZXJ2
ZXIuaCIKICNpbXBvcnQgIldlYkJhY2tGb3J3YXJkQ2FjaGUuaCIKICNpbXBvcnQgIldlYk1lbW9y
eVByZXNzdXJlSGFuZGxlci5oIgogI2ltcG9ydCAiV2ViUGFnZUdyb3VwLmgiCkBAIC00ODUsNiAr
NDg2LDEwIEBAIHZvaWQgV2ViUHJvY2Vzc1Bvb2w6OnBsYXRmb3JtSW5pdGlhbGl6ZVdlYlByb2Nl
c3MoY29uc3QgV2ViUHJvY2Vzc1Byb3h5JiBwcm9jZXNzCiAjaWYgSEFWRShDQVRBTFlTVF9VU0VS
X0lOVEVSRkFDRV9JRElPTV9BTkRfU0NBTEVfRkFDVE9SKQogICAgIHBhcmFtZXRlcnMub3ZlcnJp
ZGVVc2VySW50ZXJmYWNlSWRpb21BbmRTY2FsZSA9IHsgX1VJQXBwbGljYXRpb25DYXRhbHlzdFVz
ZXJJbnRlcmZhY2VJZGlvbSgpLCBfVUlBcHBsaWNhdGlvbkNhdGFseXN0U2NhbGVGYWN0b3IoKSB9
OwogI2VuZGlmCisKKyNpZiBIQVZFKFVJS0lUX1dJVEhfTU9VU0VfU1VQUE9SVCkgJiYgUExBVEZP
Uk0oSU9TKQorICAgIHBhcmFtZXRlcnMuaGFzTW91c2VEZXZpY2UgPSBbW1dLTW91c2VEZXZpY2VP
YnNlcnZlciBzaGFyZWRJbnN0YW5jZV0gaGFzTW91c2VEZXZpY2VdOworI2VuZGlmCiB9CiAKIHZv
aWQgV2ViUHJvY2Vzc1Bvb2w6OnBsYXRmb3JtSW5pdGlhbGl6ZU5ldHdvcmtQcm9jZXNzKE5ldHdv
cmtQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzJiBwYXJhbWV0ZXJzKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAKaW5kZXggNWUyYzcwOGYyMmY5N2JlYWYzNzA5
MzUyY2I2OWUzZDRjMjhlMWQ5Yi4uMTZlMDk0MzY0OTYxNDZkZmZiMWQ4N2M5MzBiNmQzNDFlNWRh
N2Y3YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwCkBA
IC0zOTgsOCArMzk4LDE2IEBAIHZvaWQgV2ViUHJvY2Vzc1Byb3h5Ojpjb25uZWN0aW9uV2lsbE9w
ZW4oSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uKQogI2lmIEVOQUJMRShTRUNfSVRFTV9TSElN
KQogICAgIFNlY0l0ZW1TaGltUHJveHk6OnNpbmdsZXRvbigpLmluaXRpYWxpemVDb25uZWN0aW9u
KGNvbm5lY3Rpb24pOwogI2VuZGlmCisKKyAgICBwbGF0Zm9ybUNvbm5lY3Rpb25XaWxsT3Blbigp
OwogfQogCisjaWYgIVBMQVRGT1JNKElPUykKK3ZvaWQgV2ViUHJvY2Vzc1Byb3h5OjpwbGF0Zm9y
bUNvbm5lY3Rpb25XaWxsT3BlbigpCit7Cit9CisjZW5kaWYKKwogdm9pZCBXZWJQcm9jZXNzUHJv
eHk6OnByb2Nlc3NXaWxsU2h1dERvd24oSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uKQogewog
ICAgIEFTU0VSVF9VTlVTRUQoY29ubmVjdGlvbiwgdGhpcy0+Y29ubmVjdGlvbigpID09ICZjb25u
ZWN0aW9uKTsKQEAgLTQwNyw4ICs0MTUsMTYgQEAgdm9pZCBXZWJQcm9jZXNzUHJveHk6OnByb2Nl
c3NXaWxsU2h1dERvd24oSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uKQogI2lmIFBMQVRGT1JN
KE1BQykgJiYgRU5BQkxFKFdFQlBST0NFU1NfV0lORE9XU0VSVkVSX0JMT0NLSU5HKQogICAgIHBy
b2Nlc3NQb29sKCkuc3RvcERpc3BsYXlMaW5rcyhjb25uZWN0aW9uKTsKICNlbmRpZgorCisgICAg
cGxhdGZvcm1Qcm9jZXNzV2lsbFNodXREb3duKCk7CiB9CiAKKyNpZiAhUExBVEZPUk0oSU9TKQor
dm9pZCBXZWJQcm9jZXNzUHJveHk6OnBsYXRmb3JtUHJvY2Vzc1dpbGxTaHV0RG93bigpCit7Cit9
CisjZW5kaWYKKwogdm9pZCBXZWJQcm9jZXNzUHJveHk6OnNodXREb3duKCkKIHsKICAgICBSRUxF
QVNFX0FTU0VSVChpc01haW5UaHJlYWRPckNoZWNrRGlzYWJsZWQoKSk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oCmluZGV4IGUwZThkYzBhYzcwOGIxMjQ4YjFjYzgw
YWRjYjE5ZDE4NDEyMzljNzMuLjRhYTNhODViMzQzMDFjNGVkZTE2MjI3YjA5MDVmN2FlMTY4Yjg1
NDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oCkBAIC0zMDYs
NiArMzA2LDEwIEBAIHB1YmxpYzoKICAgICB2b2lkIGRpZFNldEFzc2VydGlvblR5cGUoUHJvY2Vz
c0Fzc2VydGlvblR5cGUpIGZpbmFsOwogICAgIEFTQ0lJTGl0ZXJhbCBjbGllbnROYW1lKCkgY29u
c3QgZmluYWwgeyByZXR1cm4gIldlYlByb2Nlc3MiX3M7IH0KIAorI2lmIEhBVkUoVUlLSVRfV0lU
SF9NT1VTRV9TVVBQT1JUKSAmJiBQTEFURk9STShJT1MpCisgICAgdm9pZCBzZXRIYXNNb3VzZURl
dmljZShib29sKTsKKyNlbmRpZgorCiAjaWYgUExBVEZPUk0oQ09DT0EpCiAgICAgZW51bSBTYW5k
Ym94RXh0ZW5zaW9uVHlwZSA6IHVpbnQzMl90IHsKICAgICAgICAgTm9uZSA9IDAsCkBAIC00MTAs
NiArNDE0LDkgQEAgcHJvdGVjdGVkOgogICAgIHZvaWQgdmFsaWRhdGVGcmVlemVyU3RhdHVzKCk7
CiAKIHByaXZhdGU6CisgICAgdm9pZCBwbGF0Zm9ybUNvbm5lY3Rpb25XaWxsT3BlbigpOworICAg
IHZvaWQgcGxhdGZvcm1Qcm9jZXNzV2lsbFNodXREb3duKCk7CisKICAgICAvLyBJUEMgbWVzc2Fn
ZSBoYW5kbGVycy4KICAgICB2b2lkIHVwZGF0ZUJhY2tGb3J3YXJkSXRlbShjb25zdCBCYWNrRm9y
d2FyZExpc3RJdGVtU3RhdGUmKTsKICAgICB2b2lkIGRpZERlc3Ryb3lGcmFtZShXZWJDb3JlOjpG
cmFtZUlkZW50aWZpZXIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9z
L1dLTW91c2VEZXZpY2VPYnNlcnZlci5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dL
TW91c2VEZXZpY2VPYnNlcnZlci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjhkNzNlMTFhMjYyZTVlYzBmOTBhODNi
ZWE5MjRiYmYyYTMwODcwY2IKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9pb3MvV0tNb3VzZURldmljZU9ic2VydmVyLmgKQEAgLTAsMCArMSw0NyBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
CisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNpZiBIQVZFKFVJS0lUX1dJVEhfTU9VU0VfU1VQUE9SVCkgJiYgUExBVEZPUk0oSU9T
KQorCisjaW1wb3J0ICJCYWNrQm9hcmRTZXJ2aWNlc1NQSS5oIgorCituYW1lc3BhY2UgV2ViS2l0
IHsKK2NsYXNzIFdlYlByb2Nlc3NQcm94eTsKK30KKworQGludGVyZmFjZSBXS01vdXNlRGV2aWNl
T2JzZXJ2ZXIgOiBOU09iamVjdDxCS1NNb3VzZVBvaW50ZXJEZXZpY2VPYnNlcnZlcj4KKworKyAo
V0tNb3VzZURldmljZU9ic2VydmVyICopc2hhcmVkSW5zdGFuY2U7CisKK0Bwcm9wZXJ0eSAobm9u
YXRvbWljLCByZWFkb25seSkgQk9PTCBoYXNNb3VzZURldmljZTsKKworLSAodm9pZClhZGRXZWJQ
cm9jZXNzUHJveHk6KFdlYktpdDo6V2ViUHJvY2Vzc1Byb3h5Jil3ZWJQcm9jZXNzUHJveHk7Cist
ICh2b2lkKXJlbW92ZVdlYlByb2Nlc3NQcm94eTooV2ViS2l0OjpXZWJQcm9jZXNzUHJveHkmKXdl
YlByb2Nlc3NQcm94eTsKKworLSAodm9pZClfc2V0SGFzTW91c2VEZXZpY2VGb3JUZXN0aW5nOihC
T09MKWhhc01vdXNlRGV2aWNlOworCitAZW5kCisKKyNlbmRpZiAvLyBIQVZFKFVJS0lUX1dJVEhf
TU9VU0VfU1VQUE9SVCkgJiYgUExBVEZPUk0oSU9TKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvaW9zL1dLTW91c2VEZXZpY2VPYnNlcnZlci5tbSBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL2lvcy9XS01vdXNlRGV2aWNlT2JzZXJ2ZXIubW0KbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODk5Njky
YTIzYWY1OGU0OTNjZGQ2OGRjNjA5OGU2YjkxMGFhODI5NgotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS01vdXNlRGV2aWNlT2JzZXJ2ZXIubW0KQEAgLTAs
MCArMSwxMTcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW1wb3J0ICJjb25maWcuaCIKKyNpbXBvcnQgIldL
TW91c2VEZXZpY2VPYnNlcnZlci5oIgorCisjaWYgSEFWRShVSUtJVF9XSVRIX01PVVNFX1NVUFBP
UlQpICYmIFBMQVRGT1JNKElPUykKKworI2ltcG9ydCAiV2ViUHJvY2Vzc1Byb3h5LmgiCisjaW5j
bHVkZSA8d3RmL1dlYWtIYXNoU2V0Lmg+CisKK0BpbXBsZW1lbnRhdGlvbiBXS01vdXNlRGV2aWNl
T2JzZXJ2ZXIgeworICAgIFdlYWtIYXNoU2V0PFdlYktpdDo6V2ViUHJvY2Vzc1Byb3h5PiBfd2Vi
UHJvY2Vzc1Byb3h5TGlzdDsKKworICAgIEJPT0wgX2hhc01vdXNlRGV2aWNlOworICAgIGlkPEJT
SW52YWxpZGF0YWJsZT4gX3Rva2VuOworfQorCisrIChXS01vdXNlRGV2aWNlT2JzZXJ2ZXIgKilz
aGFyZWRJbnN0YW5jZSB7CisgICAgc3RhdGljIFdLTW91c2VEZXZpY2VPYnNlcnZlciAqaW5zdGFu
Y2U7CisgICAgaWYgKCFpbnN0YW5jZSkKKyAgICAgICAgaW5zdGFuY2UgPSBbW1dLTW91c2VEZXZp
Y2VPYnNlcnZlciBhbGxvY10gaW5pdF07CisgICAgcmV0dXJuIGluc3RhbmNlOworfQorCistICh2
b2lkKWRlYWxsb2MKK3sKKyAgICBpZiAoX3Rva2VuKQorICAgICAgICBbc2VsZiBzdG9wXTsKKwor
ICAgIFtzdXBlciBkZWFsbG9jXTsKK30KKworI3ByYWdtYSBtYXJrIC0gV2ViUHJvY2Vzc1Byb3h5
IEFQSQorCistICh2b2lkKWFkZFdlYlByb2Nlc3NQcm94eTooV2ViS2l0OjpXZWJQcm9jZXNzUHJv
eHkmKXdlYlByb2Nlc3NQcm94eQoreworICAgIGlmICghX3dlYlByb2Nlc3NQcm94eUxpc3QuYWRk
KHdlYlByb2Nlc3NQcm94eSkpCisgICAgICAgIHJldHVybjsKKworICAgIGlmIChfd2ViUHJvY2Vz
c1Byb3h5TGlzdC5jb21wdXRlU2l6ZSgpID09IDEpCisgICAgICAgIFtzZWxmIHN0YXJ0XTsKK30K
KworLSAodm9pZClyZW1vdmVXZWJQcm9jZXNzUHJveHk6KFdlYktpdDo6V2ViUHJvY2Vzc1Byb3h5
Jil3ZWJQcm9jZXNzUHJveHkKK3sKKyAgICBpZiAoIV93ZWJQcm9jZXNzUHJveHlMaXN0LnJlbW92
ZSh3ZWJQcm9jZXNzUHJveHkpKQorICAgICAgICByZXR1cm47CisKKyAgICBpZiAoX3dlYlByb2Nl
c3NQcm94eUxpc3QuY29tcHV0ZVNpemUoKSA9PSAwKQorICAgICAgICBbc2VsZiBzdG9wXTsKK30K
KworI3ByYWdtYSBtYXJrIC0gQktTTW91c2VQb2ludGVyRGV2aWNlT2JzZXJ2ZXIgc3RhdGUKKwor
LSAodm9pZClzdGFydAoreworICAgIEFTU0VSVCghX3Rva2VuKTsKKyAgICBfdG9rZW4gPSBbW0JL
U01vdXNlUG9pbnRlclNlcnZpY2Ugc2hhcmVkSW5zdGFuY2VdIGFkZFBvaW50ZXJEZXZpY2VPYnNl
cnZlcjpzZWxmXTsKK30KKworLSAodm9pZClzdG9wCit7CisgICAgQVNTRVJUKF90b2tlbik7Cisg
ICAgW190b2tlbiBpbnZhbGlkYXRlXTsKKyAgICBfdG9rZW4gPSBuaWw7Cit9CisKKyNwcmFnbWEg
bWFyayAtIEJLU01vdXNlUG9pbnRlckRldmljZU9ic2VydmVyIGhhbmRsZXJzCisKKy0gKHZvaWQp
bW91c2VQb2ludGVyRGV2aWNlc0RpZENoYW5nZTooTlNTZXQ8QktTTW91c2VQb2ludGVyRGV2aWNl
ICo+ICopbW91c2VQb2ludGVyRGV2aWNlcworeworICAgIEJPT0wgaGFzTW91c2VEZXZpY2UgPSBb
bW91c2VQb2ludGVyRGV2aWNlcyBjb3VudF0gPiAwOworICAgIGlmIChoYXNNb3VzZURldmljZSA9
PSBfaGFzTW91c2VEZXZpY2UpCisgICAgICAgIHJldHVybjsKKworICAgIF9oYXNNb3VzZURldmlj
ZSA9IGhhc01vdXNlRGV2aWNlOworCisgICAgZm9yIChhdXRvJiB3ZWJQcm9jZXNzUHJveHkgOiBf
d2ViUHJvY2Vzc1Byb3h5TGlzdCkKKyAgICAgICAgd2ViUHJvY2Vzc1Byb3h5LnNldEhhc01vdXNl
RGV2aWNlKF9oYXNNb3VzZURldmljZSk7Cit9CisKKyNwcmFnbWEgbWFyayAtIFRlc3RpbmcKKwor
LSAodm9pZClfc2V0SGFzTW91c2VEZXZpY2VGb3JUZXN0aW5nOihCT09MKWhhc01vdXNlRGV2aWNl
Cit7CisgICAgX2hhc01vdXNlRGV2aWNlID0gaGFzTW91c2VEZXZpY2U7CisKKyAgICBmb3IgKGF1
dG8mIHdlYlByb2Nlc3NQcm94eSA6IF93ZWJQcm9jZXNzUHJveHlMaXN0KQorICAgICAgICB3ZWJQ
cm9jZXNzUHJveHkuc2V0SGFzTW91c2VEZXZpY2UoX2hhc01vdXNlRGV2aWNlKTsKK30KKworQGVu
ZAorCisjZW5kaWYgLy8gSEFWRShVSUtJVF9XSVRIX01PVVNFX1NVUFBPUlQpICYmIFBMQVRGT1JN
KElPUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XZWJQcm9jZXNz
UHJveHlJT1MubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV2ViUHJvY2Vzc1Byb3h5
SU9TLm1tCmluZGV4IGViMTc3Y2Q3Y2RmNTFmMDI3ZjdjNWIxZWM3MmM4NzNmZmE2MTg0ZmEuLjcw
NDM3YmUxNDk4YmEyNzcwZTFkZWI1MTkyMWE2YmIxNDg2ZWI3NzIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XZWJQcm9jZXNzUHJveHlJT1MubW0KKysrIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvaW9zL1dlYlByb2Nlc3NQcm94eUlPUy5tbQpAQCAtMzAsMTAgKzMw
LDM4IEBACiAKICNpbXBvcnQgIkFjY2Vzc2liaWxpdHlTdXBwb3J0U1BJLmgiCiAjaW1wb3J0ICJX
S0Z1bGxLZXlib2FyZEFjY2Vzc1dhdGNoZXIuaCIKKyNpbXBvcnQgIldLTW91c2VEZXZpY2VPYnNl
cnZlci5oIgogI2ltcG9ydCAiV2ViUHJvY2Vzc01lc3NhZ2VzLmgiCiAKIG5hbWVzcGFjZSBXZWJL
aXQgewogCisjaWYgUExBVEZPUk0oSU9TKQorCit2b2lkIFdlYlByb2Nlc3NQcm94eTo6cGxhdGZv
cm1Db25uZWN0aW9uV2lsbE9wZW4oKQoreworI2lmIEhBVkUoVUlLSVRfV0lUSF9NT1VTRV9TVVBQ
T1JUKQorICAgIFtbV0tNb3VzZURldmljZU9ic2VydmVyIHNoYXJlZEluc3RhbmNlXSBhZGRXZWJQ
cm9jZXNzUHJveHk6KnRoaXNdOworI2VuZGlmCit9CisKK3ZvaWQgV2ViUHJvY2Vzc1Byb3h5Ojpw
bGF0Zm9ybVByb2Nlc3NXaWxsU2h1dERvd24oKQoreworI2lmIEhBVkUoVUlLSVRfV0lUSF9NT1VT
RV9TVVBQT1JUKQorICAgIFtbV0tNb3VzZURldmljZU9ic2VydmVyIHNoYXJlZEluc3RhbmNlXSBy
ZW1vdmVXZWJQcm9jZXNzUHJveHk6KnRoaXNdOworI2VuZGlmCit9CisKKyNpZiBIQVZFKFVJS0lU
X1dJVEhfTU9VU0VfU1VQUE9SVCkKKwordm9pZCBXZWJQcm9jZXNzUHJveHk6OnNldEhhc01vdXNl
RGV2aWNlKGJvb2wgaGFzTW91c2VEZXZpY2UpCit7CisgICAgc2VuZChNZXNzYWdlczo6V2ViUHJv
Y2Vzczo6U2V0SGFzTW91c2VEZXZpY2UoaGFzTW91c2VEZXZpY2UpLCAwKTsKK30KKworI2VuZGlm
IC8vIEhBVkUoVUlLSVRfV0lUSF9NT1VTRV9TVVBQT1JUKQorCisjZW5kaWYgLy8gUExBVEZPUk0o
SU9TKQorCiBib29sIFdlYlByb2Nlc3NQcm94eTo6ZnVsbEtleWJvYXJkQWNjZXNzRW5hYmxlZCgp
CiB7CiAjaWYgRU5BQkxFKEZVTExfS0VZQk9BUkRfQUNDRVNTKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJLaXQv
V2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggNTNiNjRmNzVlZGQ0M2NlOTVm
NzY0MTM0N2Q4YTU3OGEwNmI2NDNhZS4uZWRiNWU1MjI2ZDdmNTA1OTlhYjY4NjdlMzY0YTk2OTY5
Y2YzNTJhZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCkBAIC0xMzc5LDYgKzEzNzksOCBAQAogCQk5M0JERUIwMTE3MUREN0FGMDBCRkVFMUIg
LyogV0tQYWdlTG9hZFR5cGVzUHJpdmF0ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gOTNCREVCMDAxNzFERDdBRjAwQkZFRTFCIC8qIFdLUGFnZUxvYWRU
eXBlc1ByaXZhdGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OwogCQk5M0U2QTRFRTFCQzVERDM5MDBGOEEwRTcgLyogX1dLSGl0VGVzdFJlc3VsdC5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNFNkE0RUQxQkM1
REQzOTAwRjhBMEU3IC8qIF9XS0hpdFRlc3RSZXN1bHQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk5M0Y1NDlCNDFFMzE3NEI3MDAwRTcyMzkgLyog
V0tTbmFwc2hvdENvbmZpZ3VyYXRpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDkzRjU0OUIzMUUzMTc0QjcwMDBFNzIzOSAvKiBXS1NuYXBzaG90Q29u
ZmlndXJhdGlvbi5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFB1YmxpYywgKTsgfTsg
fTsKKwkJOTUwRjI4ODAyNTI0MTRFQTAwQjc0RjFDIC8qIFdLTW91c2VEZXZpY2VPYnNlcnZlci5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTUwRjI4N0Uy
NTI0MTRFOTAwQjc0RjFDIC8qIFdLTW91c2VEZXZpY2VPYnNlcnZlci5oICovOyB9OworCQk5NUM5
NDM5MTI1MjNDMEQwMDA1NEYzRDUgLyogQmFzZUJvYXJkU1BJLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5NUM5NDM5MDI1MjNDMEQwMDA1NEYzRDUgLyog
QmFzZUJvYXJkU1BJLmggKi87IH07CiAJCTk5MDM2QUUyMjNBOTQ5Q0YwMDAwQjA2QSAvKiBfV0tJ
bnNwZWN0b3JEZWJ1Z2dhYmxlSW5mb0ludGVybmFsLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5OTAzNkFFMTIzQTk0OUNFMDAwMEIwNkEgLyogX1dLSW5z
cGVjdG9yRGVidWdnYWJsZUluZm9JbnRlcm5hbC5oICovOyB9OwogCQk5OTAzNkFFNTIzQTk1ODc1
MDAwMEIwNkEgLyogQVBJRGVidWdnYWJsZUluZm8uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk5MDM2QUUzMjNBOTU4NzQwMDAwQjA2QSAvKiBBUElEZWJ1
Z2dhYmxlSW5mby5oICovOyB9OwogCQk5OTAzNkFFOTIzQTk3MDg3MDAwMEIwNkEgLyogRGVidWdn
YWJsZUluZm9EYXRhLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA5OTAzNkFFNzIzQTk3MDg3MDAwMEIwNkEgLyogRGVidWdnYWJsZUluZm9EYXRhLmggKi87
IH07CkBAIC00NDIxLDYgKzQ0MjMsOSBAQAogCQk5M0U2QTRFRDFCQzVERDM5MDBGOEEwRTcgLyog
X1dLSGl0VGVzdFJlc3VsdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBfV0tI
aXRUZXN0UmVzdWx0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzRjU0OUIzMUUz
MTc0QjcwMDBFNzIzOSAvKiBXS1NuYXBzaG90Q29uZmlndXJhdGlvbi5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBXS1NuYXBzaG90Q29uZmlndXJhdGlvbi5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk5M0Y1NDlCNTFFMzE3NERBMDAwRTcyMzkgLyogV0tTbmFwc2hv
dENvbmZpZ3VyYXRpb24ubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGgg
PSBXS1NuYXBzaG90Q29uZmlndXJhdGlvbi5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJOTUwRjI4N0UyNTI0MTRFOTAwQjc0RjFDIC8qIFdLTW91c2VEZXZpY2VPYnNlcnZlci5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBXS01vdXNlRGV2aWNlT2JzZXJ2ZXIuaDsg
cGF0aCA9IGlvcy9XS01vdXNlRGV2aWNlT2JzZXJ2ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJOTUwRjI4N0YyNTI0MTRFQTAwQjc0RjFDIC8qIFdLTW91c2VEZXZpY2VPYnNlcnZl
ci5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgbmFtZSA9IFdLTW91c2VEZXZp
Y2VPYnNlcnZlci5tbTsgcGF0aCA9IGlvcy9XS01vdXNlRGV2aWNlT2JzZXJ2ZXIubW07IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTk1Qzk0MzkwMjUyM0MwRDAwMDU0RjNENSAvKiBCYXNl
Qm9hcmRTUEkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQmFzZUJvYXJkU1BJ
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTk5MDM2QUUxMjNBOTQ5Q0UwMDAwQjA2
QSAvKiBfV0tJbnNwZWN0b3JEZWJ1Z2dhYmxlSW5mb0ludGVybmFsLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IF9XS0luc3BlY3RvckRlYnVnZ2FibGVJbmZvSW50ZXJuYWwuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTkwMzZBRTMyM0E5NTg3NDAwMDBCMDZBIC8q
IEFQSURlYnVnZ2FibGVJbmZvLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEFQ
SURlYnVnZ2FibGVJbmZvLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTk5MDM2QUU0
MjNBOTU4NzQwMDAwQjA2QSAvKiBBUElEZWJ1Z2dhYmxlSW5mby5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBBUElEZWJ1Z2dhYmxlSW5mby5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CkBAIC03MDE0LDYgKzcwMTksOCBAQAogCQkJCTkzM0RGODJGMUIzQkMw
QjQwMEFFQTlFMyAvKiBXS0ltYWdlUHJldmlld1ZpZXdDb250cm9sbGVyLm1tICovLAogCQkJCTJE
RDVFMTI3MjEwQURDN0EwMERCNjAxMiAvKiBXS0tleWJvYXJkU2Nyb2xsaW5nQW5pbWF0b3IuaCAq
LywKIAkJCQkyREQ1RTEyNjIxMEFEQzdBMDBEQjYwMTIgLyogV0tLZXlib2FyZFNjcm9sbGluZ0Fu
aW1hdG9yLm1tICovLAorCQkJCTk1MEYyODdFMjUyNDE0RTkwMEI3NEYxQyAvKiBXS01vdXNlRGV2
aWNlT2JzZXJ2ZXIuaCAqLywKKwkJCQk5NTBGMjg3RjI1MjQxNEVBMDBCNzRGMUMgLyogV0tNb3Vz
ZURldmljZU9ic2VydmVyLm1tICovLAogCQkJCTJEQjk0Mjk3MjM0RTdBN0YwMEU3NzZBRCAvKiBX
S01vdXNlR2VzdHVyZVJlY29nbml6ZXIuaCAqLywKIAkJCQkyREI5NDI5ODIzNEU3QTdGMDBFNzc2
QUQgLyogV0tNb3VzZUdlc3R1cmVSZWNvZ25pemVyLm1tICovLAogCQkJCUExNUVFREU0MUUzMDFD
RUUwMDAwNjlCMCAvKiBXS1Bhc3N3b3JkVmlldy5oICovLApAQCAtMTAzNzQsNiArMTAzODEsNyBA
QAogCQkJY2hpbGRyZW4gPSAoCiAJCQkJQ0UxQTBCQ0MxQTQ4RTZDNjAwNTRFRjc0IC8qIEFzc2Vy
dGlvblNlcnZpY2VzU1BJLmggKi8sCiAJCQkJQ0RBMDQxRjMxQUNFMjEwNTAwNEExM0VDIC8qIEJh
Y2tCb2FyZFNlcnZpY2VzU1BJLmggKi8sCisJCQkJOTVDOTQzOTAyNTIzQzBEMDAwNTRGM0Q1IC8q
IEJhc2VCb2FyZFNQSS5oICovLAogCQkJCTJENEFGMDg4MjA0NEMzQzQwMDZDODgxNyAvKiBGcm9u
dEJvYXJkU2VydmljZXNTUEkuaCAqLywKIAkJCQlBMTNCM0RBMTIwN0YzOURFMDA5MEM1OEQgLyog
TW9iaWxlV2lGaVNQSS5oICovLAogCQkJCTMxNzhBRjk3MjBFMkE3RjgwMDc0REU5NCAvKiBQREZL
aXRTUEkuaCAqLywKQEAgLTEwNzQwLDYgKzEwNzQ4LDcgQEAKIAkJCQkyOTBGNDI3MjE3MkEwQzc0
MDA5MzlGRjAgLyogQXV4aWxpYXJ5UHJvY2Vzc1N1cHBsZW1lbnQuaCBpbiBIZWFkZXJzICovLAog
CQkJCUNEQTA0MUY0MUFDRTIxMDUwMDRBMTNFQyAvKiBCYWNrQm9hcmRTZXJ2aWNlc1NQSS5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJNDZBMkI2MDkxRTU2NzZBNjAwQzNERURBIC8qIEJhY2tncm91bmRQ
cm9jZXNzUmVzcG9uc2l2ZW5lc3NUaW1lci5oIGluIEhlYWRlcnMgKi8sCisJCQkJOTVDOTQzOTEy
NTIzQzBEMDAwNTRGM0Q1IC8qIEJhc2VCb2FyZFNQSS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTE2
NEEyRjIxOTFBRjE0RTAwMTA3MzdEIC8qIEJsb2JEYXRhRmlsZVJlZmVyZW5jZVdpdGhTYW5kYm94
RXh0ZW5zaW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQlFMTcwODc2QzE2RDZDQTY5MDBGOTkyMjYg
LyogQmxvYlJlZ2lzdHJ5UHJveHkuaCBpbiBIZWFkZXJzICovLAogCQkJCTRGNjAxNDMyMTU1QzVB
QTIwMDFGQkRFMCAvKiBCbG9ja2luZ1Jlc3BvbnNlTWFwLmggaW4gSGVhZGVycyAqLywKQEAgLTEx
NTk3LDYgKzExNjA2LDcgQEAKIAkJCQk1Q0FCREM4NjIyQzQwRkRFMDAxRURFOEUgLyogV0tNZXNz
YWdlTGlzdGVuZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUMxMUUxNjk0MjEyQjg3QzUwMDk4NUZG
NiAvKiBXS01vY2tEaXNwbGF5LmggaW4gSGVhZGVycyAqLywKIAkJCQk0MTFBOEREQjIwREREMUFD
MDA2MEQzNEYgLyogV0tNb2NrTWVkaWFEZXZpY2UuaCBpbiBIZWFkZXJzICovLAorCQkJCTk1MEYy
ODgwMjUyNDE0RUEwMEI3NEYxQyAvKiBXS01vdXNlRGV2aWNlT2JzZXJ2ZXIuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTJEQjk0Mjk5MjM0RTdBN0YwMEU3NzZBRCAvKiBXS01vdXNlR2VzdHVyZVJlY29n
bml6ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDNDA3NUZFMTI0RkYwMjcwMDY4RjIwQSAvKiBX
S011dGFibGVBcnJheS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkM0MDc2MDAxMjRGRjAyNzAwNjhG
MjBBIC8qIFdLTXV0YWJsZURpY3Rpb25hcnkuaCBpbiBIZWFkZXJzICovLApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5j
cHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xp
ZW50LmNwcAppbmRleCAxODhiYzVlOWViOWRiNzQ0MDVlMDhmNmUwNTgyM2VhM2MzN2E4MmExLi5h
NjA4YmZiNGFkNTMzYzA2ZmQ5Y2ExM2NjMTU3NGRiOTc3MjVhMDY3IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xp
ZW50LmNwcApAQCAtNTA2LDYgKzUwNiwxNSBAQCBLZXlib2FyZFVJTW9kZSBXZWJDaHJvbWVDbGll
bnQ6OmtleWJvYXJkVUlNb2RlKCkKICAgICByZXR1cm4gbV9wYWdlLmtleWJvYXJkVUlNb2RlKCk7
CiB9CiAKKyNpZiBIQVZFKFVJS0lUX1dJVEhfTU9VU0VfU1VQUE9SVCkgJiYgUExBVEZPUk0oSU9T
KQorCitib29sIFdlYkNocm9tZUNsaWVudDo6aGFzTW91c2VEZXZpY2UoKQoreworICAgIHJldHVy
biBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5oYXNNb3VzZURldmljZSgpOworfQorCisjZW5kaWYg
Ly8gSEFWRShVSUtJVF9XSVRIX01PVVNFX1NVUFBPUlQpICYmIFBMQVRGT1JNKElPUykKKwogI2lm
IEVOQUJMRShQT0lOVEVSX0xPQ0spCiAKIGJvb2wgV2ViQ2hyb21lQ2xpZW50OjpyZXF1ZXN0UG9p
bnRlckxvY2soKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0L1dlYkNocm9tZUNsaWVudC5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNv
cmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCmluZGV4IGJkYjRkZmZiYjAxNWEzNzcyMDZiZGI0
MjVhNzI1YWQ2NGUwMTU4N2IuLjg3M2E5YTZhMDE3OWM5MDcyM2YyMTNjYTY1YmE3NzBjNGJkMTYy
MzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9X
ZWJDaHJvbWVDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKQEAgLTExMiw2ICsxMTIsMTAgQEAgcHJpdmF0ZToKIAog
ICAgIFdlYkNvcmU6OktleWJvYXJkVUlNb2RlIGtleWJvYXJkVUlNb2RlKCkgZmluYWw7CiAKKyNp
ZiBIQVZFKFVJS0lUX1dJVEhfTU9VU0VfU1VQUE9SVCkgJiYgUExBVEZPUk0oSU9TKQorICAgIGJv
b2wgaGFzTW91c2VEZXZpY2UoKSBmaW5hbDsKKyNlbmRpZgorCiAgICAgLy8gSG9zdFdpbmRvdyBt
ZW1iZXIgZnVuY3Rpb24gZmluYWxzLgogICAgIHZvaWQgaW52YWxpZGF0ZVJvb3RWaWV3KGNvbnN0
IFdlYkNvcmU6OkludFJlY3QmKSBmaW5hbDsKICAgICB2b2lkIGludmFsaWRhdGVDb250ZW50c0Fu
ZFJvb3RWaWV3KGNvbnN0IFdlYkNvcmU6OkludFJlY3QmKSBmaW5hbDsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJQcm9jZXNzLmNwcAppbmRleCA3N2U4ZmI2ZDJmY2UyZWY1YmE4NGY2NmY5MjZj
YzUzYjVlMDI5Y2M3Li41ODQxOWQ3OTZkM2Q1MmYwNWY5NzcwNzc4YzNmZmM5ZmY3MDI2ZTNmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAKKysrIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCkBAIC00MDYsNiArNDA2LDEw
IEBAIHZvaWQgV2ViUHJvY2Vzczo6aW5pdGlhbGl6ZVdlYlByb2Nlc3MoV2ViUHJvY2Vzc0NyZWF0
aW9uUGFyYW1ldGVycyYmIHBhcmFtZXRlcnMpCiAKICAgICBtX2Z1bGxLZXlib2FyZEFjY2Vzc0Vu
YWJsZWQgPSBwYXJhbWV0ZXJzLmZ1bGxLZXlib2FyZEFjY2Vzc0VuYWJsZWQ7CiAKKyNpZiBIQVZF
KFVJS0lUX1dJVEhfTU9VU0VfU1VQUE9SVCkgJiYgUExBVEZPUk0oSU9TKQorICAgIG1faGFzTW91
c2VEZXZpY2UgPSBwYXJhbWV0ZXJzLmhhc01vdXNlRGV2aWNlOworI2VuZGlmCisKICAgICBmb3Ig
KGF1dG8mIHNjaGVtZSA6IHBhcmFtZXRlcnMudXJsU2NoZW1lc1JlZ2lzdGVyZWRBc0VtcHR5RG9j
dW1lbnQpCiAgICAgICAgIHJlZ2lzdGVyVVJMU2NoZW1lQXNFbXB0eURvY3VtZW50KHNjaGVtZSk7
CiAKQEAgLTEwNTAsNiArMTA1NCwyMCBAQCB2b2lkIFdlYlByb2Nlc3M6Om1lc3NhZ2VzQXZhaWxh
YmxlRm9yUG9ydChjb25zdCBNZXNzYWdlUG9ydElkZW50aWZpZXImIGlkZW50aWZpZQogICAgIE1l
c3NhZ2VQb3J0Ojpub3RpZnlNZXNzYWdlQXZhaWxhYmxlKGlkZW50aWZpZXIpOwogfQogCisjaWYg
SEFWRShVSUtJVF9XSVRIX01PVVNFX1NVUFBPUlQpICYmIFBMQVRGT1JNKElPUykKKwordm9pZCBX
ZWJQcm9jZXNzOjpzZXRIYXNNb3VzZURldmljZShib29sIGhhc01vdXNlRGV2aWNlKQoreworICAg
IGlmIChoYXNNb3VzZURldmljZSA9PSBtX2hhc01vdXNlRGV2aWNlKQorICAgICAgICByZXR1cm47
CisKKyAgICBtX2hhc01vdXNlRGV2aWNlID0gaGFzTW91c2VEZXZpY2U7CisKKyAgICBQYWdlOjp1
cGRhdGVTdHlsZUZvckFsbFBhZ2VzQWZ0ZXJHbG9iYWxDaGFuZ2VJbkVudmlyb25tZW50KCk7Cit9
CisKKyNlbmRpZiAvLyBIQVZFKFVJS0lUX1dJVEhfTU9VU0VfU1VQUE9SVCkgJiYgUExBVEZPUk0o
SU9TKQorCiAjaWYgRU5BQkxFKEdBTUVQQUQpCiAKIHZvaWQgV2ViUHJvY2Vzczo6c2V0SW5pdGlh
bEdhbWVwYWRzKGNvbnN0IFZlY3RvcjxXZWJLaXQ6OkdhbWVwYWREYXRhPiYgZ2FtZXBhZERhdGFz
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuaCBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmgKaW5kZXggOWQwZGRiZmQzOGRlMzgx
ZGMyNWRiZWI5N2Q0ODY5ZTk0ZmRlYjgyNy4uZjNlMTlhYjZhYjMyYmQwZWM2NGNkNzI3NzkzZjRi
Y2QzZTRkNDhmNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nl
c3MuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oCkBAIC0xODcs
NiArMTg3LDExIEBAIHB1YmxpYzoKIAogICAgIGJvb2wgZnVsbEtleWJvYXJkQWNjZXNzRW5hYmxl
ZCgpIGNvbnN0IHsgcmV0dXJuIG1fZnVsbEtleWJvYXJkQWNjZXNzRW5hYmxlZDsgfQogCisjaWYg
SEFWRShVSUtJVF9XSVRIX01PVVNFX1NVUFBPUlQpICYmIFBMQVRGT1JNKElPUykKKyAgICBib29s
IGhhc01vdXNlRGV2aWNlKCkgY29uc3QgeyByZXR1cm4gbV9oYXNNb3VzZURldmljZTsgfQorICAg
IHZvaWQgc2V0SGFzTW91c2VEZXZpY2UoYm9vbCk7CisjZW5kaWYKKwogICAgIFdlYkZyYW1lKiB3
ZWJGcmFtZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIpIGNvbnN0OwogICAgIFZlY3RvcjxXZWJG
cmFtZSo+IHdlYkZyYW1lcygpIGNvbnN0OwogICAgIHZvaWQgYWRkV2ViRnJhbWUoV2ViQ29yZTo6
RnJhbWVJZGVudGlmaWVyLCBXZWJGcmFtZSopOwpAQCAtNTU0LDYgKzU1OSwxMCBAQCBwcml2YXRl
OgogCiAgICAgYm9vbCBtX2Z1bGxLZXlib2FyZEFjY2Vzc0VuYWJsZWQgeyBmYWxzZSB9OwogCisj
aWYgSEFWRShVSUtJVF9XSVRIX01PVVNFX1NVUFBPUlQpICYmIFBMQVRGT1JNKElPUykKKyAgICBi
b29sIG1faGFzTW91c2VEZXZpY2UgeyBmYWxzZSB9OworI2VuZGlmCisKICAgICBIYXNoTWFwPFdl
YkNvcmU6OkZyYW1lSWRlbnRpZmllciwgV2ViRnJhbWUqPiBtX2ZyYW1lTWFwOwogCiAgICAgdHlw
ZWRlZiBIYXNoTWFwPGNvbnN0IGNoYXIqLCBzdGQ6OnVuaXF1ZV9wdHI8V2ViUHJvY2Vzc1N1cHBs
ZW1lbnQ+LCBQdHJIYXNoPGNvbnN0IGNoYXIqPj4gV2ViUHJvY2Vzc1N1cHBsZW1lbnRNYXA7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5tZXNzYWdlcy5p
biBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLm1lc3NhZ2VzLmluCmluZGV4
IDAxMjM2NzU3YTVjNWYwZDI4MGM2ZGQxZjlhMTgxNTJiYmNmMTljMDQuLjM3MDAxNzk5NzkzMzI5
MTQ2MmY2MGZkMTU4ODM4MmFmNzU1NjRiOWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJQcm9jZXNzLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJQcm9jZXNzLm1lc3NhZ2VzLmluCkBAIC01Miw2ICs1MiwxMCBAQCBtZXNzYWdlcyAt
PiBXZWJQcm9jZXNzIExlZ2FjeVJlY2VpdmVyIE5vdFJlZkNvdW50ZWQgewogICAgIFVzZXJQcmVm
ZXJyZWRMYW5ndWFnZXNDaGFuZ2VkKCkKICAgICBGdWxsS2V5Ym9hcmRBY2Nlc3NNb2RlQ2hhbmdl
ZChib29sIGZ1bGxLZXlib2FyZEFjY2Vzc0VuYWJsZWQpCiAKKyNpZiBIQVZFKFVJS0lUX1dJVEhf
TU9VU0VfU1VQUE9SVCkgJiYgUExBVEZPUk0oSU9TKQorICAgIFNldEhhc01vdXNlRGV2aWNlKGJv
b2wgaGFzTW91c2VEZXZpY2UpCisjZW5kaWYKKwogICAgICMgUGx1Zy1pbnMuCiAgICAgRGlkQWRk
UGx1Z0luQXV0b1N0YXJ0T3JpZ2luSGFzaCh1aW50MzJfdCBoYXNoLCBXYWxsVGltZSBleHBpcmF0
aW9uVGltZSkKICAgICBSZXNldFBsdWdJbkF1dG9TdGFydE9yaWdpbkhhc2hlcyhIYXNoTWFwPHVp
bnQzMl90LFdhbGxUaW1lPiBoYXNoZXMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5
L2lvcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnRJT1MuaCBiL1NvdXJjZS9XZWJLaXRM
ZWdhY3kvaW9zL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudElPUy5oCmluZGV4IGE5MmJh
YTZiMzA1OWRlODkxNDVmMDNiMWE1NzU3Zjk3MmE5NDA5OTkuLjI2MmQ4MTNjZGM1MThkNTNhMWNk
ZjE0YzhkNDYzNjVjNzM3NmRmMjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvaW9z
L1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudElPUy5oCisrKyBiL1NvdXJjZS9XZWJLaXRM
ZWdhY3kvaW9zL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudElPUy5oCkBAIC01MCw2ICs1
MCwxMCBAQCBwcml2YXRlOgogICAgIHZvaWQgcnVuT3BlblBhbmVsKFdlYkNvcmU6OkZyYW1lJiwg
V2ViQ29yZTo6RmlsZUNob29zZXImKSBmaW5hbDsKICAgICB2b2lkIHNob3dTaGFyZVNoZWV0KFdl
YkNvcmU6OlNoYXJlRGF0YVdpdGhQYXJzZWRVUkwmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJv
b2wpPiYmKSBmaW5hbDsKIAorI2lmIEhBVkUoVUlLSVRfV0lUSF9NT1VTRV9TVVBQT1JUKSAmJiBQ
TEFURk9STShJT1MpCisgICAgYm9vbCBoYXNNb3VzZURldmljZSgpIGZpbmFsIHsgcmV0dXJuIGZh
bHNlOyB9CisjZW5kaWYKKwogICAgIHZvaWQgc2V0Q3Vyc29yKGNvbnN0IFdlYkNvcmU6OkN1cnNv
ciYpIGZpbmFsIHsgfQogICAgIHZvaWQgc2V0Q3Vyc29ySGlkZGVuVW50aWxNb3VzZU1vdmVzKGJv
b2wpIGZpbmFsIHsgfQogCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFu
Z2VMb2cKaW5kZXggY2U5YmVlOTg5MDQ3YWEzY2UzNzNlNzhkYjFhNTlhYzljMjMwYWY5NS4uYWVl
Yzg5Yzc4NWY0YjNjNTM3ODg5M2VhYmM5NTNjMTgzYTdmMTQyOSAxMDA2NDQKLS0tIGEvVG9vbHMv
Q2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDIwLTA5
LTMwICBEZXZpbiBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNvbT4KKworICAgICAgICBDU1MgaG92
ZXIgYW5kICJwb2ludGVyOiBmaW5lIiBtZWRpYSBxdWVyaWVzIGRvIG5vdCBldmFsdWF0ZSB0byB0
cnVlIHdpdGggaU9TIDEzLjQgbW91c2Ugc3VwcG9ydAorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA5MjkyCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS82
MDY2MzEyND4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvaU9TTW91c2VTdXBwb3J0Lm1tOgor
ICAgICAgICAoZXZhbHVhdGVNZWRpYVF1ZXJ5KTogQWRkZWQuCisgICAgICAgIChpT1NNb3VzZVN1
cHBvcnQuTW91c2VJbml0aWFsbHlEaXNjb25uZWN0ZWQpOiBBZGRlZC4KKyAgICAgICAgKGlPU01v
dXNlU3VwcG9ydC5Nb3VzZUluaXRpYWxseUNvbm5lY3RlZCk6IEFkZGVkLgorICAgICAgICAoaU9T
TW91c2VTdXBwb3J0Lk1vdXNlTGF0ZXJEaXNjb25uZWN0ZWQpOiBBZGRlZC4KKyAgICAgICAgKGlP
U01vdXNlU3VwcG9ydC5Nb3VzZUxhdGVyQ29ubmVjdGVkKTogQWRkZWQuCisgICAgICAgIChpT1NN
b3VzZVN1cHBvcnQuTW91c2VBbHdheXNDb25uZWN0ZWQpOiBBZGRlZC4KKwogMjAyMC0xMC0wMSAg
RXJpYyBDYXJsc29uICA8ZXJpYy5jYXJsc29uQGFwcGxlLmNvbT4KIAogICAgICAgICBQcmV2ZW50
IG1lZGlhIGNhcHR1cmUgdW5sZXNzIHRoZSBhcHBsaWNhdGlvbiBoYXMgY29ycmVjdCBkYXRhIGZv
ciBzeXN0ZW0gcGVybWlzc2lvbiBwcm9tcHQKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViS2l0Q29jb2EvaU9TTW91c2VTdXBwb3J0Lm1tIGIvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9pT1NNb3VzZVN1cHBvcnQubW0KaW5kZXggYzI0MzBiMjBl
Zjc3NmFlYTEzMDllOTMzOGQ2ZTJlYTBjZjUwYWExNi4uNWQ4NTdlMmVlZDFmYWZmZjkxMWFkNTc5
MWNmMmJiNjJhZWI5NmZiMiAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJLaXRDb2NvYS9pT1NNb3VzZVN1cHBvcnQubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJLaXRDb2NvYS9pT1NNb3VzZVN1cHBvcnQubW0KQEAgLTMwMCw0ICszMDAsMTYzIEBA
IFRFU1QoaU9TTW91c2VTdXBwb3J0LCBXZWJzaXRlTW91c2VFdmVudFBvbGljaWVzKQogCiAjZW5k
aWYgLy8gRU5BQkxFKElPU19UT1VDSF9FVkVOVFMpCiAKKyNpZiBIQVZFKFVJS0lUX1dJVEhfTU9V
U0VfU1VQUE9SVCkgJiYgRU5BQkxFKFRPVUNIX0VWRU5UUykKKworc3RhdGljIEJPT0wgZXZhbHVh
dGVNZWRpYVF1ZXJ5KFJldGFpblB0cjxUZXN0V0tXZWJWaWV3PiYgd2ViVmlldywgTlNTdHJpbmcg
KnF1ZXJ5KQoreworICAgIHJldHVybiBbW3dlYlZpZXcgb2JqZWN0QnlFdmFsdWF0aW5nSmF2YVNj
cmlwdDpbTlNTdHJpbmcgc3RyaW5nV2l0aEZvcm1hdDpAIndpbmRvdy5tYXRjaE1lZGlhKFwiKCVA
KVwiKS5tYXRjaGVzIiwgcXVlcnldXSBib29sVmFsdWVdOworfQorCisjaWYgUExBVEZPUk0oSU9T
KQorCitAaW50ZXJmYWNlIFdLTW91c2VEZXZpY2VPYnNlcnZlcgorKyAoV0tNb3VzZURldmljZU9i
c2VydmVyICopc2hhcmVkSW5zdGFuY2U7CistICh2b2lkKV9zZXRIYXNNb3VzZURldmljZUZvclRl
c3Rpbmc6KEJPT0wpaGFzTW91c2VEZXZpY2U7CitAZW5kCisKK1RFU1QoaU9TTW91c2VTdXBwb3J0
LCBNb3VzZUluaXRpYWxseURpc2Nvbm5lY3RlZCkKK3sKKyAgICBbW05TQ2xhc3NGcm9tU3RyaW5n
KEAiV0tNb3VzZURldmljZU9ic2VydmVyIikgc2hhcmVkSW5zdGFuY2VdIF9zZXRIYXNNb3VzZURl
dmljZUZvclRlc3Rpbmc6Tk9dOworCisgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1Rlc3RX
S1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6TlNNYWtlUmVjdCgwLCAwLCA4MDAsIDYwMCld
KTsKKworICAgIFt3ZWJWaWV3IHN5bmNocm9ub3VzbHlMb2FkSFRNTFN0cmluZzpAIiJdOworCisg
ICAgRVhQRUNUX0ZBTFNFKGV2YWx1YXRlTWVkaWFRdWVyeSh3ZWJWaWV3LCBAImhvdmVyIikpOwor
ICAgIEVYUEVDVF9UUlVFKGV2YWx1YXRlTWVkaWFRdWVyeSh3ZWJWaWV3LCBAImhvdmVyOiBub25l
IikpOworICAgIEVYUEVDVF9GQUxTRShldmFsdWF0ZU1lZGlhUXVlcnkod2ViVmlldywgQCJob3Zl
cjogaG92ZXIiKSk7CisKKyAgICBFWFBFQ1RfRkFMU0UoZXZhbHVhdGVNZWRpYVF1ZXJ5KHdlYlZp
ZXcsIEAiYW55LWhvdmVyIikpOworICAgIEVYUEVDVF9UUlVFKGV2YWx1YXRlTWVkaWFRdWVyeSh3
ZWJWaWV3LCBAImFueS1ob3Zlcjogbm9uZSIpKTsKKyAgICBFWFBFQ1RfRkFMU0UoZXZhbHVhdGVN
ZWRpYVF1ZXJ5KHdlYlZpZXcsIEAiYW55LWhvdmVyOiBob3ZlciIpKTsKKworICAgIEVYUEVDVF9U
UlVFKGV2YWx1YXRlTWVkaWFRdWVyeSh3ZWJWaWV3LCBAInBvaW50ZXIiKSk7CisgICAgRVhQRUNU
X0ZBTFNFKGV2YWx1YXRlTWVkaWFRdWVyeSh3ZWJWaWV3LCBAInBvaW50ZXI6IG5vbmUiKSk7Cisg
ICAgRVhQRUNUX1RSVUUoZXZhbHVhdGVNZWRpYVF1ZXJ5KHdlYlZpZXcsIEAicG9pbnRlcjogY29h
cnNlIikpOworICAgIEVYUEVDVF9GQUxTRShldmFsdWF0ZU1lZGlhUXVlcnkod2ViVmlldywgQCJw
b2ludGVyOiBmaW5lIikpOworCisgICAgRVhQRUNUX1RSVUUoZXZhbHVhdGVNZWRpYVF1ZXJ5KHdl
YlZpZXcsIEAiYW55LXBvaW50ZXIiKSk7CisgICAgRVhQRUNUX0ZBTFNFKGV2YWx1YXRlTWVkaWFR
dWVyeSh3ZWJWaWV3LCBAImFueS1wb2ludGVyOiBub25lIikpOworICAgIEVYUEVDVF9UUlVFKGV2
YWx1YXRlTWVkaWFRdWVyeSh3ZWJWaWV3LCBAImFueS1wb2ludGVyOiBjb2Fyc2UiKSk7CisgICAg
RVhQRUNUX0ZBTFNFKGV2YWx1YXRlTWVkaWFRdWVyeSh3ZWJWaWV3LCBAImFueS1wb2ludGVyOiBm
aW5lIikpOworfQorCitURVNUKGlPU01vdXNlU3VwcG9ydCwgTW91c2VJbml0aWFsbHlDb25uZWN0
ZWQpCit7CisgICAgW1tOU0NsYXNzRnJvbVN0cmluZyhAIldLTW91c2VEZXZpY2VPYnNlcnZlciIp
IHNoYXJlZEluc3RhbmNlXSBfc2V0SGFzTW91c2VEZXZpY2VGb3JUZXN0aW5nOllFU107CisKKyAg
ICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhG
cmFtZTpOU01ha2VSZWN0KDAsIDAsIDgwMCwgNjAwKV0pOworCisgICAgW3dlYlZpZXcgc3luY2hy
b25vdXNseUxvYWRIVE1MU3RyaW5nOkAiIl07CisKKyAgICBFWFBFQ1RfRkFMU0UoZXZhbHVhdGVN
ZWRpYVF1ZXJ5KHdlYlZpZXcsIEAiaG92ZXIiKSk7CisgICAgRVhQRUNUX1RSVUUoZXZhbHVhdGVN
ZWRpYVF1ZXJ5KHdlYlZpZXcsIEAiaG92ZXI6IG5vbmUiKSk7CisgICAgRVhQRUNUX0ZBTFNFKGV2
YWx1YXRlTWVkaWFRdWVyeSh3ZWJWaWV3LCBAImhvdmVyOiBob3ZlciIpKTsKKworICAgIEVYUEVD
VF9UUlVFKGV2YWx1YXRlTWVkaWFRdWVyeSh3ZWJWaWV3LCBAImFueS1ob3ZlciIpKTsKKyAgICBF
WFBFQ1RfRkFMU0UoZXZhbHVhdGVNZWRpYVF1ZXJ5KHdlYlZpZXcsIEAiYW55LWhvdmVyOiBub25l
IikpOworICAgIEVYUEVDVF9UUlVFKGV2YWx1YXRlTWVkaWFRdWVyeSh3ZWJWaWV3LCBAImFueS1o
b3ZlcjogaG92ZXIiKSk7CisKKyAgICBFWFBFQ1RfVFJVRShldmFsdWF0ZU1lZGlhUXVlcnkod2Vi
VmlldywgQCJwb2ludGVyIikpOworICAgIEVYUEVDVF9GQUxTRShldmFsdWF0ZU1lZGlhUXVlcnko
d2ViVmlldywgQCJwb2ludGVyOiBub25lIikpOworICAgIEVYUEVDVF9UUlVFKGV2YWx1YXRlTWVk
aWFRdWVyeSh3ZWJWaWV3LCBAInBvaW50ZXI6IGNvYXJzZSIpKTsKKyAgICBFWFBFQ1RfRkFMU0Uo
ZXZhbHVhdGVNZWRpYVF1ZXJ5KHdlYlZpZXcsIEAicG9pbnRlcjogZmluZSIpKTsKKworICAgIEVY
UEVDVF9UUlVFKGV2YWx1YXRlTWVkaWFRdWVyeSh3ZWJWaWV3LCBAImFueS1wb2ludGVyIikpOwor
ICAgIEVYUEVDVF9GQUxTRShldmFsdWF0ZU1lZGlhUXVlcnkod2ViVmlldywgQCJhbnktcG9pbnRl
cjogbm9uZSIpKTsKKyAgICBFWFBFQ1RfVFJVRShldmFsdWF0ZU1lZGlhUXVlcnkod2ViVmlldywg
QCJhbnktcG9pbnRlcjogY29hcnNlIikpOworICAgIEVYUEVDVF9UUlVFKGV2YWx1YXRlTWVkaWFR
dWVyeSh3ZWJWaWV3LCBAImFueS1wb2ludGVyOiBmaW5lIikpOworfQorCitURVNUKGlPU01vdXNl
U3VwcG9ydCwgTW91c2VMYXRlckRpc2Nvbm5lY3RlZCkKK3sKKyAgICBbW05TQ2xhc3NGcm9tU3Ry
aW5nKEAiV0tNb3VzZURldmljZU9ic2VydmVyIikgc2hhcmVkSW5zdGFuY2VdIF9zZXRIYXNNb3Vz
ZURldmljZUZvclRlc3Rpbmc6WUVTXTsKKworICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tU
ZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5TTWFrZVJlY3QoMCwgMCwgODAwLCA2
MDApXSk7CisKKyAgICBbd2ViVmlldyBzeW5jaHJvbm91c2x5TG9hZEhUTUxTdHJpbmc6QCIiXTsK
KworICAgIFtbTlNDbGFzc0Zyb21TdHJpbmcoQCJXS01vdXNlRGV2aWNlT2JzZXJ2ZXIiKSBzaGFy
ZWRJbnN0YW5jZV0gX3NldEhhc01vdXNlRGV2aWNlRm9yVGVzdGluZzpOT107CisKKyAgICBFWFBF
Q1RfRkFMU0UoZXZhbHVhdGVNZWRpYVF1ZXJ5KHdlYlZpZXcsIEAiaG92ZXIiKSk7CisgICAgRVhQ
RUNUX1RSVUUoZXZhbHVhdGVNZWRpYVF1ZXJ5KHdlYlZpZXcsIEAiaG92ZXI6IG5vbmUiKSk7Cisg
ICAgRVhQRUNUX0ZBTFNFKGV2YWx1YXRlTWVkaWFRdWVyeSh3ZWJWaWV3LCBAImhvdmVyOiBob3Zl
ciIpKTsKKworICAgIEVYUEVDVF9GQUxTRShldmFsdWF0ZU1lZGlhUXVlcnkod2ViVmlldywgQCJh
bnktaG92ZXIiKSk7CisgICAgRVhQRUNUX1RSVUUoZXZhbHVhdGVNZWRpYVF1ZXJ5KHdlYlZpZXcs
IEAiYW55LWhvdmVyOiBub25lIikpOworICAgIEVYUEVDVF9GQUxTRShldmFsdWF0ZU1lZGlhUXVl
cnkod2ViVmlldywgQCJhbnktaG92ZXI6IGhvdmVyIikpOworCisgICAgRVhQRUNUX1RSVUUoZXZh
bHVhdGVNZWRpYVF1ZXJ5KHdlYlZpZXcsIEAicG9pbnRlciIpKTsKKyAgICBFWFBFQ1RfRkFMU0Uo
ZXZhbHVhdGVNZWRpYVF1ZXJ5KHdlYlZpZXcsIEAicG9pbnRlcjogbm9uZSIpKTsKKyAgICBFWFBF
Q1RfVFJVRShldmFsdWF0ZU1lZGlhUXVlcnkod2ViVmlldywgQCJwb2ludGVyOiBjb2Fyc2UiKSk7
CisgICAgRVhQRUNUX0ZBTFNFKGV2YWx1YXRlTWVkaWFRdWVyeSh3ZWJWaWV3LCBAInBvaW50ZXI6
IGZpbmUiKSk7CisKKyAgICBFWFBFQ1RfVFJVRShldmFsdWF0ZU1lZGlhUXVlcnkod2ViVmlldywg
QCJhbnktcG9pbnRlciIpKTsKKyAgICBFWFBFQ1RfRkFMU0UoZXZhbHVhdGVNZWRpYVF1ZXJ5KHdl
YlZpZXcsIEAiYW55LXBvaW50ZXI6IG5vbmUiKSk7CisgICAgRVhQRUNUX1RSVUUoZXZhbHVhdGVN
ZWRpYVF1ZXJ5KHdlYlZpZXcsIEAiYW55LXBvaW50ZXI6IGNvYXJzZSIpKTsKKyAgICBFWFBFQ1Rf
RkFMU0UoZXZhbHVhdGVNZWRpYVF1ZXJ5KHdlYlZpZXcsIEAiYW55LXBvaW50ZXI6IGZpbmUiKSk7
Cit9CisKK1RFU1QoaU9TTW91c2VTdXBwb3J0LCBNb3VzZUxhdGVyQ29ubmVjdGVkKQoreworICAg
IFtbTlNDbGFzc0Zyb21TdHJpbmcoQCJXS01vdXNlRGV2aWNlT2JzZXJ2ZXIiKSBzaGFyZWRJbnN0
YW5jZV0gX3NldEhhc01vdXNlRGV2aWNlRm9yVGVzdGluZzpOT107CisKKyAgICBhdXRvIHdlYlZp
ZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU01ha2VS
ZWN0KDAsIDAsIDgwMCwgNjAwKV0pOworCisgICAgW3dlYlZpZXcgc3luY2hyb25vdXNseUxvYWRI
VE1MU3RyaW5nOkAiIl07CisKKyAgICBbW05TQ2xhc3NGcm9tU3RyaW5nKEAiV0tNb3VzZURldmlj
ZU9ic2VydmVyIikgc2hhcmVkSW5zdGFuY2VdIF9zZXRIYXNNb3VzZURldmljZUZvclRlc3Rpbmc6
WUVTXTsKKworICAgIEVYUEVDVF9GQUxTRShldmFsdWF0ZU1lZGlhUXVlcnkod2ViVmlldywgQCJo
b3ZlciIpKTsKKyAgICBFWFBFQ1RfVFJVRShldmFsdWF0ZU1lZGlhUXVlcnkod2ViVmlldywgQCJo
b3Zlcjogbm9uZSIpKTsKKyAgICBFWFBFQ1RfRkFMU0UoZXZhbHVhdGVNZWRpYVF1ZXJ5KHdlYlZp
ZXcsIEAiaG92ZXI6IGhvdmVyIikpOworCisgICAgRVhQRUNUX1RSVUUoZXZhbHVhdGVNZWRpYVF1
ZXJ5KHdlYlZpZXcsIEAiYW55LWhvdmVyIikpOworICAgIEVYUEVDVF9GQUxTRShldmFsdWF0ZU1l
ZGlhUXVlcnkod2ViVmlldywgQCJhbnktaG92ZXI6IG5vbmUiKSk7CisgICAgRVhQRUNUX1RSVUUo
ZXZhbHVhdGVNZWRpYVF1ZXJ5KHdlYlZpZXcsIEAiYW55LWhvdmVyOiBob3ZlciIpKTsKKworICAg
IEVYUEVDVF9UUlVFKGV2YWx1YXRlTWVkaWFRdWVyeSh3ZWJWaWV3LCBAInBvaW50ZXIiKSk7Cisg
ICAgRVhQRUNUX0ZBTFNFKGV2YWx1YXRlTWVkaWFRdWVyeSh3ZWJWaWV3LCBAInBvaW50ZXI6IG5v
bmUiKSk7CisgICAgRVhQRUNUX1RSVUUoZXZhbHVhdGVNZWRpYVF1ZXJ5KHdlYlZpZXcsIEAicG9p
bnRlcjogY29hcnNlIikpOworICAgIEVYUEVDVF9GQUxTRShldmFsdWF0ZU1lZGlhUXVlcnkod2Vi
VmlldywgQCJwb2ludGVyOiBmaW5lIikpOworCisgICAgRVhQRUNUX1RSVUUoZXZhbHVhdGVNZWRp
YVF1ZXJ5KHdlYlZpZXcsIEAiYW55LXBvaW50ZXIiKSk7CisgICAgRVhQRUNUX0ZBTFNFKGV2YWx1
YXRlTWVkaWFRdWVyeSh3ZWJWaWV3LCBAImFueS1wb2ludGVyOiBub25lIikpOworICAgIEVYUEVD
VF9UUlVFKGV2YWx1YXRlTWVkaWFRdWVyeSh3ZWJWaWV3LCBAImFueS1wb2ludGVyOiBjb2Fyc2Ui
KSk7CisgICAgRVhQRUNUX1RSVUUoZXZhbHVhdGVNZWRpYVF1ZXJ5KHdlYlZpZXcsIEAiYW55LXBv
aW50ZXI6IGZpbmUiKSk7Cit9CisKKyNlbmRpZiAvLyBQTEFURk9STShJT1MpCisKKyNpZiBQTEFU
Rk9STShNQUNDQVRBTFlTVCkKKworVEVTVChpT1NNb3VzZVN1cHBvcnQsIE1vdXNlQWx3YXlzQ29u
bmVjdGVkKQoreworICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFs
bG9jXSBpbml0V2l0aEZyYW1lOk5TTWFrZVJlY3QoMCwgMCwgODAwLCA2MDApXSk7CisKKyAgICBb
d2ViVmlldyBzeW5jaHJvbm91c2x5TG9hZEhUTUxTdHJpbmc6QCIiXTsKKworICAgIEVYUEVDVF9G
QUxTRShldmFsdWF0ZU1lZGlhUXVlcnkod2ViVmlldywgQCJob3ZlciIpKTsKKyAgICBFWFBFQ1Rf
VFJVRShldmFsdWF0ZU1lZGlhUXVlcnkod2ViVmlldywgQCJob3Zlcjogbm9uZSIpKTsKKyAgICBF
WFBFQ1RfRkFMU0UoZXZhbHVhdGVNZWRpYVF1ZXJ5KHdlYlZpZXcsIEAiaG92ZXI6IGhvdmVyIikp
OworCisgICAgRVhQRUNUX1RSVUUoZXZhbHVhdGVNZWRpYVF1ZXJ5KHdlYlZpZXcsIEAiYW55LWhv
dmVyIikpOworICAgIEVYUEVDVF9GQUxTRShldmFsdWF0ZU1lZGlhUXVlcnkod2ViVmlldywgQCJh
bnktaG92ZXI6IG5vbmUiKSk7CisgICAgRVhQRUNUX1RSVUUoZXZhbHVhdGVNZWRpYVF1ZXJ5KHdl
YlZpZXcsIEAiYW55LWhvdmVyOiBob3ZlciIpKTsKKworICAgIEVYUEVDVF9UUlVFKGV2YWx1YXRl
TWVkaWFRdWVyeSh3ZWJWaWV3LCBAInBvaW50ZXIiKSk7CisgICAgRVhQRUNUX0ZBTFNFKGV2YWx1
YXRlTWVkaWFRdWVyeSh3ZWJWaWV3LCBAInBvaW50ZXI6IG5vbmUiKSk7CisgICAgRVhQRUNUX1RS
VUUoZXZhbHVhdGVNZWRpYVF1ZXJ5KHdlYlZpZXcsIEAicG9pbnRlcjogY29hcnNlIikpOworICAg
IEVYUEVDVF9GQUxTRShldmFsdWF0ZU1lZGlhUXVlcnkod2ViVmlldywgQCJwb2ludGVyOiBmaW5l
IikpOworCisgICAgRVhQRUNUX1RSVUUoZXZhbHVhdGVNZWRpYVF1ZXJ5KHdlYlZpZXcsIEAiYW55
LXBvaW50ZXIiKSk7CisgICAgRVhQRUNUX0ZBTFNFKGV2YWx1YXRlTWVkaWFRdWVyeSh3ZWJWaWV3
LCBAImFueS1wb2ludGVyOiBub25lIikpOworICAgIEVYUEVDVF9UUlVFKGV2YWx1YXRlTWVkaWFR
dWVyeSh3ZWJWaWV3LCBAImFueS1wb2ludGVyOiBjb2Fyc2UiKSk7CisgICAgRVhQRUNUX1RSVUUo
ZXZhbHVhdGVNZWRpYVF1ZXJ5KHdlYlZpZXcsIEAiYW55LXBvaW50ZXI6IGZpbmUiKSk7Cit9CisK
KyNlbmRpZiAvLyBQTEFURk9STShNQUNDQVRBTFlTVCkKKworI2VuZGlmIC8vIEhBVkUoVUlLSVRf
V0lUSF9NT1VTRV9TVVBQT1JUKSAmJiBFTkFCTEUoVE9VQ0hfRVZFTlRTKQorCiAjZW5kaWYgLy8g
UExBVEZPUk0oSU9TKSB8fCBQTEFURk9STShNQUNDQVRBTFlTVCkKZGlmZiAtLWdpdCBhL1dlYktp
dExpYnJhcmllcy9DaGFuZ2VMb2cgYi9XZWJLaXRMaWJyYXJpZXMvQ2hhbmdlTG9nCmluZGV4IDE2
MjQ0NjQ4ZDJhYTMzYWQ1NzJhZGIzYzM3NGEzMWM3NDcwYzE1NzQuLjFlNWFiYTUyZTFjNjFiMzQ4
MjJjZDg3NDBlNmNjMmI3ZDI5MjY3YmQgMTAwNjQ0Ci0tLSBhL1dlYktpdExpYnJhcmllcy9DaGFu
Z2VMb2cKKysrIGIvV2ViS2l0TGlicmFyaWVzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisy
MDIwLTA5LTMwICBEZXZpbiBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNvbT4KKworICAgICAgICBD
U1MgaG92ZXIgYW5kICJwb2ludGVyOiBmaW5lIiBtZWRpYSBxdWVyaWVzIGRvIG5vdCBldmFsdWF0
ZSB0byB0cnVlIHdpdGggaU9TIDEzLjQgbW91c2Ugc3VwcG9ydAorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA5MjkyCisgICAgICAgIDxyZGFyOi8vcHJv
YmxlbS82MDY2MzEyND4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICAqIFdlYktpdFByaXZhdGVGcmFtZXdvcmtTdHVicy9pT1MvMTMvQmFja0JvYXJkU2Vy
dmljZXMuZnJhbWV3b3JrL0JhY2tCb2FyZFNlcnZpY2VzLnRiZDogQWRkZWQuCisgICAgICAgICog
V2ViS2l0UHJpdmF0ZUZyYW1ld29ya1N0dWJzL2lPUy8xNC9CYWNrQm9hcmRTZXJ2aWNlcy5mcmFt
ZXdvcmsvQmFja0JvYXJkU2VydmljZXMudGJkOiBBZGRlZC4KKyAgICAgICAgVXNlIGBCYWNrQm9h
cmRTZXJ2aWNlc2AgdG8gbGlzdGVuIGZvciBtb3VzZSBkZXZpY2VzIGNoYW5nZXMuCisKIDIwMjAt
MDctMjYgIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CiAKICAgICAgICAg
UkVHUkVTU0lPTiAocjI2NDY5MCk6IFsgaU9TIHdrMiBdIGVkaXRpbmcvc2VsZWN0aW9uL3NoaWZ0
LWNsaWNrLWluY2x1ZGVzLWV4aXN0aW5nLXNlbGVjdGlvbi5odG1sIGlzIGEgZmxha3kgZmFpbHVy
ZQpkaWZmIC0tZ2l0IGEvV2ViS2l0TGlicmFyaWVzL1dlYktpdFByaXZhdGVGcmFtZXdvcmtTdHVi
cy9pT1MvMTMvQmFja0JvYXJkU2VydmljZXMuZnJhbWV3b3JrL0JhY2tCb2FyZFNlcnZpY2VzLnRi
ZCBiL1dlYktpdExpYnJhcmllcy9XZWJLaXRQcml2YXRlRnJhbWV3b3JrU3R1YnMvaU9TLzEzL0Jh
Y2tCb2FyZFNlcnZpY2VzLmZyYW1ld29yay9CYWNrQm9hcmRTZXJ2aWNlcy50YmQKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uMDAyMzQ4YmQzZWUwZTEzM2EzZDk1OGZiZGVjNTdmZjdmZGIzYjdmNwotLS0gL2Rldi9udWxs
CisrKyBiL1dlYktpdExpYnJhcmllcy9XZWJLaXRQcml2YXRlRnJhbWV3b3JrU3R1YnMvaU9TLzEz
L0JhY2tCb2FyZFNlcnZpY2VzLmZyYW1ld29yay9CYWNrQm9hcmRTZXJ2aWNlcy50YmQKQEAgLTAs
MCArMSw5IEBACistLS0gIXRhcGktdGJkLXYzCithcmNoczogICAgICAgICAgIFsgeDg2XzY0LCBh
cm02NCwgYXJtNjRlIF0KK2luc3RhbGwtbmFtZTogICAgJy9TeXN0ZW0vTGlicmFyeS9Qcml2YXRl
RnJhbWV3b3Jrcy9CYWNrQm9hcmRTZXJ2aWNlcy5mcmFtZXdvcmsvQmFja0JvYXJkU2VydmljZXMn
CitvYmpjLWNvbnN0cmFpbnQ6IG5vbmUKK3BsYXRmb3JtOiBpb3MKK2V4cG9ydHM6CisgIC0gYXJj
aHM6ICAgICAgICAgICBbIHg4Nl82NCwgYXJtNjQsIGFybTY0ZSBdCisgICAgb2JqYy1jbGFzc2Vz
OiAgICBbIEJLU01vdXNlUG9pbnRlckRldmljZSwgQktTTW91c2VQb2ludGVyU2VydmljZSBdCisu
Li4KZGlmZiAtLWdpdCBhL1dlYktpdExpYnJhcmllcy9XZWJLaXRQcml2YXRlRnJhbWV3b3JrU3R1
YnMvaU9TLzE0L0JhY2tCb2FyZFNlcnZpY2VzLmZyYW1ld29yay9CYWNrQm9hcmRTZXJ2aWNlcy50
YmQgYi9XZWJLaXRMaWJyYXJpZXMvV2ViS2l0UHJpdmF0ZUZyYW1ld29ya1N0dWJzL2lPUy8xNC9C
YWNrQm9hcmRTZXJ2aWNlcy5mcmFtZXdvcmsvQmFja0JvYXJkU2VydmljZXMudGJkCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjAwMjM0OGJkM2VlMGUxMzNhM2Q5NThmYmRlYzU3ZmY3ZmRiM2I3ZjcKLS0tIC9kZXYvbnVs
bAorKysgYi9XZWJLaXRMaWJyYXJpZXMvV2ViS2l0UHJpdmF0ZUZyYW1ld29ya1N0dWJzL2lPUy8x
NC9CYWNrQm9hcmRTZXJ2aWNlcy5mcmFtZXdvcmsvQmFja0JvYXJkU2VydmljZXMudGJkCkBAIC0w
LDAgKzEsOSBAQAorLS0tICF0YXBpLXRiZC12MworYXJjaHM6ICAgICAgICAgICBbIHg4Nl82NCwg
YXJtNjQsIGFybTY0ZSBdCitpbnN0YWxsLW5hbWU6ICAgICcvU3lzdGVtL0xpYnJhcnkvUHJpdmF0
ZUZyYW1ld29ya3MvQmFja0JvYXJkU2VydmljZXMuZnJhbWV3b3JrL0JhY2tCb2FyZFNlcnZpY2Vz
Jworb2JqYy1jb25zdHJhaW50OiBub25lCitwbGF0Zm9ybTogaW9zCitleHBvcnRzOgorICAtIGFy
Y2hzOiAgICAgICAgICAgWyB4ODZfNjQsIGFybTY0LCBhcm02NGUgXQorICAgIG9iamMtY2xhc3Nl
czogICAgWyBCS1NNb3VzZVBvaW50ZXJEZXZpY2UsIEJLU01vdXNlUG9pbnRlclNlcnZpY2UgXQor
Li4uCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>410375</attachid>
            <date>2020-10-02 15:03:56 -0700</date>
            <delta_ts>2020-10-05 21:13:32 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-209292-20201002150355.patch</filename>
            <type>text/plain</type>
            <size>54301</size>
            <attacher name="Devin Rousso">hi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA1NmMyZjJmZGE2MThlNzk1MGJhZDdlMGEyOTRjYjg1MWQzMGI4NGNhLi4z
MGJjNDllNWQzZjQyMWRjZGU2NTgzMDY1YjlmNGU1OWZiNTJiMzY5IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMjkgQEAKKzIwMjAtMDktMzAgIERldmluIFJvdXNzbyAgPGRyb3Vzc29AYXBwbGUuY29t
PgorCisgICAgICAgIENTUyBob3ZlciBhbmQgInBvaW50ZXI6IGZpbmUiIG1lZGlhIHF1ZXJpZXMg
ZG8gbm90IGV2YWx1YXRlIHRvIHRydWUgd2l0aCBpT1MgMTMuNCBtb3VzZSBzdXBwb3J0CisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDkyOTIKKyAgICAg
ICAgPHJkYXI6Ly9wcm9ibGVtLzYwNjYzMTI0PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIE9uIGlPUywgdGhlIHByaW1hcnkgcG9pbnRlciB3aWxsIGFs
d2F5cyBiZSB0b3VjaCBpbnB1dCwgc28gdGhlIGBob3ZlcmAvYHBvaW50ZXJgIG1lZGlhIHF1ZXJ5
CisgICAgICAgIHNob3VsZCBuZXZlciBjaGFuZ2UuIElmIGEgbW91c2UgaXMgY29ubmVjdGVkLCBo
b3dldmVyLCBgYW55LWhvdmVyYC9gYW55LXBvaW50ZXJgIHNob3VsZAorICAgICAgICBjaGFuZ2Ug
YXMgbm93IHRoZXJlIGlzIGF0IGxlYXN0IG9uZSBkZXZpY2UgdGhhdCBzdXBwb3J0cyBgaG92ZXJg
L2BmaW5lYC4gTm90ZSB0aGF0IGluIHRoZQorICAgICAgICBjYXNlIG9mIGBhbnktcG9pbnRlcmAg
dGhpcyBtZWFucyB0aGF0IGJvdGggYGNvYXJzZWAgYW5kIGBmaW5lYCB3aWxsIGFwcGx5LiBDYXRh
bHlzdCBhc3N1bWVzCisgICAgICAgIHRoYXQgdGhlcmUgaXMgYWx3YXlzIGEgbW91c2UgY29ubmVj
dGVkLgorCisgICAgICAgIFNwZWM6IGh0dHBzOi8vZHJhZnRzLmNzc3dnLm9yZy9tZWRpYXF1ZXJp
ZXMtNC8jYW55LWlucHV0CisKKyAgICAgICAgKiBjc3MvTWVkaWFRdWVyeUV2YWx1YXRvci5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpoYXNNb3VzZURldmljZSk6IEFkZGVkLgorICAgICAgICAoV2Vi
Q29yZTo6YW55SG92ZXJFdmFsdWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjphbnlQb2ludGVyRXZh
bHVhdGUpOgorCisgICAgICAgICogcGFnZS9DaHJvbWVDbGllbnQuaDoKKyAgICAgICAgKiBsb2Fk
ZXIvRW1wdHlDbGllbnRzLmg6CisgICAgICAgIChXZWJDb3JlOjpFbXB0eUNocm9tZUNsaWVudDo6
aGFzTW91c2VEZXZpY2UpOiBBZGRlZC4KKyAgICAgICAgUHJvdmlkZSBhIHdheSBmb3IgV2ViQ29y
ZSB0byBnZXQgdGhlIGN1cnJlbnQgc3RhdGUgb2Ygd2hldGhlciB0aGVyZSBhcmUgYW55IG1vdXNl
IGRldmljZXMuCisKIDIwMjAtMTAtMDEgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4K
IAogICAgICAgICBBZGQgYmFzaWMgaW5mcmFzdHJ1Y3R1cmUgZm9yIEF1ZGlvV29ya2xldApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxv
ZwppbmRleCBiOGI1NzhiZTcxOWU5ZDM0M2EyMzliMjI1Njk2NDcxYWFhZmE5MzZlLi5jYmY3NmNk
ZmI2MGRjYTEyN2MwNmIxZDc1MmJlMWI0OTM1ZTY0NWFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDcy
IEBACisyMDIwLTA5LTMwICBEZXZpbiBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNvbT4KKworICAg
ICAgICBDU1MgaG92ZXIgYW5kICJwb2ludGVyOiBmaW5lIiBtZWRpYSBxdWVyaWVzIGRvIG5vdCBl
dmFsdWF0ZSB0byB0cnVlIHdpdGggaU9TIDEzLjQgbW91c2Ugc3VwcG9ydAorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA5MjkyCisgICAgICAgIDxyZGFy
Oi8vcHJvYmxlbS82MDY2MzEyND4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBPbiBpT1MsIHRoZSBwcmltYXJ5IHBvaW50ZXIgd2lsbCBhbHdheXMgYmUg
dG91Y2ggaW5wdXQsIHNvIHRoZSBgaG92ZXJgL2Bwb2ludGVyYCBtZWRpYSBxdWVyeQorICAgICAg
ICBzaG91bGQgbmV2ZXIgY2hhbmdlLiBJZiBhIG1vdXNlIGlzIGNvbm5lY3RlZCwgaG93ZXZlciwg
YGFueS1ob3ZlcmAvYGFueS1wb2ludGVyYCBzaG91bGQKKyAgICAgICAgY2hhbmdlIGFzIG5vdyB0
aGVyZSBpcyBhdCBsZWFzdCBvbmUgZGV2aWNlIHRoYXQgc3VwcG9ydHMgYGhvdmVyYC9gZmluZWAu
IE5vdGUgdGhhdCBpbiB0aGUKKyAgICAgICAgY2FzZSBvZiBgYW55LXBvaW50ZXJgIHRoaXMgbWVh
bnMgdGhhdCBib3RoIGBjb2Fyc2VgIGFuZCBgZmluZWAgd2lsbCBhcHBseS4gQ2F0YWx5c3QgYXNz
dW1lcworICAgICAgICB0aGF0IHRoZXJlIGlzIGFsd2F5cyBhIG1vdXNlIGNvbm5lY3RlZC4KKwor
ICAgICAgICBTcGVjOiBodHRwczovL2RyYWZ0cy5jc3N3Zy5vcmcvbWVkaWFxdWVyaWVzLTQvI2Fu
eS1pbnB1dAorCisgICAgICAgICogVUlQcm9jZXNzL2lvcy9XS01vdXNlRGV2aWNlT2JzZXJ2ZXIu
aDogQWRkZWQuCisgICAgICAgICogVUlQcm9jZXNzL2lvcy9XS01vdXNlRGV2aWNlT2JzZXJ2ZXIu
bW06IEFkZGVkLgorICAgICAgICAoK1tXS01vdXNlRGV2aWNlT2JzZXJ2ZXIgc2hhcmVkSW5zdGFu
Y2VdKToKKyAgICAgICAgKC1bV0tNb3VzZURldmljZU9ic2VydmVyIGRlYWxsb2NdKToKKyAgICAg
ICAgKC1bV0tNb3VzZURldmljZU9ic2VydmVyIGFkZFdlYlByb2Nlc3NQcm94eTpdKToKKyAgICAg
ICAgKC1bV0tNb3VzZURldmljZU9ic2VydmVyIHJlbW92ZVdlYlByb2Nlc3NQcm94eTpdKToKKyAg
ICAgICAgKC1bV0tNb3VzZURldmljZU9ic2VydmVyIHN0YXJ0XSk6CisgICAgICAgICgtW1dLTW91
c2VEZXZpY2VPYnNlcnZlciBzdG9wXSk6CisgICAgICAgICgtW1dLTW91c2VEZXZpY2VPYnNlcnZl
ciBtb3VzZVBvaW50ZXJEZXZpY2VzRGlkQ2hhbmdlOl0pOgorICAgICAgICAoLVtXS01vdXNlRGV2
aWNlT2JzZXJ2ZXIgX3NldEhhc01vdXNlRGV2aWNlRm9yVGVzdGluZzpdKToKKyAgICAgICAgVXNl
IGBCYWNrQm9hcmRTZXJ2aWNlc2AgdG8gbGlzdGVuIGZvciBtb3VzZSBkZXZpY2VzIGNoYW5nZXMg
YW5kIG5vdGlmeSBhbGwgV2ViUHJvY2Vzcy4KKworICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9j
ZXNzUHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Byb3h5Ojpjb25uZWN0aW9uV2lsbE9wZW4pOgorICAg
ICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUHJveHk6OnBsYXRmb3JtQ29ubmVjdGlvbldpbGxPcGVu
KTogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQcm94eTo6cHJvY2Vzc1dpbGxT
aHV0RG93bik6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQcm94eTo6cGxhdGZvcm1Qcm9j
ZXNzV2lsbFNodXREb3duKTogQWRkZWQuCisgICAgICAgICogVUlQcm9jZXNzL2lvcy9XZWJQcm9j
ZXNzUHJveHlJT1MubW06CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQcm94eTo6cGxhdGZv
cm1Db25uZWN0aW9uV2lsbE9wZW4pOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vz
c1Byb3h5OjpwbGF0Zm9ybVByb2Nlc3NXaWxsU2h1dERvd24pOiBBZGRlZC4KKyAgICAgICAgKFdl
YktpdDo6V2ViUHJvY2Vzc1Byb3h5OjpzZXRIYXNNb3VzZURldmljZSk6IEFkZGVkLgorICAgICAg
ICBBdHRhY2ggdG8gdGhlIHNoYXJlZCBgV0tNb3VzZURldmljZU9ic2VydmVyYCB3aGVuIGNyZWF0
aW5nIHRoZSBXZWJQcm9jZXNzIHNvIHRoYXQgdGhlIHNoYXJlZAorICAgICAgICBgV0tNb3VzZURl
dmljZU9ic2VydmVyYCBrbm93cyB0byBub3RpZnkgdGhhdCBpbnN0YW5jZSB3aGVuIG1vdXNlIGRl
dmljZXMgY2hhbmdlLgorCisgICAgICAgICogU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFt
ZXRlcnMuaDoKKyAgICAgICAgKiBTaGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5j
cHA6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnM6OmVuY29k
ZSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnM6
OmRlY29kZSk6CisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL1dlYlByb2Nlc3NQb29sQ29jb2Eu
bW06CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQb29sOjpwbGF0Zm9ybUluaXRpYWxpemVX
ZWJQcm9jZXNzKToKKyAgICAgICAgVXNlIHRoZSBjdXJyZW50IHN0YXRlIG9mIHRoZSBzaGFyZWQg
YFdLTW91c2VEZXZpY2VPYnNlcnZlcmAgd2hlbiBjcmVhdGluZyBXZWJQcm9jZXNzIGluc3RlYWQK
KyAgICAgICAgb2Ygc2VuZGluZyBhIGBTZXRIYXNNb3VzZURldmljZWAgbWVzc2FnZSBpbW1lZGlh
dGVseSBhZnRlciB0aGUgV2ViUHJvY2VzcyBpcyBjcmVhdGVkLgorCisgICAgICAgICogV2ViUHJv
Y2Vzcy9XZWJQcm9jZXNzLm1lc3NhZ2VzLmluOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUHJv
Y2Vzcy5oOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjpoYXNNb3VzZURldmljZSBjb25z
dCk6IEFkZGVkLgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHA6CisgICAgICAg
IChXZWJLaXQ6OldlYlByb2Nlc3M6OmluaXRpYWxpemVXZWJQcm9jZXNzKToKKyAgICAgICAgKFdl
YktpdDo6V2ViUHJvY2Vzczo6c2V0SGFzTW91c2VEZXZpY2UpOiBBZGRlZC4KKyAgICAgICAgVXBk
YXRlIHN0eWxlIChpbmNsdWRpbmcgYGFueS1ob3ZlcmAgYW5kIGBhbnktcG9pbnRlcmApIHdoZW5l
dmVyIG1vdXNlIGRldmljZXMgY2hhbmdlLgorCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3Jl
U3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkNocm9tZUNs
aWVudDo6aGFzTW91c2VEZXZpY2UpOiBBZGRlZC4KKyAgICAgICAgUHJvdmlkZSBhIHdheSBmb3Ig
V2ViQ29yZSB0byBnZXQgdGhlIGN1cnJlbnQgc3RhdGUgb2Ygd2hldGhlciB0aGVyZSBhcmUgYW55
IG1vdXNlIGRldmljZXMuCisKKyAgICAgICAgKiBDb25maWd1cmF0aW9ucy9XZWJLaXQueGNjb25m
aWc6CisgICAgICAgICogUGxhdGZvcm0vc3BpL2lvcy9CYWNrQm9hcmRTZXJ2aWNlc1NQSS5oOgor
ICAgICAgICAqIFBsYXRmb3JtL3NwaS9pb3MvQmFzZUJvYXJkU1BJLmg6IEFkZGVkLgorICAgICAg
ICAqIFNvdXJjZXNDb2NvYS50eHQ6CisgICAgICAgICogV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2o6CisKIDIwMjAtMTAtMDEgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4K
IAogICAgICAgICBBZGQgYmFzaWMgaW5mcmFzdHJ1Y3R1cmUgZm9yIEF1ZGlvV29ya2xldApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9pb3MvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktp
dExlZ2FjeS9pb3MvQ2hhbmdlTG9nCmluZGV4IDEyZTY1NWIxZWNkZDVkNDcwZjNlYTQwZmFjNzgz
NWZlMWY1N2ZiZmMuLmY4N2MwODZiMzYxNjhhNGFiNjY4YzliNzFkOTg1NTI1MWUzZDcxODggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvaW9zL0NoYW5nZUxvZworKysgYi9Tb3VyY2Uv
V2ViS2l0TGVnYWN5L2lvcy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAyMC0wOS0zMCAg
RGV2aW4gUm91c3NvICA8ZHJvdXNzb0BhcHBsZS5jb20+CisKKyAgICAgICAgQ1NTIGhvdmVyIGFu
ZCAicG9pbnRlcjogZmluZSIgbWVkaWEgcXVlcmllcyBkbyBub3QgZXZhbHVhdGUgdG8gdHJ1ZSB3
aXRoIGlPUyAxMy40IG1vdXNlIHN1cHBvcnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTIwOTI5MgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNjA2NjMx
MjQ+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBX
ZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnRJT1MuaDoKKyAgICAgICAgKFdlYkNocm9tZUNs
aWVudElPUzo6aGFzTW91c2VEZXZpY2UpOiBBZGRlZC4KKyAgICAgICAgTW91c2UgZGV2aWNlcyBh
cmUgbm90IHN1cHBvcnRlZCBmb3IgV0sxLgorCiAyMDIwLTA5LTIwICBEYXJpbiBBZGxlciAgPGRh
cmluQGFwcGxlLmNvbT4KIAogICAgICAgICBOZXh0IHN0ZXAgdG93YXJkcyBlbGltaW5hdGluZyBk
ZXByZWNhdGVkIGxlZ2FjeSBwb3NpdGlvbnMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nz
cy9NZWRpYVF1ZXJ5RXZhbHVhdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5
RXZhbHVhdG9yLmNwcAppbmRleCA4MTE4YjdhYjNjNTBiM2NlZDgxMjBmYzEwNmRjZTljNzMxNDFh
ZmU0Li42YzI5Mzc1ZTFhYzIzMTJjMDBhNmE4NDQ3MmI5MGMzMWQ2NTJjNjVjIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9jc3MvTWVkaWFRdWVyeUV2YWx1YXRvci5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvY3NzL01lZGlhUXVlcnlFdmFsdWF0b3IuY3BwCkBAIC0zMyw2ICszMyw4IEBACiAj
aW5jbHVkZSAiQ1NTUHJpbWl0aXZlVmFsdWUuaCIKICNpbmNsdWRlICJDU1NUb0xlbmd0aENvbnZl
cnNpb25EYXRhLmgiCiAjaW5jbHVkZSAiQ1NTVmFsdWVLZXl3b3Jkcy5oIgorI2luY2x1ZGUgIkNo
cm9tZS5oIgorI2luY2x1ZGUgIkNocm9tZUNsaWVudC5oIgogI2luY2x1ZGUgIkZyYW1lLmgiCiAj
aW5jbHVkZSAiRnJhbWVWaWV3LmgiCiAjaW5jbHVkZSAiTG9nZ2luZy5oIgpAQCAtNzEyLDYgKzcx
NCwyMyBAQCBzdGF0aWMgYm9vbCB2aWRlb1BsYXlhYmxlSW5saW5lRXZhbHVhdGUoQ1NTVmFsdWUq
LCBjb25zdCBDU1NUb0xlbmd0aENvbnZlcnNpb25EYQogICAgIHJldHVybiBmcmFtZS5zZXR0aW5n
cygpLmFsbG93c0lubGluZU1lZGlhUGxheWJhY2soKTsKIH0KIAorc3RhdGljIGJvb2wgaGFzTW91
c2VEZXZpY2UoRnJhbWUmIGZyYW1lKQoreworI2lmIEhBVkUoVUlLSVRfV0lUSF9NT1VTRV9TVVBQ
T1JUKQorICAgIGF1dG8qIHBhZ2UgPSBmcmFtZS5wYWdlKCk7CisgICAgaWYgKHBhZ2UgJiYgcGFn
ZS0+Y2hyb21lKCkuY2xpZW50KCkuaGFzTW91c2VEZXZpY2UoKSkKKyAgICAgICAgcmV0dXJuIHRy
dWU7CisjZW5kaWYgLy8gSEFWRShVSUtJVF9XSVRIX01PVVNFX1NVUFBPUlQpCisKKyNpZiBFTkFC
TEUoVE9VQ0hfRVZFTlRTKQorICAgIGlmIChzY3JlZW5IYXNUb3VjaERldmljZSgpKQorICAgICAg
ICByZXR1cm4gZmFsc2U7CisjZW5kaWYgLy8gRU5BQkxFKFRPVUNIX0VWRU5UUykKKworICAgIFVO
VVNFRF9QQVJBTShmcmFtZSk7CisgICAgcmV0dXJuIHRydWU7Cit9CisKIHN0YXRpYyBib29sIGhv
dmVyRXZhbHVhdGUoQ1NTVmFsdWUqIHZhbHVlLCBjb25zdCBDU1NUb0xlbmd0aENvbnZlcnNpb25E
YXRhJiwgRnJhbWUmLCBNZWRpYUZlYXR1cmVQcmVmaXgpCiB7CiAgICAgaWYgKCFpczxDU1NQcmlt
aXRpdmVWYWx1ZT4odmFsdWUpKSB7CkBAIC03MzAsMjIgKzc0OSwxMyBAQCBzdGF0aWMgYm9vbCBo
b3ZlckV2YWx1YXRlKENTU1ZhbHVlKiB2YWx1ZSwgY29uc3QgQ1NTVG9MZW5ndGhDb252ZXJzaW9u
RGF0YSYsIEZyYQogICAgIHJldHVybiBrZXl3b3JkID09IENTU1ZhbHVlSG92ZXI7CiB9CiAKLXN0
YXRpYyBib29sIGFueUhvdmVyRXZhbHVhdGUoQ1NTVmFsdWUqIHZhbHVlLCBjb25zdCBDU1NUb0xl
bmd0aENvbnZlcnNpb25EYXRhJiwgRnJhbWUmLCBNZWRpYUZlYXR1cmVQcmVmaXgpCitzdGF0aWMg
Ym9vbCBhbnlIb3ZlckV2YWx1YXRlKENTU1ZhbHVlKiB2YWx1ZSwgY29uc3QgQ1NTVG9MZW5ndGhD
b252ZXJzaW9uRGF0YSYsIEZyYW1lJiBmcmFtZSwgTWVkaWFGZWF0dXJlUHJlZml4KQogewotICAg
IGlmICghaXM8Q1NTUHJpbWl0aXZlVmFsdWU+KHZhbHVlKSkgewotI2lmIEVOQUJMRShUT1VDSF9F
VkVOVFMpCi0gICAgICAgIHJldHVybiAhc2NyZWVuSGFzVG91Y2hEZXZpY2UoKTsKLSNlbHNlCi0g
ICAgICAgIHJldHVybiB0cnVlOwotI2VuZGlmCi0gICAgfQorICAgIGlmICghaXM8Q1NTUHJpbWl0
aXZlVmFsdWU+KHZhbHVlKSkKKyAgICAgICAgcmV0dXJuIGhhc01vdXNlRGV2aWNlKGZyYW1lKTsK
IAogICAgIGF1dG8ga2V5d29yZCA9IGRvd25jYXN0PENTU1ByaW1pdGl2ZVZhbHVlPigqdmFsdWUp
LnZhbHVlSUQoKTsKLSNpZiBFTkFCTEUoVE9VQ0hfRVZFTlRTKQotICAgIGlmIChzY3JlZW5IYXNU
b3VjaERldmljZSgpKQotICAgICAgICByZXR1cm4ga2V5d29yZCA9PSBDU1NWYWx1ZU5vbmU7Ci0j
ZW5kaWYKLSAgICByZXR1cm4ga2V5d29yZCA9PSBDU1NWYWx1ZUhvdmVyOworICAgIHJldHVybiBo
YXNNb3VzZURldmljZShmcmFtZSkgPyAoa2V5d29yZCA9PSBDU1NWYWx1ZUhvdmVyKSA6IChrZXl3
b3JkID09IENTU1ZhbHVlTm9uZSk7CiB9CiAKIHN0YXRpYyBib29sIHBvaW50ZXJFdmFsdWF0ZShD
U1NWYWx1ZSogdmFsdWUsIGNvbnN0IENTU1RvTGVuZ3RoQ29udmVyc2lvbkRhdGEmLCBGcmFtZSYg
ZnJhbWUsIE1lZGlhRmVhdHVyZVByZWZpeCkKQEAgLTc2NSwxNyArNzc1LDIyIEBAIHN0YXRpYyBi
b29sIHBvaW50ZXJFdmFsdWF0ZShDU1NWYWx1ZSogdmFsdWUsIGNvbnN0IENTU1RvTGVuZ3RoQ29u
dmVyc2lvbkRhdGEmLCBGCiAgICAgcmV0dXJuIGtleXdvcmQgPT0gQ1NTVmFsdWVGaW5lOwogfQog
Ci1zdGF0aWMgYm9vbCBhbnlQb2ludGVyRXZhbHVhdGUoQ1NTVmFsdWUqIHZhbHVlLCBjb25zdCBD
U1NUb0xlbmd0aENvbnZlcnNpb25EYXRhJiwgRnJhbWUmLCBNZWRpYUZlYXR1cmVQcmVmaXgpCitz
dGF0aWMgYm9vbCBhbnlQb2ludGVyRXZhbHVhdGUoQ1NTVmFsdWUqIHZhbHVlLCBjb25zdCBDU1NU
b0xlbmd0aENvbnZlcnNpb25EYXRhJiwgRnJhbWUmIGZyYW1lLCBNZWRpYUZlYXR1cmVQcmVmaXgp
CiB7CiAgICAgaWYgKCFpczxDU1NQcmltaXRpdmVWYWx1ZT4odmFsdWUpKQogICAgICAgICByZXR1
cm4gdHJ1ZTsKIAogICAgIGF1dG8ga2V5d29yZCA9IGRvd25jYXN0PENTU1ByaW1pdGl2ZVZhbHVl
PigqdmFsdWUpLnZhbHVlSUQoKTsKKworICAgIGlmIChrZXl3b3JkID09IENTU1ZhbHVlRmluZSkK
KyAgICAgICAgcmV0dXJuIGhhc01vdXNlRGV2aWNlKGZyYW1lKTsKKwogI2lmIEVOQUJMRShUT1VD
SF9FVkVOVFMpCi0gICAgaWYgKHNjcmVlbkhhc1RvdWNoRGV2aWNlKCkpCi0gICAgICAgIHJldHVy
biBrZXl3b3JkID09IENTU1ZhbHVlQ29hcnNlOwotI2VuZGlmCi0gICAgcmV0dXJuIGtleXdvcmQg
PT0gQ1NTVmFsdWVGaW5lOworICAgIGlmIChrZXl3b3JkID09IENTU1ZhbHVlQ29hcnNlKQorICAg
ICAgICByZXR1cm4gc2NyZWVuSGFzVG91Y2hEZXZpY2UoKTsKKyNlbmRpZiAvLyBFTkFCTEUoVE9V
Q0hfRVZFTlRTKQorCisgICAgcmV0dXJuIGZhbHNlOwogfQogCiBzdGF0aWMgYm9vbCBwcmVmZXJz
RGFya0ludGVyZmFjZUV2YWx1YXRlKENTU1ZhbHVlKiB2YWx1ZSwgY29uc3QgQ1NTVG9MZW5ndGhD
b252ZXJzaW9uRGF0YSYsIEZyYW1lJiBmcmFtZSwgTWVkaWFGZWF0dXJlUHJlZml4KQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5oIGIvU291cmNlL1dlYkNv
cmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5oCmluZGV4IDNlOWRlN2QyNjZhOWRlYTZlMWEwMzQ0NmE1
OWVmN2Y0MDA2MDk5NGUuLmY0OWU3ODc0ODNjYTkwNDRiZGUzZTBlYjgwYzBiMThlZjJjNjA5YjEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmgKQEAgLTEwMiw2ICsxMDIsMTAgQEAg
Y2xhc3MgRW1wdHlDaHJvbWVDbGllbnQgOiBwdWJsaWMgQ2hyb21lQ2xpZW50IHsKIAogICAgIEtl
eWJvYXJkVUlNb2RlIGtleWJvYXJkVUlNb2RlKCkgZmluYWwgeyByZXR1cm4gS2V5Ym9hcmRBY2Nl
c3NEZWZhdWx0OyB9CiAKKyNpZiBIQVZFKFVJS0lUX1dJVEhfTU9VU0VfU1VQUE9SVCkKKyAgICBi
b29sIGhhc01vdXNlRGV2aWNlKCkgZmluYWwgeyByZXR1cm4gZmFsc2U7IH0KKyNlbmRpZgorCiAg
ICAgdm9pZCBpbnZhbGlkYXRlUm9vdFZpZXcoY29uc3QgSW50UmVjdCYpIGZpbmFsIHsgfQogICAg
IHZvaWQgaW52YWxpZGF0ZUNvbnRlbnRzQW5kUm9vdFZpZXcoY29uc3QgSW50UmVjdCYpIG92ZXJy
aWRlIHsgfQogICAgIHZvaWQgaW52YWxpZGF0ZUNvbnRlbnRzRm9yU2xvd1Njcm9sbChjb25zdCBJ
bnRSZWN0JikgZmluYWwgeyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9t
ZUNsaWVudC5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaAppbmRleCBmZTU5
ZGI4NGFlYWNhNWY5OTEyMWI3OTBkMDA4MDkyMDYyZmY0Y2MxLi5mOTAzMmJkOGVhZDZjZTJjMzE0
MjU2NTgxZjcyNTYwNzViMzA3YTVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0No
cm9tZUNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmgKQEAg
LTE3OCw2ICsxNzgsMTAgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBzZXRTdGF0dXNiYXJU
ZXh0KGNvbnN0IFN0cmluZyYpID0gMDsKICAgICB2aXJ0dWFsIEtleWJvYXJkVUlNb2RlIGtleWJv
YXJkVUlNb2RlKCkgPSAwOwogCisjaWYgSEFWRShVSUtJVF9XSVRIX01PVVNFX1NVUFBPUlQpCisg
ICAgdmlydHVhbCBib29sIGhhc01vdXNlRGV2aWNlKCkgPSAwOworI2VuZGlmCisKICAgICB2aXJ0
dWFsIGJvb2wgc3VwcG9ydHNJbW1lZGlhdGVJbnZhbGlkYXRpb24oKSB7IHJldHVybiBmYWxzZTsg
fQogICAgIHZpcnR1YWwgdm9pZCBpbnZhbGlkYXRlUm9vdFZpZXcoY29uc3QgSW50UmVjdCYpID0g
MDsKICAgICB2aXJ0dWFsIHZvaWQgaW52YWxpZGF0ZUNvbnRlbnRzQW5kUm9vdFZpZXcoY29uc3Qg
SW50UmVjdCYpID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ29uZmlndXJhdGlvbnMv
V2ViS2l0LnhjY29uZmlnIGIvU291cmNlL1dlYktpdC9Db25maWd1cmF0aW9ucy9XZWJLaXQueGNj
b25maWcKaW5kZXggNWY3NWVjYmIxNDljNTUxYTQ1MTFhOTA2ZmQ3ZjQzYzE3ZTk4ODkyMS4uY2U3
MTg1OWRkYTkwNTRhZGZjMDQ1NTg0MDdmMTY0ZTM3ZTM2ZmY3YiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9Db25maWd1cmF0aW9ucy9XZWJLaXQueGNjb25maWcKKysrIGIvU291cmNlL1dlYktp
dC9Db25maWd1cmF0aW9ucy9XZWJLaXQueGNjb25maWcKQEAgLTYwLDYgKzYwLDEwIEBAIFdLX0FT
U0VSVElPTl9TRVJWSUNFU19MREZMQUdTX2FwcGxldHZvcyA9IC1mcmFtZXdvcmsgQXNzZXJ0aW9u
U2VydmljZXM7CiBXS19BU1NFUlRJT05fU0VSVklDRVNfTERGTEFHU19hcHBsZXR2c2ltdWxhdG9y
ID0gLWZyYW1ld29yayBBc3NlcnRpb25TZXJ2aWNlczsKIFdLX0FTU0VSVElPTl9TRVJWSUNFU19M
REZMQUdTX21hY2NhdGFseXN0ID0gLWZyYW1ld29yayBBc3NlcnRpb25TZXJ2aWNlczsKIAorV0tf
QkFDS0JPQVJEX1NFUlZJQ0VTX0xERkxBR1MgPSAkKFdLX0JBQ0tCT0FSRF9TRVJWSUNFU19MREZM
QUdTXyQoV0tfUExBVEZPUk1fTkFNRSkpOworV0tfQkFDS0JPQVJEX1NFUlZJQ0VTX0xERkxBR1Nf
aXBob25lb3MgPSAtZnJhbWV3b3JrIEJhY2tCb2FyZFNlcnZpY2VzOworV0tfQkFDS0JPQVJEX1NF
UlZJQ0VTX0xERkxBR1NfaXBob25lc2ltdWxhdG9yID0gLWZyYW1ld29yayBCYWNrQm9hcmRTZXJ2
aWNlczsKKwogV0tfUlVOTklOR0JPQVJEX1NFUlZJQ0VTX0xERkxBR1MgPSAkKFdLX1JVTk5JTkdC
T0FSRF9TRVJWSUNFU19MREZMQUdTXyQoV0tfQ09DT0FfVE9VQ0gpKTsKIFdLX1JVTk5JTkdCT0FS
RF9TRVJWSUNFU19MREZMQUdTX2NvY29hdG91Y2ggPSAtZnJhbWV3b3JrIFJ1bm5pbmdCb2FyZFNl
cnZpY2VzOwogCkBAIC0xMjMsNyArMTI3LDcgQEAgV0tfQVVUSEtJVF9MREZMQUdTX0lPU19TSU5D
RV8xMyA9IC1mcmFtZXdvcmsgQXV0aEtpdDsKIFdLX0FVVEhLSVRfTERGTEFHU19tYWNvc3ggPSAk
KFdLX0FVVEhLSVRfTERGTEFHUyQoV0tfTUFDT1NfMTAxNSkpOwogV0tfQVVUSEtJVF9MREZMQUdT
X01BQ09TX1NJTkNFXzEwMTUgPSAtZnJhbWV3b3JrIEF1dGhLaXQ7CiAKLUZSQU1FV09SS19BTkRf
TElCUkFSWV9MREZMQUdTID0gLWxvYmpjIC1mcmFtZXdvcmsgQ0ZOZXR3b3JrIC1mcmFtZXdvcmsg
Q29yZUF1ZGlvIC1mcmFtZXdvcmsgQ29yZUZvdW5kYXRpb24gLWZyYW1ld29yayBDb3JlR3JhcGhp
Y3MgLWZyYW1ld29yayBDb3JlVGV4dCAtZnJhbWV3b3JrIEZvdW5kYXRpb24gLWZyYW1ld29yayBJ
bWFnZUlPIC1mcmFtZXdvcmsgSU9LaXQgLWZyYW1ld29yayBJT1N1cmZhY2UgLWZyYW1ld29yayBX
ZWJLaXRMZWdhY3kgLWxuZXR3b3JrICQoV0tfQUNDRVNTSUJJTElUWV9MREZMQUdTKSAkKFdLX0FQ
UEtJVF9MREZMQUdTKSAkKFdLX0FTU0VSVElPTl9TRVJWSUNFU19MREZMQUdTKSAkKFdLX1JVTk5J
TkdCT0FSRF9TRVJWSUNFU19MREZMQUdTKSAkKFdLX0FVVEhLSVRfTERGTEFHUykgJChXS19DQVJC
T05fTERGTEFHUykgJChXS19DT1JFX1BSRURJQ1RJT05fTERGTEFHUykgJChXS19DT1JFX1NFUlZJ
Q0VTX0xERkxBR1MpICQoV0tfR1JBUEhJQ1NfU0VSVklDRVNfTERGTEFHUykgJChXS19MSUJTQU5E
Qk9YX0xERkxBR1MpICQoV0tfTElCV0VCUlRDX0xERkxBR1MpICQoV0tfTU9CSUxFX0NPUkVfU0VS
VklDRVNfTERGTEFHUykgJChXS19NT0JJTEVfR0VTVEFMVF9MREZMQUdTKSAkKFdLX1BERktJVF9M
REZMQUdTKSAkKFdLX1NBRkVfQlJPV1NJTkdfTERGTEFHUykgJChXS19TRUNVUklUWV9JTlRFUkZB
Q0VfTERGTEFHUykgJChXS19VSUtJVF9MREZMQUdTKSAkKFdLX1VSTF9GT1JNQVRUSU5HX0xERkxB
R1MpICQoV0tfV0VCSU5TUEVDVE9SVUlfTERGTEFHUyk7CitGUkFNRVdPUktfQU5EX0xJQlJBUllf
TERGTEFHUyA9IC1sb2JqYyAtZnJhbWV3b3JrIENGTmV0d29yayAtZnJhbWV3b3JrIENvcmVBdWRp
byAtZnJhbWV3b3JrIENvcmVGb3VuZGF0aW9uIC1mcmFtZXdvcmsgQ29yZUdyYXBoaWNzIC1mcmFt
ZXdvcmsgQ29yZVRleHQgLWZyYW1ld29yayBGb3VuZGF0aW9uIC1mcmFtZXdvcmsgSW1hZ2VJTyAt
ZnJhbWV3b3JrIElPS2l0IC1mcmFtZXdvcmsgSU9TdXJmYWNlIC1mcmFtZXdvcmsgV2ViS2l0TGVn
YWN5IC1sbmV0d29yayAkKFdLX0FDQ0VTU0lCSUxJVFlfTERGTEFHUykgJChXS19BUFBLSVRfTERG
TEFHUykgJChXS19BU1NFUlRJT05fU0VSVklDRVNfTERGTEFHUykgJChXS19CQUNLQk9BUkRfU0VS
VklDRVNfTERGTEFHUykgJChXS19SVU5OSU5HQk9BUkRfU0VSVklDRVNfTERGTEFHUykgJChXS19B
VVRIS0lUX0xERkxBR1MpICQoV0tfQ0FSQk9OX0xERkxBR1MpICQoV0tfQ09SRV9QUkVESUNUSU9O
X0xERkxBR1MpICQoV0tfQ09SRV9TRVJWSUNFU19MREZMQUdTKSAkKFdLX0dSQVBISUNTX1NFUlZJ
Q0VTX0xERkxBR1MpICQoV0tfTElCU0FOREJPWF9MREZMQUdTKSAkKFdLX0xJQldFQlJUQ19MREZM
QUdTKSAkKFdLX01PQklMRV9DT1JFX1NFUlZJQ0VTX0xERkxBR1MpICQoV0tfTU9CSUxFX0dFU1RB
TFRfTERGTEFHUykgJChXS19QREZLSVRfTERGTEFHUykgJChXS19TQUZFX0JST1dTSU5HX0xERkxB
R1MpICQoV0tfU0VDVVJJVFlfSU5URVJGQUNFX0xERkxBR1MpICQoV0tfVUlLSVRfTERGTEFHUykg
JChXS19VUkxfRk9STUFUVElOR19MREZMQUdTKSAkKFdLX1dFQklOU1BFQ1RPUlVJX0xERkxBR1Mp
OwogCiAvLyBQcmV2ZW50IEMrKyBzdGFuZGFyZCBsaWJyYXJ5IGJhc2ljX3N0cmluZ3N0cmVhbSwg
b3BlcmF0b3IgbmV3LCBkZWxldGUgYW5kIHRoZWlyIHJlbGF0ZWQgZXhjZXB0aW9uIHR5cGVzIGZy
b20gYmVpbmcgZXhwb3J0ZWQgYXMgd2VhayBzeW1ib2xzLgogVU5FWFBPUlRFRF9TWU1CT0xfTERG
TEFHUyA9IC1XbCwtdW5leHBvcnRlZF9zeW1ib2wgLVdsLF9fWlRJU3Q5YmFkX2FsbG9jIC1XbCwt
dW5leHBvcnRlZF9zeW1ib2wgLVdsLF9fWlRJU3Q5ZXhjZXB0aW9uIC1XbCwtdW5leHBvcnRlZF9z
eW1ib2wgLVdsLF9fWlRTU3Q5YmFkX2FsbG9jIC1XbCwtdW5leHBvcnRlZF9zeW1ib2wgLVdsLF9f
WlRTU3Q5ZXhjZXB0aW9uIC1XbCwtdW5leHBvcnRlZF9zeW1ib2wgLVdsLF9fWmRsUHZTXyAtV2ws
LXVuZXhwb3J0ZWRfc3ltYm9sIC1XbCxfX1pud21QdiAtV2wsLXVuZXhwb3J0ZWRfc3ltYm9sIC1X
bCxfX1pud20gLVdsLC11bmV4cG9ydGVkX3N5bWJvbCAtV2wsX19aTlN0M19fMThmdW5jdGlvbklG
dk43V2ViQ29yZTEyUG9saWN5QWN0aW9uRUVFQzJFT1M0XyAtV2wsLXVuZXhwb3J0ZWRfc3ltYm9s
IC1XbCxfX1pOU3QzX18xOGZ1bmN0aW9uSUZ2TjdXZWJDb3JlMTJQb2xpY3lBY3Rpb25FRUVDMUVP
UzRfIC1XbCwtdW5leHBvcnRlZF9zeW1ib2wgLVdsLF9fWk5TdDNfXzE4ZnVuY3Rpb25JRnZON1dl
YkNvcmUxMlBvbGljeUFjdGlvbkVFRWFTRURuIC1XbCwtdW5leHBvcnRlZF9zeW1ib2wgLVdsLF9f
Wk5LU3QzX18xOGZ1bmN0aW9uSUZ2TjdXZWJDb3JlMTJQb2xpY3lBY3Rpb25FRUVjbEVTMl8gLVds
LC11bmV4cG9ydGVkX3N5bWJvbCAtV2wsX19aTlN0M19fMThmdW5jdGlvbklGdk43V2ViQ29yZTEy
UG9saWN5QWN0aW9uRUVFNHN3YXBFUlM0XyAtV2wsLXVuZXhwb3J0ZWRfc3ltYm9sIC1XbCxfX1pO
U3QzX18xOGZ1bmN0aW9uSUZ2TjdXZWJDb3JlMTJQb2xpY3lBY3Rpb25FRUVDMUVSS1M0XyAtV2ws
LXVuZXhwb3J0ZWRfc3ltYm9sIC1XbCxfX1pOU3QzX18xOGZ1bmN0aW9uSUZ2TjdXZWJDb3JlMTJQ
b2xpY3lBY3Rpb25FRUVDMkVSS1M0XyAtV2wsLXVuZXhwb3J0ZWRfc3ltYm9sIC1XbCxfX1pOU3Qz
X18xOGZ1bmN0aW9uSUZ2TjdXZWJDb3JlMTJQb2xpY3lBY3Rpb25FRUVEMUV2IC1XbCwtdW5leHBv
cnRlZF9zeW1ib2wgLVdsLF9fWk5TdDNfXzE4ZnVuY3Rpb25JRnZON1dlYkNvcmUxMlBvbGljeUFj
dGlvbkVFRUQyRXYgLVdsLC11bmV4cG9ydGVkX3N5bWJvbCAtV2wsX19aTlN0M19fMThmdW5jdGlv
bklGdk43V2ViQ29yZTEyUG9saWN5QWN0aW9uRUVFYVNFUktTNF8gLVdsLC11bmV4cG9ydGVkX3N5
bWJvbCAtV2wsX19aVFZOU3QzX18xMTdiYWRfZnVuY3Rpb25fY2FsbEUgLVdsLC11bmV4cG9ydGVk
X3N5bWJvbCAtV2wsX19aVENOU3QzX18xMThiYXNpY19zdHJpbmdzdHJlYW1JY05TXzExY2hhcl90
cmFpdHNJY0VFTlNfOWFsbG9jYXRvckljRUVFRTBfTlNfMTNiYXNpY19pc3RyZWFtSWNTMl9FRSAt
V2wsLXVuZXhwb3J0ZWRfc3ltYm9sIC1XbCxfX1pUQ05TdDNfXzExOGJhc2ljX3N0cmluZ3N0cmVh
bUljTlNfMTFjaGFyX3RyYWl0c0ljRUVOU185YWxsb2NhdG9ySWNFRUVFMF9OU18xNGJhc2ljX2lv
c3RyZWFtSWNTMl9FRSAtV2wsLXVuZXhwb3J0ZWRfc3ltYm9sIC1XbCxfX1pUQ05TdDNfXzExOGJh
c2ljX3N0cmluZ3N0cmVhbUljTlNfMTFjaGFyX3RyYWl0c0ljRUVOU185YWxsb2NhdG9ySWNFRUVF
MTZfTlNfMTNiYXNpY19vc3RyZWFtSWNTMl9FRSAtV2wsLXVuZXhwb3J0ZWRfc3ltYm9sIC1XbCxf
X1pUVE5TdDNfXzExOGJhc2ljX3N0cmluZ3N0cmVhbUljTlNfMTFjaGFyX3RyYWl0c0ljRUVOU185
YWxsb2NhdG9ySWNFRUVFIC1XbCwtdW5leHBvcnRlZF9zeW1ib2wgLVdsLF9fWlRWTlN0M19fMTE1
YmFzaWNfc3RyaW5nYnVmSWNOU18xMWNoYXJfdHJhaXRzSWNFRU5TXzlhbGxvY2F0b3JJY0VFRUUg
LVdsLC11bmV4cG9ydGVkX3N5bWJvbCAtV2wsX19aVFZOU3QzX18xMThiYXNpY19zdHJpbmdzdHJl
YW1JY05TXzExY2hhcl90cmFpdHNJY0VFTlNfOWFsbG9jYXRvckljRUVFRSAtV2wsLXVuZXhwb3J0
ZWRfc3ltYm9sIC1XbCxfX1pUQ05TdDNfXzExOGJhc2ljX3N0cmluZ3N0cmVhbUljTlNfMTFjaGFy
X3RyYWl0c0ljRUVOU185YWxsb2NhdG9ySWNFRUVFOF9OU18xM2Jhc2ljX29zdHJlYW1JY1MyX0VF
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9zcGkvaW9zL0JhY2tCb2FyZFNl
cnZpY2VzU1BJLmggYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL3NwaS9pb3MvQmFja0JvYXJkU2Vy
dmljZXNTUEkuaAppbmRleCA2ZDhkODk0M2U0Y2MzY2E3OTlmMzcyMjE0NDEzNjkyNDA5ZDc5NjM3
Li4wOTAxNGQ0NDFlMWFkOWIwZjRmMjcwMzdiZGMxMGMyMzNkNDVlYzFhIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1BsYXRmb3JtL3NwaS9pb3MvQmFja0JvYXJkU2VydmljZXNTUEkuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL3NwaS9pb3MvQmFja0JvYXJkU2VydmljZXNTUEkuaApA
QCAtMjcsMTEgKzI3LDI3IEBACiAKICNpbXBvcnQgPEJhY2tCb2FyZFNlcnZpY2VzL0JLU0FuaW1h
dGlvbkZlbmNlLmg+CiAjaW1wb3J0IDxCYWNrQm9hcmRTZXJ2aWNlcy9CS1NBbmltYXRpb25GZW5j
ZV9Qcml2YXRlLmg+CisjaW1wb3J0IDxCYWNrQm9hcmRTZXJ2aWNlcy9CS1NNb3VzZVBvaW50ZXJT
ZXJ2aWNlLmg+CiAKICNlbHNlCiAKKyNpbXBvcnQgIkJhc2VCb2FyZFNQSS5oIgorCiBAaW50ZXJm
YWNlIEJLU0FuaW1hdGlvbkZlbmNlSGFuZGxlIDogTlNPYmplY3QKIC0gKG1hY2hfcG9ydF90KUNB
UG9ydDsKIEBlbmQKIAorQGNsYXNzIEJLU01vdXNlUG9pbnRlckRldmljZTsKKworQHByb3RvY29s
IEJLU01vdXNlUG9pbnRlckRldmljZU9ic2VydmVyIDxOU09iamVjdD4KK0BvcHRpb25hbAorLSAo
dm9pZCltb3VzZVBvaW50ZXJEZXZpY2VzRGlkQ29ubmVjdDooTlNTZXQ8QktTTW91c2VQb2ludGVy
RGV2aWNlICo+ICopbW91c2VQb2ludGVyRGV2aWNlczsKKy0gKHZvaWQpbW91c2VQb2ludGVyRGV2
aWNlc0RpZERpc2Nvbm5lY3Q6KE5TU2V0PEJLU01vdXNlUG9pbnRlckRldmljZSAqPiAqKW1vdXNl
UG9pbnRlckRldmljZXM7CitAZW5kCisKK0BpbnRlcmZhY2UgQktTTW91c2VQb2ludGVyU2Vydmlj
ZSA6IE5TT2JqZWN0CisrIChCS1NNb3VzZVBvaW50ZXJTZXJ2aWNlICopc2hhcmVkSW5zdGFuY2U7
CistIChpZDxCU0ludmFsaWRhdGFibGU+KWFkZFBvaW50ZXJEZXZpY2VPYnNlcnZlcjooaWQ8QktT
TW91c2VQb2ludGVyRGV2aWNlT2JzZXJ2ZXI+KW9ic2VydmVyOworQGVuZAorCiAjZW5kaWYgLy8g
VVNFKEFQUExFX0lOVEVSTkFMX1NESykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvUGxhdGZv
cm0vc3BpL2lvcy9CYXNlQm9hcmRTUEkuaCBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vc3BpL2lv
cy9CYXNlQm9hcmRTUEkuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hYjA0MTg2OTViOTBmZDgzMWI4ZDYxYWQ4MTg5
YTBjMzk2Y2RkYjQwCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9z
cGkvaW9zL0Jhc2VCb2FyZFNQSS5oCkBAIC0wLDAgKzEsMzYgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJV
VE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMg
Q09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWYg
VVNFKEFQUExFX0lOVEVSTkFMX1NESykKKworI2ltcG9ydCA8QmFzZUJvYXJkL0JTSW52YWxpZGF0
YWJsZS5oPgorCisjZWxzZQorCitAcHJvdG9jb2wgQlNJbnZhbGlkYXRhYmxlIDxOU09iamVjdD4K
Ky0gKHZvaWQpaW52YWxpZGF0ZTsKK0BlbmQKKworI2VuZGlmIC8vIFVTRShBUFBMRV9JTlRFUk5B
TF9TREspCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcm9jZXNzQ3JlYXRp
b25QYXJhbWV0ZXJzLmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlv
blBhcmFtZXRlcnMuY3BwCmluZGV4IGM3YTU5YTA0ZGNiZDE5M2ZkNWEyYTAwMzIyZDg1NWU4NTUx
ZTI5MDEuLjY1OWI3ZGQ0YWE2MGI4NjQ0NTlmYWQwMWNiMDdmNGQ4ZWVlZDg3NWUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMu
Y3BwCkBAIC04NSw2ICs4NSw5IEBAIHZvaWQgV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyczo6
ZW5jb2RlKElQQzo6RW5jb2RlciYgZW5jb2RlcikgY29uc3QKICNlbmRpZgogICAgIGVuY29kZXIg
PDwgdGV4dENoZWNrZXJTdGF0ZTsKICAgICBlbmNvZGVyIDw8IGZ1bGxLZXlib2FyZEFjY2Vzc0Vu
YWJsZWQ7CisjaWYgSEFWRShVSUtJVF9XSVRIX01PVVNFX1NVUFBPUlQpICYmIFBMQVRGT1JNKElP
UykKKyAgICBlbmNvZGVyIDw8IGhhc01vdXNlRGV2aWNlOworI2VuZGlmCiAgICAgZW5jb2RlciA8
PCBkZWZhdWx0UmVxdWVzdFRpbWVvdXRJbnRlcnZhbDsKICAgICBlbmNvZGVyIDw8IGJhY2tGb3J3
YXJkQ2FjaGVDYXBhY2l0eTsKICNpZiBQTEFURk9STShDT0NPQSkKQEAgLTI5Myw2ICsyOTYsMTAg
QEAgYm9vbCBXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzOjpkZWNvZGUoSVBDOjpEZWNvZGVy
JiBkZWNvZGVyLCBXZWJQcm9jZXNzQ3JlYXQKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIGlm
ICghZGVjb2Rlci5kZWNvZGUocGFyYW1ldGVycy5mdWxsS2V5Ym9hcmRBY2Nlc3NFbmFibGVkKSkK
ICAgICAgICAgcmV0dXJuIGZhbHNlOworI2lmIEhBVkUoVUlLSVRfV0lUSF9NT1VTRV9TVVBQT1JU
KSAmJiBQTEFURk9STShJT1MpCisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShwYXJhbWV0ZXJzLmhh
c01vdXNlRGV2aWNlKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworI2VuZGlmCiAgICAgaWYgKCFk
ZWNvZGVyLmRlY29kZShwYXJhbWV0ZXJzLmRlZmF1bHRSZXF1ZXN0VGltZW91dEludGVydmFsKSkK
ICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIGlmICghZGVjb2Rlci5kZWNvZGUocGFyYW1ldGVy
cy5iYWNrRm9yd2FyZENhY2hlQ2FwYWNpdHkpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9T
aGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oIGIvU291cmNlL1dlYktpdC9TaGFy
ZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oCmluZGV4IDBkM2EyOTY3NzE1MzdmYzMx
ZTEyZjUwMTE5ODYzNjNkYWMxMDkxZDkuLjIxOGFiNWJkM2RlNTJiYTgxNWVlNDYyMmUxNmNiMjg3
YTNmZjgxNDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByb2Nlc3NDcmVh
dGlvblBhcmFtZXRlcnMuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcm9jZXNzQ3Jl
YXRpb25QYXJhbWV0ZXJzLmgKQEAgLTExNyw2ICsxMTcsOSBAQCBzdHJ1Y3QgV2ViUHJvY2Vzc0Ny
ZWF0aW9uUGFyYW1ldGVycyB7CiAgICAgYm9vbCBzaG91bGRTdXBwcmVzc01lbW9yeVByZXNzdXJl
SGFuZGxlciB7IGZhbHNlIH07CiAgICAgYm9vbCBzaG91bGRVc2VGb250U21vb3RoaW5nIHsgdHJ1
ZSB9OwogICAgIGJvb2wgZnVsbEtleWJvYXJkQWNjZXNzRW5hYmxlZCB7IGZhbHNlIH07CisjaWYg
SEFWRShVSUtJVF9XSVRIX01PVVNFX1NVUFBPUlQpICYmIFBMQVRGT1JNKElPUykKKyAgICBib29s
IGhhc01vdXNlRGV2aWNlIHsgZmFsc2UgfTsKKyNlbmRpZgogICAgIGJvb2wgbWVtb3J5Q2FjaGVE
aXNhYmxlZCB7IGZhbHNlIH07CiAgICAgYm9vbCBhdHRyU3R5bGVFbmFibGVkIHsgZmFsc2UgfTsK
ICAgICBib29sIHVzZUdQVVByb2Nlc3NGb3JNZWRpYUVuYWJsZWQgeyBmYWxzZSB9OwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9Tb3VyY2VzQ29jb2EudHh0IGIvU291cmNlL1dlYktpdC9Tb3Vy
Y2VzQ29jb2EudHh0CmluZGV4IGJiZDMwNTk1MjlhZmNjOTZjZDM0NjY5NDdhNmNiYWI5ZDU0Njcw
NTEuLjU3NGI3Y2M3ZjBlMWQ0ZDM1ODIyNzg2OGY4ZGQwY2Q2NjE1YTEzYTYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvU291cmNlc0NvY29hLnR4dAorKysgYi9Tb3VyY2UvV2ViS2l0L1NvdXJj
ZXNDb2NvYS50eHQKQEAgLTQ2MSw2ICs0NjEsNyBAQCBVSVByb2Nlc3MvaW9zL1dLR2VvbG9jYXRp
b25Qcm92aWRlcklPUy5tbQogVUlQcm9jZXNzL2lvcy9XS0dlb2xvY2F0aW9uUHJvdmlkZXJJT1NP
YmpDU2VjdXJpdHlPcmlnaW4ubW0KIFVJUHJvY2Vzcy9pb3MvV0tIaWdobGlnaHRMb25nUHJlc3NH
ZXN0dXJlUmVjb2duaXplci5tbQogVUlQcm9jZXNzL2lvcy9XS0tleWJvYXJkU2Nyb2xsaW5nQW5p
bWF0b3IubW0KK1VJUHJvY2Vzcy9pb3MvV0tNb3VzZURldmljZU9ic2VydmVyLm1tCiBVSVByb2Nl
c3MvaW9zL1dLTW91c2VHZXN0dXJlUmVjb2duaXplci5tbQogVUlQcm9jZXNzL2lvcy9XS1Bhc3N3
b3JkVmlldy5tbQogVUlQcm9jZXNzL2lvcy9XS1BERlBhZ2VOdW1iZXJJbmRpY2F0b3IubW0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlByb2Nlc3NQb29sQ29j
b2EubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJQcm9jZXNzUG9vbENvY29h
Lm1tCmluZGV4IDg0NzJhZTkyMDIyZWJlZDBmNGFkN2UxMjQ5NDZjODBlMDE1ZjYxMmQuLmE0YzY4
ZmU1YTViNjVlNDY5MDljMDIwNDhjZmNkODU1YjkyYzk0NTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlByb2Nlc3NQb29sQ29jb2EubW0KKysrIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViUHJvY2Vzc1Bvb2xDb2NvYS5tbQpAQCAtNDEsNiAr
NDEsNyBAQAogI2ltcG9ydCAiVXNlckludGVyZmFjZUlkaW9tLmgiCiAjaW1wb3J0ICJWZXJzaW9u
Q2hlY2tzLmgiCiAjaW1wb3J0ICJXS0Jyb3dzaW5nQ29udGV4dENvbnRyb2xsZXJJbnRlcm5hbC5o
IgorI2ltcG9ydCAiV0tNb3VzZURldmljZU9ic2VydmVyLmgiCiAjaW1wb3J0ICJXZWJCYWNrRm9y
d2FyZENhY2hlLmgiCiAjaW1wb3J0ICJXZWJNZW1vcnlQcmVzc3VyZUhhbmRsZXIuaCIKICNpbXBv
cnQgIldlYlBhZ2VHcm91cC5oIgpAQCAtNDg1LDYgKzQ4NiwxMCBAQCB2b2lkIFdlYlByb2Nlc3NQ
b29sOjpwbGF0Zm9ybUluaXRpYWxpemVXZWJQcm9jZXNzKGNvbnN0IFdlYlByb2Nlc3NQcm94eSYg
cHJvY2VzcwogI2lmIEhBVkUoQ0FUQUxZU1RfVVNFUl9JTlRFUkZBQ0VfSURJT01fQU5EX1NDQUxF
X0ZBQ1RPUikKICAgICBwYXJhbWV0ZXJzLm92ZXJyaWRlVXNlckludGVyZmFjZUlkaW9tQW5kU2Nh
bGUgPSB7IF9VSUFwcGxpY2F0aW9uQ2F0YWx5c3RVc2VySW50ZXJmYWNlSWRpb20oKSwgX1VJQXBw
bGljYXRpb25DYXRhbHlzdFNjYWxlRmFjdG9yKCkgfTsKICNlbmRpZgorCisjaWYgSEFWRShVSUtJ
VF9XSVRIX01PVVNFX1NVUFBPUlQpICYmIFBMQVRGT1JNKElPUykKKyAgICBwYXJhbWV0ZXJzLmhh
c01vdXNlRGV2aWNlID0gW1tXS01vdXNlRGV2aWNlT2JzZXJ2ZXIgc2hhcmVkSW5zdGFuY2VdIGhh
c01vdXNlRGV2aWNlXTsKKyNlbmRpZgogfQogCiB2b2lkIFdlYlByb2Nlc3NQb29sOjpwbGF0Zm9y
bUluaXRpYWxpemVOZXR3b3JrUHJvY2VzcyhOZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVy
cyYgcGFyYW1ldGVycykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBy
b2Nlc3NQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHku
Y3BwCmluZGV4IDVlMmM3MDhmMjJmOTdiZWFmMzcwOTM1MmNiNjllM2Q0YzI4ZTFkOWIuLjE2ZTA5
NDM2NDk2MTQ2ZGZmYjFkODdjOTMwYjZkMzQxZTVkYTdmN2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcApAQCAtMzk4LDggKzM5OCwxNiBAQCB2b2lkIFdl
YlByb2Nlc3NQcm94eTo6Y29ubmVjdGlvbldpbGxPcGVuKElQQzo6Q29ubmVjdGlvbiYgY29ubmVj
dGlvbikKICNpZiBFTkFCTEUoU0VDX0lURU1fU0hJTSkKICAgICBTZWNJdGVtU2hpbVByb3h5Ojpz
aW5nbGV0b24oKS5pbml0aWFsaXplQ29ubmVjdGlvbihjb25uZWN0aW9uKTsKICNlbmRpZgorCisg
ICAgcGxhdGZvcm1Db25uZWN0aW9uV2lsbE9wZW4oKTsKIH0KIAorI2lmICFQTEFURk9STShJT1Mp
Cit2b2lkIFdlYlByb2Nlc3NQcm94eTo6cGxhdGZvcm1Db25uZWN0aW9uV2lsbE9wZW4oKQorewor
fQorI2VuZGlmCisKIHZvaWQgV2ViUHJvY2Vzc1Byb3h5Ojpwcm9jZXNzV2lsbFNodXREb3duKElQ
Qzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbikKIHsKICAgICBBU1NFUlRfVU5VU0VEKGNvbm5lY3Rp
b24sIHRoaXMtPmNvbm5lY3Rpb24oKSA9PSAmY29ubmVjdGlvbik7CkBAIC00MDcsOCArNDE1LDE2
IEBAIHZvaWQgV2ViUHJvY2Vzc1Byb3h5Ojpwcm9jZXNzV2lsbFNodXREb3duKElQQzo6Q29ubmVj
dGlvbiYgY29ubmVjdGlvbikKICNpZiBQTEFURk9STShNQUMpICYmIEVOQUJMRShXRUJQUk9DRVNT
X1dJTkRPV1NFUlZFUl9CTE9DS0lORykKICAgICBwcm9jZXNzUG9vbCgpLnN0b3BEaXNwbGF5TGlu
a3MoY29ubmVjdGlvbik7CiAjZW5kaWYKKworICAgIHBsYXRmb3JtUHJvY2Vzc1dpbGxTaHV0RG93
bigpOwogfQogCisjaWYgIVBMQVRGT1JNKElPUykKK3ZvaWQgV2ViUHJvY2Vzc1Byb3h5OjpwbGF0
Zm9ybVByb2Nlc3NXaWxsU2h1dERvd24oKQoreworfQorI2VuZGlmCisKIHZvaWQgV2ViUHJvY2Vz
c1Byb3h5OjpzaHV0RG93bigpCiB7CiAgICAgUkVMRUFTRV9BU1NFUlQoaXNNYWluVGhyZWFkT3JD
aGVja0Rpc2FibGVkKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
UHJvY2Vzc1Byb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHku
aAppbmRleCBlMGU4ZGMwYWM3MDhiMTI0OGIxY2M4MGFkY2IxOWQxODQxMjM5YzczLi40YWEzYTg1
YjM0MzAxYzRlZGUxNjIyN2IwOTA1ZjdhZTE2OGI4NTQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJQcm9jZXNzUHJveHkuaApAQCAtMzA2LDYgKzMwNiwxMCBAQCBwdWJsaWM6CiAgICAg
dm9pZCBkaWRTZXRBc3NlcnRpb25UeXBlKFByb2Nlc3NBc3NlcnRpb25UeXBlKSBmaW5hbDsKICAg
ICBBU0NJSUxpdGVyYWwgY2xpZW50TmFtZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuICJXZWJQcm9j
ZXNzIl9zOyB9CiAKKyNpZiBIQVZFKFVJS0lUX1dJVEhfTU9VU0VfU1VQUE9SVCkgJiYgUExBVEZP
Uk0oSU9TKQorICAgIHZvaWQgc2V0SGFzTW91c2VEZXZpY2UoYm9vbCk7CisjZW5kaWYKKwogI2lm
IFBMQVRGT1JNKENPQ09BKQogICAgIGVudW0gU2FuZGJveEV4dGVuc2lvblR5cGUgOiB1aW50MzJf
dCB7CiAgICAgICAgIE5vbmUgPSAwLApAQCAtNDEwLDYgKzQxNCw5IEBAIHByb3RlY3RlZDoKICAg
ICB2b2lkIHZhbGlkYXRlRnJlZXplclN0YXR1cygpOwogCiBwcml2YXRlOgorICAgIHZvaWQgcGxh
dGZvcm1Db25uZWN0aW9uV2lsbE9wZW4oKTsKKyAgICB2b2lkIHBsYXRmb3JtUHJvY2Vzc1dpbGxT
aHV0RG93bigpOworCiAgICAgLy8gSVBDIG1lc3NhZ2UgaGFuZGxlcnMuCiAgICAgdm9pZCB1cGRh
dGVCYWNrRm9yd2FyZEl0ZW0oY29uc3QgQmFja0ZvcndhcmRMaXN0SXRlbVN0YXRlJik7CiAgICAg
dm9pZCBkaWREZXN0cm95RnJhbWUoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS01vdXNlRGV2aWNlT2JzZXJ2ZXIuaCBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS01vdXNlRGV2aWNlT2JzZXJ2ZXIuaApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi44ZDczZTExYTI2MmU1ZWMwZjkwYTgzYmVhOTI0YmJmMmEzMDg3MGNiCi0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLTW91c2VEZXZpY2VPYnNl
cnZlci5oCkBAIC0wLDAgKzEsNDcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycK
KyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisg
KiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWYgSEFWRShVSUtJVF9XSVRI
X01PVVNFX1NVUFBPUlQpICYmIFBMQVRGT1JNKElPUykKKworI2ltcG9ydCAiQmFja0JvYXJkU2Vy
dmljZXNTUEkuaCIKKworbmFtZXNwYWNlIFdlYktpdCB7CitjbGFzcyBXZWJQcm9jZXNzUHJveHk7
Cit9CisKK0BpbnRlcmZhY2UgV0tNb3VzZURldmljZU9ic2VydmVyIDogTlNPYmplY3Q8QktTTW91
c2VQb2ludGVyRGV2aWNlT2JzZXJ2ZXI+CisKKysgKFdLTW91c2VEZXZpY2VPYnNlcnZlciAqKXNo
YXJlZEluc3RhbmNlOworCitAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIEJPT0wgaGFz
TW91c2VEZXZpY2U7CisKKy0gKHZvaWQpYWRkV2ViUHJvY2Vzc1Byb3h5OihXZWJLaXQ6OldlYlBy
b2Nlc3NQcm94eSYpd2ViUHJvY2Vzc1Byb3h5OworLSAodm9pZClyZW1vdmVXZWJQcm9jZXNzUHJv
eHk6KFdlYktpdDo6V2ViUHJvY2Vzc1Byb3h5Jil3ZWJQcm9jZXNzUHJveHk7CisKKy0gKHZvaWQp
X3NldEhhc01vdXNlRGV2aWNlRm9yVGVzdGluZzooQk9PTCloYXNNb3VzZURldmljZTsKKworQGVu
ZAorCisjZW5kaWYgLy8gSEFWRShVSUtJVF9XSVRIX01PVVNFX1NVUFBPUlQpICYmIFBMQVRGT1JN
KElPUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS01vdXNlRGV2
aWNlT2JzZXJ2ZXIubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tNb3VzZURldmlj
ZU9ic2VydmVyLm1tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjg5OTY5MmEyM2FmNThlNDkzY2RkNjhkYzYwOThlNmI5
MTBhYTgyOTYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3Mv
V0tNb3VzZURldmljZU9ic2VydmVyLm1tCkBAIC0wLDAgKzEsMTE3IEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05U
UklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1Ig
SVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwor
I2ltcG9ydCAiY29uZmlnLmgiCisjaW1wb3J0ICJXS01vdXNlRGV2aWNlT2JzZXJ2ZXIuaCIKKwor
I2lmIEhBVkUoVUlLSVRfV0lUSF9NT1VTRV9TVVBQT1JUKSAmJiBQTEFURk9STShJT1MpCisKKyNp
bXBvcnQgIldlYlByb2Nlc3NQcm94eS5oIgorI2luY2x1ZGUgPHd0Zi9XZWFrSGFzaFNldC5oPgor
CitAaW1wbGVtZW50YXRpb24gV0tNb3VzZURldmljZU9ic2VydmVyIHsKKyAgICBXZWFrSGFzaFNl
dDxXZWJLaXQ6OldlYlByb2Nlc3NQcm94eT4gX3dlYlByb2Nlc3NQcm94eUxpc3Q7CisKKyAgICBC
T09MIF9oYXNNb3VzZURldmljZTsKKyAgICBpZDxCU0ludmFsaWRhdGFibGU+IF90b2tlbjsKK30K
KworKyAoV0tNb3VzZURldmljZU9ic2VydmVyICopc2hhcmVkSW5zdGFuY2UgeworICAgIHN0YXRp
YyBXS01vdXNlRGV2aWNlT2JzZXJ2ZXIgKmluc3RhbmNlOworICAgIGlmICghaW5zdGFuY2UpCisg
ICAgICAgIGluc3RhbmNlID0gW1tXS01vdXNlRGV2aWNlT2JzZXJ2ZXIgYWxsb2NdIGluaXRdOwor
ICAgIHJldHVybiBpbnN0YW5jZTsKK30KKworLSAodm9pZClkZWFsbG9jCit7CisgICAgaWYgKF90
b2tlbikKKyAgICAgICAgW3NlbGYgc3RvcF07CisKKyAgICBbc3VwZXIgZGVhbGxvY107Cit9CisK
KyNwcmFnbWEgbWFyayAtIFdlYlByb2Nlc3NQcm94eSBBUEkKKworLSAodm9pZClhZGRXZWJQcm9j
ZXNzUHJveHk6KFdlYktpdDo6V2ViUHJvY2Vzc1Byb3h5Jil3ZWJQcm9jZXNzUHJveHkKK3sKKyAg
ICBpZiAoIV93ZWJQcm9jZXNzUHJveHlMaXN0LmFkZCh3ZWJQcm9jZXNzUHJveHkpKQorICAgICAg
ICByZXR1cm47CisKKyAgICBpZiAoX3dlYlByb2Nlc3NQcm94eUxpc3QuY29tcHV0ZVNpemUoKSA9
PSAxKQorICAgICAgICBbc2VsZiBzdGFydF07Cit9CisKKy0gKHZvaWQpcmVtb3ZlV2ViUHJvY2Vz
c1Byb3h5OihXZWJLaXQ6OldlYlByb2Nlc3NQcm94eSYpd2ViUHJvY2Vzc1Byb3h5Cit7CisgICAg
aWYgKCFfd2ViUHJvY2Vzc1Byb3h5TGlzdC5yZW1vdmUod2ViUHJvY2Vzc1Byb3h5KSkKKyAgICAg
ICAgcmV0dXJuOworCisgICAgaWYgKF93ZWJQcm9jZXNzUHJveHlMaXN0LmNvbXB1dGVTaXplKCkg
PT0gMCkKKyAgICAgICAgW3NlbGYgc3RvcF07Cit9CisKKyNwcmFnbWEgbWFyayAtIEJLU01vdXNl
UG9pbnRlckRldmljZU9ic2VydmVyIHN0YXRlCisKKy0gKHZvaWQpc3RhcnQKK3sKKyAgICBBU1NF
UlQoIV90b2tlbik7CisgICAgX3Rva2VuID0gW1tCS1NNb3VzZVBvaW50ZXJTZXJ2aWNlIHNoYXJl
ZEluc3RhbmNlXSBhZGRQb2ludGVyRGV2aWNlT2JzZXJ2ZXI6c2VsZl07Cit9CisKKy0gKHZvaWQp
c3RvcAoreworICAgIEFTU0VSVChfdG9rZW4pOworICAgIFtfdG9rZW4gaW52YWxpZGF0ZV07Cisg
ICAgX3Rva2VuID0gbmlsOworfQorCisjcHJhZ21hIG1hcmsgLSBCS1NNb3VzZVBvaW50ZXJEZXZp
Y2VPYnNlcnZlciBoYW5kbGVycworCistICh2b2lkKW1vdXNlUG9pbnRlckRldmljZXNEaWRDaGFu
Z2U6KE5TU2V0PEJLU01vdXNlUG9pbnRlckRldmljZSAqPiAqKW1vdXNlUG9pbnRlckRldmljZXMK
K3sKKyAgICBCT09MIGhhc01vdXNlRGV2aWNlID0gW21vdXNlUG9pbnRlckRldmljZXMgY291bnRd
ID4gMDsKKyAgICBpZiAoaGFzTW91c2VEZXZpY2UgPT0gX2hhc01vdXNlRGV2aWNlKQorICAgICAg
ICByZXR1cm47CisKKyAgICBfaGFzTW91c2VEZXZpY2UgPSBoYXNNb3VzZURldmljZTsKKworICAg
IGZvciAoYXV0byYgd2ViUHJvY2Vzc1Byb3h5IDogX3dlYlByb2Nlc3NQcm94eUxpc3QpCisgICAg
ICAgIHdlYlByb2Nlc3NQcm94eS5zZXRIYXNNb3VzZURldmljZShfaGFzTW91c2VEZXZpY2UpOwor
fQorCisjcHJhZ21hIG1hcmsgLSBUZXN0aW5nCisKKy0gKHZvaWQpX3NldEhhc01vdXNlRGV2aWNl
Rm9yVGVzdGluZzooQk9PTCloYXNNb3VzZURldmljZQoreworICAgIF9oYXNNb3VzZURldmljZSA9
IGhhc01vdXNlRGV2aWNlOworCisgICAgZm9yIChhdXRvJiB3ZWJQcm9jZXNzUHJveHkgOiBfd2Vi
UHJvY2Vzc1Byb3h5TGlzdCkKKyAgICAgICAgd2ViUHJvY2Vzc1Byb3h5LnNldEhhc01vdXNlRGV2
aWNlKF9oYXNNb3VzZURldmljZSk7Cit9CisKK0BlbmQKKworI2VuZGlmIC8vIEhBVkUoVUlLSVRf
V0lUSF9NT1VTRV9TVVBQT1JUKSAmJiBQTEFURk9STShJT1MpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9pb3MvV2ViUHJvY2Vzc1Byb3h5SU9TLm1tIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvaW9zL1dlYlByb2Nlc3NQcm94eUlPUy5tbQppbmRleCBlYjE3N2NkN2NkZjUx
ZjAyN2Y3YzViMWVjNzJjODczZmZhNjE4NGZhLi43MDQzN2JlMTQ5OGJhMjc3MGUxZGViNTE5MjFh
NmJiMTQ4NmViNzcyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV2Vi
UHJvY2Vzc1Byb3h5SU9TLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XZWJQ
cm9jZXNzUHJveHlJT1MubW0KQEAgLTMwLDEwICszMCwzOCBAQAogCiAjaW1wb3J0ICJBY2Nlc3Np
YmlsaXR5U3VwcG9ydFNQSS5oIgogI2ltcG9ydCAiV0tGdWxsS2V5Ym9hcmRBY2Nlc3NXYXRjaGVy
LmgiCisjaW1wb3J0ICJXS01vdXNlRGV2aWNlT2JzZXJ2ZXIuaCIKICNpbXBvcnQgIldlYlByb2Nl
c3NNZXNzYWdlcy5oIgogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAorI2lmIFBMQVRGT1JNKElPUykK
Kwordm9pZCBXZWJQcm9jZXNzUHJveHk6OnBsYXRmb3JtQ29ubmVjdGlvbldpbGxPcGVuKCkKK3sK
KyNpZiBIQVZFKFVJS0lUX1dJVEhfTU9VU0VfU1VQUE9SVCkKKyAgICBbW1dLTW91c2VEZXZpY2VP
YnNlcnZlciBzaGFyZWRJbnN0YW5jZV0gYWRkV2ViUHJvY2Vzc1Byb3h5Oip0aGlzXTsKKyNlbmRp
ZgorfQorCit2b2lkIFdlYlByb2Nlc3NQcm94eTo6cGxhdGZvcm1Qcm9jZXNzV2lsbFNodXREb3du
KCkKK3sKKyNpZiBIQVZFKFVJS0lUX1dJVEhfTU9VU0VfU1VQUE9SVCkKKyAgICBbW1dLTW91c2VE
ZXZpY2VPYnNlcnZlciBzaGFyZWRJbnN0YW5jZV0gcmVtb3ZlV2ViUHJvY2Vzc1Byb3h5Oip0aGlz
XTsKKyNlbmRpZgorfQorCisjaWYgSEFWRShVSUtJVF9XSVRIX01PVVNFX1NVUFBPUlQpCisKK3Zv
aWQgV2ViUHJvY2Vzc1Byb3h5OjpzZXRIYXNNb3VzZURldmljZShib29sIGhhc01vdXNlRGV2aWNl
KQoreworICAgIHNlbmQoTWVzc2FnZXM6OldlYlByb2Nlc3M6OlNldEhhc01vdXNlRGV2aWNlKGhh
c01vdXNlRGV2aWNlKSwgMCk7Cit9CisKKyNlbmRpZiAvLyBIQVZFKFVJS0lUX1dJVEhfTU9VU0Vf
U1VQUE9SVCkKKworI2VuZGlmIC8vIFBMQVRGT1JNKElPUykKKwogYm9vbCBXZWJQcm9jZXNzUHJv
eHk6OmZ1bGxLZXlib2FyZEFjY2Vzc0VuYWJsZWQoKQogewogI2lmIEVOQUJMRShGVUxMX0tFWUJP
QVJEX0FDQ0VTUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCmluZGV4IDUzYjY0Zjc1ZWRkNDNjZTk1Zjc2NDEzNDdkOGE1NzhhMDZiNjQzYWUuLmVk
YjVlNTIyNmQ3ZjUwNTk5YWI2ODY3ZTM2NGE5Njk2OWNmMzUyYWQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dl
YktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMTM3OSw2ICsxMzc5LDgg
QEAKIAkJOTNCREVCMDExNzFERDdBRjAwQkZFRTFCIC8qIFdLUGFnZUxvYWRUeXBlc1ByaXZhdGUu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzQkRFQjAw
MTcxREQ3QUYwMEJGRUUxQiAvKiBXS1BhZ2VMb2FkVHlwZXNQcml2YXRlLmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJOTNFNkE0RUUxQkM1REQzOTAw
RjhBMEU3IC8qIF9XS0hpdFRlc3RSZXN1bHQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDkzRTZBNEVEMUJDNUREMzkwMEY4QTBFNyAvKiBfV0tIaXRUZXN0
UmVzdWx0LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
IAkJOTNGNTQ5QjQxRTMxNzRCNzAwMEU3MjM5IC8qIFdLU25hcHNob3RDb25maWd1cmF0aW9uLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0Y1NDlCMzFF
MzE3NEI3MDAwRTcyMzkgLyogV0tTbmFwc2hvdENvbmZpZ3VyYXRpb24uaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQdWJsaWMsICk7IH07IH07CisJCTk1MEYyODgwMjUyNDE0RUEwMEI3
NEYxQyAvKiBXS01vdXNlRGV2aWNlT2JzZXJ2ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk1MEYyODdFMjUyNDE0RTkwMEI3NEYxQyAvKiBXS01vdXNl
RGV2aWNlT2JzZXJ2ZXIuaCAqLzsgfTsKKwkJOTVDOTQzOTEyNTIzQzBEMDAwNTRGM0Q1IC8qIEJh
c2VCb2FyZFNQSS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gOTVDOTQzOTAyNTIzQzBEMDAwNTRGM0Q1IC8qIEJhc2VCb2FyZFNQSS5oICovOyB9OwogCQk5
OTAzNkFFMjIzQTk0OUNGMDAwMEIwNkEgLyogX1dLSW5zcGVjdG9yRGVidWdnYWJsZUluZm9JbnRl
cm5hbC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTkw
MzZBRTEyM0E5NDlDRTAwMDBCMDZBIC8qIF9XS0luc3BlY3RvckRlYnVnZ2FibGVJbmZvSW50ZXJu
YWwuaCAqLzsgfTsKIAkJOTkwMzZBRTUyM0E5NTg3NTAwMDBCMDZBIC8qIEFQSURlYnVnZ2FibGVJ
bmZvLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5OTAz
NkFFMzIzQTk1ODc0MDAwMEIwNkEgLyogQVBJRGVidWdnYWJsZUluZm8uaCAqLzsgfTsKIAkJOTkw
MzZBRTkyM0E5NzA4NzAwMDBCMDZBIC8qIERlYnVnZ2FibGVJbmZvRGF0YS5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTkwMzZBRTcyM0E5NzA4NzAwMDBC
MDZBIC8qIERlYnVnZ2FibGVJbmZvRGF0YS5oICovOyB9OwpAQCAtNDQyMSw2ICs0NDIzLDkgQEAK
IAkJOTNFNkE0RUQxQkM1REQzOTAwRjhBMEU3IC8qIF9XS0hpdFRlc3RSZXN1bHQuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gX1dLSGl0VGVzdFJlc3VsdC5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk5M0Y1NDlCMzFFMzE3NEI3MDAwRTcyMzkgLyogV0tTbmFwc2hv
dENvbmZpZ3VyYXRpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0tTbmFw
c2hvdENvbmZpZ3VyYXRpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTNGNTQ5
QjUxRTMxNzREQTAwMEU3MjM5IC8qIFdLU25hcHNob3RDb25maWd1cmF0aW9uLm1tICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gV0tTbmFwc2hvdENvbmZpZ3VyYXRpb24u
bW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTk1MEYyODdFMjUyNDE0RTkwMEI3NEYx
QyAvKiBXS01vdXNlRGV2aWNlT2JzZXJ2ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBu
YW1lID0gV0tNb3VzZURldmljZU9ic2VydmVyLmg7IHBhdGggPSBpb3MvV0tNb3VzZURldmljZU9i
c2VydmVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTk1MEYyODdGMjUyNDE0RUEw
MEI3NEYxQyAvKiBXS01vdXNlRGV2aWNlT2JzZXJ2ZXIubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5vYmpjcHA7IG5hbWUgPSBXS01vdXNlRGV2aWNlT2JzZXJ2ZXIubW07IHBhdGggPSBpb3Mv
V0tNb3VzZURldmljZU9ic2VydmVyLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5
NUM5NDM5MDI1MjNDMEQwMDA1NEYzRDUgLyogQmFzZUJvYXJkU1BJLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IEJhc2VCb2FyZFNQSS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk5OTAzNkFFMTIzQTk0OUNFMDAwMEIwNkEgLyogX1dLSW5zcGVjdG9yRGVidWdnYWJs
ZUluZm9JbnRlcm5hbC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBfV0tJbnNw
ZWN0b3JEZWJ1Z2dhYmxlSW5mb0ludGVybmFsLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTk5MDM2QUUzMjNBOTU4NzQwMDAwQjA2QSAvKiBBUElEZWJ1Z2dhYmxlSW5mby5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBBUElEZWJ1Z2dhYmxlSW5mby5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk5OTAzNkFFNDIzQTk1ODc0MDAwMEIwNkEgLyogQVBJRGVi
dWdnYWJsZUluZm8uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQVBJ
RGVidWdnYWJsZUluZm8uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNzAxNCw2
ICs3MDE5LDggQEAKIAkJCQk5MzNERjgyRjFCM0JDMEI0MDBBRUE5RTMgLyogV0tJbWFnZVByZXZp
ZXdWaWV3Q29udHJvbGxlci5tbSAqLywKIAkJCQkyREQ1RTEyNzIxMEFEQzdBMDBEQjYwMTIgLyog
V0tLZXlib2FyZFNjcm9sbGluZ0FuaW1hdG9yLmggKi8sCiAJCQkJMkRENUUxMjYyMTBBREM3QTAw
REI2MDEyIC8qIFdLS2V5Ym9hcmRTY3JvbGxpbmdBbmltYXRvci5tbSAqLywKKwkJCQk5NTBGMjg3
RTI1MjQxNEU5MDBCNzRGMUMgLyogV0tNb3VzZURldmljZU9ic2VydmVyLmggKi8sCisJCQkJOTUw
RjI4N0YyNTI0MTRFQTAwQjc0RjFDIC8qIFdLTW91c2VEZXZpY2VPYnNlcnZlci5tbSAqLywKIAkJ
CQkyREI5NDI5NzIzNEU3QTdGMDBFNzc2QUQgLyogV0tNb3VzZUdlc3R1cmVSZWNvZ25pemVyLmgg
Ki8sCiAJCQkJMkRCOTQyOTgyMzRFN0E3RjAwRTc3NkFEIC8qIFdLTW91c2VHZXN0dXJlUmVjb2du
aXplci5tbSAqLywKIAkJCQlBMTVFRURFNDFFMzAxQ0VFMDAwMDY5QjAgLyogV0tQYXNzd29yZFZp
ZXcuaCAqLywKQEAgLTEwMzc0LDYgKzEwMzgxLDcgQEAKIAkJCWNoaWxkcmVuID0gKAogCQkJCUNF
MUEwQkNDMUE0OEU2QzYwMDU0RUY3NCAvKiBBc3NlcnRpb25TZXJ2aWNlc1NQSS5oICovLAogCQkJ
CUNEQTA0MUYzMUFDRTIxMDUwMDRBMTNFQyAvKiBCYWNrQm9hcmRTZXJ2aWNlc1NQSS5oICovLAor
CQkJCTk1Qzk0MzkwMjUyM0MwRDAwMDU0RjNENSAvKiBCYXNlQm9hcmRTUEkuaCAqLywKIAkJCQky
RDRBRjA4ODIwNDRDM0M0MDA2Qzg4MTcgLyogRnJvbnRCb2FyZFNlcnZpY2VzU1BJLmggKi8sCiAJ
CQkJQTEzQjNEQTEyMDdGMzlERTAwOTBDNThEIC8qIE1vYmlsZVdpRmlTUEkuaCAqLywKIAkJCQkz
MTc4QUY5NzIwRTJBN0Y4MDA3NERFOTQgLyogUERGS2l0U1BJLmggKi8sCkBAIC0xMDc0MCw2ICsx
MDc0OCw3IEBACiAJCQkJMjkwRjQyNzIxNzJBMEM3NDAwOTM5RkYwIC8qIEF1eGlsaWFyeVByb2Nl
c3NTdXBwbGVtZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlDREEwNDFGNDFBQ0UyMTA1MDA0QTEz
RUMgLyogQmFja0JvYXJkU2VydmljZXNTUEkuaCBpbiBIZWFkZXJzICovLAogCQkJCTQ2QTJCNjA5
MUU1Njc2QTYwMEMzREVEQSAvKiBCYWNrZ3JvdW5kUHJvY2Vzc1Jlc3BvbnNpdmVuZXNzVGltZXIu
aCBpbiBIZWFkZXJzICovLAorCQkJCTk1Qzk0MzkxMjUyM0MwRDAwMDU0RjNENSAvKiBCYXNlQm9h
cmRTUEkuaCBpbiBIZWFkZXJzICovLAogCQkJCUUxNjRBMkYyMTkxQUYxNEUwMDEwNzM3RCAvKiBC
bG9iRGF0YUZpbGVSZWZlcmVuY2VXaXRoU2FuZGJveEV4dGVuc2lvbi5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJRTE3MDg3NkMxNkQ2Q0E2OTAwRjk5MjI2IC8qIEJsb2JSZWdpc3RyeVByb3h5LmggaW4g
SGVhZGVycyAqLywKIAkJCQk0RjYwMTQzMjE1NUM1QUEyMDAxRkJERTAgLyogQmxvY2tpbmdSZXNw
b25zZU1hcC5oIGluIEhlYWRlcnMgKi8sCkBAIC0xMTU5Nyw2ICsxMTYwNiw3IEBACiAJCQkJNUNB
QkRDODYyMkM0MEZERTAwMUVERThFIC8qIFdLTWVzc2FnZUxpc3RlbmVyLmggaW4gSGVhZGVycyAq
LywKIAkJCQlDMTFFMTY5NDIxMkI4N0M1MDA5ODVGRjYgLyogV0tNb2NrRGlzcGxheS5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJNDExQThEREIyMERERDFBQzAwNjBEMzRGIC8qIFdLTW9ja01lZGlhRGV2
aWNlLmggaW4gSGVhZGVycyAqLywKKwkJCQk5NTBGMjg4MDI1MjQxNEVBMDBCNzRGMUMgLyogV0tN
b3VzZURldmljZU9ic2VydmVyLmggaW4gSGVhZGVycyAqLywKIAkJCQkyREI5NDI5OTIzNEU3QTdG
MDBFNzc2QUQgLyogV0tNb3VzZUdlc3R1cmVSZWNvZ25pemVyLmggaW4gSGVhZGVycyAqLywKIAkJ
CQlCQzQwNzVGRTEyNEZGMDI3MDA2OEYyMEEgLyogV0tNdXRhYmxlQXJyYXkuaCBpbiBIZWFkZXJz
ICovLAogCQkJCUJDNDA3NjAwMTI0RkYwMjcwMDY4RjIwQSAvKiBXS011dGFibGVEaWN0aW9uYXJ5
LmggaW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAKaW5kZXggMTg4YmM1ZTllYjlk
Yjc0NDA1ZTA4ZjZlMDU4MjNlYTNjMzdhODJhMS4uNjhmZGNkZDQyNjRiYzcxM2RiYzViZjU0ODA4
ZGRlM2ZkYmVjY2M2NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNv
cmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAKQEAgLTUwNiw2ICs1MDYsMTUg
QEAgS2V5Ym9hcmRVSU1vZGUgV2ViQ2hyb21lQ2xpZW50OjprZXlib2FyZFVJTW9kZSgpCiAgICAg
cmV0dXJuIG1fcGFnZS5rZXlib2FyZFVJTW9kZSgpOwogfQogCisjaWYgSEFWRShVSUtJVF9XSVRI
X01PVVNFX1NVUFBPUlQpCisKK2Jvb2wgV2ViQ2hyb21lQ2xpZW50OjpoYXNNb3VzZURldmljZSgp
Cit7CisgICAgcmV0dXJuIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmhhc01vdXNlRGV2aWNlKCk7
Cit9CisKKyNlbmRpZiAvLyBIQVZFKFVJS0lUX1dJVEhfTU9VU0VfU1VQUE9SVCkKKwogI2lmIEVO
QUJMRShQT0lOVEVSX0xPQ0spCiAKIGJvb2wgV2ViQ2hyb21lQ2xpZW50OjpyZXF1ZXN0UG9pbnRl
ckxvY2soKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L1dlYkNocm9tZUNsaWVudC5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCmluZGV4IGJkYjRkZmZiYjAxNWEzNzcyMDZiZGI0MjVh
NzI1YWQ2NGUwMTU4N2IuLjJiYzViNDBiYzM1OGY2YTE3YWQ1MzI3YWFjMzQ3NTA5MTg4ZmY5YWIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJD
aHJvbWVDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBv
cnQvV2ViQ2hyb21lQ2xpZW50LmgKQEAgLTExMiw2ICsxMTIsMTAgQEAgcHJpdmF0ZToKIAogICAg
IFdlYkNvcmU6OktleWJvYXJkVUlNb2RlIGtleWJvYXJkVUlNb2RlKCkgZmluYWw7CiAKKyNpZiBI
QVZFKFVJS0lUX1dJVEhfTU9VU0VfU1VQUE9SVCkKKyAgICBib29sIGhhc01vdXNlRGV2aWNlKCkg
ZmluYWw7CisjZW5kaWYKKwogICAgIC8vIEhvc3RXaW5kb3cgbWVtYmVyIGZ1bmN0aW9uIGZpbmFs
cy4KICAgICB2b2lkIGludmFsaWRhdGVSb290Vmlldyhjb25zdCBXZWJDb3JlOjpJbnRSZWN0Jikg
ZmluYWw7CiAgICAgdm9pZCBpbnZhbGlkYXRlQ29udGVudHNBbmRSb290Vmlldyhjb25zdCBXZWJD
b3JlOjpJbnRSZWN0JikgZmluYWw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViUHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5j
cHAKaW5kZXggNzdlOGZiNmQyZmNlMmVmNWJhODRmNjZmOTI2Y2M1M2I1ZTAyOWNjNy4uNTg0MTlk
Nzk2ZDNkNTJmMDVmOTc3MDc3OGMzZmZjOWZmNzAyNmUzZiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJQcm9jZXNzLmNwcApAQCAtNDA2LDYgKzQwNiwxMCBAQCB2b2lkIFdlYlByb2Nlc3M6
OmluaXRpYWxpemVXZWJQcm9jZXNzKFdlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMmJiBwYXJh
bWV0ZXJzKQogCiAgICAgbV9mdWxsS2V5Ym9hcmRBY2Nlc3NFbmFibGVkID0gcGFyYW1ldGVycy5m
dWxsS2V5Ym9hcmRBY2Nlc3NFbmFibGVkOwogCisjaWYgSEFWRShVSUtJVF9XSVRIX01PVVNFX1NV
UFBPUlQpICYmIFBMQVRGT1JNKElPUykKKyAgICBtX2hhc01vdXNlRGV2aWNlID0gcGFyYW1ldGVy
cy5oYXNNb3VzZURldmljZTsKKyNlbmRpZgorCiAgICAgZm9yIChhdXRvJiBzY2hlbWUgOiBwYXJh
bWV0ZXJzLnVybFNjaGVtZXNSZWdpc3RlcmVkQXNFbXB0eURvY3VtZW50KQogICAgICAgICByZWdp
c3RlclVSTFNjaGVtZUFzRW1wdHlEb2N1bWVudChzY2hlbWUpOwogCkBAIC0xMDUwLDYgKzEwNTQs
MjAgQEAgdm9pZCBXZWJQcm9jZXNzOjptZXNzYWdlc0F2YWlsYWJsZUZvclBvcnQoY29uc3QgTWVz
c2FnZVBvcnRJZGVudGlmaWVyJiBpZGVudGlmaWUKICAgICBNZXNzYWdlUG9ydDo6bm90aWZ5TWVz
c2FnZUF2YWlsYWJsZShpZGVudGlmaWVyKTsKIH0KIAorI2lmIEhBVkUoVUlLSVRfV0lUSF9NT1VT
RV9TVVBQT1JUKSAmJiBQTEFURk9STShJT1MpCisKK3ZvaWQgV2ViUHJvY2Vzczo6c2V0SGFzTW91
c2VEZXZpY2UoYm9vbCBoYXNNb3VzZURldmljZSkKK3sKKyAgICBpZiAoaGFzTW91c2VEZXZpY2Ug
PT0gbV9oYXNNb3VzZURldmljZSkKKyAgICAgICAgcmV0dXJuOworCisgICAgbV9oYXNNb3VzZURl
dmljZSA9IGhhc01vdXNlRGV2aWNlOworCisgICAgUGFnZTo6dXBkYXRlU3R5bGVGb3JBbGxQYWdl
c0FmdGVyR2xvYmFsQ2hhbmdlSW5FbnZpcm9ubWVudCgpOworfQorCisjZW5kaWYgLy8gSEFWRShV
SUtJVF9XSVRIX01PVVNFX1NVUFBPUlQpICYmIFBMQVRGT1JNKElPUykKKwogI2lmIEVOQUJMRShH
QU1FUEFEKQogCiB2b2lkIFdlYlByb2Nlc3M6OnNldEluaXRpYWxHYW1lcGFkcyhjb25zdCBWZWN0
b3I8V2ViS2l0OjpHYW1lcGFkRGF0YT4mIGdhbWVwYWREYXRhcykKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViUHJvY2Vzcy5oCmluZGV4IDlkMGRkYmZkMzhkZTM4MWRjMjVkYmViOTdkNDg2OWU5NGZk
ZWI4MjcuLjUxZDdhOTJhNTRkZTVlOGFiOTE5Mzg2NjE1OTQ3YjEzZWQyNDAwMDQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmgKKysrIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuaApAQCAtMTg3LDYgKzE4NywxNSBAQCBwdWJsaWM6
CiAKICAgICBib29sIGZ1bGxLZXlib2FyZEFjY2Vzc0VuYWJsZWQoKSBjb25zdCB7IHJldHVybiBt
X2Z1bGxLZXlib2FyZEFjY2Vzc0VuYWJsZWQ7IH0KIAorI2lmIEhBVkUoVUlLSVRfV0lUSF9NT1VT
RV9TVVBQT1JUKQorI2lmIFBMQVRGT1JNKElPUykKKyAgICBib29sIGhhc01vdXNlRGV2aWNlKCkg
Y29uc3QgeyByZXR1cm4gbV9oYXNNb3VzZURldmljZTsgfQorICAgIHZvaWQgc2V0SGFzTW91c2VE
ZXZpY2UoYm9vbCk7CisjZWxpZiBQTEFURk9STShNQUNDQVRBTFlTVCkKKyAgICBib29sIGhhc01v
dXNlRGV2aWNlKCkgY29uc3QgeyByZXR1cm4gdHJ1ZTsgfQorI2VuZGlmCisjZW5kaWYKKwogICAg
IFdlYkZyYW1lKiB3ZWJGcmFtZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIpIGNvbnN0OwogICAg
IFZlY3RvcjxXZWJGcmFtZSo+IHdlYkZyYW1lcygpIGNvbnN0OwogICAgIHZvaWQgYWRkV2ViRnJh
bWUoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBXZWJGcmFtZSopOwpAQCAtNTU0LDYgKzU2Mywx
MCBAQCBwcml2YXRlOgogCiAgICAgYm9vbCBtX2Z1bGxLZXlib2FyZEFjY2Vzc0VuYWJsZWQgeyBm
YWxzZSB9OwogCisjaWYgSEFWRShVSUtJVF9XSVRIX01PVVNFX1NVUFBPUlQpICYmIFBMQVRGT1JN
KElPUykKKyAgICBib29sIG1faGFzTW91c2VEZXZpY2UgeyBmYWxzZSB9OworI2VuZGlmCisKICAg
ICBIYXNoTWFwPFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgV2ViRnJhbWUqPiBtX2ZyYW1lTWFw
OwogCiAgICAgdHlwZWRlZiBIYXNoTWFwPGNvbnN0IGNoYXIqLCBzdGQ6OnVuaXF1ZV9wdHI8V2Vi
UHJvY2Vzc1N1cHBsZW1lbnQ+LCBQdHJIYXNoPGNvbnN0IGNoYXIqPj4gV2ViUHJvY2Vzc1N1cHBs
ZW1lbnRNYXA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vz
cy5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLm1lc3Nh
Z2VzLmluCmluZGV4IDAxMjM2NzU3YTVjNWYwZDI4MGM2ZGQxZjlhMTgxNTJiYmNmMTljMDQuLjM3
MDAxNzk5NzkzMzI5MTQ2MmY2MGZkMTU4ODM4MmFmNzU1NjRiOWQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLm1lc3NhZ2VzLmluCkBAIC01Miw2ICs1MiwxMCBA
QCBtZXNzYWdlcyAtPiBXZWJQcm9jZXNzIExlZ2FjeVJlY2VpdmVyIE5vdFJlZkNvdW50ZWQgewog
ICAgIFVzZXJQcmVmZXJyZWRMYW5ndWFnZXNDaGFuZ2VkKCkKICAgICBGdWxsS2V5Ym9hcmRBY2Nl
c3NNb2RlQ2hhbmdlZChib29sIGZ1bGxLZXlib2FyZEFjY2Vzc0VuYWJsZWQpCiAKKyNpZiBIQVZF
KFVJS0lUX1dJVEhfTU9VU0VfU1VQUE9SVCkgJiYgUExBVEZPUk0oSU9TKQorICAgIFNldEhhc01v
dXNlRGV2aWNlKGJvb2wgaGFzTW91c2VEZXZpY2UpCisjZW5kaWYKKwogICAgICMgUGx1Zy1pbnMu
CiAgICAgRGlkQWRkUGx1Z0luQXV0b1N0YXJ0T3JpZ2luSGFzaCh1aW50MzJfdCBoYXNoLCBXYWxs
VGltZSBleHBpcmF0aW9uVGltZSkKICAgICBSZXNldFBsdWdJbkF1dG9TdGFydE9yaWdpbkhhc2hl
cyhIYXNoTWFwPHVpbnQzMl90LFdhbGxUaW1lPiBoYXNoZXMpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0TGVnYWN5L2lvcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnRJT1MuaCBiL1Nv
dXJjZS9XZWJLaXRMZWdhY3kvaW9zL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudElPUy5o
CmluZGV4IGE5MmJhYTZiMzA1OWRlODkxNDVmMDNiMWE1NzU3Zjk3MmE5NDA5OTkuLjk2NTVjNzhm
ZWNmY2Y2OTUxOWI4Y2UyYmQyMmNhM2ViMDQyMTgyMmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXRMZWdhY3kvaW9zL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudElPUy5oCisrKyBiL1Nv
dXJjZS9XZWJLaXRMZWdhY3kvaW9zL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudElPUy5o
CkBAIC01MCw2ICs1MCwxMCBAQCBwcml2YXRlOgogICAgIHZvaWQgcnVuT3BlblBhbmVsKFdlYkNv
cmU6OkZyYW1lJiwgV2ViQ29yZTo6RmlsZUNob29zZXImKSBmaW5hbDsKICAgICB2b2lkIHNob3dT
aGFyZVNoZWV0KFdlYkNvcmU6OlNoYXJlRGF0YVdpdGhQYXJzZWRVUkwmLCBDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKGJvb2wpPiYmKSBmaW5hbDsKIAorI2lmIEhBVkUoVUlLSVRfV0lUSF9NT1VTRV9T
VVBQT1JUKQorICAgIGJvb2wgaGFzTW91c2VEZXZpY2UoKSBmaW5hbCB7IHJldHVybiBmYWxzZTsg
fQorI2VuZGlmCisKICAgICB2b2lkIHNldEN1cnNvcihjb25zdCBXZWJDb3JlOjpDdXJzb3ImKSBm
aW5hbCB7IH0KICAgICB2b2lkIHNldEN1cnNvckhpZGRlblVudGlsTW91c2VNb3Zlcyhib29sKSBm
aW5hbCB7IH0KIApkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9n
CmluZGV4IDIyMzMxNDU4NzZmNjZlZWU2NDE1YjZjNGNjNmM1NjE5MzU0OGU4MTYuLjE1NTc1YTM0
ZmRmYjQ3N2Y0NTUxNzliZmNiNGQzMTJlMDIxNGFlZmQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5n
ZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOSBAQAorMjAyMC0wOS0zMCAg
RGV2aW4gUm91c3NvICA8ZHJvdXNzb0BhcHBsZS5jb20+CisKKyAgICAgICAgQ1NTIGhvdmVyIGFu
ZCAicG9pbnRlcjogZmluZSIgbWVkaWEgcXVlcmllcyBkbyBub3QgZXZhbHVhdGUgdG8gdHJ1ZSB3
aXRoIGlPUyAxMy40IG1vdXNlIHN1cHBvcnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTIwOTI5MgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNjA2NjMx
MjQ+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBU
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL2lPU01vdXNlU3VwcG9ydC5tbToKKyAgICAg
ICAgKGV2YWx1YXRlTWVkaWFRdWVyeSk6IEFkZGVkLgorICAgICAgICAoaU9TTW91c2VTdXBwb3J0
Lk1vdXNlSW5pdGlhbGx5RGlzY29ubmVjdGVkKTogQWRkZWQuCisgICAgICAgIChpT1NNb3VzZVN1
cHBvcnQuTW91c2VJbml0aWFsbHlDb25uZWN0ZWQpOiBBZGRlZC4KKyAgICAgICAgKGlPU01vdXNl
U3VwcG9ydC5Nb3VzZUxhdGVyRGlzY29ubmVjdGVkKTogQWRkZWQuCisgICAgICAgIChpT1NNb3Vz
ZVN1cHBvcnQuTW91c2VMYXRlckNvbm5lY3RlZCk6IEFkZGVkLgorICAgICAgICAoaU9TTW91c2VT
dXBwb3J0Lk1vdXNlQWx3YXlzQ29ubmVjdGVkKTogQWRkZWQuCisKIDIwMjAtMTAtMDEgIEFha2Fz
aCBKYWluICA8YWFrYXNoX2phaW5AYXBwbGUuY29tPgogCiAgICAgICAgIExpbWl0IG51bWJlciBv
ZiB0ZXN0cyB0byBsb2cgaW4gY2FzZSBvZiBsYXJnZSBudW1iZXIgb2YgQVBJIHRlc3QgZmFpbHVy
ZXMKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvaU9T
TW91c2VTdXBwb3J0Lm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9p
T1NNb3VzZVN1cHBvcnQubW0KaW5kZXggYzI0MzBiMjBlZjc3NmFlYTEzMDllOTMzOGQ2ZTJlYTBj
ZjUwYWExNi4uNWQ4NTdlMmVlZDFmYWZmZjkxMWFkNTc5MWNmMmJiNjJhZWI5NmZiMiAxMDA2NDQK
LS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9pT1NNb3VzZVN1cHBv
cnQubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9pT1NNb3Vz
ZVN1cHBvcnQubW0KQEAgLTMwMCw0ICszMDAsMTYzIEBAIFRFU1QoaU9TTW91c2VTdXBwb3J0LCBX
ZWJzaXRlTW91c2VFdmVudFBvbGljaWVzKQogCiAjZW5kaWYgLy8gRU5BQkxFKElPU19UT1VDSF9F
VkVOVFMpCiAKKyNpZiBIQVZFKFVJS0lUX1dJVEhfTU9VU0VfU1VQUE9SVCkgJiYgRU5BQkxFKFRP
VUNIX0VWRU5UUykKKworc3RhdGljIEJPT0wgZXZhbHVhdGVNZWRpYVF1ZXJ5KFJldGFpblB0cjxU
ZXN0V0tXZWJWaWV3PiYgd2ViVmlldywgTlNTdHJpbmcgKnF1ZXJ5KQoreworICAgIHJldHVybiBb
W3dlYlZpZXcgb2JqZWN0QnlFdmFsdWF0aW5nSmF2YVNjcmlwdDpbTlNTdHJpbmcgc3RyaW5nV2l0
aEZvcm1hdDpAIndpbmRvdy5tYXRjaE1lZGlhKFwiKCVAKVwiKS5tYXRjaGVzIiwgcXVlcnldXSBi
b29sVmFsdWVdOworfQorCisjaWYgUExBVEZPUk0oSU9TKQorCitAaW50ZXJmYWNlIFdLTW91c2VE
ZXZpY2VPYnNlcnZlcgorKyAoV0tNb3VzZURldmljZU9ic2VydmVyICopc2hhcmVkSW5zdGFuY2U7
CistICh2b2lkKV9zZXRIYXNNb3VzZURldmljZUZvclRlc3Rpbmc6KEJPT0wpaGFzTW91c2VEZXZp
Y2U7CitAZW5kCisKK1RFU1QoaU9TTW91c2VTdXBwb3J0LCBNb3VzZUluaXRpYWxseURpc2Nvbm5l
Y3RlZCkKK3sKKyAgICBbW05TQ2xhc3NGcm9tU3RyaW5nKEAiV0tNb3VzZURldmljZU9ic2VydmVy
Iikgc2hhcmVkSW5zdGFuY2VdIF9zZXRIYXNNb3VzZURldmljZUZvclRlc3Rpbmc6Tk9dOworCisg
ICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRo
RnJhbWU6TlNNYWtlUmVjdCgwLCAwLCA4MDAsIDYwMCldKTsKKworICAgIFt3ZWJWaWV3IHN5bmNo
cm9ub3VzbHlMb2FkSFRNTFN0cmluZzpAIiJdOworCisgICAgRVhQRUNUX0ZBTFNFKGV2YWx1YXRl
TWVkaWFRdWVyeSh3ZWJWaWV3LCBAImhvdmVyIikpOworICAgIEVYUEVDVF9UUlVFKGV2YWx1YXRl
TWVkaWFRdWVyeSh3ZWJWaWV3LCBAImhvdmVyOiBub25lIikpOworICAgIEVYUEVDVF9GQUxTRShl
dmFsdWF0ZU1lZGlhUXVlcnkod2ViVmlldywgQCJob3ZlcjogaG92ZXIiKSk7CisKKyAgICBFWFBF
Q1RfRkFMU0UoZXZhbHVhdGVNZWRpYVF1ZXJ5KHdlYlZpZXcsIEAiYW55LWhvdmVyIikpOworICAg
IEVYUEVDVF9UUlVFKGV2YWx1YXRlTWVkaWFRdWVyeSh3ZWJWaWV3LCBAImFueS1ob3Zlcjogbm9u
ZSIpKTsKKyAgICBFWFBFQ1RfRkFMU0UoZXZhbHVhdGVNZWRpYVF1ZXJ5KHdlYlZpZXcsIEAiYW55
LWhvdmVyOiBob3ZlciIpKTsKKworICAgIEVYUEVDVF9UUlVFKGV2YWx1YXRlTWVkaWFRdWVyeSh3
ZWJWaWV3LCBAInBvaW50ZXIiKSk7CisgICAgRVhQRUNUX0ZBTFNFKGV2YWx1YXRlTWVkaWFRdWVy
eSh3ZWJWaWV3LCBAInBvaW50ZXI6IG5vbmUiKSk7CisgICAgRVhQRUNUX1RSVUUoZXZhbHVhdGVN
ZWRpYVF1ZXJ5KHdlYlZpZXcsIEAicG9pbnRlcjogY29hcnNlIikpOworICAgIEVYUEVDVF9GQUxT
RShldmFsdWF0ZU1lZGlhUXVlcnkod2ViVmlldywgQCJwb2ludGVyOiBmaW5lIikpOworCisgICAg
RVhQRUNUX1RSVUUoZXZhbHVhdGVNZWRpYVF1ZXJ5KHdlYlZpZXcsIEAiYW55LXBvaW50ZXIiKSk7
CisgICAgRVhQRUNUX0ZBTFNFKGV2YWx1YXRlTWVkaWFRdWVyeSh3ZWJWaWV3LCBAImFueS1wb2lu
dGVyOiBub25lIikpOworICAgIEVYUEVDVF9UUlVFKGV2YWx1YXRlTWVkaWFRdWVyeSh3ZWJWaWV3
LCBAImFueS1wb2ludGVyOiBjb2Fyc2UiKSk7CisgICAgRVhQRUNUX0ZBTFNFKGV2YWx1YXRlTWVk
aWFRdWVyeSh3ZWJWaWV3LCBAImFueS1wb2ludGVyOiBmaW5lIikpOworfQorCitURVNUKGlPU01v
dXNlU3VwcG9ydCwgTW91c2VJbml0aWFsbHlDb25uZWN0ZWQpCit7CisgICAgW1tOU0NsYXNzRnJv
bVN0cmluZyhAIldLTW91c2VEZXZpY2VPYnNlcnZlciIpIHNoYXJlZEluc3RhbmNlXSBfc2V0SGFz
TW91c2VEZXZpY2VGb3JUZXN0aW5nOllFU107CisKKyAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5T
KFtbVGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU01ha2VSZWN0KDAsIDAsIDgw
MCwgNjAwKV0pOworCisgICAgW3dlYlZpZXcgc3luY2hyb25vdXNseUxvYWRIVE1MU3RyaW5nOkAi
Il07CisKKyAgICBFWFBFQ1RfRkFMU0UoZXZhbHVhdGVNZWRpYVF1ZXJ5KHdlYlZpZXcsIEAiaG92
ZXIiKSk7CisgICAgRVhQRUNUX1RSVUUoZXZhbHVhdGVNZWRpYVF1ZXJ5KHdlYlZpZXcsIEAiaG92
ZXI6IG5vbmUiKSk7CisgICAgRVhQRUNUX0ZBTFNFKGV2YWx1YXRlTWVkaWFRdWVyeSh3ZWJWaWV3
LCBAImhvdmVyOiBob3ZlciIpKTsKKworICAgIEVYUEVDVF9UUlVFKGV2YWx1YXRlTWVkaWFRdWVy
eSh3ZWJWaWV3LCBAImFueS1ob3ZlciIpKTsKKyAgICBFWFBFQ1RfRkFMU0UoZXZhbHVhdGVNZWRp
YVF1ZXJ5KHdlYlZpZXcsIEAiYW55LWhvdmVyOiBub25lIikpOworICAgIEVYUEVDVF9UUlVFKGV2
YWx1YXRlTWVkaWFRdWVyeSh3ZWJWaWV3LCBAImFueS1ob3ZlcjogaG92ZXIiKSk7CisKKyAgICBF
WFBFQ1RfVFJVRShldmFsdWF0ZU1lZGlhUXVlcnkod2ViVmlldywgQCJwb2ludGVyIikpOworICAg
IEVYUEVDVF9GQUxTRShldmFsdWF0ZU1lZGlhUXVlcnkod2ViVmlldywgQCJwb2ludGVyOiBub25l
IikpOworICAgIEVYUEVDVF9UUlVFKGV2YWx1YXRlTWVkaWFRdWVyeSh3ZWJWaWV3LCBAInBvaW50
ZXI6IGNvYXJzZSIpKTsKKyAgICBFWFBFQ1RfRkFMU0UoZXZhbHVhdGVNZWRpYVF1ZXJ5KHdlYlZp
ZXcsIEAicG9pbnRlcjogZmluZSIpKTsKKworICAgIEVYUEVDVF9UUlVFKGV2YWx1YXRlTWVkaWFR
dWVyeSh3ZWJWaWV3LCBAImFueS1wb2ludGVyIikpOworICAgIEVYUEVDVF9GQUxTRShldmFsdWF0
ZU1lZGlhUXVlcnkod2ViVmlldywgQCJhbnktcG9pbnRlcjogbm9uZSIpKTsKKyAgICBFWFBFQ1Rf
VFJVRShldmFsdWF0ZU1lZGlhUXVlcnkod2ViVmlldywgQCJhbnktcG9pbnRlcjogY29hcnNlIikp
OworICAgIEVYUEVDVF9UUlVFKGV2YWx1YXRlTWVkaWFRdWVyeSh3ZWJWaWV3LCBAImFueS1wb2lu
dGVyOiBmaW5lIikpOworfQorCitURVNUKGlPU01vdXNlU3VwcG9ydCwgTW91c2VMYXRlckRpc2Nv
bm5lY3RlZCkKK3sKKyAgICBbW05TQ2xhc3NGcm9tU3RyaW5nKEAiV0tNb3VzZURldmljZU9ic2Vy
dmVyIikgc2hhcmVkSW5zdGFuY2VdIF9zZXRIYXNNb3VzZURldmljZUZvclRlc3Rpbmc6WUVTXTsK
KworICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0
V2l0aEZyYW1lOk5TTWFrZVJlY3QoMCwgMCwgODAwLCA2MDApXSk7CisKKyAgICBbd2ViVmlldyBz
eW5jaHJvbm91c2x5TG9hZEhUTUxTdHJpbmc6QCIiXTsKKworICAgIFtbTlNDbGFzc0Zyb21TdHJp
bmcoQCJXS01vdXNlRGV2aWNlT2JzZXJ2ZXIiKSBzaGFyZWRJbnN0YW5jZV0gX3NldEhhc01vdXNl
RGV2aWNlRm9yVGVzdGluZzpOT107CisKKyAgICBFWFBFQ1RfRkFMU0UoZXZhbHVhdGVNZWRpYVF1
ZXJ5KHdlYlZpZXcsIEAiaG92ZXIiKSk7CisgICAgRVhQRUNUX1RSVUUoZXZhbHVhdGVNZWRpYVF1
ZXJ5KHdlYlZpZXcsIEAiaG92ZXI6IG5vbmUiKSk7CisgICAgRVhQRUNUX0ZBTFNFKGV2YWx1YXRl
TWVkaWFRdWVyeSh3ZWJWaWV3LCBAImhvdmVyOiBob3ZlciIpKTsKKworICAgIEVYUEVDVF9GQUxT
RShldmFsdWF0ZU1lZGlhUXVlcnkod2ViVmlldywgQCJhbnktaG92ZXIiKSk7CisgICAgRVhQRUNU
X1RSVUUoZXZhbHVhdGVNZWRpYVF1ZXJ5KHdlYlZpZXcsIEAiYW55LWhvdmVyOiBub25lIikpOwor
ICAgIEVYUEVDVF9GQUxTRShldmFsdWF0ZU1lZGlhUXVlcnkod2ViVmlldywgQCJhbnktaG92ZXI6
IGhvdmVyIikpOworCisgICAgRVhQRUNUX1RSVUUoZXZhbHVhdGVNZWRpYVF1ZXJ5KHdlYlZpZXcs
IEAicG9pbnRlciIpKTsKKyAgICBFWFBFQ1RfRkFMU0UoZXZhbHVhdGVNZWRpYVF1ZXJ5KHdlYlZp
ZXcsIEAicG9pbnRlcjogbm9uZSIpKTsKKyAgICBFWFBFQ1RfVFJVRShldmFsdWF0ZU1lZGlhUXVl
cnkod2ViVmlldywgQCJwb2ludGVyOiBjb2Fyc2UiKSk7CisgICAgRVhQRUNUX0ZBTFNFKGV2YWx1
YXRlTWVkaWFRdWVyeSh3ZWJWaWV3LCBAInBvaW50ZXI6IGZpbmUiKSk7CisKKyAgICBFWFBFQ1Rf
VFJVRShldmFsdWF0ZU1lZGlhUXVlcnkod2ViVmlldywgQCJhbnktcG9pbnRlciIpKTsKKyAgICBF
WFBFQ1RfRkFMU0UoZXZhbHVhdGVNZWRpYVF1ZXJ5KHdlYlZpZXcsIEAiYW55LXBvaW50ZXI6IG5v
bmUiKSk7CisgICAgRVhQRUNUX1RSVUUoZXZhbHVhdGVNZWRpYVF1ZXJ5KHdlYlZpZXcsIEAiYW55
LXBvaW50ZXI6IGNvYXJzZSIpKTsKKyAgICBFWFBFQ1RfRkFMU0UoZXZhbHVhdGVNZWRpYVF1ZXJ5
KHdlYlZpZXcsIEAiYW55LXBvaW50ZXI6IGZpbmUiKSk7Cit9CisKK1RFU1QoaU9TTW91c2VTdXBw
b3J0LCBNb3VzZUxhdGVyQ29ubmVjdGVkKQoreworICAgIFtbTlNDbGFzc0Zyb21TdHJpbmcoQCJX
S01vdXNlRGV2aWNlT2JzZXJ2ZXIiKSBzaGFyZWRJbnN0YW5jZV0gX3NldEhhc01vdXNlRGV2aWNl
Rm9yVGVzdGluZzpOT107CisKKyAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2Vi
VmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU01ha2VSZWN0KDAsIDAsIDgwMCwgNjAwKV0pOwor
CisgICAgW3dlYlZpZXcgc3luY2hyb25vdXNseUxvYWRIVE1MU3RyaW5nOkAiIl07CisKKyAgICBb
W05TQ2xhc3NGcm9tU3RyaW5nKEAiV0tNb3VzZURldmljZU9ic2VydmVyIikgc2hhcmVkSW5zdGFu
Y2VdIF9zZXRIYXNNb3VzZURldmljZUZvclRlc3Rpbmc6WUVTXTsKKworICAgIEVYUEVDVF9GQUxT
RShldmFsdWF0ZU1lZGlhUXVlcnkod2ViVmlldywgQCJob3ZlciIpKTsKKyAgICBFWFBFQ1RfVFJV
RShldmFsdWF0ZU1lZGlhUXVlcnkod2ViVmlldywgQCJob3Zlcjogbm9uZSIpKTsKKyAgICBFWFBF
Q1RfRkFMU0UoZXZhbHVhdGVNZWRpYVF1ZXJ5KHdlYlZpZXcsIEAiaG92ZXI6IGhvdmVyIikpOwor
CisgICAgRVhQRUNUX1RSVUUoZXZhbHVhdGVNZWRpYVF1ZXJ5KHdlYlZpZXcsIEAiYW55LWhvdmVy
IikpOworICAgIEVYUEVDVF9GQUxTRShldmFsdWF0ZU1lZGlhUXVlcnkod2ViVmlldywgQCJhbnkt
aG92ZXI6IG5vbmUiKSk7CisgICAgRVhQRUNUX1RSVUUoZXZhbHVhdGVNZWRpYVF1ZXJ5KHdlYlZp
ZXcsIEAiYW55LWhvdmVyOiBob3ZlciIpKTsKKworICAgIEVYUEVDVF9UUlVFKGV2YWx1YXRlTWVk
aWFRdWVyeSh3ZWJWaWV3LCBAInBvaW50ZXIiKSk7CisgICAgRVhQRUNUX0ZBTFNFKGV2YWx1YXRl
TWVkaWFRdWVyeSh3ZWJWaWV3LCBAInBvaW50ZXI6IG5vbmUiKSk7CisgICAgRVhQRUNUX1RSVUUo
ZXZhbHVhdGVNZWRpYVF1ZXJ5KHdlYlZpZXcsIEAicG9pbnRlcjogY29hcnNlIikpOworICAgIEVY
UEVDVF9GQUxTRShldmFsdWF0ZU1lZGlhUXVlcnkod2ViVmlldywgQCJwb2ludGVyOiBmaW5lIikp
OworCisgICAgRVhQRUNUX1RSVUUoZXZhbHVhdGVNZWRpYVF1ZXJ5KHdlYlZpZXcsIEAiYW55LXBv
aW50ZXIiKSk7CisgICAgRVhQRUNUX0ZBTFNFKGV2YWx1YXRlTWVkaWFRdWVyeSh3ZWJWaWV3LCBA
ImFueS1wb2ludGVyOiBub25lIikpOworICAgIEVYUEVDVF9UUlVFKGV2YWx1YXRlTWVkaWFRdWVy
eSh3ZWJWaWV3LCBAImFueS1wb2ludGVyOiBjb2Fyc2UiKSk7CisgICAgRVhQRUNUX1RSVUUoZXZh
bHVhdGVNZWRpYVF1ZXJ5KHdlYlZpZXcsIEAiYW55LXBvaW50ZXI6IGZpbmUiKSk7Cit9CisKKyNl
bmRpZiAvLyBQTEFURk9STShJT1MpCisKKyNpZiBQTEFURk9STShNQUNDQVRBTFlTVCkKKworVEVT
VChpT1NNb3VzZVN1cHBvcnQsIE1vdXNlQWx3YXlzQ29ubmVjdGVkKQoreworICAgIGF1dG8gd2Vi
VmlldyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5TTWFr
ZVJlY3QoMCwgMCwgODAwLCA2MDApXSk7CisKKyAgICBbd2ViVmlldyBzeW5jaHJvbm91c2x5TG9h
ZEhUTUxTdHJpbmc6QCIiXTsKKworICAgIEVYUEVDVF9GQUxTRShldmFsdWF0ZU1lZGlhUXVlcnko
d2ViVmlldywgQCJob3ZlciIpKTsKKyAgICBFWFBFQ1RfVFJVRShldmFsdWF0ZU1lZGlhUXVlcnko
d2ViVmlldywgQCJob3Zlcjogbm9uZSIpKTsKKyAgICBFWFBFQ1RfRkFMU0UoZXZhbHVhdGVNZWRp
YVF1ZXJ5KHdlYlZpZXcsIEAiaG92ZXI6IGhvdmVyIikpOworCisgICAgRVhQRUNUX1RSVUUoZXZh
bHVhdGVNZWRpYVF1ZXJ5KHdlYlZpZXcsIEAiYW55LWhvdmVyIikpOworICAgIEVYUEVDVF9GQUxT
RShldmFsdWF0ZU1lZGlhUXVlcnkod2ViVmlldywgQCJhbnktaG92ZXI6IG5vbmUiKSk7CisgICAg
RVhQRUNUX1RSVUUoZXZhbHVhdGVNZWRpYVF1ZXJ5KHdlYlZpZXcsIEAiYW55LWhvdmVyOiBob3Zl
ciIpKTsKKworICAgIEVYUEVDVF9UUlVFKGV2YWx1YXRlTWVkaWFRdWVyeSh3ZWJWaWV3LCBAInBv
aW50ZXIiKSk7CisgICAgRVhQRUNUX0ZBTFNFKGV2YWx1YXRlTWVkaWFRdWVyeSh3ZWJWaWV3LCBA
InBvaW50ZXI6IG5vbmUiKSk7CisgICAgRVhQRUNUX1RSVUUoZXZhbHVhdGVNZWRpYVF1ZXJ5KHdl
YlZpZXcsIEAicG9pbnRlcjogY29hcnNlIikpOworICAgIEVYUEVDVF9GQUxTRShldmFsdWF0ZU1l
ZGlhUXVlcnkod2ViVmlldywgQCJwb2ludGVyOiBmaW5lIikpOworCisgICAgRVhQRUNUX1RSVUUo
ZXZhbHVhdGVNZWRpYVF1ZXJ5KHdlYlZpZXcsIEAiYW55LXBvaW50ZXIiKSk7CisgICAgRVhQRUNU
X0ZBTFNFKGV2YWx1YXRlTWVkaWFRdWVyeSh3ZWJWaWV3LCBAImFueS1wb2ludGVyOiBub25lIikp
OworICAgIEVYUEVDVF9UUlVFKGV2YWx1YXRlTWVkaWFRdWVyeSh3ZWJWaWV3LCBAImFueS1wb2lu
dGVyOiBjb2Fyc2UiKSk7CisgICAgRVhQRUNUX1RSVUUoZXZhbHVhdGVNZWRpYVF1ZXJ5KHdlYlZp
ZXcsIEAiYW55LXBvaW50ZXI6IGZpbmUiKSk7Cit9CisKKyNlbmRpZiAvLyBQTEFURk9STShNQUND
QVRBTFlTVCkKKworI2VuZGlmIC8vIEhBVkUoVUlLSVRfV0lUSF9NT1VTRV9TVVBQT1JUKSAmJiBF
TkFCTEUoVE9VQ0hfRVZFTlRTKQorCiAjZW5kaWYgLy8gUExBVEZPUk0oSU9TKSB8fCBQTEFURk9S
TShNQUNDQVRBTFlTVCkKZGlmZiAtLWdpdCBhL1dlYktpdExpYnJhcmllcy9DaGFuZ2VMb2cgYi9X
ZWJLaXRMaWJyYXJpZXMvQ2hhbmdlTG9nCmluZGV4IDE2MjQ0NjQ4ZDJhYTMzYWQ1NzJhZGIzYzM3
NGEzMWM3NDcwYzE1NzQuLjFlNWFiYTUyZTFjNjFiMzQ4MjJjZDg3NDBlNmNjMmI3ZDI5MjY3YmQg
MTAwNjQ0Ci0tLSBhL1dlYktpdExpYnJhcmllcy9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0TGlicmFy
aWVzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDIwLTA5LTMwICBEZXZpbiBSb3Vzc28g
IDxkcm91c3NvQGFwcGxlLmNvbT4KKworICAgICAgICBDU1MgaG92ZXIgYW5kICJwb2ludGVyOiBm
aW5lIiBtZWRpYSBxdWVyaWVzIGRvIG5vdCBldmFsdWF0ZSB0byB0cnVlIHdpdGggaU9TIDEzLjQg
bW91c2Ugc3VwcG9ydAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MjA5MjkyCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS82MDY2MzEyND4KKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYktpdFByaXZhdGVG
cmFtZXdvcmtTdHVicy9pT1MvMTMvQmFja0JvYXJkU2VydmljZXMuZnJhbWV3b3JrL0JhY2tCb2Fy
ZFNlcnZpY2VzLnRiZDogQWRkZWQuCisgICAgICAgICogV2ViS2l0UHJpdmF0ZUZyYW1ld29ya1N0
dWJzL2lPUy8xNC9CYWNrQm9hcmRTZXJ2aWNlcy5mcmFtZXdvcmsvQmFja0JvYXJkU2VydmljZXMu
dGJkOiBBZGRlZC4KKyAgICAgICAgVXNlIGBCYWNrQm9hcmRTZXJ2aWNlc2AgdG8gbGlzdGVuIGZv
ciBtb3VzZSBkZXZpY2VzIGNoYW5nZXMuCisKIDIwMjAtMDctMjYgIFdlbnNvbiBIc2llaCAgPHdl
bnNvbl9oc2llaEBhcHBsZS5jb20+CiAKICAgICAgICAgUkVHUkVTU0lPTiAocjI2NDY5MCk6IFsg
aU9TIHdrMiBdIGVkaXRpbmcvc2VsZWN0aW9uL3NoaWZ0LWNsaWNrLWluY2x1ZGVzLWV4aXN0aW5n
LXNlbGVjdGlvbi5odG1sIGlzIGEgZmxha3kgZmFpbHVyZQpkaWZmIC0tZ2l0IGEvV2ViS2l0TGli
cmFyaWVzL1dlYktpdFByaXZhdGVGcmFtZXdvcmtTdHVicy9pT1MvMTMvQmFja0JvYXJkU2Vydmlj
ZXMuZnJhbWV3b3JrL0JhY2tCb2FyZFNlcnZpY2VzLnRiZCBiL1dlYktpdExpYnJhcmllcy9XZWJL
aXRQcml2YXRlRnJhbWV3b3JrU3R1YnMvaU9TLzEzL0JhY2tCb2FyZFNlcnZpY2VzLmZyYW1ld29y
ay9CYWNrQm9hcmRTZXJ2aWNlcy50YmQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDAyMzQ4YmQzZWUwZTEzM2EzZDk1
OGZiZGVjNTdmZjdmZGIzYjdmNwotLS0gL2Rldi9udWxsCisrKyBiL1dlYktpdExpYnJhcmllcy9X
ZWJLaXRQcml2YXRlRnJhbWV3b3JrU3R1YnMvaU9TLzEzL0JhY2tCb2FyZFNlcnZpY2VzLmZyYW1l
d29yay9CYWNrQm9hcmRTZXJ2aWNlcy50YmQKQEAgLTAsMCArMSw5IEBACistLS0gIXRhcGktdGJk
LXYzCithcmNoczogICAgICAgICAgIFsgeDg2XzY0LCBhcm02NCwgYXJtNjRlIF0KK2luc3RhbGwt
bmFtZTogICAgJy9TeXN0ZW0vTGlicmFyeS9Qcml2YXRlRnJhbWV3b3Jrcy9CYWNrQm9hcmRTZXJ2
aWNlcy5mcmFtZXdvcmsvQmFja0JvYXJkU2VydmljZXMnCitvYmpjLWNvbnN0cmFpbnQ6IG5vbmUK
K3BsYXRmb3JtOiBpb3MKK2V4cG9ydHM6CisgIC0gYXJjaHM6ICAgICAgICAgICBbIHg4Nl82NCwg
YXJtNjQsIGFybTY0ZSBdCisgICAgb2JqYy1jbGFzc2VzOiAgICBbIEJLU01vdXNlUG9pbnRlckRl
dmljZSwgQktTTW91c2VQb2ludGVyU2VydmljZSBdCisuLi4KZGlmZiAtLWdpdCBhL1dlYktpdExp
YnJhcmllcy9XZWJLaXRQcml2YXRlRnJhbWV3b3JrU3R1YnMvaU9TLzE0L0JhY2tCb2FyZFNlcnZp
Y2VzLmZyYW1ld29yay9CYWNrQm9hcmRTZXJ2aWNlcy50YmQgYi9XZWJLaXRMaWJyYXJpZXMvV2Vi
S2l0UHJpdmF0ZUZyYW1ld29ya1N0dWJzL2lPUy8xNC9CYWNrQm9hcmRTZXJ2aWNlcy5mcmFtZXdv
cmsvQmFja0JvYXJkU2VydmljZXMudGJkCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjAwMjM0OGJkM2VlMGUxMzNhM2Q5
NThmYmRlYzU3ZmY3ZmRiM2I3ZjcKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJLaXRMaWJyYXJpZXMv
V2ViS2l0UHJpdmF0ZUZyYW1ld29ya1N0dWJzL2lPUy8xNC9CYWNrQm9hcmRTZXJ2aWNlcy5mcmFt
ZXdvcmsvQmFja0JvYXJkU2VydmljZXMudGJkCkBAIC0wLDAgKzEsOSBAQAorLS0tICF0YXBpLXRi
ZC12MworYXJjaHM6ICAgICAgICAgICBbIHg4Nl82NCwgYXJtNjQsIGFybTY0ZSBdCitpbnN0YWxs
LW5hbWU6ICAgICcvU3lzdGVtL0xpYnJhcnkvUHJpdmF0ZUZyYW1ld29ya3MvQmFja0JvYXJkU2Vy
dmljZXMuZnJhbWV3b3JrL0JhY2tCb2FyZFNlcnZpY2VzJworb2JqYy1jb25zdHJhaW50OiBub25l
CitwbGF0Zm9ybTogaW9zCitleHBvcnRzOgorICAtIGFyY2hzOiAgICAgICAgICAgWyB4ODZfNjQs
IGFybTY0LCBhcm02NGUgXQorICAgIG9iamMtY2xhc3NlczogICAgWyBCS1NNb3VzZVBvaW50ZXJE
ZXZpY2UsIEJLU01vdXNlUG9pbnRlclNlcnZpY2UgXQorLi4uCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>410607</attachid>
            <date>2020-10-05 21:13:34 -0700</date>
            <delta_ts>2020-10-06 10:30:46 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-209292-20201005211333.patch</filename>
            <type>text/plain</type>
            <size>79966</size>
            <attacher name="Devin Rousso">hi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA5MjQ3ZTM1MWQ4MmM4NzRjODFiOTU0NzUwMDEzMDFlYzMwYTkzYTZkLi5m
NmQ4NWVjN2Q0Njg3NDNjZjg1ZjcxYjA1NmE1NzJiOTZkZTMyOWY5IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsNDAgQEAKKzIwMjAtMTAtMDUgIERldmluIFJvdXNzbyAgPGRyb3Vzc29AYXBwbGUuY29t
PgorCisgICAgICAgIENTUyBob3ZlciBhbmQgInBvaW50ZXI6IGZpbmUiIG1lZGlhIHF1ZXJpZXMg
ZG8gbm90IGV2YWx1YXRlIHRvIHRydWUgd2l0aCBpT1MgMTMuNCBtb3VzZSBzdXBwb3J0CisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDkyOTIKKyAgICAg
ICAgPHJkYXI6Ly9wcm9ibGVtLzYwNjYzMTI0PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIE9uIGlPUywgdGhlIHByaW1hcnkgcG9pbnRlciB3aWxsIGFs
d2F5cyBiZSB0b3VjaCBpbnB1dCwgc28gdGhlIGBob3ZlcmAvYHBvaW50ZXJgIG1lZGlhIHF1ZXJ5
CisgICAgICAgIHNob3VsZCBuZXZlciBjaGFuZ2UuIElmIGEgbW91c2UgaXMgY29ubmVjdGVkLCBo
b3dldmVyLCBgYW55LWhvdmVyYC9gYW55LXBvaW50ZXJgIHNob3VsZAorICAgICAgICBjaGFuZ2Ug
YXMgbm93IHRoZXJlIGlzIGF0IGxlYXN0IG9uZSBkZXZpY2UgdGhhdCBzdXBwb3J0cyBgaG92ZXJg
L2BmaW5lYC4gTm90ZSB0aGF0IGluIHRoZQorICAgICAgICBjYXNlIG9mIGBhbnktcG9pbnRlcmAg
dGhpcyBtZWFucyB0aGF0IGJvdGggYGNvYXJzZWAgYW5kIGBmaW5lYCB3aWxsIGFwcGx5LiBDYXRh
bHlzdCBhc3N1bWVzCisgICAgICAgIHRoYXQgdGhlcmUgaXMgYWx3YXlzIGEgbW91c2UgY29ubmVj
dGVkLgorCisgICAgICAgIFNwZWM6IGh0dHBzOi8vZHJhZnRzLmNzc3dnLm9yZy9tZWRpYXF1ZXJp
ZXMtNC8jYW55LWlucHV0CisKKyAgICAgICAgKiBjc3MvTWVkaWFRdWVyeUV2YWx1YXRvci5jcHA6
CisgICAgICAgIChXZWJDb3JlOjphbnlIb3ZlckV2YWx1YXRlKToKKyAgICAgICAgKFdlYkNvcmU6
OmFueVBvaW50ZXJFdmFsdWF0ZSk6CisKKyAgICAgICAgKiBwYWdlL0Nocm9tZUNsaWVudC5oOgor
ICAgICAgICAqIGxvYWRlci9FbXB0eUNsaWVudHMuaDoKKyAgICAgICAgKFdlYkNvcmU6OkVtcHR5
Q2hyb21lQ2xpZW50Ojpob3ZlclN1cHBvcnRlZEJ5QW55QXZhaWxhYmxlUG9pbnRpbmdEZXZpY2Ug
Y29uc3QpOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkVtcHR5Q2hyb21lQ2xpZW50Ojpwb2lu
dGVyQ2hhcmFjdGVyaXN0aWNzT2ZBbGxBdmFpbGFibGVQb2ludGluZ0RldmljZXMgY29uc3QpOiBB
ZGRlZC4KKyAgICAgICAgUHJvdmlkZSBhIHdheSBmb3IgV2ViQ29yZSB0byBnZXQgdGhlIGN1cnJl
bnQgc3RhdGUgb2Ygd2hldGhlciB0aGVyZSBhcmUgYW55IG1vdXNlIGRldmljZXMuCisgICAgICAg
IFJlZmFjdG9yIGxvZ2ljIGluIGBhbnlIb3ZlckV2YWx1YXRlYCBhbmQgYGFueVBvaW50ZXJFdmFs
dWF0ZWAgdG8gbW92ZSBwbGF0Zm9ybSBjb2RlIGludG8gdGhlCisgICAgICAgIHJlc3BlY3RpdmUg
YFdlYktpdDo6V2ViUGFnZWAgZmlsZS4KKworICAgICAgICAqIHBhZ2UvUG9pbnRlckNoYXJhY3Rl
cmlzdGljcy5oOiBBZGRlZC4KKyAgICAgICAgRW51bSBmb3IgYENvYXJzZWAgYW5kIGBGaW5lYC4K
KworICAgICAgICAqIHBsYXRmb3JtL1BsYXRmb3JtU2NyZWVuLmg6CisgICAgICAgIEV4cG9ydCBh
ZGRpdGlvbmFsIGZ1bmN0aW9ucyBmb3IgdXNlIGluIFdlYktpdC4KKworICAgICAgICAqIEhlYWRl
cnMuY21ha2U6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgor
CiAyMDIwLTEwLTA1ICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgogCiAg
ICAgICAgIENocm9tZUNsaWVudDo6bmVlZHNJbW1lZGlhdGVSZW5kZXJpbmdVcGRhdGUoKSBvbmx5
IGV4aXN0aW5nIHRvIHdvcmsgYXJvdW5kIGEgV2ViS2l0MSBidWcKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggZDdlYjRl
OWNlNmNhYmI3OGUzNGMzNmJkNWNmN2JmYjAxYmRmZmVkNS4uZjdiMDEyNmExMTFhZWM0Nzc4ZTQ3
MmNjZTllMzRhNzRlMDY3YzNhMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cK
KysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSw5NSBAQAorMjAyMC0xMC0w
NSAgRGV2aW4gUm91c3NvICA8ZHJvdXNzb0BhcHBsZS5jb20+CisKKyAgICAgICAgQ1NTIGhvdmVy
IGFuZCAicG9pbnRlcjogZmluZSIgbWVkaWEgcXVlcmllcyBkbyBub3QgZXZhbHVhdGUgdG8gdHJ1
ZSB3aXRoIGlPUyAxMy40IG1vdXNlIHN1cHBvcnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTIwOTI5MgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNjA2
NjMxMjQ+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
T24gaU9TLCB0aGUgcHJpbWFyeSBwb2ludGVyIHdpbGwgYWx3YXlzIGJlIHRvdWNoIGlucHV0LCBz
byB0aGUgYGhvdmVyYC9gcG9pbnRlcmAgbWVkaWEgcXVlcnkKKyAgICAgICAgc2hvdWxkIG5ldmVy
IGNoYW5nZS4gSWYgYSBtb3VzZSBpcyBjb25uZWN0ZWQsIGhvd2V2ZXIsIGBhbnktaG92ZXJgL2Bh
bnktcG9pbnRlcmAgc2hvdWxkCisgICAgICAgIGNoYW5nZSBhcyBub3cgdGhlcmUgaXMgYXQgbGVh
c3Qgb25lIGRldmljZSB0aGF0IHN1cHBvcnRzIGBob3ZlcmAvYGZpbmVgLiBOb3RlIHRoYXQgaW4g
dGhlCisgICAgICAgIGNhc2Ugb2YgYGFueS1wb2ludGVyYCB0aGlzIG1lYW5zIHRoYXQgYm90aCBg
Y29hcnNlYCBhbmQgYGZpbmVgIHdpbGwgYXBwbHkuIENhdGFseXN0IGFzc3VtZXMKKyAgICAgICAg
dGhhdCB0aGVyZSBpcyBhbHdheXMgYSBtb3VzZSBjb25uZWN0ZWQuCisKKyAgICAgICAgU3BlYzog
aHR0cHM6Ly9kcmFmdHMuY3Nzd2cub3JnL21lZGlhcXVlcmllcy00LyNhbnktaW5wdXQKKworICAg
ICAgICAqIFVJUHJvY2Vzcy9pb3MvV0tNb3VzZURldmljZU9ic2VydmVyLmg6IEFkZGVkLgorICAg
ICAgICAqIFVJUHJvY2Vzcy9pb3MvV0tNb3VzZURldmljZU9ic2VydmVyLm1tOiBBZGRlZC4KKyAg
ICAgICAgKCtbV0tNb3VzZURldmljZU9ic2VydmVyIHNoYXJlZEluc3RhbmNlXSk6CisgICAgICAg
ICgtW1dLTW91c2VEZXZpY2VPYnNlcnZlciBkZWFsbG9jXSk6CisgICAgICAgICgtW1dLTW91c2VE
ZXZpY2VPYnNlcnZlciBzdGFydF0pOgorICAgICAgICAoLVtXS01vdXNlRGV2aWNlT2JzZXJ2ZXIg
c3RvcF0pOgorICAgICAgICAoLVtXS01vdXNlRGV2aWNlT2JzZXJ2ZXIgbW91c2VQb2ludGVyRGV2
aWNlc0RpZENoYW5nZTpdKToKKyAgICAgICAgKC1bV0tNb3VzZURldmljZU9ic2VydmVyIF9zZXRI
YXNNb3VzZURldmljZUZvclRlc3Rpbmc6XSk6CisgICAgICAgIFVzZSBgQmFja0JvYXJkU2Vydmlj
ZXNgIHRvIGxpc3RlbiBmb3IgbW91c2UgZGV2aWNlcyBjaGFuZ2VzIGFuZCBub3RpZnkgYWxsIFdl
YlByb2Nlc3MuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5Lmg6CisgICAg
ICAgICogVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6Oldl
YlByb2Nlc3NQcm94eTo6V2ViUHJvY2Vzc1Byb3h5KToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJv
Y2Vzc1Byb3h5OjpwbGF0Zm9ybUluaXRpYWxpemUpOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6
V2ViUHJvY2Vzc1Byb3h5Ojp+V2ViUHJvY2Vzc1Byb3h5KToKKyAgICAgICAgKFdlYktpdDo6V2Vi
UHJvY2Vzc1Byb3h5OjpwbGF0Zm9ybURlc3Ryb3kpOiBBZGRlZC4KKyAgICAgICAgKiBVSVByb2Nl
c3MvaW9zL1dlYlByb2Nlc3NQcm94eUlPUy5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vz
c1Byb3h5OjpwbGF0Zm9ybUluaXRpYWxpemUpOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6V2Vi
UHJvY2Vzc1Byb3h5OjpwbGF0Zm9ybURlc3Ryb3kpOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6
V2ViUHJvY2Vzc1Byb3h5Ojpub3RpZnlIYXNNb3VzZURldmljZUNoYW5nZWQpOiBBZGRlZC4KKyAg
ICAgICAgVGVsbCB0aGUgc2hhcmVkIGBXS01vdXNlRGV2aWNlT2JzZXJ2ZXJgIHRvIHN0YXJ0IGxp
c3RlbmluZyBmb3IgbW91c2UgZGV2aWNlIGNoYW5nZXMgd2hlbgorICAgICAgICBjcmVhdGluZyB0
aGUgV2ViUHJvY2VzcyBzbyB0aGF0IHRoZSBzaGFyZWQgYFdLTW91c2VEZXZpY2VPYnNlcnZlcmAg
a25vd3MgdG8gbm90aWZ5IGFsbAorICAgICAgICBpbnN0YW5jZXMgd2hlbiBtb3VzZSBkZXZpY2Vz
IGNoYW5nZS4gTWFrZSBgYWxsUHJvY2Vzc2VzYCBpbnRvIGEgYHByaXZhdGUgc3RhdGljYCBtZW1i
ZXIKKyAgICAgICAgZnVuY3Rpb24gc28gdGhhdCBpdCBjYW4gYWxzbyBiZSB1c2VkIGluIGBVSVBy
b2Nlc3MvaW9zL1dlYlByb2Nlc3NQcm94eUlPUy5tbWAuCisKKyAgICAgICAgKiBTaGFyZWQvV2Vi
UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oOgorICAgICAgICAqIFNoYXJlZC9XZWJQcm9jZXNz
Q3JlYXRpb25QYXJhbWV0ZXJzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc0NyZWF0
aW9uUGFyYW1ldGVyczo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vz
c0NyZWF0aW9uUGFyYW1ldGVyczo6ZGVjb2RlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2Ev
V2ViUHJvY2Vzc1Bvb2xDb2NvYS5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Bvb2w6
OnBsYXRmb3JtSW5pdGlhbGl6ZVdlYlByb2Nlc3MpOgorICAgICAgICBVc2UgdGhlIGN1cnJlbnQg
c3RhdGUgb2YgdGhlIHNoYXJlZCBgV0tNb3VzZURldmljZU9ic2VydmVyYCB3aGVuIGNyZWF0aW5n
IFdlYlByb2Nlc3MgaW5zdGVhZAorICAgICAgICBvZiBzZW5kaW5nIGEgYFNldEhhc01vdXNlRGV2
aWNlYCBtZXNzYWdlIGltbWVkaWF0ZWx5IGFmdGVyIHRoZSBXZWJQcm9jZXNzIGlzIGNyZWF0ZWQu
CisKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlByb2Nlc3MubWVzc2FnZXMuaW46CisgICAgICAg
ICogV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmg6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6
Omhhc01vdXNlRGV2aWNlIGNvbnN0KTogQWRkZWQuCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQ
cm9jZXNzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6aW5pdGlhbGl6ZVdlYlBy
b2Nlc3MpOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjpzZXRIYXNNb3VzZURldmljZSk6
IEFkZGVkLgorICAgICAgICBVcGRhdGUgc3R5bGUgKGluY2x1ZGluZyBgYW55LWhvdmVyYCBhbmQg
YGFueS1wb2ludGVyYCkgd2hlbmV2ZXIgbW91c2UgZGV2aWNlcyBjaGFuZ2UuCisKKyAgICAgICAg
KiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oOgorICAgICAgICAq
IFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcDoKKyAgICAgICAg
KFdlYktpdDo6V2ViQ2hyb21lQ2xpZW50Ojpob3ZlclN1cHBvcnRlZEJ5QW55QXZhaWxhYmxlUG9p
bnRpbmdEZXZpY2UgY29uc3QpOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViQ2hyb21lQ2xp
ZW50Ojpwb2ludGVyQ2hhcmFjdGVyaXN0aWNzT2ZBbGxBdmFpbGFibGVQb2ludGluZ0RldmljZXMg
Y29uc3QpOiBBZGRlZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oOgor
ICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9ndGsvV2ViUGFnZUd0ay5jcHA6CisgICAgICAg
IChXZWJLaXQ6OldlYlBhZ2U6OmhvdmVyU3VwcG9ydGVkQnlBbnlBdmFpbGFibGVQb2ludGluZ0Rl
dmljZSBjb25zdCk6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpwb2ludGVyQ2hh
cmFjdGVyaXN0aWNzT2ZBbGxBdmFpbGFibGVQb2ludGluZ0RldmljZXMgY29uc3QpOiBBZGRlZC4K
KyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW06CisgICAgICAg
IChXZWJLaXQ6Omhhc01vdXNlRGV2aWNlKTogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OldlYlBh
Z2U6OmhvdmVyU3VwcG9ydGVkQnlBbnlBdmFpbGFibGVQb2ludGluZ0RldmljZSBjb25zdCk6IEFk
ZGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpwb2ludGVyQ2hhcmFjdGVyaXN0aWNzT2ZB
bGxBdmFpbGFibGVQb2ludGluZ0RldmljZXMgY29uc3QpOiBBZGRlZC4KKyAgICAgICAgKiBXZWJQ
cm9jZXNzL1dlYlBhZ2UvbWFjL1dlYlBhZ2VNYWMubW06CisgICAgICAgIChXZWJLaXQ6OldlYlBh
Z2U6OmhvdmVyU3VwcG9ydGVkQnlBbnlBdmFpbGFibGVQb2ludGluZ0RldmljZSBjb25zdCk6IEFk
ZGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpwb2ludGVyQ2hhcmFjdGVyaXN0aWNzT2ZB
bGxBdmFpbGFibGVQb2ludGluZ0RldmljZXMgY29uc3QpOiBBZGRlZC4KKyAgICAgICAgKiBXZWJQ
cm9jZXNzL1dlYlBhZ2UvcGxheXN0YXRpb24vV2ViUGFnZVBsYXlTdGF0aW9uLmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6V2ViUGFnZTo6aG92ZXJTdXBwb3J0ZWRCeUFueUF2YWlsYWJsZVBvaW50aW5n
RGV2aWNlIGNvbnN0KTogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OnBvaW50ZXJD
aGFyYWN0ZXJpc3RpY3NPZkFsbEF2YWlsYWJsZVBvaW50aW5nRGV2aWNlcyBjb25zdCk6IEFkZGVk
LgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS93aW4vV2ViUGFnZVdpbi5jcHA6CisgICAg
ICAgIChXZWJLaXQ6OldlYlBhZ2U6OmhvdmVyU3VwcG9ydGVkQnlBbnlBdmFpbGFibGVQb2ludGlu
Z0RldmljZSBjb25zdCk6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpwb2ludGVy
Q2hhcmFjdGVyaXN0aWNzT2ZBbGxBdmFpbGFibGVQb2ludGluZ0RldmljZXMgY29uc3QpOiBBZGRl
ZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2Uvd3BlL1dlYlBhZ2VXUEUuY3BwOgorICAg
ICAgICAoV2ViS2l0OjpXZWJQYWdlOjpob3ZlclN1cHBvcnRlZEJ5QW55QXZhaWxhYmxlUG9pbnRp
bmdEZXZpY2UgY29uc3QpOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6cG9pbnRl
ckNoYXJhY3RlcmlzdGljc09mQWxsQXZhaWxhYmxlUG9pbnRpbmdEZXZpY2VzIGNvbnN0KTogQWRk
ZWQuCisgICAgICAgIFByb3ZpZGUgYSB3YXkgZm9yIFdlYkNvcmUgdG8gZ2V0IHRoZSBjdXJyZW50
IHN0YXRlIG9mIHdoZXRoZXIgdGhlcmUgYXJlIGFueSBtb3VzZSBkZXZpY2VzLgorICAgICAgICBS
ZWZhY3RvciBsb2dpYyBpbiBgV2ViQ29yZTo6YW55SG92ZXJFdmFsdWF0ZWAgYW5kIGBXZWJDb3Jl
OjphbnlQb2ludGVyRXZhbHVhdGVgIHRvIG1vdmUKKyAgICAgICAgcGxhdGZvcm0gY29kZSBpbnRv
IHRoZSByZXNwZWN0aXZlIGBXZWJQYWdlYCBmaWxlLgorCisgICAgICAgICogQ29uZmlndXJhdGlv
bnMvV2ViS2l0LnhjY29uZmlnOgorICAgICAgICAqIFBsYXRmb3JtL3NwaS9pb3MvQmFja0JvYXJk
U2VydmljZXNTUEkuaDoKKyAgICAgICAgKiBQbGF0Zm9ybS9zcGkvaW9zL0Jhc2VCb2FyZFNQSS5o
OiBBZGRlZC4KKyAgICAgICAgKiBTb3VyY2VzQ29jb2EudHh0OgorICAgICAgICAqIFdlYktpdC54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorCiAyMDIwLTEwLTA1ICBCcmFkeSBFaWRzb24gIDxi
ZWlkc29uQGFwcGxlLmNvbT4KIAogICAgICAgICBDaGFuZ2UgYSBQREYgUkVMRUFTRV9BU1NFUlQg
dG8gYW4gZWFybHkgcmV0dXJuLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9pb3Mv
Q2hhbmdlTG9nIGIvU291cmNlL1dlYktpdExlZ2FjeS9pb3MvQ2hhbmdlTG9nCmluZGV4IDEyZTY1
NWIxZWNkZDVkNDcwZjNlYTQwZmFjNzgzNWZlMWY1N2ZiZmMuLjE5YWJmODY3ZTY1ZmZmNTVlYzFm
OGRlMWU0MWQ4YzE4NjI2NmM0MzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvaW9z
L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L2lvcy9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNiBAQAorMjAyMC0xMC0wNSAgRGV2aW4gUm91c3NvICA8ZHJvdXNzb0BhcHBsZS5jb20+
CisKKyAgICAgICAgQ1NTIGhvdmVyIGFuZCAicG9pbnRlcjogZmluZSIgbWVkaWEgcXVlcmllcyBk
byBub3QgZXZhbHVhdGUgdG8gdHJ1ZSB3aXRoIGlPUyAxMy40IG1vdXNlIHN1cHBvcnQKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwOTI5MgorICAgICAg
ICA8cmRhcjovL3Byb2JsZW0vNjA2NjMxMjQ+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnRJT1Mu
aDoKKyAgICAgICAgKFdlYkNocm9tZUNsaWVudElPUzo6aG92ZXJTdXBwb3J0ZWRCeUFueUF2YWls
YWJsZVBvaW50aW5nRGV2aWNlIGNvbnN0KTogQWRkZWQuCisgICAgICAgIChXZWJDaHJvbWVDbGll
bnRJT1M6OnBvaW50ZXJDaGFyYWN0ZXJpc3RpY3NPZkFsbEF2YWlsYWJsZVBvaW50aW5nRGV2aWNl
cyBjb25zdCk6IEFkZGVkLgorICAgICAgICBNb3VzZSBkZXZpY2VzIGFyZSBub3Qgc3VwcG9ydGVk
LgorCiAyMDIwLTA5LTIwICBEYXJpbiBBZGxlciAgPGRhcmluQGFwcGxlLmNvbT4KIAogICAgICAg
ICBOZXh0IHN0ZXAgdG93YXJkcyBlbGltaW5hdGluZyBkZXByZWNhdGVkIGxlZ2FjeSBwb3NpdGlv
bnMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZyBiL1NvdXJj
ZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZwppbmRleCAyYWRkOWQxMGNjNzU1Yjg0NGVjMjU3
MzRhOWFkZWFiNzg0Yzg5NDQ1Li4wMzdhODg5YjI1MjQzZjgwNjdkMjdkODNiOTI4MDkxZmM4NzEw
OWNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKKysrIGIv
U291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMjAt
MTAtMDUgIERldmluIFJvdXNzbyAgPGRyb3Vzc29AYXBwbGUuY29tPgorCisgICAgICAgIENTUyBo
b3ZlciBhbmQgInBvaW50ZXI6IGZpbmUiIG1lZGlhIHF1ZXJpZXMgZG8gbm90IGV2YWx1YXRlIHRv
IHRydWUgd2l0aCBpT1MgMTMuNCBtb3VzZSBzdXBwb3J0CisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDkyOTIKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVt
LzYwNjYzMTI0PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgICogV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lmg6CisgICAgICAgIChXZWJDaHJv
bWVDbGllbnQ6OmhvdmVyU3VwcG9ydGVkQnlBbnlBdmFpbGFibGVQb2ludGluZ0RldmljZSBjb25z
dCk6IEFkZGVkLgorICAgICAgICAoV2ViQ2hyb21lQ2xpZW50Ojpwb2ludGVyQ2hhcmFjdGVyaXN0
aWNzT2ZBbGxBdmFpbGFibGVQb2ludGluZ0RldmljZXMgY29uc3QpOiBBZGRlZC4KKyAgICAgICAg
TW91c2UgZGV2aWNlcyBhcmUgYWx3YXlzIHN1cHBvcnRlZC4KKwogMjAyMC0xMC0wNSAgU2ltb24g
RnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4KIAogICAgICAgICBDaHJvbWVDbGllbnQ6
Om5lZWRzSW1tZWRpYXRlUmVuZGVyaW5nVXBkYXRlKCkgb25seSBleGlzdGluZyB0byB3b3JrIGFy
b3VuZCBhIFdlYktpdDEgYnVnCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9DaGFuZ2VMb2cKaW5kZXggNTEwYmE4
NDFlNDNiYjE3YjQ3ZjIxMWRkY2ExNDkxYTU1NzJlZjdjYS4uYTNmOGZjZWIzYzRhMGViMDg2NDcz
MDZhMjE3YmM2YWUxODU0OWNmMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4v
Q2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDE2IEBACisyMDIwLTEwLTA1ICBEZXZpbiBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNvbT4K
KworICAgICAgICBDU1MgaG92ZXIgYW5kICJwb2ludGVyOiBmaW5lIiBtZWRpYSBxdWVyaWVzIGRv
IG5vdCBldmFsdWF0ZSB0byB0cnVlIHdpdGggaU9TIDEzLjQgbW91c2Ugc3VwcG9ydAorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA5MjkyCisgICAgICAg
IDxyZGFyOi8vcHJvYmxlbS82MDY2MzEyND4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oOgor
ICAgICAgICAoV2ViQ2hyb21lQ2xpZW50Ojpob3ZlclN1cHBvcnRlZEJ5QW55QXZhaWxhYmxlUG9p
bnRpbmdEZXZpY2UgY29uc3QpOiBBZGRlZC4KKyAgICAgICAgKFdlYkNocm9tZUNsaWVudDo6cG9p
bnRlckNoYXJhY3RlcmlzdGljc09mQWxsQXZhaWxhYmxlUG9pbnRpbmdEZXZpY2VzIGNvbnN0KTog
QWRkZWQuCisgICAgICAgIE1vdXNlIGRldmljZXMgYXJlIGFsd2F5cyBzdXBwb3J0ZWQuCisKIDIw
MjAtMTAtMDUgIEFkaXR5YSBLZWVydGhpICA8YWtlZXJ0aGlAYXBwbGUuY29tPgogCiAgICAgICAg
IFtDb250YWN0IFBpY2tlciBBUEldIEludHJvZHVjZSBiaW5kaW5ncyBmb3IgdGhlIENvbnRhY3Qg
UGlja2VyIEFQSQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZSBiL1Nv
dXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKaW5kZXggNDY5MTEwMmRjOWZmNDUwZDUwMTY1ZDBk
NmIxYWVhZWZjYTM4MTcwMC4uZjA0ZjA2YmI0NTNhZDVlZWU0YTFjODdmY2FlOTliZTY3NTc3MmI3
OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9IZWFkZXJzLmNtYWtlCkBAIC04NTQsNiArODU0LDcgQEAgc2V0KFdlYkNvcmVfUFJJ
VkFURV9GUkFNRVdPUktfSEVBREVSUwogICAgIHBhZ2UvUGVyZm9ybWFuY2VMb2dnaW5nQ2xpZW50
LmgKICAgICBwYWdlL1BsdWdJbkNsaWVudC5oCiAgICAgcGFnZS9Qb2ludGVyQ2FwdHVyZUNvbnRy
b2xsZXIuaAorICAgIHBhZ2UvUG9pbnRlckNoYXJhY3RlcmlzdGljcy5oCiAgICAgcGFnZS9Qb2lu
dGVyTG9ja0NvbnRyb2xsZXIuaAogICAgIHBhZ2UvUG9zdE1lc3NhZ2VPcHRpb25zLmgKICAgICBw
YWdlL1ByZXdhcm1JbmZvcm1hdGlvbi5oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggZDdiZDM3MDkyMDlhYWVjYjc5YzdjZDZhZGIx
NWQyZTEwZTc5Yjk5My4uZGNmZDZlN2U5OWJiMGUwNThmYzllMzI4NzQ2MGNkMmZmMDZmNTBmMyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agpAQCAtMjg1Nyw2ICsyODU3LDcgQEAKIAkJOTRFODM5NTYxREZCMkJDNDAwN0JDNkE3IC8qIEpT
Q1NTTmFtZXNwYWNlUnVsZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gOTRFODM5NTQxREZCMkJBNjAwN0JDNkE3IC8qIEpTQ1NTTmFtZXNwYWNlUnVsZS5o
ICovOyB9OwogCQk5NTIwNzYwNTFGMjY3NUZFMDA3RDJBQUIgLyogQ2FsbFRyYWNlci5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTUyMDc2MDExRjI2NzVG
OTAwN0QyQUFCIC8qIENhbGxUcmFjZXIuaCAqLzsgfTsKIAkJOTUyMDc2MDYxRjI2NzVGRTAwN0Qy
QUFCIC8qIENhbGxUcmFjZXJUeXBlcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gOTUyMDc2MDIxRjI2NzVGOTAwN0QyQUFCIC8qIENhbGxUcmFjZXJUeXBl
cy5oICovOyB9OworCQk5NURGOUQyNTI1MkJFREIyMDAwRDdGNDYgLyogUG9pbnRlckNoYXJhY3Rl
cmlzdGljcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
OTVERjlEMjMyNTJCRUQ5OTAwMEQ3RjQ2IC8qIFBvaW50ZXJDaGFyYWN0ZXJpc3RpY3MuaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk5NzA1OTk3QTEw
N0Q5NzUyMDBBNTBBN0MgLyogUG9saWN5Q2hlY2tlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTcwNTk5NzYxMDdEOTc1MjAwQTUwQTdDIC8qIFBvbGlj
eUNoZWNrZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OwogCQk5NzBCNzI4QTE0NEZGQUM2MDBGMDBBMzcgLyogRXZlbnRJbnRlcmZhY2VzLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5NzBCNzI4OTE0NEZGQUM2
MDBGMDBBMzcgLyogRXZlbnRJbnRlcmZhY2VzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMg
PSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJOTcwQjcyQTYxNDUwMDhFQjAwRjAwQTM3IC8qIEV2ZW50
SGVhZGVycy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
OTcwQjcyQTUxNDUwMDhFQjAwRjAwQTM3IC8qIEV2ZW50SGVhZGVycy5oICovOyB9OwpAQCAtMTE0
NTksNiArMTE0NjAsNyBAQAogCQk5NTIwNzYwMDFGMjY3NUY5MDA3RDJBQUIgLyogQ2FsbFRyYWNl
ci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDYWxsVHJhY2VyLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJOTUyMDc2MDExRjI2NzVGOTAwN0QyQUFCIC8qIENhbGxUcmFjZXIuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gQ2FsbFRyYWNlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk5NTIwNzYwMjFGMjY3NUY5MDA3RDJBQUIgLyogQ2FsbFRyYWNlclR5cGVzLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IENhbGxUcmFjZXJUeXBlcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5
NURGOUQyMzI1MkJFRDk5MDAwRDdGNDYgLyogUG9pbnRlckNoYXJhY3RlcmlzdGljcy5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBQb2ludGVyQ2hhcmFjdGVyaXN0aWNzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTk2QUJBNDIyMTRCQ0I4MEUwMEQ1NjIwNCAvKiBHcmFwaGljc0NvbnRleHRHTE9w
ZW5HTENvbW1vbi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBHcmFw
aGljc0NvbnRleHRHTE9wZW5HTENvbW1vbi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTk3MDU5OTc1MTA3RDk3NTIwMEE1MEE3QyAvKiBQb2xpY3lDaGVja2VyLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFBvbGljeUNoZWNrZXIuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk5NzA1OTk3NjEwN0Q5NzUyMDBBNTBBN0MgLyogUG9saWN5
Q2hlY2tlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQb2xpY3lDaGVja2Vy
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0yMTczMSw2ICsyMTczMyw3IEBACiAJ
CQkJMzFENTkxQjExNjY5N0E2QzAwRTZCRjAyIC8qIFBsdWdJbkNsaWVudC5oICovLAogCQkJCTcx
QjVBQjI1MjFGMUQ5RTMwMDM3NkU1QyAvKiBQb2ludGVyQ2FwdHVyZUNvbnRyb2xsZXIuY3BwICov
LAogCQkJCTcxQjVBQjI0MjFGMUQ5RTIwMDM3NkU1QyAvKiBQb2ludGVyQ2FwdHVyZUNvbnRyb2xs
ZXIuaCAqLywKKwkJCQk5NURGOUQyMzI1MkJFRDk5MDAwRDdGNDYgLyogUG9pbnRlckNoYXJhY3Rl
cmlzdGljcy5oICovLAogCQkJCTVDRkM0MzRFMTkyNDA2QTkwMEEwRDNCNSAvKiBQb2ludGVyTG9j
a0NvbnRyb2xsZXIuY3BwICovLAogCQkJCTVDRkM0MzRGMTkyNDA2QTkwMEEwRDNCNSAvKiBQb2lu
dGVyTG9ja0NvbnRyb2xsZXIuaCAqLywKIAkJCQkzNzcyQjA5NTE2NTM1ODU2MDAwQTQ5Q0EgLyog
UG9wdXBPcGVuaW5nT2JzZXJ2ZXIuaCAqLywKQEAgLTMxMjIxLDkgKzMxMjI0LDcgQEAKIAkJCQk4
MzVENTRDNTFGNERFNTM4MDBFNjA2NzEgLyogRGlyZWN0b3J5RmlsZUxpc3RDcmVhdG9yLmggaW4g
SGVhZGVycyAqLywKIAkJCQlGNDdBMDlEMTIwQTkzQTk3MDAyNDBGQUUgLyogRGlzYWJsZWRBZGFw
dGF0aW9ucy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJN0VEQUFGQzkxOUEyQ0NEQzAwMzRERkQxIC8q
IERpc2tDYWNoZU1vbml0b3JDb2NvYS5oIGluIEhlYWRlcnMgKi8sCi0JCQkJRTQ1MUM2MzQyMzk0
MDU4RjAwOTkzMTkwIC8qIExheW91dEludGVncmF0aW9uSW5saW5lQ29udGVudC5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJMEY3OTBGNDIyNTE3Q0U2RTAwOUJBMDM0IC8qIERpc3BsYXlMYXllckNvbnRy
b2xsZXIuaCBpbiBIZWFkZXJzICovLAotCQkJCTZGQjQ3RTYzMjI3NzQyNUEwMEM3QkNCMCAvKiBM
YXlvdXRJbnRlZ3JhdGlvbkxpbmUuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGRTVGQkQzMUMzREQ1
MUUwMDA3QTJDQSAvKiBEaXNwbGF5TGlzdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTVBRDA5NDAy
NDA4OTY0MDAwREU0RDJGIC8qIERpc3BsYXlMaXN0RHJhd2luZ0NvbnRleHQuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTU1QUQwOTNFMjQwODk2MzUwMERFNEQyRiAvKiBEaXNwbGF5TGlzdEltYWdlQnVm
ZmVyLmggaW4gSGVhZGVycyAqLywKQEAgLTMxMjM2LDcgKzMxMjM3LDYgQEAKIAkJCQkyRDI5RUND
QTE5MkYxRjFEMDA5ODRCNzggLyogRGlzcGxheVJlZnJlc2hNb25pdG9ySU9TLmggaW4gSGVhZGVy
cyAqLywKIAkJCQkyREU3MDAyMzE5MkZFODJBMDBCMDk3NUMgLyogRGlzcGxheVJlZnJlc2hNb25p
dG9yTWFjLmggaW4gSGVhZGVycyAqLywKIAkJCQkyRDI5RUNDODE5MkVDQzgzMDA5ODRCNzggLyog
RGlzcGxheVJlZnJlc2hNb25pdG9yTWFuYWdlci5oIGluIEhlYWRlcnMgKi8sCi0JCQkJNkZDRTFB
MUEyMjYxOEFCRDAwNEYwMzQzIC8qIExheW91dEludGVncmF0aW9uUnVuLmggaW4gSGVhZGVycyAq
LywKIAkJCQkwRjc5MEY0MzI1MTdDRTZFMDA5QkEwMzQgLyogRGlzcGxheVZpZXcuaCBpbiBIZWFk
ZXJzICovLAogCQkJCUZEMzE2MDkxMTJCMDI2RjcwMEMxQTM1OSAvKiBEaXN0YW5jZS5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJODMwNDAyODMyNDlBN0E2MjAwQTkwRDhEIC8qIERpc3RhbmNlTW9kZWxU
eXBlLmggaW4gSGVhZGVycyAqLywKQEAgLTMxOTI3LDYgKzMxOTI3LDcgQEAKIAkJCQk2RkMzRjk0
NzI1MTY3NTY3MDBBNDlCRUEgLyogSW5saW5lTGluZVJ1bi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
RjQ1Nzc1Q0UyNDE0MzdENTAwMkRGMUEwIC8qIElubGluZVBhdGhEYXRhLmggaW4gSGVhZGVycyAq
LywKIAkJCQk2RjQwREE4MjI1MTMwMzNBMDBFQzA0QjcgLyogSW5saW5lUmVjdC5oIGluIEhlYWRl
cnMgKi8sCisJCQkJRTREMzNGM0IyNTJBRUVDRDAwODM3RDA1IC8qIElubGluZVJ1bkFuZE9mZnNl
dC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNkYzNjBFNTAyMzk5OTQyMTAwMTUxMkE3IC8qIElubGlu
ZVNvZnRMaW5lQnJlYWtJdGVtLmggaW4gSGVhZGVycyAqLywKIAkJCQlBQTRDM0E3NzBCMkIxNjc5
MDAyMzM0QTIgLyogSW5saW5lU3R5bGVTaGVldE93bmVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlC
Q0VBNDg1QTA5N0Q5MzAyMDA5NEM5RTQgLyogSW5saW5lVGV4dEJveC5oIGluIEhlYWRlcnMgKi8s
CkBAIC0zMjg5NSw4ICszMjg5NiwxMSBAQAogCQkJCTZGMEI5OEI1MjNGMjY4RUMwMEVFQzJGMiAv
KiBMYXlvdXRJbmxpbmVUZXh0Qm94LmggaW4gSGVhZGVycyAqLywKIAkJCQlFNDE4MDI1NTIzRDQ1
NDlCMDBGRkIwNzEgLyogTGF5b3V0SW50ZWdyYXRpb25Cb3hUcmVlLmggaW4gSGVhZGVycyAqLywK
IAkJCQlFNDAzQjdBMjI1MUIxMTkzMDAxOUU4MDAgLyogTGF5b3V0SW50ZWdyYXRpb25Db3ZlcmFn
ZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJRTQ1MUM2MzQyMzk0MDU4RjAwOTkzMTkwIC8qIExheW91
dEludGVncmF0aW9uSW5saW5lQ29udGVudC5oIGluIEhlYWRlcnMgKi8sCisJCQkJNkZCNDdFNjMy
Mjc3NDI1QTAwQzdCQ0IwIC8qIExheW91dEludGVncmF0aW9uTGluZS5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJRTRBQkFCREQyMzYwODhGRTAwRkE0MzQ1IC8qIExheW91dEludGVncmF0aW9uTGluZUxh
eW91dC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTQwM0I3QTMyNTFCMTFDMTAwMTlFODAwIC8qIExh
eW91dEludGVncmF0aW9uUGFnaW5hdGlvbi5oIGluIEhlYWRlcnMgKi8sCisJCQkJNkZDRTFBMUEy
MjYxOEFCRDAwNEYwMzQzIC8qIExheW91dEludGVncmF0aW9uUnVuLmggaW4gSGVhZGVycyAqLywK
IAkJCQlFNEE2NjRDQzI1MjFENEFGMDA3MDgxREMgLyogTGF5b3V0SW50ZWdyYXRpb25SdW5JdGVy
YXRvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTRBNjY0Q0YyNTIxRDRFMjAwNzA4MURDIC8qIExh
eW91dEludGVncmF0aW9uUnVuSXRlcmF0b3JMZWdhY3lQYXRoLmggaW4gSGVhZGVycyAqLywKIAkJ
CQlFNEE2NjRDRTI1MjFENEM5MDA3MDgxREMgLyogTGF5b3V0SW50ZWdyYXRpb25SdW5JdGVyYXRv
ck1vZGVyblBhdGguaCBpbiBIZWFkZXJzICovLApAQCAtMzM0MjEsNiArMzM0MjUsNyBAQAogCQkJ
CUJDQkI4QUJBMTNGMUFGQjAwMDczNERGMCAvKiBQT0RJbnRlcnZhbFRyZWUuaCBpbiBIZWFkZXJz
ICovLAogCQkJCUJDQkI4QUJCMTNGMUFGQjAwMDczNERGMCAvKiBQT0RSZWRCbGFja1RyZWUuaCBp
biBIZWFkZXJzICovLAogCQkJCTcxQjVBQjI2MjFGMUQ5RjQwMDM3NkU1QyAvKiBQb2ludGVyQ2Fw
dHVyZUNvbnRyb2xsZXIuaCBpbiBIZWFkZXJzICovLAorCQkJCTk1REY5RDI1MjUyQkVEQjIwMDBE
N0Y0NiAvKiBQb2ludGVyQ2hhcmFjdGVyaXN0aWNzLmggaW4gSGVhZGVycyAqLywKIAkJCQkzMTdE
M0ZGMzIxNTU5OUY0MDAzNEUzQjkgLyogUG9pbnRlckV2ZW50LmggaW4gSGVhZGVycyAqLywKIAkJ
CQlCMkIxRjcxNzBEMDBDQUE4MDA0QUVBNjQgLyogUG9pbnRlckV2ZW50c0hpdFJ1bGVzLmggaW4g
SGVhZGVycyAqLywKIAkJCQk3MUVBRENEODIyMDg3RTcyMDA2NUE0NUYgLyogUG9pbnRlcklELmgg
aW4gSGVhZGVycyAqLywKQEAgLTM0ODAxLDcgKzM0ODA2LDYgQEAKIAkJCQlFMUVFOEI5OTI0MTMx
OTUwMDBFNzk0RDYgLyogWFJJbnB1dFNvdXJjZXNDaGFuZ2VFdmVudC5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJRTEyQTlGNEEyNDhBOTlFMjAwM0YwNkM4IC8qIFhSSW50ZXJhY3Rpb25Nb2RlLmggaW4g
SGVhZGVycyAqLywKIAkJCQlFMUVFOEI4NDI0MTMxOTFGMDBFNzk0RDYgLyogWFJSZWZlcmVuY2VT
cGFjZUV2ZW50LmggaW4gSGVhZGVycyAqLywKLQkJCQlFNEQzM0YzQjI1MkFFRUNEMDA4MzdEMDUg
LyogSW5saW5lUnVuQW5kT2Zmc2V0LmggaW4gSGVhZGVycyAqLywKIAkJCQlFMUVFOEI3NzI0MTMx
OTFGMDBFNzk0RDYgLyogWFJSZWZlcmVuY2VTcGFjZVR5cGUuaCBpbiBIZWFkZXJzICovLAogCQkJ
CUUxRUU4Qjc5MjQxMzE5MUYwMEU3OTRENiAvKiBYUlJlbmRlclN0YXRlSW5pdC5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJRTFFRThCOEQyNDEzMTk1MDAwRTc5NEQ2IC8qIFhSU2Vzc2lvbkV2ZW50Lmgg
aW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5
RXZhbHVhdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5RXZhbHVhdG9yLmNw
cAppbmRleCA4MTE4YjdhYjNjNTBiM2NlZDgxMjBmYzEwNmRjZTljNzMxNDFhZmU0Li41OTdhMmQ2
MTU4NjkwM2VlZGZhM2ZiNjY0ZjNjZGJmMTAwNzM5MjY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9jc3MvTWVkaWFRdWVyeUV2YWx1YXRvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3Nz
L01lZGlhUXVlcnlFdmFsdWF0b3IuY3BwCkBAIC0zMyw2ICszMyw4IEBACiAjaW5jbHVkZSAiQ1NT
UHJpbWl0aXZlVmFsdWUuaCIKICNpbmNsdWRlICJDU1NUb0xlbmd0aENvbnZlcnNpb25EYXRhLmgi
CiAjaW5jbHVkZSAiQ1NTVmFsdWVLZXl3b3Jkcy5oIgorI2luY2x1ZGUgIkNocm9tZS5oIgorI2lu
Y2x1ZGUgIkNocm9tZUNsaWVudC5oIgogI2luY2x1ZGUgIkZyYW1lLmgiCiAjaW5jbHVkZSAiRnJh
bWVWaWV3LmgiCiAjaW5jbHVkZSAiTG9nZ2luZy5oIgpAQCAtNzMwLDIyICs3MzIsMTYgQEAgc3Rh
dGljIGJvb2wgaG92ZXJFdmFsdWF0ZShDU1NWYWx1ZSogdmFsdWUsIGNvbnN0IENTU1RvTGVuZ3Ro
Q29udmVyc2lvbkRhdGEmLCBGcmEKICAgICByZXR1cm4ga2V5d29yZCA9PSBDU1NWYWx1ZUhvdmVy
OwogfQogCi1zdGF0aWMgYm9vbCBhbnlIb3ZlckV2YWx1YXRlKENTU1ZhbHVlKiB2YWx1ZSwgY29u
c3QgQ1NTVG9MZW5ndGhDb252ZXJzaW9uRGF0YSYsIEZyYW1lJiwgTWVkaWFGZWF0dXJlUHJlZml4
KQorc3RhdGljIGJvb2wgYW55SG92ZXJFdmFsdWF0ZShDU1NWYWx1ZSogdmFsdWUsIGNvbnN0IENT
U1RvTGVuZ3RoQ29udmVyc2lvbkRhdGEmLCBGcmFtZSYgZnJhbWUsIE1lZGlhRmVhdHVyZVByZWZp
eCkKIHsKLSAgICBpZiAoIWlzPENTU1ByaW1pdGl2ZVZhbHVlPih2YWx1ZSkpIHsKLSNpZiBFTkFC
TEUoVE9VQ0hfRVZFTlRTKQotICAgICAgICByZXR1cm4gIXNjcmVlbkhhc1RvdWNoRGV2aWNlKCk7
Ci0jZWxzZQotICAgICAgICByZXR1cm4gdHJ1ZTsKLSNlbmRpZgotICAgIH0KKyAgICBhdXRvKiBw
YWdlID0gZnJhbWUucGFnZSgpOworICAgIGJvb2wgaG92ZXJTdXBwb3J0ZWRCeUFueUF2YWlsYWJs
ZVBvaW50aW5nRGV2aWNlID0gcGFnZSAmJiBwYWdlLT5jaHJvbWUoKS5jbGllbnQoKS5ob3ZlclN1
cHBvcnRlZEJ5QW55QXZhaWxhYmxlUG9pbnRpbmdEZXZpY2UoKTsKKworICAgIGlmICghaXM8Q1NT
UHJpbWl0aXZlVmFsdWU+KHZhbHVlKSkKKyAgICAgICAgcmV0dXJuIGhvdmVyU3VwcG9ydGVkQnlB
bnlBdmFpbGFibGVQb2ludGluZ0RldmljZTsKIAogICAgIGF1dG8ga2V5d29yZCA9IGRvd25jYXN0
PENTU1ByaW1pdGl2ZVZhbHVlPigqdmFsdWUpLnZhbHVlSUQoKTsKLSNpZiBFTkFCTEUoVE9VQ0hf
RVZFTlRTKQotICAgIGlmIChzY3JlZW5IYXNUb3VjaERldmljZSgpKQotICAgICAgICByZXR1cm4g
a2V5d29yZCA9PSBDU1NWYWx1ZU5vbmU7Ci0jZW5kaWYKLSAgICByZXR1cm4ga2V5d29yZCA9PSBD
U1NWYWx1ZUhvdmVyOworICAgIHJldHVybiBob3ZlclN1cHBvcnRlZEJ5QW55QXZhaWxhYmxlUG9p
bnRpbmdEZXZpY2UgPyAoa2V5d29yZCA9PSBDU1NWYWx1ZUhvdmVyKSA6IChrZXl3b3JkID09IENT
U1ZhbHVlTm9uZSk7CiB9CiAKIHN0YXRpYyBib29sIHBvaW50ZXJFdmFsdWF0ZShDU1NWYWx1ZSog
dmFsdWUsIGNvbnN0IENTU1RvTGVuZ3RoQ29udmVyc2lvbkRhdGEmLCBGcmFtZSYgZnJhbWUsIE1l
ZGlhRmVhdHVyZVByZWZpeCkKQEAgLTc2NSwxNyArNzYxLDIyIEBAIHN0YXRpYyBib29sIHBvaW50
ZXJFdmFsdWF0ZShDU1NWYWx1ZSogdmFsdWUsIGNvbnN0IENTU1RvTGVuZ3RoQ29udmVyc2lvbkRh
dGEmLCBGCiAgICAgcmV0dXJuIGtleXdvcmQgPT0gQ1NTVmFsdWVGaW5lOwogfQogCi1zdGF0aWMg
Ym9vbCBhbnlQb2ludGVyRXZhbHVhdGUoQ1NTVmFsdWUqIHZhbHVlLCBjb25zdCBDU1NUb0xlbmd0
aENvbnZlcnNpb25EYXRhJiwgRnJhbWUmLCBNZWRpYUZlYXR1cmVQcmVmaXgpCitzdGF0aWMgYm9v
bCBhbnlQb2ludGVyRXZhbHVhdGUoQ1NTVmFsdWUqIHZhbHVlLCBjb25zdCBDU1NUb0xlbmd0aENv
bnZlcnNpb25EYXRhJiwgRnJhbWUmIGZyYW1lLCBNZWRpYUZlYXR1cmVQcmVmaXgpCiB7CisgICAg
YXV0byogcGFnZSA9IGZyYW1lLnBhZ2UoKTsKKyAgICBhdXRvIHBvaW50ZXJDaGFyYWN0ZXJpc3Rp
Y3NPZkFsbEF2YWlsYWJsZVBvaW50aW5nRGV2aWNlcyA9IHBhZ2UgPyBwYWdlLT5jaHJvbWUoKS5j
bGllbnQoKS5wb2ludGVyQ2hhcmFjdGVyaXN0aWNzT2ZBbGxBdmFpbGFibGVQb2ludGluZ0Rldmlj
ZXMoKSA6IE9wdGlvblNldDxQb2ludGVyQ2hhcmFjdGVyaXN0aWNzPigpOworCiAgICAgaWYgKCFp
czxDU1NQcmltaXRpdmVWYWx1ZT4odmFsdWUpKQotICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAg
ICAgcmV0dXJuICFwb2ludGVyQ2hhcmFjdGVyaXN0aWNzT2ZBbGxBdmFpbGFibGVQb2ludGluZ0Rl
dmljZXMuaXNFbXB0eSgpOwogCiAgICAgYXV0byBrZXl3b3JkID0gZG93bmNhc3Q8Q1NTUHJpbWl0
aXZlVmFsdWU+KCp2YWx1ZSkudmFsdWVJRCgpOwotI2lmIEVOQUJMRShUT1VDSF9FVkVOVFMpCi0g
ICAgaWYgKHNjcmVlbkhhc1RvdWNoRGV2aWNlKCkpCi0gICAgICAgIHJldHVybiBrZXl3b3JkID09
IENTU1ZhbHVlQ29hcnNlOwotI2VuZGlmCi0gICAgcmV0dXJuIGtleXdvcmQgPT0gQ1NTVmFsdWVG
aW5lOworICAgIGlmIChrZXl3b3JkID09IENTU1ZhbHVlRmluZSkKKyAgICAgICAgcmV0dXJuIHBv
aW50ZXJDaGFyYWN0ZXJpc3RpY3NPZkFsbEF2YWlsYWJsZVBvaW50aW5nRGV2aWNlcy5jb250YWlu
cyhQb2ludGVyQ2hhcmFjdGVyaXN0aWNzOjpGaW5lKTsKKyAgICBpZiAoa2V5d29yZCA9PSBDU1NW
YWx1ZUNvYXJzZSkKKyAgICAgICAgcmV0dXJuIHBvaW50ZXJDaGFyYWN0ZXJpc3RpY3NPZkFsbEF2
YWlsYWJsZVBvaW50aW5nRGV2aWNlcy5jb250YWlucyhQb2ludGVyQ2hhcmFjdGVyaXN0aWNzOjpD
b2Fyc2UpOworICAgIGlmIChrZXl3b3JkID09IENTU1ZhbHVlTm9uZSkKKyAgICAgICAgcmV0dXJu
IHBvaW50ZXJDaGFyYWN0ZXJpc3RpY3NPZkFsbEF2YWlsYWJsZVBvaW50aW5nRGV2aWNlcy5pc0Vt
cHR5KCk7CisgICAgcmV0dXJuIGZhbHNlOwogfQogCiBzdGF0aWMgYm9vbCBwcmVmZXJzRGFya0lu
dGVyZmFjZUV2YWx1YXRlKENTU1ZhbHVlKiB2YWx1ZSwgY29uc3QgQ1NTVG9MZW5ndGhDb252ZXJz
aW9uRGF0YSYsIEZyYW1lJiBmcmFtZSwgTWVkaWFGZWF0dXJlUHJlZml4KQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5oIGIvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL0VtcHR5Q2xpZW50cy5oCmluZGV4IDNlOWRlN2QyNjZhOWRlYTZlMWEwMzQ0NmE1OWVmN2Y0
MDA2MDk5NGUuLjM2M2ZlOGEyMDQ3MTBmMmQwZGQxOWQzZDRmNjAyOTNlNTgyMDY4NDAgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmgKQEAgLTEwMiw2ICsxMDIsOSBAQCBjbGFzcyBF
bXB0eUNocm9tZUNsaWVudCA6IHB1YmxpYyBDaHJvbWVDbGllbnQgewogCiAgICAgS2V5Ym9hcmRV
SU1vZGUga2V5Ym9hcmRVSU1vZGUoKSBmaW5hbCB7IHJldHVybiBLZXlib2FyZEFjY2Vzc0RlZmF1
bHQ7IH0KIAorICAgIGJvb2wgaG92ZXJTdXBwb3J0ZWRCeUFueUF2YWlsYWJsZVBvaW50aW5nRGV2
aWNlKCkgY29uc3QgZmluYWwgeyByZXR1cm4gZmFsc2U7IH0KKyAgICBPcHRpb25TZXQ8UG9pbnRl
ckNoYXJhY3RlcmlzdGljcz4gcG9pbnRlckNoYXJhY3RlcmlzdGljc09mQWxsQXZhaWxhYmxlUG9p
bnRpbmdEZXZpY2VzKCkgY29uc3QgZmluYWwgeyByZXR1cm4geyB9OyB9CisKICAgICB2b2lkIGlu
dmFsaWRhdGVSb290Vmlldyhjb25zdCBJbnRSZWN0JikgZmluYWwgeyB9CiAgICAgdm9pZCBpbnZh
bGlkYXRlQ29udGVudHNBbmRSb290Vmlldyhjb25zdCBJbnRSZWN0Jikgb3ZlcnJpZGUgeyB9CiAg
ICAgdm9pZCBpbnZhbGlkYXRlQ29udGVudHNGb3JTbG93U2Nyb2xsKGNvbnN0IEludFJlY3QmKSBm
aW5hbCB7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVudC5oCmluZGV4IDUxMTBkMTE4MGE3NzNk
ZWQ1ZTIzZDJmMDNjMGY3ZGQyOTQ4NDc2NjYuLjFkNzBmY2ZhNTU5MDY5MTU2OGM4ODY0MjA0ZTlk
MWExMmI3YTNjMWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaApAQCAtMzksNiArMzks
NyBAQAogI2luY2x1ZGUgIkltYWdlQnVmZmVyLmgiCiAjaW5jbHVkZSAiSW5wdXRNb2RlLmgiCiAj
aW5jbHVkZSAiTWVkaWFQcm9kdWNlci5oIgorI2luY2x1ZGUgIlBvaW50ZXJDaGFyYWN0ZXJpc3Rp
Y3MuaCIKICNpbmNsdWRlICJQb3B1cE1lbnUuaCIKICNpbmNsdWRlICJQb3B1cE1lbnVDbGllbnQu
aCIKICNpbmNsdWRlICJSZWdpc3RyYWJsZURvbWFpbi5oIgpAQCAtMTc4LDYgKzE3OSw5IEBAIHB1
YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgc2V0U3RhdHVzYmFyVGV4dChjb25zdCBTdHJpbmcmKSA9
IDA7CiAgICAgdmlydHVhbCBLZXlib2FyZFVJTW9kZSBrZXlib2FyZFVJTW9kZSgpID0gMDsKIAor
ICAgIHZpcnR1YWwgYm9vbCBob3ZlclN1cHBvcnRlZEJ5QW55QXZhaWxhYmxlUG9pbnRpbmdEZXZp
Y2UoKSBjb25zdCA9IDA7CisgICAgdmlydHVhbCBPcHRpb25TZXQ8UG9pbnRlckNoYXJhY3Rlcmlz
dGljcz4gcG9pbnRlckNoYXJhY3RlcmlzdGljc09mQWxsQXZhaWxhYmxlUG9pbnRpbmdEZXZpY2Vz
KCkgY29uc3QgPSAwOworCiAgICAgdmlydHVhbCBib29sIHN1cHBvcnRzSW1tZWRpYXRlSW52YWxp
ZGF0aW9uKCkgeyByZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0dWFsIHZvaWQgaW52YWxpZGF0ZVJv
b3RWaWV3KGNvbnN0IEludFJlY3QmKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGludmFsaWRhdGVD
b250ZW50c0FuZFJvb3RWaWV3KGNvbnN0IEludFJlY3QmKSA9IDA7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL1BvaW50ZXJDaGFyYWN0ZXJpc3RpY3MuaCBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvUG9pbnRlckNoYXJhY3RlcmlzdGljcy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjI0YWE0NmJmYzZlMjJm
YWEzYWY2MGE4Zjg4MThkMDVlY2ZlODE0OTEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL1BvaW50ZXJDaGFyYWN0ZXJpc3RpY3MuaApAQCAtMCwwICsxLDQ3IEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBB
UyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklC
VVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5F
U1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
CisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisK
K25hbWVzcGFjZSBXZWJDb3JlIHsKKworZW51bSBjbGFzcyBQb2ludGVyQ2hhcmFjdGVyaXN0aWNz
IDogdWludDhfdCB7CisgICAgQ29hcnNlID0gMSA8PCAwLAorICAgIEZpbmUgPSAxIDw8IDEsCit9
OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKK25hbWVzcGFjZSBXVEYgeworCit0ZW1wbGF0
ZTw+IHN0cnVjdCBFbnVtVHJhaXRzPFdlYkNvcmU6OlBvaW50ZXJDaGFyYWN0ZXJpc3RpY3M+IHsK
KyAgICB1c2luZyB2YWx1ZXMgPSBFbnVtVmFsdWVzPAorICAgICAgICBXZWJDb3JlOjpQb2ludGVy
Q2hhcmFjdGVyaXN0aWNzLAorICAgICAgICBXZWJDb3JlOjpQb2ludGVyQ2hhcmFjdGVyaXN0aWNz
OjpDb2Fyc2UsCisgICAgICAgIFdlYkNvcmU6OlBvaW50ZXJDaGFyYWN0ZXJpc3RpY3M6OkZpbmUK
KyAgICA+OworfTsKKworfSAvLyBuYW1lc3BhY2UgV1RGCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9QbGF0Zm9ybVNjcmVlbi5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
UGxhdGZvcm1TY3JlZW4uaAppbmRleCBiMjBmZTM4OWE5OGUxZTAxZTI1MzFiMjAwNjkxODZjYmVk
NmFlZTI2Li45MmNlNGRkNmVjMTgyMWEwZmM1MTM1ZjM4ZTIzM2E1Y2NkMDRkNzE5IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9ybVNjcmVlbi5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL1BsYXRmb3JtU2NyZWVuLmgKQEAgLTE1Miw4ICsxNTIsOCBAQCBX
RUJDT1JFX0VYUE9SVCBmbG9hdCBzY3JlZW5TY2FsZUZhY3RvcihVSVNjcmVlbiAqID0gbnVsbHB0
cik7CiAKICNpZiBFTkFCTEUoVE9VQ0hfRVZFTlRTKQogI2lmIFBMQVRGT1JNKEdUSykgfHwgUExB
VEZPUk0oV1BFKQotYm9vbCBzY3JlZW5IYXNUb3VjaERldmljZSgpOwotYm9vbCBzY3JlZW5Jc1Rv
dWNoUHJpbWFyeUlucHV0RGV2aWNlKCk7CitXRUJDT1JFX0VYUE9SVCBib29sIHNjcmVlbkhhc1Rv
dWNoRGV2aWNlKCk7CitXRUJDT1JFX0VYUE9SVCBib29sIHNjcmVlbklzVG91Y2hQcmltYXJ5SW5w
dXREZXZpY2UoKTsKICNlbHNlCiBjb25zdGV4cHIgYm9vbCBzY3JlZW5IYXNUb3VjaERldmljZSgp
IHsgcmV0dXJuIHRydWU7IH0KIGNvbnN0ZXhwciBib29sIHNjcmVlbklzVG91Y2hQcmltYXJ5SW5w
dXREZXZpY2UoKSB7IHJldHVybiB0cnVlOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0Nv
bmZpZ3VyYXRpb25zL1dlYktpdC54Y2NvbmZpZyBiL1NvdXJjZS9XZWJLaXQvQ29uZmlndXJhdGlv
bnMvV2ViS2l0LnhjY29uZmlnCmluZGV4IDVmNzVlY2JiMTQ5YzU1MWE0NTExYTkwNmZkN2Y0M2Mx
N2U5ODg5MjEuLmNlNzE4NTlkZGE5MDU0YWRmYzA0NTU4NDA3ZjE2NGUzN2UzNmZmN2IgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ29uZmlndXJhdGlvbnMvV2ViS2l0LnhjY29uZmlnCisrKyBi
L1NvdXJjZS9XZWJLaXQvQ29uZmlndXJhdGlvbnMvV2ViS2l0LnhjY29uZmlnCkBAIC02MCw2ICs2
MCwxMCBAQCBXS19BU1NFUlRJT05fU0VSVklDRVNfTERGTEFHU19hcHBsZXR2b3MgPSAtZnJhbWV3
b3JrIEFzc2VydGlvblNlcnZpY2VzOwogV0tfQVNTRVJUSU9OX1NFUlZJQ0VTX0xERkxBR1NfYXBw
bGV0dnNpbXVsYXRvciA9IC1mcmFtZXdvcmsgQXNzZXJ0aW9uU2VydmljZXM7CiBXS19BU1NFUlRJ
T05fU0VSVklDRVNfTERGTEFHU19tYWNjYXRhbHlzdCA9IC1mcmFtZXdvcmsgQXNzZXJ0aW9uU2Vy
dmljZXM7CiAKK1dLX0JBQ0tCT0FSRF9TRVJWSUNFU19MREZMQUdTID0gJChXS19CQUNLQk9BUkRf
U0VSVklDRVNfTERGTEFHU18kKFdLX1BMQVRGT1JNX05BTUUpKTsKK1dLX0JBQ0tCT0FSRF9TRVJW
SUNFU19MREZMQUdTX2lwaG9uZW9zID0gLWZyYW1ld29yayBCYWNrQm9hcmRTZXJ2aWNlczsKK1dL
X0JBQ0tCT0FSRF9TRVJWSUNFU19MREZMQUdTX2lwaG9uZXNpbXVsYXRvciA9IC1mcmFtZXdvcmsg
QmFja0JvYXJkU2VydmljZXM7CisKIFdLX1JVTk5JTkdCT0FSRF9TRVJWSUNFU19MREZMQUdTID0g
JChXS19SVU5OSU5HQk9BUkRfU0VSVklDRVNfTERGTEFHU18kKFdLX0NPQ09BX1RPVUNIKSk7CiBX
S19SVU5OSU5HQk9BUkRfU0VSVklDRVNfTERGTEFHU19jb2NvYXRvdWNoID0gLWZyYW1ld29yayBS
dW5uaW5nQm9hcmRTZXJ2aWNlczsKIApAQCAtMTIzLDcgKzEyNyw3IEBAIFdLX0FVVEhLSVRfTERG
TEFHU19JT1NfU0lOQ0VfMTMgPSAtZnJhbWV3b3JrIEF1dGhLaXQ7CiBXS19BVVRIS0lUX0xERkxB
R1NfbWFjb3N4ID0gJChXS19BVVRIS0lUX0xERkxBR1MkKFdLX01BQ09TXzEwMTUpKTsKIFdLX0FV
VEhLSVRfTERGTEFHU19NQUNPU19TSU5DRV8xMDE1ID0gLWZyYW1ld29yayBBdXRoS2l0OwogCi1G
UkFNRVdPUktfQU5EX0xJQlJBUllfTERGTEFHUyA9IC1sb2JqYyAtZnJhbWV3b3JrIENGTmV0d29y
ayAtZnJhbWV3b3JrIENvcmVBdWRpbyAtZnJhbWV3b3JrIENvcmVGb3VuZGF0aW9uIC1mcmFtZXdv
cmsgQ29yZUdyYXBoaWNzIC1mcmFtZXdvcmsgQ29yZVRleHQgLWZyYW1ld29yayBGb3VuZGF0aW9u
IC1mcmFtZXdvcmsgSW1hZ2VJTyAtZnJhbWV3b3JrIElPS2l0IC1mcmFtZXdvcmsgSU9TdXJmYWNl
IC1mcmFtZXdvcmsgV2ViS2l0TGVnYWN5IC1sbmV0d29yayAkKFdLX0FDQ0VTU0lCSUxJVFlfTERG
TEFHUykgJChXS19BUFBLSVRfTERGTEFHUykgJChXS19BU1NFUlRJT05fU0VSVklDRVNfTERGTEFH
UykgJChXS19SVU5OSU5HQk9BUkRfU0VSVklDRVNfTERGTEFHUykgJChXS19BVVRIS0lUX0xERkxB
R1MpICQoV0tfQ0FSQk9OX0xERkxBR1MpICQoV0tfQ09SRV9QUkVESUNUSU9OX0xERkxBR1MpICQo
V0tfQ09SRV9TRVJWSUNFU19MREZMQUdTKSAkKFdLX0dSQVBISUNTX1NFUlZJQ0VTX0xERkxBR1Mp
ICQoV0tfTElCU0FOREJPWF9MREZMQUdTKSAkKFdLX0xJQldFQlJUQ19MREZMQUdTKSAkKFdLX01P
QklMRV9DT1JFX1NFUlZJQ0VTX0xERkxBR1MpICQoV0tfTU9CSUxFX0dFU1RBTFRfTERGTEFHUykg
JChXS19QREZLSVRfTERGTEFHUykgJChXS19TQUZFX0JST1dTSU5HX0xERkxBR1MpICQoV0tfU0VD
VVJJVFlfSU5URVJGQUNFX0xERkxBR1MpICQoV0tfVUlLSVRfTERGTEFHUykgJChXS19VUkxfRk9S
TUFUVElOR19MREZMQUdTKSAkKFdLX1dFQklOU1BFQ1RPUlVJX0xERkxBR1MpOworRlJBTUVXT1JL
X0FORF9MSUJSQVJZX0xERkxBR1MgPSAtbG9iamMgLWZyYW1ld29yayBDRk5ldHdvcmsgLWZyYW1l
d29yayBDb3JlQXVkaW8gLWZyYW1ld29yayBDb3JlRm91bmRhdGlvbiAtZnJhbWV3b3JrIENvcmVH
cmFwaGljcyAtZnJhbWV3b3JrIENvcmVUZXh0IC1mcmFtZXdvcmsgRm91bmRhdGlvbiAtZnJhbWV3
b3JrIEltYWdlSU8gLWZyYW1ld29yayBJT0tpdCAtZnJhbWV3b3JrIElPU3VyZmFjZSAtZnJhbWV3
b3JrIFdlYktpdExlZ2FjeSAtbG5ldHdvcmsgJChXS19BQ0NFU1NJQklMSVRZX0xERkxBR1MpICQo
V0tfQVBQS0lUX0xERkxBR1MpICQoV0tfQVNTRVJUSU9OX1NFUlZJQ0VTX0xERkxBR1MpICQoV0tf
QkFDS0JPQVJEX1NFUlZJQ0VTX0xERkxBR1MpICQoV0tfUlVOTklOR0JPQVJEX1NFUlZJQ0VTX0xE
RkxBR1MpICQoV0tfQVVUSEtJVF9MREZMQUdTKSAkKFdLX0NBUkJPTl9MREZMQUdTKSAkKFdLX0NP
UkVfUFJFRElDVElPTl9MREZMQUdTKSAkKFdLX0NPUkVfU0VSVklDRVNfTERGTEFHUykgJChXS19H
UkFQSElDU19TRVJWSUNFU19MREZMQUdTKSAkKFdLX0xJQlNBTkRCT1hfTERGTEFHUykgJChXS19M
SUJXRUJSVENfTERGTEFHUykgJChXS19NT0JJTEVfQ09SRV9TRVJWSUNFU19MREZMQUdTKSAkKFdL
X01PQklMRV9HRVNUQUxUX0xERkxBR1MpICQoV0tfUERGS0lUX0xERkxBR1MpICQoV0tfU0FGRV9C
Uk9XU0lOR19MREZMQUdTKSAkKFdLX1NFQ1VSSVRZX0lOVEVSRkFDRV9MREZMQUdTKSAkKFdLX1VJ
S0lUX0xERkxBR1MpICQoV0tfVVJMX0ZPUk1BVFRJTkdfTERGTEFHUykgJChXS19XRUJJTlNQRUNU
T1JVSV9MREZMQUdTKTsKIAogLy8gUHJldmVudCBDKysgc3RhbmRhcmQgbGlicmFyeSBiYXNpY19z
dHJpbmdzdHJlYW0sIG9wZXJhdG9yIG5ldywgZGVsZXRlIGFuZCB0aGVpciByZWxhdGVkIGV4Y2Vw
dGlvbiB0eXBlcyBmcm9tIGJlaW5nIGV4cG9ydGVkIGFzIHdlYWsgc3ltYm9scy4KIFVORVhQT1JU
RURfU1lNQk9MX0xERkxBR1MgPSAtV2wsLXVuZXhwb3J0ZWRfc3ltYm9sIC1XbCxfX1pUSVN0OWJh
ZF9hbGxvYyAtV2wsLXVuZXhwb3J0ZWRfc3ltYm9sIC1XbCxfX1pUSVN0OWV4Y2VwdGlvbiAtV2ws
LXVuZXhwb3J0ZWRfc3ltYm9sIC1XbCxfX1pUU1N0OWJhZF9hbGxvYyAtV2wsLXVuZXhwb3J0ZWRf
c3ltYm9sIC1XbCxfX1pUU1N0OWV4Y2VwdGlvbiAtV2wsLXVuZXhwb3J0ZWRfc3ltYm9sIC1XbCxf
X1pkbFB2U18gLVdsLC11bmV4cG9ydGVkX3N5bWJvbCAtV2wsX19abndtUHYgLVdsLC11bmV4cG9y
dGVkX3N5bWJvbCAtV2wsX19abndtIC1XbCwtdW5leHBvcnRlZF9zeW1ib2wgLVdsLF9fWk5TdDNf
XzE4ZnVuY3Rpb25JRnZON1dlYkNvcmUxMlBvbGljeUFjdGlvbkVFRUMyRU9TNF8gLVdsLC11bmV4
cG9ydGVkX3N5bWJvbCAtV2wsX19aTlN0M19fMThmdW5jdGlvbklGdk43V2ViQ29yZTEyUG9saWN5
QWN0aW9uRUVFQzFFT1M0XyAtV2wsLXVuZXhwb3J0ZWRfc3ltYm9sIC1XbCxfX1pOU3QzX18xOGZ1
bmN0aW9uSUZ2TjdXZWJDb3JlMTJQb2xpY3lBY3Rpb25FRUVhU0VEbiAtV2wsLXVuZXhwb3J0ZWRf
c3ltYm9sIC1XbCxfX1pOS1N0M19fMThmdW5jdGlvbklGdk43V2ViQ29yZTEyUG9saWN5QWN0aW9u
RUVFY2xFUzJfIC1XbCwtdW5leHBvcnRlZF9zeW1ib2wgLVdsLF9fWk5TdDNfXzE4ZnVuY3Rpb25J
RnZON1dlYkNvcmUxMlBvbGljeUFjdGlvbkVFRTRzd2FwRVJTNF8gLVdsLC11bmV4cG9ydGVkX3N5
bWJvbCAtV2wsX19aTlN0M19fMThmdW5jdGlvbklGdk43V2ViQ29yZTEyUG9saWN5QWN0aW9uRUVF
QzFFUktTNF8gLVdsLC11bmV4cG9ydGVkX3N5bWJvbCAtV2wsX19aTlN0M19fMThmdW5jdGlvbklG
dk43V2ViQ29yZTEyUG9saWN5QWN0aW9uRUVFQzJFUktTNF8gLVdsLC11bmV4cG9ydGVkX3N5bWJv
bCAtV2wsX19aTlN0M19fMThmdW5jdGlvbklGdk43V2ViQ29yZTEyUG9saWN5QWN0aW9uRUVFRDFF
diAtV2wsLXVuZXhwb3J0ZWRfc3ltYm9sIC1XbCxfX1pOU3QzX18xOGZ1bmN0aW9uSUZ2TjdXZWJD
b3JlMTJQb2xpY3lBY3Rpb25FRUVEMkV2IC1XbCwtdW5leHBvcnRlZF9zeW1ib2wgLVdsLF9fWk5T
dDNfXzE4ZnVuY3Rpb25JRnZON1dlYkNvcmUxMlBvbGljeUFjdGlvbkVFRWFTRVJLUzRfIC1XbCwt
dW5leHBvcnRlZF9zeW1ib2wgLVdsLF9fWlRWTlN0M19fMTE3YmFkX2Z1bmN0aW9uX2NhbGxFIC1X
bCwtdW5leHBvcnRlZF9zeW1ib2wgLVdsLF9fWlRDTlN0M19fMTE4YmFzaWNfc3RyaW5nc3RyZWFt
SWNOU18xMWNoYXJfdHJhaXRzSWNFRU5TXzlhbGxvY2F0b3JJY0VFRUUwX05TXzEzYmFzaWNfaXN0
cmVhbUljUzJfRUUgLVdsLC11bmV4cG9ydGVkX3N5bWJvbCAtV2wsX19aVENOU3QzX18xMThiYXNp
Y19zdHJpbmdzdHJlYW1JY05TXzExY2hhcl90cmFpdHNJY0VFTlNfOWFsbG9jYXRvckljRUVFRTBf
TlNfMTRiYXNpY19pb3N0cmVhbUljUzJfRUUgLVdsLC11bmV4cG9ydGVkX3N5bWJvbCAtV2wsX19a
VENOU3QzX18xMThiYXNpY19zdHJpbmdzdHJlYW1JY05TXzExY2hhcl90cmFpdHNJY0VFTlNfOWFs
bG9jYXRvckljRUVFRTE2X05TXzEzYmFzaWNfb3N0cmVhbUljUzJfRUUgLVdsLC11bmV4cG9ydGVk
X3N5bWJvbCAtV2wsX19aVFROU3QzX18xMThiYXNpY19zdHJpbmdzdHJlYW1JY05TXzExY2hhcl90
cmFpdHNJY0VFTlNfOWFsbG9jYXRvckljRUVFRSAtV2wsLXVuZXhwb3J0ZWRfc3ltYm9sIC1XbCxf
X1pUVk5TdDNfXzExNWJhc2ljX3N0cmluZ2J1ZkljTlNfMTFjaGFyX3RyYWl0c0ljRUVOU185YWxs
b2NhdG9ySWNFRUVFIC1XbCwtdW5leHBvcnRlZF9zeW1ib2wgLVdsLF9fWlRWTlN0M19fMTE4YmFz
aWNfc3RyaW5nc3RyZWFtSWNOU18xMWNoYXJfdHJhaXRzSWNFRU5TXzlhbGxvY2F0b3JJY0VFRUUg
LVdsLC11bmV4cG9ydGVkX3N5bWJvbCAtV2wsX19aVENOU3QzX18xMThiYXNpY19zdHJpbmdzdHJl
YW1JY05TXzExY2hhcl90cmFpdHNJY0VFTlNfOWFsbG9jYXRvckljRUVFRThfTlNfMTNiYXNpY19v
c3RyZWFtSWNTMl9FRTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vc3BpL2lv
cy9CYWNrQm9hcmRTZXJ2aWNlc1NQSS5oIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9zcGkvaW9z
L0JhY2tCb2FyZFNlcnZpY2VzU1BJLmgKaW5kZXggNmQ4ZDg5NDNlNGNjM2NhNzk5ZjM3MjIxNDQx
MzY5MjQwOWQ3OTYzNy4uMDkwMTRkNDQxZTFhZDliMGY0ZjI3MDM3YmRjMTBjMjMzZDQ1ZWMxYSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9zcGkvaW9zL0JhY2tCb2FyZFNlcnZp
Y2VzU1BJLmgKKysrIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9zcGkvaW9zL0JhY2tCb2FyZFNl
cnZpY2VzU1BJLmgKQEAgLTI3LDExICsyNywyNyBAQAogCiAjaW1wb3J0IDxCYWNrQm9hcmRTZXJ2
aWNlcy9CS1NBbmltYXRpb25GZW5jZS5oPgogI2ltcG9ydCA8QmFja0JvYXJkU2VydmljZXMvQktT
QW5pbWF0aW9uRmVuY2VfUHJpdmF0ZS5oPgorI2ltcG9ydCA8QmFja0JvYXJkU2VydmljZXMvQktT
TW91c2VQb2ludGVyU2VydmljZS5oPgogCiAjZWxzZQogCisjaW1wb3J0ICJCYXNlQm9hcmRTUEku
aCIKKwogQGludGVyZmFjZSBCS1NBbmltYXRpb25GZW5jZUhhbmRsZSA6IE5TT2JqZWN0CiAtICht
YWNoX3BvcnRfdClDQVBvcnQ7CiBAZW5kCiAKK0BjbGFzcyBCS1NNb3VzZVBvaW50ZXJEZXZpY2U7
CisKK0Bwcm90b2NvbCBCS1NNb3VzZVBvaW50ZXJEZXZpY2VPYnNlcnZlciA8TlNPYmplY3Q+CitA
b3B0aW9uYWwKKy0gKHZvaWQpbW91c2VQb2ludGVyRGV2aWNlc0RpZENvbm5lY3Q6KE5TU2V0PEJL
U01vdXNlUG9pbnRlckRldmljZSAqPiAqKW1vdXNlUG9pbnRlckRldmljZXM7CistICh2b2lkKW1v
dXNlUG9pbnRlckRldmljZXNEaWREaXNjb25uZWN0OihOU1NldDxCS1NNb3VzZVBvaW50ZXJEZXZp
Y2UgKj4gKiltb3VzZVBvaW50ZXJEZXZpY2VzOworQGVuZAorCitAaW50ZXJmYWNlIEJLU01vdXNl
UG9pbnRlclNlcnZpY2UgOiBOU09iamVjdAorKyAoQktTTW91c2VQb2ludGVyU2VydmljZSAqKXNo
YXJlZEluc3RhbmNlOworLSAoaWQ8QlNJbnZhbGlkYXRhYmxlPilhZGRQb2ludGVyRGV2aWNlT2Jz
ZXJ2ZXI6KGlkPEJLU01vdXNlUG9pbnRlckRldmljZU9ic2VydmVyPilvYnNlcnZlcjsKK0BlbmQK
KwogI2VuZGlmIC8vIFVTRShBUFBMRV9JTlRFUk5BTF9TREspCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1BsYXRmb3JtL3NwaS9pb3MvQmFzZUJvYXJkU1BJLmggYi9Tb3VyY2UvV2ViS2l0L1Bs
YXRmb3JtL3NwaS9pb3MvQmFzZUJvYXJkU1BJLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYWIwNDE4Njk1YjkwZmQ4
MzFiOGQ2MWFkODE4OWEwYzM5NmNkZGI0MAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJL
aXQvUGxhdGZvcm0vc3BpL2lvcy9CYXNlQm9hcmRTUEkuaApAQCAtMCwwICsxLDM2IEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI2lmIFVTRShBUFBMRV9JTlRFUk5BTF9TREspCisKKyNpbXBvcnQgPEJhc2VCb2Fy
ZC9CU0ludmFsaWRhdGFibGUuaD4KKworI2Vsc2UKKworQHByb3RvY29sIEJTSW52YWxpZGF0YWJs
ZSA8TlNPYmplY3Q+CistICh2b2lkKWludmFsaWRhdGU7CitAZW5kCisKKyNlbmRpZiAvLyBVU0Uo
QVBQTEVfSU5URVJOQUxfU0RLKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2Vi
UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQ
cm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcAppbmRleCA3MTA4YjY1MWEwY2E5NGZjZmMyMjM3
NTIzMTNmNTFiYjEwOTMxN2Y1Li42YjI4M2VmMjQ1OGQ4MzY1OTM0NGJlOWQ1NDU5MGNjMmUxNzZl
MjA0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25Q
YXJhbWV0ZXJzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcm9jZXNzQ3JlYXRp
b25QYXJhbWV0ZXJzLmNwcApAQCAtODUsNiArODUsOSBAQCB2b2lkIFdlYlByb2Nlc3NDcmVhdGlv
blBhcmFtZXRlcnM6OmVuY29kZShJUEM6OkVuY29kZXImIGVuY29kZXIpIGNvbnN0CiAjZW5kaWYK
ICAgICBlbmNvZGVyIDw8IHRleHRDaGVja2VyU3RhdGU7CiAgICAgZW5jb2RlciA8PCBmdWxsS2V5
Ym9hcmRBY2Nlc3NFbmFibGVkOworI2lmIEhBVkUoVUlLSVRfV0lUSF9NT1VTRV9TVVBQT1JUKSAm
JiBQTEFURk9STShJT1MpCisgICAgZW5jb2RlciA8PCBoYXNNb3VzZURldmljZTsKKyNlbmRpZgog
ICAgIGVuY29kZXIgPDwgZGVmYXVsdFJlcXVlc3RUaW1lb3V0SW50ZXJ2YWw7CiAgICAgZW5jb2Rl
ciA8PCBiYWNrRm9yd2FyZENhY2hlQ2FwYWNpdHk7CiAjaWYgUExBVEZPUk0oQ09DT0EpCkBAIC0y
OTQsNiArMjk3LDEwIEBAIGJvb2wgV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyczo6ZGVjb2Rl
KElQQzo6RGVjb2RlciYgZGVjb2RlciwgV2ViUHJvY2Vzc0NyZWF0CiAgICAgICAgIHJldHVybiBm
YWxzZTsKICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHBhcmFtZXRlcnMuZnVsbEtleWJvYXJkQWNj
ZXNzRW5hYmxlZCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKKyNpZiBIQVZFKFVJS0lUX1dJVEhf
TU9VU0VfU1VQUE9SVCkgJiYgUExBVEZPUk0oSU9TKQorICAgIGlmICghZGVjb2Rlci5kZWNvZGUo
cGFyYW1ldGVycy5oYXNNb3VzZURldmljZSkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyNlbmRp
ZgogICAgIGlmICghZGVjb2Rlci5kZWNvZGUocGFyYW1ldGVycy5kZWZhdWx0UmVxdWVzdFRpbWVv
dXRJbnRlcnZhbCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICBpZiAoIWRlY29kZXIuZGVj
b2RlKHBhcmFtZXRlcnMuYmFja0ZvcndhcmRDYWNoZUNhcGFjaXR5KSkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaCBiL1NvdXJj
ZS9XZWJLaXQvU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaAppbmRleCBjYTIz
YzY3NjM4YTdmZTQxNTFiYzM2YTViMmZmMmRkYWRlNWY5Zjg1Li4zZDg2YTc0YjFkM2VlNTEwMTUz
NGFkMzkyNTYyMzIyMWVmYzNlY2FhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9X
ZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQv
V2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oCkBAIC0xMTcsNiArMTE3LDkgQEAgc3RydWN0
IFdlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMgewogICAgIGJvb2wgc2hvdWxkU3VwcHJlc3NN
ZW1vcnlQcmVzc3VyZUhhbmRsZXIgeyBmYWxzZSB9OwogICAgIGJvb2wgc2hvdWxkVXNlRm9udFNt
b290aGluZyB7IHRydWUgfTsKICAgICBib29sIGZ1bGxLZXlib2FyZEFjY2Vzc0VuYWJsZWQgeyBm
YWxzZSB9OworI2lmIEhBVkUoVUlLSVRfV0lUSF9NT1VTRV9TVVBQT1JUKSAmJiBQTEFURk9STShJ
T1MpCisgICAgYm9vbCBoYXNNb3VzZURldmljZSB7IGZhbHNlIH07CisjZW5kaWYKICAgICBib29s
IG1lbW9yeUNhY2hlRGlzYWJsZWQgeyBmYWxzZSB9OwogICAgIGJvb2wgYXR0clN0eWxlRW5hYmxl
ZCB7IGZhbHNlIH07CiAgICAgYm9vbCB1c2VHUFVQcm9jZXNzRm9yTWVkaWFFbmFibGVkIHsgZmFs
c2UgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU291cmNlc0NvY29hLnR4dCBiL1NvdXJj
ZS9XZWJLaXQvU291cmNlc0NvY29hLnR4dAppbmRleCA2OGM0NGI0OTM1NmQ1MzI5YTg2NWVhODI2
ZjI3YjZlM2EwMzA2YmVmLi5lODZkMTVjNmJiZTg4OTAwMGRmYjU5Zjc3YjdhZTBmMDE5M2I5ZjNi
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50eHQKKysrIGIvU291cmNl
L1dlYktpdC9Tb3VyY2VzQ29jb2EudHh0CkBAIC00NjAsNiArNDYwLDcgQEAgVUlQcm9jZXNzL2lv
cy9XS0dlb2xvY2F0aW9uUHJvdmlkZXJJT1MubW0KIFVJUHJvY2Vzcy9pb3MvV0tHZW9sb2NhdGlv
blByb3ZpZGVySU9TT2JqQ1NlY3VyaXR5T3JpZ2luLm1tCiBVSVByb2Nlc3MvaW9zL1dLSGlnaGxp
Z2h0TG9uZ1ByZXNzR2VzdHVyZVJlY29nbml6ZXIubW0KIFVJUHJvY2Vzcy9pb3MvV0tLZXlib2Fy
ZFNjcm9sbGluZ0FuaW1hdG9yLm1tCitVSVByb2Nlc3MvaW9zL1dLTW91c2VEZXZpY2VPYnNlcnZl
ci5tbQogVUlQcm9jZXNzL2lvcy9XS01vdXNlR2VzdHVyZVJlY29nbml6ZXIubW0KIFVJUHJvY2Vz
cy9pb3MvV0tQYXNzd29yZFZpZXcubW0KIFVJUHJvY2Vzcy9pb3MvV0tQREZQYWdlTnVtYmVySW5k
aWNhdG9yLm1tCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJQ
cm9jZXNzUG9vbENvY29hLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViUHJv
Y2Vzc1Bvb2xDb2NvYS5tbQppbmRleCAwOWJmZmU0YzlkY2ZkYzU5ZjAxOTAwNzM0MmZmZWNiYjdi
YjY2NzU2Li5jZjc1NTIyNmVjYjc0MDhjZjAzZDAyZmVkYzI4ZThlMjJhYmFhODdiIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJQcm9jZXNzUG9vbENvY29hLm1t
CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlByb2Nlc3NQb29sQ29jb2Eu
bW0KQEAgLTQwLDYgKzQwLDcgQEAKICNpbXBvcnQgIlRleHRDaGVja2VyLmgiCiAjaW1wb3J0ICJV
c2VySW50ZXJmYWNlSWRpb20uaCIKICNpbXBvcnQgIldLQnJvd3NpbmdDb250ZXh0Q29udHJvbGxl
ckludGVybmFsLmgiCisjaW1wb3J0ICJXS01vdXNlRGV2aWNlT2JzZXJ2ZXIuaCIKICNpbXBvcnQg
IldlYkJhY2tGb3J3YXJkQ2FjaGUuaCIKICNpbXBvcnQgIldlYk1lbW9yeVByZXNzdXJlSGFuZGxl
ci5oIgogI2ltcG9ydCAiV2ViUGFnZUdyb3VwLmgiCkBAIC01MDUsNiArNTA2LDEwIEBAIHZvaWQg
V2ViUHJvY2Vzc1Bvb2w6OnBsYXRmb3JtSW5pdGlhbGl6ZVdlYlByb2Nlc3MoY29uc3QgV2ViUHJv
Y2Vzc1Byb3h5JiBwcm9jZXNzCiAjaWYgSEFWRShDQVRBTFlTVF9VU0VSX0lOVEVSRkFDRV9JRElP
TV9BTkRfU0NBTEVfRkFDVE9SKQogICAgIHBhcmFtZXRlcnMub3ZlcnJpZGVVc2VySW50ZXJmYWNl
SWRpb21BbmRTY2FsZSA9IHsgX1VJQXBwbGljYXRpb25DYXRhbHlzdFVzZXJJbnRlcmZhY2VJZGlv
bSgpLCBfVUlBcHBsaWNhdGlvbkNhdGFseXN0U2NhbGVGYWN0b3IoKSB9OwogI2VuZGlmCisKKyNp
ZiBIQVZFKFVJS0lUX1dJVEhfTU9VU0VfU1VQUE9SVCkgJiYgUExBVEZPUk0oSU9TKQorICAgIHBh
cmFtZXRlcnMuaGFzTW91c2VEZXZpY2UgPSBbW1dLTW91c2VEZXZpY2VPYnNlcnZlciBzaGFyZWRJ
bnN0YW5jZV0gaGFzTW91c2VEZXZpY2VdOworI2VuZGlmCiB9CiAKIHZvaWQgV2ViUHJvY2Vzc1Bv
b2w6OnBsYXRmb3JtSW5pdGlhbGl6ZU5ldHdvcmtQcm9jZXNzKE5ldHdvcmtQcm9jZXNzQ3JlYXRp
b25QYXJhbWV0ZXJzJiBwYXJhbWV0ZXJzKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBy
b2Nlc3NQcm94eS5jcHAKaW5kZXggNWFjZDRiMzBhZTNjYzIxNWIxOTRhZDliYmZjNjYyZmZjNWYy
NGNkNi4uYTE4OTgxMjM4NWZhZWIyM2VjMzg2NmEzNTgxYzY3MjBjNzUzOTVkZCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwCkBAIC0xMDgsNyArMTA4LDcg
QEAgc3RhdGljIGJvb2wgaXNNYWluVGhyZWFkT3JDaGVja0Rpc2FibGVkKCkKICNlbmRpZgogfQog
Ci1zdGF0aWMgSGFzaE1hcDxQcm9jZXNzSWRlbnRpZmllciwgV2ViUHJvY2Vzc1Byb3h5Kj4mIGFs
bFByb2Nlc3NlcygpCitIYXNoTWFwPFByb2Nlc3NJZGVudGlmaWVyLCBXZWJQcm9jZXNzUHJveHkq
PiYgV2ViUHJvY2Vzc1Byb3h5OjphbGxQcm9jZXNzZXMoKQogewogICAgIEFTU0VSVChpc01haW5U
aHJlYWRPckNoZWNrRGlzYWJsZWQoKSk7CiAgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEhhc2hN
YXA8UHJvY2Vzc0lkZW50aWZpZXIsIFdlYlByb2Nlc3NQcm94eSo+PiBtYXA7CkBAIC0yMDksOCAr
MjA5LDE2IEBAIFdlYlByb2Nlc3NQcm94eTo6V2ViUHJvY2Vzc1Byb3h5KFdlYlByb2Nlc3NQb29s
JiBwcm9jZXNzUG9vbCwgV2Vic2l0ZURhdGFTdG9yZSoKICAgICBBU1NFUlRfVU5VU0VEKHJlc3Vs
dCwgcmVzdWx0LmlzTmV3RW50cnkpOwogCiAgICAgV2ViUGFzdGVib2FyZFByb3h5OjpzaW5nbGV0
b24oKS5hZGRXZWJQcm9jZXNzUHJveHkoKnRoaXMpOworCisgICAgcGxhdGZvcm1Jbml0aWFsaXpl
KCk7CiB9CiAKKyNpZiAhUExBVEZPUk0oSU9TKQordm9pZCBXZWJQcm9jZXNzUHJveHk6OnBsYXRm
b3JtSW5pdGlhbGl6ZSgpCit7Cit9CisjZW5kaWYKKwogV2ViUHJvY2Vzc1Byb3h5Ojp+V2ViUHJv
Y2Vzc1Byb3h5KCkKIHsKICAgICBSRUxFQVNFX0FTU0VSVChpc01haW5UaHJlYWRPckNoZWNrRGlz
YWJsZWQoKSk7CkBAIC0yMzksOCArMjQ3LDE2IEBAIFdlYlByb2Nlc3NQcm94eTo6fldlYlByb2Nl
c3NQcm94eSgpCiAjaWYgUExBVEZPUk0oTUFDKQogICAgIEhpZ2hQZXJmb3JtYW5jZUdQVU1hbmFn
ZXI6OnNpbmdsZXRvbigpLnJlbW92ZVByb2Nlc3NSZXF1aXJpbmdIaWdoUGVyZm9ybWFuY2UodGhp
cyk7CiAjZW5kaWYKKworICAgIHBsYXRmb3JtRGVzdHJveSgpOwogfQogCisjaWYgIVBMQVRGT1JN
KElPUykKK3ZvaWQgV2ViUHJvY2Vzc1Byb3h5OjpwbGF0Zm9ybURlc3Ryb3koKQoreworfQorI2Vu
ZGlmCisKIHZvaWQgV2ViUHJvY2Vzc1Byb3h5OjpzZXRJc0luUHJvY2Vzc0NhY2hlKGJvb2wgdmFs
dWUpCiB7CiAgICAgaWYgKHZhbHVlKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJQcm9jZXNzUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nl
c3NQcm94eS5oCmluZGV4IGUwZThkYzBhYzcwOGIxMjQ4YjFjYzgwYWRjYjE5ZDE4NDEyMzljNzMu
LjQ0MzlmMjA3MzJkZGYxYTEzYmNlODM0NTNjMDkyN2UyM2FjOWJiOGUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oCkBAIC0yMTEsNiArMjExLDEwIEBAIHB1Ymxp
YzoKIAogICAgIHN0YXRpYyBib29sIGZ1bGxLZXlib2FyZEFjY2Vzc0VuYWJsZWQoKTsKIAorI2lm
IEhBVkUoVUlLSVRfV0lUSF9NT1VTRV9TVVBQT1JUKSAmJiBQTEFURk9STShJT1MpCisgICAgc3Rh
dGljIHZvaWQgbm90aWZ5SGFzTW91c2VEZXZpY2VDaGFuZ2VkKCk7CisjZW5kaWYKKwogICAgIHZv
aWQgZmV0Y2hXZWJzaXRlRGF0YShQQUw6OlNlc3Npb25JRCwgT3B0aW9uU2V0PFdlYnNpdGVEYXRh
VHlwZT4sIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2Vic2l0ZURhdGEpPiYmKTsKICAgICB2b2lk
IGRlbGV0ZVdlYnNpdGVEYXRhKFBBTDo6U2Vzc2lvbklELCBPcHRpb25TZXQ8V2Vic2l0ZURhdGFU
eXBlPiwgV2FsbFRpbWUgbW9kaWZpZWRTaW5jZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYm
KTsKICAgICB2b2lkIGRlbGV0ZVdlYnNpdGVEYXRhRm9yT3JpZ2lucyhQQUw6OlNlc3Npb25JRCwg
T3B0aW9uU2V0PFdlYnNpdGVEYXRhVHlwZT4sIGNvbnN0IFZlY3RvcjxXZWJDb3JlOjpTZWN1cml0
eU9yaWdpbkRhdGE+JiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKQEAgLTQxMCw2ICs0
MTQsMTEgQEAgcHJvdGVjdGVkOgogICAgIHZvaWQgdmFsaWRhdGVGcmVlemVyU3RhdHVzKCk7CiAK
IHByaXZhdGU6CisgICAgc3RhdGljIEhhc2hNYXA8V2ViQ29yZTo6UHJvY2Vzc0lkZW50aWZpZXIs
IFdlYlByb2Nlc3NQcm94eSo+JiBhbGxQcm9jZXNzZXMoKTsKKworICAgIHZvaWQgcGxhdGZvcm1J
bml0aWFsaXplKCk7CisgICAgdm9pZCBwbGF0Zm9ybURlc3Ryb3koKTsKKwogICAgIC8vIElQQyBt
ZXNzYWdlIGhhbmRsZXJzLgogICAgIHZvaWQgdXBkYXRlQmFja0ZvcndhcmRJdGVtKGNvbnN0IEJh
Y2tGb3J3YXJkTGlzdEl0ZW1TdGF0ZSYpOwogICAgIHZvaWQgZGlkRGVzdHJveUZyYW1lKFdlYkNv
cmU6OkZyYW1lSWRlbnRpZmllcik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9pb3MvV0tNb3VzZURldmljZU9ic2VydmVyLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9p
b3MvV0tNb3VzZURldmljZU9ic2VydmVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTA3MDQxNjQwYjJkZjRmZmY2
OGQxNTdiZmQ0NDhjNjk4YTcxMTNiOAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL2lvcy9XS01vdXNlRGV2aWNlT2JzZXJ2ZXIuaApAQCAtMCwwICsxLDQ3IEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworI2lmIEhBVkUoVUlLSVRfV0lUSF9NT1VTRV9TVVBQT1JUKSAmJiBQTEFURk9S
TShJT1MpCisKKyNpbXBvcnQgIkJhY2tCb2FyZFNlcnZpY2VzU1BJLmgiCisKK25hbWVzcGFjZSBX
ZWJLaXQgeworY2xhc3MgV2ViUHJvY2Vzc1Byb3h5OworfQorCitAaW50ZXJmYWNlIFdLTW91c2VE
ZXZpY2VPYnNlcnZlciA6IE5TT2JqZWN0PEJLU01vdXNlUG9pbnRlckRldmljZU9ic2VydmVyPgor
CisrIChXS01vdXNlRGV2aWNlT2JzZXJ2ZXIgKilzaGFyZWRJbnN0YW5jZTsKKworLSAodm9pZClz
dGFydDsKKy0gKHZvaWQpc3RvcDsKKworQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBC
T09MIGhhc01vdXNlRGV2aWNlOworCistICh2b2lkKV9zZXRIYXNNb3VzZURldmljZUZvclRlc3Rp
bmc6KEJPT0wpaGFzTW91c2VEZXZpY2U7CisKK0BlbmQKKworI2VuZGlmIC8vIEhBVkUoVUlLSVRf
V0lUSF9NT1VTRV9TVVBQT1JUKSAmJiBQTEFURk9STShJT1MpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tNb3VzZURldmljZU9ic2VydmVyLm1tIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvaW9zL1dLTW91c2VEZXZpY2VPYnNlcnZlci5tbQpuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43
YjdkMmU3YTFkMzY1NGQyZjA2NzBjOWNkNGI0YTM3ZmFmZDUyOTlmCi0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLTW91c2VEZXZpY2VPYnNlcnZlci5tbQpA
QCAtMCwwICsxLDk2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2ltcG9ydCAiY29uZmlnLmgiCisjaW1wb3J0
ICJXS01vdXNlRGV2aWNlT2JzZXJ2ZXIuaCIKKworI2lmIEhBVkUoVUlLSVRfV0lUSF9NT1VTRV9T
VVBQT1JUKSAmJiBQTEFURk9STShJT1MpCisKKyNpbXBvcnQgIldlYlByb2Nlc3NQcm94eS5oIgor
CitAaW1wbGVtZW50YXRpb24gV0tNb3VzZURldmljZU9ic2VydmVyIHsKKyAgICBCT09MIF9oYXNN
b3VzZURldmljZTsKKyAgICBpZDxCU0ludmFsaWRhdGFibGU+IF90b2tlbjsKK30KKworKyAoV0tN
b3VzZURldmljZU9ic2VydmVyICopc2hhcmVkSW5zdGFuY2UgeworICAgIHN0YXRpYyBXS01vdXNl
RGV2aWNlT2JzZXJ2ZXIgKmluc3RhbmNlOworICAgIGlmICghaW5zdGFuY2UpCisgICAgICAgIGlu
c3RhbmNlID0gW1tXS01vdXNlRGV2aWNlT2JzZXJ2ZXIgYWxsb2NdIGluaXRdOworICAgIHJldHVy
biBpbnN0YW5jZTsKK30KKworLSAodm9pZClkZWFsbG9jCit7CisgICAgaWYgKF90b2tlbikKKyAg
ICAgICAgW3NlbGYgc3RvcF07CisKKyAgICBbc3VwZXIgZGVhbGxvY107Cit9CisKKyNwcmFnbWEg
bWFyayAtIEJLU01vdXNlUG9pbnRlckRldmljZU9ic2VydmVyIHN0YXRlCisKKy0gKHZvaWQpc3Rh
cnQKK3sKKyAgICBpZiAoX3Rva2VuKQorICAgICAgICByZXR1cm47CisKKyAgICBfdG9rZW4gPSBb
W0JLU01vdXNlUG9pbnRlclNlcnZpY2Ugc2hhcmVkSW5zdGFuY2VdIGFkZFBvaW50ZXJEZXZpY2VP
YnNlcnZlcjpzZWxmXTsKK30KKworLSAodm9pZClzdG9wCit7CisgICAgaWYgKCFfdG9rZW4pCisg
ICAgICAgIHJldHVybjsKKworICAgIFtfdG9rZW4gaW52YWxpZGF0ZV07CisgICAgX3Rva2VuID0g
bmlsOworfQorCisjcHJhZ21hIG1hcmsgLSBCS1NNb3VzZVBvaW50ZXJEZXZpY2VPYnNlcnZlciBo
YW5kbGVycworCistICh2b2lkKW1vdXNlUG9pbnRlckRldmljZXNEaWRDaGFuZ2U6KE5TU2V0PEJL
U01vdXNlUG9pbnRlckRldmljZSAqPiAqKW1vdXNlUG9pbnRlckRldmljZXMKK3sKKyAgICBCT09M
IGhhc01vdXNlRGV2aWNlID0gW21vdXNlUG9pbnRlckRldmljZXMgY291bnRdID4gMDsKKyAgICBp
ZiAoaGFzTW91c2VEZXZpY2UgPT0gX2hhc01vdXNlRGV2aWNlKQorICAgICAgICByZXR1cm47CisK
KyAgICBfaGFzTW91c2VEZXZpY2UgPSBoYXNNb3VzZURldmljZTsKKworICAgIFdlYktpdDo6V2Vi
UHJvY2Vzc1Byb3h5Ojpub3RpZnlIYXNNb3VzZURldmljZUNoYW5nZWQoKTsKK30KKworI3ByYWdt
YSBtYXJrIC0gVGVzdGluZworCistICh2b2lkKV9zZXRIYXNNb3VzZURldmljZUZvclRlc3Rpbmc6
KEJPT0wpaGFzTW91c2VEZXZpY2UKK3sKKyAgICBfaGFzTW91c2VEZXZpY2UgPSBoYXNNb3VzZURl
dmljZTsKKworICAgIFdlYktpdDo6V2ViUHJvY2Vzc1Byb3h5Ojpub3RpZnlIYXNNb3VzZURldmlj
ZUNoYW5nZWQoKTsKK30KKworQGVuZAorCisjZW5kaWYgLy8gSEFWRShVSUtJVF9XSVRIX01PVVNF
X1NVUFBPUlQpICYmIFBMQVRGT1JNKElPUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL2lvcy9XZWJQcm9jZXNzUHJveHlJT1MubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9pb3MvV2ViUHJvY2Vzc1Byb3h5SU9TLm1tCmluZGV4IGViMTc3Y2Q3Y2RmNTFmMDI3ZjdjNWIx
ZWM3MmM4NzNmZmE2MTg0ZmEuLmE4MGYwMDY2YzhkNTBhZjhhYjIwMGU3ZWM0ZTM1MDM3Mjg2ZTM2
ZDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XZWJQcm9jZXNzUHJv
eHlJT1MubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dlYlByb2Nlc3NQcm94
eUlPUy5tbQpAQCAtMzAsMTAgKzMwLDQyIEBACiAKICNpbXBvcnQgIkFjY2Vzc2liaWxpdHlTdXBw
b3J0U1BJLmgiCiAjaW1wb3J0ICJXS0Z1bGxLZXlib2FyZEFjY2Vzc1dhdGNoZXIuaCIKKyNpbXBv
cnQgIldLTW91c2VEZXZpY2VPYnNlcnZlci5oIgogI2ltcG9ydCAiV2ViUHJvY2Vzc01lc3NhZ2Vz
LmgiCiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCisjaWYgUExBVEZPUk0oSU9TKQorCit2b2lkIFdl
YlByb2Nlc3NQcm94eTo6cGxhdGZvcm1Jbml0aWFsaXplKCkKK3sKKyNpZiBIQVZFKFVJS0lUX1dJ
VEhfTU9VU0VfU1VQUE9SVCkKKyAgICBpZiAoV2ViUHJvY2Vzc1Byb3h5OjphbGxQcm9jZXNzZXMo
KS5zaXplKCkgPT0gMSkKKyAgICAgICAgW1tXS01vdXNlRGV2aWNlT2JzZXJ2ZXIgc2hhcmVkSW5z
dGFuY2VdIHN0YXJ0XTsKKyNlbmRpZgorfQorCit2b2lkIFdlYlByb2Nlc3NQcm94eTo6cGxhdGZv
cm1EZXN0cm95KCkKK3sKKyNpZiBIQVZFKFVJS0lUX1dJVEhfTU9VU0VfU1VQUE9SVCkKKyAgICBp
ZiAoV2ViUHJvY2Vzc1Byb3h5OjphbGxQcm9jZXNzZXMoKS5pc0VtcHR5KCkpCisgICAgICAgIFtb
V0tNb3VzZURldmljZU9ic2VydmVyIHNoYXJlZEluc3RhbmNlXSBzdG9wXTsKKyNlbmRpZgorfQor
CisjaWYgSEFWRShVSUtJVF9XSVRIX01PVVNFX1NVUFBPUlQpCisKK3ZvaWQgV2ViUHJvY2Vzc1By
b3h5Ojpub3RpZnlIYXNNb3VzZURldmljZUNoYW5nZWQoKQoreworICAgIGJvb2wgaGFzTW91c2VE
ZXZpY2UgPSBbW1dLTW91c2VEZXZpY2VPYnNlcnZlciBzaGFyZWRJbnN0YW5jZV0gaGFzTW91c2VE
ZXZpY2VdOworICAgIGZvciAoYXV0byogd2ViUHJvY2Vzc1Byb3h5IDogV2ViUHJvY2Vzc1Byb3h5
OjphbGxQcm9jZXNzZXMoKS52YWx1ZXMoKSkKKyAgICAgICAgd2ViUHJvY2Vzc1Byb3h5LT5zZW5k
KE1lc3NhZ2VzOjpXZWJQcm9jZXNzOjpTZXRIYXNNb3VzZURldmljZShoYXNNb3VzZURldmljZSks
IDApOworfQorCisjZW5kaWYgLy8gSEFWRShVSUtJVF9XSVRIX01PVVNFX1NVUFBPUlQpCisKKyNl
bmRpZiAvLyBQTEFURk9STShJT1MpCisKIGJvb2wgV2ViUHJvY2Vzc1Byb3h5OjpmdWxsS2V5Ym9h
cmRBY2Nlc3NFbmFibGVkKCkKIHsKICNpZiBFTkFCTEUoRlVMTF9LRVlCT0FSRF9BQ0NFU1MpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
IGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA1
NzIxMzU2MmFiYzFiZTM4NDJiZTMxZTg2MTczNzBkZTI4NzhjZDBhLi4yODRkZTY0ZDJjOWI0Mzhl
Yjc3YmMwMDczMDYyZTRiMjBkZWUxYjUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYktp
dC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTEzNzksNiArMTM3OSw4IEBACiAJCTkzQkRFQjAx
MTcxREQ3QUYwMEJGRUUxQiAvKiBXS1BhZ2VMb2FkVHlwZXNQcml2YXRlLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0JERUIwMDE3MUREN0FGMDBCRkVF
MUIgLyogV0tQYWdlTG9hZFR5cGVzUHJpdmF0ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07CiAJCTkzRTZBNEVFMUJDNUREMzkwMEY4QTBFNyAvKiBfV0tI
aXRUZXN0UmVzdWx0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA5M0U2QTRFRDFCQzVERDM5MDBGOEEwRTcgLyogX1dLSGl0VGVzdFJlc3VsdC5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTkzRjU0OUI0MUUz
MTc0QjcwMDBFNzIzOSAvKiBXS1NuYXBzaG90Q29uZmlndXJhdGlvbi5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNGNTQ5QjMxRTMxNzRCNzAwMEU3MjM5
IC8qIFdLU25hcHNob3RDb25maWd1cmF0aW9uLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMg
PSAoUHVibGljLCApOyB9OyB9OworCQk5NTBGMjg4MDI1MjQxNEVBMDBCNzRGMUMgLyogV0tNb3Vz
ZURldmljZU9ic2VydmVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA5NTBGMjg3RTI1MjQxNEU5MDBCNzRGMUMgLyogV0tNb3VzZURldmljZU9ic2VydmVy
LmggKi87IH07CisJCTk1Qzk0MzkxMjUyM0MwRDAwMDU0RjNENSAvKiBCYXNlQm9hcmRTUEkuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk1Qzk0MzkwMjUy
M0MwRDAwMDU0RjNENSAvKiBCYXNlQm9hcmRTUEkuaCAqLzsgfTsKIAkJOTkwMzZBRTIyM0E5NDlD
RjAwMDBCMDZBIC8qIF9XS0luc3BlY3RvckRlYnVnZ2FibGVJbmZvSW50ZXJuYWwuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk5MDM2QUUxMjNBOTQ5Q0Uw
MDAwQjA2QSAvKiBfV0tJbnNwZWN0b3JEZWJ1Z2dhYmxlSW5mb0ludGVybmFsLmggKi87IH07CiAJ
CTk5MDM2QUU1MjNBOTU4NzUwMDAwQjA2QSAvKiBBUElEZWJ1Z2dhYmxlSW5mby5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTkwMzZBRTMyM0E5NTg3NDAw
MDBCMDZBIC8qIEFQSURlYnVnZ2FibGVJbmZvLmggKi87IH07CiAJCTk5MDM2QUU5MjNBOTcwODcw
MDAwQjA2QSAvKiBEZWJ1Z2dhYmxlSW5mb0RhdGEuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk5MDM2QUU3MjNBOTcwODcwMDAwQjA2QSAvKiBEZWJ1Z2dh
YmxlSW5mb0RhdGEuaCAqLzsgfTsKQEAgLTQ0MjYsNiArNDQyOCw5IEBACiAJCTkzRTZBNEVEMUJD
NUREMzkwMEY4QTBFNyAvKiBfV0tIaXRUZXN0UmVzdWx0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IF9XS0hpdFRlc3RSZXN1bHQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJOTNGNTQ5QjMxRTMxNzRCNzAwMEU3MjM5IC8qIFdLU25hcHNob3RDb25maWd1cmF0aW9u
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdLU25hcHNob3RDb25maWd1cmF0
aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzRjU0OUI1MUUzMTc0REEwMDBF
NzIzOSAvKiBXS1NuYXBzaG90Q29uZmlndXJhdGlvbi5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLm9iamNwcDsgcGF0aCA9IFdLU25hcHNob3RDb25maWd1cmF0aW9uLm1tOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQk5NTBGMjg3RTI1MjQxNEU5MDBCNzRGMUMgLyogV0tNb3VzZURl
dmljZU9ic2VydmVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFdLTW91c2VE
ZXZpY2VPYnNlcnZlci5oOyBwYXRoID0gaW9zL1dLTW91c2VEZXZpY2VPYnNlcnZlci5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5NTBGMjg3RjI1MjQxNEVBMDBCNzRGMUMgLyogV0tN
b3VzZURldmljZU9ic2VydmVyLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBu
YW1lID0gV0tNb3VzZURldmljZU9ic2VydmVyLm1tOyBwYXRoID0gaW9zL1dLTW91c2VEZXZpY2VP
YnNlcnZlci5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTVDOTQzOTAyNTIzQzBE
MDAwNTRGM0Q1IC8qIEJhc2VCb2FyZFNQSS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBCYXNlQm9hcmRTUEkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTkwMzZB
RTEyM0E5NDlDRTAwMDBCMDZBIC8qIF9XS0luc3BlY3RvckRlYnVnZ2FibGVJbmZvSW50ZXJuYWwu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gX1dLSW5zcGVjdG9yRGVidWdnYWJs
ZUluZm9JbnRlcm5hbC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5OTAzNkFFMzIz
QTk1ODc0MDAwMEIwNkEgLyogQVBJRGVidWdnYWJsZUluZm8uaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gQVBJRGVidWdnYWJsZUluZm8uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJOTkwMzZBRTQyM0E5NTg3NDAwMDBCMDZBIC8qIEFQSURlYnVnZ2FibGVJbmZvLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEFQSURlYnVnZ2FibGVJbmZv
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTcwMjMsNiArNzAyOCw4IEBACiAJ
CQkJOTMzREY4MkYxQjNCQzBCNDAwQUVBOUUzIC8qIFdLSW1hZ2VQcmV2aWV3Vmlld0NvbnRyb2xs
ZXIubW0gKi8sCiAJCQkJMkRENUUxMjcyMTBBREM3QTAwREI2MDEyIC8qIFdLS2V5Ym9hcmRTY3Jv
bGxpbmdBbmltYXRvci5oICovLAogCQkJCTJERDVFMTI2MjEwQURDN0EwMERCNjAxMiAvKiBXS0tl
eWJvYXJkU2Nyb2xsaW5nQW5pbWF0b3IubW0gKi8sCisJCQkJOTUwRjI4N0UyNTI0MTRFOTAwQjc0
RjFDIC8qIFdLTW91c2VEZXZpY2VPYnNlcnZlci5oICovLAorCQkJCTk1MEYyODdGMjUyNDE0RUEw
MEI3NEYxQyAvKiBXS01vdXNlRGV2aWNlT2JzZXJ2ZXIubW0gKi8sCiAJCQkJMkRCOTQyOTcyMzRF
N0E3RjAwRTc3NkFEIC8qIFdLTW91c2VHZXN0dXJlUmVjb2duaXplci5oICovLAogCQkJCTJEQjk0
Mjk4MjM0RTdBN0YwMEU3NzZBRCAvKiBXS01vdXNlR2VzdHVyZVJlY29nbml6ZXIubW0gKi8sCiAJ
CQkJQTE1RUVERTQxRTMwMUNFRTAwMDA2OUIwIC8qIFdLUGFzc3dvcmRWaWV3LmggKi8sCkBAIC0x
MDM4Myw2ICsxMDM5MCw3IEBACiAJCQljaGlsZHJlbiA9ICgKIAkJCQlDRTFBMEJDQzFBNDhFNkM2
MDA1NEVGNzQgLyogQXNzZXJ0aW9uU2VydmljZXNTUEkuaCAqLywKIAkJCQlDREEwNDFGMzFBQ0Uy
MTA1MDA0QTEzRUMgLyogQmFja0JvYXJkU2VydmljZXNTUEkuaCAqLywKKwkJCQk5NUM5NDM5MDI1
MjNDMEQwMDA1NEYzRDUgLyogQmFzZUJvYXJkU1BJLmggKi8sCiAJCQkJMkQ0QUYwODgyMDQ0QzND
NDAwNkM4ODE3IC8qIEZyb250Qm9hcmRTZXJ2aWNlc1NQSS5oICovLAogCQkJCUExM0IzREExMjA3
RjM5REUwMDkwQzU4RCAvKiBNb2JpbGVXaUZpU1BJLmggKi8sCiAJCQkJMzE3OEFGOTcyMEUyQTdG
ODAwNzRERTk0IC8qIFBERktpdFNQSS5oICovLApAQCAtMTA3NDksNiArMTA3NTcsNyBAQAogCQkJ
CTI5MEY0MjcyMTcyQTBDNzQwMDkzOUZGMCAvKiBBdXhpbGlhcnlQcm9jZXNzU3VwcGxlbWVudC5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJQ0RBMDQxRjQxQUNFMjEwNTAwNEExM0VDIC8qIEJhY2tCb2Fy
ZFNlcnZpY2VzU1BJLmggaW4gSGVhZGVycyAqLywKIAkJCQk0NkEyQjYwOTFFNTY3NkE2MDBDM0RF
REEgLyogQmFja2dyb3VuZFByb2Nlc3NSZXNwb25zaXZlbmVzc1RpbWVyLmggaW4gSGVhZGVycyAq
LywKKwkJCQk5NUM5NDM5MTI1MjNDMEQwMDA1NEYzRDUgLyogQmFzZUJvYXJkU1BJLmggaW4gSGVh
ZGVycyAqLywKIAkJCQlFMTY0QTJGMjE5MUFGMTRFMDAxMDczN0QgLyogQmxvYkRhdGFGaWxlUmVm
ZXJlbmNlV2l0aFNhbmRib3hFeHRlbnNpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCUUxNzA4NzZD
MTZENkNBNjkwMEY5OTIyNiAvKiBCbG9iUmVnaXN0cnlQcm94eS5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJNEY2MDE0MzIxNTVDNUFBMjAwMUZCREUwIC8qIEJsb2NraW5nUmVzcG9uc2VNYXAuaCBpbiBI
ZWFkZXJzICovLApAQCAtMTE2MDYsNiArMTE2MTUsNyBAQAogCQkJCTVDQUJEQzg2MjJDNDBGREUw
MDFFREU4RSAvKiBXS01lc3NhZ2VMaXN0ZW5lci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQzExRTE2
OTQyMTJCODdDNTAwOTg1RkY2IC8qIFdLTW9ja0Rpc3BsYXkuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTQxMUE4RERCMjBEREQxQUMwMDYwRDM0RiAvKiBXS01vY2tNZWRpYURldmljZS5oIGluIEhlYWRl
cnMgKi8sCisJCQkJOTUwRjI4ODAyNTI0MTRFQTAwQjc0RjFDIC8qIFdLTW91c2VEZXZpY2VPYnNl
cnZlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMkRCOTQyOTkyMzRFN0E3RjAwRTc3NkFEIC8qIFdL
TW91c2VHZXN0dXJlUmVjb2duaXplci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkM0MDc1RkUxMjRG
RjAyNzAwNjhGMjBBIC8qIFdLTXV0YWJsZUFycmF5LmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzQw
NzYwMDEyNEZGMDI3MDA2OEYyMEEgLyogV0tNdXRhYmxlRGljdGlvbmFyeS5oIGluIEhlYWRlcnMg
Ki8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
V2ViQ2hyb21lQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwCmluZGV4IGRlMzdhZWM2MTNlMWFiNTVmODhjMzE5NGZj
MGIwMjI2OGE1ZDMxMjQuLmQ2MGVlNTlkOWQxNDM0YjQ4YzRjYzM5MmI0ZGQ0ZDI1MjQ3MjNiNDkg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJD
aHJvbWVDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwCkBAIC01MDYsNiArNTA2LDE2IEBAIEtleWJvYXJkVUlN
b2RlIFdlYkNocm9tZUNsaWVudDo6a2V5Ym9hcmRVSU1vZGUoKQogICAgIHJldHVybiBtX3BhZ2Uu
a2V5Ym9hcmRVSU1vZGUoKTsKIH0KIAorYm9vbCBXZWJDaHJvbWVDbGllbnQ6OmhvdmVyU3VwcG9y
dGVkQnlBbnlBdmFpbGFibGVQb2ludGluZ0RldmljZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1f
cGFnZS5ob3ZlclN1cHBvcnRlZEJ5QW55QXZhaWxhYmxlUG9pbnRpbmdEZXZpY2UoKTsKK30KKwor
T3B0aW9uU2V0PFBvaW50ZXJDaGFyYWN0ZXJpc3RpY3M+IFdlYkNocm9tZUNsaWVudDo6cG9pbnRl
ckNoYXJhY3RlcmlzdGljc09mQWxsQXZhaWxhYmxlUG9pbnRpbmdEZXZpY2VzKCkgY29uc3QKK3sK
KyAgICByZXR1cm4gbV9wYWdlLnBvaW50ZXJDaGFyYWN0ZXJpc3RpY3NPZkFsbEF2YWlsYWJsZVBv
aW50aW5nRGV2aWNlcygpOworfQorCiAjaWYgRU5BQkxFKFBPSU5URVJfTE9DSykKIAogYm9vbCBX
ZWJDaHJvbWVDbGllbnQ6OnJlcXVlc3RQb2ludGVyTG9jaygpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmggYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKaW5k
ZXggYmRiNGRmZmJiMDE1YTM3NzIwNmJkYjQyNWE3MjVhZDY0ZTAxNTg3Yi4uNTBmNDM0YzIwOGZk
YTQ0NzNjZjZiYjQ2MTYyNTNiMDEwN2ZiYTVjOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaApAQCAtMTEy
LDYgKzExMiw5IEBAIHByaXZhdGU6CiAKICAgICBXZWJDb3JlOjpLZXlib2FyZFVJTW9kZSBrZXli
b2FyZFVJTW9kZSgpIGZpbmFsOwogCisgICAgYm9vbCBob3ZlclN1cHBvcnRlZEJ5QW55QXZhaWxh
YmxlUG9pbnRpbmdEZXZpY2UoKSBjb25zdCBmaW5hbDsKKyAgICBPcHRpb25TZXQ8V2ViQ29yZTo6
UG9pbnRlckNoYXJhY3RlcmlzdGljcz4gcG9pbnRlckNoYXJhY3RlcmlzdGljc09mQWxsQXZhaWxh
YmxlUG9pbnRpbmdEZXZpY2VzKCkgY29uc3QgZmluYWw7CisKICAgICAvLyBIb3N0V2luZG93IG1l
bWJlciBmdW5jdGlvbiBmaW5hbHMuCiAgICAgdm9pZCBpbnZhbGlkYXRlUm9vdFZpZXcoY29uc3Qg
V2ViQ29yZTo6SW50UmVjdCYpIGZpbmFsOwogICAgIHZvaWQgaW52YWxpZGF0ZUNvbnRlbnRzQW5k
Um9vdFZpZXcoY29uc3QgV2ViQ29yZTo6SW50UmVjdCYpIGZpbmFsOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCmluZGV4IGQ1M2QzMDQzZjVhNzYxMGRlYmJlMzI1
NzBhNDhkMGUyNWFmNDdlMTIuLmQwOGFmNWE1NzAyNGNhYWM2NzY4NzBiY2Y5MDlmNGU3ZTFkMzRm
OWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2Uu
aAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKQEAgLTc1
LDYgKzc1LDcgQEAKICNpbmNsdWRlIDxXZWJDb3JlL1BhZ2VJZGVudGlmaWVyLmg+CiAjaW5jbHVk
ZSA8V2ViQ29yZS9QYWdlT3ZlcmxheS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUGx1Z2luRGF0YS5o
PgorI2luY2x1ZGUgPFdlYkNvcmUvUG9pbnRlckNoYXJhY3RlcmlzdGljcy5oPgogI2luY2x1ZGUg
PFdlYkNvcmUvUG9pbnRlcklELmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9SZW5kZXJpbmdNb2RlLmg+
CiAjaW5jbHVkZSA8V2ViQ29yZS9TZWN1cml0eVBvbGljeVZpb2xhdGlvbkV2ZW50Lmg+CkBAIC00
MTUsNiArNDE2LDkgQEAgcHVibGljOgogICAgIFN0cmluZyBwbGF0Zm9ybVVzZXJBZ2VudChjb25z
dCBVUkwmKSBjb25zdDsKICAgICBXZWJDb3JlOjpLZXlib2FyZFVJTW9kZSBrZXlib2FyZFVJTW9k
ZSgpOwogCisgICAgYm9vbCBob3ZlclN1cHBvcnRlZEJ5QW55QXZhaWxhYmxlUG9pbnRpbmdEZXZp
Y2UoKSBjb25zdDsKKyAgICBPcHRpb25TZXQ8V2ViQ29yZTo6UG9pbnRlckNoYXJhY3RlcmlzdGlj
cz4gcG9pbnRlckNoYXJhY3RlcmlzdGljc09mQWxsQXZhaWxhYmxlUG9pbnRpbmdEZXZpY2VzKCkg
Y29uc3Q7CisKICAgICB2b2lkIGRpZEluc2VydE1lbnVFbGVtZW50KFdlYkNvcmU6OkhUTUxNZW51
RWxlbWVudCYpOwogICAgIHZvaWQgZGlkUmVtb3ZlTWVudUVsZW1lbnQoV2ViQ29yZTo6SFRNTE1l
bnVFbGVtZW50Jik7CiAgICAgdm9pZCBkaWRJbnNlcnRNZW51SXRlbUVsZW1lbnQoV2ViQ29yZTo6
SFRNTE1lbnVJdGVtRWxlbWVudCYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYlBhZ2UvZ3RrL1dlYlBhZ2VHdGsuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYlBhZ2UvZ3RrL1dlYlBhZ2VHdGsuY3BwCmluZGV4IGRhNDc1NTAyYTMwYTM5ODUxYTE3ZjVl
NzBlYjcyYzQzYTBjM2FmNzIuLmQ5YWY5OTRjZjA5MDlmMGJiYmI2ZmU3NGM2OGVkNzAzYmZlNzVl
NzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL2d0ay9XZWJQ
YWdlR3RrLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9ndGsvV2Vi
UGFnZUd0ay5jcHAKQEAgLTQzLDYgKzQzLDggQEAKICNpbmNsdWRlIDxXZWJDb3JlL05vdEltcGxl
bWVudGVkLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9QYWdlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Q
bGF0Zm9ybUtleWJvYXJkRXZlbnQuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1BsYXRmb3JtU2NyZWVu
Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9Qb2ludGVyQ2hhcmFjdGVyaXN0aWNzLmg+CiAjaW5jbHVk
ZSA8V2ViQ29yZS9SZW5kZXJUaGVtZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU2V0dGluZ3MuaD4K
ICNpbmNsdWRlIDxXZWJDb3JlL1NoYXJlZEJ1ZmZlci5oPgpAQCAtMTI5LDYgKzEzMSwyNCBAQCBT
dHJpbmcgV2ViUGFnZTo6cGxhdGZvcm1Vc2VyQWdlbnQoY29uc3QgVVJMJiB1cmwpIGNvbnN0CiAg
ICAgcmV0dXJuIFdlYkNvcmU6OnN0YW5kYXJkVXNlckFnZW50Rm9yVVJMKHVybCk7CiB9CiAKK2Jv
b2wgV2ViUGFnZTo6aG92ZXJTdXBwb3J0ZWRCeUFueUF2YWlsYWJsZVBvaW50aW5nRGV2aWNlKCkg
Y29uc3QKK3sKKyNpZiBFTkFCTEUoVE9VQ0hfRVZFTlRTKQorICAgIHJldHVybiAhc2NyZWVuSGFz
VG91Y2hEZXZpY2UoKTsKKyNlbHNlCisgICAgcmV0dXJuIHRydWU7CisjZW5kaWYKK30KKworT3B0
aW9uU2V0PFBvaW50ZXJDaGFyYWN0ZXJpc3RpY3M+IFdlYlBhZ2U6OnBvaW50ZXJDaGFyYWN0ZXJp
c3RpY3NPZkFsbEF2YWlsYWJsZVBvaW50aW5nRGV2aWNlcygpIGNvbnN0Cit7CisjaWYgRU5BQkxF
KFRPVUNIX0VWRU5UUykKKyAgICBpZiAoc2NyZWVuSGFzVG91Y2hEZXZpY2UoKSkKKyAgICAgICAg
cmV0dXJuIFBvaW50ZXJDaGFyYWN0ZXJpc3RpY3M6OkNvYXJzZTsKKyNlbmRpZgorICAgIHJldHVy
biBQb2ludGVyQ2hhcmFjdGVyaXN0aWNzOjpGaW5lOworfQorCiB2b2lkIFdlYlBhZ2U6OmdldENl
bnRlckZvclpvb21HZXN0dXJlKGNvbnN0IEludFBvaW50JiBjZW50ZXJJblZpZXdDb29yZGluYXRl
cywgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJDb3JlOjpJbnRQb2ludCYmKT4mJiBjb21wbGV0
aW9uSGFuZGxlcikKIHsKICAgICBJbnRQb2ludCByZXN1bHQgPSBtYWluRnJhbWVWaWV3KCktPnJv
b3RWaWV3VG9Db250ZW50cyhjZW50ZXJJblZpZXdDb29yZGluYXRlcyk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbSBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tCmluZGV4IDFlZjFh
MTg5OGFkM2Y4Zjk2YWZiNDcwMjg0ZTY3ZDFmNjg3NzczNDMuLjFmODljNTFiZDZhOTc2ODdhYjI5
YzI3ZTI4YzIxOGRjZWE1ZTk5ZjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tCkBAIC0xMTYsNiArMTE2LDcgQEAKICNpbXBvcnQg
PFdlYkNvcmUvUGxhdGZvcm1LZXlib2FyZEV2ZW50Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL1BsYXRm
b3JtTW91c2VFdmVudC5oPgogI2ltcG9ydCA8V2ViQ29yZS9Qb2ludGVyQ2FwdHVyZUNvbnRyb2xs
ZXIuaD4KKyNpbXBvcnQgPFdlYkNvcmUvUG9pbnRlckNoYXJhY3RlcmlzdGljcy5oPgogI2ltcG9y
dCA8V2ViQ29yZS9RdWlya3MuaD4KICNpbXBvcnQgPFdlYkNvcmUvUmFuZ2UuaD4KICNpbXBvcnQg
PFdlYkNvcmUvUmVuZGVyQmxvY2suaD4KQEAgLTM5ODYsNiArMzk4NywzMCBAQCBTdHJpbmcgV2Vi
UGFnZTo6cGxhdGZvcm1Vc2VyQWdlbnQoY29uc3QgVVJMJikgY29uc3QKICAgICByZXR1cm4gU3Ry
aW5nKCk7CiB9CiAKK3N0YXRpYyBib29sIGhhc01vdXNlRGV2aWNlKCkKK3sKKyNpZiBIQVZFKFVJ
S0lUX1dJVEhfTU9VU0VfU1VQUE9SVCkgJiYgUExBVEZPUk0oSU9TKQorICAgIHJldHVybiBXZWJQ
cm9jZXNzOjpzaW5nbGV0b24oKS5oYXNNb3VzZURldmljZSgpOworI2VsaWYgSEFWRShVSUtJVF9X
SVRIX01PVVNFX1NVUFBPUlQpICYmIFBMQVRGT1JNKE1BQ0NBVEFMWVNUKQorICAgIHJldHVybiB0
cnVlOworI2Vsc2UKKyAgICByZXR1cm4gZmFsc2U7CisjZW5kaWYKK30KKworYm9vbCBXZWJQYWdl
Ojpob3ZlclN1cHBvcnRlZEJ5QW55QXZhaWxhYmxlUG9pbnRpbmdEZXZpY2UoKSBjb25zdAorewor
ICAgIHJldHVybiBoYXNNb3VzZURldmljZSgpOworfQorCitPcHRpb25TZXQ8UG9pbnRlckNoYXJh
Y3RlcmlzdGljcz4gV2ViUGFnZTo6cG9pbnRlckNoYXJhY3RlcmlzdGljc09mQWxsQXZhaWxhYmxl
UG9pbnRpbmdEZXZpY2VzKCkgY29uc3QKK3sKKyAgICBPcHRpb25TZXQ8UG9pbnRlckNoYXJhY3Rl
cmlzdGljcz4gcmVzdWx0KFBvaW50ZXJDaGFyYWN0ZXJpc3RpY3M6OkNvYXJzZSk7CisgICAgaWYg
KGhhc01vdXNlRGV2aWNlKCkpCisgICAgICAgIHJlc3VsdC5hZGQoUG9pbnRlckNoYXJhY3Rlcmlz
dGljczo6RmluZSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KKwogdm9pZCBXZWJQYWdlOjpoYXJk
d2FyZUtleWJvYXJkQXZhaWxhYmlsaXR5Q2hhbmdlZChib29sIGtleWJvYXJkSXNBdHRhY2hlZCkK
IHsKICAgICBtX2tleWJvYXJkSXNBdHRhY2hlZCA9IGtleWJvYXJkSXNBdHRhY2hlZDsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9XZWJQYWdlTWFjLm1t
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1dlYlBhZ2VNYWMubW0KaW5k
ZXggNWFlYjRiMTUzN2QzMzQyMTE2Y2EyMWE1NTUzNTNjNGFhZWMwMGU1Ny4uYjgyZjgwZTBlMjcw
YTA0MzkyMDQyNTU2ZTllNThhZjdkZmYwMzgwMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1dlYlBhZ2VNYWMubW0KKysrIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1dlYlBhZ2VNYWMubW0KQEAgLTgzLDYgKzgzLDcgQEAKICNp
bXBvcnQgPFdlYkNvcmUvUGFnZU92ZXJsYXlDb250cm9sbGVyLmg+CiAjaW1wb3J0IDxXZWJDb3Jl
L1BsYXRmb3JtS2V5Ym9hcmRFdmVudC5oPgogI2ltcG9ydCA8V2ViQ29yZS9QbHVnaW5Eb2N1bWVu
dC5oPgorI2ltcG9ydCA8V2ViQ29yZS9Qb2ludGVyQ2hhcmFjdGVyaXN0aWNzLmg+CiAjaW1wb3J0
IDxXZWJDb3JlL1JlbmRlckVsZW1lbnQuaD4KICNpbXBvcnQgPFdlYkNvcmUvUmVuZGVyT2JqZWN0
Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL1JlbmRlclN0eWxlLmg+CkBAIC04MzAsNiArODMxLDE2IEBA
IFN0cmluZyBXZWJQYWdlOjpwbGF0Zm9ybVVzZXJBZ2VudChjb25zdCBVUkwmKSBjb25zdAogICAg
IHJldHVybiBTdHJpbmcoKTsKIH0KIAorYm9vbCBXZWJQYWdlOjpob3ZlclN1cHBvcnRlZEJ5QW55
QXZhaWxhYmxlUG9pbnRpbmdEZXZpY2UoKSBjb25zdAoreworICAgIHJldHVybiB0cnVlOworfQor
CitPcHRpb25TZXQ8UG9pbnRlckNoYXJhY3RlcmlzdGljcz4gV2ViUGFnZTo6cG9pbnRlckNoYXJh
Y3RlcmlzdGljc09mQWxsQXZhaWxhYmxlUG9pbnRpbmdEZXZpY2VzKCkgY29uc3QKK3sKKyAgICBy
ZXR1cm4gUG9pbnRlckNoYXJhY3RlcmlzdGljczo6RmluZTsKK30KKwogdm9pZCBXZWJQYWdlOjpw
ZXJmb3JtSW1tZWRpYXRlQWN0aW9uSGl0VGVzdEF0TG9jYXRpb24oV2ViQ29yZTo6RmxvYXRQb2lu
dCBsb2NhdGlvbkluVmlld0Nvb3JkaW5hdGVzKQogewogICAgIGxheW91dElmTmVlZGVkKCk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9wbGF5c3RhdGlvbi9X
ZWJQYWdlUGxheVN0YXRpb24uY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2Uv
cGxheXN0YXRpb24vV2ViUGFnZVBsYXlTdGF0aW9uLmNwcAppbmRleCBjYmRhNDhjN2Q2NWIxYTY4
MjY2Y2I2MjY4ZTBmN2UxZjJhZWE1NTg2Li43MjZlOTIzM2M1MWIzMWM2ZTQ2ZmYxMjViNGU1ZmVm
MzM2ODc3M2U5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9w
bGF5c3RhdGlvbi9XZWJQYWdlUGxheVN0YXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJQYWdlL3BsYXlzdGF0aW9uL1dlYlBhZ2VQbGF5U3RhdGlvbi5jcHAKQEAgLTI3
LDYgKzI3LDcgQEAKICNpbmNsdWRlICJXZWJQYWdlLmgiCiAKICNpbmNsdWRlIDxXZWJDb3JlL05v
dEltcGxlbWVudGVkLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9Qb2ludGVyQ2hhcmFjdGVyaXN0aWNz
Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TZXR0aW5ncy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvVXNl
ckFnZW50Lmg+CiAKQEAgLTY1LDYgKzY2LDE2IEBAIFN0cmluZyBXZWJQYWdlOjpwbGF0Zm9ybVVz
ZXJBZ2VudChjb25zdCBVUkwmIHVybCkgY29uc3QKICAgICByZXR1cm4gV2ViQ29yZTo6c3RhbmRh
cmRVc2VyQWdlbnRGb3JVUkwodXJsKTsKIH0KIAorYm9vbCBXZWJQYWdlOjpob3ZlclN1cHBvcnRl
ZEJ5QW55QXZhaWxhYmxlUG9pbnRpbmdEZXZpY2UoKSBjb25zdAoreworICAgIHJldHVybiB0cnVl
OworfQorCitPcHRpb25TZXQ8UG9pbnRlckNoYXJhY3RlcmlzdGljcz4gV2ViUGFnZTo6cG9pbnRl
ckNoYXJhY3RlcmlzdGljc09mQWxsQXZhaWxhYmxlUG9pbnRpbmdEZXZpY2VzKCkgY29uc3QKK3sK
KyAgICByZXR1cm4gUG9pbnRlckNoYXJhY3RlcmlzdGljczo6RmluZTsKK30KKwogYm9vbCBXZWJQ
YWdlOjpoYW5kbGVFZGl0aW5nS2V5Ym9hcmRFdmVudChXZWJDb3JlOjpLZXlib2FyZEV2ZW50JiBl
dmVudCkKIHsKICAgICBub3RJbXBsZW1lbnRlZCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYlBhZ2Uvd2luL1dlYlBhZ2VXaW4uY3BwIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYlBhZ2Uvd2luL1dlYlBhZ2VXaW4uY3BwCmluZGV4IDI4OTNlZDNmM2I4Yzlj
Mjg0NzJiOGFhZjdhMzk5ZTI1N2JmOGM1MmQuLmVkYWQ3ZDUwMzdkMWU0MDhjMDM5NGYzNTE1Zjc4
OGY4ZTRkNmRkZDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdl
L3dpbi9XZWJQYWdlV2luLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFn
ZS93aW4vV2ViUGFnZVdpbi5jcHAKQEAgLTQzLDYgKzQzLDcgQEAKICNpbmNsdWRlIDxXZWJDb3Jl
L05vdEltcGxlbWVudGVkLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9QYWdlLmg+CiAjaW5jbHVkZSA8
V2ViQ29yZS9QbGF0Zm9ybUtleWJvYXJkRXZlbnQuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1BvaW50
ZXJDaGFyYWN0ZXJpc3RpY3MuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1NldHRpbmdzLmg+CiAjaW5j
bHVkZSA8V2ViQ29yZS9TaGFyZWRCdWZmZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1VzZXJBZ2Vu
dC5oPgpAQCAtMTE1LDYgKzExNiwxNiBAQCBTdHJpbmcgV2ViUGFnZTo6cGxhdGZvcm1Vc2VyQWdl
bnQoY29uc3QgVVJMJikgY29uc3QKICAgICByZXR1cm4geyB9OwogfQogCitib29sIFdlYlBhZ2U6
OmhvdmVyU3VwcG9ydGVkQnlBbnlBdmFpbGFibGVQb2ludGluZ0RldmljZSgpIGNvbnN0Cit7Cisg
ICAgcmV0dXJuIHRydWU7Cit9CisKK09wdGlvblNldDxQb2ludGVyQ2hhcmFjdGVyaXN0aWNzPiBX
ZWJQYWdlOjpwb2ludGVyQ2hhcmFjdGVyaXN0aWNzT2ZBbGxBdmFpbGFibGVQb2ludGluZ0Rldmlj
ZXMoKSBjb25zdAoreworICAgIHJldHVybiBQb2ludGVyQ2hhcmFjdGVyaXN0aWNzOjpGaW5lOwor
fQorCiBzdGF0aWMgY29uc3QgdW5zaWduZWQgQ3RybEtleSA9IDEgPDwgMDsKIHN0YXRpYyBjb25z
dCB1bnNpZ25lZCBBbHRLZXkgPSAxIDw8IDE7CiBzdGF0aWMgY29uc3QgdW5zaWduZWQgU2hpZnRL
ZXkgPSAxIDw8IDI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFn
ZS93cGUvV2ViUGFnZVdQRS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS93
cGUvV2ViUGFnZVdQRS5jcHAKaW5kZXggZjlmYzQxYTFmYjY5NzZiMTZiN2E1MzIwYWVjOTJiMTFi
MzAwZDdiNi4uNGE1NDBhMjUwNzk4ZDlmMmFlZGE5ZjAyYTEwMGI2Mjk1NjJiYjdmOCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2Uvd3BlL1dlYlBhZ2VXUEUuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL3dwZS9XZWJQYWdlV1BFLmNw
cApAQCAtMzAsNiArMzAsOCBAQAogI2luY2x1ZGUgIldlYlBhZ2VQcm94eS5oIgogI2luY2x1ZGUg
IldlYlBhZ2VQcm94eU1lc3NhZ2VzLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9Ob3RJbXBsZW1lbnRl
ZC5oPgorI2luY2x1ZGUgPFdlYkNvcmUvUGxhdGZvcm1TY3JlZW4uaD4KKyNpbmNsdWRlIDxXZWJD
b3JlL1BvaW50ZXJDaGFyYWN0ZXJpc3RpY3MuaD4KIAogbmFtZXNwYWNlIFdlYktpdCB7CiB1c2lu
ZyBuYW1lc3BhY2UgV2ViQ29yZTsKQEAgLTczLDQgKzc1LDIyIEBAIFN0cmluZyBXZWJQYWdlOjpw
bGF0Zm9ybVVzZXJBZ2VudChjb25zdCBVUkwmKSBjb25zdAogICAgIHJldHVybiBTdHJpbmcoKTsK
IH0KIAorYm9vbCBXZWJQYWdlOjpob3ZlclN1cHBvcnRlZEJ5QW55QXZhaWxhYmxlUG9pbnRpbmdE
ZXZpY2UoKSBjb25zdAoreworI2lmIEVOQUJMRShUT1VDSF9FVkVOVFMpCisgICAgcmV0dXJuICFz
Y3JlZW5IYXNUb3VjaERldmljZSgpOworI2Vsc2UKKyAgICByZXR1cm4gdHJ1ZTsKKyNlbmRpZgor
fQorCitPcHRpb25TZXQ8UG9pbnRlckNoYXJhY3RlcmlzdGljcz4gV2ViUGFnZTo6cG9pbnRlckNo
YXJhY3RlcmlzdGljc09mQWxsQXZhaWxhYmxlUG9pbnRpbmdEZXZpY2VzKCkgY29uc3QKK3sKKyNp
ZiBFTkFCTEUoVE9VQ0hfRVZFTlRTKQorICAgIGlmIChzY3JlZW5IYXNUb3VjaERldmljZSgpKQor
ICAgICAgICByZXR1cm4gUG9pbnRlckNoYXJhY3RlcmlzdGljczo6Q29hcnNlOworI2VuZGlmCisg
ICAgcmV0dXJuIFBvaW50ZXJDaGFyYWN0ZXJpc3RpY3M6OkZpbmU7Cit9CisKIH0gLy8gbmFtZXNw
YWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nl
c3MuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCmluZGV4IDYx
MGQzNzc5MDhjYjUwYTBhMjI5NDExNWRmMDM5ZTBiZTk2NGEzOWMuLjIwZGM1ZTViOThlMWRkZGE3
N2M5ZjNiYjI5NDU0NTM3Njc0MTk1ZDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJQcm9jZXNzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJv
Y2Vzcy5jcHAKQEAgLTQwNiw2ICs0MDYsMTAgQEAgdm9pZCBXZWJQcm9jZXNzOjppbml0aWFsaXpl
V2ViUHJvY2VzcyhXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzJiYgcGFyYW1ldGVycykKIAog
ICAgIG1fZnVsbEtleWJvYXJkQWNjZXNzRW5hYmxlZCA9IHBhcmFtZXRlcnMuZnVsbEtleWJvYXJk
QWNjZXNzRW5hYmxlZDsKIAorI2lmIEhBVkUoVUlLSVRfV0lUSF9NT1VTRV9TVVBQT1JUKSAmJiBQ
TEFURk9STShJT1MpCisgICAgbV9oYXNNb3VzZURldmljZSA9IHBhcmFtZXRlcnMuaGFzTW91c2VE
ZXZpY2U7CisjZW5kaWYKKwogICAgIGZvciAoYXV0byYgc2NoZW1lIDogcGFyYW1ldGVycy51cmxT
Y2hlbWVzUmVnaXN0ZXJlZEFzRW1wdHlEb2N1bWVudCkKICAgICAgICAgcmVnaXN0ZXJVUkxTY2hl
bWVBc0VtcHR5RG9jdW1lbnQoc2NoZW1lKTsKIApAQCAtMTA1MCw2ICsxMDU0LDIwIEBAIHZvaWQg
V2ViUHJvY2Vzczo6bWVzc2FnZXNBdmFpbGFibGVGb3JQb3J0KGNvbnN0IE1lc3NhZ2VQb3J0SWRl
bnRpZmllciYgaWRlbnRpZmllCiAgICAgTWVzc2FnZVBvcnQ6Om5vdGlmeU1lc3NhZ2VBdmFpbGFi
bGUoaWRlbnRpZmllcik7CiB9CiAKKyNpZiBIQVZFKFVJS0lUX1dJVEhfTU9VU0VfU1VQUE9SVCkg
JiYgUExBVEZPUk0oSU9TKQorCit2b2lkIFdlYlByb2Nlc3M6OnNldEhhc01vdXNlRGV2aWNlKGJv
b2wgaGFzTW91c2VEZXZpY2UpCit7CisgICAgaWYgKGhhc01vdXNlRGV2aWNlID09IG1faGFzTW91
c2VEZXZpY2UpCisgICAgICAgIHJldHVybjsKKworICAgIG1faGFzTW91c2VEZXZpY2UgPSBoYXNN
b3VzZURldmljZTsKKworICAgIFBhZ2U6OnVwZGF0ZVN0eWxlRm9yQWxsUGFnZXNBZnRlckdsb2Jh
bENoYW5nZUluRW52aXJvbm1lbnQoKTsKK30KKworI2VuZGlmIC8vIEhBVkUoVUlLSVRfV0lUSF9N
T1VTRV9TVVBQT1JUKSAmJiBQTEFURk9STShJT1MpCisKICNpZiBFTkFCTEUoR0FNRVBBRCkKIAog
dm9pZCBXZWJQcm9jZXNzOjpzZXRJbml0aWFsR2FtZXBhZHMoY29uc3QgVmVjdG9yPFdlYktpdDo6
R2FtZXBhZERhdGE+JiBnYW1lcGFkRGF0YXMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViUHJvY2Vzcy5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nl
c3MuaAppbmRleCA5ZDBkZGJmZDM4ZGUzODFkYzI1ZGJlYjk3ZDQ4NjllOTRmZGViODI3Li5mM2Ux
OWFiNmFiMzJiZDBlYzY0Y2Q3Mjc3OTNmNGJjZDNlNGQ0OGY0IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJQcm9jZXNzLmgKQEAgLTE4Nyw2ICsxODcsMTEgQEAgcHVibGljOgogCiAgICAgYm9v
bCBmdWxsS2V5Ym9hcmRBY2Nlc3NFbmFibGVkKCkgY29uc3QgeyByZXR1cm4gbV9mdWxsS2V5Ym9h
cmRBY2Nlc3NFbmFibGVkOyB9CiAKKyNpZiBIQVZFKFVJS0lUX1dJVEhfTU9VU0VfU1VQUE9SVCkg
JiYgUExBVEZPUk0oSU9TKQorICAgIGJvb2wgaGFzTW91c2VEZXZpY2UoKSBjb25zdCB7IHJldHVy
biBtX2hhc01vdXNlRGV2aWNlOyB9CisgICAgdm9pZCBzZXRIYXNNb3VzZURldmljZShib29sKTsK
KyNlbmRpZgorCiAgICAgV2ViRnJhbWUqIHdlYkZyYW1lKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmll
cikgY29uc3Q7CiAgICAgVmVjdG9yPFdlYkZyYW1lKj4gd2ViRnJhbWVzKCkgY29uc3Q7CiAgICAg
dm9pZCBhZGRXZWJGcmFtZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIFdlYkZyYW1lKik7CkBA
IC01NTQsNiArNTU5LDEwIEBAIHByaXZhdGU6CiAKICAgICBib29sIG1fZnVsbEtleWJvYXJkQWNj
ZXNzRW5hYmxlZCB7IGZhbHNlIH07CiAKKyNpZiBIQVZFKFVJS0lUX1dJVEhfTU9VU0VfU1VQUE9S
VCkgJiYgUExBVEZPUk0oSU9TKQorICAgIGJvb2wgbV9oYXNNb3VzZURldmljZSB7IGZhbHNlIH07
CisjZW5kaWYKKwogICAgIEhhc2hNYXA8V2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBXZWJGcmFt
ZSo+IG1fZnJhbWVNYXA7CiAKICAgICB0eXBlZGVmIEhhc2hNYXA8Y29uc3QgY2hhciosIHN0ZDo6
dW5pcXVlX3B0cjxXZWJQcm9jZXNzU3VwcGxlbWVudD4sIFB0ckhhc2g8Y29uc3QgY2hhcio+PiBX
ZWJQcm9jZXNzU3VwcGxlbWVudE1hcDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJQcm9jZXNzLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YlByb2Nlc3MubWVzc2FnZXMuaW4KaW5kZXggMDEyMzY3NTdhNWM1ZjBkMjgwYzZkZDFmOWExODE1
MmJiY2YxOWMwNC4uMzcwMDE3OTk3OTMzMjkxNDYyZjYwZmQxNTg4MzgyYWY3NTU2NGI5ZCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MubWVzc2FnZXMuaW4K
KysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MubWVzc2FnZXMuaW4KQEAg
LTUyLDYgKzUyLDEwIEBAIG1lc3NhZ2VzIC0+IFdlYlByb2Nlc3MgTGVnYWN5UmVjZWl2ZXIgTm90
UmVmQ291bnRlZCB7CiAgICAgVXNlclByZWZlcnJlZExhbmd1YWdlc0NoYW5nZWQoKQogICAgIEZ1
bGxLZXlib2FyZEFjY2Vzc01vZGVDaGFuZ2VkKGJvb2wgZnVsbEtleWJvYXJkQWNjZXNzRW5hYmxl
ZCkKIAorI2lmIEhBVkUoVUlLSVRfV0lUSF9NT1VTRV9TVVBQT1JUKSAmJiBQTEFURk9STShJT1Mp
CisgICAgU2V0SGFzTW91c2VEZXZpY2UoYm9vbCBoYXNNb3VzZURldmljZSkKKyNlbmRpZgorCiAg
ICAgIyBQbHVnLWlucy4KICAgICBEaWRBZGRQbHVnSW5BdXRvU3RhcnRPcmlnaW5IYXNoKHVpbnQz
Ml90IGhhc2gsIFdhbGxUaW1lIGV4cGlyYXRpb25UaW1lKQogICAgIFJlc2V0UGx1Z0luQXV0b1N0
YXJ0T3JpZ2luSGFzaGVzKEhhc2hNYXA8dWludDMyX3QsV2FsbFRpbWU+IGhhc2hlcykKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvaW9zL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNs
aWVudElPUy5oIGIvU291cmNlL1dlYktpdExlZ2FjeS9pb3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hy
b21lQ2xpZW50SU9TLmgKaW5kZXggYTkyYmFhNmIzMDU5ZGU4OTE0NWYwM2IxYTU3NTdmOTcyYTk0
MDk5OS4uMTkxYTBhZjlhNWViZmRiMTc4ZDY2MDE4NTY3OGE0MjJlZGU1NTI0YiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdExlZ2FjeS9pb3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50
SU9TLmgKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9pb3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hy
b21lQ2xpZW50SU9TLmgKQEAgLTUwLDYgKzUwLDkgQEAgcHJpdmF0ZToKICAgICB2b2lkIHJ1bk9w
ZW5QYW5lbChXZWJDb3JlOjpGcmFtZSYsIFdlYkNvcmU6OkZpbGVDaG9vc2VyJikgZmluYWw7CiAg
ICAgdm9pZCBzaG93U2hhcmVTaGVldChXZWJDb3JlOjpTaGFyZURhdGFXaXRoUGFyc2VkVVJMJiwg
Q29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJikgZmluYWw7CiAKKyAgICBib29sIGhvdmVy
U3VwcG9ydGVkQnlBbnlBdmFpbGFibGVQb2ludGluZ0RldmljZSgpIGNvbnN0IGZpbmFsIHsgcmV0
dXJuIGZhbHNlOyB9CisgICAgT3B0aW9uU2V0PFdlYkNvcmU6OlBvaW50ZXJDaGFyYWN0ZXJpc3Rp
Y3M+IHBvaW50ZXJDaGFyYWN0ZXJpc3RpY3NPZkFsbEF2YWlsYWJsZVBvaW50aW5nRGV2aWNlcygp
IGNvbnN0IGZpbmFsIHsgcmV0dXJuIFdlYkNvcmU6OlBvaW50ZXJDaGFyYWN0ZXJpc3RpY3M6OkNv
YXJzZTsgfQorCiAgICAgdm9pZCBzZXRDdXJzb3IoY29uc3QgV2ViQ29yZTo6Q3Vyc29yJikgZmlu
YWwgeyB9CiAgICAgdm9pZCBzZXRDdXJzb3JIaWRkZW5VbnRpbE1vdXNlTW92ZXMoYm9vbCkgZmlu
YWwgeyB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBw
b3J0L1dlYkNocm9tZUNsaWVudC5oIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1
cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKaW5kZXggZGNkZjJjMjhkN2RlNTU3ZTVkYTI3OWE4YTlk
MmQ4OGUzZDRmODk5Ni4uZGZiMmEzMWVhMmUzZTQ1YmY3OGNiYzBmY2JlOTRkMDIxY2RiY2Y1YSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQ2hy
b21lQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQv
V2ViQ2hyb21lQ2xpZW50LmgKQEAgLTE1OCw2ICsxNTgsOSBAQCBwcml2YXRlOgogCiAgICAgV2Vi
Q29yZTo6S2V5Ym9hcmRVSU1vZGUga2V5Ym9hcmRVSU1vZGUoKSBmaW5hbDsKIAorICAgIGJvb2wg
aG92ZXJTdXBwb3J0ZWRCeUFueUF2YWlsYWJsZVBvaW50aW5nRGV2aWNlKCkgY29uc3Qgb3ZlcnJp
ZGUgeyByZXR1cm4gdHJ1ZTsgfQorICAgIE9wdGlvblNldDxXZWJDb3JlOjpQb2ludGVyQ2hhcmFj
dGVyaXN0aWNzPiBwb2ludGVyQ2hhcmFjdGVyaXN0aWNzT2ZBbGxBdmFpbGFibGVQb2ludGluZ0Rl
dmljZXMoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBXZWJDb3JlOjpQb2ludGVyQ2hhcmFjdGVy
aXN0aWNzOjpGaW5lOyB9CisKICAgICBOU1Jlc3BvbmRlciAqZmlyc3RSZXNwb25kZXIoKSBmaW5h
bDsKICAgICB2b2lkIG1ha2VGaXJzdFJlc3BvbmRlcihOU1Jlc3BvbmRlciAqKSBmaW5hbDsKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViQ29yZVN1cHBvcnQvV2ViQ2hy
b21lQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJD
aHJvbWVDbGllbnQuaAppbmRleCA3MGZlZWFjOTYwM2QyMTJjNzgyZjRiMDhhYzg0YTcxZjUyMTA1
MDIwLi40YTViYWI2M2JkY2JlYWIwMTVlMThjMDI0NjMxMDhlMjg0MWViYjNjIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQu
aAorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVD
bGllbnQuaApAQCAtOTQsNiArOTQsOSBAQCBwdWJsaWM6CiAKICAgICBXZWJDb3JlOjpLZXlib2Fy
ZFVJTW9kZSBrZXlib2FyZFVJTW9kZSgpIGZpbmFsOwogCisgICAgYm9vbCBob3ZlclN1cHBvcnRl
ZEJ5QW55QXZhaWxhYmxlUG9pbnRpbmdEZXZpY2UoKSBjb25zdCBmaW5hbCB7IHJldHVybiB0cnVl
OyB9CisgICAgT3B0aW9uU2V0PFdlYkNvcmU6OlBvaW50ZXJDaGFyYWN0ZXJpc3RpY3M+IHBvaW50
ZXJDaGFyYWN0ZXJpc3RpY3NPZkFsbEF2YWlsYWJsZVBvaW50aW5nRGV2aWNlcygpIGNvbnN0IGZp
bmFsIHsgcmV0dXJuIFdlYkNvcmU6OlBvaW50ZXJDaGFyYWN0ZXJpc3RpY3M6OkZpbmU7IH0KKwog
ICAgIHZvaWQgaW52YWxpZGF0ZVJvb3RWaWV3KGNvbnN0IFdlYkNvcmU6OkludFJlY3QmKSBmaW5h
bDsKICAgICB2b2lkIGludmFsaWRhdGVDb250ZW50c0FuZFJvb3RWaWV3KGNvbnN0IFdlYkNvcmU6
OkludFJlY3QmKSBmaW5hbDsKICAgICB2b2lkIGludmFsaWRhdGVDb250ZW50c0ZvclNsb3dTY3Jv
bGwoY29uc3QgV2ViQ29yZTo6SW50UmVjdCYpIGZpbmFsOwpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hh
bmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IDU4NTViOGUwZTRkZDBkNWFlMmExODg0YmRm
YmY1YjdkYzFjN2YyODcuLmVkOGI4MGM0NDdlMjQyMjIyYzM1YmFlM2Y4ZmEzNjU2MzdhZDA4M2Ig
MTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxOSBAQAorMjAyMC0xMC0wNSAgRGV2aW4gUm91c3NvICA8ZHJvdXNzb0BhcHBsZS5jb20+
CisKKyAgICAgICAgQ1NTIGhvdmVyIGFuZCAicG9pbnRlcjogZmluZSIgbWVkaWEgcXVlcmllcyBk
byBub3QgZXZhbHVhdGUgdG8gdHJ1ZSB3aXRoIGlPUyAxMy40IG1vdXNlIHN1cHBvcnQKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwOTI5MgorICAgICAg
ICA8cmRhcjovL3Byb2JsZW0vNjA2NjMxMjQ+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL2lP
U01vdXNlU3VwcG9ydC5tbToKKyAgICAgICAgKGV2YWx1YXRlTWVkaWFRdWVyeSk6IEFkZGVkLgor
ICAgICAgICAoaU9TTW91c2VTdXBwb3J0Lk1vdXNlSW5pdGlhbGx5RGlzY29ubmVjdGVkKTogQWRk
ZWQuCisgICAgICAgIChpT1NNb3VzZVN1cHBvcnQuTW91c2VJbml0aWFsbHlDb25uZWN0ZWQpOiBB
ZGRlZC4KKyAgICAgICAgKGlPU01vdXNlU3VwcG9ydC5Nb3VzZUxhdGVyRGlzY29ubmVjdGVkKTog
QWRkZWQuCisgICAgICAgIChpT1NNb3VzZVN1cHBvcnQuTW91c2VMYXRlckNvbm5lY3RlZCk6IEFk
ZGVkLgorICAgICAgICAoaU9TTW91c2VTdXBwb3J0Lk1vdXNlQWx3YXlzQ29ubmVjdGVkKTogQWRk
ZWQuCisKIDIwMjAtMTAtMDUgIEVyaWMgQ2FybHNvbiAgPGVyaWMuY2FybHNvbkBhcHBsZS5jb20+
CiAKICAgICAgICAgRGlzYWJsZSBtZWRpYSBjYXB0dXJlIGlmIGFuIGFwcCdzIGVudGl0bGVtZW50
cyB3b24ndCBhbGxvdyBhY2Nlc3MgdG8gY2FwdHVyZSBkZXZpY2VzCmRpZmYgLS1naXQgYS9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL2lPU01vdXNlU3VwcG9ydC5tbSBiL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvaU9TTW91c2VTdXBwb3J0Lm1tCmlu
ZGV4IGMyNDMwYjIwZWY3NzZhZWExMzA5ZTkzMzhkNmUyZWEwY2Y1MGFhMTYuLjE4NzM3ZTA3YWUy
NjE2MDI0YTdiMDRiZTRlNTZjNjk1MmVjOTRhNWEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvaU9TTW91c2VTdXBwb3J0Lm1tCisrKyBiL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvaU9TTW91c2VTdXBwb3J0Lm1tCkBAIC0zMDAs
NCArMzAwLDE3MiBAQCBURVNUKGlPU01vdXNlU3VwcG9ydCwgV2Vic2l0ZU1vdXNlRXZlbnRQb2xp
Y2llcykKIAogI2VuZGlmIC8vIEVOQUJMRShJT1NfVE9VQ0hfRVZFTlRTKQogCisjaWYgSEFWRShV
SUtJVF9XSVRIX01PVVNFX1NVUFBPUlQpCisKK3N0YXRpYyBCT09MIGV2YWx1YXRlTWVkaWFRdWVy
eShSZXRhaW5QdHI8VGVzdFdLV2ViVmlldz4mIHdlYlZpZXcsIE5TU3RyaW5nICpxdWVyeSkKK3sK
KyAgICByZXR1cm4gW1t3ZWJWaWV3IG9iamVjdEJ5RXZhbHVhdGluZ0phdmFTY3JpcHQ6W05TU3Ry
aW5nIHN0cmluZ1dpdGhGb3JtYXQ6QCJ3aW5kb3cubWF0Y2hNZWRpYShcIiglQClcIikubWF0Y2hl
cyIsIHF1ZXJ5XV0gYm9vbFZhbHVlXTsKK30KKworI2lmIFBMQVRGT1JNKElPUykKKworQGludGVy
ZmFjZSBXS01vdXNlRGV2aWNlT2JzZXJ2ZXIKKysgKFdLTW91c2VEZXZpY2VPYnNlcnZlciAqKXNo
YXJlZEluc3RhbmNlOworLSAodm9pZClzdGFydDsKKy0gKHZvaWQpX3NldEhhc01vdXNlRGV2aWNl
Rm9yVGVzdGluZzooQk9PTCloYXNNb3VzZURldmljZTsKK0BlbmQKKworVEVTVChpT1NNb3VzZVN1
cHBvcnQsIE1vdXNlSW5pdGlhbGx5RGlzY29ubmVjdGVkKQoreworICAgIFdLTW91c2VEZXZpY2VP
YnNlcnZlciAqbW91c2VEZXZpY2VPYnNlcnZlciA9IFtOU0NsYXNzRnJvbVN0cmluZyhAIldLTW91
c2VEZXZpY2VPYnNlcnZlciIpIHNoYXJlZEluc3RhbmNlXTsKKyAgICBbbW91c2VEZXZpY2VPYnNl
cnZlciBzdGFydF07CisgICAgW21vdXNlRGV2aWNlT2JzZXJ2ZXIgX3NldEhhc01vdXNlRGV2aWNl
Rm9yVGVzdGluZzpOT107CisKKyAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2Vi
VmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU01ha2VSZWN0KDAsIDAsIDgwMCwgNjAwKV0pOwor
CisgICAgW3dlYlZpZXcgc3luY2hyb25vdXNseUxvYWRIVE1MU3RyaW5nOkAiIl07CisKKyAgICBF
WFBFQ1RfRkFMU0UoZXZhbHVhdGVNZWRpYVF1ZXJ5KHdlYlZpZXcsIEAiaG92ZXIiKSk7CisgICAg
RVhQRUNUX1RSVUUoZXZhbHVhdGVNZWRpYVF1ZXJ5KHdlYlZpZXcsIEAiaG92ZXI6IG5vbmUiKSk7
CisgICAgRVhQRUNUX0ZBTFNFKGV2YWx1YXRlTWVkaWFRdWVyeSh3ZWJWaWV3LCBAImhvdmVyOiBo
b3ZlciIpKTsKKworICAgIEVYUEVDVF9GQUxTRShldmFsdWF0ZU1lZGlhUXVlcnkod2ViVmlldywg
QCJhbnktaG92ZXIiKSk7CisgICAgRVhQRUNUX1RSVUUoZXZhbHVhdGVNZWRpYVF1ZXJ5KHdlYlZp
ZXcsIEAiYW55LWhvdmVyOiBub25lIikpOworICAgIEVYUEVDVF9GQUxTRShldmFsdWF0ZU1lZGlh
UXVlcnkod2ViVmlldywgQCJhbnktaG92ZXI6IGhvdmVyIikpOworCisgICAgRVhQRUNUX1RSVUUo
ZXZhbHVhdGVNZWRpYVF1ZXJ5KHdlYlZpZXcsIEAicG9pbnRlciIpKTsKKyAgICBFWFBFQ1RfRkFM
U0UoZXZhbHVhdGVNZWRpYVF1ZXJ5KHdlYlZpZXcsIEAicG9pbnRlcjogbm9uZSIpKTsKKyAgICBF
WFBFQ1RfVFJVRShldmFsdWF0ZU1lZGlhUXVlcnkod2ViVmlldywgQCJwb2ludGVyOiBjb2Fyc2Ui
KSk7CisgICAgRVhQRUNUX0ZBTFNFKGV2YWx1YXRlTWVkaWFRdWVyeSh3ZWJWaWV3LCBAInBvaW50
ZXI6IGZpbmUiKSk7CisKKyAgICBFWFBFQ1RfVFJVRShldmFsdWF0ZU1lZGlhUXVlcnkod2ViVmll
dywgQCJhbnktcG9pbnRlciIpKTsKKyAgICBFWFBFQ1RfRkFMU0UoZXZhbHVhdGVNZWRpYVF1ZXJ5
KHdlYlZpZXcsIEAiYW55LXBvaW50ZXI6IG5vbmUiKSk7CisgICAgRVhQRUNUX1RSVUUoZXZhbHVh
dGVNZWRpYVF1ZXJ5KHdlYlZpZXcsIEAiYW55LXBvaW50ZXI6IGNvYXJzZSIpKTsKKyAgICBFWFBF
Q1RfRkFMU0UoZXZhbHVhdGVNZWRpYVF1ZXJ5KHdlYlZpZXcsIEAiYW55LXBvaW50ZXI6IGZpbmUi
KSk7Cit9CisKK1RFU1QoaU9TTW91c2VTdXBwb3J0LCBNb3VzZUluaXRpYWxseUNvbm5lY3RlZCkK
K3sKKyAgICBXS01vdXNlRGV2aWNlT2JzZXJ2ZXIgKm1vdXNlRGV2aWNlT2JzZXJ2ZXIgPSBbTlND
bGFzc0Zyb21TdHJpbmcoQCJXS01vdXNlRGV2aWNlT2JzZXJ2ZXIiKSBzaGFyZWRJbnN0YW5jZV07
CisgICAgW21vdXNlRGV2aWNlT2JzZXJ2ZXIgc3RhcnRdOworICAgIFttb3VzZURldmljZU9ic2Vy
dmVyIF9zZXRIYXNNb3VzZURldmljZUZvclRlc3Rpbmc6WUVTXTsKKworICAgIGF1dG8gd2ViVmll
dyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5TTWFrZVJl
Y3QoMCwgMCwgODAwLCA2MDApXSk7CisKKyAgICBbd2ViVmlldyBzeW5jaHJvbm91c2x5TG9hZEhU
TUxTdHJpbmc6QCIiXTsKKworICAgIEVYUEVDVF9GQUxTRShldmFsdWF0ZU1lZGlhUXVlcnkod2Vi
VmlldywgQCJob3ZlciIpKTsKKyAgICBFWFBFQ1RfVFJVRShldmFsdWF0ZU1lZGlhUXVlcnkod2Vi
VmlldywgQCJob3Zlcjogbm9uZSIpKTsKKyAgICBFWFBFQ1RfRkFMU0UoZXZhbHVhdGVNZWRpYVF1
ZXJ5KHdlYlZpZXcsIEAiaG92ZXI6IGhvdmVyIikpOworCisgICAgRVhQRUNUX1RSVUUoZXZhbHVh
dGVNZWRpYVF1ZXJ5KHdlYlZpZXcsIEAiYW55LWhvdmVyIikpOworICAgIEVYUEVDVF9GQUxTRShl
dmFsdWF0ZU1lZGlhUXVlcnkod2ViVmlldywgQCJhbnktaG92ZXI6IG5vbmUiKSk7CisgICAgRVhQ
RUNUX1RSVUUoZXZhbHVhdGVNZWRpYVF1ZXJ5KHdlYlZpZXcsIEAiYW55LWhvdmVyOiBob3ZlciIp
KTsKKworICAgIEVYUEVDVF9UUlVFKGV2YWx1YXRlTWVkaWFRdWVyeSh3ZWJWaWV3LCBAInBvaW50
ZXIiKSk7CisgICAgRVhQRUNUX0ZBTFNFKGV2YWx1YXRlTWVkaWFRdWVyeSh3ZWJWaWV3LCBAInBv
aW50ZXI6IG5vbmUiKSk7CisgICAgRVhQRUNUX1RSVUUoZXZhbHVhdGVNZWRpYVF1ZXJ5KHdlYlZp
ZXcsIEAicG9pbnRlcjogY29hcnNlIikpOworICAgIEVYUEVDVF9GQUxTRShldmFsdWF0ZU1lZGlh
UXVlcnkod2ViVmlldywgQCJwb2ludGVyOiBmaW5lIikpOworCisgICAgRVhQRUNUX1RSVUUoZXZh
bHVhdGVNZWRpYVF1ZXJ5KHdlYlZpZXcsIEAiYW55LXBvaW50ZXIiKSk7CisgICAgRVhQRUNUX0ZB
TFNFKGV2YWx1YXRlTWVkaWFRdWVyeSh3ZWJWaWV3LCBAImFueS1wb2ludGVyOiBub25lIikpOwor
ICAgIEVYUEVDVF9UUlVFKGV2YWx1YXRlTWVkaWFRdWVyeSh3ZWJWaWV3LCBAImFueS1wb2ludGVy
OiBjb2Fyc2UiKSk7CisgICAgRVhQRUNUX1RSVUUoZXZhbHVhdGVNZWRpYVF1ZXJ5KHdlYlZpZXcs
IEAiYW55LXBvaW50ZXI6IGZpbmUiKSk7Cit9CisKK1RFU1QoaU9TTW91c2VTdXBwb3J0LCBNb3Vz
ZUxhdGVyRGlzY29ubmVjdGVkKQoreworICAgIFdLTW91c2VEZXZpY2VPYnNlcnZlciAqbW91c2VE
ZXZpY2VPYnNlcnZlciA9IFtOU0NsYXNzRnJvbVN0cmluZyhAIldLTW91c2VEZXZpY2VPYnNlcnZl
ciIpIHNoYXJlZEluc3RhbmNlXTsKKyAgICBbbW91c2VEZXZpY2VPYnNlcnZlciBzdGFydF07Cisg
ICAgW21vdXNlRGV2aWNlT2JzZXJ2ZXIgX3NldEhhc01vdXNlRGV2aWNlRm9yVGVzdGluZzpZRVNd
OworCisgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGlu
aXRXaXRoRnJhbWU6TlNNYWtlUmVjdCgwLCAwLCA4MDAsIDYwMCldKTsKKworICAgIFt3ZWJWaWV3
IHN5bmNocm9ub3VzbHlMb2FkSFRNTFN0cmluZzpAIiJdOworCisgICAgW21vdXNlRGV2aWNlT2Jz
ZXJ2ZXIgX3NldEhhc01vdXNlRGV2aWNlRm9yVGVzdGluZzpOT107CisKKyAgICBFWFBFQ1RfRkFM
U0UoZXZhbHVhdGVNZWRpYVF1ZXJ5KHdlYlZpZXcsIEAiaG92ZXIiKSk7CisgICAgRVhQRUNUX1RS
VUUoZXZhbHVhdGVNZWRpYVF1ZXJ5KHdlYlZpZXcsIEAiaG92ZXI6IG5vbmUiKSk7CisgICAgRVhQ
RUNUX0ZBTFNFKGV2YWx1YXRlTWVkaWFRdWVyeSh3ZWJWaWV3LCBAImhvdmVyOiBob3ZlciIpKTsK
KworICAgIEVYUEVDVF9GQUxTRShldmFsdWF0ZU1lZGlhUXVlcnkod2ViVmlldywgQCJhbnktaG92
ZXIiKSk7CisgICAgRVhQRUNUX1RSVUUoZXZhbHVhdGVNZWRpYVF1ZXJ5KHdlYlZpZXcsIEAiYW55
LWhvdmVyOiBub25lIikpOworICAgIEVYUEVDVF9GQUxTRShldmFsdWF0ZU1lZGlhUXVlcnkod2Vi
VmlldywgQCJhbnktaG92ZXI6IGhvdmVyIikpOworCisgICAgRVhQRUNUX1RSVUUoZXZhbHVhdGVN
ZWRpYVF1ZXJ5KHdlYlZpZXcsIEAicG9pbnRlciIpKTsKKyAgICBFWFBFQ1RfRkFMU0UoZXZhbHVh
dGVNZWRpYVF1ZXJ5KHdlYlZpZXcsIEAicG9pbnRlcjogbm9uZSIpKTsKKyAgICBFWFBFQ1RfVFJV
RShldmFsdWF0ZU1lZGlhUXVlcnkod2ViVmlldywgQCJwb2ludGVyOiBjb2Fyc2UiKSk7CisgICAg
RVhQRUNUX0ZBTFNFKGV2YWx1YXRlTWVkaWFRdWVyeSh3ZWJWaWV3LCBAInBvaW50ZXI6IGZpbmUi
KSk7CisKKyAgICBFWFBFQ1RfVFJVRShldmFsdWF0ZU1lZGlhUXVlcnkod2ViVmlldywgQCJhbnkt
cG9pbnRlciIpKTsKKyAgICBFWFBFQ1RfRkFMU0UoZXZhbHVhdGVNZWRpYVF1ZXJ5KHdlYlZpZXcs
IEAiYW55LXBvaW50ZXI6IG5vbmUiKSk7CisgICAgRVhQRUNUX1RSVUUoZXZhbHVhdGVNZWRpYVF1
ZXJ5KHdlYlZpZXcsIEAiYW55LXBvaW50ZXI6IGNvYXJzZSIpKTsKKyAgICBFWFBFQ1RfRkFMU0Uo
ZXZhbHVhdGVNZWRpYVF1ZXJ5KHdlYlZpZXcsIEAiYW55LXBvaW50ZXI6IGZpbmUiKSk7Cit9CisK
K1RFU1QoaU9TTW91c2VTdXBwb3J0LCBNb3VzZUxhdGVyQ29ubmVjdGVkKQoreworICAgIFdLTW91
c2VEZXZpY2VPYnNlcnZlciAqbW91c2VEZXZpY2VPYnNlcnZlciA9IFtOU0NsYXNzRnJvbVN0cmlu
ZyhAIldLTW91c2VEZXZpY2VPYnNlcnZlciIpIHNoYXJlZEluc3RhbmNlXTsKKyAgICBbbW91c2VE
ZXZpY2VPYnNlcnZlciBzdGFydF07CisgICAgW21vdXNlRGV2aWNlT2JzZXJ2ZXIgX3NldEhhc01v
dXNlRGV2aWNlRm9yVGVzdGluZzpOT107CisKKyAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtb
VGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU01ha2VSZWN0KDAsIDAsIDgwMCwg
NjAwKV0pOworCisgICAgW3dlYlZpZXcgc3luY2hyb25vdXNseUxvYWRIVE1MU3RyaW5nOkAiIl07
CisKKyAgICBbbW91c2VEZXZpY2VPYnNlcnZlciBfc2V0SGFzTW91c2VEZXZpY2VGb3JUZXN0aW5n
OllFU107CisKKyAgICBFWFBFQ1RfRkFMU0UoZXZhbHVhdGVNZWRpYVF1ZXJ5KHdlYlZpZXcsIEAi
aG92ZXIiKSk7CisgICAgRVhQRUNUX1RSVUUoZXZhbHVhdGVNZWRpYVF1ZXJ5KHdlYlZpZXcsIEAi
aG92ZXI6IG5vbmUiKSk7CisgICAgRVhQRUNUX0ZBTFNFKGV2YWx1YXRlTWVkaWFRdWVyeSh3ZWJW
aWV3LCBAImhvdmVyOiBob3ZlciIpKTsKKworICAgIEVYUEVDVF9UUlVFKGV2YWx1YXRlTWVkaWFR
dWVyeSh3ZWJWaWV3LCBAImFueS1ob3ZlciIpKTsKKyAgICBFWFBFQ1RfRkFMU0UoZXZhbHVhdGVN
ZWRpYVF1ZXJ5KHdlYlZpZXcsIEAiYW55LWhvdmVyOiBub25lIikpOworICAgIEVYUEVDVF9UUlVF
KGV2YWx1YXRlTWVkaWFRdWVyeSh3ZWJWaWV3LCBAImFueS1ob3ZlcjogaG92ZXIiKSk7CisKKyAg
ICBFWFBFQ1RfVFJVRShldmFsdWF0ZU1lZGlhUXVlcnkod2ViVmlldywgQCJwb2ludGVyIikpOwor
ICAgIEVYUEVDVF9GQUxTRShldmFsdWF0ZU1lZGlhUXVlcnkod2ViVmlldywgQCJwb2ludGVyOiBu
b25lIikpOworICAgIEVYUEVDVF9UUlVFKGV2YWx1YXRlTWVkaWFRdWVyeSh3ZWJWaWV3LCBAInBv
aW50ZXI6IGNvYXJzZSIpKTsKKyAgICBFWFBFQ1RfRkFMU0UoZXZhbHVhdGVNZWRpYVF1ZXJ5KHdl
YlZpZXcsIEAicG9pbnRlcjogZmluZSIpKTsKKworICAgIEVYUEVDVF9UUlVFKGV2YWx1YXRlTWVk
aWFRdWVyeSh3ZWJWaWV3LCBAImFueS1wb2ludGVyIikpOworICAgIEVYUEVDVF9GQUxTRShldmFs
dWF0ZU1lZGlhUXVlcnkod2ViVmlldywgQCJhbnktcG9pbnRlcjogbm9uZSIpKTsKKyAgICBFWFBF
Q1RfVFJVRShldmFsdWF0ZU1lZGlhUXVlcnkod2ViVmlldywgQCJhbnktcG9pbnRlcjogY29hcnNl
IikpOworICAgIEVYUEVDVF9UUlVFKGV2YWx1YXRlTWVkaWFRdWVyeSh3ZWJWaWV3LCBAImFueS1w
b2ludGVyOiBmaW5lIikpOworfQorCisjZW5kaWYgLy8gUExBVEZPUk0oSU9TKQorCisjaWYgUExB
VEZPUk0oTUFDQ0FUQUxZU1QpCisKK1RFU1QoaU9TTW91c2VTdXBwb3J0LCBNb3VzZUFsd2F5c0Nv
bm5lY3RlZCkKK3sKKyAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBh
bGxvY10gaW5pdFdpdGhGcmFtZTpOU01ha2VSZWN0KDAsIDAsIDgwMCwgNjAwKV0pOworCisgICAg
W3dlYlZpZXcgc3luY2hyb25vdXNseUxvYWRIVE1MU3RyaW5nOkAiIl07CisKKyAgICBFWFBFQ1Rf
RkFMU0UoZXZhbHVhdGVNZWRpYVF1ZXJ5KHdlYlZpZXcsIEAiaG92ZXIiKSk7CisgICAgRVhQRUNU
X1RSVUUoZXZhbHVhdGVNZWRpYVF1ZXJ5KHdlYlZpZXcsIEAiaG92ZXI6IG5vbmUiKSk7CisgICAg
RVhQRUNUX0ZBTFNFKGV2YWx1YXRlTWVkaWFRdWVyeSh3ZWJWaWV3LCBAImhvdmVyOiBob3ZlciIp
KTsKKworICAgIEVYUEVDVF9UUlVFKGV2YWx1YXRlTWVkaWFRdWVyeSh3ZWJWaWV3LCBAImFueS1o
b3ZlciIpKTsKKyAgICBFWFBFQ1RfRkFMU0UoZXZhbHVhdGVNZWRpYVF1ZXJ5KHdlYlZpZXcsIEAi
YW55LWhvdmVyOiBub25lIikpOworICAgIEVYUEVDVF9UUlVFKGV2YWx1YXRlTWVkaWFRdWVyeSh3
ZWJWaWV3LCBAImFueS1ob3ZlcjogaG92ZXIiKSk7CisKKyAgICBFWFBFQ1RfVFJVRShldmFsdWF0
ZU1lZGlhUXVlcnkod2ViVmlldywgQCJwb2ludGVyIikpOworICAgIEVYUEVDVF9GQUxTRShldmFs
dWF0ZU1lZGlhUXVlcnkod2ViVmlldywgQCJwb2ludGVyOiBub25lIikpOworICAgIEVYUEVDVF9U
UlVFKGV2YWx1YXRlTWVkaWFRdWVyeSh3ZWJWaWV3LCBAInBvaW50ZXI6IGNvYXJzZSIpKTsKKyAg
ICBFWFBFQ1RfRkFMU0UoZXZhbHVhdGVNZWRpYVF1ZXJ5KHdlYlZpZXcsIEAicG9pbnRlcjogZmlu
ZSIpKTsKKworICAgIEVYUEVDVF9UUlVFKGV2YWx1YXRlTWVkaWFRdWVyeSh3ZWJWaWV3LCBAImFu
eS1wb2ludGVyIikpOworICAgIEVYUEVDVF9GQUxTRShldmFsdWF0ZU1lZGlhUXVlcnkod2ViVmll
dywgQCJhbnktcG9pbnRlcjogbm9uZSIpKTsKKyAgICBFWFBFQ1RfVFJVRShldmFsdWF0ZU1lZGlh
UXVlcnkod2ViVmlldywgQCJhbnktcG9pbnRlcjogY29hcnNlIikpOworICAgIEVYUEVDVF9UUlVF
KGV2YWx1YXRlTWVkaWFRdWVyeSh3ZWJWaWV3LCBAImFueS1wb2ludGVyOiBmaW5lIikpOworfQor
CisjZW5kaWYgLy8gUExBVEZPUk0oTUFDQ0FUQUxZU1QpCisKKyNlbmRpZiAvLyBIQVZFKFVJS0lU
X1dJVEhfTU9VU0VfU1VQUE9SVCkKKwogI2VuZGlmIC8vIFBMQVRGT1JNKElPUykgfHwgUExBVEZP
Uk0oTUFDQ0FUQUxZU1QpCmRpZmYgLS1naXQgYS9XZWJLaXRMaWJyYXJpZXMvQ2hhbmdlTG9nIGIv
V2ViS2l0TGlicmFyaWVzL0NoYW5nZUxvZwppbmRleCBkZTcyY2YwZjQ0MDAzMTVjZTU1YmZhYWQx
N2VhODI0MjI3YjViMzg4Li4wMDA2NjhmYzliNzVlYzEzODBlMzQyNTBmNTNjNDc3NDA5ZDU0YWEy
IDEwMDY0NAotLS0gYS9XZWJLaXRMaWJyYXJpZXMvQ2hhbmdlTG9nCisrKyBiL1dlYktpdExpYnJh
cmllcy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAyMC0xMC0wNSAgRGV2aW4gUm91c3Nv
ICA8ZHJvdXNzb0BhcHBsZS5jb20+CisKKyAgICAgICAgQ1NTIGhvdmVyIGFuZCAicG9pbnRlcjog
ZmluZSIgbWVkaWEgcXVlcmllcyBkbyBub3QgZXZhbHVhdGUgdG8gdHJ1ZSB3aXRoIGlPUyAxMy40
IG1vdXNlIHN1cHBvcnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTIwOTI5MgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNjA2NjMxMjQ+CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXZWJLaXRQcml2YXRl
RnJhbWV3b3JrU3R1YnMvaU9TLzEzL0JhY2tCb2FyZFNlcnZpY2VzLmZyYW1ld29yay9CYWNrQm9h
cmRTZXJ2aWNlcy50YmQ6IEFkZGVkLgorICAgICAgICAqIFdlYktpdFByaXZhdGVGcmFtZXdvcmtT
dHVicy9pT1MvMTQvQmFja0JvYXJkU2VydmljZXMuZnJhbWV3b3JrL0JhY2tCb2FyZFNlcnZpY2Vz
LnRiZDogQWRkZWQuCisgICAgICAgIFVzZSBgQmFja0JvYXJkU2VydmljZXNgIHRvIGxpc3RlbiBm
b3IgbW91c2UgZGV2aWNlcyBjaGFuZ2VzLgorCiAyMDIwLTEwLTA0ICBSeWFuIEhvc3RldGxlciAg
PHJob3N0QGFwcGxlLmNvbT4KIAogICAgICAgICBTdWJtaXNzaW9uIGZhaWx1cmUgd2l0aCAibWFr
ZTogKioqIE5vIHJ1bGUgdG8gbWFrZSB0YXJnZXQgYGluc3RhbGxzcmMnLiBTdG9wIgpkaWZmIC0t
Z2l0IGEvV2ViS2l0TGlicmFyaWVzL1dlYktpdFByaXZhdGVGcmFtZXdvcmtTdHVicy9pT1MvMTMv
QmFja0JvYXJkU2VydmljZXMuZnJhbWV3b3JrL0JhY2tCb2FyZFNlcnZpY2VzLnRiZCBiL1dlYktp
dExpYnJhcmllcy9XZWJLaXRQcml2YXRlRnJhbWV3b3JrU3R1YnMvaU9TLzEzL0JhY2tCb2FyZFNl
cnZpY2VzLmZyYW1ld29yay9CYWNrQm9hcmRTZXJ2aWNlcy50YmQKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDAyMzQ4
YmQzZWUwZTEzM2EzZDk1OGZiZGVjNTdmZjdmZGIzYjdmNwotLS0gL2Rldi9udWxsCisrKyBiL1dl
YktpdExpYnJhcmllcy9XZWJLaXRQcml2YXRlRnJhbWV3b3JrU3R1YnMvaU9TLzEzL0JhY2tCb2Fy
ZFNlcnZpY2VzLmZyYW1ld29yay9CYWNrQm9hcmRTZXJ2aWNlcy50YmQKQEAgLTAsMCArMSw5IEBA
CistLS0gIXRhcGktdGJkLXYzCithcmNoczogICAgICAgICAgIFsgeDg2XzY0LCBhcm02NCwgYXJt
NjRlIF0KK2luc3RhbGwtbmFtZTogICAgJy9TeXN0ZW0vTGlicmFyeS9Qcml2YXRlRnJhbWV3b3Jr
cy9CYWNrQm9hcmRTZXJ2aWNlcy5mcmFtZXdvcmsvQmFja0JvYXJkU2VydmljZXMnCitvYmpjLWNv
bnN0cmFpbnQ6IG5vbmUKK3BsYXRmb3JtOiBpb3MKK2V4cG9ydHM6CisgIC0gYXJjaHM6ICAgICAg
ICAgICBbIHg4Nl82NCwgYXJtNjQsIGFybTY0ZSBdCisgICAgb2JqYy1jbGFzc2VzOiAgICBbIEJL
U01vdXNlUG9pbnRlckRldmljZSwgQktTTW91c2VQb2ludGVyU2VydmljZSBdCisuLi4KZGlmZiAt
LWdpdCBhL1dlYktpdExpYnJhcmllcy9XZWJLaXRQcml2YXRlRnJhbWV3b3JrU3R1YnMvaU9TLzE0
L0JhY2tCb2FyZFNlcnZpY2VzLmZyYW1ld29yay9CYWNrQm9hcmRTZXJ2aWNlcy50YmQgYi9XZWJL
aXRMaWJyYXJpZXMvV2ViS2l0UHJpdmF0ZUZyYW1ld29ya1N0dWJzL2lPUy8xNC9CYWNrQm9hcmRT
ZXJ2aWNlcy5mcmFtZXdvcmsvQmFja0JvYXJkU2VydmljZXMudGJkCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjAwMjM0
OGJkM2VlMGUxMzNhM2Q5NThmYmRlYzU3ZmY3ZmRiM2I3ZjcKLS0tIC9kZXYvbnVsbAorKysgYi9X
ZWJLaXRMaWJyYXJpZXMvV2ViS2l0UHJpdmF0ZUZyYW1ld29ya1N0dWJzL2lPUy8xNC9CYWNrQm9h
cmRTZXJ2aWNlcy5mcmFtZXdvcmsvQmFja0JvYXJkU2VydmljZXMudGJkCkBAIC0wLDAgKzEsOSBA
QAorLS0tICF0YXBpLXRiZC12MworYXJjaHM6ICAgICAgICAgICBbIHg4Nl82NCwgYXJtNjQsIGFy
bTY0ZSBdCitpbnN0YWxsLW5hbWU6ICAgICcvU3lzdGVtL0xpYnJhcnkvUHJpdmF0ZUZyYW1ld29y
a3MvQmFja0JvYXJkU2VydmljZXMuZnJhbWV3b3JrL0JhY2tCb2FyZFNlcnZpY2VzJworb2JqYy1j
b25zdHJhaW50OiBub25lCitwbGF0Zm9ybTogaW9zCitleHBvcnRzOgorICAtIGFyY2hzOiAgICAg
ICAgICAgWyB4ODZfNjQsIGFybTY0LCBhcm02NGUgXQorICAgIG9iamMtY2xhc3NlczogICAgWyBC
S1NNb3VzZVBvaW50ZXJEZXZpY2UsIEJLU01vdXNlUG9pbnRlclNlcnZpY2UgXQorLi4uCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>410655</attachid>
            <date>2020-10-06 10:30:49 -0700</date>
            <delta_ts>2020-10-06 10:48:09 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-209292-20201006103048.patch</filename>
            <type>text/plain</type>
            <size>80285</size>
            <attacher name="Devin Rousso">hi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA5MjQ3ZTM1MWQ4MmM4NzRjODFiOTU0NzUwMDEzMDFlYzMwYTkzYTZkLi5m
NmQ4NWVjN2Q0Njg3NDNjZjg1ZjcxYjA1NmE1NzJiOTZkZTMyOWY5IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsNDAgQEAKKzIwMjAtMTAtMDUgIERldmluIFJvdXNzbyAgPGRyb3Vzc29AYXBwbGUuY29t
PgorCisgICAgICAgIENTUyBob3ZlciBhbmQgInBvaW50ZXI6IGZpbmUiIG1lZGlhIHF1ZXJpZXMg
ZG8gbm90IGV2YWx1YXRlIHRvIHRydWUgd2l0aCBpT1MgMTMuNCBtb3VzZSBzdXBwb3J0CisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDkyOTIKKyAgICAg
ICAgPHJkYXI6Ly9wcm9ibGVtLzYwNjYzMTI0PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIE9uIGlPUywgdGhlIHByaW1hcnkgcG9pbnRlciB3aWxsIGFs
d2F5cyBiZSB0b3VjaCBpbnB1dCwgc28gdGhlIGBob3ZlcmAvYHBvaW50ZXJgIG1lZGlhIHF1ZXJ5
CisgICAgICAgIHNob3VsZCBuZXZlciBjaGFuZ2UuIElmIGEgbW91c2UgaXMgY29ubmVjdGVkLCBo
b3dldmVyLCBgYW55LWhvdmVyYC9gYW55LXBvaW50ZXJgIHNob3VsZAorICAgICAgICBjaGFuZ2Ug
YXMgbm93IHRoZXJlIGlzIGF0IGxlYXN0IG9uZSBkZXZpY2UgdGhhdCBzdXBwb3J0cyBgaG92ZXJg
L2BmaW5lYC4gTm90ZSB0aGF0IGluIHRoZQorICAgICAgICBjYXNlIG9mIGBhbnktcG9pbnRlcmAg
dGhpcyBtZWFucyB0aGF0IGJvdGggYGNvYXJzZWAgYW5kIGBmaW5lYCB3aWxsIGFwcGx5LiBDYXRh
bHlzdCBhc3N1bWVzCisgICAgICAgIHRoYXQgdGhlcmUgaXMgYWx3YXlzIGEgbW91c2UgY29ubmVj
dGVkLgorCisgICAgICAgIFNwZWM6IGh0dHBzOi8vZHJhZnRzLmNzc3dnLm9yZy9tZWRpYXF1ZXJp
ZXMtNC8jYW55LWlucHV0CisKKyAgICAgICAgKiBjc3MvTWVkaWFRdWVyeUV2YWx1YXRvci5jcHA6
CisgICAgICAgIChXZWJDb3JlOjphbnlIb3ZlckV2YWx1YXRlKToKKyAgICAgICAgKFdlYkNvcmU6
OmFueVBvaW50ZXJFdmFsdWF0ZSk6CisKKyAgICAgICAgKiBwYWdlL0Nocm9tZUNsaWVudC5oOgor
ICAgICAgICAqIGxvYWRlci9FbXB0eUNsaWVudHMuaDoKKyAgICAgICAgKFdlYkNvcmU6OkVtcHR5
Q2hyb21lQ2xpZW50Ojpob3ZlclN1cHBvcnRlZEJ5QW55QXZhaWxhYmxlUG9pbnRpbmdEZXZpY2Ug
Y29uc3QpOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkVtcHR5Q2hyb21lQ2xpZW50Ojpwb2lu
dGVyQ2hhcmFjdGVyaXN0aWNzT2ZBbGxBdmFpbGFibGVQb2ludGluZ0RldmljZXMgY29uc3QpOiBB
ZGRlZC4KKyAgICAgICAgUHJvdmlkZSBhIHdheSBmb3IgV2ViQ29yZSB0byBnZXQgdGhlIGN1cnJl
bnQgc3RhdGUgb2Ygd2hldGhlciB0aGVyZSBhcmUgYW55IG1vdXNlIGRldmljZXMuCisgICAgICAg
IFJlZmFjdG9yIGxvZ2ljIGluIGBhbnlIb3ZlckV2YWx1YXRlYCBhbmQgYGFueVBvaW50ZXJFdmFs
dWF0ZWAgdG8gbW92ZSBwbGF0Zm9ybSBjb2RlIGludG8gdGhlCisgICAgICAgIHJlc3BlY3RpdmUg
YFdlYktpdDo6V2ViUGFnZWAgZmlsZS4KKworICAgICAgICAqIHBhZ2UvUG9pbnRlckNoYXJhY3Rl
cmlzdGljcy5oOiBBZGRlZC4KKyAgICAgICAgRW51bSBmb3IgYENvYXJzZWAgYW5kIGBGaW5lYC4K
KworICAgICAgICAqIHBsYXRmb3JtL1BsYXRmb3JtU2NyZWVuLmg6CisgICAgICAgIEV4cG9ydCBh
ZGRpdGlvbmFsIGZ1bmN0aW9ucyBmb3IgdXNlIGluIFdlYktpdC4KKworICAgICAgICAqIEhlYWRl
cnMuY21ha2U6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgor
CiAyMDIwLTEwLTA1ICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgogCiAg
ICAgICAgIENocm9tZUNsaWVudDo6bmVlZHNJbW1lZGlhdGVSZW5kZXJpbmdVcGRhdGUoKSBvbmx5
IGV4aXN0aW5nIHRvIHdvcmsgYXJvdW5kIGEgV2ViS2l0MSBidWcKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggZDdlYjRl
OWNlNmNhYmI3OGUzNGMzNmJkNWNmN2JmYjAxYmRmZmVkNS4uZjdiMDEyNmExMTFhZWM0Nzc4ZTQ3
MmNjZTllMzRhNzRlMDY3YzNhMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cK
KysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSw5NSBAQAorMjAyMC0xMC0w
NSAgRGV2aW4gUm91c3NvICA8ZHJvdXNzb0BhcHBsZS5jb20+CisKKyAgICAgICAgQ1NTIGhvdmVy
IGFuZCAicG9pbnRlcjogZmluZSIgbWVkaWEgcXVlcmllcyBkbyBub3QgZXZhbHVhdGUgdG8gdHJ1
ZSB3aXRoIGlPUyAxMy40IG1vdXNlIHN1cHBvcnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTIwOTI5MgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNjA2
NjMxMjQ+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
T24gaU9TLCB0aGUgcHJpbWFyeSBwb2ludGVyIHdpbGwgYWx3YXlzIGJlIHRvdWNoIGlucHV0LCBz
byB0aGUgYGhvdmVyYC9gcG9pbnRlcmAgbWVkaWEgcXVlcnkKKyAgICAgICAgc2hvdWxkIG5ldmVy
IGNoYW5nZS4gSWYgYSBtb3VzZSBpcyBjb25uZWN0ZWQsIGhvd2V2ZXIsIGBhbnktaG92ZXJgL2Bh
bnktcG9pbnRlcmAgc2hvdWxkCisgICAgICAgIGNoYW5nZSBhcyBub3cgdGhlcmUgaXMgYXQgbGVh
c3Qgb25lIGRldmljZSB0aGF0IHN1cHBvcnRzIGBob3ZlcmAvYGZpbmVgLiBOb3RlIHRoYXQgaW4g
dGhlCisgICAgICAgIGNhc2Ugb2YgYGFueS1wb2ludGVyYCB0aGlzIG1lYW5zIHRoYXQgYm90aCBg
Y29hcnNlYCBhbmQgYGZpbmVgIHdpbGwgYXBwbHkuIENhdGFseXN0IGFzc3VtZXMKKyAgICAgICAg
dGhhdCB0aGVyZSBpcyBhbHdheXMgYSBtb3VzZSBjb25uZWN0ZWQuCisKKyAgICAgICAgU3BlYzog
aHR0cHM6Ly9kcmFmdHMuY3Nzd2cub3JnL21lZGlhcXVlcmllcy00LyNhbnktaW5wdXQKKworICAg
ICAgICAqIFVJUHJvY2Vzcy9pb3MvV0tNb3VzZURldmljZU9ic2VydmVyLmg6IEFkZGVkLgorICAg
ICAgICAqIFVJUHJvY2Vzcy9pb3MvV0tNb3VzZURldmljZU9ic2VydmVyLm1tOiBBZGRlZC4KKyAg
ICAgICAgKCtbV0tNb3VzZURldmljZU9ic2VydmVyIHNoYXJlZEluc3RhbmNlXSk6CisgICAgICAg
ICgtW1dLTW91c2VEZXZpY2VPYnNlcnZlciBkZWFsbG9jXSk6CisgICAgICAgICgtW1dLTW91c2VE
ZXZpY2VPYnNlcnZlciBzdGFydF0pOgorICAgICAgICAoLVtXS01vdXNlRGV2aWNlT2JzZXJ2ZXIg
c3RvcF0pOgorICAgICAgICAoLVtXS01vdXNlRGV2aWNlT2JzZXJ2ZXIgbW91c2VQb2ludGVyRGV2
aWNlc0RpZENoYW5nZTpdKToKKyAgICAgICAgKC1bV0tNb3VzZURldmljZU9ic2VydmVyIF9zZXRI
YXNNb3VzZURldmljZUZvclRlc3Rpbmc6XSk6CisgICAgICAgIFVzZSBgQmFja0JvYXJkU2Vydmlj
ZXNgIHRvIGxpc3RlbiBmb3IgbW91c2UgZGV2aWNlcyBjaGFuZ2VzIGFuZCBub3RpZnkgYWxsIFdl
YlByb2Nlc3MuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5Lmg6CisgICAg
ICAgICogVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6Oldl
YlByb2Nlc3NQcm94eTo6V2ViUHJvY2Vzc1Byb3h5KToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJv
Y2Vzc1Byb3h5OjpwbGF0Zm9ybUluaXRpYWxpemUpOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6
V2ViUHJvY2Vzc1Byb3h5Ojp+V2ViUHJvY2Vzc1Byb3h5KToKKyAgICAgICAgKFdlYktpdDo6V2Vi
UHJvY2Vzc1Byb3h5OjpwbGF0Zm9ybURlc3Ryb3kpOiBBZGRlZC4KKyAgICAgICAgKiBVSVByb2Nl
c3MvaW9zL1dlYlByb2Nlc3NQcm94eUlPUy5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vz
c1Byb3h5OjpwbGF0Zm9ybUluaXRpYWxpemUpOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6V2Vi
UHJvY2Vzc1Byb3h5OjpwbGF0Zm9ybURlc3Ryb3kpOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6
V2ViUHJvY2Vzc1Byb3h5Ojpub3RpZnlIYXNNb3VzZURldmljZUNoYW5nZWQpOiBBZGRlZC4KKyAg
ICAgICAgVGVsbCB0aGUgc2hhcmVkIGBXS01vdXNlRGV2aWNlT2JzZXJ2ZXJgIHRvIHN0YXJ0IGxp
c3RlbmluZyBmb3IgbW91c2UgZGV2aWNlIGNoYW5nZXMgd2hlbgorICAgICAgICBjcmVhdGluZyB0
aGUgV2ViUHJvY2VzcyBzbyB0aGF0IHRoZSBzaGFyZWQgYFdLTW91c2VEZXZpY2VPYnNlcnZlcmAg
a25vd3MgdG8gbm90aWZ5IGFsbAorICAgICAgICBpbnN0YW5jZXMgd2hlbiBtb3VzZSBkZXZpY2Vz
IGNoYW5nZS4gTWFrZSBgYWxsUHJvY2Vzc2VzYCBpbnRvIGEgYHByaXZhdGUgc3RhdGljYCBtZW1i
ZXIKKyAgICAgICAgZnVuY3Rpb24gc28gdGhhdCBpdCBjYW4gYWxzbyBiZSB1c2VkIGluIGBVSVBy
b2Nlc3MvaW9zL1dlYlByb2Nlc3NQcm94eUlPUy5tbWAuCisKKyAgICAgICAgKiBTaGFyZWQvV2Vi
UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oOgorICAgICAgICAqIFNoYXJlZC9XZWJQcm9jZXNz
Q3JlYXRpb25QYXJhbWV0ZXJzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc0NyZWF0
aW9uUGFyYW1ldGVyczo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vz
c0NyZWF0aW9uUGFyYW1ldGVyczo6ZGVjb2RlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2Ev
V2ViUHJvY2Vzc1Bvb2xDb2NvYS5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Bvb2w6
OnBsYXRmb3JtSW5pdGlhbGl6ZVdlYlByb2Nlc3MpOgorICAgICAgICBVc2UgdGhlIGN1cnJlbnQg
c3RhdGUgb2YgdGhlIHNoYXJlZCBgV0tNb3VzZURldmljZU9ic2VydmVyYCB3aGVuIGNyZWF0aW5n
IFdlYlByb2Nlc3MgaW5zdGVhZAorICAgICAgICBvZiBzZW5kaW5nIGEgYFNldEhhc01vdXNlRGV2
aWNlYCBtZXNzYWdlIGltbWVkaWF0ZWx5IGFmdGVyIHRoZSBXZWJQcm9jZXNzIGlzIGNyZWF0ZWQu
CisKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlByb2Nlc3MubWVzc2FnZXMuaW46CisgICAgICAg
ICogV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmg6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6
Omhhc01vdXNlRGV2aWNlIGNvbnN0KTogQWRkZWQuCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQ
cm9jZXNzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6aW5pdGlhbGl6ZVdlYlBy
b2Nlc3MpOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjpzZXRIYXNNb3VzZURldmljZSk6
IEFkZGVkLgorICAgICAgICBVcGRhdGUgc3R5bGUgKGluY2x1ZGluZyBgYW55LWhvdmVyYCBhbmQg
YGFueS1wb2ludGVyYCkgd2hlbmV2ZXIgbW91c2UgZGV2aWNlcyBjaGFuZ2UuCisKKyAgICAgICAg
KiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oOgorICAgICAgICAq
IFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcDoKKyAgICAgICAg
KFdlYktpdDo6V2ViQ2hyb21lQ2xpZW50Ojpob3ZlclN1cHBvcnRlZEJ5QW55QXZhaWxhYmxlUG9p
bnRpbmdEZXZpY2UgY29uc3QpOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViQ2hyb21lQ2xp
ZW50Ojpwb2ludGVyQ2hhcmFjdGVyaXN0aWNzT2ZBbGxBdmFpbGFibGVQb2ludGluZ0RldmljZXMg
Y29uc3QpOiBBZGRlZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oOgor
ICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9ndGsvV2ViUGFnZUd0ay5jcHA6CisgICAgICAg
IChXZWJLaXQ6OldlYlBhZ2U6OmhvdmVyU3VwcG9ydGVkQnlBbnlBdmFpbGFibGVQb2ludGluZ0Rl
dmljZSBjb25zdCk6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpwb2ludGVyQ2hh
cmFjdGVyaXN0aWNzT2ZBbGxBdmFpbGFibGVQb2ludGluZ0RldmljZXMgY29uc3QpOiBBZGRlZC4K
KyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW06CisgICAgICAg
IChXZWJLaXQ6Omhhc01vdXNlRGV2aWNlKTogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OldlYlBh
Z2U6OmhvdmVyU3VwcG9ydGVkQnlBbnlBdmFpbGFibGVQb2ludGluZ0RldmljZSBjb25zdCk6IEFk
ZGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpwb2ludGVyQ2hhcmFjdGVyaXN0aWNzT2ZB
bGxBdmFpbGFibGVQb2ludGluZ0RldmljZXMgY29uc3QpOiBBZGRlZC4KKyAgICAgICAgKiBXZWJQ
cm9jZXNzL1dlYlBhZ2UvbWFjL1dlYlBhZ2VNYWMubW06CisgICAgICAgIChXZWJLaXQ6OldlYlBh
Z2U6OmhvdmVyU3VwcG9ydGVkQnlBbnlBdmFpbGFibGVQb2ludGluZ0RldmljZSBjb25zdCk6IEFk
ZGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpwb2ludGVyQ2hhcmFjdGVyaXN0aWNzT2ZB
bGxBdmFpbGFibGVQb2ludGluZ0RldmljZXMgY29uc3QpOiBBZGRlZC4KKyAgICAgICAgKiBXZWJQ
cm9jZXNzL1dlYlBhZ2UvcGxheXN0YXRpb24vV2ViUGFnZVBsYXlTdGF0aW9uLmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6V2ViUGFnZTo6aG92ZXJTdXBwb3J0ZWRCeUFueUF2YWlsYWJsZVBvaW50aW5n
RGV2aWNlIGNvbnN0KTogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OnBvaW50ZXJD
aGFyYWN0ZXJpc3RpY3NPZkFsbEF2YWlsYWJsZVBvaW50aW5nRGV2aWNlcyBjb25zdCk6IEFkZGVk
LgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS93aW4vV2ViUGFnZVdpbi5jcHA6CisgICAg
ICAgIChXZWJLaXQ6OldlYlBhZ2U6OmhvdmVyU3VwcG9ydGVkQnlBbnlBdmFpbGFibGVQb2ludGlu
Z0RldmljZSBjb25zdCk6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpwb2ludGVy
Q2hhcmFjdGVyaXN0aWNzT2ZBbGxBdmFpbGFibGVQb2ludGluZ0RldmljZXMgY29uc3QpOiBBZGRl
ZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2Uvd3BlL1dlYlBhZ2VXUEUuY3BwOgorICAg
ICAgICAoV2ViS2l0OjpXZWJQYWdlOjpob3ZlclN1cHBvcnRlZEJ5QW55QXZhaWxhYmxlUG9pbnRp
bmdEZXZpY2UgY29uc3QpOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6cG9pbnRl
ckNoYXJhY3RlcmlzdGljc09mQWxsQXZhaWxhYmxlUG9pbnRpbmdEZXZpY2VzIGNvbnN0KTogQWRk
ZWQuCisgICAgICAgIFByb3ZpZGUgYSB3YXkgZm9yIFdlYkNvcmUgdG8gZ2V0IHRoZSBjdXJyZW50
IHN0YXRlIG9mIHdoZXRoZXIgdGhlcmUgYXJlIGFueSBtb3VzZSBkZXZpY2VzLgorICAgICAgICBS
ZWZhY3RvciBsb2dpYyBpbiBgV2ViQ29yZTo6YW55SG92ZXJFdmFsdWF0ZWAgYW5kIGBXZWJDb3Jl
OjphbnlQb2ludGVyRXZhbHVhdGVgIHRvIG1vdmUKKyAgICAgICAgcGxhdGZvcm0gY29kZSBpbnRv
IHRoZSByZXNwZWN0aXZlIGBXZWJQYWdlYCBmaWxlLgorCisgICAgICAgICogQ29uZmlndXJhdGlv
bnMvV2ViS2l0LnhjY29uZmlnOgorICAgICAgICAqIFBsYXRmb3JtL3NwaS9pb3MvQmFja0JvYXJk
U2VydmljZXNTUEkuaDoKKyAgICAgICAgKiBQbGF0Zm9ybS9zcGkvaW9zL0Jhc2VCb2FyZFNQSS5o
OiBBZGRlZC4KKyAgICAgICAgKiBTb3VyY2VzQ29jb2EudHh0OgorICAgICAgICAqIFdlYktpdC54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorCiAyMDIwLTEwLTA1ICBCcmFkeSBFaWRzb24gIDxi
ZWlkc29uQGFwcGxlLmNvbT4KIAogICAgICAgICBDaGFuZ2UgYSBQREYgUkVMRUFTRV9BU1NFUlQg
dG8gYW4gZWFybHkgcmV0dXJuLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9pb3Mv
Q2hhbmdlTG9nIGIvU291cmNlL1dlYktpdExlZ2FjeS9pb3MvQ2hhbmdlTG9nCmluZGV4IDEyZTY1
NWIxZWNkZDVkNDcwZjNlYTQwZmFjNzgzNWZlMWY1N2ZiZmMuLjE5YWJmODY3ZTY1ZmZmNTVlYzFm
OGRlMWU0MWQ4YzE4NjI2NmM0MzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvaW9z
L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L2lvcy9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNiBAQAorMjAyMC0xMC0wNSAgRGV2aW4gUm91c3NvICA8ZHJvdXNzb0BhcHBsZS5jb20+
CisKKyAgICAgICAgQ1NTIGhvdmVyIGFuZCAicG9pbnRlcjogZmluZSIgbWVkaWEgcXVlcmllcyBk
byBub3QgZXZhbHVhdGUgdG8gdHJ1ZSB3aXRoIGlPUyAxMy40IG1vdXNlIHN1cHBvcnQKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwOTI5MgorICAgICAg
ICA8cmRhcjovL3Byb2JsZW0vNjA2NjMxMjQ+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnRJT1Mu
aDoKKyAgICAgICAgKFdlYkNocm9tZUNsaWVudElPUzo6aG92ZXJTdXBwb3J0ZWRCeUFueUF2YWls
YWJsZVBvaW50aW5nRGV2aWNlIGNvbnN0KTogQWRkZWQuCisgICAgICAgIChXZWJDaHJvbWVDbGll
bnRJT1M6OnBvaW50ZXJDaGFyYWN0ZXJpc3RpY3NPZkFsbEF2YWlsYWJsZVBvaW50aW5nRGV2aWNl
cyBjb25zdCk6IEFkZGVkLgorICAgICAgICBNb3VzZSBkZXZpY2VzIGFyZSBub3Qgc3VwcG9ydGVk
LgorCiAyMDIwLTA5LTIwICBEYXJpbiBBZGxlciAgPGRhcmluQGFwcGxlLmNvbT4KIAogICAgICAg
ICBOZXh0IHN0ZXAgdG93YXJkcyBlbGltaW5hdGluZyBkZXByZWNhdGVkIGxlZ2FjeSBwb3NpdGlv
bnMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZyBiL1NvdXJj
ZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZwppbmRleCAyYWRkOWQxMGNjNzU1Yjg0NGVjMjU3
MzRhOWFkZWFiNzg0Yzg5NDQ1Li4wMzdhODg5YjI1MjQzZjgwNjdkMjdkODNiOTI4MDkxZmM4NzEw
OWNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKKysrIGIv
U291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMjAt
MTAtMDUgIERldmluIFJvdXNzbyAgPGRyb3Vzc29AYXBwbGUuY29tPgorCisgICAgICAgIENTUyBo
b3ZlciBhbmQgInBvaW50ZXI6IGZpbmUiIG1lZGlhIHF1ZXJpZXMgZG8gbm90IGV2YWx1YXRlIHRv
IHRydWUgd2l0aCBpT1MgMTMuNCBtb3VzZSBzdXBwb3J0CisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDkyOTIKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVt
LzYwNjYzMTI0PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgICogV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lmg6CisgICAgICAgIChXZWJDaHJv
bWVDbGllbnQ6OmhvdmVyU3VwcG9ydGVkQnlBbnlBdmFpbGFibGVQb2ludGluZ0RldmljZSBjb25z
dCk6IEFkZGVkLgorICAgICAgICAoV2ViQ2hyb21lQ2xpZW50Ojpwb2ludGVyQ2hhcmFjdGVyaXN0
aWNzT2ZBbGxBdmFpbGFibGVQb2ludGluZ0RldmljZXMgY29uc3QpOiBBZGRlZC4KKyAgICAgICAg
TW91c2UgZGV2aWNlcyBhcmUgYWx3YXlzIHN1cHBvcnRlZC4KKwogMjAyMC0xMC0wNSAgU2ltb24g
RnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4KIAogICAgICAgICBDaHJvbWVDbGllbnQ6
Om5lZWRzSW1tZWRpYXRlUmVuZGVyaW5nVXBkYXRlKCkgb25seSBleGlzdGluZyB0byB3b3JrIGFy
b3VuZCBhIFdlYktpdDEgYnVnCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9DaGFuZ2VMb2cKaW5kZXggNTEwYmE4
NDFlNDNiYjE3YjQ3ZjIxMWRkY2ExNDkxYTU1NzJlZjdjYS4uYTNmOGZjZWIzYzRhMGViMDg2NDcz
MDZhMjE3YmM2YWUxODU0OWNmMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4v
Q2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDE2IEBACisyMDIwLTEwLTA1ICBEZXZpbiBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNvbT4K
KworICAgICAgICBDU1MgaG92ZXIgYW5kICJwb2ludGVyOiBmaW5lIiBtZWRpYSBxdWVyaWVzIGRv
IG5vdCBldmFsdWF0ZSB0byB0cnVlIHdpdGggaU9TIDEzLjQgbW91c2Ugc3VwcG9ydAorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA5MjkyCisgICAgICAg
IDxyZGFyOi8vcHJvYmxlbS82MDY2MzEyND4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oOgor
ICAgICAgICAoV2ViQ2hyb21lQ2xpZW50Ojpob3ZlclN1cHBvcnRlZEJ5QW55QXZhaWxhYmxlUG9p
bnRpbmdEZXZpY2UgY29uc3QpOiBBZGRlZC4KKyAgICAgICAgKFdlYkNocm9tZUNsaWVudDo6cG9p
bnRlckNoYXJhY3RlcmlzdGljc09mQWxsQXZhaWxhYmxlUG9pbnRpbmdEZXZpY2VzIGNvbnN0KTog
QWRkZWQuCisgICAgICAgIE1vdXNlIGRldmljZXMgYXJlIGFsd2F5cyBzdXBwb3J0ZWQuCisKIDIw
MjAtMTAtMDUgIEFkaXR5YSBLZWVydGhpICA8YWtlZXJ0aGlAYXBwbGUuY29tPgogCiAgICAgICAg
IFtDb250YWN0IFBpY2tlciBBUEldIEludHJvZHVjZSBiaW5kaW5ncyBmb3IgdGhlIENvbnRhY3Qg
UGlja2VyIEFQSQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZSBiL1Nv
dXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKaW5kZXggNDY5MTEwMmRjOWZmNDUwZDUwMTY1ZDBk
NmIxYWVhZWZjYTM4MTcwMC4uZjA0ZjA2YmI0NTNhZDVlZWU0YTFjODdmY2FlOTliZTY3NTc3MmI3
OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9IZWFkZXJzLmNtYWtlCkBAIC04NTQsNiArODU0LDcgQEAgc2V0KFdlYkNvcmVfUFJJ
VkFURV9GUkFNRVdPUktfSEVBREVSUwogICAgIHBhZ2UvUGVyZm9ybWFuY2VMb2dnaW5nQ2xpZW50
LmgKICAgICBwYWdlL1BsdWdJbkNsaWVudC5oCiAgICAgcGFnZS9Qb2ludGVyQ2FwdHVyZUNvbnRy
b2xsZXIuaAorICAgIHBhZ2UvUG9pbnRlckNoYXJhY3RlcmlzdGljcy5oCiAgICAgcGFnZS9Qb2lu
dGVyTG9ja0NvbnRyb2xsZXIuaAogICAgIHBhZ2UvUG9zdE1lc3NhZ2VPcHRpb25zLmgKICAgICBw
YWdlL1ByZXdhcm1JbmZvcm1hdGlvbi5oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggZDdiZDM3MDkyMDlhYWVjYjc5YzdjZDZhZGIx
NWQyZTEwZTc5Yjk5My4uZGNmZDZlN2U5OWJiMGUwNThmYzllMzI4NzQ2MGNkMmZmMDZmNTBmMyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agpAQCAtMjg1Nyw2ICsyODU3LDcgQEAKIAkJOTRFODM5NTYxREZCMkJDNDAwN0JDNkE3IC8qIEpT
Q1NTTmFtZXNwYWNlUnVsZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gOTRFODM5NTQxREZCMkJBNjAwN0JDNkE3IC8qIEpTQ1NTTmFtZXNwYWNlUnVsZS5o
ICovOyB9OwogCQk5NTIwNzYwNTFGMjY3NUZFMDA3RDJBQUIgLyogQ2FsbFRyYWNlci5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTUyMDc2MDExRjI2NzVG
OTAwN0QyQUFCIC8qIENhbGxUcmFjZXIuaCAqLzsgfTsKIAkJOTUyMDc2MDYxRjI2NzVGRTAwN0Qy
QUFCIC8qIENhbGxUcmFjZXJUeXBlcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gOTUyMDc2MDIxRjI2NzVGOTAwN0QyQUFCIC8qIENhbGxUcmFjZXJUeXBl
cy5oICovOyB9OworCQk5NURGOUQyNTI1MkJFREIyMDAwRDdGNDYgLyogUG9pbnRlckNoYXJhY3Rl
cmlzdGljcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
OTVERjlEMjMyNTJCRUQ5OTAwMEQ3RjQ2IC8qIFBvaW50ZXJDaGFyYWN0ZXJpc3RpY3MuaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk5NzA1OTk3QTEw
N0Q5NzUyMDBBNTBBN0MgLyogUG9saWN5Q2hlY2tlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTcwNTk5NzYxMDdEOTc1MjAwQTUwQTdDIC8qIFBvbGlj
eUNoZWNrZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OwogCQk5NzBCNzI4QTE0NEZGQUM2MDBGMDBBMzcgLyogRXZlbnRJbnRlcmZhY2VzLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5NzBCNzI4OTE0NEZGQUM2
MDBGMDBBMzcgLyogRXZlbnRJbnRlcmZhY2VzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMg
PSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJOTcwQjcyQTYxNDUwMDhFQjAwRjAwQTM3IC8qIEV2ZW50
SGVhZGVycy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
OTcwQjcyQTUxNDUwMDhFQjAwRjAwQTM3IC8qIEV2ZW50SGVhZGVycy5oICovOyB9OwpAQCAtMTE0
NTksNiArMTE0NjAsNyBAQAogCQk5NTIwNzYwMDFGMjY3NUY5MDA3RDJBQUIgLyogQ2FsbFRyYWNl
ci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDYWxsVHJhY2VyLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJOTUyMDc2MDExRjI2NzVGOTAwN0QyQUFCIC8qIENhbGxUcmFjZXIuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gQ2FsbFRyYWNlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk5NTIwNzYwMjFGMjY3NUY5MDA3RDJBQUIgLyogQ2FsbFRyYWNlclR5cGVzLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IENhbGxUcmFjZXJUeXBlcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5
NURGOUQyMzI1MkJFRDk5MDAwRDdGNDYgLyogUG9pbnRlckNoYXJhY3RlcmlzdGljcy5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBQb2ludGVyQ2hhcmFjdGVyaXN0aWNzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTk2QUJBNDIyMTRCQ0I4MEUwMEQ1NjIwNCAvKiBHcmFwaGljc0NvbnRleHRHTE9w
ZW5HTENvbW1vbi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBHcmFw
aGljc0NvbnRleHRHTE9wZW5HTENvbW1vbi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTk3MDU5OTc1MTA3RDk3NTIwMEE1MEE3QyAvKiBQb2xpY3lDaGVja2VyLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFBvbGljeUNoZWNrZXIuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk5NzA1OTk3NjEwN0Q5NzUyMDBBNTBBN0MgLyogUG9saWN5
Q2hlY2tlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQb2xpY3lDaGVja2Vy
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0yMTczMSw2ICsyMTczMyw3IEBACiAJ
CQkJMzFENTkxQjExNjY5N0E2QzAwRTZCRjAyIC8qIFBsdWdJbkNsaWVudC5oICovLAogCQkJCTcx
QjVBQjI1MjFGMUQ5RTMwMDM3NkU1QyAvKiBQb2ludGVyQ2FwdHVyZUNvbnRyb2xsZXIuY3BwICov
LAogCQkJCTcxQjVBQjI0MjFGMUQ5RTIwMDM3NkU1QyAvKiBQb2ludGVyQ2FwdHVyZUNvbnRyb2xs
ZXIuaCAqLywKKwkJCQk5NURGOUQyMzI1MkJFRDk5MDAwRDdGNDYgLyogUG9pbnRlckNoYXJhY3Rl
cmlzdGljcy5oICovLAogCQkJCTVDRkM0MzRFMTkyNDA2QTkwMEEwRDNCNSAvKiBQb2ludGVyTG9j
a0NvbnRyb2xsZXIuY3BwICovLAogCQkJCTVDRkM0MzRGMTkyNDA2QTkwMEEwRDNCNSAvKiBQb2lu
dGVyTG9ja0NvbnRyb2xsZXIuaCAqLywKIAkJCQkzNzcyQjA5NTE2NTM1ODU2MDAwQTQ5Q0EgLyog
UG9wdXBPcGVuaW5nT2JzZXJ2ZXIuaCAqLywKQEAgLTMxMjIxLDkgKzMxMjI0LDcgQEAKIAkJCQk4
MzVENTRDNTFGNERFNTM4MDBFNjA2NzEgLyogRGlyZWN0b3J5RmlsZUxpc3RDcmVhdG9yLmggaW4g
SGVhZGVycyAqLywKIAkJCQlGNDdBMDlEMTIwQTkzQTk3MDAyNDBGQUUgLyogRGlzYWJsZWRBZGFw
dGF0aW9ucy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJN0VEQUFGQzkxOUEyQ0NEQzAwMzRERkQxIC8q
IERpc2tDYWNoZU1vbml0b3JDb2NvYS5oIGluIEhlYWRlcnMgKi8sCi0JCQkJRTQ1MUM2MzQyMzk0
MDU4RjAwOTkzMTkwIC8qIExheW91dEludGVncmF0aW9uSW5saW5lQ29udGVudC5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJMEY3OTBGNDIyNTE3Q0U2RTAwOUJBMDM0IC8qIERpc3BsYXlMYXllckNvbnRy
b2xsZXIuaCBpbiBIZWFkZXJzICovLAotCQkJCTZGQjQ3RTYzMjI3NzQyNUEwMEM3QkNCMCAvKiBM
YXlvdXRJbnRlZ3JhdGlvbkxpbmUuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGRTVGQkQzMUMzREQ1
MUUwMDA3QTJDQSAvKiBEaXNwbGF5TGlzdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTVBRDA5NDAy
NDA4OTY0MDAwREU0RDJGIC8qIERpc3BsYXlMaXN0RHJhd2luZ0NvbnRleHQuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTU1QUQwOTNFMjQwODk2MzUwMERFNEQyRiAvKiBEaXNwbGF5TGlzdEltYWdlQnVm
ZmVyLmggaW4gSGVhZGVycyAqLywKQEAgLTMxMjM2LDcgKzMxMjM3LDYgQEAKIAkJCQkyRDI5RUND
QTE5MkYxRjFEMDA5ODRCNzggLyogRGlzcGxheVJlZnJlc2hNb25pdG9ySU9TLmggaW4gSGVhZGVy
cyAqLywKIAkJCQkyREU3MDAyMzE5MkZFODJBMDBCMDk3NUMgLyogRGlzcGxheVJlZnJlc2hNb25p
dG9yTWFjLmggaW4gSGVhZGVycyAqLywKIAkJCQkyRDI5RUNDODE5MkVDQzgzMDA5ODRCNzggLyog
RGlzcGxheVJlZnJlc2hNb25pdG9yTWFuYWdlci5oIGluIEhlYWRlcnMgKi8sCi0JCQkJNkZDRTFB
MUEyMjYxOEFCRDAwNEYwMzQzIC8qIExheW91dEludGVncmF0aW9uUnVuLmggaW4gSGVhZGVycyAq
LywKIAkJCQkwRjc5MEY0MzI1MTdDRTZFMDA5QkEwMzQgLyogRGlzcGxheVZpZXcuaCBpbiBIZWFk
ZXJzICovLAogCQkJCUZEMzE2MDkxMTJCMDI2RjcwMEMxQTM1OSAvKiBEaXN0YW5jZS5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJODMwNDAyODMyNDlBN0E2MjAwQTkwRDhEIC8qIERpc3RhbmNlTW9kZWxU
eXBlLmggaW4gSGVhZGVycyAqLywKQEAgLTMxOTI3LDYgKzMxOTI3LDcgQEAKIAkJCQk2RkMzRjk0
NzI1MTY3NTY3MDBBNDlCRUEgLyogSW5saW5lTGluZVJ1bi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
RjQ1Nzc1Q0UyNDE0MzdENTAwMkRGMUEwIC8qIElubGluZVBhdGhEYXRhLmggaW4gSGVhZGVycyAq
LywKIAkJCQk2RjQwREE4MjI1MTMwMzNBMDBFQzA0QjcgLyogSW5saW5lUmVjdC5oIGluIEhlYWRl
cnMgKi8sCisJCQkJRTREMzNGM0IyNTJBRUVDRDAwODM3RDA1IC8qIElubGluZVJ1bkFuZE9mZnNl
dC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNkYzNjBFNTAyMzk5OTQyMTAwMTUxMkE3IC8qIElubGlu
ZVNvZnRMaW5lQnJlYWtJdGVtLmggaW4gSGVhZGVycyAqLywKIAkJCQlBQTRDM0E3NzBCMkIxNjc5
MDAyMzM0QTIgLyogSW5saW5lU3R5bGVTaGVldE93bmVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlC
Q0VBNDg1QTA5N0Q5MzAyMDA5NEM5RTQgLyogSW5saW5lVGV4dEJveC5oIGluIEhlYWRlcnMgKi8s
CkBAIC0zMjg5NSw4ICszMjg5NiwxMSBAQAogCQkJCTZGMEI5OEI1MjNGMjY4RUMwMEVFQzJGMiAv
KiBMYXlvdXRJbmxpbmVUZXh0Qm94LmggaW4gSGVhZGVycyAqLywKIAkJCQlFNDE4MDI1NTIzRDQ1
NDlCMDBGRkIwNzEgLyogTGF5b3V0SW50ZWdyYXRpb25Cb3hUcmVlLmggaW4gSGVhZGVycyAqLywK
IAkJCQlFNDAzQjdBMjI1MUIxMTkzMDAxOUU4MDAgLyogTGF5b3V0SW50ZWdyYXRpb25Db3ZlcmFn
ZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJRTQ1MUM2MzQyMzk0MDU4RjAwOTkzMTkwIC8qIExheW91
dEludGVncmF0aW9uSW5saW5lQ29udGVudC5oIGluIEhlYWRlcnMgKi8sCisJCQkJNkZCNDdFNjMy
Mjc3NDI1QTAwQzdCQ0IwIC8qIExheW91dEludGVncmF0aW9uTGluZS5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJRTRBQkFCREQyMzYwODhGRTAwRkE0MzQ1IC8qIExheW91dEludGVncmF0aW9uTGluZUxh
eW91dC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTQwM0I3QTMyNTFCMTFDMTAwMTlFODAwIC8qIExh
eW91dEludGVncmF0aW9uUGFnaW5hdGlvbi5oIGluIEhlYWRlcnMgKi8sCisJCQkJNkZDRTFBMUEy
MjYxOEFCRDAwNEYwMzQzIC8qIExheW91dEludGVncmF0aW9uUnVuLmggaW4gSGVhZGVycyAqLywK
IAkJCQlFNEE2NjRDQzI1MjFENEFGMDA3MDgxREMgLyogTGF5b3V0SW50ZWdyYXRpb25SdW5JdGVy
YXRvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTRBNjY0Q0YyNTIxRDRFMjAwNzA4MURDIC8qIExh
eW91dEludGVncmF0aW9uUnVuSXRlcmF0b3JMZWdhY3lQYXRoLmggaW4gSGVhZGVycyAqLywKIAkJ
CQlFNEE2NjRDRTI1MjFENEM5MDA3MDgxREMgLyogTGF5b3V0SW50ZWdyYXRpb25SdW5JdGVyYXRv
ck1vZGVyblBhdGguaCBpbiBIZWFkZXJzICovLApAQCAtMzM0MjEsNiArMzM0MjUsNyBAQAogCQkJ
CUJDQkI4QUJBMTNGMUFGQjAwMDczNERGMCAvKiBQT0RJbnRlcnZhbFRyZWUuaCBpbiBIZWFkZXJz
ICovLAogCQkJCUJDQkI4QUJCMTNGMUFGQjAwMDczNERGMCAvKiBQT0RSZWRCbGFja1RyZWUuaCBp
biBIZWFkZXJzICovLAogCQkJCTcxQjVBQjI2MjFGMUQ5RjQwMDM3NkU1QyAvKiBQb2ludGVyQ2Fw
dHVyZUNvbnRyb2xsZXIuaCBpbiBIZWFkZXJzICovLAorCQkJCTk1REY5RDI1MjUyQkVEQjIwMDBE
N0Y0NiAvKiBQb2ludGVyQ2hhcmFjdGVyaXN0aWNzLmggaW4gSGVhZGVycyAqLywKIAkJCQkzMTdE
M0ZGMzIxNTU5OUY0MDAzNEUzQjkgLyogUG9pbnRlckV2ZW50LmggaW4gSGVhZGVycyAqLywKIAkJ
CQlCMkIxRjcxNzBEMDBDQUE4MDA0QUVBNjQgLyogUG9pbnRlckV2ZW50c0hpdFJ1bGVzLmggaW4g
SGVhZGVycyAqLywKIAkJCQk3MUVBRENEODIyMDg3RTcyMDA2NUE0NUYgLyogUG9pbnRlcklELmgg
aW4gSGVhZGVycyAqLywKQEAgLTM0ODAxLDcgKzM0ODA2LDYgQEAKIAkJCQlFMUVFOEI5OTI0MTMx
OTUwMDBFNzk0RDYgLyogWFJJbnB1dFNvdXJjZXNDaGFuZ2VFdmVudC5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJRTEyQTlGNEEyNDhBOTlFMjAwM0YwNkM4IC8qIFhSSW50ZXJhY3Rpb25Nb2RlLmggaW4g
SGVhZGVycyAqLywKIAkJCQlFMUVFOEI4NDI0MTMxOTFGMDBFNzk0RDYgLyogWFJSZWZlcmVuY2VT
cGFjZUV2ZW50LmggaW4gSGVhZGVycyAqLywKLQkJCQlFNEQzM0YzQjI1MkFFRUNEMDA4MzdEMDUg
LyogSW5saW5lUnVuQW5kT2Zmc2V0LmggaW4gSGVhZGVycyAqLywKIAkJCQlFMUVFOEI3NzI0MTMx
OTFGMDBFNzk0RDYgLyogWFJSZWZlcmVuY2VTcGFjZVR5cGUuaCBpbiBIZWFkZXJzICovLAogCQkJ
CUUxRUU4Qjc5MjQxMzE5MUYwMEU3OTRENiAvKiBYUlJlbmRlclN0YXRlSW5pdC5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJRTFFRThCOEQyNDEzMTk1MDAwRTc5NEQ2IC8qIFhSU2Vzc2lvbkV2ZW50Lmgg
aW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5
RXZhbHVhdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5RXZhbHVhdG9yLmNw
cAppbmRleCA4MTE4YjdhYjNjNTBiM2NlZDgxMjBmYzEwNmRjZTljNzMxNDFhZmU0Li41OTdhMmQ2
MTU4NjkwM2VlZGZhM2ZiNjY0ZjNjZGJmMTAwNzM5MjY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9jc3MvTWVkaWFRdWVyeUV2YWx1YXRvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3Nz
L01lZGlhUXVlcnlFdmFsdWF0b3IuY3BwCkBAIC0zMyw2ICszMyw4IEBACiAjaW5jbHVkZSAiQ1NT
UHJpbWl0aXZlVmFsdWUuaCIKICNpbmNsdWRlICJDU1NUb0xlbmd0aENvbnZlcnNpb25EYXRhLmgi
CiAjaW5jbHVkZSAiQ1NTVmFsdWVLZXl3b3Jkcy5oIgorI2luY2x1ZGUgIkNocm9tZS5oIgorI2lu
Y2x1ZGUgIkNocm9tZUNsaWVudC5oIgogI2luY2x1ZGUgIkZyYW1lLmgiCiAjaW5jbHVkZSAiRnJh
bWVWaWV3LmgiCiAjaW5jbHVkZSAiTG9nZ2luZy5oIgpAQCAtNzMwLDIyICs3MzIsMTYgQEAgc3Rh
dGljIGJvb2wgaG92ZXJFdmFsdWF0ZShDU1NWYWx1ZSogdmFsdWUsIGNvbnN0IENTU1RvTGVuZ3Ro
Q29udmVyc2lvbkRhdGEmLCBGcmEKICAgICByZXR1cm4ga2V5d29yZCA9PSBDU1NWYWx1ZUhvdmVy
OwogfQogCi1zdGF0aWMgYm9vbCBhbnlIb3ZlckV2YWx1YXRlKENTU1ZhbHVlKiB2YWx1ZSwgY29u
c3QgQ1NTVG9MZW5ndGhDb252ZXJzaW9uRGF0YSYsIEZyYW1lJiwgTWVkaWFGZWF0dXJlUHJlZml4
KQorc3RhdGljIGJvb2wgYW55SG92ZXJFdmFsdWF0ZShDU1NWYWx1ZSogdmFsdWUsIGNvbnN0IENT
U1RvTGVuZ3RoQ29udmVyc2lvbkRhdGEmLCBGcmFtZSYgZnJhbWUsIE1lZGlhRmVhdHVyZVByZWZp
eCkKIHsKLSAgICBpZiAoIWlzPENTU1ByaW1pdGl2ZVZhbHVlPih2YWx1ZSkpIHsKLSNpZiBFTkFC
TEUoVE9VQ0hfRVZFTlRTKQotICAgICAgICByZXR1cm4gIXNjcmVlbkhhc1RvdWNoRGV2aWNlKCk7
Ci0jZWxzZQotICAgICAgICByZXR1cm4gdHJ1ZTsKLSNlbmRpZgotICAgIH0KKyAgICBhdXRvKiBw
YWdlID0gZnJhbWUucGFnZSgpOworICAgIGJvb2wgaG92ZXJTdXBwb3J0ZWRCeUFueUF2YWlsYWJs
ZVBvaW50aW5nRGV2aWNlID0gcGFnZSAmJiBwYWdlLT5jaHJvbWUoKS5jbGllbnQoKS5ob3ZlclN1
cHBvcnRlZEJ5QW55QXZhaWxhYmxlUG9pbnRpbmdEZXZpY2UoKTsKKworICAgIGlmICghaXM8Q1NT
UHJpbWl0aXZlVmFsdWU+KHZhbHVlKSkKKyAgICAgICAgcmV0dXJuIGhvdmVyU3VwcG9ydGVkQnlB
bnlBdmFpbGFibGVQb2ludGluZ0RldmljZTsKIAogICAgIGF1dG8ga2V5d29yZCA9IGRvd25jYXN0
PENTU1ByaW1pdGl2ZVZhbHVlPigqdmFsdWUpLnZhbHVlSUQoKTsKLSNpZiBFTkFCTEUoVE9VQ0hf
RVZFTlRTKQotICAgIGlmIChzY3JlZW5IYXNUb3VjaERldmljZSgpKQotICAgICAgICByZXR1cm4g
a2V5d29yZCA9PSBDU1NWYWx1ZU5vbmU7Ci0jZW5kaWYKLSAgICByZXR1cm4ga2V5d29yZCA9PSBD
U1NWYWx1ZUhvdmVyOworICAgIHJldHVybiBob3ZlclN1cHBvcnRlZEJ5QW55QXZhaWxhYmxlUG9p
bnRpbmdEZXZpY2UgPyAoa2V5d29yZCA9PSBDU1NWYWx1ZUhvdmVyKSA6IChrZXl3b3JkID09IENT
U1ZhbHVlTm9uZSk7CiB9CiAKIHN0YXRpYyBib29sIHBvaW50ZXJFdmFsdWF0ZShDU1NWYWx1ZSog
dmFsdWUsIGNvbnN0IENTU1RvTGVuZ3RoQ29udmVyc2lvbkRhdGEmLCBGcmFtZSYgZnJhbWUsIE1l
ZGlhRmVhdHVyZVByZWZpeCkKQEAgLTc2NSwxNyArNzYxLDIyIEBAIHN0YXRpYyBib29sIHBvaW50
ZXJFdmFsdWF0ZShDU1NWYWx1ZSogdmFsdWUsIGNvbnN0IENTU1RvTGVuZ3RoQ29udmVyc2lvbkRh
dGEmLCBGCiAgICAgcmV0dXJuIGtleXdvcmQgPT0gQ1NTVmFsdWVGaW5lOwogfQogCi1zdGF0aWMg
Ym9vbCBhbnlQb2ludGVyRXZhbHVhdGUoQ1NTVmFsdWUqIHZhbHVlLCBjb25zdCBDU1NUb0xlbmd0
aENvbnZlcnNpb25EYXRhJiwgRnJhbWUmLCBNZWRpYUZlYXR1cmVQcmVmaXgpCitzdGF0aWMgYm9v
bCBhbnlQb2ludGVyRXZhbHVhdGUoQ1NTVmFsdWUqIHZhbHVlLCBjb25zdCBDU1NUb0xlbmd0aENv
bnZlcnNpb25EYXRhJiwgRnJhbWUmIGZyYW1lLCBNZWRpYUZlYXR1cmVQcmVmaXgpCiB7CisgICAg
YXV0byogcGFnZSA9IGZyYW1lLnBhZ2UoKTsKKyAgICBhdXRvIHBvaW50ZXJDaGFyYWN0ZXJpc3Rp
Y3NPZkFsbEF2YWlsYWJsZVBvaW50aW5nRGV2aWNlcyA9IHBhZ2UgPyBwYWdlLT5jaHJvbWUoKS5j
bGllbnQoKS5wb2ludGVyQ2hhcmFjdGVyaXN0aWNzT2ZBbGxBdmFpbGFibGVQb2ludGluZ0Rldmlj
ZXMoKSA6IE9wdGlvblNldDxQb2ludGVyQ2hhcmFjdGVyaXN0aWNzPigpOworCiAgICAgaWYgKCFp
czxDU1NQcmltaXRpdmVWYWx1ZT4odmFsdWUpKQotICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAg
ICAgcmV0dXJuICFwb2ludGVyQ2hhcmFjdGVyaXN0aWNzT2ZBbGxBdmFpbGFibGVQb2ludGluZ0Rl
dmljZXMuaXNFbXB0eSgpOwogCiAgICAgYXV0byBrZXl3b3JkID0gZG93bmNhc3Q8Q1NTUHJpbWl0
aXZlVmFsdWU+KCp2YWx1ZSkudmFsdWVJRCgpOwotI2lmIEVOQUJMRShUT1VDSF9FVkVOVFMpCi0g
ICAgaWYgKHNjcmVlbkhhc1RvdWNoRGV2aWNlKCkpCi0gICAgICAgIHJldHVybiBrZXl3b3JkID09
IENTU1ZhbHVlQ29hcnNlOwotI2VuZGlmCi0gICAgcmV0dXJuIGtleXdvcmQgPT0gQ1NTVmFsdWVG
aW5lOworICAgIGlmIChrZXl3b3JkID09IENTU1ZhbHVlRmluZSkKKyAgICAgICAgcmV0dXJuIHBv
aW50ZXJDaGFyYWN0ZXJpc3RpY3NPZkFsbEF2YWlsYWJsZVBvaW50aW5nRGV2aWNlcy5jb250YWlu
cyhQb2ludGVyQ2hhcmFjdGVyaXN0aWNzOjpGaW5lKTsKKyAgICBpZiAoa2V5d29yZCA9PSBDU1NW
YWx1ZUNvYXJzZSkKKyAgICAgICAgcmV0dXJuIHBvaW50ZXJDaGFyYWN0ZXJpc3RpY3NPZkFsbEF2
YWlsYWJsZVBvaW50aW5nRGV2aWNlcy5jb250YWlucyhQb2ludGVyQ2hhcmFjdGVyaXN0aWNzOjpD
b2Fyc2UpOworICAgIGlmIChrZXl3b3JkID09IENTU1ZhbHVlTm9uZSkKKyAgICAgICAgcmV0dXJu
IHBvaW50ZXJDaGFyYWN0ZXJpc3RpY3NPZkFsbEF2YWlsYWJsZVBvaW50aW5nRGV2aWNlcy5pc0Vt
cHR5KCk7CisgICAgcmV0dXJuIGZhbHNlOwogfQogCiBzdGF0aWMgYm9vbCBwcmVmZXJzRGFya0lu
dGVyZmFjZUV2YWx1YXRlKENTU1ZhbHVlKiB2YWx1ZSwgY29uc3QgQ1NTVG9MZW5ndGhDb252ZXJz
aW9uRGF0YSYsIEZyYW1lJiBmcmFtZSwgTWVkaWFGZWF0dXJlUHJlZml4KQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5oIGIvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL0VtcHR5Q2xpZW50cy5oCmluZGV4IDNlOWRlN2QyNjZhOWRlYTZlMWEwMzQ0NmE1OWVmN2Y0
MDA2MDk5NGUuLjM2M2ZlOGEyMDQ3MTBmMmQwZGQxOWQzZDRmNjAyOTNlNTgyMDY4NDAgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmgKQEAgLTEwMiw2ICsxMDIsOSBAQCBjbGFzcyBF
bXB0eUNocm9tZUNsaWVudCA6IHB1YmxpYyBDaHJvbWVDbGllbnQgewogCiAgICAgS2V5Ym9hcmRV
SU1vZGUga2V5Ym9hcmRVSU1vZGUoKSBmaW5hbCB7IHJldHVybiBLZXlib2FyZEFjY2Vzc0RlZmF1
bHQ7IH0KIAorICAgIGJvb2wgaG92ZXJTdXBwb3J0ZWRCeUFueUF2YWlsYWJsZVBvaW50aW5nRGV2
aWNlKCkgY29uc3QgZmluYWwgeyByZXR1cm4gZmFsc2U7IH0KKyAgICBPcHRpb25TZXQ8UG9pbnRl
ckNoYXJhY3RlcmlzdGljcz4gcG9pbnRlckNoYXJhY3RlcmlzdGljc09mQWxsQXZhaWxhYmxlUG9p
bnRpbmdEZXZpY2VzKCkgY29uc3QgZmluYWwgeyByZXR1cm4geyB9OyB9CisKICAgICB2b2lkIGlu
dmFsaWRhdGVSb290Vmlldyhjb25zdCBJbnRSZWN0JikgZmluYWwgeyB9CiAgICAgdm9pZCBpbnZh
bGlkYXRlQ29udGVudHNBbmRSb290Vmlldyhjb25zdCBJbnRSZWN0Jikgb3ZlcnJpZGUgeyB9CiAg
ICAgdm9pZCBpbnZhbGlkYXRlQ29udGVudHNGb3JTbG93U2Nyb2xsKGNvbnN0IEludFJlY3QmKSBm
aW5hbCB7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVudC5oCmluZGV4IDUxMTBkMTE4MGE3NzNk
ZWQ1ZTIzZDJmMDNjMGY3ZGQyOTQ4NDc2NjYuLjFkNzBmY2ZhNTU5MDY5MTU2OGM4ODY0MjA0ZTlk
MWExMmI3YTNjMWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaApAQCAtMzksNiArMzks
NyBAQAogI2luY2x1ZGUgIkltYWdlQnVmZmVyLmgiCiAjaW5jbHVkZSAiSW5wdXRNb2RlLmgiCiAj
aW5jbHVkZSAiTWVkaWFQcm9kdWNlci5oIgorI2luY2x1ZGUgIlBvaW50ZXJDaGFyYWN0ZXJpc3Rp
Y3MuaCIKICNpbmNsdWRlICJQb3B1cE1lbnUuaCIKICNpbmNsdWRlICJQb3B1cE1lbnVDbGllbnQu
aCIKICNpbmNsdWRlICJSZWdpc3RyYWJsZURvbWFpbi5oIgpAQCAtMTc4LDYgKzE3OSw5IEBAIHB1
YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgc2V0U3RhdHVzYmFyVGV4dChjb25zdCBTdHJpbmcmKSA9
IDA7CiAgICAgdmlydHVhbCBLZXlib2FyZFVJTW9kZSBrZXlib2FyZFVJTW9kZSgpID0gMDsKIAor
ICAgIHZpcnR1YWwgYm9vbCBob3ZlclN1cHBvcnRlZEJ5QW55QXZhaWxhYmxlUG9pbnRpbmdEZXZp
Y2UoKSBjb25zdCA9IDA7CisgICAgdmlydHVhbCBPcHRpb25TZXQ8UG9pbnRlckNoYXJhY3Rlcmlz
dGljcz4gcG9pbnRlckNoYXJhY3RlcmlzdGljc09mQWxsQXZhaWxhYmxlUG9pbnRpbmdEZXZpY2Vz
KCkgY29uc3QgPSAwOworCiAgICAgdmlydHVhbCBib29sIHN1cHBvcnRzSW1tZWRpYXRlSW52YWxp
ZGF0aW9uKCkgeyByZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0dWFsIHZvaWQgaW52YWxpZGF0ZVJv
b3RWaWV3KGNvbnN0IEludFJlY3QmKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGludmFsaWRhdGVD
b250ZW50c0FuZFJvb3RWaWV3KGNvbnN0IEludFJlY3QmKSA9IDA7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL1BvaW50ZXJDaGFyYWN0ZXJpc3RpY3MuaCBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvUG9pbnRlckNoYXJhY3RlcmlzdGljcy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjI0YWE0NmJmYzZlMjJm
YWEzYWY2MGE4Zjg4MThkMDVlY2ZlODE0OTEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL1BvaW50ZXJDaGFyYWN0ZXJpc3RpY3MuaApAQCAtMCwwICsxLDQ3IEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBB
UyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklC
VVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5F
U1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
CisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisK
K25hbWVzcGFjZSBXZWJDb3JlIHsKKworZW51bSBjbGFzcyBQb2ludGVyQ2hhcmFjdGVyaXN0aWNz
IDogdWludDhfdCB7CisgICAgQ29hcnNlID0gMSA8PCAwLAorICAgIEZpbmUgPSAxIDw8IDEsCit9
OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKK25hbWVzcGFjZSBXVEYgeworCit0ZW1wbGF0
ZTw+IHN0cnVjdCBFbnVtVHJhaXRzPFdlYkNvcmU6OlBvaW50ZXJDaGFyYWN0ZXJpc3RpY3M+IHsK
KyAgICB1c2luZyB2YWx1ZXMgPSBFbnVtVmFsdWVzPAorICAgICAgICBXZWJDb3JlOjpQb2ludGVy
Q2hhcmFjdGVyaXN0aWNzLAorICAgICAgICBXZWJDb3JlOjpQb2ludGVyQ2hhcmFjdGVyaXN0aWNz
OjpDb2Fyc2UsCisgICAgICAgIFdlYkNvcmU6OlBvaW50ZXJDaGFyYWN0ZXJpc3RpY3M6OkZpbmUK
KyAgICA+OworfTsKKworfSAvLyBuYW1lc3BhY2UgV1RGCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9QbGF0Zm9ybVNjcmVlbi5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
UGxhdGZvcm1TY3JlZW4uaAppbmRleCBiMjBmZTM4OWE5OGUxZTAxZTI1MzFiMjAwNjkxODZjYmVk
NmFlZTI2Li45MmNlNGRkNmVjMTgyMWEwZmM1MTM1ZjM4ZTIzM2E1Y2NkMDRkNzE5IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9ybVNjcmVlbi5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL1BsYXRmb3JtU2NyZWVuLmgKQEAgLTE1Miw4ICsxNTIsOCBAQCBX
RUJDT1JFX0VYUE9SVCBmbG9hdCBzY3JlZW5TY2FsZUZhY3RvcihVSVNjcmVlbiAqID0gbnVsbHB0
cik7CiAKICNpZiBFTkFCTEUoVE9VQ0hfRVZFTlRTKQogI2lmIFBMQVRGT1JNKEdUSykgfHwgUExB
VEZPUk0oV1BFKQotYm9vbCBzY3JlZW5IYXNUb3VjaERldmljZSgpOwotYm9vbCBzY3JlZW5Jc1Rv
dWNoUHJpbWFyeUlucHV0RGV2aWNlKCk7CitXRUJDT1JFX0VYUE9SVCBib29sIHNjcmVlbkhhc1Rv
dWNoRGV2aWNlKCk7CitXRUJDT1JFX0VYUE9SVCBib29sIHNjcmVlbklzVG91Y2hQcmltYXJ5SW5w
dXREZXZpY2UoKTsKICNlbHNlCiBjb25zdGV4cHIgYm9vbCBzY3JlZW5IYXNUb3VjaERldmljZSgp
IHsgcmV0dXJuIHRydWU7IH0KIGNvbnN0ZXhwciBib29sIHNjcmVlbklzVG91Y2hQcmltYXJ5SW5w
dXREZXZpY2UoKSB7IHJldHVybiB0cnVlOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0Nv
bmZpZ3VyYXRpb25zL1dlYktpdC54Y2NvbmZpZyBiL1NvdXJjZS9XZWJLaXQvQ29uZmlndXJhdGlv
bnMvV2ViS2l0LnhjY29uZmlnCmluZGV4IDVmNzVlY2JiMTQ5YzU1MWE0NTExYTkwNmZkN2Y0M2Mx
N2U5ODg5MjEuLmNlNzE4NTlkZGE5MDU0YWRmYzA0NTU4NDA3ZjE2NGUzN2UzNmZmN2IgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ29uZmlndXJhdGlvbnMvV2ViS2l0LnhjY29uZmlnCisrKyBi
L1NvdXJjZS9XZWJLaXQvQ29uZmlndXJhdGlvbnMvV2ViS2l0LnhjY29uZmlnCkBAIC02MCw2ICs2
MCwxMCBAQCBXS19BU1NFUlRJT05fU0VSVklDRVNfTERGTEFHU19hcHBsZXR2b3MgPSAtZnJhbWV3
b3JrIEFzc2VydGlvblNlcnZpY2VzOwogV0tfQVNTRVJUSU9OX1NFUlZJQ0VTX0xERkxBR1NfYXBw
bGV0dnNpbXVsYXRvciA9IC1mcmFtZXdvcmsgQXNzZXJ0aW9uU2VydmljZXM7CiBXS19BU1NFUlRJ
T05fU0VSVklDRVNfTERGTEFHU19tYWNjYXRhbHlzdCA9IC1mcmFtZXdvcmsgQXNzZXJ0aW9uU2Vy
dmljZXM7CiAKK1dLX0JBQ0tCT0FSRF9TRVJWSUNFU19MREZMQUdTID0gJChXS19CQUNLQk9BUkRf
U0VSVklDRVNfTERGTEFHU18kKFdLX1BMQVRGT1JNX05BTUUpKTsKK1dLX0JBQ0tCT0FSRF9TRVJW
SUNFU19MREZMQUdTX2lwaG9uZW9zID0gLWZyYW1ld29yayBCYWNrQm9hcmRTZXJ2aWNlczsKK1dL
X0JBQ0tCT0FSRF9TRVJWSUNFU19MREZMQUdTX2lwaG9uZXNpbXVsYXRvciA9IC1mcmFtZXdvcmsg
QmFja0JvYXJkU2VydmljZXM7CisKIFdLX1JVTk5JTkdCT0FSRF9TRVJWSUNFU19MREZMQUdTID0g
JChXS19SVU5OSU5HQk9BUkRfU0VSVklDRVNfTERGTEFHU18kKFdLX0NPQ09BX1RPVUNIKSk7CiBX
S19SVU5OSU5HQk9BUkRfU0VSVklDRVNfTERGTEFHU19jb2NvYXRvdWNoID0gLWZyYW1ld29yayBS
dW5uaW5nQm9hcmRTZXJ2aWNlczsKIApAQCAtMTIzLDcgKzEyNyw3IEBAIFdLX0FVVEhLSVRfTERG
TEFHU19JT1NfU0lOQ0VfMTMgPSAtZnJhbWV3b3JrIEF1dGhLaXQ7CiBXS19BVVRIS0lUX0xERkxB
R1NfbWFjb3N4ID0gJChXS19BVVRIS0lUX0xERkxBR1MkKFdLX01BQ09TXzEwMTUpKTsKIFdLX0FV
VEhLSVRfTERGTEFHU19NQUNPU19TSU5DRV8xMDE1ID0gLWZyYW1ld29yayBBdXRoS2l0OwogCi1G
UkFNRVdPUktfQU5EX0xJQlJBUllfTERGTEFHUyA9IC1sb2JqYyAtZnJhbWV3b3JrIENGTmV0d29y
ayAtZnJhbWV3b3JrIENvcmVBdWRpbyAtZnJhbWV3b3JrIENvcmVGb3VuZGF0aW9uIC1mcmFtZXdv
cmsgQ29yZUdyYXBoaWNzIC1mcmFtZXdvcmsgQ29yZVRleHQgLWZyYW1ld29yayBGb3VuZGF0aW9u
IC1mcmFtZXdvcmsgSW1hZ2VJTyAtZnJhbWV3b3JrIElPS2l0IC1mcmFtZXdvcmsgSU9TdXJmYWNl
IC1mcmFtZXdvcmsgV2ViS2l0TGVnYWN5IC1sbmV0d29yayAkKFdLX0FDQ0VTU0lCSUxJVFlfTERG
TEFHUykgJChXS19BUFBLSVRfTERGTEFHUykgJChXS19BU1NFUlRJT05fU0VSVklDRVNfTERGTEFH
UykgJChXS19SVU5OSU5HQk9BUkRfU0VSVklDRVNfTERGTEFHUykgJChXS19BVVRIS0lUX0xERkxB
R1MpICQoV0tfQ0FSQk9OX0xERkxBR1MpICQoV0tfQ09SRV9QUkVESUNUSU9OX0xERkxBR1MpICQo
V0tfQ09SRV9TRVJWSUNFU19MREZMQUdTKSAkKFdLX0dSQVBISUNTX1NFUlZJQ0VTX0xERkxBR1Mp
ICQoV0tfTElCU0FOREJPWF9MREZMQUdTKSAkKFdLX0xJQldFQlJUQ19MREZMQUdTKSAkKFdLX01P
QklMRV9DT1JFX1NFUlZJQ0VTX0xERkxBR1MpICQoV0tfTU9CSUxFX0dFU1RBTFRfTERGTEFHUykg
JChXS19QREZLSVRfTERGTEFHUykgJChXS19TQUZFX0JST1dTSU5HX0xERkxBR1MpICQoV0tfU0VD
VVJJVFlfSU5URVJGQUNFX0xERkxBR1MpICQoV0tfVUlLSVRfTERGTEFHUykgJChXS19VUkxfRk9S
TUFUVElOR19MREZMQUdTKSAkKFdLX1dFQklOU1BFQ1RPUlVJX0xERkxBR1MpOworRlJBTUVXT1JL
X0FORF9MSUJSQVJZX0xERkxBR1MgPSAtbG9iamMgLWZyYW1ld29yayBDRk5ldHdvcmsgLWZyYW1l
d29yayBDb3JlQXVkaW8gLWZyYW1ld29yayBDb3JlRm91bmRhdGlvbiAtZnJhbWV3b3JrIENvcmVH
cmFwaGljcyAtZnJhbWV3b3JrIENvcmVUZXh0IC1mcmFtZXdvcmsgRm91bmRhdGlvbiAtZnJhbWV3
b3JrIEltYWdlSU8gLWZyYW1ld29yayBJT0tpdCAtZnJhbWV3b3JrIElPU3VyZmFjZSAtZnJhbWV3
b3JrIFdlYktpdExlZ2FjeSAtbG5ldHdvcmsgJChXS19BQ0NFU1NJQklMSVRZX0xERkxBR1MpICQo
V0tfQVBQS0lUX0xERkxBR1MpICQoV0tfQVNTRVJUSU9OX1NFUlZJQ0VTX0xERkxBR1MpICQoV0tf
QkFDS0JPQVJEX1NFUlZJQ0VTX0xERkxBR1MpICQoV0tfUlVOTklOR0JPQVJEX1NFUlZJQ0VTX0xE
RkxBR1MpICQoV0tfQVVUSEtJVF9MREZMQUdTKSAkKFdLX0NBUkJPTl9MREZMQUdTKSAkKFdLX0NP
UkVfUFJFRElDVElPTl9MREZMQUdTKSAkKFdLX0NPUkVfU0VSVklDRVNfTERGTEFHUykgJChXS19H
UkFQSElDU19TRVJWSUNFU19MREZMQUdTKSAkKFdLX0xJQlNBTkRCT1hfTERGTEFHUykgJChXS19M
SUJXRUJSVENfTERGTEFHUykgJChXS19NT0JJTEVfQ09SRV9TRVJWSUNFU19MREZMQUdTKSAkKFdL
X01PQklMRV9HRVNUQUxUX0xERkxBR1MpICQoV0tfUERGS0lUX0xERkxBR1MpICQoV0tfU0FGRV9C
Uk9XU0lOR19MREZMQUdTKSAkKFdLX1NFQ1VSSVRZX0lOVEVSRkFDRV9MREZMQUdTKSAkKFdLX1VJ
S0lUX0xERkxBR1MpICQoV0tfVVJMX0ZPUk1BVFRJTkdfTERGTEFHUykgJChXS19XRUJJTlNQRUNU
T1JVSV9MREZMQUdTKTsKIAogLy8gUHJldmVudCBDKysgc3RhbmRhcmQgbGlicmFyeSBiYXNpY19z
dHJpbmdzdHJlYW0sIG9wZXJhdG9yIG5ldywgZGVsZXRlIGFuZCB0aGVpciByZWxhdGVkIGV4Y2Vw
dGlvbiB0eXBlcyBmcm9tIGJlaW5nIGV4cG9ydGVkIGFzIHdlYWsgc3ltYm9scy4KIFVORVhQT1JU
RURfU1lNQk9MX0xERkxBR1MgPSAtV2wsLXVuZXhwb3J0ZWRfc3ltYm9sIC1XbCxfX1pUSVN0OWJh
ZF9hbGxvYyAtV2wsLXVuZXhwb3J0ZWRfc3ltYm9sIC1XbCxfX1pUSVN0OWV4Y2VwdGlvbiAtV2ws
LXVuZXhwb3J0ZWRfc3ltYm9sIC1XbCxfX1pUU1N0OWJhZF9hbGxvYyAtV2wsLXVuZXhwb3J0ZWRf
c3ltYm9sIC1XbCxfX1pUU1N0OWV4Y2VwdGlvbiAtV2wsLXVuZXhwb3J0ZWRfc3ltYm9sIC1XbCxf
X1pkbFB2U18gLVdsLC11bmV4cG9ydGVkX3N5bWJvbCAtV2wsX19abndtUHYgLVdsLC11bmV4cG9y
dGVkX3N5bWJvbCAtV2wsX19abndtIC1XbCwtdW5leHBvcnRlZF9zeW1ib2wgLVdsLF9fWk5TdDNf
XzE4ZnVuY3Rpb25JRnZON1dlYkNvcmUxMlBvbGljeUFjdGlvbkVFRUMyRU9TNF8gLVdsLC11bmV4
cG9ydGVkX3N5bWJvbCAtV2wsX19aTlN0M19fMThmdW5jdGlvbklGdk43V2ViQ29yZTEyUG9saWN5
QWN0aW9uRUVFQzFFT1M0XyAtV2wsLXVuZXhwb3J0ZWRfc3ltYm9sIC1XbCxfX1pOU3QzX18xOGZ1
bmN0aW9uSUZ2TjdXZWJDb3JlMTJQb2xpY3lBY3Rpb25FRUVhU0VEbiAtV2wsLXVuZXhwb3J0ZWRf
c3ltYm9sIC1XbCxfX1pOS1N0M19fMThmdW5jdGlvbklGdk43V2ViQ29yZTEyUG9saWN5QWN0aW9u
RUVFY2xFUzJfIC1XbCwtdW5leHBvcnRlZF9zeW1ib2wgLVdsLF9fWk5TdDNfXzE4ZnVuY3Rpb25J
RnZON1dlYkNvcmUxMlBvbGljeUFjdGlvbkVFRTRzd2FwRVJTNF8gLVdsLC11bmV4cG9ydGVkX3N5
bWJvbCAtV2wsX19aTlN0M19fMThmdW5jdGlvbklGdk43V2ViQ29yZTEyUG9saWN5QWN0aW9uRUVF
QzFFUktTNF8gLVdsLC11bmV4cG9ydGVkX3N5bWJvbCAtV2wsX19aTlN0M19fMThmdW5jdGlvbklG
dk43V2ViQ29yZTEyUG9saWN5QWN0aW9uRUVFQzJFUktTNF8gLVdsLC11bmV4cG9ydGVkX3N5bWJv
bCAtV2wsX19aTlN0M19fMThmdW5jdGlvbklGdk43V2ViQ29yZTEyUG9saWN5QWN0aW9uRUVFRDFF
diAtV2wsLXVuZXhwb3J0ZWRfc3ltYm9sIC1XbCxfX1pOU3QzX18xOGZ1bmN0aW9uSUZ2TjdXZWJD
b3JlMTJQb2xpY3lBY3Rpb25FRUVEMkV2IC1XbCwtdW5leHBvcnRlZF9zeW1ib2wgLVdsLF9fWk5T
dDNfXzE4ZnVuY3Rpb25JRnZON1dlYkNvcmUxMlBvbGljeUFjdGlvbkVFRWFTRVJLUzRfIC1XbCwt
dW5leHBvcnRlZF9zeW1ib2wgLVdsLF9fWlRWTlN0M19fMTE3YmFkX2Z1bmN0aW9uX2NhbGxFIC1X
bCwtdW5leHBvcnRlZF9zeW1ib2wgLVdsLF9fWlRDTlN0M19fMTE4YmFzaWNfc3RyaW5nc3RyZWFt
SWNOU18xMWNoYXJfdHJhaXRzSWNFRU5TXzlhbGxvY2F0b3JJY0VFRUUwX05TXzEzYmFzaWNfaXN0
cmVhbUljUzJfRUUgLVdsLC11bmV4cG9ydGVkX3N5bWJvbCAtV2wsX19aVENOU3QzX18xMThiYXNp
Y19zdHJpbmdzdHJlYW1JY05TXzExY2hhcl90cmFpdHNJY0VFTlNfOWFsbG9jYXRvckljRUVFRTBf
TlNfMTRiYXNpY19pb3N0cmVhbUljUzJfRUUgLVdsLC11bmV4cG9ydGVkX3N5bWJvbCAtV2wsX19a
VENOU3QzX18xMThiYXNpY19zdHJpbmdzdHJlYW1JY05TXzExY2hhcl90cmFpdHNJY0VFTlNfOWFs
bG9jYXRvckljRUVFRTE2X05TXzEzYmFzaWNfb3N0cmVhbUljUzJfRUUgLVdsLC11bmV4cG9ydGVk
X3N5bWJvbCAtV2wsX19aVFROU3QzX18xMThiYXNpY19zdHJpbmdzdHJlYW1JY05TXzExY2hhcl90
cmFpdHNJY0VFTlNfOWFsbG9jYXRvckljRUVFRSAtV2wsLXVuZXhwb3J0ZWRfc3ltYm9sIC1XbCxf
X1pUVk5TdDNfXzExNWJhc2ljX3N0cmluZ2J1ZkljTlNfMTFjaGFyX3RyYWl0c0ljRUVOU185YWxs
b2NhdG9ySWNFRUVFIC1XbCwtdW5leHBvcnRlZF9zeW1ib2wgLVdsLF9fWlRWTlN0M19fMTE4YmFz
aWNfc3RyaW5nc3RyZWFtSWNOU18xMWNoYXJfdHJhaXRzSWNFRU5TXzlhbGxvY2F0b3JJY0VFRUUg
LVdsLC11bmV4cG9ydGVkX3N5bWJvbCAtV2wsX19aVENOU3QzX18xMThiYXNpY19zdHJpbmdzdHJl
YW1JY05TXzExY2hhcl90cmFpdHNJY0VFTlNfOWFsbG9jYXRvckljRUVFRThfTlNfMTNiYXNpY19v
c3RyZWFtSWNTMl9FRTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vc3BpL2lv
cy9CYWNrQm9hcmRTZXJ2aWNlc1NQSS5oIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9zcGkvaW9z
L0JhY2tCb2FyZFNlcnZpY2VzU1BJLmgKaW5kZXggNmQ4ZDg5NDNlNGNjM2NhNzk5ZjM3MjIxNDQx
MzY5MjQwOWQ3OTYzNy4uMDkwMTRkNDQxZTFhZDliMGY0ZjI3MDM3YmRjMTBjMjMzZDQ1ZWMxYSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9zcGkvaW9zL0JhY2tCb2FyZFNlcnZp
Y2VzU1BJLmgKKysrIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9zcGkvaW9zL0JhY2tCb2FyZFNl
cnZpY2VzU1BJLmgKQEAgLTI3LDExICsyNywyNyBAQAogCiAjaW1wb3J0IDxCYWNrQm9hcmRTZXJ2
aWNlcy9CS1NBbmltYXRpb25GZW5jZS5oPgogI2ltcG9ydCA8QmFja0JvYXJkU2VydmljZXMvQktT
QW5pbWF0aW9uRmVuY2VfUHJpdmF0ZS5oPgorI2ltcG9ydCA8QmFja0JvYXJkU2VydmljZXMvQktT
TW91c2VQb2ludGVyU2VydmljZS5oPgogCiAjZWxzZQogCisjaW1wb3J0ICJCYXNlQm9hcmRTUEku
aCIKKwogQGludGVyZmFjZSBCS1NBbmltYXRpb25GZW5jZUhhbmRsZSA6IE5TT2JqZWN0CiAtICht
YWNoX3BvcnRfdClDQVBvcnQ7CiBAZW5kCiAKK0BjbGFzcyBCS1NNb3VzZVBvaW50ZXJEZXZpY2U7
CisKK0Bwcm90b2NvbCBCS1NNb3VzZVBvaW50ZXJEZXZpY2VPYnNlcnZlciA8TlNPYmplY3Q+CitA
b3B0aW9uYWwKKy0gKHZvaWQpbW91c2VQb2ludGVyRGV2aWNlc0RpZENvbm5lY3Q6KE5TU2V0PEJL
U01vdXNlUG9pbnRlckRldmljZSAqPiAqKW1vdXNlUG9pbnRlckRldmljZXM7CistICh2b2lkKW1v
dXNlUG9pbnRlckRldmljZXNEaWREaXNjb25uZWN0OihOU1NldDxCS1NNb3VzZVBvaW50ZXJEZXZp
Y2UgKj4gKiltb3VzZVBvaW50ZXJEZXZpY2VzOworQGVuZAorCitAaW50ZXJmYWNlIEJLU01vdXNl
UG9pbnRlclNlcnZpY2UgOiBOU09iamVjdAorKyAoQktTTW91c2VQb2ludGVyU2VydmljZSAqKXNo
YXJlZEluc3RhbmNlOworLSAoaWQ8QlNJbnZhbGlkYXRhYmxlPilhZGRQb2ludGVyRGV2aWNlT2Jz
ZXJ2ZXI6KGlkPEJLU01vdXNlUG9pbnRlckRldmljZU9ic2VydmVyPilvYnNlcnZlcjsKK0BlbmQK
KwogI2VuZGlmIC8vIFVTRShBUFBMRV9JTlRFUk5BTF9TREspCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1BsYXRmb3JtL3NwaS9pb3MvQmFzZUJvYXJkU1BJLmggYi9Tb3VyY2UvV2ViS2l0L1Bs
YXRmb3JtL3NwaS9pb3MvQmFzZUJvYXJkU1BJLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYWIwNDE4Njk1YjkwZmQ4
MzFiOGQ2MWFkODE4OWEwYzM5NmNkZGI0MAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJL
aXQvUGxhdGZvcm0vc3BpL2lvcy9CYXNlQm9hcmRTUEkuaApAQCAtMCwwICsxLDM2IEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI2lmIFVTRShBUFBMRV9JTlRFUk5BTF9TREspCisKKyNpbXBvcnQgPEJhc2VCb2Fy
ZC9CU0ludmFsaWRhdGFibGUuaD4KKworI2Vsc2UKKworQHByb3RvY29sIEJTSW52YWxpZGF0YWJs
ZSA8TlNPYmplY3Q+CistICh2b2lkKWludmFsaWRhdGU7CitAZW5kCisKKyNlbmRpZiAvLyBVU0Uo
QVBQTEVfSU5URVJOQUxfU0RLKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2Vi
UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQ
cm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcAppbmRleCA3MTA4YjY1MWEwY2E5NGZjZmMyMjM3
NTIzMTNmNTFiYjEwOTMxN2Y1Li42YjI4M2VmMjQ1OGQ4MzY1OTM0NGJlOWQ1NDU5MGNjMmUxNzZl
MjA0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25Q
YXJhbWV0ZXJzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcm9jZXNzQ3JlYXRp
b25QYXJhbWV0ZXJzLmNwcApAQCAtODUsNiArODUsOSBAQCB2b2lkIFdlYlByb2Nlc3NDcmVhdGlv
blBhcmFtZXRlcnM6OmVuY29kZShJUEM6OkVuY29kZXImIGVuY29kZXIpIGNvbnN0CiAjZW5kaWYK
ICAgICBlbmNvZGVyIDw8IHRleHRDaGVja2VyU3RhdGU7CiAgICAgZW5jb2RlciA8PCBmdWxsS2V5
Ym9hcmRBY2Nlc3NFbmFibGVkOworI2lmIEhBVkUoVUlLSVRfV0lUSF9NT1VTRV9TVVBQT1JUKSAm
JiBQTEFURk9STShJT1MpCisgICAgZW5jb2RlciA8PCBoYXNNb3VzZURldmljZTsKKyNlbmRpZgog
ICAgIGVuY29kZXIgPDwgZGVmYXVsdFJlcXVlc3RUaW1lb3V0SW50ZXJ2YWw7CiAgICAgZW5jb2Rl
ciA8PCBiYWNrRm9yd2FyZENhY2hlQ2FwYWNpdHk7CiAjaWYgUExBVEZPUk0oQ09DT0EpCkBAIC0y
OTQsNiArMjk3LDEwIEBAIGJvb2wgV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyczo6ZGVjb2Rl
KElQQzo6RGVjb2RlciYgZGVjb2RlciwgV2ViUHJvY2Vzc0NyZWF0CiAgICAgICAgIHJldHVybiBm
YWxzZTsKICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHBhcmFtZXRlcnMuZnVsbEtleWJvYXJkQWNj
ZXNzRW5hYmxlZCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKKyNpZiBIQVZFKFVJS0lUX1dJVEhf
TU9VU0VfU1VQUE9SVCkgJiYgUExBVEZPUk0oSU9TKQorICAgIGlmICghZGVjb2Rlci5kZWNvZGUo
cGFyYW1ldGVycy5oYXNNb3VzZURldmljZSkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyNlbmRp
ZgogICAgIGlmICghZGVjb2Rlci5kZWNvZGUocGFyYW1ldGVycy5kZWZhdWx0UmVxdWVzdFRpbWVv
dXRJbnRlcnZhbCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICBpZiAoIWRlY29kZXIuZGVj
b2RlKHBhcmFtZXRlcnMuYmFja0ZvcndhcmRDYWNoZUNhcGFjaXR5KSkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaCBiL1NvdXJj
ZS9XZWJLaXQvU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaAppbmRleCBjYTIz
YzY3NjM4YTdmZTQxNTFiYzM2YTViMmZmMmRkYWRlNWY5Zjg1Li4zZDg2YTc0YjFkM2VlNTEwMTUz
NGFkMzkyNTYyMzIyMWVmYzNlY2FhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9X
ZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQv
V2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oCkBAIC0xMTcsNiArMTE3LDkgQEAgc3RydWN0
IFdlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMgewogICAgIGJvb2wgc2hvdWxkU3VwcHJlc3NN
ZW1vcnlQcmVzc3VyZUhhbmRsZXIgeyBmYWxzZSB9OwogICAgIGJvb2wgc2hvdWxkVXNlRm9udFNt
b290aGluZyB7IHRydWUgfTsKICAgICBib29sIGZ1bGxLZXlib2FyZEFjY2Vzc0VuYWJsZWQgeyBm
YWxzZSB9OworI2lmIEhBVkUoVUlLSVRfV0lUSF9NT1VTRV9TVVBQT1JUKSAmJiBQTEFURk9STShJ
T1MpCisgICAgYm9vbCBoYXNNb3VzZURldmljZSB7IGZhbHNlIH07CisjZW5kaWYKICAgICBib29s
IG1lbW9yeUNhY2hlRGlzYWJsZWQgeyBmYWxzZSB9OwogICAgIGJvb2wgYXR0clN0eWxlRW5hYmxl
ZCB7IGZhbHNlIH07CiAgICAgYm9vbCB1c2VHUFVQcm9jZXNzRm9yTWVkaWFFbmFibGVkIHsgZmFs
c2UgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU291cmNlc0NvY29hLnR4dCBiL1NvdXJj
ZS9XZWJLaXQvU291cmNlc0NvY29hLnR4dAppbmRleCA2OGM0NGI0OTM1NmQ1MzI5YTg2NWVhODI2
ZjI3YjZlM2EwMzA2YmVmLi5lODZkMTVjNmJiZTg4OTAwMGRmYjU5Zjc3YjdhZTBmMDE5M2I5ZjNi
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50eHQKKysrIGIvU291cmNl
L1dlYktpdC9Tb3VyY2VzQ29jb2EudHh0CkBAIC00NjAsNiArNDYwLDcgQEAgVUlQcm9jZXNzL2lv
cy9XS0dlb2xvY2F0aW9uUHJvdmlkZXJJT1MubW0KIFVJUHJvY2Vzcy9pb3MvV0tHZW9sb2NhdGlv
blByb3ZpZGVySU9TT2JqQ1NlY3VyaXR5T3JpZ2luLm1tCiBVSVByb2Nlc3MvaW9zL1dLSGlnaGxp
Z2h0TG9uZ1ByZXNzR2VzdHVyZVJlY29nbml6ZXIubW0KIFVJUHJvY2Vzcy9pb3MvV0tLZXlib2Fy
ZFNjcm9sbGluZ0FuaW1hdG9yLm1tCitVSVByb2Nlc3MvaW9zL1dLTW91c2VEZXZpY2VPYnNlcnZl
ci5tbQogVUlQcm9jZXNzL2lvcy9XS01vdXNlR2VzdHVyZVJlY29nbml6ZXIubW0KIFVJUHJvY2Vz
cy9pb3MvV0tQYXNzd29yZFZpZXcubW0KIFVJUHJvY2Vzcy9pb3MvV0tQREZQYWdlTnVtYmVySW5k
aWNhdG9yLm1tCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJQ
cm9jZXNzUG9vbENvY29hLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViUHJv
Y2Vzc1Bvb2xDb2NvYS5tbQppbmRleCAwOWJmZmU0YzlkY2ZkYzU5ZjAxOTAwNzM0MmZmZWNiYjdi
YjY2NzU2Li5jZjc1NTIyNmVjYjc0MDhjZjAzZDAyZmVkYzI4ZThlMjJhYmFhODdiIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJQcm9jZXNzUG9vbENvY29hLm1t
CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlByb2Nlc3NQb29sQ29jb2Eu
bW0KQEAgLTQwLDYgKzQwLDcgQEAKICNpbXBvcnQgIlRleHRDaGVja2VyLmgiCiAjaW1wb3J0ICJV
c2VySW50ZXJmYWNlSWRpb20uaCIKICNpbXBvcnQgIldLQnJvd3NpbmdDb250ZXh0Q29udHJvbGxl
ckludGVybmFsLmgiCisjaW1wb3J0ICJXS01vdXNlRGV2aWNlT2JzZXJ2ZXIuaCIKICNpbXBvcnQg
IldlYkJhY2tGb3J3YXJkQ2FjaGUuaCIKICNpbXBvcnQgIldlYk1lbW9yeVByZXNzdXJlSGFuZGxl
ci5oIgogI2ltcG9ydCAiV2ViUGFnZUdyb3VwLmgiCkBAIC01MDUsNiArNTA2LDEwIEBAIHZvaWQg
V2ViUHJvY2Vzc1Bvb2w6OnBsYXRmb3JtSW5pdGlhbGl6ZVdlYlByb2Nlc3MoY29uc3QgV2ViUHJv
Y2Vzc1Byb3h5JiBwcm9jZXNzCiAjaWYgSEFWRShDQVRBTFlTVF9VU0VSX0lOVEVSRkFDRV9JRElP
TV9BTkRfU0NBTEVfRkFDVE9SKQogICAgIHBhcmFtZXRlcnMub3ZlcnJpZGVVc2VySW50ZXJmYWNl
SWRpb21BbmRTY2FsZSA9IHsgX1VJQXBwbGljYXRpb25DYXRhbHlzdFVzZXJJbnRlcmZhY2VJZGlv
bSgpLCBfVUlBcHBsaWNhdGlvbkNhdGFseXN0U2NhbGVGYWN0b3IoKSB9OwogI2VuZGlmCisKKyNp
ZiBIQVZFKFVJS0lUX1dJVEhfTU9VU0VfU1VQUE9SVCkgJiYgUExBVEZPUk0oSU9TKQorICAgIHBh
cmFtZXRlcnMuaGFzTW91c2VEZXZpY2UgPSBbW1dLTW91c2VEZXZpY2VPYnNlcnZlciBzaGFyZWRJ
bnN0YW5jZV0gaGFzTW91c2VEZXZpY2VdOworI2VuZGlmCiB9CiAKIHZvaWQgV2ViUHJvY2Vzc1Bv
b2w6OnBsYXRmb3JtSW5pdGlhbGl6ZU5ldHdvcmtQcm9jZXNzKE5ldHdvcmtQcm9jZXNzQ3JlYXRp
b25QYXJhbWV0ZXJzJiBwYXJhbWV0ZXJzKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBy
b2Nlc3NQcm94eS5jcHAKaW5kZXggNWFjZDRiMzBhZTNjYzIxNWIxOTRhZDliYmZjNjYyZmZjNWYy
NGNkNi4uYTE4OTgxMjM4NWZhZWIyM2VjMzg2NmEzNTgxYzY3MjBjNzUzOTVkZCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwCkBAIC0xMDgsNyArMTA4LDcg
QEAgc3RhdGljIGJvb2wgaXNNYWluVGhyZWFkT3JDaGVja0Rpc2FibGVkKCkKICNlbmRpZgogfQog
Ci1zdGF0aWMgSGFzaE1hcDxQcm9jZXNzSWRlbnRpZmllciwgV2ViUHJvY2Vzc1Byb3h5Kj4mIGFs
bFByb2Nlc3NlcygpCitIYXNoTWFwPFByb2Nlc3NJZGVudGlmaWVyLCBXZWJQcm9jZXNzUHJveHkq
PiYgV2ViUHJvY2Vzc1Byb3h5OjphbGxQcm9jZXNzZXMoKQogewogICAgIEFTU0VSVChpc01haW5U
aHJlYWRPckNoZWNrRGlzYWJsZWQoKSk7CiAgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEhhc2hN
YXA8UHJvY2Vzc0lkZW50aWZpZXIsIFdlYlByb2Nlc3NQcm94eSo+PiBtYXA7CkBAIC0yMDksOCAr
MjA5LDE2IEBAIFdlYlByb2Nlc3NQcm94eTo6V2ViUHJvY2Vzc1Byb3h5KFdlYlByb2Nlc3NQb29s
JiBwcm9jZXNzUG9vbCwgV2Vic2l0ZURhdGFTdG9yZSoKICAgICBBU1NFUlRfVU5VU0VEKHJlc3Vs
dCwgcmVzdWx0LmlzTmV3RW50cnkpOwogCiAgICAgV2ViUGFzdGVib2FyZFByb3h5OjpzaW5nbGV0
b24oKS5hZGRXZWJQcm9jZXNzUHJveHkoKnRoaXMpOworCisgICAgcGxhdGZvcm1Jbml0aWFsaXpl
KCk7CiB9CiAKKyNpZiAhUExBVEZPUk0oSU9TKQordm9pZCBXZWJQcm9jZXNzUHJveHk6OnBsYXRm
b3JtSW5pdGlhbGl6ZSgpCit7Cit9CisjZW5kaWYKKwogV2ViUHJvY2Vzc1Byb3h5Ojp+V2ViUHJv
Y2Vzc1Byb3h5KCkKIHsKICAgICBSRUxFQVNFX0FTU0VSVChpc01haW5UaHJlYWRPckNoZWNrRGlz
YWJsZWQoKSk7CkBAIC0yMzksOCArMjQ3LDE2IEBAIFdlYlByb2Nlc3NQcm94eTo6fldlYlByb2Nl
c3NQcm94eSgpCiAjaWYgUExBVEZPUk0oTUFDKQogICAgIEhpZ2hQZXJmb3JtYW5jZUdQVU1hbmFn
ZXI6OnNpbmdsZXRvbigpLnJlbW92ZVByb2Nlc3NSZXF1aXJpbmdIaWdoUGVyZm9ybWFuY2UodGhp
cyk7CiAjZW5kaWYKKworICAgIHBsYXRmb3JtRGVzdHJveSgpOwogfQogCisjaWYgIVBMQVRGT1JN
KElPUykKK3ZvaWQgV2ViUHJvY2Vzc1Byb3h5OjpwbGF0Zm9ybURlc3Ryb3koKQoreworfQorI2Vu
ZGlmCisKIHZvaWQgV2ViUHJvY2Vzc1Byb3h5OjpzZXRJc0luUHJvY2Vzc0NhY2hlKGJvb2wgdmFs
dWUpCiB7CiAgICAgaWYgKHZhbHVlKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJQcm9jZXNzUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nl
c3NQcm94eS5oCmluZGV4IGUwZThkYzBhYzcwOGIxMjQ4YjFjYzgwYWRjYjE5ZDE4NDEyMzljNzMu
LjQ0MzlmMjA3MzJkZGYxYTEzYmNlODM0NTNjMDkyN2UyM2FjOWJiOGUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oCkBAIC0yMTEsNiArMjExLDEwIEBAIHB1Ymxp
YzoKIAogICAgIHN0YXRpYyBib29sIGZ1bGxLZXlib2FyZEFjY2Vzc0VuYWJsZWQoKTsKIAorI2lm
IEhBVkUoVUlLSVRfV0lUSF9NT1VTRV9TVVBQT1JUKSAmJiBQTEFURk9STShJT1MpCisgICAgc3Rh
dGljIHZvaWQgbm90aWZ5SGFzTW91c2VEZXZpY2VDaGFuZ2VkKCk7CisjZW5kaWYKKwogICAgIHZv
aWQgZmV0Y2hXZWJzaXRlRGF0YShQQUw6OlNlc3Npb25JRCwgT3B0aW9uU2V0PFdlYnNpdGVEYXRh
VHlwZT4sIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2Vic2l0ZURhdGEpPiYmKTsKICAgICB2b2lk
IGRlbGV0ZVdlYnNpdGVEYXRhKFBBTDo6U2Vzc2lvbklELCBPcHRpb25TZXQ8V2Vic2l0ZURhdGFU
eXBlPiwgV2FsbFRpbWUgbW9kaWZpZWRTaW5jZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYm
KTsKICAgICB2b2lkIGRlbGV0ZVdlYnNpdGVEYXRhRm9yT3JpZ2lucyhQQUw6OlNlc3Npb25JRCwg
T3B0aW9uU2V0PFdlYnNpdGVEYXRhVHlwZT4sIGNvbnN0IFZlY3RvcjxXZWJDb3JlOjpTZWN1cml0
eU9yaWdpbkRhdGE+JiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKQEAgLTQxMCw2ICs0
MTQsMTEgQEAgcHJvdGVjdGVkOgogICAgIHZvaWQgdmFsaWRhdGVGcmVlemVyU3RhdHVzKCk7CiAK
IHByaXZhdGU6CisgICAgc3RhdGljIEhhc2hNYXA8V2ViQ29yZTo6UHJvY2Vzc0lkZW50aWZpZXIs
IFdlYlByb2Nlc3NQcm94eSo+JiBhbGxQcm9jZXNzZXMoKTsKKworICAgIHZvaWQgcGxhdGZvcm1J
bml0aWFsaXplKCk7CisgICAgdm9pZCBwbGF0Zm9ybURlc3Ryb3koKTsKKwogICAgIC8vIElQQyBt
ZXNzYWdlIGhhbmRsZXJzLgogICAgIHZvaWQgdXBkYXRlQmFja0ZvcndhcmRJdGVtKGNvbnN0IEJh
Y2tGb3J3YXJkTGlzdEl0ZW1TdGF0ZSYpOwogICAgIHZvaWQgZGlkRGVzdHJveUZyYW1lKFdlYkNv
cmU6OkZyYW1lSWRlbnRpZmllcik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9pb3MvV0tNb3VzZURldmljZU9ic2VydmVyLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9p
b3MvV0tNb3VzZURldmljZU9ic2VydmVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTA3MDQxNjQwYjJkZjRmZmY2
OGQxNTdiZmQ0NDhjNjk4YTcxMTNiOAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL2lvcy9XS01vdXNlRGV2aWNlT2JzZXJ2ZXIuaApAQCAtMCwwICsxLDQ3IEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworI2lmIEhBVkUoVUlLSVRfV0lUSF9NT1VTRV9TVVBQT1JUKSAmJiBQTEFURk9S
TShJT1MpCisKKyNpbXBvcnQgIkJhY2tCb2FyZFNlcnZpY2VzU1BJLmgiCisKK25hbWVzcGFjZSBX
ZWJLaXQgeworY2xhc3MgV2ViUHJvY2Vzc1Byb3h5OworfQorCitAaW50ZXJmYWNlIFdLTW91c2VE
ZXZpY2VPYnNlcnZlciA6IE5TT2JqZWN0PEJLU01vdXNlUG9pbnRlckRldmljZU9ic2VydmVyPgor
CisrIChXS01vdXNlRGV2aWNlT2JzZXJ2ZXIgKilzaGFyZWRJbnN0YW5jZTsKKworLSAodm9pZClz
dGFydDsKKy0gKHZvaWQpc3RvcDsKKworQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBC
T09MIGhhc01vdXNlRGV2aWNlOworCistICh2b2lkKV9zZXRIYXNNb3VzZURldmljZUZvclRlc3Rp
bmc6KEJPT0wpaGFzTW91c2VEZXZpY2U7CisKK0BlbmQKKworI2VuZGlmIC8vIEhBVkUoVUlLSVRf
V0lUSF9NT1VTRV9TVVBQT1JUKSAmJiBQTEFURk9STShJT1MpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tNb3VzZURldmljZU9ic2VydmVyLm1tIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvaW9zL1dLTW91c2VEZXZpY2VPYnNlcnZlci5tbQpuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41
YTA0MjQxODllZjczNmYyYjc5ZThlZDgxYTM3NjE3OTRiZjI0NzNiCi0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLTW91c2VEZXZpY2VPYnNlcnZlci5tbQpA
QCAtMCwwICsxLDk1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2ltcG9ydCAiY29uZmlnLmgiCisjaW1wb3J0
ICJXS01vdXNlRGV2aWNlT2JzZXJ2ZXIuaCIKKworI2lmIEhBVkUoVUlLSVRfV0lUSF9NT1VTRV9T
VVBQT1JUKSAmJiBQTEFURk9STShJT1MpCisKKyNpbXBvcnQgIldlYlByb2Nlc3NQcm94eS5oIgor
CitAaW1wbGVtZW50YXRpb24gV0tNb3VzZURldmljZU9ic2VydmVyIHsKKyAgICBCT09MIF9oYXNN
b3VzZURldmljZTsKKyAgICBpZDxCU0ludmFsaWRhdGFibGU+IF90b2tlbjsKK30KKworKyAoV0tN
b3VzZURldmljZU9ic2VydmVyICopc2hhcmVkSW5zdGFuY2UgeworICAgIHN0YXRpYyBXS01vdXNl
RGV2aWNlT2JzZXJ2ZXIgKmluc3RhbmNlOworICAgIGlmICghaW5zdGFuY2UpCisgICAgICAgIGlu
c3RhbmNlID0gW1tXS01vdXNlRGV2aWNlT2JzZXJ2ZXIgYWxsb2NdIGluaXRdOworICAgIHJldHVy
biBpbnN0YW5jZTsKK30KKworLSAodm9pZClkZWFsbG9jCit7CisgICAgW3NlbGYgc3RvcF07CisK
KyAgICBbc3VwZXIgZGVhbGxvY107Cit9CisKKyNwcmFnbWEgbWFyayAtIEJLU01vdXNlUG9pbnRl
ckRldmljZU9ic2VydmVyIHN0YXRlCisKKy0gKHZvaWQpc3RhcnQKK3sKKyAgICBpZiAoX3Rva2Vu
KQorICAgICAgICByZXR1cm47CisKKyAgICBfdG9rZW4gPSBbW0JLU01vdXNlUG9pbnRlclNlcnZp
Y2Ugc2hhcmVkSW5zdGFuY2VdIGFkZFBvaW50ZXJEZXZpY2VPYnNlcnZlcjpzZWxmXTsKK30KKwor
LSAodm9pZClzdG9wCit7CisgICAgaWYgKCFfdG9rZW4pCisgICAgICAgIHJldHVybjsKKworICAg
IFtfdG9rZW4gaW52YWxpZGF0ZV07CisgICAgX3Rva2VuID0gbmlsOworfQorCisjcHJhZ21hIG1h
cmsgLSBCS1NNb3VzZVBvaW50ZXJEZXZpY2VPYnNlcnZlciBoYW5kbGVycworCistICh2b2lkKW1v
dXNlUG9pbnRlckRldmljZXNEaWRDaGFuZ2U6KE5TU2V0PEJLU01vdXNlUG9pbnRlckRldmljZSAq
PiAqKW1vdXNlUG9pbnRlckRldmljZXMKK3sKKyAgICBCT09MIGhhc01vdXNlRGV2aWNlID0gW21v
dXNlUG9pbnRlckRldmljZXMgY291bnRdID4gMDsKKyAgICBpZiAoaGFzTW91c2VEZXZpY2UgPT0g
X2hhc01vdXNlRGV2aWNlKQorICAgICAgICByZXR1cm47CisKKyAgICBfaGFzTW91c2VEZXZpY2Ug
PSBoYXNNb3VzZURldmljZTsKKworICAgIFdlYktpdDo6V2ViUHJvY2Vzc1Byb3h5Ojpub3RpZnlI
YXNNb3VzZURldmljZUNoYW5nZWQoKTsKK30KKworI3ByYWdtYSBtYXJrIC0gVGVzdGluZworCist
ICh2b2lkKV9zZXRIYXNNb3VzZURldmljZUZvclRlc3Rpbmc6KEJPT0wpaGFzTW91c2VEZXZpY2UK
K3sKKyAgICBfaGFzTW91c2VEZXZpY2UgPSBoYXNNb3VzZURldmljZTsKKworICAgIFdlYktpdDo6
V2ViUHJvY2Vzc1Byb3h5Ojpub3RpZnlIYXNNb3VzZURldmljZUNoYW5nZWQoKTsKK30KKworQGVu
ZAorCisjZW5kaWYgLy8gSEFWRShVSUtJVF9XSVRIX01PVVNFX1NVUFBPUlQpICYmIFBMQVRGT1JN
KElPUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XZWJQcm9jZXNz
UHJveHlJT1MubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV2ViUHJvY2Vzc1Byb3h5
SU9TLm1tCmluZGV4IGViMTc3Y2Q3Y2RmNTFmMDI3ZjdjNWIxZWM3MmM4NzNmZmE2MTg0ZmEuLmE4
MGYwMDY2YzhkNTBhZjhhYjIwMGU3ZWM0ZTM1MDM3Mjg2ZTM2ZDcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XZWJQcm9jZXNzUHJveHlJT1MubW0KKysrIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvaW9zL1dlYlByb2Nlc3NQcm94eUlPUy5tbQpAQCAtMzAsMTAgKzMw
LDQyIEBACiAKICNpbXBvcnQgIkFjY2Vzc2liaWxpdHlTdXBwb3J0U1BJLmgiCiAjaW1wb3J0ICJX
S0Z1bGxLZXlib2FyZEFjY2Vzc1dhdGNoZXIuaCIKKyNpbXBvcnQgIldLTW91c2VEZXZpY2VPYnNl
cnZlci5oIgogI2ltcG9ydCAiV2ViUHJvY2Vzc01lc3NhZ2VzLmgiCiAKIG5hbWVzcGFjZSBXZWJL
aXQgewogCisjaWYgUExBVEZPUk0oSU9TKQorCit2b2lkIFdlYlByb2Nlc3NQcm94eTo6cGxhdGZv
cm1Jbml0aWFsaXplKCkKK3sKKyNpZiBIQVZFKFVJS0lUX1dJVEhfTU9VU0VfU1VQUE9SVCkKKyAg
ICBpZiAoV2ViUHJvY2Vzc1Byb3h5OjphbGxQcm9jZXNzZXMoKS5zaXplKCkgPT0gMSkKKyAgICAg
ICAgW1tXS01vdXNlRGV2aWNlT2JzZXJ2ZXIgc2hhcmVkSW5zdGFuY2VdIHN0YXJ0XTsKKyNlbmRp
ZgorfQorCit2b2lkIFdlYlByb2Nlc3NQcm94eTo6cGxhdGZvcm1EZXN0cm95KCkKK3sKKyNpZiBI
QVZFKFVJS0lUX1dJVEhfTU9VU0VfU1VQUE9SVCkKKyAgICBpZiAoV2ViUHJvY2Vzc1Byb3h5Ojph
bGxQcm9jZXNzZXMoKS5pc0VtcHR5KCkpCisgICAgICAgIFtbV0tNb3VzZURldmljZU9ic2VydmVy
IHNoYXJlZEluc3RhbmNlXSBzdG9wXTsKKyNlbmRpZgorfQorCisjaWYgSEFWRShVSUtJVF9XSVRI
X01PVVNFX1NVUFBPUlQpCisKK3ZvaWQgV2ViUHJvY2Vzc1Byb3h5Ojpub3RpZnlIYXNNb3VzZURl
dmljZUNoYW5nZWQoKQoreworICAgIGJvb2wgaGFzTW91c2VEZXZpY2UgPSBbW1dLTW91c2VEZXZp
Y2VPYnNlcnZlciBzaGFyZWRJbnN0YW5jZV0gaGFzTW91c2VEZXZpY2VdOworICAgIGZvciAoYXV0
byogd2ViUHJvY2Vzc1Byb3h5IDogV2ViUHJvY2Vzc1Byb3h5OjphbGxQcm9jZXNzZXMoKS52YWx1
ZXMoKSkKKyAgICAgICAgd2ViUHJvY2Vzc1Byb3h5LT5zZW5kKE1lc3NhZ2VzOjpXZWJQcm9jZXNz
OjpTZXRIYXNNb3VzZURldmljZShoYXNNb3VzZURldmljZSksIDApOworfQorCisjZW5kaWYgLy8g
SEFWRShVSUtJVF9XSVRIX01PVVNFX1NVUFBPUlQpCisKKyNlbmRpZiAvLyBQTEFURk9STShJT1Mp
CisKIGJvb2wgV2ViUHJvY2Vzc1Byb3h5OjpmdWxsS2V5Ym9hcmRBY2Nlc3NFbmFibGVkKCkKIHsK
ICNpZiBFTkFCTEUoRlVMTF9LRVlCT0FSRF9BQ0NFU1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYktpdC9XZWJL
aXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA1NzIxMzU2MmFiYzFiZTM4NDJiZTMx
ZTg2MTczNzBkZTI4NzhjZDBhLi4yODRkZTY0ZDJjOWI0MzhlYjc3YmMwMDczMDYyZTRiMjBkZWUx
YjUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2oKQEAgLTEzNzksNiArMTM3OSw4IEBACiAJCTkzQkRFQjAxMTcxREQ3QUYwMEJGRUUxQiAvKiBX
S1BhZ2VMb2FkVHlwZXNQcml2YXRlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA5M0JERUIwMDE3MUREN0FGMDBCRkVFMUIgLyogV0tQYWdlTG9hZFR5cGVz
UHJpdmF0ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CiAJCTkzRTZBNEVFMUJDNUREMzkwMEY4QTBFNyAvKiBfV0tIaXRUZXN0UmVzdWx0LmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0U2QTRFRDFCQzVERDM5
MDBGOEEwRTcgLyogX1dLSGl0VGVzdFJlc3VsdC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07CiAJCTkzRjU0OUI0MUUzMTc0QjcwMDBFNzIzOSAvKiBXS1Nu
YXBzaG90Q29uZmlndXJhdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gOTNGNTQ5QjMxRTMxNzRCNzAwMEU3MjM5IC8qIFdLU25hcHNob3RDb25maWd1
cmF0aW9uLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHVibGljLCApOyB9OyB9Owor
CQk5NTBGMjg4MDI1MjQxNEVBMDBCNzRGMUMgLyogV0tNb3VzZURldmljZU9ic2VydmVyLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5NTBGMjg3RTI1MjQx
NEU5MDBCNzRGMUMgLyogV0tNb3VzZURldmljZU9ic2VydmVyLmggKi87IH07CisJCTk1Qzk0Mzkx
MjUyM0MwRDAwMDU0RjNENSAvKiBCYXNlQm9hcmRTUEkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk1Qzk0MzkwMjUyM0MwRDAwMDU0RjNENSAvKiBCYXNl
Qm9hcmRTUEkuaCAqLzsgfTsKIAkJOTkwMzZBRTIyM0E5NDlDRjAwMDBCMDZBIC8qIF9XS0luc3Bl
Y3RvckRlYnVnZ2FibGVJbmZvSW50ZXJuYWwuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDk5MDM2QUUxMjNBOTQ5Q0UwMDAwQjA2QSAvKiBfV0tJbnNwZWN0
b3JEZWJ1Z2dhYmxlSW5mb0ludGVybmFsLmggKi87IH07CiAJCTk5MDM2QUU1MjNBOTU4NzUwMDAw
QjA2QSAvKiBBUElEZWJ1Z2dhYmxlSW5mby5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gOTkwMzZBRTMyM0E5NTg3NDAwMDBCMDZBIC8qIEFQSURlYnVnZ2Fi
bGVJbmZvLmggKi87IH07CiAJCTk5MDM2QUU5MjNBOTcwODcwMDAwQjA2QSAvKiBEZWJ1Z2dhYmxl
SW5mb0RhdGEuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDk5MDM2QUU3MjNBOTcwODcwMDAwQjA2QSAvKiBEZWJ1Z2dhYmxlSW5mb0RhdGEuaCAqLzsgfTsK
QEAgLTQ0MjYsNiArNDQyOCw5IEBACiAJCTkzRTZBNEVEMUJDNUREMzkwMEY4QTBFNyAvKiBfV0tI
aXRUZXN0UmVzdWx0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IF9XS0hpdFRl
c3RSZXN1bHQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTNGNTQ5QjMxRTMxNzRC
NzAwMEU3MjM5IC8qIFdLU25hcHNob3RDb25maWd1cmF0aW9uLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IFdLU25hcHNob3RDb25maWd1cmF0aW9uLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTkzRjU0OUI1MUUzMTc0REEwMDBFNzIzOSAvKiBXS1NuYXBzaG90Q29u
ZmlndXJhdGlvbi5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdL
U25hcHNob3RDb25maWd1cmF0aW9uLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5
NTBGMjg3RTI1MjQxNEU5MDBCNzRGMUMgLyogV0tNb3VzZURldmljZU9ic2VydmVyLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFdLTW91c2VEZXZpY2VPYnNlcnZlci5oOyBwYXRo
ID0gaW9zL1dLTW91c2VEZXZpY2VPYnNlcnZlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQk5NTBGMjg3RjI1MjQxNEVBMDBCNzRGMUMgLyogV0tNb3VzZURldmljZU9ic2VydmVyLm1t
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBuYW1lID0gV0tNb3VzZURldmljZU9i
c2VydmVyLm1tOyBwYXRoID0gaW9zL1dLTW91c2VEZXZpY2VPYnNlcnZlci5tbTsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTVDOTQzOTAyNTIzQzBEMDAwNTRGM0Q1IC8qIEJhc2VCb2Fy
ZFNQSS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBCYXNlQm9hcmRTUEkuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTkwMzZBRTEyM0E5NDlDRTAwMDBCMDZBIC8q
IF9XS0luc3BlY3RvckRlYnVnZ2FibGVJbmZvSW50ZXJuYWwuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gX1dLSW5zcGVjdG9yRGVidWdnYWJsZUluZm9JbnRlcm5hbC5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5OTAzNkFFMzIzQTk1ODc0MDAwMEIwNkEgLyogQVBJ
RGVidWdnYWJsZUluZm8uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQVBJRGVi
dWdnYWJsZUluZm8uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTkwMzZBRTQyM0E5
NTg3NDAwMDBCMDZBIC8qIEFQSURlYnVnZ2FibGVJbmZvLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IEFQSURlYnVnZ2FibGVJbmZvLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKQEAgLTcwMjMsNiArNzAyOCw4IEBACiAJCQkJOTMzREY4MkYxQjNCQzBCNDAw
QUVBOUUzIC8qIFdLSW1hZ2VQcmV2aWV3Vmlld0NvbnRyb2xsZXIubW0gKi8sCiAJCQkJMkRENUUx
MjcyMTBBREM3QTAwREI2MDEyIC8qIFdLS2V5Ym9hcmRTY3JvbGxpbmdBbmltYXRvci5oICovLAog
CQkJCTJERDVFMTI2MjEwQURDN0EwMERCNjAxMiAvKiBXS0tleWJvYXJkU2Nyb2xsaW5nQW5pbWF0
b3IubW0gKi8sCisJCQkJOTUwRjI4N0UyNTI0MTRFOTAwQjc0RjFDIC8qIFdLTW91c2VEZXZpY2VP
YnNlcnZlci5oICovLAorCQkJCTk1MEYyODdGMjUyNDE0RUEwMEI3NEYxQyAvKiBXS01vdXNlRGV2
aWNlT2JzZXJ2ZXIubW0gKi8sCiAJCQkJMkRCOTQyOTcyMzRFN0E3RjAwRTc3NkFEIC8qIFdLTW91
c2VHZXN0dXJlUmVjb2duaXplci5oICovLAogCQkJCTJEQjk0Mjk4MjM0RTdBN0YwMEU3NzZBRCAv
KiBXS01vdXNlR2VzdHVyZVJlY29nbml6ZXIubW0gKi8sCiAJCQkJQTE1RUVERTQxRTMwMUNFRTAw
MDA2OUIwIC8qIFdLUGFzc3dvcmRWaWV3LmggKi8sCkBAIC0xMDM4Myw2ICsxMDM5MCw3IEBACiAJ
CQljaGlsZHJlbiA9ICgKIAkJCQlDRTFBMEJDQzFBNDhFNkM2MDA1NEVGNzQgLyogQXNzZXJ0aW9u
U2VydmljZXNTUEkuaCAqLywKIAkJCQlDREEwNDFGMzFBQ0UyMTA1MDA0QTEzRUMgLyogQmFja0Jv
YXJkU2VydmljZXNTUEkuaCAqLywKKwkJCQk5NUM5NDM5MDI1MjNDMEQwMDA1NEYzRDUgLyogQmFz
ZUJvYXJkU1BJLmggKi8sCiAJCQkJMkQ0QUYwODgyMDQ0QzNDNDAwNkM4ODE3IC8qIEZyb250Qm9h
cmRTZXJ2aWNlc1NQSS5oICovLAogCQkJCUExM0IzREExMjA3RjM5REUwMDkwQzU4RCAvKiBNb2Jp
bGVXaUZpU1BJLmggKi8sCiAJCQkJMzE3OEFGOTcyMEUyQTdGODAwNzRERTk0IC8qIFBERktpdFNQ
SS5oICovLApAQCAtMTA3NDksNiArMTA3NTcsNyBAQAogCQkJCTI5MEY0MjcyMTcyQTBDNzQwMDkz
OUZGMCAvKiBBdXhpbGlhcnlQcm9jZXNzU3VwcGxlbWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
Q0RBMDQxRjQxQUNFMjEwNTAwNEExM0VDIC8qIEJhY2tCb2FyZFNlcnZpY2VzU1BJLmggaW4gSGVh
ZGVycyAqLywKIAkJCQk0NkEyQjYwOTFFNTY3NkE2MDBDM0RFREEgLyogQmFja2dyb3VuZFByb2Nl
c3NSZXNwb25zaXZlbmVzc1RpbWVyLmggaW4gSGVhZGVycyAqLywKKwkJCQk5NUM5NDM5MTI1MjND
MEQwMDA1NEYzRDUgLyogQmFzZUJvYXJkU1BJLmggaW4gSGVhZGVycyAqLywKIAkJCQlFMTY0QTJG
MjE5MUFGMTRFMDAxMDczN0QgLyogQmxvYkRhdGFGaWxlUmVmZXJlbmNlV2l0aFNhbmRib3hFeHRl
bnNpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCUUxNzA4NzZDMTZENkNBNjkwMEY5OTIyNiAvKiBC
bG9iUmVnaXN0cnlQcm94eS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNEY2MDE0MzIxNTVDNUFBMjAw
MUZCREUwIC8qIEJsb2NraW5nUmVzcG9uc2VNYXAuaCBpbiBIZWFkZXJzICovLApAQCAtMTE2MDYs
NiArMTE2MTUsNyBAQAogCQkJCTVDQUJEQzg2MjJDNDBGREUwMDFFREU4RSAvKiBXS01lc3NhZ2VM
aXN0ZW5lci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQzExRTE2OTQyMTJCODdDNTAwOTg1RkY2IC8q
IFdLTW9ja0Rpc3BsYXkuaCBpbiBIZWFkZXJzICovLAogCQkJCTQxMUE4RERCMjBEREQxQUMwMDYw
RDM0RiAvKiBXS01vY2tNZWRpYURldmljZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJOTUwRjI4ODAy
NTI0MTRFQTAwQjc0RjFDIC8qIFdLTW91c2VEZXZpY2VPYnNlcnZlci5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJMkRCOTQyOTkyMzRFN0E3RjAwRTc3NkFEIC8qIFdLTW91c2VHZXN0dXJlUmVjb2duaXpl
ci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkM0MDc1RkUxMjRGRjAyNzAwNjhGMjBBIC8qIFdLTXV0
YWJsZUFycmF5LmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzQwNzYwMDEyNEZGMDI3MDA2OEYyMEEg
LyogV0tNdXRhYmxlRGljdGlvbmFyeS5oIGluIEhlYWRlcnMgKi8sCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcCBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQu
Y3BwCmluZGV4IGRlMzdhZWM2MTNlMWFiNTVmODhjMzE5NGZjMGIwMjI2OGE1ZDMxMjQuLmQ2MGVl
NTlkOWQxNDM0YjQ4YzRjYzM5MmI0ZGQ0ZDI1MjQ3MjNiNDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQu
Y3BwCkBAIC01MDYsNiArNTA2LDE2IEBAIEtleWJvYXJkVUlNb2RlIFdlYkNocm9tZUNsaWVudDo6
a2V5Ym9hcmRVSU1vZGUoKQogICAgIHJldHVybiBtX3BhZ2Uua2V5Ym9hcmRVSU1vZGUoKTsKIH0K
IAorYm9vbCBXZWJDaHJvbWVDbGllbnQ6OmhvdmVyU3VwcG9ydGVkQnlBbnlBdmFpbGFibGVQb2lu
dGluZ0RldmljZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fcGFnZS5ob3ZlclN1cHBvcnRlZEJ5
QW55QXZhaWxhYmxlUG9pbnRpbmdEZXZpY2UoKTsKK30KKworT3B0aW9uU2V0PFBvaW50ZXJDaGFy
YWN0ZXJpc3RpY3M+IFdlYkNocm9tZUNsaWVudDo6cG9pbnRlckNoYXJhY3RlcmlzdGljc09mQWxs
QXZhaWxhYmxlUG9pbnRpbmdEZXZpY2VzKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9wYWdlLnBv
aW50ZXJDaGFyYWN0ZXJpc3RpY3NPZkFsbEF2YWlsYWJsZVBvaW50aW5nRGV2aWNlcygpOworfQor
CiAjaWYgRU5BQkxFKFBPSU5URVJfTE9DSykKIAogYm9vbCBXZWJDaHJvbWVDbGllbnQ6OnJlcXVl
c3RQb2ludGVyTG9jaygpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKaW5kZXggYmRiNGRmZmJiMDE1YTM3NzIw
NmJkYjQyNWE3MjVhZDY0ZTAxNTg3Yi4uNTBmNDM0YzIwOGZkYTQ0NzNjZjZiYjQ2MTYyNTNiMDEw
N2ZiYTVjOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L1dlYkNocm9tZUNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaApAQCAtMTEyLDYgKzExMiw5IEBAIHByaXZhdGU6
CiAKICAgICBXZWJDb3JlOjpLZXlib2FyZFVJTW9kZSBrZXlib2FyZFVJTW9kZSgpIGZpbmFsOwog
CisgICAgYm9vbCBob3ZlclN1cHBvcnRlZEJ5QW55QXZhaWxhYmxlUG9pbnRpbmdEZXZpY2UoKSBj
b25zdCBmaW5hbDsKKyAgICBPcHRpb25TZXQ8V2ViQ29yZTo6UG9pbnRlckNoYXJhY3RlcmlzdGlj
cz4gcG9pbnRlckNoYXJhY3RlcmlzdGljc09mQWxsQXZhaWxhYmxlUG9pbnRpbmdEZXZpY2VzKCkg
Y29uc3QgZmluYWw7CisKICAgICAvLyBIb3N0V2luZG93IG1lbWJlciBmdW5jdGlvbiBmaW5hbHMu
CiAgICAgdm9pZCBpbnZhbGlkYXRlUm9vdFZpZXcoY29uc3QgV2ViQ29yZTo6SW50UmVjdCYpIGZp
bmFsOwogICAgIHZvaWQgaW52YWxpZGF0ZUNvbnRlbnRzQW5kUm9vdFZpZXcoY29uc3QgV2ViQ29y
ZTo6SW50UmVjdCYpIGZpbmFsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYlBhZ2UvV2ViUGFnZS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2Vi
UGFnZS5oCmluZGV4IGQ1M2QzMDQzZjVhNzYxMGRlYmJlMzI1NzBhNDhkMGUyNWFmNDdlMTIuLmQw
OGFmNWE1NzAyNGNhYWM2NzY4NzBiY2Y5MDlmNGU3ZTFkMzRmOWEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKQEAgLTc1LDYgKzc1LDcgQEAKICNpbmNsdWRl
IDxXZWJDb3JlL1BhZ2VJZGVudGlmaWVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9QYWdlT3Zlcmxh
eS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUGx1Z2luRGF0YS5oPgorI2luY2x1ZGUgPFdlYkNvcmUv
UG9pbnRlckNoYXJhY3RlcmlzdGljcy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUG9pbnRlcklELmg+
CiAjaW5jbHVkZSA8V2ViQ29yZS9SZW5kZXJpbmdNb2RlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9T
ZWN1cml0eVBvbGljeVZpb2xhdGlvbkV2ZW50Lmg+CkBAIC00MTUsNiArNDE2LDkgQEAgcHVibGlj
OgogICAgIFN0cmluZyBwbGF0Zm9ybVVzZXJBZ2VudChjb25zdCBVUkwmKSBjb25zdDsKICAgICBX
ZWJDb3JlOjpLZXlib2FyZFVJTW9kZSBrZXlib2FyZFVJTW9kZSgpOwogCisgICAgYm9vbCBob3Zl
clN1cHBvcnRlZEJ5QW55QXZhaWxhYmxlUG9pbnRpbmdEZXZpY2UoKSBjb25zdDsKKyAgICBPcHRp
b25TZXQ8V2ViQ29yZTo6UG9pbnRlckNoYXJhY3RlcmlzdGljcz4gcG9pbnRlckNoYXJhY3Rlcmlz
dGljc09mQWxsQXZhaWxhYmxlUG9pbnRpbmdEZXZpY2VzKCkgY29uc3Q7CisKICAgICB2b2lkIGRp
ZEluc2VydE1lbnVFbGVtZW50KFdlYkNvcmU6OkhUTUxNZW51RWxlbWVudCYpOwogICAgIHZvaWQg
ZGlkUmVtb3ZlTWVudUVsZW1lbnQoV2ViQ29yZTo6SFRNTE1lbnVFbGVtZW50Jik7CiAgICAgdm9p
ZCBkaWRJbnNlcnRNZW51SXRlbUVsZW1lbnQoV2ViQ29yZTo6SFRNTE1lbnVJdGVtRWxlbWVudCYp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvZ3RrL1dlYlBh
Z2VHdGsuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvZ3RrL1dlYlBhZ2VH
dGsuY3BwCmluZGV4IGRhNDc1NTAyYTMwYTM5ODUxYTE3ZjVlNzBlYjcyYzQzYTBjM2FmNzIuLmQ5
YWY5OTRjZjA5MDlmMGJiYmI2ZmU3NGM2OGVkNzAzYmZlNzVlNzAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL2d0ay9XZWJQYWdlR3RrLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9ndGsvV2ViUGFnZUd0ay5jcHAKQEAgLTQzLDYg
KzQzLDggQEAKICNpbmNsdWRlIDxXZWJDb3JlL05vdEltcGxlbWVudGVkLmg+CiAjaW5jbHVkZSA8
V2ViQ29yZS9QYWdlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9QbGF0Zm9ybUtleWJvYXJkRXZlbnQu
aD4KKyNpbmNsdWRlIDxXZWJDb3JlL1BsYXRmb3JtU2NyZWVuLmg+CisjaW5jbHVkZSA8V2ViQ29y
ZS9Qb2ludGVyQ2hhcmFjdGVyaXN0aWNzLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9SZW5kZXJUaGVt
ZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU2V0dGluZ3MuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1No
YXJlZEJ1ZmZlci5oPgpAQCAtMTI5LDYgKzEzMSwyNCBAQCBTdHJpbmcgV2ViUGFnZTo6cGxhdGZv
cm1Vc2VyQWdlbnQoY29uc3QgVVJMJiB1cmwpIGNvbnN0CiAgICAgcmV0dXJuIFdlYkNvcmU6OnN0
YW5kYXJkVXNlckFnZW50Rm9yVVJMKHVybCk7CiB9CiAKK2Jvb2wgV2ViUGFnZTo6aG92ZXJTdXBw
b3J0ZWRCeUFueUF2YWlsYWJsZVBvaW50aW5nRGV2aWNlKCkgY29uc3QKK3sKKyNpZiBFTkFCTEUo
VE9VQ0hfRVZFTlRTKQorICAgIHJldHVybiAhc2NyZWVuSGFzVG91Y2hEZXZpY2UoKTsKKyNlbHNl
CisgICAgcmV0dXJuIHRydWU7CisjZW5kaWYKK30KKworT3B0aW9uU2V0PFBvaW50ZXJDaGFyYWN0
ZXJpc3RpY3M+IFdlYlBhZ2U6OnBvaW50ZXJDaGFyYWN0ZXJpc3RpY3NPZkFsbEF2YWlsYWJsZVBv
aW50aW5nRGV2aWNlcygpIGNvbnN0Cit7CisjaWYgRU5BQkxFKFRPVUNIX0VWRU5UUykKKyAgICBp
ZiAoc2NyZWVuSGFzVG91Y2hEZXZpY2UoKSkKKyAgICAgICAgcmV0dXJuIFBvaW50ZXJDaGFyYWN0
ZXJpc3RpY3M6OkNvYXJzZTsKKyNlbmRpZgorICAgIHJldHVybiBQb2ludGVyQ2hhcmFjdGVyaXN0
aWNzOjpGaW5lOworfQorCiB2b2lkIFdlYlBhZ2U6OmdldENlbnRlckZvclpvb21HZXN0dXJlKGNv
bnN0IEludFBvaW50JiBjZW50ZXJJblZpZXdDb29yZGluYXRlcywgQ29tcGxldGlvbkhhbmRsZXI8
dm9pZChXZWJDb3JlOjpJbnRQb2ludCYmKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBJ
bnRQb2ludCByZXN1bHQgPSBtYWluRnJhbWVWaWV3KCktPnJvb3RWaWV3VG9Db250ZW50cyhjZW50
ZXJJblZpZXdDb29yZGluYXRlcyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbSBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tCmluZGV4IDFlZjFhMTg5OGFkM2Y4Zjk2YWZiNDcwMjg0
ZTY3ZDFmNjg3NzczNDMuLjFmODljNTFiZDZhOTc2ODdhYjI5YzI3ZTI4YzIxOGRjZWE1ZTk5ZjAg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdl
SU9TLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdl
SU9TLm1tCkBAIC0xMTYsNiArMTE2LDcgQEAKICNpbXBvcnQgPFdlYkNvcmUvUGxhdGZvcm1LZXli
b2FyZEV2ZW50Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL1BsYXRmb3JtTW91c2VFdmVudC5oPgogI2lt
cG9ydCA8V2ViQ29yZS9Qb2ludGVyQ2FwdHVyZUNvbnRyb2xsZXIuaD4KKyNpbXBvcnQgPFdlYkNv
cmUvUG9pbnRlckNoYXJhY3RlcmlzdGljcy5oPgogI2ltcG9ydCA8V2ViQ29yZS9RdWlya3MuaD4K
ICNpbXBvcnQgPFdlYkNvcmUvUmFuZ2UuaD4KICNpbXBvcnQgPFdlYkNvcmUvUmVuZGVyQmxvY2su
aD4KQEAgLTM5ODYsNiArMzk4NywzMCBAQCBTdHJpbmcgV2ViUGFnZTo6cGxhdGZvcm1Vc2VyQWdl
bnQoY29uc3QgVVJMJikgY29uc3QKICAgICByZXR1cm4gU3RyaW5nKCk7CiB9CiAKK3N0YXRpYyBi
b29sIGhhc01vdXNlRGV2aWNlKCkKK3sKKyNpZiBIQVZFKFVJS0lUX1dJVEhfTU9VU0VfU1VQUE9S
VCkgJiYgUExBVEZPUk0oSU9TKQorICAgIHJldHVybiBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5o
YXNNb3VzZURldmljZSgpOworI2VsaWYgSEFWRShVSUtJVF9XSVRIX01PVVNFX1NVUFBPUlQpICYm
IFBMQVRGT1JNKE1BQ0NBVEFMWVNUKQorICAgIHJldHVybiB0cnVlOworI2Vsc2UKKyAgICByZXR1
cm4gZmFsc2U7CisjZW5kaWYKK30KKworYm9vbCBXZWJQYWdlOjpob3ZlclN1cHBvcnRlZEJ5QW55
QXZhaWxhYmxlUG9pbnRpbmdEZXZpY2UoKSBjb25zdAoreworICAgIHJldHVybiBoYXNNb3VzZURl
dmljZSgpOworfQorCitPcHRpb25TZXQ8UG9pbnRlckNoYXJhY3RlcmlzdGljcz4gV2ViUGFnZTo6
cG9pbnRlckNoYXJhY3RlcmlzdGljc09mQWxsQXZhaWxhYmxlUG9pbnRpbmdEZXZpY2VzKCkgY29u
c3QKK3sKKyAgICBPcHRpb25TZXQ8UG9pbnRlckNoYXJhY3RlcmlzdGljcz4gcmVzdWx0KFBvaW50
ZXJDaGFyYWN0ZXJpc3RpY3M6OkNvYXJzZSk7CisgICAgaWYgKGhhc01vdXNlRGV2aWNlKCkpCisg
ICAgICAgIHJlc3VsdC5hZGQoUG9pbnRlckNoYXJhY3RlcmlzdGljczo6RmluZSk7CisgICAgcmV0
dXJuIHJlc3VsdDsKK30KKwogdm9pZCBXZWJQYWdlOjpoYXJkd2FyZUtleWJvYXJkQXZhaWxhYmls
aXR5Q2hhbmdlZChib29sIGtleWJvYXJkSXNBdHRhY2hlZCkKIHsKICAgICBtX2tleWJvYXJkSXNB
dHRhY2hlZCA9IGtleWJvYXJkSXNBdHRhY2hlZDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9XZWJQYWdlTWFjLm1tIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYlBhZ2UvbWFjL1dlYlBhZ2VNYWMubW0KaW5kZXggNWFlYjRiMTUzN2QzMzQyMTE2
Y2EyMWE1NTUzNTNjNGFhZWMwMGU1Ny4uYjgyZjgwZTBlMjcwYTA0MzkyMDQyNTU2ZTllNThhZjdk
ZmYwMzgwMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFj
L1dlYlBhZ2VNYWMubW0KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFj
L1dlYlBhZ2VNYWMubW0KQEAgLTgzLDYgKzgzLDcgQEAKICNpbXBvcnQgPFdlYkNvcmUvUGFnZU92
ZXJsYXlDb250cm9sbGVyLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1BsYXRmb3JtS2V5Ym9hcmRFdmVu
dC5oPgogI2ltcG9ydCA8V2ViQ29yZS9QbHVnaW5Eb2N1bWVudC5oPgorI2ltcG9ydCA8V2ViQ29y
ZS9Qb2ludGVyQ2hhcmFjdGVyaXN0aWNzLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1JlbmRlckVsZW1l
bnQuaD4KICNpbXBvcnQgPFdlYkNvcmUvUmVuZGVyT2JqZWN0Lmg+CiAjaW1wb3J0IDxXZWJDb3Jl
L1JlbmRlclN0eWxlLmg+CkBAIC04MzAsNiArODMxLDE2IEBAIFN0cmluZyBXZWJQYWdlOjpwbGF0
Zm9ybVVzZXJBZ2VudChjb25zdCBVUkwmKSBjb25zdAogICAgIHJldHVybiBTdHJpbmcoKTsKIH0K
IAorYm9vbCBXZWJQYWdlOjpob3ZlclN1cHBvcnRlZEJ5QW55QXZhaWxhYmxlUG9pbnRpbmdEZXZp
Y2UoKSBjb25zdAoreworICAgIHJldHVybiB0cnVlOworfQorCitPcHRpb25TZXQ8UG9pbnRlckNo
YXJhY3RlcmlzdGljcz4gV2ViUGFnZTo6cG9pbnRlckNoYXJhY3RlcmlzdGljc09mQWxsQXZhaWxh
YmxlUG9pbnRpbmdEZXZpY2VzKCkgY29uc3QKK3sKKyAgICByZXR1cm4gUG9pbnRlckNoYXJhY3Rl
cmlzdGljczo6RmluZTsKK30KKwogdm9pZCBXZWJQYWdlOjpwZXJmb3JtSW1tZWRpYXRlQWN0aW9u
SGl0VGVzdEF0TG9jYXRpb24oV2ViQ29yZTo6RmxvYXRQb2ludCBsb2NhdGlvbkluVmlld0Nvb3Jk
aW5hdGVzKQogewogICAgIGxheW91dElmTmVlZGVkKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9wbGF5c3RhdGlvbi9XZWJQYWdlUGxheVN0YXRpb24uY3Bw
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvcGxheXN0YXRpb24vV2ViUGFnZVBs
YXlTdGF0aW9uLmNwcAppbmRleCBjYmRhNDhjN2Q2NWIxYTY4MjY2Y2I2MjY4ZTBmN2UxZjJhZWE1
NTg2Li43MjZlOTIzM2M1MWIzMWM2ZTQ2ZmYxMjViNGU1ZmVmMzM2ODc3M2U5IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9wbGF5c3RhdGlvbi9XZWJQYWdlUGxh
eVN0YXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL3BsYXlz
dGF0aW9uL1dlYlBhZ2VQbGF5U3RhdGlvbi5jcHAKQEAgLTI3LDYgKzI3LDcgQEAKICNpbmNsdWRl
ICJXZWJQYWdlLmgiCiAKICNpbmNsdWRlIDxXZWJDb3JlL05vdEltcGxlbWVudGVkLmg+CisjaW5j
bHVkZSA8V2ViQ29yZS9Qb2ludGVyQ2hhcmFjdGVyaXN0aWNzLmg+CiAjaW5jbHVkZSA8V2ViQ29y
ZS9TZXR0aW5ncy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvVXNlckFnZW50Lmg+CiAKQEAgLTY1LDYg
KzY2LDE2IEBAIFN0cmluZyBXZWJQYWdlOjpwbGF0Zm9ybVVzZXJBZ2VudChjb25zdCBVUkwmIHVy
bCkgY29uc3QKICAgICByZXR1cm4gV2ViQ29yZTo6c3RhbmRhcmRVc2VyQWdlbnRGb3JVUkwodXJs
KTsKIH0KIAorYm9vbCBXZWJQYWdlOjpob3ZlclN1cHBvcnRlZEJ5QW55QXZhaWxhYmxlUG9pbnRp
bmdEZXZpY2UoKSBjb25zdAoreworICAgIHJldHVybiB0cnVlOworfQorCitPcHRpb25TZXQ8UG9p
bnRlckNoYXJhY3RlcmlzdGljcz4gV2ViUGFnZTo6cG9pbnRlckNoYXJhY3RlcmlzdGljc09mQWxs
QXZhaWxhYmxlUG9pbnRpbmdEZXZpY2VzKCkgY29uc3QKK3sKKyAgICByZXR1cm4gUG9pbnRlckNo
YXJhY3RlcmlzdGljczo6RmluZTsKK30KKwogYm9vbCBXZWJQYWdlOjpoYW5kbGVFZGl0aW5nS2V5
Ym9hcmRFdmVudChXZWJDb3JlOjpLZXlib2FyZEV2ZW50JiBldmVudCkKIHsKICAgICBub3RJbXBs
ZW1lbnRlZCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2Uv
d2luL1dlYlBhZ2VXaW4uY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2Uvd2lu
L1dlYlBhZ2VXaW4uY3BwCmluZGV4IDI4OTNlZDNmM2I4YzljMjg0NzJiOGFhZjdhMzk5ZTI1N2Jm
OGM1MmQuLmVkYWQ3ZDUwMzdkMWU0MDhjMDM5NGYzNTE1Zjc4OGY4ZTRkNmRkZDQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL3dpbi9XZWJQYWdlV2luLmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS93aW4vV2ViUGFnZVdpbi5jcHAK
QEAgLTQzLDYgKzQzLDcgQEAKICNpbmNsdWRlIDxXZWJDb3JlL05vdEltcGxlbWVudGVkLmg+CiAj
aW5jbHVkZSA8V2ViQ29yZS9QYWdlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9QbGF0Zm9ybUtleWJv
YXJkRXZlbnQuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1BvaW50ZXJDaGFyYWN0ZXJpc3RpY3MuaD4K
ICNpbmNsdWRlIDxXZWJDb3JlL1NldHRpbmdzLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TaGFyZWRC
dWZmZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1VzZXJBZ2VudC5oPgpAQCAtMTE1LDYgKzExNiwx
NiBAQCBTdHJpbmcgV2ViUGFnZTo6cGxhdGZvcm1Vc2VyQWdlbnQoY29uc3QgVVJMJikgY29uc3QK
ICAgICByZXR1cm4geyB9OwogfQogCitib29sIFdlYlBhZ2U6OmhvdmVyU3VwcG9ydGVkQnlBbnlB
dmFpbGFibGVQb2ludGluZ0RldmljZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIHRydWU7Cit9CisK
K09wdGlvblNldDxQb2ludGVyQ2hhcmFjdGVyaXN0aWNzPiBXZWJQYWdlOjpwb2ludGVyQ2hhcmFj
dGVyaXN0aWNzT2ZBbGxBdmFpbGFibGVQb2ludGluZ0RldmljZXMoKSBjb25zdAoreworICAgIHJl
dHVybiBQb2ludGVyQ2hhcmFjdGVyaXN0aWNzOjpGaW5lOworfQorCiBzdGF0aWMgY29uc3QgdW5z
aWduZWQgQ3RybEtleSA9IDEgPDwgMDsKIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBBbHRLZXkgPSAx
IDw8IDE7CiBzdGF0aWMgY29uc3QgdW5zaWduZWQgU2hpZnRLZXkgPSAxIDw8IDI7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS93cGUvV2ViUGFnZVdQRS5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS93cGUvV2ViUGFnZVdQRS5jcHAKaW5k
ZXggZjlmYzQxYTFmYjY5NzZiMTZiN2E1MzIwYWVjOTJiMTFiMzAwZDdiNi4uNGE1NDBhMjUwNzk4
ZDlmMmFlZGE5ZjAyYTEwMGI2Mjk1NjJiYjdmOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYlBhZ2Uvd3BlL1dlYlBhZ2VXUEUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJQYWdlL3dwZS9XZWJQYWdlV1BFLmNwcApAQCAtMzAsNiArMzAsOCBAQAog
I2luY2x1ZGUgIldlYlBhZ2VQcm94eS5oIgogI2luY2x1ZGUgIldlYlBhZ2VQcm94eU1lc3NhZ2Vz
LmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9Ob3RJbXBsZW1lbnRlZC5oPgorI2luY2x1ZGUgPFdlYkNv
cmUvUGxhdGZvcm1TY3JlZW4uaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1BvaW50ZXJDaGFyYWN0ZXJp
c3RpY3MuaD4KIAogbmFtZXNwYWNlIFdlYktpdCB7CiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsK
QEAgLTczLDQgKzc1LDIyIEBAIFN0cmluZyBXZWJQYWdlOjpwbGF0Zm9ybVVzZXJBZ2VudChjb25z
dCBVUkwmKSBjb25zdAogICAgIHJldHVybiBTdHJpbmcoKTsKIH0KIAorYm9vbCBXZWJQYWdlOjpo
b3ZlclN1cHBvcnRlZEJ5QW55QXZhaWxhYmxlUG9pbnRpbmdEZXZpY2UoKSBjb25zdAoreworI2lm
IEVOQUJMRShUT1VDSF9FVkVOVFMpCisgICAgcmV0dXJuICFzY3JlZW5IYXNUb3VjaERldmljZSgp
OworI2Vsc2UKKyAgICByZXR1cm4gdHJ1ZTsKKyNlbmRpZgorfQorCitPcHRpb25TZXQ8UG9pbnRl
ckNoYXJhY3RlcmlzdGljcz4gV2ViUGFnZTo6cG9pbnRlckNoYXJhY3RlcmlzdGljc09mQWxsQXZh
aWxhYmxlUG9pbnRpbmdEZXZpY2VzKCkgY29uc3QKK3sKKyNpZiBFTkFCTEUoVE9VQ0hfRVZFTlRT
KQorICAgIGlmIChzY3JlZW5IYXNUb3VjaERldmljZSgpKQorICAgICAgICByZXR1cm4gUG9pbnRl
ckNoYXJhY3RlcmlzdGljczo6Q29hcnNlOworI2VuZGlmCisgICAgcmV0dXJuIFBvaW50ZXJDaGFy
YWN0ZXJpc3RpY3M6OkZpbmU7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCmluZGV4IDYxMGQzNzc5MDhjYjUwYTBhMjI5NDEx
NWRmMDM5ZTBiZTk2NGEzOWMuLjIwZGM1ZTViOThlMWRkZGE3N2M5ZjNiYjI5NDU0NTM3Njc0MTk1
ZDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAKQEAgLTQwNiw2ICs0
MDYsMTAgQEAgdm9pZCBXZWJQcm9jZXNzOjppbml0aWFsaXplV2ViUHJvY2VzcyhXZWJQcm9jZXNz
Q3JlYXRpb25QYXJhbWV0ZXJzJiYgcGFyYW1ldGVycykKIAogICAgIG1fZnVsbEtleWJvYXJkQWNj
ZXNzRW5hYmxlZCA9IHBhcmFtZXRlcnMuZnVsbEtleWJvYXJkQWNjZXNzRW5hYmxlZDsKIAorI2lm
IEhBVkUoVUlLSVRfV0lUSF9NT1VTRV9TVVBQT1JUKSAmJiBQTEFURk9STShJT1MpCisgICAgbV9o
YXNNb3VzZURldmljZSA9IHBhcmFtZXRlcnMuaGFzTW91c2VEZXZpY2U7CisjZW5kaWYKKwogICAg
IGZvciAoYXV0byYgc2NoZW1lIDogcGFyYW1ldGVycy51cmxTY2hlbWVzUmVnaXN0ZXJlZEFzRW1w
dHlEb2N1bWVudCkKICAgICAgICAgcmVnaXN0ZXJVUkxTY2hlbWVBc0VtcHR5RG9jdW1lbnQoc2No
ZW1lKTsKIApAQCAtMTA1MCw2ICsxMDU0LDIwIEBAIHZvaWQgV2ViUHJvY2Vzczo6bWVzc2FnZXNB
dmFpbGFibGVGb3JQb3J0KGNvbnN0IE1lc3NhZ2VQb3J0SWRlbnRpZmllciYgaWRlbnRpZmllCiAg
ICAgTWVzc2FnZVBvcnQ6Om5vdGlmeU1lc3NhZ2VBdmFpbGFibGUoaWRlbnRpZmllcik7CiB9CiAK
KyNpZiBIQVZFKFVJS0lUX1dJVEhfTU9VU0VfU1VQUE9SVCkgJiYgUExBVEZPUk0oSU9TKQorCit2
b2lkIFdlYlByb2Nlc3M6OnNldEhhc01vdXNlRGV2aWNlKGJvb2wgaGFzTW91c2VEZXZpY2UpCit7
CisgICAgaWYgKGhhc01vdXNlRGV2aWNlID09IG1faGFzTW91c2VEZXZpY2UpCisgICAgICAgIHJl
dHVybjsKKworICAgIG1faGFzTW91c2VEZXZpY2UgPSBoYXNNb3VzZURldmljZTsKKworICAgIFBh
Z2U6OnVwZGF0ZVN0eWxlRm9yQWxsUGFnZXNBZnRlckdsb2JhbENoYW5nZUluRW52aXJvbm1lbnQo
KTsKK30KKworI2VuZGlmIC8vIEhBVkUoVUlLSVRfV0lUSF9NT1VTRV9TVVBQT1JUKSAmJiBQTEFU
Rk9STShJT1MpCisKICNpZiBFTkFCTEUoR0FNRVBBRCkKIAogdm9pZCBXZWJQcm9jZXNzOjpzZXRJ
bml0aWFsR2FtZXBhZHMoY29uc3QgVmVjdG9yPFdlYktpdDo6R2FtZXBhZERhdGE+JiBnYW1lcGFk
RGF0YXMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5o
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuaAppbmRleCA5ZDBkZGJmZDM4
ZGUzODFkYzI1ZGJlYjk3ZDQ4NjllOTRmZGViODI3Li5mM2UxOWFiNmFiMzJiZDBlYzY0Y2Q3Mjc3
OTNmNGJjZDNlNGQ0OGY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
UHJvY2Vzcy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmgKQEAg
LTE4Nyw2ICsxODcsMTEgQEAgcHVibGljOgogCiAgICAgYm9vbCBmdWxsS2V5Ym9hcmRBY2Nlc3NF
bmFibGVkKCkgY29uc3QgeyByZXR1cm4gbV9mdWxsS2V5Ym9hcmRBY2Nlc3NFbmFibGVkOyB9CiAK
KyNpZiBIQVZFKFVJS0lUX1dJVEhfTU9VU0VfU1VQUE9SVCkgJiYgUExBVEZPUk0oSU9TKQorICAg
IGJvb2wgaGFzTW91c2VEZXZpY2UoKSBjb25zdCB7IHJldHVybiBtX2hhc01vdXNlRGV2aWNlOyB9
CisgICAgdm9pZCBzZXRIYXNNb3VzZURldmljZShib29sKTsKKyNlbmRpZgorCiAgICAgV2ViRnJh
bWUqIHdlYkZyYW1lKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllcikgY29uc3Q7CiAgICAgVmVjdG9y
PFdlYkZyYW1lKj4gd2ViRnJhbWVzKCkgY29uc3Q7CiAgICAgdm9pZCBhZGRXZWJGcmFtZShXZWJD
b3JlOjpGcmFtZUlkZW50aWZpZXIsIFdlYkZyYW1lKik7CkBAIC01NTQsNiArNTU5LDEwIEBAIHBy
aXZhdGU6CiAKICAgICBib29sIG1fZnVsbEtleWJvYXJkQWNjZXNzRW5hYmxlZCB7IGZhbHNlIH07
CiAKKyNpZiBIQVZFKFVJS0lUX1dJVEhfTU9VU0VfU1VQUE9SVCkgJiYgUExBVEZPUk0oSU9TKQor
ICAgIGJvb2wgbV9oYXNNb3VzZURldmljZSB7IGZhbHNlIH07CisjZW5kaWYKKwogICAgIEhhc2hN
YXA8V2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBXZWJGcmFtZSo+IG1fZnJhbWVNYXA7CiAKICAg
ICB0eXBlZGVmIEhhc2hNYXA8Y29uc3QgY2hhciosIHN0ZDo6dW5pcXVlX3B0cjxXZWJQcm9jZXNz
U3VwcGxlbWVudD4sIFB0ckhhc2g8Y29uc3QgY2hhcio+PiBXZWJQcm9jZXNzU3VwcGxlbWVudE1h
cDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLm1lc3Nh
Z2VzLmluIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MubWVzc2FnZXMuaW4K
aW5kZXggMDEyMzY3NTdhNWM1ZjBkMjgwYzZkZDFmOWExODE1MmJiY2YxOWMwNC4uMzcwMDE3OTk3
OTMzMjkxNDYyZjYwZmQxNTg4MzgyYWY3NTU2NGI5ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYlByb2Nlc3MubWVzc2FnZXMuaW4KQEAgLTUyLDYgKzUyLDEwIEBAIG1lc3Nh
Z2VzIC0+IFdlYlByb2Nlc3MgTGVnYWN5UmVjZWl2ZXIgTm90UmVmQ291bnRlZCB7CiAgICAgVXNl
clByZWZlcnJlZExhbmd1YWdlc0NoYW5nZWQoKQogICAgIEZ1bGxLZXlib2FyZEFjY2Vzc01vZGVD
aGFuZ2VkKGJvb2wgZnVsbEtleWJvYXJkQWNjZXNzRW5hYmxlZCkKIAorI2lmIEhBVkUoVUlLSVRf
V0lUSF9NT1VTRV9TVVBQT1JUKSAmJiBQTEFURk9STShJT1MpCisgICAgU2V0SGFzTW91c2VEZXZp
Y2UoYm9vbCBoYXNNb3VzZURldmljZSkKKyNlbmRpZgorCiAgICAgIyBQbHVnLWlucy4KICAgICBE
aWRBZGRQbHVnSW5BdXRvU3RhcnRPcmlnaW5IYXNoKHVpbnQzMl90IGhhc2gsIFdhbGxUaW1lIGV4
cGlyYXRpb25UaW1lKQogICAgIFJlc2V0UGx1Z0luQXV0b1N0YXJ0T3JpZ2luSGFzaGVzKEhhc2hN
YXA8dWludDMyX3QsV2FsbFRpbWU+IGhhc2hlcykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRM
ZWdhY3kvaW9zL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudElPUy5oIGIvU291cmNlL1dl
YktpdExlZ2FjeS9pb3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50SU9TLmgKaW5kZXgg
YTkyYmFhNmIzMDU5ZGU4OTE0NWYwM2IxYTU3NTdmOTcyYTk0MDk5OS4uMTkxYTBhZjlhNWViZmRi
MTc4ZDY2MDE4NTY3OGE0MjJlZGU1NTI0YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2Fj
eS9pb3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50SU9TLmgKKysrIGIvU291cmNlL1dl
YktpdExlZ2FjeS9pb3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50SU9TLmgKQEAgLTUw
LDYgKzUwLDkgQEAgcHJpdmF0ZToKICAgICB2b2lkIHJ1bk9wZW5QYW5lbChXZWJDb3JlOjpGcmFt
ZSYsIFdlYkNvcmU6OkZpbGVDaG9vc2VyJikgZmluYWw7CiAgICAgdm9pZCBzaG93U2hhcmVTaGVl
dChXZWJDb3JlOjpTaGFyZURhdGFXaXRoUGFyc2VkVVJMJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZChib29sKT4mJikgZmluYWw7CiAKKyAgICBib29sIGhvdmVyU3VwcG9ydGVkQnlBbnlBdmFpbGFi
bGVQb2ludGluZ0RldmljZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIGZhbHNlOyB9CisgICAgT3B0
aW9uU2V0PFdlYkNvcmU6OlBvaW50ZXJDaGFyYWN0ZXJpc3RpY3M+IHBvaW50ZXJDaGFyYWN0ZXJp
c3RpY3NPZkFsbEF2YWlsYWJsZVBvaW50aW5nRGV2aWNlcygpIGNvbnN0IGZpbmFsIHsgcmV0dXJu
IFdlYkNvcmU6OlBvaW50ZXJDaGFyYWN0ZXJpc3RpY3M6OkNvYXJzZTsgfQorCiAgICAgdm9pZCBz
ZXRDdXJzb3IoY29uc3QgV2ViQ29yZTo6Q3Vyc29yJikgZmluYWwgeyB9CiAgICAgdm9pZCBzZXRD
dXJzb3JIaWRkZW5VbnRpbE1vdXNlTW92ZXMoYm9vbCkgZmluYWwgeyB9CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5o
IGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50
LmgKaW5kZXggZGNkZjJjMjhkN2RlNTU3ZTVkYTI3OWE4YTlkMmQ4OGUzZDRmODk5Ni4uZGZiMmEz
MWVhMmUzZTQ1YmY3OGNiYzBmY2JlOTRkMDIxY2RiY2Y1YSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKKysrIGIvU291
cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKQEAg
LTE1OCw2ICsxNTgsOSBAQCBwcml2YXRlOgogCiAgICAgV2ViQ29yZTo6S2V5Ym9hcmRVSU1vZGUg
a2V5Ym9hcmRVSU1vZGUoKSBmaW5hbDsKIAorICAgIGJvb2wgaG92ZXJTdXBwb3J0ZWRCeUFueUF2
YWlsYWJsZVBvaW50aW5nRGV2aWNlKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1ZTsgfQor
ICAgIE9wdGlvblNldDxXZWJDb3JlOjpQb2ludGVyQ2hhcmFjdGVyaXN0aWNzPiBwb2ludGVyQ2hh
cmFjdGVyaXN0aWNzT2ZBbGxBdmFpbGFibGVQb2ludGluZ0RldmljZXMoKSBjb25zdCBvdmVycmlk
ZSB7IHJldHVybiBXZWJDb3JlOjpQb2ludGVyQ2hhcmFjdGVyaXN0aWNzOjpGaW5lOyB9CisKICAg
ICBOU1Jlc3BvbmRlciAqZmlyc3RSZXNwb25kZXIoKSBmaW5hbDsKICAgICB2b2lkIG1ha2VGaXJz
dFJlc3BvbmRlcihOU1Jlc3BvbmRlciAqKSBmaW5hbDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdExlZ2FjeS93aW4vV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmggYi9Tb3VyY2Uv
V2ViS2l0TGVnYWN5L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaAppbmRleCA3
MGZlZWFjOTYwM2QyMTJjNzgyZjRiMDhhYzg0YTcxZjUyMTA1MDIwLi40YTViYWI2M2JkY2JlYWIw
MTVlMThjMDI0NjMxMDhlMjg0MWViYjNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5
L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0
TGVnYWN5L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaApAQCAtOTQsNiArOTQs
OSBAQCBwdWJsaWM6CiAKICAgICBXZWJDb3JlOjpLZXlib2FyZFVJTW9kZSBrZXlib2FyZFVJTW9k
ZSgpIGZpbmFsOwogCisgICAgYm9vbCBob3ZlclN1cHBvcnRlZEJ5QW55QXZhaWxhYmxlUG9pbnRp
bmdEZXZpY2UoKSBjb25zdCBmaW5hbCB7IHJldHVybiB0cnVlOyB9CisgICAgT3B0aW9uU2V0PFdl
YkNvcmU6OlBvaW50ZXJDaGFyYWN0ZXJpc3RpY3M+IHBvaW50ZXJDaGFyYWN0ZXJpc3RpY3NPZkFs
bEF2YWlsYWJsZVBvaW50aW5nRGV2aWNlcygpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIFdlYkNvcmU6
OlBvaW50ZXJDaGFyYWN0ZXJpc3RpY3M6OkZpbmU7IH0KKwogICAgIHZvaWQgaW52YWxpZGF0ZVJv
b3RWaWV3KGNvbnN0IFdlYkNvcmU6OkludFJlY3QmKSBmaW5hbDsKICAgICB2b2lkIGludmFsaWRh
dGVDb250ZW50c0FuZFJvb3RWaWV3KGNvbnN0IFdlYkNvcmU6OkludFJlY3QmKSBmaW5hbDsKICAg
ICB2b2lkIGludmFsaWRhdGVDb250ZW50c0ZvclNsb3dTY3JvbGwoY29uc3QgV2ViQ29yZTo6SW50
UmVjdCYpIGZpbmFsOwpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdl
TG9nCmluZGV4IDU4NTViOGUwZTRkZDBkNWFlMmExODg0YmRmYmY1YjdkYzFjN2YyODcuLmVkOGI4
MGM0NDdlMjQyMjIyYzM1YmFlM2Y4ZmEzNjU2MzdhZDA4M2IgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0No
YW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOSBAQAorMjAyMC0xMC0w
NSAgRGV2aW4gUm91c3NvICA8ZHJvdXNzb0BhcHBsZS5jb20+CisKKyAgICAgICAgQ1NTIGhvdmVy
IGFuZCAicG9pbnRlcjogZmluZSIgbWVkaWEgcXVlcmllcyBkbyBub3QgZXZhbHVhdGUgdG8gdHJ1
ZSB3aXRoIGlPUyAxMy40IG1vdXNlIHN1cHBvcnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTIwOTI5MgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNjA2
NjMxMjQ+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
KiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL2lPU01vdXNlU3VwcG9ydC5tbToKKyAg
ICAgICAgKGV2YWx1YXRlTWVkaWFRdWVyeSk6IEFkZGVkLgorICAgICAgICAoaU9TTW91c2VTdXBw
b3J0Lk1vdXNlSW5pdGlhbGx5RGlzY29ubmVjdGVkKTogQWRkZWQuCisgICAgICAgIChpT1NNb3Vz
ZVN1cHBvcnQuTW91c2VJbml0aWFsbHlDb25uZWN0ZWQpOiBBZGRlZC4KKyAgICAgICAgKGlPU01v
dXNlU3VwcG9ydC5Nb3VzZUxhdGVyRGlzY29ubmVjdGVkKTogQWRkZWQuCisgICAgICAgIChpT1NN
b3VzZVN1cHBvcnQuTW91c2VMYXRlckNvbm5lY3RlZCk6IEFkZGVkLgorICAgICAgICAoaU9TTW91
c2VTdXBwb3J0Lk1vdXNlQWx3YXlzQ29ubmVjdGVkKTogQWRkZWQuCisKIDIwMjAtMTAtMDUgIEVy
aWMgQ2FybHNvbiAgPGVyaWMuY2FybHNvbkBhcHBsZS5jb20+CiAKICAgICAgICAgRGlzYWJsZSBt
ZWRpYSBjYXB0dXJlIGlmIGFuIGFwcCdzIGVudGl0bGVtZW50cyB3b24ndCBhbGxvdyBhY2Nlc3Mg
dG8gY2FwdHVyZSBkZXZpY2VzCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYktpdENvY29hL2lPU01vdXNlU3VwcG9ydC5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViS2l0Q29jb2EvaU9TTW91c2VTdXBwb3J0Lm1tCmluZGV4IGMyNDMwYjIwZWY3NzZhZWEx
MzA5ZTkzMzhkNmUyZWEwY2Y1MGFhMTYuLjYzNWI0MDUzNzNhMGMzYWQwYWI4M2M2NzYxZGViYTNi
NGJmOGJjYjggMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29j
b2EvaU9TTW91c2VTdXBwb3J0Lm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
S2l0Q29jb2EvaU9TTW91c2VTdXBwb3J0Lm1tCkBAIC0zMDAsNCArMzAwLDE5MiBAQCBURVNUKGlP
U01vdXNlU3VwcG9ydCwgV2Vic2l0ZU1vdXNlRXZlbnRQb2xpY2llcykKIAogI2VuZGlmIC8vIEVO
QUJMRShJT1NfVE9VQ0hfRVZFTlRTKQogCisjaWYgSEFWRShVSUtJVF9XSVRIX01PVVNFX1NVUFBP
UlQpCisKK3N0YXRpYyBCT09MIGV2YWx1YXRlTWVkaWFRdWVyeShSZXRhaW5QdHI8VGVzdFdLV2Vi
Vmlldz4mIHdlYlZpZXcsIE5TU3RyaW5nICpxdWVyeSkKK3sKKyAgICByZXR1cm4gW1t3ZWJWaWV3
IG9iamVjdEJ5RXZhbHVhdGluZ0phdmFTY3JpcHQ6W05TU3RyaW5nIHN0cmluZ1dpdGhGb3JtYXQ6
QCJ3aW5kb3cubWF0Y2hNZWRpYShcIiglQClcIikubWF0Y2hlcyIsIHF1ZXJ5XV0gYm9vbFZhbHVl
XTsKK30KKworI2lmIFBMQVRGT1JNKElPUykKKworQGludGVyZmFjZSBXS01vdXNlRGV2aWNlT2Jz
ZXJ2ZXIKKysgKFdLTW91c2VEZXZpY2VPYnNlcnZlciAqKXNoYXJlZEluc3RhbmNlOworLSAodm9p
ZClzdGFydDsKKy0gKHZvaWQpX3NldEhhc01vdXNlRGV2aWNlRm9yVGVzdGluZzooQk9PTCloYXNN
b3VzZURldmljZTsKK0BlbmQKKworVEVTVChpT1NNb3VzZVN1cHBvcnQsIE1vdXNlSW5pdGlhbGx5
RGlzY29ubmVjdGVkKQoreworICAgIFdLTW91c2VEZXZpY2VPYnNlcnZlciAqbW91c2VEZXZpY2VP
YnNlcnZlciA9IFtOU0NsYXNzRnJvbVN0cmluZyhAIldLTW91c2VEZXZpY2VPYnNlcnZlciIpIHNo
YXJlZEluc3RhbmNlXTsKKyAgICBbbW91c2VEZXZpY2VPYnNlcnZlciBzdGFydF07CisgICAgW21v
dXNlRGV2aWNlT2JzZXJ2ZXIgX3NldEhhc01vdXNlRGV2aWNlRm9yVGVzdGluZzpOT107CisKKyAg
ICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhG
cmFtZTpOU01ha2VSZWN0KDAsIDAsIDgwMCwgNjAwKV0pOworCisgICAgW3dlYlZpZXcgc3luY2hy
b25vdXNseUxvYWRIVE1MU3RyaW5nOkAiIl07CisKKyNpZiBFTkFCTEUoVE9VQ0hfRVZFTlRTKQor
ICAgIEVYUEVDVF9GQUxTRShldmFsdWF0ZU1lZGlhUXVlcnkod2ViVmlldywgQCJob3ZlciIpKTsK
KyAgICBFWFBFQ1RfVFJVRShldmFsdWF0ZU1lZGlhUXVlcnkod2ViVmlldywgQCJob3Zlcjogbm9u
ZSIpKTsKKyAgICBFWFBFQ1RfRkFMU0UoZXZhbHVhdGVNZWRpYVF1ZXJ5KHdlYlZpZXcsIEAiaG92
ZXI6IGhvdmVyIikpOworI2VuZGlmCisKKyAgICBFWFBFQ1RfRkFMU0UoZXZhbHVhdGVNZWRpYVF1
ZXJ5KHdlYlZpZXcsIEAiYW55LWhvdmVyIikpOworICAgIEVYUEVDVF9UUlVFKGV2YWx1YXRlTWVk
aWFRdWVyeSh3ZWJWaWV3LCBAImFueS1ob3Zlcjogbm9uZSIpKTsKKyAgICBFWFBFQ1RfRkFMU0Uo
ZXZhbHVhdGVNZWRpYVF1ZXJ5KHdlYlZpZXcsIEAiYW55LWhvdmVyOiBob3ZlciIpKTsKKworI2lm
IEVOQUJMRShUT1VDSF9FVkVOVFMpCisgICAgRVhQRUNUX1RSVUUoZXZhbHVhdGVNZWRpYVF1ZXJ5
KHdlYlZpZXcsIEAicG9pbnRlciIpKTsKKyAgICBFWFBFQ1RfRkFMU0UoZXZhbHVhdGVNZWRpYVF1
ZXJ5KHdlYlZpZXcsIEAicG9pbnRlcjogbm9uZSIpKTsKKyAgICBFWFBFQ1RfVFJVRShldmFsdWF0
ZU1lZGlhUXVlcnkod2ViVmlldywgQCJwb2ludGVyOiBjb2Fyc2UiKSk7CisgICAgRVhQRUNUX0ZB
TFNFKGV2YWx1YXRlTWVkaWFRdWVyeSh3ZWJWaWV3LCBAInBvaW50ZXI6IGZpbmUiKSk7CisjZW5k
aWYKKworICAgIEVYUEVDVF9UUlVFKGV2YWx1YXRlTWVkaWFRdWVyeSh3ZWJWaWV3LCBAImFueS1w
b2ludGVyIikpOworICAgIEVYUEVDVF9GQUxTRShldmFsdWF0ZU1lZGlhUXVlcnkod2ViVmlldywg
QCJhbnktcG9pbnRlcjogbm9uZSIpKTsKKyAgICBFWFBFQ1RfVFJVRShldmFsdWF0ZU1lZGlhUXVl
cnkod2ViVmlldywgQCJhbnktcG9pbnRlcjogY29hcnNlIikpOworICAgIEVYUEVDVF9GQUxTRShl
dmFsdWF0ZU1lZGlhUXVlcnkod2ViVmlldywgQCJhbnktcG9pbnRlcjogZmluZSIpKTsKK30KKwor
VEVTVChpT1NNb3VzZVN1cHBvcnQsIE1vdXNlSW5pdGlhbGx5Q29ubmVjdGVkKQoreworICAgIFdL
TW91c2VEZXZpY2VPYnNlcnZlciAqbW91c2VEZXZpY2VPYnNlcnZlciA9IFtOU0NsYXNzRnJvbVN0
cmluZyhAIldLTW91c2VEZXZpY2VPYnNlcnZlciIpIHNoYXJlZEluc3RhbmNlXTsKKyAgICBbbW91
c2VEZXZpY2VPYnNlcnZlciBzdGFydF07CisgICAgW21vdXNlRGV2aWNlT2JzZXJ2ZXIgX3NldEhh
c01vdXNlRGV2aWNlRm9yVGVzdGluZzpZRVNdOworCisgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHRO
UyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6TlNNYWtlUmVjdCgwLCAwLCA4
MDAsIDYwMCldKTsKKworICAgIFt3ZWJWaWV3IHN5bmNocm9ub3VzbHlMb2FkSFRNTFN0cmluZzpA
IiJdOworCisjaWYgRU5BQkxFKFRPVUNIX0VWRU5UUykKKyAgICBFWFBFQ1RfRkFMU0UoZXZhbHVh
dGVNZWRpYVF1ZXJ5KHdlYlZpZXcsIEAiaG92ZXIiKSk7CisgICAgRVhQRUNUX1RSVUUoZXZhbHVh
dGVNZWRpYVF1ZXJ5KHdlYlZpZXcsIEAiaG92ZXI6IG5vbmUiKSk7CisgICAgRVhQRUNUX0ZBTFNF
KGV2YWx1YXRlTWVkaWFRdWVyeSh3ZWJWaWV3LCBAImhvdmVyOiBob3ZlciIpKTsKKyNlbmRpZgor
CisgICAgRVhQRUNUX1RSVUUoZXZhbHVhdGVNZWRpYVF1ZXJ5KHdlYlZpZXcsIEAiYW55LWhvdmVy
IikpOworICAgIEVYUEVDVF9GQUxTRShldmFsdWF0ZU1lZGlhUXVlcnkod2ViVmlldywgQCJhbnkt
aG92ZXI6IG5vbmUiKSk7CisgICAgRVhQRUNUX1RSVUUoZXZhbHVhdGVNZWRpYVF1ZXJ5KHdlYlZp
ZXcsIEAiYW55LWhvdmVyOiBob3ZlciIpKTsKKworI2lmIEVOQUJMRShUT1VDSF9FVkVOVFMpCisg
ICAgRVhQRUNUX1RSVUUoZXZhbHVhdGVNZWRpYVF1ZXJ5KHdlYlZpZXcsIEAicG9pbnRlciIpKTsK
KyAgICBFWFBFQ1RfRkFMU0UoZXZhbHVhdGVNZWRpYVF1ZXJ5KHdlYlZpZXcsIEAicG9pbnRlcjog
bm9uZSIpKTsKKyAgICBFWFBFQ1RfVFJVRShldmFsdWF0ZU1lZGlhUXVlcnkod2ViVmlldywgQCJw
b2ludGVyOiBjb2Fyc2UiKSk7CisgICAgRVhQRUNUX0ZBTFNFKGV2YWx1YXRlTWVkaWFRdWVyeSh3
ZWJWaWV3LCBAInBvaW50ZXI6IGZpbmUiKSk7CisjZW5kaWYKKworICAgIEVYUEVDVF9UUlVFKGV2
YWx1YXRlTWVkaWFRdWVyeSh3ZWJWaWV3LCBAImFueS1wb2ludGVyIikpOworICAgIEVYUEVDVF9G
QUxTRShldmFsdWF0ZU1lZGlhUXVlcnkod2ViVmlldywgQCJhbnktcG9pbnRlcjogbm9uZSIpKTsK
KyAgICBFWFBFQ1RfVFJVRShldmFsdWF0ZU1lZGlhUXVlcnkod2ViVmlldywgQCJhbnktcG9pbnRl
cjogY29hcnNlIikpOworICAgIEVYUEVDVF9UUlVFKGV2YWx1YXRlTWVkaWFRdWVyeSh3ZWJWaWV3
LCBAImFueS1wb2ludGVyOiBmaW5lIikpOworfQorCitURVNUKGlPU01vdXNlU3VwcG9ydCwgTW91
c2VMYXRlckRpc2Nvbm5lY3RlZCkKK3sKKyAgICBXS01vdXNlRGV2aWNlT2JzZXJ2ZXIgKm1vdXNl
RGV2aWNlT2JzZXJ2ZXIgPSBbTlNDbGFzc0Zyb21TdHJpbmcoQCJXS01vdXNlRGV2aWNlT2JzZXJ2
ZXIiKSBzaGFyZWRJbnN0YW5jZV07CisgICAgW21vdXNlRGV2aWNlT2JzZXJ2ZXIgc3RhcnRdOwor
ICAgIFttb3VzZURldmljZU9ic2VydmVyIF9zZXRIYXNNb3VzZURldmljZUZvclRlc3Rpbmc6WUVT
XTsKKworICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBp
bml0V2l0aEZyYW1lOk5TTWFrZVJlY3QoMCwgMCwgODAwLCA2MDApXSk7CisKKyAgICBbd2ViVmll
dyBzeW5jaHJvbm91c2x5TG9hZEhUTUxTdHJpbmc6QCIiXTsKKworICAgIFttb3VzZURldmljZU9i
c2VydmVyIF9zZXRIYXNNb3VzZURldmljZUZvclRlc3Rpbmc6Tk9dOworCisjaWYgRU5BQkxFKFRP
VUNIX0VWRU5UUykKKyAgICBFWFBFQ1RfRkFMU0UoZXZhbHVhdGVNZWRpYVF1ZXJ5KHdlYlZpZXcs
IEAiaG92ZXIiKSk7CisgICAgRVhQRUNUX1RSVUUoZXZhbHVhdGVNZWRpYVF1ZXJ5KHdlYlZpZXcs
IEAiaG92ZXI6IG5vbmUiKSk7CisgICAgRVhQRUNUX0ZBTFNFKGV2YWx1YXRlTWVkaWFRdWVyeSh3
ZWJWaWV3LCBAImhvdmVyOiBob3ZlciIpKTsKKyNlbmRpZgorCisgICAgRVhQRUNUX0ZBTFNFKGV2
YWx1YXRlTWVkaWFRdWVyeSh3ZWJWaWV3LCBAImFueS1ob3ZlciIpKTsKKyAgICBFWFBFQ1RfVFJV
RShldmFsdWF0ZU1lZGlhUXVlcnkod2ViVmlldywgQCJhbnktaG92ZXI6IG5vbmUiKSk7CisgICAg
RVhQRUNUX0ZBTFNFKGV2YWx1YXRlTWVkaWFRdWVyeSh3ZWJWaWV3LCBAImFueS1ob3ZlcjogaG92
ZXIiKSk7CisKKyNpZiBFTkFCTEUoVE9VQ0hfRVZFTlRTKQorICAgIEVYUEVDVF9UUlVFKGV2YWx1
YXRlTWVkaWFRdWVyeSh3ZWJWaWV3LCBAInBvaW50ZXIiKSk7CisgICAgRVhQRUNUX0ZBTFNFKGV2
YWx1YXRlTWVkaWFRdWVyeSh3ZWJWaWV3LCBAInBvaW50ZXI6IG5vbmUiKSk7CisgICAgRVhQRUNU
X1RSVUUoZXZhbHVhdGVNZWRpYVF1ZXJ5KHdlYlZpZXcsIEAicG9pbnRlcjogY29hcnNlIikpOwor
ICAgIEVYUEVDVF9GQUxTRShldmFsdWF0ZU1lZGlhUXVlcnkod2ViVmlldywgQCJwb2ludGVyOiBm
aW5lIikpOworI2VuZGlmCisKKyAgICBFWFBFQ1RfVFJVRShldmFsdWF0ZU1lZGlhUXVlcnkod2Vi
VmlldywgQCJhbnktcG9pbnRlciIpKTsKKyAgICBFWFBFQ1RfRkFMU0UoZXZhbHVhdGVNZWRpYVF1
ZXJ5KHdlYlZpZXcsIEAiYW55LXBvaW50ZXI6IG5vbmUiKSk7CisgICAgRVhQRUNUX1RSVUUoZXZh
bHVhdGVNZWRpYVF1ZXJ5KHdlYlZpZXcsIEAiYW55LXBvaW50ZXI6IGNvYXJzZSIpKTsKKyAgICBF
WFBFQ1RfRkFMU0UoZXZhbHVhdGVNZWRpYVF1ZXJ5KHdlYlZpZXcsIEAiYW55LXBvaW50ZXI6IGZp
bmUiKSk7Cit9CisKK1RFU1QoaU9TTW91c2VTdXBwb3J0LCBNb3VzZUxhdGVyQ29ubmVjdGVkKQor
eworICAgIFdLTW91c2VEZXZpY2VPYnNlcnZlciAqbW91c2VEZXZpY2VPYnNlcnZlciA9IFtOU0Ns
YXNzRnJvbVN0cmluZyhAIldLTW91c2VEZXZpY2VPYnNlcnZlciIpIHNoYXJlZEluc3RhbmNlXTsK
KyAgICBbbW91c2VEZXZpY2VPYnNlcnZlciBzdGFydF07CisgICAgW21vdXNlRGV2aWNlT2JzZXJ2
ZXIgX3NldEhhc01vdXNlRGV2aWNlRm9yVGVzdGluZzpOT107CisKKyAgICBhdXRvIHdlYlZpZXcg
PSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU01ha2VSZWN0
KDAsIDAsIDgwMCwgNjAwKV0pOworCisgICAgW3dlYlZpZXcgc3luY2hyb25vdXNseUxvYWRIVE1M
U3RyaW5nOkAiIl07CisKKyAgICBbbW91c2VEZXZpY2VPYnNlcnZlciBfc2V0SGFzTW91c2VEZXZp
Y2VGb3JUZXN0aW5nOllFU107CisKKyNpZiBFTkFCTEUoVE9VQ0hfRVZFTlRTKQorICAgIEVYUEVD
VF9GQUxTRShldmFsdWF0ZU1lZGlhUXVlcnkod2ViVmlldywgQCJob3ZlciIpKTsKKyAgICBFWFBF
Q1RfVFJVRShldmFsdWF0ZU1lZGlhUXVlcnkod2ViVmlldywgQCJob3Zlcjogbm9uZSIpKTsKKyAg
ICBFWFBFQ1RfRkFMU0UoZXZhbHVhdGVNZWRpYVF1ZXJ5KHdlYlZpZXcsIEAiaG92ZXI6IGhvdmVy
IikpOworI2VuZGlmCisKKyAgICBFWFBFQ1RfVFJVRShldmFsdWF0ZU1lZGlhUXVlcnkod2ViVmll
dywgQCJhbnktaG92ZXIiKSk7CisgICAgRVhQRUNUX0ZBTFNFKGV2YWx1YXRlTWVkaWFRdWVyeSh3
ZWJWaWV3LCBAImFueS1ob3Zlcjogbm9uZSIpKTsKKyAgICBFWFBFQ1RfVFJVRShldmFsdWF0ZU1l
ZGlhUXVlcnkod2ViVmlldywgQCJhbnktaG92ZXI6IGhvdmVyIikpOworCisjaWYgRU5BQkxFKFRP
VUNIX0VWRU5UUykKKyAgICBFWFBFQ1RfVFJVRShldmFsdWF0ZU1lZGlhUXVlcnkod2ViVmlldywg
QCJwb2ludGVyIikpOworICAgIEVYUEVDVF9GQUxTRShldmFsdWF0ZU1lZGlhUXVlcnkod2ViVmll
dywgQCJwb2ludGVyOiBub25lIikpOworICAgIEVYUEVDVF9UUlVFKGV2YWx1YXRlTWVkaWFRdWVy
eSh3ZWJWaWV3LCBAInBvaW50ZXI6IGNvYXJzZSIpKTsKKyAgICBFWFBFQ1RfRkFMU0UoZXZhbHVh
dGVNZWRpYVF1ZXJ5KHdlYlZpZXcsIEAicG9pbnRlcjogZmluZSIpKTsKKyNlbmRpZgorCisgICAg
RVhQRUNUX1RSVUUoZXZhbHVhdGVNZWRpYVF1ZXJ5KHdlYlZpZXcsIEAiYW55LXBvaW50ZXIiKSk7
CisgICAgRVhQRUNUX0ZBTFNFKGV2YWx1YXRlTWVkaWFRdWVyeSh3ZWJWaWV3LCBAImFueS1wb2lu
dGVyOiBub25lIikpOworICAgIEVYUEVDVF9UUlVFKGV2YWx1YXRlTWVkaWFRdWVyeSh3ZWJWaWV3
LCBAImFueS1wb2ludGVyOiBjb2Fyc2UiKSk7CisgICAgRVhQRUNUX1RSVUUoZXZhbHVhdGVNZWRp
YVF1ZXJ5KHdlYlZpZXcsIEAiYW55LXBvaW50ZXI6IGZpbmUiKSk7Cit9CisKKyNlbmRpZiAvLyBQ
TEFURk9STShJT1MpCisKKyNpZiBQTEFURk9STShNQUNDQVRBTFlTVCkKKworVEVTVChpT1NNb3Vz
ZVN1cHBvcnQsIE1vdXNlQWx3YXlzQ29ubmVjdGVkKQoreworICAgIGF1dG8gd2ViVmlldyA9IGFk
b3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5TTWFrZVJlY3QoMCwg
MCwgODAwLCA2MDApXSk7CisKKyAgICBbd2ViVmlldyBzeW5jaHJvbm91c2x5TG9hZEhUTUxTdHJp
bmc6QCIiXTsKKworI2lmIEVOQUJMRShUT1VDSF9FVkVOVFMpCisgICAgRVhQRUNUX0ZBTFNFKGV2
YWx1YXRlTWVkaWFRdWVyeSh3ZWJWaWV3LCBAImhvdmVyIikpOworICAgIEVYUEVDVF9UUlVFKGV2
YWx1YXRlTWVkaWFRdWVyeSh3ZWJWaWV3LCBAImhvdmVyOiBub25lIikpOworICAgIEVYUEVDVF9G
QUxTRShldmFsdWF0ZU1lZGlhUXVlcnkod2ViVmlldywgQCJob3ZlcjogaG92ZXIiKSk7CisjZW5k
aWYKKworICAgIEVYUEVDVF9UUlVFKGV2YWx1YXRlTWVkaWFRdWVyeSh3ZWJWaWV3LCBAImFueS1o
b3ZlciIpKTsKKyAgICBFWFBFQ1RfRkFMU0UoZXZhbHVhdGVNZWRpYVF1ZXJ5KHdlYlZpZXcsIEAi
YW55LWhvdmVyOiBub25lIikpOworICAgIEVYUEVDVF9UUlVFKGV2YWx1YXRlTWVkaWFRdWVyeSh3
ZWJWaWV3LCBAImFueS1ob3ZlcjogaG92ZXIiKSk7CisKKyNpZiBFTkFCTEUoVE9VQ0hfRVZFTlRT
KQorICAgIEVYUEVDVF9UUlVFKGV2YWx1YXRlTWVkaWFRdWVyeSh3ZWJWaWV3LCBAInBvaW50ZXIi
KSk7CisgICAgRVhQRUNUX0ZBTFNFKGV2YWx1YXRlTWVkaWFRdWVyeSh3ZWJWaWV3LCBAInBvaW50
ZXI6IG5vbmUiKSk7CisgICAgRVhQRUNUX1RSVUUoZXZhbHVhdGVNZWRpYVF1ZXJ5KHdlYlZpZXcs
IEAicG9pbnRlcjogY29hcnNlIikpOworICAgIEVYUEVDVF9GQUxTRShldmFsdWF0ZU1lZGlhUXVl
cnkod2ViVmlldywgQCJwb2ludGVyOiBmaW5lIikpOworI2VuZGlmCisKKyAgICBFWFBFQ1RfVFJV
RShldmFsdWF0ZU1lZGlhUXVlcnkod2ViVmlldywgQCJhbnktcG9pbnRlciIpKTsKKyAgICBFWFBF
Q1RfRkFMU0UoZXZhbHVhdGVNZWRpYVF1ZXJ5KHdlYlZpZXcsIEAiYW55LXBvaW50ZXI6IG5vbmUi
KSk7CisgICAgRVhQRUNUX1RSVUUoZXZhbHVhdGVNZWRpYVF1ZXJ5KHdlYlZpZXcsIEAiYW55LXBv
aW50ZXI6IGNvYXJzZSIpKTsKKyAgICBFWFBFQ1RfVFJVRShldmFsdWF0ZU1lZGlhUXVlcnkod2Vi
VmlldywgQCJhbnktcG9pbnRlcjogZmluZSIpKTsKK30KKworI2VuZGlmIC8vIFBMQVRGT1JNKE1B
Q0NBVEFMWVNUKQorCisjZW5kaWYgLy8gSEFWRShVSUtJVF9XSVRIX01PVVNFX1NVUFBPUlQpCisK
ICNlbmRpZiAvLyBQTEFURk9STShJT1MpIHx8IFBMQVRGT1JNKE1BQ0NBVEFMWVNUKQpkaWZmIC0t
Z2l0IGEvV2ViS2l0TGlicmFyaWVzL0NoYW5nZUxvZyBiL1dlYktpdExpYnJhcmllcy9DaGFuZ2VM
b2cKaW5kZXggZGU3MmNmMGY0NDAwMzE1Y2U1NWJmYWFkMTdlYTgyNDIyN2I1YjM4OC4uMDAwNjY4
ZmM5Yjc1ZWMxMzgwZTM0MjUwZjUzYzQ3NzQwOWQ1NGFhMiAxMDA2NDQKLS0tIGEvV2ViS2l0TGli
cmFyaWVzL0NoYW5nZUxvZworKysgYi9XZWJLaXRMaWJyYXJpZXMvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMTUgQEAKKzIwMjAtMTAtMDUgIERldmluIFJvdXNzbyAgPGRyb3Vzc29AYXBwbGUuY29tPgor
CisgICAgICAgIENTUyBob3ZlciBhbmQgInBvaW50ZXI6IGZpbmUiIG1lZGlhIHF1ZXJpZXMgZG8g
bm90IGV2YWx1YXRlIHRvIHRydWUgd2l0aCBpT1MgMTMuNCBtb3VzZSBzdXBwb3J0CisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDkyOTIKKyAgICAgICAg
PHJkYXI6Ly9wcm9ibGVtLzYwNjYzMTI0PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgICogV2ViS2l0UHJpdmF0ZUZyYW1ld29ya1N0dWJzL2lPUy8xMy9C
YWNrQm9hcmRTZXJ2aWNlcy5mcmFtZXdvcmsvQmFja0JvYXJkU2VydmljZXMudGJkOiBBZGRlZC4K
KyAgICAgICAgKiBXZWJLaXRQcml2YXRlRnJhbWV3b3JrU3R1YnMvaU9TLzE0L0JhY2tCb2FyZFNl
cnZpY2VzLmZyYW1ld29yay9CYWNrQm9hcmRTZXJ2aWNlcy50YmQ6IEFkZGVkLgorICAgICAgICBV
c2UgYEJhY2tCb2FyZFNlcnZpY2VzYCB0byBsaXN0ZW4gZm9yIG1vdXNlIGRldmljZXMgY2hhbmdl
cy4KKwogMjAyMC0xMC0wNCAgUnlhbiBIb3N0ZXRsZXIgIDxyaG9zdEBhcHBsZS5jb20+CiAKICAg
ICAgICAgU3VibWlzc2lvbiBmYWlsdXJlIHdpdGggIm1ha2U6ICoqKiBObyBydWxlIHRvIG1ha2Ug
dGFyZ2V0IGBpbnN0YWxsc3JjJy4gU3RvcCIKZGlmZiAtLWdpdCBhL1dlYktpdExpYnJhcmllcy9X
ZWJLaXRQcml2YXRlRnJhbWV3b3JrU3R1YnMvaU9TLzEzL0JhY2tCb2FyZFNlcnZpY2VzLmZyYW1l
d29yay9CYWNrQm9hcmRTZXJ2aWNlcy50YmQgYi9XZWJLaXRMaWJyYXJpZXMvV2ViS2l0UHJpdmF0
ZUZyYW1ld29ya1N0dWJzL2lPUy8xMy9CYWNrQm9hcmRTZXJ2aWNlcy5mcmFtZXdvcmsvQmFja0Jv
YXJkU2VydmljZXMudGJkCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjAwMjM0OGJkM2VlMGUxMzNhM2Q5NThmYmRlYzU3
ZmY3ZmRiM2I3ZjcKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJLaXRMaWJyYXJpZXMvV2ViS2l0UHJp
dmF0ZUZyYW1ld29ya1N0dWJzL2lPUy8xMy9CYWNrQm9hcmRTZXJ2aWNlcy5mcmFtZXdvcmsvQmFj
a0JvYXJkU2VydmljZXMudGJkCkBAIC0wLDAgKzEsOSBAQAorLS0tICF0YXBpLXRiZC12MworYXJj
aHM6ICAgICAgICAgICBbIHg4Nl82NCwgYXJtNjQsIGFybTY0ZSBdCitpbnN0YWxsLW5hbWU6ICAg
ICcvU3lzdGVtL0xpYnJhcnkvUHJpdmF0ZUZyYW1ld29ya3MvQmFja0JvYXJkU2VydmljZXMuZnJh
bWV3b3JrL0JhY2tCb2FyZFNlcnZpY2VzJworb2JqYy1jb25zdHJhaW50OiBub25lCitwbGF0Zm9y
bTogaW9zCitleHBvcnRzOgorICAtIGFyY2hzOiAgICAgICAgICAgWyB4ODZfNjQsIGFybTY0LCBh
cm02NGUgXQorICAgIG9iamMtY2xhc3NlczogICAgWyBCS1NNb3VzZVBvaW50ZXJEZXZpY2UsIEJL
U01vdXNlUG9pbnRlclNlcnZpY2UgXQorLi4uCmRpZmYgLS1naXQgYS9XZWJLaXRMaWJyYXJpZXMv
V2ViS2l0UHJpdmF0ZUZyYW1ld29ya1N0dWJzL2lPUy8xNC9CYWNrQm9hcmRTZXJ2aWNlcy5mcmFt
ZXdvcmsvQmFja0JvYXJkU2VydmljZXMudGJkIGIvV2ViS2l0TGlicmFyaWVzL1dlYktpdFByaXZh
dGVGcmFtZXdvcmtTdHVicy9pT1MvMTQvQmFja0JvYXJkU2VydmljZXMuZnJhbWV3b3JrL0JhY2tC
b2FyZFNlcnZpY2VzLnRiZApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wMDIzNDhiZDNlZTBlMTMzYTNkOTU4ZmJkZWM1
N2ZmN2ZkYjNiN2Y3Ci0tLSAvZGV2L251bGwKKysrIGIvV2ViS2l0TGlicmFyaWVzL1dlYktpdFBy
aXZhdGVGcmFtZXdvcmtTdHVicy9pT1MvMTQvQmFja0JvYXJkU2VydmljZXMuZnJhbWV3b3JrL0Jh
Y2tCb2FyZFNlcnZpY2VzLnRiZApAQCAtMCwwICsxLDkgQEAKKy0tLSAhdGFwaS10YmQtdjMKK2Fy
Y2hzOiAgICAgICAgICAgWyB4ODZfNjQsIGFybTY0LCBhcm02NGUgXQoraW5zdGFsbC1uYW1lOiAg
ICAnL1N5c3RlbS9MaWJyYXJ5L1ByaXZhdGVGcmFtZXdvcmtzL0JhY2tCb2FyZFNlcnZpY2VzLmZy
YW1ld29yay9CYWNrQm9hcmRTZXJ2aWNlcycKK29iamMtY29uc3RyYWludDogbm9uZQorcGxhdGZv
cm06IGlvcworZXhwb3J0czoKKyAgLSBhcmNoczogICAgICAgICAgIFsgeDg2XzY0LCBhcm02NCwg
YXJtNjRlIF0KKyAgICBvYmpjLWNsYXNzZXM6ICAgIFsgQktTTW91c2VQb2ludGVyRGV2aWNlLCBC
S1NNb3VzZVBvaW50ZXJTZXJ2aWNlIF0KKy4uLgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>410658</attachid>
            <date>2020-10-06 10:44:46 -0700</date>
            <delta_ts>2020-10-06 12:02:05 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-209292-20201006104445.patch</filename>
            <type>text/plain</type>
            <size>77138</size>
            <attacher name="Devin Rousso">hi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCAxNjdkZTRmMGJmYjdlOThjYjJlNmU1YmNlNGM3NmM1ZTk5MWQ0OTk5Li42
YmZkMTYyM2JkMmZhZTZiOGQ4NTQ2MDQ5MjQ5Y2VkZDYzYzI4ZTYzIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsNDAgQEAKKzIwMjAtMTAtMDUgIERldmluIFJvdXNzbyAgPGRyb3Vzc29AYXBwbGUuY29t
PgorCisgICAgICAgIENTUyBob3ZlciBhbmQgInBvaW50ZXI6IGZpbmUiIG1lZGlhIHF1ZXJpZXMg
ZG8gbm90IGV2YWx1YXRlIHRvIHRydWUgd2l0aCBpT1MgMTMuNCBtb3VzZSBzdXBwb3J0CisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDkyOTIKKyAgICAg
ICAgPHJkYXI6Ly9wcm9ibGVtLzYwNjYzMTI0PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIE9uIGlPUywgdGhlIHByaW1hcnkgcG9pbnRlciB3aWxsIGFs
d2F5cyBiZSB0b3VjaCBpbnB1dCwgc28gdGhlIGBob3ZlcmAvYHBvaW50ZXJgIG1lZGlhIHF1ZXJ5
CisgICAgICAgIHNob3VsZCBuZXZlciBjaGFuZ2UuIElmIGEgbW91c2UgaXMgY29ubmVjdGVkLCBo
b3dldmVyLCBgYW55LWhvdmVyYC9gYW55LXBvaW50ZXJgIHNob3VsZAorICAgICAgICBjaGFuZ2Ug
YXMgbm93IHRoZXJlIGlzIGF0IGxlYXN0IG9uZSBkZXZpY2UgdGhhdCBzdXBwb3J0cyBgaG92ZXJg
L2BmaW5lYC4gTm90ZSB0aGF0IGluIHRoZQorICAgICAgICBjYXNlIG9mIGBhbnktcG9pbnRlcmAg
dGhpcyBtZWFucyB0aGF0IGJvdGggYGNvYXJzZWAgYW5kIGBmaW5lYCB3aWxsIGFwcGx5LiBDYXRh
bHlzdCBhc3N1bWVzCisgICAgICAgIHRoYXQgdGhlcmUgaXMgYWx3YXlzIGEgbW91c2UgY29ubmVj
dGVkLgorCisgICAgICAgIFNwZWM6IGh0dHBzOi8vZHJhZnRzLmNzc3dnLm9yZy9tZWRpYXF1ZXJp
ZXMtNC8jYW55LWlucHV0CisKKyAgICAgICAgKiBjc3MvTWVkaWFRdWVyeUV2YWx1YXRvci5jcHA6
CisgICAgICAgIChXZWJDb3JlOjphbnlIb3ZlckV2YWx1YXRlKToKKyAgICAgICAgKFdlYkNvcmU6
OmFueVBvaW50ZXJFdmFsdWF0ZSk6CisKKyAgICAgICAgKiBwYWdlL0Nocm9tZUNsaWVudC5oOgor
ICAgICAgICAqIGxvYWRlci9FbXB0eUNsaWVudHMuaDoKKyAgICAgICAgKFdlYkNvcmU6OkVtcHR5
Q2hyb21lQ2xpZW50Ojpob3ZlclN1cHBvcnRlZEJ5QW55QXZhaWxhYmxlUG9pbnRpbmdEZXZpY2Ug
Y29uc3QpOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkVtcHR5Q2hyb21lQ2xpZW50Ojpwb2lu
dGVyQ2hhcmFjdGVyaXN0aWNzT2ZBbGxBdmFpbGFibGVQb2ludGluZ0RldmljZXMgY29uc3QpOiBB
ZGRlZC4KKyAgICAgICAgUHJvdmlkZSBhIHdheSBmb3IgV2ViQ29yZSB0byBnZXQgdGhlIGN1cnJl
bnQgc3RhdGUgb2Ygd2hldGhlciB0aGVyZSBhcmUgYW55IG1vdXNlIGRldmljZXMuCisgICAgICAg
IFJlZmFjdG9yIGxvZ2ljIGluIGBhbnlIb3ZlckV2YWx1YXRlYCBhbmQgYGFueVBvaW50ZXJFdmFs
dWF0ZWAgdG8gbW92ZSBwbGF0Zm9ybSBjb2RlIGludG8gdGhlCisgICAgICAgIHJlc3BlY3RpdmUg
YFdlYktpdDo6V2ViUGFnZWAgZmlsZS4KKworICAgICAgICAqIHBhZ2UvUG9pbnRlckNoYXJhY3Rl
cmlzdGljcy5oOiBBZGRlZC4KKyAgICAgICAgRW51bSBmb3IgYENvYXJzZWAgYW5kIGBGaW5lYC4K
KworICAgICAgICAqIHBsYXRmb3JtL1BsYXRmb3JtU2NyZWVuLmg6CisgICAgICAgIEV4cG9ydCBh
ZGRpdGlvbmFsIGZ1bmN0aW9ucyBmb3IgdXNlIGluIFdlYktpdC4KKworICAgICAgICAqIEhlYWRl
cnMuY21ha2U6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgor
CiAyMDIwLTEwLTA2ICBMdW1pbmcgWWluICA8bHVtaW5nX3lpbkBhcHBsZS5jb20+CiAKICAgICAg
ICAgW21hY09TXSBCdW1wIHJlcG9ydGVkIGN1cnJlbnQgc2hpcHBpbmcgcmVsZWFzZSBVQSB0byAx
MF8xNV83CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCmluZGV4IDQwMzRlZmMyZWM2MDNmYWI1N2NiYTI4MmJlNDc0NTVlMGIxMjE2
ZDQuLjE4ZTQ0YTc5OWJhMmJiMmZjOGViNDE3ZDM1YWZjYzhiNTQxMzg5NWMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsOTUgQEAKKzIwMjAtMTAtMDUgIERldmluIFJvdXNzbyAgPGRyb3Vzc29AYXBwbGUu
Y29tPgorCisgICAgICAgIENTUyBob3ZlciBhbmQgInBvaW50ZXI6IGZpbmUiIG1lZGlhIHF1ZXJp
ZXMgZG8gbm90IGV2YWx1YXRlIHRvIHRydWUgd2l0aCBpT1MgMTMuNCBtb3VzZSBzdXBwb3J0Cisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDkyOTIKKyAg
ICAgICAgPHJkYXI6Ly9wcm9ibGVtLzYwNjYzMTI0PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIE9uIGlPUywgdGhlIHByaW1hcnkgcG9pbnRlciB3aWxs
IGFsd2F5cyBiZSB0b3VjaCBpbnB1dCwgc28gdGhlIGBob3ZlcmAvYHBvaW50ZXJgIG1lZGlhIHF1
ZXJ5CisgICAgICAgIHNob3VsZCBuZXZlciBjaGFuZ2UuIElmIGEgbW91c2UgaXMgY29ubmVjdGVk
LCBob3dldmVyLCBgYW55LWhvdmVyYC9gYW55LXBvaW50ZXJgIHNob3VsZAorICAgICAgICBjaGFu
Z2UgYXMgbm93IHRoZXJlIGlzIGF0IGxlYXN0IG9uZSBkZXZpY2UgdGhhdCBzdXBwb3J0cyBgaG92
ZXJgL2BmaW5lYC4gTm90ZSB0aGF0IGluIHRoZQorICAgICAgICBjYXNlIG9mIGBhbnktcG9pbnRl
cmAgdGhpcyBtZWFucyB0aGF0IGJvdGggYGNvYXJzZWAgYW5kIGBmaW5lYCB3aWxsIGFwcGx5LiBD
YXRhbHlzdCBhc3N1bWVzCisgICAgICAgIHRoYXQgdGhlcmUgaXMgYWx3YXlzIGEgbW91c2UgY29u
bmVjdGVkLgorCisgICAgICAgIFNwZWM6IGh0dHBzOi8vZHJhZnRzLmNzc3dnLm9yZy9tZWRpYXF1
ZXJpZXMtNC8jYW55LWlucHV0CisKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dLTW91c2VEZXZp
Y2VPYnNlcnZlci5oOiBBZGRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dLTW91c2VEZXZp
Y2VPYnNlcnZlci5tbTogQWRkZWQuCisgICAgICAgICgrW1dLTW91c2VEZXZpY2VPYnNlcnZlciBz
aGFyZWRJbnN0YW5jZV0pOgorICAgICAgICAoLVtXS01vdXNlRGV2aWNlT2JzZXJ2ZXIgZGVhbGxv
Y10pOgorICAgICAgICAoLVtXS01vdXNlRGV2aWNlT2JzZXJ2ZXIgc3RhcnRdKToKKyAgICAgICAg
KC1bV0tNb3VzZURldmljZU9ic2VydmVyIHN0b3BdKToKKyAgICAgICAgKC1bV0tNb3VzZURldmlj
ZU9ic2VydmVyIG1vdXNlUG9pbnRlckRldmljZXNEaWRDaGFuZ2U6XSk6CisgICAgICAgICgtW1dL
TW91c2VEZXZpY2VPYnNlcnZlciBfc2V0SGFzTW91c2VEZXZpY2VGb3JUZXN0aW5nOl0pOgorICAg
ICAgICBVc2UgYEJhY2tCb2FyZFNlcnZpY2VzYCB0byBsaXN0ZW4gZm9yIG1vdXNlIGRldmljZXMg
Y2hhbmdlcyBhbmQgbm90aWZ5IGFsbCBXZWJQcm9jZXNzLgorCisgICAgICAgICogVUlQcm9jZXNz
L1dlYlByb2Nlc3NQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHku
Y3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUHJveHk6OldlYlByb2Nlc3NQcm94eSk6
CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQcm94eTo6cGxhdGZvcm1Jbml0aWFsaXplKTog
QWRkZWQuCisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQcm94eTo6fldlYlByb2Nlc3NQcm94
eSk6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQcm94eTo6cGxhdGZvcm1EZXN0cm95KTog
QWRkZWQuCisgICAgICAgICogVUlQcm9jZXNzL2lvcy9XZWJQcm9jZXNzUHJveHlJT1MubW06Cisg
ICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQcm94eTo6cGxhdGZvcm1Jbml0aWFsaXplKTogQWRk
ZWQuCisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQcm94eTo6cGxhdGZvcm1EZXN0cm95KTog
QWRkZWQuCisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQcm94eTo6bm90aWZ5SGFzTW91c2VE
ZXZpY2VDaGFuZ2VkKTogQWRkZWQuCisgICAgICAgIFRlbGwgdGhlIHNoYXJlZCBgV0tNb3VzZURl
dmljZU9ic2VydmVyYCB0byBzdGFydCBsaXN0ZW5pbmcgZm9yIG1vdXNlIGRldmljZSBjaGFuZ2Vz
IHdoZW4KKyAgICAgICAgY3JlYXRpbmcgdGhlIFdlYlByb2Nlc3Mgc28gdGhhdCB0aGUgc2hhcmVk
IGBXS01vdXNlRGV2aWNlT2JzZXJ2ZXJgIGtub3dzIHRvIG5vdGlmeSBhbGwKKyAgICAgICAgaW5z
dGFuY2VzIHdoZW4gbW91c2UgZGV2aWNlcyBjaGFuZ2UuIE1ha2UgYGFsbFByb2Nlc3Nlc2AgaW50
byBhIGBwcml2YXRlIHN0YXRpY2AgbWVtYmVyCisgICAgICAgIGZ1bmN0aW9uIHNvIHRoYXQgaXQg
Y2FuIGFsc28gYmUgdXNlZCBpbiBgVUlQcm9jZXNzL2lvcy9XZWJQcm9jZXNzUHJveHlJT1MubW1g
LgorCisgICAgICAgICogU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaDoKKyAg
ICAgICAgKiBTaGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHA6CisgICAgICAg
IChXZWJLaXQ6OldlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnM6OmVuY29kZSBjb25zdCk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnM6OmRlY29kZSk6Cisg
ICAgICAgICogVUlQcm9jZXNzL0NvY29hL1dlYlByb2Nlc3NQb29sQ29jb2EubW06CisgICAgICAg
IChXZWJLaXQ6OldlYlByb2Nlc3NQb29sOjpwbGF0Zm9ybUluaXRpYWxpemVXZWJQcm9jZXNzKToK
KyAgICAgICAgVXNlIHRoZSBjdXJyZW50IHN0YXRlIG9mIHRoZSBzaGFyZWQgYFdLTW91c2VEZXZp
Y2VPYnNlcnZlcmAgd2hlbiBjcmVhdGluZyBXZWJQcm9jZXNzIGluc3RlYWQKKyAgICAgICAgb2Yg
c2VuZGluZyBhIGBTZXRIYXNNb3VzZURldmljZWAgbWVzc2FnZSBpbW1lZGlhdGVseSBhZnRlciB0
aGUgV2ViUHJvY2VzcyBpcyBjcmVhdGVkLgorCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQcm9j
ZXNzLm1lc3NhZ2VzLmluOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oOgorICAg
ICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjpoYXNNb3VzZURldmljZSBjb25zdCk6IEFkZGVkLgor
ICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHA6CisgICAgICAgIChXZWJLaXQ6Oldl
YlByb2Nlc3M6OmluaXRpYWxpemVXZWJQcm9jZXNzKToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJv
Y2Vzczo6c2V0SGFzTW91c2VEZXZpY2UpOiBBZGRlZC4KKyAgICAgICAgVXBkYXRlIHN0eWxlIChp
bmNsdWRpbmcgYGFueS1ob3ZlcmAgYW5kIGBhbnktcG9pbnRlcmApIHdoZW5ldmVyIG1vdXNlIGRl
dmljZXMgY2hhbmdlLgorCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJD
aHJvbWVDbGllbnQuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNo
cm9tZUNsaWVudC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkNocm9tZUNsaWVudDo6aG92ZXJT
dXBwb3J0ZWRCeUFueUF2YWlsYWJsZVBvaW50aW5nRGV2aWNlIGNvbnN0KTogQWRkZWQuCisgICAg
ICAgIChXZWJLaXQ6OldlYkNocm9tZUNsaWVudDo6cG9pbnRlckNoYXJhY3RlcmlzdGljc09mQWxs
QXZhaWxhYmxlUG9pbnRpbmdEZXZpY2VzIGNvbnN0KTogQWRkZWQuCisgICAgICAgICogV2ViUHJv
Y2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvZ3Rr
L1dlYlBhZ2VHdGsuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpob3ZlclN1cHBvcnRl
ZEJ5QW55QXZhaWxhYmxlUG9pbnRpbmdEZXZpY2UgY29uc3QpOiBBZGRlZC4KKyAgICAgICAgKFdl
YktpdDo6V2ViUGFnZTo6cG9pbnRlckNoYXJhY3RlcmlzdGljc09mQWxsQXZhaWxhYmxlUG9pbnRp
bmdEZXZpY2VzIGNvbnN0KTogQWRkZWQuCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL2lv
cy9XZWJQYWdlSU9TLm1tOgorICAgICAgICAoV2ViS2l0OjpoYXNNb3VzZURldmljZSk6IEFkZGVk
LgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpob3ZlclN1cHBvcnRlZEJ5QW55QXZhaWxhYmxl
UG9pbnRpbmdEZXZpY2UgY29uc3QpOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6
cG9pbnRlckNoYXJhY3RlcmlzdGljc09mQWxsQXZhaWxhYmxlUG9pbnRpbmdEZXZpY2VzIGNvbnN0
KTogQWRkZWQuCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9XZWJQYWdlTWFjLm1t
OgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpob3ZlclN1cHBvcnRlZEJ5QW55QXZhaWxhYmxl
UG9pbnRpbmdEZXZpY2UgY29uc3QpOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6
cG9pbnRlckNoYXJhY3RlcmlzdGljc09mQWxsQXZhaWxhYmxlUG9pbnRpbmdEZXZpY2VzIGNvbnN0
KTogQWRkZWQuCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL3BsYXlzdGF0aW9uL1dlYlBh
Z2VQbGF5U3RhdGlvbi5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OmhvdmVyU3VwcG9y
dGVkQnlBbnlBdmFpbGFibGVQb2ludGluZ0RldmljZSBjb25zdCk6IEFkZGVkLgorICAgICAgICAo
V2ViS2l0OjpXZWJQYWdlOjpwb2ludGVyQ2hhcmFjdGVyaXN0aWNzT2ZBbGxBdmFpbGFibGVQb2lu
dGluZ0RldmljZXMgY29uc3QpOiBBZGRlZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2Uv
d2luL1dlYlBhZ2VXaW4uY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpob3ZlclN1cHBv
cnRlZEJ5QW55QXZhaWxhYmxlUG9pbnRpbmdEZXZpY2UgY29uc3QpOiBBZGRlZC4KKyAgICAgICAg
KFdlYktpdDo6V2ViUGFnZTo6cG9pbnRlckNoYXJhY3RlcmlzdGljc09mQWxsQXZhaWxhYmxlUG9p
bnRpbmdEZXZpY2VzIGNvbnN0KTogQWRkZWQuCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdl
L3dwZS9XZWJQYWdlV1BFLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6aG92ZXJTdXBw
b3J0ZWRCeUFueUF2YWlsYWJsZVBvaW50aW5nRGV2aWNlIGNvbnN0KTogQWRkZWQuCisgICAgICAg
IChXZWJLaXQ6OldlYlBhZ2U6OnBvaW50ZXJDaGFyYWN0ZXJpc3RpY3NPZkFsbEF2YWlsYWJsZVBv
aW50aW5nRGV2aWNlcyBjb25zdCk6IEFkZGVkLgorICAgICAgICBQcm92aWRlIGEgd2F5IGZvciBX
ZWJDb3JlIHRvIGdldCB0aGUgY3VycmVudCBzdGF0ZSBvZiB3aGV0aGVyIHRoZXJlIGFyZSBhbnkg
bW91c2UgZGV2aWNlcy4KKyAgICAgICAgUmVmYWN0b3IgbG9naWMgaW4gYFdlYkNvcmU6OmFueUhv
dmVyRXZhbHVhdGVgIGFuZCBgV2ViQ29yZTo6YW55UG9pbnRlckV2YWx1YXRlYCB0byBtb3ZlCisg
ICAgICAgIHBsYXRmb3JtIGNvZGUgaW50byB0aGUgcmVzcGVjdGl2ZSBgV2ViUGFnZWAgZmlsZS4K
KworICAgICAgICAqIENvbmZpZ3VyYXRpb25zL1dlYktpdC54Y2NvbmZpZzoKKyAgICAgICAgKiBQ
bGF0Zm9ybS9zcGkvaW9zL0JhY2tCb2FyZFNlcnZpY2VzU1BJLmg6CisgICAgICAgICogUGxhdGZv
cm0vc3BpL2lvcy9CYXNlQm9hcmRTUEkuaDogQWRkZWQuCisgICAgICAgICogU291cmNlc0NvY29h
LnR4dDoKKyAgICAgICAgKiBXZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKwogMjAy
MC0xMC0wNiAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CiAKICAgICAgICAgRW5h
YmxlIHZpZGVvIGNhcHR1cmUgaW4gV2ViUHJvY2VzcyBieSBkZWZhdWx0IG9uIE1hY09TCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L2lvcy9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0
TGVnYWN5L2lvcy9DaGFuZ2VMb2cKaW5kZXggMTJlNjU1YjFlY2RkNWQ0NzBmM2VhNDBmYWM3ODM1
ZmUxZjU3ZmJmYy4uMTlhYmY4NjdlNjVmZmY1NWVjMWY4ZGUxZTQxZDhjMTg2MjY2YzQzNCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9pb3MvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9X
ZWJLaXRMZWdhY3kvaW9zL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDIwLTEwLTA1ICBE
ZXZpbiBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNvbT4KKworICAgICAgICBDU1MgaG92ZXIgYW5k
ICJwb2ludGVyOiBmaW5lIiBtZWRpYSBxdWVyaWVzIGRvIG5vdCBldmFsdWF0ZSB0byB0cnVlIHdp
dGggaU9TIDEzLjQgbW91c2Ugc3VwcG9ydAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MjA5MjkyCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS82MDY2MzEy
ND4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdl
YkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudElPUy5oOgorICAgICAgICAoV2ViQ2hyb21lQ2xp
ZW50SU9TOjpob3ZlclN1cHBvcnRlZEJ5QW55QXZhaWxhYmxlUG9pbnRpbmdEZXZpY2UgY29uc3Qp
OiBBZGRlZC4KKyAgICAgICAgKFdlYkNocm9tZUNsaWVudElPUzo6cG9pbnRlckNoYXJhY3Rlcmlz
dGljc09mQWxsQXZhaWxhYmxlUG9pbnRpbmdEZXZpY2VzIGNvbnN0KTogQWRkZWQuCisgICAgICAg
IE1vdXNlIGRldmljZXMgYXJlIG5vdCBzdXBwb3J0ZWQuCisKIDIwMjAtMDktMjAgIERhcmluIEFk
bGVyICA8ZGFyaW5AYXBwbGUuY29tPgogCiAgICAgICAgIE5leHQgc3RlcCB0b3dhcmRzIGVsaW1p
bmF0aW5nIGRlcHJlY2F0ZWQgbGVnYWN5IHBvc2l0aW9ucwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdl
TG9nCmluZGV4IGQ5NGFjZDJlMzhkMmYyMGM3YmYzN2UzYTU5ZWEzMjI5MTg0MTUyMzguLmQzYTY1
OWU4MTNiYWFlMzNlNDM2N2I5MTUxYjZkNDM1MzNlYzliN2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAyMC0xMC0wNSAgRGV2aW4gUm91c3NvICA8ZHJv
dXNzb0BhcHBsZS5jb20+CisKKyAgICAgICAgQ1NTIGhvdmVyIGFuZCAicG9pbnRlcjogZmluZSIg
bWVkaWEgcXVlcmllcyBkbyBub3QgZXZhbHVhdGUgdG8gdHJ1ZSB3aXRoIGlPUyAxMy40IG1vdXNl
IHN1cHBvcnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIwOTI5MgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNjA2NjMxMjQ+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJD
aHJvbWVDbGllbnQuaDoKKyAgICAgICAgKFdlYkNocm9tZUNsaWVudDo6aG92ZXJTdXBwb3J0ZWRC
eUFueUF2YWlsYWJsZVBvaW50aW5nRGV2aWNlIGNvbnN0KTogQWRkZWQuCisgICAgICAgIChXZWJD
aHJvbWVDbGllbnQ6OnBvaW50ZXJDaGFyYWN0ZXJpc3RpY3NPZkFsbEF2YWlsYWJsZVBvaW50aW5n
RGV2aWNlcyBjb25zdCk6IEFkZGVkLgorICAgICAgICBNb3VzZSBkZXZpY2VzIGFyZSBhbHdheXMg
c3VwcG9ydGVkLgorCiAyMDIwLTEwLTA1ICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBw
bGUuY29tPgogCiAgICAgICAgIFVzZSB0aGUgInRyaWdnZXJSZW5kZXJpbmdVcGRhdGUiIHRlcm1p
bm9sb2d5IGluIENocm9tZUNsaWVudApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS93
aW4vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vQ2hhbmdlTG9nCmluZGV4IGRh
YWQxNGM4ZjcxYjgzMWE5MzA1ZGY2MDRhOTc4ZDg2MmZhMWZlMGMuLjA4M2Q3NDNkZTE3ODUwYjI1
MDM0ODgyYTYyMjc3Y2M1MmFjNmZlMzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kv
d2luL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwxNiBAQAorMjAyMC0xMC0wNSAgRGV2aW4gUm91c3NvICA8ZHJvdXNzb0BhcHBsZS5j
b20+CisKKyAgICAgICAgQ1NTIGhvdmVyIGFuZCAicG9pbnRlcjogZmluZSIgbWVkaWEgcXVlcmll
cyBkbyBub3QgZXZhbHVhdGUgdG8gdHJ1ZSB3aXRoIGlPUyAxMy40IG1vdXNlIHN1cHBvcnQKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwOTI5MgorICAg
ICAgICA8cmRhcjovL3Byb2JsZW0vNjA2NjMxMjQ+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQu
aDoKKyAgICAgICAgKFdlYkNocm9tZUNsaWVudDo6aG92ZXJTdXBwb3J0ZWRCeUFueUF2YWlsYWJs
ZVBvaW50aW5nRGV2aWNlIGNvbnN0KTogQWRkZWQuCisgICAgICAgIChXZWJDaHJvbWVDbGllbnQ6
OnBvaW50ZXJDaGFyYWN0ZXJpc3RpY3NPZkFsbEF2YWlsYWJsZVBvaW50aW5nRGV2aWNlcyBjb25z
dCk6IEFkZGVkLgorICAgICAgICBNb3VzZSBkZXZpY2VzIGFyZSBhbHdheXMgc3VwcG9ydGVkLgor
CiAyMDIwLTEwLTA1ICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgogCiAg
ICAgICAgIFVzZSB0aGUgInRyaWdnZXJSZW5kZXJpbmdVcGRhdGUiIHRlcm1pbm9sb2d5IGluIENo
cm9tZUNsaWVudApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZSBiL1Nv
dXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKaW5kZXggMWZiOTVjN2QwMGRjMGI1NzkwNDgyZjVm
ZmQwYTQ3ZmY0MmFiYWQ3My4uMjNiNzBhNDI3MmE5NTIxMWM1ZTU1MTgzZDMxMTY5Y2MwMmU2ZjU1
OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9IZWFkZXJzLmNtYWtlCkBAIC04NTQsNiArODU0LDcgQEAgc2V0KFdlYkNvcmVfUFJJ
VkFURV9GUkFNRVdPUktfSEVBREVSUwogICAgIHBhZ2UvUGVyZm9ybWFuY2VMb2dnaW5nQ2xpZW50
LmgKICAgICBwYWdlL1BsdWdJbkNsaWVudC5oCiAgICAgcGFnZS9Qb2ludGVyQ2FwdHVyZUNvbnRy
b2xsZXIuaAorICAgIHBhZ2UvUG9pbnRlckNoYXJhY3RlcmlzdGljcy5oCiAgICAgcGFnZS9Qb2lu
dGVyTG9ja0NvbnRyb2xsZXIuaAogICAgIHBhZ2UvUG9zdE1lc3NhZ2VPcHRpb25zLmgKICAgICBw
YWdlL1ByZXdhcm1JbmZvcm1hdGlvbi5oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggYmRiNGE5MGE2NjdmYjMwNTY2MWVjZmQ3YTYx
ZjE5ZjE5NjhkZDk3OC4uYTc5NTZhNmNkOTAxOGJhMTk1MWU3M2IzN2ZjNjc5NTIwM2NjYjI3MCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agpAQCAtMjg1OCw2ICsyODU4LDcgQEAKIAkJOTRFODM5NTYxREZCMkJDNDAwN0JDNkE3IC8qIEpT
Q1NTTmFtZXNwYWNlUnVsZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gOTRFODM5NTQxREZCMkJBNjAwN0JDNkE3IC8qIEpTQ1NTTmFtZXNwYWNlUnVsZS5o
ICovOyB9OwogCQk5NTIwNzYwNTFGMjY3NUZFMDA3RDJBQUIgLyogQ2FsbFRyYWNlci5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTUyMDc2MDExRjI2NzVG
OTAwN0QyQUFCIC8qIENhbGxUcmFjZXIuaCAqLzsgfTsKIAkJOTUyMDc2MDYxRjI2NzVGRTAwN0Qy
QUFCIC8qIENhbGxUcmFjZXJUeXBlcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gOTUyMDc2MDIxRjI2NzVGOTAwN0QyQUFCIC8qIENhbGxUcmFjZXJUeXBl
cy5oICovOyB9OworCQk5NURGOUQyNTI1MkJFREIyMDAwRDdGNDYgLyogUG9pbnRlckNoYXJhY3Rl
cmlzdGljcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
OTVERjlEMjMyNTJCRUQ5OTAwMEQ3RjQ2IC8qIFBvaW50ZXJDaGFyYWN0ZXJpc3RpY3MuaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk5NzA1OTk3QTEw
N0Q5NzUyMDBBNTBBN0MgLyogUG9saWN5Q2hlY2tlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTcwNTk5NzYxMDdEOTc1MjAwQTUwQTdDIC8qIFBvbGlj
eUNoZWNrZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OwogCQk5NzBCNzI4QTE0NEZGQUM2MDBGMDBBMzcgLyogRXZlbnRJbnRlcmZhY2VzLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5NzBCNzI4OTE0NEZGQUM2
MDBGMDBBMzcgLyogRXZlbnRJbnRlcmZhY2VzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMg
PSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJOTcwQjcyQTYxNDUwMDhFQjAwRjAwQTM3IC8qIEV2ZW50
SGVhZGVycy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
OTcwQjcyQTUxNDUwMDhFQjAwRjAwQTM3IC8qIEV2ZW50SGVhZGVycy5oICovOyB9OwpAQCAtMTE0
NjEsNiArMTE0NjIsNyBAQAogCQk5NTIwNzYwMDFGMjY3NUY5MDA3RDJBQUIgLyogQ2FsbFRyYWNl
ci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDYWxsVHJhY2VyLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJOTUyMDc2MDExRjI2NzVGOTAwN0QyQUFCIC8qIENhbGxUcmFjZXIuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gQ2FsbFRyYWNlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk5NTIwNzYwMjFGMjY3NUY5MDA3RDJBQUIgLyogQ2FsbFRyYWNlclR5cGVzLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IENhbGxUcmFjZXJUeXBlcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5
NURGOUQyMzI1MkJFRDk5MDAwRDdGNDYgLyogUG9pbnRlckNoYXJhY3RlcmlzdGljcy5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBQb2ludGVyQ2hhcmFjdGVyaXN0aWNzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTk2QUJBNDIyMTRCQ0I4MEUwMEQ1NjIwNCAvKiBHcmFwaGljc0NvbnRleHRHTE9w
ZW5HTENvbW1vbi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBHcmFw
aGljc0NvbnRleHRHTE9wZW5HTENvbW1vbi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTk3MDU5OTc1MTA3RDk3NTIwMEE1MEE3QyAvKiBQb2xpY3lDaGVja2VyLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFBvbGljeUNoZWNrZXIuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk5NzA1OTk3NjEwN0Q5NzUyMDBBNTBBN0MgLyogUG9saWN5
Q2hlY2tlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQb2xpY3lDaGVja2Vy
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0yMTczNCw2ICsyMTczNiw3IEBACiAJ
CQkJMzFENTkxQjExNjY5N0E2QzAwRTZCRjAyIC8qIFBsdWdJbkNsaWVudC5oICovLAogCQkJCTcx
QjVBQjI1MjFGMUQ5RTMwMDM3NkU1QyAvKiBQb2ludGVyQ2FwdHVyZUNvbnRyb2xsZXIuY3BwICov
LAogCQkJCTcxQjVBQjI0MjFGMUQ5RTIwMDM3NkU1QyAvKiBQb2ludGVyQ2FwdHVyZUNvbnRyb2xs
ZXIuaCAqLywKKwkJCQk5NURGOUQyMzI1MkJFRDk5MDAwRDdGNDYgLyogUG9pbnRlckNoYXJhY3Rl
cmlzdGljcy5oICovLAogCQkJCTVDRkM0MzRFMTkyNDA2QTkwMEEwRDNCNSAvKiBQb2ludGVyTG9j
a0NvbnRyb2xsZXIuY3BwICovLAogCQkJCTVDRkM0MzRGMTkyNDA2QTkwMEEwRDNCNSAvKiBQb2lu
dGVyTG9ja0NvbnRyb2xsZXIuaCAqLywKIAkJCQkzNzcyQjA5NTE2NTM1ODU2MDAwQTQ5Q0EgLyog
UG9wdXBPcGVuaW5nT2JzZXJ2ZXIuaCAqLywKQEAgLTMzNDI1LDYgKzMzNDI4LDcgQEAKIAkJCQlC
Q0JCOEFCQTEzRjFBRkIwMDA3MzRERjAgLyogUE9ESW50ZXJ2YWxUcmVlLmggaW4gSGVhZGVycyAq
LywKIAkJCQlCQ0JCOEFCQjEzRjFBRkIwMDA3MzRERjAgLyogUE9EUmVkQmxhY2tUcmVlLmggaW4g
SGVhZGVycyAqLywKIAkJCQk3MUI1QUIyNjIxRjFEOUY0MDAzNzZFNUMgLyogUG9pbnRlckNhcHR1
cmVDb250cm9sbGVyLmggaW4gSGVhZGVycyAqLywKKwkJCQk5NURGOUQyNTI1MkJFREIyMDAwRDdG
NDYgLyogUG9pbnRlckNoYXJhY3RlcmlzdGljcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMzE3RDNG
RjMyMTU1OTlGNDAwMzRFM0I5IC8qIFBvaW50ZXJFdmVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
QjJCMUY3MTcwRDAwQ0FBODAwNEFFQTY0IC8qIFBvaW50ZXJFdmVudHNIaXRSdWxlcy5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJNzFFQURDRDgyMjA4N0U3MjAwNjVBNDVGIC8qIFBvaW50ZXJJRC5oIGlu
IEhlYWRlcnMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvTWVkaWFRdWVyeUV2
YWx1YXRvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvTWVkaWFRdWVyeUV2YWx1YXRvci5jcHAK
aW5kZXggODExOGI3YWIzYzUwYjNjZWQ4MTIwZmMxMDZkY2U5YzczMTQxYWZlNC4uNTk3YTJkNjE1
ODY5MDNlZWRmYTNmYjY2NGYzY2RiZjEwMDczOTI2OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvY3NzL01lZGlhUXVlcnlFdmFsdWF0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9N
ZWRpYVF1ZXJ5RXZhbHVhdG9yLmNwcApAQCAtMzMsNiArMzMsOCBAQAogI2luY2x1ZGUgIkNTU1By
aW1pdGl2ZVZhbHVlLmgiCiAjaW5jbHVkZSAiQ1NTVG9MZW5ndGhDb252ZXJzaW9uRGF0YS5oIgog
I2luY2x1ZGUgIkNTU1ZhbHVlS2V5d29yZHMuaCIKKyNpbmNsdWRlICJDaHJvbWUuaCIKKyNpbmNs
dWRlICJDaHJvbWVDbGllbnQuaCIKICNpbmNsdWRlICJGcmFtZS5oIgogI2luY2x1ZGUgIkZyYW1l
Vmlldy5oIgogI2luY2x1ZGUgIkxvZ2dpbmcuaCIKQEAgLTczMCwyMiArNzMyLDE2IEBAIHN0YXRp
YyBib29sIGhvdmVyRXZhbHVhdGUoQ1NTVmFsdWUqIHZhbHVlLCBjb25zdCBDU1NUb0xlbmd0aENv
bnZlcnNpb25EYXRhJiwgRnJhCiAgICAgcmV0dXJuIGtleXdvcmQgPT0gQ1NTVmFsdWVIb3ZlcjsK
IH0KIAotc3RhdGljIGJvb2wgYW55SG92ZXJFdmFsdWF0ZShDU1NWYWx1ZSogdmFsdWUsIGNvbnN0
IENTU1RvTGVuZ3RoQ29udmVyc2lvbkRhdGEmLCBGcmFtZSYsIE1lZGlhRmVhdHVyZVByZWZpeCkK
K3N0YXRpYyBib29sIGFueUhvdmVyRXZhbHVhdGUoQ1NTVmFsdWUqIHZhbHVlLCBjb25zdCBDU1NU
b0xlbmd0aENvbnZlcnNpb25EYXRhJiwgRnJhbWUmIGZyYW1lLCBNZWRpYUZlYXR1cmVQcmVmaXgp
CiB7Ci0gICAgaWYgKCFpczxDU1NQcmltaXRpdmVWYWx1ZT4odmFsdWUpKSB7Ci0jaWYgRU5BQkxF
KFRPVUNIX0VWRU5UUykKLSAgICAgICAgcmV0dXJuICFzY3JlZW5IYXNUb3VjaERldmljZSgpOwot
I2Vsc2UKLSAgICAgICAgcmV0dXJuIHRydWU7Ci0jZW5kaWYKLSAgICB9CisgICAgYXV0byogcGFn
ZSA9IGZyYW1lLnBhZ2UoKTsKKyAgICBib29sIGhvdmVyU3VwcG9ydGVkQnlBbnlBdmFpbGFibGVQ
b2ludGluZ0RldmljZSA9IHBhZ2UgJiYgcGFnZS0+Y2hyb21lKCkuY2xpZW50KCkuaG92ZXJTdXBw
b3J0ZWRCeUFueUF2YWlsYWJsZVBvaW50aW5nRGV2aWNlKCk7CisKKyAgICBpZiAoIWlzPENTU1By
aW1pdGl2ZVZhbHVlPih2YWx1ZSkpCisgICAgICAgIHJldHVybiBob3ZlclN1cHBvcnRlZEJ5QW55
QXZhaWxhYmxlUG9pbnRpbmdEZXZpY2U7CiAKICAgICBhdXRvIGtleXdvcmQgPSBkb3duY2FzdDxD
U1NQcmltaXRpdmVWYWx1ZT4oKnZhbHVlKS52YWx1ZUlEKCk7Ci0jaWYgRU5BQkxFKFRPVUNIX0VW
RU5UUykKLSAgICBpZiAoc2NyZWVuSGFzVG91Y2hEZXZpY2UoKSkKLSAgICAgICAgcmV0dXJuIGtl
eXdvcmQgPT0gQ1NTVmFsdWVOb25lOwotI2VuZGlmCi0gICAgcmV0dXJuIGtleXdvcmQgPT0gQ1NT
VmFsdWVIb3ZlcjsKKyAgICByZXR1cm4gaG92ZXJTdXBwb3J0ZWRCeUFueUF2YWlsYWJsZVBvaW50
aW5nRGV2aWNlID8gKGtleXdvcmQgPT0gQ1NTVmFsdWVIb3ZlcikgOiAoa2V5d29yZCA9PSBDU1NW
YWx1ZU5vbmUpOwogfQogCiBzdGF0aWMgYm9vbCBwb2ludGVyRXZhbHVhdGUoQ1NTVmFsdWUqIHZh
bHVlLCBjb25zdCBDU1NUb0xlbmd0aENvbnZlcnNpb25EYXRhJiwgRnJhbWUmIGZyYW1lLCBNZWRp
YUZlYXR1cmVQcmVmaXgpCkBAIC03NjUsMTcgKzc2MSwyMiBAQCBzdGF0aWMgYm9vbCBwb2ludGVy
RXZhbHVhdGUoQ1NTVmFsdWUqIHZhbHVlLCBjb25zdCBDU1NUb0xlbmd0aENvbnZlcnNpb25EYXRh
JiwgRgogICAgIHJldHVybiBrZXl3b3JkID09IENTU1ZhbHVlRmluZTsKIH0KIAotc3RhdGljIGJv
b2wgYW55UG9pbnRlckV2YWx1YXRlKENTU1ZhbHVlKiB2YWx1ZSwgY29uc3QgQ1NTVG9MZW5ndGhD
b252ZXJzaW9uRGF0YSYsIEZyYW1lJiwgTWVkaWFGZWF0dXJlUHJlZml4KQorc3RhdGljIGJvb2wg
YW55UG9pbnRlckV2YWx1YXRlKENTU1ZhbHVlKiB2YWx1ZSwgY29uc3QgQ1NTVG9MZW5ndGhDb252
ZXJzaW9uRGF0YSYsIEZyYW1lJiBmcmFtZSwgTWVkaWFGZWF0dXJlUHJlZml4KQogeworICAgIGF1
dG8qIHBhZ2UgPSBmcmFtZS5wYWdlKCk7CisgICAgYXV0byBwb2ludGVyQ2hhcmFjdGVyaXN0aWNz
T2ZBbGxBdmFpbGFibGVQb2ludGluZ0RldmljZXMgPSBwYWdlID8gcGFnZS0+Y2hyb21lKCkuY2xp
ZW50KCkucG9pbnRlckNoYXJhY3RlcmlzdGljc09mQWxsQXZhaWxhYmxlUG9pbnRpbmdEZXZpY2Vz
KCkgOiBPcHRpb25TZXQ8UG9pbnRlckNoYXJhY3RlcmlzdGljcz4oKTsKKwogICAgIGlmICghaXM8
Q1NTUHJpbWl0aXZlVmFsdWU+KHZhbHVlKSkKLSAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAg
IHJldHVybiAhcG9pbnRlckNoYXJhY3RlcmlzdGljc09mQWxsQXZhaWxhYmxlUG9pbnRpbmdEZXZp
Y2VzLmlzRW1wdHkoKTsKIAogICAgIGF1dG8ga2V5d29yZCA9IGRvd25jYXN0PENTU1ByaW1pdGl2
ZVZhbHVlPigqdmFsdWUpLnZhbHVlSUQoKTsKLSNpZiBFTkFCTEUoVE9VQ0hfRVZFTlRTKQotICAg
IGlmIChzY3JlZW5IYXNUb3VjaERldmljZSgpKQotICAgICAgICByZXR1cm4ga2V5d29yZCA9PSBD
U1NWYWx1ZUNvYXJzZTsKLSNlbmRpZgotICAgIHJldHVybiBrZXl3b3JkID09IENTU1ZhbHVlRmlu
ZTsKKyAgICBpZiAoa2V5d29yZCA9PSBDU1NWYWx1ZUZpbmUpCisgICAgICAgIHJldHVybiBwb2lu
dGVyQ2hhcmFjdGVyaXN0aWNzT2ZBbGxBdmFpbGFibGVQb2ludGluZ0RldmljZXMuY29udGFpbnMo
UG9pbnRlckNoYXJhY3RlcmlzdGljczo6RmluZSk7CisgICAgaWYgKGtleXdvcmQgPT0gQ1NTVmFs
dWVDb2Fyc2UpCisgICAgICAgIHJldHVybiBwb2ludGVyQ2hhcmFjdGVyaXN0aWNzT2ZBbGxBdmFp
bGFibGVQb2ludGluZ0RldmljZXMuY29udGFpbnMoUG9pbnRlckNoYXJhY3RlcmlzdGljczo6Q29h
cnNlKTsKKyAgICBpZiAoa2V5d29yZCA9PSBDU1NWYWx1ZU5vbmUpCisgICAgICAgIHJldHVybiBw
b2ludGVyQ2hhcmFjdGVyaXN0aWNzT2ZBbGxBdmFpbGFibGVQb2ludGluZ0RldmljZXMuaXNFbXB0
eSgpOworICAgIHJldHVybiBmYWxzZTsKIH0KIAogc3RhdGljIGJvb2wgcHJlZmVyc0RhcmtJbnRl
cmZhY2VFdmFsdWF0ZShDU1NWYWx1ZSogdmFsdWUsIGNvbnN0IENTU1RvTGVuZ3RoQ29udmVyc2lv
bkRhdGEmLCBGcmFtZSYgZnJhbWUsIE1lZGlhRmVhdHVyZVByZWZpeCkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9FbXB0eUNsaWVudHMuaAppbmRleCBhMTVkNTQ0OGJhODY5ZTRiZmQ2ZjhkMTY5ZmIxZDQzN2Yz
MGZlMjZkLi4xNjkwYzdlMjI1NGYwYzE4NDI4YmI1ODViMmM4YzVkNTA0YjIwNDFlIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5oCkBAIC0xMDIsNiArMTAyLDkgQEAgY2xhc3MgRW1w
dHlDaHJvbWVDbGllbnQgOiBwdWJsaWMgQ2hyb21lQ2xpZW50IHsKIAogICAgIEtleWJvYXJkVUlN
b2RlIGtleWJvYXJkVUlNb2RlKCkgZmluYWwgeyByZXR1cm4gS2V5Ym9hcmRBY2Nlc3NEZWZhdWx0
OyB9CiAKKyAgICBib29sIGhvdmVyU3VwcG9ydGVkQnlBbnlBdmFpbGFibGVQb2ludGluZ0Rldmlj
ZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIGZhbHNlOyB9CisgICAgT3B0aW9uU2V0PFBvaW50ZXJD
aGFyYWN0ZXJpc3RpY3M+IHBvaW50ZXJDaGFyYWN0ZXJpc3RpY3NPZkFsbEF2YWlsYWJsZVBvaW50
aW5nRGV2aWNlcygpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIHsgfTsgfQorCiAgICAgdm9pZCBpbnZh
bGlkYXRlUm9vdFZpZXcoY29uc3QgSW50UmVjdCYpIGZpbmFsIHsgfQogICAgIHZvaWQgaW52YWxp
ZGF0ZUNvbnRlbnRzQW5kUm9vdFZpZXcoY29uc3QgSW50UmVjdCYpIG92ZXJyaWRlIHsgfQogICAg
IHZvaWQgaW52YWxpZGF0ZUNvbnRlbnRzRm9yU2xvd1Njcm9sbChjb25zdCBJbnRSZWN0JikgZmlu
YWwgeyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVudC5oIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaAppbmRleCBhN2UyZjQxMDE3NzZhYTYx
NjI4MmZiNDQ2MGE3YzM2MTA5NDljZWExLi5hOTFmMDU1MWU5ZDFmZjAzNzU0ODdkMzdlMjRkYzg4
ODkxNzMwZjg3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVudC5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmgKQEAgLTM5LDYgKzM5LDcg
QEAKICNpbmNsdWRlICJJbWFnZUJ1ZmZlci5oIgogI2luY2x1ZGUgIklucHV0TW9kZS5oIgogI2lu
Y2x1ZGUgIk1lZGlhUHJvZHVjZXIuaCIKKyNpbmNsdWRlICJQb2ludGVyQ2hhcmFjdGVyaXN0aWNz
LmgiCiAjaW5jbHVkZSAiUG9wdXBNZW51LmgiCiAjaW5jbHVkZSAiUG9wdXBNZW51Q2xpZW50Lmgi
CiAjaW5jbHVkZSAiUmVnaXN0cmFibGVEb21haW4uaCIKQEAgLTE3OCw2ICsxNzksOSBAQCBwdWJs
aWM6CiAgICAgdmlydHVhbCB2b2lkIHNldFN0YXR1c2JhclRleHQoY29uc3QgU3RyaW5nJikgPSAw
OwogICAgIHZpcnR1YWwgS2V5Ym9hcmRVSU1vZGUga2V5Ym9hcmRVSU1vZGUoKSA9IDA7CiAKKyAg
ICB2aXJ0dWFsIGJvb2wgaG92ZXJTdXBwb3J0ZWRCeUFueUF2YWlsYWJsZVBvaW50aW5nRGV2aWNl
KCkgY29uc3QgPSAwOworICAgIHZpcnR1YWwgT3B0aW9uU2V0PFBvaW50ZXJDaGFyYWN0ZXJpc3Rp
Y3M+IHBvaW50ZXJDaGFyYWN0ZXJpc3RpY3NPZkFsbEF2YWlsYWJsZVBvaW50aW5nRGV2aWNlcygp
IGNvbnN0ID0gMDsKKwogICAgIHZpcnR1YWwgYm9vbCBzdXBwb3J0c0ltbWVkaWF0ZUludmFsaWRh
dGlvbigpIHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgdmlydHVhbCB2b2lkIGludmFsaWRhdGVSb290
Vmlldyhjb25zdCBJbnRSZWN0JikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBpbnZhbGlkYXRlQ29u
dGVudHNBbmRSb290Vmlldyhjb25zdCBJbnRSZWN0JikgPSAwOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGFnZS9Qb2ludGVyQ2hhcmFjdGVyaXN0aWNzLmggYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL1BvaW50ZXJDaGFyYWN0ZXJpc3RpY3MuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yNGFhNDZiZmM2ZTIyZmFh
M2FmNjBhOGY4ODE4ZDA1ZWNmZTgxNDkxCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9Qb2ludGVyQ2hhcmFjdGVyaXN0aWNzLmgKQEAgLTAsMCArMSw0NyBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMg
SVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVU
T1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNT
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAor
ICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCitu
YW1lc3BhY2UgV2ViQ29yZSB7CisKK2VudW0gY2xhc3MgUG9pbnRlckNoYXJhY3RlcmlzdGljcyA6
IHVpbnQ4X3QgeworICAgIENvYXJzZSA9IDEgPDwgMCwKKyAgICBGaW5lID0gMSA8PCAxLAorfTsK
KworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCituYW1lc3BhY2UgV1RGIHsKKwordGVtcGxhdGU8
PiBzdHJ1Y3QgRW51bVRyYWl0czxXZWJDb3JlOjpQb2ludGVyQ2hhcmFjdGVyaXN0aWNzPiB7Cisg
ICAgdXNpbmcgdmFsdWVzID0gRW51bVZhbHVlczwKKyAgICAgICAgV2ViQ29yZTo6UG9pbnRlckNo
YXJhY3RlcmlzdGljcywKKyAgICAgICAgV2ViQ29yZTo6UG9pbnRlckNoYXJhY3RlcmlzdGljczo6
Q29hcnNlLAorICAgICAgICBXZWJDb3JlOjpQb2ludGVyQ2hhcmFjdGVyaXN0aWNzOjpGaW5lCisg
ICAgPjsKK307CisKK30gLy8gbmFtZXNwYWNlIFdURgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vUGxhdGZvcm1TY3JlZW4uaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Bs
YXRmb3JtU2NyZWVuLmgKaW5kZXggYjIwZmUzODlhOThlMWUwMWUyNTMxYjIwMDY5MTg2Y2JlZDZh
ZWUyNi4uOTJjZTRkZDZlYzE4MjFhMGZjNTEzNWYzOGUyMzNhNWNjZDA0ZDcxOSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGxhdGZvcm1TY3JlZW4uaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9ybVNjcmVlbi5oCkBAIC0xNTIsOCArMTUyLDggQEAgV0VC
Q09SRV9FWFBPUlQgZmxvYXQgc2NyZWVuU2NhbGVGYWN0b3IoVUlTY3JlZW4gKiA9IG51bGxwdHIp
OwogCiAjaWYgRU5BQkxFKFRPVUNIX0VWRU5UUykKICNpZiBQTEFURk9STShHVEspIHx8IFBMQVRG
T1JNKFdQRSkKLWJvb2wgc2NyZWVuSGFzVG91Y2hEZXZpY2UoKTsKLWJvb2wgc2NyZWVuSXNUb3Vj
aFByaW1hcnlJbnB1dERldmljZSgpOworV0VCQ09SRV9FWFBPUlQgYm9vbCBzY3JlZW5IYXNUb3Vj
aERldmljZSgpOworV0VCQ09SRV9FWFBPUlQgYm9vbCBzY3JlZW5Jc1RvdWNoUHJpbWFyeUlucHV0
RGV2aWNlKCk7CiAjZWxzZQogY29uc3RleHByIGJvb2wgc2NyZWVuSGFzVG91Y2hEZXZpY2UoKSB7
IHJldHVybiB0cnVlOyB9CiBjb25zdGV4cHIgYm9vbCBzY3JlZW5Jc1RvdWNoUHJpbWFyeUlucHV0
RGV2aWNlKCkgeyByZXR1cm4gdHJ1ZTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9Db25m
aWd1cmF0aW9ucy9XZWJLaXQueGNjb25maWcgYi9Tb3VyY2UvV2ViS2l0L0NvbmZpZ3VyYXRpb25z
L1dlYktpdC54Y2NvbmZpZwppbmRleCA1Zjc1ZWNiYjE0OWM1NTFhNDUxMWE5MDZmZDdmNDNjMTdl
OTg4OTIxLi5jZTcxODU5ZGRhOTA1NGFkZmMwNDU1ODQwN2YxNjRlMzdlMzZmZjdiIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L0NvbmZpZ3VyYXRpb25zL1dlYktpdC54Y2NvbmZpZworKysgYi9T
b3VyY2UvV2ViS2l0L0NvbmZpZ3VyYXRpb25zL1dlYktpdC54Y2NvbmZpZwpAQCAtNjAsNiArNjAs
MTAgQEAgV0tfQVNTRVJUSU9OX1NFUlZJQ0VTX0xERkxBR1NfYXBwbGV0dm9zID0gLWZyYW1ld29y
ayBBc3NlcnRpb25TZXJ2aWNlczsKIFdLX0FTU0VSVElPTl9TRVJWSUNFU19MREZMQUdTX2FwcGxl
dHZzaW11bGF0b3IgPSAtZnJhbWV3b3JrIEFzc2VydGlvblNlcnZpY2VzOwogV0tfQVNTRVJUSU9O
X1NFUlZJQ0VTX0xERkxBR1NfbWFjY2F0YWx5c3QgPSAtZnJhbWV3b3JrIEFzc2VydGlvblNlcnZp
Y2VzOwogCitXS19CQUNLQk9BUkRfU0VSVklDRVNfTERGTEFHUyA9ICQoV0tfQkFDS0JPQVJEX1NF
UlZJQ0VTX0xERkxBR1NfJChXS19QTEFURk9STV9OQU1FKSk7CitXS19CQUNLQk9BUkRfU0VSVklD
RVNfTERGTEFHU19pcGhvbmVvcyA9IC1mcmFtZXdvcmsgQmFja0JvYXJkU2VydmljZXM7CitXS19C
QUNLQk9BUkRfU0VSVklDRVNfTERGTEFHU19pcGhvbmVzaW11bGF0b3IgPSAtZnJhbWV3b3JrIEJh
Y2tCb2FyZFNlcnZpY2VzOworCiBXS19SVU5OSU5HQk9BUkRfU0VSVklDRVNfTERGTEFHUyA9ICQo
V0tfUlVOTklOR0JPQVJEX1NFUlZJQ0VTX0xERkxBR1NfJChXS19DT0NPQV9UT1VDSCkpOwogV0tf
UlVOTklOR0JPQVJEX1NFUlZJQ0VTX0xERkxBR1NfY29jb2F0b3VjaCA9IC1mcmFtZXdvcmsgUnVu
bmluZ0JvYXJkU2VydmljZXM7CiAKQEAgLTEyMyw3ICsxMjcsNyBAQCBXS19BVVRIS0lUX0xERkxB
R1NfSU9TX1NJTkNFXzEzID0gLWZyYW1ld29yayBBdXRoS2l0OwogV0tfQVVUSEtJVF9MREZMQUdT
X21hY29zeCA9ICQoV0tfQVVUSEtJVF9MREZMQUdTJChXS19NQUNPU18xMDE1KSk7CiBXS19BVVRI
S0lUX0xERkxBR1NfTUFDT1NfU0lOQ0VfMTAxNSA9IC1mcmFtZXdvcmsgQXV0aEtpdDsKIAotRlJB
TUVXT1JLX0FORF9MSUJSQVJZX0xERkxBR1MgPSAtbG9iamMgLWZyYW1ld29yayBDRk5ldHdvcmsg
LWZyYW1ld29yayBDb3JlQXVkaW8gLWZyYW1ld29yayBDb3JlRm91bmRhdGlvbiAtZnJhbWV3b3Jr
IENvcmVHcmFwaGljcyAtZnJhbWV3b3JrIENvcmVUZXh0IC1mcmFtZXdvcmsgRm91bmRhdGlvbiAt
ZnJhbWV3b3JrIEltYWdlSU8gLWZyYW1ld29yayBJT0tpdCAtZnJhbWV3b3JrIElPU3VyZmFjZSAt
ZnJhbWV3b3JrIFdlYktpdExlZ2FjeSAtbG5ldHdvcmsgJChXS19BQ0NFU1NJQklMSVRZX0xERkxB
R1MpICQoV0tfQVBQS0lUX0xERkxBR1MpICQoV0tfQVNTRVJUSU9OX1NFUlZJQ0VTX0xERkxBR1Mp
ICQoV0tfUlVOTklOR0JPQVJEX1NFUlZJQ0VTX0xERkxBR1MpICQoV0tfQVVUSEtJVF9MREZMQUdT
KSAkKFdLX0NBUkJPTl9MREZMQUdTKSAkKFdLX0NPUkVfUFJFRElDVElPTl9MREZMQUdTKSAkKFdL
X0NPUkVfU0VSVklDRVNfTERGTEFHUykgJChXS19HUkFQSElDU19TRVJWSUNFU19MREZMQUdTKSAk
KFdLX0xJQlNBTkRCT1hfTERGTEFHUykgJChXS19MSUJXRUJSVENfTERGTEFHUykgJChXS19NT0JJ
TEVfQ09SRV9TRVJWSUNFU19MREZMQUdTKSAkKFdLX01PQklMRV9HRVNUQUxUX0xERkxBR1MpICQo
V0tfUERGS0lUX0xERkxBR1MpICQoV0tfU0FGRV9CUk9XU0lOR19MREZMQUdTKSAkKFdLX1NFQ1VS
SVRZX0lOVEVSRkFDRV9MREZMQUdTKSAkKFdLX1VJS0lUX0xERkxBR1MpICQoV0tfVVJMX0ZPUk1B
VFRJTkdfTERGTEFHUykgJChXS19XRUJJTlNQRUNUT1JVSV9MREZMQUdTKTsKK0ZSQU1FV09SS19B
TkRfTElCUkFSWV9MREZMQUdTID0gLWxvYmpjIC1mcmFtZXdvcmsgQ0ZOZXR3b3JrIC1mcmFtZXdv
cmsgQ29yZUF1ZGlvIC1mcmFtZXdvcmsgQ29yZUZvdW5kYXRpb24gLWZyYW1ld29yayBDb3JlR3Jh
cGhpY3MgLWZyYW1ld29yayBDb3JlVGV4dCAtZnJhbWV3b3JrIEZvdW5kYXRpb24gLWZyYW1ld29y
ayBJbWFnZUlPIC1mcmFtZXdvcmsgSU9LaXQgLWZyYW1ld29yayBJT1N1cmZhY2UgLWZyYW1ld29y
ayBXZWJLaXRMZWdhY3kgLWxuZXR3b3JrICQoV0tfQUNDRVNTSUJJTElUWV9MREZMQUdTKSAkKFdL
X0FQUEtJVF9MREZMQUdTKSAkKFdLX0FTU0VSVElPTl9TRVJWSUNFU19MREZMQUdTKSAkKFdLX0JB
Q0tCT0FSRF9TRVJWSUNFU19MREZMQUdTKSAkKFdLX1JVTk5JTkdCT0FSRF9TRVJWSUNFU19MREZM
QUdTKSAkKFdLX0FVVEhLSVRfTERGTEFHUykgJChXS19DQVJCT05fTERGTEFHUykgJChXS19DT1JF
X1BSRURJQ1RJT05fTERGTEFHUykgJChXS19DT1JFX1NFUlZJQ0VTX0xERkxBR1MpICQoV0tfR1JB
UEhJQ1NfU0VSVklDRVNfTERGTEFHUykgJChXS19MSUJTQU5EQk9YX0xERkxBR1MpICQoV0tfTElC
V0VCUlRDX0xERkxBR1MpICQoV0tfTU9CSUxFX0NPUkVfU0VSVklDRVNfTERGTEFHUykgJChXS19N
T0JJTEVfR0VTVEFMVF9MREZMQUdTKSAkKFdLX1BERktJVF9MREZMQUdTKSAkKFdLX1NBRkVfQlJP
V1NJTkdfTERGTEFHUykgJChXS19TRUNVUklUWV9JTlRFUkZBQ0VfTERGTEFHUykgJChXS19VSUtJ
VF9MREZMQUdTKSAkKFdLX1VSTF9GT1JNQVRUSU5HX0xERkxBR1MpICQoV0tfV0VCSU5TUEVDVE9S
VUlfTERGTEFHUyk7CiAKIC8vIFByZXZlbnQgQysrIHN0YW5kYXJkIGxpYnJhcnkgYmFzaWNfc3Ry
aW5nc3RyZWFtLCBvcGVyYXRvciBuZXcsIGRlbGV0ZSBhbmQgdGhlaXIgcmVsYXRlZCBleGNlcHRp
b24gdHlwZXMgZnJvbSBiZWluZyBleHBvcnRlZCBhcyB3ZWFrIHN5bWJvbHMuCiBVTkVYUE9SVEVE
X1NZTUJPTF9MREZMQUdTID0gLVdsLC11bmV4cG9ydGVkX3N5bWJvbCAtV2wsX19aVElTdDliYWRf
YWxsb2MgLVdsLC11bmV4cG9ydGVkX3N5bWJvbCAtV2wsX19aVElTdDlleGNlcHRpb24gLVdsLC11
bmV4cG9ydGVkX3N5bWJvbCAtV2wsX19aVFNTdDliYWRfYWxsb2MgLVdsLC11bmV4cG9ydGVkX3N5
bWJvbCAtV2wsX19aVFNTdDlleGNlcHRpb24gLVdsLC11bmV4cG9ydGVkX3N5bWJvbCAtV2wsX19a
ZGxQdlNfIC1XbCwtdW5leHBvcnRlZF9zeW1ib2wgLVdsLF9fWm53bVB2IC1XbCwtdW5leHBvcnRl
ZF9zeW1ib2wgLVdsLF9fWm53bSAtV2wsLXVuZXhwb3J0ZWRfc3ltYm9sIC1XbCxfX1pOU3QzX18x
OGZ1bmN0aW9uSUZ2TjdXZWJDb3JlMTJQb2xpY3lBY3Rpb25FRUVDMkVPUzRfIC1XbCwtdW5leHBv
cnRlZF9zeW1ib2wgLVdsLF9fWk5TdDNfXzE4ZnVuY3Rpb25JRnZON1dlYkNvcmUxMlBvbGljeUFj
dGlvbkVFRUMxRU9TNF8gLVdsLC11bmV4cG9ydGVkX3N5bWJvbCAtV2wsX19aTlN0M19fMThmdW5j
dGlvbklGdk43V2ViQ29yZTEyUG9saWN5QWN0aW9uRUVFYVNFRG4gLVdsLC11bmV4cG9ydGVkX3N5
bWJvbCAtV2wsX19aTktTdDNfXzE4ZnVuY3Rpb25JRnZON1dlYkNvcmUxMlBvbGljeUFjdGlvbkVF
RWNsRVMyXyAtV2wsLXVuZXhwb3J0ZWRfc3ltYm9sIC1XbCxfX1pOU3QzX18xOGZ1bmN0aW9uSUZ2
TjdXZWJDb3JlMTJQb2xpY3lBY3Rpb25FRUU0c3dhcEVSUzRfIC1XbCwtdW5leHBvcnRlZF9zeW1i
b2wgLVdsLF9fWk5TdDNfXzE4ZnVuY3Rpb25JRnZON1dlYkNvcmUxMlBvbGljeUFjdGlvbkVFRUMx
RVJLUzRfIC1XbCwtdW5leHBvcnRlZF9zeW1ib2wgLVdsLF9fWk5TdDNfXzE4ZnVuY3Rpb25JRnZO
N1dlYkNvcmUxMlBvbGljeUFjdGlvbkVFRUMyRVJLUzRfIC1XbCwtdW5leHBvcnRlZF9zeW1ib2wg
LVdsLF9fWk5TdDNfXzE4ZnVuY3Rpb25JRnZON1dlYkNvcmUxMlBvbGljeUFjdGlvbkVFRUQxRXYg
LVdsLC11bmV4cG9ydGVkX3N5bWJvbCAtV2wsX19aTlN0M19fMThmdW5jdGlvbklGdk43V2ViQ29y
ZTEyUG9saWN5QWN0aW9uRUVFRDJFdiAtV2wsLXVuZXhwb3J0ZWRfc3ltYm9sIC1XbCxfX1pOU3Qz
X18xOGZ1bmN0aW9uSUZ2TjdXZWJDb3JlMTJQb2xpY3lBY3Rpb25FRUVhU0VSS1M0XyAtV2wsLXVu
ZXhwb3J0ZWRfc3ltYm9sIC1XbCxfX1pUVk5TdDNfXzExN2JhZF9mdW5jdGlvbl9jYWxsRSAtV2ws
LXVuZXhwb3J0ZWRfc3ltYm9sIC1XbCxfX1pUQ05TdDNfXzExOGJhc2ljX3N0cmluZ3N0cmVhbUlj
TlNfMTFjaGFyX3RyYWl0c0ljRUVOU185YWxsb2NhdG9ySWNFRUVFMF9OU18xM2Jhc2ljX2lzdHJl
YW1JY1MyX0VFIC1XbCwtdW5leHBvcnRlZF9zeW1ib2wgLVdsLF9fWlRDTlN0M19fMTE4YmFzaWNf
c3RyaW5nc3RyZWFtSWNOU18xMWNoYXJfdHJhaXRzSWNFRU5TXzlhbGxvY2F0b3JJY0VFRUUwX05T
XzE0YmFzaWNfaW9zdHJlYW1JY1MyX0VFIC1XbCwtdW5leHBvcnRlZF9zeW1ib2wgLVdsLF9fWlRD
TlN0M19fMTE4YmFzaWNfc3RyaW5nc3RyZWFtSWNOU18xMWNoYXJfdHJhaXRzSWNFRU5TXzlhbGxv
Y2F0b3JJY0VFRUUxNl9OU18xM2Jhc2ljX29zdHJlYW1JY1MyX0VFIC1XbCwtdW5leHBvcnRlZF9z
eW1ib2wgLVdsLF9fWlRUTlN0M19fMTE4YmFzaWNfc3RyaW5nc3RyZWFtSWNOU18xMWNoYXJfdHJh
aXRzSWNFRU5TXzlhbGxvY2F0b3JJY0VFRUUgLVdsLC11bmV4cG9ydGVkX3N5bWJvbCAtV2wsX19a
VFZOU3QzX18xMTViYXNpY19zdHJpbmdidWZJY05TXzExY2hhcl90cmFpdHNJY0VFTlNfOWFsbG9j
YXRvckljRUVFRSAtV2wsLXVuZXhwb3J0ZWRfc3ltYm9sIC1XbCxfX1pUVk5TdDNfXzExOGJhc2lj
X3N0cmluZ3N0cmVhbUljTlNfMTFjaGFyX3RyYWl0c0ljRUVOU185YWxsb2NhdG9ySWNFRUVFIC1X
bCwtdW5leHBvcnRlZF9zeW1ib2wgLVdsLF9fWlRDTlN0M19fMTE4YmFzaWNfc3RyaW5nc3RyZWFt
SWNOU18xMWNoYXJfdHJhaXRzSWNFRU5TXzlhbGxvY2F0b3JJY0VFRUU4X05TXzEzYmFzaWNfb3N0
cmVhbUljUzJfRUU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL3NwaS9pb3Mv
QmFja0JvYXJkU2VydmljZXNTUEkuaCBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vc3BpL2lvcy9C
YWNrQm9hcmRTZXJ2aWNlc1NQSS5oCmluZGV4IDZkOGQ4OTQzZTRjYzNjYTc5OWYzNzIyMTQ0MTM2
OTI0MDlkNzk2MzcuLjA5MDE0ZDQ0MWUxYWQ5YjBmNGYyNzAzN2JkYzEwYzIzM2Q0NWVjMWEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vc3BpL2lvcy9CYWNrQm9hcmRTZXJ2aWNl
c1NQSS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vc3BpL2lvcy9CYWNrQm9hcmRTZXJ2
aWNlc1NQSS5oCkBAIC0yNywxMSArMjcsMjcgQEAKIAogI2ltcG9ydCA8QmFja0JvYXJkU2Vydmlj
ZXMvQktTQW5pbWF0aW9uRmVuY2UuaD4KICNpbXBvcnQgPEJhY2tCb2FyZFNlcnZpY2VzL0JLU0Fu
aW1hdGlvbkZlbmNlX1ByaXZhdGUuaD4KKyNpbXBvcnQgPEJhY2tCb2FyZFNlcnZpY2VzL0JLU01v
dXNlUG9pbnRlclNlcnZpY2UuaD4KIAogI2Vsc2UKIAorI2ltcG9ydCAiQmFzZUJvYXJkU1BJLmgi
CisKIEBpbnRlcmZhY2UgQktTQW5pbWF0aW9uRmVuY2VIYW5kbGUgOiBOU09iamVjdAogLSAobWFj
aF9wb3J0X3QpQ0FQb3J0OwogQGVuZAogCitAY2xhc3MgQktTTW91c2VQb2ludGVyRGV2aWNlOwor
CitAcHJvdG9jb2wgQktTTW91c2VQb2ludGVyRGV2aWNlT2JzZXJ2ZXIgPE5TT2JqZWN0PgorQG9w
dGlvbmFsCistICh2b2lkKW1vdXNlUG9pbnRlckRldmljZXNEaWRDb25uZWN0OihOU1NldDxCS1NN
b3VzZVBvaW50ZXJEZXZpY2UgKj4gKiltb3VzZVBvaW50ZXJEZXZpY2VzOworLSAodm9pZCltb3Vz
ZVBvaW50ZXJEZXZpY2VzRGlkRGlzY29ubmVjdDooTlNTZXQ8QktTTW91c2VQb2ludGVyRGV2aWNl
ICo+ICopbW91c2VQb2ludGVyRGV2aWNlczsKK0BlbmQKKworQGludGVyZmFjZSBCS1NNb3VzZVBv
aW50ZXJTZXJ2aWNlIDogTlNPYmplY3QKKysgKEJLU01vdXNlUG9pbnRlclNlcnZpY2UgKilzaGFy
ZWRJbnN0YW5jZTsKKy0gKGlkPEJTSW52YWxpZGF0YWJsZT4pYWRkUG9pbnRlckRldmljZU9ic2Vy
dmVyOihpZDxCS1NNb3VzZVBvaW50ZXJEZXZpY2VPYnNlcnZlcj4pb2JzZXJ2ZXI7CitAZW5kCisK
ICNlbmRpZiAvLyBVU0UoQVBQTEVfSU5URVJOQUxfU0RLKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9QbGF0Zm9ybS9zcGkvaW9zL0Jhc2VCb2FyZFNQSS5oIGIvU291cmNlL1dlYktpdC9QbGF0
Zm9ybS9zcGkvaW9zL0Jhc2VCb2FyZFNQSS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmFiMDQxODY5NWI5MGZkODMx
YjhkNjFhZDgxODlhMGMzOTZjZGRiNDAKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0
L1BsYXRmb3JtL3NwaS9pb3MvQmFzZUJvYXJkU1BJLmgKQEAgLTAsMCArMSwzNiBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
CisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNpZiBVU0UoQVBQTEVfSU5URVJOQUxfU0RLKQorCisjaW1wb3J0IDxCYXNlQm9hcmQv
QlNJbnZhbGlkYXRhYmxlLmg+CisKKyNlbHNlCisKK0Bwcm90b2NvbCBCU0ludmFsaWRhdGFibGUg
PE5TT2JqZWN0PgorLSAodm9pZClpbnZhbGlkYXRlOworQGVuZAorCisjZW5kaWYgLy8gVVNFKEFQ
UExFX0lOVEVSTkFMX1NESykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlBy
b2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJv
Y2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHAKaW5kZXggNzEwOGI2NTFhMGNhOTRmY2ZjMjIzNzUy
MzEzZjUxYmIxMDkzMTdmNS4uNmIyODNlZjI0NThkODM2NTkzNDRiZTlkNTQ1OTBjYzJlMTc2ZTIw
NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFy
YW1ldGVycy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9u
UGFyYW1ldGVycy5jcHAKQEAgLTg1LDYgKzg1LDkgQEAgdm9pZCBXZWJQcm9jZXNzQ3JlYXRpb25Q
YXJhbWV0ZXJzOjplbmNvZGUoSVBDOjpFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogI2VuZGlmCiAg
ICAgZW5jb2RlciA8PCB0ZXh0Q2hlY2tlclN0YXRlOwogICAgIGVuY29kZXIgPDwgZnVsbEtleWJv
YXJkQWNjZXNzRW5hYmxlZDsKKyNpZiBIQVZFKFVJS0lUX1dJVEhfTU9VU0VfU1VQUE9SVCkgJiYg
UExBVEZPUk0oSU9TKQorICAgIGVuY29kZXIgPDwgaGFzTW91c2VEZXZpY2U7CisjZW5kaWYKICAg
ICBlbmNvZGVyIDw8IGRlZmF1bHRSZXF1ZXN0VGltZW91dEludGVydmFsOwogICAgIGVuY29kZXIg
PDwgYmFja0ZvcndhcmRDYWNoZUNhcGFjaXR5OwogI2lmIFBMQVRGT1JNKENPQ09BKQpAQCAtMjk0
LDYgKzI5NywxMCBAQCBib29sIFdlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnM6OmRlY29kZShJ
UEM6OkRlY29kZXImIGRlY29kZXIsIFdlYlByb2Nlc3NDcmVhdAogICAgICAgICByZXR1cm4gZmFs
c2U7CiAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShwYXJhbWV0ZXJzLmZ1bGxLZXlib2FyZEFjY2Vz
c0VuYWJsZWQpKQogICAgICAgICByZXR1cm4gZmFsc2U7CisjaWYgSEFWRShVSUtJVF9XSVRIX01P
VVNFX1NVUFBPUlQpICYmIFBMQVRGT1JNKElPUykKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHBh
cmFtZXRlcnMuaGFzTW91c2VEZXZpY2UpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisjZW5kaWYK
ICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHBhcmFtZXRlcnMuZGVmYXVsdFJlcXVlc3RUaW1lb3V0
SW50ZXJ2YWwpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgaWYgKCFkZWNvZGVyLmRlY29k
ZShwYXJhbWV0ZXJzLmJhY2tGb3J3YXJkQ2FjaGVDYXBhY2l0eSkpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmggYi9Tb3VyY2Uv
V2ViS2l0L1NoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgKaW5kZXggY2EyM2M2
NzYzOGE3ZmU0MTUxYmMzNmE1YjJmZjJkZGFkZTVmOWY4NS4uM2Q4NmE3NGIxZDNlZTUxMDE1MzRh
ZDM5MjU2MjMyMjFlZmMzZWNhYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2Vi
UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dl
YlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaApAQCAtMTE3LDYgKzExNyw5IEBAIHN0cnVjdCBX
ZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzIHsKICAgICBib29sIHNob3VsZFN1cHByZXNzTWVt
b3J5UHJlc3N1cmVIYW5kbGVyIHsgZmFsc2UgfTsKICAgICBib29sIHNob3VsZFVzZUZvbnRTbW9v
dGhpbmcgeyB0cnVlIH07CiAgICAgYm9vbCBmdWxsS2V5Ym9hcmRBY2Nlc3NFbmFibGVkIHsgZmFs
c2UgfTsKKyNpZiBIQVZFKFVJS0lUX1dJVEhfTU9VU0VfU1VQUE9SVCkgJiYgUExBVEZPUk0oSU9T
KQorICAgIGJvb2wgaGFzTW91c2VEZXZpY2UgeyBmYWxzZSB9OworI2VuZGlmCiAgICAgYm9vbCBt
ZW1vcnlDYWNoZURpc2FibGVkIHsgZmFsc2UgfTsKICAgICBib29sIGF0dHJTdHlsZUVuYWJsZWQg
eyBmYWxzZSB9OwogICAgIGJvb2wgdXNlR1BVUHJvY2Vzc0Zvck1lZGlhRW5hYmxlZCB7IGZhbHNl
IH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50eHQgYi9Tb3VyY2Uv
V2ViS2l0L1NvdXJjZXNDb2NvYS50eHQKaW5kZXggNjhjNDRiNDkzNTZkNTMyOWE4NjVlYTgyNmYy
N2I2ZTNhMDMwNmJlZi4uZTg2ZDE1YzZiYmU4ODkwMDBkZmI1OWY3N2I3YWUwZjAxOTNiOWYzYiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9Tb3VyY2VzQ29jb2EudHh0CisrKyBiL1NvdXJjZS9X
ZWJLaXQvU291cmNlc0NvY29hLnR4dApAQCAtNDYwLDYgKzQ2MCw3IEBAIFVJUHJvY2Vzcy9pb3Mv
V0tHZW9sb2NhdGlvblByb3ZpZGVySU9TLm1tCiBVSVByb2Nlc3MvaW9zL1dLR2VvbG9jYXRpb25Q
cm92aWRlcklPU09iakNTZWN1cml0eU9yaWdpbi5tbQogVUlQcm9jZXNzL2lvcy9XS0hpZ2hsaWdo
dExvbmdQcmVzc0dlc3R1cmVSZWNvZ25pemVyLm1tCiBVSVByb2Nlc3MvaW9zL1dLS2V5Ym9hcmRT
Y3JvbGxpbmdBbmltYXRvci5tbQorVUlQcm9jZXNzL2lvcy9XS01vdXNlRGV2aWNlT2JzZXJ2ZXIu
bW0KIFVJUHJvY2Vzcy9pb3MvV0tNb3VzZUdlc3R1cmVSZWNvZ25pemVyLm1tCiBVSVByb2Nlc3Mv
aW9zL1dLUGFzc3dvcmRWaWV3Lm1tCiBVSVByb2Nlc3MvaW9zL1dLUERGUGFnZU51bWJlckluZGlj
YXRvci5tbQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViUHJv
Y2Vzc1Bvb2xDb2NvYS5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlByb2Nl
c3NQb29sQ29jb2EubW0KaW5kZXggMDliZmZlNGM5ZGNmZGM1OWYwMTkwMDczNDJmZmVjYmI3YmI2
Njc1Ni4uY2Y3NTUyMjZlY2I3NDA4Y2YwM2QwMmZlZGMyOGU4ZTIyYWJhYTg3YiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViUHJvY2Vzc1Bvb2xDb2NvYS5tbQor
KysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJQcm9jZXNzUG9vbENvY29hLm1t
CkBAIC00MCw2ICs0MCw3IEBACiAjaW1wb3J0ICJUZXh0Q2hlY2tlci5oIgogI2ltcG9ydCAiVXNl
ckludGVyZmFjZUlkaW9tLmgiCiAjaW1wb3J0ICJXS0Jyb3dzaW5nQ29udGV4dENvbnRyb2xsZXJJ
bnRlcm5hbC5oIgorI2ltcG9ydCAiV0tNb3VzZURldmljZU9ic2VydmVyLmgiCiAjaW1wb3J0ICJX
ZWJCYWNrRm9yd2FyZENhY2hlLmgiCiAjaW1wb3J0ICJXZWJNZW1vcnlQcmVzc3VyZUhhbmRsZXIu
aCIKICNpbXBvcnQgIldlYlBhZ2VHcm91cC5oIgpAQCAtNTA1LDYgKzUwNiwxMCBAQCB2b2lkIFdl
YlByb2Nlc3NQb29sOjpwbGF0Zm9ybUluaXRpYWxpemVXZWJQcm9jZXNzKGNvbnN0IFdlYlByb2Nl
c3NQcm94eSYgcHJvY2VzcwogI2lmIEhBVkUoQ0FUQUxZU1RfVVNFUl9JTlRFUkZBQ0VfSURJT01f
QU5EX1NDQUxFX0ZBQ1RPUikKICAgICBwYXJhbWV0ZXJzLm92ZXJyaWRlVXNlckludGVyZmFjZUlk
aW9tQW5kU2NhbGUgPSB7IF9VSUFwcGxpY2F0aW9uQ2F0YWx5c3RVc2VySW50ZXJmYWNlSWRpb20o
KSwgX1VJQXBwbGljYXRpb25DYXRhbHlzdFNjYWxlRmFjdG9yKCkgfTsKICNlbmRpZgorCisjaWYg
SEFWRShVSUtJVF9XSVRIX01PVVNFX1NVUFBPUlQpICYmIFBMQVRGT1JNKElPUykKKyAgICBwYXJh
bWV0ZXJzLmhhc01vdXNlRGV2aWNlID0gW1tXS01vdXNlRGV2aWNlT2JzZXJ2ZXIgc2hhcmVkSW5z
dGFuY2VdIGhhc01vdXNlRGV2aWNlXTsKKyNlbmRpZgogfQogCiB2b2lkIFdlYlByb2Nlc3NQb29s
OjpwbGF0Zm9ybUluaXRpYWxpemVOZXR3b3JrUHJvY2VzcyhOZXR3b3JrUHJvY2Vzc0NyZWF0aW9u
UGFyYW1ldGVycyYgcGFyYW1ldGVycykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9j
ZXNzUHJveHkuY3BwCmluZGV4IDg5ZGQ1ZjE5YmY0YWViNjdkMzc1MzRkNmFjZDczMDRmZWU5ZGVm
MjkuLjNkNGE5NGJmNWNlMGI0NzQyM2NmMWE0NzUwN2IwMjcwZjA2Y2RiMjQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcApAQCAtMTA5LDcgKzEwOSw3IEBA
IHN0YXRpYyBib29sIGlzTWFpblRocmVhZE9yQ2hlY2tEaXNhYmxlZCgpCiAjZW5kaWYKIH0KIAot
c3RhdGljIEhhc2hNYXA8UHJvY2Vzc0lkZW50aWZpZXIsIFdlYlByb2Nlc3NQcm94eSo+JiBhbGxQ
cm9jZXNzZXMoKQorSGFzaE1hcDxQcm9jZXNzSWRlbnRpZmllciwgV2ViUHJvY2Vzc1Byb3h5Kj4m
IFdlYlByb2Nlc3NQcm94eTo6YWxsUHJvY2Vzc2VzKCkKIHsKICAgICBBU1NFUlQoaXNNYWluVGhy
ZWFkT3JDaGVja0Rpc2FibGVkKCkpOwogICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxIYXNoTWFw
PFByb2Nlc3NJZGVudGlmaWVyLCBXZWJQcm9jZXNzUHJveHkqPj4gbWFwOwpAQCAtMjEwLDggKzIx
MCwxNiBAQCBXZWJQcm9jZXNzUHJveHk6OldlYlByb2Nlc3NQcm94eShXZWJQcm9jZXNzUG9vbCYg
cHJvY2Vzc1Bvb2wsIFdlYnNpdGVEYXRhU3RvcmUqCiAgICAgQVNTRVJUX1VOVVNFRChyZXN1bHQs
IHJlc3VsdC5pc05ld0VudHJ5KTsKIAogICAgIFdlYlBhc3RlYm9hcmRQcm94eTo6c2luZ2xldG9u
KCkuYWRkV2ViUHJvY2Vzc1Byb3h5KCp0aGlzKTsKKworICAgIHBsYXRmb3JtSW5pdGlhbGl6ZSgp
OwogfQogCisjaWYgIVBMQVRGT1JNKElPUykKK3ZvaWQgV2ViUHJvY2Vzc1Byb3h5OjpwbGF0Zm9y
bUluaXRpYWxpemUoKQoreworfQorI2VuZGlmCisKIFdlYlByb2Nlc3NQcm94eTo6fldlYlByb2Nl
c3NQcm94eSgpCiB7CiAgICAgUkVMRUFTRV9BU1NFUlQoaXNNYWluVGhyZWFkT3JDaGVja0Rpc2Fi
bGVkKCkpOwpAQCAtMjQwLDggKzI0OCwxNiBAQCBXZWJQcm9jZXNzUHJveHk6On5XZWJQcm9jZXNz
UHJveHkoKQogI2lmIFBMQVRGT1JNKE1BQykKICAgICBIaWdoUGVyZm9ybWFuY2VHUFVNYW5hZ2Vy
OjpzaW5nbGV0b24oKS5yZW1vdmVQcm9jZXNzUmVxdWlyaW5nSGlnaFBlcmZvcm1hbmNlKHRoaXMp
OwogI2VuZGlmCisKKyAgICBwbGF0Zm9ybURlc3Ryb3koKTsKIH0KIAorI2lmICFQTEFURk9STShJ
T1MpCit2b2lkIFdlYlByb2Nlc3NQcm94eTo6cGxhdGZvcm1EZXN0cm95KCkKK3sKK30KKyNlbmRp
ZgorCiB2b2lkIFdlYlByb2Nlc3NQcm94eTo6c2V0SXNJblByb2Nlc3NDYWNoZShib29sIHZhbHVl
KQogewogICAgIGlmICh2YWx1ZSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2ViUHJvY2Vzc1Byb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNz
UHJveHkuaAppbmRleCBlMGU4ZGMwYWM3MDhiMTI0OGIxY2M4MGFkY2IxOWQxODQxMjM5YzczLi40
NDM5ZjIwNzMyZGRmMWExM2JjZTgzNDUzYzA5MjdlMjNhYzliYjhlIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaApAQCAtMjExLDYgKzIxMSwxMCBAQCBwdWJsaWM6
CiAKICAgICBzdGF0aWMgYm9vbCBmdWxsS2V5Ym9hcmRBY2Nlc3NFbmFibGVkKCk7CiAKKyNpZiBI
QVZFKFVJS0lUX1dJVEhfTU9VU0VfU1VQUE9SVCkgJiYgUExBVEZPUk0oSU9TKQorICAgIHN0YXRp
YyB2b2lkIG5vdGlmeUhhc01vdXNlRGV2aWNlQ2hhbmdlZCgpOworI2VuZGlmCisKICAgICB2b2lk
IGZldGNoV2Vic2l0ZURhdGEoUEFMOjpTZXNzaW9uSUQsIE9wdGlvblNldDxXZWJzaXRlRGF0YVR5
cGU+LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYnNpdGVEYXRhKT4mJik7CiAgICAgdm9pZCBk
ZWxldGVXZWJzaXRlRGF0YShQQUw6OlNlc3Npb25JRCwgT3B0aW9uU2V0PFdlYnNpdGVEYXRhVHlw
ZT4sIFdhbGxUaW1lIG1vZGlmaWVkU2luY2UsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7
CiAgICAgdm9pZCBkZWxldGVXZWJzaXRlRGF0YUZvck9yaWdpbnMoUEFMOjpTZXNzaW9uSUQsIE9w
dGlvblNldDxXZWJzaXRlRGF0YVR5cGU+LCBjb25zdCBWZWN0b3I8V2ViQ29yZTo6U2VjdXJpdHlP
cmlnaW5EYXRhPiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CkBAIC00MTAsNiArNDE0
LDExIEBAIHByb3RlY3RlZDoKICAgICB2b2lkIHZhbGlkYXRlRnJlZXplclN0YXR1cygpOwogCiBw
cml2YXRlOgorICAgIHN0YXRpYyBIYXNoTWFwPFdlYkNvcmU6OlByb2Nlc3NJZGVudGlmaWVyLCBX
ZWJQcm9jZXNzUHJveHkqPiYgYWxsUHJvY2Vzc2VzKCk7CisKKyAgICB2b2lkIHBsYXRmb3JtSW5p
dGlhbGl6ZSgpOworICAgIHZvaWQgcGxhdGZvcm1EZXN0cm95KCk7CisKICAgICAvLyBJUEMgbWVz
c2FnZSBoYW5kbGVycy4KICAgICB2b2lkIHVwZGF0ZUJhY2tGb3J3YXJkSXRlbShjb25zdCBCYWNr
Rm9yd2FyZExpc3RJdGVtU3RhdGUmKTsKICAgICB2b2lkIGRpZERlc3Ryb3lGcmFtZShXZWJDb3Jl
OjpGcmFtZUlkZW50aWZpZXIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
aW9zL1dLTW91c2VEZXZpY2VPYnNlcnZlci5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9z
L1dLTW91c2VEZXZpY2VPYnNlcnZlci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjEwNzA0MTY0MGIyZGY0ZmZmNjhk
MTU3YmZkNDQ4YzY5OGE3MTEzYjgKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9pb3MvV0tNb3VzZURldmljZU9ic2VydmVyLmgKQEAgLTAsMCArMSw0NyBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFO
RCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKKyNpZiBIQVZFKFVJS0lUX1dJVEhfTU9VU0VfU1VQUE9SVCkgJiYgUExBVEZPUk0o
SU9TKQorCisjaW1wb3J0ICJCYWNrQm9hcmRTZXJ2aWNlc1NQSS5oIgorCituYW1lc3BhY2UgV2Vi
S2l0IHsKK2NsYXNzIFdlYlByb2Nlc3NQcm94eTsKK30KKworQGludGVyZmFjZSBXS01vdXNlRGV2
aWNlT2JzZXJ2ZXIgOiBOU09iamVjdDxCS1NNb3VzZVBvaW50ZXJEZXZpY2VPYnNlcnZlcj4KKwor
KyAoV0tNb3VzZURldmljZU9ic2VydmVyICopc2hhcmVkSW5zdGFuY2U7CisKKy0gKHZvaWQpc3Rh
cnQ7CistICh2b2lkKXN0b3A7CisKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkgQk9P
TCBoYXNNb3VzZURldmljZTsKKworLSAodm9pZClfc2V0SGFzTW91c2VEZXZpY2VGb3JUZXN0aW5n
OihCT09MKWhhc01vdXNlRGV2aWNlOworCitAZW5kCisKKyNlbmRpZiAvLyBIQVZFKFVJS0lUX1dJ
VEhfTU9VU0VfU1VQUE9SVCkgJiYgUExBVEZPUk0oSU9TKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvaW9zL1dLTW91c2VEZXZpY2VPYnNlcnZlci5tbSBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL2lvcy9XS01vdXNlRGV2aWNlT2JzZXJ2ZXIubW0KbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNWEw
NDI0MTg5ZWY3MzZmMmI3OWU4ZWQ4MWEzNzYxNzk0YmYyNDczYgotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS01vdXNlRGV2aWNlT2JzZXJ2ZXIubW0KQEAg
LTAsMCArMSw5NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbXBvcnQgImNvbmZpZy5oIgorI2ltcG9ydCAi
V0tNb3VzZURldmljZU9ic2VydmVyLmgiCisKKyNpZiBIQVZFKFVJS0lUX1dJVEhfTU9VU0VfU1VQ
UE9SVCkgJiYgUExBVEZPUk0oSU9TKQorCisjaW1wb3J0ICJXZWJQcm9jZXNzUHJveHkuaCIKKwor
QGltcGxlbWVudGF0aW9uIFdLTW91c2VEZXZpY2VPYnNlcnZlciB7CisgICAgQk9PTCBfaGFzTW91
c2VEZXZpY2U7CisgICAgaWQ8QlNJbnZhbGlkYXRhYmxlPiBfdG9rZW47Cit9CisKKysgKFdLTW91
c2VEZXZpY2VPYnNlcnZlciAqKXNoYXJlZEluc3RhbmNlIHsKKyAgICBzdGF0aWMgV0tNb3VzZURl
dmljZU9ic2VydmVyICppbnN0YW5jZTsKKyAgICBpZiAoIWluc3RhbmNlKQorICAgICAgICBpbnN0
YW5jZSA9IFtbV0tNb3VzZURldmljZU9ic2VydmVyIGFsbG9jXSBpbml0XTsKKyAgICByZXR1cm4g
aW5zdGFuY2U7Cit9CisKKy0gKHZvaWQpZGVhbGxvYworeworICAgIFtzZWxmIHN0b3BdOworCisg
ICAgW3N1cGVyIGRlYWxsb2NdOworfQorCisjcHJhZ21hIG1hcmsgLSBCS1NNb3VzZVBvaW50ZXJE
ZXZpY2VPYnNlcnZlciBzdGF0ZQorCistICh2b2lkKXN0YXJ0Cit7CisgICAgaWYgKF90b2tlbikK
KyAgICAgICAgcmV0dXJuOworCisgICAgX3Rva2VuID0gW1tCS1NNb3VzZVBvaW50ZXJTZXJ2aWNl
IHNoYXJlZEluc3RhbmNlXSBhZGRQb2ludGVyRGV2aWNlT2JzZXJ2ZXI6c2VsZl07Cit9CisKKy0g
KHZvaWQpc3RvcAoreworICAgIGlmICghX3Rva2VuKQorICAgICAgICByZXR1cm47CisKKyAgICBb
X3Rva2VuIGludmFsaWRhdGVdOworICAgIF90b2tlbiA9IG5pbDsKK30KKworI3ByYWdtYSBtYXJr
IC0gQktTTW91c2VQb2ludGVyRGV2aWNlT2JzZXJ2ZXIgaGFuZGxlcnMKKworLSAodm9pZCltb3Vz
ZVBvaW50ZXJEZXZpY2VzRGlkQ2hhbmdlOihOU1NldDxCS1NNb3VzZVBvaW50ZXJEZXZpY2UgKj4g
Kiltb3VzZVBvaW50ZXJEZXZpY2VzCit7CisgICAgQk9PTCBoYXNNb3VzZURldmljZSA9IFttb3Vz
ZVBvaW50ZXJEZXZpY2VzIGNvdW50XSA+IDA7CisgICAgaWYgKGhhc01vdXNlRGV2aWNlID09IF9o
YXNNb3VzZURldmljZSkKKyAgICAgICAgcmV0dXJuOworCisgICAgX2hhc01vdXNlRGV2aWNlID0g
aGFzTW91c2VEZXZpY2U7CisKKyAgICBXZWJLaXQ6OldlYlByb2Nlc3NQcm94eTo6bm90aWZ5SGFz
TW91c2VEZXZpY2VDaGFuZ2VkKCk7Cit9CisKKyNwcmFnbWEgbWFyayAtIFRlc3RpbmcKKworLSAo
dm9pZClfc2V0SGFzTW91c2VEZXZpY2VGb3JUZXN0aW5nOihCT09MKWhhc01vdXNlRGV2aWNlCit7
CisgICAgX2hhc01vdXNlRGV2aWNlID0gaGFzTW91c2VEZXZpY2U7CisKKyAgICBXZWJLaXQ6Oldl
YlByb2Nlc3NQcm94eTo6bm90aWZ5SGFzTW91c2VEZXZpY2VDaGFuZ2VkKCk7Cit9CisKK0BlbmQK
KworI2VuZGlmIC8vIEhBVkUoVUlLSVRfV0lUSF9NT1VTRV9TVVBQT1JUKSAmJiBQTEFURk9STShJ
T1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV2ViUHJvY2Vzc1By
b3h5SU9TLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dlYlByb2Nlc3NQcm94eUlP
Uy5tbQppbmRleCBlYjE3N2NkN2NkZjUxZjAyN2Y3YzViMWVjNzJjODczZmZhNjE4NGZhLi5hODBm
MDA2NmM4ZDUwYWY4YWIyMDBlN2VjNGUzNTAzNzI4NmUzNmQ3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9pb3MvV2ViUHJvY2Vzc1Byb3h5SU9TLm1tCisrKyBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL2lvcy9XZWJQcm9jZXNzUHJveHlJT1MubW0KQEAgLTMwLDEwICszMCw0
MiBAQAogCiAjaW1wb3J0ICJBY2Nlc3NpYmlsaXR5U3VwcG9ydFNQSS5oIgogI2ltcG9ydCAiV0tG
dWxsS2V5Ym9hcmRBY2Nlc3NXYXRjaGVyLmgiCisjaW1wb3J0ICJXS01vdXNlRGV2aWNlT2JzZXJ2
ZXIuaCIKICNpbXBvcnQgIldlYlByb2Nlc3NNZXNzYWdlcy5oIgogCiBuYW1lc3BhY2UgV2ViS2l0
IHsKIAorI2lmIFBMQVRGT1JNKElPUykKKwordm9pZCBXZWJQcm9jZXNzUHJveHk6OnBsYXRmb3Jt
SW5pdGlhbGl6ZSgpCit7CisjaWYgSEFWRShVSUtJVF9XSVRIX01PVVNFX1NVUFBPUlQpCisgICAg
aWYgKFdlYlByb2Nlc3NQcm94eTo6YWxsUHJvY2Vzc2VzKCkuc2l6ZSgpID09IDEpCisgICAgICAg
IFtbV0tNb3VzZURldmljZU9ic2VydmVyIHNoYXJlZEluc3RhbmNlXSBzdGFydF07CisjZW5kaWYK
K30KKwordm9pZCBXZWJQcm9jZXNzUHJveHk6OnBsYXRmb3JtRGVzdHJveSgpCit7CisjaWYgSEFW
RShVSUtJVF9XSVRIX01PVVNFX1NVUFBPUlQpCisgICAgaWYgKFdlYlByb2Nlc3NQcm94eTo6YWxs
UHJvY2Vzc2VzKCkuaXNFbXB0eSgpKQorICAgICAgICBbW1dLTW91c2VEZXZpY2VPYnNlcnZlciBz
aGFyZWRJbnN0YW5jZV0gc3RvcF07CisjZW5kaWYKK30KKworI2lmIEhBVkUoVUlLSVRfV0lUSF9N
T1VTRV9TVVBQT1JUKQorCit2b2lkIFdlYlByb2Nlc3NQcm94eTo6bm90aWZ5SGFzTW91c2VEZXZp
Y2VDaGFuZ2VkKCkKK3sKKyAgICBib29sIGhhc01vdXNlRGV2aWNlID0gW1tXS01vdXNlRGV2aWNl
T2JzZXJ2ZXIgc2hhcmVkSW5zdGFuY2VdIGhhc01vdXNlRGV2aWNlXTsKKyAgICBmb3IgKGF1dG8q
IHdlYlByb2Nlc3NQcm94eSA6IFdlYlByb2Nlc3NQcm94eTo6YWxsUHJvY2Vzc2VzKCkudmFsdWVz
KCkpCisgICAgICAgIHdlYlByb2Nlc3NQcm94eS0+c2VuZChNZXNzYWdlczo6V2ViUHJvY2Vzczo6
U2V0SGFzTW91c2VEZXZpY2UoaGFzTW91c2VEZXZpY2UpLCAwKTsKK30KKworI2VuZGlmIC8vIEhB
VkUoVUlLSVRfV0lUSF9NT1VTRV9TVVBQT1JUKQorCisjZW5kaWYgLy8gUExBVEZPUk0oSU9TKQor
CiBib29sIFdlYlByb2Nlc3NQcm94eTo6ZnVsbEtleWJvYXJkQWNjZXNzRW5hYmxlZCgpCiB7CiAj
aWYgRU5BQkxFKEZVTExfS0VZQk9BUkRfQUNDRVNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggNTcyMTM1NjJhYmMxYmUzODQyYmUzMWU4
NjE3MzcwZGUyODc4Y2QwYS4uMjg0ZGU2NGQyYzliNDM4ZWI3N2JjMDA3MzA2MmU0YjIwZGVlMWI1
MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CkBAIC0xMzc5LDYgKzEzNzksOCBAQAogCQk5M0JERUIwMTE3MUREN0FGMDBCRkVFMUIgLyogV0tQ
YWdlTG9hZFR5cGVzUHJpdmF0ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gOTNCREVCMDAxNzFERDdBRjAwQkZFRTFCIC8qIFdLUGFnZUxvYWRUeXBlc1By
aXZhdGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9Owog
CQk5M0U2QTRFRTFCQzVERDM5MDBGOEEwRTcgLyogX1dLSGl0VGVzdFJlc3VsdC5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNFNkE0RUQxQkM1REQzOTAw
RjhBMEU3IC8qIF9XS0hpdFRlc3RSZXN1bHQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9
IChQcml2YXRlLCApOyB9OyB9OwogCQk5M0Y1NDlCNDFFMzE3NEI3MDAwRTcyMzkgLyogV0tTbmFw
c2hvdENvbmZpZ3VyYXRpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDkzRjU0OUIzMUUzMTc0QjcwMDBFNzIzOSAvKiBXS1NuYXBzaG90Q29uZmlndXJh
dGlvbi5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFB1YmxpYywgKTsgfTsgfTsKKwkJ
OTUwRjI4ODAyNTI0MTRFQTAwQjc0RjFDIC8qIFdLTW91c2VEZXZpY2VPYnNlcnZlci5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTUwRjI4N0UyNTI0MTRF
OTAwQjc0RjFDIC8qIFdLTW91c2VEZXZpY2VPYnNlcnZlci5oICovOyB9OworCQk5NUM5NDM5MTI1
MjNDMEQwMDA1NEYzRDUgLyogQmFzZUJvYXJkU1BJLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5NUM5NDM5MDI1MjNDMEQwMDA1NEYzRDUgLyogQmFzZUJv
YXJkU1BJLmggKi87IH07CiAJCTk5MDM2QUUyMjNBOTQ5Q0YwMDAwQjA2QSAvKiBfV0tJbnNwZWN0
b3JEZWJ1Z2dhYmxlSW5mb0ludGVybmFsLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA5OTAzNkFFMTIzQTk0OUNFMDAwMEIwNkEgLyogX1dLSW5zcGVjdG9y
RGVidWdnYWJsZUluZm9JbnRlcm5hbC5oICovOyB9OwogCQk5OTAzNkFFNTIzQTk1ODc1MDAwMEIw
NkEgLyogQVBJRGVidWdnYWJsZUluZm8uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDk5MDM2QUUzMjNBOTU4NzQwMDAwQjA2QSAvKiBBUElEZWJ1Z2dhYmxl
SW5mby5oICovOyB9OwogCQk5OTAzNkFFOTIzQTk3MDg3MDAwMEIwNkEgLyogRGVidWdnYWJsZUlu
Zm9EYXRhLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5
OTAzNkFFNzIzQTk3MDg3MDAwMEIwNkEgLyogRGVidWdnYWJsZUluZm9EYXRhLmggKi87IH07CkBA
IC00NDI2LDYgKzQ0MjgsOSBAQAogCQk5M0U2QTRFRDFCQzVERDM5MDBGOEEwRTcgLyogX1dLSGl0
VGVzdFJlc3VsdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBfV0tIaXRUZXN0
UmVzdWx0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzRjU0OUIzMUUzMTc0Qjcw
MDBFNzIzOSAvKiBXS1NuYXBzaG90Q29uZmlndXJhdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBXS1NuYXBzaG90Q29uZmlndXJhdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk5M0Y1NDlCNTFFMzE3NERBMDAwRTcyMzkgLyogV0tTbmFwc2hvdENvbmZp
Z3VyYXRpb24ubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBXS1Nu
YXBzaG90Q29uZmlndXJhdGlvbi5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTUw
RjI4N0UyNTI0MTRFOTAwQjc0RjFDIC8qIFdLTW91c2VEZXZpY2VPYnNlcnZlci5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBXS01vdXNlRGV2aWNlT2JzZXJ2ZXIuaDsgcGF0aCA9
IGlvcy9XS01vdXNlRGV2aWNlT2JzZXJ2ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJOTUwRjI4N0YyNTI0MTRFQTAwQjc0RjFDIC8qIFdLTW91c2VEZXZpY2VPYnNlcnZlci5tbSAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgbmFtZSA9IFdLTW91c2VEZXZpY2VPYnNl
cnZlci5tbTsgcGF0aCA9IGlvcy9XS01vdXNlRGV2aWNlT2JzZXJ2ZXIubW07IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCTk1Qzk0MzkwMjUyM0MwRDAwMDU0RjNENSAvKiBCYXNlQm9hcmRT
UEkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQmFzZUJvYXJkU1BJLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTk5MDM2QUUxMjNBOTQ5Q0UwMDAwQjA2QSAvKiBf
V0tJbnNwZWN0b3JEZWJ1Z2dhYmxlSW5mb0ludGVybmFsLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IF9XS0luc3BlY3RvckRlYnVnZ2FibGVJbmZvSW50ZXJuYWwuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTkwMzZBRTMyM0E5NTg3NDAwMDBCMDZBIC8qIEFQSURl
YnVnZ2FibGVJbmZvLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEFQSURlYnVn
Z2FibGVJbmZvLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTk5MDM2QUU0MjNBOTU4
NzQwMDAwQjA2QSAvKiBBUElEZWJ1Z2dhYmxlSW5mby5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBBUElEZWJ1Z2dhYmxlSW5mby5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CkBAIC03MDIzLDYgKzcwMjgsOCBAQAogCQkJCTkzM0RGODJGMUIzQkMwQjQwMEFF
QTlFMyAvKiBXS0ltYWdlUHJldmlld1ZpZXdDb250cm9sbGVyLm1tICovLAogCQkJCTJERDVFMTI3
MjEwQURDN0EwMERCNjAxMiAvKiBXS0tleWJvYXJkU2Nyb2xsaW5nQW5pbWF0b3IuaCAqLywKIAkJ
CQkyREQ1RTEyNjIxMEFEQzdBMDBEQjYwMTIgLyogV0tLZXlib2FyZFNjcm9sbGluZ0FuaW1hdG9y
Lm1tICovLAorCQkJCTk1MEYyODdFMjUyNDE0RTkwMEI3NEYxQyAvKiBXS01vdXNlRGV2aWNlT2Jz
ZXJ2ZXIuaCAqLywKKwkJCQk5NTBGMjg3RjI1MjQxNEVBMDBCNzRGMUMgLyogV0tNb3VzZURldmlj
ZU9ic2VydmVyLm1tICovLAogCQkJCTJEQjk0Mjk3MjM0RTdBN0YwMEU3NzZBRCAvKiBXS01vdXNl
R2VzdHVyZVJlY29nbml6ZXIuaCAqLywKIAkJCQkyREI5NDI5ODIzNEU3QTdGMDBFNzc2QUQgLyog
V0tNb3VzZUdlc3R1cmVSZWNvZ25pemVyLm1tICovLAogCQkJCUExNUVFREU0MUUzMDFDRUUwMDAw
NjlCMCAvKiBXS1Bhc3N3b3JkVmlldy5oICovLApAQCAtMTAzODMsNiArMTAzOTAsNyBAQAogCQkJ
Y2hpbGRyZW4gPSAoCiAJCQkJQ0UxQTBCQ0MxQTQ4RTZDNjAwNTRFRjc0IC8qIEFzc2VydGlvblNl
cnZpY2VzU1BJLmggKi8sCiAJCQkJQ0RBMDQxRjMxQUNFMjEwNTAwNEExM0VDIC8qIEJhY2tCb2Fy
ZFNlcnZpY2VzU1BJLmggKi8sCisJCQkJOTVDOTQzOTAyNTIzQzBEMDAwNTRGM0Q1IC8qIEJhc2VC
b2FyZFNQSS5oICovLAogCQkJCTJENEFGMDg4MjA0NEMzQzQwMDZDODgxNyAvKiBGcm9udEJvYXJk
U2VydmljZXNTUEkuaCAqLywKIAkJCQlBMTNCM0RBMTIwN0YzOURFMDA5MEM1OEQgLyogTW9iaWxl
V2lGaVNQSS5oICovLAogCQkJCTMxNzhBRjk3MjBFMkE3RjgwMDc0REU5NCAvKiBQREZLaXRTUEku
aCAqLywKQEAgLTEwNzQ5LDYgKzEwNzU3LDcgQEAKIAkJCQkyOTBGNDI3MjE3MkEwQzc0MDA5MzlG
RjAgLyogQXV4aWxpYXJ5UHJvY2Vzc1N1cHBsZW1lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUNE
QTA0MUY0MUFDRTIxMDUwMDRBMTNFQyAvKiBCYWNrQm9hcmRTZXJ2aWNlc1NQSS5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJNDZBMkI2MDkxRTU2NzZBNjAwQzNERURBIC8qIEJhY2tncm91bmRQcm9jZXNz
UmVzcG9uc2l2ZW5lc3NUaW1lci5oIGluIEhlYWRlcnMgKi8sCisJCQkJOTVDOTQzOTEyNTIzQzBE
MDAwNTRGM0Q1IC8qIEJhc2VCb2FyZFNQSS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTE2NEEyRjIx
OTFBRjE0RTAwMTA3MzdEIC8qIEJsb2JEYXRhRmlsZVJlZmVyZW5jZVdpdGhTYW5kYm94RXh0ZW5z
aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQlFMTcwODc2QzE2RDZDQTY5MDBGOTkyMjYgLyogQmxv
YlJlZ2lzdHJ5UHJveHkuaCBpbiBIZWFkZXJzICovLAogCQkJCTRGNjAxNDMyMTU1QzVBQTIwMDFG
QkRFMCAvKiBCbG9ja2luZ1Jlc3BvbnNlTWFwLmggaW4gSGVhZGVycyAqLywKQEAgLTExNjA2LDYg
KzExNjE1LDcgQEAKIAkJCQk1Q0FCREM4NjIyQzQwRkRFMDAxRURFOEUgLyogV0tNZXNzYWdlTGlz
dGVuZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUMxMUUxNjk0MjEyQjg3QzUwMDk4NUZGNiAvKiBX
S01vY2tEaXNwbGF5LmggaW4gSGVhZGVycyAqLywKIAkJCQk0MTFBOEREQjIwREREMUFDMDA2MEQz
NEYgLyogV0tNb2NrTWVkaWFEZXZpY2UuaCBpbiBIZWFkZXJzICovLAorCQkJCTk1MEYyODgwMjUy
NDE0RUEwMEI3NEYxQyAvKiBXS01vdXNlRGV2aWNlT2JzZXJ2ZXIuaCBpbiBIZWFkZXJzICovLAog
CQkJCTJEQjk0Mjk5MjM0RTdBN0YwMEU3NzZBRCAvKiBXS01vdXNlR2VzdHVyZVJlY29nbml6ZXIu
aCBpbiBIZWFkZXJzICovLAogCQkJCUJDNDA3NUZFMTI0RkYwMjcwMDY4RjIwQSAvKiBXS011dGFi
bGVBcnJheS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkM0MDc2MDAxMjRGRjAyNzAwNjhGMjBBIC8q
IFdLTXV0YWJsZURpY3Rpb25hcnkuaCBpbiBIZWFkZXJzICovLApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAgYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNw
cAppbmRleCBiNTJjOTI0MjNhMDg3NWY2ZTZiOTZkYjg0MjVmYWI5YmYwNGMzZDU0Li42YzZkMmFk
MDQwOGJlY2EzNTk0Nzc5MGZhMTNmY2EzOWNiZTc5M2JiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNw
cApAQCAtNTA2LDYgKzUwNiwxNiBAQCBLZXlib2FyZFVJTW9kZSBXZWJDaHJvbWVDbGllbnQ6Omtl
eWJvYXJkVUlNb2RlKCkKICAgICByZXR1cm4gbV9wYWdlLmtleWJvYXJkVUlNb2RlKCk7CiB9CiAK
K2Jvb2wgV2ViQ2hyb21lQ2xpZW50Ojpob3ZlclN1cHBvcnRlZEJ5QW55QXZhaWxhYmxlUG9pbnRp
bmdEZXZpY2UoKSBjb25zdAoreworICAgIHJldHVybiBtX3BhZ2UuaG92ZXJTdXBwb3J0ZWRCeUFu
eUF2YWlsYWJsZVBvaW50aW5nRGV2aWNlKCk7Cit9CisKK09wdGlvblNldDxQb2ludGVyQ2hhcmFj
dGVyaXN0aWNzPiBXZWJDaHJvbWVDbGllbnQ6OnBvaW50ZXJDaGFyYWN0ZXJpc3RpY3NPZkFsbEF2
YWlsYWJsZVBvaW50aW5nRGV2aWNlcygpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fcGFnZS5wb2lu
dGVyQ2hhcmFjdGVyaXN0aWNzT2ZBbGxBdmFpbGFibGVQb2ludGluZ0RldmljZXMoKTsKK30KKwog
I2lmIEVOQUJMRShQT0lOVEVSX0xPQ0spCiAKIGJvb2wgV2ViQ2hyb21lQ2xpZW50OjpyZXF1ZXN0
UG9pbnRlckxvY2soKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNv
cmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCmluZGV4IDk5NjM0OTFiNDExMDY4NzA5NDJh
ZGUwMDA2OTA4MzMwMGNjNTcxYTguLjM1YmE1YTc1ZWEzMzBiZTBhYzMzYzZiMjM2ODc3MWYzOGJm
YTVlZGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9y
dC9XZWJDaHJvbWVDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29y
ZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKQEAgLTExMiw2ICsxMTIsOSBAQCBwcml2YXRlOgog
CiAgICAgV2ViQ29yZTo6S2V5Ym9hcmRVSU1vZGUga2V5Ym9hcmRVSU1vZGUoKSBmaW5hbDsKIAor
ICAgIGJvb2wgaG92ZXJTdXBwb3J0ZWRCeUFueUF2YWlsYWJsZVBvaW50aW5nRGV2aWNlKCkgY29u
c3QgZmluYWw7CisgICAgT3B0aW9uU2V0PFdlYkNvcmU6OlBvaW50ZXJDaGFyYWN0ZXJpc3RpY3M+
IHBvaW50ZXJDaGFyYWN0ZXJpc3RpY3NPZkFsbEF2YWlsYWJsZVBvaW50aW5nRGV2aWNlcygpIGNv
bnN0IGZpbmFsOworCiAgICAgLy8gSG9zdFdpbmRvdyBtZW1iZXIgZnVuY3Rpb24gZmluYWxzLgog
ICAgIHZvaWQgaW52YWxpZGF0ZVJvb3RWaWV3KGNvbnN0IFdlYkNvcmU6OkludFJlY3QmKSBmaW5h
bDsKICAgICB2b2lkIGludmFsaWRhdGVDb250ZW50c0FuZFJvb3RWaWV3KGNvbnN0IFdlYkNvcmU6
OkludFJlY3QmKSBmaW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJQYWdlL1dlYlBhZ2UuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBh
Z2UuaAppbmRleCBkNTNkMzA0M2Y1YTc2MTBkZWJiZTMyNTcwYTQ4ZDBlMjVhZjQ3ZTEyLi5kMDhh
ZjVhNTcwMjRjYWFjNjc2ODcwYmNmOTA5ZjRlN2UxZDM0ZjlhIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKKysrIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCkBAIC03NSw2ICs3NSw3IEBACiAjaW5jbHVkZSA8
V2ViQ29yZS9QYWdlSWRlbnRpZmllci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUGFnZU92ZXJsYXku
aD4KICNpbmNsdWRlIDxXZWJDb3JlL1BsdWdpbkRhdGEuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1Bv
aW50ZXJDaGFyYWN0ZXJpc3RpY3MuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1BvaW50ZXJJRC5oPgog
I2luY2x1ZGUgPFdlYkNvcmUvUmVuZGVyaW5nTW9kZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU2Vj
dXJpdHlQb2xpY3lWaW9sYXRpb25FdmVudC5oPgpAQCAtNDE1LDYgKzQxNiw5IEBAIHB1YmxpYzoK
ICAgICBTdHJpbmcgcGxhdGZvcm1Vc2VyQWdlbnQoY29uc3QgVVJMJikgY29uc3Q7CiAgICAgV2Vi
Q29yZTo6S2V5Ym9hcmRVSU1vZGUga2V5Ym9hcmRVSU1vZGUoKTsKIAorICAgIGJvb2wgaG92ZXJT
dXBwb3J0ZWRCeUFueUF2YWlsYWJsZVBvaW50aW5nRGV2aWNlKCkgY29uc3Q7CisgICAgT3B0aW9u
U2V0PFdlYkNvcmU6OlBvaW50ZXJDaGFyYWN0ZXJpc3RpY3M+IHBvaW50ZXJDaGFyYWN0ZXJpc3Rp
Y3NPZkFsbEF2YWlsYWJsZVBvaW50aW5nRGV2aWNlcygpIGNvbnN0OworCiAgICAgdm9pZCBkaWRJ
bnNlcnRNZW51RWxlbWVudChXZWJDb3JlOjpIVE1MTWVudUVsZW1lbnQmKTsKICAgICB2b2lkIGRp
ZFJlbW92ZU1lbnVFbGVtZW50KFdlYkNvcmU6OkhUTUxNZW51RWxlbWVudCYpOwogICAgIHZvaWQg
ZGlkSW5zZXJ0TWVudUl0ZW1FbGVtZW50KFdlYkNvcmU6OkhUTUxNZW51SXRlbUVsZW1lbnQmKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL2d0ay9XZWJQYWdl
R3RrLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL2d0ay9XZWJQYWdlR3Rr
LmNwcAppbmRleCBkYTQ3NTUwMmEzMGEzOTg1MWExN2Y1ZTcwZWI3MmM0M2EwYzNhZjcyLi5kOWFm
OTk0Y2YwOTA5ZjBiYmJiNmZlNzRjNjhlZDcwM2JmZTc1ZTcwIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9ndGsvV2ViUGFnZUd0ay5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvZ3RrL1dlYlBhZ2VHdGsuY3BwCkBAIC00Myw2ICs0
Myw4IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9Ob3RJbXBsZW1lbnRlZC5oPgogI2luY2x1ZGUgPFdl
YkNvcmUvUGFnZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUGxhdGZvcm1LZXlib2FyZEV2ZW50Lmg+
CisjaW5jbHVkZSA8V2ViQ29yZS9QbGF0Zm9ybVNjcmVlbi5oPgorI2luY2x1ZGUgPFdlYkNvcmUv
UG9pbnRlckNoYXJhY3RlcmlzdGljcy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUmVuZGVyVGhlbWUu
aD4KICNpbmNsdWRlIDxXZWJDb3JlL1NldHRpbmdzLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TaGFy
ZWRCdWZmZXIuaD4KQEAgLTEyOSw2ICsxMzEsMjQgQEAgU3RyaW5nIFdlYlBhZ2U6OnBsYXRmb3Jt
VXNlckFnZW50KGNvbnN0IFVSTCYgdXJsKSBjb25zdAogICAgIHJldHVybiBXZWJDb3JlOjpzdGFu
ZGFyZFVzZXJBZ2VudEZvclVSTCh1cmwpOwogfQogCitib29sIFdlYlBhZ2U6OmhvdmVyU3VwcG9y
dGVkQnlBbnlBdmFpbGFibGVQb2ludGluZ0RldmljZSgpIGNvbnN0Cit7CisjaWYgRU5BQkxFKFRP
VUNIX0VWRU5UUykKKyAgICByZXR1cm4gIXNjcmVlbkhhc1RvdWNoRGV2aWNlKCk7CisjZWxzZQor
ICAgIHJldHVybiB0cnVlOworI2VuZGlmCit9CisKK09wdGlvblNldDxQb2ludGVyQ2hhcmFjdGVy
aXN0aWNzPiBXZWJQYWdlOjpwb2ludGVyQ2hhcmFjdGVyaXN0aWNzT2ZBbGxBdmFpbGFibGVQb2lu
dGluZ0RldmljZXMoKSBjb25zdAoreworI2lmIEVOQUJMRShUT1VDSF9FVkVOVFMpCisgICAgaWYg
KHNjcmVlbkhhc1RvdWNoRGV2aWNlKCkpCisgICAgICAgIHJldHVybiBQb2ludGVyQ2hhcmFjdGVy
aXN0aWNzOjpDb2Fyc2U7CisjZW5kaWYKKyAgICByZXR1cm4gUG9pbnRlckNoYXJhY3RlcmlzdGlj
czo6RmluZTsKK30KKwogdm9pZCBXZWJQYWdlOjpnZXRDZW50ZXJGb3Jab29tR2VzdHVyZShjb25z
dCBJbnRQb2ludCYgY2VudGVySW5WaWV3Q29vcmRpbmF0ZXMsIENvbXBsZXRpb25IYW5kbGVyPHZv
aWQoV2ViQ29yZTo6SW50UG9pbnQmJik+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgSW50
UG9pbnQgcmVzdWx0ID0gbWFpbkZyYW1lVmlldygpLT5yb290Vmlld1RvQ29udGVudHMoY2VudGVy
SW5WaWV3Q29vcmRpbmF0ZXMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW0gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
UGFnZS9pb3MvV2ViUGFnZUlPUy5tbQppbmRleCA1NjY3NDk2NDkwNzNiZTdjMzY4NTEyNTg0Yzcy
OTM2NTg2M2ZjMTk3Li4xYTlhOTY1NWQxMGRhNGRlN2VhYmVkNTM4NjlkZWUzY2Q2YTdlYmYwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlP
Uy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlP
Uy5tbQpAQCAtMTE2LDYgKzExNiw3IEBACiAjaW1wb3J0IDxXZWJDb3JlL1BsYXRmb3JtS2V5Ym9h
cmRFdmVudC5oPgogI2ltcG9ydCA8V2ViQ29yZS9QbGF0Zm9ybU1vdXNlRXZlbnQuaD4KICNpbXBv
cnQgPFdlYkNvcmUvUG9pbnRlckNhcHR1cmVDb250cm9sbGVyLmg+CisjaW1wb3J0IDxXZWJDb3Jl
L1BvaW50ZXJDaGFyYWN0ZXJpc3RpY3MuaD4KICNpbXBvcnQgPFdlYkNvcmUvUXVpcmtzLmg+CiAj
aW1wb3J0IDxXZWJDb3JlL1JhbmdlLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1JlbmRlckJsb2NrLmg+
CkBAIC0zOTg4LDYgKzM5ODksMzAgQEAgU3RyaW5nIFdlYlBhZ2U6OnBsYXRmb3JtVXNlckFnZW50
KGNvbnN0IFVSTCYpIGNvbnN0CiAgICAgcmV0dXJuIFN0cmluZygpOwogfQogCitzdGF0aWMgYm9v
bCBoYXNNb3VzZURldmljZSgpCit7CisjaWYgSEFWRShVSUtJVF9XSVRIX01PVVNFX1NVUFBPUlQp
ICYmIFBMQVRGT1JNKElPUykKKyAgICByZXR1cm4gV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkuaGFz
TW91c2VEZXZpY2UoKTsKKyNlbGlmIEhBVkUoVUlLSVRfV0lUSF9NT1VTRV9TVVBQT1JUKSAmJiBQ
TEFURk9STShNQUNDQVRBTFlTVCkKKyAgICByZXR1cm4gdHJ1ZTsKKyNlbHNlCisgICAgcmV0dXJu
IGZhbHNlOworI2VuZGlmCit9CisKK2Jvb2wgV2ViUGFnZTo6aG92ZXJTdXBwb3J0ZWRCeUFueUF2
YWlsYWJsZVBvaW50aW5nRGV2aWNlKCkgY29uc3QKK3sKKyAgICByZXR1cm4gaGFzTW91c2VEZXZp
Y2UoKTsKK30KKworT3B0aW9uU2V0PFBvaW50ZXJDaGFyYWN0ZXJpc3RpY3M+IFdlYlBhZ2U6OnBv
aW50ZXJDaGFyYWN0ZXJpc3RpY3NPZkFsbEF2YWlsYWJsZVBvaW50aW5nRGV2aWNlcygpIGNvbnN0
Cit7CisgICAgT3B0aW9uU2V0PFBvaW50ZXJDaGFyYWN0ZXJpc3RpY3M+IHJlc3VsdChQb2ludGVy
Q2hhcmFjdGVyaXN0aWNzOjpDb2Fyc2UpOworICAgIGlmIChoYXNNb3VzZURldmljZSgpKQorICAg
ICAgICByZXN1bHQuYWRkKFBvaW50ZXJDaGFyYWN0ZXJpc3RpY3M6OkZpbmUpOworICAgIHJldHVy
biByZXN1bHQ7Cit9CisKIHZvaWQgV2ViUGFnZTo6aGFyZHdhcmVLZXlib2FyZEF2YWlsYWJpbGl0
eUNoYW5nZWQoYm9vbCBrZXlib2FyZElzQXR0YWNoZWQpCiB7CiAgICAgbV9rZXlib2FyZElzQXR0
YWNoZWQgPSBrZXlib2FyZElzQXR0YWNoZWQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViUGFnZS9tYWMvV2ViUGFnZU1hYy5tbSBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJQYWdlL21hYy9XZWJQYWdlTWFjLm1tCmluZGV4IDVhZWI0YjE1MzdkMzM0MjExNmNh
MjFhNTU1MzUzYzRhYWVjMDBlNTcuLmI4MmY4MGUwZTI3MGEwNDM5MjA0MjU1NmU5ZTU4YWY3ZGZm
MDM4MDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9X
ZWJQYWdlTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9X
ZWJQYWdlTWFjLm1tCkBAIC04Myw2ICs4Myw3IEBACiAjaW1wb3J0IDxXZWJDb3JlL1BhZ2VPdmVy
bGF5Q29udHJvbGxlci5oPgogI2ltcG9ydCA8V2ViQ29yZS9QbGF0Zm9ybUtleWJvYXJkRXZlbnQu
aD4KICNpbXBvcnQgPFdlYkNvcmUvUGx1Z2luRG9jdW1lbnQuaD4KKyNpbXBvcnQgPFdlYkNvcmUv
UG9pbnRlckNoYXJhY3RlcmlzdGljcy5oPgogI2ltcG9ydCA8V2ViQ29yZS9SZW5kZXJFbGVtZW50
Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL1JlbmRlck9iamVjdC5oPgogI2ltcG9ydCA8V2ViQ29yZS9S
ZW5kZXJTdHlsZS5oPgpAQCAtODMwLDYgKzgzMSwxNiBAQCBTdHJpbmcgV2ViUGFnZTo6cGxhdGZv
cm1Vc2VyQWdlbnQoY29uc3QgVVJMJikgY29uc3QKICAgICByZXR1cm4gU3RyaW5nKCk7CiB9CiAK
K2Jvb2wgV2ViUGFnZTo6aG92ZXJTdXBwb3J0ZWRCeUFueUF2YWlsYWJsZVBvaW50aW5nRGV2aWNl
KCkgY29uc3QKK3sKKyAgICByZXR1cm4gdHJ1ZTsKK30KKworT3B0aW9uU2V0PFBvaW50ZXJDaGFy
YWN0ZXJpc3RpY3M+IFdlYlBhZ2U6OnBvaW50ZXJDaGFyYWN0ZXJpc3RpY3NPZkFsbEF2YWlsYWJs
ZVBvaW50aW5nRGV2aWNlcygpIGNvbnN0Cit7CisgICAgcmV0dXJuIFBvaW50ZXJDaGFyYWN0ZXJp
c3RpY3M6OkZpbmU7Cit9CisKIHZvaWQgV2ViUGFnZTo6cGVyZm9ybUltbWVkaWF0ZUFjdGlvbkhp
dFRlc3RBdExvY2F0aW9uKFdlYkNvcmU6OkZsb2F0UG9pbnQgbG9jYXRpb25JblZpZXdDb29yZGlu
YXRlcykKIHsKICAgICBsYXlvdXRJZk5lZWRlZCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYlBhZ2UvcGxheXN0YXRpb24vV2ViUGFnZVBsYXlTdGF0aW9uLmNwcCBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL3BsYXlzdGF0aW9uL1dlYlBhZ2VQbGF5
U3RhdGlvbi5jcHAKaW5kZXggY2JkYTQ4YzdkNjViMWE2ODI2NmNiNjI2OGUwZjdlMWYyYWVhNTU4
Ni4uNzI2ZTkyMzNjNTFiMzFjNmU0NmZmMTI1YjRlNWZlZjMzNjg3NzNlOSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvcGxheXN0YXRpb24vV2ViUGFnZVBsYXlT
dGF0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9wbGF5c3Rh
dGlvbi9XZWJQYWdlUGxheVN0YXRpb24uY3BwCkBAIC0yNyw2ICsyNyw3IEBACiAjaW5jbHVkZSAi
V2ViUGFnZS5oIgogCiAjaW5jbHVkZSA8V2ViQ29yZS9Ob3RJbXBsZW1lbnRlZC5oPgorI2luY2x1
ZGUgPFdlYkNvcmUvUG9pbnRlckNoYXJhY3RlcmlzdGljcy5oPgogI2luY2x1ZGUgPFdlYkNvcmUv
U2V0dGluZ3MuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1VzZXJBZ2VudC5oPgogCkBAIC02NSw2ICs2
NiwxNiBAQCBTdHJpbmcgV2ViUGFnZTo6cGxhdGZvcm1Vc2VyQWdlbnQoY29uc3QgVVJMJiB1cmwp
IGNvbnN0CiAgICAgcmV0dXJuIFdlYkNvcmU6OnN0YW5kYXJkVXNlckFnZW50Rm9yVVJMKHVybCk7
CiB9CiAKK2Jvb2wgV2ViUGFnZTo6aG92ZXJTdXBwb3J0ZWRCeUFueUF2YWlsYWJsZVBvaW50aW5n
RGV2aWNlKCkgY29uc3QKK3sKKyAgICByZXR1cm4gdHJ1ZTsKK30KKworT3B0aW9uU2V0PFBvaW50
ZXJDaGFyYWN0ZXJpc3RpY3M+IFdlYlBhZ2U6OnBvaW50ZXJDaGFyYWN0ZXJpc3RpY3NPZkFsbEF2
YWlsYWJsZVBvaW50aW5nRGV2aWNlcygpIGNvbnN0Cit7CisgICAgcmV0dXJuIFBvaW50ZXJDaGFy
YWN0ZXJpc3RpY3M6OkZpbmU7Cit9CisKIGJvb2wgV2ViUGFnZTo6aGFuZGxlRWRpdGluZ0tleWJv
YXJkRXZlbnQoV2ViQ29yZTo6S2V5Ym9hcmRFdmVudCYgZXZlbnQpCiB7CiAgICAgbm90SW1wbGVt
ZW50ZWQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL3dp
bi9XZWJQYWdlV2luLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL3dpbi9X
ZWJQYWdlV2luLmNwcAppbmRleCAyODkzZWQzZjNiOGM5YzI4NDcyYjhhYWY3YTM5OWUyNTdiZjhj
NTJkLi5lZGFkN2Q1MDM3ZDFlNDA4YzAzOTRmMzUxNWY3ODhmOGU0ZDZkZGQ0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS93aW4vV2ViUGFnZVdpbi5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2Uvd2luL1dlYlBhZ2VXaW4uY3BwCkBA
IC00Myw2ICs0Myw3IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9Ob3RJbXBsZW1lbnRlZC5oPgogI2lu
Y2x1ZGUgPFdlYkNvcmUvUGFnZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUGxhdGZvcm1LZXlib2Fy
ZEV2ZW50Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9Qb2ludGVyQ2hhcmFjdGVyaXN0aWNzLmg+CiAj
aW5jbHVkZSA8V2ViQ29yZS9TZXR0aW5ncy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU2hhcmVkQnVm
ZmVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Vc2VyQWdlbnQuaD4KQEAgLTExNSw2ICsxMTYsMTYg
QEAgU3RyaW5nIFdlYlBhZ2U6OnBsYXRmb3JtVXNlckFnZW50KGNvbnN0IFVSTCYpIGNvbnN0CiAg
ICAgcmV0dXJuIHsgfTsKIH0KIAorYm9vbCBXZWJQYWdlOjpob3ZlclN1cHBvcnRlZEJ5QW55QXZh
aWxhYmxlUG9pbnRpbmdEZXZpY2UoKSBjb25zdAoreworICAgIHJldHVybiB0cnVlOworfQorCitP
cHRpb25TZXQ8UG9pbnRlckNoYXJhY3RlcmlzdGljcz4gV2ViUGFnZTo6cG9pbnRlckNoYXJhY3Rl
cmlzdGljc09mQWxsQXZhaWxhYmxlUG9pbnRpbmdEZXZpY2VzKCkgY29uc3QKK3sKKyAgICByZXR1
cm4gUG9pbnRlckNoYXJhY3RlcmlzdGljczo6RmluZTsKK30KKwogc3RhdGljIGNvbnN0IHVuc2ln
bmVkIEN0cmxLZXkgPSAxIDw8IDA7CiBzdGF0aWMgY29uc3QgdW5zaWduZWQgQWx0S2V5ID0gMSA8
PCAxOwogc3RhdGljIGNvbnN0IHVuc2lnbmVkIFNoaWZ0S2V5ID0gMSA8PCAyOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2Uvd3BlL1dlYlBhZ2VXUEUuY3BwIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2Uvd3BlL1dlYlBhZ2VXUEUuY3BwCmluZGV4
IGY5ZmM0MWExZmI2OTc2YjE2YjdhNTMyMGFlYzkyYjExYjMwMGQ3YjYuLjRhNTQwYTI1MDc5OGQ5
ZjJhZWRhOWYwMmExMDBiNjI5NTYyYmI3ZjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJQYWdlL3dwZS9XZWJQYWdlV1BFLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViUGFnZS93cGUvV2ViUGFnZVdQRS5jcHAKQEAgLTMwLDYgKzMwLDggQEAKICNp
bmNsdWRlICJXZWJQYWdlUHJveHkuaCIKICNpbmNsdWRlICJXZWJQYWdlUHJveHlNZXNzYWdlcy5o
IgogI2luY2x1ZGUgPFdlYkNvcmUvTm90SW1wbGVtZW50ZWQuaD4KKyNpbmNsdWRlIDxXZWJDb3Jl
L1BsYXRmb3JtU2NyZWVuLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9Qb2ludGVyQ2hhcmFjdGVyaXN0
aWNzLmg+CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CkBA
IC03Myw0ICs3NSwyMiBAQCBTdHJpbmcgV2ViUGFnZTo6cGxhdGZvcm1Vc2VyQWdlbnQoY29uc3Qg
VVJMJikgY29uc3QKICAgICByZXR1cm4gU3RyaW5nKCk7CiB9CiAKK2Jvb2wgV2ViUGFnZTo6aG92
ZXJTdXBwb3J0ZWRCeUFueUF2YWlsYWJsZVBvaW50aW5nRGV2aWNlKCkgY29uc3QKK3sKKyNpZiBF
TkFCTEUoVE9VQ0hfRVZFTlRTKQorICAgIHJldHVybiAhc2NyZWVuSGFzVG91Y2hEZXZpY2UoKTsK
KyNlbHNlCisgICAgcmV0dXJuIHRydWU7CisjZW5kaWYKK30KKworT3B0aW9uU2V0PFBvaW50ZXJD
aGFyYWN0ZXJpc3RpY3M+IFdlYlBhZ2U6OnBvaW50ZXJDaGFyYWN0ZXJpc3RpY3NPZkFsbEF2YWls
YWJsZVBvaW50aW5nRGV2aWNlcygpIGNvbnN0Cit7CisjaWYgRU5BQkxFKFRPVUNIX0VWRU5UUykK
KyAgICBpZiAoc2NyZWVuSGFzVG91Y2hEZXZpY2UoKSkKKyAgICAgICAgcmV0dXJuIFBvaW50ZXJD
aGFyYWN0ZXJpc3RpY3M6OkNvYXJzZTsKKyNlbmRpZgorICAgIHJldHVybiBQb2ludGVyQ2hhcmFj
dGVyaXN0aWNzOjpGaW5lOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcCBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcAppbmRleCA2MTBkMzc3OTA4Y2I1MGEwYTIyOTQxMTVk
ZjAzOWUwYmU5NjRhMzljLi4yMGRjNWU1Yjk4ZTFkZGRhNzdjOWYzYmIyOTQ1NDUzNzY3NDE5NWQ0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCkBAIC00MDYsNiArNDA2
LDEwIEBAIHZvaWQgV2ViUHJvY2Vzczo6aW5pdGlhbGl6ZVdlYlByb2Nlc3MoV2ViUHJvY2Vzc0Ny
ZWF0aW9uUGFyYW1ldGVycyYmIHBhcmFtZXRlcnMpCiAKICAgICBtX2Z1bGxLZXlib2FyZEFjY2Vz
c0VuYWJsZWQgPSBwYXJhbWV0ZXJzLmZ1bGxLZXlib2FyZEFjY2Vzc0VuYWJsZWQ7CiAKKyNpZiBI
QVZFKFVJS0lUX1dJVEhfTU9VU0VfU1VQUE9SVCkgJiYgUExBVEZPUk0oSU9TKQorICAgIG1faGFz
TW91c2VEZXZpY2UgPSBwYXJhbWV0ZXJzLmhhc01vdXNlRGV2aWNlOworI2VuZGlmCisKICAgICBm
b3IgKGF1dG8mIHNjaGVtZSA6IHBhcmFtZXRlcnMudXJsU2NoZW1lc1JlZ2lzdGVyZWRBc0VtcHR5
RG9jdW1lbnQpCiAgICAgICAgIHJlZ2lzdGVyVVJMU2NoZW1lQXNFbXB0eURvY3VtZW50KHNjaGVt
ZSk7CiAKQEAgLTEwNTAsNiArMTA1NCwyMCBAQCB2b2lkIFdlYlByb2Nlc3M6Om1lc3NhZ2VzQXZh
aWxhYmxlRm9yUG9ydChjb25zdCBNZXNzYWdlUG9ydElkZW50aWZpZXImIGlkZW50aWZpZQogICAg
IE1lc3NhZ2VQb3J0Ojpub3RpZnlNZXNzYWdlQXZhaWxhYmxlKGlkZW50aWZpZXIpOwogfQogCisj
aWYgSEFWRShVSUtJVF9XSVRIX01PVVNFX1NVUFBPUlQpICYmIFBMQVRGT1JNKElPUykKKwordm9p
ZCBXZWJQcm9jZXNzOjpzZXRIYXNNb3VzZURldmljZShib29sIGhhc01vdXNlRGV2aWNlKQorewor
ICAgIGlmIChoYXNNb3VzZURldmljZSA9PSBtX2hhc01vdXNlRGV2aWNlKQorICAgICAgICByZXR1
cm47CisKKyAgICBtX2hhc01vdXNlRGV2aWNlID0gaGFzTW91c2VEZXZpY2U7CisKKyAgICBQYWdl
Ojp1cGRhdGVTdHlsZUZvckFsbFBhZ2VzQWZ0ZXJHbG9iYWxDaGFuZ2VJbkVudmlyb25tZW50KCk7
Cit9CisKKyNlbmRpZiAvLyBIQVZFKFVJS0lUX1dJVEhfTU9VU0VfU1VQUE9SVCkgJiYgUExBVEZP
Uk0oSU9TKQorCiAjaWYgRU5BQkxFKEdBTUVQQUQpCiAKIHZvaWQgV2ViUHJvY2Vzczo6c2V0SW5p
dGlhbEdhbWVwYWRzKGNvbnN0IFZlY3RvcjxXZWJLaXQ6OkdhbWVwYWREYXRhPiYgZ2FtZXBhZERh
dGFzKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuaCBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmgKaW5kZXggOWQwZGRiZmQzOGRl
MzgxZGMyNWRiZWI5N2Q0ODY5ZTk0ZmRlYjgyNy4uZjNlMTlhYjZhYjMyYmQwZWM2NGNkNzI3Nzkz
ZjRiY2QzZTRkNDhmNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBy
b2Nlc3MuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oCkBAIC0x
ODcsNiArMTg3LDExIEBAIHB1YmxpYzoKIAogICAgIGJvb2wgZnVsbEtleWJvYXJkQWNjZXNzRW5h
YmxlZCgpIGNvbnN0IHsgcmV0dXJuIG1fZnVsbEtleWJvYXJkQWNjZXNzRW5hYmxlZDsgfQogCisj
aWYgSEFWRShVSUtJVF9XSVRIX01PVVNFX1NVUFBPUlQpICYmIFBMQVRGT1JNKElPUykKKyAgICBi
b29sIGhhc01vdXNlRGV2aWNlKCkgY29uc3QgeyByZXR1cm4gbV9oYXNNb3VzZURldmljZTsgfQor
ICAgIHZvaWQgc2V0SGFzTW91c2VEZXZpY2UoYm9vbCk7CisjZW5kaWYKKwogICAgIFdlYkZyYW1l
KiB3ZWJGcmFtZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIpIGNvbnN0OwogICAgIFZlY3RvcjxX
ZWJGcmFtZSo+IHdlYkZyYW1lcygpIGNvbnN0OwogICAgIHZvaWQgYWRkV2ViRnJhbWUoV2ViQ29y
ZTo6RnJhbWVJZGVudGlmaWVyLCBXZWJGcmFtZSopOwpAQCAtNTU0LDYgKzU1OSwxMCBAQCBwcml2
YXRlOgogCiAgICAgYm9vbCBtX2Z1bGxLZXlib2FyZEFjY2Vzc0VuYWJsZWQgeyBmYWxzZSB9Owog
CisjaWYgSEFWRShVSUtJVF9XSVRIX01PVVNFX1NVUFBPUlQpICYmIFBMQVRGT1JNKElPUykKKyAg
ICBib29sIG1faGFzTW91c2VEZXZpY2UgeyBmYWxzZSB9OworI2VuZGlmCisKICAgICBIYXNoTWFw
PFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgV2ViRnJhbWUqPiBtX2ZyYW1lTWFwOwogCiAgICAg
dHlwZWRlZiBIYXNoTWFwPGNvbnN0IGNoYXIqLCBzdGQ6OnVuaXF1ZV9wdHI8V2ViUHJvY2Vzc1N1
cHBsZW1lbnQ+LCBQdHJIYXNoPGNvbnN0IGNoYXIqPj4gV2ViUHJvY2Vzc1N1cHBsZW1lbnRNYXA7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5tZXNzYWdl
cy5pbiBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLm1lc3NhZ2VzLmluCmlu
ZGV4IDAxMjM2NzU3YTVjNWYwZDI4MGM2ZGQxZjlhMTgxNTJiYmNmMTljMDQuLjM3MDAxNzk5Nzkz
MzI5MTQ2MmY2MGZkMTU4ODM4MmFmNzU1NjRiOWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJQcm9jZXNzLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJQcm9jZXNzLm1lc3NhZ2VzLmluCkBAIC01Miw2ICs1MiwxMCBAQCBtZXNzYWdl
cyAtPiBXZWJQcm9jZXNzIExlZ2FjeVJlY2VpdmVyIE5vdFJlZkNvdW50ZWQgewogICAgIFVzZXJQ
cmVmZXJyZWRMYW5ndWFnZXNDaGFuZ2VkKCkKICAgICBGdWxsS2V5Ym9hcmRBY2Nlc3NNb2RlQ2hh
bmdlZChib29sIGZ1bGxLZXlib2FyZEFjY2Vzc0VuYWJsZWQpCiAKKyNpZiBIQVZFKFVJS0lUX1dJ
VEhfTU9VU0VfU1VQUE9SVCkgJiYgUExBVEZPUk0oSU9TKQorICAgIFNldEhhc01vdXNlRGV2aWNl
KGJvb2wgaGFzTW91c2VEZXZpY2UpCisjZW5kaWYKKwogICAgICMgUGx1Zy1pbnMuCiAgICAgRGlk
QWRkUGx1Z0luQXV0b1N0YXJ0T3JpZ2luSGFzaCh1aW50MzJfdCBoYXNoLCBXYWxsVGltZSBleHBp
cmF0aW9uVGltZSkKICAgICBSZXNldFBsdWdJbkF1dG9TdGFydE9yaWdpbkhhc2hlcyhIYXNoTWFw
PHVpbnQzMl90LFdhbGxUaW1lPiBoYXNoZXMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVn
YWN5L2lvcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnRJT1MuaCBiL1NvdXJjZS9XZWJL
aXRMZWdhY3kvaW9zL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudElPUy5oCmluZGV4IGE5
MmJhYTZiMzA1OWRlODkxNDVmMDNiMWE1NzU3Zjk3MmE5NDA5OTkuLjE5MWEwYWY5YTVlYmZkYjE3
OGQ2NjAxODU2NzhhNDIyZWRlNTUyNGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kv
aW9zL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudElPUy5oCisrKyBiL1NvdXJjZS9XZWJL
aXRMZWdhY3kvaW9zL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudElPUy5oCkBAIC01MCw2
ICs1MCw5IEBAIHByaXZhdGU6CiAgICAgdm9pZCBydW5PcGVuUGFuZWwoV2ViQ29yZTo6RnJhbWUm
LCBXZWJDb3JlOjpGaWxlQ2hvb3NlciYpIGZpbmFsOwogICAgIHZvaWQgc2hvd1NoYXJlU2hlZXQo
V2ViQ29yZTo6U2hhcmVEYXRhV2l0aFBhcnNlZFVSTCYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQo
Ym9vbCk+JiYpIGZpbmFsOwogCisgICAgYm9vbCBob3ZlclN1cHBvcnRlZEJ5QW55QXZhaWxhYmxl
UG9pbnRpbmdEZXZpY2UoKSBjb25zdCBmaW5hbCB7IHJldHVybiBmYWxzZTsgfQorICAgIE9wdGlv
blNldDxXZWJDb3JlOjpQb2ludGVyQ2hhcmFjdGVyaXN0aWNzPiBwb2ludGVyQ2hhcmFjdGVyaXN0
aWNzT2ZBbGxBdmFpbGFibGVQb2ludGluZ0RldmljZXMoKSBjb25zdCBmaW5hbCB7IHJldHVybiBX
ZWJDb3JlOjpQb2ludGVyQ2hhcmFjdGVyaXN0aWNzOjpDb2Fyc2U7IH0KKwogICAgIHZvaWQgc2V0
Q3Vyc29yKGNvbnN0IFdlYkNvcmU6OkN1cnNvciYpIGZpbmFsIHsgfQogICAgIHZvaWQgc2V0Q3Vy
c29ySGlkZGVuVW50aWxNb3VzZU1vdmVzKGJvb2wpIGZpbmFsIHsgfQogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaCBi
L1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5o
CmluZGV4IDIwYjNhMDI1NjZhMmUxNzI0N2MwZWE1MTc3NDhhNDZiNDQwOGE2OWQuLmM3YzFhZDIz
MTA1YTAwMWM3Yzc4MzUyMGNkMmJmNmE1OTJiN2I2MTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCisrKyBiL1NvdXJj
ZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCkBAIC0x
NTgsNiArMTU4LDkgQEAgcHJpdmF0ZToKIAogICAgIFdlYkNvcmU6OktleWJvYXJkVUlNb2RlIGtl
eWJvYXJkVUlNb2RlKCkgZmluYWw7CiAKKyAgICBib29sIGhvdmVyU3VwcG9ydGVkQnlBbnlBdmFp
bGFibGVQb2ludGluZ0RldmljZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIHRydWU7IH0KKyAg
ICBPcHRpb25TZXQ8V2ViQ29yZTo6UG9pbnRlckNoYXJhY3RlcmlzdGljcz4gcG9pbnRlckNoYXJh
Y3RlcmlzdGljc09mQWxsQXZhaWxhYmxlUG9pbnRpbmdEZXZpY2VzKCkgY29uc3Qgb3ZlcnJpZGUg
eyByZXR1cm4gV2ViQ29yZTo6UG9pbnRlckNoYXJhY3RlcmlzdGljczo6RmluZTsgfQorCiAgICAg
TlNSZXNwb25kZXIgKmZpcnN0UmVzcG9uZGVyKCkgZmluYWw7CiAgICAgdm9pZCBtYWtlRmlyc3RS
ZXNwb25kZXIoTlNSZXNwb25kZXIgKikgZmluYWw7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXRMZWdhY3kvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oIGIvU291cmNlL1dl
YktpdExlZ2FjeS93aW4vV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKaW5kZXggNzY5
ZWZiMTNkZTcxMTJkNmY0ZDNjZmNjMDU2MWM1NzE0ODIyOWNhYi4uOGM5ZDYxY2JjZDA1ZjRjM2Iy
YzgwYmNhMjdlMWI5OTQ2MTA1MjQyYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS93
aW4vV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdExl
Z2FjeS93aW4vV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKQEAgLTk0LDYgKzk0LDkg
QEAgcHVibGljOgogCiAgICAgV2ViQ29yZTo6S2V5Ym9hcmRVSU1vZGUga2V5Ym9hcmRVSU1vZGUo
KSBmaW5hbDsKIAorICAgIGJvb2wgaG92ZXJTdXBwb3J0ZWRCeUFueUF2YWlsYWJsZVBvaW50aW5n
RGV2aWNlKCkgY29uc3QgZmluYWwgeyByZXR1cm4gdHJ1ZTsgfQorICAgIE9wdGlvblNldDxXZWJD
b3JlOjpQb2ludGVyQ2hhcmFjdGVyaXN0aWNzPiBwb2ludGVyQ2hhcmFjdGVyaXN0aWNzT2ZBbGxB
dmFpbGFibGVQb2ludGluZ0RldmljZXMoKSBjb25zdCBmaW5hbCB7IHJldHVybiBXZWJDb3JlOjpQ
b2ludGVyQ2hhcmFjdGVyaXN0aWNzOjpGaW5lOyB9CisKICAgICB2b2lkIGludmFsaWRhdGVSb290
Vmlldyhjb25zdCBXZWJDb3JlOjpJbnRSZWN0JikgZmluYWw7CiAgICAgdm9pZCBpbnZhbGlkYXRl
Q29udGVudHNBbmRSb290Vmlldyhjb25zdCBXZWJDb3JlOjpJbnRSZWN0JikgZmluYWw7CiAgICAg
dm9pZCBpbnZhbGlkYXRlQ29udGVudHNGb3JTbG93U2Nyb2xsKGNvbnN0IFdlYkNvcmU6OkludFJl
Y3QmKSBmaW5hbDsKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxv
ZwppbmRleCA3MWU0N2NkZjg2ZTRhNTBhNDY2MDRjNDdkZjUwNDFmYWQwYjRhYTZjLi42ZGQ2ZmI3
Yzc1ZDU5Yjc3NDljMGU3YjY0MzhhNzQyMjNhODMxMzc5IDEwMDY0NAotLS0gYS9Ub29scy9DaGFu
Z2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTkgQEAKKzIwMjAtMTAtMDUg
IERldmluIFJvdXNzbyAgPGRyb3Vzc29AYXBwbGUuY29tPgorCisgICAgICAgIENTUyBob3ZlciBh
bmQgInBvaW50ZXI6IGZpbmUiIG1lZGlhIHF1ZXJpZXMgZG8gbm90IGV2YWx1YXRlIHRvIHRydWUg
d2l0aCBpT1MgMTMuNCBtb3VzZSBzdXBwb3J0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yMDkyOTIKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzYwNjYz
MTI0PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICog
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9pT1NNb3VzZVN1cHBvcnQubW06CisgICAg
ICAgIChldmFsdWF0ZU1lZGlhUXVlcnkpOiBBZGRlZC4KKyAgICAgICAgKGlPU01vdXNlU3VwcG9y
dC5Nb3VzZUluaXRpYWxseURpc2Nvbm5lY3RlZCk6IEFkZGVkLgorICAgICAgICAoaU9TTW91c2VT
dXBwb3J0Lk1vdXNlSW5pdGlhbGx5Q29ubmVjdGVkKTogQWRkZWQuCisgICAgICAgIChpT1NNb3Vz
ZVN1cHBvcnQuTW91c2VMYXRlckRpc2Nvbm5lY3RlZCk6IEFkZGVkLgorICAgICAgICAoaU9TTW91
c2VTdXBwb3J0Lk1vdXNlTGF0ZXJDb25uZWN0ZWQpOiBBZGRlZC4KKyAgICAgICAgKGlPU01vdXNl
U3VwcG9ydC5Nb3VzZUFsd2F5c0Nvbm5lY3RlZCk6IEFkZGVkLgorCiAyMDIwLTEwLTA2ICBBZHJp
YW4gUGVyZXogZGUgQ2FzdHJvICA8YXBlcmV6QGlnYWxpYS5jb20+CiAKICAgICAgICAgUkVHUkVT
U0lPTihyMjY3Mzk5KTogW1dQRV0gQnVpbGQgYnJva2VuIHdpdGggRU5BQkxFX0FDQ0VTU0lCSUxJ
VFk9T0ZGCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29h
L2lPU01vdXNlU3VwcG9ydC5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29j
b2EvaU9TTW91c2VTdXBwb3J0Lm1tCmluZGV4IGMyNDMwYjIwZWY3NzZhZWExMzA5ZTkzMzhkNmUy
ZWEwY2Y1MGFhMTYuLjYzNWI0MDUzNzNhMGMzYWQwYWI4M2M2NzYxZGViYTNiNGJmOGJjYjggMTAw
NjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvaU9TTW91c2VT
dXBwb3J0Lm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvaU9T
TW91c2VTdXBwb3J0Lm1tCkBAIC0zMDAsNCArMzAwLDE5MiBAQCBURVNUKGlPU01vdXNlU3VwcG9y
dCwgV2Vic2l0ZU1vdXNlRXZlbnRQb2xpY2llcykKIAogI2VuZGlmIC8vIEVOQUJMRShJT1NfVE9V
Q0hfRVZFTlRTKQogCisjaWYgSEFWRShVSUtJVF9XSVRIX01PVVNFX1NVUFBPUlQpCisKK3N0YXRp
YyBCT09MIGV2YWx1YXRlTWVkaWFRdWVyeShSZXRhaW5QdHI8VGVzdFdLV2ViVmlldz4mIHdlYlZp
ZXcsIE5TU3RyaW5nICpxdWVyeSkKK3sKKyAgICByZXR1cm4gW1t3ZWJWaWV3IG9iamVjdEJ5RXZh
bHVhdGluZ0phdmFTY3JpcHQ6W05TU3RyaW5nIHN0cmluZ1dpdGhGb3JtYXQ6QCJ3aW5kb3cubWF0
Y2hNZWRpYShcIiglQClcIikubWF0Y2hlcyIsIHF1ZXJ5XV0gYm9vbFZhbHVlXTsKK30KKworI2lm
IFBMQVRGT1JNKElPUykKKworQGludGVyZmFjZSBXS01vdXNlRGV2aWNlT2JzZXJ2ZXIKKysgKFdL
TW91c2VEZXZpY2VPYnNlcnZlciAqKXNoYXJlZEluc3RhbmNlOworLSAodm9pZClzdGFydDsKKy0g
KHZvaWQpX3NldEhhc01vdXNlRGV2aWNlRm9yVGVzdGluZzooQk9PTCloYXNNb3VzZURldmljZTsK
K0BlbmQKKworVEVTVChpT1NNb3VzZVN1cHBvcnQsIE1vdXNlSW5pdGlhbGx5RGlzY29ubmVjdGVk
KQoreworICAgIFdLTW91c2VEZXZpY2VPYnNlcnZlciAqbW91c2VEZXZpY2VPYnNlcnZlciA9IFtO
U0NsYXNzRnJvbVN0cmluZyhAIldLTW91c2VEZXZpY2VPYnNlcnZlciIpIHNoYXJlZEluc3RhbmNl
XTsKKyAgICBbbW91c2VEZXZpY2VPYnNlcnZlciBzdGFydF07CisgICAgW21vdXNlRGV2aWNlT2Jz
ZXJ2ZXIgX3NldEhhc01vdXNlRGV2aWNlRm9yVGVzdGluZzpOT107CisKKyAgICBhdXRvIHdlYlZp
ZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU01ha2VS
ZWN0KDAsIDAsIDgwMCwgNjAwKV0pOworCisgICAgW3dlYlZpZXcgc3luY2hyb25vdXNseUxvYWRI
VE1MU3RyaW5nOkAiIl07CisKKyNpZiBFTkFCTEUoVE9VQ0hfRVZFTlRTKQorICAgIEVYUEVDVF9G
QUxTRShldmFsdWF0ZU1lZGlhUXVlcnkod2ViVmlldywgQCJob3ZlciIpKTsKKyAgICBFWFBFQ1Rf
VFJVRShldmFsdWF0ZU1lZGlhUXVlcnkod2ViVmlldywgQCJob3Zlcjogbm9uZSIpKTsKKyAgICBF
WFBFQ1RfRkFMU0UoZXZhbHVhdGVNZWRpYVF1ZXJ5KHdlYlZpZXcsIEAiaG92ZXI6IGhvdmVyIikp
OworI2VuZGlmCisKKyAgICBFWFBFQ1RfRkFMU0UoZXZhbHVhdGVNZWRpYVF1ZXJ5KHdlYlZpZXcs
IEAiYW55LWhvdmVyIikpOworICAgIEVYUEVDVF9UUlVFKGV2YWx1YXRlTWVkaWFRdWVyeSh3ZWJW
aWV3LCBAImFueS1ob3Zlcjogbm9uZSIpKTsKKyAgICBFWFBFQ1RfRkFMU0UoZXZhbHVhdGVNZWRp
YVF1ZXJ5KHdlYlZpZXcsIEAiYW55LWhvdmVyOiBob3ZlciIpKTsKKworI2lmIEVOQUJMRShUT1VD
SF9FVkVOVFMpCisgICAgRVhQRUNUX1RSVUUoZXZhbHVhdGVNZWRpYVF1ZXJ5KHdlYlZpZXcsIEAi
cG9pbnRlciIpKTsKKyAgICBFWFBFQ1RfRkFMU0UoZXZhbHVhdGVNZWRpYVF1ZXJ5KHdlYlZpZXcs
IEAicG9pbnRlcjogbm9uZSIpKTsKKyAgICBFWFBFQ1RfVFJVRShldmFsdWF0ZU1lZGlhUXVlcnko
d2ViVmlldywgQCJwb2ludGVyOiBjb2Fyc2UiKSk7CisgICAgRVhQRUNUX0ZBTFNFKGV2YWx1YXRl
TWVkaWFRdWVyeSh3ZWJWaWV3LCBAInBvaW50ZXI6IGZpbmUiKSk7CisjZW5kaWYKKworICAgIEVY
UEVDVF9UUlVFKGV2YWx1YXRlTWVkaWFRdWVyeSh3ZWJWaWV3LCBAImFueS1wb2ludGVyIikpOwor
ICAgIEVYUEVDVF9GQUxTRShldmFsdWF0ZU1lZGlhUXVlcnkod2ViVmlldywgQCJhbnktcG9pbnRl
cjogbm9uZSIpKTsKKyAgICBFWFBFQ1RfVFJVRShldmFsdWF0ZU1lZGlhUXVlcnkod2ViVmlldywg
QCJhbnktcG9pbnRlcjogY29hcnNlIikpOworICAgIEVYUEVDVF9GQUxTRShldmFsdWF0ZU1lZGlh
UXVlcnkod2ViVmlldywgQCJhbnktcG9pbnRlcjogZmluZSIpKTsKK30KKworVEVTVChpT1NNb3Vz
ZVN1cHBvcnQsIE1vdXNlSW5pdGlhbGx5Q29ubmVjdGVkKQoreworICAgIFdLTW91c2VEZXZpY2VP
YnNlcnZlciAqbW91c2VEZXZpY2VPYnNlcnZlciA9IFtOU0NsYXNzRnJvbVN0cmluZyhAIldLTW91
c2VEZXZpY2VPYnNlcnZlciIpIHNoYXJlZEluc3RhbmNlXTsKKyAgICBbbW91c2VEZXZpY2VPYnNl
cnZlciBzdGFydF07CisgICAgW21vdXNlRGV2aWNlT2JzZXJ2ZXIgX3NldEhhc01vdXNlRGV2aWNl
Rm9yVGVzdGluZzpZRVNdOworCisgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1Rlc3RXS1dl
YlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6TlNNYWtlUmVjdCgwLCAwLCA4MDAsIDYwMCldKTsK
KworICAgIFt3ZWJWaWV3IHN5bmNocm9ub3VzbHlMb2FkSFRNTFN0cmluZzpAIiJdOworCisjaWYg
RU5BQkxFKFRPVUNIX0VWRU5UUykKKyAgICBFWFBFQ1RfRkFMU0UoZXZhbHVhdGVNZWRpYVF1ZXJ5
KHdlYlZpZXcsIEAiaG92ZXIiKSk7CisgICAgRVhQRUNUX1RSVUUoZXZhbHVhdGVNZWRpYVF1ZXJ5
KHdlYlZpZXcsIEAiaG92ZXI6IG5vbmUiKSk7CisgICAgRVhQRUNUX0ZBTFNFKGV2YWx1YXRlTWVk
aWFRdWVyeSh3ZWJWaWV3LCBAImhvdmVyOiBob3ZlciIpKTsKKyNlbmRpZgorCisgICAgRVhQRUNU
X1RSVUUoZXZhbHVhdGVNZWRpYVF1ZXJ5KHdlYlZpZXcsIEAiYW55LWhvdmVyIikpOworICAgIEVY
UEVDVF9GQUxTRShldmFsdWF0ZU1lZGlhUXVlcnkod2ViVmlldywgQCJhbnktaG92ZXI6IG5vbmUi
KSk7CisgICAgRVhQRUNUX1RSVUUoZXZhbHVhdGVNZWRpYVF1ZXJ5KHdlYlZpZXcsIEAiYW55LWhv
dmVyOiBob3ZlciIpKTsKKworI2lmIEVOQUJMRShUT1VDSF9FVkVOVFMpCisgICAgRVhQRUNUX1RS
VUUoZXZhbHVhdGVNZWRpYVF1ZXJ5KHdlYlZpZXcsIEAicG9pbnRlciIpKTsKKyAgICBFWFBFQ1Rf
RkFMU0UoZXZhbHVhdGVNZWRpYVF1ZXJ5KHdlYlZpZXcsIEAicG9pbnRlcjogbm9uZSIpKTsKKyAg
ICBFWFBFQ1RfVFJVRShldmFsdWF0ZU1lZGlhUXVlcnkod2ViVmlldywgQCJwb2ludGVyOiBjb2Fy
c2UiKSk7CisgICAgRVhQRUNUX0ZBTFNFKGV2YWx1YXRlTWVkaWFRdWVyeSh3ZWJWaWV3LCBAInBv
aW50ZXI6IGZpbmUiKSk7CisjZW5kaWYKKworICAgIEVYUEVDVF9UUlVFKGV2YWx1YXRlTWVkaWFR
dWVyeSh3ZWJWaWV3LCBAImFueS1wb2ludGVyIikpOworICAgIEVYUEVDVF9GQUxTRShldmFsdWF0
ZU1lZGlhUXVlcnkod2ViVmlldywgQCJhbnktcG9pbnRlcjogbm9uZSIpKTsKKyAgICBFWFBFQ1Rf
VFJVRShldmFsdWF0ZU1lZGlhUXVlcnkod2ViVmlldywgQCJhbnktcG9pbnRlcjogY29hcnNlIikp
OworICAgIEVYUEVDVF9UUlVFKGV2YWx1YXRlTWVkaWFRdWVyeSh3ZWJWaWV3LCBAImFueS1wb2lu
dGVyOiBmaW5lIikpOworfQorCitURVNUKGlPU01vdXNlU3VwcG9ydCwgTW91c2VMYXRlckRpc2Nv
bm5lY3RlZCkKK3sKKyAgICBXS01vdXNlRGV2aWNlT2JzZXJ2ZXIgKm1vdXNlRGV2aWNlT2JzZXJ2
ZXIgPSBbTlNDbGFzc0Zyb21TdHJpbmcoQCJXS01vdXNlRGV2aWNlT2JzZXJ2ZXIiKSBzaGFyZWRJ
bnN0YW5jZV07CisgICAgW21vdXNlRGV2aWNlT2JzZXJ2ZXIgc3RhcnRdOworICAgIFttb3VzZURl
dmljZU9ic2VydmVyIF9zZXRIYXNNb3VzZURldmljZUZvclRlc3Rpbmc6WUVTXTsKKworICAgIGF1
dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1l
Ok5TTWFrZVJlY3QoMCwgMCwgODAwLCA2MDApXSk7CisKKyAgICBbd2ViVmlldyBzeW5jaHJvbm91
c2x5TG9hZEhUTUxTdHJpbmc6QCIiXTsKKworICAgIFttb3VzZURldmljZU9ic2VydmVyIF9zZXRI
YXNNb3VzZURldmljZUZvclRlc3Rpbmc6Tk9dOworCisjaWYgRU5BQkxFKFRPVUNIX0VWRU5UUykK
KyAgICBFWFBFQ1RfRkFMU0UoZXZhbHVhdGVNZWRpYVF1ZXJ5KHdlYlZpZXcsIEAiaG92ZXIiKSk7
CisgICAgRVhQRUNUX1RSVUUoZXZhbHVhdGVNZWRpYVF1ZXJ5KHdlYlZpZXcsIEAiaG92ZXI6IG5v
bmUiKSk7CisgICAgRVhQRUNUX0ZBTFNFKGV2YWx1YXRlTWVkaWFRdWVyeSh3ZWJWaWV3LCBAImhv
dmVyOiBob3ZlciIpKTsKKyNlbmRpZgorCisgICAgRVhQRUNUX0ZBTFNFKGV2YWx1YXRlTWVkaWFR
dWVyeSh3ZWJWaWV3LCBAImFueS1ob3ZlciIpKTsKKyAgICBFWFBFQ1RfVFJVRShldmFsdWF0ZU1l
ZGlhUXVlcnkod2ViVmlldywgQCJhbnktaG92ZXI6IG5vbmUiKSk7CisgICAgRVhQRUNUX0ZBTFNF
KGV2YWx1YXRlTWVkaWFRdWVyeSh3ZWJWaWV3LCBAImFueS1ob3ZlcjogaG92ZXIiKSk7CisKKyNp
ZiBFTkFCTEUoVE9VQ0hfRVZFTlRTKQorICAgIEVYUEVDVF9UUlVFKGV2YWx1YXRlTWVkaWFRdWVy
eSh3ZWJWaWV3LCBAInBvaW50ZXIiKSk7CisgICAgRVhQRUNUX0ZBTFNFKGV2YWx1YXRlTWVkaWFR
dWVyeSh3ZWJWaWV3LCBAInBvaW50ZXI6IG5vbmUiKSk7CisgICAgRVhQRUNUX1RSVUUoZXZhbHVh
dGVNZWRpYVF1ZXJ5KHdlYlZpZXcsIEAicG9pbnRlcjogY29hcnNlIikpOworICAgIEVYUEVDVF9G
QUxTRShldmFsdWF0ZU1lZGlhUXVlcnkod2ViVmlldywgQCJwb2ludGVyOiBmaW5lIikpOworI2Vu
ZGlmCisKKyAgICBFWFBFQ1RfVFJVRShldmFsdWF0ZU1lZGlhUXVlcnkod2ViVmlldywgQCJhbnkt
cG9pbnRlciIpKTsKKyAgICBFWFBFQ1RfRkFMU0UoZXZhbHVhdGVNZWRpYVF1ZXJ5KHdlYlZpZXcs
IEAiYW55LXBvaW50ZXI6IG5vbmUiKSk7CisgICAgRVhQRUNUX1RSVUUoZXZhbHVhdGVNZWRpYVF1
ZXJ5KHdlYlZpZXcsIEAiYW55LXBvaW50ZXI6IGNvYXJzZSIpKTsKKyAgICBFWFBFQ1RfRkFMU0Uo
ZXZhbHVhdGVNZWRpYVF1ZXJ5KHdlYlZpZXcsIEAiYW55LXBvaW50ZXI6IGZpbmUiKSk7Cit9CisK
K1RFU1QoaU9TTW91c2VTdXBwb3J0LCBNb3VzZUxhdGVyQ29ubmVjdGVkKQoreworICAgIFdLTW91
c2VEZXZpY2VPYnNlcnZlciAqbW91c2VEZXZpY2VPYnNlcnZlciA9IFtOU0NsYXNzRnJvbVN0cmlu
ZyhAIldLTW91c2VEZXZpY2VPYnNlcnZlciIpIHNoYXJlZEluc3RhbmNlXTsKKyAgICBbbW91c2VE
ZXZpY2VPYnNlcnZlciBzdGFydF07CisgICAgW21vdXNlRGV2aWNlT2JzZXJ2ZXIgX3NldEhhc01v
dXNlRGV2aWNlRm9yVGVzdGluZzpOT107CisKKyAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtb
VGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU01ha2VSZWN0KDAsIDAsIDgwMCwg
NjAwKV0pOworCisgICAgW3dlYlZpZXcgc3luY2hyb25vdXNseUxvYWRIVE1MU3RyaW5nOkAiIl07
CisKKyAgICBbbW91c2VEZXZpY2VPYnNlcnZlciBfc2V0SGFzTW91c2VEZXZpY2VGb3JUZXN0aW5n
OllFU107CisKKyNpZiBFTkFCTEUoVE9VQ0hfRVZFTlRTKQorICAgIEVYUEVDVF9GQUxTRShldmFs
dWF0ZU1lZGlhUXVlcnkod2ViVmlldywgQCJob3ZlciIpKTsKKyAgICBFWFBFQ1RfVFJVRShldmFs
dWF0ZU1lZGlhUXVlcnkod2ViVmlldywgQCJob3Zlcjogbm9uZSIpKTsKKyAgICBFWFBFQ1RfRkFM
U0UoZXZhbHVhdGVNZWRpYVF1ZXJ5KHdlYlZpZXcsIEAiaG92ZXI6IGhvdmVyIikpOworI2VuZGlm
CisKKyAgICBFWFBFQ1RfVFJVRShldmFsdWF0ZU1lZGlhUXVlcnkod2ViVmlldywgQCJhbnktaG92
ZXIiKSk7CisgICAgRVhQRUNUX0ZBTFNFKGV2YWx1YXRlTWVkaWFRdWVyeSh3ZWJWaWV3LCBAImFu
eS1ob3Zlcjogbm9uZSIpKTsKKyAgICBFWFBFQ1RfVFJVRShldmFsdWF0ZU1lZGlhUXVlcnkod2Vi
VmlldywgQCJhbnktaG92ZXI6IGhvdmVyIikpOworCisjaWYgRU5BQkxFKFRPVUNIX0VWRU5UUykK
KyAgICBFWFBFQ1RfVFJVRShldmFsdWF0ZU1lZGlhUXVlcnkod2ViVmlldywgQCJwb2ludGVyIikp
OworICAgIEVYUEVDVF9GQUxTRShldmFsdWF0ZU1lZGlhUXVlcnkod2ViVmlldywgQCJwb2ludGVy
OiBub25lIikpOworICAgIEVYUEVDVF9UUlVFKGV2YWx1YXRlTWVkaWFRdWVyeSh3ZWJWaWV3LCBA
InBvaW50ZXI6IGNvYXJzZSIpKTsKKyAgICBFWFBFQ1RfRkFMU0UoZXZhbHVhdGVNZWRpYVF1ZXJ5
KHdlYlZpZXcsIEAicG9pbnRlcjogZmluZSIpKTsKKyNlbmRpZgorCisgICAgRVhQRUNUX1RSVUUo
ZXZhbHVhdGVNZWRpYVF1ZXJ5KHdlYlZpZXcsIEAiYW55LXBvaW50ZXIiKSk7CisgICAgRVhQRUNU
X0ZBTFNFKGV2YWx1YXRlTWVkaWFRdWVyeSh3ZWJWaWV3LCBAImFueS1wb2ludGVyOiBub25lIikp
OworICAgIEVYUEVDVF9UUlVFKGV2YWx1YXRlTWVkaWFRdWVyeSh3ZWJWaWV3LCBAImFueS1wb2lu
dGVyOiBjb2Fyc2UiKSk7CisgICAgRVhQRUNUX1RSVUUoZXZhbHVhdGVNZWRpYVF1ZXJ5KHdlYlZp
ZXcsIEAiYW55LXBvaW50ZXI6IGZpbmUiKSk7Cit9CisKKyNlbmRpZiAvLyBQTEFURk9STShJT1Mp
CisKKyNpZiBQTEFURk9STShNQUNDQVRBTFlTVCkKKworVEVTVChpT1NNb3VzZVN1cHBvcnQsIE1v
dXNlQWx3YXlzQ29ubmVjdGVkKQoreworICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0
V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5TTWFrZVJlY3QoMCwgMCwgODAwLCA2MDAp
XSk7CisKKyAgICBbd2ViVmlldyBzeW5jaHJvbm91c2x5TG9hZEhUTUxTdHJpbmc6QCIiXTsKKwor
I2lmIEVOQUJMRShUT1VDSF9FVkVOVFMpCisgICAgRVhQRUNUX0ZBTFNFKGV2YWx1YXRlTWVkaWFR
dWVyeSh3ZWJWaWV3LCBAImhvdmVyIikpOworICAgIEVYUEVDVF9UUlVFKGV2YWx1YXRlTWVkaWFR
dWVyeSh3ZWJWaWV3LCBAImhvdmVyOiBub25lIikpOworICAgIEVYUEVDVF9GQUxTRShldmFsdWF0
ZU1lZGlhUXVlcnkod2ViVmlldywgQCJob3ZlcjogaG92ZXIiKSk7CisjZW5kaWYKKworICAgIEVY
UEVDVF9UUlVFKGV2YWx1YXRlTWVkaWFRdWVyeSh3ZWJWaWV3LCBAImFueS1ob3ZlciIpKTsKKyAg
ICBFWFBFQ1RfRkFMU0UoZXZhbHVhdGVNZWRpYVF1ZXJ5KHdlYlZpZXcsIEAiYW55LWhvdmVyOiBu
b25lIikpOworICAgIEVYUEVDVF9UUlVFKGV2YWx1YXRlTWVkaWFRdWVyeSh3ZWJWaWV3LCBAImFu
eS1ob3ZlcjogaG92ZXIiKSk7CisKKyNpZiBFTkFCTEUoVE9VQ0hfRVZFTlRTKQorICAgIEVYUEVD
VF9UUlVFKGV2YWx1YXRlTWVkaWFRdWVyeSh3ZWJWaWV3LCBAInBvaW50ZXIiKSk7CisgICAgRVhQ
RUNUX0ZBTFNFKGV2YWx1YXRlTWVkaWFRdWVyeSh3ZWJWaWV3LCBAInBvaW50ZXI6IG5vbmUiKSk7
CisgICAgRVhQRUNUX1RSVUUoZXZhbHVhdGVNZWRpYVF1ZXJ5KHdlYlZpZXcsIEAicG9pbnRlcjog
Y29hcnNlIikpOworICAgIEVYUEVDVF9GQUxTRShldmFsdWF0ZU1lZGlhUXVlcnkod2ViVmlldywg
QCJwb2ludGVyOiBmaW5lIikpOworI2VuZGlmCisKKyAgICBFWFBFQ1RfVFJVRShldmFsdWF0ZU1l
ZGlhUXVlcnkod2ViVmlldywgQCJhbnktcG9pbnRlciIpKTsKKyAgICBFWFBFQ1RfRkFMU0UoZXZh
bHVhdGVNZWRpYVF1ZXJ5KHdlYlZpZXcsIEAiYW55LXBvaW50ZXI6IG5vbmUiKSk7CisgICAgRVhQ
RUNUX1RSVUUoZXZhbHVhdGVNZWRpYVF1ZXJ5KHdlYlZpZXcsIEAiYW55LXBvaW50ZXI6IGNvYXJz
ZSIpKTsKKyAgICBFWFBFQ1RfVFJVRShldmFsdWF0ZU1lZGlhUXVlcnkod2ViVmlldywgQCJhbnkt
cG9pbnRlcjogZmluZSIpKTsKK30KKworI2VuZGlmIC8vIFBMQVRGT1JNKE1BQ0NBVEFMWVNUKQor
CisjZW5kaWYgLy8gSEFWRShVSUtJVF9XSVRIX01PVVNFX1NVUFBPUlQpCisKICNlbmRpZiAvLyBQ
TEFURk9STShJT1MpIHx8IFBMQVRGT1JNKE1BQ0NBVEFMWVNUKQpkaWZmIC0tZ2l0IGEvV2ViS2l0
TGlicmFyaWVzL0NoYW5nZUxvZyBiL1dlYktpdExpYnJhcmllcy9DaGFuZ2VMb2cKaW5kZXggZGU3
MmNmMGY0NDAwMzE1Y2U1NWJmYWFkMTdlYTgyNDIyN2I1YjM4OC4uMDAwNjY4ZmM5Yjc1ZWMxMzgw
ZTM0MjUwZjUzYzQ3NzQwOWQ1NGFhMiAxMDA2NDQKLS0tIGEvV2ViS2l0TGlicmFyaWVzL0NoYW5n
ZUxvZworKysgYi9XZWJLaXRMaWJyYXJpZXMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIw
MjAtMTAtMDUgIERldmluIFJvdXNzbyAgPGRyb3Vzc29AYXBwbGUuY29tPgorCisgICAgICAgIENT
UyBob3ZlciBhbmQgInBvaW50ZXI6IGZpbmUiIG1lZGlhIHF1ZXJpZXMgZG8gbm90IGV2YWx1YXRl
IHRvIHRydWUgd2l0aCBpT1MgMTMuNCBtb3VzZSBzdXBwb3J0CisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDkyOTIKKyAgICAgICAgPHJkYXI6Ly9wcm9i
bGVtLzYwNjYzMTI0PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgICogV2ViS2l0UHJpdmF0ZUZyYW1ld29ya1N0dWJzL2lPUy8xMy9CYWNrQm9hcmRTZXJ2
aWNlcy5mcmFtZXdvcmsvQmFja0JvYXJkU2VydmljZXMudGJkOiBBZGRlZC4KKyAgICAgICAgKiBX
ZWJLaXRQcml2YXRlRnJhbWV3b3JrU3R1YnMvaU9TLzE0L0JhY2tCb2FyZFNlcnZpY2VzLmZyYW1l
d29yay9CYWNrQm9hcmRTZXJ2aWNlcy50YmQ6IEFkZGVkLgorICAgICAgICBVc2UgYEJhY2tCb2Fy
ZFNlcnZpY2VzYCB0byBsaXN0ZW4gZm9yIG1vdXNlIGRldmljZXMgY2hhbmdlcy4KKwogMjAyMC0x
MC0wNCAgUnlhbiBIb3N0ZXRsZXIgIDxyaG9zdEBhcHBsZS5jb20+CiAKICAgICAgICAgU3VibWlz
c2lvbiBmYWlsdXJlIHdpdGggIm1ha2U6ICoqKiBObyBydWxlIHRvIG1ha2UgdGFyZ2V0IGBpbnN0
YWxsc3JjJy4gU3RvcCIKZGlmZiAtLWdpdCBhL1dlYktpdExpYnJhcmllcy9XZWJLaXRQcml2YXRl
RnJhbWV3b3JrU3R1YnMvaU9TLzEzL0JhY2tCb2FyZFNlcnZpY2VzLmZyYW1ld29yay9CYWNrQm9h
cmRTZXJ2aWNlcy50YmQgYi9XZWJLaXRMaWJyYXJpZXMvV2ViS2l0UHJpdmF0ZUZyYW1ld29ya1N0
dWJzL2lPUy8xMy9CYWNrQm9hcmRTZXJ2aWNlcy5mcmFtZXdvcmsvQmFja0JvYXJkU2VydmljZXMu
dGJkCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjAwMjM0OGJkM2VlMGUxMzNhM2Q5NThmYmRlYzU3ZmY3ZmRiM2I3ZjcK
LS0tIC9kZXYvbnVsbAorKysgYi9XZWJLaXRMaWJyYXJpZXMvV2ViS2l0UHJpdmF0ZUZyYW1ld29y
a1N0dWJzL2lPUy8xMy9CYWNrQm9hcmRTZXJ2aWNlcy5mcmFtZXdvcmsvQmFja0JvYXJkU2Vydmlj
ZXMudGJkCkBAIC0wLDAgKzEsOSBAQAorLS0tICF0YXBpLXRiZC12MworYXJjaHM6ICAgICAgICAg
ICBbIHg4Nl82NCwgYXJtNjQsIGFybTY0ZSBdCitpbnN0YWxsLW5hbWU6ICAgICcvU3lzdGVtL0xp
YnJhcnkvUHJpdmF0ZUZyYW1ld29ya3MvQmFja0JvYXJkU2VydmljZXMuZnJhbWV3b3JrL0JhY2tC
b2FyZFNlcnZpY2VzJworb2JqYy1jb25zdHJhaW50OiBub25lCitwbGF0Zm9ybTogaW9zCitleHBv
cnRzOgorICAtIGFyY2hzOiAgICAgICAgICAgWyB4ODZfNjQsIGFybTY0LCBhcm02NGUgXQorICAg
IG9iamMtY2xhc3NlczogICAgWyBCS1NNb3VzZVBvaW50ZXJEZXZpY2UsIEJLU01vdXNlUG9pbnRl
clNlcnZpY2UgXQorLi4uCmRpZmYgLS1naXQgYS9XZWJLaXRMaWJyYXJpZXMvV2ViS2l0UHJpdmF0
ZUZyYW1ld29ya1N0dWJzL2lPUy8xNC9CYWNrQm9hcmRTZXJ2aWNlcy5mcmFtZXdvcmsvQmFja0Jv
YXJkU2VydmljZXMudGJkIGIvV2ViS2l0TGlicmFyaWVzL1dlYktpdFByaXZhdGVGcmFtZXdvcmtT
dHVicy9pT1MvMTQvQmFja0JvYXJkU2VydmljZXMuZnJhbWV3b3JrL0JhY2tCb2FyZFNlcnZpY2Vz
LnRiZApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi4wMDIzNDhiZDNlZTBlMTMzYTNkOTU4ZmJkZWM1N2ZmN2ZkYjNiN2Y3
Ci0tLSAvZGV2L251bGwKKysrIGIvV2ViS2l0TGlicmFyaWVzL1dlYktpdFByaXZhdGVGcmFtZXdv
cmtTdHVicy9pT1MvMTQvQmFja0JvYXJkU2VydmljZXMuZnJhbWV3b3JrL0JhY2tCb2FyZFNlcnZp
Y2VzLnRiZApAQCAtMCwwICsxLDkgQEAKKy0tLSAhdGFwaS10YmQtdjMKK2FyY2hzOiAgICAgICAg
ICAgWyB4ODZfNjQsIGFybTY0LCBhcm02NGUgXQoraW5zdGFsbC1uYW1lOiAgICAnL1N5c3RlbS9M
aWJyYXJ5L1ByaXZhdGVGcmFtZXdvcmtzL0JhY2tCb2FyZFNlcnZpY2VzLmZyYW1ld29yay9CYWNr
Qm9hcmRTZXJ2aWNlcycKK29iamMtY29uc3RyYWludDogbm9uZQorcGxhdGZvcm06IGlvcworZXhw
b3J0czoKKyAgLSBhcmNoczogICAgICAgICAgIFsgeDg2XzY0LCBhcm02NCwgYXJtNjRlIF0KKyAg
ICBvYmpjLWNsYXNzZXM6ICAgIFsgQktTTW91c2VQb2ludGVyRGV2aWNlLCBCS1NNb3VzZVBvaW50
ZXJTZXJ2aWNlIF0KKy4uLgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>410675</attachid>
            <date>2020-10-06 12:02:07 -0700</date>
            <delta_ts>2020-10-06 12:47:59 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-209292-20201006120207.patch</filename>
            <type>text/plain</type>
            <size>79017</size>
            <attacher name="Devin Rousso">hi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCAxNjdkZTRmMGJmYjdlOThjYjJlNmU1YmNlNGM3NmM1ZTk5MWQ0OTk5Li42
YmZkMTYyM2JkMmZhZTZiOGQ4NTQ2MDQ5MjQ5Y2VkZDYzYzI4ZTYzIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsNDAgQEAKKzIwMjAtMTAtMDUgIERldmluIFJvdXNzbyAgPGRyb3Vzc29AYXBwbGUuY29t
PgorCisgICAgICAgIENTUyBob3ZlciBhbmQgInBvaW50ZXI6IGZpbmUiIG1lZGlhIHF1ZXJpZXMg
ZG8gbm90IGV2YWx1YXRlIHRvIHRydWUgd2l0aCBpT1MgMTMuNCBtb3VzZSBzdXBwb3J0CisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDkyOTIKKyAgICAg
ICAgPHJkYXI6Ly9wcm9ibGVtLzYwNjYzMTI0PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIE9uIGlPUywgdGhlIHByaW1hcnkgcG9pbnRlciB3aWxsIGFs
d2F5cyBiZSB0b3VjaCBpbnB1dCwgc28gdGhlIGBob3ZlcmAvYHBvaW50ZXJgIG1lZGlhIHF1ZXJ5
CisgICAgICAgIHNob3VsZCBuZXZlciBjaGFuZ2UuIElmIGEgbW91c2UgaXMgY29ubmVjdGVkLCBo
b3dldmVyLCBgYW55LWhvdmVyYC9gYW55LXBvaW50ZXJgIHNob3VsZAorICAgICAgICBjaGFuZ2Ug
YXMgbm93IHRoZXJlIGlzIGF0IGxlYXN0IG9uZSBkZXZpY2UgdGhhdCBzdXBwb3J0cyBgaG92ZXJg
L2BmaW5lYC4gTm90ZSB0aGF0IGluIHRoZQorICAgICAgICBjYXNlIG9mIGBhbnktcG9pbnRlcmAg
dGhpcyBtZWFucyB0aGF0IGJvdGggYGNvYXJzZWAgYW5kIGBmaW5lYCB3aWxsIGFwcGx5LiBDYXRh
bHlzdCBhc3N1bWVzCisgICAgICAgIHRoYXQgdGhlcmUgaXMgYWx3YXlzIGEgbW91c2UgY29ubmVj
dGVkLgorCisgICAgICAgIFNwZWM6IGh0dHBzOi8vZHJhZnRzLmNzc3dnLm9yZy9tZWRpYXF1ZXJp
ZXMtNC8jYW55LWlucHV0CisKKyAgICAgICAgKiBjc3MvTWVkaWFRdWVyeUV2YWx1YXRvci5jcHA6
CisgICAgICAgIChXZWJDb3JlOjphbnlIb3ZlckV2YWx1YXRlKToKKyAgICAgICAgKFdlYkNvcmU6
OmFueVBvaW50ZXJFdmFsdWF0ZSk6CisKKyAgICAgICAgKiBwYWdlL0Nocm9tZUNsaWVudC5oOgor
ICAgICAgICAqIGxvYWRlci9FbXB0eUNsaWVudHMuaDoKKyAgICAgICAgKFdlYkNvcmU6OkVtcHR5
Q2hyb21lQ2xpZW50Ojpob3ZlclN1cHBvcnRlZEJ5QW55QXZhaWxhYmxlUG9pbnRpbmdEZXZpY2Ug
Y29uc3QpOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkVtcHR5Q2hyb21lQ2xpZW50Ojpwb2lu
dGVyQ2hhcmFjdGVyaXN0aWNzT2ZBbGxBdmFpbGFibGVQb2ludGluZ0RldmljZXMgY29uc3QpOiBB
ZGRlZC4KKyAgICAgICAgUHJvdmlkZSBhIHdheSBmb3IgV2ViQ29yZSB0byBnZXQgdGhlIGN1cnJl
bnQgc3RhdGUgb2Ygd2hldGhlciB0aGVyZSBhcmUgYW55IG1vdXNlIGRldmljZXMuCisgICAgICAg
IFJlZmFjdG9yIGxvZ2ljIGluIGBhbnlIb3ZlckV2YWx1YXRlYCBhbmQgYGFueVBvaW50ZXJFdmFs
dWF0ZWAgdG8gbW92ZSBwbGF0Zm9ybSBjb2RlIGludG8gdGhlCisgICAgICAgIHJlc3BlY3RpdmUg
YFdlYktpdDo6V2ViUGFnZWAgZmlsZS4KKworICAgICAgICAqIHBhZ2UvUG9pbnRlckNoYXJhY3Rl
cmlzdGljcy5oOiBBZGRlZC4KKyAgICAgICAgRW51bSBmb3IgYENvYXJzZWAgYW5kIGBGaW5lYC4K
KworICAgICAgICAqIHBsYXRmb3JtL1BsYXRmb3JtU2NyZWVuLmg6CisgICAgICAgIEV4cG9ydCBh
ZGRpdGlvbmFsIGZ1bmN0aW9ucyBmb3IgdXNlIGluIFdlYktpdC4KKworICAgICAgICAqIEhlYWRl
cnMuY21ha2U6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgor
CiAyMDIwLTEwLTA2ICBMdW1pbmcgWWluICA8bHVtaW5nX3lpbkBhcHBsZS5jb20+CiAKICAgICAg
ICAgW21hY09TXSBCdW1wIHJlcG9ydGVkIGN1cnJlbnQgc2hpcHBpbmcgcmVsZWFzZSBVQSB0byAx
MF8xNV83CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCmluZGV4IDQwMzRlZmMyZWM2MDNmYWI1N2NiYTI4MmJlNDc0NTVlMGIxMjE2
ZDQuLmRhMWU4ZDBkOGY3Y2YwYmNjNmFlYWM3NjljNDk0ZTQ5YTJkODM3ZDkgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsOTYgQEAKKzIwMjAtMTAtMDUgIERldmluIFJvdXNzbyAgPGRyb3Vzc29AYXBwbGUu
Y29tPgorCisgICAgICAgIENTUyBob3ZlciBhbmQgInBvaW50ZXI6IGZpbmUiIG1lZGlhIHF1ZXJp
ZXMgZG8gbm90IGV2YWx1YXRlIHRvIHRydWUgd2l0aCBpT1MgMTMuNCBtb3VzZSBzdXBwb3J0Cisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDkyOTIKKyAg
ICAgICAgPHJkYXI6Ly9wcm9ibGVtLzYwNjYzMTI0PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIE9uIGlPUywgdGhlIHByaW1hcnkgcG9pbnRlciB3aWxs
IGFsd2F5cyBiZSB0b3VjaCBpbnB1dCwgc28gdGhlIGBob3ZlcmAvYHBvaW50ZXJgIG1lZGlhIHF1
ZXJ5CisgICAgICAgIHNob3VsZCBuZXZlciBjaGFuZ2UuIElmIGEgbW91c2UgaXMgY29ubmVjdGVk
LCBob3dldmVyLCBgYW55LWhvdmVyYC9gYW55LXBvaW50ZXJgIHNob3VsZAorICAgICAgICBjaGFu
Z2UgYXMgbm93IHRoZXJlIGlzIGF0IGxlYXN0IG9uZSBkZXZpY2UgdGhhdCBzdXBwb3J0cyBgaG92
ZXJgL2BmaW5lYC4gTm90ZSB0aGF0IGluIHRoZQorICAgICAgICBjYXNlIG9mIGBhbnktcG9pbnRl
cmAgdGhpcyBtZWFucyB0aGF0IGJvdGggYGNvYXJzZWAgYW5kIGBmaW5lYCB3aWxsIGFwcGx5LiBD
YXRhbHlzdCBhc3N1bWVzCisgICAgICAgIHRoYXQgdGhlcmUgaXMgYWx3YXlzIGEgbW91c2UgY29u
bmVjdGVkLgorCisgICAgICAgIFNwZWM6IGh0dHBzOi8vZHJhZnRzLmNzc3dnLm9yZy9tZWRpYXF1
ZXJpZXMtNC8jYW55LWlucHV0CisKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dLTW91c2VEZXZp
Y2VPYnNlcnZlci5oOiBBZGRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dLTW91c2VEZXZp
Y2VPYnNlcnZlci5tbTogQWRkZWQuCisgICAgICAgICgrW1dLTW91c2VEZXZpY2VPYnNlcnZlciBz
aGFyZWRJbnN0YW5jZV0pOgorICAgICAgICAoLVtXS01vdXNlRGV2aWNlT2JzZXJ2ZXIgZGVhbGxv
Y10pOgorICAgICAgICAoLVtXS01vdXNlRGV2aWNlT2JzZXJ2ZXIgc3RhcnRdKToKKyAgICAgICAg
KC1bV0tNb3VzZURldmljZU9ic2VydmVyIHN0b3BdKToKKyAgICAgICAgKC1bV0tNb3VzZURldmlj
ZU9ic2VydmVyIG1vdXNlUG9pbnRlckRldmljZXNEaWRDaGFuZ2U6XSk6CisgICAgICAgICgtW1dL
TW91c2VEZXZpY2VPYnNlcnZlciBfc2V0SGFzTW91c2VEZXZpY2VGb3JUZXN0aW5nOl0pOgorICAg
ICAgICBVc2UgYEJhY2tCb2FyZFNlcnZpY2VzYCB0byBsaXN0ZW4gZm9yIG1vdXNlIGRldmljZXMg
Y2hhbmdlcyBhbmQgbm90aWZ5IGFsbCBXZWJQcm9jZXNzLgorCisgICAgICAgICogVUlQcm9jZXNz
L1dlYlByb2Nlc3NQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHku
Y3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUHJveHk6OldlYlByb2Nlc3NQcm94eSk6
CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQcm94eTo6cGxhdGZvcm1Jbml0aWFsaXplKTog
QWRkZWQuCisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQcm94eTo6fldlYlByb2Nlc3NQcm94
eSk6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQcm94eTo6cGxhdGZvcm1EZXN0cm95KTog
QWRkZWQuCisgICAgICAgICogVUlQcm9jZXNzL2lvcy9XZWJQcm9jZXNzUHJveHlJT1MubW06Cisg
ICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQcm94eTo6cGxhdGZvcm1Jbml0aWFsaXplKTogQWRk
ZWQuCisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQcm94eTo6cGxhdGZvcm1EZXN0cm95KTog
QWRkZWQuCisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQcm94eTo6bm90aWZ5SGFzTW91c2VE
ZXZpY2VDaGFuZ2VkKTogQWRkZWQuCisgICAgICAgIFRlbGwgdGhlIHNoYXJlZCBgV0tNb3VzZURl
dmljZU9ic2VydmVyYCB0byBzdGFydCBsaXN0ZW5pbmcgZm9yIG1vdXNlIGRldmljZSBjaGFuZ2Vz
IHdoZW4KKyAgICAgICAgY3JlYXRpbmcgdGhlIFdlYlByb2Nlc3Mgc28gdGhhdCB0aGUgc2hhcmVk
IGBXS01vdXNlRGV2aWNlT2JzZXJ2ZXJgIGtub3dzIHRvIG5vdGlmeSBhbGwKKyAgICAgICAgaW5z
dGFuY2VzIHdoZW4gbW91c2UgZGV2aWNlcyBjaGFuZ2UuIE1ha2UgYGFsbFByb2Nlc3Nlc2AgaW50
byBhIGBwcml2YXRlIHN0YXRpY2AgbWVtYmVyCisgICAgICAgIGZ1bmN0aW9uIHNvIHRoYXQgaXQg
Y2FuIGFsc28gYmUgdXNlZCBpbiBgVUlQcm9jZXNzL2lvcy9XZWJQcm9jZXNzUHJveHlJT1MubW1g
LgorCisgICAgICAgICogU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaDoKKyAg
ICAgICAgKiBTaGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHA6CisgICAgICAg
IChXZWJLaXQ6OldlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnM6OmVuY29kZSBjb25zdCk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnM6OmRlY29kZSk6Cisg
ICAgICAgICogVUlQcm9jZXNzL0NvY29hL1dlYlByb2Nlc3NQb29sQ29jb2EubW06CisgICAgICAg
IChXZWJLaXQ6OldlYlByb2Nlc3NQb29sOjpwbGF0Zm9ybUluaXRpYWxpemVXZWJQcm9jZXNzKToK
KyAgICAgICAgVXNlIHRoZSBjdXJyZW50IHN0YXRlIG9mIHRoZSBzaGFyZWQgYFdLTW91c2VEZXZp
Y2VPYnNlcnZlcmAgd2hlbiBjcmVhdGluZyBXZWJQcm9jZXNzIGluc3RlYWQKKyAgICAgICAgb2Yg
c2VuZGluZyBhIGBTZXRIYXNNb3VzZURldmljZWAgbWVzc2FnZSBpbW1lZGlhdGVseSBhZnRlciB0
aGUgV2ViUHJvY2VzcyBpcyBjcmVhdGVkLgorCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQcm9j
ZXNzLm1lc3NhZ2VzLmluOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oOgorICAg
ICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjpoYXNNb3VzZURldmljZSBjb25zdCk6IEFkZGVkLgor
ICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHA6CisgICAgICAgIChXZWJLaXQ6Oldl
YlByb2Nlc3M6OnNldEhhc01vdXNlRGV2aWNlKTogQWRkZWQuCisgICAgICAgICogV2ViUHJvY2Vz
cy9jb2NvYS9XZWJQcm9jZXNzQ29jb2EubW06CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6
OnBsYXRmb3JtSW5pdGlhbGl6ZVdlYlByb2Nlc3MpOgorICAgICAgICBVcGRhdGUgc3R5bGUgKGlu
Y2x1ZGluZyBgYW55LWhvdmVyYCBhbmQgYGFueS1wb2ludGVyYCkgd2hlbmV2ZXIgbW91c2UgZGV2
aWNlcyBjaGFuZ2UuCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNo
cm9tZUNsaWVudC5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hy
b21lQ2xpZW50LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViQ2hyb21lQ2xpZW50Ojpob3ZlclN1
cHBvcnRlZEJ5QW55QXZhaWxhYmxlUG9pbnRpbmdEZXZpY2UgY29uc3QpOiBBZGRlZC4KKyAgICAg
ICAgKFdlYktpdDo6V2ViQ2hyb21lQ2xpZW50Ojpwb2ludGVyQ2hhcmFjdGVyaXN0aWNzT2ZBbGxB
dmFpbGFibGVQb2ludGluZ0RldmljZXMgY29uc3QpOiBBZGRlZC4KKyAgICAgICAgKiBXZWJQcm9j
ZXNzL1dlYlBhZ2UvV2ViUGFnZS5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9ndGsv
V2ViUGFnZUd0ay5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OmhvdmVyU3VwcG9ydGVk
QnlBbnlBdmFpbGFibGVQb2ludGluZ0RldmljZSBjb25zdCk6IEFkZGVkLgorICAgICAgICAoV2Vi
S2l0OjpXZWJQYWdlOjpwb2ludGVyQ2hhcmFjdGVyaXN0aWNzT2ZBbGxBdmFpbGFibGVQb2ludGlu
Z0RldmljZXMgY29uc3QpOiBBZGRlZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvaW9z
L1dlYlBhZ2VJT1MubW06CisgICAgICAgIChXZWJLaXQ6Omhhc01vdXNlRGV2aWNlKTogQWRkZWQu
CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OmhvdmVyU3VwcG9ydGVkQnlBbnlBdmFpbGFibGVQ
b2ludGluZ0RldmljZSBjb25zdCk6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpw
b2ludGVyQ2hhcmFjdGVyaXN0aWNzT2ZBbGxBdmFpbGFibGVQb2ludGluZ0RldmljZXMgY29uc3Qp
OiBBZGRlZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1dlYlBhZ2VNYWMubW06
CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OmhvdmVyU3VwcG9ydGVkQnlBbnlBdmFpbGFibGVQ
b2ludGluZ0RldmljZSBjb25zdCk6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpw
b2ludGVyQ2hhcmFjdGVyaXN0aWNzT2ZBbGxBdmFpbGFibGVQb2ludGluZ0RldmljZXMgY29uc3Qp
OiBBZGRlZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvcGxheXN0YXRpb24vV2ViUGFn
ZVBsYXlTdGF0aW9uLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6aG92ZXJTdXBwb3J0
ZWRCeUFueUF2YWlsYWJsZVBvaW50aW5nRGV2aWNlIGNvbnN0KTogQWRkZWQuCisgICAgICAgIChX
ZWJLaXQ6OldlYlBhZ2U6OnBvaW50ZXJDaGFyYWN0ZXJpc3RpY3NPZkFsbEF2YWlsYWJsZVBvaW50
aW5nRGV2aWNlcyBjb25zdCk6IEFkZGVkLgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS93
aW4vV2ViUGFnZVdpbi5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OmhvdmVyU3VwcG9y
dGVkQnlBbnlBdmFpbGFibGVQb2ludGluZ0RldmljZSBjb25zdCk6IEFkZGVkLgorICAgICAgICAo
V2ViS2l0OjpXZWJQYWdlOjpwb2ludGVyQ2hhcmFjdGVyaXN0aWNzT2ZBbGxBdmFpbGFibGVQb2lu
dGluZ0RldmljZXMgY29uc3QpOiBBZGRlZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2Uv
d3BlL1dlYlBhZ2VXUEUuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpob3ZlclN1cHBv
cnRlZEJ5QW55QXZhaWxhYmxlUG9pbnRpbmdEZXZpY2UgY29uc3QpOiBBZGRlZC4KKyAgICAgICAg
KFdlYktpdDo6V2ViUGFnZTo6cG9pbnRlckNoYXJhY3RlcmlzdGljc09mQWxsQXZhaWxhYmxlUG9p
bnRpbmdEZXZpY2VzIGNvbnN0KTogQWRkZWQuCisgICAgICAgIFByb3ZpZGUgYSB3YXkgZm9yIFdl
YkNvcmUgdG8gZ2V0IHRoZSBjdXJyZW50IHN0YXRlIG9mIHdoZXRoZXIgdGhlcmUgYXJlIGFueSBt
b3VzZSBkZXZpY2VzLgorICAgICAgICBSZWZhY3RvciBsb2dpYyBpbiBgV2ViQ29yZTo6YW55SG92
ZXJFdmFsdWF0ZWAgYW5kIGBXZWJDb3JlOjphbnlQb2ludGVyRXZhbHVhdGVgIHRvIG1vdmUKKyAg
ICAgICAgcGxhdGZvcm0gY29kZSBpbnRvIHRoZSByZXNwZWN0aXZlIGBXZWJQYWdlYCBmaWxlLgor
CisgICAgICAgICogQ29uZmlndXJhdGlvbnMvV2ViS2l0LnhjY29uZmlnOgorICAgICAgICAqIFBs
YXRmb3JtL3NwaS9pb3MvQmFja0JvYXJkU2VydmljZXNTUEkuaDoKKyAgICAgICAgKiBQbGF0Zm9y
bS9zcGkvaW9zL0Jhc2VCb2FyZFNQSS5oOiBBZGRlZC4KKyAgICAgICAgKiBTb3VyY2VzQ29jb2Eu
dHh0OgorICAgICAgICAqIFdlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorCiAyMDIw
LTEwLTA2ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAogICAgICAgICBFbmFi
bGUgdmlkZW8gY2FwdHVyZSBpbiBXZWJQcm9jZXNzIGJ5IGRlZmF1bHQgb24gTWFjT1MKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvaW9zL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXRM
ZWdhY3kvaW9zL0NoYW5nZUxvZwppbmRleCAxMmU2NTViMWVjZGQ1ZDQ3MGYzZWE0MGZhYzc4MzVm
ZTFmNTdmYmZjLi4xOWFiZjg2N2U2NWZmZjU1ZWMxZjhkZTFlNDFkOGMxODYyNjZjNDM0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L2lvcy9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dl
YktpdExlZ2FjeS9pb3MvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMjAtMTAtMDUgIERl
dmluIFJvdXNzbyAgPGRyb3Vzc29AYXBwbGUuY29tPgorCisgICAgICAgIENTUyBob3ZlciBhbmQg
InBvaW50ZXI6IGZpbmUiIG1lZGlhIHF1ZXJpZXMgZG8gbm90IGV2YWx1YXRlIHRvIHRydWUgd2l0
aCBpT1MgMTMuNCBtb3VzZSBzdXBwb3J0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0yMDkyOTIKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzYwNjYzMTI0
PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2Vi
Q29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50SU9TLmg6CisgICAgICAgIChXZWJDaHJvbWVDbGll
bnRJT1M6OmhvdmVyU3VwcG9ydGVkQnlBbnlBdmFpbGFibGVQb2ludGluZ0RldmljZSBjb25zdCk6
IEFkZGVkLgorICAgICAgICAoV2ViQ2hyb21lQ2xpZW50SU9TOjpwb2ludGVyQ2hhcmFjdGVyaXN0
aWNzT2ZBbGxBdmFpbGFibGVQb2ludGluZ0RldmljZXMgY29uc3QpOiBBZGRlZC4KKyAgICAgICAg
TW91c2UgZGV2aWNlcyBhcmUgbm90IHN1cHBvcnRlZC4KKwogMjAyMC0wOS0yMCAgRGFyaW4gQWRs
ZXIgIDxkYXJpbkBhcHBsZS5jb20+CiAKICAgICAgICAgTmV4dCBzdGVwIHRvd2FyZHMgZWxpbWlu
YXRpbmcgZGVwcmVjYXRlZCBsZWdhY3kgcG9zaXRpb25zCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VM
b2cKaW5kZXggZDk0YWNkMmUzOGQyZjIwYzdiZjM3ZTNhNTllYTMyMjkxODQxNTIzOC4uZDNhNjU5
ZTgxM2JhYWUzM2U0MzY3YjkxNTFiNmQ0MzUzM2VjOWI3ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0No
YW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDIwLTEwLTA1ICBEZXZpbiBSb3Vzc28gIDxkcm91
c3NvQGFwcGxlLmNvbT4KKworICAgICAgICBDU1MgaG92ZXIgYW5kICJwb2ludGVyOiBmaW5lIiBt
ZWRpYSBxdWVyaWVzIGRvIG5vdCBldmFsdWF0ZSB0byB0cnVlIHdpdGggaU9TIDEzLjQgbW91c2Ug
c3VwcG9ydAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MjA5MjkyCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS82MDY2MzEyND4KKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkNo
cm9tZUNsaWVudC5oOgorICAgICAgICAoV2ViQ2hyb21lQ2xpZW50Ojpob3ZlclN1cHBvcnRlZEJ5
QW55QXZhaWxhYmxlUG9pbnRpbmdEZXZpY2UgY29uc3QpOiBBZGRlZC4KKyAgICAgICAgKFdlYkNo
cm9tZUNsaWVudDo6cG9pbnRlckNoYXJhY3RlcmlzdGljc09mQWxsQXZhaWxhYmxlUG9pbnRpbmdE
ZXZpY2VzIGNvbnN0KTogQWRkZWQuCisgICAgICAgIE1vdXNlIGRldmljZXMgYXJlIGFsd2F5cyBz
dXBwb3J0ZWQuCisKIDIwMjAtMTAtMDUgIFNpbW9uIEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBs
ZS5jb20+CiAKICAgICAgICAgVXNlIHRoZSAidHJpZ2dlclJlbmRlcmluZ1VwZGF0ZSIgdGVybWlu
b2xvZ3kgaW4gQ2hyb21lQ2xpZW50CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dp
bi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9DaGFuZ2VMb2cKaW5kZXggZGFh
ZDE0YzhmNzFiODMxYTkzMDVkZjYwNGE5NzhkODYyZmExZmUwYy4uMDgzZDc0M2RlMTc4NTBiMjUw
MzQ4ODJhNjIyNzdjYzUyYWM2ZmUzNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS93
aW4vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDE2IEBACisyMDIwLTEwLTA1ICBEZXZpbiBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNv
bT4KKworICAgICAgICBDU1MgaG92ZXIgYW5kICJwb2ludGVyOiBmaW5lIiBtZWRpYSBxdWVyaWVz
IGRvIG5vdCBldmFsdWF0ZSB0byB0cnVlIHdpdGggaU9TIDEzLjQgbW91c2Ugc3VwcG9ydAorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA5MjkyCisgICAg
ICAgIDxyZGFyOi8vcHJvYmxlbS82MDY2MzEyND4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5o
OgorICAgICAgICAoV2ViQ2hyb21lQ2xpZW50Ojpob3ZlclN1cHBvcnRlZEJ5QW55QXZhaWxhYmxl
UG9pbnRpbmdEZXZpY2UgY29uc3QpOiBBZGRlZC4KKyAgICAgICAgKFdlYkNocm9tZUNsaWVudDo6
cG9pbnRlckNoYXJhY3RlcmlzdGljc09mQWxsQXZhaWxhYmxlUG9pbnRpbmdEZXZpY2VzIGNvbnN0
KTogQWRkZWQuCisgICAgICAgIE1vdXNlIGRldmljZXMgYXJlIGFsd2F5cyBzdXBwb3J0ZWQuCisK
IDIwMjAtMTAtMDUgIFNpbW9uIEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CiAKICAg
ICAgICAgVXNlIHRoZSAidHJpZ2dlclJlbmRlcmluZ1VwZGF0ZSIgdGVybWlub2xvZ3kgaW4gQ2hy
b21lQ2xpZW50CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlIGIvU291
cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQppbmRleCAxZmI5NWM3ZDAwZGMwYjU3OTA0ODJmNWZm
ZDBhNDdmZjQyYWJhZDczLi4yM2I3MGE0MjcyYTk1MjExYzVlNTUxODNkMzExNjljYzAyZTZmNTU5
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL0hlYWRlcnMuY21ha2UKQEAgLTg1NCw2ICs4NTQsNyBAQCBzZXQoV2ViQ29yZV9QUklW
QVRFX0ZSQU1FV09SS19IRUFERVJTCiAgICAgcGFnZS9QZXJmb3JtYW5jZUxvZ2dpbmdDbGllbnQu
aAogICAgIHBhZ2UvUGx1Z0luQ2xpZW50LmgKICAgICBwYWdlL1BvaW50ZXJDYXB0dXJlQ29udHJv
bGxlci5oCisgICAgcGFnZS9Qb2ludGVyQ2hhcmFjdGVyaXN0aWNzLmgKICAgICBwYWdlL1BvaW50
ZXJMb2NrQ29udHJvbGxlci5oCiAgICAgcGFnZS9Qb3N0TWVzc2FnZU9wdGlvbnMuaAogICAgIHBh
Z2UvUHJld2FybUluZm9ybWF0aW9uLmgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBiZGI0YTkwYTY2N2ZiMzA1NjYxZWNmZDdhNjFm
MTlmMTk2OGRkOTc4Li5hNzk1NmE2Y2Q5MDE4YmExOTUxZTczYjM3ZmM2Nzk1MjAzY2NiMjcwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CkBAIC0yODU4LDYgKzI4NTgsNyBAQAogCQk5NEU4Mzk1NjFERkIyQkM0MDA3QkM2QTcgLyogSlND
U1NOYW1lc3BhY2VSdWxlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA5NEU4Mzk1NDFERkIyQkE2MDA3QkM2QTcgLyogSlNDU1NOYW1lc3BhY2VSdWxlLmgg
Ki87IH07CiAJCTk1MjA3NjA1MUYyNjc1RkUwMDdEMkFBQiAvKiBDYWxsVHJhY2VyLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5NTIwNzYwMTFGMjY3NUY5
MDA3RDJBQUIgLyogQ2FsbFRyYWNlci5oICovOyB9OwogCQk5NTIwNzYwNjFGMjY3NUZFMDA3RDJB
QUIgLyogQ2FsbFRyYWNlclR5cGVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA5NTIwNzYwMjFGMjY3NUY5MDA3RDJBQUIgLyogQ2FsbFRyYWNlclR5cGVz
LmggKi87IH07CisJCTk1REY5RDI1MjUyQkVEQjIwMDBEN0Y0NiAvKiBQb2ludGVyQ2hhcmFjdGVy
aXN0aWNzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5
NURGOUQyMzI1MkJFRDk5MDAwRDdGNDYgLyogUG9pbnRlckNoYXJhY3RlcmlzdGljcy5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTk3MDU5OTdBMTA3
RDk3NTIwMEE1MEE3QyAvKiBQb2xpY3lDaGVja2VyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5NzA1OTk3NjEwN0Q5NzUyMDBBNTBBN0MgLyogUG9saWN5
Q2hlY2tlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CiAJCTk3MEI3MjhBMTQ0RkZBQzYwMEYwMEEzNyAvKiBFdmVudEludGVyZmFjZXMuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk3MEI3Mjg5MTQ0RkZBQzYw
MEYwMEEzNyAvKiBFdmVudEludGVyZmFjZXMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9
IChQcml2YXRlLCApOyB9OyB9OwogCQk5NzBCNzJBNjE0NTAwOEVCMDBGMDBBMzcgLyogRXZlbnRI
ZWFkZXJzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5
NzBCNzJBNTE0NTAwOEVCMDBGMDBBMzcgLyogRXZlbnRIZWFkZXJzLmggKi87IH07CkBAIC0xMTQ2
MSw2ICsxMTQ2Miw3IEBACiAJCTk1MjA3NjAwMUYyNjc1RjkwMDdEMkFBQiAvKiBDYWxsVHJhY2Vy
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IENhbGxUcmFjZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk5NTIwNzYwMTFGMjY3NUY5MDA3RDJBQUIgLyogQ2FsbFRyYWNlci5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBDYWxsVHJhY2VyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTk1MjA3NjAyMUYyNjc1RjkwMDdEMkFBQiAvKiBDYWxsVHJhY2VyVHlwZXMuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gQ2FsbFRyYWNlclR5cGVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTk1
REY5RDIzMjUyQkVEOTkwMDBEN0Y0NiAvKiBQb2ludGVyQ2hhcmFjdGVyaXN0aWNzLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IFBvaW50ZXJDaGFyYWN0ZXJpc3RpY3MuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJOTZBQkE0MjIxNEJDQjgwRTAwRDU2MjA0IC8qIEdyYXBoaWNzQ29udGV4dEdMT3Bl
bkdMQ29tbW9uLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEdyYXBo
aWNzQ29udGV4dEdMT3BlbkdMQ29tbW9uLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJOTcwNTk5NzUxMDdEOTc1MjAwQTUwQTdDIC8qIFBvbGljeUNoZWNrZXIuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUG9saWN5Q2hlY2tlci5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTk3MDU5OTc2MTA3RDk3NTIwMEE1MEE3QyAvKiBQb2xpY3lD
aGVja2VyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBvbGljeUNoZWNrZXIu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTIxNzM0LDYgKzIxNzM2LDcgQEAKIAkJ
CQkzMUQ1OTFCMTE2Njk3QTZDMDBFNkJGMDIgLyogUGx1Z0luQ2xpZW50LmggKi8sCiAJCQkJNzFC
NUFCMjUyMUYxRDlFMzAwMzc2RTVDIC8qIFBvaW50ZXJDYXB0dXJlQ29udHJvbGxlci5jcHAgKi8s
CiAJCQkJNzFCNUFCMjQyMUYxRDlFMjAwMzc2RTVDIC8qIFBvaW50ZXJDYXB0dXJlQ29udHJvbGxl
ci5oICovLAorCQkJCTk1REY5RDIzMjUyQkVEOTkwMDBEN0Y0NiAvKiBQb2ludGVyQ2hhcmFjdGVy
aXN0aWNzLmggKi8sCiAJCQkJNUNGQzQzNEUxOTI0MDZBOTAwQTBEM0I1IC8qIFBvaW50ZXJMb2Nr
Q29udHJvbGxlci5jcHAgKi8sCiAJCQkJNUNGQzQzNEYxOTI0MDZBOTAwQTBEM0I1IC8qIFBvaW50
ZXJMb2NrQ29udHJvbGxlci5oICovLAogCQkJCTM3NzJCMDk1MTY1MzU4NTYwMDBBNDlDQSAvKiBQ
b3B1cE9wZW5pbmdPYnNlcnZlci5oICovLApAQCAtMzM0MjUsNiArMzM0MjgsNyBAQAogCQkJCUJD
QkI4QUJBMTNGMUFGQjAwMDczNERGMCAvKiBQT0RJbnRlcnZhbFRyZWUuaCBpbiBIZWFkZXJzICov
LAogCQkJCUJDQkI4QUJCMTNGMUFGQjAwMDczNERGMCAvKiBQT0RSZWRCbGFja1RyZWUuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTcxQjVBQjI2MjFGMUQ5RjQwMDM3NkU1QyAvKiBQb2ludGVyQ2FwdHVy
ZUNvbnRyb2xsZXIuaCBpbiBIZWFkZXJzICovLAorCQkJCTk1REY5RDI1MjUyQkVEQjIwMDBEN0Y0
NiAvKiBQb2ludGVyQ2hhcmFjdGVyaXN0aWNzLmggaW4gSGVhZGVycyAqLywKIAkJCQkzMTdEM0ZG
MzIxNTU5OUY0MDAzNEUzQjkgLyogUG9pbnRlckV2ZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlC
MkIxRjcxNzBEMDBDQUE4MDA0QUVBNjQgLyogUG9pbnRlckV2ZW50c0hpdFJ1bGVzLmggaW4gSGVh
ZGVycyAqLywKIAkJCQk3MUVBRENEODIyMDg3RTcyMDA2NUE0NUYgLyogUG9pbnRlcklELmggaW4g
SGVhZGVycyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5RXZh
bHVhdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5RXZhbHVhdG9yLmNwcApp
bmRleCA4MTE4YjdhYjNjNTBiM2NlZDgxMjBmYzEwNmRjZTljNzMxNDFhZmU0Li41OTdhMmQ2MTU4
NjkwM2VlZGZhM2ZiNjY0ZjNjZGJmMTAwNzM5MjY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9jc3MvTWVkaWFRdWVyeUV2YWx1YXRvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL01l
ZGlhUXVlcnlFdmFsdWF0b3IuY3BwCkBAIC0zMyw2ICszMyw4IEBACiAjaW5jbHVkZSAiQ1NTUHJp
bWl0aXZlVmFsdWUuaCIKICNpbmNsdWRlICJDU1NUb0xlbmd0aENvbnZlcnNpb25EYXRhLmgiCiAj
aW5jbHVkZSAiQ1NTVmFsdWVLZXl3b3Jkcy5oIgorI2luY2x1ZGUgIkNocm9tZS5oIgorI2luY2x1
ZGUgIkNocm9tZUNsaWVudC5oIgogI2luY2x1ZGUgIkZyYW1lLmgiCiAjaW5jbHVkZSAiRnJhbWVW
aWV3LmgiCiAjaW5jbHVkZSAiTG9nZ2luZy5oIgpAQCAtNzMwLDIyICs3MzIsMTYgQEAgc3RhdGlj
IGJvb2wgaG92ZXJFdmFsdWF0ZShDU1NWYWx1ZSogdmFsdWUsIGNvbnN0IENTU1RvTGVuZ3RoQ29u
dmVyc2lvbkRhdGEmLCBGcmEKICAgICByZXR1cm4ga2V5d29yZCA9PSBDU1NWYWx1ZUhvdmVyOwog
fQogCi1zdGF0aWMgYm9vbCBhbnlIb3ZlckV2YWx1YXRlKENTU1ZhbHVlKiB2YWx1ZSwgY29uc3Qg
Q1NTVG9MZW5ndGhDb252ZXJzaW9uRGF0YSYsIEZyYW1lJiwgTWVkaWFGZWF0dXJlUHJlZml4KQor
c3RhdGljIGJvb2wgYW55SG92ZXJFdmFsdWF0ZShDU1NWYWx1ZSogdmFsdWUsIGNvbnN0IENTU1Rv
TGVuZ3RoQ29udmVyc2lvbkRhdGEmLCBGcmFtZSYgZnJhbWUsIE1lZGlhRmVhdHVyZVByZWZpeCkK
IHsKLSAgICBpZiAoIWlzPENTU1ByaW1pdGl2ZVZhbHVlPih2YWx1ZSkpIHsKLSNpZiBFTkFCTEUo
VE9VQ0hfRVZFTlRTKQotICAgICAgICByZXR1cm4gIXNjcmVlbkhhc1RvdWNoRGV2aWNlKCk7Ci0j
ZWxzZQotICAgICAgICByZXR1cm4gdHJ1ZTsKLSNlbmRpZgotICAgIH0KKyAgICBhdXRvKiBwYWdl
ID0gZnJhbWUucGFnZSgpOworICAgIGJvb2wgaG92ZXJTdXBwb3J0ZWRCeUFueUF2YWlsYWJsZVBv
aW50aW5nRGV2aWNlID0gcGFnZSAmJiBwYWdlLT5jaHJvbWUoKS5jbGllbnQoKS5ob3ZlclN1cHBv
cnRlZEJ5QW55QXZhaWxhYmxlUG9pbnRpbmdEZXZpY2UoKTsKKworICAgIGlmICghaXM8Q1NTUHJp
bWl0aXZlVmFsdWU+KHZhbHVlKSkKKyAgICAgICAgcmV0dXJuIGhvdmVyU3VwcG9ydGVkQnlBbnlB
dmFpbGFibGVQb2ludGluZ0RldmljZTsKIAogICAgIGF1dG8ga2V5d29yZCA9IGRvd25jYXN0PENT
U1ByaW1pdGl2ZVZhbHVlPigqdmFsdWUpLnZhbHVlSUQoKTsKLSNpZiBFTkFCTEUoVE9VQ0hfRVZF
TlRTKQotICAgIGlmIChzY3JlZW5IYXNUb3VjaERldmljZSgpKQotICAgICAgICByZXR1cm4ga2V5
d29yZCA9PSBDU1NWYWx1ZU5vbmU7Ci0jZW5kaWYKLSAgICByZXR1cm4ga2V5d29yZCA9PSBDU1NW
YWx1ZUhvdmVyOworICAgIHJldHVybiBob3ZlclN1cHBvcnRlZEJ5QW55QXZhaWxhYmxlUG9pbnRp
bmdEZXZpY2UgPyAoa2V5d29yZCA9PSBDU1NWYWx1ZUhvdmVyKSA6IChrZXl3b3JkID09IENTU1Zh
bHVlTm9uZSk7CiB9CiAKIHN0YXRpYyBib29sIHBvaW50ZXJFdmFsdWF0ZShDU1NWYWx1ZSogdmFs
dWUsIGNvbnN0IENTU1RvTGVuZ3RoQ29udmVyc2lvbkRhdGEmLCBGcmFtZSYgZnJhbWUsIE1lZGlh
RmVhdHVyZVByZWZpeCkKQEAgLTc2NSwxNyArNzYxLDIyIEBAIHN0YXRpYyBib29sIHBvaW50ZXJF
dmFsdWF0ZShDU1NWYWx1ZSogdmFsdWUsIGNvbnN0IENTU1RvTGVuZ3RoQ29udmVyc2lvbkRhdGEm
LCBGCiAgICAgcmV0dXJuIGtleXdvcmQgPT0gQ1NTVmFsdWVGaW5lOwogfQogCi1zdGF0aWMgYm9v
bCBhbnlQb2ludGVyRXZhbHVhdGUoQ1NTVmFsdWUqIHZhbHVlLCBjb25zdCBDU1NUb0xlbmd0aENv
bnZlcnNpb25EYXRhJiwgRnJhbWUmLCBNZWRpYUZlYXR1cmVQcmVmaXgpCitzdGF0aWMgYm9vbCBh
bnlQb2ludGVyRXZhbHVhdGUoQ1NTVmFsdWUqIHZhbHVlLCBjb25zdCBDU1NUb0xlbmd0aENvbnZl
cnNpb25EYXRhJiwgRnJhbWUmIGZyYW1lLCBNZWRpYUZlYXR1cmVQcmVmaXgpCiB7CisgICAgYXV0
byogcGFnZSA9IGZyYW1lLnBhZ2UoKTsKKyAgICBhdXRvIHBvaW50ZXJDaGFyYWN0ZXJpc3RpY3NP
ZkFsbEF2YWlsYWJsZVBvaW50aW5nRGV2aWNlcyA9IHBhZ2UgPyBwYWdlLT5jaHJvbWUoKS5jbGll
bnQoKS5wb2ludGVyQ2hhcmFjdGVyaXN0aWNzT2ZBbGxBdmFpbGFibGVQb2ludGluZ0RldmljZXMo
KSA6IE9wdGlvblNldDxQb2ludGVyQ2hhcmFjdGVyaXN0aWNzPigpOworCiAgICAgaWYgKCFpczxD
U1NQcmltaXRpdmVWYWx1ZT4odmFsdWUpKQotICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAg
cmV0dXJuICFwb2ludGVyQ2hhcmFjdGVyaXN0aWNzT2ZBbGxBdmFpbGFibGVQb2ludGluZ0Rldmlj
ZXMuaXNFbXB0eSgpOwogCiAgICAgYXV0byBrZXl3b3JkID0gZG93bmNhc3Q8Q1NTUHJpbWl0aXZl
VmFsdWU+KCp2YWx1ZSkudmFsdWVJRCgpOwotI2lmIEVOQUJMRShUT1VDSF9FVkVOVFMpCi0gICAg
aWYgKHNjcmVlbkhhc1RvdWNoRGV2aWNlKCkpCi0gICAgICAgIHJldHVybiBrZXl3b3JkID09IENT
U1ZhbHVlQ29hcnNlOwotI2VuZGlmCi0gICAgcmV0dXJuIGtleXdvcmQgPT0gQ1NTVmFsdWVGaW5l
OworICAgIGlmIChrZXl3b3JkID09IENTU1ZhbHVlRmluZSkKKyAgICAgICAgcmV0dXJuIHBvaW50
ZXJDaGFyYWN0ZXJpc3RpY3NPZkFsbEF2YWlsYWJsZVBvaW50aW5nRGV2aWNlcy5jb250YWlucyhQ
b2ludGVyQ2hhcmFjdGVyaXN0aWNzOjpGaW5lKTsKKyAgICBpZiAoa2V5d29yZCA9PSBDU1NWYWx1
ZUNvYXJzZSkKKyAgICAgICAgcmV0dXJuIHBvaW50ZXJDaGFyYWN0ZXJpc3RpY3NPZkFsbEF2YWls
YWJsZVBvaW50aW5nRGV2aWNlcy5jb250YWlucyhQb2ludGVyQ2hhcmFjdGVyaXN0aWNzOjpDb2Fy
c2UpOworICAgIGlmIChrZXl3b3JkID09IENTU1ZhbHVlTm9uZSkKKyAgICAgICAgcmV0dXJuIHBv
aW50ZXJDaGFyYWN0ZXJpc3RpY3NPZkFsbEF2YWlsYWJsZVBvaW50aW5nRGV2aWNlcy5pc0VtcHR5
KCk7CisgICAgcmV0dXJuIGZhbHNlOwogfQogCiBzdGF0aWMgYm9vbCBwcmVmZXJzRGFya0ludGVy
ZmFjZUV2YWx1YXRlKENTU1ZhbHVlKiB2YWx1ZSwgY29uc3QgQ1NTVG9MZW5ndGhDb252ZXJzaW9u
RGF0YSYsIEZyYW1lJiBmcmFtZSwgTWVkaWFGZWF0dXJlUHJlZml4KQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVy
L0VtcHR5Q2xpZW50cy5oCmluZGV4IGExNWQ1NDQ4YmE4NjllNGJmZDZmOGQxNjlmYjFkNDM3ZjMw
ZmUyNmQuLjE2OTBjN2UyMjU0ZjBjMTg0MjhiYjU4NWIyYzhjNWQ1MDRiMjA0MWUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmgKQEAgLTEwMiw2ICsxMDIsOSBAQCBjbGFzcyBFbXB0
eUNocm9tZUNsaWVudCA6IHB1YmxpYyBDaHJvbWVDbGllbnQgewogCiAgICAgS2V5Ym9hcmRVSU1v
ZGUga2V5Ym9hcmRVSU1vZGUoKSBmaW5hbCB7IHJldHVybiBLZXlib2FyZEFjY2Vzc0RlZmF1bHQ7
IH0KIAorICAgIGJvb2wgaG92ZXJTdXBwb3J0ZWRCeUFueUF2YWlsYWJsZVBvaW50aW5nRGV2aWNl
KCkgY29uc3QgZmluYWwgeyByZXR1cm4gZmFsc2U7IH0KKyAgICBPcHRpb25TZXQ8UG9pbnRlckNo
YXJhY3RlcmlzdGljcz4gcG9pbnRlckNoYXJhY3RlcmlzdGljc09mQWxsQXZhaWxhYmxlUG9pbnRp
bmdEZXZpY2VzKCkgY29uc3QgZmluYWwgeyByZXR1cm4geyB9OyB9CisKICAgICB2b2lkIGludmFs
aWRhdGVSb290Vmlldyhjb25zdCBJbnRSZWN0JikgZmluYWwgeyB9CiAgICAgdm9pZCBpbnZhbGlk
YXRlQ29udGVudHNBbmRSb290Vmlldyhjb25zdCBJbnRSZWN0Jikgb3ZlcnJpZGUgeyB9CiAgICAg
dm9pZCBpbnZhbGlkYXRlQ29udGVudHNGb3JTbG93U2Nyb2xsKGNvbnN0IEludFJlY3QmKSBmaW5h
bCB7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmggYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVudC5oCmluZGV4IGE3ZTJmNDEwMTc3NmFhNjE2
MjgyZmI0NDYwYTdjMzYxMDk0OWNlYTEuLmE5MWYwNTUxZTlkMWZmMDM3NTQ4N2QzN2UyNGRjODg4
OTE3MzBmODcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaApAQCAtMzksNiArMzksNyBA
QAogI2luY2x1ZGUgIkltYWdlQnVmZmVyLmgiCiAjaW5jbHVkZSAiSW5wdXRNb2RlLmgiCiAjaW5j
bHVkZSAiTWVkaWFQcm9kdWNlci5oIgorI2luY2x1ZGUgIlBvaW50ZXJDaGFyYWN0ZXJpc3RpY3Mu
aCIKICNpbmNsdWRlICJQb3B1cE1lbnUuaCIKICNpbmNsdWRlICJQb3B1cE1lbnVDbGllbnQuaCIK
ICNpbmNsdWRlICJSZWdpc3RyYWJsZURvbWFpbi5oIgpAQCAtMTc4LDYgKzE3OSw5IEBAIHB1Ymxp
YzoKICAgICB2aXJ0dWFsIHZvaWQgc2V0U3RhdHVzYmFyVGV4dChjb25zdCBTdHJpbmcmKSA9IDA7
CiAgICAgdmlydHVhbCBLZXlib2FyZFVJTW9kZSBrZXlib2FyZFVJTW9kZSgpID0gMDsKIAorICAg
IHZpcnR1YWwgYm9vbCBob3ZlclN1cHBvcnRlZEJ5QW55QXZhaWxhYmxlUG9pbnRpbmdEZXZpY2Uo
KSBjb25zdCA9IDA7CisgICAgdmlydHVhbCBPcHRpb25TZXQ8UG9pbnRlckNoYXJhY3RlcmlzdGlj
cz4gcG9pbnRlckNoYXJhY3RlcmlzdGljc09mQWxsQXZhaWxhYmxlUG9pbnRpbmdEZXZpY2VzKCkg
Y29uc3QgPSAwOworCiAgICAgdmlydHVhbCBib29sIHN1cHBvcnRzSW1tZWRpYXRlSW52YWxpZGF0
aW9uKCkgeyByZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0dWFsIHZvaWQgaW52YWxpZGF0ZVJvb3RW
aWV3KGNvbnN0IEludFJlY3QmKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGludmFsaWRhdGVDb250
ZW50c0FuZFJvb3RWaWV3KGNvbnN0IEludFJlY3QmKSA9IDA7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL1BvaW50ZXJDaGFyYWN0ZXJpc3RpY3MuaCBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvUG9pbnRlckNoYXJhY3RlcmlzdGljcy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjI0YWE0NmJmYzZlMjJmYWEz
YWY2MGE4Zjg4MThkMDVlY2ZlODE0OTEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL1BvaW50ZXJDaGFyYWN0ZXJpc3RpY3MuaApAQCAtMCwwICsxLDQ3IEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJ
UycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRP
UlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1Mg
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisg
KiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKK25h
bWVzcGFjZSBXZWJDb3JlIHsKKworZW51bSBjbGFzcyBQb2ludGVyQ2hhcmFjdGVyaXN0aWNzIDog
dWludDhfdCB7CisgICAgQ29hcnNlID0gMSA8PCAwLAorICAgIEZpbmUgPSAxIDw8IDEsCit9Owor
Cit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKK25hbWVzcGFjZSBXVEYgeworCit0ZW1wbGF0ZTw+
IHN0cnVjdCBFbnVtVHJhaXRzPFdlYkNvcmU6OlBvaW50ZXJDaGFyYWN0ZXJpc3RpY3M+IHsKKyAg
ICB1c2luZyB2YWx1ZXMgPSBFbnVtVmFsdWVzPAorICAgICAgICBXZWJDb3JlOjpQb2ludGVyQ2hh
cmFjdGVyaXN0aWNzLAorICAgICAgICBXZWJDb3JlOjpQb2ludGVyQ2hhcmFjdGVyaXN0aWNzOjpD
b2Fyc2UsCisgICAgICAgIFdlYkNvcmU6OlBvaW50ZXJDaGFyYWN0ZXJpc3RpY3M6OkZpbmUKKyAg
ICA+OworfTsKKworfSAvLyBuYW1lc3BhY2UgV1RGCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9QbGF0Zm9ybVNjcmVlbi5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGxh
dGZvcm1TY3JlZW4uaAppbmRleCBiMjBmZTM4OWE5OGUxZTAxZTI1MzFiMjAwNjkxODZjYmVkNmFl
ZTI2Li45MmNlNGRkNmVjMTgyMWEwZmM1MTM1ZjM4ZTIzM2E1Y2NkMDRkNzE5IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9ybVNjcmVlbi5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL1BsYXRmb3JtU2NyZWVuLmgKQEAgLTE1Miw4ICsxNTIsOCBAQCBXRUJD
T1JFX0VYUE9SVCBmbG9hdCBzY3JlZW5TY2FsZUZhY3RvcihVSVNjcmVlbiAqID0gbnVsbHB0cik7
CiAKICNpZiBFTkFCTEUoVE9VQ0hfRVZFTlRTKQogI2lmIFBMQVRGT1JNKEdUSykgfHwgUExBVEZP
Uk0oV1BFKQotYm9vbCBzY3JlZW5IYXNUb3VjaERldmljZSgpOwotYm9vbCBzY3JlZW5Jc1RvdWNo
UHJpbWFyeUlucHV0RGV2aWNlKCk7CitXRUJDT1JFX0VYUE9SVCBib29sIHNjcmVlbkhhc1RvdWNo
RGV2aWNlKCk7CitXRUJDT1JFX0VYUE9SVCBib29sIHNjcmVlbklzVG91Y2hQcmltYXJ5SW5wdXRE
ZXZpY2UoKTsKICNlbHNlCiBjb25zdGV4cHIgYm9vbCBzY3JlZW5IYXNUb3VjaERldmljZSgpIHsg
cmV0dXJuIHRydWU7IH0KIGNvbnN0ZXhwciBib29sIHNjcmVlbklzVG91Y2hQcmltYXJ5SW5wdXRE
ZXZpY2UoKSB7IHJldHVybiB0cnVlOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NvbmZp
Z3VyYXRpb25zL1dlYktpdC54Y2NvbmZpZyBiL1NvdXJjZS9XZWJLaXQvQ29uZmlndXJhdGlvbnMv
V2ViS2l0LnhjY29uZmlnCmluZGV4IDVmNzVlY2JiMTQ5YzU1MWE0NTExYTkwNmZkN2Y0M2MxN2U5
ODg5MjEuLmNlNzE4NTlkZGE5MDU0YWRmYzA0NTU4NDA3ZjE2NGUzN2UzNmZmN2IgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvQ29uZmlndXJhdGlvbnMvV2ViS2l0LnhjY29uZmlnCisrKyBiL1Nv
dXJjZS9XZWJLaXQvQ29uZmlndXJhdGlvbnMvV2ViS2l0LnhjY29uZmlnCkBAIC02MCw2ICs2MCwx
MCBAQCBXS19BU1NFUlRJT05fU0VSVklDRVNfTERGTEFHU19hcHBsZXR2b3MgPSAtZnJhbWV3b3Jr
IEFzc2VydGlvblNlcnZpY2VzOwogV0tfQVNTRVJUSU9OX1NFUlZJQ0VTX0xERkxBR1NfYXBwbGV0
dnNpbXVsYXRvciA9IC1mcmFtZXdvcmsgQXNzZXJ0aW9uU2VydmljZXM7CiBXS19BU1NFUlRJT05f
U0VSVklDRVNfTERGTEFHU19tYWNjYXRhbHlzdCA9IC1mcmFtZXdvcmsgQXNzZXJ0aW9uU2Vydmlj
ZXM7CiAKK1dLX0JBQ0tCT0FSRF9TRVJWSUNFU19MREZMQUdTID0gJChXS19CQUNLQk9BUkRfU0VS
VklDRVNfTERGTEFHU18kKFdLX1BMQVRGT1JNX05BTUUpKTsKK1dLX0JBQ0tCT0FSRF9TRVJWSUNF
U19MREZMQUdTX2lwaG9uZW9zID0gLWZyYW1ld29yayBCYWNrQm9hcmRTZXJ2aWNlczsKK1dLX0JB
Q0tCT0FSRF9TRVJWSUNFU19MREZMQUdTX2lwaG9uZXNpbXVsYXRvciA9IC1mcmFtZXdvcmsgQmFj
a0JvYXJkU2VydmljZXM7CisKIFdLX1JVTk5JTkdCT0FSRF9TRVJWSUNFU19MREZMQUdTID0gJChX
S19SVU5OSU5HQk9BUkRfU0VSVklDRVNfTERGTEFHU18kKFdLX0NPQ09BX1RPVUNIKSk7CiBXS19S
VU5OSU5HQk9BUkRfU0VSVklDRVNfTERGTEFHU19jb2NvYXRvdWNoID0gLWZyYW1ld29yayBSdW5u
aW5nQm9hcmRTZXJ2aWNlczsKIApAQCAtMTIzLDcgKzEyNyw3IEBAIFdLX0FVVEhLSVRfTERGTEFH
U19JT1NfU0lOQ0VfMTMgPSAtZnJhbWV3b3JrIEF1dGhLaXQ7CiBXS19BVVRIS0lUX0xERkxBR1Nf
bWFjb3N4ID0gJChXS19BVVRIS0lUX0xERkxBR1MkKFdLX01BQ09TXzEwMTUpKTsKIFdLX0FVVEhL
SVRfTERGTEFHU19NQUNPU19TSU5DRV8xMDE1ID0gLWZyYW1ld29yayBBdXRoS2l0OwogCi1GUkFN
RVdPUktfQU5EX0xJQlJBUllfTERGTEFHUyA9IC1sb2JqYyAtZnJhbWV3b3JrIENGTmV0d29yayAt
ZnJhbWV3b3JrIENvcmVBdWRpbyAtZnJhbWV3b3JrIENvcmVGb3VuZGF0aW9uIC1mcmFtZXdvcmsg
Q29yZUdyYXBoaWNzIC1mcmFtZXdvcmsgQ29yZVRleHQgLWZyYW1ld29yayBGb3VuZGF0aW9uIC1m
cmFtZXdvcmsgSW1hZ2VJTyAtZnJhbWV3b3JrIElPS2l0IC1mcmFtZXdvcmsgSU9TdXJmYWNlIC1m
cmFtZXdvcmsgV2ViS2l0TGVnYWN5IC1sbmV0d29yayAkKFdLX0FDQ0VTU0lCSUxJVFlfTERGTEFH
UykgJChXS19BUFBLSVRfTERGTEFHUykgJChXS19BU1NFUlRJT05fU0VSVklDRVNfTERGTEFHUykg
JChXS19SVU5OSU5HQk9BUkRfU0VSVklDRVNfTERGTEFHUykgJChXS19BVVRIS0lUX0xERkxBR1Mp
ICQoV0tfQ0FSQk9OX0xERkxBR1MpICQoV0tfQ09SRV9QUkVESUNUSU9OX0xERkxBR1MpICQoV0tf
Q09SRV9TRVJWSUNFU19MREZMQUdTKSAkKFdLX0dSQVBISUNTX1NFUlZJQ0VTX0xERkxBR1MpICQo
V0tfTElCU0FOREJPWF9MREZMQUdTKSAkKFdLX0xJQldFQlJUQ19MREZMQUdTKSAkKFdLX01PQklM
RV9DT1JFX1NFUlZJQ0VTX0xERkxBR1MpICQoV0tfTU9CSUxFX0dFU1RBTFRfTERGTEFHUykgJChX
S19QREZLSVRfTERGTEFHUykgJChXS19TQUZFX0JST1dTSU5HX0xERkxBR1MpICQoV0tfU0VDVVJJ
VFlfSU5URVJGQUNFX0xERkxBR1MpICQoV0tfVUlLSVRfTERGTEFHUykgJChXS19VUkxfRk9STUFU
VElOR19MREZMQUdTKSAkKFdLX1dFQklOU1BFQ1RPUlVJX0xERkxBR1MpOworRlJBTUVXT1JLX0FO
RF9MSUJSQVJZX0xERkxBR1MgPSAtbG9iamMgLWZyYW1ld29yayBDRk5ldHdvcmsgLWZyYW1ld29y
ayBDb3JlQXVkaW8gLWZyYW1ld29yayBDb3JlRm91bmRhdGlvbiAtZnJhbWV3b3JrIENvcmVHcmFw
aGljcyAtZnJhbWV3b3JrIENvcmVUZXh0IC1mcmFtZXdvcmsgRm91bmRhdGlvbiAtZnJhbWV3b3Jr
IEltYWdlSU8gLWZyYW1ld29yayBJT0tpdCAtZnJhbWV3b3JrIElPU3VyZmFjZSAtZnJhbWV3b3Jr
IFdlYktpdExlZ2FjeSAtbG5ldHdvcmsgJChXS19BQ0NFU1NJQklMSVRZX0xERkxBR1MpICQoV0tf
QVBQS0lUX0xERkxBR1MpICQoV0tfQVNTRVJUSU9OX1NFUlZJQ0VTX0xERkxBR1MpICQoV0tfQkFD
S0JPQVJEX1NFUlZJQ0VTX0xERkxBR1MpICQoV0tfUlVOTklOR0JPQVJEX1NFUlZJQ0VTX0xERkxB
R1MpICQoV0tfQVVUSEtJVF9MREZMQUdTKSAkKFdLX0NBUkJPTl9MREZMQUdTKSAkKFdLX0NPUkVf
UFJFRElDVElPTl9MREZMQUdTKSAkKFdLX0NPUkVfU0VSVklDRVNfTERGTEFHUykgJChXS19HUkFQ
SElDU19TRVJWSUNFU19MREZMQUdTKSAkKFdLX0xJQlNBTkRCT1hfTERGTEFHUykgJChXS19MSUJX
RUJSVENfTERGTEFHUykgJChXS19NT0JJTEVfQ09SRV9TRVJWSUNFU19MREZMQUdTKSAkKFdLX01P
QklMRV9HRVNUQUxUX0xERkxBR1MpICQoV0tfUERGS0lUX0xERkxBR1MpICQoV0tfU0FGRV9CUk9X
U0lOR19MREZMQUdTKSAkKFdLX1NFQ1VSSVRZX0lOVEVSRkFDRV9MREZMQUdTKSAkKFdLX1VJS0lU
X0xERkxBR1MpICQoV0tfVVJMX0ZPUk1BVFRJTkdfTERGTEFHUykgJChXS19XRUJJTlNQRUNUT1JV
SV9MREZMQUdTKTsKIAogLy8gUHJldmVudCBDKysgc3RhbmRhcmQgbGlicmFyeSBiYXNpY19zdHJp
bmdzdHJlYW0sIG9wZXJhdG9yIG5ldywgZGVsZXRlIGFuZCB0aGVpciByZWxhdGVkIGV4Y2VwdGlv
biB0eXBlcyBmcm9tIGJlaW5nIGV4cG9ydGVkIGFzIHdlYWsgc3ltYm9scy4KIFVORVhQT1JURURf
U1lNQk9MX0xERkxBR1MgPSAtV2wsLXVuZXhwb3J0ZWRfc3ltYm9sIC1XbCxfX1pUSVN0OWJhZF9h
bGxvYyAtV2wsLXVuZXhwb3J0ZWRfc3ltYm9sIC1XbCxfX1pUSVN0OWV4Y2VwdGlvbiAtV2wsLXVu
ZXhwb3J0ZWRfc3ltYm9sIC1XbCxfX1pUU1N0OWJhZF9hbGxvYyAtV2wsLXVuZXhwb3J0ZWRfc3lt
Ym9sIC1XbCxfX1pUU1N0OWV4Y2VwdGlvbiAtV2wsLXVuZXhwb3J0ZWRfc3ltYm9sIC1XbCxfX1pk
bFB2U18gLVdsLC11bmV4cG9ydGVkX3N5bWJvbCAtV2wsX19abndtUHYgLVdsLC11bmV4cG9ydGVk
X3N5bWJvbCAtV2wsX19abndtIC1XbCwtdW5leHBvcnRlZF9zeW1ib2wgLVdsLF9fWk5TdDNfXzE4
ZnVuY3Rpb25JRnZON1dlYkNvcmUxMlBvbGljeUFjdGlvbkVFRUMyRU9TNF8gLVdsLC11bmV4cG9y
dGVkX3N5bWJvbCAtV2wsX19aTlN0M19fMThmdW5jdGlvbklGdk43V2ViQ29yZTEyUG9saWN5QWN0
aW9uRUVFQzFFT1M0XyAtV2wsLXVuZXhwb3J0ZWRfc3ltYm9sIC1XbCxfX1pOU3QzX18xOGZ1bmN0
aW9uSUZ2TjdXZWJDb3JlMTJQb2xpY3lBY3Rpb25FRUVhU0VEbiAtV2wsLXVuZXhwb3J0ZWRfc3lt
Ym9sIC1XbCxfX1pOS1N0M19fMThmdW5jdGlvbklGdk43V2ViQ29yZTEyUG9saWN5QWN0aW9uRUVF
Y2xFUzJfIC1XbCwtdW5leHBvcnRlZF9zeW1ib2wgLVdsLF9fWk5TdDNfXzE4ZnVuY3Rpb25JRnZO
N1dlYkNvcmUxMlBvbGljeUFjdGlvbkVFRTRzd2FwRVJTNF8gLVdsLC11bmV4cG9ydGVkX3N5bWJv
bCAtV2wsX19aTlN0M19fMThmdW5jdGlvbklGdk43V2ViQ29yZTEyUG9saWN5QWN0aW9uRUVFQzFF
UktTNF8gLVdsLC11bmV4cG9ydGVkX3N5bWJvbCAtV2wsX19aTlN0M19fMThmdW5jdGlvbklGdk43
V2ViQ29yZTEyUG9saWN5QWN0aW9uRUVFQzJFUktTNF8gLVdsLC11bmV4cG9ydGVkX3N5bWJvbCAt
V2wsX19aTlN0M19fMThmdW5jdGlvbklGdk43V2ViQ29yZTEyUG9saWN5QWN0aW9uRUVFRDFFdiAt
V2wsLXVuZXhwb3J0ZWRfc3ltYm9sIC1XbCxfX1pOU3QzX18xOGZ1bmN0aW9uSUZ2TjdXZWJDb3Jl
MTJQb2xpY3lBY3Rpb25FRUVEMkV2IC1XbCwtdW5leHBvcnRlZF9zeW1ib2wgLVdsLF9fWk5TdDNf
XzE4ZnVuY3Rpb25JRnZON1dlYkNvcmUxMlBvbGljeUFjdGlvbkVFRWFTRVJLUzRfIC1XbCwtdW5l
eHBvcnRlZF9zeW1ib2wgLVdsLF9fWlRWTlN0M19fMTE3YmFkX2Z1bmN0aW9uX2NhbGxFIC1XbCwt
dW5leHBvcnRlZF9zeW1ib2wgLVdsLF9fWlRDTlN0M19fMTE4YmFzaWNfc3RyaW5nc3RyZWFtSWNO
U18xMWNoYXJfdHJhaXRzSWNFRU5TXzlhbGxvY2F0b3JJY0VFRUUwX05TXzEzYmFzaWNfaXN0cmVh
bUljUzJfRUUgLVdsLC11bmV4cG9ydGVkX3N5bWJvbCAtV2wsX19aVENOU3QzX18xMThiYXNpY19z
dHJpbmdzdHJlYW1JY05TXzExY2hhcl90cmFpdHNJY0VFTlNfOWFsbG9jYXRvckljRUVFRTBfTlNf
MTRiYXNpY19pb3N0cmVhbUljUzJfRUUgLVdsLC11bmV4cG9ydGVkX3N5bWJvbCAtV2wsX19aVENO
U3QzX18xMThiYXNpY19zdHJpbmdzdHJlYW1JY05TXzExY2hhcl90cmFpdHNJY0VFTlNfOWFsbG9j
YXRvckljRUVFRTE2X05TXzEzYmFzaWNfb3N0cmVhbUljUzJfRUUgLVdsLC11bmV4cG9ydGVkX3N5
bWJvbCAtV2wsX19aVFROU3QzX18xMThiYXNpY19zdHJpbmdzdHJlYW1JY05TXzExY2hhcl90cmFp
dHNJY0VFTlNfOWFsbG9jYXRvckljRUVFRSAtV2wsLXVuZXhwb3J0ZWRfc3ltYm9sIC1XbCxfX1pU
Vk5TdDNfXzExNWJhc2ljX3N0cmluZ2J1ZkljTlNfMTFjaGFyX3RyYWl0c0ljRUVOU185YWxsb2Nh
dG9ySWNFRUVFIC1XbCwtdW5leHBvcnRlZF9zeW1ib2wgLVdsLF9fWlRWTlN0M19fMTE4YmFzaWNf
c3RyaW5nc3RyZWFtSWNOU18xMWNoYXJfdHJhaXRzSWNFRU5TXzlhbGxvY2F0b3JJY0VFRUUgLVds
LC11bmV4cG9ydGVkX3N5bWJvbCAtV2wsX19aVENOU3QzX18xMThiYXNpY19zdHJpbmdzdHJlYW1J
Y05TXzExY2hhcl90cmFpdHNJY0VFTlNfOWFsbG9jYXRvckljRUVFRThfTlNfMTNiYXNpY19vc3Ry
ZWFtSWNTMl9FRTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vc3BpL2lvcy9C
YWNrQm9hcmRTZXJ2aWNlc1NQSS5oIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9zcGkvaW9zL0Jh
Y2tCb2FyZFNlcnZpY2VzU1BJLmgKaW5kZXggNmQ4ZDg5NDNlNGNjM2NhNzk5ZjM3MjIxNDQxMzY5
MjQwOWQ3OTYzNy4uMDkwMTRkNDQxZTFhZDliMGY0ZjI3MDM3YmRjMTBjMjMzZDQ1ZWMxYSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9zcGkvaW9zL0JhY2tCb2FyZFNlcnZpY2Vz
U1BJLmgKKysrIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9zcGkvaW9zL0JhY2tCb2FyZFNlcnZp
Y2VzU1BJLmgKQEAgLTI3LDExICsyNywyNyBAQAogCiAjaW1wb3J0IDxCYWNrQm9hcmRTZXJ2aWNl
cy9CS1NBbmltYXRpb25GZW5jZS5oPgogI2ltcG9ydCA8QmFja0JvYXJkU2VydmljZXMvQktTQW5p
bWF0aW9uRmVuY2VfUHJpdmF0ZS5oPgorI2ltcG9ydCA8QmFja0JvYXJkU2VydmljZXMvQktTTW91
c2VQb2ludGVyU2VydmljZS5oPgogCiAjZWxzZQogCisjaW1wb3J0ICJCYXNlQm9hcmRTUEkuaCIK
KwogQGludGVyZmFjZSBCS1NBbmltYXRpb25GZW5jZUhhbmRsZSA6IE5TT2JqZWN0CiAtIChtYWNo
X3BvcnRfdClDQVBvcnQ7CiBAZW5kCiAKK0BjbGFzcyBCS1NNb3VzZVBvaW50ZXJEZXZpY2U7CisK
K0Bwcm90b2NvbCBCS1NNb3VzZVBvaW50ZXJEZXZpY2VPYnNlcnZlciA8TlNPYmplY3Q+CitAb3B0
aW9uYWwKKy0gKHZvaWQpbW91c2VQb2ludGVyRGV2aWNlc0RpZENvbm5lY3Q6KE5TU2V0PEJLU01v
dXNlUG9pbnRlckRldmljZSAqPiAqKW1vdXNlUG9pbnRlckRldmljZXM7CistICh2b2lkKW1vdXNl
UG9pbnRlckRldmljZXNEaWREaXNjb25uZWN0OihOU1NldDxCS1NNb3VzZVBvaW50ZXJEZXZpY2Ug
Kj4gKiltb3VzZVBvaW50ZXJEZXZpY2VzOworQGVuZAorCitAaW50ZXJmYWNlIEJLU01vdXNlUG9p
bnRlclNlcnZpY2UgOiBOU09iamVjdAorKyAoQktTTW91c2VQb2ludGVyU2VydmljZSAqKXNoYXJl
ZEluc3RhbmNlOworLSAoaWQ8QlNJbnZhbGlkYXRhYmxlPilhZGRQb2ludGVyRGV2aWNlT2JzZXJ2
ZXI6KGlkPEJLU01vdXNlUG9pbnRlckRldmljZU9ic2VydmVyPilvYnNlcnZlcjsKK0BlbmQKKwog
I2VuZGlmIC8vIFVTRShBUFBMRV9JTlRFUk5BTF9TREspCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1BsYXRmb3JtL3NwaS9pb3MvQmFzZUJvYXJkU1BJLmggYi9Tb3VyY2UvV2ViS2l0L1BsYXRm
b3JtL3NwaS9pb3MvQmFzZUJvYXJkU1BJLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYWIwNDE4Njk1YjkwZmQ4MzFi
OGQ2MWFkODE4OWEwYzM5NmNkZGI0MAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQv
UGxhdGZvcm0vc3BpL2lvcy9CYXNlQm9hcmRTUEkuaApAQCAtMCwwICsxLDM2IEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElU
UyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YK
KyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
CisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworI2lmIFVTRShBUFBMRV9JTlRFUk5BTF9TREspCisKKyNpbXBvcnQgPEJhc2VCb2FyZC9C
U0ludmFsaWRhdGFibGUuaD4KKworI2Vsc2UKKworQHByb3RvY29sIEJTSW52YWxpZGF0YWJsZSA8
TlNPYmplY3Q+CistICh2b2lkKWludmFsaWRhdGU7CitAZW5kCisKKyNlbmRpZiAvLyBVU0UoQVBQ
TEVfSU5URVJOQUxfU0RLKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJv
Y2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcm9j
ZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcAppbmRleCA3MTA4YjY1MWEwY2E5NGZjZmMyMjM3NTIz
MTNmNTFiYjEwOTMxN2Y1Li42YjI4M2VmMjQ1OGQ4MzY1OTM0NGJlOWQ1NDU5MGNjMmUxNzZlMjA0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJh
bWV0ZXJzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25Q
YXJhbWV0ZXJzLmNwcApAQCAtODUsNiArODUsOSBAQCB2b2lkIFdlYlByb2Nlc3NDcmVhdGlvblBh
cmFtZXRlcnM6OmVuY29kZShJUEM6OkVuY29kZXImIGVuY29kZXIpIGNvbnN0CiAjZW5kaWYKICAg
ICBlbmNvZGVyIDw8IHRleHRDaGVja2VyU3RhdGU7CiAgICAgZW5jb2RlciA8PCBmdWxsS2V5Ym9h
cmRBY2Nlc3NFbmFibGVkOworI2lmIEhBVkUoVUlLSVRfV0lUSF9NT1VTRV9TVVBQT1JUKSAmJiBQ
TEFURk9STShJT1MpCisgICAgZW5jb2RlciA8PCBoYXNNb3VzZURldmljZTsKKyNlbmRpZgogICAg
IGVuY29kZXIgPDwgZGVmYXVsdFJlcXVlc3RUaW1lb3V0SW50ZXJ2YWw7CiAgICAgZW5jb2RlciA8
PCBiYWNrRm9yd2FyZENhY2hlQ2FwYWNpdHk7CiAjaWYgUExBVEZPUk0oQ09DT0EpCkBAIC0yOTQs
NiArMjk3LDEwIEBAIGJvb2wgV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyczo6ZGVjb2RlKElQ
Qzo6RGVjb2RlciYgZGVjb2RlciwgV2ViUHJvY2Vzc0NyZWF0CiAgICAgICAgIHJldHVybiBmYWxz
ZTsKICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHBhcmFtZXRlcnMuZnVsbEtleWJvYXJkQWNjZXNz
RW5hYmxlZCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKKyNpZiBIQVZFKFVJS0lUX1dJVEhfTU9V
U0VfU1VQUE9SVCkgJiYgUExBVEZPUk0oSU9TKQorICAgIGlmICghZGVjb2Rlci5kZWNvZGUocGFy
YW1ldGVycy5oYXNNb3VzZURldmljZSkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyNlbmRpZgog
ICAgIGlmICghZGVjb2Rlci5kZWNvZGUocGFyYW1ldGVycy5kZWZhdWx0UmVxdWVzdFRpbWVvdXRJ
bnRlcnZhbCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICBpZiAoIWRlY29kZXIuZGVjb2Rl
KHBhcmFtZXRlcnMuYmFja0ZvcndhcmRDYWNoZUNhcGFjaXR5KSkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaCBiL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaAppbmRleCBjYTIzYzY3
NjM4YTdmZTQxNTFiYzM2YTViMmZmMmRkYWRlNWY5Zjg1Li4zZDg2YTc0YjFkM2VlNTEwMTUzNGFk
MzkyNTYyMzIyMWVmYzNlY2FhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQ
cm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2Vi
UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oCkBAIC0xMTcsNiArMTE3LDkgQEAgc3RydWN0IFdl
YlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMgewogICAgIGJvb2wgc2hvdWxkU3VwcHJlc3NNZW1v
cnlQcmVzc3VyZUhhbmRsZXIgeyBmYWxzZSB9OwogICAgIGJvb2wgc2hvdWxkVXNlRm9udFNtb290
aGluZyB7IHRydWUgfTsKICAgICBib29sIGZ1bGxLZXlib2FyZEFjY2Vzc0VuYWJsZWQgeyBmYWxz
ZSB9OworI2lmIEhBVkUoVUlLSVRfV0lUSF9NT1VTRV9TVVBQT1JUKSAmJiBQTEFURk9STShJT1Mp
CisgICAgYm9vbCBoYXNNb3VzZURldmljZSB7IGZhbHNlIH07CisjZW5kaWYKICAgICBib29sIG1l
bW9yeUNhY2hlRGlzYWJsZWQgeyBmYWxzZSB9OwogICAgIGJvb2wgYXR0clN0eWxlRW5hYmxlZCB7
IGZhbHNlIH07CiAgICAgYm9vbCB1c2VHUFVQcm9jZXNzRm9yTWVkaWFFbmFibGVkIHsgZmFsc2Ug
fTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU291cmNlc0NvY29hLnR4dCBiL1NvdXJjZS9X
ZWJLaXQvU291cmNlc0NvY29hLnR4dAppbmRleCA2OGM0NGI0OTM1NmQ1MzI5YTg2NWVhODI2ZjI3
YjZlM2EwMzA2YmVmLi5lODZkMTVjNmJiZTg4OTAwMGRmYjU5Zjc3YjdhZTBmMDE5M2I5ZjNiIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50eHQKKysrIGIvU291cmNlL1dl
YktpdC9Tb3VyY2VzQ29jb2EudHh0CkBAIC00NjAsNiArNDYwLDcgQEAgVUlQcm9jZXNzL2lvcy9X
S0dlb2xvY2F0aW9uUHJvdmlkZXJJT1MubW0KIFVJUHJvY2Vzcy9pb3MvV0tHZW9sb2NhdGlvblBy
b3ZpZGVySU9TT2JqQ1NlY3VyaXR5T3JpZ2luLm1tCiBVSVByb2Nlc3MvaW9zL1dLSGlnaGxpZ2h0
TG9uZ1ByZXNzR2VzdHVyZVJlY29nbml6ZXIubW0KIFVJUHJvY2Vzcy9pb3MvV0tLZXlib2FyZFNj
cm9sbGluZ0FuaW1hdG9yLm1tCitVSVByb2Nlc3MvaW9zL1dLTW91c2VEZXZpY2VPYnNlcnZlci5t
bQogVUlQcm9jZXNzL2lvcy9XS01vdXNlR2VzdHVyZVJlY29nbml6ZXIubW0KIFVJUHJvY2Vzcy9p
b3MvV0tQYXNzd29yZFZpZXcubW0KIFVJUHJvY2Vzcy9pb3MvV0tQREZQYWdlTnVtYmVySW5kaWNh
dG9yLm1tCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJQcm9j
ZXNzUG9vbENvY29hLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViUHJvY2Vz
c1Bvb2xDb2NvYS5tbQppbmRleCAwOWJmZmU0YzlkY2ZkYzU5ZjAxOTAwNzM0MmZmZWNiYjdiYjY2
NzU2Li5jZjc1NTIyNmVjYjc0MDhjZjAzZDAyZmVkYzI4ZThlMjJhYmFhODdiIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJQcm9jZXNzUG9vbENvY29hLm1tCisr
KyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlByb2Nlc3NQb29sQ29jb2EubW0K
QEAgLTQwLDYgKzQwLDcgQEAKICNpbXBvcnQgIlRleHRDaGVja2VyLmgiCiAjaW1wb3J0ICJVc2Vy
SW50ZXJmYWNlSWRpb20uaCIKICNpbXBvcnQgIldLQnJvd3NpbmdDb250ZXh0Q29udHJvbGxlcklu
dGVybmFsLmgiCisjaW1wb3J0ICJXS01vdXNlRGV2aWNlT2JzZXJ2ZXIuaCIKICNpbXBvcnQgIldl
YkJhY2tGb3J3YXJkQ2FjaGUuaCIKICNpbXBvcnQgIldlYk1lbW9yeVByZXNzdXJlSGFuZGxlci5o
IgogI2ltcG9ydCAiV2ViUGFnZUdyb3VwLmgiCkBAIC01MDUsNiArNTA2LDEwIEBAIHZvaWQgV2Vi
UHJvY2Vzc1Bvb2w6OnBsYXRmb3JtSW5pdGlhbGl6ZVdlYlByb2Nlc3MoY29uc3QgV2ViUHJvY2Vz
c1Byb3h5JiBwcm9jZXNzCiAjaWYgSEFWRShDQVRBTFlTVF9VU0VSX0lOVEVSRkFDRV9JRElPTV9B
TkRfU0NBTEVfRkFDVE9SKQogICAgIHBhcmFtZXRlcnMub3ZlcnJpZGVVc2VySW50ZXJmYWNlSWRp
b21BbmRTY2FsZSA9IHsgX1VJQXBwbGljYXRpb25DYXRhbHlzdFVzZXJJbnRlcmZhY2VJZGlvbSgp
LCBfVUlBcHBsaWNhdGlvbkNhdGFseXN0U2NhbGVGYWN0b3IoKSB9OwogI2VuZGlmCisKKyNpZiBI
QVZFKFVJS0lUX1dJVEhfTU9VU0VfU1VQUE9SVCkgJiYgUExBVEZPUk0oSU9TKQorICAgIHBhcmFt
ZXRlcnMuaGFzTW91c2VEZXZpY2UgPSBbW1dLTW91c2VEZXZpY2VPYnNlcnZlciBzaGFyZWRJbnN0
YW5jZV0gaGFzTW91c2VEZXZpY2VdOworI2VuZGlmCiB9CiAKIHZvaWQgV2ViUHJvY2Vzc1Bvb2w6
OnBsYXRmb3JtSW5pdGlhbGl6ZU5ldHdvcmtQcm9jZXNzKE5ldHdvcmtQcm9jZXNzQ3JlYXRpb25Q
YXJhbWV0ZXJzJiBwYXJhbWV0ZXJzKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2ViUHJvY2Vzc1Byb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nl
c3NQcm94eS5jcHAKaW5kZXggODlkZDVmMTliZjRhZWI2N2QzNzUzNGQ2YWNkNzMwNGZlZTlkZWYy
OS4uNDBjNDlhOTkzMjdiMTg1NmIwNTA2YjQ0M2JhOGI0MWEzYWIxYjcwYSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwCkBAIC0xMDksNyArMTA5LDcgQEAg
c3RhdGljIGJvb2wgaXNNYWluVGhyZWFkT3JDaGVja0Rpc2FibGVkKCkKICNlbmRpZgogfQogCi1z
dGF0aWMgSGFzaE1hcDxQcm9jZXNzSWRlbnRpZmllciwgV2ViUHJvY2Vzc1Byb3h5Kj4mIGFsbFBy
b2Nlc3NlcygpCitIYXNoTWFwPFByb2Nlc3NJZGVudGlmaWVyLCBXZWJQcm9jZXNzUHJveHkqPiYg
V2ViUHJvY2Vzc1Byb3h5OjphbGxQcm9jZXNzZXMoKQogewogICAgIEFTU0VSVChpc01haW5UaHJl
YWRPckNoZWNrRGlzYWJsZWQoKSk7CiAgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEhhc2hNYXA8
UHJvY2Vzc0lkZW50aWZpZXIsIFdlYlByb2Nlc3NQcm94eSo+PiBtYXA7CkBAIC0yMTAsOCArMjEw
LDE2IEBAIFdlYlByb2Nlc3NQcm94eTo6V2ViUHJvY2Vzc1Byb3h5KFdlYlByb2Nlc3NQb29sJiBw
cm9jZXNzUG9vbCwgV2Vic2l0ZURhdGFTdG9yZSoKICAgICBBU1NFUlRfVU5VU0VEKHJlc3VsdCwg
cmVzdWx0LmlzTmV3RW50cnkpOwogCiAgICAgV2ViUGFzdGVib2FyZFByb3h5OjpzaW5nbGV0b24o
KS5hZGRXZWJQcm9jZXNzUHJveHkoKnRoaXMpOworCisgICAgcGxhdGZvcm1Jbml0aWFsaXplKCk7
CiB9CiAKKyNpZiAhUExBVEZPUk0oSU9TX0ZBTUlMWSkKK3ZvaWQgV2ViUHJvY2Vzc1Byb3h5Ojpw
bGF0Zm9ybUluaXRpYWxpemUoKQoreworfQorI2VuZGlmCisKIFdlYlByb2Nlc3NQcm94eTo6fldl
YlByb2Nlc3NQcm94eSgpCiB7CiAgICAgUkVMRUFTRV9BU1NFUlQoaXNNYWluVGhyZWFkT3JDaGVj
a0Rpc2FibGVkKCkpOwpAQCAtMjQwLDggKzI0OCwxNiBAQCBXZWJQcm9jZXNzUHJveHk6On5XZWJQ
cm9jZXNzUHJveHkoKQogI2lmIFBMQVRGT1JNKE1BQykKICAgICBIaWdoUGVyZm9ybWFuY2VHUFVN
YW5hZ2VyOjpzaW5nbGV0b24oKS5yZW1vdmVQcm9jZXNzUmVxdWlyaW5nSGlnaFBlcmZvcm1hbmNl
KHRoaXMpOwogI2VuZGlmCisKKyAgICBwbGF0Zm9ybURlc3Ryb3koKTsKIH0KIAorI2lmICFQTEFU
Rk9STShJT1NfRkFNSUxZKQordm9pZCBXZWJQcm9jZXNzUHJveHk6OnBsYXRmb3JtRGVzdHJveSgp
Cit7Cit9CisjZW5kaWYKKwogdm9pZCBXZWJQcm9jZXNzUHJveHk6OnNldElzSW5Qcm9jZXNzQ2Fj
aGUoYm9vbCB2YWx1ZSkKIHsKICAgICBpZiAodmFsdWUpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2ViUHJvY2Vzc1Byb3h5LmgKaW5kZXggZTBlOGRjMGFjNzA4YjEyNDhiMWNjODBhZGNiMTlk
MTg0MTIzOWM3My4uNDQzOWYyMDczMmRkZjFhMTNiY2U4MzQ1M2MwOTI3ZTIzYWM5YmI4ZSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmgKKysrIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmgKQEAgLTIxMSw2ICsyMTEs
MTAgQEAgcHVibGljOgogCiAgICAgc3RhdGljIGJvb2wgZnVsbEtleWJvYXJkQWNjZXNzRW5hYmxl
ZCgpOwogCisjaWYgSEFWRShVSUtJVF9XSVRIX01PVVNFX1NVUFBPUlQpICYmIFBMQVRGT1JNKElP
UykKKyAgICBzdGF0aWMgdm9pZCBub3RpZnlIYXNNb3VzZURldmljZUNoYW5nZWQoKTsKKyNlbmRp
ZgorCiAgICAgdm9pZCBmZXRjaFdlYnNpdGVEYXRhKFBBTDo6U2Vzc2lvbklELCBPcHRpb25TZXQ8
V2Vic2l0ZURhdGFUeXBlPiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJzaXRlRGF0YSk+JiYp
OwogICAgIHZvaWQgZGVsZXRlV2Vic2l0ZURhdGEoUEFMOjpTZXNzaW9uSUQsIE9wdGlvblNldDxX
ZWJzaXRlRGF0YVR5cGU+LCBXYWxsVGltZSBtb2RpZmllZFNpbmNlLCBDb21wbGV0aW9uSGFuZGxl
cjx2b2lkKCk+JiYpOwogICAgIHZvaWQgZGVsZXRlV2Vic2l0ZURhdGFGb3JPcmlnaW5zKFBBTDo6
U2Vzc2lvbklELCBPcHRpb25TZXQ8V2Vic2l0ZURhdGFUeXBlPiwgY29uc3QgVmVjdG9yPFdlYkNv
cmU6OlNlY3VyaXR5T3JpZ2luRGF0YT4mLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwpA
QCAtNDEwLDYgKzQxNCwxMSBAQCBwcm90ZWN0ZWQ6CiAgICAgdm9pZCB2YWxpZGF0ZUZyZWV6ZXJT
dGF0dXMoKTsKIAogcHJpdmF0ZToKKyAgICBzdGF0aWMgSGFzaE1hcDxXZWJDb3JlOjpQcm9jZXNz
SWRlbnRpZmllciwgV2ViUHJvY2Vzc1Byb3h5Kj4mIGFsbFByb2Nlc3NlcygpOworCisgICAgdm9p
ZCBwbGF0Zm9ybUluaXRpYWxpemUoKTsKKyAgICB2b2lkIHBsYXRmb3JtRGVzdHJveSgpOworCiAg
ICAgLy8gSVBDIG1lc3NhZ2UgaGFuZGxlcnMuCiAgICAgdm9pZCB1cGRhdGVCYWNrRm9yd2FyZEl0
ZW0oY29uc3QgQmFja0ZvcndhcmRMaXN0SXRlbVN0YXRlJik7CiAgICAgdm9pZCBkaWREZXN0cm95
RnJhbWUoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL2lvcy9XS01vdXNlRGV2aWNlT2JzZXJ2ZXIuaCBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL2lvcy9XS01vdXNlRGV2aWNlT2JzZXJ2ZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xMDcwNDE2
NDBiMmRmNGZmZjY4ZDE1N2JmZDQ0OGM2OThhNzExM2I4Ci0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLTW91c2VEZXZpY2VPYnNlcnZlci5oCkBAIC0wLDAg
KzEsNDcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
CisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgor
ICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLworCisjaWYgSEFWRShVSUtJVF9XSVRIX01PVVNFX1NVUFBPUlQp
ICYmIFBMQVRGT1JNKElPUykKKworI2ltcG9ydCAiQmFja0JvYXJkU2VydmljZXNTUEkuaCIKKwor
bmFtZXNwYWNlIFdlYktpdCB7CitjbGFzcyBXZWJQcm9jZXNzUHJveHk7Cit9CisKK0BpbnRlcmZh
Y2UgV0tNb3VzZURldmljZU9ic2VydmVyIDogTlNPYmplY3Q8QktTTW91c2VQb2ludGVyRGV2aWNl
T2JzZXJ2ZXI+CisKKysgKFdLTW91c2VEZXZpY2VPYnNlcnZlciAqKXNoYXJlZEluc3RhbmNlOwor
CistICh2b2lkKXN0YXJ0OworLSAodm9pZClzdG9wOworCitAcHJvcGVydHkgKG5vbmF0b21pYywg
cmVhZG9ubHkpIEJPT0wgaGFzTW91c2VEZXZpY2U7CisKKy0gKHZvaWQpX3NldEhhc01vdXNlRGV2
aWNlRm9yVGVzdGluZzooQk9PTCloYXNNb3VzZURldmljZTsKKworQGVuZAorCisjZW5kaWYgLy8g
SEFWRShVSUtJVF9XSVRIX01PVVNFX1NVUFBPUlQpICYmIFBMQVRGT1JNKElPUykKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS01vdXNlRGV2aWNlT2JzZXJ2ZXIubW0g
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tNb3VzZURldmljZU9ic2VydmVyLm1tCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLmU1MTBlZmEwZTg5OTQyYjFjNTc4OGE2OWMyMzlmYjUzNWU3YTk5N2UKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tNb3VzZURldmljZU9i
c2VydmVyLm1tCkBAIC0wLDAgKzEsOTYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElT
JycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JT
CisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisg
KiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAq
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW1wb3J0ICJjb25maWcu
aCIKKyNpbXBvcnQgIldLTW91c2VEZXZpY2VPYnNlcnZlci5oIgorCisjaWYgSEFWRShVSUtJVF9X
SVRIX01PVVNFX1NVUFBPUlQpICYmIFBMQVRGT1JNKElPUykKKworI2ltcG9ydCAiV2ViUHJvY2Vz
c1Byb3h5LmgiCisjaW1wb3J0IDx3dGYvUmV0YWluUHRyLmg+CisKK0BpbXBsZW1lbnRhdGlvbiBX
S01vdXNlRGV2aWNlT2JzZXJ2ZXIgeworICAgIEJPT0wgX2hhc01vdXNlRGV2aWNlOworICAgIFJl
dGFpblB0cjxpZDxCU0ludmFsaWRhdGFibGU+PiBfdG9rZW47Cit9CisKKysgKFdLTW91c2VEZXZp
Y2VPYnNlcnZlciAqKXNoYXJlZEluc3RhbmNlIHsKKyAgICBzdGF0aWMgV0tNb3VzZURldmljZU9i
c2VydmVyICppbnN0YW5jZTsKKyAgICBpZiAoIWluc3RhbmNlKQorICAgICAgICBpbnN0YW5jZSA9
IFtbV0tNb3VzZURldmljZU9ic2VydmVyIGFsbG9jXSBpbml0XTsKKyAgICByZXR1cm4gaW5zdGFu
Y2U7Cit9CisKKy0gKHZvaWQpZGVhbGxvYworeworICAgIFtzZWxmIHN0b3BdOworCisgICAgW3N1
cGVyIGRlYWxsb2NdOworfQorCisjcHJhZ21hIG1hcmsgLSBCS1NNb3VzZVBvaW50ZXJEZXZpY2VP
YnNlcnZlciBzdGF0ZQorCistICh2b2lkKXN0YXJ0Cit7CisgICAgaWYgKF90b2tlbikKKyAgICAg
ICAgcmV0dXJuOworCisgICAgX3Rva2VuID0gW1tCS1NNb3VzZVBvaW50ZXJTZXJ2aWNlIHNoYXJl
ZEluc3RhbmNlXSBhZGRQb2ludGVyRGV2aWNlT2JzZXJ2ZXI6c2VsZl07Cit9CisKKy0gKHZvaWQp
c3RvcAoreworICAgIGlmICghX3Rva2VuKQorICAgICAgICByZXR1cm47CisKKyAgICBbX3Rva2Vu
IGludmFsaWRhdGVdOworICAgIF90b2tlbiA9IG5pbDsKK30KKworI3ByYWdtYSBtYXJrIC0gQktT
TW91c2VQb2ludGVyRGV2aWNlT2JzZXJ2ZXIgaGFuZGxlcnMKKworLSAodm9pZCltb3VzZVBvaW50
ZXJEZXZpY2VzRGlkQ2hhbmdlOihOU1NldDxCS1NNb3VzZVBvaW50ZXJEZXZpY2UgKj4gKiltb3Vz
ZVBvaW50ZXJEZXZpY2VzCit7CisgICAgQk9PTCBoYXNNb3VzZURldmljZSA9IG1vdXNlUG9pbnRl
ckRldmljZXMuY291bnQgPiAwOworICAgIGlmIChoYXNNb3VzZURldmljZSA9PSBfaGFzTW91c2VE
ZXZpY2UpCisgICAgICAgIHJldHVybjsKKworICAgIF9oYXNNb3VzZURldmljZSA9IGhhc01vdXNl
RGV2aWNlOworCisgICAgV2ViS2l0OjpXZWJQcm9jZXNzUHJveHk6Om5vdGlmeUhhc01vdXNlRGV2
aWNlQ2hhbmdlZCgpOworfQorCisjcHJhZ21hIG1hcmsgLSBUZXN0aW5nCisKKy0gKHZvaWQpX3Nl
dEhhc01vdXNlRGV2aWNlRm9yVGVzdGluZzooQk9PTCloYXNNb3VzZURldmljZQoreworICAgIF9o
YXNNb3VzZURldmljZSA9IGhhc01vdXNlRGV2aWNlOworCisgICAgV2ViS2l0OjpXZWJQcm9jZXNz
UHJveHk6Om5vdGlmeUhhc01vdXNlRGV2aWNlQ2hhbmdlZCgpOworfQorCitAZW5kCisKKyNlbmRp
ZiAvLyBIQVZFKFVJS0lUX1dJVEhfTU9VU0VfU1VQUE9SVCkgJiYgUExBVEZPUk0oSU9TKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dlYlByb2Nlc3NQcm94eUlPUy5t
bSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XZWJQcm9jZXNzUHJveHlJT1MubW0KaW5k
ZXggZWIxNzdjZDdjZGY1MWYwMjdmN2M1YjFlYzcyYzg3M2ZmYTYxODRmYS4uY2E0ZWEyMDM2MDgy
OWExZTExNzA4NzBkN2ZjNDQzMDAyNGZiYTc2YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvaW9zL1dlYlByb2Nlc3NQcm94eUlPUy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9pb3MvV2ViUHJvY2Vzc1Byb3h5SU9TLm1tCkBAIC0zMCwxMCArMzAsMzggQEAKIAog
I2ltcG9ydCAiQWNjZXNzaWJpbGl0eVN1cHBvcnRTUEkuaCIKICNpbXBvcnQgIldLRnVsbEtleWJv
YXJkQWNjZXNzV2F0Y2hlci5oIgorI2ltcG9ydCAiV0tNb3VzZURldmljZU9ic2VydmVyLmgiCiAj
aW1wb3J0ICJXZWJQcm9jZXNzTWVzc2FnZXMuaCIKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKK3Zv
aWQgV2ViUHJvY2Vzc1Byb3h5OjpwbGF0Zm9ybUluaXRpYWxpemUoKQoreworI2lmIEhBVkUoVUlL
SVRfV0lUSF9NT1VTRV9TVVBQT1JUKSAmJiBQTEFURk9STShJT1MpCisgICAgaWYgKFdlYlByb2Nl
c3NQcm94eTo6YWxsUHJvY2Vzc2VzKCkuc2l6ZSgpID09IDEpCisgICAgICAgIFtbV0tNb3VzZURl
dmljZU9ic2VydmVyIHNoYXJlZEluc3RhbmNlXSBzdGFydF07CisjZW5kaWYKK30KKwordm9pZCBX
ZWJQcm9jZXNzUHJveHk6OnBsYXRmb3JtRGVzdHJveSgpCit7CisjaWYgSEFWRShVSUtJVF9XSVRI
X01PVVNFX1NVUFBPUlQpICYmIFBMQVRGT1JNKElPUykKKyAgICBpZiAoV2ViUHJvY2Vzc1Byb3h5
OjphbGxQcm9jZXNzZXMoKS5pc0VtcHR5KCkpCisgICAgICAgIFtbV0tNb3VzZURldmljZU9ic2Vy
dmVyIHNoYXJlZEluc3RhbmNlXSBzdG9wXTsKKyNlbmRpZgorfQorCisjaWYgSEFWRShVSUtJVF9X
SVRIX01PVVNFX1NVUFBPUlQpICYmIFBMQVRGT1JNKElPUykKKwordm9pZCBXZWJQcm9jZXNzUHJv
eHk6Om5vdGlmeUhhc01vdXNlRGV2aWNlQ2hhbmdlZCgpCit7CisgICAgYm9vbCBoYXNNb3VzZURl
dmljZSA9IFtbV0tNb3VzZURldmljZU9ic2VydmVyIHNoYXJlZEluc3RhbmNlXSBoYXNNb3VzZURl
dmljZV07CisgICAgZm9yIChhdXRvKiB3ZWJQcm9jZXNzUHJveHkgOiBXZWJQcm9jZXNzUHJveHk6
OmFsbFByb2Nlc3NlcygpLnZhbHVlcygpKQorICAgICAgICB3ZWJQcm9jZXNzUHJveHktPnNlbmQo
TWVzc2FnZXM6OldlYlByb2Nlc3M6OlNldEhhc01vdXNlRGV2aWNlKGhhc01vdXNlRGV2aWNlKSwg
MCk7Cit9CisKKyNlbmRpZiAvLyBIQVZFKFVJS0lUX1dJVEhfTU9VU0VfU1VQUE9SVCkKKwogYm9v
bCBXZWJQcm9jZXNzUHJveHk6OmZ1bGxLZXlib2FyZEFjY2Vzc0VuYWJsZWQoKQogewogI2lmIEVO
QUJMRShGVUxMX0tFWUJPQVJEX0FDQ0VTUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2Vi
S2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDU3MjEzNTYyYWJjMWJlMzg0MmJlMzFlODYxNzM3
MGRlMjg3OGNkMGEuLjI4NGRlNjRkMmM5YjQzOGViNzdiYzAwNzMwNjJlNGIyMGRlZTFiNTAgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oK
KysrIGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAt
MTM3OSw2ICsxMzc5LDggQEAKIAkJOTNCREVCMDExNzFERDdBRjAwQkZFRTFCIC8qIFdLUGFnZUxv
YWRUeXBlc1ByaXZhdGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDkzQkRFQjAwMTcxREQ3QUYwMEJGRUUxQiAvKiBXS1BhZ2VMb2FkVHlwZXNQcml2YXRl
LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJOTNF
NkE0RUUxQkM1REQzOTAwRjhBMEU3IC8qIF9XS0hpdFRlc3RSZXN1bHQuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzRTZBNEVEMUJDNUREMzkwMEY4QTBF
NyAvKiBfV0tIaXRUZXN0UmVzdWx0LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKIAkJOTNGNTQ5QjQxRTMxNzRCNzAwMEU3MjM5IC8qIFdLU25hcHNob3RD
b25maWd1cmF0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA5M0Y1NDlCMzFFMzE3NEI3MDAwRTcyMzkgLyogV0tTbmFwc2hvdENvbmZpZ3VyYXRpb24u
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQdWJsaWMsICk7IH07IH07CisJCTk1MEYy
ODgwMjUyNDE0RUEwMEI3NEYxQyAvKiBXS01vdXNlRGV2aWNlT2JzZXJ2ZXIuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk1MEYyODdFMjUyNDE0RTkwMEI3
NEYxQyAvKiBXS01vdXNlRGV2aWNlT2JzZXJ2ZXIuaCAqLzsgfTsKKwkJOTVDOTQzOTEyNTIzQzBE
MDAwNTRGM0Q1IC8qIEJhc2VCb2FyZFNQSS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gOTVDOTQzOTAyNTIzQzBEMDAwNTRGM0Q1IC8qIEJhc2VCb2FyZFNQ
SS5oICovOyB9OwogCQk5OTAzNkFFMjIzQTk0OUNGMDAwMEIwNkEgLyogX1dLSW5zcGVjdG9yRGVi
dWdnYWJsZUluZm9JbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gOTkwMzZBRTEyM0E5NDlDRTAwMDBCMDZBIC8qIF9XS0luc3BlY3RvckRlYnVn
Z2FibGVJbmZvSW50ZXJuYWwuaCAqLzsgfTsKIAkJOTkwMzZBRTUyM0E5NTg3NTAwMDBCMDZBIC8q
IEFQSURlYnVnZ2FibGVJbmZvLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA5OTAzNkFFMzIzQTk1ODc0MDAwMEIwNkEgLyogQVBJRGVidWdnYWJsZUluZm8u
aCAqLzsgfTsKIAkJOTkwMzZBRTkyM0E5NzA4NzAwMDBCMDZBIC8qIERlYnVnZ2FibGVJbmZvRGF0
YS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTkwMzZB
RTcyM0E5NzA4NzAwMDBCMDZBIC8qIERlYnVnZ2FibGVJbmZvRGF0YS5oICovOyB9OwpAQCAtNDQy
Niw2ICs0NDI4LDkgQEAKIAkJOTNFNkE0RUQxQkM1REQzOTAwRjhBMEU3IC8qIF9XS0hpdFRlc3RS
ZXN1bHQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gX1dLSGl0VGVzdFJlc3Vs
dC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5M0Y1NDlCMzFFMzE3NEI3MDAwRTcy
MzkgLyogV0tTbmFwc2hvdENvbmZpZ3VyYXRpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gV0tTbmFwc2hvdENvbmZpZ3VyYXRpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJOTNGNTQ5QjUxRTMxNzREQTAwMEU3MjM5IC8qIFdLU25hcHNob3RDb25maWd1cmF0
aW9uLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gV0tTbmFwc2hv
dENvbmZpZ3VyYXRpb24ubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTk1MEYyODdF
MjUyNDE0RTkwMEI3NEYxQyAvKiBXS01vdXNlRGV2aWNlT2JzZXJ2ZXIuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBuYW1lID0gV0tNb3VzZURldmljZU9ic2VydmVyLmg7IHBhdGggPSBpb3Mv
V0tNb3VzZURldmljZU9ic2VydmVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTk1
MEYyODdGMjUyNDE0RUEwMEI3NEYxQyAvKiBXS01vdXNlRGV2aWNlT2JzZXJ2ZXIubW0gKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IG5hbWUgPSBXS01vdXNlRGV2aWNlT2JzZXJ2ZXIu
bW07IHBhdGggPSBpb3MvV0tNb3VzZURldmljZU9ic2VydmVyLm1tOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQk5NUM5NDM5MDI1MjNDMEQwMDA1NEYzRDUgLyogQmFzZUJvYXJkU1BJLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEJhc2VCb2FyZFNQSS5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk5OTAzNkFFMTIzQTk0OUNFMDAwMEIwNkEgLyogX1dLSW5z
cGVjdG9yRGVidWdnYWJsZUluZm9JbnRlcm5hbC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBfV0tJbnNwZWN0b3JEZWJ1Z2dhYmxlSW5mb0ludGVybmFsLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTk5MDM2QUUzMjNBOTU4NzQwMDAwQjA2QSAvKiBBUElEZWJ1Z2dh
YmxlSW5mby5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBBUElEZWJ1Z2dhYmxl
SW5mby5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5OTAzNkFFNDIzQTk1ODc0MDAw
MEIwNkEgLyogQVBJRGVidWdnYWJsZUluZm8uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gQVBJRGVidWdnYWJsZUluZm8uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwpAQCAtNzAyMyw2ICs3MDI4LDggQEAKIAkJCQk5MzNERjgyRjFCM0JDMEI0MDBBRUE5RTMg
LyogV0tJbWFnZVByZXZpZXdWaWV3Q29udHJvbGxlci5tbSAqLywKIAkJCQkyREQ1RTEyNzIxMEFE
QzdBMDBEQjYwMTIgLyogV0tLZXlib2FyZFNjcm9sbGluZ0FuaW1hdG9yLmggKi8sCiAJCQkJMkRE
NUUxMjYyMTBBREM3QTAwREI2MDEyIC8qIFdLS2V5Ym9hcmRTY3JvbGxpbmdBbmltYXRvci5tbSAq
LywKKwkJCQk5NTBGMjg3RTI1MjQxNEU5MDBCNzRGMUMgLyogV0tNb3VzZURldmljZU9ic2VydmVy
LmggKi8sCisJCQkJOTUwRjI4N0YyNTI0MTRFQTAwQjc0RjFDIC8qIFdLTW91c2VEZXZpY2VPYnNl
cnZlci5tbSAqLywKIAkJCQkyREI5NDI5NzIzNEU3QTdGMDBFNzc2QUQgLyogV0tNb3VzZUdlc3R1
cmVSZWNvZ25pemVyLmggKi8sCiAJCQkJMkRCOTQyOTgyMzRFN0E3RjAwRTc3NkFEIC8qIFdLTW91
c2VHZXN0dXJlUmVjb2duaXplci5tbSAqLywKIAkJCQlBMTVFRURFNDFFMzAxQ0VFMDAwMDY5QjAg
LyogV0tQYXNzd29yZFZpZXcuaCAqLywKQEAgLTEwMzgzLDYgKzEwMzkwLDcgQEAKIAkJCWNoaWxk
cmVuID0gKAogCQkJCUNFMUEwQkNDMUE0OEU2QzYwMDU0RUY3NCAvKiBBc3NlcnRpb25TZXJ2aWNl
c1NQSS5oICovLAogCQkJCUNEQTA0MUYzMUFDRTIxMDUwMDRBMTNFQyAvKiBCYWNrQm9hcmRTZXJ2
aWNlc1NQSS5oICovLAorCQkJCTk1Qzk0MzkwMjUyM0MwRDAwMDU0RjNENSAvKiBCYXNlQm9hcmRT
UEkuaCAqLywKIAkJCQkyRDRBRjA4ODIwNDRDM0M0MDA2Qzg4MTcgLyogRnJvbnRCb2FyZFNlcnZp
Y2VzU1BJLmggKi8sCiAJCQkJQTEzQjNEQTEyMDdGMzlERTAwOTBDNThEIC8qIE1vYmlsZVdpRmlT
UEkuaCAqLywKIAkJCQkzMTc4QUY5NzIwRTJBN0Y4MDA3NERFOTQgLyogUERGS2l0U1BJLmggKi8s
CkBAIC0xMDc0OSw2ICsxMDc1Nyw3IEBACiAJCQkJMjkwRjQyNzIxNzJBMEM3NDAwOTM5RkYwIC8q
IEF1eGlsaWFyeVByb2Nlc3NTdXBwbGVtZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlDREEwNDFG
NDFBQ0UyMTA1MDA0QTEzRUMgLyogQmFja0JvYXJkU2VydmljZXNTUEkuaCBpbiBIZWFkZXJzICov
LAogCQkJCTQ2QTJCNjA5MUU1Njc2QTYwMEMzREVEQSAvKiBCYWNrZ3JvdW5kUHJvY2Vzc1Jlc3Bv
bnNpdmVuZXNzVGltZXIuaCBpbiBIZWFkZXJzICovLAorCQkJCTk1Qzk0MzkxMjUyM0MwRDAwMDU0
RjNENSAvKiBCYXNlQm9hcmRTUEkuaCBpbiBIZWFkZXJzICovLAogCQkJCUUxNjRBMkYyMTkxQUYx
NEUwMDEwNzM3RCAvKiBCbG9iRGF0YUZpbGVSZWZlcmVuY2VXaXRoU2FuZGJveEV4dGVuc2lvbi5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJRTE3MDg3NkMxNkQ2Q0E2OTAwRjk5MjI2IC8qIEJsb2JSZWdp
c3RyeVByb3h5LmggaW4gSGVhZGVycyAqLywKIAkJCQk0RjYwMTQzMjE1NUM1QUEyMDAxRkJERTAg
LyogQmxvY2tpbmdSZXNwb25zZU1hcC5oIGluIEhlYWRlcnMgKi8sCkBAIC0xMTYwNiw2ICsxMTYx
NSw3IEBACiAJCQkJNUNBQkRDODYyMkM0MEZERTAwMUVERThFIC8qIFdLTWVzc2FnZUxpc3RlbmVy
LmggaW4gSGVhZGVycyAqLywKIAkJCQlDMTFFMTY5NDIxMkI4N0M1MDA5ODVGRjYgLyogV0tNb2Nr
RGlzcGxheS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDExQThEREIyMERERDFBQzAwNjBEMzRGIC8q
IFdLTW9ja01lZGlhRGV2aWNlLmggaW4gSGVhZGVycyAqLywKKwkJCQk5NTBGMjg4MDI1MjQxNEVB
MDBCNzRGMUMgLyogV0tNb3VzZURldmljZU9ic2VydmVyLmggaW4gSGVhZGVycyAqLywKIAkJCQky
REI5NDI5OTIzNEU3QTdGMDBFNzc2QUQgLyogV0tNb3VzZUdlc3R1cmVSZWNvZ25pemVyLmggaW4g
SGVhZGVycyAqLywKIAkJCQlCQzQwNzVGRTEyNEZGMDI3MDA2OEYyMEEgLyogV0tNdXRhYmxlQXJy
YXkuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDNDA3NjAwMTI0RkYwMjcwMDY4RjIwQSAvKiBXS011
dGFibGVEaWN0aW9uYXJ5LmggaW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAKaW5k
ZXggYjUyYzkyNDIzYTA4NzVmNmU2Yjk2ZGI4NDI1ZmFiOWJmMDRjM2Q1NC4uNmM2ZDJhZDA0MDhi
ZWNhMzU5NDc3OTBmYTEzZmNhMzljYmU3OTNiYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAKQEAg
LTUwNiw2ICs1MDYsMTYgQEAgS2V5Ym9hcmRVSU1vZGUgV2ViQ2hyb21lQ2xpZW50OjprZXlib2Fy
ZFVJTW9kZSgpCiAgICAgcmV0dXJuIG1fcGFnZS5rZXlib2FyZFVJTW9kZSgpOwogfQogCitib29s
IFdlYkNocm9tZUNsaWVudDo6aG92ZXJTdXBwb3J0ZWRCeUFueUF2YWlsYWJsZVBvaW50aW5nRGV2
aWNlKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9wYWdlLmhvdmVyU3VwcG9ydGVkQnlBbnlBdmFp
bGFibGVQb2ludGluZ0RldmljZSgpOworfQorCitPcHRpb25TZXQ8UG9pbnRlckNoYXJhY3Rlcmlz
dGljcz4gV2ViQ2hyb21lQ2xpZW50Ojpwb2ludGVyQ2hhcmFjdGVyaXN0aWNzT2ZBbGxBdmFpbGFi
bGVQb2ludGluZ0RldmljZXMoKSBjb25zdAoreworICAgIHJldHVybiBtX3BhZ2UucG9pbnRlckNo
YXJhY3RlcmlzdGljc09mQWxsQXZhaWxhYmxlUG9pbnRpbmdEZXZpY2VzKCk7Cit9CisKICNpZiBF
TkFCTEUoUE9JTlRFUl9MT0NLKQogCiBib29sIFdlYkNocm9tZUNsaWVudDo6cmVxdWVzdFBvaW50
ZXJMb2NrKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC9XZWJDaHJvbWVDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3Jl
U3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaAppbmRleCA5OTYzNDkxYjQxMTA2ODcwOTQyYWRlMDAw
NjkwODMzMDBjYzU3MWE4Li4zNWJhNWE3NWVhMzMwYmUwYWMzM2M2YjIzNjg3NzFmMzhiZmE1ZWRk
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2Vi
Q2hyb21lQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L1dlYkNocm9tZUNsaWVudC5oCkBAIC0xMTIsNiArMTEyLDkgQEAgcHJpdmF0ZToKIAogICAg
IFdlYkNvcmU6OktleWJvYXJkVUlNb2RlIGtleWJvYXJkVUlNb2RlKCkgZmluYWw7CiAKKyAgICBi
b29sIGhvdmVyU3VwcG9ydGVkQnlBbnlBdmFpbGFibGVQb2ludGluZ0RldmljZSgpIGNvbnN0IGZp
bmFsOworICAgIE9wdGlvblNldDxXZWJDb3JlOjpQb2ludGVyQ2hhcmFjdGVyaXN0aWNzPiBwb2lu
dGVyQ2hhcmFjdGVyaXN0aWNzT2ZBbGxBdmFpbGFibGVQb2ludGluZ0RldmljZXMoKSBjb25zdCBm
aW5hbDsKKwogICAgIC8vIEhvc3RXaW5kb3cgbWVtYmVyIGZ1bmN0aW9uIGZpbmFscy4KICAgICB2
b2lkIGludmFsaWRhdGVSb290Vmlldyhjb25zdCBXZWJDb3JlOjpJbnRSZWN0JikgZmluYWw7CiAg
ICAgdm9pZCBpbnZhbGlkYXRlQ29udGVudHNBbmRSb290Vmlldyhjb25zdCBXZWJDb3JlOjpJbnRS
ZWN0JikgZmluYWw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFn
ZS9XZWJQYWdlLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgK
aW5kZXggZDUzZDMwNDNmNWE3NjEwZGViYmUzMjU3MGE0OGQwZTI1YWY0N2UxMi4uZDA4YWY1YTU3
MDI0Y2FhYzY3Njg3MGJjZjkwOWY0ZTdlMWQzNGY5YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaApAQCAtNzUsNiArNzUsNyBAQAogI2luY2x1ZGUgPFdlYkNv
cmUvUGFnZUlkZW50aWZpZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1BhZ2VPdmVybGF5Lmg+CiAj
aW5jbHVkZSA8V2ViQ29yZS9QbHVnaW5EYXRhLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9Qb2ludGVy
Q2hhcmFjdGVyaXN0aWNzLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Qb2ludGVySUQuaD4KICNpbmNs
dWRlIDxXZWJDb3JlL1JlbmRlcmluZ01vZGUuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1NlY3VyaXR5
UG9saWN5VmlvbGF0aW9uRXZlbnQuaD4KQEAgLTQxNSw2ICs0MTYsOSBAQCBwdWJsaWM6CiAgICAg
U3RyaW5nIHBsYXRmb3JtVXNlckFnZW50KGNvbnN0IFVSTCYpIGNvbnN0OwogICAgIFdlYkNvcmU6
OktleWJvYXJkVUlNb2RlIGtleWJvYXJkVUlNb2RlKCk7CiAKKyAgICBib29sIGhvdmVyU3VwcG9y
dGVkQnlBbnlBdmFpbGFibGVQb2ludGluZ0RldmljZSgpIGNvbnN0OworICAgIE9wdGlvblNldDxX
ZWJDb3JlOjpQb2ludGVyQ2hhcmFjdGVyaXN0aWNzPiBwb2ludGVyQ2hhcmFjdGVyaXN0aWNzT2ZB
bGxBdmFpbGFibGVQb2ludGluZ0RldmljZXMoKSBjb25zdDsKKwogICAgIHZvaWQgZGlkSW5zZXJ0
TWVudUVsZW1lbnQoV2ViQ29yZTo6SFRNTE1lbnVFbGVtZW50Jik7CiAgICAgdm9pZCBkaWRSZW1v
dmVNZW51RWxlbWVudChXZWJDb3JlOjpIVE1MTWVudUVsZW1lbnQmKTsKICAgICB2b2lkIGRpZElu
c2VydE1lbnVJdGVtRWxlbWVudChXZWJDb3JlOjpIVE1MTWVudUl0ZW1FbGVtZW50Jik7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9ndGsvV2ViUGFnZUd0ay5j
cHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9ndGsvV2ViUGFnZUd0ay5jcHAK
aW5kZXggZGE0NzU1MDJhMzBhMzk4NTFhMTdmNWU3MGViNzJjNDNhMGMzYWY3Mi4uZDlhZjk5NGNm
MDkwOWYwYmJiYjZmZTc0YzY4ZWQ3MDNiZmU3NWU3MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYlBhZ2UvZ3RrL1dlYlBhZ2VHdGsuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJQYWdlL2d0ay9XZWJQYWdlR3RrLmNwcApAQCAtNDMsNiArNDMsOCBA
QAogI2luY2x1ZGUgPFdlYkNvcmUvTm90SW1wbGVtZW50ZWQuaD4KICNpbmNsdWRlIDxXZWJDb3Jl
L1BhZ2UuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1BsYXRmb3JtS2V5Ym9hcmRFdmVudC5oPgorI2lu
Y2x1ZGUgPFdlYkNvcmUvUGxhdGZvcm1TY3JlZW4uaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1BvaW50
ZXJDaGFyYWN0ZXJpc3RpY3MuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1JlbmRlclRoZW1lLmg+CiAj
aW5jbHVkZSA8V2ViQ29yZS9TZXR0aW5ncy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU2hhcmVkQnVm
ZmVyLmg+CkBAIC0xMjksNiArMTMxLDI0IEBAIFN0cmluZyBXZWJQYWdlOjpwbGF0Zm9ybVVzZXJB
Z2VudChjb25zdCBVUkwmIHVybCkgY29uc3QKICAgICByZXR1cm4gV2ViQ29yZTo6c3RhbmRhcmRV
c2VyQWdlbnRGb3JVUkwodXJsKTsKIH0KIAorYm9vbCBXZWJQYWdlOjpob3ZlclN1cHBvcnRlZEJ5
QW55QXZhaWxhYmxlUG9pbnRpbmdEZXZpY2UoKSBjb25zdAoreworI2lmIEVOQUJMRShUT1VDSF9F
VkVOVFMpCisgICAgcmV0dXJuICFzY3JlZW5IYXNUb3VjaERldmljZSgpOworI2Vsc2UKKyAgICBy
ZXR1cm4gdHJ1ZTsKKyNlbmRpZgorfQorCitPcHRpb25TZXQ8UG9pbnRlckNoYXJhY3RlcmlzdGlj
cz4gV2ViUGFnZTo6cG9pbnRlckNoYXJhY3RlcmlzdGljc09mQWxsQXZhaWxhYmxlUG9pbnRpbmdE
ZXZpY2VzKCkgY29uc3QKK3sKKyNpZiBFTkFCTEUoVE9VQ0hfRVZFTlRTKQorICAgIGlmIChzY3Jl
ZW5IYXNUb3VjaERldmljZSgpKQorICAgICAgICByZXR1cm4gUG9pbnRlckNoYXJhY3RlcmlzdGlj
czo6Q29hcnNlOworI2VuZGlmCisgICAgcmV0dXJuIFBvaW50ZXJDaGFyYWN0ZXJpc3RpY3M6OkZp
bmU7Cit9CisKIHZvaWQgV2ViUGFnZTo6Z2V0Q2VudGVyRm9yWm9vbUdlc3R1cmUoY29uc3QgSW50
UG9pbnQmIGNlbnRlckluVmlld0Nvb3JkaW5hdGVzLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdl
YkNvcmU6OkludFBvaW50JiYpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewogICAgIEludFBvaW50
IHJlc3VsdCA9IG1haW5GcmFtZVZpZXcoKS0+cm9vdFZpZXdUb0NvbnRlbnRzKGNlbnRlckluVmll
d0Nvb3JkaW5hdGVzKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQ
YWdlL2lvcy9XZWJQYWdlSU9TLm1tIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2Uv
aW9zL1dlYlBhZ2VJT1MubW0KaW5kZXggNTY2NzQ5NjQ5MDczYmU3YzM2ODUxMjU4NGM3MjkzNjU4
NjNmYzE5Ny4uMWE5YTk2NTVkMTBkYTRkZTdlYWJlZDUzODY5ZGVlM2NkNmE3ZWJmMCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW0K
KysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW0K
QEAgLTExNiw2ICsxMTYsNyBAQAogI2ltcG9ydCA8V2ViQ29yZS9QbGF0Zm9ybUtleWJvYXJkRXZl
bnQuaD4KICNpbXBvcnQgPFdlYkNvcmUvUGxhdGZvcm1Nb3VzZUV2ZW50Lmg+CiAjaW1wb3J0IDxX
ZWJDb3JlL1BvaW50ZXJDYXB0dXJlQ29udHJvbGxlci5oPgorI2ltcG9ydCA8V2ViQ29yZS9Qb2lu
dGVyQ2hhcmFjdGVyaXN0aWNzLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1F1aXJrcy5oPgogI2ltcG9y
dCA8V2ViQ29yZS9SYW5nZS5oPgogI2ltcG9ydCA8V2ViQ29yZS9SZW5kZXJCbG9jay5oPgpAQCAt
Mzk4OCw2ICszOTg5LDMwIEBAIFN0cmluZyBXZWJQYWdlOjpwbGF0Zm9ybVVzZXJBZ2VudChjb25z
dCBVUkwmKSBjb25zdAogICAgIHJldHVybiBTdHJpbmcoKTsKIH0KIAorc3RhdGljIGJvb2wgaGFz
TW91c2VEZXZpY2UoKQoreworI2lmIEhBVkUoVUlLSVRfV0lUSF9NT1VTRV9TVVBQT1JUKSAmJiBQ
TEFURk9STShJT1MpCisgICAgcmV0dXJuIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmhhc01vdXNl
RGV2aWNlKCk7CisjZWxpZiBIQVZFKFVJS0lUX1dJVEhfTU9VU0VfU1VQUE9SVCkgJiYgUExBVEZP
Uk0oTUFDQ0FUQUxZU1QpCisgICAgcmV0dXJuIHRydWU7CisjZWxzZQorICAgIHJldHVybiBmYWxz
ZTsKKyNlbmRpZgorfQorCitib29sIFdlYlBhZ2U6OmhvdmVyU3VwcG9ydGVkQnlBbnlBdmFpbGFi
bGVQb2ludGluZ0RldmljZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIGhhc01vdXNlRGV2aWNlKCk7
Cit9CisKK09wdGlvblNldDxQb2ludGVyQ2hhcmFjdGVyaXN0aWNzPiBXZWJQYWdlOjpwb2ludGVy
Q2hhcmFjdGVyaXN0aWNzT2ZBbGxBdmFpbGFibGVQb2ludGluZ0RldmljZXMoKSBjb25zdAorewor
ICAgIE9wdGlvblNldDxQb2ludGVyQ2hhcmFjdGVyaXN0aWNzPiByZXN1bHQoUG9pbnRlckNoYXJh
Y3RlcmlzdGljczo6Q29hcnNlKTsKKyAgICBpZiAoaGFzTW91c2VEZXZpY2UoKSkKKyAgICAgICAg
cmVzdWx0LmFkZChQb2ludGVyQ2hhcmFjdGVyaXN0aWNzOjpGaW5lKTsKKyAgICByZXR1cm4gcmVz
dWx0OworfQorCiB2b2lkIFdlYlBhZ2U6OmhhcmR3YXJlS2V5Ym9hcmRBdmFpbGFiaWxpdHlDaGFu
Z2VkKGJvb2wga2V5Ym9hcmRJc0F0dGFjaGVkKQogewogICAgIG1fa2V5Ym9hcmRJc0F0dGFjaGVk
ID0ga2V5Ym9hcmRJc0F0dGFjaGVkOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYlBhZ2UvbWFjL1dlYlBhZ2VNYWMubW0gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViUGFnZS9tYWMvV2ViUGFnZU1hYy5tbQppbmRleCA1YWViNGIxNTM3ZDMzNDIxMTZjYTIxYTU1
NTM1M2M0YWFlYzAwZTU3Li5iODJmODBlMGUyNzBhMDQzOTIwNDI1NTZlOWU1OGFmN2RmZjAzODAz
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvV2ViUGFn
ZU1hYy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvV2ViUGFn
ZU1hYy5tbQpAQCAtODMsNiArODMsNyBAQAogI2ltcG9ydCA8V2ViQ29yZS9QYWdlT3ZlcmxheUNv
bnRyb2xsZXIuaD4KICNpbXBvcnQgPFdlYkNvcmUvUGxhdGZvcm1LZXlib2FyZEV2ZW50Lmg+CiAj
aW1wb3J0IDxXZWJDb3JlL1BsdWdpbkRvY3VtZW50Lmg+CisjaW1wb3J0IDxXZWJDb3JlL1BvaW50
ZXJDaGFyYWN0ZXJpc3RpY3MuaD4KICNpbXBvcnQgPFdlYkNvcmUvUmVuZGVyRWxlbWVudC5oPgog
I2ltcG9ydCA8V2ViQ29yZS9SZW5kZXJPYmplY3QuaD4KICNpbXBvcnQgPFdlYkNvcmUvUmVuZGVy
U3R5bGUuaD4KQEAgLTgzMCw2ICs4MzEsMTYgQEAgU3RyaW5nIFdlYlBhZ2U6OnBsYXRmb3JtVXNl
ckFnZW50KGNvbnN0IFVSTCYpIGNvbnN0CiAgICAgcmV0dXJuIFN0cmluZygpOwogfQogCitib29s
IFdlYlBhZ2U6OmhvdmVyU3VwcG9ydGVkQnlBbnlBdmFpbGFibGVQb2ludGluZ0RldmljZSgpIGNv
bnN0Cit7CisgICAgcmV0dXJuIHRydWU7Cit9CisKK09wdGlvblNldDxQb2ludGVyQ2hhcmFjdGVy
aXN0aWNzPiBXZWJQYWdlOjpwb2ludGVyQ2hhcmFjdGVyaXN0aWNzT2ZBbGxBdmFpbGFibGVQb2lu
dGluZ0RldmljZXMoKSBjb25zdAoreworICAgIHJldHVybiBQb2ludGVyQ2hhcmFjdGVyaXN0aWNz
OjpGaW5lOworfQorCiB2b2lkIFdlYlBhZ2U6OnBlcmZvcm1JbW1lZGlhdGVBY3Rpb25IaXRUZXN0
QXRMb2NhdGlvbihXZWJDb3JlOjpGbG9hdFBvaW50IGxvY2F0aW9uSW5WaWV3Q29vcmRpbmF0ZXMp
CiB7CiAgICAgbGF5b3V0SWZOZWVkZWQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJQYWdlL3BsYXlzdGF0aW9uL1dlYlBhZ2VQbGF5U3RhdGlvbi5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9wbGF5c3RhdGlvbi9XZWJQYWdlUGxheVN0YXRp
b24uY3BwCmluZGV4IGNiZGE0OGM3ZDY1YjFhNjgyNjZjYjYyNjhlMGY3ZTFmMmFlYTU1ODYuLjcy
NmU5MjMzYzUxYjMxYzZlNDZmZjEyNWI0ZTVmZWYzMzY4NzczZTkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL3BsYXlzdGF0aW9uL1dlYlBhZ2VQbGF5U3RhdGlv
bi5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvcGxheXN0YXRpb24v
V2ViUGFnZVBsYXlTdGF0aW9uLmNwcApAQCAtMjcsNiArMjcsNyBAQAogI2luY2x1ZGUgIldlYlBh
Z2UuaCIKIAogI2luY2x1ZGUgPFdlYkNvcmUvTm90SW1wbGVtZW50ZWQuaD4KKyNpbmNsdWRlIDxX
ZWJDb3JlL1BvaW50ZXJDaGFyYWN0ZXJpc3RpY3MuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1NldHRp
bmdzLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Vc2VyQWdlbnQuaD4KIApAQCAtNjUsNiArNjYsMTYg
QEAgU3RyaW5nIFdlYlBhZ2U6OnBsYXRmb3JtVXNlckFnZW50KGNvbnN0IFVSTCYgdXJsKSBjb25z
dAogICAgIHJldHVybiBXZWJDb3JlOjpzdGFuZGFyZFVzZXJBZ2VudEZvclVSTCh1cmwpOwogfQog
Citib29sIFdlYlBhZ2U6OmhvdmVyU3VwcG9ydGVkQnlBbnlBdmFpbGFibGVQb2ludGluZ0Rldmlj
ZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIHRydWU7Cit9CisKK09wdGlvblNldDxQb2ludGVyQ2hh
cmFjdGVyaXN0aWNzPiBXZWJQYWdlOjpwb2ludGVyQ2hhcmFjdGVyaXN0aWNzT2ZBbGxBdmFpbGFi
bGVQb2ludGluZ0RldmljZXMoKSBjb25zdAoreworICAgIHJldHVybiBQb2ludGVyQ2hhcmFjdGVy
aXN0aWNzOjpGaW5lOworfQorCiBib29sIFdlYlBhZ2U6OmhhbmRsZUVkaXRpbmdLZXlib2FyZEV2
ZW50KFdlYkNvcmU6OktleWJvYXJkRXZlbnQmIGV2ZW50KQogewogICAgIG5vdEltcGxlbWVudGVk
KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS93aW4vV2Vi
UGFnZVdpbi5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS93aW4vV2ViUGFn
ZVdpbi5jcHAKaW5kZXggMjg5M2VkM2YzYjhjOWMyODQ3MmI4YWFmN2EzOTllMjU3YmY4YzUyZC4u
ZWRhZDdkNTAzN2QxZTQwOGMwMzk0ZjM1MTVmNzg4ZjhlNGQ2ZGRkNCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2Uvd2luL1dlYlBhZ2VXaW4uY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL3dpbi9XZWJQYWdlV2luLmNwcApAQCAtNDMs
NiArNDMsNyBAQAogI2luY2x1ZGUgPFdlYkNvcmUvTm90SW1wbGVtZW50ZWQuaD4KICNpbmNsdWRl
IDxXZWJDb3JlL1BhZ2UuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1BsYXRmb3JtS2V5Ym9hcmRFdmVu
dC5oPgorI2luY2x1ZGUgPFdlYkNvcmUvUG9pbnRlckNoYXJhY3RlcmlzdGljcy5oPgogI2luY2x1
ZGUgPFdlYkNvcmUvU2V0dGluZ3MuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1NoYXJlZEJ1ZmZlci5o
PgogI2luY2x1ZGUgPFdlYkNvcmUvVXNlckFnZW50Lmg+CkBAIC0xMTUsNiArMTE2LDE2IEBAIFN0
cmluZyBXZWJQYWdlOjpwbGF0Zm9ybVVzZXJBZ2VudChjb25zdCBVUkwmKSBjb25zdAogICAgIHJl
dHVybiB7IH07CiB9CiAKK2Jvb2wgV2ViUGFnZTo6aG92ZXJTdXBwb3J0ZWRCeUFueUF2YWlsYWJs
ZVBvaW50aW5nRGV2aWNlKCkgY29uc3QKK3sKKyAgICByZXR1cm4gdHJ1ZTsKK30KKworT3B0aW9u
U2V0PFBvaW50ZXJDaGFyYWN0ZXJpc3RpY3M+IFdlYlBhZ2U6OnBvaW50ZXJDaGFyYWN0ZXJpc3Rp
Y3NPZkFsbEF2YWlsYWJsZVBvaW50aW5nRGV2aWNlcygpIGNvbnN0Cit7CisgICAgcmV0dXJuIFBv
aW50ZXJDaGFyYWN0ZXJpc3RpY3M6OkZpbmU7Cit9CisKIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBD
dHJsS2V5ID0gMSA8PCAwOwogc3RhdGljIGNvbnN0IHVuc2lnbmVkIEFsdEtleSA9IDEgPDwgMTsK
IHN0YXRpYyBjb25zdCB1bnNpZ25lZCBTaGlmdEtleSA9IDEgPDwgMjsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL3dwZS9XZWJQYWdlV1BFLmNwcCBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL3dwZS9XZWJQYWdlV1BFLmNwcAppbmRleCBmOWZj
NDFhMWZiNjk3NmIxNmI3YTUzMjBhZWM5MmIxMWIzMDBkN2I2Li40YTU0MGEyNTA3OThkOWYyYWVk
YTlmMDJhMTAwYjYyOTU2MmJiN2Y4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViUGFnZS93cGUvV2ViUGFnZVdQRS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYlBhZ2Uvd3BlL1dlYlBhZ2VXUEUuY3BwCkBAIC0zMCw2ICszMCw4IEBACiAjaW5jbHVk
ZSAiV2ViUGFnZVByb3h5LmgiCiAjaW5jbHVkZSAiV2ViUGFnZVByb3h5TWVzc2FnZXMuaCIKICNp
bmNsdWRlIDxXZWJDb3JlL05vdEltcGxlbWVudGVkLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9QbGF0
Zm9ybVNjcmVlbi5oPgorI2luY2x1ZGUgPFdlYkNvcmUvUG9pbnRlckNoYXJhY3RlcmlzdGljcy5o
PgogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwpAQCAtNzMs
NCArNzUsMjIgQEAgU3RyaW5nIFdlYlBhZ2U6OnBsYXRmb3JtVXNlckFnZW50KGNvbnN0IFVSTCYp
IGNvbnN0CiAgICAgcmV0dXJuIFN0cmluZygpOwogfQogCitib29sIFdlYlBhZ2U6OmhvdmVyU3Vw
cG9ydGVkQnlBbnlBdmFpbGFibGVQb2ludGluZ0RldmljZSgpIGNvbnN0Cit7CisjaWYgRU5BQkxF
KFRPVUNIX0VWRU5UUykKKyAgICByZXR1cm4gIXNjcmVlbkhhc1RvdWNoRGV2aWNlKCk7CisjZWxz
ZQorICAgIHJldHVybiB0cnVlOworI2VuZGlmCit9CisKK09wdGlvblNldDxQb2ludGVyQ2hhcmFj
dGVyaXN0aWNzPiBXZWJQYWdlOjpwb2ludGVyQ2hhcmFjdGVyaXN0aWNzT2ZBbGxBdmFpbGFibGVQ
b2ludGluZ0RldmljZXMoKSBjb25zdAoreworI2lmIEVOQUJMRShUT1VDSF9FVkVOVFMpCisgICAg
aWYgKHNjcmVlbkhhc1RvdWNoRGV2aWNlKCkpCisgICAgICAgIHJldHVybiBQb2ludGVyQ2hhcmFj
dGVyaXN0aWNzOjpDb2Fyc2U7CisjZW5kaWYKKyAgICByZXR1cm4gUG9pbnRlckNoYXJhY3Rlcmlz
dGljczo6RmluZTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViUHJvY2Vzcy5jcHAKaW5kZXggNjEwZDM3NzkwOGNiNTBhMGEyMjk0MTE1ZGYwMzll
MGJlOTY0YTM5Yy4uNTllMDdiMDgwMWFmZjk3MGRmYzZhM2FlNTQxMDNmZDlmNzVhMGZkYiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcApAQCAtMTA1MCw2ICsxMDUwLDIw
IEBAIHZvaWQgV2ViUHJvY2Vzczo6bWVzc2FnZXNBdmFpbGFibGVGb3JQb3J0KGNvbnN0IE1lc3Nh
Z2VQb3J0SWRlbnRpZmllciYgaWRlbnRpZmllCiAgICAgTWVzc2FnZVBvcnQ6Om5vdGlmeU1lc3Nh
Z2VBdmFpbGFibGUoaWRlbnRpZmllcik7CiB9CiAKKyNpZiBIQVZFKFVJS0lUX1dJVEhfTU9VU0Vf
U1VQUE9SVCkgJiYgUExBVEZPUk0oSU9TKQorCit2b2lkIFdlYlByb2Nlc3M6OnNldEhhc01vdXNl
RGV2aWNlKGJvb2wgaGFzTW91c2VEZXZpY2UpCit7CisgICAgaWYgKGhhc01vdXNlRGV2aWNlID09
IG1faGFzTW91c2VEZXZpY2UpCisgICAgICAgIHJldHVybjsKKworICAgIG1faGFzTW91c2VEZXZp
Y2UgPSBoYXNNb3VzZURldmljZTsKKworICAgIFBhZ2U6OnVwZGF0ZVN0eWxlRm9yQWxsUGFnZXNB
ZnRlckdsb2JhbENoYW5nZUluRW52aXJvbm1lbnQoKTsKK30KKworI2VuZGlmIC8vIEhBVkUoVUlL
SVRfV0lUSF9NT1VTRV9TVVBQT1JUKSAmJiBQTEFURk9STShJT1MpCisKICNpZiBFTkFCTEUoR0FN
RVBBRCkKIAogdm9pZCBXZWJQcm9jZXNzOjpzZXRJbml0aWFsR2FtZXBhZHMoY29uc3QgVmVjdG9y
PFdlYktpdDo6R2FtZXBhZERhdGE+JiBnYW1lcGFkRGF0YXMpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYlByb2Nlc3MuaAppbmRleCA5ZDBkZGJmZDM4ZGUzODFkYzI1ZGJlYjk3ZDQ4NjllOTRmZGVi
ODI3Li5mM2UxOWFiNmFiMzJiZDBlYzY0Y2Q3Mjc3OTNmNGJjZDNlNGQ0OGY0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmgKQEAgLTE4Nyw2ICsxODcsMTEgQEAgcHVibGljOgog
CiAgICAgYm9vbCBmdWxsS2V5Ym9hcmRBY2Nlc3NFbmFibGVkKCkgY29uc3QgeyByZXR1cm4gbV9m
dWxsS2V5Ym9hcmRBY2Nlc3NFbmFibGVkOyB9CiAKKyNpZiBIQVZFKFVJS0lUX1dJVEhfTU9VU0Vf
U1VQUE9SVCkgJiYgUExBVEZPUk0oSU9TKQorICAgIGJvb2wgaGFzTW91c2VEZXZpY2UoKSBjb25z
dCB7IHJldHVybiBtX2hhc01vdXNlRGV2aWNlOyB9CisgICAgdm9pZCBzZXRIYXNNb3VzZURldmlj
ZShib29sKTsKKyNlbmRpZgorCiAgICAgV2ViRnJhbWUqIHdlYkZyYW1lKFdlYkNvcmU6OkZyYW1l
SWRlbnRpZmllcikgY29uc3Q7CiAgICAgVmVjdG9yPFdlYkZyYW1lKj4gd2ViRnJhbWVzKCkgY29u
c3Q7CiAgICAgdm9pZCBhZGRXZWJGcmFtZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIFdlYkZy
YW1lKik7CkBAIC01NTQsNiArNTU5LDEwIEBAIHByaXZhdGU6CiAKICAgICBib29sIG1fZnVsbEtl
eWJvYXJkQWNjZXNzRW5hYmxlZCB7IGZhbHNlIH07CiAKKyNpZiBIQVZFKFVJS0lUX1dJVEhfTU9V
U0VfU1VQUE9SVCkgJiYgUExBVEZPUk0oSU9TKQorICAgIGJvb2wgbV9oYXNNb3VzZURldmljZSB7
IGZhbHNlIH07CisjZW5kaWYKKwogICAgIEhhc2hNYXA8V2ViQ29yZTo6RnJhbWVJZGVudGlmaWVy
LCBXZWJGcmFtZSo+IG1fZnJhbWVNYXA7CiAKICAgICB0eXBlZGVmIEhhc2hNYXA8Y29uc3QgY2hh
ciosIHN0ZDo6dW5pcXVlX3B0cjxXZWJQcm9jZXNzU3VwcGxlbWVudD4sIFB0ckhhc2g8Y29uc3Qg
Y2hhcio+PiBXZWJQcm9jZXNzU3VwcGxlbWVudE1hcDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYlByb2Nlc3MubWVzc2FnZXMuaW4KaW5kZXggMDEyMzY3NTdhNWM1ZjBkMjgwYzZk
ZDFmOWExODE1MmJiY2YxOWMwNC4uMzcwMDE3OTk3OTMzMjkxNDYyZjYwZmQxNTg4MzgyYWY3NTU2
NGI5ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MubWVz
c2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MubWVzc2Fn
ZXMuaW4KQEAgLTUyLDYgKzUyLDEwIEBAIG1lc3NhZ2VzIC0+IFdlYlByb2Nlc3MgTGVnYWN5UmVj
ZWl2ZXIgTm90UmVmQ291bnRlZCB7CiAgICAgVXNlclByZWZlcnJlZExhbmd1YWdlc0NoYW5nZWQo
KQogICAgIEZ1bGxLZXlib2FyZEFjY2Vzc01vZGVDaGFuZ2VkKGJvb2wgZnVsbEtleWJvYXJkQWNj
ZXNzRW5hYmxlZCkKIAorI2lmIEhBVkUoVUlLSVRfV0lUSF9NT1VTRV9TVVBQT1JUKSAmJiBQTEFU
Rk9STShJT1MpCisgICAgU2V0SGFzTW91c2VEZXZpY2UoYm9vbCBoYXNNb3VzZURldmljZSkKKyNl
bmRpZgorCiAgICAgIyBQbHVnLWlucy4KICAgICBEaWRBZGRQbHVnSW5BdXRvU3RhcnRPcmlnaW5I
YXNoKHVpbnQzMl90IGhhc2gsIFdhbGxUaW1lIGV4cGlyYXRpb25UaW1lKQogICAgIFJlc2V0UGx1
Z0luQXV0b1N0YXJ0T3JpZ2luSGFzaGVzKEhhc2hNYXA8dWludDMyX3QsV2FsbFRpbWU+IGhhc2hl
cykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9XZWJQcm9jZXNz
Q29jb2EubW0gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvV2ViUHJvY2Vzc0NvY29h
Lm1tCmluZGV4IGY5NjQ5YWQ2OGViNDk3YmNiNDQ4OWU3N2EyZjFjZDNmMGUwM2RhYjAuLjYyOTU1
MjhjYjRiZjFmNWE5MTgzYTMyODY1OTIzNmYxMWIyZWRiYWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9XZWJQcm9jZXNzQ29jb2EubW0KKysrIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL2NvY29hL1dlYlByb2Nlc3NDb2NvYS5tbQpAQCAtMjk5LDYgKzI5OSwx
MCBAQCB2b2lkIFdlYlByb2Nlc3M6OnBsYXRmb3JtSW5pdGlhbGl6ZVdlYlByb2Nlc3MoV2ViUHJv
Y2Vzc0NyZWF0aW9uUGFyYW1ldGVycyYgcGFyYQogICAgICAgICB9KTsKICAgICB9CiAKKyNpZiBI
QVZFKFVJS0lUX1dJVEhfTU9VU0VfU1VQUE9SVCkgJiYgUExBVEZPUk0oSU9TKQorICAgIG1faGFz
TW91c2VEZXZpY2UgPSBwYXJhbWV0ZXJzLmhhc01vdXNlRGV2aWNlOworI2VuZGlmCisKICAgICBX
ZWJDb3JlOjpzZXRTY3JlZW5Qcm9wZXJ0aWVzKHBhcmFtZXRlcnMuc2NyZWVuUHJvcGVydGllcyk7
CiAKICNpZiBQTEFURk9STShNQUMpICYmIEVOQUJMRShXRUJQUk9DRVNTX1dJTkRPV1NFUlZFUl9C
TE9DS0lORykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvaW9zL1dlYkNvcmVTdXBw
b3J0L1dlYkNocm9tZUNsaWVudElPUy5oIGIvU291cmNlL1dlYktpdExlZ2FjeS9pb3MvV2ViQ29y
ZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50SU9TLmgKaW5kZXggYTkyYmFhNmIzMDU5ZGU4OTE0NWYw
M2IxYTU3NTdmOTcyYTk0MDk5OS4uMTkxYTBhZjlhNWViZmRiMTc4ZDY2MDE4NTY3OGE0MjJlZGU1
NTI0YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9pb3MvV2ViQ29yZVN1cHBvcnQv
V2ViQ2hyb21lQ2xpZW50SU9TLmgKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9pb3MvV2ViQ29y
ZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50SU9TLmgKQEAgLTUwLDYgKzUwLDkgQEAgcHJpdmF0ZToK
ICAgICB2b2lkIHJ1bk9wZW5QYW5lbChXZWJDb3JlOjpGcmFtZSYsIFdlYkNvcmU6OkZpbGVDaG9v
c2VyJikgZmluYWw7CiAgICAgdm9pZCBzaG93U2hhcmVTaGVldChXZWJDb3JlOjpTaGFyZURhdGFX
aXRoUGFyc2VkVVJMJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJikgZmluYWw7CiAK
KyAgICBib29sIGhvdmVyU3VwcG9ydGVkQnlBbnlBdmFpbGFibGVQb2ludGluZ0RldmljZSgpIGNv
bnN0IGZpbmFsIHsgcmV0dXJuIGZhbHNlOyB9CisgICAgT3B0aW9uU2V0PFdlYkNvcmU6OlBvaW50
ZXJDaGFyYWN0ZXJpc3RpY3M+IHBvaW50ZXJDaGFyYWN0ZXJpc3RpY3NPZkFsbEF2YWlsYWJsZVBv
aW50aW5nRGV2aWNlcygpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIFdlYkNvcmU6OlBvaW50ZXJDaGFy
YWN0ZXJpc3RpY3M6OkNvYXJzZTsgfQorCiAgICAgdm9pZCBzZXRDdXJzb3IoY29uc3QgV2ViQ29y
ZTo6Q3Vyc29yJikgZmluYWwgeyB9CiAgICAgdm9pZCBzZXRDdXJzb3JIaWRkZW5VbnRpbE1vdXNl
TW92ZXMoYm9vbCkgZmluYWwgeyB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kv
bWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oIGIvU291cmNlL1dlYktpdExlZ2Fj
eS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKaW5kZXggMjBiM2EwMjU2NmEy
ZTE3MjQ3YzBlYTUxNzc0OGE0NmI0NDA4YTY5ZC4uYzdjMWFkMjMxMDVhMDAxYzdjNzgzNTIwY2Qy
YmY2YTU5MmI3YjYxNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29y
ZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMv
V2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKQEAgLTE1OCw2ICsxNTgsOSBAQCBwcml2
YXRlOgogCiAgICAgV2ViQ29yZTo6S2V5Ym9hcmRVSU1vZGUga2V5Ym9hcmRVSU1vZGUoKSBmaW5h
bDsKIAorICAgIGJvb2wgaG92ZXJTdXBwb3J0ZWRCeUFueUF2YWlsYWJsZVBvaW50aW5nRGV2aWNl
KCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1ZTsgfQorICAgIE9wdGlvblNldDxXZWJDb3Jl
OjpQb2ludGVyQ2hhcmFjdGVyaXN0aWNzPiBwb2ludGVyQ2hhcmFjdGVyaXN0aWNzT2ZBbGxBdmFp
bGFibGVQb2ludGluZ0RldmljZXMoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBXZWJDb3JlOjpQ
b2ludGVyQ2hhcmFjdGVyaXN0aWNzOjpGaW5lOyB9CisKICAgICBOU1Jlc3BvbmRlciAqZmlyc3RS
ZXNwb25kZXIoKSBmaW5hbDsKICAgICB2b2lkIG1ha2VGaXJzdFJlc3BvbmRlcihOU1Jlc3BvbmRl
ciAqKSBmaW5hbDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViQ29y
ZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJD
b3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaAppbmRleCA3NjllZmIxM2RlNzExMmQ2ZjRkM2Nm
Y2MwNTYxYzU3MTQ4MjI5Y2FiLi44YzlkNjFjYmNkMDVmNGMzYjJjODBiY2EyN2UxYjk5NDYxMDUy
NDJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJDb3JlU3VwcG9ydC9X
ZWJDaHJvbWVDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJDb3JlU3Vw
cG9ydC9XZWJDaHJvbWVDbGllbnQuaApAQCAtOTQsNiArOTQsOSBAQCBwdWJsaWM6CiAKICAgICBX
ZWJDb3JlOjpLZXlib2FyZFVJTW9kZSBrZXlib2FyZFVJTW9kZSgpIGZpbmFsOwogCisgICAgYm9v
bCBob3ZlclN1cHBvcnRlZEJ5QW55QXZhaWxhYmxlUG9pbnRpbmdEZXZpY2UoKSBjb25zdCBmaW5h
bCB7IHJldHVybiB0cnVlOyB9CisgICAgT3B0aW9uU2V0PFdlYkNvcmU6OlBvaW50ZXJDaGFyYWN0
ZXJpc3RpY3M+IHBvaW50ZXJDaGFyYWN0ZXJpc3RpY3NPZkFsbEF2YWlsYWJsZVBvaW50aW5nRGV2
aWNlcygpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIFdlYkNvcmU6OlBvaW50ZXJDaGFyYWN0ZXJpc3Rp
Y3M6OkZpbmU7IH0KKwogICAgIHZvaWQgaW52YWxpZGF0ZVJvb3RWaWV3KGNvbnN0IFdlYkNvcmU6
OkludFJlY3QmKSBmaW5hbDsKICAgICB2b2lkIGludmFsaWRhdGVDb250ZW50c0FuZFJvb3RWaWV3
KGNvbnN0IFdlYkNvcmU6OkludFJlY3QmKSBmaW5hbDsKICAgICB2b2lkIGludmFsaWRhdGVDb250
ZW50c0ZvclNsb3dTY3JvbGwoY29uc3QgV2ViQ29yZTo6SW50UmVjdCYpIGZpbmFsOwpkaWZmIC0t
Z2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IDcxZTQ3Y2RmODZl
NGE1MGE0NjYwNGM0N2RmNTA0MWZhZDBiNGFhNmMuLmE4OTJjNDQ5Nzg3NDE3NjQwMTIzYjc3MDhm
ZWFhYTljNGM5MzU3NDggMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwyMyBAQAorMjAyMC0xMC0wNSAgRGV2aW4gUm91c3NvICA8ZHJv
dXNzb0BhcHBsZS5jb20+CisKKyAgICAgICAgQ1NTIGhvdmVyIGFuZCAicG9pbnRlcjogZmluZSIg
bWVkaWEgcXVlcmllcyBkbyBub3QgZXZhbHVhdGUgdG8gdHJ1ZSB3aXRoIGlPUyAxMy40IG1vdXNl
IHN1cHBvcnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIwOTI5MgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNjA2NjMxMjQ+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL2NvY29h
L1Rlc3RXS1dlYlZpZXcuaDoKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL2NvY29hL1Rlc3RXS1dl
YlZpZXcubW06CisgICAgICAgICgtW1Rlc3RXS1dlYlZpZXcgZXZhbHVhdGVNZWRpYVF1ZXJ5Ol0p
OiBBZGRlZC4KKyAgICAgICAgQ3JlYXRlIGhlbHBlciBmdW5jdGlvbiBmb3Igc3luY2hyb25vdXNs
eSB0ZXN0aW5nIG1lZGlhIHF1ZXJpZXMuCisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYktpdENvY29hL2lPU01vdXNlU3VwcG9ydC5tbToKKyAgICAgICAgKGlPU01vdXNlU3VwcG9y
dC5Nb3VzZUluaXRpYWxseURpc2Nvbm5lY3RlZCk6IEFkZGVkLgorICAgICAgICAoaU9TTW91c2VT
dXBwb3J0Lk1vdXNlSW5pdGlhbGx5Q29ubmVjdGVkKTogQWRkZWQuCisgICAgICAgIChpT1NNb3Vz
ZVN1cHBvcnQuTW91c2VMYXRlckRpc2Nvbm5lY3RlZCk6IEFkZGVkLgorICAgICAgICAoaU9TTW91
c2VTdXBwb3J0Lk1vdXNlTGF0ZXJDb25uZWN0ZWQpOiBBZGRlZC4KKyAgICAgICAgKGlPU01vdXNl
U3VwcG9ydC5Nb3VzZUFsd2F5c0Nvbm5lY3RlZCk6IEFkZGVkLgorCiAyMDIwLTEwLTA2ICBBZHJp
YW4gUGVyZXogZGUgQ2FzdHJvICA8YXBlcmV6QGlnYWxpYS5jb20+CiAKICAgICAgICAgUkVHUkVT
U0lPTihyMjY3Mzk5KTogW1dQRV0gQnVpbGQgYnJva2VuIHdpdGggRU5BQkxFX0FDQ0VTU0lCSUxJ
VFk9T0ZGCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29h
L2lPU01vdXNlU3VwcG9ydC5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29j
b2EvaU9TTW91c2VTdXBwb3J0Lm1tCmluZGV4IGMyNDMwYjIwZWY3NzZhZWExMzA5ZTkzMzhkNmUy
ZWEwY2Y1MGFhMTYuLjBiZjVmZDc3MTJlNTZlMjQzNjVhZTZhNTBhODQyZDZjZGRiYTU2YTAgMTAw
NjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvaU9TTW91c2VT
dXBwb3J0Lm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvaU9T
TW91c2VTdXBwb3J0Lm1tCkBAIC0zMDAsNCArMzAwLDE4NyBAQCBURVNUKGlPU01vdXNlU3VwcG9y
dCwgV2Vic2l0ZU1vdXNlRXZlbnRQb2xpY2llcykKIAogI2VuZGlmIC8vIEVOQUJMRShJT1NfVE9V
Q0hfRVZFTlRTKQogCisjaWYgSEFWRShVSUtJVF9XSVRIX01PVVNFX1NVUFBPUlQpCisKKyNpZiBQ
TEFURk9STShJT1MpCisKK0BpbnRlcmZhY2UgV0tNb3VzZURldmljZU9ic2VydmVyCisrIChXS01v
dXNlRGV2aWNlT2JzZXJ2ZXIgKilzaGFyZWRJbnN0YW5jZTsKKy0gKHZvaWQpc3RhcnQ7CistICh2
b2lkKV9zZXRIYXNNb3VzZURldmljZUZvclRlc3Rpbmc6KEJPT0wpaGFzTW91c2VEZXZpY2U7CitA
ZW5kCisKK1RFU1QoaU9TTW91c2VTdXBwb3J0LCBNb3VzZUluaXRpYWxseURpc2Nvbm5lY3RlZCkK
K3sKKyAgICBXS01vdXNlRGV2aWNlT2JzZXJ2ZXIgKm1vdXNlRGV2aWNlT2JzZXJ2ZXIgPSBbTlND
bGFzc0Zyb21TdHJpbmcoQCJXS01vdXNlRGV2aWNlT2JzZXJ2ZXIiKSBzaGFyZWRJbnN0YW5jZV07
CisgICAgW21vdXNlRGV2aWNlT2JzZXJ2ZXIgc3RhcnRdOworICAgIFttb3VzZURldmljZU9ic2Vy
dmVyIF9zZXRIYXNNb3VzZURldmljZUZvclRlc3Rpbmc6Tk9dOworCisgICAgYXV0byB3ZWJWaWV3
ID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6TlNNYWtlUmVj
dCgwLCAwLCA4MDAsIDYwMCldKTsKKworICAgIFt3ZWJWaWV3IHN5bmNocm9ub3VzbHlMb2FkSFRN
TFN0cmluZzpAIiJdOworCisjaWYgRU5BQkxFKFRPVUNIX0VWRU5UUykKKyAgICBFWFBFQ1RfRkFM
U0UoW3dlYlZpZXcgZXZhbHVhdGVNZWRpYVF1ZXJ5OkAiaG92ZXIiXSk7CisgICAgRVhQRUNUX1RS
VUUoW3dlYlZpZXcgZXZhbHVhdGVNZWRpYVF1ZXJ5OkAiaG92ZXI6IG5vbmUiXSk7CisgICAgRVhQ
RUNUX0ZBTFNFKFt3ZWJWaWV3IGV2YWx1YXRlTWVkaWFRdWVyeTpAImhvdmVyOiBob3ZlciJdKTsK
KyNlbmRpZgorCisgICAgRVhQRUNUX0ZBTFNFKFt3ZWJWaWV3IGV2YWx1YXRlTWVkaWFRdWVyeTpA
ImFueS1ob3ZlciJdKTsKKyAgICBFWFBFQ1RfVFJVRShbd2ViVmlldyBldmFsdWF0ZU1lZGlhUXVl
cnk6QCJhbnktaG92ZXI6IG5vbmUiXSk7CisgICAgRVhQRUNUX0ZBTFNFKFt3ZWJWaWV3IGV2YWx1
YXRlTWVkaWFRdWVyeTpAImFueS1ob3ZlcjogaG92ZXIiXSk7CisKKyNpZiBFTkFCTEUoVE9VQ0hf
RVZFTlRTKQorICAgIEVYUEVDVF9UUlVFKFt3ZWJWaWV3IGV2YWx1YXRlTWVkaWFRdWVyeTpAInBv
aW50ZXIiXSk7CisgICAgRVhQRUNUX0ZBTFNFKFt3ZWJWaWV3IGV2YWx1YXRlTWVkaWFRdWVyeTpA
InBvaW50ZXI6IG5vbmUiXSk7CisgICAgRVhQRUNUX1RSVUUoW3dlYlZpZXcgZXZhbHVhdGVNZWRp
YVF1ZXJ5OkAicG9pbnRlcjogY29hcnNlIl0pOworICAgIEVYUEVDVF9GQUxTRShbd2ViVmlldyBl
dmFsdWF0ZU1lZGlhUXVlcnk6QCJwb2ludGVyOiBmaW5lIl0pOworI2VuZGlmCisKKyAgICBFWFBF
Q1RfVFJVRShbd2ViVmlldyBldmFsdWF0ZU1lZGlhUXVlcnk6QCJhbnktcG9pbnRlciJdKTsKKyAg
ICBFWFBFQ1RfRkFMU0UoW3dlYlZpZXcgZXZhbHVhdGVNZWRpYVF1ZXJ5OkAiYW55LXBvaW50ZXI6
IG5vbmUiXSk7CisgICAgRVhQRUNUX1RSVUUoW3dlYlZpZXcgZXZhbHVhdGVNZWRpYVF1ZXJ5OkAi
YW55LXBvaW50ZXI6IGNvYXJzZSJdKTsKKyAgICBFWFBFQ1RfRkFMU0UoW3dlYlZpZXcgZXZhbHVh
dGVNZWRpYVF1ZXJ5OkAiYW55LXBvaW50ZXI6IGZpbmUiXSk7Cit9CisKK1RFU1QoaU9TTW91c2VT
dXBwb3J0LCBNb3VzZUluaXRpYWxseUNvbm5lY3RlZCkKK3sKKyAgICBXS01vdXNlRGV2aWNlT2Jz
ZXJ2ZXIgKm1vdXNlRGV2aWNlT2JzZXJ2ZXIgPSBbTlNDbGFzc0Zyb21TdHJpbmcoQCJXS01vdXNl
RGV2aWNlT2JzZXJ2ZXIiKSBzaGFyZWRJbnN0YW5jZV07CisgICAgW21vdXNlRGV2aWNlT2JzZXJ2
ZXIgc3RhcnRdOworICAgIFttb3VzZURldmljZU9ic2VydmVyIF9zZXRIYXNNb3VzZURldmljZUZv
clRlc3Rpbmc6WUVTXTsKKworICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJW
aWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5TTWFrZVJlY3QoMCwgMCwgODAwLCA2MDApXSk7CisK
KyAgICBbd2ViVmlldyBzeW5jaHJvbm91c2x5TG9hZEhUTUxTdHJpbmc6QCIiXTsKKworI2lmIEVO
QUJMRShUT1VDSF9FVkVOVFMpCisgICAgRVhQRUNUX0ZBTFNFKFt3ZWJWaWV3IGV2YWx1YXRlTWVk
aWFRdWVyeTpAImhvdmVyIl0pOworICAgIEVYUEVDVF9UUlVFKFt3ZWJWaWV3IGV2YWx1YXRlTWVk
aWFRdWVyeTpAImhvdmVyOiBub25lIl0pOworICAgIEVYUEVDVF9GQUxTRShbd2ViVmlldyBldmFs
dWF0ZU1lZGlhUXVlcnk6QCJob3ZlcjogaG92ZXIiXSk7CisjZW5kaWYKKworICAgIEVYUEVDVF9U
UlVFKFt3ZWJWaWV3IGV2YWx1YXRlTWVkaWFRdWVyeTpAImFueS1ob3ZlciJdKTsKKyAgICBFWFBF
Q1RfRkFMU0UoW3dlYlZpZXcgZXZhbHVhdGVNZWRpYVF1ZXJ5OkAiYW55LWhvdmVyOiBub25lIl0p
OworICAgIEVYUEVDVF9UUlVFKFt3ZWJWaWV3IGV2YWx1YXRlTWVkaWFRdWVyeTpAImFueS1ob3Zl
cjogaG92ZXIiXSk7CisKKyNpZiBFTkFCTEUoVE9VQ0hfRVZFTlRTKQorICAgIEVYUEVDVF9UUlVF
KFt3ZWJWaWV3IGV2YWx1YXRlTWVkaWFRdWVyeTpAInBvaW50ZXIiXSk7CisgICAgRVhQRUNUX0ZB
TFNFKFt3ZWJWaWV3IGV2YWx1YXRlTWVkaWFRdWVyeTpAInBvaW50ZXI6IG5vbmUiXSk7CisgICAg
RVhQRUNUX1RSVUUoW3dlYlZpZXcgZXZhbHVhdGVNZWRpYVF1ZXJ5OkAicG9pbnRlcjogY29hcnNl
Il0pOworICAgIEVYUEVDVF9GQUxTRShbd2ViVmlldyBldmFsdWF0ZU1lZGlhUXVlcnk6QCJwb2lu
dGVyOiBmaW5lIl0pOworI2VuZGlmCisKKyAgICBFWFBFQ1RfVFJVRShbd2ViVmlldyBldmFsdWF0
ZU1lZGlhUXVlcnk6QCJhbnktcG9pbnRlciJdKTsKKyAgICBFWFBFQ1RfRkFMU0UoW3dlYlZpZXcg
ZXZhbHVhdGVNZWRpYVF1ZXJ5OkAiYW55LXBvaW50ZXI6IG5vbmUiXSk7CisgICAgRVhQRUNUX1RS
VUUoW3dlYlZpZXcgZXZhbHVhdGVNZWRpYVF1ZXJ5OkAiYW55LXBvaW50ZXI6IGNvYXJzZSJdKTsK
KyAgICBFWFBFQ1RfVFJVRShbd2ViVmlldyBldmFsdWF0ZU1lZGlhUXVlcnk6QCJhbnktcG9pbnRl
cjogZmluZSJdKTsKK30KKworVEVTVChpT1NNb3VzZVN1cHBvcnQsIE1vdXNlTGF0ZXJEaXNjb25u
ZWN0ZWQpCit7CisgICAgV0tNb3VzZURldmljZU9ic2VydmVyICptb3VzZURldmljZU9ic2VydmVy
ID0gW05TQ2xhc3NGcm9tU3RyaW5nKEAiV0tNb3VzZURldmljZU9ic2VydmVyIikgc2hhcmVkSW5z
dGFuY2VdOworICAgIFttb3VzZURldmljZU9ic2VydmVyIHN0YXJ0XTsKKyAgICBbbW91c2VEZXZp
Y2VPYnNlcnZlciBfc2V0SGFzTW91c2VEZXZpY2VGb3JUZXN0aW5nOllFU107CisKKyAgICBhdXRv
IHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpO
U01ha2VSZWN0KDAsIDAsIDgwMCwgNjAwKV0pOworCisgICAgW3dlYlZpZXcgc3luY2hyb25vdXNs
eUxvYWRIVE1MU3RyaW5nOkAiIl07CisKKyAgICBbbW91c2VEZXZpY2VPYnNlcnZlciBfc2V0SGFz
TW91c2VEZXZpY2VGb3JUZXN0aW5nOk5PXTsKKworI2lmIEVOQUJMRShUT1VDSF9FVkVOVFMpCisg
ICAgRVhQRUNUX0ZBTFNFKFt3ZWJWaWV3IGV2YWx1YXRlTWVkaWFRdWVyeTpAImhvdmVyIl0pOwor
ICAgIEVYUEVDVF9UUlVFKFt3ZWJWaWV3IGV2YWx1YXRlTWVkaWFRdWVyeTpAImhvdmVyOiBub25l
Il0pOworICAgIEVYUEVDVF9GQUxTRShbd2ViVmlldyBldmFsdWF0ZU1lZGlhUXVlcnk6QCJob3Zl
cjogaG92ZXIiXSk7CisjZW5kaWYKKworICAgIEVYUEVDVF9GQUxTRShbd2ViVmlldyBldmFsdWF0
ZU1lZGlhUXVlcnk6QCJhbnktaG92ZXIiXSk7CisgICAgRVhQRUNUX1RSVUUoW3dlYlZpZXcgZXZh
bHVhdGVNZWRpYVF1ZXJ5OkAiYW55LWhvdmVyOiBub25lIl0pOworICAgIEVYUEVDVF9GQUxTRShb
d2ViVmlldyBldmFsdWF0ZU1lZGlhUXVlcnk6QCJhbnktaG92ZXI6IGhvdmVyIl0pOworCisjaWYg
RU5BQkxFKFRPVUNIX0VWRU5UUykKKyAgICBFWFBFQ1RfVFJVRShbd2ViVmlldyBldmFsdWF0ZU1l
ZGlhUXVlcnk6QCJwb2ludGVyIl0pOworICAgIEVYUEVDVF9GQUxTRShbd2ViVmlldyBldmFsdWF0
ZU1lZGlhUXVlcnk6QCJwb2ludGVyOiBub25lIl0pOworICAgIEVYUEVDVF9UUlVFKFt3ZWJWaWV3
IGV2YWx1YXRlTWVkaWFRdWVyeTpAInBvaW50ZXI6IGNvYXJzZSJdKTsKKyAgICBFWFBFQ1RfRkFM
U0UoW3dlYlZpZXcgZXZhbHVhdGVNZWRpYVF1ZXJ5OkAicG9pbnRlcjogZmluZSJdKTsKKyNlbmRp
ZgorCisgICAgRVhQRUNUX1RSVUUoW3dlYlZpZXcgZXZhbHVhdGVNZWRpYVF1ZXJ5OkAiYW55LXBv
aW50ZXIiXSk7CisgICAgRVhQRUNUX0ZBTFNFKFt3ZWJWaWV3IGV2YWx1YXRlTWVkaWFRdWVyeTpA
ImFueS1wb2ludGVyOiBub25lIl0pOworICAgIEVYUEVDVF9UUlVFKFt3ZWJWaWV3IGV2YWx1YXRl
TWVkaWFRdWVyeTpAImFueS1wb2ludGVyOiBjb2Fyc2UiXSk7CisgICAgRVhQRUNUX0ZBTFNFKFt3
ZWJWaWV3IGV2YWx1YXRlTWVkaWFRdWVyeTpAImFueS1wb2ludGVyOiBmaW5lIl0pOworfQorCitU
RVNUKGlPU01vdXNlU3VwcG9ydCwgTW91c2VMYXRlckNvbm5lY3RlZCkKK3sKKyAgICBXS01vdXNl
RGV2aWNlT2JzZXJ2ZXIgKm1vdXNlRGV2aWNlT2JzZXJ2ZXIgPSBbTlNDbGFzc0Zyb21TdHJpbmco
QCJXS01vdXNlRGV2aWNlT2JzZXJ2ZXIiKSBzaGFyZWRJbnN0YW5jZV07CisgICAgW21vdXNlRGV2
aWNlT2JzZXJ2ZXIgc3RhcnRdOworICAgIFttb3VzZURldmljZU9ic2VydmVyIF9zZXRIYXNNb3Vz
ZURldmljZUZvclRlc3Rpbmc6Tk9dOworCisgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1Rl
c3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6TlNNYWtlUmVjdCgwLCAwLCA4MDAsIDYw
MCldKTsKKworICAgIFt3ZWJWaWV3IHN5bmNocm9ub3VzbHlMb2FkSFRNTFN0cmluZzpAIiJdOwor
CisgICAgW21vdXNlRGV2aWNlT2JzZXJ2ZXIgX3NldEhhc01vdXNlRGV2aWNlRm9yVGVzdGluZzpZ
RVNdOworCisjaWYgRU5BQkxFKFRPVUNIX0VWRU5UUykKKyAgICBFWFBFQ1RfRkFMU0UoW3dlYlZp
ZXcgZXZhbHVhdGVNZWRpYVF1ZXJ5OkAiaG92ZXIiXSk7CisgICAgRVhQRUNUX1RSVUUoW3dlYlZp
ZXcgZXZhbHVhdGVNZWRpYVF1ZXJ5OkAiaG92ZXI6IG5vbmUiXSk7CisgICAgRVhQRUNUX0ZBTFNF
KFt3ZWJWaWV3IGV2YWx1YXRlTWVkaWFRdWVyeTpAImhvdmVyOiBob3ZlciJdKTsKKyNlbmRpZgor
CisgICAgRVhQRUNUX1RSVUUoW3dlYlZpZXcgZXZhbHVhdGVNZWRpYVF1ZXJ5OkAiYW55LWhvdmVy
Il0pOworICAgIEVYUEVDVF9GQUxTRShbd2ViVmlldyBldmFsdWF0ZU1lZGlhUXVlcnk6QCJhbnkt
aG92ZXI6IG5vbmUiXSk7CisgICAgRVhQRUNUX1RSVUUoW3dlYlZpZXcgZXZhbHVhdGVNZWRpYVF1
ZXJ5OkAiYW55LWhvdmVyOiBob3ZlciJdKTsKKworI2lmIEVOQUJMRShUT1VDSF9FVkVOVFMpCisg
ICAgRVhQRUNUX1RSVUUoW3dlYlZpZXcgZXZhbHVhdGVNZWRpYVF1ZXJ5OkAicG9pbnRlciJdKTsK
KyAgICBFWFBFQ1RfRkFMU0UoW3dlYlZpZXcgZXZhbHVhdGVNZWRpYVF1ZXJ5OkAicG9pbnRlcjog
bm9uZSJdKTsKKyAgICBFWFBFQ1RfVFJVRShbd2ViVmlldyBldmFsdWF0ZU1lZGlhUXVlcnk6QCJw
b2ludGVyOiBjb2Fyc2UiXSk7CisgICAgRVhQRUNUX0ZBTFNFKFt3ZWJWaWV3IGV2YWx1YXRlTWVk
aWFRdWVyeTpAInBvaW50ZXI6IGZpbmUiXSk7CisjZW5kaWYKKworICAgIEVYUEVDVF9UUlVFKFt3
ZWJWaWV3IGV2YWx1YXRlTWVkaWFRdWVyeTpAImFueS1wb2ludGVyIl0pOworICAgIEVYUEVDVF9G
QUxTRShbd2ViVmlldyBldmFsdWF0ZU1lZGlhUXVlcnk6QCJhbnktcG9pbnRlcjogbm9uZSJdKTsK
KyAgICBFWFBFQ1RfVFJVRShbd2ViVmlldyBldmFsdWF0ZU1lZGlhUXVlcnk6QCJhbnktcG9pbnRl
cjogY29hcnNlIl0pOworICAgIEVYUEVDVF9UUlVFKFt3ZWJWaWV3IGV2YWx1YXRlTWVkaWFRdWVy
eTpAImFueS1wb2ludGVyOiBmaW5lIl0pOworfQorCisjZW5kaWYgLy8gUExBVEZPUk0oSU9TKQor
CisjaWYgUExBVEZPUk0oTUFDQ0FUQUxZU1QpCisKK1RFU1QoaU9TTW91c2VTdXBwb3J0LCBNb3Vz
ZUFsd2F5c0Nvbm5lY3RlZCkKK3sKKyAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdL
V2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU01ha2VSZWN0KDAsIDAsIDgwMCwgNjAwKV0p
OworCisgICAgW3dlYlZpZXcgc3luY2hyb25vdXNseUxvYWRIVE1MU3RyaW5nOkAiIl07CisKKyNp
ZiBFTkFCTEUoVE9VQ0hfRVZFTlRTKQorICAgIEVYUEVDVF9GQUxTRShbd2ViVmlldyBldmFsdWF0
ZU1lZGlhUXVlcnk6QCJob3ZlciJdKTsKKyAgICBFWFBFQ1RfVFJVRShbd2ViVmlldyBldmFsdWF0
ZU1lZGlhUXVlcnk6QCJob3Zlcjogbm9uZSJdKTsKKyAgICBFWFBFQ1RfRkFMU0UoW3dlYlZpZXcg
ZXZhbHVhdGVNZWRpYVF1ZXJ5OkAiaG92ZXI6IGhvdmVyIl0pOworI2VuZGlmCisKKyAgICBFWFBF
Q1RfVFJVRShbd2ViVmlldyBldmFsdWF0ZU1lZGlhUXVlcnk6QCJhbnktaG92ZXIiXSk7CisgICAg
RVhQRUNUX0ZBTFNFKFt3ZWJWaWV3IGV2YWx1YXRlTWVkaWFRdWVyeTpAImFueS1ob3Zlcjogbm9u
ZSJdKTsKKyAgICBFWFBFQ1RfVFJVRShbd2ViVmlldyBldmFsdWF0ZU1lZGlhUXVlcnk6QCJhbnkt
aG92ZXI6IGhvdmVyIl0pOworCisjaWYgRU5BQkxFKFRPVUNIX0VWRU5UUykKKyAgICBFWFBFQ1Rf
VFJVRShbd2ViVmlldyBldmFsdWF0ZU1lZGlhUXVlcnk6QCJwb2ludGVyIl0pOworICAgIEVYUEVD
VF9GQUxTRShbd2ViVmlldyBldmFsdWF0ZU1lZGlhUXVlcnk6QCJwb2ludGVyOiBub25lIl0pOwor
ICAgIEVYUEVDVF9UUlVFKFt3ZWJWaWV3IGV2YWx1YXRlTWVkaWFRdWVyeTpAInBvaW50ZXI6IGNv
YXJzZSJdKTsKKyAgICBFWFBFQ1RfRkFMU0UoW3dlYlZpZXcgZXZhbHVhdGVNZWRpYVF1ZXJ5OkAi
cG9pbnRlcjogZmluZSJdKTsKKyNlbmRpZgorCisgICAgRVhQRUNUX1RSVUUoW3dlYlZpZXcgZXZh
bHVhdGVNZWRpYVF1ZXJ5OkAiYW55LXBvaW50ZXIiXSk7CisgICAgRVhQRUNUX0ZBTFNFKFt3ZWJW
aWV3IGV2YWx1YXRlTWVkaWFRdWVyeTpAImFueS1wb2ludGVyOiBub25lIl0pOworICAgIEVYUEVD
VF9UUlVFKFt3ZWJWaWV3IGV2YWx1YXRlTWVkaWFRdWVyeTpAImFueS1wb2ludGVyOiBjb2Fyc2Ui
XSk7CisgICAgRVhQRUNUX1RSVUUoW3dlYlZpZXcgZXZhbHVhdGVNZWRpYVF1ZXJ5OkAiYW55LXBv
aW50ZXI6IGZpbmUiXSk7Cit9CisKKyNlbmRpZiAvLyBQTEFURk9STShNQUNDQVRBTFlTVCkKKwor
I2VuZGlmIC8vIEhBVkUoVUlLSVRfV0lUSF9NT1VTRV9TVVBQT1JUKQorCiAjZW5kaWYgLy8gUExB
VEZPUk0oSU9TKSB8fCBQTEFURk9STShNQUNDQVRBTFlTVCkKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvY29jb2EvVGVzdFdLV2ViVmlldy5oIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9j
b2NvYS9UZXN0V0tXZWJWaWV3LmgKaW5kZXggMzc4OWYzY2IzMGU2ODc3NjU0N2I5ODIzYzJmZGU2
NDM0MjEzZmIxNi4uMjJhNDgyNmM0MTJiMjk0OTNlNWMzNGRkNGFlYzgzNDA3ZjFmOTMyOCAxMDA2
NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9jb2NvYS9UZXN0V0tXZWJWaWV3LmgKKysrIGIv
VG9vbHMvVGVzdFdlYktpdEFQSS9jb2NvYS9UZXN0V0tXZWJWaWV3LmgKQEAgLTYxLDYgKzYxLDcg
QEAKIC0gKHZvaWQpZXhwZWN0RWxlbWVudFRhZ3NJbk9yZGVyOihOU0FycmF5PE5TU3RyaW5nICo+
ICopdGFnTmFtZXM7CiAtICh2b2lkKWV4cGVjdEVsZW1lbnRDb3VudDooTlNJbnRlZ2VyKWNvdW50
IHF1ZXJ5U2VsZWN0b3I6KE5TU3RyaW5nICopcXVlcnlTZWxlY3RvcjsKIC0gKHZvaWQpZXhwZWN0
RWxlbWVudFRhZzooTlNTdHJpbmcgKil0YWdOYW1lIHRvQ29tZUJlZm9yZTooTlNTdHJpbmcgKilv
dGhlclRhZ05hbWU7CistIChCT09MKWV2YWx1YXRlTWVkaWFRdWVyeTooTlNTdHJpbmcgKilxdWVy
eTsKIC0gKE5TU3RyaW5nICopc3RyaW5nQnlFdmFsdWF0aW5nSmF2YVNjcmlwdDooTlNTdHJpbmcg
KilzY3JpcHQ7CiAtIChpZClvYmplY3RCeUV2YWx1YXRpbmdKYXZhU2NyaXB0V2l0aFVzZXJHZXN0
dXJlOihOU1N0cmluZyAqKXNjcmlwdDsKIC0gKGlkKW9iamVjdEJ5RXZhbHVhdGluZ0phdmFTY3Jp
cHQ6KE5TU3RyaW5nICopc2NyaXB0OwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9j
b2NvYS9UZXN0V0tXZWJWaWV3Lm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9jb2NvYS9UZXN0V0tX
ZWJWaWV3Lm1tCmluZGV4IDgxYjQ3MWMxYWVjOGQ3MjI1NmFmNzYzMzUzMzJjZmRhMTYyYTMzN2Iu
LjZjNGY0ZmVlOWU3OWRkMzczYTAzNjdlMTBkYTM3YjhlYWU0MzU3N2EgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvY29jb2EvVGVzdFdLV2ViVmlldy5tbQorKysgYi9Ub29scy9UZXN0
V2ViS2l0QVBJL2NvY29hL1Rlc3RXS1dlYlZpZXcubW0KQEAgLTE2MSw2ICsxNjEsMTEgQEAgLSAo
dm9pZClleHBlY3RFbGVtZW50VGFnOihOU1N0cmluZyAqKXRhZ05hbWUgdG9Db21lQmVmb3JlOihO
U1N0cmluZyAqKW90aGVyVGFnTmEKICAgICBbc2VsZiBleHBlY3RFbGVtZW50VGFnc0luT3JkZXI6
QFt0YWdOYW1lLCBvdGhlclRhZ05hbWVdXTsKIH0KIAorLSAoQk9PTClldmFsdWF0ZU1lZGlhUXVl
cnk6KE5TU3RyaW5nICopcXVlcnkKK3sKKyAgICByZXR1cm4gW1tzZWxmIG9iamVjdEJ5RXZhbHVh
dGluZ0phdmFTY3JpcHQ6W05TU3RyaW5nIHN0cmluZ1dpdGhGb3JtYXQ6QCJ3aW5kb3cubWF0Y2hN
ZWRpYShcIiglQClcIikubWF0Y2hlcyIsIHF1ZXJ5XV0gYm9vbFZhbHVlXTsKK30KKwogLSAoaWQp
b2JqZWN0QnlFdmFsdWF0aW5nSmF2YVNjcmlwdDooTlNTdHJpbmcgKilzY3JpcHQKIHsKICAgICBi
b29sIGlzV2FpdGluZ0ZvckphdmFTY3JpcHQgPSBmYWxzZTsKZGlmZiAtLWdpdCBhL1dlYktpdExp
YnJhcmllcy9DaGFuZ2VMb2cgYi9XZWJLaXRMaWJyYXJpZXMvQ2hhbmdlTG9nCmluZGV4IGRlNzJj
ZjBmNDQwMDMxNWNlNTViZmFhZDE3ZWE4MjQyMjdiNWIzODguLjAwMDY2OGZjOWI3NWVjMTM4MGUz
NDI1MGY1M2M0Nzc0MDlkNTRhYTIgMTAwNjQ0Ci0tLSBhL1dlYktpdExpYnJhcmllcy9DaGFuZ2VM
b2cKKysrIGIvV2ViS2l0TGlicmFyaWVzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDIw
LTEwLTA1ICBEZXZpbiBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNvbT4KKworICAgICAgICBDU1Mg
aG92ZXIgYW5kICJwb2ludGVyOiBmaW5lIiBtZWRpYSBxdWVyaWVzIGRvIG5vdCBldmFsdWF0ZSB0
byB0cnVlIHdpdGggaU9TIDEzLjQgbW91c2Ugc3VwcG9ydAorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA5MjkyCisgICAgICAgIDxyZGFyOi8vcHJvYmxl
bS82MDY2MzEyND4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICAqIFdlYktpdFByaXZhdGVGcmFtZXdvcmtTdHVicy9pT1MvMTMvQmFja0JvYXJkU2Vydmlj
ZXMuZnJhbWV3b3JrL0JhY2tCb2FyZFNlcnZpY2VzLnRiZDogQWRkZWQuCisgICAgICAgICogV2Vi
S2l0UHJpdmF0ZUZyYW1ld29ya1N0dWJzL2lPUy8xNC9CYWNrQm9hcmRTZXJ2aWNlcy5mcmFtZXdv
cmsvQmFja0JvYXJkU2VydmljZXMudGJkOiBBZGRlZC4KKyAgICAgICAgVXNlIGBCYWNrQm9hcmRT
ZXJ2aWNlc2AgdG8gbGlzdGVuIGZvciBtb3VzZSBkZXZpY2VzIGNoYW5nZXMuCisKIDIwMjAtMTAt
MDQgIFJ5YW4gSG9zdGV0bGVyICA8cmhvc3RAYXBwbGUuY29tPgogCiAgICAgICAgIFN1Ym1pc3Np
b24gZmFpbHVyZSB3aXRoICJtYWtlOiAqKiogTm8gcnVsZSB0byBtYWtlIHRhcmdldCBgaW5zdGFs
bHNyYycuIFN0b3AiCmRpZmYgLS1naXQgYS9XZWJLaXRMaWJyYXJpZXMvV2ViS2l0UHJpdmF0ZUZy
YW1ld29ya1N0dWJzL2lPUy8xMy9CYWNrQm9hcmRTZXJ2aWNlcy5mcmFtZXdvcmsvQmFja0JvYXJk
U2VydmljZXMudGJkIGIvV2ViS2l0TGlicmFyaWVzL1dlYktpdFByaXZhdGVGcmFtZXdvcmtTdHVi
cy9pT1MvMTMvQmFja0JvYXJkU2VydmljZXMuZnJhbWV3b3JrL0JhY2tCb2FyZFNlcnZpY2VzLnRi
ZApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi4wMDIzNDhiZDNlZTBlMTMzYTNkOTU4ZmJkZWM1N2ZmN2ZkYjNiN2Y3Ci0t
LSAvZGV2L251bGwKKysrIGIvV2ViS2l0TGlicmFyaWVzL1dlYktpdFByaXZhdGVGcmFtZXdvcmtT
dHVicy9pT1MvMTMvQmFja0JvYXJkU2VydmljZXMuZnJhbWV3b3JrL0JhY2tCb2FyZFNlcnZpY2Vz
LnRiZApAQCAtMCwwICsxLDkgQEAKKy0tLSAhdGFwaS10YmQtdjMKK2FyY2hzOiAgICAgICAgICAg
WyB4ODZfNjQsIGFybTY0LCBhcm02NGUgXQoraW5zdGFsbC1uYW1lOiAgICAnL1N5c3RlbS9MaWJy
YXJ5L1ByaXZhdGVGcmFtZXdvcmtzL0JhY2tCb2FyZFNlcnZpY2VzLmZyYW1ld29yay9CYWNrQm9h
cmRTZXJ2aWNlcycKK29iamMtY29uc3RyYWludDogbm9uZQorcGxhdGZvcm06IGlvcworZXhwb3J0
czoKKyAgLSBhcmNoczogICAgICAgICAgIFsgeDg2XzY0LCBhcm02NCwgYXJtNjRlIF0KKyAgICBv
YmpjLWNsYXNzZXM6ICAgIFsgQktTTW91c2VQb2ludGVyRGV2aWNlLCBCS1NNb3VzZVBvaW50ZXJT
ZXJ2aWNlIF0KKy4uLgpkaWZmIC0tZ2l0IGEvV2ViS2l0TGlicmFyaWVzL1dlYktpdFByaXZhdGVG
cmFtZXdvcmtTdHVicy9pT1MvMTQvQmFja0JvYXJkU2VydmljZXMuZnJhbWV3b3JrL0JhY2tCb2Fy
ZFNlcnZpY2VzLnRiZCBiL1dlYktpdExpYnJhcmllcy9XZWJLaXRQcml2YXRlRnJhbWV3b3JrU3R1
YnMvaU9TLzE0L0JhY2tCb2FyZFNlcnZpY2VzLmZyYW1ld29yay9CYWNrQm9hcmRTZXJ2aWNlcy50
YmQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uMDAyMzQ4YmQzZWUwZTEzM2EzZDk1OGZiZGVjNTdmZjdmZGIzYjdmNwot
LS0gL2Rldi9udWxsCisrKyBiL1dlYktpdExpYnJhcmllcy9XZWJLaXRQcml2YXRlRnJhbWV3b3Jr
U3R1YnMvaU9TLzE0L0JhY2tCb2FyZFNlcnZpY2VzLmZyYW1ld29yay9CYWNrQm9hcmRTZXJ2aWNl
cy50YmQKQEAgLTAsMCArMSw5IEBACistLS0gIXRhcGktdGJkLXYzCithcmNoczogICAgICAgICAg
IFsgeDg2XzY0LCBhcm02NCwgYXJtNjRlIF0KK2luc3RhbGwtbmFtZTogICAgJy9TeXN0ZW0vTGli
cmFyeS9Qcml2YXRlRnJhbWV3b3Jrcy9CYWNrQm9hcmRTZXJ2aWNlcy5mcmFtZXdvcmsvQmFja0Jv
YXJkU2VydmljZXMnCitvYmpjLWNvbnN0cmFpbnQ6IG5vbmUKK3BsYXRmb3JtOiBpb3MKK2V4cG9y
dHM6CisgIC0gYXJjaHM6ICAgICAgICAgICBbIHg4Nl82NCwgYXJtNjQsIGFybTY0ZSBdCisgICAg
b2JqYy1jbGFzc2VzOiAgICBbIEJLU01vdXNlUG9pbnRlckRldmljZSwgQktTTW91c2VQb2ludGVy
U2VydmljZSBdCisuLi4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>410681</attachid>
            <date>2020-10-06 12:48:01 -0700</date>
            <delta_ts>2020-10-06 14:37:48 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-209292-20201006124800.patch</filename>
            <type>text/plain</type>
            <size>78726</size>
            <attacher name="Devin Rousso">hi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCAxNjdkZTRmMGJmYjdlOThjYjJlNmU1YmNlNGM3NmM1ZTk5MWQ0OTk5Li42
YmZkMTYyM2JkMmZhZTZiOGQ4NTQ2MDQ5MjQ5Y2VkZDYzYzI4ZTYzIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsNDAgQEAKKzIwMjAtMTAtMDUgIERldmluIFJvdXNzbyAgPGRyb3Vzc29AYXBwbGUuY29t
PgorCisgICAgICAgIENTUyBob3ZlciBhbmQgInBvaW50ZXI6IGZpbmUiIG1lZGlhIHF1ZXJpZXMg
ZG8gbm90IGV2YWx1YXRlIHRvIHRydWUgd2l0aCBpT1MgMTMuNCBtb3VzZSBzdXBwb3J0CisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDkyOTIKKyAgICAg
ICAgPHJkYXI6Ly9wcm9ibGVtLzYwNjYzMTI0PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIE9uIGlPUywgdGhlIHByaW1hcnkgcG9pbnRlciB3aWxsIGFs
d2F5cyBiZSB0b3VjaCBpbnB1dCwgc28gdGhlIGBob3ZlcmAvYHBvaW50ZXJgIG1lZGlhIHF1ZXJ5
CisgICAgICAgIHNob3VsZCBuZXZlciBjaGFuZ2UuIElmIGEgbW91c2UgaXMgY29ubmVjdGVkLCBo
b3dldmVyLCBgYW55LWhvdmVyYC9gYW55LXBvaW50ZXJgIHNob3VsZAorICAgICAgICBjaGFuZ2Ug
YXMgbm93IHRoZXJlIGlzIGF0IGxlYXN0IG9uZSBkZXZpY2UgdGhhdCBzdXBwb3J0cyBgaG92ZXJg
L2BmaW5lYC4gTm90ZSB0aGF0IGluIHRoZQorICAgICAgICBjYXNlIG9mIGBhbnktcG9pbnRlcmAg
dGhpcyBtZWFucyB0aGF0IGJvdGggYGNvYXJzZWAgYW5kIGBmaW5lYCB3aWxsIGFwcGx5LiBDYXRh
bHlzdCBhc3N1bWVzCisgICAgICAgIHRoYXQgdGhlcmUgaXMgYWx3YXlzIGEgbW91c2UgY29ubmVj
dGVkLgorCisgICAgICAgIFNwZWM6IGh0dHBzOi8vZHJhZnRzLmNzc3dnLm9yZy9tZWRpYXF1ZXJp
ZXMtNC8jYW55LWlucHV0CisKKyAgICAgICAgKiBjc3MvTWVkaWFRdWVyeUV2YWx1YXRvci5jcHA6
CisgICAgICAgIChXZWJDb3JlOjphbnlIb3ZlckV2YWx1YXRlKToKKyAgICAgICAgKFdlYkNvcmU6
OmFueVBvaW50ZXJFdmFsdWF0ZSk6CisKKyAgICAgICAgKiBwYWdlL0Nocm9tZUNsaWVudC5oOgor
ICAgICAgICAqIGxvYWRlci9FbXB0eUNsaWVudHMuaDoKKyAgICAgICAgKFdlYkNvcmU6OkVtcHR5
Q2hyb21lQ2xpZW50Ojpob3ZlclN1cHBvcnRlZEJ5QW55QXZhaWxhYmxlUG9pbnRpbmdEZXZpY2Ug
Y29uc3QpOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkVtcHR5Q2hyb21lQ2xpZW50Ojpwb2lu
dGVyQ2hhcmFjdGVyaXN0aWNzT2ZBbGxBdmFpbGFibGVQb2ludGluZ0RldmljZXMgY29uc3QpOiBB
ZGRlZC4KKyAgICAgICAgUHJvdmlkZSBhIHdheSBmb3IgV2ViQ29yZSB0byBnZXQgdGhlIGN1cnJl
bnQgc3RhdGUgb2Ygd2hldGhlciB0aGVyZSBhcmUgYW55IG1vdXNlIGRldmljZXMuCisgICAgICAg
IFJlZmFjdG9yIGxvZ2ljIGluIGBhbnlIb3ZlckV2YWx1YXRlYCBhbmQgYGFueVBvaW50ZXJFdmFs
dWF0ZWAgdG8gbW92ZSBwbGF0Zm9ybSBjb2RlIGludG8gdGhlCisgICAgICAgIHJlc3BlY3RpdmUg
YFdlYktpdDo6V2ViUGFnZWAgZmlsZS4KKworICAgICAgICAqIHBhZ2UvUG9pbnRlckNoYXJhY3Rl
cmlzdGljcy5oOiBBZGRlZC4KKyAgICAgICAgRW51bSBmb3IgYENvYXJzZWAgYW5kIGBGaW5lYC4K
KworICAgICAgICAqIHBsYXRmb3JtL1BsYXRmb3JtU2NyZWVuLmg6CisgICAgICAgIEV4cG9ydCBh
ZGRpdGlvbmFsIGZ1bmN0aW9ucyBmb3IgdXNlIGluIFdlYktpdC4KKworICAgICAgICAqIEhlYWRl
cnMuY21ha2U6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgor
CiAyMDIwLTEwLTA2ICBMdW1pbmcgWWluICA8bHVtaW5nX3lpbkBhcHBsZS5jb20+CiAKICAgICAg
ICAgW21hY09TXSBCdW1wIHJlcG9ydGVkIGN1cnJlbnQgc2hpcHBpbmcgcmVsZWFzZSBVQSB0byAx
MF8xNV83CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCmluZGV4IDQwMzRlZmMyZWM2MDNmYWI1N2NiYTI4MmJlNDc0NTVlMGIxMjE2
ZDQuLmRhMWU4ZDBkOGY3Y2YwYmNjNmFlYWM3NjljNDk0ZTQ5YTJkODM3ZDkgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsOTYgQEAKKzIwMjAtMTAtMDUgIERldmluIFJvdXNzbyAgPGRyb3Vzc29AYXBwbGUu
Y29tPgorCisgICAgICAgIENTUyBob3ZlciBhbmQgInBvaW50ZXI6IGZpbmUiIG1lZGlhIHF1ZXJp
ZXMgZG8gbm90IGV2YWx1YXRlIHRvIHRydWUgd2l0aCBpT1MgMTMuNCBtb3VzZSBzdXBwb3J0Cisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDkyOTIKKyAg
ICAgICAgPHJkYXI6Ly9wcm9ibGVtLzYwNjYzMTI0PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIE9uIGlPUywgdGhlIHByaW1hcnkgcG9pbnRlciB3aWxs
IGFsd2F5cyBiZSB0b3VjaCBpbnB1dCwgc28gdGhlIGBob3ZlcmAvYHBvaW50ZXJgIG1lZGlhIHF1
ZXJ5CisgICAgICAgIHNob3VsZCBuZXZlciBjaGFuZ2UuIElmIGEgbW91c2UgaXMgY29ubmVjdGVk
LCBob3dldmVyLCBgYW55LWhvdmVyYC9gYW55LXBvaW50ZXJgIHNob3VsZAorICAgICAgICBjaGFu
Z2UgYXMgbm93IHRoZXJlIGlzIGF0IGxlYXN0IG9uZSBkZXZpY2UgdGhhdCBzdXBwb3J0cyBgaG92
ZXJgL2BmaW5lYC4gTm90ZSB0aGF0IGluIHRoZQorICAgICAgICBjYXNlIG9mIGBhbnktcG9pbnRl
cmAgdGhpcyBtZWFucyB0aGF0IGJvdGggYGNvYXJzZWAgYW5kIGBmaW5lYCB3aWxsIGFwcGx5LiBD
YXRhbHlzdCBhc3N1bWVzCisgICAgICAgIHRoYXQgdGhlcmUgaXMgYWx3YXlzIGEgbW91c2UgY29u
bmVjdGVkLgorCisgICAgICAgIFNwZWM6IGh0dHBzOi8vZHJhZnRzLmNzc3dnLm9yZy9tZWRpYXF1
ZXJpZXMtNC8jYW55LWlucHV0CisKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dLTW91c2VEZXZp
Y2VPYnNlcnZlci5oOiBBZGRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dLTW91c2VEZXZp
Y2VPYnNlcnZlci5tbTogQWRkZWQuCisgICAgICAgICgrW1dLTW91c2VEZXZpY2VPYnNlcnZlciBz
aGFyZWRJbnN0YW5jZV0pOgorICAgICAgICAoLVtXS01vdXNlRGV2aWNlT2JzZXJ2ZXIgZGVhbGxv
Y10pOgorICAgICAgICAoLVtXS01vdXNlRGV2aWNlT2JzZXJ2ZXIgc3RhcnRdKToKKyAgICAgICAg
KC1bV0tNb3VzZURldmljZU9ic2VydmVyIHN0b3BdKToKKyAgICAgICAgKC1bV0tNb3VzZURldmlj
ZU9ic2VydmVyIG1vdXNlUG9pbnRlckRldmljZXNEaWRDaGFuZ2U6XSk6CisgICAgICAgICgtW1dL
TW91c2VEZXZpY2VPYnNlcnZlciBfc2V0SGFzTW91c2VEZXZpY2VGb3JUZXN0aW5nOl0pOgorICAg
ICAgICBVc2UgYEJhY2tCb2FyZFNlcnZpY2VzYCB0byBsaXN0ZW4gZm9yIG1vdXNlIGRldmljZXMg
Y2hhbmdlcyBhbmQgbm90aWZ5IGFsbCBXZWJQcm9jZXNzLgorCisgICAgICAgICogVUlQcm9jZXNz
L1dlYlByb2Nlc3NQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHku
Y3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUHJveHk6OldlYlByb2Nlc3NQcm94eSk6
CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQcm94eTo6cGxhdGZvcm1Jbml0aWFsaXplKTog
QWRkZWQuCisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQcm94eTo6fldlYlByb2Nlc3NQcm94
eSk6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQcm94eTo6cGxhdGZvcm1EZXN0cm95KTog
QWRkZWQuCisgICAgICAgICogVUlQcm9jZXNzL2lvcy9XZWJQcm9jZXNzUHJveHlJT1MubW06Cisg
ICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQcm94eTo6cGxhdGZvcm1Jbml0aWFsaXplKTogQWRk
ZWQuCisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQcm94eTo6cGxhdGZvcm1EZXN0cm95KTog
QWRkZWQuCisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQcm94eTo6bm90aWZ5SGFzTW91c2VE
ZXZpY2VDaGFuZ2VkKTogQWRkZWQuCisgICAgICAgIFRlbGwgdGhlIHNoYXJlZCBgV0tNb3VzZURl
dmljZU9ic2VydmVyYCB0byBzdGFydCBsaXN0ZW5pbmcgZm9yIG1vdXNlIGRldmljZSBjaGFuZ2Vz
IHdoZW4KKyAgICAgICAgY3JlYXRpbmcgdGhlIFdlYlByb2Nlc3Mgc28gdGhhdCB0aGUgc2hhcmVk
IGBXS01vdXNlRGV2aWNlT2JzZXJ2ZXJgIGtub3dzIHRvIG5vdGlmeSBhbGwKKyAgICAgICAgaW5z
dGFuY2VzIHdoZW4gbW91c2UgZGV2aWNlcyBjaGFuZ2UuIE1ha2UgYGFsbFByb2Nlc3Nlc2AgaW50
byBhIGBwcml2YXRlIHN0YXRpY2AgbWVtYmVyCisgICAgICAgIGZ1bmN0aW9uIHNvIHRoYXQgaXQg
Y2FuIGFsc28gYmUgdXNlZCBpbiBgVUlQcm9jZXNzL2lvcy9XZWJQcm9jZXNzUHJveHlJT1MubW1g
LgorCisgICAgICAgICogU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaDoKKyAg
ICAgICAgKiBTaGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHA6CisgICAgICAg
IChXZWJLaXQ6OldlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnM6OmVuY29kZSBjb25zdCk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnM6OmRlY29kZSk6Cisg
ICAgICAgICogVUlQcm9jZXNzL0NvY29hL1dlYlByb2Nlc3NQb29sQ29jb2EubW06CisgICAgICAg
IChXZWJLaXQ6OldlYlByb2Nlc3NQb29sOjpwbGF0Zm9ybUluaXRpYWxpemVXZWJQcm9jZXNzKToK
KyAgICAgICAgVXNlIHRoZSBjdXJyZW50IHN0YXRlIG9mIHRoZSBzaGFyZWQgYFdLTW91c2VEZXZp
Y2VPYnNlcnZlcmAgd2hlbiBjcmVhdGluZyBXZWJQcm9jZXNzIGluc3RlYWQKKyAgICAgICAgb2Yg
c2VuZGluZyBhIGBTZXRIYXNNb3VzZURldmljZWAgbWVzc2FnZSBpbW1lZGlhdGVseSBhZnRlciB0
aGUgV2ViUHJvY2VzcyBpcyBjcmVhdGVkLgorCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQcm9j
ZXNzLm1lc3NhZ2VzLmluOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oOgorICAg
ICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjpoYXNNb3VzZURldmljZSBjb25zdCk6IEFkZGVkLgor
ICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHA6CisgICAgICAgIChXZWJLaXQ6Oldl
YlByb2Nlc3M6OnNldEhhc01vdXNlRGV2aWNlKTogQWRkZWQuCisgICAgICAgICogV2ViUHJvY2Vz
cy9jb2NvYS9XZWJQcm9jZXNzQ29jb2EubW06CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6
OnBsYXRmb3JtSW5pdGlhbGl6ZVdlYlByb2Nlc3MpOgorICAgICAgICBVcGRhdGUgc3R5bGUgKGlu
Y2x1ZGluZyBgYW55LWhvdmVyYCBhbmQgYGFueS1wb2ludGVyYCkgd2hlbmV2ZXIgbW91c2UgZGV2
aWNlcyBjaGFuZ2UuCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNo
cm9tZUNsaWVudC5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hy
b21lQ2xpZW50LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViQ2hyb21lQ2xpZW50Ojpob3ZlclN1
cHBvcnRlZEJ5QW55QXZhaWxhYmxlUG9pbnRpbmdEZXZpY2UgY29uc3QpOiBBZGRlZC4KKyAgICAg
ICAgKFdlYktpdDo6V2ViQ2hyb21lQ2xpZW50Ojpwb2ludGVyQ2hhcmFjdGVyaXN0aWNzT2ZBbGxB
dmFpbGFibGVQb2ludGluZ0RldmljZXMgY29uc3QpOiBBZGRlZC4KKyAgICAgICAgKiBXZWJQcm9j
ZXNzL1dlYlBhZ2UvV2ViUGFnZS5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9ndGsv
V2ViUGFnZUd0ay5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OmhvdmVyU3VwcG9ydGVk
QnlBbnlBdmFpbGFibGVQb2ludGluZ0RldmljZSBjb25zdCk6IEFkZGVkLgorICAgICAgICAoV2Vi
S2l0OjpXZWJQYWdlOjpwb2ludGVyQ2hhcmFjdGVyaXN0aWNzT2ZBbGxBdmFpbGFibGVQb2ludGlu
Z0RldmljZXMgY29uc3QpOiBBZGRlZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvaW9z
L1dlYlBhZ2VJT1MubW06CisgICAgICAgIChXZWJLaXQ6Omhhc01vdXNlRGV2aWNlKTogQWRkZWQu
CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OmhvdmVyU3VwcG9ydGVkQnlBbnlBdmFpbGFibGVQ
b2ludGluZ0RldmljZSBjb25zdCk6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpw
b2ludGVyQ2hhcmFjdGVyaXN0aWNzT2ZBbGxBdmFpbGFibGVQb2ludGluZ0RldmljZXMgY29uc3Qp
OiBBZGRlZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1dlYlBhZ2VNYWMubW06
CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OmhvdmVyU3VwcG9ydGVkQnlBbnlBdmFpbGFibGVQ
b2ludGluZ0RldmljZSBjb25zdCk6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpw
b2ludGVyQ2hhcmFjdGVyaXN0aWNzT2ZBbGxBdmFpbGFibGVQb2ludGluZ0RldmljZXMgY29uc3Qp
OiBBZGRlZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvcGxheXN0YXRpb24vV2ViUGFn
ZVBsYXlTdGF0aW9uLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6aG92ZXJTdXBwb3J0
ZWRCeUFueUF2YWlsYWJsZVBvaW50aW5nRGV2aWNlIGNvbnN0KTogQWRkZWQuCisgICAgICAgIChX
ZWJLaXQ6OldlYlBhZ2U6OnBvaW50ZXJDaGFyYWN0ZXJpc3RpY3NPZkFsbEF2YWlsYWJsZVBvaW50
aW5nRGV2aWNlcyBjb25zdCk6IEFkZGVkLgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS93
aW4vV2ViUGFnZVdpbi5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OmhvdmVyU3VwcG9y
dGVkQnlBbnlBdmFpbGFibGVQb2ludGluZ0RldmljZSBjb25zdCk6IEFkZGVkLgorICAgICAgICAo
V2ViS2l0OjpXZWJQYWdlOjpwb2ludGVyQ2hhcmFjdGVyaXN0aWNzT2ZBbGxBdmFpbGFibGVQb2lu
dGluZ0RldmljZXMgY29uc3QpOiBBZGRlZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2Uv
d3BlL1dlYlBhZ2VXUEUuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpob3ZlclN1cHBv
cnRlZEJ5QW55QXZhaWxhYmxlUG9pbnRpbmdEZXZpY2UgY29uc3QpOiBBZGRlZC4KKyAgICAgICAg
KFdlYktpdDo6V2ViUGFnZTo6cG9pbnRlckNoYXJhY3RlcmlzdGljc09mQWxsQXZhaWxhYmxlUG9p
bnRpbmdEZXZpY2VzIGNvbnN0KTogQWRkZWQuCisgICAgICAgIFByb3ZpZGUgYSB3YXkgZm9yIFdl
YkNvcmUgdG8gZ2V0IHRoZSBjdXJyZW50IHN0YXRlIG9mIHdoZXRoZXIgdGhlcmUgYXJlIGFueSBt
b3VzZSBkZXZpY2VzLgorICAgICAgICBSZWZhY3RvciBsb2dpYyBpbiBgV2ViQ29yZTo6YW55SG92
ZXJFdmFsdWF0ZWAgYW5kIGBXZWJDb3JlOjphbnlQb2ludGVyRXZhbHVhdGVgIHRvIG1vdmUKKyAg
ICAgICAgcGxhdGZvcm0gY29kZSBpbnRvIHRoZSByZXNwZWN0aXZlIGBXZWJQYWdlYCBmaWxlLgor
CisgICAgICAgICogQ29uZmlndXJhdGlvbnMvV2ViS2l0LnhjY29uZmlnOgorICAgICAgICAqIFBs
YXRmb3JtL3NwaS9pb3MvQmFja0JvYXJkU2VydmljZXNTUEkuaDoKKyAgICAgICAgKiBQbGF0Zm9y
bS9zcGkvaW9zL0Jhc2VCb2FyZFNQSS5oOiBBZGRlZC4KKyAgICAgICAgKiBTb3VyY2VzQ29jb2Eu
dHh0OgorICAgICAgICAqIFdlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorCiAyMDIw
LTEwLTA2ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAogICAgICAgICBFbmFi
bGUgdmlkZW8gY2FwdHVyZSBpbiBXZWJQcm9jZXNzIGJ5IGRlZmF1bHQgb24gTWFjT1MKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvaW9zL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXRM
ZWdhY3kvaW9zL0NoYW5nZUxvZwppbmRleCAxMmU2NTViMWVjZGQ1ZDQ3MGYzZWE0MGZhYzc4MzVm
ZTFmNTdmYmZjLi4xOWFiZjg2N2U2NWZmZjU1ZWMxZjhkZTFlNDFkOGMxODYyNjZjNDM0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L2lvcy9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dl
YktpdExlZ2FjeS9pb3MvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMjAtMTAtMDUgIERl
dmluIFJvdXNzbyAgPGRyb3Vzc29AYXBwbGUuY29tPgorCisgICAgICAgIENTUyBob3ZlciBhbmQg
InBvaW50ZXI6IGZpbmUiIG1lZGlhIHF1ZXJpZXMgZG8gbm90IGV2YWx1YXRlIHRvIHRydWUgd2l0
aCBpT1MgMTMuNCBtb3VzZSBzdXBwb3J0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0yMDkyOTIKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzYwNjYzMTI0
PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2Vi
Q29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50SU9TLmg6CisgICAgICAgIChXZWJDaHJvbWVDbGll
bnRJT1M6OmhvdmVyU3VwcG9ydGVkQnlBbnlBdmFpbGFibGVQb2ludGluZ0RldmljZSBjb25zdCk6
IEFkZGVkLgorICAgICAgICAoV2ViQ2hyb21lQ2xpZW50SU9TOjpwb2ludGVyQ2hhcmFjdGVyaXN0
aWNzT2ZBbGxBdmFpbGFibGVQb2ludGluZ0RldmljZXMgY29uc3QpOiBBZGRlZC4KKyAgICAgICAg
TW91c2UgZGV2aWNlcyBhcmUgbm90IHN1cHBvcnRlZC4KKwogMjAyMC0wOS0yMCAgRGFyaW4gQWRs
ZXIgIDxkYXJpbkBhcHBsZS5jb20+CiAKICAgICAgICAgTmV4dCBzdGVwIHRvd2FyZHMgZWxpbWlu
YXRpbmcgZGVwcmVjYXRlZCBsZWdhY3kgcG9zaXRpb25zCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VM
b2cKaW5kZXggZDk0YWNkMmUzOGQyZjIwYzdiZjM3ZTNhNTllYTMyMjkxODQxNTIzOC4uZDNhNjU5
ZTgxM2JhYWUzM2U0MzY3YjkxNTFiNmQ0MzUzM2VjOWI3ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0No
YW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDIwLTEwLTA1ICBEZXZpbiBSb3Vzc28gIDxkcm91
c3NvQGFwcGxlLmNvbT4KKworICAgICAgICBDU1MgaG92ZXIgYW5kICJwb2ludGVyOiBmaW5lIiBt
ZWRpYSBxdWVyaWVzIGRvIG5vdCBldmFsdWF0ZSB0byB0cnVlIHdpdGggaU9TIDEzLjQgbW91c2Ug
c3VwcG9ydAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MjA5MjkyCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS82MDY2MzEyND4KKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkNo
cm9tZUNsaWVudC5oOgorICAgICAgICAoV2ViQ2hyb21lQ2xpZW50Ojpob3ZlclN1cHBvcnRlZEJ5
QW55QXZhaWxhYmxlUG9pbnRpbmdEZXZpY2UgY29uc3QpOiBBZGRlZC4KKyAgICAgICAgKFdlYkNo
cm9tZUNsaWVudDo6cG9pbnRlckNoYXJhY3RlcmlzdGljc09mQWxsQXZhaWxhYmxlUG9pbnRpbmdE
ZXZpY2VzIGNvbnN0KTogQWRkZWQuCisgICAgICAgIE1vdXNlIGRldmljZXMgYXJlIGFsd2F5cyBz
dXBwb3J0ZWQuCisKIDIwMjAtMTAtMDUgIFNpbW9uIEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBs
ZS5jb20+CiAKICAgICAgICAgVXNlIHRoZSAidHJpZ2dlclJlbmRlcmluZ1VwZGF0ZSIgdGVybWlu
b2xvZ3kgaW4gQ2hyb21lQ2xpZW50CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dp
bi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9DaGFuZ2VMb2cKaW5kZXggZGFh
ZDE0YzhmNzFiODMxYTkzMDVkZjYwNGE5NzhkODYyZmExZmUwYy4uMDgzZDc0M2RlMTc4NTBiMjUw
MzQ4ODJhNjIyNzdjYzUyYWM2ZmUzNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS93
aW4vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDE2IEBACisyMDIwLTEwLTA1ICBEZXZpbiBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNv
bT4KKworICAgICAgICBDU1MgaG92ZXIgYW5kICJwb2ludGVyOiBmaW5lIiBtZWRpYSBxdWVyaWVz
IGRvIG5vdCBldmFsdWF0ZSB0byB0cnVlIHdpdGggaU9TIDEzLjQgbW91c2Ugc3VwcG9ydAorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA5MjkyCisgICAg
ICAgIDxyZGFyOi8vcHJvYmxlbS82MDY2MzEyND4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5o
OgorICAgICAgICAoV2ViQ2hyb21lQ2xpZW50Ojpob3ZlclN1cHBvcnRlZEJ5QW55QXZhaWxhYmxl
UG9pbnRpbmdEZXZpY2UgY29uc3QpOiBBZGRlZC4KKyAgICAgICAgKFdlYkNocm9tZUNsaWVudDo6
cG9pbnRlckNoYXJhY3RlcmlzdGljc09mQWxsQXZhaWxhYmxlUG9pbnRpbmdEZXZpY2VzIGNvbnN0
KTogQWRkZWQuCisgICAgICAgIE1vdXNlIGRldmljZXMgYXJlIGFsd2F5cyBzdXBwb3J0ZWQuCisK
IDIwMjAtMTAtMDUgIFNpbW9uIEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CiAKICAg
ICAgICAgVXNlIHRoZSAidHJpZ2dlclJlbmRlcmluZ1VwZGF0ZSIgdGVybWlub2xvZ3kgaW4gQ2hy
b21lQ2xpZW50CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlIGIvU291
cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQppbmRleCAxZmI5NWM3ZDAwZGMwYjU3OTA0ODJmNWZm
ZDBhNDdmZjQyYWJhZDczLi4yM2I3MGE0MjcyYTk1MjExYzVlNTUxODNkMzExNjljYzAyZTZmNTU5
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL0hlYWRlcnMuY21ha2UKQEAgLTg1NCw2ICs4NTQsNyBAQCBzZXQoV2ViQ29yZV9QUklW
QVRFX0ZSQU1FV09SS19IRUFERVJTCiAgICAgcGFnZS9QZXJmb3JtYW5jZUxvZ2dpbmdDbGllbnQu
aAogICAgIHBhZ2UvUGx1Z0luQ2xpZW50LmgKICAgICBwYWdlL1BvaW50ZXJDYXB0dXJlQ29udHJv
bGxlci5oCisgICAgcGFnZS9Qb2ludGVyQ2hhcmFjdGVyaXN0aWNzLmgKICAgICBwYWdlL1BvaW50
ZXJMb2NrQ29udHJvbGxlci5oCiAgICAgcGFnZS9Qb3N0TWVzc2FnZU9wdGlvbnMuaAogICAgIHBh
Z2UvUHJld2FybUluZm9ybWF0aW9uLmgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBiZGI0YTkwYTY2N2ZiMzA1NjYxZWNmZDdhNjFm
MTlmMTk2OGRkOTc4Li5hNzk1NmE2Y2Q5MDE4YmExOTUxZTczYjM3ZmM2Nzk1MjAzY2NiMjcwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CkBAIC0yODU4LDYgKzI4NTgsNyBAQAogCQk5NEU4Mzk1NjFERkIyQkM0MDA3QkM2QTcgLyogSlND
U1NOYW1lc3BhY2VSdWxlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA5NEU4Mzk1NDFERkIyQkE2MDA3QkM2QTcgLyogSlNDU1NOYW1lc3BhY2VSdWxlLmgg
Ki87IH07CiAJCTk1MjA3NjA1MUYyNjc1RkUwMDdEMkFBQiAvKiBDYWxsVHJhY2VyLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5NTIwNzYwMTFGMjY3NUY5
MDA3RDJBQUIgLyogQ2FsbFRyYWNlci5oICovOyB9OwogCQk5NTIwNzYwNjFGMjY3NUZFMDA3RDJB
QUIgLyogQ2FsbFRyYWNlclR5cGVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA5NTIwNzYwMjFGMjY3NUY5MDA3RDJBQUIgLyogQ2FsbFRyYWNlclR5cGVz
LmggKi87IH07CisJCTk1REY5RDI1MjUyQkVEQjIwMDBEN0Y0NiAvKiBQb2ludGVyQ2hhcmFjdGVy
aXN0aWNzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5
NURGOUQyMzI1MkJFRDk5MDAwRDdGNDYgLyogUG9pbnRlckNoYXJhY3RlcmlzdGljcy5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTk3MDU5OTdBMTA3
RDk3NTIwMEE1MEE3QyAvKiBQb2xpY3lDaGVja2VyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5NzA1OTk3NjEwN0Q5NzUyMDBBNTBBN0MgLyogUG9saWN5
Q2hlY2tlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CiAJCTk3MEI3MjhBMTQ0RkZBQzYwMEYwMEEzNyAvKiBFdmVudEludGVyZmFjZXMuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk3MEI3Mjg5MTQ0RkZBQzYw
MEYwMEEzNyAvKiBFdmVudEludGVyZmFjZXMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9
IChQcml2YXRlLCApOyB9OyB9OwogCQk5NzBCNzJBNjE0NTAwOEVCMDBGMDBBMzcgLyogRXZlbnRI
ZWFkZXJzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5
NzBCNzJBNTE0NTAwOEVCMDBGMDBBMzcgLyogRXZlbnRIZWFkZXJzLmggKi87IH07CkBAIC0xMTQ2
MSw2ICsxMTQ2Miw3IEBACiAJCTk1MjA3NjAwMUYyNjc1RjkwMDdEMkFBQiAvKiBDYWxsVHJhY2Vy
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IENhbGxUcmFjZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk5NTIwNzYwMTFGMjY3NUY5MDA3RDJBQUIgLyogQ2FsbFRyYWNlci5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBDYWxsVHJhY2VyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTk1MjA3NjAyMUYyNjc1RjkwMDdEMkFBQiAvKiBDYWxsVHJhY2VyVHlwZXMuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gQ2FsbFRyYWNlclR5cGVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTk1
REY5RDIzMjUyQkVEOTkwMDBEN0Y0NiAvKiBQb2ludGVyQ2hhcmFjdGVyaXN0aWNzLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IFBvaW50ZXJDaGFyYWN0ZXJpc3RpY3MuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJOTZBQkE0MjIxNEJDQjgwRTAwRDU2MjA0IC8qIEdyYXBoaWNzQ29udGV4dEdMT3Bl
bkdMQ29tbW9uLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEdyYXBo
aWNzQ29udGV4dEdMT3BlbkdMQ29tbW9uLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJOTcwNTk5NzUxMDdEOTc1MjAwQTUwQTdDIC8qIFBvbGljeUNoZWNrZXIuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUG9saWN5Q2hlY2tlci5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTk3MDU5OTc2MTA3RDk3NTIwMEE1MEE3QyAvKiBQb2xpY3lD
aGVja2VyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBvbGljeUNoZWNrZXIu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTIxNzM0LDYgKzIxNzM2LDcgQEAKIAkJ
CQkzMUQ1OTFCMTE2Njk3QTZDMDBFNkJGMDIgLyogUGx1Z0luQ2xpZW50LmggKi8sCiAJCQkJNzFC
NUFCMjUyMUYxRDlFMzAwMzc2RTVDIC8qIFBvaW50ZXJDYXB0dXJlQ29udHJvbGxlci5jcHAgKi8s
CiAJCQkJNzFCNUFCMjQyMUYxRDlFMjAwMzc2RTVDIC8qIFBvaW50ZXJDYXB0dXJlQ29udHJvbGxl
ci5oICovLAorCQkJCTk1REY5RDIzMjUyQkVEOTkwMDBEN0Y0NiAvKiBQb2ludGVyQ2hhcmFjdGVy
aXN0aWNzLmggKi8sCiAJCQkJNUNGQzQzNEUxOTI0MDZBOTAwQTBEM0I1IC8qIFBvaW50ZXJMb2Nr
Q29udHJvbGxlci5jcHAgKi8sCiAJCQkJNUNGQzQzNEYxOTI0MDZBOTAwQTBEM0I1IC8qIFBvaW50
ZXJMb2NrQ29udHJvbGxlci5oICovLAogCQkJCTM3NzJCMDk1MTY1MzU4NTYwMDBBNDlDQSAvKiBQ
b3B1cE9wZW5pbmdPYnNlcnZlci5oICovLApAQCAtMzM0MjUsNiArMzM0MjgsNyBAQAogCQkJCUJD
QkI4QUJBMTNGMUFGQjAwMDczNERGMCAvKiBQT0RJbnRlcnZhbFRyZWUuaCBpbiBIZWFkZXJzICov
LAogCQkJCUJDQkI4QUJCMTNGMUFGQjAwMDczNERGMCAvKiBQT0RSZWRCbGFja1RyZWUuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTcxQjVBQjI2MjFGMUQ5RjQwMDM3NkU1QyAvKiBQb2ludGVyQ2FwdHVy
ZUNvbnRyb2xsZXIuaCBpbiBIZWFkZXJzICovLAorCQkJCTk1REY5RDI1MjUyQkVEQjIwMDBEN0Y0
NiAvKiBQb2ludGVyQ2hhcmFjdGVyaXN0aWNzLmggaW4gSGVhZGVycyAqLywKIAkJCQkzMTdEM0ZG
MzIxNTU5OUY0MDAzNEUzQjkgLyogUG9pbnRlckV2ZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlC
MkIxRjcxNzBEMDBDQUE4MDA0QUVBNjQgLyogUG9pbnRlckV2ZW50c0hpdFJ1bGVzLmggaW4gSGVh
ZGVycyAqLywKIAkJCQk3MUVBRENEODIyMDg3RTcyMDA2NUE0NUYgLyogUG9pbnRlcklELmggaW4g
SGVhZGVycyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5RXZh
bHVhdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5RXZhbHVhdG9yLmNwcApp
bmRleCA4MTE4YjdhYjNjNTBiM2NlZDgxMjBmYzEwNmRjZTljNzMxNDFhZmU0Li41OTdhMmQ2MTU4
NjkwM2VlZGZhM2ZiNjY0ZjNjZGJmMTAwNzM5MjY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9jc3MvTWVkaWFRdWVyeUV2YWx1YXRvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL01l
ZGlhUXVlcnlFdmFsdWF0b3IuY3BwCkBAIC0zMyw2ICszMyw4IEBACiAjaW5jbHVkZSAiQ1NTUHJp
bWl0aXZlVmFsdWUuaCIKICNpbmNsdWRlICJDU1NUb0xlbmd0aENvbnZlcnNpb25EYXRhLmgiCiAj
aW5jbHVkZSAiQ1NTVmFsdWVLZXl3b3Jkcy5oIgorI2luY2x1ZGUgIkNocm9tZS5oIgorI2luY2x1
ZGUgIkNocm9tZUNsaWVudC5oIgogI2luY2x1ZGUgIkZyYW1lLmgiCiAjaW5jbHVkZSAiRnJhbWVW
aWV3LmgiCiAjaW5jbHVkZSAiTG9nZ2luZy5oIgpAQCAtNzMwLDIyICs3MzIsMTYgQEAgc3RhdGlj
IGJvb2wgaG92ZXJFdmFsdWF0ZShDU1NWYWx1ZSogdmFsdWUsIGNvbnN0IENTU1RvTGVuZ3RoQ29u
dmVyc2lvbkRhdGEmLCBGcmEKICAgICByZXR1cm4ga2V5d29yZCA9PSBDU1NWYWx1ZUhvdmVyOwog
fQogCi1zdGF0aWMgYm9vbCBhbnlIb3ZlckV2YWx1YXRlKENTU1ZhbHVlKiB2YWx1ZSwgY29uc3Qg
Q1NTVG9MZW5ndGhDb252ZXJzaW9uRGF0YSYsIEZyYW1lJiwgTWVkaWFGZWF0dXJlUHJlZml4KQor
c3RhdGljIGJvb2wgYW55SG92ZXJFdmFsdWF0ZShDU1NWYWx1ZSogdmFsdWUsIGNvbnN0IENTU1Rv
TGVuZ3RoQ29udmVyc2lvbkRhdGEmLCBGcmFtZSYgZnJhbWUsIE1lZGlhRmVhdHVyZVByZWZpeCkK
IHsKLSAgICBpZiAoIWlzPENTU1ByaW1pdGl2ZVZhbHVlPih2YWx1ZSkpIHsKLSNpZiBFTkFCTEUo
VE9VQ0hfRVZFTlRTKQotICAgICAgICByZXR1cm4gIXNjcmVlbkhhc1RvdWNoRGV2aWNlKCk7Ci0j
ZWxzZQotICAgICAgICByZXR1cm4gdHJ1ZTsKLSNlbmRpZgotICAgIH0KKyAgICBhdXRvKiBwYWdl
ID0gZnJhbWUucGFnZSgpOworICAgIGJvb2wgaG92ZXJTdXBwb3J0ZWRCeUFueUF2YWlsYWJsZVBv
aW50aW5nRGV2aWNlID0gcGFnZSAmJiBwYWdlLT5jaHJvbWUoKS5jbGllbnQoKS5ob3ZlclN1cHBv
cnRlZEJ5QW55QXZhaWxhYmxlUG9pbnRpbmdEZXZpY2UoKTsKKworICAgIGlmICghaXM8Q1NTUHJp
bWl0aXZlVmFsdWU+KHZhbHVlKSkKKyAgICAgICAgcmV0dXJuIGhvdmVyU3VwcG9ydGVkQnlBbnlB
dmFpbGFibGVQb2ludGluZ0RldmljZTsKIAogICAgIGF1dG8ga2V5d29yZCA9IGRvd25jYXN0PENT
U1ByaW1pdGl2ZVZhbHVlPigqdmFsdWUpLnZhbHVlSUQoKTsKLSNpZiBFTkFCTEUoVE9VQ0hfRVZF
TlRTKQotICAgIGlmIChzY3JlZW5IYXNUb3VjaERldmljZSgpKQotICAgICAgICByZXR1cm4ga2V5
d29yZCA9PSBDU1NWYWx1ZU5vbmU7Ci0jZW5kaWYKLSAgICByZXR1cm4ga2V5d29yZCA9PSBDU1NW
YWx1ZUhvdmVyOworICAgIHJldHVybiBob3ZlclN1cHBvcnRlZEJ5QW55QXZhaWxhYmxlUG9pbnRp
bmdEZXZpY2UgPyAoa2V5d29yZCA9PSBDU1NWYWx1ZUhvdmVyKSA6IChrZXl3b3JkID09IENTU1Zh
bHVlTm9uZSk7CiB9CiAKIHN0YXRpYyBib29sIHBvaW50ZXJFdmFsdWF0ZShDU1NWYWx1ZSogdmFs
dWUsIGNvbnN0IENTU1RvTGVuZ3RoQ29udmVyc2lvbkRhdGEmLCBGcmFtZSYgZnJhbWUsIE1lZGlh
RmVhdHVyZVByZWZpeCkKQEAgLTc2NSwxNyArNzYxLDIyIEBAIHN0YXRpYyBib29sIHBvaW50ZXJF
dmFsdWF0ZShDU1NWYWx1ZSogdmFsdWUsIGNvbnN0IENTU1RvTGVuZ3RoQ29udmVyc2lvbkRhdGEm
LCBGCiAgICAgcmV0dXJuIGtleXdvcmQgPT0gQ1NTVmFsdWVGaW5lOwogfQogCi1zdGF0aWMgYm9v
bCBhbnlQb2ludGVyRXZhbHVhdGUoQ1NTVmFsdWUqIHZhbHVlLCBjb25zdCBDU1NUb0xlbmd0aENv
bnZlcnNpb25EYXRhJiwgRnJhbWUmLCBNZWRpYUZlYXR1cmVQcmVmaXgpCitzdGF0aWMgYm9vbCBh
bnlQb2ludGVyRXZhbHVhdGUoQ1NTVmFsdWUqIHZhbHVlLCBjb25zdCBDU1NUb0xlbmd0aENvbnZl
cnNpb25EYXRhJiwgRnJhbWUmIGZyYW1lLCBNZWRpYUZlYXR1cmVQcmVmaXgpCiB7CisgICAgYXV0
byogcGFnZSA9IGZyYW1lLnBhZ2UoKTsKKyAgICBhdXRvIHBvaW50ZXJDaGFyYWN0ZXJpc3RpY3NP
ZkFsbEF2YWlsYWJsZVBvaW50aW5nRGV2aWNlcyA9IHBhZ2UgPyBwYWdlLT5jaHJvbWUoKS5jbGll
bnQoKS5wb2ludGVyQ2hhcmFjdGVyaXN0aWNzT2ZBbGxBdmFpbGFibGVQb2ludGluZ0RldmljZXMo
KSA6IE9wdGlvblNldDxQb2ludGVyQ2hhcmFjdGVyaXN0aWNzPigpOworCiAgICAgaWYgKCFpczxD
U1NQcmltaXRpdmVWYWx1ZT4odmFsdWUpKQotICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAg
cmV0dXJuICFwb2ludGVyQ2hhcmFjdGVyaXN0aWNzT2ZBbGxBdmFpbGFibGVQb2ludGluZ0Rldmlj
ZXMuaXNFbXB0eSgpOwogCiAgICAgYXV0byBrZXl3b3JkID0gZG93bmNhc3Q8Q1NTUHJpbWl0aXZl
VmFsdWU+KCp2YWx1ZSkudmFsdWVJRCgpOwotI2lmIEVOQUJMRShUT1VDSF9FVkVOVFMpCi0gICAg
aWYgKHNjcmVlbkhhc1RvdWNoRGV2aWNlKCkpCi0gICAgICAgIHJldHVybiBrZXl3b3JkID09IENT
U1ZhbHVlQ29hcnNlOwotI2VuZGlmCi0gICAgcmV0dXJuIGtleXdvcmQgPT0gQ1NTVmFsdWVGaW5l
OworICAgIGlmIChrZXl3b3JkID09IENTU1ZhbHVlRmluZSkKKyAgICAgICAgcmV0dXJuIHBvaW50
ZXJDaGFyYWN0ZXJpc3RpY3NPZkFsbEF2YWlsYWJsZVBvaW50aW5nRGV2aWNlcy5jb250YWlucyhQ
b2ludGVyQ2hhcmFjdGVyaXN0aWNzOjpGaW5lKTsKKyAgICBpZiAoa2V5d29yZCA9PSBDU1NWYWx1
ZUNvYXJzZSkKKyAgICAgICAgcmV0dXJuIHBvaW50ZXJDaGFyYWN0ZXJpc3RpY3NPZkFsbEF2YWls
YWJsZVBvaW50aW5nRGV2aWNlcy5jb250YWlucyhQb2ludGVyQ2hhcmFjdGVyaXN0aWNzOjpDb2Fy
c2UpOworICAgIGlmIChrZXl3b3JkID09IENTU1ZhbHVlTm9uZSkKKyAgICAgICAgcmV0dXJuIHBv
aW50ZXJDaGFyYWN0ZXJpc3RpY3NPZkFsbEF2YWlsYWJsZVBvaW50aW5nRGV2aWNlcy5pc0VtcHR5
KCk7CisgICAgcmV0dXJuIGZhbHNlOwogfQogCiBzdGF0aWMgYm9vbCBwcmVmZXJzRGFya0ludGVy
ZmFjZUV2YWx1YXRlKENTU1ZhbHVlKiB2YWx1ZSwgY29uc3QgQ1NTVG9MZW5ndGhDb252ZXJzaW9u
RGF0YSYsIEZyYW1lJiBmcmFtZSwgTWVkaWFGZWF0dXJlUHJlZml4KQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVy
L0VtcHR5Q2xpZW50cy5oCmluZGV4IGExNWQ1NDQ4YmE4NjllNGJmZDZmOGQxNjlmYjFkNDM3ZjMw
ZmUyNmQuLjE2OTBjN2UyMjU0ZjBjMTg0MjhiYjU4NWIyYzhjNWQ1MDRiMjA0MWUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmgKQEAgLTEwMiw2ICsxMDIsOSBAQCBjbGFzcyBFbXB0
eUNocm9tZUNsaWVudCA6IHB1YmxpYyBDaHJvbWVDbGllbnQgewogCiAgICAgS2V5Ym9hcmRVSU1v
ZGUga2V5Ym9hcmRVSU1vZGUoKSBmaW5hbCB7IHJldHVybiBLZXlib2FyZEFjY2Vzc0RlZmF1bHQ7
IH0KIAorICAgIGJvb2wgaG92ZXJTdXBwb3J0ZWRCeUFueUF2YWlsYWJsZVBvaW50aW5nRGV2aWNl
KCkgY29uc3QgZmluYWwgeyByZXR1cm4gZmFsc2U7IH0KKyAgICBPcHRpb25TZXQ8UG9pbnRlckNo
YXJhY3RlcmlzdGljcz4gcG9pbnRlckNoYXJhY3RlcmlzdGljc09mQWxsQXZhaWxhYmxlUG9pbnRp
bmdEZXZpY2VzKCkgY29uc3QgZmluYWwgeyByZXR1cm4geyB9OyB9CisKICAgICB2b2lkIGludmFs
aWRhdGVSb290Vmlldyhjb25zdCBJbnRSZWN0JikgZmluYWwgeyB9CiAgICAgdm9pZCBpbnZhbGlk
YXRlQ29udGVudHNBbmRSb290Vmlldyhjb25zdCBJbnRSZWN0Jikgb3ZlcnJpZGUgeyB9CiAgICAg
dm9pZCBpbnZhbGlkYXRlQ29udGVudHNGb3JTbG93U2Nyb2xsKGNvbnN0IEludFJlY3QmKSBmaW5h
bCB7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmggYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVudC5oCmluZGV4IGE3ZTJmNDEwMTc3NmFhNjE2
MjgyZmI0NDYwYTdjMzYxMDk0OWNlYTEuLmE5MWYwNTUxZTlkMWZmMDM3NTQ4N2QzN2UyNGRjODg4
OTE3MzBmODcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaApAQCAtMzksNiArMzksNyBA
QAogI2luY2x1ZGUgIkltYWdlQnVmZmVyLmgiCiAjaW5jbHVkZSAiSW5wdXRNb2RlLmgiCiAjaW5j
bHVkZSAiTWVkaWFQcm9kdWNlci5oIgorI2luY2x1ZGUgIlBvaW50ZXJDaGFyYWN0ZXJpc3RpY3Mu
aCIKICNpbmNsdWRlICJQb3B1cE1lbnUuaCIKICNpbmNsdWRlICJQb3B1cE1lbnVDbGllbnQuaCIK
ICNpbmNsdWRlICJSZWdpc3RyYWJsZURvbWFpbi5oIgpAQCAtMTc4LDYgKzE3OSw5IEBAIHB1Ymxp
YzoKICAgICB2aXJ0dWFsIHZvaWQgc2V0U3RhdHVzYmFyVGV4dChjb25zdCBTdHJpbmcmKSA9IDA7
CiAgICAgdmlydHVhbCBLZXlib2FyZFVJTW9kZSBrZXlib2FyZFVJTW9kZSgpID0gMDsKIAorICAg
IHZpcnR1YWwgYm9vbCBob3ZlclN1cHBvcnRlZEJ5QW55QXZhaWxhYmxlUG9pbnRpbmdEZXZpY2Uo
KSBjb25zdCA9IDA7CisgICAgdmlydHVhbCBPcHRpb25TZXQ8UG9pbnRlckNoYXJhY3RlcmlzdGlj
cz4gcG9pbnRlckNoYXJhY3RlcmlzdGljc09mQWxsQXZhaWxhYmxlUG9pbnRpbmdEZXZpY2VzKCkg
Y29uc3QgPSAwOworCiAgICAgdmlydHVhbCBib29sIHN1cHBvcnRzSW1tZWRpYXRlSW52YWxpZGF0
aW9uKCkgeyByZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0dWFsIHZvaWQgaW52YWxpZGF0ZVJvb3RW
aWV3KGNvbnN0IEludFJlY3QmKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGludmFsaWRhdGVDb250
ZW50c0FuZFJvb3RWaWV3KGNvbnN0IEludFJlY3QmKSA9IDA7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL1BvaW50ZXJDaGFyYWN0ZXJpc3RpY3MuaCBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvUG9pbnRlckNoYXJhY3RlcmlzdGljcy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjEzNmMzMTdhZjRmY2E5OWUx
NTk2YTZhZDJiNTRjNTMwMWQzYjlkYzkKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL1BvaW50ZXJDaGFyYWN0ZXJpc3RpY3MuaApAQCAtMCwwICsxLDM1IEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJ
UycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRP
UlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1Mg
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisg
KiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKK25h
bWVzcGFjZSBXZWJDb3JlIHsKKworZW51bSBjbGFzcyBQb2ludGVyQ2hhcmFjdGVyaXN0aWNzIDog
dWludDhfdCB7CisgICAgQ29hcnNlID0gMSA8PCAwLAorICAgIEZpbmUgPSAxIDw8IDEsCit9Owor
Cit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9QbGF0Zm9ybVNjcmVlbi5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGxhdGZvcm1T
Y3JlZW4uaAppbmRleCBiMjBmZTM4OWE5OGUxZTAxZTI1MzFiMjAwNjkxODZjYmVkNmFlZTI2Li45
MmNlNGRkNmVjMTgyMWEwZmM1MTM1ZjM4ZTIzM2E1Y2NkMDRkNzE5IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9ybVNjcmVlbi5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL1BsYXRmb3JtU2NyZWVuLmgKQEAgLTE1Miw4ICsxNTIsOCBAQCBXRUJDT1JFX0VY
UE9SVCBmbG9hdCBzY3JlZW5TY2FsZUZhY3RvcihVSVNjcmVlbiAqID0gbnVsbHB0cik7CiAKICNp
ZiBFTkFCTEUoVE9VQ0hfRVZFTlRTKQogI2lmIFBMQVRGT1JNKEdUSykgfHwgUExBVEZPUk0oV1BF
KQotYm9vbCBzY3JlZW5IYXNUb3VjaERldmljZSgpOwotYm9vbCBzY3JlZW5Jc1RvdWNoUHJpbWFy
eUlucHV0RGV2aWNlKCk7CitXRUJDT1JFX0VYUE9SVCBib29sIHNjcmVlbkhhc1RvdWNoRGV2aWNl
KCk7CitXRUJDT1JFX0VYUE9SVCBib29sIHNjcmVlbklzVG91Y2hQcmltYXJ5SW5wdXREZXZpY2Uo
KTsKICNlbHNlCiBjb25zdGV4cHIgYm9vbCBzY3JlZW5IYXNUb3VjaERldmljZSgpIHsgcmV0dXJu
IHRydWU7IH0KIGNvbnN0ZXhwciBib29sIHNjcmVlbklzVG91Y2hQcmltYXJ5SW5wdXREZXZpY2Uo
KSB7IHJldHVybiB0cnVlOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NvbmZpZ3VyYXRp
b25zL1dlYktpdC54Y2NvbmZpZyBiL1NvdXJjZS9XZWJLaXQvQ29uZmlndXJhdGlvbnMvV2ViS2l0
LnhjY29uZmlnCmluZGV4IDVmNzVlY2JiMTQ5YzU1MWE0NTExYTkwNmZkN2Y0M2MxN2U5ODg5MjEu
LmNlNzE4NTlkZGE5MDU0YWRmYzA0NTU4NDA3ZjE2NGUzN2UzNmZmN2IgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvQ29uZmlndXJhdGlvbnMvV2ViS2l0LnhjY29uZmlnCisrKyBiL1NvdXJjZS9X
ZWJLaXQvQ29uZmlndXJhdGlvbnMvV2ViS2l0LnhjY29uZmlnCkBAIC02MCw2ICs2MCwxMCBAQCBX
S19BU1NFUlRJT05fU0VSVklDRVNfTERGTEFHU19hcHBsZXR2b3MgPSAtZnJhbWV3b3JrIEFzc2Vy
dGlvblNlcnZpY2VzOwogV0tfQVNTRVJUSU9OX1NFUlZJQ0VTX0xERkxBR1NfYXBwbGV0dnNpbXVs
YXRvciA9IC1mcmFtZXdvcmsgQXNzZXJ0aW9uU2VydmljZXM7CiBXS19BU1NFUlRJT05fU0VSVklD
RVNfTERGTEFHU19tYWNjYXRhbHlzdCA9IC1mcmFtZXdvcmsgQXNzZXJ0aW9uU2VydmljZXM7CiAK
K1dLX0JBQ0tCT0FSRF9TRVJWSUNFU19MREZMQUdTID0gJChXS19CQUNLQk9BUkRfU0VSVklDRVNf
TERGTEFHU18kKFdLX1BMQVRGT1JNX05BTUUpKTsKK1dLX0JBQ0tCT0FSRF9TRVJWSUNFU19MREZM
QUdTX2lwaG9uZW9zID0gLWZyYW1ld29yayBCYWNrQm9hcmRTZXJ2aWNlczsKK1dLX0JBQ0tCT0FS
RF9TRVJWSUNFU19MREZMQUdTX2lwaG9uZXNpbXVsYXRvciA9IC1mcmFtZXdvcmsgQmFja0JvYXJk
U2VydmljZXM7CisKIFdLX1JVTk5JTkdCT0FSRF9TRVJWSUNFU19MREZMQUdTID0gJChXS19SVU5O
SU5HQk9BUkRfU0VSVklDRVNfTERGTEFHU18kKFdLX0NPQ09BX1RPVUNIKSk7CiBXS19SVU5OSU5H
Qk9BUkRfU0VSVklDRVNfTERGTEFHU19jb2NvYXRvdWNoID0gLWZyYW1ld29yayBSdW5uaW5nQm9h
cmRTZXJ2aWNlczsKIApAQCAtMTIzLDcgKzEyNyw3IEBAIFdLX0FVVEhLSVRfTERGTEFHU19JT1Nf
U0lOQ0VfMTMgPSAtZnJhbWV3b3JrIEF1dGhLaXQ7CiBXS19BVVRIS0lUX0xERkxBR1NfbWFjb3N4
ID0gJChXS19BVVRIS0lUX0xERkxBR1MkKFdLX01BQ09TXzEwMTUpKTsKIFdLX0FVVEhLSVRfTERG
TEFHU19NQUNPU19TSU5DRV8xMDE1ID0gLWZyYW1ld29yayBBdXRoS2l0OwogCi1GUkFNRVdPUktf
QU5EX0xJQlJBUllfTERGTEFHUyA9IC1sb2JqYyAtZnJhbWV3b3JrIENGTmV0d29yayAtZnJhbWV3
b3JrIENvcmVBdWRpbyAtZnJhbWV3b3JrIENvcmVGb3VuZGF0aW9uIC1mcmFtZXdvcmsgQ29yZUdy
YXBoaWNzIC1mcmFtZXdvcmsgQ29yZVRleHQgLWZyYW1ld29yayBGb3VuZGF0aW9uIC1mcmFtZXdv
cmsgSW1hZ2VJTyAtZnJhbWV3b3JrIElPS2l0IC1mcmFtZXdvcmsgSU9TdXJmYWNlIC1mcmFtZXdv
cmsgV2ViS2l0TGVnYWN5IC1sbmV0d29yayAkKFdLX0FDQ0VTU0lCSUxJVFlfTERGTEFHUykgJChX
S19BUFBLSVRfTERGTEFHUykgJChXS19BU1NFUlRJT05fU0VSVklDRVNfTERGTEFHUykgJChXS19S
VU5OSU5HQk9BUkRfU0VSVklDRVNfTERGTEFHUykgJChXS19BVVRIS0lUX0xERkxBR1MpICQoV0tf
Q0FSQk9OX0xERkxBR1MpICQoV0tfQ09SRV9QUkVESUNUSU9OX0xERkxBR1MpICQoV0tfQ09SRV9T
RVJWSUNFU19MREZMQUdTKSAkKFdLX0dSQVBISUNTX1NFUlZJQ0VTX0xERkxBR1MpICQoV0tfTElC
U0FOREJPWF9MREZMQUdTKSAkKFdLX0xJQldFQlJUQ19MREZMQUdTKSAkKFdLX01PQklMRV9DT1JF
X1NFUlZJQ0VTX0xERkxBR1MpICQoV0tfTU9CSUxFX0dFU1RBTFRfTERGTEFHUykgJChXS19QREZL
SVRfTERGTEFHUykgJChXS19TQUZFX0JST1dTSU5HX0xERkxBR1MpICQoV0tfU0VDVVJJVFlfSU5U
RVJGQUNFX0xERkxBR1MpICQoV0tfVUlLSVRfTERGTEFHUykgJChXS19VUkxfRk9STUFUVElOR19M
REZMQUdTKSAkKFdLX1dFQklOU1BFQ1RPUlVJX0xERkxBR1MpOworRlJBTUVXT1JLX0FORF9MSUJS
QVJZX0xERkxBR1MgPSAtbG9iamMgLWZyYW1ld29yayBDRk5ldHdvcmsgLWZyYW1ld29yayBDb3Jl
QXVkaW8gLWZyYW1ld29yayBDb3JlRm91bmRhdGlvbiAtZnJhbWV3b3JrIENvcmVHcmFwaGljcyAt
ZnJhbWV3b3JrIENvcmVUZXh0IC1mcmFtZXdvcmsgRm91bmRhdGlvbiAtZnJhbWV3b3JrIEltYWdl
SU8gLWZyYW1ld29yayBJT0tpdCAtZnJhbWV3b3JrIElPU3VyZmFjZSAtZnJhbWV3b3JrIFdlYktp
dExlZ2FjeSAtbG5ldHdvcmsgJChXS19BQ0NFU1NJQklMSVRZX0xERkxBR1MpICQoV0tfQVBQS0lU
X0xERkxBR1MpICQoV0tfQVNTRVJUSU9OX1NFUlZJQ0VTX0xERkxBR1MpICQoV0tfQkFDS0JPQVJE
X1NFUlZJQ0VTX0xERkxBR1MpICQoV0tfUlVOTklOR0JPQVJEX1NFUlZJQ0VTX0xERkxBR1MpICQo
V0tfQVVUSEtJVF9MREZMQUdTKSAkKFdLX0NBUkJPTl9MREZMQUdTKSAkKFdLX0NPUkVfUFJFRElD
VElPTl9MREZMQUdTKSAkKFdLX0NPUkVfU0VSVklDRVNfTERGTEFHUykgJChXS19HUkFQSElDU19T
RVJWSUNFU19MREZMQUdTKSAkKFdLX0xJQlNBTkRCT1hfTERGTEFHUykgJChXS19MSUJXRUJSVENf
TERGTEFHUykgJChXS19NT0JJTEVfQ09SRV9TRVJWSUNFU19MREZMQUdTKSAkKFdLX01PQklMRV9H
RVNUQUxUX0xERkxBR1MpICQoV0tfUERGS0lUX0xERkxBR1MpICQoV0tfU0FGRV9CUk9XU0lOR19M
REZMQUdTKSAkKFdLX1NFQ1VSSVRZX0lOVEVSRkFDRV9MREZMQUdTKSAkKFdLX1VJS0lUX0xERkxB
R1MpICQoV0tfVVJMX0ZPUk1BVFRJTkdfTERGTEFHUykgJChXS19XRUJJTlNQRUNUT1JVSV9MREZM
QUdTKTsKIAogLy8gUHJldmVudCBDKysgc3RhbmRhcmQgbGlicmFyeSBiYXNpY19zdHJpbmdzdHJl
YW0sIG9wZXJhdG9yIG5ldywgZGVsZXRlIGFuZCB0aGVpciByZWxhdGVkIGV4Y2VwdGlvbiB0eXBl
cyBmcm9tIGJlaW5nIGV4cG9ydGVkIGFzIHdlYWsgc3ltYm9scy4KIFVORVhQT1JURURfU1lNQk9M
X0xERkxBR1MgPSAtV2wsLXVuZXhwb3J0ZWRfc3ltYm9sIC1XbCxfX1pUSVN0OWJhZF9hbGxvYyAt
V2wsLXVuZXhwb3J0ZWRfc3ltYm9sIC1XbCxfX1pUSVN0OWV4Y2VwdGlvbiAtV2wsLXVuZXhwb3J0
ZWRfc3ltYm9sIC1XbCxfX1pUU1N0OWJhZF9hbGxvYyAtV2wsLXVuZXhwb3J0ZWRfc3ltYm9sIC1X
bCxfX1pUU1N0OWV4Y2VwdGlvbiAtV2wsLXVuZXhwb3J0ZWRfc3ltYm9sIC1XbCxfX1pkbFB2U18g
LVdsLC11bmV4cG9ydGVkX3N5bWJvbCAtV2wsX19abndtUHYgLVdsLC11bmV4cG9ydGVkX3N5bWJv
bCAtV2wsX19abndtIC1XbCwtdW5leHBvcnRlZF9zeW1ib2wgLVdsLF9fWk5TdDNfXzE4ZnVuY3Rp
b25JRnZON1dlYkNvcmUxMlBvbGljeUFjdGlvbkVFRUMyRU9TNF8gLVdsLC11bmV4cG9ydGVkX3N5
bWJvbCAtV2wsX19aTlN0M19fMThmdW5jdGlvbklGdk43V2ViQ29yZTEyUG9saWN5QWN0aW9uRUVF
QzFFT1M0XyAtV2wsLXVuZXhwb3J0ZWRfc3ltYm9sIC1XbCxfX1pOU3QzX18xOGZ1bmN0aW9uSUZ2
TjdXZWJDb3JlMTJQb2xpY3lBY3Rpb25FRUVhU0VEbiAtV2wsLXVuZXhwb3J0ZWRfc3ltYm9sIC1X
bCxfX1pOS1N0M19fMThmdW5jdGlvbklGdk43V2ViQ29yZTEyUG9saWN5QWN0aW9uRUVFY2xFUzJf
IC1XbCwtdW5leHBvcnRlZF9zeW1ib2wgLVdsLF9fWk5TdDNfXzE4ZnVuY3Rpb25JRnZON1dlYkNv
cmUxMlBvbGljeUFjdGlvbkVFRTRzd2FwRVJTNF8gLVdsLC11bmV4cG9ydGVkX3N5bWJvbCAtV2ws
X19aTlN0M19fMThmdW5jdGlvbklGdk43V2ViQ29yZTEyUG9saWN5QWN0aW9uRUVFQzFFUktTNF8g
LVdsLC11bmV4cG9ydGVkX3N5bWJvbCAtV2wsX19aTlN0M19fMThmdW5jdGlvbklGdk43V2ViQ29y
ZTEyUG9saWN5QWN0aW9uRUVFQzJFUktTNF8gLVdsLC11bmV4cG9ydGVkX3N5bWJvbCAtV2wsX19a
TlN0M19fMThmdW5jdGlvbklGdk43V2ViQ29yZTEyUG9saWN5QWN0aW9uRUVFRDFFdiAtV2wsLXVu
ZXhwb3J0ZWRfc3ltYm9sIC1XbCxfX1pOU3QzX18xOGZ1bmN0aW9uSUZ2TjdXZWJDb3JlMTJQb2xp
Y3lBY3Rpb25FRUVEMkV2IC1XbCwtdW5leHBvcnRlZF9zeW1ib2wgLVdsLF9fWk5TdDNfXzE4ZnVu
Y3Rpb25JRnZON1dlYkNvcmUxMlBvbGljeUFjdGlvbkVFRWFTRVJLUzRfIC1XbCwtdW5leHBvcnRl
ZF9zeW1ib2wgLVdsLF9fWlRWTlN0M19fMTE3YmFkX2Z1bmN0aW9uX2NhbGxFIC1XbCwtdW5leHBv
cnRlZF9zeW1ib2wgLVdsLF9fWlRDTlN0M19fMTE4YmFzaWNfc3RyaW5nc3RyZWFtSWNOU18xMWNo
YXJfdHJhaXRzSWNFRU5TXzlhbGxvY2F0b3JJY0VFRUUwX05TXzEzYmFzaWNfaXN0cmVhbUljUzJf
RUUgLVdsLC11bmV4cG9ydGVkX3N5bWJvbCAtV2wsX19aVENOU3QzX18xMThiYXNpY19zdHJpbmdz
dHJlYW1JY05TXzExY2hhcl90cmFpdHNJY0VFTlNfOWFsbG9jYXRvckljRUVFRTBfTlNfMTRiYXNp
Y19pb3N0cmVhbUljUzJfRUUgLVdsLC11bmV4cG9ydGVkX3N5bWJvbCAtV2wsX19aVENOU3QzX18x
MThiYXNpY19zdHJpbmdzdHJlYW1JY05TXzExY2hhcl90cmFpdHNJY0VFTlNfOWFsbG9jYXRvcklj
RUVFRTE2X05TXzEzYmFzaWNfb3N0cmVhbUljUzJfRUUgLVdsLC11bmV4cG9ydGVkX3N5bWJvbCAt
V2wsX19aVFROU3QzX18xMThiYXNpY19zdHJpbmdzdHJlYW1JY05TXzExY2hhcl90cmFpdHNJY0VF
TlNfOWFsbG9jYXRvckljRUVFRSAtV2wsLXVuZXhwb3J0ZWRfc3ltYm9sIC1XbCxfX1pUVk5TdDNf
XzExNWJhc2ljX3N0cmluZ2J1ZkljTlNfMTFjaGFyX3RyYWl0c0ljRUVOU185YWxsb2NhdG9ySWNF
RUVFIC1XbCwtdW5leHBvcnRlZF9zeW1ib2wgLVdsLF9fWlRWTlN0M19fMTE4YmFzaWNfc3RyaW5n
c3RyZWFtSWNOU18xMWNoYXJfdHJhaXRzSWNFRU5TXzlhbGxvY2F0b3JJY0VFRUUgLVdsLC11bmV4
cG9ydGVkX3N5bWJvbCAtV2wsX19aVENOU3QzX18xMThiYXNpY19zdHJpbmdzdHJlYW1JY05TXzEx
Y2hhcl90cmFpdHNJY0VFTlNfOWFsbG9jYXRvckljRUVFRThfTlNfMTNiYXNpY19vc3RyZWFtSWNT
Ml9FRTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vc3BpL2lvcy9CYWNrQm9h
cmRTZXJ2aWNlc1NQSS5oIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9zcGkvaW9zL0JhY2tCb2Fy
ZFNlcnZpY2VzU1BJLmgKaW5kZXggNmQ4ZDg5NDNlNGNjM2NhNzk5ZjM3MjIxNDQxMzY5MjQwOWQ3
OTYzNy4uMDkwMTRkNDQxZTFhZDliMGY0ZjI3MDM3YmRjMTBjMjMzZDQ1ZWMxYSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9zcGkvaW9zL0JhY2tCb2FyZFNlcnZpY2VzU1BJLmgK
KysrIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9zcGkvaW9zL0JhY2tCb2FyZFNlcnZpY2VzU1BJ
LmgKQEAgLTI3LDExICsyNywyNyBAQAogCiAjaW1wb3J0IDxCYWNrQm9hcmRTZXJ2aWNlcy9CS1NB
bmltYXRpb25GZW5jZS5oPgogI2ltcG9ydCA8QmFja0JvYXJkU2VydmljZXMvQktTQW5pbWF0aW9u
RmVuY2VfUHJpdmF0ZS5oPgorI2ltcG9ydCA8QmFja0JvYXJkU2VydmljZXMvQktTTW91c2VQb2lu
dGVyU2VydmljZS5oPgogCiAjZWxzZQogCisjaW1wb3J0ICJCYXNlQm9hcmRTUEkuaCIKKwogQGlu
dGVyZmFjZSBCS1NBbmltYXRpb25GZW5jZUhhbmRsZSA6IE5TT2JqZWN0CiAtIChtYWNoX3BvcnRf
dClDQVBvcnQ7CiBAZW5kCiAKK0BjbGFzcyBCS1NNb3VzZVBvaW50ZXJEZXZpY2U7CisKK0Bwcm90
b2NvbCBCS1NNb3VzZVBvaW50ZXJEZXZpY2VPYnNlcnZlciA8TlNPYmplY3Q+CitAb3B0aW9uYWwK
Ky0gKHZvaWQpbW91c2VQb2ludGVyRGV2aWNlc0RpZENvbm5lY3Q6KE5TU2V0PEJLU01vdXNlUG9p
bnRlckRldmljZSAqPiAqKW1vdXNlUG9pbnRlckRldmljZXM7CistICh2b2lkKW1vdXNlUG9pbnRl
ckRldmljZXNEaWREaXNjb25uZWN0OihOU1NldDxCS1NNb3VzZVBvaW50ZXJEZXZpY2UgKj4gKilt
b3VzZVBvaW50ZXJEZXZpY2VzOworQGVuZAorCitAaW50ZXJmYWNlIEJLU01vdXNlUG9pbnRlclNl
cnZpY2UgOiBOU09iamVjdAorKyAoQktTTW91c2VQb2ludGVyU2VydmljZSAqKXNoYXJlZEluc3Rh
bmNlOworLSAoaWQ8QlNJbnZhbGlkYXRhYmxlPilhZGRQb2ludGVyRGV2aWNlT2JzZXJ2ZXI6KGlk
PEJLU01vdXNlUG9pbnRlckRldmljZU9ic2VydmVyPilvYnNlcnZlcjsKK0BlbmQKKwogI2VuZGlm
IC8vIFVTRShBUFBMRV9JTlRFUk5BTF9TREspCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1Bs
YXRmb3JtL3NwaS9pb3MvQmFzZUJvYXJkU1BJLmggYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL3Nw
aS9pb3MvQmFzZUJvYXJkU1BJLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYWIwNDE4Njk1YjkwZmQ4MzFiOGQ2MWFk
ODE4OWEwYzM5NmNkZGI0MAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvUGxhdGZv
cm0vc3BpL2lvcy9CYXNlQm9hcmRTUEkuaApAQCAtMCwwICsxLDM2IEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05U
UklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1Ig
SVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwor
I2lmIFVTRShBUFBMRV9JTlRFUk5BTF9TREspCisKKyNpbXBvcnQgPEJhc2VCb2FyZC9CU0ludmFs
aWRhdGFibGUuaD4KKworI2Vsc2UKKworQHByb3RvY29sIEJTSW52YWxpZGF0YWJsZSA8TlNPYmpl
Y3Q+CistICh2b2lkKWludmFsaWRhdGU7CitAZW5kCisKKyNlbmRpZiAvLyBVU0UoQVBQTEVfSU5U
RVJOQUxfU0RLKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJvY2Vzc0Ny
ZWF0aW9uUGFyYW1ldGVycy5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcm9jZXNzQ3Jl
YXRpb25QYXJhbWV0ZXJzLmNwcAppbmRleCA3MTA4YjY1MWEwY2E5NGZjZmMyMjM3NTIzMTNmNTFi
YjEwOTMxN2Y1Li42YjI4M2VmMjQ1OGQ4MzY1OTM0NGJlOWQ1NDU5MGNjMmUxNzZlMjA0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJz
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0
ZXJzLmNwcApAQCAtODUsNiArODUsOSBAQCB2b2lkIFdlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRl
cnM6OmVuY29kZShJUEM6OkVuY29kZXImIGVuY29kZXIpIGNvbnN0CiAjZW5kaWYKICAgICBlbmNv
ZGVyIDw8IHRleHRDaGVja2VyU3RhdGU7CiAgICAgZW5jb2RlciA8PCBmdWxsS2V5Ym9hcmRBY2Nl
c3NFbmFibGVkOworI2lmIEhBVkUoVUlLSVRfV0lUSF9NT1VTRV9TVVBQT1JUKSAmJiBQTEFURk9S
TShJT1MpCisgICAgZW5jb2RlciA8PCBoYXNNb3VzZURldmljZTsKKyNlbmRpZgogICAgIGVuY29k
ZXIgPDwgZGVmYXVsdFJlcXVlc3RUaW1lb3V0SW50ZXJ2YWw7CiAgICAgZW5jb2RlciA8PCBiYWNr
Rm9yd2FyZENhY2hlQ2FwYWNpdHk7CiAjaWYgUExBVEZPUk0oQ09DT0EpCkBAIC0yOTQsNiArMjk3
LDEwIEBAIGJvb2wgV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyczo6ZGVjb2RlKElQQzo6RGVj
b2RlciYgZGVjb2RlciwgV2ViUHJvY2Vzc0NyZWF0CiAgICAgICAgIHJldHVybiBmYWxzZTsKICAg
ICBpZiAoIWRlY29kZXIuZGVjb2RlKHBhcmFtZXRlcnMuZnVsbEtleWJvYXJkQWNjZXNzRW5hYmxl
ZCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKKyNpZiBIQVZFKFVJS0lUX1dJVEhfTU9VU0VfU1VQ
UE9SVCkgJiYgUExBVEZPUk0oSU9TKQorICAgIGlmICghZGVjb2Rlci5kZWNvZGUocGFyYW1ldGVy
cy5oYXNNb3VzZURldmljZSkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyNlbmRpZgogICAgIGlm
ICghZGVjb2Rlci5kZWNvZGUocGFyYW1ldGVycy5kZWZhdWx0UmVxdWVzdFRpbWVvdXRJbnRlcnZh
bCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHBhcmFt
ZXRlcnMuYmFja0ZvcndhcmRDYWNoZUNhcGFjaXR5KSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaCBiL1NvdXJjZS9XZWJLaXQv
U2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaAppbmRleCBjYTIzYzY3NjM4YTdm
ZTQxNTFiYzM2YTViMmZmMmRkYWRlNWY5Zjg1Li4zZDg2YTc0YjFkM2VlNTEwMTUzNGFkMzkyNTYy
MzIyMWVmYzNlY2FhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcm9jZXNz
Q3JlYXRpb25QYXJhbWV0ZXJzLmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJvY2Vz
c0NyZWF0aW9uUGFyYW1ldGVycy5oCkBAIC0xMTcsNiArMTE3LDkgQEAgc3RydWN0IFdlYlByb2Nl
c3NDcmVhdGlvblBhcmFtZXRlcnMgewogICAgIGJvb2wgc2hvdWxkU3VwcHJlc3NNZW1vcnlQcmVz
c3VyZUhhbmRsZXIgeyBmYWxzZSB9OwogICAgIGJvb2wgc2hvdWxkVXNlRm9udFNtb290aGluZyB7
IHRydWUgfTsKICAgICBib29sIGZ1bGxLZXlib2FyZEFjY2Vzc0VuYWJsZWQgeyBmYWxzZSB9Owor
I2lmIEhBVkUoVUlLSVRfV0lUSF9NT1VTRV9TVVBQT1JUKSAmJiBQTEFURk9STShJT1MpCisgICAg
Ym9vbCBoYXNNb3VzZURldmljZSB7IGZhbHNlIH07CisjZW5kaWYKICAgICBib29sIG1lbW9yeUNh
Y2hlRGlzYWJsZWQgeyBmYWxzZSB9OwogICAgIGJvb2wgYXR0clN0eWxlRW5hYmxlZCB7IGZhbHNl
IH07CiAgICAgYm9vbCB1c2VHUFVQcm9jZXNzRm9yTWVkaWFFbmFibGVkIHsgZmFsc2UgfTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU291cmNlc0NvY29hLnR4dCBiL1NvdXJjZS9XZWJLaXQv
U291cmNlc0NvY29hLnR4dAppbmRleCA2OGM0NGI0OTM1NmQ1MzI5YTg2NWVhODI2ZjI3YjZlM2Ew
MzA2YmVmLi5lODZkMTVjNmJiZTg4OTAwMGRmYjU5Zjc3YjdhZTBmMDE5M2I5ZjNiIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50eHQKKysrIGIvU291cmNlL1dlYktpdC9T
b3VyY2VzQ29jb2EudHh0CkBAIC00NjAsNiArNDYwLDcgQEAgVUlQcm9jZXNzL2lvcy9XS0dlb2xv
Y2F0aW9uUHJvdmlkZXJJT1MubW0KIFVJUHJvY2Vzcy9pb3MvV0tHZW9sb2NhdGlvblByb3ZpZGVy
SU9TT2JqQ1NlY3VyaXR5T3JpZ2luLm1tCiBVSVByb2Nlc3MvaW9zL1dLSGlnaGxpZ2h0TG9uZ1By
ZXNzR2VzdHVyZVJlY29nbml6ZXIubW0KIFVJUHJvY2Vzcy9pb3MvV0tLZXlib2FyZFNjcm9sbGlu
Z0FuaW1hdG9yLm1tCitVSVByb2Nlc3MvaW9zL1dLTW91c2VEZXZpY2VPYnNlcnZlci5tbQogVUlQ
cm9jZXNzL2lvcy9XS01vdXNlR2VzdHVyZVJlY29nbml6ZXIubW0KIFVJUHJvY2Vzcy9pb3MvV0tQ
YXNzd29yZFZpZXcubW0KIFVJUHJvY2Vzcy9pb3MvV0tQREZQYWdlTnVtYmVySW5kaWNhdG9yLm1t
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJQcm9jZXNzUG9v
bENvY29hLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViUHJvY2Vzc1Bvb2xD
b2NvYS5tbQppbmRleCAwOWJmZmU0YzlkY2ZkYzU5ZjAxOTAwNzM0MmZmZWNiYjdiYjY2NzU2Li5j
Zjc1NTIyNmVjYjc0MDhjZjAzZDAyZmVkYzI4ZThlMjJhYmFhODdiIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJQcm9jZXNzUG9vbENvY29hLm1tCisrKyBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlByb2Nlc3NQb29sQ29jb2EubW0KQEAgLTQw
LDYgKzQwLDcgQEAKICNpbXBvcnQgIlRleHRDaGVja2VyLmgiCiAjaW1wb3J0ICJVc2VySW50ZXJm
YWNlSWRpb20uaCIKICNpbXBvcnQgIldLQnJvd3NpbmdDb250ZXh0Q29udHJvbGxlckludGVybmFs
LmgiCisjaW1wb3J0ICJXS01vdXNlRGV2aWNlT2JzZXJ2ZXIuaCIKICNpbXBvcnQgIldlYkJhY2tG
b3J3YXJkQ2FjaGUuaCIKICNpbXBvcnQgIldlYk1lbW9yeVByZXNzdXJlSGFuZGxlci5oIgogI2lt
cG9ydCAiV2ViUGFnZUdyb3VwLmgiCkBAIC01MDUsNiArNTA2LDEwIEBAIHZvaWQgV2ViUHJvY2Vz
c1Bvb2w6OnBsYXRmb3JtSW5pdGlhbGl6ZVdlYlByb2Nlc3MoY29uc3QgV2ViUHJvY2Vzc1Byb3h5
JiBwcm9jZXNzCiAjaWYgSEFWRShDQVRBTFlTVF9VU0VSX0lOVEVSRkFDRV9JRElPTV9BTkRfU0NB
TEVfRkFDVE9SKQogICAgIHBhcmFtZXRlcnMub3ZlcnJpZGVVc2VySW50ZXJmYWNlSWRpb21BbmRT
Y2FsZSA9IHsgX1VJQXBwbGljYXRpb25DYXRhbHlzdFVzZXJJbnRlcmZhY2VJZGlvbSgpLCBfVUlB
cHBsaWNhdGlvbkNhdGFseXN0U2NhbGVGYWN0b3IoKSB9OwogI2VuZGlmCisKKyNpZiBIQVZFKFVJ
S0lUX1dJVEhfTU9VU0VfU1VQUE9SVCkgJiYgUExBVEZPUk0oSU9TKQorICAgIHBhcmFtZXRlcnMu
aGFzTW91c2VEZXZpY2UgPSBbW1dLTW91c2VEZXZpY2VPYnNlcnZlciBzaGFyZWRJbnN0YW5jZV0g
aGFzTW91c2VEZXZpY2VdOworI2VuZGlmCiB9CiAKIHZvaWQgV2ViUHJvY2Vzc1Bvb2w6OnBsYXRm
b3JtSW5pdGlhbGl6ZU5ldHdvcmtQcm9jZXNzKE5ldHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJhbWV0
ZXJzJiBwYXJhbWV0ZXJzKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
UHJvY2Vzc1Byb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94
eS5jcHAKaW5kZXggODlkZDVmMTliZjRhZWI2N2QzNzUzNGQ2YWNkNzMwNGZlZTlkZWYyOS4uNDBj
NDlhOTkzMjdiMTg1NmIwNTA2YjQ0M2JhOGI0MWEzYWIxYjcwYSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwCkBAIC0xMDksNyArMTA5LDcgQEAgc3RhdGlj
IGJvb2wgaXNNYWluVGhyZWFkT3JDaGVja0Rpc2FibGVkKCkKICNlbmRpZgogfQogCi1zdGF0aWMg
SGFzaE1hcDxQcm9jZXNzSWRlbnRpZmllciwgV2ViUHJvY2Vzc1Byb3h5Kj4mIGFsbFByb2Nlc3Nl
cygpCitIYXNoTWFwPFByb2Nlc3NJZGVudGlmaWVyLCBXZWJQcm9jZXNzUHJveHkqPiYgV2ViUHJv
Y2Vzc1Byb3h5OjphbGxQcm9jZXNzZXMoKQogewogICAgIEFTU0VSVChpc01haW5UaHJlYWRPckNo
ZWNrRGlzYWJsZWQoKSk7CiAgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEhhc2hNYXA8UHJvY2Vz
c0lkZW50aWZpZXIsIFdlYlByb2Nlc3NQcm94eSo+PiBtYXA7CkBAIC0yMTAsOCArMjEwLDE2IEBA
IFdlYlByb2Nlc3NQcm94eTo6V2ViUHJvY2Vzc1Byb3h5KFdlYlByb2Nlc3NQb29sJiBwcm9jZXNz
UG9vbCwgV2Vic2l0ZURhdGFTdG9yZSoKICAgICBBU1NFUlRfVU5VU0VEKHJlc3VsdCwgcmVzdWx0
LmlzTmV3RW50cnkpOwogCiAgICAgV2ViUGFzdGVib2FyZFByb3h5OjpzaW5nbGV0b24oKS5hZGRX
ZWJQcm9jZXNzUHJveHkoKnRoaXMpOworCisgICAgcGxhdGZvcm1Jbml0aWFsaXplKCk7CiB9CiAK
KyNpZiAhUExBVEZPUk0oSU9TX0ZBTUlMWSkKK3ZvaWQgV2ViUHJvY2Vzc1Byb3h5OjpwbGF0Zm9y
bUluaXRpYWxpemUoKQoreworfQorI2VuZGlmCisKIFdlYlByb2Nlc3NQcm94eTo6fldlYlByb2Nl
c3NQcm94eSgpCiB7CiAgICAgUkVMRUFTRV9BU1NFUlQoaXNNYWluVGhyZWFkT3JDaGVja0Rpc2Fi
bGVkKCkpOwpAQCAtMjQwLDggKzI0OCwxNiBAQCBXZWJQcm9jZXNzUHJveHk6On5XZWJQcm9jZXNz
UHJveHkoKQogI2lmIFBMQVRGT1JNKE1BQykKICAgICBIaWdoUGVyZm9ybWFuY2VHUFVNYW5hZ2Vy
OjpzaW5nbGV0b24oKS5yZW1vdmVQcm9jZXNzUmVxdWlyaW5nSGlnaFBlcmZvcm1hbmNlKHRoaXMp
OwogI2VuZGlmCisKKyAgICBwbGF0Zm9ybURlc3Ryb3koKTsKIH0KIAorI2lmICFQTEFURk9STShJ
T1NfRkFNSUxZKQordm9pZCBXZWJQcm9jZXNzUHJveHk6OnBsYXRmb3JtRGVzdHJveSgpCit7Cit9
CisjZW5kaWYKKwogdm9pZCBXZWJQcm9jZXNzUHJveHk6OnNldElzSW5Qcm9jZXNzQ2FjaGUoYm9v
bCB2YWx1ZSkKIHsKICAgICBpZiAodmFsdWUpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
UHJvY2Vzc1Byb3h5LmgKaW5kZXggZTBlOGRjMGFjNzA4YjEyNDhiMWNjODBhZGNiMTlkMTg0MTIz
OWM3My4uNDQzOWYyMDczMmRkZjFhMTNiY2U4MzQ1M2MwOTI3ZTIzYWM5YmI4ZSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmgKKysrIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmgKQEAgLTIxMSw2ICsyMTEsMTAgQEAg
cHVibGljOgogCiAgICAgc3RhdGljIGJvb2wgZnVsbEtleWJvYXJkQWNjZXNzRW5hYmxlZCgpOwog
CisjaWYgSEFWRShVSUtJVF9XSVRIX01PVVNFX1NVUFBPUlQpICYmIFBMQVRGT1JNKElPUykKKyAg
ICBzdGF0aWMgdm9pZCBub3RpZnlIYXNNb3VzZURldmljZUNoYW5nZWQoKTsKKyNlbmRpZgorCiAg
ICAgdm9pZCBmZXRjaFdlYnNpdGVEYXRhKFBBTDo6U2Vzc2lvbklELCBPcHRpb25TZXQ8V2Vic2l0
ZURhdGFUeXBlPiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJzaXRlRGF0YSk+JiYpOwogICAg
IHZvaWQgZGVsZXRlV2Vic2l0ZURhdGEoUEFMOjpTZXNzaW9uSUQsIE9wdGlvblNldDxXZWJzaXRl
RGF0YVR5cGU+LCBXYWxsVGltZSBtb2RpZmllZFNpbmNlLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KCk+JiYpOwogICAgIHZvaWQgZGVsZXRlV2Vic2l0ZURhdGFGb3JPcmlnaW5zKFBBTDo6U2Vzc2lv
bklELCBPcHRpb25TZXQ8V2Vic2l0ZURhdGFUeXBlPiwgY29uc3QgVmVjdG9yPFdlYkNvcmU6OlNl
Y3VyaXR5T3JpZ2luRGF0YT4mLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwpAQCAtNDEw
LDYgKzQxNCwxMSBAQCBwcm90ZWN0ZWQ6CiAgICAgdm9pZCB2YWxpZGF0ZUZyZWV6ZXJTdGF0dXMo
KTsKIAogcHJpdmF0ZToKKyAgICBzdGF0aWMgSGFzaE1hcDxXZWJDb3JlOjpQcm9jZXNzSWRlbnRp
ZmllciwgV2ViUHJvY2Vzc1Byb3h5Kj4mIGFsbFByb2Nlc3NlcygpOworCisgICAgdm9pZCBwbGF0
Zm9ybUluaXRpYWxpemUoKTsKKyAgICB2b2lkIHBsYXRmb3JtRGVzdHJveSgpOworCiAgICAgLy8g
SVBDIG1lc3NhZ2UgaGFuZGxlcnMuCiAgICAgdm9pZCB1cGRhdGVCYWNrRm9yd2FyZEl0ZW0oY29u
c3QgQmFja0ZvcndhcmRMaXN0SXRlbVN0YXRlJik7CiAgICAgdm9pZCBkaWREZXN0cm95RnJhbWUo
V2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL2lvcy9XS01vdXNlRGV2aWNlT2JzZXJ2ZXIuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL2lvcy9XS01vdXNlRGV2aWNlT2JzZXJ2ZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xMDcwNDE2NDBiMmRm
NGZmZjY4ZDE1N2JmZDQ0OGM2OThhNzExM2I4Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvaW9zL1dLTW91c2VEZXZpY2VPYnNlcnZlci5oCkBAIC0wLDAgKzEsNDcg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjaWYgSEFWRShVSUtJVF9XSVRIX01PVVNFX1NVUFBPUlQpICYmIFBM
QVRGT1JNKElPUykKKworI2ltcG9ydCAiQmFja0JvYXJkU2VydmljZXNTUEkuaCIKKworbmFtZXNw
YWNlIFdlYktpdCB7CitjbGFzcyBXZWJQcm9jZXNzUHJveHk7Cit9CisKK0BpbnRlcmZhY2UgV0tN
b3VzZURldmljZU9ic2VydmVyIDogTlNPYmplY3Q8QktTTW91c2VQb2ludGVyRGV2aWNlT2JzZXJ2
ZXI+CisKKysgKFdLTW91c2VEZXZpY2VPYnNlcnZlciAqKXNoYXJlZEluc3RhbmNlOworCistICh2
b2lkKXN0YXJ0OworLSAodm9pZClzdG9wOworCitAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9u
bHkpIEJPT0wgaGFzTW91c2VEZXZpY2U7CisKKy0gKHZvaWQpX3NldEhhc01vdXNlRGV2aWNlRm9y
VGVzdGluZzooQk9PTCloYXNNb3VzZURldmljZTsKKworQGVuZAorCisjZW5kaWYgLy8gSEFWRShV
SUtJVF9XSVRIX01PVVNFX1NVUFBPUlQpICYmIFBMQVRGT1JNKElPUykKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS01vdXNlRGV2aWNlT2JzZXJ2ZXIubW0gYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tNb3VzZURldmljZU9ic2VydmVyLm1tCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmU1MTBlZmEwZTg5OTQyYjFjNTc4OGE2OWMyMzlmYjUzNWU3YTk5N2UKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tNb3VzZURldmljZU9ic2VydmVy
Lm1tCkBAIC0wLDAgKzEsOTYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAq
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW1wb3J0ICJjb25maWcuaCIKKyNp
bXBvcnQgIldLTW91c2VEZXZpY2VPYnNlcnZlci5oIgorCisjaWYgSEFWRShVSUtJVF9XSVRIX01P
VVNFX1NVUFBPUlQpICYmIFBMQVRGT1JNKElPUykKKworI2ltcG9ydCAiV2ViUHJvY2Vzc1Byb3h5
LmgiCisjaW1wb3J0IDx3dGYvUmV0YWluUHRyLmg+CisKK0BpbXBsZW1lbnRhdGlvbiBXS01vdXNl
RGV2aWNlT2JzZXJ2ZXIgeworICAgIEJPT0wgX2hhc01vdXNlRGV2aWNlOworICAgIFJldGFpblB0
cjxpZDxCU0ludmFsaWRhdGFibGU+PiBfdG9rZW47Cit9CisKKysgKFdLTW91c2VEZXZpY2VPYnNl
cnZlciAqKXNoYXJlZEluc3RhbmNlIHsKKyAgICBzdGF0aWMgV0tNb3VzZURldmljZU9ic2VydmVy
ICppbnN0YW5jZTsKKyAgICBpZiAoIWluc3RhbmNlKQorICAgICAgICBpbnN0YW5jZSA9IFtbV0tN
b3VzZURldmljZU9ic2VydmVyIGFsbG9jXSBpbml0XTsKKyAgICByZXR1cm4gaW5zdGFuY2U7Cit9
CisKKy0gKHZvaWQpZGVhbGxvYworeworICAgIFtzZWxmIHN0b3BdOworCisgICAgW3N1cGVyIGRl
YWxsb2NdOworfQorCisjcHJhZ21hIG1hcmsgLSBCS1NNb3VzZVBvaW50ZXJEZXZpY2VPYnNlcnZl
ciBzdGF0ZQorCistICh2b2lkKXN0YXJ0Cit7CisgICAgaWYgKF90b2tlbikKKyAgICAgICAgcmV0
dXJuOworCisgICAgX3Rva2VuID0gW1tCS1NNb3VzZVBvaW50ZXJTZXJ2aWNlIHNoYXJlZEluc3Rh
bmNlXSBhZGRQb2ludGVyRGV2aWNlT2JzZXJ2ZXI6c2VsZl07Cit9CisKKy0gKHZvaWQpc3RvcAor
eworICAgIGlmICghX3Rva2VuKQorICAgICAgICByZXR1cm47CisKKyAgICBbX3Rva2VuIGludmFs
aWRhdGVdOworICAgIF90b2tlbiA9IG5pbDsKK30KKworI3ByYWdtYSBtYXJrIC0gQktTTW91c2VQ
b2ludGVyRGV2aWNlT2JzZXJ2ZXIgaGFuZGxlcnMKKworLSAodm9pZCltb3VzZVBvaW50ZXJEZXZp
Y2VzRGlkQ2hhbmdlOihOU1NldDxCS1NNb3VzZVBvaW50ZXJEZXZpY2UgKj4gKiltb3VzZVBvaW50
ZXJEZXZpY2VzCit7CisgICAgQk9PTCBoYXNNb3VzZURldmljZSA9IG1vdXNlUG9pbnRlckRldmlj
ZXMuY291bnQgPiAwOworICAgIGlmIChoYXNNb3VzZURldmljZSA9PSBfaGFzTW91c2VEZXZpY2Up
CisgICAgICAgIHJldHVybjsKKworICAgIF9oYXNNb3VzZURldmljZSA9IGhhc01vdXNlRGV2aWNl
OworCisgICAgV2ViS2l0OjpXZWJQcm9jZXNzUHJveHk6Om5vdGlmeUhhc01vdXNlRGV2aWNlQ2hh
bmdlZCgpOworfQorCisjcHJhZ21hIG1hcmsgLSBUZXN0aW5nCisKKy0gKHZvaWQpX3NldEhhc01v
dXNlRGV2aWNlRm9yVGVzdGluZzooQk9PTCloYXNNb3VzZURldmljZQoreworICAgIF9oYXNNb3Vz
ZURldmljZSA9IGhhc01vdXNlRGV2aWNlOworCisgICAgV2ViS2l0OjpXZWJQcm9jZXNzUHJveHk6
Om5vdGlmeUhhc01vdXNlRGV2aWNlQ2hhbmdlZCgpOworfQorCitAZW5kCisKKyNlbmRpZiAvLyBI
QVZFKFVJS0lUX1dJVEhfTU9VU0VfU1VQUE9SVCkgJiYgUExBVEZPUk0oSU9TKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dlYlByb2Nlc3NQcm94eUlPUy5tbSBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XZWJQcm9jZXNzUHJveHlJT1MubW0KaW5kZXggZWIx
NzdjZDdjZGY1MWYwMjdmN2M1YjFlYzcyYzg3M2ZmYTYxODRmYS4uY2E0ZWEyMDM2MDgyOWExZTEx
NzA4NzBkN2ZjNDQzMDAyNGZiYTc2YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvaW9zL1dlYlByb2Nlc3NQcm94eUlPUy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9pb3MvV2ViUHJvY2Vzc1Byb3h5SU9TLm1tCkBAIC0zMCwxMCArMzAsMzggQEAKIAogI2ltcG9y
dCAiQWNjZXNzaWJpbGl0eVN1cHBvcnRTUEkuaCIKICNpbXBvcnQgIldLRnVsbEtleWJvYXJkQWNj
ZXNzV2F0Y2hlci5oIgorI2ltcG9ydCAiV0tNb3VzZURldmljZU9ic2VydmVyLmgiCiAjaW1wb3J0
ICJXZWJQcm9jZXNzTWVzc2FnZXMuaCIKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKK3ZvaWQgV2Vi
UHJvY2Vzc1Byb3h5OjpwbGF0Zm9ybUluaXRpYWxpemUoKQoreworI2lmIEhBVkUoVUlLSVRfV0lU
SF9NT1VTRV9TVVBQT1JUKSAmJiBQTEFURk9STShJT1MpCisgICAgaWYgKFdlYlByb2Nlc3NQcm94
eTo6YWxsUHJvY2Vzc2VzKCkuc2l6ZSgpID09IDEpCisgICAgICAgIFtbV0tNb3VzZURldmljZU9i
c2VydmVyIHNoYXJlZEluc3RhbmNlXSBzdGFydF07CisjZW5kaWYKK30KKwordm9pZCBXZWJQcm9j
ZXNzUHJveHk6OnBsYXRmb3JtRGVzdHJveSgpCit7CisjaWYgSEFWRShVSUtJVF9XSVRIX01PVVNF
X1NVUFBPUlQpICYmIFBMQVRGT1JNKElPUykKKyAgICBpZiAoV2ViUHJvY2Vzc1Byb3h5OjphbGxQ
cm9jZXNzZXMoKS5pc0VtcHR5KCkpCisgICAgICAgIFtbV0tNb3VzZURldmljZU9ic2VydmVyIHNo
YXJlZEluc3RhbmNlXSBzdG9wXTsKKyNlbmRpZgorfQorCisjaWYgSEFWRShVSUtJVF9XSVRIX01P
VVNFX1NVUFBPUlQpICYmIFBMQVRGT1JNKElPUykKKwordm9pZCBXZWJQcm9jZXNzUHJveHk6Om5v
dGlmeUhhc01vdXNlRGV2aWNlQ2hhbmdlZCgpCit7CisgICAgYm9vbCBoYXNNb3VzZURldmljZSA9
IFtbV0tNb3VzZURldmljZU9ic2VydmVyIHNoYXJlZEluc3RhbmNlXSBoYXNNb3VzZURldmljZV07
CisgICAgZm9yIChhdXRvKiB3ZWJQcm9jZXNzUHJveHkgOiBXZWJQcm9jZXNzUHJveHk6OmFsbFBy
b2Nlc3NlcygpLnZhbHVlcygpKQorICAgICAgICB3ZWJQcm9jZXNzUHJveHktPnNlbmQoTWVzc2Fn
ZXM6OldlYlByb2Nlc3M6OlNldEhhc01vdXNlRGV2aWNlKGhhc01vdXNlRGV2aWNlKSwgMCk7Cit9
CisKKyNlbmRpZiAvLyBIQVZFKFVJS0lUX1dJVEhfTU9VU0VfU1VQUE9SVCkKKwogYm9vbCBXZWJQ
cm9jZXNzUHJveHk6OmZ1bGxLZXlib2FyZEFjY2Vzc0VuYWJsZWQoKQogewogI2lmIEVOQUJMRShG
VUxMX0tFWUJPQVJEX0FDQ0VTUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCmluZGV4IDU3MjEzNTYyYWJjMWJlMzg0MmJlMzFlODYxNzM3MGRlMjg3
OGNkMGEuLjI4NGRlNjRkMmM5YjQzOGViNzdiYzAwNzMwNjJlNGIyMGRlZTFiNTAgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIv
U291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMTM3OSw2
ICsxMzc5LDggQEAKIAkJOTNCREVCMDExNzFERDdBRjAwQkZFRTFCIC8qIFdLUGFnZUxvYWRUeXBl
c1ByaXZhdGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDkzQkRFQjAwMTcxREQ3QUYwMEJGRUUxQiAvKiBXS1BhZ2VMb2FkVHlwZXNQcml2YXRlLmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJOTNFNkE0RUUx
QkM1REQzOTAwRjhBMEU3IC8qIF9XS0hpdFRlc3RSZXN1bHQuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzRTZBNEVEMUJDNUREMzkwMEY4QTBFNyAvKiBf
V0tIaXRUZXN0UmVzdWx0LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKIAkJOTNGNTQ5QjQxRTMxNzRCNzAwMEU3MjM5IC8qIFdLU25hcHNob3RDb25maWd1
cmF0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5
M0Y1NDlCMzFFMzE3NEI3MDAwRTcyMzkgLyogV0tTbmFwc2hvdENvbmZpZ3VyYXRpb24uaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQdWJsaWMsICk7IH07IH07CisJCTk1MEYyODgwMjUy
NDE0RUEwMEI3NEYxQyAvKiBXS01vdXNlRGV2aWNlT2JzZXJ2ZXIuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk1MEYyODdFMjUyNDE0RTkwMEI3NEYxQyAv
KiBXS01vdXNlRGV2aWNlT2JzZXJ2ZXIuaCAqLzsgfTsKKwkJOTVDOTQzOTEyNTIzQzBEMDAwNTRG
M0Q1IC8qIEJhc2VCb2FyZFNQSS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gOTVDOTQzOTAyNTIzQzBEMDAwNTRGM0Q1IC8qIEJhc2VCb2FyZFNQSS5oICov
OyB9OwogCQk5OTAzNkFFMjIzQTk0OUNGMDAwMEIwNkEgLyogX1dLSW5zcGVjdG9yRGVidWdnYWJs
ZUluZm9JbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gOTkwMzZBRTEyM0E5NDlDRTAwMDBCMDZBIC8qIF9XS0luc3BlY3RvckRlYnVnZ2FibGVJ
bmZvSW50ZXJuYWwuaCAqLzsgfTsKIAkJOTkwMzZBRTUyM0E5NTg3NTAwMDBCMDZBIC8qIEFQSURl
YnVnZ2FibGVJbmZvLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA5OTAzNkFFMzIzQTk1ODc0MDAwMEIwNkEgLyogQVBJRGVidWdnYWJsZUluZm8uaCAqLzsg
fTsKIAkJOTkwMzZBRTkyM0E5NzA4NzAwMDBCMDZBIC8qIERlYnVnZ2FibGVJbmZvRGF0YS5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTkwMzZBRTcyM0E5
NzA4NzAwMDBCMDZBIC8qIERlYnVnZ2FibGVJbmZvRGF0YS5oICovOyB9OwpAQCAtNDQyNiw2ICs0
NDI4LDkgQEAKIAkJOTNFNkE0RUQxQkM1REQzOTAwRjhBMEU3IC8qIF9XS0hpdFRlc3RSZXN1bHQu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gX1dLSGl0VGVzdFJlc3VsdC5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5M0Y1NDlCMzFFMzE3NEI3MDAwRTcyMzkgLyog
V0tTbmFwc2hvdENvbmZpZ3VyYXRpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gV0tTbmFwc2hvdENvbmZpZ3VyYXRpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJOTNGNTQ5QjUxRTMxNzREQTAwMEU3MjM5IC8qIFdLU25hcHNob3RDb25maWd1cmF0aW9uLm1t
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gV0tTbmFwc2hvdENvbmZp
Z3VyYXRpb24ubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTk1MEYyODdFMjUyNDE0
RTkwMEI3NEYxQyAvKiBXS01vdXNlRGV2aWNlT2JzZXJ2ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBuYW1lID0gV0tNb3VzZURldmljZU9ic2VydmVyLmg7IHBhdGggPSBpb3MvV0tNb3Vz
ZURldmljZU9ic2VydmVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTk1MEYyODdG
MjUyNDE0RUEwMEI3NEYxQyAvKiBXS01vdXNlRGV2aWNlT2JzZXJ2ZXIubW0gKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5vYmpjcHA7IG5hbWUgPSBXS01vdXNlRGV2aWNlT2JzZXJ2ZXIubW07IHBh
dGggPSBpb3MvV0tNb3VzZURldmljZU9ic2VydmVyLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQk5NUM5NDM5MDI1MjNDMEQwMDA1NEYzRDUgLyogQmFzZUJvYXJkU1BJLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEJhc2VCb2FyZFNQSS5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk5OTAzNkFFMTIzQTk0OUNFMDAwMEIwNkEgLyogX1dLSW5zcGVjdG9y
RGVidWdnYWJsZUluZm9JbnRlcm5hbC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBfV0tJbnNwZWN0b3JEZWJ1Z2dhYmxlSW5mb0ludGVybmFsLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTk5MDM2QUUzMjNBOTU4NzQwMDAwQjA2QSAvKiBBUElEZWJ1Z2dhYmxlSW5m
by5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBBUElEZWJ1Z2dhYmxlSW5mby5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5OTAzNkFFNDIzQTk1ODc0MDAwMEIwNkEg
LyogQVBJRGVidWdnYWJsZUluZm8uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gQVBJRGVidWdnYWJsZUluZm8uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpA
QCAtNzAyMyw2ICs3MDI4LDggQEAKIAkJCQk5MzNERjgyRjFCM0JDMEI0MDBBRUE5RTMgLyogV0tJ
bWFnZVByZXZpZXdWaWV3Q29udHJvbGxlci5tbSAqLywKIAkJCQkyREQ1RTEyNzIxMEFEQzdBMDBE
QjYwMTIgLyogV0tLZXlib2FyZFNjcm9sbGluZ0FuaW1hdG9yLmggKi8sCiAJCQkJMkRENUUxMjYy
MTBBREM3QTAwREI2MDEyIC8qIFdLS2V5Ym9hcmRTY3JvbGxpbmdBbmltYXRvci5tbSAqLywKKwkJ
CQk5NTBGMjg3RTI1MjQxNEU5MDBCNzRGMUMgLyogV0tNb3VzZURldmljZU9ic2VydmVyLmggKi8s
CisJCQkJOTUwRjI4N0YyNTI0MTRFQTAwQjc0RjFDIC8qIFdLTW91c2VEZXZpY2VPYnNlcnZlci5t
bSAqLywKIAkJCQkyREI5NDI5NzIzNEU3QTdGMDBFNzc2QUQgLyogV0tNb3VzZUdlc3R1cmVSZWNv
Z25pemVyLmggKi8sCiAJCQkJMkRCOTQyOTgyMzRFN0E3RjAwRTc3NkFEIC8qIFdLTW91c2VHZXN0
dXJlUmVjb2duaXplci5tbSAqLywKIAkJCQlBMTVFRURFNDFFMzAxQ0VFMDAwMDY5QjAgLyogV0tQ
YXNzd29yZFZpZXcuaCAqLywKQEAgLTEwMzgzLDYgKzEwMzkwLDcgQEAKIAkJCWNoaWxkcmVuID0g
KAogCQkJCUNFMUEwQkNDMUE0OEU2QzYwMDU0RUY3NCAvKiBBc3NlcnRpb25TZXJ2aWNlc1NQSS5o
ICovLAogCQkJCUNEQTA0MUYzMUFDRTIxMDUwMDRBMTNFQyAvKiBCYWNrQm9hcmRTZXJ2aWNlc1NQ
SS5oICovLAorCQkJCTk1Qzk0MzkwMjUyM0MwRDAwMDU0RjNENSAvKiBCYXNlQm9hcmRTUEkuaCAq
LywKIAkJCQkyRDRBRjA4ODIwNDRDM0M0MDA2Qzg4MTcgLyogRnJvbnRCb2FyZFNlcnZpY2VzU1BJ
LmggKi8sCiAJCQkJQTEzQjNEQTEyMDdGMzlERTAwOTBDNThEIC8qIE1vYmlsZVdpRmlTUEkuaCAq
LywKIAkJCQkzMTc4QUY5NzIwRTJBN0Y4MDA3NERFOTQgLyogUERGS2l0U1BJLmggKi8sCkBAIC0x
MDc0OSw2ICsxMDc1Nyw3IEBACiAJCQkJMjkwRjQyNzIxNzJBMEM3NDAwOTM5RkYwIC8qIEF1eGls
aWFyeVByb2Nlc3NTdXBwbGVtZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlDREEwNDFGNDFBQ0Uy
MTA1MDA0QTEzRUMgLyogQmFja0JvYXJkU2VydmljZXNTUEkuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTQ2QTJCNjA5MUU1Njc2QTYwMEMzREVEQSAvKiBCYWNrZ3JvdW5kUHJvY2Vzc1Jlc3BvbnNpdmVu
ZXNzVGltZXIuaCBpbiBIZWFkZXJzICovLAorCQkJCTk1Qzk0MzkxMjUyM0MwRDAwMDU0RjNENSAv
KiBCYXNlQm9hcmRTUEkuaCBpbiBIZWFkZXJzICovLAogCQkJCUUxNjRBMkYyMTkxQUYxNEUwMDEw
NzM3RCAvKiBCbG9iRGF0YUZpbGVSZWZlcmVuY2VXaXRoU2FuZGJveEV4dGVuc2lvbi5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJRTE3MDg3NkMxNkQ2Q0E2OTAwRjk5MjI2IC8qIEJsb2JSZWdpc3RyeVBy
b3h5LmggaW4gSGVhZGVycyAqLywKIAkJCQk0RjYwMTQzMjE1NUM1QUEyMDAxRkJERTAgLyogQmxv
Y2tpbmdSZXNwb25zZU1hcC5oIGluIEhlYWRlcnMgKi8sCkBAIC0xMTYwNiw2ICsxMTYxNSw3IEBA
CiAJCQkJNUNBQkRDODYyMkM0MEZERTAwMUVERThFIC8qIFdLTWVzc2FnZUxpc3RlbmVyLmggaW4g
SGVhZGVycyAqLywKIAkJCQlDMTFFMTY5NDIxMkI4N0M1MDA5ODVGRjYgLyogV0tNb2NrRGlzcGxh
eS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDExQThEREIyMERERDFBQzAwNjBEMzRGIC8qIFdLTW9j
a01lZGlhRGV2aWNlLmggaW4gSGVhZGVycyAqLywKKwkJCQk5NTBGMjg4MDI1MjQxNEVBMDBCNzRG
MUMgLyogV0tNb3VzZURldmljZU9ic2VydmVyLmggaW4gSGVhZGVycyAqLywKIAkJCQkyREI5NDI5
OTIzNEU3QTdGMDBFNzc2QUQgLyogV0tNb3VzZUdlc3R1cmVSZWNvZ25pemVyLmggaW4gSGVhZGVy
cyAqLywKIAkJCQlCQzQwNzVGRTEyNEZGMDI3MDA2OEYyMEEgLyogV0tNdXRhYmxlQXJyYXkuaCBp
biBIZWFkZXJzICovLAogCQkJCUJDNDA3NjAwMTI0RkYwMjcwMDY4RjIwQSAvKiBXS011dGFibGVE
aWN0aW9uYXJ5LmggaW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAKaW5kZXggYjUy
YzkyNDIzYTA4NzVmNmU2Yjk2ZGI4NDI1ZmFiOWJmMDRjM2Q1NC4uNmM2ZDJhZDA0MDhiZWNhMzU5
NDc3OTBmYTEzZmNhMzljYmU3OTNiYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAKQEAgLTUwNiw2
ICs1MDYsMTYgQEAgS2V5Ym9hcmRVSU1vZGUgV2ViQ2hyb21lQ2xpZW50OjprZXlib2FyZFVJTW9k
ZSgpCiAgICAgcmV0dXJuIG1fcGFnZS5rZXlib2FyZFVJTW9kZSgpOwogfQogCitib29sIFdlYkNo
cm9tZUNsaWVudDo6aG92ZXJTdXBwb3J0ZWRCeUFueUF2YWlsYWJsZVBvaW50aW5nRGV2aWNlKCkg
Y29uc3QKK3sKKyAgICByZXR1cm4gbV9wYWdlLmhvdmVyU3VwcG9ydGVkQnlBbnlBdmFpbGFibGVQ
b2ludGluZ0RldmljZSgpOworfQorCitPcHRpb25TZXQ8UG9pbnRlckNoYXJhY3RlcmlzdGljcz4g
V2ViQ2hyb21lQ2xpZW50Ojpwb2ludGVyQ2hhcmFjdGVyaXN0aWNzT2ZBbGxBdmFpbGFibGVQb2lu
dGluZ0RldmljZXMoKSBjb25zdAoreworICAgIHJldHVybiBtX3BhZ2UucG9pbnRlckNoYXJhY3Rl
cmlzdGljc09mQWxsQXZhaWxhYmxlUG9pbnRpbmdEZXZpY2VzKCk7Cit9CisKICNpZiBFTkFCTEUo
UE9JTlRFUl9MT0NLKQogCiBib29sIFdlYkNocm9tZUNsaWVudDo6cmVxdWVzdFBvaW50ZXJMb2Nr
KCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9X
ZWJDaHJvbWVDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9y
dC9XZWJDaHJvbWVDbGllbnQuaAppbmRleCA5OTYzNDkxYjQxMTA2ODcwOTQyYWRlMDAwNjkwODMz
MDBjYzU3MWE4Li4zNWJhNWE3NWVhMzMwYmUwYWMzM2M2YjIzNjg3NzFmMzhiZmE1ZWRkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21l
Q2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dl
YkNocm9tZUNsaWVudC5oCkBAIC0xMTIsNiArMTEyLDkgQEAgcHJpdmF0ZToKIAogICAgIFdlYkNv
cmU6OktleWJvYXJkVUlNb2RlIGtleWJvYXJkVUlNb2RlKCkgZmluYWw7CiAKKyAgICBib29sIGhv
dmVyU3VwcG9ydGVkQnlBbnlBdmFpbGFibGVQb2ludGluZ0RldmljZSgpIGNvbnN0IGZpbmFsOwor
ICAgIE9wdGlvblNldDxXZWJDb3JlOjpQb2ludGVyQ2hhcmFjdGVyaXN0aWNzPiBwb2ludGVyQ2hh
cmFjdGVyaXN0aWNzT2ZBbGxBdmFpbGFibGVQb2ludGluZ0RldmljZXMoKSBjb25zdCBmaW5hbDsK
KwogICAgIC8vIEhvc3RXaW5kb3cgbWVtYmVyIGZ1bmN0aW9uIGZpbmFscy4KICAgICB2b2lkIGlu
dmFsaWRhdGVSb290Vmlldyhjb25zdCBXZWJDb3JlOjpJbnRSZWN0JikgZmluYWw7CiAgICAgdm9p
ZCBpbnZhbGlkYXRlQ29udGVudHNBbmRSb290Vmlldyhjb25zdCBXZWJDb3JlOjpJbnRSZWN0Jikg
ZmluYWw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQ
YWdlLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKaW5kZXgg
ZDUzZDMwNDNmNWE3NjEwZGViYmUzMjU3MGE0OGQwZTI1YWY0N2UxMi4uZDA4YWY1YTU3MDI0Y2Fh
YzY3Njg3MGJjZjkwOWY0ZTdlMWQzNGY5YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJQYWdlL1dlYlBhZ2UuaApAQCAtNzUsNiArNzUsNyBAQAogI2luY2x1ZGUgPFdlYkNvcmUvUGFn
ZUlkZW50aWZpZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1BhZ2VPdmVybGF5Lmg+CiAjaW5jbHVk
ZSA8V2ViQ29yZS9QbHVnaW5EYXRhLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9Qb2ludGVyQ2hhcmFj
dGVyaXN0aWNzLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Qb2ludGVySUQuaD4KICNpbmNsdWRlIDxX
ZWJDb3JlL1JlbmRlcmluZ01vZGUuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1NlY3VyaXR5UG9saWN5
VmlvbGF0aW9uRXZlbnQuaD4KQEAgLTQxNSw2ICs0MTYsOSBAQCBwdWJsaWM6CiAgICAgU3RyaW5n
IHBsYXRmb3JtVXNlckFnZW50KGNvbnN0IFVSTCYpIGNvbnN0OwogICAgIFdlYkNvcmU6OktleWJv
YXJkVUlNb2RlIGtleWJvYXJkVUlNb2RlKCk7CiAKKyAgICBib29sIGhvdmVyU3VwcG9ydGVkQnlB
bnlBdmFpbGFibGVQb2ludGluZ0RldmljZSgpIGNvbnN0OworICAgIE9wdGlvblNldDxXZWJDb3Jl
OjpQb2ludGVyQ2hhcmFjdGVyaXN0aWNzPiBwb2ludGVyQ2hhcmFjdGVyaXN0aWNzT2ZBbGxBdmFp
bGFibGVQb2ludGluZ0RldmljZXMoKSBjb25zdDsKKwogICAgIHZvaWQgZGlkSW5zZXJ0TWVudUVs
ZW1lbnQoV2ViQ29yZTo6SFRNTE1lbnVFbGVtZW50Jik7CiAgICAgdm9pZCBkaWRSZW1vdmVNZW51
RWxlbWVudChXZWJDb3JlOjpIVE1MTWVudUVsZW1lbnQmKTsKICAgICB2b2lkIGRpZEluc2VydE1l
bnVJdGVtRWxlbWVudChXZWJDb3JlOjpIVE1MTWVudUl0ZW1FbGVtZW50Jik7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9ndGsvV2ViUGFnZUd0ay5jcHAgYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9ndGsvV2ViUGFnZUd0ay5jcHAKaW5kZXgg
ZGE0NzU1MDJhMzBhMzk4NTFhMTdmNWU3MGViNzJjNDNhMGMzYWY3Mi4uZDlhZjk5NGNmMDkwOWYw
YmJiYjZmZTc0YzY4ZWQ3MDNiZmU3NWU3MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYlBhZ2UvZ3RrL1dlYlBhZ2VHdGsuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJQYWdlL2d0ay9XZWJQYWdlR3RrLmNwcApAQCAtNDMsNiArNDMsOCBAQAogI2lu
Y2x1ZGUgPFdlYkNvcmUvTm90SW1wbGVtZW50ZWQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1BhZ2Uu
aD4KICNpbmNsdWRlIDxXZWJDb3JlL1BsYXRmb3JtS2V5Ym9hcmRFdmVudC5oPgorI2luY2x1ZGUg
PFdlYkNvcmUvUGxhdGZvcm1TY3JlZW4uaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1BvaW50ZXJDaGFy
YWN0ZXJpc3RpY3MuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1JlbmRlclRoZW1lLmg+CiAjaW5jbHVk
ZSA8V2ViQ29yZS9TZXR0aW5ncy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU2hhcmVkQnVmZmVyLmg+
CkBAIC0xMjksNiArMTMxLDI0IEBAIFN0cmluZyBXZWJQYWdlOjpwbGF0Zm9ybVVzZXJBZ2VudChj
b25zdCBVUkwmIHVybCkgY29uc3QKICAgICByZXR1cm4gV2ViQ29yZTo6c3RhbmRhcmRVc2VyQWdl
bnRGb3JVUkwodXJsKTsKIH0KIAorYm9vbCBXZWJQYWdlOjpob3ZlclN1cHBvcnRlZEJ5QW55QXZh
aWxhYmxlUG9pbnRpbmdEZXZpY2UoKSBjb25zdAoreworI2lmIEVOQUJMRShUT1VDSF9FVkVOVFMp
CisgICAgcmV0dXJuICFzY3JlZW5IYXNUb3VjaERldmljZSgpOworI2Vsc2UKKyAgICByZXR1cm4g
dHJ1ZTsKKyNlbmRpZgorfQorCitPcHRpb25TZXQ8UG9pbnRlckNoYXJhY3RlcmlzdGljcz4gV2Vi
UGFnZTo6cG9pbnRlckNoYXJhY3RlcmlzdGljc09mQWxsQXZhaWxhYmxlUG9pbnRpbmdEZXZpY2Vz
KCkgY29uc3QKK3sKKyNpZiBFTkFCTEUoVE9VQ0hfRVZFTlRTKQorICAgIGlmIChzY3JlZW5IYXNU
b3VjaERldmljZSgpKQorICAgICAgICByZXR1cm4gUG9pbnRlckNoYXJhY3RlcmlzdGljczo6Q29h
cnNlOworI2VuZGlmCisgICAgcmV0dXJuIFBvaW50ZXJDaGFyYWN0ZXJpc3RpY3M6OkZpbmU7Cit9
CisKIHZvaWQgV2ViUGFnZTo6Z2V0Q2VudGVyRm9yWm9vbUdlc3R1cmUoY29uc3QgSW50UG9pbnQm
IGNlbnRlckluVmlld0Nvb3JkaW5hdGVzLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYkNvcmU6
OkludFBvaW50JiYpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewogICAgIEludFBvaW50IHJlc3Vs
dCA9IG1haW5GcmFtZVZpZXcoKS0+cm9vdFZpZXdUb0NvbnRlbnRzKGNlbnRlckluVmlld0Nvb3Jk
aW5hdGVzKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL2lv
cy9XZWJQYWdlSU9TLm1tIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dl
YlBhZ2VJT1MubW0KaW5kZXggNTY2NzQ5NjQ5MDczYmU3YzM2ODUxMjU4NGM3MjkzNjU4NjNmYzE5
Ny4uMWE5YTk2NTVkMTBkYTRkZTdlYWJlZDUzODY5ZGVlM2NkNmE3ZWJmMCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW0KKysrIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW0KQEAgLTEx
Niw2ICsxMTYsNyBAQAogI2ltcG9ydCA8V2ViQ29yZS9QbGF0Zm9ybUtleWJvYXJkRXZlbnQuaD4K
ICNpbXBvcnQgPFdlYkNvcmUvUGxhdGZvcm1Nb3VzZUV2ZW50Lmg+CiAjaW1wb3J0IDxXZWJDb3Jl
L1BvaW50ZXJDYXB0dXJlQ29udHJvbGxlci5oPgorI2ltcG9ydCA8V2ViQ29yZS9Qb2ludGVyQ2hh
cmFjdGVyaXN0aWNzLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1F1aXJrcy5oPgogI2ltcG9ydCA8V2Vi
Q29yZS9SYW5nZS5oPgogI2ltcG9ydCA8V2ViQ29yZS9SZW5kZXJCbG9jay5oPgpAQCAtMzk4OCw2
ICszOTg5LDMwIEBAIFN0cmluZyBXZWJQYWdlOjpwbGF0Zm9ybVVzZXJBZ2VudChjb25zdCBVUkwm
KSBjb25zdAogICAgIHJldHVybiBTdHJpbmcoKTsKIH0KIAorc3RhdGljIGJvb2wgaGFzTW91c2VE
ZXZpY2UoKQoreworI2lmIEhBVkUoVUlLSVRfV0lUSF9NT1VTRV9TVVBQT1JUKSAmJiBQTEFURk9S
TShJT1MpCisgICAgcmV0dXJuIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmhhc01vdXNlRGV2aWNl
KCk7CisjZWxpZiBIQVZFKFVJS0lUX1dJVEhfTU9VU0VfU1VQUE9SVCkgJiYgUExBVEZPUk0oTUFD
Q0FUQUxZU1QpCisgICAgcmV0dXJuIHRydWU7CisjZWxzZQorICAgIHJldHVybiBmYWxzZTsKKyNl
bmRpZgorfQorCitib29sIFdlYlBhZ2U6OmhvdmVyU3VwcG9ydGVkQnlBbnlBdmFpbGFibGVQb2lu
dGluZ0RldmljZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIGhhc01vdXNlRGV2aWNlKCk7Cit9CisK
K09wdGlvblNldDxQb2ludGVyQ2hhcmFjdGVyaXN0aWNzPiBXZWJQYWdlOjpwb2ludGVyQ2hhcmFj
dGVyaXN0aWNzT2ZBbGxBdmFpbGFibGVQb2ludGluZ0RldmljZXMoKSBjb25zdAoreworICAgIE9w
dGlvblNldDxQb2ludGVyQ2hhcmFjdGVyaXN0aWNzPiByZXN1bHQoUG9pbnRlckNoYXJhY3Rlcmlz
dGljczo6Q29hcnNlKTsKKyAgICBpZiAoaGFzTW91c2VEZXZpY2UoKSkKKyAgICAgICAgcmVzdWx0
LmFkZChQb2ludGVyQ2hhcmFjdGVyaXN0aWNzOjpGaW5lKTsKKyAgICByZXR1cm4gcmVzdWx0Owor
fQorCiB2b2lkIFdlYlBhZ2U6OmhhcmR3YXJlS2V5Ym9hcmRBdmFpbGFiaWxpdHlDaGFuZ2VkKGJv
b2wga2V5Ym9hcmRJc0F0dGFjaGVkKQogewogICAgIG1fa2V5Ym9hcmRJc0F0dGFjaGVkID0ga2V5
Ym9hcmRJc0F0dGFjaGVkOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YlBhZ2UvbWFjL1dlYlBhZ2VNYWMubW0gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFn
ZS9tYWMvV2ViUGFnZU1hYy5tbQppbmRleCA1YWViNGIxNTM3ZDMzNDIxMTZjYTIxYTU1NTM1M2M0
YWFlYzAwZTU3Li5iODJmODBlMGUyNzBhMDQzOTIwNDI1NTZlOWU1OGFmN2RmZjAzODAzIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvV2ViUGFnZU1hYy5t
bQorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvV2ViUGFnZU1hYy5t
bQpAQCAtODMsNiArODMsNyBAQAogI2ltcG9ydCA8V2ViQ29yZS9QYWdlT3ZlcmxheUNvbnRyb2xs
ZXIuaD4KICNpbXBvcnQgPFdlYkNvcmUvUGxhdGZvcm1LZXlib2FyZEV2ZW50Lmg+CiAjaW1wb3J0
IDxXZWJDb3JlL1BsdWdpbkRvY3VtZW50Lmg+CisjaW1wb3J0IDxXZWJDb3JlL1BvaW50ZXJDaGFy
YWN0ZXJpc3RpY3MuaD4KICNpbXBvcnQgPFdlYkNvcmUvUmVuZGVyRWxlbWVudC5oPgogI2ltcG9y
dCA8V2ViQ29yZS9SZW5kZXJPYmplY3QuaD4KICNpbXBvcnQgPFdlYkNvcmUvUmVuZGVyU3R5bGUu
aD4KQEAgLTgzMCw2ICs4MzEsMTYgQEAgU3RyaW5nIFdlYlBhZ2U6OnBsYXRmb3JtVXNlckFnZW50
KGNvbnN0IFVSTCYpIGNvbnN0CiAgICAgcmV0dXJuIFN0cmluZygpOwogfQogCitib29sIFdlYlBh
Z2U6OmhvdmVyU3VwcG9ydGVkQnlBbnlBdmFpbGFibGVQb2ludGluZ0RldmljZSgpIGNvbnN0Cit7
CisgICAgcmV0dXJuIHRydWU7Cit9CisKK09wdGlvblNldDxQb2ludGVyQ2hhcmFjdGVyaXN0aWNz
PiBXZWJQYWdlOjpwb2ludGVyQ2hhcmFjdGVyaXN0aWNzT2ZBbGxBdmFpbGFibGVQb2ludGluZ0Rl
dmljZXMoKSBjb25zdAoreworICAgIHJldHVybiBQb2ludGVyQ2hhcmFjdGVyaXN0aWNzOjpGaW5l
OworfQorCiB2b2lkIFdlYlBhZ2U6OnBlcmZvcm1JbW1lZGlhdGVBY3Rpb25IaXRUZXN0QXRMb2Nh
dGlvbihXZWJDb3JlOjpGbG9hdFBvaW50IGxvY2F0aW9uSW5WaWV3Q29vcmRpbmF0ZXMpCiB7CiAg
ICAgbGF5b3V0SWZOZWVkZWQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJQYWdlL3BsYXlzdGF0aW9uL1dlYlBhZ2VQbGF5U3RhdGlvbi5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9wbGF5c3RhdGlvbi9XZWJQYWdlUGxheVN0YXRpb24uY3Bw
CmluZGV4IGNiZGE0OGM3ZDY1YjFhNjgyNjZjYjYyNjhlMGY3ZTFmMmFlYTU1ODYuLjcyNmU5MjMz
YzUxYjMxYzZlNDZmZjEyNWI0ZTVmZWYzMzY4NzczZTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJQYWdlL3BsYXlzdGF0aW9uL1dlYlBhZ2VQbGF5U3RhdGlvbi5jcHAK
KysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvcGxheXN0YXRpb24vV2ViUGFn
ZVBsYXlTdGF0aW9uLmNwcApAQCAtMjcsNiArMjcsNyBAQAogI2luY2x1ZGUgIldlYlBhZ2UuaCIK
IAogI2luY2x1ZGUgPFdlYkNvcmUvTm90SW1wbGVtZW50ZWQuaD4KKyNpbmNsdWRlIDxXZWJDb3Jl
L1BvaW50ZXJDaGFyYWN0ZXJpc3RpY3MuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1NldHRpbmdzLmg+
CiAjaW5jbHVkZSA8V2ViQ29yZS9Vc2VyQWdlbnQuaD4KIApAQCAtNjUsNiArNjYsMTYgQEAgU3Ry
aW5nIFdlYlBhZ2U6OnBsYXRmb3JtVXNlckFnZW50KGNvbnN0IFVSTCYgdXJsKSBjb25zdAogICAg
IHJldHVybiBXZWJDb3JlOjpzdGFuZGFyZFVzZXJBZ2VudEZvclVSTCh1cmwpOwogfQogCitib29s
IFdlYlBhZ2U6OmhvdmVyU3VwcG9ydGVkQnlBbnlBdmFpbGFibGVQb2ludGluZ0RldmljZSgpIGNv
bnN0Cit7CisgICAgcmV0dXJuIHRydWU7Cit9CisKK09wdGlvblNldDxQb2ludGVyQ2hhcmFjdGVy
aXN0aWNzPiBXZWJQYWdlOjpwb2ludGVyQ2hhcmFjdGVyaXN0aWNzT2ZBbGxBdmFpbGFibGVQb2lu
dGluZ0RldmljZXMoKSBjb25zdAoreworICAgIHJldHVybiBQb2ludGVyQ2hhcmFjdGVyaXN0aWNz
OjpGaW5lOworfQorCiBib29sIFdlYlBhZ2U6OmhhbmRsZUVkaXRpbmdLZXlib2FyZEV2ZW50KFdl
YkNvcmU6OktleWJvYXJkRXZlbnQmIGV2ZW50KQogewogICAgIG5vdEltcGxlbWVudGVkKCk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS93aW4vV2ViUGFnZVdp
bi5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS93aW4vV2ViUGFnZVdpbi5j
cHAKaW5kZXggMjg5M2VkM2YzYjhjOWMyODQ3MmI4YWFmN2EzOTllMjU3YmY4YzUyZC4uZWRhZDdk
NTAzN2QxZTQwOGMwMzk0ZjM1MTVmNzg4ZjhlNGQ2ZGRkNCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYlBhZ2Uvd2luL1dlYlBhZ2VXaW4uY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL3dpbi9XZWJQYWdlV2luLmNwcApAQCAtNDMsNiArNDMs
NyBAQAogI2luY2x1ZGUgPFdlYkNvcmUvTm90SW1wbGVtZW50ZWQuaD4KICNpbmNsdWRlIDxXZWJD
b3JlL1BhZ2UuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1BsYXRmb3JtS2V5Ym9hcmRFdmVudC5oPgor
I2luY2x1ZGUgPFdlYkNvcmUvUG9pbnRlckNoYXJhY3RlcmlzdGljcy5oPgogI2luY2x1ZGUgPFdl
YkNvcmUvU2V0dGluZ3MuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1NoYXJlZEJ1ZmZlci5oPgogI2lu
Y2x1ZGUgPFdlYkNvcmUvVXNlckFnZW50Lmg+CkBAIC0xMTUsNiArMTE2LDE2IEBAIFN0cmluZyBX
ZWJQYWdlOjpwbGF0Zm9ybVVzZXJBZ2VudChjb25zdCBVUkwmKSBjb25zdAogICAgIHJldHVybiB7
IH07CiB9CiAKK2Jvb2wgV2ViUGFnZTo6aG92ZXJTdXBwb3J0ZWRCeUFueUF2YWlsYWJsZVBvaW50
aW5nRGV2aWNlKCkgY29uc3QKK3sKKyAgICByZXR1cm4gdHJ1ZTsKK30KKworT3B0aW9uU2V0PFBv
aW50ZXJDaGFyYWN0ZXJpc3RpY3M+IFdlYlBhZ2U6OnBvaW50ZXJDaGFyYWN0ZXJpc3RpY3NPZkFs
bEF2YWlsYWJsZVBvaW50aW5nRGV2aWNlcygpIGNvbnN0Cit7CisgICAgcmV0dXJuIFBvaW50ZXJD
aGFyYWN0ZXJpc3RpY3M6OkZpbmU7Cit9CisKIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBDdHJsS2V5
ID0gMSA8PCAwOwogc3RhdGljIGNvbnN0IHVuc2lnbmVkIEFsdEtleSA9IDEgPDwgMTsKIHN0YXRp
YyBjb25zdCB1bnNpZ25lZCBTaGlmdEtleSA9IDEgPDwgMjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL3dwZS9XZWJQYWdlV1BFLmNwcCBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJQYWdlL3dwZS9XZWJQYWdlV1BFLmNwcAppbmRleCBmOWZjNDFhMWZi
Njk3NmIxNmI3YTUzMjBhZWM5MmIxMWIzMDBkN2I2Li40YTU0MGEyNTA3OThkOWYyYWVkYTlmMDJh
MTAwYjYyOTU2MmJiN2Y4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
UGFnZS93cGUvV2ViUGFnZVdQRS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YlBhZ2Uvd3BlL1dlYlBhZ2VXUEUuY3BwCkBAIC0zMCw2ICszMCw4IEBACiAjaW5jbHVkZSAiV2Vi
UGFnZVByb3h5LmgiCiAjaW5jbHVkZSAiV2ViUGFnZVByb3h5TWVzc2FnZXMuaCIKICNpbmNsdWRl
IDxXZWJDb3JlL05vdEltcGxlbWVudGVkLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9QbGF0Zm9ybVNj
cmVlbi5oPgorI2luY2x1ZGUgPFdlYkNvcmUvUG9pbnRlckNoYXJhY3RlcmlzdGljcy5oPgogCiBu
YW1lc3BhY2UgV2ViS2l0IHsKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwpAQCAtNzMsNCArNzUs
MjIgQEAgU3RyaW5nIFdlYlBhZ2U6OnBsYXRmb3JtVXNlckFnZW50KGNvbnN0IFVSTCYpIGNvbnN0
CiAgICAgcmV0dXJuIFN0cmluZygpOwogfQogCitib29sIFdlYlBhZ2U6OmhvdmVyU3VwcG9ydGVk
QnlBbnlBdmFpbGFibGVQb2ludGluZ0RldmljZSgpIGNvbnN0Cit7CisjaWYgRU5BQkxFKFRPVUNI
X0VWRU5UUykKKyAgICByZXR1cm4gIXNjcmVlbkhhc1RvdWNoRGV2aWNlKCk7CisjZWxzZQorICAg
IHJldHVybiB0cnVlOworI2VuZGlmCit9CisKK09wdGlvblNldDxQb2ludGVyQ2hhcmFjdGVyaXN0
aWNzPiBXZWJQYWdlOjpwb2ludGVyQ2hhcmFjdGVyaXN0aWNzT2ZBbGxBdmFpbGFibGVQb2ludGlu
Z0RldmljZXMoKSBjb25zdAoreworI2lmIEVOQUJMRShUT1VDSF9FVkVOVFMpCisgICAgaWYgKHNj
cmVlbkhhc1RvdWNoRGV2aWNlKCkpCisgICAgICAgIHJldHVybiBQb2ludGVyQ2hhcmFjdGVyaXN0
aWNzOjpDb2Fyc2U7CisjZW5kaWYKKyAgICByZXR1cm4gUG9pbnRlckNoYXJhY3RlcmlzdGljczo6
RmluZTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViUHJvY2Vzcy5jcHAKaW5kZXggNjEwZDM3NzkwOGNiNTBhMGEyMjk0MTE1ZGYwMzllMGJlOTY0
YTM5Yy4uNTllMDdiMDgwMWFmZjk3MGRmYzZhM2FlNTQxMDNmZDlmNzVhMGZkYiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcApAQCAtMTA1MCw2ICsxMDUwLDIwIEBAIHZv
aWQgV2ViUHJvY2Vzczo6bWVzc2FnZXNBdmFpbGFibGVGb3JQb3J0KGNvbnN0IE1lc3NhZ2VQb3J0
SWRlbnRpZmllciYgaWRlbnRpZmllCiAgICAgTWVzc2FnZVBvcnQ6Om5vdGlmeU1lc3NhZ2VBdmFp
bGFibGUoaWRlbnRpZmllcik7CiB9CiAKKyNpZiBIQVZFKFVJS0lUX1dJVEhfTU9VU0VfU1VQUE9S
VCkgJiYgUExBVEZPUk0oSU9TKQorCit2b2lkIFdlYlByb2Nlc3M6OnNldEhhc01vdXNlRGV2aWNl
KGJvb2wgaGFzTW91c2VEZXZpY2UpCit7CisgICAgaWYgKGhhc01vdXNlRGV2aWNlID09IG1faGFz
TW91c2VEZXZpY2UpCisgICAgICAgIHJldHVybjsKKworICAgIG1faGFzTW91c2VEZXZpY2UgPSBo
YXNNb3VzZURldmljZTsKKworICAgIFBhZ2U6OnVwZGF0ZVN0eWxlRm9yQWxsUGFnZXNBZnRlckds
b2JhbENoYW5nZUluRW52aXJvbm1lbnQoKTsKK30KKworI2VuZGlmIC8vIEhBVkUoVUlLSVRfV0lU
SF9NT1VTRV9TVVBQT1JUKSAmJiBQTEFURk9STShJT1MpCisKICNpZiBFTkFCTEUoR0FNRVBBRCkK
IAogdm9pZCBXZWJQcm9jZXNzOjpzZXRJbml0aWFsR2FtZXBhZHMoY29uc3QgVmVjdG9yPFdlYktp
dDo6R2FtZXBhZERhdGE+JiBnYW1lcGFkRGF0YXMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBy
b2Nlc3MuaAppbmRleCA5ZDBkZGJmZDM4ZGUzODFkYzI1ZGJlYjk3ZDQ4NjllOTRmZGViODI3Li5m
M2UxOWFiNmFiMzJiZDBlYzY0Y2Q3Mjc3OTNmNGJjZDNlNGQ0OGY0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJQcm9jZXNzLmgKQEAgLTE4Nyw2ICsxODcsMTEgQEAgcHVibGljOgogCiAgICAg
Ym9vbCBmdWxsS2V5Ym9hcmRBY2Nlc3NFbmFibGVkKCkgY29uc3QgeyByZXR1cm4gbV9mdWxsS2V5
Ym9hcmRBY2Nlc3NFbmFibGVkOyB9CiAKKyNpZiBIQVZFKFVJS0lUX1dJVEhfTU9VU0VfU1VQUE9S
VCkgJiYgUExBVEZPUk0oSU9TKQorICAgIGJvb2wgaGFzTW91c2VEZXZpY2UoKSBjb25zdCB7IHJl
dHVybiBtX2hhc01vdXNlRGV2aWNlOyB9CisgICAgdm9pZCBzZXRIYXNNb3VzZURldmljZShib29s
KTsKKyNlbmRpZgorCiAgICAgV2ViRnJhbWUqIHdlYkZyYW1lKFdlYkNvcmU6OkZyYW1lSWRlbnRp
ZmllcikgY29uc3Q7CiAgICAgVmVjdG9yPFdlYkZyYW1lKj4gd2ViRnJhbWVzKCkgY29uc3Q7CiAg
ICAgdm9pZCBhZGRXZWJGcmFtZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIFdlYkZyYW1lKik7
CkBAIC01NTQsNiArNTU5LDEwIEBAIHByaXZhdGU6CiAKICAgICBib29sIG1fZnVsbEtleWJvYXJk
QWNjZXNzRW5hYmxlZCB7IGZhbHNlIH07CiAKKyNpZiBIQVZFKFVJS0lUX1dJVEhfTU9VU0VfU1VQ
UE9SVCkgJiYgUExBVEZPUk0oSU9TKQorICAgIGJvb2wgbV9oYXNNb3VzZURldmljZSB7IGZhbHNl
IH07CisjZW5kaWYKKwogICAgIEhhc2hNYXA8V2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBXZWJG
cmFtZSo+IG1fZnJhbWVNYXA7CiAKICAgICB0eXBlZGVmIEhhc2hNYXA8Y29uc3QgY2hhciosIHN0
ZDo6dW5pcXVlX3B0cjxXZWJQcm9jZXNzU3VwcGxlbWVudD4sIFB0ckhhc2g8Y29uc3QgY2hhcio+
PiBXZWJQcm9jZXNzU3VwcGxlbWVudE1hcDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJQcm9jZXNzLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYlByb2Nlc3MubWVzc2FnZXMuaW4KaW5kZXggMDEyMzY3NTdhNWM1ZjBkMjgwYzZkZDFmOWEx
ODE1MmJiY2YxOWMwNC4uMzcwMDE3OTk3OTMzMjkxNDYyZjYwZmQxNTg4MzgyYWY3NTU2NGI5ZCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MubWVzc2FnZXMu
aW4KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MubWVzc2FnZXMuaW4K
QEAgLTUyLDYgKzUyLDEwIEBAIG1lc3NhZ2VzIC0+IFdlYlByb2Nlc3MgTGVnYWN5UmVjZWl2ZXIg
Tm90UmVmQ291bnRlZCB7CiAgICAgVXNlclByZWZlcnJlZExhbmd1YWdlc0NoYW5nZWQoKQogICAg
IEZ1bGxLZXlib2FyZEFjY2Vzc01vZGVDaGFuZ2VkKGJvb2wgZnVsbEtleWJvYXJkQWNjZXNzRW5h
YmxlZCkKIAorI2lmIEhBVkUoVUlLSVRfV0lUSF9NT1VTRV9TVVBQT1JUKSAmJiBQTEFURk9STShJ
T1MpCisgICAgU2V0SGFzTW91c2VEZXZpY2UoYm9vbCBoYXNNb3VzZURldmljZSkKKyNlbmRpZgor
CiAgICAgIyBQbHVnLWlucy4KICAgICBEaWRBZGRQbHVnSW5BdXRvU3RhcnRPcmlnaW5IYXNoKHVp
bnQzMl90IGhhc2gsIFdhbGxUaW1lIGV4cGlyYXRpb25UaW1lKQogICAgIFJlc2V0UGx1Z0luQXV0
b1N0YXJ0T3JpZ2luSGFzaGVzKEhhc2hNYXA8dWludDMyX3QsV2FsbFRpbWU+IGhhc2hlcykKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9XZWJQcm9jZXNzQ29jb2Eu
bW0gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvV2ViUHJvY2Vzc0NvY29hLm1tCmlu
ZGV4IGY5NjQ5YWQ2OGViNDk3YmNiNDQ4OWU3N2EyZjFjZDNmMGUwM2RhYjAuLjYyOTU1MjhjYjRi
ZjFmNWE5MTgzYTMyODY1OTIzNmYxMWIyZWRiYWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9jb2NvYS9XZWJQcm9jZXNzQ29jb2EubW0KKysrIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL2NvY29hL1dlYlByb2Nlc3NDb2NvYS5tbQpAQCAtMjk5LDYgKzI5OSwxMCBAQCB2
b2lkIFdlYlByb2Nlc3M6OnBsYXRmb3JtSW5pdGlhbGl6ZVdlYlByb2Nlc3MoV2ViUHJvY2Vzc0Ny
ZWF0aW9uUGFyYW1ldGVycyYgcGFyYQogICAgICAgICB9KTsKICAgICB9CiAKKyNpZiBIQVZFKFVJ
S0lUX1dJVEhfTU9VU0VfU1VQUE9SVCkgJiYgUExBVEZPUk0oSU9TKQorICAgIG1faGFzTW91c2VE
ZXZpY2UgPSBwYXJhbWV0ZXJzLmhhc01vdXNlRGV2aWNlOworI2VuZGlmCisKICAgICBXZWJDb3Jl
OjpzZXRTY3JlZW5Qcm9wZXJ0aWVzKHBhcmFtZXRlcnMuc2NyZWVuUHJvcGVydGllcyk7CiAKICNp
ZiBQTEFURk9STShNQUMpICYmIEVOQUJMRShXRUJQUk9DRVNTX1dJTkRPV1NFUlZFUl9CTE9DS0lO
RykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvaW9zL1dlYkNvcmVTdXBwb3J0L1dl
YkNocm9tZUNsaWVudElPUy5oIGIvU291cmNlL1dlYktpdExlZ2FjeS9pb3MvV2ViQ29yZVN1cHBv
cnQvV2ViQ2hyb21lQ2xpZW50SU9TLmgKaW5kZXggYTkyYmFhNmIzMDU5ZGU4OTE0NWYwM2IxYTU3
NTdmOTcyYTk0MDk5OS4uMTkxYTBhZjlhNWViZmRiMTc4ZDY2MDE4NTY3OGE0MjJlZGU1NTI0YiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9pb3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hy
b21lQ2xpZW50SU9TLmgKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9pb3MvV2ViQ29yZVN1cHBv
cnQvV2ViQ2hyb21lQ2xpZW50SU9TLmgKQEAgLTUwLDYgKzUwLDkgQEAgcHJpdmF0ZToKICAgICB2
b2lkIHJ1bk9wZW5QYW5lbChXZWJDb3JlOjpGcmFtZSYsIFdlYkNvcmU6OkZpbGVDaG9vc2VyJikg
ZmluYWw7CiAgICAgdm9pZCBzaG93U2hhcmVTaGVldChXZWJDb3JlOjpTaGFyZURhdGFXaXRoUGFy
c2VkVVJMJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJikgZmluYWw7CiAKKyAgICBi
b29sIGhvdmVyU3VwcG9ydGVkQnlBbnlBdmFpbGFibGVQb2ludGluZ0RldmljZSgpIGNvbnN0IGZp
bmFsIHsgcmV0dXJuIGZhbHNlOyB9CisgICAgT3B0aW9uU2V0PFdlYkNvcmU6OlBvaW50ZXJDaGFy
YWN0ZXJpc3RpY3M+IHBvaW50ZXJDaGFyYWN0ZXJpc3RpY3NPZkFsbEF2YWlsYWJsZVBvaW50aW5n
RGV2aWNlcygpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIFdlYkNvcmU6OlBvaW50ZXJDaGFyYWN0ZXJp
c3RpY3M6OkNvYXJzZTsgfQorCiAgICAgdm9pZCBzZXRDdXJzb3IoY29uc3QgV2ViQ29yZTo6Q3Vy
c29yJikgZmluYWwgeyB9CiAgICAgdm9pZCBzZXRDdXJzb3JIaWRkZW5VbnRpbE1vdXNlTW92ZXMo
Ym9vbCkgZmluYWwgeyB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dl
YkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMv
V2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKaW5kZXggMjBiM2EwMjU2NmEyZTE3MjQ3
YzBlYTUxNzc0OGE0NmI0NDA4YTY5ZC4uYzdjMWFkMjMxMDVhMDAxYzdjNzgzNTIwY2QyYmY2YTU5
MmI3YjYxNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBv
cnQvV2ViQ2hyb21lQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29y
ZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKQEAgLTE1OCw2ICsxNTgsOSBAQCBwcml2YXRlOgog
CiAgICAgV2ViQ29yZTo6S2V5Ym9hcmRVSU1vZGUga2V5Ym9hcmRVSU1vZGUoKSBmaW5hbDsKIAor
ICAgIGJvb2wgaG92ZXJTdXBwb3J0ZWRCeUFueUF2YWlsYWJsZVBvaW50aW5nRGV2aWNlKCkgY29u
c3Qgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1ZTsgfQorICAgIE9wdGlvblNldDxXZWJDb3JlOjpQb2lu
dGVyQ2hhcmFjdGVyaXN0aWNzPiBwb2ludGVyQ2hhcmFjdGVyaXN0aWNzT2ZBbGxBdmFpbGFibGVQ
b2ludGluZ0RldmljZXMoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBXZWJDb3JlOjpQb2ludGVy
Q2hhcmFjdGVyaXN0aWNzOjpGaW5lOyB9CisKICAgICBOU1Jlc3BvbmRlciAqZmlyc3RSZXNwb25k
ZXIoKSBmaW5hbDsKICAgICB2b2lkIG1ha2VGaXJzdFJlc3BvbmRlcihOU1Jlc3BvbmRlciAqKSBm
aW5hbDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViQ29yZVN1cHBv
cnQvV2ViQ2hyb21lQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJDb3JlU3Vw
cG9ydC9XZWJDaHJvbWVDbGllbnQuaAppbmRleCA3NjllZmIxM2RlNzExMmQ2ZjRkM2NmY2MwNTYx
YzU3MTQ4MjI5Y2FiLi44YzlkNjFjYmNkMDVmNGMzYjJjODBiY2EyN2UxYjk5NDYxMDUyNDJhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJDaHJv
bWVDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJDb3JlU3VwcG9ydC9X
ZWJDaHJvbWVDbGllbnQuaApAQCAtOTQsNiArOTQsOSBAQCBwdWJsaWM6CiAKICAgICBXZWJDb3Jl
OjpLZXlib2FyZFVJTW9kZSBrZXlib2FyZFVJTW9kZSgpIGZpbmFsOwogCisgICAgYm9vbCBob3Zl
clN1cHBvcnRlZEJ5QW55QXZhaWxhYmxlUG9pbnRpbmdEZXZpY2UoKSBjb25zdCBmaW5hbCB7IHJl
dHVybiB0cnVlOyB9CisgICAgT3B0aW9uU2V0PFdlYkNvcmU6OlBvaW50ZXJDaGFyYWN0ZXJpc3Rp
Y3M+IHBvaW50ZXJDaGFyYWN0ZXJpc3RpY3NPZkFsbEF2YWlsYWJsZVBvaW50aW5nRGV2aWNlcygp
IGNvbnN0IGZpbmFsIHsgcmV0dXJuIFdlYkNvcmU6OlBvaW50ZXJDaGFyYWN0ZXJpc3RpY3M6OkZp
bmU7IH0KKwogICAgIHZvaWQgaW52YWxpZGF0ZVJvb3RWaWV3KGNvbnN0IFdlYkNvcmU6OkludFJl
Y3QmKSBmaW5hbDsKICAgICB2b2lkIGludmFsaWRhdGVDb250ZW50c0FuZFJvb3RWaWV3KGNvbnN0
IFdlYkNvcmU6OkludFJlY3QmKSBmaW5hbDsKICAgICB2b2lkIGludmFsaWRhdGVDb250ZW50c0Zv
clNsb3dTY3JvbGwoY29uc3QgV2ViQ29yZTo6SW50UmVjdCYpIGZpbmFsOwpkaWZmIC0tZ2l0IGEv
VG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IDcxZTQ3Y2RmODZlNGE1MGE0
NjYwNGM0N2RmNTA0MWZhZDBiNGFhNmMuLmE4OTJjNDQ5Nzg3NDE3NjQwMTIzYjc3MDhmZWFhYTlj
NGM5MzU3NDggMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VM
b2cKQEAgLTEsMyArMSwyMyBAQAorMjAyMC0xMC0wNSAgRGV2aW4gUm91c3NvICA8ZHJvdXNzb0Bh
cHBsZS5jb20+CisKKyAgICAgICAgQ1NTIGhvdmVyIGFuZCAicG9pbnRlcjogZmluZSIgbWVkaWEg
cXVlcmllcyBkbyBub3QgZXZhbHVhdGUgdG8gdHJ1ZSB3aXRoIGlPUyAxMy40IG1vdXNlIHN1cHBv
cnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwOTI5
MgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNjA2NjMxMjQ+CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL2NvY29hL1Rlc3RX
S1dlYlZpZXcuaDoKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL2NvY29hL1Rlc3RXS1dlYlZpZXcu
bW06CisgICAgICAgICgtW1Rlc3RXS1dlYlZpZXcgZXZhbHVhdGVNZWRpYVF1ZXJ5Ol0pOiBBZGRl
ZC4KKyAgICAgICAgQ3JlYXRlIGhlbHBlciBmdW5jdGlvbiBmb3Igc3luY2hyb25vdXNseSB0ZXN0
aW5nIG1lZGlhIHF1ZXJpZXMuCisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktp
dENvY29hL2lPU01vdXNlU3VwcG9ydC5tbToKKyAgICAgICAgKGlPU01vdXNlU3VwcG9ydC5Nb3Vz
ZUluaXRpYWxseURpc2Nvbm5lY3RlZCk6IEFkZGVkLgorICAgICAgICAoaU9TTW91c2VTdXBwb3J0
Lk1vdXNlSW5pdGlhbGx5Q29ubmVjdGVkKTogQWRkZWQuCisgICAgICAgIChpT1NNb3VzZVN1cHBv
cnQuTW91c2VMYXRlckRpc2Nvbm5lY3RlZCk6IEFkZGVkLgorICAgICAgICAoaU9TTW91c2VTdXBw
b3J0Lk1vdXNlTGF0ZXJDb25uZWN0ZWQpOiBBZGRlZC4KKyAgICAgICAgKGlPU01vdXNlU3VwcG9y
dC5Nb3VzZUFsd2F5c0Nvbm5lY3RlZCk6IEFkZGVkLgorCiAyMDIwLTEwLTA2ICBBZHJpYW4gUGVy
ZXogZGUgQ2FzdHJvICA8YXBlcmV6QGlnYWxpYS5jb20+CiAKICAgICAgICAgUkVHUkVTU0lPTihy
MjY3Mzk5KTogW1dQRV0gQnVpbGQgYnJva2VuIHdpdGggRU5BQkxFX0FDQ0VTU0lCSUxJVFk9T0ZG
CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL2lPU01v
dXNlU3VwcG9ydC5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvaU9T
TW91c2VTdXBwb3J0Lm1tCmluZGV4IGMyNDMwYjIwZWY3NzZhZWExMzA5ZTkzMzhkNmUyZWEwY2Y1
MGFhMTYuLjBiZjVmZDc3MTJlNTZlMjQzNjVhZTZhNTBhODQyZDZjZGRiYTU2YTAgMTAwNjQ0Ci0t
LSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvaU9TTW91c2VTdXBwb3J0
Lm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvaU9TTW91c2VT
dXBwb3J0Lm1tCkBAIC0zMDAsNCArMzAwLDE4NyBAQCBURVNUKGlPU01vdXNlU3VwcG9ydCwgV2Vi
c2l0ZU1vdXNlRXZlbnRQb2xpY2llcykKIAogI2VuZGlmIC8vIEVOQUJMRShJT1NfVE9VQ0hfRVZF
TlRTKQogCisjaWYgSEFWRShVSUtJVF9XSVRIX01PVVNFX1NVUFBPUlQpCisKKyNpZiBQTEFURk9S
TShJT1MpCisKK0BpbnRlcmZhY2UgV0tNb3VzZURldmljZU9ic2VydmVyCisrIChXS01vdXNlRGV2
aWNlT2JzZXJ2ZXIgKilzaGFyZWRJbnN0YW5jZTsKKy0gKHZvaWQpc3RhcnQ7CistICh2b2lkKV9z
ZXRIYXNNb3VzZURldmljZUZvclRlc3Rpbmc6KEJPT0wpaGFzTW91c2VEZXZpY2U7CitAZW5kCisK
K1RFU1QoaU9TTW91c2VTdXBwb3J0LCBNb3VzZUluaXRpYWxseURpc2Nvbm5lY3RlZCkKK3sKKyAg
ICBXS01vdXNlRGV2aWNlT2JzZXJ2ZXIgKm1vdXNlRGV2aWNlT2JzZXJ2ZXIgPSBbTlNDbGFzc0Zy
b21TdHJpbmcoQCJXS01vdXNlRGV2aWNlT2JzZXJ2ZXIiKSBzaGFyZWRJbnN0YW5jZV07CisgICAg
W21vdXNlRGV2aWNlT2JzZXJ2ZXIgc3RhcnRdOworICAgIFttb3VzZURldmljZU9ic2VydmVyIF9z
ZXRIYXNNb3VzZURldmljZUZvclRlc3Rpbmc6Tk9dOworCisgICAgYXV0byB3ZWJWaWV3ID0gYWRv
cHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6TlNNYWtlUmVjdCgwLCAw
LCA4MDAsIDYwMCldKTsKKworICAgIFt3ZWJWaWV3IHN5bmNocm9ub3VzbHlMb2FkSFRNTFN0cmlu
ZzpAIiJdOworCisjaWYgRU5BQkxFKFRPVUNIX0VWRU5UUykKKyAgICBFWFBFQ1RfRkFMU0UoW3dl
YlZpZXcgZXZhbHVhdGVNZWRpYVF1ZXJ5OkAiaG92ZXIiXSk7CisgICAgRVhQRUNUX1RSVUUoW3dl
YlZpZXcgZXZhbHVhdGVNZWRpYVF1ZXJ5OkAiaG92ZXI6IG5vbmUiXSk7CisgICAgRVhQRUNUX0ZB
TFNFKFt3ZWJWaWV3IGV2YWx1YXRlTWVkaWFRdWVyeTpAImhvdmVyOiBob3ZlciJdKTsKKyNlbmRp
ZgorCisgICAgRVhQRUNUX0ZBTFNFKFt3ZWJWaWV3IGV2YWx1YXRlTWVkaWFRdWVyeTpAImFueS1o
b3ZlciJdKTsKKyAgICBFWFBFQ1RfVFJVRShbd2ViVmlldyBldmFsdWF0ZU1lZGlhUXVlcnk6QCJh
bnktaG92ZXI6IG5vbmUiXSk7CisgICAgRVhQRUNUX0ZBTFNFKFt3ZWJWaWV3IGV2YWx1YXRlTWVk
aWFRdWVyeTpAImFueS1ob3ZlcjogaG92ZXIiXSk7CisKKyNpZiBFTkFCTEUoVE9VQ0hfRVZFTlRT
KQorICAgIEVYUEVDVF9UUlVFKFt3ZWJWaWV3IGV2YWx1YXRlTWVkaWFRdWVyeTpAInBvaW50ZXIi
XSk7CisgICAgRVhQRUNUX0ZBTFNFKFt3ZWJWaWV3IGV2YWx1YXRlTWVkaWFRdWVyeTpAInBvaW50
ZXI6IG5vbmUiXSk7CisgICAgRVhQRUNUX1RSVUUoW3dlYlZpZXcgZXZhbHVhdGVNZWRpYVF1ZXJ5
OkAicG9pbnRlcjogY29hcnNlIl0pOworICAgIEVYUEVDVF9GQUxTRShbd2ViVmlldyBldmFsdWF0
ZU1lZGlhUXVlcnk6QCJwb2ludGVyOiBmaW5lIl0pOworI2VuZGlmCisKKyAgICBFWFBFQ1RfVFJV
RShbd2ViVmlldyBldmFsdWF0ZU1lZGlhUXVlcnk6QCJhbnktcG9pbnRlciJdKTsKKyAgICBFWFBF
Q1RfRkFMU0UoW3dlYlZpZXcgZXZhbHVhdGVNZWRpYVF1ZXJ5OkAiYW55LXBvaW50ZXI6IG5vbmUi
XSk7CisgICAgRVhQRUNUX1RSVUUoW3dlYlZpZXcgZXZhbHVhdGVNZWRpYVF1ZXJ5OkAiYW55LXBv
aW50ZXI6IGNvYXJzZSJdKTsKKyAgICBFWFBFQ1RfRkFMU0UoW3dlYlZpZXcgZXZhbHVhdGVNZWRp
YVF1ZXJ5OkAiYW55LXBvaW50ZXI6IGZpbmUiXSk7Cit9CisKK1RFU1QoaU9TTW91c2VTdXBwb3J0
LCBNb3VzZUluaXRpYWxseUNvbm5lY3RlZCkKK3sKKyAgICBXS01vdXNlRGV2aWNlT2JzZXJ2ZXIg
Km1vdXNlRGV2aWNlT2JzZXJ2ZXIgPSBbTlNDbGFzc0Zyb21TdHJpbmcoQCJXS01vdXNlRGV2aWNl
T2JzZXJ2ZXIiKSBzaGFyZWRJbnN0YW5jZV07CisgICAgW21vdXNlRGV2aWNlT2JzZXJ2ZXIgc3Rh
cnRdOworICAgIFttb3VzZURldmljZU9ic2VydmVyIF9zZXRIYXNNb3VzZURldmljZUZvclRlc3Rp
bmc6WUVTXTsKKworICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFs
bG9jXSBpbml0V2l0aEZyYW1lOk5TTWFrZVJlY3QoMCwgMCwgODAwLCA2MDApXSk7CisKKyAgICBb
d2ViVmlldyBzeW5jaHJvbm91c2x5TG9hZEhUTUxTdHJpbmc6QCIiXTsKKworI2lmIEVOQUJMRShU
T1VDSF9FVkVOVFMpCisgICAgRVhQRUNUX0ZBTFNFKFt3ZWJWaWV3IGV2YWx1YXRlTWVkaWFRdWVy
eTpAImhvdmVyIl0pOworICAgIEVYUEVDVF9UUlVFKFt3ZWJWaWV3IGV2YWx1YXRlTWVkaWFRdWVy
eTpAImhvdmVyOiBub25lIl0pOworICAgIEVYUEVDVF9GQUxTRShbd2ViVmlldyBldmFsdWF0ZU1l
ZGlhUXVlcnk6QCJob3ZlcjogaG92ZXIiXSk7CisjZW5kaWYKKworICAgIEVYUEVDVF9UUlVFKFt3
ZWJWaWV3IGV2YWx1YXRlTWVkaWFRdWVyeTpAImFueS1ob3ZlciJdKTsKKyAgICBFWFBFQ1RfRkFM
U0UoW3dlYlZpZXcgZXZhbHVhdGVNZWRpYVF1ZXJ5OkAiYW55LWhvdmVyOiBub25lIl0pOworICAg
IEVYUEVDVF9UUlVFKFt3ZWJWaWV3IGV2YWx1YXRlTWVkaWFRdWVyeTpAImFueS1ob3ZlcjogaG92
ZXIiXSk7CisKKyNpZiBFTkFCTEUoVE9VQ0hfRVZFTlRTKQorICAgIEVYUEVDVF9UUlVFKFt3ZWJW
aWV3IGV2YWx1YXRlTWVkaWFRdWVyeTpAInBvaW50ZXIiXSk7CisgICAgRVhQRUNUX0ZBTFNFKFt3
ZWJWaWV3IGV2YWx1YXRlTWVkaWFRdWVyeTpAInBvaW50ZXI6IG5vbmUiXSk7CisgICAgRVhQRUNU
X1RSVUUoW3dlYlZpZXcgZXZhbHVhdGVNZWRpYVF1ZXJ5OkAicG9pbnRlcjogY29hcnNlIl0pOwor
ICAgIEVYUEVDVF9GQUxTRShbd2ViVmlldyBldmFsdWF0ZU1lZGlhUXVlcnk6QCJwb2ludGVyOiBm
aW5lIl0pOworI2VuZGlmCisKKyAgICBFWFBFQ1RfVFJVRShbd2ViVmlldyBldmFsdWF0ZU1lZGlh
UXVlcnk6QCJhbnktcG9pbnRlciJdKTsKKyAgICBFWFBFQ1RfRkFMU0UoW3dlYlZpZXcgZXZhbHVh
dGVNZWRpYVF1ZXJ5OkAiYW55LXBvaW50ZXI6IG5vbmUiXSk7CisgICAgRVhQRUNUX1RSVUUoW3dl
YlZpZXcgZXZhbHVhdGVNZWRpYVF1ZXJ5OkAiYW55LXBvaW50ZXI6IGNvYXJzZSJdKTsKKyAgICBF
WFBFQ1RfVFJVRShbd2ViVmlldyBldmFsdWF0ZU1lZGlhUXVlcnk6QCJhbnktcG9pbnRlcjogZmlu
ZSJdKTsKK30KKworVEVTVChpT1NNb3VzZVN1cHBvcnQsIE1vdXNlTGF0ZXJEaXNjb25uZWN0ZWQp
Cit7CisgICAgV0tNb3VzZURldmljZU9ic2VydmVyICptb3VzZURldmljZU9ic2VydmVyID0gW05T
Q2xhc3NGcm9tU3RyaW5nKEAiV0tNb3VzZURldmljZU9ic2VydmVyIikgc2hhcmVkSW5zdGFuY2Vd
OworICAgIFttb3VzZURldmljZU9ic2VydmVyIHN0YXJ0XTsKKyAgICBbbW91c2VEZXZpY2VPYnNl
cnZlciBfc2V0SGFzTW91c2VEZXZpY2VGb3JUZXN0aW5nOllFU107CisKKyAgICBhdXRvIHdlYlZp
ZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU01ha2VS
ZWN0KDAsIDAsIDgwMCwgNjAwKV0pOworCisgICAgW3dlYlZpZXcgc3luY2hyb25vdXNseUxvYWRI
VE1MU3RyaW5nOkAiIl07CisKKyAgICBbbW91c2VEZXZpY2VPYnNlcnZlciBfc2V0SGFzTW91c2VE
ZXZpY2VGb3JUZXN0aW5nOk5PXTsKKworI2lmIEVOQUJMRShUT1VDSF9FVkVOVFMpCisgICAgRVhQ
RUNUX0ZBTFNFKFt3ZWJWaWV3IGV2YWx1YXRlTWVkaWFRdWVyeTpAImhvdmVyIl0pOworICAgIEVY
UEVDVF9UUlVFKFt3ZWJWaWV3IGV2YWx1YXRlTWVkaWFRdWVyeTpAImhvdmVyOiBub25lIl0pOwor
ICAgIEVYUEVDVF9GQUxTRShbd2ViVmlldyBldmFsdWF0ZU1lZGlhUXVlcnk6QCJob3ZlcjogaG92
ZXIiXSk7CisjZW5kaWYKKworICAgIEVYUEVDVF9GQUxTRShbd2ViVmlldyBldmFsdWF0ZU1lZGlh
UXVlcnk6QCJhbnktaG92ZXIiXSk7CisgICAgRVhQRUNUX1RSVUUoW3dlYlZpZXcgZXZhbHVhdGVN
ZWRpYVF1ZXJ5OkAiYW55LWhvdmVyOiBub25lIl0pOworICAgIEVYUEVDVF9GQUxTRShbd2ViVmll
dyBldmFsdWF0ZU1lZGlhUXVlcnk6QCJhbnktaG92ZXI6IGhvdmVyIl0pOworCisjaWYgRU5BQkxF
KFRPVUNIX0VWRU5UUykKKyAgICBFWFBFQ1RfVFJVRShbd2ViVmlldyBldmFsdWF0ZU1lZGlhUXVl
cnk6QCJwb2ludGVyIl0pOworICAgIEVYUEVDVF9GQUxTRShbd2ViVmlldyBldmFsdWF0ZU1lZGlh
UXVlcnk6QCJwb2ludGVyOiBub25lIl0pOworICAgIEVYUEVDVF9UUlVFKFt3ZWJWaWV3IGV2YWx1
YXRlTWVkaWFRdWVyeTpAInBvaW50ZXI6IGNvYXJzZSJdKTsKKyAgICBFWFBFQ1RfRkFMU0UoW3dl
YlZpZXcgZXZhbHVhdGVNZWRpYVF1ZXJ5OkAicG9pbnRlcjogZmluZSJdKTsKKyNlbmRpZgorCisg
ICAgRVhQRUNUX1RSVUUoW3dlYlZpZXcgZXZhbHVhdGVNZWRpYVF1ZXJ5OkAiYW55LXBvaW50ZXIi
XSk7CisgICAgRVhQRUNUX0ZBTFNFKFt3ZWJWaWV3IGV2YWx1YXRlTWVkaWFRdWVyeTpAImFueS1w
b2ludGVyOiBub25lIl0pOworICAgIEVYUEVDVF9UUlVFKFt3ZWJWaWV3IGV2YWx1YXRlTWVkaWFR
dWVyeTpAImFueS1wb2ludGVyOiBjb2Fyc2UiXSk7CisgICAgRVhQRUNUX0ZBTFNFKFt3ZWJWaWV3
IGV2YWx1YXRlTWVkaWFRdWVyeTpAImFueS1wb2ludGVyOiBmaW5lIl0pOworfQorCitURVNUKGlP
U01vdXNlU3VwcG9ydCwgTW91c2VMYXRlckNvbm5lY3RlZCkKK3sKKyAgICBXS01vdXNlRGV2aWNl
T2JzZXJ2ZXIgKm1vdXNlRGV2aWNlT2JzZXJ2ZXIgPSBbTlNDbGFzc0Zyb21TdHJpbmcoQCJXS01v
dXNlRGV2aWNlT2JzZXJ2ZXIiKSBzaGFyZWRJbnN0YW5jZV07CisgICAgW21vdXNlRGV2aWNlT2Jz
ZXJ2ZXIgc3RhcnRdOworICAgIFttb3VzZURldmljZU9ic2VydmVyIF9zZXRIYXNNb3VzZURldmlj
ZUZvclRlc3Rpbmc6Tk9dOworCisgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1Rlc3RXS1dl
YlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6TlNNYWtlUmVjdCgwLCAwLCA4MDAsIDYwMCldKTsK
KworICAgIFt3ZWJWaWV3IHN5bmNocm9ub3VzbHlMb2FkSFRNTFN0cmluZzpAIiJdOworCisgICAg
W21vdXNlRGV2aWNlT2JzZXJ2ZXIgX3NldEhhc01vdXNlRGV2aWNlRm9yVGVzdGluZzpZRVNdOwor
CisjaWYgRU5BQkxFKFRPVUNIX0VWRU5UUykKKyAgICBFWFBFQ1RfRkFMU0UoW3dlYlZpZXcgZXZh
bHVhdGVNZWRpYVF1ZXJ5OkAiaG92ZXIiXSk7CisgICAgRVhQRUNUX1RSVUUoW3dlYlZpZXcgZXZh
bHVhdGVNZWRpYVF1ZXJ5OkAiaG92ZXI6IG5vbmUiXSk7CisgICAgRVhQRUNUX0ZBTFNFKFt3ZWJW
aWV3IGV2YWx1YXRlTWVkaWFRdWVyeTpAImhvdmVyOiBob3ZlciJdKTsKKyNlbmRpZgorCisgICAg
RVhQRUNUX1RSVUUoW3dlYlZpZXcgZXZhbHVhdGVNZWRpYVF1ZXJ5OkAiYW55LWhvdmVyIl0pOwor
ICAgIEVYUEVDVF9GQUxTRShbd2ViVmlldyBldmFsdWF0ZU1lZGlhUXVlcnk6QCJhbnktaG92ZXI6
IG5vbmUiXSk7CisgICAgRVhQRUNUX1RSVUUoW3dlYlZpZXcgZXZhbHVhdGVNZWRpYVF1ZXJ5OkAi
YW55LWhvdmVyOiBob3ZlciJdKTsKKworI2lmIEVOQUJMRShUT1VDSF9FVkVOVFMpCisgICAgRVhQ
RUNUX1RSVUUoW3dlYlZpZXcgZXZhbHVhdGVNZWRpYVF1ZXJ5OkAicG9pbnRlciJdKTsKKyAgICBF
WFBFQ1RfRkFMU0UoW3dlYlZpZXcgZXZhbHVhdGVNZWRpYVF1ZXJ5OkAicG9pbnRlcjogbm9uZSJd
KTsKKyAgICBFWFBFQ1RfVFJVRShbd2ViVmlldyBldmFsdWF0ZU1lZGlhUXVlcnk6QCJwb2ludGVy
OiBjb2Fyc2UiXSk7CisgICAgRVhQRUNUX0ZBTFNFKFt3ZWJWaWV3IGV2YWx1YXRlTWVkaWFRdWVy
eTpAInBvaW50ZXI6IGZpbmUiXSk7CisjZW5kaWYKKworICAgIEVYUEVDVF9UUlVFKFt3ZWJWaWV3
IGV2YWx1YXRlTWVkaWFRdWVyeTpAImFueS1wb2ludGVyIl0pOworICAgIEVYUEVDVF9GQUxTRShb
d2ViVmlldyBldmFsdWF0ZU1lZGlhUXVlcnk6QCJhbnktcG9pbnRlcjogbm9uZSJdKTsKKyAgICBF
WFBFQ1RfVFJVRShbd2ViVmlldyBldmFsdWF0ZU1lZGlhUXVlcnk6QCJhbnktcG9pbnRlcjogY29h
cnNlIl0pOworICAgIEVYUEVDVF9UUlVFKFt3ZWJWaWV3IGV2YWx1YXRlTWVkaWFRdWVyeTpAImFu
eS1wb2ludGVyOiBmaW5lIl0pOworfQorCisjZW5kaWYgLy8gUExBVEZPUk0oSU9TKQorCisjaWYg
UExBVEZPUk0oTUFDQ0FUQUxZU1QpCisKK1RFU1QoaU9TTW91c2VTdXBwb3J0LCBNb3VzZUFsd2F5
c0Nvbm5lY3RlZCkKK3sKKyAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmll
dyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU01ha2VSZWN0KDAsIDAsIDgwMCwgNjAwKV0pOworCisg
ICAgW3dlYlZpZXcgc3luY2hyb25vdXNseUxvYWRIVE1MU3RyaW5nOkAiIl07CisKKyNpZiBFTkFC
TEUoVE9VQ0hfRVZFTlRTKQorICAgIEVYUEVDVF9GQUxTRShbd2ViVmlldyBldmFsdWF0ZU1lZGlh
UXVlcnk6QCJob3ZlciJdKTsKKyAgICBFWFBFQ1RfVFJVRShbd2ViVmlldyBldmFsdWF0ZU1lZGlh
UXVlcnk6QCJob3Zlcjogbm9uZSJdKTsKKyAgICBFWFBFQ1RfRkFMU0UoW3dlYlZpZXcgZXZhbHVh
dGVNZWRpYVF1ZXJ5OkAiaG92ZXI6IGhvdmVyIl0pOworI2VuZGlmCisKKyAgICBFWFBFQ1RfVFJV
RShbd2ViVmlldyBldmFsdWF0ZU1lZGlhUXVlcnk6QCJhbnktaG92ZXIiXSk7CisgICAgRVhQRUNU
X0ZBTFNFKFt3ZWJWaWV3IGV2YWx1YXRlTWVkaWFRdWVyeTpAImFueS1ob3Zlcjogbm9uZSJdKTsK
KyAgICBFWFBFQ1RfVFJVRShbd2ViVmlldyBldmFsdWF0ZU1lZGlhUXVlcnk6QCJhbnktaG92ZXI6
IGhvdmVyIl0pOworCisjaWYgRU5BQkxFKFRPVUNIX0VWRU5UUykKKyAgICBFWFBFQ1RfVFJVRShb
d2ViVmlldyBldmFsdWF0ZU1lZGlhUXVlcnk6QCJwb2ludGVyIl0pOworICAgIEVYUEVDVF9GQUxT
RShbd2ViVmlldyBldmFsdWF0ZU1lZGlhUXVlcnk6QCJwb2ludGVyOiBub25lIl0pOworICAgIEVY
UEVDVF9UUlVFKFt3ZWJWaWV3IGV2YWx1YXRlTWVkaWFRdWVyeTpAInBvaW50ZXI6IGNvYXJzZSJd
KTsKKyAgICBFWFBFQ1RfRkFMU0UoW3dlYlZpZXcgZXZhbHVhdGVNZWRpYVF1ZXJ5OkAicG9pbnRl
cjogZmluZSJdKTsKKyNlbmRpZgorCisgICAgRVhQRUNUX1RSVUUoW3dlYlZpZXcgZXZhbHVhdGVN
ZWRpYVF1ZXJ5OkAiYW55LXBvaW50ZXIiXSk7CisgICAgRVhQRUNUX0ZBTFNFKFt3ZWJWaWV3IGV2
YWx1YXRlTWVkaWFRdWVyeTpAImFueS1wb2ludGVyOiBub25lIl0pOworICAgIEVYUEVDVF9UUlVF
KFt3ZWJWaWV3IGV2YWx1YXRlTWVkaWFRdWVyeTpAImFueS1wb2ludGVyOiBjb2Fyc2UiXSk7Cisg
ICAgRVhQRUNUX1RSVUUoW3dlYlZpZXcgZXZhbHVhdGVNZWRpYVF1ZXJ5OkAiYW55LXBvaW50ZXI6
IGZpbmUiXSk7Cit9CisKKyNlbmRpZiAvLyBQTEFURk9STShNQUNDQVRBTFlTVCkKKworI2VuZGlm
IC8vIEhBVkUoVUlLSVRfV0lUSF9NT1VTRV9TVVBQT1JUKQorCiAjZW5kaWYgLy8gUExBVEZPUk0o
SU9TKSB8fCBQTEFURk9STShNQUNDQVRBTFlTVCkKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvY29jb2EvVGVzdFdLV2ViVmlldy5oIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9jb2NvYS9U
ZXN0V0tXZWJWaWV3LmgKaW5kZXggMzc4OWYzY2IzMGU2ODc3NjU0N2I5ODIzYzJmZGU2NDM0MjEz
ZmIxNi4uMjJhNDgyNmM0MTJiMjk0OTNlNWMzNGRkNGFlYzgzNDA3ZjFmOTMyOCAxMDA2NDQKLS0t
IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9jb2NvYS9UZXN0V0tXZWJWaWV3LmgKKysrIGIvVG9vbHMv
VGVzdFdlYktpdEFQSS9jb2NvYS9UZXN0V0tXZWJWaWV3LmgKQEAgLTYxLDYgKzYxLDcgQEAKIC0g
KHZvaWQpZXhwZWN0RWxlbWVudFRhZ3NJbk9yZGVyOihOU0FycmF5PE5TU3RyaW5nICo+ICopdGFn
TmFtZXM7CiAtICh2b2lkKWV4cGVjdEVsZW1lbnRDb3VudDooTlNJbnRlZ2VyKWNvdW50IHF1ZXJ5
U2VsZWN0b3I6KE5TU3RyaW5nICopcXVlcnlTZWxlY3RvcjsKIC0gKHZvaWQpZXhwZWN0RWxlbWVu
dFRhZzooTlNTdHJpbmcgKil0YWdOYW1lIHRvQ29tZUJlZm9yZTooTlNTdHJpbmcgKilvdGhlclRh
Z05hbWU7CistIChCT09MKWV2YWx1YXRlTWVkaWFRdWVyeTooTlNTdHJpbmcgKilxdWVyeTsKIC0g
KE5TU3RyaW5nICopc3RyaW5nQnlFdmFsdWF0aW5nSmF2YVNjcmlwdDooTlNTdHJpbmcgKilzY3Jp
cHQ7CiAtIChpZClvYmplY3RCeUV2YWx1YXRpbmdKYXZhU2NyaXB0V2l0aFVzZXJHZXN0dXJlOihO
U1N0cmluZyAqKXNjcmlwdDsKIC0gKGlkKW9iamVjdEJ5RXZhbHVhdGluZ0phdmFTY3JpcHQ6KE5T
U3RyaW5nICopc2NyaXB0OwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9jb2NvYS9U
ZXN0V0tXZWJWaWV3Lm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9jb2NvYS9UZXN0V0tXZWJWaWV3
Lm1tCmluZGV4IDgxYjQ3MWMxYWVjOGQ3MjI1NmFmNzYzMzUzMzJjZmRhMTYyYTMzN2IuLjZjNGY0
ZmVlOWU3OWRkMzczYTAzNjdlMTBkYTM3YjhlYWU0MzU3N2EgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvY29jb2EvVGVzdFdLV2ViVmlldy5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0
QVBJL2NvY29hL1Rlc3RXS1dlYlZpZXcubW0KQEAgLTE2MSw2ICsxNjEsMTEgQEAgLSAodm9pZCll
eHBlY3RFbGVtZW50VGFnOihOU1N0cmluZyAqKXRhZ05hbWUgdG9Db21lQmVmb3JlOihOU1N0cmlu
ZyAqKW90aGVyVGFnTmEKICAgICBbc2VsZiBleHBlY3RFbGVtZW50VGFnc0luT3JkZXI6QFt0YWdO
YW1lLCBvdGhlclRhZ05hbWVdXTsKIH0KIAorLSAoQk9PTClldmFsdWF0ZU1lZGlhUXVlcnk6KE5T
U3RyaW5nICopcXVlcnkKK3sKKyAgICByZXR1cm4gW1tzZWxmIG9iamVjdEJ5RXZhbHVhdGluZ0ph
dmFTY3JpcHQ6W05TU3RyaW5nIHN0cmluZ1dpdGhGb3JtYXQ6QCJ3aW5kb3cubWF0Y2hNZWRpYShc
IiglQClcIikubWF0Y2hlcyIsIHF1ZXJ5XV0gYm9vbFZhbHVlXTsKK30KKwogLSAoaWQpb2JqZWN0
QnlFdmFsdWF0aW5nSmF2YVNjcmlwdDooTlNTdHJpbmcgKilzY3JpcHQKIHsKICAgICBib29sIGlz
V2FpdGluZ0ZvckphdmFTY3JpcHQgPSBmYWxzZTsKZGlmZiAtLWdpdCBhL1dlYktpdExpYnJhcmll
cy9DaGFuZ2VMb2cgYi9XZWJLaXRMaWJyYXJpZXMvQ2hhbmdlTG9nCmluZGV4IGRlNzJjZjBmNDQw
MDMxNWNlNTViZmFhZDE3ZWE4MjQyMjdiNWIzODguLjAwMDY2OGZjOWI3NWVjMTM4MGUzNDI1MGY1
M2M0Nzc0MDlkNTRhYTIgMTAwNjQ0Ci0tLSBhL1dlYktpdExpYnJhcmllcy9DaGFuZ2VMb2cKKysr
IGIvV2ViS2l0TGlicmFyaWVzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDIwLTEwLTA1
ICBEZXZpbiBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNvbT4KKworICAgICAgICBDU1MgaG92ZXIg
YW5kICJwb2ludGVyOiBmaW5lIiBtZWRpYSBxdWVyaWVzIGRvIG5vdCBldmFsdWF0ZSB0byB0cnVl
IHdpdGggaU9TIDEzLjQgbW91c2Ugc3VwcG9ydAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA5MjkyCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS82MDY2
MzEyND4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAq
IFdlYktpdFByaXZhdGVGcmFtZXdvcmtTdHVicy9pT1MvMTMvQmFja0JvYXJkU2VydmljZXMuZnJh
bWV3b3JrL0JhY2tCb2FyZFNlcnZpY2VzLnRiZDogQWRkZWQuCisgICAgICAgICogV2ViS2l0UHJp
dmF0ZUZyYW1ld29ya1N0dWJzL2lPUy8xNC9CYWNrQm9hcmRTZXJ2aWNlcy5mcmFtZXdvcmsvQmFj
a0JvYXJkU2VydmljZXMudGJkOiBBZGRlZC4KKyAgICAgICAgVXNlIGBCYWNrQm9hcmRTZXJ2aWNl
c2AgdG8gbGlzdGVuIGZvciBtb3VzZSBkZXZpY2VzIGNoYW5nZXMuCisKIDIwMjAtMTAtMDQgIFJ5
YW4gSG9zdGV0bGVyICA8cmhvc3RAYXBwbGUuY29tPgogCiAgICAgICAgIFN1Ym1pc3Npb24gZmFp
bHVyZSB3aXRoICJtYWtlOiAqKiogTm8gcnVsZSB0byBtYWtlIHRhcmdldCBgaW5zdGFsbHNyYycu
IFN0b3AiCmRpZmYgLS1naXQgYS9XZWJLaXRMaWJyYXJpZXMvV2ViS2l0UHJpdmF0ZUZyYW1ld29y
a1N0dWJzL2lPUy8xMy9CYWNrQm9hcmRTZXJ2aWNlcy5mcmFtZXdvcmsvQmFja0JvYXJkU2Vydmlj
ZXMudGJkIGIvV2ViS2l0TGlicmFyaWVzL1dlYktpdFByaXZhdGVGcmFtZXdvcmtTdHVicy9pT1Mv
MTMvQmFja0JvYXJkU2VydmljZXMuZnJhbWV3b3JrL0JhY2tCb2FyZFNlcnZpY2VzLnRiZApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi4wMDIzNDhiZDNlZTBlMTMzYTNkOTU4ZmJkZWM1N2ZmN2ZkYjNiN2Y3Ci0tLSAvZGV2
L251bGwKKysrIGIvV2ViS2l0TGlicmFyaWVzL1dlYktpdFByaXZhdGVGcmFtZXdvcmtTdHVicy9p
T1MvMTMvQmFja0JvYXJkU2VydmljZXMuZnJhbWV3b3JrL0JhY2tCb2FyZFNlcnZpY2VzLnRiZApA
QCAtMCwwICsxLDkgQEAKKy0tLSAhdGFwaS10YmQtdjMKK2FyY2hzOiAgICAgICAgICAgWyB4ODZf
NjQsIGFybTY0LCBhcm02NGUgXQoraW5zdGFsbC1uYW1lOiAgICAnL1N5c3RlbS9MaWJyYXJ5L1By
aXZhdGVGcmFtZXdvcmtzL0JhY2tCb2FyZFNlcnZpY2VzLmZyYW1ld29yay9CYWNrQm9hcmRTZXJ2
aWNlcycKK29iamMtY29uc3RyYWludDogbm9uZQorcGxhdGZvcm06IGlvcworZXhwb3J0czoKKyAg
LSBhcmNoczogICAgICAgICAgIFsgeDg2XzY0LCBhcm02NCwgYXJtNjRlIF0KKyAgICBvYmpjLWNs
YXNzZXM6ICAgIFsgQktTTW91c2VQb2ludGVyRGV2aWNlLCBCS1NNb3VzZVBvaW50ZXJTZXJ2aWNl
IF0KKy4uLgpkaWZmIC0tZ2l0IGEvV2ViS2l0TGlicmFyaWVzL1dlYktpdFByaXZhdGVGcmFtZXdv
cmtTdHVicy9pT1MvMTQvQmFja0JvYXJkU2VydmljZXMuZnJhbWV3b3JrL0JhY2tCb2FyZFNlcnZp
Y2VzLnRiZCBiL1dlYktpdExpYnJhcmllcy9XZWJLaXRQcml2YXRlRnJhbWV3b3JrU3R1YnMvaU9T
LzE0L0JhY2tCb2FyZFNlcnZpY2VzLmZyYW1ld29yay9CYWNrQm9hcmRTZXJ2aWNlcy50YmQKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uMDAyMzQ4YmQzZWUwZTEzM2EzZDk1OGZiZGVjNTdmZjdmZGIzYjdmNwotLS0gL2Rl
di9udWxsCisrKyBiL1dlYktpdExpYnJhcmllcy9XZWJLaXRQcml2YXRlRnJhbWV3b3JrU3R1YnMv
aU9TLzE0L0JhY2tCb2FyZFNlcnZpY2VzLmZyYW1ld29yay9CYWNrQm9hcmRTZXJ2aWNlcy50YmQK
QEAgLTAsMCArMSw5IEBACistLS0gIXRhcGktdGJkLXYzCithcmNoczogICAgICAgICAgIFsgeDg2
XzY0LCBhcm02NCwgYXJtNjRlIF0KK2luc3RhbGwtbmFtZTogICAgJy9TeXN0ZW0vTGlicmFyeS9Q
cml2YXRlRnJhbWV3b3Jrcy9CYWNrQm9hcmRTZXJ2aWNlcy5mcmFtZXdvcmsvQmFja0JvYXJkU2Vy
dmljZXMnCitvYmpjLWNvbnN0cmFpbnQ6IG5vbmUKK3BsYXRmb3JtOiBpb3MKK2V4cG9ydHM6Cisg
IC0gYXJjaHM6ICAgICAgICAgICBbIHg4Nl82NCwgYXJtNjQsIGFybTY0ZSBdCisgICAgb2JqYy1j
bGFzc2VzOiAgICBbIEJLU01vdXNlUG9pbnRlckRldmljZSwgQktTTW91c2VQb2ludGVyU2Vydmlj
ZSBdCisuLi4K
</data>
<flag name="review"
          id="426683"
          type_id="1"
          status="+"
          setter="thorton"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>410694</attachid>
            <date>2020-10-06 14:37:48 -0700</date>
            <delta_ts>2020-10-06 16:44:52 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>209292.diff</filename>
            <type>text/plain</type>
            <size>76011</size>
            <attacher name="Devin Rousso">hi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCAxNjdkZTRmMGJmYjcuLjZiZmQxNjIzYmQyZiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDQwIEBACisyMDIwLTEwLTA2ICBEZXZpbiBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNv
bT4KKworICAgICAgICBDU1MgaG92ZXIgYW5kICJwb2ludGVyOiBmaW5lIiBtZWRpYSBxdWVyaWVz
IGRvIG5vdCBldmFsdWF0ZSB0byB0cnVlIHdpdGggaU9TIDEzLjQgbW91c2Ugc3VwcG9ydAorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA5MjkyCisgICAg
ICAgIDxyZGFyOi8vcHJvYmxlbS82MDY2MzEyND4KKworICAgICAgICBSZXZpZXdlZCBieSBUaW0g
SG9ydG9uLgorCisgICAgICAgIE9uIGlPUywgdGhlIHByaW1hcnkgcG9pbnRlciB3aWxsIGFsd2F5
cyBiZSB0b3VjaCBpbnB1dCwgc28gdGhlIGBob3ZlcmAvYHBvaW50ZXJgIG1lZGlhIHF1ZXJ5Cisg
ICAgICAgIHNob3VsZCBuZXZlciBjaGFuZ2UuIElmIGEgbW91c2UgaXMgY29ubmVjdGVkLCBob3dl
dmVyLCBgYW55LWhvdmVyYC9gYW55LXBvaW50ZXJgIHNob3VsZAorICAgICAgICBjaGFuZ2UgYXMg
bm93IHRoZXJlIGlzIGF0IGxlYXN0IG9uZSBkZXZpY2UgdGhhdCBzdXBwb3J0cyBgaG92ZXJgL2Bm
aW5lYC4gTm90ZSB0aGF0IGluIHRoZQorICAgICAgICBjYXNlIG9mIGBhbnktcG9pbnRlcmAgdGhp
cyBtZWFucyB0aGF0IGJvdGggYGNvYXJzZWAgYW5kIGBmaW5lYCB3aWxsIGFwcGx5LiBDYXRhbHlz
dCBhc3N1bWVzCisgICAgICAgIHRoYXQgdGhlcmUgaXMgYWx3YXlzIGEgbW91c2UgY29ubmVjdGVk
LgorCisgICAgICAgIFNwZWM6IGh0dHBzOi8vZHJhZnRzLmNzc3dnLm9yZy9tZWRpYXF1ZXJpZXMt
NC8jYW55LWlucHV0CisKKyAgICAgICAgKiBjc3MvTWVkaWFRdWVyeUV2YWx1YXRvci5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjphbnlIb3ZlckV2YWx1YXRlKToKKyAgICAgICAgKFdlYkNvcmU6OmFu
eVBvaW50ZXJFdmFsdWF0ZSk6CisKKyAgICAgICAgKiBwYWdlL0Nocm9tZUNsaWVudC5oOgorICAg
ICAgICAqIGxvYWRlci9FbXB0eUNsaWVudHMuaDoKKyAgICAgICAgKFdlYkNvcmU6OkVtcHR5Q2hy
b21lQ2xpZW50Ojpob3ZlclN1cHBvcnRlZEJ5QW55QXZhaWxhYmxlUG9pbnRpbmdEZXZpY2UgY29u
c3QpOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkVtcHR5Q2hyb21lQ2xpZW50Ojpwb2ludGVy
Q2hhcmFjdGVyaXN0aWNzT2ZBbGxBdmFpbGFibGVQb2ludGluZ0RldmljZXMgY29uc3QpOiBBZGRl
ZC4KKyAgICAgICAgUHJvdmlkZSBhIHdheSBmb3IgV2ViQ29yZSB0byBnZXQgdGhlIGN1cnJlbnQg
c3RhdGUgb2Ygd2hldGhlciB0aGVyZSBhcmUgYW55IG1vdXNlIGRldmljZXMuCisgICAgICAgIFJl
ZmFjdG9yIGxvZ2ljIGluIGBhbnlIb3ZlckV2YWx1YXRlYCBhbmQgYGFueVBvaW50ZXJFdmFsdWF0
ZWAgdG8gbW92ZSBwbGF0Zm9ybSBjb2RlIGludG8gdGhlCisgICAgICAgIHJlc3BlY3RpdmUgYFdl
YktpdDo6V2ViUGFnZWAgZmlsZS4KKworICAgICAgICAqIHBhZ2UvUG9pbnRlckNoYXJhY3Rlcmlz
dGljcy5oOiBBZGRlZC4KKyAgICAgICAgRW51bSBmb3IgYENvYXJzZWAgYW5kIGBGaW5lYC4KKwor
ICAgICAgICAqIHBsYXRmb3JtL1BsYXRmb3JtU2NyZWVuLmg6CisgICAgICAgIEV4cG9ydCBhZGRp
dGlvbmFsIGZ1bmN0aW9ucyBmb3IgdXNlIGluIFdlYktpdC4KKworICAgICAgICAqIEhlYWRlcnMu
Y21ha2U6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorCiAy
MDIwLTEwLTA2ICBMdW1pbmcgWWluICA8bHVtaW5nX3lpbkBhcHBsZS5jb20+CiAKICAgICAgICAg
W21hY09TXSBCdW1wIHJlcG9ydGVkIGN1cnJlbnQgc2hpcHBpbmcgcmVsZWFzZSBVQSB0byAxMF8x
NV83CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlIGIvU291cmNlL1dl
YkNvcmUvSGVhZGVycy5jbWFrZQppbmRleCAxZmI5NWM3ZDAwZGMuLjIzYjcwYTQyNzJhOSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9IZWFkZXJzLmNtYWtlCkBAIC04NTQsNiArODU0LDcgQEAgc2V0KFdlYkNvcmVfUFJJVkFURV9G
UkFNRVdPUktfSEVBREVSUwogICAgIHBhZ2UvUGVyZm9ybWFuY2VMb2dnaW5nQ2xpZW50LmgKICAg
ICBwYWdlL1BsdWdJbkNsaWVudC5oCiAgICAgcGFnZS9Qb2ludGVyQ2FwdHVyZUNvbnRyb2xsZXIu
aAorICAgIHBhZ2UvUG9pbnRlckNoYXJhY3RlcmlzdGljcy5oCiAgICAgcGFnZS9Qb2ludGVyTG9j
a0NvbnRyb2xsZXIuaAogICAgIHBhZ2UvUG9zdE1lc3NhZ2VPcHRpb25zLmgKICAgICBwYWdlL1By
ZXdhcm1JbmZvcm1hdGlvbi5oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oKaW5kZXggYmRiNGE5MGE2NjdmLi5hNzk1NmE2Y2Q5MDEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagor
KysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAg
LTI4NTgsNiArMjg1OCw3IEBACiAJCTk0RTgzOTU2MURGQjJCQzQwMDdCQzZBNyAvKiBKU0NTU05h
bWVzcGFjZVJ1bGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDk0RTgzOTU0MURGQjJCQTYwMDdCQzZBNyAvKiBKU0NTU05hbWVzcGFjZVJ1bGUuaCAqLzsg
fTsKIAkJOTUyMDc2MDUxRjI2NzVGRTAwN0QyQUFCIC8qIENhbGxUcmFjZXIuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk1MjA3NjAxMUYyNjc1RjkwMDdE
MkFBQiAvKiBDYWxsVHJhY2VyLmggKi87IH07CiAJCTk1MjA3NjA2MUYyNjc1RkUwMDdEMkFBQiAv
KiBDYWxsVHJhY2VyVHlwZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDk1MjA3NjAyMUYyNjc1RjkwMDdEMkFBQiAvKiBDYWxsVHJhY2VyVHlwZXMuaCAq
LzsgfTsKKwkJOTVERjlEMjUyNTJCRURCMjAwMEQ3RjQ2IC8qIFBvaW50ZXJDaGFyYWN0ZXJpc3Rp
Y3MuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk1REY5
RDIzMjUyQkVEOTkwMDBEN0Y0NiAvKiBQb2ludGVyQ2hhcmFjdGVyaXN0aWNzLmggKi87IHNldHRp
bmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJOTcwNTk5N0ExMDdEOTc1
MjAwQTUwQTdDIC8qIFBvbGljeUNoZWNrZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDk3MDU5OTc2MTA3RDk3NTIwMEE1MEE3QyAvKiBQb2xpY3lDaGVj
a2VyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJ
OTcwQjcyOEExNDRGRkFDNjAwRjAwQTM3IC8qIEV2ZW50SW50ZXJmYWNlcy5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTcwQjcyODkxNDRGRkFDNjAwRjAw
QTM3IC8qIEV2ZW50SW50ZXJmYWNlcy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFBy
aXZhdGUsICk7IH07IH07CiAJCTk3MEI3MkE2MTQ1MDA4RUIwMEYwMEEzNyAvKiBFdmVudEhlYWRl
cnMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk3MEI3
MkE1MTQ1MDA4RUIwMEYwMEEzNyAvKiBFdmVudEhlYWRlcnMuaCAqLzsgfTsKQEAgLTExNDYxLDYg
KzExNDYyLDcgQEAKIAkJOTUyMDc2MDAxRjI2NzVGOTAwN0QyQUFCIC8qIENhbGxUcmFjZXIuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gQ2FsbFRyYWNlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTk1MjA3NjAxMUYyNjc1RjkwMDdEMkFBQiAvKiBDYWxsVHJhY2VyLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IENhbGxUcmFjZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTUy
MDc2MDIxRjI2NzVGOTAwN0QyQUFCIC8qIENhbGxUcmFjZXJUeXBlcy5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBDYWxsVHJhY2VyVHlwZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTVERjlE
MjMyNTJCRUQ5OTAwMEQ3RjQ2IC8qIFBvaW50ZXJDaGFyYWN0ZXJpc3RpY3MuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gUG9pbnRlckNoYXJhY3RlcmlzdGljcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk5NkFCQTQyMjE0QkNCODBFMDBENTYyMDQgLyogR3JhcGhpY3NDb250ZXh0R0xPcGVuR0xD
b21tb24uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gR3JhcGhpY3ND
b250ZXh0R0xPcGVuR0xDb21tb24uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5
NzA1OTk3NTEwN0Q5NzUyMDBBNTBBN0MgLyogUG9saWN5Q2hlY2tlci5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBQb2xpY3lDaGVja2VyLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJOTcwNTk5NzYxMDdEOTc1MjAwQTUwQTdDIC8qIFBvbGljeUNoZWNr
ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUG9saWN5Q2hlY2tlci5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMjE3MzQsNiArMjE3MzYsNyBAQAogCQkJCTMx
RDU5MUIxMTY2OTdBNkMwMEU2QkYwMiAvKiBQbHVnSW5DbGllbnQuaCAqLywKIAkJCQk3MUI1QUIy
NTIxRjFEOUUzMDAzNzZFNUMgLyogUG9pbnRlckNhcHR1cmVDb250cm9sbGVyLmNwcCAqLywKIAkJ
CQk3MUI1QUIyNDIxRjFEOUUyMDAzNzZFNUMgLyogUG9pbnRlckNhcHR1cmVDb250cm9sbGVyLmgg
Ki8sCisJCQkJOTVERjlEMjMyNTJCRUQ5OTAwMEQ3RjQ2IC8qIFBvaW50ZXJDaGFyYWN0ZXJpc3Rp
Y3MuaCAqLywKIAkJCQk1Q0ZDNDM0RTE5MjQwNkE5MDBBMEQzQjUgLyogUG9pbnRlckxvY2tDb250
cm9sbGVyLmNwcCAqLywKIAkJCQk1Q0ZDNDM0RjE5MjQwNkE5MDBBMEQzQjUgLyogUG9pbnRlckxv
Y2tDb250cm9sbGVyLmggKi8sCiAJCQkJMzc3MkIwOTUxNjUzNTg1NjAwMEE0OUNBIC8qIFBvcHVw
T3BlbmluZ09ic2VydmVyLmggKi8sCkBAIC0zMzQyNSw2ICszMzQyOCw3IEBACiAJCQkJQkNCQjhB
QkExM0YxQUZCMDAwNzM0REYwIC8qIFBPREludGVydmFsVHJlZS5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJQkNCQjhBQkIxM0YxQUZCMDAwNzM0REYwIC8qIFBPRFJlZEJsYWNrVHJlZS5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJNzFCNUFCMjYyMUYxRDlGNDAwMzc2RTVDIC8qIFBvaW50ZXJDYXB0dXJlQ29u
dHJvbGxlci5oIGluIEhlYWRlcnMgKi8sCisJCQkJOTVERjlEMjUyNTJCRURCMjAwMEQ3RjQ2IC8q
IFBvaW50ZXJDaGFyYWN0ZXJpc3RpY3MuaCBpbiBIZWFkZXJzICovLAogCQkJCTMxN0QzRkYzMjE1
NTk5RjQwMDM0RTNCOSAvKiBQb2ludGVyRXZlbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUIyQjFG
NzE3MEQwMENBQTgwMDRBRUE2NCAvKiBQb2ludGVyRXZlbnRzSGl0UnVsZXMuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTcxRUFEQ0Q4MjIwODdFNzIwMDY1QTQ1RiAvKiBQb2ludGVySUQuaCBpbiBIZWFk
ZXJzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL01lZGlhUXVlcnlFdmFsdWF0
b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL01lZGlhUXVlcnlFdmFsdWF0b3IuY3BwCmluZGV4
IDgxMThiN2FiM2M1MC4uNTk3YTJkNjE1ODY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9j
c3MvTWVkaWFRdWVyeUV2YWx1YXRvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL01lZGlh
UXVlcnlFdmFsdWF0b3IuY3BwCkBAIC0zMyw2ICszMyw4IEBACiAjaW5jbHVkZSAiQ1NTUHJpbWl0
aXZlVmFsdWUuaCIKICNpbmNsdWRlICJDU1NUb0xlbmd0aENvbnZlcnNpb25EYXRhLmgiCiAjaW5j
bHVkZSAiQ1NTVmFsdWVLZXl3b3Jkcy5oIgorI2luY2x1ZGUgIkNocm9tZS5oIgorI2luY2x1ZGUg
IkNocm9tZUNsaWVudC5oIgogI2luY2x1ZGUgIkZyYW1lLmgiCiAjaW5jbHVkZSAiRnJhbWVWaWV3
LmgiCiAjaW5jbHVkZSAiTG9nZ2luZy5oIgpAQCAtNzMwLDIyICs3MzIsMTYgQEAgc3RhdGljIGJv
b2wgaG92ZXJFdmFsdWF0ZShDU1NWYWx1ZSogdmFsdWUsIGNvbnN0IENTU1RvTGVuZ3RoQ29udmVy
c2lvbkRhdGEmLCBGcmEKICAgICByZXR1cm4ga2V5d29yZCA9PSBDU1NWYWx1ZUhvdmVyOwogfQog
Ci1zdGF0aWMgYm9vbCBhbnlIb3ZlckV2YWx1YXRlKENTU1ZhbHVlKiB2YWx1ZSwgY29uc3QgQ1NT
VG9MZW5ndGhDb252ZXJzaW9uRGF0YSYsIEZyYW1lJiwgTWVkaWFGZWF0dXJlUHJlZml4KQorc3Rh
dGljIGJvb2wgYW55SG92ZXJFdmFsdWF0ZShDU1NWYWx1ZSogdmFsdWUsIGNvbnN0IENTU1RvTGVu
Z3RoQ29udmVyc2lvbkRhdGEmLCBGcmFtZSYgZnJhbWUsIE1lZGlhRmVhdHVyZVByZWZpeCkKIHsK
LSAgICBpZiAoIWlzPENTU1ByaW1pdGl2ZVZhbHVlPih2YWx1ZSkpIHsKLSNpZiBFTkFCTEUoVE9V
Q0hfRVZFTlRTKQotICAgICAgICByZXR1cm4gIXNjcmVlbkhhc1RvdWNoRGV2aWNlKCk7Ci0jZWxz
ZQotICAgICAgICByZXR1cm4gdHJ1ZTsKLSNlbmRpZgotICAgIH0KKyAgICBhdXRvKiBwYWdlID0g
ZnJhbWUucGFnZSgpOworICAgIGJvb2wgaG92ZXJTdXBwb3J0ZWRCeUFueUF2YWlsYWJsZVBvaW50
aW5nRGV2aWNlID0gcGFnZSAmJiBwYWdlLT5jaHJvbWUoKS5jbGllbnQoKS5ob3ZlclN1cHBvcnRl
ZEJ5QW55QXZhaWxhYmxlUG9pbnRpbmdEZXZpY2UoKTsKKworICAgIGlmICghaXM8Q1NTUHJpbWl0
aXZlVmFsdWU+KHZhbHVlKSkKKyAgICAgICAgcmV0dXJuIGhvdmVyU3VwcG9ydGVkQnlBbnlBdmFp
bGFibGVQb2ludGluZ0RldmljZTsKIAogICAgIGF1dG8ga2V5d29yZCA9IGRvd25jYXN0PENTU1By
aW1pdGl2ZVZhbHVlPigqdmFsdWUpLnZhbHVlSUQoKTsKLSNpZiBFTkFCTEUoVE9VQ0hfRVZFTlRT
KQotICAgIGlmIChzY3JlZW5IYXNUb3VjaERldmljZSgpKQotICAgICAgICByZXR1cm4ga2V5d29y
ZCA9PSBDU1NWYWx1ZU5vbmU7Ci0jZW5kaWYKLSAgICByZXR1cm4ga2V5d29yZCA9PSBDU1NWYWx1
ZUhvdmVyOworICAgIHJldHVybiBob3ZlclN1cHBvcnRlZEJ5QW55QXZhaWxhYmxlUG9pbnRpbmdE
ZXZpY2UgPyAoa2V5d29yZCA9PSBDU1NWYWx1ZUhvdmVyKSA6IChrZXl3b3JkID09IENTU1ZhbHVl
Tm9uZSk7CiB9CiAKIHN0YXRpYyBib29sIHBvaW50ZXJFdmFsdWF0ZShDU1NWYWx1ZSogdmFsdWUs
IGNvbnN0IENTU1RvTGVuZ3RoQ29udmVyc2lvbkRhdGEmLCBGcmFtZSYgZnJhbWUsIE1lZGlhRmVh
dHVyZVByZWZpeCkKQEAgLTc2NSwxNyArNzYxLDIyIEBAIHN0YXRpYyBib29sIHBvaW50ZXJFdmFs
dWF0ZShDU1NWYWx1ZSogdmFsdWUsIGNvbnN0IENTU1RvTGVuZ3RoQ29udmVyc2lvbkRhdGEmLCBG
CiAgICAgcmV0dXJuIGtleXdvcmQgPT0gQ1NTVmFsdWVGaW5lOwogfQogCi1zdGF0aWMgYm9vbCBh
bnlQb2ludGVyRXZhbHVhdGUoQ1NTVmFsdWUqIHZhbHVlLCBjb25zdCBDU1NUb0xlbmd0aENvbnZl
cnNpb25EYXRhJiwgRnJhbWUmLCBNZWRpYUZlYXR1cmVQcmVmaXgpCitzdGF0aWMgYm9vbCBhbnlQ
b2ludGVyRXZhbHVhdGUoQ1NTVmFsdWUqIHZhbHVlLCBjb25zdCBDU1NUb0xlbmd0aENvbnZlcnNp
b25EYXRhJiwgRnJhbWUmIGZyYW1lLCBNZWRpYUZlYXR1cmVQcmVmaXgpCiB7CisgICAgYXV0byog
cGFnZSA9IGZyYW1lLnBhZ2UoKTsKKyAgICBhdXRvIHBvaW50ZXJDaGFyYWN0ZXJpc3RpY3NPZkFs
bEF2YWlsYWJsZVBvaW50aW5nRGV2aWNlcyA9IHBhZ2UgPyBwYWdlLT5jaHJvbWUoKS5jbGllbnQo
KS5wb2ludGVyQ2hhcmFjdGVyaXN0aWNzT2ZBbGxBdmFpbGFibGVQb2ludGluZ0RldmljZXMoKSA6
IE9wdGlvblNldDxQb2ludGVyQ2hhcmFjdGVyaXN0aWNzPigpOworCiAgICAgaWYgKCFpczxDU1NQ
cmltaXRpdmVWYWx1ZT4odmFsdWUpKQotICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgcmV0
dXJuICFwb2ludGVyQ2hhcmFjdGVyaXN0aWNzT2ZBbGxBdmFpbGFibGVQb2ludGluZ0RldmljZXMu
aXNFbXB0eSgpOwogCiAgICAgYXV0byBrZXl3b3JkID0gZG93bmNhc3Q8Q1NTUHJpbWl0aXZlVmFs
dWU+KCp2YWx1ZSkudmFsdWVJRCgpOwotI2lmIEVOQUJMRShUT1VDSF9FVkVOVFMpCi0gICAgaWYg
KHNjcmVlbkhhc1RvdWNoRGV2aWNlKCkpCi0gICAgICAgIHJldHVybiBrZXl3b3JkID09IENTU1Zh
bHVlQ29hcnNlOwotI2VuZGlmCi0gICAgcmV0dXJuIGtleXdvcmQgPT0gQ1NTVmFsdWVGaW5lOwor
ICAgIGlmIChrZXl3b3JkID09IENTU1ZhbHVlRmluZSkKKyAgICAgICAgcmV0dXJuIHBvaW50ZXJD
aGFyYWN0ZXJpc3RpY3NPZkFsbEF2YWlsYWJsZVBvaW50aW5nRGV2aWNlcy5jb250YWlucyhQb2lu
dGVyQ2hhcmFjdGVyaXN0aWNzOjpGaW5lKTsKKyAgICBpZiAoa2V5d29yZCA9PSBDU1NWYWx1ZUNv
YXJzZSkKKyAgICAgICAgcmV0dXJuIHBvaW50ZXJDaGFyYWN0ZXJpc3RpY3NPZkFsbEF2YWlsYWJs
ZVBvaW50aW5nRGV2aWNlcy5jb250YWlucyhQb2ludGVyQ2hhcmFjdGVyaXN0aWNzOjpDb2Fyc2Up
OworICAgIGlmIChrZXl3b3JkID09IENTU1ZhbHVlTm9uZSkKKyAgICAgICAgcmV0dXJuIHBvaW50
ZXJDaGFyYWN0ZXJpc3RpY3NPZkFsbEF2YWlsYWJsZVBvaW50aW5nRGV2aWNlcy5pc0VtcHR5KCk7
CisgICAgcmV0dXJuIGZhbHNlOwogfQogCiBzdGF0aWMgYm9vbCBwcmVmZXJzRGFya0ludGVyZmFj
ZUV2YWx1YXRlKENTU1ZhbHVlKiB2YWx1ZSwgY29uc3QgQ1NTVG9MZW5ndGhDb252ZXJzaW9uRGF0
YSYsIEZyYW1lJiBmcmFtZSwgTWVkaWFGZWF0dXJlUHJlZml4KQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0Vt
cHR5Q2xpZW50cy5oCmluZGV4IGExNWQ1NDQ4YmE4Ni4uMTY5MGM3ZTIyNTRmIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5oCkBAIC0xMDIsNiArMTAyLDkgQEAgY2xhc3MgRW1wdHlD
aHJvbWVDbGllbnQgOiBwdWJsaWMgQ2hyb21lQ2xpZW50IHsKIAogICAgIEtleWJvYXJkVUlNb2Rl
IGtleWJvYXJkVUlNb2RlKCkgZmluYWwgeyByZXR1cm4gS2V5Ym9hcmRBY2Nlc3NEZWZhdWx0OyB9
CiAKKyAgICBib29sIGhvdmVyU3VwcG9ydGVkQnlBbnlBdmFpbGFibGVQb2ludGluZ0RldmljZSgp
IGNvbnN0IGZpbmFsIHsgcmV0dXJuIGZhbHNlOyB9CisgICAgT3B0aW9uU2V0PFBvaW50ZXJDaGFy
YWN0ZXJpc3RpY3M+IHBvaW50ZXJDaGFyYWN0ZXJpc3RpY3NPZkFsbEF2YWlsYWJsZVBvaW50aW5n
RGV2aWNlcygpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIHsgfTsgfQorCiAgICAgdm9pZCBpbnZhbGlk
YXRlUm9vdFZpZXcoY29uc3QgSW50UmVjdCYpIGZpbmFsIHsgfQogICAgIHZvaWQgaW52YWxpZGF0
ZUNvbnRlbnRzQW5kUm9vdFZpZXcoY29uc3QgSW50UmVjdCYpIG92ZXJyaWRlIHsgfQogICAgIHZv
aWQgaW52YWxpZGF0ZUNvbnRlbnRzRm9yU2xvd1Njcm9sbChjb25zdCBJbnRSZWN0JikgZmluYWwg
eyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVudC5oIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaAppbmRleCBhN2UyZjQxMDE3NzYuLmE5MWYw
NTUxZTlkMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVudC5oCkBAIC0zOSw2ICszOSw3IEBA
CiAjaW5jbHVkZSAiSW1hZ2VCdWZmZXIuaCIKICNpbmNsdWRlICJJbnB1dE1vZGUuaCIKICNpbmNs
dWRlICJNZWRpYVByb2R1Y2VyLmgiCisjaW5jbHVkZSAiUG9pbnRlckNoYXJhY3RlcmlzdGljcy5o
IgogI2luY2x1ZGUgIlBvcHVwTWVudS5oIgogI2luY2x1ZGUgIlBvcHVwTWVudUNsaWVudC5oIgog
I2luY2x1ZGUgIlJlZ2lzdHJhYmxlRG9tYWluLmgiCkBAIC0xNzgsNiArMTc5LDkgQEAgcHVibGlj
OgogICAgIHZpcnR1YWwgdm9pZCBzZXRTdGF0dXNiYXJUZXh0KGNvbnN0IFN0cmluZyYpID0gMDsK
ICAgICB2aXJ0dWFsIEtleWJvYXJkVUlNb2RlIGtleWJvYXJkVUlNb2RlKCkgPSAwOwogCisgICAg
dmlydHVhbCBib29sIGhvdmVyU3VwcG9ydGVkQnlBbnlBdmFpbGFibGVQb2ludGluZ0RldmljZSgp
IGNvbnN0ID0gMDsKKyAgICB2aXJ0dWFsIE9wdGlvblNldDxQb2ludGVyQ2hhcmFjdGVyaXN0aWNz
PiBwb2ludGVyQ2hhcmFjdGVyaXN0aWNzT2ZBbGxBdmFpbGFibGVQb2ludGluZ0RldmljZXMoKSBj
b25zdCA9IDA7CisKICAgICB2aXJ0dWFsIGJvb2wgc3VwcG9ydHNJbW1lZGlhdGVJbnZhbGlkYXRp
b24oKSB7IHJldHVybiBmYWxzZTsgfQogICAgIHZpcnR1YWwgdm9pZCBpbnZhbGlkYXRlUm9vdFZp
ZXcoY29uc3QgSW50UmVjdCYpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgaW52YWxpZGF0ZUNvbnRl
bnRzQW5kUm9vdFZpZXcoY29uc3QgSW50UmVjdCYpID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvUG9pbnRlckNoYXJhY3RlcmlzdGljcy5oIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9Qb2ludGVyQ2hhcmFjdGVyaXN0aWNzLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwLi4xMzZjMzE3YWY0ZmMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL1BvaW50ZXJDaGFyYWN0ZXJpc3RpY3MuaApAQCAtMCwwICsxLDM1IEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJ
UycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRP
UlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1Mg
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisg
KiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKK25h
bWVzcGFjZSBXZWJDb3JlIHsKKworZW51bSBjbGFzcyBQb2ludGVyQ2hhcmFjdGVyaXN0aWNzIDog
dWludDhfdCB7CisgICAgQ29hcnNlID0gMSA8PCAwLAorICAgIEZpbmUgPSAxIDw8IDEsCit9Owor
Cit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9QbGF0Zm9ybVNjcmVlbi5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGxhdGZvcm1T
Y3JlZW4uaAppbmRleCBiMjBmZTM4OWE5OGUuLjkyY2U0ZGQ2ZWMxOCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGxhdGZvcm1TY3JlZW4uaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9QbGF0Zm9ybVNjcmVlbi5oCkBAIC0xNTIsOCArMTUyLDggQEAgV0VCQ09SRV9F
WFBPUlQgZmxvYXQgc2NyZWVuU2NhbGVGYWN0b3IoVUlTY3JlZW4gKiA9IG51bGxwdHIpOwogCiAj
aWYgRU5BQkxFKFRPVUNIX0VWRU5UUykKICNpZiBQTEFURk9STShHVEspIHx8IFBMQVRGT1JNKFdQ
RSkKLWJvb2wgc2NyZWVuSGFzVG91Y2hEZXZpY2UoKTsKLWJvb2wgc2NyZWVuSXNUb3VjaFByaW1h
cnlJbnB1dERldmljZSgpOworV0VCQ09SRV9FWFBPUlQgYm9vbCBzY3JlZW5IYXNUb3VjaERldmlj
ZSgpOworV0VCQ09SRV9FWFBPUlQgYm9vbCBzY3JlZW5Jc1RvdWNoUHJpbWFyeUlucHV0RGV2aWNl
KCk7CiAjZWxzZQogY29uc3RleHByIGJvb2wgc2NyZWVuSGFzVG91Y2hEZXZpY2UoKSB7IHJldHVy
biB0cnVlOyB9CiBjb25zdGV4cHIgYm9vbCBzY3JlZW5Jc1RvdWNoUHJpbWFyeUlucHV0RGV2aWNl
KCkgeyByZXR1cm4gdHJ1ZTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cg
Yi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCA0MDM0ZWZjMmVjNjAuLmRhMWU4ZDBkOGY3
YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktp
dC9DaGFuZ2VMb2cKQEAgLTEsMyArMSw5NiBAQAorMjAyMC0xMC0wNiAgRGV2aW4gUm91c3NvICA8
ZHJvdXNzb0BhcHBsZS5jb20+CisKKyAgICAgICAgQ1NTIGhvdmVyIGFuZCAicG9pbnRlcjogZmlu
ZSIgbWVkaWEgcXVlcmllcyBkbyBub3QgZXZhbHVhdGUgdG8gdHJ1ZSB3aXRoIGlPUyAxMy40IG1v
dXNlIHN1cHBvcnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTIwOTI5MgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNjA2NjMxMjQ+CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgVGltIEhvcnRvbi4KKworICAgICAgICBPbiBpT1MsIHRoZSBwcmltYXJ5IHBv
aW50ZXIgd2lsbCBhbHdheXMgYmUgdG91Y2ggaW5wdXQsIHNvIHRoZSBgaG92ZXJgL2Bwb2ludGVy
YCBtZWRpYSBxdWVyeQorICAgICAgICBzaG91bGQgbmV2ZXIgY2hhbmdlLiBJZiBhIG1vdXNlIGlz
IGNvbm5lY3RlZCwgaG93ZXZlciwgYGFueS1ob3ZlcmAvYGFueS1wb2ludGVyYCBzaG91bGQKKyAg
ICAgICAgY2hhbmdlIGFzIG5vdyB0aGVyZSBpcyBhdCBsZWFzdCBvbmUgZGV2aWNlIHRoYXQgc3Vw
cG9ydHMgYGhvdmVyYC9gZmluZWAuIE5vdGUgdGhhdCBpbiB0aGUKKyAgICAgICAgY2FzZSBvZiBg
YW55LXBvaW50ZXJgIHRoaXMgbWVhbnMgdGhhdCBib3RoIGBjb2Fyc2VgIGFuZCBgZmluZWAgd2ls
bCBhcHBseS4gQ2F0YWx5c3QgYXNzdW1lcworICAgICAgICB0aGF0IHRoZXJlIGlzIGFsd2F5cyBh
IG1vdXNlIGNvbm5lY3RlZC4KKworICAgICAgICBTcGVjOiBodHRwczovL2RyYWZ0cy5jc3N3Zy5v
cmcvbWVkaWFxdWVyaWVzLTQvI2FueS1pbnB1dAorCisgICAgICAgICogVUlQcm9jZXNzL2lvcy9X
S01vdXNlRGV2aWNlT2JzZXJ2ZXIuaDogQWRkZWQuCisgICAgICAgICogVUlQcm9jZXNzL2lvcy9X
S01vdXNlRGV2aWNlT2JzZXJ2ZXIubW06IEFkZGVkLgorICAgICAgICAoK1tXS01vdXNlRGV2aWNl
T2JzZXJ2ZXIgc2hhcmVkSW5zdGFuY2VdKToKKyAgICAgICAgKC1bV0tNb3VzZURldmljZU9ic2Vy
dmVyIGRlYWxsb2NdKToKKyAgICAgICAgKC1bV0tNb3VzZURldmljZU9ic2VydmVyIHN0YXJ0XSk6
CisgICAgICAgICgtW1dLTW91c2VEZXZpY2VPYnNlcnZlciBzdG9wXSk6CisgICAgICAgICgtW1dL
TW91c2VEZXZpY2VPYnNlcnZlciBtb3VzZVBvaW50ZXJEZXZpY2VzRGlkQ2hhbmdlOl0pOgorICAg
ICAgICAoLVtXS01vdXNlRGV2aWNlT2JzZXJ2ZXIgX3NldEhhc01vdXNlRGV2aWNlRm9yVGVzdGlu
ZzpdKToKKyAgICAgICAgVXNlIGBCYWNrQm9hcmRTZXJ2aWNlc2AgdG8gbGlzdGVuIGZvciBtb3Vz
ZSBkZXZpY2VzIGNoYW5nZXMgYW5kIG5vdGlmeSBhbGwgV2ViUHJvY2Vzcy4KKworICAgICAgICAq
IFVJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUHJv
Y2Vzc1Byb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Byb3h5OjpXZWJQcm9j
ZXNzUHJveHkpOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUHJveHk6OnBsYXRmb3JtSW5p
dGlhbGl6ZSk6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUHJveHk6On5XZWJQ
cm9jZXNzUHJveHkpOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUHJveHk6OnBsYXRmb3Jt
RGVzdHJveSk6IEFkZGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvV2ViUHJvY2Vzc1Byb3h5
SU9TLm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUHJveHk6OnBsYXRmb3JtSW5pdGlh
bGl6ZSk6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUHJveHk6OnBsYXRmb3Jt
RGVzdHJveSk6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUHJveHk6Om5vdGlm
eUhhc01vdXNlRGV2aWNlQ2hhbmdlZCk6IEFkZGVkLgorICAgICAgICBUZWxsIHRoZSBzaGFyZWQg
YFdLTW91c2VEZXZpY2VPYnNlcnZlcmAgdG8gc3RhcnQgbGlzdGVuaW5nIGZvciBtb3VzZSBkZXZp
Y2UgY2hhbmdlcyB3aGVuCisgICAgICAgIGNyZWF0aW5nIHRoZSBXZWJQcm9jZXNzIHNvIHRoYXQg
dGhlIHNoYXJlZCBgV0tNb3VzZURldmljZU9ic2VydmVyYCBrbm93cyB0byBub3RpZnkgYWxsCisg
ICAgICAgIGluc3RhbmNlcyB3aGVuIG1vdXNlIGRldmljZXMgY2hhbmdlLiBNYWtlIGBhbGxQcm9j
ZXNzZXNgIGludG8gYSBgcHJpdmF0ZSBzdGF0aWNgIG1lbWJlcgorICAgICAgICBmdW5jdGlvbiBz
byB0aGF0IGl0IGNhbiBhbHNvIGJlIHVzZWQgaW4gYFVJUHJvY2Vzcy9pb3MvV2ViUHJvY2Vzc1By
b3h5SU9TLm1tYC4KKworICAgICAgICAqIFNoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0
ZXJzLmg6CisgICAgICAgICogU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzOjplbmNvZGUg
Y29uc3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzOjpk
ZWNvZGUpOgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9XZWJQcm9jZXNzUG9vbENvY29hLm1t
OgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUG9vbDo6cGxhdGZvcm1Jbml0aWFsaXplV2Vi
UHJvY2Vzcyk6CisgICAgICAgIFVzZSB0aGUgY3VycmVudCBzdGF0ZSBvZiB0aGUgc2hhcmVkIGBX
S01vdXNlRGV2aWNlT2JzZXJ2ZXJgIHdoZW4gY3JlYXRpbmcgV2ViUHJvY2VzcyBpbnN0ZWFkCisg
ICAgICAgIG9mIHNlbmRpbmcgYSBgU2V0SGFzTW91c2VEZXZpY2VgIG1lc3NhZ2UgaW1tZWRpYXRl
bHkgYWZ0ZXIgdGhlIFdlYlByb2Nlc3MgaXMgY3JlYXRlZC4KKworICAgICAgICAqIFdlYlByb2Nl
c3MvV2ViUHJvY2Vzcy5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlByb2Nl
c3MuaDoKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6aGFzTW91c2VEZXZpY2UgY29uc3Qp
OiBBZGRlZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwOgorICAgICAgICAo
V2ViS2l0OjpXZWJQcm9jZXNzOjpzZXRIYXNNb3VzZURldmljZSk6IEFkZGVkLgorICAgICAgICAq
IFdlYlByb2Nlc3MvY29jb2EvV2ViUHJvY2Vzc0NvY29hLm1tOgorICAgICAgICAoV2ViS2l0OjpX
ZWJQcm9jZXNzOjpwbGF0Zm9ybUluaXRpYWxpemVXZWJQcm9jZXNzKToKKyAgICAgICAgVXBkYXRl
IHN0eWxlIChpbmNsdWRpbmcgYGFueS1ob3ZlcmAgYW5kIGBhbnktcG9pbnRlcmApIHdoZW5ldmVy
IG1vdXNlIGRldmljZXMgY2hhbmdlLgorCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC9XZWJDaHJvbWVDbGllbnQuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L1dlYkNocm9tZUNsaWVudC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkNocm9tZUNsaWVu
dDo6aG92ZXJTdXBwb3J0ZWRCeUFueUF2YWlsYWJsZVBvaW50aW5nRGV2aWNlIGNvbnN0KTogQWRk
ZWQuCisgICAgICAgIChXZWJLaXQ6OldlYkNocm9tZUNsaWVudDo6cG9pbnRlckNoYXJhY3Rlcmlz
dGljc09mQWxsQXZhaWxhYmxlUG9pbnRpbmdEZXZpY2VzIGNvbnN0KTogQWRkZWQuCisgICAgICAg
ICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dl
YlBhZ2UvZ3RrL1dlYlBhZ2VHdGsuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpob3Zl
clN1cHBvcnRlZEJ5QW55QXZhaWxhYmxlUG9pbnRpbmdEZXZpY2UgY29uc3QpOiBBZGRlZC4KKyAg
ICAgICAgKFdlYktpdDo6V2ViUGFnZTo6cG9pbnRlckNoYXJhY3RlcmlzdGljc09mQWxsQXZhaWxh
YmxlUG9pbnRpbmdEZXZpY2VzIGNvbnN0KTogQWRkZWQuCisgICAgICAgICogV2ViUHJvY2Vzcy9X
ZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tOgorICAgICAgICAoV2ViS2l0OjpoYXNNb3VzZURldmlj
ZSk6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpob3ZlclN1cHBvcnRlZEJ5QW55
QXZhaWxhYmxlUG9pbnRpbmdEZXZpY2UgY29uc3QpOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6
V2ViUGFnZTo6cG9pbnRlckNoYXJhY3RlcmlzdGljc09mQWxsQXZhaWxhYmxlUG9pbnRpbmdEZXZp
Y2VzIGNvbnN0KTogQWRkZWQuCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9XZWJQ
YWdlTWFjLm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpob3ZlclN1cHBvcnRlZEJ5QW55
QXZhaWxhYmxlUG9pbnRpbmdEZXZpY2UgY29uc3QpOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6
V2ViUGFnZTo6cG9pbnRlckNoYXJhY3RlcmlzdGljc09mQWxsQXZhaWxhYmxlUG9pbnRpbmdEZXZp
Y2VzIGNvbnN0KTogQWRkZWQuCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL3BsYXlzdGF0
aW9uL1dlYlBhZ2VQbGF5U3RhdGlvbi5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6Omhv
dmVyU3VwcG9ydGVkQnlBbnlBdmFpbGFibGVQb2ludGluZ0RldmljZSBjb25zdCk6IEFkZGVkLgor
ICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpwb2ludGVyQ2hhcmFjdGVyaXN0aWNzT2ZBbGxBdmFp
bGFibGVQb2ludGluZ0RldmljZXMgY29uc3QpOiBBZGRlZC4KKyAgICAgICAgKiBXZWJQcm9jZXNz
L1dlYlBhZ2Uvd2luL1dlYlBhZ2VXaW4uY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpo
b3ZlclN1cHBvcnRlZEJ5QW55QXZhaWxhYmxlUG9pbnRpbmdEZXZpY2UgY29uc3QpOiBBZGRlZC4K
KyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6cG9pbnRlckNoYXJhY3RlcmlzdGljc09mQWxsQXZh
aWxhYmxlUG9pbnRpbmdEZXZpY2VzIGNvbnN0KTogQWRkZWQuCisgICAgICAgICogV2ViUHJvY2Vz
cy9XZWJQYWdlL3dwZS9XZWJQYWdlV1BFLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6
aG92ZXJTdXBwb3J0ZWRCeUFueUF2YWlsYWJsZVBvaW50aW5nRGV2aWNlIGNvbnN0KTogQWRkZWQu
CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OnBvaW50ZXJDaGFyYWN0ZXJpc3RpY3NPZkFsbEF2
YWlsYWJsZVBvaW50aW5nRGV2aWNlcyBjb25zdCk6IEFkZGVkLgorICAgICAgICBQcm92aWRlIGEg
d2F5IGZvciBXZWJDb3JlIHRvIGdldCB0aGUgY3VycmVudCBzdGF0ZSBvZiB3aGV0aGVyIHRoZXJl
IGFyZSBhbnkgbW91c2UgZGV2aWNlcy4KKyAgICAgICAgUmVmYWN0b3IgbG9naWMgaW4gYFdlYkNv
cmU6OmFueUhvdmVyRXZhbHVhdGVgIGFuZCBgV2ViQ29yZTo6YW55UG9pbnRlckV2YWx1YXRlYCB0
byBtb3ZlCisgICAgICAgIHBsYXRmb3JtIGNvZGUgaW50byB0aGUgcmVzcGVjdGl2ZSBgV2ViUGFn
ZWAgZmlsZS4KKworICAgICAgICAqIENvbmZpZ3VyYXRpb25zL1dlYktpdC54Y2NvbmZpZzoKKyAg
ICAgICAgKiBQbGF0Zm9ybS9zcGkvaW9zL0JhY2tCb2FyZFNlcnZpY2VzU1BJLmg6CisgICAgICAg
ICogUGxhdGZvcm0vc3BpL2lvcy9CYXNlQm9hcmRTUEkuaDogQWRkZWQuCisgICAgICAgICogU291
cmNlc0NvY29hLnR4dDoKKyAgICAgICAgKiBXZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
ajoKKwogMjAyMC0xMC0wNiAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CiAKICAg
ICAgICAgRW5hYmxlIHZpZGVvIGNhcHR1cmUgaW4gV2ViUHJvY2VzcyBieSBkZWZhdWx0IG9uIE1h
Y09TCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NvbmZpZ3VyYXRpb25zL1dlYktpdC54Y2Nv
bmZpZyBiL1NvdXJjZS9XZWJLaXQvQ29uZmlndXJhdGlvbnMvV2ViS2l0LnhjY29uZmlnCmluZGV4
IDVmNzVlY2JiMTQ5Yy4uY2U3MTg1OWRkYTkwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0Nv
bmZpZ3VyYXRpb25zL1dlYktpdC54Y2NvbmZpZworKysgYi9Tb3VyY2UvV2ViS2l0L0NvbmZpZ3Vy
YXRpb25zL1dlYktpdC54Y2NvbmZpZwpAQCAtNjAsNiArNjAsMTAgQEAgV0tfQVNTRVJUSU9OX1NF
UlZJQ0VTX0xERkxBR1NfYXBwbGV0dm9zID0gLWZyYW1ld29yayBBc3NlcnRpb25TZXJ2aWNlczsK
IFdLX0FTU0VSVElPTl9TRVJWSUNFU19MREZMQUdTX2FwcGxldHZzaW11bGF0b3IgPSAtZnJhbWV3
b3JrIEFzc2VydGlvblNlcnZpY2VzOwogV0tfQVNTRVJUSU9OX1NFUlZJQ0VTX0xERkxBR1NfbWFj
Y2F0YWx5c3QgPSAtZnJhbWV3b3JrIEFzc2VydGlvblNlcnZpY2VzOwogCitXS19CQUNLQk9BUkRf
U0VSVklDRVNfTERGTEFHUyA9ICQoV0tfQkFDS0JPQVJEX1NFUlZJQ0VTX0xERkxBR1NfJChXS19Q
TEFURk9STV9OQU1FKSk7CitXS19CQUNLQk9BUkRfU0VSVklDRVNfTERGTEFHU19pcGhvbmVvcyA9
IC1mcmFtZXdvcmsgQmFja0JvYXJkU2VydmljZXM7CitXS19CQUNLQk9BUkRfU0VSVklDRVNfTERG
TEFHU19pcGhvbmVzaW11bGF0b3IgPSAtZnJhbWV3b3JrIEJhY2tCb2FyZFNlcnZpY2VzOworCiBX
S19SVU5OSU5HQk9BUkRfU0VSVklDRVNfTERGTEFHUyA9ICQoV0tfUlVOTklOR0JPQVJEX1NFUlZJ
Q0VTX0xERkxBR1NfJChXS19DT0NPQV9UT1VDSCkpOwogV0tfUlVOTklOR0JPQVJEX1NFUlZJQ0VT
X0xERkxBR1NfY29jb2F0b3VjaCA9IC1mcmFtZXdvcmsgUnVubmluZ0JvYXJkU2VydmljZXM7CiAK
QEAgLTEyMyw3ICsxMjcsNyBAQCBXS19BVVRIS0lUX0xERkxBR1NfSU9TX1NJTkNFXzEzID0gLWZy
YW1ld29yayBBdXRoS2l0OwogV0tfQVVUSEtJVF9MREZMQUdTX21hY29zeCA9ICQoV0tfQVVUSEtJ
VF9MREZMQUdTJChXS19NQUNPU18xMDE1KSk7CiBXS19BVVRIS0lUX0xERkxBR1NfTUFDT1NfU0lO
Q0VfMTAxNSA9IC1mcmFtZXdvcmsgQXV0aEtpdDsKIAotRlJBTUVXT1JLX0FORF9MSUJSQVJZX0xE
RkxBR1MgPSAtbG9iamMgLWZyYW1ld29yayBDRk5ldHdvcmsgLWZyYW1ld29yayBDb3JlQXVkaW8g
LWZyYW1ld29yayBDb3JlRm91bmRhdGlvbiAtZnJhbWV3b3JrIENvcmVHcmFwaGljcyAtZnJhbWV3
b3JrIENvcmVUZXh0IC1mcmFtZXdvcmsgRm91bmRhdGlvbiAtZnJhbWV3b3JrIEltYWdlSU8gLWZy
YW1ld29yayBJT0tpdCAtZnJhbWV3b3JrIElPU3VyZmFjZSAtZnJhbWV3b3JrIFdlYktpdExlZ2Fj
eSAtbG5ldHdvcmsgJChXS19BQ0NFU1NJQklMSVRZX0xERkxBR1MpICQoV0tfQVBQS0lUX0xERkxB
R1MpICQoV0tfQVNTRVJUSU9OX1NFUlZJQ0VTX0xERkxBR1MpICQoV0tfUlVOTklOR0JPQVJEX1NF
UlZJQ0VTX0xERkxBR1MpICQoV0tfQVVUSEtJVF9MREZMQUdTKSAkKFdLX0NBUkJPTl9MREZMQUdT
KSAkKFdLX0NPUkVfUFJFRElDVElPTl9MREZMQUdTKSAkKFdLX0NPUkVfU0VSVklDRVNfTERGTEFH
UykgJChXS19HUkFQSElDU19TRVJWSUNFU19MREZMQUdTKSAkKFdLX0xJQlNBTkRCT1hfTERGTEFH
UykgJChXS19MSUJXRUJSVENfTERGTEFHUykgJChXS19NT0JJTEVfQ09SRV9TRVJWSUNFU19MREZM
QUdTKSAkKFdLX01PQklMRV9HRVNUQUxUX0xERkxBR1MpICQoV0tfUERGS0lUX0xERkxBR1MpICQo
V0tfU0FGRV9CUk9XU0lOR19MREZMQUdTKSAkKFdLX1NFQ1VSSVRZX0lOVEVSRkFDRV9MREZMQUdT
KSAkKFdLX1VJS0lUX0xERkxBR1MpICQoV0tfVVJMX0ZPUk1BVFRJTkdfTERGTEFHUykgJChXS19X
RUJJTlNQRUNUT1JVSV9MREZMQUdTKTsKK0ZSQU1FV09SS19BTkRfTElCUkFSWV9MREZMQUdTID0g
LWxvYmpjIC1mcmFtZXdvcmsgQ0ZOZXR3b3JrIC1mcmFtZXdvcmsgQ29yZUF1ZGlvIC1mcmFtZXdv
cmsgQ29yZUZvdW5kYXRpb24gLWZyYW1ld29yayBDb3JlR3JhcGhpY3MgLWZyYW1ld29yayBDb3Jl
VGV4dCAtZnJhbWV3b3JrIEZvdW5kYXRpb24gLWZyYW1ld29yayBJbWFnZUlPIC1mcmFtZXdvcmsg
SU9LaXQgLWZyYW1ld29yayBJT1N1cmZhY2UgLWZyYW1ld29yayBXZWJLaXRMZWdhY3kgLWxuZXR3
b3JrICQoV0tfQUNDRVNTSUJJTElUWV9MREZMQUdTKSAkKFdLX0FQUEtJVF9MREZMQUdTKSAkKFdL
X0FTU0VSVElPTl9TRVJWSUNFU19MREZMQUdTKSAkKFdLX0JBQ0tCT0FSRF9TRVJWSUNFU19MREZM
QUdTKSAkKFdLX1JVTk5JTkdCT0FSRF9TRVJWSUNFU19MREZMQUdTKSAkKFdLX0FVVEhLSVRfTERG
TEFHUykgJChXS19DQVJCT05fTERGTEFHUykgJChXS19DT1JFX1BSRURJQ1RJT05fTERGTEFHUykg
JChXS19DT1JFX1NFUlZJQ0VTX0xERkxBR1MpICQoV0tfR1JBUEhJQ1NfU0VSVklDRVNfTERGTEFH
UykgJChXS19MSUJTQU5EQk9YX0xERkxBR1MpICQoV0tfTElCV0VCUlRDX0xERkxBR1MpICQoV0tf
TU9CSUxFX0NPUkVfU0VSVklDRVNfTERGTEFHUykgJChXS19NT0JJTEVfR0VTVEFMVF9MREZMQUdT
KSAkKFdLX1BERktJVF9MREZMQUdTKSAkKFdLX1NBRkVfQlJPV1NJTkdfTERGTEFHUykgJChXS19T
RUNVUklUWV9JTlRFUkZBQ0VfTERGTEFHUykgJChXS19VSUtJVF9MREZMQUdTKSAkKFdLX1VSTF9G
T1JNQVRUSU5HX0xERkxBR1MpICQoV0tfV0VCSU5TUEVDVE9SVUlfTERGTEFHUyk7CiAKIC8vIFBy
ZXZlbnQgQysrIHN0YW5kYXJkIGxpYnJhcnkgYmFzaWNfc3RyaW5nc3RyZWFtLCBvcGVyYXRvciBu
ZXcsIGRlbGV0ZSBhbmQgdGhlaXIgcmVsYXRlZCBleGNlcHRpb24gdHlwZXMgZnJvbSBiZWluZyBl
eHBvcnRlZCBhcyB3ZWFrIHN5bWJvbHMuCiBVTkVYUE9SVEVEX1NZTUJPTF9MREZMQUdTID0gLVds
LC11bmV4cG9ydGVkX3N5bWJvbCAtV2wsX19aVElTdDliYWRfYWxsb2MgLVdsLC11bmV4cG9ydGVk
X3N5bWJvbCAtV2wsX19aVElTdDlleGNlcHRpb24gLVdsLC11bmV4cG9ydGVkX3N5bWJvbCAtV2ws
X19aVFNTdDliYWRfYWxsb2MgLVdsLC11bmV4cG9ydGVkX3N5bWJvbCAtV2wsX19aVFNTdDlleGNl
cHRpb24gLVdsLC11bmV4cG9ydGVkX3N5bWJvbCAtV2wsX19aZGxQdlNfIC1XbCwtdW5leHBvcnRl
ZF9zeW1ib2wgLVdsLF9fWm53bVB2IC1XbCwtdW5leHBvcnRlZF9zeW1ib2wgLVdsLF9fWm53bSAt
V2wsLXVuZXhwb3J0ZWRfc3ltYm9sIC1XbCxfX1pOU3QzX18xOGZ1bmN0aW9uSUZ2TjdXZWJDb3Jl
MTJQb2xpY3lBY3Rpb25FRUVDMkVPUzRfIC1XbCwtdW5leHBvcnRlZF9zeW1ib2wgLVdsLF9fWk5T
dDNfXzE4ZnVuY3Rpb25JRnZON1dlYkNvcmUxMlBvbGljeUFjdGlvbkVFRUMxRU9TNF8gLVdsLC11
bmV4cG9ydGVkX3N5bWJvbCAtV2wsX19aTlN0M19fMThmdW5jdGlvbklGdk43V2ViQ29yZTEyUG9s
aWN5QWN0aW9uRUVFYVNFRG4gLVdsLC11bmV4cG9ydGVkX3N5bWJvbCAtV2wsX19aTktTdDNfXzE4
ZnVuY3Rpb25JRnZON1dlYkNvcmUxMlBvbGljeUFjdGlvbkVFRWNsRVMyXyAtV2wsLXVuZXhwb3J0
ZWRfc3ltYm9sIC1XbCxfX1pOU3QzX18xOGZ1bmN0aW9uSUZ2TjdXZWJDb3JlMTJQb2xpY3lBY3Rp
b25FRUU0c3dhcEVSUzRfIC1XbCwtdW5leHBvcnRlZF9zeW1ib2wgLVdsLF9fWk5TdDNfXzE4ZnVu
Y3Rpb25JRnZON1dlYkNvcmUxMlBvbGljeUFjdGlvbkVFRUMxRVJLUzRfIC1XbCwtdW5leHBvcnRl
ZF9zeW1ib2wgLVdsLF9fWk5TdDNfXzE4ZnVuY3Rpb25JRnZON1dlYkNvcmUxMlBvbGljeUFjdGlv
bkVFRUMyRVJLUzRfIC1XbCwtdW5leHBvcnRlZF9zeW1ib2wgLVdsLF9fWk5TdDNfXzE4ZnVuY3Rp
b25JRnZON1dlYkNvcmUxMlBvbGljeUFjdGlvbkVFRUQxRXYgLVdsLC11bmV4cG9ydGVkX3N5bWJv
bCAtV2wsX19aTlN0M19fMThmdW5jdGlvbklGdk43V2ViQ29yZTEyUG9saWN5QWN0aW9uRUVFRDJF
diAtV2wsLXVuZXhwb3J0ZWRfc3ltYm9sIC1XbCxfX1pOU3QzX18xOGZ1bmN0aW9uSUZ2TjdXZWJD
b3JlMTJQb2xpY3lBY3Rpb25FRUVhU0VSS1M0XyAtV2wsLXVuZXhwb3J0ZWRfc3ltYm9sIC1XbCxf
X1pUVk5TdDNfXzExN2JhZF9mdW5jdGlvbl9jYWxsRSAtV2wsLXVuZXhwb3J0ZWRfc3ltYm9sIC1X
bCxfX1pUQ05TdDNfXzExOGJhc2ljX3N0cmluZ3N0cmVhbUljTlNfMTFjaGFyX3RyYWl0c0ljRUVO
U185YWxsb2NhdG9ySWNFRUVFMF9OU18xM2Jhc2ljX2lzdHJlYW1JY1MyX0VFIC1XbCwtdW5leHBv
cnRlZF9zeW1ib2wgLVdsLF9fWlRDTlN0M19fMTE4YmFzaWNfc3RyaW5nc3RyZWFtSWNOU18xMWNo
YXJfdHJhaXRzSWNFRU5TXzlhbGxvY2F0b3JJY0VFRUUwX05TXzE0YmFzaWNfaW9zdHJlYW1JY1My
X0VFIC1XbCwtdW5leHBvcnRlZF9zeW1ib2wgLVdsLF9fWlRDTlN0M19fMTE4YmFzaWNfc3RyaW5n
c3RyZWFtSWNOU18xMWNoYXJfdHJhaXRzSWNFRU5TXzlhbGxvY2F0b3JJY0VFRUUxNl9OU18xM2Jh
c2ljX29zdHJlYW1JY1MyX0VFIC1XbCwtdW5leHBvcnRlZF9zeW1ib2wgLVdsLF9fWlRUTlN0M19f
MTE4YmFzaWNfc3RyaW5nc3RyZWFtSWNOU18xMWNoYXJfdHJhaXRzSWNFRU5TXzlhbGxvY2F0b3JJ
Y0VFRUUgLVdsLC11bmV4cG9ydGVkX3N5bWJvbCAtV2wsX19aVFZOU3QzX18xMTViYXNpY19zdHJp
bmdidWZJY05TXzExY2hhcl90cmFpdHNJY0VFTlNfOWFsbG9jYXRvckljRUVFRSAtV2wsLXVuZXhw
b3J0ZWRfc3ltYm9sIC1XbCxfX1pUVk5TdDNfXzExOGJhc2ljX3N0cmluZ3N0cmVhbUljTlNfMTFj
aGFyX3RyYWl0c0ljRUVOU185YWxsb2NhdG9ySWNFRUVFIC1XbCwtdW5leHBvcnRlZF9zeW1ib2wg
LVdsLF9fWlRDTlN0M19fMTE4YmFzaWNfc3RyaW5nc3RyZWFtSWNOU18xMWNoYXJfdHJhaXRzSWNF
RU5TXzlhbGxvY2F0b3JJY0VFRUU4X05TXzEzYmFzaWNfb3N0cmVhbUljUzJfRUU7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL3NwaS9pb3MvQmFja0JvYXJkU2VydmljZXNTUEku
aCBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vc3BpL2lvcy9CYWNrQm9hcmRTZXJ2aWNlc1NQSS5o
CmluZGV4IDZkOGQ4OTQzZTRjYy4uMDkwMTRkNDQxZTFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1BsYXRmb3JtL3NwaS9pb3MvQmFja0JvYXJkU2VydmljZXNTUEkuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1BsYXRmb3JtL3NwaS9pb3MvQmFja0JvYXJkU2VydmljZXNTUEkuaApAQCAtMjcsMTEg
KzI3LDI3IEBACiAKICNpbXBvcnQgPEJhY2tCb2FyZFNlcnZpY2VzL0JLU0FuaW1hdGlvbkZlbmNl
Lmg+CiAjaW1wb3J0IDxCYWNrQm9hcmRTZXJ2aWNlcy9CS1NBbmltYXRpb25GZW5jZV9Qcml2YXRl
Lmg+CisjaW1wb3J0IDxCYWNrQm9hcmRTZXJ2aWNlcy9CS1NNb3VzZVBvaW50ZXJTZXJ2aWNlLmg+
CiAKICNlbHNlCiAKKyNpbXBvcnQgIkJhc2VCb2FyZFNQSS5oIgorCiBAaW50ZXJmYWNlIEJLU0Fu
aW1hdGlvbkZlbmNlSGFuZGxlIDogTlNPYmplY3QKIC0gKG1hY2hfcG9ydF90KUNBUG9ydDsKIEBl
bmQKIAorQGNsYXNzIEJLU01vdXNlUG9pbnRlckRldmljZTsKKworQHByb3RvY29sIEJLU01vdXNl
UG9pbnRlckRldmljZU9ic2VydmVyIDxOU09iamVjdD4KK0BvcHRpb25hbAorLSAodm9pZCltb3Vz
ZVBvaW50ZXJEZXZpY2VzRGlkQ29ubmVjdDooTlNTZXQ8QktTTW91c2VQb2ludGVyRGV2aWNlICo+
ICopbW91c2VQb2ludGVyRGV2aWNlczsKKy0gKHZvaWQpbW91c2VQb2ludGVyRGV2aWNlc0RpZERp
c2Nvbm5lY3Q6KE5TU2V0PEJLU01vdXNlUG9pbnRlckRldmljZSAqPiAqKW1vdXNlUG9pbnRlckRl
dmljZXM7CitAZW5kCisKK0BpbnRlcmZhY2UgQktTTW91c2VQb2ludGVyU2VydmljZSA6IE5TT2Jq
ZWN0CisrIChCS1NNb3VzZVBvaW50ZXJTZXJ2aWNlICopc2hhcmVkSW5zdGFuY2U7CistIChpZDxC
U0ludmFsaWRhdGFibGU+KWFkZFBvaW50ZXJEZXZpY2VPYnNlcnZlcjooaWQ8QktTTW91c2VQb2lu
dGVyRGV2aWNlT2JzZXJ2ZXI+KW9ic2VydmVyOworQGVuZAorCiAjZW5kaWYgLy8gVVNFKEFQUExF
X0lOVEVSTkFMX1NESykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vc3BpL2lv
cy9CYXNlQm9hcmRTUEkuaCBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vc3BpL2lvcy9CYXNlQm9h
cmRTUEkuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLmFiMDQxODY5
NWI5MAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vc3BpL2lvcy9C
YXNlQm9hcmRTUEkuaApAQCAtMCwwICsxLDM2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIw
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBB
UyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJV
VE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
CisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmIFVTRShBUFBM
RV9JTlRFUk5BTF9TREspCisKKyNpbXBvcnQgPEJhc2VCb2FyZC9CU0ludmFsaWRhdGFibGUuaD4K
KworI2Vsc2UKKworQHByb3RvY29sIEJTSW52YWxpZGF0YWJsZSA8TlNPYmplY3Q+CistICh2b2lk
KWludmFsaWRhdGU7CitAZW5kCisKKyNlbmRpZiAvLyBVU0UoQVBQTEVfSU5URVJOQUxfU0RLKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1l
dGVycy5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0
ZXJzLmNwcAppbmRleCA3MTA4YjY1MWEwY2EuLjZiMjgzZWYyNDU4ZCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHAKKysrIGIv
U291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHAKQEAg
LTg1LDYgKzg1LDkgQEAgdm9pZCBXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzOjplbmNvZGUo
SVBDOjpFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogI2VuZGlmCiAgICAgZW5jb2RlciA8PCB0ZXh0
Q2hlY2tlclN0YXRlOwogICAgIGVuY29kZXIgPDwgZnVsbEtleWJvYXJkQWNjZXNzRW5hYmxlZDsK
KyNpZiBIQVZFKFVJS0lUX1dJVEhfTU9VU0VfU1VQUE9SVCkgJiYgUExBVEZPUk0oSU9TKQorICAg
IGVuY29kZXIgPDwgaGFzTW91c2VEZXZpY2U7CisjZW5kaWYKICAgICBlbmNvZGVyIDw8IGRlZmF1
bHRSZXF1ZXN0VGltZW91dEludGVydmFsOwogICAgIGVuY29kZXIgPDwgYmFja0ZvcndhcmRDYWNo
ZUNhcGFjaXR5OwogI2lmIFBMQVRGT1JNKENPQ09BKQpAQCAtMjk0LDYgKzI5NywxMCBAQCBib29s
IFdlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnM6OmRlY29kZShJUEM6OkRlY29kZXImIGRlY29k
ZXIsIFdlYlByb2Nlc3NDcmVhdAogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgaWYgKCFkZWNv
ZGVyLmRlY29kZShwYXJhbWV0ZXJzLmZ1bGxLZXlib2FyZEFjY2Vzc0VuYWJsZWQpKQogICAgICAg
ICByZXR1cm4gZmFsc2U7CisjaWYgSEFWRShVSUtJVF9XSVRIX01PVVNFX1NVUFBPUlQpICYmIFBM
QVRGT1JNKElPUykKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHBhcmFtZXRlcnMuaGFzTW91c2VE
ZXZpY2UpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisjZW5kaWYKICAgICBpZiAoIWRlY29kZXIu
ZGVjb2RlKHBhcmFtZXRlcnMuZGVmYXVsdFJlcXVlc3RUaW1lb3V0SW50ZXJ2YWwpKQogICAgICAg
ICByZXR1cm4gZmFsc2U7CiAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShwYXJhbWV0ZXJzLmJhY2tG
b3J3YXJkQ2FjaGVDYXBhY2l0eSkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9X
ZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQ
cm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgKaW5kZXggY2EyM2M2NzYzOGE3Li4zZDg2YTc0YjFk
M2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBh
cmFtZXRlcnMuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25Q
YXJhbWV0ZXJzLmgKQEAgLTExNyw2ICsxMTcsOSBAQCBzdHJ1Y3QgV2ViUHJvY2Vzc0NyZWF0aW9u
UGFyYW1ldGVycyB7CiAgICAgYm9vbCBzaG91bGRTdXBwcmVzc01lbW9yeVByZXNzdXJlSGFuZGxl
ciB7IGZhbHNlIH07CiAgICAgYm9vbCBzaG91bGRVc2VGb250U21vb3RoaW5nIHsgdHJ1ZSB9Owog
ICAgIGJvb2wgZnVsbEtleWJvYXJkQWNjZXNzRW5hYmxlZCB7IGZhbHNlIH07CisjaWYgSEFWRShV
SUtJVF9XSVRIX01PVVNFX1NVUFBPUlQpICYmIFBMQVRGT1JNKElPUykKKyAgICBib29sIGhhc01v
dXNlRGV2aWNlIHsgZmFsc2UgfTsKKyNlbmRpZgogICAgIGJvb2wgbWVtb3J5Q2FjaGVEaXNhYmxl
ZCB7IGZhbHNlIH07CiAgICAgYm9vbCBhdHRyU3R5bGVFbmFibGVkIHsgZmFsc2UgfTsKICAgICBi
b29sIHVzZUdQVVByb2Nlc3NGb3JNZWRpYUVuYWJsZWQgeyBmYWxzZSB9OwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9Tb3VyY2VzQ29jb2EudHh0IGIvU291cmNlL1dlYktpdC9Tb3VyY2VzQ29j
b2EudHh0CmluZGV4IDY4YzQ0YjQ5MzU2ZC4uZTg2ZDE1YzZiYmU4IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50eHQKKysrIGIvU291cmNlL1dlYktpdC9Tb3VyY2VzQ29j
b2EudHh0CkBAIC00NjAsNiArNDYwLDcgQEAgVUlQcm9jZXNzL2lvcy9XS0dlb2xvY2F0aW9uUHJv
dmlkZXJJT1MubW0KIFVJUHJvY2Vzcy9pb3MvV0tHZW9sb2NhdGlvblByb3ZpZGVySU9TT2JqQ1Nl
Y3VyaXR5T3JpZ2luLm1tCiBVSVByb2Nlc3MvaW9zL1dLSGlnaGxpZ2h0TG9uZ1ByZXNzR2VzdHVy
ZVJlY29nbml6ZXIubW0KIFVJUHJvY2Vzcy9pb3MvV0tLZXlib2FyZFNjcm9sbGluZ0FuaW1hdG9y
Lm1tCitVSVByb2Nlc3MvaW9zL1dLTW91c2VEZXZpY2VPYnNlcnZlci5tbQogVUlQcm9jZXNzL2lv
cy9XS01vdXNlR2VzdHVyZVJlY29nbml6ZXIubW0KIFVJUHJvY2Vzcy9pb3MvV0tQYXNzd29yZFZp
ZXcubW0KIFVJUHJvY2Vzcy9pb3MvV0tQREZQYWdlTnVtYmVySW5kaWNhdG9yLm1tCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJQcm9jZXNzUG9vbENvY29hLm1t
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViUHJvY2Vzc1Bvb2xDb2NvYS5tbQpp
bmRleCAwOWJmZmU0YzlkY2YuLmNmNzU1MjI2ZWNiNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQ29jb2EvV2ViUHJvY2Vzc1Bvb2xDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJQcm9jZXNzUG9vbENvY29hLm1tCkBAIC00MCw2ICs0MCw3
IEBACiAjaW1wb3J0ICJUZXh0Q2hlY2tlci5oIgogI2ltcG9ydCAiVXNlckludGVyZmFjZUlkaW9t
LmgiCiAjaW1wb3J0ICJXS0Jyb3dzaW5nQ29udGV4dENvbnRyb2xsZXJJbnRlcm5hbC5oIgorI2lt
cG9ydCAiV0tNb3VzZURldmljZU9ic2VydmVyLmgiCiAjaW1wb3J0ICJXZWJCYWNrRm9yd2FyZENh
Y2hlLmgiCiAjaW1wb3J0ICJXZWJNZW1vcnlQcmVzc3VyZUhhbmRsZXIuaCIKICNpbXBvcnQgIldl
YlBhZ2VHcm91cC5oIgpAQCAtNTA1LDYgKzUwNiwxMCBAQCB2b2lkIFdlYlByb2Nlc3NQb29sOjpw
bGF0Zm9ybUluaXRpYWxpemVXZWJQcm9jZXNzKGNvbnN0IFdlYlByb2Nlc3NQcm94eSYgcHJvY2Vz
cwogI2lmIEhBVkUoQ0FUQUxZU1RfVVNFUl9JTlRFUkZBQ0VfSURJT01fQU5EX1NDQUxFX0ZBQ1RP
UikKICAgICBwYXJhbWV0ZXJzLm92ZXJyaWRlVXNlckludGVyZmFjZUlkaW9tQW5kU2NhbGUgPSB7
IF9VSUFwcGxpY2F0aW9uQ2F0YWx5c3RVc2VySW50ZXJmYWNlSWRpb20oKSwgX1VJQXBwbGljYXRp
b25DYXRhbHlzdFNjYWxlRmFjdG9yKCkgfTsKICNlbmRpZgorCisjaWYgSEFWRShVSUtJVF9XSVRI
X01PVVNFX1NVUFBPUlQpICYmIFBMQVRGT1JNKElPUykKKyAgICBwYXJhbWV0ZXJzLmhhc01vdXNl
RGV2aWNlID0gW1tXS01vdXNlRGV2aWNlT2JzZXJ2ZXIgc2hhcmVkSW5zdGFuY2VdIGhhc01vdXNl
RGV2aWNlXTsKKyNlbmRpZgogfQogCiB2b2lkIFdlYlByb2Nlc3NQb29sOjpwbGF0Zm9ybUluaXRp
YWxpemVOZXR3b3JrUHJvY2VzcyhOZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyYgcGFy
YW1ldGVycykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQ
cm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwCmlu
ZGV4IDg5ZGQ1ZjE5YmY0YS4uNDBjNDlhOTkzMjdiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAKQEAgLTEwOSw3ICsxMDksNyBAQCBzdGF0aWMgYm9vbCBp
c01haW5UaHJlYWRPckNoZWNrRGlzYWJsZWQoKQogI2VuZGlmCiB9CiAKLXN0YXRpYyBIYXNoTWFw
PFByb2Nlc3NJZGVudGlmaWVyLCBXZWJQcm9jZXNzUHJveHkqPiYgYWxsUHJvY2Vzc2VzKCkKK0hh
c2hNYXA8UHJvY2Vzc0lkZW50aWZpZXIsIFdlYlByb2Nlc3NQcm94eSo+JiBXZWJQcm9jZXNzUHJv
eHk6OmFsbFByb2Nlc3NlcygpCiB7CiAgICAgQVNTRVJUKGlzTWFpblRocmVhZE9yQ2hlY2tEaXNh
YmxlZCgpKTsKICAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8SGFzaE1hcDxQcm9jZXNzSWRlbnRp
ZmllciwgV2ViUHJvY2Vzc1Byb3h5Kj4+IG1hcDsKQEAgLTIxMCw4ICsyMTAsMTYgQEAgV2ViUHJv
Y2Vzc1Byb3h5OjpXZWJQcm9jZXNzUHJveHkoV2ViUHJvY2Vzc1Bvb2wmIHByb2Nlc3NQb29sLCBX
ZWJzaXRlRGF0YVN0b3JlKgogICAgIEFTU0VSVF9VTlVTRUQocmVzdWx0LCByZXN1bHQuaXNOZXdF
bnRyeSk7CiAKICAgICBXZWJQYXN0ZWJvYXJkUHJveHk6OnNpbmdsZXRvbigpLmFkZFdlYlByb2Nl
c3NQcm94eSgqdGhpcyk7CisKKyAgICBwbGF0Zm9ybUluaXRpYWxpemUoKTsKIH0KIAorI2lmICFQ
TEFURk9STShJT1NfRkFNSUxZKQordm9pZCBXZWJQcm9jZXNzUHJveHk6OnBsYXRmb3JtSW5pdGlh
bGl6ZSgpCit7Cit9CisjZW5kaWYKKwogV2ViUHJvY2Vzc1Byb3h5Ojp+V2ViUHJvY2Vzc1Byb3h5
KCkKIHsKICAgICBSRUxFQVNFX0FTU0VSVChpc01haW5UaHJlYWRPckNoZWNrRGlzYWJsZWQoKSk7
CkBAIC0yNDAsOCArMjQ4LDE2IEBAIFdlYlByb2Nlc3NQcm94eTo6fldlYlByb2Nlc3NQcm94eSgp
CiAjaWYgUExBVEZPUk0oTUFDKQogICAgIEhpZ2hQZXJmb3JtYW5jZUdQVU1hbmFnZXI6OnNpbmds
ZXRvbigpLnJlbW92ZVByb2Nlc3NSZXF1aXJpbmdIaWdoUGVyZm9ybWFuY2UodGhpcyk7CiAjZW5k
aWYKKworICAgIHBsYXRmb3JtRGVzdHJveSgpOwogfQogCisjaWYgIVBMQVRGT1JNKElPU19GQU1J
TFkpCit2b2lkIFdlYlByb2Nlc3NQcm94eTo6cGxhdGZvcm1EZXN0cm95KCkKK3sKK30KKyNlbmRp
ZgorCiB2b2lkIFdlYlByb2Nlc3NQcm94eTo6c2V0SXNJblByb2Nlc3NDYWNoZShib29sIHZhbHVl
KQogewogICAgIGlmICh2YWx1ZSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2ViUHJvY2Vzc1Byb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNz
UHJveHkuaAppbmRleCBlMGU4ZGMwYWM3MDguLjQ0MzlmMjA3MzJkZCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmgKKysrIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmgKQEAgLTIxMSw2ICsyMTEsMTAgQEAgcHVibGlj
OgogCiAgICAgc3RhdGljIGJvb2wgZnVsbEtleWJvYXJkQWNjZXNzRW5hYmxlZCgpOwogCisjaWYg
SEFWRShVSUtJVF9XSVRIX01PVVNFX1NVUFBPUlQpICYmIFBMQVRGT1JNKElPUykKKyAgICBzdGF0
aWMgdm9pZCBub3RpZnlIYXNNb3VzZURldmljZUNoYW5nZWQoKTsKKyNlbmRpZgorCiAgICAgdm9p
ZCBmZXRjaFdlYnNpdGVEYXRhKFBBTDo6U2Vzc2lvbklELCBPcHRpb25TZXQ8V2Vic2l0ZURhdGFU
eXBlPiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJzaXRlRGF0YSk+JiYpOwogICAgIHZvaWQg
ZGVsZXRlV2Vic2l0ZURhdGEoUEFMOjpTZXNzaW9uSUQsIE9wdGlvblNldDxXZWJzaXRlRGF0YVR5
cGU+LCBXYWxsVGltZSBtb2RpZmllZFNpbmNlLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYp
OwogICAgIHZvaWQgZGVsZXRlV2Vic2l0ZURhdGFGb3JPcmlnaW5zKFBBTDo6U2Vzc2lvbklELCBP
cHRpb25TZXQ8V2Vic2l0ZURhdGFUeXBlPiwgY29uc3QgVmVjdG9yPFdlYkNvcmU6OlNlY3VyaXR5
T3JpZ2luRGF0YT4mLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwpAQCAtNDEwLDYgKzQx
NCwxMSBAQCBwcm90ZWN0ZWQ6CiAgICAgdm9pZCB2YWxpZGF0ZUZyZWV6ZXJTdGF0dXMoKTsKIAog
cHJpdmF0ZToKKyAgICBzdGF0aWMgSGFzaE1hcDxXZWJDb3JlOjpQcm9jZXNzSWRlbnRpZmllciwg
V2ViUHJvY2Vzc1Byb3h5Kj4mIGFsbFByb2Nlc3NlcygpOworCisgICAgdm9pZCBwbGF0Zm9ybUlu
aXRpYWxpemUoKTsKKyAgICB2b2lkIHBsYXRmb3JtRGVzdHJveSgpOworCiAgICAgLy8gSVBDIG1l
c3NhZ2UgaGFuZGxlcnMuCiAgICAgdm9pZCB1cGRhdGVCYWNrRm9yd2FyZEl0ZW0oY29uc3QgQmFj
a0ZvcndhcmRMaXN0SXRlbVN0YXRlJik7CiAgICAgdm9pZCBkaWREZXN0cm95RnJhbWUoV2ViQ29y
ZTo6RnJhbWVJZGVudGlmaWVyKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L2lvcy9XS01vdXNlRGV2aWNlT2JzZXJ2ZXIuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lv
cy9XS01vdXNlRGV2aWNlT2JzZXJ2ZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAuLjEwNzA0MTY0MGIyZAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL2lvcy9XS01vdXNlRGV2aWNlT2JzZXJ2ZXIuaApAQCAtMCwwICsxLDQ3IEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworI2lmIEhBVkUoVUlLSVRfV0lUSF9NT1VTRV9TVVBQT1JUKSAmJiBQTEFURk9S
TShJT1MpCisKKyNpbXBvcnQgIkJhY2tCb2FyZFNlcnZpY2VzU1BJLmgiCisKK25hbWVzcGFjZSBX
ZWJLaXQgeworY2xhc3MgV2ViUHJvY2Vzc1Byb3h5OworfQorCitAaW50ZXJmYWNlIFdLTW91c2VE
ZXZpY2VPYnNlcnZlciA6IE5TT2JqZWN0PEJLU01vdXNlUG9pbnRlckRldmljZU9ic2VydmVyPgor
CisrIChXS01vdXNlRGV2aWNlT2JzZXJ2ZXIgKilzaGFyZWRJbnN0YW5jZTsKKworLSAodm9pZClz
dGFydDsKKy0gKHZvaWQpc3RvcDsKKworQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBC
T09MIGhhc01vdXNlRGV2aWNlOworCistICh2b2lkKV9zZXRIYXNNb3VzZURldmljZUZvclRlc3Rp
bmc6KEJPT0wpaGFzTW91c2VEZXZpY2U7CisKK0BlbmQKKworI2VuZGlmIC8vIEhBVkUoVUlLSVRf
V0lUSF9NT1VTRV9TVVBQT1JUKSAmJiBQTEFURk9STShJT1MpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tNb3VzZURldmljZU9ic2VydmVyLm1tIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvaW9zL1dLTW91c2VEZXZpY2VPYnNlcnZlci5tbQpuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjQ4OTFiZDVjODViMQotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS01vdXNlRGV2aWNlT2JzZXJ2ZXIubW0K
QEAgLTAsMCArMSw5NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbXBvcnQgImNvbmZpZy5oIgorI2ltcG9y
dCAiV0tNb3VzZURldmljZU9ic2VydmVyLmgiCisKKyNpZiBIQVZFKFVJS0lUX1dJVEhfTU9VU0Vf
U1VQUE9SVCkgJiYgUExBVEZPUk0oSU9TKQorCisjaW1wb3J0ICJXZWJQcm9jZXNzUHJveHkuaCIK
KyNpbXBvcnQgPHd0Zi9SZXRhaW5QdHIuaD4KKworQGltcGxlbWVudGF0aW9uIFdLTW91c2VEZXZp
Y2VPYnNlcnZlciB7CisgICAgQk9PTCBfaGFzTW91c2VEZXZpY2U7CisgICAgUmV0YWluUHRyPGlk
PEJTSW52YWxpZGF0YWJsZT4+IF90b2tlbjsKK30KKworKyAoV0tNb3VzZURldmljZU9ic2VydmVy
ICopc2hhcmVkSW5zdGFuY2UKK3sKKyAgICBzdGF0aWMgV0tNb3VzZURldmljZU9ic2VydmVyICpp
bnN0YW5jZTsKKyAgICBpZiAoIWluc3RhbmNlKQorICAgICAgICBpbnN0YW5jZSA9IFtbV0tNb3Vz
ZURldmljZU9ic2VydmVyIGFsbG9jXSBpbml0XTsKKyAgICByZXR1cm4gaW5zdGFuY2U7Cit9CisK
Ky0gKHZvaWQpZGVhbGxvYworeworICAgIFtzZWxmIHN0b3BdOworCisgICAgW3N1cGVyIGRlYWxs
b2NdOworfQorCisjcHJhZ21hIG1hcmsgLSBCS1NNb3VzZVBvaW50ZXJEZXZpY2VPYnNlcnZlciBz
dGF0ZQorCistICh2b2lkKXN0YXJ0Cit7CisgICAgaWYgKF90b2tlbikKKyAgICAgICAgcmV0dXJu
OworCisgICAgX3Rva2VuID0gW1tCS1NNb3VzZVBvaW50ZXJTZXJ2aWNlIHNoYXJlZEluc3RhbmNl
XSBhZGRQb2ludGVyRGV2aWNlT2JzZXJ2ZXI6c2VsZl07Cit9CisKKy0gKHZvaWQpc3RvcAorewor
ICAgIGlmICghX3Rva2VuKQorICAgICAgICByZXR1cm47CisKKyAgICBbX3Rva2VuIGludmFsaWRh
dGVdOworICAgIF90b2tlbiA9IG5pbDsKK30KKworI3ByYWdtYSBtYXJrIC0gQktTTW91c2VQb2lu
dGVyRGV2aWNlT2JzZXJ2ZXIgaGFuZGxlcnMKKworLSAodm9pZCltb3VzZVBvaW50ZXJEZXZpY2Vz
RGlkQ2hhbmdlOihOU1NldDxCS1NNb3VzZVBvaW50ZXJEZXZpY2UgKj4gKiltb3VzZVBvaW50ZXJE
ZXZpY2VzCit7CisgICAgQk9PTCBoYXNNb3VzZURldmljZSA9IG1vdXNlUG9pbnRlckRldmljZXMu
Y291bnQgPiAwOworICAgIGlmIChoYXNNb3VzZURldmljZSA9PSBfaGFzTW91c2VEZXZpY2UpCisg
ICAgICAgIHJldHVybjsKKworICAgIF9oYXNNb3VzZURldmljZSA9IGhhc01vdXNlRGV2aWNlOwor
CisgICAgV2ViS2l0OjpXZWJQcm9jZXNzUHJveHk6Om5vdGlmeUhhc01vdXNlRGV2aWNlQ2hhbmdl
ZCgpOworfQorCisjcHJhZ21hIG1hcmsgLSBUZXN0aW5nCisKKy0gKHZvaWQpX3NldEhhc01vdXNl
RGV2aWNlRm9yVGVzdGluZzooQk9PTCloYXNNb3VzZURldmljZQoreworICAgIF9oYXNNb3VzZURl
dmljZSA9IGhhc01vdXNlRGV2aWNlOworCisgICAgV2ViS2l0OjpXZWJQcm9jZXNzUHJveHk6Om5v
dGlmeUhhc01vdXNlRGV2aWNlQ2hhbmdlZCgpOworfQorCitAZW5kCisKKyNlbmRpZiAvLyBIQVZF
KFVJS0lUX1dJVEhfTU9VU0VfU1VQUE9SVCkgJiYgUExBVEZPUk0oSU9TKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dlYlByb2Nlc3NQcm94eUlPUy5tbSBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XZWJQcm9jZXNzUHJveHlJT1MubW0KaW5kZXggZWIxNzdj
ZDdjZGY1Li5jYTRlYTIwMzYwODIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L2lvcy9XZWJQcm9jZXNzUHJveHlJT1MubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
aW9zL1dlYlByb2Nlc3NQcm94eUlPUy5tbQpAQCAtMzAsMTAgKzMwLDM4IEBACiAKICNpbXBvcnQg
IkFjY2Vzc2liaWxpdHlTdXBwb3J0U1BJLmgiCiAjaW1wb3J0ICJXS0Z1bGxLZXlib2FyZEFjY2Vz
c1dhdGNoZXIuaCIKKyNpbXBvcnQgIldLTW91c2VEZXZpY2VPYnNlcnZlci5oIgogI2ltcG9ydCAi
V2ViUHJvY2Vzc01lc3NhZ2VzLmgiCiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCit2b2lkIFdlYlBy
b2Nlc3NQcm94eTo6cGxhdGZvcm1Jbml0aWFsaXplKCkKK3sKKyNpZiBIQVZFKFVJS0lUX1dJVEhf
TU9VU0VfU1VQUE9SVCkgJiYgUExBVEZPUk0oSU9TKQorICAgIGlmIChXZWJQcm9jZXNzUHJveHk6
OmFsbFByb2Nlc3NlcygpLnNpemUoKSA9PSAxKQorICAgICAgICBbW1dLTW91c2VEZXZpY2VPYnNl
cnZlciBzaGFyZWRJbnN0YW5jZV0gc3RhcnRdOworI2VuZGlmCit9CisKK3ZvaWQgV2ViUHJvY2Vz
c1Byb3h5OjpwbGF0Zm9ybURlc3Ryb3koKQoreworI2lmIEhBVkUoVUlLSVRfV0lUSF9NT1VTRV9T
VVBQT1JUKSAmJiBQTEFURk9STShJT1MpCisgICAgaWYgKFdlYlByb2Nlc3NQcm94eTo6YWxsUHJv
Y2Vzc2VzKCkuaXNFbXB0eSgpKQorICAgICAgICBbW1dLTW91c2VEZXZpY2VPYnNlcnZlciBzaGFy
ZWRJbnN0YW5jZV0gc3RvcF07CisjZW5kaWYKK30KKworI2lmIEhBVkUoVUlLSVRfV0lUSF9NT1VT
RV9TVVBQT1JUKSAmJiBQTEFURk9STShJT1MpCisKK3ZvaWQgV2ViUHJvY2Vzc1Byb3h5Ojpub3Rp
ZnlIYXNNb3VzZURldmljZUNoYW5nZWQoKQoreworICAgIGJvb2wgaGFzTW91c2VEZXZpY2UgPSBb
W1dLTW91c2VEZXZpY2VPYnNlcnZlciBzaGFyZWRJbnN0YW5jZV0gaGFzTW91c2VEZXZpY2VdOwor
ICAgIGZvciAoYXV0byogd2ViUHJvY2Vzc1Byb3h5IDogV2ViUHJvY2Vzc1Byb3h5OjphbGxQcm9j
ZXNzZXMoKS52YWx1ZXMoKSkKKyAgICAgICAgd2ViUHJvY2Vzc1Byb3h5LT5zZW5kKE1lc3NhZ2Vz
OjpXZWJQcm9jZXNzOjpTZXRIYXNNb3VzZURldmljZShoYXNNb3VzZURldmljZSksIDApOworfQor
CisjZW5kaWYgLy8gSEFWRShVSUtJVF9XSVRIX01PVVNFX1NVUFBPUlQpCisKIGJvb2wgV2ViUHJv
Y2Vzc1Byb3h5OjpmdWxsS2V5Ym9hcmRBY2Nlc3NFbmFibGVkKCkKIHsKICNpZiBFTkFCTEUoRlVM
TF9LRVlCT0FSRF9BQ0NFU1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagppbmRleCA1NzIxMzU2MmFiYzEuLjI4NGRlNjRkMmM5YiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9T
b3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xMzc5LDYg
KzEzNzksOCBAQAogCQk5M0JERUIwMTE3MUREN0FGMDBCRkVFMUIgLyogV0tQYWdlTG9hZFR5cGVz
UHJpdmF0ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
OTNCREVCMDAxNzFERDdBRjAwQkZFRTFCIC8qIFdLUGFnZUxvYWRUeXBlc1ByaXZhdGUuaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk5M0U2QTRFRTFC
QzVERDM5MDBGOEEwRTcgLyogX1dLSGl0VGVzdFJlc3VsdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNFNkE0RUQxQkM1REQzOTAwRjhBMEU3IC8qIF9X
S0hpdFRlc3RSZXN1bHQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OwogCQk5M0Y1NDlCNDFFMzE3NEI3MDAwRTcyMzkgLyogV0tTbmFwc2hvdENvbmZpZ3Vy
YXRpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkz
RjU0OUIzMUUzMTc0QjcwMDBFNzIzOSAvKiBXS1NuYXBzaG90Q29uZmlndXJhdGlvbi5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFB1YmxpYywgKTsgfTsgfTsKKwkJOTUwRjI4ODAyNTI0
MTRFQTAwQjc0RjFDIC8qIFdLTW91c2VEZXZpY2VPYnNlcnZlci5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTUwRjI4N0UyNTI0MTRFOTAwQjc0RjFDIC8q
IFdLTW91c2VEZXZpY2VPYnNlcnZlci5oICovOyB9OworCQk5NUM5NDM5MTI1MjNDMEQwMDA1NEYz
RDUgLyogQmFzZUJvYXJkU1BJLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA5NUM5NDM5MDI1MjNDMEQwMDA1NEYzRDUgLyogQmFzZUJvYXJkU1BJLmggKi87
IH07CiAJCTk5MDM2QUUyMjNBOTQ5Q0YwMDAwQjA2QSAvKiBfV0tJbnNwZWN0b3JEZWJ1Z2dhYmxl
SW5mb0ludGVybmFsLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA5OTAzNkFFMTIzQTk0OUNFMDAwMEIwNkEgLyogX1dLSW5zcGVjdG9yRGVidWdnYWJsZUlu
Zm9JbnRlcm5hbC5oICovOyB9OwogCQk5OTAzNkFFNTIzQTk1ODc1MDAwMEIwNkEgLyogQVBJRGVi
dWdnYWJsZUluZm8uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDk5MDM2QUUzMjNBOTU4NzQwMDAwQjA2QSAvKiBBUElEZWJ1Z2dhYmxlSW5mby5oICovOyB9
OwogCQk5OTAzNkFFOTIzQTk3MDg3MDAwMEIwNkEgLyogRGVidWdnYWJsZUluZm9EYXRhLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5OTAzNkFFNzIzQTk3
MDg3MDAwMEIwNkEgLyogRGVidWdnYWJsZUluZm9EYXRhLmggKi87IH07CkBAIC00NDI2LDYgKzQ0
MjgsOSBAQAogCQk5M0U2QTRFRDFCQzVERDM5MDBGOEEwRTcgLyogX1dLSGl0VGVzdFJlc3VsdC5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBfV0tIaXRUZXN0UmVzdWx0Lmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzRjU0OUIzMUUzMTc0QjcwMDBFNzIzOSAvKiBX
S1NuYXBzaG90Q29uZmlndXJhdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBXS1NuYXBzaG90Q29uZmlndXJhdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk5M0Y1NDlCNTFFMzE3NERBMDAwRTcyMzkgLyogV0tTbmFwc2hvdENvbmZpZ3VyYXRpb24ubW0g
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBXS1NuYXBzaG90Q29uZmln
dXJhdGlvbi5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTUwRjI4N0UyNTI0MTRF
OTAwQjc0RjFDIC8qIFdLTW91c2VEZXZpY2VPYnNlcnZlci5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IG5hbWUgPSBXS01vdXNlRGV2aWNlT2JzZXJ2ZXIuaDsgcGF0aCA9IGlvcy9XS01vdXNl
RGV2aWNlT2JzZXJ2ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTUwRjI4N0Yy
NTI0MTRFQTAwQjc0RjFDIC8qIFdLTW91c2VEZXZpY2VPYnNlcnZlci5tbSAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLm9iamNwcDsgbmFtZSA9IFdLTW91c2VEZXZpY2VPYnNlcnZlci5tbTsgcGF0
aCA9IGlvcy9XS01vdXNlRGV2aWNlT2JzZXJ2ZXIubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCTk1Qzk0MzkwMjUyM0MwRDAwMDU0RjNENSAvKiBCYXNlQm9hcmRTUEkuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQmFzZUJvYXJkU1BJLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTk5MDM2QUUxMjNBOTQ5Q0UwMDAwQjA2QSAvKiBfV0tJbnNwZWN0b3JE
ZWJ1Z2dhYmxlSW5mb0ludGVybmFsLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IF9XS0luc3BlY3RvckRlYnVnZ2FibGVJbmZvSW50ZXJuYWwuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJOTkwMzZBRTMyM0E5NTg3NDAwMDBCMDZBIC8qIEFQSURlYnVnZ2FibGVJbmZv
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEFQSURlYnVnZ2FibGVJbmZvLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTk5MDM2QUU0MjNBOTU4NzQwMDAwQjA2QSAv
KiBBUElEZWJ1Z2dhYmxlSW5mby5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBBUElEZWJ1Z2dhYmxlSW5mby5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBA
IC03MDIzLDYgKzcwMjgsOCBAQAogCQkJCTkzM0RGODJGMUIzQkMwQjQwMEFFQTlFMyAvKiBXS0lt
YWdlUHJldmlld1ZpZXdDb250cm9sbGVyLm1tICovLAogCQkJCTJERDVFMTI3MjEwQURDN0EwMERC
NjAxMiAvKiBXS0tleWJvYXJkU2Nyb2xsaW5nQW5pbWF0b3IuaCAqLywKIAkJCQkyREQ1RTEyNjIx
MEFEQzdBMDBEQjYwMTIgLyogV0tLZXlib2FyZFNjcm9sbGluZ0FuaW1hdG9yLm1tICovLAorCQkJ
CTk1MEYyODdFMjUyNDE0RTkwMEI3NEYxQyAvKiBXS01vdXNlRGV2aWNlT2JzZXJ2ZXIuaCAqLywK
KwkJCQk5NTBGMjg3RjI1MjQxNEVBMDBCNzRGMUMgLyogV0tNb3VzZURldmljZU9ic2VydmVyLm1t
ICovLAogCQkJCTJEQjk0Mjk3MjM0RTdBN0YwMEU3NzZBRCAvKiBXS01vdXNlR2VzdHVyZVJlY29n
bml6ZXIuaCAqLywKIAkJCQkyREI5NDI5ODIzNEU3QTdGMDBFNzc2QUQgLyogV0tNb3VzZUdlc3R1
cmVSZWNvZ25pemVyLm1tICovLAogCQkJCUExNUVFREU0MUUzMDFDRUUwMDAwNjlCMCAvKiBXS1Bh
c3N3b3JkVmlldy5oICovLApAQCAtMTAzODMsNiArMTAzOTAsNyBAQAogCQkJY2hpbGRyZW4gPSAo
CiAJCQkJQ0UxQTBCQ0MxQTQ4RTZDNjAwNTRFRjc0IC8qIEFzc2VydGlvblNlcnZpY2VzU1BJLmgg
Ki8sCiAJCQkJQ0RBMDQxRjMxQUNFMjEwNTAwNEExM0VDIC8qIEJhY2tCb2FyZFNlcnZpY2VzU1BJ
LmggKi8sCisJCQkJOTVDOTQzOTAyNTIzQzBEMDAwNTRGM0Q1IC8qIEJhc2VCb2FyZFNQSS5oICov
LAogCQkJCTJENEFGMDg4MjA0NEMzQzQwMDZDODgxNyAvKiBGcm9udEJvYXJkU2VydmljZXNTUEku
aCAqLywKIAkJCQlBMTNCM0RBMTIwN0YzOURFMDA5MEM1OEQgLyogTW9iaWxlV2lGaVNQSS5oICov
LAogCQkJCTMxNzhBRjk3MjBFMkE3RjgwMDc0REU5NCAvKiBQREZLaXRTUEkuaCAqLywKQEAgLTEw
NzQ5LDYgKzEwNzU3LDcgQEAKIAkJCQkyOTBGNDI3MjE3MkEwQzc0MDA5MzlGRjAgLyogQXV4aWxp
YXJ5UHJvY2Vzc1N1cHBsZW1lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUNEQTA0MUY0MUFDRTIx
MDUwMDRBMTNFQyAvKiBCYWNrQm9hcmRTZXJ2aWNlc1NQSS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
NDZBMkI2MDkxRTU2NzZBNjAwQzNERURBIC8qIEJhY2tncm91bmRQcm9jZXNzUmVzcG9uc2l2ZW5l
c3NUaW1lci5oIGluIEhlYWRlcnMgKi8sCisJCQkJOTVDOTQzOTEyNTIzQzBEMDAwNTRGM0Q1IC8q
IEJhc2VCb2FyZFNQSS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTE2NEEyRjIxOTFBRjE0RTAwMTA3
MzdEIC8qIEJsb2JEYXRhRmlsZVJlZmVyZW5jZVdpdGhTYW5kYm94RXh0ZW5zaW9uLmggaW4gSGVh
ZGVycyAqLywKIAkJCQlFMTcwODc2QzE2RDZDQTY5MDBGOTkyMjYgLyogQmxvYlJlZ2lzdHJ5UHJv
eHkuaCBpbiBIZWFkZXJzICovLAogCQkJCTRGNjAxNDMyMTU1QzVBQTIwMDFGQkRFMCAvKiBCbG9j
a2luZ1Jlc3BvbnNlTWFwLmggaW4gSGVhZGVycyAqLywKQEAgLTExNjA2LDYgKzExNjE1LDcgQEAK
IAkJCQk1Q0FCREM4NjIyQzQwRkRFMDAxRURFOEUgLyogV0tNZXNzYWdlTGlzdGVuZXIuaCBpbiBI
ZWFkZXJzICovLAogCQkJCUMxMUUxNjk0MjEyQjg3QzUwMDk4NUZGNiAvKiBXS01vY2tEaXNwbGF5
LmggaW4gSGVhZGVycyAqLywKIAkJCQk0MTFBOEREQjIwREREMUFDMDA2MEQzNEYgLyogV0tNb2Nr
TWVkaWFEZXZpY2UuaCBpbiBIZWFkZXJzICovLAorCQkJCTk1MEYyODgwMjUyNDE0RUEwMEI3NEYx
QyAvKiBXS01vdXNlRGV2aWNlT2JzZXJ2ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTJEQjk0Mjk5
MjM0RTdBN0YwMEU3NzZBRCAvKiBXS01vdXNlR2VzdHVyZVJlY29nbml6ZXIuaCBpbiBIZWFkZXJz
ICovLAogCQkJCUJDNDA3NUZFMTI0RkYwMjcwMDY4RjIwQSAvKiBXS011dGFibGVBcnJheS5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJQkM0MDc2MDAxMjRGRjAyNzAwNjhGMjBBIC8qIFdLTXV0YWJsZURp
Y3Rpb25hcnkuaCBpbiBIZWFkZXJzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcAppbmRleCBiNTJj
OTI0MjNhMDguLjZjNmQyYWQwNDA4YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAKQEAgLTUwNiw2
ICs1MDYsMTYgQEAgS2V5Ym9hcmRVSU1vZGUgV2ViQ2hyb21lQ2xpZW50OjprZXlib2FyZFVJTW9k
ZSgpCiAgICAgcmV0dXJuIG1fcGFnZS5rZXlib2FyZFVJTW9kZSgpOwogfQogCitib29sIFdlYkNo
cm9tZUNsaWVudDo6aG92ZXJTdXBwb3J0ZWRCeUFueUF2YWlsYWJsZVBvaW50aW5nRGV2aWNlKCkg
Y29uc3QKK3sKKyAgICByZXR1cm4gbV9wYWdlLmhvdmVyU3VwcG9ydGVkQnlBbnlBdmFpbGFibGVQ
b2ludGluZ0RldmljZSgpOworfQorCitPcHRpb25TZXQ8UG9pbnRlckNoYXJhY3RlcmlzdGljcz4g
V2ViQ2hyb21lQ2xpZW50Ojpwb2ludGVyQ2hhcmFjdGVyaXN0aWNzT2ZBbGxBdmFpbGFibGVQb2lu
dGluZ0RldmljZXMoKSBjb25zdAoreworICAgIHJldHVybiBtX3BhZ2UucG9pbnRlckNoYXJhY3Rl
cmlzdGljc09mQWxsQXZhaWxhYmxlUG9pbnRpbmdEZXZpY2VzKCk7Cit9CisKICNpZiBFTkFCTEUo
UE9JTlRFUl9MT0NLKQogCiBib29sIFdlYkNocm9tZUNsaWVudDo6cmVxdWVzdFBvaW50ZXJMb2Nr
KCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9X
ZWJDaHJvbWVDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9y
dC9XZWJDaHJvbWVDbGllbnQuaAppbmRleCA5OTYzNDkxYjQxMTAuLjM1YmE1YTc1ZWEzMyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9t
ZUNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9X
ZWJDaHJvbWVDbGllbnQuaApAQCAtMTEyLDYgKzExMiw5IEBAIHByaXZhdGU6CiAKICAgICBXZWJD
b3JlOjpLZXlib2FyZFVJTW9kZSBrZXlib2FyZFVJTW9kZSgpIGZpbmFsOwogCisgICAgYm9vbCBo
b3ZlclN1cHBvcnRlZEJ5QW55QXZhaWxhYmxlUG9pbnRpbmdEZXZpY2UoKSBjb25zdCBmaW5hbDsK
KyAgICBPcHRpb25TZXQ8V2ViQ29yZTo6UG9pbnRlckNoYXJhY3RlcmlzdGljcz4gcG9pbnRlckNo
YXJhY3RlcmlzdGljc09mQWxsQXZhaWxhYmxlUG9pbnRpbmdEZXZpY2VzKCkgY29uc3QgZmluYWw7
CisKICAgICAvLyBIb3N0V2luZG93IG1lbWJlciBmdW5jdGlvbiBmaW5hbHMuCiAgICAgdm9pZCBp
bnZhbGlkYXRlUm9vdFZpZXcoY29uc3QgV2ViQ29yZTo6SW50UmVjdCYpIGZpbmFsOwogICAgIHZv
aWQgaW52YWxpZGF0ZUNvbnRlbnRzQW5kUm9vdFZpZXcoY29uc3QgV2ViQ29yZTo6SW50UmVjdCYp
IGZpbmFsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2Vi
UGFnZS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCmluZGV4
IGQ1M2QzMDQzZjVhNy4uZDA4YWY1YTU3MDI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYlBhZ2UvV2ViUGFnZS5oCkBAIC03NSw2ICs3NSw3IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9Q
YWdlSWRlbnRpZmllci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUGFnZU92ZXJsYXkuaD4KICNpbmNs
dWRlIDxXZWJDb3JlL1BsdWdpbkRhdGEuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1BvaW50ZXJDaGFy
YWN0ZXJpc3RpY3MuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1BvaW50ZXJJRC5oPgogI2luY2x1ZGUg
PFdlYkNvcmUvUmVuZGVyaW5nTW9kZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU2VjdXJpdHlQb2xp
Y3lWaW9sYXRpb25FdmVudC5oPgpAQCAtNDE1LDYgKzQxNiw5IEBAIHB1YmxpYzoKICAgICBTdHJp
bmcgcGxhdGZvcm1Vc2VyQWdlbnQoY29uc3QgVVJMJikgY29uc3Q7CiAgICAgV2ViQ29yZTo6S2V5
Ym9hcmRVSU1vZGUga2V5Ym9hcmRVSU1vZGUoKTsKIAorICAgIGJvb2wgaG92ZXJTdXBwb3J0ZWRC
eUFueUF2YWlsYWJsZVBvaW50aW5nRGV2aWNlKCkgY29uc3Q7CisgICAgT3B0aW9uU2V0PFdlYkNv
cmU6OlBvaW50ZXJDaGFyYWN0ZXJpc3RpY3M+IHBvaW50ZXJDaGFyYWN0ZXJpc3RpY3NPZkFsbEF2
YWlsYWJsZVBvaW50aW5nRGV2aWNlcygpIGNvbnN0OworCiAgICAgdm9pZCBkaWRJbnNlcnRNZW51
RWxlbWVudChXZWJDb3JlOjpIVE1MTWVudUVsZW1lbnQmKTsKICAgICB2b2lkIGRpZFJlbW92ZU1l
bnVFbGVtZW50KFdlYkNvcmU6OkhUTUxNZW51RWxlbWVudCYpOwogICAgIHZvaWQgZGlkSW5zZXJ0
TWVudUl0ZW1FbGVtZW50KFdlYkNvcmU6OkhUTUxNZW51SXRlbUVsZW1lbnQmKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL2d0ay9XZWJQYWdlR3RrLmNwcCBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL2d0ay9XZWJQYWdlR3RrLmNwcAppbmRl
eCBkYTQ3NTUwMmEzMGEuLmQ5YWY5OTRjZjA5MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYlBhZ2UvZ3RrL1dlYlBhZ2VHdGsuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJQYWdlL2d0ay9XZWJQYWdlR3RrLmNwcApAQCAtNDMsNiArNDMsOCBAQAog
I2luY2x1ZGUgPFdlYkNvcmUvTm90SW1wbGVtZW50ZWQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Bh
Z2UuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1BsYXRmb3JtS2V5Ym9hcmRFdmVudC5oPgorI2luY2x1
ZGUgPFdlYkNvcmUvUGxhdGZvcm1TY3JlZW4uaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1BvaW50ZXJD
aGFyYWN0ZXJpc3RpY3MuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1JlbmRlclRoZW1lLmg+CiAjaW5j
bHVkZSA8V2ViQ29yZS9TZXR0aW5ncy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU2hhcmVkQnVmZmVy
Lmg+CkBAIC0xMjksNiArMTMxLDI0IEBAIFN0cmluZyBXZWJQYWdlOjpwbGF0Zm9ybVVzZXJBZ2Vu
dChjb25zdCBVUkwmIHVybCkgY29uc3QKICAgICByZXR1cm4gV2ViQ29yZTo6c3RhbmRhcmRVc2Vy
QWdlbnRGb3JVUkwodXJsKTsKIH0KIAorYm9vbCBXZWJQYWdlOjpob3ZlclN1cHBvcnRlZEJ5QW55
QXZhaWxhYmxlUG9pbnRpbmdEZXZpY2UoKSBjb25zdAoreworI2lmIEVOQUJMRShUT1VDSF9FVkVO
VFMpCisgICAgcmV0dXJuICFzY3JlZW5IYXNUb3VjaERldmljZSgpOworI2Vsc2UKKyAgICByZXR1
cm4gdHJ1ZTsKKyNlbmRpZgorfQorCitPcHRpb25TZXQ8UG9pbnRlckNoYXJhY3RlcmlzdGljcz4g
V2ViUGFnZTo6cG9pbnRlckNoYXJhY3RlcmlzdGljc09mQWxsQXZhaWxhYmxlUG9pbnRpbmdEZXZp
Y2VzKCkgY29uc3QKK3sKKyNpZiBFTkFCTEUoVE9VQ0hfRVZFTlRTKQorICAgIGlmIChzY3JlZW5I
YXNUb3VjaERldmljZSgpKQorICAgICAgICByZXR1cm4gUG9pbnRlckNoYXJhY3RlcmlzdGljczo6
Q29hcnNlOworI2VuZGlmCisgICAgcmV0dXJuIFBvaW50ZXJDaGFyYWN0ZXJpc3RpY3M6OkZpbmU7
Cit9CisKIHZvaWQgV2ViUGFnZTo6Z2V0Q2VudGVyRm9yWm9vbUdlc3R1cmUoY29uc3QgSW50UG9p
bnQmIGNlbnRlckluVmlld0Nvb3JkaW5hdGVzLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYkNv
cmU6OkludFBvaW50JiYpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewogICAgIEludFBvaW50IHJl
c3VsdCA9IG1haW5GcmFtZVZpZXcoKS0+cm9vdFZpZXdUb0NvbnRlbnRzKGNlbnRlckluVmlld0Nv
b3JkaW5hdGVzKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdl
L2lvcy9XZWJQYWdlSU9TLm1tIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9z
L1dlYlBhZ2VJT1MubW0KaW5kZXggNTY2NzQ5NjQ5MDczLi4xYTlhOTY1NWQxMGQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tCisr
KyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tCkBA
IC0xMTYsNiArMTE2LDcgQEAKICNpbXBvcnQgPFdlYkNvcmUvUGxhdGZvcm1LZXlib2FyZEV2ZW50
Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL1BsYXRmb3JtTW91c2VFdmVudC5oPgogI2ltcG9ydCA8V2Vi
Q29yZS9Qb2ludGVyQ2FwdHVyZUNvbnRyb2xsZXIuaD4KKyNpbXBvcnQgPFdlYkNvcmUvUG9pbnRl
ckNoYXJhY3RlcmlzdGljcy5oPgogI2ltcG9ydCA8V2ViQ29yZS9RdWlya3MuaD4KICNpbXBvcnQg
PFdlYkNvcmUvUmFuZ2UuaD4KICNpbXBvcnQgPFdlYkNvcmUvUmVuZGVyQmxvY2suaD4KQEAgLTM5
ODgsNiArMzk4OSwzMCBAQCBTdHJpbmcgV2ViUGFnZTo6cGxhdGZvcm1Vc2VyQWdlbnQoY29uc3Qg
VVJMJikgY29uc3QKICAgICByZXR1cm4gU3RyaW5nKCk7CiB9CiAKK3N0YXRpYyBib29sIGhhc01v
dXNlRGV2aWNlKCkKK3sKKyNpZiBIQVZFKFVJS0lUX1dJVEhfTU9VU0VfU1VQUE9SVCkgJiYgUExB
VEZPUk0oSU9TKQorICAgIHJldHVybiBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5oYXNNb3VzZURl
dmljZSgpOworI2VsaWYgSEFWRShVSUtJVF9XSVRIX01PVVNFX1NVUFBPUlQpICYmIFBMQVRGT1JN
KE1BQ0NBVEFMWVNUKQorICAgIHJldHVybiB0cnVlOworI2Vsc2UKKyAgICByZXR1cm4gZmFsc2U7
CisjZW5kaWYKK30KKworYm9vbCBXZWJQYWdlOjpob3ZlclN1cHBvcnRlZEJ5QW55QXZhaWxhYmxl
UG9pbnRpbmdEZXZpY2UoKSBjb25zdAoreworICAgIHJldHVybiBoYXNNb3VzZURldmljZSgpOwor
fQorCitPcHRpb25TZXQ8UG9pbnRlckNoYXJhY3RlcmlzdGljcz4gV2ViUGFnZTo6cG9pbnRlckNo
YXJhY3RlcmlzdGljc09mQWxsQXZhaWxhYmxlUG9pbnRpbmdEZXZpY2VzKCkgY29uc3QKK3sKKyAg
ICBPcHRpb25TZXQ8UG9pbnRlckNoYXJhY3RlcmlzdGljcz4gcmVzdWx0KFBvaW50ZXJDaGFyYWN0
ZXJpc3RpY3M6OkNvYXJzZSk7CisgICAgaWYgKGhhc01vdXNlRGV2aWNlKCkpCisgICAgICAgIHJl
c3VsdC5hZGQoUG9pbnRlckNoYXJhY3RlcmlzdGljczo6RmluZSk7CisgICAgcmV0dXJuIHJlc3Vs
dDsKK30KKwogdm9pZCBXZWJQYWdlOjpoYXJkd2FyZUtleWJvYXJkQXZhaWxhYmlsaXR5Q2hhbmdl
ZChib29sIGtleWJvYXJkSXNBdHRhY2hlZCkKIHsKICAgICBtX2tleWJvYXJkSXNBdHRhY2hlZCA9
IGtleWJvYXJkSXNBdHRhY2hlZDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJQYWdlL21hYy9XZWJQYWdlTWFjLm1tIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YlBhZ2UvbWFjL1dlYlBhZ2VNYWMubW0KaW5kZXggNWFlYjRiMTUzN2QzLi5iODJmODBlMGUyNzAg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9XZWJQYWdl
TWFjLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9XZWJQYWdl
TWFjLm1tCkBAIC04Myw2ICs4Myw3IEBACiAjaW1wb3J0IDxXZWJDb3JlL1BhZ2VPdmVybGF5Q29u
dHJvbGxlci5oPgogI2ltcG9ydCA8V2ViQ29yZS9QbGF0Zm9ybUtleWJvYXJkRXZlbnQuaD4KICNp
bXBvcnQgPFdlYkNvcmUvUGx1Z2luRG9jdW1lbnQuaD4KKyNpbXBvcnQgPFdlYkNvcmUvUG9pbnRl
ckNoYXJhY3RlcmlzdGljcy5oPgogI2ltcG9ydCA8V2ViQ29yZS9SZW5kZXJFbGVtZW50Lmg+CiAj
aW1wb3J0IDxXZWJDb3JlL1JlbmRlck9iamVjdC5oPgogI2ltcG9ydCA8V2ViQ29yZS9SZW5kZXJT
dHlsZS5oPgpAQCAtODMwLDYgKzgzMSwxNiBAQCBTdHJpbmcgV2ViUGFnZTo6cGxhdGZvcm1Vc2Vy
QWdlbnQoY29uc3QgVVJMJikgY29uc3QKICAgICByZXR1cm4gU3RyaW5nKCk7CiB9CiAKK2Jvb2wg
V2ViUGFnZTo6aG92ZXJTdXBwb3J0ZWRCeUFueUF2YWlsYWJsZVBvaW50aW5nRGV2aWNlKCkgY29u
c3QKK3sKKyAgICByZXR1cm4gdHJ1ZTsKK30KKworT3B0aW9uU2V0PFBvaW50ZXJDaGFyYWN0ZXJp
c3RpY3M+IFdlYlBhZ2U6OnBvaW50ZXJDaGFyYWN0ZXJpc3RpY3NPZkFsbEF2YWlsYWJsZVBvaW50
aW5nRGV2aWNlcygpIGNvbnN0Cit7CisgICAgcmV0dXJuIFBvaW50ZXJDaGFyYWN0ZXJpc3RpY3M6
OkZpbmU7Cit9CisKIHZvaWQgV2ViUGFnZTo6cGVyZm9ybUltbWVkaWF0ZUFjdGlvbkhpdFRlc3RB
dExvY2F0aW9uKFdlYkNvcmU6OkZsb2F0UG9pbnQgbG9jYXRpb25JblZpZXdDb29yZGluYXRlcykK
IHsKICAgICBsYXlvdXRJZk5lZWRlZCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYlBhZ2UvcGxheXN0YXRpb24vV2ViUGFnZVBsYXlTdGF0aW9uLmNwcCBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL3BsYXlzdGF0aW9uL1dlYlBhZ2VQbGF5U3RhdGlv
bi5jcHAKaW5kZXggY2JkYTQ4YzdkNjViLi43MjZlOTIzM2M1MWIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL3BsYXlzdGF0aW9uL1dlYlBhZ2VQbGF5U3RhdGlv
bi5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvcGxheXN0YXRpb24v
V2ViUGFnZVBsYXlTdGF0aW9uLmNwcApAQCAtMjcsNiArMjcsNyBAQAogI2luY2x1ZGUgIldlYlBh
Z2UuaCIKIAogI2luY2x1ZGUgPFdlYkNvcmUvTm90SW1wbGVtZW50ZWQuaD4KKyNpbmNsdWRlIDxX
ZWJDb3JlL1BvaW50ZXJDaGFyYWN0ZXJpc3RpY3MuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1NldHRp
bmdzLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Vc2VyQWdlbnQuaD4KIApAQCAtNjUsNiArNjYsMTYg
QEAgU3RyaW5nIFdlYlBhZ2U6OnBsYXRmb3JtVXNlckFnZW50KGNvbnN0IFVSTCYgdXJsKSBjb25z
dAogICAgIHJldHVybiBXZWJDb3JlOjpzdGFuZGFyZFVzZXJBZ2VudEZvclVSTCh1cmwpOwogfQog
Citib29sIFdlYlBhZ2U6OmhvdmVyU3VwcG9ydGVkQnlBbnlBdmFpbGFibGVQb2ludGluZ0Rldmlj
ZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIHRydWU7Cit9CisKK09wdGlvblNldDxQb2ludGVyQ2hh
cmFjdGVyaXN0aWNzPiBXZWJQYWdlOjpwb2ludGVyQ2hhcmFjdGVyaXN0aWNzT2ZBbGxBdmFpbGFi
bGVQb2ludGluZ0RldmljZXMoKSBjb25zdAoreworICAgIHJldHVybiBQb2ludGVyQ2hhcmFjdGVy
aXN0aWNzOjpGaW5lOworfQorCiBib29sIFdlYlBhZ2U6OmhhbmRsZUVkaXRpbmdLZXlib2FyZEV2
ZW50KFdlYkNvcmU6OktleWJvYXJkRXZlbnQmIGV2ZW50KQogewogICAgIG5vdEltcGxlbWVudGVk
KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS93aW4vV2Vi
UGFnZVdpbi5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS93aW4vV2ViUGFn
ZVdpbi5jcHAKaW5kZXggMjg5M2VkM2YzYjhjLi5lZGFkN2Q1MDM3ZDEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL3dpbi9XZWJQYWdlV2luLmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS93aW4vV2ViUGFnZVdpbi5jcHAKQEAgLTQz
LDYgKzQzLDcgQEAKICNpbmNsdWRlIDxXZWJDb3JlL05vdEltcGxlbWVudGVkLmg+CiAjaW5jbHVk
ZSA8V2ViQ29yZS9QYWdlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9QbGF0Zm9ybUtleWJvYXJkRXZl
bnQuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1BvaW50ZXJDaGFyYWN0ZXJpc3RpY3MuaD4KICNpbmNs
dWRlIDxXZWJDb3JlL1NldHRpbmdzLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TaGFyZWRCdWZmZXIu
aD4KICNpbmNsdWRlIDxXZWJDb3JlL1VzZXJBZ2VudC5oPgpAQCAtMTE1LDYgKzExNiwxNiBAQCBT
dHJpbmcgV2ViUGFnZTo6cGxhdGZvcm1Vc2VyQWdlbnQoY29uc3QgVVJMJikgY29uc3QKICAgICBy
ZXR1cm4geyB9OwogfQogCitib29sIFdlYlBhZ2U6OmhvdmVyU3VwcG9ydGVkQnlBbnlBdmFpbGFi
bGVQb2ludGluZ0RldmljZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIHRydWU7Cit9CisKK09wdGlv
blNldDxQb2ludGVyQ2hhcmFjdGVyaXN0aWNzPiBXZWJQYWdlOjpwb2ludGVyQ2hhcmFjdGVyaXN0
aWNzT2ZBbGxBdmFpbGFibGVQb2ludGluZ0RldmljZXMoKSBjb25zdAoreworICAgIHJldHVybiBQ
b2ludGVyQ2hhcmFjdGVyaXN0aWNzOjpGaW5lOworfQorCiBzdGF0aWMgY29uc3QgdW5zaWduZWQg
Q3RybEtleSA9IDEgPDwgMDsKIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBBbHRLZXkgPSAxIDw8IDE7
CiBzdGF0aWMgY29uc3QgdW5zaWduZWQgU2hpZnRLZXkgPSAxIDw8IDI7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS93cGUvV2ViUGFnZVdQRS5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS93cGUvV2ViUGFnZVdQRS5jcHAKaW5kZXggZjlm
YzQxYTFmYjY5Li40YTU0MGEyNTA3OTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJQYWdlL3dwZS9XZWJQYWdlV1BFLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViUGFnZS93cGUvV2ViUGFnZVdQRS5jcHAKQEAgLTMwLDYgKzMwLDggQEAKICNpbmNs
dWRlICJXZWJQYWdlUHJveHkuaCIKICNpbmNsdWRlICJXZWJQYWdlUHJveHlNZXNzYWdlcy5oIgog
I2luY2x1ZGUgPFdlYkNvcmUvTm90SW1wbGVtZW50ZWQuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1Bs
YXRmb3JtU2NyZWVuLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9Qb2ludGVyQ2hhcmFjdGVyaXN0aWNz
Lmg+CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CkBAIC03
Myw0ICs3NSwyMiBAQCBTdHJpbmcgV2ViUGFnZTo6cGxhdGZvcm1Vc2VyQWdlbnQoY29uc3QgVVJM
JikgY29uc3QKICAgICByZXR1cm4gU3RyaW5nKCk7CiB9CiAKK2Jvb2wgV2ViUGFnZTo6aG92ZXJT
dXBwb3J0ZWRCeUFueUF2YWlsYWJsZVBvaW50aW5nRGV2aWNlKCkgY29uc3QKK3sKKyNpZiBFTkFC
TEUoVE9VQ0hfRVZFTlRTKQorICAgIHJldHVybiAhc2NyZWVuSGFzVG91Y2hEZXZpY2UoKTsKKyNl
bHNlCisgICAgcmV0dXJuIHRydWU7CisjZW5kaWYKK30KKworT3B0aW9uU2V0PFBvaW50ZXJDaGFy
YWN0ZXJpc3RpY3M+IFdlYlBhZ2U6OnBvaW50ZXJDaGFyYWN0ZXJpc3RpY3NPZkFsbEF2YWlsYWJs
ZVBvaW50aW5nRGV2aWNlcygpIGNvbnN0Cit7CisjaWYgRU5BQkxFKFRPVUNIX0VWRU5UUykKKyAg
ICBpZiAoc2NyZWVuSGFzVG91Y2hEZXZpY2UoKSkKKyAgICAgICAgcmV0dXJuIFBvaW50ZXJDaGFy
YWN0ZXJpc3RpY3M6OkNvYXJzZTsKKyNlbmRpZgorICAgIHJldHVybiBQb2ludGVyQ2hhcmFjdGVy
aXN0aWNzOjpGaW5lOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJQcm9jZXNzLmNwcAppbmRleCA2MTBkMzc3OTA4Y2IuLjU5ZTA3YjA4MDFhZiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcApAQCAtMTA1MCw2ICsxMDUw
LDIwIEBAIHZvaWQgV2ViUHJvY2Vzczo6bWVzc2FnZXNBdmFpbGFibGVGb3JQb3J0KGNvbnN0IE1l
c3NhZ2VQb3J0SWRlbnRpZmllciYgaWRlbnRpZmllCiAgICAgTWVzc2FnZVBvcnQ6Om5vdGlmeU1l
c3NhZ2VBdmFpbGFibGUoaWRlbnRpZmllcik7CiB9CiAKKyNpZiBIQVZFKFVJS0lUX1dJVEhfTU9V
U0VfU1VQUE9SVCkgJiYgUExBVEZPUk0oSU9TKQorCit2b2lkIFdlYlByb2Nlc3M6OnNldEhhc01v
dXNlRGV2aWNlKGJvb2wgaGFzTW91c2VEZXZpY2UpCit7CisgICAgaWYgKGhhc01vdXNlRGV2aWNl
ID09IG1faGFzTW91c2VEZXZpY2UpCisgICAgICAgIHJldHVybjsKKworICAgIG1faGFzTW91c2VE
ZXZpY2UgPSBoYXNNb3VzZURldmljZTsKKworICAgIFBhZ2U6OnVwZGF0ZVN0eWxlRm9yQWxsUGFn
ZXNBZnRlckdsb2JhbENoYW5nZUluRW52aXJvbm1lbnQoKTsKK30KKworI2VuZGlmIC8vIEhBVkUo
VUlLSVRfV0lUSF9NT1VTRV9TVVBQT1JUKSAmJiBQTEFURk9STShJT1MpCisKICNpZiBFTkFCTEUo
R0FNRVBBRCkKIAogdm9pZCBXZWJQcm9jZXNzOjpzZXRJbml0aWFsR2FtZXBhZHMoY29uc3QgVmVj
dG9yPFdlYktpdDo6R2FtZXBhZERhdGE+JiBnYW1lcGFkRGF0YXMpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYlByb2Nlc3MuaAppbmRleCA5ZDBkZGJmZDM4ZGUuLmYzZTE5YWI2YWIzMiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oCkBAIC0xODcsNiArMTg3LDExIEBAIHB1Ymxp
YzoKIAogICAgIGJvb2wgZnVsbEtleWJvYXJkQWNjZXNzRW5hYmxlZCgpIGNvbnN0IHsgcmV0dXJu
IG1fZnVsbEtleWJvYXJkQWNjZXNzRW5hYmxlZDsgfQogCisjaWYgSEFWRShVSUtJVF9XSVRIX01P
VVNFX1NVUFBPUlQpICYmIFBMQVRGT1JNKElPUykKKyAgICBib29sIGhhc01vdXNlRGV2aWNlKCkg
Y29uc3QgeyByZXR1cm4gbV9oYXNNb3VzZURldmljZTsgfQorICAgIHZvaWQgc2V0SGFzTW91c2VE
ZXZpY2UoYm9vbCk7CisjZW5kaWYKKwogICAgIFdlYkZyYW1lKiB3ZWJGcmFtZShXZWJDb3JlOjpG
cmFtZUlkZW50aWZpZXIpIGNvbnN0OwogICAgIFZlY3RvcjxXZWJGcmFtZSo+IHdlYkZyYW1lcygp
IGNvbnN0OwogICAgIHZvaWQgYWRkV2ViRnJhbWUoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBX
ZWJGcmFtZSopOwpAQCAtNTU0LDYgKzU1OSwxMCBAQCBwcml2YXRlOgogCiAgICAgYm9vbCBtX2Z1
bGxLZXlib2FyZEFjY2Vzc0VuYWJsZWQgeyBmYWxzZSB9OwogCisjaWYgSEFWRShVSUtJVF9XSVRI
X01PVVNFX1NVUFBPUlQpICYmIFBMQVRGT1JNKElPUykKKyAgICBib29sIG1faGFzTW91c2VEZXZp
Y2UgeyBmYWxzZSB9OworI2VuZGlmCisKICAgICBIYXNoTWFwPFdlYkNvcmU6OkZyYW1lSWRlbnRp
ZmllciwgV2ViRnJhbWUqPiBtX2ZyYW1lTWFwOwogCiAgICAgdHlwZWRlZiBIYXNoTWFwPGNvbnN0
IGNoYXIqLCBzdGQ6OnVuaXF1ZV9wdHI8V2ViUHJvY2Vzc1N1cHBsZW1lbnQ+LCBQdHJIYXNoPGNv
bnN0IGNoYXIqPj4gV2ViUHJvY2Vzc1N1cHBsZW1lbnRNYXA7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJQcm9jZXNzLm1lc3NhZ2VzLmluCmluZGV4IDAxMjM2NzU3YTVjNS4uMzcw
MDE3OTk3OTMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vz
cy5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5t
ZXNzYWdlcy5pbgpAQCAtNTIsNiArNTIsMTAgQEAgbWVzc2FnZXMgLT4gV2ViUHJvY2VzcyBMZWdh
Y3lSZWNlaXZlciBOb3RSZWZDb3VudGVkIHsKICAgICBVc2VyUHJlZmVycmVkTGFuZ3VhZ2VzQ2hh
bmdlZCgpCiAgICAgRnVsbEtleWJvYXJkQWNjZXNzTW9kZUNoYW5nZWQoYm9vbCBmdWxsS2V5Ym9h
cmRBY2Nlc3NFbmFibGVkKQogCisjaWYgSEFWRShVSUtJVF9XSVRIX01PVVNFX1NVUFBPUlQpICYm
IFBMQVRGT1JNKElPUykKKyAgICBTZXRIYXNNb3VzZURldmljZShib29sIGhhc01vdXNlRGV2aWNl
KQorI2VuZGlmCisKICAgICAjIFBsdWctaW5zLgogICAgIERpZEFkZFBsdWdJbkF1dG9TdGFydE9y
aWdpbkhhc2godWludDMyX3QgaGFzaCwgV2FsbFRpbWUgZXhwaXJhdGlvblRpbWUpCiAgICAgUmVz
ZXRQbHVnSW5BdXRvU3RhcnRPcmlnaW5IYXNoZXMoSGFzaE1hcDx1aW50MzJfdCxXYWxsVGltZT4g
aGFzaGVzKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1dlYlBy
b2Nlc3NDb2NvYS5tbSBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9XZWJQcm9jZXNz
Q29jb2EubW0KaW5kZXggZjk2NDlhZDY4ZWI0Li42Mjk1NTI4Y2I0YmYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9XZWJQcm9jZXNzQ29jb2EubW0KKysrIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1dlYlByb2Nlc3NDb2NvYS5tbQpAQCAtMjk5LDYg
KzI5OSwxMCBAQCB2b2lkIFdlYlByb2Nlc3M6OnBsYXRmb3JtSW5pdGlhbGl6ZVdlYlByb2Nlc3Mo
V2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyYgcGFyYQogICAgICAgICB9KTsKICAgICB9CiAK
KyNpZiBIQVZFKFVJS0lUX1dJVEhfTU9VU0VfU1VQUE9SVCkgJiYgUExBVEZPUk0oSU9TKQorICAg
IG1faGFzTW91c2VEZXZpY2UgPSBwYXJhbWV0ZXJzLmhhc01vdXNlRGV2aWNlOworI2VuZGlmCisK
ICAgICBXZWJDb3JlOjpzZXRTY3JlZW5Qcm9wZXJ0aWVzKHBhcmFtZXRlcnMuc2NyZWVuUHJvcGVy
dGllcyk7CiAKICNpZiBQTEFURk9STShNQUMpICYmIEVOQUJMRShXRUJQUk9DRVNTX1dJTkRPV1NF
UlZFUl9CTE9DS0lORykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvaW9zL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvaW9zL0NoYW5nZUxvZwppbmRleCAxMmU2NTViMWVj
ZGQuLjE5YWJmODY3ZTY1ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9pb3MvQ2hh
bmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvaW9zL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDE2IEBACisyMDIwLTEwLTA2ICBEZXZpbiBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNvbT4KKwor
ICAgICAgICBDU1MgaG92ZXIgYW5kICJwb2ludGVyOiBmaW5lIiBtZWRpYSBxdWVyaWVzIGRvIG5v
dCBldmFsdWF0ZSB0byB0cnVlIHdpdGggaU9TIDEzLjQgbW91c2Ugc3VwcG9ydAorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA5MjkyCisgICAgICAgIDxy
ZGFyOi8vcHJvYmxlbS82MDY2MzEyND4KKworICAgICAgICBSZXZpZXdlZCBieSBUaW0gSG9ydG9u
LgorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50SU9TLmg6CisgICAg
ICAgIChXZWJDaHJvbWVDbGllbnRJT1M6OmhvdmVyU3VwcG9ydGVkQnlBbnlBdmFpbGFibGVQb2lu
dGluZ0RldmljZSBjb25zdCk6IEFkZGVkLgorICAgICAgICAoV2ViQ2hyb21lQ2xpZW50SU9TOjpw
b2ludGVyQ2hhcmFjdGVyaXN0aWNzT2ZBbGxBdmFpbGFibGVQb2ludGluZ0RldmljZXMgY29uc3Qp
OiBBZGRlZC4KKyAgICAgICAgTW91c2UgZGV2aWNlcyBhcmUgbm90IHN1cHBvcnRlZC4KKwogMjAy
MC0wOS0yMCAgRGFyaW4gQWRsZXIgIDxkYXJpbkBhcHBsZS5jb20+CiAKICAgICAgICAgTmV4dCBz
dGVwIHRvd2FyZHMgZWxpbWluYXRpbmcgZGVwcmVjYXRlZCBsZWdhY3kgcG9zaXRpb25zCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L2lvcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVD
bGllbnRJT1MuaCBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvaW9zL1dlYkNvcmVTdXBwb3J0L1dlYkNo
cm9tZUNsaWVudElPUy5oCmluZGV4IGE5MmJhYTZiMzA1OS4uMTkxYTBhZjlhNWViIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L2lvcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGll
bnRJT1MuaAorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L2lvcy9XZWJDb3JlU3VwcG9ydC9XZWJD
aHJvbWVDbGllbnRJT1MuaApAQCAtNTAsNiArNTAsOSBAQCBwcml2YXRlOgogICAgIHZvaWQgcnVu
T3BlblBhbmVsKFdlYkNvcmU6OkZyYW1lJiwgV2ViQ29yZTo6RmlsZUNob29zZXImKSBmaW5hbDsK
ICAgICB2b2lkIHNob3dTaGFyZVNoZWV0KFdlYkNvcmU6OlNoYXJlRGF0YVdpdGhQYXJzZWRVUkwm
LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmKSBmaW5hbDsKIAorICAgIGJvb2wgaG92
ZXJTdXBwb3J0ZWRCeUFueUF2YWlsYWJsZVBvaW50aW5nRGV2aWNlKCkgY29uc3QgZmluYWwgeyBy
ZXR1cm4gZmFsc2U7IH0KKyAgICBPcHRpb25TZXQ8V2ViQ29yZTo6UG9pbnRlckNoYXJhY3Rlcmlz
dGljcz4gcG9pbnRlckNoYXJhY3RlcmlzdGljc09mQWxsQXZhaWxhYmxlUG9pbnRpbmdEZXZpY2Vz
KCkgY29uc3QgZmluYWwgeyByZXR1cm4gV2ViQ29yZTo6UG9pbnRlckNoYXJhY3RlcmlzdGljczo6
Q29hcnNlOyB9CisKICAgICB2b2lkIHNldEN1cnNvcihjb25zdCBXZWJDb3JlOjpDdXJzb3ImKSBm
aW5hbCB7IH0KICAgICB2b2lkIHNldEN1cnNvckhpZGRlblVudGlsTW91c2VNb3Zlcyhib29sKSBm
aW5hbCB7IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9n
IGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCmluZGV4IGQ5NGFjZDJlMzhkMi4u
ZDNhNjU5ZTgxM2JhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VM
b2cKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYg
QEAKKzIwMjAtMTAtMDYgIERldmluIFJvdXNzbyAgPGRyb3Vzc29AYXBwbGUuY29tPgorCisgICAg
ICAgIENTUyBob3ZlciBhbmQgInBvaW50ZXI6IGZpbmUiIG1lZGlhIHF1ZXJpZXMgZG8gbm90IGV2
YWx1YXRlIHRvIHRydWUgd2l0aCBpT1MgMTMuNCBtb3VzZSBzdXBwb3J0CisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDkyOTIKKyAgICAgICAgPHJkYXI6
Ly9wcm9ibGVtLzYwNjYzMTI0PgorCisgICAgICAgIFJldmlld2VkIGJ5IFRpbSBIb3J0b24uCisK
KyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaDoKKyAgICAgICAgKFdl
YkNocm9tZUNsaWVudDo6aG92ZXJTdXBwb3J0ZWRCeUFueUF2YWlsYWJsZVBvaW50aW5nRGV2aWNl
IGNvbnN0KTogQWRkZWQuCisgICAgICAgIChXZWJDaHJvbWVDbGllbnQ6OnBvaW50ZXJDaGFyYWN0
ZXJpc3RpY3NPZkFsbEF2YWlsYWJsZVBvaW50aW5nRGV2aWNlcyBjb25zdCk6IEFkZGVkLgorICAg
ICAgICBNb3VzZSBkZXZpY2VzIGFyZSBhbHdheXMgc3VwcG9ydGVkLgorCiAyMDIwLTEwLTA2ICBT
aW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgogCiAgICAgICAgIFVzZSB0aGUg
InRyaWdnZXJSZW5kZXJpbmdVcGRhdGUiIHRlcm1pbm9sb2d5IGluIENocm9tZUNsaWVudApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21l
Q2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJv
bWVDbGllbnQuaAppbmRleCAyMGIzYTAyNTY2YTIuLmM3YzFhZDIzMTA1YSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgK
KysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xp
ZW50LmgKQEAgLTE1OCw2ICsxNTgsOSBAQCBwcml2YXRlOgogCiAgICAgV2ViQ29yZTo6S2V5Ym9h
cmRVSU1vZGUga2V5Ym9hcmRVSU1vZGUoKSBmaW5hbDsKIAorICAgIGJvb2wgaG92ZXJTdXBwb3J0
ZWRCeUFueUF2YWlsYWJsZVBvaW50aW5nRGV2aWNlKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4g
dHJ1ZTsgfQorICAgIE9wdGlvblNldDxXZWJDb3JlOjpQb2ludGVyQ2hhcmFjdGVyaXN0aWNzPiBw
b2ludGVyQ2hhcmFjdGVyaXN0aWNzT2ZBbGxBdmFpbGFibGVQb2ludGluZ0RldmljZXMoKSBjb25z
dCBvdmVycmlkZSB7IHJldHVybiBXZWJDb3JlOjpQb2ludGVyQ2hhcmFjdGVyaXN0aWNzOjpGaW5l
OyB9CisKICAgICBOU1Jlc3BvbmRlciAqZmlyc3RSZXNwb25kZXIoKSBmaW5hbDsKICAgICB2b2lk
IG1ha2VGaXJzdFJlc3BvbmRlcihOU1Jlc3BvbmRlciAqKSBmaW5hbDsKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdExlZ2FjeS93aW4vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdExlZ2FjeS93
aW4vQ2hhbmdlTG9nCmluZGV4IGRhYWQxNGM4ZjcxYi4uMDgzZDc0M2RlMTc4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdExl
Z2FjeS93aW4vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMjAtMTAtMDYgIERldmluIFJv
dXNzbyAgPGRyb3Vzc29AYXBwbGUuY29tPgorCisgICAgICAgIENTUyBob3ZlciBhbmQgInBvaW50
ZXI6IGZpbmUiIG1lZGlhIHF1ZXJpZXMgZG8gbm90IGV2YWx1YXRlIHRvIHRydWUgd2l0aCBpT1Mg
MTMuNCBtb3VzZSBzdXBwb3J0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yMDkyOTIKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzYwNjYzMTI0PgorCisg
ICAgICAgIFJldmlld2VkIGJ5IFRpbSBIb3J0b24uCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9y
dC9XZWJDaHJvbWVDbGllbnQuaDoKKyAgICAgICAgKFdlYkNocm9tZUNsaWVudDo6aG92ZXJTdXBw
b3J0ZWRCeUFueUF2YWlsYWJsZVBvaW50aW5nRGV2aWNlIGNvbnN0KTogQWRkZWQuCisgICAgICAg
IChXZWJDaHJvbWVDbGllbnQ6OnBvaW50ZXJDaGFyYWN0ZXJpc3RpY3NPZkFsbEF2YWlsYWJsZVBv
aW50aW5nRGV2aWNlcyBjb25zdCk6IEFkZGVkLgorICAgICAgICBNb3VzZSBkZXZpY2VzIGFyZSBh
bHdheXMgc3VwcG9ydGVkLgorCiAyMDIwLTEwLTA2ICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFz
ZXJAYXBwbGUuY29tPgogCiAgICAgICAgIFVzZSB0aGUgInRyaWdnZXJSZW5kZXJpbmdVcGRhdGUi
IHRlcm1pbm9sb2d5IGluIENocm9tZUNsaWVudApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExl
Z2FjeS93aW4vV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0
TGVnYWN5L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaAppbmRleCA3NjllZmIx
M2RlNzEuLjhjOWQ2MWNiY2QwNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4v
V2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdExlZ2Fj
eS93aW4vV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKQEAgLTk0LDYgKzk0LDkgQEAg
cHVibGljOgogCiAgICAgV2ViQ29yZTo6S2V5Ym9hcmRVSU1vZGUga2V5Ym9hcmRVSU1vZGUoKSBm
aW5hbDsKIAorICAgIGJvb2wgaG92ZXJTdXBwb3J0ZWRCeUFueUF2YWlsYWJsZVBvaW50aW5nRGV2
aWNlKCkgY29uc3QgZmluYWwgeyByZXR1cm4gdHJ1ZTsgfQorICAgIE9wdGlvblNldDxXZWJDb3Jl
OjpQb2ludGVyQ2hhcmFjdGVyaXN0aWNzPiBwb2ludGVyQ2hhcmFjdGVyaXN0aWNzT2ZBbGxBdmFp
bGFibGVQb2ludGluZ0RldmljZXMoKSBjb25zdCBmaW5hbCB7IHJldHVybiBXZWJDb3JlOjpQb2lu
dGVyQ2hhcmFjdGVyaXN0aWNzOjpGaW5lOyB9CisKICAgICB2b2lkIGludmFsaWRhdGVSb290Vmll
dyhjb25zdCBXZWJDb3JlOjpJbnRSZWN0JikgZmluYWw7CiAgICAgdm9pZCBpbnZhbGlkYXRlQ29u
dGVudHNBbmRSb290Vmlldyhjb25zdCBXZWJDb3JlOjpJbnRSZWN0JikgZmluYWw7CiAgICAgdm9p
ZCBpbnZhbGlkYXRlQ29udGVudHNGb3JTbG93U2Nyb2xsKGNvbnN0IFdlYkNvcmU6OkludFJlY3Qm
KSBmaW5hbDsKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwpp
bmRleCA3MWU0N2NkZjg2ZTQuLmE4OTJjNDQ5Nzg3NCAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdl
TG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDIwLTEwLTA2ICBE
ZXZpbiBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNvbT4KKworICAgICAgICBDU1MgaG92ZXIgYW5k
ICJwb2ludGVyOiBmaW5lIiBtZWRpYSBxdWVyaWVzIGRvIG5vdCBldmFsdWF0ZSB0byB0cnVlIHdp
dGggaU9TIDEzLjQgbW91c2Ugc3VwcG9ydAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MjA5MjkyCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS82MDY2MzEy
ND4KKworICAgICAgICBSZXZpZXdlZCBieSBUaW0gSG9ydG9uLgorCisgICAgICAgICogVGVzdFdl
YktpdEFQSS9jb2NvYS9UZXN0V0tXZWJWaWV3Lmg6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9j
b2NvYS9UZXN0V0tXZWJWaWV3Lm1tOgorICAgICAgICAoLVtUZXN0V0tXZWJWaWV3IGV2YWx1YXRl
TWVkaWFRdWVyeTpdKTogQWRkZWQuCisgICAgICAgIENyZWF0ZSBoZWxwZXIgZnVuY3Rpb24gZm9y
IHN5bmNocm9ub3VzbHkgdGVzdGluZyBtZWRpYSBxdWVyaWVzLgorCisgICAgICAgICogVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9pT1NNb3VzZVN1cHBvcnQubW06CisgICAgICAgIChp
T1NNb3VzZVN1cHBvcnQuTW91c2VJbml0aWFsbHlEaXNjb25uZWN0ZWQpOiBBZGRlZC4KKyAgICAg
ICAgKGlPU01vdXNlU3VwcG9ydC5Nb3VzZUluaXRpYWxseUNvbm5lY3RlZCk6IEFkZGVkLgorICAg
ICAgICAoaU9TTW91c2VTdXBwb3J0Lk1vdXNlTGF0ZXJEaXNjb25uZWN0ZWQpOiBBZGRlZC4KKyAg
ICAgICAgKGlPU01vdXNlU3VwcG9ydC5Nb3VzZUxhdGVyQ29ubmVjdGVkKTogQWRkZWQuCisgICAg
ICAgIChpT1NNb3VzZVN1cHBvcnQuTW91c2VBbHdheXNDb25uZWN0ZWQpOiBBZGRlZC4KKwogMjAy
MC0xMC0wNiAgQWRyaWFuIFBlcmV6IGRlIENhc3RybyAgPGFwZXJlekBpZ2FsaWEuY29tPgogCiAg
ICAgICAgIFJFR1JFU1NJT04ocjI2NzM5OSk6IFtXUEVdIEJ1aWxkIGJyb2tlbiB3aXRoIEVOQUJM
RV9BQ0NFU1NJQklMSVRZPU9GRgpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9XZWJLaXRDb2NvYS9pT1NNb3VzZVN1cHBvcnQubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYktpdENvY29hL2lPU01vdXNlU3VwcG9ydC5tbQppbmRleCBjMjQzMGIyMGVmNzcuLjBi
ZjVmZDc3MTJlNSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRD
b2NvYS9pT1NNb3VzZVN1cHBvcnQubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJLaXRDb2NvYS9pT1NNb3VzZVN1cHBvcnQubW0KQEAgLTMwMCw0ICszMDAsMTg3IEBAIFRFU1Qo
aU9TTW91c2VTdXBwb3J0LCBXZWJzaXRlTW91c2VFdmVudFBvbGljaWVzKQogCiAjZW5kaWYgLy8g
RU5BQkxFKElPU19UT1VDSF9FVkVOVFMpCiAKKyNpZiBIQVZFKFVJS0lUX1dJVEhfTU9VU0VfU1VQ
UE9SVCkKKworI2lmIFBMQVRGT1JNKElPUykKKworQGludGVyZmFjZSBXS01vdXNlRGV2aWNlT2Jz
ZXJ2ZXIKKysgKFdLTW91c2VEZXZpY2VPYnNlcnZlciAqKXNoYXJlZEluc3RhbmNlOworLSAodm9p
ZClzdGFydDsKKy0gKHZvaWQpX3NldEhhc01vdXNlRGV2aWNlRm9yVGVzdGluZzooQk9PTCloYXNN
b3VzZURldmljZTsKK0BlbmQKKworVEVTVChpT1NNb3VzZVN1cHBvcnQsIE1vdXNlSW5pdGlhbGx5
RGlzY29ubmVjdGVkKQoreworICAgIFdLTW91c2VEZXZpY2VPYnNlcnZlciAqbW91c2VEZXZpY2VP
YnNlcnZlciA9IFtOU0NsYXNzRnJvbVN0cmluZyhAIldLTW91c2VEZXZpY2VPYnNlcnZlciIpIHNo
YXJlZEluc3RhbmNlXTsKKyAgICBbbW91c2VEZXZpY2VPYnNlcnZlciBzdGFydF07CisgICAgW21v
dXNlRGV2aWNlT2JzZXJ2ZXIgX3NldEhhc01vdXNlRGV2aWNlRm9yVGVzdGluZzpOT107CisKKyAg
ICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhG
cmFtZTpOU01ha2VSZWN0KDAsIDAsIDgwMCwgNjAwKV0pOworCisgICAgW3dlYlZpZXcgc3luY2hy
b25vdXNseUxvYWRIVE1MU3RyaW5nOkAiIl07CisKKyNpZiBFTkFCTEUoVE9VQ0hfRVZFTlRTKQor
ICAgIEVYUEVDVF9GQUxTRShbd2ViVmlldyBldmFsdWF0ZU1lZGlhUXVlcnk6QCJob3ZlciJdKTsK
KyAgICBFWFBFQ1RfVFJVRShbd2ViVmlldyBldmFsdWF0ZU1lZGlhUXVlcnk6QCJob3Zlcjogbm9u
ZSJdKTsKKyAgICBFWFBFQ1RfRkFMU0UoW3dlYlZpZXcgZXZhbHVhdGVNZWRpYVF1ZXJ5OkAiaG92
ZXI6IGhvdmVyIl0pOworI2VuZGlmCisKKyAgICBFWFBFQ1RfRkFMU0UoW3dlYlZpZXcgZXZhbHVh
dGVNZWRpYVF1ZXJ5OkAiYW55LWhvdmVyIl0pOworICAgIEVYUEVDVF9UUlVFKFt3ZWJWaWV3IGV2
YWx1YXRlTWVkaWFRdWVyeTpAImFueS1ob3Zlcjogbm9uZSJdKTsKKyAgICBFWFBFQ1RfRkFMU0Uo
W3dlYlZpZXcgZXZhbHVhdGVNZWRpYVF1ZXJ5OkAiYW55LWhvdmVyOiBob3ZlciJdKTsKKworI2lm
IEVOQUJMRShUT1VDSF9FVkVOVFMpCisgICAgRVhQRUNUX1RSVUUoW3dlYlZpZXcgZXZhbHVhdGVN
ZWRpYVF1ZXJ5OkAicG9pbnRlciJdKTsKKyAgICBFWFBFQ1RfRkFMU0UoW3dlYlZpZXcgZXZhbHVh
dGVNZWRpYVF1ZXJ5OkAicG9pbnRlcjogbm9uZSJdKTsKKyAgICBFWFBFQ1RfVFJVRShbd2ViVmll
dyBldmFsdWF0ZU1lZGlhUXVlcnk6QCJwb2ludGVyOiBjb2Fyc2UiXSk7CisgICAgRVhQRUNUX0ZB
TFNFKFt3ZWJWaWV3IGV2YWx1YXRlTWVkaWFRdWVyeTpAInBvaW50ZXI6IGZpbmUiXSk7CisjZW5k
aWYKKworICAgIEVYUEVDVF9UUlVFKFt3ZWJWaWV3IGV2YWx1YXRlTWVkaWFRdWVyeTpAImFueS1w
b2ludGVyIl0pOworICAgIEVYUEVDVF9GQUxTRShbd2ViVmlldyBldmFsdWF0ZU1lZGlhUXVlcnk6
QCJhbnktcG9pbnRlcjogbm9uZSJdKTsKKyAgICBFWFBFQ1RfVFJVRShbd2ViVmlldyBldmFsdWF0
ZU1lZGlhUXVlcnk6QCJhbnktcG9pbnRlcjogY29hcnNlIl0pOworICAgIEVYUEVDVF9GQUxTRShb
d2ViVmlldyBldmFsdWF0ZU1lZGlhUXVlcnk6QCJhbnktcG9pbnRlcjogZmluZSJdKTsKK30KKwor
VEVTVChpT1NNb3VzZVN1cHBvcnQsIE1vdXNlSW5pdGlhbGx5Q29ubmVjdGVkKQoreworICAgIFdL
TW91c2VEZXZpY2VPYnNlcnZlciAqbW91c2VEZXZpY2VPYnNlcnZlciA9IFtOU0NsYXNzRnJvbVN0
cmluZyhAIldLTW91c2VEZXZpY2VPYnNlcnZlciIpIHNoYXJlZEluc3RhbmNlXTsKKyAgICBbbW91
c2VEZXZpY2VPYnNlcnZlciBzdGFydF07CisgICAgW21vdXNlRGV2aWNlT2JzZXJ2ZXIgX3NldEhh
c01vdXNlRGV2aWNlRm9yVGVzdGluZzpZRVNdOworCisgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHRO
UyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6TlNNYWtlUmVjdCgwLCAwLCA4
MDAsIDYwMCldKTsKKworICAgIFt3ZWJWaWV3IHN5bmNocm9ub3VzbHlMb2FkSFRNTFN0cmluZzpA
IiJdOworCisjaWYgRU5BQkxFKFRPVUNIX0VWRU5UUykKKyAgICBFWFBFQ1RfRkFMU0UoW3dlYlZp
ZXcgZXZhbHVhdGVNZWRpYVF1ZXJ5OkAiaG92ZXIiXSk7CisgICAgRVhQRUNUX1RSVUUoW3dlYlZp
ZXcgZXZhbHVhdGVNZWRpYVF1ZXJ5OkAiaG92ZXI6IG5vbmUiXSk7CisgICAgRVhQRUNUX0ZBTFNF
KFt3ZWJWaWV3IGV2YWx1YXRlTWVkaWFRdWVyeTpAImhvdmVyOiBob3ZlciJdKTsKKyNlbmRpZgor
CisgICAgRVhQRUNUX1RSVUUoW3dlYlZpZXcgZXZhbHVhdGVNZWRpYVF1ZXJ5OkAiYW55LWhvdmVy
Il0pOworICAgIEVYUEVDVF9GQUxTRShbd2ViVmlldyBldmFsdWF0ZU1lZGlhUXVlcnk6QCJhbnkt
aG92ZXI6IG5vbmUiXSk7CisgICAgRVhQRUNUX1RSVUUoW3dlYlZpZXcgZXZhbHVhdGVNZWRpYVF1
ZXJ5OkAiYW55LWhvdmVyOiBob3ZlciJdKTsKKworI2lmIEVOQUJMRShUT1VDSF9FVkVOVFMpCisg
ICAgRVhQRUNUX1RSVUUoW3dlYlZpZXcgZXZhbHVhdGVNZWRpYVF1ZXJ5OkAicG9pbnRlciJdKTsK
KyAgICBFWFBFQ1RfRkFMU0UoW3dlYlZpZXcgZXZhbHVhdGVNZWRpYVF1ZXJ5OkAicG9pbnRlcjog
bm9uZSJdKTsKKyAgICBFWFBFQ1RfVFJVRShbd2ViVmlldyBldmFsdWF0ZU1lZGlhUXVlcnk6QCJw
b2ludGVyOiBjb2Fyc2UiXSk7CisgICAgRVhQRUNUX0ZBTFNFKFt3ZWJWaWV3IGV2YWx1YXRlTWVk
aWFRdWVyeTpAInBvaW50ZXI6IGZpbmUiXSk7CisjZW5kaWYKKworICAgIEVYUEVDVF9UUlVFKFt3
ZWJWaWV3IGV2YWx1YXRlTWVkaWFRdWVyeTpAImFueS1wb2ludGVyIl0pOworICAgIEVYUEVDVF9G
QUxTRShbd2ViVmlldyBldmFsdWF0ZU1lZGlhUXVlcnk6QCJhbnktcG9pbnRlcjogbm9uZSJdKTsK
KyAgICBFWFBFQ1RfVFJVRShbd2ViVmlldyBldmFsdWF0ZU1lZGlhUXVlcnk6QCJhbnktcG9pbnRl
cjogY29hcnNlIl0pOworICAgIEVYUEVDVF9UUlVFKFt3ZWJWaWV3IGV2YWx1YXRlTWVkaWFRdWVy
eTpAImFueS1wb2ludGVyOiBmaW5lIl0pOworfQorCitURVNUKGlPU01vdXNlU3VwcG9ydCwgTW91
c2VMYXRlckRpc2Nvbm5lY3RlZCkKK3sKKyAgICBXS01vdXNlRGV2aWNlT2JzZXJ2ZXIgKm1vdXNl
RGV2aWNlT2JzZXJ2ZXIgPSBbTlNDbGFzc0Zyb21TdHJpbmcoQCJXS01vdXNlRGV2aWNlT2JzZXJ2
ZXIiKSBzaGFyZWRJbnN0YW5jZV07CisgICAgW21vdXNlRGV2aWNlT2JzZXJ2ZXIgc3RhcnRdOwor
ICAgIFttb3VzZURldmljZU9ic2VydmVyIF9zZXRIYXNNb3VzZURldmljZUZvclRlc3Rpbmc6WUVT
XTsKKworICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBp
bml0V2l0aEZyYW1lOk5TTWFrZVJlY3QoMCwgMCwgODAwLCA2MDApXSk7CisKKyAgICBbd2ViVmll
dyBzeW5jaHJvbm91c2x5TG9hZEhUTUxTdHJpbmc6QCIiXTsKKworICAgIFttb3VzZURldmljZU9i
c2VydmVyIF9zZXRIYXNNb3VzZURldmljZUZvclRlc3Rpbmc6Tk9dOworCisjaWYgRU5BQkxFKFRP
VUNIX0VWRU5UUykKKyAgICBFWFBFQ1RfRkFMU0UoW3dlYlZpZXcgZXZhbHVhdGVNZWRpYVF1ZXJ5
OkAiaG92ZXIiXSk7CisgICAgRVhQRUNUX1RSVUUoW3dlYlZpZXcgZXZhbHVhdGVNZWRpYVF1ZXJ5
OkAiaG92ZXI6IG5vbmUiXSk7CisgICAgRVhQRUNUX0ZBTFNFKFt3ZWJWaWV3IGV2YWx1YXRlTWVk
aWFRdWVyeTpAImhvdmVyOiBob3ZlciJdKTsKKyNlbmRpZgorCisgICAgRVhQRUNUX0ZBTFNFKFt3
ZWJWaWV3IGV2YWx1YXRlTWVkaWFRdWVyeTpAImFueS1ob3ZlciJdKTsKKyAgICBFWFBFQ1RfVFJV
RShbd2ViVmlldyBldmFsdWF0ZU1lZGlhUXVlcnk6QCJhbnktaG92ZXI6IG5vbmUiXSk7CisgICAg
RVhQRUNUX0ZBTFNFKFt3ZWJWaWV3IGV2YWx1YXRlTWVkaWFRdWVyeTpAImFueS1ob3ZlcjogaG92
ZXIiXSk7CisKKyNpZiBFTkFCTEUoVE9VQ0hfRVZFTlRTKQorICAgIEVYUEVDVF9UUlVFKFt3ZWJW
aWV3IGV2YWx1YXRlTWVkaWFRdWVyeTpAInBvaW50ZXIiXSk7CisgICAgRVhQRUNUX0ZBTFNFKFt3
ZWJWaWV3IGV2YWx1YXRlTWVkaWFRdWVyeTpAInBvaW50ZXI6IG5vbmUiXSk7CisgICAgRVhQRUNU
X1RSVUUoW3dlYlZpZXcgZXZhbHVhdGVNZWRpYVF1ZXJ5OkAicG9pbnRlcjogY29hcnNlIl0pOwor
ICAgIEVYUEVDVF9GQUxTRShbd2ViVmlldyBldmFsdWF0ZU1lZGlhUXVlcnk6QCJwb2ludGVyOiBm
aW5lIl0pOworI2VuZGlmCisKKyAgICBFWFBFQ1RfVFJVRShbd2ViVmlldyBldmFsdWF0ZU1lZGlh
UXVlcnk6QCJhbnktcG9pbnRlciJdKTsKKyAgICBFWFBFQ1RfRkFMU0UoW3dlYlZpZXcgZXZhbHVh
dGVNZWRpYVF1ZXJ5OkAiYW55LXBvaW50ZXI6IG5vbmUiXSk7CisgICAgRVhQRUNUX1RSVUUoW3dl
YlZpZXcgZXZhbHVhdGVNZWRpYVF1ZXJ5OkAiYW55LXBvaW50ZXI6IGNvYXJzZSJdKTsKKyAgICBF
WFBFQ1RfRkFMU0UoW3dlYlZpZXcgZXZhbHVhdGVNZWRpYVF1ZXJ5OkAiYW55LXBvaW50ZXI6IGZp
bmUiXSk7Cit9CisKK1RFU1QoaU9TTW91c2VTdXBwb3J0LCBNb3VzZUxhdGVyQ29ubmVjdGVkKQor
eworICAgIFdLTW91c2VEZXZpY2VPYnNlcnZlciAqbW91c2VEZXZpY2VPYnNlcnZlciA9IFtOU0Ns
YXNzRnJvbVN0cmluZyhAIldLTW91c2VEZXZpY2VPYnNlcnZlciIpIHNoYXJlZEluc3RhbmNlXTsK
KyAgICBbbW91c2VEZXZpY2VPYnNlcnZlciBzdGFydF07CisgICAgW21vdXNlRGV2aWNlT2JzZXJ2
ZXIgX3NldEhhc01vdXNlRGV2aWNlRm9yVGVzdGluZzpOT107CisKKyAgICBhdXRvIHdlYlZpZXcg
PSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU01ha2VSZWN0
KDAsIDAsIDgwMCwgNjAwKV0pOworCisgICAgW3dlYlZpZXcgc3luY2hyb25vdXNseUxvYWRIVE1M
U3RyaW5nOkAiIl07CisKKyAgICBbbW91c2VEZXZpY2VPYnNlcnZlciBfc2V0SGFzTW91c2VEZXZp
Y2VGb3JUZXN0aW5nOllFU107CisKKyNpZiBFTkFCTEUoVE9VQ0hfRVZFTlRTKQorICAgIEVYUEVD
VF9GQUxTRShbd2ViVmlldyBldmFsdWF0ZU1lZGlhUXVlcnk6QCJob3ZlciJdKTsKKyAgICBFWFBF
Q1RfVFJVRShbd2ViVmlldyBldmFsdWF0ZU1lZGlhUXVlcnk6QCJob3Zlcjogbm9uZSJdKTsKKyAg
ICBFWFBFQ1RfRkFMU0UoW3dlYlZpZXcgZXZhbHVhdGVNZWRpYVF1ZXJ5OkAiaG92ZXI6IGhvdmVy
Il0pOworI2VuZGlmCisKKyAgICBFWFBFQ1RfVFJVRShbd2ViVmlldyBldmFsdWF0ZU1lZGlhUXVl
cnk6QCJhbnktaG92ZXIiXSk7CisgICAgRVhQRUNUX0ZBTFNFKFt3ZWJWaWV3IGV2YWx1YXRlTWVk
aWFRdWVyeTpAImFueS1ob3Zlcjogbm9uZSJdKTsKKyAgICBFWFBFQ1RfVFJVRShbd2ViVmlldyBl
dmFsdWF0ZU1lZGlhUXVlcnk6QCJhbnktaG92ZXI6IGhvdmVyIl0pOworCisjaWYgRU5BQkxFKFRP
VUNIX0VWRU5UUykKKyAgICBFWFBFQ1RfVFJVRShbd2ViVmlldyBldmFsdWF0ZU1lZGlhUXVlcnk6
QCJwb2ludGVyIl0pOworICAgIEVYUEVDVF9GQUxTRShbd2ViVmlldyBldmFsdWF0ZU1lZGlhUXVl
cnk6QCJwb2ludGVyOiBub25lIl0pOworICAgIEVYUEVDVF9UUlVFKFt3ZWJWaWV3IGV2YWx1YXRl
TWVkaWFRdWVyeTpAInBvaW50ZXI6IGNvYXJzZSJdKTsKKyAgICBFWFBFQ1RfRkFMU0UoW3dlYlZp
ZXcgZXZhbHVhdGVNZWRpYVF1ZXJ5OkAicG9pbnRlcjogZmluZSJdKTsKKyNlbmRpZgorCisgICAg
RVhQRUNUX1RSVUUoW3dlYlZpZXcgZXZhbHVhdGVNZWRpYVF1ZXJ5OkAiYW55LXBvaW50ZXIiXSk7
CisgICAgRVhQRUNUX0ZBTFNFKFt3ZWJWaWV3IGV2YWx1YXRlTWVkaWFRdWVyeTpAImFueS1wb2lu
dGVyOiBub25lIl0pOworICAgIEVYUEVDVF9UUlVFKFt3ZWJWaWV3IGV2YWx1YXRlTWVkaWFRdWVy
eTpAImFueS1wb2ludGVyOiBjb2Fyc2UiXSk7CisgICAgRVhQRUNUX1RSVUUoW3dlYlZpZXcgZXZh
bHVhdGVNZWRpYVF1ZXJ5OkAiYW55LXBvaW50ZXI6IGZpbmUiXSk7Cit9CisKKyNlbmRpZiAvLyBQ
TEFURk9STShJT1MpCisKKyNpZiBQTEFURk9STShNQUNDQVRBTFlTVCkKKworVEVTVChpT1NNb3Vz
ZVN1cHBvcnQsIE1vdXNlQWx3YXlzQ29ubmVjdGVkKQoreworICAgIGF1dG8gd2ViVmlldyA9IGFk
b3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5TTWFrZVJlY3QoMCwg
MCwgODAwLCA2MDApXSk7CisKKyAgICBbd2ViVmlldyBzeW5jaHJvbm91c2x5TG9hZEhUTUxTdHJp
bmc6QCIiXTsKKworI2lmIEVOQUJMRShUT1VDSF9FVkVOVFMpCisgICAgRVhQRUNUX0ZBTFNFKFt3
ZWJWaWV3IGV2YWx1YXRlTWVkaWFRdWVyeTpAImhvdmVyIl0pOworICAgIEVYUEVDVF9UUlVFKFt3
ZWJWaWV3IGV2YWx1YXRlTWVkaWFRdWVyeTpAImhvdmVyOiBub25lIl0pOworICAgIEVYUEVDVF9G
QUxTRShbd2ViVmlldyBldmFsdWF0ZU1lZGlhUXVlcnk6QCJob3ZlcjogaG92ZXIiXSk7CisjZW5k
aWYKKworICAgIEVYUEVDVF9UUlVFKFt3ZWJWaWV3IGV2YWx1YXRlTWVkaWFRdWVyeTpAImFueS1o
b3ZlciJdKTsKKyAgICBFWFBFQ1RfRkFMU0UoW3dlYlZpZXcgZXZhbHVhdGVNZWRpYVF1ZXJ5OkAi
YW55LWhvdmVyOiBub25lIl0pOworICAgIEVYUEVDVF9UUlVFKFt3ZWJWaWV3IGV2YWx1YXRlTWVk
aWFRdWVyeTpAImFueS1ob3ZlcjogaG92ZXIiXSk7CisKKyNpZiBFTkFCTEUoVE9VQ0hfRVZFTlRT
KQorICAgIEVYUEVDVF9UUlVFKFt3ZWJWaWV3IGV2YWx1YXRlTWVkaWFRdWVyeTpAInBvaW50ZXIi
XSk7CisgICAgRVhQRUNUX0ZBTFNFKFt3ZWJWaWV3IGV2YWx1YXRlTWVkaWFRdWVyeTpAInBvaW50
ZXI6IG5vbmUiXSk7CisgICAgRVhQRUNUX1RSVUUoW3dlYlZpZXcgZXZhbHVhdGVNZWRpYVF1ZXJ5
OkAicG9pbnRlcjogY29hcnNlIl0pOworICAgIEVYUEVDVF9GQUxTRShbd2ViVmlldyBldmFsdWF0
ZU1lZGlhUXVlcnk6QCJwb2ludGVyOiBmaW5lIl0pOworI2VuZGlmCisKKyAgICBFWFBFQ1RfVFJV
RShbd2ViVmlldyBldmFsdWF0ZU1lZGlhUXVlcnk6QCJhbnktcG9pbnRlciJdKTsKKyAgICBFWFBF
Q1RfRkFMU0UoW3dlYlZpZXcgZXZhbHVhdGVNZWRpYVF1ZXJ5OkAiYW55LXBvaW50ZXI6IG5vbmUi
XSk7CisgICAgRVhQRUNUX1RSVUUoW3dlYlZpZXcgZXZhbHVhdGVNZWRpYVF1ZXJ5OkAiYW55LXBv
aW50ZXI6IGNvYXJzZSJdKTsKKyAgICBFWFBFQ1RfVFJVRShbd2ViVmlldyBldmFsdWF0ZU1lZGlh
UXVlcnk6QCJhbnktcG9pbnRlcjogZmluZSJdKTsKK30KKworI2VuZGlmIC8vIFBMQVRGT1JNKE1B
Q0NBVEFMWVNUKQorCisjZW5kaWYgLy8gSEFWRShVSUtJVF9XSVRIX01PVVNFX1NVUFBPUlQpCisK
ICNlbmRpZiAvLyBQTEFURk9STShJT1MpIHx8IFBMQVRGT1JNKE1BQ0NBVEFMWVNUKQpkaWZmIC0t
Z2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9jb2NvYS9UZXN0V0tXZWJWaWV3LmggYi9Ub29scy9U
ZXN0V2ViS2l0QVBJL2NvY29hL1Rlc3RXS1dlYlZpZXcuaAppbmRleCAzNzg5ZjNjYjMwZTYuLjIy
YTQ4MjZjNDEyYiAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9jb2NvYS9UZXN0V0tX
ZWJWaWV3LmgKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9jb2NvYS9UZXN0V0tXZWJWaWV3LmgK
QEAgLTYxLDYgKzYxLDcgQEAKIC0gKHZvaWQpZXhwZWN0RWxlbWVudFRhZ3NJbk9yZGVyOihOU0Fy
cmF5PE5TU3RyaW5nICo+ICopdGFnTmFtZXM7CiAtICh2b2lkKWV4cGVjdEVsZW1lbnRDb3VudDoo
TlNJbnRlZ2VyKWNvdW50IHF1ZXJ5U2VsZWN0b3I6KE5TU3RyaW5nICopcXVlcnlTZWxlY3RvcjsK
IC0gKHZvaWQpZXhwZWN0RWxlbWVudFRhZzooTlNTdHJpbmcgKil0YWdOYW1lIHRvQ29tZUJlZm9y
ZTooTlNTdHJpbmcgKilvdGhlclRhZ05hbWU7CistIChCT09MKWV2YWx1YXRlTWVkaWFRdWVyeToo
TlNTdHJpbmcgKilxdWVyeTsKIC0gKE5TU3RyaW5nICopc3RyaW5nQnlFdmFsdWF0aW5nSmF2YVNj
cmlwdDooTlNTdHJpbmcgKilzY3JpcHQ7CiAtIChpZClvYmplY3RCeUV2YWx1YXRpbmdKYXZhU2Ny
aXB0V2l0aFVzZXJHZXN0dXJlOihOU1N0cmluZyAqKXNjcmlwdDsKIC0gKGlkKW9iamVjdEJ5RXZh
bHVhdGluZ0phdmFTY3JpcHQ6KE5TU3RyaW5nICopc2NyaXB0OwpkaWZmIC0tZ2l0IGEvVG9vbHMv
VGVzdFdlYktpdEFQSS9jb2NvYS9UZXN0V0tXZWJWaWV3Lm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQ
SS9jb2NvYS9UZXN0V0tXZWJWaWV3Lm1tCmluZGV4IDgxYjQ3MWMxYWVjOC4uNmM0ZjRmZWU5ZTc5
IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL2NvY29hL1Rlc3RXS1dlYlZpZXcubW0K
KysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9jb2NvYS9UZXN0V0tXZWJWaWV3Lm1tCkBAIC0xNjEs
NiArMTYxLDExIEBAIC0gKHZvaWQpZXhwZWN0RWxlbWVudFRhZzooTlNTdHJpbmcgKil0YWdOYW1l
IHRvQ29tZUJlZm9yZTooTlNTdHJpbmcgKilvdGhlclRhZ05hCiAgICAgW3NlbGYgZXhwZWN0RWxl
bWVudFRhZ3NJbk9yZGVyOkBbdGFnTmFtZSwgb3RoZXJUYWdOYW1lXV07CiB9CiAKKy0gKEJPT0wp
ZXZhbHVhdGVNZWRpYVF1ZXJ5OihOU1N0cmluZyAqKXF1ZXJ5Cit7CisgICAgcmV0dXJuIFtbc2Vs
ZiBvYmplY3RCeUV2YWx1YXRpbmdKYXZhU2NyaXB0OltOU1N0cmluZyBzdHJpbmdXaXRoRm9ybWF0
OkAid2luZG93Lm1hdGNoTWVkaWEoXCIoJUApXCIpLm1hdGNoZXMiLCBxdWVyeV1dIGJvb2xWYWx1
ZV07Cit9CisKIC0gKGlkKW9iamVjdEJ5RXZhbHVhdGluZ0phdmFTY3JpcHQ6KE5TU3RyaW5nICop
c2NyaXB0CiB7CiAgICAgYm9vbCBpc1dhaXRpbmdGb3JKYXZhU2NyaXB0ID0gZmFsc2U7CmRpZmYg
LS1naXQgYS9XZWJLaXRMaWJyYXJpZXMvQ2hhbmdlTG9nIGIvV2ViS2l0TGlicmFyaWVzL0NoYW5n
ZUxvZwppbmRleCBkZTcyY2YwZjQ0MDAuLjAwMDY2OGZjOWI3NSAxMDA2NDQKLS0tIGEvV2ViS2l0
TGlicmFyaWVzL0NoYW5nZUxvZworKysgYi9XZWJLaXRMaWJyYXJpZXMvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMTUgQEAKKzIwMjAtMTAtMDYgIERldmluIFJvdXNzbyAgPGRyb3Vzc29AYXBwbGUuY29t
PgorCisgICAgICAgIENTUyBob3ZlciBhbmQgInBvaW50ZXI6IGZpbmUiIG1lZGlhIHF1ZXJpZXMg
ZG8gbm90IGV2YWx1YXRlIHRvIHRydWUgd2l0aCBpT1MgMTMuNCBtb3VzZSBzdXBwb3J0CisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDkyOTIKKyAgICAg
ICAgPHJkYXI6Ly9wcm9ibGVtLzYwNjYzMTI0PgorCisgICAgICAgIFJldmlld2VkIGJ5IFRpbSBI
b3J0b24uCisKKyAgICAgICAgKiBXZWJLaXRQcml2YXRlRnJhbWV3b3JrU3R1YnMvaU9TLzEzL0Jh
Y2tCb2FyZFNlcnZpY2VzLmZyYW1ld29yay9CYWNrQm9hcmRTZXJ2aWNlcy50YmQ6IEFkZGVkLgor
ICAgICAgICAqIFdlYktpdFByaXZhdGVGcmFtZXdvcmtTdHVicy9pT1MvMTQvQmFja0JvYXJkU2Vy
dmljZXMuZnJhbWV3b3JrL0JhY2tCb2FyZFNlcnZpY2VzLnRiZDogQWRkZWQuCisgICAgICAgIFVz
ZSBgQmFja0JvYXJkU2VydmljZXNgIHRvIGxpc3RlbiBmb3IgbW91c2UgZGV2aWNlcyBjaGFuZ2Vz
LgorCiAyMDIwLTEwLTA0ICBSeWFuIEhvc3RldGxlciAgPHJob3N0QGFwcGxlLmNvbT4KIAogICAg
ICAgICBTdWJtaXNzaW9uIGZhaWx1cmUgd2l0aCAibWFrZTogKioqIE5vIHJ1bGUgdG8gbWFrZSB0
YXJnZXQgYGluc3RhbGxzcmMnLiBTdG9wIgpkaWZmIC0tZ2l0IGEvV2ViS2l0TGlicmFyaWVzL1dl
YktpdFByaXZhdGVGcmFtZXdvcmtTdHVicy9pT1MvMTMvQmFja0JvYXJkU2VydmljZXMuZnJhbWV3
b3JrL0JhY2tCb2FyZFNlcnZpY2VzLnRiZCBiL1dlYktpdExpYnJhcmllcy9XZWJLaXRQcml2YXRl
RnJhbWV3b3JrU3R1YnMvaU9TLzEzL0JhY2tCb2FyZFNlcnZpY2VzLmZyYW1ld29yay9CYWNrQm9h
cmRTZXJ2aWNlcy50YmQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi4w
MDIzNDhiZDNlZTAKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJLaXRMaWJyYXJpZXMvV2ViS2l0UHJp
dmF0ZUZyYW1ld29ya1N0dWJzL2lPUy8xMy9CYWNrQm9hcmRTZXJ2aWNlcy5mcmFtZXdvcmsvQmFj
a0JvYXJkU2VydmljZXMudGJkCkBAIC0wLDAgKzEsOSBAQAorLS0tICF0YXBpLXRiZC12MworYXJj
aHM6ICAgICAgICAgICBbIHg4Nl82NCwgYXJtNjQsIGFybTY0ZSBdCitpbnN0YWxsLW5hbWU6ICAg
ICcvU3lzdGVtL0xpYnJhcnkvUHJpdmF0ZUZyYW1ld29ya3MvQmFja0JvYXJkU2VydmljZXMuZnJh
bWV3b3JrL0JhY2tCb2FyZFNlcnZpY2VzJworb2JqYy1jb25zdHJhaW50OiBub25lCitwbGF0Zm9y
bTogaW9zCitleHBvcnRzOgorICAtIGFyY2hzOiAgICAgICAgICAgWyB4ODZfNjQsIGFybTY0LCBh
cm02NGUgXQorICAgIG9iamMtY2xhc3NlczogICAgWyBCS1NNb3VzZVBvaW50ZXJEZXZpY2UsIEJL
U01vdXNlUG9pbnRlclNlcnZpY2UgXQorLi4uCmRpZmYgLS1naXQgYS9XZWJLaXRMaWJyYXJpZXMv
V2ViS2l0UHJpdmF0ZUZyYW1ld29ya1N0dWJzL2lPUy8xNC9CYWNrQm9hcmRTZXJ2aWNlcy5mcmFt
ZXdvcmsvQmFja0JvYXJkU2VydmljZXMudGJkIGIvV2ViS2l0TGlicmFyaWVzL1dlYktpdFByaXZh
dGVGcmFtZXdvcmtTdHVicy9pT1MvMTQvQmFja0JvYXJkU2VydmljZXMuZnJhbWV3b3JrL0JhY2tC
b2FyZFNlcnZpY2VzLnRiZApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAu
LjAwMjM0OGJkM2VlMAotLS0gL2Rldi9udWxsCisrKyBiL1dlYktpdExpYnJhcmllcy9XZWJLaXRQ
cml2YXRlRnJhbWV3b3JrU3R1YnMvaU9TLzE0L0JhY2tCb2FyZFNlcnZpY2VzLmZyYW1ld29yay9C
YWNrQm9hcmRTZXJ2aWNlcy50YmQKQEAgLTAsMCArMSw5IEBACistLS0gIXRhcGktdGJkLXYzCith
cmNoczogICAgICAgICAgIFsgeDg2XzY0LCBhcm02NCwgYXJtNjRlIF0KK2luc3RhbGwtbmFtZTog
ICAgJy9TeXN0ZW0vTGlicmFyeS9Qcml2YXRlRnJhbWV3b3Jrcy9CYWNrQm9hcmRTZXJ2aWNlcy5m
cmFtZXdvcmsvQmFja0JvYXJkU2VydmljZXMnCitvYmpjLWNvbnN0cmFpbnQ6IG5vbmUKK3BsYXRm
b3JtOiBpb3MKK2V4cG9ydHM6CisgIC0gYXJjaHM6ICAgICAgICAgICBbIHg4Nl82NCwgYXJtNjQs
IGFybTY0ZSBdCisgICAgb2JqYy1jbGFzc2VzOiAgICBbIEJLU01vdXNlUG9pbnRlckRldmljZSwg
QktTTW91c2VQb2ludGVyU2VydmljZSBdCisuLi4K
</data>

          </attachment>
      

    </bug>

</bugzilla>