<?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>204720</bug_id>
          
          <creation_ts>2019-11-30 14:31:44 -0800</creation_ts>
          <short_desc>[iOS] Calls to device orientation API should be done in the UI process</short_desc>
          <delta_ts>2019-12-10 17:24:23 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit Misc.</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Per Arne Vollan">pvollan</reporter>
          <assigned_to name="Per Arne Vollan">pvollan</assigned_to>
          <cc>achristensen</cc>
    
    <cc>bfulgham</cc>
    
    <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dbates</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>ggaren</cc>
    
    <cc>kangil.han</cc>
    
    <cc>mkwst</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1594346</commentid>
    <comment_count>0</comment_count>
    <who name="Per Arne Vollan">pvollan</who>
    <bug_when>2019-11-30 14:31:44 -0800</bug_when>
    <thetext>The device orientation API on iOS is communicating with locationd on iOS. Since mach lookup to this daemon will be closed, the calls to this API should be moved from the WebContent process to the UI process.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1594355</commentid>
    <comment_count>1</comment_count>
      <attachid>384552</attachid>
    <who name="Per Arne Vollan">pvollan</who>
    <bug_when>2019-11-30 15:58:00 -0800</bug_when>
    <thetext>Created attachment 384552
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1594360</commentid>
    <comment_count>2</comment_count>
      <attachid>384555</attachid>
    <who name="Per Arne Vollan">pvollan</who>
    <bug_when>2019-11-30 16:16:59 -0800</bug_when>
    <thetext>Created attachment 384555
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1594368</commentid>
    <comment_count>3</comment_count>
      <attachid>384558</attachid>
    <who name="Per Arne Vollan">pvollan</who>
    <bug_when>2019-11-30 16:47:12 -0800</bug_when>
    <thetext>Created attachment 384558
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1594370</commentid>
    <comment_count>4</comment_count>
      <attachid>384559</attachid>
    <who name="Per Arne Vollan">pvollan</who>
    <bug_when>2019-11-30 16:54:11 -0800</bug_when>
    <thetext>Created attachment 384559
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1594372</commentid>
    <comment_count>5</comment_count>
      <attachid>384560</attachid>
    <who name="Per Arne Vollan">pvollan</who>
    <bug_when>2019-11-30 17:01:28 -0800</bug_when>
    <thetext>Created attachment 384560
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1594376</commentid>
    <comment_count>6</comment_count>
      <attachid>384561</attachid>
    <who name="Per Arne Vollan">pvollan</who>
    <bug_when>2019-11-30 17:17:50 -0800</bug_when>
    <thetext>Created attachment 384561
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1594379</commentid>
    <comment_count>7</comment_count>
      <attachid>384562</attachid>
    <who name="Per Arne Vollan">pvollan</who>
    <bug_when>2019-11-30 17:26:12 -0800</bug_when>
    <thetext>Created attachment 384562
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1594380</commentid>
    <comment_count>8</comment_count>
      <attachid>384563</attachid>
    <who name="Per Arne Vollan">pvollan</who>
    <bug_when>2019-11-30 17:37:43 -0800</bug_when>
    <thetext>Created attachment 384563
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1594590</commentid>
    <comment_count>9</comment_count>
      <attachid>384621</attachid>
    <who name="Per Arne Vollan">pvollan</who>
    <bug_when>2019-12-02 07:56:02 -0800</bug_when>
    <thetext>Created attachment 384621
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1594602</commentid>
    <comment_count>10</comment_count>
      <attachid>384625</attachid>
    <who name="Per Arne Vollan">pvollan</who>
    <bug_when>2019-12-02 08:39:39 -0800</bug_when>
    <thetext>Created attachment 384625
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1594633</commentid>
    <comment_count>11</comment_count>
      <attachid>384632</attachid>
    <who name="Per Arne Vollan">pvollan</who>
    <bug_when>2019-12-02 09:24:55 -0800</bug_when>
    <thetext>Created attachment 384632
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1594710</commentid>
    <comment_count>12</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-12-02 11:17:30 -0800</bug_when>
    <thetext>&lt;rdar://problem/57564315&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1594747</commentid>
    <comment_count>13</comment_count>
      <attachid>384632</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-12-02 12:42:32 -0800</bug_when>
    <thetext>Comment on attachment 384632
Patch

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

&gt; Source/WebCore/dom/DeviceOrientationClient.h:50
&gt; +    virtual void setSharedDeviceOrientationClient(RefPtr&lt;SharedDeviceOrientationClient&gt;) { };

RefPtr&lt;&gt;&amp;&amp;

Maybe even Ref&lt;&gt;&amp;&amp; since it does not look like this can ever be called with nullptr.

&gt; Source/WebCore/dom/Document.cpp:617
&gt; +        m_deviceOrientationClient-&gt;setSharedDeviceOrientationClient(page()-&gt;sharedDeviceOrientationClient());

Can we pass page()-&gt;sharedDeviceOrientationClient() when constructing m_deviceOrientationClient?  Why do we need a separate setter?

&gt; Source/WebCore/page/Page.h:727
&gt; +    RefPtr&lt;SharedDeviceOrientationClient&gt; sharedDeviceOrientationClient() const { return m_sharedDeviceOrientationClient; }

I don&apos;t think this should return a RefPtr, you are not transferring ownership.

&gt; Source/WebCore/page/Page.h:1002
&gt; +    RefPtr&lt;SharedDeviceOrientationClient&gt; m_sharedDeviceOrientationClient;

Looks like this can never be null, so why not use Ref&lt;&gt;?

&gt; Source/WebCore/platform/ios/DeviceOrientationClientIOS.h:53
&gt; +    void setSharedDeviceOrientationClient(RefPtr&lt;SharedDeviceOrientationClient&gt; sharedDeviceOrientationClient) override { m_sharedDeviceOrientationClient = sharedDeviceOrientationClient; }

RefPtr&lt;&gt;&amp;&amp; and WTFMove().

&gt; Source/WebCore/platform/ios/SharedDeviceOrientationClient.h:38
&gt; +    SharedDeviceOrientationClient() { }

Should probably be protected, not public, and = default;

&gt; Source/WebCore/platform/ios/SharedDeviceOrientationClient.h:41
&gt; +    virtual void startUpdating(WebCoreMotionManagerClient&amp;) { }

= 0;

&gt; Source/WebCore/platform/ios/SharedDeviceOrientationClient.h:42
&gt; +    virtual void stopUpdating(WebCoreMotionManagerClient&amp;) { }

ditto.

&gt; Source/WebCore/platform/ios/SharedDeviceOrientationClient.h:44
&gt; +    virtual void deviceOrientationChanged(double, double, double, double, double) { }

ditto.

&gt; Source/WebCore/platform/ios/WebCoreMotionManagerClient.h:34
&gt; +    virtual void orientationChanged(double, double, double, double, double) { };

= 0;

&gt; Source/WebKit/UIProcess/WebPageProxy.cpp:524
&gt; +    stopUpdatingDeviceOrientation();

Shouldn&apos;t this be in WebPageProxy::close() instead?

An alternative proposal would be to use a WeakHashSet in the WebCoreMotionManager, so that the clients do not even need to unregister themselves.

&gt; Source/WebKit/UIProcess/WebPageProxy.h:2191
&gt; +    void orientationChanged(double, double, double, double, double) override;

final

&gt; Source/WebKit/UIProcess/WebPageProxy.h:2653
&gt; +    WebCoreMotionManager* m_motionManager { nullptr };

This data member seems useless, why not always use [WebCoreMotionManager sharedManager]?

&gt; Source/WebKit/UIProcess/WebPageProxy.messages.in:590
&gt; +    StartUpdatingDeviceOrientation();

These should probably not be on the page, but rather on an object that lives in the UIProcess.

&gt; Source/WebKit/UIProcess/ios/WebPageProxyIOS.mm:1500
&gt; +    [m_motionManager removeOrientationClient:this];

Shouldn&apos;t we make sure m_motionManager is non-null? just in case? This IPC comes from the Webprocess, which is not trusted. Crashing the UIProcess because the WebProcess sends an unexpected IPC would not be acceptable IMO.

&gt; Source/WebKit/WebProcess/WebCoreSupport/WebSharedDeviceOrientationClient.cpp:49
&gt; +    if (m_clients.isEmpty() &amp;&amp; m_page)

Something is wrong here, you already returned early on the previous line if m_clients.isEmpty(). I think you meant !m_clients.isEmpty(), not m_clients.isEmpty(). Also, given the early return, this should probably simply be:
if (m_page)

&gt; Source/WebKit/WebProcess/WebCoreSupport/WebSharedDeviceOrientationClient.cpp:55
&gt; +    for (auto client : m_clients)

auto*

&gt; Source/WebKit/WebProcess/WebCoreSupport/WebSharedDeviceOrientationClient.cpp:59
&gt; +};

no ;

&gt; Source/WebKit/WebProcess/WebCoreSupport/WebSharedDeviceOrientationClient.h:40
&gt; +    WTF_MAKE_FAST_ALLOCATED;

Not needed, since it subclasses RefCounted.

&gt; Source/WebKit/WebProcess/WebCoreSupport/WebSharedDeviceOrientationClient.h:42
&gt; +    WebSharedDeviceOrientationClient(WebPage&amp; page)

Should be private, with a factory function, since this subclasses RefCounted.

&gt; Source/WebKit/WebProcess/WebCoreSupport/WebSharedDeviceOrientationClient.h:43
&gt; +        : m_page(WTF::makeWeakPtr(page))

WTF:: unnecessary

&gt; Source/WebKit/WebProcess/WebCoreSupport/WebSharedDeviceOrientationClient.h:47
&gt; +    void startUpdating(WebCore::WebCoreMotionManagerClient&amp;) override;

final

&gt; Source/WebKit/WebProcess/WebCoreSupport/WebSharedDeviceOrientationClient.h:48
&gt; +    void stopUpdating(WebCore::WebCoreMotionManagerClient&amp;) override;

final

&gt; Source/WebKit/WebProcess/WebCoreSupport/WebSharedDeviceOrientationClient.h:50
&gt; +    void deviceOrientationChanged(double, double, double, double, double) override;

final

&gt; Source/WebKit/WebProcess/WebCoreSupport/WebSharedDeviceOrientationClient.h:53
&gt; +    WTF::WeakPtr&lt;WebPage&gt; m_page;

WTF:: is unnecessary.

&gt; Source/WebKit/WebProcess/WebPage/WebPage.cpp:510
&gt; +    pageConfiguration.sharedDeviceOrientationClient = new WebSharedDeviceOrientationClient(*this);

I believe the new pattern is to use makeUnique&lt;&gt;() or Foo::create(), not new. See examples above. The ones that still use new are old leftovers. You can have several pages per WebProcess, especially with process caching, why leak this?

&gt; Source/WebKit/WebProcess/WebPage/WebPage.messages.in:588
&gt; +    DeviceOrientationChanged(double alpha, double beta, double gamma, double compassHeading, double compassAccuracy)

It feels like this should be in WebSharedDeviceOrientationClient.messages.in</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1594800</commentid>
    <comment_count>14</comment_count>
    <who name="Per Arne Vollan">pvollan</who>
    <bug_when>2019-12-02 14:43:04 -0800</bug_when>
    <thetext>I will update the patch according to the review comments. Thanks for reviewing!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1595125</commentid>
    <comment_count>15</comment_count>
      <attachid>384737</attachid>
    <who name="Per Arne Vollan">pvollan</who>
    <bug_when>2019-12-03 12:37:55 -0800</bug_when>
    <thetext>Created attachment 384737
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1595128</commentid>
    <comment_count>16</comment_count>
    <who name="Per Arne Vollan">pvollan</who>
    <bug_when>2019-12-03 12:48:29 -0800</bug_when>
    <thetext>(In reply to Chris Dumez from comment #13)
&gt; Comment on attachment 384632 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=384632&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/dom/DeviceOrientationClient.h:50
&gt; &gt; +    virtual void setSharedDeviceOrientationClient(RefPtr&lt;SharedDeviceOrientationClient&gt;) { };
&gt; 
&gt; RefPtr&lt;&gt;&amp;&amp;
&gt; 
&gt; Maybe even Ref&lt;&gt;&amp;&amp; since it does not look like this can ever be called with
&gt; nullptr.
&gt; 
&gt; &gt; Source/WebCore/dom/Document.cpp:617
&gt; &gt; +        m_deviceOrientationClient-&gt;setSharedDeviceOrientationClient(page()-&gt;sharedDeviceOrientationClient());
&gt; 
&gt; Can we pass page()-&gt;sharedDeviceOrientationClient() when constructing
&gt; m_deviceOrientationClient?  Why do we need a separate setter?
&gt; 

Good point, I moved this to the constructor instead. I kept the RefPtr, since it seems to be possible that the Document&apos;s page can be null, when the Document is constructed.

&gt; &gt; Source/WebCore/page/Page.h:727
&gt; &gt; +    RefPtr&lt;SharedDeviceOrientationClient&gt; sharedDeviceOrientationClient() const { return m_sharedDeviceOrientationClient; }
&gt; 
&gt; I don&apos;t think this should return a RefPtr, you are not transferring
&gt; ownership.
&gt; 

Fixed.

&gt; &gt; Source/WebCore/page/Page.h:1002
&gt; &gt; +    RefPtr&lt;SharedDeviceOrientationClient&gt; m_sharedDeviceOrientationClient;
&gt; 
&gt; Looks like this can never be null, so why not use Ref&lt;&gt;?
&gt; 

This will be null in legacy WebKit.

&gt; &gt; Source/WebCore/platform/ios/DeviceOrientationClientIOS.h:53
&gt; &gt; +    void setSharedDeviceOrientationClient(RefPtr&lt;SharedDeviceOrientationClient&gt; sharedDeviceOrientationClient) override { m_sharedDeviceOrientationClient = sharedDeviceOrientationClient; }
&gt; 
&gt; RefPtr&lt;&gt;&amp;&amp; and WTFMove().
&gt; 

Fixed in the constructor of DeviceOrientationClientIOS.

&gt; &gt; Source/WebCore/platform/ios/SharedDeviceOrientationClient.h:38
&gt; &gt; +    SharedDeviceOrientationClient() { }
&gt; 
&gt; Should probably be protected, not public, and = default;
&gt; 

Fixed.

&gt; &gt; Source/WebCore/platform/ios/SharedDeviceOrientationClient.h:41
&gt; &gt; +    virtual void startUpdating(WebCoreMotionManagerClient&amp;) { }
&gt; 
&gt; = 0;
&gt; 
&gt; &gt; Source/WebCore/platform/ios/SharedDeviceOrientationClient.h:42
&gt; &gt; +    virtual void stopUpdating(WebCoreMotionManagerClient&amp;) { }
&gt; 
&gt; ditto.
&gt; 
&gt; &gt; Source/WebCore/platform/ios/SharedDeviceOrientationClient.h:44
&gt; &gt; +    virtual void deviceOrientationChanged(double, double, double, double, double) { }
&gt; 
&gt; ditto.
&gt; 
&gt; &gt; Source/WebCore/platform/ios/WebCoreMotionManagerClient.h:34
&gt; &gt; +    virtual void orientationChanged(double, double, double, double, double) { };
&gt; 
&gt; = 0;
&gt; 

Fixed.

&gt; &gt; Source/WebKit/UIProcess/WebPageProxy.cpp:524
&gt; &gt; +    stopUpdatingDeviceOrientation();
&gt; 
&gt; Shouldn&apos;t this be in WebPageProxy::close() instead?
&gt; 

Fixed.

&gt; An alternative proposal would be to use a WeakHashSet in the
&gt; WebCoreMotionManager, so that the clients do not even need to unregister
&gt; themselves.
&gt; 
&gt; &gt; Source/WebKit/UIProcess/WebPageProxy.h:2191
&gt; &gt; +    void orientationChanged(double, double, double, double, double) override;
&gt; 
&gt; final
&gt; 

Fixed.

&gt; &gt; Source/WebKit/UIProcess/WebPageProxy.h:2653
&gt; &gt; +    WebCoreMotionManager* m_motionManager { nullptr };
&gt; 
&gt; This data member seems useless, why not always use [WebCoreMotionManager
&gt; sharedManager]?
&gt; 

This is to avoid creating a WebCoreMotionManager when it is not needed.

&gt; &gt; Source/WebKit/UIProcess/WebPageProxy.messages.in:590
&gt; &gt; +    StartUpdatingDeviceOrientation();
&gt; 
&gt; These should probably not be on the page, but rather on an object that lives
&gt; in the UIProcess.
&gt; 
&gt; &gt; Source/WebKit/UIProcess/ios/WebPageProxyIOS.mm:1500
&gt; &gt; +    [m_motionManager removeOrientationClient:this];
&gt; 
&gt; Shouldn&apos;t we make sure m_motionManager is non-null? just in case? This IPC
&gt; comes from the Webprocess, which is not trusted. Crashing the UIProcess
&gt; because the WebProcess sends an unexpected IPC would not be acceptable IMO.
&gt; 

Fixed.

&gt; &gt; Source/WebKit/WebProcess/WebCoreSupport/WebSharedDeviceOrientationClient.cpp:49
&gt; &gt; +    if (m_clients.isEmpty() &amp;&amp; m_page)
&gt; 
&gt; Something is wrong here, you already returned early on the previous line if
&gt; m_clients.isEmpty(). I think you meant !m_clients.isEmpty(), not
&gt; m_clients.isEmpty(). Also, given the early return, this should probably
&gt; simply be:
&gt; if (m_page)
&gt; 

Fixed. I forgot to remove the client from the hash set.

&gt; &gt; Source/WebKit/WebProcess/WebCoreSupport/WebSharedDeviceOrientationClient.cpp:55
&gt; &gt; +    for (auto client : m_clients)
&gt; 
&gt; auto*
&gt; 
&gt; &gt; Source/WebKit/WebProcess/WebCoreSupport/WebSharedDeviceOrientationClient.cpp:59
&gt; &gt; +};
&gt; 
&gt; no ;
&gt; 
&gt; &gt; Source/WebKit/WebProcess/WebCoreSupport/WebSharedDeviceOrientationClient.h:40
&gt; &gt; +    WTF_MAKE_FAST_ALLOCATED;
&gt; 
&gt; Not needed, since it subclasses RefCounted.
&gt; 
&gt; &gt; Source/WebKit/WebProcess/WebCoreSupport/WebSharedDeviceOrientationClient.h:42
&gt; &gt; +    WebSharedDeviceOrientationClient(WebPage&amp; page)
&gt; 
&gt; Should be private, with a factory function, since this subclasses RefCounted.
&gt; 

Fixed.

&gt; &gt; Source/WebKit/WebProcess/WebCoreSupport/WebSharedDeviceOrientationClient.h:43
&gt; &gt; +        : m_page(WTF::makeWeakPtr(page))
&gt; 
&gt; WTF:: unnecessary
&gt; 
&gt; &gt; Source/WebKit/WebProcess/WebCoreSupport/WebSharedDeviceOrientationClient.h:47
&gt; &gt; +    void startUpdating(WebCore::WebCoreMotionManagerClient&amp;) override;
&gt; 
&gt; final
&gt; 
&gt; &gt; Source/WebKit/WebProcess/WebCoreSupport/WebSharedDeviceOrientationClient.h:48
&gt; &gt; +    void stopUpdating(WebCore::WebCoreMotionManagerClient&amp;) override;
&gt; 
&gt; final
&gt; 
&gt; &gt; Source/WebKit/WebProcess/WebCoreSupport/WebSharedDeviceOrientationClient.h:50
&gt; &gt; +    void deviceOrientationChanged(double, double, double, double, double) override;
&gt; 
&gt; final
&gt; 
&gt; &gt; Source/WebKit/WebProcess/WebCoreSupport/WebSharedDeviceOrientationClient.h:53
&gt; &gt; +    WTF::WeakPtr&lt;WebPage&gt; m_page;
&gt; 
&gt; WTF:: is unnecessary.
&gt; 

Fixed.

&gt; &gt; Source/WebKit/WebProcess/WebPage/WebPage.cpp:510
&gt; &gt; +    pageConfiguration.sharedDeviceOrientationClient = new WebSharedDeviceOrientationClient(*this);
&gt; 
&gt; I believe the new pattern is to use makeUnique&lt;&gt;() or Foo::create(), not
&gt; new. See examples above. The ones that still use new are old leftovers. You
&gt; can have several pages per WebProcess, especially with process caching, why
&gt; leak this?
&gt; 

Fixed.

&gt; &gt; Source/WebKit/WebProcess/WebPage/WebPage.messages.in:588
&gt; &gt; +    DeviceOrientationChanged(double alpha, double beta, double gamma, double compassHeading, double compassAccuracy)
&gt; 
&gt; It feels like this should be in WebSharedDeviceOrientationClient.messages.in

I kept this on the page for now, since we pass the SharedDeviceOrientationClient in the page configuration when creating the page, relating it to the page concept. Are you OK with that?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1595130</commentid>
    <comment_count>17</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-12-03 12:53:51 -0800</bug_when>
    <thetext>(In reply to Per Arne Vollan from comment #16)
&gt; (In reply to Chris Dumez from comment #13)
&gt; &gt; Comment on attachment 384632 [details]
&gt; &gt; Patch
&gt; &gt; 
&gt; &gt; View in context:
&gt; &gt; https://bugs.webkit.org/attachment.cgi?id=384632&amp;action=review
&gt; &gt; 
&gt; &gt; &gt; Source/WebCore/dom/DeviceOrientationClient.h:50
&gt; &gt; &gt; +    virtual void setSharedDeviceOrientationClient(RefPtr&lt;SharedDeviceOrientationClient&gt;) { };
&gt; &gt; 
&gt; &gt; RefPtr&lt;&gt;&amp;&amp;
&gt; &gt; 
&gt; &gt; Maybe even Ref&lt;&gt;&amp;&amp; since it does not look like this can ever be called with
&gt; &gt; nullptr.
&gt; &gt; 
&gt; &gt; &gt; Source/WebCore/dom/Document.cpp:617
&gt; &gt; &gt; +        m_deviceOrientationClient-&gt;setSharedDeviceOrientationClient(page()-&gt;sharedDeviceOrientationClient());
&gt; &gt; 
&gt; &gt; Can we pass page()-&gt;sharedDeviceOrientationClient() when constructing
&gt; &gt; m_deviceOrientationClient?  Why do we need a separate setter?
&gt; &gt; 
&gt; 
&gt; Good point, I moved this to the constructor instead. I kept the RefPtr,
&gt; since it seems to be possible that the Document&apos;s page can be null, when the
&gt; Document is constructed.
&gt; 
&gt; &gt; &gt; Source/WebCore/page/Page.h:727
&gt; &gt; &gt; +    RefPtr&lt;SharedDeviceOrientationClient&gt; sharedDeviceOrientationClient() const { return m_sharedDeviceOrientationClient; }
&gt; &gt; 
&gt; &gt; I don&apos;t think this should return a RefPtr, you are not transferring
&gt; &gt; ownership.
&gt; &gt; 
&gt; 
&gt; Fixed.
&gt; 
&gt; &gt; &gt; Source/WebCore/page/Page.h:1002
&gt; &gt; &gt; +    RefPtr&lt;SharedDeviceOrientationClient&gt; m_sharedDeviceOrientationClient;
&gt; &gt; 
&gt; &gt; Looks like this can never be null, so why not use Ref&lt;&gt;?
&gt; &gt; 
&gt; 
&gt; This will be null in legacy WebKit.
&gt; 
&gt; &gt; &gt; Source/WebCore/platform/ios/DeviceOrientationClientIOS.h:53
&gt; &gt; &gt; +    void setSharedDeviceOrientationClient(RefPtr&lt;SharedDeviceOrientationClient&gt; sharedDeviceOrientationClient) override { m_sharedDeviceOrientationClient = sharedDeviceOrientationClient; }
&gt; &gt; 
&gt; &gt; RefPtr&lt;&gt;&amp;&amp; and WTFMove().
&gt; &gt; 
&gt; 
&gt; Fixed in the constructor of DeviceOrientationClientIOS.
&gt; 
&gt; &gt; &gt; Source/WebCore/platform/ios/SharedDeviceOrientationClient.h:38
&gt; &gt; &gt; +    SharedDeviceOrientationClient() { }
&gt; &gt; 
&gt; &gt; Should probably be protected, not public, and = default;
&gt; &gt; 
&gt; 
&gt; Fixed.
&gt; 
&gt; &gt; &gt; Source/WebCore/platform/ios/SharedDeviceOrientationClient.h:41
&gt; &gt; &gt; +    virtual void startUpdating(WebCoreMotionManagerClient&amp;) { }
&gt; &gt; 
&gt; &gt; = 0;
&gt; &gt; 
&gt; &gt; &gt; Source/WebCore/platform/ios/SharedDeviceOrientationClient.h:42
&gt; &gt; &gt; +    virtual void stopUpdating(WebCoreMotionManagerClient&amp;) { }
&gt; &gt; 
&gt; &gt; ditto.
&gt; &gt; 
&gt; &gt; &gt; Source/WebCore/platform/ios/SharedDeviceOrientationClient.h:44
&gt; &gt; &gt; +    virtual void deviceOrientationChanged(double, double, double, double, double) { }
&gt; &gt; 
&gt; &gt; ditto.
&gt; &gt; 
&gt; &gt; &gt; Source/WebCore/platform/ios/WebCoreMotionManagerClient.h:34
&gt; &gt; &gt; +    virtual void orientationChanged(double, double, double, double, double) { };
&gt; &gt; 
&gt; &gt; = 0;
&gt; &gt; 
&gt; 
&gt; Fixed.
&gt; 
&gt; &gt; &gt; Source/WebKit/UIProcess/WebPageProxy.cpp:524
&gt; &gt; &gt; +    stopUpdatingDeviceOrientation();
&gt; &gt; 
&gt; &gt; Shouldn&apos;t this be in WebPageProxy::close() instead?
&gt; &gt; 
&gt; 
&gt; Fixed.
&gt; 
&gt; &gt; An alternative proposal would be to use a WeakHashSet in the
&gt; &gt; WebCoreMotionManager, so that the clients do not even need to unregister
&gt; &gt; themselves.
&gt; &gt; 
&gt; &gt; &gt; Source/WebKit/UIProcess/WebPageProxy.h:2191
&gt; &gt; &gt; +    void orientationChanged(double, double, double, double, double) override;
&gt; &gt; 
&gt; &gt; final
&gt; &gt; 
&gt; 
&gt; Fixed.
&gt; 
&gt; &gt; &gt; Source/WebKit/UIProcess/WebPageProxy.h:2653
&gt; &gt; &gt; +    WebCoreMotionManager* m_motionManager { nullptr };
&gt; &gt; 
&gt; &gt; This data member seems useless, why not always use [WebCoreMotionManager
&gt; &gt; sharedManager]?
&gt; &gt; 
&gt; 
&gt; This is to avoid creating a WebCoreMotionManager when it is not needed.

Can you please elaborate? I still don&apos;t see how this data member makes any difference with regards to creating a WebCoreMotionManager.

&gt; 
&gt; &gt; &gt; Source/WebKit/UIProcess/WebPageProxy.messages.in:590
&gt; &gt; &gt; +    StartUpdatingDeviceOrientation();
&gt; &gt; 
&gt; &gt; These should probably not be on the page, but rather on an object that lives
&gt; &gt; in the UIProcess.
&gt; &gt; 
&gt; &gt; &gt; Source/WebKit/UIProcess/ios/WebPageProxyIOS.mm:1500
&gt; &gt; &gt; +    [m_motionManager removeOrientationClient:this];
&gt; &gt; 
&gt; &gt; Shouldn&apos;t we make sure m_motionManager is non-null? just in case? This IPC
&gt; &gt; comes from the Webprocess, which is not trusted. Crashing the UIProcess
&gt; &gt; because the WebProcess sends an unexpected IPC would not be acceptable IMO.
&gt; &gt; 
&gt; 
&gt; Fixed.
&gt; 
&gt; &gt; &gt; Source/WebKit/WebProcess/WebCoreSupport/WebSharedDeviceOrientationClient.cpp:49
&gt; &gt; &gt; +    if (m_clients.isEmpty() &amp;&amp; m_page)
&gt; &gt; 
&gt; &gt; Something is wrong here, you already returned early on the previous line if
&gt; &gt; m_clients.isEmpty(). I think you meant !m_clients.isEmpty(), not
&gt; &gt; m_clients.isEmpty(). Also, given the early return, this should probably
&gt; &gt; simply be:
&gt; &gt; if (m_page)
&gt; &gt; 
&gt; 
&gt; Fixed. I forgot to remove the client from the hash set.
&gt; 
&gt; &gt; &gt; Source/WebKit/WebProcess/WebCoreSupport/WebSharedDeviceOrientationClient.cpp:55
&gt; &gt; &gt; +    for (auto client : m_clients)
&gt; &gt; 
&gt; &gt; auto*
&gt; &gt; 
&gt; &gt; &gt; Source/WebKit/WebProcess/WebCoreSupport/WebSharedDeviceOrientationClient.cpp:59
&gt; &gt; &gt; +};
&gt; &gt; 
&gt; &gt; no ;
&gt; &gt; 
&gt; &gt; &gt; Source/WebKit/WebProcess/WebCoreSupport/WebSharedDeviceOrientationClient.h:40
&gt; &gt; &gt; +    WTF_MAKE_FAST_ALLOCATED;
&gt; &gt; 
&gt; &gt; Not needed, since it subclasses RefCounted.
&gt; &gt; 
&gt; &gt; &gt; Source/WebKit/WebProcess/WebCoreSupport/WebSharedDeviceOrientationClient.h:42
&gt; &gt; &gt; +    WebSharedDeviceOrientationClient(WebPage&amp; page)
&gt; &gt; 
&gt; &gt; Should be private, with a factory function, since this subclasses RefCounted.
&gt; &gt; 
&gt; 
&gt; Fixed.
&gt; 
&gt; &gt; &gt; Source/WebKit/WebProcess/WebCoreSupport/WebSharedDeviceOrientationClient.h:43
&gt; &gt; &gt; +        : m_page(WTF::makeWeakPtr(page))
&gt; &gt; 
&gt; &gt; WTF:: unnecessary
&gt; &gt; 
&gt; &gt; &gt; Source/WebKit/WebProcess/WebCoreSupport/WebSharedDeviceOrientationClient.h:47
&gt; &gt; &gt; +    void startUpdating(WebCore::WebCoreMotionManagerClient&amp;) override;
&gt; &gt; 
&gt; &gt; final
&gt; &gt; 
&gt; &gt; &gt; Source/WebKit/WebProcess/WebCoreSupport/WebSharedDeviceOrientationClient.h:48
&gt; &gt; &gt; +    void stopUpdating(WebCore::WebCoreMotionManagerClient&amp;) override;
&gt; &gt; 
&gt; &gt; final
&gt; &gt; 
&gt; &gt; &gt; Source/WebKit/WebProcess/WebCoreSupport/WebSharedDeviceOrientationClient.h:50
&gt; &gt; &gt; +    void deviceOrientationChanged(double, double, double, double, double) override;
&gt; &gt; 
&gt; &gt; final
&gt; &gt; 
&gt; &gt; &gt; Source/WebKit/WebProcess/WebCoreSupport/WebSharedDeviceOrientationClient.h:53
&gt; &gt; &gt; +    WTF::WeakPtr&lt;WebPage&gt; m_page;
&gt; &gt; 
&gt; &gt; WTF:: is unnecessary.
&gt; &gt; 
&gt; 
&gt; Fixed.
&gt; 
&gt; &gt; &gt; Source/WebKit/WebProcess/WebPage/WebPage.cpp:510
&gt; &gt; &gt; +    pageConfiguration.sharedDeviceOrientationClient = new WebSharedDeviceOrientationClient(*this);
&gt; &gt; 
&gt; &gt; I believe the new pattern is to use makeUnique&lt;&gt;() or Foo::create(), not
&gt; &gt; new. See examples above. The ones that still use new are old leftovers. You
&gt; &gt; can have several pages per WebProcess, especially with process caching, why
&gt; &gt; leak this?
&gt; &gt; 
&gt; 
&gt; Fixed.
&gt; 
&gt; &gt; &gt; Source/WebKit/WebProcess/WebPage/WebPage.messages.in:588
&gt; &gt; &gt; +    DeviceOrientationChanged(double alpha, double beta, double gamma, double compassHeading, double compassAccuracy)
&gt; &gt; 
&gt; &gt; It feels like this should be in WebSharedDeviceOrientationClient.messages.in
&gt; 
&gt; I kept this on the page for now, since we pass the
&gt; SharedDeviceOrientationClient in the page configuration when creating the
&gt; page, relating it to the page concept. Are you OK with that?

No, not really. We should avoid putting all the IPC on the page as much as possible.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1595131</commentid>
    <comment_count>18</comment_count>
      <attachid>384737</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-12-03 12:54:10 -0800</bug_when>
    <thetext>Comment on attachment 384737
Patch

r- while previous review comments are addressed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1595156</commentid>
    <comment_count>19</comment_count>
    <who name="Per Arne Vollan">pvollan</who>
    <bug_when>2019-12-03 13:24:27 -0800</bug_when>
    <thetext>(In reply to Chris Dumez from comment #17)
&gt; (In reply to Per Arne Vollan from comment #16)
&gt; &gt; (In reply to Chris Dumez from comment #13)
&gt; &gt; &gt; Comment on attachment 384632 [details]
&gt; &gt; &gt; Patch
&gt; &gt; &gt; 

&gt; &gt; &gt; &gt; Source/WebKit/WebProcess/WebPage/WebPage.messages.in:588
&gt; &gt; &gt; &gt; +    DeviceOrientationChanged(double alpha, double beta, double gamma, double compassHeading, double compassAccuracy)
&gt; &gt; &gt; 
&gt; &gt; &gt; It feels like this should be in WebSharedDeviceOrientationClient.messages.in
&gt; &gt; 
&gt; &gt; I kept this on the page for now, since we pass the
&gt; &gt; SharedDeviceOrientationClient in the page configuration when creating the
&gt; &gt; page, relating it to the page concept. Are you OK with that?
&gt; 
&gt; No, not really. We should avoid putting all the IPC on the page as much as
&gt; possible.

That makes sense, I will update the patch. Thanks for reviewing!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1595554</commentid>
    <comment_count>20</comment_count>
      <attachid>384833</attachid>
    <who name="Per Arne Vollan">pvollan</who>
    <bug_when>2019-12-04 12:27:02 -0800</bug_when>
    <thetext>Created attachment 384833
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1595561</commentid>
    <comment_count>21</comment_count>
      <attachid>384837</attachid>
    <who name="Per Arne Vollan">pvollan</who>
    <bug_when>2019-12-04 12:57:42 -0800</bug_when>
    <thetext>Created attachment 384837
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1595592</commentid>
    <comment_count>22</comment_count>
      <attachid>384848</attachid>
    <who name="Per Arne Vollan">pvollan</who>
    <bug_when>2019-12-04 14:55:01 -0800</bug_when>
    <thetext>Created attachment 384848
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1595719</commentid>
    <comment_count>23</comment_count>
      <attachid>384848</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2019-12-04 21:59:05 -0800</bug_when>
    <thetext>Comment on attachment 384848
Patch

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

Should there be a sandbox change with this?

&gt; Source/WebCore/platform/ios/DeviceOrientationClientIOS.mm:40
&gt; +    , m_updating(false)

This should be an initializer in the header.  Same with m_motionManager.

&gt; Source/WebCore/platform/ios/SharedDeviceOrientationClient.h:36
&gt; +class SharedDeviceOrientationClient : public RefCounted&lt;SharedDeviceOrientationClient&gt; {

I don&apos;t think SharedDeviceOrientationClient is a good name for this, especially since we already have a DeviceOrientationClient which is something different.  Could this be called &quot;DeviceOrientationUpdateProvider&quot; or something like that?

&gt; Source/WebCore/platform/ios/WebCoreMotionManager.mm:251
&gt; +        Vector&lt;WebCoreMotionManagerClient*&gt; orientationClients;

Could we make these also WeakPtr&apos;s?  There are some objects that destroy other objects during iteration, and even if this isn&apos;t one of those now, there&apos;s no reason to use a raw pointer here.

&gt; Source/WebCore/platform/ios/WebCoreMotionManagerClient.h:34
&gt; +namespace WebCore {
&gt; +
&gt; +class WebCoreMotionManagerClient : public CanMakeWeakPtr&lt;WebCoreMotionManagerClient&gt; {

This is already in the namespace WebCore.  It doesn&apos;t need WebCore in its name.

&gt; Source/WebKit/UIProcess/ios/WebSharedDeviceOrientationClientProxy.mm:57
&gt; +    [[WebCoreMotionManager sharedManager] removeOrientationClient:this];

This class must be more robust.  Upon destruction, if we haven&apos;t received a message from the web process saying to remove this, we should remove this anyways.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1595975</commentid>
    <comment_count>24</comment_count>
      <attachid>384941</attachid>
    <who name="Per Arne Vollan">pvollan</who>
    <bug_when>2019-12-05 13:52:22 -0800</bug_when>
    <thetext>Created attachment 384941
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1595978</commentid>
    <comment_count>25</comment_count>
    <who name="Per Arne Vollan">pvollan</who>
    <bug_when>2019-12-05 13:57:59 -0800</bug_when>
    <thetext>(In reply to Alex Christensen from comment #23)
&gt; Comment on attachment 384848 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=384848&amp;action=review
&gt; 
&gt; Should there be a sandbox change with this?
&gt; 

This will be done in a follow-up patch.

&gt; &gt; Source/WebCore/platform/ios/DeviceOrientationClientIOS.mm:40
&gt; &gt; +    , m_updating(false)
&gt; 
&gt; This should be an initializer in the header.  Same with m_motionManager.
&gt; 

Fixed.

&gt; &gt; Source/WebCore/platform/ios/SharedDeviceOrientationClient.h:36
&gt; &gt; +class SharedDeviceOrientationClient : public RefCounted&lt;SharedDeviceOrientationClient&gt; {
&gt; 
&gt; I don&apos;t think SharedDeviceOrientationClient is a good name for this,
&gt; especially since we already have a DeviceOrientationClient which is
&gt; something different.  Could this be called &quot;DeviceOrientationUpdateProvider&quot;
&gt; or something like that?
&gt; 

Thanks, that is much better!

&gt; &gt; Source/WebCore/platform/ios/WebCoreMotionManager.mm:251
&gt; &gt; +        Vector&lt;WebCoreMotionManagerClient*&gt; orientationClients;
&gt; 
&gt; Could we make these also WeakPtr&apos;s?  There are some objects that destroy
&gt; other objects during iteration, and even if this isn&apos;t one of those now,
&gt; there&apos;s no reason to use a raw pointer here.
&gt; 

Done.

&gt; &gt; Source/WebCore/platform/ios/WebCoreMotionManagerClient.h:34
&gt; &gt; +namespace WebCore {
&gt; &gt; +
&gt; &gt; +class WebCoreMotionManagerClient : public CanMakeWeakPtr&lt;WebCoreMotionManagerClient&gt; {
&gt; 
&gt; This is already in the namespace WebCore.  It doesn&apos;t need WebCore in its
&gt; name.
&gt; 

Fixed.

&gt; &gt; Source/WebKit/UIProcess/ios/WebSharedDeviceOrientationClientProxy.mm:57
&gt; &gt; +    [[WebCoreMotionManager sharedManager] removeOrientationClient:this];
&gt; 
&gt; This class must be more robust.  Upon destruction, if we haven&apos;t received a
&gt; message from the web process saying to remove this, we should remove this
&gt; anyways.

WebCoreMotionManager has a weak set of orientation clients. Would this be sufficient to avoid removing the client in the destructor?

Thanks for reviewing!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1596010</commentid>
    <comment_count>26</comment_count>
      <attachid>384952</attachid>
    <who name="Per Arne Vollan">pvollan</who>
    <bug_when>2019-12-05 14:33:06 -0800</bug_when>
    <thetext>Created attachment 384952
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1596037</commentid>
    <comment_count>27</comment_count>
      <attachid>384965</attachid>
    <who name="Per Arne Vollan">pvollan</who>
    <bug_when>2019-12-05 14:58:55 -0800</bug_when>
    <thetext>Created attachment 384965
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1596367</commentid>
    <comment_count>28</comment_count>
      <attachid>384965</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2019-12-06 14:36:48 -0800</bug_when>
    <thetext>Comment on attachment 384965
Patch

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

&gt; Source/WebCore/platform/ios/WebCoreMotionManager.mm:254
&gt; +            orientationClients.append(makeWeakPtr(&amp;client));

This could be uncheckedAppend.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1596406</commentid>
    <comment_count>29</comment_count>
      <attachid>385051</attachid>
    <who name="Per Arne Vollan">pvollan</who>
    <bug_when>2019-12-06 15:35:40 -0800</bug_when>
    <thetext>Created attachment 385051
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1596422</commentid>
    <comment_count>30</comment_count>
      <attachid>385051</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-12-06 16:19:30 -0800</bug_when>
    <thetext>Comment on attachment 385051
Patch

Clearing flags on attachment: 385051

Committed r253231: &lt;https://trac.webkit.org/changeset/253231&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>384552</attachid>
            <date>2019-11-30 15:58:00 -0800</date>
            <delta_ts>2019-11-30 16:16:58 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-204720-20191130155800.patch</filename>
            <type>text/plain</type>
            <size>46290</size>
            <attacher name="Per Arne Vollan">pvollan</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDI1MjY1MSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQ5IEBACisyMDE5LTExLTMwICBQZXIgQXJu
ZSBWb2xsYW4gIDxwdm9sbGFuQGFwcGxlLmNvbT4KKworICAgICAgICBbaU9TXSBDYWxscyB0byBk
ZXZpY2Ugb3JpZW50YXRpb24gQVBJIHNob3VsZCBiZSBkb25lIGluIHRoZSBVSSBwcm9jZXNzCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDQ3MjAKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGUgZGV2aWNl
IG9yaWVudGF0aW9uIEFQSSBvbiBpT1MgaXMgY29tbXVuaWNhdGluZyB3aXRoIGxvY2F0aW9uZC4g
U2luY2UgbWFjaCBsb29rdXAgdG8gdGhpcyBkYWVtb24KKyAgICAgICAgd2lsbCBiZSBjbG9zZWQs
IHRoZSBjYWxscyB0byB0aGlzIEFQSSBzaG91bGQgYmUgbW92ZWQgZnJvbSB0aGUgV2ViQ29udGVu
dCBwcm9jZXNzIHRvIHRoZSBVSSBwcm9jZXNzLgorICAgICAgICBUaGlzIHBhdGNoIGltcGxlbWVu
dHMgZm9yd2FyZGluZyBvZiB0aGUgZGV2aWNlIG9yaWVudGF0aW9uIHJlcXVlc3RzIHRvIHRoZSBV
SSBwcm9jZXNzIHRocm91Z2ggYSBuZXcKKyAgICAgICAgY2xhc3MsIFNoYXJlZERldmljZU9yaWVu
dGF0aW9uQ2xpZW50LCB3aGljaCBpcyBzdWJjbGFzc2VkIGJ5IFdlYlNoYXJlZERldmljZU9yaWVu
dGF0aW9uQ2xpZW50IGluCisgICAgICAgIG1vZGVybiBXZWJLaXQuIFRoaXMgY2xhc3MgaW1wbGVt
ZW50cyBmb3J3YXJkaW5nIG9mIHRoZSByZXF1ZXN0cyB0byB0aGUgVUkgcHJvY2VzcywgYW5kIHJl
Y2VpdmVzCisgICAgICAgIGRldmljZSBvcmllbnRhdGlvbiB1cGRhdGVzIGZyb20gdGhlIFVJIHBy
b2Nlc3MuIEFuIGluc3RhbmNlIG9mIHRoaXMgY2xhc3Mgd2lsbCBiZSBzaGFyZWQgYnkgYWxsCisg
ICAgICAgIGRldmljZSBvcmllbnRhdGlvbiBjbGllbnRzIG9uIGEgcGFnZSwgYW5kIHBhc3NlZCBh
cyBwYXJ0IG9mIHRoZSBwYWdlIGNvbmZpZ3VyYXRpb24gcGFyYW1ldGVycy4gT24KKyAgICAgICAg
dGhlIFVJIHByb2Nlc3Mgc2lkZSwgdGhlIFdlYiBwYWdlIHByb3h5IGlzIHRha2luZyBjYXJlIG9m
IGNhbGxpbmcgdGhlIGRldmljZSBvcmllbnRhdGlvbiBBUEkgdGhyb3VnaAorICAgICAgICB0aGUg
ZXhpc3RpbmcgV2ViQ29yZU1vdGlvbk1hbmFnZXIgT2JqZWN0aXZlLUMgY2xhc3MuCisKKyAgICAg
ICAgTm8gbmV3IHRlc3RzLCBjb3ZlcmVkIGJ5IGV4aXN0aW5nIHRlc3RzLgorCisgICAgICAgICog
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGRvbS9EZXZpY2VP
cmllbnRhdGlvbkNsaWVudC5oOgorICAgICAgICAoV2ViQ29yZTo6RGV2aWNlT3JpZW50YXRpb25D
bGllbnQ6OnNldFNoYXJlZERldmljZU9yaWVudGF0aW9uQ2xpZW50KToKKyAgICAgICAgKiBkb20v
RG9jdW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6bV91bmRvTWFuYWdlcik6CisgICAgICAg
ICogcGFnZS9QYWdlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Om1fc2hhcmVkRGV2aWNlT3JpZW50
YXRpb25DbGllbnQpOgorICAgICAgICAoV2ViQ29yZTo6bV9hcHBsaWNhdGlvbk1hbmlmZXN0KTog
RGVsZXRlZC4KKyAgICAgICAgKiBwYWdlL1BhZ2UuaDoKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2U6
OnNoYXJlZERldmljZU9yaWVudGF0aW9uQ2xpZW50IGNvbnN0KToKKyAgICAgICAgKiBwYWdlL1Bh
Z2VDb25maWd1cmF0aW9uLmg6CisgICAgICAgICogcGxhdGZvcm0vaW9zL0RldmljZU9yaWVudGF0
aW9uQ2xpZW50SU9TLmg6CisgICAgICAgICogcGxhdGZvcm0vaW9zL0RldmljZU9yaWVudGF0aW9u
Q2xpZW50SU9TLm1tOgorICAgICAgICAoV2ViQ29yZTo6RGV2aWNlT3JpZW50YXRpb25DbGllbnRJ
T1M6OnN0YXJ0VXBkYXRpbmcpOgorICAgICAgICAoV2ViQ29yZTo6RGV2aWNlT3JpZW50YXRpb25D
bGllbnRJT1M6OnN0b3BVcGRhdGluZyk6CisgICAgICAgIChXZWJDb3JlOjpEZXZpY2VPcmllbnRh
dGlvbkNsaWVudElPUzo6ZGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyRGVzdHJveWVkKToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9pb3MvU2hhcmVkRGV2aWNlT3JpZW50YXRpb25DbGllbnQuaDogQWRk
ZWQuCisgICAgICAgIChXZWJDb3JlOjpTaGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudDo6U2hh
cmVkRGV2aWNlT3JpZW50YXRpb25DbGllbnQpOgorICAgICAgICAoV2ViQ29yZTo6U2hhcmVkRGV2
aWNlT3JpZW50YXRpb25DbGllbnQ6On5TaGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudCk6Cisg
ICAgICAgIChXZWJDb3JlOjpTaGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudDo6c3RhcnRVcGRh
dGluZyk6CisgICAgICAgIChXZWJDb3JlOjpTaGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudDo6
c3RvcFVwZGF0aW5nKToKKyAgICAgICAgKFdlYkNvcmU6OlNoYXJlZERldmljZU9yaWVudGF0aW9u
Q2xpZW50OjpkZXZpY2VPcmllbnRhdGlvbkNoYW5nZWQpOgorICAgICAgICAqIHBsYXRmb3JtL2lv
cy9XZWJDb3JlTW90aW9uTWFuYWdlci5oOgorICAgICAgICAqIHBsYXRmb3JtL2lvcy9XZWJDb3Jl
TW90aW9uTWFuYWdlci5tbToKKyAgICAgICAgKC1bV2ViQ29yZU1vdGlvbk1hbmFnZXIgYWRkT3Jp
ZW50YXRpb25DbGllbnQ6XSk6CisgICAgICAgICgtW1dlYkNvcmVNb3Rpb25NYW5hZ2VyIHJlbW92
ZU9yaWVudGF0aW9uQ2xpZW50Ol0pOgorCiAyMDE5LTExLTE5ICBZdXN1a2UgU3V6dWtpICA8eXN1
enVraUBhcHBsZS5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgZm9sbG93LXVwIGFmdGVyIHIy
NTI2NDIKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvago9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oJKHJldmlzaW9uIDI1MjY1MSkKKysrIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkod29ya2luZyBjb3B5KQpAQCAtOTA2LDcgKzkwNiw3
IEBACiAJCTMxMzU5MTBBMUU3RERDNzMwMEYzMDYzMCAvKiBSVENTZHBUeXBlLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzMTM1OTEwNDFFN0REQzYwMDBG
MzA2MzAgLyogUlRDU2RwVHlwZS5oICovOyB9OwogCQkzMTM1OTEwQjFFN0REQzczMDBGMzA2MzAg
LyogUlRDU2lnbmFsaW5nU3RhdGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDMxMzU5MTA1MUU3RERDNjAwMEYzMDYzMCAvKiBSVENTaWduYWxpbmdTdGF0
ZS5oICovOyB9OwogCQkzMTNCQ0UxQzIzNUUzQkU1MDBGQzM5RTUgLyogRWxlbWVudENvbnRleHQu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMxM0JDRTFC
MjM1RTNCREIwMEZDMzlFNSAvKiBFbGVtZW50Q29udGV4dC5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07Ci0JCTMxNDAzNzlCMTI0QkVBN0YwMEFGNDBFNCAv
KiBXZWJDb3JlTW90aW9uTWFuYWdlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gMzE0MDM3OTcxMjRCRUE3RjAwQUY0MEU0IC8qIFdlYkNvcmVNb3Rpb25N
YW5hZ2VyLmggKi87IH07CisJCTMxNDAzNzlCMTI0QkVBN0YwMEFGNDBFNCAvKiBXZWJDb3JlTW90
aW9uTWFuYWdlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gMzE0MDM3OTcxMjRCRUE3RjAwQUY0MEU0IC8qIFdlYkNvcmVNb3Rpb25NYW5hZ2VyLmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMzE0MDM3OUQx
MjRCRUE3RjAwQUY0MEU0IC8qIERldmljZU9yaWVudGF0aW9uQ2xpZW50SU9TLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzMTQwMzc5OTEyNEJFQTdGMDBB
RjQwRTQgLyogRGV2aWNlT3JpZW50YXRpb25DbGllbnRJT1MuaCAqLzsgfTsKIAkJMzE0MEM1MjAx
RkRGMTUxQTAwRDJBODczIC8qIE9mZnNjcmVlbkNhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzE0MEM1MUUxRkRG
MTUxQTAwRDJBODczIC8qIE9mZnNjcmVlbkNhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5oICovOyB9
OwogCQkzMTQwQzUyNDFGREYzMTg3MDBEMkE4NzMgLyogQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJE
QmFzZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzE0
MEM1MjIxRkRGMzE4NjAwRDJBODczIC8qIENhbnZhc1JlbmRlcmluZ0NvbnRleHQyREJhc2UuaCAq
LzsgfTsKQEAgLTE4NjQsNyArMTg2NCw3IEBACiAJCTU5OUU3NTkwMTEwNTVBMUYwMEQ5MDRGQSAv
KiBCcmlkZ2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDU5OUU3NThGMTEwNTVBMUYwMEQ5MDRGQSAvKiBCcmlkZ2UuaCAqLzsgc2V0dGluZ3MgPSB7QVRU
UklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk1OUE4NUVBNDExOUQ2OEVDMDBERUYxRUYg
LyogRGV2aWNlT3JpZW50YXRpb25FdmVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gNTlBODVFQTMxMTlENjhFQzAwREVGMUVGIC8qIERldmljZU9yaWVu
dGF0aW9uRXZlbnQuaCAqLzsgfTsKIAkJNTlBODYwMDgxMTlEQUZBMTAwREVGMUVGIC8qIEpTRGV2
aWNlT3JpZW50YXRpb25FdmVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gNTlBODYwMDcxMTlEQUZBMTAwREVGMUVGIC8qIEpTRGV2aWNlT3JpZW50YXRp
b25FdmVudC5oICovOyB9OwotCQk1OUE4RjFENjExQTY5NTEzMDAxQUMzNEEgLyogRGV2aWNlT3Jp
ZW50YXRpb25Db250cm9sbGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA1OUE4RjFENTExQTY5NTEzMDAxQUMzNEEgLyogRGV2aWNlT3JpZW50YXRpb25D
b250cm9sbGVyLmggKi87IH07CisJCTU5QThGMUQ2MTFBNjk1MTMwMDFBQzM0QSAvKiBEZXZpY2VP
cmllbnRhdGlvbkNvbnRyb2xsZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDU5QThGMUQ1MTFBNjk1MTMwMDFBQzM0QSAvKiBEZXZpY2VPcmllbnRhdGlv
bkNvbnRyb2xsZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OwogCQk1OUE4RjFEODExQTY5NTIwMDAxQUMzNEEgLyogRGV2aWNlT3JpZW50YXRpb25DbGll
bnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU5QThG
MUQ3MTFBNjk1MjAwMDFBQzM0QSAvKiBEZXZpY2VPcmllbnRhdGlvbkNsaWVudC5oICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTU5QjU5Nzc1MTEwODY1
NzkwMDcxNTlFOCAvKiBCcmlkZ2VKU0MuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDU5QjU5Nzc0MTEwODY1NzkwMDcxNTlFOCAvKiBCcmlkZ2VKU0MuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk1OUMyN0Yw
NzEzOEQyOENGMDA3OUI3RTIgLyogTmV0d29ya1Jlc291cmNlc0RhdGEuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU5QzI3RjA2MTM4RDI4Q0YwMDc5QjdF
MiAvKiBOZXR3b3JrUmVzb3VyY2VzRGF0YS5oICovOyB9OwpAQCAtNDc3Niw2ICs0Nzc2LDggQEAK
IAkJRTM1ODAyQjYxREM4NDM1RDAwQTk3NzNDIC8qIERPTUpJVElETFR5cGVGaWx0ZXIuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUzNTgwMkI1MURDODQz
NTgwMEE5NzczQyAvKiBET01KSVRJRExUeXBlRmlsdGVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJRTM3N0ZFNEQxREFERTE2NTAwQ0REMDI1IC8q
IE5vZGVDb25zdGFudHMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEUzRDA0OTkzMURBREMwNDUwMDcxOEYzQyAvKiBOb2RlQ29uc3RhbnRzLmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJRTM3Qzg2NTAxRUI2
M0UzRjAwODdDNkNBIC8qIEpTRE9NUHJvbWlzZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gRTM3Qzg2NEYxRUI2M0UyRDAwODdDNkNBIC8qIEpTRE9NUHJv
bWlzZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJ
CUUzOTYyOEE0MjM4ODkzNUIwMDY1OEVDRCAvKiBTaGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVu
dC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTM5NjI4
QTMyMzg4OTM1QjAwNjU4RUNEIC8qIFNoYXJlZERldmljZU9yaWVudGF0aW9uQ2xpZW50LmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJRTM5NjI4QUMy
MzkxQzgxNzAwNjU4RUNEIC8qIFdlYkNvcmVNb3Rpb25NYW5hZ2VyQ2xpZW50LmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMzk2MjhBQjIzOTFDNEYzMDA2
NThFQ0QgLyogV2ViQ29yZU1vdGlvbk1hbmFnZXJDbGllbnQuaCAqLzsgc2V0dGluZ3MgPSB7QVRU
UklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlFM0E3NzY2NzFEQzg1RDI4MDBCNjkwRDgg
LyogRE9NSklUSURMQ29udmVydC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gRTNBNzc2NjUxREM4NUQyMjAwQjY5MEQ4IC8qIERPTUpJVElETENvbnZlcnQu
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlFM0E3
NzY2ODFEQzg1RDI4MDBCNjkwRDggLyogRE9NSklUSURMVHlwZS5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTNBNzc2NjYxREM4NUQyMjAwQjY5MEQ4IC8q
IERPTUpJVElETFR5cGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OwogCQlFM0IyRjBFRDFEN0Y0Q0EzMDBCMEM5RDEgLyogTG9hZGFibGVTY3JpcHQuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUzQjJGMEU3MUQ3
RjM1RUMwMEIwQzlEMSAvKiBMb2FkYWJsZVNjcmlwdC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJV
VEVTID0gKFByaXZhdGUsICk7IH07IH07CkBAIC0xNTA2MSw2ICsxNTA2Myw4IEBACiAJCUUzODgz
ODk0MUJBRDE0NUYwMEQ2MkVFMyAvKiBTY3JpcHRNb2R1bGVMb2FkZXIuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU2NyaXB0TW9kdWxlTG9hZGVyLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTM4ODM4OTUxQkFEMTQ1RjAwRDYyRUUzIC8qIFNjcmlw
dE1vZHVsZUxvYWRlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTY3JpcHRN
b2R1bGVMb2FkZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTM4RDA2MDkxRjhF
ODExOTAwNjQ5Q0YyIC8qIE1vZHVsZUZldGNoUGFyYW1ldGVycy5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBNb2R1bGVGZXRjaFBhcmFtZXRlcnMuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJRTM5NjI4QTMyMzg4OTM1QjAwNjU4RUNEIC8qIFNoYXJlZERldmljZU9y
aWVudGF0aW9uQ2xpZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNoYXJlZERldmljZU9yaWVudGF0aW9u
Q2xpZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUUzOTYyOEFCMjM5MUM0RjMw
MDY1OEVDRCAvKiBXZWJDb3JlTW90aW9uTWFuYWdlckNsaWVudC5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBX
ZWJDb3JlTW90aW9uTWFuYWdlckNsaWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQlFMzk3NUI3NjFFQzlBRjM5MDA4NDc3MTcgLyogSlNEb2N1bWVudEZyYWdtZW50RE9NSklULmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTRG9jdW1lbnRGcmFnbWVu
dERPTUpJVC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUzOTc1Qjc3MUVDOUFG
MzkwMDg0NzcxNyAvKiBKU0VsZW1lbnRET01KSVQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gSlNFbGVtZW50RE9NSklULmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJRTM5NzVCNzgxRUM5QUYzOTAwODQ3NzE3IC8qIEpTRXZlbnRET01KSVQuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNFdmVudERPTUpJVC5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0yMjc5Nyw2ICsyMjgwMSw3IEBACiAJCQkJRTQ1
MzkwMzQwRUFGRDYzNzAwMzY5NUM4IC8qIFNjcm9sbFZpZXdJT1MubW0gKi8sCiAJCQkJQkVBODA3
QzYwRjcxNEEwMzAwNTI0MTk5IC8qIFNlbGVjdGlvblJlY3QuY3BwICovLAogCQkJCUJFQTgwN0M3
MEY3MTRBMDMwMDUyNDE5OSAvKiBTZWxlY3Rpb25SZWN0LmggKi8sCisJCQkJRTM5NjI4QTMyMzg4
OTM1QjAwNjU4RUNEIC8qIFNoYXJlZERldmljZU9yaWVudGF0aW9uQ2xpZW50LmggKi8sCiAJCQkJ
MEYwM0MwNzMxODg0Njk1RTAwQTVGOENBIC8qIFN5c3RlbU1lbW9yeS5oICovLAogCQkJCUU0NTM5
MEFEMEVBRkY0QjUwMDM2OTVDOCAvKiBTeXN0ZW1NZW1vcnlJT1MuY3BwICovLAogCQkJCTQ0Qzk5
MTlEMEYzRDIxMEUwMDU4NjY3MCAvKiBUaGVtZUlPUy5oICovLApAQCAtMjI4MTMsNiArMjI4MTgs
NyBAQAogCQkJCTFGMzZFQTlCMUUyMUJBMTcwMDYyMUUyNSAvKiBXZWJCYWNrZ3JvdW5kVGFza0Nv
bnRyb2xsZXIubW0gKi8sCiAJCQkJMzE0MDM3OTcxMjRCRUE3RjAwQUY0MEU0IC8qIFdlYkNvcmVN
b3Rpb25NYW5hZ2VyLmggKi8sCiAJCQkJMzE0MDM3OTgxMjRCRUE3RjAwQUY0MEU0IC8qIFdlYkNv
cmVNb3Rpb25NYW5hZ2VyLm1tICovLAorCQkJCUUzOTYyOEFCMjM5MUM0RjMwMDY1OEVDRCAvKiBX
ZWJDb3JlTW90aW9uTWFuYWdlckNsaWVudC5oICovLAogCQkJCUZFMEQ4NEU4MTA0ODQzNDgwMDFB
MTc5RSAvKiBXZWJFdmVudC5oICovLAogCQkJCUZFMEQ4NEVBMTA0ODQzNkUwMDFBMTc5RSAvKiBX
ZWJFdmVudC5tbSAqLywKIAkJCQlGNDgyMjMwRjFFMzg2OUI4MDA2NkZDNzkgLyogV2ViSXRlbVBy
b3ZpZGVyUGFzdGVib2FyZC5oICovLApAQCAtMjkzMTYsNyArMjkzMjIsNiBAQAogCQkJCUFBMjFF
Q0NEMEFCRjBGQzYwMDJCODM0QyAvKiBDU1NDdXJzb3JJbWFnZVZhbHVlLmggaW4gSGVhZGVycyAq
LywKIAkJCQk5NDQ0Q0JFNDFEODg2MTk5MDA3M0EwNzQgLyogQ1NTQ3VzdG9tSWRlbnRWYWx1ZS5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJQkM3NzlFMTQxQkIyMTVCQjAwQ0FBOEJGIC8qIENTU0N1c3Rv
bVByb3BlcnR5VmFsdWUuaCBpbiBIZWFkZXJzICovLAotCQkJCTRBOUNDODE4MTZCQjlBQzYwMEVD
NjQ1QSAvKiBVc2VyQWdlbnRTdHlsZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTQ0NzZCREIxREZD
QUMwMzAwNjkwRTIzIC8qIENTU0RlZmVycmVkUGFyc2VyLmggaW4gSGVhZGVycyAqLywKIAkJCQlG
QkIwQzVCODE3QkJENjI5MDAzRDM2NzcgLyogQ1NTRmlsdGVySW1hZ2VWYWx1ZS5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJQkM2NEI0RDYwQ0I0Mjk4QTAwNUYyQjYyIC8qIENTU0ZvbnRGYWNlLmggaW4g
SGVhZGVycyAqLywKQEAgLTMxMjI0LDcgKzMxMjI5LDYgQEAKIAkJCQlFNDVCQTZBQTIzNzQ5MjZD
MDA0REZDMDcgLyogTWF0Y2hlZERlY2xhcmF0aW9uc0NhY2hlLmggaW4gSGVhZGVycyAqLywKIAkJ
CQlGQUJFNzJGNTEwNTlDMUVCMDBEODg4Q0MgLyogTWF0aE1MQW5ub3RhdGlvbkVsZW1lbnQuaCBp
biBIZWFkZXJzICovLAogCQkJCUZBQkU3MkY1MTA1OUMxRUIwMEQ5OTlERCAvKiBNYXRoTUxFbGVt
ZW50LmggaW4gSGVhZGVycyAqLywKLQkJCQlFNDg2M0NGRTIzODQyRTlFMDA5NzIxNTggLyogUnVs
ZURhdGEuaCBpbiBIZWFkZXJzICovLAogCQkJCTQ0QTI4QUFDMTJERkI4QUMwMEFFOTIzQiAvKiBN
YXRoTUxFbGVtZW50RmFjdG9yeS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEJDRjgzRjcxMDU5QzFF
QjAwRDk5OUREIC8qIE1hdGhNTEZyYWN0aW9uRWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
RkFCRTcyRjkxMDU5QzFFQjAwRDk5OUREIC8qIE1hdGhNTE1hdGhFbGVtZW50LmggaW4gSGVhZGVy
cyAqLywKQEAgLTMxOTczLDYgKzMxOTc3LDcgQEAKIAkJCQkwNzhFMDk0NzE3RDE2RTFDMDA0MjBB
QTEgLyogUlRDVm9pZFJlcXVlc3QuaCBpbiBIZWFkZXJzICovLAogCQkJCTU4MjRBQkEzMUFFODEx
MTYwMDkwNzRCNyAvKiBSdWJ5RWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTgyNEFCQTcx
QUU4MTM4NDAwOTA3NEI3IC8qIFJ1YnlUZXh0RWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCisJCQkJ
RTQ4NjNDRkUyMzg0MkU5RTAwOTcyMTU4IC8qIFJ1bGVEYXRhLmggaW4gSGVhZGVycyAqLywKIAkJ
CQlBNzlCQURBMjE2MUU3RjNGMDBDMkU2NTIgLyogUnVsZUZlYXR1cmUuaCBpbiBIZWFkZXJzICov
LAogCQkJCUE3OUJBREE0MTYxRTdGM0YwMEMyRTY1MiAvKiBSdWxlU2V0LmggaW4gSGVhZGVycyAq
LywKIAkJCQkyRDc2QkI4MjE5NDU2MzI0MDBDRkQyOUEgLyogUnVuTG9vcE9ic2VydmVyLmggaW4g
SGVhZGVycyAqLywKQEAgLTMyMTMwLDYgKzMyMTM1LDcgQEAKIAkJCQlGRDFBRjE1MDE2NTZGMTUx
MDBDNkQ0RjcgLyogU2hhcGVWYWx1ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUQ5RjBGQzEyMTIy
MDI5QjAwNUQ4RkQ0IC8qIFNoYXJlRGF0YS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUE0QTk1NEUw
QjRFRENDQjAwMkQ4QzNDIC8qIFNoYXJlZEJ1ZmZlci5oIGluIEhlYWRlcnMgKi8sCisJCQkJRTM5
NjI4QTQyMzg4OTM1QjAwNjU4RUNEIC8qIFNoYXJlZERldmljZU9yaWVudGF0aW9uQ2xpZW50Lmgg
aW4gSGVhZGVycyAqLywKIAkJCQk4MzRERkFEMDFGN0RBRTVEMDBDMjcyNUIgLyogU2hhcmVkU3Ry
aW5nSGFzaC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTMzMDlFQTMwOTlFQjc4QzAwNTZFNTgxIC8q
IFNoYXJlZFRpbWVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk4MzYyRThDMTIwQ0VGOUNCMDAyNDU4
ODYgLyogU2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkLmggaW4gSGVhZGVycyAqLywKQEAgLTMy
NjQxLDYgKzMyNjQ3LDcgQEAKIAkJCQk4NjgxNjBENjE4NzY2QTEzMDAyMUU3OUQgLyogVXNlckFj
dGl2aXR5LmggaW4gSGVhZGVycyAqLywKIAkJCQlBM0FGOUQ4NjIwMzI2ODYxMDA2Q0FEMDYgLyog
VXNlckFnZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlDREFCNkQzMTE3QzkyNTk1MDBDNjBCMzQg
LyogVXNlckFnZW50U2NyaXB0cy5oIGluIEhlYWRlcnMgKi8sCisJCQkJNEE5Q0M4MTgxNkJCOUFD
NjAwRUM2NDVBIC8qIFVzZXJBZ2VudFN0eWxlLmggaW4gSGVhZGVycyAqLywKIAkJCQk2NTY1ODFC
MjA5RDE0RUU2MDAwRTYxRDcgLyogVXNlckFnZW50U3R5bGVTaGVldHMuaCBpbiBIZWFkZXJzICov
LAogCQkJCTFBRTc5RDQzMTg4REI2MUYwMDIyMzlDMiAvKiBVc2VyQ29udGVudENvbnRyb2xsZXIu
aCBpbiBIZWFkZXJzICovLAogCQkJCTdDM0YwMUMxMUM4RTVBQkEwMEFERDk2MiAvKiBVc2VyQ29u
dGVudFByb3ZpZGVyLmggaW4gSGVhZGVycyAqLywKQEAgLTMyNzQ4LDYgKzMyNzU1LDcgQEAKIAkJ
CQlCQzUzRDkxMTExNDMxMENDMDAwRDgxN0UgLyogV2ViQ29yZUpTQ2xpZW50RGF0YS5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJOTNGMTk5QkIwODI0NUU1OTAwMUU5QUJDIC8qIFdlYkNvcmVLZXlib2Fy
ZFVJTW9kZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMzE0MDM3OUIxMjRCRUE3RjAwQUY0MEU0IC8q
IFdlYkNvcmVNb3Rpb25NYW5hZ2VyLmggaW4gSGVhZGVycyAqLywKKwkJCQlFMzk2MjhBQzIzOTFD
ODE3MDA2NThFQ0QgLyogV2ViQ29yZU1vdGlvbk1hbmFnZXJDbGllbnQuaCBpbiBIZWFkZXJzICov
LAogCQkJCUNEQzk3OUY1MUM0OThDMDkwMERCNTBENCAvKiBXZWJDb3JlTlNFcnJvckV4dHJhcy5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJRjRFNTdFRTEyMTNGNDM0QTAwNEVBOThFIC8qIFdlYkNvcmVO
U0ZvbnRNYW5hZ2VyRXh0cmFzLmggaW4gSGVhZGVycyAqLywKIAkJCQlDNUI0QzI0RDE1MDkyMzZD
MDBBNkVGMzcgLyogV2ViQ29yZU5TVVJMRXh0cmFzLmggaW4gSGVhZGVycyAqLywKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL2RvbS9EZXZpY2VPcmllbnRhdGlvbkNsaWVudC5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL2RvbS9EZXZpY2VPcmllbnRhdGlvbkNsaWVudC5oCShyZXZpc2lvbiAy
NTI2NTEpCisrKyBTb3VyY2UvV2ViQ29yZS9kb20vRGV2aWNlT3JpZW50YXRpb25DbGllbnQuaAko
d29ya2luZyBjb3B5KQpAQCAtMjgsMTIgKzI4LDE0IEBACiAKICNpbmNsdWRlICJEZXZpY2VDbGll
bnQuaCIKICNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUuaD4KKyNpbmNsdWRlIDx3dGYvUmVmUHRy
Lmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgRGV2aWNlT3JpZW50YXRpb25Db250
cm9sbGVyOwogY2xhc3MgRGV2aWNlT3JpZW50YXRpb25EYXRhOwogY2xhc3MgUGFnZTsKK2NsYXNz
IFNoYXJlZERldmljZU9yaWVudGF0aW9uQ2xpZW50OwogCiBjbGFzcyBEZXZpY2VPcmllbnRhdGlv
bkNsaWVudCA6IHB1YmxpYyBEZXZpY2VDbGllbnQgewogICAgIFdURl9NQUtFX05PTkNPUFlBQkxF
KERldmljZU9yaWVudGF0aW9uQ2xpZW50KTsKQEAgLTQzLDYgKzQ1LDggQEAgcHVibGljOgogICAg
IHZpcnR1YWwgdm9pZCBzZXRDb250cm9sbGVyKERldmljZU9yaWVudGF0aW9uQ29udHJvbGxlciop
ID0gMDsKICAgICB2aXJ0dWFsIERldmljZU9yaWVudGF0aW9uRGF0YSogbGFzdE9yaWVudGF0aW9u
KCkgY29uc3QgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBkZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xs
ZXJEZXN0cm95ZWQoKSA9IDA7CisgICAgCisgICAgdmlydHVhbCB2b2lkIHNldFNoYXJlZERldmlj
ZU9yaWVudGF0aW9uQ2xpZW50KFJlZlB0cjxTaGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudD4p
IHsgfTsKIH07CiAKIFdFQkNPUkVfRVhQT1JUIHZvaWQgcHJvdmlkZURldmljZU9yaWVudGF0aW9u
VG8oUGFnZSYsIERldmljZU9yaWVudGF0aW9uQ2xpZW50Jik7CkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9kb20vRG9jdW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1
bWVudC5jcHAJKHJldmlzaW9uIDI1MjY1MSkKKysrIFNvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVu
dC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTYwOCw2ICs2MDgsMTEgQEAgRG9jdW1lbnQ6OkRvY3Vt
ZW50KEZyYW1lKiBmcmFtZSwgY29uc3QgVQogICAgICAgICBub2RlTGlzdEFuZENvbGxlY3Rpb25D
b3VudCA9IDA7CiAKICAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmFkZEV2ZW50TGlzdGVu
ZXJzVG9Ob2RlKCp0aGlzKTsKKyAgICAKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKSAmJiBFTkFC
TEUoREVWSUNFX09SSUVOVEFUSU9OKQorICAgIGlmIChwYWdlKCkgJiYgcGFnZSgpLT5zaGFyZWRE
ZXZpY2VPcmllbnRhdGlvbkNsaWVudCgpKQorICAgICAgICBtX2RldmljZU9yaWVudGF0aW9uQ2xp
ZW50LT5zZXRTaGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudChwYWdlKCktPnNoYXJlZERldmlj
ZU9yaWVudGF0aW9uQ2xpZW50KCkpOworI2VuZGlmCiB9CiAKIFJlZjxEb2N1bWVudD4gRG9jdW1l
bnQ6OmNyZWF0ZShEb2N1bWVudCYgY29udGV4dERvY3VtZW50KQpJbmRleDogU291cmNlL1dlYkNv
cmUvcGFnZS9QYWdlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2Uu
Y3BwCShyZXZpc2lvbiAyNTI2NTEpCisrKyBTb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC00MCw2ICs0MCw3IEBACiAjaW5jbHVkZSAiRE9NUmVjdC5oIgogI2lu
Y2x1ZGUgIkRPTVJlY3RMaXN0LmgiCiAjaW5jbHVkZSAiRGF0YWJhc2VQcm92aWRlci5oIgorI2lu
Y2x1ZGUgIkRldmljZU9yaWVudGF0aW9uQ2xpZW50LmgiCiAjaW5jbHVkZSAiRGlhZ25vc3RpY0xv
Z2dpbmdDbGllbnQuaCIKICNpbmNsdWRlICJEaWFnbm9zdGljTG9nZ2luZ0tleXMuaCIKICNpbmNs
dWRlICJEb2N1bWVudExvYWRlci5oIgpAQCAtMjg5LDYgKzI5MCw5IEBAIFBhZ2U6OlBhZ2UoUGFn
ZUNvbmZpZ3VyYXRpb24mJiBwYWdlQ29uZmkKICNpZiBFTkFCTEUoQVBQTElDQVRJT05fTUFOSUZF
U1QpCiAgICAgLCBtX2FwcGxpY2F0aW9uTWFuaWZlc3QocGFnZUNvbmZpZ3VyYXRpb24uYXBwbGlj
YXRpb25NYW5pZmVzdCkKICNlbmRpZgorI2lmIEVOQUJMRShERVZJQ0VfT1JJRU5UQVRJT04pICYm
IFBMQVRGT1JNKElPU19GQU1JTFkpCisgICAgLCBtX3NoYXJlZERldmljZU9yaWVudGF0aW9uQ2xp
ZW50KFdURk1vdmUocGFnZUNvbmZpZ3VyYXRpb24uc2hhcmVkRGV2aWNlT3JpZW50YXRpb25DbGll
bnQpKQorI2VuZGlmCiB7CiAgICAgdXBkYXRlVGltZXJUaHJvdHRsaW5nU3RhdGUoKTsKIApJbmRl
eDogU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvcGFnZS9QYWdlLmgJKHJldmlzaW9uIDI1MjY1MSkKKysrIFNvdXJjZS9XZWJDb3JlL3BhZ2Uv
UGFnZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0zNSw2ICszNSw3IEBACiAjaW5jbHVkZSAiUmVnaXN0
cmFibGVEb21haW4uaCIKICNpbmNsdWRlICJSZW5kZXJpbmdVcGRhdGVTY2hlZHVsZXIuaCIKICNp
bmNsdWRlICJTY3JvbGxUeXBlcy5oIgorI2luY2x1ZGUgIlNoYXJlZERldmljZU9yaWVudGF0aW9u
Q2xpZW50LmgiCiAjaW5jbHVkZSAiU3VwcGxlbWVudGFibGUuaCIKICNpbmNsdWRlICJUaW1lci5o
IgogI2luY2x1ZGUgIlVzZXJJbnRlcmZhY2VMYXlvdXREaXJlY3Rpb24uaCIKQEAgLTcxOSw2ICs3
MjAsMTAgQEAgcHVibGljOgogCiAgICAgV0VCQ09SRV9FWFBPUlQgVmVjdG9yPFJlZjxFbGVtZW50
Pj4gZWRpdGFibGVFbGVtZW50c0luUmVjdChjb25zdCBGbG9hdFJlY3QmKSBjb25zdDsKIAorI2lm
IEVOQUJMRShERVZJQ0VfT1JJRU5UQVRJT04pICYmIFBMQVRGT1JNKElPU19GQU1JTFkpCisgICAg
UmVmUHRyPFNoYXJlZERldmljZU9yaWVudGF0aW9uQ2xpZW50PiBzaGFyZWREZXZpY2VPcmllbnRh
dGlvbkNsaWVudCgpIGNvbnN0IHsgcmV0dXJuIG1fc2hhcmVkRGV2aWNlT3JpZW50YXRpb25DbGll
bnQ7IH0KKyNlbmRpZgorCiBwcml2YXRlOgogICAgIHN0cnVjdCBOYXZpZ2F0aW9uIHsKICAgICAg
ICAgUmVnaXN0cmFibGVEb21haW4gZG9tYWluOwpAQCAtOTkwLDYgKzk5NSwxMCBAQCBwcml2YXRl
OgogCiAgICAgT3B0aW9uYWw8Vmlld3BvcnRBcmd1bWVudHM+IG1fb3ZlcnJpZGVWaWV3cG9ydEFy
Z3VtZW50czsKIAorI2lmIEVOQUJMRShERVZJQ0VfT1JJRU5UQVRJT04pICYmIFBMQVRGT1JNKElP
U19GQU1JTFkpCisgICAgUmVmUHRyPFNoYXJlZERldmljZU9yaWVudGF0aW9uQ2xpZW50PiBtX3No
YXJlZERldmljZU9yaWVudGF0aW9uQ2xpZW50OworI2VuZGlmCisKICAgICBib29sIG1fc2hvdWxk
RW5hYmxlSUNFQ2FuZGlkYXRlRmlsdGVyaW5nQnlEZWZhdWx0IHsgdHJ1ZSB9OwogICAgIGJvb2wg
bV9tZWRpYVBsYXliYWNrSXNTdXNwZW5kZWQgeyBmYWxzZSB9OwogICAgIGJvb2wgbV9tZWRpYUJ1
ZmZlcmluZ0lzU3VzcGVuZGVkIHsgZmFsc2UgfTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BhZ2Uv
UGFnZUNvbmZpZ3VyYXRpb24uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wYWdlL1Bh
Z2VDb25maWd1cmF0aW9uLmgJKHJldmlzaW9uIDI1MjY1MSkKKysrIFNvdXJjZS9XZWJDb3JlL3Bh
Z2UvUGFnZUNvbmZpZ3VyYXRpb24uaAkod29ya2luZyBjb3B5KQpAQCAtNTcsNiArNTcsNyBAQCBj
bGFzcyBQZXJmb3JtYW5jZUxvZ2dpbmdDbGllbnQ7CiBjbGFzcyBQbHVnSW5DbGllbnQ7CiBjbGFz
cyBQbHVnaW5JbmZvUHJvdmlkZXI7CiBjbGFzcyBQcm9ncmVzc1RyYWNrZXJDbGllbnQ7CitjbGFz
cyBTaGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudDsKIGNsYXNzIFNvY2tldFByb3ZpZGVyOwog
Y2xhc3MgU3RvcmFnZU5hbWVzcGFjZVByb3ZpZGVyOwogY2xhc3MgVXNlckNvbnRlbnRQcm92aWRl
cjsKQEAgLTExOCw2ICsxMTksMTAgQEAgcHVibGljOgogICAgIFJlZlB0cjxTdG9yYWdlTmFtZXNw
YWNlUHJvdmlkZXI+IHN0b3JhZ2VOYW1lc3BhY2VQcm92aWRlcjsKICAgICBSZWZQdHI8VXNlckNv
bnRlbnRQcm92aWRlcj4gdXNlckNvbnRlbnRQcm92aWRlcjsKICAgICBSZWZQdHI8VmlzaXRlZExp
bmtTdG9yZT4gdmlzaXRlZExpbmtTdG9yZTsKKyAgICAKKyNpZiBFTkFCTEUoREVWSUNFX09SSUVO
VEFUSU9OKSAmJiBQTEFURk9STShJT1NfRkFNSUxZKQorICAgIFJlZlB0cjxTaGFyZWREZXZpY2VP
cmllbnRhdGlvbkNsaWVudD4gc2hhcmVkRGV2aWNlT3JpZW50YXRpb25DbGllbnQ7CisjZW5kaWYK
IH07CiAKIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9EZXZpY2VPcmllbnRh
dGlvbkNsaWVudElPUy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lv
cy9EZXZpY2VPcmllbnRhdGlvbkNsaWVudElPUy5oCShyZXZpc2lvbiAyNTI2NTEpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvRGV2aWNlT3JpZW50YXRpb25DbGllbnRJT1MuaAkod29y
a2luZyBjb3B5KQpAQCAtMzAsMTMgKzMwLDE1IEBACiAjaW5jbHVkZSAiRGV2aWNlT3JpZW50YXRp
b25DbGllbnQuaCIKICNpbmNsdWRlICJEZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXIuaCIKICNp
bmNsdWRlICJEZXZpY2VPcmllbnRhdGlvbkRhdGEuaCIKKyNpbmNsdWRlICJTaGFyZWREZXZpY2VP
cmllbnRhdGlvbkNsaWVudC5oIgorI2luY2x1ZGUgIldlYkNvcmVNb3Rpb25NYW5hZ2VyQ2xpZW50
LmgiCiAjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgogCiBPQkpDX0NMQVNTIFdlYkNvcmVNb3Rpb25N
YW5hZ2VyOwogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWNsYXNzIERldmljZU9yaWVudGF0aW9u
Q2xpZW50SU9TIDogcHVibGljIERldmljZU9yaWVudGF0aW9uQ2xpZW50IHsKK2NsYXNzIERldmlj
ZU9yaWVudGF0aW9uQ2xpZW50SU9TIDogcHVibGljIERldmljZU9yaWVudGF0aW9uQ2xpZW50LCBw
dWJsaWMgV2ViQ29yZU1vdGlvbk1hbmFnZXJDbGllbnQgewogcHVibGljOgogICAgIERldmljZU9y
aWVudGF0aW9uQ2xpZW50SU9TKCk7CiAgICAgfkRldmljZU9yaWVudGF0aW9uQ2xpZW50SU9TKCkg
b3ZlcnJpZGU7CkBAIC00NiwxMiArNDgsMTUgQEAgcHVibGljOgogICAgIERldmljZU9yaWVudGF0
aW9uRGF0YSogbGFzdE9yaWVudGF0aW9uKCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgdm9pZCBkZXZp
Y2VPcmllbnRhdGlvbkNvbnRyb2xsZXJEZXN0cm95ZWQoKSBvdmVycmlkZTsKIAotICAgIHZvaWQg
b3JpZW50YXRpb25DaGFuZ2VkKGRvdWJsZSwgZG91YmxlLCBkb3VibGUsIGRvdWJsZSwgZG91Ymxl
KTsKKyAgICB2b2lkIG9yaWVudGF0aW9uQ2hhbmdlZChkb3VibGUsIGRvdWJsZSwgZG91YmxlLCBk
b3VibGUsIGRvdWJsZSkgb3ZlcnJpZGU7CiAKKyAgICB2b2lkIHNldFNoYXJlZERldmljZU9yaWVu
dGF0aW9uQ2xpZW50KFJlZlB0cjxTaGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudD4gc2hhcmVk
RGV2aWNlT3JpZW50YXRpb25DbGllbnQpIG92ZXJyaWRlIHsgbV9zaGFyZWREZXZpY2VPcmllbnRh
dGlvbkNsaWVudCA9IHNoYXJlZERldmljZU9yaWVudGF0aW9uQ2xpZW50OyB9CisgICAgCiBwcml2
YXRlOgogICAgIFdlYkNvcmVNb3Rpb25NYW5hZ2VyKiBtX21vdGlvbk1hbmFnZXI7CiAgICAgRGV2
aWNlT3JpZW50YXRpb25Db250cm9sbGVyKiBtX2NvbnRyb2xsZXI7CiAgICAgUmVmUHRyPERldmlj
ZU9yaWVudGF0aW9uRGF0YT4gbV9jdXJyZW50RGV2aWNlT3JpZW50YXRpb247CisgICAgUmVmUHRy
PFNoYXJlZERldmljZU9yaWVudGF0aW9uQ2xpZW50PiBtX3NoYXJlZERldmljZU9yaWVudGF0aW9u
Q2xpZW50OwogICAgIGJvb2wgbV91cGRhdGluZzsKIH07CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2lvcy9EZXZpY2VPcmllbnRhdGlvbkNsaWVudElPUy5tbQo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvRGV2aWNlT3JpZW50YXRpb25DbGllbnRJT1Mu
bW0JKHJldmlzaW9uIDI1MjY1MSkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9EZXZp
Y2VPcmllbnRhdGlvbkNsaWVudElPUy5tbQkod29ya2luZyBjb3B5KQpAQCAtNTMsNiArNTMsMTEg
QEAgdm9pZCBEZXZpY2VPcmllbnRhdGlvbkNsaWVudElPUzo6c3RhcnRVcAogewogICAgIG1fdXBk
YXRpbmcgPSB0cnVlOwogCisgICAgaWYgKG1fc2hhcmVkRGV2aWNlT3JpZW50YXRpb25DbGllbnQp
IHsKKyAgICAgICAgbV9zaGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudC0+c3RhcnRVcGRhdGlu
ZygqdGhpcyk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKICAgICBpZiAoIW1fbW90aW9uTWFu
YWdlcikKICAgICAgICAgbV9tb3Rpb25NYW5hZ2VyID0gW1dlYkNvcmVNb3Rpb25NYW5hZ2VyIHNo
YXJlZE1hbmFnZXJdOwogCkBAIC02Myw2ICs2OCwxMSBAQCB2b2lkIERldmljZU9yaWVudGF0aW9u
Q2xpZW50SU9TOjpzdG9wVXBkCiB7CiAgICAgbV91cGRhdGluZyA9IGZhbHNlOwogCisgICAgaWYg
KG1fc2hhcmVkRGV2aWNlT3JpZW50YXRpb25DbGllbnQpIHsKKyAgICAgICAgbV9zaGFyZWREZXZp
Y2VPcmllbnRhdGlvbkNsaWVudC0+c3RvcFVwZGF0aW5nKCp0aGlzKTsKKyAgICAgICAgcmV0dXJu
OworICAgIH0KKwogICAgIC8vIFJlbW92ZSBvdXJzZWx2ZXMgYXMgdGhlIG9yaWVudGF0aW9uIGNs
aWVudCBzbyB3ZSB3b24ndCBnZXQgdXBkYXRlcy4KICAgICBbbV9tb3Rpb25NYW5hZ2VyIHJlbW92
ZU9yaWVudGF0aW9uQ2xpZW50OnRoaXNdOwogfQpAQCAtNzQsNiArODQsMTEgQEAgRGV2aWNlT3Jp
ZW50YXRpb25EYXRhKiBEZXZpY2VPcmllbnRhdGlvbgogCiB2b2lkIERldmljZU9yaWVudGF0aW9u
Q2xpZW50SU9TOjpkZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXJEZXN0cm95ZWQoKQogeworICAg
IGlmIChtX3NoYXJlZERldmljZU9yaWVudGF0aW9uQ2xpZW50KSB7CisgICAgICAgIG1fc2hhcmVk
RGV2aWNlT3JpZW50YXRpb25DbGllbnQtPnN0b3BVcGRhdGluZygqdGhpcyk7CisgICAgICAgIHJl
dHVybjsKKyAgICB9CisKICAgICBbbV9tb3Rpb25NYW5hZ2VyIHJlbW92ZU9yaWVudGF0aW9uQ2xp
ZW50OnRoaXNdOwogfQogICAgIApJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1No
YXJlZERldmljZU9yaWVudGF0aW9uQ2xpZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vaW9zL1NoYXJlZERldmljZU9yaWVudGF0aW9uQ2xpZW50LmgJKG5vbmV4aXN0
ZW50KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1NoYXJlZERldmljZU9yaWVudGF0
aW9uQ2xpZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw0OSBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAgKiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMg
YGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUIE9XTkVSIE9S
CisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklU
UzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3By
YWdtYSBvbmNlCisKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKSAmJiBFTkFCTEUoREVWSUNFX09S
SUVOVEFUSU9OKQorCisjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KKworbmFtZXNwYWNlIFdl
YkNvcmUgeworCitjbGFzcyBXZWJDb3JlTW90aW9uTWFuYWdlckNsaWVudDsKKworY2xhc3MgU2hh
cmVkRGV2aWNlT3JpZW50YXRpb25DbGllbnQgOiBwdWJsaWMgUmVmQ291bnRlZDxTaGFyZWREZXZp
Y2VPcmllbnRhdGlvbkNsaWVudD4geworcHVibGljOgorICAgIFNoYXJlZERldmljZU9yaWVudGF0
aW9uQ2xpZW50KCkgeyB9CisgICAgdmlydHVhbCB+U2hhcmVkRGV2aWNlT3JpZW50YXRpb25DbGll
bnQoKSB7IH0KKworICAgIHZpcnR1YWwgdm9pZCBzdGFydFVwZGF0aW5nKFdlYkNvcmVNb3Rpb25N
YW5hZ2VyQ2xpZW50JikgeyB9CisgICAgdmlydHVhbCB2b2lkIHN0b3BVcGRhdGluZyhXZWJDb3Jl
TW90aW9uTWFuYWdlckNsaWVudCYpIHsgfQorCisgICAgdmlydHVhbCB2b2lkIGRldmljZU9yaWVu
dGF0aW9uQ2hhbmdlZChkb3VibGUsIGRvdWJsZSwgZG91YmxlLCBkb3VibGUsIGRvdWJsZSkgeyB9
Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBQTEFURk9STShJT1Nf
RkFNSUxZKSAmJiBFTkFCTEUoREVWSUNFX09SSUVOVEFUSU9OKQpJbmRleDogU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vaW9zL1dlYkNvcmVNb3Rpb25NYW5hZ2VyLmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dlYkNvcmVNb3Rpb25NYW5hZ2VyLmgJKHJldmlzaW9u
IDI1MjY1MSkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJDb3JlTW90aW9uTWFu
YWdlci5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNSw4ICsyNSw2IEBACiAKICNwcmFnbWEgb25jZQog
Ci0jaW1wb3J0ICJEZXZpY2VNb3Rpb25DbGllbnRJT1MuaCIKLSNpbXBvcnQgIkRldmljZU9yaWVu
dGF0aW9uQ2xpZW50SU9TLmgiCiAjaW1wb3J0IDxDb3JlTG9jYXRpb24vQ29yZUxvY2F0aW9uLmg+
CiAjaW1wb3J0IDx3dGYvSGFzaENvdW50ZWRTZXQuaD4KIApAQCAtMzYsMTEgKzM0LDE2IEBACiAK
IGNvbnN0IGZsb2F0IGtNb3Rpb25VcGRhdGVJbnRlcnZhbCA9IDEuMGYgLyA2MC4wZjsKIAotQGlu
dGVyZmFjZSBXZWJDb3JlTW90aW9uTWFuYWdlciA6IE5TT2JqZWN0IHsKK25hbWVzcGFjZSBXZWJD
b3JlIHsKK2NsYXNzIERldmljZU1vdGlvbkNsaWVudElPUzsKK2NsYXNzIFdlYkNvcmVNb3Rpb25N
YW5hZ2VyQ2xpZW50OworfTsKKworV0VCQ09SRV9FWFBPUlQgQGludGVyZmFjZSBXZWJDb3JlTW90
aW9uTWFuYWdlciA6IE5TT2JqZWN0IHsKICAgICBDTU1vdGlvbk1hbmFnZXIqIG1fbW90aW9uTWFu
YWdlcjsKICAgICBDTExvY2F0aW9uTWFuYWdlciogbV9sb2NhdGlvbk1hbmFnZXI7CiAgICAgSGFz
aFNldDxXZWJDb3JlOjpEZXZpY2VNb3Rpb25DbGllbnRJT1MqPiBtX2RldmljZU1vdGlvbkNsaWVu
dHM7Ci0gICAgSGFzaFNldDxXZWJDb3JlOjpEZXZpY2VPcmllbnRhdGlvbkNsaWVudElPUyo+IG1f
ZGV2aWNlT3JpZW50YXRpb25DbGllbnRzOworICAgIEhhc2hTZXQ8V2ViQ29yZTo6V2ViQ29yZU1v
dGlvbk1hbmFnZXJDbGllbnQqPiBtX2RldmljZU9yaWVudGF0aW9uQ2xpZW50czsKICAgICBOU1Rp
bWVyKiBtX3VwZGF0ZVRpbWVyOwogICAgIEJPT0wgbV9neXJvQXZhaWxhYmxlOwogICAgIEJPT0wg
bV9oZWFkaW5nQXZhaWxhYmxlOwpAQCAtNTAsOCArNTMsOCBAQCBjb25zdCBmbG9hdCBrTW90aW9u
VXBkYXRlSW50ZXJ2YWwgPSAxLjBmCiArIChXZWJDb3JlTW90aW9uTWFuYWdlciAqKXNoYXJlZE1h
bmFnZXI7CiAtICh2b2lkKWFkZE1vdGlvbkNsaWVudDooV2ViQ29yZTo6RGV2aWNlTW90aW9uQ2xp
ZW50SU9TICopY2xpZW50OwogLSAodm9pZClyZW1vdmVNb3Rpb25DbGllbnQ6KFdlYkNvcmU6OkRl
dmljZU1vdGlvbkNsaWVudElPUyAqKWNsaWVudDsKLS0gKHZvaWQpYWRkT3JpZW50YXRpb25DbGll
bnQ6KFdlYkNvcmU6OkRldmljZU9yaWVudGF0aW9uQ2xpZW50SU9TICopY2xpZW50OwotLSAodm9p
ZClyZW1vdmVPcmllbnRhdGlvbkNsaWVudDooV2ViQ29yZTo6RGV2aWNlT3JpZW50YXRpb25DbGll
bnRJT1MgKiljbGllbnQ7CistICh2b2lkKWFkZE9yaWVudGF0aW9uQ2xpZW50OihXZWJDb3JlOjpX
ZWJDb3JlTW90aW9uTWFuYWdlckNsaWVudCAqKWNsaWVudDsKKy0gKHZvaWQpcmVtb3ZlT3JpZW50
YXRpb25DbGllbnQ6KFdlYkNvcmU6OldlYkNvcmVNb3Rpb25NYW5hZ2VyQ2xpZW50ICopY2xpZW50
OwogLSAoQk9PTClneXJvQXZhaWxhYmxlOwogLSAoQk9PTCloZWFkaW5nQXZhaWxhYmxlOwogQGVu
ZApJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dlYkNvcmVNb3Rpb25NYW5hZ2Vy
Lm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJDb3JlTW90
aW9uTWFuYWdlci5tbQkocmV2aXNpb24gMjUyNjUxKQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vaW9zL1dlYkNvcmVNb3Rpb25NYW5hZ2VyLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0yOCw2ICsy
OCw4IEBACiAKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKSAmJiBFTkFCTEUoREVWSUNFX09SSUVO
VEFUSU9OKQogCisjaW1wb3J0ICJEZXZpY2VNb3Rpb25DbGllbnRJT1MuaCIKKyNpbXBvcnQgIldl
YkNvcmVNb3Rpb25NYW5hZ2VyQ2xpZW50LmgiCiAjaW1wb3J0ICJXZWJDb3JlT2JqQ0V4dHJhcy5o
IgogI2ltcG9ydCAiV2ViQ29yZVRocmVhZFJ1bi5oIgogI2ltcG9ydCA8Q29yZUxvY2F0aW9uL0Nv
cmVMb2NhdGlvbi5oPgpAQCAtMTEyLDE0ICsxMTQsMTQgQEAgLSAodm9pZClyZW1vdmVNb3Rpb25D
bGllbnQ6KFdlYkNvcmU6OkRldgogICAgICAgICBbc2VsZiBjaGVja0NsaWVudFN0YXR1c107CiB9
CiAKLS0gKHZvaWQpYWRkT3JpZW50YXRpb25DbGllbnQ6KFdlYkNvcmU6OkRldmljZU9yaWVudGF0
aW9uQ2xpZW50SU9TICopY2xpZW50CistICh2b2lkKWFkZE9yaWVudGF0aW9uQ2xpZW50OihXZWJD
b3JlOjpXZWJDb3JlTW90aW9uTWFuYWdlckNsaWVudCAqKWNsaWVudAogewogICAgIG1fZGV2aWNl
T3JpZW50YXRpb25DbGllbnRzLmFkZChjbGllbnQpOwogICAgIGlmIChtX2luaXRpYWxpemVkKQog
ICAgICAgICBbc2VsZiBjaGVja0NsaWVudFN0YXR1c107CiB9CiAKLS0gKHZvaWQpcmVtb3ZlT3Jp
ZW50YXRpb25DbGllbnQ6KFdlYkNvcmU6OkRldmljZU9yaWVudGF0aW9uQ2xpZW50SU9TICopY2xp
ZW50CistICh2b2lkKXJlbW92ZU9yaWVudGF0aW9uQ2xpZW50OihXZWJDb3JlOjpXZWJDb3JlTW90
aW9uTWFuYWdlckNsaWVudCAqKWNsaWVudAogewogICAgIG1fZGV2aWNlT3JpZW50YXRpb25DbGll
bnRzLnJlbW92ZShjbGllbnQpOwogICAgIGlmIChtX2luaXRpYWxpemVkKQpJbmRleDogU291cmNl
L1dlYktpdC9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9DaGFuZ2VMb2cJ
KHJldmlzaW9uIDI1Mjk2MSkKKysrIFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCSh3b3JraW5nIGNv
cHkpCkBAIC0xLDMgKzEsMzMgQEAKKzIwMTktMTEtMzAgIFBlciBBcm5lIFZvbGxhbiAgPHB2b2xs
YW5AYXBwbGUuY29tPgorCisgICAgICAgIFtpT1NdIENhbGxzIHRvIGRldmljZSBvcmllbnRhdGlv
biBBUEkgc2hvdWxkIGJlIGRvbmUgaW4gdGhlIFVJIHByb2Nlc3MKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNDcyMAorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBXZWIgcGFnZSBwcm94eSBtZXNzYWdl
cyB0byBzdGFydCBhbmQgc3RvcCB1cGRhdGluZyBkZXZpY2Ugb3JpZW50YXRpb24gaW4gdGhlIFVJ
IHByb2Nlc3MuIEFsc28sIGFkZCBhIG1lc3NhZ2UgdG8KKyAgICAgICAgdGhlIFdlYiBwYWdlIHRv
IHVwZGF0ZSB0aGUgZGV2aWNlIG9yaWVudGF0aW9uIGluIHRoZSBXZWJDb250ZW50IHByb2Nlc3Mu
IEluIHRoZSBVSSBwcm9jZXNzLCB0aGUgZGV2aWNlIG9yaWVudGF0aW9uIEFQSQorICAgICAgICBp
cyBjYWxsZWQgdGhyb3VnaCB0aGUgYWxyZWFkeSBleGlzdGluZyBXZWJDb3JlTW90aW9uTWFuYWdl
ciBjbGFzcy4KKworICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaDoKKyAgICAgICAg
KiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluOgorICAgICAgICAqIFVJUHJvY2Vz
cy9pb3MvV2ViUGFnZVByb3h5SU9TLm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6
OnN0YXJ0VXBkYXRpbmdEZXZpY2VPcmllbnRhdGlvbik6CisgICAgICAgIChXZWJLaXQ6OldlYlBh
Z2VQcm94eTo6c3RvcFVwZGF0aW5nRGV2aWNlT3JpZW50YXRpb24pOgorICAgICAgICAoV2ViS2l0
OjpXZWJQYWdlUHJveHk6Om9yaWVudGF0aW9uQ2hhbmdlZCk6CisgICAgICAgICogV2ViS2l0Lnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC9XZWJTaGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudC5jcHA6IEFkZGVkLgorICAgICAg
ICAoV2ViS2l0OjpXZWJTaGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudDo6c3RhcnRVcGRhdGlu
Zyk6CisgICAgICAgIChXZWJLaXQ6OldlYlNoYXJlZERldmljZU9yaWVudGF0aW9uQ2xpZW50Ojpz
dG9wVXBkYXRpbmcpOgorICAgICAgICAoV2ViS2l0OjpXZWJTaGFyZWREZXZpY2VPcmllbnRhdGlv
bkNsaWVudDo6ZGV2aWNlT3JpZW50YXRpb25DaGFuZ2VkKToKKyAgICAgICAgKiBXZWJQcm9jZXNz
L1dlYkNvcmVTdXBwb3J0L1dlYlNoYXJlZERldmljZU9yaWVudGF0aW9uQ2xpZW50Lmg6IEFkZGVk
LgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcDoKKyAgICAgICAgKFdl
YktpdDo6bV9vdmVycmlkZGVuTWVkaWFUeXBlKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBh
Z2UvV2ViUGFnZS5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3Nh
Z2VzLmluOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbToK
KyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6ZGV2aWNlT3JpZW50YXRpb25DaGFuZ2VkKToKKwog
MjAxOS0xMS0yNyAgQW50b2luZSBRdWludCAgPGdyYW91dHNAYXBwbGUuY29tPgogCiAgICAgICAg
IFtXZWIgQW5pbWF0aW9uc10gRW5hYmxlIFdlYkFuaW1hdGlvbnNDU1NJbnRlZ3JhdGlvbkVuYWJs
ZWQgYnkgZGVmYXVsdApJbmRleDogU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgJ
KHJldmlzaW9uIDI1MjY1MSkKKysrIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94
eS5oCSh3b3JraW5nIGNvcHkpCkBAIC0xNDksNiArMTQ5LDEwIEBAIE9CSkNfQ0xBU1MgX1dLUmVt
b3RlT2JqZWN0UmVnaXN0cnk7CiAjaW5jbHVkZSAiU09BdXRob3JpemF0aW9uTG9hZFBvbGljeS5o
IgogI2VuZGlmCiAKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKSAmJiBFTkFCTEUoREVWSUNFX09S
SUVOVEFUSU9OKQorI2luY2x1ZGUgPFdlYkNvcmUvV2ViQ29yZU1vdGlvbk1hbmFnZXJDbGllbnQu
aD4KKyNlbmRpZgorCiAjaWYgRU5BQkxFKE1FRElBX1NFU1NJT04pCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiBjbGFzcyBNZWRpYVNlc3Npb25NZXRhZGF0YTsKQEAgLTE1OSw2ICsxNjMsMTAgQEAgY2xh
c3MgTWVkaWFTZXNzaW9uTWV0YWRhdGE7CiBpbnRlcmZhY2UgSUQzRDExRGV2aWNlMTsKICNlbmRp
ZgogCisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkgJiYgRU5BQkxFKERFVklDRV9PUklFTlRBVElP
TikKK09CSkNfQ0xBU1MgV2ViQ29yZU1vdGlvbk1hbmFnZXI7CisjZW5kaWYKKwogbmFtZXNwYWNl
IEFQSSB7CiBjbGFzcyBBdHRhY2htZW50OwogY2xhc3MgQ29udGV4dE1lbnVDbGllbnQ7CkBAIC00
MTAsNiArNDE4LDkgQEAgY2xhc3MgV2ViUGFnZVByb3h5IDogcHVibGljIEFQSTo6T2JqZWN0SQog
ICAgICwgcHVibGljIFdlYkNvcmU6OlBsYXRmb3JtU3BlZWNoU3ludGhlc2lzVXR0ZXJhbmNlQ2xp
ZW50CiAgICAgLCBwdWJsaWMgV2ViQ29yZTo6UGxhdGZvcm1TcGVlY2hTeW50aGVzaXplckNsaWVu
dAogI2VuZGlmCisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkgJiYgRU5BQkxFKERFVklDRV9PUklF
TlRBVElPTikKKyAgICAsIHB1YmxpYyBXZWJDb3JlOjpXZWJDb3JlTW90aW9uTWFuYWdlckNsaWVu
dAorI2VuZGlmCiAgICAgLCBwdWJsaWMgQ2FuTWFrZVdlYWtQdHI8V2ViUGFnZVByb3h5PiB7CiBw
dWJsaWM6CiAgICAgc3RhdGljIFJlZjxXZWJQYWdlUHJveHk+IGNyZWF0ZShQYWdlQ2xpZW50Jiwg
V2ViUHJvY2Vzc1Byb3h5JiwgUmVmPEFQSTo6UGFnZUNvbmZpZ3VyYXRpb24+JiYpOwpAQCAtMTYy
NCw2ICsxNjM1LDExIEBAIHB1YmxpYzoKICAgICBjb25zdCBTdHJpbmcmIG92ZXJyaWRkZW5NZWRp
YVR5cGUoKSBjb25zdCB7IHJldHVybiBtX292ZXJyaWRkZW5NZWRpYVR5cGU7IH0KICAgICB2b2lk
IHNldE92ZXJyaWRkZW5NZWRpYVR5cGUoY29uc3QgU3RyaW5nJik7CiAKKyNpZiBQTEFURk9STShJ
T1NfRkFNSUxZKSAmJiBFTkFCTEUoREVWSUNFX09SSUVOVEFUSU9OKQorICAgIHZvaWQgc3RhcnRV
cGRhdGluZ0RldmljZU9yaWVudGF0aW9uKCk7CisgICAgdm9pZCBzdG9wVXBkYXRpbmdEZXZpY2VP
cmllbnRhdGlvbigpOworI2VuZGlmCisKIHByaXZhdGU6CiAgICAgV2ViUGFnZVByb3h5KFBhZ2VD
bGllbnQmLCBXZWJQcm9jZXNzUHJveHkmLCBSZWY8QVBJOjpQYWdlQ29uZmlndXJhdGlvbj4mJik7
CiAgICAgdm9pZCBwbGF0Zm9ybUluaXRpYWxpemUoKTsKQEAgLTIxNjcsNiArMjE4MywxMSBAQCBw
cml2YXRlOgogICAgIHZvaWQgcmVzZXRTcGVlY2hTeW50aGVzaXplcigpOwogI2VuZGlmCiAKKyNp
ZiBQTEFURk9STShJT1NfRkFNSUxZKSAmJiBFTkFCTEUoREVWSUNFX09SSUVOVEFUSU9OKQorICAg
IC8vIFdlYkNvcmU6OldlYkNvcmVNb3Rpb25NYW5hZ2VyQ2xpZW50CisgICAgdm9pZCBvcmllbnRh
dGlvbkNoYW5nZWQoZG91YmxlLCBkb3VibGUsIGRvdWJsZSwgZG91YmxlLCBkb3VibGUpIG92ZXJy
aWRlOworI2VuZGlmCisKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQogICAgIHN0YXRpYyBib29s
IGlzSW5IYXJkd2FyZUtleWJvYXJkTW9kZSgpOwogI2VuZGlmCkBAIC0yNjIyLDYgKzI2NDMsMTAg
QEAgcHJpdmF0ZToKICAgICBib29sIG1faXNRdW90YUluY3JlYXNlRGVuaWVkIHsgZmFsc2UgfTsK
ICAgICAKICAgICBTdHJpbmcgbV9vdmVycmlkZGVuTWVkaWFUeXBlOworCisjaWYgUExBVEZPUk0o
SU9TX0ZBTUlMWSkgJiYgRU5BQkxFKERFVklDRV9PUklFTlRBVElPTikKKyAgICBXZWJDb3JlTW90
aW9uTWFuYWdlciogbV9tb3Rpb25NYW5hZ2VyIHsgbnVsbHB0ciB9OworI2VuZGlmCiB9OwogCiB9
IC8vIG5hbWVzcGFjZSBXZWJLaXQKSW5kZXg6IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBh
Z2VQcm94eS5tZXNzYWdlcy5pbgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4JKHJldmlzaW9uIDI1MjY1MSkKKysrIFNvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbgkod29ya2luZyBjb3B5KQpA
QCAtNTg2LDQgKzU4Niw5IEBAIG1lc3NhZ2VzIC0+IFdlYlBhZ2VQcm94eSB7CiAKICAgICBEaWRG
aW5kVGV4dE1hbmlwdWxhdGlvbkl0ZW0oV2ViQ29yZTo6VGV4dE1hbmlwdWxhdGlvbkNvbnRyb2xs
ZXI6Okl0ZW1JZGVudGlmaWVyIGl0ZW1JRCwgVmVjdG9yPFdlYkNvcmU6OlRleHRNYW5pcHVsYXRp
b25Db250cm9sbGVyOjpNYW5pcHVsYXRpb25Ub2tlbj4gdG9rZW5zKQogCisjaWYgUExBVEZPUk0o
SU9TX0ZBTUlMWSkgJiYgRU5BQkxFKERFVklDRV9PUklFTlRBVElPTikKKyAgICBTdGFydFVwZGF0
aW5nRGV2aWNlT3JpZW50YXRpb24oKTsKKyAgICBTdG9wVXBkYXRpbmdEZXZpY2VPcmllbnRhdGlv
bigpOworI2VuZGlmCisKIH0KSW5kZXg6IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XZWJQ
YWdlUHJveHlJT1MubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9z
L1dlYlBhZ2VQcm94eUlPUy5tbQkocmV2aXNpb24gMjUyNjUxKQorKysgU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvaW9zL1dlYlBhZ2VQcm94eUlPUy5tbQkod29ya2luZyBjb3B5KQpAQCAtNzUsNiAr
NzUsMTAgQEAKICNpbXBvcnQgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogI2VuZGlmCiAKKyNpZiBF
TkFCTEUoREVWSUNFX09SSUVOVEFUSU9OKQorI2ltcG9ydCA8V2ViQ29yZS9XZWJDb3JlTW90aW9u
TWFuYWdlci5oPgorI2VuZGlmCisKICNkZWZpbmUgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRChjaGFu
bmVsLCBmbXQsIC4uLikgUkVMRUFTRV9MT0dfSUYoaXNBbHdheXNPbkxvZ2dpbmdBbGxvd2VkKCks
IGNoYW5uZWwsICIlcCAtIFtwYWdlUHJveHlJRD0lbGx1LCB3ZWJQYWdlSUQ9JWxsdSwgUElEPSVp
XSBXZWJQYWdlUHJveHk6OiIgZm10LCB0aGlzLCBtX2lkZW50aWZpZXIudG9VSW50NjQoKSwgbV93
ZWJQYWdlSUQudG9VSW50NjQoKSwgbV9wcm9jZXNzLT5wcm9jZXNzSWRlbnRpZmllcigpLCAjI19f
VkFfQVJHU19fKQogCiBuYW1lc3BhY2UgV2ViS2l0IHsKQEAgLTE0ODMsNiArMTQ4NywyNiBAQCBX
ZWJDb250ZW50TW9kZSBXZWJQYWdlUHJveHk6OmVmZmVjdGl2ZUNvCiAgICAgcmV0dXJuIFdlYkNv
bnRlbnRNb2RlOjpEZXNrdG9wOwogfQogCisjaWYgRU5BQkxFKERFVklDRV9PUklFTlRBVElPTikK
K3ZvaWQgV2ViUGFnZVByb3h5OjpzdGFydFVwZGF0aW5nRGV2aWNlT3JpZW50YXRpb24oKQorewor
ICAgIGlmICghbV9tb3Rpb25NYW5hZ2VyKQorICAgICAgICBtX21vdGlvbk1hbmFnZXIgPSBbV2Vi
Q29yZU1vdGlvbk1hbmFnZXIgc2hhcmVkTWFuYWdlcl07CisgICAgW21fbW90aW9uTWFuYWdlciBh
ZGRPcmllbnRhdGlvbkNsaWVudDp0aGlzXTsKK30KKwordm9pZCBXZWJQYWdlUHJveHk6OnN0b3BV
cGRhdGluZ0RldmljZU9yaWVudGF0aW9uKCkKK3sKKyAgICBbbV9tb3Rpb25NYW5hZ2VyIHJlbW92
ZU9yaWVudGF0aW9uQ2xpZW50OnRoaXNdOworfQorCit2b2lkIFdlYlBhZ2VQcm94eTo6b3JpZW50
YXRpb25DaGFuZ2VkKGRvdWJsZSBhbHBoYSwgZG91YmxlIGJldGEsIGRvdWJsZSBnYW1tYSwgZG91
YmxlIGNvbXBhc3NIZWFkaW5nLCBkb3VibGUgY29tcGFzc0FjY3VyYWN5KQoreworICAgIHNlbmQo
TWVzc2FnZXM6OldlYlBhZ2U6OkRldmljZU9yaWVudGF0aW9uQ2hhbmdlZChhbHBoYSwgYmV0YSwg
Z2FtbWEsIGNvbXBhc3NIZWFkaW5nLCBjb21wYXNzQWNjdXJhY3kpLCAwKTsKK30KKyNlbmRpZgor
CisKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAogCiAjdW5kZWYgUkVMRUFTRV9MT0dfSUZfQUxMT1dF
RApJbmRleDogU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvago9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCShyZXZpc2lvbiAyNTI2NTEpCisrKyBTb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCSh3b3JraW5nIGNvcHkpCkBAIC0xNjg4LDYgKzE2ODgsNyBAQAogCQlF
MUQyNkE1MzE3NTk2NEQ5MDA5NUJGRDEgLyogV2ViQ29udGVudFByb2Nlc3MueGliIGluIFJlc291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMUQyNkE0QzE3NTk2MzRF
MDA5NUJGRDEgLyogV2ViQ29udGVudFByb2Nlc3MueGliICovOyB9OwogCQlFMUU1NTJDNTE2QUUw
NjVGMDA0RUQ2NTMgLyogU2FuZGJveEluaXRpYWxpemF0aW9uUGFyYW1ldGVycy5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTFFNTUyQzMxNkFFMDY1RTAw
NEVENjUzIC8qIFNhbmRib3hJbml0aWFsaXphdGlvblBhcmFtZXRlcnMuaCAqLzsgfTsKIAkJRTFF
RTUzRTMxMUY4Q0ZDMDAwQ0NCRUU0IC8qIEluamVjdGVkQnVuZGxlUGFnZUVkaXRvckNsaWVudC5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTFFRTUzREMx
MUY4Q0Y5RjAwQ0NCRUU0IC8qIEluamVjdGVkQnVuZGxlUGFnZUVkaXRvckNsaWVudC5oICovOyB9
OworCQlFMzk2MjhBQTIzODhBQkQ4MDA2NThFQ0QgLyogV2ViU2hhcmVkRGV2aWNlT3JpZW50YXRp
b25DbGllbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gRTM5NjI4QTkyMzg4QUJEODAwNjU4RUNEIC8qIFdlYlNoYXJlZERldmljZU9yaWVudGF0aW9u
Q2xpZW50LmNwcCAqLzsgfTsKIAkJRTQxM0Y1OUQxQUMxQURDNDAwMzQ1MzYwIC8qIE5ldHdvcmtD
YWNoZUVudHJ5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBFNDEzRjU5QjFBQzFBREI2MDAzNDUzNjAgLyogTmV0d29ya0NhY2hlRW50cnkuaCAqLzsgfTsK
IAkJRTQyRTA2MTAxQUE3NTIzQjAwQjExNjk5IC8qIE5ldHdvcmtDYWNoZUlPQ2hhbm5lbC5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTQyRTA2MEIxQUE3
NDQwRDAwQjExNjk5IC8qIE5ldHdvcmtDYWNoZUlPQ2hhbm5lbC5oICovOyB9OwogCQlFNDJFMDYx
MjFBQTc1QUJEMDBCMTE2OTkgLyogTmV0d29ya0NhY2hlRGF0YS5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTQyRTA2MTExQUE3NUFCRDAwQjExNjk5IC8q
IE5ldHdvcmtDYWNoZURhdGEuaCAqLzsgfTsKQEAgLTQ3NDYsNiArNDc0Nyw4IEBACiAJCUUxRUU1
M0RDMTFGOENGOUYwMENDQkVFNCAvKiBJbmplY3RlZEJ1bmRsZVBhZ2VFZGl0b3JDbGllbnQuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSW5qZWN0ZWRCdW5kbGVQYWdlRWRpdG9y
Q2xpZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUxRUU1M0U2MTFGOENGRkIw
MENDQkVFNCAvKiBJbmplY3RlZEJ1bmRsZVBhZ2VFZGl0b3JDbGllbnQuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSW5qZWN0ZWRCdW5kbGVQYWdlRWRpdG9yQ2xpZW50
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTM0MzlCNjMyMzQ1NDYzQTAwMTFE
RTBCIC8qIE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbkluZm8uaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gTmV0
d29ya1Byb2Nlc3NDb25uZWN0aW9uSW5mby5oOyBwYXRoID0gTmV0d29yay9OZXR3b3JrUHJvY2Vz
c0Nvbm5lY3Rpb25JbmZvLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUUzOTYyOEE4
MjM4OEE1RDQwMDY1OEVDRCAvKiBXZWJTaGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudC5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBXZWJTaGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudC5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQlFMzk2MjhBOTIzODhBQkQ4MDA2NThFQ0QgLyogV2ViU2hh
cmVkRGV2aWNlT3JpZW50YXRpb25DbGllbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViU2hh
cmVkRGV2aWNlT3JpZW50YXRpb25DbGllbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQlFNDA0OTA3MDIxREU2NUY3MDAzN0YwREIgLyogU2Nyb2xsZXJQYWlyTWFjLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNjcm9sbGVyUGFpck1hYy5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQlFNDA0OTA3MTIxREU2NUY3MDAzN0YwREIgLyogU2Nyb2xsaW5n
VHJlZUZyYW1lU2Nyb2xsaW5nTm9kZVJlbW90ZU1hYy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBTY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlUmVtb3RlTWFj
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTQwNDkwNzIyMURFNjVGNzAwMzdG
MERCIC8qIFNjcm9sbGVyUGFpck1hYy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNw
cDsgcGF0aCA9IFNjcm9sbGVyUGFpck1hYy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
QEAgLTU4NTIsNiArNTg1NSw4IEBACiAJCQkJMkQyOEYzRTMxODg1Q0NDMTAwNEI5RUFFIC8qIFdl
YkZyYW1lTG9hZGVyQ2xpZW50SU9TLm1tICovLAogCQkJCUExQzUxMkM2MTkwNjU2RTUwMDQ0ODkx
NCAvKiBXZWJQcmV2aWV3TG9hZGVyQ2xpZW50LmNwcCAqLywKIAkJCQlBMUM1MTJDNzE5MDY1NkU1
MDA0NDg5MTQgLyogV2ViUHJldmlld0xvYWRlckNsaWVudC5oICovLAorCQkJCUUzOTYyOEE5MjM4
OEFCRDgwMDY1OEVDRCAvKiBXZWJTaGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudC5jcHAgKi8s
CisJCQkJRTM5NjI4QTgyMzg4QTVENDAwNjU4RUNEIC8qIFdlYlNoYXJlZERldmljZU9yaWVudGF0
aW9uQ2xpZW50LmggKi8sCiAJCQkpOwogCQkJbmFtZSA9IGlvczsKIAkJCXNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7CkBAIC05MzA2LDcgKzkzMTEsNiBAQAogCQkJCTVDNDYwOUU3MjI0MzE3QjQwMDk5
NDNDMiAvKiBfV0tDb250ZW50UnVsZUxpc3RBY3Rpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCTVD
NDYwOUU4MjI0MzE3QkIwMDk5NDNDMiAvKiBfV0tDb250ZW50UnVsZUxpc3RBY3Rpb25JbnRlcm5h
bC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUE1NzA0RjgxQkUwMUZGNDAwODc0QUYxIC8qIF9XS0Nv
bnRleHRNZW51RWxlbWVudEluZm8uaCBpbiBIZWFkZXJzICovLAotCQkJCTk5NzlDQTU4MjM3RjQ5
RjEwMDM5RUMwNSAvKiBfV0tJbnNwZWN0b3JQcml2YXRlLmggaW4gSGVhZGVycyAqLywKIAkJCQk1
QzVEMjM4QzIyN0EyQ0RBMDAwQjlCREEgLyogX1dLQ3VzdG9tSGVhZGVyRmllbGRzLmggaW4gSGVh
ZGVycyAqLywKIAkJCQk4Mzg5MUI2OTFBNjhCRUJDMDAzMEYzODYgLyogX1dLRGlhZ25vc3RpY0xv
Z2dpbmdEZWxlZ2F0ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTFBNEZFNUExOERDRTlGQTAwQjVF
QThBIC8qIF9XS0Rvd25sb2FkLmggaW4gSGVhZGVycyAqLywKQEAgLTkzMzMsNiArOTMzNyw3IEBA
CiAJCQkJMzdBNjRFNTUxOEYzOEUzQzAwRUIzMEYxIC8qIF9XS0lucHV0RGVsZWdhdGUuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTVDQUZERTQ1MjEzMDg0NjMwMEIxRjdFMSAvKiBfV0tJbnNwZWN0b3Iu
aCBpbiBIZWFkZXJzICovLAogCQkJCTVDQUZERTQ3MjEzMDg0NkEwMEIxRjdFMSAvKiBfV0tJbnNw
ZWN0b3JJbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8sCisJCQkJOTk3OUNBNTgyMzdGNDlGMTAwMzlF
QzA1IC8qIF9XS0luc3BlY3RvclByaXZhdGUuaCBpbiBIZWFkZXJzICovLAogCQkJCUE1QzBGMEFC
MjAwMDY1ODIwMDUzNjUzNiAvKiBfV0tJbnNwZWN0b3JXaW5kb3cuaCBpbiBIZWFkZXJzICovLAog
CQkJCTMxQjM2Mjk1MjE0MUVCQ0QwMDdCRkE1MyAvKiBfV0tJbnRlcm5hbERlYnVnRmVhdHVyZS5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJMzFCMzYyOTcyMTQxRUJEOTAwN0JGQTUzIC8qIF9XS0ludGVy
bmFsRGVidWdGZWF0dXJlSW50ZXJuYWwuaCBpbiBIZWFkZXJzICovLApAQCAtOTgxNiw3ICs5ODIx
LDYgQEAKIAkJCQk1MTFGOEE3QjEzOEI0NjA5MDBBOTVGNDQgLyogU2VjSXRlbVNoaW1MaWJyYXJ5
LmggaW4gSGVhZGVycyAqLywKIAkJCQlFMThFNjkwQzE2OUI1NjNGMDA5QjY2NzAgLyogU2VjSXRl
bVNoaW1Qcm94eS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTE4RTY5MTgxNjlCNjY3QjAwOUI2Njcw
IC8qIFNlY0l0ZW1TaGltUHJveHlNZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8sCi0JCQkJN0FBNzQ2
RDUyMzU5M0Q4MTAwMDk1MDUwIC8qIFNlY0l0ZW1TUEkuaCBpbiBIZWFkZXJzICovLAogCQkJCTU3
MEFCOEYzMjBBRTNCRDcwMEI4QkU4NyAvKiBTZWNLZXlQcm94eVN0b3JlLmggaW4gSGVhZGVycyAq
LywKIAkJCQk1MTREOUY1NzE5MTE5RDM1MDAwMDYzQTcgLyogU2VydmljZXNDb250cm9sbGVyLmgg
aW4gSGVhZGVycyAqLywKIAkJCQkxQUZERTY1QTE5NTRBNDJCMDBDNDhGRkEgLyogU2Vzc2lvblN0
YXRlLmggaW4gSGVhZGVycyAqLywKQEAgLTExNjE1LDYgKzExNjE5LDcgQEAKIAkJCQk1MUYwNjBF
MTE2NTQzMTg1MDBGMzI4MUYgLyogV2ViUlRDTW9uaXRvck1lc3NhZ2VSZWNlaXZlci5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQk1MUYwNjBFMTE2NTQzMTg1MDBGMzI4MkMgLyogV2ViUlRDUmVzb2x2
ZXJNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNTFGMDYwRTExNjU0MzE4
NTAwRjMyODFDIC8qIFdlYlJUQ1NvY2tldE1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAq
LywKKwkJCQlFMzk2MjhBQTIzODhBQkQ4MDA2NThFQ0QgLyogV2ViU2hhcmVkRGV2aWNlT3JpZW50
YXRpb25DbGllbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNDFGMDYwRTExNjU0MzE4NTAwRjMy
ODFDIC8qIFdlYlNvY2tldENoYW5uZWxNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJNUMwQjE3NzkxRTdDODgyMTAwRTkxMjNDIC8qIFdlYlNvY2tldFN0cmVhbU1lc3NhZ2VS
ZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk0MTI4N0Q0RTIyNUQxRUNCMDA5QTNFMjYg
LyogV2ViU29ja2V0VGFza0NvY29hLm1tIGluIFNvdXJjZXMgKi8sCkluZGV4OiBTb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViU2hhcmVkRGV2aWNlT3JpZW50YXRpb25D
bGllbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3Jl
U3VwcG9ydC9XZWJTaGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudC5jcHAJKG5vbmV4aXN0ZW50
KQorKysgU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlNoYXJlZERl
dmljZU9yaWVudGF0aW9uQ2xpZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDYwIEBA
CisvKgorKiBDb3B5cmlnaHQgKEMpIDIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorKgorKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisqIGFyZSBtZXQ6CisqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorKgorKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnCisqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorKiBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1Ig
SVRTIENPTlRSSUJVVE9SUworKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisqIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisqIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUworKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorKiBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GCisqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyovCisKKyNpbmNsdWRl
ICJjb25maWcuaCIKKyNpbmNsdWRlICJXZWJTaGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudC5o
IgorCisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkgJiYgRU5BQkxFKERFVklDRV9PUklFTlRBVElP
TikKKworI2luY2x1ZGUgIldlYlBhZ2UuaCIKKyNpbmNsdWRlICJXZWJQYWdlUHJveHlNZXNzYWdl
cy5oIgorCisjaW5jbHVkZSA8V2ViQ29yZS9XZWJDb3JlTW90aW9uTWFuYWdlckNsaWVudC5oPgor
CituYW1lc3BhY2UgV2ViS2l0IHsKKwordm9pZCBXZWJTaGFyZWREZXZpY2VPcmllbnRhdGlvbkNs
aWVudDo6c3RhcnRVcGRhdGluZyhXZWJDb3JlOjpXZWJDb3JlTW90aW9uTWFuYWdlckNsaWVudCYg
Y2xpZW50KQoreworICAgIGlmIChtX2NsaWVudHMuaXNFbXB0eSgpKQorICAgICAgICBtX3BhZ2Uu
c2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpTdGFydFVwZGF0aW5nRGV2aWNlT3JpZW50YXRp
b24oKSk7CisgICAgbV9jbGllbnRzLmFkZCgmY2xpZW50KTsKK30KKwordm9pZCBXZWJTaGFyZWRE
ZXZpY2VPcmllbnRhdGlvbkNsaWVudDo6c3RvcFVwZGF0aW5nKFdlYkNvcmU6OldlYkNvcmVNb3Rp
b25NYW5hZ2VyQ2xpZW50JiBjbGllbnQpCit7CisgICAgbV9jbGllbnRzLnJlbW92ZSgmY2xpZW50
KTsKKyAgICBpZiAobV9jbGllbnRzLmlzRW1wdHkoKSkKKyAgICAgICAgbV9wYWdlLnNlbmQoTWVz
c2FnZXM6OldlYlBhZ2VQcm94eTo6U3RvcFVwZGF0aW5nRGV2aWNlT3JpZW50YXRpb24oKSk7Cit9
CisKK3ZvaWQgV2ViU2hhcmVkRGV2aWNlT3JpZW50YXRpb25DbGllbnQ6OmRldmljZU9yaWVudGF0
aW9uQ2hhbmdlZChkb3VibGUgYWxwaGEsIGRvdWJsZSBiZXRhLCBkb3VibGUgZ2FtbWEsIGRvdWJs
ZSBjb21wYXNzSGVhZGluZywgZG91YmxlIGNvbXBhc3NBY2N1cmFjeSkKK3sKKyAgICBmb3IgKGF1
dG8gY2xpZW50IDogbV9jbGllbnRzKQorICAgICAgICBjbGllbnQtPm9yaWVudGF0aW9uQ2hhbmdl
ZChhbHBoYSwgYmV0YSwgZ2FtbWEsIGNvbXBhc3NIZWFkaW5nLCBjb21wYXNzQWNjdXJhY3kpOwor
fQorCit9OworCisjZW5kaWYKSW5kZXg6IFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3Jl
U3VwcG9ydC9XZWJTaGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudC5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJTaGFyZWREZXZpY2VP
cmllbnRhdGlvbkNsaWVudC5oCShub25leGlzdGVudCkKKysrIFNvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJTaGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudC5oCSh3
b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNTggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTkg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFT
IElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVU
T1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
CisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YK
KyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UK
KworI2luY2x1ZGUgPFdlYkNvcmUvU2hhcmVkRGV2aWNlT3JpZW50YXRpb25DbGllbnQuaD4KKwor
I2luY2x1ZGUgPHd0Zi9IYXNoU2V0Lmg+CisKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKSAmJiBF
TkFCTEUoREVWSUNFX09SSUVOVEFUSU9OKQorCituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3Mg
V2ViUGFnZTsKKworY2xhc3MgV2ViU2hhcmVkRGV2aWNlT3JpZW50YXRpb25DbGllbnQgZmluYWwg
OiBwdWJsaWMgV2ViQ29yZTo6U2hhcmVkRGV2aWNlT3JpZW50YXRpb25DbGllbnQgeworICAgIFdU
Rl9NQUtFX0ZBU1RfQUxMT0NBVEVEOworcHVibGljOgorICAgIFdlYlNoYXJlZERldmljZU9yaWVu
dGF0aW9uQ2xpZW50KFdlYlBhZ2UmIHBhZ2UpCisgICAgICAgIDogbV9wYWdlKHBhZ2UpCisgICAg
eworICAgIH0KKworICAgIHZvaWQgc3RhcnRVcGRhdGluZyhXZWJDb3JlOjpXZWJDb3JlTW90aW9u
TWFuYWdlckNsaWVudCYpIG92ZXJyaWRlOworICAgIHZvaWQgc3RvcFVwZGF0aW5nKFdlYkNvcmU6
OldlYkNvcmVNb3Rpb25NYW5hZ2VyQ2xpZW50Jikgb3ZlcnJpZGU7CisKKyAgICB2b2lkIGRldmlj
ZU9yaWVudGF0aW9uQ2hhbmdlZChkb3VibGUsIGRvdWJsZSwgZG91YmxlLCBkb3VibGUsIGRvdWJs
ZSkgb3ZlcnJpZGU7CisKK3ByaXZhdGU6CisgICAgV2ViUGFnZSYgbV9wYWdlOworICAgIEhhc2hT
ZXQ8V2ViQ29yZTo6V2ViQ29yZU1vdGlvbk1hbmFnZXJDbGllbnQqPiBtX2NsaWVudHM7Cit9Owor
Cit9CisKKyNlbmRpZgpJbmRleDogU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2Vi
UGFnZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2Uv
V2ViUGFnZS5jcHAJKHJldmlzaW9uIDI1MjY1MSkKKysrIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJQYWdlL1dlYlBhZ2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMjAsNiArMTIwLDcgQEAK
ICNpbmNsdWRlICJXZWJQcm9jZXNzUHJveHlNZXNzYWdlcy5oIgogI2luY2x1ZGUgIldlYlByb2dy
ZXNzVHJhY2tlckNsaWVudC5oIgogI2luY2x1ZGUgIldlYlNlcnZpY2VXb3JrZXJQcm92aWRlci5o
IgorI2luY2x1ZGUgIldlYlNoYXJlZERldmljZU9yaWVudGF0aW9uQ2xpZW50LmgiCiAjaW5jbHVk
ZSAiV2ViU29ja2V0UHJvdmlkZXIuaCIKICNpbmNsdWRlICJXZWJTcGVlY2hTeW50aGVzaXNDbGll
bnQuaCIKICNpbmNsdWRlICJXZWJTdG9yYWdlTmFtZXNwYWNlUHJvdmlkZXIuaCIKQEAgLTUwMSw2
ICs1MDIsOCBAQCBXZWJQYWdlOjpXZWJQYWdlKFBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgCiAjaWYg
RU5BQkxFKEFQUExJQ0FUSU9OX01BTklGRVNUKQogICAgIHBhZ2VDb25maWd1cmF0aW9uLmFwcGxp
Y2F0aW9uTWFuaWZlc3QgPSBwYXJhbWV0ZXJzLmFwcGxpY2F0aW9uTWFuaWZlc3Q7CiAjZW5kaWYK
KyAgICAKKyAgICBwYWdlQ29uZmlndXJhdGlvbi5zaGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVu
dCA9IG5ldyBXZWJTaGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudCgqdGhpcyk7CiAKICAgICBt
X3BhZ2UgPSBtYWtlVW5pcXVlPFBhZ2U+KFdURk1vdmUocGFnZUNvbmZpZ3VyYXRpb24pKTsKIApJ
bmRleDogU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAkocmV2aXNp
b24gMjUyNjUxKQorKysgU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5o
CSh3b3JraW5nIGNvcHkpCkBAIC0xMjQzLDYgKzEyNDMsMTAgQEAgcHVibGljOgogICAgIGNvbnN0
IFN0cmluZyYgb3ZlcnJpZGRlbk1lZGlhVHlwZSgpIGNvbnN0IHsgcmV0dXJuIG1fb3ZlcnJpZGRl
bk1lZGlhVHlwZTsgfQogICAgIHZvaWQgc2V0T3ZlcnJpZGRlbk1lZGlhVHlwZShjb25zdCBTdHJp
bmcmKTsKICAgICAKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKSAmJiBFTkFCTEUoREVWSUNFX09S
SUVOVEFUSU9OKQorICAgIHZvaWQgZGV2aWNlT3JpZW50YXRpb25DaGFuZ2VkKGRvdWJsZSBhbHBo
YSwgZG91YmxlIGJldGEsIGRvdWJsZSBnYW1tYSwgZG91YmxlIGNvbXBhc3NIZWFkaW5nLCBkb3Vi
bGUgY29tcGFzc0FjY3VyYWN5KTsKKyNlbmRpZgorCiBwcml2YXRlOgogICAgIFdlYlBhZ2UoV2Vi
Q29yZTo6UGFnZUlkZW50aWZpZXIsIFdlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMmJik7CiAKSW5k
ZXg6IFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4K
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5t
ZXNzYWdlcy5pbgkocmV2aXNpb24gMjUyNjUxKQorKysgU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbgkod29ya2luZyBjb3B5KQpAQCAtNTgzLDQgKzU4
Myw4IEBAIEdlbmVyYXRlU3ludGhldGljRWRpdGluZ0NvbW1hbmQoZW51bTp1aW4KICAgICBDb21w
bGV0ZVRleHRNYW5pcHVsYXRpb24oV2ViQ29yZTo6VGV4dE1hbmlwdWxhdGlvbkNvbnRyb2xsZXI6
Okl0ZW1JZGVudGlmaWVyIGl0ZW1JRCwgVmVjdG9yPFdlYkNvcmU6OlRleHRNYW5pcHVsYXRpb25D
b250cm9sbGVyOjpNYW5pcHVsYXRpb25Ub2tlbj4gdG9rZW5zKSAtPiAoZW51bTp1aW50OF90IFdl
YkNvcmU6OlRleHRNYW5pcHVsYXRpb25Db250cm9sbGVyOjpNYW5pcHVsYXRpb25SZXN1bHQgcmVz
dWx0KSBBc3luYwogICAgIAogICAgIFNldE92ZXJyaWRkZW5NZWRpYVR5cGUoU3RyaW5nIG1lZGlh
VHlwZSkKKyAgICAKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKSAmJiBFTkFCTEUoREVWSUNFX09S
SUVOVEFUSU9OKQorICAgIERldmljZU9yaWVudGF0aW9uQ2hhbmdlZChkb3VibGUgYWxwaGEsIGRv
dWJsZSBiZXRhLCBkb3VibGUgZ2FtbWEsIGRvdWJsZSBjb21wYXNzSGVhZGluZywgZG91YmxlIGNv
bXBhc3NBY2N1cmFjeSkKKyNlbmRpZgogfQpJbmRleDogU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW0JKHJldmlzaW9uIDI1MjY1MSkKKysr
IFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tCSh3b3Jr
aW5nIGNvcHkpCkBAIC00MTEzLDYgKzQxMTMsMTQgQEAgdm9pZCBXZWJQYWdlOjpyZXF1ZXN0UGFz
c3dvcmRGb3JRdWlja0xvbwogCiAjZW5kaWYKIAorI2lmIEVOQUJMRShERVZJQ0VfT1JJRU5UQVRJ
T04pCit2b2lkIFdlYlBhZ2U6OmRldmljZU9yaWVudGF0aW9uQ2hhbmdlZChkb3VibGUgYWxwaGEs
IGRvdWJsZSBiZXRhLCBkb3VibGUgZ2FtbWEsIGRvdWJsZSBjb21wYXNzSGVhZGluZywgZG91Ymxl
IGNvbXBhc3NBY2N1cmFjeSkKK3sKKyAgICBpZiAoY29yZVBhZ2UoKSAmJiBjb3JlUGFnZSgpLT5z
aGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudCgpKQorICAgICAgICBjb3JlUGFnZSgpLT5zaGFy
ZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudCgpLT5kZXZpY2VPcmllbnRhdGlvbkNoYW5nZWQoYWxw
aGEsIGJldGEsIGdhbW1hLCBjb21wYXNzSGVhZGluZywgY29tcGFzc0FjY3VyYWN5KTsKK30KKyNl
bmRpZgorCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKIAogI3VuZGVmIFJFTEVBU0VfTE9HX0lGX0FM
TE9XRUQK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>384555</attachid>
            <date>2019-11-30 16:16:59 -0800</date>
            <delta_ts>2019-11-30 16:47:11 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-204720-20191130161658.patch</filename>
            <type>text/plain</type>
            <size>45960</size>
            <attacher name="Per Arne Vollan">pvollan</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDI1Mjk2MSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQ5IEBACisyMDE5LTExLTMwICBQZXIgQXJu
ZSBWb2xsYW4gIDxwdm9sbGFuQGFwcGxlLmNvbT4KKworICAgICAgICBbaU9TXSBDYWxscyB0byBk
ZXZpY2Ugb3JpZW50YXRpb24gQVBJIHNob3VsZCBiZSBkb25lIGluIHRoZSBVSSBwcm9jZXNzCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDQ3MjAKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGUgZGV2aWNl
IG9yaWVudGF0aW9uIEFQSSBvbiBpT1MgaXMgY29tbXVuaWNhdGluZyB3aXRoIGxvY2F0aW9uZC4g
U2luY2UgbWFjaCBsb29rdXAgdG8gdGhpcyBkYWVtb24KKyAgICAgICAgd2lsbCBiZSBjbG9zZWQs
IHRoZSBjYWxscyB0byB0aGlzIEFQSSBzaG91bGQgYmUgbW92ZWQgZnJvbSB0aGUgV2ViQ29udGVu
dCBwcm9jZXNzIHRvIHRoZSBVSSBwcm9jZXNzLgorICAgICAgICBUaGlzIHBhdGNoIGltcGxlbWVu
dHMgZm9yd2FyZGluZyBvZiB0aGUgZGV2aWNlIG9yaWVudGF0aW9uIHJlcXVlc3RzIHRvIHRoZSBV
SSBwcm9jZXNzIHRocm91Z2ggYSBuZXcKKyAgICAgICAgY2xhc3MsIFNoYXJlZERldmljZU9yaWVu
dGF0aW9uQ2xpZW50LCB3aGljaCBpcyBzdWJjbGFzc2VkIGJ5IFdlYlNoYXJlZERldmljZU9yaWVu
dGF0aW9uQ2xpZW50IGluCisgICAgICAgIG1vZGVybiBXZWJLaXQuIFRoaXMgY2xhc3MgaW1wbGVt
ZW50cyBmb3J3YXJkaW5nIG9mIHRoZSByZXF1ZXN0cyB0byB0aGUgVUkgcHJvY2VzcywgYW5kIHJl
Y2VpdmVzCisgICAgICAgIGRldmljZSBvcmllbnRhdGlvbiB1cGRhdGVzIGZyb20gdGhlIFVJIHBy
b2Nlc3MuIEFuIGluc3RhbmNlIG9mIHRoaXMgY2xhc3Mgd2lsbCBiZSBzaGFyZWQgYnkgYWxsCisg
ICAgICAgIGRldmljZSBvcmllbnRhdGlvbiBjbGllbnRzIG9uIGEgcGFnZSwgYW5kIHBhc3NlZCBh
cyBwYXJ0IG9mIHRoZSBwYWdlIGNvbmZpZ3VyYXRpb24gcGFyYW1ldGVycy4gT24KKyAgICAgICAg
dGhlIFVJIHByb2Nlc3Mgc2lkZSwgdGhlIFdlYiBwYWdlIHByb3h5IGlzIHRha2luZyBjYXJlIG9m
IGNhbGxpbmcgdGhlIGRldmljZSBvcmllbnRhdGlvbiBBUEkgdGhyb3VnaAorICAgICAgICB0aGUg
ZXhpc3RpbmcgV2ViQ29yZU1vdGlvbk1hbmFnZXIgT2JqZWN0aXZlLUMgY2xhc3MuCisKKyAgICAg
ICAgTm8gbmV3IHRlc3RzLCBjb3ZlcmVkIGJ5IGV4aXN0aW5nIHRlc3RzLgorCisgICAgICAgICog
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGRvbS9EZXZpY2VP
cmllbnRhdGlvbkNsaWVudC5oOgorICAgICAgICAoV2ViQ29yZTo6RGV2aWNlT3JpZW50YXRpb25D
bGllbnQ6OnNldFNoYXJlZERldmljZU9yaWVudGF0aW9uQ2xpZW50KToKKyAgICAgICAgKiBkb20v
RG9jdW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6bV91bmRvTWFuYWdlcik6CisgICAgICAg
ICogcGFnZS9QYWdlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Om1fc2hhcmVkRGV2aWNlT3JpZW50
YXRpb25DbGllbnQpOgorICAgICAgICAoV2ViQ29yZTo6bV9hcHBsaWNhdGlvbk1hbmlmZXN0KTog
RGVsZXRlZC4KKyAgICAgICAgKiBwYWdlL1BhZ2UuaDoKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2U6
OnNoYXJlZERldmljZU9yaWVudGF0aW9uQ2xpZW50IGNvbnN0KToKKyAgICAgICAgKiBwYWdlL1Bh
Z2VDb25maWd1cmF0aW9uLmg6CisgICAgICAgICogcGxhdGZvcm0vaW9zL0RldmljZU9yaWVudGF0
aW9uQ2xpZW50SU9TLmg6CisgICAgICAgICogcGxhdGZvcm0vaW9zL0RldmljZU9yaWVudGF0aW9u
Q2xpZW50SU9TLm1tOgorICAgICAgICAoV2ViQ29yZTo6RGV2aWNlT3JpZW50YXRpb25DbGllbnRJ
T1M6OnN0YXJ0VXBkYXRpbmcpOgorICAgICAgICAoV2ViQ29yZTo6RGV2aWNlT3JpZW50YXRpb25D
bGllbnRJT1M6OnN0b3BVcGRhdGluZyk6CisgICAgICAgIChXZWJDb3JlOjpEZXZpY2VPcmllbnRh
dGlvbkNsaWVudElPUzo6ZGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyRGVzdHJveWVkKToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9pb3MvU2hhcmVkRGV2aWNlT3JpZW50YXRpb25DbGllbnQuaDogQWRk
ZWQuCisgICAgICAgIChXZWJDb3JlOjpTaGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudDo6U2hh
cmVkRGV2aWNlT3JpZW50YXRpb25DbGllbnQpOgorICAgICAgICAoV2ViQ29yZTo6U2hhcmVkRGV2
aWNlT3JpZW50YXRpb25DbGllbnQ6On5TaGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudCk6Cisg
ICAgICAgIChXZWJDb3JlOjpTaGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudDo6c3RhcnRVcGRh
dGluZyk6CisgICAgICAgIChXZWJDb3JlOjpTaGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudDo6
c3RvcFVwZGF0aW5nKToKKyAgICAgICAgKFdlYkNvcmU6OlNoYXJlZERldmljZU9yaWVudGF0aW9u
Q2xpZW50OjpkZXZpY2VPcmllbnRhdGlvbkNoYW5nZWQpOgorICAgICAgICAqIHBsYXRmb3JtL2lv
cy9XZWJDb3JlTW90aW9uTWFuYWdlci5oOgorICAgICAgICAqIHBsYXRmb3JtL2lvcy9XZWJDb3Jl
TW90aW9uTWFuYWdlci5tbToKKyAgICAgICAgKC1bV2ViQ29yZU1vdGlvbk1hbmFnZXIgYWRkT3Jp
ZW50YXRpb25DbGllbnQ6XSk6CisgICAgICAgICgtW1dlYkNvcmVNb3Rpb25NYW5hZ2VyIHJlbW92
ZU9yaWVudGF0aW9uQ2xpZW50Ol0pOgorCiAyMDE5LTExLTMwICB5b3Vlbm4gZmFibGV0ICA8eW91
ZW5uQGFwcGxlLmNvbT4KIAogICAgICAgICBTaW1wbGlmeSBDb3JlQXVkaW9DYXB0dXJlU291cmNl
IHN1c3BlbnNpb24gbG9naWMKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvago9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHJldmlzaW9uIDI1Mjk2MSkKKysrIFNvdXJjZS9XZWJD
b3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkod29ya2luZyBjb3B5KQpAQCAt
OTA3LDcgKzkwNyw3IEBACiAJCTMxMzU5MTBBMUU3RERDNzMwMEYzMDYzMCAvKiBSVENTZHBUeXBl
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzMTM1OTEw
NDFFN0REQzYwMDBGMzA2MzAgLyogUlRDU2RwVHlwZS5oICovOyB9OwogCQkzMTM1OTEwQjFFN0RE
QzczMDBGMzA2MzAgLyogUlRDU2lnbmFsaW5nU3RhdGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMxMzU5MTA1MUU3RERDNjAwMEYzMDYzMCAvKiBSVENT
aWduYWxpbmdTdGF0ZS5oICovOyB9OwogCQkzMTNCQ0UxQzIzNUUzQkU1MDBGQzM5RTUgLyogRWxl
bWVudENvbnRleHQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDMxM0JDRTFCMjM1RTNCREIwMEZDMzlFNSAvKiBFbGVtZW50Q29udGV4dC5oICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07Ci0JCTMxNDAzNzlCMTI0QkVB
N0YwMEFGNDBFNCAvKiBXZWJDb3JlTW90aW9uTWFuYWdlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzE0MDM3OTcxMjRCRUE3RjAwQUY0MEU0IC8qIFdl
YkNvcmVNb3Rpb25NYW5hZ2VyLmggKi87IH07CisJCTMxNDAzNzlCMTI0QkVBN0YwMEFGNDBFNCAv
KiBXZWJDb3JlTW90aW9uTWFuYWdlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gMzE0MDM3OTcxMjRCRUE3RjAwQUY0MEU0IC8qIFdlYkNvcmVNb3Rpb25N
YW5hZ2VyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
IAkJMzE0MDM3OUQxMjRCRUE3RjAwQUY0MEU0IC8qIERldmljZU9yaWVudGF0aW9uQ2xpZW50SU9T
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzMTQwMzc5
OTEyNEJFQTdGMDBBRjQwRTQgLyogRGV2aWNlT3JpZW50YXRpb25DbGllbnRJT1MuaCAqLzsgfTsK
IAkJMzE0MEM1MjAxRkRGMTUxQTAwRDJBODczIC8qIE9mZnNjcmVlbkNhbnZhc1JlbmRlcmluZ0Nv
bnRleHQyRC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
MzE0MEM1MUUxRkRGMTUxQTAwRDJBODczIC8qIE9mZnNjcmVlbkNhbnZhc1JlbmRlcmluZ0NvbnRl
eHQyRC5oICovOyB9OwogCQkzMTQwQzUyNDFGREYzMTg3MDBEMkE4NzMgLyogQ2FudmFzUmVuZGVy
aW5nQ29udGV4dDJEQmFzZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gMzE0MEM1MjIxRkRGMzE4NjAwRDJBODczIC8qIENhbnZhc1JlbmRlcmluZ0NvbnRl
eHQyREJhc2UuaCAqLzsgfTsKQEAgLTQ3NzYsNiArNDc3Niw4IEBACiAJCUUzNTgwMkI2MURDODQz
NUQwMEE5NzczQyAvKiBET01KSVRJRExUeXBlRmlsdGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMzU4MDJCNTFEQzg0MzU4MDBBOTc3M0MgLyogRE9N
SklUSURMVHlwZUZpbHRlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07CiAJCUUzNzdGRTREMURBREUxNjUwMENERDAyNSAvKiBOb2RlQ29uc3RhbnRzLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFM0QwNDk5MzFE
QURDMDQ1MDA3MThGM0MgLyogTm9kZUNvbnN0YW50cy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJV
VEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUUzN0M4NjUwMUVCNjNFM0YwMDg3QzZDQSAvKiBK
U0RPTVByb21pc2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEUzN0M4NjRGMUVCNjNFMkQwMDg3QzZDQSAvKiBKU0RPTVByb21pc2UuaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQlFMzk2MjhBNDIzODg5MzVC
MDA2NThFQ0QgLyogU2hhcmVkRGV2aWNlT3JpZW50YXRpb25DbGllbnQuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUzOTYyOEEzMjM4ODkzNUIwMDY1OEVD
RCAvKiBTaGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudC5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCUUzOTYyOEFDMjM5MUM4MTcwMDY1OEVDRCAv
KiBXZWJDb3JlTW90aW9uTWFuYWdlckNsaWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gRTM5NjI4QUIyMzkxQzRGMzAwNjU4RUNEIC8qIFdlYkNvcmVN
b3Rpb25NYW5hZ2VyQ2xpZW50LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0
ZSwgKTsgfTsgfTsKIAkJRTNBNzc2NjcxREM4NUQyODAwQjY5MEQ4IC8qIERPTUpJVElETENvbnZl
cnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUzQTc3
NjY1MURDODVEMjIwMEI2OTBEOCAvKiBET01KSVRJRExDb252ZXJ0LmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJRTNBNzc2NjgxREM4NUQyODAwQjY5
MEQ4IC8qIERPTUpJVElETFR5cGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEUzQTc3NjY2MURDODVEMjIwMEI2OTBEOCAvKiBET01KSVRJRExUeXBlLmgg
Ki87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJRTNCMkYw
RUQxRDdGNENBMzAwQjBDOUQxIC8qIExvYWRhYmxlU2NyaXB0LmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFM0IyRjBFNzFEN0YzNUVDMDBCMEM5RDEgLyog
TG9hZGFibGVTY3JpcHQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OwpAQCAtMTUwNjUsNiArMTUwNjcsOCBAQAogCQlFMzg4Mzg5NDFCQUQxNDVGMDBENjJF
RTMgLyogU2NyaXB0TW9kdWxlTG9hZGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IFNjcmlwdE1vZHVsZUxvYWRlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCUUzODgzODk1MUJBRDE0NUYwMEQ2MkVFMyAvKiBTY3JpcHRNb2R1bGVMb2FkZXIuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU2NyaXB0TW9kdWxlTG9hZGVyLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUzOEQwNjA5MUY4RTgxMTkwMDY0OUNGMiAvKiBN
b2R1bGVGZXRjaFBhcmFtZXRlcnMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
TW9kdWxlRmV0Y2hQYXJhbWV0ZXJzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUUz
OTYyOEEzMjM4ODkzNUIwMDY1OEVDRCAvKiBTaGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudC5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBTaGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudC5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQlFMzk2MjhBQjIzOTFDNEYzMDA2NThFQ0QgLyogV2ViQ29y
ZU1vdGlvbk1hbmFnZXJDbGllbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViQ29yZU1vdGlvbk1hbmFn
ZXJDbGllbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTM5NzVCNzYxRUM5QUYz
OTAwODQ3NzE3IC8qIEpTRG9jdW1lbnRGcmFnbWVudERPTUpJVC5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0RvY3VtZW50RnJhZ21lbnRET01KSVQuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFMzk3NUI3NzFFQzlBRjM5MDA4NDc3MTcgLyogSlNF
bGVtZW50RE9NSklULmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpT
RWxlbWVudERPTUpJVC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUzOTc1Qjc4
MUVDOUFGMzkwMDg0NzcxNyAvKiBKU0V2ZW50RE9NSklULmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IEpTRXZlbnRET01KSVQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwpAQCAtMTY2NDIsOCArMTY2NDYsOCBAQAogCQkJCTExNUNBODMwMjMzMjhCMUUwMEZE
M0IwOCAvKiBMYXlvdXRVbml0cy5jcHAgKi8sCiAJCQkJNkY3MzkxOEMyMTA2Q0VERDAwNkFGMjYy
IC8qIExheW91dFVuaXRzLmggKi8sCiAJCQkJNkZFN0FBMjYyMUMzN0I2MzAwMjk2RENEIC8qIE1h
cmdpblR5cGVzLmggKi8sCi0JCQkJRTRBQkFCREIyMzYwODhGRDAwRkE0MzQ1IC8qIFJlbmRlckJs
b2NrRmxvd0xpbmVMYXlvdXQuaCAqLywKIAkJCQlFNEFCQUJERTIzNjA4OTNEMDBGQTQzNDUgLyog
UmVuZGVyQmxvY2tGbG93TGluZUxheW91dC5jcHAgKi8sCisJCQkJRTRBQkFCREIyMzYwODhGRDAw
RkE0MzQ1IC8qIFJlbmRlckJsb2NrRmxvd0xpbmVMYXlvdXQuaCAqLywKIAkJCQkxMUZGMDJENTIw
QkEzQzgxMDA4M0YyNUIgLyogVmVyaWZpY2F0aW9uLmNwcCAqLywKIAkJCSk7CiAJCQlwYXRoID0g
bGF5b3V0OwpAQCAtMjI4MTAsNiArMjI4MTQsNyBAQAogCQkJCUU0NTM5MDM0MEVBRkQ2MzcwMDM2
OTVDOCAvKiBTY3JvbGxWaWV3SU9TLm1tICovLAogCQkJCUJFQTgwN0M2MEY3MTRBMDMwMDUyNDE5
OSAvKiBTZWxlY3Rpb25SZWN0LmNwcCAqLywKIAkJCQlCRUE4MDdDNzBGNzE0QTAzMDA1MjQxOTkg
LyogU2VsZWN0aW9uUmVjdC5oICovLAorCQkJCUUzOTYyOEEzMjM4ODkzNUIwMDY1OEVDRCAvKiBT
aGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudC5oICovLAogCQkJCTBGMDNDMDczMTg4NDY5NUUw
MEE1RjhDQSAvKiBTeXN0ZW1NZW1vcnkuaCAqLywKIAkJCQlFNDUzOTBBRDBFQUZGNEI1MDAzNjk1
QzggLyogU3lzdGVtTWVtb3J5SU9TLmNwcCAqLywKIAkJCQk0NEM5OTE5RDBGM0QyMTBFMDA1ODY2
NzAgLyogVGhlbWVJT1MuaCAqLywKQEAgLTIyODI2LDYgKzIyODMxLDcgQEAKIAkJCQkxRjM2RUE5
QjFFMjFCQTE3MDA2MjFFMjUgLyogV2ViQmFja2dyb3VuZFRhc2tDb250cm9sbGVyLm1tICovLAog
CQkJCTMxNDAzNzk3MTI0QkVBN0YwMEFGNDBFNCAvKiBXZWJDb3JlTW90aW9uTWFuYWdlci5oICov
LAogCQkJCTMxNDAzNzk4MTI0QkVBN0YwMEFGNDBFNCAvKiBXZWJDb3JlTW90aW9uTWFuYWdlci5t
bSAqLywKKwkJCQlFMzk2MjhBQjIzOTFDNEYzMDA2NThFQ0QgLyogV2ViQ29yZU1vdGlvbk1hbmFn
ZXJDbGllbnQuaCAqLywKIAkJCQlGRTBEODRFODEwNDg0MzQ4MDAxQTE3OUUgLyogV2ViRXZlbnQu
aCAqLywKIAkJCQlGRTBEODRFQTEwNDg0MzZFMDAxQTE3OUUgLyogV2ViRXZlbnQubW0gKi8sCiAJ
CQkJRjQ4MjIzMEYxRTM4NjlCODAwNjZGQzc5IC8qIFdlYkl0ZW1Qcm92aWRlclBhc3RlYm9hcmQu
aCAqLywKQEAgLTI4NzI5LDggKzI4NzM1LDggQEAKIAkJCQlGRkVGQUIyOTE4MzgwREEwMDA1MTQ1
MzQgLyogTGluZUxheW91dFN0YXRlLmggKi8sCiAJCQkJRTQ4NEEzM0QyMzA1NTMwMzAwOUFERTZB
IC8qIExpbmVMYXlvdXRUcmF2ZXJzYWwuY3BwICovLAogCQkJCUU0ODRBMzNCMjMwNTUzMDMwMDlB
REU2QSAvKiBMaW5lTGF5b3V0VHJhdmVyc2FsLmggKi8sCi0JCQkJRTQzNDNEMjEyMzkyNzc4MzAw
RUJCQjY2IC8qIExpbmVMYXlvdXRUcmF2ZXJzYWxTaW1wbGVQYXRoLmggKi8sCiAJCQkJRTQzNDNE
MjQyMzkyNzc4RjAwRUJCQjY2IC8qIExpbmVMYXlvdXRUcmF2ZXJzYWxDb21wbGV4UGF0aC5oICov
LAorCQkJCUU0MzQzRDIxMjM5Mjc3ODMwMEVCQkI2NiAvKiBMaW5lTGF5b3V0VHJhdmVyc2FsU2lt
cGxlUGF0aC5oICovLAogCQkJCUZGREJDMDQ2MTgzRDI3QjcwMDQwNzEwOSAvKiBMaW5lV2lkdGgu
Y3BwICovLAogCQkJCUZGREJDMDQ1MTgzRDI3QjcwMDQwNzEwOSAvKiBMaW5lV2lkdGguaCAqLywK
IAkJCQlGRkFDMzBGRDE4NEZCMTQ1MDA4QzRGMUUgLyogVHJhaWxpbmdPYmplY3RzLmNwcCAqLywK
QEAgLTMwNTQxLDcgKzMwNTQ3LDYgQEAKIAkJCQk4MzcwNTY5MDFGNTA5MTVDMDBEOTM0MjUgLyog
SlNGaWxlU3lzdGVtRW50cnlDYWxsYmFjay5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODMzQjlFMzYx
RjUwOEQ4NTAwRTBFNDI4IC8qIEpTRmlsZVN5c3RlbUZpbGVFbnRyeS5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJNzEyQkU0ODgxRkU4Njg2QTAwMjAzMUNDIC8qIEpTRmlsbE1vZGUuaCBpbiBIZWFkZXJz
ICovLAotCQkJCUU0MzQzRDI1MjM5Mjc3OTAwMEVCQkI2NiAvKiBMaW5lTGF5b3V0VHJhdmVyc2Fs
Q29tcGxleFBhdGguaCBpbiBIZWFkZXJzICovLAogCQkJCUI2RDlEMjdCMTRFQUMwODYwMDkwRDc1
RSAvKiBKU0ZvY3VzRXZlbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUMyODA4MzNGMUM2REMyNkYw
MDE0NTFCNiAvKiBKU0ZvbnRGYWNlLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQzI0RUVBOTFDNzJB
N0I0MDA4MEY4RkMgLyogSlNGb250RmFjZVNldC5oIGluIEhlYWRlcnMgKi8sCkBAIC0zMTE5Niw2
ICszMTIwMSw4IEBACiAJCQkJNkYyNkVCNDgyMzQwMDRBNTAwNjkwNkUyIC8qIExpbmVMYXlvdXRD
b250ZXh0LmggaW4gSGVhZGVycyAqLywKIAkJCQlGRkVGQUIyQTE4MzgwREEwMDA1MTQ1MzQgLyog
TGluZUxheW91dFN0YXRlLmggaW4gSGVhZGVycyAqLywKIAkJCQlFNDg0QTMzRTIzMDU1MzI1MDA5
QURFNkEgLyogTGluZUxheW91dFRyYXZlcnNhbC5oIGluIEhlYWRlcnMgKi8sCisJCQkJRTQzNDNE
MjUyMzkyNzc5MDAwRUJCQjY2IC8qIExpbmVMYXlvdXRUcmF2ZXJzYWxDb21wbGV4UGF0aC5oIGlu
IEhlYWRlcnMgKi8sCisJCQkJRTQzNDNEMjMyMzkyNzc4NDAwRUJCQjY2IC8qIExpbmVMYXlvdXRU
cmF2ZXJzYWxTaW1wbGVQYXRoLmggaW4gSGVhZGVycyAqLywKIAkJCQlGRkRCQzA0NzE4M0QyN0I3
MDA0MDcxMDkgLyogTGluZVdpZHRoLmggaW4gSGVhZGVycyAqLywKIAkJCQlDQkE5REMwQjFERjQ0
REY0MDAwNTY3NUMgLyogTGlua0hlYWRlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTE0M0IyNjMx
REREMTUyMDAwMTRGQUM2IC8qIExpbmtJY29uLmggaW4gSGVhZGVycyAqLywKQEAgLTMxNjg5LDcg
KzMxNjk2LDYgQEAKIAkJCQk1N0RDRUQ3NDIxNDMwNUYwMDAxNkI4NDcgLyogUHVibGljS2V5Q3Jl
ZGVudGlhbERhdGEuaCBpbiBIZWFkZXJzICovLAogCQkJCTU3MzAzQkVGMjAwOTgwQzYwMDM1NTk2
NSAvKiBQdWJsaWNLZXlDcmVkZW50aWFsRGVzY3JpcHRvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
NTczMDNDMEEyMDA5OUJBRDAwMzU1OTY1IC8qIFB1YmxpY0tleUNyZWRlbnRpYWxSZXF1ZXN0T3B0
aW9ucy5oIGluIEhlYWRlcnMgKi8sCi0JCQkJRTQzNDNEMjMyMzkyNzc4NDAwRUJCQjY2IC8qIExp
bmVMYXlvdXRUcmF2ZXJzYWxTaW1wbGVQYXRoLmggaW4gSGVhZGVycyAqLywKIAkJCQk1NzMwM0JF
QjIwMDk3RjQwMDAzNTU5NjUgLyogUHVibGljS2V5Q3JlZGVudGlhbFR5cGUuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTAwODFGRjAwMTZCMEEyRDMwMDhBQUE3QSAvKiBQdWJsaWNTdWZmaXguaCBpbiBI
ZWFkZXJzICovLAogCQkJCTEwRkIwODRCMTRFMTVDN0UwMEEzREI5OCAvKiBQdWJsaWNVUkxNYW5h
Z2VyLmggaW4gSGVhZGVycyAqLywKQEAgLTMxNzU1LDYgKzMxNzYxLDcgQEAKIAkJCQk3Q0Q0OTRD
RDFBODZFQjFEMDAwQTg3RUMgLyogUmVuZGVyQXR0YWNobWVudC5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJQkNFQTQ4NjAwOTdEOTMwMjAwOTRDOUU0IC8qIFJlbmRlckJsb2NrLmggaW4gSGVhZGVycyAq
LywKIAkJCQlCQzEwRDc2ODE3RDhFRTcxMDA1RTI2MjYgLyogUmVuZGVyQmxvY2tGbG93LmggaW4g
SGVhZGVycyAqLywKKwkJCQlFNEFCQUJERDIzNjA4OEZFMDBGQTQzNDUgLyogUmVuZGVyQmxvY2tG
bG93TGluZUxheW91dC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkNFQTQ4NjIwOTdEOTMwMjAwOTRD
OUU0IC8qIFJlbmRlckJveC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkNFQjE3OUMxNDMzNzlGNTAw
NTJFQUU5IC8qIFJlbmRlckJveEZyYWdtZW50SW5mby5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkM5
NkRCNDMwRjNBODgwRTAwNTczQ0IzIC8qIFJlbmRlckJveE1vZGVsT2JqZWN0LmggaW4gSGVhZGVy
cyAqLywKQEAgLTMyMTQzLDYgKzMyMTUwLDcgQEAKIAkJCQlGRDFBRjE1MDE2NTZGMTUxMDBDNkQ0
RjcgLyogU2hhcGVWYWx1ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUQ5RjBGQzEyMTIyMDI5QjAw
NUQ4RkQ0IC8qIFNoYXJlRGF0YS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUE0QTk1NEUwQjRFREND
QjAwMkQ4QzNDIC8qIFNoYXJlZEJ1ZmZlci5oIGluIEhlYWRlcnMgKi8sCisJCQkJRTM5NjI4QTQy
Mzg4OTM1QjAwNjU4RUNEIC8qIFNoYXJlZERldmljZU9yaWVudGF0aW9uQ2xpZW50LmggaW4gSGVh
ZGVycyAqLywKIAkJCQk4MzRERkFEMDFGN0RBRTVEMDBDMjcyNUIgLyogU2hhcmVkU3RyaW5nSGFz
aC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTMzMDlFQTMwOTlFQjc4QzAwNTZFNTgxIC8qIFNoYXJl
ZFRpbWVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk4MzYyRThDMTIwQ0VGOUNCMDAyNDU4ODYgLyog
U2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkLmggaW4gSGVhZGVycyAqLywKQEAgLTMyNDcwLDcg
KzMyNDc4LDYgQEAKIAkJCQkwODhDMkY3QTEyMzkwMDgxMDAzRDY1Q0UgLyogU1ZHVGV4dExheW91
dEF0dHJpYnV0ZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTA4MTA5M0RDMTI1NUYwRTcwMEVEOUQy
OSAvKiBTVkdUZXh0TGF5b3V0QXR0cmlidXRlc0J1aWxkZXIuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTA4MTY2OERBMTI1NjAzRDUwMDZGMjVERSAvKiBTVkdUZXh0TGF5b3V0RW5naW5lLmggaW4gSGVh
ZGVycyAqLywKLQkJCQlFNEFCQUJERDIzNjA4OEZFMDBGQTQzNDUgLyogUmVuZGVyQmxvY2tGbG93
TGluZUxheW91dC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMDgwRTQ5MjYxMjU1RjNCRDAwRUZDQTI3
IC8qIFNWR1RleHRMYXlvdXRFbmdpbmVCYXNlbGluZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMDgw
RTQ5MjgxMjU1RjNCRDAwRUZDQTI3IC8qIFNWR1RleHRMYXlvdXRFbmdpbmVTcGFjaW5nLmggaW4g
SGVhZGVycyAqLywKIAkJCQkwOEYwQkZDNjEyNTVDNTNDMDAwNzUxODUgLyogU1ZHVGV4dE1ldHJp
Y3MuaCBpbiBIZWFkZXJzICovLApAQCAtMzI3NjQsNiArMzI3NzEsNyBAQAogCQkJCUJDNTNEOTEx
MTE0MzEwQ0MwMDBEODE3RSAvKiBXZWJDb3JlSlNDbGllbnREYXRhLmggaW4gSGVhZGVycyAqLywK
IAkJCQk5M0YxOTlCQjA4MjQ1RTU5MDAxRTlBQkMgLyogV2ViQ29yZUtleWJvYXJkVUlNb2RlLmgg
aW4gSGVhZGVycyAqLywKIAkJCQkzMTQwMzc5QjEyNEJFQTdGMDBBRjQwRTQgLyogV2ViQ29yZU1v
dGlvbk1hbmFnZXIuaCBpbiBIZWFkZXJzICovLAorCQkJCUUzOTYyOEFDMjM5MUM4MTcwMDY1OEVD
RCAvKiBXZWJDb3JlTW90aW9uTWFuYWdlckNsaWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQ0RD
OTc5RjUxQzQ5OEMwOTAwREI1MEQ0IC8qIFdlYkNvcmVOU0Vycm9yRXh0cmFzLmggaW4gSGVhZGVy
cyAqLywKIAkJCQlGNEU1N0VFMTIxM0Y0MzRBMDA0RUE5OEUgLyogV2ViQ29yZU5TRm9udE1hbmFn
ZXJFeHRyYXMuaCBpbiBIZWFkZXJzICovLAogCQkJCUM1QjRDMjREMTUwOTIzNkMwMEE2RUYzNyAv
KiBXZWJDb3JlTlNVUkxFeHRyYXMuaCBpbiBIZWFkZXJzICovLApJbmRleDogU291cmNlL1dlYkNv
cmUvZG9tL0RldmljZU9yaWVudGF0aW9uQ2xpZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvZG9tL0RldmljZU9yaWVudGF0aW9uQ2xpZW50LmgJKHJldmlzaW9uIDI1Mjk2MSkKKysr
IFNvdXJjZS9XZWJDb3JlL2RvbS9EZXZpY2VPcmllbnRhdGlvbkNsaWVudC5oCSh3b3JraW5nIGNv
cHkpCkBAIC0yOCwxMiArMjgsMTQgQEAKIAogI2luY2x1ZGUgIkRldmljZUNsaWVudC5oIgogI2lu
Y2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgorI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KIAogbmFt
ZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBEZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXI7CiBj
bGFzcyBEZXZpY2VPcmllbnRhdGlvbkRhdGE7CiBjbGFzcyBQYWdlOworY2xhc3MgU2hhcmVkRGV2
aWNlT3JpZW50YXRpb25DbGllbnQ7CiAKIGNsYXNzIERldmljZU9yaWVudGF0aW9uQ2xpZW50IDog
cHVibGljIERldmljZUNsaWVudCB7CiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoRGV2aWNlT3Jp
ZW50YXRpb25DbGllbnQpOwpAQCAtNDMsNiArNDUsOCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2
b2lkIHNldENvbnRyb2xsZXIoRGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyKikgPSAwOwogICAg
IHZpcnR1YWwgRGV2aWNlT3JpZW50YXRpb25EYXRhKiBsYXN0T3JpZW50YXRpb24oKSBjb25zdCA9
IDA7CiAgICAgdmlydHVhbCB2b2lkIGRldmljZU9yaWVudGF0aW9uQ29udHJvbGxlckRlc3Ryb3ll
ZCgpID0gMDsKKyAgICAKKyAgICB2aXJ0dWFsIHZvaWQgc2V0U2hhcmVkRGV2aWNlT3JpZW50YXRp
b25DbGllbnQoUmVmUHRyPFNoYXJlZERldmljZU9yaWVudGF0aW9uQ2xpZW50PikgeyB9OwogfTsK
IAogV0VCQ09SRV9FWFBPUlQgdm9pZCBwcm92aWRlRGV2aWNlT3JpZW50YXRpb25UbyhQYWdlJiwg
RGV2aWNlT3JpZW50YXRpb25DbGllbnQmKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1
bWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAko
cmV2aXNpb24gMjUyOTYxKQorKysgU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAkod29y
a2luZyBjb3B5KQpAQCAtNjA3LDkgKzYwNywxNSBAQCBEb2N1bWVudDo6RG9jdW1lbnQoRnJhbWUq
IGZyYW1lLCBjb25zdCBVCiAgICAgICAgIG5vZGVMaXN0QW5kQ29sbGVjdGlvbkNvdW50ID0gMDsK
IAogICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6YWRkRXZlbnRMaXN0ZW5lcnNUb05vZGUo
KnRoaXMpOworICAgIAogI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCiAgICAgbV9zZXR0aW5ncy0+
c2V0TGVnYWN5R2V0VXNlck1lZGlhRW5hYmxlZChxdWlya3MoKS5zaG91bGRFbmFibGVMZWdhY3lH
ZXRVc2VyTWVkaWEoKSk7CiAjZW5kaWYKKworI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpICYmIEVO
QUJMRShERVZJQ0VfT1JJRU5UQVRJT04pCisgICAgaWYgKHBhZ2UoKSAmJiBwYWdlKCktPnNoYXJl
ZERldmljZU9yaWVudGF0aW9uQ2xpZW50KCkpCisgICAgICAgIG1fZGV2aWNlT3JpZW50YXRpb25D
bGllbnQtPnNldFNoYXJlZERldmljZU9yaWVudGF0aW9uQ2xpZW50KHBhZ2UoKS0+c2hhcmVkRGV2
aWNlT3JpZW50YXRpb25DbGllbnQoKSk7CisjZW5kaWYKIH0KIAogUmVmPERvY3VtZW50PiBEb2N1
bWVudDo6Y3JlYXRlKERvY3VtZW50JiBjb250ZXh0RG9jdW1lbnQpCkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9wYWdlL1BhZ2UuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BhZ2UvUGFn
ZS5jcHAJKHJldmlzaW9uIDI1Mjk2MSkKKysrIFNvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTI4OSw2ICsyODksOSBAQCBQYWdlOjpQYWdlKFBhZ2VDb25maWd1
cmF0aW9uJiYgcGFnZUNvbmZpCiAjaWYgRU5BQkxFKEFQUExJQ0FUSU9OX01BTklGRVNUKQogICAg
ICwgbV9hcHBsaWNhdGlvbk1hbmlmZXN0KHBhZ2VDb25maWd1cmF0aW9uLmFwcGxpY2F0aW9uTWFu
aWZlc3QpCiAjZW5kaWYKKyNpZiBFTkFCTEUoREVWSUNFX09SSUVOVEFUSU9OKSAmJiBQTEFURk9S
TShJT1NfRkFNSUxZKQorICAgICwgbV9zaGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudChXVEZN
b3ZlKHBhZ2VDb25maWd1cmF0aW9uLnNoYXJlZERldmljZU9yaWVudGF0aW9uQ2xpZW50KSkKKyNl
bmRpZgogewogICAgIHVwZGF0ZVRpbWVyVGhyb3R0bGluZ1N0YXRlKCk7CiAKSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL3BhZ2UvUGFnZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BhZ2Uv
UGFnZS5oCShyZXZpc2lvbiAyNTI5NjEpCisrKyBTb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuaAko
d29ya2luZyBjb3B5KQpAQCAtMzUsNiArMzUsNyBAQAogI2luY2x1ZGUgIlJlZ2lzdHJhYmxlRG9t
YWluLmgiCiAjaW5jbHVkZSAiUmVuZGVyaW5nVXBkYXRlU2NoZWR1bGVyLmgiCiAjaW5jbHVkZSAi
U2Nyb2xsVHlwZXMuaCIKKyNpbmNsdWRlICJTaGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudC5o
IgogI2luY2x1ZGUgIlN1cHBsZW1lbnRhYmxlLmgiCiAjaW5jbHVkZSAiVGltZXIuaCIKICNpbmNs
dWRlICJVc2VySW50ZXJmYWNlTGF5b3V0RGlyZWN0aW9uLmgiCkBAIC03MTksNiArNzIwLDEwIEBA
IHB1YmxpYzoKIAogICAgIFdFQkNPUkVfRVhQT1JUIFZlY3RvcjxSZWY8RWxlbWVudD4+IGVkaXRh
YmxlRWxlbWVudHNJblJlY3QoY29uc3QgRmxvYXRSZWN0JikgY29uc3Q7CiAKKyNpZiBFTkFCTEUo
REVWSUNFX09SSUVOVEFUSU9OKSAmJiBQTEFURk9STShJT1NfRkFNSUxZKQorICAgIFJlZlB0cjxT
aGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudD4gc2hhcmVkRGV2aWNlT3JpZW50YXRpb25DbGll
bnQoKSBjb25zdCB7IHJldHVybiBtX3NoYXJlZERldmljZU9yaWVudGF0aW9uQ2xpZW50OyB9Cisj
ZW5kaWYKKwogcHJpdmF0ZToKICAgICBzdHJ1Y3QgTmF2aWdhdGlvbiB7CiAgICAgICAgIFJlZ2lz
dHJhYmxlRG9tYWluIGRvbWFpbjsKQEAgLTk5MCw2ICs5OTUsMTAgQEAgcHJpdmF0ZToKIAogICAg
IE9wdGlvbmFsPFZpZXdwb3J0QXJndW1lbnRzPiBtX292ZXJyaWRlVmlld3BvcnRBcmd1bWVudHM7
CiAKKyNpZiBFTkFCTEUoREVWSUNFX09SSUVOVEFUSU9OKSAmJiBQTEFURk9STShJT1NfRkFNSUxZ
KQorICAgIFJlZlB0cjxTaGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudD4gbV9zaGFyZWREZXZp
Y2VPcmllbnRhdGlvbkNsaWVudDsKKyNlbmRpZgorCiAgICAgYm9vbCBtX3Nob3VsZEVuYWJsZUlD
RUNhbmRpZGF0ZUZpbHRlcmluZ0J5RGVmYXVsdCB7IHRydWUgfTsKICAgICBib29sIG1fbWVkaWFQ
bGF5YmFja0lzU3VzcGVuZGVkIHsgZmFsc2UgfTsKICAgICBib29sIG1fbWVkaWFCdWZmZXJpbmdJ
c1N1c3BlbmRlZCB7IGZhbHNlIH07CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VDb25m
aWd1cmF0aW9uLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlQ29uZmln
dXJhdGlvbi5oCShyZXZpc2lvbiAyNTI5NjEpCisrKyBTb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VD
b25maWd1cmF0aW9uLmgJKHdvcmtpbmcgY29weSkKQEAgLTU3LDYgKzU3LDcgQEAgY2xhc3MgUGVy
Zm9ybWFuY2VMb2dnaW5nQ2xpZW50OwogY2xhc3MgUGx1Z0luQ2xpZW50OwogY2xhc3MgUGx1Z2lu
SW5mb1Byb3ZpZGVyOwogY2xhc3MgUHJvZ3Jlc3NUcmFja2VyQ2xpZW50OworY2xhc3MgU2hhcmVk
RGV2aWNlT3JpZW50YXRpb25DbGllbnQ7CiBjbGFzcyBTb2NrZXRQcm92aWRlcjsKIGNsYXNzIFN0
b3JhZ2VOYW1lc3BhY2VQcm92aWRlcjsKIGNsYXNzIFVzZXJDb250ZW50UHJvdmlkZXI7CkBAIC0x
MTgsNiArMTE5LDEwIEBAIHB1YmxpYzoKICAgICBSZWZQdHI8U3RvcmFnZU5hbWVzcGFjZVByb3Zp
ZGVyPiBzdG9yYWdlTmFtZXNwYWNlUHJvdmlkZXI7CiAgICAgUmVmUHRyPFVzZXJDb250ZW50UHJv
dmlkZXI+IHVzZXJDb250ZW50UHJvdmlkZXI7CiAgICAgUmVmUHRyPFZpc2l0ZWRMaW5rU3RvcmU+
IHZpc2l0ZWRMaW5rU3RvcmU7CisgICAgCisjaWYgRU5BQkxFKERFVklDRV9PUklFTlRBVElPTikg
JiYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKyAgICBSZWZQdHI8U2hhcmVkRGV2aWNlT3JpZW50YXRp
b25DbGllbnQ+IHNoYXJlZERldmljZU9yaWVudGF0aW9uQ2xpZW50OworI2VuZGlmCiB9OwogCiB9
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvRGV2aWNlT3JpZW50YXRpb25DbGll
bnRJT1MuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvRGV2aWNl
T3JpZW50YXRpb25DbGllbnRJT1MuaAkocmV2aXNpb24gMjUyOTYxKQorKysgU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vaW9zL0RldmljZU9yaWVudGF0aW9uQ2xpZW50SU9TLmgJKHdvcmtpbmcgY29w
eSkKQEAgLTMwLDEzICszMCwxNSBAQAogI2luY2x1ZGUgIkRldmljZU9yaWVudGF0aW9uQ2xpZW50
LmgiCiAjaW5jbHVkZSAiRGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyLmgiCiAjaW5jbHVkZSAi
RGV2aWNlT3JpZW50YXRpb25EYXRhLmgiCisjaW5jbHVkZSAiU2hhcmVkRGV2aWNlT3JpZW50YXRp
b25DbGllbnQuaCIKKyNpbmNsdWRlICJXZWJDb3JlTW90aW9uTWFuYWdlckNsaWVudC5oIgogI2lu
Y2x1ZGUgPHd0Zi9SZWZQdHIuaD4KIAogT0JKQ19DTEFTUyBXZWJDb3JlTW90aW9uTWFuYWdlcjsK
IAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1jbGFzcyBEZXZpY2VPcmllbnRhdGlvbkNsaWVudElP
UyA6IHB1YmxpYyBEZXZpY2VPcmllbnRhdGlvbkNsaWVudCB7CitjbGFzcyBEZXZpY2VPcmllbnRh
dGlvbkNsaWVudElPUyA6IHB1YmxpYyBEZXZpY2VPcmllbnRhdGlvbkNsaWVudCwgcHVibGljIFdl
YkNvcmVNb3Rpb25NYW5hZ2VyQ2xpZW50IHsKIHB1YmxpYzoKICAgICBEZXZpY2VPcmllbnRhdGlv
bkNsaWVudElPUygpOwogICAgIH5EZXZpY2VPcmllbnRhdGlvbkNsaWVudElPUygpIG92ZXJyaWRl
OwpAQCAtNDYsMTIgKzQ4LDE1IEBAIHB1YmxpYzoKICAgICBEZXZpY2VPcmllbnRhdGlvbkRhdGEq
IGxhc3RPcmllbnRhdGlvbigpIGNvbnN0IG92ZXJyaWRlOwogICAgIHZvaWQgZGV2aWNlT3JpZW50
YXRpb25Db250cm9sbGVyRGVzdHJveWVkKCkgb3ZlcnJpZGU7CiAKLSAgICB2b2lkIG9yaWVudGF0
aW9uQ2hhbmdlZChkb3VibGUsIGRvdWJsZSwgZG91YmxlLCBkb3VibGUsIGRvdWJsZSk7CisgICAg
dm9pZCBvcmllbnRhdGlvbkNoYW5nZWQoZG91YmxlLCBkb3VibGUsIGRvdWJsZSwgZG91YmxlLCBk
b3VibGUpIG92ZXJyaWRlOwogCisgICAgdm9pZCBzZXRTaGFyZWREZXZpY2VPcmllbnRhdGlvbkNs
aWVudChSZWZQdHI8U2hhcmVkRGV2aWNlT3JpZW50YXRpb25DbGllbnQ+IHNoYXJlZERldmljZU9y
aWVudGF0aW9uQ2xpZW50KSBvdmVycmlkZSB7IG1fc2hhcmVkRGV2aWNlT3JpZW50YXRpb25DbGll
bnQgPSBzaGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudDsgfQorICAgIAogcHJpdmF0ZToKICAg
ICBXZWJDb3JlTW90aW9uTWFuYWdlciogbV9tb3Rpb25NYW5hZ2VyOwogICAgIERldmljZU9yaWVu
dGF0aW9uQ29udHJvbGxlciogbV9jb250cm9sbGVyOwogICAgIFJlZlB0cjxEZXZpY2VPcmllbnRh
dGlvbkRhdGE+IG1fY3VycmVudERldmljZU9yaWVudGF0aW9uOworICAgIFJlZlB0cjxTaGFyZWRE
ZXZpY2VPcmllbnRhdGlvbkNsaWVudD4gbV9zaGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudDsK
ICAgICBib29sIG1fdXBkYXRpbmc7CiB9OwogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9pb3MvRGV2aWNlT3JpZW50YXRpb25DbGllbnRJT1MubW0KPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vaW9zL0RldmljZU9yaWVudGF0aW9uQ2xpZW50SU9TLm1tCShyZXZp
c2lvbiAyNTI5NjEpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvRGV2aWNlT3JpZW50
YXRpb25DbGllbnRJT1MubW0JKHdvcmtpbmcgY29weSkKQEAgLTUzLDYgKzUzLDExIEBAIHZvaWQg
RGV2aWNlT3JpZW50YXRpb25DbGllbnRJT1M6OnN0YXJ0VXAKIHsKICAgICBtX3VwZGF0aW5nID0g
dHJ1ZTsKIAorICAgIGlmIChtX3NoYXJlZERldmljZU9yaWVudGF0aW9uQ2xpZW50KSB7CisgICAg
ICAgIG1fc2hhcmVkRGV2aWNlT3JpZW50YXRpb25DbGllbnQtPnN0YXJ0VXBkYXRpbmcoKnRoaXMp
OworICAgICAgICByZXR1cm47CisgICAgfQorCiAgICAgaWYgKCFtX21vdGlvbk1hbmFnZXIpCiAg
ICAgICAgIG1fbW90aW9uTWFuYWdlciA9IFtXZWJDb3JlTW90aW9uTWFuYWdlciBzaGFyZWRNYW5h
Z2VyXTsKIApAQCAtNjMsNiArNjgsMTEgQEAgdm9pZCBEZXZpY2VPcmllbnRhdGlvbkNsaWVudElP
Uzo6c3RvcFVwZAogewogICAgIG1fdXBkYXRpbmcgPSBmYWxzZTsKIAorICAgIGlmIChtX3NoYXJl
ZERldmljZU9yaWVudGF0aW9uQ2xpZW50KSB7CisgICAgICAgIG1fc2hhcmVkRGV2aWNlT3JpZW50
YXRpb25DbGllbnQtPnN0b3BVcGRhdGluZygqdGhpcyk7CisgICAgICAgIHJldHVybjsKKyAgICB9
CisKICAgICAvLyBSZW1vdmUgb3Vyc2VsdmVzIGFzIHRoZSBvcmllbnRhdGlvbiBjbGllbnQgc28g
d2Ugd29uJ3QgZ2V0IHVwZGF0ZXMuCiAgICAgW21fbW90aW9uTWFuYWdlciByZW1vdmVPcmllbnRh
dGlvbkNsaWVudDp0aGlzXTsKIH0KQEAgLTc0LDYgKzg0LDExIEBAIERldmljZU9yaWVudGF0aW9u
RGF0YSogRGV2aWNlT3JpZW50YXRpb24KIAogdm9pZCBEZXZpY2VPcmllbnRhdGlvbkNsaWVudElP
Uzo6ZGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyRGVzdHJveWVkKCkKIHsKKyAgICBpZiAobV9z
aGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudCkgeworICAgICAgICBtX3NoYXJlZERldmljZU9y
aWVudGF0aW9uQ2xpZW50LT5zdG9wVXBkYXRpbmcoKnRoaXMpOworICAgICAgICByZXR1cm47Cisg
ICAgfQorCiAgICAgW21fbW90aW9uTWFuYWdlciByZW1vdmVPcmllbnRhdGlvbkNsaWVudDp0aGlz
XTsKIH0KICAgICAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9TaGFyZWREZXZp
Y2VPcmllbnRhdGlvbkNsaWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2lvcy9TaGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudC5oCShub25leGlzdGVudCkKKysr
IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9TaGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVu
dC5oCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNDkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAq
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIGBgQVMgSVMn
JyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVCBPV05FUiBPUgorICogQ09O
VFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJV
U0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAq
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25j
ZQorCisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkgJiYgRU5BQkxFKERFVklDRV9PUklFTlRBVElP
TikKKworI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsK
KworY2xhc3MgV2ViQ29yZU1vdGlvbk1hbmFnZXJDbGllbnQ7CisKK2NsYXNzIFNoYXJlZERldmlj
ZU9yaWVudGF0aW9uQ2xpZW50IDogcHVibGljIFJlZkNvdW50ZWQ8U2hhcmVkRGV2aWNlT3JpZW50
YXRpb25DbGllbnQ+IHsKK3B1YmxpYzoKKyAgICBTaGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVu
dCgpIHsgfQorICAgIHZpcnR1YWwgflNoYXJlZERldmljZU9yaWVudGF0aW9uQ2xpZW50KCkgeyB9
CisKKyAgICB2aXJ0dWFsIHZvaWQgc3RhcnRVcGRhdGluZyhXZWJDb3JlTW90aW9uTWFuYWdlckNs
aWVudCYpIHsgfQorICAgIHZpcnR1YWwgdm9pZCBzdG9wVXBkYXRpbmcoV2ViQ29yZU1vdGlvbk1h
bmFnZXJDbGllbnQmKSB7IH0KKworICAgIHZpcnR1YWwgdm9pZCBkZXZpY2VPcmllbnRhdGlvbkNo
YW5nZWQoZG91YmxlLCBkb3VibGUsIGRvdWJsZSwgZG91YmxlLCBkb3VibGUpIHsgfQorfTsKKwor
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gUExBVEZPUk0oSU9TX0ZBTUlMWSkg
JiYgRU5BQkxFKERFVklDRV9PUklFTlRBVElPTikKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2lvcy9XZWJDb3JlTW90aW9uTWFuYWdlci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2lvcy9XZWJDb3JlTW90aW9uTWFuYWdlci5oCShyZXZpc2lvbiAyNTI5NjEp
CisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvV2ViQ29yZU1vdGlvbk1hbmFnZXIuaAko
d29ya2luZyBjb3B5KQpAQCAtMjUsOCArMjUsNiBAQAogCiAjcHJhZ21hIG9uY2UKIAotI2ltcG9y
dCAiRGV2aWNlTW90aW9uQ2xpZW50SU9TLmgiCi0jaW1wb3J0ICJEZXZpY2VPcmllbnRhdGlvbkNs
aWVudElPUy5oIgogI2ltcG9ydCA8Q29yZUxvY2F0aW9uL0NvcmVMb2NhdGlvbi5oPgogI2ltcG9y
dCA8d3RmL0hhc2hDb3VudGVkU2V0Lmg+CiAKQEAgLTM2LDExICszNCwxNiBAQAogCiBjb25zdCBm
bG9hdCBrTW90aW9uVXBkYXRlSW50ZXJ2YWwgPSAxLjBmIC8gNjAuMGY7CiAKLUBpbnRlcmZhY2Ug
V2ViQ29yZU1vdGlvbk1hbmFnZXIgOiBOU09iamVjdCB7CituYW1lc3BhY2UgV2ViQ29yZSB7Citj
bGFzcyBEZXZpY2VNb3Rpb25DbGllbnRJT1M7CitjbGFzcyBXZWJDb3JlTW90aW9uTWFuYWdlckNs
aWVudDsKK307CisKK1dFQkNPUkVfRVhQT1JUIEBpbnRlcmZhY2UgV2ViQ29yZU1vdGlvbk1hbmFn
ZXIgOiBOU09iamVjdCB7CiAgICAgQ01Nb3Rpb25NYW5hZ2VyKiBtX21vdGlvbk1hbmFnZXI7CiAg
ICAgQ0xMb2NhdGlvbk1hbmFnZXIqIG1fbG9jYXRpb25NYW5hZ2VyOwogICAgIEhhc2hTZXQ8V2Vi
Q29yZTo6RGV2aWNlTW90aW9uQ2xpZW50SU9TKj4gbV9kZXZpY2VNb3Rpb25DbGllbnRzOwotICAg
IEhhc2hTZXQ8V2ViQ29yZTo6RGV2aWNlT3JpZW50YXRpb25DbGllbnRJT1MqPiBtX2RldmljZU9y
aWVudGF0aW9uQ2xpZW50czsKKyAgICBIYXNoU2V0PFdlYkNvcmU6OldlYkNvcmVNb3Rpb25NYW5h
Z2VyQ2xpZW50Kj4gbV9kZXZpY2VPcmllbnRhdGlvbkNsaWVudHM7CiAgICAgTlNUaW1lciogbV91
cGRhdGVUaW1lcjsKICAgICBCT09MIG1fZ3lyb0F2YWlsYWJsZTsKICAgICBCT09MIG1faGVhZGlu
Z0F2YWlsYWJsZTsKQEAgLTUwLDggKzUzLDggQEAgY29uc3QgZmxvYXQga01vdGlvblVwZGF0ZUlu
dGVydmFsID0gMS4wZgogKyAoV2ViQ29yZU1vdGlvbk1hbmFnZXIgKilzaGFyZWRNYW5hZ2VyOwog
LSAodm9pZClhZGRNb3Rpb25DbGllbnQ6KFdlYkNvcmU6OkRldmljZU1vdGlvbkNsaWVudElPUyAq
KWNsaWVudDsKIC0gKHZvaWQpcmVtb3ZlTW90aW9uQ2xpZW50OihXZWJDb3JlOjpEZXZpY2VNb3Rp
b25DbGllbnRJT1MgKiljbGllbnQ7Ci0tICh2b2lkKWFkZE9yaWVudGF0aW9uQ2xpZW50OihXZWJD
b3JlOjpEZXZpY2VPcmllbnRhdGlvbkNsaWVudElPUyAqKWNsaWVudDsKLS0gKHZvaWQpcmVtb3Zl
T3JpZW50YXRpb25DbGllbnQ6KFdlYkNvcmU6OkRldmljZU9yaWVudGF0aW9uQ2xpZW50SU9TICop
Y2xpZW50OworLSAodm9pZClhZGRPcmllbnRhdGlvbkNsaWVudDooV2ViQ29yZTo6V2ViQ29yZU1v
dGlvbk1hbmFnZXJDbGllbnQgKiljbGllbnQ7CistICh2b2lkKXJlbW92ZU9yaWVudGF0aW9uQ2xp
ZW50OihXZWJDb3JlOjpXZWJDb3JlTW90aW9uTWFuYWdlckNsaWVudCAqKWNsaWVudDsKIC0gKEJP
T0wpZ3lyb0F2YWlsYWJsZTsKIC0gKEJPT0wpaGVhZGluZ0F2YWlsYWJsZTsKIEBlbmQKSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJDb3JlTW90aW9uTWFuYWdlci5tbQo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvV2ViQ29yZU1vdGlvbk1hbmFn
ZXIubW0JKHJldmlzaW9uIDI1Mjk2MSkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9X
ZWJDb3JlTW90aW9uTWFuYWdlci5tbQkod29ya2luZyBjb3B5KQpAQCAtMjgsNiArMjgsOCBAQAog
CiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkgJiYgRU5BQkxFKERFVklDRV9PUklFTlRBVElPTikK
IAorI2ltcG9ydCAiRGV2aWNlTW90aW9uQ2xpZW50SU9TLmgiCisjaW1wb3J0ICJXZWJDb3JlTW90
aW9uTWFuYWdlckNsaWVudC5oIgogI2ltcG9ydCAiV2ViQ29yZU9iakNFeHRyYXMuaCIKICNpbXBv
cnQgIldlYkNvcmVUaHJlYWRSdW4uaCIKICNpbXBvcnQgPENvcmVMb2NhdGlvbi9Db3JlTG9jYXRp
b24uaD4KQEAgLTExMiwxNCArMTE0LDE0IEBAIC0gKHZvaWQpcmVtb3ZlTW90aW9uQ2xpZW50OihX
ZWJDb3JlOjpEZXYKICAgICAgICAgW3NlbGYgY2hlY2tDbGllbnRTdGF0dXNdOwogfQogCi0tICh2
b2lkKWFkZE9yaWVudGF0aW9uQ2xpZW50OihXZWJDb3JlOjpEZXZpY2VPcmllbnRhdGlvbkNsaWVu
dElPUyAqKWNsaWVudAorLSAodm9pZClhZGRPcmllbnRhdGlvbkNsaWVudDooV2ViQ29yZTo6V2Vi
Q29yZU1vdGlvbk1hbmFnZXJDbGllbnQgKiljbGllbnQKIHsKICAgICBtX2RldmljZU9yaWVudGF0
aW9uQ2xpZW50cy5hZGQoY2xpZW50KTsKICAgICBpZiAobV9pbml0aWFsaXplZCkKICAgICAgICAg
W3NlbGYgY2hlY2tDbGllbnRTdGF0dXNdOwogfQogCi0tICh2b2lkKXJlbW92ZU9yaWVudGF0aW9u
Q2xpZW50OihXZWJDb3JlOjpEZXZpY2VPcmllbnRhdGlvbkNsaWVudElPUyAqKWNsaWVudAorLSAo
dm9pZClyZW1vdmVPcmllbnRhdGlvbkNsaWVudDooV2ViQ29yZTo6V2ViQ29yZU1vdGlvbk1hbmFn
ZXJDbGllbnQgKiljbGllbnQKIHsKICAgICBtX2RldmljZU9yaWVudGF0aW9uQ2xpZW50cy5yZW1v
dmUoY2xpZW50KTsKICAgICBpZiAobV9pbml0aWFsaXplZCkKSW5kZXg6IFNvdXJjZS9XZWJLaXQv
Q2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCShyZXZpc2lv
biAyNTI5NjEpCisrKyBTb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAt
MSwzICsxLDMzIEBACisyMDE5LTExLTMwICBQZXIgQXJuZSBWb2xsYW4gIDxwdm9sbGFuQGFwcGxl
LmNvbT4KKworICAgICAgICBbaU9TXSBDYWxscyB0byBkZXZpY2Ugb3JpZW50YXRpb24gQVBJIHNo
b3VsZCBiZSBkb25lIGluIHRoZSBVSSBwcm9jZXNzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDQ3MjAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgV2ViIHBhZ2UgcHJveHkgbWVzc2FnZXMgdG8gc3Rh
cnQgYW5kIHN0b3AgdXBkYXRpbmcgZGV2aWNlIG9yaWVudGF0aW9uIGluIHRoZSBVSSBwcm9jZXNz
LiBBbHNvLCBhZGQgYSBtZXNzYWdlIHRvCisgICAgICAgIHRoZSBXZWIgcGFnZSB0byB1cGRhdGUg
dGhlIGRldmljZSBvcmllbnRhdGlvbiBpbiB0aGUgV2ViQ29udGVudCBwcm9jZXNzLiBJbiB0aGUg
VUkgcHJvY2VzcywgdGhlIGRldmljZSBvcmllbnRhdGlvbiBBUEkKKyAgICAgICAgaXMgY2FsbGVk
IHRocm91Z2ggdGhlIGFscmVhZHkgZXhpc3RpbmcgV2ViQ29yZU1vdGlvbk1hbmFnZXIgY2xhc3Mu
CisKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lmg6CisgICAgICAgICogVUlQcm9j
ZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dl
YlBhZ2VQcm94eUlPUy5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpzdGFydFVw
ZGF0aW5nRGV2aWNlT3JpZW50YXRpb24pOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6
OnN0b3BVcGRhdGluZ0RldmljZU9yaWVudGF0aW9uKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFn
ZVByb3h5OjpvcmllbnRhdGlvbkNoYW5nZWQpOgorICAgICAgICAqIFdlYktpdC54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2Vi
U2hhcmVkRGV2aWNlT3JpZW50YXRpb25DbGllbnQuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYktp
dDo6V2ViU2hhcmVkRGV2aWNlT3JpZW50YXRpb25DbGllbnQ6OnN0YXJ0VXBkYXRpbmcpOgorICAg
ICAgICAoV2ViS2l0OjpXZWJTaGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudDo6c3RvcFVwZGF0
aW5nKToKKyAgICAgICAgKFdlYktpdDo6V2ViU2hhcmVkRGV2aWNlT3JpZW50YXRpb25DbGllbnQ6
OmRldmljZU9yaWVudGF0aW9uQ2hhbmdlZCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3Jl
U3VwcG9ydC9XZWJTaGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudC5oOiBBZGRlZC4KKyAgICAg
ICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHA6CisgICAgICAgIChXZWJLaXQ6Om1f
b3ZlcnJpZGRlbk1lZGlhVHlwZSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBh
Z2UuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbjoK
KyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW06CisgICAgICAg
IChXZWJLaXQ6OldlYlBhZ2U6OmRldmljZU9yaWVudGF0aW9uQ2hhbmdlZCk6CisKIDIwMTktMTEt
MjcgIEFudG9pbmUgUXVpbnQgIDxncmFvdXRzQGFwcGxlLmNvbT4KIAogICAgICAgICBbV2ViIEFu
aW1hdGlvbnNdIEVuYWJsZSBXZWJBbmltYXRpb25zQ1NTSW50ZWdyYXRpb25FbmFibGVkIGJ5IGRl
ZmF1bHQKSW5kZXg6IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAkocmV2
aXNpb24gMjUyOTYxKQorKysgU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNw
cAkod29ya2luZyBjb3B5KQpAQCAtNTIwLDYgKzUyMCwxMCBAQCBXZWJQYWdlUHJveHk6On5XZWJQ
YWdlUHJveHkoKQogICAgIG1fcHJlZmVyZW5jZXMtPnJlbW92ZVBhZ2UoKnRoaXMpOwogICAgIG1f
cGFnZUdyb3VwLT5yZW1vdmVQYWdlKHRoaXMpOwogCisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkg
JiYgRU5BQkxFKERFVklDRV9PUklFTlRBVElPTikKKyAgICBzdG9wVXBkYXRpbmdEZXZpY2VPcmll
bnRhdGlvbnMoKTsKKyNlbmRpZgorICAgIAogI2lmbmRlZiBOREVCVUcKICAgICB3ZWJQYWdlUHJv
eHlDb3VudGVyLmRlY3JlbWVudCgpOwogI2VuZGlmCkluZGV4OiBTb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJQYWdlUHJveHkuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJQYWdlUHJveHkuaAkocmV2aXNpb24gMjUyOTYxKQorKysgU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvV2ViUGFnZVByb3h5LmgJKHdvcmtpbmcgY29weSkKQEAgLTE0OSw2ICsxNDksMTAgQEAg
T0JKQ19DTEFTUyBfV0tSZW1vdGVPYmplY3RSZWdpc3RyeTsKICNpbmNsdWRlICJTT0F1dGhvcml6
YXRpb25Mb2FkUG9saWN5LmgiCiAjZW5kaWYKIAorI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpICYm
IEVOQUJMRShERVZJQ0VfT1JJRU5UQVRJT04pCisjaW5jbHVkZSA8V2ViQ29yZS9XZWJDb3JlTW90
aW9uTWFuYWdlckNsaWVudC5oPgorI2VuZGlmCisKICNpZiBFTkFCTEUoTUVESUFfU0VTU0lPTikK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIE1lZGlhU2Vzc2lvbk1ldGFkYXRhOwpAQCAtMTU5
LDYgKzE2MywxMCBAQCBjbGFzcyBNZWRpYVNlc3Npb25NZXRhZGF0YTsKIGludGVyZmFjZSBJRDNE
MTFEZXZpY2UxOwogI2VuZGlmCiAKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKSAmJiBFTkFCTEUo
REVWSUNFX09SSUVOVEFUSU9OKQorT0JKQ19DTEFTUyBXZWJDb3JlTW90aW9uTWFuYWdlcjsKKyNl
bmRpZgorCiBuYW1lc3BhY2UgQVBJIHsKIGNsYXNzIEF0dGFjaG1lbnQ7CiBjbGFzcyBDb250ZXh0
TWVudUNsaWVudDsKQEAgLTQxMCw2ICs0MTgsOSBAQCBjbGFzcyBXZWJQYWdlUHJveHkgOiBwdWJs
aWMgQVBJOjpPYmplY3RJCiAgICAgLCBwdWJsaWMgV2ViQ29yZTo6UGxhdGZvcm1TcGVlY2hTeW50
aGVzaXNVdHRlcmFuY2VDbGllbnQKICAgICAsIHB1YmxpYyBXZWJDb3JlOjpQbGF0Zm9ybVNwZWVj
aFN5bnRoZXNpemVyQ2xpZW50CiAjZW5kaWYKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKSAmJiBF
TkFCTEUoREVWSUNFX09SSUVOVEFUSU9OKQorICAgICwgcHVibGljIFdlYkNvcmU6OldlYkNvcmVN
b3Rpb25NYW5hZ2VyQ2xpZW50CisjZW5kaWYKICAgICAsIHB1YmxpYyBDYW5NYWtlV2Vha1B0cjxX
ZWJQYWdlUHJveHk+IHsKIHB1YmxpYzoKICAgICBzdGF0aWMgUmVmPFdlYlBhZ2VQcm94eT4gY3Jl
YXRlKFBhZ2VDbGllbnQmLCBXZWJQcm9jZXNzUHJveHkmLCBSZWY8QVBJOjpQYWdlQ29uZmlndXJh
dGlvbj4mJik7CkBAIC0xNjI0LDYgKzE2MzUsMTEgQEAgcHVibGljOgogICAgIGNvbnN0IFN0cmlu
ZyYgb3ZlcnJpZGRlbk1lZGlhVHlwZSgpIGNvbnN0IHsgcmV0dXJuIG1fb3ZlcnJpZGRlbk1lZGlh
VHlwZTsgfQogICAgIHZvaWQgc2V0T3ZlcnJpZGRlbk1lZGlhVHlwZShjb25zdCBTdHJpbmcmKTsK
IAorI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpICYmIEVOQUJMRShERVZJQ0VfT1JJRU5UQVRJT04p
CisgICAgdm9pZCBzdGFydFVwZGF0aW5nRGV2aWNlT3JpZW50YXRpb24oKTsKKyAgICB2b2lkIHN0
b3BVcGRhdGluZ0RldmljZU9yaWVudGF0aW9uKCk7CisjZW5kaWYKKwogcHJpdmF0ZToKICAgICBX
ZWJQYWdlUHJveHkoUGFnZUNsaWVudCYsIFdlYlByb2Nlc3NQcm94eSYsIFJlZjxBUEk6OlBhZ2VD
b25maWd1cmF0aW9uPiYmKTsKICAgICB2b2lkIHBsYXRmb3JtSW5pdGlhbGl6ZSgpOwpAQCAtMjE2
Nyw2ICsyMTgzLDExIEBAIHByaXZhdGU6CiAgICAgdm9pZCByZXNldFNwZWVjaFN5bnRoZXNpemVy
KCk7CiAjZW5kaWYKIAorI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpICYmIEVOQUJMRShERVZJQ0Vf
T1JJRU5UQVRJT04pCisgICAgLy8gV2ViQ29yZTo6V2ViQ29yZU1vdGlvbk1hbmFnZXJDbGllbnQK
KyAgICB2b2lkIG9yaWVudGF0aW9uQ2hhbmdlZChkb3VibGUsIGRvdWJsZSwgZG91YmxlLCBkb3Vi
bGUsIGRvdWJsZSkgb3ZlcnJpZGU7CisjZW5kaWYKKwogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkp
CiAgICAgc3RhdGljIGJvb2wgaXNJbkhhcmR3YXJlS2V5Ym9hcmRNb2RlKCk7CiAgICAgdm9pZCBj
bGVhckF1ZGlibGVBY3Rpdml0eSgpOwpAQCAtMjYyNCw2ICsyNjQ1LDEwIEBAIHByaXZhdGU6CiAg
ICAgYm9vbCBtX2lzUXVvdGFJbmNyZWFzZURlbmllZCB7IGZhbHNlIH07CiAgICAgCiAgICAgU3Ry
aW5nIG1fb3ZlcnJpZGRlbk1lZGlhVHlwZTsKKworI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpICYm
IEVOQUJMRShERVZJQ0VfT1JJRU5UQVRJT04pCisgICAgV2ViQ29yZU1vdGlvbk1hbmFnZXIqIG1f
bW90aW9uTWFuYWdlciB7IG51bGxwdHIgfTsKKyNlbmRpZgogfTsKIAogfSAvLyBuYW1lc3BhY2Ug
V2ViS2l0CkluZGV4OiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2Fn
ZXMuaW4KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5
Lm1lc3NhZ2VzLmluCShyZXZpc2lvbiAyNTI5NjEpCisrKyBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4JKHdvcmtpbmcgY29weSkKQEAgLTU4Niw0ICs1ODYs
OSBAQCBtZXNzYWdlcyAtPiBXZWJQYWdlUHJveHkgewogCiAgICAgRGlkRmluZFRleHRNYW5pcHVs
YXRpb25JdGVtKFdlYkNvcmU6OlRleHRNYW5pcHVsYXRpb25Db250cm9sbGVyOjpJdGVtSWRlbnRp
ZmllciBpdGVtSUQsIFZlY3RvcjxXZWJDb3JlOjpUZXh0TWFuaXB1bGF0aW9uQ29udHJvbGxlcjo6
TWFuaXB1bGF0aW9uVG9rZW4+IHRva2VucykKIAorI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpICYm
IEVOQUJMRShERVZJQ0VfT1JJRU5UQVRJT04pCisgICAgU3RhcnRVcGRhdGluZ0RldmljZU9yaWVu
dGF0aW9uKCk7CisgICAgU3RvcFVwZGF0aW5nRGV2aWNlT3JpZW50YXRpb24oKTsKKyNlbmRpZgor
CiB9CkluZGV4OiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV2ViUGFnZVByb3h5SU9TLm1t
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XZWJQYWdlUHJveHlJ
T1MubW0JKHJldmlzaW9uIDI1Mjk2MSkKKysrIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9X
ZWJQYWdlUHJveHlJT1MubW0JKHdvcmtpbmcgY29weSkKQEAgLTc1LDYgKzc1LDEwIEBACiAjaW1w
b3J0IDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KICNlbmRpZgogCisjaWYgRU5BQkxFKERFVklDRV9P
UklFTlRBVElPTikKKyNpbXBvcnQgPFdlYkNvcmUvV2ViQ29yZU1vdGlvbk1hbmFnZXIuaD4KKyNl
bmRpZgorCiAjZGVmaW5lIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoY2hhbm5lbCwgZm10LCAuLi4p
IFJFTEVBU0VfTE9HX0lGKGlzQWx3YXlzT25Mb2dnaW5nQWxsb3dlZCgpLCBjaGFubmVsLCAiJXAg
LSBbcGFnZVByb3h5SUQ9JWxsdSwgd2ViUGFnZUlEPSVsbHUsIFBJRD0laV0gV2ViUGFnZVByb3h5
OjoiIGZtdCwgdGhpcywgbV9pZGVudGlmaWVyLnRvVUludDY0KCksIG1fd2ViUGFnZUlELnRvVUlu
dDY0KCksIG1fcHJvY2Vzcy0+cHJvY2Vzc0lkZW50aWZpZXIoKSwgIyNfX1ZBX0FSR1NfXykKIAog
bmFtZXNwYWNlIFdlYktpdCB7CkBAIC0xNDgzLDYgKzE0ODcsMjYgQEAgV2ViQ29udGVudE1vZGUg
V2ViUGFnZVByb3h5OjplZmZlY3RpdmVDbwogICAgIHJldHVybiBXZWJDb250ZW50TW9kZTo6RGVz
a3RvcDsKIH0KIAorI2lmIEVOQUJMRShERVZJQ0VfT1JJRU5UQVRJT04pCit2b2lkIFdlYlBhZ2VQ
cm94eTo6c3RhcnRVcGRhdGluZ0RldmljZU9yaWVudGF0aW9uKCkKK3sKKyAgICBpZiAoIW1fbW90
aW9uTWFuYWdlcikKKyAgICAgICAgbV9tb3Rpb25NYW5hZ2VyID0gW1dlYkNvcmVNb3Rpb25NYW5h
Z2VyIHNoYXJlZE1hbmFnZXJdOworICAgIFttX21vdGlvbk1hbmFnZXIgYWRkT3JpZW50YXRpb25D
bGllbnQ6dGhpc107Cit9CisKK3ZvaWQgV2ViUGFnZVByb3h5OjpzdG9wVXBkYXRpbmdEZXZpY2VP
cmllbnRhdGlvbigpCit7CisgICAgW21fbW90aW9uTWFuYWdlciByZW1vdmVPcmllbnRhdGlvbkNs
aWVudDp0aGlzXTsKK30KKwordm9pZCBXZWJQYWdlUHJveHk6Om9yaWVudGF0aW9uQ2hhbmdlZChk
b3VibGUgYWxwaGEsIGRvdWJsZSBiZXRhLCBkb3VibGUgZ2FtbWEsIGRvdWJsZSBjb21wYXNzSGVh
ZGluZywgZG91YmxlIGNvbXBhc3NBY2N1cmFjeSkKK3sKKyAgICBzZW5kKE1lc3NhZ2VzOjpXZWJQ
YWdlOjpEZXZpY2VPcmllbnRhdGlvbkNoYW5nZWQoYWxwaGEsIGJldGEsIGdhbW1hLCBjb21wYXNz
SGVhZGluZywgY29tcGFzc0FjY3VyYWN5KSwgMCk7Cit9CisjZW5kaWYKKworCiB9IC8vIG5hbWVz
cGFjZSBXZWJLaXQKIAogI3VuZGVmIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQKSW5kZXg6IFNvdXJj
ZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkocmV2aXNpb24g
MjUyOTYxKQorKysgU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agkod29ya2luZyBjb3B5KQpAQCAtMTY4OSw2ICsxNjg5LDcgQEAKIAkJRTFEMjZBNTMxNzU5NjRE
OTAwOTVCRkQxIC8qIFdlYkNvbnRlbnRQcm9jZXNzLnhpYiBpbiBSZXNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTFEMjZBNEMxNzU5NjM0RTAwOTVCRkQxIC8qIFdl
YkNvbnRlbnRQcm9jZXNzLnhpYiAqLzsgfTsKIAkJRTFFNTUyQzUxNkFFMDY1RjAwNEVENjUzIC8q
IFNhbmRib3hJbml0aWFsaXphdGlvblBhcmFtZXRlcnMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxRTU1MkMzMTZBRTA2NUUwMDRFRDY1MyAvKiBTYW5k
Ym94SW5pdGlhbGl6YXRpb25QYXJhbWV0ZXJzLmggKi87IH07CiAJCUUxRUU1M0UzMTFGOENGQzAw
MENDQkVFNCAvKiBJbmplY3RlZEJ1bmRsZVBhZ2VFZGl0b3JDbGllbnQuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxRUU1M0RDMTFGOENGOUYwMENDQkVF
NCAvKiBJbmplY3RlZEJ1bmRsZVBhZ2VFZGl0b3JDbGllbnQuaCAqLzsgfTsKKwkJRTM5NjI4QUEy
Mzg4QUJEODAwNjU4RUNEIC8qIFdlYlNoYXJlZERldmljZU9yaWVudGF0aW9uQ2xpZW50LmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUzOTYyOEE5MjM4
OEFCRDgwMDY1OEVDRCAvKiBXZWJTaGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudC5jcHAgKi87
IH07CiAJCUU0MTNGNTlEMUFDMUFEQzQwMDM0NTM2MCAvKiBOZXR3b3JrQ2FjaGVFbnRyeS5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTQxM0Y1OUIxQUMx
QURCNjAwMzQ1MzYwIC8qIE5ldHdvcmtDYWNoZUVudHJ5LmggKi87IH07CiAJCUU0MkUwNjEwMUFB
NzUyM0IwMEIxMTY5OSAvKiBOZXR3b3JrQ2FjaGVJT0NoYW5uZWwuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU0MkUwNjBCMUFBNzQ0MEQwMEIxMTY5OSAv
KiBOZXR3b3JrQ2FjaGVJT0NoYW5uZWwuaCAqLzsgfTsKIAkJRTQyRTA2MTIxQUE3NUFCRDAwQjEx
Njk5IC8qIE5ldHdvcmtDYWNoZURhdGEuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEU0MkUwNjExMUFBNzVBQkQwMEIxMTY5OSAvKiBOZXR3b3JrQ2FjaGVE
YXRhLmggKi87IH07CkBAIC00NzQ4LDYgKzQ3NDksOCBAQAogCQlFMUVFNTNEQzExRjhDRjlGMDBD
Q0JFRTQgLyogSW5qZWN0ZWRCdW5kbGVQYWdlRWRpdG9yQ2xpZW50LmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IEluamVjdGVkQnVuZGxlUGFnZUVkaXRvckNsaWVudC5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFMUVFNTNFNjExRjhDRkZCMDBDQ0JFRTQgLyogSW5q
ZWN0ZWRCdW5kbGVQYWdlRWRpdG9yQ2xpZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IEluamVjdGVkQnVuZGxlUGFnZUVkaXRvckNsaWVudC5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUzNDM5QjYzMjM0NTQ2M0EwMDExREUwQiAvKiBOZXR3b3Jr
UHJvY2Vzc0Nvbm5lY3Rpb25JbmZvLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IE5ldHdvcmtQcm9jZXNzQ29u
bmVjdGlvbkluZm8uaDsgcGF0aCA9IE5ldHdvcmsvTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uSW5m
by5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFMzk2MjhBODIzODhBNUQ0MDA2NThF
Q0QgLyogV2ViU2hhcmVkRGV2aWNlT3JpZW50YXRpb25DbGllbnQuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
V2ViU2hhcmVkRGV2aWNlT3JpZW50YXRpb25DbGllbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJRTM5NjI4QTkyMzg4QUJEODAwNjU4RUNEIC8qIFdlYlNoYXJlZERldmljZU9yaWVu
dGF0aW9uQ2xpZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYlNoYXJlZERldmljZU9yaWVu
dGF0aW9uQ2xpZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTQwNDkwNzAy
MURFNjVGNzAwMzdGMERCIC8qIFNjcm9sbGVyUGFpck1hYy5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBTY3JvbGxlclBhaXJNYWMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJRTQwNDkwNzEyMURFNjVGNzAwMzdGMERCIC8qIFNjcm9sbGluZ1RyZWVGcmFtZVNjcm9s
bGluZ05vZGVSZW1vdGVNYWMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gU2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZVJlbW90ZU1hYy5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCUU0MDQ5MDcyMjFERTY1RjcwMDM3RjBEQiAvKiBTY3JvbGxl
clBhaXJNYWMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBTY3Jv
bGxlclBhaXJNYWMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC01ODU0LDYgKzU4
NTcsOCBAQAogCQkJCTJEMjhGM0UzMTg4NUNDQzEwMDRCOUVBRSAvKiBXZWJGcmFtZUxvYWRlckNs
aWVudElPUy5tbSAqLywKIAkJCQlBMUM1MTJDNjE5MDY1NkU1MDA0NDg5MTQgLyogV2ViUHJldmll
d0xvYWRlckNsaWVudC5jcHAgKi8sCiAJCQkJQTFDNTEyQzcxOTA2NTZFNTAwNDQ4OTE0IC8qIFdl
YlByZXZpZXdMb2FkZXJDbGllbnQuaCAqLywKKwkJCQlFMzk2MjhBOTIzODhBQkQ4MDA2NThFQ0Qg
LyogV2ViU2hhcmVkRGV2aWNlT3JpZW50YXRpb25DbGllbnQuY3BwICovLAorCQkJCUUzOTYyOEE4
MjM4OEE1RDQwMDY1OEVDRCAvKiBXZWJTaGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudC5oICov
LAogCQkJKTsKIAkJCW5hbWUgPSBpb3M7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwpAQCAt
OTgyMCw3ICs5ODI1LDYgQEAKIAkJCQk1MTFGOEE3QjEzOEI0NjA5MDBBOTVGNDQgLyogU2VjSXRl
bVNoaW1MaWJyYXJ5LmggaW4gSGVhZGVycyAqLywKIAkJCQlFMThFNjkwQzE2OUI1NjNGMDA5QjY2
NzAgLyogU2VjSXRlbVNoaW1Qcm94eS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTE4RTY5MTgxNjlC
NjY3QjAwOUI2NjcwIC8qIFNlY0l0ZW1TaGltUHJveHlNZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8s
Ci0JCQkJN0FBNzQ2RDUyMzU5M0Q4MTAwMDk1MDUwIC8qIFNlY0l0ZW1TUEkuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTU3MEFCOEYzMjBBRTNCRDcwMEI4QkU4NyAvKiBTZWNLZXlQcm94eVN0b3JlLmgg
aW4gSGVhZGVycyAqLywKIAkJCQk1MTREOUY1NzE5MTE5RDM1MDAwMDYzQTcgLyogU2VydmljZXND
b250cm9sbGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQUZERTY1QTE5NTRBNDJCMDBDNDhGRkEg
LyogU2Vzc2lvblN0YXRlLmggaW4gSGVhZGVycyAqLywKQEAgLTExNjE5LDYgKzExNjIzLDcgQEAK
IAkJCQk1MUYwNjBFMTE2NTQzMTg1MDBGMzI4MUYgLyogV2ViUlRDTW9uaXRvck1lc3NhZ2VSZWNl
aXZlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk1MUYwNjBFMTE2NTQzMTg1MDBGMzI4MkMgLyog
V2ViUlRDUmVzb2x2ZXJNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNTFG
MDYwRTExNjU0MzE4NTAwRjMyODFDIC8qIFdlYlJUQ1NvY2tldE1lc3NhZ2VSZWNlaXZlci5jcHAg
aW4gU291cmNlcyAqLywKKwkJCQlFMzk2MjhBQTIzODhBQkQ4MDA2NThFQ0QgLyogV2ViU2hhcmVk
RGV2aWNlT3JpZW50YXRpb25DbGllbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNDFGMDYwRTEx
NjU0MzE4NTAwRjMyODFDIC8qIFdlYlNvY2tldENoYW5uZWxNZXNzYWdlUmVjZWl2ZXIuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJNUMwQjE3NzkxRTdDODgyMTAwRTkxMjNDIC8qIFdlYlNvY2tldFN0
cmVhbU1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk0MTI4N0Q0RTIyNUQx
RUNCMDA5QTNFMjYgLyogV2ViU29ja2V0VGFza0NvY29hLm1tIGluIFNvdXJjZXMgKi8sCkluZGV4
OiBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViU2hhcmVkRGV2aWNl
T3JpZW50YXRpb25DbGllbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJTaGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudC5jcHAJ
KG5vbmV4aXN0ZW50KQorKysgU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0
L1dlYlNoYXJlZERldmljZU9yaWVudGF0aW9uQ2xpZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAt
MCwwICsxLDYwIEBACisvKgorKiBDb3B5cmlnaHQgKEMpIDIwMTkgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorKgorKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisqIGFyZSBtZXQ6Cisq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorKgorKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisqIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorKiBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisqIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GCisqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUworKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorKiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KQorKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GCisqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyov
CisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJXZWJTaGFyZWREZXZpY2VPcmllbnRh
dGlvbkNsaWVudC5oIgorCisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkgJiYgRU5BQkxFKERFVklD
RV9PUklFTlRBVElPTikKKworI2luY2x1ZGUgIldlYlBhZ2UuaCIKKyNpbmNsdWRlICJXZWJQYWdl
UHJveHlNZXNzYWdlcy5oIgorCisjaW5jbHVkZSA8V2ViQ29yZS9XZWJDb3JlTW90aW9uTWFuYWdl
ckNsaWVudC5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKKwordm9pZCBXZWJTaGFyZWREZXZpY2VP
cmllbnRhdGlvbkNsaWVudDo6c3RhcnRVcGRhdGluZyhXZWJDb3JlOjpXZWJDb3JlTW90aW9uTWFu
YWdlckNsaWVudCYgY2xpZW50KQoreworICAgIGlmIChtX2NsaWVudHMuaXNFbXB0eSgpKQorICAg
ICAgICBtX3BhZ2Uuc2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpTdGFydFVwZGF0aW5nRGV2
aWNlT3JpZW50YXRpb24oKSk7CisgICAgbV9jbGllbnRzLmFkZCgmY2xpZW50KTsKK30KKwordm9p
ZCBXZWJTaGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudDo6c3RvcFVwZGF0aW5nKFdlYkNvcmU6
OldlYkNvcmVNb3Rpb25NYW5hZ2VyQ2xpZW50JiBjbGllbnQpCit7CisgICAgbV9jbGllbnRzLnJl
bW92ZSgmY2xpZW50KTsKKyAgICBpZiAobV9jbGllbnRzLmlzRW1wdHkoKSkKKyAgICAgICAgbV9w
YWdlLnNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6U3RvcFVwZGF0aW5nRGV2aWNlT3JpZW50
YXRpb24oKSk7Cit9CisKK3ZvaWQgV2ViU2hhcmVkRGV2aWNlT3JpZW50YXRpb25DbGllbnQ6OmRl
dmljZU9yaWVudGF0aW9uQ2hhbmdlZChkb3VibGUgYWxwaGEsIGRvdWJsZSBiZXRhLCBkb3VibGUg
Z2FtbWEsIGRvdWJsZSBjb21wYXNzSGVhZGluZywgZG91YmxlIGNvbXBhc3NBY2N1cmFjeSkKK3sK
KyAgICBmb3IgKGF1dG8gY2xpZW50IDogbV9jbGllbnRzKQorICAgICAgICBjbGllbnQtPm9yaWVu
dGF0aW9uQ2hhbmdlZChhbHBoYSwgYmV0YSwgZ2FtbWEsIGNvbXBhc3NIZWFkaW5nLCBjb21wYXNz
QWNjdXJhY3kpOworfQorCit9OworCisjZW5kaWYKSW5kZXg6IFNvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJTaGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudC5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJT
aGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudC5oCShub25leGlzdGVudCkKKysrIFNvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJTaGFyZWREZXZpY2VPcmllbnRhdGlv
bkNsaWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNTggQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRS
SUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJ
VFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisj
cHJhZ21hIG9uY2UKKworI2luY2x1ZGUgPFdlYkNvcmUvU2hhcmVkRGV2aWNlT3JpZW50YXRpb25D
bGllbnQuaD4KKworI2luY2x1ZGUgPHd0Zi9IYXNoU2V0Lmg+CisKKyNpZiBQTEFURk9STShJT1Nf
RkFNSUxZKSAmJiBFTkFCTEUoREVWSUNFX09SSUVOVEFUSU9OKQorCituYW1lc3BhY2UgV2ViS2l0
IHsKKworY2xhc3MgV2ViUGFnZTsKKworY2xhc3MgV2ViU2hhcmVkRGV2aWNlT3JpZW50YXRpb25D
bGllbnQgZmluYWwgOiBwdWJsaWMgV2ViQ29yZTo6U2hhcmVkRGV2aWNlT3JpZW50YXRpb25DbGll
bnQgeworICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOworcHVibGljOgorICAgIFdlYlNoYXJl
ZERldmljZU9yaWVudGF0aW9uQ2xpZW50KFdlYlBhZ2UmIHBhZ2UpCisgICAgICAgIDogbV9wYWdl
KHBhZ2UpCisgICAgeworICAgIH0KKworICAgIHZvaWQgc3RhcnRVcGRhdGluZyhXZWJDb3JlOjpX
ZWJDb3JlTW90aW9uTWFuYWdlckNsaWVudCYpIG92ZXJyaWRlOworICAgIHZvaWQgc3RvcFVwZGF0
aW5nKFdlYkNvcmU6OldlYkNvcmVNb3Rpb25NYW5hZ2VyQ2xpZW50Jikgb3ZlcnJpZGU7CisKKyAg
ICB2b2lkIGRldmljZU9yaWVudGF0aW9uQ2hhbmdlZChkb3VibGUsIGRvdWJsZSwgZG91YmxlLCBk
b3VibGUsIGRvdWJsZSkgb3ZlcnJpZGU7CisKK3ByaXZhdGU6CisgICAgV2ViUGFnZSYgbV9wYWdl
OworICAgIEhhc2hTZXQ8V2ViQ29yZTo6V2ViQ29yZU1vdGlvbk1hbmFnZXJDbGllbnQqPiBtX2Ns
aWVudHM7Cit9OworCit9CisKKyNlbmRpZgpJbmRleDogU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYlBhZ2UvV2ViUGFnZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAJKHJldmlzaW9uIDI1Mjk2MSkKKysrIFNvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMjAs
NiArMTIwLDcgQEAKICNpbmNsdWRlICJXZWJQcm9jZXNzUHJveHlNZXNzYWdlcy5oIgogI2luY2x1
ZGUgIldlYlByb2dyZXNzVHJhY2tlckNsaWVudC5oIgogI2luY2x1ZGUgIldlYlNlcnZpY2VXb3Jr
ZXJQcm92aWRlci5oIgorI2luY2x1ZGUgIldlYlNoYXJlZERldmljZU9yaWVudGF0aW9uQ2xpZW50
LmgiCiAjaW5jbHVkZSAiV2ViU29ja2V0UHJvdmlkZXIuaCIKICNpbmNsdWRlICJXZWJTcGVlY2hT
eW50aGVzaXNDbGllbnQuaCIKICNpbmNsdWRlICJXZWJTdG9yYWdlTmFtZXNwYWNlUHJvdmlkZXIu
aCIKQEAgLTUwMSw2ICs1MDIsOCBAQCBXZWJQYWdlOjpXZWJQYWdlKFBhZ2VJZGVudGlmaWVyIHBh
Z2VJRCwgCiAjaWYgRU5BQkxFKEFQUExJQ0FUSU9OX01BTklGRVNUKQogICAgIHBhZ2VDb25maWd1
cmF0aW9uLmFwcGxpY2F0aW9uTWFuaWZlc3QgPSBwYXJhbWV0ZXJzLmFwcGxpY2F0aW9uTWFuaWZl
c3Q7CiAjZW5kaWYKKyAgICAKKyAgICBwYWdlQ29uZmlndXJhdGlvbi5zaGFyZWREZXZpY2VPcmll
bnRhdGlvbkNsaWVudCA9IG5ldyBXZWJTaGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudCgqdGhp
cyk7CiAKICAgICBtX3BhZ2UgPSBtYWtlVW5pcXVlPFBhZ2U+KFdURk1vdmUocGFnZUNvbmZpZ3Vy
YXRpb24pKTsKIApJbmRleDogU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFn
ZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBh
Z2UuaAkocmV2aXNpb24gMjUyOTYxKQorKysgU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBh
Z2UvV2ViUGFnZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0xMjQ0LDYgKzEyNDQsMTAgQEAgcHVibGlj
OgogICAgIGNvbnN0IFN0cmluZyYgb3ZlcnJpZGRlbk1lZGlhVHlwZSgpIGNvbnN0IHsgcmV0dXJu
IG1fb3ZlcnJpZGRlbk1lZGlhVHlwZTsgfQogICAgIHZvaWQgc2V0T3ZlcnJpZGRlbk1lZGlhVHlw
ZShjb25zdCBTdHJpbmcmKTsKICAgICAKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKSAmJiBFTkFC
TEUoREVWSUNFX09SSUVOVEFUSU9OKQorICAgIHZvaWQgZGV2aWNlT3JpZW50YXRpb25DaGFuZ2Vk
KGRvdWJsZSBhbHBoYSwgZG91YmxlIGJldGEsIGRvdWJsZSBnYW1tYSwgZG91YmxlIGNvbXBhc3NI
ZWFkaW5nLCBkb3VibGUgY29tcGFzc0FjY3VyYWN5KTsKKyNlbmRpZgorCiBwcml2YXRlOgogICAg
IFdlYlBhZ2UoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIFdlYlBhZ2VDcmVhdGlvblBhcmFtZXRl
cnMmJik7CiAKSW5kZXg6IFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2Uu
bWVzc2FnZXMuaW4KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBh
Z2UvV2ViUGFnZS5tZXNzYWdlcy5pbgkocmV2aXNpb24gMjUyOTYxKQorKysgU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbgkod29ya2luZyBjb3B5KQpA
QCAtNTgzLDQgKzU4Myw4IEBAIEdlbmVyYXRlU3ludGhldGljRWRpdGluZ0NvbW1hbmQoZW51bTp1
aW4KICAgICBDb21wbGV0ZVRleHRNYW5pcHVsYXRpb24oV2ViQ29yZTo6VGV4dE1hbmlwdWxhdGlv
bkNvbnRyb2xsZXI6Okl0ZW1JZGVudGlmaWVyIGl0ZW1JRCwgVmVjdG9yPFdlYkNvcmU6OlRleHRN
YW5pcHVsYXRpb25Db250cm9sbGVyOjpNYW5pcHVsYXRpb25Ub2tlbj4gdG9rZW5zKSAtPiAoZW51
bTp1aW50OF90IFdlYkNvcmU6OlRleHRNYW5pcHVsYXRpb25Db250cm9sbGVyOjpNYW5pcHVsYXRp
b25SZXN1bHQgcmVzdWx0KSBBc3luYwogICAgIAogICAgIFNldE92ZXJyaWRkZW5NZWRpYVR5cGUo
U3RyaW5nIG1lZGlhVHlwZSkKKyAgICAKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKSAmJiBFTkFC
TEUoREVWSUNFX09SSUVOVEFUSU9OKQorICAgIERldmljZU9yaWVudGF0aW9uQ2hhbmdlZChkb3Vi
bGUgYWxwaGEsIGRvdWJsZSBiZXRhLCBkb3VibGUgZ2FtbWEsIGRvdWJsZSBjb21wYXNzSGVhZGlu
ZywgZG91YmxlIGNvbXBhc3NBY2N1cmFjeSkKKyNlbmRpZgogfQpJbmRleDogU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW0KPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW0JKHJldmlzaW9u
IDI1Mjk2MSkKKysrIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdl
SU9TLm1tCSh3b3JraW5nIGNvcHkpCkBAIC00MDg4LDYgKzQwODgsMTQgQEAgdm9pZCBXZWJQYWdl
OjpyZXF1ZXN0UGFzc3dvcmRGb3JRdWlja0xvbwogCiAjZW5kaWYKIAorI2lmIEVOQUJMRShERVZJ
Q0VfT1JJRU5UQVRJT04pCit2b2lkIFdlYlBhZ2U6OmRldmljZU9yaWVudGF0aW9uQ2hhbmdlZChk
b3VibGUgYWxwaGEsIGRvdWJsZSBiZXRhLCBkb3VibGUgZ2FtbWEsIGRvdWJsZSBjb21wYXNzSGVh
ZGluZywgZG91YmxlIGNvbXBhc3NBY2N1cmFjeSkKK3sKKyAgICBpZiAoY29yZVBhZ2UoKSAmJiBj
b3JlUGFnZSgpLT5zaGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudCgpKQorICAgICAgICBjb3Jl
UGFnZSgpLT5zaGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudCgpLT5kZXZpY2VPcmllbnRhdGlv
bkNoYW5nZWQoYWxwaGEsIGJldGEsIGdhbW1hLCBjb21wYXNzSGVhZGluZywgY29tcGFzc0FjY3Vy
YWN5KTsKK30KKyNlbmRpZgorCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKIAogI3VuZGVmIFJFTEVB
U0VfTE9HX0lGX0FMTE9XRUQK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>384558</attachid>
            <date>2019-11-30 16:47:12 -0800</date>
            <delta_ts>2019-11-30 16:54:10 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-204720-20191130164711.patch</filename>
            <type>text/plain</type>
            <size>47898</size>
            <attacher name="Per Arne Vollan">pvollan</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDI1Mjk2MSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDUwIEBACisyMDE5LTExLTMwICBQZXIgQXJu
ZSBWb2xsYW4gIDxwdm9sbGFuQGFwcGxlLmNvbT4KKworICAgICAgICBbaU9TXSBDYWxscyB0byBk
ZXZpY2Ugb3JpZW50YXRpb24gQVBJIHNob3VsZCBiZSBkb25lIGluIHRoZSBVSSBwcm9jZXNzCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDQ3MjAKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGUgZGV2aWNl
IG9yaWVudGF0aW9uIEFQSSBvbiBpT1MgaXMgY29tbXVuaWNhdGluZyB3aXRoIGxvY2F0aW9uZC4g
U2luY2UgbWFjaCBsb29rdXAgdG8gdGhpcyBkYWVtb24KKyAgICAgICAgd2lsbCBiZSBjbG9zZWQs
IHRoZSBjYWxscyB0byB0aGlzIEFQSSBzaG91bGQgYmUgbW92ZWQgZnJvbSB0aGUgV2ViQ29udGVu
dCBwcm9jZXNzIHRvIHRoZSBVSSBwcm9jZXNzLgorICAgICAgICBUaGlzIHBhdGNoIGltcGxlbWVu
dHMgZm9yd2FyZGluZyBvZiB0aGUgZGV2aWNlIG9yaWVudGF0aW9uIHJlcXVlc3RzIHRvIHRoZSBV
SSBwcm9jZXNzIHRocm91Z2ggYSBuZXcKKyAgICAgICAgY2xhc3MsIFNoYXJlZERldmljZU9yaWVu
dGF0aW9uQ2xpZW50LCB3aGljaCBpcyBzdWJjbGFzc2VkIGJ5IFdlYlNoYXJlZERldmljZU9yaWVu
dGF0aW9uQ2xpZW50IGluCisgICAgICAgIG1vZGVybiBXZWJLaXQuIFRoaXMgY2xhc3MgaW1wbGVt
ZW50cyBmb3J3YXJkaW5nIG9mIHRoZSByZXF1ZXN0cyB0byB0aGUgVUkgcHJvY2VzcywgYW5kIHJl
Y2VpdmVzCisgICAgICAgIGRldmljZSBvcmllbnRhdGlvbiB1cGRhdGVzIGZyb20gdGhlIFVJIHBy
b2Nlc3MuIEFuIGluc3RhbmNlIG9mIHRoaXMgY2xhc3Mgd2lsbCBiZSBzaGFyZWQgYnkgYWxsCisg
ICAgICAgIGRldmljZSBvcmllbnRhdGlvbiBjbGllbnRzIG9uIGEgcGFnZSwgYW5kIHBhc3NlZCBh
cyBwYXJ0IG9mIHRoZSBwYWdlIGNvbmZpZ3VyYXRpb24gcGFyYW1ldGVycy4gT24KKyAgICAgICAg
dGhlIFVJIHByb2Nlc3Mgc2lkZSwgdGhlIFdlYiBwYWdlIHByb3h5IGlzIHRha2luZyBjYXJlIG9m
IGNhbGxpbmcgdGhlIGRldmljZSBvcmllbnRhdGlvbiBBUEkgdGhyb3VnaAorICAgICAgICB0aGUg
ZXhpc3RpbmcgV2ViQ29yZU1vdGlvbk1hbmFnZXIgT2JqZWN0aXZlLUMgY2xhc3MuCisKKyAgICAg
ICAgTm8gbmV3IHRlc3RzLCBjb3ZlcmVkIGJ5IGV4aXN0aW5nIHRlc3RzLgorCisgICAgICAgICog
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGRvbS9EZXZpY2VP
cmllbnRhdGlvbkNsaWVudC5oOgorICAgICAgICAoV2ViQ29yZTo6RGV2aWNlT3JpZW50YXRpb25D
bGllbnQ6OnNldFNoYXJlZERldmljZU9yaWVudGF0aW9uQ2xpZW50KToKKyAgICAgICAgKiBkb20v
RG9jdW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6bV91bmRvTWFuYWdlcik6CisgICAgICAg
ICogcGFnZS9QYWdlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Om1fc2hhcmVkRGV2aWNlT3JpZW50
YXRpb25DbGllbnQpOgorICAgICAgICAoV2ViQ29yZTo6bV9hcHBsaWNhdGlvbk1hbmlmZXN0KTog
RGVsZXRlZC4KKyAgICAgICAgKiBwYWdlL1BhZ2UuaDoKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2U6
OnNoYXJlZERldmljZU9yaWVudGF0aW9uQ2xpZW50IGNvbnN0KToKKyAgICAgICAgKiBwYWdlL1Bh
Z2VDb25maWd1cmF0aW9uLmg6CisgICAgICAgICogcGxhdGZvcm0vaW9zL0RldmljZU9yaWVudGF0
aW9uQ2xpZW50SU9TLmg6CisgICAgICAgICogcGxhdGZvcm0vaW9zL0RldmljZU9yaWVudGF0aW9u
Q2xpZW50SU9TLm1tOgorICAgICAgICAoV2ViQ29yZTo6RGV2aWNlT3JpZW50YXRpb25DbGllbnRJ
T1M6OnN0YXJ0VXBkYXRpbmcpOgorICAgICAgICAoV2ViQ29yZTo6RGV2aWNlT3JpZW50YXRpb25D
bGllbnRJT1M6OnN0b3BVcGRhdGluZyk6CisgICAgICAgIChXZWJDb3JlOjpEZXZpY2VPcmllbnRh
dGlvbkNsaWVudElPUzo6ZGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyRGVzdHJveWVkKToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9pb3MvU2hhcmVkRGV2aWNlT3JpZW50YXRpb25DbGllbnQuaDogQWRk
ZWQuCisgICAgICAgIChXZWJDb3JlOjpTaGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudDo6U2hh
cmVkRGV2aWNlT3JpZW50YXRpb25DbGllbnQpOgorICAgICAgICAoV2ViQ29yZTo6U2hhcmVkRGV2
aWNlT3JpZW50YXRpb25DbGllbnQ6On5TaGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudCk6Cisg
ICAgICAgIChXZWJDb3JlOjpTaGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudDo6c3RhcnRVcGRh
dGluZyk6CisgICAgICAgIChXZWJDb3JlOjpTaGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudDo6
c3RvcFVwZGF0aW5nKToKKyAgICAgICAgKFdlYkNvcmU6OlNoYXJlZERldmljZU9yaWVudGF0aW9u
Q2xpZW50OjpkZXZpY2VPcmllbnRhdGlvbkNoYW5nZWQpOgorICAgICAgICAqIHBsYXRmb3JtL2lv
cy9XZWJDb3JlTW90aW9uTWFuYWdlci5oOgorICAgICAgICAqIHBsYXRmb3JtL2lvcy9XZWJDb3Jl
TW90aW9uTWFuYWdlci5tbToKKyAgICAgICAgKC1bV2ViQ29yZU1vdGlvbk1hbmFnZXIgYWRkT3Jp
ZW50YXRpb25DbGllbnQ6XSk6CisgICAgICAgICgtW1dlYkNvcmVNb3Rpb25NYW5hZ2VyIHJlbW92
ZU9yaWVudGF0aW9uQ2xpZW50Ol0pOgorICAgICAgICAqIHBsYXRmb3JtL2lvcy9XZWJDb3JlTW90
aW9uTWFuYWdlckNsaWVudC5oOgorCiAyMDE5LTExLTMwICB5b3Vlbm4gZmFibGV0ICA8eW91ZW5u
QGFwcGxlLmNvbT4KIAogICAgICAgICBTaW1wbGlmeSBDb3JlQXVkaW9DYXB0dXJlU291cmNlIHN1
c3BlbnNpb24gbG9naWMKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvago9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oJKHJldmlzaW9uIDI1Mjk2MSkKKysrIFNvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkod29ya2luZyBjb3B5KQpAQCAtOTA3
LDcgKzkwNyw3IEBACiAJCTMxMzU5MTBBMUU3RERDNzMwMEYzMDYzMCAvKiBSVENTZHBUeXBlLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzMTM1OTEwNDFF
N0REQzYwMDBGMzA2MzAgLyogUlRDU2RwVHlwZS5oICovOyB9OwogCQkzMTM1OTEwQjFFN0REQzcz
MDBGMzA2MzAgLyogUlRDU2lnbmFsaW5nU3RhdGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMxMzU5MTA1MUU3RERDNjAwMEYzMDYzMCAvKiBSVENTaWdu
YWxpbmdTdGF0ZS5oICovOyB9OwogCQkzMTNCQ0UxQzIzNUUzQkU1MDBGQzM5RTUgLyogRWxlbWVu
dENvbnRleHQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDMxM0JDRTFCMjM1RTNCREIwMEZDMzlFNSAvKiBFbGVtZW50Q29udGV4dC5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07Ci0JCTMxNDAzNzlCMTI0QkVBN0Yw
MEFGNDBFNCAvKiBXZWJDb3JlTW90aW9uTWFuYWdlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzE0MDM3OTcxMjRCRUE3RjAwQUY0MEU0IC8qIFdlYkNv
cmVNb3Rpb25NYW5hZ2VyLmggKi87IH07CisJCTMxNDAzNzlCMTI0QkVBN0YwMEFGNDBFNCAvKiBX
ZWJDb3JlTW90aW9uTWFuYWdlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gMzE0MDM3OTcxMjRCRUE3RjAwQUY0MEU0IC8qIFdlYkNvcmVNb3Rpb25NYW5h
Z2VyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJ
MzE0MDM3OUQxMjRCRUE3RjAwQUY0MEU0IC8qIERldmljZU9yaWVudGF0aW9uQ2xpZW50SU9TLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzMTQwMzc5OTEy
NEJFQTdGMDBBRjQwRTQgLyogRGV2aWNlT3JpZW50YXRpb25DbGllbnRJT1MuaCAqLzsgfTsKIAkJ
MzE0MEM1MjAxRkRGMTUxQTAwRDJBODczIC8qIE9mZnNjcmVlbkNhbnZhc1JlbmRlcmluZ0NvbnRl
eHQyRC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzE0
MEM1MUUxRkRGMTUxQTAwRDJBODczIC8qIE9mZnNjcmVlbkNhbnZhc1JlbmRlcmluZ0NvbnRleHQy
RC5oICovOyB9OwogCQkzMTQwQzUyNDFGREYzMTg3MDBEMkE4NzMgLyogQ2FudmFzUmVuZGVyaW5n
Q29udGV4dDJEQmFzZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMzE0MEM1MjIxRkRGMzE4NjAwRDJBODczIC8qIENhbnZhc1JlbmRlcmluZ0NvbnRleHQy
REJhc2UuaCAqLzsgfTsKQEAgLTQ3NzYsNiArNDc3Niw4IEBACiAJCUUzNTgwMkI2MURDODQzNUQw
MEE5NzczQyAvKiBET01KSVRJRExUeXBlRmlsdGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMzU4MDJCNTFEQzg0MzU4MDBBOTc3M0MgLyogRE9NSklU
SURMVHlwZUZpbHRlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CiAJCUUzNzdGRTREMURBREUxNjUwMENERDAyNSAvKiBOb2RlQ29uc3RhbnRzLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFM0QwNDk5MzFEQURD
MDQ1MDA3MThGM0MgLyogTm9kZUNvbnN0YW50cy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07CiAJCUUzN0M4NjUwMUVCNjNFM0YwMDg3QzZDQSAvKiBKU0RP
TVByb21pc2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEUzN0M4NjRGMUVCNjNFMkQwMDg3QzZDQSAvKiBKU0RPTVByb21pc2UuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQlFMzk2MjhBNDIzODg5MzVCMDA2
NThFQ0QgLyogU2hhcmVkRGV2aWNlT3JpZW50YXRpb25DbGllbnQuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUzOTYyOEEzMjM4ODkzNUIwMDY1OEVDRCAv
KiBTaGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJV
VEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCUUzOTYyOEFDMjM5MUM4MTcwMDY1OEVDRCAvKiBX
ZWJDb3JlTW90aW9uTWFuYWdlckNsaWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gRTM5NjI4QUIyMzkxQzRGMzAwNjU4RUNEIC8qIFdlYkNvcmVNb3Rp
b25NYW5hZ2VyQ2xpZW50LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKIAkJRTNBNzc2NjcxREM4NUQyODAwQjY5MEQ4IC8qIERPTUpJVElETENvbnZlcnQu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUzQTc3NjY1
MURDODVEMjIwMEI2OTBEOCAvKiBET01KSVRJRExDb252ZXJ0LmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJRTNBNzc2NjgxREM4NUQyODAwQjY5MEQ4
IC8qIERPTUpJVElETFR5cGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEUzQTc3NjY2MURDODVEMjIwMEI2OTBEOCAvKiBET01KSVRJRExUeXBlLmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJRTNCMkYwRUQx
RDdGNENBMzAwQjBDOUQxIC8qIExvYWRhYmxlU2NyaXB0LmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFM0IyRjBFNzFEN0YzNUVDMDBCMEM5RDEgLyogTG9h
ZGFibGVTY3JpcHQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OwpAQCAtMTUwNjUsNiArMTUwNjcsOCBAQAogCQlFMzg4Mzg5NDFCQUQxNDVGMDBENjJFRTMg
LyogU2NyaXB0TW9kdWxlTG9hZGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IFNjcmlwdE1vZHVsZUxvYWRlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCUUzODgzODk1MUJBRDE0NUYwMEQ2MkVFMyAvKiBTY3JpcHRNb2R1bGVMb2FkZXIuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU2NyaXB0TW9kdWxlTG9hZGVyLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUzOEQwNjA5MUY4RTgxMTkwMDY0OUNGMiAvKiBNb2R1
bGVGZXRjaFBhcmFtZXRlcnMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTW9k
dWxlRmV0Y2hQYXJhbWV0ZXJzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUUzOTYy
OEEzMjM4ODkzNUIwMDY1OEVDRCAvKiBTaGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudC5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBTaGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudC5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQlFMzk2MjhBQjIzOTFDNEYzMDA2NThFQ0QgLyogV2ViQ29yZU1v
dGlvbk1hbmFnZXJDbGllbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViQ29yZU1vdGlvbk1hbmFnZXJD
bGllbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTM5NzVCNzYxRUM5QUYzOTAw
ODQ3NzE3IC8qIEpTRG9jdW1lbnRGcmFnbWVudERPTUpJVC5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBKU0RvY3VtZW50RnJhZ21lbnRET01KSVQuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQlFMzk3NUI3NzFFQzlBRjM5MDA4NDc3MTcgLyogSlNFbGVt
ZW50RE9NSklULmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTRWxl
bWVudERPTUpJVC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUzOTc1Qjc4MUVD
OUFGMzkwMDg0NzcxNyAvKiBKU0V2ZW50RE9NSklULmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IEpTRXZlbnRET01KSVQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwpAQCAtMTY2NDIsOCArMTY2NDYsOCBAQAogCQkJCTExNUNBODMwMjMzMjhCMUUwMEZEM0Iw
OCAvKiBMYXlvdXRVbml0cy5jcHAgKi8sCiAJCQkJNkY3MzkxOEMyMTA2Q0VERDAwNkFGMjYyIC8q
IExheW91dFVuaXRzLmggKi8sCiAJCQkJNkZFN0FBMjYyMUMzN0I2MzAwMjk2RENEIC8qIE1hcmdp
blR5cGVzLmggKi8sCi0JCQkJRTRBQkFCREIyMzYwODhGRDAwRkE0MzQ1IC8qIFJlbmRlckJsb2Nr
Rmxvd0xpbmVMYXlvdXQuaCAqLywKIAkJCQlFNEFCQUJERTIzNjA4OTNEMDBGQTQzNDUgLyogUmVu
ZGVyQmxvY2tGbG93TGluZUxheW91dC5jcHAgKi8sCisJCQkJRTRBQkFCREIyMzYwODhGRDAwRkE0
MzQ1IC8qIFJlbmRlckJsb2NrRmxvd0xpbmVMYXlvdXQuaCAqLywKIAkJCQkxMUZGMDJENTIwQkEz
QzgxMDA4M0YyNUIgLyogVmVyaWZpY2F0aW9uLmNwcCAqLywKIAkJCSk7CiAJCQlwYXRoID0gbGF5
b3V0OwpAQCAtMjI4MTAsNiArMjI4MTQsNyBAQAogCQkJCUU0NTM5MDM0MEVBRkQ2MzcwMDM2OTVD
OCAvKiBTY3JvbGxWaWV3SU9TLm1tICovLAogCQkJCUJFQTgwN0M2MEY3MTRBMDMwMDUyNDE5OSAv
KiBTZWxlY3Rpb25SZWN0LmNwcCAqLywKIAkJCQlCRUE4MDdDNzBGNzE0QTAzMDA1MjQxOTkgLyog
U2VsZWN0aW9uUmVjdC5oICovLAorCQkJCUUzOTYyOEEzMjM4ODkzNUIwMDY1OEVDRCAvKiBTaGFy
ZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudC5oICovLAogCQkJCTBGMDNDMDczMTg4NDY5NUUwMEE1
RjhDQSAvKiBTeXN0ZW1NZW1vcnkuaCAqLywKIAkJCQlFNDUzOTBBRDBFQUZGNEI1MDAzNjk1Qzgg
LyogU3lzdGVtTWVtb3J5SU9TLmNwcCAqLywKIAkJCQk0NEM5OTE5RDBGM0QyMTBFMDA1ODY2NzAg
LyogVGhlbWVJT1MuaCAqLywKQEAgLTIyODI2LDYgKzIyODMxLDcgQEAKIAkJCQkxRjM2RUE5QjFF
MjFCQTE3MDA2MjFFMjUgLyogV2ViQmFja2dyb3VuZFRhc2tDb250cm9sbGVyLm1tICovLAogCQkJ
CTMxNDAzNzk3MTI0QkVBN0YwMEFGNDBFNCAvKiBXZWJDb3JlTW90aW9uTWFuYWdlci5oICovLAog
CQkJCTMxNDAzNzk4MTI0QkVBN0YwMEFGNDBFNCAvKiBXZWJDb3JlTW90aW9uTWFuYWdlci5tbSAq
LywKKwkJCQlFMzk2MjhBQjIzOTFDNEYzMDA2NThFQ0QgLyogV2ViQ29yZU1vdGlvbk1hbmFnZXJD
bGllbnQuaCAqLywKIAkJCQlGRTBEODRFODEwNDg0MzQ4MDAxQTE3OUUgLyogV2ViRXZlbnQuaCAq
LywKIAkJCQlGRTBEODRFQTEwNDg0MzZFMDAxQTE3OUUgLyogV2ViRXZlbnQubW0gKi8sCiAJCQkJ
RjQ4MjIzMEYxRTM4NjlCODAwNjZGQzc5IC8qIFdlYkl0ZW1Qcm92aWRlclBhc3RlYm9hcmQuaCAq
LywKQEAgLTI4NzI5LDggKzI4NzM1LDggQEAKIAkJCQlGRkVGQUIyOTE4MzgwREEwMDA1MTQ1MzQg
LyogTGluZUxheW91dFN0YXRlLmggKi8sCiAJCQkJRTQ4NEEzM0QyMzA1NTMwMzAwOUFERTZBIC8q
IExpbmVMYXlvdXRUcmF2ZXJzYWwuY3BwICovLAogCQkJCUU0ODRBMzNCMjMwNTUzMDMwMDlBREU2
QSAvKiBMaW5lTGF5b3V0VHJhdmVyc2FsLmggKi8sCi0JCQkJRTQzNDNEMjEyMzkyNzc4MzAwRUJC
QjY2IC8qIExpbmVMYXlvdXRUcmF2ZXJzYWxTaW1wbGVQYXRoLmggKi8sCiAJCQkJRTQzNDNEMjQy
MzkyNzc4RjAwRUJCQjY2IC8qIExpbmVMYXlvdXRUcmF2ZXJzYWxDb21wbGV4UGF0aC5oICovLAor
CQkJCUU0MzQzRDIxMjM5Mjc3ODMwMEVCQkI2NiAvKiBMaW5lTGF5b3V0VHJhdmVyc2FsU2ltcGxl
UGF0aC5oICovLAogCQkJCUZGREJDMDQ2MTgzRDI3QjcwMDQwNzEwOSAvKiBMaW5lV2lkdGguY3Bw
ICovLAogCQkJCUZGREJDMDQ1MTgzRDI3QjcwMDQwNzEwOSAvKiBMaW5lV2lkdGguaCAqLywKIAkJ
CQlGRkFDMzBGRDE4NEZCMTQ1MDA4QzRGMUUgLyogVHJhaWxpbmdPYmplY3RzLmNwcCAqLywKQEAg
LTMwNTQxLDcgKzMwNTQ3LDYgQEAKIAkJCQk4MzcwNTY5MDFGNTA5MTVDMDBEOTM0MjUgLyogSlNG
aWxlU3lzdGVtRW50cnlDYWxsYmFjay5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODMzQjlFMzYxRjUw
OEQ4NTAwRTBFNDI4IC8qIEpTRmlsZVN5c3RlbUZpbGVFbnRyeS5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJNzEyQkU0ODgxRkU4Njg2QTAwMjAzMUNDIC8qIEpTRmlsbE1vZGUuaCBpbiBIZWFkZXJzICov
LAotCQkJCUU0MzQzRDI1MjM5Mjc3OTAwMEVCQkI2NiAvKiBMaW5lTGF5b3V0VHJhdmVyc2FsQ29t
cGxleFBhdGguaCBpbiBIZWFkZXJzICovLAogCQkJCUI2RDlEMjdCMTRFQUMwODYwMDkwRDc1RSAv
KiBKU0ZvY3VzRXZlbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUMyODA4MzNGMUM2REMyNkYwMDE0
NTFCNiAvKiBKU0ZvbnRGYWNlLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQzI0RUVBOTFDNzJBN0I0
MDA4MEY4RkMgLyogSlNGb250RmFjZVNldC5oIGluIEhlYWRlcnMgKi8sCkBAIC0zMTE5Niw2ICsz
MTIwMSw4IEBACiAJCQkJNkYyNkVCNDgyMzQwMDRBNTAwNjkwNkUyIC8qIExpbmVMYXlvdXRDb250
ZXh0LmggaW4gSGVhZGVycyAqLywKIAkJCQlGRkVGQUIyQTE4MzgwREEwMDA1MTQ1MzQgLyogTGlu
ZUxheW91dFN0YXRlLmggaW4gSGVhZGVycyAqLywKIAkJCQlFNDg0QTMzRTIzMDU1MzI1MDA5QURF
NkEgLyogTGluZUxheW91dFRyYXZlcnNhbC5oIGluIEhlYWRlcnMgKi8sCisJCQkJRTQzNDNEMjUy
MzkyNzc5MDAwRUJCQjY2IC8qIExpbmVMYXlvdXRUcmF2ZXJzYWxDb21wbGV4UGF0aC5oIGluIEhl
YWRlcnMgKi8sCisJCQkJRTQzNDNEMjMyMzkyNzc4NDAwRUJCQjY2IC8qIExpbmVMYXlvdXRUcmF2
ZXJzYWxTaW1wbGVQYXRoLmggaW4gSGVhZGVycyAqLywKIAkJCQlGRkRCQzA0NzE4M0QyN0I3MDA0
MDcxMDkgLyogTGluZVdpZHRoLmggaW4gSGVhZGVycyAqLywKIAkJCQlDQkE5REMwQjFERjQ0REY0
MDAwNTY3NUMgLyogTGlua0hlYWRlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTE0M0IyNjMxRERE
MTUyMDAwMTRGQUM2IC8qIExpbmtJY29uLmggaW4gSGVhZGVycyAqLywKQEAgLTMxNjg5LDcgKzMx
Njk2LDYgQEAKIAkJCQk1N0RDRUQ3NDIxNDMwNUYwMDAxNkI4NDcgLyogUHVibGljS2V5Q3JlZGVu
dGlhbERhdGEuaCBpbiBIZWFkZXJzICovLAogCQkJCTU3MzAzQkVGMjAwOTgwQzYwMDM1NTk2NSAv
KiBQdWJsaWNLZXlDcmVkZW50aWFsRGVzY3JpcHRvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTcz
MDNDMEEyMDA5OUJBRDAwMzU1OTY1IC8qIFB1YmxpY0tleUNyZWRlbnRpYWxSZXF1ZXN0T3B0aW9u
cy5oIGluIEhlYWRlcnMgKi8sCi0JCQkJRTQzNDNEMjMyMzkyNzc4NDAwRUJCQjY2IC8qIExpbmVM
YXlvdXRUcmF2ZXJzYWxTaW1wbGVQYXRoLmggaW4gSGVhZGVycyAqLywKIAkJCQk1NzMwM0JFQjIw
MDk3RjQwMDAzNTU5NjUgLyogUHVibGljS2V5Q3JlZGVudGlhbFR5cGUuaCBpbiBIZWFkZXJzICov
LAogCQkJCTAwODFGRjAwMTZCMEEyRDMwMDhBQUE3QSAvKiBQdWJsaWNTdWZmaXguaCBpbiBIZWFk
ZXJzICovLAogCQkJCTEwRkIwODRCMTRFMTVDN0UwMEEzREI5OCAvKiBQdWJsaWNVUkxNYW5hZ2Vy
LmggaW4gSGVhZGVycyAqLywKQEAgLTMxNzU1LDYgKzMxNzYxLDcgQEAKIAkJCQk3Q0Q0OTRDRDFB
ODZFQjFEMDAwQTg3RUMgLyogUmVuZGVyQXR0YWNobWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
QkNFQTQ4NjAwOTdEOTMwMjAwOTRDOUU0IC8qIFJlbmRlckJsb2NrLmggaW4gSGVhZGVycyAqLywK
IAkJCQlCQzEwRDc2ODE3RDhFRTcxMDA1RTI2MjYgLyogUmVuZGVyQmxvY2tGbG93LmggaW4gSGVh
ZGVycyAqLywKKwkJCQlFNEFCQUJERDIzNjA4OEZFMDBGQTQzNDUgLyogUmVuZGVyQmxvY2tGbG93
TGluZUxheW91dC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkNFQTQ4NjIwOTdEOTMwMjAwOTRDOUU0
IC8qIFJlbmRlckJveC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkNFQjE3OUMxNDMzNzlGNTAwNTJF
QUU5IC8qIFJlbmRlckJveEZyYWdtZW50SW5mby5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkM5NkRC
NDMwRjNBODgwRTAwNTczQ0IzIC8qIFJlbmRlckJveE1vZGVsT2JqZWN0LmggaW4gSGVhZGVycyAq
LywKQEAgLTMyMTQzLDYgKzMyMTUwLDcgQEAKIAkJCQlGRDFBRjE1MDE2NTZGMTUxMDBDNkQ0Rjcg
LyogU2hhcGVWYWx1ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUQ5RjBGQzEyMTIyMDI5QjAwNUQ4
RkQ0IC8qIFNoYXJlRGF0YS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUE0QTk1NEUwQjRFRENDQjAw
MkQ4QzNDIC8qIFNoYXJlZEJ1ZmZlci5oIGluIEhlYWRlcnMgKi8sCisJCQkJRTM5NjI4QTQyMzg4
OTM1QjAwNjU4RUNEIC8qIFNoYXJlZERldmljZU9yaWVudGF0aW9uQ2xpZW50LmggaW4gSGVhZGVy
cyAqLywKIAkJCQk4MzRERkFEMDFGN0RBRTVEMDBDMjcyNUIgLyogU2hhcmVkU3RyaW5nSGFzaC5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJOTMzMDlFQTMwOTlFQjc4QzAwNTZFNTgxIC8qIFNoYXJlZFRp
bWVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk4MzYyRThDMTIwQ0VGOUNCMDAyNDU4ODYgLyogU2hv
dWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkLmggaW4gSGVhZGVycyAqLywKQEAgLTMyNDcwLDcgKzMy
NDc4LDYgQEAKIAkJCQkwODhDMkY3QTEyMzkwMDgxMDAzRDY1Q0UgLyogU1ZHVGV4dExheW91dEF0
dHJpYnV0ZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTA4MTA5M0RDMTI1NUYwRTcwMEVEOUQyOSAv
KiBTVkdUZXh0TGF5b3V0QXR0cmlidXRlc0J1aWxkZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTA4
MTY2OERBMTI1NjAzRDUwMDZGMjVERSAvKiBTVkdUZXh0TGF5b3V0RW5naW5lLmggaW4gSGVhZGVy
cyAqLywKLQkJCQlFNEFCQUJERDIzNjA4OEZFMDBGQTQzNDUgLyogUmVuZGVyQmxvY2tGbG93TGlu
ZUxheW91dC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMDgwRTQ5MjYxMjU1RjNCRDAwRUZDQTI3IC8q
IFNWR1RleHRMYXlvdXRFbmdpbmVCYXNlbGluZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMDgwRTQ5
MjgxMjU1RjNCRDAwRUZDQTI3IC8qIFNWR1RleHRMYXlvdXRFbmdpbmVTcGFjaW5nLmggaW4gSGVh
ZGVycyAqLywKIAkJCQkwOEYwQkZDNjEyNTVDNTNDMDAwNzUxODUgLyogU1ZHVGV4dE1ldHJpY3Mu
aCBpbiBIZWFkZXJzICovLApAQCAtMzI3NjQsNiArMzI3NzEsNyBAQAogCQkJCUJDNTNEOTExMTE0
MzEwQ0MwMDBEODE3RSAvKiBXZWJDb3JlSlNDbGllbnREYXRhLmggaW4gSGVhZGVycyAqLywKIAkJ
CQk5M0YxOTlCQjA4MjQ1RTU5MDAxRTlBQkMgLyogV2ViQ29yZUtleWJvYXJkVUlNb2RlLmggaW4g
SGVhZGVycyAqLywKIAkJCQkzMTQwMzc5QjEyNEJFQTdGMDBBRjQwRTQgLyogV2ViQ29yZU1vdGlv
bk1hbmFnZXIuaCBpbiBIZWFkZXJzICovLAorCQkJCUUzOTYyOEFDMjM5MUM4MTcwMDY1OEVDRCAv
KiBXZWJDb3JlTW90aW9uTWFuYWdlckNsaWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQ0RDOTc5
RjUxQzQ5OEMwOTAwREI1MEQ0IC8qIFdlYkNvcmVOU0Vycm9yRXh0cmFzLmggaW4gSGVhZGVycyAq
LywKIAkJCQlGNEU1N0VFMTIxM0Y0MzRBMDA0RUE5OEUgLyogV2ViQ29yZU5TRm9udE1hbmFnZXJF
eHRyYXMuaCBpbiBIZWFkZXJzICovLAogCQkJCUM1QjRDMjREMTUwOTIzNkMwMEE2RUYzNyAvKiBX
ZWJDb3JlTlNVUkxFeHRyYXMuaCBpbiBIZWFkZXJzICovLApJbmRleDogU291cmNlL1dlYkNvcmUv
ZG9tL0RldmljZU9yaWVudGF0aW9uQ2xpZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvZG9tL0RldmljZU9yaWVudGF0aW9uQ2xpZW50LmgJKHJldmlzaW9uIDI1Mjk2MSkKKysrIFNv
dXJjZS9XZWJDb3JlL2RvbS9EZXZpY2VPcmllbnRhdGlvbkNsaWVudC5oCSh3b3JraW5nIGNvcHkp
CkBAIC0yOCwxMiArMjgsMTQgQEAKIAogI2luY2x1ZGUgIkRldmljZUNsaWVudC5oIgogI2luY2x1
ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgorI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KIAogbmFtZXNw
YWNlIFdlYkNvcmUgewogCiBjbGFzcyBEZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXI7CiBjbGFz
cyBEZXZpY2VPcmllbnRhdGlvbkRhdGE7CiBjbGFzcyBQYWdlOworY2xhc3MgU2hhcmVkRGV2aWNl
T3JpZW50YXRpb25DbGllbnQ7CiAKIGNsYXNzIERldmljZU9yaWVudGF0aW9uQ2xpZW50IDogcHVi
bGljIERldmljZUNsaWVudCB7CiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoRGV2aWNlT3JpZW50
YXRpb25DbGllbnQpOwpAQCAtNDMsNiArNDUsOCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lk
IHNldENvbnRyb2xsZXIoRGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyKikgPSAwOwogICAgIHZp
cnR1YWwgRGV2aWNlT3JpZW50YXRpb25EYXRhKiBsYXN0T3JpZW50YXRpb24oKSBjb25zdCA9IDA7
CiAgICAgdmlydHVhbCB2b2lkIGRldmljZU9yaWVudGF0aW9uQ29udHJvbGxlckRlc3Ryb3llZCgp
ID0gMDsKKyAgICAKKyAgICB2aXJ0dWFsIHZvaWQgc2V0U2hhcmVkRGV2aWNlT3JpZW50YXRpb25D
bGllbnQoUmVmUHRyPFNoYXJlZERldmljZU9yaWVudGF0aW9uQ2xpZW50PikgeyB9OwogfTsKIAog
V0VCQ09SRV9FWFBPUlQgdm9pZCBwcm92aWRlRGV2aWNlT3JpZW50YXRpb25UbyhQYWdlJiwgRGV2
aWNlT3JpZW50YXRpb25DbGllbnQmKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVu
dC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAkocmV2
aXNpb24gMjUyOTYxKQorKysgU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtNjA3LDkgKzYwNywxNSBAQCBEb2N1bWVudDo6RG9jdW1lbnQoRnJhbWUqIGZy
YW1lLCBjb25zdCBVCiAgICAgICAgIG5vZGVMaXN0QW5kQ29sbGVjdGlvbkNvdW50ID0gMDsKIAog
ICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6YWRkRXZlbnRMaXN0ZW5lcnNUb05vZGUoKnRo
aXMpOworICAgIAogI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCiAgICAgbV9zZXR0aW5ncy0+c2V0
TGVnYWN5R2V0VXNlck1lZGlhRW5hYmxlZChxdWlya3MoKS5zaG91bGRFbmFibGVMZWdhY3lHZXRV
c2VyTWVkaWEoKSk7CiAjZW5kaWYKKworI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpICYmIEVOQUJM
RShERVZJQ0VfT1JJRU5UQVRJT04pCisgICAgaWYgKHBhZ2UoKSAmJiBwYWdlKCktPnNoYXJlZERl
dmljZU9yaWVudGF0aW9uQ2xpZW50KCkpCisgICAgICAgIG1fZGV2aWNlT3JpZW50YXRpb25DbGll
bnQtPnNldFNoYXJlZERldmljZU9yaWVudGF0aW9uQ2xpZW50KHBhZ2UoKS0+c2hhcmVkRGV2aWNl
T3JpZW50YXRpb25DbGllbnQoKSk7CisjZW5kaWYKIH0KIAogUmVmPERvY3VtZW50PiBEb2N1bWVu
dDo6Y3JlYXRlKERvY3VtZW50JiBjb250ZXh0RG9jdW1lbnQpCkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9wYWdlL1BhZ2UuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5j
cHAJKHJldmlzaW9uIDI1Mjk2MSkKKysrIFNvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTI4OSw2ICsyODksOSBAQCBQYWdlOjpQYWdlKFBhZ2VDb25maWd1cmF0
aW9uJiYgcGFnZUNvbmZpCiAjaWYgRU5BQkxFKEFQUExJQ0FUSU9OX01BTklGRVNUKQogICAgICwg
bV9hcHBsaWNhdGlvbk1hbmlmZXN0KHBhZ2VDb25maWd1cmF0aW9uLmFwcGxpY2F0aW9uTWFuaWZl
c3QpCiAjZW5kaWYKKyNpZiBFTkFCTEUoREVWSUNFX09SSUVOVEFUSU9OKSAmJiBQTEFURk9STShJ
T1NfRkFNSUxZKQorICAgICwgbV9zaGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudChXVEZNb3Zl
KHBhZ2VDb25maWd1cmF0aW9uLnNoYXJlZERldmljZU9yaWVudGF0aW9uQ2xpZW50KSkKKyNlbmRp
ZgogewogICAgIHVwZGF0ZVRpbWVyVGhyb3R0bGluZ1N0YXRlKCk7CiAKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL3BhZ2UvUGFnZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BhZ2UvUGFn
ZS5oCShyZXZpc2lvbiAyNTI5NjEpCisrKyBTb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuaAkod29y
a2luZyBjb3B5KQpAQCAtMzUsNiArMzUsNyBAQAogI2luY2x1ZGUgIlJlZ2lzdHJhYmxlRG9tYWlu
LmgiCiAjaW5jbHVkZSAiUmVuZGVyaW5nVXBkYXRlU2NoZWR1bGVyLmgiCiAjaW5jbHVkZSAiU2Ny
b2xsVHlwZXMuaCIKKyNpbmNsdWRlICJTaGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudC5oIgog
I2luY2x1ZGUgIlN1cHBsZW1lbnRhYmxlLmgiCiAjaW5jbHVkZSAiVGltZXIuaCIKICNpbmNsdWRl
ICJVc2VySW50ZXJmYWNlTGF5b3V0RGlyZWN0aW9uLmgiCkBAIC03MTksNiArNzIwLDEwIEBAIHB1
YmxpYzoKIAogICAgIFdFQkNPUkVfRVhQT1JUIFZlY3RvcjxSZWY8RWxlbWVudD4+IGVkaXRhYmxl
RWxlbWVudHNJblJlY3QoY29uc3QgRmxvYXRSZWN0JikgY29uc3Q7CiAKKyNpZiBFTkFCTEUoREVW
SUNFX09SSUVOVEFUSU9OKSAmJiBQTEFURk9STShJT1NfRkFNSUxZKQorICAgIFJlZlB0cjxTaGFy
ZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudD4gc2hhcmVkRGV2aWNlT3JpZW50YXRpb25DbGllbnQo
KSBjb25zdCB7IHJldHVybiBtX3NoYXJlZERldmljZU9yaWVudGF0aW9uQ2xpZW50OyB9CisjZW5k
aWYKKwogcHJpdmF0ZToKICAgICBzdHJ1Y3QgTmF2aWdhdGlvbiB7CiAgICAgICAgIFJlZ2lzdHJh
YmxlRG9tYWluIGRvbWFpbjsKQEAgLTk5MCw2ICs5OTUsMTAgQEAgcHJpdmF0ZToKIAogICAgIE9w
dGlvbmFsPFZpZXdwb3J0QXJndW1lbnRzPiBtX292ZXJyaWRlVmlld3BvcnRBcmd1bWVudHM7CiAK
KyNpZiBFTkFCTEUoREVWSUNFX09SSUVOVEFUSU9OKSAmJiBQTEFURk9STShJT1NfRkFNSUxZKQor
ICAgIFJlZlB0cjxTaGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudD4gbV9zaGFyZWREZXZpY2VP
cmllbnRhdGlvbkNsaWVudDsKKyNlbmRpZgorCiAgICAgYm9vbCBtX3Nob3VsZEVuYWJsZUlDRUNh
bmRpZGF0ZUZpbHRlcmluZ0J5RGVmYXVsdCB7IHRydWUgfTsKICAgICBib29sIG1fbWVkaWFQbGF5
YmFja0lzU3VzcGVuZGVkIHsgZmFsc2UgfTsKICAgICBib29sIG1fbWVkaWFCdWZmZXJpbmdJc1N1
c3BlbmRlZCB7IGZhbHNlIH07CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VDb25maWd1
cmF0aW9uLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlQ29uZmlndXJh
dGlvbi5oCShyZXZpc2lvbiAyNTI5NjEpCisrKyBTb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VDb25m
aWd1cmF0aW9uLmgJKHdvcmtpbmcgY29weSkKQEAgLTU3LDYgKzU3LDcgQEAgY2xhc3MgUGVyZm9y
bWFuY2VMb2dnaW5nQ2xpZW50OwogY2xhc3MgUGx1Z0luQ2xpZW50OwogY2xhc3MgUGx1Z2luSW5m
b1Byb3ZpZGVyOwogY2xhc3MgUHJvZ3Jlc3NUcmFja2VyQ2xpZW50OworY2xhc3MgU2hhcmVkRGV2
aWNlT3JpZW50YXRpb25DbGllbnQ7CiBjbGFzcyBTb2NrZXRQcm92aWRlcjsKIGNsYXNzIFN0b3Jh
Z2VOYW1lc3BhY2VQcm92aWRlcjsKIGNsYXNzIFVzZXJDb250ZW50UHJvdmlkZXI7CkBAIC0xMTgs
NiArMTE5LDEwIEBAIHB1YmxpYzoKICAgICBSZWZQdHI8U3RvcmFnZU5hbWVzcGFjZVByb3ZpZGVy
PiBzdG9yYWdlTmFtZXNwYWNlUHJvdmlkZXI7CiAgICAgUmVmUHRyPFVzZXJDb250ZW50UHJvdmlk
ZXI+IHVzZXJDb250ZW50UHJvdmlkZXI7CiAgICAgUmVmUHRyPFZpc2l0ZWRMaW5rU3RvcmU+IHZp
c2l0ZWRMaW5rU3RvcmU7CisgICAgCisjaWYgRU5BQkxFKERFVklDRV9PUklFTlRBVElPTikgJiYg
UExBVEZPUk0oSU9TX0ZBTUlMWSkKKyAgICBSZWZQdHI8U2hhcmVkRGV2aWNlT3JpZW50YXRpb25D
bGllbnQ+IHNoYXJlZERldmljZU9yaWVudGF0aW9uQ2xpZW50OworI2VuZGlmCiB9OwogCiB9Cklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvRGV2aWNlT3JpZW50YXRpb25DbGllbnRJ
T1MuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvRGV2aWNlT3Jp
ZW50YXRpb25DbGllbnRJT1MuaAkocmV2aXNpb24gMjUyOTYxKQorKysgU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vaW9zL0RldmljZU9yaWVudGF0aW9uQ2xpZW50SU9TLmgJKHdvcmtpbmcgY29weSkK
QEAgLTMwLDEzICszMCwxNSBAQAogI2luY2x1ZGUgIkRldmljZU9yaWVudGF0aW9uQ2xpZW50Lmgi
CiAjaW5jbHVkZSAiRGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyLmgiCiAjaW5jbHVkZSAiRGV2
aWNlT3JpZW50YXRpb25EYXRhLmgiCisjaW5jbHVkZSAiU2hhcmVkRGV2aWNlT3JpZW50YXRpb25D
bGllbnQuaCIKKyNpbmNsdWRlICJXZWJDb3JlTW90aW9uTWFuYWdlckNsaWVudC5oIgogI2luY2x1
ZGUgPHd0Zi9SZWZQdHIuaD4KIAogT0JKQ19DTEFTUyBXZWJDb3JlTW90aW9uTWFuYWdlcjsKIAog
bmFtZXNwYWNlIFdlYkNvcmUgewogCi1jbGFzcyBEZXZpY2VPcmllbnRhdGlvbkNsaWVudElPUyA6
IHB1YmxpYyBEZXZpY2VPcmllbnRhdGlvbkNsaWVudCB7CitjbGFzcyBEZXZpY2VPcmllbnRhdGlv
bkNsaWVudElPUyA6IHB1YmxpYyBEZXZpY2VPcmllbnRhdGlvbkNsaWVudCwgcHVibGljIFdlYkNv
cmVNb3Rpb25NYW5hZ2VyQ2xpZW50IHsKIHB1YmxpYzoKICAgICBEZXZpY2VPcmllbnRhdGlvbkNs
aWVudElPUygpOwogICAgIH5EZXZpY2VPcmllbnRhdGlvbkNsaWVudElPUygpIG92ZXJyaWRlOwpA
QCAtNDYsMTIgKzQ4LDE1IEBAIHB1YmxpYzoKICAgICBEZXZpY2VPcmllbnRhdGlvbkRhdGEqIGxh
c3RPcmllbnRhdGlvbigpIGNvbnN0IG92ZXJyaWRlOwogICAgIHZvaWQgZGV2aWNlT3JpZW50YXRp
b25Db250cm9sbGVyRGVzdHJveWVkKCkgb3ZlcnJpZGU7CiAKLSAgICB2b2lkIG9yaWVudGF0aW9u
Q2hhbmdlZChkb3VibGUsIGRvdWJsZSwgZG91YmxlLCBkb3VibGUsIGRvdWJsZSk7CisgICAgdm9p
ZCBvcmllbnRhdGlvbkNoYW5nZWQoZG91YmxlLCBkb3VibGUsIGRvdWJsZSwgZG91YmxlLCBkb3Vi
bGUpIG92ZXJyaWRlOwogCisgICAgdm9pZCBzZXRTaGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVu
dChSZWZQdHI8U2hhcmVkRGV2aWNlT3JpZW50YXRpb25DbGllbnQ+IHNoYXJlZERldmljZU9yaWVu
dGF0aW9uQ2xpZW50KSBvdmVycmlkZSB7IG1fc2hhcmVkRGV2aWNlT3JpZW50YXRpb25DbGllbnQg
PSBzaGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudDsgfQorICAgIAogcHJpdmF0ZToKICAgICBX
ZWJDb3JlTW90aW9uTWFuYWdlciogbV9tb3Rpb25NYW5hZ2VyOwogICAgIERldmljZU9yaWVudGF0
aW9uQ29udHJvbGxlciogbV9jb250cm9sbGVyOwogICAgIFJlZlB0cjxEZXZpY2VPcmllbnRhdGlv
bkRhdGE+IG1fY3VycmVudERldmljZU9yaWVudGF0aW9uOworICAgIFJlZlB0cjxTaGFyZWREZXZp
Y2VPcmllbnRhdGlvbkNsaWVudD4gbV9zaGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudDsKICAg
ICBib29sIG1fdXBkYXRpbmc7CiB9OwogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9p
b3MvRGV2aWNlT3JpZW50YXRpb25DbGllbnRJT1MubW0KPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vaW9zL0RldmljZU9yaWVudGF0aW9uQ2xpZW50SU9TLm1tCShyZXZpc2lv
biAyNTI5NjEpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvRGV2aWNlT3JpZW50YXRp
b25DbGllbnRJT1MubW0JKHdvcmtpbmcgY29weSkKQEAgLTUzLDYgKzUzLDExIEBAIHZvaWQgRGV2
aWNlT3JpZW50YXRpb25DbGllbnRJT1M6OnN0YXJ0VXAKIHsKICAgICBtX3VwZGF0aW5nID0gdHJ1
ZTsKIAorICAgIGlmIChtX3NoYXJlZERldmljZU9yaWVudGF0aW9uQ2xpZW50KSB7CisgICAgICAg
IG1fc2hhcmVkRGV2aWNlT3JpZW50YXRpb25DbGllbnQtPnN0YXJ0VXBkYXRpbmcoKnRoaXMpOwor
ICAgICAgICByZXR1cm47CisgICAgfQorCiAgICAgaWYgKCFtX21vdGlvbk1hbmFnZXIpCiAgICAg
ICAgIG1fbW90aW9uTWFuYWdlciA9IFtXZWJDb3JlTW90aW9uTWFuYWdlciBzaGFyZWRNYW5hZ2Vy
XTsKIApAQCAtNjMsNiArNjgsMTEgQEAgdm9pZCBEZXZpY2VPcmllbnRhdGlvbkNsaWVudElPUzo6
c3RvcFVwZAogewogICAgIG1fdXBkYXRpbmcgPSBmYWxzZTsKIAorICAgIGlmIChtX3NoYXJlZERl
dmljZU9yaWVudGF0aW9uQ2xpZW50KSB7CisgICAgICAgIG1fc2hhcmVkRGV2aWNlT3JpZW50YXRp
b25DbGllbnQtPnN0b3BVcGRhdGluZygqdGhpcyk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisK
ICAgICAvLyBSZW1vdmUgb3Vyc2VsdmVzIGFzIHRoZSBvcmllbnRhdGlvbiBjbGllbnQgc28gd2Ug
d29uJ3QgZ2V0IHVwZGF0ZXMuCiAgICAgW21fbW90aW9uTWFuYWdlciByZW1vdmVPcmllbnRhdGlv
bkNsaWVudDp0aGlzXTsKIH0KQEAgLTc0LDYgKzg0LDExIEBAIERldmljZU9yaWVudGF0aW9uRGF0
YSogRGV2aWNlT3JpZW50YXRpb24KIAogdm9pZCBEZXZpY2VPcmllbnRhdGlvbkNsaWVudElPUzo6
ZGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyRGVzdHJveWVkKCkKIHsKKyAgICBpZiAobV9zaGFy
ZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudCkgeworICAgICAgICBtX3NoYXJlZERldmljZU9yaWVu
dGF0aW9uQ2xpZW50LT5zdG9wVXBkYXRpbmcoKnRoaXMpOworICAgICAgICByZXR1cm47CisgICAg
fQorCiAgICAgW21fbW90aW9uTWFuYWdlciByZW1vdmVPcmllbnRhdGlvbkNsaWVudDp0aGlzXTsK
IH0KICAgICAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9TaGFyZWREZXZpY2VP
cmllbnRhdGlvbkNsaWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2lvcy9TaGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudC5oCShub25leGlzdGVudCkKKysrIFNv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9TaGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudC5o
CSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNDkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAqIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIGBgQVMgSVMnJyBB
TkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVCBPV05FUiBPUgorICogQ09OVFJJ
QlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lO
RVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQor
CisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkgJiYgRU5BQkxFKERFVklDRV9PUklFTlRBVElPTikK
KworI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwor
Y2xhc3MgV2ViQ29yZU1vdGlvbk1hbmFnZXJDbGllbnQ7CisKK2NsYXNzIFNoYXJlZERldmljZU9y
aWVudGF0aW9uQ2xpZW50IDogcHVibGljIFJlZkNvdW50ZWQ8U2hhcmVkRGV2aWNlT3JpZW50YXRp
b25DbGllbnQ+IHsKK3B1YmxpYzoKKyAgICBTaGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudCgp
IHsgfQorICAgIHZpcnR1YWwgflNoYXJlZERldmljZU9yaWVudGF0aW9uQ2xpZW50KCkgeyB9CisK
KyAgICB2aXJ0dWFsIHZvaWQgc3RhcnRVcGRhdGluZyhXZWJDb3JlTW90aW9uTWFuYWdlckNsaWVu
dCYpIHsgfQorICAgIHZpcnR1YWwgdm9pZCBzdG9wVXBkYXRpbmcoV2ViQ29yZU1vdGlvbk1hbmFn
ZXJDbGllbnQmKSB7IH0KKworICAgIHZpcnR1YWwgdm9pZCBkZXZpY2VPcmllbnRhdGlvbkNoYW5n
ZWQoZG91YmxlLCBkb3VibGUsIGRvdWJsZSwgZG91YmxlLCBkb3VibGUpIHsgfQorfTsKKworfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gUExBVEZPUk0oSU9TX0ZBTUlMWSkgJiYg
RU5BQkxFKERFVklDRV9PUklFTlRBVElPTikKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2lvcy9XZWJDb3JlTW90aW9uTWFuYWdlci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2lvcy9XZWJDb3JlTW90aW9uTWFuYWdlci5oCShyZXZpc2lvbiAyNTI5NjEpCisr
KyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvV2ViQ29yZU1vdGlvbk1hbmFnZXIuaAkod29y
a2luZyBjb3B5KQpAQCAtMjUsOCArMjUsNiBAQAogCiAjcHJhZ21hIG9uY2UKIAotI2ltcG9ydCAi
RGV2aWNlTW90aW9uQ2xpZW50SU9TLmgiCi0jaW1wb3J0ICJEZXZpY2VPcmllbnRhdGlvbkNsaWVu
dElPUy5oIgogI2ltcG9ydCA8Q29yZUxvY2F0aW9uL0NvcmVMb2NhdGlvbi5oPgogI2ltcG9ydCA8
d3RmL0hhc2hDb3VudGVkU2V0Lmg+CiAKQEAgLTM2LDExICszNCwxNiBAQAogCiBjb25zdCBmbG9h
dCBrTW90aW9uVXBkYXRlSW50ZXJ2YWwgPSAxLjBmIC8gNjAuMGY7CiAKLUBpbnRlcmZhY2UgV2Vi
Q29yZU1vdGlvbk1hbmFnZXIgOiBOU09iamVjdCB7CituYW1lc3BhY2UgV2ViQ29yZSB7CitjbGFz
cyBEZXZpY2VNb3Rpb25DbGllbnRJT1M7CitjbGFzcyBXZWJDb3JlTW90aW9uTWFuYWdlckNsaWVu
dDsKK307CisKK1dFQkNPUkVfRVhQT1JUIEBpbnRlcmZhY2UgV2ViQ29yZU1vdGlvbk1hbmFnZXIg
OiBOU09iamVjdCB7CiAgICAgQ01Nb3Rpb25NYW5hZ2VyKiBtX21vdGlvbk1hbmFnZXI7CiAgICAg
Q0xMb2NhdGlvbk1hbmFnZXIqIG1fbG9jYXRpb25NYW5hZ2VyOwogICAgIEhhc2hTZXQ8V2ViQ29y
ZTo6RGV2aWNlTW90aW9uQ2xpZW50SU9TKj4gbV9kZXZpY2VNb3Rpb25DbGllbnRzOwotICAgIEhh
c2hTZXQ8V2ViQ29yZTo6RGV2aWNlT3JpZW50YXRpb25DbGllbnRJT1MqPiBtX2RldmljZU9yaWVu
dGF0aW9uQ2xpZW50czsKKyAgICBIYXNoU2V0PFdlYkNvcmU6OldlYkNvcmVNb3Rpb25NYW5hZ2Vy
Q2xpZW50Kj4gbV9kZXZpY2VPcmllbnRhdGlvbkNsaWVudHM7CiAgICAgTlNUaW1lciogbV91cGRh
dGVUaW1lcjsKICAgICBCT09MIG1fZ3lyb0F2YWlsYWJsZTsKICAgICBCT09MIG1faGVhZGluZ0F2
YWlsYWJsZTsKQEAgLTUwLDggKzUzLDggQEAgY29uc3QgZmxvYXQga01vdGlvblVwZGF0ZUludGVy
dmFsID0gMS4wZgogKyAoV2ViQ29yZU1vdGlvbk1hbmFnZXIgKilzaGFyZWRNYW5hZ2VyOwogLSAo
dm9pZClhZGRNb3Rpb25DbGllbnQ6KFdlYkNvcmU6OkRldmljZU1vdGlvbkNsaWVudElPUyAqKWNs
aWVudDsKIC0gKHZvaWQpcmVtb3ZlTW90aW9uQ2xpZW50OihXZWJDb3JlOjpEZXZpY2VNb3Rpb25D
bGllbnRJT1MgKiljbGllbnQ7Ci0tICh2b2lkKWFkZE9yaWVudGF0aW9uQ2xpZW50OihXZWJDb3Jl
OjpEZXZpY2VPcmllbnRhdGlvbkNsaWVudElPUyAqKWNsaWVudDsKLS0gKHZvaWQpcmVtb3ZlT3Jp
ZW50YXRpb25DbGllbnQ6KFdlYkNvcmU6OkRldmljZU9yaWVudGF0aW9uQ2xpZW50SU9TICopY2xp
ZW50OworLSAodm9pZClhZGRPcmllbnRhdGlvbkNsaWVudDooV2ViQ29yZTo6V2ViQ29yZU1vdGlv
bk1hbmFnZXJDbGllbnQgKiljbGllbnQ7CistICh2b2lkKXJlbW92ZU9yaWVudGF0aW9uQ2xpZW50
OihXZWJDb3JlOjpXZWJDb3JlTW90aW9uTWFuYWdlckNsaWVudCAqKWNsaWVudDsKIC0gKEJPT0wp
Z3lyb0F2YWlsYWJsZTsKIC0gKEJPT0wpaGVhZGluZ0F2YWlsYWJsZTsKIEBlbmQKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJDb3JlTW90aW9uTWFuYWdlci5tbQo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvV2ViQ29yZU1vdGlvbk1hbmFnZXIu
bW0JKHJldmlzaW9uIDI1Mjk2MSkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJD
b3JlTW90aW9uTWFuYWdlci5tbQkod29ya2luZyBjb3B5KQpAQCAtMjgsNiArMjgsOCBAQAogCiAj
aWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkgJiYgRU5BQkxFKERFVklDRV9PUklFTlRBVElPTikKIAor
I2ltcG9ydCAiRGV2aWNlTW90aW9uQ2xpZW50SU9TLmgiCisjaW1wb3J0ICJXZWJDb3JlTW90aW9u
TWFuYWdlckNsaWVudC5oIgogI2ltcG9ydCAiV2ViQ29yZU9iakNFeHRyYXMuaCIKICNpbXBvcnQg
IldlYkNvcmVUaHJlYWRSdW4uaCIKICNpbXBvcnQgPENvcmVMb2NhdGlvbi9Db3JlTG9jYXRpb24u
aD4KQEAgLTExMiwxNCArMTE0LDE0IEBAIC0gKHZvaWQpcmVtb3ZlTW90aW9uQ2xpZW50OihXZWJD
b3JlOjpEZXYKICAgICAgICAgW3NlbGYgY2hlY2tDbGllbnRTdGF0dXNdOwogfQogCi0tICh2b2lk
KWFkZE9yaWVudGF0aW9uQ2xpZW50OihXZWJDb3JlOjpEZXZpY2VPcmllbnRhdGlvbkNsaWVudElP
UyAqKWNsaWVudAorLSAodm9pZClhZGRPcmllbnRhdGlvbkNsaWVudDooV2ViQ29yZTo6V2ViQ29y
ZU1vdGlvbk1hbmFnZXJDbGllbnQgKiljbGllbnQKIHsKICAgICBtX2RldmljZU9yaWVudGF0aW9u
Q2xpZW50cy5hZGQoY2xpZW50KTsKICAgICBpZiAobV9pbml0aWFsaXplZCkKICAgICAgICAgW3Nl
bGYgY2hlY2tDbGllbnRTdGF0dXNdOwogfQogCi0tICh2b2lkKXJlbW92ZU9yaWVudGF0aW9uQ2xp
ZW50OihXZWJDb3JlOjpEZXZpY2VPcmllbnRhdGlvbkNsaWVudElPUyAqKWNsaWVudAorLSAodm9p
ZClyZW1vdmVPcmllbnRhdGlvbkNsaWVudDooV2ViQ29yZTo6V2ViQ29yZU1vdGlvbk1hbmFnZXJD
bGllbnQgKiljbGllbnQKIHsKICAgICBtX2RldmljZU9yaWVudGF0aW9uQ2xpZW50cy5yZW1vdmUo
Y2xpZW50KTsKICAgICBpZiAobV9pbml0aWFsaXplZCkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2lvcy9XZWJDb3JlTW90aW9uTWFuYWdlckNsaWVudC5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJDb3JlTW90aW9uTWFuYWdlckNsaWVudC5oCShu
b25leGlzdGVudCkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJDb3JlTW90aW9u
TWFuYWdlckNsaWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMzcgQEAKKy8qCisqIENv
cHlyaWdodCAoQykgMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisqCisqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyogYXJlIG1ldDoKKyogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisqCisqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9S
UyBgYEFTIElTJycKKyogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJ
QlVUT1JTCisqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyogU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
CisqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOCisqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisqIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyog
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorKi8KKworI3ByYWdtYSBvbmNlCisKK25h
bWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgV2ViQ29yZU1vdGlvbk1hbmFnZXJDbGllbnQgewor
cHVibGljOgorICAgIHZpcnR1YWwgfldlYkNvcmVNb3Rpb25NYW5hZ2VyQ2xpZW50KCkgeyB9Owor
CisgICAgdmlydHVhbCB2b2lkIG9yaWVudGF0aW9uQ2hhbmdlZChkb3VibGUsIGRvdWJsZSwgZG91
YmxlLCBkb3VibGUsIGRvdWJsZSkgeyB9OworfTsKKworfTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQv
Q2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCShyZXZpc2lv
biAyNTI5NjEpCisrKyBTb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAt
MSwzICsxLDMzIEBACisyMDE5LTExLTMwICBQZXIgQXJuZSBWb2xsYW4gIDxwdm9sbGFuQGFwcGxl
LmNvbT4KKworICAgICAgICBbaU9TXSBDYWxscyB0byBkZXZpY2Ugb3JpZW50YXRpb24gQVBJIHNo
b3VsZCBiZSBkb25lIGluIHRoZSBVSSBwcm9jZXNzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDQ3MjAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgV2ViIHBhZ2UgcHJveHkgbWVzc2FnZXMgdG8gc3Rh
cnQgYW5kIHN0b3AgdXBkYXRpbmcgZGV2aWNlIG9yaWVudGF0aW9uIGluIHRoZSBVSSBwcm9jZXNz
LiBBbHNvLCBhZGQgYSBtZXNzYWdlIHRvCisgICAgICAgIHRoZSBXZWIgcGFnZSB0byB1cGRhdGUg
dGhlIGRldmljZSBvcmllbnRhdGlvbiBpbiB0aGUgV2ViQ29udGVudCBwcm9jZXNzLiBJbiB0aGUg
VUkgcHJvY2VzcywgdGhlIGRldmljZSBvcmllbnRhdGlvbiBBUEkKKyAgICAgICAgaXMgY2FsbGVk
IHRocm91Z2ggdGhlIGFscmVhZHkgZXhpc3RpbmcgV2ViQ29yZU1vdGlvbk1hbmFnZXIgY2xhc3Mu
CisKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lmg6CisgICAgICAgICogVUlQcm9j
ZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dl
YlBhZ2VQcm94eUlPUy5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpzdGFydFVw
ZGF0aW5nRGV2aWNlT3JpZW50YXRpb24pOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6
OnN0b3BVcGRhdGluZ0RldmljZU9yaWVudGF0aW9uKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFn
ZVByb3h5OjpvcmllbnRhdGlvbkNoYW5nZWQpOgorICAgICAgICAqIFdlYktpdC54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2Vi
U2hhcmVkRGV2aWNlT3JpZW50YXRpb25DbGllbnQuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYktp
dDo6V2ViU2hhcmVkRGV2aWNlT3JpZW50YXRpb25DbGllbnQ6OnN0YXJ0VXBkYXRpbmcpOgorICAg
ICAgICAoV2ViS2l0OjpXZWJTaGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudDo6c3RvcFVwZGF0
aW5nKToKKyAgICAgICAgKFdlYktpdDo6V2ViU2hhcmVkRGV2aWNlT3JpZW50YXRpb25DbGllbnQ6
OmRldmljZU9yaWVudGF0aW9uQ2hhbmdlZCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3Jl
U3VwcG9ydC9XZWJTaGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudC5oOiBBZGRlZC4KKyAgICAg
ICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHA6CisgICAgICAgIChXZWJLaXQ6Om1f
b3ZlcnJpZGRlbk1lZGlhVHlwZSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBh
Z2UuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbjoK
KyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW06CisgICAgICAg
IChXZWJLaXQ6OldlYlBhZ2U6OmRldmljZU9yaWVudGF0aW9uQ2hhbmdlZCk6CisKIDIwMTktMTEt
MjcgIEFudG9pbmUgUXVpbnQgIDxncmFvdXRzQGFwcGxlLmNvbT4KIAogICAgICAgICBbV2ViIEFu
aW1hdGlvbnNdIEVuYWJsZSBXZWJBbmltYXRpb25zQ1NTSW50ZWdyYXRpb25FbmFibGVkIGJ5IGRl
ZmF1bHQKSW5kZXg6IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAkocmV2
aXNpb24gMjUyOTYxKQorKysgU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNw
cAkod29ya2luZyBjb3B5KQpAQCAtNTIwLDYgKzUyMCwxMCBAQCBXZWJQYWdlUHJveHk6On5XZWJQ
YWdlUHJveHkoKQogICAgIG1fcHJlZmVyZW5jZXMtPnJlbW92ZVBhZ2UoKnRoaXMpOwogICAgIG1f
cGFnZUdyb3VwLT5yZW1vdmVQYWdlKHRoaXMpOwogCisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkg
JiYgRU5BQkxFKERFVklDRV9PUklFTlRBVElPTikKKyAgICBzdG9wVXBkYXRpbmdEZXZpY2VPcmll
bnRhdGlvbnMoKTsKKyNlbmRpZgorICAgIAogI2lmbmRlZiBOREVCVUcKICAgICB3ZWJQYWdlUHJv
eHlDb3VudGVyLmRlY3JlbWVudCgpOwogI2VuZGlmCkluZGV4OiBTb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJQYWdlUHJveHkuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJQYWdlUHJveHkuaAkocmV2aXNpb24gMjUyOTYxKQorKysgU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvV2ViUGFnZVByb3h5LmgJKHdvcmtpbmcgY29weSkKQEAgLTE0OSw2ICsxNDksMTAgQEAg
T0JKQ19DTEFTUyBfV0tSZW1vdGVPYmplY3RSZWdpc3RyeTsKICNpbmNsdWRlICJTT0F1dGhvcml6
YXRpb25Mb2FkUG9saWN5LmgiCiAjZW5kaWYKIAorI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpICYm
IEVOQUJMRShERVZJQ0VfT1JJRU5UQVRJT04pCisjaW5jbHVkZSA8V2ViQ29yZS9XZWJDb3JlTW90
aW9uTWFuYWdlckNsaWVudC5oPgorI2VuZGlmCisKICNpZiBFTkFCTEUoTUVESUFfU0VTU0lPTikK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIE1lZGlhU2Vzc2lvbk1ldGFkYXRhOwpAQCAtMTU5
LDYgKzE2MywxMCBAQCBjbGFzcyBNZWRpYVNlc3Npb25NZXRhZGF0YTsKIGludGVyZmFjZSBJRDNE
MTFEZXZpY2UxOwogI2VuZGlmCiAKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKSAmJiBFTkFCTEUo
REVWSUNFX09SSUVOVEFUSU9OKQorT0JKQ19DTEFTUyBXZWJDb3JlTW90aW9uTWFuYWdlcjsKKyNl
bmRpZgorCiBuYW1lc3BhY2UgQVBJIHsKIGNsYXNzIEF0dGFjaG1lbnQ7CiBjbGFzcyBDb250ZXh0
TWVudUNsaWVudDsKQEAgLTQxMCw2ICs0MTgsOSBAQCBjbGFzcyBXZWJQYWdlUHJveHkgOiBwdWJs
aWMgQVBJOjpPYmplY3RJCiAgICAgLCBwdWJsaWMgV2ViQ29yZTo6UGxhdGZvcm1TcGVlY2hTeW50
aGVzaXNVdHRlcmFuY2VDbGllbnQKICAgICAsIHB1YmxpYyBXZWJDb3JlOjpQbGF0Zm9ybVNwZWVj
aFN5bnRoZXNpemVyQ2xpZW50CiAjZW5kaWYKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKSAmJiBF
TkFCTEUoREVWSUNFX09SSUVOVEFUSU9OKQorICAgICwgcHVibGljIFdlYkNvcmU6OldlYkNvcmVN
b3Rpb25NYW5hZ2VyQ2xpZW50CisjZW5kaWYKICAgICAsIHB1YmxpYyBDYW5NYWtlV2Vha1B0cjxX
ZWJQYWdlUHJveHk+IHsKIHB1YmxpYzoKICAgICBzdGF0aWMgUmVmPFdlYlBhZ2VQcm94eT4gY3Jl
YXRlKFBhZ2VDbGllbnQmLCBXZWJQcm9jZXNzUHJveHkmLCBSZWY8QVBJOjpQYWdlQ29uZmlndXJh
dGlvbj4mJik7CkBAIC0xNjI0LDYgKzE2MzUsMTEgQEAgcHVibGljOgogICAgIGNvbnN0IFN0cmlu
ZyYgb3ZlcnJpZGRlbk1lZGlhVHlwZSgpIGNvbnN0IHsgcmV0dXJuIG1fb3ZlcnJpZGRlbk1lZGlh
VHlwZTsgfQogICAgIHZvaWQgc2V0T3ZlcnJpZGRlbk1lZGlhVHlwZShjb25zdCBTdHJpbmcmKTsK
IAorI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpICYmIEVOQUJMRShERVZJQ0VfT1JJRU5UQVRJT04p
CisgICAgdm9pZCBzdGFydFVwZGF0aW5nRGV2aWNlT3JpZW50YXRpb24oKTsKKyAgICB2b2lkIHN0
b3BVcGRhdGluZ0RldmljZU9yaWVudGF0aW9uKCk7CisjZW5kaWYKKwogcHJpdmF0ZToKICAgICBX
ZWJQYWdlUHJveHkoUGFnZUNsaWVudCYsIFdlYlByb2Nlc3NQcm94eSYsIFJlZjxBUEk6OlBhZ2VD
b25maWd1cmF0aW9uPiYmKTsKICAgICB2b2lkIHBsYXRmb3JtSW5pdGlhbGl6ZSgpOwpAQCAtMjE2
Nyw2ICsyMTgzLDExIEBAIHByaXZhdGU6CiAgICAgdm9pZCByZXNldFNwZWVjaFN5bnRoZXNpemVy
KCk7CiAjZW5kaWYKIAorI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpICYmIEVOQUJMRShERVZJQ0Vf
T1JJRU5UQVRJT04pCisgICAgLy8gV2ViQ29yZTo6V2ViQ29yZU1vdGlvbk1hbmFnZXJDbGllbnQK
KyAgICB2b2lkIG9yaWVudGF0aW9uQ2hhbmdlZChkb3VibGUsIGRvdWJsZSwgZG91YmxlLCBkb3Vi
bGUsIGRvdWJsZSkgb3ZlcnJpZGU7CisjZW5kaWYKKwogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkp
CiAgICAgc3RhdGljIGJvb2wgaXNJbkhhcmR3YXJlS2V5Ym9hcmRNb2RlKCk7CiAgICAgdm9pZCBj
bGVhckF1ZGlibGVBY3Rpdml0eSgpOwpAQCAtMjYyNCw2ICsyNjQ1LDEwIEBAIHByaXZhdGU6CiAg
ICAgYm9vbCBtX2lzUXVvdGFJbmNyZWFzZURlbmllZCB7IGZhbHNlIH07CiAgICAgCiAgICAgU3Ry
aW5nIG1fb3ZlcnJpZGRlbk1lZGlhVHlwZTsKKworI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpICYm
IEVOQUJMRShERVZJQ0VfT1JJRU5UQVRJT04pCisgICAgV2ViQ29yZU1vdGlvbk1hbmFnZXIqIG1f
bW90aW9uTWFuYWdlciB7IG51bGxwdHIgfTsKKyNlbmRpZgogfTsKIAogfSAvLyBuYW1lc3BhY2Ug
V2ViS2l0CkluZGV4OiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2Fn
ZXMuaW4KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5
Lm1lc3NhZ2VzLmluCShyZXZpc2lvbiAyNTI5NjEpCisrKyBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4JKHdvcmtpbmcgY29weSkKQEAgLTU4Niw0ICs1ODYs
OSBAQCBtZXNzYWdlcyAtPiBXZWJQYWdlUHJveHkgewogCiAgICAgRGlkRmluZFRleHRNYW5pcHVs
YXRpb25JdGVtKFdlYkNvcmU6OlRleHRNYW5pcHVsYXRpb25Db250cm9sbGVyOjpJdGVtSWRlbnRp
ZmllciBpdGVtSUQsIFZlY3RvcjxXZWJDb3JlOjpUZXh0TWFuaXB1bGF0aW9uQ29udHJvbGxlcjo6
TWFuaXB1bGF0aW9uVG9rZW4+IHRva2VucykKIAorI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpICYm
IEVOQUJMRShERVZJQ0VfT1JJRU5UQVRJT04pCisgICAgU3RhcnRVcGRhdGluZ0RldmljZU9yaWVu
dGF0aW9uKCk7CisgICAgU3RvcFVwZGF0aW5nRGV2aWNlT3JpZW50YXRpb24oKTsKKyNlbmRpZgor
CiB9CkluZGV4OiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV2ViUGFnZVByb3h5SU9TLm1t
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XZWJQYWdlUHJveHlJ
T1MubW0JKHJldmlzaW9uIDI1Mjk2MSkKKysrIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9X
ZWJQYWdlUHJveHlJT1MubW0JKHdvcmtpbmcgY29weSkKQEAgLTc1LDYgKzc1LDEwIEBACiAjaW1w
b3J0IDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KICNlbmRpZgogCisjaWYgRU5BQkxFKERFVklDRV9P
UklFTlRBVElPTikKKyNpbXBvcnQgPFdlYkNvcmUvV2ViQ29yZU1vdGlvbk1hbmFnZXIuaD4KKyNl
bmRpZgorCiAjZGVmaW5lIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoY2hhbm5lbCwgZm10LCAuLi4p
IFJFTEVBU0VfTE9HX0lGKGlzQWx3YXlzT25Mb2dnaW5nQWxsb3dlZCgpLCBjaGFubmVsLCAiJXAg
LSBbcGFnZVByb3h5SUQ9JWxsdSwgd2ViUGFnZUlEPSVsbHUsIFBJRD0laV0gV2ViUGFnZVByb3h5
OjoiIGZtdCwgdGhpcywgbV9pZGVudGlmaWVyLnRvVUludDY0KCksIG1fd2ViUGFnZUlELnRvVUlu
dDY0KCksIG1fcHJvY2Vzcy0+cHJvY2Vzc0lkZW50aWZpZXIoKSwgIyNfX1ZBX0FSR1NfXykKIAog
bmFtZXNwYWNlIFdlYktpdCB7CkBAIC0xNDgzLDYgKzE0ODcsMjYgQEAgV2ViQ29udGVudE1vZGUg
V2ViUGFnZVByb3h5OjplZmZlY3RpdmVDbwogICAgIHJldHVybiBXZWJDb250ZW50TW9kZTo6RGVz
a3RvcDsKIH0KIAorI2lmIEVOQUJMRShERVZJQ0VfT1JJRU5UQVRJT04pCit2b2lkIFdlYlBhZ2VQ
cm94eTo6c3RhcnRVcGRhdGluZ0RldmljZU9yaWVudGF0aW9uKCkKK3sKKyAgICBpZiAoIW1fbW90
aW9uTWFuYWdlcikKKyAgICAgICAgbV9tb3Rpb25NYW5hZ2VyID0gW1dlYkNvcmVNb3Rpb25NYW5h
Z2VyIHNoYXJlZE1hbmFnZXJdOworICAgIFttX21vdGlvbk1hbmFnZXIgYWRkT3JpZW50YXRpb25D
bGllbnQ6dGhpc107Cit9CisKK3ZvaWQgV2ViUGFnZVByb3h5OjpzdG9wVXBkYXRpbmdEZXZpY2VP
cmllbnRhdGlvbigpCit7CisgICAgW21fbW90aW9uTWFuYWdlciByZW1vdmVPcmllbnRhdGlvbkNs
aWVudDp0aGlzXTsKK30KKwordm9pZCBXZWJQYWdlUHJveHk6Om9yaWVudGF0aW9uQ2hhbmdlZChk
b3VibGUgYWxwaGEsIGRvdWJsZSBiZXRhLCBkb3VibGUgZ2FtbWEsIGRvdWJsZSBjb21wYXNzSGVh
ZGluZywgZG91YmxlIGNvbXBhc3NBY2N1cmFjeSkKK3sKKyAgICBzZW5kKE1lc3NhZ2VzOjpXZWJQ
YWdlOjpEZXZpY2VPcmllbnRhdGlvbkNoYW5nZWQoYWxwaGEsIGJldGEsIGdhbW1hLCBjb21wYXNz
SGVhZGluZywgY29tcGFzc0FjY3VyYWN5KSwgMCk7Cit9CisjZW5kaWYKKworCiB9IC8vIG5hbWVz
cGFjZSBXZWJLaXQKIAogI3VuZGVmIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQKSW5kZXg6IFNvdXJj
ZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkocmV2aXNpb24g
MjUyOTYxKQorKysgU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agkod29ya2luZyBjb3B5KQpAQCAtMTY4OSw2ICsxNjg5LDcgQEAKIAkJRTFEMjZBNTMxNzU5NjRE
OTAwOTVCRkQxIC8qIFdlYkNvbnRlbnRQcm9jZXNzLnhpYiBpbiBSZXNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTFEMjZBNEMxNzU5NjM0RTAwOTVCRkQxIC8qIFdl
YkNvbnRlbnRQcm9jZXNzLnhpYiAqLzsgfTsKIAkJRTFFNTUyQzUxNkFFMDY1RjAwNEVENjUzIC8q
IFNhbmRib3hJbml0aWFsaXphdGlvblBhcmFtZXRlcnMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxRTU1MkMzMTZBRTA2NUUwMDRFRDY1MyAvKiBTYW5k
Ym94SW5pdGlhbGl6YXRpb25QYXJhbWV0ZXJzLmggKi87IH07CiAJCUUxRUU1M0UzMTFGOENGQzAw
MENDQkVFNCAvKiBJbmplY3RlZEJ1bmRsZVBhZ2VFZGl0b3JDbGllbnQuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxRUU1M0RDMTFGOENGOUYwMENDQkVF
NCAvKiBJbmplY3RlZEJ1bmRsZVBhZ2VFZGl0b3JDbGllbnQuaCAqLzsgfTsKKwkJRTM5NjI4QUEy
Mzg4QUJEODAwNjU4RUNEIC8qIFdlYlNoYXJlZERldmljZU9yaWVudGF0aW9uQ2xpZW50LmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUzOTYyOEE5MjM4
OEFCRDgwMDY1OEVDRCAvKiBXZWJTaGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudC5jcHAgKi87
IH07CiAJCUU0MTNGNTlEMUFDMUFEQzQwMDM0NTM2MCAvKiBOZXR3b3JrQ2FjaGVFbnRyeS5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTQxM0Y1OUIxQUMx
QURCNjAwMzQ1MzYwIC8qIE5ldHdvcmtDYWNoZUVudHJ5LmggKi87IH07CiAJCUU0MkUwNjEwMUFB
NzUyM0IwMEIxMTY5OSAvKiBOZXR3b3JrQ2FjaGVJT0NoYW5uZWwuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU0MkUwNjBCMUFBNzQ0MEQwMEIxMTY5OSAv
KiBOZXR3b3JrQ2FjaGVJT0NoYW5uZWwuaCAqLzsgfTsKIAkJRTQyRTA2MTIxQUE3NUFCRDAwQjEx
Njk5IC8qIE5ldHdvcmtDYWNoZURhdGEuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEU0MkUwNjExMUFBNzVBQkQwMEIxMTY5OSAvKiBOZXR3b3JrQ2FjaGVE
YXRhLmggKi87IH07CkBAIC00NzQ4LDYgKzQ3NDksOCBAQAogCQlFMUVFNTNEQzExRjhDRjlGMDBD
Q0JFRTQgLyogSW5qZWN0ZWRCdW5kbGVQYWdlRWRpdG9yQ2xpZW50LmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IEluamVjdGVkQnVuZGxlUGFnZUVkaXRvckNsaWVudC5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFMUVFNTNFNjExRjhDRkZCMDBDQ0JFRTQgLyogSW5q
ZWN0ZWRCdW5kbGVQYWdlRWRpdG9yQ2xpZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IEluamVjdGVkQnVuZGxlUGFnZUVkaXRvckNsaWVudC5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUzNDM5QjYzMjM0NTQ2M0EwMDExREUwQiAvKiBOZXR3b3Jr
UHJvY2Vzc0Nvbm5lY3Rpb25JbmZvLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IE5ldHdvcmtQcm9jZXNzQ29u
bmVjdGlvbkluZm8uaDsgcGF0aCA9IE5ldHdvcmsvTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uSW5m
by5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFMzk2MjhBODIzODhBNUQ0MDA2NThF
Q0QgLyogV2ViU2hhcmVkRGV2aWNlT3JpZW50YXRpb25DbGllbnQuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
V2ViU2hhcmVkRGV2aWNlT3JpZW50YXRpb25DbGllbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJRTM5NjI4QTkyMzg4QUJEODAwNjU4RUNEIC8qIFdlYlNoYXJlZERldmljZU9yaWVu
dGF0aW9uQ2xpZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYlNoYXJlZERldmljZU9yaWVu
dGF0aW9uQ2xpZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTQwNDkwNzAy
MURFNjVGNzAwMzdGMERCIC8qIFNjcm9sbGVyUGFpck1hYy5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBTY3JvbGxlclBhaXJNYWMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJRTQwNDkwNzEyMURFNjVGNzAwMzdGMERCIC8qIFNjcm9sbGluZ1RyZWVGcmFtZVNjcm9s
bGluZ05vZGVSZW1vdGVNYWMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gU2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZVJlbW90ZU1hYy5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCUU0MDQ5MDcyMjFERTY1RjcwMDM3RjBEQiAvKiBTY3JvbGxl
clBhaXJNYWMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBTY3Jv
bGxlclBhaXJNYWMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC01ODU0LDYgKzU4
NTcsOCBAQAogCQkJCTJEMjhGM0UzMTg4NUNDQzEwMDRCOUVBRSAvKiBXZWJGcmFtZUxvYWRlckNs
aWVudElPUy5tbSAqLywKIAkJCQlBMUM1MTJDNjE5MDY1NkU1MDA0NDg5MTQgLyogV2ViUHJldmll
d0xvYWRlckNsaWVudC5jcHAgKi8sCiAJCQkJQTFDNTEyQzcxOTA2NTZFNTAwNDQ4OTE0IC8qIFdl
YlByZXZpZXdMb2FkZXJDbGllbnQuaCAqLywKKwkJCQlFMzk2MjhBOTIzODhBQkQ4MDA2NThFQ0Qg
LyogV2ViU2hhcmVkRGV2aWNlT3JpZW50YXRpb25DbGllbnQuY3BwICovLAorCQkJCUUzOTYyOEE4
MjM4OEE1RDQwMDY1OEVDRCAvKiBXZWJTaGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudC5oICov
LAogCQkJKTsKIAkJCW5hbWUgPSBpb3M7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwpAQCAt
OTgyMCw3ICs5ODI1LDYgQEAKIAkJCQk1MTFGOEE3QjEzOEI0NjA5MDBBOTVGNDQgLyogU2VjSXRl
bVNoaW1MaWJyYXJ5LmggaW4gSGVhZGVycyAqLywKIAkJCQlFMThFNjkwQzE2OUI1NjNGMDA5QjY2
NzAgLyogU2VjSXRlbVNoaW1Qcm94eS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTE4RTY5MTgxNjlC
NjY3QjAwOUI2NjcwIC8qIFNlY0l0ZW1TaGltUHJveHlNZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8s
Ci0JCQkJN0FBNzQ2RDUyMzU5M0Q4MTAwMDk1MDUwIC8qIFNlY0l0ZW1TUEkuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTU3MEFCOEYzMjBBRTNCRDcwMEI4QkU4NyAvKiBTZWNLZXlQcm94eVN0b3JlLmgg
aW4gSGVhZGVycyAqLywKIAkJCQk1MTREOUY1NzE5MTE5RDM1MDAwMDYzQTcgLyogU2VydmljZXND
b250cm9sbGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQUZERTY1QTE5NTRBNDJCMDBDNDhGRkEg
LyogU2Vzc2lvblN0YXRlLmggaW4gSGVhZGVycyAqLywKQEAgLTExNjE5LDYgKzExNjIzLDcgQEAK
IAkJCQk1MUYwNjBFMTE2NTQzMTg1MDBGMzI4MUYgLyogV2ViUlRDTW9uaXRvck1lc3NhZ2VSZWNl
aXZlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk1MUYwNjBFMTE2NTQzMTg1MDBGMzI4MkMgLyog
V2ViUlRDUmVzb2x2ZXJNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNTFG
MDYwRTExNjU0MzE4NTAwRjMyODFDIC8qIFdlYlJUQ1NvY2tldE1lc3NhZ2VSZWNlaXZlci5jcHAg
aW4gU291cmNlcyAqLywKKwkJCQlFMzk2MjhBQTIzODhBQkQ4MDA2NThFQ0QgLyogV2ViU2hhcmVk
RGV2aWNlT3JpZW50YXRpb25DbGllbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNDFGMDYwRTEx
NjU0MzE4NTAwRjMyODFDIC8qIFdlYlNvY2tldENoYW5uZWxNZXNzYWdlUmVjZWl2ZXIuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJNUMwQjE3NzkxRTdDODgyMTAwRTkxMjNDIC8qIFdlYlNvY2tldFN0
cmVhbU1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk0MTI4N0Q0RTIyNUQx
RUNCMDA5QTNFMjYgLyogV2ViU29ja2V0VGFza0NvY29hLm1tIGluIFNvdXJjZXMgKi8sCkluZGV4
OiBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViU2hhcmVkRGV2aWNl
T3JpZW50YXRpb25DbGllbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJTaGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudC5jcHAJ
KG5vbmV4aXN0ZW50KQorKysgU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0
L1dlYlNoYXJlZERldmljZU9yaWVudGF0aW9uQ2xpZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAt
MCwwICsxLDYwIEBACisvKgorKiBDb3B5cmlnaHQgKEMpIDIwMTkgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorKgorKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisqIGFyZSBtZXQ6Cisq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorKgorKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisqIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorKiBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisqIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GCisqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUworKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorKiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KQorKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GCisqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyov
CisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJXZWJTaGFyZWREZXZpY2VPcmllbnRh
dGlvbkNsaWVudC5oIgorCisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkgJiYgRU5BQkxFKERFVklD
RV9PUklFTlRBVElPTikKKworI2luY2x1ZGUgIldlYlBhZ2UuaCIKKyNpbmNsdWRlICJXZWJQYWdl
UHJveHlNZXNzYWdlcy5oIgorCisjaW5jbHVkZSA8V2ViQ29yZS9XZWJDb3JlTW90aW9uTWFuYWdl
ckNsaWVudC5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKKwordm9pZCBXZWJTaGFyZWREZXZpY2VP
cmllbnRhdGlvbkNsaWVudDo6c3RhcnRVcGRhdGluZyhXZWJDb3JlOjpXZWJDb3JlTW90aW9uTWFu
YWdlckNsaWVudCYgY2xpZW50KQoreworICAgIGlmIChtX2NsaWVudHMuaXNFbXB0eSgpKQorICAg
ICAgICBtX3BhZ2Uuc2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpTdGFydFVwZGF0aW5nRGV2
aWNlT3JpZW50YXRpb24oKSk7CisgICAgbV9jbGllbnRzLmFkZCgmY2xpZW50KTsKK30KKwordm9p
ZCBXZWJTaGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudDo6c3RvcFVwZGF0aW5nKFdlYkNvcmU6
OldlYkNvcmVNb3Rpb25NYW5hZ2VyQ2xpZW50JiBjbGllbnQpCit7CisgICAgbV9jbGllbnRzLnJl
bW92ZSgmY2xpZW50KTsKKyAgICBpZiAobV9jbGllbnRzLmlzRW1wdHkoKSkKKyAgICAgICAgbV9w
YWdlLnNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6U3RvcFVwZGF0aW5nRGV2aWNlT3JpZW50
YXRpb24oKSk7Cit9CisKK3ZvaWQgV2ViU2hhcmVkRGV2aWNlT3JpZW50YXRpb25DbGllbnQ6OmRl
dmljZU9yaWVudGF0aW9uQ2hhbmdlZChkb3VibGUgYWxwaGEsIGRvdWJsZSBiZXRhLCBkb3VibGUg
Z2FtbWEsIGRvdWJsZSBjb21wYXNzSGVhZGluZywgZG91YmxlIGNvbXBhc3NBY2N1cmFjeSkKK3sK
KyAgICBmb3IgKGF1dG8gY2xpZW50IDogbV9jbGllbnRzKQorICAgICAgICBjbGllbnQtPm9yaWVu
dGF0aW9uQ2hhbmdlZChhbHBoYSwgYmV0YSwgZ2FtbWEsIGNvbXBhc3NIZWFkaW5nLCBjb21wYXNz
QWNjdXJhY3kpOworfQorCit9OworCisjZW5kaWYKSW5kZXg6IFNvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJTaGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudC5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJT
aGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudC5oCShub25leGlzdGVudCkKKysrIFNvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJTaGFyZWREZXZpY2VPcmllbnRhdGlv
bkNsaWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNTggQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRS
SUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJ
VFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisj
cHJhZ21hIG9uY2UKKworI2luY2x1ZGUgPFdlYkNvcmUvU2hhcmVkRGV2aWNlT3JpZW50YXRpb25D
bGllbnQuaD4KKworI2luY2x1ZGUgPHd0Zi9IYXNoU2V0Lmg+CisKKyNpZiBQTEFURk9STShJT1Nf
RkFNSUxZKSAmJiBFTkFCTEUoREVWSUNFX09SSUVOVEFUSU9OKQorCituYW1lc3BhY2UgV2ViS2l0
IHsKKworY2xhc3MgV2ViUGFnZTsKKworY2xhc3MgV2ViU2hhcmVkRGV2aWNlT3JpZW50YXRpb25D
bGllbnQgZmluYWwgOiBwdWJsaWMgV2ViQ29yZTo6U2hhcmVkRGV2aWNlT3JpZW50YXRpb25DbGll
bnQgeworICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOworcHVibGljOgorICAgIFdlYlNoYXJl
ZERldmljZU9yaWVudGF0aW9uQ2xpZW50KFdlYlBhZ2UmIHBhZ2UpCisgICAgICAgIDogbV9wYWdl
KHBhZ2UpCisgICAgeworICAgIH0KKworICAgIHZvaWQgc3RhcnRVcGRhdGluZyhXZWJDb3JlOjpX
ZWJDb3JlTW90aW9uTWFuYWdlckNsaWVudCYpIG92ZXJyaWRlOworICAgIHZvaWQgc3RvcFVwZGF0
aW5nKFdlYkNvcmU6OldlYkNvcmVNb3Rpb25NYW5hZ2VyQ2xpZW50Jikgb3ZlcnJpZGU7CisKKyAg
ICB2b2lkIGRldmljZU9yaWVudGF0aW9uQ2hhbmdlZChkb3VibGUsIGRvdWJsZSwgZG91YmxlLCBk
b3VibGUsIGRvdWJsZSkgb3ZlcnJpZGU7CisKK3ByaXZhdGU6CisgICAgV2ViUGFnZSYgbV9wYWdl
OworICAgIEhhc2hTZXQ8V2ViQ29yZTo6V2ViQ29yZU1vdGlvbk1hbmFnZXJDbGllbnQqPiBtX2Ns
aWVudHM7Cit9OworCit9CisKKyNlbmRpZgpJbmRleDogU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYlBhZ2UvV2ViUGFnZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAJKHJldmlzaW9uIDI1Mjk2MSkKKysrIFNvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMjAs
NiArMTIwLDcgQEAKICNpbmNsdWRlICJXZWJQcm9jZXNzUHJveHlNZXNzYWdlcy5oIgogI2luY2x1
ZGUgIldlYlByb2dyZXNzVHJhY2tlckNsaWVudC5oIgogI2luY2x1ZGUgIldlYlNlcnZpY2VXb3Jr
ZXJQcm92aWRlci5oIgorI2luY2x1ZGUgIldlYlNoYXJlZERldmljZU9yaWVudGF0aW9uQ2xpZW50
LmgiCiAjaW5jbHVkZSAiV2ViU29ja2V0UHJvdmlkZXIuaCIKICNpbmNsdWRlICJXZWJTcGVlY2hT
eW50aGVzaXNDbGllbnQuaCIKICNpbmNsdWRlICJXZWJTdG9yYWdlTmFtZXNwYWNlUHJvdmlkZXIu
aCIKQEAgLTUwMSw2ICs1MDIsOCBAQCBXZWJQYWdlOjpXZWJQYWdlKFBhZ2VJZGVudGlmaWVyIHBh
Z2VJRCwgCiAjaWYgRU5BQkxFKEFQUExJQ0FUSU9OX01BTklGRVNUKQogICAgIHBhZ2VDb25maWd1
cmF0aW9uLmFwcGxpY2F0aW9uTWFuaWZlc3QgPSBwYXJhbWV0ZXJzLmFwcGxpY2F0aW9uTWFuaWZl
c3Q7CiAjZW5kaWYKKyAgICAKKyAgICBwYWdlQ29uZmlndXJhdGlvbi5zaGFyZWREZXZpY2VPcmll
bnRhdGlvbkNsaWVudCA9IG5ldyBXZWJTaGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudCgqdGhp
cyk7CiAKICAgICBtX3BhZ2UgPSBtYWtlVW5pcXVlPFBhZ2U+KFdURk1vdmUocGFnZUNvbmZpZ3Vy
YXRpb24pKTsKIApJbmRleDogU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFn
ZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBh
Z2UuaAkocmV2aXNpb24gMjUyOTYxKQorKysgU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBh
Z2UvV2ViUGFnZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0xMjQ0LDYgKzEyNDQsMTAgQEAgcHVibGlj
OgogICAgIGNvbnN0IFN0cmluZyYgb3ZlcnJpZGRlbk1lZGlhVHlwZSgpIGNvbnN0IHsgcmV0dXJu
IG1fb3ZlcnJpZGRlbk1lZGlhVHlwZTsgfQogICAgIHZvaWQgc2V0T3ZlcnJpZGRlbk1lZGlhVHlw
ZShjb25zdCBTdHJpbmcmKTsKICAgICAKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKSAmJiBFTkFC
TEUoREVWSUNFX09SSUVOVEFUSU9OKQorICAgIHZvaWQgZGV2aWNlT3JpZW50YXRpb25DaGFuZ2Vk
KGRvdWJsZSBhbHBoYSwgZG91YmxlIGJldGEsIGRvdWJsZSBnYW1tYSwgZG91YmxlIGNvbXBhc3NI
ZWFkaW5nLCBkb3VibGUgY29tcGFzc0FjY3VyYWN5KTsKKyNlbmRpZgorCiBwcml2YXRlOgogICAg
IFdlYlBhZ2UoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIFdlYlBhZ2VDcmVhdGlvblBhcmFtZXRl
cnMmJik7CiAKSW5kZXg6IFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2Uu
bWVzc2FnZXMuaW4KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBh
Z2UvV2ViUGFnZS5tZXNzYWdlcy5pbgkocmV2aXNpb24gMjUyOTYxKQorKysgU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbgkod29ya2luZyBjb3B5KQpA
QCAtNTgzLDQgKzU4Myw4IEBAIEdlbmVyYXRlU3ludGhldGljRWRpdGluZ0NvbW1hbmQoZW51bTp1
aW4KICAgICBDb21wbGV0ZVRleHRNYW5pcHVsYXRpb24oV2ViQ29yZTo6VGV4dE1hbmlwdWxhdGlv
bkNvbnRyb2xsZXI6Okl0ZW1JZGVudGlmaWVyIGl0ZW1JRCwgVmVjdG9yPFdlYkNvcmU6OlRleHRN
YW5pcHVsYXRpb25Db250cm9sbGVyOjpNYW5pcHVsYXRpb25Ub2tlbj4gdG9rZW5zKSAtPiAoZW51
bTp1aW50OF90IFdlYkNvcmU6OlRleHRNYW5pcHVsYXRpb25Db250cm9sbGVyOjpNYW5pcHVsYXRp
b25SZXN1bHQgcmVzdWx0KSBBc3luYwogICAgIAogICAgIFNldE92ZXJyaWRkZW5NZWRpYVR5cGUo
U3RyaW5nIG1lZGlhVHlwZSkKKyAgICAKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKSAmJiBFTkFC
TEUoREVWSUNFX09SSUVOVEFUSU9OKQorICAgIERldmljZU9yaWVudGF0aW9uQ2hhbmdlZChkb3Vi
bGUgYWxwaGEsIGRvdWJsZSBiZXRhLCBkb3VibGUgZ2FtbWEsIGRvdWJsZSBjb21wYXNzSGVhZGlu
ZywgZG91YmxlIGNvbXBhc3NBY2N1cmFjeSkKKyNlbmRpZgogfQpJbmRleDogU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW0KPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW0JKHJldmlzaW9u
IDI1Mjk2MSkKKysrIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdl
SU9TLm1tCSh3b3JraW5nIGNvcHkpCkBAIC00MDg4LDYgKzQwODgsMTQgQEAgdm9pZCBXZWJQYWdl
OjpyZXF1ZXN0UGFzc3dvcmRGb3JRdWlja0xvbwogCiAjZW5kaWYKIAorI2lmIEVOQUJMRShERVZJ
Q0VfT1JJRU5UQVRJT04pCit2b2lkIFdlYlBhZ2U6OmRldmljZU9yaWVudGF0aW9uQ2hhbmdlZChk
b3VibGUgYWxwaGEsIGRvdWJsZSBiZXRhLCBkb3VibGUgZ2FtbWEsIGRvdWJsZSBjb21wYXNzSGVh
ZGluZywgZG91YmxlIGNvbXBhc3NBY2N1cmFjeSkKK3sKKyAgICBpZiAoY29yZVBhZ2UoKSAmJiBj
b3JlUGFnZSgpLT5zaGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudCgpKQorICAgICAgICBjb3Jl
UGFnZSgpLT5zaGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudCgpLT5kZXZpY2VPcmllbnRhdGlv
bkNoYW5nZWQoYWxwaGEsIGJldGEsIGdhbW1hLCBjb21wYXNzSGVhZGluZywgY29tcGFzc0FjY3Vy
YWN5KTsKK30KKyNlbmRpZgorCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKIAogI3VuZGVmIFJFTEVB
U0VfTE9HX0lGX0FMTE9XRUQK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>384559</attachid>
            <date>2019-11-30 16:54:11 -0800</date>
            <delta_ts>2019-11-30 17:01:26 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-204720-20191130165410.patch</filename>
            <type>text/plain</type>
            <size>47864</size>
            <attacher name="Per Arne Vollan">pvollan</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDI1Mjk2MSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDUwIEBACisyMDE5LTExLTMwICBQZXIgQXJu
ZSBWb2xsYW4gIDxwdm9sbGFuQGFwcGxlLmNvbT4KKworICAgICAgICBbaU9TXSBDYWxscyB0byBk
ZXZpY2Ugb3JpZW50YXRpb24gQVBJIHNob3VsZCBiZSBkb25lIGluIHRoZSBVSSBwcm9jZXNzCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDQ3MjAKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGUgZGV2aWNl
IG9yaWVudGF0aW9uIEFQSSBvbiBpT1MgaXMgY29tbXVuaWNhdGluZyB3aXRoIGxvY2F0aW9uZC4g
U2luY2UgbWFjaCBsb29rdXAgdG8gdGhpcyBkYWVtb24KKyAgICAgICAgd2lsbCBiZSBjbG9zZWQs
IHRoZSBjYWxscyB0byB0aGlzIEFQSSBzaG91bGQgYmUgbW92ZWQgZnJvbSB0aGUgV2ViQ29udGVu
dCBwcm9jZXNzIHRvIHRoZSBVSSBwcm9jZXNzLgorICAgICAgICBUaGlzIHBhdGNoIGltcGxlbWVu
dHMgZm9yd2FyZGluZyBvZiB0aGUgZGV2aWNlIG9yaWVudGF0aW9uIHJlcXVlc3RzIHRvIHRoZSBV
SSBwcm9jZXNzIHRocm91Z2ggYSBuZXcKKyAgICAgICAgY2xhc3MsIFNoYXJlZERldmljZU9yaWVu
dGF0aW9uQ2xpZW50LCB3aGljaCBpcyBzdWJjbGFzc2VkIGJ5IFdlYlNoYXJlZERldmljZU9yaWVu
dGF0aW9uQ2xpZW50IGluCisgICAgICAgIG1vZGVybiBXZWJLaXQuIFRoaXMgY2xhc3MgaW1wbGVt
ZW50cyBmb3J3YXJkaW5nIG9mIHRoZSByZXF1ZXN0cyB0byB0aGUgVUkgcHJvY2VzcywgYW5kIHJl
Y2VpdmVzCisgICAgICAgIGRldmljZSBvcmllbnRhdGlvbiB1cGRhdGVzIGZyb20gdGhlIFVJIHBy
b2Nlc3MuIEFuIGluc3RhbmNlIG9mIHRoaXMgY2xhc3Mgd2lsbCBiZSBzaGFyZWQgYnkgYWxsCisg
ICAgICAgIGRldmljZSBvcmllbnRhdGlvbiBjbGllbnRzIG9uIGEgcGFnZSwgYW5kIHBhc3NlZCBh
cyBwYXJ0IG9mIHRoZSBwYWdlIGNvbmZpZ3VyYXRpb24gcGFyYW1ldGVycy4gT24KKyAgICAgICAg
dGhlIFVJIHByb2Nlc3Mgc2lkZSwgdGhlIFdlYiBwYWdlIHByb3h5IGlzIHRha2luZyBjYXJlIG9m
IGNhbGxpbmcgdGhlIGRldmljZSBvcmllbnRhdGlvbiBBUEkgdGhyb3VnaAorICAgICAgICB0aGUg
ZXhpc3RpbmcgV2ViQ29yZU1vdGlvbk1hbmFnZXIgT2JqZWN0aXZlLUMgY2xhc3MuCisKKyAgICAg
ICAgTm8gbmV3IHRlc3RzLCBjb3ZlcmVkIGJ5IGV4aXN0aW5nIHRlc3RzLgorCisgICAgICAgICog
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGRvbS9EZXZpY2VP
cmllbnRhdGlvbkNsaWVudC5oOgorICAgICAgICAoV2ViQ29yZTo6RGV2aWNlT3JpZW50YXRpb25D
bGllbnQ6OnNldFNoYXJlZERldmljZU9yaWVudGF0aW9uQ2xpZW50KToKKyAgICAgICAgKiBkb20v
RG9jdW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6bV91bmRvTWFuYWdlcik6CisgICAgICAg
ICogcGFnZS9QYWdlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Om1fc2hhcmVkRGV2aWNlT3JpZW50
YXRpb25DbGllbnQpOgorICAgICAgICAoV2ViQ29yZTo6bV9hcHBsaWNhdGlvbk1hbmlmZXN0KTog
RGVsZXRlZC4KKyAgICAgICAgKiBwYWdlL1BhZ2UuaDoKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2U6
OnNoYXJlZERldmljZU9yaWVudGF0aW9uQ2xpZW50IGNvbnN0KToKKyAgICAgICAgKiBwYWdlL1Bh
Z2VDb25maWd1cmF0aW9uLmg6CisgICAgICAgICogcGxhdGZvcm0vaW9zL0RldmljZU9yaWVudGF0
aW9uQ2xpZW50SU9TLmg6CisgICAgICAgICogcGxhdGZvcm0vaW9zL0RldmljZU9yaWVudGF0aW9u
Q2xpZW50SU9TLm1tOgorICAgICAgICAoV2ViQ29yZTo6RGV2aWNlT3JpZW50YXRpb25DbGllbnRJ
T1M6OnN0YXJ0VXBkYXRpbmcpOgorICAgICAgICAoV2ViQ29yZTo6RGV2aWNlT3JpZW50YXRpb25D
bGllbnRJT1M6OnN0b3BVcGRhdGluZyk6CisgICAgICAgIChXZWJDb3JlOjpEZXZpY2VPcmllbnRh
dGlvbkNsaWVudElPUzo6ZGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyRGVzdHJveWVkKToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9pb3MvU2hhcmVkRGV2aWNlT3JpZW50YXRpb25DbGllbnQuaDogQWRk
ZWQuCisgICAgICAgIChXZWJDb3JlOjpTaGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudDo6U2hh
cmVkRGV2aWNlT3JpZW50YXRpb25DbGllbnQpOgorICAgICAgICAoV2ViQ29yZTo6U2hhcmVkRGV2
aWNlT3JpZW50YXRpb25DbGllbnQ6On5TaGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudCk6Cisg
ICAgICAgIChXZWJDb3JlOjpTaGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudDo6c3RhcnRVcGRh
dGluZyk6CisgICAgICAgIChXZWJDb3JlOjpTaGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudDo6
c3RvcFVwZGF0aW5nKToKKyAgICAgICAgKFdlYkNvcmU6OlNoYXJlZERldmljZU9yaWVudGF0aW9u
Q2xpZW50OjpkZXZpY2VPcmllbnRhdGlvbkNoYW5nZWQpOgorICAgICAgICAqIHBsYXRmb3JtL2lv
cy9XZWJDb3JlTW90aW9uTWFuYWdlci5oOgorICAgICAgICAqIHBsYXRmb3JtL2lvcy9XZWJDb3Jl
TW90aW9uTWFuYWdlci5tbToKKyAgICAgICAgKC1bV2ViQ29yZU1vdGlvbk1hbmFnZXIgYWRkT3Jp
ZW50YXRpb25DbGllbnQ6XSk6CisgICAgICAgICgtW1dlYkNvcmVNb3Rpb25NYW5hZ2VyIHJlbW92
ZU9yaWVudGF0aW9uQ2xpZW50Ol0pOgorICAgICAgICAqIHBsYXRmb3JtL2lvcy9XZWJDb3JlTW90
aW9uTWFuYWdlckNsaWVudC5oOgorCiAyMDE5LTExLTMwICB5b3Vlbm4gZmFibGV0ICA8eW91ZW5u
QGFwcGxlLmNvbT4KIAogICAgICAgICBTaW1wbGlmeSBDb3JlQXVkaW9DYXB0dXJlU291cmNlIHN1
c3BlbnNpb24gbG9naWMKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvago9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oJKHJldmlzaW9uIDI1Mjk2MSkKKysrIFNvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkod29ya2luZyBjb3B5KQpAQCAtOTA3
LDcgKzkwNyw3IEBACiAJCTMxMzU5MTBBMUU3RERDNzMwMEYzMDYzMCAvKiBSVENTZHBUeXBlLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzMTM1OTEwNDFF
N0REQzYwMDBGMzA2MzAgLyogUlRDU2RwVHlwZS5oICovOyB9OwogCQkzMTM1OTEwQjFFN0REQzcz
MDBGMzA2MzAgLyogUlRDU2lnbmFsaW5nU3RhdGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMxMzU5MTA1MUU3RERDNjAwMEYzMDYzMCAvKiBSVENTaWdu
YWxpbmdTdGF0ZS5oICovOyB9OwogCQkzMTNCQ0UxQzIzNUUzQkU1MDBGQzM5RTUgLyogRWxlbWVu
dENvbnRleHQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDMxM0JDRTFCMjM1RTNCREIwMEZDMzlFNSAvKiBFbGVtZW50Q29udGV4dC5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07Ci0JCTMxNDAzNzlCMTI0QkVBN0Yw
MEFGNDBFNCAvKiBXZWJDb3JlTW90aW9uTWFuYWdlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzE0MDM3OTcxMjRCRUE3RjAwQUY0MEU0IC8qIFdlYkNv
cmVNb3Rpb25NYW5hZ2VyLmggKi87IH07CisJCTMxNDAzNzlCMTI0QkVBN0YwMEFGNDBFNCAvKiBX
ZWJDb3JlTW90aW9uTWFuYWdlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gMzE0MDM3OTcxMjRCRUE3RjAwQUY0MEU0IC8qIFdlYkNvcmVNb3Rpb25NYW5h
Z2VyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJ
MzE0MDM3OUQxMjRCRUE3RjAwQUY0MEU0IC8qIERldmljZU9yaWVudGF0aW9uQ2xpZW50SU9TLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzMTQwMzc5OTEy
NEJFQTdGMDBBRjQwRTQgLyogRGV2aWNlT3JpZW50YXRpb25DbGllbnRJT1MuaCAqLzsgfTsKIAkJ
MzE0MEM1MjAxRkRGMTUxQTAwRDJBODczIC8qIE9mZnNjcmVlbkNhbnZhc1JlbmRlcmluZ0NvbnRl
eHQyRC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzE0
MEM1MUUxRkRGMTUxQTAwRDJBODczIC8qIE9mZnNjcmVlbkNhbnZhc1JlbmRlcmluZ0NvbnRleHQy
RC5oICovOyB9OwogCQkzMTQwQzUyNDFGREYzMTg3MDBEMkE4NzMgLyogQ2FudmFzUmVuZGVyaW5n
Q29udGV4dDJEQmFzZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMzE0MEM1MjIxRkRGMzE4NjAwRDJBODczIC8qIENhbnZhc1JlbmRlcmluZ0NvbnRleHQy
REJhc2UuaCAqLzsgfTsKQEAgLTQ3NzYsNiArNDc3Niw4IEBACiAJCUUzNTgwMkI2MURDODQzNUQw
MEE5NzczQyAvKiBET01KSVRJRExUeXBlRmlsdGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMzU4MDJCNTFEQzg0MzU4MDBBOTc3M0MgLyogRE9NSklU
SURMVHlwZUZpbHRlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CiAJCUUzNzdGRTREMURBREUxNjUwMENERDAyNSAvKiBOb2RlQ29uc3RhbnRzLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFM0QwNDk5MzFEQURD
MDQ1MDA3MThGM0MgLyogTm9kZUNvbnN0YW50cy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07CiAJCUUzN0M4NjUwMUVCNjNFM0YwMDg3QzZDQSAvKiBKU0RP
TVByb21pc2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEUzN0M4NjRGMUVCNjNFMkQwMDg3QzZDQSAvKiBKU0RPTVByb21pc2UuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQlFMzk2MjhBNDIzODg5MzVCMDA2
NThFQ0QgLyogU2hhcmVkRGV2aWNlT3JpZW50YXRpb25DbGllbnQuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUzOTYyOEEzMjM4ODkzNUIwMDY1OEVDRCAv
KiBTaGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJV
VEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCUUzOTYyOEFDMjM5MUM4MTcwMDY1OEVDRCAvKiBX
ZWJDb3JlTW90aW9uTWFuYWdlckNsaWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gRTM5NjI4QUIyMzkxQzRGMzAwNjU4RUNEIC8qIFdlYkNvcmVNb3Rp
b25NYW5hZ2VyQ2xpZW50LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKIAkJRTNBNzc2NjcxREM4NUQyODAwQjY5MEQ4IC8qIERPTUpJVElETENvbnZlcnQu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUzQTc3NjY1
MURDODVEMjIwMEI2OTBEOCAvKiBET01KSVRJRExDb252ZXJ0LmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJRTNBNzc2NjgxREM4NUQyODAwQjY5MEQ4
IC8qIERPTUpJVElETFR5cGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEUzQTc3NjY2MURDODVEMjIwMEI2OTBEOCAvKiBET01KSVRJRExUeXBlLmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJRTNCMkYwRUQx
RDdGNENBMzAwQjBDOUQxIC8qIExvYWRhYmxlU2NyaXB0LmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFM0IyRjBFNzFEN0YzNUVDMDBCMEM5RDEgLyogTG9h
ZGFibGVTY3JpcHQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OwpAQCAtMTUwNjUsNiArMTUwNjcsOCBAQAogCQlFMzg4Mzg5NDFCQUQxNDVGMDBENjJFRTMg
LyogU2NyaXB0TW9kdWxlTG9hZGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IFNjcmlwdE1vZHVsZUxvYWRlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCUUzODgzODk1MUJBRDE0NUYwMEQ2MkVFMyAvKiBTY3JpcHRNb2R1bGVMb2FkZXIuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU2NyaXB0TW9kdWxlTG9hZGVyLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUzOEQwNjA5MUY4RTgxMTkwMDY0OUNGMiAvKiBNb2R1
bGVGZXRjaFBhcmFtZXRlcnMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTW9k
dWxlRmV0Y2hQYXJhbWV0ZXJzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUUzOTYy
OEEzMjM4ODkzNUIwMDY1OEVDRCAvKiBTaGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudC5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBTaGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudC5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQlFMzk2MjhBQjIzOTFDNEYzMDA2NThFQ0QgLyogV2ViQ29yZU1v
dGlvbk1hbmFnZXJDbGllbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViQ29yZU1vdGlvbk1hbmFnZXJD
bGllbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTM5NzVCNzYxRUM5QUYzOTAw
ODQ3NzE3IC8qIEpTRG9jdW1lbnRGcmFnbWVudERPTUpJVC5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBKU0RvY3VtZW50RnJhZ21lbnRET01KSVQuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQlFMzk3NUI3NzFFQzlBRjM5MDA4NDc3MTcgLyogSlNFbGVt
ZW50RE9NSklULmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTRWxl
bWVudERPTUpJVC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUzOTc1Qjc4MUVD
OUFGMzkwMDg0NzcxNyAvKiBKU0V2ZW50RE9NSklULmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IEpTRXZlbnRET01KSVQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwpAQCAtMTY2NDIsOCArMTY2NDYsOCBAQAogCQkJCTExNUNBODMwMjMzMjhCMUUwMEZEM0Iw
OCAvKiBMYXlvdXRVbml0cy5jcHAgKi8sCiAJCQkJNkY3MzkxOEMyMTA2Q0VERDAwNkFGMjYyIC8q
IExheW91dFVuaXRzLmggKi8sCiAJCQkJNkZFN0FBMjYyMUMzN0I2MzAwMjk2RENEIC8qIE1hcmdp
blR5cGVzLmggKi8sCi0JCQkJRTRBQkFCREIyMzYwODhGRDAwRkE0MzQ1IC8qIFJlbmRlckJsb2Nr
Rmxvd0xpbmVMYXlvdXQuaCAqLywKIAkJCQlFNEFCQUJERTIzNjA4OTNEMDBGQTQzNDUgLyogUmVu
ZGVyQmxvY2tGbG93TGluZUxheW91dC5jcHAgKi8sCisJCQkJRTRBQkFCREIyMzYwODhGRDAwRkE0
MzQ1IC8qIFJlbmRlckJsb2NrRmxvd0xpbmVMYXlvdXQuaCAqLywKIAkJCQkxMUZGMDJENTIwQkEz
QzgxMDA4M0YyNUIgLyogVmVyaWZpY2F0aW9uLmNwcCAqLywKIAkJCSk7CiAJCQlwYXRoID0gbGF5
b3V0OwpAQCAtMjI4MTAsNiArMjI4MTQsNyBAQAogCQkJCUU0NTM5MDM0MEVBRkQ2MzcwMDM2OTVD
OCAvKiBTY3JvbGxWaWV3SU9TLm1tICovLAogCQkJCUJFQTgwN0M2MEY3MTRBMDMwMDUyNDE5OSAv
KiBTZWxlY3Rpb25SZWN0LmNwcCAqLywKIAkJCQlCRUE4MDdDNzBGNzE0QTAzMDA1MjQxOTkgLyog
U2VsZWN0aW9uUmVjdC5oICovLAorCQkJCUUzOTYyOEEzMjM4ODkzNUIwMDY1OEVDRCAvKiBTaGFy
ZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudC5oICovLAogCQkJCTBGMDNDMDczMTg4NDY5NUUwMEE1
RjhDQSAvKiBTeXN0ZW1NZW1vcnkuaCAqLywKIAkJCQlFNDUzOTBBRDBFQUZGNEI1MDAzNjk1Qzgg
LyogU3lzdGVtTWVtb3J5SU9TLmNwcCAqLywKIAkJCQk0NEM5OTE5RDBGM0QyMTBFMDA1ODY2NzAg
LyogVGhlbWVJT1MuaCAqLywKQEAgLTIyODI2LDYgKzIyODMxLDcgQEAKIAkJCQkxRjM2RUE5QjFF
MjFCQTE3MDA2MjFFMjUgLyogV2ViQmFja2dyb3VuZFRhc2tDb250cm9sbGVyLm1tICovLAogCQkJ
CTMxNDAzNzk3MTI0QkVBN0YwMEFGNDBFNCAvKiBXZWJDb3JlTW90aW9uTWFuYWdlci5oICovLAog
CQkJCTMxNDAzNzk4MTI0QkVBN0YwMEFGNDBFNCAvKiBXZWJDb3JlTW90aW9uTWFuYWdlci5tbSAq
LywKKwkJCQlFMzk2MjhBQjIzOTFDNEYzMDA2NThFQ0QgLyogV2ViQ29yZU1vdGlvbk1hbmFnZXJD
bGllbnQuaCAqLywKIAkJCQlGRTBEODRFODEwNDg0MzQ4MDAxQTE3OUUgLyogV2ViRXZlbnQuaCAq
LywKIAkJCQlGRTBEODRFQTEwNDg0MzZFMDAxQTE3OUUgLyogV2ViRXZlbnQubW0gKi8sCiAJCQkJ
RjQ4MjIzMEYxRTM4NjlCODAwNjZGQzc5IC8qIFdlYkl0ZW1Qcm92aWRlclBhc3RlYm9hcmQuaCAq
LywKQEAgLTI4NzI5LDggKzI4NzM1LDggQEAKIAkJCQlGRkVGQUIyOTE4MzgwREEwMDA1MTQ1MzQg
LyogTGluZUxheW91dFN0YXRlLmggKi8sCiAJCQkJRTQ4NEEzM0QyMzA1NTMwMzAwOUFERTZBIC8q
IExpbmVMYXlvdXRUcmF2ZXJzYWwuY3BwICovLAogCQkJCUU0ODRBMzNCMjMwNTUzMDMwMDlBREU2
QSAvKiBMaW5lTGF5b3V0VHJhdmVyc2FsLmggKi8sCi0JCQkJRTQzNDNEMjEyMzkyNzc4MzAwRUJC
QjY2IC8qIExpbmVMYXlvdXRUcmF2ZXJzYWxTaW1wbGVQYXRoLmggKi8sCiAJCQkJRTQzNDNEMjQy
MzkyNzc4RjAwRUJCQjY2IC8qIExpbmVMYXlvdXRUcmF2ZXJzYWxDb21wbGV4UGF0aC5oICovLAor
CQkJCUU0MzQzRDIxMjM5Mjc3ODMwMEVCQkI2NiAvKiBMaW5lTGF5b3V0VHJhdmVyc2FsU2ltcGxl
UGF0aC5oICovLAogCQkJCUZGREJDMDQ2MTgzRDI3QjcwMDQwNzEwOSAvKiBMaW5lV2lkdGguY3Bw
ICovLAogCQkJCUZGREJDMDQ1MTgzRDI3QjcwMDQwNzEwOSAvKiBMaW5lV2lkdGguaCAqLywKIAkJ
CQlGRkFDMzBGRDE4NEZCMTQ1MDA4QzRGMUUgLyogVHJhaWxpbmdPYmplY3RzLmNwcCAqLywKQEAg
LTMwNTQxLDcgKzMwNTQ3LDYgQEAKIAkJCQk4MzcwNTY5MDFGNTA5MTVDMDBEOTM0MjUgLyogSlNG
aWxlU3lzdGVtRW50cnlDYWxsYmFjay5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODMzQjlFMzYxRjUw
OEQ4NTAwRTBFNDI4IC8qIEpTRmlsZVN5c3RlbUZpbGVFbnRyeS5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJNzEyQkU0ODgxRkU4Njg2QTAwMjAzMUNDIC8qIEpTRmlsbE1vZGUuaCBpbiBIZWFkZXJzICov
LAotCQkJCUU0MzQzRDI1MjM5Mjc3OTAwMEVCQkI2NiAvKiBMaW5lTGF5b3V0VHJhdmVyc2FsQ29t
cGxleFBhdGguaCBpbiBIZWFkZXJzICovLAogCQkJCUI2RDlEMjdCMTRFQUMwODYwMDkwRDc1RSAv
KiBKU0ZvY3VzRXZlbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUMyODA4MzNGMUM2REMyNkYwMDE0
NTFCNiAvKiBKU0ZvbnRGYWNlLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQzI0RUVBOTFDNzJBN0I0
MDA4MEY4RkMgLyogSlNGb250RmFjZVNldC5oIGluIEhlYWRlcnMgKi8sCkBAIC0zMTE5Niw2ICsz
MTIwMSw4IEBACiAJCQkJNkYyNkVCNDgyMzQwMDRBNTAwNjkwNkUyIC8qIExpbmVMYXlvdXRDb250
ZXh0LmggaW4gSGVhZGVycyAqLywKIAkJCQlGRkVGQUIyQTE4MzgwREEwMDA1MTQ1MzQgLyogTGlu
ZUxheW91dFN0YXRlLmggaW4gSGVhZGVycyAqLywKIAkJCQlFNDg0QTMzRTIzMDU1MzI1MDA5QURF
NkEgLyogTGluZUxheW91dFRyYXZlcnNhbC5oIGluIEhlYWRlcnMgKi8sCisJCQkJRTQzNDNEMjUy
MzkyNzc5MDAwRUJCQjY2IC8qIExpbmVMYXlvdXRUcmF2ZXJzYWxDb21wbGV4UGF0aC5oIGluIEhl
YWRlcnMgKi8sCisJCQkJRTQzNDNEMjMyMzkyNzc4NDAwRUJCQjY2IC8qIExpbmVMYXlvdXRUcmF2
ZXJzYWxTaW1wbGVQYXRoLmggaW4gSGVhZGVycyAqLywKIAkJCQlGRkRCQzA0NzE4M0QyN0I3MDA0
MDcxMDkgLyogTGluZVdpZHRoLmggaW4gSGVhZGVycyAqLywKIAkJCQlDQkE5REMwQjFERjQ0REY0
MDAwNTY3NUMgLyogTGlua0hlYWRlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTE0M0IyNjMxRERE
MTUyMDAwMTRGQUM2IC8qIExpbmtJY29uLmggaW4gSGVhZGVycyAqLywKQEAgLTMxNjg5LDcgKzMx
Njk2LDYgQEAKIAkJCQk1N0RDRUQ3NDIxNDMwNUYwMDAxNkI4NDcgLyogUHVibGljS2V5Q3JlZGVu
dGlhbERhdGEuaCBpbiBIZWFkZXJzICovLAogCQkJCTU3MzAzQkVGMjAwOTgwQzYwMDM1NTk2NSAv
KiBQdWJsaWNLZXlDcmVkZW50aWFsRGVzY3JpcHRvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTcz
MDNDMEEyMDA5OUJBRDAwMzU1OTY1IC8qIFB1YmxpY0tleUNyZWRlbnRpYWxSZXF1ZXN0T3B0aW9u
cy5oIGluIEhlYWRlcnMgKi8sCi0JCQkJRTQzNDNEMjMyMzkyNzc4NDAwRUJCQjY2IC8qIExpbmVM
YXlvdXRUcmF2ZXJzYWxTaW1wbGVQYXRoLmggaW4gSGVhZGVycyAqLywKIAkJCQk1NzMwM0JFQjIw
MDk3RjQwMDAzNTU5NjUgLyogUHVibGljS2V5Q3JlZGVudGlhbFR5cGUuaCBpbiBIZWFkZXJzICov
LAogCQkJCTAwODFGRjAwMTZCMEEyRDMwMDhBQUE3QSAvKiBQdWJsaWNTdWZmaXguaCBpbiBIZWFk
ZXJzICovLAogCQkJCTEwRkIwODRCMTRFMTVDN0UwMEEzREI5OCAvKiBQdWJsaWNVUkxNYW5hZ2Vy
LmggaW4gSGVhZGVycyAqLywKQEAgLTMxNzU1LDYgKzMxNzYxLDcgQEAKIAkJCQk3Q0Q0OTRDRDFB
ODZFQjFEMDAwQTg3RUMgLyogUmVuZGVyQXR0YWNobWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
QkNFQTQ4NjAwOTdEOTMwMjAwOTRDOUU0IC8qIFJlbmRlckJsb2NrLmggaW4gSGVhZGVycyAqLywK
IAkJCQlCQzEwRDc2ODE3RDhFRTcxMDA1RTI2MjYgLyogUmVuZGVyQmxvY2tGbG93LmggaW4gSGVh
ZGVycyAqLywKKwkJCQlFNEFCQUJERDIzNjA4OEZFMDBGQTQzNDUgLyogUmVuZGVyQmxvY2tGbG93
TGluZUxheW91dC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkNFQTQ4NjIwOTdEOTMwMjAwOTRDOUU0
IC8qIFJlbmRlckJveC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkNFQjE3OUMxNDMzNzlGNTAwNTJF
QUU5IC8qIFJlbmRlckJveEZyYWdtZW50SW5mby5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkM5NkRC
NDMwRjNBODgwRTAwNTczQ0IzIC8qIFJlbmRlckJveE1vZGVsT2JqZWN0LmggaW4gSGVhZGVycyAq
LywKQEAgLTMyMTQzLDYgKzMyMTUwLDcgQEAKIAkJCQlGRDFBRjE1MDE2NTZGMTUxMDBDNkQ0Rjcg
LyogU2hhcGVWYWx1ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUQ5RjBGQzEyMTIyMDI5QjAwNUQ4
RkQ0IC8qIFNoYXJlRGF0YS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUE0QTk1NEUwQjRFRENDQjAw
MkQ4QzNDIC8qIFNoYXJlZEJ1ZmZlci5oIGluIEhlYWRlcnMgKi8sCisJCQkJRTM5NjI4QTQyMzg4
OTM1QjAwNjU4RUNEIC8qIFNoYXJlZERldmljZU9yaWVudGF0aW9uQ2xpZW50LmggaW4gSGVhZGVy
cyAqLywKIAkJCQk4MzRERkFEMDFGN0RBRTVEMDBDMjcyNUIgLyogU2hhcmVkU3RyaW5nSGFzaC5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJOTMzMDlFQTMwOTlFQjc4QzAwNTZFNTgxIC8qIFNoYXJlZFRp
bWVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk4MzYyRThDMTIwQ0VGOUNCMDAyNDU4ODYgLyogU2hv
dWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkLmggaW4gSGVhZGVycyAqLywKQEAgLTMyNDcwLDcgKzMy
NDc4LDYgQEAKIAkJCQkwODhDMkY3QTEyMzkwMDgxMDAzRDY1Q0UgLyogU1ZHVGV4dExheW91dEF0
dHJpYnV0ZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTA4MTA5M0RDMTI1NUYwRTcwMEVEOUQyOSAv
KiBTVkdUZXh0TGF5b3V0QXR0cmlidXRlc0J1aWxkZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTA4
MTY2OERBMTI1NjAzRDUwMDZGMjVERSAvKiBTVkdUZXh0TGF5b3V0RW5naW5lLmggaW4gSGVhZGVy
cyAqLywKLQkJCQlFNEFCQUJERDIzNjA4OEZFMDBGQTQzNDUgLyogUmVuZGVyQmxvY2tGbG93TGlu
ZUxheW91dC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMDgwRTQ5MjYxMjU1RjNCRDAwRUZDQTI3IC8q
IFNWR1RleHRMYXlvdXRFbmdpbmVCYXNlbGluZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMDgwRTQ5
MjgxMjU1RjNCRDAwRUZDQTI3IC8qIFNWR1RleHRMYXlvdXRFbmdpbmVTcGFjaW5nLmggaW4gSGVh
ZGVycyAqLywKIAkJCQkwOEYwQkZDNjEyNTVDNTNDMDAwNzUxODUgLyogU1ZHVGV4dE1ldHJpY3Mu
aCBpbiBIZWFkZXJzICovLApAQCAtMzI3NjQsNiArMzI3NzEsNyBAQAogCQkJCUJDNTNEOTExMTE0
MzEwQ0MwMDBEODE3RSAvKiBXZWJDb3JlSlNDbGllbnREYXRhLmggaW4gSGVhZGVycyAqLywKIAkJ
CQk5M0YxOTlCQjA4MjQ1RTU5MDAxRTlBQkMgLyogV2ViQ29yZUtleWJvYXJkVUlNb2RlLmggaW4g
SGVhZGVycyAqLywKIAkJCQkzMTQwMzc5QjEyNEJFQTdGMDBBRjQwRTQgLyogV2ViQ29yZU1vdGlv
bk1hbmFnZXIuaCBpbiBIZWFkZXJzICovLAorCQkJCUUzOTYyOEFDMjM5MUM4MTcwMDY1OEVDRCAv
KiBXZWJDb3JlTW90aW9uTWFuYWdlckNsaWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQ0RDOTc5
RjUxQzQ5OEMwOTAwREI1MEQ0IC8qIFdlYkNvcmVOU0Vycm9yRXh0cmFzLmggaW4gSGVhZGVycyAq
LywKIAkJCQlGNEU1N0VFMTIxM0Y0MzRBMDA0RUE5OEUgLyogV2ViQ29yZU5TRm9udE1hbmFnZXJF
eHRyYXMuaCBpbiBIZWFkZXJzICovLAogCQkJCUM1QjRDMjREMTUwOTIzNkMwMEE2RUYzNyAvKiBX
ZWJDb3JlTlNVUkxFeHRyYXMuaCBpbiBIZWFkZXJzICovLApJbmRleDogU291cmNlL1dlYkNvcmUv
ZG9tL0RldmljZU9yaWVudGF0aW9uQ2xpZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvZG9tL0RldmljZU9yaWVudGF0aW9uQ2xpZW50LmgJKHJldmlzaW9uIDI1Mjk2MSkKKysrIFNv
dXJjZS9XZWJDb3JlL2RvbS9EZXZpY2VPcmllbnRhdGlvbkNsaWVudC5oCSh3b3JraW5nIGNvcHkp
CkBAIC0yOCwxMiArMjgsMTQgQEAKIAogI2luY2x1ZGUgIkRldmljZUNsaWVudC5oIgogI2luY2x1
ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgorI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KIAogbmFtZXNw
YWNlIFdlYkNvcmUgewogCiBjbGFzcyBEZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXI7CiBjbGFz
cyBEZXZpY2VPcmllbnRhdGlvbkRhdGE7CiBjbGFzcyBQYWdlOworY2xhc3MgU2hhcmVkRGV2aWNl
T3JpZW50YXRpb25DbGllbnQ7CiAKIGNsYXNzIERldmljZU9yaWVudGF0aW9uQ2xpZW50IDogcHVi
bGljIERldmljZUNsaWVudCB7CiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoRGV2aWNlT3JpZW50
YXRpb25DbGllbnQpOwpAQCAtNDMsNiArNDUsOCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lk
IHNldENvbnRyb2xsZXIoRGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyKikgPSAwOwogICAgIHZp
cnR1YWwgRGV2aWNlT3JpZW50YXRpb25EYXRhKiBsYXN0T3JpZW50YXRpb24oKSBjb25zdCA9IDA7
CiAgICAgdmlydHVhbCB2b2lkIGRldmljZU9yaWVudGF0aW9uQ29udHJvbGxlckRlc3Ryb3llZCgp
ID0gMDsKKyAgICAKKyAgICB2aXJ0dWFsIHZvaWQgc2V0U2hhcmVkRGV2aWNlT3JpZW50YXRpb25D
bGllbnQoUmVmUHRyPFNoYXJlZERldmljZU9yaWVudGF0aW9uQ2xpZW50PikgeyB9OwogfTsKIAog
V0VCQ09SRV9FWFBPUlQgdm9pZCBwcm92aWRlRGV2aWNlT3JpZW50YXRpb25UbyhQYWdlJiwgRGV2
aWNlT3JpZW50YXRpb25DbGllbnQmKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVu
dC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAkocmV2
aXNpb24gMjUyOTYxKQorKysgU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtNjA3LDkgKzYwNywxNSBAQCBEb2N1bWVudDo6RG9jdW1lbnQoRnJhbWUqIGZy
YW1lLCBjb25zdCBVCiAgICAgICAgIG5vZGVMaXN0QW5kQ29sbGVjdGlvbkNvdW50ID0gMDsKIAog
ICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6YWRkRXZlbnRMaXN0ZW5lcnNUb05vZGUoKnRo
aXMpOworICAgIAogI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCiAgICAgbV9zZXR0aW5ncy0+c2V0
TGVnYWN5R2V0VXNlck1lZGlhRW5hYmxlZChxdWlya3MoKS5zaG91bGRFbmFibGVMZWdhY3lHZXRV
c2VyTWVkaWEoKSk7CiAjZW5kaWYKKworI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpICYmIEVOQUJM
RShERVZJQ0VfT1JJRU5UQVRJT04pCisgICAgaWYgKHBhZ2UoKSAmJiBwYWdlKCktPnNoYXJlZERl
dmljZU9yaWVudGF0aW9uQ2xpZW50KCkpCisgICAgICAgIG1fZGV2aWNlT3JpZW50YXRpb25DbGll
bnQtPnNldFNoYXJlZERldmljZU9yaWVudGF0aW9uQ2xpZW50KHBhZ2UoKS0+c2hhcmVkRGV2aWNl
T3JpZW50YXRpb25DbGllbnQoKSk7CisjZW5kaWYKIH0KIAogUmVmPERvY3VtZW50PiBEb2N1bWVu
dDo6Y3JlYXRlKERvY3VtZW50JiBjb250ZXh0RG9jdW1lbnQpCkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9wYWdlL1BhZ2UuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5j
cHAJKHJldmlzaW9uIDI1Mjk2MSkKKysrIFNvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTI4OSw2ICsyODksOSBAQCBQYWdlOjpQYWdlKFBhZ2VDb25maWd1cmF0
aW9uJiYgcGFnZUNvbmZpCiAjaWYgRU5BQkxFKEFQUExJQ0FUSU9OX01BTklGRVNUKQogICAgICwg
bV9hcHBsaWNhdGlvbk1hbmlmZXN0KHBhZ2VDb25maWd1cmF0aW9uLmFwcGxpY2F0aW9uTWFuaWZl
c3QpCiAjZW5kaWYKKyNpZiBFTkFCTEUoREVWSUNFX09SSUVOVEFUSU9OKSAmJiBQTEFURk9STShJ
T1NfRkFNSUxZKQorICAgICwgbV9zaGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudChXVEZNb3Zl
KHBhZ2VDb25maWd1cmF0aW9uLnNoYXJlZERldmljZU9yaWVudGF0aW9uQ2xpZW50KSkKKyNlbmRp
ZgogewogICAgIHVwZGF0ZVRpbWVyVGhyb3R0bGluZ1N0YXRlKCk7CiAKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL3BhZ2UvUGFnZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BhZ2UvUGFn
ZS5oCShyZXZpc2lvbiAyNTI5NjEpCisrKyBTb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuaAkod29y
a2luZyBjb3B5KQpAQCAtNjksNiArNjksMTAgQEAKICNpbmNsdWRlICJNZWRpYVBsYXliYWNrVGFy
Z2V0Q29udGV4dC5oIgogI2VuZGlmCiAKKyNpZiBFTkFCTEUoREVWSUNFX09SSUVOVEFUSU9OKSAm
JiBQTEFURk9STShJT1NfRkFNSUxZKQorI2luY2x1ZGUgIlNoYXJlZERldmljZU9yaWVudGF0aW9u
Q2xpZW50LmgiCisjZW5kaWYKKwogbmFtZXNwYWNlIEpTQyB7CiBjbGFzcyBEZWJ1Z2dlcjsKIH0K
QEAgLTcxOSw2ICs3MjMsMTAgQEAgcHVibGljOgogCiAgICAgV0VCQ09SRV9FWFBPUlQgVmVjdG9y
PFJlZjxFbGVtZW50Pj4gZWRpdGFibGVFbGVtZW50c0luUmVjdChjb25zdCBGbG9hdFJlY3QmKSBj
b25zdDsKIAorI2lmIEVOQUJMRShERVZJQ0VfT1JJRU5UQVRJT04pICYmIFBMQVRGT1JNKElPU19G
QU1JTFkpCisgICAgUmVmUHRyPFNoYXJlZERldmljZU9yaWVudGF0aW9uQ2xpZW50PiBzaGFyZWRE
ZXZpY2VPcmllbnRhdGlvbkNsaWVudCgpIGNvbnN0IHsgcmV0dXJuIG1fc2hhcmVkRGV2aWNlT3Jp
ZW50YXRpb25DbGllbnQ7IH0KKyNlbmRpZgorCiBwcml2YXRlOgogICAgIHN0cnVjdCBOYXZpZ2F0
aW9uIHsKICAgICAgICAgUmVnaXN0cmFibGVEb21haW4gZG9tYWluOwpAQCAtOTkwLDYgKzk5OCwx
MCBAQCBwcml2YXRlOgogCiAgICAgT3B0aW9uYWw8Vmlld3BvcnRBcmd1bWVudHM+IG1fb3ZlcnJp
ZGVWaWV3cG9ydEFyZ3VtZW50czsKIAorI2lmIEVOQUJMRShERVZJQ0VfT1JJRU5UQVRJT04pICYm
IFBMQVRGT1JNKElPU19GQU1JTFkpCisgICAgUmVmUHRyPFNoYXJlZERldmljZU9yaWVudGF0aW9u
Q2xpZW50PiBtX3NoYXJlZERldmljZU9yaWVudGF0aW9uQ2xpZW50OworI2VuZGlmCisKICAgICBi
b29sIG1fc2hvdWxkRW5hYmxlSUNFQ2FuZGlkYXRlRmlsdGVyaW5nQnlEZWZhdWx0IHsgdHJ1ZSB9
OwogICAgIGJvb2wgbV9tZWRpYVBsYXliYWNrSXNTdXNwZW5kZWQgeyBmYWxzZSB9OwogICAgIGJv
b2wgbV9tZWRpYUJ1ZmZlcmluZ0lzU3VzcGVuZGVkIHsgZmFsc2UgfTsKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL3BhZ2UvUGFnZUNvbmZpZ3VyYXRpb24uaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9wYWdlL1BhZ2VDb25maWd1cmF0aW9uLmgJKHJldmlzaW9uIDI1Mjk2MSkKKysrIFNvdXJj
ZS9XZWJDb3JlL3BhZ2UvUGFnZUNvbmZpZ3VyYXRpb24uaAkod29ya2luZyBjb3B5KQpAQCAtNTcs
NiArNTcsNyBAQCBjbGFzcyBQZXJmb3JtYW5jZUxvZ2dpbmdDbGllbnQ7CiBjbGFzcyBQbHVnSW5D
bGllbnQ7CiBjbGFzcyBQbHVnaW5JbmZvUHJvdmlkZXI7CiBjbGFzcyBQcm9ncmVzc1RyYWNrZXJD
bGllbnQ7CitjbGFzcyBTaGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudDsKIGNsYXNzIFNvY2tl
dFByb3ZpZGVyOwogY2xhc3MgU3RvcmFnZU5hbWVzcGFjZVByb3ZpZGVyOwogY2xhc3MgVXNlckNv
bnRlbnRQcm92aWRlcjsKQEAgLTExOCw2ICsxMTksMTAgQEAgcHVibGljOgogICAgIFJlZlB0cjxT
dG9yYWdlTmFtZXNwYWNlUHJvdmlkZXI+IHN0b3JhZ2VOYW1lc3BhY2VQcm92aWRlcjsKICAgICBS
ZWZQdHI8VXNlckNvbnRlbnRQcm92aWRlcj4gdXNlckNvbnRlbnRQcm92aWRlcjsKICAgICBSZWZQ
dHI8VmlzaXRlZExpbmtTdG9yZT4gdmlzaXRlZExpbmtTdG9yZTsKKyAgICAKKyNpZiBFTkFCTEUo
REVWSUNFX09SSUVOVEFUSU9OKSAmJiBQTEFURk9STShJT1NfRkFNSUxZKQorICAgIFJlZlB0cjxT
aGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudD4gc2hhcmVkRGV2aWNlT3JpZW50YXRpb25DbGll
bnQ7CisjZW5kaWYKIH07CiAKIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9E
ZXZpY2VPcmllbnRhdGlvbkNsaWVudElPUy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2lvcy9EZXZpY2VPcmllbnRhdGlvbkNsaWVudElPUy5oCShyZXZpc2lvbiAyNTI5
NjEpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvRGV2aWNlT3JpZW50YXRpb25DbGll
bnRJT1MuaAkod29ya2luZyBjb3B5KQpAQCAtMzAsMTMgKzMwLDE1IEBACiAjaW5jbHVkZSAiRGV2
aWNlT3JpZW50YXRpb25DbGllbnQuaCIKICNpbmNsdWRlICJEZXZpY2VPcmllbnRhdGlvbkNvbnRy
b2xsZXIuaCIKICNpbmNsdWRlICJEZXZpY2VPcmllbnRhdGlvbkRhdGEuaCIKKyNpbmNsdWRlICJT
aGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudC5oIgorI2luY2x1ZGUgIldlYkNvcmVNb3Rpb25N
YW5hZ2VyQ2xpZW50LmgiCiAjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgogCiBPQkpDX0NMQVNTIFdl
YkNvcmVNb3Rpb25NYW5hZ2VyOwogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWNsYXNzIERldmlj
ZU9yaWVudGF0aW9uQ2xpZW50SU9TIDogcHVibGljIERldmljZU9yaWVudGF0aW9uQ2xpZW50IHsK
K2NsYXNzIERldmljZU9yaWVudGF0aW9uQ2xpZW50SU9TIDogcHVibGljIERldmljZU9yaWVudGF0
aW9uQ2xpZW50LCBwdWJsaWMgV2ViQ29yZU1vdGlvbk1hbmFnZXJDbGllbnQgewogcHVibGljOgog
ICAgIERldmljZU9yaWVudGF0aW9uQ2xpZW50SU9TKCk7CiAgICAgfkRldmljZU9yaWVudGF0aW9u
Q2xpZW50SU9TKCkgb3ZlcnJpZGU7CkBAIC00NiwxMiArNDgsMTUgQEAgcHVibGljOgogICAgIERl
dmljZU9yaWVudGF0aW9uRGF0YSogbGFzdE9yaWVudGF0aW9uKCkgY29uc3Qgb3ZlcnJpZGU7CiAg
ICAgdm9pZCBkZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXJEZXN0cm95ZWQoKSBvdmVycmlkZTsK
IAotICAgIHZvaWQgb3JpZW50YXRpb25DaGFuZ2VkKGRvdWJsZSwgZG91YmxlLCBkb3VibGUsIGRv
dWJsZSwgZG91YmxlKTsKKyAgICB2b2lkIG9yaWVudGF0aW9uQ2hhbmdlZChkb3VibGUsIGRvdWJs
ZSwgZG91YmxlLCBkb3VibGUsIGRvdWJsZSkgb3ZlcnJpZGU7CiAKKyAgICB2b2lkIHNldFNoYXJl
ZERldmljZU9yaWVudGF0aW9uQ2xpZW50KFJlZlB0cjxTaGFyZWREZXZpY2VPcmllbnRhdGlvbkNs
aWVudD4gc2hhcmVkRGV2aWNlT3JpZW50YXRpb25DbGllbnQpIG92ZXJyaWRlIHsgbV9zaGFyZWRE
ZXZpY2VPcmllbnRhdGlvbkNsaWVudCA9IHNoYXJlZERldmljZU9yaWVudGF0aW9uQ2xpZW50OyB9
CisgICAgCiBwcml2YXRlOgogICAgIFdlYkNvcmVNb3Rpb25NYW5hZ2VyKiBtX21vdGlvbk1hbmFn
ZXI7CiAgICAgRGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyKiBtX2NvbnRyb2xsZXI7CiAgICAg
UmVmUHRyPERldmljZU9yaWVudGF0aW9uRGF0YT4gbV9jdXJyZW50RGV2aWNlT3JpZW50YXRpb247
CisgICAgUmVmUHRyPFNoYXJlZERldmljZU9yaWVudGF0aW9uQ2xpZW50PiBtX3NoYXJlZERldmlj
ZU9yaWVudGF0aW9uQ2xpZW50OwogICAgIGJvb2wgbV91cGRhdGluZzsKIH07CiAKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9EZXZpY2VPcmllbnRhdGlvbkNsaWVudElPUy5tbQo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvRGV2aWNlT3JpZW50YXRp
b25DbGllbnRJT1MubW0JKHJldmlzaW9uIDI1Mjk2MSkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2lvcy9EZXZpY2VPcmllbnRhdGlvbkNsaWVudElPUy5tbQkod29ya2luZyBjb3B5KQpAQCAt
NTMsNiArNTMsMTEgQEAgdm9pZCBEZXZpY2VPcmllbnRhdGlvbkNsaWVudElPUzo6c3RhcnRVcAog
ewogICAgIG1fdXBkYXRpbmcgPSB0cnVlOwogCisgICAgaWYgKG1fc2hhcmVkRGV2aWNlT3JpZW50
YXRpb25DbGllbnQpIHsKKyAgICAgICAgbV9zaGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudC0+
c3RhcnRVcGRhdGluZygqdGhpcyk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKICAgICBpZiAo
IW1fbW90aW9uTWFuYWdlcikKICAgICAgICAgbV9tb3Rpb25NYW5hZ2VyID0gW1dlYkNvcmVNb3Rp
b25NYW5hZ2VyIHNoYXJlZE1hbmFnZXJdOwogCkBAIC02Myw2ICs2OCwxMSBAQCB2b2lkIERldmlj
ZU9yaWVudGF0aW9uQ2xpZW50SU9TOjpzdG9wVXBkCiB7CiAgICAgbV91cGRhdGluZyA9IGZhbHNl
OwogCisgICAgaWYgKG1fc2hhcmVkRGV2aWNlT3JpZW50YXRpb25DbGllbnQpIHsKKyAgICAgICAg
bV9zaGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudC0+c3RvcFVwZGF0aW5nKCp0aGlzKTsKKyAg
ICAgICAgcmV0dXJuOworICAgIH0KKwogICAgIC8vIFJlbW92ZSBvdXJzZWx2ZXMgYXMgdGhlIG9y
aWVudGF0aW9uIGNsaWVudCBzbyB3ZSB3b24ndCBnZXQgdXBkYXRlcy4KICAgICBbbV9tb3Rpb25N
YW5hZ2VyIHJlbW92ZU9yaWVudGF0aW9uQ2xpZW50OnRoaXNdOwogfQpAQCAtNzQsNiArODQsMTEg
QEAgRGV2aWNlT3JpZW50YXRpb25EYXRhKiBEZXZpY2VPcmllbnRhdGlvbgogCiB2b2lkIERldmlj
ZU9yaWVudGF0aW9uQ2xpZW50SU9TOjpkZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXJEZXN0cm95
ZWQoKQogeworICAgIGlmIChtX3NoYXJlZERldmljZU9yaWVudGF0aW9uQ2xpZW50KSB7CisgICAg
ICAgIG1fc2hhcmVkRGV2aWNlT3JpZW50YXRpb25DbGllbnQtPnN0b3BVcGRhdGluZygqdGhpcyk7
CisgICAgICAgIHJldHVybjsKKyAgICB9CisKICAgICBbbV9tb3Rpb25NYW5hZ2VyIHJlbW92ZU9y
aWVudGF0aW9uQ2xpZW50OnRoaXNdOwogfQogICAgIApJbmRleDogU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vaW9zL1NoYXJlZERldmljZU9yaWVudGF0aW9uQ2xpZW50LmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1NoYXJlZERldmljZU9yaWVudGF0aW9uQ2xpZW50
LmgJKG5vbmV4aXN0ZW50KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1NoYXJlZERl
dmljZU9yaWVudGF0aW9uQ2xpZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw0OSBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAgKiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJ
R0hUIEhPTERFUlMgYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJ
R0hUIE9XTkVSIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVN
RU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKSAmJiBFTkFC
TEUoREVWSUNFX09SSUVOVEFUSU9OKQorCisjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KKwor
bmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBXZWJDb3JlTW90aW9uTWFuYWdlckNsaWVudDsK
KworY2xhc3MgU2hhcmVkRGV2aWNlT3JpZW50YXRpb25DbGllbnQgOiBwdWJsaWMgUmVmQ291bnRl
ZDxTaGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudD4geworcHVibGljOgorICAgIFNoYXJlZERl
dmljZU9yaWVudGF0aW9uQ2xpZW50KCkgeyB9CisgICAgdmlydHVhbCB+U2hhcmVkRGV2aWNlT3Jp
ZW50YXRpb25DbGllbnQoKSB7IH0KKworICAgIHZpcnR1YWwgdm9pZCBzdGFydFVwZGF0aW5nKFdl
YkNvcmVNb3Rpb25NYW5hZ2VyQ2xpZW50JikgeyB9CisgICAgdmlydHVhbCB2b2lkIHN0b3BVcGRh
dGluZyhXZWJDb3JlTW90aW9uTWFuYWdlckNsaWVudCYpIHsgfQorCisgICAgdmlydHVhbCB2b2lk
IGRldmljZU9yaWVudGF0aW9uQ2hhbmdlZChkb3VibGUsIGRvdWJsZSwgZG91YmxlLCBkb3VibGUs
IGRvdWJsZSkgeyB9Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBQ
TEFURk9STShJT1NfRkFNSUxZKSAmJiBFTkFCTEUoREVWSUNFX09SSUVOVEFUSU9OKQpJbmRleDog
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dlYkNvcmVNb3Rpb25NYW5hZ2VyLmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dlYkNvcmVNb3Rpb25NYW5hZ2Vy
LmgJKHJldmlzaW9uIDI1Mjk2MSkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJD
b3JlTW90aW9uTWFuYWdlci5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNSw4ICsyNSw2IEBACiAKICNw
cmFnbWEgb25jZQogCi0jaW1wb3J0ICJEZXZpY2VNb3Rpb25DbGllbnRJT1MuaCIKLSNpbXBvcnQg
IkRldmljZU9yaWVudGF0aW9uQ2xpZW50SU9TLmgiCiAjaW1wb3J0IDxDb3JlTG9jYXRpb24vQ29y
ZUxvY2F0aW9uLmg+CiAjaW1wb3J0IDx3dGYvSGFzaENvdW50ZWRTZXQuaD4KIApAQCAtMzYsMTEg
KzM0LDE2IEBACiAKIGNvbnN0IGZsb2F0IGtNb3Rpb25VcGRhdGVJbnRlcnZhbCA9IDEuMGYgLyA2
MC4wZjsKIAotQGludGVyZmFjZSBXZWJDb3JlTW90aW9uTWFuYWdlciA6IE5TT2JqZWN0IHsKK25h
bWVzcGFjZSBXZWJDb3JlIHsKK2NsYXNzIERldmljZU1vdGlvbkNsaWVudElPUzsKK2NsYXNzIFdl
YkNvcmVNb3Rpb25NYW5hZ2VyQ2xpZW50OworfTsKKworV0VCQ09SRV9FWFBPUlQgQGludGVyZmFj
ZSBXZWJDb3JlTW90aW9uTWFuYWdlciA6IE5TT2JqZWN0IHsKICAgICBDTU1vdGlvbk1hbmFnZXIq
IG1fbW90aW9uTWFuYWdlcjsKICAgICBDTExvY2F0aW9uTWFuYWdlciogbV9sb2NhdGlvbk1hbmFn
ZXI7CiAgICAgSGFzaFNldDxXZWJDb3JlOjpEZXZpY2VNb3Rpb25DbGllbnRJT1MqPiBtX2Rldmlj
ZU1vdGlvbkNsaWVudHM7Ci0gICAgSGFzaFNldDxXZWJDb3JlOjpEZXZpY2VPcmllbnRhdGlvbkNs
aWVudElPUyo+IG1fZGV2aWNlT3JpZW50YXRpb25DbGllbnRzOworICAgIEhhc2hTZXQ8V2ViQ29y
ZTo6V2ViQ29yZU1vdGlvbk1hbmFnZXJDbGllbnQqPiBtX2RldmljZU9yaWVudGF0aW9uQ2xpZW50
czsKICAgICBOU1RpbWVyKiBtX3VwZGF0ZVRpbWVyOwogICAgIEJPT0wgbV9neXJvQXZhaWxhYmxl
OwogICAgIEJPT0wgbV9oZWFkaW5nQXZhaWxhYmxlOwpAQCAtNTAsOCArNTMsOCBAQCBjb25zdCBm
bG9hdCBrTW90aW9uVXBkYXRlSW50ZXJ2YWwgPSAxLjBmCiArIChXZWJDb3JlTW90aW9uTWFuYWdl
ciAqKXNoYXJlZE1hbmFnZXI7CiAtICh2b2lkKWFkZE1vdGlvbkNsaWVudDooV2ViQ29yZTo6RGV2
aWNlTW90aW9uQ2xpZW50SU9TICopY2xpZW50OwogLSAodm9pZClyZW1vdmVNb3Rpb25DbGllbnQ6
KFdlYkNvcmU6OkRldmljZU1vdGlvbkNsaWVudElPUyAqKWNsaWVudDsKLS0gKHZvaWQpYWRkT3Jp
ZW50YXRpb25DbGllbnQ6KFdlYkNvcmU6OkRldmljZU9yaWVudGF0aW9uQ2xpZW50SU9TICopY2xp
ZW50OwotLSAodm9pZClyZW1vdmVPcmllbnRhdGlvbkNsaWVudDooV2ViQ29yZTo6RGV2aWNlT3Jp
ZW50YXRpb25DbGllbnRJT1MgKiljbGllbnQ7CistICh2b2lkKWFkZE9yaWVudGF0aW9uQ2xpZW50
OihXZWJDb3JlOjpXZWJDb3JlTW90aW9uTWFuYWdlckNsaWVudCAqKWNsaWVudDsKKy0gKHZvaWQp
cmVtb3ZlT3JpZW50YXRpb25DbGllbnQ6KFdlYkNvcmU6OldlYkNvcmVNb3Rpb25NYW5hZ2VyQ2xp
ZW50ICopY2xpZW50OwogLSAoQk9PTClneXJvQXZhaWxhYmxlOwogLSAoQk9PTCloZWFkaW5nQXZh
aWxhYmxlOwogQGVuZApJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dlYkNvcmVN
b3Rpb25NYW5hZ2VyLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lv
cy9XZWJDb3JlTW90aW9uTWFuYWdlci5tbQkocmV2aXNpb24gMjUyOTYxKQorKysgU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vaW9zL1dlYkNvcmVNb3Rpb25NYW5hZ2VyLm1tCSh3b3JraW5nIGNvcHkp
CkBAIC0yOCw2ICsyOCw4IEBACiAKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKSAmJiBFTkFCTEUo
REVWSUNFX09SSUVOVEFUSU9OKQogCisjaW1wb3J0ICJEZXZpY2VNb3Rpb25DbGllbnRJT1MuaCIK
KyNpbXBvcnQgIldlYkNvcmVNb3Rpb25NYW5hZ2VyQ2xpZW50LmgiCiAjaW1wb3J0ICJXZWJDb3Jl
T2JqQ0V4dHJhcy5oIgogI2ltcG9ydCAiV2ViQ29yZVRocmVhZFJ1bi5oIgogI2ltcG9ydCA8Q29y
ZUxvY2F0aW9uL0NvcmVMb2NhdGlvbi5oPgpAQCAtMTEyLDE0ICsxMTQsMTQgQEAgLSAodm9pZCly
ZW1vdmVNb3Rpb25DbGllbnQ6KFdlYkNvcmU6OkRldgogICAgICAgICBbc2VsZiBjaGVja0NsaWVu
dFN0YXR1c107CiB9CiAKLS0gKHZvaWQpYWRkT3JpZW50YXRpb25DbGllbnQ6KFdlYkNvcmU6OkRl
dmljZU9yaWVudGF0aW9uQ2xpZW50SU9TICopY2xpZW50CistICh2b2lkKWFkZE9yaWVudGF0aW9u
Q2xpZW50OihXZWJDb3JlOjpXZWJDb3JlTW90aW9uTWFuYWdlckNsaWVudCAqKWNsaWVudAogewog
ICAgIG1fZGV2aWNlT3JpZW50YXRpb25DbGllbnRzLmFkZChjbGllbnQpOwogICAgIGlmIChtX2lu
aXRpYWxpemVkKQogICAgICAgICBbc2VsZiBjaGVja0NsaWVudFN0YXR1c107CiB9CiAKLS0gKHZv
aWQpcmVtb3ZlT3JpZW50YXRpb25DbGllbnQ6KFdlYkNvcmU6OkRldmljZU9yaWVudGF0aW9uQ2xp
ZW50SU9TICopY2xpZW50CistICh2b2lkKXJlbW92ZU9yaWVudGF0aW9uQ2xpZW50OihXZWJDb3Jl
OjpXZWJDb3JlTW90aW9uTWFuYWdlckNsaWVudCAqKWNsaWVudAogewogICAgIG1fZGV2aWNlT3Jp
ZW50YXRpb25DbGllbnRzLnJlbW92ZShjbGllbnQpOwogICAgIGlmIChtX2luaXRpYWxpemVkKQpJ
bmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dlYkNvcmVNb3Rpb25NYW5hZ2VyQ2xp
ZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dlYkNvcmVN
b3Rpb25NYW5hZ2VyQ2xpZW50LmgJKG5vbmV4aXN0ZW50KQorKysgU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vaW9zL1dlYkNvcmVNb3Rpb25NYW5hZ2VyQ2xpZW50LmgJKHdvcmtpbmcgY29weSkKQEAg
LTAsMCArMSwzNyBAQAorLyoKKyogQ29weXJpZ2h0IChDKSAyMDE5IEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyoKKyogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworKiBhcmUgbWV0Ogor
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyoKKyogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworKiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyogVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorKiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRgorKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyogQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkKKyogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRgorKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisq
LworCisjcHJhZ21hIG9uY2UKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBXZWJDb3Jl
TW90aW9uTWFuYWdlckNsaWVudCB7CitwdWJsaWM6CisgICAgdmlydHVhbCB+V2ViQ29yZU1vdGlv
bk1hbmFnZXJDbGllbnQoKSB7IH07CisKKyAgICB2aXJ0dWFsIHZvaWQgb3JpZW50YXRpb25DaGFu
Z2VkKGRvdWJsZSwgZG91YmxlLCBkb3VibGUsIGRvdWJsZSwgZG91YmxlKSB7IH07Cit9OworCit9
OwpJbmRleDogU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YktpdC9DaGFuZ2VMb2cJKHJldmlzaW9uIDI1Mjk2MSkKKysrIFNvdXJjZS9XZWJLaXQvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMzMgQEAKKzIwMTktMTEtMzAgIFBlciBBcm5l
IFZvbGxhbiAgPHB2b2xsYW5AYXBwbGUuY29tPgorCisgICAgICAgIFtpT1NdIENhbGxzIHRvIGRl
dmljZSBvcmllbnRhdGlvbiBBUEkgc2hvdWxkIGJlIGRvbmUgaW4gdGhlIFVJIHByb2Nlc3MKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNDcyMAorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBXZWIgcGFn
ZSBwcm94eSBtZXNzYWdlcyB0byBzdGFydCBhbmQgc3RvcCB1cGRhdGluZyBkZXZpY2Ugb3JpZW50
YXRpb24gaW4gdGhlIFVJIHByb2Nlc3MuIEFsc28sIGFkZCBhIG1lc3NhZ2UgdG8KKyAgICAgICAg
dGhlIFdlYiBwYWdlIHRvIHVwZGF0ZSB0aGUgZGV2aWNlIG9yaWVudGF0aW9uIGluIHRoZSBXZWJD
b250ZW50IHByb2Nlc3MuIEluIHRoZSBVSSBwcm9jZXNzLCB0aGUgZGV2aWNlIG9yaWVudGF0aW9u
IEFQSQorICAgICAgICBpcyBjYWxsZWQgdGhyb3VnaCB0aGUgYWxyZWFkeSBleGlzdGluZyBXZWJD
b3JlTW90aW9uTWFuYWdlciBjbGFzcy4KKworICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJv
eHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9pb3MvV2ViUGFnZVByb3h5SU9TLm1tOgorICAgICAgICAoV2ViS2l0
OjpXZWJQYWdlUHJveHk6OnN0YXJ0VXBkYXRpbmdEZXZpY2VPcmllbnRhdGlvbik6CisgICAgICAg
IChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6c3RvcFVwZGF0aW5nRGV2aWNlT3JpZW50YXRpb24pOgor
ICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6Om9yaWVudGF0aW9uQ2hhbmdlZCk6CisgICAg
ICAgICogV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogV2ViUHJv
Y2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJTaGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudC5jcHA6
IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJTaGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVu
dDo6c3RhcnRVcGRhdGluZyk6CisgICAgICAgIChXZWJLaXQ6OldlYlNoYXJlZERldmljZU9yaWVu
dGF0aW9uQ2xpZW50OjpzdG9wVXBkYXRpbmcpOgorICAgICAgICAoV2ViS2l0OjpXZWJTaGFyZWRE
ZXZpY2VPcmllbnRhdGlvbkNsaWVudDo6ZGV2aWNlT3JpZW50YXRpb25DaGFuZ2VkKToKKyAgICAg
ICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlNoYXJlZERldmljZU9yaWVudGF0aW9u
Q2xpZW50Lmg6IEFkZGVkLgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNw
cDoKKyAgICAgICAgKFdlYktpdDo6bV9vdmVycmlkZGVuTWVkaWFUeXBlKToKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFn
ZS9XZWJQYWdlLm1lc3NhZ2VzLmluOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9pb3Mv
V2ViUGFnZUlPUy5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6ZGV2aWNlT3JpZW50YXRp
b25DaGFuZ2VkKToKKwogMjAxOS0xMS0yNyAgQW50b2luZSBRdWludCAgPGdyYW91dHNAYXBwbGUu
Y29tPgogCiAgICAgICAgIFtXZWIgQW5pbWF0aW9uc10gRW5hYmxlIFdlYkFuaW1hdGlvbnNDU1NJ
bnRlZ3JhdGlvbkVuYWJsZWQgYnkgZGVmYXVsdApJbmRleDogU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2ViUGFnZVByb3h5LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJQYWdlUHJveHkuY3BwCShyZXZpc2lvbiAyNTI5NjEpCisrKyBTb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01MjAsNiArNTIwLDEw
IEBAIFdlYlBhZ2VQcm94eTo6fldlYlBhZ2VQcm94eSgpCiAgICAgbV9wcmVmZXJlbmNlcy0+cmVt
b3ZlUGFnZSgqdGhpcyk7CiAgICAgbV9wYWdlR3JvdXAtPnJlbW92ZVBhZ2UodGhpcyk7CiAKKyNp
ZiBQTEFURk9STShJT1NfRkFNSUxZKSAmJiBFTkFCTEUoREVWSUNFX09SSUVOVEFUSU9OKQorICAg
IHN0b3BVcGRhdGluZ0RldmljZU9yaWVudGF0aW9ucygpOworI2VuZGlmCisgICAgCiAjaWZuZGVm
IE5ERUJVRwogICAgIHdlYlBhZ2VQcm94eUNvdW50ZXIuZGVjcmVtZW50KCk7CiAjZW5kaWYKSW5k
ZXg6IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCShyZXZpc2lvbiAyNTI5NjEp
CisrKyBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAkod29ya2luZyBjb3B5
KQpAQCAtMTQ5LDYgKzE0OSwxMCBAQCBPQkpDX0NMQVNTIF9XS1JlbW90ZU9iamVjdFJlZ2lzdHJ5
OwogI2luY2x1ZGUgIlNPQXV0aG9yaXphdGlvbkxvYWRQb2xpY3kuaCIKICNlbmRpZgogCisjaWYg
UExBVEZPUk0oSU9TX0ZBTUlMWSkgJiYgRU5BQkxFKERFVklDRV9PUklFTlRBVElPTikKKyNpbmNs
dWRlIDxXZWJDb3JlL1dlYkNvcmVNb3Rpb25NYW5hZ2VyQ2xpZW50Lmg+CisjZW5kaWYKKwogI2lm
IEVOQUJMRShNRURJQV9TRVNTSU9OKQogbmFtZXNwYWNlIFdlYkNvcmUgewogY2xhc3MgTWVkaWFT
ZXNzaW9uTWV0YWRhdGE7CkBAIC0xNTksNiArMTYzLDEwIEBAIGNsYXNzIE1lZGlhU2Vzc2lvbk1l
dGFkYXRhOwogaW50ZXJmYWNlIElEM0QxMURldmljZTE7CiAjZW5kaWYKIAorI2lmIFBMQVRGT1JN
KElPU19GQU1JTFkpICYmIEVOQUJMRShERVZJQ0VfT1JJRU5UQVRJT04pCitPQkpDX0NMQVNTIFdl
YkNvcmVNb3Rpb25NYW5hZ2VyOworI2VuZGlmCisKIG5hbWVzcGFjZSBBUEkgewogY2xhc3MgQXR0
YWNobWVudDsKIGNsYXNzIENvbnRleHRNZW51Q2xpZW50OwpAQCAtNDEwLDYgKzQxOCw5IEBAIGNs
YXNzIFdlYlBhZ2VQcm94eSA6IHB1YmxpYyBBUEk6Ok9iamVjdEkKICAgICAsIHB1YmxpYyBXZWJD
b3JlOjpQbGF0Zm9ybVNwZWVjaFN5bnRoZXNpc1V0dGVyYW5jZUNsaWVudAogICAgICwgcHVibGlj
IFdlYkNvcmU6OlBsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXJDbGllbnQKICNlbmRpZgorI2lmIFBM
QVRGT1JNKElPU19GQU1JTFkpICYmIEVOQUJMRShERVZJQ0VfT1JJRU5UQVRJT04pCisgICAgLCBw
dWJsaWMgV2ViQ29yZTo6V2ViQ29yZU1vdGlvbk1hbmFnZXJDbGllbnQKKyNlbmRpZgogICAgICwg
cHVibGljIENhbk1ha2VXZWFrUHRyPFdlYlBhZ2VQcm94eT4gewogcHVibGljOgogICAgIHN0YXRp
YyBSZWY8V2ViUGFnZVByb3h5PiBjcmVhdGUoUGFnZUNsaWVudCYsIFdlYlByb2Nlc3NQcm94eSYs
IFJlZjxBUEk6OlBhZ2VDb25maWd1cmF0aW9uPiYmKTsKQEAgLTE2MjQsNiArMTYzNSwxMSBAQCBw
dWJsaWM6CiAgICAgY29uc3QgU3RyaW5nJiBvdmVycmlkZGVuTWVkaWFUeXBlKCkgY29uc3QgeyBy
ZXR1cm4gbV9vdmVycmlkZGVuTWVkaWFUeXBlOyB9CiAgICAgdm9pZCBzZXRPdmVycmlkZGVuTWVk
aWFUeXBlKGNvbnN0IFN0cmluZyYpOwogCisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkgJiYgRU5B
QkxFKERFVklDRV9PUklFTlRBVElPTikKKyAgICB2b2lkIHN0YXJ0VXBkYXRpbmdEZXZpY2VPcmll
bnRhdGlvbigpOworICAgIHZvaWQgc3RvcFVwZGF0aW5nRGV2aWNlT3JpZW50YXRpb24oKTsKKyNl
bmRpZgorCiBwcml2YXRlOgogICAgIFdlYlBhZ2VQcm94eShQYWdlQ2xpZW50JiwgV2ViUHJvY2Vz
c1Byb3h5JiwgUmVmPEFQSTo6UGFnZUNvbmZpZ3VyYXRpb24+JiYpOwogICAgIHZvaWQgcGxhdGZv
cm1Jbml0aWFsaXplKCk7CkBAIC0yMTY3LDYgKzIxODMsMTEgQEAgcHJpdmF0ZToKICAgICB2b2lk
IHJlc2V0U3BlZWNoU3ludGhlc2l6ZXIoKTsKICNlbmRpZgogCisjaWYgUExBVEZPUk0oSU9TX0ZB
TUlMWSkgJiYgRU5BQkxFKERFVklDRV9PUklFTlRBVElPTikKKyAgICAvLyBXZWJDb3JlOjpXZWJD
b3JlTW90aW9uTWFuYWdlckNsaWVudAorICAgIHZvaWQgb3JpZW50YXRpb25DaGFuZ2VkKGRvdWJs
ZSwgZG91YmxlLCBkb3VibGUsIGRvdWJsZSwgZG91YmxlKSBvdmVycmlkZTsKKyNlbmRpZgorCiAj
aWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKICAgICBzdGF0aWMgYm9vbCBpc0luSGFyZHdhcmVLZXli
b2FyZE1vZGUoKTsKICAgICB2b2lkIGNsZWFyQXVkaWJsZUFjdGl2aXR5KCk7CkBAIC0yNjI0LDYg
KzI2NDUsMTAgQEAgcHJpdmF0ZToKICAgICBib29sIG1faXNRdW90YUluY3JlYXNlRGVuaWVkIHsg
ZmFsc2UgfTsKICAgICAKICAgICBTdHJpbmcgbV9vdmVycmlkZGVuTWVkaWFUeXBlOworCisjaWYg
UExBVEZPUk0oSU9TX0ZBTUlMWSkgJiYgRU5BQkxFKERFVklDRV9PUklFTlRBVElPTikKKyAgICBX
ZWJDb3JlTW90aW9uTWFuYWdlciogbV9tb3Rpb25NYW5hZ2VyIHsgbnVsbHB0ciB9OworI2VuZGlm
CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKSW5kZXg6IFNvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4JKHJldmlzaW9uIDI1Mjk2MSkKKysr
IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbgkod29ya2lu
ZyBjb3B5KQpAQCAtNTg2LDQgKzU4Niw5IEBAIG1lc3NhZ2VzIC0+IFdlYlBhZ2VQcm94eSB7CiAK
ICAgICBEaWRGaW5kVGV4dE1hbmlwdWxhdGlvbkl0ZW0oV2ViQ29yZTo6VGV4dE1hbmlwdWxhdGlv
bkNvbnRyb2xsZXI6Okl0ZW1JZGVudGlmaWVyIGl0ZW1JRCwgVmVjdG9yPFdlYkNvcmU6OlRleHRN
YW5pcHVsYXRpb25Db250cm9sbGVyOjpNYW5pcHVsYXRpb25Ub2tlbj4gdG9rZW5zKQogCisjaWYg
UExBVEZPUk0oSU9TX0ZBTUlMWSkgJiYgRU5BQkxFKERFVklDRV9PUklFTlRBVElPTikKKyAgICBT
dGFydFVwZGF0aW5nRGV2aWNlT3JpZW50YXRpb24oKTsKKyAgICBTdG9wVXBkYXRpbmdEZXZpY2VP
cmllbnRhdGlvbigpOworI2VuZGlmCisKIH0KSW5kZXg6IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L2lvcy9XZWJQYWdlUHJveHlJT1MubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvaW9zL1dlYlBhZ2VQcm94eUlPUy5tbQkocmV2aXNpb24gMjUyOTYxKQorKysgU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvaW9zL1dlYlBhZ2VQcm94eUlPUy5tbQkod29ya2luZyBjb3B5KQpA
QCAtNzUsNiArNzUsMTAgQEAKICNpbXBvcnQgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogI2VuZGlm
CiAKKyNpZiBFTkFCTEUoREVWSUNFX09SSUVOVEFUSU9OKQorI2ltcG9ydCA8V2ViQ29yZS9XZWJD
b3JlTW90aW9uTWFuYWdlci5oPgorI2VuZGlmCisKICNkZWZpbmUgUkVMRUFTRV9MT0dfSUZfQUxM
T1dFRChjaGFubmVsLCBmbXQsIC4uLikgUkVMRUFTRV9MT0dfSUYoaXNBbHdheXNPbkxvZ2dpbmdB
bGxvd2VkKCksIGNoYW5uZWwsICIlcCAtIFtwYWdlUHJveHlJRD0lbGx1LCB3ZWJQYWdlSUQ9JWxs
dSwgUElEPSVpXSBXZWJQYWdlUHJveHk6OiIgZm10LCB0aGlzLCBtX2lkZW50aWZpZXIudG9VSW50
NjQoKSwgbV93ZWJQYWdlSUQudG9VSW50NjQoKSwgbV9wcm9jZXNzLT5wcm9jZXNzSWRlbnRpZmll
cigpLCAjI19fVkFfQVJHU19fKQogCiBuYW1lc3BhY2UgV2ViS2l0IHsKQEAgLTE0ODMsNiArMTQ4
NywyNiBAQCBXZWJDb250ZW50TW9kZSBXZWJQYWdlUHJveHk6OmVmZmVjdGl2ZUNvCiAgICAgcmV0
dXJuIFdlYkNvbnRlbnRNb2RlOjpEZXNrdG9wOwogfQogCisjaWYgRU5BQkxFKERFVklDRV9PUklF
TlRBVElPTikKK3ZvaWQgV2ViUGFnZVByb3h5OjpzdGFydFVwZGF0aW5nRGV2aWNlT3JpZW50YXRp
b24oKQoreworICAgIGlmICghbV9tb3Rpb25NYW5hZ2VyKQorICAgICAgICBtX21vdGlvbk1hbmFn
ZXIgPSBbV2ViQ29yZU1vdGlvbk1hbmFnZXIgc2hhcmVkTWFuYWdlcl07CisgICAgW21fbW90aW9u
TWFuYWdlciBhZGRPcmllbnRhdGlvbkNsaWVudDp0aGlzXTsKK30KKwordm9pZCBXZWJQYWdlUHJv
eHk6OnN0b3BVcGRhdGluZ0RldmljZU9yaWVudGF0aW9uKCkKK3sKKyAgICBbbV9tb3Rpb25NYW5h
Z2VyIHJlbW92ZU9yaWVudGF0aW9uQ2xpZW50OnRoaXNdOworfQorCit2b2lkIFdlYlBhZ2VQcm94
eTo6b3JpZW50YXRpb25DaGFuZ2VkKGRvdWJsZSBhbHBoYSwgZG91YmxlIGJldGEsIGRvdWJsZSBn
YW1tYSwgZG91YmxlIGNvbXBhc3NIZWFkaW5nLCBkb3VibGUgY29tcGFzc0FjY3VyYWN5KQorewor
ICAgIHNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OkRldmljZU9yaWVudGF0aW9uQ2hhbmdlZChhbHBo
YSwgYmV0YSwgZ2FtbWEsIGNvbXBhc3NIZWFkaW5nLCBjb21wYXNzQWNjdXJhY3kpLCAwKTsKK30K
KyNlbmRpZgorCisKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAogCiAjdW5kZWYgUkVMRUFTRV9MT0df
SUZfQUxMT1dFRApJbmRleDogU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvago9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCShyZXZpc2lvbiAyNTI5NjEpCisrKyBTb3VyY2UvV2ViS2l0L1dlYktpdC54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCSh3b3JraW5nIGNvcHkpCkBAIC0xNjg5LDYgKzE2ODks
NyBAQAogCQlFMUQyNkE1MzE3NTk2NEQ5MDA5NUJGRDEgLyogV2ViQ29udGVudFByb2Nlc3MueGli
IGluIFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMUQyNkE0
QzE3NTk2MzRFMDA5NUJGRDEgLyogV2ViQ29udGVudFByb2Nlc3MueGliICovOyB9OwogCQlFMUU1
NTJDNTE2QUUwNjVGMDA0RUQ2NTMgLyogU2FuZGJveEluaXRpYWxpemF0aW9uUGFyYW1ldGVycy5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTFFNTUyQzMx
NkFFMDY1RTAwNEVENjUzIC8qIFNhbmRib3hJbml0aWFsaXphdGlvblBhcmFtZXRlcnMuaCAqLzsg
fTsKIAkJRTFFRTUzRTMxMUY4Q0ZDMDAwQ0NCRUU0IC8qIEluamVjdGVkQnVuZGxlUGFnZUVkaXRv
ckNsaWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
RTFFRTUzREMxMUY4Q0Y5RjAwQ0NCRUU0IC8qIEluamVjdGVkQnVuZGxlUGFnZUVkaXRvckNsaWVu
dC5oICovOyB9OworCQlFMzk2MjhBQTIzODhBQkQ4MDA2NThFQ0QgLyogV2ViU2hhcmVkRGV2aWNl
T3JpZW50YXRpb25DbGllbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gRTM5NjI4QTkyMzg4QUJEODAwNjU4RUNEIC8qIFdlYlNoYXJlZERldmljZU9y
aWVudGF0aW9uQ2xpZW50LmNwcCAqLzsgfTsKIAkJRTQxM0Y1OUQxQUMxQURDNDAwMzQ1MzYwIC8q
IE5ldHdvcmtDYWNoZUVudHJ5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBFNDEzRjU5QjFBQzFBREI2MDAzNDUzNjAgLyogTmV0d29ya0NhY2hlRW50cnku
aCAqLzsgfTsKIAkJRTQyRTA2MTAxQUE3NTIzQjAwQjExNjk5IC8qIE5ldHdvcmtDYWNoZUlPQ2hh
bm5lbC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTQy
RTA2MEIxQUE3NDQwRDAwQjExNjk5IC8qIE5ldHdvcmtDYWNoZUlPQ2hhbm5lbC5oICovOyB9Owog
CQlFNDJFMDYxMjFBQTc1QUJEMDBCMTE2OTkgLyogTmV0d29ya0NhY2hlRGF0YS5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTQyRTA2MTExQUE3NUFCRDAw
QjExNjk5IC8qIE5ldHdvcmtDYWNoZURhdGEuaCAqLzsgfTsKQEAgLTQ3NDgsNiArNDc0OSw4IEBA
CiAJCUUxRUU1M0RDMTFGOENGOUYwMENDQkVFNCAvKiBJbmplY3RlZEJ1bmRsZVBhZ2VFZGl0b3JD
bGllbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSW5qZWN0ZWRCdW5kbGVQ
YWdlRWRpdG9yQ2xpZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUxRUU1M0U2
MTFGOENGRkIwMENDQkVFNCAvKiBJbmplY3RlZEJ1bmRsZVBhZ2VFZGl0b3JDbGllbnQuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSW5qZWN0ZWRCdW5kbGVQYWdlRWRp
dG9yQ2xpZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTM0MzlCNjMyMzQ1
NDYzQTAwMTFERTBCIC8qIE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbkluZm8uaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBu
YW1lID0gTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uSW5mby5oOyBwYXRoID0gTmV0d29yay9OZXR3
b3JrUHJvY2Vzc0Nvbm5lY3Rpb25JbmZvLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CUUzOTYyOEE4MjM4OEE1RDQwMDY1OEVDRCAvKiBXZWJTaGFyZWREZXZpY2VPcmllbnRhdGlvbkNs
aWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJTaGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudC5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFMzk2MjhBOTIzODhBQkQ4MDA2NThFQ0Qg
LyogV2ViU2hhcmVkRGV2aWNlT3JpZW50YXRpb25DbGllbnQuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gV2ViU2hhcmVkRGV2aWNlT3JpZW50YXRpb25DbGllbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQlFNDA0OTA3MDIxREU2NUY3MDAzN0YwREIgLyogU2Nyb2xsZXJQYWlyTWFj
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNjcm9sbGVyUGFpck1hYy5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFNDA0OTA3MTIxREU2NUY3MDAzN0YwREIgLyog
U2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZVJlbW90ZU1hYy5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2Rl
UmVtb3RlTWFjLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTQwNDkwNzIyMURF
NjVGNzAwMzdGMERCIC8qIFNjcm9sbGVyUGFpck1hYy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLm9iamNwcDsgcGF0aCA9IFNjcm9sbGVyUGFpck1hYy5tbTsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKQEAgLTU4NTQsNiArNTg1Nyw4IEBACiAJCQkJMkQyOEYzRTMxODg1Q0NDMTAwNEI5
RUFFIC8qIFdlYkZyYW1lTG9hZGVyQ2xpZW50SU9TLm1tICovLAogCQkJCUExQzUxMkM2MTkwNjU2
RTUwMDQ0ODkxNCAvKiBXZWJQcmV2aWV3TG9hZGVyQ2xpZW50LmNwcCAqLywKIAkJCQlBMUM1MTJD
NzE5MDY1NkU1MDA0NDg5MTQgLyogV2ViUHJldmlld0xvYWRlckNsaWVudC5oICovLAorCQkJCUUz
OTYyOEE5MjM4OEFCRDgwMDY1OEVDRCAvKiBXZWJTaGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVu
dC5jcHAgKi8sCisJCQkJRTM5NjI4QTgyMzg4QTVENDAwNjU4RUNEIC8qIFdlYlNoYXJlZERldmlj
ZU9yaWVudGF0aW9uQ2xpZW50LmggKi8sCiAJCQkpOwogCQkJbmFtZSA9IGlvczsKIAkJCXNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7CkBAIC05ODIwLDcgKzk4MjUsNiBAQAogCQkJCTUxMUY4QTdCMTM4
QjQ2MDkwMEE5NUY0NCAvKiBTZWNJdGVtU2hpbUxpYnJhcnkuaCBpbiBIZWFkZXJzICovLAogCQkJ
CUUxOEU2OTBDMTY5QjU2M0YwMDlCNjY3MCAvKiBTZWNJdGVtU2hpbVByb3h5LmggaW4gSGVhZGVy
cyAqLywKIAkJCQlFMThFNjkxODE2OUI2NjdCMDA5QjY2NzAgLyogU2VjSXRlbVNoaW1Qcm94eU1l
c3NhZ2VzLmggaW4gSGVhZGVycyAqLywKLQkJCQk3QUE3NDZENTIzNTkzRDgxMDAwOTUwNTAgLyog
U2VjSXRlbVNQSS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTcwQUI4RjMyMEFFM0JENzAwQjhCRTg3
IC8qIFNlY0tleVByb3h5U3RvcmUuaCBpbiBIZWFkZXJzICovLAogCQkJCTUxNEQ5RjU3MTkxMTlE
MzUwMDAwNjNBNyAvKiBTZXJ2aWNlc0NvbnRyb2xsZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTFB
RkRFNjVBMTk1NEE0MkIwMEM0OEZGQSAvKiBTZXNzaW9uU3RhdGUuaCBpbiBIZWFkZXJzICovLApA
QCAtMTE2MTksNiArMTE2MjMsNyBAQAogCQkJCTUxRjA2MEUxMTY1NDMxODUwMEYzMjgxRiAvKiBX
ZWJSVENNb25pdG9yTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTUxRjA2
MEUxMTY1NDMxODUwMEYzMjgyQyAvKiBXZWJSVENSZXNvbHZlck1lc3NhZ2VSZWNlaXZlci5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQk1MUYwNjBFMTE2NTQzMTg1MDBGMzI4MUMgLyogV2ViUlRDU29j
a2V0TWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUUzOTYyOEFBMjM4OEFC
RDgwMDY1OEVDRCAvKiBXZWJTaGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudC5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQk0MUYwNjBFMTE2NTQzMTg1MDBGMzI4MUMgLyogV2ViU29ja2V0Q2hhbm5l
bE1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk1QzBCMTc3OTFFN0M4ODIx
MDBFOTEyM0MgLyogV2ViU29ja2V0U3RyZWFtTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCTQxMjg3RDRFMjI1RDFFQ0IwMDlBM0UyNiAvKiBXZWJTb2NrZXRUYXNrQ29jb2Eu
bW0gaW4gU291cmNlcyAqLywKSW5kZXg6IFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3Jl
U3VwcG9ydC9XZWJTaGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudC5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlNoYXJlZERldmlj
ZU9yaWVudGF0aW9uQ2xpZW50LmNwcAkobm9uZXhpc3RlbnQpCisrKyBTb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViU2hhcmVkRGV2aWNlT3JpZW50YXRpb25DbGllbnQu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNjAgQEAKKy8qCisqIENvcHlyaWdodCAoQykg
MjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisqCisqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyogYXJlIG1ldDoKKyogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisqCisqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycK
KyogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisqIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IKKyogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisqIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOCisqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyogVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUg
IldlYlNoYXJlZERldmljZU9yaWVudGF0aW9uQ2xpZW50LmgiCisKKyNpZiBQTEFURk9STShJT1Nf
RkFNSUxZKSAmJiBFTkFCTEUoREVWSUNFX09SSUVOVEFUSU9OKQorCisjaW5jbHVkZSAiV2ViUGFn
ZS5oIgorI2luY2x1ZGUgIldlYlBhZ2VQcm94eU1lc3NhZ2VzLmgiCisKKyNpbmNsdWRlIDxXZWJD
b3JlL1dlYkNvcmVNb3Rpb25NYW5hZ2VyQ2xpZW50Lmg+CisKK25hbWVzcGFjZSBXZWJLaXQgewor
Cit2b2lkIFdlYlNoYXJlZERldmljZU9yaWVudGF0aW9uQ2xpZW50OjpzdGFydFVwZGF0aW5nKFdl
YkNvcmU6OldlYkNvcmVNb3Rpb25NYW5hZ2VyQ2xpZW50JiBjbGllbnQpCit7CisgICAgaWYgKG1f
Y2xpZW50cy5pc0VtcHR5KCkpCisgICAgICAgIG1fcGFnZS5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdl
UHJveHk6OlN0YXJ0VXBkYXRpbmdEZXZpY2VPcmllbnRhdGlvbigpKTsKKyAgICBtX2NsaWVudHMu
YWRkKCZjbGllbnQpOworfQorCit2b2lkIFdlYlNoYXJlZERldmljZU9yaWVudGF0aW9uQ2xpZW50
OjpzdG9wVXBkYXRpbmcoV2ViQ29yZTo6V2ViQ29yZU1vdGlvbk1hbmFnZXJDbGllbnQmIGNsaWVu
dCkKK3sKKyAgICBtX2NsaWVudHMucmVtb3ZlKCZjbGllbnQpOworICAgIGlmIChtX2NsaWVudHMu
aXNFbXB0eSgpKQorICAgICAgICBtX3BhZ2Uuc2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpT
dG9wVXBkYXRpbmdEZXZpY2VPcmllbnRhdGlvbigpKTsKK30KKwordm9pZCBXZWJTaGFyZWREZXZp
Y2VPcmllbnRhdGlvbkNsaWVudDo6ZGV2aWNlT3JpZW50YXRpb25DaGFuZ2VkKGRvdWJsZSBhbHBo
YSwgZG91YmxlIGJldGEsIGRvdWJsZSBnYW1tYSwgZG91YmxlIGNvbXBhc3NIZWFkaW5nLCBkb3Vi
bGUgY29tcGFzc0FjY3VyYWN5KQoreworICAgIGZvciAoYXV0byBjbGllbnQgOiBtX2NsaWVudHMp
CisgICAgICAgIGNsaWVudC0+b3JpZW50YXRpb25DaGFuZ2VkKGFscGhhLCBiZXRhLCBnYW1tYSwg
Y29tcGFzc0hlYWRpbmcsIGNvbXBhc3NBY2N1cmFjeSk7Cit9CisKK307CisKKyNlbmRpZgpJbmRl
eDogU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlNoYXJlZERldmlj
ZU9yaWVudGF0aW9uQ2xpZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlNoYXJlZERldmljZU9yaWVudGF0aW9uQ2xpZW50LmgJKG5v
bmV4aXN0ZW50KQorKysgU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dl
YlNoYXJlZERldmljZU9yaWVudGF0aW9uQ2xpZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTAsMCAr
MSw1OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
KyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisg
KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSA8V2ViQ29yZS9T
aGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudC5oPgorCisjaW5jbHVkZSA8d3RmL0hhc2hTZXQu
aD4KKworI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpICYmIEVOQUJMRShERVZJQ0VfT1JJRU5UQVRJ
T04pCisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBXZWJQYWdlOworCitjbGFzcyBXZWJT
aGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudCBmaW5hbCA6IHB1YmxpYyBXZWJDb3JlOjpTaGFy
ZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudCB7CisgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7
CitwdWJsaWM6CisgICAgV2ViU2hhcmVkRGV2aWNlT3JpZW50YXRpb25DbGllbnQoV2ViUGFnZSYg
cGFnZSkKKyAgICAgICAgOiBtX3BhZ2UocGFnZSkKKyAgICB7CisgICAgfQorCisgICAgdm9pZCBz
dGFydFVwZGF0aW5nKFdlYkNvcmU6OldlYkNvcmVNb3Rpb25NYW5hZ2VyQ2xpZW50Jikgb3ZlcnJp
ZGU7CisgICAgdm9pZCBzdG9wVXBkYXRpbmcoV2ViQ29yZTo6V2ViQ29yZU1vdGlvbk1hbmFnZXJD
bGllbnQmKSBvdmVycmlkZTsKKworICAgIHZvaWQgZGV2aWNlT3JpZW50YXRpb25DaGFuZ2VkKGRv
dWJsZSwgZG91YmxlLCBkb3VibGUsIGRvdWJsZSwgZG91YmxlKSBvdmVycmlkZTsKKworcHJpdmF0
ZToKKyAgICBXZWJQYWdlJiBtX3BhZ2U7CisgICAgSGFzaFNldDxXZWJDb3JlOjpXZWJDb3JlTW90
aW9uTWFuYWdlckNsaWVudCo+IG1fY2xpZW50czsKK307CisKK30KKworI2VuZGlmCkluZGV4OiBT
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAkocmV2aXNpb24g
MjUyOTYxKQorKysgU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTEyMCw2ICsxMjAsNyBAQAogI2luY2x1ZGUgIldlYlByb2Nlc3NQ
cm94eU1lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiV2ViUHJvZ3Jlc3NUcmFja2VyQ2xpZW50LmgiCiAj
aW5jbHVkZSAiV2ViU2VydmljZVdvcmtlclByb3ZpZGVyLmgiCisjaW5jbHVkZSAiV2ViU2hhcmVk
RGV2aWNlT3JpZW50YXRpb25DbGllbnQuaCIKICNpbmNsdWRlICJXZWJTb2NrZXRQcm92aWRlci5o
IgogI2luY2x1ZGUgIldlYlNwZWVjaFN5bnRoZXNpc0NsaWVudC5oIgogI2luY2x1ZGUgIldlYlN0
b3JhZ2VOYW1lc3BhY2VQcm92aWRlci5oIgpAQCAtNTAxLDYgKzUwMiw4IEBAIFdlYlBhZ2U6Oldl
YlBhZ2UoUGFnZUlkZW50aWZpZXIgcGFnZUlELCAKICNpZiBFTkFCTEUoQVBQTElDQVRJT05fTUFO
SUZFU1QpCiAgICAgcGFnZUNvbmZpZ3VyYXRpb24uYXBwbGljYXRpb25NYW5pZmVzdCA9IHBhcmFt
ZXRlcnMuYXBwbGljYXRpb25NYW5pZmVzdDsKICNlbmRpZgorICAgIAorICAgIHBhZ2VDb25maWd1
cmF0aW9uLnNoYXJlZERldmljZU9yaWVudGF0aW9uQ2xpZW50ID0gbmV3IFdlYlNoYXJlZERldmlj
ZU9yaWVudGF0aW9uQ2xpZW50KCp0aGlzKTsKIAogICAgIG1fcGFnZSA9IG1ha2VVbmlxdWU8UGFn
ZT4oV1RGTW92ZShwYWdlQ29uZmlndXJhdGlvbikpOwogCkluZGV4OiBTb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCShyZXZpc2lvbiAyNTI5NjEpCisrKyBTb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgJKHdvcmtpbmcgY29weSkKQEAgLTEy
NDQsNiArMTI0NCwxMCBAQCBwdWJsaWM6CiAgICAgY29uc3QgU3RyaW5nJiBvdmVycmlkZGVuTWVk
aWFUeXBlKCkgY29uc3QgeyByZXR1cm4gbV9vdmVycmlkZGVuTWVkaWFUeXBlOyB9CiAgICAgdm9p
ZCBzZXRPdmVycmlkZGVuTWVkaWFUeXBlKGNvbnN0IFN0cmluZyYpOwogICAgIAorI2lmIFBMQVRG
T1JNKElPU19GQU1JTFkpICYmIEVOQUJMRShERVZJQ0VfT1JJRU5UQVRJT04pCisgICAgdm9pZCBk
ZXZpY2VPcmllbnRhdGlvbkNoYW5nZWQoZG91YmxlIGFscGhhLCBkb3VibGUgYmV0YSwgZG91Ymxl
IGdhbW1hLCBkb3VibGUgY29tcGFzc0hlYWRpbmcsIGRvdWJsZSBjb21wYXNzQWNjdXJhY3kpOwor
I2VuZGlmCisKIHByaXZhdGU6CiAgICAgV2ViUGFnZShXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwg
V2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycyYmKTsKIApJbmRleDogU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbgo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluCShyZXZpc2lvbiAy
NTI5NjEpCisrKyBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3Nh
Z2VzLmluCSh3b3JraW5nIGNvcHkpCkBAIC01ODMsNCArNTgzLDggQEAgR2VuZXJhdGVTeW50aGV0
aWNFZGl0aW5nQ29tbWFuZChlbnVtOnVpbgogICAgIENvbXBsZXRlVGV4dE1hbmlwdWxhdGlvbihX
ZWJDb3JlOjpUZXh0TWFuaXB1bGF0aW9uQ29udHJvbGxlcjo6SXRlbUlkZW50aWZpZXIgaXRlbUlE
LCBWZWN0b3I8V2ViQ29yZTo6VGV4dE1hbmlwdWxhdGlvbkNvbnRyb2xsZXI6Ok1hbmlwdWxhdGlv
blRva2VuPiB0b2tlbnMpIC0+IChlbnVtOnVpbnQ4X3QgV2ViQ29yZTo6VGV4dE1hbmlwdWxhdGlv
bkNvbnRyb2xsZXI6Ok1hbmlwdWxhdGlvblJlc3VsdCByZXN1bHQpIEFzeW5jCiAgICAgCiAgICAg
U2V0T3ZlcnJpZGRlbk1lZGlhVHlwZShTdHJpbmcgbWVkaWFUeXBlKQorICAgIAorI2lmIFBMQVRG
T1JNKElPU19GQU1JTFkpICYmIEVOQUJMRShERVZJQ0VfT1JJRU5UQVRJT04pCisgICAgRGV2aWNl
T3JpZW50YXRpb25DaGFuZ2VkKGRvdWJsZSBhbHBoYSwgZG91YmxlIGJldGEsIGRvdWJsZSBnYW1t
YSwgZG91YmxlIGNvbXBhc3NIZWFkaW5nLCBkb3VibGUgY29tcGFzc0FjY3VyYWN5KQorI2VuZGlm
CiB9CkluZGV4OiBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlP
Uy5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9pb3Mv
V2ViUGFnZUlPUy5tbQkocmV2aXNpb24gMjUyOTYxKQorKysgU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW0JKHdvcmtpbmcgY29weSkKQEAgLTQwODgsNiAr
NDA4OCwxNCBAQCB2b2lkIFdlYlBhZ2U6OnJlcXVlc3RQYXNzd29yZEZvclF1aWNrTG9vCiAKICNl
bmRpZgogCisjaWYgRU5BQkxFKERFVklDRV9PUklFTlRBVElPTikKK3ZvaWQgV2ViUGFnZTo6ZGV2
aWNlT3JpZW50YXRpb25DaGFuZ2VkKGRvdWJsZSBhbHBoYSwgZG91YmxlIGJldGEsIGRvdWJsZSBn
YW1tYSwgZG91YmxlIGNvbXBhc3NIZWFkaW5nLCBkb3VibGUgY29tcGFzc0FjY3VyYWN5KQorewor
ICAgIGlmIChjb3JlUGFnZSgpICYmIGNvcmVQYWdlKCktPnNoYXJlZERldmljZU9yaWVudGF0aW9u
Q2xpZW50KCkpCisgICAgICAgIGNvcmVQYWdlKCktPnNoYXJlZERldmljZU9yaWVudGF0aW9uQ2xp
ZW50KCktPmRldmljZU9yaWVudGF0aW9uQ2hhbmdlZChhbHBoYSwgYmV0YSwgZ2FtbWEsIGNvbXBh
c3NIZWFkaW5nLCBjb21wYXNzQWNjdXJhY3kpOworfQorI2VuZGlmCisKIH0gLy8gbmFtZXNwYWNl
IFdlYktpdAogCiAjdW5kZWYgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>384560</attachid>
            <date>2019-11-30 17:01:28 -0800</date>
            <delta_ts>2019-11-30 17:17:49 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-204720-20191130170127.patch</filename>
            <type>text/plain</type>
            <size>47863</size>
            <attacher name="Per Arne Vollan">pvollan</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDI1Mjk2MSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDUwIEBACisyMDE5LTExLTMwICBQZXIgQXJu
ZSBWb2xsYW4gIDxwdm9sbGFuQGFwcGxlLmNvbT4KKworICAgICAgICBbaU9TXSBDYWxscyB0byBk
ZXZpY2Ugb3JpZW50YXRpb24gQVBJIHNob3VsZCBiZSBkb25lIGluIHRoZSBVSSBwcm9jZXNzCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDQ3MjAKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGUgZGV2aWNl
IG9yaWVudGF0aW9uIEFQSSBvbiBpT1MgaXMgY29tbXVuaWNhdGluZyB3aXRoIGxvY2F0aW9uZC4g
U2luY2UgbWFjaCBsb29rdXAgdG8gdGhpcyBkYWVtb24KKyAgICAgICAgd2lsbCBiZSBjbG9zZWQs
IHRoZSBjYWxscyB0byB0aGlzIEFQSSBzaG91bGQgYmUgbW92ZWQgZnJvbSB0aGUgV2ViQ29udGVu
dCBwcm9jZXNzIHRvIHRoZSBVSSBwcm9jZXNzLgorICAgICAgICBUaGlzIHBhdGNoIGltcGxlbWVu
dHMgZm9yd2FyZGluZyBvZiB0aGUgZGV2aWNlIG9yaWVudGF0aW9uIHJlcXVlc3RzIHRvIHRoZSBV
SSBwcm9jZXNzIHRocm91Z2ggYSBuZXcKKyAgICAgICAgY2xhc3MsIFNoYXJlZERldmljZU9yaWVu
dGF0aW9uQ2xpZW50LCB3aGljaCBpcyBzdWJjbGFzc2VkIGJ5IFdlYlNoYXJlZERldmljZU9yaWVu
dGF0aW9uQ2xpZW50IGluCisgICAgICAgIG1vZGVybiBXZWJLaXQuIFRoaXMgY2xhc3MgaW1wbGVt
ZW50cyBmb3J3YXJkaW5nIG9mIHRoZSByZXF1ZXN0cyB0byB0aGUgVUkgcHJvY2VzcywgYW5kIHJl
Y2VpdmVzCisgICAgICAgIGRldmljZSBvcmllbnRhdGlvbiB1cGRhdGVzIGZyb20gdGhlIFVJIHBy
b2Nlc3MuIEFuIGluc3RhbmNlIG9mIHRoaXMgY2xhc3Mgd2lsbCBiZSBzaGFyZWQgYnkgYWxsCisg
ICAgICAgIGRldmljZSBvcmllbnRhdGlvbiBjbGllbnRzIG9uIGEgcGFnZSwgYW5kIHBhc3NlZCBh
cyBwYXJ0IG9mIHRoZSBwYWdlIGNvbmZpZ3VyYXRpb24gcGFyYW1ldGVycy4gT24KKyAgICAgICAg
dGhlIFVJIHByb2Nlc3Mgc2lkZSwgdGhlIFdlYiBwYWdlIHByb3h5IGlzIHRha2luZyBjYXJlIG9m
IGNhbGxpbmcgdGhlIGRldmljZSBvcmllbnRhdGlvbiBBUEkgdGhyb3VnaAorICAgICAgICB0aGUg
ZXhpc3RpbmcgV2ViQ29yZU1vdGlvbk1hbmFnZXIgT2JqZWN0aXZlLUMgY2xhc3MuCisKKyAgICAg
ICAgTm8gbmV3IHRlc3RzLCBjb3ZlcmVkIGJ5IGV4aXN0aW5nIHRlc3RzLgorCisgICAgICAgICog
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGRvbS9EZXZpY2VP
cmllbnRhdGlvbkNsaWVudC5oOgorICAgICAgICAoV2ViQ29yZTo6RGV2aWNlT3JpZW50YXRpb25D
bGllbnQ6OnNldFNoYXJlZERldmljZU9yaWVudGF0aW9uQ2xpZW50KToKKyAgICAgICAgKiBkb20v
RG9jdW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6bV91bmRvTWFuYWdlcik6CisgICAgICAg
ICogcGFnZS9QYWdlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Om1fc2hhcmVkRGV2aWNlT3JpZW50
YXRpb25DbGllbnQpOgorICAgICAgICAoV2ViQ29yZTo6bV9hcHBsaWNhdGlvbk1hbmlmZXN0KTog
RGVsZXRlZC4KKyAgICAgICAgKiBwYWdlL1BhZ2UuaDoKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2U6
OnNoYXJlZERldmljZU9yaWVudGF0aW9uQ2xpZW50IGNvbnN0KToKKyAgICAgICAgKiBwYWdlL1Bh
Z2VDb25maWd1cmF0aW9uLmg6CisgICAgICAgICogcGxhdGZvcm0vaW9zL0RldmljZU9yaWVudGF0
aW9uQ2xpZW50SU9TLmg6CisgICAgICAgICogcGxhdGZvcm0vaW9zL0RldmljZU9yaWVudGF0aW9u
Q2xpZW50SU9TLm1tOgorICAgICAgICAoV2ViQ29yZTo6RGV2aWNlT3JpZW50YXRpb25DbGllbnRJ
T1M6OnN0YXJ0VXBkYXRpbmcpOgorICAgICAgICAoV2ViQ29yZTo6RGV2aWNlT3JpZW50YXRpb25D
bGllbnRJT1M6OnN0b3BVcGRhdGluZyk6CisgICAgICAgIChXZWJDb3JlOjpEZXZpY2VPcmllbnRh
dGlvbkNsaWVudElPUzo6ZGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyRGVzdHJveWVkKToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9pb3MvU2hhcmVkRGV2aWNlT3JpZW50YXRpb25DbGllbnQuaDogQWRk
ZWQuCisgICAgICAgIChXZWJDb3JlOjpTaGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudDo6U2hh
cmVkRGV2aWNlT3JpZW50YXRpb25DbGllbnQpOgorICAgICAgICAoV2ViQ29yZTo6U2hhcmVkRGV2
aWNlT3JpZW50YXRpb25DbGllbnQ6On5TaGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudCk6Cisg
ICAgICAgIChXZWJDb3JlOjpTaGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudDo6c3RhcnRVcGRh
dGluZyk6CisgICAgICAgIChXZWJDb3JlOjpTaGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudDo6
c3RvcFVwZGF0aW5nKToKKyAgICAgICAgKFdlYkNvcmU6OlNoYXJlZERldmljZU9yaWVudGF0aW9u
Q2xpZW50OjpkZXZpY2VPcmllbnRhdGlvbkNoYW5nZWQpOgorICAgICAgICAqIHBsYXRmb3JtL2lv
cy9XZWJDb3JlTW90aW9uTWFuYWdlci5oOgorICAgICAgICAqIHBsYXRmb3JtL2lvcy9XZWJDb3Jl
TW90aW9uTWFuYWdlci5tbToKKyAgICAgICAgKC1bV2ViQ29yZU1vdGlvbk1hbmFnZXIgYWRkT3Jp
ZW50YXRpb25DbGllbnQ6XSk6CisgICAgICAgICgtW1dlYkNvcmVNb3Rpb25NYW5hZ2VyIHJlbW92
ZU9yaWVudGF0aW9uQ2xpZW50Ol0pOgorICAgICAgICAqIHBsYXRmb3JtL2lvcy9XZWJDb3JlTW90
aW9uTWFuYWdlckNsaWVudC5oOgorCiAyMDE5LTExLTMwICB5b3Vlbm4gZmFibGV0ICA8eW91ZW5u
QGFwcGxlLmNvbT4KIAogICAgICAgICBTaW1wbGlmeSBDb3JlQXVkaW9DYXB0dXJlU291cmNlIHN1
c3BlbnNpb24gbG9naWMKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvago9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oJKHJldmlzaW9uIDI1Mjk2MSkKKysrIFNvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkod29ya2luZyBjb3B5KQpAQCAtOTA3
LDcgKzkwNyw3IEBACiAJCTMxMzU5MTBBMUU3RERDNzMwMEYzMDYzMCAvKiBSVENTZHBUeXBlLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzMTM1OTEwNDFF
N0REQzYwMDBGMzA2MzAgLyogUlRDU2RwVHlwZS5oICovOyB9OwogCQkzMTM1OTEwQjFFN0REQzcz
MDBGMzA2MzAgLyogUlRDU2lnbmFsaW5nU3RhdGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMxMzU5MTA1MUU3RERDNjAwMEYzMDYzMCAvKiBSVENTaWdu
YWxpbmdTdGF0ZS5oICovOyB9OwogCQkzMTNCQ0UxQzIzNUUzQkU1MDBGQzM5RTUgLyogRWxlbWVu
dENvbnRleHQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDMxM0JDRTFCMjM1RTNCREIwMEZDMzlFNSAvKiBFbGVtZW50Q29udGV4dC5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07Ci0JCTMxNDAzNzlCMTI0QkVBN0Yw
MEFGNDBFNCAvKiBXZWJDb3JlTW90aW9uTWFuYWdlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzE0MDM3OTcxMjRCRUE3RjAwQUY0MEU0IC8qIFdlYkNv
cmVNb3Rpb25NYW5hZ2VyLmggKi87IH07CisJCTMxNDAzNzlCMTI0QkVBN0YwMEFGNDBFNCAvKiBX
ZWJDb3JlTW90aW9uTWFuYWdlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gMzE0MDM3OTcxMjRCRUE3RjAwQUY0MEU0IC8qIFdlYkNvcmVNb3Rpb25NYW5h
Z2VyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJ
MzE0MDM3OUQxMjRCRUE3RjAwQUY0MEU0IC8qIERldmljZU9yaWVudGF0aW9uQ2xpZW50SU9TLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzMTQwMzc5OTEy
NEJFQTdGMDBBRjQwRTQgLyogRGV2aWNlT3JpZW50YXRpb25DbGllbnRJT1MuaCAqLzsgfTsKIAkJ
MzE0MEM1MjAxRkRGMTUxQTAwRDJBODczIC8qIE9mZnNjcmVlbkNhbnZhc1JlbmRlcmluZ0NvbnRl
eHQyRC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzE0
MEM1MUUxRkRGMTUxQTAwRDJBODczIC8qIE9mZnNjcmVlbkNhbnZhc1JlbmRlcmluZ0NvbnRleHQy
RC5oICovOyB9OwogCQkzMTQwQzUyNDFGREYzMTg3MDBEMkE4NzMgLyogQ2FudmFzUmVuZGVyaW5n
Q29udGV4dDJEQmFzZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMzE0MEM1MjIxRkRGMzE4NjAwRDJBODczIC8qIENhbnZhc1JlbmRlcmluZ0NvbnRleHQy
REJhc2UuaCAqLzsgfTsKQEAgLTQ3NzYsNiArNDc3Niw4IEBACiAJCUUzNTgwMkI2MURDODQzNUQw
MEE5NzczQyAvKiBET01KSVRJRExUeXBlRmlsdGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMzU4MDJCNTFEQzg0MzU4MDBBOTc3M0MgLyogRE9NSklU
SURMVHlwZUZpbHRlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CiAJCUUzNzdGRTREMURBREUxNjUwMENERDAyNSAvKiBOb2RlQ29uc3RhbnRzLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFM0QwNDk5MzFEQURD
MDQ1MDA3MThGM0MgLyogTm9kZUNvbnN0YW50cy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07CiAJCUUzN0M4NjUwMUVCNjNFM0YwMDg3QzZDQSAvKiBKU0RP
TVByb21pc2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEUzN0M4NjRGMUVCNjNFMkQwMDg3QzZDQSAvKiBKU0RPTVByb21pc2UuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQlFMzk2MjhBNDIzODg5MzVCMDA2
NThFQ0QgLyogU2hhcmVkRGV2aWNlT3JpZW50YXRpb25DbGllbnQuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUzOTYyOEEzMjM4ODkzNUIwMDY1OEVDRCAv
KiBTaGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJV
VEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCUUzOTYyOEFDMjM5MUM4MTcwMDY1OEVDRCAvKiBX
ZWJDb3JlTW90aW9uTWFuYWdlckNsaWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gRTM5NjI4QUIyMzkxQzRGMzAwNjU4RUNEIC8qIFdlYkNvcmVNb3Rp
b25NYW5hZ2VyQ2xpZW50LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKIAkJRTNBNzc2NjcxREM4NUQyODAwQjY5MEQ4IC8qIERPTUpJVElETENvbnZlcnQu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUzQTc3NjY1
MURDODVEMjIwMEI2OTBEOCAvKiBET01KSVRJRExDb252ZXJ0LmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJRTNBNzc2NjgxREM4NUQyODAwQjY5MEQ4
IC8qIERPTUpJVElETFR5cGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEUzQTc3NjY2MURDODVEMjIwMEI2OTBEOCAvKiBET01KSVRJRExUeXBlLmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJRTNCMkYwRUQx
RDdGNENBMzAwQjBDOUQxIC8qIExvYWRhYmxlU2NyaXB0LmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFM0IyRjBFNzFEN0YzNUVDMDBCMEM5RDEgLyogTG9h
ZGFibGVTY3JpcHQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OwpAQCAtMTUwNjUsNiArMTUwNjcsOCBAQAogCQlFMzg4Mzg5NDFCQUQxNDVGMDBENjJFRTMg
LyogU2NyaXB0TW9kdWxlTG9hZGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IFNjcmlwdE1vZHVsZUxvYWRlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCUUzODgzODk1MUJBRDE0NUYwMEQ2MkVFMyAvKiBTY3JpcHRNb2R1bGVMb2FkZXIuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU2NyaXB0TW9kdWxlTG9hZGVyLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUzOEQwNjA5MUY4RTgxMTkwMDY0OUNGMiAvKiBNb2R1
bGVGZXRjaFBhcmFtZXRlcnMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTW9k
dWxlRmV0Y2hQYXJhbWV0ZXJzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUUzOTYy
OEEzMjM4ODkzNUIwMDY1OEVDRCAvKiBTaGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudC5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBTaGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudC5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQlFMzk2MjhBQjIzOTFDNEYzMDA2NThFQ0QgLyogV2ViQ29yZU1v
dGlvbk1hbmFnZXJDbGllbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViQ29yZU1vdGlvbk1hbmFnZXJD
bGllbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTM5NzVCNzYxRUM5QUYzOTAw
ODQ3NzE3IC8qIEpTRG9jdW1lbnRGcmFnbWVudERPTUpJVC5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBKU0RvY3VtZW50RnJhZ21lbnRET01KSVQuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQlFMzk3NUI3NzFFQzlBRjM5MDA4NDc3MTcgLyogSlNFbGVt
ZW50RE9NSklULmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTRWxl
bWVudERPTUpJVC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUzOTc1Qjc4MUVD
OUFGMzkwMDg0NzcxNyAvKiBKU0V2ZW50RE9NSklULmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IEpTRXZlbnRET01KSVQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwpAQCAtMTY2NDIsOCArMTY2NDYsOCBAQAogCQkJCTExNUNBODMwMjMzMjhCMUUwMEZEM0Iw
OCAvKiBMYXlvdXRVbml0cy5jcHAgKi8sCiAJCQkJNkY3MzkxOEMyMTA2Q0VERDAwNkFGMjYyIC8q
IExheW91dFVuaXRzLmggKi8sCiAJCQkJNkZFN0FBMjYyMUMzN0I2MzAwMjk2RENEIC8qIE1hcmdp
blR5cGVzLmggKi8sCi0JCQkJRTRBQkFCREIyMzYwODhGRDAwRkE0MzQ1IC8qIFJlbmRlckJsb2Nr
Rmxvd0xpbmVMYXlvdXQuaCAqLywKIAkJCQlFNEFCQUJERTIzNjA4OTNEMDBGQTQzNDUgLyogUmVu
ZGVyQmxvY2tGbG93TGluZUxheW91dC5jcHAgKi8sCisJCQkJRTRBQkFCREIyMzYwODhGRDAwRkE0
MzQ1IC8qIFJlbmRlckJsb2NrRmxvd0xpbmVMYXlvdXQuaCAqLywKIAkJCQkxMUZGMDJENTIwQkEz
QzgxMDA4M0YyNUIgLyogVmVyaWZpY2F0aW9uLmNwcCAqLywKIAkJCSk7CiAJCQlwYXRoID0gbGF5
b3V0OwpAQCAtMjI4MTAsNiArMjI4MTQsNyBAQAogCQkJCUU0NTM5MDM0MEVBRkQ2MzcwMDM2OTVD
OCAvKiBTY3JvbGxWaWV3SU9TLm1tICovLAogCQkJCUJFQTgwN0M2MEY3MTRBMDMwMDUyNDE5OSAv
KiBTZWxlY3Rpb25SZWN0LmNwcCAqLywKIAkJCQlCRUE4MDdDNzBGNzE0QTAzMDA1MjQxOTkgLyog
U2VsZWN0aW9uUmVjdC5oICovLAorCQkJCUUzOTYyOEEzMjM4ODkzNUIwMDY1OEVDRCAvKiBTaGFy
ZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudC5oICovLAogCQkJCTBGMDNDMDczMTg4NDY5NUUwMEE1
RjhDQSAvKiBTeXN0ZW1NZW1vcnkuaCAqLywKIAkJCQlFNDUzOTBBRDBFQUZGNEI1MDAzNjk1Qzgg
LyogU3lzdGVtTWVtb3J5SU9TLmNwcCAqLywKIAkJCQk0NEM5OTE5RDBGM0QyMTBFMDA1ODY2NzAg
LyogVGhlbWVJT1MuaCAqLywKQEAgLTIyODI2LDYgKzIyODMxLDcgQEAKIAkJCQkxRjM2RUE5QjFF
MjFCQTE3MDA2MjFFMjUgLyogV2ViQmFja2dyb3VuZFRhc2tDb250cm9sbGVyLm1tICovLAogCQkJ
CTMxNDAzNzk3MTI0QkVBN0YwMEFGNDBFNCAvKiBXZWJDb3JlTW90aW9uTWFuYWdlci5oICovLAog
CQkJCTMxNDAzNzk4MTI0QkVBN0YwMEFGNDBFNCAvKiBXZWJDb3JlTW90aW9uTWFuYWdlci5tbSAq
LywKKwkJCQlFMzk2MjhBQjIzOTFDNEYzMDA2NThFQ0QgLyogV2ViQ29yZU1vdGlvbk1hbmFnZXJD
bGllbnQuaCAqLywKIAkJCQlGRTBEODRFODEwNDg0MzQ4MDAxQTE3OUUgLyogV2ViRXZlbnQuaCAq
LywKIAkJCQlGRTBEODRFQTEwNDg0MzZFMDAxQTE3OUUgLyogV2ViRXZlbnQubW0gKi8sCiAJCQkJ
RjQ4MjIzMEYxRTM4NjlCODAwNjZGQzc5IC8qIFdlYkl0ZW1Qcm92aWRlclBhc3RlYm9hcmQuaCAq
LywKQEAgLTI4NzI5LDggKzI4NzM1LDggQEAKIAkJCQlGRkVGQUIyOTE4MzgwREEwMDA1MTQ1MzQg
LyogTGluZUxheW91dFN0YXRlLmggKi8sCiAJCQkJRTQ4NEEzM0QyMzA1NTMwMzAwOUFERTZBIC8q
IExpbmVMYXlvdXRUcmF2ZXJzYWwuY3BwICovLAogCQkJCUU0ODRBMzNCMjMwNTUzMDMwMDlBREU2
QSAvKiBMaW5lTGF5b3V0VHJhdmVyc2FsLmggKi8sCi0JCQkJRTQzNDNEMjEyMzkyNzc4MzAwRUJC
QjY2IC8qIExpbmVMYXlvdXRUcmF2ZXJzYWxTaW1wbGVQYXRoLmggKi8sCiAJCQkJRTQzNDNEMjQy
MzkyNzc4RjAwRUJCQjY2IC8qIExpbmVMYXlvdXRUcmF2ZXJzYWxDb21wbGV4UGF0aC5oICovLAor
CQkJCUU0MzQzRDIxMjM5Mjc3ODMwMEVCQkI2NiAvKiBMaW5lTGF5b3V0VHJhdmVyc2FsU2ltcGxl
UGF0aC5oICovLAogCQkJCUZGREJDMDQ2MTgzRDI3QjcwMDQwNzEwOSAvKiBMaW5lV2lkdGguY3Bw
ICovLAogCQkJCUZGREJDMDQ1MTgzRDI3QjcwMDQwNzEwOSAvKiBMaW5lV2lkdGguaCAqLywKIAkJ
CQlGRkFDMzBGRDE4NEZCMTQ1MDA4QzRGMUUgLyogVHJhaWxpbmdPYmplY3RzLmNwcCAqLywKQEAg
LTMwNTQxLDcgKzMwNTQ3LDYgQEAKIAkJCQk4MzcwNTY5MDFGNTA5MTVDMDBEOTM0MjUgLyogSlNG
aWxlU3lzdGVtRW50cnlDYWxsYmFjay5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODMzQjlFMzYxRjUw
OEQ4NTAwRTBFNDI4IC8qIEpTRmlsZVN5c3RlbUZpbGVFbnRyeS5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJNzEyQkU0ODgxRkU4Njg2QTAwMjAzMUNDIC8qIEpTRmlsbE1vZGUuaCBpbiBIZWFkZXJzICov
LAotCQkJCUU0MzQzRDI1MjM5Mjc3OTAwMEVCQkI2NiAvKiBMaW5lTGF5b3V0VHJhdmVyc2FsQ29t
cGxleFBhdGguaCBpbiBIZWFkZXJzICovLAogCQkJCUI2RDlEMjdCMTRFQUMwODYwMDkwRDc1RSAv
KiBKU0ZvY3VzRXZlbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUMyODA4MzNGMUM2REMyNkYwMDE0
NTFCNiAvKiBKU0ZvbnRGYWNlLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQzI0RUVBOTFDNzJBN0I0
MDA4MEY4RkMgLyogSlNGb250RmFjZVNldC5oIGluIEhlYWRlcnMgKi8sCkBAIC0zMTE5Niw2ICsz
MTIwMSw4IEBACiAJCQkJNkYyNkVCNDgyMzQwMDRBNTAwNjkwNkUyIC8qIExpbmVMYXlvdXRDb250
ZXh0LmggaW4gSGVhZGVycyAqLywKIAkJCQlGRkVGQUIyQTE4MzgwREEwMDA1MTQ1MzQgLyogTGlu
ZUxheW91dFN0YXRlLmggaW4gSGVhZGVycyAqLywKIAkJCQlFNDg0QTMzRTIzMDU1MzI1MDA5QURF
NkEgLyogTGluZUxheW91dFRyYXZlcnNhbC5oIGluIEhlYWRlcnMgKi8sCisJCQkJRTQzNDNEMjUy
MzkyNzc5MDAwRUJCQjY2IC8qIExpbmVMYXlvdXRUcmF2ZXJzYWxDb21wbGV4UGF0aC5oIGluIEhl
YWRlcnMgKi8sCisJCQkJRTQzNDNEMjMyMzkyNzc4NDAwRUJCQjY2IC8qIExpbmVMYXlvdXRUcmF2
ZXJzYWxTaW1wbGVQYXRoLmggaW4gSGVhZGVycyAqLywKIAkJCQlGRkRCQzA0NzE4M0QyN0I3MDA0
MDcxMDkgLyogTGluZVdpZHRoLmggaW4gSGVhZGVycyAqLywKIAkJCQlDQkE5REMwQjFERjQ0REY0
MDAwNTY3NUMgLyogTGlua0hlYWRlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTE0M0IyNjMxRERE
MTUyMDAwMTRGQUM2IC8qIExpbmtJY29uLmggaW4gSGVhZGVycyAqLywKQEAgLTMxNjg5LDcgKzMx
Njk2LDYgQEAKIAkJCQk1N0RDRUQ3NDIxNDMwNUYwMDAxNkI4NDcgLyogUHVibGljS2V5Q3JlZGVu
dGlhbERhdGEuaCBpbiBIZWFkZXJzICovLAogCQkJCTU3MzAzQkVGMjAwOTgwQzYwMDM1NTk2NSAv
KiBQdWJsaWNLZXlDcmVkZW50aWFsRGVzY3JpcHRvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTcz
MDNDMEEyMDA5OUJBRDAwMzU1OTY1IC8qIFB1YmxpY0tleUNyZWRlbnRpYWxSZXF1ZXN0T3B0aW9u
cy5oIGluIEhlYWRlcnMgKi8sCi0JCQkJRTQzNDNEMjMyMzkyNzc4NDAwRUJCQjY2IC8qIExpbmVM
YXlvdXRUcmF2ZXJzYWxTaW1wbGVQYXRoLmggaW4gSGVhZGVycyAqLywKIAkJCQk1NzMwM0JFQjIw
MDk3RjQwMDAzNTU5NjUgLyogUHVibGljS2V5Q3JlZGVudGlhbFR5cGUuaCBpbiBIZWFkZXJzICov
LAogCQkJCTAwODFGRjAwMTZCMEEyRDMwMDhBQUE3QSAvKiBQdWJsaWNTdWZmaXguaCBpbiBIZWFk
ZXJzICovLAogCQkJCTEwRkIwODRCMTRFMTVDN0UwMEEzREI5OCAvKiBQdWJsaWNVUkxNYW5hZ2Vy
LmggaW4gSGVhZGVycyAqLywKQEAgLTMxNzU1LDYgKzMxNzYxLDcgQEAKIAkJCQk3Q0Q0OTRDRDFB
ODZFQjFEMDAwQTg3RUMgLyogUmVuZGVyQXR0YWNobWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
QkNFQTQ4NjAwOTdEOTMwMjAwOTRDOUU0IC8qIFJlbmRlckJsb2NrLmggaW4gSGVhZGVycyAqLywK
IAkJCQlCQzEwRDc2ODE3RDhFRTcxMDA1RTI2MjYgLyogUmVuZGVyQmxvY2tGbG93LmggaW4gSGVh
ZGVycyAqLywKKwkJCQlFNEFCQUJERDIzNjA4OEZFMDBGQTQzNDUgLyogUmVuZGVyQmxvY2tGbG93
TGluZUxheW91dC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkNFQTQ4NjIwOTdEOTMwMjAwOTRDOUU0
IC8qIFJlbmRlckJveC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkNFQjE3OUMxNDMzNzlGNTAwNTJF
QUU5IC8qIFJlbmRlckJveEZyYWdtZW50SW5mby5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkM5NkRC
NDMwRjNBODgwRTAwNTczQ0IzIC8qIFJlbmRlckJveE1vZGVsT2JqZWN0LmggaW4gSGVhZGVycyAq
LywKQEAgLTMyMTQzLDYgKzMyMTUwLDcgQEAKIAkJCQlGRDFBRjE1MDE2NTZGMTUxMDBDNkQ0Rjcg
LyogU2hhcGVWYWx1ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUQ5RjBGQzEyMTIyMDI5QjAwNUQ4
RkQ0IC8qIFNoYXJlRGF0YS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUE0QTk1NEUwQjRFRENDQjAw
MkQ4QzNDIC8qIFNoYXJlZEJ1ZmZlci5oIGluIEhlYWRlcnMgKi8sCisJCQkJRTM5NjI4QTQyMzg4
OTM1QjAwNjU4RUNEIC8qIFNoYXJlZERldmljZU9yaWVudGF0aW9uQ2xpZW50LmggaW4gSGVhZGVy
cyAqLywKIAkJCQk4MzRERkFEMDFGN0RBRTVEMDBDMjcyNUIgLyogU2hhcmVkU3RyaW5nSGFzaC5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJOTMzMDlFQTMwOTlFQjc4QzAwNTZFNTgxIC8qIFNoYXJlZFRp
bWVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk4MzYyRThDMTIwQ0VGOUNCMDAyNDU4ODYgLyogU2hv
dWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkLmggaW4gSGVhZGVycyAqLywKQEAgLTMyNDcwLDcgKzMy
NDc4LDYgQEAKIAkJCQkwODhDMkY3QTEyMzkwMDgxMDAzRDY1Q0UgLyogU1ZHVGV4dExheW91dEF0
dHJpYnV0ZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTA4MTA5M0RDMTI1NUYwRTcwMEVEOUQyOSAv
KiBTVkdUZXh0TGF5b3V0QXR0cmlidXRlc0J1aWxkZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTA4
MTY2OERBMTI1NjAzRDUwMDZGMjVERSAvKiBTVkdUZXh0TGF5b3V0RW5naW5lLmggaW4gSGVhZGVy
cyAqLywKLQkJCQlFNEFCQUJERDIzNjA4OEZFMDBGQTQzNDUgLyogUmVuZGVyQmxvY2tGbG93TGlu
ZUxheW91dC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMDgwRTQ5MjYxMjU1RjNCRDAwRUZDQTI3IC8q
IFNWR1RleHRMYXlvdXRFbmdpbmVCYXNlbGluZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMDgwRTQ5
MjgxMjU1RjNCRDAwRUZDQTI3IC8qIFNWR1RleHRMYXlvdXRFbmdpbmVTcGFjaW5nLmggaW4gSGVh
ZGVycyAqLywKIAkJCQkwOEYwQkZDNjEyNTVDNTNDMDAwNzUxODUgLyogU1ZHVGV4dE1ldHJpY3Mu
aCBpbiBIZWFkZXJzICovLApAQCAtMzI3NjQsNiArMzI3NzEsNyBAQAogCQkJCUJDNTNEOTExMTE0
MzEwQ0MwMDBEODE3RSAvKiBXZWJDb3JlSlNDbGllbnREYXRhLmggaW4gSGVhZGVycyAqLywKIAkJ
CQk5M0YxOTlCQjA4MjQ1RTU5MDAxRTlBQkMgLyogV2ViQ29yZUtleWJvYXJkVUlNb2RlLmggaW4g
SGVhZGVycyAqLywKIAkJCQkzMTQwMzc5QjEyNEJFQTdGMDBBRjQwRTQgLyogV2ViQ29yZU1vdGlv
bk1hbmFnZXIuaCBpbiBIZWFkZXJzICovLAorCQkJCUUzOTYyOEFDMjM5MUM4MTcwMDY1OEVDRCAv
KiBXZWJDb3JlTW90aW9uTWFuYWdlckNsaWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQ0RDOTc5
RjUxQzQ5OEMwOTAwREI1MEQ0IC8qIFdlYkNvcmVOU0Vycm9yRXh0cmFzLmggaW4gSGVhZGVycyAq
LywKIAkJCQlGNEU1N0VFMTIxM0Y0MzRBMDA0RUE5OEUgLyogV2ViQ29yZU5TRm9udE1hbmFnZXJF
eHRyYXMuaCBpbiBIZWFkZXJzICovLAogCQkJCUM1QjRDMjREMTUwOTIzNkMwMEE2RUYzNyAvKiBX
ZWJDb3JlTlNVUkxFeHRyYXMuaCBpbiBIZWFkZXJzICovLApJbmRleDogU291cmNlL1dlYkNvcmUv
ZG9tL0RldmljZU9yaWVudGF0aW9uQ2xpZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvZG9tL0RldmljZU9yaWVudGF0aW9uQ2xpZW50LmgJKHJldmlzaW9uIDI1Mjk2MSkKKysrIFNv
dXJjZS9XZWJDb3JlL2RvbS9EZXZpY2VPcmllbnRhdGlvbkNsaWVudC5oCSh3b3JraW5nIGNvcHkp
CkBAIC0yOCwxMiArMjgsMTQgQEAKIAogI2luY2x1ZGUgIkRldmljZUNsaWVudC5oIgogI2luY2x1
ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgorI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KIAogbmFtZXNw
YWNlIFdlYkNvcmUgewogCiBjbGFzcyBEZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXI7CiBjbGFz
cyBEZXZpY2VPcmllbnRhdGlvbkRhdGE7CiBjbGFzcyBQYWdlOworY2xhc3MgU2hhcmVkRGV2aWNl
T3JpZW50YXRpb25DbGllbnQ7CiAKIGNsYXNzIERldmljZU9yaWVudGF0aW9uQ2xpZW50IDogcHVi
bGljIERldmljZUNsaWVudCB7CiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoRGV2aWNlT3JpZW50
YXRpb25DbGllbnQpOwpAQCAtNDMsNiArNDUsOCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lk
IHNldENvbnRyb2xsZXIoRGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyKikgPSAwOwogICAgIHZp
cnR1YWwgRGV2aWNlT3JpZW50YXRpb25EYXRhKiBsYXN0T3JpZW50YXRpb24oKSBjb25zdCA9IDA7
CiAgICAgdmlydHVhbCB2b2lkIGRldmljZU9yaWVudGF0aW9uQ29udHJvbGxlckRlc3Ryb3llZCgp
ID0gMDsKKyAgICAKKyAgICB2aXJ0dWFsIHZvaWQgc2V0U2hhcmVkRGV2aWNlT3JpZW50YXRpb25D
bGllbnQoUmVmUHRyPFNoYXJlZERldmljZU9yaWVudGF0aW9uQ2xpZW50PikgeyB9OwogfTsKIAog
V0VCQ09SRV9FWFBPUlQgdm9pZCBwcm92aWRlRGV2aWNlT3JpZW50YXRpb25UbyhQYWdlJiwgRGV2
aWNlT3JpZW50YXRpb25DbGllbnQmKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVu
dC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAkocmV2
aXNpb24gMjUyOTYxKQorKysgU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtNjA3LDkgKzYwNywxNSBAQCBEb2N1bWVudDo6RG9jdW1lbnQoRnJhbWUqIGZy
YW1lLCBjb25zdCBVCiAgICAgICAgIG5vZGVMaXN0QW5kQ29sbGVjdGlvbkNvdW50ID0gMDsKIAog
ICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6YWRkRXZlbnRMaXN0ZW5lcnNUb05vZGUoKnRo
aXMpOworICAgIAogI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCiAgICAgbV9zZXR0aW5ncy0+c2V0
TGVnYWN5R2V0VXNlck1lZGlhRW5hYmxlZChxdWlya3MoKS5zaG91bGRFbmFibGVMZWdhY3lHZXRV
c2VyTWVkaWEoKSk7CiAjZW5kaWYKKworI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpICYmIEVOQUJM
RShERVZJQ0VfT1JJRU5UQVRJT04pCisgICAgaWYgKHBhZ2UoKSAmJiBwYWdlKCktPnNoYXJlZERl
dmljZU9yaWVudGF0aW9uQ2xpZW50KCkpCisgICAgICAgIG1fZGV2aWNlT3JpZW50YXRpb25DbGll
bnQtPnNldFNoYXJlZERldmljZU9yaWVudGF0aW9uQ2xpZW50KHBhZ2UoKS0+c2hhcmVkRGV2aWNl
T3JpZW50YXRpb25DbGllbnQoKSk7CisjZW5kaWYKIH0KIAogUmVmPERvY3VtZW50PiBEb2N1bWVu
dDo6Y3JlYXRlKERvY3VtZW50JiBjb250ZXh0RG9jdW1lbnQpCkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9wYWdlL1BhZ2UuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5j
cHAJKHJldmlzaW9uIDI1Mjk2MSkKKysrIFNvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTI4OSw2ICsyODksOSBAQCBQYWdlOjpQYWdlKFBhZ2VDb25maWd1cmF0
aW9uJiYgcGFnZUNvbmZpCiAjaWYgRU5BQkxFKEFQUExJQ0FUSU9OX01BTklGRVNUKQogICAgICwg
bV9hcHBsaWNhdGlvbk1hbmlmZXN0KHBhZ2VDb25maWd1cmF0aW9uLmFwcGxpY2F0aW9uTWFuaWZl
c3QpCiAjZW5kaWYKKyNpZiBFTkFCTEUoREVWSUNFX09SSUVOVEFUSU9OKSAmJiBQTEFURk9STShJ
T1NfRkFNSUxZKQorICAgICwgbV9zaGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudChXVEZNb3Zl
KHBhZ2VDb25maWd1cmF0aW9uLnNoYXJlZERldmljZU9yaWVudGF0aW9uQ2xpZW50KSkKKyNlbmRp
ZgogewogICAgIHVwZGF0ZVRpbWVyVGhyb3R0bGluZ1N0YXRlKCk7CiAKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL3BhZ2UvUGFnZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BhZ2UvUGFn
ZS5oCShyZXZpc2lvbiAyNTI5NjEpCisrKyBTb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuaAkod29y
a2luZyBjb3B5KQpAQCAtNjksNiArNjksMTAgQEAKICNpbmNsdWRlICJNZWRpYVBsYXliYWNrVGFy
Z2V0Q29udGV4dC5oIgogI2VuZGlmCiAKKyNpZiBFTkFCTEUoREVWSUNFX09SSUVOVEFUSU9OKSAm
JiBQTEFURk9STShJT1NfRkFNSUxZKQorI2luY2x1ZGUgIlNoYXJlZERldmljZU9yaWVudGF0aW9u
Q2xpZW50LmgiCisjZW5kaWYKKwogbmFtZXNwYWNlIEpTQyB7CiBjbGFzcyBEZWJ1Z2dlcjsKIH0K
QEAgLTcxOSw2ICs3MjMsMTAgQEAgcHVibGljOgogCiAgICAgV0VCQ09SRV9FWFBPUlQgVmVjdG9y
PFJlZjxFbGVtZW50Pj4gZWRpdGFibGVFbGVtZW50c0luUmVjdChjb25zdCBGbG9hdFJlY3QmKSBj
b25zdDsKIAorI2lmIEVOQUJMRShERVZJQ0VfT1JJRU5UQVRJT04pICYmIFBMQVRGT1JNKElPU19G
QU1JTFkpCisgICAgUmVmUHRyPFNoYXJlZERldmljZU9yaWVudGF0aW9uQ2xpZW50PiBzaGFyZWRE
ZXZpY2VPcmllbnRhdGlvbkNsaWVudCgpIGNvbnN0IHsgcmV0dXJuIG1fc2hhcmVkRGV2aWNlT3Jp
ZW50YXRpb25DbGllbnQ7IH0KKyNlbmRpZgorCiBwcml2YXRlOgogICAgIHN0cnVjdCBOYXZpZ2F0
aW9uIHsKICAgICAgICAgUmVnaXN0cmFibGVEb21haW4gZG9tYWluOwpAQCAtOTkwLDYgKzk5OCwx
MCBAQCBwcml2YXRlOgogCiAgICAgT3B0aW9uYWw8Vmlld3BvcnRBcmd1bWVudHM+IG1fb3ZlcnJp
ZGVWaWV3cG9ydEFyZ3VtZW50czsKIAorI2lmIEVOQUJMRShERVZJQ0VfT1JJRU5UQVRJT04pICYm
IFBMQVRGT1JNKElPU19GQU1JTFkpCisgICAgUmVmUHRyPFNoYXJlZERldmljZU9yaWVudGF0aW9u
Q2xpZW50PiBtX3NoYXJlZERldmljZU9yaWVudGF0aW9uQ2xpZW50OworI2VuZGlmCisKICAgICBi
b29sIG1fc2hvdWxkRW5hYmxlSUNFQ2FuZGlkYXRlRmlsdGVyaW5nQnlEZWZhdWx0IHsgdHJ1ZSB9
OwogICAgIGJvb2wgbV9tZWRpYVBsYXliYWNrSXNTdXNwZW5kZWQgeyBmYWxzZSB9OwogICAgIGJv
b2wgbV9tZWRpYUJ1ZmZlcmluZ0lzU3VzcGVuZGVkIHsgZmFsc2UgfTsKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL3BhZ2UvUGFnZUNvbmZpZ3VyYXRpb24uaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9wYWdlL1BhZ2VDb25maWd1cmF0aW9uLmgJKHJldmlzaW9uIDI1Mjk2MSkKKysrIFNvdXJj
ZS9XZWJDb3JlL3BhZ2UvUGFnZUNvbmZpZ3VyYXRpb24uaAkod29ya2luZyBjb3B5KQpAQCAtNTcs
NiArNTcsNyBAQCBjbGFzcyBQZXJmb3JtYW5jZUxvZ2dpbmdDbGllbnQ7CiBjbGFzcyBQbHVnSW5D
bGllbnQ7CiBjbGFzcyBQbHVnaW5JbmZvUHJvdmlkZXI7CiBjbGFzcyBQcm9ncmVzc1RyYWNrZXJD
bGllbnQ7CitjbGFzcyBTaGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudDsKIGNsYXNzIFNvY2tl
dFByb3ZpZGVyOwogY2xhc3MgU3RvcmFnZU5hbWVzcGFjZVByb3ZpZGVyOwogY2xhc3MgVXNlckNv
bnRlbnRQcm92aWRlcjsKQEAgLTExOCw2ICsxMTksMTAgQEAgcHVibGljOgogICAgIFJlZlB0cjxT
dG9yYWdlTmFtZXNwYWNlUHJvdmlkZXI+IHN0b3JhZ2VOYW1lc3BhY2VQcm92aWRlcjsKICAgICBS
ZWZQdHI8VXNlckNvbnRlbnRQcm92aWRlcj4gdXNlckNvbnRlbnRQcm92aWRlcjsKICAgICBSZWZQ
dHI8VmlzaXRlZExpbmtTdG9yZT4gdmlzaXRlZExpbmtTdG9yZTsKKyAgICAKKyNpZiBFTkFCTEUo
REVWSUNFX09SSUVOVEFUSU9OKSAmJiBQTEFURk9STShJT1NfRkFNSUxZKQorICAgIFJlZlB0cjxT
aGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudD4gc2hhcmVkRGV2aWNlT3JpZW50YXRpb25DbGll
bnQ7CisjZW5kaWYKIH07CiAKIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9E
ZXZpY2VPcmllbnRhdGlvbkNsaWVudElPUy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2lvcy9EZXZpY2VPcmllbnRhdGlvbkNsaWVudElPUy5oCShyZXZpc2lvbiAyNTI5
NjEpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvRGV2aWNlT3JpZW50YXRpb25DbGll
bnRJT1MuaAkod29ya2luZyBjb3B5KQpAQCAtMzAsMTMgKzMwLDE1IEBACiAjaW5jbHVkZSAiRGV2
aWNlT3JpZW50YXRpb25DbGllbnQuaCIKICNpbmNsdWRlICJEZXZpY2VPcmllbnRhdGlvbkNvbnRy
b2xsZXIuaCIKICNpbmNsdWRlICJEZXZpY2VPcmllbnRhdGlvbkRhdGEuaCIKKyNpbmNsdWRlICJT
aGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudC5oIgorI2luY2x1ZGUgIldlYkNvcmVNb3Rpb25N
YW5hZ2VyQ2xpZW50LmgiCiAjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgogCiBPQkpDX0NMQVNTIFdl
YkNvcmVNb3Rpb25NYW5hZ2VyOwogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWNsYXNzIERldmlj
ZU9yaWVudGF0aW9uQ2xpZW50SU9TIDogcHVibGljIERldmljZU9yaWVudGF0aW9uQ2xpZW50IHsK
K2NsYXNzIERldmljZU9yaWVudGF0aW9uQ2xpZW50SU9TIDogcHVibGljIERldmljZU9yaWVudGF0
aW9uQ2xpZW50LCBwdWJsaWMgV2ViQ29yZU1vdGlvbk1hbmFnZXJDbGllbnQgewogcHVibGljOgog
ICAgIERldmljZU9yaWVudGF0aW9uQ2xpZW50SU9TKCk7CiAgICAgfkRldmljZU9yaWVudGF0aW9u
Q2xpZW50SU9TKCkgb3ZlcnJpZGU7CkBAIC00NiwxMiArNDgsMTUgQEAgcHVibGljOgogICAgIERl
dmljZU9yaWVudGF0aW9uRGF0YSogbGFzdE9yaWVudGF0aW9uKCkgY29uc3Qgb3ZlcnJpZGU7CiAg
ICAgdm9pZCBkZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXJEZXN0cm95ZWQoKSBvdmVycmlkZTsK
IAotICAgIHZvaWQgb3JpZW50YXRpb25DaGFuZ2VkKGRvdWJsZSwgZG91YmxlLCBkb3VibGUsIGRv
dWJsZSwgZG91YmxlKTsKKyAgICB2b2lkIG9yaWVudGF0aW9uQ2hhbmdlZChkb3VibGUsIGRvdWJs
ZSwgZG91YmxlLCBkb3VibGUsIGRvdWJsZSkgb3ZlcnJpZGU7CiAKKyAgICB2b2lkIHNldFNoYXJl
ZERldmljZU9yaWVudGF0aW9uQ2xpZW50KFJlZlB0cjxTaGFyZWREZXZpY2VPcmllbnRhdGlvbkNs
aWVudD4gc2hhcmVkRGV2aWNlT3JpZW50YXRpb25DbGllbnQpIG92ZXJyaWRlIHsgbV9zaGFyZWRE
ZXZpY2VPcmllbnRhdGlvbkNsaWVudCA9IHNoYXJlZERldmljZU9yaWVudGF0aW9uQ2xpZW50OyB9
CisgICAgCiBwcml2YXRlOgogICAgIFdlYkNvcmVNb3Rpb25NYW5hZ2VyKiBtX21vdGlvbk1hbmFn
ZXI7CiAgICAgRGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyKiBtX2NvbnRyb2xsZXI7CiAgICAg
UmVmUHRyPERldmljZU9yaWVudGF0aW9uRGF0YT4gbV9jdXJyZW50RGV2aWNlT3JpZW50YXRpb247
CisgICAgUmVmUHRyPFNoYXJlZERldmljZU9yaWVudGF0aW9uQ2xpZW50PiBtX3NoYXJlZERldmlj
ZU9yaWVudGF0aW9uQ2xpZW50OwogICAgIGJvb2wgbV91cGRhdGluZzsKIH07CiAKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9EZXZpY2VPcmllbnRhdGlvbkNsaWVudElPUy5tbQo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvRGV2aWNlT3JpZW50YXRp
b25DbGllbnRJT1MubW0JKHJldmlzaW9uIDI1Mjk2MSkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2lvcy9EZXZpY2VPcmllbnRhdGlvbkNsaWVudElPUy5tbQkod29ya2luZyBjb3B5KQpAQCAt
NTMsNiArNTMsMTEgQEAgdm9pZCBEZXZpY2VPcmllbnRhdGlvbkNsaWVudElPUzo6c3RhcnRVcAog
ewogICAgIG1fdXBkYXRpbmcgPSB0cnVlOwogCisgICAgaWYgKG1fc2hhcmVkRGV2aWNlT3JpZW50
YXRpb25DbGllbnQpIHsKKyAgICAgICAgbV9zaGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudC0+
c3RhcnRVcGRhdGluZygqdGhpcyk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKICAgICBpZiAo
IW1fbW90aW9uTWFuYWdlcikKICAgICAgICAgbV9tb3Rpb25NYW5hZ2VyID0gW1dlYkNvcmVNb3Rp
b25NYW5hZ2VyIHNoYXJlZE1hbmFnZXJdOwogCkBAIC02Myw2ICs2OCwxMSBAQCB2b2lkIERldmlj
ZU9yaWVudGF0aW9uQ2xpZW50SU9TOjpzdG9wVXBkCiB7CiAgICAgbV91cGRhdGluZyA9IGZhbHNl
OwogCisgICAgaWYgKG1fc2hhcmVkRGV2aWNlT3JpZW50YXRpb25DbGllbnQpIHsKKyAgICAgICAg
bV9zaGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudC0+c3RvcFVwZGF0aW5nKCp0aGlzKTsKKyAg
ICAgICAgcmV0dXJuOworICAgIH0KKwogICAgIC8vIFJlbW92ZSBvdXJzZWx2ZXMgYXMgdGhlIG9y
aWVudGF0aW9uIGNsaWVudCBzbyB3ZSB3b24ndCBnZXQgdXBkYXRlcy4KICAgICBbbV9tb3Rpb25N
YW5hZ2VyIHJlbW92ZU9yaWVudGF0aW9uQ2xpZW50OnRoaXNdOwogfQpAQCAtNzQsNiArODQsMTEg
QEAgRGV2aWNlT3JpZW50YXRpb25EYXRhKiBEZXZpY2VPcmllbnRhdGlvbgogCiB2b2lkIERldmlj
ZU9yaWVudGF0aW9uQ2xpZW50SU9TOjpkZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXJEZXN0cm95
ZWQoKQogeworICAgIGlmIChtX3NoYXJlZERldmljZU9yaWVudGF0aW9uQ2xpZW50KSB7CisgICAg
ICAgIG1fc2hhcmVkRGV2aWNlT3JpZW50YXRpb25DbGllbnQtPnN0b3BVcGRhdGluZygqdGhpcyk7
CisgICAgICAgIHJldHVybjsKKyAgICB9CisKICAgICBbbV9tb3Rpb25NYW5hZ2VyIHJlbW92ZU9y
aWVudGF0aW9uQ2xpZW50OnRoaXNdOwogfQogICAgIApJbmRleDogU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vaW9zL1NoYXJlZERldmljZU9yaWVudGF0aW9uQ2xpZW50LmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1NoYXJlZERldmljZU9yaWVudGF0aW9uQ2xpZW50
LmgJKG5vbmV4aXN0ZW50KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1NoYXJlZERl
dmljZU9yaWVudGF0aW9uQ2xpZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw0OSBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAgKiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJ
R0hUIEhPTERFUlMgYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJ
R0hUIE9XTkVSIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVN
RU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKSAmJiBFTkFC
TEUoREVWSUNFX09SSUVOVEFUSU9OKQorCisjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KKwor
bmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBXZWJDb3JlTW90aW9uTWFuYWdlckNsaWVudDsK
KworY2xhc3MgU2hhcmVkRGV2aWNlT3JpZW50YXRpb25DbGllbnQgOiBwdWJsaWMgUmVmQ291bnRl
ZDxTaGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudD4geworcHVibGljOgorICAgIFNoYXJlZERl
dmljZU9yaWVudGF0aW9uQ2xpZW50KCkgeyB9CisgICAgdmlydHVhbCB+U2hhcmVkRGV2aWNlT3Jp
ZW50YXRpb25DbGllbnQoKSB7IH0KKworICAgIHZpcnR1YWwgdm9pZCBzdGFydFVwZGF0aW5nKFdl
YkNvcmVNb3Rpb25NYW5hZ2VyQ2xpZW50JikgeyB9CisgICAgdmlydHVhbCB2b2lkIHN0b3BVcGRh
dGluZyhXZWJDb3JlTW90aW9uTWFuYWdlckNsaWVudCYpIHsgfQorCisgICAgdmlydHVhbCB2b2lk
IGRldmljZU9yaWVudGF0aW9uQ2hhbmdlZChkb3VibGUsIGRvdWJsZSwgZG91YmxlLCBkb3VibGUs
IGRvdWJsZSkgeyB9Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBQ
TEFURk9STShJT1NfRkFNSUxZKSAmJiBFTkFCTEUoREVWSUNFX09SSUVOVEFUSU9OKQpJbmRleDog
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dlYkNvcmVNb3Rpb25NYW5hZ2VyLmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dlYkNvcmVNb3Rpb25NYW5hZ2Vy
LmgJKHJldmlzaW9uIDI1Mjk2MSkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJD
b3JlTW90aW9uTWFuYWdlci5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNSw4ICsyNSw2IEBACiAKICNw
cmFnbWEgb25jZQogCi0jaW1wb3J0ICJEZXZpY2VNb3Rpb25DbGllbnRJT1MuaCIKLSNpbXBvcnQg
IkRldmljZU9yaWVudGF0aW9uQ2xpZW50SU9TLmgiCiAjaW1wb3J0IDxDb3JlTG9jYXRpb24vQ29y
ZUxvY2F0aW9uLmg+CiAjaW1wb3J0IDx3dGYvSGFzaENvdW50ZWRTZXQuaD4KIApAQCAtMzYsMTEg
KzM0LDE2IEBACiAKIGNvbnN0IGZsb2F0IGtNb3Rpb25VcGRhdGVJbnRlcnZhbCA9IDEuMGYgLyA2
MC4wZjsKIAotQGludGVyZmFjZSBXZWJDb3JlTW90aW9uTWFuYWdlciA6IE5TT2JqZWN0IHsKK25h
bWVzcGFjZSBXZWJDb3JlIHsKK2NsYXNzIERldmljZU1vdGlvbkNsaWVudElPUzsKK2NsYXNzIFdl
YkNvcmVNb3Rpb25NYW5hZ2VyQ2xpZW50OworfTsKKworV0VCQ09SRV9FWFBPUlQgQGludGVyZmFj
ZSBXZWJDb3JlTW90aW9uTWFuYWdlciA6IE5TT2JqZWN0IHsKICAgICBDTU1vdGlvbk1hbmFnZXIq
IG1fbW90aW9uTWFuYWdlcjsKICAgICBDTExvY2F0aW9uTWFuYWdlciogbV9sb2NhdGlvbk1hbmFn
ZXI7CiAgICAgSGFzaFNldDxXZWJDb3JlOjpEZXZpY2VNb3Rpb25DbGllbnRJT1MqPiBtX2Rldmlj
ZU1vdGlvbkNsaWVudHM7Ci0gICAgSGFzaFNldDxXZWJDb3JlOjpEZXZpY2VPcmllbnRhdGlvbkNs
aWVudElPUyo+IG1fZGV2aWNlT3JpZW50YXRpb25DbGllbnRzOworICAgIEhhc2hTZXQ8V2ViQ29y
ZTo6V2ViQ29yZU1vdGlvbk1hbmFnZXJDbGllbnQqPiBtX2RldmljZU9yaWVudGF0aW9uQ2xpZW50
czsKICAgICBOU1RpbWVyKiBtX3VwZGF0ZVRpbWVyOwogICAgIEJPT0wgbV9neXJvQXZhaWxhYmxl
OwogICAgIEJPT0wgbV9oZWFkaW5nQXZhaWxhYmxlOwpAQCAtNTAsOCArNTMsOCBAQCBjb25zdCBm
bG9hdCBrTW90aW9uVXBkYXRlSW50ZXJ2YWwgPSAxLjBmCiArIChXZWJDb3JlTW90aW9uTWFuYWdl
ciAqKXNoYXJlZE1hbmFnZXI7CiAtICh2b2lkKWFkZE1vdGlvbkNsaWVudDooV2ViQ29yZTo6RGV2
aWNlTW90aW9uQ2xpZW50SU9TICopY2xpZW50OwogLSAodm9pZClyZW1vdmVNb3Rpb25DbGllbnQ6
KFdlYkNvcmU6OkRldmljZU1vdGlvbkNsaWVudElPUyAqKWNsaWVudDsKLS0gKHZvaWQpYWRkT3Jp
ZW50YXRpb25DbGllbnQ6KFdlYkNvcmU6OkRldmljZU9yaWVudGF0aW9uQ2xpZW50SU9TICopY2xp
ZW50OwotLSAodm9pZClyZW1vdmVPcmllbnRhdGlvbkNsaWVudDooV2ViQ29yZTo6RGV2aWNlT3Jp
ZW50YXRpb25DbGllbnRJT1MgKiljbGllbnQ7CistICh2b2lkKWFkZE9yaWVudGF0aW9uQ2xpZW50
OihXZWJDb3JlOjpXZWJDb3JlTW90aW9uTWFuYWdlckNsaWVudCAqKWNsaWVudDsKKy0gKHZvaWQp
cmVtb3ZlT3JpZW50YXRpb25DbGllbnQ6KFdlYkNvcmU6OldlYkNvcmVNb3Rpb25NYW5hZ2VyQ2xp
ZW50ICopY2xpZW50OwogLSAoQk9PTClneXJvQXZhaWxhYmxlOwogLSAoQk9PTCloZWFkaW5nQXZh
aWxhYmxlOwogQGVuZApJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dlYkNvcmVN
b3Rpb25NYW5hZ2VyLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lv
cy9XZWJDb3JlTW90aW9uTWFuYWdlci5tbQkocmV2aXNpb24gMjUyOTYxKQorKysgU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vaW9zL1dlYkNvcmVNb3Rpb25NYW5hZ2VyLm1tCSh3b3JraW5nIGNvcHkp
CkBAIC0yOCw2ICsyOCw4IEBACiAKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKSAmJiBFTkFCTEUo
REVWSUNFX09SSUVOVEFUSU9OKQogCisjaW1wb3J0ICJEZXZpY2VNb3Rpb25DbGllbnRJT1MuaCIK
KyNpbXBvcnQgIldlYkNvcmVNb3Rpb25NYW5hZ2VyQ2xpZW50LmgiCiAjaW1wb3J0ICJXZWJDb3Jl
T2JqQ0V4dHJhcy5oIgogI2ltcG9ydCAiV2ViQ29yZVRocmVhZFJ1bi5oIgogI2ltcG9ydCA8Q29y
ZUxvY2F0aW9uL0NvcmVMb2NhdGlvbi5oPgpAQCAtMTEyLDE0ICsxMTQsMTQgQEAgLSAodm9pZCly
ZW1vdmVNb3Rpb25DbGllbnQ6KFdlYkNvcmU6OkRldgogICAgICAgICBbc2VsZiBjaGVja0NsaWVu
dFN0YXR1c107CiB9CiAKLS0gKHZvaWQpYWRkT3JpZW50YXRpb25DbGllbnQ6KFdlYkNvcmU6OkRl
dmljZU9yaWVudGF0aW9uQ2xpZW50SU9TICopY2xpZW50CistICh2b2lkKWFkZE9yaWVudGF0aW9u
Q2xpZW50OihXZWJDb3JlOjpXZWJDb3JlTW90aW9uTWFuYWdlckNsaWVudCAqKWNsaWVudAogewog
ICAgIG1fZGV2aWNlT3JpZW50YXRpb25DbGllbnRzLmFkZChjbGllbnQpOwogICAgIGlmIChtX2lu
aXRpYWxpemVkKQogICAgICAgICBbc2VsZiBjaGVja0NsaWVudFN0YXR1c107CiB9CiAKLS0gKHZv
aWQpcmVtb3ZlT3JpZW50YXRpb25DbGllbnQ6KFdlYkNvcmU6OkRldmljZU9yaWVudGF0aW9uQ2xp
ZW50SU9TICopY2xpZW50CistICh2b2lkKXJlbW92ZU9yaWVudGF0aW9uQ2xpZW50OihXZWJDb3Jl
OjpXZWJDb3JlTW90aW9uTWFuYWdlckNsaWVudCAqKWNsaWVudAogewogICAgIG1fZGV2aWNlT3Jp
ZW50YXRpb25DbGllbnRzLnJlbW92ZShjbGllbnQpOwogICAgIGlmIChtX2luaXRpYWxpemVkKQpJ
bmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dlYkNvcmVNb3Rpb25NYW5hZ2VyQ2xp
ZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dlYkNvcmVN
b3Rpb25NYW5hZ2VyQ2xpZW50LmgJKG5vbmV4aXN0ZW50KQorKysgU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vaW9zL1dlYkNvcmVNb3Rpb25NYW5hZ2VyQ2xpZW50LmgJKHdvcmtpbmcgY29weSkKQEAg
LTAsMCArMSwzNyBAQAorLyoKKyogQ29weXJpZ2h0IChDKSAyMDE5IEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyoKKyogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworKiBhcmUgbWV0Ogor
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyoKKyogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworKiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyogVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorKiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRgorKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyogQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkKKyogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRgorKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisq
LworCisjcHJhZ21hIG9uY2UKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBXZWJDb3Jl
TW90aW9uTWFuYWdlckNsaWVudCB7CitwdWJsaWM6CisgICAgdmlydHVhbCB+V2ViQ29yZU1vdGlv
bk1hbmFnZXJDbGllbnQoKSB7IH07CisKKyAgICB2aXJ0dWFsIHZvaWQgb3JpZW50YXRpb25DaGFu
Z2VkKGRvdWJsZSwgZG91YmxlLCBkb3VibGUsIGRvdWJsZSwgZG91YmxlKSB7IH07Cit9OworCit9
OwpJbmRleDogU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YktpdC9DaGFuZ2VMb2cJKHJldmlzaW9uIDI1Mjk2MSkKKysrIFNvdXJjZS9XZWJLaXQvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMzMgQEAKKzIwMTktMTEtMzAgIFBlciBBcm5l
IFZvbGxhbiAgPHB2b2xsYW5AYXBwbGUuY29tPgorCisgICAgICAgIFtpT1NdIENhbGxzIHRvIGRl
dmljZSBvcmllbnRhdGlvbiBBUEkgc2hvdWxkIGJlIGRvbmUgaW4gdGhlIFVJIHByb2Nlc3MKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNDcyMAorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBXZWIgcGFn
ZSBwcm94eSBtZXNzYWdlcyB0byBzdGFydCBhbmQgc3RvcCB1cGRhdGluZyBkZXZpY2Ugb3JpZW50
YXRpb24gaW4gdGhlIFVJIHByb2Nlc3MuIEFsc28sIGFkZCBhIG1lc3NhZ2UgdG8KKyAgICAgICAg
dGhlIFdlYiBwYWdlIHRvIHVwZGF0ZSB0aGUgZGV2aWNlIG9yaWVudGF0aW9uIGluIHRoZSBXZWJD
b250ZW50IHByb2Nlc3MuIEluIHRoZSBVSSBwcm9jZXNzLCB0aGUgZGV2aWNlIG9yaWVudGF0aW9u
IEFQSQorICAgICAgICBpcyBjYWxsZWQgdGhyb3VnaCB0aGUgYWxyZWFkeSBleGlzdGluZyBXZWJD
b3JlTW90aW9uTWFuYWdlciBjbGFzcy4KKworICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJv
eHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9pb3MvV2ViUGFnZVByb3h5SU9TLm1tOgorICAgICAgICAoV2ViS2l0
OjpXZWJQYWdlUHJveHk6OnN0YXJ0VXBkYXRpbmdEZXZpY2VPcmllbnRhdGlvbik6CisgICAgICAg
IChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6c3RvcFVwZGF0aW5nRGV2aWNlT3JpZW50YXRpb24pOgor
ICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6Om9yaWVudGF0aW9uQ2hhbmdlZCk6CisgICAg
ICAgICogV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogV2ViUHJv
Y2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJTaGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudC5jcHA6
IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJTaGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVu
dDo6c3RhcnRVcGRhdGluZyk6CisgICAgICAgIChXZWJLaXQ6OldlYlNoYXJlZERldmljZU9yaWVu
dGF0aW9uQ2xpZW50OjpzdG9wVXBkYXRpbmcpOgorICAgICAgICAoV2ViS2l0OjpXZWJTaGFyZWRE
ZXZpY2VPcmllbnRhdGlvbkNsaWVudDo6ZGV2aWNlT3JpZW50YXRpb25DaGFuZ2VkKToKKyAgICAg
ICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlNoYXJlZERldmljZU9yaWVudGF0aW9u
Q2xpZW50Lmg6IEFkZGVkLgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNw
cDoKKyAgICAgICAgKFdlYktpdDo6bV9vdmVycmlkZGVuTWVkaWFUeXBlKToKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFn
ZS9XZWJQYWdlLm1lc3NhZ2VzLmluOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9pb3Mv
V2ViUGFnZUlPUy5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6ZGV2aWNlT3JpZW50YXRp
b25DaGFuZ2VkKToKKwogMjAxOS0xMS0yNyAgQW50b2luZSBRdWludCAgPGdyYW91dHNAYXBwbGUu
Y29tPgogCiAgICAgICAgIFtXZWIgQW5pbWF0aW9uc10gRW5hYmxlIFdlYkFuaW1hdGlvbnNDU1NJ
bnRlZ3JhdGlvbkVuYWJsZWQgYnkgZGVmYXVsdApJbmRleDogU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2ViUGFnZVByb3h5LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJQYWdlUHJveHkuY3BwCShyZXZpc2lvbiAyNTI5NjEpCisrKyBTb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01MjAsNiArNTIwLDEw
IEBAIFdlYlBhZ2VQcm94eTo6fldlYlBhZ2VQcm94eSgpCiAgICAgbV9wcmVmZXJlbmNlcy0+cmVt
b3ZlUGFnZSgqdGhpcyk7CiAgICAgbV9wYWdlR3JvdXAtPnJlbW92ZVBhZ2UodGhpcyk7CiAKKyNp
ZiBQTEFURk9STShJT1NfRkFNSUxZKSAmJiBFTkFCTEUoREVWSUNFX09SSUVOVEFUSU9OKQorICAg
IHN0b3BVcGRhdGluZ0RldmljZU9yaWVudGF0aW9uKCk7CisjZW5kaWYKKyAgICAKICNpZm5kZWYg
TkRFQlVHCiAgICAgd2ViUGFnZVByb3h5Q291bnRlci5kZWNyZW1lbnQoKTsKICNlbmRpZgpJbmRl
eDogU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgJKHJldmlzaW9uIDI1Mjk2MSkK
KysrIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCSh3b3JraW5nIGNvcHkp
CkBAIC0xNDksNiArMTQ5LDEwIEBAIE9CSkNfQ0xBU1MgX1dLUmVtb3RlT2JqZWN0UmVnaXN0cnk7
CiAjaW5jbHVkZSAiU09BdXRob3JpemF0aW9uTG9hZFBvbGljeS5oIgogI2VuZGlmCiAKKyNpZiBQ
TEFURk9STShJT1NfRkFNSUxZKSAmJiBFTkFCTEUoREVWSUNFX09SSUVOVEFUSU9OKQorI2luY2x1
ZGUgPFdlYkNvcmUvV2ViQ29yZU1vdGlvbk1hbmFnZXJDbGllbnQuaD4KKyNlbmRpZgorCiAjaWYg
RU5BQkxFKE1FRElBX1NFU1NJT04pCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBNZWRpYVNl
c3Npb25NZXRhZGF0YTsKQEAgLTE1OSw2ICsxNjMsMTAgQEAgY2xhc3MgTWVkaWFTZXNzaW9uTWV0
YWRhdGE7CiBpbnRlcmZhY2UgSUQzRDExRGV2aWNlMTsKICNlbmRpZgogCisjaWYgUExBVEZPUk0o
SU9TX0ZBTUlMWSkgJiYgRU5BQkxFKERFVklDRV9PUklFTlRBVElPTikKK09CSkNfQ0xBU1MgV2Vi
Q29yZU1vdGlvbk1hbmFnZXI7CisjZW5kaWYKKwogbmFtZXNwYWNlIEFQSSB7CiBjbGFzcyBBdHRh
Y2htZW50OwogY2xhc3MgQ29udGV4dE1lbnVDbGllbnQ7CkBAIC00MTAsNiArNDE4LDkgQEAgY2xh
c3MgV2ViUGFnZVByb3h5IDogcHVibGljIEFQSTo6T2JqZWN0SQogICAgICwgcHVibGljIFdlYkNv
cmU6OlBsYXRmb3JtU3BlZWNoU3ludGhlc2lzVXR0ZXJhbmNlQ2xpZW50CiAgICAgLCBwdWJsaWMg
V2ViQ29yZTo6UGxhdGZvcm1TcGVlY2hTeW50aGVzaXplckNsaWVudAogI2VuZGlmCisjaWYgUExB
VEZPUk0oSU9TX0ZBTUlMWSkgJiYgRU5BQkxFKERFVklDRV9PUklFTlRBVElPTikKKyAgICAsIHB1
YmxpYyBXZWJDb3JlOjpXZWJDb3JlTW90aW9uTWFuYWdlckNsaWVudAorI2VuZGlmCiAgICAgLCBw
dWJsaWMgQ2FuTWFrZVdlYWtQdHI8V2ViUGFnZVByb3h5PiB7CiBwdWJsaWM6CiAgICAgc3RhdGlj
IFJlZjxXZWJQYWdlUHJveHk+IGNyZWF0ZShQYWdlQ2xpZW50JiwgV2ViUHJvY2Vzc1Byb3h5Jiwg
UmVmPEFQSTo6UGFnZUNvbmZpZ3VyYXRpb24+JiYpOwpAQCAtMTYyNCw2ICsxNjM1LDExIEBAIHB1
YmxpYzoKICAgICBjb25zdCBTdHJpbmcmIG92ZXJyaWRkZW5NZWRpYVR5cGUoKSBjb25zdCB7IHJl
dHVybiBtX292ZXJyaWRkZW5NZWRpYVR5cGU7IH0KICAgICB2b2lkIHNldE92ZXJyaWRkZW5NZWRp
YVR5cGUoY29uc3QgU3RyaW5nJik7CiAKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKSAmJiBFTkFC
TEUoREVWSUNFX09SSUVOVEFUSU9OKQorICAgIHZvaWQgc3RhcnRVcGRhdGluZ0RldmljZU9yaWVu
dGF0aW9uKCk7CisgICAgdm9pZCBzdG9wVXBkYXRpbmdEZXZpY2VPcmllbnRhdGlvbigpOworI2Vu
ZGlmCisKIHByaXZhdGU6CiAgICAgV2ViUGFnZVByb3h5KFBhZ2VDbGllbnQmLCBXZWJQcm9jZXNz
UHJveHkmLCBSZWY8QVBJOjpQYWdlQ29uZmlndXJhdGlvbj4mJik7CiAgICAgdm9pZCBwbGF0Zm9y
bUluaXRpYWxpemUoKTsKQEAgLTIxNjcsNiArMjE4MywxMSBAQCBwcml2YXRlOgogICAgIHZvaWQg
cmVzZXRTcGVlY2hTeW50aGVzaXplcigpOwogI2VuZGlmCiAKKyNpZiBQTEFURk9STShJT1NfRkFN
SUxZKSAmJiBFTkFCTEUoREVWSUNFX09SSUVOVEFUSU9OKQorICAgIC8vIFdlYkNvcmU6OldlYkNv
cmVNb3Rpb25NYW5hZ2VyQ2xpZW50CisgICAgdm9pZCBvcmllbnRhdGlvbkNoYW5nZWQoZG91Ymxl
LCBkb3VibGUsIGRvdWJsZSwgZG91YmxlLCBkb3VibGUpIG92ZXJyaWRlOworI2VuZGlmCisKICNp
ZiBQTEFURk9STShJT1NfRkFNSUxZKQogICAgIHN0YXRpYyBib29sIGlzSW5IYXJkd2FyZUtleWJv
YXJkTW9kZSgpOwogICAgIHZvaWQgY2xlYXJBdWRpYmxlQWN0aXZpdHkoKTsKQEAgLTI2MjQsNiAr
MjY0NSwxMCBAQCBwcml2YXRlOgogICAgIGJvb2wgbV9pc1F1b3RhSW5jcmVhc2VEZW5pZWQgeyBm
YWxzZSB9OwogICAgIAogICAgIFN0cmluZyBtX292ZXJyaWRkZW5NZWRpYVR5cGU7CisKKyNpZiBQ
TEFURk9STShJT1NfRkFNSUxZKSAmJiBFTkFCTEUoREVWSUNFX09SSUVOVEFUSU9OKQorICAgIFdl
YkNvcmVNb3Rpb25NYW5hZ2VyKiBtX21vdGlvbk1hbmFnZXIgeyBudWxscHRyIH07CisjZW5kaWYK
IH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApJbmRleDogU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbgkocmV2aXNpb24gMjUyOTYxKQorKysg
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluCSh3b3JraW5n
IGNvcHkpCkBAIC01ODYsNCArNTg2LDkgQEAgbWVzc2FnZXMgLT4gV2ViUGFnZVByb3h5IHsKIAog
ICAgIERpZEZpbmRUZXh0TWFuaXB1bGF0aW9uSXRlbShXZWJDb3JlOjpUZXh0TWFuaXB1bGF0aW9u
Q29udHJvbGxlcjo6SXRlbUlkZW50aWZpZXIgaXRlbUlELCBWZWN0b3I8V2ViQ29yZTo6VGV4dE1h
bmlwdWxhdGlvbkNvbnRyb2xsZXI6Ok1hbmlwdWxhdGlvblRva2VuPiB0b2tlbnMpCiAKKyNpZiBQ
TEFURk9STShJT1NfRkFNSUxZKSAmJiBFTkFCTEUoREVWSUNFX09SSUVOVEFUSU9OKQorICAgIFN0
YXJ0VXBkYXRpbmdEZXZpY2VPcmllbnRhdGlvbigpOworICAgIFN0b3BVcGRhdGluZ0RldmljZU9y
aWVudGF0aW9uKCk7CisjZW5kaWYKKwogfQpJbmRleDogU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
aW9zL1dlYlBhZ2VQcm94eUlPUy5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9pb3MvV2ViUGFnZVByb3h5SU9TLm1tCShyZXZpc2lvbiAyNTI5NjEpCisrKyBTb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9pb3MvV2ViUGFnZVByb3h5SU9TLm1tCSh3b3JraW5nIGNvcHkpCkBA
IC03NSw2ICs3NSwxMCBAQAogI2ltcG9ydCA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAjZW5kaWYK
IAorI2lmIEVOQUJMRShERVZJQ0VfT1JJRU5UQVRJT04pCisjaW1wb3J0IDxXZWJDb3JlL1dlYkNv
cmVNb3Rpb25NYW5hZ2VyLmg+CisjZW5kaWYKKwogI2RlZmluZSBSRUxFQVNFX0xPR19JRl9BTExP
V0VEKGNoYW5uZWwsIGZtdCwgLi4uKSBSRUxFQVNFX0xPR19JRihpc0Fsd2F5c09uTG9nZ2luZ0Fs
bG93ZWQoKSwgY2hhbm5lbCwgIiVwIC0gW3BhZ2VQcm94eUlEPSVsbHUsIHdlYlBhZ2VJRD0lbGx1
LCBQSUQ9JWldIFdlYlBhZ2VQcm94eTo6IiBmbXQsIHRoaXMsIG1faWRlbnRpZmllci50b1VJbnQ2
NCgpLCBtX3dlYlBhZ2VJRC50b1VJbnQ2NCgpLCBtX3Byb2Nlc3MtPnByb2Nlc3NJZGVudGlmaWVy
KCksICMjX19WQV9BUkdTX18pCiAKIG5hbWVzcGFjZSBXZWJLaXQgewpAQCAtMTQ4Myw2ICsxNDg3
LDI2IEBAIFdlYkNvbnRlbnRNb2RlIFdlYlBhZ2VQcm94eTo6ZWZmZWN0aXZlQ28KICAgICByZXR1
cm4gV2ViQ29udGVudE1vZGU6OkRlc2t0b3A7CiB9CiAKKyNpZiBFTkFCTEUoREVWSUNFX09SSUVO
VEFUSU9OKQordm9pZCBXZWJQYWdlUHJveHk6OnN0YXJ0VXBkYXRpbmdEZXZpY2VPcmllbnRhdGlv
bigpCit7CisgICAgaWYgKCFtX21vdGlvbk1hbmFnZXIpCisgICAgICAgIG1fbW90aW9uTWFuYWdl
ciA9IFtXZWJDb3JlTW90aW9uTWFuYWdlciBzaGFyZWRNYW5hZ2VyXTsKKyAgICBbbV9tb3Rpb25N
YW5hZ2VyIGFkZE9yaWVudGF0aW9uQ2xpZW50OnRoaXNdOworfQorCit2b2lkIFdlYlBhZ2VQcm94
eTo6c3RvcFVwZGF0aW5nRGV2aWNlT3JpZW50YXRpb24oKQoreworICAgIFttX21vdGlvbk1hbmFn
ZXIgcmVtb3ZlT3JpZW50YXRpb25DbGllbnQ6dGhpc107Cit9CisKK3ZvaWQgV2ViUGFnZVByb3h5
OjpvcmllbnRhdGlvbkNoYW5nZWQoZG91YmxlIGFscGhhLCBkb3VibGUgYmV0YSwgZG91YmxlIGdh
bW1hLCBkb3VibGUgY29tcGFzc0hlYWRpbmcsIGRvdWJsZSBjb21wYXNzQWNjdXJhY3kpCit7Cisg
ICAgc2VuZChNZXNzYWdlczo6V2ViUGFnZTo6RGV2aWNlT3JpZW50YXRpb25DaGFuZ2VkKGFscGhh
LCBiZXRhLCBnYW1tYSwgY29tcGFzc0hlYWRpbmcsIGNvbXBhc3NBY2N1cmFjeSksIDApOworfQor
I2VuZGlmCisKKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CiAKICN1bmRlZiBSRUxFQVNFX0xPR19J
Rl9BTExPV0VECkluZGV4OiBTb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oJKHJldmlzaW9uIDI1Mjk2MSkKKysrIFNvdXJjZS9XZWJLaXQvV2ViS2l0Lnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHdvcmtpbmcgY29weSkKQEAgLTE2ODksNiArMTY4OSw3
IEBACiAJCUUxRDI2QTUzMTc1OTY0RDkwMDk1QkZEMSAvKiBXZWJDb250ZW50UHJvY2Vzcy54aWIg
aW4gUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxRDI2QTRD
MTc1OTYzNEUwMDk1QkZEMSAvKiBXZWJDb250ZW50UHJvY2Vzcy54aWIgKi87IH07CiAJCUUxRTU1
MkM1MTZBRTA2NUYwMDRFRDY1MyAvKiBTYW5kYm94SW5pdGlhbGl6YXRpb25QYXJhbWV0ZXJzLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMUU1NTJDMzE2
QUUwNjVFMDA0RUQ2NTMgLyogU2FuZGJveEluaXRpYWxpemF0aW9uUGFyYW1ldGVycy5oICovOyB9
OwogCQlFMUVFNTNFMzExRjhDRkMwMDBDQ0JFRTQgLyogSW5qZWN0ZWRCdW5kbGVQYWdlRWRpdG9y
Q2xpZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBF
MUVFNTNEQzExRjhDRjlGMDBDQ0JFRTQgLyogSW5qZWN0ZWRCdW5kbGVQYWdlRWRpdG9yQ2xpZW50
LmggKi87IH07CisJCUUzOTYyOEFBMjM4OEFCRDgwMDY1OEVDRCAvKiBXZWJTaGFyZWREZXZpY2VP
cmllbnRhdGlvbkNsaWVudC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBFMzk2MjhBOTIzODhBQkQ4MDA2NThFQ0QgLyogV2ViU2hhcmVkRGV2aWNlT3Jp
ZW50YXRpb25DbGllbnQuY3BwICovOyB9OwogCQlFNDEzRjU5RDFBQzFBREM0MDAzNDUzNjAgLyog
TmV0d29ya0NhY2hlRW50cnkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEU0MTNGNTlCMUFDMUFEQjYwMDM0NTM2MCAvKiBOZXR3b3JrQ2FjaGVFbnRyeS5o
ICovOyB9OwogCQlFNDJFMDYxMDFBQTc1MjNCMDBCMTE2OTkgLyogTmV0d29ya0NhY2hlSU9DaGFu
bmVsLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFNDJF
MDYwQjFBQTc0NDBEMDBCMTE2OTkgLyogTmV0d29ya0NhY2hlSU9DaGFubmVsLmggKi87IH07CiAJ
CUU0MkUwNjEyMUFBNzVBQkQwMEIxMTY5OSAvKiBOZXR3b3JrQ2FjaGVEYXRhLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFNDJFMDYxMTFBQTc1QUJEMDBC
MTE2OTkgLyogTmV0d29ya0NhY2hlRGF0YS5oICovOyB9OwpAQCAtNDc0OCw2ICs0NzQ5LDggQEAK
IAkJRTFFRTUzREMxMUY4Q0Y5RjAwQ0NCRUU0IC8qIEluamVjdGVkQnVuZGxlUGFnZUVkaXRvckNs
aWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJbmplY3RlZEJ1bmRsZVBh
Z2VFZGl0b3JDbGllbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTFFRTUzRTYx
MUY4Q0ZGQjAwQ0NCRUU0IC8qIEluamVjdGVkQnVuZGxlUGFnZUVkaXRvckNsaWVudC5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBJbmplY3RlZEJ1bmRsZVBhZ2VFZGl0
b3JDbGllbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFMzQzOUI2MzIzNDU0
NjNBMDAxMURFMEIgLyogTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uSW5mby5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5h
bWUgPSBOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb25JbmZvLmg7IHBhdGggPSBOZXR3b3JrL05ldHdv
cmtQcm9jZXNzQ29ubmVjdGlvbkluZm8uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
RTM5NjI4QTgyMzg4QTVENDAwNjU4RUNEIC8qIFdlYlNoYXJlZERldmljZU9yaWVudGF0aW9uQ2xp
ZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYlNoYXJlZERldmljZU9yaWVudGF0aW9uQ2xpZW50Lmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUUzOTYyOEE5MjM4OEFCRDgwMDY1OEVDRCAv
KiBXZWJTaGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBXZWJTaGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCUU0MDQ5MDcwMjFERTY1RjcwMDM3RjBEQiAvKiBTY3JvbGxlclBhaXJNYWMu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU2Nyb2xsZXJQYWlyTWFjLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUU0MDQ5MDcxMjFERTY1RjcwMDM3RjBEQiAvKiBT
Y3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlUmVtb3RlTWFjLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNjcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVS
ZW1vdGVNYWMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFNDA0OTA3MjIxREU2
NUY3MDAzN0YwREIgLyogU2Nyb2xsZXJQYWlyTWFjLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAub2JqY3BwOyBwYXRoID0gU2Nyb2xsZXJQYWlyTWFjLm1tOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwpAQCAtNTg1NCw2ICs1ODU3LDggQEAKIAkJCQkyRDI4RjNFMzE4ODVDQ0MxMDA0QjlF
QUUgLyogV2ViRnJhbWVMb2FkZXJDbGllbnRJT1MubW0gKi8sCiAJCQkJQTFDNTEyQzYxOTA2NTZF
NTAwNDQ4OTE0IC8qIFdlYlByZXZpZXdMb2FkZXJDbGllbnQuY3BwICovLAogCQkJCUExQzUxMkM3
MTkwNjU2RTUwMDQ0ODkxNCAvKiBXZWJQcmV2aWV3TG9hZGVyQ2xpZW50LmggKi8sCisJCQkJRTM5
NjI4QTkyMzg4QUJEODAwNjU4RUNEIC8qIFdlYlNoYXJlZERldmljZU9yaWVudGF0aW9uQ2xpZW50
LmNwcCAqLywKKwkJCQlFMzk2MjhBODIzODhBNUQ0MDA2NThFQ0QgLyogV2ViU2hhcmVkRGV2aWNl
T3JpZW50YXRpb25DbGllbnQuaCAqLywKIAkJCSk7CiAJCQluYW1lID0gaW9zOwogCQkJc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsKQEAgLTk4MjAsNyArOTgyNSw2IEBACiAJCQkJNTExRjhBN0IxMzhC
NDYwOTAwQTk1RjQ0IC8qIFNlY0l0ZW1TaGltTGlicmFyeS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
RTE4RTY5MEMxNjlCNTYzRjAwOUI2NjcwIC8qIFNlY0l0ZW1TaGltUHJveHkuaCBpbiBIZWFkZXJz
ICovLAogCQkJCUUxOEU2OTE4MTY5QjY2N0IwMDlCNjY3MCAvKiBTZWNJdGVtU2hpbVByb3h5TWVz
c2FnZXMuaCBpbiBIZWFkZXJzICovLAotCQkJCTdBQTc0NkQ1MjM1OTNEODEwMDA5NTA1MCAvKiBT
ZWNJdGVtU1BJLmggaW4gSGVhZGVycyAqLywKIAkJCQk1NzBBQjhGMzIwQUUzQkQ3MDBCOEJFODcg
LyogU2VjS2V5UHJveHlTdG9yZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTE0RDlGNTcxOTExOUQz
NTAwMDA2M0E3IC8qIFNlcnZpY2VzQ29udHJvbGxlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUFG
REU2NUExOTU0QTQyQjAwQzQ4RkZBIC8qIFNlc3Npb25TdGF0ZS5oIGluIEhlYWRlcnMgKi8sCkBA
IC0xMTYxOSw2ICsxMTYyMyw3IEBACiAJCQkJNTFGMDYwRTExNjU0MzE4NTAwRjMyODFGIC8qIFdl
YlJUQ01vbml0b3JNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNTFGMDYw
RTExNjU0MzE4NTAwRjMyODJDIC8qIFdlYlJUQ1Jlc29sdmVyTWVzc2FnZVJlY2VpdmVyLmNwcCBp
biBTb3VyY2VzICovLAogCQkJCTUxRjA2MEUxMTY1NDMxODUwMEYzMjgxQyAvKiBXZWJSVENTb2Nr
ZXRNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJRTM5NjI4QUEyMzg4QUJE
ODAwNjU4RUNEIC8qIFdlYlNoYXJlZERldmljZU9yaWVudGF0aW9uQ2xpZW50LmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCTQxRjA2MEUxMTY1NDMxODUwMEYzMjgxQyAvKiBXZWJTb2NrZXRDaGFubmVs
TWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTVDMEIxNzc5MUU3Qzg4MjEw
MEU5MTIzQyAvKiBXZWJTb2NrZXRTdHJlYW1NZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJNDEyODdENEUyMjVEMUVDQjAwOUEzRTI2IC8qIFdlYlNvY2tldFRhc2tDb2NvYS5t
bSBpbiBTb3VyY2VzICovLApJbmRleDogU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0L1dlYlNoYXJlZERldmljZU9yaWVudGF0aW9uQ2xpZW50LmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViU2hhcmVkRGV2aWNl
T3JpZW50YXRpb25DbGllbnQuY3BwCShub25leGlzdGVudCkKKysrIFNvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJTaGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudC5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw2MCBAQAorLyoKKyogQ29weXJpZ2h0IChDKSAy
MDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyoKKyogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworKiBhcmUgbWV0OgorKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyoKKyogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwor
KiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyogQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUgorKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyogSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4KKyogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorKiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAi
V2ViU2hhcmVkRGV2aWNlT3JpZW50YXRpb25DbGllbnQuaCIKKworI2lmIFBMQVRGT1JNKElPU19G
QU1JTFkpICYmIEVOQUJMRShERVZJQ0VfT1JJRU5UQVRJT04pCisKKyNpbmNsdWRlICJXZWJQYWdl
LmgiCisjaW5jbHVkZSAiV2ViUGFnZVByb3h5TWVzc2FnZXMuaCIKKworI2luY2x1ZGUgPFdlYkNv
cmUvV2ViQ29yZU1vdGlvbk1hbmFnZXJDbGllbnQuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisK
K3ZvaWQgV2ViU2hhcmVkRGV2aWNlT3JpZW50YXRpb25DbGllbnQ6OnN0YXJ0VXBkYXRpbmcoV2Vi
Q29yZTo6V2ViQ29yZU1vdGlvbk1hbmFnZXJDbGllbnQmIGNsaWVudCkKK3sKKyAgICBpZiAobV9j
bGllbnRzLmlzRW1wdHkoKSkKKyAgICAgICAgbV9wYWdlLnNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQ
cm94eTo6U3RhcnRVcGRhdGluZ0RldmljZU9yaWVudGF0aW9uKCkpOworICAgIG1fY2xpZW50cy5h
ZGQoJmNsaWVudCk7Cit9CisKK3ZvaWQgV2ViU2hhcmVkRGV2aWNlT3JpZW50YXRpb25DbGllbnQ6
OnN0b3BVcGRhdGluZyhXZWJDb3JlOjpXZWJDb3JlTW90aW9uTWFuYWdlckNsaWVudCYgY2xpZW50
KQoreworICAgIG1fY2xpZW50cy5yZW1vdmUoJmNsaWVudCk7CisgICAgaWYgKG1fY2xpZW50cy5p
c0VtcHR5KCkpCisgICAgICAgIG1fcGFnZS5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OlN0
b3BVcGRhdGluZ0RldmljZU9yaWVudGF0aW9uKCkpOworfQorCit2b2lkIFdlYlNoYXJlZERldmlj
ZU9yaWVudGF0aW9uQ2xpZW50OjpkZXZpY2VPcmllbnRhdGlvbkNoYW5nZWQoZG91YmxlIGFscGhh
LCBkb3VibGUgYmV0YSwgZG91YmxlIGdhbW1hLCBkb3VibGUgY29tcGFzc0hlYWRpbmcsIGRvdWJs
ZSBjb21wYXNzQWNjdXJhY3kpCit7CisgICAgZm9yIChhdXRvIGNsaWVudCA6IG1fY2xpZW50cykK
KyAgICAgICAgY2xpZW50LT5vcmllbnRhdGlvbkNoYW5nZWQoYWxwaGEsIGJldGEsIGdhbW1hLCBj
b21wYXNzSGVhZGluZywgY29tcGFzc0FjY3VyYWN5KTsKK30KKworfTsKKworI2VuZGlmCkluZGV4
OiBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViU2hhcmVkRGV2aWNl
T3JpZW50YXRpb25DbGllbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvV2ViU2hhcmVkRGV2aWNlT3JpZW50YXRpb25DbGllbnQuaAkobm9u
ZXhpc3RlbnQpCisrKyBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2Vi
U2hhcmVkRGV2aWNlT3JpZW50YXRpb25DbGllbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsx
LDU4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgor
ICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAq
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlIDxXZWJDb3JlL1No
YXJlZERldmljZU9yaWVudGF0aW9uQ2xpZW50Lmg+CisKKyNpbmNsdWRlIDx3dGYvSGFzaFNldC5o
PgorCisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkgJiYgRU5BQkxFKERFVklDRV9PUklFTlRBVElP
TikKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIFdlYlBhZ2U7CisKK2NsYXNzIFdlYlNo
YXJlZERldmljZU9yaWVudGF0aW9uQ2xpZW50IGZpbmFsIDogcHVibGljIFdlYkNvcmU6OlNoYXJl
ZERldmljZU9yaWVudGF0aW9uQ2xpZW50IHsKKyAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsK
K3B1YmxpYzoKKyAgICBXZWJTaGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudChXZWJQYWdlJiBw
YWdlKQorICAgICAgICA6IG1fcGFnZShwYWdlKQorICAgIHsKKyAgICB9CisKKyAgICB2b2lkIHN0
YXJ0VXBkYXRpbmcoV2ViQ29yZTo6V2ViQ29yZU1vdGlvbk1hbmFnZXJDbGllbnQmKSBvdmVycmlk
ZTsKKyAgICB2b2lkIHN0b3BVcGRhdGluZyhXZWJDb3JlOjpXZWJDb3JlTW90aW9uTWFuYWdlckNs
aWVudCYpIG92ZXJyaWRlOworCisgICAgdm9pZCBkZXZpY2VPcmllbnRhdGlvbkNoYW5nZWQoZG91
YmxlLCBkb3VibGUsIGRvdWJsZSwgZG91YmxlLCBkb3VibGUpIG92ZXJyaWRlOworCitwcml2YXRl
OgorICAgIFdlYlBhZ2UmIG1fcGFnZTsKKyAgICBIYXNoU2V0PFdlYkNvcmU6OldlYkNvcmVNb3Rp
b25NYW5hZ2VyQ2xpZW50Kj4gbV9jbGllbnRzOworfTsKKworfQorCisjZW5kaWYKSW5kZXg6IFNv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCShyZXZpc2lvbiAy
NTI5NjEpCisrKyBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtMTIwLDYgKzEyMCw3IEBACiAjaW5jbHVkZSAiV2ViUHJvY2Vzc1By
b3h5TWVzc2FnZXMuaCIKICNpbmNsdWRlICJXZWJQcm9ncmVzc1RyYWNrZXJDbGllbnQuaCIKICNp
bmNsdWRlICJXZWJTZXJ2aWNlV29ya2VyUHJvdmlkZXIuaCIKKyNpbmNsdWRlICJXZWJTaGFyZWRE
ZXZpY2VPcmllbnRhdGlvbkNsaWVudC5oIgogI2luY2x1ZGUgIldlYlNvY2tldFByb3ZpZGVyLmgi
CiAjaW5jbHVkZSAiV2ViU3BlZWNoU3ludGhlc2lzQ2xpZW50LmgiCiAjaW5jbHVkZSAiV2ViU3Rv
cmFnZU5hbWVzcGFjZVByb3ZpZGVyLmgiCkBAIC01MDEsNiArNTAyLDggQEAgV2ViUGFnZTo6V2Vi
UGFnZShQYWdlSWRlbnRpZmllciBwYWdlSUQsIAogI2lmIEVOQUJMRShBUFBMSUNBVElPTl9NQU5J
RkVTVCkKICAgICBwYWdlQ29uZmlndXJhdGlvbi5hcHBsaWNhdGlvbk1hbmlmZXN0ID0gcGFyYW1l
dGVycy5hcHBsaWNhdGlvbk1hbmlmZXN0OwogI2VuZGlmCisgICAgCisgICAgcGFnZUNvbmZpZ3Vy
YXRpb24uc2hhcmVkRGV2aWNlT3JpZW50YXRpb25DbGllbnQgPSBuZXcgV2ViU2hhcmVkRGV2aWNl
T3JpZW50YXRpb25DbGllbnQoKnRoaXMpOwogCiAgICAgbV9wYWdlID0gbWFrZVVuaXF1ZTxQYWdl
PihXVEZNb3ZlKHBhZ2VDb25maWd1cmF0aW9uKSk7CiAKSW5kZXg6IFNvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgJKHJldmlzaW9uIDI1Mjk2MSkKKysrIFNvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAkod29ya2luZyBjb3B5KQpAQCAtMTI0
NCw2ICsxMjQ0LDEwIEBAIHB1YmxpYzoKICAgICBjb25zdCBTdHJpbmcmIG92ZXJyaWRkZW5NZWRp
YVR5cGUoKSBjb25zdCB7IHJldHVybiBtX292ZXJyaWRkZW5NZWRpYVR5cGU7IH0KICAgICB2b2lk
IHNldE92ZXJyaWRkZW5NZWRpYVR5cGUoY29uc3QgU3RyaW5nJik7CiAgICAgCisjaWYgUExBVEZP
Uk0oSU9TX0ZBTUlMWSkgJiYgRU5BQkxFKERFVklDRV9PUklFTlRBVElPTikKKyAgICB2b2lkIGRl
dmljZU9yaWVudGF0aW9uQ2hhbmdlZChkb3VibGUgYWxwaGEsIGRvdWJsZSBiZXRhLCBkb3VibGUg
Z2FtbWEsIGRvdWJsZSBjb21wYXNzSGVhZGluZywgZG91YmxlIGNvbXBhc3NBY2N1cmFjeSk7Cisj
ZW5kaWYKKwogcHJpdmF0ZToKICAgICBXZWJQYWdlKFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCBX
ZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzJiYpOwogCkluZGV4OiBTb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4JKHJldmlzaW9uIDI1
Mjk2MSkKKysrIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2Fn
ZXMuaW4JKHdvcmtpbmcgY29weSkKQEAgLTU4Myw0ICs1ODMsOCBAQCBHZW5lcmF0ZVN5bnRoZXRp
Y0VkaXRpbmdDb21tYW5kKGVudW06dWluCiAgICAgQ29tcGxldGVUZXh0TWFuaXB1bGF0aW9uKFdl
YkNvcmU6OlRleHRNYW5pcHVsYXRpb25Db250cm9sbGVyOjpJdGVtSWRlbnRpZmllciBpdGVtSUQs
IFZlY3RvcjxXZWJDb3JlOjpUZXh0TWFuaXB1bGF0aW9uQ29udHJvbGxlcjo6TWFuaXB1bGF0aW9u
VG9rZW4+IHRva2VucykgLT4gKGVudW06dWludDhfdCBXZWJDb3JlOjpUZXh0TWFuaXB1bGF0aW9u
Q29udHJvbGxlcjo6TWFuaXB1bGF0aW9uUmVzdWx0IHJlc3VsdCkgQXN5bmMKICAgICAKICAgICBT
ZXRPdmVycmlkZGVuTWVkaWFUeXBlKFN0cmluZyBtZWRpYVR5cGUpCisgICAgCisjaWYgUExBVEZP
Uk0oSU9TX0ZBTUlMWSkgJiYgRU5BQkxFKERFVklDRV9PUklFTlRBVElPTikKKyAgICBEZXZpY2VP
cmllbnRhdGlvbkNoYW5nZWQoZG91YmxlIGFscGhhLCBkb3VibGUgYmV0YSwgZG91YmxlIGdhbW1h
LCBkb3VibGUgY29tcGFzc0hlYWRpbmcsIGRvdWJsZSBjb21wYXNzQWNjdXJhY3kpCisjZW5kaWYK
IH0KSW5kZXg6IFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9T
Lm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9X
ZWJQYWdlSU9TLm1tCShyZXZpc2lvbiAyNTI5NjEpCisrKyBTb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbQkod29ya2luZyBjb3B5KQpAQCAtNDA4OCw2ICs0
MDg4LDE0IEBAIHZvaWQgV2ViUGFnZTo6cmVxdWVzdFBhc3N3b3JkRm9yUXVpY2tMb28KIAogI2Vu
ZGlmCiAKKyNpZiBFTkFCTEUoREVWSUNFX09SSUVOVEFUSU9OKQordm9pZCBXZWJQYWdlOjpkZXZp
Y2VPcmllbnRhdGlvbkNoYW5nZWQoZG91YmxlIGFscGhhLCBkb3VibGUgYmV0YSwgZG91YmxlIGdh
bW1hLCBkb3VibGUgY29tcGFzc0hlYWRpbmcsIGRvdWJsZSBjb21wYXNzQWNjdXJhY3kpCit7Cisg
ICAgaWYgKGNvcmVQYWdlKCkgJiYgY29yZVBhZ2UoKS0+c2hhcmVkRGV2aWNlT3JpZW50YXRpb25D
bGllbnQoKSkKKyAgICAgICAgY29yZVBhZ2UoKS0+c2hhcmVkRGV2aWNlT3JpZW50YXRpb25DbGll
bnQoKS0+ZGV2aWNlT3JpZW50YXRpb25DaGFuZ2VkKGFscGhhLCBiZXRhLCBnYW1tYSwgY29tcGFz
c0hlYWRpbmcsIGNvbXBhc3NBY2N1cmFjeSk7Cit9CisjZW5kaWYKKwogfSAvLyBuYW1lc3BhY2Ug
V2ViS2l0CiAKICN1bmRlZiBSRUxFQVNFX0xPR19JRl9BTExPV0VECg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>384561</attachid>
            <date>2019-11-30 17:17:50 -0800</date>
            <delta_ts>2019-11-30 17:26:11 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-204720-20191130171749.patch</filename>
            <type>text/plain</type>
            <size>48029</size>
            <attacher name="Per Arne Vollan">pvollan</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDI1Mjk2MSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDUwIEBACisyMDE5LTExLTMwICBQZXIgQXJu
ZSBWb2xsYW4gIDxwdm9sbGFuQGFwcGxlLmNvbT4KKworICAgICAgICBbaU9TXSBDYWxscyB0byBk
ZXZpY2Ugb3JpZW50YXRpb24gQVBJIHNob3VsZCBiZSBkb25lIGluIHRoZSBVSSBwcm9jZXNzCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDQ3MjAKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGUgZGV2aWNl
IG9yaWVudGF0aW9uIEFQSSBvbiBpT1MgaXMgY29tbXVuaWNhdGluZyB3aXRoIGxvY2F0aW9uZC4g
U2luY2UgbWFjaCBsb29rdXAgdG8gdGhpcyBkYWVtb24KKyAgICAgICAgd2lsbCBiZSBjbG9zZWQs
IHRoZSBjYWxscyB0byB0aGlzIEFQSSBzaG91bGQgYmUgbW92ZWQgZnJvbSB0aGUgV2ViQ29udGVu
dCBwcm9jZXNzIHRvIHRoZSBVSSBwcm9jZXNzLgorICAgICAgICBUaGlzIHBhdGNoIGltcGxlbWVu
dHMgZm9yd2FyZGluZyBvZiB0aGUgZGV2aWNlIG9yaWVudGF0aW9uIHJlcXVlc3RzIHRvIHRoZSBV
SSBwcm9jZXNzIHRocm91Z2ggYSBuZXcKKyAgICAgICAgY2xhc3MsIFNoYXJlZERldmljZU9yaWVu
dGF0aW9uQ2xpZW50LCB3aGljaCBpcyBzdWJjbGFzc2VkIGJ5IFdlYlNoYXJlZERldmljZU9yaWVu
dGF0aW9uQ2xpZW50IGluCisgICAgICAgIG1vZGVybiBXZWJLaXQuIFRoaXMgY2xhc3MgaW1wbGVt
ZW50cyBmb3J3YXJkaW5nIG9mIHRoZSByZXF1ZXN0cyB0byB0aGUgVUkgcHJvY2VzcywgYW5kIHJl
Y2VpdmVzCisgICAgICAgIGRldmljZSBvcmllbnRhdGlvbiB1cGRhdGVzIGZyb20gdGhlIFVJIHBy
b2Nlc3MuIEFuIGluc3RhbmNlIG9mIHRoaXMgY2xhc3Mgd2lsbCBiZSBzaGFyZWQgYnkgYWxsCisg
ICAgICAgIGRldmljZSBvcmllbnRhdGlvbiBjbGllbnRzIG9uIGEgcGFnZSwgYW5kIHBhc3NlZCBh
cyBwYXJ0IG9mIHRoZSBwYWdlIGNvbmZpZ3VyYXRpb24gcGFyYW1ldGVycy4gT24KKyAgICAgICAg
dGhlIFVJIHByb2Nlc3Mgc2lkZSwgdGhlIFdlYiBwYWdlIHByb3h5IGlzIHRha2luZyBjYXJlIG9m
IGNhbGxpbmcgdGhlIGRldmljZSBvcmllbnRhdGlvbiBBUEkgdGhyb3VnaAorICAgICAgICB0aGUg
ZXhpc3RpbmcgV2ViQ29yZU1vdGlvbk1hbmFnZXIgT2JqZWN0aXZlLUMgY2xhc3MuCisKKyAgICAg
ICAgTm8gbmV3IHRlc3RzLCBjb3ZlcmVkIGJ5IGV4aXN0aW5nIHRlc3RzLgorCisgICAgICAgICog
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGRvbS9EZXZpY2VP
cmllbnRhdGlvbkNsaWVudC5oOgorICAgICAgICAoV2ViQ29yZTo6RGV2aWNlT3JpZW50YXRpb25D
bGllbnQ6OnNldFNoYXJlZERldmljZU9yaWVudGF0aW9uQ2xpZW50KToKKyAgICAgICAgKiBkb20v
RG9jdW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6bV91bmRvTWFuYWdlcik6CisgICAgICAg
ICogcGFnZS9QYWdlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Om1fc2hhcmVkRGV2aWNlT3JpZW50
YXRpb25DbGllbnQpOgorICAgICAgICAoV2ViQ29yZTo6bV9hcHBsaWNhdGlvbk1hbmlmZXN0KTog
RGVsZXRlZC4KKyAgICAgICAgKiBwYWdlL1BhZ2UuaDoKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2U6
OnNoYXJlZERldmljZU9yaWVudGF0aW9uQ2xpZW50IGNvbnN0KToKKyAgICAgICAgKiBwYWdlL1Bh
Z2VDb25maWd1cmF0aW9uLmg6CisgICAgICAgICogcGxhdGZvcm0vaW9zL0RldmljZU9yaWVudGF0
aW9uQ2xpZW50SU9TLmg6CisgICAgICAgICogcGxhdGZvcm0vaW9zL0RldmljZU9yaWVudGF0aW9u
Q2xpZW50SU9TLm1tOgorICAgICAgICAoV2ViQ29yZTo6RGV2aWNlT3JpZW50YXRpb25DbGllbnRJ
T1M6OnN0YXJ0VXBkYXRpbmcpOgorICAgICAgICAoV2ViQ29yZTo6RGV2aWNlT3JpZW50YXRpb25D
bGllbnRJT1M6OnN0b3BVcGRhdGluZyk6CisgICAgICAgIChXZWJDb3JlOjpEZXZpY2VPcmllbnRh
dGlvbkNsaWVudElPUzo6ZGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyRGVzdHJveWVkKToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9pb3MvU2hhcmVkRGV2aWNlT3JpZW50YXRpb25DbGllbnQuaDogQWRk
ZWQuCisgICAgICAgIChXZWJDb3JlOjpTaGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudDo6U2hh
cmVkRGV2aWNlT3JpZW50YXRpb25DbGllbnQpOgorICAgICAgICAoV2ViQ29yZTo6U2hhcmVkRGV2
aWNlT3JpZW50YXRpb25DbGllbnQ6On5TaGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudCk6Cisg
ICAgICAgIChXZWJDb3JlOjpTaGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudDo6c3RhcnRVcGRh
dGluZyk6CisgICAgICAgIChXZWJDb3JlOjpTaGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudDo6
c3RvcFVwZGF0aW5nKToKKyAgICAgICAgKFdlYkNvcmU6OlNoYXJlZERldmljZU9yaWVudGF0aW9u
Q2xpZW50OjpkZXZpY2VPcmllbnRhdGlvbkNoYW5nZWQpOgorICAgICAgICAqIHBsYXRmb3JtL2lv
cy9XZWJDb3JlTW90aW9uTWFuYWdlci5oOgorICAgICAgICAqIHBsYXRmb3JtL2lvcy9XZWJDb3Jl
TW90aW9uTWFuYWdlci5tbToKKyAgICAgICAgKC1bV2ViQ29yZU1vdGlvbk1hbmFnZXIgYWRkT3Jp
ZW50YXRpb25DbGllbnQ6XSk6CisgICAgICAgICgtW1dlYkNvcmVNb3Rpb25NYW5hZ2VyIHJlbW92
ZU9yaWVudGF0aW9uQ2xpZW50Ol0pOgorICAgICAgICAqIHBsYXRmb3JtL2lvcy9XZWJDb3JlTW90
aW9uTWFuYWdlckNsaWVudC5oOgorCiAyMDE5LTExLTMwICB5b3Vlbm4gZmFibGV0ICA8eW91ZW5u
QGFwcGxlLmNvbT4KIAogICAgICAgICBTaW1wbGlmeSBDb3JlQXVkaW9DYXB0dXJlU291cmNlIHN1
c3BlbnNpb24gbG9naWMKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvago9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oJKHJldmlzaW9uIDI1Mjk2MSkKKysrIFNvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkod29ya2luZyBjb3B5KQpAQCAtOTA3
LDcgKzkwNyw3IEBACiAJCTMxMzU5MTBBMUU3RERDNzMwMEYzMDYzMCAvKiBSVENTZHBUeXBlLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzMTM1OTEwNDFF
N0REQzYwMDBGMzA2MzAgLyogUlRDU2RwVHlwZS5oICovOyB9OwogCQkzMTM1OTEwQjFFN0REQzcz
MDBGMzA2MzAgLyogUlRDU2lnbmFsaW5nU3RhdGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMxMzU5MTA1MUU3RERDNjAwMEYzMDYzMCAvKiBSVENTaWdu
YWxpbmdTdGF0ZS5oICovOyB9OwogCQkzMTNCQ0UxQzIzNUUzQkU1MDBGQzM5RTUgLyogRWxlbWVu
dENvbnRleHQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDMxM0JDRTFCMjM1RTNCREIwMEZDMzlFNSAvKiBFbGVtZW50Q29udGV4dC5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07Ci0JCTMxNDAzNzlCMTI0QkVBN0Yw
MEFGNDBFNCAvKiBXZWJDb3JlTW90aW9uTWFuYWdlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzE0MDM3OTcxMjRCRUE3RjAwQUY0MEU0IC8qIFdlYkNv
cmVNb3Rpb25NYW5hZ2VyLmggKi87IH07CisJCTMxNDAzNzlCMTI0QkVBN0YwMEFGNDBFNCAvKiBX
ZWJDb3JlTW90aW9uTWFuYWdlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gMzE0MDM3OTcxMjRCRUE3RjAwQUY0MEU0IC8qIFdlYkNvcmVNb3Rpb25NYW5h
Z2VyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJ
MzE0MDM3OUQxMjRCRUE3RjAwQUY0MEU0IC8qIERldmljZU9yaWVudGF0aW9uQ2xpZW50SU9TLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzMTQwMzc5OTEy
NEJFQTdGMDBBRjQwRTQgLyogRGV2aWNlT3JpZW50YXRpb25DbGllbnRJT1MuaCAqLzsgfTsKIAkJ
MzE0MEM1MjAxRkRGMTUxQTAwRDJBODczIC8qIE9mZnNjcmVlbkNhbnZhc1JlbmRlcmluZ0NvbnRl
eHQyRC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzE0
MEM1MUUxRkRGMTUxQTAwRDJBODczIC8qIE9mZnNjcmVlbkNhbnZhc1JlbmRlcmluZ0NvbnRleHQy
RC5oICovOyB9OwogCQkzMTQwQzUyNDFGREYzMTg3MDBEMkE4NzMgLyogQ2FudmFzUmVuZGVyaW5n
Q29udGV4dDJEQmFzZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMzE0MEM1MjIxRkRGMzE4NjAwRDJBODczIC8qIENhbnZhc1JlbmRlcmluZ0NvbnRleHQy
REJhc2UuaCAqLzsgfTsKQEAgLTQ3NzYsNiArNDc3Niw4IEBACiAJCUUzNTgwMkI2MURDODQzNUQw
MEE5NzczQyAvKiBET01KSVRJRExUeXBlRmlsdGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMzU4MDJCNTFEQzg0MzU4MDBBOTc3M0MgLyogRE9NSklU
SURMVHlwZUZpbHRlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CiAJCUUzNzdGRTREMURBREUxNjUwMENERDAyNSAvKiBOb2RlQ29uc3RhbnRzLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFM0QwNDk5MzFEQURD
MDQ1MDA3MThGM0MgLyogTm9kZUNvbnN0YW50cy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07CiAJCUUzN0M4NjUwMUVCNjNFM0YwMDg3QzZDQSAvKiBKU0RP
TVByb21pc2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEUzN0M4NjRGMUVCNjNFMkQwMDg3QzZDQSAvKiBKU0RPTVByb21pc2UuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQlFMzk2MjhBNDIzODg5MzVCMDA2
NThFQ0QgLyogU2hhcmVkRGV2aWNlT3JpZW50YXRpb25DbGllbnQuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUzOTYyOEEzMjM4ODkzNUIwMDY1OEVDRCAv
KiBTaGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJV
VEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCUUzOTYyOEFDMjM5MUM4MTcwMDY1OEVDRCAvKiBX
ZWJDb3JlTW90aW9uTWFuYWdlckNsaWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gRTM5NjI4QUIyMzkxQzRGMzAwNjU4RUNEIC8qIFdlYkNvcmVNb3Rp
b25NYW5hZ2VyQ2xpZW50LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKIAkJRTNBNzc2NjcxREM4NUQyODAwQjY5MEQ4IC8qIERPTUpJVElETENvbnZlcnQu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUzQTc3NjY1
MURDODVEMjIwMEI2OTBEOCAvKiBET01KSVRJRExDb252ZXJ0LmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJRTNBNzc2NjgxREM4NUQyODAwQjY5MEQ4
IC8qIERPTUpJVElETFR5cGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEUzQTc3NjY2MURDODVEMjIwMEI2OTBEOCAvKiBET01KSVRJRExUeXBlLmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJRTNCMkYwRUQx
RDdGNENBMzAwQjBDOUQxIC8qIExvYWRhYmxlU2NyaXB0LmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFM0IyRjBFNzFEN0YzNUVDMDBCMEM5RDEgLyogTG9h
ZGFibGVTY3JpcHQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OwpAQCAtMTUwNjUsNiArMTUwNjcsOCBAQAogCQlFMzg4Mzg5NDFCQUQxNDVGMDBENjJFRTMg
LyogU2NyaXB0TW9kdWxlTG9hZGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IFNjcmlwdE1vZHVsZUxvYWRlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCUUzODgzODk1MUJBRDE0NUYwMEQ2MkVFMyAvKiBTY3JpcHRNb2R1bGVMb2FkZXIuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU2NyaXB0TW9kdWxlTG9hZGVyLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUzOEQwNjA5MUY4RTgxMTkwMDY0OUNGMiAvKiBNb2R1
bGVGZXRjaFBhcmFtZXRlcnMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTW9k
dWxlRmV0Y2hQYXJhbWV0ZXJzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUUzOTYy
OEEzMjM4ODkzNUIwMDY1OEVDRCAvKiBTaGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudC5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBTaGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudC5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQlFMzk2MjhBQjIzOTFDNEYzMDA2NThFQ0QgLyogV2ViQ29yZU1v
dGlvbk1hbmFnZXJDbGllbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViQ29yZU1vdGlvbk1hbmFnZXJD
bGllbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTM5NzVCNzYxRUM5QUYzOTAw
ODQ3NzE3IC8qIEpTRG9jdW1lbnRGcmFnbWVudERPTUpJVC5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBKU0RvY3VtZW50RnJhZ21lbnRET01KSVQuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQlFMzk3NUI3NzFFQzlBRjM5MDA4NDc3MTcgLyogSlNFbGVt
ZW50RE9NSklULmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTRWxl
bWVudERPTUpJVC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUzOTc1Qjc4MUVD
OUFGMzkwMDg0NzcxNyAvKiBKU0V2ZW50RE9NSklULmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IEpTRXZlbnRET01KSVQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwpAQCAtMTY2NDIsOCArMTY2NDYsOCBAQAogCQkJCTExNUNBODMwMjMzMjhCMUUwMEZEM0Iw
OCAvKiBMYXlvdXRVbml0cy5jcHAgKi8sCiAJCQkJNkY3MzkxOEMyMTA2Q0VERDAwNkFGMjYyIC8q
IExheW91dFVuaXRzLmggKi8sCiAJCQkJNkZFN0FBMjYyMUMzN0I2MzAwMjk2RENEIC8qIE1hcmdp
blR5cGVzLmggKi8sCi0JCQkJRTRBQkFCREIyMzYwODhGRDAwRkE0MzQ1IC8qIFJlbmRlckJsb2Nr
Rmxvd0xpbmVMYXlvdXQuaCAqLywKIAkJCQlFNEFCQUJERTIzNjA4OTNEMDBGQTQzNDUgLyogUmVu
ZGVyQmxvY2tGbG93TGluZUxheW91dC5jcHAgKi8sCisJCQkJRTRBQkFCREIyMzYwODhGRDAwRkE0
MzQ1IC8qIFJlbmRlckJsb2NrRmxvd0xpbmVMYXlvdXQuaCAqLywKIAkJCQkxMUZGMDJENTIwQkEz
QzgxMDA4M0YyNUIgLyogVmVyaWZpY2F0aW9uLmNwcCAqLywKIAkJCSk7CiAJCQlwYXRoID0gbGF5
b3V0OwpAQCAtMjI4MTAsNiArMjI4MTQsNyBAQAogCQkJCUU0NTM5MDM0MEVBRkQ2MzcwMDM2OTVD
OCAvKiBTY3JvbGxWaWV3SU9TLm1tICovLAogCQkJCUJFQTgwN0M2MEY3MTRBMDMwMDUyNDE5OSAv
KiBTZWxlY3Rpb25SZWN0LmNwcCAqLywKIAkJCQlCRUE4MDdDNzBGNzE0QTAzMDA1MjQxOTkgLyog
U2VsZWN0aW9uUmVjdC5oICovLAorCQkJCUUzOTYyOEEzMjM4ODkzNUIwMDY1OEVDRCAvKiBTaGFy
ZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudC5oICovLAogCQkJCTBGMDNDMDczMTg4NDY5NUUwMEE1
RjhDQSAvKiBTeXN0ZW1NZW1vcnkuaCAqLywKIAkJCQlFNDUzOTBBRDBFQUZGNEI1MDAzNjk1Qzgg
LyogU3lzdGVtTWVtb3J5SU9TLmNwcCAqLywKIAkJCQk0NEM5OTE5RDBGM0QyMTBFMDA1ODY2NzAg
LyogVGhlbWVJT1MuaCAqLywKQEAgLTIyODI2LDYgKzIyODMxLDcgQEAKIAkJCQkxRjM2RUE5QjFF
MjFCQTE3MDA2MjFFMjUgLyogV2ViQmFja2dyb3VuZFRhc2tDb250cm9sbGVyLm1tICovLAogCQkJ
CTMxNDAzNzk3MTI0QkVBN0YwMEFGNDBFNCAvKiBXZWJDb3JlTW90aW9uTWFuYWdlci5oICovLAog
CQkJCTMxNDAzNzk4MTI0QkVBN0YwMEFGNDBFNCAvKiBXZWJDb3JlTW90aW9uTWFuYWdlci5tbSAq
LywKKwkJCQlFMzk2MjhBQjIzOTFDNEYzMDA2NThFQ0QgLyogV2ViQ29yZU1vdGlvbk1hbmFnZXJD
bGllbnQuaCAqLywKIAkJCQlGRTBEODRFODEwNDg0MzQ4MDAxQTE3OUUgLyogV2ViRXZlbnQuaCAq
LywKIAkJCQlGRTBEODRFQTEwNDg0MzZFMDAxQTE3OUUgLyogV2ViRXZlbnQubW0gKi8sCiAJCQkJ
RjQ4MjIzMEYxRTM4NjlCODAwNjZGQzc5IC8qIFdlYkl0ZW1Qcm92aWRlclBhc3RlYm9hcmQuaCAq
LywKQEAgLTI4NzI5LDggKzI4NzM1LDggQEAKIAkJCQlGRkVGQUIyOTE4MzgwREEwMDA1MTQ1MzQg
LyogTGluZUxheW91dFN0YXRlLmggKi8sCiAJCQkJRTQ4NEEzM0QyMzA1NTMwMzAwOUFERTZBIC8q
IExpbmVMYXlvdXRUcmF2ZXJzYWwuY3BwICovLAogCQkJCUU0ODRBMzNCMjMwNTUzMDMwMDlBREU2
QSAvKiBMaW5lTGF5b3V0VHJhdmVyc2FsLmggKi8sCi0JCQkJRTQzNDNEMjEyMzkyNzc4MzAwRUJC
QjY2IC8qIExpbmVMYXlvdXRUcmF2ZXJzYWxTaW1wbGVQYXRoLmggKi8sCiAJCQkJRTQzNDNEMjQy
MzkyNzc4RjAwRUJCQjY2IC8qIExpbmVMYXlvdXRUcmF2ZXJzYWxDb21wbGV4UGF0aC5oICovLAor
CQkJCUU0MzQzRDIxMjM5Mjc3ODMwMEVCQkI2NiAvKiBMaW5lTGF5b3V0VHJhdmVyc2FsU2ltcGxl
UGF0aC5oICovLAogCQkJCUZGREJDMDQ2MTgzRDI3QjcwMDQwNzEwOSAvKiBMaW5lV2lkdGguY3Bw
ICovLAogCQkJCUZGREJDMDQ1MTgzRDI3QjcwMDQwNzEwOSAvKiBMaW5lV2lkdGguaCAqLywKIAkJ
CQlGRkFDMzBGRDE4NEZCMTQ1MDA4QzRGMUUgLyogVHJhaWxpbmdPYmplY3RzLmNwcCAqLywKQEAg
LTMwNTQxLDcgKzMwNTQ3LDYgQEAKIAkJCQk4MzcwNTY5MDFGNTA5MTVDMDBEOTM0MjUgLyogSlNG
aWxlU3lzdGVtRW50cnlDYWxsYmFjay5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODMzQjlFMzYxRjUw
OEQ4NTAwRTBFNDI4IC8qIEpTRmlsZVN5c3RlbUZpbGVFbnRyeS5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJNzEyQkU0ODgxRkU4Njg2QTAwMjAzMUNDIC8qIEpTRmlsbE1vZGUuaCBpbiBIZWFkZXJzICov
LAotCQkJCUU0MzQzRDI1MjM5Mjc3OTAwMEVCQkI2NiAvKiBMaW5lTGF5b3V0VHJhdmVyc2FsQ29t
cGxleFBhdGguaCBpbiBIZWFkZXJzICovLAogCQkJCUI2RDlEMjdCMTRFQUMwODYwMDkwRDc1RSAv
KiBKU0ZvY3VzRXZlbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUMyODA4MzNGMUM2REMyNkYwMDE0
NTFCNiAvKiBKU0ZvbnRGYWNlLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQzI0RUVBOTFDNzJBN0I0
MDA4MEY4RkMgLyogSlNGb250RmFjZVNldC5oIGluIEhlYWRlcnMgKi8sCkBAIC0zMTE5Niw2ICsz
MTIwMSw4IEBACiAJCQkJNkYyNkVCNDgyMzQwMDRBNTAwNjkwNkUyIC8qIExpbmVMYXlvdXRDb250
ZXh0LmggaW4gSGVhZGVycyAqLywKIAkJCQlGRkVGQUIyQTE4MzgwREEwMDA1MTQ1MzQgLyogTGlu
ZUxheW91dFN0YXRlLmggaW4gSGVhZGVycyAqLywKIAkJCQlFNDg0QTMzRTIzMDU1MzI1MDA5QURF
NkEgLyogTGluZUxheW91dFRyYXZlcnNhbC5oIGluIEhlYWRlcnMgKi8sCisJCQkJRTQzNDNEMjUy
MzkyNzc5MDAwRUJCQjY2IC8qIExpbmVMYXlvdXRUcmF2ZXJzYWxDb21wbGV4UGF0aC5oIGluIEhl
YWRlcnMgKi8sCisJCQkJRTQzNDNEMjMyMzkyNzc4NDAwRUJCQjY2IC8qIExpbmVMYXlvdXRUcmF2
ZXJzYWxTaW1wbGVQYXRoLmggaW4gSGVhZGVycyAqLywKIAkJCQlGRkRCQzA0NzE4M0QyN0I3MDA0
MDcxMDkgLyogTGluZVdpZHRoLmggaW4gSGVhZGVycyAqLywKIAkJCQlDQkE5REMwQjFERjQ0REY0
MDAwNTY3NUMgLyogTGlua0hlYWRlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTE0M0IyNjMxRERE
MTUyMDAwMTRGQUM2IC8qIExpbmtJY29uLmggaW4gSGVhZGVycyAqLywKQEAgLTMxNjg5LDcgKzMx
Njk2LDYgQEAKIAkJCQk1N0RDRUQ3NDIxNDMwNUYwMDAxNkI4NDcgLyogUHVibGljS2V5Q3JlZGVu
dGlhbERhdGEuaCBpbiBIZWFkZXJzICovLAogCQkJCTU3MzAzQkVGMjAwOTgwQzYwMDM1NTk2NSAv
KiBQdWJsaWNLZXlDcmVkZW50aWFsRGVzY3JpcHRvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTcz
MDNDMEEyMDA5OUJBRDAwMzU1OTY1IC8qIFB1YmxpY0tleUNyZWRlbnRpYWxSZXF1ZXN0T3B0aW9u
cy5oIGluIEhlYWRlcnMgKi8sCi0JCQkJRTQzNDNEMjMyMzkyNzc4NDAwRUJCQjY2IC8qIExpbmVM
YXlvdXRUcmF2ZXJzYWxTaW1wbGVQYXRoLmggaW4gSGVhZGVycyAqLywKIAkJCQk1NzMwM0JFQjIw
MDk3RjQwMDAzNTU5NjUgLyogUHVibGljS2V5Q3JlZGVudGlhbFR5cGUuaCBpbiBIZWFkZXJzICov
LAogCQkJCTAwODFGRjAwMTZCMEEyRDMwMDhBQUE3QSAvKiBQdWJsaWNTdWZmaXguaCBpbiBIZWFk
ZXJzICovLAogCQkJCTEwRkIwODRCMTRFMTVDN0UwMEEzREI5OCAvKiBQdWJsaWNVUkxNYW5hZ2Vy
LmggaW4gSGVhZGVycyAqLywKQEAgLTMxNzU1LDYgKzMxNzYxLDcgQEAKIAkJCQk3Q0Q0OTRDRDFB
ODZFQjFEMDAwQTg3RUMgLyogUmVuZGVyQXR0YWNobWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
QkNFQTQ4NjAwOTdEOTMwMjAwOTRDOUU0IC8qIFJlbmRlckJsb2NrLmggaW4gSGVhZGVycyAqLywK
IAkJCQlCQzEwRDc2ODE3RDhFRTcxMDA1RTI2MjYgLyogUmVuZGVyQmxvY2tGbG93LmggaW4gSGVh
ZGVycyAqLywKKwkJCQlFNEFCQUJERDIzNjA4OEZFMDBGQTQzNDUgLyogUmVuZGVyQmxvY2tGbG93
TGluZUxheW91dC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkNFQTQ4NjIwOTdEOTMwMjAwOTRDOUU0
IC8qIFJlbmRlckJveC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkNFQjE3OUMxNDMzNzlGNTAwNTJF
QUU5IC8qIFJlbmRlckJveEZyYWdtZW50SW5mby5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkM5NkRC
NDMwRjNBODgwRTAwNTczQ0IzIC8qIFJlbmRlckJveE1vZGVsT2JqZWN0LmggaW4gSGVhZGVycyAq
LywKQEAgLTMyMTQzLDYgKzMyMTUwLDcgQEAKIAkJCQlGRDFBRjE1MDE2NTZGMTUxMDBDNkQ0Rjcg
LyogU2hhcGVWYWx1ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUQ5RjBGQzEyMTIyMDI5QjAwNUQ4
RkQ0IC8qIFNoYXJlRGF0YS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUE0QTk1NEUwQjRFRENDQjAw
MkQ4QzNDIC8qIFNoYXJlZEJ1ZmZlci5oIGluIEhlYWRlcnMgKi8sCisJCQkJRTM5NjI4QTQyMzg4
OTM1QjAwNjU4RUNEIC8qIFNoYXJlZERldmljZU9yaWVudGF0aW9uQ2xpZW50LmggaW4gSGVhZGVy
cyAqLywKIAkJCQk4MzRERkFEMDFGN0RBRTVEMDBDMjcyNUIgLyogU2hhcmVkU3RyaW5nSGFzaC5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJOTMzMDlFQTMwOTlFQjc4QzAwNTZFNTgxIC8qIFNoYXJlZFRp
bWVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk4MzYyRThDMTIwQ0VGOUNCMDAyNDU4ODYgLyogU2hv
dWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkLmggaW4gSGVhZGVycyAqLywKQEAgLTMyNDcwLDcgKzMy
NDc4LDYgQEAKIAkJCQkwODhDMkY3QTEyMzkwMDgxMDAzRDY1Q0UgLyogU1ZHVGV4dExheW91dEF0
dHJpYnV0ZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTA4MTA5M0RDMTI1NUYwRTcwMEVEOUQyOSAv
KiBTVkdUZXh0TGF5b3V0QXR0cmlidXRlc0J1aWxkZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTA4
MTY2OERBMTI1NjAzRDUwMDZGMjVERSAvKiBTVkdUZXh0TGF5b3V0RW5naW5lLmggaW4gSGVhZGVy
cyAqLywKLQkJCQlFNEFCQUJERDIzNjA4OEZFMDBGQTQzNDUgLyogUmVuZGVyQmxvY2tGbG93TGlu
ZUxheW91dC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMDgwRTQ5MjYxMjU1RjNCRDAwRUZDQTI3IC8q
IFNWR1RleHRMYXlvdXRFbmdpbmVCYXNlbGluZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMDgwRTQ5
MjgxMjU1RjNCRDAwRUZDQTI3IC8qIFNWR1RleHRMYXlvdXRFbmdpbmVTcGFjaW5nLmggaW4gSGVh
ZGVycyAqLywKIAkJCQkwOEYwQkZDNjEyNTVDNTNDMDAwNzUxODUgLyogU1ZHVGV4dE1ldHJpY3Mu
aCBpbiBIZWFkZXJzICovLApAQCAtMzI3NjQsNiArMzI3NzEsNyBAQAogCQkJCUJDNTNEOTExMTE0
MzEwQ0MwMDBEODE3RSAvKiBXZWJDb3JlSlNDbGllbnREYXRhLmggaW4gSGVhZGVycyAqLywKIAkJ
CQk5M0YxOTlCQjA4MjQ1RTU5MDAxRTlBQkMgLyogV2ViQ29yZUtleWJvYXJkVUlNb2RlLmggaW4g
SGVhZGVycyAqLywKIAkJCQkzMTQwMzc5QjEyNEJFQTdGMDBBRjQwRTQgLyogV2ViQ29yZU1vdGlv
bk1hbmFnZXIuaCBpbiBIZWFkZXJzICovLAorCQkJCUUzOTYyOEFDMjM5MUM4MTcwMDY1OEVDRCAv
KiBXZWJDb3JlTW90aW9uTWFuYWdlckNsaWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQ0RDOTc5
RjUxQzQ5OEMwOTAwREI1MEQ0IC8qIFdlYkNvcmVOU0Vycm9yRXh0cmFzLmggaW4gSGVhZGVycyAq
LywKIAkJCQlGNEU1N0VFMTIxM0Y0MzRBMDA0RUE5OEUgLyogV2ViQ29yZU5TRm9udE1hbmFnZXJF
eHRyYXMuaCBpbiBIZWFkZXJzICovLAogCQkJCUM1QjRDMjREMTUwOTIzNkMwMEE2RUYzNyAvKiBX
ZWJDb3JlTlNVUkxFeHRyYXMuaCBpbiBIZWFkZXJzICovLApJbmRleDogU291cmNlL1dlYkNvcmUv
ZG9tL0RldmljZU9yaWVudGF0aW9uQ2xpZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvZG9tL0RldmljZU9yaWVudGF0aW9uQ2xpZW50LmgJKHJldmlzaW9uIDI1Mjk2MSkKKysrIFNv
dXJjZS9XZWJDb3JlL2RvbS9EZXZpY2VPcmllbnRhdGlvbkNsaWVudC5oCSh3b3JraW5nIGNvcHkp
CkBAIC0yOCwxMiArMjgsMTYgQEAKIAogI2luY2x1ZGUgIkRldmljZUNsaWVudC5oIgogI2luY2x1
ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgorI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KKworI2lmIEVO
QUJMRShERVZJQ0VfT1JJRU5UQVRJT04pCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3Mg
RGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyOwogY2xhc3MgRGV2aWNlT3JpZW50YXRpb25EYXRh
OwogY2xhc3MgUGFnZTsKK2NsYXNzIFNoYXJlZERldmljZU9yaWVudGF0aW9uQ2xpZW50OwogCiBj
bGFzcyBEZXZpY2VPcmllbnRhdGlvbkNsaWVudCA6IHB1YmxpYyBEZXZpY2VDbGllbnQgewogICAg
IFdURl9NQUtFX05PTkNPUFlBQkxFKERldmljZU9yaWVudGF0aW9uQ2xpZW50KTsKQEAgLTQzLDgg
KzQ3LDEyIEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgc2V0Q29udHJvbGxlcihEZXZpY2VP
cmllbnRhdGlvbkNvbnRyb2xsZXIqKSA9IDA7CiAgICAgdmlydHVhbCBEZXZpY2VPcmllbnRhdGlv
bkRhdGEqIGxhc3RPcmllbnRhdGlvbigpIGNvbnN0ID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgZGV2
aWNlT3JpZW50YXRpb25Db250cm9sbGVyRGVzdHJveWVkKCkgPSAwOworICAgIAorICAgIHZpcnR1
YWwgdm9pZCBzZXRTaGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudChSZWZQdHI8U2hhcmVkRGV2
aWNlT3JpZW50YXRpb25DbGllbnQ+KSB7IH07CiB9OwogCiBXRUJDT1JFX0VYUE9SVCB2b2lkIHBy
b3ZpZGVEZXZpY2VPcmllbnRhdGlvblRvKFBhZ2UmLCBEZXZpY2VPcmllbnRhdGlvbkNsaWVudCYp
OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoREVWSUNFX09S
SUVOVEFUSU9OKQpJbmRleDogU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCShyZXZpc2lvbiAyNTI5NjEp
CisrKyBTb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC02
MDcsOSArNjA3LDE1IEBAIERvY3VtZW50OjpEb2N1bWVudChGcmFtZSogZnJhbWUsIGNvbnN0IFUK
ICAgICAgICAgbm9kZUxpc3RBbmRDb2xsZWN0aW9uQ291bnQgPSAwOwogCiAgICAgSW5zcGVjdG9y
SW5zdHJ1bWVudGF0aW9uOjphZGRFdmVudExpc3RlbmVyc1RvTm9kZSgqdGhpcyk7CisgICAgCiAj
aWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKICAgICBtX3NldHRpbmdzLT5zZXRMZWdhY3lHZXRVc2Vy
TWVkaWFFbmFibGVkKHF1aXJrcygpLnNob3VsZEVuYWJsZUxlZ2FjeUdldFVzZXJNZWRpYSgpKTsK
ICNlbmRpZgorCisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkgJiYgRU5BQkxFKERFVklDRV9PUklF
TlRBVElPTikKKyAgICBpZiAocGFnZSgpICYmIHBhZ2UoKS0+c2hhcmVkRGV2aWNlT3JpZW50YXRp
b25DbGllbnQoKSkKKyAgICAgICAgbV9kZXZpY2VPcmllbnRhdGlvbkNsaWVudC0+c2V0U2hhcmVk
RGV2aWNlT3JpZW50YXRpb25DbGllbnQocGFnZSgpLT5zaGFyZWREZXZpY2VPcmllbnRhdGlvbkNs
aWVudCgpKTsKKyNlbmRpZgogfQogCiBSZWY8RG9jdW1lbnQ+IERvY3VtZW50OjpjcmVhdGUoRG9j
dW1lbnQmIGNvbnRleHREb2N1bWVudCkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcAkocmV2aXNpb24g
MjUyOTYxKQorKysgU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMjg5LDYgKzI4OSw5IEBAIFBhZ2U6OlBhZ2UoUGFnZUNvbmZpZ3VyYXRpb24mJiBwYWdlQ29u
ZmkKICNpZiBFTkFCTEUoQVBQTElDQVRJT05fTUFOSUZFU1QpCiAgICAgLCBtX2FwcGxpY2F0aW9u
TWFuaWZlc3QocGFnZUNvbmZpZ3VyYXRpb24uYXBwbGljYXRpb25NYW5pZmVzdCkKICNlbmRpZgor
I2lmIEVOQUJMRShERVZJQ0VfT1JJRU5UQVRJT04pICYmIFBMQVRGT1JNKElPU19GQU1JTFkpCisg
ICAgLCBtX3NoYXJlZERldmljZU9yaWVudGF0aW9uQ2xpZW50KFdURk1vdmUocGFnZUNvbmZpZ3Vy
YXRpb24uc2hhcmVkRGV2aWNlT3JpZW50YXRpb25DbGllbnQpKQorI2VuZGlmCiB7CiAgICAgdXBk
YXRlVGltZXJUaHJvdHRsaW5nU3RhdGUoKTsKIApJbmRleDogU291cmNlL1dlYkNvcmUvcGFnZS9Q
YWdlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmgJKHJldmlzaW9u
IDI1Mjk2MSkKKysrIFNvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oCSh3b3JraW5nIGNvcHkpCkBA
IC02OSw2ICs2OSwxMCBAQAogI2luY2x1ZGUgIk1lZGlhUGxheWJhY2tUYXJnZXRDb250ZXh0Lmgi
CiAjZW5kaWYKIAorI2lmIEVOQUJMRShERVZJQ0VfT1JJRU5UQVRJT04pICYmIFBMQVRGT1JNKElP
U19GQU1JTFkpCisjaW5jbHVkZSAiU2hhcmVkRGV2aWNlT3JpZW50YXRpb25DbGllbnQuaCIKKyNl
bmRpZgorCiBuYW1lc3BhY2UgSlNDIHsKIGNsYXNzIERlYnVnZ2VyOwogfQpAQCAtNzE5LDYgKzcy
MywxMCBAQCBwdWJsaWM6CiAKICAgICBXRUJDT1JFX0VYUE9SVCBWZWN0b3I8UmVmPEVsZW1lbnQ+
PiBlZGl0YWJsZUVsZW1lbnRzSW5SZWN0KGNvbnN0IEZsb2F0UmVjdCYpIGNvbnN0OwogCisjaWYg
RU5BQkxFKERFVklDRV9PUklFTlRBVElPTikgJiYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKyAgICBS
ZWZQdHI8U2hhcmVkRGV2aWNlT3JpZW50YXRpb25DbGllbnQ+IHNoYXJlZERldmljZU9yaWVudGF0
aW9uQ2xpZW50KCkgY29uc3QgeyByZXR1cm4gbV9zaGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVu
dDsgfQorI2VuZGlmCisKIHByaXZhdGU6CiAgICAgc3RydWN0IE5hdmlnYXRpb24gewogICAgICAg
ICBSZWdpc3RyYWJsZURvbWFpbiBkb21haW47CkBAIC05OTAsNiArOTk4LDEwIEBAIHByaXZhdGU6
CiAKICAgICBPcHRpb25hbDxWaWV3cG9ydEFyZ3VtZW50cz4gbV9vdmVycmlkZVZpZXdwb3J0QXJn
dW1lbnRzOwogCisjaWYgRU5BQkxFKERFVklDRV9PUklFTlRBVElPTikgJiYgUExBVEZPUk0oSU9T
X0ZBTUlMWSkKKyAgICBSZWZQdHI8U2hhcmVkRGV2aWNlT3JpZW50YXRpb25DbGllbnQ+IG1fc2hh
cmVkRGV2aWNlT3JpZW50YXRpb25DbGllbnQ7CisjZW5kaWYKKwogICAgIGJvb2wgbV9zaG91bGRF
bmFibGVJQ0VDYW5kaWRhdGVGaWx0ZXJpbmdCeURlZmF1bHQgeyB0cnVlIH07CiAgICAgYm9vbCBt
X21lZGlhUGxheWJhY2tJc1N1c3BlbmRlZCB7IGZhbHNlIH07CiAgICAgYm9vbCBtX21lZGlhQnVm
ZmVyaW5nSXNTdXNwZW5kZWQgeyBmYWxzZSB9OwpJbmRleDogU291cmNlL1dlYkNvcmUvcGFnZS9Q
YWdlQ29uZmlndXJhdGlvbi5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BhZ2UvUGFn
ZUNvbmZpZ3VyYXRpb24uaAkocmV2aXNpb24gMjUyOTYxKQorKysgU291cmNlL1dlYkNvcmUvcGFn
ZS9QYWdlQ29uZmlndXJhdGlvbi5oCSh3b3JraW5nIGNvcHkpCkBAIC01Nyw2ICs1Nyw3IEBAIGNs
YXNzIFBlcmZvcm1hbmNlTG9nZ2luZ0NsaWVudDsKIGNsYXNzIFBsdWdJbkNsaWVudDsKIGNsYXNz
IFBsdWdpbkluZm9Qcm92aWRlcjsKIGNsYXNzIFByb2dyZXNzVHJhY2tlckNsaWVudDsKK2NsYXNz
IFNoYXJlZERldmljZU9yaWVudGF0aW9uQ2xpZW50OwogY2xhc3MgU29ja2V0UHJvdmlkZXI7CiBj
bGFzcyBTdG9yYWdlTmFtZXNwYWNlUHJvdmlkZXI7CiBjbGFzcyBVc2VyQ29udGVudFByb3ZpZGVy
OwpAQCAtMTE4LDYgKzExOSwxMCBAQCBwdWJsaWM6CiAgICAgUmVmUHRyPFN0b3JhZ2VOYW1lc3Bh
Y2VQcm92aWRlcj4gc3RvcmFnZU5hbWVzcGFjZVByb3ZpZGVyOwogICAgIFJlZlB0cjxVc2VyQ29u
dGVudFByb3ZpZGVyPiB1c2VyQ29udGVudFByb3ZpZGVyOwogICAgIFJlZlB0cjxWaXNpdGVkTGlu
a1N0b3JlPiB2aXNpdGVkTGlua1N0b3JlOworICAgIAorI2lmIEVOQUJMRShERVZJQ0VfT1JJRU5U
QVRJT04pICYmIFBMQVRGT1JNKElPU19GQU1JTFkpCisgICAgUmVmUHRyPFNoYXJlZERldmljZU9y
aWVudGF0aW9uQ2xpZW50PiBzaGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudDsKKyNlbmRpZgog
fTsKIAogfQpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL0RldmljZU9yaWVudGF0
aW9uQ2xpZW50SU9TLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9z
L0RldmljZU9yaWVudGF0aW9uQ2xpZW50SU9TLmgJKHJldmlzaW9uIDI1Mjk2MSkKKysrIFNvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9EZXZpY2VPcmllbnRhdGlvbkNsaWVudElPUy5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC0zMCwxMyArMzAsMTUgQEAKICNpbmNsdWRlICJEZXZpY2VPcmllbnRhdGlv
bkNsaWVudC5oIgogI2luY2x1ZGUgIkRldmljZU9yaWVudGF0aW9uQ29udHJvbGxlci5oIgogI2lu
Y2x1ZGUgIkRldmljZU9yaWVudGF0aW9uRGF0YS5oIgorI2luY2x1ZGUgIlNoYXJlZERldmljZU9y
aWVudGF0aW9uQ2xpZW50LmgiCisjaW5jbHVkZSAiV2ViQ29yZU1vdGlvbk1hbmFnZXJDbGllbnQu
aCIKICNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CiAKIE9CSkNfQ0xBU1MgV2ViQ29yZU1vdGlvbk1h
bmFnZXI7CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotY2xhc3MgRGV2aWNlT3JpZW50YXRpb25D
bGllbnRJT1MgOiBwdWJsaWMgRGV2aWNlT3JpZW50YXRpb25DbGllbnQgeworY2xhc3MgRGV2aWNl
T3JpZW50YXRpb25DbGllbnRJT1MgOiBwdWJsaWMgRGV2aWNlT3JpZW50YXRpb25DbGllbnQsIHB1
YmxpYyBXZWJDb3JlTW90aW9uTWFuYWdlckNsaWVudCB7CiBwdWJsaWM6CiAgICAgRGV2aWNlT3Jp
ZW50YXRpb25DbGllbnRJT1MoKTsKICAgICB+RGV2aWNlT3JpZW50YXRpb25DbGllbnRJT1MoKSBv
dmVycmlkZTsKQEAgLTQ2LDEyICs0OCwxNSBAQCBwdWJsaWM6CiAgICAgRGV2aWNlT3JpZW50YXRp
b25EYXRhKiBsYXN0T3JpZW50YXRpb24oKSBjb25zdCBvdmVycmlkZTsKICAgICB2b2lkIGRldmlj
ZU9yaWVudGF0aW9uQ29udHJvbGxlckRlc3Ryb3llZCgpIG92ZXJyaWRlOwogCi0gICAgdm9pZCBv
cmllbnRhdGlvbkNoYW5nZWQoZG91YmxlLCBkb3VibGUsIGRvdWJsZSwgZG91YmxlLCBkb3VibGUp
OworICAgIHZvaWQgb3JpZW50YXRpb25DaGFuZ2VkKGRvdWJsZSwgZG91YmxlLCBkb3VibGUsIGRv
dWJsZSwgZG91YmxlKSBvdmVycmlkZTsKIAorICAgIHZvaWQgc2V0U2hhcmVkRGV2aWNlT3JpZW50
YXRpb25DbGllbnQoUmVmUHRyPFNoYXJlZERldmljZU9yaWVudGF0aW9uQ2xpZW50PiBzaGFyZWRE
ZXZpY2VPcmllbnRhdGlvbkNsaWVudCkgb3ZlcnJpZGUgeyBtX3NoYXJlZERldmljZU9yaWVudGF0
aW9uQ2xpZW50ID0gc2hhcmVkRGV2aWNlT3JpZW50YXRpb25DbGllbnQ7IH0KKyAgICAKIHByaXZh
dGU6CiAgICAgV2ViQ29yZU1vdGlvbk1hbmFnZXIqIG1fbW90aW9uTWFuYWdlcjsKICAgICBEZXZp
Y2VPcmllbnRhdGlvbkNvbnRyb2xsZXIqIG1fY29udHJvbGxlcjsKICAgICBSZWZQdHI8RGV2aWNl
T3JpZW50YXRpb25EYXRhPiBtX2N1cnJlbnREZXZpY2VPcmllbnRhdGlvbjsKKyAgICBSZWZQdHI8
U2hhcmVkRGV2aWNlT3JpZW50YXRpb25DbGllbnQ+IG1fc2hhcmVkRGV2aWNlT3JpZW50YXRpb25D
bGllbnQ7CiAgICAgYm9vbCBtX3VwZGF0aW5nOwogfTsKIApJbmRleDogU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vaW9zL0RldmljZU9yaWVudGF0aW9uQ2xpZW50SU9TLm1tCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9EZXZpY2VPcmllbnRhdGlvbkNsaWVudElPUy5t
bQkocmV2aXNpb24gMjUyOTYxKQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL0Rldmlj
ZU9yaWVudGF0aW9uQ2xpZW50SU9TLm1tCSh3b3JraW5nIGNvcHkpCkBAIC01Myw2ICs1MywxMSBA
QCB2b2lkIERldmljZU9yaWVudGF0aW9uQ2xpZW50SU9TOjpzdGFydFVwCiB7CiAgICAgbV91cGRh
dGluZyA9IHRydWU7CiAKKyAgICBpZiAobV9zaGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudCkg
eworICAgICAgICBtX3NoYXJlZERldmljZU9yaWVudGF0aW9uQ2xpZW50LT5zdGFydFVwZGF0aW5n
KCp0aGlzKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKwogICAgIGlmICghbV9tb3Rpb25NYW5h
Z2VyKQogICAgICAgICBtX21vdGlvbk1hbmFnZXIgPSBbV2ViQ29yZU1vdGlvbk1hbmFnZXIgc2hh
cmVkTWFuYWdlcl07CiAKQEAgLTYzLDYgKzY4LDExIEBAIHZvaWQgRGV2aWNlT3JpZW50YXRpb25D
bGllbnRJT1M6OnN0b3BVcGQKIHsKICAgICBtX3VwZGF0aW5nID0gZmFsc2U7CiAKKyAgICBpZiAo
bV9zaGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudCkgeworICAgICAgICBtX3NoYXJlZERldmlj
ZU9yaWVudGF0aW9uQ2xpZW50LT5zdG9wVXBkYXRpbmcoKnRoaXMpOworICAgICAgICByZXR1cm47
CisgICAgfQorCiAgICAgLy8gUmVtb3ZlIG91cnNlbHZlcyBhcyB0aGUgb3JpZW50YXRpb24gY2xp
ZW50IHNvIHdlIHdvbid0IGdldCB1cGRhdGVzLgogICAgIFttX21vdGlvbk1hbmFnZXIgcmVtb3Zl
T3JpZW50YXRpb25DbGllbnQ6dGhpc107CiB9CkBAIC03NCw2ICs4NCwxMSBAQCBEZXZpY2VPcmll
bnRhdGlvbkRhdGEqIERldmljZU9yaWVudGF0aW9uCiAKIHZvaWQgRGV2aWNlT3JpZW50YXRpb25D
bGllbnRJT1M6OmRldmljZU9yaWVudGF0aW9uQ29udHJvbGxlckRlc3Ryb3llZCgpCiB7CisgICAg
aWYgKG1fc2hhcmVkRGV2aWNlT3JpZW50YXRpb25DbGllbnQpIHsKKyAgICAgICAgbV9zaGFyZWRE
ZXZpY2VPcmllbnRhdGlvbkNsaWVudC0+c3RvcFVwZGF0aW5nKCp0aGlzKTsKKyAgICAgICAgcmV0
dXJuOworICAgIH0KKwogICAgIFttX21vdGlvbk1hbmFnZXIgcmVtb3ZlT3JpZW50YXRpb25DbGll
bnQ6dGhpc107CiB9CiAgICAgCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvU2hh
cmVkRGV2aWNlT3JpZW50YXRpb25DbGllbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9pb3MvU2hhcmVkRGV2aWNlT3JpZW50YXRpb25DbGllbnQuaAkobm9uZXhpc3Rl
bnQpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvU2hhcmVkRGV2aWNlT3JpZW50YXRp
b25DbGllbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDQ5IEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqICAqIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBg
YEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQgT1dORVIgT1IK
KyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRT
OyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJh
Z21hIG9uY2UKKworI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpICYmIEVOQUJMRShERVZJQ0VfT1JJ
RU5UQVRJT04pCisKKyNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgorCituYW1lc3BhY2UgV2Vi
Q29yZSB7CisKK2NsYXNzIFdlYkNvcmVNb3Rpb25NYW5hZ2VyQ2xpZW50OworCitjbGFzcyBTaGFy
ZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudCA6IHB1YmxpYyBSZWZDb3VudGVkPFNoYXJlZERldmlj
ZU9yaWVudGF0aW9uQ2xpZW50PiB7CitwdWJsaWM6CisgICAgU2hhcmVkRGV2aWNlT3JpZW50YXRp
b25DbGllbnQoKSB7IH0KKyAgICB2aXJ0dWFsIH5TaGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVu
dCgpIHsgfQorCisgICAgdmlydHVhbCB2b2lkIHN0YXJ0VXBkYXRpbmcoV2ViQ29yZU1vdGlvbk1h
bmFnZXJDbGllbnQmKSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgc3RvcFVwZGF0aW5nKFdlYkNvcmVN
b3Rpb25NYW5hZ2VyQ2xpZW50JikgeyB9CisKKyAgICB2aXJ0dWFsIHZvaWQgZGV2aWNlT3JpZW50
YXRpb25DaGFuZ2VkKGRvdWJsZSwgZG91YmxlLCBkb3VibGUsIGRvdWJsZSwgZG91YmxlKSB7IH0K
K307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIFBMQVRGT1JNKElPU19G
QU1JTFkpICYmIEVOQUJMRShERVZJQ0VfT1JJRU5UQVRJT04pCkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9pb3MvV2ViQ29yZU1vdGlvbk1hbmFnZXIuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvV2ViQ29yZU1vdGlvbk1hbmFnZXIuaAkocmV2aXNpb24g
MjUyOTYxKQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dlYkNvcmVNb3Rpb25NYW5h
Z2VyLmgJKHdvcmtpbmcgY29weSkKQEAgLTI1LDggKzI1LDYgQEAKIAogI3ByYWdtYSBvbmNlCiAK
LSNpbXBvcnQgIkRldmljZU1vdGlvbkNsaWVudElPUy5oIgotI2ltcG9ydCAiRGV2aWNlT3JpZW50
YXRpb25DbGllbnRJT1MuaCIKICNpbXBvcnQgPENvcmVMb2NhdGlvbi9Db3JlTG9jYXRpb24uaD4K
ICNpbXBvcnQgPHd0Zi9IYXNoQ291bnRlZFNldC5oPgogCkBAIC0zNiwxMSArMzQsMTYgQEAKIAog
Y29uc3QgZmxvYXQga01vdGlvblVwZGF0ZUludGVydmFsID0gMS4wZiAvIDYwLjBmOwogCi1AaW50
ZXJmYWNlIFdlYkNvcmVNb3Rpb25NYW5hZ2VyIDogTlNPYmplY3QgeworbmFtZXNwYWNlIFdlYkNv
cmUgeworY2xhc3MgRGV2aWNlTW90aW9uQ2xpZW50SU9TOworY2xhc3MgV2ViQ29yZU1vdGlvbk1h
bmFnZXJDbGllbnQ7Cit9OworCitXRUJDT1JFX0VYUE9SVCBAaW50ZXJmYWNlIFdlYkNvcmVNb3Rp
b25NYW5hZ2VyIDogTlNPYmplY3QgewogICAgIENNTW90aW9uTWFuYWdlciogbV9tb3Rpb25NYW5h
Z2VyOwogICAgIENMTG9jYXRpb25NYW5hZ2VyKiBtX2xvY2F0aW9uTWFuYWdlcjsKICAgICBIYXNo
U2V0PFdlYkNvcmU6OkRldmljZU1vdGlvbkNsaWVudElPUyo+IG1fZGV2aWNlTW90aW9uQ2xpZW50
czsKLSAgICBIYXNoU2V0PFdlYkNvcmU6OkRldmljZU9yaWVudGF0aW9uQ2xpZW50SU9TKj4gbV9k
ZXZpY2VPcmllbnRhdGlvbkNsaWVudHM7CisgICAgSGFzaFNldDxXZWJDb3JlOjpXZWJDb3JlTW90
aW9uTWFuYWdlckNsaWVudCo+IG1fZGV2aWNlT3JpZW50YXRpb25DbGllbnRzOwogICAgIE5TVGlt
ZXIqIG1fdXBkYXRlVGltZXI7CiAgICAgQk9PTCBtX2d5cm9BdmFpbGFibGU7CiAgICAgQk9PTCBt
X2hlYWRpbmdBdmFpbGFibGU7CkBAIC01MCw4ICs1Myw4IEBAIGNvbnN0IGZsb2F0IGtNb3Rpb25V
cGRhdGVJbnRlcnZhbCA9IDEuMGYKICsgKFdlYkNvcmVNb3Rpb25NYW5hZ2VyICopc2hhcmVkTWFu
YWdlcjsKIC0gKHZvaWQpYWRkTW90aW9uQ2xpZW50OihXZWJDb3JlOjpEZXZpY2VNb3Rpb25DbGll
bnRJT1MgKiljbGllbnQ7CiAtICh2b2lkKXJlbW92ZU1vdGlvbkNsaWVudDooV2ViQ29yZTo6RGV2
aWNlTW90aW9uQ2xpZW50SU9TICopY2xpZW50OwotLSAodm9pZClhZGRPcmllbnRhdGlvbkNsaWVu
dDooV2ViQ29yZTo6RGV2aWNlT3JpZW50YXRpb25DbGllbnRJT1MgKiljbGllbnQ7Ci0tICh2b2lk
KXJlbW92ZU9yaWVudGF0aW9uQ2xpZW50OihXZWJDb3JlOjpEZXZpY2VPcmllbnRhdGlvbkNsaWVu
dElPUyAqKWNsaWVudDsKKy0gKHZvaWQpYWRkT3JpZW50YXRpb25DbGllbnQ6KFdlYkNvcmU6Oldl
YkNvcmVNb3Rpb25NYW5hZ2VyQ2xpZW50ICopY2xpZW50OworLSAodm9pZClyZW1vdmVPcmllbnRh
dGlvbkNsaWVudDooV2ViQ29yZTo6V2ViQ29yZU1vdGlvbk1hbmFnZXJDbGllbnQgKiljbGllbnQ7
CiAtIChCT09MKWd5cm9BdmFpbGFibGU7CiAtIChCT09MKWhlYWRpbmdBdmFpbGFibGU7CiBAZW5k
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvV2ViQ29yZU1vdGlvbk1hbmFnZXIu
bW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dlYkNvcmVNb3Rp
b25NYW5hZ2VyLm1tCShyZXZpc2lvbiAyNTI5NjEpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9pb3MvV2ViQ29yZU1vdGlvbk1hbmFnZXIubW0JKHdvcmtpbmcgY29weSkKQEAgLTI4LDYgKzI4
LDggQEAKIAogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpICYmIEVOQUJMRShERVZJQ0VfT1JJRU5U
QVRJT04pCiAKKyNpbXBvcnQgIkRldmljZU1vdGlvbkNsaWVudElPUy5oIgorI2ltcG9ydCAiV2Vi
Q29yZU1vdGlvbk1hbmFnZXJDbGllbnQuaCIKICNpbXBvcnQgIldlYkNvcmVPYmpDRXh0cmFzLmgi
CiAjaW1wb3J0ICJXZWJDb3JlVGhyZWFkUnVuLmgiCiAjaW1wb3J0IDxDb3JlTG9jYXRpb24vQ29y
ZUxvY2F0aW9uLmg+CkBAIC0xMTIsMTQgKzExNCwxNCBAQCAtICh2b2lkKXJlbW92ZU1vdGlvbkNs
aWVudDooV2ViQ29yZTo6RGV2CiAgICAgICAgIFtzZWxmIGNoZWNrQ2xpZW50U3RhdHVzXTsKIH0K
IAotLSAodm9pZClhZGRPcmllbnRhdGlvbkNsaWVudDooV2ViQ29yZTo6RGV2aWNlT3JpZW50YXRp
b25DbGllbnRJT1MgKiljbGllbnQKKy0gKHZvaWQpYWRkT3JpZW50YXRpb25DbGllbnQ6KFdlYkNv
cmU6OldlYkNvcmVNb3Rpb25NYW5hZ2VyQ2xpZW50ICopY2xpZW50CiB7CiAgICAgbV9kZXZpY2VP
cmllbnRhdGlvbkNsaWVudHMuYWRkKGNsaWVudCk7CiAgICAgaWYgKG1faW5pdGlhbGl6ZWQpCiAg
ICAgICAgIFtzZWxmIGNoZWNrQ2xpZW50U3RhdHVzXTsKIH0KIAotLSAodm9pZClyZW1vdmVPcmll
bnRhdGlvbkNsaWVudDooV2ViQ29yZTo6RGV2aWNlT3JpZW50YXRpb25DbGllbnRJT1MgKiljbGll
bnQKKy0gKHZvaWQpcmVtb3ZlT3JpZW50YXRpb25DbGllbnQ6KFdlYkNvcmU6OldlYkNvcmVNb3Rp
b25NYW5hZ2VyQ2xpZW50ICopY2xpZW50CiB7CiAgICAgbV9kZXZpY2VPcmllbnRhdGlvbkNsaWVu
dHMucmVtb3ZlKGNsaWVudCk7CiAgICAgaWYgKG1faW5pdGlhbGl6ZWQpCkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9pb3MvV2ViQ29yZU1vdGlvbk1hbmFnZXJDbGllbnQuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvV2ViQ29yZU1vdGlvbk1hbmFnZXJD
bGllbnQuaAkobm9uZXhpc3RlbnQpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvV2Vi
Q29yZU1vdGlvbk1hbmFnZXJDbGllbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDM3IEBA
CisvKgorKiBDb3B5cmlnaHQgKEMpIDIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorKgorKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisqIGFyZSBtZXQ6CisqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorKgorKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnCisqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorKiBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1Ig
SVRTIENPTlRSSUJVVE9SUworKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisqIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisqIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUworKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorKiBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GCisqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyovCisKKyNwcmFnbWEg
b25jZQorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFdlYkNvcmVNb3Rpb25NYW5hZ2Vy
Q2xpZW50IHsKK3B1YmxpYzoKKyAgICB2aXJ0dWFsIH5XZWJDb3JlTW90aW9uTWFuYWdlckNsaWVu
dCgpIHsgfTsKKworICAgIHZpcnR1YWwgdm9pZCBvcmllbnRhdGlvbkNoYW5nZWQoZG91YmxlLCBk
b3VibGUsIGRvdWJsZSwgZG91YmxlLCBkb3VibGUpIHsgfTsKK307CisKK307CkluZGV4OiBTb3Vy
Y2UvV2ViS2l0L0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L0NoYW5nZUxv
ZwkocmV2aXNpb24gMjUyOTYxKQorKysgU291cmNlL1dlYktpdC9DaGFuZ2VMb2cJKHdvcmtpbmcg
Y29weSkKQEAgLTEsMyArMSwzMyBAQAorMjAxOS0xMS0zMCAgUGVyIEFybmUgVm9sbGFuICA8cHZv
bGxhbkBhcHBsZS5jb20+CisKKyAgICAgICAgW2lPU10gQ2FsbHMgdG8gZGV2aWNlIG9yaWVudGF0
aW9uIEFQSSBzaG91bGQgYmUgZG9uZSBpbiB0aGUgVUkgcHJvY2VzcworICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA0NzIwCisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIFdlYiBwYWdlIHByb3h5IG1lc3Nh
Z2VzIHRvIHN0YXJ0IGFuZCBzdG9wIHVwZGF0aW5nIGRldmljZSBvcmllbnRhdGlvbiBpbiB0aGUg
VUkgcHJvY2Vzcy4gQWxzbywgYWRkIGEgbWVzc2FnZSB0bworICAgICAgICB0aGUgV2ViIHBhZ2Ug
dG8gdXBkYXRlIHRoZSBkZXZpY2Ugb3JpZW50YXRpb24gaW4gdGhlIFdlYkNvbnRlbnQgcHJvY2Vz
cy4gSW4gdGhlIFVJIHByb2Nlc3MsIHRoZSBkZXZpY2Ugb3JpZW50YXRpb24gQVBJCisgICAgICAg
IGlzIGNhbGxlZCB0aHJvdWdoIHRoZSBhbHJlYWR5IGV4aXN0aW5nIFdlYkNvcmVNb3Rpb25NYW5h
Z2VyIGNsYXNzLgorCisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW46CisgICAgICAgICogVUlQcm9j
ZXNzL2lvcy9XZWJQYWdlUHJveHlJT1MubW06CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94
eTo6c3RhcnRVcGRhdGluZ0RldmljZU9yaWVudGF0aW9uKToKKyAgICAgICAgKFdlYktpdDo6V2Vi
UGFnZVByb3h5OjpzdG9wVXBkYXRpbmdEZXZpY2VPcmllbnRhdGlvbik6CisgICAgICAgIChXZWJL
aXQ6OldlYlBhZ2VQcm94eTo6b3JpZW50YXRpb25DaGFuZ2VkKToKKyAgICAgICAgKiBXZWJLaXQu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0L1dlYlNoYXJlZERldmljZU9yaWVudGF0aW9uQ2xpZW50LmNwcDogQWRkZWQuCisgICAg
ICAgIChXZWJLaXQ6OldlYlNoYXJlZERldmljZU9yaWVudGF0aW9uQ2xpZW50OjpzdGFydFVwZGF0
aW5nKToKKyAgICAgICAgKFdlYktpdDo6V2ViU2hhcmVkRGV2aWNlT3JpZW50YXRpb25DbGllbnQ6
OnN0b3BVcGRhdGluZyk6CisgICAgICAgIChXZWJLaXQ6OldlYlNoYXJlZERldmljZU9yaWVudGF0
aW9uQ2xpZW50OjpkZXZpY2VPcmllbnRhdGlvbkNoYW5nZWQpOgorICAgICAgICAqIFdlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvV2ViU2hhcmVkRGV2aWNlT3JpZW50YXRpb25DbGllbnQuaDogQWRk
ZWQuCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwOgorICAgICAgICAo
V2ViS2l0OjptX292ZXJyaWRkZW5NZWRpYVR5cGUpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2Vi
UGFnZS9XZWJQYWdlLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVz
c2FnZXMuaW46CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1t
OgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpkZXZpY2VPcmllbnRhdGlvbkNoYW5nZWQpOgor
CiAyMDE5LTExLTI3ICBBbnRvaW5lIFF1aW50ICA8Z3Jhb3V0c0BhcHBsZS5jb20+CiAKICAgICAg
ICAgW1dlYiBBbmltYXRpb25zXSBFbmFibGUgV2ViQW5pbWF0aW9uc0NTU0ludGVncmF0aW9uRW5h
YmxlZCBieSBkZWZhdWx0CkluZGV4OiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJv
eHkuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94
eS5jcHAJKHJldmlzaW9uIDI1Mjk2MSkKKysrIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBh
Z2VQcm94eS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTUyMCw2ICs1MjAsMTAgQEAgV2ViUGFnZVBy
b3h5Ojp+V2ViUGFnZVByb3h5KCkKICAgICBtX3ByZWZlcmVuY2VzLT5yZW1vdmVQYWdlKCp0aGlz
KTsKICAgICBtX3BhZ2VHcm91cC0+cmVtb3ZlUGFnZSh0aGlzKTsKIAorI2lmIFBMQVRGT1JNKElP
U19GQU1JTFkpICYmIEVOQUJMRShERVZJQ0VfT1JJRU5UQVRJT04pCisgICAgc3RvcFVwZGF0aW5n
RGV2aWNlT3JpZW50YXRpb24oKTsKKyNlbmRpZgorICAgIAogI2lmbmRlZiBOREVCVUcKICAgICB3
ZWJQYWdlUHJveHlDb3VudGVyLmRlY3JlbWVudCgpOwogI2VuZGlmCkluZGV4OiBTb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAkocmV2aXNpb24gMjUyOTYxKQorKysgU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgJKHdvcmtpbmcgY29weSkKQEAgLTE0OSw2ICsx
NDksMTAgQEAgT0JKQ19DTEFTUyBfV0tSZW1vdGVPYmplY3RSZWdpc3RyeTsKICNpbmNsdWRlICJT
T0F1dGhvcml6YXRpb25Mb2FkUG9saWN5LmgiCiAjZW5kaWYKIAorI2lmIFBMQVRGT1JNKElPU19G
QU1JTFkpICYmIEVOQUJMRShERVZJQ0VfT1JJRU5UQVRJT04pCisjaW5jbHVkZSA8V2ViQ29yZS9X
ZWJDb3JlTW90aW9uTWFuYWdlckNsaWVudC5oPgorI2VuZGlmCisKICNpZiBFTkFCTEUoTUVESUFf
U0VTU0lPTikKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIE1lZGlhU2Vzc2lvbk1ldGFkYXRh
OwpAQCAtMTU5LDYgKzE2MywxMCBAQCBjbGFzcyBNZWRpYVNlc3Npb25NZXRhZGF0YTsKIGludGVy
ZmFjZSBJRDNEMTFEZXZpY2UxOwogI2VuZGlmCiAKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKSAm
JiBFTkFCTEUoREVWSUNFX09SSUVOVEFUSU9OKQorT0JKQ19DTEFTUyBXZWJDb3JlTW90aW9uTWFu
YWdlcjsKKyNlbmRpZgorCiBuYW1lc3BhY2UgQVBJIHsKIGNsYXNzIEF0dGFjaG1lbnQ7CiBjbGFz
cyBDb250ZXh0TWVudUNsaWVudDsKQEAgLTQxMCw2ICs0MTgsOSBAQCBjbGFzcyBXZWJQYWdlUHJv
eHkgOiBwdWJsaWMgQVBJOjpPYmplY3RJCiAgICAgLCBwdWJsaWMgV2ViQ29yZTo6UGxhdGZvcm1T
cGVlY2hTeW50aGVzaXNVdHRlcmFuY2VDbGllbnQKICAgICAsIHB1YmxpYyBXZWJDb3JlOjpQbGF0
Zm9ybVNwZWVjaFN5bnRoZXNpemVyQ2xpZW50CiAjZW5kaWYKKyNpZiBQTEFURk9STShJT1NfRkFN
SUxZKSAmJiBFTkFCTEUoREVWSUNFX09SSUVOVEFUSU9OKQorICAgICwgcHVibGljIFdlYkNvcmU6
OldlYkNvcmVNb3Rpb25NYW5hZ2VyQ2xpZW50CisjZW5kaWYKICAgICAsIHB1YmxpYyBDYW5NYWtl
V2Vha1B0cjxXZWJQYWdlUHJveHk+IHsKIHB1YmxpYzoKICAgICBzdGF0aWMgUmVmPFdlYlBhZ2VQ
cm94eT4gY3JlYXRlKFBhZ2VDbGllbnQmLCBXZWJQcm9jZXNzUHJveHkmLCBSZWY8QVBJOjpQYWdl
Q29uZmlndXJhdGlvbj4mJik7CkBAIC0xNjI0LDYgKzE2MzUsMTEgQEAgcHVibGljOgogICAgIGNv
bnN0IFN0cmluZyYgb3ZlcnJpZGRlbk1lZGlhVHlwZSgpIGNvbnN0IHsgcmV0dXJuIG1fb3ZlcnJp
ZGRlbk1lZGlhVHlwZTsgfQogICAgIHZvaWQgc2V0T3ZlcnJpZGRlbk1lZGlhVHlwZShjb25zdCBT
dHJpbmcmKTsKIAorI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpICYmIEVOQUJMRShERVZJQ0VfT1JJ
RU5UQVRJT04pCisgICAgdm9pZCBzdGFydFVwZGF0aW5nRGV2aWNlT3JpZW50YXRpb24oKTsKKyAg
ICB2b2lkIHN0b3BVcGRhdGluZ0RldmljZU9yaWVudGF0aW9uKCk7CisjZW5kaWYKKwogcHJpdmF0
ZToKICAgICBXZWJQYWdlUHJveHkoUGFnZUNsaWVudCYsIFdlYlByb2Nlc3NQcm94eSYsIFJlZjxB
UEk6OlBhZ2VDb25maWd1cmF0aW9uPiYmKTsKICAgICB2b2lkIHBsYXRmb3JtSW5pdGlhbGl6ZSgp
OwpAQCAtMjE2Nyw2ICsyMTgzLDExIEBAIHByaXZhdGU6CiAgICAgdm9pZCByZXNldFNwZWVjaFN5
bnRoZXNpemVyKCk7CiAjZW5kaWYKIAorI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpICYmIEVOQUJM
RShERVZJQ0VfT1JJRU5UQVRJT04pCisgICAgLy8gV2ViQ29yZTo6V2ViQ29yZU1vdGlvbk1hbmFn
ZXJDbGllbnQKKyAgICB2b2lkIG9yaWVudGF0aW9uQ2hhbmdlZChkb3VibGUsIGRvdWJsZSwgZG91
YmxlLCBkb3VibGUsIGRvdWJsZSkgb3ZlcnJpZGU7CisjZW5kaWYKKwogI2lmIFBMQVRGT1JNKElP
U19GQU1JTFkpCiAgICAgc3RhdGljIGJvb2wgaXNJbkhhcmR3YXJlS2V5Ym9hcmRNb2RlKCk7CiAg
ICAgdm9pZCBjbGVhckF1ZGlibGVBY3Rpdml0eSgpOwpAQCAtMjYyNCw2ICsyNjQ1LDEwIEBAIHBy
aXZhdGU6CiAgICAgYm9vbCBtX2lzUXVvdGFJbmNyZWFzZURlbmllZCB7IGZhbHNlIH07CiAgICAg
CiAgICAgU3RyaW5nIG1fb3ZlcnJpZGRlbk1lZGlhVHlwZTsKKworI2lmIFBMQVRGT1JNKElPU19G
QU1JTFkpICYmIEVOQUJMRShERVZJQ0VfT1JJRU5UQVRJT04pCisgICAgV2ViQ29yZU1vdGlvbk1h
bmFnZXIqIG1fbW90aW9uTWFuYWdlciB7IG51bGxwdHIgfTsKKyNlbmRpZgogfTsKIAogfSAvLyBu
YW1lc3BhY2UgV2ViS2l0CkluZGV4OiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJv
eHkubWVzc2FnZXMuaW4KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
UGFnZVByb3h5Lm1lc3NhZ2VzLmluCShyZXZpc2lvbiAyNTI5NjEpCisrKyBTb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4JKHdvcmtpbmcgY29weSkKQEAgLTU4
Niw0ICs1ODYsOSBAQCBtZXNzYWdlcyAtPiBXZWJQYWdlUHJveHkgewogCiAgICAgRGlkRmluZFRl
eHRNYW5pcHVsYXRpb25JdGVtKFdlYkNvcmU6OlRleHRNYW5pcHVsYXRpb25Db250cm9sbGVyOjpJ
dGVtSWRlbnRpZmllciBpdGVtSUQsIFZlY3RvcjxXZWJDb3JlOjpUZXh0TWFuaXB1bGF0aW9uQ29u
dHJvbGxlcjo6TWFuaXB1bGF0aW9uVG9rZW4+IHRva2VucykKIAorI2lmIFBMQVRGT1JNKElPU19G
QU1JTFkpICYmIEVOQUJMRShERVZJQ0VfT1JJRU5UQVRJT04pCisgICAgU3RhcnRVcGRhdGluZ0Rl
dmljZU9yaWVudGF0aW9uKCk7CisgICAgU3RvcFVwZGF0aW5nRGV2aWNlT3JpZW50YXRpb24oKTsK
KyNlbmRpZgorCiB9CkluZGV4OiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV2ViUGFnZVBy
b3h5SU9TLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XZWJQ
YWdlUHJveHlJT1MubW0JKHJldmlzaW9uIDI1Mjk2MSkKKysrIFNvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL2lvcy9XZWJQYWdlUHJveHlJT1MubW0JKHdvcmtpbmcgY29weSkKQEAgLTc1LDYgKzc1LDEw
IEBACiAjaW1wb3J0IDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KICNlbmRpZgogCisjaWYgRU5BQkxF
KERFVklDRV9PUklFTlRBVElPTikKKyNpbXBvcnQgPFdlYkNvcmUvV2ViQ29yZU1vdGlvbk1hbmFn
ZXIuaD4KKyNlbmRpZgorCiAjZGVmaW5lIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoY2hhbm5lbCwg
Zm10LCAuLi4pIFJFTEVBU0VfTE9HX0lGKGlzQWx3YXlzT25Mb2dnaW5nQWxsb3dlZCgpLCBjaGFu
bmVsLCAiJXAgLSBbcGFnZVByb3h5SUQ9JWxsdSwgd2ViUGFnZUlEPSVsbHUsIFBJRD0laV0gV2Vi
UGFnZVByb3h5OjoiIGZtdCwgdGhpcywgbV9pZGVudGlmaWVyLnRvVUludDY0KCksIG1fd2ViUGFn
ZUlELnRvVUludDY0KCksIG1fcHJvY2Vzcy0+cHJvY2Vzc0lkZW50aWZpZXIoKSwgIyNfX1ZBX0FS
R1NfXykKIAogbmFtZXNwYWNlIFdlYktpdCB7CkBAIC0xNDgzLDYgKzE0ODcsMjYgQEAgV2ViQ29u
dGVudE1vZGUgV2ViUGFnZVByb3h5OjplZmZlY3RpdmVDbwogICAgIHJldHVybiBXZWJDb250ZW50
TW9kZTo6RGVza3RvcDsKIH0KIAorI2lmIEVOQUJMRShERVZJQ0VfT1JJRU5UQVRJT04pCit2b2lk
IFdlYlBhZ2VQcm94eTo6c3RhcnRVcGRhdGluZ0RldmljZU9yaWVudGF0aW9uKCkKK3sKKyAgICBp
ZiAoIW1fbW90aW9uTWFuYWdlcikKKyAgICAgICAgbV9tb3Rpb25NYW5hZ2VyID0gW1dlYkNvcmVN
b3Rpb25NYW5hZ2VyIHNoYXJlZE1hbmFnZXJdOworICAgIFttX21vdGlvbk1hbmFnZXIgYWRkT3Jp
ZW50YXRpb25DbGllbnQ6dGhpc107Cit9CisKK3ZvaWQgV2ViUGFnZVByb3h5OjpzdG9wVXBkYXRp
bmdEZXZpY2VPcmllbnRhdGlvbigpCit7CisgICAgW21fbW90aW9uTWFuYWdlciByZW1vdmVPcmll
bnRhdGlvbkNsaWVudDp0aGlzXTsKK30KKwordm9pZCBXZWJQYWdlUHJveHk6Om9yaWVudGF0aW9u
Q2hhbmdlZChkb3VibGUgYWxwaGEsIGRvdWJsZSBiZXRhLCBkb3VibGUgZ2FtbWEsIGRvdWJsZSBj
b21wYXNzSGVhZGluZywgZG91YmxlIGNvbXBhc3NBY2N1cmFjeSkKK3sKKyAgICBzZW5kKE1lc3Nh
Z2VzOjpXZWJQYWdlOjpEZXZpY2VPcmllbnRhdGlvbkNoYW5nZWQoYWxwaGEsIGJldGEsIGdhbW1h
LCBjb21wYXNzSGVhZGluZywgY29tcGFzc0FjY3VyYWN5KSwgMCk7Cit9CisjZW5kaWYKKworCiB9
IC8vIG5hbWVzcGFjZSBXZWJLaXQKIAogI3VuZGVmIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQKSW5k
ZXg6IFNvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagko
cmV2aXNpb24gMjUyOTYxKQorKysgU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagkod29ya2luZyBjb3B5KQpAQCAtMTY4OSw2ICsxNjg5LDcgQEAKIAkJRTFEMjZB
NTMxNzU5NjREOTAwOTVCRkQxIC8qIFdlYkNvbnRlbnRQcm9jZXNzLnhpYiBpbiBSZXNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTFEMjZBNEMxNzU5NjM0RTAwOTVC
RkQxIC8qIFdlYkNvbnRlbnRQcm9jZXNzLnhpYiAqLzsgfTsKIAkJRTFFNTUyQzUxNkFFMDY1RjAw
NEVENjUzIC8qIFNhbmRib3hJbml0aWFsaXphdGlvblBhcmFtZXRlcnMuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxRTU1MkMzMTZBRTA2NUUwMDRFRDY1
MyAvKiBTYW5kYm94SW5pdGlhbGl6YXRpb25QYXJhbWV0ZXJzLmggKi87IH07CiAJCUUxRUU1M0Uz
MTFGOENGQzAwMENDQkVFNCAvKiBJbmplY3RlZEJ1bmRsZVBhZ2VFZGl0b3JDbGllbnQuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxRUU1M0RDMTFGOENG
OUYwMENDQkVFNCAvKiBJbmplY3RlZEJ1bmRsZVBhZ2VFZGl0b3JDbGllbnQuaCAqLzsgfTsKKwkJ
RTM5NjI4QUEyMzg4QUJEODAwNjU4RUNEIC8qIFdlYlNoYXJlZERldmljZU9yaWVudGF0aW9uQ2xp
ZW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUz
OTYyOEE5MjM4OEFCRDgwMDY1OEVDRCAvKiBXZWJTaGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVu
dC5jcHAgKi87IH07CiAJCUU0MTNGNTlEMUFDMUFEQzQwMDM0NTM2MCAvKiBOZXR3b3JrQ2FjaGVF
bnRyeS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTQx
M0Y1OUIxQUMxQURCNjAwMzQ1MzYwIC8qIE5ldHdvcmtDYWNoZUVudHJ5LmggKi87IH07CiAJCUU0
MkUwNjEwMUFBNzUyM0IwMEIxMTY5OSAvKiBOZXR3b3JrQ2FjaGVJT0NoYW5uZWwuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU0MkUwNjBCMUFBNzQ0MEQw
MEIxMTY5OSAvKiBOZXR3b3JrQ2FjaGVJT0NoYW5uZWwuaCAqLzsgfTsKIAkJRTQyRTA2MTIxQUE3
NUFCRDAwQjExNjk5IC8qIE5ldHdvcmtDYWNoZURhdGEuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU0MkUwNjExMUFBNzVBQkQwMEIxMTY5OSAvKiBOZXR3
b3JrQ2FjaGVEYXRhLmggKi87IH07CkBAIC00NzQ4LDYgKzQ3NDksOCBAQAogCQlFMUVFNTNEQzEx
RjhDRjlGMDBDQ0JFRTQgLyogSW5qZWN0ZWRCdW5kbGVQYWdlRWRpdG9yQ2xpZW50LmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEluamVjdGVkQnVuZGxlUGFnZUVkaXRvckNsaWVu
dC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFMUVFNTNFNjExRjhDRkZCMDBDQ0JF
RTQgLyogSW5qZWN0ZWRCdW5kbGVQYWdlRWRpdG9yQ2xpZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEluamVjdGVkQnVuZGxlUGFnZUVkaXRvckNsaWVudC5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUzNDM5QjYzMjM0NTQ2M0EwMDExREUwQiAv
KiBOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb25JbmZvLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IE5ldHdvcmtQ
cm9jZXNzQ29ubmVjdGlvbkluZm8uaDsgcGF0aCA9IE5ldHdvcmsvTmV0d29ya1Byb2Nlc3NDb25u
ZWN0aW9uSW5mby5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFMzk2MjhBODIzODhB
NUQ0MDA2NThFQ0QgLyogV2ViU2hhcmVkRGV2aWNlT3JpZW50YXRpb25DbGllbnQuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gV2ViU2hhcmVkRGV2aWNlT3JpZW50YXRpb25DbGllbnQuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJRTM5NjI4QTkyMzg4QUJEODAwNjU4RUNEIC8qIFdlYlNoYXJlZERl
dmljZU9yaWVudGF0aW9uQ2xpZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYlNoYXJlZERl
dmljZU9yaWVudGF0aW9uQ2xpZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
RTQwNDkwNzAyMURFNjVGNzAwMzdGMERCIC8qIFNjcm9sbGVyUGFpck1hYy5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBTY3JvbGxlclBhaXJNYWMuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJRTQwNDkwNzEyMURFNjVGNzAwMzdGMERCIC8qIFNjcm9sbGluZ1RyZWVG
cmFtZVNjcm9sbGluZ05vZGVSZW1vdGVNYWMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gU2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZVJlbW90ZU1hYy5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUU0MDQ5MDcyMjFERTY1RjcwMDM3RjBEQiAv
KiBTY3JvbGxlclBhaXJNYWMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBh
dGggPSBTY3JvbGxlclBhaXJNYWMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC01
ODU0LDYgKzU4NTcsOCBAQAogCQkJCTJEMjhGM0UzMTg4NUNDQzEwMDRCOUVBRSAvKiBXZWJGcmFt
ZUxvYWRlckNsaWVudElPUy5tbSAqLywKIAkJCQlBMUM1MTJDNjE5MDY1NkU1MDA0NDg5MTQgLyog
V2ViUHJldmlld0xvYWRlckNsaWVudC5jcHAgKi8sCiAJCQkJQTFDNTEyQzcxOTA2NTZFNTAwNDQ4
OTE0IC8qIFdlYlByZXZpZXdMb2FkZXJDbGllbnQuaCAqLywKKwkJCQlFMzk2MjhBOTIzODhBQkQ4
MDA2NThFQ0QgLyogV2ViU2hhcmVkRGV2aWNlT3JpZW50YXRpb25DbGllbnQuY3BwICovLAorCQkJ
CUUzOTYyOEE4MjM4OEE1RDQwMDY1OEVDRCAvKiBXZWJTaGFyZWREZXZpY2VPcmllbnRhdGlvbkNs
aWVudC5oICovLAogCQkJKTsKIAkJCW5hbWUgPSBpb3M7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91
cD4iOwpAQCAtOTgyMCw3ICs5ODI1LDYgQEAKIAkJCQk1MTFGOEE3QjEzOEI0NjA5MDBBOTVGNDQg
LyogU2VjSXRlbVNoaW1MaWJyYXJ5LmggaW4gSGVhZGVycyAqLywKIAkJCQlFMThFNjkwQzE2OUI1
NjNGMDA5QjY2NzAgLyogU2VjSXRlbVNoaW1Qcm94eS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTE4
RTY5MTgxNjlCNjY3QjAwOUI2NjcwIC8qIFNlY0l0ZW1TaGltUHJveHlNZXNzYWdlcy5oIGluIEhl
YWRlcnMgKi8sCi0JCQkJN0FBNzQ2RDUyMzU5M0Q4MTAwMDk1MDUwIC8qIFNlY0l0ZW1TUEkuaCBp
biBIZWFkZXJzICovLAogCQkJCTU3MEFCOEYzMjBBRTNCRDcwMEI4QkU4NyAvKiBTZWNLZXlQcm94
eVN0b3JlLmggaW4gSGVhZGVycyAqLywKIAkJCQk1MTREOUY1NzE5MTE5RDM1MDAwMDYzQTcgLyog
U2VydmljZXNDb250cm9sbGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQUZERTY1QTE5NTRBNDJC
MDBDNDhGRkEgLyogU2Vzc2lvblN0YXRlLmggaW4gSGVhZGVycyAqLywKQEAgLTExNjE5LDYgKzEx
NjIzLDcgQEAKIAkJCQk1MUYwNjBFMTE2NTQzMTg1MDBGMzI4MUYgLyogV2ViUlRDTW9uaXRvck1l
c3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk1MUYwNjBFMTE2NTQzMTg1MDBG
MzI4MkMgLyogV2ViUlRDUmVzb2x2ZXJNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJNTFGMDYwRTExNjU0MzE4NTAwRjMyODFDIC8qIFdlYlJUQ1NvY2tldE1lc3NhZ2VSZWNl
aXZlci5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlFMzk2MjhBQTIzODhBQkQ4MDA2NThFQ0QgLyog
V2ViU2hhcmVkRGV2aWNlT3JpZW50YXRpb25DbGllbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
NDFGMDYwRTExNjU0MzE4NTAwRjMyODFDIC8qIFdlYlNvY2tldENoYW5uZWxNZXNzYWdlUmVjZWl2
ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNUMwQjE3NzkxRTdDODgyMTAwRTkxMjNDIC8qIFdl
YlNvY2tldFN0cmVhbU1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk0MTI4
N0Q0RTIyNUQxRUNCMDA5QTNFMjYgLyogV2ViU29ja2V0VGFza0NvY29hLm1tIGluIFNvdXJjZXMg
Ki8sCkluZGV4OiBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViU2hh
cmVkRGV2aWNlT3JpZW50YXRpb25DbGllbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJTaGFyZWREZXZpY2VPcmllbnRhdGlvbkNs
aWVudC5jcHAJKG5vbmV4aXN0ZW50KQorKysgU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNv
cmVTdXBwb3J0L1dlYlNoYXJlZERldmljZU9yaWVudGF0aW9uQ2xpZW50LmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMCwwICsxLDYwIEBACisvKgorKiBDb3B5cmlnaHQgKEMpIDIwMTkgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorKgorKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisqIGFy
ZSBtZXQ6CisqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorKgorKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisqIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworKiBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisq
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GCisqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorKiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKQorKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJXZWJTaGFyZWREZXZp
Y2VPcmllbnRhdGlvbkNsaWVudC5oIgorCisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkgJiYgRU5B
QkxFKERFVklDRV9PUklFTlRBVElPTikKKworI2luY2x1ZGUgIldlYlBhZ2UuaCIKKyNpbmNsdWRl
ICJXZWJQYWdlUHJveHlNZXNzYWdlcy5oIgorCisjaW5jbHVkZSA8V2ViQ29yZS9XZWJDb3JlTW90
aW9uTWFuYWdlckNsaWVudC5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKKwordm9pZCBXZWJTaGFy
ZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudDo6c3RhcnRVcGRhdGluZyhXZWJDb3JlOjpXZWJDb3Jl
TW90aW9uTWFuYWdlckNsaWVudCYgY2xpZW50KQoreworICAgIGlmIChtX2NsaWVudHMuaXNFbXB0
eSgpKQorICAgICAgICBtX3BhZ2Uuc2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpTdGFydFVw
ZGF0aW5nRGV2aWNlT3JpZW50YXRpb24oKSk7CisgICAgbV9jbGllbnRzLmFkZCgmY2xpZW50KTsK
K30KKwordm9pZCBXZWJTaGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudDo6c3RvcFVwZGF0aW5n
KFdlYkNvcmU6OldlYkNvcmVNb3Rpb25NYW5hZ2VyQ2xpZW50JiBjbGllbnQpCit7CisgICAgbV9j
bGllbnRzLnJlbW92ZSgmY2xpZW50KTsKKyAgICBpZiAobV9jbGllbnRzLmlzRW1wdHkoKSkKKyAg
ICAgICAgbV9wYWdlLnNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6U3RvcFVwZGF0aW5nRGV2
aWNlT3JpZW50YXRpb24oKSk7Cit9CisKK3ZvaWQgV2ViU2hhcmVkRGV2aWNlT3JpZW50YXRpb25D
bGllbnQ6OmRldmljZU9yaWVudGF0aW9uQ2hhbmdlZChkb3VibGUgYWxwaGEsIGRvdWJsZSBiZXRh
LCBkb3VibGUgZ2FtbWEsIGRvdWJsZSBjb21wYXNzSGVhZGluZywgZG91YmxlIGNvbXBhc3NBY2N1
cmFjeSkKK3sKKyAgICBmb3IgKGF1dG8gY2xpZW50IDogbV9jbGllbnRzKQorICAgICAgICBjbGll
bnQtPm9yaWVudGF0aW9uQ2hhbmdlZChhbHBoYSwgYmV0YSwgZ2FtbWEsIGNvbXBhc3NIZWFkaW5n
LCBjb21wYXNzQWNjdXJhY3kpOworfQorCit9OworCisjZW5kaWYKSW5kZXg6IFNvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJTaGFyZWREZXZpY2VPcmllbnRhdGlvbkNs
aWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC9XZWJTaGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudC5oCShub25leGlzdGVudCkKKysr
IFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJTaGFyZWREZXZpY2VP
cmllbnRhdGlvbkNsaWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNTggQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQg
SVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgPFdlYkNvcmUvU2hhcmVkRGV2aWNlT3Jp
ZW50YXRpb25DbGllbnQuaD4KKworI2luY2x1ZGUgPHd0Zi9IYXNoU2V0Lmg+CisKKyNpZiBQTEFU
Rk9STShJT1NfRkFNSUxZKSAmJiBFTkFCTEUoREVWSUNFX09SSUVOVEFUSU9OKQorCituYW1lc3Bh
Y2UgV2ViS2l0IHsKKworY2xhc3MgV2ViUGFnZTsKKworY2xhc3MgV2ViU2hhcmVkRGV2aWNlT3Jp
ZW50YXRpb25DbGllbnQgZmluYWwgOiBwdWJsaWMgV2ViQ29yZTo6U2hhcmVkRGV2aWNlT3JpZW50
YXRpb25DbGllbnQgeworICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOworcHVibGljOgorICAg
IFdlYlNoYXJlZERldmljZU9yaWVudGF0aW9uQ2xpZW50KFdlYlBhZ2UmIHBhZ2UpCisgICAgICAg
IDogbV9wYWdlKHBhZ2UpCisgICAgeworICAgIH0KKworICAgIHZvaWQgc3RhcnRVcGRhdGluZyhX
ZWJDb3JlOjpXZWJDb3JlTW90aW9uTWFuYWdlckNsaWVudCYpIG92ZXJyaWRlOworICAgIHZvaWQg
c3RvcFVwZGF0aW5nKFdlYkNvcmU6OldlYkNvcmVNb3Rpb25NYW5hZ2VyQ2xpZW50Jikgb3ZlcnJp
ZGU7CisKKyAgICB2b2lkIGRldmljZU9yaWVudGF0aW9uQ2hhbmdlZChkb3VibGUsIGRvdWJsZSwg
ZG91YmxlLCBkb3VibGUsIGRvdWJsZSkgb3ZlcnJpZGU7CisKK3ByaXZhdGU6CisgICAgV2ViUGFn
ZSYgbV9wYWdlOworICAgIEhhc2hTZXQ8V2ViQ29yZTo6V2ViQ29yZU1vdGlvbk1hbmFnZXJDbGll
bnQqPiBtX2NsaWVudHM7Cit9OworCit9CisKKyNlbmRpZgpJbmRleDogU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAJKHJldmlzaW9uIDI1Mjk2MSkKKysrIFNv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0xMjAsNiArMTIwLDcgQEAKICNpbmNsdWRlICJXZWJQcm9jZXNzUHJveHlNZXNzYWdlcy5o
IgogI2luY2x1ZGUgIldlYlByb2dyZXNzVHJhY2tlckNsaWVudC5oIgogI2luY2x1ZGUgIldlYlNl
cnZpY2VXb3JrZXJQcm92aWRlci5oIgorI2luY2x1ZGUgIldlYlNoYXJlZERldmljZU9yaWVudGF0
aW9uQ2xpZW50LmgiCiAjaW5jbHVkZSAiV2ViU29ja2V0UHJvdmlkZXIuaCIKICNpbmNsdWRlICJX
ZWJTcGVlY2hTeW50aGVzaXNDbGllbnQuaCIKICNpbmNsdWRlICJXZWJTdG9yYWdlTmFtZXNwYWNl
UHJvdmlkZXIuaCIKQEAgLTUwMSw2ICs1MDIsMTAgQEAgV2ViUGFnZTo6V2ViUGFnZShQYWdlSWRl
bnRpZmllciBwYWdlSUQsIAogI2lmIEVOQUJMRShBUFBMSUNBVElPTl9NQU5JRkVTVCkKICAgICBw
YWdlQ29uZmlndXJhdGlvbi5hcHBsaWNhdGlvbk1hbmlmZXN0ID0gcGFyYW1ldGVycy5hcHBsaWNh
dGlvbk1hbmlmZXN0OwogI2VuZGlmCisgICAgCisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkgJiYg
RU5BQkxFKERFVklDRV9PUklFTlRBVElPTikKKyAgICBwYWdlQ29uZmlndXJhdGlvbi5zaGFyZWRE
ZXZpY2VPcmllbnRhdGlvbkNsaWVudCA9IG5ldyBXZWJTaGFyZWREZXZpY2VPcmllbnRhdGlvbkNs
aWVudCgqdGhpcyk7CisjZW5kaWYKIAogICAgIG1fcGFnZSA9IG1ha2VVbmlxdWU8UGFnZT4oV1RG
TW92ZShwYWdlQ29uZmlndXJhdGlvbikpOwogCkluZGV4OiBTb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViUGFnZS9XZWJQYWdlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCShyZXZpc2lvbiAyNTI5NjEpCisrKyBTb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgJKHdvcmtpbmcgY29weSkKQEAgLTEyNDQsNiAr
MTI0NCwxMCBAQCBwdWJsaWM6CiAgICAgY29uc3QgU3RyaW5nJiBvdmVycmlkZGVuTWVkaWFUeXBl
KCkgY29uc3QgeyByZXR1cm4gbV9vdmVycmlkZGVuTWVkaWFUeXBlOyB9CiAgICAgdm9pZCBzZXRP
dmVycmlkZGVuTWVkaWFUeXBlKGNvbnN0IFN0cmluZyYpOwogICAgIAorI2lmIFBMQVRGT1JNKElP
U19GQU1JTFkpICYmIEVOQUJMRShERVZJQ0VfT1JJRU5UQVRJT04pCisgICAgdm9pZCBkZXZpY2VP
cmllbnRhdGlvbkNoYW5nZWQoZG91YmxlIGFscGhhLCBkb3VibGUgYmV0YSwgZG91YmxlIGdhbW1h
LCBkb3VibGUgY29tcGFzc0hlYWRpbmcsIGRvdWJsZSBjb21wYXNzQWNjdXJhY3kpOworI2VuZGlm
CisKIHByaXZhdGU6CiAgICAgV2ViUGFnZShXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgV2ViUGFn
ZUNyZWF0aW9uUGFyYW1ldGVycyYmKTsKIApJbmRleDogU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluCShyZXZpc2lvbiAyNTI5NjEp
CisrKyBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmlu
CSh3b3JraW5nIGNvcHkpCkBAIC01ODMsNCArNTgzLDggQEAgR2VuZXJhdGVTeW50aGV0aWNFZGl0
aW5nQ29tbWFuZChlbnVtOnVpbgogICAgIENvbXBsZXRlVGV4dE1hbmlwdWxhdGlvbihXZWJDb3Jl
OjpUZXh0TWFuaXB1bGF0aW9uQ29udHJvbGxlcjo6SXRlbUlkZW50aWZpZXIgaXRlbUlELCBWZWN0
b3I8V2ViQ29yZTo6VGV4dE1hbmlwdWxhdGlvbkNvbnRyb2xsZXI6Ok1hbmlwdWxhdGlvblRva2Vu
PiB0b2tlbnMpIC0+IChlbnVtOnVpbnQ4X3QgV2ViQ29yZTo6VGV4dE1hbmlwdWxhdGlvbkNvbnRy
b2xsZXI6Ok1hbmlwdWxhdGlvblJlc3VsdCByZXN1bHQpIEFzeW5jCiAgICAgCiAgICAgU2V0T3Zl
cnJpZGRlbk1lZGlhVHlwZShTdHJpbmcgbWVkaWFUeXBlKQorICAgIAorI2lmIFBMQVRGT1JNKElP
U19GQU1JTFkpICYmIEVOQUJMRShERVZJQ0VfT1JJRU5UQVRJT04pCisgICAgRGV2aWNlT3JpZW50
YXRpb25DaGFuZ2VkKGRvdWJsZSBhbHBoYSwgZG91YmxlIGJldGEsIGRvdWJsZSBnYW1tYSwgZG91
YmxlIGNvbXBhc3NIZWFkaW5nLCBkb3VibGUgY29tcGFzc0FjY3VyYWN5KQorI2VuZGlmCiB9Cklu
ZGV4OiBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbQo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFn
ZUlPUy5tbQkocmV2aXNpb24gMjUyOTYxKQorKysgU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW0JKHdvcmtpbmcgY29weSkKQEAgLTQwODgsNiArNDA4OCwx
NCBAQCB2b2lkIFdlYlBhZ2U6OnJlcXVlc3RQYXNzd29yZEZvclF1aWNrTG9vCiAKICNlbmRpZgog
CisjaWYgRU5BQkxFKERFVklDRV9PUklFTlRBVElPTikKK3ZvaWQgV2ViUGFnZTo6ZGV2aWNlT3Jp
ZW50YXRpb25DaGFuZ2VkKGRvdWJsZSBhbHBoYSwgZG91YmxlIGJldGEsIGRvdWJsZSBnYW1tYSwg
ZG91YmxlIGNvbXBhc3NIZWFkaW5nLCBkb3VibGUgY29tcGFzc0FjY3VyYWN5KQoreworICAgIGlm
IChjb3JlUGFnZSgpICYmIGNvcmVQYWdlKCktPnNoYXJlZERldmljZU9yaWVudGF0aW9uQ2xpZW50
KCkpCisgICAgICAgIGNvcmVQYWdlKCktPnNoYXJlZERldmljZU9yaWVudGF0aW9uQ2xpZW50KCkt
PmRldmljZU9yaWVudGF0aW9uQ2hhbmdlZChhbHBoYSwgYmV0YSwgZ2FtbWEsIGNvbXBhc3NIZWFk
aW5nLCBjb21wYXNzQWNjdXJhY3kpOworfQorI2VuZGlmCisKIH0gLy8gbmFtZXNwYWNlIFdlYktp
dAogCiAjdW5kZWYgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>384562</attachid>
            <date>2019-11-30 17:26:12 -0800</date>
            <delta_ts>2019-11-30 17:37:42 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-204720-20191130172611.patch</filename>
            <type>text/plain</type>
            <size>47959</size>
            <attacher name="Per Arne Vollan">pvollan</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDI1Mjk2MSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDUwIEBACisyMDE5LTExLTMwICBQZXIgQXJu
ZSBWb2xsYW4gIDxwdm9sbGFuQGFwcGxlLmNvbT4KKworICAgICAgICBbaU9TXSBDYWxscyB0byBk
ZXZpY2Ugb3JpZW50YXRpb24gQVBJIHNob3VsZCBiZSBkb25lIGluIHRoZSBVSSBwcm9jZXNzCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDQ3MjAKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGUgZGV2aWNl
IG9yaWVudGF0aW9uIEFQSSBvbiBpT1MgaXMgY29tbXVuaWNhdGluZyB3aXRoIGxvY2F0aW9uZC4g
U2luY2UgbWFjaCBsb29rdXAgdG8gdGhpcyBkYWVtb24KKyAgICAgICAgd2lsbCBiZSBjbG9zZWQs
IHRoZSBjYWxscyB0byB0aGlzIEFQSSBzaG91bGQgYmUgbW92ZWQgZnJvbSB0aGUgV2ViQ29udGVu
dCBwcm9jZXNzIHRvIHRoZSBVSSBwcm9jZXNzLgorICAgICAgICBUaGlzIHBhdGNoIGltcGxlbWVu
dHMgZm9yd2FyZGluZyBvZiB0aGUgZGV2aWNlIG9yaWVudGF0aW9uIHJlcXVlc3RzIHRvIHRoZSBV
SSBwcm9jZXNzIHRocm91Z2ggYSBuZXcKKyAgICAgICAgY2xhc3MsIFNoYXJlZERldmljZU9yaWVu
dGF0aW9uQ2xpZW50LCB3aGljaCBpcyBzdWJjbGFzc2VkIGJ5IFdlYlNoYXJlZERldmljZU9yaWVu
dGF0aW9uQ2xpZW50IGluCisgICAgICAgIG1vZGVybiBXZWJLaXQuIFRoaXMgY2xhc3MgaW1wbGVt
ZW50cyBmb3J3YXJkaW5nIG9mIHRoZSByZXF1ZXN0cyB0byB0aGUgVUkgcHJvY2VzcywgYW5kIHJl
Y2VpdmVzCisgICAgICAgIGRldmljZSBvcmllbnRhdGlvbiB1cGRhdGVzIGZyb20gdGhlIFVJIHBy
b2Nlc3MuIEFuIGluc3RhbmNlIG9mIHRoaXMgY2xhc3Mgd2lsbCBiZSBzaGFyZWQgYnkgYWxsCisg
ICAgICAgIGRldmljZSBvcmllbnRhdGlvbiBjbGllbnRzIG9uIGEgcGFnZSwgYW5kIHBhc3NlZCBh
cyBwYXJ0IG9mIHRoZSBwYWdlIGNvbmZpZ3VyYXRpb24gcGFyYW1ldGVycy4gT24KKyAgICAgICAg
dGhlIFVJIHByb2Nlc3Mgc2lkZSwgdGhlIFdlYiBwYWdlIHByb3h5IGlzIHRha2luZyBjYXJlIG9m
IGNhbGxpbmcgdGhlIGRldmljZSBvcmllbnRhdGlvbiBBUEkgdGhyb3VnaAorICAgICAgICB0aGUg
ZXhpc3RpbmcgV2ViQ29yZU1vdGlvbk1hbmFnZXIgT2JqZWN0aXZlLUMgY2xhc3MuCisKKyAgICAg
ICAgTm8gbmV3IHRlc3RzLCBjb3ZlcmVkIGJ5IGV4aXN0aW5nIHRlc3RzLgorCisgICAgICAgICog
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGRvbS9EZXZpY2VP
cmllbnRhdGlvbkNsaWVudC5oOgorICAgICAgICAoV2ViQ29yZTo6RGV2aWNlT3JpZW50YXRpb25D
bGllbnQ6OnNldFNoYXJlZERldmljZU9yaWVudGF0aW9uQ2xpZW50KToKKyAgICAgICAgKiBkb20v
RG9jdW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6bV91bmRvTWFuYWdlcik6CisgICAgICAg
ICogcGFnZS9QYWdlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Om1fc2hhcmVkRGV2aWNlT3JpZW50
YXRpb25DbGllbnQpOgorICAgICAgICAoV2ViQ29yZTo6bV9hcHBsaWNhdGlvbk1hbmlmZXN0KTog
RGVsZXRlZC4KKyAgICAgICAgKiBwYWdlL1BhZ2UuaDoKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2U6
OnNoYXJlZERldmljZU9yaWVudGF0aW9uQ2xpZW50IGNvbnN0KToKKyAgICAgICAgKiBwYWdlL1Bh
Z2VDb25maWd1cmF0aW9uLmg6CisgICAgICAgICogcGxhdGZvcm0vaW9zL0RldmljZU9yaWVudGF0
aW9uQ2xpZW50SU9TLmg6CisgICAgICAgICogcGxhdGZvcm0vaW9zL0RldmljZU9yaWVudGF0aW9u
Q2xpZW50SU9TLm1tOgorICAgICAgICAoV2ViQ29yZTo6RGV2aWNlT3JpZW50YXRpb25DbGllbnRJ
T1M6OnN0YXJ0VXBkYXRpbmcpOgorICAgICAgICAoV2ViQ29yZTo6RGV2aWNlT3JpZW50YXRpb25D
bGllbnRJT1M6OnN0b3BVcGRhdGluZyk6CisgICAgICAgIChXZWJDb3JlOjpEZXZpY2VPcmllbnRh
dGlvbkNsaWVudElPUzo6ZGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyRGVzdHJveWVkKToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9pb3MvU2hhcmVkRGV2aWNlT3JpZW50YXRpb25DbGllbnQuaDogQWRk
ZWQuCisgICAgICAgIChXZWJDb3JlOjpTaGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudDo6U2hh
cmVkRGV2aWNlT3JpZW50YXRpb25DbGllbnQpOgorICAgICAgICAoV2ViQ29yZTo6U2hhcmVkRGV2
aWNlT3JpZW50YXRpb25DbGllbnQ6On5TaGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudCk6Cisg
ICAgICAgIChXZWJDb3JlOjpTaGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudDo6c3RhcnRVcGRh
dGluZyk6CisgICAgICAgIChXZWJDb3JlOjpTaGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudDo6
c3RvcFVwZGF0aW5nKToKKyAgICAgICAgKFdlYkNvcmU6OlNoYXJlZERldmljZU9yaWVudGF0aW9u
Q2xpZW50OjpkZXZpY2VPcmllbnRhdGlvbkNoYW5nZWQpOgorICAgICAgICAqIHBsYXRmb3JtL2lv
cy9XZWJDb3JlTW90aW9uTWFuYWdlci5oOgorICAgICAgICAqIHBsYXRmb3JtL2lvcy9XZWJDb3Jl
TW90aW9uTWFuYWdlci5tbToKKyAgICAgICAgKC1bV2ViQ29yZU1vdGlvbk1hbmFnZXIgYWRkT3Jp
ZW50YXRpb25DbGllbnQ6XSk6CisgICAgICAgICgtW1dlYkNvcmVNb3Rpb25NYW5hZ2VyIHJlbW92
ZU9yaWVudGF0aW9uQ2xpZW50Ol0pOgorICAgICAgICAqIHBsYXRmb3JtL2lvcy9XZWJDb3JlTW90
aW9uTWFuYWdlckNsaWVudC5oOgorCiAyMDE5LTExLTMwICB5b3Vlbm4gZmFibGV0ICA8eW91ZW5u
QGFwcGxlLmNvbT4KIAogICAgICAgICBTaW1wbGlmeSBDb3JlQXVkaW9DYXB0dXJlU291cmNlIHN1
c3BlbnNpb24gbG9naWMKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvago9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oJKHJldmlzaW9uIDI1Mjk2MSkKKysrIFNvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkod29ya2luZyBjb3B5KQpAQCAtOTA3
LDcgKzkwNyw3IEBACiAJCTMxMzU5MTBBMUU3RERDNzMwMEYzMDYzMCAvKiBSVENTZHBUeXBlLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzMTM1OTEwNDFF
N0REQzYwMDBGMzA2MzAgLyogUlRDU2RwVHlwZS5oICovOyB9OwogCQkzMTM1OTEwQjFFN0REQzcz
MDBGMzA2MzAgLyogUlRDU2lnbmFsaW5nU3RhdGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMxMzU5MTA1MUU3RERDNjAwMEYzMDYzMCAvKiBSVENTaWdu
YWxpbmdTdGF0ZS5oICovOyB9OwogCQkzMTNCQ0UxQzIzNUUzQkU1MDBGQzM5RTUgLyogRWxlbWVu
dENvbnRleHQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDMxM0JDRTFCMjM1RTNCREIwMEZDMzlFNSAvKiBFbGVtZW50Q29udGV4dC5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07Ci0JCTMxNDAzNzlCMTI0QkVBN0Yw
MEFGNDBFNCAvKiBXZWJDb3JlTW90aW9uTWFuYWdlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzE0MDM3OTcxMjRCRUE3RjAwQUY0MEU0IC8qIFdlYkNv
cmVNb3Rpb25NYW5hZ2VyLmggKi87IH07CisJCTMxNDAzNzlCMTI0QkVBN0YwMEFGNDBFNCAvKiBX
ZWJDb3JlTW90aW9uTWFuYWdlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gMzE0MDM3OTcxMjRCRUE3RjAwQUY0MEU0IC8qIFdlYkNvcmVNb3Rpb25NYW5h
Z2VyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJ
MzE0MDM3OUQxMjRCRUE3RjAwQUY0MEU0IC8qIERldmljZU9yaWVudGF0aW9uQ2xpZW50SU9TLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzMTQwMzc5OTEy
NEJFQTdGMDBBRjQwRTQgLyogRGV2aWNlT3JpZW50YXRpb25DbGllbnRJT1MuaCAqLzsgfTsKIAkJ
MzE0MEM1MjAxRkRGMTUxQTAwRDJBODczIC8qIE9mZnNjcmVlbkNhbnZhc1JlbmRlcmluZ0NvbnRl
eHQyRC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzE0
MEM1MUUxRkRGMTUxQTAwRDJBODczIC8qIE9mZnNjcmVlbkNhbnZhc1JlbmRlcmluZ0NvbnRleHQy
RC5oICovOyB9OwogCQkzMTQwQzUyNDFGREYzMTg3MDBEMkE4NzMgLyogQ2FudmFzUmVuZGVyaW5n
Q29udGV4dDJEQmFzZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMzE0MEM1MjIxRkRGMzE4NjAwRDJBODczIC8qIENhbnZhc1JlbmRlcmluZ0NvbnRleHQy
REJhc2UuaCAqLzsgfTsKQEAgLTQ3NzYsNiArNDc3Niw4IEBACiAJCUUzNTgwMkI2MURDODQzNUQw
MEE5NzczQyAvKiBET01KSVRJRExUeXBlRmlsdGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMzU4MDJCNTFEQzg0MzU4MDBBOTc3M0MgLyogRE9NSklU
SURMVHlwZUZpbHRlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CiAJCUUzNzdGRTREMURBREUxNjUwMENERDAyNSAvKiBOb2RlQ29uc3RhbnRzLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFM0QwNDk5MzFEQURD
MDQ1MDA3MThGM0MgLyogTm9kZUNvbnN0YW50cy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07CiAJCUUzN0M4NjUwMUVCNjNFM0YwMDg3QzZDQSAvKiBKU0RP
TVByb21pc2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEUzN0M4NjRGMUVCNjNFMkQwMDg3QzZDQSAvKiBKU0RPTVByb21pc2UuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQlFMzk2MjhBNDIzODg5MzVCMDA2
NThFQ0QgLyogU2hhcmVkRGV2aWNlT3JpZW50YXRpb25DbGllbnQuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUzOTYyOEEzMjM4ODkzNUIwMDY1OEVDRCAv
KiBTaGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJV
VEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCUUzOTYyOEFDMjM5MUM4MTcwMDY1OEVDRCAvKiBX
ZWJDb3JlTW90aW9uTWFuYWdlckNsaWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gRTM5NjI4QUIyMzkxQzRGMzAwNjU4RUNEIC8qIFdlYkNvcmVNb3Rp
b25NYW5hZ2VyQ2xpZW50LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKIAkJRTNBNzc2NjcxREM4NUQyODAwQjY5MEQ4IC8qIERPTUpJVElETENvbnZlcnQu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUzQTc3NjY1
MURDODVEMjIwMEI2OTBEOCAvKiBET01KSVRJRExDb252ZXJ0LmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJRTNBNzc2NjgxREM4NUQyODAwQjY5MEQ4
IC8qIERPTUpJVElETFR5cGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEUzQTc3NjY2MURDODVEMjIwMEI2OTBEOCAvKiBET01KSVRJRExUeXBlLmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJRTNCMkYwRUQx
RDdGNENBMzAwQjBDOUQxIC8qIExvYWRhYmxlU2NyaXB0LmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFM0IyRjBFNzFEN0YzNUVDMDBCMEM5RDEgLyogTG9h
ZGFibGVTY3JpcHQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OwpAQCAtMTUwNjUsNiArMTUwNjcsOCBAQAogCQlFMzg4Mzg5NDFCQUQxNDVGMDBENjJFRTMg
LyogU2NyaXB0TW9kdWxlTG9hZGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IFNjcmlwdE1vZHVsZUxvYWRlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCUUzODgzODk1MUJBRDE0NUYwMEQ2MkVFMyAvKiBTY3JpcHRNb2R1bGVMb2FkZXIuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU2NyaXB0TW9kdWxlTG9hZGVyLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUzOEQwNjA5MUY4RTgxMTkwMDY0OUNGMiAvKiBNb2R1
bGVGZXRjaFBhcmFtZXRlcnMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTW9k
dWxlRmV0Y2hQYXJhbWV0ZXJzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUUzOTYy
OEEzMjM4ODkzNUIwMDY1OEVDRCAvKiBTaGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudC5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBTaGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudC5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQlFMzk2MjhBQjIzOTFDNEYzMDA2NThFQ0QgLyogV2ViQ29yZU1v
dGlvbk1hbmFnZXJDbGllbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViQ29yZU1vdGlvbk1hbmFnZXJD
bGllbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTM5NzVCNzYxRUM5QUYzOTAw
ODQ3NzE3IC8qIEpTRG9jdW1lbnRGcmFnbWVudERPTUpJVC5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBKU0RvY3VtZW50RnJhZ21lbnRET01KSVQuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQlFMzk3NUI3NzFFQzlBRjM5MDA4NDc3MTcgLyogSlNFbGVt
ZW50RE9NSklULmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTRWxl
bWVudERPTUpJVC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUzOTc1Qjc4MUVD
OUFGMzkwMDg0NzcxNyAvKiBKU0V2ZW50RE9NSklULmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IEpTRXZlbnRET01KSVQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwpAQCAtMTY2NDIsOCArMTY2NDYsOCBAQAogCQkJCTExNUNBODMwMjMzMjhCMUUwMEZEM0Iw
OCAvKiBMYXlvdXRVbml0cy5jcHAgKi8sCiAJCQkJNkY3MzkxOEMyMTA2Q0VERDAwNkFGMjYyIC8q
IExheW91dFVuaXRzLmggKi8sCiAJCQkJNkZFN0FBMjYyMUMzN0I2MzAwMjk2RENEIC8qIE1hcmdp
blR5cGVzLmggKi8sCi0JCQkJRTRBQkFCREIyMzYwODhGRDAwRkE0MzQ1IC8qIFJlbmRlckJsb2Nr
Rmxvd0xpbmVMYXlvdXQuaCAqLywKIAkJCQlFNEFCQUJERTIzNjA4OTNEMDBGQTQzNDUgLyogUmVu
ZGVyQmxvY2tGbG93TGluZUxheW91dC5jcHAgKi8sCisJCQkJRTRBQkFCREIyMzYwODhGRDAwRkE0
MzQ1IC8qIFJlbmRlckJsb2NrRmxvd0xpbmVMYXlvdXQuaCAqLywKIAkJCQkxMUZGMDJENTIwQkEz
QzgxMDA4M0YyNUIgLyogVmVyaWZpY2F0aW9uLmNwcCAqLywKIAkJCSk7CiAJCQlwYXRoID0gbGF5
b3V0OwpAQCAtMjI4MTAsNiArMjI4MTQsNyBAQAogCQkJCUU0NTM5MDM0MEVBRkQ2MzcwMDM2OTVD
OCAvKiBTY3JvbGxWaWV3SU9TLm1tICovLAogCQkJCUJFQTgwN0M2MEY3MTRBMDMwMDUyNDE5OSAv
KiBTZWxlY3Rpb25SZWN0LmNwcCAqLywKIAkJCQlCRUE4MDdDNzBGNzE0QTAzMDA1MjQxOTkgLyog
U2VsZWN0aW9uUmVjdC5oICovLAorCQkJCUUzOTYyOEEzMjM4ODkzNUIwMDY1OEVDRCAvKiBTaGFy
ZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudC5oICovLAogCQkJCTBGMDNDMDczMTg4NDY5NUUwMEE1
RjhDQSAvKiBTeXN0ZW1NZW1vcnkuaCAqLywKIAkJCQlFNDUzOTBBRDBFQUZGNEI1MDAzNjk1Qzgg
LyogU3lzdGVtTWVtb3J5SU9TLmNwcCAqLywKIAkJCQk0NEM5OTE5RDBGM0QyMTBFMDA1ODY2NzAg
LyogVGhlbWVJT1MuaCAqLywKQEAgLTIyODI2LDYgKzIyODMxLDcgQEAKIAkJCQkxRjM2RUE5QjFF
MjFCQTE3MDA2MjFFMjUgLyogV2ViQmFja2dyb3VuZFRhc2tDb250cm9sbGVyLm1tICovLAogCQkJ
CTMxNDAzNzk3MTI0QkVBN0YwMEFGNDBFNCAvKiBXZWJDb3JlTW90aW9uTWFuYWdlci5oICovLAog
CQkJCTMxNDAzNzk4MTI0QkVBN0YwMEFGNDBFNCAvKiBXZWJDb3JlTW90aW9uTWFuYWdlci5tbSAq
LywKKwkJCQlFMzk2MjhBQjIzOTFDNEYzMDA2NThFQ0QgLyogV2ViQ29yZU1vdGlvbk1hbmFnZXJD
bGllbnQuaCAqLywKIAkJCQlGRTBEODRFODEwNDg0MzQ4MDAxQTE3OUUgLyogV2ViRXZlbnQuaCAq
LywKIAkJCQlGRTBEODRFQTEwNDg0MzZFMDAxQTE3OUUgLyogV2ViRXZlbnQubW0gKi8sCiAJCQkJ
RjQ4MjIzMEYxRTM4NjlCODAwNjZGQzc5IC8qIFdlYkl0ZW1Qcm92aWRlclBhc3RlYm9hcmQuaCAq
LywKQEAgLTI4NzI5LDggKzI4NzM1LDggQEAKIAkJCQlGRkVGQUIyOTE4MzgwREEwMDA1MTQ1MzQg
LyogTGluZUxheW91dFN0YXRlLmggKi8sCiAJCQkJRTQ4NEEzM0QyMzA1NTMwMzAwOUFERTZBIC8q
IExpbmVMYXlvdXRUcmF2ZXJzYWwuY3BwICovLAogCQkJCUU0ODRBMzNCMjMwNTUzMDMwMDlBREU2
QSAvKiBMaW5lTGF5b3V0VHJhdmVyc2FsLmggKi8sCi0JCQkJRTQzNDNEMjEyMzkyNzc4MzAwRUJC
QjY2IC8qIExpbmVMYXlvdXRUcmF2ZXJzYWxTaW1wbGVQYXRoLmggKi8sCiAJCQkJRTQzNDNEMjQy
MzkyNzc4RjAwRUJCQjY2IC8qIExpbmVMYXlvdXRUcmF2ZXJzYWxDb21wbGV4UGF0aC5oICovLAor
CQkJCUU0MzQzRDIxMjM5Mjc3ODMwMEVCQkI2NiAvKiBMaW5lTGF5b3V0VHJhdmVyc2FsU2ltcGxl
UGF0aC5oICovLAogCQkJCUZGREJDMDQ2MTgzRDI3QjcwMDQwNzEwOSAvKiBMaW5lV2lkdGguY3Bw
ICovLAogCQkJCUZGREJDMDQ1MTgzRDI3QjcwMDQwNzEwOSAvKiBMaW5lV2lkdGguaCAqLywKIAkJ
CQlGRkFDMzBGRDE4NEZCMTQ1MDA4QzRGMUUgLyogVHJhaWxpbmdPYmplY3RzLmNwcCAqLywKQEAg
LTMwNTQxLDcgKzMwNTQ3LDYgQEAKIAkJCQk4MzcwNTY5MDFGNTA5MTVDMDBEOTM0MjUgLyogSlNG
aWxlU3lzdGVtRW50cnlDYWxsYmFjay5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODMzQjlFMzYxRjUw
OEQ4NTAwRTBFNDI4IC8qIEpTRmlsZVN5c3RlbUZpbGVFbnRyeS5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJNzEyQkU0ODgxRkU4Njg2QTAwMjAzMUNDIC8qIEpTRmlsbE1vZGUuaCBpbiBIZWFkZXJzICov
LAotCQkJCUU0MzQzRDI1MjM5Mjc3OTAwMEVCQkI2NiAvKiBMaW5lTGF5b3V0VHJhdmVyc2FsQ29t
cGxleFBhdGguaCBpbiBIZWFkZXJzICovLAogCQkJCUI2RDlEMjdCMTRFQUMwODYwMDkwRDc1RSAv
KiBKU0ZvY3VzRXZlbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUMyODA4MzNGMUM2REMyNkYwMDE0
NTFCNiAvKiBKU0ZvbnRGYWNlLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQzI0RUVBOTFDNzJBN0I0
MDA4MEY4RkMgLyogSlNGb250RmFjZVNldC5oIGluIEhlYWRlcnMgKi8sCkBAIC0zMTE5Niw2ICsz
MTIwMSw4IEBACiAJCQkJNkYyNkVCNDgyMzQwMDRBNTAwNjkwNkUyIC8qIExpbmVMYXlvdXRDb250
ZXh0LmggaW4gSGVhZGVycyAqLywKIAkJCQlGRkVGQUIyQTE4MzgwREEwMDA1MTQ1MzQgLyogTGlu
ZUxheW91dFN0YXRlLmggaW4gSGVhZGVycyAqLywKIAkJCQlFNDg0QTMzRTIzMDU1MzI1MDA5QURF
NkEgLyogTGluZUxheW91dFRyYXZlcnNhbC5oIGluIEhlYWRlcnMgKi8sCisJCQkJRTQzNDNEMjUy
MzkyNzc5MDAwRUJCQjY2IC8qIExpbmVMYXlvdXRUcmF2ZXJzYWxDb21wbGV4UGF0aC5oIGluIEhl
YWRlcnMgKi8sCisJCQkJRTQzNDNEMjMyMzkyNzc4NDAwRUJCQjY2IC8qIExpbmVMYXlvdXRUcmF2
ZXJzYWxTaW1wbGVQYXRoLmggaW4gSGVhZGVycyAqLywKIAkJCQlGRkRCQzA0NzE4M0QyN0I3MDA0
MDcxMDkgLyogTGluZVdpZHRoLmggaW4gSGVhZGVycyAqLywKIAkJCQlDQkE5REMwQjFERjQ0REY0
MDAwNTY3NUMgLyogTGlua0hlYWRlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTE0M0IyNjMxRERE
MTUyMDAwMTRGQUM2IC8qIExpbmtJY29uLmggaW4gSGVhZGVycyAqLywKQEAgLTMxNjg5LDcgKzMx
Njk2LDYgQEAKIAkJCQk1N0RDRUQ3NDIxNDMwNUYwMDAxNkI4NDcgLyogUHVibGljS2V5Q3JlZGVu
dGlhbERhdGEuaCBpbiBIZWFkZXJzICovLAogCQkJCTU3MzAzQkVGMjAwOTgwQzYwMDM1NTk2NSAv
KiBQdWJsaWNLZXlDcmVkZW50aWFsRGVzY3JpcHRvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTcz
MDNDMEEyMDA5OUJBRDAwMzU1OTY1IC8qIFB1YmxpY0tleUNyZWRlbnRpYWxSZXF1ZXN0T3B0aW9u
cy5oIGluIEhlYWRlcnMgKi8sCi0JCQkJRTQzNDNEMjMyMzkyNzc4NDAwRUJCQjY2IC8qIExpbmVM
YXlvdXRUcmF2ZXJzYWxTaW1wbGVQYXRoLmggaW4gSGVhZGVycyAqLywKIAkJCQk1NzMwM0JFQjIw
MDk3RjQwMDAzNTU5NjUgLyogUHVibGljS2V5Q3JlZGVudGlhbFR5cGUuaCBpbiBIZWFkZXJzICov
LAogCQkJCTAwODFGRjAwMTZCMEEyRDMwMDhBQUE3QSAvKiBQdWJsaWNTdWZmaXguaCBpbiBIZWFk
ZXJzICovLAogCQkJCTEwRkIwODRCMTRFMTVDN0UwMEEzREI5OCAvKiBQdWJsaWNVUkxNYW5hZ2Vy
LmggaW4gSGVhZGVycyAqLywKQEAgLTMxNzU1LDYgKzMxNzYxLDcgQEAKIAkJCQk3Q0Q0OTRDRDFB
ODZFQjFEMDAwQTg3RUMgLyogUmVuZGVyQXR0YWNobWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
QkNFQTQ4NjAwOTdEOTMwMjAwOTRDOUU0IC8qIFJlbmRlckJsb2NrLmggaW4gSGVhZGVycyAqLywK
IAkJCQlCQzEwRDc2ODE3RDhFRTcxMDA1RTI2MjYgLyogUmVuZGVyQmxvY2tGbG93LmggaW4gSGVh
ZGVycyAqLywKKwkJCQlFNEFCQUJERDIzNjA4OEZFMDBGQTQzNDUgLyogUmVuZGVyQmxvY2tGbG93
TGluZUxheW91dC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkNFQTQ4NjIwOTdEOTMwMjAwOTRDOUU0
IC8qIFJlbmRlckJveC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkNFQjE3OUMxNDMzNzlGNTAwNTJF
QUU5IC8qIFJlbmRlckJveEZyYWdtZW50SW5mby5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkM5NkRC
NDMwRjNBODgwRTAwNTczQ0IzIC8qIFJlbmRlckJveE1vZGVsT2JqZWN0LmggaW4gSGVhZGVycyAq
LywKQEAgLTMyMTQzLDYgKzMyMTUwLDcgQEAKIAkJCQlGRDFBRjE1MDE2NTZGMTUxMDBDNkQ0Rjcg
LyogU2hhcGVWYWx1ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUQ5RjBGQzEyMTIyMDI5QjAwNUQ4
RkQ0IC8qIFNoYXJlRGF0YS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUE0QTk1NEUwQjRFRENDQjAw
MkQ4QzNDIC8qIFNoYXJlZEJ1ZmZlci5oIGluIEhlYWRlcnMgKi8sCisJCQkJRTM5NjI4QTQyMzg4
OTM1QjAwNjU4RUNEIC8qIFNoYXJlZERldmljZU9yaWVudGF0aW9uQ2xpZW50LmggaW4gSGVhZGVy
cyAqLywKIAkJCQk4MzRERkFEMDFGN0RBRTVEMDBDMjcyNUIgLyogU2hhcmVkU3RyaW5nSGFzaC5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJOTMzMDlFQTMwOTlFQjc4QzAwNTZFNTgxIC8qIFNoYXJlZFRp
bWVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk4MzYyRThDMTIwQ0VGOUNCMDAyNDU4ODYgLyogU2hv
dWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkLmggaW4gSGVhZGVycyAqLywKQEAgLTMyNDcwLDcgKzMy
NDc4LDYgQEAKIAkJCQkwODhDMkY3QTEyMzkwMDgxMDAzRDY1Q0UgLyogU1ZHVGV4dExheW91dEF0
dHJpYnV0ZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTA4MTA5M0RDMTI1NUYwRTcwMEVEOUQyOSAv
KiBTVkdUZXh0TGF5b3V0QXR0cmlidXRlc0J1aWxkZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTA4
MTY2OERBMTI1NjAzRDUwMDZGMjVERSAvKiBTVkdUZXh0TGF5b3V0RW5naW5lLmggaW4gSGVhZGVy
cyAqLywKLQkJCQlFNEFCQUJERDIzNjA4OEZFMDBGQTQzNDUgLyogUmVuZGVyQmxvY2tGbG93TGlu
ZUxheW91dC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMDgwRTQ5MjYxMjU1RjNCRDAwRUZDQTI3IC8q
IFNWR1RleHRMYXlvdXRFbmdpbmVCYXNlbGluZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMDgwRTQ5
MjgxMjU1RjNCRDAwRUZDQTI3IC8qIFNWR1RleHRMYXlvdXRFbmdpbmVTcGFjaW5nLmggaW4gSGVh
ZGVycyAqLywKIAkJCQkwOEYwQkZDNjEyNTVDNTNDMDAwNzUxODUgLyogU1ZHVGV4dE1ldHJpY3Mu
aCBpbiBIZWFkZXJzICovLApAQCAtMzI3NjQsNiArMzI3NzEsNyBAQAogCQkJCUJDNTNEOTExMTE0
MzEwQ0MwMDBEODE3RSAvKiBXZWJDb3JlSlNDbGllbnREYXRhLmggaW4gSGVhZGVycyAqLywKIAkJ
CQk5M0YxOTlCQjA4MjQ1RTU5MDAxRTlBQkMgLyogV2ViQ29yZUtleWJvYXJkVUlNb2RlLmggaW4g
SGVhZGVycyAqLywKIAkJCQkzMTQwMzc5QjEyNEJFQTdGMDBBRjQwRTQgLyogV2ViQ29yZU1vdGlv
bk1hbmFnZXIuaCBpbiBIZWFkZXJzICovLAorCQkJCUUzOTYyOEFDMjM5MUM4MTcwMDY1OEVDRCAv
KiBXZWJDb3JlTW90aW9uTWFuYWdlckNsaWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQ0RDOTc5
RjUxQzQ5OEMwOTAwREI1MEQ0IC8qIFdlYkNvcmVOU0Vycm9yRXh0cmFzLmggaW4gSGVhZGVycyAq
LywKIAkJCQlGNEU1N0VFMTIxM0Y0MzRBMDA0RUE5OEUgLyogV2ViQ29yZU5TRm9udE1hbmFnZXJF
eHRyYXMuaCBpbiBIZWFkZXJzICovLAogCQkJCUM1QjRDMjREMTUwOTIzNkMwMEE2RUYzNyAvKiBX
ZWJDb3JlTlNVUkxFeHRyYXMuaCBpbiBIZWFkZXJzICovLApJbmRleDogU291cmNlL1dlYkNvcmUv
ZG9tL0RldmljZU9yaWVudGF0aW9uQ2xpZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvZG9tL0RldmljZU9yaWVudGF0aW9uQ2xpZW50LmgJKHJldmlzaW9uIDI1Mjk2MSkKKysrIFNv
dXJjZS9XZWJDb3JlL2RvbS9EZXZpY2VPcmllbnRhdGlvbkNsaWVudC5oCSh3b3JraW5nIGNvcHkp
CkBAIC0yOCwxMiArMjgsMTQgQEAKIAogI2luY2x1ZGUgIkRldmljZUNsaWVudC5oIgogI2luY2x1
ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgorI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KIAogbmFtZXNw
YWNlIFdlYkNvcmUgewogCiBjbGFzcyBEZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXI7CiBjbGFz
cyBEZXZpY2VPcmllbnRhdGlvbkRhdGE7CiBjbGFzcyBQYWdlOworY2xhc3MgU2hhcmVkRGV2aWNl
T3JpZW50YXRpb25DbGllbnQ7CiAKIGNsYXNzIERldmljZU9yaWVudGF0aW9uQ2xpZW50IDogcHVi
bGljIERldmljZUNsaWVudCB7CiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoRGV2aWNlT3JpZW50
YXRpb25DbGllbnQpOwpAQCAtNDMsNiArNDUsMTAgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9p
ZCBzZXRDb250cm9sbGVyKERldmljZU9yaWVudGF0aW9uQ29udHJvbGxlciopID0gMDsKICAgICB2
aXJ0dWFsIERldmljZU9yaWVudGF0aW9uRGF0YSogbGFzdE9yaWVudGF0aW9uKCkgY29uc3QgPSAw
OwogICAgIHZpcnR1YWwgdm9pZCBkZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXJEZXN0cm95ZWQo
KSA9IDA7CisKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKQorICAgIHZpcnR1YWwgdm9pZCBzZXRT
aGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudChSZWZQdHI8U2hhcmVkRGV2aWNlT3JpZW50YXRp
b25DbGllbnQ+KSB7IH07CisjZW5kaWYKIH07CiAKIFdFQkNPUkVfRVhQT1JUIHZvaWQgcHJvdmlk
ZURldmljZU9yaWVudGF0aW9uVG8oUGFnZSYsIERldmljZU9yaWVudGF0aW9uQ2xpZW50Jik7Cklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAJKHJldmlzaW9uIDI1Mjk2MSkKKysrIFNvdXJjZS9X
ZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTYwNyw5ICs2MDcsMTUg
QEAgRG9jdW1lbnQ6OkRvY3VtZW50KEZyYW1lKiBmcmFtZSwgY29uc3QgVQogICAgICAgICBub2Rl
TGlzdEFuZENvbGxlY3Rpb25Db3VudCA9IDA7CiAKICAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRp
b246OmFkZEV2ZW50TGlzdGVuZXJzVG9Ob2RlKCp0aGlzKTsKKyAgICAKICNpZiBFTkFCTEUoTUVE
SUFfU1RSRUFNKQogICAgIG1fc2V0dGluZ3MtPnNldExlZ2FjeUdldFVzZXJNZWRpYUVuYWJsZWQo
cXVpcmtzKCkuc2hvdWxkRW5hYmxlTGVnYWN5R2V0VXNlck1lZGlhKCkpOwogI2VuZGlmCisKKyNp
ZiBQTEFURk9STShJT1NfRkFNSUxZKSAmJiBFTkFCTEUoREVWSUNFX09SSUVOVEFUSU9OKQorICAg
IGlmIChwYWdlKCkgJiYgcGFnZSgpLT5zaGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudCgpKQor
ICAgICAgICBtX2RldmljZU9yaWVudGF0aW9uQ2xpZW50LT5zZXRTaGFyZWREZXZpY2VPcmllbnRh
dGlvbkNsaWVudChwYWdlKCktPnNoYXJlZERldmljZU9yaWVudGF0aW9uQ2xpZW50KCkpOworI2Vu
ZGlmCiB9CiAKIFJlZjxEb2N1bWVudD4gRG9jdW1lbnQ6OmNyZWF0ZShEb2N1bWVudCYgY29udGV4
dERvY3VtZW50KQpJbmRleDogU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCShyZXZpc2lvbiAyNTI5NjEpCisrKyBT
b3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yODksNiArMjg5
LDkgQEAgUGFnZTo6UGFnZShQYWdlQ29uZmlndXJhdGlvbiYmIHBhZ2VDb25maQogI2lmIEVOQUJM
RShBUFBMSUNBVElPTl9NQU5JRkVTVCkKICAgICAsIG1fYXBwbGljYXRpb25NYW5pZmVzdChwYWdl
Q29uZmlndXJhdGlvbi5hcHBsaWNhdGlvbk1hbmlmZXN0KQogI2VuZGlmCisjaWYgRU5BQkxFKERF
VklDRV9PUklFTlRBVElPTikgJiYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKyAgICAsIG1fc2hhcmVk
RGV2aWNlT3JpZW50YXRpb25DbGllbnQoV1RGTW92ZShwYWdlQ29uZmlndXJhdGlvbi5zaGFyZWRE
ZXZpY2VPcmllbnRhdGlvbkNsaWVudCkpCisjZW5kaWYKIHsKICAgICB1cGRhdGVUaW1lclRocm90
dGxpbmdTdGF0ZSgpOwogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuaAkocmV2aXNpb24gMjUyOTYxKQorKysg
U291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmgJKHdvcmtpbmcgY29weSkKQEAgLTY5LDYgKzY5LDEw
IEBACiAjaW5jbHVkZSAiTWVkaWFQbGF5YmFja1RhcmdldENvbnRleHQuaCIKICNlbmRpZgogCisj
aWYgRU5BQkxFKERFVklDRV9PUklFTlRBVElPTikgJiYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKyNp
bmNsdWRlICJTaGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudC5oIgorI2VuZGlmCisKIG5hbWVz
cGFjZSBKU0MgewogY2xhc3MgRGVidWdnZXI7CiB9CkBAIC03MTksNiArNzIzLDEwIEBAIHB1Ymxp
YzoKIAogICAgIFdFQkNPUkVfRVhQT1JUIFZlY3RvcjxSZWY8RWxlbWVudD4+IGVkaXRhYmxlRWxl
bWVudHNJblJlY3QoY29uc3QgRmxvYXRSZWN0JikgY29uc3Q7CiAKKyNpZiBFTkFCTEUoREVWSUNF
X09SSUVOVEFUSU9OKSAmJiBQTEFURk9STShJT1NfRkFNSUxZKQorICAgIFJlZlB0cjxTaGFyZWRE
ZXZpY2VPcmllbnRhdGlvbkNsaWVudD4gc2hhcmVkRGV2aWNlT3JpZW50YXRpb25DbGllbnQoKSBj
b25zdCB7IHJldHVybiBtX3NoYXJlZERldmljZU9yaWVudGF0aW9uQ2xpZW50OyB9CisjZW5kaWYK
KwogcHJpdmF0ZToKICAgICBzdHJ1Y3QgTmF2aWdhdGlvbiB7CiAgICAgICAgIFJlZ2lzdHJhYmxl
RG9tYWluIGRvbWFpbjsKQEAgLTk5MCw2ICs5OTgsMTAgQEAgcHJpdmF0ZToKIAogICAgIE9wdGlv
bmFsPFZpZXdwb3J0QXJndW1lbnRzPiBtX292ZXJyaWRlVmlld3BvcnRBcmd1bWVudHM7CiAKKyNp
ZiBFTkFCTEUoREVWSUNFX09SSUVOVEFUSU9OKSAmJiBQTEFURk9STShJT1NfRkFNSUxZKQorICAg
IFJlZlB0cjxTaGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudD4gbV9zaGFyZWREZXZpY2VPcmll
bnRhdGlvbkNsaWVudDsKKyNlbmRpZgorCiAgICAgYm9vbCBtX3Nob3VsZEVuYWJsZUlDRUNhbmRp
ZGF0ZUZpbHRlcmluZ0J5RGVmYXVsdCB7IHRydWUgfTsKICAgICBib29sIG1fbWVkaWFQbGF5YmFj
a0lzU3VzcGVuZGVkIHsgZmFsc2UgfTsKICAgICBib29sIG1fbWVkaWFCdWZmZXJpbmdJc1N1c3Bl
bmRlZCB7IGZhbHNlIH07CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VDb25maWd1cmF0
aW9uLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlQ29uZmlndXJhdGlv
bi5oCShyZXZpc2lvbiAyNTI5NjEpCisrKyBTb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VDb25maWd1
cmF0aW9uLmgJKHdvcmtpbmcgY29weSkKQEAgLTU3LDYgKzU3LDcgQEAgY2xhc3MgUGVyZm9ybWFu
Y2VMb2dnaW5nQ2xpZW50OwogY2xhc3MgUGx1Z0luQ2xpZW50OwogY2xhc3MgUGx1Z2luSW5mb1By
b3ZpZGVyOwogY2xhc3MgUHJvZ3Jlc3NUcmFja2VyQ2xpZW50OworY2xhc3MgU2hhcmVkRGV2aWNl
T3JpZW50YXRpb25DbGllbnQ7CiBjbGFzcyBTb2NrZXRQcm92aWRlcjsKIGNsYXNzIFN0b3JhZ2VO
YW1lc3BhY2VQcm92aWRlcjsKIGNsYXNzIFVzZXJDb250ZW50UHJvdmlkZXI7CkBAIC0xMTgsNiAr
MTE5LDEwIEBAIHB1YmxpYzoKICAgICBSZWZQdHI8U3RvcmFnZU5hbWVzcGFjZVByb3ZpZGVyPiBz
dG9yYWdlTmFtZXNwYWNlUHJvdmlkZXI7CiAgICAgUmVmUHRyPFVzZXJDb250ZW50UHJvdmlkZXI+
IHVzZXJDb250ZW50UHJvdmlkZXI7CiAgICAgUmVmUHRyPFZpc2l0ZWRMaW5rU3RvcmU+IHZpc2l0
ZWRMaW5rU3RvcmU7CisgICAgCisjaWYgRU5BQkxFKERFVklDRV9PUklFTlRBVElPTikgJiYgUExB
VEZPUk0oSU9TX0ZBTUlMWSkKKyAgICBSZWZQdHI8U2hhcmVkRGV2aWNlT3JpZW50YXRpb25DbGll
bnQ+IHNoYXJlZERldmljZU9yaWVudGF0aW9uQ2xpZW50OworI2VuZGlmCiB9OwogCiB9CkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvRGV2aWNlT3JpZW50YXRpb25DbGllbnRJT1Mu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvRGV2aWNlT3JpZW50
YXRpb25DbGllbnRJT1MuaAkocmV2aXNpb24gMjUyOTYxKQorKysgU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vaW9zL0RldmljZU9yaWVudGF0aW9uQ2xpZW50SU9TLmgJKHdvcmtpbmcgY29weSkKQEAg
LTMwLDEzICszMCwxNSBAQAogI2luY2x1ZGUgIkRldmljZU9yaWVudGF0aW9uQ2xpZW50LmgiCiAj
aW5jbHVkZSAiRGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyLmgiCiAjaW5jbHVkZSAiRGV2aWNl
T3JpZW50YXRpb25EYXRhLmgiCisjaW5jbHVkZSAiU2hhcmVkRGV2aWNlT3JpZW50YXRpb25DbGll
bnQuaCIKKyNpbmNsdWRlICJXZWJDb3JlTW90aW9uTWFuYWdlckNsaWVudC5oIgogI2luY2x1ZGUg
PHd0Zi9SZWZQdHIuaD4KIAogT0JKQ19DTEFTUyBXZWJDb3JlTW90aW9uTWFuYWdlcjsKIAogbmFt
ZXNwYWNlIFdlYkNvcmUgewogCi1jbGFzcyBEZXZpY2VPcmllbnRhdGlvbkNsaWVudElPUyA6IHB1
YmxpYyBEZXZpY2VPcmllbnRhdGlvbkNsaWVudCB7CitjbGFzcyBEZXZpY2VPcmllbnRhdGlvbkNs
aWVudElPUyA6IHB1YmxpYyBEZXZpY2VPcmllbnRhdGlvbkNsaWVudCwgcHVibGljIFdlYkNvcmVN
b3Rpb25NYW5hZ2VyQ2xpZW50IHsKIHB1YmxpYzoKICAgICBEZXZpY2VPcmllbnRhdGlvbkNsaWVu
dElPUygpOwogICAgIH5EZXZpY2VPcmllbnRhdGlvbkNsaWVudElPUygpIG92ZXJyaWRlOwpAQCAt
NDYsMTIgKzQ4LDE1IEBAIHB1YmxpYzoKICAgICBEZXZpY2VPcmllbnRhdGlvbkRhdGEqIGxhc3RP
cmllbnRhdGlvbigpIGNvbnN0IG92ZXJyaWRlOwogICAgIHZvaWQgZGV2aWNlT3JpZW50YXRpb25D
b250cm9sbGVyRGVzdHJveWVkKCkgb3ZlcnJpZGU7CiAKLSAgICB2b2lkIG9yaWVudGF0aW9uQ2hh
bmdlZChkb3VibGUsIGRvdWJsZSwgZG91YmxlLCBkb3VibGUsIGRvdWJsZSk7CisgICAgdm9pZCBv
cmllbnRhdGlvbkNoYW5nZWQoZG91YmxlLCBkb3VibGUsIGRvdWJsZSwgZG91YmxlLCBkb3VibGUp
IG92ZXJyaWRlOwogCisgICAgdm9pZCBzZXRTaGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudChS
ZWZQdHI8U2hhcmVkRGV2aWNlT3JpZW50YXRpb25DbGllbnQ+IHNoYXJlZERldmljZU9yaWVudGF0
aW9uQ2xpZW50KSBvdmVycmlkZSB7IG1fc2hhcmVkRGV2aWNlT3JpZW50YXRpb25DbGllbnQgPSBz
aGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudDsgfQorICAgIAogcHJpdmF0ZToKICAgICBXZWJD
b3JlTW90aW9uTWFuYWdlciogbV9tb3Rpb25NYW5hZ2VyOwogICAgIERldmljZU9yaWVudGF0aW9u
Q29udHJvbGxlciogbV9jb250cm9sbGVyOwogICAgIFJlZlB0cjxEZXZpY2VPcmllbnRhdGlvbkRh
dGE+IG1fY3VycmVudERldmljZU9yaWVudGF0aW9uOworICAgIFJlZlB0cjxTaGFyZWREZXZpY2VP
cmllbnRhdGlvbkNsaWVudD4gbV9zaGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudDsKICAgICBi
b29sIG1fdXBkYXRpbmc7CiB9OwogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3Mv
RGV2aWNlT3JpZW50YXRpb25DbGllbnRJT1MubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vaW9zL0RldmljZU9yaWVudGF0aW9uQ2xpZW50SU9TLm1tCShyZXZpc2lvbiAy
NTI5NjEpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvRGV2aWNlT3JpZW50YXRpb25D
bGllbnRJT1MubW0JKHdvcmtpbmcgY29weSkKQEAgLTUzLDYgKzUzLDExIEBAIHZvaWQgRGV2aWNl
T3JpZW50YXRpb25DbGllbnRJT1M6OnN0YXJ0VXAKIHsKICAgICBtX3VwZGF0aW5nID0gdHJ1ZTsK
IAorICAgIGlmIChtX3NoYXJlZERldmljZU9yaWVudGF0aW9uQ2xpZW50KSB7CisgICAgICAgIG1f
c2hhcmVkRGV2aWNlT3JpZW50YXRpb25DbGllbnQtPnN0YXJ0VXBkYXRpbmcoKnRoaXMpOworICAg
ICAgICByZXR1cm47CisgICAgfQorCiAgICAgaWYgKCFtX21vdGlvbk1hbmFnZXIpCiAgICAgICAg
IG1fbW90aW9uTWFuYWdlciA9IFtXZWJDb3JlTW90aW9uTWFuYWdlciBzaGFyZWRNYW5hZ2VyXTsK
IApAQCAtNjMsNiArNjgsMTEgQEAgdm9pZCBEZXZpY2VPcmllbnRhdGlvbkNsaWVudElPUzo6c3Rv
cFVwZAogewogICAgIG1fdXBkYXRpbmcgPSBmYWxzZTsKIAorICAgIGlmIChtX3NoYXJlZERldmlj
ZU9yaWVudGF0aW9uQ2xpZW50KSB7CisgICAgICAgIG1fc2hhcmVkRGV2aWNlT3JpZW50YXRpb25D
bGllbnQtPnN0b3BVcGRhdGluZygqdGhpcyk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKICAg
ICAvLyBSZW1vdmUgb3Vyc2VsdmVzIGFzIHRoZSBvcmllbnRhdGlvbiBjbGllbnQgc28gd2Ugd29u
J3QgZ2V0IHVwZGF0ZXMuCiAgICAgW21fbW90aW9uTWFuYWdlciByZW1vdmVPcmllbnRhdGlvbkNs
aWVudDp0aGlzXTsKIH0KQEAgLTc0LDYgKzg0LDExIEBAIERldmljZU9yaWVudGF0aW9uRGF0YSog
RGV2aWNlT3JpZW50YXRpb24KIAogdm9pZCBEZXZpY2VPcmllbnRhdGlvbkNsaWVudElPUzo6ZGV2
aWNlT3JpZW50YXRpb25Db250cm9sbGVyRGVzdHJveWVkKCkKIHsKKyAgICBpZiAobV9zaGFyZWRE
ZXZpY2VPcmllbnRhdGlvbkNsaWVudCkgeworICAgICAgICBtX3NoYXJlZERldmljZU9yaWVudGF0
aW9uQ2xpZW50LT5zdG9wVXBkYXRpbmcoKnRoaXMpOworICAgICAgICByZXR1cm47CisgICAgfQor
CiAgICAgW21fbW90aW9uTWFuYWdlciByZW1vdmVPcmllbnRhdGlvbkNsaWVudDp0aGlzXTsKIH0K
ICAgICAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9TaGFyZWREZXZpY2VPcmll
bnRhdGlvbkNsaWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lv
cy9TaGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudC5oCShub25leGlzdGVudCkKKysrIFNvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9TaGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudC5oCSh3
b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNDkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTkg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAqIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIGBgQVMgSVMnJyBBTkQg
QU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiAgSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVCBPV05FUiBPUgorICogQ09OVFJJQlVU
T1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNT
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAor
ICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisj
aWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkgJiYgRU5BQkxFKERFVklDRV9PUklFTlRBVElPTikKKwor
I2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xh
c3MgV2ViQ29yZU1vdGlvbk1hbmFnZXJDbGllbnQ7CisKK2NsYXNzIFNoYXJlZERldmljZU9yaWVu
dGF0aW9uQ2xpZW50IDogcHVibGljIFJlZkNvdW50ZWQ8U2hhcmVkRGV2aWNlT3JpZW50YXRpb25D
bGllbnQ+IHsKK3B1YmxpYzoKKyAgICBTaGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudCgpIHsg
fQorICAgIHZpcnR1YWwgflNoYXJlZERldmljZU9yaWVudGF0aW9uQ2xpZW50KCkgeyB9CisKKyAg
ICB2aXJ0dWFsIHZvaWQgc3RhcnRVcGRhdGluZyhXZWJDb3JlTW90aW9uTWFuYWdlckNsaWVudCYp
IHsgfQorICAgIHZpcnR1YWwgdm9pZCBzdG9wVXBkYXRpbmcoV2ViQ29yZU1vdGlvbk1hbmFnZXJD
bGllbnQmKSB7IH0KKworICAgIHZpcnR1YWwgdm9pZCBkZXZpY2VPcmllbnRhdGlvbkNoYW5nZWQo
ZG91YmxlLCBkb3VibGUsIGRvdWJsZSwgZG91YmxlLCBkb3VibGUpIHsgfQorfTsKKworfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gUExBVEZPUk0oSU9TX0ZBTUlMWSkgJiYgRU5B
QkxFKERFVklDRV9PUklFTlRBVElPTikKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lv
cy9XZWJDb3JlTW90aW9uTWFuYWdlci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2lvcy9XZWJDb3JlTW90aW9uTWFuYWdlci5oCShyZXZpc2lvbiAyNTI5NjEpCisrKyBT
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvV2ViQ29yZU1vdGlvbk1hbmFnZXIuaAkod29ya2lu
ZyBjb3B5KQpAQCAtMjUsOCArMjUsNiBAQAogCiAjcHJhZ21hIG9uY2UKIAotI2ltcG9ydCAiRGV2
aWNlTW90aW9uQ2xpZW50SU9TLmgiCi0jaW1wb3J0ICJEZXZpY2VPcmllbnRhdGlvbkNsaWVudElP
Uy5oIgogI2ltcG9ydCA8Q29yZUxvY2F0aW9uL0NvcmVMb2NhdGlvbi5oPgogI2ltcG9ydCA8d3Rm
L0hhc2hDb3VudGVkU2V0Lmg+CiAKQEAgLTM2LDExICszNCwxNiBAQAogCiBjb25zdCBmbG9hdCBr
TW90aW9uVXBkYXRlSW50ZXJ2YWwgPSAxLjBmIC8gNjAuMGY7CiAKLUBpbnRlcmZhY2UgV2ViQ29y
ZU1vdGlvbk1hbmFnZXIgOiBOU09iamVjdCB7CituYW1lc3BhY2UgV2ViQ29yZSB7CitjbGFzcyBE
ZXZpY2VNb3Rpb25DbGllbnRJT1M7CitjbGFzcyBXZWJDb3JlTW90aW9uTWFuYWdlckNsaWVudDsK
K307CisKK1dFQkNPUkVfRVhQT1JUIEBpbnRlcmZhY2UgV2ViQ29yZU1vdGlvbk1hbmFnZXIgOiBO
U09iamVjdCB7CiAgICAgQ01Nb3Rpb25NYW5hZ2VyKiBtX21vdGlvbk1hbmFnZXI7CiAgICAgQ0xM
b2NhdGlvbk1hbmFnZXIqIG1fbG9jYXRpb25NYW5hZ2VyOwogICAgIEhhc2hTZXQ8V2ViQ29yZTo6
RGV2aWNlTW90aW9uQ2xpZW50SU9TKj4gbV9kZXZpY2VNb3Rpb25DbGllbnRzOwotICAgIEhhc2hT
ZXQ8V2ViQ29yZTo6RGV2aWNlT3JpZW50YXRpb25DbGllbnRJT1MqPiBtX2RldmljZU9yaWVudGF0
aW9uQ2xpZW50czsKKyAgICBIYXNoU2V0PFdlYkNvcmU6OldlYkNvcmVNb3Rpb25NYW5hZ2VyQ2xp
ZW50Kj4gbV9kZXZpY2VPcmllbnRhdGlvbkNsaWVudHM7CiAgICAgTlNUaW1lciogbV91cGRhdGVU
aW1lcjsKICAgICBCT09MIG1fZ3lyb0F2YWlsYWJsZTsKICAgICBCT09MIG1faGVhZGluZ0F2YWls
YWJsZTsKQEAgLTUwLDggKzUzLDggQEAgY29uc3QgZmxvYXQga01vdGlvblVwZGF0ZUludGVydmFs
ID0gMS4wZgogKyAoV2ViQ29yZU1vdGlvbk1hbmFnZXIgKilzaGFyZWRNYW5hZ2VyOwogLSAodm9p
ZClhZGRNb3Rpb25DbGllbnQ6KFdlYkNvcmU6OkRldmljZU1vdGlvbkNsaWVudElPUyAqKWNsaWVu
dDsKIC0gKHZvaWQpcmVtb3ZlTW90aW9uQ2xpZW50OihXZWJDb3JlOjpEZXZpY2VNb3Rpb25DbGll
bnRJT1MgKiljbGllbnQ7Ci0tICh2b2lkKWFkZE9yaWVudGF0aW9uQ2xpZW50OihXZWJDb3JlOjpE
ZXZpY2VPcmllbnRhdGlvbkNsaWVudElPUyAqKWNsaWVudDsKLS0gKHZvaWQpcmVtb3ZlT3JpZW50
YXRpb25DbGllbnQ6KFdlYkNvcmU6OkRldmljZU9yaWVudGF0aW9uQ2xpZW50SU9TICopY2xpZW50
OworLSAodm9pZClhZGRPcmllbnRhdGlvbkNsaWVudDooV2ViQ29yZTo6V2ViQ29yZU1vdGlvbk1h
bmFnZXJDbGllbnQgKiljbGllbnQ7CistICh2b2lkKXJlbW92ZU9yaWVudGF0aW9uQ2xpZW50OihX
ZWJDb3JlOjpXZWJDb3JlTW90aW9uTWFuYWdlckNsaWVudCAqKWNsaWVudDsKIC0gKEJPT0wpZ3ly
b0F2YWlsYWJsZTsKIC0gKEJPT0wpaGVhZGluZ0F2YWlsYWJsZTsKIEBlbmQKSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJDb3JlTW90aW9uTWFuYWdlci5tbQo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvV2ViQ29yZU1vdGlvbk1hbmFnZXIubW0J
KHJldmlzaW9uIDI1Mjk2MSkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJDb3Jl
TW90aW9uTWFuYWdlci5tbQkod29ya2luZyBjb3B5KQpAQCAtMjgsNiArMjgsOCBAQAogCiAjaWYg
UExBVEZPUk0oSU9TX0ZBTUlMWSkgJiYgRU5BQkxFKERFVklDRV9PUklFTlRBVElPTikKIAorI2lt
cG9ydCAiRGV2aWNlTW90aW9uQ2xpZW50SU9TLmgiCisjaW1wb3J0ICJXZWJDb3JlTW90aW9uTWFu
YWdlckNsaWVudC5oIgogI2ltcG9ydCAiV2ViQ29yZU9iakNFeHRyYXMuaCIKICNpbXBvcnQgIldl
YkNvcmVUaHJlYWRSdW4uaCIKICNpbXBvcnQgPENvcmVMb2NhdGlvbi9Db3JlTG9jYXRpb24uaD4K
QEAgLTExMiwxNCArMTE0LDE0IEBAIC0gKHZvaWQpcmVtb3ZlTW90aW9uQ2xpZW50OihXZWJDb3Jl
OjpEZXYKICAgICAgICAgW3NlbGYgY2hlY2tDbGllbnRTdGF0dXNdOwogfQogCi0tICh2b2lkKWFk
ZE9yaWVudGF0aW9uQ2xpZW50OihXZWJDb3JlOjpEZXZpY2VPcmllbnRhdGlvbkNsaWVudElPUyAq
KWNsaWVudAorLSAodm9pZClhZGRPcmllbnRhdGlvbkNsaWVudDooV2ViQ29yZTo6V2ViQ29yZU1v
dGlvbk1hbmFnZXJDbGllbnQgKiljbGllbnQKIHsKICAgICBtX2RldmljZU9yaWVudGF0aW9uQ2xp
ZW50cy5hZGQoY2xpZW50KTsKICAgICBpZiAobV9pbml0aWFsaXplZCkKICAgICAgICAgW3NlbGYg
Y2hlY2tDbGllbnRTdGF0dXNdOwogfQogCi0tICh2b2lkKXJlbW92ZU9yaWVudGF0aW9uQ2xpZW50
OihXZWJDb3JlOjpEZXZpY2VPcmllbnRhdGlvbkNsaWVudElPUyAqKWNsaWVudAorLSAodm9pZCly
ZW1vdmVPcmllbnRhdGlvbkNsaWVudDooV2ViQ29yZTo6V2ViQ29yZU1vdGlvbk1hbmFnZXJDbGll
bnQgKiljbGllbnQKIHsKICAgICBtX2RldmljZU9yaWVudGF0aW9uQ2xpZW50cy5yZW1vdmUoY2xp
ZW50KTsKICAgICBpZiAobV9pbml0aWFsaXplZCkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2lvcy9XZWJDb3JlTW90aW9uTWFuYWdlckNsaWVudC5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJDb3JlTW90aW9uTWFuYWdlckNsaWVudC5oCShub25l
eGlzdGVudCkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJDb3JlTW90aW9uTWFu
YWdlckNsaWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMzcgQEAKKy8qCisqIENvcHly
aWdodCAoQykgMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisqCisqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyogYXJlIG1ldDoKKyogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisqCisqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBg
YEFTIElTJycKKyogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVU
T1JTCisqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IKKyogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyogU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisq
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOCisqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisqIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyogVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorKi8KKworI3ByYWdtYSBvbmNlCisKK25hbWVz
cGFjZSBXZWJDb3JlIHsKKworY2xhc3MgV2ViQ29yZU1vdGlvbk1hbmFnZXJDbGllbnQgeworcHVi
bGljOgorICAgIHZpcnR1YWwgfldlYkNvcmVNb3Rpb25NYW5hZ2VyQ2xpZW50KCkgeyB9OworCisg
ICAgdmlydHVhbCB2b2lkIG9yaWVudGF0aW9uQ2hhbmdlZChkb3VibGUsIGRvdWJsZSwgZG91Ymxl
LCBkb3VibGUsIGRvdWJsZSkgeyB9OworfTsKKworfTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvQ2hh
bmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCShyZXZpc2lvbiAy
NTI5NjEpCisrKyBTb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDMzIEBACisyMDE5LTExLTMwICBQZXIgQXJuZSBWb2xsYW4gIDxwdm9sbGFuQGFwcGxlLmNv
bT4KKworICAgICAgICBbaU9TXSBDYWxscyB0byBkZXZpY2Ugb3JpZW50YXRpb24gQVBJIHNob3Vs
ZCBiZSBkb25lIGluIHRoZSBVSSBwcm9jZXNzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yMDQ3MjAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBBZGQgV2ViIHBhZ2UgcHJveHkgbWVzc2FnZXMgdG8gc3RhcnQg
YW5kIHN0b3AgdXBkYXRpbmcgZGV2aWNlIG9yaWVudGF0aW9uIGluIHRoZSBVSSBwcm9jZXNzLiBB
bHNvLCBhZGQgYSBtZXNzYWdlIHRvCisgICAgICAgIHRoZSBXZWIgcGFnZSB0byB1cGRhdGUgdGhl
IGRldmljZSBvcmllbnRhdGlvbiBpbiB0aGUgV2ViQ29udGVudCBwcm9jZXNzLiBJbiB0aGUgVUkg
cHJvY2VzcywgdGhlIGRldmljZSBvcmllbnRhdGlvbiBBUEkKKyAgICAgICAgaXMgY2FsbGVkIHRo
cm91Z2ggdGhlIGFscmVhZHkgZXhpc3RpbmcgV2ViQ29yZU1vdGlvbk1hbmFnZXIgY2xhc3MuCisK
KyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lmg6CisgICAgICAgICogVUlQcm9jZXNz
L1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dlYlBh
Z2VQcm94eUlPUy5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpzdGFydFVwZGF0
aW5nRGV2aWNlT3JpZW50YXRpb24pOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OnN0
b3BVcGRhdGluZ0RldmljZU9yaWVudGF0aW9uKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVBy
b3h5OjpvcmllbnRhdGlvbkNoYW5nZWQpOgorICAgICAgICAqIFdlYktpdC54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViU2hh
cmVkRGV2aWNlT3JpZW50YXRpb25DbGllbnQuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6
V2ViU2hhcmVkRGV2aWNlT3JpZW50YXRpb25DbGllbnQ6OnN0YXJ0VXBkYXRpbmcpOgorICAgICAg
ICAoV2ViS2l0OjpXZWJTaGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudDo6c3RvcFVwZGF0aW5n
KToKKyAgICAgICAgKFdlYktpdDo6V2ViU2hhcmVkRGV2aWNlT3JpZW50YXRpb25DbGllbnQ6OmRl
dmljZU9yaWVudGF0aW9uQ2hhbmdlZCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC9XZWJTaGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudC5oOiBBZGRlZC4KKyAgICAgICAg
KiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHA6CisgICAgICAgIChXZWJLaXQ6Om1fb3Zl
cnJpZGRlbk1lZGlhVHlwZSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2Uu
aDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbjoKKyAg
ICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW06CisgICAgICAgIChX
ZWJLaXQ6OldlYlBhZ2U6OmRldmljZU9yaWVudGF0aW9uQ2hhbmdlZCk6CisKIDIwMTktMTEtMjcg
IEFudG9pbmUgUXVpbnQgIDxncmFvdXRzQGFwcGxlLmNvbT4KIAogICAgICAgICBbV2ViIEFuaW1h
dGlvbnNdIEVuYWJsZSBXZWJBbmltYXRpb25zQ1NTSW50ZWdyYXRpb25FbmFibGVkIGJ5IGRlZmF1
bHQKSW5kZXg6IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAkocmV2aXNp
b24gMjUyOTYxKQorKysgU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAko
d29ya2luZyBjb3B5KQpAQCAtNTIwLDYgKzUyMCwxMCBAQCBXZWJQYWdlUHJveHk6On5XZWJQYWdl
UHJveHkoKQogICAgIG1fcHJlZmVyZW5jZXMtPnJlbW92ZVBhZ2UoKnRoaXMpOwogICAgIG1fcGFn
ZUdyb3VwLT5yZW1vdmVQYWdlKHRoaXMpOwogCisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkgJiYg
RU5BQkxFKERFVklDRV9PUklFTlRBVElPTikKKyAgICBzdG9wVXBkYXRpbmdEZXZpY2VPcmllbnRh
dGlvbigpOworI2VuZGlmCisgICAgCiAjaWZuZGVmIE5ERUJVRwogICAgIHdlYlBhZ2VQcm94eUNv
dW50ZXIuZGVjcmVtZW50KCk7CiAjZW5kaWYKSW5kZXg6IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYlBhZ2VQcm94eS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dl
YlBhZ2VQcm94eS5oCShyZXZpc2lvbiAyNTI5NjEpCisrKyBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJQYWdlUHJveHkuaAkod29ya2luZyBjb3B5KQpAQCAtMTQ5LDYgKzE0OSwxMCBAQCBPQkpD
X0NMQVNTIF9XS1JlbW90ZU9iamVjdFJlZ2lzdHJ5OwogI2luY2x1ZGUgIlNPQXV0aG9yaXphdGlv
bkxvYWRQb2xpY3kuaCIKICNlbmRpZgogCisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkgJiYgRU5B
QkxFKERFVklDRV9PUklFTlRBVElPTikKKyNpbmNsdWRlIDxXZWJDb3JlL1dlYkNvcmVNb3Rpb25N
YW5hZ2VyQ2xpZW50Lmg+CisjZW5kaWYKKwogI2lmIEVOQUJMRShNRURJQV9TRVNTSU9OKQogbmFt
ZXNwYWNlIFdlYkNvcmUgewogY2xhc3MgTWVkaWFTZXNzaW9uTWV0YWRhdGE7CkBAIC0xNTksNiAr
MTYzLDEwIEBAIGNsYXNzIE1lZGlhU2Vzc2lvbk1ldGFkYXRhOwogaW50ZXJmYWNlIElEM0QxMURl
dmljZTE7CiAjZW5kaWYKIAorI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpICYmIEVOQUJMRShERVZJ
Q0VfT1JJRU5UQVRJT04pCitPQkpDX0NMQVNTIFdlYkNvcmVNb3Rpb25NYW5hZ2VyOworI2VuZGlm
CisKIG5hbWVzcGFjZSBBUEkgewogY2xhc3MgQXR0YWNobWVudDsKIGNsYXNzIENvbnRleHRNZW51
Q2xpZW50OwpAQCAtNDEwLDYgKzQxOCw5IEBAIGNsYXNzIFdlYlBhZ2VQcm94eSA6IHB1YmxpYyBB
UEk6Ok9iamVjdEkKICAgICAsIHB1YmxpYyBXZWJDb3JlOjpQbGF0Zm9ybVNwZWVjaFN5bnRoZXNp
c1V0dGVyYW5jZUNsaWVudAogICAgICwgcHVibGljIFdlYkNvcmU6OlBsYXRmb3JtU3BlZWNoU3lu
dGhlc2l6ZXJDbGllbnQKICNlbmRpZgorI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpICYmIEVOQUJM
RShERVZJQ0VfT1JJRU5UQVRJT04pCisgICAgLCBwdWJsaWMgV2ViQ29yZTo6V2ViQ29yZU1vdGlv
bk1hbmFnZXJDbGllbnQKKyNlbmRpZgogICAgICwgcHVibGljIENhbk1ha2VXZWFrUHRyPFdlYlBh
Z2VQcm94eT4gewogcHVibGljOgogICAgIHN0YXRpYyBSZWY8V2ViUGFnZVByb3h5PiBjcmVhdGUo
UGFnZUNsaWVudCYsIFdlYlByb2Nlc3NQcm94eSYsIFJlZjxBUEk6OlBhZ2VDb25maWd1cmF0aW9u
PiYmKTsKQEAgLTE2MjQsNiArMTYzNSwxMSBAQCBwdWJsaWM6CiAgICAgY29uc3QgU3RyaW5nJiBv
dmVycmlkZGVuTWVkaWFUeXBlKCkgY29uc3QgeyByZXR1cm4gbV9vdmVycmlkZGVuTWVkaWFUeXBl
OyB9CiAgICAgdm9pZCBzZXRPdmVycmlkZGVuTWVkaWFUeXBlKGNvbnN0IFN0cmluZyYpOwogCisj
aWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkgJiYgRU5BQkxFKERFVklDRV9PUklFTlRBVElPTikKKyAg
ICB2b2lkIHN0YXJ0VXBkYXRpbmdEZXZpY2VPcmllbnRhdGlvbigpOworICAgIHZvaWQgc3RvcFVw
ZGF0aW5nRGV2aWNlT3JpZW50YXRpb24oKTsKKyNlbmRpZgorCiBwcml2YXRlOgogICAgIFdlYlBh
Z2VQcm94eShQYWdlQ2xpZW50JiwgV2ViUHJvY2Vzc1Byb3h5JiwgUmVmPEFQSTo6UGFnZUNvbmZp
Z3VyYXRpb24+JiYpOwogICAgIHZvaWQgcGxhdGZvcm1Jbml0aWFsaXplKCk7CkBAIC0yMTY3LDYg
KzIxODMsMTEgQEAgcHJpdmF0ZToKICAgICB2b2lkIHJlc2V0U3BlZWNoU3ludGhlc2l6ZXIoKTsK
ICNlbmRpZgogCisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkgJiYgRU5BQkxFKERFVklDRV9PUklF
TlRBVElPTikKKyAgICAvLyBXZWJDb3JlOjpXZWJDb3JlTW90aW9uTWFuYWdlckNsaWVudAorICAg
IHZvaWQgb3JpZW50YXRpb25DaGFuZ2VkKGRvdWJsZSwgZG91YmxlLCBkb3VibGUsIGRvdWJsZSwg
ZG91YmxlKSBvdmVycmlkZTsKKyNlbmRpZgorCiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKICAg
ICBzdGF0aWMgYm9vbCBpc0luSGFyZHdhcmVLZXlib2FyZE1vZGUoKTsKICAgICB2b2lkIGNsZWFy
QXVkaWJsZUFjdGl2aXR5KCk7CkBAIC0yNjI0LDYgKzI2NDUsMTAgQEAgcHJpdmF0ZToKICAgICBi
b29sIG1faXNRdW90YUluY3JlYXNlRGVuaWVkIHsgZmFsc2UgfTsKICAgICAKICAgICBTdHJpbmcg
bV9vdmVycmlkZGVuTWVkaWFUeXBlOworCisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkgJiYgRU5B
QkxFKERFVklDRV9PUklFTlRBVElPTikKKyAgICBXZWJDb3JlTW90aW9uTWFuYWdlciogbV9tb3Rp
b25NYW5hZ2VyIHsgbnVsbHB0ciB9OworI2VuZGlmCiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJL
aXQKSW5kZXg6IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5p
bgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVz
c2FnZXMuaW4JKHJldmlzaW9uIDI1Mjk2MSkKKysrIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dl
YlBhZ2VQcm94eS5tZXNzYWdlcy5pbgkod29ya2luZyBjb3B5KQpAQCAtNTg2LDQgKzU4Niw5IEBA
IG1lc3NhZ2VzIC0+IFdlYlBhZ2VQcm94eSB7CiAKICAgICBEaWRGaW5kVGV4dE1hbmlwdWxhdGlv
bkl0ZW0oV2ViQ29yZTo6VGV4dE1hbmlwdWxhdGlvbkNvbnRyb2xsZXI6Okl0ZW1JZGVudGlmaWVy
IGl0ZW1JRCwgVmVjdG9yPFdlYkNvcmU6OlRleHRNYW5pcHVsYXRpb25Db250cm9sbGVyOjpNYW5p
cHVsYXRpb25Ub2tlbj4gdG9rZW5zKQogCisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkgJiYgRU5B
QkxFKERFVklDRV9PUklFTlRBVElPTikKKyAgICBTdGFydFVwZGF0aW5nRGV2aWNlT3JpZW50YXRp
b24oKTsKKyAgICBTdG9wVXBkYXRpbmdEZXZpY2VPcmllbnRhdGlvbigpOworI2VuZGlmCisKIH0K
SW5kZXg6IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XZWJQYWdlUHJveHlJT1MubW0KPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dlYlBhZ2VQcm94eUlPUy5t
bQkocmV2aXNpb24gMjUyOTYxKQorKysgU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dlYlBh
Z2VQcm94eUlPUy5tbQkod29ya2luZyBjb3B5KQpAQCAtNzUsNiArNzUsMTAgQEAKICNpbXBvcnQg
PHd0Zi90ZXh0L1dURlN0cmluZy5oPgogI2VuZGlmCiAKKyNpZiBFTkFCTEUoREVWSUNFX09SSUVO
VEFUSU9OKQorI2ltcG9ydCA8V2ViQ29yZS9XZWJDb3JlTW90aW9uTWFuYWdlci5oPgorI2VuZGlm
CisKICNkZWZpbmUgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRChjaGFubmVsLCBmbXQsIC4uLikgUkVM
RUFTRV9MT0dfSUYoaXNBbHdheXNPbkxvZ2dpbmdBbGxvd2VkKCksIGNoYW5uZWwsICIlcCAtIFtw
YWdlUHJveHlJRD0lbGx1LCB3ZWJQYWdlSUQ9JWxsdSwgUElEPSVpXSBXZWJQYWdlUHJveHk6OiIg
Zm10LCB0aGlzLCBtX2lkZW50aWZpZXIudG9VSW50NjQoKSwgbV93ZWJQYWdlSUQudG9VSW50NjQo
KSwgbV9wcm9jZXNzLT5wcm9jZXNzSWRlbnRpZmllcigpLCAjI19fVkFfQVJHU19fKQogCiBuYW1l
c3BhY2UgV2ViS2l0IHsKQEAgLTE0ODMsNiArMTQ4NywyNiBAQCBXZWJDb250ZW50TW9kZSBXZWJQ
YWdlUHJveHk6OmVmZmVjdGl2ZUNvCiAgICAgcmV0dXJuIFdlYkNvbnRlbnRNb2RlOjpEZXNrdG9w
OwogfQogCisjaWYgRU5BQkxFKERFVklDRV9PUklFTlRBVElPTikKK3ZvaWQgV2ViUGFnZVByb3h5
OjpzdGFydFVwZGF0aW5nRGV2aWNlT3JpZW50YXRpb24oKQoreworICAgIGlmICghbV9tb3Rpb25N
YW5hZ2VyKQorICAgICAgICBtX21vdGlvbk1hbmFnZXIgPSBbV2ViQ29yZU1vdGlvbk1hbmFnZXIg
c2hhcmVkTWFuYWdlcl07CisgICAgW21fbW90aW9uTWFuYWdlciBhZGRPcmllbnRhdGlvbkNsaWVu
dDp0aGlzXTsKK30KKwordm9pZCBXZWJQYWdlUHJveHk6OnN0b3BVcGRhdGluZ0RldmljZU9yaWVu
dGF0aW9uKCkKK3sKKyAgICBbbV9tb3Rpb25NYW5hZ2VyIHJlbW92ZU9yaWVudGF0aW9uQ2xpZW50
OnRoaXNdOworfQorCit2b2lkIFdlYlBhZ2VQcm94eTo6b3JpZW50YXRpb25DaGFuZ2VkKGRvdWJs
ZSBhbHBoYSwgZG91YmxlIGJldGEsIGRvdWJsZSBnYW1tYSwgZG91YmxlIGNvbXBhc3NIZWFkaW5n
LCBkb3VibGUgY29tcGFzc0FjY3VyYWN5KQoreworICAgIHNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6
OkRldmljZU9yaWVudGF0aW9uQ2hhbmdlZChhbHBoYSwgYmV0YSwgZ2FtbWEsIGNvbXBhc3NIZWFk
aW5nLCBjb21wYXNzQWNjdXJhY3kpLCAwKTsKK30KKyNlbmRpZgorCisKIH0gLy8gbmFtZXNwYWNl
IFdlYktpdAogCiAjdW5kZWYgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRApJbmRleDogU291cmNlL1dl
YktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvago9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCShyZXZpc2lvbiAyNTI5
NjEpCisrKyBTb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCSh3
b3JraW5nIGNvcHkpCkBAIC0xNjg5LDYgKzE2ODksNyBAQAogCQlFMUQyNkE1MzE3NTk2NEQ5MDA5
NUJGRDEgLyogV2ViQ29udGVudFByb2Nlc3MueGliIGluIFJlc291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMUQyNkE0QzE3NTk2MzRFMDA5NUJGRDEgLyogV2ViQ29u
dGVudFByb2Nlc3MueGliICovOyB9OwogCQlFMUU1NTJDNTE2QUUwNjVGMDA0RUQ2NTMgLyogU2Fu
ZGJveEluaXRpYWxpemF0aW9uUGFyYW1ldGVycy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gRTFFNTUyQzMxNkFFMDY1RTAwNEVENjUzIC8qIFNhbmRib3hJ
bml0aWFsaXphdGlvblBhcmFtZXRlcnMuaCAqLzsgfTsKIAkJRTFFRTUzRTMxMUY4Q0ZDMDAwQ0NC
RUU0IC8qIEluamVjdGVkQnVuZGxlUGFnZUVkaXRvckNsaWVudC5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTFFRTUzREMxMUY4Q0Y5RjAwQ0NCRUU0IC8q
IEluamVjdGVkQnVuZGxlUGFnZUVkaXRvckNsaWVudC5oICovOyB9OworCQlFMzk2MjhBQTIzODhB
QkQ4MDA2NThFQ0QgLyogV2ViU2hhcmVkRGV2aWNlT3JpZW50YXRpb25DbGllbnQuY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTM5NjI4QTkyMzg4QUJE
ODAwNjU4RUNEIC8qIFdlYlNoYXJlZERldmljZU9yaWVudGF0aW9uQ2xpZW50LmNwcCAqLzsgfTsK
IAkJRTQxM0Y1OUQxQUMxQURDNDAwMzQ1MzYwIC8qIE5ldHdvcmtDYWNoZUVudHJ5LmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFNDEzRjU5QjFBQzFBREI2
MDAzNDUzNjAgLyogTmV0d29ya0NhY2hlRW50cnkuaCAqLzsgfTsKIAkJRTQyRTA2MTAxQUE3NTIz
QjAwQjExNjk5IC8qIE5ldHdvcmtDYWNoZUlPQ2hhbm5lbC5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTQyRTA2MEIxQUE3NDQwRDAwQjExNjk5IC8qIE5l
dHdvcmtDYWNoZUlPQ2hhbm5lbC5oICovOyB9OwogCQlFNDJFMDYxMjFBQTc1QUJEMDBCMTE2OTkg
LyogTmV0d29ya0NhY2hlRGF0YS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gRTQyRTA2MTExQUE3NUFCRDAwQjExNjk5IC8qIE5ldHdvcmtDYWNoZURhdGEu
aCAqLzsgfTsKQEAgLTQ3NDgsNiArNDc0OSw4IEBACiAJCUUxRUU1M0RDMTFGOENGOUYwMENDQkVF
NCAvKiBJbmplY3RlZEJ1bmRsZVBhZ2VFZGl0b3JDbGllbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gSW5qZWN0ZWRCdW5kbGVQYWdlRWRpdG9yQ2xpZW50Lmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUxRUU1M0U2MTFGOENGRkIwMENDQkVFNCAvKiBJbmplY3Rl
ZEJ1bmRsZVBhZ2VFZGl0b3JDbGllbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gSW5qZWN0ZWRCdW5kbGVQYWdlRWRpdG9yQ2xpZW50LmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJRTM0MzlCNjMyMzQ1NDYzQTAwMTFERTBCIC8qIE5ldHdvcmtQcm9j
ZXNzQ29ubmVjdGlvbkluZm8uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gTmV0d29ya1Byb2Nlc3NDb25uZWN0
aW9uSW5mby5oOyBwYXRoID0gTmV0d29yay9OZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb25JbmZvLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUUzOTYyOEE4MjM4OEE1RDQwMDY1OEVDRCAv
KiBXZWJTaGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJT
aGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQlFMzk2MjhBOTIzODhBQkQ4MDA2NThFQ0QgLyogV2ViU2hhcmVkRGV2aWNlT3JpZW50YXRp
b25DbGllbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViU2hhcmVkRGV2aWNlT3JpZW50YXRp
b25DbGllbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFNDA0OTA3MDIxREU2
NUY3MDAzN0YwREIgLyogU2Nyb2xsZXJQYWlyTWFjLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IFNjcm9sbGVyUGFpck1hYy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQlFNDA0OTA3MTIxREU2NUY3MDAzN0YwREIgLyogU2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5n
Tm9kZVJlbW90ZU1hYy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBT
Y3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlUmVtb3RlTWFjLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJRTQwNDkwNzIyMURFNjVGNzAwMzdGMERCIC8qIFNjcm9sbGVyUGFp
ck1hYy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFNjcm9sbGVy
UGFpck1hYy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTU4NTQsNiArNTg1Nyw4
IEBACiAJCQkJMkQyOEYzRTMxODg1Q0NDMTAwNEI5RUFFIC8qIFdlYkZyYW1lTG9hZGVyQ2xpZW50
SU9TLm1tICovLAogCQkJCUExQzUxMkM2MTkwNjU2RTUwMDQ0ODkxNCAvKiBXZWJQcmV2aWV3TG9h
ZGVyQ2xpZW50LmNwcCAqLywKIAkJCQlBMUM1MTJDNzE5MDY1NkU1MDA0NDg5MTQgLyogV2ViUHJl
dmlld0xvYWRlckNsaWVudC5oICovLAorCQkJCUUzOTYyOEE5MjM4OEFCRDgwMDY1OEVDRCAvKiBX
ZWJTaGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudC5jcHAgKi8sCisJCQkJRTM5NjI4QTgyMzg4
QTVENDAwNjU4RUNEIC8qIFdlYlNoYXJlZERldmljZU9yaWVudGF0aW9uQ2xpZW50LmggKi8sCiAJ
CQkpOwogCQkJbmFtZSA9IGlvczsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CkBAIC05ODIw
LDcgKzk4MjUsNiBAQAogCQkJCTUxMUY4QTdCMTM4QjQ2MDkwMEE5NUY0NCAvKiBTZWNJdGVtU2hp
bUxpYnJhcnkuaCBpbiBIZWFkZXJzICovLAogCQkJCUUxOEU2OTBDMTY5QjU2M0YwMDlCNjY3MCAv
KiBTZWNJdGVtU2hpbVByb3h5LmggaW4gSGVhZGVycyAqLywKIAkJCQlFMThFNjkxODE2OUI2NjdC
MDA5QjY2NzAgLyogU2VjSXRlbVNoaW1Qcm94eU1lc3NhZ2VzLmggaW4gSGVhZGVycyAqLywKLQkJ
CQk3QUE3NDZENTIzNTkzRDgxMDAwOTUwNTAgLyogU2VjSXRlbVNQSS5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJNTcwQUI4RjMyMEFFM0JENzAwQjhCRTg3IC8qIFNlY0tleVByb3h5U3RvcmUuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTUxNEQ5RjU3MTkxMTlEMzUwMDAwNjNBNyAvKiBTZXJ2aWNlc0NvbnRy
b2xsZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTFBRkRFNjVBMTk1NEE0MkIwMEM0OEZGQSAvKiBT
ZXNzaW9uU3RhdGUuaCBpbiBIZWFkZXJzICovLApAQCAtMTE2MTksNiArMTE2MjMsNyBAQAogCQkJ
CTUxRjA2MEUxMTY1NDMxODUwMEYzMjgxRiAvKiBXZWJSVENNb25pdG9yTWVzc2FnZVJlY2VpdmVy
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTUxRjA2MEUxMTY1NDMxODUwMEYzMjgyQyAvKiBXZWJS
VENSZXNvbHZlck1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk1MUYwNjBF
MTE2NTQzMTg1MDBGMzI4MUMgLyogV2ViUlRDU29ja2V0TWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBT
b3VyY2VzICovLAorCQkJCUUzOTYyOEFBMjM4OEFCRDgwMDY1OEVDRCAvKiBXZWJTaGFyZWREZXZp
Y2VPcmllbnRhdGlvbkNsaWVudC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk0MUYwNjBFMTE2NTQz
MTg1MDBGMzI4MUMgLyogV2ViU29ja2V0Q2hhbm5lbE1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQk1QzBCMTc3OTFFN0M4ODIxMDBFOTEyM0MgLyogV2ViU29ja2V0U3RyZWFt
TWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTQxMjg3RDRFMjI1RDFFQ0Iw
MDlBM0UyNiAvKiBXZWJTb2NrZXRUYXNrQ29jb2EubW0gaW4gU291cmNlcyAqLywKSW5kZXg6IFNv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJTaGFyZWREZXZpY2VPcmll
bnRhdGlvbkNsaWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYkNvcmVTdXBwb3J0L1dlYlNoYXJlZERldmljZU9yaWVudGF0aW9uQ2xpZW50LmNwcAkobm9u
ZXhpc3RlbnQpCisrKyBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2Vi
U2hhcmVkRGV2aWNlT3JpZW50YXRpb25DbGllbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAg
KzEsNjAgQEAKKy8qCisqIENvcHlyaWdodCAoQykgMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisqCisqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyogYXJlIG1ldDoKKyogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisqCisqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisqIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyogQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YK
KyogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTCisqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisqIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisq
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YKKyogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorKi8KKwor
I2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldlYlNoYXJlZERldmljZU9yaWVudGF0aW9u
Q2xpZW50LmgiCisKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKSAmJiBFTkFCTEUoREVWSUNFX09S
SUVOVEFUSU9OKQorCisjaW5jbHVkZSAiV2ViUGFnZS5oIgorI2luY2x1ZGUgIldlYlBhZ2VQcm94
eU1lc3NhZ2VzLmgiCisKKyNpbmNsdWRlIDxXZWJDb3JlL1dlYkNvcmVNb3Rpb25NYW5hZ2VyQ2xp
ZW50Lmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCit2b2lkIFdlYlNoYXJlZERldmljZU9yaWVu
dGF0aW9uQ2xpZW50OjpzdGFydFVwZGF0aW5nKFdlYkNvcmU6OldlYkNvcmVNb3Rpb25NYW5hZ2Vy
Q2xpZW50JiBjbGllbnQpCit7CisgICAgaWYgKG1fY2xpZW50cy5pc0VtcHR5KCkpCisgICAgICAg
IG1fcGFnZS5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OlN0YXJ0VXBkYXRpbmdEZXZpY2VP
cmllbnRhdGlvbigpKTsKKyAgICBtX2NsaWVudHMuYWRkKCZjbGllbnQpOworfQorCit2b2lkIFdl
YlNoYXJlZERldmljZU9yaWVudGF0aW9uQ2xpZW50OjpzdG9wVXBkYXRpbmcoV2ViQ29yZTo6V2Vi
Q29yZU1vdGlvbk1hbmFnZXJDbGllbnQmIGNsaWVudCkKK3sKKyAgICBtX2NsaWVudHMucmVtb3Zl
KCZjbGllbnQpOworICAgIGlmIChtX2NsaWVudHMuaXNFbXB0eSgpKQorICAgICAgICBtX3BhZ2Uu
c2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpTdG9wVXBkYXRpbmdEZXZpY2VPcmllbnRhdGlv
bigpKTsKK30KKwordm9pZCBXZWJTaGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudDo6ZGV2aWNl
T3JpZW50YXRpb25DaGFuZ2VkKGRvdWJsZSBhbHBoYSwgZG91YmxlIGJldGEsIGRvdWJsZSBnYW1t
YSwgZG91YmxlIGNvbXBhc3NIZWFkaW5nLCBkb3VibGUgY29tcGFzc0FjY3VyYWN5KQoreworICAg
IGZvciAoYXV0byBjbGllbnQgOiBtX2NsaWVudHMpCisgICAgICAgIGNsaWVudC0+b3JpZW50YXRp
b25DaGFuZ2VkKGFscGhhLCBiZXRhLCBnYW1tYSwgY29tcGFzc0hlYWRpbmcsIGNvbXBhc3NBY2N1
cmFjeSk7Cit9CisKK307CisKKyNlbmRpZgpJbmRleDogU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYkNvcmVTdXBwb3J0L1dlYlNoYXJlZERldmljZU9yaWVudGF0aW9uQ2xpZW50LmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlNoYXJl
ZERldmljZU9yaWVudGF0aW9uQ2xpZW50LmgJKG5vbmV4aXN0ZW50KQorKysgU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlNoYXJlZERldmljZU9yaWVudGF0aW9uQ2xp
ZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw1OCBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBD
T05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFn
bWEgb25jZQorCisjaW5jbHVkZSA8V2ViQ29yZS9TaGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVu
dC5oPgorCisjaW5jbHVkZSA8d3RmL0hhc2hTZXQuaD4KKworI2lmIFBMQVRGT1JNKElPU19GQU1J
TFkpICYmIEVOQUJMRShERVZJQ0VfT1JJRU5UQVRJT04pCisKK25hbWVzcGFjZSBXZWJLaXQgewor
CitjbGFzcyBXZWJQYWdlOworCitjbGFzcyBXZWJTaGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVu
dCBmaW5hbCA6IHB1YmxpYyBXZWJDb3JlOjpTaGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudCB7
CisgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CitwdWJsaWM6CisgICAgV2ViU2hhcmVkRGV2
aWNlT3JpZW50YXRpb25DbGllbnQoV2ViUGFnZSYgcGFnZSkKKyAgICAgICAgOiBtX3BhZ2UocGFn
ZSkKKyAgICB7CisgICAgfQorCisgICAgdm9pZCBzdGFydFVwZGF0aW5nKFdlYkNvcmU6OldlYkNv
cmVNb3Rpb25NYW5hZ2VyQ2xpZW50Jikgb3ZlcnJpZGU7CisgICAgdm9pZCBzdG9wVXBkYXRpbmco
V2ViQ29yZTo6V2ViQ29yZU1vdGlvbk1hbmFnZXJDbGllbnQmKSBvdmVycmlkZTsKKworICAgIHZv
aWQgZGV2aWNlT3JpZW50YXRpb25DaGFuZ2VkKGRvdWJsZSwgZG91YmxlLCBkb3VibGUsIGRvdWJs
ZSwgZG91YmxlKSBvdmVycmlkZTsKKworcHJpdmF0ZToKKyAgICBXZWJQYWdlJiBtX3BhZ2U7Cisg
ICAgSGFzaFNldDxXZWJDb3JlOjpXZWJDb3JlTW90aW9uTWFuYWdlckNsaWVudCo+IG1fY2xpZW50
czsKK307CisKK30KKworI2VuZGlmCkluZGV4OiBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
UGFnZS9XZWJQYWdlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViUGFnZS9XZWJQYWdlLmNwcAkocmV2aXNpb24gMjUyOTYxKQorKysgU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEyMCw2ICsx
MjAsNyBAQAogI2luY2x1ZGUgIldlYlByb2Nlc3NQcm94eU1lc3NhZ2VzLmgiCiAjaW5jbHVkZSAi
V2ViUHJvZ3Jlc3NUcmFja2VyQ2xpZW50LmgiCiAjaW5jbHVkZSAiV2ViU2VydmljZVdvcmtlclBy
b3ZpZGVyLmgiCisjaW5jbHVkZSAiV2ViU2hhcmVkRGV2aWNlT3JpZW50YXRpb25DbGllbnQuaCIK
ICNpbmNsdWRlICJXZWJTb2NrZXRQcm92aWRlci5oIgogI2luY2x1ZGUgIldlYlNwZWVjaFN5bnRo
ZXNpc0NsaWVudC5oIgogI2luY2x1ZGUgIldlYlN0b3JhZ2VOYW1lc3BhY2VQcm92aWRlci5oIgpA
QCAtNTAxLDYgKzUwMiwxMCBAQCBXZWJQYWdlOjpXZWJQYWdlKFBhZ2VJZGVudGlmaWVyIHBhZ2VJ
RCwgCiAjaWYgRU5BQkxFKEFQUExJQ0FUSU9OX01BTklGRVNUKQogICAgIHBhZ2VDb25maWd1cmF0
aW9uLmFwcGxpY2F0aW9uTWFuaWZlc3QgPSBwYXJhbWV0ZXJzLmFwcGxpY2F0aW9uTWFuaWZlc3Q7
CiAjZW5kaWYKKyAgICAKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKSAmJiBFTkFCTEUoREVWSUNF
X09SSUVOVEFUSU9OKQorICAgIHBhZ2VDb25maWd1cmF0aW9uLnNoYXJlZERldmljZU9yaWVudGF0
aW9uQ2xpZW50ID0gbmV3IFdlYlNoYXJlZERldmljZU9yaWVudGF0aW9uQ2xpZW50KCp0aGlzKTsK
KyNlbmRpZgogCiAgICAgbV9wYWdlID0gbWFrZVVuaXF1ZTxQYWdlPihXVEZNb3ZlKHBhZ2VDb25m
aWd1cmF0aW9uKSk7CiAKSW5kZXg6IFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dl
YlBhZ2UuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9X
ZWJQYWdlLmgJKHJldmlzaW9uIDI1Mjk2MSkKKysrIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJQYWdlL1dlYlBhZ2UuaAkod29ya2luZyBjb3B5KQpAQCAtMTI0NCw2ICsxMjQ0LDEwIEBAIHB1
YmxpYzoKICAgICBjb25zdCBTdHJpbmcmIG92ZXJyaWRkZW5NZWRpYVR5cGUoKSBjb25zdCB7IHJl
dHVybiBtX292ZXJyaWRkZW5NZWRpYVR5cGU7IH0KICAgICB2b2lkIHNldE92ZXJyaWRkZW5NZWRp
YVR5cGUoY29uc3QgU3RyaW5nJik7CiAgICAgCisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkgJiYg
RU5BQkxFKERFVklDRV9PUklFTlRBVElPTikKKyAgICB2b2lkIGRldmljZU9yaWVudGF0aW9uQ2hh
bmdlZChkb3VibGUgYWxwaGEsIGRvdWJsZSBiZXRhLCBkb3VibGUgZ2FtbWEsIGRvdWJsZSBjb21w
YXNzSGVhZGluZywgZG91YmxlIGNvbXBhc3NBY2N1cmFjeSk7CisjZW5kaWYKKwogcHJpdmF0ZToK
ICAgICBXZWJQYWdlKFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCBXZWJQYWdlQ3JlYXRpb25QYXJh
bWV0ZXJzJiYpOwogCkluZGV4OiBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQ
YWdlLm1lc3NhZ2VzLmluCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4JKHJldmlzaW9uIDI1Mjk2MSkKKysrIFNvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4JKHdvcmtpbmcgY29w
eSkKQEAgLTU4Myw0ICs1ODMsOCBAQCBHZW5lcmF0ZVN5bnRoZXRpY0VkaXRpbmdDb21tYW5kKGVu
dW06dWluCiAgICAgQ29tcGxldGVUZXh0TWFuaXB1bGF0aW9uKFdlYkNvcmU6OlRleHRNYW5pcHVs
YXRpb25Db250cm9sbGVyOjpJdGVtSWRlbnRpZmllciBpdGVtSUQsIFZlY3RvcjxXZWJDb3JlOjpU
ZXh0TWFuaXB1bGF0aW9uQ29udHJvbGxlcjo6TWFuaXB1bGF0aW9uVG9rZW4+IHRva2VucykgLT4g
KGVudW06dWludDhfdCBXZWJDb3JlOjpUZXh0TWFuaXB1bGF0aW9uQ29udHJvbGxlcjo6TWFuaXB1
bGF0aW9uUmVzdWx0IHJlc3VsdCkgQXN5bmMKICAgICAKICAgICBTZXRPdmVycmlkZGVuTWVkaWFU
eXBlKFN0cmluZyBtZWRpYVR5cGUpCisgICAgCisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkgJiYg
RU5BQkxFKERFVklDRV9PUklFTlRBVElPTikKKyAgICBEZXZpY2VPcmllbnRhdGlvbkNoYW5nZWQo
ZG91YmxlIGFscGhhLCBkb3VibGUgYmV0YSwgZG91YmxlIGdhbW1hLCBkb3VibGUgY29tcGFzc0hl
YWRpbmcsIGRvdWJsZSBjb21wYXNzQWNjdXJhY3kpCisjZW5kaWYKIH0KSW5kZXg6IFNvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tCShyZXZp
c2lvbiAyNTI5NjEpCisrKyBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2Vi
UGFnZUlPUy5tbQkod29ya2luZyBjb3B5KQpAQCAtNDA4OCw2ICs0MDg4LDE0IEBAIHZvaWQgV2Vi
UGFnZTo6cmVxdWVzdFBhc3N3b3JkRm9yUXVpY2tMb28KIAogI2VuZGlmCiAKKyNpZiBFTkFCTEUo
REVWSUNFX09SSUVOVEFUSU9OKQordm9pZCBXZWJQYWdlOjpkZXZpY2VPcmllbnRhdGlvbkNoYW5n
ZWQoZG91YmxlIGFscGhhLCBkb3VibGUgYmV0YSwgZG91YmxlIGdhbW1hLCBkb3VibGUgY29tcGFz
c0hlYWRpbmcsIGRvdWJsZSBjb21wYXNzQWNjdXJhY3kpCit7CisgICAgaWYgKGNvcmVQYWdlKCkg
JiYgY29yZVBhZ2UoKS0+c2hhcmVkRGV2aWNlT3JpZW50YXRpb25DbGllbnQoKSkKKyAgICAgICAg
Y29yZVBhZ2UoKS0+c2hhcmVkRGV2aWNlT3JpZW50YXRpb25DbGllbnQoKS0+ZGV2aWNlT3JpZW50
YXRpb25DaGFuZ2VkKGFscGhhLCBiZXRhLCBnYW1tYSwgY29tcGFzc0hlYWRpbmcsIGNvbXBhc3NB
Y2N1cmFjeSk7Cit9CisjZW5kaWYKKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CiAKICN1bmRlZiBS
RUxFQVNFX0xPR19JRl9BTExPV0VECg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>384563</attachid>
            <date>2019-11-30 17:37:43 -0800</date>
            <delta_ts>2019-12-02 07:56:00 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-204720-20191130173742.patch</filename>
            <type>text/plain</type>
            <size>47922</size>
            <attacher name="Per Arne Vollan">pvollan</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDI1Mjk2MSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDUwIEBACisyMDE5LTExLTMwICBQZXIgQXJu
ZSBWb2xsYW4gIDxwdm9sbGFuQGFwcGxlLmNvbT4KKworICAgICAgICBbaU9TXSBDYWxscyB0byBk
ZXZpY2Ugb3JpZW50YXRpb24gQVBJIHNob3VsZCBiZSBkb25lIGluIHRoZSBVSSBwcm9jZXNzCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDQ3MjAKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGUgZGV2aWNl
IG9yaWVudGF0aW9uIEFQSSBvbiBpT1MgaXMgY29tbXVuaWNhdGluZyB3aXRoIGxvY2F0aW9uZC4g
U2luY2UgbWFjaCBsb29rdXAgdG8gdGhpcyBkYWVtb24KKyAgICAgICAgd2lsbCBiZSBjbG9zZWQs
IHRoZSBjYWxscyB0byB0aGlzIEFQSSBzaG91bGQgYmUgbW92ZWQgZnJvbSB0aGUgV2ViQ29udGVu
dCBwcm9jZXNzIHRvIHRoZSBVSSBwcm9jZXNzLgorICAgICAgICBUaGlzIHBhdGNoIGltcGxlbWVu
dHMgZm9yd2FyZGluZyBvZiB0aGUgZGV2aWNlIG9yaWVudGF0aW9uIHJlcXVlc3RzIHRvIHRoZSBV
SSBwcm9jZXNzIHRocm91Z2ggYSBuZXcKKyAgICAgICAgY2xhc3MsIFNoYXJlZERldmljZU9yaWVu
dGF0aW9uQ2xpZW50LCB3aGljaCBpcyBzdWJjbGFzc2VkIGJ5IFdlYlNoYXJlZERldmljZU9yaWVu
dGF0aW9uQ2xpZW50IGluCisgICAgICAgIG1vZGVybiBXZWJLaXQuIFRoaXMgY2xhc3MgaW1wbGVt
ZW50cyBmb3J3YXJkaW5nIG9mIHRoZSByZXF1ZXN0cyB0byB0aGUgVUkgcHJvY2VzcywgYW5kIHJl
Y2VpdmVzCisgICAgICAgIGRldmljZSBvcmllbnRhdGlvbiB1cGRhdGVzIGZyb20gdGhlIFVJIHBy
b2Nlc3MuIEFuIGluc3RhbmNlIG9mIHRoaXMgY2xhc3Mgd2lsbCBiZSBzaGFyZWQgYnkgYWxsCisg
ICAgICAgIGRldmljZSBvcmllbnRhdGlvbiBjbGllbnRzIG9uIGEgcGFnZSwgYW5kIHBhc3NlZCBh
cyBwYXJ0IG9mIHRoZSBwYWdlIGNvbmZpZ3VyYXRpb24gcGFyYW1ldGVycy4gT24KKyAgICAgICAg
dGhlIFVJIHByb2Nlc3Mgc2lkZSwgdGhlIFdlYiBwYWdlIHByb3h5IGlzIHRha2luZyBjYXJlIG9m
IGNhbGxpbmcgdGhlIGRldmljZSBvcmllbnRhdGlvbiBBUEkgdGhyb3VnaAorICAgICAgICB0aGUg
ZXhpc3RpbmcgV2ViQ29yZU1vdGlvbk1hbmFnZXIgT2JqZWN0aXZlLUMgY2xhc3MuCisKKyAgICAg
ICAgTm8gbmV3IHRlc3RzLCBjb3ZlcmVkIGJ5IGV4aXN0aW5nIHRlc3RzLgorCisgICAgICAgICog
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGRvbS9EZXZpY2VP
cmllbnRhdGlvbkNsaWVudC5oOgorICAgICAgICAoV2ViQ29yZTo6RGV2aWNlT3JpZW50YXRpb25D
bGllbnQ6OnNldFNoYXJlZERldmljZU9yaWVudGF0aW9uQ2xpZW50KToKKyAgICAgICAgKiBkb20v
RG9jdW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6bV91bmRvTWFuYWdlcik6CisgICAgICAg
ICogcGFnZS9QYWdlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Om1fc2hhcmVkRGV2aWNlT3JpZW50
YXRpb25DbGllbnQpOgorICAgICAgICAoV2ViQ29yZTo6bV9hcHBsaWNhdGlvbk1hbmlmZXN0KTog
RGVsZXRlZC4KKyAgICAgICAgKiBwYWdlL1BhZ2UuaDoKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2U6
OnNoYXJlZERldmljZU9yaWVudGF0aW9uQ2xpZW50IGNvbnN0KToKKyAgICAgICAgKiBwYWdlL1Bh
Z2VDb25maWd1cmF0aW9uLmg6CisgICAgICAgICogcGxhdGZvcm0vaW9zL0RldmljZU9yaWVudGF0
aW9uQ2xpZW50SU9TLmg6CisgICAgICAgICogcGxhdGZvcm0vaW9zL0RldmljZU9yaWVudGF0aW9u
Q2xpZW50SU9TLm1tOgorICAgICAgICAoV2ViQ29yZTo6RGV2aWNlT3JpZW50YXRpb25DbGllbnRJ
T1M6OnN0YXJ0VXBkYXRpbmcpOgorICAgICAgICAoV2ViQ29yZTo6RGV2aWNlT3JpZW50YXRpb25D
bGllbnRJT1M6OnN0b3BVcGRhdGluZyk6CisgICAgICAgIChXZWJDb3JlOjpEZXZpY2VPcmllbnRh
dGlvbkNsaWVudElPUzo6ZGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyRGVzdHJveWVkKToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9pb3MvU2hhcmVkRGV2aWNlT3JpZW50YXRpb25DbGllbnQuaDogQWRk
ZWQuCisgICAgICAgIChXZWJDb3JlOjpTaGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudDo6U2hh
cmVkRGV2aWNlT3JpZW50YXRpb25DbGllbnQpOgorICAgICAgICAoV2ViQ29yZTo6U2hhcmVkRGV2
aWNlT3JpZW50YXRpb25DbGllbnQ6On5TaGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudCk6Cisg
ICAgICAgIChXZWJDb3JlOjpTaGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudDo6c3RhcnRVcGRh
dGluZyk6CisgICAgICAgIChXZWJDb3JlOjpTaGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudDo6
c3RvcFVwZGF0aW5nKToKKyAgICAgICAgKFdlYkNvcmU6OlNoYXJlZERldmljZU9yaWVudGF0aW9u
Q2xpZW50OjpkZXZpY2VPcmllbnRhdGlvbkNoYW5nZWQpOgorICAgICAgICAqIHBsYXRmb3JtL2lv
cy9XZWJDb3JlTW90aW9uTWFuYWdlci5oOgorICAgICAgICAqIHBsYXRmb3JtL2lvcy9XZWJDb3Jl
TW90aW9uTWFuYWdlci5tbToKKyAgICAgICAgKC1bV2ViQ29yZU1vdGlvbk1hbmFnZXIgYWRkT3Jp
ZW50YXRpb25DbGllbnQ6XSk6CisgICAgICAgICgtW1dlYkNvcmVNb3Rpb25NYW5hZ2VyIHJlbW92
ZU9yaWVudGF0aW9uQ2xpZW50Ol0pOgorICAgICAgICAqIHBsYXRmb3JtL2lvcy9XZWJDb3JlTW90
aW9uTWFuYWdlckNsaWVudC5oOgorCiAyMDE5LTExLTMwICB5b3Vlbm4gZmFibGV0ICA8eW91ZW5u
QGFwcGxlLmNvbT4KIAogICAgICAgICBTaW1wbGlmeSBDb3JlQXVkaW9DYXB0dXJlU291cmNlIHN1
c3BlbnNpb24gbG9naWMKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvago9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oJKHJldmlzaW9uIDI1Mjk2MSkKKysrIFNvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkod29ya2luZyBjb3B5KQpAQCAtOTA3
LDcgKzkwNyw3IEBACiAJCTMxMzU5MTBBMUU3RERDNzMwMEYzMDYzMCAvKiBSVENTZHBUeXBlLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzMTM1OTEwNDFF
N0REQzYwMDBGMzA2MzAgLyogUlRDU2RwVHlwZS5oICovOyB9OwogCQkzMTM1OTEwQjFFN0REQzcz
MDBGMzA2MzAgLyogUlRDU2lnbmFsaW5nU3RhdGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMxMzU5MTA1MUU3RERDNjAwMEYzMDYzMCAvKiBSVENTaWdu
YWxpbmdTdGF0ZS5oICovOyB9OwogCQkzMTNCQ0UxQzIzNUUzQkU1MDBGQzM5RTUgLyogRWxlbWVu
dENvbnRleHQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDMxM0JDRTFCMjM1RTNCREIwMEZDMzlFNSAvKiBFbGVtZW50Q29udGV4dC5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07Ci0JCTMxNDAzNzlCMTI0QkVBN0Yw
MEFGNDBFNCAvKiBXZWJDb3JlTW90aW9uTWFuYWdlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzE0MDM3OTcxMjRCRUE3RjAwQUY0MEU0IC8qIFdlYkNv
cmVNb3Rpb25NYW5hZ2VyLmggKi87IH07CisJCTMxNDAzNzlCMTI0QkVBN0YwMEFGNDBFNCAvKiBX
ZWJDb3JlTW90aW9uTWFuYWdlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gMzE0MDM3OTcxMjRCRUE3RjAwQUY0MEU0IC8qIFdlYkNvcmVNb3Rpb25NYW5h
Z2VyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJ
MzE0MDM3OUQxMjRCRUE3RjAwQUY0MEU0IC8qIERldmljZU9yaWVudGF0aW9uQ2xpZW50SU9TLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzMTQwMzc5OTEy
NEJFQTdGMDBBRjQwRTQgLyogRGV2aWNlT3JpZW50YXRpb25DbGllbnRJT1MuaCAqLzsgfTsKIAkJ
MzE0MEM1MjAxRkRGMTUxQTAwRDJBODczIC8qIE9mZnNjcmVlbkNhbnZhc1JlbmRlcmluZ0NvbnRl
eHQyRC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzE0
MEM1MUUxRkRGMTUxQTAwRDJBODczIC8qIE9mZnNjcmVlbkNhbnZhc1JlbmRlcmluZ0NvbnRleHQy
RC5oICovOyB9OwogCQkzMTQwQzUyNDFGREYzMTg3MDBEMkE4NzMgLyogQ2FudmFzUmVuZGVyaW5n
Q29udGV4dDJEQmFzZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMzE0MEM1MjIxRkRGMzE4NjAwRDJBODczIC8qIENhbnZhc1JlbmRlcmluZ0NvbnRleHQy
REJhc2UuaCAqLzsgfTsKQEAgLTQ3NzYsNiArNDc3Niw4IEBACiAJCUUzNTgwMkI2MURDODQzNUQw
MEE5NzczQyAvKiBET01KSVRJRExUeXBlRmlsdGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMzU4MDJCNTFEQzg0MzU4MDBBOTc3M0MgLyogRE9NSklU
SURMVHlwZUZpbHRlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CiAJCUUzNzdGRTREMURBREUxNjUwMENERDAyNSAvKiBOb2RlQ29uc3RhbnRzLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFM0QwNDk5MzFEQURD
MDQ1MDA3MThGM0MgLyogTm9kZUNvbnN0YW50cy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07CiAJCUUzN0M4NjUwMUVCNjNFM0YwMDg3QzZDQSAvKiBKU0RP
TVByb21pc2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEUzN0M4NjRGMUVCNjNFMkQwMDg3QzZDQSAvKiBKU0RPTVByb21pc2UuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQlFMzk2MjhBNDIzODg5MzVCMDA2
NThFQ0QgLyogU2hhcmVkRGV2aWNlT3JpZW50YXRpb25DbGllbnQuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUzOTYyOEEzMjM4ODkzNUIwMDY1OEVDRCAv
KiBTaGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJV
VEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCUUzOTYyOEFDMjM5MUM4MTcwMDY1OEVDRCAvKiBX
ZWJDb3JlTW90aW9uTWFuYWdlckNsaWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gRTM5NjI4QUIyMzkxQzRGMzAwNjU4RUNEIC8qIFdlYkNvcmVNb3Rp
b25NYW5hZ2VyQ2xpZW50LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKIAkJRTNBNzc2NjcxREM4NUQyODAwQjY5MEQ4IC8qIERPTUpJVElETENvbnZlcnQu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUzQTc3NjY1
MURDODVEMjIwMEI2OTBEOCAvKiBET01KSVRJRExDb252ZXJ0LmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJRTNBNzc2NjgxREM4NUQyODAwQjY5MEQ4
IC8qIERPTUpJVElETFR5cGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEUzQTc3NjY2MURDODVEMjIwMEI2OTBEOCAvKiBET01KSVRJRExUeXBlLmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJRTNCMkYwRUQx
RDdGNENBMzAwQjBDOUQxIC8qIExvYWRhYmxlU2NyaXB0LmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFM0IyRjBFNzFEN0YzNUVDMDBCMEM5RDEgLyogTG9h
ZGFibGVTY3JpcHQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OwpAQCAtMTUwNjUsNiArMTUwNjcsOCBAQAogCQlFMzg4Mzg5NDFCQUQxNDVGMDBENjJFRTMg
LyogU2NyaXB0TW9kdWxlTG9hZGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IFNjcmlwdE1vZHVsZUxvYWRlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCUUzODgzODk1MUJBRDE0NUYwMEQ2MkVFMyAvKiBTY3JpcHRNb2R1bGVMb2FkZXIuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU2NyaXB0TW9kdWxlTG9hZGVyLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUzOEQwNjA5MUY4RTgxMTkwMDY0OUNGMiAvKiBNb2R1
bGVGZXRjaFBhcmFtZXRlcnMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTW9k
dWxlRmV0Y2hQYXJhbWV0ZXJzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUUzOTYy
OEEzMjM4ODkzNUIwMDY1OEVDRCAvKiBTaGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudC5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBTaGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudC5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQlFMzk2MjhBQjIzOTFDNEYzMDA2NThFQ0QgLyogV2ViQ29yZU1v
dGlvbk1hbmFnZXJDbGllbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViQ29yZU1vdGlvbk1hbmFnZXJD
bGllbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTM5NzVCNzYxRUM5QUYzOTAw
ODQ3NzE3IC8qIEpTRG9jdW1lbnRGcmFnbWVudERPTUpJVC5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBKU0RvY3VtZW50RnJhZ21lbnRET01KSVQuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQlFMzk3NUI3NzFFQzlBRjM5MDA4NDc3MTcgLyogSlNFbGVt
ZW50RE9NSklULmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTRWxl
bWVudERPTUpJVC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUzOTc1Qjc4MUVD
OUFGMzkwMDg0NzcxNyAvKiBKU0V2ZW50RE9NSklULmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IEpTRXZlbnRET01KSVQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwpAQCAtMTY2NDIsOCArMTY2NDYsOCBAQAogCQkJCTExNUNBODMwMjMzMjhCMUUwMEZEM0Iw
OCAvKiBMYXlvdXRVbml0cy5jcHAgKi8sCiAJCQkJNkY3MzkxOEMyMTA2Q0VERDAwNkFGMjYyIC8q
IExheW91dFVuaXRzLmggKi8sCiAJCQkJNkZFN0FBMjYyMUMzN0I2MzAwMjk2RENEIC8qIE1hcmdp
blR5cGVzLmggKi8sCi0JCQkJRTRBQkFCREIyMzYwODhGRDAwRkE0MzQ1IC8qIFJlbmRlckJsb2Nr
Rmxvd0xpbmVMYXlvdXQuaCAqLywKIAkJCQlFNEFCQUJERTIzNjA4OTNEMDBGQTQzNDUgLyogUmVu
ZGVyQmxvY2tGbG93TGluZUxheW91dC5jcHAgKi8sCisJCQkJRTRBQkFCREIyMzYwODhGRDAwRkE0
MzQ1IC8qIFJlbmRlckJsb2NrRmxvd0xpbmVMYXlvdXQuaCAqLywKIAkJCQkxMUZGMDJENTIwQkEz
QzgxMDA4M0YyNUIgLyogVmVyaWZpY2F0aW9uLmNwcCAqLywKIAkJCSk7CiAJCQlwYXRoID0gbGF5
b3V0OwpAQCAtMjI4MTAsNiArMjI4MTQsNyBAQAogCQkJCUU0NTM5MDM0MEVBRkQ2MzcwMDM2OTVD
OCAvKiBTY3JvbGxWaWV3SU9TLm1tICovLAogCQkJCUJFQTgwN0M2MEY3MTRBMDMwMDUyNDE5OSAv
KiBTZWxlY3Rpb25SZWN0LmNwcCAqLywKIAkJCQlCRUE4MDdDNzBGNzE0QTAzMDA1MjQxOTkgLyog
U2VsZWN0aW9uUmVjdC5oICovLAorCQkJCUUzOTYyOEEzMjM4ODkzNUIwMDY1OEVDRCAvKiBTaGFy
ZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudC5oICovLAogCQkJCTBGMDNDMDczMTg4NDY5NUUwMEE1
RjhDQSAvKiBTeXN0ZW1NZW1vcnkuaCAqLywKIAkJCQlFNDUzOTBBRDBFQUZGNEI1MDAzNjk1Qzgg
LyogU3lzdGVtTWVtb3J5SU9TLmNwcCAqLywKIAkJCQk0NEM5OTE5RDBGM0QyMTBFMDA1ODY2NzAg
LyogVGhlbWVJT1MuaCAqLywKQEAgLTIyODI2LDYgKzIyODMxLDcgQEAKIAkJCQkxRjM2RUE5QjFF
MjFCQTE3MDA2MjFFMjUgLyogV2ViQmFja2dyb3VuZFRhc2tDb250cm9sbGVyLm1tICovLAogCQkJ
CTMxNDAzNzk3MTI0QkVBN0YwMEFGNDBFNCAvKiBXZWJDb3JlTW90aW9uTWFuYWdlci5oICovLAog
CQkJCTMxNDAzNzk4MTI0QkVBN0YwMEFGNDBFNCAvKiBXZWJDb3JlTW90aW9uTWFuYWdlci5tbSAq
LywKKwkJCQlFMzk2MjhBQjIzOTFDNEYzMDA2NThFQ0QgLyogV2ViQ29yZU1vdGlvbk1hbmFnZXJD
bGllbnQuaCAqLywKIAkJCQlGRTBEODRFODEwNDg0MzQ4MDAxQTE3OUUgLyogV2ViRXZlbnQuaCAq
LywKIAkJCQlGRTBEODRFQTEwNDg0MzZFMDAxQTE3OUUgLyogV2ViRXZlbnQubW0gKi8sCiAJCQkJ
RjQ4MjIzMEYxRTM4NjlCODAwNjZGQzc5IC8qIFdlYkl0ZW1Qcm92aWRlclBhc3RlYm9hcmQuaCAq
LywKQEAgLTI4NzI5LDggKzI4NzM1LDggQEAKIAkJCQlGRkVGQUIyOTE4MzgwREEwMDA1MTQ1MzQg
LyogTGluZUxheW91dFN0YXRlLmggKi8sCiAJCQkJRTQ4NEEzM0QyMzA1NTMwMzAwOUFERTZBIC8q
IExpbmVMYXlvdXRUcmF2ZXJzYWwuY3BwICovLAogCQkJCUU0ODRBMzNCMjMwNTUzMDMwMDlBREU2
QSAvKiBMaW5lTGF5b3V0VHJhdmVyc2FsLmggKi8sCi0JCQkJRTQzNDNEMjEyMzkyNzc4MzAwRUJC
QjY2IC8qIExpbmVMYXlvdXRUcmF2ZXJzYWxTaW1wbGVQYXRoLmggKi8sCiAJCQkJRTQzNDNEMjQy
MzkyNzc4RjAwRUJCQjY2IC8qIExpbmVMYXlvdXRUcmF2ZXJzYWxDb21wbGV4UGF0aC5oICovLAor
CQkJCUU0MzQzRDIxMjM5Mjc3ODMwMEVCQkI2NiAvKiBMaW5lTGF5b3V0VHJhdmVyc2FsU2ltcGxl
UGF0aC5oICovLAogCQkJCUZGREJDMDQ2MTgzRDI3QjcwMDQwNzEwOSAvKiBMaW5lV2lkdGguY3Bw
ICovLAogCQkJCUZGREJDMDQ1MTgzRDI3QjcwMDQwNzEwOSAvKiBMaW5lV2lkdGguaCAqLywKIAkJ
CQlGRkFDMzBGRDE4NEZCMTQ1MDA4QzRGMUUgLyogVHJhaWxpbmdPYmplY3RzLmNwcCAqLywKQEAg
LTMwNTQxLDcgKzMwNTQ3LDYgQEAKIAkJCQk4MzcwNTY5MDFGNTA5MTVDMDBEOTM0MjUgLyogSlNG
aWxlU3lzdGVtRW50cnlDYWxsYmFjay5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODMzQjlFMzYxRjUw
OEQ4NTAwRTBFNDI4IC8qIEpTRmlsZVN5c3RlbUZpbGVFbnRyeS5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJNzEyQkU0ODgxRkU4Njg2QTAwMjAzMUNDIC8qIEpTRmlsbE1vZGUuaCBpbiBIZWFkZXJzICov
LAotCQkJCUU0MzQzRDI1MjM5Mjc3OTAwMEVCQkI2NiAvKiBMaW5lTGF5b3V0VHJhdmVyc2FsQ29t
cGxleFBhdGguaCBpbiBIZWFkZXJzICovLAogCQkJCUI2RDlEMjdCMTRFQUMwODYwMDkwRDc1RSAv
KiBKU0ZvY3VzRXZlbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUMyODA4MzNGMUM2REMyNkYwMDE0
NTFCNiAvKiBKU0ZvbnRGYWNlLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQzI0RUVBOTFDNzJBN0I0
MDA4MEY4RkMgLyogSlNGb250RmFjZVNldC5oIGluIEhlYWRlcnMgKi8sCkBAIC0zMTE5Niw2ICsz
MTIwMSw4IEBACiAJCQkJNkYyNkVCNDgyMzQwMDRBNTAwNjkwNkUyIC8qIExpbmVMYXlvdXRDb250
ZXh0LmggaW4gSGVhZGVycyAqLywKIAkJCQlGRkVGQUIyQTE4MzgwREEwMDA1MTQ1MzQgLyogTGlu
ZUxheW91dFN0YXRlLmggaW4gSGVhZGVycyAqLywKIAkJCQlFNDg0QTMzRTIzMDU1MzI1MDA5QURF
NkEgLyogTGluZUxheW91dFRyYXZlcnNhbC5oIGluIEhlYWRlcnMgKi8sCisJCQkJRTQzNDNEMjUy
MzkyNzc5MDAwRUJCQjY2IC8qIExpbmVMYXlvdXRUcmF2ZXJzYWxDb21wbGV4UGF0aC5oIGluIEhl
YWRlcnMgKi8sCisJCQkJRTQzNDNEMjMyMzkyNzc4NDAwRUJCQjY2IC8qIExpbmVMYXlvdXRUcmF2
ZXJzYWxTaW1wbGVQYXRoLmggaW4gSGVhZGVycyAqLywKIAkJCQlGRkRCQzA0NzE4M0QyN0I3MDA0
MDcxMDkgLyogTGluZVdpZHRoLmggaW4gSGVhZGVycyAqLywKIAkJCQlDQkE5REMwQjFERjQ0REY0
MDAwNTY3NUMgLyogTGlua0hlYWRlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTE0M0IyNjMxRERE
MTUyMDAwMTRGQUM2IC8qIExpbmtJY29uLmggaW4gSGVhZGVycyAqLywKQEAgLTMxNjg5LDcgKzMx
Njk2LDYgQEAKIAkJCQk1N0RDRUQ3NDIxNDMwNUYwMDAxNkI4NDcgLyogUHVibGljS2V5Q3JlZGVu
dGlhbERhdGEuaCBpbiBIZWFkZXJzICovLAogCQkJCTU3MzAzQkVGMjAwOTgwQzYwMDM1NTk2NSAv
KiBQdWJsaWNLZXlDcmVkZW50aWFsRGVzY3JpcHRvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTcz
MDNDMEEyMDA5OUJBRDAwMzU1OTY1IC8qIFB1YmxpY0tleUNyZWRlbnRpYWxSZXF1ZXN0T3B0aW9u
cy5oIGluIEhlYWRlcnMgKi8sCi0JCQkJRTQzNDNEMjMyMzkyNzc4NDAwRUJCQjY2IC8qIExpbmVM
YXlvdXRUcmF2ZXJzYWxTaW1wbGVQYXRoLmggaW4gSGVhZGVycyAqLywKIAkJCQk1NzMwM0JFQjIw
MDk3RjQwMDAzNTU5NjUgLyogUHVibGljS2V5Q3JlZGVudGlhbFR5cGUuaCBpbiBIZWFkZXJzICov
LAogCQkJCTAwODFGRjAwMTZCMEEyRDMwMDhBQUE3QSAvKiBQdWJsaWNTdWZmaXguaCBpbiBIZWFk
ZXJzICovLAogCQkJCTEwRkIwODRCMTRFMTVDN0UwMEEzREI5OCAvKiBQdWJsaWNVUkxNYW5hZ2Vy
LmggaW4gSGVhZGVycyAqLywKQEAgLTMxNzU1LDYgKzMxNzYxLDcgQEAKIAkJCQk3Q0Q0OTRDRDFB
ODZFQjFEMDAwQTg3RUMgLyogUmVuZGVyQXR0YWNobWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
QkNFQTQ4NjAwOTdEOTMwMjAwOTRDOUU0IC8qIFJlbmRlckJsb2NrLmggaW4gSGVhZGVycyAqLywK
IAkJCQlCQzEwRDc2ODE3RDhFRTcxMDA1RTI2MjYgLyogUmVuZGVyQmxvY2tGbG93LmggaW4gSGVh
ZGVycyAqLywKKwkJCQlFNEFCQUJERDIzNjA4OEZFMDBGQTQzNDUgLyogUmVuZGVyQmxvY2tGbG93
TGluZUxheW91dC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkNFQTQ4NjIwOTdEOTMwMjAwOTRDOUU0
IC8qIFJlbmRlckJveC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkNFQjE3OUMxNDMzNzlGNTAwNTJF
QUU5IC8qIFJlbmRlckJveEZyYWdtZW50SW5mby5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkM5NkRC
NDMwRjNBODgwRTAwNTczQ0IzIC8qIFJlbmRlckJveE1vZGVsT2JqZWN0LmggaW4gSGVhZGVycyAq
LywKQEAgLTMyMTQzLDYgKzMyMTUwLDcgQEAKIAkJCQlGRDFBRjE1MDE2NTZGMTUxMDBDNkQ0Rjcg
LyogU2hhcGVWYWx1ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUQ5RjBGQzEyMTIyMDI5QjAwNUQ4
RkQ0IC8qIFNoYXJlRGF0YS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUE0QTk1NEUwQjRFRENDQjAw
MkQ4QzNDIC8qIFNoYXJlZEJ1ZmZlci5oIGluIEhlYWRlcnMgKi8sCisJCQkJRTM5NjI4QTQyMzg4
OTM1QjAwNjU4RUNEIC8qIFNoYXJlZERldmljZU9yaWVudGF0aW9uQ2xpZW50LmggaW4gSGVhZGVy
cyAqLywKIAkJCQk4MzRERkFEMDFGN0RBRTVEMDBDMjcyNUIgLyogU2hhcmVkU3RyaW5nSGFzaC5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJOTMzMDlFQTMwOTlFQjc4QzAwNTZFNTgxIC8qIFNoYXJlZFRp
bWVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk4MzYyRThDMTIwQ0VGOUNCMDAyNDU4ODYgLyogU2hv
dWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkLmggaW4gSGVhZGVycyAqLywKQEAgLTMyNDcwLDcgKzMy
NDc4LDYgQEAKIAkJCQkwODhDMkY3QTEyMzkwMDgxMDAzRDY1Q0UgLyogU1ZHVGV4dExheW91dEF0
dHJpYnV0ZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTA4MTA5M0RDMTI1NUYwRTcwMEVEOUQyOSAv
KiBTVkdUZXh0TGF5b3V0QXR0cmlidXRlc0J1aWxkZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTA4
MTY2OERBMTI1NjAzRDUwMDZGMjVERSAvKiBTVkdUZXh0TGF5b3V0RW5naW5lLmggaW4gSGVhZGVy
cyAqLywKLQkJCQlFNEFCQUJERDIzNjA4OEZFMDBGQTQzNDUgLyogUmVuZGVyQmxvY2tGbG93TGlu
ZUxheW91dC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMDgwRTQ5MjYxMjU1RjNCRDAwRUZDQTI3IC8q
IFNWR1RleHRMYXlvdXRFbmdpbmVCYXNlbGluZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMDgwRTQ5
MjgxMjU1RjNCRDAwRUZDQTI3IC8qIFNWR1RleHRMYXlvdXRFbmdpbmVTcGFjaW5nLmggaW4gSGVh
ZGVycyAqLywKIAkJCQkwOEYwQkZDNjEyNTVDNTNDMDAwNzUxODUgLyogU1ZHVGV4dE1ldHJpY3Mu
aCBpbiBIZWFkZXJzICovLApAQCAtMzI3NjQsNiArMzI3NzEsNyBAQAogCQkJCUJDNTNEOTExMTE0
MzEwQ0MwMDBEODE3RSAvKiBXZWJDb3JlSlNDbGllbnREYXRhLmggaW4gSGVhZGVycyAqLywKIAkJ
CQk5M0YxOTlCQjA4MjQ1RTU5MDAxRTlBQkMgLyogV2ViQ29yZUtleWJvYXJkVUlNb2RlLmggaW4g
SGVhZGVycyAqLywKIAkJCQkzMTQwMzc5QjEyNEJFQTdGMDBBRjQwRTQgLyogV2ViQ29yZU1vdGlv
bk1hbmFnZXIuaCBpbiBIZWFkZXJzICovLAorCQkJCUUzOTYyOEFDMjM5MUM4MTcwMDY1OEVDRCAv
KiBXZWJDb3JlTW90aW9uTWFuYWdlckNsaWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQ0RDOTc5
RjUxQzQ5OEMwOTAwREI1MEQ0IC8qIFdlYkNvcmVOU0Vycm9yRXh0cmFzLmggaW4gSGVhZGVycyAq
LywKIAkJCQlGNEU1N0VFMTIxM0Y0MzRBMDA0RUE5OEUgLyogV2ViQ29yZU5TRm9udE1hbmFnZXJF
eHRyYXMuaCBpbiBIZWFkZXJzICovLAogCQkJCUM1QjRDMjREMTUwOTIzNkMwMEE2RUYzNyAvKiBX
ZWJDb3JlTlNVUkxFeHRyYXMuaCBpbiBIZWFkZXJzICovLApJbmRleDogU291cmNlL1dlYkNvcmUv
ZG9tL0RldmljZU9yaWVudGF0aW9uQ2xpZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvZG9tL0RldmljZU9yaWVudGF0aW9uQ2xpZW50LmgJKHJldmlzaW9uIDI1Mjk2MSkKKysrIFNv
dXJjZS9XZWJDb3JlL2RvbS9EZXZpY2VPcmllbnRhdGlvbkNsaWVudC5oCSh3b3JraW5nIGNvcHkp
CkBAIC0yOCwxMiArMjgsMTQgQEAKIAogI2luY2x1ZGUgIkRldmljZUNsaWVudC5oIgogI2luY2x1
ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgorI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KIAogbmFtZXNw
YWNlIFdlYkNvcmUgewogCiBjbGFzcyBEZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXI7CiBjbGFz
cyBEZXZpY2VPcmllbnRhdGlvbkRhdGE7CiBjbGFzcyBQYWdlOworY2xhc3MgU2hhcmVkRGV2aWNl
T3JpZW50YXRpb25DbGllbnQ7CiAKIGNsYXNzIERldmljZU9yaWVudGF0aW9uQ2xpZW50IDogcHVi
bGljIERldmljZUNsaWVudCB7CiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoRGV2aWNlT3JpZW50
YXRpb25DbGllbnQpOwpAQCAtNDMsNiArNDUsMTAgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9p
ZCBzZXRDb250cm9sbGVyKERldmljZU9yaWVudGF0aW9uQ29udHJvbGxlciopID0gMDsKICAgICB2
aXJ0dWFsIERldmljZU9yaWVudGF0aW9uRGF0YSogbGFzdE9yaWVudGF0aW9uKCkgY29uc3QgPSAw
OwogICAgIHZpcnR1YWwgdm9pZCBkZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXJEZXN0cm95ZWQo
KSA9IDA7CisKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKQorICAgIHZpcnR1YWwgdm9pZCBzZXRT
aGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudChSZWZQdHI8U2hhcmVkRGV2aWNlT3JpZW50YXRp
b25DbGllbnQ+KSB7IH07CisjZW5kaWYKIH07CiAKIFdFQkNPUkVfRVhQT1JUIHZvaWQgcHJvdmlk
ZURldmljZU9yaWVudGF0aW9uVG8oUGFnZSYsIERldmljZU9yaWVudGF0aW9uQ2xpZW50Jik7Cklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAJKHJldmlzaW9uIDI1Mjk2MSkKKysrIFNvdXJjZS9X
ZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTYwNyw5ICs2MDcsMTUg
QEAgRG9jdW1lbnQ6OkRvY3VtZW50KEZyYW1lKiBmcmFtZSwgY29uc3QgVQogICAgICAgICBub2Rl
TGlzdEFuZENvbGxlY3Rpb25Db3VudCA9IDA7CiAKICAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRp
b246OmFkZEV2ZW50TGlzdGVuZXJzVG9Ob2RlKCp0aGlzKTsKKyAgICAKICNpZiBFTkFCTEUoTUVE
SUFfU1RSRUFNKQogICAgIG1fc2V0dGluZ3MtPnNldExlZ2FjeUdldFVzZXJNZWRpYUVuYWJsZWQo
cXVpcmtzKCkuc2hvdWxkRW5hYmxlTGVnYWN5R2V0VXNlck1lZGlhKCkpOwogI2VuZGlmCisKKyNp
ZiBQTEFURk9STShJT1NfRkFNSUxZKSAmJiBFTkFCTEUoREVWSUNFX09SSUVOVEFUSU9OKQorICAg
IGlmIChwYWdlKCkgJiYgcGFnZSgpLT5zaGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudCgpKQor
ICAgICAgICBtX2RldmljZU9yaWVudGF0aW9uQ2xpZW50LT5zZXRTaGFyZWREZXZpY2VPcmllbnRh
dGlvbkNsaWVudChwYWdlKCktPnNoYXJlZERldmljZU9yaWVudGF0aW9uQ2xpZW50KCkpOworI2Vu
ZGlmCiB9CiAKIFJlZjxEb2N1bWVudD4gRG9jdW1lbnQ6OmNyZWF0ZShEb2N1bWVudCYgY29udGV4
dERvY3VtZW50KQpJbmRleDogU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCShyZXZpc2lvbiAyNTI5NjEpCisrKyBT
b3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yODksNiArMjg5
LDkgQEAgUGFnZTo6UGFnZShQYWdlQ29uZmlndXJhdGlvbiYmIHBhZ2VDb25maQogI2lmIEVOQUJM
RShBUFBMSUNBVElPTl9NQU5JRkVTVCkKICAgICAsIG1fYXBwbGljYXRpb25NYW5pZmVzdChwYWdl
Q29uZmlndXJhdGlvbi5hcHBsaWNhdGlvbk1hbmlmZXN0KQogI2VuZGlmCisjaWYgRU5BQkxFKERF
VklDRV9PUklFTlRBVElPTikgJiYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKyAgICAsIG1fc2hhcmVk
RGV2aWNlT3JpZW50YXRpb25DbGllbnQoV1RGTW92ZShwYWdlQ29uZmlndXJhdGlvbi5zaGFyZWRE
ZXZpY2VPcmllbnRhdGlvbkNsaWVudCkpCisjZW5kaWYKIHsKICAgICB1cGRhdGVUaW1lclRocm90
dGxpbmdTdGF0ZSgpOwogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuaAkocmV2aXNpb24gMjUyOTYxKQorKysg
U291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmgJKHdvcmtpbmcgY29weSkKQEAgLTY5LDYgKzY5LDEw
IEBACiAjaW5jbHVkZSAiTWVkaWFQbGF5YmFja1RhcmdldENvbnRleHQuaCIKICNlbmRpZgogCisj
aWYgRU5BQkxFKERFVklDRV9PUklFTlRBVElPTikgJiYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKyNp
bmNsdWRlICJTaGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudC5oIgorI2VuZGlmCisKIG5hbWVz
cGFjZSBKU0MgewogY2xhc3MgRGVidWdnZXI7CiB9CkBAIC03MTksNiArNzIzLDEwIEBAIHB1Ymxp
YzoKIAogICAgIFdFQkNPUkVfRVhQT1JUIFZlY3RvcjxSZWY8RWxlbWVudD4+IGVkaXRhYmxlRWxl
bWVudHNJblJlY3QoY29uc3QgRmxvYXRSZWN0JikgY29uc3Q7CiAKKyNpZiBFTkFCTEUoREVWSUNF
X09SSUVOVEFUSU9OKSAmJiBQTEFURk9STShJT1NfRkFNSUxZKQorICAgIFJlZlB0cjxTaGFyZWRE
ZXZpY2VPcmllbnRhdGlvbkNsaWVudD4gc2hhcmVkRGV2aWNlT3JpZW50YXRpb25DbGllbnQoKSBj
b25zdCB7IHJldHVybiBtX3NoYXJlZERldmljZU9yaWVudGF0aW9uQ2xpZW50OyB9CisjZW5kaWYK
KwogcHJpdmF0ZToKICAgICBzdHJ1Y3QgTmF2aWdhdGlvbiB7CiAgICAgICAgIFJlZ2lzdHJhYmxl
RG9tYWluIGRvbWFpbjsKQEAgLTk5MCw2ICs5OTgsMTAgQEAgcHJpdmF0ZToKIAogICAgIE9wdGlv
bmFsPFZpZXdwb3J0QXJndW1lbnRzPiBtX292ZXJyaWRlVmlld3BvcnRBcmd1bWVudHM7CiAKKyNp
ZiBFTkFCTEUoREVWSUNFX09SSUVOVEFUSU9OKSAmJiBQTEFURk9STShJT1NfRkFNSUxZKQorICAg
IFJlZlB0cjxTaGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudD4gbV9zaGFyZWREZXZpY2VPcmll
bnRhdGlvbkNsaWVudDsKKyNlbmRpZgorCiAgICAgYm9vbCBtX3Nob3VsZEVuYWJsZUlDRUNhbmRp
ZGF0ZUZpbHRlcmluZ0J5RGVmYXVsdCB7IHRydWUgfTsKICAgICBib29sIG1fbWVkaWFQbGF5YmFj
a0lzU3VzcGVuZGVkIHsgZmFsc2UgfTsKICAgICBib29sIG1fbWVkaWFCdWZmZXJpbmdJc1N1c3Bl
bmRlZCB7IGZhbHNlIH07CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VDb25maWd1cmF0
aW9uLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlQ29uZmlndXJhdGlv
bi5oCShyZXZpc2lvbiAyNTI5NjEpCisrKyBTb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VDb25maWd1
cmF0aW9uLmgJKHdvcmtpbmcgY29weSkKQEAgLTU3LDYgKzU3LDcgQEAgY2xhc3MgUGVyZm9ybWFu
Y2VMb2dnaW5nQ2xpZW50OwogY2xhc3MgUGx1Z0luQ2xpZW50OwogY2xhc3MgUGx1Z2luSW5mb1By
b3ZpZGVyOwogY2xhc3MgUHJvZ3Jlc3NUcmFja2VyQ2xpZW50OworY2xhc3MgU2hhcmVkRGV2aWNl
T3JpZW50YXRpb25DbGllbnQ7CiBjbGFzcyBTb2NrZXRQcm92aWRlcjsKIGNsYXNzIFN0b3JhZ2VO
YW1lc3BhY2VQcm92aWRlcjsKIGNsYXNzIFVzZXJDb250ZW50UHJvdmlkZXI7CkBAIC0xMTgsNiAr
MTE5LDEwIEBAIHB1YmxpYzoKICAgICBSZWZQdHI8U3RvcmFnZU5hbWVzcGFjZVByb3ZpZGVyPiBz
dG9yYWdlTmFtZXNwYWNlUHJvdmlkZXI7CiAgICAgUmVmUHRyPFVzZXJDb250ZW50UHJvdmlkZXI+
IHVzZXJDb250ZW50UHJvdmlkZXI7CiAgICAgUmVmUHRyPFZpc2l0ZWRMaW5rU3RvcmU+IHZpc2l0
ZWRMaW5rU3RvcmU7CisgICAgCisjaWYgRU5BQkxFKERFVklDRV9PUklFTlRBVElPTikgJiYgUExB
VEZPUk0oSU9TX0ZBTUlMWSkKKyAgICBSZWZQdHI8U2hhcmVkRGV2aWNlT3JpZW50YXRpb25DbGll
bnQ+IHNoYXJlZERldmljZU9yaWVudGF0aW9uQ2xpZW50OworI2VuZGlmCiB9OwogCiB9CkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvRGV2aWNlT3JpZW50YXRpb25DbGllbnRJT1Mu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvRGV2aWNlT3JpZW50
YXRpb25DbGllbnRJT1MuaAkocmV2aXNpb24gMjUyOTYxKQorKysgU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vaW9zL0RldmljZU9yaWVudGF0aW9uQ2xpZW50SU9TLmgJKHdvcmtpbmcgY29weSkKQEAg
LTMwLDEzICszMCwxNSBAQAogI2luY2x1ZGUgIkRldmljZU9yaWVudGF0aW9uQ2xpZW50LmgiCiAj
aW5jbHVkZSAiRGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyLmgiCiAjaW5jbHVkZSAiRGV2aWNl
T3JpZW50YXRpb25EYXRhLmgiCisjaW5jbHVkZSAiU2hhcmVkRGV2aWNlT3JpZW50YXRpb25DbGll
bnQuaCIKKyNpbmNsdWRlICJXZWJDb3JlTW90aW9uTWFuYWdlckNsaWVudC5oIgogI2luY2x1ZGUg
PHd0Zi9SZWZQdHIuaD4KIAogT0JKQ19DTEFTUyBXZWJDb3JlTW90aW9uTWFuYWdlcjsKIAogbmFt
ZXNwYWNlIFdlYkNvcmUgewogCi1jbGFzcyBEZXZpY2VPcmllbnRhdGlvbkNsaWVudElPUyA6IHB1
YmxpYyBEZXZpY2VPcmllbnRhdGlvbkNsaWVudCB7CitjbGFzcyBEZXZpY2VPcmllbnRhdGlvbkNs
aWVudElPUyA6IHB1YmxpYyBEZXZpY2VPcmllbnRhdGlvbkNsaWVudCwgcHVibGljIFdlYkNvcmVN
b3Rpb25NYW5hZ2VyQ2xpZW50IHsKIHB1YmxpYzoKICAgICBEZXZpY2VPcmllbnRhdGlvbkNsaWVu
dElPUygpOwogICAgIH5EZXZpY2VPcmllbnRhdGlvbkNsaWVudElPUygpIG92ZXJyaWRlOwpAQCAt
NDYsMTIgKzQ4LDE1IEBAIHB1YmxpYzoKICAgICBEZXZpY2VPcmllbnRhdGlvbkRhdGEqIGxhc3RP
cmllbnRhdGlvbigpIGNvbnN0IG92ZXJyaWRlOwogICAgIHZvaWQgZGV2aWNlT3JpZW50YXRpb25D
b250cm9sbGVyRGVzdHJveWVkKCkgb3ZlcnJpZGU7CiAKLSAgICB2b2lkIG9yaWVudGF0aW9uQ2hh
bmdlZChkb3VibGUsIGRvdWJsZSwgZG91YmxlLCBkb3VibGUsIGRvdWJsZSk7CisgICAgdm9pZCBv
cmllbnRhdGlvbkNoYW5nZWQoZG91YmxlLCBkb3VibGUsIGRvdWJsZSwgZG91YmxlLCBkb3VibGUp
IG92ZXJyaWRlOwogCisgICAgdm9pZCBzZXRTaGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudChS
ZWZQdHI8U2hhcmVkRGV2aWNlT3JpZW50YXRpb25DbGllbnQ+IHNoYXJlZERldmljZU9yaWVudGF0
aW9uQ2xpZW50KSBvdmVycmlkZSB7IG1fc2hhcmVkRGV2aWNlT3JpZW50YXRpb25DbGllbnQgPSBz
aGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudDsgfQorICAgIAogcHJpdmF0ZToKICAgICBXZWJD
b3JlTW90aW9uTWFuYWdlciogbV9tb3Rpb25NYW5hZ2VyOwogICAgIERldmljZU9yaWVudGF0aW9u
Q29udHJvbGxlciogbV9jb250cm9sbGVyOwogICAgIFJlZlB0cjxEZXZpY2VPcmllbnRhdGlvbkRh
dGE+IG1fY3VycmVudERldmljZU9yaWVudGF0aW9uOworICAgIFJlZlB0cjxTaGFyZWREZXZpY2VP
cmllbnRhdGlvbkNsaWVudD4gbV9zaGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudDsKICAgICBi
b29sIG1fdXBkYXRpbmc7CiB9OwogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3Mv
RGV2aWNlT3JpZW50YXRpb25DbGllbnRJT1MubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vaW9zL0RldmljZU9yaWVudGF0aW9uQ2xpZW50SU9TLm1tCShyZXZpc2lvbiAy
NTI5NjEpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvRGV2aWNlT3JpZW50YXRpb25D
bGllbnRJT1MubW0JKHdvcmtpbmcgY29weSkKQEAgLTUzLDYgKzUzLDExIEBAIHZvaWQgRGV2aWNl
T3JpZW50YXRpb25DbGllbnRJT1M6OnN0YXJ0VXAKIHsKICAgICBtX3VwZGF0aW5nID0gdHJ1ZTsK
IAorICAgIGlmIChtX3NoYXJlZERldmljZU9yaWVudGF0aW9uQ2xpZW50KSB7CisgICAgICAgIG1f
c2hhcmVkRGV2aWNlT3JpZW50YXRpb25DbGllbnQtPnN0YXJ0VXBkYXRpbmcoKnRoaXMpOworICAg
ICAgICByZXR1cm47CisgICAgfQorCiAgICAgaWYgKCFtX21vdGlvbk1hbmFnZXIpCiAgICAgICAg
IG1fbW90aW9uTWFuYWdlciA9IFtXZWJDb3JlTW90aW9uTWFuYWdlciBzaGFyZWRNYW5hZ2VyXTsK
IApAQCAtNjMsNiArNjgsMTEgQEAgdm9pZCBEZXZpY2VPcmllbnRhdGlvbkNsaWVudElPUzo6c3Rv
cFVwZAogewogICAgIG1fdXBkYXRpbmcgPSBmYWxzZTsKIAorICAgIGlmIChtX3NoYXJlZERldmlj
ZU9yaWVudGF0aW9uQ2xpZW50KSB7CisgICAgICAgIG1fc2hhcmVkRGV2aWNlT3JpZW50YXRpb25D
bGllbnQtPnN0b3BVcGRhdGluZygqdGhpcyk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKICAg
ICAvLyBSZW1vdmUgb3Vyc2VsdmVzIGFzIHRoZSBvcmllbnRhdGlvbiBjbGllbnQgc28gd2Ugd29u
J3QgZ2V0IHVwZGF0ZXMuCiAgICAgW21fbW90aW9uTWFuYWdlciByZW1vdmVPcmllbnRhdGlvbkNs
aWVudDp0aGlzXTsKIH0KQEAgLTc0LDYgKzg0LDExIEBAIERldmljZU9yaWVudGF0aW9uRGF0YSog
RGV2aWNlT3JpZW50YXRpb24KIAogdm9pZCBEZXZpY2VPcmllbnRhdGlvbkNsaWVudElPUzo6ZGV2
aWNlT3JpZW50YXRpb25Db250cm9sbGVyRGVzdHJveWVkKCkKIHsKKyAgICBpZiAobV9zaGFyZWRE
ZXZpY2VPcmllbnRhdGlvbkNsaWVudCkgeworICAgICAgICBtX3NoYXJlZERldmljZU9yaWVudGF0
aW9uQ2xpZW50LT5zdG9wVXBkYXRpbmcoKnRoaXMpOworICAgICAgICByZXR1cm47CisgICAgfQor
CiAgICAgW21fbW90aW9uTWFuYWdlciByZW1vdmVPcmllbnRhdGlvbkNsaWVudDp0aGlzXTsKIH0K
ICAgICAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9TaGFyZWREZXZpY2VPcmll
bnRhdGlvbkNsaWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lv
cy9TaGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudC5oCShub25leGlzdGVudCkKKysrIFNvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9TaGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudC5oCSh3
b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNDkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTkg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAqIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIGBgQVMgSVMnJyBBTkQg
QU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiAgSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVCBPV05FUiBPUgorICogQ09OVFJJQlVU
T1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNT
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAor
ICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisj
aWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkgJiYgRU5BQkxFKERFVklDRV9PUklFTlRBVElPTikKKwor
I2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xh
c3MgV2ViQ29yZU1vdGlvbk1hbmFnZXJDbGllbnQ7CisKK2NsYXNzIFNoYXJlZERldmljZU9yaWVu
dGF0aW9uQ2xpZW50IDogcHVibGljIFJlZkNvdW50ZWQ8U2hhcmVkRGV2aWNlT3JpZW50YXRpb25D
bGllbnQ+IHsKK3B1YmxpYzoKKyAgICBTaGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudCgpIHsg
fQorICAgIHZpcnR1YWwgflNoYXJlZERldmljZU9yaWVudGF0aW9uQ2xpZW50KCkgeyB9CisKKyAg
ICB2aXJ0dWFsIHZvaWQgc3RhcnRVcGRhdGluZyhXZWJDb3JlTW90aW9uTWFuYWdlckNsaWVudCYp
IHsgfQorICAgIHZpcnR1YWwgdm9pZCBzdG9wVXBkYXRpbmcoV2ViQ29yZU1vdGlvbk1hbmFnZXJD
bGllbnQmKSB7IH0KKworICAgIHZpcnR1YWwgdm9pZCBkZXZpY2VPcmllbnRhdGlvbkNoYW5nZWQo
ZG91YmxlLCBkb3VibGUsIGRvdWJsZSwgZG91YmxlLCBkb3VibGUpIHsgfQorfTsKKworfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gUExBVEZPUk0oSU9TX0ZBTUlMWSkgJiYgRU5B
QkxFKERFVklDRV9PUklFTlRBVElPTikKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lv
cy9XZWJDb3JlTW90aW9uTWFuYWdlci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2lvcy9XZWJDb3JlTW90aW9uTWFuYWdlci5oCShyZXZpc2lvbiAyNTI5NjEpCisrKyBT
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvV2ViQ29yZU1vdGlvbk1hbmFnZXIuaAkod29ya2lu
ZyBjb3B5KQpAQCAtMjUsOCArMjUsNiBAQAogCiAjcHJhZ21hIG9uY2UKIAotI2ltcG9ydCAiRGV2
aWNlTW90aW9uQ2xpZW50SU9TLmgiCi0jaW1wb3J0ICJEZXZpY2VPcmllbnRhdGlvbkNsaWVudElP
Uy5oIgogI2ltcG9ydCA8Q29yZUxvY2F0aW9uL0NvcmVMb2NhdGlvbi5oPgogI2ltcG9ydCA8d3Rm
L0hhc2hDb3VudGVkU2V0Lmg+CiAKQEAgLTM2LDExICszNCwxNiBAQAogCiBjb25zdCBmbG9hdCBr
TW90aW9uVXBkYXRlSW50ZXJ2YWwgPSAxLjBmIC8gNjAuMGY7CiAKLUBpbnRlcmZhY2UgV2ViQ29y
ZU1vdGlvbk1hbmFnZXIgOiBOU09iamVjdCB7CituYW1lc3BhY2UgV2ViQ29yZSB7CitjbGFzcyBE
ZXZpY2VNb3Rpb25DbGllbnRJT1M7CitjbGFzcyBXZWJDb3JlTW90aW9uTWFuYWdlckNsaWVudDsK
K307CisKK1dFQkNPUkVfRVhQT1JUIEBpbnRlcmZhY2UgV2ViQ29yZU1vdGlvbk1hbmFnZXIgOiBO
U09iamVjdCB7CiAgICAgQ01Nb3Rpb25NYW5hZ2VyKiBtX21vdGlvbk1hbmFnZXI7CiAgICAgQ0xM
b2NhdGlvbk1hbmFnZXIqIG1fbG9jYXRpb25NYW5hZ2VyOwogICAgIEhhc2hTZXQ8V2ViQ29yZTo6
RGV2aWNlTW90aW9uQ2xpZW50SU9TKj4gbV9kZXZpY2VNb3Rpb25DbGllbnRzOwotICAgIEhhc2hT
ZXQ8V2ViQ29yZTo6RGV2aWNlT3JpZW50YXRpb25DbGllbnRJT1MqPiBtX2RldmljZU9yaWVudGF0
aW9uQ2xpZW50czsKKyAgICBIYXNoU2V0PFdlYkNvcmU6OldlYkNvcmVNb3Rpb25NYW5hZ2VyQ2xp
ZW50Kj4gbV9kZXZpY2VPcmllbnRhdGlvbkNsaWVudHM7CiAgICAgTlNUaW1lciogbV91cGRhdGVU
aW1lcjsKICAgICBCT09MIG1fZ3lyb0F2YWlsYWJsZTsKICAgICBCT09MIG1faGVhZGluZ0F2YWls
YWJsZTsKQEAgLTUwLDggKzUzLDggQEAgY29uc3QgZmxvYXQga01vdGlvblVwZGF0ZUludGVydmFs
ID0gMS4wZgogKyAoV2ViQ29yZU1vdGlvbk1hbmFnZXIgKilzaGFyZWRNYW5hZ2VyOwogLSAodm9p
ZClhZGRNb3Rpb25DbGllbnQ6KFdlYkNvcmU6OkRldmljZU1vdGlvbkNsaWVudElPUyAqKWNsaWVu
dDsKIC0gKHZvaWQpcmVtb3ZlTW90aW9uQ2xpZW50OihXZWJDb3JlOjpEZXZpY2VNb3Rpb25DbGll
bnRJT1MgKiljbGllbnQ7Ci0tICh2b2lkKWFkZE9yaWVudGF0aW9uQ2xpZW50OihXZWJDb3JlOjpE
ZXZpY2VPcmllbnRhdGlvbkNsaWVudElPUyAqKWNsaWVudDsKLS0gKHZvaWQpcmVtb3ZlT3JpZW50
YXRpb25DbGllbnQ6KFdlYkNvcmU6OkRldmljZU9yaWVudGF0aW9uQ2xpZW50SU9TICopY2xpZW50
OworLSAodm9pZClhZGRPcmllbnRhdGlvbkNsaWVudDooV2ViQ29yZTo6V2ViQ29yZU1vdGlvbk1h
bmFnZXJDbGllbnQgKiljbGllbnQ7CistICh2b2lkKXJlbW92ZU9yaWVudGF0aW9uQ2xpZW50OihX
ZWJDb3JlOjpXZWJDb3JlTW90aW9uTWFuYWdlckNsaWVudCAqKWNsaWVudDsKIC0gKEJPT0wpZ3ly
b0F2YWlsYWJsZTsKIC0gKEJPT0wpaGVhZGluZ0F2YWlsYWJsZTsKIEBlbmQKSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJDb3JlTW90aW9uTWFuYWdlci5tbQo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvV2ViQ29yZU1vdGlvbk1hbmFnZXIubW0J
KHJldmlzaW9uIDI1Mjk2MSkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJDb3Jl
TW90aW9uTWFuYWdlci5tbQkod29ya2luZyBjb3B5KQpAQCAtMjgsNiArMjgsOCBAQAogCiAjaWYg
UExBVEZPUk0oSU9TX0ZBTUlMWSkgJiYgRU5BQkxFKERFVklDRV9PUklFTlRBVElPTikKIAorI2lt
cG9ydCAiRGV2aWNlTW90aW9uQ2xpZW50SU9TLmgiCisjaW1wb3J0ICJXZWJDb3JlTW90aW9uTWFu
YWdlckNsaWVudC5oIgogI2ltcG9ydCAiV2ViQ29yZU9iakNFeHRyYXMuaCIKICNpbXBvcnQgIldl
YkNvcmVUaHJlYWRSdW4uaCIKICNpbXBvcnQgPENvcmVMb2NhdGlvbi9Db3JlTG9jYXRpb24uaD4K
QEAgLTExMiwxNCArMTE0LDE0IEBAIC0gKHZvaWQpcmVtb3ZlTW90aW9uQ2xpZW50OihXZWJDb3Jl
OjpEZXYKICAgICAgICAgW3NlbGYgY2hlY2tDbGllbnRTdGF0dXNdOwogfQogCi0tICh2b2lkKWFk
ZE9yaWVudGF0aW9uQ2xpZW50OihXZWJDb3JlOjpEZXZpY2VPcmllbnRhdGlvbkNsaWVudElPUyAq
KWNsaWVudAorLSAodm9pZClhZGRPcmllbnRhdGlvbkNsaWVudDooV2ViQ29yZTo6V2ViQ29yZU1v
dGlvbk1hbmFnZXJDbGllbnQgKiljbGllbnQKIHsKICAgICBtX2RldmljZU9yaWVudGF0aW9uQ2xp
ZW50cy5hZGQoY2xpZW50KTsKICAgICBpZiAobV9pbml0aWFsaXplZCkKICAgICAgICAgW3NlbGYg
Y2hlY2tDbGllbnRTdGF0dXNdOwogfQogCi0tICh2b2lkKXJlbW92ZU9yaWVudGF0aW9uQ2xpZW50
OihXZWJDb3JlOjpEZXZpY2VPcmllbnRhdGlvbkNsaWVudElPUyAqKWNsaWVudAorLSAodm9pZCly
ZW1vdmVPcmllbnRhdGlvbkNsaWVudDooV2ViQ29yZTo6V2ViQ29yZU1vdGlvbk1hbmFnZXJDbGll
bnQgKiljbGllbnQKIHsKICAgICBtX2RldmljZU9yaWVudGF0aW9uQ2xpZW50cy5yZW1vdmUoY2xp
ZW50KTsKICAgICBpZiAobV9pbml0aWFsaXplZCkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2lvcy9XZWJDb3JlTW90aW9uTWFuYWdlckNsaWVudC5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJDb3JlTW90aW9uTWFuYWdlckNsaWVudC5oCShub25l
eGlzdGVudCkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJDb3JlTW90aW9uTWFu
YWdlckNsaWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMzcgQEAKKy8qCisqIENvcHly
aWdodCAoQykgMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisqCisqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyogYXJlIG1ldDoKKyogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisqCisqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBg
YEFTIElTJycKKyogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVU
T1JTCisqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IKKyogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyogU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisq
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOCisqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisqIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyogVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorKi8KKworI3ByYWdtYSBvbmNlCisKK25hbWVz
cGFjZSBXZWJDb3JlIHsKKworY2xhc3MgV2ViQ29yZU1vdGlvbk1hbmFnZXJDbGllbnQgeworcHVi
bGljOgorICAgIHZpcnR1YWwgfldlYkNvcmVNb3Rpb25NYW5hZ2VyQ2xpZW50KCkgeyB9OworCisg
ICAgdmlydHVhbCB2b2lkIG9yaWVudGF0aW9uQ2hhbmdlZChkb3VibGUsIGRvdWJsZSwgZG91Ymxl
LCBkb3VibGUsIGRvdWJsZSkgeyB9OworfTsKKworfTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvQ2hh
bmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCShyZXZpc2lvbiAy
NTI5NjEpCisrKyBTb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDMzIEBACisyMDE5LTExLTMwICBQZXIgQXJuZSBWb2xsYW4gIDxwdm9sbGFuQGFwcGxlLmNv
bT4KKworICAgICAgICBbaU9TXSBDYWxscyB0byBkZXZpY2Ugb3JpZW50YXRpb24gQVBJIHNob3Vs
ZCBiZSBkb25lIGluIHRoZSBVSSBwcm9jZXNzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yMDQ3MjAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBBZGQgV2ViIHBhZ2UgcHJveHkgbWVzc2FnZXMgdG8gc3RhcnQg
YW5kIHN0b3AgdXBkYXRpbmcgZGV2aWNlIG9yaWVudGF0aW9uIGluIHRoZSBVSSBwcm9jZXNzLiBB
bHNvLCBhZGQgYSBtZXNzYWdlIHRvCisgICAgICAgIHRoZSBXZWIgcGFnZSB0byB1cGRhdGUgdGhl
IGRldmljZSBvcmllbnRhdGlvbiBpbiB0aGUgV2ViQ29udGVudCBwcm9jZXNzLiBJbiB0aGUgVUkg
cHJvY2VzcywgdGhlIGRldmljZSBvcmllbnRhdGlvbiBBUEkKKyAgICAgICAgaXMgY2FsbGVkIHRo
cm91Z2ggdGhlIGFscmVhZHkgZXhpc3RpbmcgV2ViQ29yZU1vdGlvbk1hbmFnZXIgY2xhc3MuCisK
KyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lmg6CisgICAgICAgICogVUlQcm9jZXNz
L1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dlYlBh
Z2VQcm94eUlPUy5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpzdGFydFVwZGF0
aW5nRGV2aWNlT3JpZW50YXRpb24pOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OnN0
b3BVcGRhdGluZ0RldmljZU9yaWVudGF0aW9uKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVBy
b3h5OjpvcmllbnRhdGlvbkNoYW5nZWQpOgorICAgICAgICAqIFdlYktpdC54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViU2hh
cmVkRGV2aWNlT3JpZW50YXRpb25DbGllbnQuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6
V2ViU2hhcmVkRGV2aWNlT3JpZW50YXRpb25DbGllbnQ6OnN0YXJ0VXBkYXRpbmcpOgorICAgICAg
ICAoV2ViS2l0OjpXZWJTaGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudDo6c3RvcFVwZGF0aW5n
KToKKyAgICAgICAgKFdlYktpdDo6V2ViU2hhcmVkRGV2aWNlT3JpZW50YXRpb25DbGllbnQ6OmRl
dmljZU9yaWVudGF0aW9uQ2hhbmdlZCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC9XZWJTaGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudC5oOiBBZGRlZC4KKyAgICAgICAg
KiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHA6CisgICAgICAgIChXZWJLaXQ6Om1fb3Zl
cnJpZGRlbk1lZGlhVHlwZSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2Uu
aDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbjoKKyAg
ICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW06CisgICAgICAgIChX
ZWJLaXQ6OldlYlBhZ2U6OmRldmljZU9yaWVudGF0aW9uQ2hhbmdlZCk6CisKIDIwMTktMTEtMjcg
IEFudG9pbmUgUXVpbnQgIDxncmFvdXRzQGFwcGxlLmNvbT4KIAogICAgICAgICBbV2ViIEFuaW1h
dGlvbnNdIEVuYWJsZSBXZWJBbmltYXRpb25zQ1NTSW50ZWdyYXRpb25FbmFibGVkIGJ5IGRlZmF1
bHQKSW5kZXg6IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAkocmV2aXNp
b24gMjUyOTYxKQorKysgU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAko
d29ya2luZyBjb3B5KQpAQCAtNTIwLDYgKzUyMCwxMCBAQCBXZWJQYWdlUHJveHk6On5XZWJQYWdl
UHJveHkoKQogICAgIG1fcHJlZmVyZW5jZXMtPnJlbW92ZVBhZ2UoKnRoaXMpOwogICAgIG1fcGFn
ZUdyb3VwLT5yZW1vdmVQYWdlKHRoaXMpOwogCisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkgJiYg
RU5BQkxFKERFVklDRV9PUklFTlRBVElPTikKKyAgICBzdG9wVXBkYXRpbmdEZXZpY2VPcmllbnRh
dGlvbigpOworI2VuZGlmCisgICAgCiAjaWZuZGVmIE5ERUJVRwogICAgIHdlYlBhZ2VQcm94eUNv
dW50ZXIuZGVjcmVtZW50KCk7CiAjZW5kaWYKSW5kZXg6IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYlBhZ2VQcm94eS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dl
YlBhZ2VQcm94eS5oCShyZXZpc2lvbiAyNTI5NjEpCisrKyBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJQYWdlUHJveHkuaAkod29ya2luZyBjb3B5KQpAQCAtMTQ5LDYgKzE0OSwxMCBAQCBPQkpD
X0NMQVNTIF9XS1JlbW90ZU9iamVjdFJlZ2lzdHJ5OwogI2luY2x1ZGUgIlNPQXV0aG9yaXphdGlv
bkxvYWRQb2xpY3kuaCIKICNlbmRpZgogCisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkgJiYgRU5B
QkxFKERFVklDRV9PUklFTlRBVElPTikKKyNpbmNsdWRlIDxXZWJDb3JlL1dlYkNvcmVNb3Rpb25N
YW5hZ2VyQ2xpZW50Lmg+CisjZW5kaWYKKwogI2lmIEVOQUJMRShNRURJQV9TRVNTSU9OKQogbmFt
ZXNwYWNlIFdlYkNvcmUgewogY2xhc3MgTWVkaWFTZXNzaW9uTWV0YWRhdGE7CkBAIC0xNTksNiAr
MTYzLDEwIEBAIGNsYXNzIE1lZGlhU2Vzc2lvbk1ldGFkYXRhOwogaW50ZXJmYWNlIElEM0QxMURl
dmljZTE7CiAjZW5kaWYKIAorI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpICYmIEVOQUJMRShERVZJ
Q0VfT1JJRU5UQVRJT04pCitPQkpDX0NMQVNTIFdlYkNvcmVNb3Rpb25NYW5hZ2VyOworI2VuZGlm
CisKIG5hbWVzcGFjZSBBUEkgewogY2xhc3MgQXR0YWNobWVudDsKIGNsYXNzIENvbnRleHRNZW51
Q2xpZW50OwpAQCAtNDEwLDYgKzQxOCw5IEBAIGNsYXNzIFdlYlBhZ2VQcm94eSA6IHB1YmxpYyBB
UEk6Ok9iamVjdEkKICAgICAsIHB1YmxpYyBXZWJDb3JlOjpQbGF0Zm9ybVNwZWVjaFN5bnRoZXNp
c1V0dGVyYW5jZUNsaWVudAogICAgICwgcHVibGljIFdlYkNvcmU6OlBsYXRmb3JtU3BlZWNoU3lu
dGhlc2l6ZXJDbGllbnQKICNlbmRpZgorI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpICYmIEVOQUJM
RShERVZJQ0VfT1JJRU5UQVRJT04pCisgICAgLCBwdWJsaWMgV2ViQ29yZTo6V2ViQ29yZU1vdGlv
bk1hbmFnZXJDbGllbnQKKyNlbmRpZgogICAgICwgcHVibGljIENhbk1ha2VXZWFrUHRyPFdlYlBh
Z2VQcm94eT4gewogcHVibGljOgogICAgIHN0YXRpYyBSZWY8V2ViUGFnZVByb3h5PiBjcmVhdGUo
UGFnZUNsaWVudCYsIFdlYlByb2Nlc3NQcm94eSYsIFJlZjxBUEk6OlBhZ2VDb25maWd1cmF0aW9u
PiYmKTsKQEAgLTE2MjQsNiArMTYzNSwxMSBAQCBwdWJsaWM6CiAgICAgY29uc3QgU3RyaW5nJiBv
dmVycmlkZGVuTWVkaWFUeXBlKCkgY29uc3QgeyByZXR1cm4gbV9vdmVycmlkZGVuTWVkaWFUeXBl
OyB9CiAgICAgdm9pZCBzZXRPdmVycmlkZGVuTWVkaWFUeXBlKGNvbnN0IFN0cmluZyYpOwogCisj
aWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkgJiYgRU5BQkxFKERFVklDRV9PUklFTlRBVElPTikKKyAg
ICB2b2lkIHN0YXJ0VXBkYXRpbmdEZXZpY2VPcmllbnRhdGlvbigpOworICAgIHZvaWQgc3RvcFVw
ZGF0aW5nRGV2aWNlT3JpZW50YXRpb24oKTsKKyNlbmRpZgorCiBwcml2YXRlOgogICAgIFdlYlBh
Z2VQcm94eShQYWdlQ2xpZW50JiwgV2ViUHJvY2Vzc1Byb3h5JiwgUmVmPEFQSTo6UGFnZUNvbmZp
Z3VyYXRpb24+JiYpOwogICAgIHZvaWQgcGxhdGZvcm1Jbml0aWFsaXplKCk7CkBAIC0yMTY3LDYg
KzIxODMsMTEgQEAgcHJpdmF0ZToKICAgICB2b2lkIHJlc2V0U3BlZWNoU3ludGhlc2l6ZXIoKTsK
ICNlbmRpZgogCisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkgJiYgRU5BQkxFKERFVklDRV9PUklF
TlRBVElPTikKKyAgICAvLyBXZWJDb3JlOjpXZWJDb3JlTW90aW9uTWFuYWdlckNsaWVudAorICAg
IHZvaWQgb3JpZW50YXRpb25DaGFuZ2VkKGRvdWJsZSwgZG91YmxlLCBkb3VibGUsIGRvdWJsZSwg
ZG91YmxlKSBvdmVycmlkZTsKKyNlbmRpZgorCiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKICAg
ICBzdGF0aWMgYm9vbCBpc0luSGFyZHdhcmVLZXlib2FyZE1vZGUoKTsKICAgICB2b2lkIGNsZWFy
QXVkaWJsZUFjdGl2aXR5KCk7CkBAIC0yNjI0LDYgKzI2NDUsMTAgQEAgcHJpdmF0ZToKICAgICBi
b29sIG1faXNRdW90YUluY3JlYXNlRGVuaWVkIHsgZmFsc2UgfTsKICAgICAKICAgICBTdHJpbmcg
bV9vdmVycmlkZGVuTWVkaWFUeXBlOworCisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkgJiYgRU5B
QkxFKERFVklDRV9PUklFTlRBVElPTikKKyAgICBXZWJDb3JlTW90aW9uTWFuYWdlciogbV9tb3Rp
b25NYW5hZ2VyIHsgbnVsbHB0ciB9OworI2VuZGlmCiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJL
aXQKSW5kZXg6IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5p
bgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVz
c2FnZXMuaW4JKHJldmlzaW9uIDI1Mjk2MSkKKysrIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dl
YlBhZ2VQcm94eS5tZXNzYWdlcy5pbgkod29ya2luZyBjb3B5KQpAQCAtNTg2LDQgKzU4Niw5IEBA
IG1lc3NhZ2VzIC0+IFdlYlBhZ2VQcm94eSB7CiAKICAgICBEaWRGaW5kVGV4dE1hbmlwdWxhdGlv
bkl0ZW0oV2ViQ29yZTo6VGV4dE1hbmlwdWxhdGlvbkNvbnRyb2xsZXI6Okl0ZW1JZGVudGlmaWVy
IGl0ZW1JRCwgVmVjdG9yPFdlYkNvcmU6OlRleHRNYW5pcHVsYXRpb25Db250cm9sbGVyOjpNYW5p
cHVsYXRpb25Ub2tlbj4gdG9rZW5zKQogCisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkgJiYgRU5B
QkxFKERFVklDRV9PUklFTlRBVElPTikKKyAgICBTdGFydFVwZGF0aW5nRGV2aWNlT3JpZW50YXRp
b24oKTsKKyAgICBTdG9wVXBkYXRpbmdEZXZpY2VPcmllbnRhdGlvbigpOworI2VuZGlmCisKIH0K
SW5kZXg6IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XZWJQYWdlUHJveHlJT1MubW0KPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dlYlBhZ2VQcm94eUlPUy5t
bQkocmV2aXNpb24gMjUyOTYxKQorKysgU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dlYlBh
Z2VQcm94eUlPUy5tbQkod29ya2luZyBjb3B5KQpAQCAtNzUsNiArNzUsMTAgQEAKICNpbXBvcnQg
PHd0Zi90ZXh0L1dURlN0cmluZy5oPgogI2VuZGlmCiAKKyNpZiBFTkFCTEUoREVWSUNFX09SSUVO
VEFUSU9OKQorI2ltcG9ydCA8V2ViQ29yZS9XZWJDb3JlTW90aW9uTWFuYWdlci5oPgorI2VuZGlm
CisKICNkZWZpbmUgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRChjaGFubmVsLCBmbXQsIC4uLikgUkVM
RUFTRV9MT0dfSUYoaXNBbHdheXNPbkxvZ2dpbmdBbGxvd2VkKCksIGNoYW5uZWwsICIlcCAtIFtw
YWdlUHJveHlJRD0lbGx1LCB3ZWJQYWdlSUQ9JWxsdSwgUElEPSVpXSBXZWJQYWdlUHJveHk6OiIg
Zm10LCB0aGlzLCBtX2lkZW50aWZpZXIudG9VSW50NjQoKSwgbV93ZWJQYWdlSUQudG9VSW50NjQo
KSwgbV9wcm9jZXNzLT5wcm9jZXNzSWRlbnRpZmllcigpLCAjI19fVkFfQVJHU19fKQogCiBuYW1l
c3BhY2UgV2ViS2l0IHsKQEAgLTE0ODMsNiArMTQ4NywyNiBAQCBXZWJDb250ZW50TW9kZSBXZWJQ
YWdlUHJveHk6OmVmZmVjdGl2ZUNvCiAgICAgcmV0dXJuIFdlYkNvbnRlbnRNb2RlOjpEZXNrdG9w
OwogfQogCisjaWYgRU5BQkxFKERFVklDRV9PUklFTlRBVElPTikKK3ZvaWQgV2ViUGFnZVByb3h5
OjpzdGFydFVwZGF0aW5nRGV2aWNlT3JpZW50YXRpb24oKQoreworICAgIGlmICghbV9tb3Rpb25N
YW5hZ2VyKQorICAgICAgICBtX21vdGlvbk1hbmFnZXIgPSBbV2ViQ29yZU1vdGlvbk1hbmFnZXIg
c2hhcmVkTWFuYWdlcl07CisgICAgW21fbW90aW9uTWFuYWdlciBhZGRPcmllbnRhdGlvbkNsaWVu
dDp0aGlzXTsKK30KKwordm9pZCBXZWJQYWdlUHJveHk6OnN0b3BVcGRhdGluZ0RldmljZU9yaWVu
dGF0aW9uKCkKK3sKKyAgICBbbV9tb3Rpb25NYW5hZ2VyIHJlbW92ZU9yaWVudGF0aW9uQ2xpZW50
OnRoaXNdOworfQorCit2b2lkIFdlYlBhZ2VQcm94eTo6b3JpZW50YXRpb25DaGFuZ2VkKGRvdWJs
ZSBhbHBoYSwgZG91YmxlIGJldGEsIGRvdWJsZSBnYW1tYSwgZG91YmxlIGNvbXBhc3NIZWFkaW5n
LCBkb3VibGUgY29tcGFzc0FjY3VyYWN5KQoreworICAgIHNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6
OkRldmljZU9yaWVudGF0aW9uQ2hhbmdlZChhbHBoYSwgYmV0YSwgZ2FtbWEsIGNvbXBhc3NIZWFk
aW5nLCBjb21wYXNzQWNjdXJhY3kpLCAwKTsKK30KKyNlbmRpZgorCisKIH0gLy8gbmFtZXNwYWNl
IFdlYktpdAogCiAjdW5kZWYgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRApJbmRleDogU291cmNlL1dl
YktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvago9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCShyZXZpc2lvbiAyNTI5
NjEpCisrKyBTb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCSh3
b3JraW5nIGNvcHkpCkBAIC0xNjg5LDYgKzE2ODksNyBAQAogCQlFMUQyNkE1MzE3NTk2NEQ5MDA5
NUJGRDEgLyogV2ViQ29udGVudFByb2Nlc3MueGliIGluIFJlc291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMUQyNkE0QzE3NTk2MzRFMDA5NUJGRDEgLyogV2ViQ29u
dGVudFByb2Nlc3MueGliICovOyB9OwogCQlFMUU1NTJDNTE2QUUwNjVGMDA0RUQ2NTMgLyogU2Fu
ZGJveEluaXRpYWxpemF0aW9uUGFyYW1ldGVycy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gRTFFNTUyQzMxNkFFMDY1RTAwNEVENjUzIC8qIFNhbmRib3hJ
bml0aWFsaXphdGlvblBhcmFtZXRlcnMuaCAqLzsgfTsKIAkJRTFFRTUzRTMxMUY4Q0ZDMDAwQ0NC
RUU0IC8qIEluamVjdGVkQnVuZGxlUGFnZUVkaXRvckNsaWVudC5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTFFRTUzREMxMUY4Q0Y5RjAwQ0NCRUU0IC8q
IEluamVjdGVkQnVuZGxlUGFnZUVkaXRvckNsaWVudC5oICovOyB9OworCQlFMzk2MjhBQTIzODhB
QkQ4MDA2NThFQ0QgLyogV2ViU2hhcmVkRGV2aWNlT3JpZW50YXRpb25DbGllbnQuY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTM5NjI4QTkyMzg4QUJE
ODAwNjU4RUNEIC8qIFdlYlNoYXJlZERldmljZU9yaWVudGF0aW9uQ2xpZW50LmNwcCAqLzsgfTsK
IAkJRTQxM0Y1OUQxQUMxQURDNDAwMzQ1MzYwIC8qIE5ldHdvcmtDYWNoZUVudHJ5LmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFNDEzRjU5QjFBQzFBREI2
MDAzNDUzNjAgLyogTmV0d29ya0NhY2hlRW50cnkuaCAqLzsgfTsKIAkJRTQyRTA2MTAxQUE3NTIz
QjAwQjExNjk5IC8qIE5ldHdvcmtDYWNoZUlPQ2hhbm5lbC5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTQyRTA2MEIxQUE3NDQwRDAwQjExNjk5IC8qIE5l
dHdvcmtDYWNoZUlPQ2hhbm5lbC5oICovOyB9OwogCQlFNDJFMDYxMjFBQTc1QUJEMDBCMTE2OTkg
LyogTmV0d29ya0NhY2hlRGF0YS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gRTQyRTA2MTExQUE3NUFCRDAwQjExNjk5IC8qIE5ldHdvcmtDYWNoZURhdGEu
aCAqLzsgfTsKQEAgLTQ3NDgsNiArNDc0OSw4IEBACiAJCUUxRUU1M0RDMTFGOENGOUYwMENDQkVF
NCAvKiBJbmplY3RlZEJ1bmRsZVBhZ2VFZGl0b3JDbGllbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gSW5qZWN0ZWRCdW5kbGVQYWdlRWRpdG9yQ2xpZW50Lmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUxRUU1M0U2MTFGOENGRkIwMENDQkVFNCAvKiBJbmplY3Rl
ZEJ1bmRsZVBhZ2VFZGl0b3JDbGllbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gSW5qZWN0ZWRCdW5kbGVQYWdlRWRpdG9yQ2xpZW50LmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJRTM0MzlCNjMyMzQ1NDYzQTAwMTFERTBCIC8qIE5ldHdvcmtQcm9j
ZXNzQ29ubmVjdGlvbkluZm8uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gTmV0d29ya1Byb2Nlc3NDb25uZWN0
aW9uSW5mby5oOyBwYXRoID0gTmV0d29yay9OZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb25JbmZvLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUUzOTYyOEE4MjM4OEE1RDQwMDY1OEVDRCAv
KiBXZWJTaGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJT
aGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQlFMzk2MjhBOTIzODhBQkQ4MDA2NThFQ0QgLyogV2ViU2hhcmVkRGV2aWNlT3JpZW50YXRp
b25DbGllbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViU2hhcmVkRGV2aWNlT3JpZW50YXRp
b25DbGllbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFNDA0OTA3MDIxREU2
NUY3MDAzN0YwREIgLyogU2Nyb2xsZXJQYWlyTWFjLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IFNjcm9sbGVyUGFpck1hYy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQlFNDA0OTA3MTIxREU2NUY3MDAzN0YwREIgLyogU2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5n
Tm9kZVJlbW90ZU1hYy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBT
Y3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlUmVtb3RlTWFjLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJRTQwNDkwNzIyMURFNjVGNzAwMzdGMERCIC8qIFNjcm9sbGVyUGFp
ck1hYy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFNjcm9sbGVy
UGFpck1hYy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTU4NTQsNiArNTg1Nyw4
IEBACiAJCQkJMkQyOEYzRTMxODg1Q0NDMTAwNEI5RUFFIC8qIFdlYkZyYW1lTG9hZGVyQ2xpZW50
SU9TLm1tICovLAogCQkJCUExQzUxMkM2MTkwNjU2RTUwMDQ0ODkxNCAvKiBXZWJQcmV2aWV3TG9h
ZGVyQ2xpZW50LmNwcCAqLywKIAkJCQlBMUM1MTJDNzE5MDY1NkU1MDA0NDg5MTQgLyogV2ViUHJl
dmlld0xvYWRlckNsaWVudC5oICovLAorCQkJCUUzOTYyOEE5MjM4OEFCRDgwMDY1OEVDRCAvKiBX
ZWJTaGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudC5jcHAgKi8sCisJCQkJRTM5NjI4QTgyMzg4
QTVENDAwNjU4RUNEIC8qIFdlYlNoYXJlZERldmljZU9yaWVudGF0aW9uQ2xpZW50LmggKi8sCiAJ
CQkpOwogCQkJbmFtZSA9IGlvczsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CkBAIC05ODIw
LDcgKzk4MjUsNiBAQAogCQkJCTUxMUY4QTdCMTM4QjQ2MDkwMEE5NUY0NCAvKiBTZWNJdGVtU2hp
bUxpYnJhcnkuaCBpbiBIZWFkZXJzICovLAogCQkJCUUxOEU2OTBDMTY5QjU2M0YwMDlCNjY3MCAv
KiBTZWNJdGVtU2hpbVByb3h5LmggaW4gSGVhZGVycyAqLywKIAkJCQlFMThFNjkxODE2OUI2NjdC
MDA5QjY2NzAgLyogU2VjSXRlbVNoaW1Qcm94eU1lc3NhZ2VzLmggaW4gSGVhZGVycyAqLywKLQkJ
CQk3QUE3NDZENTIzNTkzRDgxMDAwOTUwNTAgLyogU2VjSXRlbVNQSS5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJNTcwQUI4RjMyMEFFM0JENzAwQjhCRTg3IC8qIFNlY0tleVByb3h5U3RvcmUuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTUxNEQ5RjU3MTkxMTlEMzUwMDAwNjNBNyAvKiBTZXJ2aWNlc0NvbnRy
b2xsZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTFBRkRFNjVBMTk1NEE0MkIwMEM0OEZGQSAvKiBT
ZXNzaW9uU3RhdGUuaCBpbiBIZWFkZXJzICovLApAQCAtMTE2MTksNiArMTE2MjMsNyBAQAogCQkJ
CTUxRjA2MEUxMTY1NDMxODUwMEYzMjgxRiAvKiBXZWJSVENNb25pdG9yTWVzc2FnZVJlY2VpdmVy
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTUxRjA2MEUxMTY1NDMxODUwMEYzMjgyQyAvKiBXZWJS
VENSZXNvbHZlck1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk1MUYwNjBF
MTE2NTQzMTg1MDBGMzI4MUMgLyogV2ViUlRDU29ja2V0TWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBT
b3VyY2VzICovLAorCQkJCUUzOTYyOEFBMjM4OEFCRDgwMDY1OEVDRCAvKiBXZWJTaGFyZWREZXZp
Y2VPcmllbnRhdGlvbkNsaWVudC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk0MUYwNjBFMTE2NTQz
MTg1MDBGMzI4MUMgLyogV2ViU29ja2V0Q2hhbm5lbE1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQk1QzBCMTc3OTFFN0M4ODIxMDBFOTEyM0MgLyogV2ViU29ja2V0U3RyZWFt
TWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTQxMjg3RDRFMjI1RDFFQ0Iw
MDlBM0UyNiAvKiBXZWJTb2NrZXRUYXNrQ29jb2EubW0gaW4gU291cmNlcyAqLywKSW5kZXg6IFNv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJTaGFyZWREZXZpY2VPcmll
bnRhdGlvbkNsaWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYkNvcmVTdXBwb3J0L1dlYlNoYXJlZERldmljZU9yaWVudGF0aW9uQ2xpZW50LmNwcAkobm9u
ZXhpc3RlbnQpCisrKyBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2Vi
U2hhcmVkRGV2aWNlT3JpZW50YXRpb25DbGllbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAg
KzEsNjAgQEAKKy8qCisqIENvcHlyaWdodCAoQykgMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisqCisqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyogYXJlIG1ldDoKKyogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisqCisqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisqIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyogQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YK
KyogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTCisqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisqIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisq
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YKKyogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorKi8KKwor
I2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldlYlNoYXJlZERldmljZU9yaWVudGF0aW9u
Q2xpZW50LmgiCisKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKSAmJiBFTkFCTEUoREVWSUNFX09S
SUVOVEFUSU9OKQorCisjaW5jbHVkZSAiV2ViUGFnZS5oIgorI2luY2x1ZGUgIldlYlBhZ2VQcm94
eU1lc3NhZ2VzLmgiCisKKyNpbmNsdWRlIDxXZWJDb3JlL1dlYkNvcmVNb3Rpb25NYW5hZ2VyQ2xp
ZW50Lmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCit2b2lkIFdlYlNoYXJlZERldmljZU9yaWVu
dGF0aW9uQ2xpZW50OjpzdGFydFVwZGF0aW5nKFdlYkNvcmU6OldlYkNvcmVNb3Rpb25NYW5hZ2Vy
Q2xpZW50JiBjbGllbnQpCit7CisgICAgaWYgKG1fY2xpZW50cy5pc0VtcHR5KCkpCisgICAgICAg
IG1fcGFnZS5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OlN0YXJ0VXBkYXRpbmdEZXZpY2VP
cmllbnRhdGlvbigpKTsKKyAgICBtX2NsaWVudHMuYWRkKCZjbGllbnQpOworfQorCit2b2lkIFdl
YlNoYXJlZERldmljZU9yaWVudGF0aW9uQ2xpZW50OjpzdG9wVXBkYXRpbmcoV2ViQ29yZTo6V2Vi
Q29yZU1vdGlvbk1hbmFnZXJDbGllbnQmIGNsaWVudCkKK3sKKyAgICBtX2NsaWVudHMucmVtb3Zl
KCZjbGllbnQpOworICAgIGlmIChtX2NsaWVudHMuaXNFbXB0eSgpKQorICAgICAgICBtX3BhZ2Uu
c2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpTdG9wVXBkYXRpbmdEZXZpY2VPcmllbnRhdGlv
bigpKTsKK30KKwordm9pZCBXZWJTaGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudDo6ZGV2aWNl
T3JpZW50YXRpb25DaGFuZ2VkKGRvdWJsZSBhbHBoYSwgZG91YmxlIGJldGEsIGRvdWJsZSBnYW1t
YSwgZG91YmxlIGNvbXBhc3NIZWFkaW5nLCBkb3VibGUgY29tcGFzc0FjY3VyYWN5KQoreworICAg
IGZvciAoYXV0byBjbGllbnQgOiBtX2NsaWVudHMpCisgICAgICAgIGNsaWVudC0+b3JpZW50YXRp
b25DaGFuZ2VkKGFscGhhLCBiZXRhLCBnYW1tYSwgY29tcGFzc0hlYWRpbmcsIGNvbXBhc3NBY2N1
cmFjeSk7Cit9CisKK307CisKKyNlbmRpZgpJbmRleDogU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYkNvcmVTdXBwb3J0L1dlYlNoYXJlZERldmljZU9yaWVudGF0aW9uQ2xpZW50LmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlNoYXJl
ZERldmljZU9yaWVudGF0aW9uQ2xpZW50LmgJKG5vbmV4aXN0ZW50KQorKysgU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlNoYXJlZERldmljZU9yaWVudGF0aW9uQ2xp
ZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw1OCBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBD
T05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFn
bWEgb25jZQorCisjaW5jbHVkZSA8V2ViQ29yZS9TaGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVu
dC5oPgorCisjaW5jbHVkZSA8d3RmL0hhc2hTZXQuaD4KKworI2lmIFBMQVRGT1JNKElPU19GQU1J
TFkpICYmIEVOQUJMRShERVZJQ0VfT1JJRU5UQVRJT04pCisKK25hbWVzcGFjZSBXZWJLaXQgewor
CitjbGFzcyBXZWJQYWdlOworCitjbGFzcyBXZWJTaGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVu
dCBmaW5hbCA6IHB1YmxpYyBXZWJDb3JlOjpTaGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudCB7
CisgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CitwdWJsaWM6CisgICAgV2ViU2hhcmVkRGV2
aWNlT3JpZW50YXRpb25DbGllbnQoV2ViUGFnZSYgcGFnZSkKKyAgICAgICAgOiBtX3BhZ2UocGFn
ZSkKKyAgICB7CisgICAgfQorCisgICAgdm9pZCBzdGFydFVwZGF0aW5nKFdlYkNvcmU6OldlYkNv
cmVNb3Rpb25NYW5hZ2VyQ2xpZW50Jikgb3ZlcnJpZGU7CisgICAgdm9pZCBzdG9wVXBkYXRpbmco
V2ViQ29yZTo6V2ViQ29yZU1vdGlvbk1hbmFnZXJDbGllbnQmKSBvdmVycmlkZTsKKworICAgIHZv
aWQgZGV2aWNlT3JpZW50YXRpb25DaGFuZ2VkKGRvdWJsZSwgZG91YmxlLCBkb3VibGUsIGRvdWJs
ZSwgZG91YmxlKSBvdmVycmlkZTsKKworcHJpdmF0ZToKKyAgICBXZWJQYWdlJiBtX3BhZ2U7Cisg
ICAgSGFzaFNldDxXZWJDb3JlOjpXZWJDb3JlTW90aW9uTWFuYWdlckNsaWVudCo+IG1fY2xpZW50
czsKK307CisKK30KKworI2VuZGlmCkluZGV4OiBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
UGFnZS9XZWJQYWdlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViUGFnZS9XZWJQYWdlLmNwcAkocmV2aXNpb24gMjUyOTYxKQorKysgU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMwNyw2ICsz
MDcsMTAgQEAKICNpbmNsdWRlIDxXZWJDb3JlL0F1dGhlbnRpY2F0b3JDb29yZGluYXRvci5oPgog
I2VuZGlmCiAKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKSAmJiBFTkFCTEUoREVWSUNFX09SSUVO
VEFUSU9OKQorI2luY2x1ZGUgIldlYlNoYXJlZERldmljZU9yaWVudGF0aW9uQ2xpZW50LmgiCisj
ZW5kaWYKKwogbmFtZXNwYWNlIFdlYktpdCB7CiB1c2luZyBuYW1lc3BhY2UgSlNDOwogdXNpbmcg
bmFtZXNwYWNlIFdlYkNvcmU7CkBAIC01MDEsNiArNTA1LDEwIEBAIFdlYlBhZ2U6OldlYlBhZ2Uo
UGFnZUlkZW50aWZpZXIgcGFnZUlELCAKICNpZiBFTkFCTEUoQVBQTElDQVRJT05fTUFOSUZFU1Qp
CiAgICAgcGFnZUNvbmZpZ3VyYXRpb24uYXBwbGljYXRpb25NYW5pZmVzdCA9IHBhcmFtZXRlcnMu
YXBwbGljYXRpb25NYW5pZmVzdDsKICNlbmRpZgorICAgIAorI2lmIFBMQVRGT1JNKElPU19GQU1J
TFkpICYmIEVOQUJMRShERVZJQ0VfT1JJRU5UQVRJT04pCisgICAgcGFnZUNvbmZpZ3VyYXRpb24u
c2hhcmVkRGV2aWNlT3JpZW50YXRpb25DbGllbnQgPSBuZXcgV2ViU2hhcmVkRGV2aWNlT3JpZW50
YXRpb25DbGllbnQoKnRoaXMpOworI2VuZGlmCiAKICAgICBtX3BhZ2UgPSBtYWtlVW5pcXVlPFBh
Z2U+KFdURk1vdmUocGFnZUNvbmZpZ3VyYXRpb24pKTsKIApJbmRleDogU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAkocmV2aXNpb24gMjUyOTYxKQorKysgU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0x
MjQ0LDYgKzEyNDQsMTAgQEAgcHVibGljOgogICAgIGNvbnN0IFN0cmluZyYgb3ZlcnJpZGRlbk1l
ZGlhVHlwZSgpIGNvbnN0IHsgcmV0dXJuIG1fb3ZlcnJpZGRlbk1lZGlhVHlwZTsgfQogICAgIHZv
aWQgc2V0T3ZlcnJpZGRlbk1lZGlhVHlwZShjb25zdCBTdHJpbmcmKTsKICAgICAKKyNpZiBQTEFU
Rk9STShJT1NfRkFNSUxZKSAmJiBFTkFCTEUoREVWSUNFX09SSUVOVEFUSU9OKQorICAgIHZvaWQg
ZGV2aWNlT3JpZW50YXRpb25DaGFuZ2VkKGRvdWJsZSBhbHBoYSwgZG91YmxlIGJldGEsIGRvdWJs
ZSBnYW1tYSwgZG91YmxlIGNvbXBhc3NIZWFkaW5nLCBkb3VibGUgY29tcGFzc0FjY3VyYWN5KTsK
KyNlbmRpZgorCiBwcml2YXRlOgogICAgIFdlYlBhZ2UoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIs
IFdlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMmJik7CiAKSW5kZXg6IFNvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4KPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbgkocmV2aXNpb24g
MjUyOTYxKQorKysgU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNz
YWdlcy5pbgkod29ya2luZyBjb3B5KQpAQCAtNTgzLDQgKzU4Myw4IEBAIEdlbmVyYXRlU3ludGhl
dGljRWRpdGluZ0NvbW1hbmQoZW51bTp1aW4KICAgICBDb21wbGV0ZVRleHRNYW5pcHVsYXRpb24o
V2ViQ29yZTo6VGV4dE1hbmlwdWxhdGlvbkNvbnRyb2xsZXI6Okl0ZW1JZGVudGlmaWVyIGl0ZW1J
RCwgVmVjdG9yPFdlYkNvcmU6OlRleHRNYW5pcHVsYXRpb25Db250cm9sbGVyOjpNYW5pcHVsYXRp
b25Ub2tlbj4gdG9rZW5zKSAtPiAoZW51bTp1aW50OF90IFdlYkNvcmU6OlRleHRNYW5pcHVsYXRp
b25Db250cm9sbGVyOjpNYW5pcHVsYXRpb25SZXN1bHQgcmVzdWx0KSBBc3luYwogICAgIAogICAg
IFNldE92ZXJyaWRkZW5NZWRpYVR5cGUoU3RyaW5nIG1lZGlhVHlwZSkKKyAgICAKKyNpZiBQTEFU
Rk9STShJT1NfRkFNSUxZKSAmJiBFTkFCTEUoREVWSUNFX09SSUVOVEFUSU9OKQorICAgIERldmlj
ZU9yaWVudGF0aW9uQ2hhbmdlZChkb3VibGUgYWxwaGEsIGRvdWJsZSBiZXRhLCBkb3VibGUgZ2Ft
bWEsIGRvdWJsZSBjb21wYXNzSGVhZGluZywgZG91YmxlIGNvbXBhc3NBY2N1cmFjeSkKKyNlbmRp
ZgogfQpJbmRleDogU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJ
T1MubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9z
L1dlYlBhZ2VJT1MubW0JKHJldmlzaW9uIDI1Mjk2MSkKKysrIFNvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tCSh3b3JraW5nIGNvcHkpCkBAIC00MDg4LDYg
KzQwODgsMTQgQEAgdm9pZCBXZWJQYWdlOjpyZXF1ZXN0UGFzc3dvcmRGb3JRdWlja0xvbwogCiAj
ZW5kaWYKIAorI2lmIEVOQUJMRShERVZJQ0VfT1JJRU5UQVRJT04pCit2b2lkIFdlYlBhZ2U6OmRl
dmljZU9yaWVudGF0aW9uQ2hhbmdlZChkb3VibGUgYWxwaGEsIGRvdWJsZSBiZXRhLCBkb3VibGUg
Z2FtbWEsIGRvdWJsZSBjb21wYXNzSGVhZGluZywgZG91YmxlIGNvbXBhc3NBY2N1cmFjeSkKK3sK
KyAgICBpZiAoY29yZVBhZ2UoKSAmJiBjb3JlUGFnZSgpLT5zaGFyZWREZXZpY2VPcmllbnRhdGlv
bkNsaWVudCgpKQorICAgICAgICBjb3JlUGFnZSgpLT5zaGFyZWREZXZpY2VPcmllbnRhdGlvbkNs
aWVudCgpLT5kZXZpY2VPcmllbnRhdGlvbkNoYW5nZWQoYWxwaGEsIGJldGEsIGdhbW1hLCBjb21w
YXNzSGVhZGluZywgY29tcGFzc0FjY3VyYWN5KTsKK30KKyNlbmRpZgorCiB9IC8vIG5hbWVzcGFj
ZSBXZWJLaXQKIAogI3VuZGVmIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>384621</attachid>
            <date>2019-12-02 07:56:02 -0800</date>
            <delta_ts>2019-12-02 08:39:38 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-204720-20191202075601.patch</filename>
            <type>text/plain</type>
            <size>48016</size>
            <attacher name="Per Arne Vollan">pvollan</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDI1Mjk2MSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDUwIEBACisyMDE5LTExLTMwICBQZXIgQXJu
ZSBWb2xsYW4gIDxwdm9sbGFuQGFwcGxlLmNvbT4KKworICAgICAgICBbaU9TXSBDYWxscyB0byBk
ZXZpY2Ugb3JpZW50YXRpb24gQVBJIHNob3VsZCBiZSBkb25lIGluIHRoZSBVSSBwcm9jZXNzCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDQ3MjAKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGUgZGV2aWNl
IG9yaWVudGF0aW9uIEFQSSBvbiBpT1MgaXMgY29tbXVuaWNhdGluZyB3aXRoIGxvY2F0aW9uZC4g
U2luY2UgbWFjaCBsb29rdXAgdG8gdGhpcyBkYWVtb24KKyAgICAgICAgd2lsbCBiZSBjbG9zZWQs
IHRoZSBjYWxscyB0byB0aGlzIEFQSSBzaG91bGQgYmUgbW92ZWQgZnJvbSB0aGUgV2ViQ29udGVu
dCBwcm9jZXNzIHRvIHRoZSBVSSBwcm9jZXNzLgorICAgICAgICBUaGlzIHBhdGNoIGltcGxlbWVu
dHMgZm9yd2FyZGluZyBvZiB0aGUgZGV2aWNlIG9yaWVudGF0aW9uIHJlcXVlc3RzIHRvIHRoZSBV
SSBwcm9jZXNzIHRocm91Z2ggYSBuZXcKKyAgICAgICAgY2xhc3MsIFNoYXJlZERldmljZU9yaWVu
dGF0aW9uQ2xpZW50LCB3aGljaCBpcyBzdWJjbGFzc2VkIGJ5IFdlYlNoYXJlZERldmljZU9yaWVu
dGF0aW9uQ2xpZW50IGluCisgICAgICAgIG1vZGVybiBXZWJLaXQuIFRoaXMgY2xhc3MgaW1wbGVt
ZW50cyBmb3J3YXJkaW5nIG9mIHRoZSByZXF1ZXN0cyB0byB0aGUgVUkgcHJvY2VzcywgYW5kIHJl
Y2VpdmVzCisgICAgICAgIGRldmljZSBvcmllbnRhdGlvbiB1cGRhdGVzIGZyb20gdGhlIFVJIHBy
b2Nlc3MuIEFuIGluc3RhbmNlIG9mIHRoaXMgY2xhc3Mgd2lsbCBiZSBzaGFyZWQgYnkgYWxsCisg
ICAgICAgIGRldmljZSBvcmllbnRhdGlvbiBjbGllbnRzIG9uIGEgcGFnZSwgYW5kIHBhc3NlZCBh
cyBwYXJ0IG9mIHRoZSBwYWdlIGNvbmZpZ3VyYXRpb24gcGFyYW1ldGVycy4gT24KKyAgICAgICAg
dGhlIFVJIHByb2Nlc3Mgc2lkZSwgdGhlIFdlYiBwYWdlIHByb3h5IGlzIHRha2luZyBjYXJlIG9m
IGNhbGxpbmcgdGhlIGRldmljZSBvcmllbnRhdGlvbiBBUEkgdGhyb3VnaAorICAgICAgICB0aGUg
ZXhpc3RpbmcgV2ViQ29yZU1vdGlvbk1hbmFnZXIgT2JqZWN0aXZlLUMgY2xhc3MuCisKKyAgICAg
ICAgTm8gbmV3IHRlc3RzLCBjb3ZlcmVkIGJ5IGV4aXN0aW5nIHRlc3RzLgorCisgICAgICAgICog
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGRvbS9EZXZpY2VP
cmllbnRhdGlvbkNsaWVudC5oOgorICAgICAgICAoV2ViQ29yZTo6RGV2aWNlT3JpZW50YXRpb25D
bGllbnQ6OnNldFNoYXJlZERldmljZU9yaWVudGF0aW9uQ2xpZW50KToKKyAgICAgICAgKiBkb20v
RG9jdW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6bV91bmRvTWFuYWdlcik6CisgICAgICAg
ICogcGFnZS9QYWdlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Om1fc2hhcmVkRGV2aWNlT3JpZW50
YXRpb25DbGllbnQpOgorICAgICAgICAoV2ViQ29yZTo6bV9hcHBsaWNhdGlvbk1hbmlmZXN0KTog
RGVsZXRlZC4KKyAgICAgICAgKiBwYWdlL1BhZ2UuaDoKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2U6
OnNoYXJlZERldmljZU9yaWVudGF0aW9uQ2xpZW50IGNvbnN0KToKKyAgICAgICAgKiBwYWdlL1Bh
Z2VDb25maWd1cmF0aW9uLmg6CisgICAgICAgICogcGxhdGZvcm0vaW9zL0RldmljZU9yaWVudGF0
aW9uQ2xpZW50SU9TLmg6CisgICAgICAgICogcGxhdGZvcm0vaW9zL0RldmljZU9yaWVudGF0aW9u
Q2xpZW50SU9TLm1tOgorICAgICAgICAoV2ViQ29yZTo6RGV2aWNlT3JpZW50YXRpb25DbGllbnRJ
T1M6OnN0YXJ0VXBkYXRpbmcpOgorICAgICAgICAoV2ViQ29yZTo6RGV2aWNlT3JpZW50YXRpb25D
bGllbnRJT1M6OnN0b3BVcGRhdGluZyk6CisgICAgICAgIChXZWJDb3JlOjpEZXZpY2VPcmllbnRh
dGlvbkNsaWVudElPUzo6ZGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyRGVzdHJveWVkKToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9pb3MvU2hhcmVkRGV2aWNlT3JpZW50YXRpb25DbGllbnQuaDogQWRk
ZWQuCisgICAgICAgIChXZWJDb3JlOjpTaGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudDo6U2hh
cmVkRGV2aWNlT3JpZW50YXRpb25DbGllbnQpOgorICAgICAgICAoV2ViQ29yZTo6U2hhcmVkRGV2
aWNlT3JpZW50YXRpb25DbGllbnQ6On5TaGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudCk6Cisg
ICAgICAgIChXZWJDb3JlOjpTaGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudDo6c3RhcnRVcGRh
dGluZyk6CisgICAgICAgIChXZWJDb3JlOjpTaGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudDo6
c3RvcFVwZGF0aW5nKToKKyAgICAgICAgKFdlYkNvcmU6OlNoYXJlZERldmljZU9yaWVudGF0aW9u
Q2xpZW50OjpkZXZpY2VPcmllbnRhdGlvbkNoYW5nZWQpOgorICAgICAgICAqIHBsYXRmb3JtL2lv
cy9XZWJDb3JlTW90aW9uTWFuYWdlci5oOgorICAgICAgICAqIHBsYXRmb3JtL2lvcy9XZWJDb3Jl
TW90aW9uTWFuYWdlci5tbToKKyAgICAgICAgKC1bV2ViQ29yZU1vdGlvbk1hbmFnZXIgYWRkT3Jp
ZW50YXRpb25DbGllbnQ6XSk6CisgICAgICAgICgtW1dlYkNvcmVNb3Rpb25NYW5hZ2VyIHJlbW92
ZU9yaWVudGF0aW9uQ2xpZW50Ol0pOgorICAgICAgICAqIHBsYXRmb3JtL2lvcy9XZWJDb3JlTW90
aW9uTWFuYWdlckNsaWVudC5oOgorCiAyMDE5LTExLTMwICB5b3Vlbm4gZmFibGV0ICA8eW91ZW5u
QGFwcGxlLmNvbT4KIAogICAgICAgICBTaW1wbGlmeSBDb3JlQXVkaW9DYXB0dXJlU291cmNlIHN1
c3BlbnNpb24gbG9naWMKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvago9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oJKHJldmlzaW9uIDI1Mjk2MSkKKysrIFNvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkod29ya2luZyBjb3B5KQpAQCAtOTA3
LDcgKzkwNyw3IEBACiAJCTMxMzU5MTBBMUU3RERDNzMwMEYzMDYzMCAvKiBSVENTZHBUeXBlLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzMTM1OTEwNDFF
N0REQzYwMDBGMzA2MzAgLyogUlRDU2RwVHlwZS5oICovOyB9OwogCQkzMTM1OTEwQjFFN0REQzcz
MDBGMzA2MzAgLyogUlRDU2lnbmFsaW5nU3RhdGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMxMzU5MTA1MUU3RERDNjAwMEYzMDYzMCAvKiBSVENTaWdu
YWxpbmdTdGF0ZS5oICovOyB9OwogCQkzMTNCQ0UxQzIzNUUzQkU1MDBGQzM5RTUgLyogRWxlbWVu
dENvbnRleHQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDMxM0JDRTFCMjM1RTNCREIwMEZDMzlFNSAvKiBFbGVtZW50Q29udGV4dC5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07Ci0JCTMxNDAzNzlCMTI0QkVBN0Yw
MEFGNDBFNCAvKiBXZWJDb3JlTW90aW9uTWFuYWdlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzE0MDM3OTcxMjRCRUE3RjAwQUY0MEU0IC8qIFdlYkNv
cmVNb3Rpb25NYW5hZ2VyLmggKi87IH07CisJCTMxNDAzNzlCMTI0QkVBN0YwMEFGNDBFNCAvKiBX
ZWJDb3JlTW90aW9uTWFuYWdlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gMzE0MDM3OTcxMjRCRUE3RjAwQUY0MEU0IC8qIFdlYkNvcmVNb3Rpb25NYW5h
Z2VyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJ
MzE0MDM3OUQxMjRCRUE3RjAwQUY0MEU0IC8qIERldmljZU9yaWVudGF0aW9uQ2xpZW50SU9TLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzMTQwMzc5OTEy
NEJFQTdGMDBBRjQwRTQgLyogRGV2aWNlT3JpZW50YXRpb25DbGllbnRJT1MuaCAqLzsgfTsKIAkJ
MzE0MEM1MjAxRkRGMTUxQTAwRDJBODczIC8qIE9mZnNjcmVlbkNhbnZhc1JlbmRlcmluZ0NvbnRl
eHQyRC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzE0
MEM1MUUxRkRGMTUxQTAwRDJBODczIC8qIE9mZnNjcmVlbkNhbnZhc1JlbmRlcmluZ0NvbnRleHQy
RC5oICovOyB9OwogCQkzMTQwQzUyNDFGREYzMTg3MDBEMkE4NzMgLyogQ2FudmFzUmVuZGVyaW5n
Q29udGV4dDJEQmFzZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMzE0MEM1MjIxRkRGMzE4NjAwRDJBODczIC8qIENhbnZhc1JlbmRlcmluZ0NvbnRleHQy
REJhc2UuaCAqLzsgfTsKQEAgLTQ3NzYsNiArNDc3Niw4IEBACiAJCUUzNTgwMkI2MURDODQzNUQw
MEE5NzczQyAvKiBET01KSVRJRExUeXBlRmlsdGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMzU4MDJCNTFEQzg0MzU4MDBBOTc3M0MgLyogRE9NSklU
SURMVHlwZUZpbHRlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CiAJCUUzNzdGRTREMURBREUxNjUwMENERDAyNSAvKiBOb2RlQ29uc3RhbnRzLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFM0QwNDk5MzFEQURD
MDQ1MDA3MThGM0MgLyogTm9kZUNvbnN0YW50cy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07CiAJCUUzN0M4NjUwMUVCNjNFM0YwMDg3QzZDQSAvKiBKU0RP
TVByb21pc2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEUzN0M4NjRGMUVCNjNFMkQwMDg3QzZDQSAvKiBKU0RPTVByb21pc2UuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQlFMzk2MjhBNDIzODg5MzVCMDA2
NThFQ0QgLyogU2hhcmVkRGV2aWNlT3JpZW50YXRpb25DbGllbnQuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUzOTYyOEEzMjM4ODkzNUIwMDY1OEVDRCAv
KiBTaGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJV
VEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCUUzOTYyOEFDMjM5MUM4MTcwMDY1OEVDRCAvKiBX
ZWJDb3JlTW90aW9uTWFuYWdlckNsaWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gRTM5NjI4QUIyMzkxQzRGMzAwNjU4RUNEIC8qIFdlYkNvcmVNb3Rp
b25NYW5hZ2VyQ2xpZW50LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKIAkJRTNBNzc2NjcxREM4NUQyODAwQjY5MEQ4IC8qIERPTUpJVElETENvbnZlcnQu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUzQTc3NjY1
MURDODVEMjIwMEI2OTBEOCAvKiBET01KSVRJRExDb252ZXJ0LmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJRTNBNzc2NjgxREM4NUQyODAwQjY5MEQ4
IC8qIERPTUpJVElETFR5cGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEUzQTc3NjY2MURDODVEMjIwMEI2OTBEOCAvKiBET01KSVRJRExUeXBlLmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJRTNCMkYwRUQx
RDdGNENBMzAwQjBDOUQxIC8qIExvYWRhYmxlU2NyaXB0LmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFM0IyRjBFNzFEN0YzNUVDMDBCMEM5RDEgLyogTG9h
ZGFibGVTY3JpcHQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OwpAQCAtMTUwNjUsNiArMTUwNjcsOCBAQAogCQlFMzg4Mzg5NDFCQUQxNDVGMDBENjJFRTMg
LyogU2NyaXB0TW9kdWxlTG9hZGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IFNjcmlwdE1vZHVsZUxvYWRlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCUUzODgzODk1MUJBRDE0NUYwMEQ2MkVFMyAvKiBTY3JpcHRNb2R1bGVMb2FkZXIuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU2NyaXB0TW9kdWxlTG9hZGVyLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUzOEQwNjA5MUY4RTgxMTkwMDY0OUNGMiAvKiBNb2R1
bGVGZXRjaFBhcmFtZXRlcnMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTW9k
dWxlRmV0Y2hQYXJhbWV0ZXJzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUUzOTYy
OEEzMjM4ODkzNUIwMDY1OEVDRCAvKiBTaGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudC5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBTaGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudC5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQlFMzk2MjhBQjIzOTFDNEYzMDA2NThFQ0QgLyogV2ViQ29yZU1v
dGlvbk1hbmFnZXJDbGllbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViQ29yZU1vdGlvbk1hbmFnZXJD
bGllbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTM5NzVCNzYxRUM5QUYzOTAw
ODQ3NzE3IC8qIEpTRG9jdW1lbnRGcmFnbWVudERPTUpJVC5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBKU0RvY3VtZW50RnJhZ21lbnRET01KSVQuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQlFMzk3NUI3NzFFQzlBRjM5MDA4NDc3MTcgLyogSlNFbGVt
ZW50RE9NSklULmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTRWxl
bWVudERPTUpJVC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUzOTc1Qjc4MUVD
OUFGMzkwMDg0NzcxNyAvKiBKU0V2ZW50RE9NSklULmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IEpTRXZlbnRET01KSVQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwpAQCAtMTY2NDIsOCArMTY2NDYsOCBAQAogCQkJCTExNUNBODMwMjMzMjhCMUUwMEZEM0Iw
OCAvKiBMYXlvdXRVbml0cy5jcHAgKi8sCiAJCQkJNkY3MzkxOEMyMTA2Q0VERDAwNkFGMjYyIC8q
IExheW91dFVuaXRzLmggKi8sCiAJCQkJNkZFN0FBMjYyMUMzN0I2MzAwMjk2RENEIC8qIE1hcmdp
blR5cGVzLmggKi8sCi0JCQkJRTRBQkFCREIyMzYwODhGRDAwRkE0MzQ1IC8qIFJlbmRlckJsb2Nr
Rmxvd0xpbmVMYXlvdXQuaCAqLywKIAkJCQlFNEFCQUJERTIzNjA4OTNEMDBGQTQzNDUgLyogUmVu
ZGVyQmxvY2tGbG93TGluZUxheW91dC5jcHAgKi8sCisJCQkJRTRBQkFCREIyMzYwODhGRDAwRkE0
MzQ1IC8qIFJlbmRlckJsb2NrRmxvd0xpbmVMYXlvdXQuaCAqLywKIAkJCQkxMUZGMDJENTIwQkEz
QzgxMDA4M0YyNUIgLyogVmVyaWZpY2F0aW9uLmNwcCAqLywKIAkJCSk7CiAJCQlwYXRoID0gbGF5
b3V0OwpAQCAtMjI4MTAsNiArMjI4MTQsNyBAQAogCQkJCUU0NTM5MDM0MEVBRkQ2MzcwMDM2OTVD
OCAvKiBTY3JvbGxWaWV3SU9TLm1tICovLAogCQkJCUJFQTgwN0M2MEY3MTRBMDMwMDUyNDE5OSAv
KiBTZWxlY3Rpb25SZWN0LmNwcCAqLywKIAkJCQlCRUE4MDdDNzBGNzE0QTAzMDA1MjQxOTkgLyog
U2VsZWN0aW9uUmVjdC5oICovLAorCQkJCUUzOTYyOEEzMjM4ODkzNUIwMDY1OEVDRCAvKiBTaGFy
ZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudC5oICovLAogCQkJCTBGMDNDMDczMTg4NDY5NUUwMEE1
RjhDQSAvKiBTeXN0ZW1NZW1vcnkuaCAqLywKIAkJCQlFNDUzOTBBRDBFQUZGNEI1MDAzNjk1Qzgg
LyogU3lzdGVtTWVtb3J5SU9TLmNwcCAqLywKIAkJCQk0NEM5OTE5RDBGM0QyMTBFMDA1ODY2NzAg
LyogVGhlbWVJT1MuaCAqLywKQEAgLTIyODI2LDYgKzIyODMxLDcgQEAKIAkJCQkxRjM2RUE5QjFF
MjFCQTE3MDA2MjFFMjUgLyogV2ViQmFja2dyb3VuZFRhc2tDb250cm9sbGVyLm1tICovLAogCQkJ
CTMxNDAzNzk3MTI0QkVBN0YwMEFGNDBFNCAvKiBXZWJDb3JlTW90aW9uTWFuYWdlci5oICovLAog
CQkJCTMxNDAzNzk4MTI0QkVBN0YwMEFGNDBFNCAvKiBXZWJDb3JlTW90aW9uTWFuYWdlci5tbSAq
LywKKwkJCQlFMzk2MjhBQjIzOTFDNEYzMDA2NThFQ0QgLyogV2ViQ29yZU1vdGlvbk1hbmFnZXJD
bGllbnQuaCAqLywKIAkJCQlGRTBEODRFODEwNDg0MzQ4MDAxQTE3OUUgLyogV2ViRXZlbnQuaCAq
LywKIAkJCQlGRTBEODRFQTEwNDg0MzZFMDAxQTE3OUUgLyogV2ViRXZlbnQubW0gKi8sCiAJCQkJ
RjQ4MjIzMEYxRTM4NjlCODAwNjZGQzc5IC8qIFdlYkl0ZW1Qcm92aWRlclBhc3RlYm9hcmQuaCAq
LywKQEAgLTI4NzI5LDggKzI4NzM1LDggQEAKIAkJCQlGRkVGQUIyOTE4MzgwREEwMDA1MTQ1MzQg
LyogTGluZUxheW91dFN0YXRlLmggKi8sCiAJCQkJRTQ4NEEzM0QyMzA1NTMwMzAwOUFERTZBIC8q
IExpbmVMYXlvdXRUcmF2ZXJzYWwuY3BwICovLAogCQkJCUU0ODRBMzNCMjMwNTUzMDMwMDlBREU2
QSAvKiBMaW5lTGF5b3V0VHJhdmVyc2FsLmggKi8sCi0JCQkJRTQzNDNEMjEyMzkyNzc4MzAwRUJC
QjY2IC8qIExpbmVMYXlvdXRUcmF2ZXJzYWxTaW1wbGVQYXRoLmggKi8sCiAJCQkJRTQzNDNEMjQy
MzkyNzc4RjAwRUJCQjY2IC8qIExpbmVMYXlvdXRUcmF2ZXJzYWxDb21wbGV4UGF0aC5oICovLAor
CQkJCUU0MzQzRDIxMjM5Mjc3ODMwMEVCQkI2NiAvKiBMaW5lTGF5b3V0VHJhdmVyc2FsU2ltcGxl
UGF0aC5oICovLAogCQkJCUZGREJDMDQ2MTgzRDI3QjcwMDQwNzEwOSAvKiBMaW5lV2lkdGguY3Bw
ICovLAogCQkJCUZGREJDMDQ1MTgzRDI3QjcwMDQwNzEwOSAvKiBMaW5lV2lkdGguaCAqLywKIAkJ
CQlGRkFDMzBGRDE4NEZCMTQ1MDA4QzRGMUUgLyogVHJhaWxpbmdPYmplY3RzLmNwcCAqLywKQEAg
LTMwNTQxLDcgKzMwNTQ3LDYgQEAKIAkJCQk4MzcwNTY5MDFGNTA5MTVDMDBEOTM0MjUgLyogSlNG
aWxlU3lzdGVtRW50cnlDYWxsYmFjay5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODMzQjlFMzYxRjUw
OEQ4NTAwRTBFNDI4IC8qIEpTRmlsZVN5c3RlbUZpbGVFbnRyeS5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJNzEyQkU0ODgxRkU4Njg2QTAwMjAzMUNDIC8qIEpTRmlsbE1vZGUuaCBpbiBIZWFkZXJzICov
LAotCQkJCUU0MzQzRDI1MjM5Mjc3OTAwMEVCQkI2NiAvKiBMaW5lTGF5b3V0VHJhdmVyc2FsQ29t
cGxleFBhdGguaCBpbiBIZWFkZXJzICovLAogCQkJCUI2RDlEMjdCMTRFQUMwODYwMDkwRDc1RSAv
KiBKU0ZvY3VzRXZlbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUMyODA4MzNGMUM2REMyNkYwMDE0
NTFCNiAvKiBKU0ZvbnRGYWNlLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQzI0RUVBOTFDNzJBN0I0
MDA4MEY4RkMgLyogSlNGb250RmFjZVNldC5oIGluIEhlYWRlcnMgKi8sCkBAIC0zMTE5Niw2ICsz
MTIwMSw4IEBACiAJCQkJNkYyNkVCNDgyMzQwMDRBNTAwNjkwNkUyIC8qIExpbmVMYXlvdXRDb250
ZXh0LmggaW4gSGVhZGVycyAqLywKIAkJCQlGRkVGQUIyQTE4MzgwREEwMDA1MTQ1MzQgLyogTGlu
ZUxheW91dFN0YXRlLmggaW4gSGVhZGVycyAqLywKIAkJCQlFNDg0QTMzRTIzMDU1MzI1MDA5QURF
NkEgLyogTGluZUxheW91dFRyYXZlcnNhbC5oIGluIEhlYWRlcnMgKi8sCisJCQkJRTQzNDNEMjUy
MzkyNzc5MDAwRUJCQjY2IC8qIExpbmVMYXlvdXRUcmF2ZXJzYWxDb21wbGV4UGF0aC5oIGluIEhl
YWRlcnMgKi8sCisJCQkJRTQzNDNEMjMyMzkyNzc4NDAwRUJCQjY2IC8qIExpbmVMYXlvdXRUcmF2
ZXJzYWxTaW1wbGVQYXRoLmggaW4gSGVhZGVycyAqLywKIAkJCQlGRkRCQzA0NzE4M0QyN0I3MDA0
MDcxMDkgLyogTGluZVdpZHRoLmggaW4gSGVhZGVycyAqLywKIAkJCQlDQkE5REMwQjFERjQ0REY0
MDAwNTY3NUMgLyogTGlua0hlYWRlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTE0M0IyNjMxRERE
MTUyMDAwMTRGQUM2IC8qIExpbmtJY29uLmggaW4gSGVhZGVycyAqLywKQEAgLTMxNjg5LDcgKzMx
Njk2LDYgQEAKIAkJCQk1N0RDRUQ3NDIxNDMwNUYwMDAxNkI4NDcgLyogUHVibGljS2V5Q3JlZGVu
dGlhbERhdGEuaCBpbiBIZWFkZXJzICovLAogCQkJCTU3MzAzQkVGMjAwOTgwQzYwMDM1NTk2NSAv
KiBQdWJsaWNLZXlDcmVkZW50aWFsRGVzY3JpcHRvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTcz
MDNDMEEyMDA5OUJBRDAwMzU1OTY1IC8qIFB1YmxpY0tleUNyZWRlbnRpYWxSZXF1ZXN0T3B0aW9u
cy5oIGluIEhlYWRlcnMgKi8sCi0JCQkJRTQzNDNEMjMyMzkyNzc4NDAwRUJCQjY2IC8qIExpbmVM
YXlvdXRUcmF2ZXJzYWxTaW1wbGVQYXRoLmggaW4gSGVhZGVycyAqLywKIAkJCQk1NzMwM0JFQjIw
MDk3RjQwMDAzNTU5NjUgLyogUHVibGljS2V5Q3JlZGVudGlhbFR5cGUuaCBpbiBIZWFkZXJzICov
LAogCQkJCTAwODFGRjAwMTZCMEEyRDMwMDhBQUE3QSAvKiBQdWJsaWNTdWZmaXguaCBpbiBIZWFk
ZXJzICovLAogCQkJCTEwRkIwODRCMTRFMTVDN0UwMEEzREI5OCAvKiBQdWJsaWNVUkxNYW5hZ2Vy
LmggaW4gSGVhZGVycyAqLywKQEAgLTMxNzU1LDYgKzMxNzYxLDcgQEAKIAkJCQk3Q0Q0OTRDRDFB
ODZFQjFEMDAwQTg3RUMgLyogUmVuZGVyQXR0YWNobWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
QkNFQTQ4NjAwOTdEOTMwMjAwOTRDOUU0IC8qIFJlbmRlckJsb2NrLmggaW4gSGVhZGVycyAqLywK
IAkJCQlCQzEwRDc2ODE3RDhFRTcxMDA1RTI2MjYgLyogUmVuZGVyQmxvY2tGbG93LmggaW4gSGVh
ZGVycyAqLywKKwkJCQlFNEFCQUJERDIzNjA4OEZFMDBGQTQzNDUgLyogUmVuZGVyQmxvY2tGbG93
TGluZUxheW91dC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkNFQTQ4NjIwOTdEOTMwMjAwOTRDOUU0
IC8qIFJlbmRlckJveC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkNFQjE3OUMxNDMzNzlGNTAwNTJF
QUU5IC8qIFJlbmRlckJveEZyYWdtZW50SW5mby5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkM5NkRC
NDMwRjNBODgwRTAwNTczQ0IzIC8qIFJlbmRlckJveE1vZGVsT2JqZWN0LmggaW4gSGVhZGVycyAq
LywKQEAgLTMyMTQzLDYgKzMyMTUwLDcgQEAKIAkJCQlGRDFBRjE1MDE2NTZGMTUxMDBDNkQ0Rjcg
LyogU2hhcGVWYWx1ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUQ5RjBGQzEyMTIyMDI5QjAwNUQ4
RkQ0IC8qIFNoYXJlRGF0YS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUE0QTk1NEUwQjRFRENDQjAw
MkQ4QzNDIC8qIFNoYXJlZEJ1ZmZlci5oIGluIEhlYWRlcnMgKi8sCisJCQkJRTM5NjI4QTQyMzg4
OTM1QjAwNjU4RUNEIC8qIFNoYXJlZERldmljZU9yaWVudGF0aW9uQ2xpZW50LmggaW4gSGVhZGVy
cyAqLywKIAkJCQk4MzRERkFEMDFGN0RBRTVEMDBDMjcyNUIgLyogU2hhcmVkU3RyaW5nSGFzaC5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJOTMzMDlFQTMwOTlFQjc4QzAwNTZFNTgxIC8qIFNoYXJlZFRp
bWVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk4MzYyRThDMTIwQ0VGOUNCMDAyNDU4ODYgLyogU2hv
dWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkLmggaW4gSGVhZGVycyAqLywKQEAgLTMyNDcwLDcgKzMy
NDc4LDYgQEAKIAkJCQkwODhDMkY3QTEyMzkwMDgxMDAzRDY1Q0UgLyogU1ZHVGV4dExheW91dEF0
dHJpYnV0ZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTA4MTA5M0RDMTI1NUYwRTcwMEVEOUQyOSAv
KiBTVkdUZXh0TGF5b3V0QXR0cmlidXRlc0J1aWxkZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTA4
MTY2OERBMTI1NjAzRDUwMDZGMjVERSAvKiBTVkdUZXh0TGF5b3V0RW5naW5lLmggaW4gSGVhZGVy
cyAqLywKLQkJCQlFNEFCQUJERDIzNjA4OEZFMDBGQTQzNDUgLyogUmVuZGVyQmxvY2tGbG93TGlu
ZUxheW91dC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMDgwRTQ5MjYxMjU1RjNCRDAwRUZDQTI3IC8q
IFNWR1RleHRMYXlvdXRFbmdpbmVCYXNlbGluZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMDgwRTQ5
MjgxMjU1RjNCRDAwRUZDQTI3IC8qIFNWR1RleHRMYXlvdXRFbmdpbmVTcGFjaW5nLmggaW4gSGVh
ZGVycyAqLywKIAkJCQkwOEYwQkZDNjEyNTVDNTNDMDAwNzUxODUgLyogU1ZHVGV4dE1ldHJpY3Mu
aCBpbiBIZWFkZXJzICovLApAQCAtMzI3NjQsNiArMzI3NzEsNyBAQAogCQkJCUJDNTNEOTExMTE0
MzEwQ0MwMDBEODE3RSAvKiBXZWJDb3JlSlNDbGllbnREYXRhLmggaW4gSGVhZGVycyAqLywKIAkJ
CQk5M0YxOTlCQjA4MjQ1RTU5MDAxRTlBQkMgLyogV2ViQ29yZUtleWJvYXJkVUlNb2RlLmggaW4g
SGVhZGVycyAqLywKIAkJCQkzMTQwMzc5QjEyNEJFQTdGMDBBRjQwRTQgLyogV2ViQ29yZU1vdGlv
bk1hbmFnZXIuaCBpbiBIZWFkZXJzICovLAorCQkJCUUzOTYyOEFDMjM5MUM4MTcwMDY1OEVDRCAv
KiBXZWJDb3JlTW90aW9uTWFuYWdlckNsaWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQ0RDOTc5
RjUxQzQ5OEMwOTAwREI1MEQ0IC8qIFdlYkNvcmVOU0Vycm9yRXh0cmFzLmggaW4gSGVhZGVycyAq
LywKIAkJCQlGNEU1N0VFMTIxM0Y0MzRBMDA0RUE5OEUgLyogV2ViQ29yZU5TRm9udE1hbmFnZXJF
eHRyYXMuaCBpbiBIZWFkZXJzICovLAogCQkJCUM1QjRDMjREMTUwOTIzNkMwMEE2RUYzNyAvKiBX
ZWJDb3JlTlNVUkxFeHRyYXMuaCBpbiBIZWFkZXJzICovLApJbmRleDogU291cmNlL1dlYkNvcmUv
ZG9tL0RldmljZU9yaWVudGF0aW9uQ2xpZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvZG9tL0RldmljZU9yaWVudGF0aW9uQ2xpZW50LmgJKHJldmlzaW9uIDI1Mjk2MSkKKysrIFNv
dXJjZS9XZWJDb3JlL2RvbS9EZXZpY2VPcmllbnRhdGlvbkNsaWVudC5oCSh3b3JraW5nIGNvcHkp
CkBAIC0yOCwxMiArMjgsMTQgQEAKIAogI2luY2x1ZGUgIkRldmljZUNsaWVudC5oIgogI2luY2x1
ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgorI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KIAogbmFtZXNw
YWNlIFdlYkNvcmUgewogCiBjbGFzcyBEZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXI7CiBjbGFz
cyBEZXZpY2VPcmllbnRhdGlvbkRhdGE7CiBjbGFzcyBQYWdlOworY2xhc3MgU2hhcmVkRGV2aWNl
T3JpZW50YXRpb25DbGllbnQ7CiAKIGNsYXNzIERldmljZU9yaWVudGF0aW9uQ2xpZW50IDogcHVi
bGljIERldmljZUNsaWVudCB7CiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoRGV2aWNlT3JpZW50
YXRpb25DbGllbnQpOwpAQCAtNDMsNiArNDUsMTAgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9p
ZCBzZXRDb250cm9sbGVyKERldmljZU9yaWVudGF0aW9uQ29udHJvbGxlciopID0gMDsKICAgICB2
aXJ0dWFsIERldmljZU9yaWVudGF0aW9uRGF0YSogbGFzdE9yaWVudGF0aW9uKCkgY29uc3QgPSAw
OwogICAgIHZpcnR1YWwgdm9pZCBkZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXJEZXN0cm95ZWQo
KSA9IDA7CisKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKQorICAgIHZpcnR1YWwgdm9pZCBzZXRT
aGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudChSZWZQdHI8U2hhcmVkRGV2aWNlT3JpZW50YXRp
b25DbGllbnQ+KSB7IH07CisjZW5kaWYKIH07CiAKIFdFQkNPUkVfRVhQT1JUIHZvaWQgcHJvdmlk
ZURldmljZU9yaWVudGF0aW9uVG8oUGFnZSYsIERldmljZU9yaWVudGF0aW9uQ2xpZW50Jik7Cklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAJKHJldmlzaW9uIDI1Mjk2MSkKKysrIFNvdXJjZS9X
ZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTYwNyw5ICs2MDcsMTUg
QEAgRG9jdW1lbnQ6OkRvY3VtZW50KEZyYW1lKiBmcmFtZSwgY29uc3QgVQogICAgICAgICBub2Rl
TGlzdEFuZENvbGxlY3Rpb25Db3VudCA9IDA7CiAKICAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRp
b246OmFkZEV2ZW50TGlzdGVuZXJzVG9Ob2RlKCp0aGlzKTsKKyAgICAKICNpZiBFTkFCTEUoTUVE
SUFfU1RSRUFNKQogICAgIG1fc2V0dGluZ3MtPnNldExlZ2FjeUdldFVzZXJNZWRpYUVuYWJsZWQo
cXVpcmtzKCkuc2hvdWxkRW5hYmxlTGVnYWN5R2V0VXNlck1lZGlhKCkpOwogI2VuZGlmCisKKyNp
ZiBQTEFURk9STShJT1NfRkFNSUxZKSAmJiBFTkFCTEUoREVWSUNFX09SSUVOVEFUSU9OKQorICAg
IGlmIChwYWdlKCkgJiYgcGFnZSgpLT5zaGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudCgpKQor
ICAgICAgICBtX2RldmljZU9yaWVudGF0aW9uQ2xpZW50LT5zZXRTaGFyZWREZXZpY2VPcmllbnRh
dGlvbkNsaWVudChwYWdlKCktPnNoYXJlZERldmljZU9yaWVudGF0aW9uQ2xpZW50KCkpOworI2Vu
ZGlmCiB9CiAKIFJlZjxEb2N1bWVudD4gRG9jdW1lbnQ6OmNyZWF0ZShEb2N1bWVudCYgY29udGV4
dERvY3VtZW50KQpJbmRleDogU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCShyZXZpc2lvbiAyNTI5NjEpCisrKyBT
b3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yODksNiArMjg5
LDkgQEAgUGFnZTo6UGFnZShQYWdlQ29uZmlndXJhdGlvbiYmIHBhZ2VDb25maQogI2lmIEVOQUJM
RShBUFBMSUNBVElPTl9NQU5JRkVTVCkKICAgICAsIG1fYXBwbGljYXRpb25NYW5pZmVzdChwYWdl
Q29uZmlndXJhdGlvbi5hcHBsaWNhdGlvbk1hbmlmZXN0KQogI2VuZGlmCisjaWYgRU5BQkxFKERF
VklDRV9PUklFTlRBVElPTikgJiYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKyAgICAsIG1fc2hhcmVk
RGV2aWNlT3JpZW50YXRpb25DbGllbnQoV1RGTW92ZShwYWdlQ29uZmlndXJhdGlvbi5zaGFyZWRE
ZXZpY2VPcmllbnRhdGlvbkNsaWVudCkpCisjZW5kaWYKIHsKICAgICB1cGRhdGVUaW1lclRocm90
dGxpbmdTdGF0ZSgpOwogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuaAkocmV2aXNpb24gMjUyOTYxKQorKysg
U291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmgJKHdvcmtpbmcgY29weSkKQEAgLTY5LDYgKzY5LDEw
IEBACiAjaW5jbHVkZSAiTWVkaWFQbGF5YmFja1RhcmdldENvbnRleHQuaCIKICNlbmRpZgogCisj
aWYgRU5BQkxFKERFVklDRV9PUklFTlRBVElPTikgJiYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKyNp
bmNsdWRlICJTaGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudC5oIgorI2VuZGlmCisKIG5hbWVz
cGFjZSBKU0MgewogY2xhc3MgRGVidWdnZXI7CiB9CkBAIC03MTksNiArNzIzLDEwIEBAIHB1Ymxp
YzoKIAogICAgIFdFQkNPUkVfRVhQT1JUIFZlY3RvcjxSZWY8RWxlbWVudD4+IGVkaXRhYmxlRWxl
bWVudHNJblJlY3QoY29uc3QgRmxvYXRSZWN0JikgY29uc3Q7CiAKKyNpZiBFTkFCTEUoREVWSUNF
X09SSUVOVEFUSU9OKSAmJiBQTEFURk9STShJT1NfRkFNSUxZKQorICAgIFJlZlB0cjxTaGFyZWRE
ZXZpY2VPcmllbnRhdGlvbkNsaWVudD4gc2hhcmVkRGV2aWNlT3JpZW50YXRpb25DbGllbnQoKSBj
b25zdCB7IHJldHVybiBtX3NoYXJlZERldmljZU9yaWVudGF0aW9uQ2xpZW50OyB9CisjZW5kaWYK
KwogcHJpdmF0ZToKICAgICBzdHJ1Y3QgTmF2aWdhdGlvbiB7CiAgICAgICAgIFJlZ2lzdHJhYmxl
RG9tYWluIGRvbWFpbjsKQEAgLTk5MCw2ICs5OTgsMTAgQEAgcHJpdmF0ZToKIAogICAgIE9wdGlv
bmFsPFZpZXdwb3J0QXJndW1lbnRzPiBtX292ZXJyaWRlVmlld3BvcnRBcmd1bWVudHM7CiAKKyNp
ZiBFTkFCTEUoREVWSUNFX09SSUVOVEFUSU9OKSAmJiBQTEFURk9STShJT1NfRkFNSUxZKQorICAg
IFJlZlB0cjxTaGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudD4gbV9zaGFyZWREZXZpY2VPcmll
bnRhdGlvbkNsaWVudDsKKyNlbmRpZgorCiAgICAgYm9vbCBtX3Nob3VsZEVuYWJsZUlDRUNhbmRp
ZGF0ZUZpbHRlcmluZ0J5RGVmYXVsdCB7IHRydWUgfTsKICAgICBib29sIG1fbWVkaWFQbGF5YmFj
a0lzU3VzcGVuZGVkIHsgZmFsc2UgfTsKICAgICBib29sIG1fbWVkaWFCdWZmZXJpbmdJc1N1c3Bl
bmRlZCB7IGZhbHNlIH07CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VDb25maWd1cmF0
aW9uLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlQ29uZmlndXJhdGlv
bi5oCShyZXZpc2lvbiAyNTI5NjEpCisrKyBTb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VDb25maWd1
cmF0aW9uLmgJKHdvcmtpbmcgY29weSkKQEAgLTU3LDYgKzU3LDcgQEAgY2xhc3MgUGVyZm9ybWFu
Y2VMb2dnaW5nQ2xpZW50OwogY2xhc3MgUGx1Z0luQ2xpZW50OwogY2xhc3MgUGx1Z2luSW5mb1By
b3ZpZGVyOwogY2xhc3MgUHJvZ3Jlc3NUcmFja2VyQ2xpZW50OworY2xhc3MgU2hhcmVkRGV2aWNl
T3JpZW50YXRpb25DbGllbnQ7CiBjbGFzcyBTb2NrZXRQcm92aWRlcjsKIGNsYXNzIFN0b3JhZ2VO
YW1lc3BhY2VQcm92aWRlcjsKIGNsYXNzIFVzZXJDb250ZW50UHJvdmlkZXI7CkBAIC0xMTgsNiAr
MTE5LDEwIEBAIHB1YmxpYzoKICAgICBSZWZQdHI8U3RvcmFnZU5hbWVzcGFjZVByb3ZpZGVyPiBz
dG9yYWdlTmFtZXNwYWNlUHJvdmlkZXI7CiAgICAgUmVmUHRyPFVzZXJDb250ZW50UHJvdmlkZXI+
IHVzZXJDb250ZW50UHJvdmlkZXI7CiAgICAgUmVmUHRyPFZpc2l0ZWRMaW5rU3RvcmU+IHZpc2l0
ZWRMaW5rU3RvcmU7CisgICAgCisjaWYgRU5BQkxFKERFVklDRV9PUklFTlRBVElPTikgJiYgUExB
VEZPUk0oSU9TX0ZBTUlMWSkKKyAgICBSZWZQdHI8U2hhcmVkRGV2aWNlT3JpZW50YXRpb25DbGll
bnQ+IHNoYXJlZERldmljZU9yaWVudGF0aW9uQ2xpZW50OworI2VuZGlmCiB9OwogCiB9CkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvRGV2aWNlT3JpZW50YXRpb25DbGllbnRJT1Mu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvRGV2aWNlT3JpZW50
YXRpb25DbGllbnRJT1MuaAkocmV2aXNpb24gMjUyOTYxKQorKysgU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vaW9zL0RldmljZU9yaWVudGF0aW9uQ2xpZW50SU9TLmgJKHdvcmtpbmcgY29weSkKQEAg
LTMwLDEzICszMCwxNSBAQAogI2luY2x1ZGUgIkRldmljZU9yaWVudGF0aW9uQ2xpZW50LmgiCiAj
aW5jbHVkZSAiRGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyLmgiCiAjaW5jbHVkZSAiRGV2aWNl
T3JpZW50YXRpb25EYXRhLmgiCisjaW5jbHVkZSAiU2hhcmVkRGV2aWNlT3JpZW50YXRpb25DbGll
bnQuaCIKKyNpbmNsdWRlICJXZWJDb3JlTW90aW9uTWFuYWdlckNsaWVudC5oIgogI2luY2x1ZGUg
PHd0Zi9SZWZQdHIuaD4KIAogT0JKQ19DTEFTUyBXZWJDb3JlTW90aW9uTWFuYWdlcjsKIAogbmFt
ZXNwYWNlIFdlYkNvcmUgewogCi1jbGFzcyBEZXZpY2VPcmllbnRhdGlvbkNsaWVudElPUyA6IHB1
YmxpYyBEZXZpY2VPcmllbnRhdGlvbkNsaWVudCB7CitjbGFzcyBEZXZpY2VPcmllbnRhdGlvbkNs
aWVudElPUyA6IHB1YmxpYyBEZXZpY2VPcmllbnRhdGlvbkNsaWVudCwgcHVibGljIFdlYkNvcmVN
b3Rpb25NYW5hZ2VyQ2xpZW50IHsKIHB1YmxpYzoKICAgICBEZXZpY2VPcmllbnRhdGlvbkNsaWVu
dElPUygpOwogICAgIH5EZXZpY2VPcmllbnRhdGlvbkNsaWVudElPUygpIG92ZXJyaWRlOwpAQCAt
NDYsMTIgKzQ4LDE1IEBAIHB1YmxpYzoKICAgICBEZXZpY2VPcmllbnRhdGlvbkRhdGEqIGxhc3RP
cmllbnRhdGlvbigpIGNvbnN0IG92ZXJyaWRlOwogICAgIHZvaWQgZGV2aWNlT3JpZW50YXRpb25D
b250cm9sbGVyRGVzdHJveWVkKCkgb3ZlcnJpZGU7CiAKLSAgICB2b2lkIG9yaWVudGF0aW9uQ2hh
bmdlZChkb3VibGUsIGRvdWJsZSwgZG91YmxlLCBkb3VibGUsIGRvdWJsZSk7CisgICAgdm9pZCBv
cmllbnRhdGlvbkNoYW5nZWQoZG91YmxlLCBkb3VibGUsIGRvdWJsZSwgZG91YmxlLCBkb3VibGUp
IG92ZXJyaWRlOwogCisgICAgdm9pZCBzZXRTaGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudChS
ZWZQdHI8U2hhcmVkRGV2aWNlT3JpZW50YXRpb25DbGllbnQ+IHNoYXJlZERldmljZU9yaWVudGF0
aW9uQ2xpZW50KSBvdmVycmlkZSB7IG1fc2hhcmVkRGV2aWNlT3JpZW50YXRpb25DbGllbnQgPSBz
aGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudDsgfQorICAgIAogcHJpdmF0ZToKICAgICBXZWJD
b3JlTW90aW9uTWFuYWdlciogbV9tb3Rpb25NYW5hZ2VyOwogICAgIERldmljZU9yaWVudGF0aW9u
Q29udHJvbGxlciogbV9jb250cm9sbGVyOwogICAgIFJlZlB0cjxEZXZpY2VPcmllbnRhdGlvbkRh
dGE+IG1fY3VycmVudERldmljZU9yaWVudGF0aW9uOworICAgIFJlZlB0cjxTaGFyZWREZXZpY2VP
cmllbnRhdGlvbkNsaWVudD4gbV9zaGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudDsKICAgICBi
b29sIG1fdXBkYXRpbmc7CiB9OwogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3Mv
RGV2aWNlT3JpZW50YXRpb25DbGllbnRJT1MubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vaW9zL0RldmljZU9yaWVudGF0aW9uQ2xpZW50SU9TLm1tCShyZXZpc2lvbiAy
NTI5NjEpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvRGV2aWNlT3JpZW50YXRpb25D
bGllbnRJT1MubW0JKHdvcmtpbmcgY29weSkKQEAgLTUzLDYgKzUzLDExIEBAIHZvaWQgRGV2aWNl
T3JpZW50YXRpb25DbGllbnRJT1M6OnN0YXJ0VXAKIHsKICAgICBtX3VwZGF0aW5nID0gdHJ1ZTsK
IAorICAgIGlmIChtX3NoYXJlZERldmljZU9yaWVudGF0aW9uQ2xpZW50KSB7CisgICAgICAgIG1f
c2hhcmVkRGV2aWNlT3JpZW50YXRpb25DbGllbnQtPnN0YXJ0VXBkYXRpbmcoKnRoaXMpOworICAg
ICAgICByZXR1cm47CisgICAgfQorCiAgICAgaWYgKCFtX21vdGlvbk1hbmFnZXIpCiAgICAgICAg
IG1fbW90aW9uTWFuYWdlciA9IFtXZWJDb3JlTW90aW9uTWFuYWdlciBzaGFyZWRNYW5hZ2VyXTsK
IApAQCAtNjMsNiArNjgsMTEgQEAgdm9pZCBEZXZpY2VPcmllbnRhdGlvbkNsaWVudElPUzo6c3Rv
cFVwZAogewogICAgIG1fdXBkYXRpbmcgPSBmYWxzZTsKIAorICAgIGlmIChtX3NoYXJlZERldmlj
ZU9yaWVudGF0aW9uQ2xpZW50KSB7CisgICAgICAgIG1fc2hhcmVkRGV2aWNlT3JpZW50YXRpb25D
bGllbnQtPnN0b3BVcGRhdGluZygqdGhpcyk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKICAg
ICAvLyBSZW1vdmUgb3Vyc2VsdmVzIGFzIHRoZSBvcmllbnRhdGlvbiBjbGllbnQgc28gd2Ugd29u
J3QgZ2V0IHVwZGF0ZXMuCiAgICAgW21fbW90aW9uTWFuYWdlciByZW1vdmVPcmllbnRhdGlvbkNs
aWVudDp0aGlzXTsKIH0KQEAgLTc0LDYgKzg0LDExIEBAIERldmljZU9yaWVudGF0aW9uRGF0YSog
RGV2aWNlT3JpZW50YXRpb24KIAogdm9pZCBEZXZpY2VPcmllbnRhdGlvbkNsaWVudElPUzo6ZGV2
aWNlT3JpZW50YXRpb25Db250cm9sbGVyRGVzdHJveWVkKCkKIHsKKyAgICBpZiAobV9zaGFyZWRE
ZXZpY2VPcmllbnRhdGlvbkNsaWVudCkgeworICAgICAgICBtX3NoYXJlZERldmljZU9yaWVudGF0
aW9uQ2xpZW50LT5zdG9wVXBkYXRpbmcoKnRoaXMpOworICAgICAgICByZXR1cm47CisgICAgfQor
CiAgICAgW21fbW90aW9uTWFuYWdlciByZW1vdmVPcmllbnRhdGlvbkNsaWVudDp0aGlzXTsKIH0K
ICAgICAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9TaGFyZWREZXZpY2VPcmll
bnRhdGlvbkNsaWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lv
cy9TaGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudC5oCShub25leGlzdGVudCkKKysrIFNvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9TaGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudC5oCSh3
b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNDkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTkg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAqIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIGBgQVMgSVMnJyBBTkQg
QU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiAgSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVCBPV05FUiBPUgorICogQ09OVFJJQlVU
T1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNT
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAor
ICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisj
aWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkgJiYgRU5BQkxFKERFVklDRV9PUklFTlRBVElPTikKKwor
I2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xh
c3MgV2ViQ29yZU1vdGlvbk1hbmFnZXJDbGllbnQ7CisKK2NsYXNzIFNoYXJlZERldmljZU9yaWVu
dGF0aW9uQ2xpZW50IDogcHVibGljIFJlZkNvdW50ZWQ8U2hhcmVkRGV2aWNlT3JpZW50YXRpb25D
bGllbnQ+IHsKK3B1YmxpYzoKKyAgICBTaGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudCgpIHsg
fQorICAgIHZpcnR1YWwgflNoYXJlZERldmljZU9yaWVudGF0aW9uQ2xpZW50KCkgeyB9CisKKyAg
ICB2aXJ0dWFsIHZvaWQgc3RhcnRVcGRhdGluZyhXZWJDb3JlTW90aW9uTWFuYWdlckNsaWVudCYp
IHsgfQorICAgIHZpcnR1YWwgdm9pZCBzdG9wVXBkYXRpbmcoV2ViQ29yZU1vdGlvbk1hbmFnZXJD
bGllbnQmKSB7IH0KKworICAgIHZpcnR1YWwgdm9pZCBkZXZpY2VPcmllbnRhdGlvbkNoYW5nZWQo
ZG91YmxlLCBkb3VibGUsIGRvdWJsZSwgZG91YmxlLCBkb3VibGUpIHsgfQorfTsKKworfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gUExBVEZPUk0oSU9TX0ZBTUlMWSkgJiYgRU5B
QkxFKERFVklDRV9PUklFTlRBVElPTikKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lv
cy9XZWJDb3JlTW90aW9uTWFuYWdlci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2lvcy9XZWJDb3JlTW90aW9uTWFuYWdlci5oCShyZXZpc2lvbiAyNTI5NjEpCisrKyBT
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvV2ViQ29yZU1vdGlvbk1hbmFnZXIuaAkod29ya2lu
ZyBjb3B5KQpAQCAtMjUsOCArMjUsNiBAQAogCiAjcHJhZ21hIG9uY2UKIAotI2ltcG9ydCAiRGV2
aWNlTW90aW9uQ2xpZW50SU9TLmgiCi0jaW1wb3J0ICJEZXZpY2VPcmllbnRhdGlvbkNsaWVudElP
Uy5oIgogI2ltcG9ydCA8Q29yZUxvY2F0aW9uL0NvcmVMb2NhdGlvbi5oPgogI2ltcG9ydCA8d3Rm
L0hhc2hDb3VudGVkU2V0Lmg+CiAKQEAgLTM2LDExICszNCwxNiBAQAogCiBjb25zdCBmbG9hdCBr
TW90aW9uVXBkYXRlSW50ZXJ2YWwgPSAxLjBmIC8gNjAuMGY7CiAKLUBpbnRlcmZhY2UgV2ViQ29y
ZU1vdGlvbk1hbmFnZXIgOiBOU09iamVjdCB7CituYW1lc3BhY2UgV2ViQ29yZSB7CitjbGFzcyBE
ZXZpY2VNb3Rpb25DbGllbnRJT1M7CitjbGFzcyBXZWJDb3JlTW90aW9uTWFuYWdlckNsaWVudDsK
K307CisKK1dFQkNPUkVfRVhQT1JUIEBpbnRlcmZhY2UgV2ViQ29yZU1vdGlvbk1hbmFnZXIgOiBO
U09iamVjdCB7CiAgICAgQ01Nb3Rpb25NYW5hZ2VyKiBtX21vdGlvbk1hbmFnZXI7CiAgICAgQ0xM
b2NhdGlvbk1hbmFnZXIqIG1fbG9jYXRpb25NYW5hZ2VyOwogICAgIEhhc2hTZXQ8V2ViQ29yZTo6
RGV2aWNlTW90aW9uQ2xpZW50SU9TKj4gbV9kZXZpY2VNb3Rpb25DbGllbnRzOwotICAgIEhhc2hT
ZXQ8V2ViQ29yZTo6RGV2aWNlT3JpZW50YXRpb25DbGllbnRJT1MqPiBtX2RldmljZU9yaWVudGF0
aW9uQ2xpZW50czsKKyAgICBIYXNoU2V0PFdlYkNvcmU6OldlYkNvcmVNb3Rpb25NYW5hZ2VyQ2xp
ZW50Kj4gbV9kZXZpY2VPcmllbnRhdGlvbkNsaWVudHM7CiAgICAgTlNUaW1lciogbV91cGRhdGVU
aW1lcjsKICAgICBCT09MIG1fZ3lyb0F2YWlsYWJsZTsKICAgICBCT09MIG1faGVhZGluZ0F2YWls
YWJsZTsKQEAgLTUwLDggKzUzLDggQEAgY29uc3QgZmxvYXQga01vdGlvblVwZGF0ZUludGVydmFs
ID0gMS4wZgogKyAoV2ViQ29yZU1vdGlvbk1hbmFnZXIgKilzaGFyZWRNYW5hZ2VyOwogLSAodm9p
ZClhZGRNb3Rpb25DbGllbnQ6KFdlYkNvcmU6OkRldmljZU1vdGlvbkNsaWVudElPUyAqKWNsaWVu
dDsKIC0gKHZvaWQpcmVtb3ZlTW90aW9uQ2xpZW50OihXZWJDb3JlOjpEZXZpY2VNb3Rpb25DbGll
bnRJT1MgKiljbGllbnQ7Ci0tICh2b2lkKWFkZE9yaWVudGF0aW9uQ2xpZW50OihXZWJDb3JlOjpE
ZXZpY2VPcmllbnRhdGlvbkNsaWVudElPUyAqKWNsaWVudDsKLS0gKHZvaWQpcmVtb3ZlT3JpZW50
YXRpb25DbGllbnQ6KFdlYkNvcmU6OkRldmljZU9yaWVudGF0aW9uQ2xpZW50SU9TICopY2xpZW50
OworLSAodm9pZClhZGRPcmllbnRhdGlvbkNsaWVudDooV2ViQ29yZTo6V2ViQ29yZU1vdGlvbk1h
bmFnZXJDbGllbnQgKiljbGllbnQ7CistICh2b2lkKXJlbW92ZU9yaWVudGF0aW9uQ2xpZW50OihX
ZWJDb3JlOjpXZWJDb3JlTW90aW9uTWFuYWdlckNsaWVudCAqKWNsaWVudDsKIC0gKEJPT0wpZ3ly
b0F2YWlsYWJsZTsKIC0gKEJPT0wpaGVhZGluZ0F2YWlsYWJsZTsKIEBlbmQKSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJDb3JlTW90aW9uTWFuYWdlci5tbQo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvV2ViQ29yZU1vdGlvbk1hbmFnZXIubW0J
KHJldmlzaW9uIDI1Mjk2MSkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJDb3Jl
TW90aW9uTWFuYWdlci5tbQkod29ya2luZyBjb3B5KQpAQCAtMjgsNiArMjgsOCBAQAogCiAjaWYg
UExBVEZPUk0oSU9TX0ZBTUlMWSkgJiYgRU5BQkxFKERFVklDRV9PUklFTlRBVElPTikKIAorI2lt
cG9ydCAiRGV2aWNlTW90aW9uQ2xpZW50SU9TLmgiCisjaW1wb3J0ICJXZWJDb3JlTW90aW9uTWFu
YWdlckNsaWVudC5oIgogI2ltcG9ydCAiV2ViQ29yZU9iakNFeHRyYXMuaCIKICNpbXBvcnQgIldl
YkNvcmVUaHJlYWRSdW4uaCIKICNpbXBvcnQgPENvcmVMb2NhdGlvbi9Db3JlTG9jYXRpb24uaD4K
QEAgLTExMiwxNCArMTE0LDE0IEBAIC0gKHZvaWQpcmVtb3ZlTW90aW9uQ2xpZW50OihXZWJDb3Jl
OjpEZXYKICAgICAgICAgW3NlbGYgY2hlY2tDbGllbnRTdGF0dXNdOwogfQogCi0tICh2b2lkKWFk
ZE9yaWVudGF0aW9uQ2xpZW50OihXZWJDb3JlOjpEZXZpY2VPcmllbnRhdGlvbkNsaWVudElPUyAq
KWNsaWVudAorLSAodm9pZClhZGRPcmllbnRhdGlvbkNsaWVudDooV2ViQ29yZTo6V2ViQ29yZU1v
dGlvbk1hbmFnZXJDbGllbnQgKiljbGllbnQKIHsKICAgICBtX2RldmljZU9yaWVudGF0aW9uQ2xp
ZW50cy5hZGQoY2xpZW50KTsKICAgICBpZiAobV9pbml0aWFsaXplZCkKICAgICAgICAgW3NlbGYg
Y2hlY2tDbGllbnRTdGF0dXNdOwogfQogCi0tICh2b2lkKXJlbW92ZU9yaWVudGF0aW9uQ2xpZW50
OihXZWJDb3JlOjpEZXZpY2VPcmllbnRhdGlvbkNsaWVudElPUyAqKWNsaWVudAorLSAodm9pZCly
ZW1vdmVPcmllbnRhdGlvbkNsaWVudDooV2ViQ29yZTo6V2ViQ29yZU1vdGlvbk1hbmFnZXJDbGll
bnQgKiljbGllbnQKIHsKICAgICBtX2RldmljZU9yaWVudGF0aW9uQ2xpZW50cy5yZW1vdmUoY2xp
ZW50KTsKICAgICBpZiAobV9pbml0aWFsaXplZCkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2lvcy9XZWJDb3JlTW90aW9uTWFuYWdlckNsaWVudC5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJDb3JlTW90aW9uTWFuYWdlckNsaWVudC5oCShub25l
eGlzdGVudCkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJDb3JlTW90aW9uTWFu
YWdlckNsaWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMzcgQEAKKy8qCisqIENvcHly
aWdodCAoQykgMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisqCisqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyogYXJlIG1ldDoKKyogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisqCisqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBg
YEFTIElTJycKKyogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVU
T1JTCisqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IKKyogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyogU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisq
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOCisqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisqIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyogVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorKi8KKworI3ByYWdtYSBvbmNlCisKK25hbWVz
cGFjZSBXZWJDb3JlIHsKKworY2xhc3MgV2ViQ29yZU1vdGlvbk1hbmFnZXJDbGllbnQgeworcHVi
bGljOgorICAgIHZpcnR1YWwgfldlYkNvcmVNb3Rpb25NYW5hZ2VyQ2xpZW50KCkgeyB9OworCisg
ICAgdmlydHVhbCB2b2lkIG9yaWVudGF0aW9uQ2hhbmdlZChkb3VibGUsIGRvdWJsZSwgZG91Ymxl
LCBkb3VibGUsIGRvdWJsZSkgeyB9OworfTsKKworfTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvQ2hh
bmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCShyZXZpc2lvbiAy
NTI5NjEpCisrKyBTb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDMzIEBACisyMDE5LTExLTMwICBQZXIgQXJuZSBWb2xsYW4gIDxwdm9sbGFuQGFwcGxlLmNv
bT4KKworICAgICAgICBbaU9TXSBDYWxscyB0byBkZXZpY2Ugb3JpZW50YXRpb24gQVBJIHNob3Vs
ZCBiZSBkb25lIGluIHRoZSBVSSBwcm9jZXNzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yMDQ3MjAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBBZGQgV2ViIHBhZ2UgcHJveHkgbWVzc2FnZXMgdG8gc3RhcnQg
YW5kIHN0b3AgdXBkYXRpbmcgZGV2aWNlIG9yaWVudGF0aW9uIGluIHRoZSBVSSBwcm9jZXNzLiBB
bHNvLCBhZGQgYSBtZXNzYWdlIHRvCisgICAgICAgIHRoZSBXZWIgcGFnZSB0byB1cGRhdGUgdGhl
IGRldmljZSBvcmllbnRhdGlvbiBpbiB0aGUgV2ViQ29udGVudCBwcm9jZXNzLiBJbiB0aGUgVUkg
cHJvY2VzcywgdGhlIGRldmljZSBvcmllbnRhdGlvbiBBUEkKKyAgICAgICAgaXMgY2FsbGVkIHRo
cm91Z2ggdGhlIGFscmVhZHkgZXhpc3RpbmcgV2ViQ29yZU1vdGlvbk1hbmFnZXIgY2xhc3MuCisK
KyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lmg6CisgICAgICAgICogVUlQcm9jZXNz
L1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dlYlBh
Z2VQcm94eUlPUy5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpzdGFydFVwZGF0
aW5nRGV2aWNlT3JpZW50YXRpb24pOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OnN0
b3BVcGRhdGluZ0RldmljZU9yaWVudGF0aW9uKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVBy
b3h5OjpvcmllbnRhdGlvbkNoYW5nZWQpOgorICAgICAgICAqIFdlYktpdC54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViU2hh
cmVkRGV2aWNlT3JpZW50YXRpb25DbGllbnQuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6
V2ViU2hhcmVkRGV2aWNlT3JpZW50YXRpb25DbGllbnQ6OnN0YXJ0VXBkYXRpbmcpOgorICAgICAg
ICAoV2ViS2l0OjpXZWJTaGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudDo6c3RvcFVwZGF0aW5n
KToKKyAgICAgICAgKFdlYktpdDo6V2ViU2hhcmVkRGV2aWNlT3JpZW50YXRpb25DbGllbnQ6OmRl
dmljZU9yaWVudGF0aW9uQ2hhbmdlZCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC9XZWJTaGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudC5oOiBBZGRlZC4KKyAgICAgICAg
KiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHA6CisgICAgICAgIChXZWJLaXQ6Om1fb3Zl
cnJpZGRlbk1lZGlhVHlwZSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2Uu
aDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbjoKKyAg
ICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW06CisgICAgICAgIChX
ZWJLaXQ6OldlYlBhZ2U6OmRldmljZU9yaWVudGF0aW9uQ2hhbmdlZCk6CisKIDIwMTktMTEtMjcg
IEFudG9pbmUgUXVpbnQgIDxncmFvdXRzQGFwcGxlLmNvbT4KIAogICAgICAgICBbV2ViIEFuaW1h
dGlvbnNdIEVuYWJsZSBXZWJBbmltYXRpb25zQ1NTSW50ZWdyYXRpb25FbmFibGVkIGJ5IGRlZmF1
bHQKSW5kZXg6IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAkocmV2aXNp
b24gMjUyOTYxKQorKysgU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAko
d29ya2luZyBjb3B5KQpAQCAtNTIwLDYgKzUyMCwxMCBAQCBXZWJQYWdlUHJveHk6On5XZWJQYWdl
UHJveHkoKQogICAgIG1fcHJlZmVyZW5jZXMtPnJlbW92ZVBhZ2UoKnRoaXMpOwogICAgIG1fcGFn
ZUdyb3VwLT5yZW1vdmVQYWdlKHRoaXMpOwogCisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkgJiYg
RU5BQkxFKERFVklDRV9PUklFTlRBVElPTikKKyAgICBzdG9wVXBkYXRpbmdEZXZpY2VPcmllbnRh
dGlvbigpOworI2VuZGlmCisgICAgCiAjaWZuZGVmIE5ERUJVRwogICAgIHdlYlBhZ2VQcm94eUNv
dW50ZXIuZGVjcmVtZW50KCk7CiAjZW5kaWYKSW5kZXg6IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYlBhZ2VQcm94eS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dl
YlBhZ2VQcm94eS5oCShyZXZpc2lvbiAyNTI5NjEpCisrKyBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJQYWdlUHJveHkuaAkod29ya2luZyBjb3B5KQpAQCAtMTQ5LDYgKzE0OSwxMCBAQCBPQkpD
X0NMQVNTIF9XS1JlbW90ZU9iamVjdFJlZ2lzdHJ5OwogI2luY2x1ZGUgIlNPQXV0aG9yaXphdGlv
bkxvYWRQb2xpY3kuaCIKICNlbmRpZgogCisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkgJiYgRU5B
QkxFKERFVklDRV9PUklFTlRBVElPTikKKyNpbmNsdWRlIDxXZWJDb3JlL1dlYkNvcmVNb3Rpb25N
YW5hZ2VyQ2xpZW50Lmg+CisjZW5kaWYKKwogI2lmIEVOQUJMRShNRURJQV9TRVNTSU9OKQogbmFt
ZXNwYWNlIFdlYkNvcmUgewogY2xhc3MgTWVkaWFTZXNzaW9uTWV0YWRhdGE7CkBAIC0xNTksNiAr
MTYzLDEwIEBAIGNsYXNzIE1lZGlhU2Vzc2lvbk1ldGFkYXRhOwogaW50ZXJmYWNlIElEM0QxMURl
dmljZTE7CiAjZW5kaWYKIAorI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpICYmIEVOQUJMRShERVZJ
Q0VfT1JJRU5UQVRJT04pCitPQkpDX0NMQVNTIFdlYkNvcmVNb3Rpb25NYW5hZ2VyOworI2VuZGlm
CisKIG5hbWVzcGFjZSBBUEkgewogY2xhc3MgQXR0YWNobWVudDsKIGNsYXNzIENvbnRleHRNZW51
Q2xpZW50OwpAQCAtNDEwLDYgKzQxOCw5IEBAIGNsYXNzIFdlYlBhZ2VQcm94eSA6IHB1YmxpYyBB
UEk6Ok9iamVjdEkKICAgICAsIHB1YmxpYyBXZWJDb3JlOjpQbGF0Zm9ybVNwZWVjaFN5bnRoZXNp
c1V0dGVyYW5jZUNsaWVudAogICAgICwgcHVibGljIFdlYkNvcmU6OlBsYXRmb3JtU3BlZWNoU3lu
dGhlc2l6ZXJDbGllbnQKICNlbmRpZgorI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpICYmIEVOQUJM
RShERVZJQ0VfT1JJRU5UQVRJT04pCisgICAgLCBwdWJsaWMgV2ViQ29yZTo6V2ViQ29yZU1vdGlv
bk1hbmFnZXJDbGllbnQKKyNlbmRpZgogICAgICwgcHVibGljIENhbk1ha2VXZWFrUHRyPFdlYlBh
Z2VQcm94eT4gewogcHVibGljOgogICAgIHN0YXRpYyBSZWY8V2ViUGFnZVByb3h5PiBjcmVhdGUo
UGFnZUNsaWVudCYsIFdlYlByb2Nlc3NQcm94eSYsIFJlZjxBUEk6OlBhZ2VDb25maWd1cmF0aW9u
PiYmKTsKQEAgLTE2MjQsNiArMTYzNSwxMSBAQCBwdWJsaWM6CiAgICAgY29uc3QgU3RyaW5nJiBv
dmVycmlkZGVuTWVkaWFUeXBlKCkgY29uc3QgeyByZXR1cm4gbV9vdmVycmlkZGVuTWVkaWFUeXBl
OyB9CiAgICAgdm9pZCBzZXRPdmVycmlkZGVuTWVkaWFUeXBlKGNvbnN0IFN0cmluZyYpOwogCisj
aWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkgJiYgRU5BQkxFKERFVklDRV9PUklFTlRBVElPTikKKyAg
ICB2b2lkIHN0YXJ0VXBkYXRpbmdEZXZpY2VPcmllbnRhdGlvbigpOworICAgIHZvaWQgc3RvcFVw
ZGF0aW5nRGV2aWNlT3JpZW50YXRpb24oKTsKKyNlbmRpZgorCiBwcml2YXRlOgogICAgIFdlYlBh
Z2VQcm94eShQYWdlQ2xpZW50JiwgV2ViUHJvY2Vzc1Byb3h5JiwgUmVmPEFQSTo6UGFnZUNvbmZp
Z3VyYXRpb24+JiYpOwogICAgIHZvaWQgcGxhdGZvcm1Jbml0aWFsaXplKCk7CkBAIC0yMTY3LDYg
KzIxODMsMTEgQEAgcHJpdmF0ZToKICAgICB2b2lkIHJlc2V0U3BlZWNoU3ludGhlc2l6ZXIoKTsK
ICNlbmRpZgogCisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkgJiYgRU5BQkxFKERFVklDRV9PUklF
TlRBVElPTikKKyAgICAvLyBXZWJDb3JlOjpXZWJDb3JlTW90aW9uTWFuYWdlckNsaWVudAorICAg
IHZvaWQgb3JpZW50YXRpb25DaGFuZ2VkKGRvdWJsZSwgZG91YmxlLCBkb3VibGUsIGRvdWJsZSwg
ZG91YmxlKSBvdmVycmlkZTsKKyNlbmRpZgorCiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKICAg
ICBzdGF0aWMgYm9vbCBpc0luSGFyZHdhcmVLZXlib2FyZE1vZGUoKTsKICAgICB2b2lkIGNsZWFy
QXVkaWJsZUFjdGl2aXR5KCk7CkBAIC0yNjI0LDYgKzI2NDUsMTAgQEAgcHJpdmF0ZToKICAgICBi
b29sIG1faXNRdW90YUluY3JlYXNlRGVuaWVkIHsgZmFsc2UgfTsKICAgICAKICAgICBTdHJpbmcg
bV9vdmVycmlkZGVuTWVkaWFUeXBlOworCisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkgJiYgRU5B
QkxFKERFVklDRV9PUklFTlRBVElPTikKKyAgICBXZWJDb3JlTW90aW9uTWFuYWdlciogbV9tb3Rp
b25NYW5hZ2VyIHsgbnVsbHB0ciB9OworI2VuZGlmCiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJL
aXQKSW5kZXg6IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5p
bgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVz
c2FnZXMuaW4JKHJldmlzaW9uIDI1Mjk2MSkKKysrIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dl
YlBhZ2VQcm94eS5tZXNzYWdlcy5pbgkod29ya2luZyBjb3B5KQpAQCAtNTg2LDQgKzU4Niw5IEBA
IG1lc3NhZ2VzIC0+IFdlYlBhZ2VQcm94eSB7CiAKICAgICBEaWRGaW5kVGV4dE1hbmlwdWxhdGlv
bkl0ZW0oV2ViQ29yZTo6VGV4dE1hbmlwdWxhdGlvbkNvbnRyb2xsZXI6Okl0ZW1JZGVudGlmaWVy
IGl0ZW1JRCwgVmVjdG9yPFdlYkNvcmU6OlRleHRNYW5pcHVsYXRpb25Db250cm9sbGVyOjpNYW5p
cHVsYXRpb25Ub2tlbj4gdG9rZW5zKQogCisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkgJiYgRU5B
QkxFKERFVklDRV9PUklFTlRBVElPTikKKyAgICBTdGFydFVwZGF0aW5nRGV2aWNlT3JpZW50YXRp
b24oKTsKKyAgICBTdG9wVXBkYXRpbmdEZXZpY2VPcmllbnRhdGlvbigpOworI2VuZGlmCisKIH0K
SW5kZXg6IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XZWJQYWdlUHJveHlJT1MubW0KPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dlYlBhZ2VQcm94eUlPUy5t
bQkocmV2aXNpb24gMjUyOTYxKQorKysgU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dlYlBh
Z2VQcm94eUlPUy5tbQkod29ya2luZyBjb3B5KQpAQCAtNzUsNiArNzUsMTAgQEAKICNpbXBvcnQg
PHd0Zi90ZXh0L1dURlN0cmluZy5oPgogI2VuZGlmCiAKKyNpZiBFTkFCTEUoREVWSUNFX09SSUVO
VEFUSU9OKQorI2ltcG9ydCA8V2ViQ29yZS9XZWJDb3JlTW90aW9uTWFuYWdlci5oPgorI2VuZGlm
CisKICNkZWZpbmUgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRChjaGFubmVsLCBmbXQsIC4uLikgUkVM
RUFTRV9MT0dfSUYoaXNBbHdheXNPbkxvZ2dpbmdBbGxvd2VkKCksIGNoYW5uZWwsICIlcCAtIFtw
YWdlUHJveHlJRD0lbGx1LCB3ZWJQYWdlSUQ9JWxsdSwgUElEPSVpXSBXZWJQYWdlUHJveHk6OiIg
Zm10LCB0aGlzLCBtX2lkZW50aWZpZXIudG9VSW50NjQoKSwgbV93ZWJQYWdlSUQudG9VSW50NjQo
KSwgbV9wcm9jZXNzLT5wcm9jZXNzSWRlbnRpZmllcigpLCAjI19fVkFfQVJHU19fKQogCiBuYW1l
c3BhY2UgV2ViS2l0IHsKQEAgLTE0ODMsNiArMTQ4NywyNiBAQCBXZWJDb250ZW50TW9kZSBXZWJQ
YWdlUHJveHk6OmVmZmVjdGl2ZUNvCiAgICAgcmV0dXJuIFdlYkNvbnRlbnRNb2RlOjpEZXNrdG9w
OwogfQogCisjaWYgRU5BQkxFKERFVklDRV9PUklFTlRBVElPTikKK3ZvaWQgV2ViUGFnZVByb3h5
OjpzdGFydFVwZGF0aW5nRGV2aWNlT3JpZW50YXRpb24oKQoreworICAgIGlmICghbV9tb3Rpb25N
YW5hZ2VyKQorICAgICAgICBtX21vdGlvbk1hbmFnZXIgPSBbV2ViQ29yZU1vdGlvbk1hbmFnZXIg
c2hhcmVkTWFuYWdlcl07CisgICAgW21fbW90aW9uTWFuYWdlciBhZGRPcmllbnRhdGlvbkNsaWVu
dDp0aGlzXTsKK30KKwordm9pZCBXZWJQYWdlUHJveHk6OnN0b3BVcGRhdGluZ0RldmljZU9yaWVu
dGF0aW9uKCkKK3sKKyAgICBbbV9tb3Rpb25NYW5hZ2VyIHJlbW92ZU9yaWVudGF0aW9uQ2xpZW50
OnRoaXNdOworfQorCit2b2lkIFdlYlBhZ2VQcm94eTo6b3JpZW50YXRpb25DaGFuZ2VkKGRvdWJs
ZSBhbHBoYSwgZG91YmxlIGJldGEsIGRvdWJsZSBnYW1tYSwgZG91YmxlIGNvbXBhc3NIZWFkaW5n
LCBkb3VibGUgY29tcGFzc0FjY3VyYWN5KQoreworICAgIHNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6
OkRldmljZU9yaWVudGF0aW9uQ2hhbmdlZChhbHBoYSwgYmV0YSwgZ2FtbWEsIGNvbXBhc3NIZWFk
aW5nLCBjb21wYXNzQWNjdXJhY3kpLCAwKTsKK30KKyNlbmRpZgorCisKIH0gLy8gbmFtZXNwYWNl
IFdlYktpdAogCiAjdW5kZWYgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRApJbmRleDogU291cmNlL1dl
YktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvago9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCShyZXZpc2lvbiAyNTI5
NjEpCisrKyBTb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCSh3
b3JraW5nIGNvcHkpCkBAIC0xNjg5LDYgKzE2ODksNyBAQAogCQlFMUQyNkE1MzE3NTk2NEQ5MDA5
NUJGRDEgLyogV2ViQ29udGVudFByb2Nlc3MueGliIGluIFJlc291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMUQyNkE0QzE3NTk2MzRFMDA5NUJGRDEgLyogV2ViQ29u
dGVudFByb2Nlc3MueGliICovOyB9OwogCQlFMUU1NTJDNTE2QUUwNjVGMDA0RUQ2NTMgLyogU2Fu
ZGJveEluaXRpYWxpemF0aW9uUGFyYW1ldGVycy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gRTFFNTUyQzMxNkFFMDY1RTAwNEVENjUzIC8qIFNhbmRib3hJ
bml0aWFsaXphdGlvblBhcmFtZXRlcnMuaCAqLzsgfTsKIAkJRTFFRTUzRTMxMUY4Q0ZDMDAwQ0NC
RUU0IC8qIEluamVjdGVkQnVuZGxlUGFnZUVkaXRvckNsaWVudC5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTFFRTUzREMxMUY4Q0Y5RjAwQ0NCRUU0IC8q
IEluamVjdGVkQnVuZGxlUGFnZUVkaXRvckNsaWVudC5oICovOyB9OworCQlFMzk2MjhBQTIzODhB
QkQ4MDA2NThFQ0QgLyogV2ViU2hhcmVkRGV2aWNlT3JpZW50YXRpb25DbGllbnQuY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTM5NjI4QTkyMzg4QUJE
ODAwNjU4RUNEIC8qIFdlYlNoYXJlZERldmljZU9yaWVudGF0aW9uQ2xpZW50LmNwcCAqLzsgfTsK
IAkJRTQxM0Y1OUQxQUMxQURDNDAwMzQ1MzYwIC8qIE5ldHdvcmtDYWNoZUVudHJ5LmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFNDEzRjU5QjFBQzFBREI2
MDAzNDUzNjAgLyogTmV0d29ya0NhY2hlRW50cnkuaCAqLzsgfTsKIAkJRTQyRTA2MTAxQUE3NTIz
QjAwQjExNjk5IC8qIE5ldHdvcmtDYWNoZUlPQ2hhbm5lbC5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTQyRTA2MEIxQUE3NDQwRDAwQjExNjk5IC8qIE5l
dHdvcmtDYWNoZUlPQ2hhbm5lbC5oICovOyB9OwogCQlFNDJFMDYxMjFBQTc1QUJEMDBCMTE2OTkg
LyogTmV0d29ya0NhY2hlRGF0YS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gRTQyRTA2MTExQUE3NUFCRDAwQjExNjk5IC8qIE5ldHdvcmtDYWNoZURhdGEu
aCAqLzsgfTsKQEAgLTQ3NDgsNiArNDc0OSw4IEBACiAJCUUxRUU1M0RDMTFGOENGOUYwMENDQkVF
NCAvKiBJbmplY3RlZEJ1bmRsZVBhZ2VFZGl0b3JDbGllbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gSW5qZWN0ZWRCdW5kbGVQYWdlRWRpdG9yQ2xpZW50Lmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUxRUU1M0U2MTFGOENGRkIwMENDQkVFNCAvKiBJbmplY3Rl
ZEJ1bmRsZVBhZ2VFZGl0b3JDbGllbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gSW5qZWN0ZWRCdW5kbGVQYWdlRWRpdG9yQ2xpZW50LmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJRTM0MzlCNjMyMzQ1NDYzQTAwMTFERTBCIC8qIE5ldHdvcmtQcm9j
ZXNzQ29ubmVjdGlvbkluZm8uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gTmV0d29ya1Byb2Nlc3NDb25uZWN0
aW9uSW5mby5oOyBwYXRoID0gTmV0d29yay9OZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb25JbmZvLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUUzOTYyOEE4MjM4OEE1RDQwMDY1OEVDRCAv
KiBXZWJTaGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJT
aGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQlFMzk2MjhBOTIzODhBQkQ4MDA2NThFQ0QgLyogV2ViU2hhcmVkRGV2aWNlT3JpZW50YXRp
b25DbGllbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViU2hhcmVkRGV2aWNlT3JpZW50YXRp
b25DbGllbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFNDA0OTA3MDIxREU2
NUY3MDAzN0YwREIgLyogU2Nyb2xsZXJQYWlyTWFjLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IFNjcm9sbGVyUGFpck1hYy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQlFNDA0OTA3MTIxREU2NUY3MDAzN0YwREIgLyogU2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5n
Tm9kZVJlbW90ZU1hYy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBT
Y3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlUmVtb3RlTWFjLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJRTQwNDkwNzIyMURFNjVGNzAwMzdGMERCIC8qIFNjcm9sbGVyUGFp
ck1hYy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFNjcm9sbGVy
UGFpck1hYy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTU4NTQsNiArNTg1Nyw4
IEBACiAJCQkJMkQyOEYzRTMxODg1Q0NDMTAwNEI5RUFFIC8qIFdlYkZyYW1lTG9hZGVyQ2xpZW50
SU9TLm1tICovLAogCQkJCUExQzUxMkM2MTkwNjU2RTUwMDQ0ODkxNCAvKiBXZWJQcmV2aWV3TG9h
ZGVyQ2xpZW50LmNwcCAqLywKIAkJCQlBMUM1MTJDNzE5MDY1NkU1MDA0NDg5MTQgLyogV2ViUHJl
dmlld0xvYWRlckNsaWVudC5oICovLAorCQkJCUUzOTYyOEE5MjM4OEFCRDgwMDY1OEVDRCAvKiBX
ZWJTaGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudC5jcHAgKi8sCisJCQkJRTM5NjI4QTgyMzg4
QTVENDAwNjU4RUNEIC8qIFdlYlNoYXJlZERldmljZU9yaWVudGF0aW9uQ2xpZW50LmggKi8sCiAJ
CQkpOwogCQkJbmFtZSA9IGlvczsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CkBAIC05ODIw
LDcgKzk4MjUsNiBAQAogCQkJCTUxMUY4QTdCMTM4QjQ2MDkwMEE5NUY0NCAvKiBTZWNJdGVtU2hp
bUxpYnJhcnkuaCBpbiBIZWFkZXJzICovLAogCQkJCUUxOEU2OTBDMTY5QjU2M0YwMDlCNjY3MCAv
KiBTZWNJdGVtU2hpbVByb3h5LmggaW4gSGVhZGVycyAqLywKIAkJCQlFMThFNjkxODE2OUI2NjdC
MDA5QjY2NzAgLyogU2VjSXRlbVNoaW1Qcm94eU1lc3NhZ2VzLmggaW4gSGVhZGVycyAqLywKLQkJ
CQk3QUE3NDZENTIzNTkzRDgxMDAwOTUwNTAgLyogU2VjSXRlbVNQSS5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJNTcwQUI4RjMyMEFFM0JENzAwQjhCRTg3IC8qIFNlY0tleVByb3h5U3RvcmUuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTUxNEQ5RjU3MTkxMTlEMzUwMDAwNjNBNyAvKiBTZXJ2aWNlc0NvbnRy
b2xsZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTFBRkRFNjVBMTk1NEE0MkIwMEM0OEZGQSAvKiBT
ZXNzaW9uU3RhdGUuaCBpbiBIZWFkZXJzICovLApAQCAtMTE2MTksNiArMTE2MjMsNyBAQAogCQkJ
CTUxRjA2MEUxMTY1NDMxODUwMEYzMjgxRiAvKiBXZWJSVENNb25pdG9yTWVzc2FnZVJlY2VpdmVy
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTUxRjA2MEUxMTY1NDMxODUwMEYzMjgyQyAvKiBXZWJS
VENSZXNvbHZlck1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk1MUYwNjBF
MTE2NTQzMTg1MDBGMzI4MUMgLyogV2ViUlRDU29ja2V0TWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBT
b3VyY2VzICovLAorCQkJCUUzOTYyOEFBMjM4OEFCRDgwMDY1OEVDRCAvKiBXZWJTaGFyZWREZXZp
Y2VPcmllbnRhdGlvbkNsaWVudC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk0MUYwNjBFMTE2NTQz
MTg1MDBGMzI4MUMgLyogV2ViU29ja2V0Q2hhbm5lbE1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQk1QzBCMTc3OTFFN0M4ODIxMDBFOTEyM0MgLyogV2ViU29ja2V0U3RyZWFt
TWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTQxMjg3RDRFMjI1RDFFQ0Iw
MDlBM0UyNiAvKiBXZWJTb2NrZXRUYXNrQ29jb2EubW0gaW4gU291cmNlcyAqLywKSW5kZXg6IFNv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJTaGFyZWREZXZpY2VPcmll
bnRhdGlvbkNsaWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYkNvcmVTdXBwb3J0L1dlYlNoYXJlZERldmljZU9yaWVudGF0aW9uQ2xpZW50LmNwcAkobm9u
ZXhpc3RlbnQpCisrKyBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2Vi
U2hhcmVkRGV2aWNlT3JpZW50YXRpb25DbGllbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAg
KzEsNjEgQEAKKy8qCisqIENvcHlyaWdodCAoQykgMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisqCisqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyogYXJlIG1ldDoKKyogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisqCisqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisqIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyogQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YK
KyogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTCisqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisqIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisq
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YKKyogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorKi8KKwor
I2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldlYlNoYXJlZERldmljZU9yaWVudGF0aW9u
Q2xpZW50LmgiCisKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKSAmJiBFTkFCTEUoREVWSUNFX09S
SUVOVEFUSU9OKQorCisjaW5jbHVkZSAiV2ViUGFnZS5oIgorI2luY2x1ZGUgIldlYlBhZ2VQcm94
eU1lc3NhZ2VzLmgiCisKKyNpbmNsdWRlIDxXZWJDb3JlL1dlYkNvcmVNb3Rpb25NYW5hZ2VyQ2xp
ZW50Lmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCit2b2lkIFdlYlNoYXJlZERldmljZU9yaWVu
dGF0aW9uQ2xpZW50OjpzdGFydFVwZGF0aW5nKFdlYkNvcmU6OldlYkNvcmVNb3Rpb25NYW5hZ2Vy
Q2xpZW50JiBjbGllbnQpCit7CisgICAgaWYgKG1fY2xpZW50cy5pc0VtcHR5KCkgJiYgbV9wYWdl
KQorICAgICAgICBtX3BhZ2UtPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6U3RhcnRVcGRh
dGluZ0RldmljZU9yaWVudGF0aW9uKCkpOworICAgIG1fY2xpZW50cy5hZGQoJmNsaWVudCk7Cit9
CisKK3ZvaWQgV2ViU2hhcmVkRGV2aWNlT3JpZW50YXRpb25DbGllbnQ6OnN0b3BVcGRhdGluZyhX
ZWJDb3JlOjpXZWJDb3JlTW90aW9uTWFuYWdlckNsaWVudCYgY2xpZW50KQoreworICAgIGlmICht
X2NsaWVudHMuaXNFbXB0eSgpKQorICAgICAgICByZXR1cm47CisgICAgaWYgKG1fY2xpZW50cy5p
c0VtcHR5KCkgJiYgbV9wYWdlKQorICAgICAgICBtX3BhZ2UtPnNlbmQoTWVzc2FnZXM6OldlYlBh
Z2VQcm94eTo6U3RvcFVwZGF0aW5nRGV2aWNlT3JpZW50YXRpb24oKSk7Cit9CisKK3ZvaWQgV2Vi
U2hhcmVkRGV2aWNlT3JpZW50YXRpb25DbGllbnQ6OmRldmljZU9yaWVudGF0aW9uQ2hhbmdlZChk
b3VibGUgYWxwaGEsIGRvdWJsZSBiZXRhLCBkb3VibGUgZ2FtbWEsIGRvdWJsZSBjb21wYXNzSGVh
ZGluZywgZG91YmxlIGNvbXBhc3NBY2N1cmFjeSkKK3sKKyAgICBmb3IgKGF1dG8gY2xpZW50IDog
bV9jbGllbnRzKQorICAgICAgICBjbGllbnQtPm9yaWVudGF0aW9uQ2hhbmdlZChhbHBoYSwgYmV0
YSwgZ2FtbWEsIGNvbXBhc3NIZWFkaW5nLCBjb21wYXNzQWNjdXJhY3kpOworfQorCit9OworCisj
ZW5kaWYKSW5kZXg6IFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJT
aGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJTaGFyZWREZXZpY2VPcmllbnRhdGlvbkNs
aWVudC5oCShub25leGlzdGVudCkKKysrIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3Jl
U3VwcG9ydC9XZWJTaGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudC5oCSh3b3JraW5nIGNvcHkp
CkBAIC0wLDAgKzEsNTkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTkgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUg
PFdlYkNvcmUvU2hhcmVkRGV2aWNlT3JpZW50YXRpb25DbGllbnQuaD4KKworI2luY2x1ZGUgPHd0
Zi9IYXNoU2V0Lmg+CisjaW5jbHVkZSA8d3RmL1dlYWtQdHIuaD4KKworI2lmIFBMQVRGT1JNKElP
U19GQU1JTFkpICYmIEVOQUJMRShERVZJQ0VfT1JJRU5UQVRJT04pCisKK25hbWVzcGFjZSBXZWJL
aXQgeworCitjbGFzcyBXZWJQYWdlOworCitjbGFzcyBXZWJTaGFyZWREZXZpY2VPcmllbnRhdGlv
bkNsaWVudCBmaW5hbCA6IHB1YmxpYyBXZWJDb3JlOjpTaGFyZWREZXZpY2VPcmllbnRhdGlvbkNs
aWVudCB7CisgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CitwdWJsaWM6CisgICAgV2ViU2hh
cmVkRGV2aWNlT3JpZW50YXRpb25DbGllbnQoV2ViUGFnZSYgcGFnZSkKKyAgICAgICAgOiBtX3Bh
Z2UoV1RGOjptYWtlV2Vha1B0cihwYWdlKSkKKyAgICB7CisgICAgfQorCisgICAgdm9pZCBzdGFy
dFVwZGF0aW5nKFdlYkNvcmU6OldlYkNvcmVNb3Rpb25NYW5hZ2VyQ2xpZW50Jikgb3ZlcnJpZGU7
CisgICAgdm9pZCBzdG9wVXBkYXRpbmcoV2ViQ29yZTo6V2ViQ29yZU1vdGlvbk1hbmFnZXJDbGll
bnQmKSBvdmVycmlkZTsKKworICAgIHZvaWQgZGV2aWNlT3JpZW50YXRpb25DaGFuZ2VkKGRvdWJs
ZSwgZG91YmxlLCBkb3VibGUsIGRvdWJsZSwgZG91YmxlKSBvdmVycmlkZTsKKworcHJpdmF0ZToK
KyAgICBXVEY6OldlYWtQdHI8V2ViUGFnZT4gbV9wYWdlOworICAgIEhhc2hTZXQ8V2ViQ29yZTo6
V2ViQ29yZU1vdGlvbk1hbmFnZXJDbGllbnQqPiBtX2NsaWVudHM7Cit9OworCit9CisKKyNlbmRp
ZgpJbmRleDogU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAJ
KHJldmlzaW9uIDI1Mjk2MSkKKysrIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dl
YlBhZ2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMDcsNiArMzA3LDEwIEBACiAjaW5jbHVkZSA8
V2ViQ29yZS9BdXRoZW50aWNhdG9yQ29vcmRpbmF0b3IuaD4KICNlbmRpZgogCisjaWYgUExBVEZP
Uk0oSU9TX0ZBTUlMWSkgJiYgRU5BQkxFKERFVklDRV9PUklFTlRBVElPTikKKyNpbmNsdWRlICJX
ZWJTaGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudC5oIgorI2VuZGlmCisKIG5hbWVzcGFjZSBX
ZWJLaXQgewogdXNpbmcgbmFtZXNwYWNlIEpTQzsKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwpA
QCAtNTAxLDYgKzUwNSwxMCBAQCBXZWJQYWdlOjpXZWJQYWdlKFBhZ2VJZGVudGlmaWVyIHBhZ2VJ
RCwgCiAjaWYgRU5BQkxFKEFQUExJQ0FUSU9OX01BTklGRVNUKQogICAgIHBhZ2VDb25maWd1cmF0
aW9uLmFwcGxpY2F0aW9uTWFuaWZlc3QgPSBwYXJhbWV0ZXJzLmFwcGxpY2F0aW9uTWFuaWZlc3Q7
CiAjZW5kaWYKKyAgICAKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKSAmJiBFTkFCTEUoREVWSUNF
X09SSUVOVEFUSU9OKQorICAgIHBhZ2VDb25maWd1cmF0aW9uLnNoYXJlZERldmljZU9yaWVudGF0
aW9uQ2xpZW50ID0gbmV3IFdlYlNoYXJlZERldmljZU9yaWVudGF0aW9uQ2xpZW50KCp0aGlzKTsK
KyNlbmRpZgogCiAgICAgbV9wYWdlID0gbWFrZVVuaXF1ZTxQYWdlPihXVEZNb3ZlKHBhZ2VDb25m
aWd1cmF0aW9uKSk7CiAKSW5kZXg6IFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dl
YlBhZ2UuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9X
ZWJQYWdlLmgJKHJldmlzaW9uIDI1Mjk2MSkKKysrIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJQYWdlL1dlYlBhZ2UuaAkod29ya2luZyBjb3B5KQpAQCAtMTI0NCw2ICsxMjQ0LDEwIEBAIHB1
YmxpYzoKICAgICBjb25zdCBTdHJpbmcmIG92ZXJyaWRkZW5NZWRpYVR5cGUoKSBjb25zdCB7IHJl
dHVybiBtX292ZXJyaWRkZW5NZWRpYVR5cGU7IH0KICAgICB2b2lkIHNldE92ZXJyaWRkZW5NZWRp
YVR5cGUoY29uc3QgU3RyaW5nJik7CiAgICAgCisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkgJiYg
RU5BQkxFKERFVklDRV9PUklFTlRBVElPTikKKyAgICB2b2lkIGRldmljZU9yaWVudGF0aW9uQ2hh
bmdlZChkb3VibGUgYWxwaGEsIGRvdWJsZSBiZXRhLCBkb3VibGUgZ2FtbWEsIGRvdWJsZSBjb21w
YXNzSGVhZGluZywgZG91YmxlIGNvbXBhc3NBY2N1cmFjeSk7CisjZW5kaWYKKwogcHJpdmF0ZToK
ICAgICBXZWJQYWdlKFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCBXZWJQYWdlQ3JlYXRpb25QYXJh
bWV0ZXJzJiYpOwogCkluZGV4OiBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQ
YWdlLm1lc3NhZ2VzLmluCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4JKHJldmlzaW9uIDI1Mjk2MSkKKysrIFNvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4JKHdvcmtpbmcgY29w
eSkKQEAgLTU4Myw0ICs1ODMsOCBAQCBHZW5lcmF0ZVN5bnRoZXRpY0VkaXRpbmdDb21tYW5kKGVu
dW06dWluCiAgICAgQ29tcGxldGVUZXh0TWFuaXB1bGF0aW9uKFdlYkNvcmU6OlRleHRNYW5pcHVs
YXRpb25Db250cm9sbGVyOjpJdGVtSWRlbnRpZmllciBpdGVtSUQsIFZlY3RvcjxXZWJDb3JlOjpU
ZXh0TWFuaXB1bGF0aW9uQ29udHJvbGxlcjo6TWFuaXB1bGF0aW9uVG9rZW4+IHRva2VucykgLT4g
KGVudW06dWludDhfdCBXZWJDb3JlOjpUZXh0TWFuaXB1bGF0aW9uQ29udHJvbGxlcjo6TWFuaXB1
bGF0aW9uUmVzdWx0IHJlc3VsdCkgQXN5bmMKICAgICAKICAgICBTZXRPdmVycmlkZGVuTWVkaWFU
eXBlKFN0cmluZyBtZWRpYVR5cGUpCisgICAgCisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkgJiYg
RU5BQkxFKERFVklDRV9PUklFTlRBVElPTikKKyAgICBEZXZpY2VPcmllbnRhdGlvbkNoYW5nZWQo
ZG91YmxlIGFscGhhLCBkb3VibGUgYmV0YSwgZG91YmxlIGdhbW1hLCBkb3VibGUgY29tcGFzc0hl
YWRpbmcsIGRvdWJsZSBjb21wYXNzQWNjdXJhY3kpCisjZW5kaWYKIH0KSW5kZXg6IFNvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tCShyZXZp
c2lvbiAyNTI5NjEpCisrKyBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2Vi
UGFnZUlPUy5tbQkod29ya2luZyBjb3B5KQpAQCAtNDA4OCw2ICs0MDg4LDE0IEBAIHZvaWQgV2Vi
UGFnZTo6cmVxdWVzdFBhc3N3b3JkRm9yUXVpY2tMb28KIAogI2VuZGlmCiAKKyNpZiBFTkFCTEUo
REVWSUNFX09SSUVOVEFUSU9OKQordm9pZCBXZWJQYWdlOjpkZXZpY2VPcmllbnRhdGlvbkNoYW5n
ZWQoZG91YmxlIGFscGhhLCBkb3VibGUgYmV0YSwgZG91YmxlIGdhbW1hLCBkb3VibGUgY29tcGFz
c0hlYWRpbmcsIGRvdWJsZSBjb21wYXNzQWNjdXJhY3kpCit7CisgICAgaWYgKGNvcmVQYWdlKCkg
JiYgY29yZVBhZ2UoKS0+c2hhcmVkRGV2aWNlT3JpZW50YXRpb25DbGllbnQoKSkKKyAgICAgICAg
Y29yZVBhZ2UoKS0+c2hhcmVkRGV2aWNlT3JpZW50YXRpb25DbGllbnQoKS0+ZGV2aWNlT3JpZW50
YXRpb25DaGFuZ2VkKGFscGhhLCBiZXRhLCBnYW1tYSwgY29tcGFzc0hlYWRpbmcsIGNvbXBhc3NB
Y2N1cmFjeSk7Cit9CisjZW5kaWYKKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CiAKICN1bmRlZiBS
RUxFQVNFX0xPR19JRl9BTExPV0VECg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>384625</attachid>
            <date>2019-12-02 08:39:39 -0800</date>
            <delta_ts>2019-12-02 09:24:53 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-204720-20191202083939.patch</filename>
            <type>text/plain</type>
            <size>49560</size>
            <attacher name="Per Arne Vollan">pvollan</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDI1Mjk4MikKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDUwIEBACisyMDE5LTExLTMwICBQZXIgQXJu
ZSBWb2xsYW4gIDxwdm9sbGFuQGFwcGxlLmNvbT4KKworICAgICAgICBbaU9TXSBDYWxscyB0byBk
ZXZpY2Ugb3JpZW50YXRpb24gQVBJIHNob3VsZCBiZSBkb25lIGluIHRoZSBVSSBwcm9jZXNzCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDQ3MjAKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGUgZGV2aWNl
IG9yaWVudGF0aW9uIEFQSSBvbiBpT1MgaXMgY29tbXVuaWNhdGluZyB3aXRoIGxvY2F0aW9uZC4g
U2luY2UgbWFjaCBsb29rdXAgdG8gdGhpcyBkYWVtb24KKyAgICAgICAgd2lsbCBiZSBjbG9zZWQs
IHRoZSBjYWxscyB0byB0aGlzIEFQSSBzaG91bGQgYmUgbW92ZWQgZnJvbSB0aGUgV2ViQ29udGVu
dCBwcm9jZXNzIHRvIHRoZSBVSSBwcm9jZXNzLgorICAgICAgICBUaGlzIHBhdGNoIGltcGxlbWVu
dHMgZm9yd2FyZGluZyBvZiB0aGUgZGV2aWNlIG9yaWVudGF0aW9uIHJlcXVlc3RzIHRvIHRoZSBV
SSBwcm9jZXNzIHRocm91Z2ggYSBuZXcKKyAgICAgICAgY2xhc3MsIFNoYXJlZERldmljZU9yaWVu
dGF0aW9uQ2xpZW50LCB3aGljaCBpcyBzdWJjbGFzc2VkIGJ5IFdlYlNoYXJlZERldmljZU9yaWVu
dGF0aW9uQ2xpZW50IGluCisgICAgICAgIG1vZGVybiBXZWJLaXQuIFRoaXMgY2xhc3MgaW1wbGVt
ZW50cyBmb3J3YXJkaW5nIG9mIHRoZSByZXF1ZXN0cyB0byB0aGUgVUkgcHJvY2VzcywgYW5kIHJl
Y2VpdmVzCisgICAgICAgIGRldmljZSBvcmllbnRhdGlvbiB1cGRhdGVzIGZyb20gdGhlIFVJIHBy
b2Nlc3MuIEFuIGluc3RhbmNlIG9mIHRoaXMgY2xhc3Mgd2lsbCBiZSBzaGFyZWQgYnkgYWxsCisg
ICAgICAgIGRldmljZSBvcmllbnRhdGlvbiBjbGllbnRzIG9uIGEgcGFnZSwgYW5kIHBhc3NlZCBh
cyBwYXJ0IG9mIHRoZSBwYWdlIGNvbmZpZ3VyYXRpb24gcGFyYW1ldGVycy4gT24KKyAgICAgICAg
dGhlIFVJIHByb2Nlc3Mgc2lkZSwgdGhlIFdlYiBwYWdlIHByb3h5IGlzIHRha2luZyBjYXJlIG9m
IGNhbGxpbmcgdGhlIGRldmljZSBvcmllbnRhdGlvbiBBUEkgdGhyb3VnaAorICAgICAgICB0aGUg
ZXhpc3RpbmcgV2ViQ29yZU1vdGlvbk1hbmFnZXIgT2JqZWN0aXZlLUMgY2xhc3MuCisKKyAgICAg
ICAgTm8gbmV3IHRlc3RzLCBjb3ZlcmVkIGJ5IGV4aXN0aW5nIHRlc3RzLgorCisgICAgICAgICog
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGRvbS9EZXZpY2VP
cmllbnRhdGlvbkNsaWVudC5oOgorICAgICAgICAoV2ViQ29yZTo6RGV2aWNlT3JpZW50YXRpb25D
bGllbnQ6OnNldFNoYXJlZERldmljZU9yaWVudGF0aW9uQ2xpZW50KToKKyAgICAgICAgKiBkb20v
RG9jdW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6bV91bmRvTWFuYWdlcik6CisgICAgICAg
ICogcGFnZS9QYWdlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Om1fc2hhcmVkRGV2aWNlT3JpZW50
YXRpb25DbGllbnQpOgorICAgICAgICAoV2ViQ29yZTo6bV9hcHBsaWNhdGlvbk1hbmlmZXN0KTog
RGVsZXRlZC4KKyAgICAgICAgKiBwYWdlL1BhZ2UuaDoKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2U6
OnNoYXJlZERldmljZU9yaWVudGF0aW9uQ2xpZW50IGNvbnN0KToKKyAgICAgICAgKiBwYWdlL1Bh
Z2VDb25maWd1cmF0aW9uLmg6CisgICAgICAgICogcGxhdGZvcm0vaW9zL0RldmljZU9yaWVudGF0
aW9uQ2xpZW50SU9TLmg6CisgICAgICAgICogcGxhdGZvcm0vaW9zL0RldmljZU9yaWVudGF0aW9u
Q2xpZW50SU9TLm1tOgorICAgICAgICAoV2ViQ29yZTo6RGV2aWNlT3JpZW50YXRpb25DbGllbnRJ
T1M6OnN0YXJ0VXBkYXRpbmcpOgorICAgICAgICAoV2ViQ29yZTo6RGV2aWNlT3JpZW50YXRpb25D
bGllbnRJT1M6OnN0b3BVcGRhdGluZyk6CisgICAgICAgIChXZWJDb3JlOjpEZXZpY2VPcmllbnRh
dGlvbkNsaWVudElPUzo6ZGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyRGVzdHJveWVkKToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9pb3MvU2hhcmVkRGV2aWNlT3JpZW50YXRpb25DbGllbnQuaDogQWRk
ZWQuCisgICAgICAgIChXZWJDb3JlOjpTaGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudDo6U2hh
cmVkRGV2aWNlT3JpZW50YXRpb25DbGllbnQpOgorICAgICAgICAoV2ViQ29yZTo6U2hhcmVkRGV2
aWNlT3JpZW50YXRpb25DbGllbnQ6On5TaGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudCk6Cisg
ICAgICAgIChXZWJDb3JlOjpTaGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudDo6c3RhcnRVcGRh
dGluZyk6CisgICAgICAgIChXZWJDb3JlOjpTaGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudDo6
c3RvcFVwZGF0aW5nKToKKyAgICAgICAgKFdlYkNvcmU6OlNoYXJlZERldmljZU9yaWVudGF0aW9u
Q2xpZW50OjpkZXZpY2VPcmllbnRhdGlvbkNoYW5nZWQpOgorICAgICAgICAqIHBsYXRmb3JtL2lv
cy9XZWJDb3JlTW90aW9uTWFuYWdlci5oOgorICAgICAgICAqIHBsYXRmb3JtL2lvcy9XZWJDb3Jl
TW90aW9uTWFuYWdlci5tbToKKyAgICAgICAgKC1bV2ViQ29yZU1vdGlvbk1hbmFnZXIgYWRkT3Jp
ZW50YXRpb25DbGllbnQ6XSk6CisgICAgICAgICgtW1dlYkNvcmVNb3Rpb25NYW5hZ2VyIHJlbW92
ZU9yaWVudGF0aW9uQ2xpZW50Ol0pOgorICAgICAgICAqIHBsYXRmb3JtL2lvcy9XZWJDb3JlTW90
aW9uTWFuYWdlckNsaWVudC5oOgorCiAyMDE5LTEyLTAyICBSb2IgQnVpcyAgPHJidWlzQGlnYWxp
YS5jb20+CiAKICAgICAgICAgW0dUS10gRml4IHNvbWUgd2FybmluZ3MKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvago9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHJldmlzaW9u
IDI1Mjk4MikKKysrIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagkod29ya2luZyBjb3B5KQpAQCAtOTA3LDcgKzkwNyw3IEBACiAJCTMxMzU5MTBBMUU3RERD
NzMwMEYzMDYzMCAvKiBSVENTZHBUeXBlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSAzMTM1OTEwNDFFN0REQzYwMDBGMzA2MzAgLyogUlRDU2RwVHlwZS5o
ICovOyB9OwogCQkzMTM1OTEwQjFFN0REQzczMDBGMzA2MzAgLyogUlRDU2lnbmFsaW5nU3RhdGUu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMxMzU5MTA1
MUU3RERDNjAwMEYzMDYzMCAvKiBSVENTaWduYWxpbmdTdGF0ZS5oICovOyB9OwogCQkzMTNCQ0Ux
QzIzNUUzQkU1MDBGQzM5RTUgLyogRWxlbWVudENvbnRleHQuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMxM0JDRTFCMjM1RTNCREIwMEZDMzlFNSAvKiBF
bGVtZW50Q29udGV4dC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07Ci0JCTMxNDAzNzlCMTI0QkVBN0YwMEFGNDBFNCAvKiBXZWJDb3JlTW90aW9uTWFuYWdl
ci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzE0MDM3
OTcxMjRCRUE3RjAwQUY0MEU0IC8qIFdlYkNvcmVNb3Rpb25NYW5hZ2VyLmggKi87IH07CisJCTMx
NDAzNzlCMTI0QkVBN0YwMEFGNDBFNCAvKiBXZWJDb3JlTW90aW9uTWFuYWdlci5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzE0MDM3OTcxMjRCRUE3RjAw
QUY0MEU0IC8qIFdlYkNvcmVNb3Rpb25NYW5hZ2VyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVU
RVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMzE0MDM3OUQxMjRCRUE3RjAwQUY0MEU0IC8qIERl
dmljZU9yaWVudGF0aW9uQ2xpZW50SU9TLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSAzMTQwMzc5OTEyNEJFQTdGMDBBRjQwRTQgLyogRGV2aWNlT3JpZW50
YXRpb25DbGllbnRJT1MuaCAqLzsgfTsKIAkJMzE0MEM1MjAxRkRGMTUxQTAwRDJBODczIC8qIE9m
ZnNjcmVlbkNhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzE0MEM1MUUxRkRGMTUxQTAwRDJBODczIC8qIE9mZnNj
cmVlbkNhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5oICovOyB9OwogCQkzMTQwQzUyNDFGREYzMTg3
MDBEMkE4NzMgLyogQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEQmFzZS5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzE0MEM1MjIxRkRGMzE4NjAwRDJBODcz
IC8qIENhbnZhc1JlbmRlcmluZ0NvbnRleHQyREJhc2UuaCAqLzsgfTsKQEAgLTQ3NzYsNiArNDc3
Niw4IEBACiAJCUUzNTgwMkI2MURDODQzNUQwMEE5NzczQyAvKiBET01KSVRJRExUeXBlRmlsdGVy
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMzU4MDJC
NTFEQzg0MzU4MDBBOTc3M0MgLyogRE9NSklUSURMVHlwZUZpbHRlci5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUUzNzdGRTREMURBREUxNjUwMENE
RDAyNSAvKiBOb2RlQ29uc3RhbnRzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBFM0QwNDk5MzFEQURDMDQ1MDA3MThGM0MgLyogTm9kZUNvbnN0YW50cy5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUUzN0M4
NjUwMUVCNjNFM0YwMDg3QzZDQSAvKiBKU0RPTVByb21pc2UuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUzN0M4NjRGMUVCNjNFMkQwMDg3QzZDQSAvKiBK
U0RPTVByb21pc2UuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OworCQlFMzk2MjhCRjIzOTU3MjhGMDA2NThFQ0QgLyogU2hhcmVkRGV2aWNlT3JpZW50YXRp
b25DbGllbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEUzOTYyOEJEMjM5NTcyOEUwMDY1OEVDRCAvKiBTaGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVu
dC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCUUz
OTYyOEMxMjM5NTc0MzEwMDY1OEVDRCAvKiBXZWJDb3JlTW90aW9uTWFuYWdlckNsaWVudC5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTM5NjI4QzAyMzk1
NzQzMDAwNjU4RUNEIC8qIFdlYkNvcmVNb3Rpb25NYW5hZ2VyQ2xpZW50LmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJRTNBNzc2NjcxREM4NUQyODAw
QjY5MEQ4IC8qIERPTUpJVElETENvbnZlcnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEUzQTc3NjY1MURDODVEMjIwMEI2OTBEOCAvKiBET01KSVRJRExD
b252ZXJ0LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
IAkJRTNBNzc2NjgxREM4NUQyODAwQjY5MEQ4IC8qIERPTUpJVElETFR5cGUuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUzQTc3NjY2MURDODVEMjIwMEI2
OTBEOCAvKiBET01KSVRJRExUeXBlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKIAkJRTNCMkYwRUQxRDdGNENBMzAwQjBDOUQxIC8qIExvYWRhYmxlU2Ny
aXB0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFM0Iy
RjBFNzFEN0YzNUVDMDBCMEM5RDEgLyogTG9hZGFibGVTY3JpcHQuaCAqLzsgc2V0dGluZ3MgPSB7
QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtMTUwNzAsNiArMTUwNzIsOCBAQAog
CQlFMzg4Mzg5NDFCQUQxNDVGMDBENjJFRTMgLyogU2NyaXB0TW9kdWxlTG9hZGVyLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNjcmlwdE1vZHVsZUxvYWRlci5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUzODgzODk1MUJBRDE0NUYwMEQ2MkVFMyAv
KiBTY3JpcHRNb2R1bGVMb2FkZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
U2NyaXB0TW9kdWxlTG9hZGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUzOEQw
NjA5MUY4RTgxMTkwMDY0OUNGMiAvKiBNb2R1bGVGZXRjaFBhcmFtZXRlcnMuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTW9kdWxlRmV0Y2hQYXJhbWV0ZXJzLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCUUzOTYyOEJEMjM5NTcyOEUwMDY1OEVDRCAvKiBTaGFyZWRE
ZXZpY2VPcmllbnRhdGlvbkNsaWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBTaGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQlFMzk2MjhDMDIzOTU3NDMwMDA2NThFQ0QgLyogV2ViQ29yZU1vdGlvbk1hbmFnZXJD
bGllbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViQ29yZU1vdGlvbk1h
bmFnZXJDbGllbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTM5NzVCNzYxRUM5
QUYzOTAwODQ3NzE3IC8qIEpTRG9jdW1lbnRGcmFnbWVudERPTUpJVC5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0RvY3VtZW50RnJhZ21lbnRET01KSVQuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFMzk3NUI3NzFFQzlBRjM5MDA4NDc3MTcgLyog
SlNFbGVtZW50RE9NSklULmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IEpTRWxlbWVudERPTUpJVC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUzOTc1
Qjc4MUVDOUFGMzkwMDg0NzcxNyAvKiBKU0V2ZW50RE9NSklULmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTRXZlbnRET01KSVQuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwpAQCAtMjI4MTksNiArMjI4MjMsNyBAQAogCQkJCUU0NTM5MDM0MEVBRkQ2Mzcw
MDM2OTVDOCAvKiBTY3JvbGxWaWV3SU9TLm1tICovLAogCQkJCUJFQTgwN0M2MEY3MTRBMDMwMDUy
NDE5OSAvKiBTZWxlY3Rpb25SZWN0LmNwcCAqLywKIAkJCQlCRUE4MDdDNzBGNzE0QTAzMDA1MjQx
OTkgLyogU2VsZWN0aW9uUmVjdC5oICovLAorCQkJCUUzOTYyOEJEMjM5NTcyOEUwMDY1OEVDRCAv
KiBTaGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudC5oICovLAogCQkJCTBGMDNDMDczMTg4NDY5
NUUwMEE1RjhDQSAvKiBTeXN0ZW1NZW1vcnkuaCAqLywKIAkJCQlFNDUzOTBBRDBFQUZGNEI1MDAz
Njk1QzggLyogU3lzdGVtTWVtb3J5SU9TLmNwcCAqLywKIAkJCQk0NEM5OTE5RDBGM0QyMTBFMDA1
ODY2NzAgLyogVGhlbWVJT1MuaCAqLywKQEAgLTIyODM1LDYgKzIyODQwLDcgQEAKIAkJCQkxRjM2
RUE5QjFFMjFCQTE3MDA2MjFFMjUgLyogV2ViQmFja2dyb3VuZFRhc2tDb250cm9sbGVyLm1tICov
LAogCQkJCTMxNDAzNzk3MTI0QkVBN0YwMEFGNDBFNCAvKiBXZWJDb3JlTW90aW9uTWFuYWdlci5o
ICovLAogCQkJCTMxNDAzNzk4MTI0QkVBN0YwMEFGNDBFNCAvKiBXZWJDb3JlTW90aW9uTWFuYWdl
ci5tbSAqLywKKwkJCQlFMzk2MjhDMDIzOTU3NDMwMDA2NThFQ0QgLyogV2ViQ29yZU1vdGlvbk1h
bmFnZXJDbGllbnQuaCAqLywKIAkJCQlGRTBEODRFODEwNDg0MzQ4MDAxQTE3OUUgLyogV2ViRXZl
bnQuaCAqLywKIAkJCQlGRTBEODRFQTEwNDg0MzZFMDAxQTE3OUUgLyogV2ViRXZlbnQubW0gKi8s
CiAJCQkJRjQ4MjIzMEYxRTM4NjlCODAwNjZGQzc5IC8qIFdlYkl0ZW1Qcm92aWRlclBhc3RlYm9h
cmQuaCAqLywKQEAgLTI5NTM1LDYgKzI5NTQxLDcgQEAKIAkJCQlGNDdBMDlEMTIwQTkzQTk3MDAy
NDBGQUUgLyogRGlzYWJsZWRBZGFwdGF0aW9ucy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJN0VEQUFG
QzkxOUEyQ0NEQzAwMzRERkQxIC8qIERpc2tDYWNoZU1vbml0b3JDb2NvYS5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJMTE5OUZBNUIyMDhFM0M3RjAwMjM1OENDIC8qIERpc3BsYXlCb3guaCBpbiBIZWFk
ZXJzICovLAorCQkJCUU0NTFDNjM0MjM5NDA1OEYwMDk5MzE5MCAvKiBEaXNwbGF5SW5saW5lQ29u
dGVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZFNUZCRDMxQzNERDUxRTAwMDdBMkNBIC8qIERp
c3BsYXlMaXN0LmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkU1RkJENTFDM0RENTFFMDAwN0EyQ0Eg
LyogRGlzcGxheUxpc3RJdGVtcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZFNUZCRDcxQzNERDUx
RTAwMDdBMkNBIC8qIERpc3BsYXlMaXN0UmVjb3JkZXIuaCBpbiBIZWFkZXJzICovLApAQCAtMzAw
NDgsNyArMzAwNTUsNiBAQAogCQkJCUE4NzFEQjJCMEExNTBCRDYwMEIxMkE2OCAvKiBIVE1MVGFi
bGVDYXB0aW9uRWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTg3MURCMkEwQTE1MEJENjAw
QjEyQTY4IC8qIEhUTUxUYWJsZUNlbGxFbGVtZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlBODcx
REIyRjBBMTUwQkQ2MDBCMTJBNjggLyogSFRNTFRhYmxlQ29sRWxlbWVudC5oIGluIEhlYWRlcnMg
Ki8sCi0JCQkJRTQ1MUM2MjgyMzkyOTNFQzAwOTkzMTkwIC8qIExpbmVMYXlvdXRUcmF2ZXJzYWxE
aXNwbGF5UnVuUGF0aC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTg3MURCMjcwQTE1MEJENjAwQjEy
QTY4IC8qIEhUTUxUYWJsZUVsZW1lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUE4NzFEQjJDMEEx
NTBCRDYwMEIxMkE2OCAvKiBIVE1MVGFibGVQYXJ0RWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJQTg3MURCMzEwQTE1MEJENjAwQjEyQTY4IC8qIEhUTUxUYWJsZVJvd0VsZW1lbnQuaCBpbiBI
ZWFkZXJzICovLApAQCAtMzAxNjAsNyArMzAxNjYsNiBAQAogCQkJCUJDN0Y0NEE4MEI5RTMyNEUw
MEE5RDA4MSAvKiBJbWFnZU9ic2VydmVyLmggaW4gSGVhZGVycyAqLywKIAkJCQkyRDVBNTkzMTE1
MjUyNUQwMDAzNkVFNTEgLyogSW1hZ2VPcmllbnRhdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
NzIyODNGMEUyMzBCMjY4QzAwRjVEODI4IC8qIEltYWdlUGFpbnRpbmdPcHRpb25zLmggaW4gSGVh
ZGVycyAqLywKLQkJCQlFNDUxQzYzMjIzOTQwMzFBMDA5OTMxOTAgLyogTWFyZ2luVHlwZXMuaCBp
biBIZWFkZXJzICovLAogCQkJCUI1MUEyRjNGMTdEN0QzQUUwMDcyNTE3QSAvKiBJbWFnZVF1YWxp
dHlDb250cm9sbGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk0OTI5MUU0QjEzNDE3MkM4MDBFNzUz
REUgLyogSW1hZ2VSZW5kZXJpbmdNb2RlLmggaW4gSGVhZGVycyAqLywKIAkJCQlDRDI3QUU1MDIy
QTk4Njg3MDA5NDdGRjkgLyogSW1hZ2VSb3RhdGlvblNlc3Npb25WVC5oIGluIEhlYWRlcnMgKi8s
CkBAIC0zMDU1Myw3ICszMDU1OCw2IEBACiAJCQkJODM3MDU2OTAxRjUwOTE1QzAwRDkzNDI1IC8q
IEpTRmlsZVN5c3RlbUVudHJ5Q2FsbGJhY2suaCBpbiBIZWFkZXJzICovLAogCQkJCTgzM0I5RTM2
MUY1MDhEODUwMEUwRTQyOCAvKiBKU0ZpbGVTeXN0ZW1GaWxlRW50cnkuaCBpbiBIZWFkZXJzICov
LAogCQkJCTcxMkJFNDg4MUZFODY4NkEwMDIwMzFDQyAvKiBKU0ZpbGxNb2RlLmggaW4gSGVhZGVy
cyAqLywKLQkJCQlFNDM0M0QyNTIzOTI3NzkwMDBFQkJCNjYgLyogTGluZUxheW91dFRyYXZlcnNh
bENvbXBsZXhQYXRoLmggaW4gSGVhZGVycyAqLywKIAkJCQlCNkQ5RDI3QjE0RUFDMDg2MDA5MEQ3
NUUgLyogSlNGb2N1c0V2ZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlDMjgwODMzRjFDNkRDMjZG
MDAxNDUxQjYgLyogSlNGb250RmFjZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUMyNEVFQTkxQzcy
QTdCNDAwODBGOEZDIC8qIEpTRm9udEZhY2VTZXQuaCBpbiBIZWFkZXJzICovLApAQCAtMzExNzcs
NiArMzExODEsNyBAQAogCQkJCTZGN0NBM0M2MjA4QzI5NTcwMDJGMjlBQiAvKiBMYXlvdXRTdGF0
ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMTEzMTBDRjIyMEJBNEEzMjAwNjVBOEQwIC8qIExheW91
dFRyZWVCdWlsZGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQkxNDFEQzA0ODE2NDgzNDhGMDAzNzFF
NUEgLyogTGF5b3V0VW5pdC5oIGluIEhlYWRlcnMgKi8sCisJCQkJRTQ1MUM2MzEyMzk0MDI3OTAw
OTkzMTkwIC8qIExheW91dFVuaXRzLmggaW4gSGVhZGVycyAqLywKIAkJCQlDREU4QjVFRDFBNjk3
NzczMDBCNEI2NkEgLyogTGVnYWN5Q0RNUHJpdmF0ZUNsZWFyS2V5LmggaW4gSGVhZGVycyAqLywK
IAkJCQlDREY0QjcxMjFFMDA4N0FFMDBFMjM1QTIgLyogTGVnYWN5Q0RNU2Vzc2lvbi5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJQ0RFOEI1RjExQTY5Nzc4QjAwQjRCNjZBIC8qIExlZ2FjeUNETVNlc3Np
b25DbGVhcktleS5oIGluIEhlYWRlcnMgKi8sCkBAIC0zMTIwOCw2ICszMTIxMyw5IEBACiAJCQkJ
NkYyNkVCNDgyMzQwMDRBNTAwNjkwNkUyIC8qIExpbmVMYXlvdXRDb250ZXh0LmggaW4gSGVhZGVy
cyAqLywKIAkJCQlGRkVGQUIyQTE4MzgwREEwMDA1MTQ1MzQgLyogTGluZUxheW91dFN0YXRlLmgg
aW4gSGVhZGVycyAqLywKIAkJCQlFNDg0QTMzRTIzMDU1MzI1MDA5QURFNkEgLyogTGluZUxheW91
dFRyYXZlcnNhbC5oIGluIEhlYWRlcnMgKi8sCisJCQkJRTQzNDNEMjUyMzkyNzc5MDAwRUJCQjY2
IC8qIExpbmVMYXlvdXRUcmF2ZXJzYWxDb21wbGV4UGF0aC5oIGluIEhlYWRlcnMgKi8sCisJCQkJ
RTQ1MUM2MjgyMzkyOTNFQzAwOTkzMTkwIC8qIExpbmVMYXlvdXRUcmF2ZXJzYWxEaXNwbGF5UnVu
UGF0aC5oIGluIEhlYWRlcnMgKi8sCisJCQkJRTQzNDNEMjMyMzkyNzc4NDAwRUJCQjY2IC8qIExp
bmVMYXlvdXRUcmF2ZXJzYWxTaW1wbGVQYXRoLmggaW4gSGVhZGVycyAqLywKIAkJCQlGRkRCQzA0
NzE4M0QyN0I3MDA0MDcxMDkgLyogTGluZVdpZHRoLmggaW4gSGVhZGVycyAqLywKIAkJCQlDQkE5
REMwQjFERjQ0REY0MDAwNTY3NUMgLyogTGlua0hlYWRlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
NTE0M0IyNjMxREREMTUyMDAwMTRGQUM2IC8qIExpbmtJY29uLmggaW4gSGVhZGVycyAqLywKQEAg
LTMxMjQxLDYgKzMxMjQ5LDcgQEAKIAkJCQk0NkVGQUYxMjFFNUZCOUYxMDBFN0YzNEIgLyogTG93
UG93ZXJNb2RlTm90aWZpZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTdBRTZDOTNDMUJFMEM2MDEw
MEUxOUUwMyAvKiBNYWluVGhyZWFkU2hhcmVkVGltZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTFB
OEY2QkM2MERCNTVDREMwMDFEQjc5NCAvKiBNYW5pZmVzdFBhcnNlci5oIGluIEhlYWRlcnMgKi8s
CisJCQkJRTQ1MUM2MzIyMzk0MDMxQTAwOTkzMTkwIC8qIE1hcmdpblR5cGVzLmggaW4gSGVhZGVy
cyAqLywKIAkJCQlDRTE4NjY0NTFGNzJFNUI0MDBBMENBQjYgLyogTWFya2VkVGV4dC5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJOTMzMDlERjgwOTlFNjQ5MjAwNTZFNTgxIC8qIG1hcmt1cC5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJOTcyOEMzMTQxMjY4RTQzOTAwNDFFODlCIC8qIE1hcmt1cEFjY3VtdWxh
dG9yLmggaW4gSGVhZGVycyAqLywKQEAgLTMxNzAxLDcgKzMxNzEwLDYgQEAKIAkJCQk1N0RDRUQ3
NDIxNDMwNUYwMDAxNkI4NDcgLyogUHVibGljS2V5Q3JlZGVudGlhbERhdGEuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTU3MzAzQkVGMjAwOTgwQzYwMDM1NTk2NSAvKiBQdWJsaWNLZXlDcmVkZW50aWFs
RGVzY3JpcHRvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTczMDNDMEEyMDA5OUJBRDAwMzU1OTY1
IC8qIFB1YmxpY0tleUNyZWRlbnRpYWxSZXF1ZXN0T3B0aW9ucy5oIGluIEhlYWRlcnMgKi8sCi0J
CQkJRTQzNDNEMjMyMzkyNzc4NDAwRUJCQjY2IC8qIExpbmVMYXlvdXRUcmF2ZXJzYWxTaW1wbGVQ
YXRoLmggaW4gSGVhZGVycyAqLywKIAkJCQk1NzMwM0JFQjIwMDk3RjQwMDAzNTU5NjUgLyogUHVi
bGljS2V5Q3JlZGVudGlhbFR5cGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTAwODFGRjAwMTZCMEEy
RDMwMDhBQUE3QSAvKiBQdWJsaWNTdWZmaXguaCBpbiBIZWFkZXJzICovLAogCQkJCTEwRkIwODRC
MTRFMTVDN0UwMEEzREI5OCAvKiBQdWJsaWNVUkxNYW5hZ2VyLmggaW4gSGVhZGVycyAqLywKQEAg
LTMyMTU2LDYgKzMyMTY0LDcgQEAKIAkJCQlGRDFBRjE1MDE2NTZGMTUxMDBDNkQ0RjcgLyogU2hh
cGVWYWx1ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUQ5RjBGQzEyMTIyMDI5QjAwNUQ4RkQ0IC8q
IFNoYXJlRGF0YS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUE0QTk1NEUwQjRFRENDQjAwMkQ4QzND
IC8qIFNoYXJlZEJ1ZmZlci5oIGluIEhlYWRlcnMgKi8sCisJCQkJRTM5NjI4QkYyMzk1NzI4RjAw
NjU4RUNEIC8qIFNoYXJlZERldmljZU9yaWVudGF0aW9uQ2xpZW50LmggaW4gSGVhZGVycyAqLywK
IAkJCQk4MzRERkFEMDFGN0RBRTVEMDBDMjcyNUIgLyogU2hhcmVkU3RyaW5nSGFzaC5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJOTMzMDlFQTMwOTlFQjc4QzAwNTZFNTgxIC8qIFNoYXJlZFRpbWVyLmgg
aW4gSGVhZGVycyAqLywKIAkJCQk4MzYyRThDMTIwQ0VGOUNCMDAyNDU4ODYgLyogU2hvdWxkVHJl
YXRBc0NvbnRpbnVpbmdMb2FkLmggaW4gSGVhZGVycyAqLywKQEAgLTMyNDk2LDcgKzMyNTA1LDYg
QEAKIAkJCQlCMjIyN0FEQTBEMDBCRjIyMDA3MUI3ODIgLyogU1ZHVHJhbnNmb3JtYWJsZS5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJQjIyMjdBREQwRDAwQkYyMjAwNzFCNzgyIC8qIFNWR1RyYW5zZm9y
bURpc3RhbmNlLmggaW4gSGVhZGVycyAqLywKIAkJCQlCMjIyN0FERjBEMDBCRjIyMDA3MUI3ODIg
LyogU1ZHVHJhbnNmb3JtTGlzdC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJRTQ1MUM2MzEyMzk0MDI3
OTAwOTkzMTkwIC8qIExheW91dFVuaXRzLmggaW4gSGVhZGVycyAqLywKIAkJCQk3Q0U1OEQ1ODFE
RDdEOTZEMDAxMjg1NTIgLyogU1ZHVHJhbnNmb3JtVmFsdWUuaCBpbiBIZWFkZXJzICovLAogCQkJ
CUIyMjI3QUUyMEQwMEJGMjIwMDcxQjc4MiAvKiBTVkdUUmVmRWxlbWVudC5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJQjIyMjdBRTUwRDAwQkYyMjAwNzFCNzgyIC8qIFNWR1RTcGFuRWxlbWVudC5oIGlu
IEhlYWRlcnMgKi8sCkBAIC0zMjc3Nyw2ICszMjc4NSw3IEBACiAJCQkJQkM1M0Q5MTExMTQzMTBD
QzAwMEQ4MTdFIC8qIFdlYkNvcmVKU0NsaWVudERhdGEuaCBpbiBIZWFkZXJzICovLAogCQkJCTkz
RjE5OUJCMDgyNDVFNTkwMDFFOUFCQyAvKiBXZWJDb3JlS2V5Ym9hcmRVSU1vZGUuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTMxNDAzNzlCMTI0QkVBN0YwMEFGNDBFNCAvKiBXZWJDb3JlTW90aW9uTWFu
YWdlci5oIGluIEhlYWRlcnMgKi8sCisJCQkJRTM5NjI4QzEyMzk1NzQzMTAwNjU4RUNEIC8qIFdl
YkNvcmVNb3Rpb25NYW5hZ2VyQ2xpZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlDREM5NzlGNTFD
NDk4QzA5MDBEQjUwRDQgLyogV2ViQ29yZU5TRXJyb3JFeHRyYXMuaCBpbiBIZWFkZXJzICovLAog
CQkJCUY0RTU3RUUxMjEzRjQzNEEwMDRFQTk4RSAvKiBXZWJDb3JlTlNGb250TWFuYWdlckV4dHJh
cy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQzVCNEMyNEQxNTA5MjM2QzAwQTZFRjM3IC8qIFdlYkNv
cmVOU1VSTEV4dHJhcy5oIGluIEhlYWRlcnMgKi8sCkBAIC0zMjgyNiw3ICszMjgzNSw2IEBACiAJ
CQkJNDlDN0I5RTAxMDQyRDMyRjAwMDlENDQ3IC8qIFdlYkdMUmVuZGVyaW5nQ29udGV4dC5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJRDNGM0QzNkExQTY5QjdCOTAwNTlGQzJCIC8qIFdlYkdMUmVuZGVy
aW5nQ29udGV4dEJhc2UuaCBpbiBIZWFkZXJzICovLAogCQkJCTZGOTk1QTIyMUE3MDc4QjEwMEE3
MzVGNCAvKiBXZWJHTFNhbXBsZXIuaCBpbiBIZWFkZXJzICovLAotCQkJCUU0NTFDNjM0MjM5NDA1
OEYwMDk5MzE5MCAvKiBEaXNwbGF5SW5saW5lQ29udGVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
NDlDN0I5RTMxMDQyRDMyRjAwMDlENDQ3IC8qIFdlYkdMU2hhZGVyLmggaW4gSGVhZGVycyAqLywK
IAkJCQlBMDdEMzM1ODE1MkI2MzJEMDAxQjYzOTMgLyogV2ViR0xTaGFkZXJQcmVjaXNpb25Gb3Jt
YXQuaCBpbiBIZWFkZXJzICovLAogCQkJCTAxRDNDRjg3MTRCRDBBMzAwMEZFOTk3MCAvKiBXZWJH
TFNoYXJlZE9iamVjdC5oIGluIEhlYWRlcnMgKi8sCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9kb20v
RGV2aWNlT3JpZW50YXRpb25DbGllbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9k
b20vRGV2aWNlT3JpZW50YXRpb25DbGllbnQuaAkocmV2aXNpb24gMjUyOTgyKQorKysgU291cmNl
L1dlYkNvcmUvZG9tL0RldmljZU9yaWVudGF0aW9uQ2xpZW50LmgJKHdvcmtpbmcgY29weSkKQEAg
LTI4LDEyICsyOCwxNCBAQAogCiAjaW5jbHVkZSAiRGV2aWNlQ2xpZW50LmgiCiAjaW5jbHVkZSA8
d3RmL05vbmNvcHlhYmxlLmg+CisjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgogCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKIGNsYXNzIERldmljZU9yaWVudGF0aW9uQ29udHJvbGxlcjsKIGNsYXNzIERl
dmljZU9yaWVudGF0aW9uRGF0YTsKIGNsYXNzIFBhZ2U7CitjbGFzcyBTaGFyZWREZXZpY2VPcmll
bnRhdGlvbkNsaWVudDsKIAogY2xhc3MgRGV2aWNlT3JpZW50YXRpb25DbGllbnQgOiBwdWJsaWMg
RGV2aWNlQ2xpZW50IHsKICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShEZXZpY2VPcmllbnRhdGlv
bkNsaWVudCk7CkBAIC00Myw2ICs0NSwxMCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHNl
dENvbnRyb2xsZXIoRGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyKikgPSAwOwogICAgIHZpcnR1
YWwgRGV2aWNlT3JpZW50YXRpb25EYXRhKiBsYXN0T3JpZW50YXRpb24oKSBjb25zdCA9IDA7CiAg
ICAgdmlydHVhbCB2b2lkIGRldmljZU9yaWVudGF0aW9uQ29udHJvbGxlckRlc3Ryb3llZCgpID0g
MDsKKworI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCisgICAgdmlydHVhbCB2b2lkIHNldFNoYXJl
ZERldmljZU9yaWVudGF0aW9uQ2xpZW50KFJlZlB0cjxTaGFyZWREZXZpY2VPcmllbnRhdGlvbkNs
aWVudD4pIHsgfTsKKyNlbmRpZgogfTsKIAogV0VCQ09SRV9FWFBPUlQgdm9pZCBwcm92aWRlRGV2
aWNlT3JpZW50YXRpb25UbyhQYWdlJiwgRGV2aWNlT3JpZW50YXRpb25DbGllbnQmKTsKSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvZG9tL0RvY3VtZW50LmNwcAkocmV2aXNpb24gMjUyOTgyKQorKysgU291cmNlL1dlYkNv
cmUvZG9tL0RvY3VtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNjA3LDkgKzYwNywxNSBAQCBE
b2N1bWVudDo6RG9jdW1lbnQoRnJhbWUqIGZyYW1lLCBjb25zdCBVCiAgICAgICAgIG5vZGVMaXN0
QW5kQ29sbGVjdGlvbkNvdW50ID0gMDsKIAogICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6
YWRkRXZlbnRMaXN0ZW5lcnNUb05vZGUoKnRoaXMpOworICAgIAogI2lmIEVOQUJMRShNRURJQV9T
VFJFQU0pCiAgICAgbV9zZXR0aW5ncy0+c2V0TGVnYWN5R2V0VXNlck1lZGlhRW5hYmxlZChxdWly
a3MoKS5zaG91bGRFbmFibGVMZWdhY3lHZXRVc2VyTWVkaWEoKSk7CiAjZW5kaWYKKworI2lmIFBM
QVRGT1JNKElPU19GQU1JTFkpICYmIEVOQUJMRShERVZJQ0VfT1JJRU5UQVRJT04pCisgICAgaWYg
KHBhZ2UoKSAmJiBwYWdlKCktPnNoYXJlZERldmljZU9yaWVudGF0aW9uQ2xpZW50KCkpCisgICAg
ICAgIG1fZGV2aWNlT3JpZW50YXRpb25DbGllbnQtPnNldFNoYXJlZERldmljZU9yaWVudGF0aW9u
Q2xpZW50KHBhZ2UoKS0+c2hhcmVkRGV2aWNlT3JpZW50YXRpb25DbGllbnQoKSk7CisjZW5kaWYK
IH0KIAogUmVmPERvY3VtZW50PiBEb2N1bWVudDo6Y3JlYXRlKERvY3VtZW50JiBjb250ZXh0RG9j
dW1lbnQpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAJKHJldmlzaW9uIDI1Mjk4MikKKysrIFNvdXJj
ZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI4OSw2ICsyODksOSBA
QCBQYWdlOjpQYWdlKFBhZ2VDb25maWd1cmF0aW9uJiYgcGFnZUNvbmZpCiAjaWYgRU5BQkxFKEFQ
UExJQ0FUSU9OX01BTklGRVNUKQogICAgICwgbV9hcHBsaWNhdGlvbk1hbmlmZXN0KHBhZ2VDb25m
aWd1cmF0aW9uLmFwcGxpY2F0aW9uTWFuaWZlc3QpCiAjZW5kaWYKKyNpZiBFTkFCTEUoREVWSUNF
X09SSUVOVEFUSU9OKSAmJiBQTEFURk9STShJT1NfRkFNSUxZKQorICAgICwgbV9zaGFyZWREZXZp
Y2VPcmllbnRhdGlvbkNsaWVudChXVEZNb3ZlKHBhZ2VDb25maWd1cmF0aW9uLnNoYXJlZERldmlj
ZU9yaWVudGF0aW9uQ2xpZW50KSkKKyNlbmRpZgogewogICAgIHVwZGF0ZVRpbWVyVGhyb3R0bGlu
Z1N0YXRlKCk7CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oCShyZXZpc2lvbiAyNTI5ODIpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9wYWdlL1BhZ2UuaAkod29ya2luZyBjb3B5KQpAQCAtNjksNiArNjksMTAgQEAK
ICNpbmNsdWRlICJNZWRpYVBsYXliYWNrVGFyZ2V0Q29udGV4dC5oIgogI2VuZGlmCiAKKyNpZiBF
TkFCTEUoREVWSUNFX09SSUVOVEFUSU9OKSAmJiBQTEFURk9STShJT1NfRkFNSUxZKQorI2luY2x1
ZGUgIlNoYXJlZERldmljZU9yaWVudGF0aW9uQ2xpZW50LmgiCisjZW5kaWYKKwogbmFtZXNwYWNl
IEpTQyB7CiBjbGFzcyBEZWJ1Z2dlcjsKIH0KQEAgLTcxOSw2ICs3MjMsMTAgQEAgcHVibGljOgog
CiAgICAgV0VCQ09SRV9FWFBPUlQgVmVjdG9yPFJlZjxFbGVtZW50Pj4gZWRpdGFibGVFbGVtZW50
c0luUmVjdChjb25zdCBGbG9hdFJlY3QmKSBjb25zdDsKIAorI2lmIEVOQUJMRShERVZJQ0VfT1JJ
RU5UQVRJT04pICYmIFBMQVRGT1JNKElPU19GQU1JTFkpCisgICAgUmVmUHRyPFNoYXJlZERldmlj
ZU9yaWVudGF0aW9uQ2xpZW50PiBzaGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudCgpIGNvbnN0
IHsgcmV0dXJuIG1fc2hhcmVkRGV2aWNlT3JpZW50YXRpb25DbGllbnQ7IH0KKyNlbmRpZgorCiBw
cml2YXRlOgogICAgIHN0cnVjdCBOYXZpZ2F0aW9uIHsKICAgICAgICAgUmVnaXN0cmFibGVEb21h
aW4gZG9tYWluOwpAQCAtOTkwLDYgKzk5OCwxMCBAQCBwcml2YXRlOgogCiAgICAgT3B0aW9uYWw8
Vmlld3BvcnRBcmd1bWVudHM+IG1fb3ZlcnJpZGVWaWV3cG9ydEFyZ3VtZW50czsKIAorI2lmIEVO
QUJMRShERVZJQ0VfT1JJRU5UQVRJT04pICYmIFBMQVRGT1JNKElPU19GQU1JTFkpCisgICAgUmVm
UHRyPFNoYXJlZERldmljZU9yaWVudGF0aW9uQ2xpZW50PiBtX3NoYXJlZERldmljZU9yaWVudGF0
aW9uQ2xpZW50OworI2VuZGlmCisKICAgICBib29sIG1fc2hvdWxkRW5hYmxlSUNFQ2FuZGlkYXRl
RmlsdGVyaW5nQnlEZWZhdWx0IHsgdHJ1ZSB9OwogICAgIGJvb2wgbV9tZWRpYVBsYXliYWNrSXNT
dXNwZW5kZWQgeyBmYWxzZSB9OwogICAgIGJvb2wgbV9tZWRpYUJ1ZmZlcmluZ0lzU3VzcGVuZGVk
IHsgZmFsc2UgfTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZUNvbmZpZ3VyYXRpb24u
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VDb25maWd1cmF0aW9uLmgJ
KHJldmlzaW9uIDI1Mjk4MikKKysrIFNvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZUNvbmZpZ3VyYXRp
b24uaAkod29ya2luZyBjb3B5KQpAQCAtNTcsNiArNTcsNyBAQCBjbGFzcyBQZXJmb3JtYW5jZUxv
Z2dpbmdDbGllbnQ7CiBjbGFzcyBQbHVnSW5DbGllbnQ7CiBjbGFzcyBQbHVnaW5JbmZvUHJvdmlk
ZXI7CiBjbGFzcyBQcm9ncmVzc1RyYWNrZXJDbGllbnQ7CitjbGFzcyBTaGFyZWREZXZpY2VPcmll
bnRhdGlvbkNsaWVudDsKIGNsYXNzIFNvY2tldFByb3ZpZGVyOwogY2xhc3MgU3RvcmFnZU5hbWVz
cGFjZVByb3ZpZGVyOwogY2xhc3MgVXNlckNvbnRlbnRQcm92aWRlcjsKQEAgLTExOCw2ICsxMTks
MTAgQEAgcHVibGljOgogICAgIFJlZlB0cjxTdG9yYWdlTmFtZXNwYWNlUHJvdmlkZXI+IHN0b3Jh
Z2VOYW1lc3BhY2VQcm92aWRlcjsKICAgICBSZWZQdHI8VXNlckNvbnRlbnRQcm92aWRlcj4gdXNl
ckNvbnRlbnRQcm92aWRlcjsKICAgICBSZWZQdHI8VmlzaXRlZExpbmtTdG9yZT4gdmlzaXRlZExp
bmtTdG9yZTsKKyAgICAKKyNpZiBFTkFCTEUoREVWSUNFX09SSUVOVEFUSU9OKSAmJiBQTEFURk9S
TShJT1NfRkFNSUxZKQorICAgIFJlZlB0cjxTaGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudD4g
c2hhcmVkRGV2aWNlT3JpZW50YXRpb25DbGllbnQ7CisjZW5kaWYKIH07CiAKIH0KSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9EZXZpY2VPcmllbnRhdGlvbkNsaWVudElPUy5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9EZXZpY2VPcmllbnRhdGlv
bkNsaWVudElPUy5oCShyZXZpc2lvbiAyNTI5ODIpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9pb3MvRGV2aWNlT3JpZW50YXRpb25DbGllbnRJT1MuaAkod29ya2luZyBjb3B5KQpAQCAtMzAs
MTMgKzMwLDE1IEBACiAjaW5jbHVkZSAiRGV2aWNlT3JpZW50YXRpb25DbGllbnQuaCIKICNpbmNs
dWRlICJEZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJEZXZpY2VPcmll
bnRhdGlvbkRhdGEuaCIKKyNpbmNsdWRlICJTaGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudC5o
IgorI2luY2x1ZGUgIldlYkNvcmVNb3Rpb25NYW5hZ2VyQ2xpZW50LmgiCiAjaW5jbHVkZSA8d3Rm
L1JlZlB0ci5oPgogCiBPQkpDX0NMQVNTIFdlYkNvcmVNb3Rpb25NYW5hZ2VyOwogCiBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKLWNsYXNzIERldmljZU9yaWVudGF0aW9uQ2xpZW50SU9TIDogcHVibGlj
IERldmljZU9yaWVudGF0aW9uQ2xpZW50IHsKK2NsYXNzIERldmljZU9yaWVudGF0aW9uQ2xpZW50
SU9TIDogcHVibGljIERldmljZU9yaWVudGF0aW9uQ2xpZW50LCBwdWJsaWMgV2ViQ29yZU1vdGlv
bk1hbmFnZXJDbGllbnQgewogcHVibGljOgogICAgIERldmljZU9yaWVudGF0aW9uQ2xpZW50SU9T
KCk7CiAgICAgfkRldmljZU9yaWVudGF0aW9uQ2xpZW50SU9TKCkgb3ZlcnJpZGU7CkBAIC00Niwx
MiArNDgsMTUgQEAgcHVibGljOgogICAgIERldmljZU9yaWVudGF0aW9uRGF0YSogbGFzdE9yaWVu
dGF0aW9uKCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgdm9pZCBkZXZpY2VPcmllbnRhdGlvbkNvbnRy
b2xsZXJEZXN0cm95ZWQoKSBvdmVycmlkZTsKIAotICAgIHZvaWQgb3JpZW50YXRpb25DaGFuZ2Vk
KGRvdWJsZSwgZG91YmxlLCBkb3VibGUsIGRvdWJsZSwgZG91YmxlKTsKKyAgICB2b2lkIG9yaWVu
dGF0aW9uQ2hhbmdlZChkb3VibGUsIGRvdWJsZSwgZG91YmxlLCBkb3VibGUsIGRvdWJsZSkgb3Zl
cnJpZGU7CiAKKyAgICB2b2lkIHNldFNoYXJlZERldmljZU9yaWVudGF0aW9uQ2xpZW50KFJlZlB0
cjxTaGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudD4gc2hhcmVkRGV2aWNlT3JpZW50YXRpb25D
bGllbnQpIG92ZXJyaWRlIHsgbV9zaGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudCA9IHNoYXJl
ZERldmljZU9yaWVudGF0aW9uQ2xpZW50OyB9CisgICAgCiBwcml2YXRlOgogICAgIFdlYkNvcmVN
b3Rpb25NYW5hZ2VyKiBtX21vdGlvbk1hbmFnZXI7CiAgICAgRGV2aWNlT3JpZW50YXRpb25Db250
cm9sbGVyKiBtX2NvbnRyb2xsZXI7CiAgICAgUmVmUHRyPERldmljZU9yaWVudGF0aW9uRGF0YT4g
bV9jdXJyZW50RGV2aWNlT3JpZW50YXRpb247CisgICAgUmVmUHRyPFNoYXJlZERldmljZU9yaWVu
dGF0aW9uQ2xpZW50PiBtX3NoYXJlZERldmljZU9yaWVudGF0aW9uQ2xpZW50OwogICAgIGJvb2wg
bV91cGRhdGluZzsKIH07CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9EZXZp
Y2VPcmllbnRhdGlvbkNsaWVudElPUy5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9pb3MvRGV2aWNlT3JpZW50YXRpb25DbGllbnRJT1MubW0JKHJldmlzaW9uIDI1Mjk4
MikKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9EZXZpY2VPcmllbnRhdGlvbkNsaWVu
dElPUy5tbQkod29ya2luZyBjb3B5KQpAQCAtNTMsNiArNTMsMTEgQEAgdm9pZCBEZXZpY2VPcmll
bnRhdGlvbkNsaWVudElPUzo6c3RhcnRVcAogewogICAgIG1fdXBkYXRpbmcgPSB0cnVlOwogCisg
ICAgaWYgKG1fc2hhcmVkRGV2aWNlT3JpZW50YXRpb25DbGllbnQpIHsKKyAgICAgICAgbV9zaGFy
ZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudC0+c3RhcnRVcGRhdGluZygqdGhpcyk7CisgICAgICAg
IHJldHVybjsKKyAgICB9CisKICAgICBpZiAoIW1fbW90aW9uTWFuYWdlcikKICAgICAgICAgbV9t
b3Rpb25NYW5hZ2VyID0gW1dlYkNvcmVNb3Rpb25NYW5hZ2VyIHNoYXJlZE1hbmFnZXJdOwogCkBA
IC02Myw2ICs2OCwxMSBAQCB2b2lkIERldmljZU9yaWVudGF0aW9uQ2xpZW50SU9TOjpzdG9wVXBk
CiB7CiAgICAgbV91cGRhdGluZyA9IGZhbHNlOwogCisgICAgaWYgKG1fc2hhcmVkRGV2aWNlT3Jp
ZW50YXRpb25DbGllbnQpIHsKKyAgICAgICAgbV9zaGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVu
dC0+c3RvcFVwZGF0aW5nKCp0aGlzKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKwogICAgIC8v
IFJlbW92ZSBvdXJzZWx2ZXMgYXMgdGhlIG9yaWVudGF0aW9uIGNsaWVudCBzbyB3ZSB3b24ndCBn
ZXQgdXBkYXRlcy4KICAgICBbbV9tb3Rpb25NYW5hZ2VyIHJlbW92ZU9yaWVudGF0aW9uQ2xpZW50
OnRoaXNdOwogfQpAQCAtNzQsNiArODQsMTEgQEAgRGV2aWNlT3JpZW50YXRpb25EYXRhKiBEZXZp
Y2VPcmllbnRhdGlvbgogCiB2b2lkIERldmljZU9yaWVudGF0aW9uQ2xpZW50SU9TOjpkZXZpY2VP
cmllbnRhdGlvbkNvbnRyb2xsZXJEZXN0cm95ZWQoKQogeworICAgIGlmIChtX3NoYXJlZERldmlj
ZU9yaWVudGF0aW9uQ2xpZW50KSB7CisgICAgICAgIG1fc2hhcmVkRGV2aWNlT3JpZW50YXRpb25D
bGllbnQtPnN0b3BVcGRhdGluZygqdGhpcyk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKICAg
ICBbbV9tb3Rpb25NYW5hZ2VyIHJlbW92ZU9yaWVudGF0aW9uQ2xpZW50OnRoaXNdOwogfQogICAg
IApJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1NoYXJlZERldmljZU9yaWVudGF0
aW9uQ2xpZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1No
YXJlZERldmljZU9yaWVudGF0aW9uQ2xpZW50LmgJKG5vbmV4aXN0ZW50KQorKysgU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vaW9zL1NoYXJlZERldmljZU9yaWVudGF0aW9uQ2xpZW50LmgJKHdvcmtp
bmcgY29weSkKQEAgLTAsMCArMSw0OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOSBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICogUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgYGBBUyBJUycnIEFORCBBTlkK
KyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJ
TiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUIE9XTkVSIE9SCisgKiBDT05UUklCVVRPUlMg
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwK
KyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBQ
TEFURk9STShJT1NfRkFNSUxZKSAmJiBFTkFCTEUoREVWSUNFX09SSUVOVEFUSU9OKQorCisjaW5j
bHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBX
ZWJDb3JlTW90aW9uTWFuYWdlckNsaWVudDsKKworY2xhc3MgU2hhcmVkRGV2aWNlT3JpZW50YXRp
b25DbGllbnQgOiBwdWJsaWMgUmVmQ291bnRlZDxTaGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVu
dD4geworcHVibGljOgorICAgIFNoYXJlZERldmljZU9yaWVudGF0aW9uQ2xpZW50KCkgeyB9Cisg
ICAgdmlydHVhbCB+U2hhcmVkRGV2aWNlT3JpZW50YXRpb25DbGllbnQoKSB7IH0KKworICAgIHZp
cnR1YWwgdm9pZCBzdGFydFVwZGF0aW5nKFdlYkNvcmVNb3Rpb25NYW5hZ2VyQ2xpZW50JikgeyB9
CisgICAgdmlydHVhbCB2b2lkIHN0b3BVcGRhdGluZyhXZWJDb3JlTW90aW9uTWFuYWdlckNsaWVu
dCYpIHsgfQorCisgICAgdmlydHVhbCB2b2lkIGRldmljZU9yaWVudGF0aW9uQ2hhbmdlZChkb3Vi
bGUsIGRvdWJsZSwgZG91YmxlLCBkb3VibGUsIGRvdWJsZSkgeyB9Cit9OworCit9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBQTEFURk9STShJT1NfRkFNSUxZKSAmJiBFTkFCTEUo
REVWSUNFX09SSUVOVEFUSU9OKQpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dl
YkNvcmVNb3Rpb25NYW5hZ2VyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vaW9zL1dlYkNvcmVNb3Rpb25NYW5hZ2VyLmgJKHJldmlzaW9uIDI1Mjk4MikKKysrIFNvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJDb3JlTW90aW9uTWFuYWdlci5oCSh3b3JraW5nIGNv
cHkpCkBAIC0yNSw4ICsyNSw2IEBACiAKICNwcmFnbWEgb25jZQogCi0jaW1wb3J0ICJEZXZpY2VN
b3Rpb25DbGllbnRJT1MuaCIKLSNpbXBvcnQgIkRldmljZU9yaWVudGF0aW9uQ2xpZW50SU9TLmgi
CiAjaW1wb3J0IDxDb3JlTG9jYXRpb24vQ29yZUxvY2F0aW9uLmg+CiAjaW1wb3J0IDx3dGYvSGFz
aENvdW50ZWRTZXQuaD4KIApAQCAtMzYsMTEgKzM0LDE2IEBACiAKIGNvbnN0IGZsb2F0IGtNb3Rp
b25VcGRhdGVJbnRlcnZhbCA9IDEuMGYgLyA2MC4wZjsKIAotQGludGVyZmFjZSBXZWJDb3JlTW90
aW9uTWFuYWdlciA6IE5TT2JqZWN0IHsKK25hbWVzcGFjZSBXZWJDb3JlIHsKK2NsYXNzIERldmlj
ZU1vdGlvbkNsaWVudElPUzsKK2NsYXNzIFdlYkNvcmVNb3Rpb25NYW5hZ2VyQ2xpZW50OworfTsK
KworV0VCQ09SRV9FWFBPUlQgQGludGVyZmFjZSBXZWJDb3JlTW90aW9uTWFuYWdlciA6IE5TT2Jq
ZWN0IHsKICAgICBDTU1vdGlvbk1hbmFnZXIqIG1fbW90aW9uTWFuYWdlcjsKICAgICBDTExvY2F0
aW9uTWFuYWdlciogbV9sb2NhdGlvbk1hbmFnZXI7CiAgICAgSGFzaFNldDxXZWJDb3JlOjpEZXZp
Y2VNb3Rpb25DbGllbnRJT1MqPiBtX2RldmljZU1vdGlvbkNsaWVudHM7Ci0gICAgSGFzaFNldDxX
ZWJDb3JlOjpEZXZpY2VPcmllbnRhdGlvbkNsaWVudElPUyo+IG1fZGV2aWNlT3JpZW50YXRpb25D
bGllbnRzOworICAgIEhhc2hTZXQ8V2ViQ29yZTo6V2ViQ29yZU1vdGlvbk1hbmFnZXJDbGllbnQq
PiBtX2RldmljZU9yaWVudGF0aW9uQ2xpZW50czsKICAgICBOU1RpbWVyKiBtX3VwZGF0ZVRpbWVy
OwogICAgIEJPT0wgbV9neXJvQXZhaWxhYmxlOwogICAgIEJPT0wgbV9oZWFkaW5nQXZhaWxhYmxl
OwpAQCAtNTAsOCArNTMsOCBAQCBjb25zdCBmbG9hdCBrTW90aW9uVXBkYXRlSW50ZXJ2YWwgPSAx
LjBmCiArIChXZWJDb3JlTW90aW9uTWFuYWdlciAqKXNoYXJlZE1hbmFnZXI7CiAtICh2b2lkKWFk
ZE1vdGlvbkNsaWVudDooV2ViQ29yZTo6RGV2aWNlTW90aW9uQ2xpZW50SU9TICopY2xpZW50Owog
LSAodm9pZClyZW1vdmVNb3Rpb25DbGllbnQ6KFdlYkNvcmU6OkRldmljZU1vdGlvbkNsaWVudElP
UyAqKWNsaWVudDsKLS0gKHZvaWQpYWRkT3JpZW50YXRpb25DbGllbnQ6KFdlYkNvcmU6OkRldmlj
ZU9yaWVudGF0aW9uQ2xpZW50SU9TICopY2xpZW50OwotLSAodm9pZClyZW1vdmVPcmllbnRhdGlv
bkNsaWVudDooV2ViQ29yZTo6RGV2aWNlT3JpZW50YXRpb25DbGllbnRJT1MgKiljbGllbnQ7Cist
ICh2b2lkKWFkZE9yaWVudGF0aW9uQ2xpZW50OihXZWJDb3JlOjpXZWJDb3JlTW90aW9uTWFuYWdl
ckNsaWVudCAqKWNsaWVudDsKKy0gKHZvaWQpcmVtb3ZlT3JpZW50YXRpb25DbGllbnQ6KFdlYkNv
cmU6OldlYkNvcmVNb3Rpb25NYW5hZ2VyQ2xpZW50ICopY2xpZW50OwogLSAoQk9PTClneXJvQXZh
aWxhYmxlOwogLSAoQk9PTCloZWFkaW5nQXZhaWxhYmxlOwogQGVuZApJbmRleDogU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vaW9zL1dlYkNvcmVNb3Rpb25NYW5hZ2VyLm1tCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJDb3JlTW90aW9uTWFuYWdlci5tbQkocmV2
aXNpb24gMjUyOTgyKQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dlYkNvcmVNb3Rp
b25NYW5hZ2VyLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0yOCw2ICsyOCw4IEBACiAKICNpZiBQTEFU
Rk9STShJT1NfRkFNSUxZKSAmJiBFTkFCTEUoREVWSUNFX09SSUVOVEFUSU9OKQogCisjaW1wb3J0
ICJEZXZpY2VNb3Rpb25DbGllbnRJT1MuaCIKKyNpbXBvcnQgIldlYkNvcmVNb3Rpb25NYW5hZ2Vy
Q2xpZW50LmgiCiAjaW1wb3J0ICJXZWJDb3JlT2JqQ0V4dHJhcy5oIgogI2ltcG9ydCAiV2ViQ29y
ZVRocmVhZFJ1bi5oIgogI2ltcG9ydCA8Q29yZUxvY2F0aW9uL0NvcmVMb2NhdGlvbi5oPgpAQCAt
MTEyLDE0ICsxMTQsMTQgQEAgLSAodm9pZClyZW1vdmVNb3Rpb25DbGllbnQ6KFdlYkNvcmU6OkRl
dgogICAgICAgICBbc2VsZiBjaGVja0NsaWVudFN0YXR1c107CiB9CiAKLS0gKHZvaWQpYWRkT3Jp
ZW50YXRpb25DbGllbnQ6KFdlYkNvcmU6OkRldmljZU9yaWVudGF0aW9uQ2xpZW50SU9TICopY2xp
ZW50CistICh2b2lkKWFkZE9yaWVudGF0aW9uQ2xpZW50OihXZWJDb3JlOjpXZWJDb3JlTW90aW9u
TWFuYWdlckNsaWVudCAqKWNsaWVudAogewogICAgIG1fZGV2aWNlT3JpZW50YXRpb25DbGllbnRz
LmFkZChjbGllbnQpOwogICAgIGlmIChtX2luaXRpYWxpemVkKQogICAgICAgICBbc2VsZiBjaGVj
a0NsaWVudFN0YXR1c107CiB9CiAKLS0gKHZvaWQpcmVtb3ZlT3JpZW50YXRpb25DbGllbnQ6KFdl
YkNvcmU6OkRldmljZU9yaWVudGF0aW9uQ2xpZW50SU9TICopY2xpZW50CistICh2b2lkKXJlbW92
ZU9yaWVudGF0aW9uQ2xpZW50OihXZWJDb3JlOjpXZWJDb3JlTW90aW9uTWFuYWdlckNsaWVudCAq
KWNsaWVudAogewogICAgIG1fZGV2aWNlT3JpZW50YXRpb25DbGllbnRzLnJlbW92ZShjbGllbnQp
OwogICAgIGlmIChtX2luaXRpYWxpemVkKQpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
aW9zL1dlYkNvcmVNb3Rpb25NYW5hZ2VyQ2xpZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vaW9zL1dlYkNvcmVNb3Rpb25NYW5hZ2VyQ2xpZW50LmgJKG5vbmV4aXN0
ZW50KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dlYkNvcmVNb3Rpb25NYW5hZ2Vy
Q2xpZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwzNyBAQAorLyoKKyogQ29weXJpZ2h0
IChDKSAyMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyoKKyogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworKiBhcmUgbWV0OgorKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyoKKyogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMg
SVMnJworKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMK
KyogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUgorKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyogSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4KKyogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorKiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisqLworCisjcHJhZ21hIG9uY2UKKworbmFtZXNwYWNl
IFdlYkNvcmUgeworCitjbGFzcyBXZWJDb3JlTW90aW9uTWFuYWdlckNsaWVudCB7CitwdWJsaWM6
CisgICAgdmlydHVhbCB+V2ViQ29yZU1vdGlvbk1hbmFnZXJDbGllbnQoKSB7IH07CisKKyAgICB2
aXJ0dWFsIHZvaWQgb3JpZW50YXRpb25DaGFuZ2VkKGRvdWJsZSwgZG91YmxlLCBkb3VibGUsIGRv
dWJsZSwgZG91YmxlKSB7IH07Cit9OworCit9OwpJbmRleDogU291cmNlL1dlYktpdC9DaGFuZ2VM
b2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9DaGFuZ2VMb2cJKHJldmlzaW9uIDI1Mjk4
MikKKysrIFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEs
MzMgQEAKKzIwMTktMTEtMzAgIFBlciBBcm5lIFZvbGxhbiAgPHB2b2xsYW5AYXBwbGUuY29tPgor
CisgICAgICAgIFtpT1NdIENhbGxzIHRvIGRldmljZSBvcmllbnRhdGlvbiBBUEkgc2hvdWxkIGJl
IGRvbmUgaW4gdGhlIFVJIHByb2Nlc3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTIwNDcyMAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIEFkZCBXZWIgcGFnZSBwcm94eSBtZXNzYWdlcyB0byBzdGFydCBhbmQg
c3RvcCB1cGRhdGluZyBkZXZpY2Ugb3JpZW50YXRpb24gaW4gdGhlIFVJIHByb2Nlc3MuIEFsc28s
IGFkZCBhIG1lc3NhZ2UgdG8KKyAgICAgICAgdGhlIFdlYiBwYWdlIHRvIHVwZGF0ZSB0aGUgZGV2
aWNlIG9yaWVudGF0aW9uIGluIHRoZSBXZWJDb250ZW50IHByb2Nlc3MuIEluIHRoZSBVSSBwcm9j
ZXNzLCB0aGUgZGV2aWNlIG9yaWVudGF0aW9uIEFQSQorICAgICAgICBpcyBjYWxsZWQgdGhyb3Vn
aCB0aGUgYWxyZWFkeSBleGlzdGluZyBXZWJDb3JlTW90aW9uTWFuYWdlciBjbGFzcy4KKworICAg
ICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2Vi
UGFnZVByb3h5Lm1lc3NhZ2VzLmluOgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvV2ViUGFnZVBy
b3h5SU9TLm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OnN0YXJ0VXBkYXRpbmdE
ZXZpY2VPcmllbnRhdGlvbik6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6c3RvcFVw
ZGF0aW5nRGV2aWNlT3JpZW50YXRpb24pOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6
Om9yaWVudGF0aW9uQ2hhbmdlZCk6CisgICAgICAgICogV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2o6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJTaGFyZWRE
ZXZpY2VPcmllbnRhdGlvbkNsaWVudC5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJT
aGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudDo6c3RhcnRVcGRhdGluZyk6CisgICAgICAgIChX
ZWJLaXQ6OldlYlNoYXJlZERldmljZU9yaWVudGF0aW9uQ2xpZW50OjpzdG9wVXBkYXRpbmcpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJTaGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudDo6ZGV2aWNl
T3JpZW50YXRpb25DaGFuZ2VkKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0
L1dlYlNoYXJlZERldmljZU9yaWVudGF0aW9uQ2xpZW50Lmg6IEFkZGVkLgorICAgICAgICAqIFdl
YlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6bV9vdmVycmlk
ZGVuTWVkaWFUeXBlKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oOgor
ICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluOgorICAgICAg
ICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbToKKyAgICAgICAgKFdlYktp
dDo6V2ViUGFnZTo6ZGV2aWNlT3JpZW50YXRpb25DaGFuZ2VkKToKKwogMjAxOS0xMi0wMiAgQ2Fy
bG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxpYS5jb20+CiAKICAgICAgICAgW0dUS11b
UFNPTl0gQ3Jhc2ggaW4gTmV0d29ya1Byb2Nlc3NQcm94eTo6b3Blbk5ldHdvcmtQcm9jZXNzQ29u
bmVjdGlvbgpJbmRleDogU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCShy
ZXZpc2lvbiAyNTI5ODIpCisrKyBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHku
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC01MjAsNiArNTIwLDEwIEBAIFdlYlBhZ2VQcm94eTo6fldl
YlBhZ2VQcm94eSgpCiAgICAgbV9wcmVmZXJlbmNlcy0+cmVtb3ZlUGFnZSgqdGhpcyk7CiAgICAg
bV9wYWdlR3JvdXAtPnJlbW92ZVBhZ2UodGhpcyk7CiAKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZ
KSAmJiBFTkFCTEUoREVWSUNFX09SSUVOVEFUSU9OKQorICAgIHN0b3BVcGRhdGluZ0RldmljZU9y
aWVudGF0aW9uKCk7CisjZW5kaWYKKyAgICAKICNpZm5kZWYgTkRFQlVHCiAgICAgd2ViUGFnZVBy
b3h5Q291bnRlci5kZWNyZW1lbnQoKTsKICNlbmRpZgpJbmRleDogU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvV2ViUGFnZVByb3h5LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2ViUGFnZVByb3h5LmgJKHJldmlzaW9uIDI1Mjk4MikKKysrIFNvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYlBhZ2VQcm94eS5oCSh3b3JraW5nIGNvcHkpCkBAIC0xNDksNiArMTQ5LDEwIEBA
IE9CSkNfQ0xBU1MgX1dLUmVtb3RlT2JqZWN0UmVnaXN0cnk7CiAjaW5jbHVkZSAiU09BdXRob3Jp
emF0aW9uTG9hZFBvbGljeS5oIgogI2VuZGlmCiAKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKSAm
JiBFTkFCTEUoREVWSUNFX09SSUVOVEFUSU9OKQorI2luY2x1ZGUgPFdlYkNvcmUvV2ViQ29yZU1v
dGlvbk1hbmFnZXJDbGllbnQuaD4KKyNlbmRpZgorCiAjaWYgRU5BQkxFKE1FRElBX1NFU1NJT04p
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBNZWRpYVNlc3Npb25NZXRhZGF0YTsKQEAgLTE1
OSw2ICsxNjMsMTAgQEAgY2xhc3MgTWVkaWFTZXNzaW9uTWV0YWRhdGE7CiBpbnRlcmZhY2UgSUQz
RDExRGV2aWNlMTsKICNlbmRpZgogCisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkgJiYgRU5BQkxF
KERFVklDRV9PUklFTlRBVElPTikKK09CSkNfQ0xBU1MgV2ViQ29yZU1vdGlvbk1hbmFnZXI7Cisj
ZW5kaWYKKwogbmFtZXNwYWNlIEFQSSB7CiBjbGFzcyBBdHRhY2htZW50OwogY2xhc3MgQ29udGV4
dE1lbnVDbGllbnQ7CkBAIC00MTAsNiArNDE4LDkgQEAgY2xhc3MgV2ViUGFnZVByb3h5IDogcHVi
bGljIEFQSTo6T2JqZWN0SQogICAgICwgcHVibGljIFdlYkNvcmU6OlBsYXRmb3JtU3BlZWNoU3lu
dGhlc2lzVXR0ZXJhbmNlQ2xpZW50CiAgICAgLCBwdWJsaWMgV2ViQ29yZTo6UGxhdGZvcm1TcGVl
Y2hTeW50aGVzaXplckNsaWVudAogI2VuZGlmCisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkgJiYg
RU5BQkxFKERFVklDRV9PUklFTlRBVElPTikKKyAgICAsIHB1YmxpYyBXZWJDb3JlOjpXZWJDb3Jl
TW90aW9uTWFuYWdlckNsaWVudAorI2VuZGlmCiAgICAgLCBwdWJsaWMgQ2FuTWFrZVdlYWtQdHI8
V2ViUGFnZVByb3h5PiB7CiBwdWJsaWM6CiAgICAgc3RhdGljIFJlZjxXZWJQYWdlUHJveHk+IGNy
ZWF0ZShQYWdlQ2xpZW50JiwgV2ViUHJvY2Vzc1Byb3h5JiwgUmVmPEFQSTo6UGFnZUNvbmZpZ3Vy
YXRpb24+JiYpOwpAQCAtMTYyNyw2ICsxNjM4LDExIEBAIHB1YmxpYzoKICAgICBjb25zdCBTdHJp
bmcmIG92ZXJyaWRkZW5NZWRpYVR5cGUoKSBjb25zdCB7IHJldHVybiBtX292ZXJyaWRkZW5NZWRp
YVR5cGU7IH0KICAgICB2b2lkIHNldE92ZXJyaWRkZW5NZWRpYVR5cGUoY29uc3QgU3RyaW5nJik7
CiAKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKSAmJiBFTkFCTEUoREVWSUNFX09SSUVOVEFUSU9O
KQorICAgIHZvaWQgc3RhcnRVcGRhdGluZ0RldmljZU9yaWVudGF0aW9uKCk7CisgICAgdm9pZCBz
dG9wVXBkYXRpbmdEZXZpY2VPcmllbnRhdGlvbigpOworI2VuZGlmCisKIHByaXZhdGU6CiAgICAg
V2ViUGFnZVByb3h5KFBhZ2VDbGllbnQmLCBXZWJQcm9jZXNzUHJveHkmLCBSZWY8QVBJOjpQYWdl
Q29uZmlndXJhdGlvbj4mJik7CiAgICAgdm9pZCBwbGF0Zm9ybUluaXRpYWxpemUoKTsKQEAgLTIx
NzAsNiArMjE4NiwxMSBAQCBwcml2YXRlOgogICAgIHZvaWQgcmVzZXRTcGVlY2hTeW50aGVzaXpl
cigpOwogI2VuZGlmCiAKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKSAmJiBFTkFCTEUoREVWSUNF
X09SSUVOVEFUSU9OKQorICAgIC8vIFdlYkNvcmU6OldlYkNvcmVNb3Rpb25NYW5hZ2VyQ2xpZW50
CisgICAgdm9pZCBvcmllbnRhdGlvbkNoYW5nZWQoZG91YmxlLCBkb3VibGUsIGRvdWJsZSwgZG91
YmxlLCBkb3VibGUpIG92ZXJyaWRlOworI2VuZGlmCisKICNpZiBQTEFURk9STShJT1NfRkFNSUxZ
KQogICAgIHN0YXRpYyBib29sIGlzSW5IYXJkd2FyZUtleWJvYXJkTW9kZSgpOwogICAgIHZvaWQg
Y2xlYXJBdWRpYmxlQWN0aXZpdHkoKTsKQEAgLTI2MjcsNiArMjY0OCwxMCBAQCBwcml2YXRlOgog
ICAgIGJvb2wgbV9pc1F1b3RhSW5jcmVhc2VEZW5pZWQgeyBmYWxzZSB9OwogICAgIAogICAgIFN0
cmluZyBtX292ZXJyaWRkZW5NZWRpYVR5cGU7CisKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKSAm
JiBFTkFCTEUoREVWSUNFX09SSUVOVEFUSU9OKQorICAgIFdlYkNvcmVNb3Rpb25NYW5hZ2VyKiBt
X21vdGlvbk1hbmFnZXIgeyBudWxscHRyIH07CisjZW5kaWYKIH07CiAKIH0gLy8gbmFtZXNwYWNl
IFdlYktpdApJbmRleDogU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3Nh
Z2VzLmluCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94
eS5tZXNzYWdlcy5pbgkocmV2aXNpb24gMjUyOTgyKQorKysgU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluCSh3b3JraW5nIGNvcHkpCkBAIC01ODYsNCArNTg2
LDkgQEAgbWVzc2FnZXMgLT4gV2ViUGFnZVByb3h5IHsKIAogICAgIERpZEZpbmRUZXh0TWFuaXB1
bGF0aW9uSXRlbShXZWJDb3JlOjpUZXh0TWFuaXB1bGF0aW9uQ29udHJvbGxlcjo6SXRlbUlkZW50
aWZpZXIgaXRlbUlELCBWZWN0b3I8V2ViQ29yZTo6VGV4dE1hbmlwdWxhdGlvbkNvbnRyb2xsZXI6
Ok1hbmlwdWxhdGlvblRva2VuPiB0b2tlbnMpCiAKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKSAm
JiBFTkFCTEUoREVWSUNFX09SSUVOVEFUSU9OKQorICAgIFN0YXJ0VXBkYXRpbmdEZXZpY2VPcmll
bnRhdGlvbigpOworICAgIFN0b3BVcGRhdGluZ0RldmljZU9yaWVudGF0aW9uKCk7CisjZW5kaWYK
KwogfQpJbmRleDogU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dlYlBhZ2VQcm94eUlPUy5t
bQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV2ViUGFnZVByb3h5
SU9TLm1tCShyZXZpc2lvbiAyNTI5ODIpCisrKyBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3Mv
V2ViUGFnZVByb3h5SU9TLm1tCSh3b3JraW5nIGNvcHkpCkBAIC03NSw2ICs3NSwxMCBAQAogI2lt
cG9ydCA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAjZW5kaWYKIAorI2lmIEVOQUJMRShERVZJQ0Vf
T1JJRU5UQVRJT04pCisjaW1wb3J0IDxXZWJDb3JlL1dlYkNvcmVNb3Rpb25NYW5hZ2VyLmg+Cisj
ZW5kaWYKKwogI2RlZmluZSBSRUxFQVNFX0xPR19JRl9BTExPV0VEKGNoYW5uZWwsIGZtdCwgLi4u
KSBSRUxFQVNFX0xPR19JRihpc0Fsd2F5c09uTG9nZ2luZ0FsbG93ZWQoKSwgY2hhbm5lbCwgIiVw
IC0gW3BhZ2VQcm94eUlEPSVsbHUsIHdlYlBhZ2VJRD0lbGx1LCBQSUQ9JWldIFdlYlBhZ2VQcm94
eTo6IiBmbXQsIHRoaXMsIG1faWRlbnRpZmllci50b1VJbnQ2NCgpLCBtX3dlYlBhZ2VJRC50b1VJ
bnQ2NCgpLCBtX3Byb2Nlc3MtPnByb2Nlc3NJZGVudGlmaWVyKCksICMjX19WQV9BUkdTX18pCiAK
IG5hbWVzcGFjZSBXZWJLaXQgewpAQCAtMTQ4Myw2ICsxNDg3LDI2IEBAIFdlYkNvbnRlbnRNb2Rl
IFdlYlBhZ2VQcm94eTo6ZWZmZWN0aXZlQ28KICAgICByZXR1cm4gV2ViQ29udGVudE1vZGU6OkRl
c2t0b3A7CiB9CiAKKyNpZiBFTkFCTEUoREVWSUNFX09SSUVOVEFUSU9OKQordm9pZCBXZWJQYWdl
UHJveHk6OnN0YXJ0VXBkYXRpbmdEZXZpY2VPcmllbnRhdGlvbigpCit7CisgICAgaWYgKCFtX21v
dGlvbk1hbmFnZXIpCisgICAgICAgIG1fbW90aW9uTWFuYWdlciA9IFtXZWJDb3JlTW90aW9uTWFu
YWdlciBzaGFyZWRNYW5hZ2VyXTsKKyAgICBbbV9tb3Rpb25NYW5hZ2VyIGFkZE9yaWVudGF0aW9u
Q2xpZW50OnRoaXNdOworfQorCit2b2lkIFdlYlBhZ2VQcm94eTo6c3RvcFVwZGF0aW5nRGV2aWNl
T3JpZW50YXRpb24oKQoreworICAgIFttX21vdGlvbk1hbmFnZXIgcmVtb3ZlT3JpZW50YXRpb25D
bGllbnQ6dGhpc107Cit9CisKK3ZvaWQgV2ViUGFnZVByb3h5OjpvcmllbnRhdGlvbkNoYW5nZWQo
ZG91YmxlIGFscGhhLCBkb3VibGUgYmV0YSwgZG91YmxlIGdhbW1hLCBkb3VibGUgY29tcGFzc0hl
YWRpbmcsIGRvdWJsZSBjb21wYXNzQWNjdXJhY3kpCit7CisgICAgc2VuZChNZXNzYWdlczo6V2Vi
UGFnZTo6RGV2aWNlT3JpZW50YXRpb25DaGFuZ2VkKGFscGhhLCBiZXRhLCBnYW1tYSwgY29tcGFz
c0hlYWRpbmcsIGNvbXBhc3NBY2N1cmFjeSksIDApOworfQorI2VuZGlmCisKKwogfSAvLyBuYW1l
c3BhY2UgV2ViS2l0CiAKICN1bmRlZiBSRUxFQVNFX0xPR19JRl9BTExPV0VECkluZGV4OiBTb3Vy
Y2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHJldmlzaW9u
IDI1Mjk4MikKKysrIFNvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2oJKHdvcmtpbmcgY29weSkKQEAgLTE2ODksNiArMTY4OSw3IEBACiAJCUUxRDI2QTUzMTc1OTY0
RDkwMDk1QkZEMSAvKiBXZWJDb250ZW50UHJvY2Vzcy54aWIgaW4gUmVzb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxRDI2QTRDMTc1OTYzNEUwMDk1QkZEMSAvKiBX
ZWJDb250ZW50UHJvY2Vzcy54aWIgKi87IH07CiAJCUUxRTU1MkM1MTZBRTA2NUYwMDRFRDY1MyAv
KiBTYW5kYm94SW5pdGlhbGl6YXRpb25QYXJhbWV0ZXJzLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMUU1NTJDMzE2QUUwNjVFMDA0RUQ2NTMgLyogU2Fu
ZGJveEluaXRpYWxpemF0aW9uUGFyYW1ldGVycy5oICovOyB9OwogCQlFMUVFNTNFMzExRjhDRkMw
MDBDQ0JFRTQgLyogSW5qZWN0ZWRCdW5kbGVQYWdlRWRpdG9yQ2xpZW50LmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMUVFNTNEQzExRjhDRjlGMDBDQ0JF
RTQgLyogSW5qZWN0ZWRCdW5kbGVQYWdlRWRpdG9yQ2xpZW50LmggKi87IH07CisJCUUzOTYyOEFB
MjM4OEFCRDgwMDY1OEVDRCAvKiBXZWJTaGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudC5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMzk2MjhBOTIz
ODhBQkQ4MDA2NThFQ0QgLyogV2ViU2hhcmVkRGV2aWNlT3JpZW50YXRpb25DbGllbnQuY3BwICov
OyB9OwogCQlFNDEzRjU5RDFBQzFBREM0MDAzNDUzNjAgLyogTmV0d29ya0NhY2hlRW50cnkuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU0MTNGNTlCMUFD
MUFEQjYwMDM0NTM2MCAvKiBOZXR3b3JrQ2FjaGVFbnRyeS5oICovOyB9OwogCQlFNDJFMDYxMDFB
QTc1MjNCMDBCMTE2OTkgLyogTmV0d29ya0NhY2hlSU9DaGFubmVsLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFNDJFMDYwQjFBQTc0NDBEMDBCMTE2OTkg
LyogTmV0d29ya0NhY2hlSU9DaGFubmVsLmggKi87IH07CiAJCUU0MkUwNjEyMUFBNzVBQkQwMEIx
MTY5OSAvKiBOZXR3b3JrQ2FjaGVEYXRhLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBFNDJFMDYxMTFBQTc1QUJEMDBCMTE2OTkgLyogTmV0d29ya0NhY2hl
RGF0YS5oICovOyB9OwpAQCAtNDc0OCw2ICs0NzQ5LDggQEAKIAkJRTFFRTUzREMxMUY4Q0Y5RjAw
Q0NCRUU0IC8qIEluamVjdGVkQnVuZGxlUGFnZUVkaXRvckNsaWVudC5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBJbmplY3RlZEJ1bmRsZVBhZ2VFZGl0b3JDbGllbnQuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTFFRTUzRTYxMUY4Q0ZGQjAwQ0NCRUU0IC8qIElu
amVjdGVkQnVuZGxlUGFnZUVkaXRvckNsaWVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBJbmplY3RlZEJ1bmRsZVBhZ2VFZGl0b3JDbGllbnQuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQlFMzQzOUI2MzIzNDU0NjNBMDAxMURFMEIgLyogTmV0d29y
a1Byb2Nlc3NDb25uZWN0aW9uSW5mby5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBOZXR3b3JrUHJvY2Vzc0Nv
bm5lY3Rpb25JbmZvLmg7IHBhdGggPSBOZXR3b3JrL05ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbklu
Zm8uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTM5NjI4QTgyMzg4QTVENDAwNjU4
RUNEIC8qIFdlYlNoYXJlZERldmljZU9yaWVudGF0aW9uQ2xpZW50LmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFdlYlNoYXJlZERldmljZU9yaWVudGF0aW9uQ2xpZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCUUzOTYyOEE5MjM4OEFCRDgwMDY1OEVDRCAvKiBXZWJTaGFyZWREZXZpY2VPcmll
bnRhdGlvbkNsaWVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJTaGFyZWREZXZpY2VPcmll
bnRhdGlvbkNsaWVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUU0MDQ5MDcw
MjFERTY1RjcwMDM3RjBEQiAvKiBTY3JvbGxlclBhaXJNYWMuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gU2Nyb2xsZXJQYWlyTWFjLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCUU0MDQ5MDcxMjFERTY1RjcwMDM3RjBEQiAvKiBTY3JvbGxpbmdUcmVlRnJhbWVTY3Jv
bGxpbmdOb2RlUmVtb3RlTWFjLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IFNjcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVSZW1vdGVNYWMuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQlFNDA0OTA3MjIxREU2NUY3MDAzN0YwREIgLyogU2Nyb2xs
ZXJQYWlyTWFjLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gU2Ny
b2xsZXJQYWlyTWFjLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNTg1NCw2ICs1
ODU3LDggQEAKIAkJCQkyRDI4RjNFMzE4ODVDQ0MxMDA0QjlFQUUgLyogV2ViRnJhbWVMb2FkZXJD
bGllbnRJT1MubW0gKi8sCiAJCQkJQTFDNTEyQzYxOTA2NTZFNTAwNDQ4OTE0IC8qIFdlYlByZXZp
ZXdMb2FkZXJDbGllbnQuY3BwICovLAogCQkJCUExQzUxMkM3MTkwNjU2RTUwMDQ0ODkxNCAvKiBX
ZWJQcmV2aWV3TG9hZGVyQ2xpZW50LmggKi8sCisJCQkJRTM5NjI4QTkyMzg4QUJEODAwNjU4RUNE
IC8qIFdlYlNoYXJlZERldmljZU9yaWVudGF0aW9uQ2xpZW50LmNwcCAqLywKKwkJCQlFMzk2MjhB
ODIzODhBNUQ0MDA2NThFQ0QgLyogV2ViU2hhcmVkRGV2aWNlT3JpZW50YXRpb25DbGllbnQuaCAq
LywKIAkJCSk7CiAJCQluYW1lID0gaW9zOwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKQEAg
LTk4MjAsNyArOTgyNSw2IEBACiAJCQkJNTExRjhBN0IxMzhCNDYwOTAwQTk1RjQ0IC8qIFNlY0l0
ZW1TaGltTGlicmFyeS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTE4RTY5MEMxNjlCNTYzRjAwOUI2
NjcwIC8qIFNlY0l0ZW1TaGltUHJveHkuaCBpbiBIZWFkZXJzICovLAogCQkJCUUxOEU2OTE4MTY5
QjY2N0IwMDlCNjY3MCAvKiBTZWNJdGVtU2hpbVByb3h5TWVzc2FnZXMuaCBpbiBIZWFkZXJzICov
LAotCQkJCTdBQTc0NkQ1MjM1OTNEODEwMDA5NTA1MCAvKiBTZWNJdGVtU1BJLmggaW4gSGVhZGVy
cyAqLywKIAkJCQk1NzBBQjhGMzIwQUUzQkQ3MDBCOEJFODcgLyogU2VjS2V5UHJveHlTdG9yZS5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJNTE0RDlGNTcxOTExOUQzNTAwMDA2M0E3IC8qIFNlcnZpY2Vz
Q29udHJvbGxlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUFGREU2NUExOTU0QTQyQjAwQzQ4RkZB
IC8qIFNlc3Npb25TdGF0ZS5oIGluIEhlYWRlcnMgKi8sCkBAIC0xMTYxOSw2ICsxMTYyMyw3IEBA
CiAJCQkJNTFGMDYwRTExNjU0MzE4NTAwRjMyODFGIC8qIFdlYlJUQ01vbml0b3JNZXNzYWdlUmVj
ZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNTFGMDYwRTExNjU0MzE4NTAwRjMyODJDIC8q
IFdlYlJUQ1Jlc29sdmVyTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTUx
RjA2MEUxMTY1NDMxODUwMEYzMjgxQyAvKiBXZWJSVENTb2NrZXRNZXNzYWdlUmVjZWl2ZXIuY3Bw
IGluIFNvdXJjZXMgKi8sCisJCQkJRTM5NjI4QUEyMzg4QUJEODAwNjU4RUNEIC8qIFdlYlNoYXJl
ZERldmljZU9yaWVudGF0aW9uQ2xpZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTQxRjA2MEUx
MTY1NDMxODUwMEYzMjgxQyAvKiBXZWJTb2NrZXRDaGFubmVsTWVzc2FnZVJlY2VpdmVyLmNwcCBp
biBTb3VyY2VzICovLAogCQkJCTVDMEIxNzc5MUU3Qzg4MjEwMEU5MTIzQyAvKiBXZWJTb2NrZXRT
dHJlYW1NZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNDEyODdENEUyMjVE
MUVDQjAwOUEzRTI2IC8qIFdlYlNvY2tldFRhc2tDb2NvYS5tbSBpbiBTb3VyY2VzICovLApJbmRl
eDogU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlNoYXJlZERldmlj
ZU9yaWVudGF0aW9uQ2xpZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViU2hhcmVkRGV2aWNlT3JpZW50YXRpb25DbGllbnQuY3Bw
CShub25leGlzdGVudCkKKysrIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9y
dC9XZWJTaGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTAsMCArMSw2MSBAQAorLyoKKyogQ29weXJpZ2h0IChDKSAyMDE5IEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyoKKyogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworKiBhcmUgbWV0Ogor
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyoKKyogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworKiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyogVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorKiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRgorKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyogQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkKKyogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRgorKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisq
LworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV2ViU2hhcmVkRGV2aWNlT3JpZW50
YXRpb25DbGllbnQuaCIKKworI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpICYmIEVOQUJMRShERVZJ
Q0VfT1JJRU5UQVRJT04pCisKKyNpbmNsdWRlICJXZWJQYWdlLmgiCisjaW5jbHVkZSAiV2ViUGFn
ZVByb3h5TWVzc2FnZXMuaCIKKworI2luY2x1ZGUgPFdlYkNvcmUvV2ViQ29yZU1vdGlvbk1hbmFn
ZXJDbGllbnQuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK3ZvaWQgV2ViU2hhcmVkRGV2aWNl
T3JpZW50YXRpb25DbGllbnQ6OnN0YXJ0VXBkYXRpbmcoV2ViQ29yZTo6V2ViQ29yZU1vdGlvbk1h
bmFnZXJDbGllbnQmIGNsaWVudCkKK3sKKyAgICBpZiAobV9jbGllbnRzLmlzRW1wdHkoKSAmJiBt
X3BhZ2UpCisgICAgICAgIG1fcGFnZS0+c2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpTdGFy
dFVwZGF0aW5nRGV2aWNlT3JpZW50YXRpb24oKSk7CisgICAgbV9jbGllbnRzLmFkZCgmY2xpZW50
KTsKK30KKwordm9pZCBXZWJTaGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudDo6c3RvcFVwZGF0
aW5nKFdlYkNvcmU6OldlYkNvcmVNb3Rpb25NYW5hZ2VyQ2xpZW50JiBjbGllbnQpCit7CisgICAg
aWYgKG1fY2xpZW50cy5pc0VtcHR5KCkpCisgICAgICAgIHJldHVybjsKKyAgICBpZiAobV9jbGll
bnRzLmlzRW1wdHkoKSAmJiBtX3BhZ2UpCisgICAgICAgIG1fcGFnZS0+c2VuZChNZXNzYWdlczo6
V2ViUGFnZVByb3h5OjpTdG9wVXBkYXRpbmdEZXZpY2VPcmllbnRhdGlvbigpKTsKK30KKwordm9p
ZCBXZWJTaGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudDo6ZGV2aWNlT3JpZW50YXRpb25DaGFu
Z2VkKGRvdWJsZSBhbHBoYSwgZG91YmxlIGJldGEsIGRvdWJsZSBnYW1tYSwgZG91YmxlIGNvbXBh
c3NIZWFkaW5nLCBkb3VibGUgY29tcGFzc0FjY3VyYWN5KQoreworICAgIGZvciAoYXV0byBjbGll
bnQgOiBtX2NsaWVudHMpCisgICAgICAgIGNsaWVudC0+b3JpZW50YXRpb25DaGFuZ2VkKGFscGhh
LCBiZXRhLCBnYW1tYSwgY29tcGFzc0hlYWRpbmcsIGNvbXBhc3NBY2N1cmFjeSk7Cit9CisKK307
CisKKyNlbmRpZgpJbmRleDogU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0
L1dlYlNoYXJlZERldmljZU9yaWVudGF0aW9uQ2xpZW50LmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlNoYXJlZERldmljZU9yaWVudGF0
aW9uQ2xpZW50LmgJKG5vbmV4aXN0ZW50KQorKysgU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L1dlYlNoYXJlZERldmljZU9yaWVudGF0aW9uQ2xpZW50LmgJKHdvcmtpbmcg
Y29weSkKQEAgLTAsMCArMSw1OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOSBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwor
ICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAq
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5j
bHVkZSA8V2ViQ29yZS9TaGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudC5oPgorCisjaW5jbHVk
ZSA8d3RmL0hhc2hTZXQuaD4KKyNpbmNsdWRlIDx3dGYvV2Vha1B0ci5oPgorCisjaWYgUExBVEZP
Uk0oSU9TX0ZBTUlMWSkgJiYgRU5BQkxFKERFVklDRV9PUklFTlRBVElPTikKKworbmFtZXNwYWNl
IFdlYktpdCB7CisKK2NsYXNzIFdlYlBhZ2U7CisKK2NsYXNzIFdlYlNoYXJlZERldmljZU9yaWVu
dGF0aW9uQ2xpZW50IGZpbmFsIDogcHVibGljIFdlYkNvcmU6OlNoYXJlZERldmljZU9yaWVudGF0
aW9uQ2xpZW50IHsKKyAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKK3B1YmxpYzoKKyAgICBX
ZWJTaGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudChXZWJQYWdlJiBwYWdlKQorICAgICAgICA6
IG1fcGFnZShXVEY6Om1ha2VXZWFrUHRyKHBhZ2UpKQorICAgIHsKKyAgICB9CisKKyAgICB2b2lk
IHN0YXJ0VXBkYXRpbmcoV2ViQ29yZTo6V2ViQ29yZU1vdGlvbk1hbmFnZXJDbGllbnQmKSBvdmVy
cmlkZTsKKyAgICB2b2lkIHN0b3BVcGRhdGluZyhXZWJDb3JlOjpXZWJDb3JlTW90aW9uTWFuYWdl
ckNsaWVudCYpIG92ZXJyaWRlOworCisgICAgdm9pZCBkZXZpY2VPcmllbnRhdGlvbkNoYW5nZWQo
ZG91YmxlLCBkb3VibGUsIGRvdWJsZSwgZG91YmxlLCBkb3VibGUpIG92ZXJyaWRlOworCitwcml2
YXRlOgorICAgIFdURjo6V2Vha1B0cjxXZWJQYWdlPiBtX3BhZ2U7CisgICAgSGFzaFNldDxXZWJD
b3JlOjpXZWJDb3JlTW90aW9uTWFuYWdlckNsaWVudCo+IG1fY2xpZW50czsKK307CisKK30KKwor
I2VuZGlmCkluZGV4OiBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdl
LmNwcAkocmV2aXNpb24gMjUyOTgyKQorKysgU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBh
Z2UvV2ViUGFnZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMwNyw2ICszMDcsMTAgQEAKICNpbmNs
dWRlIDxXZWJDb3JlL0F1dGhlbnRpY2F0b3JDb29yZGluYXRvci5oPgogI2VuZGlmCiAKKyNpZiBQ
TEFURk9STShJT1NfRkFNSUxZKSAmJiBFTkFCTEUoREVWSUNFX09SSUVOVEFUSU9OKQorI2luY2x1
ZGUgIldlYlNoYXJlZERldmljZU9yaWVudGF0aW9uQ2xpZW50LmgiCisjZW5kaWYKKwogbmFtZXNw
YWNlIFdlYktpdCB7CiB1c2luZyBuYW1lc3BhY2UgSlNDOwogdXNpbmcgbmFtZXNwYWNlIFdlYkNv
cmU7CkBAIC01MDEsNiArNTA1LDEwIEBAIFdlYlBhZ2U6OldlYlBhZ2UoUGFnZUlkZW50aWZpZXIg
cGFnZUlELCAKICNpZiBFTkFCTEUoQVBQTElDQVRJT05fTUFOSUZFU1QpCiAgICAgcGFnZUNvbmZp
Z3VyYXRpb24uYXBwbGljYXRpb25NYW5pZmVzdCA9IHBhcmFtZXRlcnMuYXBwbGljYXRpb25NYW5p
ZmVzdDsKICNlbmRpZgorICAgIAorI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpICYmIEVOQUJMRShE
RVZJQ0VfT1JJRU5UQVRJT04pCisgICAgcGFnZUNvbmZpZ3VyYXRpb24uc2hhcmVkRGV2aWNlT3Jp
ZW50YXRpb25DbGllbnQgPSBuZXcgV2ViU2hhcmVkRGV2aWNlT3JpZW50YXRpb25DbGllbnQoKnRo
aXMpOworI2VuZGlmCiAKICAgICBtX3BhZ2UgPSBtYWtlVW5pcXVlPFBhZ2U+KFdURk1vdmUocGFn
ZUNvbmZpZ3VyYXRpb24pKTsKIApJbmRleDogU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBh
Z2UvV2ViUGFnZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQ
YWdlL1dlYlBhZ2UuaAkocmV2aXNpb24gMjUyOTgyKQorKysgU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0xMjQ0LDYgKzEyNDQsMTAg
QEAgcHVibGljOgogICAgIGNvbnN0IFN0cmluZyYgb3ZlcnJpZGRlbk1lZGlhVHlwZSgpIGNvbnN0
IHsgcmV0dXJuIG1fb3ZlcnJpZGRlbk1lZGlhVHlwZTsgfQogICAgIHZvaWQgc2V0T3ZlcnJpZGRl
bk1lZGlhVHlwZShjb25zdCBTdHJpbmcmKTsKICAgICAKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZ
KSAmJiBFTkFCTEUoREVWSUNFX09SSUVOVEFUSU9OKQorICAgIHZvaWQgZGV2aWNlT3JpZW50YXRp
b25DaGFuZ2VkKGRvdWJsZSBhbHBoYSwgZG91YmxlIGJldGEsIGRvdWJsZSBnYW1tYSwgZG91Ymxl
IGNvbXBhc3NIZWFkaW5nLCBkb3VibGUgY29tcGFzc0FjY3VyYWN5KTsKKyNlbmRpZgorCiBwcml2
YXRlOgogICAgIFdlYlBhZ2UoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIFdlYlBhZ2VDcmVhdGlv
blBhcmFtZXRlcnMmJik7CiAKSW5kZXg6IFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdl
L1dlYlBhZ2UubWVzc2FnZXMuaW4KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbgkocmV2aXNpb24gMjUyOTgyKQorKysgU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbgkod29ya2lu
ZyBjb3B5KQpAQCAtNTgzLDQgKzU4Myw4IEBAIEdlbmVyYXRlU3ludGhldGljRWRpdGluZ0NvbW1h
bmQoZW51bTp1aW4KICAgICBDb21wbGV0ZVRleHRNYW5pcHVsYXRpb24oV2ViQ29yZTo6VGV4dE1h
bmlwdWxhdGlvbkNvbnRyb2xsZXI6Okl0ZW1JZGVudGlmaWVyIGl0ZW1JRCwgVmVjdG9yPFdlYkNv
cmU6OlRleHRNYW5pcHVsYXRpb25Db250cm9sbGVyOjpNYW5pcHVsYXRpb25Ub2tlbj4gdG9rZW5z
KSAtPiAoZW51bTp1aW50OF90IFdlYkNvcmU6OlRleHRNYW5pcHVsYXRpb25Db250cm9sbGVyOjpN
YW5pcHVsYXRpb25SZXN1bHQgcmVzdWx0KSBBc3luYwogICAgIAogICAgIFNldE92ZXJyaWRkZW5N
ZWRpYVR5cGUoU3RyaW5nIG1lZGlhVHlwZSkKKyAgICAKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZ
KSAmJiBFTkFCTEUoREVWSUNFX09SSUVOVEFUSU9OKQorICAgIERldmljZU9yaWVudGF0aW9uQ2hh
bmdlZChkb3VibGUgYWxwaGEsIGRvdWJsZSBiZXRhLCBkb3VibGUgZ2FtbWEsIGRvdWJsZSBjb21w
YXNzSGVhZGluZywgZG91YmxlIGNvbXBhc3NBY2N1cmFjeSkKKyNlbmRpZgogfQpJbmRleDogU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW0KPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW0J
KHJldmlzaW9uIDI1Mjk4MikKKysrIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL2lv
cy9XZWJQYWdlSU9TLm1tCSh3b3JraW5nIGNvcHkpCkBAIC00MDg4LDYgKzQwODgsMTQgQEAgdm9p
ZCBXZWJQYWdlOjpyZXF1ZXN0UGFzc3dvcmRGb3JRdWlja0xvbwogCiAjZW5kaWYKIAorI2lmIEVO
QUJMRShERVZJQ0VfT1JJRU5UQVRJT04pCit2b2lkIFdlYlBhZ2U6OmRldmljZU9yaWVudGF0aW9u
Q2hhbmdlZChkb3VibGUgYWxwaGEsIGRvdWJsZSBiZXRhLCBkb3VibGUgZ2FtbWEsIGRvdWJsZSBj
b21wYXNzSGVhZGluZywgZG91YmxlIGNvbXBhc3NBY2N1cmFjeSkKK3sKKyAgICBpZiAoY29yZVBh
Z2UoKSAmJiBjb3JlUGFnZSgpLT5zaGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudCgpKQorICAg
ICAgICBjb3JlUGFnZSgpLT5zaGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudCgpLT5kZXZpY2VP
cmllbnRhdGlvbkNoYW5nZWQoYWxwaGEsIGJldGEsIGdhbW1hLCBjb21wYXNzSGVhZGluZywgY29t
cGFzc0FjY3VyYWN5KTsKK30KKyNlbmRpZgorCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKIAogI3Vu
ZGVmIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>384632</attachid>
            <date>2019-12-02 09:24:55 -0800</date>
            <delta_ts>2019-12-03 12:37:53 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-204720-20191202092454.patch</filename>
            <type>text/plain</type>
            <size>49592</size>
            <attacher name="Per Arne Vollan">pvollan</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDI1Mjk4MykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDUwIEBACisyMDE5LTExLTMwICBQZXIgQXJu
ZSBWb2xsYW4gIDxwdm9sbGFuQGFwcGxlLmNvbT4KKworICAgICAgICBbaU9TXSBDYWxscyB0byBk
ZXZpY2Ugb3JpZW50YXRpb24gQVBJIHNob3VsZCBiZSBkb25lIGluIHRoZSBVSSBwcm9jZXNzCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDQ3MjAKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGUgZGV2aWNl
IG9yaWVudGF0aW9uIEFQSSBvbiBpT1MgaXMgY29tbXVuaWNhdGluZyB3aXRoIGxvY2F0aW9uZC4g
U2luY2UgbWFjaCBsb29rdXAgdG8gdGhpcyBkYWVtb24KKyAgICAgICAgd2lsbCBiZSBjbG9zZWQs
IHRoZSBjYWxscyB0byB0aGlzIEFQSSBzaG91bGQgYmUgbW92ZWQgZnJvbSB0aGUgV2ViQ29udGVu
dCBwcm9jZXNzIHRvIHRoZSBVSSBwcm9jZXNzLgorICAgICAgICBUaGlzIHBhdGNoIGltcGxlbWVu
dHMgZm9yd2FyZGluZyBvZiB0aGUgZGV2aWNlIG9yaWVudGF0aW9uIHJlcXVlc3RzIHRvIHRoZSBV
SSBwcm9jZXNzIHRocm91Z2ggYSBuZXcKKyAgICAgICAgY2xhc3MsIFNoYXJlZERldmljZU9yaWVu
dGF0aW9uQ2xpZW50LCB3aGljaCBpcyBzdWJjbGFzc2VkIGJ5IFdlYlNoYXJlZERldmljZU9yaWVu
dGF0aW9uQ2xpZW50IGluCisgICAgICAgIG1vZGVybiBXZWJLaXQuIFRoaXMgY2xhc3MgaW1wbGVt
ZW50cyBmb3J3YXJkaW5nIG9mIHRoZSByZXF1ZXN0cyB0byB0aGUgVUkgcHJvY2VzcywgYW5kIHJl
Y2VpdmVzCisgICAgICAgIGRldmljZSBvcmllbnRhdGlvbiB1cGRhdGVzIGZyb20gdGhlIFVJIHBy
b2Nlc3MuIEFuIGluc3RhbmNlIG9mIHRoaXMgY2xhc3Mgd2lsbCBiZSBzaGFyZWQgYnkgYWxsCisg
ICAgICAgIGRldmljZSBvcmllbnRhdGlvbiBjbGllbnRzIG9uIGEgcGFnZSwgYW5kIHBhc3NlZCBh
cyBwYXJ0IG9mIHRoZSBwYWdlIGNvbmZpZ3VyYXRpb24gcGFyYW1ldGVycy4gT24KKyAgICAgICAg
dGhlIFVJIHByb2Nlc3Mgc2lkZSwgdGhlIFdlYiBwYWdlIHByb3h5IGlzIHRha2luZyBjYXJlIG9m
IGNhbGxpbmcgdGhlIGRldmljZSBvcmllbnRhdGlvbiBBUEkgdGhyb3VnaAorICAgICAgICB0aGUg
ZXhpc3RpbmcgV2ViQ29yZU1vdGlvbk1hbmFnZXIgT2JqZWN0aXZlLUMgY2xhc3MuCisKKyAgICAg
ICAgTm8gbmV3IHRlc3RzLCBjb3ZlcmVkIGJ5IGV4aXN0aW5nIHRlc3RzLgorCisgICAgICAgICog
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGRvbS9EZXZpY2VP
cmllbnRhdGlvbkNsaWVudC5oOgorICAgICAgICAoV2ViQ29yZTo6RGV2aWNlT3JpZW50YXRpb25D
bGllbnQ6OnNldFNoYXJlZERldmljZU9yaWVudGF0aW9uQ2xpZW50KToKKyAgICAgICAgKiBkb20v
RG9jdW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6bV91bmRvTWFuYWdlcik6CisgICAgICAg
ICogcGFnZS9QYWdlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Om1fc2hhcmVkRGV2aWNlT3JpZW50
YXRpb25DbGllbnQpOgorICAgICAgICAoV2ViQ29yZTo6bV9hcHBsaWNhdGlvbk1hbmlmZXN0KTog
RGVsZXRlZC4KKyAgICAgICAgKiBwYWdlL1BhZ2UuaDoKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2U6
OnNoYXJlZERldmljZU9yaWVudGF0aW9uQ2xpZW50IGNvbnN0KToKKyAgICAgICAgKiBwYWdlL1Bh
Z2VDb25maWd1cmF0aW9uLmg6CisgICAgICAgICogcGxhdGZvcm0vaW9zL0RldmljZU9yaWVudGF0
aW9uQ2xpZW50SU9TLmg6CisgICAgICAgICogcGxhdGZvcm0vaW9zL0RldmljZU9yaWVudGF0aW9u
Q2xpZW50SU9TLm1tOgorICAgICAgICAoV2ViQ29yZTo6RGV2aWNlT3JpZW50YXRpb25DbGllbnRJ
T1M6OnN0YXJ0VXBkYXRpbmcpOgorICAgICAgICAoV2ViQ29yZTo6RGV2aWNlT3JpZW50YXRpb25D
bGllbnRJT1M6OnN0b3BVcGRhdGluZyk6CisgICAgICAgIChXZWJDb3JlOjpEZXZpY2VPcmllbnRh
dGlvbkNsaWVudElPUzo6ZGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyRGVzdHJveWVkKToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9pb3MvU2hhcmVkRGV2aWNlT3JpZW50YXRpb25DbGllbnQuaDogQWRk
ZWQuCisgICAgICAgIChXZWJDb3JlOjpTaGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudDo6U2hh
cmVkRGV2aWNlT3JpZW50YXRpb25DbGllbnQpOgorICAgICAgICAoV2ViQ29yZTo6U2hhcmVkRGV2
aWNlT3JpZW50YXRpb25DbGllbnQ6On5TaGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudCk6Cisg
ICAgICAgIChXZWJDb3JlOjpTaGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudDo6c3RhcnRVcGRh
dGluZyk6CisgICAgICAgIChXZWJDb3JlOjpTaGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudDo6
c3RvcFVwZGF0aW5nKToKKyAgICAgICAgKFdlYkNvcmU6OlNoYXJlZERldmljZU9yaWVudGF0aW9u
Q2xpZW50OjpkZXZpY2VPcmllbnRhdGlvbkNoYW5nZWQpOgorICAgICAgICAqIHBsYXRmb3JtL2lv
cy9XZWJDb3JlTW90aW9uTWFuYWdlci5oOgorICAgICAgICAqIHBsYXRmb3JtL2lvcy9XZWJDb3Jl
TW90aW9uTWFuYWdlci5tbToKKyAgICAgICAgKC1bV2ViQ29yZU1vdGlvbk1hbmFnZXIgYWRkT3Jp
ZW50YXRpb25DbGllbnQ6XSk6CisgICAgICAgICgtW1dlYkNvcmVNb3Rpb25NYW5hZ2VyIHJlbW92
ZU9yaWVudGF0aW9uQ2xpZW50Ol0pOgorICAgICAgICAqIHBsYXRmb3JtL2lvcy9XZWJDb3JlTW90
aW9uTWFuYWdlckNsaWVudC5oOgorCiAyMDE5LTEyLTAyICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5m
cmFzZXJAYXBwbGUuY29tPgogCiAgICAgICAgIERvbid0IGRvIHJhbmdlIGNoZWNraW5nIGZvciBj
YWxjKCkgYXQgcGFyc2UgdGltZQpJbmRleDogU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkocmV2aXNpb24gMjUyOTgzKQorKysgU291cmNlL1dl
YkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCSh3b3JraW5nIGNvcHkpCkBA
IC05MDcsNyArOTA3LDcgQEAKIAkJMzEzNTkxMEExRTdEREM3MzAwRjMwNjMwIC8qIFJUQ1NkcFR5
cGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMxMzU5
MTA0MUU3RERDNjAwMEYzMDYzMCAvKiBSVENTZHBUeXBlLmggKi87IH07CiAJCTMxMzU5MTBCMUU3
RERDNzMwMEYzMDYzMCAvKiBSVENTaWduYWxpbmdTdGF0ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzEzNTkxMDUxRTdEREM2MDAwRjMwNjMwIC8qIFJU
Q1NpZ25hbGluZ1N0YXRlLmggKi87IH07CiAJCTMxM0JDRTFDMjM1RTNCRTUwMEZDMzlFNSAvKiBF
bGVtZW50Q29udGV4dC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMzEzQkNFMUIyMzVFM0JEQjAwRkMzOUU1IC8qIEVsZW1lbnRDb250ZXh0LmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKLQkJMzE0MDM3OUIxMjRC
RUE3RjAwQUY0MEU0IC8qIFdlYkNvcmVNb3Rpb25NYW5hZ2VyLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzMTQwMzc5NzEyNEJFQTdGMDBBRjQwRTQgLyog
V2ViQ29yZU1vdGlvbk1hbmFnZXIuaCAqLzsgfTsKKwkJMzE0MDM3OUIxMjRCRUE3RjAwQUY0MEU0
IC8qIFdlYkNvcmVNb3Rpb25NYW5hZ2VyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSAzMTQwMzc5NzEyNEJFQTdGMDBBRjQwRTQgLyogV2ViQ29yZU1vdGlv
bk1hbmFnZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OwogCQkzMTQwMzc5RDEyNEJFQTdGMDBBRjQwRTQgLyogRGV2aWNlT3JpZW50YXRpb25DbGllbnRJ
T1MuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMxNDAz
Nzk5MTI0QkVBN0YwMEFGNDBFNCAvKiBEZXZpY2VPcmllbnRhdGlvbkNsaWVudElPUy5oICovOyB9
OwogCQkzMTQwQzUyMDFGREYxNTFBMDBEMkE4NzMgLyogT2Zmc2NyZWVuQ2FudmFzUmVuZGVyaW5n
Q29udGV4dDJELmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSAzMTQwQzUxRTFGREYxNTFBMDBEMkE4NzMgLyogT2Zmc2NyZWVuQ2FudmFzUmVuZGVyaW5nQ29u
dGV4dDJELmggKi87IH07CiAJCTMxNDBDNTI0MUZERjMxODcwMEQyQTg3MyAvKiBDYW52YXNSZW5k
ZXJpbmdDb250ZXh0MkRCYXNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSAzMTQwQzUyMjFGREYzMTg2MDBEMkE4NzMgLyogQ2FudmFzUmVuZGVyaW5nQ29u
dGV4dDJEQmFzZS5oICovOyB9OwpAQCAtNDc3Niw2ICs0Nzc2LDggQEAKIAkJRTM1ODAyQjYxREM4
NDM1RDAwQTk3NzNDIC8qIERPTUpJVElETFR5cGVGaWx0ZXIuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUzNTgwMkI1MURDODQzNTgwMEE5NzczQyAvKiBE
T01KSVRJRExUeXBlRmlsdGVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0
ZSwgKTsgfTsgfTsKIAkJRTM3N0ZFNEQxREFERTE2NTAwQ0REMDI1IC8qIE5vZGVDb25zdGFudHMu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUzRDA0OTkz
MURBREMwNDUwMDcxOEYzQyAvKiBOb2RlQ29uc3RhbnRzLmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJRTM3Qzg2NTAxRUI2M0UzRjAwODdDNkNBIC8q
IEpTRE9NUHJvbWlzZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gRTM3Qzg2NEYxRUI2M0UyRDAwODdDNkNBIC8qIEpTRE9NUHJvbWlzZS5oICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCUUzOTYyOEJGMjM5NTcy
OEYwMDY1OEVDRCAvKiBTaGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudC5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTM5NjI4QkQyMzk1NzI4RTAwNjU4
RUNEIC8qIFNoYXJlZERldmljZU9yaWVudGF0aW9uQ2xpZW50LmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJRTM5NjI4QzEyMzk1NzQzMTAwNjU4RUNE
IC8qIFdlYkNvcmVNb3Rpb25NYW5hZ2VyQ2xpZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMzk2MjhDMDIzOTU3NDMwMDA2NThFQ0QgLyogV2ViQ29y
ZU1vdGlvbk1hbmFnZXJDbGllbnQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2
YXRlLCApOyB9OyB9OwogCQlFM0E3NzY2NzFEQzg1RDI4MDBCNjkwRDggLyogRE9NSklUSURMQ29u
dmVydC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTNB
Nzc2NjUxREM4NUQyMjAwQjY5MEQ4IC8qIERPTUpJVElETENvbnZlcnQuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlFM0E3NzY2ODFEQzg1RDI4MDBC
NjkwRDggLyogRE9NSklUSURMVHlwZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gRTNBNzc2NjYxREM4NUQyMjAwQjY5MEQ4IC8qIERPTUpJVElETFR5cGUu
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlFM0Iy
RjBFRDFEN0Y0Q0EzMDBCMEM5RDEgLyogTG9hZGFibGVTY3JpcHQuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUzQjJGMEU3MUQ3RjM1RUMwMEIwQzlEMSAv
KiBMb2FkYWJsZVNjcmlwdC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07CkBAIC0xNTA3MCw2ICsxNTA3Miw4IEBACiAJCUUzODgzODk0MUJBRDE0NUYwMEQ2
MkVFMyAvKiBTY3JpcHRNb2R1bGVMb2FkZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gU2NyaXB0TW9kdWxlTG9hZGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJRTM4ODM4OTUxQkFEMTQ1RjAwRDYyRUUzIC8qIFNjcmlwdE1vZHVsZUxvYWRlci5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTY3JpcHRNb2R1bGVMb2FkZXIuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTM4RDA2MDkxRjhFODExOTAwNjQ5Q0YyIC8q
IE1vZHVsZUZldGNoUGFyYW1ldGVycy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBNb2R1bGVGZXRjaFBhcmFtZXRlcnMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
RTM5NjI4QkQyMzk1NzI4RTAwNjU4RUNEIC8qIFNoYXJlZERldmljZU9yaWVudGF0aW9uQ2xpZW50
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNoYXJlZERldmljZU9yaWVudGF0
aW9uQ2xpZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUUzOTYyOEMwMjM5NTc0
MzAwMDY1OEVDRCAvKiBXZWJDb3JlTW90aW9uTWFuYWdlckNsaWVudC5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBXZWJDb3JlTW90aW9uTWFuYWdlckNsaWVudC5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQlFMzk3NUI3NjFFQzlBRjM5MDA4NDc3MTcgLyogSlNEb2N1
bWVudEZyYWdtZW50RE9NSklULmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IEpTRG9jdW1lbnRGcmFnbWVudERPTUpJVC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCUUzOTc1Qjc3MUVDOUFGMzkwMDg0NzcxNyAvKiBKU0VsZW1lbnRET01KSVQuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNFbGVtZW50RE9NSklULmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTM5NzVCNzgxRUM5QUYzOTAwODQ3NzE3IC8q
IEpTRXZlbnRET01KSVQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
SlNFdmVudERPTUpJVC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0yMjgxOSw2
ICsyMjgyMyw3IEBACiAJCQkJRTQ1MzkwMzQwRUFGRDYzNzAwMzY5NUM4IC8qIFNjcm9sbFZpZXdJ
T1MubW0gKi8sCiAJCQkJQkVBODA3QzYwRjcxNEEwMzAwNTI0MTk5IC8qIFNlbGVjdGlvblJlY3Qu
Y3BwICovLAogCQkJCUJFQTgwN0M3MEY3MTRBMDMwMDUyNDE5OSAvKiBTZWxlY3Rpb25SZWN0Lmgg
Ki8sCisJCQkJRTM5NjI4QkQyMzk1NzI4RTAwNjU4RUNEIC8qIFNoYXJlZERldmljZU9yaWVudGF0
aW9uQ2xpZW50LmggKi8sCiAJCQkJMEYwM0MwNzMxODg0Njk1RTAwQTVGOENBIC8qIFN5c3RlbU1l
bW9yeS5oICovLAogCQkJCUU0NTM5MEFEMEVBRkY0QjUwMDM2OTVDOCAvKiBTeXN0ZW1NZW1vcnlJ
T1MuY3BwICovLAogCQkJCTQ0Qzk5MTlEMEYzRDIxMEUwMDU4NjY3MCAvKiBUaGVtZUlPUy5oICov
LApAQCAtMjI4MzUsNiArMjI4NDAsNyBAQAogCQkJCTFGMzZFQTlCMUUyMUJBMTcwMDYyMUUyNSAv
KiBXZWJCYWNrZ3JvdW5kVGFza0NvbnRyb2xsZXIubW0gKi8sCiAJCQkJMzE0MDM3OTcxMjRCRUE3
RjAwQUY0MEU0IC8qIFdlYkNvcmVNb3Rpb25NYW5hZ2VyLmggKi8sCiAJCQkJMzE0MDM3OTgxMjRC
RUE3RjAwQUY0MEU0IC8qIFdlYkNvcmVNb3Rpb25NYW5hZ2VyLm1tICovLAorCQkJCUUzOTYyOEMw
MjM5NTc0MzAwMDY1OEVDRCAvKiBXZWJDb3JlTW90aW9uTWFuYWdlckNsaWVudC5oICovLAogCQkJ
CUZFMEQ4NEU4MTA0ODQzNDgwMDFBMTc5RSAvKiBXZWJFdmVudC5oICovLAogCQkJCUZFMEQ4NEVB
MTA0ODQzNkUwMDFBMTc5RSAvKiBXZWJFdmVudC5tbSAqLywKIAkJCQlGNDgyMjMwRjFFMzg2OUI4
MDA2NkZDNzkgLyogV2ViSXRlbVByb3ZpZGVyUGFzdGVib2FyZC5oICovLApAQCAtMjk1MzUsNiAr
Mjk1NDEsNyBAQAogCQkJCUY0N0EwOUQxMjBBOTNBOTcwMDI0MEZBRSAvKiBEaXNhYmxlZEFkYXB0
YXRpb25zLmggaW4gSGVhZGVycyAqLywKIAkJCQk3RURBQUZDOTE5QTJDQ0RDMDAzNERGRDEgLyog
RGlza0NhY2hlTW9uaXRvckNvY29hLmggaW4gSGVhZGVycyAqLywKIAkJCQkxMTk5RkE1QjIwOEUz
QzdGMDAyMzU4Q0MgLyogRGlzcGxheUJveC5oIGluIEhlYWRlcnMgKi8sCisJCQkJRTQ1MUM2MzQy
Mzk0MDU4RjAwOTkzMTkwIC8qIERpc3BsYXlJbmxpbmVDb250ZW50LmggaW4gSGVhZGVycyAqLywK
IAkJCQkwRkU1RkJEMzFDM0RENTFFMDAwN0EyQ0EgLyogRGlzcGxheUxpc3QuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTBGRTVGQkQ1MUMzREQ1MUUwMDA3QTJDQSAvKiBEaXNwbGF5TGlzdEl0ZW1zLmgg
aW4gSGVhZGVycyAqLywKIAkJCQkwRkU1RkJENzFDM0RENTFFMDAwN0EyQ0EgLyogRGlzcGxheUxp
c3RSZWNvcmRlci5oIGluIEhlYWRlcnMgKi8sCkBAIC0zMDA0OCw3ICszMDA1NSw2IEBACiAJCQkJ
QTg3MURCMkIwQTE1MEJENjAwQjEyQTY4IC8qIEhUTUxUYWJsZUNhcHRpb25FbGVtZW50LmggaW4g
SGVhZGVycyAqLywKIAkJCQlBODcxREIyQTBBMTUwQkQ2MDBCMTJBNjggLyogSFRNTFRhYmxlQ2Vs
bEVsZW1lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUE4NzFEQjJGMEExNTBCRDYwMEIxMkE2OCAv
KiBIVE1MVGFibGVDb2xFbGVtZW50LmggaW4gSGVhZGVycyAqLywKLQkJCQlFNDUxQzYyODIzOTI5
M0VDMDA5OTMxOTAgLyogTGluZUxheW91dFRyYXZlcnNhbERpc3BsYXlSdW5QYXRoLmggaW4gSGVh
ZGVycyAqLywKIAkJCQlBODcxREIyNzBBMTUwQkQ2MDBCMTJBNjggLyogSFRNTFRhYmxlRWxlbWVu
dC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTg3MURCMkMwQTE1MEJENjAwQjEyQTY4IC8qIEhUTUxU
YWJsZVBhcnRFbGVtZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlBODcxREIzMTBBMTUwQkQ2MDBC
MTJBNjggLyogSFRNTFRhYmxlUm93RWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCkBAIC0zMDE2MCw3
ICszMDE2Niw2IEBACiAJCQkJQkM3RjQ0QTgwQjlFMzI0RTAwQTlEMDgxIC8qIEltYWdlT2JzZXJ2
ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTJENUE1OTMxMTUyNTI1RDAwMDM2RUU1MSAvKiBJbWFn
ZU9yaWVudGF0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQk3MjI4M0YwRTIzMEIyNjhDMDBGNUQ4
MjggLyogSW1hZ2VQYWludGluZ09wdGlvbnMuaCBpbiBIZWFkZXJzICovLAotCQkJCUU0NTFDNjMy
MjM5NDAzMUEwMDk5MzE5MCAvKiBNYXJnaW5UeXBlcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjUx
QTJGM0YxN0Q3RDNBRTAwNzI1MTdBIC8qIEltYWdlUXVhbGl0eUNvbnRyb2xsZXIuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTQ5MjkxRTRCMTM0MTcyQzgwMEU3NTNERSAvKiBJbWFnZVJlbmRlcmluZ01v
ZGUuaCBpbiBIZWFkZXJzICovLAogCQkJCUNEMjdBRTUwMjJBOTg2ODcwMDk0N0ZGOSAvKiBJbWFn
ZVJvdGF0aW9uU2Vzc2lvblZULmggaW4gSGVhZGVycyAqLywKQEAgLTMwNTUzLDcgKzMwNTU4LDYg
QEAKIAkJCQk4MzcwNTY5MDFGNTA5MTVDMDBEOTM0MjUgLyogSlNGaWxlU3lzdGVtRW50cnlDYWxs
YmFjay5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODMzQjlFMzYxRjUwOEQ4NTAwRTBFNDI4IC8qIEpT
RmlsZVN5c3RlbUZpbGVFbnRyeS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNzEyQkU0ODgxRkU4Njg2
QTAwMjAzMUNDIC8qIEpTRmlsbE1vZGUuaCBpbiBIZWFkZXJzICovLAotCQkJCUU0MzQzRDI1MjM5
Mjc3OTAwMEVCQkI2NiAvKiBMaW5lTGF5b3V0VHJhdmVyc2FsQ29tcGxleFBhdGguaCBpbiBIZWFk
ZXJzICovLAogCQkJCUI2RDlEMjdCMTRFQUMwODYwMDkwRDc1RSAvKiBKU0ZvY3VzRXZlbnQuaCBp
biBIZWFkZXJzICovLAogCQkJCUMyODA4MzNGMUM2REMyNkYwMDE0NTFCNiAvKiBKU0ZvbnRGYWNl
LmggaW4gSGVhZGVycyAqLywKIAkJCQkxQzI0RUVBOTFDNzJBN0I0MDA4MEY4RkMgLyogSlNGb250
RmFjZVNldC5oIGluIEhlYWRlcnMgKi8sCkBAIC0zMTE3Nyw2ICszMTE4MSw3IEBACiAJCQkJNkY3
Q0EzQzYyMDhDMjk1NzAwMkYyOUFCIC8qIExheW91dFN0YXRlLmggaW4gSGVhZGVycyAqLywKIAkJ
CQkxMTMxMENGMjIwQkE0QTMyMDA2NUE4RDAgLyogTGF5b3V0VHJlZUJ1aWxkZXIuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTE0MURDMDQ4MTY0ODM0OEYwMDM3MUU1QSAvKiBMYXlvdXRVbml0LmggaW4g
SGVhZGVycyAqLywKKwkJCQlFNDUxQzYzMTIzOTQwMjc5MDA5OTMxOTAgLyogTGF5b3V0VW5pdHMu
aCBpbiBIZWFkZXJzICovLAogCQkJCUNERThCNUVEMUE2OTc3NzMwMEI0QjY2QSAvKiBMZWdhY3lD
RE1Qcml2YXRlQ2xlYXJLZXkuaCBpbiBIZWFkZXJzICovLAogCQkJCUNERjRCNzEyMUUwMDg3QUUw
MEUyMzVBMiAvKiBMZWdhY3lDRE1TZXNzaW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQlDREU4QjVG
MTFBNjk3NzhCMDBCNEI2NkEgLyogTGVnYWN5Q0RNU2Vzc2lvbkNsZWFyS2V5LmggaW4gSGVhZGVy
cyAqLywKQEAgLTMxMjA4LDYgKzMxMjEzLDkgQEAKIAkJCQk2RjI2RUI0ODIzNDAwNEE1MDA2OTA2
RTIgLyogTGluZUxheW91dENvbnRleHQuaCBpbiBIZWFkZXJzICovLAogCQkJCUZGRUZBQjJBMTgz
ODBEQTAwMDUxNDUzNCAvKiBMaW5lTGF5b3V0U3RhdGUuaCBpbiBIZWFkZXJzICovLAogCQkJCUU0
ODRBMzNFMjMwNTUzMjUwMDlBREU2QSAvKiBMaW5lTGF5b3V0VHJhdmVyc2FsLmggaW4gSGVhZGVy
cyAqLywKKwkJCQlFNDM0M0QyNTIzOTI3NzkwMDBFQkJCNjYgLyogTGluZUxheW91dFRyYXZlcnNh
bENvbXBsZXhQYXRoLmggaW4gSGVhZGVycyAqLywKKwkJCQlFNDUxQzYyODIzOTI5M0VDMDA5OTMx
OTAgLyogTGluZUxheW91dFRyYXZlcnNhbERpc3BsYXlSdW5QYXRoLmggaW4gSGVhZGVycyAqLywK
KwkJCQlFNDM0M0QyMzIzOTI3Nzg0MDBFQkJCNjYgLyogTGluZUxheW91dFRyYXZlcnNhbFNpbXBs
ZVBhdGguaCBpbiBIZWFkZXJzICovLAogCQkJCUZGREJDMDQ3MTgzRDI3QjcwMDQwNzEwOSAvKiBM
aW5lV2lkdGguaCBpbiBIZWFkZXJzICovLAogCQkJCUNCQTlEQzBCMURGNDRERjQwMDA1Njc1QyAv
KiBMaW5rSGVhZGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk1MTQzQjI2MzFEREQxNTIwMDAxNEZB
QzYgLyogTGlua0ljb24uaCBpbiBIZWFkZXJzICovLApAQCAtMzEyNDEsNiArMzEyNDksNyBAQAog
CQkJCTQ2RUZBRjEyMUU1RkI5RjEwMEU3RjM0QiAvKiBMb3dQb3dlck1vZGVOb3RpZmllci5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJN0FFNkM5M0MxQkUwQzYwMTAwRTE5RTAzIC8qIE1haW5UaHJlYWRT
aGFyZWRUaW1lci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUE4RjZCQzYwREI1NUNEQzAwMURCNzk0
IC8qIE1hbmlmZXN0UGFyc2VyLmggaW4gSGVhZGVycyAqLywKKwkJCQlFNDUxQzYzMjIzOTQwMzFB
MDA5OTMxOTAgLyogTWFyZ2luVHlwZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCUNFMTg2NjQ1MUY3
MkU1QjQwMEEwQ0FCNiAvKiBNYXJrZWRUZXh0LmggaW4gSGVhZGVycyAqLywKIAkJCQk5MzMwOURG
ODA5OUU2NDkyMDA1NkU1ODEgLyogbWFya3VwLmggaW4gSGVhZGVycyAqLywKIAkJCQk5NzI4QzMx
NDEyNjhFNDM5MDA0MUU4OUIgLyogTWFya3VwQWNjdW11bGF0b3IuaCBpbiBIZWFkZXJzICovLApA
QCAtMzE3MDEsNyArMzE3MTAsNiBAQAogCQkJCTU3RENFRDc0MjE0MzA1RjAwMDE2Qjg0NyAvKiBQ
dWJsaWNLZXlDcmVkZW50aWFsRGF0YS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTczMDNCRUYyMDA5
ODBDNjAwMzU1OTY1IC8qIFB1YmxpY0tleUNyZWRlbnRpYWxEZXNjcmlwdG9yLmggaW4gSGVhZGVy
cyAqLywKIAkJCQk1NzMwM0MwQTIwMDk5QkFEMDAzNTU5NjUgLyogUHVibGljS2V5Q3JlZGVudGlh
bFJlcXVlc3RPcHRpb25zLmggaW4gSGVhZGVycyAqLywKLQkJCQlFNDM0M0QyMzIzOTI3Nzg0MDBF
QkJCNjYgLyogTGluZUxheW91dFRyYXZlcnNhbFNpbXBsZVBhdGguaCBpbiBIZWFkZXJzICovLAog
CQkJCTU3MzAzQkVCMjAwOTdGNDAwMDM1NTk2NSAvKiBQdWJsaWNLZXlDcmVkZW50aWFsVHlwZS5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJMDA4MUZGMDAxNkIwQTJEMzAwOEFBQTdBIC8qIFB1YmxpY1N1
ZmZpeC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMTBGQjA4NEIxNEUxNUM3RTAwQTNEQjk4IC8qIFB1
YmxpY1VSTE1hbmFnZXIuaCBpbiBIZWFkZXJzICovLApAQCAtMzIxNTYsNiArMzIxNjQsNyBAQAog
CQkJCUZEMUFGMTUwMTY1NkYxNTEwMEM2RDRGNyAvKiBTaGFwZVZhbHVlLmggaW4gSGVhZGVycyAq
LywKIAkJCQkxRDlGMEZDMTIxMjIwMjlCMDA1RDhGRDQgLyogU2hhcmVEYXRhLmggaW4gSGVhZGVy
cyAqLywKIAkJCQkxQTRBOTU0RTBCNEVEQ0NCMDAyRDhDM0MgLyogU2hhcmVkQnVmZmVyLmggaW4g
SGVhZGVycyAqLywKKwkJCQlFMzk2MjhCRjIzOTU3MjhGMDA2NThFQ0QgLyogU2hhcmVkRGV2aWNl
T3JpZW50YXRpb25DbGllbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTgzNERGQUQwMUY3REFFNUQw
MEMyNzI1QiAvKiBTaGFyZWRTdHJpbmdIYXNoLmggaW4gSGVhZGVycyAqLywKIAkJCQk5MzMwOUVB
MzA5OUVCNzhDMDA1NkU1ODEgLyogU2hhcmVkVGltZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTgz
NjJFOEMxMjBDRUY5Q0IwMDI0NTg4NiAvKiBTaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQuaCBp
biBIZWFkZXJzICovLApAQCAtMzI0OTYsNyArMzI1MDUsNiBAQAogCQkJCUIyMjI3QURBMEQwMEJG
MjIwMDcxQjc4MiAvKiBTVkdUcmFuc2Zvcm1hYmxlLmggaW4gSGVhZGVycyAqLywKIAkJCQlCMjIy
N0FERDBEMDBCRjIyMDA3MUI3ODIgLyogU1ZHVHJhbnNmb3JtRGlzdGFuY2UuaCBpbiBIZWFkZXJz
ICovLAogCQkJCUIyMjI3QURGMEQwMEJGMjIwMDcxQjc4MiAvKiBTVkdUcmFuc2Zvcm1MaXN0Lmgg
aW4gSGVhZGVycyAqLywKLQkJCQlFNDUxQzYzMTIzOTQwMjc5MDA5OTMxOTAgLyogTGF5b3V0VW5p
dHMuaCBpbiBIZWFkZXJzICovLAogCQkJCTdDRTU4RDU4MUREN0Q5NkQwMDEyODU1MiAvKiBTVkdU
cmFuc2Zvcm1WYWx1ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjIyMjdBRTIwRDAwQkYyMjAwNzFC
NzgyIC8qIFNWR1RSZWZFbGVtZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlCMjIyN0FFNTBEMDBC
RjIyMDA3MUI3ODIgLyogU1ZHVFNwYW5FbGVtZW50LmggaW4gSGVhZGVycyAqLywKQEAgLTMyNzc3
LDYgKzMyNzg1LDcgQEAKIAkJCQlCQzUzRDkxMTExNDMxMENDMDAwRDgxN0UgLyogV2ViQ29yZUpT
Q2xpZW50RGF0YS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTNGMTk5QkIwODI0NUU1OTAwMUU5QUJD
IC8qIFdlYkNvcmVLZXlib2FyZFVJTW9kZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMzE0MDM3OUIx
MjRCRUE3RjAwQUY0MEU0IC8qIFdlYkNvcmVNb3Rpb25NYW5hZ2VyLmggaW4gSGVhZGVycyAqLywK
KwkJCQlFMzk2MjhDMTIzOTU3NDMxMDA2NThFQ0QgLyogV2ViQ29yZU1vdGlvbk1hbmFnZXJDbGll
bnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUNEQzk3OUY1MUM0OThDMDkwMERCNTBENCAvKiBXZWJD
b3JlTlNFcnJvckV4dHJhcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRjRFNTdFRTEyMTNGNDM0QTAw
NEVBOThFIC8qIFdlYkNvcmVOU0ZvbnRNYW5hZ2VyRXh0cmFzLmggaW4gSGVhZGVycyAqLywKIAkJ
CQlDNUI0QzI0RDE1MDkyMzZDMDBBNkVGMzcgLyogV2ViQ29yZU5TVVJMRXh0cmFzLmggaW4gSGVh
ZGVycyAqLywKQEAgLTMyODI2LDcgKzMyODM1LDYgQEAKIAkJCQk0OUM3QjlFMDEwNDJEMzJGMDAw
OUQ0NDcgLyogV2ViR0xSZW5kZXJpbmdDb250ZXh0LmggaW4gSGVhZGVycyAqLywKIAkJCQlEM0Yz
RDM2QTFBNjlCN0I5MDA1OUZDMkIgLyogV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJNkY5OTVBMjIxQTcwNzhCMTAwQTczNUY0IC8qIFdlYkdMU2FtcGxlci5o
IGluIEhlYWRlcnMgKi8sCi0JCQkJRTQ1MUM2MzQyMzk0MDU4RjAwOTkzMTkwIC8qIERpc3BsYXlJ
bmxpbmVDb250ZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQk0OUM3QjlFMzEwNDJEMzJGMDAwOUQ0
NDcgLyogV2ViR0xTaGFkZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUEwN0QzMzU4MTUyQjYzMkQw
MDFCNjM5MyAvKiBXZWJHTFNoYWRlclByZWNpc2lvbkZvcm1hdC5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJMDFEM0NGODcxNEJEMEEzMDAwRkU5OTcwIC8qIFdlYkdMU2hhcmVkT2JqZWN0LmggaW4gSGVh
ZGVycyAqLywKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2RvbS9EZXZpY2VPcmllbnRhdGlvbkNsaWVu
dC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2RvbS9EZXZpY2VPcmllbnRhdGlvbkNs
aWVudC5oCShyZXZpc2lvbiAyNTI5ODMpCisrKyBTb3VyY2UvV2ViQ29yZS9kb20vRGV2aWNlT3Jp
ZW50YXRpb25DbGllbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMjgsMTIgKzI4LDE0IEBACiAKICNp
bmNsdWRlICJEZXZpY2VDbGllbnQuaCIKICNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUuaD4KKyNp
bmNsdWRlIDx3dGYvUmVmUHRyLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgRGV2
aWNlT3JpZW50YXRpb25Db250cm9sbGVyOwogY2xhc3MgRGV2aWNlT3JpZW50YXRpb25EYXRhOwog
Y2xhc3MgUGFnZTsKK2NsYXNzIFNoYXJlZERldmljZU9yaWVudGF0aW9uQ2xpZW50OwogCiBjbGFz
cyBEZXZpY2VPcmllbnRhdGlvbkNsaWVudCA6IHB1YmxpYyBEZXZpY2VDbGllbnQgewogICAgIFdU
Rl9NQUtFX05PTkNPUFlBQkxFKERldmljZU9yaWVudGF0aW9uQ2xpZW50KTsKQEAgLTQzLDYgKzQ1
LDEwIEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgc2V0Q29udHJvbGxlcihEZXZpY2VPcmll
bnRhdGlvbkNvbnRyb2xsZXIqKSA9IDA7CiAgICAgdmlydHVhbCBEZXZpY2VPcmllbnRhdGlvbkRh
dGEqIGxhc3RPcmllbnRhdGlvbigpIGNvbnN0ID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgZGV2aWNl
T3JpZW50YXRpb25Db250cm9sbGVyRGVzdHJveWVkKCkgPSAwOworCisjaWYgUExBVEZPUk0oSU9T
X0ZBTUlMWSkKKyAgICB2aXJ0dWFsIHZvaWQgc2V0U2hhcmVkRGV2aWNlT3JpZW50YXRpb25DbGll
bnQoUmVmUHRyPFNoYXJlZERldmljZU9yaWVudGF0aW9uQ2xpZW50PikgeyB9OworI2VuZGlmCiB9
OwogCiBXRUJDT1JFX0VYUE9SVCB2b2lkIHByb3ZpZGVEZXZpY2VPcmllbnRhdGlvblRvKFBhZ2Um
LCBEZXZpY2VPcmllbnRhdGlvbkNsaWVudCYpOwpJbmRleDogU291cmNlL1dlYkNvcmUvZG9tL0Rv
Y3VtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3Bw
CShyZXZpc2lvbiAyNTI5ODMpCisrKyBTb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC02MDcsOSArNjA3LDE1IEBAIERvY3VtZW50OjpEb2N1bWVudChGcmFt
ZSogZnJhbWUsIGNvbnN0IFUKICAgICAgICAgbm9kZUxpc3RBbmRDb2xsZWN0aW9uQ291bnQgPSAw
OwogCiAgICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjphZGRFdmVudExpc3RlbmVyc1RvTm9k
ZSgqdGhpcyk7CisgICAgCiAjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKICAgICBtX3NldHRpbmdz
LT5zZXRMZWdhY3lHZXRVc2VyTWVkaWFFbmFibGVkKHF1aXJrcygpLnNob3VsZEVuYWJsZUxlZ2Fj
eUdldFVzZXJNZWRpYSgpKTsKICNlbmRpZgorCisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkgJiYg
RU5BQkxFKERFVklDRV9PUklFTlRBVElPTikKKyAgICBpZiAocGFnZSgpICYmIHBhZ2UoKS0+c2hh
cmVkRGV2aWNlT3JpZW50YXRpb25DbGllbnQoKSkKKyAgICAgICAgbV9kZXZpY2VPcmllbnRhdGlv
bkNsaWVudC0+c2V0U2hhcmVkRGV2aWNlT3JpZW50YXRpb25DbGllbnQocGFnZSgpLT5zaGFyZWRE
ZXZpY2VPcmllbnRhdGlvbkNsaWVudCgpKTsKKyNlbmRpZgogfQogCiBSZWY8RG9jdW1lbnQ+IERv
Y3VtZW50OjpjcmVhdGUoRG9jdW1lbnQmIGNvbnRleHREb2N1bWVudCkKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL3BhZ2UvUGFnZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGFnZS9Q
YWdlLmNwcAkocmV2aXNpb24gMjUyOTgzKQorKysgU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNw
cAkod29ya2luZyBjb3B5KQpAQCAtMjg5LDYgKzI4OSw5IEBAIFBhZ2U6OlBhZ2UoUGFnZUNvbmZp
Z3VyYXRpb24mJiBwYWdlQ29uZmkKICNpZiBFTkFCTEUoQVBQTElDQVRJT05fTUFOSUZFU1QpCiAg
ICAgLCBtX2FwcGxpY2F0aW9uTWFuaWZlc3QocGFnZUNvbmZpZ3VyYXRpb24uYXBwbGljYXRpb25N
YW5pZmVzdCkKICNlbmRpZgorI2lmIEVOQUJMRShERVZJQ0VfT1JJRU5UQVRJT04pICYmIFBMQVRG
T1JNKElPU19GQU1JTFkpCisgICAgLCBtX3NoYXJlZERldmljZU9yaWVudGF0aW9uQ2xpZW50KFdU
Rk1vdmUocGFnZUNvbmZpZ3VyYXRpb24uc2hhcmVkRGV2aWNlT3JpZW50YXRpb25DbGllbnQpKQor
I2VuZGlmCiB7CiAgICAgdXBkYXRlVGltZXJUaHJvdHRsaW5nU3RhdGUoKTsKIApJbmRleDogU291
cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGFn
ZS9QYWdlLmgJKHJldmlzaW9uIDI1Mjk4MykKKysrIFNvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5o
CSh3b3JraW5nIGNvcHkpCkBAIC02OSw2ICs2OSwxMCBAQAogI2luY2x1ZGUgIk1lZGlhUGxheWJh
Y2tUYXJnZXRDb250ZXh0LmgiCiAjZW5kaWYKIAorI2lmIEVOQUJMRShERVZJQ0VfT1JJRU5UQVRJ
T04pICYmIFBMQVRGT1JNKElPU19GQU1JTFkpCisjaW5jbHVkZSAiU2hhcmVkRGV2aWNlT3JpZW50
YXRpb25DbGllbnQuaCIKKyNlbmRpZgorCiBuYW1lc3BhY2UgSlNDIHsKIGNsYXNzIERlYnVnZ2Vy
OwogfQpAQCAtNzE5LDYgKzcyMywxMCBAQCBwdWJsaWM6CiAKICAgICBXRUJDT1JFX0VYUE9SVCBW
ZWN0b3I8UmVmPEVsZW1lbnQ+PiBlZGl0YWJsZUVsZW1lbnRzSW5SZWN0KGNvbnN0IEZsb2F0UmVj
dCYpIGNvbnN0OwogCisjaWYgRU5BQkxFKERFVklDRV9PUklFTlRBVElPTikgJiYgUExBVEZPUk0o
SU9TX0ZBTUlMWSkKKyAgICBSZWZQdHI8U2hhcmVkRGV2aWNlT3JpZW50YXRpb25DbGllbnQ+IHNo
YXJlZERldmljZU9yaWVudGF0aW9uQ2xpZW50KCkgY29uc3QgeyByZXR1cm4gbV9zaGFyZWREZXZp
Y2VPcmllbnRhdGlvbkNsaWVudDsgfQorI2VuZGlmCisKIHByaXZhdGU6CiAgICAgc3RydWN0IE5h
dmlnYXRpb24gewogICAgICAgICBSZWdpc3RyYWJsZURvbWFpbiBkb21haW47CkBAIC05OTAsNiAr
OTk4LDEwIEBAIHByaXZhdGU6CiAKICAgICBPcHRpb25hbDxWaWV3cG9ydEFyZ3VtZW50cz4gbV9v
dmVycmlkZVZpZXdwb3J0QXJndW1lbnRzOwogCisjaWYgRU5BQkxFKERFVklDRV9PUklFTlRBVElP
TikgJiYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKyAgICBSZWZQdHI8U2hhcmVkRGV2aWNlT3JpZW50
YXRpb25DbGllbnQ+IG1fc2hhcmVkRGV2aWNlT3JpZW50YXRpb25DbGllbnQ7CisjZW5kaWYKKwog
ICAgIGJvb2wgbV9zaG91bGRFbmFibGVJQ0VDYW5kaWRhdGVGaWx0ZXJpbmdCeURlZmF1bHQgeyB0
cnVlIH07CiAgICAgYm9vbCBtX21lZGlhUGxheWJhY2tJc1N1c3BlbmRlZCB7IGZhbHNlIH07CiAg
ICAgYm9vbCBtX21lZGlhQnVmZmVyaW5nSXNTdXNwZW5kZWQgeyBmYWxzZSB9OwpJbmRleDogU291
cmNlL1dlYkNvcmUvcGFnZS9QYWdlQ29uZmlndXJhdGlvbi5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL3BhZ2UvUGFnZUNvbmZpZ3VyYXRpb24uaAkocmV2aXNpb24gMjUyOTgzKQorKysg
U291cmNlL1dlYkNvcmUvcGFnZS9QYWdlQ29uZmlndXJhdGlvbi5oCSh3b3JraW5nIGNvcHkpCkBA
IC01Nyw2ICs1Nyw3IEBAIGNsYXNzIFBlcmZvcm1hbmNlTG9nZ2luZ0NsaWVudDsKIGNsYXNzIFBs
dWdJbkNsaWVudDsKIGNsYXNzIFBsdWdpbkluZm9Qcm92aWRlcjsKIGNsYXNzIFByb2dyZXNzVHJh
Y2tlckNsaWVudDsKK2NsYXNzIFNoYXJlZERldmljZU9yaWVudGF0aW9uQ2xpZW50OwogY2xhc3Mg
U29ja2V0UHJvdmlkZXI7CiBjbGFzcyBTdG9yYWdlTmFtZXNwYWNlUHJvdmlkZXI7CiBjbGFzcyBV
c2VyQ29udGVudFByb3ZpZGVyOwpAQCAtMTE4LDYgKzExOSwxMCBAQCBwdWJsaWM6CiAgICAgUmVm
UHRyPFN0b3JhZ2VOYW1lc3BhY2VQcm92aWRlcj4gc3RvcmFnZU5hbWVzcGFjZVByb3ZpZGVyOwog
ICAgIFJlZlB0cjxVc2VyQ29udGVudFByb3ZpZGVyPiB1c2VyQ29udGVudFByb3ZpZGVyOwogICAg
IFJlZlB0cjxWaXNpdGVkTGlua1N0b3JlPiB2aXNpdGVkTGlua1N0b3JlOworICAgIAorI2lmIEVO
QUJMRShERVZJQ0VfT1JJRU5UQVRJT04pICYmIFBMQVRGT1JNKElPU19GQU1JTFkpCisgICAgUmVm
UHRyPFNoYXJlZERldmljZU9yaWVudGF0aW9uQ2xpZW50PiBzaGFyZWREZXZpY2VPcmllbnRhdGlv
bkNsaWVudDsKKyNlbmRpZgogfTsKIAogfQpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
aW9zL0RldmljZU9yaWVudGF0aW9uQ2xpZW50SU9TLmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vaW9zL0RldmljZU9yaWVudGF0aW9uQ2xpZW50SU9TLmgJKHJldmlzaW9u
IDI1Mjk4MykKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9EZXZpY2VPcmllbnRhdGlv
bkNsaWVudElPUy5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMCwxMyArMzAsMTUgQEAKICNpbmNsdWRl
ICJEZXZpY2VPcmllbnRhdGlvbkNsaWVudC5oIgogI2luY2x1ZGUgIkRldmljZU9yaWVudGF0aW9u
Q29udHJvbGxlci5oIgogI2luY2x1ZGUgIkRldmljZU9yaWVudGF0aW9uRGF0YS5oIgorI2luY2x1
ZGUgIlNoYXJlZERldmljZU9yaWVudGF0aW9uQ2xpZW50LmgiCisjaW5jbHVkZSAiV2ViQ29yZU1v
dGlvbk1hbmFnZXJDbGllbnQuaCIKICNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CiAKIE9CSkNfQ0xB
U1MgV2ViQ29yZU1vdGlvbk1hbmFnZXI7CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotY2xhc3Mg
RGV2aWNlT3JpZW50YXRpb25DbGllbnRJT1MgOiBwdWJsaWMgRGV2aWNlT3JpZW50YXRpb25DbGll
bnQgeworY2xhc3MgRGV2aWNlT3JpZW50YXRpb25DbGllbnRJT1MgOiBwdWJsaWMgRGV2aWNlT3Jp
ZW50YXRpb25DbGllbnQsIHB1YmxpYyBXZWJDb3JlTW90aW9uTWFuYWdlckNsaWVudCB7CiBwdWJs
aWM6CiAgICAgRGV2aWNlT3JpZW50YXRpb25DbGllbnRJT1MoKTsKICAgICB+RGV2aWNlT3JpZW50
YXRpb25DbGllbnRJT1MoKSBvdmVycmlkZTsKQEAgLTQ2LDEyICs0OCwxNSBAQCBwdWJsaWM6CiAg
ICAgRGV2aWNlT3JpZW50YXRpb25EYXRhKiBsYXN0T3JpZW50YXRpb24oKSBjb25zdCBvdmVycmlk
ZTsKICAgICB2b2lkIGRldmljZU9yaWVudGF0aW9uQ29udHJvbGxlckRlc3Ryb3llZCgpIG92ZXJy
aWRlOwogCi0gICAgdm9pZCBvcmllbnRhdGlvbkNoYW5nZWQoZG91YmxlLCBkb3VibGUsIGRvdWJs
ZSwgZG91YmxlLCBkb3VibGUpOworICAgIHZvaWQgb3JpZW50YXRpb25DaGFuZ2VkKGRvdWJsZSwg
ZG91YmxlLCBkb3VibGUsIGRvdWJsZSwgZG91YmxlKSBvdmVycmlkZTsKIAorICAgIHZvaWQgc2V0
U2hhcmVkRGV2aWNlT3JpZW50YXRpb25DbGllbnQoUmVmUHRyPFNoYXJlZERldmljZU9yaWVudGF0
aW9uQ2xpZW50PiBzaGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudCkgb3ZlcnJpZGUgeyBtX3No
YXJlZERldmljZU9yaWVudGF0aW9uQ2xpZW50ID0gc2hhcmVkRGV2aWNlT3JpZW50YXRpb25DbGll
bnQ7IH0KKyAgICAKIHByaXZhdGU6CiAgICAgV2ViQ29yZU1vdGlvbk1hbmFnZXIqIG1fbW90aW9u
TWFuYWdlcjsKICAgICBEZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXIqIG1fY29udHJvbGxlcjsK
ICAgICBSZWZQdHI8RGV2aWNlT3JpZW50YXRpb25EYXRhPiBtX2N1cnJlbnREZXZpY2VPcmllbnRh
dGlvbjsKKyAgICBSZWZQdHI8U2hhcmVkRGV2aWNlT3JpZW50YXRpb25DbGllbnQ+IG1fc2hhcmVk
RGV2aWNlT3JpZW50YXRpb25DbGllbnQ7CiAgICAgYm9vbCBtX3VwZGF0aW5nOwogfTsKIApJbmRl
eDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL0RldmljZU9yaWVudGF0aW9uQ2xpZW50SU9T
Lm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9EZXZpY2VPcmll
bnRhdGlvbkNsaWVudElPUy5tbQkocmV2aXNpb24gMjUyOTgzKQorKysgU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vaW9zL0RldmljZU9yaWVudGF0aW9uQ2xpZW50SU9TLm1tCSh3b3JraW5nIGNvcHkp
CkBAIC01Myw2ICs1MywxMSBAQCB2b2lkIERldmljZU9yaWVudGF0aW9uQ2xpZW50SU9TOjpzdGFy
dFVwCiB7CiAgICAgbV91cGRhdGluZyA9IHRydWU7CiAKKyAgICBpZiAobV9zaGFyZWREZXZpY2VP
cmllbnRhdGlvbkNsaWVudCkgeworICAgICAgICBtX3NoYXJlZERldmljZU9yaWVudGF0aW9uQ2xp
ZW50LT5zdGFydFVwZGF0aW5nKCp0aGlzKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKwogICAg
IGlmICghbV9tb3Rpb25NYW5hZ2VyKQogICAgICAgICBtX21vdGlvbk1hbmFnZXIgPSBbV2ViQ29y
ZU1vdGlvbk1hbmFnZXIgc2hhcmVkTWFuYWdlcl07CiAKQEAgLTYzLDYgKzY4LDExIEBAIHZvaWQg
RGV2aWNlT3JpZW50YXRpb25DbGllbnRJT1M6OnN0b3BVcGQKIHsKICAgICBtX3VwZGF0aW5nID0g
ZmFsc2U7CiAKKyAgICBpZiAobV9zaGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudCkgeworICAg
ICAgICBtX3NoYXJlZERldmljZU9yaWVudGF0aW9uQ2xpZW50LT5zdG9wVXBkYXRpbmcoKnRoaXMp
OworICAgICAgICByZXR1cm47CisgICAgfQorCiAgICAgLy8gUmVtb3ZlIG91cnNlbHZlcyBhcyB0
aGUgb3JpZW50YXRpb24gY2xpZW50IHNvIHdlIHdvbid0IGdldCB1cGRhdGVzLgogICAgIFttX21v
dGlvbk1hbmFnZXIgcmVtb3ZlT3JpZW50YXRpb25DbGllbnQ6dGhpc107CiB9CkBAIC03NCw2ICs4
NCwxMSBAQCBEZXZpY2VPcmllbnRhdGlvbkRhdGEqIERldmljZU9yaWVudGF0aW9uCiAKIHZvaWQg
RGV2aWNlT3JpZW50YXRpb25DbGllbnRJT1M6OmRldmljZU9yaWVudGF0aW9uQ29udHJvbGxlckRl
c3Ryb3llZCgpCiB7CisgICAgaWYgKG1fc2hhcmVkRGV2aWNlT3JpZW50YXRpb25DbGllbnQpIHsK
KyAgICAgICAgbV9zaGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudC0+c3RvcFVwZGF0aW5nKCp0
aGlzKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKwogICAgIFttX21vdGlvbk1hbmFnZXIgcmVt
b3ZlT3JpZW50YXRpb25DbGllbnQ6dGhpc107CiB9CiAgICAgCkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9pb3MvU2hhcmVkRGV2aWNlT3JpZW50YXRpb25DbGllbnQuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvU2hhcmVkRGV2aWNlT3JpZW50YXRpb25D
bGllbnQuaAkobm9uZXhpc3RlbnQpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvU2hh
cmVkRGV2aWNlT3JpZW50YXRpb25DbGllbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDQ5
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqICAq
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBD
T1BZUklHSFQgSE9MREVSUyBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBD
T1BZUklHSFQgT1dORVIgT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJP
Q1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpICYm
IEVOQUJMRShERVZJQ0VfT1JJRU5UQVRJT04pCisKKyNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5o
PgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFdlYkNvcmVNb3Rpb25NYW5hZ2VyQ2xp
ZW50OworCitjbGFzcyBTaGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudCA6IHB1YmxpYyBSZWZD
b3VudGVkPFNoYXJlZERldmljZU9yaWVudGF0aW9uQ2xpZW50PiB7CitwdWJsaWM6CisgICAgU2hh
cmVkRGV2aWNlT3JpZW50YXRpb25DbGllbnQoKSB7IH0KKyAgICB2aXJ0dWFsIH5TaGFyZWREZXZp
Y2VPcmllbnRhdGlvbkNsaWVudCgpIHsgfQorCisgICAgdmlydHVhbCB2b2lkIHN0YXJ0VXBkYXRp
bmcoV2ViQ29yZU1vdGlvbk1hbmFnZXJDbGllbnQmKSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgc3Rv
cFVwZGF0aW5nKFdlYkNvcmVNb3Rpb25NYW5hZ2VyQ2xpZW50JikgeyB9CisKKyAgICB2aXJ0dWFs
IHZvaWQgZGV2aWNlT3JpZW50YXRpb25DaGFuZ2VkKGRvdWJsZSwgZG91YmxlLCBkb3VibGUsIGRv
dWJsZSwgZG91YmxlKSB7IH0KK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlm
IC8vIFBMQVRGT1JNKElPU19GQU1JTFkpICYmIEVOQUJMRShERVZJQ0VfT1JJRU5UQVRJT04pCklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvV2ViQ29yZU1vdGlvbk1hbmFnZXIuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvV2ViQ29yZU1vdGlvbk1h
bmFnZXIuaAkocmV2aXNpb24gMjUyOTgzKQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9z
L1dlYkNvcmVNb3Rpb25NYW5hZ2VyLmgJKHdvcmtpbmcgY29weSkKQEAgLTI1LDggKzI1LDYgQEAK
IAogI3ByYWdtYSBvbmNlCiAKLSNpbXBvcnQgIkRldmljZU1vdGlvbkNsaWVudElPUy5oIgotI2lt
cG9ydCAiRGV2aWNlT3JpZW50YXRpb25DbGllbnRJT1MuaCIKICNpbXBvcnQgPENvcmVMb2NhdGlv
bi9Db3JlTG9jYXRpb24uaD4KICNpbXBvcnQgPHd0Zi9IYXNoQ291bnRlZFNldC5oPgogCkBAIC0z
NiwxMSArMzQsMTYgQEAKIAogY29uc3QgZmxvYXQga01vdGlvblVwZGF0ZUludGVydmFsID0gMS4w
ZiAvIDYwLjBmOwogCi1AaW50ZXJmYWNlIFdlYkNvcmVNb3Rpb25NYW5hZ2VyIDogTlNPYmplY3Qg
eworbmFtZXNwYWNlIFdlYkNvcmUgeworY2xhc3MgRGV2aWNlTW90aW9uQ2xpZW50SU9TOworY2xh
c3MgV2ViQ29yZU1vdGlvbk1hbmFnZXJDbGllbnQ7Cit9OworCitXRUJDT1JFX0VYUE9SVCBAaW50
ZXJmYWNlIFdlYkNvcmVNb3Rpb25NYW5hZ2VyIDogTlNPYmplY3QgewogICAgIENNTW90aW9uTWFu
YWdlciogbV9tb3Rpb25NYW5hZ2VyOwogICAgIENMTG9jYXRpb25NYW5hZ2VyKiBtX2xvY2F0aW9u
TWFuYWdlcjsKICAgICBIYXNoU2V0PFdlYkNvcmU6OkRldmljZU1vdGlvbkNsaWVudElPUyo+IG1f
ZGV2aWNlTW90aW9uQ2xpZW50czsKLSAgICBIYXNoU2V0PFdlYkNvcmU6OkRldmljZU9yaWVudGF0
aW9uQ2xpZW50SU9TKj4gbV9kZXZpY2VPcmllbnRhdGlvbkNsaWVudHM7CisgICAgSGFzaFNldDxX
ZWJDb3JlOjpXZWJDb3JlTW90aW9uTWFuYWdlckNsaWVudCo+IG1fZGV2aWNlT3JpZW50YXRpb25D
bGllbnRzOwogICAgIE5TVGltZXIqIG1fdXBkYXRlVGltZXI7CiAgICAgQk9PTCBtX2d5cm9BdmFp
bGFibGU7CiAgICAgQk9PTCBtX2hlYWRpbmdBdmFpbGFibGU7CkBAIC01MCw4ICs1Myw4IEBAIGNv
bnN0IGZsb2F0IGtNb3Rpb25VcGRhdGVJbnRlcnZhbCA9IDEuMGYKICsgKFdlYkNvcmVNb3Rpb25N
YW5hZ2VyICopc2hhcmVkTWFuYWdlcjsKIC0gKHZvaWQpYWRkTW90aW9uQ2xpZW50OihXZWJDb3Jl
OjpEZXZpY2VNb3Rpb25DbGllbnRJT1MgKiljbGllbnQ7CiAtICh2b2lkKXJlbW92ZU1vdGlvbkNs
aWVudDooV2ViQ29yZTo6RGV2aWNlTW90aW9uQ2xpZW50SU9TICopY2xpZW50OwotLSAodm9pZClh
ZGRPcmllbnRhdGlvbkNsaWVudDooV2ViQ29yZTo6RGV2aWNlT3JpZW50YXRpb25DbGllbnRJT1Mg
KiljbGllbnQ7Ci0tICh2b2lkKXJlbW92ZU9yaWVudGF0aW9uQ2xpZW50OihXZWJDb3JlOjpEZXZp
Y2VPcmllbnRhdGlvbkNsaWVudElPUyAqKWNsaWVudDsKKy0gKHZvaWQpYWRkT3JpZW50YXRpb25D
bGllbnQ6KFdlYkNvcmU6OldlYkNvcmVNb3Rpb25NYW5hZ2VyQ2xpZW50ICopY2xpZW50OworLSAo
dm9pZClyZW1vdmVPcmllbnRhdGlvbkNsaWVudDooV2ViQ29yZTo6V2ViQ29yZU1vdGlvbk1hbmFn
ZXJDbGllbnQgKiljbGllbnQ7CiAtIChCT09MKWd5cm9BdmFpbGFibGU7CiAtIChCT09MKWhlYWRp
bmdBdmFpbGFibGU7CiBAZW5kCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvV2Vi
Q29yZU1vdGlvbk1hbmFnZXIubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vaW9zL1dlYkNvcmVNb3Rpb25NYW5hZ2VyLm1tCShyZXZpc2lvbiAyNTI5ODMpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvV2ViQ29yZU1vdGlvbk1hbmFnZXIubW0JKHdvcmtpbmcg
Y29weSkKQEAgLTI4LDYgKzI4LDggQEAKIAogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpICYmIEVO
QUJMRShERVZJQ0VfT1JJRU5UQVRJT04pCiAKKyNpbXBvcnQgIkRldmljZU1vdGlvbkNsaWVudElP
Uy5oIgorI2ltcG9ydCAiV2ViQ29yZU1vdGlvbk1hbmFnZXJDbGllbnQuaCIKICNpbXBvcnQgIldl
YkNvcmVPYmpDRXh0cmFzLmgiCiAjaW1wb3J0ICJXZWJDb3JlVGhyZWFkUnVuLmgiCiAjaW1wb3J0
IDxDb3JlTG9jYXRpb24vQ29yZUxvY2F0aW9uLmg+CkBAIC0xMTIsMTQgKzExNCwxNCBAQCAtICh2
b2lkKXJlbW92ZU1vdGlvbkNsaWVudDooV2ViQ29yZTo6RGV2CiAgICAgICAgIFtzZWxmIGNoZWNr
Q2xpZW50U3RhdHVzXTsKIH0KIAotLSAodm9pZClhZGRPcmllbnRhdGlvbkNsaWVudDooV2ViQ29y
ZTo6RGV2aWNlT3JpZW50YXRpb25DbGllbnRJT1MgKiljbGllbnQKKy0gKHZvaWQpYWRkT3JpZW50
YXRpb25DbGllbnQ6KFdlYkNvcmU6OldlYkNvcmVNb3Rpb25NYW5hZ2VyQ2xpZW50ICopY2xpZW50
CiB7CiAgICAgbV9kZXZpY2VPcmllbnRhdGlvbkNsaWVudHMuYWRkKGNsaWVudCk7CiAgICAgaWYg
KG1faW5pdGlhbGl6ZWQpCiAgICAgICAgIFtzZWxmIGNoZWNrQ2xpZW50U3RhdHVzXTsKIH0KIAot
LSAodm9pZClyZW1vdmVPcmllbnRhdGlvbkNsaWVudDooV2ViQ29yZTo6RGV2aWNlT3JpZW50YXRp
b25DbGllbnRJT1MgKiljbGllbnQKKy0gKHZvaWQpcmVtb3ZlT3JpZW50YXRpb25DbGllbnQ6KFdl
YkNvcmU6OldlYkNvcmVNb3Rpb25NYW5hZ2VyQ2xpZW50ICopY2xpZW50CiB7CiAgICAgbV9kZXZp
Y2VPcmllbnRhdGlvbkNsaWVudHMucmVtb3ZlKGNsaWVudCk7CiAgICAgaWYgKG1faW5pdGlhbGl6
ZWQpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvV2ViQ29yZU1vdGlvbk1hbmFn
ZXJDbGllbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvV2Vi
Q29yZU1vdGlvbk1hbmFnZXJDbGllbnQuaAkobm9uZXhpc3RlbnQpCisrKyBTb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9pb3MvV2ViQ29yZU1vdGlvbk1hbmFnZXJDbGllbnQuaAkod29ya2luZyBjb3B5
KQpAQCAtMCwwICsxLDM3IEBACisvKgorKiBDb3B5cmlnaHQgKEMpIDIwMTkgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorKgorKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisqIGFyZSBt
ZXQ6CisqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorKgorKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisqIEFORCBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAor
KiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworKiBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisqIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GCisqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorKiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKQorKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyovCisKKyNwcmFnbWEgb25jZQorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFdl
YkNvcmVNb3Rpb25NYW5hZ2VyQ2xpZW50IHsKK3B1YmxpYzoKKyAgICB2aXJ0dWFsIH5XZWJDb3Jl
TW90aW9uTWFuYWdlckNsaWVudCgpIHsgfTsKKworICAgIHZpcnR1YWwgdm9pZCBvcmllbnRhdGlv
bkNoYW5nZWQoZG91YmxlLCBkb3VibGUsIGRvdWJsZSwgZG91YmxlLCBkb3VibGUpIHsgfTsKK307
CisKK307CkluZGV4OiBTb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViS2l0L0NoYW5nZUxvZwkocmV2aXNpb24gMjUyOTgzKQorKysgU291cmNlL1dlYktpdC9D
aGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwzMyBAQAorMjAxOS0xMS0zMCAgUGVy
IEFybmUgVm9sbGFuICA8cHZvbGxhbkBhcHBsZS5jb20+CisKKyAgICAgICAgW2lPU10gQ2FsbHMg
dG8gZGV2aWNlIG9yaWVudGF0aW9uIEFQSSBzaG91bGQgYmUgZG9uZSBpbiB0aGUgVUkgcHJvY2Vz
cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA0NzIw
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIFdl
YiBwYWdlIHByb3h5IG1lc3NhZ2VzIHRvIHN0YXJ0IGFuZCBzdG9wIHVwZGF0aW5nIGRldmljZSBv
cmllbnRhdGlvbiBpbiB0aGUgVUkgcHJvY2Vzcy4gQWxzbywgYWRkIGEgbWVzc2FnZSB0bworICAg
ICAgICB0aGUgV2ViIHBhZ2UgdG8gdXBkYXRlIHRoZSBkZXZpY2Ugb3JpZW50YXRpb24gaW4gdGhl
IFdlYkNvbnRlbnQgcHJvY2Vzcy4gSW4gdGhlIFVJIHByb2Nlc3MsIHRoZSBkZXZpY2Ugb3JpZW50
YXRpb24gQVBJCisgICAgICAgIGlzIGNhbGxlZCB0aHJvdWdoIHRoZSBhbHJlYWR5IGV4aXN0aW5n
IFdlYkNvcmVNb3Rpb25NYW5hZ2VyIGNsYXNzLgorCisgICAgICAgICogVUlQcm9jZXNzL1dlYlBh
Z2VQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW46
CisgICAgICAgICogVUlQcm9jZXNzL2lvcy9XZWJQYWdlUHJveHlJT1MubW06CisgICAgICAgIChX
ZWJLaXQ6OldlYlBhZ2VQcm94eTo6c3RhcnRVcGRhdGluZ0RldmljZU9yaWVudGF0aW9uKToKKyAg
ICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpzdG9wVXBkYXRpbmdEZXZpY2VPcmllbnRhdGlv
bik6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6b3JpZW50YXRpb25DaGFuZ2VkKToK
KyAgICAgICAgKiBXZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlNoYXJlZERldmljZU9yaWVudGF0aW9uQ2xpZW50
LmNwcDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OldlYlNoYXJlZERldmljZU9yaWVudGF0aW9u
Q2xpZW50OjpzdGFydFVwZGF0aW5nKToKKyAgICAgICAgKFdlYktpdDo6V2ViU2hhcmVkRGV2aWNl
T3JpZW50YXRpb25DbGllbnQ6OnN0b3BVcGRhdGluZyk6CisgICAgICAgIChXZWJLaXQ6OldlYlNo
YXJlZERldmljZU9yaWVudGF0aW9uQ2xpZW50OjpkZXZpY2VPcmllbnRhdGlvbkNoYW5nZWQpOgor
ICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViU2hhcmVkRGV2aWNlT3JpZW50
YXRpb25DbGllbnQuaDogQWRkZWQuCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBh
Z2UuY3BwOgorICAgICAgICAoV2ViS2l0OjptX292ZXJyaWRkZW5NZWRpYVR5cGUpOgorICAgICAg
ICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9X
ZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW46CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdl
L2lvcy9XZWJQYWdlSU9TLm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpkZXZpY2VPcmll
bnRhdGlvbkNoYW5nZWQpOgorCiAyMDE5LTEyLTAyICBDYXJsb3MgR2FyY2lhIENhbXBvcyAgPGNn
YXJjaWFAaWdhbGlhLmNvbT4KIAogICAgICAgICBbR1RLXVtQU09OXSBDcmFzaCBpbiBOZXR3b3Jr
UHJvY2Vzc1Byb3h5OjpvcGVuTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uCkluZGV4OiBTb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAJKHJldmlzaW9uIDI1Mjk4MykKKysrIFNv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTUyMCw2ICs1MjAsMTAgQEAgV2ViUGFnZVByb3h5Ojp+V2ViUGFnZVByb3h5KCkKICAgICBtX3By
ZWZlcmVuY2VzLT5yZW1vdmVQYWdlKCp0aGlzKTsKICAgICBtX3BhZ2VHcm91cC0+cmVtb3ZlUGFn
ZSh0aGlzKTsKIAorI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpICYmIEVOQUJMRShERVZJQ0VfT1JJ
RU5UQVRJT04pCisgICAgc3RvcFVwZGF0aW5nRGV2aWNlT3JpZW50YXRpb24oKTsKKyNlbmRpZgor
ICAgIAogI2lmbmRlZiBOREVCVUcKICAgICB3ZWJQYWdlUHJveHlDb3VudGVyLmRlY3JlbWVudCgp
OwogI2VuZGlmCkluZGV4OiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAkocmV2
aXNpb24gMjUyOTgzKQorKysgU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgJ
KHdvcmtpbmcgY29weSkKQEAgLTE0OSw2ICsxNDksMTAgQEAgT0JKQ19DTEFTUyBfV0tSZW1vdGVP
YmplY3RSZWdpc3RyeTsKICNpbmNsdWRlICJTT0F1dGhvcml6YXRpb25Mb2FkUG9saWN5LmgiCiAj
ZW5kaWYKIAorI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpICYmIEVOQUJMRShERVZJQ0VfT1JJRU5U
QVRJT04pCisjaW5jbHVkZSA8V2ViQ29yZS9XZWJDb3JlTW90aW9uTWFuYWdlckNsaWVudC5oPgor
I2VuZGlmCisKICNpZiBFTkFCTEUoTUVESUFfU0VTU0lPTikKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IGNsYXNzIE1lZGlhU2Vzc2lvbk1ldGFkYXRhOwpAQCAtMTU5LDYgKzE2MywxMCBAQCBjbGFzcyBN
ZWRpYVNlc3Npb25NZXRhZGF0YTsKIGludGVyZmFjZSBJRDNEMTFEZXZpY2UxOwogI2VuZGlmCiAK
KyNpZiBQTEFURk9STShJT1NfRkFNSUxZKSAmJiBFTkFCTEUoREVWSUNFX09SSUVOVEFUSU9OKQor
T0JKQ19DTEFTUyBXZWJDb3JlTW90aW9uTWFuYWdlcjsKKyNlbmRpZgorCiBuYW1lc3BhY2UgQVBJ
IHsKIGNsYXNzIEF0dGFjaG1lbnQ7CiBjbGFzcyBDb250ZXh0TWVudUNsaWVudDsKQEAgLTQxMCw2
ICs0MTgsOSBAQCBjbGFzcyBXZWJQYWdlUHJveHkgOiBwdWJsaWMgQVBJOjpPYmplY3RJCiAgICAg
LCBwdWJsaWMgV2ViQ29yZTo6UGxhdGZvcm1TcGVlY2hTeW50aGVzaXNVdHRlcmFuY2VDbGllbnQK
ICAgICAsIHB1YmxpYyBXZWJDb3JlOjpQbGF0Zm9ybVNwZWVjaFN5bnRoZXNpemVyQ2xpZW50CiAj
ZW5kaWYKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKSAmJiBFTkFCTEUoREVWSUNFX09SSUVOVEFU
SU9OKQorICAgICwgcHVibGljIFdlYkNvcmU6OldlYkNvcmVNb3Rpb25NYW5hZ2VyQ2xpZW50Cisj
ZW5kaWYKICAgICAsIHB1YmxpYyBDYW5NYWtlV2Vha1B0cjxXZWJQYWdlUHJveHk+IHsKIHB1Ymxp
YzoKICAgICBzdGF0aWMgUmVmPFdlYlBhZ2VQcm94eT4gY3JlYXRlKFBhZ2VDbGllbnQmLCBXZWJQ
cm9jZXNzUHJveHkmLCBSZWY8QVBJOjpQYWdlQ29uZmlndXJhdGlvbj4mJik7CkBAIC0xNjI3LDYg
KzE2MzgsMTEgQEAgcHVibGljOgogICAgIGNvbnN0IFN0cmluZyYgb3ZlcnJpZGRlbk1lZGlhVHlw
ZSgpIGNvbnN0IHsgcmV0dXJuIG1fb3ZlcnJpZGRlbk1lZGlhVHlwZTsgfQogICAgIHZvaWQgc2V0
T3ZlcnJpZGRlbk1lZGlhVHlwZShjb25zdCBTdHJpbmcmKTsKIAorI2lmIFBMQVRGT1JNKElPU19G
QU1JTFkpICYmIEVOQUJMRShERVZJQ0VfT1JJRU5UQVRJT04pCisgICAgdm9pZCBzdGFydFVwZGF0
aW5nRGV2aWNlT3JpZW50YXRpb24oKTsKKyAgICB2b2lkIHN0b3BVcGRhdGluZ0RldmljZU9yaWVu
dGF0aW9uKCk7CisjZW5kaWYKKwogcHJpdmF0ZToKICAgICBXZWJQYWdlUHJveHkoUGFnZUNsaWVu
dCYsIFdlYlByb2Nlc3NQcm94eSYsIFJlZjxBUEk6OlBhZ2VDb25maWd1cmF0aW9uPiYmKTsKICAg
ICB2b2lkIHBsYXRmb3JtSW5pdGlhbGl6ZSgpOwpAQCAtMjE3MCw2ICsyMTg2LDExIEBAIHByaXZh
dGU6CiAgICAgdm9pZCByZXNldFNwZWVjaFN5bnRoZXNpemVyKCk7CiAjZW5kaWYKIAorI2lmIFBM
QVRGT1JNKElPU19GQU1JTFkpICYmIEVOQUJMRShERVZJQ0VfT1JJRU5UQVRJT04pCisgICAgLy8g
V2ViQ29yZTo6V2ViQ29yZU1vdGlvbk1hbmFnZXJDbGllbnQKKyAgICB2b2lkIG9yaWVudGF0aW9u
Q2hhbmdlZChkb3VibGUsIGRvdWJsZSwgZG91YmxlLCBkb3VibGUsIGRvdWJsZSkgb3ZlcnJpZGU7
CisjZW5kaWYKKwogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCiAgICAgc3RhdGljIGJvb2wgaXNJ
bkhhcmR3YXJlS2V5Ym9hcmRNb2RlKCk7CiAgICAgdm9pZCBjbGVhckF1ZGlibGVBY3Rpdml0eSgp
OwpAQCAtMjYyNyw2ICsyNjQ4LDEwIEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX2lzUXVvdGFJbmNy
ZWFzZURlbmllZCB7IGZhbHNlIH07CiAgICAgCiAgICAgU3RyaW5nIG1fb3ZlcnJpZGRlbk1lZGlh
VHlwZTsKKworI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpICYmIEVOQUJMRShERVZJQ0VfT1JJRU5U
QVRJT04pCisgICAgV2ViQ29yZU1vdGlvbk1hbmFnZXIqIG1fbW90aW9uTWFuYWdlciB7IG51bGxw
dHIgfTsKKyNlbmRpZgogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CkluZGV4OiBTb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4KPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluCShyZXZpc2lv
biAyNTI5ODMpCisrKyBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2Fn
ZXMuaW4JKHdvcmtpbmcgY29weSkKQEAgLTU4Niw0ICs1ODYsOSBAQCBtZXNzYWdlcyAtPiBXZWJQ
YWdlUHJveHkgewogCiAgICAgRGlkRmluZFRleHRNYW5pcHVsYXRpb25JdGVtKFdlYkNvcmU6OlRl
eHRNYW5pcHVsYXRpb25Db250cm9sbGVyOjpJdGVtSWRlbnRpZmllciBpdGVtSUQsIFZlY3RvcjxX
ZWJDb3JlOjpUZXh0TWFuaXB1bGF0aW9uQ29udHJvbGxlcjo6TWFuaXB1bGF0aW9uVG9rZW4+IHRv
a2VucykKIAorI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpICYmIEVOQUJMRShERVZJQ0VfT1JJRU5U
QVRJT04pCisgICAgU3RhcnRVcGRhdGluZ0RldmljZU9yaWVudGF0aW9uKCk7CisgICAgU3RvcFVw
ZGF0aW5nRGV2aWNlT3JpZW50YXRpb24oKTsKKyNlbmRpZgorCiB9CkluZGV4OiBTb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9pb3MvV2ViUGFnZVByb3h5SU9TLm1tCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XZWJQYWdlUHJveHlJT1MubW0JKHJldmlzaW9uIDI1Mjk4
MykKKysrIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XZWJQYWdlUHJveHlJT1MubW0JKHdv
cmtpbmcgY29weSkKQEAgLTc1LDYgKzc1LDEwIEBACiAjaW1wb3J0IDx3dGYvdGV4dC9XVEZTdHJp
bmcuaD4KICNlbmRpZgogCisjaWYgRU5BQkxFKERFVklDRV9PUklFTlRBVElPTikKKyNpbXBvcnQg
PFdlYkNvcmUvV2ViQ29yZU1vdGlvbk1hbmFnZXIuaD4KKyNlbmRpZgorCiAjZGVmaW5lIFJFTEVB
U0VfTE9HX0lGX0FMTE9XRUQoY2hhbm5lbCwgZm10LCAuLi4pIFJFTEVBU0VfTE9HX0lGKGlzQWx3
YXlzT25Mb2dnaW5nQWxsb3dlZCgpLCBjaGFubmVsLCAiJXAgLSBbcGFnZVByb3h5SUQ9JWxsdSwg
d2ViUGFnZUlEPSVsbHUsIFBJRD0laV0gV2ViUGFnZVByb3h5OjoiIGZtdCwgdGhpcywgbV9pZGVu
dGlmaWVyLnRvVUludDY0KCksIG1fd2ViUGFnZUlELnRvVUludDY0KCksIG1fcHJvY2Vzcy0+cHJv
Y2Vzc0lkZW50aWZpZXIoKSwgIyNfX1ZBX0FSR1NfXykKIAogbmFtZXNwYWNlIFdlYktpdCB7CkBA
IC0xNDgzLDYgKzE0ODcsMjYgQEAgV2ViQ29udGVudE1vZGUgV2ViUGFnZVByb3h5OjplZmZlY3Rp
dmVDbwogICAgIHJldHVybiBXZWJDb250ZW50TW9kZTo6RGVza3RvcDsKIH0KIAorI2lmIEVOQUJM
RShERVZJQ0VfT1JJRU5UQVRJT04pCit2b2lkIFdlYlBhZ2VQcm94eTo6c3RhcnRVcGRhdGluZ0Rl
dmljZU9yaWVudGF0aW9uKCkKK3sKKyAgICBpZiAoIW1fbW90aW9uTWFuYWdlcikKKyAgICAgICAg
bV9tb3Rpb25NYW5hZ2VyID0gW1dlYkNvcmVNb3Rpb25NYW5hZ2VyIHNoYXJlZE1hbmFnZXJdOwor
ICAgIFttX21vdGlvbk1hbmFnZXIgYWRkT3JpZW50YXRpb25DbGllbnQ6dGhpc107Cit9CisKK3Zv
aWQgV2ViUGFnZVByb3h5OjpzdG9wVXBkYXRpbmdEZXZpY2VPcmllbnRhdGlvbigpCit7CisgICAg
W21fbW90aW9uTWFuYWdlciByZW1vdmVPcmllbnRhdGlvbkNsaWVudDp0aGlzXTsKK30KKwordm9p
ZCBXZWJQYWdlUHJveHk6Om9yaWVudGF0aW9uQ2hhbmdlZChkb3VibGUgYWxwaGEsIGRvdWJsZSBi
ZXRhLCBkb3VibGUgZ2FtbWEsIGRvdWJsZSBjb21wYXNzSGVhZGluZywgZG91YmxlIGNvbXBhc3NB
Y2N1cmFjeSkKK3sKKyAgICBzZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpEZXZpY2VPcmllbnRhdGlv
bkNoYW5nZWQoYWxwaGEsIGJldGEsIGdhbW1hLCBjb21wYXNzSGVhZGluZywgY29tcGFzc0FjY3Vy
YWN5KSk7Cit9CisjZW5kaWYKKworCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKIAogI3VuZGVmIFJF
TEVBU0VfTE9HX0lGX0FMTE9XRUQKSW5kZXg6IFNvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9XZWJLaXQueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvagkocmV2aXNpb24gMjUyOTgzKQorKysgU291cmNlL1dlYktp
dC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkod29ya2luZyBjb3B5KQpAQCAtMTY4
OSw2ICsxNjg5LDcgQEAKIAkJRTFEMjZBNTMxNzU5NjREOTAwOTVCRkQxIC8qIFdlYkNvbnRlbnRQ
cm9jZXNzLnhpYiBpbiBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gRTFEMjZBNEMxNzU5NjM0RTAwOTVCRkQxIC8qIFdlYkNvbnRlbnRQcm9jZXNzLnhpYiAqLzsg
fTsKIAkJRTFFNTUyQzUxNkFFMDY1RjAwNEVENjUzIC8qIFNhbmRib3hJbml0aWFsaXphdGlvblBh
cmFtZXRlcnMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEUxRTU1MkMzMTZBRTA2NUUwMDRFRDY1MyAvKiBTYW5kYm94SW5pdGlhbGl6YXRpb25QYXJhbWV0
ZXJzLmggKi87IH07CiAJCUUxRUU1M0UzMTFGOENGQzAwMENDQkVFNCAvKiBJbmplY3RlZEJ1bmRs
ZVBhZ2VFZGl0b3JDbGllbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEUxRUU1M0RDMTFGOENGOUYwMENDQkVFNCAvKiBJbmplY3RlZEJ1bmRsZVBhZ2VF
ZGl0b3JDbGllbnQuaCAqLzsgfTsKKwkJRTM5NjI4QUEyMzg4QUJEODAwNjU4RUNEIC8qIFdlYlNo
YXJlZERldmljZU9yaWVudGF0aW9uQ2xpZW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUzOTYyOEE5MjM4OEFCRDgwMDY1OEVDRCAvKiBXZWJTaGFy
ZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudC5jcHAgKi87IH07CiAJCUU0MTNGNTlEMUFDMUFEQzQw
MDM0NTM2MCAvKiBOZXR3b3JrQ2FjaGVFbnRyeS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gRTQxM0Y1OUIxQUMxQURCNjAwMzQ1MzYwIC8qIE5ldHdvcmtD
YWNoZUVudHJ5LmggKi87IH07CiAJCUU0MkUwNjEwMUFBNzUyM0IwMEIxMTY5OSAvKiBOZXR3b3Jr
Q2FjaGVJT0NoYW5uZWwuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEU0MkUwNjBCMUFBNzQ0MEQwMEIxMTY5OSAvKiBOZXR3b3JrQ2FjaGVJT0NoYW5uZWwu
aCAqLzsgfTsKIAkJRTQyRTA2MTIxQUE3NUFCRDAwQjExNjk5IC8qIE5ldHdvcmtDYWNoZURhdGEu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU0MkUwNjEx
MUFBNzVBQkQwMEIxMTY5OSAvKiBOZXR3b3JrQ2FjaGVEYXRhLmggKi87IH07CkBAIC00NzQ4LDYg
KzQ3NDksOCBAQAogCQlFMUVFNTNEQzExRjhDRjlGMDBDQ0JFRTQgLyogSW5qZWN0ZWRCdW5kbGVQ
YWdlRWRpdG9yQ2xpZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEluamVj
dGVkQnVuZGxlUGFnZUVkaXRvckNsaWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQlFMUVFNTNFNjExRjhDRkZCMDBDQ0JFRTQgLyogSW5qZWN0ZWRCdW5kbGVQYWdlRWRpdG9yQ2xp
ZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEluamVjdGVkQnVu
ZGxlUGFnZUVkaXRvckNsaWVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUz
NDM5QjYzMjM0NTQ2M0EwMDExREUwQiAvKiBOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb25JbmZvLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgbmFtZSA9IE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbkluZm8uaDsgcGF0aCA9IE5l
dHdvcmsvTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uSW5mby5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQlFMzk2MjhBODIzODhBNUQ0MDA2NThFQ0QgLyogV2ViU2hhcmVkRGV2aWNlT3Jp
ZW50YXRpb25DbGllbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViU2hhcmVkRGV2aWNlT3JpZW50YXRp
b25DbGllbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTM5NjI4QTkyMzg4QUJE
ODAwNjU4RUNEIC8qIFdlYlNoYXJlZERldmljZU9yaWVudGF0aW9uQ2xpZW50LmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IFdlYlNoYXJlZERldmljZU9yaWVudGF0aW9uQ2xpZW50LmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTQwNDkwNzAyMURFNjVGNzAwMzdGMERCIC8qIFNjcm9s
bGVyUGFpck1hYy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTY3JvbGxlclBh
aXJNYWMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTQwNDkwNzEyMURFNjVGNzAw
MzdGMERCIC8qIFNjcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVSZW1vdGVNYWMuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU2Nyb2xsaW5nVHJlZUZyYW1lU2Ny
b2xsaW5nTm9kZVJlbW90ZU1hYy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUU0
MDQ5MDcyMjFERTY1RjcwMDM3RjBEQiAvKiBTY3JvbGxlclBhaXJNYWMubW0gKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBTY3JvbGxlclBhaXJNYWMubW07IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CkBAIC01ODU0LDYgKzU4NTcsOCBAQAogCQkJCTJEMjhGM0UzMTg4
NUNDQzEwMDRCOUVBRSAvKiBXZWJGcmFtZUxvYWRlckNsaWVudElPUy5tbSAqLywKIAkJCQlBMUM1
MTJDNjE5MDY1NkU1MDA0NDg5MTQgLyogV2ViUHJldmlld0xvYWRlckNsaWVudC5jcHAgKi8sCiAJ
CQkJQTFDNTEyQzcxOTA2NTZFNTAwNDQ4OTE0IC8qIFdlYlByZXZpZXdMb2FkZXJDbGllbnQuaCAq
LywKKwkJCQlFMzk2MjhBOTIzODhBQkQ4MDA2NThFQ0QgLyogV2ViU2hhcmVkRGV2aWNlT3JpZW50
YXRpb25DbGllbnQuY3BwICovLAorCQkJCUUzOTYyOEE4MjM4OEE1RDQwMDY1OEVDRCAvKiBXZWJT
aGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudC5oICovLAogCQkJKTsKIAkJCW5hbWUgPSBpb3M7
CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwpAQCAtOTgyMCw3ICs5ODI1LDYgQEAKIAkJCQk1
MTFGOEE3QjEzOEI0NjA5MDBBOTVGNDQgLyogU2VjSXRlbVNoaW1MaWJyYXJ5LmggaW4gSGVhZGVy
cyAqLywKIAkJCQlFMThFNjkwQzE2OUI1NjNGMDA5QjY2NzAgLyogU2VjSXRlbVNoaW1Qcm94eS5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJRTE4RTY5MTgxNjlCNjY3QjAwOUI2NjcwIC8qIFNlY0l0ZW1T
aGltUHJveHlNZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8sCi0JCQkJN0FBNzQ2RDUyMzU5M0Q4MTAw
MDk1MDUwIC8qIFNlY0l0ZW1TUEkuaCBpbiBIZWFkZXJzICovLAogCQkJCTU3MEFCOEYzMjBBRTNC
RDcwMEI4QkU4NyAvKiBTZWNLZXlQcm94eVN0b3JlLmggaW4gSGVhZGVycyAqLywKIAkJCQk1MTRE
OUY1NzE5MTE5RDM1MDAwMDYzQTcgLyogU2VydmljZXNDb250cm9sbGVyLmggaW4gSGVhZGVycyAq
LywKIAkJCQkxQUZERTY1QTE5NTRBNDJCMDBDNDhGRkEgLyogU2Vzc2lvblN0YXRlLmggaW4gSGVh
ZGVycyAqLywKQEAgLTExNjE5LDYgKzExNjIzLDcgQEAKIAkJCQk1MUYwNjBFMTE2NTQzMTg1MDBG
MzI4MUYgLyogV2ViUlRDTW9uaXRvck1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQk1MUYwNjBFMTE2NTQzMTg1MDBGMzI4MkMgLyogV2ViUlRDUmVzb2x2ZXJNZXNzYWdlUmVj
ZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNTFGMDYwRTExNjU0MzE4NTAwRjMyODFDIC8q
IFdlYlJUQ1NvY2tldE1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlFMzk2
MjhBQTIzODhBQkQ4MDA2NThFQ0QgLyogV2ViU2hhcmVkRGV2aWNlT3JpZW50YXRpb25DbGllbnQu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNDFGMDYwRTExNjU0MzE4NTAwRjMyODFDIC8qIFdlYlNv
Y2tldENoYW5uZWxNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNUMwQjE3
NzkxRTdDODgyMTAwRTkxMjNDIC8qIFdlYlNvY2tldFN0cmVhbU1lc3NhZ2VSZWNlaXZlci5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQk0MTI4N0Q0RTIyNUQxRUNCMDA5QTNFMjYgLyogV2ViU29ja2V0
VGFza0NvY29hLm1tIGluIFNvdXJjZXMgKi8sCkluZGV4OiBTb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvV2ViU2hhcmVkRGV2aWNlT3JpZW50YXRpb25DbGllbnQuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJT
aGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudC5jcHAJKG5vbmV4aXN0ZW50KQorKysgU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlNoYXJlZERldmljZU9yaWVudGF0
aW9uQ2xpZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDYxIEBACisvKgorKiBDb3B5
cmlnaHQgKEMpIDIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorKgorKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisqIGFyZSBtZXQ6CisqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorKgorKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMg
YGBBUyBJUycnCisqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJV
VE9SUworKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SCisqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisqIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwor
KiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTgorKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorKiBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisqIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyovCisKKyNpbmNsdWRlICJjb25maWcuaCIK
KyNpbmNsdWRlICJXZWJTaGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudC5oIgorCisjaWYgUExB
VEZPUk0oSU9TX0ZBTUlMWSkgJiYgRU5BQkxFKERFVklDRV9PUklFTlRBVElPTikKKworI2luY2x1
ZGUgIldlYlBhZ2UuaCIKKyNpbmNsdWRlICJXZWJQYWdlUHJveHlNZXNzYWdlcy5oIgorCisjaW5j
bHVkZSA8V2ViQ29yZS9XZWJDb3JlTW90aW9uTWFuYWdlckNsaWVudC5oPgorCituYW1lc3BhY2Ug
V2ViS2l0IHsKKwordm9pZCBXZWJTaGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudDo6c3RhcnRV
cGRhdGluZyhXZWJDb3JlOjpXZWJDb3JlTW90aW9uTWFuYWdlckNsaWVudCYgY2xpZW50KQorewor
ICAgIGlmIChtX2NsaWVudHMuaXNFbXB0eSgpICYmIG1fcGFnZSkKKyAgICAgICAgbV9wYWdlLT5z
ZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OlN0YXJ0VXBkYXRpbmdEZXZpY2VPcmllbnRhdGlv
bigpKTsKKyAgICBtX2NsaWVudHMuYWRkKCZjbGllbnQpOworfQorCit2b2lkIFdlYlNoYXJlZERl
dmljZU9yaWVudGF0aW9uQ2xpZW50OjpzdG9wVXBkYXRpbmcoV2ViQ29yZTo6V2ViQ29yZU1vdGlv
bk1hbmFnZXJDbGllbnQmIGNsaWVudCkKK3sKKyAgICBpZiAobV9jbGllbnRzLmlzRW1wdHkoKSkK
KyAgICAgICAgcmV0dXJuOworICAgIGlmIChtX2NsaWVudHMuaXNFbXB0eSgpICYmIG1fcGFnZSkK
KyAgICAgICAgbV9wYWdlLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OlN0b3BVcGRhdGlu
Z0RldmljZU9yaWVudGF0aW9uKCkpOworfQorCit2b2lkIFdlYlNoYXJlZERldmljZU9yaWVudGF0
aW9uQ2xpZW50OjpkZXZpY2VPcmllbnRhdGlvbkNoYW5nZWQoZG91YmxlIGFscGhhLCBkb3VibGUg
YmV0YSwgZG91YmxlIGdhbW1hLCBkb3VibGUgY29tcGFzc0hlYWRpbmcsIGRvdWJsZSBjb21wYXNz
QWNjdXJhY3kpCit7CisgICAgZm9yIChhdXRvIGNsaWVudCA6IG1fY2xpZW50cykKKyAgICAgICAg
Y2xpZW50LT5vcmllbnRhdGlvbkNoYW5nZWQoYWxwaGEsIGJldGEsIGdhbW1hLCBjb21wYXNzSGVh
ZGluZywgY29tcGFzc0FjY3VyYWN5KTsKK30KKworfTsKKworI2VuZGlmCkluZGV4OiBTb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViU2hhcmVkRGV2aWNlT3JpZW50YXRp
b25DbGllbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29y
ZVN1cHBvcnQvV2ViU2hhcmVkRGV2aWNlT3JpZW50YXRpb25DbGllbnQuaAkobm9uZXhpc3RlbnQp
CisrKyBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViU2hhcmVkRGV2
aWNlT3JpZW50YXRpb25DbGllbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDU5IEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlIDxXZWJDb3JlL1NoYXJlZERldmlj
ZU9yaWVudGF0aW9uQ2xpZW50Lmg+CisKKyNpbmNsdWRlIDx3dGYvSGFzaFNldC5oPgorI2luY2x1
ZGUgPHd0Zi9XZWFrUHRyLmg+CisKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKSAmJiBFTkFCTEUo
REVWSUNFX09SSUVOVEFUSU9OKQorCituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3MgV2ViUGFn
ZTsKKworY2xhc3MgV2ViU2hhcmVkRGV2aWNlT3JpZW50YXRpb25DbGllbnQgZmluYWwgOiBwdWJs
aWMgV2ViQ29yZTo6U2hhcmVkRGV2aWNlT3JpZW50YXRpb25DbGllbnQgeworICAgIFdURl9NQUtF
X0ZBU1RfQUxMT0NBVEVEOworcHVibGljOgorICAgIFdlYlNoYXJlZERldmljZU9yaWVudGF0aW9u
Q2xpZW50KFdlYlBhZ2UmIHBhZ2UpCisgICAgICAgIDogbV9wYWdlKFdURjo6bWFrZVdlYWtQdHIo
cGFnZSkpCisgICAgeworICAgIH0KKworICAgIHZvaWQgc3RhcnRVcGRhdGluZyhXZWJDb3JlOjpX
ZWJDb3JlTW90aW9uTWFuYWdlckNsaWVudCYpIG92ZXJyaWRlOworICAgIHZvaWQgc3RvcFVwZGF0
aW5nKFdlYkNvcmU6OldlYkNvcmVNb3Rpb25NYW5hZ2VyQ2xpZW50Jikgb3ZlcnJpZGU7CisKKyAg
ICB2b2lkIGRldmljZU9yaWVudGF0aW9uQ2hhbmdlZChkb3VibGUsIGRvdWJsZSwgZG91YmxlLCBk
b3VibGUsIGRvdWJsZSkgb3ZlcnJpZGU7CisKK3ByaXZhdGU6CisgICAgV1RGOjpXZWFrUHRyPFdl
YlBhZ2U+IG1fcGFnZTsKKyAgICBIYXNoU2V0PFdlYkNvcmU6OldlYkNvcmVNb3Rpb25NYW5hZ2Vy
Q2xpZW50Kj4gbV9jbGllbnRzOworfTsKKworfQorCisjZW5kaWYKSW5kZXg6IFNvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCShyZXZpc2lvbiAyNTI5ODMpCisr
KyBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMzA3LDYgKzMwNywxMCBAQAogI2luY2x1ZGUgPFdlYkNvcmUvQXV0aGVudGljYXRv
ckNvb3JkaW5hdG9yLmg+CiAjZW5kaWYKIAorI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpICYmIEVO
QUJMRShERVZJQ0VfT1JJRU5UQVRJT04pCisjaW5jbHVkZSAiV2ViU2hhcmVkRGV2aWNlT3JpZW50
YXRpb25DbGllbnQuaCIKKyNlbmRpZgorCiBuYW1lc3BhY2UgV2ViS2l0IHsKIHVzaW5nIG5hbWVz
cGFjZSBKU0M7CiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKQEAgLTUwMSw2ICs1MDUsMTAgQEAg
V2ViUGFnZTo6V2ViUGFnZShQYWdlSWRlbnRpZmllciBwYWdlSUQsIAogI2lmIEVOQUJMRShBUFBM
SUNBVElPTl9NQU5JRkVTVCkKICAgICBwYWdlQ29uZmlndXJhdGlvbi5hcHBsaWNhdGlvbk1hbmlm
ZXN0ID0gcGFyYW1ldGVycy5hcHBsaWNhdGlvbk1hbmlmZXN0OwogI2VuZGlmCisgICAgCisjaWYg
UExBVEZPUk0oSU9TX0ZBTUlMWSkgJiYgRU5BQkxFKERFVklDRV9PUklFTlRBVElPTikKKyAgICBw
YWdlQ29uZmlndXJhdGlvbi5zaGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudCA9IG5ldyBXZWJT
aGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudCgqdGhpcyk7CisjZW5kaWYKIAogICAgIG1fcGFn
ZSA9IG1ha2VVbmlxdWU8UGFnZT4oV1RGTW92ZShwYWdlQ29uZmlndXJhdGlvbikpOwogCkluZGV4
OiBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCShyZXZpc2lvbiAy
NTI5ODMpCisrKyBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgJKHdv
cmtpbmcgY29weSkKQEAgLTEyNDQsNiArMTI0NCwxMCBAQCBwdWJsaWM6CiAgICAgY29uc3QgU3Ry
aW5nJiBvdmVycmlkZGVuTWVkaWFUeXBlKCkgY29uc3QgeyByZXR1cm4gbV9vdmVycmlkZGVuTWVk
aWFUeXBlOyB9CiAgICAgdm9pZCBzZXRPdmVycmlkZGVuTWVkaWFUeXBlKGNvbnN0IFN0cmluZyYp
OwogICAgIAorI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpICYmIEVOQUJMRShERVZJQ0VfT1JJRU5U
QVRJT04pCisgICAgdm9pZCBkZXZpY2VPcmllbnRhdGlvbkNoYW5nZWQoZG91YmxlIGFscGhhLCBk
b3VibGUgYmV0YSwgZG91YmxlIGdhbW1hLCBkb3VibGUgY29tcGFzc0hlYWRpbmcsIGRvdWJsZSBj
b21wYXNzQWNjdXJhY3kpOworI2VuZGlmCisKIHByaXZhdGU6CiAgICAgV2ViUGFnZShXZWJDb3Jl
OjpQYWdlSWRlbnRpZmllciwgV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycyYmKTsKIApJbmRleDog
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbgo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3Nh
Z2VzLmluCShyZXZpc2lvbiAyNTI5ODMpCisrKyBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
UGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluCSh3b3JraW5nIGNvcHkpCkBAIC01ODMsNCArNTgzLDgg
QEAgR2VuZXJhdGVTeW50aGV0aWNFZGl0aW5nQ29tbWFuZChlbnVtOnVpbgogICAgIENvbXBsZXRl
VGV4dE1hbmlwdWxhdGlvbihXZWJDb3JlOjpUZXh0TWFuaXB1bGF0aW9uQ29udHJvbGxlcjo6SXRl
bUlkZW50aWZpZXIgaXRlbUlELCBWZWN0b3I8V2ViQ29yZTo6VGV4dE1hbmlwdWxhdGlvbkNvbnRy
b2xsZXI6Ok1hbmlwdWxhdGlvblRva2VuPiB0b2tlbnMpIC0+IChlbnVtOnVpbnQ4X3QgV2ViQ29y
ZTo6VGV4dE1hbmlwdWxhdGlvbkNvbnRyb2xsZXI6Ok1hbmlwdWxhdGlvblJlc3VsdCByZXN1bHQp
IEFzeW5jCiAgICAgCiAgICAgU2V0T3ZlcnJpZGRlbk1lZGlhVHlwZShTdHJpbmcgbWVkaWFUeXBl
KQorICAgIAorI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpICYmIEVOQUJMRShERVZJQ0VfT1JJRU5U
QVRJT04pCisgICAgRGV2aWNlT3JpZW50YXRpb25DaGFuZ2VkKGRvdWJsZSBhbHBoYSwgZG91Ymxl
IGJldGEsIGRvdWJsZSBnYW1tYSwgZG91YmxlIGNvbXBhc3NIZWFkaW5nLCBkb3VibGUgY29tcGFz
c0FjY3VyYWN5KQorI2VuZGlmCiB9CkluZGV4OiBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
UGFnZS9pb3MvV2ViUGFnZUlPUy5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbQkocmV2aXNpb24gMjUyOTgzKQorKysgU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW0JKHdvcmtpbmcg
Y29weSkKQEAgLTQwODgsNiArNDA4OCwxNCBAQCB2b2lkIFdlYlBhZ2U6OnJlcXVlc3RQYXNzd29y
ZEZvclF1aWNrTG9vCiAKICNlbmRpZgogCisjaWYgRU5BQkxFKERFVklDRV9PUklFTlRBVElPTikK
K3ZvaWQgV2ViUGFnZTo6ZGV2aWNlT3JpZW50YXRpb25DaGFuZ2VkKGRvdWJsZSBhbHBoYSwgZG91
YmxlIGJldGEsIGRvdWJsZSBnYW1tYSwgZG91YmxlIGNvbXBhc3NIZWFkaW5nLCBkb3VibGUgY29t
cGFzc0FjY3VyYWN5KQoreworICAgIGlmIChjb3JlUGFnZSgpICYmIGNvcmVQYWdlKCktPnNoYXJl
ZERldmljZU9yaWVudGF0aW9uQ2xpZW50KCkpCisgICAgICAgIGNvcmVQYWdlKCktPnNoYXJlZERl
dmljZU9yaWVudGF0aW9uQ2xpZW50KCktPmRldmljZU9yaWVudGF0aW9uQ2hhbmdlZChhbHBoYSwg
YmV0YSwgZ2FtbWEsIGNvbXBhc3NIZWFkaW5nLCBjb21wYXNzQWNjdXJhY3kpOworfQorI2VuZGlm
CisKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAogCiAjdW5kZWYgUkVMRUFTRV9MT0dfSUZfQUxMT1dF
RAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>384737</attachid>
            <date>2019-12-03 12:37:55 -0800</date>
            <delta_ts>2019-12-04 12:27:00 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-204720-20191203123754.patch</filename>
            <type>text/plain</type>
            <size>44610</size>
            <attacher name="Per Arne Vollan">pvollan</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDI1MzA1OSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQ4IEBACisyMDE5LTEyLTAyICBQZXIgQXJu
ZSBWb2xsYW4gIDxwdm9sbGFuQGFwcGxlLmNvbT4KKworICAgICAgICBbaU9TXSBDYWxscyB0byBk
ZXZpY2Ugb3JpZW50YXRpb24gQVBJIHNob3VsZCBiZSBkb25lIGluIHRoZSBVSSBwcm9jZXNzCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDQ3MjAKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGUgZGV2aWNl
IG9yaWVudGF0aW9uIEFQSSBvbiBpT1MgaXMgY29tbXVuaWNhdGluZyB3aXRoIGxvY2F0aW9uZC4g
U2luY2UgbWFjaCBsb29rdXAgdG8gdGhpcyBkYWVtb24KKyAgICAgICAgd2lsbCBiZSBjbG9zZWQs
IHRoZSBjYWxscyB0byB0aGlzIEFQSSBzaG91bGQgYmUgbW92ZWQgZnJvbSB0aGUgV2ViQ29udGVu
dCBwcm9jZXNzIHRvIHRoZSBVSSBwcm9jZXNzLgorICAgICAgICBUaGlzIHBhdGNoIGltcGxlbWVu
dHMgZm9yd2FyZGluZyBvZiB0aGUgZGV2aWNlIG9yaWVudGF0aW9uIHJlcXVlc3RzIHRvIHRoZSBV
SSBwcm9jZXNzIHRocm91Z2ggYSBuZXcKKyAgICAgICAgY2xhc3MsIFNoYXJlZERldmljZU9yaWVu
dGF0aW9uQ2xpZW50LCB3aGljaCBpcyBzdWJjbGFzc2VkIGJ5IFdlYlNoYXJlZERldmljZU9yaWVu
dGF0aW9uQ2xpZW50IGluCisgICAgICAgIG1vZGVybiBXZWJLaXQuIFRoaXMgY2xhc3MgaW1wbGVt
ZW50cyBmb3J3YXJkaW5nIG9mIHRoZSByZXF1ZXN0cyB0byB0aGUgVUkgcHJvY2VzcywgYW5kIHJl
Y2VpdmVzCisgICAgICAgIGRldmljZSBvcmllbnRhdGlvbiB1cGRhdGVzIGZyb20gdGhlIFVJIHBy
b2Nlc3MuIEFuIGluc3RhbmNlIG9mIHRoaXMgY2xhc3Mgd2lsbCBiZSBzaGFyZWQgYnkgYWxsCisg
ICAgICAgIGRldmljZSBvcmllbnRhdGlvbiBjbGllbnRzIG9uIGEgcGFnZSwgYW5kIHBhc3NlZCBh
cyBwYXJ0IG9mIHRoZSBwYWdlIGNvbmZpZ3VyYXRpb24gcGFyYW1ldGVycy4gT24KKyAgICAgICAg
dGhlIFVJIHByb2Nlc3Mgc2lkZSwgdGhlIFdlYiBwYWdlIHByb3h5IGlzIHRha2luZyBjYXJlIG9m
IGNhbGxpbmcgdGhlIGRldmljZSBvcmllbnRhdGlvbiBBUEkgdGhyb3VnaAorICAgICAgICB0aGUg
ZXhpc3RpbmcgV2ViQ29yZU1vdGlvbk1hbmFnZXIgT2JqZWN0aXZlLUMgY2xhc3MuCisKKyAgICAg
ICAgTm8gbmV3IHRlc3RzLCBjb3ZlcmVkIGJ5IGV4aXN0aW5nIHRlc3RzLgorCisgICAgICAgICog
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGRvbS9Eb2N1bWVu
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjptX3VuZG9NYW5hZ2VyKToKKyAgICAgICAgKiBwYWdl
L1BhZ2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6bV9zaGFyZWREZXZpY2VPcmllbnRhdGlvbkNs
aWVudCk6CisgICAgICAgIChXZWJDb3JlOjptX2FwcGxpY2F0aW9uTWFuaWZlc3QpOiBEZWxldGVk
LgorICAgICAgICAqIHBhZ2UvUGFnZS5oOgorICAgICAgICAoV2ViQ29yZTo6UGFnZTo6c2hhcmVk
RGV2aWNlT3JpZW50YXRpb25DbGllbnQgY29uc3QpOgorICAgICAgICAqIHBhZ2UvUGFnZUNvbmZp
Z3VyYXRpb24uaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9pb3MvRGV2aWNlT3JpZW50YXRpb25DbGll
bnRJT1MuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9pb3MvRGV2aWNlT3JpZW50YXRpb25DbGllbnRJ
T1MubW06CisgICAgICAgIChXZWJDb3JlOjpEZXZpY2VPcmllbnRhdGlvbkNsaWVudElPUzo6c3Rh
cnRVcGRhdGluZyk6CisgICAgICAgIChXZWJDb3JlOjpEZXZpY2VPcmllbnRhdGlvbkNsaWVudElP
Uzo6c3RvcFVwZGF0aW5nKToKKyAgICAgICAgKFdlYkNvcmU6OkRldmljZU9yaWVudGF0aW9uQ2xp
ZW50SU9TOjpkZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXJEZXN0cm95ZWQpOgorICAgICAgICAq
IHBsYXRmb3JtL2lvcy9TaGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudC5oOiBBZGRlZC4KKyAg
ICAgICAgKFdlYkNvcmU6OlNoYXJlZERldmljZU9yaWVudGF0aW9uQ2xpZW50OjpTaGFyZWREZXZp
Y2VPcmllbnRhdGlvbkNsaWVudCk6CisgICAgICAgIChXZWJDb3JlOjpTaGFyZWREZXZpY2VPcmll
bnRhdGlvbkNsaWVudDo6flNoYXJlZERldmljZU9yaWVudGF0aW9uQ2xpZW50KToKKyAgICAgICAg
KFdlYkNvcmU6OlNoYXJlZERldmljZU9yaWVudGF0aW9uQ2xpZW50OjpzdGFydFVwZGF0aW5nKToK
KyAgICAgICAgKFdlYkNvcmU6OlNoYXJlZERldmljZU9yaWVudGF0aW9uQ2xpZW50OjpzdG9wVXBk
YXRpbmcpOgorICAgICAgICAoV2ViQ29yZTo6U2hhcmVkRGV2aWNlT3JpZW50YXRpb25DbGllbnQ6
OmRldmljZU9yaWVudGF0aW9uQ2hhbmdlZCk6CisgICAgICAgICogcGxhdGZvcm0vaW9zL1dlYkNv
cmVNb3Rpb25NYW5hZ2VyLmg6CisgICAgICAgICogcGxhdGZvcm0vaW9zL1dlYkNvcmVNb3Rpb25N
YW5hZ2VyLm1tOgorICAgICAgICAoLVtXZWJDb3JlTW90aW9uTWFuYWdlciBhZGRPcmllbnRhdGlv
bkNsaWVudDpdKToKKyAgICAgICAgKC1bV2ViQ29yZU1vdGlvbk1hbmFnZXIgcmVtb3ZlT3JpZW50
YXRpb25DbGllbnQ6XSk6CisgICAgICAgICogcGxhdGZvcm0vaW9zL1dlYkNvcmVNb3Rpb25NYW5h
Z2VyQ2xpZW50Lmg6CisKIDIwMTktMTItMDMgIFRpbSBIb3J0b24gIDx0aW1vdGh5X2hvcnRvbkBh
cHBsZS5jb20+CiAKICAgICAgICAgU3RhcnQgYWRkaW5nIGVuY29kaW5nIHN1cHBvcnQgZm9yIERp
c3BsYXlMaXN0IGFuZCBzb21lIERpc3BsYXlMaXN0SXRlbXMKSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvago9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHJldmlzaW9uIDI1MzA1
OSkKKysrIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagko
d29ya2luZyBjb3B5KQpAQCAtOTA4LDcgKzkwOCw3IEBACiAJCTMxMzU5MTBBMUU3RERDNzMwMEYz
MDYzMCAvKiBSVENTZHBUeXBlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSAzMTM1OTEwNDFFN0REQzYwMDBGMzA2MzAgLyogUlRDU2RwVHlwZS5oICovOyB9
OwogCQkzMTM1OTEwQjFFN0REQzczMDBGMzA2MzAgLyogUlRDU2lnbmFsaW5nU3RhdGUuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMxMzU5MTA1MUU3RERD
NjAwMEYzMDYzMCAvKiBSVENTaWduYWxpbmdTdGF0ZS5oICovOyB9OwogCQkzMTNCQ0UxQzIzNUUz
QkU1MDBGQzM5RTUgLyogRWxlbWVudENvbnRleHQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMxM0JDRTFCMjM1RTNCREIwMEZDMzlFNSAvKiBFbGVtZW50
Q29udGV4dC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
Ci0JCTMxNDAzNzlCMTI0QkVBN0YwMEFGNDBFNCAvKiBXZWJDb3JlTW90aW9uTWFuYWdlci5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzE0MDM3OTcxMjRC
RUE3RjAwQUY0MEU0IC8qIFdlYkNvcmVNb3Rpb25NYW5hZ2VyLmggKi87IH07CisJCTMxNDAzNzlC
MTI0QkVBN0YwMEFGNDBFNCAvKiBXZWJDb3JlTW90aW9uTWFuYWdlci5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzE0MDM3OTcxMjRCRUE3RjAwQUY0MEU0
IC8qIFdlYkNvcmVNb3Rpb25NYW5hZ2VyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAo
UHJpdmF0ZSwgKTsgfTsgfTsKIAkJMzE0MDM3OUQxMjRCRUE3RjAwQUY0MEU0IC8qIERldmljZU9y
aWVudGF0aW9uQ2xpZW50SU9TLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSAzMTQwMzc5OTEyNEJFQTdGMDBBRjQwRTQgLyogRGV2aWNlT3JpZW50YXRpb25D
bGllbnRJT1MuaCAqLzsgfTsKIAkJMzE0MEM1MjAxRkRGMTUxQTAwRDJBODczIC8qIE9mZnNjcmVl
bkNhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gMzE0MEM1MUUxRkRGMTUxQTAwRDJBODczIC8qIE9mZnNjcmVlbkNh
bnZhc1JlbmRlcmluZ0NvbnRleHQyRC5oICovOyB9OwogCQkzMTQwQzUyNDFGREYzMTg3MDBEMkE4
NzMgLyogQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEQmFzZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzE0MEM1MjIxRkRGMzE4NjAwRDJBODczIC8qIENh
bnZhc1JlbmRlcmluZ0NvbnRleHQyREJhc2UuaCAqLzsgfTsKQEAgLTQ3NzYsNiArNDc3Niw4IEBA
CiAJCUUzNTgwMkI2MURDODQzNUQwMEE5NzczQyAvKiBET01KSVRJRExUeXBlRmlsdGVyLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMzU4MDJCNTFEQzg0
MzU4MDBBOTc3M0MgLyogRE9NSklUSURMVHlwZUZpbHRlci5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUUzNzdGRTREMURBREUxNjUwMENERDAyNSAv
KiBOb2RlQ29uc3RhbnRzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBFM0QwNDk5MzFEQURDMDQ1MDA3MThGM0MgLyogTm9kZUNvbnN0YW50cy5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUUzN0M4NjUwMUVC
NjNFM0YwMDg3QzZDQSAvKiBKU0RPTVByb21pc2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUzN0M4NjRGMUVCNjNFMkQwMDg3QzZDQSAvKiBKU0RPTVBy
b21pc2UuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9Owor
CQlFMzk2MjhCRjIzOTU3MjhGMDA2NThFQ0QgLyogU2hhcmVkRGV2aWNlT3JpZW50YXRpb25DbGll
bnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUzOTYy
OEJEMjM5NTcyOEUwMDY1OEVDRCAvKiBTaGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudC5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCUUzOTYyOEMx
MjM5NTc0MzEwMDY1OEVDRCAvKiBXZWJDb3JlTW90aW9uTWFuYWdlckNsaWVudC5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTM5NjI4QzAyMzk1NzQzMDAw
NjU4RUNEIC8qIFdlYkNvcmVNb3Rpb25NYW5hZ2VyQ2xpZW50LmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJRTNBNzc2NjcxREM4NUQyODAwQjY5MEQ4
IC8qIERPTUpJVElETENvbnZlcnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEUzQTc3NjY1MURDODVEMjIwMEI2OTBEOCAvKiBET01KSVRJRExDb252ZXJ0
LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJRTNB
Nzc2NjgxREM4NUQyODAwQjY5MEQ4IC8qIERPTUpJVElETFR5cGUuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUzQTc3NjY2MURDODVEMjIwMEI2OTBEOCAv
KiBET01KSVRJRExUeXBlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKIAkJRTNCMkYwRUQxRDdGNENBMzAwQjBDOUQxIC8qIExvYWRhYmxlU2NyaXB0Lmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFM0IyRjBFNzFE
N0YzNUVDMDBCMEM5RDEgLyogTG9hZGFibGVTY3JpcHQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtMTUwNjksNiArMTUwNzEsOCBAQAogCQlFMzg4
Mzg5NDFCQUQxNDVGMDBENjJFRTMgLyogU2NyaXB0TW9kdWxlTG9hZGVyLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNjcmlwdE1vZHVsZUxvYWRlci5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUzODgzODk1MUJBRDE0NUYwMEQ2MkVFMyAvKiBTY3Jp
cHRNb2R1bGVMb2FkZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU2NyaXB0
TW9kdWxlTG9hZGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUzOEQwNjA5MUY4
RTgxMTkwMDY0OUNGMiAvKiBNb2R1bGVGZXRjaFBhcmFtZXRlcnMuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gTW9kdWxlRmV0Y2hQYXJhbWV0ZXJzLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCUUzOTYyOEJEMjM5NTcyOEUwMDY1OEVDRCAvKiBTaGFyZWREZXZpY2VP
cmllbnRhdGlvbkNsaWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTaGFy
ZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQlFMzk2MjhDMDIzOTU3NDMwMDA2NThFQ0QgLyogV2ViQ29yZU1vdGlvbk1hbmFnZXJDbGllbnQu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViQ29yZU1vdGlvbk1hbmFnZXJD
bGllbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTM5NzVCNzYxRUM5QUYzOTAw
ODQ3NzE3IC8qIEpTRG9jdW1lbnRGcmFnbWVudERPTUpJVC5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBKU0RvY3VtZW50RnJhZ21lbnRET01KSVQuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQlFMzk3NUI3NzFFQzlBRjM5MDA4NDc3MTcgLyogSlNFbGVt
ZW50RE9NSklULmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTRWxl
bWVudERPTUpJVC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUzOTc1Qjc4MUVD
OUFGMzkwMDg0NzcxNyAvKiBKU0V2ZW50RE9NSklULmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IEpTRXZlbnRET01KSVQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwpAQCAtMjI4MTYsNiArMjI4MjAsNyBAQAogCQkJCUU0NTM5MDM0MEVBRkQ2MzcwMDM2OTVD
OCAvKiBTY3JvbGxWaWV3SU9TLm1tICovLAogCQkJCUJFQTgwN0M2MEY3MTRBMDMwMDUyNDE5OSAv
KiBTZWxlY3Rpb25SZWN0LmNwcCAqLywKIAkJCQlCRUE4MDdDNzBGNzE0QTAzMDA1MjQxOTkgLyog
U2VsZWN0aW9uUmVjdC5oICovLAorCQkJCUUzOTYyOEJEMjM5NTcyOEUwMDY1OEVDRCAvKiBTaGFy
ZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudC5oICovLAogCQkJCTBGMDNDMDczMTg4NDY5NUUwMEE1
RjhDQSAvKiBTeXN0ZW1NZW1vcnkuaCAqLywKIAkJCQlFNDUzOTBBRDBFQUZGNEI1MDAzNjk1Qzgg
LyogU3lzdGVtTWVtb3J5SU9TLmNwcCAqLywKIAkJCQk0NEM5OTE5RDBGM0QyMTBFMDA1ODY2NzAg
LyogVGhlbWVJT1MuaCAqLywKQEAgLTIyODMyLDYgKzIyODM3LDcgQEAKIAkJCQkxRjM2RUE5QjFF
MjFCQTE3MDA2MjFFMjUgLyogV2ViQmFja2dyb3VuZFRhc2tDb250cm9sbGVyLm1tICovLAogCQkJ
CTMxNDAzNzk3MTI0QkVBN0YwMEFGNDBFNCAvKiBXZWJDb3JlTW90aW9uTWFuYWdlci5oICovLAog
CQkJCTMxNDAzNzk4MTI0QkVBN0YwMEFGNDBFNCAvKiBXZWJDb3JlTW90aW9uTWFuYWdlci5tbSAq
LywKKwkJCQlFMzk2MjhDMDIzOTU3NDMwMDA2NThFQ0QgLyogV2ViQ29yZU1vdGlvbk1hbmFnZXJD
bGllbnQuaCAqLywKIAkJCQlGRTBEODRFODEwNDg0MzQ4MDAxQTE3OUUgLyogV2ViRXZlbnQuaCAq
LywKIAkJCQlGRTBEODRFQTEwNDg0MzZFMDAxQTE3OUUgLyogV2ViRXZlbnQubW0gKi8sCiAJCQkJ
RjQ4MjIzMEYxRTM4NjlCODAwNjZGQzc5IC8qIFdlYkl0ZW1Qcm92aWRlclBhc3RlYm9hcmQuaCAq
LywKQEAgLTMyMTY1LDYgKzMyMTcxLDcgQEAKIAkJCQlGRDFBRjE1MDE2NTZGMTUxMDBDNkQ0Rjcg
LyogU2hhcGVWYWx1ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUQ5RjBGQzEyMTIyMDI5QjAwNUQ4
RkQ0IC8qIFNoYXJlRGF0YS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUE0QTk1NEUwQjRFRENDQjAw
MkQ4QzNDIC8qIFNoYXJlZEJ1ZmZlci5oIGluIEhlYWRlcnMgKi8sCisJCQkJRTM5NjI4QkYyMzk1
NzI4RjAwNjU4RUNEIC8qIFNoYXJlZERldmljZU9yaWVudGF0aW9uQ2xpZW50LmggaW4gSGVhZGVy
cyAqLywKIAkJCQk4MzRERkFEMDFGN0RBRTVEMDBDMjcyNUIgLyogU2hhcmVkU3RyaW5nSGFzaC5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJOTMzMDlFQTMwOTlFQjc4QzAwNTZFNTgxIC8qIFNoYXJlZFRp
bWVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk4MzYyRThDMTIwQ0VGOUNCMDAyNDU4ODYgLyogU2hv
dWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkLmggaW4gSGVhZGVycyAqLywKQEAgLTMyNzg0LDYgKzMy
NzkxLDcgQEAKIAkJCQlCQzUzRDkxMTExNDMxMENDMDAwRDgxN0UgLyogV2ViQ29yZUpTQ2xpZW50
RGF0YS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTNGMTk5QkIwODI0NUU1OTAwMUU5QUJDIC8qIFdl
YkNvcmVLZXlib2FyZFVJTW9kZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMzE0MDM3OUIxMjRCRUE3
RjAwQUY0MEU0IC8qIFdlYkNvcmVNb3Rpb25NYW5hZ2VyLmggaW4gSGVhZGVycyAqLywKKwkJCQlF
Mzk2MjhDMTIzOTU3NDMxMDA2NThFQ0QgLyogV2ViQ29yZU1vdGlvbk1hbmFnZXJDbGllbnQuaCBp
biBIZWFkZXJzICovLAogCQkJCUNEQzk3OUY1MUM0OThDMDkwMERCNTBENCAvKiBXZWJDb3JlTlNF
cnJvckV4dHJhcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRjRFNTdFRTEyMTNGNDM0QTAwNEVBOThF
IC8qIFdlYkNvcmVOU0ZvbnRNYW5hZ2VyRXh0cmFzLmggaW4gSGVhZGVycyAqLywKIAkJCQlDNUI0
QzI0RDE1MDkyMzZDMDBBNkVGMzcgLyogV2ViQ29yZU5TVVJMRXh0cmFzLmggaW4gSGVhZGVycyAq
LywKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2RvbS9EZXZpY2VPcmllbnRhdGlvbkNsaWVudC5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2RvbS9EZXZpY2VPcmllbnRhdGlvbkNsaWVudC5o
CShyZXZpc2lvbiAyNTMwNTkpCisrKyBTb3VyY2UvV2ViQ29yZS9kb20vRGV2aWNlT3JpZW50YXRp
b25DbGllbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMjgsNiArMjgsNyBAQAogCiAjaW5jbHVkZSAi
RGV2aWNlQ2xpZW50LmgiCiAjaW5jbHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+CisjaW5jbHVkZSA8
d3RmL1JlZlB0ci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL2RvbS9Eb2N1bWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZG9tL0Rv
Y3VtZW50LmNwcAkocmV2aXNpb24gMjUzMDU5KQorKysgU291cmNlL1dlYkNvcmUvZG9tL0RvY3Vt
ZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTY1LDcgKzU2NSw3IEBAIERvY3VtZW50OjpEb2N1
bWVudChGcmFtZSogZnJhbWUsIGNvbnN0IFUKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKSAmJiBF
TkFCTEUoREVWSUNFX09SSUVOVEFUSU9OKQogICAgICwgbV9kZXZpY2VNb3Rpb25DbGllbnQobWFr
ZVVuaXF1ZTxEZXZpY2VNb3Rpb25DbGllbnRJT1M+KCkpCiAgICAgLCBtX2RldmljZU1vdGlvbkNv
bnRyb2xsZXIobWFrZVVuaXF1ZTxEZXZpY2VNb3Rpb25Db250cm9sbGVyPigqbV9kZXZpY2VNb3Rp
b25DbGllbnQpKQotICAgICwgbV9kZXZpY2VPcmllbnRhdGlvbkNsaWVudChtYWtlVW5pcXVlPERl
dmljZU9yaWVudGF0aW9uQ2xpZW50SU9TPigpKQorICAgICwgbV9kZXZpY2VPcmllbnRhdGlvbkNs
aWVudChtYWtlVW5pcXVlPERldmljZU9yaWVudGF0aW9uQ2xpZW50SU9TPihwYWdlKCkgPyBwYWdl
KCktPnNoYXJlZERldmljZU9yaWVudGF0aW9uQ2xpZW50KCkgOiBudWxscHRyKSkKICAgICAsIG1f
ZGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyKG1ha2VVbmlxdWU8RGV2aWNlT3JpZW50YXRpb25D
b250cm9sbGVyPigqbV9kZXZpY2VPcmllbnRhdGlvbkNsaWVudCkpCiAjZW5kaWYKICAgICAsIG1f
cGVuZGluZ1Rhc2tzVGltZXIoKnRoaXMsICZEb2N1bWVudDo6cGVuZGluZ1Rhc2tzVGltZXJGaXJl
ZCkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcAkocmV2aXNpb24gMjUzMDU5KQorKysgU291cmNlL1dl
YkNvcmUvcGFnZS9QYWdlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjg5LDYgKzI4OSw5IEBAIFBh
Z2U6OlBhZ2UoUGFnZUNvbmZpZ3VyYXRpb24mJiBwYWdlQ29uZmkKICNpZiBFTkFCTEUoQVBQTElD
QVRJT05fTUFOSUZFU1QpCiAgICAgLCBtX2FwcGxpY2F0aW9uTWFuaWZlc3QocGFnZUNvbmZpZ3Vy
YXRpb24uYXBwbGljYXRpb25NYW5pZmVzdCkKICNlbmRpZgorI2lmIEVOQUJMRShERVZJQ0VfT1JJ
RU5UQVRJT04pICYmIFBMQVRGT1JNKElPU19GQU1JTFkpCisgICAgLCBtX3NoYXJlZERldmljZU9y
aWVudGF0aW9uQ2xpZW50KFdURk1vdmUocGFnZUNvbmZpZ3VyYXRpb24uc2hhcmVkRGV2aWNlT3Jp
ZW50YXRpb25DbGllbnQpKQorI2VuZGlmCiB7CiAgICAgdXBkYXRlVGltZXJUaHJvdHRsaW5nU3Rh
dGUoKTsKIApJbmRleDogU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmgJKHJldmlzaW9uIDI1MzA1OSkKKysrIFNvdXJjZS9X
ZWJDb3JlL3BhZ2UvUGFnZS5oCSh3b3JraW5nIGNvcHkpCkBAIC02OSw2ICs2OSwxMCBAQAogI2lu
Y2x1ZGUgIk1lZGlhUGxheWJhY2tUYXJnZXRDb250ZXh0LmgiCiAjZW5kaWYKIAorI2lmIEVOQUJM
RShERVZJQ0VfT1JJRU5UQVRJT04pICYmIFBMQVRGT1JNKElPU19GQU1JTFkpCisjaW5jbHVkZSAi
U2hhcmVkRGV2aWNlT3JpZW50YXRpb25DbGllbnQuaCIKKyNlbmRpZgorCiBuYW1lc3BhY2UgSlND
IHsKIGNsYXNzIERlYnVnZ2VyOwogfQpAQCAtNzE5LDYgKzcyMywxMCBAQCBwdWJsaWM6CiAKICAg
ICBXRUJDT1JFX0VYUE9SVCBWZWN0b3I8UmVmPEVsZW1lbnQ+PiBlZGl0YWJsZUVsZW1lbnRzSW5S
ZWN0KGNvbnN0IEZsb2F0UmVjdCYpIGNvbnN0OwogCisjaWYgRU5BQkxFKERFVklDRV9PUklFTlRB
VElPTikgJiYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKyAgICBTaGFyZWREZXZpY2VPcmllbnRhdGlv
bkNsaWVudCogc2hhcmVkRGV2aWNlT3JpZW50YXRpb25DbGllbnQoKSBjb25zdCB7IHJldHVybiBt
X3NoYXJlZERldmljZU9yaWVudGF0aW9uQ2xpZW50LmdldCgpOyB9CisjZW5kaWYKKwogcHJpdmF0
ZToKICAgICBzdHJ1Y3QgTmF2aWdhdGlvbiB7CiAgICAgICAgIFJlZ2lzdHJhYmxlRG9tYWluIGRv
bWFpbjsKQEAgLTk5MCw2ICs5OTgsMTAgQEAgcHJpdmF0ZToKIAogICAgIE9wdGlvbmFsPFZpZXdw
b3J0QXJndW1lbnRzPiBtX292ZXJyaWRlVmlld3BvcnRBcmd1bWVudHM7CiAKKyNpZiBFTkFCTEUo
REVWSUNFX09SSUVOVEFUSU9OKSAmJiBQTEFURk9STShJT1NfRkFNSUxZKQorICAgIFJlZlB0cjxT
aGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudD4gbV9zaGFyZWREZXZpY2VPcmllbnRhdGlvbkNs
aWVudDsKKyNlbmRpZgorCiAgICAgYm9vbCBtX3Nob3VsZEVuYWJsZUlDRUNhbmRpZGF0ZUZpbHRl
cmluZ0J5RGVmYXVsdCB7IHRydWUgfTsKICAgICBib29sIG1fbWVkaWFQbGF5YmFja0lzU3VzcGVu
ZGVkIHsgZmFsc2UgfTsKICAgICBib29sIG1fbWVkaWFCdWZmZXJpbmdJc1N1c3BlbmRlZCB7IGZh
bHNlIH07CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VDb25maWd1cmF0aW9uLmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlQ29uZmlndXJhdGlvbi5oCShyZXZp
c2lvbiAyNTMwNTkpCisrKyBTb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VDb25maWd1cmF0aW9uLmgJ
KHdvcmtpbmcgY29weSkKQEAgLTU3LDYgKzU3LDcgQEAgY2xhc3MgUGVyZm9ybWFuY2VMb2dnaW5n
Q2xpZW50OwogY2xhc3MgUGx1Z0luQ2xpZW50OwogY2xhc3MgUGx1Z2luSW5mb1Byb3ZpZGVyOwog
Y2xhc3MgUHJvZ3Jlc3NUcmFja2VyQ2xpZW50OworY2xhc3MgU2hhcmVkRGV2aWNlT3JpZW50YXRp
b25DbGllbnQ7CiBjbGFzcyBTb2NrZXRQcm92aWRlcjsKIGNsYXNzIFN0b3JhZ2VOYW1lc3BhY2VQ
cm92aWRlcjsKIGNsYXNzIFVzZXJDb250ZW50UHJvdmlkZXI7CkBAIC0xMTgsNiArMTE5LDEwIEBA
IHB1YmxpYzoKICAgICBSZWZQdHI8U3RvcmFnZU5hbWVzcGFjZVByb3ZpZGVyPiBzdG9yYWdlTmFt
ZXNwYWNlUHJvdmlkZXI7CiAgICAgUmVmUHRyPFVzZXJDb250ZW50UHJvdmlkZXI+IHVzZXJDb250
ZW50UHJvdmlkZXI7CiAgICAgUmVmUHRyPFZpc2l0ZWRMaW5rU3RvcmU+IHZpc2l0ZWRMaW5rU3Rv
cmU7CisgICAgCisjaWYgRU5BQkxFKERFVklDRV9PUklFTlRBVElPTikgJiYgUExBVEZPUk0oSU9T
X0ZBTUlMWSkKKyAgICBSZWZQdHI8U2hhcmVkRGV2aWNlT3JpZW50YXRpb25DbGllbnQ+IHNoYXJl
ZERldmljZU9yaWVudGF0aW9uQ2xpZW50OworI2VuZGlmCiB9OwogCiB9CkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9pb3MvRGV2aWNlT3JpZW50YXRpb25DbGllbnRJT1MuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvRGV2aWNlT3JpZW50YXRpb25DbGll
bnRJT1MuaAkocmV2aXNpb24gMjUzMDU5KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9z
L0RldmljZU9yaWVudGF0aW9uQ2xpZW50SU9TLmgJKHdvcmtpbmcgY29weSkKQEAgLTMwLDE1ICsz
MCwxNyBAQAogI2luY2x1ZGUgIkRldmljZU9yaWVudGF0aW9uQ2xpZW50LmgiCiAjaW5jbHVkZSAi
RGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyLmgiCiAjaW5jbHVkZSAiRGV2aWNlT3JpZW50YXRp
b25EYXRhLmgiCisjaW5jbHVkZSAiU2hhcmVkRGV2aWNlT3JpZW50YXRpb25DbGllbnQuaCIKKyNp
bmNsdWRlICJXZWJDb3JlTW90aW9uTWFuYWdlckNsaWVudC5oIgogI2luY2x1ZGUgPHd0Zi9SZWZQ
dHIuaD4KIAogT0JKQ19DTEFTUyBXZWJDb3JlTW90aW9uTWFuYWdlcjsKIAogbmFtZXNwYWNlIFdl
YkNvcmUgewogCi1jbGFzcyBEZXZpY2VPcmllbnRhdGlvbkNsaWVudElPUyA6IHB1YmxpYyBEZXZp
Y2VPcmllbnRhdGlvbkNsaWVudCB7CitjbGFzcyBEZXZpY2VPcmllbnRhdGlvbkNsaWVudElPUyA6
IHB1YmxpYyBEZXZpY2VPcmllbnRhdGlvbkNsaWVudCwgcHVibGljIFdlYkNvcmVNb3Rpb25NYW5h
Z2VyQ2xpZW50IHsKIHB1YmxpYzoKLSAgICBEZXZpY2VPcmllbnRhdGlvbkNsaWVudElPUygpOwor
ICAgIERldmljZU9yaWVudGF0aW9uQ2xpZW50SU9TKFJlZlB0cjxTaGFyZWREZXZpY2VPcmllbnRh
dGlvbkNsaWVudD4mJik7CiAgICAgfkRldmljZU9yaWVudGF0aW9uQ2xpZW50SU9TKCkgb3ZlcnJp
ZGU7CiAgICAgdm9pZCBzZXRDb250cm9sbGVyKERldmljZU9yaWVudGF0aW9uQ29udHJvbGxlciop
IG92ZXJyaWRlOwogICAgIHZvaWQgc3RhcnRVcGRhdGluZygpIG92ZXJyaWRlOwpAQCAtNDYsMTIg
KzQ4LDEzIEBAIHB1YmxpYzoKICAgICBEZXZpY2VPcmllbnRhdGlvbkRhdGEqIGxhc3RPcmllbnRh
dGlvbigpIGNvbnN0IG92ZXJyaWRlOwogICAgIHZvaWQgZGV2aWNlT3JpZW50YXRpb25Db250cm9s
bGVyRGVzdHJveWVkKCkgb3ZlcnJpZGU7CiAKLSAgICB2b2lkIG9yaWVudGF0aW9uQ2hhbmdlZChk
b3VibGUsIGRvdWJsZSwgZG91YmxlLCBkb3VibGUsIGRvdWJsZSk7CisgICAgdm9pZCBvcmllbnRh
dGlvbkNoYW5nZWQoZG91YmxlLCBkb3VibGUsIGRvdWJsZSwgZG91YmxlLCBkb3VibGUpIG92ZXJy
aWRlOwogCiBwcml2YXRlOgogICAgIFdlYkNvcmVNb3Rpb25NYW5hZ2VyKiBtX21vdGlvbk1hbmFn
ZXI7CiAgICAgRGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyKiBtX2NvbnRyb2xsZXI7CiAgICAg
UmVmUHRyPERldmljZU9yaWVudGF0aW9uRGF0YT4gbV9jdXJyZW50RGV2aWNlT3JpZW50YXRpb247
CisgICAgUmVmUHRyPFNoYXJlZERldmljZU9yaWVudGF0aW9uQ2xpZW50PiBtX3NoYXJlZERldmlj
ZU9yaWVudGF0aW9uQ2xpZW50OwogICAgIGJvb2wgbV91cGRhdGluZzsKIH07CiAKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9EZXZpY2VPcmllbnRhdGlvbkNsaWVudElPUy5tbQo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvRGV2aWNlT3JpZW50YXRp
b25DbGllbnRJT1MubW0JKHJldmlzaW9uIDI1MzA1OSkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2lvcy9EZXZpY2VPcmllbnRhdGlvbkNsaWVudElPUy5tbQkod29ya2luZyBjb3B5KQpAQCAt
MzMsMTAgKzMzLDExIEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotRGV2aWNlT3JpZW50YXRp
b25DbGllbnRJT1M6OkRldmljZU9yaWVudGF0aW9uQ2xpZW50SU9TKCkKK0RldmljZU9yaWVudGF0
aW9uQ2xpZW50SU9TOjpEZXZpY2VPcmllbnRhdGlvbkNsaWVudElPUyhSZWZQdHI8U2hhcmVkRGV2
aWNlT3JpZW50YXRpb25DbGllbnQ+JiYgc2hhcmVkRGV2aWNlT3JpZW50YXRpb25DbGllbnQpCiAg
ICAgOiBEZXZpY2VPcmllbnRhdGlvbkNsaWVudCgpCiAgICAgLCBtX21vdGlvbk1hbmFnZXIobnVs
bHB0cikKLSAgICAsIG1fdXBkYXRpbmcoMCkKKyAgICAsIG1fc2hhcmVkRGV2aWNlT3JpZW50YXRp
b25DbGllbnQoV1RGTW92ZShzaGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudCkpCisgICAgLCBt
X3VwZGF0aW5nKGZhbHNlKQogewogfQogCkBAIC01Myw2ICs1NCwxMSBAQCB2b2lkIERldmljZU9y
aWVudGF0aW9uQ2xpZW50SU9TOjpzdGFydFVwCiB7CiAgICAgbV91cGRhdGluZyA9IHRydWU7CiAK
KyAgICBpZiAobV9zaGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudCkgeworICAgICAgICBtX3No
YXJlZERldmljZU9yaWVudGF0aW9uQ2xpZW50LT5zdGFydFVwZGF0aW5nKCp0aGlzKTsKKyAgICAg
ICAgcmV0dXJuOworICAgIH0KKwogICAgIGlmICghbV9tb3Rpb25NYW5hZ2VyKQogICAgICAgICBt
X21vdGlvbk1hbmFnZXIgPSBbV2ViQ29yZU1vdGlvbk1hbmFnZXIgc2hhcmVkTWFuYWdlcl07CiAK
QEAgLTYzLDYgKzY5LDExIEBAIHZvaWQgRGV2aWNlT3JpZW50YXRpb25DbGllbnRJT1M6OnN0b3BV
cGQKIHsKICAgICBtX3VwZGF0aW5nID0gZmFsc2U7CiAKKyAgICBpZiAobV9zaGFyZWREZXZpY2VP
cmllbnRhdGlvbkNsaWVudCkgeworICAgICAgICBtX3NoYXJlZERldmljZU9yaWVudGF0aW9uQ2xp
ZW50LT5zdG9wVXBkYXRpbmcoKnRoaXMpOworICAgICAgICByZXR1cm47CisgICAgfQorCiAgICAg
Ly8gUmVtb3ZlIG91cnNlbHZlcyBhcyB0aGUgb3JpZW50YXRpb24gY2xpZW50IHNvIHdlIHdvbid0
IGdldCB1cGRhdGVzLgogICAgIFttX21vdGlvbk1hbmFnZXIgcmVtb3ZlT3JpZW50YXRpb25DbGll
bnQ6dGhpc107CiB9CkBAIC03NCw2ICs4NSwxMSBAQCBEZXZpY2VPcmllbnRhdGlvbkRhdGEqIERl
dmljZU9yaWVudGF0aW9uCiAKIHZvaWQgRGV2aWNlT3JpZW50YXRpb25DbGllbnRJT1M6OmRldmlj
ZU9yaWVudGF0aW9uQ29udHJvbGxlckRlc3Ryb3llZCgpCiB7CisgICAgaWYgKG1fc2hhcmVkRGV2
aWNlT3JpZW50YXRpb25DbGllbnQpIHsKKyAgICAgICAgbV9zaGFyZWREZXZpY2VPcmllbnRhdGlv
bkNsaWVudC0+c3RvcFVwZGF0aW5nKCp0aGlzKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKwog
ICAgIFttX21vdGlvbk1hbmFnZXIgcmVtb3ZlT3JpZW50YXRpb25DbGllbnQ6dGhpc107CiB9CiAg
ICAgCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvU2hhcmVkRGV2aWNlT3JpZW50
YXRpb25DbGllbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3Mv
U2hhcmVkRGV2aWNlT3JpZW50YXRpb25DbGllbnQuaAkobm9uZXhpc3RlbnQpCisrKyBTb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9pb3MvU2hhcmVkRGV2aWNlT3JpZW50YXRpb25DbGllbnQuaAkod29y
a2luZyBjb3B5KQpAQCAtMCwwICsxLDUxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE5IEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgKiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBgYEFTIElTJycgQU5EIEFO
WQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
IElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQgT1dORVIgT1IKKyAqIENPTlRSSUJVVE9S
UyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAq
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lm
IFBMQVRGT1JNKElPU19GQU1JTFkpICYmIEVOQUJMRShERVZJQ0VfT1JJRU5UQVRJT04pCisKKyNp
bmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNz
IFdlYkNvcmVNb3Rpb25NYW5hZ2VyQ2xpZW50OworCitjbGFzcyBTaGFyZWREZXZpY2VPcmllbnRh
dGlvbkNsaWVudCA6IHB1YmxpYyBSZWZDb3VudGVkPFNoYXJlZERldmljZU9yaWVudGF0aW9uQ2xp
ZW50PiB7CitwdWJsaWM6CisgICAgdmlydHVhbCB+U2hhcmVkRGV2aWNlT3JpZW50YXRpb25DbGll
bnQoKSB7IH0KKworICAgIHZpcnR1YWwgdm9pZCBzdGFydFVwZGF0aW5nKFdlYkNvcmVNb3Rpb25N
YW5hZ2VyQ2xpZW50JikgPSAwOworICAgIHZpcnR1YWwgdm9pZCBzdG9wVXBkYXRpbmcoV2ViQ29y
ZU1vdGlvbk1hbmFnZXJDbGllbnQmKSA9IDA7CisKKyAgICB2aXJ0dWFsIHZvaWQgZGV2aWNlT3Jp
ZW50YXRpb25DaGFuZ2VkKGRvdWJsZSwgZG91YmxlLCBkb3VibGUsIGRvdWJsZSwgZG91YmxlKSA9
IDA7CisgICAgCitwcm90ZWN0ZWQ6CisgICAgU2hhcmVkRGV2aWNlT3JpZW50YXRpb25DbGllbnQo
KSA9IGRlZmF1bHQ7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBQ
TEFURk9STShJT1NfRkFNSUxZKSAmJiBFTkFCTEUoREVWSUNFX09SSUVOVEFUSU9OKQpJbmRleDog
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dlYkNvcmVNb3Rpb25NYW5hZ2VyLmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dlYkNvcmVNb3Rpb25NYW5hZ2Vy
LmgJKHJldmlzaW9uIDI1MzA1OSkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJD
b3JlTW90aW9uTWFuYWdlci5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNSw4ICsyNSw2IEBACiAKICNw
cmFnbWEgb25jZQogCi0jaW1wb3J0ICJEZXZpY2VNb3Rpb25DbGllbnRJT1MuaCIKLSNpbXBvcnQg
IkRldmljZU9yaWVudGF0aW9uQ2xpZW50SU9TLmgiCiAjaW1wb3J0IDxDb3JlTG9jYXRpb24vQ29y
ZUxvY2F0aW9uLmg+CiAjaW1wb3J0IDx3dGYvSGFzaENvdW50ZWRTZXQuaD4KIApAQCAtMzYsMTEg
KzM0LDE2IEBACiAKIGNvbnN0IGZsb2F0IGtNb3Rpb25VcGRhdGVJbnRlcnZhbCA9IDEuMGYgLyA2
MC4wZjsKIAotQGludGVyZmFjZSBXZWJDb3JlTW90aW9uTWFuYWdlciA6IE5TT2JqZWN0IHsKK25h
bWVzcGFjZSBXZWJDb3JlIHsKK2NsYXNzIERldmljZU1vdGlvbkNsaWVudElPUzsKK2NsYXNzIFdl
YkNvcmVNb3Rpb25NYW5hZ2VyQ2xpZW50OworfTsKKworV0VCQ09SRV9FWFBPUlQgQGludGVyZmFj
ZSBXZWJDb3JlTW90aW9uTWFuYWdlciA6IE5TT2JqZWN0IHsKICAgICBDTU1vdGlvbk1hbmFnZXIq
IG1fbW90aW9uTWFuYWdlcjsKICAgICBDTExvY2F0aW9uTWFuYWdlciogbV9sb2NhdGlvbk1hbmFn
ZXI7CiAgICAgSGFzaFNldDxXZWJDb3JlOjpEZXZpY2VNb3Rpb25DbGllbnRJT1MqPiBtX2Rldmlj
ZU1vdGlvbkNsaWVudHM7Ci0gICAgSGFzaFNldDxXZWJDb3JlOjpEZXZpY2VPcmllbnRhdGlvbkNs
aWVudElPUyo+IG1fZGV2aWNlT3JpZW50YXRpb25DbGllbnRzOworICAgIEhhc2hTZXQ8V2ViQ29y
ZTo6V2ViQ29yZU1vdGlvbk1hbmFnZXJDbGllbnQqPiBtX2RldmljZU9yaWVudGF0aW9uQ2xpZW50
czsKICAgICBOU1RpbWVyKiBtX3VwZGF0ZVRpbWVyOwogICAgIEJPT0wgbV9neXJvQXZhaWxhYmxl
OwogICAgIEJPT0wgbV9oZWFkaW5nQXZhaWxhYmxlOwpAQCAtNTAsOCArNTMsOCBAQCBjb25zdCBm
bG9hdCBrTW90aW9uVXBkYXRlSW50ZXJ2YWwgPSAxLjBmCiArIChXZWJDb3JlTW90aW9uTWFuYWdl
ciAqKXNoYXJlZE1hbmFnZXI7CiAtICh2b2lkKWFkZE1vdGlvbkNsaWVudDooV2ViQ29yZTo6RGV2
aWNlTW90aW9uQ2xpZW50SU9TICopY2xpZW50OwogLSAodm9pZClyZW1vdmVNb3Rpb25DbGllbnQ6
KFdlYkNvcmU6OkRldmljZU1vdGlvbkNsaWVudElPUyAqKWNsaWVudDsKLS0gKHZvaWQpYWRkT3Jp
ZW50YXRpb25DbGllbnQ6KFdlYkNvcmU6OkRldmljZU9yaWVudGF0aW9uQ2xpZW50SU9TICopY2xp
ZW50OwotLSAodm9pZClyZW1vdmVPcmllbnRhdGlvbkNsaWVudDooV2ViQ29yZTo6RGV2aWNlT3Jp
ZW50YXRpb25DbGllbnRJT1MgKiljbGllbnQ7CistICh2b2lkKWFkZE9yaWVudGF0aW9uQ2xpZW50
OihXZWJDb3JlOjpXZWJDb3JlTW90aW9uTWFuYWdlckNsaWVudCAqKWNsaWVudDsKKy0gKHZvaWQp
cmVtb3ZlT3JpZW50YXRpb25DbGllbnQ6KFdlYkNvcmU6OldlYkNvcmVNb3Rpb25NYW5hZ2VyQ2xp
ZW50ICopY2xpZW50OwogLSAoQk9PTClneXJvQXZhaWxhYmxlOwogLSAoQk9PTCloZWFkaW5nQXZh
aWxhYmxlOwogQGVuZApJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dlYkNvcmVN
b3Rpb25NYW5hZ2VyLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lv
cy9XZWJDb3JlTW90aW9uTWFuYWdlci5tbQkocmV2aXNpb24gMjUzMDU5KQorKysgU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vaW9zL1dlYkNvcmVNb3Rpb25NYW5hZ2VyLm1tCSh3b3JraW5nIGNvcHkp
CkBAIC0yOCw2ICsyOCw4IEBACiAKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKSAmJiBFTkFCTEUo
REVWSUNFX09SSUVOVEFUSU9OKQogCisjaW1wb3J0ICJEZXZpY2VNb3Rpb25DbGllbnRJT1MuaCIK
KyNpbXBvcnQgIldlYkNvcmVNb3Rpb25NYW5hZ2VyQ2xpZW50LmgiCiAjaW1wb3J0ICJXZWJDb3Jl
T2JqQ0V4dHJhcy5oIgogI2ltcG9ydCAiV2ViQ29yZVRocmVhZFJ1bi5oIgogI2ltcG9ydCA8Q29y
ZUxvY2F0aW9uL0NvcmVMb2NhdGlvbi5oPgpAQCAtMTEyLDE0ICsxMTQsMTQgQEAgLSAodm9pZCly
ZW1vdmVNb3Rpb25DbGllbnQ6KFdlYkNvcmU6OkRldgogICAgICAgICBbc2VsZiBjaGVja0NsaWVu
dFN0YXR1c107CiB9CiAKLS0gKHZvaWQpYWRkT3JpZW50YXRpb25DbGllbnQ6KFdlYkNvcmU6OkRl
dmljZU9yaWVudGF0aW9uQ2xpZW50SU9TICopY2xpZW50CistICh2b2lkKWFkZE9yaWVudGF0aW9u
Q2xpZW50OihXZWJDb3JlOjpXZWJDb3JlTW90aW9uTWFuYWdlckNsaWVudCAqKWNsaWVudAogewog
ICAgIG1fZGV2aWNlT3JpZW50YXRpb25DbGllbnRzLmFkZChjbGllbnQpOwogICAgIGlmIChtX2lu
aXRpYWxpemVkKQogICAgICAgICBbc2VsZiBjaGVja0NsaWVudFN0YXR1c107CiB9CiAKLS0gKHZv
aWQpcmVtb3ZlT3JpZW50YXRpb25DbGllbnQ6KFdlYkNvcmU6OkRldmljZU9yaWVudGF0aW9uQ2xp
ZW50SU9TICopY2xpZW50CistICh2b2lkKXJlbW92ZU9yaWVudGF0aW9uQ2xpZW50OihXZWJDb3Jl
OjpXZWJDb3JlTW90aW9uTWFuYWdlckNsaWVudCAqKWNsaWVudAogewogICAgIG1fZGV2aWNlT3Jp
ZW50YXRpb25DbGllbnRzLnJlbW92ZShjbGllbnQpOwogICAgIGlmIChtX2luaXRpYWxpemVkKQpJ
bmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dlYkNvcmVNb3Rpb25NYW5hZ2VyQ2xp
ZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dlYkNvcmVN
b3Rpb25NYW5hZ2VyQ2xpZW50LmgJKG5vbmV4aXN0ZW50KQorKysgU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vaW9zL1dlYkNvcmVNb3Rpb25NYW5hZ2VyQ2xpZW50LmgJKHdvcmtpbmcgY29weSkKQEAg
LTAsMCArMSwzNyBAQAorLyoKKyogQ29weXJpZ2h0IChDKSAyMDE5IEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyoKKyogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworKiBhcmUgbWV0Ogor
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyoKKyogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworKiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyogVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorKiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRgorKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyogQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkKKyogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRgorKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisq
LworCisjcHJhZ21hIG9uY2UKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBXZWJDb3Jl
TW90aW9uTWFuYWdlckNsaWVudCB7CitwdWJsaWM6CisgICAgdmlydHVhbCB+V2ViQ29yZU1vdGlv
bk1hbmFnZXJDbGllbnQoKSB7IH07CisKKyAgICB2aXJ0dWFsIHZvaWQgb3JpZW50YXRpb25DaGFu
Z2VkKGRvdWJsZSwgZG91YmxlLCBkb3VibGUsIGRvdWJsZSwgZG91YmxlKSA9IDA7Cit9OworCit9
OwpJbmRleDogU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YktpdC9DaGFuZ2VMb2cJKHJldmlzaW9uIDI1MzA1OSkKKysrIFNvdXJjZS9XZWJLaXQvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMzUgQEAKKzIwMTktMTItMDMgIFBlciBBcm5l
IFZvbGxhbiAgPHB2b2xsYW5AYXBwbGUuY29tPgorCisgICAgICAgIFtpT1NdIENhbGxzIHRvIGRl
dmljZSBvcmllbnRhdGlvbiBBUEkgc2hvdWxkIGJlIGRvbmUgaW4gdGhlIFVJIHByb2Nlc3MKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNDcyMAorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBXZWIgcGFn
ZSBwcm94eSBtZXNzYWdlcyB0byBzdGFydCBhbmQgc3RvcCB1cGRhdGluZyBkZXZpY2Ugb3JpZW50
YXRpb24gaW4gdGhlIFVJIHByb2Nlc3MuIEFsc28sIGFkZCBhIG1lc3NhZ2UgdG8KKyAgICAgICAg
dGhlIFdlYiBwYWdlIHRvIHVwZGF0ZSB0aGUgZGV2aWNlIG9yaWVudGF0aW9uIGluIHRoZSBXZWJD
b250ZW50IHByb2Nlc3MuIEluIHRoZSBVSSBwcm9jZXNzLCB0aGUgZGV2aWNlIG9yaWVudGF0aW9u
IEFQSQorICAgICAgICBpcyBjYWxsZWQgdGhyb3VnaCB0aGUgYWxyZWFkeSBleGlzdGluZyBXZWJD
b3JlTW90aW9uTWFuYWdlciBjbGFzcy4KKworICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJv
eHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmNsb3NlKToKKyAgICAgICAg
KiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lmg6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQ
cm94eS5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dlYlBhZ2VQcm94eUlP
Uy5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpzdGFydFVwZGF0aW5nRGV2aWNl
T3JpZW50YXRpb24pOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OnN0b3BVcGRhdGlu
Z0RldmljZU9yaWVudGF0aW9uKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5Ojpvcmll
bnRhdGlvbkNoYW5nZWQpOgorICAgICAgICAqIFdlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViU2hhcmVkRGV2aWNl
T3JpZW50YXRpb25DbGllbnQuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViU2hhcmVk
RGV2aWNlT3JpZW50YXRpb25DbGllbnQ6OnN0YXJ0VXBkYXRpbmcpOgorICAgICAgICAoV2ViS2l0
OjpXZWJTaGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudDo6c3RvcFVwZGF0aW5nKToKKyAgICAg
ICAgKFdlYktpdDo6V2ViU2hhcmVkRGV2aWNlT3JpZW50YXRpb25DbGllbnQ6OmRldmljZU9yaWVu
dGF0aW9uQ2hhbmdlZCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJT
aGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudC5oOiBBZGRlZC4KKyAgICAgICAgKiBXZWJQcm9j
ZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHA6CisgICAgICAgIChXZWJLaXQ6Om1fb3ZlcnJpZGRlbk1l
ZGlhVHlwZSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaDoKKyAgICAg
ICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW06CisgICAgICAgIChXZWJLaXQ6Oldl
YlBhZ2U6OmRldmljZU9yaWVudGF0aW9uQ2hhbmdlZCk6CisKIDIwMTktMTItMDMgIFBlciBBcm5l
IFZvbGxhbiAgPHB2b2xsYW5AYXBwbGUuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQgYXNzZXJ0
aW9uIGZpeCBmb3Igb2xkZXIgbWFjT1MgdmVyc2lvbnMgYWZ0ZXIgcjI1MzAxMS4KSW5kZXg6IFNv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAkocmV2aXNpb24gMjUzMDU5KQor
KysgU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAkod29ya2luZyBjb3B5
KQpAQCAtMTA2Nyw2ICsxMDY3LDEwIEBAIHZvaWQgV2ViUGFnZVByb3h5OjpjbG9zZSgpCiAKICAg
ICBzdG9wQWxsVVJMU2NoZW1lVGFza3MoKTsKICAgICB1cGRhdGVQbGF5aW5nTWVkaWFEaWRDaGFu
Z2UoTWVkaWFQcm9kdWNlcjo6SXNOb3RQbGF5aW5nKTsKKyAgICAKKyNpZiBQTEFURk9STShJT1Nf
RkFNSUxZKSAmJiBFTkFCTEUoREVWSUNFX09SSUVOVEFUSU9OKQorICAgIHN0b3BVcGRhdGluZ0Rl
dmljZU9yaWVudGF0aW9uKCk7CisjZW5kaWYKIH0KIAogYm9vbCBXZWJQYWdlUHJveHk6OnRyeUNs
b3NlKCkKSW5kZXg6IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCShyZXZpc2lv
biAyNTMwNTkpCisrKyBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAkod29y
a2luZyBjb3B5KQpAQCAtMTQ5LDYgKzE0OSwxMCBAQCBPQkpDX0NMQVNTIF9XS1JlbW90ZU9iamVj
dFJlZ2lzdHJ5OwogI2luY2x1ZGUgIlNPQXV0aG9yaXphdGlvbkxvYWRQb2xpY3kuaCIKICNlbmRp
ZgogCisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkgJiYgRU5BQkxFKERFVklDRV9PUklFTlRBVElP
TikKKyNpbmNsdWRlIDxXZWJDb3JlL1dlYkNvcmVNb3Rpb25NYW5hZ2VyQ2xpZW50Lmg+CisjZW5k
aWYKKwogI2lmIEVOQUJMRShNRURJQV9TRVNTSU9OKQogbmFtZXNwYWNlIFdlYkNvcmUgewogY2xh
c3MgTWVkaWFTZXNzaW9uTWV0YWRhdGE7CkBAIC0xNTksNiArMTYzLDEwIEBAIGNsYXNzIE1lZGlh
U2Vzc2lvbk1ldGFkYXRhOwogaW50ZXJmYWNlIElEM0QxMURldmljZTE7CiAjZW5kaWYKIAorI2lm
IFBMQVRGT1JNKElPU19GQU1JTFkpICYmIEVOQUJMRShERVZJQ0VfT1JJRU5UQVRJT04pCitPQkpD
X0NMQVNTIFdlYkNvcmVNb3Rpb25NYW5hZ2VyOworI2VuZGlmCisKIG5hbWVzcGFjZSBBUEkgewog
Y2xhc3MgQXR0YWNobWVudDsKIGNsYXNzIENvbnRleHRNZW51Q2xpZW50OwpAQCAtNDEwLDYgKzQx
OCw5IEBAIGNsYXNzIFdlYlBhZ2VQcm94eSA6IHB1YmxpYyBBUEk6Ok9iamVjdEkKICAgICAsIHB1
YmxpYyBXZWJDb3JlOjpQbGF0Zm9ybVNwZWVjaFN5bnRoZXNpc1V0dGVyYW5jZUNsaWVudAogICAg
ICwgcHVibGljIFdlYkNvcmU6OlBsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXJDbGllbnQKICNlbmRp
ZgorI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpICYmIEVOQUJMRShERVZJQ0VfT1JJRU5UQVRJT04p
CisgICAgLCBwdWJsaWMgV2ViQ29yZTo6V2ViQ29yZU1vdGlvbk1hbmFnZXJDbGllbnQKKyNlbmRp
ZgogICAgICwgcHVibGljIENhbk1ha2VXZWFrUHRyPFdlYlBhZ2VQcm94eT4gewogcHVibGljOgog
ICAgIHN0YXRpYyBSZWY8V2ViUGFnZVByb3h5PiBjcmVhdGUoUGFnZUNsaWVudCYsIFdlYlByb2Nl
c3NQcm94eSYsIFJlZjxBUEk6OlBhZ2VDb25maWd1cmF0aW9uPiYmKTsKQEAgLTE2MjksNiArMTY0
MCwxMSBAQCBwdWJsaWM6CiAKICAgICB2b2lkIHNldE9yaWVudGF0aW9uRm9yTWVkaWFDYXB0dXJl
KHVpbnQ2NF90KTsKIAorI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpICYmIEVOQUJMRShERVZJQ0Vf
T1JJRU5UQVRJT04pCisgICAgdm9pZCBzdGFydFVwZGF0aW5nRGV2aWNlT3JpZW50YXRpb24oKTsK
KyAgICB2b2lkIHN0b3BVcGRhdGluZ0RldmljZU9yaWVudGF0aW9uKCk7CisjZW5kaWYKKwogcHJp
dmF0ZToKICAgICBXZWJQYWdlUHJveHkoUGFnZUNsaWVudCYsIFdlYlByb2Nlc3NQcm94eSYsIFJl
ZjxBUEk6OlBhZ2VDb25maWd1cmF0aW9uPiYmKTsKICAgICB2b2lkIHBsYXRmb3JtSW5pdGlhbGl6
ZSgpOwpAQCAtMjE3Miw2ICsyMTg4LDExIEBAIHByaXZhdGU6CiAgICAgdm9pZCByZXNldFNwZWVj
aFN5bnRoZXNpemVyKCk7CiAjZW5kaWYKIAorI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpICYmIEVO
QUJMRShERVZJQ0VfT1JJRU5UQVRJT04pCisgICAgLy8gV2ViQ29yZTo6V2ViQ29yZU1vdGlvbk1h
bmFnZXJDbGllbnQKKyAgICB2b2lkIG9yaWVudGF0aW9uQ2hhbmdlZChkb3VibGUsIGRvdWJsZSwg
ZG91YmxlLCBkb3VibGUsIGRvdWJsZSkgZmluYWw7CisjZW5kaWYKKwogI2lmIFBMQVRGT1JNKElP
U19GQU1JTFkpCiAgICAgc3RhdGljIGJvb2wgaXNJbkhhcmR3YXJlS2V5Ym9hcmRNb2RlKCk7CiAg
ICAgdm9pZCBjbGVhckF1ZGlibGVBY3Rpdml0eSgpOwpAQCAtMjYyOSw2ICsyNjUwLDEwIEBAIHBy
aXZhdGU6CiAgICAgYm9vbCBtX2lzUXVvdGFJbmNyZWFzZURlbmllZCB7IGZhbHNlIH07CiAgICAg
CiAgICAgU3RyaW5nIG1fb3ZlcnJpZGRlbk1lZGlhVHlwZTsKKworI2lmIFBMQVRGT1JNKElPU19G
QU1JTFkpICYmIEVOQUJMRShERVZJQ0VfT1JJRU5UQVRJT04pCisgICAgV2ViQ29yZU1vdGlvbk1h
bmFnZXIqIG1fbW90aW9uTWFuYWdlciB7IG51bGxwdHIgfTsKKyNlbmRpZgogfTsKIAogfSAvLyBu
YW1lc3BhY2UgV2ViS2l0CkluZGV4OiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJv
eHkubWVzc2FnZXMuaW4KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
UGFnZVByb3h5Lm1lc3NhZ2VzLmluCShyZXZpc2lvbiAyNTMwNTkpCisrKyBTb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4JKHdvcmtpbmcgY29weSkKQEAgLTU4
NSw0ICs1ODUsOSBAQCBtZXNzYWdlcyAtPiBXZWJQYWdlUHJveHkgewogCiAgICAgRGlkRmluZFRl
eHRNYW5pcHVsYXRpb25JdGVtKFdlYkNvcmU6OlRleHRNYW5pcHVsYXRpb25Db250cm9sbGVyOjpJ
dGVtSWRlbnRpZmllciBpdGVtSUQsIFZlY3RvcjxXZWJDb3JlOjpUZXh0TWFuaXB1bGF0aW9uQ29u
dHJvbGxlcjo6TWFuaXB1bGF0aW9uVG9rZW4+IHRva2VucykKIAorI2lmIFBMQVRGT1JNKElPU19G
QU1JTFkpICYmIEVOQUJMRShERVZJQ0VfT1JJRU5UQVRJT04pCisgICAgU3RhcnRVcGRhdGluZ0Rl
dmljZU9yaWVudGF0aW9uKCk7CisgICAgU3RvcFVwZGF0aW5nRGV2aWNlT3JpZW50YXRpb24oKTsK
KyNlbmRpZgorCiB9CkluZGV4OiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV2ViUGFnZVBy
b3h5SU9TLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XZWJQ
YWdlUHJveHlJT1MubW0JKHJldmlzaW9uIDI1MzA1OSkKKysrIFNvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL2lvcy9XZWJQYWdlUHJveHlJT1MubW0JKHdvcmtpbmcgY29weSkKQEAgLTc1LDYgKzc1LDEw
IEBACiAjaW1wb3J0IDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KICNlbmRpZgogCisjaWYgRU5BQkxF
KERFVklDRV9PUklFTlRBVElPTikKKyNpbXBvcnQgPFdlYkNvcmUvV2ViQ29yZU1vdGlvbk1hbmFn
ZXIuaD4KKyNlbmRpZgorCiAjZGVmaW5lIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoY2hhbm5lbCwg
Zm10LCAuLi4pIFJFTEVBU0VfTE9HX0lGKGlzQWx3YXlzT25Mb2dnaW5nQWxsb3dlZCgpLCBjaGFu
bmVsLCAiJXAgLSBbcGFnZVByb3h5SUQ9JWxsdSwgd2ViUGFnZUlEPSVsbHUsIFBJRD0laV0gV2Vi
UGFnZVByb3h5OjoiIGZtdCwgdGhpcywgbV9pZGVudGlmaWVyLnRvVUludDY0KCksIG1fd2ViUGFn
ZUlELnRvVUludDY0KCksIG1fcHJvY2Vzcy0+cHJvY2Vzc0lkZW50aWZpZXIoKSwgIyNfX1ZBX0FS
R1NfXykKIAogbmFtZXNwYWNlIFdlYktpdCB7CkBAIC0xNDg1LDYgKzE0ODksMjcgQEAgV2ViQ29u
dGVudE1vZGUgV2ViUGFnZVByb3h5OjplZmZlY3RpdmVDbwogICAgIHJldHVybiBXZWJDb250ZW50
TW9kZTo6RGVza3RvcDsKIH0KIAorI2lmIEVOQUJMRShERVZJQ0VfT1JJRU5UQVRJT04pCit2b2lk
IFdlYlBhZ2VQcm94eTo6c3RhcnRVcGRhdGluZ0RldmljZU9yaWVudGF0aW9uKCkKK3sKKyAgICBp
ZiAoIW1fbW90aW9uTWFuYWdlcikKKyAgICAgICAgbV9tb3Rpb25NYW5hZ2VyID0gW1dlYkNvcmVN
b3Rpb25NYW5hZ2VyIHNoYXJlZE1hbmFnZXJdOworICAgIFttX21vdGlvbk1hbmFnZXIgYWRkT3Jp
ZW50YXRpb25DbGllbnQ6dGhpc107Cit9CisKK3ZvaWQgV2ViUGFnZVByb3h5OjpzdG9wVXBkYXRp
bmdEZXZpY2VPcmllbnRhdGlvbigpCit7CisgICAgaWYgKG1fbW90aW9uTWFuYWdlcikKKyAgICAg
ICAgW21fbW90aW9uTWFuYWdlciByZW1vdmVPcmllbnRhdGlvbkNsaWVudDp0aGlzXTsKK30KKwor
dm9pZCBXZWJQYWdlUHJveHk6Om9yaWVudGF0aW9uQ2hhbmdlZChkb3VibGUgYWxwaGEsIGRvdWJs
ZSBiZXRhLCBkb3VibGUgZ2FtbWEsIGRvdWJsZSBjb21wYXNzSGVhZGluZywgZG91YmxlIGNvbXBh
c3NBY2N1cmFjeSkKK3sKKyAgICBzZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpEZXZpY2VPcmllbnRh
dGlvbkNoYW5nZWQoYWxwaGEsIGJldGEsIGdhbW1hLCBjb21wYXNzSGVhZGluZywgY29tcGFzc0Fj
Y3VyYWN5KSk7Cit9CisjZW5kaWYKKworCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKIAogI3VuZGVm
IFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQKSW5kZXg6IFNvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9XZWJLaXQu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkocmV2aXNpb24gMjUzMDU5KQorKysgU291cmNlL1dl
YktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkod29ya2luZyBjb3B5KQpAQCAt
MTY4OSw2ICsxNjg5LDggQEAKIAkJRTFEMjZBNTMxNzU5NjREOTAwOTVCRkQxIC8qIFdlYkNvbnRl
bnRQcm9jZXNzLnhpYiBpbiBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gRTFEMjZBNEMxNzU5NjM0RTAwOTVCRkQxIC8qIFdlYkNvbnRlbnRQcm9jZXNzLnhpYiAq
LzsgfTsKIAkJRTFFNTUyQzUxNkFFMDY1RjAwNEVENjUzIC8qIFNhbmRib3hJbml0aWFsaXphdGlv
blBhcmFtZXRlcnMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEUxRTU1MkMzMTZBRTA2NUUwMDRFRDY1MyAvKiBTYW5kYm94SW5pdGlhbGl6YXRpb25QYXJh
bWV0ZXJzLmggKi87IH07CiAJCUUxRUU1M0UzMTFGOENGQzAwMENDQkVFNCAvKiBJbmplY3RlZEJ1
bmRsZVBhZ2VFZGl0b3JDbGllbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEUxRUU1M0RDMTFGOENGOUYwMENDQkVFNCAvKiBJbmplY3RlZEJ1bmRsZVBh
Z2VFZGl0b3JDbGllbnQuaCAqLzsgfTsKKwkJRTM5NjI4REQyMzk2MENDNjAwNjU4RUNEIC8qIFdl
YlNoYXJlZERldmljZU9yaWVudGF0aW9uQ2xpZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMzk2MjhEQjIzOTYwQ0M1MDA2NThFQ0QgLyogV2ViU2hh
cmVkRGV2aWNlT3JpZW50YXRpb25DbGllbnQuaCAqLzsgfTsKKwkJRTM5NjI4REUyMzk2MENDNjAw
NjU4RUNEIC8qIFdlYlNoYXJlZERldmljZU9yaWVudGF0aW9uQ2xpZW50LmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUzOTYyOERDMjM5NjBDQzYwMDY1
OEVDRCAvKiBXZWJTaGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudC5jcHAgKi87IH07CiAJCUU0
MTNGNTlEMUFDMUFEQzQwMDM0NTM2MCAvKiBOZXR3b3JrQ2FjaGVFbnRyeS5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTQxM0Y1OUIxQUMxQURCNjAwMzQ1
MzYwIC8qIE5ldHdvcmtDYWNoZUVudHJ5LmggKi87IH07CiAJCUU0MkUwNjEwMUFBNzUyM0IwMEIx
MTY5OSAvKiBOZXR3b3JrQ2FjaGVJT0NoYW5uZWwuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU0MkUwNjBCMUFBNzQ0MEQwMEIxMTY5OSAvKiBOZXR3b3Jr
Q2FjaGVJT0NoYW5uZWwuaCAqLzsgfTsKIAkJRTQyRTA2MTIxQUE3NUFCRDAwQjExNjk5IC8qIE5l
dHdvcmtDYWNoZURhdGEuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEU0MkUwNjExMUFBNzVBQkQwMEIxMTY5OSAvKiBOZXR3b3JrQ2FjaGVEYXRhLmggKi87
IH07CkBAIC00NzQ5LDYgKzQ3NTEsOCBAQAogCQlFMUVFNTNEQzExRjhDRjlGMDBDQ0JFRTQgLyog
SW5qZWN0ZWRCdW5kbGVQYWdlRWRpdG9yQ2xpZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IEluamVjdGVkQnVuZGxlUGFnZUVkaXRvckNsaWVudC5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQlFMUVFNTNFNjExRjhDRkZCMDBDQ0JFRTQgLyogSW5qZWN0ZWRCdW5k
bGVQYWdlRWRpdG9yQ2xpZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IEluamVjdGVkQnVuZGxlUGFnZUVkaXRvckNsaWVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCUUzNDM5QjYzMjM0NTQ2M0EwMDExREUwQiAvKiBOZXR3b3JrUHJvY2Vzc0Nv
bm5lY3Rpb25JbmZvLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbklu
Zm8uaDsgcGF0aCA9IE5ldHdvcmsvTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uSW5mby5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFMzk2MjhEQjIzOTYwQ0M1MDA2NThFQ0QgLyogV2Vi
U2hhcmVkRGV2aWNlT3JpZW50YXRpb25DbGllbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gV2ViU2hhcmVkRGV2aWNlT3JpZW50YXRpb25DbGllbnQuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJRTM5NjI4REMyMzk2MENDNjAwNjU4RUNEIC8qIFdlYlNoYXJlZERl
dmljZU9yaWVudGF0aW9uQ2xpZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IFdlYlNoYXJlZERldmljZU9yaWVudGF0aW9uQ2xpZW50LmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJRTQwNDkwNzAyMURFNjVGNzAwMzdGMERCIC8qIFNjcm9sbGVyUGFp
ck1hYy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTY3JvbGxlclBhaXJNYWMu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTQwNDkwNzEyMURFNjVGNzAwMzdGMERC
IC8qIFNjcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVSZW1vdGVNYWMuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5n
Tm9kZVJlbW90ZU1hYy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUU0MDQ5MDcy
MjFERTY1RjcwMDM3RjBEQiAvKiBTY3JvbGxlclBhaXJNYWMubW0gKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5vYmpjcHA7IHBhdGggPSBTY3JvbGxlclBhaXJNYWMubW07IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CkBAIC01ODU3LDYgKzU4NjEsOCBAQAogCQkJCTJEMjhGM0UzMTg4NUNDQzEw
MDRCOUVBRSAvKiBXZWJGcmFtZUxvYWRlckNsaWVudElPUy5tbSAqLywKIAkJCQlBMUM1MTJDNjE5
MDY1NkU1MDA0NDg5MTQgLyogV2ViUHJldmlld0xvYWRlckNsaWVudC5jcHAgKi8sCiAJCQkJQTFD
NTEyQzcxOTA2NTZFNTAwNDQ4OTE0IC8qIFdlYlByZXZpZXdMb2FkZXJDbGllbnQuaCAqLywKKwkJ
CQlFMzk2MjhEQzIzOTYwQ0M2MDA2NThFQ0QgLyogV2ViU2hhcmVkRGV2aWNlT3JpZW50YXRpb25D
bGllbnQuY3BwICovLAorCQkJCUUzOTYyOERCMjM5NjBDQzUwMDY1OEVDRCAvKiBXZWJTaGFyZWRE
ZXZpY2VPcmllbnRhdGlvbkNsaWVudC5oICovLAogCQkJKTsKIAkJCW5hbWUgPSBpb3M7CiAJCQlz
b3VyY2VUcmVlID0gIjxncm91cD4iOwpAQCAtMTAwOTEsNiArMTAwOTcsNyBAQAogCQkJCTdDMzYx
RDczMTkyN0ZBMzYwMDM2QTU5RCAvKiBXZWJTY3JpcHRNZXNzYWdlSGFuZGxlci5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJRDNCOTQ4NDkxMUZGNEI2NTAwMDMyQjM5IC8qIFdlYlNlYXJjaFBvcHVwTWVu
dS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTFCRUI2MkMxRjNBNUFENzAwNTAyOUI5IC8qIFdlYlNl
cnZpY2VXb3JrZXJQcm92aWRlci5oIGluIEhlYWRlcnMgKi8sCisJCQkJRTM5NjI4REQyMzk2MEND
NjAwNjU4RUNEIC8qIFdlYlNoYXJlZERldmljZU9yaWVudGF0aW9uQ2xpZW50LmggaW4gSGVhZGVy
cyAqLywKIAkJCQk1QzhERDM4MDFGRTQ1MjE2MDBGMkE1NTYgLyogV2Vic2l0ZUF1dG9wbGF5UG9s
aWN5LmggaW4gSGVhZGVycyAqLywKIAkJCQkxQTQ4MzJENzFBOUNERjk2MDA4QjRERkUgLyogV2Vi
c2l0ZURhdGEuaCBpbiBIZWFkZXJzICovLAogCQkJCTFBNDgzMkQxMUE5QkRDMkYwMDhCNERGRSAv
KiBXZWJzaXRlRGF0YVJlY29yZC5oIGluIEhlYWRlcnMgKi8sCkBAIC0xMTYyNCw2ICsxMTYzMSw3
IEBACiAJCQkJNTFGMDYwRTExNjU0MzE4NTAwRjMyODFGIC8qIFdlYlJUQ01vbml0b3JNZXNzYWdl
UmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNTFGMDYwRTExNjU0MzE4NTAwRjMyODJD
IC8qIFdlYlJUQ1Jlc29sdmVyTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CTUxRjA2MEUxMTY1NDMxODUwMEYzMjgxQyAvKiBXZWJSVENTb2NrZXRNZXNzYWdlUmVjZWl2ZXIu
Y3BwIGluIFNvdXJjZXMgKi8sCisJCQkJRTM5NjI4REUyMzk2MENDNjAwNjU4RUNEIC8qIFdlYlNo
YXJlZERldmljZU9yaWVudGF0aW9uQ2xpZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTQxRjA2
MEUxMTY1NDMxODUwMEYzMjgxQyAvKiBXZWJTb2NrZXRDaGFubmVsTWVzc2FnZVJlY2VpdmVyLmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCTVDMEIxNzc5MUU3Qzg4MjEwMEU5MTIzQyAvKiBXZWJTb2Nr
ZXRTdHJlYW1NZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNDEyODdENEUy
MjVEMUVDQjAwOUEzRTI2IC8qIFdlYlNvY2tldFRhc2tDb2NvYS5tbSBpbiBTb3VyY2VzICovLApJ
bmRleDogU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlNoYXJlZERl
dmljZU9yaWVudGF0aW9uQ2xpZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViU2hhcmVkRGV2aWNlT3JpZW50YXRpb25DbGllbnQu
Y3BwCShub25leGlzdGVudCkKKysrIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC9XZWJTaGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudC5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTAsMCArMSw2MiBAQAorLyoKKyogQ29weXJpZ2h0IChDKSAyMDE5IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyoKKyogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworKiBhcmUgbWV0
OgorKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyoKKyogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworKiBBTkQgQU5ZIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyog
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyogQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorKiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRgorKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyogQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkKKyogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRgorKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV2ViU2hhcmVkRGV2aWNlT3Jp
ZW50YXRpb25DbGllbnQuaCIKKworI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpICYmIEVOQUJMRShE
RVZJQ0VfT1JJRU5UQVRJT04pCisKKyNpbmNsdWRlICJXZWJQYWdlLmgiCisjaW5jbHVkZSAiV2Vi
UGFnZVByb3h5TWVzc2FnZXMuaCIKKworI2luY2x1ZGUgPFdlYkNvcmUvV2ViQ29yZU1vdGlvbk1h
bmFnZXJDbGllbnQuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK3ZvaWQgV2ViU2hhcmVkRGV2
aWNlT3JpZW50YXRpb25DbGllbnQ6OnN0YXJ0VXBkYXRpbmcoV2ViQ29yZTo6V2ViQ29yZU1vdGlv
bk1hbmFnZXJDbGllbnQmIGNsaWVudCkKK3sKKyAgICBpZiAobV9jbGllbnRzLmlzRW1wdHkoKSAm
JiBtX3BhZ2UpCisgICAgICAgIG1fcGFnZS0+c2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpT
dGFydFVwZGF0aW5nRGV2aWNlT3JpZW50YXRpb24oKSk7CisgICAgbV9jbGllbnRzLmFkZCgmY2xp
ZW50KTsKK30KKwordm9pZCBXZWJTaGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudDo6c3RvcFVw
ZGF0aW5nKFdlYkNvcmU6OldlYkNvcmVNb3Rpb25NYW5hZ2VyQ2xpZW50JiBjbGllbnQpCit7Cisg
ICAgaWYgKG1fY2xpZW50cy5pc0VtcHR5KCkpCisgICAgICAgIHJldHVybjsKKyAgICBtX2NsaWVu
dHMucmVtb3ZlKCZjbGllbnQpOworICAgIGlmIChtX2NsaWVudHMuaXNFbXB0eSgpICYmIG1fcGFn
ZSkKKyAgICAgICAgbV9wYWdlLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OlN0b3BVcGRh
dGluZ0RldmljZU9yaWVudGF0aW9uKCkpOworfQorCit2b2lkIFdlYlNoYXJlZERldmljZU9yaWVu
dGF0aW9uQ2xpZW50OjpkZXZpY2VPcmllbnRhdGlvbkNoYW5nZWQoZG91YmxlIGFscGhhLCBkb3Vi
bGUgYmV0YSwgZG91YmxlIGdhbW1hLCBkb3VibGUgY29tcGFzc0hlYWRpbmcsIGRvdWJsZSBjb21w
YXNzQWNjdXJhY3kpCit7CisgICAgZm9yIChhdXRvKiBjbGllbnQgOiBtX2NsaWVudHMpCisgICAg
ICAgIGNsaWVudC0+b3JpZW50YXRpb25DaGFuZ2VkKGFscGhhLCBiZXRhLCBnYW1tYSwgY29tcGFz
c0hlYWRpbmcsIGNvbXBhc3NBY2N1cmFjeSk7Cit9CisKK30KKworI2VuZGlmIC8vIFBMQVRGT1JN
KElPU19GQU1JTFkpICYmIEVOQUJMRShERVZJQ0VfT1JJRU5UQVRJT04pCkluZGV4OiBTb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViU2hhcmVkRGV2aWNlT3JpZW50YXRp
b25DbGllbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29y
ZVN1cHBvcnQvV2ViU2hhcmVkRGV2aWNlT3JpZW50YXRpb25DbGllbnQuaAkobm9uZXhpc3RlbnQp
CisrKyBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViU2hhcmVkRGV2
aWNlT3JpZW50YXRpb25DbGllbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDYwIEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlIDxXZWJDb3JlL1NoYXJlZERldmlj
ZU9yaWVudGF0aW9uQ2xpZW50Lmg+CisKKyNpbmNsdWRlIDx3dGYvSGFzaFNldC5oPgorI2luY2x1
ZGUgPHd0Zi9XZWFrUHRyLmg+CisKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKSAmJiBFTkFCTEUo
REVWSUNFX09SSUVOVEFUSU9OKQorCituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3MgV2ViUGFn
ZTsKKworY2xhc3MgV2ViU2hhcmVkRGV2aWNlT3JpZW50YXRpb25DbGllbnQgZmluYWwgOiBwdWJs
aWMgV2ViQ29yZTo6U2hhcmVkRGV2aWNlT3JpZW50YXRpb25DbGllbnQgeworcHVibGljOgorICAg
IHN0YXRpYyBSZWY8V2ViU2hhcmVkRGV2aWNlT3JpZW50YXRpb25DbGllbnQ+IGNyZWF0ZShXZWJQ
YWdlJiBwYWdlKSB7IHJldHVybiBhZG9wdFJlZigqbmV3IFdlYlNoYXJlZERldmljZU9yaWVudGF0
aW9uQ2xpZW50KHBhZ2UpKTt9CisKKyAgICB2b2lkIHN0YXJ0VXBkYXRpbmcoV2ViQ29yZTo6V2Vi
Q29yZU1vdGlvbk1hbmFnZXJDbGllbnQmKSBmaW5hbDsKKyAgICB2b2lkIHN0b3BVcGRhdGluZyhX
ZWJDb3JlOjpXZWJDb3JlTW90aW9uTWFuYWdlckNsaWVudCYpIGZpbmFsOworCisgICAgdm9pZCBk
ZXZpY2VPcmllbnRhdGlvbkNoYW5nZWQoZG91YmxlLCBkb3VibGUsIGRvdWJsZSwgZG91YmxlLCBk
b3VibGUpIGZpbmFsOworCitwcml2YXRlOgorICAgIFdlYlNoYXJlZERldmljZU9yaWVudGF0aW9u
Q2xpZW50KFdlYlBhZ2UmIHBhZ2UpCisgICAgICAgIDogbV9wYWdlKG1ha2VXZWFrUHRyKHBhZ2Up
KQorICAgIHsKKyAgICB9CisKKyAgICBXZWFrUHRyPFdlYlBhZ2U+IG1fcGFnZTsKKyAgICBIYXNo
U2V0PFdlYkNvcmU6OldlYkNvcmVNb3Rpb25NYW5hZ2VyQ2xpZW50Kj4gbV9jbGllbnRzOworfTsK
KworfQorCisjZW5kaWYgLy8gUExBVEZPUk0oSU9TX0ZBTUlMWSkgJiYgRU5BQkxFKERFVklDRV9P
UklFTlRBVElPTikKSW5kZXg6IFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBh
Z2UuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dl
YlBhZ2UuY3BwCShyZXZpc2lvbiAyNTMwNTkpCisrKyBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViUGFnZS9XZWJQYWdlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzA3LDYgKzMwNywxMCBAQAog
I2luY2x1ZGUgPFdlYkNvcmUvQXV0aGVudGljYXRvckNvb3JkaW5hdG9yLmg+CiAjZW5kaWYKIAor
I2lmIFBMQVRGT1JNKElPU19GQU1JTFkpICYmIEVOQUJMRShERVZJQ0VfT1JJRU5UQVRJT04pCisj
aW5jbHVkZSAiV2ViU2hhcmVkRGV2aWNlT3JpZW50YXRpb25DbGllbnQuaCIKKyNlbmRpZgorCiBu
YW1lc3BhY2UgV2ViS2l0IHsKIHVzaW5nIG5hbWVzcGFjZSBKU0M7CiB1c2luZyBuYW1lc3BhY2Ug
V2ViQ29yZTsKQEAgLTUwMSw2ICs1MDUsMTAgQEAgV2ViUGFnZTo6V2ViUGFnZShQYWdlSWRlbnRp
ZmllciBwYWdlSUQsIAogI2lmIEVOQUJMRShBUFBMSUNBVElPTl9NQU5JRkVTVCkKICAgICBwYWdl
Q29uZmlndXJhdGlvbi5hcHBsaWNhdGlvbk1hbmlmZXN0ID0gcGFyYW1ldGVycy5hcHBsaWNhdGlv
bk1hbmlmZXN0OwogI2VuZGlmCisgICAgCisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkgJiYgRU5B
QkxFKERFVklDRV9PUklFTlRBVElPTikKKyAgICBwYWdlQ29uZmlndXJhdGlvbi5zaGFyZWREZXZp
Y2VPcmllbnRhdGlvbkNsaWVudCA9IFdlYlNoYXJlZERldmljZU9yaWVudGF0aW9uQ2xpZW50Ojpj
cmVhdGUoKnRoaXMpOworI2VuZGlmCiAKICAgICBtX3BhZ2UgPSBtYWtlVW5pcXVlPFBhZ2U+KFdU
Rk1vdmUocGFnZUNvbmZpZ3VyYXRpb24pKTsKIApJbmRleDogU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAkocmV2aXNpb24gMjUzMDU5KQorKysgU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0xMjQ0LDYg
KzEyNDQsMTAgQEAgcHVibGljOgogICAgIGNvbnN0IFN0cmluZyYgb3ZlcnJpZGRlbk1lZGlhVHlw
ZSgpIGNvbnN0IHsgcmV0dXJuIG1fb3ZlcnJpZGRlbk1lZGlhVHlwZTsgfQogICAgIHZvaWQgc2V0
T3ZlcnJpZGRlbk1lZGlhVHlwZShjb25zdCBTdHJpbmcmKTsKICAgICAKKyNpZiBQTEFURk9STShJ
T1NfRkFNSUxZKSAmJiBFTkFCTEUoREVWSUNFX09SSUVOVEFUSU9OKQorICAgIHZvaWQgZGV2aWNl
T3JpZW50YXRpb25DaGFuZ2VkKGRvdWJsZSBhbHBoYSwgZG91YmxlIGJldGEsIGRvdWJsZSBnYW1t
YSwgZG91YmxlIGNvbXBhc3NIZWFkaW5nLCBkb3VibGUgY29tcGFzc0FjY3VyYWN5KTsKKyNlbmRp
ZgorCiBwcml2YXRlOgogICAgIFdlYlBhZ2UoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIFdlYlBh
Z2VDcmVhdGlvblBhcmFtZXRlcnMmJik7CiAKSW5kZXg6IFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4KPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbgkocmV2aXNpb24gMjUzMDU5
KQorKysgU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5p
bgkod29ya2luZyBjb3B5KQpAQCAtNTgzLDQgKzU4Myw4IEBAIEdlbmVyYXRlU3ludGhldGljRWRp
dGluZ0NvbW1hbmQoZW51bTp1aW4KICAgICBDb21wbGV0ZVRleHRNYW5pcHVsYXRpb24oV2ViQ29y
ZTo6VGV4dE1hbmlwdWxhdGlvbkNvbnRyb2xsZXI6Okl0ZW1JZGVudGlmaWVyIGl0ZW1JRCwgVmVj
dG9yPFdlYkNvcmU6OlRleHRNYW5pcHVsYXRpb25Db250cm9sbGVyOjpNYW5pcHVsYXRpb25Ub2tl
bj4gdG9rZW5zKSAtPiAoZW51bTp1aW50OF90IFdlYkNvcmU6OlRleHRNYW5pcHVsYXRpb25Db250
cm9sbGVyOjpNYW5pcHVsYXRpb25SZXN1bHQgcmVzdWx0KSBBc3luYwogICAgIAogICAgIFNldE92
ZXJyaWRkZW5NZWRpYVR5cGUoU3RyaW5nIG1lZGlhVHlwZSkKKyAgICAKKyNpZiBQTEFURk9STShJ
T1NfRkFNSUxZKSAmJiBFTkFCTEUoREVWSUNFX09SSUVOVEFUSU9OKQorICAgIERldmljZU9yaWVu
dGF0aW9uQ2hhbmdlZChkb3VibGUgYWxwaGEsIGRvdWJsZSBiZXRhLCBkb3VibGUgZ2FtbWEsIGRv
dWJsZSBjb21wYXNzSGVhZGluZywgZG91YmxlIGNvbXBhc3NBY2N1cmFjeSkKKyNlbmRpZgogfQpJ
bmRleDogU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW0K
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBh
Z2VJT1MubW0JKHJldmlzaW9uIDI1MzA1OSkKKysrIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tCSh3b3JraW5nIGNvcHkpCkBAIC00MDg4LDYgKzQwODgs
MTQgQEAgdm9pZCBXZWJQYWdlOjpyZXF1ZXN0UGFzc3dvcmRGb3JRdWlja0xvbwogCiAjZW5kaWYK
IAorI2lmIEVOQUJMRShERVZJQ0VfT1JJRU5UQVRJT04pCit2b2lkIFdlYlBhZ2U6OmRldmljZU9y
aWVudGF0aW9uQ2hhbmdlZChkb3VibGUgYWxwaGEsIGRvdWJsZSBiZXRhLCBkb3VibGUgZ2FtbWEs
IGRvdWJsZSBjb21wYXNzSGVhZGluZywgZG91YmxlIGNvbXBhc3NBY2N1cmFjeSkKK3sKKyAgICBp
ZiAoY29yZVBhZ2UoKSAmJiBjb3JlUGFnZSgpLT5zaGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVu
dCgpKQorICAgICAgICBjb3JlUGFnZSgpLT5zaGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudCgp
LT5kZXZpY2VPcmllbnRhdGlvbkNoYW5nZWQoYWxwaGEsIGJldGEsIGdhbW1hLCBjb21wYXNzSGVh
ZGluZywgY29tcGFzc0FjY3VyYWN5KTsKK30KKyNlbmRpZgorCiB9IC8vIG5hbWVzcGFjZSBXZWJL
aXQKIAogI3VuZGVmIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>384833</attachid>
            <date>2019-12-04 12:27:02 -0800</date>
            <delta_ts>2019-12-04 12:57:40 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-204720-20191204122701.patch</filename>
            <type>text/plain</type>
            <size>60928</size>
            <attacher name="Per Arne Vollan">pvollan</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDI1MzA1OSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQ4IEBACisyMDE5LTEyLTA0ICBQZXIgQXJu
ZSBWb2xsYW4gIDxwdm9sbGFuQGFwcGxlLmNvbT4KKworICAgICAgICBbaU9TXSBDYWxscyB0byBk
ZXZpY2Ugb3JpZW50YXRpb24gQVBJIHNob3VsZCBiZSBkb25lIGluIHRoZSBVSSBwcm9jZXNzCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDQ3MjAKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGUgZGV2aWNl
IG9yaWVudGF0aW9uIEFQSSBvbiBpT1MgaXMgY29tbXVuaWNhdGluZyB3aXRoIGxvY2F0aW9uZC4g
U2luY2UgbWFjaCBsb29rdXAgdG8gdGhpcyBkYWVtb24KKyAgICAgICAgd2lsbCBiZSBjbG9zZWQs
IHRoZSBjYWxscyB0byB0aGlzIEFQSSBzaG91bGQgYmUgbW92ZWQgZnJvbSB0aGUgV2ViQ29udGVu
dCBwcm9jZXNzIHRvIHRoZSBVSSBwcm9jZXNzLgorICAgICAgICBUaGlzIHBhdGNoIGltcGxlbWVu
dHMgZm9yd2FyZGluZyBvZiB0aGUgZGV2aWNlIG9yaWVudGF0aW9uIHJlcXVlc3RzIHRvIHRoZSBV
SSBwcm9jZXNzIHRocm91Z2ggYSBuZXcKKyAgICAgICAgY2xhc3MsIFNoYXJlZERldmljZU9yaWVu
dGF0aW9uQ2xpZW50LCB3aGljaCBpcyBzdWJjbGFzc2VkIGJ5IFdlYlNoYXJlZERldmljZU9yaWVu
dGF0aW9uQ2xpZW50IGluCisgICAgICAgIG1vZGVybiBXZWJLaXQuIFRoaXMgY2xhc3MgaW1wbGVt
ZW50cyBmb3J3YXJkaW5nIG9mIHRoZSByZXF1ZXN0cyB0byB0aGUgVUkgcHJvY2VzcywgYW5kIHJl
Y2VpdmVzCisgICAgICAgIGRldmljZSBvcmllbnRhdGlvbiB1cGRhdGVzIGZyb20gdGhlIFVJIHBy
b2Nlc3MuIEFuIGluc3RhbmNlIG9mIHRoaXMgY2xhc3Mgd2lsbCBiZSBzaGFyZWQgYnkgYWxsCisg
ICAgICAgIGRldmljZSBvcmllbnRhdGlvbiBjbGllbnRzIG9uIGEgcGFnZSwgYW5kIHBhc3NlZCBh
cyBwYXJ0IG9mIHRoZSBwYWdlIGNvbmZpZ3VyYXRpb24gcGFyYW1ldGVycy4gT24KKyAgICAgICAg
dGhlIFVJIHByb2Nlc3Mgc2lkZSwgYSBuZXcgY2xhc3MgV2ViU2hhcmVkRGV2aWNlT3JpZW50YXRp
b25DbGllbnRQcm94eSBhdHRhY2hlZCB0byB0aGUgV2ViIHBhZ2UKKyAgICAgICAgcHJveHkgaXMg
dGFraW5nIGNhcmUgb2YgY2FsbGluZyB0aGUgZGV2aWNlIG9yaWVudGF0aW9uIEFQSSB0aHJvdWdo
IHRoZSBleGlzdGluZyBXZWJDb3JlTW90aW9uTWFuYWdlcgorICAgICAgICBPYmplY3RpdmUtQyBj
bGFzcywgYW5kIHNlbmQgZGV2aWNlIG9yaWVudGF0aW9uIHVwZGF0ZXMgYmFjayB0byB0aGUgV2Vi
IHByb2Nlc3MuIEFsc28sIHVzZSBhIHdlYWsKKyAgICAgICAgaGFzaCBzZXQgb2Ygb3JpZW50YXRp
b24gY2xpZW50cyBpbiBXZWJDb3JlTW90aW9uTWFuYWdlci4KKworICAgICAgICAqIFdlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBkb20vRGV2aWNlT3JpZW50YXRp
b25DbGllbnQuaDoKKyAgICAgICAgKiBkb20vRG9jdW1lbnQuY3BwOgorICAgICAgICAqIHBhZ2Uv
UGFnZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjptX3NoYXJlZERldmljZU9yaWVudGF0aW9uQ2xp
ZW50KToKKyAgICAgICAgKFdlYkNvcmU6Om1fYXBwbGljYXRpb25NYW5pZmVzdCk6IERlbGV0ZWQu
CisgICAgICAgICogcGFnZS9QYWdlLmg6CisgICAgICAgIChXZWJDb3JlOjpQYWdlOjpzaGFyZWRE
ZXZpY2VPcmllbnRhdGlvbkNsaWVudCBjb25zdCk6CisgICAgICAgICogcGFnZS9QYWdlQ29uZmln
dXJhdGlvbi5oOgorICAgICAgICAqIHBsYXRmb3JtL2lvcy9EZXZpY2VPcmllbnRhdGlvbkNsaWVu
dElPUy5oOgorICAgICAgICAqIHBsYXRmb3JtL2lvcy9EZXZpY2VPcmllbnRhdGlvbkNsaWVudElP
Uy5tbToKKyAgICAgICAgKFdlYkNvcmU6OkRldmljZU9yaWVudGF0aW9uQ2xpZW50SU9TOjpEZXZp
Y2VPcmllbnRhdGlvbkNsaWVudElPUyk6CisgICAgICAgIChXZWJDb3JlOjpEZXZpY2VPcmllbnRh
dGlvbkNsaWVudElPUzo6c3RhcnRVcGRhdGluZyk6CisgICAgICAgIChXZWJDb3JlOjpEZXZpY2VP
cmllbnRhdGlvbkNsaWVudElPUzo6c3RvcFVwZGF0aW5nKToKKyAgICAgICAgKFdlYkNvcmU6OkRl
dmljZU9yaWVudGF0aW9uQ2xpZW50SU9TOjpkZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXJEZXN0
cm95ZWQpOgorICAgICAgICAqIHBsYXRmb3JtL2lvcy9TaGFyZWREZXZpY2VPcmllbnRhdGlvbkNs
aWVudC5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlNoYXJlZERldmljZU9yaWVudGF0aW9u
Q2xpZW50Ojp+U2hhcmVkRGV2aWNlT3JpZW50YXRpb25DbGllbnQpOgorICAgICAgICAqIHBsYXRm
b3JtL2lvcy9XZWJDb3JlTW90aW9uTWFuYWdlci5oOgorICAgICAgICAqIHBsYXRmb3JtL2lvcy9X
ZWJDb3JlTW90aW9uTWFuYWdlci5tbToKKyAgICAgICAgKC1bV2ViQ29yZU1vdGlvbk1hbmFnZXIg
YWRkT3JpZW50YXRpb25DbGllbnQ6XSk6CisgICAgICAgICgtW1dlYkNvcmVNb3Rpb25NYW5hZ2Vy
IHJlbW92ZU9yaWVudGF0aW9uQ2xpZW50Ol0pOgorICAgICAgICAoLVtXZWJDb3JlTW90aW9uTWFu
YWdlciBjaGVja0NsaWVudFN0YXR1c10pOgorICAgICAgICAoLVtXZWJDb3JlTW90aW9uTWFuYWdl
ciBzZW5kTW90aW9uRGF0YTp3aXRoSGVhZGluZzpdKToKKyAgICAgICAgKiBwbGF0Zm9ybS9pb3Mv
V2ViQ29yZU1vdGlvbk1hbmFnZXJDbGllbnQuaDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpX
ZWJDb3JlTW90aW9uTWFuYWdlckNsaWVudDo6fldlYkNvcmVNb3Rpb25NYW5hZ2VyQ2xpZW50KToK
KwogMjAxOS0xMi0wMyAgVGltIEhvcnRvbiAgPHRpbW90aHlfaG9ydG9uQGFwcGxlLmNvbT4KIAog
ICAgICAgICBTdGFydCBhZGRpbmcgZW5jb2Rpbmcgc3VwcG9ydCBmb3IgRGlzcGxheUxpc3QgYW5k
IHNvbWUgRGlzcGxheUxpc3RJdGVtcwpJbmRleDogU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL1dlYkNv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkocmV2aXNpb24gMjUzMDU5KQorKysgU291cmNl
L1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCSh3b3JraW5nIGNvcHkp
CkBAIC05MDgsNyArOTA4LDcgQEAKIAkJMzEzNTkxMEExRTdEREM3MzAwRjMwNjMwIC8qIFJUQ1Nk
cFR5cGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMx
MzU5MTA0MUU3RERDNjAwMEYzMDYzMCAvKiBSVENTZHBUeXBlLmggKi87IH07CiAJCTMxMzU5MTBC
MUU3RERDNzMwMEYzMDYzMCAvKiBSVENTaWduYWxpbmdTdGF0ZS5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzEzNTkxMDUxRTdEREM2MDAwRjMwNjMwIC8q
IFJUQ1NpZ25hbGluZ1N0YXRlLmggKi87IH07CiAJCTMxM0JDRTFDMjM1RTNCRTUwMEZDMzlFNSAv
KiBFbGVtZW50Q29udGV4dC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gMzEzQkNFMUIyMzVFM0JEQjAwRkMzOUU1IC8qIEVsZW1lbnRDb250ZXh0LmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKLQkJMzE0MDM3OUIx
MjRCRUE3RjAwQUY0MEU0IC8qIFdlYkNvcmVNb3Rpb25NYW5hZ2VyLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzMTQwMzc5NzEyNEJFQTdGMDBBRjQwRTQg
LyogV2ViQ29yZU1vdGlvbk1hbmFnZXIuaCAqLzsgfTsKKwkJMzE0MDM3OUIxMjRCRUE3RjAwQUY0
MEU0IC8qIFdlYkNvcmVNb3Rpb25NYW5hZ2VyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSAzMTQwMzc5NzEyNEJFQTdGMDBBRjQwRTQgLyogV2ViQ29yZU1v
dGlvbk1hbmFnZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OwogCQkzMTQwMzc5RDEyNEJFQTdGMDBBRjQwRTQgLyogRGV2aWNlT3JpZW50YXRpb25DbGll
bnRJT1MuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMx
NDAzNzk5MTI0QkVBN0YwMEFGNDBFNCAvKiBEZXZpY2VPcmllbnRhdGlvbkNsaWVudElPUy5oICov
OyB9OwogCQkzMTQwQzUyMDFGREYxNTFBMDBEMkE4NzMgLyogT2Zmc2NyZWVuQ2FudmFzUmVuZGVy
aW5nQ29udGV4dDJELmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSAzMTQwQzUxRTFGREYxNTFBMDBEMkE4NzMgLyogT2Zmc2NyZWVuQ2FudmFzUmVuZGVyaW5n
Q29udGV4dDJELmggKi87IH07CiAJCTMxNDBDNTI0MUZERjMxODcwMEQyQTg3MyAvKiBDYW52YXNS
ZW5kZXJpbmdDb250ZXh0MkRCYXNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSAzMTQwQzUyMjFGREYzMTg2MDBEMkE4NzMgLyogQ2FudmFzUmVuZGVyaW5n
Q29udGV4dDJEQmFzZS5oICovOyB9OwpAQCAtNDc3Niw2ICs0Nzc2LDggQEAKIAkJRTM1ODAyQjYx
REM4NDM1RDAwQTk3NzNDIC8qIERPTUpJVElETFR5cGVGaWx0ZXIuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUzNTgwMkI1MURDODQzNTgwMEE5NzczQyAv
KiBET01KSVRJRExUeXBlRmlsdGVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKIAkJRTM3N0ZFNEQxREFERTE2NTAwQ0REMDI1IC8qIE5vZGVDb25zdGFu
dHMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUzRDA0
OTkzMURBREMwNDUwMDcxOEYzQyAvKiBOb2RlQ29uc3RhbnRzLmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJRTM3Qzg2NTAxRUI2M0UzRjAwODdDNkNB
IC8qIEpTRE9NUHJvbWlzZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gRTM3Qzg2NEYxRUI2M0UyRDAwODdDNkNBIC8qIEpTRE9NUHJvbWlzZS5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCUUzOTYyOEJGMjM5
NTcyOEYwMDY1OEVDRCAvKiBTaGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudC5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTM5NjI4QkQyMzk1NzI4RTAw
NjU4RUNEIC8qIFNoYXJlZERldmljZU9yaWVudGF0aW9uQ2xpZW50LmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJRTM5NjI4QzEyMzk1NzQzMTAwNjU4
RUNEIC8qIFdlYkNvcmVNb3Rpb25NYW5hZ2VyQ2xpZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMzk2MjhDMDIzOTU3NDMwMDA2NThFQ0QgLyogV2Vi
Q29yZU1vdGlvbk1hbmFnZXJDbGllbnQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQ
cml2YXRlLCApOyB9OyB9OwogCQlFM0E3NzY2NzFEQzg1RDI4MDBCNjkwRDggLyogRE9NSklUSURM
Q29udmVydC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
RTNBNzc2NjUxREM4NUQyMjAwQjY5MEQ4IC8qIERPTUpJVElETENvbnZlcnQuaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlFM0E3NzY2ODFEQzg1RDI4
MDBCNjkwRDggLyogRE9NSklUSURMVHlwZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gRTNBNzc2NjYxREM4NUQyMjAwQjY5MEQ4IC8qIERPTUpJVElETFR5
cGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlF
M0IyRjBFRDFEN0Y0Q0EzMDBCMEM5RDEgLyogTG9hZGFibGVTY3JpcHQuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUzQjJGMEU3MUQ3RjM1RUMwMEIwQzlE
MSAvKiBMb2FkYWJsZVNjcmlwdC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07CkBAIC0xNTA2OSw2ICsxNTA3MSw4IEBACiAJCUUzODgzODk0MUJBRDE0NUYw
MEQ2MkVFMyAvKiBTY3JpcHRNb2R1bGVMb2FkZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gU2NyaXB0TW9kdWxlTG9hZGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJRTM4ODM4OTUxQkFEMTQ1RjAwRDYyRUUzIC8qIFNjcmlwdE1vZHVsZUxvYWRl
ci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTY3JpcHRNb2R1bGVMb2FkZXIu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTM4RDA2MDkxRjhFODExOTAwNjQ5Q0Yy
IC8qIE1vZHVsZUZldGNoUGFyYW1ldGVycy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBNb2R1bGVGZXRjaFBhcmFtZXRlcnMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJRTM5NjI4QkQyMzk1NzI4RTAwNjU4RUNEIC8qIFNoYXJlZERldmljZU9yaWVudGF0aW9uQ2xp
ZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNoYXJlZERldmljZU9yaWVu
dGF0aW9uQ2xpZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUUzOTYyOEMwMjM5
NTc0MzAwMDY1OEVDRCAvKiBXZWJDb3JlTW90aW9uTWFuYWdlckNsaWVudC5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJDb3JlTW90aW9uTWFuYWdlckNsaWVudC5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFMzk3NUI3NjFFQzlBRjM5MDA4NDc3MTcgLyogSlNE
b2N1bWVudEZyYWdtZW50RE9NSklULmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IEpTRG9jdW1lbnRGcmFnbWVudERPTUpJVC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCUUzOTc1Qjc3MUVDOUFGMzkwMDg0NzcxNyAvKiBKU0VsZW1lbnRET01KSVQuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNFbGVtZW50RE9NSklULmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTM5NzVCNzgxRUM5QUYzOTAwODQ3NzE3
IC8qIEpTRXZlbnRET01KSVQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gSlNFdmVudERPTUpJVC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0yMjgx
Niw2ICsyMjgyMCw3IEBACiAJCQkJRTQ1MzkwMzQwRUFGRDYzNzAwMzY5NUM4IC8qIFNjcm9sbFZp
ZXdJT1MubW0gKi8sCiAJCQkJQkVBODA3QzYwRjcxNEEwMzAwNTI0MTk5IC8qIFNlbGVjdGlvblJl
Y3QuY3BwICovLAogCQkJCUJFQTgwN0M3MEY3MTRBMDMwMDUyNDE5OSAvKiBTZWxlY3Rpb25SZWN0
LmggKi8sCisJCQkJRTM5NjI4QkQyMzk1NzI4RTAwNjU4RUNEIC8qIFNoYXJlZERldmljZU9yaWVu
dGF0aW9uQ2xpZW50LmggKi8sCiAJCQkJMEYwM0MwNzMxODg0Njk1RTAwQTVGOENBIC8qIFN5c3Rl
bU1lbW9yeS5oICovLAogCQkJCUU0NTM5MEFEMEVBRkY0QjUwMDM2OTVDOCAvKiBTeXN0ZW1NZW1v
cnlJT1MuY3BwICovLAogCQkJCTQ0Qzk5MTlEMEYzRDIxMEUwMDU4NjY3MCAvKiBUaGVtZUlPUy5o
ICovLApAQCAtMjI4MzIsNiArMjI4MzcsNyBAQAogCQkJCTFGMzZFQTlCMUUyMUJBMTcwMDYyMUUy
NSAvKiBXZWJCYWNrZ3JvdW5kVGFza0NvbnRyb2xsZXIubW0gKi8sCiAJCQkJMzE0MDM3OTcxMjRC
RUE3RjAwQUY0MEU0IC8qIFdlYkNvcmVNb3Rpb25NYW5hZ2VyLmggKi8sCiAJCQkJMzE0MDM3OTgx
MjRCRUE3RjAwQUY0MEU0IC8qIFdlYkNvcmVNb3Rpb25NYW5hZ2VyLm1tICovLAorCQkJCUUzOTYy
OEMwMjM5NTc0MzAwMDY1OEVDRCAvKiBXZWJDb3JlTW90aW9uTWFuYWdlckNsaWVudC5oICovLAog
CQkJCUZFMEQ4NEU4MTA0ODQzNDgwMDFBMTc5RSAvKiBXZWJFdmVudC5oICovLAogCQkJCUZFMEQ4
NEVBMTA0ODQzNkUwMDFBMTc5RSAvKiBXZWJFdmVudC5tbSAqLywKIAkJCQlGNDgyMjMwRjFFMzg2
OUI4MDA2NkZDNzkgLyogV2ViSXRlbVByb3ZpZGVyUGFzdGVib2FyZC5oICovLApAQCAtMzIxNjUs
NiArMzIxNzEsNyBAQAogCQkJCUZEMUFGMTUwMTY1NkYxNTEwMEM2RDRGNyAvKiBTaGFwZVZhbHVl
LmggaW4gSGVhZGVycyAqLywKIAkJCQkxRDlGMEZDMTIxMjIwMjlCMDA1RDhGRDQgLyogU2hhcmVE
YXRhLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQTRBOTU0RTBCNEVEQ0NCMDAyRDhDM0MgLyogU2hh
cmVkQnVmZmVyLmggaW4gSGVhZGVycyAqLywKKwkJCQlFMzk2MjhCRjIzOTU3MjhGMDA2NThFQ0Qg
LyogU2hhcmVkRGV2aWNlT3JpZW50YXRpb25DbGllbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTgz
NERGQUQwMUY3REFFNUQwMEMyNzI1QiAvKiBTaGFyZWRTdHJpbmdIYXNoLmggaW4gSGVhZGVycyAq
LywKIAkJCQk5MzMwOUVBMzA5OUVCNzhDMDA1NkU1ODEgLyogU2hhcmVkVGltZXIuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTgzNjJFOEMxMjBDRUY5Q0IwMDI0NTg4NiAvKiBTaG91bGRUcmVhdEFzQ29u
dGludWluZ0xvYWQuaCBpbiBIZWFkZXJzICovLApAQCAtMzI3ODQsNiArMzI3OTEsNyBAQAogCQkJ
CUJDNTNEOTExMTE0MzEwQ0MwMDBEODE3RSAvKiBXZWJDb3JlSlNDbGllbnREYXRhLmggaW4gSGVh
ZGVycyAqLywKIAkJCQk5M0YxOTlCQjA4MjQ1RTU5MDAxRTlBQkMgLyogV2ViQ29yZUtleWJvYXJk
VUlNb2RlLmggaW4gSGVhZGVycyAqLywKIAkJCQkzMTQwMzc5QjEyNEJFQTdGMDBBRjQwRTQgLyog
V2ViQ29yZU1vdGlvbk1hbmFnZXIuaCBpbiBIZWFkZXJzICovLAorCQkJCUUzOTYyOEMxMjM5NTc0
MzEwMDY1OEVDRCAvKiBXZWJDb3JlTW90aW9uTWFuYWdlckNsaWVudC5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJQ0RDOTc5RjUxQzQ5OEMwOTAwREI1MEQ0IC8qIFdlYkNvcmVOU0Vycm9yRXh0cmFzLmgg
aW4gSGVhZGVycyAqLywKIAkJCQlGNEU1N0VFMTIxM0Y0MzRBMDA0RUE5OEUgLyogV2ViQ29yZU5T
Rm9udE1hbmFnZXJFeHRyYXMuaCBpbiBIZWFkZXJzICovLAogCQkJCUM1QjRDMjREMTUwOTIzNkMw
MEE2RUYzNyAvKiBXZWJDb3JlTlNVUkxFeHRyYXMuaCBpbiBIZWFkZXJzICovLApJbmRleDogU291
cmNlL1dlYkNvcmUvZG9tL0RldmljZU9yaWVudGF0aW9uQ2xpZW50LmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvZG9tL0RldmljZU9yaWVudGF0aW9uQ2xpZW50LmgJKHJldmlzaW9uIDI1
MzA1OSkKKysrIFNvdXJjZS9XZWJDb3JlL2RvbS9EZXZpY2VPcmllbnRhdGlvbkNsaWVudC5oCSh3
b3JraW5nIGNvcHkpCkBAIC0yOCw2ICsyOCw3IEBACiAKICNpbmNsdWRlICJEZXZpY2VDbGllbnQu
aCIKICNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUuaD4KKyNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+
CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApJbmRleDogU291cmNlL1dlYkNvcmUvZG9tL0RvY3Vt
ZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCShy
ZXZpc2lvbiAyNTMwNTkpCisrKyBTb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC01NjUsNyArNTY1LDcgQEAgRG9jdW1lbnQ6OkRvY3VtZW50KEZyYW1lKiBm
cmFtZSwgY29uc3QgVQogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpICYmIEVOQUJMRShERVZJQ0Vf
T1JJRU5UQVRJT04pCiAgICAgLCBtX2RldmljZU1vdGlvbkNsaWVudChtYWtlVW5pcXVlPERldmlj
ZU1vdGlvbkNsaWVudElPUz4oKSkKICAgICAsIG1fZGV2aWNlTW90aW9uQ29udHJvbGxlcihtYWtl
VW5pcXVlPERldmljZU1vdGlvbkNvbnRyb2xsZXI+KCptX2RldmljZU1vdGlvbkNsaWVudCkpCi0g
ICAgLCBtX2RldmljZU9yaWVudGF0aW9uQ2xpZW50KG1ha2VVbmlxdWU8RGV2aWNlT3JpZW50YXRp
b25DbGllbnRJT1M+KCkpCisgICAgLCBtX2RldmljZU9yaWVudGF0aW9uQ2xpZW50KG1ha2VVbmlx
dWU8RGV2aWNlT3JpZW50YXRpb25DbGllbnRJT1M+KHBhZ2UoKSA/IHBhZ2UoKS0+c2hhcmVkRGV2
aWNlT3JpZW50YXRpb25DbGllbnQoKSA6IG51bGxwdHIpKQogICAgICwgbV9kZXZpY2VPcmllbnRh
dGlvbkNvbnRyb2xsZXIobWFrZVVuaXF1ZTxEZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXI+KCpt
X2RldmljZU9yaWVudGF0aW9uQ2xpZW50KSkKICNlbmRpZgogICAgICwgbV9wZW5kaW5nVGFza3NU
aW1lcigqdGhpcywgJkRvY3VtZW50OjpwZW5kaW5nVGFza3NUaW1lckZpcmVkKQpJbmRleDogU291
cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9w
YWdlL1BhZ2UuY3BwCShyZXZpc2lvbiAyNTMwNTkpCisrKyBTb3VyY2UvV2ViQ29yZS9wYWdlL1Bh
Z2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yODksNiArMjg5LDkgQEAgUGFnZTo6UGFnZShQYWdl
Q29uZmlndXJhdGlvbiYmIHBhZ2VDb25maQogI2lmIEVOQUJMRShBUFBMSUNBVElPTl9NQU5JRkVT
VCkKICAgICAsIG1fYXBwbGljYXRpb25NYW5pZmVzdChwYWdlQ29uZmlndXJhdGlvbi5hcHBsaWNh
dGlvbk1hbmlmZXN0KQogI2VuZGlmCisjaWYgRU5BQkxFKERFVklDRV9PUklFTlRBVElPTikgJiYg
UExBVEZPUk0oSU9TX0ZBTUlMWSkKKyAgICAsIG1fc2hhcmVkRGV2aWNlT3JpZW50YXRpb25DbGll
bnQoV1RGTW92ZShwYWdlQ29uZmlndXJhdGlvbi5zaGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVu
dCkpCisjZW5kaWYKIHsKICAgICB1cGRhdGVUaW1lclRocm90dGxpbmdTdGF0ZSgpOwogCkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9wYWdlL1BhZ2UuaAkocmV2aXNpb24gMjUzMDU5KQorKysgU291cmNlL1dlYkNvcmUvcGFnZS9Q
YWdlLmgJKHdvcmtpbmcgY29weSkKQEAgLTY5LDYgKzY5LDEwIEBACiAjaW5jbHVkZSAiTWVkaWFQ
bGF5YmFja1RhcmdldENvbnRleHQuaCIKICNlbmRpZgogCisjaWYgRU5BQkxFKERFVklDRV9PUklF
TlRBVElPTikgJiYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKyNpbmNsdWRlICJTaGFyZWREZXZpY2VP
cmllbnRhdGlvbkNsaWVudC5oIgorI2VuZGlmCisKIG5hbWVzcGFjZSBKU0MgewogY2xhc3MgRGVi
dWdnZXI7CiB9CkBAIC03MTksNiArNzIzLDEwIEBAIHB1YmxpYzoKIAogICAgIFdFQkNPUkVfRVhQ
T1JUIFZlY3RvcjxSZWY8RWxlbWVudD4+IGVkaXRhYmxlRWxlbWVudHNJblJlY3QoY29uc3QgRmxv
YXRSZWN0JikgY29uc3Q7CiAKKyNpZiBFTkFCTEUoREVWSUNFX09SSUVOVEFUSU9OKSAmJiBQTEFU
Rk9STShJT1NfRkFNSUxZKQorICAgIFNoYXJlZERldmljZU9yaWVudGF0aW9uQ2xpZW50KiBzaGFy
ZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudCgpIGNvbnN0IHsgcmV0dXJuIG1fc2hhcmVkRGV2aWNl
T3JpZW50YXRpb25DbGllbnQuZ2V0KCk7IH0KKyNlbmRpZgorCiBwcml2YXRlOgogICAgIHN0cnVj
dCBOYXZpZ2F0aW9uIHsKICAgICAgICAgUmVnaXN0cmFibGVEb21haW4gZG9tYWluOwpAQCAtOTkw
LDYgKzk5OCwxMCBAQCBwcml2YXRlOgogCiAgICAgT3B0aW9uYWw8Vmlld3BvcnRBcmd1bWVudHM+
IG1fb3ZlcnJpZGVWaWV3cG9ydEFyZ3VtZW50czsKIAorI2lmIEVOQUJMRShERVZJQ0VfT1JJRU5U
QVRJT04pICYmIFBMQVRGT1JNKElPU19GQU1JTFkpCisgICAgUmVmUHRyPFNoYXJlZERldmljZU9y
aWVudGF0aW9uQ2xpZW50PiBtX3NoYXJlZERldmljZU9yaWVudGF0aW9uQ2xpZW50OworI2VuZGlm
CisKICAgICBib29sIG1fc2hvdWxkRW5hYmxlSUNFQ2FuZGlkYXRlRmlsdGVyaW5nQnlEZWZhdWx0
IHsgdHJ1ZSB9OwogICAgIGJvb2wgbV9tZWRpYVBsYXliYWNrSXNTdXNwZW5kZWQgeyBmYWxzZSB9
OwogICAgIGJvb2wgbV9tZWRpYUJ1ZmZlcmluZ0lzU3VzcGVuZGVkIHsgZmFsc2UgfTsKSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZUNvbmZpZ3VyYXRpb24uaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VDb25maWd1cmF0aW9uLmgJKHJldmlzaW9uIDI1MzA1OSkK
KysrIFNvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZUNvbmZpZ3VyYXRpb24uaAkod29ya2luZyBjb3B5
KQpAQCAtNTcsNiArNTcsNyBAQCBjbGFzcyBQZXJmb3JtYW5jZUxvZ2dpbmdDbGllbnQ7CiBjbGFz
cyBQbHVnSW5DbGllbnQ7CiBjbGFzcyBQbHVnaW5JbmZvUHJvdmlkZXI7CiBjbGFzcyBQcm9ncmVz
c1RyYWNrZXJDbGllbnQ7CitjbGFzcyBTaGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudDsKIGNs
YXNzIFNvY2tldFByb3ZpZGVyOwogY2xhc3MgU3RvcmFnZU5hbWVzcGFjZVByb3ZpZGVyOwogY2xh
c3MgVXNlckNvbnRlbnRQcm92aWRlcjsKQEAgLTExOCw2ICsxMTksMTAgQEAgcHVibGljOgogICAg
IFJlZlB0cjxTdG9yYWdlTmFtZXNwYWNlUHJvdmlkZXI+IHN0b3JhZ2VOYW1lc3BhY2VQcm92aWRl
cjsKICAgICBSZWZQdHI8VXNlckNvbnRlbnRQcm92aWRlcj4gdXNlckNvbnRlbnRQcm92aWRlcjsK
ICAgICBSZWZQdHI8VmlzaXRlZExpbmtTdG9yZT4gdmlzaXRlZExpbmtTdG9yZTsKKyAgICAKKyNp
ZiBFTkFCTEUoREVWSUNFX09SSUVOVEFUSU9OKSAmJiBQTEFURk9STShJT1NfRkFNSUxZKQorICAg
IFJlZlB0cjxTaGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudD4gc2hhcmVkRGV2aWNlT3JpZW50
YXRpb25DbGllbnQ7CisjZW5kaWYKIH07CiAKIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2lvcy9EZXZpY2VPcmllbnRhdGlvbkNsaWVudElPUy5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9EZXZpY2VPcmllbnRhdGlvbkNsaWVudElPUy5oCShyZXZp
c2lvbiAyNTMwNTkpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvRGV2aWNlT3JpZW50
YXRpb25DbGllbnRJT1MuaAkod29ya2luZyBjb3B5KQpAQCAtMzAsMTUgKzMwLDE3IEBACiAjaW5j
bHVkZSAiRGV2aWNlT3JpZW50YXRpb25DbGllbnQuaCIKICNpbmNsdWRlICJEZXZpY2VPcmllbnRh
dGlvbkNvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJEZXZpY2VPcmllbnRhdGlvbkRhdGEuaCIKKyNp
bmNsdWRlICJTaGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudC5oIgorI2luY2x1ZGUgIldlYkNv
cmVNb3Rpb25NYW5hZ2VyQ2xpZW50LmgiCiAjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgogCiBPQkpD
X0NMQVNTIFdlYkNvcmVNb3Rpb25NYW5hZ2VyOwogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWNs
YXNzIERldmljZU9yaWVudGF0aW9uQ2xpZW50SU9TIDogcHVibGljIERldmljZU9yaWVudGF0aW9u
Q2xpZW50IHsKK2NsYXNzIERldmljZU9yaWVudGF0aW9uQ2xpZW50SU9TIDogcHVibGljIERldmlj
ZU9yaWVudGF0aW9uQ2xpZW50LCBwdWJsaWMgV2ViQ29yZU1vdGlvbk1hbmFnZXJDbGllbnQgewog
cHVibGljOgotICAgIERldmljZU9yaWVudGF0aW9uQ2xpZW50SU9TKCk7CisgICAgRGV2aWNlT3Jp
ZW50YXRpb25DbGllbnRJT1MoUmVmUHRyPFNoYXJlZERldmljZU9yaWVudGF0aW9uQ2xpZW50PiYm
KTsKICAgICB+RGV2aWNlT3JpZW50YXRpb25DbGllbnRJT1MoKSBvdmVycmlkZTsKICAgICB2b2lk
IHNldENvbnRyb2xsZXIoRGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyKikgb3ZlcnJpZGU7CiAg
ICAgdm9pZCBzdGFydFVwZGF0aW5nKCkgb3ZlcnJpZGU7CkBAIC00NiwxMiArNDgsMTMgQEAgcHVi
bGljOgogICAgIERldmljZU9yaWVudGF0aW9uRGF0YSogbGFzdE9yaWVudGF0aW9uKCkgY29uc3Qg
b3ZlcnJpZGU7CiAgICAgdm9pZCBkZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXJEZXN0cm95ZWQo
KSBvdmVycmlkZTsKIAotICAgIHZvaWQgb3JpZW50YXRpb25DaGFuZ2VkKGRvdWJsZSwgZG91Ymxl
LCBkb3VibGUsIGRvdWJsZSwgZG91YmxlKTsKKyAgICB2b2lkIG9yaWVudGF0aW9uQ2hhbmdlZChk
b3VibGUsIGRvdWJsZSwgZG91YmxlLCBkb3VibGUsIGRvdWJsZSkgb3ZlcnJpZGU7CiAKIHByaXZh
dGU6CiAgICAgV2ViQ29yZU1vdGlvbk1hbmFnZXIqIG1fbW90aW9uTWFuYWdlcjsKICAgICBEZXZp
Y2VPcmllbnRhdGlvbkNvbnRyb2xsZXIqIG1fY29udHJvbGxlcjsKICAgICBSZWZQdHI8RGV2aWNl
T3JpZW50YXRpb25EYXRhPiBtX2N1cnJlbnREZXZpY2VPcmllbnRhdGlvbjsKKyAgICBSZWZQdHI8
U2hhcmVkRGV2aWNlT3JpZW50YXRpb25DbGllbnQ+IG1fc2hhcmVkRGV2aWNlT3JpZW50YXRpb25D
bGllbnQ7CiAgICAgYm9vbCBtX3VwZGF0aW5nOwogfTsKIApJbmRleDogU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vaW9zL0RldmljZU9yaWVudGF0aW9uQ2xpZW50SU9TLm1tCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9EZXZpY2VPcmllbnRhdGlvbkNsaWVudElPUy5t
bQkocmV2aXNpb24gMjUzMDU5KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL0Rldmlj
ZU9yaWVudGF0aW9uQ2xpZW50SU9TLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0zMywxMCArMzMsMTEg
QEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1EZXZpY2VPcmllbnRhdGlvbkNsaWVudElPUzo6
RGV2aWNlT3JpZW50YXRpb25DbGllbnRJT1MoKQorRGV2aWNlT3JpZW50YXRpb25DbGllbnRJT1M6
OkRldmljZU9yaWVudGF0aW9uQ2xpZW50SU9TKFJlZlB0cjxTaGFyZWREZXZpY2VPcmllbnRhdGlv
bkNsaWVudD4mJiBzaGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudCkKICAgICA6IERldmljZU9y
aWVudGF0aW9uQ2xpZW50KCkKICAgICAsIG1fbW90aW9uTWFuYWdlcihudWxscHRyKQotICAgICwg
bV91cGRhdGluZygwKQorICAgICwgbV9zaGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudChXVEZN
b3ZlKHNoYXJlZERldmljZU9yaWVudGF0aW9uQ2xpZW50KSkKKyAgICAsIG1fdXBkYXRpbmcoZmFs
c2UpCiB7CiB9CiAKQEAgLTUzLDYgKzU0LDExIEBAIHZvaWQgRGV2aWNlT3JpZW50YXRpb25DbGll
bnRJT1M6OnN0YXJ0VXAKIHsKICAgICBtX3VwZGF0aW5nID0gdHJ1ZTsKIAorICAgIGlmIChtX3No
YXJlZERldmljZU9yaWVudGF0aW9uQ2xpZW50KSB7CisgICAgICAgIG1fc2hhcmVkRGV2aWNlT3Jp
ZW50YXRpb25DbGllbnQtPnN0YXJ0VXBkYXRpbmcoKnRoaXMpOworICAgICAgICByZXR1cm47Cisg
ICAgfQorCiAgICAgaWYgKCFtX21vdGlvbk1hbmFnZXIpCiAgICAgICAgIG1fbW90aW9uTWFuYWdl
ciA9IFtXZWJDb3JlTW90aW9uTWFuYWdlciBzaGFyZWRNYW5hZ2VyXTsKIApAQCAtNjMsNiArNjks
MTEgQEAgdm9pZCBEZXZpY2VPcmllbnRhdGlvbkNsaWVudElPUzo6c3RvcFVwZAogewogICAgIG1f
dXBkYXRpbmcgPSBmYWxzZTsKIAorICAgIGlmIChtX3NoYXJlZERldmljZU9yaWVudGF0aW9uQ2xp
ZW50KSB7CisgICAgICAgIG1fc2hhcmVkRGV2aWNlT3JpZW50YXRpb25DbGllbnQtPnN0b3BVcGRh
dGluZygqdGhpcyk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKICAgICAvLyBSZW1vdmUgb3Vy
c2VsdmVzIGFzIHRoZSBvcmllbnRhdGlvbiBjbGllbnQgc28gd2Ugd29uJ3QgZ2V0IHVwZGF0ZXMu
CiAgICAgW21fbW90aW9uTWFuYWdlciByZW1vdmVPcmllbnRhdGlvbkNsaWVudDp0aGlzXTsKIH0K
QEAgLTc0LDYgKzg1LDExIEBAIERldmljZU9yaWVudGF0aW9uRGF0YSogRGV2aWNlT3JpZW50YXRp
b24KIAogdm9pZCBEZXZpY2VPcmllbnRhdGlvbkNsaWVudElPUzo6ZGV2aWNlT3JpZW50YXRpb25D
b250cm9sbGVyRGVzdHJveWVkKCkKIHsKKyAgICBpZiAobV9zaGFyZWREZXZpY2VPcmllbnRhdGlv
bkNsaWVudCkgeworICAgICAgICBtX3NoYXJlZERldmljZU9yaWVudGF0aW9uQ2xpZW50LT5zdG9w
VXBkYXRpbmcoKnRoaXMpOworICAgICAgICByZXR1cm47CisgICAgfQorCiAgICAgW21fbW90aW9u
TWFuYWdlciByZW1vdmVPcmllbnRhdGlvbkNsaWVudDp0aGlzXTsKIH0KICAgICAKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9TaGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudC5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9TaGFyZWREZXZpY2VP
cmllbnRhdGlvbkNsaWVudC5oCShub25leGlzdGVudCkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2lvcy9TaGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudC5oCSh3b3JraW5nIGNvcHkpCkBA
IC0wLDAgKzEsNTEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTkgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRI
RQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQg
U0hBTEwgVEhFIENPUFlSSUdIVCBPV05FUiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExB
UlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
CisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgUExBVEZPUk0oSU9T
X0ZBTUlMWSkgJiYgRU5BQkxFKERFVklDRV9PUklFTlRBVElPTikKKworI2luY2x1ZGUgPHd0Zi9S
ZWZDb3VudGVkLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgV2ViQ29yZU1vdGlv
bk1hbmFnZXJDbGllbnQ7CisKK2NsYXNzIFNoYXJlZERldmljZU9yaWVudGF0aW9uQ2xpZW50IDog
cHVibGljIFJlZkNvdW50ZWQ8U2hhcmVkRGV2aWNlT3JpZW50YXRpb25DbGllbnQ+IHsKK3B1Ymxp
YzoKKyAgICB2aXJ0dWFsIH5TaGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudCgpIHsgfQorCisg
ICAgdmlydHVhbCB2b2lkIHN0YXJ0VXBkYXRpbmcoV2ViQ29yZU1vdGlvbk1hbmFnZXJDbGllbnQm
KSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHN0b3BVcGRhdGluZyhXZWJDb3JlTW90aW9uTWFuYWdl
ckNsaWVudCYpID0gMDsKKworICAgIHZpcnR1YWwgdm9pZCBkZXZpY2VPcmllbnRhdGlvbkNoYW5n
ZWQoZG91YmxlLCBkb3VibGUsIGRvdWJsZSwgZG91YmxlLCBkb3VibGUpID0gMDsKKyAgICAKK3By
b3RlY3RlZDoKKyAgICBTaGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudCgpID0gZGVmYXVsdDsK
K307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIFBMQVRGT1JNKElPU19G
QU1JTFkpICYmIEVOQUJMRShERVZJQ0VfT1JJRU5UQVRJT04pCkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9pb3MvV2ViQ29yZU1vdGlvbk1hbmFnZXIuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvV2ViQ29yZU1vdGlvbk1hbmFnZXIuaAkocmV2aXNpb24g
MjUzMDU5KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dlYkNvcmVNb3Rpb25NYW5h
Z2VyLmgJKHdvcmtpbmcgY29weSkKQEAgLTI1LDEwICsyNSw5IEBACiAKICNwcmFnbWEgb25jZQog
Ci0jaW1wb3J0ICJEZXZpY2VNb3Rpb25DbGllbnRJT1MuaCIKLSNpbXBvcnQgIkRldmljZU9yaWVu
dGF0aW9uQ2xpZW50SU9TLmgiCiAjaW1wb3J0IDxDb3JlTG9jYXRpb24vQ29yZUxvY2F0aW9uLmg+
CiAjaW1wb3J0IDx3dGYvSGFzaENvdW50ZWRTZXQuaD4KKyNpbXBvcnQgPHd0Zi9XZWFrSGFzaFNl
dC5oPgogCiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkgJiYgRU5BQkxFKERFVklDRV9PUklFTlRB
VElPTikKIApAQCAtMzYsMTEgKzM1LDE2IEBACiAKIGNvbnN0IGZsb2F0IGtNb3Rpb25VcGRhdGVJ
bnRlcnZhbCA9IDEuMGYgLyA2MC4wZjsKIAotQGludGVyZmFjZSBXZWJDb3JlTW90aW9uTWFuYWdl
ciA6IE5TT2JqZWN0IHsKK25hbWVzcGFjZSBXZWJDb3JlIHsKK2NsYXNzIERldmljZU1vdGlvbkNs
aWVudElPUzsKK2NsYXNzIFdlYkNvcmVNb3Rpb25NYW5hZ2VyQ2xpZW50OworfTsKKworV0VCQ09S
RV9FWFBPUlQgQGludGVyZmFjZSBXZWJDb3JlTW90aW9uTWFuYWdlciA6IE5TT2JqZWN0IHsKICAg
ICBDTU1vdGlvbk1hbmFnZXIqIG1fbW90aW9uTWFuYWdlcjsKICAgICBDTExvY2F0aW9uTWFuYWdl
ciogbV9sb2NhdGlvbk1hbmFnZXI7CiAgICAgSGFzaFNldDxXZWJDb3JlOjpEZXZpY2VNb3Rpb25D
bGllbnRJT1MqPiBtX2RldmljZU1vdGlvbkNsaWVudHM7Ci0gICAgSGFzaFNldDxXZWJDb3JlOjpE
ZXZpY2VPcmllbnRhdGlvbkNsaWVudElPUyo+IG1fZGV2aWNlT3JpZW50YXRpb25DbGllbnRzOwor
ICAgIFdlYWtIYXNoU2V0PFdlYkNvcmU6OldlYkNvcmVNb3Rpb25NYW5hZ2VyQ2xpZW50PiBtX2Rl
dmljZU9yaWVudGF0aW9uQ2xpZW50czsKICAgICBOU1RpbWVyKiBtX3VwZGF0ZVRpbWVyOwogICAg
IEJPT0wgbV9neXJvQXZhaWxhYmxlOwogICAgIEJPT0wgbV9oZWFkaW5nQXZhaWxhYmxlOwpAQCAt
NTAsOCArNTQsOCBAQCBjb25zdCBmbG9hdCBrTW90aW9uVXBkYXRlSW50ZXJ2YWwgPSAxLjBmCiAr
IChXZWJDb3JlTW90aW9uTWFuYWdlciAqKXNoYXJlZE1hbmFnZXI7CiAtICh2b2lkKWFkZE1vdGlv
bkNsaWVudDooV2ViQ29yZTo6RGV2aWNlTW90aW9uQ2xpZW50SU9TICopY2xpZW50OwogLSAodm9p
ZClyZW1vdmVNb3Rpb25DbGllbnQ6KFdlYkNvcmU6OkRldmljZU1vdGlvbkNsaWVudElPUyAqKWNs
aWVudDsKLS0gKHZvaWQpYWRkT3JpZW50YXRpb25DbGllbnQ6KFdlYkNvcmU6OkRldmljZU9yaWVu
dGF0aW9uQ2xpZW50SU9TICopY2xpZW50OwotLSAodm9pZClyZW1vdmVPcmllbnRhdGlvbkNsaWVu
dDooV2ViQ29yZTo6RGV2aWNlT3JpZW50YXRpb25DbGllbnRJT1MgKiljbGllbnQ7CistICh2b2lk
KWFkZE9yaWVudGF0aW9uQ2xpZW50OihXZWJDb3JlOjpXZWJDb3JlTW90aW9uTWFuYWdlckNsaWVu
dCAqKWNsaWVudDsKKy0gKHZvaWQpcmVtb3ZlT3JpZW50YXRpb25DbGllbnQ6KFdlYkNvcmU6Oldl
YkNvcmVNb3Rpb25NYW5hZ2VyQ2xpZW50ICopY2xpZW50OwogLSAoQk9PTClneXJvQXZhaWxhYmxl
OwogLSAoQk9PTCloZWFkaW5nQXZhaWxhYmxlOwogQGVuZApJbmRleDogU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vaW9zL1dlYkNvcmVNb3Rpb25NYW5hZ2VyLm1tCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJDb3JlTW90aW9uTWFuYWdlci5tbQkocmV2aXNpb24g
MjUzMDU5KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dlYkNvcmVNb3Rpb25NYW5h
Z2VyLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0yOCw2ICsyOCw4IEBACiAKICNpZiBQTEFURk9STShJ
T1NfRkFNSUxZKSAmJiBFTkFCTEUoREVWSUNFX09SSUVOVEFUSU9OKQogCisjaW1wb3J0ICJEZXZp
Y2VNb3Rpb25DbGllbnRJT1MuaCIKKyNpbXBvcnQgIldlYkNvcmVNb3Rpb25NYW5hZ2VyQ2xpZW50
LmgiCiAjaW1wb3J0ICJXZWJDb3JlT2JqQ0V4dHJhcy5oIgogI2ltcG9ydCAiV2ViQ29yZVRocmVh
ZFJ1bi5oIgogI2ltcG9ydCA8Q29yZUxvY2F0aW9uL0NvcmVMb2NhdGlvbi5oPgpAQCAtMTEyLDE2
ICsxMTQsMTYgQEAgLSAodm9pZClyZW1vdmVNb3Rpb25DbGllbnQ6KFdlYkNvcmU6OkRldgogICAg
ICAgICBbc2VsZiBjaGVja0NsaWVudFN0YXR1c107CiB9CiAKLS0gKHZvaWQpYWRkT3JpZW50YXRp
b25DbGllbnQ6KFdlYkNvcmU6OkRldmljZU9yaWVudGF0aW9uQ2xpZW50SU9TICopY2xpZW50Cist
ICh2b2lkKWFkZE9yaWVudGF0aW9uQ2xpZW50OihXZWJDb3JlOjpXZWJDb3JlTW90aW9uTWFuYWdl
ckNsaWVudCAqKWNsaWVudAogewotICAgIG1fZGV2aWNlT3JpZW50YXRpb25DbGllbnRzLmFkZChj
bGllbnQpOworICAgIG1fZGV2aWNlT3JpZW50YXRpb25DbGllbnRzLmFkZCgqY2xpZW50KTsKICAg
ICBpZiAobV9pbml0aWFsaXplZCkKICAgICAgICAgW3NlbGYgY2hlY2tDbGllbnRTdGF0dXNdOwog
fQogCi0tICh2b2lkKXJlbW92ZU9yaWVudGF0aW9uQ2xpZW50OihXZWJDb3JlOjpEZXZpY2VPcmll
bnRhdGlvbkNsaWVudElPUyAqKWNsaWVudAorLSAodm9pZClyZW1vdmVPcmllbnRhdGlvbkNsaWVu
dDooV2ViQ29yZTo6V2ViQ29yZU1vdGlvbk1hbmFnZXJDbGllbnQgKiljbGllbnQKIHsKLSAgICBt
X2RldmljZU9yaWVudGF0aW9uQ2xpZW50cy5yZW1vdmUoY2xpZW50KTsKKyAgICBtX2RldmljZU9y
aWVudGF0aW9uQ2xpZW50cy5yZW1vdmUoKmNsaWVudCk7CiAgICAgaWYgKG1faW5pdGlhbGl6ZWQp
CiAgICAgICAgIFtzZWxmIGNoZWNrQ2xpZW50U3RhdHVzXTsKIH0KQEAgLTE2OSw3ICsxNzEsNyBA
QCAtICh2b2lkKWNoZWNrQ2xpZW50U3RhdHVzCiAgICAgLy8gYmUgbm8gY2hhbmNlIHRoYXQgbV9t
b3Rpb25NYW5hZ2VyIGhhcyBub3QgYmVlbiBjcmVhdGVkLgogICAgIEFTU0VSVChtX21vdGlvbk1h
bmFnZXIpOwogCi0gICAgaWYgKG1fZGV2aWNlTW90aW9uQ2xpZW50cy5zaXplKCkgfHwgbV9kZXZp
Y2VPcmllbnRhdGlvbkNsaWVudHMuc2l6ZSgpKSB7CisgICAgaWYgKG1fZGV2aWNlTW90aW9uQ2xp
ZW50cy5zaXplKCkgfHwgbV9kZXZpY2VPcmllbnRhdGlvbkNsaWVudHMuY29tcHV0ZVNpemUoKSkg
ewogICAgICAgICBpZiAobV9neXJvQXZhaWxhYmxlKQogICAgICAgICAgICAgW21fbW90aW9uTWFu
YWdlciBzdGFydERldmljZU1vdGlvblVwZGF0ZXNdOwogICAgICAgICBlbHNlCkBAIC0yNDYsOCAr
MjQ4LDExIEBAIC0gKHZvaWQpc2VuZE1vdGlvbkRhdGE6KENNRGV2aWNlTW90aW9uICoKIAogICAg
ICAgICBDTUF0dGl0dWRlKiBhdHRpdHVkZSA9IG5ld01vdGlvbi5hdHRpdHVkZTsKIAotICAgICAg
ICBhdXRvIG9yaWVudGF0aW9uQ2xpZW50cyA9IGNvcHlUb1ZlY3RvcihtX2RldmljZU9yaWVudGF0
aW9uQ2xpZW50cyk7Ci0KKyAgICAgICAgVmVjdG9yPFdlYkNvcmVNb3Rpb25NYW5hZ2VyQ2xpZW50
Kj4gb3JpZW50YXRpb25DbGllbnRzOworICAgICAgICBvcmllbnRhdGlvbkNsaWVudHMucmVzZXJ2
ZUluaXRpYWxDYXBhY2l0eShtX2RldmljZU9yaWVudGF0aW9uQ2xpZW50cy5jb21wdXRlU2l6ZSgp
KTsKKyAgICAgICAgZm9yIChhdXRvJiBjbGllbnQgOiBtX2RldmljZU9yaWVudGF0aW9uQ2xpZW50
cykKKyAgICAgICAgICAgIG9yaWVudGF0aW9uQ2xpZW50cy5hcHBlbmQoJmNsaWVudCk7CisgICAg
ICAgIAogICAgICAgICAvLyBDb21wb3NlIHRoZSByYXcgbW90aW9uIGRhdGEgdG8gYW4gaW50ZXJt
ZWRpYXRlIFpYWS1iYXNlZCAzeDMgcm90YXRpb24KICAgICAgICAgLy8gbWF0cml4IChSKSB3aGVy
ZSBbej1hdHRpdHVkZS55YXcsIHg9YXR0aXR1ZGUucGl0Y2gsIHk9YXR0aXR1ZGUucm9sbF0KICAg
ICAgICAgLy8gaW4gdGhlIGZvcm06CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3Mv
V2ViQ29yZU1vdGlvbk1hbmFnZXJDbGllbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9pb3MvV2ViQ29yZU1vdGlvbk1hbmFnZXJDbGllbnQuaAkobm9uZXhpc3RlbnQp
CisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvV2ViQ29yZU1vdGlvbk1hbmFnZXJDbGll
bnQuaAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDM5IEBACisvKgorKiBDb3B5cmlnaHQgKEMp
IDIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorKgorKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisqIGFyZSBtZXQ6CisqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorKgorKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycn
CisqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworKiBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SCisqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworKiBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTgorKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisqIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSA8d3Rm
L1dlYWtQdHIuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBXZWJDb3JlTW90aW9u
TWFuYWdlckNsaWVudCA6IHB1YmxpYyBDYW5NYWtlV2Vha1B0cjxXZWJDb3JlTW90aW9uTWFuYWdl
ckNsaWVudD4geworcHVibGljOgorICAgIHZpcnR1YWwgfldlYkNvcmVNb3Rpb25NYW5hZ2VyQ2xp
ZW50KCkgeyB9OworCisgICAgdmlydHVhbCB2b2lkIG9yaWVudGF0aW9uQ2hhbmdlZChkb3VibGUs
IGRvdWJsZSwgZG91YmxlLCBkb3VibGUsIGRvdWJsZSkgPSAwOworfTsKKworfTsKSW5kZXg6IFNv
dXJjZS9XZWJLaXQvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvQ2hhbmdl
TG9nCShyZXZpc2lvbiAyNTMxMTgpCisrKyBTb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwkod29ya2lu
ZyBjb3B5KQpAQCAtMSwzICsxLDQyIEBACisyMDE5LTEyLTA0ICBQZXIgQXJuZSBWb2xsYW4gIDxw
dm9sbGFuQGFwcGxlLmNvbT4KKworICAgICAgICBbaU9TXSBDYWxscyB0byBkZXZpY2Ugb3JpZW50
YXRpb24gQVBJIHNob3VsZCBiZSBkb25lIGluIHRoZSBVSSBwcm9jZXNzCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDQ3MjAKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgYSBuZXcgY2xhc3MsIFdlYlNo
YXJlZERldmljZU9yaWVudGF0aW9uQ2xpZW50UHJveHksIHRvIGhhbmRsZSBtZXNzYWdlcyB0byBz
dGFydCBhbmQgc3RvcCB1cGRhdGluZyBkZXZpY2Ugb3JpZW50YXRpb24KKyAgICAgICAgaW4gdGhl
IFVJIHByb2Nlc3MuIEFsc28sIGFkZCBhIG1lc3NhZ2UgdG8gdXBkYXRlIHRoZSBkZXZpY2Ugb3Jp
ZW50YXRpb24gaW4gdGhlIFdlYkNvbnRlbnQgcHJvY2Vzcy4gSW4gdGhlIFVJIHByb2Nlc3MsIHRo
ZQorICAgICAgICBkZXZpY2Ugb3JpZW50YXRpb24gQVBJIGlzIGNhbGxlZCB0aHJvdWdoIHRoZSBh
bHJlYWR5IGV4aXN0aW5nIFdlYkNvcmVNb3Rpb25NYW5hZ2VyIGNsYXNzLgorCisgICAgICAgICog
RGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdDoKKyAgICAgICAgKiBEZXJpdmVkU291cmNl
cy1vdXRwdXQueGNmaWxlbGlzdDoKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy5tYWtlOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjptX3dl
YlNoYXJlZERldmljZU9yaWVudGF0aW9uQ2xpZW50UHJveHkpOgorICAgICAgICAoV2ViS2l0Ojpt
X3Jlc2V0UmVjZW50Q3Jhc2hDb3VudFRpbWVyKTogRGVsZXRlZC4KKyAgICAgICAgKiBVSVByb2Nl
c3MvaW9zL1dlYlByb2Nlc3NQcm94eUlPUy5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vz
c1Byb3h5Ojp1bmJsb2NrQWNjZXNzaWJpbGl0eVNlcnZlcklmTmVlZGVkKToKKyAgICAgICAgKiBV
SVByb2Nlc3MvaW9zL1dlYlNoYXJlZERldmljZU9yaWVudGF0aW9uQ2xpZW50UHJveHkuaDogQWRk
ZWQuCisgICAgICAgICogVUlQcm9jZXNzL2lvcy9XZWJTaGFyZWREZXZpY2VPcmllbnRhdGlvbkNs
aWVudFByb3h5Lm1lc3NhZ2VzLmluOiBBZGRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dl
YlNoYXJlZERldmljZU9yaWVudGF0aW9uQ2xpZW50UHJveHkubW06IEFkZGVkLgorICAgICAgICAo
V2ViS2l0OjpXZWJTaGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudFByb3h5OjpXZWJTaGFyZWRE
ZXZpY2VPcmllbnRhdGlvbkNsaWVudFByb3h5KToKKyAgICAgICAgKFdlYktpdDo6V2ViU2hhcmVk
RGV2aWNlT3JpZW50YXRpb25DbGllbnRQcm94eTo6fldlYlNoYXJlZERldmljZU9yaWVudGF0aW9u
Q2xpZW50UHJveHkpOgorICAgICAgICAoV2ViS2l0OjpXZWJTaGFyZWREZXZpY2VPcmllbnRhdGlv
bkNsaWVudFByb3h5OjpzdGFydFVwZGF0aW5nRGV2aWNlT3JpZW50YXRpb24pOgorICAgICAgICAo
V2ViS2l0OjpXZWJTaGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudFByb3h5OjpzdG9wVXBkYXRp
bmdEZXZpY2VPcmllbnRhdGlvbik6CisgICAgICAgIChXZWJLaXQ6OldlYlNoYXJlZERldmljZU9y
aWVudGF0aW9uQ2xpZW50UHJveHk6Om9yaWVudGF0aW9uQ2hhbmdlZCk6CisgICAgICAgICogV2Vi
S2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC9XZWJTaGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudC5jcHA6IEFkZGVkLgor
ICAgICAgICAoV2ViS2l0OjpXZWJTaGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudDo6V2ViU2hh
cmVkRGV2aWNlT3JpZW50YXRpb25DbGllbnQpOgorICAgICAgICAoV2ViS2l0OjpXZWJTaGFyZWRE
ZXZpY2VPcmllbnRhdGlvbkNsaWVudDo6fldlYlNoYXJlZERldmljZU9yaWVudGF0aW9uQ2xpZW50
KToKKyAgICAgICAgKFdlYktpdDo6V2ViU2hhcmVkRGV2aWNlT3JpZW50YXRpb25DbGllbnQ6OnN0
YXJ0VXBkYXRpbmcpOgorICAgICAgICAoV2ViS2l0OjpXZWJTaGFyZWREZXZpY2VPcmllbnRhdGlv
bkNsaWVudDo6c3RvcFVwZGF0aW5nKToKKyAgICAgICAgKFdlYktpdDo6V2ViU2hhcmVkRGV2aWNl
T3JpZW50YXRpb25DbGllbnQ6OmRldmljZU9yaWVudGF0aW9uQ2hhbmdlZCk6CisgICAgICAgICog
V2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJTaGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVu
dC5oOiBBZGRlZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlNoYXJl
ZERldmljZU9yaWVudGF0aW9uQ2xpZW50Lm1lc3NhZ2VzLmluOiBBZGRlZC4KKyAgICAgICAgKiBX
ZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHA6CisgICAgICAgIChXZWJLaXQ6Om1fb3ZlcnJp
ZGRlbk1lZGlhVHlwZSk6CisKIDIwMTktMTItMDQgIEthdGUgQ2hlbmV5ICA8a2F0aGVyaW5lX2No
ZW5leUBhcHBsZS5jb20+CiAKICAgICAgICAgRXhwb3NlIGJhc2ljIElUUCBkYXRhIGZyb20gdGhl
IGRhdGFiYXNlIGZvciBmdXR1cmUgQVBJL1NQSSB1c2UKSW5kZXg6IFNvdXJjZS9XZWJLaXQvRGVy
aXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0
L0Rlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3QJKHJldmlzaW9uIDI1MzA1OSkKKysrIFNv
dXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdAkod29ya2luZyBjb3B5
KQpAQCAtODQsNiArODQsNyBAQCAkKFBST0pFQ1RfRElSKS9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bv
b2wuCiAkKFBST0pFQ1RfRElSKS9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmlu
CiAkKFBST0pFQ1RfRElSKS9VSVByb2Nlc3MvaW9zL0VkaXRhYmxlSW1hZ2VDb250cm9sbGVyLm1l
c3NhZ2VzLmluCiAkKFBST0pFQ1RfRElSKS9VSVByb2Nlc3MvaW9zL1NtYXJ0TWFnbmlmaWNhdGlv
bkNvbnRyb2xsZXIubWVzc2FnZXMuaW4KKyQoUFJPSkVDVF9ESVIpL1VJUHJvY2Vzcy9pb3MvV2Vi
U2hhcmVkRGV2aWNlT3JpZW50YXRpb25DbGllbnRQcm94eS5tZXNzYWdlcy5pbgogJChQUk9KRUNU
X0RJUikvVUlQcm9jZXNzL21hYy9TZWNJdGVtU2hpbVByb3h5Lm1lc3NhZ2VzLmluCiAkKFBST0pF
Q1RfRElSKS9XZWJQcm9jZXNzL0FwcGxlUGF5L1dlYlBheW1lbnRDb29yZGluYXRvci5tZXNzYWdl
cy5pbgogJChQUk9KRUNUX0RJUikvV2ViUHJvY2Vzcy9BdXRvbWF0aW9uL1dlYkF1dG9tYXRpb25T
ZXNzaW9uUHJveHkuanMKQEAgLTEwOCw2ICsxMDksNyBAQCAkKFBST0pFQ1RfRElSKS9XZWJQcm9j
ZXNzL1N0b3JhZ2UvV2ViU1dDCiAkKFBST0pFQ1RfRElSKS9XZWJQcm9jZXNzL1N0b3JhZ2UvV2Vi
U1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24ubWVzc2FnZXMuaW4KICQoUFJPSkVDVF9ESVIpL1dl
YlByb2Nlc3MvVXNlckNvbnRlbnQvV2ViVXNlckNvbnRlbnRDb250cm9sbGVyLm1lc3NhZ2VzLmlu
CiAkKFBST0pFQ1RfRElSKS9XZWJQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL1dlYkF1dGhlbnRp
Y2F0b3JDb29yZGluYXRvci5tZXNzYWdlcy5pbgorJChQUk9KRUNUX0RJUikvV2ViUHJvY2Vzcy9X
ZWJDb3JlU3VwcG9ydC9XZWJTaGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudC5tZXNzYWdlcy5p
bgogJChQUk9KRUNUX0RJUikvV2ViUHJvY2Vzcy9XZWJQYWdlL0NvY29hL1RleHRDaGVja2luZ0Nv
bnRyb2xsZXJQcm94eS5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikvV2ViUHJvY2Vzcy9XZWJQ
YWdlL0RyYXdpbmdBcmVhLm1lc3NhZ2VzLmluCiAkKFBST0pFQ1RfRElSKS9XZWJQcm9jZXNzL1dl
YlBhZ2UvRXZlbnREaXNwYXRjaGVyLm1lc3NhZ2VzLmluCkluZGV4OiBTb3VyY2UvV2ViS2l0L0Rl
cml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0Cj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQvRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QJKHJldmlzaW9uIDI1MzA1OSkKKysr
IFNvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QJKHdvcmtpbmcg
Y29weSkKQEAgLTI3OSw2ICsyNzksMTIgQEAgJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRT
b3VyY2VzL1dlYgogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIv
V2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uTWVzc2FnZVJlY2VpdmVyLmNwcAogJChCVUlM
VF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvV2ViU1dTZXJ2ZXJUb0NvbnRl
eHRDb25uZWN0aW9uTWVzc2FnZXMuaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3Vy
Y2VzL1dlYktpdDIvV2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uTWVzc2FnZXNSZXBsaWVz
LmgKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1dlYlNoYXJl
ZERldmljZU9yaWVudGF0aW9uQ2xpZW50TWVzc2FnZVJlY2VpdmVyLmNwcAorJChCVUlMVF9QUk9E
VUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvV2ViU2hhcmVkRGV2aWNlT3JpZW50YXRp
b25DbGllbnRNZXNzYWdlcy5oCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMv
V2ViS2l0Mi9XZWJTaGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudE1lc3NhZ2VzUmVwbGllcy5o
CiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9XZWJTaGFyZWRE
ZXZpY2VPcmllbnRhdGlvbkNsaWVudFByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcAorJChCVUlMVF9Q
Uk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvV2ViU2hhcmVkRGV2aWNlT3JpZW50
YXRpb25DbGllbnRQcm94eU1lc3NhZ2VzLmgKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVk
U291cmNlcy9XZWJLaXQyL1dlYlNoYXJlZERldmljZU9yaWVudGF0aW9uQ2xpZW50UHJveHlNZXNz
YWdlc1JlcGxpZXMuaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktp
dDIvV2ViU29ja2V0Q2hhbm5lbE1lc3NhZ2VSZWNlaXZlci5jcHAKICQoQlVJTFRfUFJPRFVDVFNf
RElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1dlYlNvY2tldENoYW5uZWxNZXNzYWdlcy5oCiAk
KEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9XZWJTb2NrZXRDaGFu
bmVsTWVzc2FnZXNSZXBsaWVzLmgKSW5kZXg6IFNvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMu
bWFrZQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLm1ha2UJKHJl
dmlzaW9uIDI1MzA1OSkKKysrIFNvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMubWFrZQkod29y
a2luZyBjb3B5KQpAQCAtMTgxLDYgKzE4MSw4IEBAIE1FU1NBR0VfUkVDRUlWRVJTID0gXAogICAg
IFdlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uIFwKICAgICBXZWJTV1NlcnZlckNvbm5lY3Rp
b24gXAogICAgIFdlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbiBcCisgICAgV2ViU2hhcmVk
RGV2aWNlT3JpZW50YXRpb25DbGllbnQgXAorICAgIFdlYlNoYXJlZERldmljZU9yaWVudGF0aW9u
Q2xpZW50UHJveHkgXAogICAgIFdlYlNvY2tldENoYW5uZWwgXAogICAgIFdlYlNvY2tldFN0cmVh
bSBcCiAgICAgV2ViVXNlckNvbnRlbnRDb250cm9sbGVyIFwKSW5kZXg6IFNvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAkocmV2aXNpb24gMjUzMDU5KQorKysgU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDQ5LDYg
KzQ0OSw5IEBAIFdlYlBhZ2VQcm94eTo6V2ViUGFnZVByb3h5KFBhZ2VDbGllbnQmIHAKICAgICAs
IG1faW5zcGVjdG9yRGVidWdnYWJsZShtYWtlVW5pcXVlPFdlYlBhZ2VEZWJ1Z2dhYmxlPigqdGhp
cykpCiAjZW5kaWYKICAgICAsIG1fcmVzZXRSZWNlbnRDcmFzaENvdW50VGltZXIoUnVuTG9vcDo6
bWFpbigpLCB0aGlzLCAmV2ViUGFnZVByb3h5OjpyZXNldFJlY2VudENyYXNoQ291bnQpCisjaWYg
UExBVEZPUk0oSU9TX0ZBTUlMWSkgJiYgRU5BQkxFKERFVklDRV9PUklFTlRBVElPTikKKyAgICAs
IG1fd2ViU2hhcmVkRGV2aWNlT3JpZW50YXRpb25DbGllbnRQcm94eSgqdGhpcykKKyNlbmRpZgog
ewogICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoTG9hZGluZywgImNvbnN0cnVjdG9yOiIpOwog
CkluZGV4OiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAkocmV2aXNpb24gMjUz
MDU5KQorKysgU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgJKHdvcmtpbmcg
Y29weSkKQEAgLTE0OSw2ICsxNDksMTAgQEAgT0JKQ19DTEFTUyBfV0tSZW1vdGVPYmplY3RSZWdp
c3RyeTsKICNpbmNsdWRlICJTT0F1dGhvcml6YXRpb25Mb2FkUG9saWN5LmgiCiAjZW5kaWYKIAor
I2lmIFBMQVRGT1JNKElPU19GQU1JTFkpICYmIEVOQUJMRShERVZJQ0VfT1JJRU5UQVRJT04pCisj
aW5jbHVkZSAiV2ViU2hhcmVkRGV2aWNlT3JpZW50YXRpb25DbGllbnRQcm94eS5oIgorI2VuZGlm
CisKICNpZiBFTkFCTEUoTUVESUFfU0VTU0lPTikKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNz
IE1lZGlhU2Vzc2lvbk1ldGFkYXRhOwpAQCAtMjYyOSw2ICsyNjMzLDEwIEBAIHByaXZhdGU6CiAg
ICAgYm9vbCBtX2lzUXVvdGFJbmNyZWFzZURlbmllZCB7IGZhbHNlIH07CiAgICAgCiAgICAgU3Ry
aW5nIG1fb3ZlcnJpZGRlbk1lZGlhVHlwZTsKKyAgICAgICAgCisjaWYgUExBVEZPUk0oSU9TX0ZB
TUlMWSkgJiYgRU5BQkxFKERFVklDRV9PUklFTlRBVElPTikKKyAgICBXZWJTaGFyZWREZXZpY2VP
cmllbnRhdGlvbkNsaWVudFByb3h5IG1fd2ViU2hhcmVkRGV2aWNlT3JpZW50YXRpb25DbGllbnRQ
cm94eTsKKyNlbmRpZgogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CkluZGV4OiBTb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9pb3MvV2ViU2hhcmVkRGV2aWNlT3JpZW50YXRpb25DbGllbnRQcm94
eS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XZWJTaGFyZWRE
ZXZpY2VPcmllbnRhdGlvbkNsaWVudFByb3h5LmgJKG5vbmV4aXN0ZW50KQorKysgU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvaW9zL1dlYlNoYXJlZERldmljZU9yaWVudGF0aW9uQ2xpZW50UHJveHku
aAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDU3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMg
YGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRS
SUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBv
bmNlCisKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKSAmJiBFTkFCTEUoREVWSUNFX09SSUVOVEFU
SU9OKQorCisjaW5jbHVkZSAiTWVzc2FnZVJlY2VpdmVyLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9X
ZWJDb3JlTW90aW9uTWFuYWdlckNsaWVudC5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xh
c3MgV2ViUGFnZVByb3h5OworCitjbGFzcyBXZWJTaGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVu
dFByb3h5IDogcHVibGljIFdlYkNvcmU6OldlYkNvcmVNb3Rpb25NYW5hZ2VyQ2xpZW50LCBwcml2
YXRlIElQQzo6TWVzc2FnZVJlY2VpdmVyIHsKK3B1YmxpYzoKKyAgICBXZWJTaGFyZWREZXZpY2VP
cmllbnRhdGlvbkNsaWVudFByb3h5KFdlYlBhZ2VQcm94eSYpOworICAgIH5XZWJTaGFyZWREZXZp
Y2VPcmllbnRhdGlvbkNsaWVudFByb3h5KCk7CisKKyAgICB2b2lkIHN0YXJ0VXBkYXRpbmdEZXZp
Y2VPcmllbnRhdGlvbigpOworICAgIHZvaWQgc3RvcFVwZGF0aW5nRGV2aWNlT3JpZW50YXRpb24o
KTsKKyAgICAKK3ByaXZhdGU6CisgICAgLy8gV2ViQ29yZTo6V2ViQ29yZU1vdGlvbk1hbmFnZXJD
bGllbnQKKyAgICB2b2lkIG9yaWVudGF0aW9uQ2hhbmdlZChkb3VibGUsIGRvdWJsZSwgZG91Ymxl
LCBkb3VibGUsIGRvdWJsZSkgZmluYWw7CisgICAgCisgICAgLy8gSVBDOjpNZXNzYWdlUmVjZWl2
ZXIuCisgICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRl
Y29kZXImKSBvdmVycmlkZTsKKworICAgIFdlYlBhZ2VQcm94eSYgbV9wYWdlOworfTsKKworfSAv
LyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBQTEFURk9STShJT1NfRkFNSUxZKSAmJiBF
TkFCTEUoREVWSUNFX09SSUVOVEFUSU9OKQpJbmRleDogU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
aW9zL1dlYlNoYXJlZERldmljZU9yaWVudGF0aW9uQ2xpZW50UHJveHkubWVzc2FnZXMuaW4KPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dlYlNoYXJlZERldmljZU9y
aWVudGF0aW9uQ2xpZW50UHJveHkubWVzc2FnZXMuaW4JKG5vbmV4aXN0ZW50KQorKysgU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvaW9zL1dlYlNoYXJlZERldmljZU9yaWVudGF0aW9uQ2xpZW50UHJv
eHkubWVzc2FnZXMuaW4JKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwyOCBAQAorIyBDb3B5cmln
aHQgKEMpIDIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIworIyBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisjIGFyZSBtZXQ6CisjIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorIyAy
LiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyMgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyMgICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisjCisjIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9S
UyBgYEFTIElTJycgQU5ECisjIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisjIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUK
KyMgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJ
QlVUT1JTIEJFIExJQUJMRSBGT1IKKyMgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTAorIyBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBP
UgorIyBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
IElOVEVSUlVQVElPTikgSE9XRVZFUgorIyBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLAorIyBPUiBUT1JU
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRQorIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkg
JiYgRU5BQkxFKERFVklDRV9PUklFTlRBVElPTikKK21lc3NhZ2VzIC0+IFdlYlNoYXJlZERldmlj
ZU9yaWVudGF0aW9uQ2xpZW50UHJveHkgTm90UmVmQ291bnRlZCB7CisgICAgU3RhcnRVcGRhdGlu
Z0RldmljZU9yaWVudGF0aW9uKCk7CisgICAgU3RvcFVwZGF0aW5nRGV2aWNlT3JpZW50YXRpb24o
KTsKK30KKyNlbmRpZgpJbmRleDogU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dlYlNoYXJl
ZERldmljZU9yaWVudGF0aW9uQ2xpZW50UHJveHkubW0KPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvaW9zL1dlYlNoYXJlZERldmljZU9yaWVudGF0aW9uQ2xpZW50UHJveHku
bW0JKG5vbmV4aXN0ZW50KQorKysgU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dlYlNoYXJl
ZERldmljZU9yaWVudGF0aW9uQ2xpZW50UHJveHkubW0JKHdvcmtpbmcgY29weSkKQEAgLTAsMCAr
MSw2NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
KyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisg
KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNpbXBvcnQgImNvbmZpZy5oIgorI2ltcG9ydCAiV2ViU2hh
cmVkRGV2aWNlT3JpZW50YXRpb25DbGllbnRQcm94eS5oIgorCisjaWYgUExBVEZPUk0oSU9TX0ZB
TUlMWSkgJiYgRU5BQkxFKERFVklDRV9PUklFTlRBVElPTikKKworI2ltcG9ydCAiV2ViUGFnZVBy
b3h5LmgiCisjaW1wb3J0ICJXZWJQcm9jZXNzUHJveHkuaCIKKyNpbXBvcnQgIldlYlNoYXJlZERl
dmljZU9yaWVudGF0aW9uQ2xpZW50TWVzc2FnZXMuaCIKKyNpbXBvcnQgIldlYlNoYXJlZERldmlj
ZU9yaWVudGF0aW9uQ2xpZW50UHJveHlNZXNzYWdlcy5oIgorI2ltcG9ydCA8V2ViY29yZS9XZWJD
b3JlTW90aW9uTWFuYWdlci5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworV2ViU2hhcmVkRGV2
aWNlT3JpZW50YXRpb25DbGllbnRQcm94eTo6V2ViU2hhcmVkRGV2aWNlT3JpZW50YXRpb25DbGll
bnRQcm94eShXZWJQYWdlUHJveHkmIHBhZ2UpCisgICAgOiBtX3BhZ2UocGFnZSkKK3sKKyAgICBt
X3BhZ2UucHJvY2VzcygpLmFkZE1lc3NhZ2VSZWNlaXZlcihNZXNzYWdlczo6V2ViU2hhcmVkRGV2
aWNlT3JpZW50YXRpb25DbGllbnRQcm94eTo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpLCBtX3BhZ2Uu
d2ViUGFnZUlEKCksICp0aGlzKTsKK30KKworV2ViU2hhcmVkRGV2aWNlT3JpZW50YXRpb25DbGll
bnRQcm94eTo6fldlYlNoYXJlZERldmljZU9yaWVudGF0aW9uQ2xpZW50UHJveHkoKQoreworICAg
IG1fcGFnZS5wcm9jZXNzKCkucmVtb3ZlTWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2VzOjpXZWJTaGFy
ZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudFByb3h5OjptZXNzYWdlUmVjZWl2ZXJOYW1lKCksIG1f
cGFnZS53ZWJQYWdlSUQoKSk7Cit9CisKK3ZvaWQgV2ViU2hhcmVkRGV2aWNlT3JpZW50YXRpb25D
bGllbnRQcm94eTo6c3RhcnRVcGRhdGluZ0RldmljZU9yaWVudGF0aW9uKCkKK3sKKyAgICBbW1dl
YkNvcmVNb3Rpb25NYW5hZ2VyIHNoYXJlZE1hbmFnZXJdIGFkZE9yaWVudGF0aW9uQ2xpZW50OnRo
aXNdOworfQorCit2b2lkIFdlYlNoYXJlZERldmljZU9yaWVudGF0aW9uQ2xpZW50UHJveHk6OnN0
b3BVcGRhdGluZ0RldmljZU9yaWVudGF0aW9uKCkKK3sKKyAgICBbW1dlYkNvcmVNb3Rpb25NYW5h
Z2VyIHNoYXJlZE1hbmFnZXJdIHJlbW92ZU9yaWVudGF0aW9uQ2xpZW50OnRoaXNdOworfQorCit2
b2lkIFdlYlNoYXJlZERldmljZU9yaWVudGF0aW9uQ2xpZW50UHJveHk6Om9yaWVudGF0aW9uQ2hh
bmdlZChkb3VibGUgYWxwaGEsIGRvdWJsZSBiZXRhLCBkb3VibGUgZ2FtbWEsIGRvdWJsZSBjb21w
YXNzSGVhZGluZywgZG91YmxlIGNvbXBhc3NBY2N1cmFjeSkKK3sKKyAgICBtX3BhZ2Uuc2VuZChN
ZXNzYWdlczo6V2ViU2hhcmVkRGV2aWNlT3JpZW50YXRpb25DbGllbnQ6OkRldmljZU9yaWVudGF0
aW9uQ2hhbmdlZChhbHBoYSwgYmV0YSwgZ2FtbWEsIGNvbXBhc3NIZWFkaW5nLCBjb21wYXNzQWNj
dXJhY3kpKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBQTEFURk9S
TShJT1NfRkFNSUxZKQpJbmRleDogU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvago9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCShyZXZpc2lvbiAyNTMwNTkpCisrKyBTb3VyY2UvV2ViS2l0L1dlYktp
dC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCSh3b3JraW5nIGNvcHkpCkBAIC0xNjg5LDYgKzE2
ODksMTQgQEAKIAkJRTFEMjZBNTMxNzU5NjREOTAwOTVCRkQxIC8qIFdlYkNvbnRlbnRQcm9jZXNz
LnhpYiBpbiBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTFE
MjZBNEMxNzU5NjM0RTAwOTVCRkQxIC8qIFdlYkNvbnRlbnRQcm9jZXNzLnhpYiAqLzsgfTsKIAkJ
RTFFNTUyQzUxNkFFMDY1RjAwNEVENjUzIC8qIFNhbmRib3hJbml0aWFsaXphdGlvblBhcmFtZXRl
cnMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxRTU1
MkMzMTZBRTA2NUUwMDRFRDY1MyAvKiBTYW5kYm94SW5pdGlhbGl6YXRpb25QYXJhbWV0ZXJzLmgg
Ki87IH07CiAJCUUxRUU1M0UzMTFGOENGQzAwMENDQkVFNCAvKiBJbmplY3RlZEJ1bmRsZVBhZ2VF
ZGl0b3JDbGllbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEUxRUU1M0RDMTFGOENGOUYwMENDQkVFNCAvKiBJbmplY3RlZEJ1bmRsZVBhZ2VFZGl0b3JD
bGllbnQuaCAqLzsgfTsKKwkJRTM4NjZBREYyMzk3MzNGMDAwRjg4RkU5IC8qIFdlYlNoYXJlZERl
dmljZU9yaWVudGF0aW9uQ2xpZW50TWVzc2FnZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUzODY2QURFMjM5NzMzOEUwMEY4OEZFOSAvKiBXZWJTaGFy
ZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudE1lc3NhZ2VzLmggKi87IH07CisJCUUzODY2QUUwMjM5
NzMzRjUwMEY4OEZFOSAvKiBXZWJTaGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudE1lc3NhZ2VS
ZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBFMzg2NkFERDIzOTczMzhFMDBGODhGRTkgLyogV2ViU2hhcmVkRGV2aWNlT3JpZW50YXRpb25D
bGllbnRNZXNzYWdlUmVjZWl2ZXIuY3BwICovOyB9OworCQlFMzg2NkFFNTIzOTc0MDA0MDBGODhG
RTkgLyogV2ViU2hhcmVkRGV2aWNlT3JpZW50YXRpb25DbGllbnRQcm94eS5tbSBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUzODY2QUU0MjM5NzQwMDQwMEY4
OEZFOSAvKiBXZWJTaGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudFByb3h5Lm1tICovOyB9Owor
CQlFMzg2NkFFNzIzOTc0MDUzMDBGODhGRTkgLyogV2ViU2hhcmVkRGV2aWNlT3JpZW50YXRpb25D
bGllbnRQcm94eS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gRTM4NjZBRTYyMzk3NDA1MzAwRjg4RkU5IC8qIFdlYlNoYXJlZERldmljZU9yaWVudGF0aW9u
Q2xpZW50UHJveHkuaCAqLzsgfTsKKwkJRTM4NjZBRUIyMzk4NDQyMDAwRjg4RkU5IC8qIFdlYlNo
YXJlZERldmljZU9yaWVudGF0aW9uQ2xpZW50UHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTM4NjZBRTkyMzk4NDQx
RjAwRjg4RkU5IC8qIFdlYlNoYXJlZERldmljZU9yaWVudGF0aW9uQ2xpZW50UHJveHlNZXNzYWdl
UmVjZWl2ZXIuY3BwICovOyB9OworCQlFMzg2NkFFQzIzOTg0NDIwMDBGODhGRTkgLyogV2ViU2hh
cmVkRGV2aWNlT3JpZW50YXRpb25DbGllbnRQcm94eU1lc3NhZ2VzLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMzg2NkFFQTIzOTg0NDIwMDBGODhGRTkg
LyogV2ViU2hhcmVkRGV2aWNlT3JpZW50YXRpb25DbGllbnRQcm94eU1lc3NhZ2VzLmggKi87IH07
CisJCUUzOTYyOEREMjM5NjBDQzYwMDY1OEVDRCAvKiBXZWJTaGFyZWREZXZpY2VPcmllbnRhdGlv
bkNsaWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
RTM5NjI4REIyMzk2MENDNTAwNjU4RUNEIC8qIFdlYlNoYXJlZERldmljZU9yaWVudGF0aW9uQ2xp
ZW50LmggKi87IH07CisJCUUzOTYyOERFMjM5NjBDQzYwMDY1OEVDRCAvKiBXZWJTaGFyZWREZXZp
Y2VPcmllbnRhdGlvbkNsaWVudC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBFMzk2MjhEQzIzOTYwQ0M2MDA2NThFQ0QgLyogV2ViU2hhcmVkRGV2aWNl
T3JpZW50YXRpb25DbGllbnQuY3BwICovOyB9OwogCQlFNDEzRjU5RDFBQzFBREM0MDAzNDUzNjAg
LyogTmV0d29ya0NhY2hlRW50cnkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEU0MTNGNTlCMUFDMUFEQjYwMDM0NTM2MCAvKiBOZXR3b3JrQ2FjaGVFbnRy
eS5oICovOyB9OwogCQlFNDJFMDYxMDFBQTc1MjNCMDBCMTE2OTkgLyogTmV0d29ya0NhY2hlSU9D
aGFubmVsLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBF
NDJFMDYwQjFBQTc0NDBEMDBCMTE2OTkgLyogTmV0d29ya0NhY2hlSU9DaGFubmVsLmggKi87IH07
CiAJCUU0MkUwNjEyMUFBNzVBQkQwMEIxMTY5OSAvKiBOZXR3b3JrQ2FjaGVEYXRhLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFNDJFMDYxMTFBQTc1QUJE
MDBCMTE2OTkgLyogTmV0d29ya0NhY2hlRGF0YS5oICovOyB9OwpAQCAtNDc0OSw2ICs0NzU3LDE2
IEBACiAJCUUxRUU1M0RDMTFGOENGOUYwMENDQkVFNCAvKiBJbmplY3RlZEJ1bmRsZVBhZ2VFZGl0
b3JDbGllbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSW5qZWN0ZWRCdW5k
bGVQYWdlRWRpdG9yQ2xpZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUxRUU1
M0U2MTFGOENGRkIwMENDQkVFNCAvKiBJbmplY3RlZEJ1bmRsZVBhZ2VFZGl0b3JDbGllbnQuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSW5qZWN0ZWRCdW5kbGVQYWdl
RWRpdG9yQ2xpZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTM0MzlCNjMy
MzQ1NDYzQTAwMTFERTBCIC8qIE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbkluZm8uaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBuYW1lID0gTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uSW5mby5oOyBwYXRoID0gTmV0d29yay9O
ZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb25JbmZvLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCUUzODY2QUREMjM5NzMzOEUwMEY4OEZFOSAvKiBXZWJTaGFyZWREZXZpY2VPcmllbnRhdGlv
bkNsaWVudE1lc3NhZ2VSZWNlaXZlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IG5hbWUgPSBXZWJTaGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudE1lc3NhZ2VSZWNlaXZlci5j
cHA7IHBhdGggPSBEZXJpdmVkU291cmNlcy9XZWJLaXQyL1dlYlNoYXJlZERldmljZU9yaWVudGF0
aW9uQ2xpZW50TWVzc2FnZVJlY2VpdmVyLmNwcDsgc291cmNlVHJlZSA9IEJVSUxUX1BST0RVQ1RT
X0RJUjsgfTsKKwkJRTM4NjZBREUyMzk3MzM4RTAwRjg4RkU5IC8qIFdlYlNoYXJlZERldmljZU9y
aWVudGF0aW9uQ2xpZW50TWVzc2FnZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1l
ID0gV2ViU2hhcmVkRGV2aWNlT3JpZW50YXRpb25DbGllbnRNZXNzYWdlcy5oOyBwYXRoID0gRGVy
aXZlZFNvdXJjZXMvV2ViS2l0Mi9XZWJTaGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudE1lc3Nh
Z2VzLmg7IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7IH07CisJCUUzODY2QUU0MjM5
NzQwMDQwMEY4OEZFOSAvKiBXZWJTaGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudFByb3h5Lm1t
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBuYW1lID0gV2ViU2hhcmVkRGV2aWNl
T3JpZW50YXRpb25DbGllbnRQcm94eS5tbTsgcGF0aCA9IGlvcy9XZWJTaGFyZWREZXZpY2VPcmll
bnRhdGlvbkNsaWVudFByb3h5Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFMzg2
NkFFNjIzOTc0MDUzMDBGODhGRTkgLyogV2ViU2hhcmVkRGV2aWNlT3JpZW50YXRpb25DbGllbnRQ
cm94eS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBXZWJTaGFyZWREZXZpY2VP
cmllbnRhdGlvbkNsaWVudFByb3h5Lmg7IHBhdGggPSBpb3MvV2ViU2hhcmVkRGV2aWNlT3JpZW50
YXRpb25DbGllbnRQcm94eS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFMzg2NkFF
OTIzOTg0NDFGMDBGODhGRTkgLyogV2ViU2hhcmVkRGV2aWNlT3JpZW50YXRpb25DbGllbnRQcm94
eU1lc3NhZ2VSZWNlaXZlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUg
PSBXZWJTaGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudFByb3h5TWVzc2FnZVJlY2VpdmVyLmNw
cDsgcGF0aCA9IERlcml2ZWRTb3VyY2VzL1dlYktpdDIvV2ViU2hhcmVkRGV2aWNlT3JpZW50YXRp
b25DbGllbnRQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHA7IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9E
VUNUU19ESVI7IH07CisJCUUzODY2QUVBMjM5ODQ0MjAwMEY4OEZFOSAvKiBXZWJTaGFyZWREZXZp
Y2VPcmllbnRhdGlvbkNsaWVudFByb3h5TWVzc2FnZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBuYW1lID0gV2ViU2hhcmVkRGV2aWNlT3JpZW50YXRpb25DbGllbnRQcm94eU1lc3NhZ2Vz
Lmg7IHBhdGggPSBEZXJpdmVkU291cmNlcy9XZWJLaXQyL1dlYlNoYXJlZERldmljZU9yaWVudGF0
aW9uQ2xpZW50UHJveHlNZXNzYWdlcy5oOyBzb3VyY2VUcmVlID0gQlVJTFRfUFJPRFVDVFNfRElS
OyB9OworCQlFMzg2NkFFRDIzOTg0NzFBMDBGODhGRTkgLyogV2ViU2hhcmVkRGV2aWNlT3JpZW50
YXRpb25DbGllbnRQcm94eS5tZXNzYWdlcy5pbiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IG5hbWUgPSBXZWJT
aGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudFByb3h5Lm1lc3NhZ2VzLmluOyBwYXRoID0gaW9z
L1dlYlNoYXJlZERldmljZU9yaWVudGF0aW9uQ2xpZW50UHJveHkubWVzc2FnZXMuaW47IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUUzOTYyOERCMjM5NjBDQzUwMDY1OEVDRCAvKiBXZWJT
aGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBXZWJTaGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudC5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQlFMzk2MjhEQzIzOTYwQ0M2MDA2NThFQ0QgLyogV2ViU2hhcmVkRGV2
aWNlT3JpZW50YXRpb25DbGllbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gV2ViU2hhcmVkRGV2aWNlT3JpZW50YXRpb25DbGllbnQuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQlFMzk2MjhFNDIzOTcxRjM0MDA2NThFQ0QgLyogV2ViU2hhcmVkRGV2
aWNlT3JpZW50YXRpb25DbGllbnQubWVzc2FnZXMuaW4gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0g
V2ViU2hhcmVkRGV2aWNlT3JpZW50YXRpb25DbGllbnQubWVzc2FnZXMuaW47IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCUU0MDQ5MDcwMjFERTY1RjcwMDM3RjBEQiAvKiBTY3JvbGxlclBh
aXJNYWMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU2Nyb2xsZXJQYWlyTWFj
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUU0MDQ5MDcxMjFERTY1RjcwMDM3RjBE
QiAvKiBTY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlUmVtb3RlTWFjLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNjcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGlu
Z05vZGVSZW1vdGVNYWMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFNDA0OTA3
MjIxREU2NUY3MDAzN0YwREIgLyogU2Nyb2xsZXJQYWlyTWFjLm1tICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAub2JqY3BwOyBwYXRoID0gU2Nyb2xsZXJQYWlyTWFjLm1tOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwpAQCAtNTg1Nyw2ICs1ODc1LDkgQEAKIAkJCQkyRDI4RjNFMzE4ODVDQ0Mx
MDA0QjlFQUUgLyogV2ViRnJhbWVMb2FkZXJDbGllbnRJT1MubW0gKi8sCiAJCQkJQTFDNTEyQzYx
OTA2NTZFNTAwNDQ4OTE0IC8qIFdlYlByZXZpZXdMb2FkZXJDbGllbnQuY3BwICovLAogCQkJCUEx
QzUxMkM3MTkwNjU2RTUwMDQ0ODkxNCAvKiBXZWJQcmV2aWV3TG9hZGVyQ2xpZW50LmggKi8sCisJ
CQkJRTM5NjI4REMyMzk2MENDNjAwNjU4RUNEIC8qIFdlYlNoYXJlZERldmljZU9yaWVudGF0aW9u
Q2xpZW50LmNwcCAqLywKKwkJCQlFMzk2MjhEQjIzOTYwQ0M1MDA2NThFQ0QgLyogV2ViU2hhcmVk
RGV2aWNlT3JpZW50YXRpb25DbGllbnQuaCAqLywKKwkJCQlFMzk2MjhFNDIzOTcxRjM0MDA2NThF
Q0QgLyogV2ViU2hhcmVkRGV2aWNlT3JpZW50YXRpb25DbGllbnQubWVzc2FnZXMuaW4gKi8sCiAJ
CQkpOwogCQkJbmFtZSA9IGlvczsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CkBAIC02MTQ0
LDYgKzYxNjUsOSBAQAogCQkJCUU1QkVGNjgxMjEzMEM0N0YwMEYzMTExMSAvKiBXZWJEYXRhTGlz
dFN1Z2dlc3Rpb25zRHJvcGRvd25JT1MubW0gKi8sCiAJCQkJMkRBOTQ0QUIxODg0RTlCQTAwRUQ4
NkRCIC8qIFdlYlBhZ2VQcm94eUlPUy5tbSAqLywKIAkJCQkyREE5NDRBQzE4ODRFOUJBMDBFRDg2
REIgLyogV2ViUHJvY2Vzc1Byb3h5SU9TLm1tICovLAorCQkJCUUzODY2QUU2MjM5NzQwNTMwMEY4
OEZFOSAvKiBXZWJTaGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudFByb3h5LmggKi8sCisJCQkJ
RTM4NjZBRUQyMzk4NDcxQTAwRjg4RkU5IC8qIFdlYlNoYXJlZERldmljZU9yaWVudGF0aW9uQ2xp
ZW50UHJveHkubWVzc2FnZXMuaW4gKi8sCisJCQkJRTM4NjZBRTQyMzk3NDAwNDAwRjg4RkU5IC8q
IFdlYlNoYXJlZERldmljZU9yaWVudGF0aW9uQ2xpZW50UHJveHkubW0gKi8sCiAJCQkJMEZDQjRF
MzgxOEJCRTA0NDAwMEZDRkM5IC8qIFdLQWN0aW9uU2hlZXQuaCAqLywKIAkJCQkwRkNCNEUzOTE4
QkJFMDQ0MDAwRkNGQzkgLyogV0tBY3Rpb25TaGVldC5tbSAqLywKIAkJCQkwRkNCNEUzQTE4QkJF
MDQ0MDAwRkNGQzkgLyogV0tBY3Rpb25TaGVldEFzc2lzdGFudC5oICovLApAQCAtOTAyNyw2ICs5
MDUxLDEwIEBACiAJCQkJNTFGMDYwREQxNjU0MzE3NTAwRjMyODFGIC8qIFdlYlJUQ01vbml0b3JN
ZXNzYWdlUmVjZWl2ZXIuY3BwICovLAogCQkJCTUxRjA2MEREMTY1NDMxNzUwMEYzMjgyQyAvKiBX
ZWJSVENSZXNvbHZlck1lc3NhZ2VSZWNlaXZlci5jcHAgKi8sCiAJCQkJNTFGMDYwREQxNjU0MzE3
NTAwRjMyODFDIC8qIFdlYlJUQ1NvY2tldE1lc3NhZ2VSZWNlaXZlci5jcHAgKi8sCisJCQkJRTM4
NjZBREQyMzk3MzM4RTAwRjg4RkU5IC8qIFdlYlNoYXJlZERldmljZU9yaWVudGF0aW9uQ2xpZW50
TWVzc2FnZVJlY2VpdmVyLmNwcCAqLywKKwkJCQlFMzg2NkFERTIzOTczMzhFMDBGODhGRTkgLyog
V2ViU2hhcmVkRGV2aWNlT3JpZW50YXRpb25DbGllbnRNZXNzYWdlcy5oICovLAorCQkJCUUzODY2
QUU5MjM5ODQ0MUYwMEY4OEZFOSAvKiBXZWJTaGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudFBy
b3h5TWVzc2FnZVJlY2VpdmVyLmNwcCAqLywKKwkJCQlFMzg2NkFFQTIzOTg0NDIwMDBGODhGRTkg
LyogV2ViU2hhcmVkRGV2aWNlT3JpZW50YXRpb25DbGllbnRQcm94eU1lc3NhZ2VzLmggKi8sCiAJ
CQkJNDFGMDYwREQxNjU0MzE3NTAwRjMyODFDIC8qIFdlYlNvY2tldENoYW5uZWxNZXNzYWdlUmVj
ZWl2ZXIuY3BwICovLAogCQkJCTVDMEIxNzc2MUU3Qzg3OUMwMEU5MTIzQyAvKiBXZWJTb2NrZXRT
dHJlYW1NZXNzYWdlUmVjZWl2ZXIuY3BwICovLAogCQkJCTVDMEIxNzc3MUU3Qzg3OUMwMEU5MTIz
QyAvKiBXZWJTb2NrZXRTdHJlYW1NZXNzYWdlcy5oICovLApAQCAtMTAwOTEsNiArMTAxMTksMTAg
QEAKIAkJCQk3QzM2MUQ3MzE5MjdGQTM2MDAzNkE1OUQgLyogV2ViU2NyaXB0TWVzc2FnZUhhbmRs
ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUQzQjk0ODQ5MTFGRjRCNjUwMDAzMkIzOSAvKiBXZWJT
ZWFyY2hQb3B1cE1lbnUuaCBpbiBIZWFkZXJzICovLAogCQkJCTUxQkVCNjJDMUYzQTVBRDcwMDUw
MjlCOSAvKiBXZWJTZXJ2aWNlV29ya2VyUHJvdmlkZXIuaCBpbiBIZWFkZXJzICovLAorCQkJCUUz
OTYyOEREMjM5NjBDQzYwMDY1OEVDRCAvKiBXZWJTaGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVu
dC5oIGluIEhlYWRlcnMgKi8sCisJCQkJRTM4NjZBREYyMzk3MzNGMDAwRjg4RkU5IC8qIFdlYlNo
YXJlZERldmljZU9yaWVudGF0aW9uQ2xpZW50TWVzc2FnZXMuaCBpbiBIZWFkZXJzICovLAorCQkJ
CUUzODY2QUU3MjM5NzQwNTMwMEY4OEZFOSAvKiBXZWJTaGFyZWREZXZpY2VPcmllbnRhdGlvbkNs
aWVudFByb3h5LmggaW4gSGVhZGVycyAqLywKKwkJCQlFMzg2NkFFQzIzOTg0NDIwMDBGODhGRTkg
LyogV2ViU2hhcmVkRGV2aWNlT3JpZW50YXRpb25DbGllbnRQcm94eU1lc3NhZ2VzLmggaW4gSGVh
ZGVycyAqLywKIAkJCQk1QzhERDM4MDFGRTQ1MjE2MDBGMkE1NTYgLyogV2Vic2l0ZUF1dG9wbGF5
UG9saWN5LmggaW4gSGVhZGVycyAqLywKIAkJCQkxQTQ4MzJENzFBOUNERjk2MDA4QjRERkUgLyog
V2Vic2l0ZURhdGEuaCBpbiBIZWFkZXJzICovLAogCQkJCTFBNDgzMkQxMUE5QkRDMkYwMDhCNERG
RSAvKiBXZWJzaXRlRGF0YVJlY29yZC5oIGluIEhlYWRlcnMgKi8sCkBAIC0xMTYyNCw2ICsxMTY1
NiwxMCBAQAogCQkJCTUxRjA2MEUxMTY1NDMxODUwMEYzMjgxRiAvKiBXZWJSVENNb25pdG9yTWVz
c2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTUxRjA2MEUxMTY1NDMxODUwMEYz
MjgyQyAvKiBXZWJSVENSZXNvbHZlck1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQk1MUYwNjBFMTE2NTQzMTg1MDBGMzI4MUMgLyogV2ViUlRDU29ja2V0TWVzc2FnZVJlY2Vp
dmVyLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUUzOTYyOERFMjM5NjBDQzYwMDY1OEVDRCAvKiBX
ZWJTaGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudC5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlF
Mzg2NkFFMDIzOTczM0Y1MDBGODhGRTkgLyogV2ViU2hhcmVkRGV2aWNlT3JpZW50YXRpb25DbGll
bnRNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJRTM4NjZBRTUyMzk3NDAw
NDAwRjg4RkU5IC8qIFdlYlNoYXJlZERldmljZU9yaWVudGF0aW9uQ2xpZW50UHJveHkubW0gaW4g
U291cmNlcyAqLywKKwkJCQlFMzg2NkFFQjIzOTg0NDIwMDBGODhGRTkgLyogV2ViU2hhcmVkRGV2
aWNlT3JpZW50YXRpb25DbGllbnRQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQk0MUYwNjBFMTE2NTQzMTg1MDBGMzI4MUMgLyogV2ViU29ja2V0Q2hhbm5lbE1lc3Nh
Z2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk1QzBCMTc3OTFFN0M4ODIxMDBFOTEy
M0MgLyogV2ViU29ja2V0U3RyZWFtTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCTQxMjg3RDRFMjI1RDFFQ0IwMDlBM0UyNiAvKiBXZWJTb2NrZXRUYXNrQ29jb2EubW0gaW4g
U291cmNlcyAqLywKSW5kZXg6IFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9y
dC9XZWJTaGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudC5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlNoYXJlZERldmljZU9yaWVu
dGF0aW9uQ2xpZW50LmNwcAkobm9uZXhpc3RlbnQpCisrKyBTb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvV2ViU2hhcmVkRGV2aWNlT3JpZW50YXRpb25DbGllbnQuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNzUgQEAKKy8qCisqIENvcHlyaWdodCAoQykgMjAxOSBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisqCisqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyogYXJlIG1ldDoKKyogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisqCisqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyogQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisqIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IKKyogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YKKyogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisqIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
CisqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpCisqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldlYlNo
YXJlZERldmljZU9yaWVudGF0aW9uQ2xpZW50LmgiCisKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZ
KSAmJiBFTkFCTEUoREVWSUNFX09SSUVOVEFUSU9OKQorCisjaW5jbHVkZSAiV2ViUGFnZS5oIgor
I2luY2x1ZGUgIldlYlByb2Nlc3MuaCIKKyNpbmNsdWRlICJXZWJTaGFyZWREZXZpY2VPcmllbnRh
dGlvbkNsaWVudE1lc3NhZ2VzLmgiCisjaW5jbHVkZSAiV2ViU2hhcmVkRGV2aWNlT3JpZW50YXRp
b25DbGllbnRQcm94eU1lc3NhZ2VzLmgiCisKKyNpbmNsdWRlIDxXZWJDb3JlL1dlYkNvcmVNb3Rp
b25NYW5hZ2VyQ2xpZW50Lmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitXZWJTaGFyZWREZXZp
Y2VPcmllbnRhdGlvbkNsaWVudDo6V2ViU2hhcmVkRGV2aWNlT3JpZW50YXRpb25DbGllbnQoV2Vi
UGFnZSYgcGFnZSkKKyAgICA6IG1fcGFnZShtYWtlV2Vha1B0cihwYWdlKSkKK3sKKyAgICBXZWJQ
cm9jZXNzOjpzaW5nbGV0b24oKS5hZGRNZXNzYWdlUmVjZWl2ZXIoTWVzc2FnZXM6OldlYlNoYXJl
ZERldmljZU9yaWVudGF0aW9uQ2xpZW50OjptZXNzYWdlUmVjZWl2ZXJOYW1lKCksIHBhZ2UuaWRl
bnRpZmllcigpLCAqdGhpcyk7Cit9CisKK1dlYlNoYXJlZERldmljZU9yaWVudGF0aW9uQ2xpZW50
Ojp+V2ViU2hhcmVkRGV2aWNlT3JpZW50YXRpb25DbGllbnQoKQoreworICAgIFdlYlByb2Nlc3M6
OnNpbmdsZXRvbigpLnJlbW92ZU1lc3NhZ2VSZWNlaXZlcihNZXNzYWdlczo6V2ViU2hhcmVkRGV2
aWNlT3JpZW50YXRpb25DbGllbnQ6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSk7Cit9CisKK3ZvaWQg
V2ViU2hhcmVkRGV2aWNlT3JpZW50YXRpb25DbGllbnQ6OnN0YXJ0VXBkYXRpbmcoV2ViQ29yZTo6
V2ViQ29yZU1vdGlvbk1hbmFnZXJDbGllbnQmIGNsaWVudCkKK3sKKyAgICBpZiAobV9jbGllbnRz
LmlzRW1wdHkoKSAmJiBtX3BhZ2UpCisgICAgICAgIG1fcGFnZS0+c2VuZChNZXNzYWdlczo6V2Vi
U2hhcmVkRGV2aWNlT3JpZW50YXRpb25DbGllbnRQcm94eTo6U3RhcnRVcGRhdGluZ0RldmljZU9y
aWVudGF0aW9uKCkpOworICAgIG1fY2xpZW50cy5hZGQoJmNsaWVudCk7Cit9CisKK3ZvaWQgV2Vi
U2hhcmVkRGV2aWNlT3JpZW50YXRpb25DbGllbnQ6OnN0b3BVcGRhdGluZyhXZWJDb3JlOjpXZWJD
b3JlTW90aW9uTWFuYWdlckNsaWVudCYgY2xpZW50KQoreworICAgIGlmIChtX2NsaWVudHMuaXNF
bXB0eSgpKQorICAgICAgICByZXR1cm47CisgICAgbV9jbGllbnRzLnJlbW92ZSgmY2xpZW50KTsK
KyAgICBpZiAobV9jbGllbnRzLmlzRW1wdHkoKSAmJiBtX3BhZ2UpCisgICAgICAgIG1fcGFnZS0+
c2VuZChNZXNzYWdlczo6V2ViU2hhcmVkRGV2aWNlT3JpZW50YXRpb25DbGllbnRQcm94eTo6U3Rv
cFVwZGF0aW5nRGV2aWNlT3JpZW50YXRpb24oKSk7Cit9CisKK3ZvaWQgV2ViU2hhcmVkRGV2aWNl
T3JpZW50YXRpb25DbGllbnQ6OmRldmljZU9yaWVudGF0aW9uQ2hhbmdlZChkb3VibGUgYWxwaGEs
IGRvdWJsZSBiZXRhLCBkb3VibGUgZ2FtbWEsIGRvdWJsZSBjb21wYXNzSGVhZGluZywgZG91Ymxl
IGNvbXBhc3NBY2N1cmFjeSkKK3sKKyAgICBmb3IgKGF1dG8qIGNsaWVudCA6IGNvcHlUb1ZlY3Rv
cihtX2NsaWVudHMpKQorICAgICAgICBjbGllbnQtPm9yaWVudGF0aW9uQ2hhbmdlZChhbHBoYSwg
YmV0YSwgZ2FtbWEsIGNvbXBhc3NIZWFkaW5nLCBjb21wYXNzQWNjdXJhY3kpOworfQorCit9CisK
KyNlbmRpZiAvLyBQTEFURk9STShJT1NfRkFNSUxZKSAmJiBFTkFCTEUoREVWSUNFX09SSUVOVEFU
SU9OKQpJbmRleDogU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlNo
YXJlZERldmljZU9yaWVudGF0aW9uQ2xpZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlNoYXJlZERldmljZU9yaWVudGF0aW9uQ2xp
ZW50LmgJKG5vbmV4aXN0ZW50KQorKysgU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0L1dlYlNoYXJlZERldmljZU9yaWVudGF0aW9uQ2xpZW50LmgJKHdvcmtpbmcgY29weSkK
QEAgLTAsMCArMSw2MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOSBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAi
TWVzc2FnZVJlY2VpdmVyLmgiCisjaW5jbHVkZSAiV2ViUGFnZS5oIgorCisjaW5jbHVkZSA8V2Vi
Q29yZS9TaGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudC5oPgorCisjaW5jbHVkZSA8d3RmL0hh
c2hTZXQuaD4KKyNpbmNsdWRlIDx3dGYvV2Vha1B0ci5oPgorCisjaWYgUExBVEZPUk0oSU9TX0ZB
TUlMWSkgJiYgRU5BQkxFKERFVklDRV9PUklFTlRBVElPTikKKworbmFtZXNwYWNlIFdlYktpdCB7
CisKK2NsYXNzIFdlYlNoYXJlZERldmljZU9yaWVudGF0aW9uQ2xpZW50IGZpbmFsIDogcHVibGlj
IFdlYkNvcmU6OlNoYXJlZERldmljZU9yaWVudGF0aW9uQ2xpZW50LCBwcml2YXRlIElQQzo6TWVz
c2FnZVJlY2VpdmVyIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmPFdlYlNoYXJlZERldmljZU9y
aWVudGF0aW9uQ2xpZW50PiBjcmVhdGUoV2ViUGFnZSYgcGFnZSkgeyByZXR1cm4gYWRvcHRSZWYo
Km5ldyBXZWJTaGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudChwYWdlKSk7fQorCitwcml2YXRl
OgorICAgIFdlYlNoYXJlZERldmljZU9yaWVudGF0aW9uQ2xpZW50KFdlYlBhZ2UmKTsKKyAgICB+
V2ViU2hhcmVkRGV2aWNlT3JpZW50YXRpb25DbGllbnQoKTsKKworICAgIC8vIFdlYkNvcmU6OlNo
YXJlZERldmljZU9yaWVudGF0aW9uQ2xpZW50CisgICAgdm9pZCBzdGFydFVwZGF0aW5nKFdlYkNv
cmU6OldlYkNvcmVNb3Rpb25NYW5hZ2VyQ2xpZW50JikgZmluYWw7CisgICAgdm9pZCBzdG9wVXBk
YXRpbmcoV2ViQ29yZTo6V2ViQ29yZU1vdGlvbk1hbmFnZXJDbGllbnQmKSBmaW5hbDsKKyAgICB2
b2lkIGRldmljZU9yaWVudGF0aW9uQ2hhbmdlZChkb3VibGUsIGRvdWJsZSwgZG91YmxlLCBkb3Vi
bGUsIGRvdWJsZSkgZmluYWw7CisKKyAgICAvLyBJUEM6Ok1lc3NhZ2VSZWNlaXZlci4KKyAgICB2
b2lkIGRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6RGVjb2RlciYpIG92
ZXJyaWRlOworCisgICAgV2Vha1B0cjxXZWJQYWdlPiBtX3BhZ2U7CisgICAgSGFzaFNldDxXZWJD
b3JlOjpXZWJDb3JlTW90aW9uTWFuYWdlckNsaWVudCo+IG1fY2xpZW50czsKK307CisKK30KKwor
I2VuZGlmIC8vIFBMQVRGT1JNKElPU19GQU1JTFkpICYmIEVOQUJMRShERVZJQ0VfT1JJRU5UQVRJ
T04pCkluZGV4OiBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViU2hh
cmVkRGV2aWNlT3JpZW50YXRpb25DbGllbnQubWVzc2FnZXMuaW4KPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlNoYXJlZERldmljZU9yaWVu
dGF0aW9uQ2xpZW50Lm1lc3NhZ2VzLmluCShub25leGlzdGVudCkKKysrIFNvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJTaGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVu
dC5tZXNzYWdlcy5pbgkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDI3IEBACisjIENvcHlyaWdo
dCAoQykgMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjCisjIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyMgYXJlIG1ldDoKKyMgMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisjIDIu
ICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorIyAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorIyAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyMKKyMgVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJyBBTkQKKyMgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyMgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQor
IyBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklC
VVRPUlMgQkUgTElBQkxFIEZPUgorIyBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMCisjIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9S
CisjIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1Mg
SU5URVJSVVBUSU9OKSBIT1dFVkVSCisjIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksCisjIE9SIFRPUlQg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFCisjIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKSAm
JiBFTkFCTEUoREVWSUNFX09SSUVOVEFUSU9OKQorbWVzc2FnZXMgLT4gV2ViU2hhcmVkRGV2aWNl
T3JpZW50YXRpb25DbGllbnQgeworICAgIERldmljZU9yaWVudGF0aW9uQ2hhbmdlZChkb3VibGUg
YWxwaGEsIGRvdWJsZSBiZXRhLCBkb3VibGUgZ2FtbWEsIGRvdWJsZSBjb21wYXNzSGVhZGluZywg
ZG91YmxlIGNvbXBhc3NBY2N1cmFjeSkKK30KKyNlbmRpZgpJbmRleDogU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAJKHJldmlzaW9uIDI1MzA1OSkKKysrIFNv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0zMDcsNiArMzA3LDEwIEBACiAjaW5jbHVkZSA8V2ViQ29yZS9BdXRoZW50aWNhdG9yQ29v
cmRpbmF0b3IuaD4KICNlbmRpZgogCisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkgJiYgRU5BQkxF
KERFVklDRV9PUklFTlRBVElPTikKKyNpbmNsdWRlICJXZWJTaGFyZWREZXZpY2VPcmllbnRhdGlv
bkNsaWVudC5oIgorI2VuZGlmCisKIG5hbWVzcGFjZSBXZWJLaXQgewogdXNpbmcgbmFtZXNwYWNl
IEpTQzsKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwpAQCAtNTAxLDYgKzUwNSwxMCBAQCBXZWJQ
YWdlOjpXZWJQYWdlKFBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgCiAjaWYgRU5BQkxFKEFQUExJQ0FU
SU9OX01BTklGRVNUKQogICAgIHBhZ2VDb25maWd1cmF0aW9uLmFwcGxpY2F0aW9uTWFuaWZlc3Qg
PSBwYXJhbWV0ZXJzLmFwcGxpY2F0aW9uTWFuaWZlc3Q7CiAjZW5kaWYKKyAgICAKKyNpZiBQTEFU
Rk9STShJT1NfRkFNSUxZKSAmJiBFTkFCTEUoREVWSUNFX09SSUVOVEFUSU9OKQorICAgIHBhZ2VD
b25maWd1cmF0aW9uLnNoYXJlZERldmljZU9yaWVudGF0aW9uQ2xpZW50ID0gV2ViU2hhcmVkRGV2
aWNlT3JpZW50YXRpb25DbGllbnQ6OmNyZWF0ZSgqdGhpcyk7CisjZW5kaWYKIAogICAgIG1fcGFn
ZSA9IG1ha2VVbmlxdWU8UGFnZT4oV1RGTW92ZShwYWdlQ29uZmlndXJhdGlvbikpOwogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>384837</attachid>
            <date>2019-12-04 12:57:42 -0800</date>
            <delta_ts>2019-12-04 14:55:00 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-204720-20191204125742.patch</filename>
            <type>text/plain</type>
            <size>60928</size>
            <attacher name="Per Arne Vollan">pvollan</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDI1MzA1OSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQ4IEBACisyMDE5LTEyLTA0ICBQZXIgQXJu
ZSBWb2xsYW4gIDxwdm9sbGFuQGFwcGxlLmNvbT4KKworICAgICAgICBbaU9TXSBDYWxscyB0byBk
ZXZpY2Ugb3JpZW50YXRpb24gQVBJIHNob3VsZCBiZSBkb25lIGluIHRoZSBVSSBwcm9jZXNzCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDQ3MjAKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGUgZGV2aWNl
IG9yaWVudGF0aW9uIEFQSSBvbiBpT1MgaXMgY29tbXVuaWNhdGluZyB3aXRoIGxvY2F0aW9uZC4g
U2luY2UgbWFjaCBsb29rdXAgdG8gdGhpcyBkYWVtb24KKyAgICAgICAgd2lsbCBiZSBjbG9zZWQs
IHRoZSBjYWxscyB0byB0aGlzIEFQSSBzaG91bGQgYmUgbW92ZWQgZnJvbSB0aGUgV2ViQ29udGVu
dCBwcm9jZXNzIHRvIHRoZSBVSSBwcm9jZXNzLgorICAgICAgICBUaGlzIHBhdGNoIGltcGxlbWVu
dHMgZm9yd2FyZGluZyBvZiB0aGUgZGV2aWNlIG9yaWVudGF0aW9uIHJlcXVlc3RzIHRvIHRoZSBV
SSBwcm9jZXNzIHRocm91Z2ggYSBuZXcKKyAgICAgICAgY2xhc3MsIFNoYXJlZERldmljZU9yaWVu
dGF0aW9uQ2xpZW50LCB3aGljaCBpcyBzdWJjbGFzc2VkIGJ5IFdlYlNoYXJlZERldmljZU9yaWVu
dGF0aW9uQ2xpZW50IGluCisgICAgICAgIG1vZGVybiBXZWJLaXQuIFRoaXMgY2xhc3MgaW1wbGVt
ZW50cyBmb3J3YXJkaW5nIG9mIHRoZSByZXF1ZXN0cyB0byB0aGUgVUkgcHJvY2VzcywgYW5kIHJl
Y2VpdmVzCisgICAgICAgIGRldmljZSBvcmllbnRhdGlvbiB1cGRhdGVzIGZyb20gdGhlIFVJIHBy
b2Nlc3MuIEFuIGluc3RhbmNlIG9mIHRoaXMgY2xhc3Mgd2lsbCBiZSBzaGFyZWQgYnkgYWxsCisg
ICAgICAgIGRldmljZSBvcmllbnRhdGlvbiBjbGllbnRzIG9uIGEgcGFnZSwgYW5kIHBhc3NlZCBh
cyBwYXJ0IG9mIHRoZSBwYWdlIGNvbmZpZ3VyYXRpb24gcGFyYW1ldGVycy4gT24KKyAgICAgICAg
dGhlIFVJIHByb2Nlc3Mgc2lkZSwgYSBuZXcgY2xhc3MgV2ViU2hhcmVkRGV2aWNlT3JpZW50YXRp
b25DbGllbnRQcm94eSBhdHRhY2hlZCB0byB0aGUgV2ViIHBhZ2UKKyAgICAgICAgcHJveHkgaXMg
dGFraW5nIGNhcmUgb2YgY2FsbGluZyB0aGUgZGV2aWNlIG9yaWVudGF0aW9uIEFQSSB0aHJvdWdo
IHRoZSBleGlzdGluZyBXZWJDb3JlTW90aW9uTWFuYWdlcgorICAgICAgICBPYmplY3RpdmUtQyBj
bGFzcywgYW5kIHNlbmQgZGV2aWNlIG9yaWVudGF0aW9uIHVwZGF0ZXMgYmFjayB0byB0aGUgV2Vi
IHByb2Nlc3MuIEFsc28sIHVzZSBhIHdlYWsKKyAgICAgICAgaGFzaCBzZXQgb2Ygb3JpZW50YXRp
b24gY2xpZW50cyBpbiBXZWJDb3JlTW90aW9uTWFuYWdlci4KKworICAgICAgICAqIFdlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBkb20vRGV2aWNlT3JpZW50YXRp
b25DbGllbnQuaDoKKyAgICAgICAgKiBkb20vRG9jdW1lbnQuY3BwOgorICAgICAgICAqIHBhZ2Uv
UGFnZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjptX3NoYXJlZERldmljZU9yaWVudGF0aW9uQ2xp
ZW50KToKKyAgICAgICAgKFdlYkNvcmU6Om1fYXBwbGljYXRpb25NYW5pZmVzdCk6IERlbGV0ZWQu
CisgICAgICAgICogcGFnZS9QYWdlLmg6CisgICAgICAgIChXZWJDb3JlOjpQYWdlOjpzaGFyZWRE
ZXZpY2VPcmllbnRhdGlvbkNsaWVudCBjb25zdCk6CisgICAgICAgICogcGFnZS9QYWdlQ29uZmln
dXJhdGlvbi5oOgorICAgICAgICAqIHBsYXRmb3JtL2lvcy9EZXZpY2VPcmllbnRhdGlvbkNsaWVu
dElPUy5oOgorICAgICAgICAqIHBsYXRmb3JtL2lvcy9EZXZpY2VPcmllbnRhdGlvbkNsaWVudElP
Uy5tbToKKyAgICAgICAgKFdlYkNvcmU6OkRldmljZU9yaWVudGF0aW9uQ2xpZW50SU9TOjpEZXZp
Y2VPcmllbnRhdGlvbkNsaWVudElPUyk6CisgICAgICAgIChXZWJDb3JlOjpEZXZpY2VPcmllbnRh
dGlvbkNsaWVudElPUzo6c3RhcnRVcGRhdGluZyk6CisgICAgICAgIChXZWJDb3JlOjpEZXZpY2VP
cmllbnRhdGlvbkNsaWVudElPUzo6c3RvcFVwZGF0aW5nKToKKyAgICAgICAgKFdlYkNvcmU6OkRl
dmljZU9yaWVudGF0aW9uQ2xpZW50SU9TOjpkZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXJEZXN0
cm95ZWQpOgorICAgICAgICAqIHBsYXRmb3JtL2lvcy9TaGFyZWREZXZpY2VPcmllbnRhdGlvbkNs
aWVudC5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlNoYXJlZERldmljZU9yaWVudGF0aW9u
Q2xpZW50Ojp+U2hhcmVkRGV2aWNlT3JpZW50YXRpb25DbGllbnQpOgorICAgICAgICAqIHBsYXRm
b3JtL2lvcy9XZWJDb3JlTW90aW9uTWFuYWdlci5oOgorICAgICAgICAqIHBsYXRmb3JtL2lvcy9X
ZWJDb3JlTW90aW9uTWFuYWdlci5tbToKKyAgICAgICAgKC1bV2ViQ29yZU1vdGlvbk1hbmFnZXIg
YWRkT3JpZW50YXRpb25DbGllbnQ6XSk6CisgICAgICAgICgtW1dlYkNvcmVNb3Rpb25NYW5hZ2Vy
IHJlbW92ZU9yaWVudGF0aW9uQ2xpZW50Ol0pOgorICAgICAgICAoLVtXZWJDb3JlTW90aW9uTWFu
YWdlciBjaGVja0NsaWVudFN0YXR1c10pOgorICAgICAgICAoLVtXZWJDb3JlTW90aW9uTWFuYWdl
ciBzZW5kTW90aW9uRGF0YTp3aXRoSGVhZGluZzpdKToKKyAgICAgICAgKiBwbGF0Zm9ybS9pb3Mv
V2ViQ29yZU1vdGlvbk1hbmFnZXJDbGllbnQuaDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpX
ZWJDb3JlTW90aW9uTWFuYWdlckNsaWVudDo6fldlYkNvcmVNb3Rpb25NYW5hZ2VyQ2xpZW50KToK
KwogMjAxOS0xMi0wMyAgVGltIEhvcnRvbiAgPHRpbW90aHlfaG9ydG9uQGFwcGxlLmNvbT4KIAog
ICAgICAgICBTdGFydCBhZGRpbmcgZW5jb2Rpbmcgc3VwcG9ydCBmb3IgRGlzcGxheUxpc3QgYW5k
IHNvbWUgRGlzcGxheUxpc3RJdGVtcwpJbmRleDogU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL1dlYkNv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkocmV2aXNpb24gMjUzMDU5KQorKysgU291cmNl
L1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCSh3b3JraW5nIGNvcHkp
CkBAIC05MDgsNyArOTA4LDcgQEAKIAkJMzEzNTkxMEExRTdEREM3MzAwRjMwNjMwIC8qIFJUQ1Nk
cFR5cGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMx
MzU5MTA0MUU3RERDNjAwMEYzMDYzMCAvKiBSVENTZHBUeXBlLmggKi87IH07CiAJCTMxMzU5MTBC
MUU3RERDNzMwMEYzMDYzMCAvKiBSVENTaWduYWxpbmdTdGF0ZS5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzEzNTkxMDUxRTdEREM2MDAwRjMwNjMwIC8q
IFJUQ1NpZ25hbGluZ1N0YXRlLmggKi87IH07CiAJCTMxM0JDRTFDMjM1RTNCRTUwMEZDMzlFNSAv
KiBFbGVtZW50Q29udGV4dC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gMzEzQkNFMUIyMzVFM0JEQjAwRkMzOUU1IC8qIEVsZW1lbnRDb250ZXh0LmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKLQkJMzE0MDM3OUIx
MjRCRUE3RjAwQUY0MEU0IC8qIFdlYkNvcmVNb3Rpb25NYW5hZ2VyLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzMTQwMzc5NzEyNEJFQTdGMDBBRjQwRTQg
LyogV2ViQ29yZU1vdGlvbk1hbmFnZXIuaCAqLzsgfTsKKwkJMzE0MDM3OUIxMjRCRUE3RjAwQUY0
MEU0IC8qIFdlYkNvcmVNb3Rpb25NYW5hZ2VyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSAzMTQwMzc5NzEyNEJFQTdGMDBBRjQwRTQgLyogV2ViQ29yZU1v
dGlvbk1hbmFnZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OwogCQkzMTQwMzc5RDEyNEJFQTdGMDBBRjQwRTQgLyogRGV2aWNlT3JpZW50YXRpb25DbGll
bnRJT1MuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMx
NDAzNzk5MTI0QkVBN0YwMEFGNDBFNCAvKiBEZXZpY2VPcmllbnRhdGlvbkNsaWVudElPUy5oICov
OyB9OwogCQkzMTQwQzUyMDFGREYxNTFBMDBEMkE4NzMgLyogT2Zmc2NyZWVuQ2FudmFzUmVuZGVy
aW5nQ29udGV4dDJELmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSAzMTQwQzUxRTFGREYxNTFBMDBEMkE4NzMgLyogT2Zmc2NyZWVuQ2FudmFzUmVuZGVyaW5n
Q29udGV4dDJELmggKi87IH07CiAJCTMxNDBDNTI0MUZERjMxODcwMEQyQTg3MyAvKiBDYW52YXNS
ZW5kZXJpbmdDb250ZXh0MkRCYXNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSAzMTQwQzUyMjFGREYzMTg2MDBEMkE4NzMgLyogQ2FudmFzUmVuZGVyaW5n
Q29udGV4dDJEQmFzZS5oICovOyB9OwpAQCAtNDc3Niw2ICs0Nzc2LDggQEAKIAkJRTM1ODAyQjYx
REM4NDM1RDAwQTk3NzNDIC8qIERPTUpJVElETFR5cGVGaWx0ZXIuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUzNTgwMkI1MURDODQzNTgwMEE5NzczQyAv
KiBET01KSVRJRExUeXBlRmlsdGVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKIAkJRTM3N0ZFNEQxREFERTE2NTAwQ0REMDI1IC8qIE5vZGVDb25zdGFu
dHMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUzRDA0
OTkzMURBREMwNDUwMDcxOEYzQyAvKiBOb2RlQ29uc3RhbnRzLmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJRTM3Qzg2NTAxRUI2M0UzRjAwODdDNkNB
IC8qIEpTRE9NUHJvbWlzZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gRTM3Qzg2NEYxRUI2M0UyRDAwODdDNkNBIC8qIEpTRE9NUHJvbWlzZS5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCUUzOTYyOEJGMjM5
NTcyOEYwMDY1OEVDRCAvKiBTaGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudC5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTM5NjI4QkQyMzk1NzI4RTAw
NjU4RUNEIC8qIFNoYXJlZERldmljZU9yaWVudGF0aW9uQ2xpZW50LmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJRTM5NjI4QzEyMzk1NzQzMTAwNjU4
RUNEIC8qIFdlYkNvcmVNb3Rpb25NYW5hZ2VyQ2xpZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMzk2MjhDMDIzOTU3NDMwMDA2NThFQ0QgLyogV2Vi
Q29yZU1vdGlvbk1hbmFnZXJDbGllbnQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQ
cml2YXRlLCApOyB9OyB9OwogCQlFM0E3NzY2NzFEQzg1RDI4MDBCNjkwRDggLyogRE9NSklUSURM
Q29udmVydC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
RTNBNzc2NjUxREM4NUQyMjAwQjY5MEQ4IC8qIERPTUpJVElETENvbnZlcnQuaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlFM0E3NzY2ODFEQzg1RDI4
MDBCNjkwRDggLyogRE9NSklUSURMVHlwZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gRTNBNzc2NjYxREM4NUQyMjAwQjY5MEQ4IC8qIERPTUpJVElETFR5
cGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlF
M0IyRjBFRDFEN0Y0Q0EzMDBCMEM5RDEgLyogTG9hZGFibGVTY3JpcHQuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUzQjJGMEU3MUQ3RjM1RUMwMEIwQzlE
MSAvKiBMb2FkYWJsZVNjcmlwdC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07CkBAIC0xNTA2OSw2ICsxNTA3MSw4IEBACiAJCUUzODgzODk0MUJBRDE0NUYw
MEQ2MkVFMyAvKiBTY3JpcHRNb2R1bGVMb2FkZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gU2NyaXB0TW9kdWxlTG9hZGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJRTM4ODM4OTUxQkFEMTQ1RjAwRDYyRUUzIC8qIFNjcmlwdE1vZHVsZUxvYWRl
ci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTY3JpcHRNb2R1bGVMb2FkZXIu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTM4RDA2MDkxRjhFODExOTAwNjQ5Q0Yy
IC8qIE1vZHVsZUZldGNoUGFyYW1ldGVycy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBNb2R1bGVGZXRjaFBhcmFtZXRlcnMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJRTM5NjI4QkQyMzk1NzI4RTAwNjU4RUNEIC8qIFNoYXJlZERldmljZU9yaWVudGF0aW9uQ2xp
ZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNoYXJlZERldmljZU9yaWVu
dGF0aW9uQ2xpZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUUzOTYyOEMwMjM5
NTc0MzAwMDY1OEVDRCAvKiBXZWJDb3JlTW90aW9uTWFuYWdlckNsaWVudC5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJDb3JlTW90aW9uTWFuYWdlckNsaWVudC5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFMzk3NUI3NjFFQzlBRjM5MDA4NDc3MTcgLyogSlNE
b2N1bWVudEZyYWdtZW50RE9NSklULmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IEpTRG9jdW1lbnRGcmFnbWVudERPTUpJVC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCUUzOTc1Qjc3MUVDOUFGMzkwMDg0NzcxNyAvKiBKU0VsZW1lbnRET01KSVQuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNFbGVtZW50RE9NSklULmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTM5NzVCNzgxRUM5QUYzOTAwODQ3NzE3
IC8qIEpTRXZlbnRET01KSVQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gSlNFdmVudERPTUpJVC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0yMjgx
Niw2ICsyMjgyMCw3IEBACiAJCQkJRTQ1MzkwMzQwRUFGRDYzNzAwMzY5NUM4IC8qIFNjcm9sbFZp
ZXdJT1MubW0gKi8sCiAJCQkJQkVBODA3QzYwRjcxNEEwMzAwNTI0MTk5IC8qIFNlbGVjdGlvblJl
Y3QuY3BwICovLAogCQkJCUJFQTgwN0M3MEY3MTRBMDMwMDUyNDE5OSAvKiBTZWxlY3Rpb25SZWN0
LmggKi8sCisJCQkJRTM5NjI4QkQyMzk1NzI4RTAwNjU4RUNEIC8qIFNoYXJlZERldmljZU9yaWVu
dGF0aW9uQ2xpZW50LmggKi8sCiAJCQkJMEYwM0MwNzMxODg0Njk1RTAwQTVGOENBIC8qIFN5c3Rl
bU1lbW9yeS5oICovLAogCQkJCUU0NTM5MEFEMEVBRkY0QjUwMDM2OTVDOCAvKiBTeXN0ZW1NZW1v
cnlJT1MuY3BwICovLAogCQkJCTQ0Qzk5MTlEMEYzRDIxMEUwMDU4NjY3MCAvKiBUaGVtZUlPUy5o
ICovLApAQCAtMjI4MzIsNiArMjI4MzcsNyBAQAogCQkJCTFGMzZFQTlCMUUyMUJBMTcwMDYyMUUy
NSAvKiBXZWJCYWNrZ3JvdW5kVGFza0NvbnRyb2xsZXIubW0gKi8sCiAJCQkJMzE0MDM3OTcxMjRC
RUE3RjAwQUY0MEU0IC8qIFdlYkNvcmVNb3Rpb25NYW5hZ2VyLmggKi8sCiAJCQkJMzE0MDM3OTgx
MjRCRUE3RjAwQUY0MEU0IC8qIFdlYkNvcmVNb3Rpb25NYW5hZ2VyLm1tICovLAorCQkJCUUzOTYy
OEMwMjM5NTc0MzAwMDY1OEVDRCAvKiBXZWJDb3JlTW90aW9uTWFuYWdlckNsaWVudC5oICovLAog
CQkJCUZFMEQ4NEU4MTA0ODQzNDgwMDFBMTc5RSAvKiBXZWJFdmVudC5oICovLAogCQkJCUZFMEQ4
NEVBMTA0ODQzNkUwMDFBMTc5RSAvKiBXZWJFdmVudC5tbSAqLywKIAkJCQlGNDgyMjMwRjFFMzg2
OUI4MDA2NkZDNzkgLyogV2ViSXRlbVByb3ZpZGVyUGFzdGVib2FyZC5oICovLApAQCAtMzIxNjUs
NiArMzIxNzEsNyBAQAogCQkJCUZEMUFGMTUwMTY1NkYxNTEwMEM2RDRGNyAvKiBTaGFwZVZhbHVl
LmggaW4gSGVhZGVycyAqLywKIAkJCQkxRDlGMEZDMTIxMjIwMjlCMDA1RDhGRDQgLyogU2hhcmVE
YXRhLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQTRBOTU0RTBCNEVEQ0NCMDAyRDhDM0MgLyogU2hh
cmVkQnVmZmVyLmggaW4gSGVhZGVycyAqLywKKwkJCQlFMzk2MjhCRjIzOTU3MjhGMDA2NThFQ0Qg
LyogU2hhcmVkRGV2aWNlT3JpZW50YXRpb25DbGllbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTgz
NERGQUQwMUY3REFFNUQwMEMyNzI1QiAvKiBTaGFyZWRTdHJpbmdIYXNoLmggaW4gSGVhZGVycyAq
LywKIAkJCQk5MzMwOUVBMzA5OUVCNzhDMDA1NkU1ODEgLyogU2hhcmVkVGltZXIuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTgzNjJFOEMxMjBDRUY5Q0IwMDI0NTg4NiAvKiBTaG91bGRUcmVhdEFzQ29u
dGludWluZ0xvYWQuaCBpbiBIZWFkZXJzICovLApAQCAtMzI3ODQsNiArMzI3OTEsNyBAQAogCQkJ
CUJDNTNEOTExMTE0MzEwQ0MwMDBEODE3RSAvKiBXZWJDb3JlSlNDbGllbnREYXRhLmggaW4gSGVh
ZGVycyAqLywKIAkJCQk5M0YxOTlCQjA4MjQ1RTU5MDAxRTlBQkMgLyogV2ViQ29yZUtleWJvYXJk
VUlNb2RlLmggaW4gSGVhZGVycyAqLywKIAkJCQkzMTQwMzc5QjEyNEJFQTdGMDBBRjQwRTQgLyog
V2ViQ29yZU1vdGlvbk1hbmFnZXIuaCBpbiBIZWFkZXJzICovLAorCQkJCUUzOTYyOEMxMjM5NTc0
MzEwMDY1OEVDRCAvKiBXZWJDb3JlTW90aW9uTWFuYWdlckNsaWVudC5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJQ0RDOTc5RjUxQzQ5OEMwOTAwREI1MEQ0IC8qIFdlYkNvcmVOU0Vycm9yRXh0cmFzLmgg
aW4gSGVhZGVycyAqLywKIAkJCQlGNEU1N0VFMTIxM0Y0MzRBMDA0RUE5OEUgLyogV2ViQ29yZU5T
Rm9udE1hbmFnZXJFeHRyYXMuaCBpbiBIZWFkZXJzICovLAogCQkJCUM1QjRDMjREMTUwOTIzNkMw
MEE2RUYzNyAvKiBXZWJDb3JlTlNVUkxFeHRyYXMuaCBpbiBIZWFkZXJzICovLApJbmRleDogU291
cmNlL1dlYkNvcmUvZG9tL0RldmljZU9yaWVudGF0aW9uQ2xpZW50LmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvZG9tL0RldmljZU9yaWVudGF0aW9uQ2xpZW50LmgJKHJldmlzaW9uIDI1
MzA1OSkKKysrIFNvdXJjZS9XZWJDb3JlL2RvbS9EZXZpY2VPcmllbnRhdGlvbkNsaWVudC5oCSh3
b3JraW5nIGNvcHkpCkBAIC0yOCw2ICsyOCw3IEBACiAKICNpbmNsdWRlICJEZXZpY2VDbGllbnQu
aCIKICNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUuaD4KKyNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+
CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApJbmRleDogU291cmNlL1dlYkNvcmUvZG9tL0RvY3Vt
ZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCShy
ZXZpc2lvbiAyNTMwNTkpCisrKyBTb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC01NjUsNyArNTY1LDcgQEAgRG9jdW1lbnQ6OkRvY3VtZW50KEZyYW1lKiBm
cmFtZSwgY29uc3QgVQogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpICYmIEVOQUJMRShERVZJQ0Vf
T1JJRU5UQVRJT04pCiAgICAgLCBtX2RldmljZU1vdGlvbkNsaWVudChtYWtlVW5pcXVlPERldmlj
ZU1vdGlvbkNsaWVudElPUz4oKSkKICAgICAsIG1fZGV2aWNlTW90aW9uQ29udHJvbGxlcihtYWtl
VW5pcXVlPERldmljZU1vdGlvbkNvbnRyb2xsZXI+KCptX2RldmljZU1vdGlvbkNsaWVudCkpCi0g
ICAgLCBtX2RldmljZU9yaWVudGF0aW9uQ2xpZW50KG1ha2VVbmlxdWU8RGV2aWNlT3JpZW50YXRp
b25DbGllbnRJT1M+KCkpCisgICAgLCBtX2RldmljZU9yaWVudGF0aW9uQ2xpZW50KG1ha2VVbmlx
dWU8RGV2aWNlT3JpZW50YXRpb25DbGllbnRJT1M+KHBhZ2UoKSA/IHBhZ2UoKS0+c2hhcmVkRGV2
aWNlT3JpZW50YXRpb25DbGllbnQoKSA6IG51bGxwdHIpKQogICAgICwgbV9kZXZpY2VPcmllbnRh
dGlvbkNvbnRyb2xsZXIobWFrZVVuaXF1ZTxEZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXI+KCpt
X2RldmljZU9yaWVudGF0aW9uQ2xpZW50KSkKICNlbmRpZgogICAgICwgbV9wZW5kaW5nVGFza3NU
aW1lcigqdGhpcywgJkRvY3VtZW50OjpwZW5kaW5nVGFza3NUaW1lckZpcmVkKQpJbmRleDogU291
cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9w
YWdlL1BhZ2UuY3BwCShyZXZpc2lvbiAyNTMwNTkpCisrKyBTb3VyY2UvV2ViQ29yZS9wYWdlL1Bh
Z2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yODksNiArMjg5LDkgQEAgUGFnZTo6UGFnZShQYWdl
Q29uZmlndXJhdGlvbiYmIHBhZ2VDb25maQogI2lmIEVOQUJMRShBUFBMSUNBVElPTl9NQU5JRkVT
VCkKICAgICAsIG1fYXBwbGljYXRpb25NYW5pZmVzdChwYWdlQ29uZmlndXJhdGlvbi5hcHBsaWNh
dGlvbk1hbmlmZXN0KQogI2VuZGlmCisjaWYgRU5BQkxFKERFVklDRV9PUklFTlRBVElPTikgJiYg
UExBVEZPUk0oSU9TX0ZBTUlMWSkKKyAgICAsIG1fc2hhcmVkRGV2aWNlT3JpZW50YXRpb25DbGll
bnQoV1RGTW92ZShwYWdlQ29uZmlndXJhdGlvbi5zaGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVu
dCkpCisjZW5kaWYKIHsKICAgICB1cGRhdGVUaW1lclRocm90dGxpbmdTdGF0ZSgpOwogCkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9wYWdlL1BhZ2UuaAkocmV2aXNpb24gMjUzMDU5KQorKysgU291cmNlL1dlYkNvcmUvcGFnZS9Q
YWdlLmgJKHdvcmtpbmcgY29weSkKQEAgLTY5LDYgKzY5LDEwIEBACiAjaW5jbHVkZSAiTWVkaWFQ
bGF5YmFja1RhcmdldENvbnRleHQuaCIKICNlbmRpZgogCisjaWYgRU5BQkxFKERFVklDRV9PUklF
TlRBVElPTikgJiYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKyNpbmNsdWRlICJTaGFyZWREZXZpY2VP
cmllbnRhdGlvbkNsaWVudC5oIgorI2VuZGlmCisKIG5hbWVzcGFjZSBKU0MgewogY2xhc3MgRGVi
dWdnZXI7CiB9CkBAIC03MTksNiArNzIzLDEwIEBAIHB1YmxpYzoKIAogICAgIFdFQkNPUkVfRVhQ
T1JUIFZlY3RvcjxSZWY8RWxlbWVudD4+IGVkaXRhYmxlRWxlbWVudHNJblJlY3QoY29uc3QgRmxv
YXRSZWN0JikgY29uc3Q7CiAKKyNpZiBFTkFCTEUoREVWSUNFX09SSUVOVEFUSU9OKSAmJiBQTEFU
Rk9STShJT1NfRkFNSUxZKQorICAgIFNoYXJlZERldmljZU9yaWVudGF0aW9uQ2xpZW50KiBzaGFy
ZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudCgpIGNvbnN0IHsgcmV0dXJuIG1fc2hhcmVkRGV2aWNl
T3JpZW50YXRpb25DbGllbnQuZ2V0KCk7IH0KKyNlbmRpZgorCiBwcml2YXRlOgogICAgIHN0cnVj
dCBOYXZpZ2F0aW9uIHsKICAgICAgICAgUmVnaXN0cmFibGVEb21haW4gZG9tYWluOwpAQCAtOTkw
LDYgKzk5OCwxMCBAQCBwcml2YXRlOgogCiAgICAgT3B0aW9uYWw8Vmlld3BvcnRBcmd1bWVudHM+
IG1fb3ZlcnJpZGVWaWV3cG9ydEFyZ3VtZW50czsKIAorI2lmIEVOQUJMRShERVZJQ0VfT1JJRU5U
QVRJT04pICYmIFBMQVRGT1JNKElPU19GQU1JTFkpCisgICAgUmVmUHRyPFNoYXJlZERldmljZU9y
aWVudGF0aW9uQ2xpZW50PiBtX3NoYXJlZERldmljZU9yaWVudGF0aW9uQ2xpZW50OworI2VuZGlm
CisKICAgICBib29sIG1fc2hvdWxkRW5hYmxlSUNFQ2FuZGlkYXRlRmlsdGVyaW5nQnlEZWZhdWx0
IHsgdHJ1ZSB9OwogICAgIGJvb2wgbV9tZWRpYVBsYXliYWNrSXNTdXNwZW5kZWQgeyBmYWxzZSB9
OwogICAgIGJvb2wgbV9tZWRpYUJ1ZmZlcmluZ0lzU3VzcGVuZGVkIHsgZmFsc2UgfTsKSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZUNvbmZpZ3VyYXRpb24uaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VDb25maWd1cmF0aW9uLmgJKHJldmlzaW9uIDI1MzA1OSkK
KysrIFNvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZUNvbmZpZ3VyYXRpb24uaAkod29ya2luZyBjb3B5
KQpAQCAtNTcsNiArNTcsNyBAQCBjbGFzcyBQZXJmb3JtYW5jZUxvZ2dpbmdDbGllbnQ7CiBjbGFz
cyBQbHVnSW5DbGllbnQ7CiBjbGFzcyBQbHVnaW5JbmZvUHJvdmlkZXI7CiBjbGFzcyBQcm9ncmVz
c1RyYWNrZXJDbGllbnQ7CitjbGFzcyBTaGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudDsKIGNs
YXNzIFNvY2tldFByb3ZpZGVyOwogY2xhc3MgU3RvcmFnZU5hbWVzcGFjZVByb3ZpZGVyOwogY2xh
c3MgVXNlckNvbnRlbnRQcm92aWRlcjsKQEAgLTExOCw2ICsxMTksMTAgQEAgcHVibGljOgogICAg
IFJlZlB0cjxTdG9yYWdlTmFtZXNwYWNlUHJvdmlkZXI+IHN0b3JhZ2VOYW1lc3BhY2VQcm92aWRl
cjsKICAgICBSZWZQdHI8VXNlckNvbnRlbnRQcm92aWRlcj4gdXNlckNvbnRlbnRQcm92aWRlcjsK
ICAgICBSZWZQdHI8VmlzaXRlZExpbmtTdG9yZT4gdmlzaXRlZExpbmtTdG9yZTsKKyAgICAKKyNp
ZiBFTkFCTEUoREVWSUNFX09SSUVOVEFUSU9OKSAmJiBQTEFURk9STShJT1NfRkFNSUxZKQorICAg
IFJlZlB0cjxTaGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudD4gc2hhcmVkRGV2aWNlT3JpZW50
YXRpb25DbGllbnQ7CisjZW5kaWYKIH07CiAKIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2lvcy9EZXZpY2VPcmllbnRhdGlvbkNsaWVudElPUy5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9EZXZpY2VPcmllbnRhdGlvbkNsaWVudElPUy5oCShyZXZp
c2lvbiAyNTMwNTkpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvRGV2aWNlT3JpZW50
YXRpb25DbGllbnRJT1MuaAkod29ya2luZyBjb3B5KQpAQCAtMzAsMTUgKzMwLDE3IEBACiAjaW5j
bHVkZSAiRGV2aWNlT3JpZW50YXRpb25DbGllbnQuaCIKICNpbmNsdWRlICJEZXZpY2VPcmllbnRh
dGlvbkNvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJEZXZpY2VPcmllbnRhdGlvbkRhdGEuaCIKKyNp
bmNsdWRlICJTaGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudC5oIgorI2luY2x1ZGUgIldlYkNv
cmVNb3Rpb25NYW5hZ2VyQ2xpZW50LmgiCiAjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgogCiBPQkpD
X0NMQVNTIFdlYkNvcmVNb3Rpb25NYW5hZ2VyOwogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWNs
YXNzIERldmljZU9yaWVudGF0aW9uQ2xpZW50SU9TIDogcHVibGljIERldmljZU9yaWVudGF0aW9u
Q2xpZW50IHsKK2NsYXNzIERldmljZU9yaWVudGF0aW9uQ2xpZW50SU9TIDogcHVibGljIERldmlj
ZU9yaWVudGF0aW9uQ2xpZW50LCBwdWJsaWMgV2ViQ29yZU1vdGlvbk1hbmFnZXJDbGllbnQgewog
cHVibGljOgotICAgIERldmljZU9yaWVudGF0aW9uQ2xpZW50SU9TKCk7CisgICAgRGV2aWNlT3Jp
ZW50YXRpb25DbGllbnRJT1MoUmVmUHRyPFNoYXJlZERldmljZU9yaWVudGF0aW9uQ2xpZW50PiYm
KTsKICAgICB+RGV2aWNlT3JpZW50YXRpb25DbGllbnRJT1MoKSBvdmVycmlkZTsKICAgICB2b2lk
IHNldENvbnRyb2xsZXIoRGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyKikgb3ZlcnJpZGU7CiAg
ICAgdm9pZCBzdGFydFVwZGF0aW5nKCkgb3ZlcnJpZGU7CkBAIC00NiwxMiArNDgsMTMgQEAgcHVi
bGljOgogICAgIERldmljZU9yaWVudGF0aW9uRGF0YSogbGFzdE9yaWVudGF0aW9uKCkgY29uc3Qg
b3ZlcnJpZGU7CiAgICAgdm9pZCBkZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXJEZXN0cm95ZWQo
KSBvdmVycmlkZTsKIAotICAgIHZvaWQgb3JpZW50YXRpb25DaGFuZ2VkKGRvdWJsZSwgZG91Ymxl
LCBkb3VibGUsIGRvdWJsZSwgZG91YmxlKTsKKyAgICB2b2lkIG9yaWVudGF0aW9uQ2hhbmdlZChk
b3VibGUsIGRvdWJsZSwgZG91YmxlLCBkb3VibGUsIGRvdWJsZSkgb3ZlcnJpZGU7CiAKIHByaXZh
dGU6CiAgICAgV2ViQ29yZU1vdGlvbk1hbmFnZXIqIG1fbW90aW9uTWFuYWdlcjsKICAgICBEZXZp
Y2VPcmllbnRhdGlvbkNvbnRyb2xsZXIqIG1fY29udHJvbGxlcjsKICAgICBSZWZQdHI8RGV2aWNl
T3JpZW50YXRpb25EYXRhPiBtX2N1cnJlbnREZXZpY2VPcmllbnRhdGlvbjsKKyAgICBSZWZQdHI8
U2hhcmVkRGV2aWNlT3JpZW50YXRpb25DbGllbnQ+IG1fc2hhcmVkRGV2aWNlT3JpZW50YXRpb25D
bGllbnQ7CiAgICAgYm9vbCBtX3VwZGF0aW5nOwogfTsKIApJbmRleDogU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vaW9zL0RldmljZU9yaWVudGF0aW9uQ2xpZW50SU9TLm1tCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9EZXZpY2VPcmllbnRhdGlvbkNsaWVudElPUy5t
bQkocmV2aXNpb24gMjUzMDU5KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL0Rldmlj
ZU9yaWVudGF0aW9uQ2xpZW50SU9TLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0zMywxMCArMzMsMTEg
QEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1EZXZpY2VPcmllbnRhdGlvbkNsaWVudElPUzo6
RGV2aWNlT3JpZW50YXRpb25DbGllbnRJT1MoKQorRGV2aWNlT3JpZW50YXRpb25DbGllbnRJT1M6
OkRldmljZU9yaWVudGF0aW9uQ2xpZW50SU9TKFJlZlB0cjxTaGFyZWREZXZpY2VPcmllbnRhdGlv
bkNsaWVudD4mJiBzaGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudCkKICAgICA6IERldmljZU9y
aWVudGF0aW9uQ2xpZW50KCkKICAgICAsIG1fbW90aW9uTWFuYWdlcihudWxscHRyKQotICAgICwg
bV91cGRhdGluZygwKQorICAgICwgbV9zaGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudChXVEZN
b3ZlKHNoYXJlZERldmljZU9yaWVudGF0aW9uQ2xpZW50KSkKKyAgICAsIG1fdXBkYXRpbmcoZmFs
c2UpCiB7CiB9CiAKQEAgLTUzLDYgKzU0LDExIEBAIHZvaWQgRGV2aWNlT3JpZW50YXRpb25DbGll
bnRJT1M6OnN0YXJ0VXAKIHsKICAgICBtX3VwZGF0aW5nID0gdHJ1ZTsKIAorICAgIGlmIChtX3No
YXJlZERldmljZU9yaWVudGF0aW9uQ2xpZW50KSB7CisgICAgICAgIG1fc2hhcmVkRGV2aWNlT3Jp
ZW50YXRpb25DbGllbnQtPnN0YXJ0VXBkYXRpbmcoKnRoaXMpOworICAgICAgICByZXR1cm47Cisg
ICAgfQorCiAgICAgaWYgKCFtX21vdGlvbk1hbmFnZXIpCiAgICAgICAgIG1fbW90aW9uTWFuYWdl
ciA9IFtXZWJDb3JlTW90aW9uTWFuYWdlciBzaGFyZWRNYW5hZ2VyXTsKIApAQCAtNjMsNiArNjks
MTEgQEAgdm9pZCBEZXZpY2VPcmllbnRhdGlvbkNsaWVudElPUzo6c3RvcFVwZAogewogICAgIG1f
dXBkYXRpbmcgPSBmYWxzZTsKIAorICAgIGlmIChtX3NoYXJlZERldmljZU9yaWVudGF0aW9uQ2xp
ZW50KSB7CisgICAgICAgIG1fc2hhcmVkRGV2aWNlT3JpZW50YXRpb25DbGllbnQtPnN0b3BVcGRh
dGluZygqdGhpcyk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKICAgICAvLyBSZW1vdmUgb3Vy
c2VsdmVzIGFzIHRoZSBvcmllbnRhdGlvbiBjbGllbnQgc28gd2Ugd29uJ3QgZ2V0IHVwZGF0ZXMu
CiAgICAgW21fbW90aW9uTWFuYWdlciByZW1vdmVPcmllbnRhdGlvbkNsaWVudDp0aGlzXTsKIH0K
QEAgLTc0LDYgKzg1LDExIEBAIERldmljZU9yaWVudGF0aW9uRGF0YSogRGV2aWNlT3JpZW50YXRp
b24KIAogdm9pZCBEZXZpY2VPcmllbnRhdGlvbkNsaWVudElPUzo6ZGV2aWNlT3JpZW50YXRpb25D
b250cm9sbGVyRGVzdHJveWVkKCkKIHsKKyAgICBpZiAobV9zaGFyZWREZXZpY2VPcmllbnRhdGlv
bkNsaWVudCkgeworICAgICAgICBtX3NoYXJlZERldmljZU9yaWVudGF0aW9uQ2xpZW50LT5zdG9w
VXBkYXRpbmcoKnRoaXMpOworICAgICAgICByZXR1cm47CisgICAgfQorCiAgICAgW21fbW90aW9u
TWFuYWdlciByZW1vdmVPcmllbnRhdGlvbkNsaWVudDp0aGlzXTsKIH0KICAgICAKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9TaGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudC5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9TaGFyZWREZXZpY2VP
cmllbnRhdGlvbkNsaWVudC5oCShub25leGlzdGVudCkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2lvcy9TaGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudC5oCSh3b3JraW5nIGNvcHkpCkBA
IC0wLDAgKzEsNTEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTkgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRI
RQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQg
U0hBTEwgVEhFIENPUFlSSUdIVCBPV05FUiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExB
UlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
CisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgUExBVEZPUk0oSU9T
X0ZBTUlMWSkgJiYgRU5BQkxFKERFVklDRV9PUklFTlRBVElPTikKKworI2luY2x1ZGUgPHd0Zi9S
ZWZDb3VudGVkLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgV2ViQ29yZU1vdGlv
bk1hbmFnZXJDbGllbnQ7CisKK2NsYXNzIFNoYXJlZERldmljZU9yaWVudGF0aW9uQ2xpZW50IDog
cHVibGljIFJlZkNvdW50ZWQ8U2hhcmVkRGV2aWNlT3JpZW50YXRpb25DbGllbnQ+IHsKK3B1Ymxp
YzoKKyAgICB2aXJ0dWFsIH5TaGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudCgpIHsgfQorCisg
ICAgdmlydHVhbCB2b2lkIHN0YXJ0VXBkYXRpbmcoV2ViQ29yZU1vdGlvbk1hbmFnZXJDbGllbnQm
KSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHN0b3BVcGRhdGluZyhXZWJDb3JlTW90aW9uTWFuYWdl
ckNsaWVudCYpID0gMDsKKworICAgIHZpcnR1YWwgdm9pZCBkZXZpY2VPcmllbnRhdGlvbkNoYW5n
ZWQoZG91YmxlLCBkb3VibGUsIGRvdWJsZSwgZG91YmxlLCBkb3VibGUpID0gMDsKKyAgICAKK3By
b3RlY3RlZDoKKyAgICBTaGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudCgpID0gZGVmYXVsdDsK
K307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIFBMQVRGT1JNKElPU19G
QU1JTFkpICYmIEVOQUJMRShERVZJQ0VfT1JJRU5UQVRJT04pCkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9pb3MvV2ViQ29yZU1vdGlvbk1hbmFnZXIuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvV2ViQ29yZU1vdGlvbk1hbmFnZXIuaAkocmV2aXNpb24g
MjUzMDU5KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dlYkNvcmVNb3Rpb25NYW5h
Z2VyLmgJKHdvcmtpbmcgY29weSkKQEAgLTI1LDEwICsyNSw5IEBACiAKICNwcmFnbWEgb25jZQog
Ci0jaW1wb3J0ICJEZXZpY2VNb3Rpb25DbGllbnRJT1MuaCIKLSNpbXBvcnQgIkRldmljZU9yaWVu
dGF0aW9uQ2xpZW50SU9TLmgiCiAjaW1wb3J0IDxDb3JlTG9jYXRpb24vQ29yZUxvY2F0aW9uLmg+
CiAjaW1wb3J0IDx3dGYvSGFzaENvdW50ZWRTZXQuaD4KKyNpbXBvcnQgPHd0Zi9XZWFrSGFzaFNl
dC5oPgogCiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkgJiYgRU5BQkxFKERFVklDRV9PUklFTlRB
VElPTikKIApAQCAtMzYsMTEgKzM1LDE2IEBACiAKIGNvbnN0IGZsb2F0IGtNb3Rpb25VcGRhdGVJ
bnRlcnZhbCA9IDEuMGYgLyA2MC4wZjsKIAotQGludGVyZmFjZSBXZWJDb3JlTW90aW9uTWFuYWdl
ciA6IE5TT2JqZWN0IHsKK25hbWVzcGFjZSBXZWJDb3JlIHsKK2NsYXNzIERldmljZU1vdGlvbkNs
aWVudElPUzsKK2NsYXNzIFdlYkNvcmVNb3Rpb25NYW5hZ2VyQ2xpZW50OworfTsKKworV0VCQ09S
RV9FWFBPUlQgQGludGVyZmFjZSBXZWJDb3JlTW90aW9uTWFuYWdlciA6IE5TT2JqZWN0IHsKICAg
ICBDTU1vdGlvbk1hbmFnZXIqIG1fbW90aW9uTWFuYWdlcjsKICAgICBDTExvY2F0aW9uTWFuYWdl
ciogbV9sb2NhdGlvbk1hbmFnZXI7CiAgICAgSGFzaFNldDxXZWJDb3JlOjpEZXZpY2VNb3Rpb25D
bGllbnRJT1MqPiBtX2RldmljZU1vdGlvbkNsaWVudHM7Ci0gICAgSGFzaFNldDxXZWJDb3JlOjpE
ZXZpY2VPcmllbnRhdGlvbkNsaWVudElPUyo+IG1fZGV2aWNlT3JpZW50YXRpb25DbGllbnRzOwor
ICAgIFdlYWtIYXNoU2V0PFdlYkNvcmU6OldlYkNvcmVNb3Rpb25NYW5hZ2VyQ2xpZW50PiBtX2Rl
dmljZU9yaWVudGF0aW9uQ2xpZW50czsKICAgICBOU1RpbWVyKiBtX3VwZGF0ZVRpbWVyOwogICAg
IEJPT0wgbV9neXJvQXZhaWxhYmxlOwogICAgIEJPT0wgbV9oZWFkaW5nQXZhaWxhYmxlOwpAQCAt
NTAsOCArNTQsOCBAQCBjb25zdCBmbG9hdCBrTW90aW9uVXBkYXRlSW50ZXJ2YWwgPSAxLjBmCiAr
IChXZWJDb3JlTW90aW9uTWFuYWdlciAqKXNoYXJlZE1hbmFnZXI7CiAtICh2b2lkKWFkZE1vdGlv
bkNsaWVudDooV2ViQ29yZTo6RGV2aWNlTW90aW9uQ2xpZW50SU9TICopY2xpZW50OwogLSAodm9p
ZClyZW1vdmVNb3Rpb25DbGllbnQ6KFdlYkNvcmU6OkRldmljZU1vdGlvbkNsaWVudElPUyAqKWNs
aWVudDsKLS0gKHZvaWQpYWRkT3JpZW50YXRpb25DbGllbnQ6KFdlYkNvcmU6OkRldmljZU9yaWVu
dGF0aW9uQ2xpZW50SU9TICopY2xpZW50OwotLSAodm9pZClyZW1vdmVPcmllbnRhdGlvbkNsaWVu
dDooV2ViQ29yZTo6RGV2aWNlT3JpZW50YXRpb25DbGllbnRJT1MgKiljbGllbnQ7CistICh2b2lk
KWFkZE9yaWVudGF0aW9uQ2xpZW50OihXZWJDb3JlOjpXZWJDb3JlTW90aW9uTWFuYWdlckNsaWVu
dCAqKWNsaWVudDsKKy0gKHZvaWQpcmVtb3ZlT3JpZW50YXRpb25DbGllbnQ6KFdlYkNvcmU6Oldl
YkNvcmVNb3Rpb25NYW5hZ2VyQ2xpZW50ICopY2xpZW50OwogLSAoQk9PTClneXJvQXZhaWxhYmxl
OwogLSAoQk9PTCloZWFkaW5nQXZhaWxhYmxlOwogQGVuZApJbmRleDogU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vaW9zL1dlYkNvcmVNb3Rpb25NYW5hZ2VyLm1tCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJDb3JlTW90aW9uTWFuYWdlci5tbQkocmV2aXNpb24g
MjUzMDU5KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dlYkNvcmVNb3Rpb25NYW5h
Z2VyLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0yOCw2ICsyOCw4IEBACiAKICNpZiBQTEFURk9STShJ
T1NfRkFNSUxZKSAmJiBFTkFCTEUoREVWSUNFX09SSUVOVEFUSU9OKQogCisjaW1wb3J0ICJEZXZp
Y2VNb3Rpb25DbGllbnRJT1MuaCIKKyNpbXBvcnQgIldlYkNvcmVNb3Rpb25NYW5hZ2VyQ2xpZW50
LmgiCiAjaW1wb3J0ICJXZWJDb3JlT2JqQ0V4dHJhcy5oIgogI2ltcG9ydCAiV2ViQ29yZVRocmVh
ZFJ1bi5oIgogI2ltcG9ydCA8Q29yZUxvY2F0aW9uL0NvcmVMb2NhdGlvbi5oPgpAQCAtMTEyLDE2
ICsxMTQsMTYgQEAgLSAodm9pZClyZW1vdmVNb3Rpb25DbGllbnQ6KFdlYkNvcmU6OkRldgogICAg
ICAgICBbc2VsZiBjaGVja0NsaWVudFN0YXR1c107CiB9CiAKLS0gKHZvaWQpYWRkT3JpZW50YXRp
b25DbGllbnQ6KFdlYkNvcmU6OkRldmljZU9yaWVudGF0aW9uQ2xpZW50SU9TICopY2xpZW50Cist
ICh2b2lkKWFkZE9yaWVudGF0aW9uQ2xpZW50OihXZWJDb3JlOjpXZWJDb3JlTW90aW9uTWFuYWdl
ckNsaWVudCAqKWNsaWVudAogewotICAgIG1fZGV2aWNlT3JpZW50YXRpb25DbGllbnRzLmFkZChj
bGllbnQpOworICAgIG1fZGV2aWNlT3JpZW50YXRpb25DbGllbnRzLmFkZCgqY2xpZW50KTsKICAg
ICBpZiAobV9pbml0aWFsaXplZCkKICAgICAgICAgW3NlbGYgY2hlY2tDbGllbnRTdGF0dXNdOwog
fQogCi0tICh2b2lkKXJlbW92ZU9yaWVudGF0aW9uQ2xpZW50OihXZWJDb3JlOjpEZXZpY2VPcmll
bnRhdGlvbkNsaWVudElPUyAqKWNsaWVudAorLSAodm9pZClyZW1vdmVPcmllbnRhdGlvbkNsaWVu
dDooV2ViQ29yZTo6V2ViQ29yZU1vdGlvbk1hbmFnZXJDbGllbnQgKiljbGllbnQKIHsKLSAgICBt
X2RldmljZU9yaWVudGF0aW9uQ2xpZW50cy5yZW1vdmUoY2xpZW50KTsKKyAgICBtX2RldmljZU9y
aWVudGF0aW9uQ2xpZW50cy5yZW1vdmUoKmNsaWVudCk7CiAgICAgaWYgKG1faW5pdGlhbGl6ZWQp
CiAgICAgICAgIFtzZWxmIGNoZWNrQ2xpZW50U3RhdHVzXTsKIH0KQEAgLTE2OSw3ICsxNzEsNyBA
QCAtICh2b2lkKWNoZWNrQ2xpZW50U3RhdHVzCiAgICAgLy8gYmUgbm8gY2hhbmNlIHRoYXQgbV9t
b3Rpb25NYW5hZ2VyIGhhcyBub3QgYmVlbiBjcmVhdGVkLgogICAgIEFTU0VSVChtX21vdGlvbk1h
bmFnZXIpOwogCi0gICAgaWYgKG1fZGV2aWNlTW90aW9uQ2xpZW50cy5zaXplKCkgfHwgbV9kZXZp
Y2VPcmllbnRhdGlvbkNsaWVudHMuc2l6ZSgpKSB7CisgICAgaWYgKG1fZGV2aWNlTW90aW9uQ2xp
ZW50cy5zaXplKCkgfHwgbV9kZXZpY2VPcmllbnRhdGlvbkNsaWVudHMuY29tcHV0ZVNpemUoKSkg
ewogICAgICAgICBpZiAobV9neXJvQXZhaWxhYmxlKQogICAgICAgICAgICAgW21fbW90aW9uTWFu
YWdlciBzdGFydERldmljZU1vdGlvblVwZGF0ZXNdOwogICAgICAgICBlbHNlCkBAIC0yNDYsOCAr
MjQ4LDExIEBAIC0gKHZvaWQpc2VuZE1vdGlvbkRhdGE6KENNRGV2aWNlTW90aW9uICoKIAogICAg
ICAgICBDTUF0dGl0dWRlKiBhdHRpdHVkZSA9IG5ld01vdGlvbi5hdHRpdHVkZTsKIAotICAgICAg
ICBhdXRvIG9yaWVudGF0aW9uQ2xpZW50cyA9IGNvcHlUb1ZlY3RvcihtX2RldmljZU9yaWVudGF0
aW9uQ2xpZW50cyk7Ci0KKyAgICAgICAgVmVjdG9yPFdlYkNvcmVNb3Rpb25NYW5hZ2VyQ2xpZW50
Kj4gb3JpZW50YXRpb25DbGllbnRzOworICAgICAgICBvcmllbnRhdGlvbkNsaWVudHMucmVzZXJ2
ZUluaXRpYWxDYXBhY2l0eShtX2RldmljZU9yaWVudGF0aW9uQ2xpZW50cy5jb21wdXRlU2l6ZSgp
KTsKKyAgICAgICAgZm9yIChhdXRvJiBjbGllbnQgOiBtX2RldmljZU9yaWVudGF0aW9uQ2xpZW50
cykKKyAgICAgICAgICAgIG9yaWVudGF0aW9uQ2xpZW50cy5hcHBlbmQoJmNsaWVudCk7CisgICAg
ICAgIAogICAgICAgICAvLyBDb21wb3NlIHRoZSByYXcgbW90aW9uIGRhdGEgdG8gYW4gaW50ZXJt
ZWRpYXRlIFpYWS1iYXNlZCAzeDMgcm90YXRpb24KICAgICAgICAgLy8gbWF0cml4IChSKSB3aGVy
ZSBbej1hdHRpdHVkZS55YXcsIHg9YXR0aXR1ZGUucGl0Y2gsIHk9YXR0aXR1ZGUucm9sbF0KICAg
ICAgICAgLy8gaW4gdGhlIGZvcm06CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3Mv
V2ViQ29yZU1vdGlvbk1hbmFnZXJDbGllbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9pb3MvV2ViQ29yZU1vdGlvbk1hbmFnZXJDbGllbnQuaAkobm9uZXhpc3RlbnQp
CisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvV2ViQ29yZU1vdGlvbk1hbmFnZXJDbGll
bnQuaAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDM5IEBACisvKgorKiBDb3B5cmlnaHQgKEMp
IDIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorKgorKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisqIGFyZSBtZXQ6CisqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorKgorKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycn
CisqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworKiBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SCisqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworKiBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTgorKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisqIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSA8d3Rm
L1dlYWtQdHIuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBXZWJDb3JlTW90aW9u
TWFuYWdlckNsaWVudCA6IHB1YmxpYyBDYW5NYWtlV2Vha1B0cjxXZWJDb3JlTW90aW9uTWFuYWdl
ckNsaWVudD4geworcHVibGljOgorICAgIHZpcnR1YWwgfldlYkNvcmVNb3Rpb25NYW5hZ2VyQ2xp
ZW50KCkgeyB9OworCisgICAgdmlydHVhbCB2b2lkIG9yaWVudGF0aW9uQ2hhbmdlZChkb3VibGUs
IGRvdWJsZSwgZG91YmxlLCBkb3VibGUsIGRvdWJsZSkgPSAwOworfTsKKworfTsKSW5kZXg6IFNv
dXJjZS9XZWJLaXQvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvQ2hhbmdl
TG9nCShyZXZpc2lvbiAyNTMxMTgpCisrKyBTb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwkod29ya2lu
ZyBjb3B5KQpAQCAtMSwzICsxLDQyIEBACisyMDE5LTEyLTA0ICBQZXIgQXJuZSBWb2xsYW4gIDxw
dm9sbGFuQGFwcGxlLmNvbT4KKworICAgICAgICBbaU9TXSBDYWxscyB0byBkZXZpY2Ugb3JpZW50
YXRpb24gQVBJIHNob3VsZCBiZSBkb25lIGluIHRoZSBVSSBwcm9jZXNzCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDQ3MjAKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgYSBuZXcgY2xhc3MsIFdlYlNo
YXJlZERldmljZU9yaWVudGF0aW9uQ2xpZW50UHJveHksIHRvIGhhbmRsZSBtZXNzYWdlcyB0byBz
dGFydCBhbmQgc3RvcCB1cGRhdGluZyBkZXZpY2Ugb3JpZW50YXRpb24KKyAgICAgICAgaW4gdGhl
IFVJIHByb2Nlc3MuIEFsc28sIGFkZCBhIG1lc3NhZ2UgdG8gdXBkYXRlIHRoZSBkZXZpY2Ugb3Jp
ZW50YXRpb24gaW4gdGhlIFdlYkNvbnRlbnQgcHJvY2Vzcy4gSW4gdGhlIFVJIHByb2Nlc3MsIHRo
ZQorICAgICAgICBkZXZpY2Ugb3JpZW50YXRpb24gQVBJIGlzIGNhbGxlZCB0aHJvdWdoIHRoZSBh
bHJlYWR5IGV4aXN0aW5nIFdlYkNvcmVNb3Rpb25NYW5hZ2VyIGNsYXNzLgorCisgICAgICAgICog
RGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdDoKKyAgICAgICAgKiBEZXJpdmVkU291cmNl
cy1vdXRwdXQueGNmaWxlbGlzdDoKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy5tYWtlOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjptX3dl
YlNoYXJlZERldmljZU9yaWVudGF0aW9uQ2xpZW50UHJveHkpOgorICAgICAgICAoV2ViS2l0Ojpt
X3Jlc2V0UmVjZW50Q3Jhc2hDb3VudFRpbWVyKTogRGVsZXRlZC4KKyAgICAgICAgKiBVSVByb2Nl
c3MvaW9zL1dlYlByb2Nlc3NQcm94eUlPUy5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vz
c1Byb3h5Ojp1bmJsb2NrQWNjZXNzaWJpbGl0eVNlcnZlcklmTmVlZGVkKToKKyAgICAgICAgKiBV
SVByb2Nlc3MvaW9zL1dlYlNoYXJlZERldmljZU9yaWVudGF0aW9uQ2xpZW50UHJveHkuaDogQWRk
ZWQuCisgICAgICAgICogVUlQcm9jZXNzL2lvcy9XZWJTaGFyZWREZXZpY2VPcmllbnRhdGlvbkNs
aWVudFByb3h5Lm1lc3NhZ2VzLmluOiBBZGRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dl
YlNoYXJlZERldmljZU9yaWVudGF0aW9uQ2xpZW50UHJveHkubW06IEFkZGVkLgorICAgICAgICAo
V2ViS2l0OjpXZWJTaGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudFByb3h5OjpXZWJTaGFyZWRE
ZXZpY2VPcmllbnRhdGlvbkNsaWVudFByb3h5KToKKyAgICAgICAgKFdlYktpdDo6V2ViU2hhcmVk
RGV2aWNlT3JpZW50YXRpb25DbGllbnRQcm94eTo6fldlYlNoYXJlZERldmljZU9yaWVudGF0aW9u
Q2xpZW50UHJveHkpOgorICAgICAgICAoV2ViS2l0OjpXZWJTaGFyZWREZXZpY2VPcmllbnRhdGlv
bkNsaWVudFByb3h5OjpzdGFydFVwZGF0aW5nRGV2aWNlT3JpZW50YXRpb24pOgorICAgICAgICAo
V2ViS2l0OjpXZWJTaGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudFByb3h5OjpzdG9wVXBkYXRp
bmdEZXZpY2VPcmllbnRhdGlvbik6CisgICAgICAgIChXZWJLaXQ6OldlYlNoYXJlZERldmljZU9y
aWVudGF0aW9uQ2xpZW50UHJveHk6Om9yaWVudGF0aW9uQ2hhbmdlZCk6CisgICAgICAgICogV2Vi
S2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC9XZWJTaGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudC5jcHA6IEFkZGVkLgor
ICAgICAgICAoV2ViS2l0OjpXZWJTaGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudDo6V2ViU2hh
cmVkRGV2aWNlT3JpZW50YXRpb25DbGllbnQpOgorICAgICAgICAoV2ViS2l0OjpXZWJTaGFyZWRE
ZXZpY2VPcmllbnRhdGlvbkNsaWVudDo6fldlYlNoYXJlZERldmljZU9yaWVudGF0aW9uQ2xpZW50
KToKKyAgICAgICAgKFdlYktpdDo6V2ViU2hhcmVkRGV2aWNlT3JpZW50YXRpb25DbGllbnQ6OnN0
YXJ0VXBkYXRpbmcpOgorICAgICAgICAoV2ViS2l0OjpXZWJTaGFyZWREZXZpY2VPcmllbnRhdGlv
bkNsaWVudDo6c3RvcFVwZGF0aW5nKToKKyAgICAgICAgKFdlYktpdDo6V2ViU2hhcmVkRGV2aWNl
T3JpZW50YXRpb25DbGllbnQ6OmRldmljZU9yaWVudGF0aW9uQ2hhbmdlZCk6CisgICAgICAgICog
V2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJTaGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVu
dC5oOiBBZGRlZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlNoYXJl
ZERldmljZU9yaWVudGF0aW9uQ2xpZW50Lm1lc3NhZ2VzLmluOiBBZGRlZC4KKyAgICAgICAgKiBX
ZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHA6CisgICAgICAgIChXZWJLaXQ6Om1fb3ZlcnJp
ZGRlbk1lZGlhVHlwZSk6CisKIDIwMTktMTItMDQgIEthdGUgQ2hlbmV5ICA8a2F0aGVyaW5lX2No
ZW5leUBhcHBsZS5jb20+CiAKICAgICAgICAgRXhwb3NlIGJhc2ljIElUUCBkYXRhIGZyb20gdGhl
IGRhdGFiYXNlIGZvciBmdXR1cmUgQVBJL1NQSSB1c2UKSW5kZXg6IFNvdXJjZS9XZWJLaXQvRGVy
aXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0
L0Rlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3QJKHJldmlzaW9uIDI1MzA1OSkKKysrIFNv
dXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdAkod29ya2luZyBjb3B5
KQpAQCAtODQsNiArODQsNyBAQCAkKFBST0pFQ1RfRElSKS9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bv
b2wuCiAkKFBST0pFQ1RfRElSKS9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmlu
CiAkKFBST0pFQ1RfRElSKS9VSVByb2Nlc3MvaW9zL0VkaXRhYmxlSW1hZ2VDb250cm9sbGVyLm1l
c3NhZ2VzLmluCiAkKFBST0pFQ1RfRElSKS9VSVByb2Nlc3MvaW9zL1NtYXJ0TWFnbmlmaWNhdGlv
bkNvbnRyb2xsZXIubWVzc2FnZXMuaW4KKyQoUFJPSkVDVF9ESVIpL1VJUHJvY2Vzcy9pb3MvV2Vi
U2hhcmVkRGV2aWNlT3JpZW50YXRpb25DbGllbnRQcm94eS5tZXNzYWdlcy5pbgogJChQUk9KRUNU
X0RJUikvVUlQcm9jZXNzL21hYy9TZWNJdGVtU2hpbVByb3h5Lm1lc3NhZ2VzLmluCiAkKFBST0pF
Q1RfRElSKS9XZWJQcm9jZXNzL0FwcGxlUGF5L1dlYlBheW1lbnRDb29yZGluYXRvci5tZXNzYWdl
cy5pbgogJChQUk9KRUNUX0RJUikvV2ViUHJvY2Vzcy9BdXRvbWF0aW9uL1dlYkF1dG9tYXRpb25T
ZXNzaW9uUHJveHkuanMKQEAgLTEwOCw2ICsxMDksNyBAQCAkKFBST0pFQ1RfRElSKS9XZWJQcm9j
ZXNzL1N0b3JhZ2UvV2ViU1dDCiAkKFBST0pFQ1RfRElSKS9XZWJQcm9jZXNzL1N0b3JhZ2UvV2Vi
U1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24ubWVzc2FnZXMuaW4KICQoUFJPSkVDVF9ESVIpL1dl
YlByb2Nlc3MvVXNlckNvbnRlbnQvV2ViVXNlckNvbnRlbnRDb250cm9sbGVyLm1lc3NhZ2VzLmlu
CiAkKFBST0pFQ1RfRElSKS9XZWJQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL1dlYkF1dGhlbnRp
Y2F0b3JDb29yZGluYXRvci5tZXNzYWdlcy5pbgorJChQUk9KRUNUX0RJUikvV2ViUHJvY2Vzcy9X
ZWJDb3JlU3VwcG9ydC9XZWJTaGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudC5tZXNzYWdlcy5p
bgogJChQUk9KRUNUX0RJUikvV2ViUHJvY2Vzcy9XZWJQYWdlL0NvY29hL1RleHRDaGVja2luZ0Nv
bnRyb2xsZXJQcm94eS5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikvV2ViUHJvY2Vzcy9XZWJQ
YWdlL0RyYXdpbmdBcmVhLm1lc3NhZ2VzLmluCiAkKFBST0pFQ1RfRElSKS9XZWJQcm9jZXNzL1dl
YlBhZ2UvRXZlbnREaXNwYXRjaGVyLm1lc3NhZ2VzLmluCkluZGV4OiBTb3VyY2UvV2ViS2l0L0Rl
cml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0Cj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQvRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QJKHJldmlzaW9uIDI1MzA1OSkKKysr
IFNvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QJKHdvcmtpbmcg
Y29weSkKQEAgLTI3OSw2ICsyNzksMTIgQEAgJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRT
b3VyY2VzL1dlYgogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIv
V2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uTWVzc2FnZVJlY2VpdmVyLmNwcAogJChCVUlM
VF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvV2ViU1dTZXJ2ZXJUb0NvbnRl
eHRDb25uZWN0aW9uTWVzc2FnZXMuaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3Vy
Y2VzL1dlYktpdDIvV2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uTWVzc2FnZXNSZXBsaWVz
LmgKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1dlYlNoYXJl
ZERldmljZU9yaWVudGF0aW9uQ2xpZW50TWVzc2FnZVJlY2VpdmVyLmNwcAorJChCVUlMVF9QUk9E
VUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvV2ViU2hhcmVkRGV2aWNlT3JpZW50YXRp
b25DbGllbnRNZXNzYWdlcy5oCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMv
V2ViS2l0Mi9XZWJTaGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudE1lc3NhZ2VzUmVwbGllcy5o
CiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9XZWJTaGFyZWRE
ZXZpY2VPcmllbnRhdGlvbkNsaWVudFByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcAorJChCVUlMVF9Q
Uk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvV2ViU2hhcmVkRGV2aWNlT3JpZW50
YXRpb25DbGllbnRQcm94eU1lc3NhZ2VzLmgKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVk
U291cmNlcy9XZWJLaXQyL1dlYlNoYXJlZERldmljZU9yaWVudGF0aW9uQ2xpZW50UHJveHlNZXNz
YWdlc1JlcGxpZXMuaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktp
dDIvV2ViU29ja2V0Q2hhbm5lbE1lc3NhZ2VSZWNlaXZlci5jcHAKICQoQlVJTFRfUFJPRFVDVFNf
RElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1dlYlNvY2tldENoYW5uZWxNZXNzYWdlcy5oCiAk
KEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9XZWJTb2NrZXRDaGFu
bmVsTWVzc2FnZXNSZXBsaWVzLmgKSW5kZXg6IFNvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMu
bWFrZQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLm1ha2UJKHJl
dmlzaW9uIDI1MzA1OSkKKysrIFNvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMubWFrZQkod29y
a2luZyBjb3B5KQpAQCAtMTgxLDYgKzE4MSw4IEBAIE1FU1NBR0VfUkVDRUlWRVJTID0gXAogICAg
IFdlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uIFwKICAgICBXZWJTV1NlcnZlckNvbm5lY3Rp
b24gXAogICAgIFdlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbiBcCisgICAgV2ViU2hhcmVk
RGV2aWNlT3JpZW50YXRpb25DbGllbnQgXAorICAgIFdlYlNoYXJlZERldmljZU9yaWVudGF0aW9u
Q2xpZW50UHJveHkgXAogICAgIFdlYlNvY2tldENoYW5uZWwgXAogICAgIFdlYlNvY2tldFN0cmVh
bSBcCiAgICAgV2ViVXNlckNvbnRlbnRDb250cm9sbGVyIFwKSW5kZXg6IFNvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAkocmV2aXNpb24gMjUzMDU5KQorKysgU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDQ5LDYg
KzQ0OSw5IEBAIFdlYlBhZ2VQcm94eTo6V2ViUGFnZVByb3h5KFBhZ2VDbGllbnQmIHAKICAgICAs
IG1faW5zcGVjdG9yRGVidWdnYWJsZShtYWtlVW5pcXVlPFdlYlBhZ2VEZWJ1Z2dhYmxlPigqdGhp
cykpCiAjZW5kaWYKICAgICAsIG1fcmVzZXRSZWNlbnRDcmFzaENvdW50VGltZXIoUnVuTG9vcDo6
bWFpbigpLCB0aGlzLCAmV2ViUGFnZVByb3h5OjpyZXNldFJlY2VudENyYXNoQ291bnQpCisjaWYg
UExBVEZPUk0oSU9TX0ZBTUlMWSkgJiYgRU5BQkxFKERFVklDRV9PUklFTlRBVElPTikKKyAgICAs
IG1fd2ViU2hhcmVkRGV2aWNlT3JpZW50YXRpb25DbGllbnRQcm94eSgqdGhpcykKKyNlbmRpZgog
ewogICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoTG9hZGluZywgImNvbnN0cnVjdG9yOiIpOwog
CkluZGV4OiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAkocmV2aXNpb24gMjUz
MDU5KQorKysgU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgJKHdvcmtpbmcg
Y29weSkKQEAgLTE0OSw2ICsxNDksMTAgQEAgT0JKQ19DTEFTUyBfV0tSZW1vdGVPYmplY3RSZWdp
c3RyeTsKICNpbmNsdWRlICJTT0F1dGhvcml6YXRpb25Mb2FkUG9saWN5LmgiCiAjZW5kaWYKIAor
I2lmIFBMQVRGT1JNKElPU19GQU1JTFkpICYmIEVOQUJMRShERVZJQ0VfT1JJRU5UQVRJT04pCisj
aW5jbHVkZSAiV2ViU2hhcmVkRGV2aWNlT3JpZW50YXRpb25DbGllbnRQcm94eS5oIgorI2VuZGlm
CisKICNpZiBFTkFCTEUoTUVESUFfU0VTU0lPTikKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNz
IE1lZGlhU2Vzc2lvbk1ldGFkYXRhOwpAQCAtMjYyOSw2ICsyNjMzLDEwIEBAIHByaXZhdGU6CiAg
ICAgYm9vbCBtX2lzUXVvdGFJbmNyZWFzZURlbmllZCB7IGZhbHNlIH07CiAgICAgCiAgICAgU3Ry
aW5nIG1fb3ZlcnJpZGRlbk1lZGlhVHlwZTsKKyAgICAgICAgCisjaWYgUExBVEZPUk0oSU9TX0ZB
TUlMWSkgJiYgRU5BQkxFKERFVklDRV9PUklFTlRBVElPTikKKyAgICBXZWJTaGFyZWREZXZpY2VP
cmllbnRhdGlvbkNsaWVudFByb3h5IG1fd2ViU2hhcmVkRGV2aWNlT3JpZW50YXRpb25DbGllbnRQ
cm94eTsKKyNlbmRpZgogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CkluZGV4OiBTb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9pb3MvV2ViU2hhcmVkRGV2aWNlT3JpZW50YXRpb25DbGllbnRQcm94
eS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XZWJTaGFyZWRE
ZXZpY2VPcmllbnRhdGlvbkNsaWVudFByb3h5LmgJKG5vbmV4aXN0ZW50KQorKysgU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvaW9zL1dlYlNoYXJlZERldmljZU9yaWVudGF0aW9uQ2xpZW50UHJveHku
aAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDU3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMg
YGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRS
SUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBv
bmNlCisKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKSAmJiBFTkFCTEUoREVWSUNFX09SSUVOVEFU
SU9OKQorCisjaW5jbHVkZSAiTWVzc2FnZVJlY2VpdmVyLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9X
ZWJDb3JlTW90aW9uTWFuYWdlckNsaWVudC5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xh
c3MgV2ViUGFnZVByb3h5OworCitjbGFzcyBXZWJTaGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVu
dFByb3h5IDogcHVibGljIFdlYkNvcmU6OldlYkNvcmVNb3Rpb25NYW5hZ2VyQ2xpZW50LCBwcml2
YXRlIElQQzo6TWVzc2FnZVJlY2VpdmVyIHsKK3B1YmxpYzoKKyAgICBXZWJTaGFyZWREZXZpY2VP
cmllbnRhdGlvbkNsaWVudFByb3h5KFdlYlBhZ2VQcm94eSYpOworICAgIH5XZWJTaGFyZWREZXZp
Y2VPcmllbnRhdGlvbkNsaWVudFByb3h5KCk7CisKKyAgICB2b2lkIHN0YXJ0VXBkYXRpbmdEZXZp
Y2VPcmllbnRhdGlvbigpOworICAgIHZvaWQgc3RvcFVwZGF0aW5nRGV2aWNlT3JpZW50YXRpb24o
KTsKKyAgICAKK3ByaXZhdGU6CisgICAgLy8gV2ViQ29yZTo6V2ViQ29yZU1vdGlvbk1hbmFnZXJD
bGllbnQKKyAgICB2b2lkIG9yaWVudGF0aW9uQ2hhbmdlZChkb3VibGUsIGRvdWJsZSwgZG91Ymxl
LCBkb3VibGUsIGRvdWJsZSkgZmluYWw7CisgICAgCisgICAgLy8gSVBDOjpNZXNzYWdlUmVjZWl2
ZXIuCisgICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRl
Y29kZXImKSBvdmVycmlkZTsKKworICAgIFdlYlBhZ2VQcm94eSYgbV9wYWdlOworfTsKKworfSAv
LyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBQTEFURk9STShJT1NfRkFNSUxZKSAmJiBF
TkFCTEUoREVWSUNFX09SSUVOVEFUSU9OKQpJbmRleDogU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
aW9zL1dlYlNoYXJlZERldmljZU9yaWVudGF0aW9uQ2xpZW50UHJveHkubWVzc2FnZXMuaW4KPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dlYlNoYXJlZERldmljZU9y
aWVudGF0aW9uQ2xpZW50UHJveHkubWVzc2FnZXMuaW4JKG5vbmV4aXN0ZW50KQorKysgU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvaW9zL1dlYlNoYXJlZERldmljZU9yaWVudGF0aW9uQ2xpZW50UHJv
eHkubWVzc2FnZXMuaW4JKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwyOCBAQAorIyBDb3B5cmln
aHQgKEMpIDIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIworIyBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisjIGFyZSBtZXQ6CisjIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorIyAy
LiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyMgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyMgICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisjCisjIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9S
UyBgYEFTIElTJycgQU5ECisjIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisjIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUK
KyMgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJ
QlVUT1JTIEJFIExJQUJMRSBGT1IKKyMgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTAorIyBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBP
UgorIyBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
IElOVEVSUlVQVElPTikgSE9XRVZFUgorIyBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLAorIyBPUiBUT1JU
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRQorIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkg
JiYgRU5BQkxFKERFVklDRV9PUklFTlRBVElPTikKK21lc3NhZ2VzIC0+IFdlYlNoYXJlZERldmlj
ZU9yaWVudGF0aW9uQ2xpZW50UHJveHkgTm90UmVmQ291bnRlZCB7CisgICAgU3RhcnRVcGRhdGlu
Z0RldmljZU9yaWVudGF0aW9uKCk7CisgICAgU3RvcFVwZGF0aW5nRGV2aWNlT3JpZW50YXRpb24o
KTsKK30KKyNlbmRpZgpJbmRleDogU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dlYlNoYXJl
ZERldmljZU9yaWVudGF0aW9uQ2xpZW50UHJveHkubW0KPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvaW9zL1dlYlNoYXJlZERldmljZU9yaWVudGF0aW9uQ2xpZW50UHJveHku
bW0JKG5vbmV4aXN0ZW50KQorKysgU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dlYlNoYXJl
ZERldmljZU9yaWVudGF0aW9uQ2xpZW50UHJveHkubW0JKHdvcmtpbmcgY29weSkKQEAgLTAsMCAr
MSw2NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
KyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisg
KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNpbXBvcnQgImNvbmZpZy5oIgorI2ltcG9ydCAiV2ViU2hh
cmVkRGV2aWNlT3JpZW50YXRpb25DbGllbnRQcm94eS5oIgorCisjaWYgUExBVEZPUk0oSU9TX0ZB
TUlMWSkgJiYgRU5BQkxFKERFVklDRV9PUklFTlRBVElPTikKKworI2ltcG9ydCAiV2ViUGFnZVBy
b3h5LmgiCisjaW1wb3J0ICJXZWJQcm9jZXNzUHJveHkuaCIKKyNpbXBvcnQgIldlYlNoYXJlZERl
dmljZU9yaWVudGF0aW9uQ2xpZW50TWVzc2FnZXMuaCIKKyNpbXBvcnQgIldlYlNoYXJlZERldmlj
ZU9yaWVudGF0aW9uQ2xpZW50UHJveHlNZXNzYWdlcy5oIgorI2ltcG9ydCA8V2ViQ29yZS9XZWJD
b3JlTW90aW9uTWFuYWdlci5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworV2ViU2hhcmVkRGV2
aWNlT3JpZW50YXRpb25DbGllbnRQcm94eTo6V2ViU2hhcmVkRGV2aWNlT3JpZW50YXRpb25DbGll
bnRQcm94eShXZWJQYWdlUHJveHkmIHBhZ2UpCisgICAgOiBtX3BhZ2UocGFnZSkKK3sKKyAgICBt
X3BhZ2UucHJvY2VzcygpLmFkZE1lc3NhZ2VSZWNlaXZlcihNZXNzYWdlczo6V2ViU2hhcmVkRGV2
aWNlT3JpZW50YXRpb25DbGllbnRQcm94eTo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpLCBtX3BhZ2Uu
d2ViUGFnZUlEKCksICp0aGlzKTsKK30KKworV2ViU2hhcmVkRGV2aWNlT3JpZW50YXRpb25DbGll
bnRQcm94eTo6fldlYlNoYXJlZERldmljZU9yaWVudGF0aW9uQ2xpZW50UHJveHkoKQoreworICAg
IG1fcGFnZS5wcm9jZXNzKCkucmVtb3ZlTWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2VzOjpXZWJTaGFy
ZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudFByb3h5OjptZXNzYWdlUmVjZWl2ZXJOYW1lKCksIG1f
cGFnZS53ZWJQYWdlSUQoKSk7Cit9CisKK3ZvaWQgV2ViU2hhcmVkRGV2aWNlT3JpZW50YXRpb25D
bGllbnRQcm94eTo6c3RhcnRVcGRhdGluZ0RldmljZU9yaWVudGF0aW9uKCkKK3sKKyAgICBbW1dl
YkNvcmVNb3Rpb25NYW5hZ2VyIHNoYXJlZE1hbmFnZXJdIGFkZE9yaWVudGF0aW9uQ2xpZW50OnRo
aXNdOworfQorCit2b2lkIFdlYlNoYXJlZERldmljZU9yaWVudGF0aW9uQ2xpZW50UHJveHk6OnN0
b3BVcGRhdGluZ0RldmljZU9yaWVudGF0aW9uKCkKK3sKKyAgICBbW1dlYkNvcmVNb3Rpb25NYW5h
Z2VyIHNoYXJlZE1hbmFnZXJdIHJlbW92ZU9yaWVudGF0aW9uQ2xpZW50OnRoaXNdOworfQorCit2
b2lkIFdlYlNoYXJlZERldmljZU9yaWVudGF0aW9uQ2xpZW50UHJveHk6Om9yaWVudGF0aW9uQ2hh
bmdlZChkb3VibGUgYWxwaGEsIGRvdWJsZSBiZXRhLCBkb3VibGUgZ2FtbWEsIGRvdWJsZSBjb21w
YXNzSGVhZGluZywgZG91YmxlIGNvbXBhc3NBY2N1cmFjeSkKK3sKKyAgICBtX3BhZ2Uuc2VuZChN
ZXNzYWdlczo6V2ViU2hhcmVkRGV2aWNlT3JpZW50YXRpb25DbGllbnQ6OkRldmljZU9yaWVudGF0
aW9uQ2hhbmdlZChhbHBoYSwgYmV0YSwgZ2FtbWEsIGNvbXBhc3NIZWFkaW5nLCBjb21wYXNzQWNj
dXJhY3kpKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBQTEFURk9S
TShJT1NfRkFNSUxZKQpJbmRleDogU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvago9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCShyZXZpc2lvbiAyNTMwNTkpCisrKyBTb3VyY2UvV2ViS2l0L1dlYktp
dC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCSh3b3JraW5nIGNvcHkpCkBAIC0xNjg5LDYgKzE2
ODksMTQgQEAKIAkJRTFEMjZBNTMxNzU5NjREOTAwOTVCRkQxIC8qIFdlYkNvbnRlbnRQcm9jZXNz
LnhpYiBpbiBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTFE
MjZBNEMxNzU5NjM0RTAwOTVCRkQxIC8qIFdlYkNvbnRlbnRQcm9jZXNzLnhpYiAqLzsgfTsKIAkJ
RTFFNTUyQzUxNkFFMDY1RjAwNEVENjUzIC8qIFNhbmRib3hJbml0aWFsaXphdGlvblBhcmFtZXRl
cnMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxRTU1
MkMzMTZBRTA2NUUwMDRFRDY1MyAvKiBTYW5kYm94SW5pdGlhbGl6YXRpb25QYXJhbWV0ZXJzLmgg
Ki87IH07CiAJCUUxRUU1M0UzMTFGOENGQzAwMENDQkVFNCAvKiBJbmplY3RlZEJ1bmRsZVBhZ2VF
ZGl0b3JDbGllbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEUxRUU1M0RDMTFGOENGOUYwMENDQkVFNCAvKiBJbmplY3RlZEJ1bmRsZVBhZ2VFZGl0b3JD
bGllbnQuaCAqLzsgfTsKKwkJRTM4NjZBREYyMzk3MzNGMDAwRjg4RkU5IC8qIFdlYlNoYXJlZERl
dmljZU9yaWVudGF0aW9uQ2xpZW50TWVzc2FnZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUzODY2QURFMjM5NzMzOEUwMEY4OEZFOSAvKiBXZWJTaGFy
ZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudE1lc3NhZ2VzLmggKi87IH07CisJCUUzODY2QUUwMjM5
NzMzRjUwMEY4OEZFOSAvKiBXZWJTaGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudE1lc3NhZ2VS
ZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBFMzg2NkFERDIzOTczMzhFMDBGODhGRTkgLyogV2ViU2hhcmVkRGV2aWNlT3JpZW50YXRpb25D
bGllbnRNZXNzYWdlUmVjZWl2ZXIuY3BwICovOyB9OworCQlFMzg2NkFFNTIzOTc0MDA0MDBGODhG
RTkgLyogV2ViU2hhcmVkRGV2aWNlT3JpZW50YXRpb25DbGllbnRQcm94eS5tbSBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUzODY2QUU0MjM5NzQwMDQwMEY4
OEZFOSAvKiBXZWJTaGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudFByb3h5Lm1tICovOyB9Owor
CQlFMzg2NkFFNzIzOTc0MDUzMDBGODhGRTkgLyogV2ViU2hhcmVkRGV2aWNlT3JpZW50YXRpb25D
bGllbnRQcm94eS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gRTM4NjZBRTYyMzk3NDA1MzAwRjg4RkU5IC8qIFdlYlNoYXJlZERldmljZU9yaWVudGF0aW9u
Q2xpZW50UHJveHkuaCAqLzsgfTsKKwkJRTM4NjZBRUIyMzk4NDQyMDAwRjg4RkU5IC8qIFdlYlNo
YXJlZERldmljZU9yaWVudGF0aW9uQ2xpZW50UHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTM4NjZBRTkyMzk4NDQx
RjAwRjg4RkU5IC8qIFdlYlNoYXJlZERldmljZU9yaWVudGF0aW9uQ2xpZW50UHJveHlNZXNzYWdl
UmVjZWl2ZXIuY3BwICovOyB9OworCQlFMzg2NkFFQzIzOTg0NDIwMDBGODhGRTkgLyogV2ViU2hh
cmVkRGV2aWNlT3JpZW50YXRpb25DbGllbnRQcm94eU1lc3NhZ2VzLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMzg2NkFFQTIzOTg0NDIwMDBGODhGRTkg
LyogV2ViU2hhcmVkRGV2aWNlT3JpZW50YXRpb25DbGllbnRQcm94eU1lc3NhZ2VzLmggKi87IH07
CisJCUUzOTYyOEREMjM5NjBDQzYwMDY1OEVDRCAvKiBXZWJTaGFyZWREZXZpY2VPcmllbnRhdGlv
bkNsaWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
RTM5NjI4REIyMzk2MENDNTAwNjU4RUNEIC8qIFdlYlNoYXJlZERldmljZU9yaWVudGF0aW9uQ2xp
ZW50LmggKi87IH07CisJCUUzOTYyOERFMjM5NjBDQzYwMDY1OEVDRCAvKiBXZWJTaGFyZWREZXZp
Y2VPcmllbnRhdGlvbkNsaWVudC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBFMzk2MjhEQzIzOTYwQ0M2MDA2NThFQ0QgLyogV2ViU2hhcmVkRGV2aWNl
T3JpZW50YXRpb25DbGllbnQuY3BwICovOyB9OwogCQlFNDEzRjU5RDFBQzFBREM0MDAzNDUzNjAg
LyogTmV0d29ya0NhY2hlRW50cnkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEU0MTNGNTlCMUFDMUFEQjYwMDM0NTM2MCAvKiBOZXR3b3JrQ2FjaGVFbnRy
eS5oICovOyB9OwogCQlFNDJFMDYxMDFBQTc1MjNCMDBCMTE2OTkgLyogTmV0d29ya0NhY2hlSU9D
aGFubmVsLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBF
NDJFMDYwQjFBQTc0NDBEMDBCMTE2OTkgLyogTmV0d29ya0NhY2hlSU9DaGFubmVsLmggKi87IH07
CiAJCUU0MkUwNjEyMUFBNzVBQkQwMEIxMTY5OSAvKiBOZXR3b3JrQ2FjaGVEYXRhLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFNDJFMDYxMTFBQTc1QUJE
MDBCMTE2OTkgLyogTmV0d29ya0NhY2hlRGF0YS5oICovOyB9OwpAQCAtNDc0OSw2ICs0NzU3LDE2
IEBACiAJCUUxRUU1M0RDMTFGOENGOUYwMENDQkVFNCAvKiBJbmplY3RlZEJ1bmRsZVBhZ2VFZGl0
b3JDbGllbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSW5qZWN0ZWRCdW5k
bGVQYWdlRWRpdG9yQ2xpZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUxRUU1
M0U2MTFGOENGRkIwMENDQkVFNCAvKiBJbmplY3RlZEJ1bmRsZVBhZ2VFZGl0b3JDbGllbnQuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSW5qZWN0ZWRCdW5kbGVQYWdl
RWRpdG9yQ2xpZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTM0MzlCNjMy
MzQ1NDYzQTAwMTFERTBCIC8qIE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbkluZm8uaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBuYW1lID0gTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uSW5mby5oOyBwYXRoID0gTmV0d29yay9O
ZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb25JbmZvLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCUUzODY2QUREMjM5NzMzOEUwMEY4OEZFOSAvKiBXZWJTaGFyZWREZXZpY2VPcmllbnRhdGlv
bkNsaWVudE1lc3NhZ2VSZWNlaXZlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IG5hbWUgPSBXZWJTaGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudE1lc3NhZ2VSZWNlaXZlci5j
cHA7IHBhdGggPSBEZXJpdmVkU291cmNlcy9XZWJLaXQyL1dlYlNoYXJlZERldmljZU9yaWVudGF0
aW9uQ2xpZW50TWVzc2FnZVJlY2VpdmVyLmNwcDsgc291cmNlVHJlZSA9IEJVSUxUX1BST0RVQ1RT
X0RJUjsgfTsKKwkJRTM4NjZBREUyMzk3MzM4RTAwRjg4RkU5IC8qIFdlYlNoYXJlZERldmljZU9y
aWVudGF0aW9uQ2xpZW50TWVzc2FnZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1l
ID0gV2ViU2hhcmVkRGV2aWNlT3JpZW50YXRpb25DbGllbnRNZXNzYWdlcy5oOyBwYXRoID0gRGVy
aXZlZFNvdXJjZXMvV2ViS2l0Mi9XZWJTaGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudE1lc3Nh
Z2VzLmg7IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7IH07CisJCUUzODY2QUU0MjM5
NzQwMDQwMEY4OEZFOSAvKiBXZWJTaGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudFByb3h5Lm1t
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBuYW1lID0gV2ViU2hhcmVkRGV2aWNl
T3JpZW50YXRpb25DbGllbnRQcm94eS5tbTsgcGF0aCA9IGlvcy9XZWJTaGFyZWREZXZpY2VPcmll
bnRhdGlvbkNsaWVudFByb3h5Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFMzg2
NkFFNjIzOTc0MDUzMDBGODhGRTkgLyogV2ViU2hhcmVkRGV2aWNlT3JpZW50YXRpb25DbGllbnRQ
cm94eS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBXZWJTaGFyZWREZXZpY2VP
cmllbnRhdGlvbkNsaWVudFByb3h5Lmg7IHBhdGggPSBpb3MvV2ViU2hhcmVkRGV2aWNlT3JpZW50
YXRpb25DbGllbnRQcm94eS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFMzg2NkFF
OTIzOTg0NDFGMDBGODhGRTkgLyogV2ViU2hhcmVkRGV2aWNlT3JpZW50YXRpb25DbGllbnRQcm94
eU1lc3NhZ2VSZWNlaXZlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUg
PSBXZWJTaGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudFByb3h5TWVzc2FnZVJlY2VpdmVyLmNw
cDsgcGF0aCA9IERlcml2ZWRTb3VyY2VzL1dlYktpdDIvV2ViU2hhcmVkRGV2aWNlT3JpZW50YXRp
b25DbGllbnRQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHA7IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9E
VUNUU19ESVI7IH07CisJCUUzODY2QUVBMjM5ODQ0MjAwMEY4OEZFOSAvKiBXZWJTaGFyZWREZXZp
Y2VPcmllbnRhdGlvbkNsaWVudFByb3h5TWVzc2FnZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBuYW1lID0gV2ViU2hhcmVkRGV2aWNlT3JpZW50YXRpb25DbGllbnRQcm94eU1lc3NhZ2Vz
Lmg7IHBhdGggPSBEZXJpdmVkU291cmNlcy9XZWJLaXQyL1dlYlNoYXJlZERldmljZU9yaWVudGF0
aW9uQ2xpZW50UHJveHlNZXNzYWdlcy5oOyBzb3VyY2VUcmVlID0gQlVJTFRfUFJPRFVDVFNfRElS
OyB9OworCQlFMzg2NkFFRDIzOTg0NzFBMDBGODhGRTkgLyogV2ViU2hhcmVkRGV2aWNlT3JpZW50
YXRpb25DbGllbnRQcm94eS5tZXNzYWdlcy5pbiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IG5hbWUgPSBXZWJT
aGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudFByb3h5Lm1lc3NhZ2VzLmluOyBwYXRoID0gaW9z
L1dlYlNoYXJlZERldmljZU9yaWVudGF0aW9uQ2xpZW50UHJveHkubWVzc2FnZXMuaW47IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUUzOTYyOERCMjM5NjBDQzUwMDY1OEVDRCAvKiBXZWJT
aGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBXZWJTaGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudC5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQlFMzk2MjhEQzIzOTYwQ0M2MDA2NThFQ0QgLyogV2ViU2hhcmVkRGV2
aWNlT3JpZW50YXRpb25DbGllbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gV2ViU2hhcmVkRGV2aWNlT3JpZW50YXRpb25DbGllbnQuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQlFMzk2MjhFNDIzOTcxRjM0MDA2NThFQ0QgLyogV2ViU2hhcmVkRGV2
aWNlT3JpZW50YXRpb25DbGllbnQubWVzc2FnZXMuaW4gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0g
V2ViU2hhcmVkRGV2aWNlT3JpZW50YXRpb25DbGllbnQubWVzc2FnZXMuaW47IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCUU0MDQ5MDcwMjFERTY1RjcwMDM3RjBEQiAvKiBTY3JvbGxlclBh
aXJNYWMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU2Nyb2xsZXJQYWlyTWFj
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUU0MDQ5MDcxMjFERTY1RjcwMDM3RjBE
QiAvKiBTY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlUmVtb3RlTWFjLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNjcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGlu
Z05vZGVSZW1vdGVNYWMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFNDA0OTA3
MjIxREU2NUY3MDAzN0YwREIgLyogU2Nyb2xsZXJQYWlyTWFjLm1tICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAub2JqY3BwOyBwYXRoID0gU2Nyb2xsZXJQYWlyTWFjLm1tOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwpAQCAtNTg1Nyw2ICs1ODc1LDkgQEAKIAkJCQkyRDI4RjNFMzE4ODVDQ0Mx
MDA0QjlFQUUgLyogV2ViRnJhbWVMb2FkZXJDbGllbnRJT1MubW0gKi8sCiAJCQkJQTFDNTEyQzYx
OTA2NTZFNTAwNDQ4OTE0IC8qIFdlYlByZXZpZXdMb2FkZXJDbGllbnQuY3BwICovLAogCQkJCUEx
QzUxMkM3MTkwNjU2RTUwMDQ0ODkxNCAvKiBXZWJQcmV2aWV3TG9hZGVyQ2xpZW50LmggKi8sCisJ
CQkJRTM5NjI4REMyMzk2MENDNjAwNjU4RUNEIC8qIFdlYlNoYXJlZERldmljZU9yaWVudGF0aW9u
Q2xpZW50LmNwcCAqLywKKwkJCQlFMzk2MjhEQjIzOTYwQ0M1MDA2NThFQ0QgLyogV2ViU2hhcmVk
RGV2aWNlT3JpZW50YXRpb25DbGllbnQuaCAqLywKKwkJCQlFMzk2MjhFNDIzOTcxRjM0MDA2NThF
Q0QgLyogV2ViU2hhcmVkRGV2aWNlT3JpZW50YXRpb25DbGllbnQubWVzc2FnZXMuaW4gKi8sCiAJ
CQkpOwogCQkJbmFtZSA9IGlvczsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CkBAIC02MTQ0
LDYgKzYxNjUsOSBAQAogCQkJCUU1QkVGNjgxMjEzMEM0N0YwMEYzMTExMSAvKiBXZWJEYXRhTGlz
dFN1Z2dlc3Rpb25zRHJvcGRvd25JT1MubW0gKi8sCiAJCQkJMkRBOTQ0QUIxODg0RTlCQTAwRUQ4
NkRCIC8qIFdlYlBhZ2VQcm94eUlPUy5tbSAqLywKIAkJCQkyREE5NDRBQzE4ODRFOUJBMDBFRDg2
REIgLyogV2ViUHJvY2Vzc1Byb3h5SU9TLm1tICovLAorCQkJCUUzODY2QUU2MjM5NzQwNTMwMEY4
OEZFOSAvKiBXZWJTaGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudFByb3h5LmggKi8sCisJCQkJ
RTM4NjZBRUQyMzk4NDcxQTAwRjg4RkU5IC8qIFdlYlNoYXJlZERldmljZU9yaWVudGF0aW9uQ2xp
ZW50UHJveHkubWVzc2FnZXMuaW4gKi8sCisJCQkJRTM4NjZBRTQyMzk3NDAwNDAwRjg4RkU5IC8q
IFdlYlNoYXJlZERldmljZU9yaWVudGF0aW9uQ2xpZW50UHJveHkubW0gKi8sCiAJCQkJMEZDQjRF
MzgxOEJCRTA0NDAwMEZDRkM5IC8qIFdLQWN0aW9uU2hlZXQuaCAqLywKIAkJCQkwRkNCNEUzOTE4
QkJFMDQ0MDAwRkNGQzkgLyogV0tBY3Rpb25TaGVldC5tbSAqLywKIAkJCQkwRkNCNEUzQTE4QkJF
MDQ0MDAwRkNGQzkgLyogV0tBY3Rpb25TaGVldEFzc2lzdGFudC5oICovLApAQCAtOTAyNyw2ICs5
MDUxLDEwIEBACiAJCQkJNTFGMDYwREQxNjU0MzE3NTAwRjMyODFGIC8qIFdlYlJUQ01vbml0b3JN
ZXNzYWdlUmVjZWl2ZXIuY3BwICovLAogCQkJCTUxRjA2MEREMTY1NDMxNzUwMEYzMjgyQyAvKiBX
ZWJSVENSZXNvbHZlck1lc3NhZ2VSZWNlaXZlci5jcHAgKi8sCiAJCQkJNTFGMDYwREQxNjU0MzE3
NTAwRjMyODFDIC8qIFdlYlJUQ1NvY2tldE1lc3NhZ2VSZWNlaXZlci5jcHAgKi8sCisJCQkJRTM4
NjZBREQyMzk3MzM4RTAwRjg4RkU5IC8qIFdlYlNoYXJlZERldmljZU9yaWVudGF0aW9uQ2xpZW50
TWVzc2FnZVJlY2VpdmVyLmNwcCAqLywKKwkJCQlFMzg2NkFERTIzOTczMzhFMDBGODhGRTkgLyog
V2ViU2hhcmVkRGV2aWNlT3JpZW50YXRpb25DbGllbnRNZXNzYWdlcy5oICovLAorCQkJCUUzODY2
QUU5MjM5ODQ0MUYwMEY4OEZFOSAvKiBXZWJTaGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudFBy
b3h5TWVzc2FnZVJlY2VpdmVyLmNwcCAqLywKKwkJCQlFMzg2NkFFQTIzOTg0NDIwMDBGODhGRTkg
LyogV2ViU2hhcmVkRGV2aWNlT3JpZW50YXRpb25DbGllbnRQcm94eU1lc3NhZ2VzLmggKi8sCiAJ
CQkJNDFGMDYwREQxNjU0MzE3NTAwRjMyODFDIC8qIFdlYlNvY2tldENoYW5uZWxNZXNzYWdlUmVj
ZWl2ZXIuY3BwICovLAogCQkJCTVDMEIxNzc2MUU3Qzg3OUMwMEU5MTIzQyAvKiBXZWJTb2NrZXRT
dHJlYW1NZXNzYWdlUmVjZWl2ZXIuY3BwICovLAogCQkJCTVDMEIxNzc3MUU3Qzg3OUMwMEU5MTIz
QyAvKiBXZWJTb2NrZXRTdHJlYW1NZXNzYWdlcy5oICovLApAQCAtMTAwOTEsNiArMTAxMTksMTAg
QEAKIAkJCQk3QzM2MUQ3MzE5MjdGQTM2MDAzNkE1OUQgLyogV2ViU2NyaXB0TWVzc2FnZUhhbmRs
ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUQzQjk0ODQ5MTFGRjRCNjUwMDAzMkIzOSAvKiBXZWJT
ZWFyY2hQb3B1cE1lbnUuaCBpbiBIZWFkZXJzICovLAogCQkJCTUxQkVCNjJDMUYzQTVBRDcwMDUw
MjlCOSAvKiBXZWJTZXJ2aWNlV29ya2VyUHJvdmlkZXIuaCBpbiBIZWFkZXJzICovLAorCQkJCUUz
OTYyOEREMjM5NjBDQzYwMDY1OEVDRCAvKiBXZWJTaGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVu
dC5oIGluIEhlYWRlcnMgKi8sCisJCQkJRTM4NjZBREYyMzk3MzNGMDAwRjg4RkU5IC8qIFdlYlNo
YXJlZERldmljZU9yaWVudGF0aW9uQ2xpZW50TWVzc2FnZXMuaCBpbiBIZWFkZXJzICovLAorCQkJ
CUUzODY2QUU3MjM5NzQwNTMwMEY4OEZFOSAvKiBXZWJTaGFyZWREZXZpY2VPcmllbnRhdGlvbkNs
aWVudFByb3h5LmggaW4gSGVhZGVycyAqLywKKwkJCQlFMzg2NkFFQzIzOTg0NDIwMDBGODhGRTkg
LyogV2ViU2hhcmVkRGV2aWNlT3JpZW50YXRpb25DbGllbnRQcm94eU1lc3NhZ2VzLmggaW4gSGVh
ZGVycyAqLywKIAkJCQk1QzhERDM4MDFGRTQ1MjE2MDBGMkE1NTYgLyogV2Vic2l0ZUF1dG9wbGF5
UG9saWN5LmggaW4gSGVhZGVycyAqLywKIAkJCQkxQTQ4MzJENzFBOUNERjk2MDA4QjRERkUgLyog
V2Vic2l0ZURhdGEuaCBpbiBIZWFkZXJzICovLAogCQkJCTFBNDgzMkQxMUE5QkRDMkYwMDhCNERG
RSAvKiBXZWJzaXRlRGF0YVJlY29yZC5oIGluIEhlYWRlcnMgKi8sCkBAIC0xMTYyNCw2ICsxMTY1
NiwxMCBAQAogCQkJCTUxRjA2MEUxMTY1NDMxODUwMEYzMjgxRiAvKiBXZWJSVENNb25pdG9yTWVz
c2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTUxRjA2MEUxMTY1NDMxODUwMEYz
MjgyQyAvKiBXZWJSVENSZXNvbHZlck1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQk1MUYwNjBFMTE2NTQzMTg1MDBGMzI4MUMgLyogV2ViUlRDU29ja2V0TWVzc2FnZVJlY2Vp
dmVyLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUUzOTYyOERFMjM5NjBDQzYwMDY1OEVDRCAvKiBX
ZWJTaGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudC5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlF
Mzg2NkFFMDIzOTczM0Y1MDBGODhGRTkgLyogV2ViU2hhcmVkRGV2aWNlT3JpZW50YXRpb25DbGll
bnRNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJRTM4NjZBRTUyMzk3NDAw
NDAwRjg4RkU5IC8qIFdlYlNoYXJlZERldmljZU9yaWVudGF0aW9uQ2xpZW50UHJveHkubW0gaW4g
U291cmNlcyAqLywKKwkJCQlFMzg2NkFFQjIzOTg0NDIwMDBGODhGRTkgLyogV2ViU2hhcmVkRGV2
aWNlT3JpZW50YXRpb25DbGllbnRQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQk0MUYwNjBFMTE2NTQzMTg1MDBGMzI4MUMgLyogV2ViU29ja2V0Q2hhbm5lbE1lc3Nh
Z2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk1QzBCMTc3OTFFN0M4ODIxMDBFOTEy
M0MgLyogV2ViU29ja2V0U3RyZWFtTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCTQxMjg3RDRFMjI1RDFFQ0IwMDlBM0UyNiAvKiBXZWJTb2NrZXRUYXNrQ29jb2EubW0gaW4g
U291cmNlcyAqLywKSW5kZXg6IFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9y
dC9XZWJTaGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudC5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlNoYXJlZERldmljZU9yaWVu
dGF0aW9uQ2xpZW50LmNwcAkobm9uZXhpc3RlbnQpCisrKyBTb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvV2ViU2hhcmVkRGV2aWNlT3JpZW50YXRpb25DbGllbnQuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNzUgQEAKKy8qCisqIENvcHlyaWdodCAoQykgMjAxOSBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisqCisqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyogYXJlIG1ldDoKKyogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisqCisqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyogQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisqIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IKKyogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YKKyogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisqIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
CisqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpCisqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldlYlNo
YXJlZERldmljZU9yaWVudGF0aW9uQ2xpZW50LmgiCisKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZ
KSAmJiBFTkFCTEUoREVWSUNFX09SSUVOVEFUSU9OKQorCisjaW5jbHVkZSAiV2ViUGFnZS5oIgor
I2luY2x1ZGUgIldlYlByb2Nlc3MuaCIKKyNpbmNsdWRlICJXZWJTaGFyZWREZXZpY2VPcmllbnRh
dGlvbkNsaWVudE1lc3NhZ2VzLmgiCisjaW5jbHVkZSAiV2ViU2hhcmVkRGV2aWNlT3JpZW50YXRp
b25DbGllbnRQcm94eU1lc3NhZ2VzLmgiCisKKyNpbmNsdWRlIDxXZWJDb3JlL1dlYkNvcmVNb3Rp
b25NYW5hZ2VyQ2xpZW50Lmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitXZWJTaGFyZWREZXZp
Y2VPcmllbnRhdGlvbkNsaWVudDo6V2ViU2hhcmVkRGV2aWNlT3JpZW50YXRpb25DbGllbnQoV2Vi
UGFnZSYgcGFnZSkKKyAgICA6IG1fcGFnZShtYWtlV2Vha1B0cihwYWdlKSkKK3sKKyAgICBXZWJQ
cm9jZXNzOjpzaW5nbGV0b24oKS5hZGRNZXNzYWdlUmVjZWl2ZXIoTWVzc2FnZXM6OldlYlNoYXJl
ZERldmljZU9yaWVudGF0aW9uQ2xpZW50OjptZXNzYWdlUmVjZWl2ZXJOYW1lKCksIHBhZ2UuaWRl
bnRpZmllcigpLCAqdGhpcyk7Cit9CisKK1dlYlNoYXJlZERldmljZU9yaWVudGF0aW9uQ2xpZW50
Ojp+V2ViU2hhcmVkRGV2aWNlT3JpZW50YXRpb25DbGllbnQoKQoreworICAgIFdlYlByb2Nlc3M6
OnNpbmdsZXRvbigpLnJlbW92ZU1lc3NhZ2VSZWNlaXZlcihNZXNzYWdlczo6V2ViU2hhcmVkRGV2
aWNlT3JpZW50YXRpb25DbGllbnQ6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSk7Cit9CisKK3ZvaWQg
V2ViU2hhcmVkRGV2aWNlT3JpZW50YXRpb25DbGllbnQ6OnN0YXJ0VXBkYXRpbmcoV2ViQ29yZTo6
V2ViQ29yZU1vdGlvbk1hbmFnZXJDbGllbnQmIGNsaWVudCkKK3sKKyAgICBpZiAobV9jbGllbnRz
LmlzRW1wdHkoKSAmJiBtX3BhZ2UpCisgICAgICAgIG1fcGFnZS0+c2VuZChNZXNzYWdlczo6V2Vi
U2hhcmVkRGV2aWNlT3JpZW50YXRpb25DbGllbnRQcm94eTo6U3RhcnRVcGRhdGluZ0RldmljZU9y
aWVudGF0aW9uKCkpOworICAgIG1fY2xpZW50cy5hZGQoJmNsaWVudCk7Cit9CisKK3ZvaWQgV2Vi
U2hhcmVkRGV2aWNlT3JpZW50YXRpb25DbGllbnQ6OnN0b3BVcGRhdGluZyhXZWJDb3JlOjpXZWJD
b3JlTW90aW9uTWFuYWdlckNsaWVudCYgY2xpZW50KQoreworICAgIGlmIChtX2NsaWVudHMuaXNF
bXB0eSgpKQorICAgICAgICByZXR1cm47CisgICAgbV9jbGllbnRzLnJlbW92ZSgmY2xpZW50KTsK
KyAgICBpZiAobV9jbGllbnRzLmlzRW1wdHkoKSAmJiBtX3BhZ2UpCisgICAgICAgIG1fcGFnZS0+
c2VuZChNZXNzYWdlczo6V2ViU2hhcmVkRGV2aWNlT3JpZW50YXRpb25DbGllbnRQcm94eTo6U3Rv
cFVwZGF0aW5nRGV2aWNlT3JpZW50YXRpb24oKSk7Cit9CisKK3ZvaWQgV2ViU2hhcmVkRGV2aWNl
T3JpZW50YXRpb25DbGllbnQ6OmRldmljZU9yaWVudGF0aW9uQ2hhbmdlZChkb3VibGUgYWxwaGEs
IGRvdWJsZSBiZXRhLCBkb3VibGUgZ2FtbWEsIGRvdWJsZSBjb21wYXNzSGVhZGluZywgZG91Ymxl
IGNvbXBhc3NBY2N1cmFjeSkKK3sKKyAgICBmb3IgKGF1dG8qIGNsaWVudCA6IGNvcHlUb1ZlY3Rv
cihtX2NsaWVudHMpKQorICAgICAgICBjbGllbnQtPm9yaWVudGF0aW9uQ2hhbmdlZChhbHBoYSwg
YmV0YSwgZ2FtbWEsIGNvbXBhc3NIZWFkaW5nLCBjb21wYXNzQWNjdXJhY3kpOworfQorCit9CisK
KyNlbmRpZiAvLyBQTEFURk9STShJT1NfRkFNSUxZKSAmJiBFTkFCTEUoREVWSUNFX09SSUVOVEFU
SU9OKQpJbmRleDogU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlNo
YXJlZERldmljZU9yaWVudGF0aW9uQ2xpZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlNoYXJlZERldmljZU9yaWVudGF0aW9uQ2xp
ZW50LmgJKG5vbmV4aXN0ZW50KQorKysgU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0L1dlYlNoYXJlZERldmljZU9yaWVudGF0aW9uQ2xpZW50LmgJKHdvcmtpbmcgY29weSkK
QEAgLTAsMCArMSw2MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOSBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAi
TWVzc2FnZVJlY2VpdmVyLmgiCisjaW5jbHVkZSAiV2ViUGFnZS5oIgorCisjaW5jbHVkZSA8V2Vi
Q29yZS9TaGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudC5oPgorCisjaW5jbHVkZSA8d3RmL0hh
c2hTZXQuaD4KKyNpbmNsdWRlIDx3dGYvV2Vha1B0ci5oPgorCisjaWYgUExBVEZPUk0oSU9TX0ZB
TUlMWSkgJiYgRU5BQkxFKERFVklDRV9PUklFTlRBVElPTikKKworbmFtZXNwYWNlIFdlYktpdCB7
CisKK2NsYXNzIFdlYlNoYXJlZERldmljZU9yaWVudGF0aW9uQ2xpZW50IGZpbmFsIDogcHVibGlj
IFdlYkNvcmU6OlNoYXJlZERldmljZU9yaWVudGF0aW9uQ2xpZW50LCBwcml2YXRlIElQQzo6TWVz
c2FnZVJlY2VpdmVyIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmPFdlYlNoYXJlZERldmljZU9y
aWVudGF0aW9uQ2xpZW50PiBjcmVhdGUoV2ViUGFnZSYgcGFnZSkgeyByZXR1cm4gYWRvcHRSZWYo
Km5ldyBXZWJTaGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudChwYWdlKSk7fQorCitwcml2YXRl
OgorICAgIFdlYlNoYXJlZERldmljZU9yaWVudGF0aW9uQ2xpZW50KFdlYlBhZ2UmKTsKKyAgICB+
V2ViU2hhcmVkRGV2aWNlT3JpZW50YXRpb25DbGllbnQoKTsKKworICAgIC8vIFdlYkNvcmU6OlNo
YXJlZERldmljZU9yaWVudGF0aW9uQ2xpZW50CisgICAgdm9pZCBzdGFydFVwZGF0aW5nKFdlYkNv
cmU6OldlYkNvcmVNb3Rpb25NYW5hZ2VyQ2xpZW50JikgZmluYWw7CisgICAgdm9pZCBzdG9wVXBk
YXRpbmcoV2ViQ29yZTo6V2ViQ29yZU1vdGlvbk1hbmFnZXJDbGllbnQmKSBmaW5hbDsKKyAgICB2
b2lkIGRldmljZU9yaWVudGF0aW9uQ2hhbmdlZChkb3VibGUsIGRvdWJsZSwgZG91YmxlLCBkb3Vi
bGUsIGRvdWJsZSkgZmluYWw7CisKKyAgICAvLyBJUEM6Ok1lc3NhZ2VSZWNlaXZlci4KKyAgICB2
b2lkIGRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6RGVjb2RlciYpIG92
ZXJyaWRlOworCisgICAgV2Vha1B0cjxXZWJQYWdlPiBtX3BhZ2U7CisgICAgSGFzaFNldDxXZWJD
b3JlOjpXZWJDb3JlTW90aW9uTWFuYWdlckNsaWVudCo+IG1fY2xpZW50czsKK307CisKK30KKwor
I2VuZGlmIC8vIFBMQVRGT1JNKElPU19GQU1JTFkpICYmIEVOQUJMRShERVZJQ0VfT1JJRU5UQVRJ
T04pCkluZGV4OiBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViU2hh
cmVkRGV2aWNlT3JpZW50YXRpb25DbGllbnQubWVzc2FnZXMuaW4KPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlNoYXJlZERldmljZU9yaWVu
dGF0aW9uQ2xpZW50Lm1lc3NhZ2VzLmluCShub25leGlzdGVudCkKKysrIFNvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJTaGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVu
dC5tZXNzYWdlcy5pbgkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDI3IEBACisjIENvcHlyaWdo
dCAoQykgMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjCisjIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyMgYXJlIG1ldDoKKyMgMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisjIDIu
ICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorIyAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorIyAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyMKKyMgVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJyBBTkQKKyMgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyMgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQor
IyBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklC
VVRPUlMgQkUgTElBQkxFIEZPUgorIyBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMCisjIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9S
CisjIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1Mg
SU5URVJSVVBUSU9OKSBIT1dFVkVSCisjIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksCisjIE9SIFRPUlQg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFCisjIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKSAm
JiBFTkFCTEUoREVWSUNFX09SSUVOVEFUSU9OKQorbWVzc2FnZXMgLT4gV2ViU2hhcmVkRGV2aWNl
T3JpZW50YXRpb25DbGllbnQgeworICAgIERldmljZU9yaWVudGF0aW9uQ2hhbmdlZChkb3VibGUg
YWxwaGEsIGRvdWJsZSBiZXRhLCBkb3VibGUgZ2FtbWEsIGRvdWJsZSBjb21wYXNzSGVhZGluZywg
ZG91YmxlIGNvbXBhc3NBY2N1cmFjeSkKK30KKyNlbmRpZgpJbmRleDogU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAJKHJldmlzaW9uIDI1MzA1OSkKKysrIFNv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0zMDcsNiArMzA3LDEwIEBACiAjaW5jbHVkZSA8V2ViQ29yZS9BdXRoZW50aWNhdG9yQ29v
cmRpbmF0b3IuaD4KICNlbmRpZgogCisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkgJiYgRU5BQkxF
KERFVklDRV9PUklFTlRBVElPTikKKyNpbmNsdWRlICJXZWJTaGFyZWREZXZpY2VPcmllbnRhdGlv
bkNsaWVudC5oIgorI2VuZGlmCisKIG5hbWVzcGFjZSBXZWJLaXQgewogdXNpbmcgbmFtZXNwYWNl
IEpTQzsKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwpAQCAtNTAxLDYgKzUwNSwxMCBAQCBXZWJQ
YWdlOjpXZWJQYWdlKFBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgCiAjaWYgRU5BQkxFKEFQUExJQ0FU
SU9OX01BTklGRVNUKQogICAgIHBhZ2VDb25maWd1cmF0aW9uLmFwcGxpY2F0aW9uTWFuaWZlc3Qg
PSBwYXJhbWV0ZXJzLmFwcGxpY2F0aW9uTWFuaWZlc3Q7CiAjZW5kaWYKKyAgICAKKyNpZiBQTEFU
Rk9STShJT1NfRkFNSUxZKSAmJiBFTkFCTEUoREVWSUNFX09SSUVOVEFUSU9OKQorICAgIHBhZ2VD
b25maWd1cmF0aW9uLnNoYXJlZERldmljZU9yaWVudGF0aW9uQ2xpZW50ID0gV2ViU2hhcmVkRGV2
aWNlT3JpZW50YXRpb25DbGllbnQ6OmNyZWF0ZSgqdGhpcyk7CisjZW5kaWYKIAogICAgIG1fcGFn
ZSA9IG1ha2VVbmlxdWU8UGFnZT4oV1RGTW92ZShwYWdlQ29uZmlndXJhdGlvbikpOwogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>384848</attachid>
            <date>2019-12-04 14:55:01 -0800</date>
            <delta_ts>2019-12-05 13:52:18 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-204720-20191204145500.patch</filename>
            <type>text/plain</type>
            <size>61035</size>
            <attacher name="Per Arne Vollan">pvollan</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDI1MzEyMykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQ4IEBACisyMDE5LTEyLTA0ICBQZXIgQXJu
ZSBWb2xsYW4gIDxwdm9sbGFuQGFwcGxlLmNvbT4KKworICAgICAgICBbaU9TXSBDYWxscyB0byBk
ZXZpY2Ugb3JpZW50YXRpb24gQVBJIHNob3VsZCBiZSBkb25lIGluIHRoZSBVSSBwcm9jZXNzCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDQ3MjAKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGUgZGV2aWNl
IG9yaWVudGF0aW9uIEFQSSBvbiBpT1MgaXMgY29tbXVuaWNhdGluZyB3aXRoIGxvY2F0aW9uZC4g
U2luY2UgbWFjaCBsb29rdXAgdG8gdGhpcyBkYWVtb24KKyAgICAgICAgd2lsbCBiZSBjbG9zZWQs
IHRoZSBjYWxscyB0byB0aGlzIEFQSSBzaG91bGQgYmUgbW92ZWQgZnJvbSB0aGUgV2ViQ29udGVu
dCBwcm9jZXNzIHRvIHRoZSBVSSBwcm9jZXNzLgorICAgICAgICBUaGlzIHBhdGNoIGltcGxlbWVu
dHMgZm9yd2FyZGluZyBvZiB0aGUgZGV2aWNlIG9yaWVudGF0aW9uIHJlcXVlc3RzIHRvIHRoZSBV
SSBwcm9jZXNzIHRocm91Z2ggYSBuZXcKKyAgICAgICAgY2xhc3MsIFNoYXJlZERldmljZU9yaWVu
dGF0aW9uQ2xpZW50LCB3aGljaCBpcyBzdWJjbGFzc2VkIGJ5IFdlYlNoYXJlZERldmljZU9yaWVu
dGF0aW9uQ2xpZW50IGluCisgICAgICAgIG1vZGVybiBXZWJLaXQuIFRoaXMgY2xhc3MgaW1wbGVt
ZW50cyBmb3J3YXJkaW5nIG9mIHRoZSByZXF1ZXN0cyB0byB0aGUgVUkgcHJvY2VzcywgYW5kIHJl
Y2VpdmVzCisgICAgICAgIGRldmljZSBvcmllbnRhdGlvbiB1cGRhdGVzIGZyb20gdGhlIFVJIHBy
b2Nlc3MuIEFuIGluc3RhbmNlIG9mIHRoaXMgY2xhc3Mgd2lsbCBiZSBzaGFyZWQgYnkgYWxsCisg
ICAgICAgIGRldmljZSBvcmllbnRhdGlvbiBjbGllbnRzIG9uIGEgcGFnZSwgYW5kIHBhc3NlZCBh
cyBwYXJ0IG9mIHRoZSBwYWdlIGNvbmZpZ3VyYXRpb24gcGFyYW1ldGVycy4gT24KKyAgICAgICAg
dGhlIFVJIHByb2Nlc3Mgc2lkZSwgYSBuZXcgY2xhc3MgV2ViU2hhcmVkRGV2aWNlT3JpZW50YXRp
b25DbGllbnRQcm94eSBhdHRhY2hlZCB0byB0aGUgV2ViIHBhZ2UKKyAgICAgICAgcHJveHkgaXMg
dGFraW5nIGNhcmUgb2YgY2FsbGluZyB0aGUgZGV2aWNlIG9yaWVudGF0aW9uIEFQSSB0aHJvdWdo
IHRoZSBleGlzdGluZyBXZWJDb3JlTW90aW9uTWFuYWdlcgorICAgICAgICBPYmplY3RpdmUtQyBj
bGFzcywgYW5kIHNlbmQgZGV2aWNlIG9yaWVudGF0aW9uIHVwZGF0ZXMgYmFjayB0byB0aGUgV2Vi
IHByb2Nlc3MuIEFsc28sIHVzZSBhIHdlYWsKKyAgICAgICAgaGFzaCBzZXQgb2Ygb3JpZW50YXRp
b24gY2xpZW50cyBpbiBXZWJDb3JlTW90aW9uTWFuYWdlci4KKworICAgICAgICAqIFdlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBkb20vRGV2aWNlT3JpZW50YXRp
b25DbGllbnQuaDoKKyAgICAgICAgKiBkb20vRG9jdW1lbnQuY3BwOgorICAgICAgICAqIHBhZ2Uv
UGFnZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjptX3NoYXJlZERldmljZU9yaWVudGF0aW9uQ2xp
ZW50KToKKyAgICAgICAgKFdlYkNvcmU6Om1fYXBwbGljYXRpb25NYW5pZmVzdCk6IERlbGV0ZWQu
CisgICAgICAgICogcGFnZS9QYWdlLmg6CisgICAgICAgIChXZWJDb3JlOjpQYWdlOjpzaGFyZWRE
ZXZpY2VPcmllbnRhdGlvbkNsaWVudCBjb25zdCk6CisgICAgICAgICogcGFnZS9QYWdlQ29uZmln
dXJhdGlvbi5oOgorICAgICAgICAqIHBsYXRmb3JtL2lvcy9EZXZpY2VPcmllbnRhdGlvbkNsaWVu
dElPUy5oOgorICAgICAgICAqIHBsYXRmb3JtL2lvcy9EZXZpY2VPcmllbnRhdGlvbkNsaWVudElP
Uy5tbToKKyAgICAgICAgKFdlYkNvcmU6OkRldmljZU9yaWVudGF0aW9uQ2xpZW50SU9TOjpEZXZp
Y2VPcmllbnRhdGlvbkNsaWVudElPUyk6CisgICAgICAgIChXZWJDb3JlOjpEZXZpY2VPcmllbnRh
dGlvbkNsaWVudElPUzo6c3RhcnRVcGRhdGluZyk6CisgICAgICAgIChXZWJDb3JlOjpEZXZpY2VP
cmllbnRhdGlvbkNsaWVudElPUzo6c3RvcFVwZGF0aW5nKToKKyAgICAgICAgKFdlYkNvcmU6OkRl
dmljZU9yaWVudGF0aW9uQ2xpZW50SU9TOjpkZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXJEZXN0
cm95ZWQpOgorICAgICAgICAqIHBsYXRmb3JtL2lvcy9TaGFyZWREZXZpY2VPcmllbnRhdGlvbkNs
aWVudC5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlNoYXJlZERldmljZU9yaWVudGF0aW9u
Q2xpZW50Ojp+U2hhcmVkRGV2aWNlT3JpZW50YXRpb25DbGllbnQpOgorICAgICAgICAqIHBsYXRm
b3JtL2lvcy9XZWJDb3JlTW90aW9uTWFuYWdlci5oOgorICAgICAgICAqIHBsYXRmb3JtL2lvcy9X
ZWJDb3JlTW90aW9uTWFuYWdlci5tbToKKyAgICAgICAgKC1bV2ViQ29yZU1vdGlvbk1hbmFnZXIg
YWRkT3JpZW50YXRpb25DbGllbnQ6XSk6CisgICAgICAgICgtW1dlYkNvcmVNb3Rpb25NYW5hZ2Vy
IHJlbW92ZU9yaWVudGF0aW9uQ2xpZW50Ol0pOgorICAgICAgICAoLVtXZWJDb3JlTW90aW9uTWFu
YWdlciBjaGVja0NsaWVudFN0YXR1c10pOgorICAgICAgICAoLVtXZWJDb3JlTW90aW9uTWFuYWdl
ciBzZW5kTW90aW9uRGF0YTp3aXRoSGVhZGluZzpdKToKKyAgICAgICAgKiBwbGF0Zm9ybS9pb3Mv
V2ViQ29yZU1vdGlvbk1hbmFnZXJDbGllbnQuaDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpX
ZWJDb3JlTW90aW9uTWFuYWdlckNsaWVudDo6fldlYkNvcmVNb3Rpb25NYW5hZ2VyQ2xpZW50KToK
KwogMjAxOS0xMi0wNCAgQWxleGV5IFNodmF5a2EgIDxzaHZhaWthbGVzaEBnbWFpbC5jb20+CiAK
ICAgICAgICAgTm9uLWNhbGxhYmxlICJoYW5kbGVFdmVudCIgcHJvcGVydHkgaXMgc2lsZW50bHkg
aWdub3JlZApJbmRleDogU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagkocmV2aXNpb24gMjUzMTIzKQorKysgU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCSh3b3JraW5nIGNvcHkpCkBAIC05MDksNyArOTA5
LDcgQEAKIAkJMzEzNTkxMEExRTdEREM3MzAwRjMwNjMwIC8qIFJUQ1NkcFR5cGUuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMxMzU5MTA0MUU3RERDNjAw
MEYzMDYzMCAvKiBSVENTZHBUeXBlLmggKi87IH07CiAJCTMxMzU5MTBCMUU3RERDNzMwMEYzMDYz
MCAvKiBSVENTaWduYWxpbmdTdGF0ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gMzEzNTkxMDUxRTdEREM2MDAwRjMwNjMwIC8qIFJUQ1NpZ25hbGluZ1N0
YXRlLmggKi87IH07CiAJCTMxM0JDRTFDMjM1RTNCRTUwMEZDMzlFNSAvKiBFbGVtZW50Q29udGV4
dC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzEzQkNF
MUIyMzVFM0JEQjAwRkMzOUU1IC8qIEVsZW1lbnRDb250ZXh0LmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKLQkJMzE0MDM3OUIxMjRCRUE3RjAwQUY0MEU0
IC8qIFdlYkNvcmVNb3Rpb25NYW5hZ2VyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSAzMTQwMzc5NzEyNEJFQTdGMDBBRjQwRTQgLyogV2ViQ29yZU1vdGlv
bk1hbmFnZXIuaCAqLzsgfTsKKwkJMzE0MDM3OUIxMjRCRUE3RjAwQUY0MEU0IC8qIFdlYkNvcmVN
b3Rpb25NYW5hZ2VyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSAzMTQwMzc5NzEyNEJFQTdGMDBBRjQwRTQgLyogV2ViQ29yZU1vdGlvbk1hbmFnZXIuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkzMTQwMzc5
RDEyNEJFQTdGMDBBRjQwRTQgLyogRGV2aWNlT3JpZW50YXRpb25DbGllbnRJT1MuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMxNDAzNzk5MTI0QkVBN0Yw
MEFGNDBFNCAvKiBEZXZpY2VPcmllbnRhdGlvbkNsaWVudElPUy5oICovOyB9OwogCQkzMTQwQzUy
MDFGREYxNTFBMDBEMkE4NzMgLyogT2Zmc2NyZWVuQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzMTQwQzUxRTFG
REYxNTFBMDBEMkE4NzMgLyogT2Zmc2NyZWVuQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmggKi87
IH07CiAJCTMxNDBDNTI0MUZERjMxODcwMEQyQTg3MyAvKiBDYW52YXNSZW5kZXJpbmdDb250ZXh0
MkRCYXNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAz
MTQwQzUyMjFGREYzMTg2MDBEMkE4NzMgLyogQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEQmFzZS5o
ICovOyB9OwpAQCAtNDc4MCw2ICs0NzgwLDggQEAKIAkJRTM1ODAyQjYxREM4NDM1RDAwQTk3NzND
IC8qIERPTUpJVElETFR5cGVGaWx0ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEUzNTgwMkI1MURDODQzNTgwMEE5NzczQyAvKiBET01KSVRJRExUeXBl
RmlsdGVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
IAkJRTM3N0ZFNEQxREFERTE2NTAwQ0REMDI1IC8qIE5vZGVDb25zdGFudHMuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUzRDA0OTkzMURBREMwNDUwMDcx
OEYzQyAvKiBOb2RlQ29uc3RhbnRzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKIAkJRTM3Qzg2NTAxRUI2M0UzRjAwODdDNkNBIC8qIEpTRE9NUHJvbWlz
ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTM3Qzg2
NEYxRUI2M0UyRDAwODdDNkNBIC8qIEpTRE9NUHJvbWlzZS5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCUUzOTYyOEJGMjM5NTcyOEYwMDY1OEVDRCAv
KiBTaGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTM5NjI4QkQyMzk1NzI4RTAwNjU4RUNEIC8qIFNoYXJl
ZERldmljZU9yaWVudGF0aW9uQ2xpZW50LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAo
UHJpdmF0ZSwgKTsgfTsgfTsKKwkJRTM5NjI4QzEyMzk1NzQzMTAwNjU4RUNEIC8qIFdlYkNvcmVN
b3Rpb25NYW5hZ2VyQ2xpZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBFMzk2MjhDMDIzOTU3NDMwMDA2NThFQ0QgLyogV2ViQ29yZU1vdGlvbk1hbmFn
ZXJDbGllbnQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OwogCQlFM0E3NzY2NzFEQzg1RDI4MDBCNjkwRDggLyogRE9NSklUSURMQ29udmVydC5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTNBNzc2NjUxREM4NUQy
MjAwQjY5MEQ4IC8qIERPTUpJVElETENvbnZlcnQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRF
UyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlFM0E3NzY2ODFEQzg1RDI4MDBCNjkwRDggLyogRE9N
SklUSURMVHlwZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gRTNBNzc2NjYxREM4NUQyMjAwQjY5MEQ4IC8qIERPTUpJVElETFR5cGUuaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlFM0IyRjBFRDFEN0Y0Q0Ez
MDBCMEM5RDEgLyogTG9hZGFibGVTY3JpcHQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEUzQjJGMEU3MUQ3RjM1RUMwMEIwQzlEMSAvKiBMb2FkYWJsZVNj
cmlwdC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CkBA
IC0xNTA4NSw2ICsxNTA4Nyw4IEBACiAJCUUzODgzODk0MUJBRDE0NUYwMEQ2MkVFMyAvKiBTY3Jp
cHRNb2R1bGVMb2FkZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
U2NyaXB0TW9kdWxlTG9hZGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTM4
ODM4OTUxQkFEMTQ1RjAwRDYyRUUzIC8qIFNjcmlwdE1vZHVsZUxvYWRlci5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBTY3JpcHRNb2R1bGVMb2FkZXIuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJRTM4RDA2MDkxRjhFODExOTAwNjQ5Q0YyIC8qIE1vZHVsZUZldGNo
UGFyYW1ldGVycy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBNb2R1bGVGZXRj
aFBhcmFtZXRlcnMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTM5NjI4QkQyMzk1
NzI4RTAwNjU4RUNEIC8qIFNoYXJlZERldmljZU9yaWVudGF0aW9uQ2xpZW50LmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNoYXJlZERldmljZU9yaWVudGF0aW9uQ2xpZW50Lmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUUzOTYyOEMwMjM5NTc0MzAwMDY1OEVDRCAv
KiBXZWJDb3JlTW90aW9uTWFuYWdlckNsaWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBXZWJDb3JlTW90aW9uTWFuYWdlckNsaWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQlFMzk3NUI3NjFFQzlBRjM5MDA4NDc3MTcgLyogSlNEb2N1bWVudEZyYWdtZW50
RE9NSklULmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTRG9jdW1l
bnRGcmFnbWVudERPTUpJVC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUzOTc1
Qjc3MUVDOUFGMzkwMDg0NzcxNyAvKiBKU0VsZW1lbnRET01KSVQuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNFbGVtZW50RE9NSklULmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJRTM5NzVCNzgxRUM5QUYzOTAwODQ3NzE3IC8qIEpTRXZlbnRET01K
SVQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNFdmVudERPTUpJ
VC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0yMjg1MCw2ICsyMjg1NCw3IEBA
CiAJCQkJRTQ1MzkwMzQwRUFGRDYzNzAwMzY5NUM4IC8qIFNjcm9sbFZpZXdJT1MubW0gKi8sCiAJ
CQkJQkVBODA3QzYwRjcxNEEwMzAwNTI0MTk5IC8qIFNlbGVjdGlvblJlY3QuY3BwICovLAogCQkJ
CUJFQTgwN0M3MEY3MTRBMDMwMDUyNDE5OSAvKiBTZWxlY3Rpb25SZWN0LmggKi8sCisJCQkJRTM5
NjI4QkQyMzk1NzI4RTAwNjU4RUNEIC8qIFNoYXJlZERldmljZU9yaWVudGF0aW9uQ2xpZW50Lmgg
Ki8sCiAJCQkJMEYwM0MwNzMxODg0Njk1RTAwQTVGOENBIC8qIFN5c3RlbU1lbW9yeS5oICovLAog
CQkJCUU0NTM5MEFEMEVBRkY0QjUwMDM2OTVDOCAvKiBTeXN0ZW1NZW1vcnlJT1MuY3BwICovLAog
CQkJCTQ0Qzk5MTlEMEYzRDIxMEUwMDU4NjY3MCAvKiBUaGVtZUlPUy5oICovLApAQCAtMjI4NjYs
NiArMjI4NzEsNyBAQAogCQkJCTFGMzZFQTlCMUUyMUJBMTcwMDYyMUUyNSAvKiBXZWJCYWNrZ3Jv
dW5kVGFza0NvbnRyb2xsZXIubW0gKi8sCiAJCQkJMzE0MDM3OTcxMjRCRUE3RjAwQUY0MEU0IC8q
IFdlYkNvcmVNb3Rpb25NYW5hZ2VyLmggKi8sCiAJCQkJMzE0MDM3OTgxMjRCRUE3RjAwQUY0MEU0
IC8qIFdlYkNvcmVNb3Rpb25NYW5hZ2VyLm1tICovLAorCQkJCUUzOTYyOEMwMjM5NTc0MzAwMDY1
OEVDRCAvKiBXZWJDb3JlTW90aW9uTWFuYWdlckNsaWVudC5oICovLAogCQkJCUZFMEQ4NEU4MTA0
ODQzNDgwMDFBMTc5RSAvKiBXZWJFdmVudC5oICovLAogCQkJCUZFMEQ4NEVBMTA0ODQzNkUwMDFB
MTc5RSAvKiBXZWJFdmVudC5tbSAqLywKIAkJCQlGNDgyMjMwRjFFMzg2OUI4MDA2NkZDNzkgLyog
V2ViSXRlbVByb3ZpZGVyUGFzdGVib2FyZC5oICovLApAQCAtMzIyMDUsNiArMzIyMTEsNyBAQAog
CQkJCUZEMUFGMTUwMTY1NkYxNTEwMEM2RDRGNyAvKiBTaGFwZVZhbHVlLmggaW4gSGVhZGVycyAq
LywKIAkJCQkxRDlGMEZDMTIxMjIwMjlCMDA1RDhGRDQgLyogU2hhcmVEYXRhLmggaW4gSGVhZGVy
cyAqLywKIAkJCQkxQTRBOTU0RTBCNEVEQ0NCMDAyRDhDM0MgLyogU2hhcmVkQnVmZmVyLmggaW4g
SGVhZGVycyAqLywKKwkJCQlFMzk2MjhCRjIzOTU3MjhGMDA2NThFQ0QgLyogU2hhcmVkRGV2aWNl
T3JpZW50YXRpb25DbGllbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTgzNERGQUQwMUY3REFFNUQw
MEMyNzI1QiAvKiBTaGFyZWRTdHJpbmdIYXNoLmggaW4gSGVhZGVycyAqLywKIAkJCQk5MzMwOUVB
MzA5OUVCNzhDMDA1NkU1ODEgLyogU2hhcmVkVGltZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTgz
NjJFOEMxMjBDRUY5Q0IwMDI0NTg4NiAvKiBTaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQuaCBp
biBIZWFkZXJzICovLApAQCAtMzI4MjQsNiArMzI4MzEsNyBAQAogCQkJCUJDNTNEOTExMTE0MzEw
Q0MwMDBEODE3RSAvKiBXZWJDb3JlSlNDbGllbnREYXRhLmggaW4gSGVhZGVycyAqLywKIAkJCQk5
M0YxOTlCQjA4MjQ1RTU5MDAxRTlBQkMgLyogV2ViQ29yZUtleWJvYXJkVUlNb2RlLmggaW4gSGVh
ZGVycyAqLywKIAkJCQkzMTQwMzc5QjEyNEJFQTdGMDBBRjQwRTQgLyogV2ViQ29yZU1vdGlvbk1h
bmFnZXIuaCBpbiBIZWFkZXJzICovLAorCQkJCUUzOTYyOEMxMjM5NTc0MzEwMDY1OEVDRCAvKiBX
ZWJDb3JlTW90aW9uTWFuYWdlckNsaWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQ0RDOTc5RjUx
QzQ5OEMwOTAwREI1MEQ0IC8qIFdlYkNvcmVOU0Vycm9yRXh0cmFzLmggaW4gSGVhZGVycyAqLywK
IAkJCQlGNEU1N0VFMTIxM0Y0MzRBMDA0RUE5OEUgLyogV2ViQ29yZU5TRm9udE1hbmFnZXJFeHRy
YXMuaCBpbiBIZWFkZXJzICovLAogCQkJCUM1QjRDMjREMTUwOTIzNkMwMEE2RUYzNyAvKiBXZWJD
b3JlTlNVUkxFeHRyYXMuaCBpbiBIZWFkZXJzICovLApJbmRleDogU291cmNlL1dlYkNvcmUvZG9t
L0RldmljZU9yaWVudGF0aW9uQ2xpZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
ZG9tL0RldmljZU9yaWVudGF0aW9uQ2xpZW50LmgJKHJldmlzaW9uIDI1MzEyMykKKysrIFNvdXJj
ZS9XZWJDb3JlL2RvbS9EZXZpY2VPcmllbnRhdGlvbkNsaWVudC5oCSh3b3JraW5nIGNvcHkpCkBA
IC0yOCw2ICsyOCw3IEBACiAKICNpbmNsdWRlICJEZXZpY2VDbGllbnQuaCIKICNpbmNsdWRlIDx3
dGYvTm9uY29weWFibGUuaD4KKyNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CiAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIApJbmRleDogU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCShyZXZpc2lvbiAyNTMxMjMp
CisrKyBTb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01
NjUsNyArNTY1LDcgQEAgRG9jdW1lbnQ6OkRvY3VtZW50KEZyYW1lKiBmcmFtZSwgY29uc3QgVQog
I2lmIFBMQVRGT1JNKElPU19GQU1JTFkpICYmIEVOQUJMRShERVZJQ0VfT1JJRU5UQVRJT04pCiAg
ICAgLCBtX2RldmljZU1vdGlvbkNsaWVudChtYWtlVW5pcXVlPERldmljZU1vdGlvbkNsaWVudElP
Uz4oKSkKICAgICAsIG1fZGV2aWNlTW90aW9uQ29udHJvbGxlcihtYWtlVW5pcXVlPERldmljZU1v
dGlvbkNvbnRyb2xsZXI+KCptX2RldmljZU1vdGlvbkNsaWVudCkpCi0gICAgLCBtX2RldmljZU9y
aWVudGF0aW9uQ2xpZW50KG1ha2VVbmlxdWU8RGV2aWNlT3JpZW50YXRpb25DbGllbnRJT1M+KCkp
CisgICAgLCBtX2RldmljZU9yaWVudGF0aW9uQ2xpZW50KG1ha2VVbmlxdWU8RGV2aWNlT3JpZW50
YXRpb25DbGllbnRJT1M+KHBhZ2UoKSA/IHBhZ2UoKS0+c2hhcmVkRGV2aWNlT3JpZW50YXRpb25D
bGllbnQoKSA6IG51bGxwdHIpKQogICAgICwgbV9kZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXIo
bWFrZVVuaXF1ZTxEZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXI+KCptX2RldmljZU9yaWVudGF0
aW9uQ2xpZW50KSkKICNlbmRpZgogICAgICwgbV9wZW5kaW5nVGFza3NUaW1lcigqdGhpcywgJkRv
Y3VtZW50OjpwZW5kaW5nVGFza3NUaW1lckZpcmVkKQpJbmRleDogU291cmNlL1dlYkNvcmUvcGFn
ZS9QYWdlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCShy
ZXZpc2lvbiAyNTMxMjMpCisrKyBTb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0yODksNiArMjg5LDkgQEAgUGFnZTo6UGFnZShQYWdlQ29uZmlndXJhdGlvbiYm
IHBhZ2VDb25maQogI2lmIEVOQUJMRShBUFBMSUNBVElPTl9NQU5JRkVTVCkKICAgICAsIG1fYXBw
bGljYXRpb25NYW5pZmVzdChwYWdlQ29uZmlndXJhdGlvbi5hcHBsaWNhdGlvbk1hbmlmZXN0KQog
I2VuZGlmCisjaWYgRU5BQkxFKERFVklDRV9PUklFTlRBVElPTikgJiYgUExBVEZPUk0oSU9TX0ZB
TUlMWSkKKyAgICAsIG1fc2hhcmVkRGV2aWNlT3JpZW50YXRpb25DbGllbnQoV1RGTW92ZShwYWdl
Q29uZmlndXJhdGlvbi5zaGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudCkpCisjZW5kaWYKIHsK
ICAgICB1cGRhdGVUaW1lclRocm90dGxpbmdTdGF0ZSgpOwogCkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9wYWdlL1BhZ2UuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuaAko
cmV2aXNpb24gMjUzMTIzKQorKysgU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmgJKHdvcmtpbmcg
Y29weSkKQEAgLTY5LDYgKzY5LDEwIEBACiAjaW5jbHVkZSAiTWVkaWFQbGF5YmFja1RhcmdldENv
bnRleHQuaCIKICNlbmRpZgogCisjaWYgRU5BQkxFKERFVklDRV9PUklFTlRBVElPTikgJiYgUExB
VEZPUk0oSU9TX0ZBTUlMWSkKKyNpbmNsdWRlICJTaGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVu
dC5oIgorI2VuZGlmCisKIG5hbWVzcGFjZSBKU0MgewogY2xhc3MgRGVidWdnZXI7CiB9CkBAIC03
MTksNiArNzIzLDEwIEBAIHB1YmxpYzoKIAogICAgIFdFQkNPUkVfRVhQT1JUIFZlY3RvcjxSZWY8
RWxlbWVudD4+IGVkaXRhYmxlRWxlbWVudHNJblJlY3QoY29uc3QgRmxvYXRSZWN0JikgY29uc3Q7
CiAKKyNpZiBFTkFCTEUoREVWSUNFX09SSUVOVEFUSU9OKSAmJiBQTEFURk9STShJT1NfRkFNSUxZ
KQorICAgIFNoYXJlZERldmljZU9yaWVudGF0aW9uQ2xpZW50KiBzaGFyZWREZXZpY2VPcmllbnRh
dGlvbkNsaWVudCgpIGNvbnN0IHsgcmV0dXJuIG1fc2hhcmVkRGV2aWNlT3JpZW50YXRpb25DbGll
bnQuZ2V0KCk7IH0KKyNlbmRpZgorCiBwcml2YXRlOgogICAgIHN0cnVjdCBOYXZpZ2F0aW9uIHsK
ICAgICAgICAgUmVnaXN0cmFibGVEb21haW4gZG9tYWluOwpAQCAtOTkwLDYgKzk5OCwxMCBAQCBw
cml2YXRlOgogCiAgICAgT3B0aW9uYWw8Vmlld3BvcnRBcmd1bWVudHM+IG1fb3ZlcnJpZGVWaWV3
cG9ydEFyZ3VtZW50czsKIAorI2lmIEVOQUJMRShERVZJQ0VfT1JJRU5UQVRJT04pICYmIFBMQVRG
T1JNKElPU19GQU1JTFkpCisgICAgUmVmUHRyPFNoYXJlZERldmljZU9yaWVudGF0aW9uQ2xpZW50
PiBtX3NoYXJlZERldmljZU9yaWVudGF0aW9uQ2xpZW50OworI2VuZGlmCisKICAgICBib29sIG1f
c2hvdWxkRW5hYmxlSUNFQ2FuZGlkYXRlRmlsdGVyaW5nQnlEZWZhdWx0IHsgdHJ1ZSB9OwogICAg
IGJvb2wgbV9tZWRpYVBsYXliYWNrSXNTdXNwZW5kZWQgeyBmYWxzZSB9OwogICAgIGJvb2wgbV9t
ZWRpYUJ1ZmZlcmluZ0lzU3VzcGVuZGVkIHsgZmFsc2UgfTsKSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L3BhZ2UvUGFnZUNvbmZpZ3VyYXRpb24uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9w
YWdlL1BhZ2VDb25maWd1cmF0aW9uLmgJKHJldmlzaW9uIDI1MzEyMykKKysrIFNvdXJjZS9XZWJD
b3JlL3BhZ2UvUGFnZUNvbmZpZ3VyYXRpb24uaAkod29ya2luZyBjb3B5KQpAQCAtNTcsNiArNTcs
NyBAQCBjbGFzcyBQZXJmb3JtYW5jZUxvZ2dpbmdDbGllbnQ7CiBjbGFzcyBQbHVnSW5DbGllbnQ7
CiBjbGFzcyBQbHVnaW5JbmZvUHJvdmlkZXI7CiBjbGFzcyBQcm9ncmVzc1RyYWNrZXJDbGllbnQ7
CitjbGFzcyBTaGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudDsKIGNsYXNzIFNvY2tldFByb3Zp
ZGVyOwogY2xhc3MgU3RvcmFnZU5hbWVzcGFjZVByb3ZpZGVyOwogY2xhc3MgVXNlckNvbnRlbnRQ
cm92aWRlcjsKQEAgLTExOCw2ICsxMTksMTAgQEAgcHVibGljOgogICAgIFJlZlB0cjxTdG9yYWdl
TmFtZXNwYWNlUHJvdmlkZXI+IHN0b3JhZ2VOYW1lc3BhY2VQcm92aWRlcjsKICAgICBSZWZQdHI8
VXNlckNvbnRlbnRQcm92aWRlcj4gdXNlckNvbnRlbnRQcm92aWRlcjsKICAgICBSZWZQdHI8Vmlz
aXRlZExpbmtTdG9yZT4gdmlzaXRlZExpbmtTdG9yZTsKKyAgICAKKyNpZiBFTkFCTEUoREVWSUNF
X09SSUVOVEFUSU9OKSAmJiBQTEFURk9STShJT1NfRkFNSUxZKQorICAgIFJlZlB0cjxTaGFyZWRE
ZXZpY2VPcmllbnRhdGlvbkNsaWVudD4gc2hhcmVkRGV2aWNlT3JpZW50YXRpb25DbGllbnQ7Cisj
ZW5kaWYKIH07CiAKIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9EZXZpY2VP
cmllbnRhdGlvbkNsaWVudElPUy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2lvcy9EZXZpY2VPcmllbnRhdGlvbkNsaWVudElPUy5oCShyZXZpc2lvbiAyNTMxMjMpCisr
KyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvRGV2aWNlT3JpZW50YXRpb25DbGllbnRJT1Mu
aAkod29ya2luZyBjb3B5KQpAQCAtMzAsMTUgKzMwLDE3IEBACiAjaW5jbHVkZSAiRGV2aWNlT3Jp
ZW50YXRpb25DbGllbnQuaCIKICNpbmNsdWRlICJEZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXIu
aCIKICNpbmNsdWRlICJEZXZpY2VPcmllbnRhdGlvbkRhdGEuaCIKKyNpbmNsdWRlICJTaGFyZWRE
ZXZpY2VPcmllbnRhdGlvbkNsaWVudC5oIgorI2luY2x1ZGUgIldlYkNvcmVNb3Rpb25NYW5hZ2Vy
Q2xpZW50LmgiCiAjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgogCiBPQkpDX0NMQVNTIFdlYkNvcmVN
b3Rpb25NYW5hZ2VyOwogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWNsYXNzIERldmljZU9yaWVu
dGF0aW9uQ2xpZW50SU9TIDogcHVibGljIERldmljZU9yaWVudGF0aW9uQ2xpZW50IHsKK2NsYXNz
IERldmljZU9yaWVudGF0aW9uQ2xpZW50SU9TIDogcHVibGljIERldmljZU9yaWVudGF0aW9uQ2xp
ZW50LCBwdWJsaWMgV2ViQ29yZU1vdGlvbk1hbmFnZXJDbGllbnQgewogcHVibGljOgotICAgIERl
dmljZU9yaWVudGF0aW9uQ2xpZW50SU9TKCk7CisgICAgRGV2aWNlT3JpZW50YXRpb25DbGllbnRJ
T1MoUmVmUHRyPFNoYXJlZERldmljZU9yaWVudGF0aW9uQ2xpZW50PiYmKTsKICAgICB+RGV2aWNl
T3JpZW50YXRpb25DbGllbnRJT1MoKSBvdmVycmlkZTsKICAgICB2b2lkIHNldENvbnRyb2xsZXIo
RGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyKikgb3ZlcnJpZGU7CiAgICAgdm9pZCBzdGFydFVw
ZGF0aW5nKCkgb3ZlcnJpZGU7CkBAIC00NiwxMiArNDgsMTMgQEAgcHVibGljOgogICAgIERldmlj
ZU9yaWVudGF0aW9uRGF0YSogbGFzdE9yaWVudGF0aW9uKCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAg
dm9pZCBkZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXJEZXN0cm95ZWQoKSBvdmVycmlkZTsKIAot
ICAgIHZvaWQgb3JpZW50YXRpb25DaGFuZ2VkKGRvdWJsZSwgZG91YmxlLCBkb3VibGUsIGRvdWJs
ZSwgZG91YmxlKTsKKyAgICB2b2lkIG9yaWVudGF0aW9uQ2hhbmdlZChkb3VibGUsIGRvdWJsZSwg
ZG91YmxlLCBkb3VibGUsIGRvdWJsZSkgb3ZlcnJpZGU7CiAKIHByaXZhdGU6CiAgICAgV2ViQ29y
ZU1vdGlvbk1hbmFnZXIqIG1fbW90aW9uTWFuYWdlcjsKICAgICBEZXZpY2VPcmllbnRhdGlvbkNv
bnRyb2xsZXIqIG1fY29udHJvbGxlcjsKICAgICBSZWZQdHI8RGV2aWNlT3JpZW50YXRpb25EYXRh
PiBtX2N1cnJlbnREZXZpY2VPcmllbnRhdGlvbjsKKyAgICBSZWZQdHI8U2hhcmVkRGV2aWNlT3Jp
ZW50YXRpb25DbGllbnQ+IG1fc2hhcmVkRGV2aWNlT3JpZW50YXRpb25DbGllbnQ7CiAgICAgYm9v
bCBtX3VwZGF0aW5nOwogfTsKIApJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL0Rl
dmljZU9yaWVudGF0aW9uQ2xpZW50SU9TLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2lvcy9EZXZpY2VPcmllbnRhdGlvbkNsaWVudElPUy5tbQkocmV2aXNpb24gMjUz
MTIzKQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL0RldmljZU9yaWVudGF0aW9uQ2xp
ZW50SU9TLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0zMywxMCArMzMsMTEgQEAKIAogbmFtZXNwYWNl
IFdlYkNvcmUgewogCi1EZXZpY2VPcmllbnRhdGlvbkNsaWVudElPUzo6RGV2aWNlT3JpZW50YXRp
b25DbGllbnRJT1MoKQorRGV2aWNlT3JpZW50YXRpb25DbGllbnRJT1M6OkRldmljZU9yaWVudGF0
aW9uQ2xpZW50SU9TKFJlZlB0cjxTaGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudD4mJiBzaGFy
ZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudCkKICAgICA6IERldmljZU9yaWVudGF0aW9uQ2xpZW50
KCkKICAgICAsIG1fbW90aW9uTWFuYWdlcihudWxscHRyKQotICAgICwgbV91cGRhdGluZygwKQor
ICAgICwgbV9zaGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudChXVEZNb3ZlKHNoYXJlZERldmlj
ZU9yaWVudGF0aW9uQ2xpZW50KSkKKyAgICAsIG1fdXBkYXRpbmcoZmFsc2UpCiB7CiB9CiAKQEAg
LTUzLDYgKzU0LDExIEBAIHZvaWQgRGV2aWNlT3JpZW50YXRpb25DbGllbnRJT1M6OnN0YXJ0VXAK
IHsKICAgICBtX3VwZGF0aW5nID0gdHJ1ZTsKIAorICAgIGlmIChtX3NoYXJlZERldmljZU9yaWVu
dGF0aW9uQ2xpZW50KSB7CisgICAgICAgIG1fc2hhcmVkRGV2aWNlT3JpZW50YXRpb25DbGllbnQt
PnN0YXJ0VXBkYXRpbmcoKnRoaXMpOworICAgICAgICByZXR1cm47CisgICAgfQorCiAgICAgaWYg
KCFtX21vdGlvbk1hbmFnZXIpCiAgICAgICAgIG1fbW90aW9uTWFuYWdlciA9IFtXZWJDb3JlTW90
aW9uTWFuYWdlciBzaGFyZWRNYW5hZ2VyXTsKIApAQCAtNjMsNiArNjksMTEgQEAgdm9pZCBEZXZp
Y2VPcmllbnRhdGlvbkNsaWVudElPUzo6c3RvcFVwZAogewogICAgIG1fdXBkYXRpbmcgPSBmYWxz
ZTsKIAorICAgIGlmIChtX3NoYXJlZERldmljZU9yaWVudGF0aW9uQ2xpZW50KSB7CisgICAgICAg
IG1fc2hhcmVkRGV2aWNlT3JpZW50YXRpb25DbGllbnQtPnN0b3BVcGRhdGluZygqdGhpcyk7Cisg
ICAgICAgIHJldHVybjsKKyAgICB9CisKICAgICAvLyBSZW1vdmUgb3Vyc2VsdmVzIGFzIHRoZSBv
cmllbnRhdGlvbiBjbGllbnQgc28gd2Ugd29uJ3QgZ2V0IHVwZGF0ZXMuCiAgICAgW21fbW90aW9u
TWFuYWdlciByZW1vdmVPcmllbnRhdGlvbkNsaWVudDp0aGlzXTsKIH0KQEAgLTc0LDYgKzg1LDEx
IEBAIERldmljZU9yaWVudGF0aW9uRGF0YSogRGV2aWNlT3JpZW50YXRpb24KIAogdm9pZCBEZXZp
Y2VPcmllbnRhdGlvbkNsaWVudElPUzo6ZGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyRGVzdHJv
eWVkKCkKIHsKKyAgICBpZiAobV9zaGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudCkgeworICAg
ICAgICBtX3NoYXJlZERldmljZU9yaWVudGF0aW9uQ2xpZW50LT5zdG9wVXBkYXRpbmcoKnRoaXMp
OworICAgICAgICByZXR1cm47CisgICAgfQorCiAgICAgW21fbW90aW9uTWFuYWdlciByZW1vdmVP
cmllbnRhdGlvbkNsaWVudDp0aGlzXTsKIH0KICAgICAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2lvcy9TaGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudC5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9TaGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVu
dC5oCShub25leGlzdGVudCkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9TaGFyZWRE
ZXZpY2VPcmllbnRhdGlvbkNsaWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNTEgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogICogUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlS
SUdIVCBIT0xERVJTIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlS
SUdIVCBPV05FUiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJF
TUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkgJiYgRU5B
QkxFKERFVklDRV9PUklFTlRBVElPTikKKworI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CisK
K25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgV2ViQ29yZU1vdGlvbk1hbmFnZXJDbGllbnQ7
CisKK2NsYXNzIFNoYXJlZERldmljZU9yaWVudGF0aW9uQ2xpZW50IDogcHVibGljIFJlZkNvdW50
ZWQ8U2hhcmVkRGV2aWNlT3JpZW50YXRpb25DbGllbnQ+IHsKK3B1YmxpYzoKKyAgICB2aXJ0dWFs
IH5TaGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudCgpIHsgfQorCisgICAgdmlydHVhbCB2b2lk
IHN0YXJ0VXBkYXRpbmcoV2ViQ29yZU1vdGlvbk1hbmFnZXJDbGllbnQmKSA9IDA7CisgICAgdmly
dHVhbCB2b2lkIHN0b3BVcGRhdGluZyhXZWJDb3JlTW90aW9uTWFuYWdlckNsaWVudCYpID0gMDsK
KworICAgIHZpcnR1YWwgdm9pZCBkZXZpY2VPcmllbnRhdGlvbkNoYW5nZWQoZG91YmxlLCBkb3Vi
bGUsIGRvdWJsZSwgZG91YmxlLCBkb3VibGUpID0gMDsKKyAgICAKK3Byb3RlY3RlZDoKKyAgICBT
aGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudCgpID0gZGVmYXVsdDsKK307CisKK30gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIFBMQVRGT1JNKElPU19GQU1JTFkpICYmIEVOQUJM
RShERVZJQ0VfT1JJRU5UQVRJT04pCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3Mv
V2ViQ29yZU1vdGlvbk1hbmFnZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9pb3MvV2ViQ29yZU1vdGlvbk1hbmFnZXIuaAkocmV2aXNpb24gMjUzMTIzKQorKysgU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dlYkNvcmVNb3Rpb25NYW5hZ2VyLmgJKHdvcmtpbmcg
Y29weSkKQEAgLTI1LDEwICsyNSw5IEBACiAKICNwcmFnbWEgb25jZQogCi0jaW1wb3J0ICJEZXZp
Y2VNb3Rpb25DbGllbnRJT1MuaCIKLSNpbXBvcnQgIkRldmljZU9yaWVudGF0aW9uQ2xpZW50SU9T
LmgiCiAjaW1wb3J0IDxDb3JlTG9jYXRpb24vQ29yZUxvY2F0aW9uLmg+CiAjaW1wb3J0IDx3dGYv
SGFzaENvdW50ZWRTZXQuaD4KKyNpbXBvcnQgPHd0Zi9XZWFrSGFzaFNldC5oPgogCiAjaWYgUExB
VEZPUk0oSU9TX0ZBTUlMWSkgJiYgRU5BQkxFKERFVklDRV9PUklFTlRBVElPTikKIApAQCAtMzYs
MTEgKzM1LDE2IEBACiAKIGNvbnN0IGZsb2F0IGtNb3Rpb25VcGRhdGVJbnRlcnZhbCA9IDEuMGYg
LyA2MC4wZjsKIAotQGludGVyZmFjZSBXZWJDb3JlTW90aW9uTWFuYWdlciA6IE5TT2JqZWN0IHsK
K25hbWVzcGFjZSBXZWJDb3JlIHsKK2NsYXNzIERldmljZU1vdGlvbkNsaWVudElPUzsKK2NsYXNz
IFdlYkNvcmVNb3Rpb25NYW5hZ2VyQ2xpZW50OworfTsKKworV0VCQ09SRV9FWFBPUlQgQGludGVy
ZmFjZSBXZWJDb3JlTW90aW9uTWFuYWdlciA6IE5TT2JqZWN0IHsKICAgICBDTU1vdGlvbk1hbmFn
ZXIqIG1fbW90aW9uTWFuYWdlcjsKICAgICBDTExvY2F0aW9uTWFuYWdlciogbV9sb2NhdGlvbk1h
bmFnZXI7CiAgICAgSGFzaFNldDxXZWJDb3JlOjpEZXZpY2VNb3Rpb25DbGllbnRJT1MqPiBtX2Rl
dmljZU1vdGlvbkNsaWVudHM7Ci0gICAgSGFzaFNldDxXZWJDb3JlOjpEZXZpY2VPcmllbnRhdGlv
bkNsaWVudElPUyo+IG1fZGV2aWNlT3JpZW50YXRpb25DbGllbnRzOworICAgIFdlYWtIYXNoU2V0
PFdlYkNvcmU6OldlYkNvcmVNb3Rpb25NYW5hZ2VyQ2xpZW50PiBtX2RldmljZU9yaWVudGF0aW9u
Q2xpZW50czsKICAgICBOU1RpbWVyKiBtX3VwZGF0ZVRpbWVyOwogICAgIEJPT0wgbV9neXJvQXZh
aWxhYmxlOwogICAgIEJPT0wgbV9oZWFkaW5nQXZhaWxhYmxlOwpAQCAtNTAsOCArNTQsOCBAQCBj
b25zdCBmbG9hdCBrTW90aW9uVXBkYXRlSW50ZXJ2YWwgPSAxLjBmCiArIChXZWJDb3JlTW90aW9u
TWFuYWdlciAqKXNoYXJlZE1hbmFnZXI7CiAtICh2b2lkKWFkZE1vdGlvbkNsaWVudDooV2ViQ29y
ZTo6RGV2aWNlTW90aW9uQ2xpZW50SU9TICopY2xpZW50OwogLSAodm9pZClyZW1vdmVNb3Rpb25D
bGllbnQ6KFdlYkNvcmU6OkRldmljZU1vdGlvbkNsaWVudElPUyAqKWNsaWVudDsKLS0gKHZvaWQp
YWRkT3JpZW50YXRpb25DbGllbnQ6KFdlYkNvcmU6OkRldmljZU9yaWVudGF0aW9uQ2xpZW50SU9T
ICopY2xpZW50OwotLSAodm9pZClyZW1vdmVPcmllbnRhdGlvbkNsaWVudDooV2ViQ29yZTo6RGV2
aWNlT3JpZW50YXRpb25DbGllbnRJT1MgKiljbGllbnQ7CistICh2b2lkKWFkZE9yaWVudGF0aW9u
Q2xpZW50OihXZWJDb3JlOjpXZWJDb3JlTW90aW9uTWFuYWdlckNsaWVudCAqKWNsaWVudDsKKy0g
KHZvaWQpcmVtb3ZlT3JpZW50YXRpb25DbGllbnQ6KFdlYkNvcmU6OldlYkNvcmVNb3Rpb25NYW5h
Z2VyQ2xpZW50ICopY2xpZW50OwogLSAoQk9PTClneXJvQXZhaWxhYmxlOwogLSAoQk9PTCloZWFk
aW5nQXZhaWxhYmxlOwogQGVuZApJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dl
YkNvcmVNb3Rpb25NYW5hZ2VyLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2lvcy9XZWJDb3JlTW90aW9uTWFuYWdlci5tbQkocmV2aXNpb24gMjUzMTIzKQorKysgU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dlYkNvcmVNb3Rpb25NYW5hZ2VyLm1tCSh3b3JraW5n
IGNvcHkpCkBAIC0yOCw2ICsyOCw4IEBACiAKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKSAmJiBF
TkFCTEUoREVWSUNFX09SSUVOVEFUSU9OKQogCisjaW1wb3J0ICJEZXZpY2VNb3Rpb25DbGllbnRJ
T1MuaCIKKyNpbXBvcnQgIldlYkNvcmVNb3Rpb25NYW5hZ2VyQ2xpZW50LmgiCiAjaW1wb3J0ICJX
ZWJDb3JlT2JqQ0V4dHJhcy5oIgogI2ltcG9ydCAiV2ViQ29yZVRocmVhZFJ1bi5oIgogI2ltcG9y
dCA8Q29yZUxvY2F0aW9uL0NvcmVMb2NhdGlvbi5oPgpAQCAtMTEyLDE2ICsxMTQsMTYgQEAgLSAo
dm9pZClyZW1vdmVNb3Rpb25DbGllbnQ6KFdlYkNvcmU6OkRldgogICAgICAgICBbc2VsZiBjaGVj
a0NsaWVudFN0YXR1c107CiB9CiAKLS0gKHZvaWQpYWRkT3JpZW50YXRpb25DbGllbnQ6KFdlYkNv
cmU6OkRldmljZU9yaWVudGF0aW9uQ2xpZW50SU9TICopY2xpZW50CistICh2b2lkKWFkZE9yaWVu
dGF0aW9uQ2xpZW50OihXZWJDb3JlOjpXZWJDb3JlTW90aW9uTWFuYWdlckNsaWVudCAqKWNsaWVu
dAogewotICAgIG1fZGV2aWNlT3JpZW50YXRpb25DbGllbnRzLmFkZChjbGllbnQpOworICAgIG1f
ZGV2aWNlT3JpZW50YXRpb25DbGllbnRzLmFkZCgqY2xpZW50KTsKICAgICBpZiAobV9pbml0aWFs
aXplZCkKICAgICAgICAgW3NlbGYgY2hlY2tDbGllbnRTdGF0dXNdOwogfQogCi0tICh2b2lkKXJl
bW92ZU9yaWVudGF0aW9uQ2xpZW50OihXZWJDb3JlOjpEZXZpY2VPcmllbnRhdGlvbkNsaWVudElP
UyAqKWNsaWVudAorLSAodm9pZClyZW1vdmVPcmllbnRhdGlvbkNsaWVudDooV2ViQ29yZTo6V2Vi
Q29yZU1vdGlvbk1hbmFnZXJDbGllbnQgKiljbGllbnQKIHsKLSAgICBtX2RldmljZU9yaWVudGF0
aW9uQ2xpZW50cy5yZW1vdmUoY2xpZW50KTsKKyAgICBtX2RldmljZU9yaWVudGF0aW9uQ2xpZW50
cy5yZW1vdmUoKmNsaWVudCk7CiAgICAgaWYgKG1faW5pdGlhbGl6ZWQpCiAgICAgICAgIFtzZWxm
IGNoZWNrQ2xpZW50U3RhdHVzXTsKIH0KQEAgLTE2OSw3ICsxNzEsNyBAQCAtICh2b2lkKWNoZWNr
Q2xpZW50U3RhdHVzCiAgICAgLy8gYmUgbm8gY2hhbmNlIHRoYXQgbV9tb3Rpb25NYW5hZ2VyIGhh
cyBub3QgYmVlbiBjcmVhdGVkLgogICAgIEFTU0VSVChtX21vdGlvbk1hbmFnZXIpOwogCi0gICAg
aWYgKG1fZGV2aWNlTW90aW9uQ2xpZW50cy5zaXplKCkgfHwgbV9kZXZpY2VPcmllbnRhdGlvbkNs
aWVudHMuc2l6ZSgpKSB7CisgICAgaWYgKG1fZGV2aWNlTW90aW9uQ2xpZW50cy5zaXplKCkgfHwg
bV9kZXZpY2VPcmllbnRhdGlvbkNsaWVudHMuY29tcHV0ZVNpemUoKSkgewogICAgICAgICBpZiAo
bV9neXJvQXZhaWxhYmxlKQogICAgICAgICAgICAgW21fbW90aW9uTWFuYWdlciBzdGFydERldmlj
ZU1vdGlvblVwZGF0ZXNdOwogICAgICAgICBlbHNlCkBAIC0yNDYsOCArMjQ4LDExIEBAIC0gKHZv
aWQpc2VuZE1vdGlvbkRhdGE6KENNRGV2aWNlTW90aW9uICoKIAogICAgICAgICBDTUF0dGl0dWRl
KiBhdHRpdHVkZSA9IG5ld01vdGlvbi5hdHRpdHVkZTsKIAotICAgICAgICBhdXRvIG9yaWVudGF0
aW9uQ2xpZW50cyA9IGNvcHlUb1ZlY3RvcihtX2RldmljZU9yaWVudGF0aW9uQ2xpZW50cyk7Ci0K
KyAgICAgICAgVmVjdG9yPFdlYkNvcmVNb3Rpb25NYW5hZ2VyQ2xpZW50Kj4gb3JpZW50YXRpb25D
bGllbnRzOworICAgICAgICBvcmllbnRhdGlvbkNsaWVudHMucmVzZXJ2ZUluaXRpYWxDYXBhY2l0
eShtX2RldmljZU9yaWVudGF0aW9uQ2xpZW50cy5jb21wdXRlU2l6ZSgpKTsKKyAgICAgICAgZm9y
IChhdXRvJiBjbGllbnQgOiBtX2RldmljZU9yaWVudGF0aW9uQ2xpZW50cykKKyAgICAgICAgICAg
IG9yaWVudGF0aW9uQ2xpZW50cy5hcHBlbmQoJmNsaWVudCk7CisgICAgICAgIAogICAgICAgICAv
LyBDb21wb3NlIHRoZSByYXcgbW90aW9uIGRhdGEgdG8gYW4gaW50ZXJtZWRpYXRlIFpYWS1iYXNl
ZCAzeDMgcm90YXRpb24KICAgICAgICAgLy8gbWF0cml4IChSKSB3aGVyZSBbej1hdHRpdHVkZS55
YXcsIHg9YXR0aXR1ZGUucGl0Y2gsIHk9YXR0aXR1ZGUucm9sbF0KICAgICAgICAgLy8gaW4gdGhl
IGZvcm06CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvV2ViQ29yZU1vdGlvbk1h
bmFnZXJDbGllbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3Mv
V2ViQ29yZU1vdGlvbk1hbmFnZXJDbGllbnQuaAkobm9uZXhpc3RlbnQpCisrKyBTb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9pb3MvV2ViQ29yZU1vdGlvbk1hbmFnZXJDbGllbnQuaAkod29ya2luZyBj
b3B5KQpAQCAtMCwwICsxLDQzIEBACisvKgorKiBDb3B5cmlnaHQgKEMpIDIwMTkgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorKgorKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisqIGFy
ZSBtZXQ6CisqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorKgorKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisqIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworKiBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisq
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GCisqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorKiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKQorKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyovCisKKyNwcmFnbWEgb25jZQorCisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkgJiYg
RU5BQkxFKERFVklDRV9PUklFTlRBVElPTikKKworI2luY2x1ZGUgPHd0Zi9XZWFrUHRyLmg+CisK
K25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgV2ViQ29yZU1vdGlvbk1hbmFnZXJDbGllbnQg
OiBwdWJsaWMgQ2FuTWFrZVdlYWtQdHI8V2ViQ29yZU1vdGlvbk1hbmFnZXJDbGllbnQ+IHsKK3B1
YmxpYzoKKyAgICB2aXJ0dWFsIH5XZWJDb3JlTW90aW9uTWFuYWdlckNsaWVudCgpIHsgfTsKKwor
ICAgIHZpcnR1YWwgdm9pZCBvcmllbnRhdGlvbkNoYW5nZWQoZG91YmxlLCBkb3VibGUsIGRvdWJs
ZSwgZG91YmxlLCBkb3VibGUpID0gMDsKK307CisKK307CisKKyNlbmRpZiAvLyBQTEFURk9STShJ
T1NfRkFNSUxZKSAmJiBFTkFCTEUoREVWSUNFX09SSUVOVEFUSU9OKQpJbmRleDogU291cmNlL1dl
YktpdC9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDI1MzEyMykKKysrIFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkp
CkBAIC0xLDMgKzEsNDIgQEAKKzIwMTktMTItMDQgIFBlciBBcm5lIFZvbGxhbiAgPHB2b2xsYW5A
YXBwbGUuY29tPgorCisgICAgICAgIFtpT1NdIENhbGxzIHRvIGRldmljZSBvcmllbnRhdGlvbiBB
UEkgc2hvdWxkIGJlIGRvbmUgaW4gdGhlIFVJIHByb2Nlc3MKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNDcyMAorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBhIG5ldyBjbGFzcywgV2ViU2hhcmVkRGV2
aWNlT3JpZW50YXRpb25DbGllbnRQcm94eSwgdG8gaGFuZGxlIG1lc3NhZ2VzIHRvIHN0YXJ0IGFu
ZCBzdG9wIHVwZGF0aW5nIGRldmljZSBvcmllbnRhdGlvbgorICAgICAgICBpbiB0aGUgVUkgcHJv
Y2Vzcy4gQWxzbywgYWRkIGEgbWVzc2FnZSB0byB1cGRhdGUgdGhlIGRldmljZSBvcmllbnRhdGlv
biBpbiB0aGUgV2ViQ29udGVudCBwcm9jZXNzLiBJbiB0aGUgVUkgcHJvY2VzcywgdGhlCisgICAg
ICAgIGRldmljZSBvcmllbnRhdGlvbiBBUEkgaXMgY2FsbGVkIHRocm91Z2ggdGhlIGFscmVhZHkg
ZXhpc3RpbmcgV2ViQ29yZU1vdGlvbk1hbmFnZXIgY2xhc3MuCisKKyAgICAgICAgKiBEZXJpdmVk
U291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0OgorICAgICAgICAqIERlcml2ZWRTb3VyY2VzLW91dHB1
dC54Y2ZpbGVsaXN0OgorICAgICAgICAqIERlcml2ZWRTb3VyY2VzLm1ha2U6CisgICAgICAgICog
VUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6Om1fd2ViU2hhcmVk
RGV2aWNlT3JpZW50YXRpb25DbGllbnRQcm94eSk6CisgICAgICAgIChXZWJLaXQ6Om1fcmVzZXRS
ZWNlbnRDcmFzaENvdW50VGltZXIpOiBEZWxldGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3Mv
V2ViUHJvY2Vzc1Byb3h5SU9TLm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUHJveHk6
OnVuYmxvY2tBY2Nlc3NpYmlsaXR5U2VydmVySWZOZWVkZWQpOgorICAgICAgICAqIFVJUHJvY2Vz
cy9pb3MvV2ViU2hhcmVkRGV2aWNlT3JpZW50YXRpb25DbGllbnRQcm94eS5oOiBBZGRlZC4KKyAg
ICAgICAgKiBVSVByb2Nlc3MvaW9zL1dlYlNoYXJlZERldmljZU9yaWVudGF0aW9uQ2xpZW50UHJv
eHkubWVzc2FnZXMuaW46IEFkZGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvV2ViU2hhcmVk
RGV2aWNlT3JpZW50YXRpb25DbGllbnRQcm94eS5tbTogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6
OldlYlNoYXJlZERldmljZU9yaWVudGF0aW9uQ2xpZW50UHJveHk6OldlYlNoYXJlZERldmljZU9y
aWVudGF0aW9uQ2xpZW50UHJveHkpOgorICAgICAgICAoV2ViS2l0OjpXZWJTaGFyZWREZXZpY2VP
cmllbnRhdGlvbkNsaWVudFByb3h5Ojp+V2ViU2hhcmVkRGV2aWNlT3JpZW50YXRpb25DbGllbnRQ
cm94eSk6CisgICAgICAgIChXZWJLaXQ6OldlYlNoYXJlZERldmljZU9yaWVudGF0aW9uQ2xpZW50
UHJveHk6OnN0YXJ0VXBkYXRpbmdEZXZpY2VPcmllbnRhdGlvbik6CisgICAgICAgIChXZWJLaXQ6
OldlYlNoYXJlZERldmljZU9yaWVudGF0aW9uQ2xpZW50UHJveHk6OnN0b3BVcGRhdGluZ0Rldmlj
ZU9yaWVudGF0aW9uKToKKyAgICAgICAgKFdlYktpdDo6V2ViU2hhcmVkRGV2aWNlT3JpZW50YXRp
b25DbGllbnRQcm94eTo6b3JpZW50YXRpb25DaGFuZ2VkKToKKyAgICAgICAgKiBXZWJLaXQueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L1dlYlNoYXJlZERldmljZU9yaWVudGF0aW9uQ2xpZW50LmNwcDogQWRkZWQuCisgICAgICAg
IChXZWJLaXQ6OldlYlNoYXJlZERldmljZU9yaWVudGF0aW9uQ2xpZW50OjpXZWJTaGFyZWREZXZp
Y2VPcmllbnRhdGlvbkNsaWVudCk6CisgICAgICAgIChXZWJLaXQ6OldlYlNoYXJlZERldmljZU9y
aWVudGF0aW9uQ2xpZW50Ojp+V2ViU2hhcmVkRGV2aWNlT3JpZW50YXRpb25DbGllbnQpOgorICAg
ICAgICAoV2ViS2l0OjpXZWJTaGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudDo6c3RhcnRVcGRh
dGluZyk6CisgICAgICAgIChXZWJLaXQ6OldlYlNoYXJlZERldmljZU9yaWVudGF0aW9uQ2xpZW50
OjpzdG9wVXBkYXRpbmcpOgorICAgICAgICAoV2ViS2l0OjpXZWJTaGFyZWREZXZpY2VPcmllbnRh
dGlvbkNsaWVudDo6ZGV2aWNlT3JpZW50YXRpb25DaGFuZ2VkKToKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlNoYXJlZERldmljZU9yaWVudGF0aW9uQ2xpZW50Lmg6IEFk
ZGVkLgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViU2hhcmVkRGV2aWNl
T3JpZW50YXRpb25DbGllbnQubWVzc2FnZXMuaW46IEFkZGVkLgorICAgICAgICAqIFdlYlByb2Nl
c3MvV2ViUGFnZS9XZWJQYWdlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6bV9vdmVycmlkZGVuTWVk
aWFUeXBlKToKKwogMjAxOS0xMi0wNCAgS2F0ZSBDaGVuZXkgIDxrYXRoZXJpbmVfY2hlbmV5QGFw
cGxlLmNvbT4KIAogICAgICAgICBFeHBvc2UgYmFzaWMgSVRQIGRhdGEgZnJvbSB0aGUgZGF0YWJh
c2UgZm9yIGZ1dHVyZSBBUEkvU1BJIHVzZQpJbmRleDogU291cmNlL1dlYktpdC9EZXJpdmVkU291
cmNlcy1pbnB1dC54Y2ZpbGVsaXN0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvRGVyaXZl
ZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdAkocmV2aXNpb24gMjUzMTIzKQorKysgU291cmNlL1dl
YktpdC9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0CSh3b3JraW5nIGNvcHkpCkBAIC04
OCw2ICs4OCw3IEBAICQoUFJPSkVDVF9ESVIpL1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC4KICQo
UFJPSkVDVF9ESVIpL1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkubWVzc2FnZXMuaW4KICQoUFJP
SkVDVF9ESVIpL1VJUHJvY2Vzcy9pb3MvRWRpdGFibGVJbWFnZUNvbnRyb2xsZXIubWVzc2FnZXMu
aW4KICQoUFJPSkVDVF9ESVIpL1VJUHJvY2Vzcy9pb3MvU21hcnRNYWduaWZpY2F0aW9uQ29udHJv
bGxlci5tZXNzYWdlcy5pbgorJChQUk9KRUNUX0RJUikvVUlQcm9jZXNzL2lvcy9XZWJTaGFyZWRE
ZXZpY2VPcmllbnRhdGlvbkNsaWVudFByb3h5Lm1lc3NhZ2VzLmluCiAkKFBST0pFQ1RfRElSKS9V
SVByb2Nlc3MvbWFjL1NlY0l0ZW1TaGltUHJveHkubWVzc2FnZXMuaW4KICQoUFJPSkVDVF9ESVIp
L1dlYlByb2Nlc3MvQXBwbGVQYXkvV2ViUGF5bWVudENvb3JkaW5hdG9yLm1lc3NhZ2VzLmluCiAk
KFBST0pFQ1RfRElSKS9XZWJQcm9jZXNzL0F1dG9tYXRpb24vV2ViQXV0b21hdGlvblNlc3Npb25Q
cm94eS5qcwpAQCAtMTEzLDYgKzExNCw3IEBAICQoUFJPSkVDVF9ESVIpL1dlYlByb2Nlc3MvU3Rv
cmFnZS9XZWJTV0MKICQoUFJPSkVDVF9ESVIpL1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NvbnRl
eHRNYW5hZ2VyQ29ubmVjdGlvbi5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikvV2ViUHJvY2Vz
cy9Vc2VyQ29udGVudC9XZWJVc2VyQ29udGVudENvbnRyb2xsZXIubWVzc2FnZXMuaW4KICQoUFJP
SkVDVF9ESVIpL1dlYlByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vV2ViQXV0aGVudGljYXRvckNv
b3JkaW5hdG9yLm1lc3NhZ2VzLmluCiskKFBST0pFQ1RfRElSKS9XZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0L1dlYlNoYXJlZERldmljZU9yaWVudGF0aW9uQ2xpZW50Lm1lc3NhZ2VzLmluCiAkKFBS
T0pFQ1RfRElSKS9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29jb2EvVGV4dENoZWNraW5nQ29udHJvbGxl
clByb3h5Lm1lc3NhZ2VzLmluCiAkKFBST0pFQ1RfRElSKS9XZWJQcm9jZXNzL1dlYlBhZ2UvRHJh
d2luZ0FyZWEubWVzc2FnZXMuaW4KICQoUFJPSkVDVF9ESVIpL1dlYlByb2Nlc3MvV2ViUGFnZS9F
dmVudERpc3BhdGNoZXIubWVzc2FnZXMuaW4KSW5kZXg6IFNvdXJjZS9XZWJLaXQvRGVyaXZlZFNv
dXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9EZXJp
dmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdAkocmV2aXNpb24gMjUzMTIzKQorKysgU291cmNl
L1dlYktpdC9EZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdAkod29ya2luZyBjb3B5KQpA
QCAtMjkxLDYgKzI5MSwxMiBAQCAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMv
V2ViCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9XZWJTV1Nl
cnZlclRvQ29udGV4dENvbm5lY3Rpb25NZXNzYWdlUmVjZWl2ZXIuY3BwCiAkKEJVSUxUX1BST0RV
Q1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9XZWJTV1NlcnZlclRvQ29udGV4dENvbm5l
Y3Rpb25NZXNzYWdlcy5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2Vi
S2l0Mi9XZWJTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb25NZXNzYWdlc1JlcGxpZXMuaAorJChC
VUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvV2ViU2hhcmVkRGV2aWNl
T3JpZW50YXRpb25DbGllbnRNZXNzYWdlUmVjZWl2ZXIuY3BwCiskKEJVSUxUX1BST0RVQ1RTX0RJ
UikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9XZWJTaGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVu
dE1lc3NhZ2VzLmgKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQy
L1dlYlNoYXJlZERldmljZU9yaWVudGF0aW9uQ2xpZW50TWVzc2FnZXNSZXBsaWVzLmgKKyQoQlVJ
TFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1dlYlNoYXJlZERldmljZU9y
aWVudGF0aW9uQ2xpZW50UHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwCiskKEJVSUxUX1BST0RVQ1RT
X0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9XZWJTaGFyZWREZXZpY2VPcmllbnRhdGlvbkNs
aWVudFByb3h5TWVzc2FnZXMuaAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2Vz
L1dlYktpdDIvV2ViU2hhcmVkRGV2aWNlT3JpZW50YXRpb25DbGllbnRQcm94eU1lc3NhZ2VzUmVw
bGllcy5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9XZWJT
b2NrZXRDaGFubmVsTWVzc2FnZVJlY2VpdmVyLmNwcAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rl
cml2ZWRTb3VyY2VzL1dlYktpdDIvV2ViU29ja2V0Q2hhbm5lbE1lc3NhZ2VzLmgKICQoQlVJTFRf
UFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1dlYlNvY2tldENoYW5uZWxNZXNz
YWdlc1JlcGxpZXMuaApJbmRleDogU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy5tYWtlCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMubWFrZQkocmV2aXNpb24g
MjUzMTIzKQorKysgU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy5tYWtlCSh3b3JraW5nIGNv
cHkpCkBAIC0xODksNiArMTg5LDggQEAgTUVTU0FHRV9SRUNFSVZFUlMgPSBcCiAgICAgV2ViU1dD
b250ZXh0TWFuYWdlckNvbm5lY3Rpb24gXAogICAgIFdlYlNXU2VydmVyQ29ubmVjdGlvbiBcCiAg
ICAgV2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uIFwKKyAgICBXZWJTaGFyZWREZXZpY2VP
cmllbnRhdGlvbkNsaWVudCBcCisgICAgV2ViU2hhcmVkRGV2aWNlT3JpZW50YXRpb25DbGllbnRQ
cm94eSBcCiAgICAgV2ViU29ja2V0Q2hhbm5lbCBcCiAgICAgV2ViU29ja2V0U3RyZWFtIFwKICAg
ICBXZWJVc2VyQ29udGVudENvbnRyb2xsZXIgXApJbmRleDogU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2ViUGFnZVByb3h5LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJQYWdlUHJveHkuY3BwCShyZXZpc2lvbiAyNTMxMjMpCisrKyBTb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00NDksNiArNDQ5LDkg
QEAgV2ViUGFnZVByb3h5OjpXZWJQYWdlUHJveHkoUGFnZUNsaWVudCYgcAogICAgICwgbV9pbnNw
ZWN0b3JEZWJ1Z2dhYmxlKG1ha2VVbmlxdWU8V2ViUGFnZURlYnVnZ2FibGU+KCp0aGlzKSkKICNl
bmRpZgogICAgICwgbV9yZXNldFJlY2VudENyYXNoQ291bnRUaW1lcihSdW5Mb29wOjptYWluKCks
IHRoaXMsICZXZWJQYWdlUHJveHk6OnJlc2V0UmVjZW50Q3Jhc2hDb3VudCkKKyNpZiBQTEFURk9S
TShJT1NfRkFNSUxZKSAmJiBFTkFCTEUoREVWSUNFX09SSUVOVEFUSU9OKQorICAgICwgbV93ZWJT
aGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudFByb3h5KCp0aGlzKQorI2VuZGlmCiB7CiAgICAg
UkVMRUFTRV9MT0dfSUZfQUxMT1dFRChMb2FkaW5nLCAiY29uc3RydWN0b3I6Iik7CiAKSW5kZXg6
IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCShyZXZpc2lvbiAyNTMxMjMpCisr
KyBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAkod29ya2luZyBjb3B5KQpA
QCAtMTQ5LDYgKzE0OSwxMCBAQCBPQkpDX0NMQVNTIF9XS1JlbW90ZU9iamVjdFJlZ2lzdHJ5Owog
I2luY2x1ZGUgIlNPQXV0aG9yaXphdGlvbkxvYWRQb2xpY3kuaCIKICNlbmRpZgogCisjaWYgUExB
VEZPUk0oSU9TX0ZBTUlMWSkgJiYgRU5BQkxFKERFVklDRV9PUklFTlRBVElPTikKKyNpbmNsdWRl
ICJXZWJTaGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudFByb3h5LmgiCisjZW5kaWYKKwogI2lm
IEVOQUJMRShNRURJQV9TRVNTSU9OKQogbmFtZXNwYWNlIFdlYkNvcmUgewogY2xhc3MgTWVkaWFT
ZXNzaW9uTWV0YWRhdGE7CkBAIC0yNjI5LDYgKzI2MzMsMTAgQEAgcHJpdmF0ZToKICAgICBib29s
IG1faXNRdW90YUluY3JlYXNlRGVuaWVkIHsgZmFsc2UgfTsKICAgICAKICAgICBTdHJpbmcgbV9v
dmVycmlkZGVuTWVkaWFUeXBlOworICAgICAgICAKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKSAm
JiBFTkFCTEUoREVWSUNFX09SSUVOVEFUSU9OKQorICAgIFdlYlNoYXJlZERldmljZU9yaWVudGF0
aW9uQ2xpZW50UHJveHkgbV93ZWJTaGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudFByb3h5Owor
I2VuZGlmCiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKSW5kZXg6IFNvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL2lvcy9XZWJTaGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudFByb3h5LmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dlYlNoYXJlZERldmljZU9y
aWVudGF0aW9uQ2xpZW50UHJveHkuaAkobm9uZXhpc3RlbnQpCisrKyBTb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9pb3MvV2ViU2hhcmVkRGV2aWNlT3JpZW50YXRpb25DbGllbnRQcm94eS5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC0wLDAgKzEsNTcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTkgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElT
JycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JT
CisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisg
KiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAq
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKwor
I2lmIFBMQVRGT1JNKElPU19GQU1JTFkpICYmIEVOQUJMRShERVZJQ0VfT1JJRU5UQVRJT04pCisK
KyNpbmNsdWRlICJNZXNzYWdlUmVjZWl2ZXIuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL1dlYkNvcmVN
b3Rpb25NYW5hZ2VyQ2xpZW50Lmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBXZWJQ
YWdlUHJveHk7CisKK2NsYXNzIFdlYlNoYXJlZERldmljZU9yaWVudGF0aW9uQ2xpZW50UHJveHkg
OiBwdWJsaWMgV2ViQ29yZTo6V2ViQ29yZU1vdGlvbk1hbmFnZXJDbGllbnQsIHByaXZhdGUgSVBD
OjpNZXNzYWdlUmVjZWl2ZXIgeworcHVibGljOgorICAgIFdlYlNoYXJlZERldmljZU9yaWVudGF0
aW9uQ2xpZW50UHJveHkoV2ViUGFnZVByb3h5Jik7CisgICAgfldlYlNoYXJlZERldmljZU9yaWVu
dGF0aW9uQ2xpZW50UHJveHkoKTsKKworICAgIHZvaWQgc3RhcnRVcGRhdGluZ0RldmljZU9yaWVu
dGF0aW9uKCk7CisgICAgdm9pZCBzdG9wVXBkYXRpbmdEZXZpY2VPcmllbnRhdGlvbigpOworICAg
IAorcHJpdmF0ZToKKyAgICAvLyBXZWJDb3JlOjpXZWJDb3JlTW90aW9uTWFuYWdlckNsaWVudAor
ICAgIHZvaWQgb3JpZW50YXRpb25DaGFuZ2VkKGRvdWJsZSwgZG91YmxlLCBkb3VibGUsIGRvdWJs
ZSwgZG91YmxlKSBmaW5hbDsKKyAgICAKKyAgICAvLyBJUEM6Ok1lc3NhZ2VSZWNlaXZlci4KKyAg
ICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6RGVjb2RlciYp
IG92ZXJyaWRlOworCisgICAgV2ViUGFnZVByb3h5JiBtX3BhZ2U7Cit9OworCit9IC8vIG5hbWVz
cGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIFBMQVRGT1JNKElPU19GQU1JTFkpICYmIEVOQUJMRShE
RVZJQ0VfT1JJRU5UQVRJT04pCkluZGV4OiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV2Vi
U2hhcmVkRGV2aWNlT3JpZW50YXRpb25DbGllbnRQcm94eS5tZXNzYWdlcy5pbgo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV2ViU2hhcmVkRGV2aWNlT3JpZW50YXRp
b25DbGllbnRQcm94eS5tZXNzYWdlcy5pbgkobm9uZXhpc3RlbnQpCisrKyBTb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9pb3MvV2ViU2hhcmVkRGV2aWNlT3JpZW50YXRpb25DbGllbnRQcm94eS5tZXNz
YWdlcy5pbgkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDI4IEBACisjIENvcHlyaWdodCAoQykg
MjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjCisjIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorIyBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyMgYXJlIG1ldDoKKyMgMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisjIDIuICBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorIyAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorIyAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyMKKyMgVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMg
SVMnJyBBTkQKKyMgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyMgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorIyBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMg
QkUgTElBQkxFIEZPUgorIyBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMCisjIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SCisjIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJS
VVBUSU9OKSBIT1dFVkVSCisjIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksCisjIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFCisjIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKSAmJiBFTkFC
TEUoREVWSUNFX09SSUVOVEFUSU9OKQorbWVzc2FnZXMgLT4gV2ViU2hhcmVkRGV2aWNlT3JpZW50
YXRpb25DbGllbnRQcm94eSBOb3RSZWZDb3VudGVkIHsKKyAgICBTdGFydFVwZGF0aW5nRGV2aWNl
T3JpZW50YXRpb24oKTsKKyAgICBTdG9wVXBkYXRpbmdEZXZpY2VPcmllbnRhdGlvbigpOworfQor
I2VuZGlmCkluZGV4OiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV2ViU2hhcmVkRGV2aWNl
T3JpZW50YXRpb25DbGllbnRQcm94eS5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9pb3MvV2ViU2hhcmVkRGV2aWNlT3JpZW50YXRpb25DbGllbnRQcm94eS5tbQkobm9u
ZXhpc3RlbnQpCisrKyBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV2ViU2hhcmVkRGV2aWNl
T3JpZW50YXRpb25DbGllbnRQcm94eS5tbQkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDY3IEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworI2ltcG9ydCAiY29uZmlnLmgiCisjaW1wb3J0ICJXZWJTaGFyZWREZXZp
Y2VPcmllbnRhdGlvbkNsaWVudFByb3h5LmgiCisKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKSAm
JiBFTkFCTEUoREVWSUNFX09SSUVOVEFUSU9OKQorCisjaW1wb3J0ICJXZWJQYWdlUHJveHkuaCIK
KyNpbXBvcnQgIldlYlByb2Nlc3NQcm94eS5oIgorI2ltcG9ydCAiV2ViU2hhcmVkRGV2aWNlT3Jp
ZW50YXRpb25DbGllbnRNZXNzYWdlcy5oIgorI2ltcG9ydCAiV2ViU2hhcmVkRGV2aWNlT3JpZW50
YXRpb25DbGllbnRQcm94eU1lc3NhZ2VzLmgiCisjaW1wb3J0IDxXZWJDb3JlL1dlYkNvcmVNb3Rp
b25NYW5hZ2VyLmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitXZWJTaGFyZWREZXZpY2VPcmll
bnRhdGlvbkNsaWVudFByb3h5OjpXZWJTaGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudFByb3h5
KFdlYlBhZ2VQcm94eSYgcGFnZSkKKyAgICA6IG1fcGFnZShwYWdlKQoreworICAgIG1fcGFnZS5w
cm9jZXNzKCkuYWRkTWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2VzOjpXZWJTaGFyZWREZXZpY2VPcmll
bnRhdGlvbkNsaWVudFByb3h5OjptZXNzYWdlUmVjZWl2ZXJOYW1lKCksIG1fcGFnZS53ZWJQYWdl
SUQoKSwgKnRoaXMpOworfQorCitXZWJTaGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudFByb3h5
Ojp+V2ViU2hhcmVkRGV2aWNlT3JpZW50YXRpb25DbGllbnRQcm94eSgpCit7CisgICAgbV9wYWdl
LnByb2Nlc3MoKS5yZW1vdmVNZXNzYWdlUmVjZWl2ZXIoTWVzc2FnZXM6OldlYlNoYXJlZERldmlj
ZU9yaWVudGF0aW9uQ2xpZW50UHJveHk6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSwgbV9wYWdlLndl
YlBhZ2VJRCgpKTsKK30KKwordm9pZCBXZWJTaGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudFBy
b3h5OjpzdGFydFVwZGF0aW5nRGV2aWNlT3JpZW50YXRpb24oKQoreworICAgIFtbV2ViQ29yZU1v
dGlvbk1hbmFnZXIgc2hhcmVkTWFuYWdlcl0gYWRkT3JpZW50YXRpb25DbGllbnQ6dGhpc107Cit9
CisKK3ZvaWQgV2ViU2hhcmVkRGV2aWNlT3JpZW50YXRpb25DbGllbnRQcm94eTo6c3RvcFVwZGF0
aW5nRGV2aWNlT3JpZW50YXRpb24oKQoreworICAgIFtbV2ViQ29yZU1vdGlvbk1hbmFnZXIgc2hh
cmVkTWFuYWdlcl0gcmVtb3ZlT3JpZW50YXRpb25DbGllbnQ6dGhpc107Cit9CisKK3ZvaWQgV2Vi
U2hhcmVkRGV2aWNlT3JpZW50YXRpb25DbGllbnRQcm94eTo6b3JpZW50YXRpb25DaGFuZ2VkKGRv
dWJsZSBhbHBoYSwgZG91YmxlIGJldGEsIGRvdWJsZSBnYW1tYSwgZG91YmxlIGNvbXBhc3NIZWFk
aW5nLCBkb3VibGUgY29tcGFzc0FjY3VyYWN5KQoreworICAgIG1fcGFnZS5zZW5kKE1lc3NhZ2Vz
OjpXZWJTaGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudDo6RGV2aWNlT3JpZW50YXRpb25DaGFu
Z2VkKGFscGhhLCBiZXRhLCBnYW1tYSwgY29tcGFzc0hlYWRpbmcsIGNvbXBhc3NBY2N1cmFjeSkp
OworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIFBMQVRGT1JNKElPU19G
QU1JTFkpCkluZGV4OiBTb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oJKHJldmlzaW9uIDI1MzEyMykKKysrIFNvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oJKHdvcmtpbmcgY29weSkKQEAgLTE2OTYsNiArMTY5NiwxNCBA
QAogCQlFMUQyNkE1MzE3NTk2NEQ5MDA5NUJGRDEgLyogV2ViQ29udGVudFByb2Nlc3MueGliIGlu
IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMUQyNkE0QzE3
NTk2MzRFMDA5NUJGRDEgLyogV2ViQ29udGVudFByb2Nlc3MueGliICovOyB9OwogCQlFMUU1NTJD
NTE2QUUwNjVGMDA0RUQ2NTMgLyogU2FuZGJveEluaXRpYWxpemF0aW9uUGFyYW1ldGVycy5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTFFNTUyQzMxNkFF
MDY1RTAwNEVENjUzIC8qIFNhbmRib3hJbml0aWFsaXphdGlvblBhcmFtZXRlcnMuaCAqLzsgfTsK
IAkJRTFFRTUzRTMxMUY4Q0ZDMDAwQ0NCRUU0IC8qIEluamVjdGVkQnVuZGxlUGFnZUVkaXRvckNs
aWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTFF
RTUzREMxMUY4Q0Y5RjAwQ0NCRUU0IC8qIEluamVjdGVkQnVuZGxlUGFnZUVkaXRvckNsaWVudC5o
ICovOyB9OworCQlFMzg2NkFERjIzOTczM0YwMDBGODhGRTkgLyogV2ViU2hhcmVkRGV2aWNlT3Jp
ZW50YXRpb25DbGllbnRNZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gRTM4NjZBREUyMzk3MzM4RTAwRjg4RkU5IC8qIFdlYlNoYXJlZERldmlj
ZU9yaWVudGF0aW9uQ2xpZW50TWVzc2FnZXMuaCAqLzsgfTsKKwkJRTM4NjZBRTAyMzk3MzNGNTAw
Rjg4RkU5IC8qIFdlYlNoYXJlZERldmljZU9yaWVudGF0aW9uQ2xpZW50TWVzc2FnZVJlY2VpdmVy
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUzODY2
QUREMjM5NzMzOEUwMEY4OEZFOSAvKiBXZWJTaGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudE1l
c3NhZ2VSZWNlaXZlci5jcHAgKi87IH07CisJCUUzODY2QUU1MjM5NzQwMDQwMEY4OEZFOSAvKiBX
ZWJTaGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudFByb3h5Lm1tIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTM4NjZBRTQyMzk3NDAwNDAwRjg4RkU5IC8q
IFdlYlNoYXJlZERldmljZU9yaWVudGF0aW9uQ2xpZW50UHJveHkubW0gKi87IH07CisJCUUzODY2
QUU3MjM5NzQwNTMwMEY4OEZFOSAvKiBXZWJTaGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudFBy
b3h5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMzg2
NkFFNjIzOTc0MDUzMDBGODhGRTkgLyogV2ViU2hhcmVkRGV2aWNlT3JpZW50YXRpb25DbGllbnRQ
cm94eS5oICovOyB9OworCQlFMzg2NkFFQjIzOTg0NDIwMDBGODhGRTkgLyogV2ViU2hhcmVkRGV2
aWNlT3JpZW50YXRpb25DbGllbnRQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMzg2NkFFOTIzOTg0NDFGMDBGODhG
RTkgLyogV2ViU2hhcmVkRGV2aWNlT3JpZW50YXRpb25DbGllbnRQcm94eU1lc3NhZ2VSZWNlaXZl
ci5jcHAgKi87IH07CisJCUUzODY2QUVDMjM5ODQ0MjAwMEY4OEZFOSAvKiBXZWJTaGFyZWREZXZp
Y2VPcmllbnRhdGlvbkNsaWVudFByb3h5TWVzc2FnZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUzODY2QUVBMjM5ODQ0MjAwMEY4OEZFOSAvKiBXZWJT
aGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudFByb3h5TWVzc2FnZXMuaCAqLzsgfTsKKwkJRTM5
NjI4REQyMzk2MENDNjAwNjU4RUNEIC8qIFdlYlNoYXJlZERldmljZU9yaWVudGF0aW9uQ2xpZW50
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMzk2MjhE
QjIzOTYwQ0M1MDA2NThFQ0QgLyogV2ViU2hhcmVkRGV2aWNlT3JpZW50YXRpb25DbGllbnQuaCAq
LzsgfTsKKwkJRTM5NjI4REUyMzk2MENDNjAwNjU4RUNEIC8qIFdlYlNoYXJlZERldmljZU9yaWVu
dGF0aW9uQ2xpZW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEUzOTYyOERDMjM5NjBDQzYwMDY1OEVDRCAvKiBXZWJTaGFyZWREZXZpY2VPcmllbnRh
dGlvbkNsaWVudC5jcHAgKi87IH07CiAJCUU0MTNGNTlEMUFDMUFEQzQwMDM0NTM2MCAvKiBOZXR3
b3JrQ2FjaGVFbnRyeS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gRTQxM0Y1OUIxQUMxQURCNjAwMzQ1MzYwIC8qIE5ldHdvcmtDYWNoZUVudHJ5LmggKi87
IH07CiAJCUU0MkUwNjEwMUFBNzUyM0IwMEIxMTY5OSAvKiBOZXR3b3JrQ2FjaGVJT0NoYW5uZWwu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU0MkUwNjBC
MUFBNzQ0MEQwMEIxMTY5OSAvKiBOZXR3b3JrQ2FjaGVJT0NoYW5uZWwuaCAqLzsgfTsKIAkJRTQy
RTA2MTIxQUE3NUFCRDAwQjExNjk5IC8qIE5ldHdvcmtDYWNoZURhdGEuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU0MkUwNjExMUFBNzVBQkQwMEIxMTY5
OSAvKiBOZXR3b3JrQ2FjaGVEYXRhLmggKi87IH07CkBAIC00ODA1LDYgKzQ4MTMsMTYgQEAKIAkJ
RTFFRTUzREMxMUY4Q0Y5RjAwQ0NCRUU0IC8qIEluamVjdGVkQnVuZGxlUGFnZUVkaXRvckNsaWVu
dC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJbmplY3RlZEJ1bmRsZVBhZ2VF
ZGl0b3JDbGllbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTFFRTUzRTYxMUY4
Q0ZGQjAwQ0NCRUU0IC8qIEluamVjdGVkQnVuZGxlUGFnZUVkaXRvckNsaWVudC5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBJbmplY3RlZEJ1bmRsZVBhZ2VFZGl0b3JD
bGllbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFMzQzOUI2MzIzNDU0NjNB
MDAxMURFMEIgLyogTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uSW5mby5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUg
PSBOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb25JbmZvLmg7IHBhdGggPSBOZXR3b3JrL05ldHdvcmtQ
cm9jZXNzQ29ubmVjdGlvbkluZm8uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTM4
NjZBREQyMzk3MzM4RTAwRjg4RkU5IC8qIFdlYlNoYXJlZERldmljZU9yaWVudGF0aW9uQ2xpZW50
TWVzc2FnZVJlY2VpdmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9
IFdlYlNoYXJlZERldmljZU9yaWVudGF0aW9uQ2xpZW50TWVzc2FnZVJlY2VpdmVyLmNwcDsgcGF0
aCA9IERlcml2ZWRTb3VyY2VzL1dlYktpdDIvV2ViU2hhcmVkRGV2aWNlT3JpZW50YXRpb25DbGll
bnRNZXNzYWdlUmVjZWl2ZXIuY3BwOyBzb3VyY2VUcmVlID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9
OworCQlFMzg2NkFERTIzOTczMzhFMDBGODhGRTkgLyogV2ViU2hhcmVkRGV2aWNlT3JpZW50YXRp
b25DbGllbnRNZXNzYWdlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBXZWJT
aGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudE1lc3NhZ2VzLmg7IHBhdGggPSBEZXJpdmVkU291
cmNlcy9XZWJLaXQyL1dlYlNoYXJlZERldmljZU9yaWVudGF0aW9uQ2xpZW50TWVzc2FnZXMuaDsg
c291cmNlVHJlZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsgfTsKKwkJRTM4NjZBRTQyMzk3NDAwNDAw
Rjg4RkU5IC8qIFdlYlNoYXJlZERldmljZU9yaWVudGF0aW9uQ2xpZW50UHJveHkubW0gKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IG5hbWUgPSBXZWJTaGFyZWREZXZpY2VPcmllbnRh
dGlvbkNsaWVudFByb3h5Lm1tOyBwYXRoID0gaW9zL1dlYlNoYXJlZERldmljZU9yaWVudGF0aW9u
Q2xpZW50UHJveHkubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUUzODY2QUU2MjM5
NzQwNTMwMEY4OEZFOSAvKiBXZWJTaGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudFByb3h5Lmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFdlYlNoYXJlZERldmljZU9yaWVudGF0
aW9uQ2xpZW50UHJveHkuaDsgcGF0aCA9IGlvcy9XZWJTaGFyZWREZXZpY2VPcmllbnRhdGlvbkNs
aWVudFByb3h5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUUzODY2QUU5MjM5ODQ0
MUYwMEY4OEZFOSAvKiBXZWJTaGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudFByb3h5TWVzc2Fn
ZVJlY2VpdmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IFdlYlNo
YXJlZERldmljZU9yaWVudGF0aW9uQ2xpZW50UHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwOyBwYXRo
ID0gRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9XZWJTaGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVu
dFByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcDsgc291cmNlVHJlZSA9IEJVSUxUX1BST0RVQ1RTX0RJ
UjsgfTsKKwkJRTM4NjZBRUEyMzk4NDQyMDAwRjg4RkU5IC8qIFdlYlNoYXJlZERldmljZU9yaWVu
dGF0aW9uQ2xpZW50UHJveHlNZXNzYWdlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5h
bWUgPSBXZWJTaGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudFByb3h5TWVzc2FnZXMuaDsgcGF0
aCA9IERlcml2ZWRTb3VyY2VzL1dlYktpdDIvV2ViU2hhcmVkRGV2aWNlT3JpZW50YXRpb25DbGll
bnRQcm94eU1lc3NhZ2VzLmg7IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7IH07CisJ
CUUzODY2QUVEMjM5ODQ3MUEwMEY4OEZFOSAvKiBXZWJTaGFyZWREZXZpY2VPcmllbnRhdGlvbkNs
aWVudFByb3h5Lm1lc3NhZ2VzLmluICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgbmFtZSA9IFdlYlNoYXJlZERl
dmljZU9yaWVudGF0aW9uQ2xpZW50UHJveHkubWVzc2FnZXMuaW47IHBhdGggPSBpb3MvV2ViU2hh
cmVkRGV2aWNlT3JpZW50YXRpb25DbGllbnRQcm94eS5tZXNzYWdlcy5pbjsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJRTM5NjI4REIyMzk2MENDNTAwNjU4RUNEIC8qIFdlYlNoYXJlZERl
dmljZU9yaWVudGF0aW9uQ2xpZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFdlYlNoYXJlZERldmljZU9yaWVudGF0aW9uQ2xpZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCUUzOTYyOERDMjM5NjBDQzYwMDY1OEVDRCAvKiBXZWJTaGFyZWREZXZpY2VPcmll
bnRhdGlvbkNsaWVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBX
ZWJTaGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCUUzOTYyOEU0MjM5NzFGMzQwMDY1OEVDRCAvKiBXZWJTaGFyZWREZXZpY2VPcmll
bnRhdGlvbkNsaWVudC5tZXNzYWdlcy5pbiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBXZWJTaGFy
ZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudC5tZXNzYWdlcy5pbjsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJRTQwNDkwNzAyMURFNjVGNzAwMzdGMERCIC8qIFNjcm9sbGVyUGFpck1hYy5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTY3JvbGxlclBhaXJNYWMuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTQwNDkwNzEyMURFNjVGNzAwMzdGMERCIC8qIFNj
cm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVSZW1vdGVNYWMuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZVJl
bW90ZU1hYy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUU0MDQ5MDcyMjFERTY1
RjcwMDM3RjBEQiAvKiBTY3JvbGxlclBhaXJNYWMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5vYmpjcHA7IHBhdGggPSBTY3JvbGxlclBhaXJNYWMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CkBAIC01OTI2LDYgKzU5NDQsOSBAQAogCQkJCTJEMjhGM0UzMTg4NUNDQzEwMDRCOUVB
RSAvKiBXZWJGcmFtZUxvYWRlckNsaWVudElPUy5tbSAqLywKIAkJCQlBMUM1MTJDNjE5MDY1NkU1
MDA0NDg5MTQgLyogV2ViUHJldmlld0xvYWRlckNsaWVudC5jcHAgKi8sCiAJCQkJQTFDNTEyQzcx
OTA2NTZFNTAwNDQ4OTE0IC8qIFdlYlByZXZpZXdMb2FkZXJDbGllbnQuaCAqLywKKwkJCQlFMzk2
MjhEQzIzOTYwQ0M2MDA2NThFQ0QgLyogV2ViU2hhcmVkRGV2aWNlT3JpZW50YXRpb25DbGllbnQu
Y3BwICovLAorCQkJCUUzOTYyOERCMjM5NjBDQzUwMDY1OEVDRCAvKiBXZWJTaGFyZWREZXZpY2VP
cmllbnRhdGlvbkNsaWVudC5oICovLAorCQkJCUUzOTYyOEU0MjM5NzFGMzQwMDY1OEVDRCAvKiBX
ZWJTaGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudC5tZXNzYWdlcy5pbiAqLywKIAkJCSk7CiAJ
CQluYW1lID0gaW9zOwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKQEAgLTYzMTEsNiArNjMz
Miw5IEBACiAJCQkJRTVCRUY2ODEyMTMwQzQ3RjAwRjMxMTExIC8qIFdlYkRhdGFMaXN0U3VnZ2Vz
dGlvbnNEcm9wZG93bklPUy5tbSAqLywKIAkJCQkyREE5NDRBQjE4ODRFOUJBMDBFRDg2REIgLyog
V2ViUGFnZVByb3h5SU9TLm1tICovLAogCQkJCTJEQTk0NEFDMTg4NEU5QkEwMEVEODZEQiAvKiBX
ZWJQcm9jZXNzUHJveHlJT1MubW0gKi8sCisJCQkJRTM4NjZBRTYyMzk3NDA1MzAwRjg4RkU5IC8q
IFdlYlNoYXJlZERldmljZU9yaWVudGF0aW9uQ2xpZW50UHJveHkuaCAqLywKKwkJCQlFMzg2NkFF
RDIzOTg0NzFBMDBGODhGRTkgLyogV2ViU2hhcmVkRGV2aWNlT3JpZW50YXRpb25DbGllbnRQcm94
eS5tZXNzYWdlcy5pbiAqLywKKwkJCQlFMzg2NkFFNDIzOTc0MDA0MDBGODhGRTkgLyogV2ViU2hh
cmVkRGV2aWNlT3JpZW50YXRpb25DbGllbnRQcm94eS5tbSAqLywKIAkJCQkwRkNCNEUzODE4QkJF
MDQ0MDAwRkNGQzkgLyogV0tBY3Rpb25TaGVldC5oICovLAogCQkJCTBGQ0I0RTM5MThCQkUwNDQw
MDBGQ0ZDOSAvKiBXS0FjdGlvblNoZWV0Lm1tICovLAogCQkJCTBGQ0I0RTNBMThCQkUwNDQwMDBG
Q0ZDOSAvKiBXS0FjdGlvblNoZWV0QXNzaXN0YW50LmggKi8sCkBAIC05MTk5LDYgKzkyMjMsMTAg
QEAKIAkJCQk1MUYwNjBERDE2NTQzMTc1MDBGMzI4MUYgLyogV2ViUlRDTW9uaXRvck1lc3NhZ2VS
ZWNlaXZlci5jcHAgKi8sCiAJCQkJNTFGMDYwREQxNjU0MzE3NTAwRjMyODJDIC8qIFdlYlJUQ1Jl
c29sdmVyTWVzc2FnZVJlY2VpdmVyLmNwcCAqLywKIAkJCQk1MUYwNjBERDE2NTQzMTc1MDBGMzI4
MUMgLyogV2ViUlRDU29ja2V0TWVzc2FnZVJlY2VpdmVyLmNwcCAqLywKKwkJCQlFMzg2NkFERDIz
OTczMzhFMDBGODhGRTkgLyogV2ViU2hhcmVkRGV2aWNlT3JpZW50YXRpb25DbGllbnRNZXNzYWdl
UmVjZWl2ZXIuY3BwICovLAorCQkJCUUzODY2QURFMjM5NzMzOEUwMEY4OEZFOSAvKiBXZWJTaGFy
ZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudE1lc3NhZ2VzLmggKi8sCisJCQkJRTM4NjZBRTkyMzk4
NDQxRjAwRjg4RkU5IC8qIFdlYlNoYXJlZERldmljZU9yaWVudGF0aW9uQ2xpZW50UHJveHlNZXNz
YWdlUmVjZWl2ZXIuY3BwICovLAorCQkJCUUzODY2QUVBMjM5ODQ0MjAwMEY4OEZFOSAvKiBXZWJT
aGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudFByb3h5TWVzc2FnZXMuaCAqLywKIAkJCQk0MUYw
NjBERDE2NTQzMTc1MDBGMzI4MUMgLyogV2ViU29ja2V0Q2hhbm5lbE1lc3NhZ2VSZWNlaXZlci5j
cHAgKi8sCiAJCQkJNUMwQjE3NzYxRTdDODc5QzAwRTkxMjNDIC8qIFdlYlNvY2tldFN0cmVhbU1l
c3NhZ2VSZWNlaXZlci5jcHAgKi8sCiAJCQkJNUMwQjE3NzcxRTdDODc5QzAwRTkxMjNDIC8qIFdl
YlNvY2tldFN0cmVhbU1lc3NhZ2VzLmggKi8sCkBAIC0xMDI2Myw2ICsxMDI5MSwxMCBAQAogCQkJ
CTdDMzYxRDczMTkyN0ZBMzYwMDM2QTU5RCAvKiBXZWJTY3JpcHRNZXNzYWdlSGFuZGxlci5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJRDNCOTQ4NDkxMUZGNEI2NTAwMDMyQjM5IC8qIFdlYlNlYXJjaFBv
cHVwTWVudS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTFCRUI2MkMxRjNBNUFENzAwNTAyOUI5IC8q
IFdlYlNlcnZpY2VXb3JrZXJQcm92aWRlci5oIGluIEhlYWRlcnMgKi8sCisJCQkJRTM5NjI4REQy
Mzk2MENDNjAwNjU4RUNEIC8qIFdlYlNoYXJlZERldmljZU9yaWVudGF0aW9uQ2xpZW50LmggaW4g
SGVhZGVycyAqLywKKwkJCQlFMzg2NkFERjIzOTczM0YwMDBGODhGRTkgLyogV2ViU2hhcmVkRGV2
aWNlT3JpZW50YXRpb25DbGllbnRNZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8sCisJCQkJRTM4NjZB
RTcyMzk3NDA1MzAwRjg4RkU5IC8qIFdlYlNoYXJlZERldmljZU9yaWVudGF0aW9uQ2xpZW50UHJv
eHkuaCBpbiBIZWFkZXJzICovLAorCQkJCUUzODY2QUVDMjM5ODQ0MjAwMEY4OEZFOSAvKiBXZWJT
aGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudFByb3h5TWVzc2FnZXMuaCBpbiBIZWFkZXJzICov
LAogCQkJCTVDOEREMzgwMUZFNDUyMTYwMEYyQTU1NiAvKiBXZWJzaXRlQXV0b3BsYXlQb2xpY3ku
aCBpbiBIZWFkZXJzICovLAogCQkJCTFBNDgzMkQ3MUE5Q0RGOTYwMDhCNERGRSAvKiBXZWJzaXRl
RGF0YS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUE0ODMyRDExQTlCREMyRjAwOEI0REZFIC8qIFdl
YnNpdGVEYXRhUmVjb3JkLmggaW4gSGVhZGVycyAqLywKQEAgLTExODY2LDYgKzExODk4LDEwIEBA
CiAJCQkJNTFGMDYwRTExNjU0MzE4NTAwRjMyODFGIC8qIFdlYlJUQ01vbml0b3JNZXNzYWdlUmVj
ZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNTFGMDYwRTExNjU0MzE4NTAwRjMyODJDIC8q
IFdlYlJUQ1Jlc29sdmVyTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTUx
RjA2MEUxMTY1NDMxODUwMEYzMjgxQyAvKiBXZWJSVENTb2NrZXRNZXNzYWdlUmVjZWl2ZXIuY3Bw
IGluIFNvdXJjZXMgKi8sCisJCQkJRTM5NjI4REUyMzk2MENDNjAwNjU4RUNEIC8qIFdlYlNoYXJl
ZERldmljZU9yaWVudGF0aW9uQ2xpZW50LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUUzODY2QUUw
MjM5NzMzRjUwMEY4OEZFOSAvKiBXZWJTaGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudE1lc3Nh
Z2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlFMzg2NkFFNTIzOTc0MDA0MDBGODhG
RTkgLyogV2ViU2hhcmVkRGV2aWNlT3JpZW50YXRpb25DbGllbnRQcm94eS5tbSBpbiBTb3VyY2Vz
ICovLAorCQkJCUUzODY2QUVCMjM5ODQ0MjAwMEY4OEZFOSAvKiBXZWJTaGFyZWREZXZpY2VPcmll
bnRhdGlvbkNsaWVudFByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CTQxRjA2MEUxMTY1NDMxODUwMEYzMjgxQyAvKiBXZWJTb2NrZXRDaGFubmVsTWVzc2FnZVJlY2Vp
dmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTVDMEIxNzc5MUU3Qzg4MjEwMEU5MTIzQyAvKiBX
ZWJTb2NrZXRTdHJlYW1NZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNDEy
ODdENEUyMjVEMUVDQjAwOUEzRTI2IC8qIFdlYlNvY2tldFRhc2tDb2NvYS5tbSBpbiBTb3VyY2Vz
ICovLApJbmRleDogU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlNo
YXJlZERldmljZU9yaWVudGF0aW9uQ2xpZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViU2hhcmVkRGV2aWNlT3JpZW50YXRpb25D
bGllbnQuY3BwCShub25leGlzdGVudCkKKysrIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC9XZWJTaGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudC5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTAsMCArMSw3NSBAQAorLyoKKyogQ29weXJpZ2h0IChDKSAyMDE5IEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyoKKyogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworKiBh
cmUgbWV0OgorKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyoKKyogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworKiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyogQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgor
KiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRgorKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyogSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyogQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkKKyogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV2ViU2hhcmVkRGV2
aWNlT3JpZW50YXRpb25DbGllbnQuaCIKKworI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpICYmIEVO
QUJMRShERVZJQ0VfT1JJRU5UQVRJT04pCisKKyNpbmNsdWRlICJXZWJQYWdlLmgiCisjaW5jbHVk
ZSAiV2ViUHJvY2Vzcy5oIgorI2luY2x1ZGUgIldlYlNoYXJlZERldmljZU9yaWVudGF0aW9uQ2xp
ZW50TWVzc2FnZXMuaCIKKyNpbmNsdWRlICJXZWJTaGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVu
dFByb3h5TWVzc2FnZXMuaCIKKworI2luY2x1ZGUgPFdlYkNvcmUvV2ViQ29yZU1vdGlvbk1hbmFn
ZXJDbGllbnQuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK1dlYlNoYXJlZERldmljZU9yaWVu
dGF0aW9uQ2xpZW50OjpXZWJTaGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudChXZWJQYWdlJiBw
YWdlKQorICAgIDogbV9wYWdlKG1ha2VXZWFrUHRyKHBhZ2UpKQoreworICAgIFdlYlByb2Nlc3M6
OnNpbmdsZXRvbigpLmFkZE1lc3NhZ2VSZWNlaXZlcihNZXNzYWdlczo6V2ViU2hhcmVkRGV2aWNl
T3JpZW50YXRpb25DbGllbnQ6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSwgcGFnZS5pZGVudGlmaWVy
KCksICp0aGlzKTsKK30KKworV2ViU2hhcmVkRGV2aWNlT3JpZW50YXRpb25DbGllbnQ6On5XZWJT
aGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudCgpCit7CisgICAgV2ViUHJvY2Vzczo6c2luZ2xl
dG9uKCkucmVtb3ZlTWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2VzOjpXZWJTaGFyZWREZXZpY2VPcmll
bnRhdGlvbkNsaWVudDo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpKTsKK30KKwordm9pZCBXZWJTaGFy
ZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudDo6c3RhcnRVcGRhdGluZyhXZWJDb3JlOjpXZWJDb3Jl
TW90aW9uTWFuYWdlckNsaWVudCYgY2xpZW50KQoreworICAgIGlmIChtX2NsaWVudHMuaXNFbXB0
eSgpICYmIG1fcGFnZSkKKyAgICAgICAgbV9wYWdlLT5zZW5kKE1lc3NhZ2VzOjpXZWJTaGFyZWRE
ZXZpY2VPcmllbnRhdGlvbkNsaWVudFByb3h5OjpTdGFydFVwZGF0aW5nRGV2aWNlT3JpZW50YXRp
b24oKSk7CisgICAgbV9jbGllbnRzLmFkZCgmY2xpZW50KTsKK30KKwordm9pZCBXZWJTaGFyZWRE
ZXZpY2VPcmllbnRhdGlvbkNsaWVudDo6c3RvcFVwZGF0aW5nKFdlYkNvcmU6OldlYkNvcmVNb3Rp
b25NYW5hZ2VyQ2xpZW50JiBjbGllbnQpCit7CisgICAgaWYgKG1fY2xpZW50cy5pc0VtcHR5KCkp
CisgICAgICAgIHJldHVybjsKKyAgICBtX2NsaWVudHMucmVtb3ZlKCZjbGllbnQpOworICAgIGlm
IChtX2NsaWVudHMuaXNFbXB0eSgpICYmIG1fcGFnZSkKKyAgICAgICAgbV9wYWdlLT5zZW5kKE1l
c3NhZ2VzOjpXZWJTaGFyZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudFByb3h5OjpTdG9wVXBkYXRp
bmdEZXZpY2VPcmllbnRhdGlvbigpKTsKK30KKwordm9pZCBXZWJTaGFyZWREZXZpY2VPcmllbnRh
dGlvbkNsaWVudDo6ZGV2aWNlT3JpZW50YXRpb25DaGFuZ2VkKGRvdWJsZSBhbHBoYSwgZG91Ymxl
IGJldGEsIGRvdWJsZSBnYW1tYSwgZG91YmxlIGNvbXBhc3NIZWFkaW5nLCBkb3VibGUgY29tcGFz
c0FjY3VyYWN5KQoreworICAgIGZvciAoYXV0byogY2xpZW50IDogY29weVRvVmVjdG9yKG1fY2xp
ZW50cykpCisgICAgICAgIGNsaWVudC0+b3JpZW50YXRpb25DaGFuZ2VkKGFscGhhLCBiZXRhLCBn
YW1tYSwgY29tcGFzc0hlYWRpbmcsIGNvbXBhc3NBY2N1cmFjeSk7Cit9CisKK30KKworI2VuZGlm
IC8vIFBMQVRGT1JNKElPU19GQU1JTFkpICYmIEVOQUJMRShERVZJQ0VfT1JJRU5UQVRJT04pCklu
ZGV4OiBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViU2hhcmVkRGV2
aWNlT3JpZW50YXRpb25DbGllbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViU2hhcmVkRGV2aWNlT3JpZW50YXRpb25DbGllbnQuaAko
bm9uZXhpc3RlbnQpCisrKyBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
V2ViU2hhcmVkRGV2aWNlT3JpZW50YXRpb25DbGllbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMCww
ICsxLDYyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4K
KyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0Ug
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlICJNZXNzYWdl
UmVjZWl2ZXIuaCIKKyNpbmNsdWRlICJXZWJQYWdlLmgiCisKKyNpbmNsdWRlIDxXZWJDb3JlL1No
YXJlZERldmljZU9yaWVudGF0aW9uQ2xpZW50Lmg+CisKKyNpbmNsdWRlIDx3dGYvSGFzaFNldC5o
PgorI2luY2x1ZGUgPHd0Zi9XZWFrUHRyLmg+CisKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKSAm
JiBFTkFCTEUoREVWSUNFX09SSUVOVEFUSU9OKQorCituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xh
c3MgV2ViU2hhcmVkRGV2aWNlT3JpZW50YXRpb25DbGllbnQgZmluYWwgOiBwdWJsaWMgV2ViQ29y
ZTo6U2hhcmVkRGV2aWNlT3JpZW50YXRpb25DbGllbnQsIHByaXZhdGUgSVBDOjpNZXNzYWdlUmVj
ZWl2ZXIgeworcHVibGljOgorICAgIHN0YXRpYyBSZWY8V2ViU2hhcmVkRGV2aWNlT3JpZW50YXRp
b25DbGllbnQ+IGNyZWF0ZShXZWJQYWdlJiBwYWdlKSB7IHJldHVybiBhZG9wdFJlZigqbmV3IFdl
YlNoYXJlZERldmljZU9yaWVudGF0aW9uQ2xpZW50KHBhZ2UpKTt9CisKK3ByaXZhdGU6CisgICAg
V2ViU2hhcmVkRGV2aWNlT3JpZW50YXRpb25DbGllbnQoV2ViUGFnZSYpOworICAgIH5XZWJTaGFy
ZWREZXZpY2VPcmllbnRhdGlvbkNsaWVudCgpOworCisgICAgLy8gV2ViQ29yZTo6U2hhcmVkRGV2
aWNlT3JpZW50YXRpb25DbGllbnQKKyAgICB2b2lkIHN0YXJ0VXBkYXRpbmcoV2ViQ29yZTo6V2Vi
Q29yZU1vdGlvbk1hbmFnZXJDbGllbnQmKSBmaW5hbDsKKyAgICB2b2lkIHN0b3BVcGRhdGluZyhX
ZWJDb3JlOjpXZWJDb3JlTW90aW9uTWFuYWdlckNsaWVudCYpIGZpbmFsOworICAgIHZvaWQgZGV2
aWNlT3JpZW50YXRpb25DaGFuZ2VkKGRvdWJsZSwgZG91YmxlLCBkb3VibGUsIGRvdWJsZSwgZG91
YmxlKSBmaW5hbDsKKworICAgIC8vIElQQzo6TWVzc2FnZVJlY2VpdmVyLgorICAgIHZvaWQgZGlk
UmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJikgb3ZlcnJpZGU7
CisKKyAgICBXZWFrUHRyPFdlYlBhZ2U+IG1fcGFnZTsKKyAgICBIYXNoU2V0PFdlYkNvcmU6Oldl
YkNvcmVNb3Rpb25NYW5hZ2VyQ2xpZW50Kj4gbV9jbGllbnRzOworfTsKKworfQorCisjZW5kaWYg
Ly8gUExBVEZPUk0oSU9TX0ZBTUlMWSkgJiYgRU5BQkxFKERFVklDRV9PUklFTlRBVElPTikKSW5k
ZXg6IFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJTaGFyZWREZXZp
Y2VPcmllbnRhdGlvbkNsaWVudC5tZXNzYWdlcy5pbgo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViU2hhcmVkRGV2aWNlT3JpZW50YXRpb25D
bGllbnQubWVzc2FnZXMuaW4JKG5vbmV4aXN0ZW50KQorKysgU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlNoYXJlZERldmljZU9yaWVudGF0aW9uQ2xpZW50Lm1lc3Nh
Z2VzLmluCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMjcgQEAKKyMgQ29weXJpZ2h0IChDKSAy
MDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMKKyMgUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisjIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworIyBhcmUgbWV0OgorIyAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMgMi4gIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisjICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisjICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorIworIyBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJ
UycnIEFORAorIyBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorIyBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisjIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUyBC
RSBMSUFCTEUgRk9SCisjIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwKKyMgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IKKyMgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJV
UFRJT04pIEhPV0VWRVIKKyMgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwKKyMgT1IgVE9SVCAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UKKyMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKworI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpICYmIEVOQUJM
RShERVZJQ0VfT1JJRU5UQVRJT04pCittZXNzYWdlcyAtPiBXZWJTaGFyZWREZXZpY2VPcmllbnRh
dGlvbkNsaWVudCB7CisgICAgRGV2aWNlT3JpZW50YXRpb25DaGFuZ2VkKGRvdWJsZSBhbHBoYSwg
ZG91YmxlIGJldGEsIGRvdWJsZSBnYW1tYSwgZG91YmxlIGNvbXBhc3NIZWFkaW5nLCBkb3VibGUg
Y29tcGFzc0FjY3VyYWN5KQorfQorI2VuZGlmCkluZGV4OiBTb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViUGFnZS9XZWJQYWdlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAkocmV2aXNpb24gMjUzMTIzKQorKysgU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMw
Nyw2ICszMDcsMTAgQEAKICNpbmNsdWRlIDxXZWJDb3JlL0F1dGhlbnRpY2F0b3JDb29yZGluYXRv
ci5oPgogI2VuZGlmCiAKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKSAmJiBFTkFCTEUoREVWSUNF
X09SSUVOVEFUSU9OKQorI2luY2x1ZGUgIldlYlNoYXJlZERldmljZU9yaWVudGF0aW9uQ2xpZW50
LmgiCisjZW5kaWYKKwogbmFtZXNwYWNlIFdlYktpdCB7CiB1c2luZyBuYW1lc3BhY2UgSlNDOwog
dXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CkBAIC01MDEsNiArNTA1LDEwIEBAIFdlYlBhZ2U6Oldl
YlBhZ2UoUGFnZUlkZW50aWZpZXIgcGFnZUlELCAKICNpZiBFTkFCTEUoQVBQTElDQVRJT05fTUFO
SUZFU1QpCiAgICAgcGFnZUNvbmZpZ3VyYXRpb24uYXBwbGljYXRpb25NYW5pZmVzdCA9IHBhcmFt
ZXRlcnMuYXBwbGljYXRpb25NYW5pZmVzdDsKICNlbmRpZgorICAgIAorI2lmIFBMQVRGT1JNKElP
U19GQU1JTFkpICYmIEVOQUJMRShERVZJQ0VfT1JJRU5UQVRJT04pCisgICAgcGFnZUNvbmZpZ3Vy
YXRpb24uc2hhcmVkRGV2aWNlT3JpZW50YXRpb25DbGllbnQgPSBXZWJTaGFyZWREZXZpY2VPcmll
bnRhdGlvbkNsaWVudDo6Y3JlYXRlKCp0aGlzKTsKKyNlbmRpZgogCiAgICAgbV9wYWdlID0gbWFr
ZVVuaXF1ZTxQYWdlPihXVEZNb3ZlKHBhZ2VDb25maWd1cmF0aW9uKSk7CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>384941</attachid>
            <date>2019-12-05 13:52:22 -0800</date>
            <delta_ts>2019-12-05 14:33:04 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-204720-20191205135219.patch</filename>
            <type>text/plain</type>
            <size>59117</size>
            <attacher name="Per Arne Vollan">pvollan</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDI1MzE2OSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQ0IEBACisyMDE5LTEyLTA1ICBQZXIgQXJu
ZSBWb2xsYW4gIDxwdm9sbGFuQGFwcGxlLmNvbT4KKworICAgICAgICBbaU9TXSBDYWxscyB0byBk
ZXZpY2Ugb3JpZW50YXRpb24gQVBJIHNob3VsZCBiZSBkb25lIGluIHRoZSBVSSBwcm9jZXNzCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDQ3MjAKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGUgZGV2aWNl
IG9yaWVudGF0aW9uIEFQSSBvbiBpT1MgaXMgY29tbXVuaWNhdGluZyB3aXRoIGxvY2F0aW9uZC4g
U2luY2UgbWFjaCBsb29rdXAgdG8gdGhpcyBkYWVtb24KKyAgICAgICAgd2lsbCBiZSBjbG9zZWQs
IHRoZSBjYWxscyB0byB0aGlzIEFQSSBzaG91bGQgYmUgbW92ZWQgZnJvbSB0aGUgV2ViQ29udGVu
dCBwcm9jZXNzIHRvIHRoZSBVSSBwcm9jZXNzLgorICAgICAgICBUaGlzIHBhdGNoIGltcGxlbWVu
dHMgZm9yd2FyZGluZyBvZiB0aGUgZGV2aWNlIG9yaWVudGF0aW9uIHJlcXVlc3RzIHRvIHRoZSBV
SSBwcm9jZXNzIHRocm91Z2ggYSBuZXcKKyAgICAgICAgY2xhc3MsIERldmljZU9yaWVudGF0aW9u
VXBkYXRlUHJvdmlkZXIsIHdoaWNoIGlzIHN1YmNsYXNzZWQgYnkgV2ViRGV2aWNlT3JpZW50YXRp
b25VcGRhdGVQcm92aWRlciBpbgorICAgICAgICBtb2Rlcm4gV2ViS2l0LiBUaGlzIGNsYXNzIGlt
cGxlbWVudHMgZm9yd2FyZGluZyBvZiB0aGUgcmVxdWVzdHMgdG8gdGhlIFVJIHByb2Nlc3MsIGFu
ZCByZWNlaXZlcworICAgICAgICBkZXZpY2Ugb3JpZW50YXRpb24gdXBkYXRlcyBmcm9tIHRoZSBV
SSBwcm9jZXNzLiBBbiBpbnN0YW5jZSBvZiB0aGlzIGNsYXNzIHdpbGwgYmUgc2hhcmVkIGJ5IGFs
bAorICAgICAgICBkZXZpY2Ugb3JpZW50YXRpb24gY2xpZW50cyBvbiBhIHBhZ2UsIGFuZCBwYXNz
ZWQgYXMgcGFydCBvZiB0aGUgcGFnZSBjb25maWd1cmF0aW9uIHBhcmFtZXRlcnMuIE9uCisgICAg
ICAgIHRoZSBVSSBwcm9jZXNzIHNpZGUsIGEgbmV3IGNsYXNzIFdlYkRldmljZU9yaWVudGF0aW9u
VXBkYXRlUHJvdmlkZXJQcm94eSBhdHRhY2hlZCB0byB0aGUgV2ViIHBhZ2UKKyAgICAgICAgcHJv
eHkgaXMgdGFraW5nIGNhcmUgb2YgY2FsbGluZyB0aGUgZGV2aWNlIG9yaWVudGF0aW9uIEFQSSB0
aHJvdWdoIHRoZSBleGlzdGluZyBXZWJDb3JlTW90aW9uTWFuYWdlcgorICAgICAgICBPYmplY3Rp
dmUtQyBjbGFzcywgYW5kIHNlbmQgZGV2aWNlIG9yaWVudGF0aW9uIHVwZGF0ZXMgYmFjayB0byB0
aGUgV2ViIHByb2Nlc3MuIEFsc28sIHVzZSBhIHdlYWsKKyAgICAgICAgaGFzaCBzZXQgb2Ygb3Jp
ZW50YXRpb24gY2xpZW50cyBpbiBXZWJDb3JlTW90aW9uTWFuYWdlci4KKworICAgICAgICAqIFdl
YkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBkb20vRGV2aWNlT3Jp
ZW50YXRpb25DbGllbnQuaDoKKyAgICAgICAgKiBkb20vRG9jdW1lbnQuY3BwOgorICAgICAgICAq
IHBhZ2UvUGFnZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjptX2RldmljZU9yaWVudGF0aW9uVXBk
YXRlUHJvdmlkZXIpOgorICAgICAgICAoV2ViQ29yZTo6bV9hcHBsaWNhdGlvbk1hbmlmZXN0KTog
RGVsZXRlZC4KKyAgICAgICAgKiBwYWdlL1BhZ2UuaDoKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2U6
OmRldmljZU9yaWVudGF0aW9uVXBkYXRlUHJvdmlkZXIgY29uc3QpOgorICAgICAgICAqIHBhZ2Uv
UGFnZUNvbmZpZ3VyYXRpb24uaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9pb3MvRGV2aWNlT3JpZW50
YXRpb25DbGllbnRJT1MuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9pb3MvRGV2aWNlT3JpZW50YXRp
b25DbGllbnRJT1MubW06CisgICAgICAgIChXZWJDb3JlOjpEZXZpY2VPcmllbnRhdGlvbkNsaWVu
dElPUzo6RGV2aWNlT3JpZW50YXRpb25DbGllbnRJT1MpOgorICAgICAgICAoV2ViQ29yZTo6RGV2
aWNlT3JpZW50YXRpb25DbGllbnRJT1M6OnN0YXJ0VXBkYXRpbmcpOgorICAgICAgICAoV2ViQ29y
ZTo6RGV2aWNlT3JpZW50YXRpb25DbGllbnRJT1M6OnN0b3BVcGRhdGluZyk6CisgICAgICAgIChX
ZWJDb3JlOjpEZXZpY2VPcmllbnRhdGlvbkNsaWVudElPUzo6ZGV2aWNlT3JpZW50YXRpb25Db250
cm9sbGVyRGVzdHJveWVkKToKKyAgICAgICAgKiBwbGF0Zm9ybS9pb3MvV2ViQ29yZU1vdGlvbk1h
bmFnZXIuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9pb3MvV2ViQ29yZU1vdGlvbk1hbmFnZXIubW06
CisgICAgICAgICgtW1dlYkNvcmVNb3Rpb25NYW5hZ2VyIGFkZE9yaWVudGF0aW9uQ2xpZW50Ol0p
OgorICAgICAgICAoLVtXZWJDb3JlTW90aW9uTWFuYWdlciByZW1vdmVPcmllbnRhdGlvbkNsaWVu
dDpdKToKKyAgICAgICAgKC1bV2ViQ29yZU1vdGlvbk1hbmFnZXIgY2hlY2tDbGllbnRTdGF0dXNd
KToKKyAgICAgICAgKC1bV2ViQ29yZU1vdGlvbk1hbmFnZXIgc2VuZE1vdGlvbkRhdGE6d2l0aEhl
YWRpbmc6XSk6CisKIDIwMTktMTItMDUgIFl1cnkgU2VtaWtoYXRza3kgIDx5dXJ5c0BjaHJvbWl1
bS5vcmc+CiAKICAgICAgICAgV2ViIEluc3BlY3RvcjogQXZvaWQgdXNpbmcgUnVudGltZS5leGVj
dXRpb25Db250ZXh0Q3JlYXRlZCB0byBmaWd1cmUgb3V0IHRoZSBpZnJhbWUncyBjb250ZW50RG9j
dW1lbnQgbm9kZS4KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvago9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oJKHJldmlzaW9uIDI1MzE2NikKKysrIFNvdXJjZS9XZWJDb3JlL1dl
YkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkod29ya2luZyBjb3B5KQpAQCAtOTA5LDcg
KzkwOSw3IEBACiAJCTMxMzU5MTBBMUU3RERDNzMwMEYzMDYzMCAvKiBSVENTZHBUeXBlLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzMTM1OTEwNDFFN0RE
QzYwMDBGMzA2MzAgLyogUlRDU2RwVHlwZS5oICovOyB9OwogCQkzMTM1OTEwQjFFN0REQzczMDBG
MzA2MzAgLyogUlRDU2lnbmFsaW5nU3RhdGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDMxMzU5MTA1MUU3RERDNjAwMEYzMDYzMCAvKiBSVENTaWduYWxp
bmdTdGF0ZS5oICovOyB9OwogCQkzMTNCQ0UxQzIzNUUzQkU1MDBGQzM5RTUgLyogRWxlbWVudENv
bnRleHQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMx
M0JDRTFCMjM1RTNCREIwMEZDMzlFNSAvKiBFbGVtZW50Q29udGV4dC5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07Ci0JCTMxNDAzNzlCMTI0QkVBN0YwMEFG
NDBFNCAvKiBXZWJDb3JlTW90aW9uTWFuYWdlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gMzE0MDM3OTcxMjRCRUE3RjAwQUY0MEU0IC8qIFdlYkNvcmVN
b3Rpb25NYW5hZ2VyLmggKi87IH07CisJCTMxNDAzNzlCMTI0QkVBN0YwMEFGNDBFNCAvKiBXZWJD
b3JlTW90aW9uTWFuYWdlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gMzE0MDM3OTcxMjRCRUE3RjAwQUY0MEU0IC8qIFdlYkNvcmVNb3Rpb25NYW5hZ2Vy
LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMzE0
MDM3OUQxMjRCRUE3RjAwQUY0MEU0IC8qIERldmljZU9yaWVudGF0aW9uQ2xpZW50SU9TLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzMTQwMzc5OTEyNEJF
QTdGMDBBRjQwRTQgLyogRGV2aWNlT3JpZW50YXRpb25DbGllbnRJT1MuaCAqLzsgfTsKIAkJMzE0
MEM1MjAxRkRGMTUxQTAwRDJBODczIC8qIE9mZnNjcmVlbkNhbnZhc1JlbmRlcmluZ0NvbnRleHQy
RC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzE0MEM1
MUUxRkRGMTUxQTAwRDJBODczIC8qIE9mZnNjcmVlbkNhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5o
ICovOyB9OwogCQkzMTQwQzUyNDFGREYzMTg3MDBEMkE4NzMgLyogQ2FudmFzUmVuZGVyaW5nQ29u
dGV4dDJEQmFzZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gMzE0MEM1MjIxRkRGMzE4NjAwRDJBODczIC8qIENhbnZhc1JlbmRlcmluZ0NvbnRleHQyREJh
c2UuaCAqLzsgfTsKQEAgLTQ3ODAsNiArNDc4MCw4IEBACiAJCUUzNTgwMkI2MURDODQzNUQwMEE5
NzczQyAvKiBET01KSVRJRExUeXBlRmlsdGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBFMzU4MDJCNTFEQzg0MzU4MDBBOTc3M0MgLyogRE9NSklUSURM
VHlwZUZpbHRlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CiAJCUUzNzdGRTREMURBREUxNjUwMENERDAyNSAvKiBOb2RlQ29uc3RhbnRzLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFM0QwNDk5MzFEQURDMDQ1
MDA3MThGM0MgLyogTm9kZUNvbnN0YW50cy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CiAJCUUzN0M4NjUwMUVCNjNFM0YwMDg3QzZDQSAvKiBKU0RPTVBy
b21pc2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUz
N0M4NjRGMUVCNjNFMkQwMDg3QzZDQSAvKiBKU0RPTVByb21pc2UuaCAqLzsgc2V0dGluZ3MgPSB7
QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQlFMzk2MjhCRjIzOTU3MjhGMDA2NThF
Q0QgLyogRGV2aWNlT3JpZW50YXRpb25VcGRhdGVQcm92aWRlci5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTM5NjI4QkQyMzk1NzI4RTAwNjU4RUNEIC8q
IERldmljZU9yaWVudGF0aW9uVXBkYXRlUHJvdmlkZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQlFMzk2MjhDMTIzOTU3NDMxMDA2NThFQ0QgLyog
TW90aW9uTWFuYWdlckNsaWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gRTM5NjI4QzAyMzk1NzQzMDAwNjU4RUNEIC8qIE1vdGlvbk1hbmFnZXJDbGll
bnQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlF
M0E3NzY2NzFEQzg1RDI4MDBCNjkwRDggLyogRE9NSklUSURMQ29udmVydC5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTNBNzc2NjUxREM4NUQyMjAwQjY5
MEQ4IC8qIERPTUpJVElETENvbnZlcnQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQ
cml2YXRlLCApOyB9OyB9OwogCQlFM0E3NzY2ODFEQzg1RDI4MDBCNjkwRDggLyogRE9NSklUSURM
VHlwZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTNB
Nzc2NjYxREM4NUQyMjAwQjY5MEQ4IC8qIERPTUpJVElETFR5cGUuaCAqLzsgc2V0dGluZ3MgPSB7
QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlFM0IyRjBFRDFEN0Y0Q0EzMDBCMEM5
RDEgLyogTG9hZGFibGVTY3JpcHQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEUzQjJGMEU3MUQ3RjM1RUMwMEIwQzlEMSAvKiBMb2FkYWJsZVNjcmlwdC5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CkBAIC0xNTA4
NSw2ICsxNTA4Nyw4IEBACiAJCUUzODgzODk0MUJBRDE0NUYwMEQ2MkVFMyAvKiBTY3JpcHRNb2R1
bGVMb2FkZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU2NyaXB0
TW9kdWxlTG9hZGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTM4ODM4OTUx
QkFEMTQ1RjAwRDYyRUUzIC8qIFNjcmlwdE1vZHVsZUxvYWRlci5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBTY3JpcHRNb2R1bGVMb2FkZXIuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJRTM4RDA2MDkxRjhFODExOTAwNjQ5Q0YyIC8qIE1vZHVsZUZldGNoUGFyYW1l
dGVycy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBNb2R1bGVGZXRjaFBhcmFt
ZXRlcnMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTM5NjI4QkQyMzk1NzI4RTAw
NjU4RUNEIC8qIERldmljZU9yaWVudGF0aW9uVXBkYXRlUHJvdmlkZXIuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gRGV2aWNlT3JpZW50YXRpb25VcGRhdGVQcm92aWRlci5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFMzk2MjhDMDIzOTU3NDMwMDA2NThFQ0QgLyog
TW90aW9uTWFuYWdlckNsaWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBN
b3Rpb25NYW5hZ2VyQ2xpZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUzOTc1
Qjc2MUVDOUFGMzkwMDg0NzcxNyAvKiBKU0RvY3VtZW50RnJhZ21lbnRET01KSVQuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNEb2N1bWVudEZyYWdtZW50RE9NSklU
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTM5NzVCNzcxRUM5QUYzOTAwODQ3
NzE3IC8qIEpTRWxlbWVudERPTUpJVC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBKU0VsZW1lbnRET01KSVQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQlFMzk3NUI3ODFFQzlBRjM5MDA4NDc3MTcgLyogSlNFdmVudERPTUpJVC5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0V2ZW50RE9NSklULmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTIyODE2LDYgKzIyODIwLDcgQEAKIAkJCQkzMUVBRjk3RDEy
MTQzNUE0MDBFN0MxQkYgLyogRGV2aWNlTW90aW9uQ2xpZW50SU9TLm1tICovLAogCQkJCTMxNDAz
Nzk5MTI0QkVBN0YwMEFGNDBFNCAvKiBEZXZpY2VPcmllbnRhdGlvbkNsaWVudElPUy5oICovLAog
CQkJCTMxNDAzNzlBMTI0QkVBN0YwMEFGNDBFNCAvKiBEZXZpY2VPcmllbnRhdGlvbkNsaWVudElP
Uy5tbSAqLywKKwkJCQlFMzk2MjhCRDIzOTU3MjhFMDA2NThFQ0QgLyogRGV2aWNlT3JpZW50YXRp
b25VcGRhdGVQcm92aWRlci5oICovLAogCQkJCTBGREE3QzIyMTg4MzMwQTkwMEM5NTRCNSAvKiBE
cmFnSW1hZ2VJT1MubW0gKi8sCiAJCQkJMjY1NTQxMzcxNDg5ODExQzAwMERGQzVEIC8qIEtleUV2
ZW50Q29kZXNJT1MuaCAqLywKIAkJCQkyNjU1NDEzODE0ODk4MTFDMDAwREZDNUQgLyogS2V5RXZl
bnRJT1MubW0gKi8sCkBAIC0yMjgzMiw2ICsyMjgzNyw3IEBACiAJCQkJMUM0M0RFNjgyMkFCNEI4
QTAwMTUyN0Q5IC8qIExvY2FsQ3VycmVudFRyYWl0Q29sbGVjdGlvbi5oICovLAogCQkJCTFDNDNE
RTZBMjJBQjRCOEEwMDE1MjdEOSAvKiBMb2NhbEN1cnJlbnRUcmFpdENvbGxlY3Rpb24ubW0gKi8s
CiAJCQkJNDZFRkFGMEQxRTVGQjlDMjAwRTdGMzRCIC8qIExvd1Bvd2VyTW9kZU5vdGlmaWVySU9T
Lm1tICovLAorCQkJCUUzOTYyOEMwMjM5NTc0MzAwMDY1OEVDRCAvKiBNb3Rpb25NYW5hZ2VyQ2xp
ZW50LmggKi8sCiAJCQkJRTQ1MzkwMTkwRUFGQ0FDQTAwMzY5NUM4IC8qIFBhc3RlYm9hcmRJT1Mu
bW0gKi8sCiAJCQkJMjY2MDFFQkQxNEIzQjlBRDAwMTJDMEZFIC8qIFBsYXRmb3JtRXZlbnRGYWN0
b3J5SU9TLmggKi8sCiAJCQkJMjY2MDFFQkUxNEIzQjlBRDAwMTJDMEZFIC8qIFBsYXRmb3JtRXZl
bnRGYWN0b3J5SU9TLm1tICovLApAQCAtMjk1NTcsNiArMjk1NjMsNyBAQAogCQkJCTU5QTg1RUE0
MTE5RDY4RUMwMERFRjFFRiAvKiBEZXZpY2VPcmllbnRhdGlvbkV2ZW50LmggaW4gSGVhZGVycyAq
LywKIAkJCQk0NjBFMzA3NTIyMkY0RUZEMDA5QTA2MDYgLyogRGV2aWNlT3JpZW50YXRpb25Pck1v
dGlvbkV2ZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQk0NjBFMzA3NzIyMkY0RjAzMDA5QTA2MDYg
LyogRGV2aWNlT3JpZW50YXRpb25Pck1vdGlvblBlcm1pc3Npb25TdGF0ZS5oIGluIEhlYWRlcnMg
Ki8sCisJCQkJRTM5NjI4QkYyMzk1NzI4RjAwNjU4RUNEIC8qIERldmljZU9yaWVudGF0aW9uVXBk
YXRlUHJvdmlkZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTU3MkI0MDFGMjE3NTdBNjQwMDBBRDQz
RSAvKiBEZXZpY2VSZXF1ZXN0Q29udmVydGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk1NzJCNDAz
QTIxNzcyNTgxMDAwQUQ0M0UgLyogRGV2aWNlUmVzcG9uc2VDb252ZXJ0ZXIuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTI2NzcyNUZEMUE1QjNBRDkwMDNDMjRERCAvKiBERkEuaCBpbiBIZWFkZXJzICov
LApAQCAtMzE0NDQsNiArMzE0NTEsNyBAQAogCQkJCTcwOUEwMUZFMUUzRDBCREQwMDZCMEQ0QyAv
KiBNb2R1bGVGZXRjaEZhaWx1cmVLaW5kLmggaW4gSGVhZGVycyAqLywKIAkJCQlFMzIwMUMxQTFG
OEU4MjEzMDA3NkEwMzIgLyogTW9kdWxlRmV0Y2hQYXJhbWV0ZXJzLmggaW4gSGVhZGVycyAqLywK
IAkJCQlGNTVCM0RDNjEyNTFGMTJEMDAzRUYyNjkgLyogTW9udGhJbnB1dFR5cGUuaCBpbiBIZWFk
ZXJzICovLAorCQkJCUUzOTYyOEMxMjM5NTc0MzEwMDY1OEVDRCAvKiBNb3Rpb25NYW5hZ2VyQ2xp
ZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQk4NTAzMUI0NjBBNDRFRkM3MDBGOTkyRTAgLyogTW91
c2VFdmVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODM3NjVGOTUxREFDNTIyRjAwQzA2NTM3IC8q
IE1vdXNlRXZlbnRJbml0LmggaW4gSGVhZGVycyAqLywKIAkJCQk5MzVDNDc2MzA5QUM0Q0U2MDBB
NkFBQjQgLyogTW91c2VFdmVudFdpdGhIaXRUZXN0UmVzdWx0cy5oIGluIEhlYWRlcnMgKi8sCkBA
IC0zMzQwMSw3ICszMzQwOSw2IEBACiAJCQlpc2EgPSBQQlhTb3VyY2VzQnVpbGRQaGFzZTsKIAkJ
CWJ1aWxkQWN0aW9uTWFzayA9IDIxNDc0ODM2NDc7CiAJCQlmaWxlcyA9ICgKLQkJCQkyRDQxNTBE
RTFDMUY4NjhDMDAwQTNCQTQgLyogKG51bGwpIGluIFNvdXJjZXMgKi8sCiAJCQkJNTE3MTRFQUMx
Q0Y2NTk1MTAwNDcyM0M0IC8qIEdDT2JzZXJ2YXRpb24uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
NDE3REE2RDkxMzczNEU2RTAwN0M1N0ZCIC8qIEludGVybmFscy5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQlFMTc5RjBEQTFCOTc3NEZFMDBFRDBBMjcgLyogSW50ZXJuYWxzLm1tIGluIFNvdXJjZXMg
Ki8sCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9kb20vRGV2aWNlT3JpZW50YXRpb25DbGllbnQuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9kb20vRGV2aWNlT3JpZW50YXRpb25DbGllbnQu
aAkocmV2aXNpb24gMjUzMTY2KQorKysgU291cmNlL1dlYkNvcmUvZG9tL0RldmljZU9yaWVudGF0
aW9uQ2xpZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTI4LDYgKzI4LDcgQEAKIAogI2luY2x1ZGUg
IkRldmljZUNsaWVudC5oIgogI2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgorI2luY2x1ZGUg
PHd0Zi9SZWZQdHIuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9kb20vRG9jdW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2RvbS9E
b2N1bWVudC5jcHAJKHJldmlzaW9uIDI1MzE2NikKKysrIFNvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1
bWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTU2NSw3ICs1NjUsNyBAQCBEb2N1bWVudDo6RG9j
dW1lbnQoRnJhbWUqIGZyYW1lLCBjb25zdCBVCiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkgJiYg
RU5BQkxFKERFVklDRV9PUklFTlRBVElPTikKICAgICAsIG1fZGV2aWNlTW90aW9uQ2xpZW50KG1h
a2VVbmlxdWU8RGV2aWNlTW90aW9uQ2xpZW50SU9TPigpKQogICAgICwgbV9kZXZpY2VNb3Rpb25D
b250cm9sbGVyKG1ha2VVbmlxdWU8RGV2aWNlTW90aW9uQ29udHJvbGxlcj4oKm1fZGV2aWNlTW90
aW9uQ2xpZW50KSkKLSAgICAsIG1fZGV2aWNlT3JpZW50YXRpb25DbGllbnQobWFrZVVuaXF1ZTxE
ZXZpY2VPcmllbnRhdGlvbkNsaWVudElPUz4oKSkKKyAgICAsIG1fZGV2aWNlT3JpZW50YXRpb25D
bGllbnQobWFrZVVuaXF1ZTxEZXZpY2VPcmllbnRhdGlvbkNsaWVudElPUz4ocGFnZSgpID8gcGFn
ZSgpLT5kZXZpY2VPcmllbnRhdGlvblVwZGF0ZVByb3ZpZGVyKCkgOiBudWxscHRyKSkKICAgICAs
IG1fZGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyKG1ha2VVbmlxdWU8RGV2aWNlT3JpZW50YXRp
b25Db250cm9sbGVyPigqbV9kZXZpY2VPcmllbnRhdGlvbkNsaWVudCkpCiAjZW5kaWYKICAgICAs
IG1fcGVuZGluZ1Rhc2tzVGltZXIoKnRoaXMsICZEb2N1bWVudDo6cGVuZGluZ1Rhc2tzVGltZXJG
aXJlZCkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcAkocmV2aXNpb24gMjUzMTY2KQorKysgU291cmNl
L1dlYkNvcmUvcGFnZS9QYWdlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjg5LDYgKzI4OSw5IEBA
IFBhZ2U6OlBhZ2UoUGFnZUNvbmZpZ3VyYXRpb24mJiBwYWdlQ29uZmkKICNpZiBFTkFCTEUoQVBQ
TElDQVRJT05fTUFOSUZFU1QpCiAgICAgLCBtX2FwcGxpY2F0aW9uTWFuaWZlc3QocGFnZUNvbmZp
Z3VyYXRpb24uYXBwbGljYXRpb25NYW5pZmVzdCkKICNlbmRpZgorI2lmIEVOQUJMRShERVZJQ0Vf
T1JJRU5UQVRJT04pICYmIFBMQVRGT1JNKElPU19GQU1JTFkpCisgICAgLCBtX2RldmljZU9yaWVu
dGF0aW9uVXBkYXRlUHJvdmlkZXIoV1RGTW92ZShwYWdlQ29uZmlndXJhdGlvbi5kZXZpY2VPcmll
bnRhdGlvblVwZGF0ZVByb3ZpZGVyKSkKKyNlbmRpZgogewogICAgIHVwZGF0ZVRpbWVyVGhyb3R0
bGluZ1N0YXRlKCk7CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oCShyZXZpc2lvbiAyNTMxNjYpCisrKyBT
b3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuaAkod29ya2luZyBjb3B5KQpAQCAtNjksNiArNjksMTAg
QEAKICNpbmNsdWRlICJNZWRpYVBsYXliYWNrVGFyZ2V0Q29udGV4dC5oIgogI2VuZGlmCiAKKyNp
ZiBFTkFCTEUoREVWSUNFX09SSUVOVEFUSU9OKSAmJiBQTEFURk9STShJT1NfRkFNSUxZKQorI2lu
Y2x1ZGUgIkRldmljZU9yaWVudGF0aW9uVXBkYXRlUHJvdmlkZXIuaCIKKyNlbmRpZgorCiBuYW1l
c3BhY2UgSlNDIHsKIGNsYXNzIERlYnVnZ2VyOwogfQpAQCAtNzE5LDYgKzcyMywxMCBAQCBwdWJs
aWM6CiAKICAgICBXRUJDT1JFX0VYUE9SVCBWZWN0b3I8UmVmPEVsZW1lbnQ+PiBlZGl0YWJsZUVs
ZW1lbnRzSW5SZWN0KGNvbnN0IEZsb2F0UmVjdCYpIGNvbnN0OwogCisjaWYgRU5BQkxFKERFVklD
RV9PUklFTlRBVElPTikgJiYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKyAgICBEZXZpY2VPcmllbnRh
dGlvblVwZGF0ZVByb3ZpZGVyKiBkZXZpY2VPcmllbnRhdGlvblVwZGF0ZVByb3ZpZGVyKCkgY29u
c3QgeyByZXR1cm4gbV9kZXZpY2VPcmllbnRhdGlvblVwZGF0ZVByb3ZpZGVyLmdldCgpOyB9Cisj
ZW5kaWYKKwogcHJpdmF0ZToKICAgICBzdHJ1Y3QgTmF2aWdhdGlvbiB7CiAgICAgICAgIFJlZ2lz
dHJhYmxlRG9tYWluIGRvbWFpbjsKQEAgLTk5MCw2ICs5OTgsMTAgQEAgcHJpdmF0ZToKIAogICAg
IE9wdGlvbmFsPFZpZXdwb3J0QXJndW1lbnRzPiBtX292ZXJyaWRlVmlld3BvcnRBcmd1bWVudHM7
CiAKKyNpZiBFTkFCTEUoREVWSUNFX09SSUVOVEFUSU9OKSAmJiBQTEFURk9STShJT1NfRkFNSUxZ
KQorICAgIFJlZlB0cjxEZXZpY2VPcmllbnRhdGlvblVwZGF0ZVByb3ZpZGVyPiBtX2RldmljZU9y
aWVudGF0aW9uVXBkYXRlUHJvdmlkZXI7CisjZW5kaWYKKwogICAgIGJvb2wgbV9zaG91bGRFbmFi
bGVJQ0VDYW5kaWRhdGVGaWx0ZXJpbmdCeURlZmF1bHQgeyB0cnVlIH07CiAgICAgYm9vbCBtX21l
ZGlhUGxheWJhY2tJc1N1c3BlbmRlZCB7IGZhbHNlIH07CiAgICAgYm9vbCBtX21lZGlhQnVmZmVy
aW5nSXNTdXNwZW5kZWQgeyBmYWxzZSB9OwpJbmRleDogU291cmNlL1dlYkNvcmUvcGFnZS9QYWdl
Q29uZmlndXJhdGlvbi5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZUNv
bmZpZ3VyYXRpb24uaAkocmV2aXNpb24gMjUzMTY2KQorKysgU291cmNlL1dlYkNvcmUvcGFnZS9Q
YWdlQ29uZmlndXJhdGlvbi5oCSh3b3JraW5nIGNvcHkpCkBAIC0xMTgsNiArMTE4LDEwIEBAIHB1
YmxpYzoKICAgICBSZWZQdHI8U3RvcmFnZU5hbWVzcGFjZVByb3ZpZGVyPiBzdG9yYWdlTmFtZXNw
YWNlUHJvdmlkZXI7CiAgICAgUmVmUHRyPFVzZXJDb250ZW50UHJvdmlkZXI+IHVzZXJDb250ZW50
UHJvdmlkZXI7CiAgICAgUmVmUHRyPFZpc2l0ZWRMaW5rU3RvcmU+IHZpc2l0ZWRMaW5rU3RvcmU7
CisgICAgCisjaWYgRU5BQkxFKERFVklDRV9PUklFTlRBVElPTikgJiYgUExBVEZPUk0oSU9TX0ZB
TUlMWSkKKyAgICBSZWZQdHI8RGV2aWNlT3JpZW50YXRpb25VcGRhdGVQcm92aWRlcj4gZGV2aWNl
T3JpZW50YXRpb25VcGRhdGVQcm92aWRlcjsKKyNlbmRpZgogfTsKIAogfQpJbmRleDogU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vaW9zL0RldmljZU9yaWVudGF0aW9uQ2xpZW50SU9TLmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL0RldmljZU9yaWVudGF0aW9uQ2xp
ZW50SU9TLmgJKHJldmlzaW9uIDI1MzE2NikKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lv
cy9EZXZpY2VPcmllbnRhdGlvbkNsaWVudElPUy5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMCwxNSAr
MzAsMTcgQEAKICNpbmNsdWRlICJEZXZpY2VPcmllbnRhdGlvbkNsaWVudC5oIgogI2luY2x1ZGUg
IkRldmljZU9yaWVudGF0aW9uQ29udHJvbGxlci5oIgogI2luY2x1ZGUgIkRldmljZU9yaWVudGF0
aW9uRGF0YS5oIgorI2luY2x1ZGUgIkRldmljZU9yaWVudGF0aW9uVXBkYXRlUHJvdmlkZXIuaCIK
KyNpbmNsdWRlICJNb3Rpb25NYW5hZ2VyQ2xpZW50LmgiCiAjaW5jbHVkZSA8d3RmL1JlZlB0ci5o
PgogCiBPQkpDX0NMQVNTIFdlYkNvcmVNb3Rpb25NYW5hZ2VyOwogCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKLWNsYXNzIERldmljZU9yaWVudGF0aW9uQ2xpZW50SU9TIDogcHVibGljIERldmljZU9y
aWVudGF0aW9uQ2xpZW50IHsKK2NsYXNzIERldmljZU9yaWVudGF0aW9uQ2xpZW50SU9TIDogcHVi
bGljIERldmljZU9yaWVudGF0aW9uQ2xpZW50LCBwdWJsaWMgTW90aW9uTWFuYWdlckNsaWVudCB7
CiBwdWJsaWM6Ci0gICAgRGV2aWNlT3JpZW50YXRpb25DbGllbnRJT1MoKTsKKyAgICBEZXZpY2VP
cmllbnRhdGlvbkNsaWVudElPUyhSZWZQdHI8RGV2aWNlT3JpZW50YXRpb25VcGRhdGVQcm92aWRl
cj4mJik7CiAgICAgfkRldmljZU9yaWVudGF0aW9uQ2xpZW50SU9TKCkgb3ZlcnJpZGU7CiAgICAg
dm9pZCBzZXRDb250cm9sbGVyKERldmljZU9yaWVudGF0aW9uQ29udHJvbGxlciopIG92ZXJyaWRl
OwogICAgIHZvaWQgc3RhcnRVcGRhdGluZygpIG92ZXJyaWRlOwpAQCAtNDYsMTMgKzQ4LDE0IEBA
IHB1YmxpYzoKICAgICBEZXZpY2VPcmllbnRhdGlvbkRhdGEqIGxhc3RPcmllbnRhdGlvbigpIGNv
bnN0IG92ZXJyaWRlOwogICAgIHZvaWQgZGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyRGVzdHJv
eWVkKCkgb3ZlcnJpZGU7CiAKLSAgICB2b2lkIG9yaWVudGF0aW9uQ2hhbmdlZChkb3VibGUsIGRv
dWJsZSwgZG91YmxlLCBkb3VibGUsIGRvdWJsZSk7CisgICAgdm9pZCBvcmllbnRhdGlvbkNoYW5n
ZWQoZG91YmxlLCBkb3VibGUsIGRvdWJsZSwgZG91YmxlLCBkb3VibGUpIG92ZXJyaWRlOwogCiBw
cml2YXRlOgotICAgIFdlYkNvcmVNb3Rpb25NYW5hZ2VyKiBtX21vdGlvbk1hbmFnZXI7Ci0gICAg
RGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyKiBtX2NvbnRyb2xsZXI7CisgICAgV2ViQ29yZU1v
dGlvbk1hbmFnZXIqIG1fbW90aW9uTWFuYWdlciAgeyBudWxscHRyIH07CisgICAgRGV2aWNlT3Jp
ZW50YXRpb25Db250cm9sbGVyKiBtX2NvbnRyb2xsZXIgIHsgbnVsbHB0ciB9OwogICAgIFJlZlB0
cjxEZXZpY2VPcmllbnRhdGlvbkRhdGE+IG1fY3VycmVudERldmljZU9yaWVudGF0aW9uOwotICAg
IGJvb2wgbV91cGRhdGluZzsKKyAgICBSZWZQdHI8RGV2aWNlT3JpZW50YXRpb25VcGRhdGVQcm92
aWRlcj4gbV9kZXZpY2VPcmllbnRhdGlvblVwZGF0ZVByb3ZpZGVyOworICAgIGJvb2wgbV91cGRh
dGluZyB7IGZhbHNlIH07CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvRGV2aWNlT3JpZW50YXRpb25DbGllbnRJT1MubW0KPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL0RldmljZU9yaWVudGF0aW9u
Q2xpZW50SU9TLm1tCShyZXZpc2lvbiAyNTMxNjYpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9pb3MvRGV2aWNlT3JpZW50YXRpb25DbGllbnRJT1MubW0JKHdvcmtpbmcgY29weSkKQEAgLTMz
LDEwICszMyw5IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotRGV2aWNlT3JpZW50YXRpb25D
bGllbnRJT1M6OkRldmljZU9yaWVudGF0aW9uQ2xpZW50SU9TKCkKK0RldmljZU9yaWVudGF0aW9u
Q2xpZW50SU9TOjpEZXZpY2VPcmllbnRhdGlvbkNsaWVudElPUyhSZWZQdHI8RGV2aWNlT3JpZW50
YXRpb25VcGRhdGVQcm92aWRlcj4mJiBkZXZpY2VPcmllbnRhdGlvblVwZGF0ZVByb3ZpZGVyKQog
ICAgIDogRGV2aWNlT3JpZW50YXRpb25DbGllbnQoKQotICAgICwgbV9tb3Rpb25NYW5hZ2VyKG51
bGxwdHIpCi0gICAgLCBtX3VwZGF0aW5nKDApCisgICAgLCBtX2RldmljZU9yaWVudGF0aW9uVXBk
YXRlUHJvdmlkZXIoV1RGTW92ZShkZXZpY2VPcmllbnRhdGlvblVwZGF0ZVByb3ZpZGVyKSkKIHsK
IH0KIApAQCAtNTMsNiArNTIsMTEgQEAgdm9pZCBEZXZpY2VPcmllbnRhdGlvbkNsaWVudElPUzo6
c3RhcnRVcAogewogICAgIG1fdXBkYXRpbmcgPSB0cnVlOwogCisgICAgaWYgKG1fZGV2aWNlT3Jp
ZW50YXRpb25VcGRhdGVQcm92aWRlcikgeworICAgICAgICBtX2RldmljZU9yaWVudGF0aW9uVXBk
YXRlUHJvdmlkZXItPnN0YXJ0VXBkYXRpbmcoKnRoaXMpOworICAgICAgICByZXR1cm47CisgICAg
fQorCiAgICAgaWYgKCFtX21vdGlvbk1hbmFnZXIpCiAgICAgICAgIG1fbW90aW9uTWFuYWdlciA9
IFtXZWJDb3JlTW90aW9uTWFuYWdlciBzaGFyZWRNYW5hZ2VyXTsKIApAQCAtNjMsNiArNjcsMTEg
QEAgdm9pZCBEZXZpY2VPcmllbnRhdGlvbkNsaWVudElPUzo6c3RvcFVwZAogewogICAgIG1fdXBk
YXRpbmcgPSBmYWxzZTsKIAorICAgIGlmIChtX2RldmljZU9yaWVudGF0aW9uVXBkYXRlUHJvdmlk
ZXIpIHsKKyAgICAgICAgbV9kZXZpY2VPcmllbnRhdGlvblVwZGF0ZVByb3ZpZGVyLT5zdG9wVXBk
YXRpbmcoKnRoaXMpOworICAgICAgICByZXR1cm47CisgICAgfQorCiAgICAgLy8gUmVtb3ZlIG91
cnNlbHZlcyBhcyB0aGUgb3JpZW50YXRpb24gY2xpZW50IHNvIHdlIHdvbid0IGdldCB1cGRhdGVz
LgogICAgIFttX21vdGlvbk1hbmFnZXIgcmVtb3ZlT3JpZW50YXRpb25DbGllbnQ6dGhpc107CiB9
CkBAIC03NCw2ICs4MywxMSBAQCBEZXZpY2VPcmllbnRhdGlvbkRhdGEqIERldmljZU9yaWVudGF0
aW9uCiAKIHZvaWQgRGV2aWNlT3JpZW50YXRpb25DbGllbnRJT1M6OmRldmljZU9yaWVudGF0aW9u
Q29udHJvbGxlckRlc3Ryb3llZCgpCiB7CisgICAgaWYgKG1fZGV2aWNlT3JpZW50YXRpb25VcGRh
dGVQcm92aWRlcikgeworICAgICAgICBtX2RldmljZU9yaWVudGF0aW9uVXBkYXRlUHJvdmlkZXIt
PnN0b3BVcGRhdGluZygqdGhpcyk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKICAgICBbbV9t
b3Rpb25NYW5hZ2VyIHJlbW92ZU9yaWVudGF0aW9uQ2xpZW50OnRoaXNdOwogfQogICAgIApJbmRl
eDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL0RldmljZU9yaWVudGF0aW9uVXBkYXRlUHJv
dmlkZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvRGV2aWNl
T3JpZW50YXRpb25VcGRhdGVQcm92aWRlci5oCShub25leGlzdGVudCkKKysrIFNvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2lvcy9EZXZpY2VPcmllbnRhdGlvblVwZGF0ZVByb3ZpZGVyLmgJKHdvcmtp
bmcgY29weSkKQEAgLTAsMCArMSw1MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOSBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICogUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgYGBBUyBJUycnIEFORCBBTlkK
KyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJ
TiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUIE9XTkVSIE9SCisgKiBDT05UUklCVVRPUlMg
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwK
KyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBQ
TEFURk9STShJT1NfRkFNSUxZKSAmJiBFTkFCTEUoREVWSUNFX09SSUVOVEFUSU9OKQorCisjaW5j
bHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBN
b3Rpb25NYW5hZ2VyQ2xpZW50OworCitjbGFzcyBEZXZpY2VPcmllbnRhdGlvblVwZGF0ZVByb3Zp
ZGVyIDogcHVibGljIFJlZkNvdW50ZWQ8RGV2aWNlT3JpZW50YXRpb25VcGRhdGVQcm92aWRlcj4g
eworcHVibGljOgorICAgIHZpcnR1YWwgfkRldmljZU9yaWVudGF0aW9uVXBkYXRlUHJvdmlkZXIo
KSB7IH0KKworICAgIHZpcnR1YWwgdm9pZCBzdGFydFVwZGF0aW5nKE1vdGlvbk1hbmFnZXJDbGll
bnQmKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHN0b3BVcGRhdGluZyhNb3Rpb25NYW5hZ2VyQ2xp
ZW50JikgPSAwOworCisgICAgdmlydHVhbCB2b2lkIGRldmljZU9yaWVudGF0aW9uQ2hhbmdlZChk
b3VibGUsIGRvdWJsZSwgZG91YmxlLCBkb3VibGUsIGRvdWJsZSkgPSAwOworICAgIAorcHJvdGVj
dGVkOgorICAgIERldmljZU9yaWVudGF0aW9uVXBkYXRlUHJvdmlkZXIoKSA9IGRlZmF1bHQ7Cit9
OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBQTEFURk9STShJT1NfRkFN
SUxZKSAmJiBFTkFCTEUoREVWSUNFX09SSUVOVEFUSU9OKQpJbmRleDogU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vaW9zL1dlYkNvcmVNb3Rpb25NYW5hZ2VyLmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dlYkNvcmVNb3Rpb25NYW5hZ2VyLmgJKHJldmlzaW9uIDI1
MzE2NikKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJDb3JlTW90aW9uTWFuYWdl
ci5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNSwxMCArMjUsOSBAQAogCiAjcHJhZ21hIG9uY2UKIAot
I2ltcG9ydCAiRGV2aWNlTW90aW9uQ2xpZW50SU9TLmgiCi0jaW1wb3J0ICJEZXZpY2VPcmllbnRh
dGlvbkNsaWVudElPUy5oIgogI2ltcG9ydCA8Q29yZUxvY2F0aW9uL0NvcmVMb2NhdGlvbi5oPgog
I2ltcG9ydCA8d3RmL0hhc2hDb3VudGVkU2V0Lmg+CisjaW1wb3J0IDx3dGYvV2Vha0hhc2hTZXQu
aD4KIAogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpICYmIEVOQUJMRShERVZJQ0VfT1JJRU5UQVRJ
T04pCiAKQEAgLTM2LDExICszNSwxNiBAQAogCiBjb25zdCBmbG9hdCBrTW90aW9uVXBkYXRlSW50
ZXJ2YWwgPSAxLjBmIC8gNjAuMGY7CiAKLUBpbnRlcmZhY2UgV2ViQ29yZU1vdGlvbk1hbmFnZXIg
OiBOU09iamVjdCB7CituYW1lc3BhY2UgV2ViQ29yZSB7CitjbGFzcyBEZXZpY2VNb3Rpb25DbGll
bnRJT1M7CitjbGFzcyBNb3Rpb25NYW5hZ2VyQ2xpZW50OworfTsKKworV0VCQ09SRV9FWFBPUlQg
QGludGVyZmFjZSBXZWJDb3JlTW90aW9uTWFuYWdlciA6IE5TT2JqZWN0IHsKICAgICBDTU1vdGlv
bk1hbmFnZXIqIG1fbW90aW9uTWFuYWdlcjsKICAgICBDTExvY2F0aW9uTWFuYWdlciogbV9sb2Nh
dGlvbk1hbmFnZXI7CiAgICAgSGFzaFNldDxXZWJDb3JlOjpEZXZpY2VNb3Rpb25DbGllbnRJT1Mq
PiBtX2RldmljZU1vdGlvbkNsaWVudHM7Ci0gICAgSGFzaFNldDxXZWJDb3JlOjpEZXZpY2VPcmll
bnRhdGlvbkNsaWVudElPUyo+IG1fZGV2aWNlT3JpZW50YXRpb25DbGllbnRzOworICAgIFdlYWtI
YXNoU2V0PFdlYkNvcmU6Ok1vdGlvbk1hbmFnZXJDbGllbnQ+IG1fZGV2aWNlT3JpZW50YXRpb25D
bGllbnRzOwogICAgIE5TVGltZXIqIG1fdXBkYXRlVGltZXI7CiAgICAgQk9PTCBtX2d5cm9BdmFp
bGFibGU7CiAgICAgQk9PTCBtX2hlYWRpbmdBdmFpbGFibGU7CkBAIC01MCw4ICs1NCw4IEBAIGNv
bnN0IGZsb2F0IGtNb3Rpb25VcGRhdGVJbnRlcnZhbCA9IDEuMGYKICsgKFdlYkNvcmVNb3Rpb25N
YW5hZ2VyICopc2hhcmVkTWFuYWdlcjsKIC0gKHZvaWQpYWRkTW90aW9uQ2xpZW50OihXZWJDb3Jl
OjpEZXZpY2VNb3Rpb25DbGllbnRJT1MgKiljbGllbnQ7CiAtICh2b2lkKXJlbW92ZU1vdGlvbkNs
aWVudDooV2ViQ29yZTo6RGV2aWNlTW90aW9uQ2xpZW50SU9TICopY2xpZW50OwotLSAodm9pZClh
ZGRPcmllbnRhdGlvbkNsaWVudDooV2ViQ29yZTo6RGV2aWNlT3JpZW50YXRpb25DbGllbnRJT1Mg
KiljbGllbnQ7Ci0tICh2b2lkKXJlbW92ZU9yaWVudGF0aW9uQ2xpZW50OihXZWJDb3JlOjpEZXZp
Y2VPcmllbnRhdGlvbkNsaWVudElPUyAqKWNsaWVudDsKKy0gKHZvaWQpYWRkT3JpZW50YXRpb25D
bGllbnQ6KFdlYkNvcmU6Ok1vdGlvbk1hbmFnZXJDbGllbnQgKiljbGllbnQ7CistICh2b2lkKXJl
bW92ZU9yaWVudGF0aW9uQ2xpZW50OihXZWJDb3JlOjpNb3Rpb25NYW5hZ2VyQ2xpZW50ICopY2xp
ZW50OwogLSAoQk9PTClneXJvQXZhaWxhYmxlOwogLSAoQk9PTCloZWFkaW5nQXZhaWxhYmxlOwog
QGVuZApJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dlYkNvcmVNb3Rpb25NYW5h
Z2VyLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJDb3Jl
TW90aW9uTWFuYWdlci5tbQkocmV2aXNpb24gMjUzMTY2KQorKysgU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vaW9zL1dlYkNvcmVNb3Rpb25NYW5hZ2VyLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0yOCw2
ICsyOCw4IEBACiAKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKSAmJiBFTkFCTEUoREVWSUNFX09S
SUVOVEFUSU9OKQogCisjaW1wb3J0ICJEZXZpY2VNb3Rpb25DbGllbnRJT1MuaCIKKyNpbXBvcnQg
Ik1vdGlvbk1hbmFnZXJDbGllbnQuaCIKICNpbXBvcnQgIldlYkNvcmVPYmpDRXh0cmFzLmgiCiAj
aW1wb3J0ICJXZWJDb3JlVGhyZWFkUnVuLmgiCiAjaW1wb3J0IDxDb3JlTG9jYXRpb24vQ29yZUxv
Y2F0aW9uLmg+CkBAIC0xMTIsMTYgKzExNCwxNiBAQCAtICh2b2lkKXJlbW92ZU1vdGlvbkNsaWVu
dDooV2ViQ29yZTo6RGV2CiAgICAgICAgIFtzZWxmIGNoZWNrQ2xpZW50U3RhdHVzXTsKIH0KIAot
LSAodm9pZClhZGRPcmllbnRhdGlvbkNsaWVudDooV2ViQ29yZTo6RGV2aWNlT3JpZW50YXRpb25D
bGllbnRJT1MgKiljbGllbnQKKy0gKHZvaWQpYWRkT3JpZW50YXRpb25DbGllbnQ6KFdlYkNvcmU6
Ok1vdGlvbk1hbmFnZXJDbGllbnQgKiljbGllbnQKIHsKLSAgICBtX2RldmljZU9yaWVudGF0aW9u
Q2xpZW50cy5hZGQoY2xpZW50KTsKKyAgICBtX2RldmljZU9yaWVudGF0aW9uQ2xpZW50cy5hZGQo
KmNsaWVudCk7CiAgICAgaWYgKG1faW5pdGlhbGl6ZWQpCiAgICAgICAgIFtzZWxmIGNoZWNrQ2xp
ZW50U3RhdHVzXTsKIH0KIAotLSAodm9pZClyZW1vdmVPcmllbnRhdGlvbkNsaWVudDooV2ViQ29y
ZTo6RGV2aWNlT3JpZW50YXRpb25DbGllbnRJT1MgKiljbGllbnQKKy0gKHZvaWQpcmVtb3ZlT3Jp
ZW50YXRpb25DbGllbnQ6KFdlYkNvcmU6Ok1vdGlvbk1hbmFnZXJDbGllbnQgKiljbGllbnQKIHsK
LSAgICBtX2RldmljZU9yaWVudGF0aW9uQ2xpZW50cy5yZW1vdmUoY2xpZW50KTsKKyAgICBtX2Rl
dmljZU9yaWVudGF0aW9uQ2xpZW50cy5yZW1vdmUoKmNsaWVudCk7CiAgICAgaWYgKG1faW5pdGlh
bGl6ZWQpCiAgICAgICAgIFtzZWxmIGNoZWNrQ2xpZW50U3RhdHVzXTsKIH0KQEAgLTE2OSw3ICsx
NzEsNyBAQCAtICh2b2lkKWNoZWNrQ2xpZW50U3RhdHVzCiAgICAgLy8gYmUgbm8gY2hhbmNlIHRo
YXQgbV9tb3Rpb25NYW5hZ2VyIGhhcyBub3QgYmVlbiBjcmVhdGVkLgogICAgIEFTU0VSVChtX21v
dGlvbk1hbmFnZXIpOwogCi0gICAgaWYgKG1fZGV2aWNlTW90aW9uQ2xpZW50cy5zaXplKCkgfHwg
bV9kZXZpY2VPcmllbnRhdGlvbkNsaWVudHMuc2l6ZSgpKSB7CisgICAgaWYgKG1fZGV2aWNlTW90
aW9uQ2xpZW50cy5zaXplKCkgfHwgbV9kZXZpY2VPcmllbnRhdGlvbkNsaWVudHMuY29tcHV0ZVNp
emUoKSkgewogICAgICAgICBpZiAobV9neXJvQXZhaWxhYmxlKQogICAgICAgICAgICAgW21fbW90
aW9uTWFuYWdlciBzdGFydERldmljZU1vdGlvblVwZGF0ZXNdOwogICAgICAgICBlbHNlCkBAIC0y
NDYsOCArMjQ4LDExIEBAIC0gKHZvaWQpc2VuZE1vdGlvbkRhdGE6KENNRGV2aWNlTW90aW9uICoK
IAogICAgICAgICBDTUF0dGl0dWRlKiBhdHRpdHVkZSA9IG5ld01vdGlvbi5hdHRpdHVkZTsKIAot
ICAgICAgICBhdXRvIG9yaWVudGF0aW9uQ2xpZW50cyA9IGNvcHlUb1ZlY3RvcihtX2RldmljZU9y
aWVudGF0aW9uQ2xpZW50cyk7Ci0KKyAgICAgICAgVmVjdG9yPFdlYWtQdHI8TW90aW9uTWFuYWdl
ckNsaWVudD4+IG9yaWVudGF0aW9uQ2xpZW50czsKKyAgICAgICAgb3JpZW50YXRpb25DbGllbnRz
LnJlc2VydmVJbml0aWFsQ2FwYWNpdHkobV9kZXZpY2VPcmllbnRhdGlvbkNsaWVudHMuY29tcHV0
ZVNpemUoKSk7CisgICAgICAgIGZvciAoYXV0byYgY2xpZW50IDogbV9kZXZpY2VPcmllbnRhdGlv
bkNsaWVudHMpCisgICAgICAgICAgICBvcmllbnRhdGlvbkNsaWVudHMuYXBwZW5kKG1ha2VXZWFr
UHRyKCZjbGllbnQpKTsKKyAgICAgICAgCiAgICAgICAgIC8vIENvbXBvc2UgdGhlIHJhdyBtb3Rp
b24gZGF0YSB0byBhbiBpbnRlcm1lZGlhdGUgWlhZLWJhc2VkIDN4MyByb3RhdGlvbgogICAgICAg
ICAvLyBtYXRyaXggKFIpIHdoZXJlIFt6PWF0dGl0dWRlLnlhdywgeD1hdHRpdHVkZS5waXRjaCwg
eT1hdHRpdHVkZS5yb2xsXQogICAgICAgICAvLyBpbiB0aGUgZm9ybToKQEAgLTMxOSw4ICszMjQs
MTAgQEAgLSAodm9pZClzZW5kTW90aW9uRGF0YTooQ01EZXZpY2VNb3Rpb24gKgogICAgICAgICBk
b3VibGUgaGVhZGluZyA9IChtX2hlYWRpbmdBdmFpbGFibGUgJiYgbmV3SGVhZGluZykgPyBuZXdI
ZWFkaW5nLm1hZ25ldGljSGVhZGluZyA6IDA7CiAgICAgICAgIGRvdWJsZSBoZWFkaW5nQWNjdXJh
Y3kgPSAobV9oZWFkaW5nQXZhaWxhYmxlICYmIG5ld0hlYWRpbmcpID8gbmV3SGVhZGluZy5oZWFk
aW5nQWNjdXJhY3kgOiAtMTsKIAotICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IG9yaWVu
dGF0aW9uQ2xpZW50cy5zaXplKCk7ICsraSkKLSAgICAgICAgICAgIG9yaWVudGF0aW9uQ2xpZW50
c1tpXS0+b3JpZW50YXRpb25DaGFuZ2VkKGFscGhhLCBiZXRhLCBnYW1tYSwgaGVhZGluZywgaGVh
ZGluZ0FjY3VyYWN5KTsKKyAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBvcmllbnRhdGlv
bkNsaWVudHMuc2l6ZSgpOyArK2kpIHsKKyAgICAgICAgICAgIGlmIChvcmllbnRhdGlvbkNsaWVu
dHNbaV0pCisgICAgICAgICAgICAgICAgb3JpZW50YXRpb25DbGllbnRzW2ldLT5vcmllbnRhdGlv
bkNoYW5nZWQoYWxwaGEsIGJldGEsIGdhbW1hLCBoZWFkaW5nLCBoZWFkaW5nQWNjdXJhY3kpOwor
ICAgICAgICB9CiAgICAgfSk7CiB9CiAKSW5kZXg6IFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCShyZXZpc2lvbiAyNTMxNzApCisr
KyBTb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI1IEBA
CisyMDE5LTEyLTA1ICBQZXIgQXJuZSBWb2xsYW4gIDxwdm9sbGFuQGFwcGxlLmNvbT4KKworICAg
ICAgICBbaU9TXSBDYWxscyB0byBkZXZpY2Ugb3JpZW50YXRpb24gQVBJIHNob3VsZCBiZSBkb25l
IGluIHRoZSBVSSBwcm9jZXNzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yMDQ3MjAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBBZGQgYSBuZXcgY2xhc3MsIFdlYkRldmljZU9yaWVudGF0aW9uVXBkYXRlUHJv
dmlkZXJQcm94eSwgdG8gaGFuZGxlIG1lc3NhZ2VzIHRvIHN0YXJ0IGFuZCBzdG9wIHVwZGF0aW5n
IGRldmljZSBvcmllbnRhdGlvbgorICAgICAgICBpbiB0aGUgVUkgcHJvY2Vzcy4gQWxzbywgYWRk
IGEgbWVzc2FnZSB0byB1cGRhdGUgdGhlIGRldmljZSBvcmllbnRhdGlvbiBpbiB0aGUgV2ViQ29u
dGVudCBwcm9jZXNzLiBJbiB0aGUgVUkgcHJvY2VzcywgdGhlCisgICAgICAgIGRldmljZSBvcmll
bnRhdGlvbiBBUEkgaXMgY2FsbGVkIHRocm91Z2ggdGhlIGFscmVhZHkgZXhpc3RpbmcgV2ViQ29y
ZU1vdGlvbk1hbmFnZXIgY2xhc3MuCisKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy1pbnB1dC54
Y2ZpbGVsaXN0OgorICAgICAgICAqIERlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0Ogor
ICAgICAgICAqIERlcml2ZWRTb3VyY2VzLm1ha2U6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBh
Z2VQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6Om1fd2ViRGV2aWNlT3JpZW50YXRpb25VcGRh
dGVQcm92aWRlclByb3h5KToKKyAgICAgICAgKFdlYktpdDo6bV9yZXNldFJlY2VudENyYXNoQ291
bnRUaW1lcik6IERlbGV0ZWQuCisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oOgor
ICAgICAgICAqIFdlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIFdl
YlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6bV9vdmVycmlk
ZGVuTWVkaWFUeXBlKToKKwogMjAxOS0xMi0wNSAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUu
Y29tPgogCiAgICAgICAgIE1FU1NBR0VfQ0hFQ0sgQmFja0ZvcndhcmRJdGVtSWRlbnRpZmllciBv
biBpbmNvbWluZyBJUEMgZnJvbSB0aGUgV2ViUHJvY2VzcwpJbmRleDogU291cmNlL1dlYktpdC9E
ZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0Cj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQvRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdAkocmV2aXNpb24gMjUzMTY2KQorKysg
U291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0CSh3b3JraW5nIGNv
cHkpCkBAIC04OCw2ICs4OCw3IEBAICQoUFJPSkVDVF9ESVIpL1VJUHJvY2Vzcy9XZWJQcm9jZXNz
UG9vbC4KICQoUFJPSkVDVF9ESVIpL1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkubWVzc2FnZXMu
aW4KICQoUFJPSkVDVF9ESVIpL1VJUHJvY2Vzcy9pb3MvRWRpdGFibGVJbWFnZUNvbnRyb2xsZXIu
bWVzc2FnZXMuaW4KICQoUFJPSkVDVF9ESVIpL1VJUHJvY2Vzcy9pb3MvU21hcnRNYWduaWZpY2F0
aW9uQ29udHJvbGxlci5tZXNzYWdlcy5pbgorJChQUk9KRUNUX0RJUikvVUlQcm9jZXNzL2lvcy9X
ZWJEZXZpY2VPcmllbnRhdGlvblVwZGF0ZVByb3ZpZGVyUHJveHkubWVzc2FnZXMuaW4KICQoUFJP
SkVDVF9ESVIpL1VJUHJvY2Vzcy9tYWMvU2VjSXRlbVNoaW1Qcm94eS5tZXNzYWdlcy5pbgogJChQ
Uk9KRUNUX0RJUikvV2ViUHJvY2Vzcy9BcHBsZVBheS9XZWJQYXltZW50Q29vcmRpbmF0b3IubWVz
c2FnZXMuaW4KICQoUFJPSkVDVF9ESVIpL1dlYlByb2Nlc3MvQXV0b21hdGlvbi9XZWJBdXRvbWF0
aW9uU2Vzc2lvblByb3h5LmpzCkBAIC0xMTMsNiArMTE0LDcgQEAgJChQUk9KRUNUX0RJUikvV2Vi
UHJvY2Vzcy9TdG9yYWdlL1dlYlNXQwogJChQUk9KRUNUX0RJUikvV2ViUHJvY2Vzcy9TdG9yYWdl
L1dlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLm1lc3NhZ2VzLmluCiAkKFBST0pFQ1RfRElS
KS9XZWJQcm9jZXNzL1VzZXJDb250ZW50L1dlYlVzZXJDb250ZW50Q29udHJvbGxlci5tZXNzYWdl
cy5pbgogJChQUk9KRUNUX0RJUikvV2ViUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9XZWJBdXRo
ZW50aWNhdG9yQ29vcmRpbmF0b3IubWVzc2FnZXMuaW4KKyQoUFJPSkVDVF9ESVIpL1dlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvV2ViRGV2aWNlT3JpZW50YXRpb25VcGRhdGVQcm92aWRlci5tZXNz
YWdlcy5pbgogJChQUk9KRUNUX0RJUikvV2ViUHJvY2Vzcy9XZWJQYWdlL0NvY29hL1RleHRDaGVj
a2luZ0NvbnRyb2xsZXJQcm94eS5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikvV2ViUHJvY2Vz
cy9XZWJQYWdlL0RyYXdpbmdBcmVhLm1lc3NhZ2VzLmluCiAkKFBST0pFQ1RfRElSKS9XZWJQcm9j
ZXNzL1dlYlBhZ2UvRXZlbnREaXNwYXRjaGVyLm1lc3NhZ2VzLmluCkluZGV4OiBTb3VyY2UvV2Vi
S2l0L0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0Cj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QJKHJldmlzaW9uIDI1MzE2
NikKKysrIFNvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QJKHdv
cmtpbmcgY29weSkKQEAgLTE5Myw2ICsxOTMsMTIgQEAgJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rl
cml2ZWRTb3VyY2VzL1dlYgogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dl
YktpdDIvV2ViQ29va2llTWFuYWdlclByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcAogJChCVUlMVF9Q
Uk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvV2ViQ29va2llTWFuYWdlclByb3h5
TWVzc2FnZXMuaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIv
V2ViQ29va2llTWFuYWdlclByb3h5TWVzc2FnZXNSZXBsaWVzLmgKKyQoQlVJTFRfUFJPRFVDVFNf
RElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1dlYkRldmljZU9yaWVudGF0aW9uVXBkYXRlUHJv
dmlkZXJNZXNzYWdlUmVjZWl2ZXIuY3BwCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNv
dXJjZXMvV2ViS2l0Mi9XZWJEZXZpY2VPcmllbnRhdGlvblVwZGF0ZVByb3ZpZGVyTWVzc2FnZXMu
aAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvV2ViRGV2aWNl
T3JpZW50YXRpb25VcGRhdGVQcm92aWRlck1lc3NhZ2VzUmVwbGllcy5oCiskKEJVSUxUX1BST0RV
Q1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9XZWJEZXZpY2VPcmllbnRhdGlvblVwZGF0
ZVByb3ZpZGVyUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwCiskKEJVSUxUX1BST0RVQ1RTX0RJUikv
RGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9XZWJEZXZpY2VPcmllbnRhdGlvblVwZGF0ZVByb3ZpZGVy
UHJveHlNZXNzYWdlcy5oCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2Vi
S2l0Mi9XZWJEZXZpY2VPcmllbnRhdGlvblVwZGF0ZVByb3ZpZGVyUHJveHlNZXNzYWdlc1JlcGxp
ZXMuaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvV2ViRnVs
bFNjcmVlbk1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikv
RGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9XZWJGdWxsU2NyZWVuTWFuYWdlck1lc3NhZ2VzLmgKICQo
QlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1dlYkZ1bGxTY3JlZW5N
YW5hZ2VyTWVzc2FnZXNSZXBsaWVzLmgKSW5kZXg6IFNvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJj
ZXMubWFrZQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLm1ha2UJ
KHJldmlzaW9uIDI1MzE2NikKKysrIFNvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMubWFrZQko
d29ya2luZyBjb3B5KQpAQCAtMTg5LDYgKzE4OSw4IEBAIE1FU1NBR0VfUkVDRUlWRVJTID0gXAog
ICAgIFdlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uIFwKICAgICBXZWJTV1NlcnZlckNvbm5l
Y3Rpb24gXAogICAgIFdlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbiBcCisgICAgV2ViRGV2
aWNlT3JpZW50YXRpb25VcGRhdGVQcm92aWRlciBcCisgICAgV2ViRGV2aWNlT3JpZW50YXRpb25V
cGRhdGVQcm92aWRlclByb3h5IFwKICAgICBXZWJTb2NrZXRDaGFubmVsIFwKICAgICBXZWJTb2Nr
ZXRTdHJlYW0gXAogICAgIFdlYlVzZXJDb250ZW50Q29udHJvbGxlciBcCkluZGV4OiBTb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAJKHJldmlzaW9uIDI1MzE2NikKKysrIFNv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTQ0OSw2ICs0NDksOSBAQCBXZWJQYWdlUHJveHk6OldlYlBhZ2VQcm94eShQYWdlQ2xpZW50JiBw
CiAgICAgLCBtX2luc3BlY3RvckRlYnVnZ2FibGUobWFrZVVuaXF1ZTxXZWJQYWdlRGVidWdnYWJs
ZT4oKnRoaXMpKQogI2VuZGlmCiAgICAgLCBtX3Jlc2V0UmVjZW50Q3Jhc2hDb3VudFRpbWVyKFJ1
bkxvb3A6Om1haW4oKSwgdGhpcywgJldlYlBhZ2VQcm94eTo6cmVzZXRSZWNlbnRDcmFzaENvdW50
KQorI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpICYmIEVOQUJMRShERVZJQ0VfT1JJRU5UQVRJT04p
CisgICAgLCBtX3dlYkRldmljZU9yaWVudGF0aW9uVXBkYXRlUHJvdmlkZXJQcm94eSgqdGhpcykK
KyNlbmRpZgogewogICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoTG9hZGluZywgImNvbnN0cnVj
dG9yOiIpOwogCkluZGV4OiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAkocmV2
aXNpb24gMjUzMTY2KQorKysgU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgJ
KHdvcmtpbmcgY29weSkKQEAgLTE0OSw2ICsxNDksMTAgQEAgT0JKQ19DTEFTUyBfV0tSZW1vdGVP
YmplY3RSZWdpc3RyeTsKICNpbmNsdWRlICJTT0F1dGhvcml6YXRpb25Mb2FkUG9saWN5LmgiCiAj
ZW5kaWYKIAorI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpICYmIEVOQUJMRShERVZJQ0VfT1JJRU5U
QVRJT04pCisjaW5jbHVkZSAiV2ViRGV2aWNlT3JpZW50YXRpb25VcGRhdGVQcm92aWRlclByb3h5
LmgiCisjZW5kaWYKKwogI2lmIEVOQUJMRShNRURJQV9TRVNTSU9OKQogbmFtZXNwYWNlIFdlYkNv
cmUgewogY2xhc3MgTWVkaWFTZXNzaW9uTWV0YWRhdGE7CkBAIC0yNjI5LDYgKzI2MzMsMTAgQEAg
cHJpdmF0ZToKICAgICBib29sIG1faXNRdW90YUluY3JlYXNlRGVuaWVkIHsgZmFsc2UgfTsKICAg
ICAKICAgICBTdHJpbmcgbV9vdmVycmlkZGVuTWVkaWFUeXBlOworICAgICAgICAKKyNpZiBQTEFU
Rk9STShJT1NfRkFNSUxZKSAmJiBFTkFCTEUoREVWSUNFX09SSUVOVEFUSU9OKQorICAgIFdlYkRl
dmljZU9yaWVudGF0aW9uVXBkYXRlUHJvdmlkZXJQcm94eSBtX3dlYkRldmljZU9yaWVudGF0aW9u
VXBkYXRlUHJvdmlkZXJQcm94eTsKKyNlbmRpZgogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0
CkluZGV4OiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV2ViRGV2aWNlT3JpZW50YXRpb25V
cGRhdGVQcm92aWRlclByb3h5LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvaW9zL1dlYkRldmljZU9yaWVudGF0aW9uVXBkYXRlUHJvdmlkZXJQcm94eS5oCShub25leGlz
dGVudCkKKysrIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XZWJEZXZpY2VPcmllbnRhdGlv
blVwZGF0ZVByb3ZpZGVyUHJveHkuaAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDU3IEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKSAmJiBF
TkFCTEUoREVWSUNFX09SSUVOVEFUSU9OKQorCisjaW5jbHVkZSAiTWVzc2FnZVJlY2VpdmVyLmgi
CisjaW5jbHVkZSA8V2ViQ29yZS9Nb3Rpb25NYW5hZ2VyQ2xpZW50Lmg+CisKK25hbWVzcGFjZSBX
ZWJLaXQgeworCitjbGFzcyBXZWJQYWdlUHJveHk7CisKK2NsYXNzIFdlYkRldmljZU9yaWVudGF0
aW9uVXBkYXRlUHJvdmlkZXJQcm94eSA6IHB1YmxpYyBXZWJDb3JlOjpNb3Rpb25NYW5hZ2VyQ2xp
ZW50LCBwcml2YXRlIElQQzo6TWVzc2FnZVJlY2VpdmVyIHsKK3B1YmxpYzoKKyAgICBXZWJEZXZp
Y2VPcmllbnRhdGlvblVwZGF0ZVByb3ZpZGVyUHJveHkoV2ViUGFnZVByb3h5Jik7CisgICAgfldl
YkRldmljZU9yaWVudGF0aW9uVXBkYXRlUHJvdmlkZXJQcm94eSgpOworCisgICAgdm9pZCBzdGFy
dFVwZGF0aW5nRGV2aWNlT3JpZW50YXRpb24oKTsKKyAgICB2b2lkIHN0b3BVcGRhdGluZ0Rldmlj
ZU9yaWVudGF0aW9uKCk7CisgICAgCitwcml2YXRlOgorICAgIC8vIFdlYkNvcmU6OldlYkNvcmVN
b3Rpb25NYW5hZ2VyQ2xpZW50CisgICAgdm9pZCBvcmllbnRhdGlvbkNoYW5nZWQoZG91YmxlLCBk
b3VibGUsIGRvdWJsZSwgZG91YmxlLCBkb3VibGUpIGZpbmFsOworICAgIAorICAgIC8vIElQQzo6
TWVzc2FnZVJlY2VpdmVyLgorICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0
aW9uJiwgSVBDOjpEZWNvZGVyJikgb3ZlcnJpZGU7CisKKyAgICBXZWJQYWdlUHJveHkmIG1fcGFn
ZTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gUExBVEZPUk0oSU9T
X0ZBTUlMWSkgJiYgRU5BQkxFKERFVklDRV9PUklFTlRBVElPTikKSW5kZXg6IFNvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL2lvcy9XZWJEZXZpY2VPcmllbnRhdGlvblVwZGF0ZVByb3ZpZGVyUHJveHku
bWVzc2FnZXMuaW4KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dl
YkRldmljZU9yaWVudGF0aW9uVXBkYXRlUHJvdmlkZXJQcm94eS5tZXNzYWdlcy5pbgkobm9uZXhp
c3RlbnQpCisrKyBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV2ViRGV2aWNlT3JpZW50YXRp
b25VcGRhdGVQcm92aWRlclByb3h5Lm1lc3NhZ2VzLmluCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAg
KzEsMjggQEAKKyMgQ29weXJpZ2h0IChDKSAyMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyMKKyMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworIyBhcmUgbWV0OgorIyAxLiAgUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyMgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyMgMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisjICAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorIworIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFORAorIyBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElF
RAorIyBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSIFBVUlBPU0UgQVJFCisjIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SCisjIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwK
KyMgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
IFNVQlNUSVRVVEUgR09PRFMgT1IKKyMgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIKKyMgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwKKyMgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKworI2lmIFBM
QVRGT1JNKElPU19GQU1JTFkpICYmIEVOQUJMRShERVZJQ0VfT1JJRU5UQVRJT04pCittZXNzYWdl
cyAtPiBXZWJEZXZpY2VPcmllbnRhdGlvblVwZGF0ZVByb3ZpZGVyUHJveHkgTm90UmVmQ291bnRl
ZCB7CisgICAgU3RhcnRVcGRhdGluZ0RldmljZU9yaWVudGF0aW9uKCk7CisgICAgU3RvcFVwZGF0
aW5nRGV2aWNlT3JpZW50YXRpb24oKTsKK30KKyNlbmRpZgpJbmRleDogU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvaW9zL1dlYkRldmljZU9yaWVudGF0aW9uVXBkYXRlUHJvdmlkZXJQcm94eS5tbQo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV2ViRGV2aWNlT3JpZW50
YXRpb25VcGRhdGVQcm92aWRlclByb3h5Lm1tCShub25leGlzdGVudCkKKysrIFNvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL2lvcy9XZWJEZXZpY2VPcmllbnRhdGlvblVwZGF0ZVByb3ZpZGVyUHJveHku
bW0JKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw2NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbXBvcnQg
ImNvbmZpZy5oIgorI2ltcG9ydCAiV2ViRGV2aWNlT3JpZW50YXRpb25VcGRhdGVQcm92aWRlclBy
b3h5LmgiCisKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKSAmJiBFTkFCTEUoREVWSUNFX09SSUVO
VEFUSU9OKQorCisjaW1wb3J0ICJXZWJEZXZpY2VPcmllbnRhdGlvblVwZGF0ZVByb3ZpZGVyTWVz
c2FnZXMuaCIKKyNpbXBvcnQgIldlYkRldmljZU9yaWVudGF0aW9uVXBkYXRlUHJvdmlkZXJQcm94
eU1lc3NhZ2VzLmgiCisjaW1wb3J0ICJXZWJQYWdlUHJveHkuaCIKKyNpbXBvcnQgIldlYlByb2Nl
c3NQcm94eS5oIgorI2ltcG9ydCA8V2ViQ29yZS9XZWJDb3JlTW90aW9uTWFuYWdlci5oPgorCitu
YW1lc3BhY2UgV2ViS2l0IHsKKworV2ViRGV2aWNlT3JpZW50YXRpb25VcGRhdGVQcm92aWRlclBy
b3h5OjpXZWJEZXZpY2VPcmllbnRhdGlvblVwZGF0ZVByb3ZpZGVyUHJveHkoV2ViUGFnZVByb3h5
JiBwYWdlKQorICAgIDogbV9wYWdlKHBhZ2UpCit7CisgICAgbV9wYWdlLnByb2Nlc3MoKS5hZGRN
ZXNzYWdlUmVjZWl2ZXIoTWVzc2FnZXM6OldlYkRldmljZU9yaWVudGF0aW9uVXBkYXRlUHJvdmlk
ZXJQcm94eTo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpLCBtX3BhZ2Uud2ViUGFnZUlEKCksICp0aGlz
KTsKK30KKworV2ViRGV2aWNlT3JpZW50YXRpb25VcGRhdGVQcm92aWRlclByb3h5Ojp+V2ViRGV2
aWNlT3JpZW50YXRpb25VcGRhdGVQcm92aWRlclByb3h5KCkKK3sKKyAgICBtX3BhZ2UucHJvY2Vz
cygpLnJlbW92ZU1lc3NhZ2VSZWNlaXZlcihNZXNzYWdlczo6V2ViRGV2aWNlT3JpZW50YXRpb25V
cGRhdGVQcm92aWRlclByb3h5OjptZXNzYWdlUmVjZWl2ZXJOYW1lKCksIG1fcGFnZS53ZWJQYWdl
SUQoKSk7Cit9CisKK3ZvaWQgV2ViRGV2aWNlT3JpZW50YXRpb25VcGRhdGVQcm92aWRlclByb3h5
OjpzdGFydFVwZGF0aW5nRGV2aWNlT3JpZW50YXRpb24oKQoreworICAgIFtbV2ViQ29yZU1vdGlv
bk1hbmFnZXIgc2hhcmVkTWFuYWdlcl0gYWRkT3JpZW50YXRpb25DbGllbnQ6dGhpc107Cit9CisK
K3ZvaWQgV2ViRGV2aWNlT3JpZW50YXRpb25VcGRhdGVQcm92aWRlclByb3h5OjpzdG9wVXBkYXRp
bmdEZXZpY2VPcmllbnRhdGlvbigpCit7CisgICAgW1tXZWJDb3JlTW90aW9uTWFuYWdlciBzaGFy
ZWRNYW5hZ2VyXSByZW1vdmVPcmllbnRhdGlvbkNsaWVudDp0aGlzXTsKK30KKwordm9pZCBXZWJE
ZXZpY2VPcmllbnRhdGlvblVwZGF0ZVByb3ZpZGVyUHJveHk6Om9yaWVudGF0aW9uQ2hhbmdlZChk
b3VibGUgYWxwaGEsIGRvdWJsZSBiZXRhLCBkb3VibGUgZ2FtbWEsIGRvdWJsZSBjb21wYXNzSGVh
ZGluZywgZG91YmxlIGNvbXBhc3NBY2N1cmFjeSkKK3sKKyAgICBtX3BhZ2Uuc2VuZChNZXNzYWdl
czo6V2ViRGV2aWNlT3JpZW50YXRpb25VcGRhdGVQcm92aWRlcjo6RGV2aWNlT3JpZW50YXRpb25D
aGFuZ2VkKGFscGhhLCBiZXRhLCBnYW1tYSwgY29tcGFzc0hlYWRpbmcsIGNvbXBhc3NBY2N1cmFj
eSkpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIFBMQVRGT1JNKElP
U19GQU1JTFkpCkluZGV4OiBTb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oJKHJldmlzaW9uIDI1MzE2NikKKysrIFNvdXJjZS9XZWJLaXQvV2ViS2l0Lnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHdvcmtpbmcgY29weSkKQEAgLTE2OTYsNiArMTY5Niwx
NCBAQAogCQlFMUQyNkE1MzE3NTk2NEQ5MDA5NUJGRDEgLyogV2ViQ29udGVudFByb2Nlc3MueGli
IGluIFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMUQyNkE0
QzE3NTk2MzRFMDA5NUJGRDEgLyogV2ViQ29udGVudFByb2Nlc3MueGliICovOyB9OwogCQlFMUU1
NTJDNTE2QUUwNjVGMDA0RUQ2NTMgLyogU2FuZGJveEluaXRpYWxpemF0aW9uUGFyYW1ldGVycy5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTFFNTUyQzMx
NkFFMDY1RTAwNEVENjUzIC8qIFNhbmRib3hJbml0aWFsaXphdGlvblBhcmFtZXRlcnMuaCAqLzsg
fTsKIAkJRTFFRTUzRTMxMUY4Q0ZDMDAwQ0NCRUU0IC8qIEluamVjdGVkQnVuZGxlUGFnZUVkaXRv
ckNsaWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
RTFFRTUzREMxMUY4Q0Y5RjAwQ0NCRUU0IC8qIEluamVjdGVkQnVuZGxlUGFnZUVkaXRvckNsaWVu
dC5oICovOyB9OworCQlFMzg2NkFFNTIzOTc0MDA0MDBGODhGRTkgLyogV2ViRGV2aWNlT3JpZW50
YXRpb25VcGRhdGVQcm92aWRlclByb3h5Lm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gRTM4NjZBRTQyMzk3NDAwNDAwRjg4RkU5IC8qIFdlYkRldmljZU9y
aWVudGF0aW9uVXBkYXRlUHJvdmlkZXJQcm94eS5tbSAqLzsgfTsKKwkJRTM4NjZBRTcyMzk3NDA1
MzAwRjg4RkU5IC8qIFdlYkRldmljZU9yaWVudGF0aW9uVXBkYXRlUHJvdmlkZXJQcm94eS5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTM4NjZBRTYyMzk3
NDA1MzAwRjg4RkU5IC8qIFdlYkRldmljZU9yaWVudGF0aW9uVXBkYXRlUHJvdmlkZXJQcm94eS5o
ICovOyB9OworCQlFMzg2NkIwODIzOTlBMkQxMDBGODhGRTkgLyogV2ViRGV2aWNlT3JpZW50YXRp
b25VcGRhdGVQcm92aWRlclByb3h5TWVzc2FnZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUzODY2QjA1MjM5OTk3OUMwMEY4OEZFOSAvKiBXZWJEZXZp
Y2VPcmllbnRhdGlvblVwZGF0ZVByb3ZpZGVyUHJveHlNZXNzYWdlcy5oICovOyB9OworCQlFMzg2
NkIwOTIzOTlBMkQ1MDBGODhGRTkgLyogV2ViRGV2aWNlT3JpZW50YXRpb25VcGRhdGVQcm92aWRl
clByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEUzODY2QjA0MjM5OTk3OUMwMEY4OEZFOSAvKiBXZWJEZXZpY2VPcmll
bnRhdGlvblVwZGF0ZVByb3ZpZGVyUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwICovOyB9OworCQlF
Mzg2NkIwQTIzOTlBMkQ5MDBGODhGRTkgLyogV2ViRGV2aWNlT3JpZW50YXRpb25VcGRhdGVQcm92
aWRlck1lc3NhZ2VzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBFMzg2NkIwNzIzOTk5NzlEMDBGODhGRTkgLyogV2ViRGV2aWNlT3JpZW50YXRpb25VcGRh
dGVQcm92aWRlck1lc3NhZ2VzLmggKi87IH07CisJCUUzODY2QjBCMjM5OUEyREQwMEY4OEZFOSAv
KiBXZWJEZXZpY2VPcmllbnRhdGlvblVwZGF0ZVByb3ZpZGVyTWVzc2FnZVJlY2VpdmVyLmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUzODY2QjA2MjM5
OTk3OUMwMEY4OEZFOSAvKiBXZWJEZXZpY2VPcmllbnRhdGlvblVwZGF0ZVByb3ZpZGVyTWVzc2Fn
ZVJlY2VpdmVyLmNwcCAqLzsgfTsKKwkJRTM5NjI4REQyMzk2MENDNjAwNjU4RUNEIC8qIFdlYkRl
dmljZU9yaWVudGF0aW9uVXBkYXRlUHJvdmlkZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUzOTYyOERCMjM5NjBDQzUwMDY1OEVDRCAvKiBXZWJEZXZp
Y2VPcmllbnRhdGlvblVwZGF0ZVByb3ZpZGVyLmggKi87IH07CisJCUUzOTYyOERFMjM5NjBDQzYw
MDY1OEVDRCAvKiBXZWJEZXZpY2VPcmllbnRhdGlvblVwZGF0ZVByb3ZpZGVyLmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUzOTYyOERDMjM5NjBDQzYw
MDY1OEVDRCAvKiBXZWJEZXZpY2VPcmllbnRhdGlvblVwZGF0ZVByb3ZpZGVyLmNwcCAqLzsgfTsK
IAkJRTQxM0Y1OUQxQUMxQURDNDAwMzQ1MzYwIC8qIE5ldHdvcmtDYWNoZUVudHJ5LmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFNDEzRjU5QjFBQzFBREI2
MDAzNDUzNjAgLyogTmV0d29ya0NhY2hlRW50cnkuaCAqLzsgfTsKIAkJRTQyRTA2MTAxQUE3NTIz
QjAwQjExNjk5IC8qIE5ldHdvcmtDYWNoZUlPQ2hhbm5lbC5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTQyRTA2MEIxQUE3NDQwRDAwQjExNjk5IC8qIE5l
dHdvcmtDYWNoZUlPQ2hhbm5lbC5oICovOyB9OwogCQlFNDJFMDYxMjFBQTc1QUJEMDBCMTE2OTkg
LyogTmV0d29ya0NhY2hlRGF0YS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gRTQyRTA2MTExQUE3NUFCRDAwQjExNjk5IC8qIE5ldHdvcmtDYWNoZURhdGEu
aCAqLzsgfTsKQEAgLTE5NzUsOSArMTk4Myw5IEBACiAJCQlkc3RQYXRoID0gIiQoSU5TVEFMTF9Q
QVRIKSI7CiAJCQlkc3RTdWJmb2xkZXJTcGVjID0gMDsKIAkJCWZpbGVzID0gKAorCQkJCTJEQjk2
MDUzMjM5ODg2QzEwMDEwMjc5MSAvKiBjb20uYXBwbGUuV2ViS2l0LkdQVS5zYiBpbiBDb3B5Rmls
ZXMgKi8sCiAJCQkJQTc4Q0NEREIxOTNBQzlGODAwNUVDQzI1IC8qIGNvbS5hcHBsZS5XZWJLaXQu
TmV0d29ya2luZy5zYiBpbiBDb3B5RmlsZXMgKi8sCiAJCQkJQTc4Q0NEREMxOTNBQzlGQjAwNUVD
QzI1IC8qIGNvbS5hcHBsZS5XZWJLaXQuV2ViQ29udGVudC5zYiBpbiBDb3B5RmlsZXMgKi8sCi0J
CQkJMkRCOTYwNTMyMzk4ODZDMTAwMTAyNzkxIC8qIGNvbS5hcHBsZS5XZWJLaXQuR1BVLnNiIGlu
IENvcHlGaWxlcyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNz
aW5nID0gMDsKIAkJfTsKQEAgLTQ4MDYsNiArNDgxNCwxNiBAQAogCQlFMUVFNTNEQzExRjhDRjlG
MDBDQ0JFRTQgLyogSW5qZWN0ZWRCdW5kbGVQYWdlRWRpdG9yQ2xpZW50LmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEluamVjdGVkQnVuZGxlUGFnZUVkaXRvckNsaWVudC5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFMUVFNTNFNjExRjhDRkZCMDBDQ0JFRTQgLyog
SW5qZWN0ZWRCdW5kbGVQYWdlRWRpdG9yQ2xpZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IEluamVjdGVkQnVuZGxlUGFnZUVkaXRvckNsaWVudC5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUzNDM5QjYzMjM0NTQ2M0EwMDExREUwQiAvKiBOZXR3
b3JrUHJvY2Vzc0Nvbm5lY3Rpb25JbmZvLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IE5ldHdvcmtQcm9jZXNz
Q29ubmVjdGlvbkluZm8uaDsgcGF0aCA9IE5ldHdvcmsvTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9u
SW5mby5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFMzg2NkFFNDIzOTc0MDA0MDBG
ODhGRTkgLyogV2ViRGV2aWNlT3JpZW50YXRpb25VcGRhdGVQcm92aWRlclByb3h5Lm1tICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBuYW1lID0gV2ViRGV2aWNlT3JpZW50YXRpb25V
cGRhdGVQcm92aWRlclByb3h5Lm1tOyBwYXRoID0gaW9zL1dlYkRldmljZU9yaWVudGF0aW9uVXBk
YXRlUHJvdmlkZXJQcm94eS5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTM4NjZB
RTYyMzk3NDA1MzAwRjg4RkU5IC8qIFdlYkRldmljZU9yaWVudGF0aW9uVXBkYXRlUHJvdmlkZXJQ
cm94eS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBXZWJEZXZpY2VPcmllbnRh
dGlvblVwZGF0ZVByb3ZpZGVyUHJveHkuaDsgcGF0aCA9IGlvcy9XZWJEZXZpY2VPcmllbnRhdGlv
blVwZGF0ZVByb3ZpZGVyUHJveHkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTM4
NjZBRUQyMzk4NDcxQTAwRjg4RkU5IC8qIFdlYkRldmljZU9yaWVudGF0aW9uVXBkYXRlUHJvdmlk
ZXJQcm94eS5tZXNzYWdlcy5pbiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IG5hbWUgPSBXZWJEZXZpY2VPcmll
bnRhdGlvblVwZGF0ZVByb3ZpZGVyUHJveHkubWVzc2FnZXMuaW47IHBhdGggPSBpb3MvV2ViRGV2
aWNlT3JpZW50YXRpb25VcGRhdGVQcm92aWRlclByb3h5Lm1lc3NhZ2VzLmluOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQlFMzg2NkIwNDIzOTk5NzlDMDBGODhGRTkgLyogV2ViRGV2aWNl
T3JpZW50YXRpb25VcGRhdGVQcm92aWRlclByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IFdlYkRldmljZU9yaWVudGF0aW9uVXBkYXRl
UHJvdmlkZXJQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHA7IHBhdGggPSBEZXJpdmVkU291cmNlcy9X
ZWJLaXQyL1dlYkRldmljZU9yaWVudGF0aW9uVXBkYXRlUHJvdmlkZXJQcm94eU1lc3NhZ2VSZWNl
aXZlci5jcHA7IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7IH07CisJCUUzODY2QjA1
MjM5OTk3OUMwMEY4OEZFOSAvKiBXZWJEZXZpY2VPcmllbnRhdGlvblVwZGF0ZVByb3ZpZGVyUHJv
eHlNZXNzYWdlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBXZWJEZXZpY2VP
cmllbnRhdGlvblVwZGF0ZVByb3ZpZGVyUHJveHlNZXNzYWdlcy5oOyBwYXRoID0gRGVyaXZlZFNv
dXJjZXMvV2ViS2l0Mi9XZWJEZXZpY2VPcmllbnRhdGlvblVwZGF0ZVByb3ZpZGVyUHJveHlNZXNz
YWdlcy5oOyBzb3VyY2VUcmVlID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9OworCQlFMzg2NkIwNjIz
OTk5NzlDMDBGODhGRTkgLyogV2ViRGV2aWNlT3JpZW50YXRpb25VcGRhdGVQcm92aWRlck1lc3Nh
Z2VSZWNlaXZlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBXZWJE
ZXZpY2VPcmllbnRhdGlvblVwZGF0ZVByb3ZpZGVyTWVzc2FnZVJlY2VpdmVyLmNwcDsgcGF0aCA9
IERlcml2ZWRTb3VyY2VzL1dlYktpdDIvV2ViRGV2aWNlT3JpZW50YXRpb25VcGRhdGVQcm92aWRl
ck1lc3NhZ2VSZWNlaXZlci5jcHA7IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7IH07
CisJCUUzODY2QjA3MjM5OTk3OUQwMEY4OEZFOSAvKiBXZWJEZXZpY2VPcmllbnRhdGlvblVwZGF0
ZVByb3ZpZGVyTWVzc2FnZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gV2Vi
RGV2aWNlT3JpZW50YXRpb25VcGRhdGVQcm92aWRlck1lc3NhZ2VzLmg7IHBhdGggPSBEZXJpdmVk
U291cmNlcy9XZWJLaXQyL1dlYkRldmljZU9yaWVudGF0aW9uVXBkYXRlUHJvdmlkZXJNZXNzYWdl
cy5oOyBzb3VyY2VUcmVlID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9OworCQlFMzk2MjhEQjIzOTYw
Q0M1MDA2NThFQ0QgLyogV2ViRGV2aWNlT3JpZW50YXRpb25VcGRhdGVQcm92aWRlci5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJEZXZpY2VPcmllbnRhdGlvblVwZGF0ZVBy
b3ZpZGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUUzOTYyOERDMjM5NjBDQzYw
MDY1OEVDRCAvKiBXZWJEZXZpY2VPcmllbnRhdGlvblVwZGF0ZVByb3ZpZGVyLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYkRldmljZU9yaWVudGF0aW9uVXBkYXRl
UHJvdmlkZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFMzk2MjhFNDIzOTcx
RjM0MDA2NThFQ0QgLyogV2ViRGV2aWNlT3JpZW50YXRpb25VcGRhdGVQcm92aWRlci5tZXNzYWdl
cy5pbiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBXZWJEZXZpY2VPcmllbnRhdGlvblVwZGF0ZVBy
b3ZpZGVyLm1lc3NhZ2VzLmluOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFNDA0OTA3
MDIxREU2NUY3MDAzN0YwREIgLyogU2Nyb2xsZXJQYWlyTWFjLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IFNjcm9sbGVyUGFpck1hYy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQlFNDA0OTA3MTIxREU2NUY3MDAzN0YwREIgLyogU2Nyb2xsaW5nVHJlZUZyYW1lU2Ny
b2xsaW5nTm9kZVJlbW90ZU1hYy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBTY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlUmVtb3RlTWFjLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTQwNDkwNzIyMURFNjVGNzAwMzdGMERCIC8qIFNjcm9s
bGVyUGFpck1hYy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFNj
cm9sbGVyUGFpck1hYy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTU5MjMsNiAr
NTk0MSw5IEBACiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAogCQkJCTJEMjhG
M0UwMTg4NUNDQzEwMDRCOUVBRSAvKiBXZWJDaHJvbWVDbGllbnRJT1MubW0gKi8sCisJCQkJRTM5
NjI4REMyMzk2MENDNjAwNjU4RUNEIC8qIFdlYkRldmljZU9yaWVudGF0aW9uVXBkYXRlUHJvdmlk
ZXIuY3BwICovLAorCQkJCUUzOTYyOERCMjM5NjBDQzUwMDY1OEVDRCAvKiBXZWJEZXZpY2VPcmll
bnRhdGlvblVwZGF0ZVByb3ZpZGVyLmggKi8sCisJCQkJRTM5NjI4RTQyMzk3MUYzNDAwNjU4RUNE
IC8qIFdlYkRldmljZU9yaWVudGF0aW9uVXBkYXRlUHJvdmlkZXIubWVzc2FnZXMuaW4gKi8sCiAJ
CQkJMkQyOEYzRTIxODg1Q0NDMTAwNEI5RUFFIC8qIFdlYkVkaXRvckNsaWVudElPUy5tbSAqLywK
IAkJCQkyRDI4RjNFMzE4ODVDQ0MxMDA0QjlFQUUgLyogV2ViRnJhbWVMb2FkZXJDbGllbnRJT1Mu
bW0gKi8sCiAJCQkJQTFDNTEyQzYxOTA2NTZFNTAwNDQ4OTE0IC8qIFdlYlByZXZpZXdMb2FkZXJD
bGllbnQuY3BwICovLApAQCAtNjMxMCw2ICs2MzMxLDkgQEAKIAkJCQkyREY5NTkzNDE4QTQyNDEy
MDA5Nzg1QTEgLyogVmlld0dlc3R1cmVDb250cm9sbGVySU9TLm1tICovLAogCQkJCUU1QkVGNjgw
MjEzMEM0N0YwMEYzMTExMSAvKiBXZWJEYXRhTGlzdFN1Z2dlc3Rpb25zRHJvcGRvd25JT1MuaCAq
LywKIAkJCQlFNUJFRjY4MTIxMzBDNDdGMDBGMzExMTEgLyogV2ViRGF0YUxpc3RTdWdnZXN0aW9u
c0Ryb3Bkb3duSU9TLm1tICovLAorCQkJCUUzODY2QUU2MjM5NzQwNTMwMEY4OEZFOSAvKiBXZWJE
ZXZpY2VPcmllbnRhdGlvblVwZGF0ZVByb3ZpZGVyUHJveHkuaCAqLywKKwkJCQlFMzg2NkFFRDIz
OTg0NzFBMDBGODhGRTkgLyogV2ViRGV2aWNlT3JpZW50YXRpb25VcGRhdGVQcm92aWRlclByb3h5
Lm1lc3NhZ2VzLmluICovLAorCQkJCUUzODY2QUU0MjM5NzQwMDQwMEY4OEZFOSAvKiBXZWJEZXZp
Y2VPcmllbnRhdGlvblVwZGF0ZVByb3ZpZGVyUHJveHkubW0gKi8sCiAJCQkJMkRBOTQ0QUIxODg0
RTlCQTAwRUQ4NkRCIC8qIFdlYlBhZ2VQcm94eUlPUy5tbSAqLywKIAkJCQkyREE5NDRBQzE4ODRF
OUJBMDBFRDg2REIgLyogV2ViUHJvY2Vzc1Byb3h5SU9TLm1tICovLAogCQkJCTBGQ0I0RTM4MThC
QkUwNDQwMDBGQ0ZDOSAvKiBXS0FjdGlvblNoZWV0LmggKi8sCkBAIC05MTQ4LDYgKzkxNzIsMTAg
QEAKIAkJCQkzMzA5MzQ0NDEzMTVCOTIyMDA5N0E3QkMgLyogV2ViQ29va2llTWFuYWdlck1lc3Nh
Z2VzLmggKi8sCiAJCQkJMzMwOTM0NDUxMzE1QjkyMjAwOTdBN0JDIC8qIFdlYkNvb2tpZU1hbmFn
ZXJQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgKi8sCiAJCQkJMzMwOTM0NDYxMzE1QjkyMjAwOTdB
N0JDIC8qIFdlYkNvb2tpZU1hbmFnZXJQcm94eU1lc3NhZ2VzLmggKi8sCisJCQkJRTM4NjZCMDYy
Mzk5OTc5QzAwRjg4RkU5IC8qIFdlYkRldmljZU9yaWVudGF0aW9uVXBkYXRlUHJvdmlkZXJNZXNz
YWdlUmVjZWl2ZXIuY3BwICovLAorCQkJCUUzODY2QjA3MjM5OTk3OUQwMEY4OEZFOSAvKiBXZWJE
ZXZpY2VPcmllbnRhdGlvblVwZGF0ZVByb3ZpZGVyTWVzc2FnZXMuaCAqLywKKwkJCQlFMzg2NkIw
NDIzOTk5NzlDMDBGODhGRTkgLyogV2ViRGV2aWNlT3JpZW50YXRpb25VcGRhdGVQcm92aWRlclBy
b3h5TWVzc2FnZVJlY2VpdmVyLmNwcCAqLywKKwkJCQlFMzg2NkIwNTIzOTk5NzlDMDBGODhGRTkg
LyogV2ViRGV2aWNlT3JpZW50YXRpb25VcGRhdGVQcm92aWRlclByb3h5TWVzc2FnZXMuaCAqLywK
IAkJCQlDRDczQkE0ODEzMUFDRDhFMDBFRURFRDIgLyogV2ViRnVsbFNjcmVlbk1hbmFnZXJNZXNz
YWdlUmVjZWl2ZXIuY3BwICovLAogCQkJCUNENzNCQTQ5MTMxQUNEOEUwMEVFREVEMiAvKiBXZWJG
dWxsU2NyZWVuTWFuYWdlck1lc3NhZ2VzLmggKi8sCiAJCQkJQ0Q3M0JBNDUxMzFBQ0M4ODAwRUVE
RUQyIC8qIFdlYkZ1bGxTY3JlZW5NYW5hZ2VyUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwICovLApA
QCAtMTAxMzUsNiArMTAxNjMsMTAgQEAKIAkJCQlFNUJFRjY4MjIxMzBDNDgwMDBGMzExMTEgLyog
V2ViRGF0YUxpc3RTdWdnZXN0aW9uc0Ryb3Bkb3duSU9TLmggaW4gSGVhZGVycyAqLywKIAkJCQlF
NTY4QjkyMjIwQTNBQzZBMDBFM0M4NTYgLyogV2ViRGF0YUxpc3RTdWdnZXN0aW9uc0Ryb3Bkb3du
TWFjLmggaW4gSGVhZGVycyAqLywKIAkJCQk0NkIwNTI0NzIyNjY4RDg1MDAyNjVCOTcgLyogV2Vi
RGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25BY2Nlc3NDb250cm9sbGVyLmggaW4gSGVhZGVycyAq
LywKKwkJCQlFMzk2MjhERDIzOTYwQ0M2MDA2NThFQ0QgLyogV2ViRGV2aWNlT3JpZW50YXRpb25V
cGRhdGVQcm92aWRlci5oIGluIEhlYWRlcnMgKi8sCisJCQkJRTM4NjZCMEEyMzk5QTJEOTAwRjg4
RkU5IC8qIFdlYkRldmljZU9yaWVudGF0aW9uVXBkYXRlUHJvdmlkZXJNZXNzYWdlcy5oIGluIEhl
YWRlcnMgKi8sCisJCQkJRTM4NjZBRTcyMzk3NDA1MzAwRjg4RkU5IC8qIFdlYkRldmljZU9yaWVu
dGF0aW9uVXBkYXRlUHJvdmlkZXJQcm94eS5oIGluIEhlYWRlcnMgKi8sCisJCQkJRTM4NjZCMDgy
Mzk5QTJEMTAwRjg4RkU5IC8qIFdlYkRldmljZU9yaWVudGF0aW9uVXBkYXRlUHJvdmlkZXJQcm94
eU1lc3NhZ2VzLmggaW4gSGVhZGVycyAqLywKIAkJCQlDRDE5QTI2RTFBMTNFODM0MDA4RDY1MEUg
LyogV2ViRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTFBNUIx
QzU1MTg5ODdFREYwMDRGQ0Y5QiAvKiBXZWJEb2N1bWVudExvYWRlci5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJQkMwMzJEN0IxMEY0Mzc4RDAwNThDMTVBIC8qIFdlYkRyYWdDbGllbnQuaCBpbiBIZWFk
ZXJzICovLApAQCAtMTE4MjgsNiArMTE4NjAsMTAgQEAKIAkJCQkzMzA5MzQ0NzEzMTVCOTIyMDA5
N0E3QkMgLyogV2ViQ29va2llTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQkzMzA5MzQ0OTEzMTVCOTIyMDA5N0E3QkMgLyogV2ViQ29va2llTWFuYWdlclByb3h5
TWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTJEOTJBNzg4MjEyQjZBQjEw
MEY0OTNGRCAvKiBXZWJDb3JlQXJndW1lbnRDb2RlcnMuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJ
RTM5NjI4REUyMzk2MENDNjAwNjU4RUNEIC8qIFdlYkRldmljZU9yaWVudGF0aW9uVXBkYXRlUHJv
dmlkZXIuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJRTM4NjZCMEIyMzk5QTJERDAwRjg4RkU5IC8q
IFdlYkRldmljZU9yaWVudGF0aW9uVXBkYXRlUHJvdmlkZXJNZXNzYWdlUmVjZWl2ZXIuY3BwIGlu
IFNvdXJjZXMgKi8sCisJCQkJRTM4NjZBRTUyMzk3NDAwNDAwRjg4RkU5IC8qIFdlYkRldmljZU9y
aWVudGF0aW9uVXBkYXRlUHJvdmlkZXJQcm94eS5tbSBpbiBTb3VyY2VzICovLAorCQkJCUUzODY2
QjA5MjM5OUEyRDUwMEY4OEZFOSAvKiBXZWJEZXZpY2VPcmllbnRhdGlvblVwZGF0ZVByb3ZpZGVy
UHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMkQ5MkE3ODkyMTJC
NkFCMTAwRjQ5M0ZEIC8qIFdlYkV2ZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUNENzNCQTRF
MTMxQUNEQjcwMEVFREVEMiAvKiBXZWJGdWxsU2NyZWVuTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQlDRDczQkE0NzEzMUFDQzlBMDBFRURFRDIgLyogV2ViRnVs
bFNjcmVlbk1hbmFnZXJQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywKSW5k
ZXg6IFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJEZXZpY2VPcmll
bnRhdGlvblVwZGF0ZVByb3ZpZGVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRGV2aWNlT3JpZW50YXRpb25VcGRhdGVQcm92aWRl
ci5jcHAJKG5vbmV4aXN0ZW50KQorKysgU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0L1dlYkRldmljZU9yaWVudGF0aW9uVXBkYXRlUHJvdmlkZXIuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC0wLDAgKzEsNzUgQEAKKy8qCisqIENvcHlyaWdodCAoQykgMjAxOSBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisqCisqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyogYXJl
IG1ldDoKKyogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisqCisqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisqIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyog
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YKKyogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisqIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisqIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpCisqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldlYkRldmljZU9yaWVu
dGF0aW9uVXBkYXRlUHJvdmlkZXIuaCIKKworI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpICYmIEVO
QUJMRShERVZJQ0VfT1JJRU5UQVRJT04pCisKKyNpbmNsdWRlICJXZWJEZXZpY2VPcmllbnRhdGlv
blVwZGF0ZVByb3ZpZGVyTWVzc2FnZXMuaCIKKyNpbmNsdWRlICJXZWJEZXZpY2VPcmllbnRhdGlv
blVwZGF0ZVByb3ZpZGVyUHJveHlNZXNzYWdlcy5oIgorI2luY2x1ZGUgIldlYlBhZ2UuaCIKKyNp
bmNsdWRlICJXZWJQcm9jZXNzLmgiCisKKyNpbmNsdWRlIDxXZWJDb3JlL01vdGlvbk1hbmFnZXJD
bGllbnQuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK1dlYkRldmljZU9yaWVudGF0aW9uVXBk
YXRlUHJvdmlkZXI6OldlYkRldmljZU9yaWVudGF0aW9uVXBkYXRlUHJvdmlkZXIoV2ViUGFnZSYg
cGFnZSkKKyAgICA6IG1fcGFnZShtYWtlV2Vha1B0cihwYWdlKSkKK3sKKyAgICBXZWJQcm9jZXNz
OjpzaW5nbGV0b24oKS5hZGRNZXNzYWdlUmVjZWl2ZXIoTWVzc2FnZXM6OldlYkRldmljZU9yaWVu
dGF0aW9uVXBkYXRlUHJvdmlkZXI6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSwgcGFnZS5pZGVudGlm
aWVyKCksICp0aGlzKTsKK30KKworV2ViRGV2aWNlT3JpZW50YXRpb25VcGRhdGVQcm92aWRlcjo6
fldlYkRldmljZU9yaWVudGF0aW9uVXBkYXRlUHJvdmlkZXIoKQoreworICAgIFdlYlByb2Nlc3M6
OnNpbmdsZXRvbigpLnJlbW92ZU1lc3NhZ2VSZWNlaXZlcihNZXNzYWdlczo6V2ViRGV2aWNlT3Jp
ZW50YXRpb25VcGRhdGVQcm92aWRlcjo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpKTsKK30KKwordm9p
ZCBXZWJEZXZpY2VPcmllbnRhdGlvblVwZGF0ZVByb3ZpZGVyOjpzdGFydFVwZGF0aW5nKFdlYkNv
cmU6Ok1vdGlvbk1hbmFnZXJDbGllbnQmIGNsaWVudCkKK3sKKyAgICBpZiAobV9jbGllbnRzLmlz
RW1wdHkoKSAmJiBtX3BhZ2UpCisgICAgICAgIG1fcGFnZS0+c2VuZChNZXNzYWdlczo6V2ViRGV2
aWNlT3JpZW50YXRpb25VcGRhdGVQcm92aWRlclByb3h5OjpTdGFydFVwZGF0aW5nRGV2aWNlT3Jp
ZW50YXRpb24oKSk7CisgICAgbV9jbGllbnRzLmFkZCgmY2xpZW50KTsKK30KKwordm9pZCBXZWJE
ZXZpY2VPcmllbnRhdGlvblVwZGF0ZVByb3ZpZGVyOjpzdG9wVXBkYXRpbmcoV2ViQ29yZTo6TW90
aW9uTWFuYWdlckNsaWVudCYgY2xpZW50KQoreworICAgIGlmIChtX2NsaWVudHMuaXNFbXB0eSgp
KQorICAgICAgICByZXR1cm47CisgICAgbV9jbGllbnRzLnJlbW92ZSgmY2xpZW50KTsKKyAgICBp
ZiAobV9jbGllbnRzLmlzRW1wdHkoKSAmJiBtX3BhZ2UpCisgICAgICAgIG1fcGFnZS0+c2VuZChN
ZXNzYWdlczo6V2ViRGV2aWNlT3JpZW50YXRpb25VcGRhdGVQcm92aWRlclByb3h5OjpTdG9wVXBk
YXRpbmdEZXZpY2VPcmllbnRhdGlvbigpKTsKK30KKwordm9pZCBXZWJEZXZpY2VPcmllbnRhdGlv
blVwZGF0ZVByb3ZpZGVyOjpkZXZpY2VPcmllbnRhdGlvbkNoYW5nZWQoZG91YmxlIGFscGhhLCBk
b3VibGUgYmV0YSwgZG91YmxlIGdhbW1hLCBkb3VibGUgY29tcGFzc0hlYWRpbmcsIGRvdWJsZSBj
b21wYXNzQWNjdXJhY3kpCit7CisgICAgZm9yIChhdXRvKiBjbGllbnQgOiBjb3B5VG9WZWN0b3Io
bV9jbGllbnRzKSkKKyAgICAgICAgY2xpZW50LT5vcmllbnRhdGlvbkNoYW5nZWQoYWxwaGEsIGJl
dGEsIGdhbW1hLCBjb21wYXNzSGVhZGluZywgY29tcGFzc0FjY3VyYWN5KTsKK30KKworfQorCisj
ZW5kaWYgLy8gUExBVEZPUk0oSU9TX0ZBTUlMWSkgJiYgRU5BQkxFKERFVklDRV9PUklFTlRBVElP
TikKSW5kZXg6IFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJEZXZp
Y2VPcmllbnRhdGlvblVwZGF0ZVByb3ZpZGVyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkRldmljZU9yaWVudGF0aW9uVXBkYXRlUHJv
dmlkZXIuaAkobm9uZXhpc3RlbnQpCisrKyBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29y
ZVN1cHBvcnQvV2ViRGV2aWNlT3JpZW50YXRpb25VcGRhdGVQcm92aWRlci5oCSh3b3JraW5nIGNv
cHkpCkBAIC0wLDAgKzEsNjIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTkgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAq
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1
ZGUgIk1lc3NhZ2VSZWNlaXZlci5oIgorI2luY2x1ZGUgIldlYlBhZ2UuaCIKKworI2luY2x1ZGUg
PFdlYkNvcmUvRGV2aWNlT3JpZW50YXRpb25VcGRhdGVQcm92aWRlci5oPgorCisjaW5jbHVkZSA8
d3RmL0hhc2hTZXQuaD4KKyNpbmNsdWRlIDx3dGYvV2Vha1B0ci5oPgorCisjaWYgUExBVEZPUk0o
SU9TX0ZBTUlMWSkgJiYgRU5BQkxFKERFVklDRV9PUklFTlRBVElPTikKKworbmFtZXNwYWNlIFdl
YktpdCB7CisKK2NsYXNzIFdlYkRldmljZU9yaWVudGF0aW9uVXBkYXRlUHJvdmlkZXIgZmluYWwg
OiBwdWJsaWMgV2ViQ29yZTo6RGV2aWNlT3JpZW50YXRpb25VcGRhdGVQcm92aWRlciwgcHJpdmF0
ZSBJUEM6Ok1lc3NhZ2VSZWNlaXZlciB7CitwdWJsaWM6CisgICAgc3RhdGljIFJlZjxXZWJEZXZp
Y2VPcmllbnRhdGlvblVwZGF0ZVByb3ZpZGVyPiBjcmVhdGUoV2ViUGFnZSYgcGFnZSkgeyByZXR1
cm4gYWRvcHRSZWYoKm5ldyBXZWJEZXZpY2VPcmllbnRhdGlvblVwZGF0ZVByb3ZpZGVyKHBhZ2Up
KTt9CisKK3ByaXZhdGU6CisgICAgV2ViRGV2aWNlT3JpZW50YXRpb25VcGRhdGVQcm92aWRlcihX
ZWJQYWdlJik7CisgICAgfldlYkRldmljZU9yaWVudGF0aW9uVXBkYXRlUHJvdmlkZXIoKTsKKwor
ICAgIC8vIFdlYkNvcmU6OkRldmljZU9yaWVudGF0aW9uVXBkYXRlUHJvdmlkZXIKKyAgICB2b2lk
IHN0YXJ0VXBkYXRpbmcoV2ViQ29yZTo6TW90aW9uTWFuYWdlckNsaWVudCYpIGZpbmFsOworICAg
IHZvaWQgc3RvcFVwZGF0aW5nKFdlYkNvcmU6Ok1vdGlvbk1hbmFnZXJDbGllbnQmKSBmaW5hbDsK
KyAgICB2b2lkIGRldmljZU9yaWVudGF0aW9uQ2hhbmdlZChkb3VibGUsIGRvdWJsZSwgZG91Ymxl
LCBkb3VibGUsIGRvdWJsZSkgZmluYWw7CisKKyAgICAvLyBJUEM6Ok1lc3NhZ2VSZWNlaXZlci4K
KyAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6RGVjb2Rl
ciYpIG92ZXJyaWRlOworCisgICAgV2Vha1B0cjxXZWJQYWdlPiBtX3BhZ2U7CisgICAgSGFzaFNl
dDxXZWJDb3JlOjpNb3Rpb25NYW5hZ2VyQ2xpZW50Kj4gbV9jbGllbnRzOworfTsKKworfQorCisj
ZW5kaWYgLy8gUExBVEZPUk0oSU9TX0ZBTUlMWSkgJiYgRU5BQkxFKERFVklDRV9PUklFTlRBVElP
TikKSW5kZXg6IFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJEZXZp
Y2VPcmllbnRhdGlvblVwZGF0ZVByb3ZpZGVyLm1lc3NhZ2VzLmluCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJEZXZpY2VPcmllbnRhdGlv
blVwZGF0ZVByb3ZpZGVyLm1lc3NhZ2VzLmluCShub25leGlzdGVudCkKKysrIFNvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJEZXZpY2VPcmllbnRhdGlvblVwZGF0ZVBy
b3ZpZGVyLm1lc3NhZ2VzLmluCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMjcgQEAKKyMgQ29w
eXJpZ2h0IChDKSAyMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMKKyMgUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworIyBhcmUgbWV0OgorIyAxLiAgUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyMgMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisjICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisjICAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorIwor
IyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgYGBBUyBJUycnIEFORAorIyBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorIyBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0Ug
QVJFCisjIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENP
TlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SCisjIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwKKyMgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09P
RFMgT1IKKyMgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIKKyMgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwKKyMgT1Ig
VE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UKKyMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKworI2lmIFBMQVRGT1JNKElPU19GQU1J
TFkpICYmIEVOQUJMRShERVZJQ0VfT1JJRU5UQVRJT04pCittZXNzYWdlcyAtPiBXZWJEZXZpY2VP
cmllbnRhdGlvblVwZGF0ZVByb3ZpZGVyIHsKKyAgICBEZXZpY2VPcmllbnRhdGlvbkNoYW5nZWQo
ZG91YmxlIGFscGhhLCBkb3VibGUgYmV0YSwgZG91YmxlIGdhbW1hLCBkb3VibGUgY29tcGFzc0hl
YWRpbmcsIGRvdWJsZSBjb21wYXNzQWNjdXJhY3kpCit9CisjZW5kaWYKSW5kZXg6IFNvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCShyZXZpc2lvbiAyNTMxNjYp
CisrKyBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMzA3LDYgKzMwNywxMCBAQAogI2luY2x1ZGUgPFdlYkNvcmUvQXV0aGVudGlj
YXRvckNvb3JkaW5hdG9yLmg+CiAjZW5kaWYKIAorI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpICYm
IEVOQUJMRShERVZJQ0VfT1JJRU5UQVRJT04pCisjaW5jbHVkZSAiV2ViRGV2aWNlT3JpZW50YXRp
b25VcGRhdGVQcm92aWRlci5oIgorI2VuZGlmCisKIG5hbWVzcGFjZSBXZWJLaXQgewogdXNpbmcg
bmFtZXNwYWNlIEpTQzsKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwpAQCAtNTAxLDYgKzUwNSwx
MCBAQCBXZWJQYWdlOjpXZWJQYWdlKFBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgCiAjaWYgRU5BQkxF
KEFQUExJQ0FUSU9OX01BTklGRVNUKQogICAgIHBhZ2VDb25maWd1cmF0aW9uLmFwcGxpY2F0aW9u
TWFuaWZlc3QgPSBwYXJhbWV0ZXJzLmFwcGxpY2F0aW9uTWFuaWZlc3Q7CiAjZW5kaWYKKyAgICAK
KyNpZiBQTEFURk9STShJT1NfRkFNSUxZKSAmJiBFTkFCTEUoREVWSUNFX09SSUVOVEFUSU9OKQor
ICAgIHBhZ2VDb25maWd1cmF0aW9uLmRldmljZU9yaWVudGF0aW9uVXBkYXRlUHJvdmlkZXIgPSBX
ZWJEZXZpY2VPcmllbnRhdGlvblVwZGF0ZVByb3ZpZGVyOjpjcmVhdGUoKnRoaXMpOworI2VuZGlm
CiAKICAgICBtX3BhZ2UgPSBtYWtlVW5pcXVlPFBhZ2U+KFdURk1vdmUocGFnZUNvbmZpZ3VyYXRp
b24pKTsKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>384952</attachid>
            <date>2019-12-05 14:33:06 -0800</date>
            <delta_ts>2019-12-05 14:58:54 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-204720-20191205143305.patch</filename>
            <type>text/plain</type>
            <size>58699</size>
            <attacher name="Per Arne Vollan">pvollan</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDI1MzE3MCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQ0IEBACisyMDE5LTEyLTA1ICBQZXIgQXJu
ZSBWb2xsYW4gIDxwdm9sbGFuQGFwcGxlLmNvbT4KKworICAgICAgICBbaU9TXSBDYWxscyB0byBk
ZXZpY2Ugb3JpZW50YXRpb24gQVBJIHNob3VsZCBiZSBkb25lIGluIHRoZSBVSSBwcm9jZXNzCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDQ3MjAKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGUgZGV2aWNl
IG9yaWVudGF0aW9uIEFQSSBvbiBpT1MgaXMgY29tbXVuaWNhdGluZyB3aXRoIGxvY2F0aW9uZC4g
U2luY2UgbWFjaCBsb29rdXAgdG8gdGhpcyBkYWVtb24KKyAgICAgICAgd2lsbCBiZSBjbG9zZWQs
IHRoZSBjYWxscyB0byB0aGlzIEFQSSBzaG91bGQgYmUgbW92ZWQgZnJvbSB0aGUgV2ViQ29udGVu
dCBwcm9jZXNzIHRvIHRoZSBVSSBwcm9jZXNzLgorICAgICAgICBUaGlzIHBhdGNoIGltcGxlbWVu
dHMgZm9yd2FyZGluZyBvZiB0aGUgZGV2aWNlIG9yaWVudGF0aW9uIHJlcXVlc3RzIHRvIHRoZSBV
SSBwcm9jZXNzIHRocm91Z2ggYSBuZXcKKyAgICAgICAgY2xhc3MsIERldmljZU9yaWVudGF0aW9u
VXBkYXRlUHJvdmlkZXIsIHdoaWNoIGlzIHN1YmNsYXNzZWQgYnkgV2ViRGV2aWNlT3JpZW50YXRp
b25VcGRhdGVQcm92aWRlciBpbgorICAgICAgICBtb2Rlcm4gV2ViS2l0LiBUaGlzIGNsYXNzIGlt
cGxlbWVudHMgZm9yd2FyZGluZyBvZiB0aGUgcmVxdWVzdHMgdG8gdGhlIFVJIHByb2Nlc3MsIGFu
ZCByZWNlaXZlcworICAgICAgICBkZXZpY2Ugb3JpZW50YXRpb24gdXBkYXRlcyBmcm9tIHRoZSBV
SSBwcm9jZXNzLiBBbiBpbnN0YW5jZSBvZiB0aGlzIGNsYXNzIHdpbGwgYmUgc2hhcmVkIGJ5IGFs
bAorICAgICAgICBkZXZpY2Ugb3JpZW50YXRpb24gY2xpZW50cyBvbiBhIHBhZ2UsIGFuZCBwYXNz
ZWQgYXMgcGFydCBvZiB0aGUgcGFnZSBjb25maWd1cmF0aW9uIHBhcmFtZXRlcnMuIE9uCisgICAg
ICAgIHRoZSBVSSBwcm9jZXNzIHNpZGUsIGEgbmV3IGNsYXNzIFdlYkRldmljZU9yaWVudGF0aW9u
VXBkYXRlUHJvdmlkZXJQcm94eSBhdHRhY2hlZCB0byB0aGUgV2ViIHBhZ2UKKyAgICAgICAgcHJv
eHkgaXMgdGFraW5nIGNhcmUgb2YgY2FsbGluZyB0aGUgZGV2aWNlIG9yaWVudGF0aW9uIEFQSSB0
aHJvdWdoIHRoZSBleGlzdGluZyBXZWJDb3JlTW90aW9uTWFuYWdlcgorICAgICAgICBPYmplY3Rp
dmUtQyBjbGFzcywgYW5kIHNlbmQgZGV2aWNlIG9yaWVudGF0aW9uIHVwZGF0ZXMgYmFjayB0byB0
aGUgV2ViIHByb2Nlc3MuIEFsc28sIHVzZSBhIHdlYWsKKyAgICAgICAgaGFzaCBzZXQgb2Ygb3Jp
ZW50YXRpb24gY2xpZW50cyBpbiBXZWJDb3JlTW90aW9uTWFuYWdlci4KKworICAgICAgICAqIFdl
YkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBkb20vRGV2aWNlT3Jp
ZW50YXRpb25DbGllbnQuaDoKKyAgICAgICAgKiBkb20vRG9jdW1lbnQuY3BwOgorICAgICAgICAq
IHBhZ2UvUGFnZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjptX2RldmljZU9yaWVudGF0aW9uVXBk
YXRlUHJvdmlkZXIpOgorICAgICAgICAoV2ViQ29yZTo6bV9hcHBsaWNhdGlvbk1hbmlmZXN0KTog
RGVsZXRlZC4KKyAgICAgICAgKiBwYWdlL1BhZ2UuaDoKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2U6
OmRldmljZU9yaWVudGF0aW9uVXBkYXRlUHJvdmlkZXIgY29uc3QpOgorICAgICAgICAqIHBhZ2Uv
UGFnZUNvbmZpZ3VyYXRpb24uaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9pb3MvRGV2aWNlT3JpZW50
YXRpb25DbGllbnRJT1MuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9pb3MvRGV2aWNlT3JpZW50YXRp
b25DbGllbnRJT1MubW06CisgICAgICAgIChXZWJDb3JlOjpEZXZpY2VPcmllbnRhdGlvbkNsaWVu
dElPUzo6RGV2aWNlT3JpZW50YXRpb25DbGllbnRJT1MpOgorICAgICAgICAoV2ViQ29yZTo6RGV2
aWNlT3JpZW50YXRpb25DbGllbnRJT1M6OnN0YXJ0VXBkYXRpbmcpOgorICAgICAgICAoV2ViQ29y
ZTo6RGV2aWNlT3JpZW50YXRpb25DbGllbnRJT1M6OnN0b3BVcGRhdGluZyk6CisgICAgICAgIChX
ZWJDb3JlOjpEZXZpY2VPcmllbnRhdGlvbkNsaWVudElPUzo6ZGV2aWNlT3JpZW50YXRpb25Db250
cm9sbGVyRGVzdHJveWVkKToKKyAgICAgICAgKiBwbGF0Zm9ybS9pb3MvV2ViQ29yZU1vdGlvbk1h
bmFnZXIuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9pb3MvV2ViQ29yZU1vdGlvbk1hbmFnZXIubW06
CisgICAgICAgICgtW1dlYkNvcmVNb3Rpb25NYW5hZ2VyIGFkZE9yaWVudGF0aW9uQ2xpZW50Ol0p
OgorICAgICAgICAoLVtXZWJDb3JlTW90aW9uTWFuYWdlciByZW1vdmVPcmllbnRhdGlvbkNsaWVu
dDpdKToKKyAgICAgICAgKC1bV2ViQ29yZU1vdGlvbk1hbmFnZXIgY2hlY2tDbGllbnRTdGF0dXNd
KToKKyAgICAgICAgKC1bV2ViQ29yZU1vdGlvbk1hbmFnZXIgc2VuZE1vdGlvbkRhdGE6d2l0aEhl
YWRpbmc6XSk6CisKIDIwMTktMTItMDUgIFphbGFuIEJ1anRhcyAgPHphbGFuQGFwcGxlLmNvbT4K
IAogICAgICAgICBbTEZDXVtJRkNdIEludHJvZHVjZSBJbmxpbmVTb2Z0TGluZUJyZWFrSXRlbQpJ
bmRleDogU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagkocmV2aXNpb24gMjUzMTcwKQorKysgU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCSh3b3JraW5nIGNvcHkpCkBAIC05MDksNyArOTA5LDcgQEAKIAkJ
MzEzNTkxMEExRTdEREM3MzAwRjMwNjMwIC8qIFJUQ1NkcFR5cGUuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMxMzU5MTA0MUU3RERDNjAwMEYzMDYzMCAv
KiBSVENTZHBUeXBlLmggKi87IH07CiAJCTMxMzU5MTBCMUU3RERDNzMwMEYzMDYzMCAvKiBSVENT
aWduYWxpbmdTdGF0ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMzEzNTkxMDUxRTdEREM2MDAwRjMwNjMwIC8qIFJUQ1NpZ25hbGluZ1N0YXRlLmggKi87
IH07CiAJCTMxM0JDRTFDMjM1RTNCRTUwMEZDMzlFNSAvKiBFbGVtZW50Q29udGV4dC5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzEzQkNFMUIyMzVFM0JE
QjAwRkMzOUU1IC8qIEVsZW1lbnRDb250ZXh0LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMg
PSAoUHJpdmF0ZSwgKTsgfTsgfTsKLQkJMzE0MDM3OUIxMjRCRUE3RjAwQUY0MEU0IC8qIFdlYkNv
cmVNb3Rpb25NYW5hZ2VyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSAzMTQwMzc5NzEyNEJFQTdGMDBBRjQwRTQgLyogV2ViQ29yZU1vdGlvbk1hbmFnZXIu
aCAqLzsgfTsKKwkJMzE0MDM3OUIxMjRCRUE3RjAwQUY0MEU0IC8qIFdlYkNvcmVNb3Rpb25NYW5h
Z2VyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzMTQw
Mzc5NzEyNEJFQTdGMDBBRjQwRTQgLyogV2ViQ29yZU1vdGlvbk1hbmFnZXIuaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkzMTQwMzc5RDEyNEJFQTdG
MDBBRjQwRTQgLyogRGV2aWNlT3JpZW50YXRpb25DbGllbnRJT1MuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMxNDAzNzk5MTI0QkVBN0YwMEFGNDBFNCAv
KiBEZXZpY2VPcmllbnRhdGlvbkNsaWVudElPUy5oICovOyB9OwogCQkzMTQwQzUyMDFGREYxNTFB
MDBEMkE4NzMgLyogT2Zmc2NyZWVuQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzMTQwQzUxRTFGREYxNTFBMDBE
MkE4NzMgLyogT2Zmc2NyZWVuQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmggKi87IH07CiAJCTMx
NDBDNTI0MUZERjMxODcwMEQyQTg3MyAvKiBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkRCYXNlLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzMTQwQzUyMjFG
REYzMTg2MDBEMkE4NzMgLyogQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEQmFzZS5oICovOyB9OwpA
QCAtNDc4MSw2ICs0NzgxLDggQEAKIAkJRTM1ODAyQjYxREM4NDM1RDAwQTk3NzNDIC8qIERPTUpJ
VElETFR5cGVGaWx0ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEUzNTgwMkI1MURDODQzNTgwMEE5NzczQyAvKiBET01KSVRJRExUeXBlRmlsdGVyLmgg
Ki87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJRTM3N0ZF
NEQxREFERTE2NTAwQ0REMDI1IC8qIE5vZGVDb25zdGFudHMuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUzRDA0OTkzMURBREMwNDUwMDcxOEYzQyAvKiBO
b2RlQ29uc3RhbnRzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsg
fTsgfTsKIAkJRTM3Qzg2NTAxRUI2M0UzRjAwODdDNkNBIC8qIEpTRE9NUHJvbWlzZS5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTM3Qzg2NEYxRUI2M0Uy
RDAwODdDNkNBIC8qIEpTRE9NUHJvbWlzZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CisJCUUzOTYyOEJGMjM5NTcyOEYwMDY1OEVDRCAvKiBEZXZpY2VP
cmllbnRhdGlvblVwZGF0ZVByb3ZpZGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBFMzk2MjhCRDIzOTU3MjhFMDA2NThFQ0QgLyogRGV2aWNlT3JpZW50
YXRpb25VcGRhdGVQcm92aWRlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07CisJCUUzOTYyOEMxMjM5NTc0MzEwMDY1OEVDRCAvKiBNb3Rpb25NYW5hZ2Vy
Q2xpZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBF
Mzk2MjhDMDIzOTU3NDMwMDA2NThFQ0QgLyogTW90aW9uTWFuYWdlckNsaWVudC5oICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUUzQTc3NjY3MURDODVE
MjgwMEI2OTBEOCAvKiBET01KSVRJRExDb252ZXJ0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFM0E3NzY2NTFEQzg1RDIyMDBCNjkwRDggLyogRE9NSklU
SURMQ29udmVydC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CiAJCUUzQTc3NjY4MURDODVEMjgwMEI2OTBEOCAvKiBET01KSVRJRExUeXBlLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFM0E3NzY2NjFEQzg1RDIy
MDBCNjkwRDggLyogRE9NSklUSURMVHlwZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CiAJCUUzQjJGMEVEMUQ3RjRDQTMwMEIwQzlEMSAvKiBMb2FkYWJs
ZVNjcmlwdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
RTNCMkYwRTcxRDdGMzVFQzAwQjBDOUQxIC8qIExvYWRhYmxlU2NyaXB0LmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTE1MDg3LDYgKzE1MDg5LDgg
QEAKIAkJRTM4ODM4OTQxQkFEMTQ1RjAwRDYyRUUzIC8qIFNjcmlwdE1vZHVsZUxvYWRlci5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTY3JpcHRNb2R1bGVMb2FkZXIu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFMzg4Mzg5NTFCQUQxNDVGMDBENjJF
RTMgLyogU2NyaXB0TW9kdWxlTG9hZGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IFNjcmlwdE1vZHVsZUxvYWRlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlF
MzhEMDYwOTFGOEU4MTE5MDA2NDlDRjIgLyogTW9kdWxlRmV0Y2hQYXJhbWV0ZXJzLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1vZHVsZUZldGNoUGFyYW1ldGVycy5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFMzk2MjhCRDIzOTU3MjhFMDA2NThFQ0QgLyogRGV2
aWNlT3JpZW50YXRpb25VcGRhdGVQcm92aWRlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBEZXZpY2VPcmllbnRhdGlvblVwZGF0ZVByb3ZpZGVyLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCUUzOTYyOEMwMjM5NTc0MzAwMDY1OEVDRCAvKiBNb3Rpb25NYW5hZ2Vy
Q2xpZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1vdGlvbk1hbmFnZXJD
bGllbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTM5NzVCNzYxRUM5QUYzOTAw
ODQ3NzE3IC8qIEpTRG9jdW1lbnRGcmFnbWVudERPTUpJVC5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBKU0RvY3VtZW50RnJhZ21lbnRET01KSVQuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQlFMzk3NUI3NzFFQzlBRjM5MDA4NDc3MTcgLyogSlNFbGVt
ZW50RE9NSklULmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTRWxl
bWVudERPTUpJVC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUzOTc1Qjc4MUVD
OUFGMzkwMDg0NzcxNyAvKiBKU0V2ZW50RE9NSklULmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IEpTRXZlbnRET01KSVQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwpAQCAtMjI4MTksNiArMjI4MjMsNyBAQAogCQkJCTMxRUFGOTdEMTIxNDM1QTQwMEU3QzFC
RiAvKiBEZXZpY2VNb3Rpb25DbGllbnRJT1MubW0gKi8sCiAJCQkJMzE0MDM3OTkxMjRCRUE3RjAw
QUY0MEU0IC8qIERldmljZU9yaWVudGF0aW9uQ2xpZW50SU9TLmggKi8sCiAJCQkJMzE0MDM3OUEx
MjRCRUE3RjAwQUY0MEU0IC8qIERldmljZU9yaWVudGF0aW9uQ2xpZW50SU9TLm1tICovLAorCQkJ
CUUzOTYyOEJEMjM5NTcyOEUwMDY1OEVDRCAvKiBEZXZpY2VPcmllbnRhdGlvblVwZGF0ZVByb3Zp
ZGVyLmggKi8sCiAJCQkJMEZEQTdDMjIxODgzMzBBOTAwQzk1NEI1IC8qIERyYWdJbWFnZUlPUy5t
bSAqLywKIAkJCQkyNjU1NDEzNzE0ODk4MTFDMDAwREZDNUQgLyogS2V5RXZlbnRDb2Rlc0lPUy5o
ICovLAogCQkJCTI2NTU0MTM4MTQ4OTgxMUMwMDBERkM1RCAvKiBLZXlFdmVudElPUy5tbSAqLywK
QEAgLTIyODM1LDYgKzIyODQwLDcgQEAKIAkJCQkxQzQzREU2ODIyQUI0QjhBMDAxNTI3RDkgLyog
TG9jYWxDdXJyZW50VHJhaXRDb2xsZWN0aW9uLmggKi8sCiAJCQkJMUM0M0RFNkEyMkFCNEI4QTAw
MTUyN0Q5IC8qIExvY2FsQ3VycmVudFRyYWl0Q29sbGVjdGlvbi5tbSAqLywKIAkJCQk0NkVGQUYw
RDFFNUZCOUMyMDBFN0YzNEIgLyogTG93UG93ZXJNb2RlTm90aWZpZXJJT1MubW0gKi8sCisJCQkJ
RTM5NjI4QzAyMzk1NzQzMDAwNjU4RUNEIC8qIE1vdGlvbk1hbmFnZXJDbGllbnQuaCAqLywKIAkJ
CQlFNDUzOTAxOTBFQUZDQUNBMDAzNjk1QzggLyogUGFzdGVib2FyZElPUy5tbSAqLywKIAkJCQky
NjYwMUVCRDE0QjNCOUFEMDAxMkMwRkUgLyogUGxhdGZvcm1FdmVudEZhY3RvcnlJT1MuaCAqLywK
IAkJCQkyNjYwMUVCRTE0QjNCOUFEMDAxMkMwRkUgLyogUGxhdGZvcm1FdmVudEZhY3RvcnlJT1Mu
bW0gKi8sCkBAIC0yOTU2MCw2ICsyOTU2Niw3IEBACiAJCQkJNTlBODVFQTQxMTlENjhFQzAwREVG
MUVGIC8qIERldmljZU9yaWVudGF0aW9uRXZlbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTQ2MEUz
MDc1MjIyRjRFRkQwMDlBMDYwNiAvKiBEZXZpY2VPcmllbnRhdGlvbk9yTW90aW9uRXZlbnQuaCBp
biBIZWFkZXJzICovLAogCQkJCTQ2MEUzMDc3MjIyRjRGMDMwMDlBMDYwNiAvKiBEZXZpY2VPcmll
bnRhdGlvbk9yTW90aW9uUGVybWlzc2lvblN0YXRlLmggaW4gSGVhZGVycyAqLywKKwkJCQlFMzk2
MjhCRjIzOTU3MjhGMDA2NThFQ0QgLyogRGV2aWNlT3JpZW50YXRpb25VcGRhdGVQcm92aWRlci5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJNTcyQjQwMUYyMTc1N0E2NDAwMEFENDNFIC8qIERldmljZVJl
cXVlc3RDb252ZXJ0ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTU3MkI0MDNBMjE3NzI1ODEwMDBB
RDQzRSAvKiBEZXZpY2VSZXNwb25zZUNvbnZlcnRlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMjY3
NzI1RkQxQTVCM0FEOTAwM0MyNEREIC8qIERGQS5oIGluIEhlYWRlcnMgKi8sCkBAIC0zMTQ0OCw2
ICszMTQ1NSw3IEBACiAJCQkJNzA5QTAxRkUxRTNEMEJERDAwNkIwRDRDIC8qIE1vZHVsZUZldGNo
RmFpbHVyZUtpbmQuaCBpbiBIZWFkZXJzICovLAogCQkJCUUzMjAxQzFBMUY4RTgyMTMwMDc2QTAz
MiAvKiBNb2R1bGVGZXRjaFBhcmFtZXRlcnMuaCBpbiBIZWFkZXJzICovLAogCQkJCUY1NUIzREM2
MTI1MUYxMkQwMDNFRjI2OSAvKiBNb250aElucHV0VHlwZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJ
RTM5NjI4QzEyMzk1NzQzMTAwNjU4RUNEIC8qIE1vdGlvbk1hbmFnZXJDbGllbnQuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTg1MDMxQjQ2MEE0NEVGQzcwMEY5OTJFMCAvKiBNb3VzZUV2ZW50LmggaW4g
SGVhZGVycyAqLywKIAkJCQk4Mzc2NUY5NTFEQUM1MjJGMDBDMDY1MzcgLyogTW91c2VFdmVudElu
aXQuaCBpbiBIZWFkZXJzICovLAogCQkJCTkzNUM0NzYzMDlBQzRDRTYwMEE2QUFCNCAvKiBNb3Vz
ZUV2ZW50V2l0aEhpdFRlc3RSZXN1bHRzLmggaW4gSGVhZGVycyAqLywKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL2RvbS9EZXZpY2VPcmllbnRhdGlvbkNsaWVudC5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL2RvbS9EZXZpY2VPcmllbnRhdGlvbkNsaWVudC5oCShyZXZpc2lvbiAyNTMxNzAp
CisrKyBTb3VyY2UvV2ViQ29yZS9kb20vRGV2aWNlT3JpZW50YXRpb25DbGllbnQuaAkod29ya2lu
ZyBjb3B5KQpAQCAtMjgsNiArMjgsNyBAQAogCiAjaW5jbHVkZSAiRGV2aWNlQ2xpZW50LmgiCiAj
aW5jbHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+CisjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgogCiBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAkocmV2aXNp
b24gMjUzMTcwKQorKysgU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAkod29ya2luZyBj
b3B5KQpAQCAtNTY1LDcgKzU2NSw3IEBAIERvY3VtZW50OjpEb2N1bWVudChGcmFtZSogZnJhbWUs
IGNvbnN0IFUKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKSAmJiBFTkFCTEUoREVWSUNFX09SSUVO
VEFUSU9OKQogICAgICwgbV9kZXZpY2VNb3Rpb25DbGllbnQobWFrZVVuaXF1ZTxEZXZpY2VNb3Rp
b25DbGllbnRJT1M+KCkpCiAgICAgLCBtX2RldmljZU1vdGlvbkNvbnRyb2xsZXIobWFrZVVuaXF1
ZTxEZXZpY2VNb3Rpb25Db250cm9sbGVyPigqbV9kZXZpY2VNb3Rpb25DbGllbnQpKQotICAgICwg
bV9kZXZpY2VPcmllbnRhdGlvbkNsaWVudChtYWtlVW5pcXVlPERldmljZU9yaWVudGF0aW9uQ2xp
ZW50SU9TPigpKQorICAgICwgbV9kZXZpY2VPcmllbnRhdGlvbkNsaWVudChtYWtlVW5pcXVlPERl
dmljZU9yaWVudGF0aW9uQ2xpZW50SU9TPihwYWdlKCkgPyBwYWdlKCktPmRldmljZU9yaWVudGF0
aW9uVXBkYXRlUHJvdmlkZXIoKSA6IG51bGxwdHIpKQogICAgICwgbV9kZXZpY2VPcmllbnRhdGlv
bkNvbnRyb2xsZXIobWFrZVVuaXF1ZTxEZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXI+KCptX2Rl
dmljZU9yaWVudGF0aW9uQ2xpZW50KSkKICNlbmRpZgogICAgICwgbV9wZW5kaW5nVGFza3NUaW1l
cigqdGhpcywgJkRvY3VtZW50OjpwZW5kaW5nVGFza3NUaW1lckZpcmVkKQpJbmRleDogU291cmNl
L1dlYkNvcmUvcGFnZS9QYWdlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wYWdl
L1BhZ2UuY3BwCShyZXZpc2lvbiAyNTMxNzApCisrKyBTb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2Uu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yODksNiArMjg5LDkgQEAgUGFnZTo6UGFnZShQYWdlQ29u
ZmlndXJhdGlvbiYmIHBhZ2VDb25maQogI2lmIEVOQUJMRShBUFBMSUNBVElPTl9NQU5JRkVTVCkK
ICAgICAsIG1fYXBwbGljYXRpb25NYW5pZmVzdChwYWdlQ29uZmlndXJhdGlvbi5hcHBsaWNhdGlv
bk1hbmlmZXN0KQogI2VuZGlmCisjaWYgRU5BQkxFKERFVklDRV9PUklFTlRBVElPTikgJiYgUExB
VEZPUk0oSU9TX0ZBTUlMWSkKKyAgICAsIG1fZGV2aWNlT3JpZW50YXRpb25VcGRhdGVQcm92aWRl
cihXVEZNb3ZlKHBhZ2VDb25maWd1cmF0aW9uLmRldmljZU9yaWVudGF0aW9uVXBkYXRlUHJvdmlk
ZXIpKQorI2VuZGlmCiB7CiAgICAgdXBkYXRlVGltZXJUaHJvdHRsaW5nU3RhdGUoKTsKIApJbmRl
eDogU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvcGFnZS9QYWdlLmgJKHJldmlzaW9uIDI1MzE3MCkKKysrIFNvdXJjZS9XZWJDb3JlL3BhZ2Uv
UGFnZS5oCSh3b3JraW5nIGNvcHkpCkBAIC02OSw2ICs2OSwxMCBAQAogI2luY2x1ZGUgIk1lZGlh
UGxheWJhY2tUYXJnZXRDb250ZXh0LmgiCiAjZW5kaWYKIAorI2lmIEVOQUJMRShERVZJQ0VfT1JJ
RU5UQVRJT04pICYmIFBMQVRGT1JNKElPU19GQU1JTFkpCisjaW5jbHVkZSAiRGV2aWNlT3JpZW50
YXRpb25VcGRhdGVQcm92aWRlci5oIgorI2VuZGlmCisKIG5hbWVzcGFjZSBKU0MgewogY2xhc3Mg
RGVidWdnZXI7CiB9CkBAIC03MTksNiArNzIzLDEwIEBAIHB1YmxpYzoKIAogICAgIFdFQkNPUkVf
RVhQT1JUIFZlY3RvcjxSZWY8RWxlbWVudD4+IGVkaXRhYmxlRWxlbWVudHNJblJlY3QoY29uc3Qg
RmxvYXRSZWN0JikgY29uc3Q7CiAKKyNpZiBFTkFCTEUoREVWSUNFX09SSUVOVEFUSU9OKSAmJiBQ
TEFURk9STShJT1NfRkFNSUxZKQorICAgIERldmljZU9yaWVudGF0aW9uVXBkYXRlUHJvdmlkZXIq
IGRldmljZU9yaWVudGF0aW9uVXBkYXRlUHJvdmlkZXIoKSBjb25zdCB7IHJldHVybiBtX2Rldmlj
ZU9yaWVudGF0aW9uVXBkYXRlUHJvdmlkZXIuZ2V0KCk7IH0KKyNlbmRpZgorCiBwcml2YXRlOgog
ICAgIHN0cnVjdCBOYXZpZ2F0aW9uIHsKICAgICAgICAgUmVnaXN0cmFibGVEb21haW4gZG9tYWlu
OwpAQCAtOTkwLDYgKzk5OCwxMCBAQCBwcml2YXRlOgogCiAgICAgT3B0aW9uYWw8Vmlld3BvcnRB
cmd1bWVudHM+IG1fb3ZlcnJpZGVWaWV3cG9ydEFyZ3VtZW50czsKIAorI2lmIEVOQUJMRShERVZJ
Q0VfT1JJRU5UQVRJT04pICYmIFBMQVRGT1JNKElPU19GQU1JTFkpCisgICAgUmVmUHRyPERldmlj
ZU9yaWVudGF0aW9uVXBkYXRlUHJvdmlkZXI+IG1fZGV2aWNlT3JpZW50YXRpb25VcGRhdGVQcm92
aWRlcjsKKyNlbmRpZgorCiAgICAgYm9vbCBtX3Nob3VsZEVuYWJsZUlDRUNhbmRpZGF0ZUZpbHRl
cmluZ0J5RGVmYXVsdCB7IHRydWUgfTsKICAgICBib29sIG1fbWVkaWFQbGF5YmFja0lzU3VzcGVu
ZGVkIHsgZmFsc2UgfTsKICAgICBib29sIG1fbWVkaWFCdWZmZXJpbmdJc1N1c3BlbmRlZCB7IGZh
bHNlIH07CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VDb25maWd1cmF0aW9uLmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlQ29uZmlndXJhdGlvbi5oCShyZXZp
c2lvbiAyNTMxNzApCisrKyBTb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VDb25maWd1cmF0aW9uLmgJ
KHdvcmtpbmcgY29weSkKQEAgLTExOCw2ICsxMTgsMTAgQEAgcHVibGljOgogICAgIFJlZlB0cjxT
dG9yYWdlTmFtZXNwYWNlUHJvdmlkZXI+IHN0b3JhZ2VOYW1lc3BhY2VQcm92aWRlcjsKICAgICBS
ZWZQdHI8VXNlckNvbnRlbnRQcm92aWRlcj4gdXNlckNvbnRlbnRQcm92aWRlcjsKICAgICBSZWZQ
dHI8VmlzaXRlZExpbmtTdG9yZT4gdmlzaXRlZExpbmtTdG9yZTsKKyAgICAKKyNpZiBFTkFCTEUo
REVWSUNFX09SSUVOVEFUSU9OKSAmJiBQTEFURk9STShJT1NfRkFNSUxZKQorICAgIFJlZlB0cjxE
ZXZpY2VPcmllbnRhdGlvblVwZGF0ZVByb3ZpZGVyPiBkZXZpY2VPcmllbnRhdGlvblVwZGF0ZVBy
b3ZpZGVyOworI2VuZGlmCiB9OwogCiB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9p
b3MvRGV2aWNlT3JpZW50YXRpb25DbGllbnRJT1MuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9pb3MvRGV2aWNlT3JpZW50YXRpb25DbGllbnRJT1MuaAkocmV2aXNpb24g
MjUzMTcwKQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL0RldmljZU9yaWVudGF0aW9u
Q2xpZW50SU9TLmgJKHdvcmtpbmcgY29weSkKQEAgLTMwLDE1ICszMCwxNyBAQAogI2luY2x1ZGUg
IkRldmljZU9yaWVudGF0aW9uQ2xpZW50LmgiCiAjaW5jbHVkZSAiRGV2aWNlT3JpZW50YXRpb25D
b250cm9sbGVyLmgiCiAjaW5jbHVkZSAiRGV2aWNlT3JpZW50YXRpb25EYXRhLmgiCisjaW5jbHVk
ZSAiRGV2aWNlT3JpZW50YXRpb25VcGRhdGVQcm92aWRlci5oIgorI2luY2x1ZGUgIk1vdGlvbk1h
bmFnZXJDbGllbnQuaCIKICNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CiAKIE9CSkNfQ0xBU1MgV2Vi
Q29yZU1vdGlvbk1hbmFnZXI7CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotY2xhc3MgRGV2aWNl
T3JpZW50YXRpb25DbGllbnRJT1MgOiBwdWJsaWMgRGV2aWNlT3JpZW50YXRpb25DbGllbnQgewor
Y2xhc3MgRGV2aWNlT3JpZW50YXRpb25DbGllbnRJT1MgOiBwdWJsaWMgRGV2aWNlT3JpZW50YXRp
b25DbGllbnQsIHB1YmxpYyBNb3Rpb25NYW5hZ2VyQ2xpZW50IHsKIHB1YmxpYzoKLSAgICBEZXZp
Y2VPcmllbnRhdGlvbkNsaWVudElPUygpOworICAgIERldmljZU9yaWVudGF0aW9uQ2xpZW50SU9T
KFJlZlB0cjxEZXZpY2VPcmllbnRhdGlvblVwZGF0ZVByb3ZpZGVyPiYmKTsKICAgICB+RGV2aWNl
T3JpZW50YXRpb25DbGllbnRJT1MoKSBvdmVycmlkZTsKICAgICB2b2lkIHNldENvbnRyb2xsZXIo
RGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyKikgb3ZlcnJpZGU7CiAgICAgdm9pZCBzdGFydFVw
ZGF0aW5nKCkgb3ZlcnJpZGU7CkBAIC00NiwxMyArNDgsMTQgQEAgcHVibGljOgogICAgIERldmlj
ZU9yaWVudGF0aW9uRGF0YSogbGFzdE9yaWVudGF0aW9uKCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAg
dm9pZCBkZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXJEZXN0cm95ZWQoKSBvdmVycmlkZTsKIAot
ICAgIHZvaWQgb3JpZW50YXRpb25DaGFuZ2VkKGRvdWJsZSwgZG91YmxlLCBkb3VibGUsIGRvdWJs
ZSwgZG91YmxlKTsKKyAgICB2b2lkIG9yaWVudGF0aW9uQ2hhbmdlZChkb3VibGUsIGRvdWJsZSwg
ZG91YmxlLCBkb3VibGUsIGRvdWJsZSkgb3ZlcnJpZGU7CiAKIHByaXZhdGU6Ci0gICAgV2ViQ29y
ZU1vdGlvbk1hbmFnZXIqIG1fbW90aW9uTWFuYWdlcjsKLSAgICBEZXZpY2VPcmllbnRhdGlvbkNv
bnRyb2xsZXIqIG1fY29udHJvbGxlcjsKKyAgICBXZWJDb3JlTW90aW9uTWFuYWdlciogbV9tb3Rp
b25NYW5hZ2VyICB7IG51bGxwdHIgfTsKKyAgICBEZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXIq
IG1fY29udHJvbGxlciAgeyBudWxscHRyIH07CiAgICAgUmVmUHRyPERldmljZU9yaWVudGF0aW9u
RGF0YT4gbV9jdXJyZW50RGV2aWNlT3JpZW50YXRpb247Ci0gICAgYm9vbCBtX3VwZGF0aW5nOwor
ICAgIFJlZlB0cjxEZXZpY2VPcmllbnRhdGlvblVwZGF0ZVByb3ZpZGVyPiBtX2RldmljZU9yaWVu
dGF0aW9uVXBkYXRlUHJvdmlkZXI7CisgICAgYm9vbCBtX3VwZGF0aW5nIHsgZmFsc2UgfTsKIH07
CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2lvcy9EZXZpY2VPcmllbnRhdGlvbkNsaWVudElPUy5tbQo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9pb3MvRGV2aWNlT3JpZW50YXRpb25DbGllbnRJT1MubW0JKHJldmlz
aW9uIDI1MzE3MCkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9EZXZpY2VPcmllbnRh
dGlvbkNsaWVudElPUy5tbQkod29ya2luZyBjb3B5KQpAQCAtMzMsMTAgKzMzLDkgQEAKIAogbmFt
ZXNwYWNlIFdlYkNvcmUgewogCi1EZXZpY2VPcmllbnRhdGlvbkNsaWVudElPUzo6RGV2aWNlT3Jp
ZW50YXRpb25DbGllbnRJT1MoKQorRGV2aWNlT3JpZW50YXRpb25DbGllbnRJT1M6OkRldmljZU9y
aWVudGF0aW9uQ2xpZW50SU9TKFJlZlB0cjxEZXZpY2VPcmllbnRhdGlvblVwZGF0ZVByb3ZpZGVy
PiYmIGRldmljZU9yaWVudGF0aW9uVXBkYXRlUHJvdmlkZXIpCiAgICAgOiBEZXZpY2VPcmllbnRh
dGlvbkNsaWVudCgpCi0gICAgLCBtX21vdGlvbk1hbmFnZXIobnVsbHB0cikKLSAgICAsIG1fdXBk
YXRpbmcoMCkKKyAgICAsIG1fZGV2aWNlT3JpZW50YXRpb25VcGRhdGVQcm92aWRlcihXVEZNb3Zl
KGRldmljZU9yaWVudGF0aW9uVXBkYXRlUHJvdmlkZXIpKQogewogfQogCkBAIC01Myw2ICs1Miwx
MSBAQCB2b2lkIERldmljZU9yaWVudGF0aW9uQ2xpZW50SU9TOjpzdGFydFVwCiB7CiAgICAgbV91
cGRhdGluZyA9IHRydWU7CiAKKyAgICBpZiAobV9kZXZpY2VPcmllbnRhdGlvblVwZGF0ZVByb3Zp
ZGVyKSB7CisgICAgICAgIG1fZGV2aWNlT3JpZW50YXRpb25VcGRhdGVQcm92aWRlci0+c3RhcnRV
cGRhdGluZygqdGhpcyk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKICAgICBpZiAoIW1fbW90
aW9uTWFuYWdlcikKICAgICAgICAgbV9tb3Rpb25NYW5hZ2VyID0gW1dlYkNvcmVNb3Rpb25NYW5h
Z2VyIHNoYXJlZE1hbmFnZXJdOwogCkBAIC02Myw2ICs2NywxMSBAQCB2b2lkIERldmljZU9yaWVu
dGF0aW9uQ2xpZW50SU9TOjpzdG9wVXBkCiB7CiAgICAgbV91cGRhdGluZyA9IGZhbHNlOwogCisg
ICAgaWYgKG1fZGV2aWNlT3JpZW50YXRpb25VcGRhdGVQcm92aWRlcikgeworICAgICAgICBtX2Rl
dmljZU9yaWVudGF0aW9uVXBkYXRlUHJvdmlkZXItPnN0b3BVcGRhdGluZygqdGhpcyk7CisgICAg
ICAgIHJldHVybjsKKyAgICB9CisKICAgICAvLyBSZW1vdmUgb3Vyc2VsdmVzIGFzIHRoZSBvcmll
bnRhdGlvbiBjbGllbnQgc28gd2Ugd29uJ3QgZ2V0IHVwZGF0ZXMuCiAgICAgW21fbW90aW9uTWFu
YWdlciByZW1vdmVPcmllbnRhdGlvbkNsaWVudDp0aGlzXTsKIH0KQEAgLTc0LDYgKzgzLDExIEBA
IERldmljZU9yaWVudGF0aW9uRGF0YSogRGV2aWNlT3JpZW50YXRpb24KIAogdm9pZCBEZXZpY2VP
cmllbnRhdGlvbkNsaWVudElPUzo6ZGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyRGVzdHJveWVk
KCkKIHsKKyAgICBpZiAobV9kZXZpY2VPcmllbnRhdGlvblVwZGF0ZVByb3ZpZGVyKSB7CisgICAg
ICAgIG1fZGV2aWNlT3JpZW50YXRpb25VcGRhdGVQcm92aWRlci0+c3RvcFVwZGF0aW5nKCp0aGlz
KTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKwogICAgIFttX21vdGlvbk1hbmFnZXIgcmVtb3Zl
T3JpZW50YXRpb25DbGllbnQ6dGhpc107CiB9CiAgICAgCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9pb3MvRGV2aWNlT3JpZW50YXRpb25VcGRhdGVQcm92aWRlci5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9EZXZpY2VPcmllbnRhdGlvblVwZGF0ZVBy
b3ZpZGVyLmgJKG5vbmV4aXN0ZW50KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL0Rl
dmljZU9yaWVudGF0aW9uVXBkYXRlUHJvdmlkZXIuaAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsx
LDUxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
ICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRI
RSBDT1BZUklHSFQgSE9MREVSUyBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIFRI
RSBDT1BZUklHSFQgT1dORVIgT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
UFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIFBMQVRGT1JNKElPU19GQU1JTFkp
ICYmIEVOQUJMRShERVZJQ0VfT1JJRU5UQVRJT04pCisKKyNpbmNsdWRlIDx3dGYvUmVmQ291bnRl
ZC5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIE1vdGlvbk1hbmFnZXJDbGllbnQ7
CisKK2NsYXNzIERldmljZU9yaWVudGF0aW9uVXBkYXRlUHJvdmlkZXIgOiBwdWJsaWMgUmVmQ291
bnRlZDxEZXZpY2VPcmllbnRhdGlvblVwZGF0ZVByb3ZpZGVyPiB7CitwdWJsaWM6CisgICAgdmly
dHVhbCB+RGV2aWNlT3JpZW50YXRpb25VcGRhdGVQcm92aWRlcigpIHsgfQorCisgICAgdmlydHVh
bCB2b2lkIHN0YXJ0VXBkYXRpbmcoTW90aW9uTWFuYWdlckNsaWVudCYpID0gMDsKKyAgICB2aXJ0
dWFsIHZvaWQgc3RvcFVwZGF0aW5nKE1vdGlvbk1hbmFnZXJDbGllbnQmKSA9IDA7CisKKyAgICB2
aXJ0dWFsIHZvaWQgZGV2aWNlT3JpZW50YXRpb25DaGFuZ2VkKGRvdWJsZSwgZG91YmxlLCBkb3Vi
bGUsIGRvdWJsZSwgZG91YmxlKSA9IDA7CisgICAgCitwcm90ZWN0ZWQ6CisgICAgRGV2aWNlT3Jp
ZW50YXRpb25VcGRhdGVQcm92aWRlcigpID0gZGVmYXVsdDsKK307CisKK30gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKKworI2VuZGlmIC8vIFBMQVRGT1JNKElPU19GQU1JTFkpICYmIEVOQUJMRShERVZJ
Q0VfT1JJRU5UQVRJT04pCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvV2ViQ29y
ZU1vdGlvbk1hbmFnZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9p
b3MvV2ViQ29yZU1vdGlvbk1hbmFnZXIuaAkocmV2aXNpb24gMjUzMTcwKQorKysgU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vaW9zL1dlYkNvcmVNb3Rpb25NYW5hZ2VyLmgJKHdvcmtpbmcgY29weSkK
QEAgLTI1LDEwICsyNSw5IEBACiAKICNwcmFnbWEgb25jZQogCi0jaW1wb3J0ICJEZXZpY2VNb3Rp
b25DbGllbnRJT1MuaCIKLSNpbXBvcnQgIkRldmljZU9yaWVudGF0aW9uQ2xpZW50SU9TLmgiCiAj
aW1wb3J0IDxDb3JlTG9jYXRpb24vQ29yZUxvY2F0aW9uLmg+CiAjaW1wb3J0IDx3dGYvSGFzaENv
dW50ZWRTZXQuaD4KKyNpbXBvcnQgPHd0Zi9XZWFrSGFzaFNldC5oPgogCiAjaWYgUExBVEZPUk0o
SU9TX0ZBTUlMWSkgJiYgRU5BQkxFKERFVklDRV9PUklFTlRBVElPTikKIApAQCAtMzYsMTEgKzM1
LDE2IEBACiAKIGNvbnN0IGZsb2F0IGtNb3Rpb25VcGRhdGVJbnRlcnZhbCA9IDEuMGYgLyA2MC4w
ZjsKIAotQGludGVyZmFjZSBXZWJDb3JlTW90aW9uTWFuYWdlciA6IE5TT2JqZWN0IHsKK25hbWVz
cGFjZSBXZWJDb3JlIHsKK2NsYXNzIERldmljZU1vdGlvbkNsaWVudElPUzsKK2NsYXNzIE1vdGlv
bk1hbmFnZXJDbGllbnQ7Cit9OworCitXRUJDT1JFX0VYUE9SVCBAaW50ZXJmYWNlIFdlYkNvcmVN
b3Rpb25NYW5hZ2VyIDogTlNPYmplY3QgewogICAgIENNTW90aW9uTWFuYWdlciogbV9tb3Rpb25N
YW5hZ2VyOwogICAgIENMTG9jYXRpb25NYW5hZ2VyKiBtX2xvY2F0aW9uTWFuYWdlcjsKICAgICBI
YXNoU2V0PFdlYkNvcmU6OkRldmljZU1vdGlvbkNsaWVudElPUyo+IG1fZGV2aWNlTW90aW9uQ2xp
ZW50czsKLSAgICBIYXNoU2V0PFdlYkNvcmU6OkRldmljZU9yaWVudGF0aW9uQ2xpZW50SU9TKj4g
bV9kZXZpY2VPcmllbnRhdGlvbkNsaWVudHM7CisgICAgV2Vha0hhc2hTZXQ8V2ViQ29yZTo6TW90
aW9uTWFuYWdlckNsaWVudD4gbV9kZXZpY2VPcmllbnRhdGlvbkNsaWVudHM7CiAgICAgTlNUaW1l
ciogbV91cGRhdGVUaW1lcjsKICAgICBCT09MIG1fZ3lyb0F2YWlsYWJsZTsKICAgICBCT09MIG1f
aGVhZGluZ0F2YWlsYWJsZTsKQEAgLTUwLDggKzU0LDggQEAgY29uc3QgZmxvYXQga01vdGlvblVw
ZGF0ZUludGVydmFsID0gMS4wZgogKyAoV2ViQ29yZU1vdGlvbk1hbmFnZXIgKilzaGFyZWRNYW5h
Z2VyOwogLSAodm9pZClhZGRNb3Rpb25DbGllbnQ6KFdlYkNvcmU6OkRldmljZU1vdGlvbkNsaWVu
dElPUyAqKWNsaWVudDsKIC0gKHZvaWQpcmVtb3ZlTW90aW9uQ2xpZW50OihXZWJDb3JlOjpEZXZp
Y2VNb3Rpb25DbGllbnRJT1MgKiljbGllbnQ7Ci0tICh2b2lkKWFkZE9yaWVudGF0aW9uQ2xpZW50
OihXZWJDb3JlOjpEZXZpY2VPcmllbnRhdGlvbkNsaWVudElPUyAqKWNsaWVudDsKLS0gKHZvaWQp
cmVtb3ZlT3JpZW50YXRpb25DbGllbnQ6KFdlYkNvcmU6OkRldmljZU9yaWVudGF0aW9uQ2xpZW50
SU9TICopY2xpZW50OworLSAodm9pZClhZGRPcmllbnRhdGlvbkNsaWVudDooV2ViQ29yZTo6TW90
aW9uTWFuYWdlckNsaWVudCAqKWNsaWVudDsKKy0gKHZvaWQpcmVtb3ZlT3JpZW50YXRpb25DbGll
bnQ6KFdlYkNvcmU6Ok1vdGlvbk1hbmFnZXJDbGllbnQgKiljbGllbnQ7CiAtIChCT09MKWd5cm9B
dmFpbGFibGU7CiAtIChCT09MKWhlYWRpbmdBdmFpbGFibGU7CiBAZW5kCkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9pb3MvV2ViQ29yZU1vdGlvbk1hbmFnZXIubW0KPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dlYkNvcmVNb3Rpb25NYW5hZ2VyLm1tCShy
ZXZpc2lvbiAyNTMxNzApCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvV2ViQ29yZU1v
dGlvbk1hbmFnZXIubW0JKHdvcmtpbmcgY29weSkKQEAgLTI4LDYgKzI4LDggQEAKIAogI2lmIFBM
QVRGT1JNKElPU19GQU1JTFkpICYmIEVOQUJMRShERVZJQ0VfT1JJRU5UQVRJT04pCiAKKyNpbXBv
cnQgIkRldmljZU1vdGlvbkNsaWVudElPUy5oIgorI2ltcG9ydCAiTW90aW9uTWFuYWdlckNsaWVu
dC5oIgogI2ltcG9ydCAiV2ViQ29yZU9iakNFeHRyYXMuaCIKICNpbXBvcnQgIldlYkNvcmVUaHJl
YWRSdW4uaCIKICNpbXBvcnQgPENvcmVMb2NhdGlvbi9Db3JlTG9jYXRpb24uaD4KQEAgLTExMiwx
NiArMTE0LDE2IEBAIC0gKHZvaWQpcmVtb3ZlTW90aW9uQ2xpZW50OihXZWJDb3JlOjpEZXYKICAg
ICAgICAgW3NlbGYgY2hlY2tDbGllbnRTdGF0dXNdOwogfQogCi0tICh2b2lkKWFkZE9yaWVudGF0
aW9uQ2xpZW50OihXZWJDb3JlOjpEZXZpY2VPcmllbnRhdGlvbkNsaWVudElPUyAqKWNsaWVudAor
LSAodm9pZClhZGRPcmllbnRhdGlvbkNsaWVudDooV2ViQ29yZTo6TW90aW9uTWFuYWdlckNsaWVu
dCAqKWNsaWVudAogewotICAgIG1fZGV2aWNlT3JpZW50YXRpb25DbGllbnRzLmFkZChjbGllbnQp
OworICAgIG1fZGV2aWNlT3JpZW50YXRpb25DbGllbnRzLmFkZCgqY2xpZW50KTsKICAgICBpZiAo
bV9pbml0aWFsaXplZCkKICAgICAgICAgW3NlbGYgY2hlY2tDbGllbnRTdGF0dXNdOwogfQogCi0t
ICh2b2lkKXJlbW92ZU9yaWVudGF0aW9uQ2xpZW50OihXZWJDb3JlOjpEZXZpY2VPcmllbnRhdGlv
bkNsaWVudElPUyAqKWNsaWVudAorLSAodm9pZClyZW1vdmVPcmllbnRhdGlvbkNsaWVudDooV2Vi
Q29yZTo6TW90aW9uTWFuYWdlckNsaWVudCAqKWNsaWVudAogewotICAgIG1fZGV2aWNlT3JpZW50
YXRpb25DbGllbnRzLnJlbW92ZShjbGllbnQpOworICAgIG1fZGV2aWNlT3JpZW50YXRpb25DbGll
bnRzLnJlbW92ZSgqY2xpZW50KTsKICAgICBpZiAobV9pbml0aWFsaXplZCkKICAgICAgICAgW3Nl
bGYgY2hlY2tDbGllbnRTdGF0dXNdOwogfQpAQCAtMTY5LDcgKzE3MSw3IEBAIC0gKHZvaWQpY2hl
Y2tDbGllbnRTdGF0dXMKICAgICAvLyBiZSBubyBjaGFuY2UgdGhhdCBtX21vdGlvbk1hbmFnZXIg
aGFzIG5vdCBiZWVuIGNyZWF0ZWQuCiAgICAgQVNTRVJUKG1fbW90aW9uTWFuYWdlcik7CiAKLSAg
ICBpZiAobV9kZXZpY2VNb3Rpb25DbGllbnRzLnNpemUoKSB8fCBtX2RldmljZU9yaWVudGF0aW9u
Q2xpZW50cy5zaXplKCkpIHsKKyAgICBpZiAobV9kZXZpY2VNb3Rpb25DbGllbnRzLnNpemUoKSB8
fCBtX2RldmljZU9yaWVudGF0aW9uQ2xpZW50cy5jb21wdXRlU2l6ZSgpKSB7CiAgICAgICAgIGlm
IChtX2d5cm9BdmFpbGFibGUpCiAgICAgICAgICAgICBbbV9tb3Rpb25NYW5hZ2VyIHN0YXJ0RGV2
aWNlTW90aW9uVXBkYXRlc107CiAgICAgICAgIGVsc2UKQEAgLTI0Niw4ICsyNDgsMTEgQEAgLSAo
dm9pZClzZW5kTW90aW9uRGF0YTooQ01EZXZpY2VNb3Rpb24gKgogCiAgICAgICAgIENNQXR0aXR1
ZGUqIGF0dGl0dWRlID0gbmV3TW90aW9uLmF0dGl0dWRlOwogCi0gICAgICAgIGF1dG8gb3JpZW50
YXRpb25DbGllbnRzID0gY29weVRvVmVjdG9yKG1fZGV2aWNlT3JpZW50YXRpb25DbGllbnRzKTsK
LQorICAgICAgICBWZWN0b3I8V2Vha1B0cjxNb3Rpb25NYW5hZ2VyQ2xpZW50Pj4gb3JpZW50YXRp
b25DbGllbnRzOworICAgICAgICBvcmllbnRhdGlvbkNsaWVudHMucmVzZXJ2ZUluaXRpYWxDYXBh
Y2l0eShtX2RldmljZU9yaWVudGF0aW9uQ2xpZW50cy5jb21wdXRlU2l6ZSgpKTsKKyAgICAgICAg
Zm9yIChhdXRvJiBjbGllbnQgOiBtX2RldmljZU9yaWVudGF0aW9uQ2xpZW50cykKKyAgICAgICAg
ICAgIG9yaWVudGF0aW9uQ2xpZW50cy5hcHBlbmQobWFrZVdlYWtQdHIoJmNsaWVudCkpOworICAg
ICAgICAKICAgICAgICAgLy8gQ29tcG9zZSB0aGUgcmF3IG1vdGlvbiBkYXRhIHRvIGFuIGludGVy
bWVkaWF0ZSBaWFktYmFzZWQgM3gzIHJvdGF0aW9uCiAgICAgICAgIC8vIG1hdHJpeCAoUikgd2hl
cmUgW3o9YXR0aXR1ZGUueWF3LCB4PWF0dGl0dWRlLnBpdGNoLCB5PWF0dGl0dWRlLnJvbGxdCiAg
ICAgICAgIC8vIGluIHRoZSBmb3JtOgpAQCAtMzE5LDggKzMyNCwxMCBAQCAtICh2b2lkKXNlbmRN
b3Rpb25EYXRhOihDTURldmljZU1vdGlvbiAqCiAgICAgICAgIGRvdWJsZSBoZWFkaW5nID0gKG1f
aGVhZGluZ0F2YWlsYWJsZSAmJiBuZXdIZWFkaW5nKSA/IG5ld0hlYWRpbmcubWFnbmV0aWNIZWFk
aW5nIDogMDsKICAgICAgICAgZG91YmxlIGhlYWRpbmdBY2N1cmFjeSA9IChtX2hlYWRpbmdBdmFp
bGFibGUgJiYgbmV3SGVhZGluZykgPyBuZXdIZWFkaW5nLmhlYWRpbmdBY2N1cmFjeSA6IC0xOwog
Ci0gICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgb3JpZW50YXRpb25DbGllbnRzLnNpemUo
KTsgKytpKQotICAgICAgICAgICAgb3JpZW50YXRpb25DbGllbnRzW2ldLT5vcmllbnRhdGlvbkNo
YW5nZWQoYWxwaGEsIGJldGEsIGdhbW1hLCBoZWFkaW5nLCBoZWFkaW5nQWNjdXJhY3kpOworICAg
ICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IG9yaWVudGF0aW9uQ2xpZW50cy5zaXplKCk7ICsr
aSkgeworICAgICAgICAgICAgaWYgKG9yaWVudGF0aW9uQ2xpZW50c1tpXSkKKyAgICAgICAgICAg
ICAgICBvcmllbnRhdGlvbkNsaWVudHNbaV0tPm9yaWVudGF0aW9uQ2hhbmdlZChhbHBoYSwgYmV0
YSwgZ2FtbWEsIGhlYWRpbmcsIGhlYWRpbmdBY2N1cmFjeSk7CisgICAgICAgIH0KICAgICB9KTsK
IH0KIApJbmRleDogU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYktpdC9DaGFuZ2VMb2cJKHJldmlzaW9uIDI1MzE3MCkKKysrIFNvdXJjZS9XZWJLaXQvQ2hh
bmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjUgQEAKKzIwMTktMTItMDUgIFBlciBB
cm5lIFZvbGxhbiAgPHB2b2xsYW5AYXBwbGUuY29tPgorCisgICAgICAgIFtpT1NdIENhbGxzIHRv
IGRldmljZSBvcmllbnRhdGlvbiBBUEkgc2hvdWxkIGJlIGRvbmUgaW4gdGhlIFVJIHByb2Nlc3MK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNDcyMAor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBhIG5l
dyBjbGFzcywgV2ViRGV2aWNlT3JpZW50YXRpb25VcGRhdGVQcm92aWRlclByb3h5LCB0byBoYW5k
bGUgbWVzc2FnZXMgdG8gc3RhcnQgYW5kIHN0b3AgdXBkYXRpbmcgZGV2aWNlIG9yaWVudGF0aW9u
CisgICAgICAgIGluIHRoZSBVSSBwcm9jZXNzLiBBbHNvLCBhZGQgYSBtZXNzYWdlIHRvIHVwZGF0
ZSB0aGUgZGV2aWNlIG9yaWVudGF0aW9uIGluIHRoZSBXZWJDb250ZW50IHByb2Nlc3MuIEluIHRo
ZSBVSSBwcm9jZXNzLCB0aGUKKyAgICAgICAgZGV2aWNlIG9yaWVudGF0aW9uIEFQSSBpcyBjYWxs
ZWQgdGhyb3VnaCB0aGUgYWxyZWFkeSBleGlzdGluZyBXZWJDb3JlTW90aW9uTWFuYWdlciBjbGFz
cy4KKworICAgICAgICAqIERlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3Q6CisgICAgICAg
ICogRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3Q6CisgICAgICAgICogRGVyaXZlZFNv
dXJjZXMubWFrZToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6bV93ZWJEZXZpY2VPcmllbnRhdGlvblVwZGF0ZVByb3ZpZGVyUHJveHkpOgor
ICAgICAgICAoV2ViS2l0OjptX3Jlc2V0UmVjZW50Q3Jhc2hDb3VudFRpbWVyKTogRGVsZXRlZC4K
KyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lmg6CisgICAgICAgICogV2ViS2l0Lnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dl
YlBhZ2UuY3BwOgorICAgICAgICAoV2ViS2l0OjptX292ZXJyaWRkZW5NZWRpYVR5cGUpOgorCiAy
MDE5LTEyLTA1ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgTUVT
U0FHRV9DSEVDSyBCYWNrRm9yd2FyZEl0ZW1JZGVudGlmaWVyIG9uIGluY29taW5nIElQQyBmcm9t
IHRoZSBXZWJQcm9jZXNzCkluZGV4OiBTb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLWlucHV0
LnhjZmlsZWxpc3QKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy1p
bnB1dC54Y2ZpbGVsaXN0CShyZXZpc2lvbiAyNTMxNzApCisrKyBTb3VyY2UvV2ViS2l0L0Rlcml2
ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3QJKHdvcmtpbmcgY29weSkKQEAgLTg4LDYgKzg4LDcg
QEAgJChQUk9KRUNUX0RJUikvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLgogJChQUk9KRUNUX0RJ
UikvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikv
VUlQcm9jZXNzL2lvcy9FZGl0YWJsZUltYWdlQ29udHJvbGxlci5tZXNzYWdlcy5pbgogJChQUk9K
RUNUX0RJUikvVUlQcm9jZXNzL2lvcy9TbWFydE1hZ25pZmljYXRpb25Db250cm9sbGVyLm1lc3Nh
Z2VzLmluCiskKFBST0pFQ1RfRElSKS9VSVByb2Nlc3MvaW9zL1dlYkRldmljZU9yaWVudGF0aW9u
VXBkYXRlUHJvdmlkZXJQcm94eS5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikvVUlQcm9jZXNz
L21hYy9TZWNJdGVtU2hpbVByb3h5Lm1lc3NhZ2VzLmluCiAkKFBST0pFQ1RfRElSKS9XZWJQcm9j
ZXNzL0FwcGxlUGF5L1dlYlBheW1lbnRDb29yZGluYXRvci5tZXNzYWdlcy5pbgogJChQUk9KRUNU
X0RJUikvV2ViUHJvY2Vzcy9BdXRvbWF0aW9uL1dlYkF1dG9tYXRpb25TZXNzaW9uUHJveHkuanMK
QEAgLTExMyw2ICsxMTQsNyBAQCAkKFBST0pFQ1RfRElSKS9XZWJQcm9jZXNzL1N0b3JhZ2UvV2Vi
U1dDCiAkKFBST0pFQ1RfRElSKS9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDb250ZXh0TWFuYWdl
ckNvbm5lY3Rpb24ubWVzc2FnZXMuaW4KICQoUFJPSkVDVF9ESVIpL1dlYlByb2Nlc3MvVXNlckNv
bnRlbnQvV2ViVXNlckNvbnRlbnRDb250cm9sbGVyLm1lc3NhZ2VzLmluCiAkKFBST0pFQ1RfRElS
KS9XZWJQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL1dlYkF1dGhlbnRpY2F0b3JDb29yZGluYXRv
ci5tZXNzYWdlcy5pbgorJChQUk9KRUNUX0RJUikvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9X
ZWJEZXZpY2VPcmllbnRhdGlvblVwZGF0ZVByb3ZpZGVyLm1lc3NhZ2VzLmluCiAkKFBST0pFQ1Rf
RElSKS9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29jb2EvVGV4dENoZWNraW5nQ29udHJvbGxlclByb3h5
Lm1lc3NhZ2VzLmluCiAkKFBST0pFQ1RfRElSKS9XZWJQcm9jZXNzL1dlYlBhZ2UvRHJhd2luZ0Fy
ZWEubWVzc2FnZXMuaW4KICQoUFJPSkVDVF9ESVIpL1dlYlByb2Nlc3MvV2ViUGFnZS9FdmVudERp
c3BhdGNoZXIubWVzc2FnZXMuaW4KSW5kZXg6IFNvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMt
b3V0cHV0LnhjZmlsZWxpc3QKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9EZXJpdmVkU291
cmNlcy1vdXRwdXQueGNmaWxlbGlzdAkocmV2aXNpb24gMjUzMTcwKQorKysgU291cmNlL1dlYktp
dC9EZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdAkod29ya2luZyBjb3B5KQpAQCAtMTkz
LDYgKzE5MywxMiBAQCAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViCiAk
KEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9XZWJDb29raWVNYW5h
Z2VyUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZl
ZFNvdXJjZXMvV2ViS2l0Mi9XZWJDb29raWVNYW5hZ2VyUHJveHlNZXNzYWdlcy5oCiAkKEJVSUxU
X1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9XZWJDb29raWVNYW5hZ2VyUHJv
eHlNZXNzYWdlc1JlcGxpZXMuaAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2Vz
L1dlYktpdDIvV2ViRGV2aWNlT3JpZW50YXRpb25VcGRhdGVQcm92aWRlck1lc3NhZ2VSZWNlaXZl
ci5jcHAKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1dlYkRl
dmljZU9yaWVudGF0aW9uVXBkYXRlUHJvdmlkZXJNZXNzYWdlcy5oCiskKEJVSUxUX1BST0RVQ1RT
X0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9XZWJEZXZpY2VPcmllbnRhdGlvblVwZGF0ZVBy
b3ZpZGVyTWVzc2FnZXNSZXBsaWVzLmgKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291
cmNlcy9XZWJLaXQyL1dlYkRldmljZU9yaWVudGF0aW9uVXBkYXRlUHJvdmlkZXJQcm94eU1lc3Nh
Z2VSZWNlaXZlci5jcHAKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJL
aXQyL1dlYkRldmljZU9yaWVudGF0aW9uVXBkYXRlUHJvdmlkZXJQcm94eU1lc3NhZ2VzLmgKKyQo
QlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1dlYkRldmljZU9yaWVu
dGF0aW9uVXBkYXRlUHJvdmlkZXJQcm94eU1lc3NhZ2VzUmVwbGllcy5oCiAkKEJVSUxUX1BST0RV
Q1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9XZWJGdWxsU2NyZWVuTWFuYWdlck1lc3Nh
Z2VSZWNlaXZlci5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJL
aXQyL1dlYkZ1bGxTY3JlZW5NYW5hZ2VyTWVzc2FnZXMuaAogJChCVUlMVF9QUk9EVUNUU19ESVIp
L0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvV2ViRnVsbFNjcmVlbk1hbmFnZXJNZXNzYWdlc1JlcGxp
ZXMuaApJbmRleDogU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy5tYWtlCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMubWFrZQkocmV2aXNpb24gMjUzMTcwKQor
KysgU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy5tYWtlCSh3b3JraW5nIGNvcHkpCkBAIC0x
ODksNiArMTg5LDggQEAgTUVTU0FHRV9SRUNFSVZFUlMgPSBcCiAgICAgV2ViU1dDb250ZXh0TWFu
YWdlckNvbm5lY3Rpb24gXAogICAgIFdlYlNXU2VydmVyQ29ubmVjdGlvbiBcCiAgICAgV2ViU1dT
ZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uIFwKKyAgICBXZWJEZXZpY2VPcmllbnRhdGlvblVwZGF0
ZVByb3ZpZGVyIFwKKyAgICBXZWJEZXZpY2VPcmllbnRhdGlvblVwZGF0ZVByb3ZpZGVyUHJveHkg
XAogICAgIFdlYlNvY2tldENoYW5uZWwgXAogICAgIFdlYlNvY2tldFN0cmVhbSBcCiAgICAgV2Vi
VXNlckNvbnRlbnRDb250cm9sbGVyIFwKSW5kZXg6IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dl
YlBhZ2VQcm94eS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
UGFnZVByb3h5LmNwcAkocmV2aXNpb24gMjUzMTcwKQorKysgU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2ViUGFnZVByb3h5LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDQ5LDYgKzQ0OSw5IEBAIFdl
YlBhZ2VQcm94eTo6V2ViUGFnZVByb3h5KFBhZ2VDbGllbnQmIHAKICAgICAsIG1faW5zcGVjdG9y
RGVidWdnYWJsZShtYWtlVW5pcXVlPFdlYlBhZ2VEZWJ1Z2dhYmxlPigqdGhpcykpCiAjZW5kaWYK
ICAgICAsIG1fcmVzZXRSZWNlbnRDcmFzaENvdW50VGltZXIoUnVuTG9vcDo6bWFpbigpLCB0aGlz
LCAmV2ViUGFnZVByb3h5OjpyZXNldFJlY2VudENyYXNoQ291bnQpCisjaWYgUExBVEZPUk0oSU9T
X0ZBTUlMWSkgJiYgRU5BQkxFKERFVklDRV9PUklFTlRBVElPTikKKyAgICAsIG1fd2ViRGV2aWNl
T3JpZW50YXRpb25VcGRhdGVQcm92aWRlclByb3h5KCp0aGlzKQorI2VuZGlmCiB7CiAgICAgUkVM
RUFTRV9MT0dfSUZfQUxMT1dFRChMb2FkaW5nLCAiY29uc3RydWN0b3I6Iik7CiAKSW5kZXg6IFNv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCShyZXZpc2lvbiAyNTMxNzApCisrKyBT
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAkod29ya2luZyBjb3B5KQpAQCAt
MTQ5LDYgKzE0OSwxMCBAQCBPQkpDX0NMQVNTIF9XS1JlbW90ZU9iamVjdFJlZ2lzdHJ5OwogI2lu
Y2x1ZGUgIlNPQXV0aG9yaXphdGlvbkxvYWRQb2xpY3kuaCIKICNlbmRpZgogCisjaWYgUExBVEZP
Uk0oSU9TX0ZBTUlMWSkgJiYgRU5BQkxFKERFVklDRV9PUklFTlRBVElPTikKKyNpbmNsdWRlICJX
ZWJEZXZpY2VPcmllbnRhdGlvblVwZGF0ZVByb3ZpZGVyUHJveHkuaCIKKyNlbmRpZgorCiAjaWYg
RU5BQkxFKE1FRElBX1NFU1NJT04pCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBNZWRpYVNl
c3Npb25NZXRhZGF0YTsKQEAgLTI2MjksNiArMjYzMywxMCBAQCBwcml2YXRlOgogICAgIGJvb2wg
bV9pc1F1b3RhSW5jcmVhc2VEZW5pZWQgeyBmYWxzZSB9OwogICAgIAogICAgIFN0cmluZyBtX292
ZXJyaWRkZW5NZWRpYVR5cGU7CisgICAgICAgIAorI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpICYm
IEVOQUJMRShERVZJQ0VfT1JJRU5UQVRJT04pCisgICAgV2ViRGV2aWNlT3JpZW50YXRpb25VcGRh
dGVQcm92aWRlclByb3h5IG1fd2ViRGV2aWNlT3JpZW50YXRpb25VcGRhdGVQcm92aWRlclByb3h5
OworI2VuZGlmCiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKSW5kZXg6IFNvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL2lvcy9XZWJEZXZpY2VPcmllbnRhdGlvblVwZGF0ZVByb3ZpZGVyUHJveHku
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV2ViRGV2aWNlT3Jp
ZW50YXRpb25VcGRhdGVQcm92aWRlclByb3h5LmgJKG5vbmV4aXN0ZW50KQorKysgU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvaW9zL1dlYkRldmljZU9yaWVudGF0aW9uVXBkYXRlUHJvdmlkZXJQcm94
eS5oCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNTcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9S
UyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09O
VFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21h
IG9uY2UKKworI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpICYmIEVOQUJMRShERVZJQ0VfT1JJRU5U
QVRJT04pCisKKyNpbmNsdWRlICJNZXNzYWdlUmVjZWl2ZXIuaCIKKyNpbmNsdWRlIDxXZWJDb3Jl
L01vdGlvbk1hbmFnZXJDbGllbnQuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIFdl
YlBhZ2VQcm94eTsKKworY2xhc3MgV2ViRGV2aWNlT3JpZW50YXRpb25VcGRhdGVQcm92aWRlclBy
b3h5IDogcHVibGljIFdlYkNvcmU6Ok1vdGlvbk1hbmFnZXJDbGllbnQsIHByaXZhdGUgSVBDOjpN
ZXNzYWdlUmVjZWl2ZXIgeworcHVibGljOgorICAgIFdlYkRldmljZU9yaWVudGF0aW9uVXBkYXRl
UHJvdmlkZXJQcm94eShXZWJQYWdlUHJveHkmKTsKKyAgICB+V2ViRGV2aWNlT3JpZW50YXRpb25V
cGRhdGVQcm92aWRlclByb3h5KCk7CisKKyAgICB2b2lkIHN0YXJ0VXBkYXRpbmdEZXZpY2VPcmll
bnRhdGlvbigpOworICAgIHZvaWQgc3RvcFVwZGF0aW5nRGV2aWNlT3JpZW50YXRpb24oKTsKKyAg
ICAKK3ByaXZhdGU6CisgICAgLy8gV2ViQ29yZTo6V2ViQ29yZU1vdGlvbk1hbmFnZXJDbGllbnQK
KyAgICB2b2lkIG9yaWVudGF0aW9uQ2hhbmdlZChkb3VibGUsIGRvdWJsZSwgZG91YmxlLCBkb3Vi
bGUsIGRvdWJsZSkgZmluYWw7CisgICAgCisgICAgLy8gSVBDOjpNZXNzYWdlUmVjZWl2ZXIuCisg
ICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXIm
KSBvdmVycmlkZTsKKworICAgIFdlYlBhZ2VQcm94eSYgbV9wYWdlOworfTsKKworfSAvLyBuYW1l
c3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBQTEFURk9STShJT1NfRkFNSUxZKSAmJiBFTkFCTEUo
REVWSUNFX09SSUVOVEFUSU9OKQpJbmRleDogU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dl
YkRldmljZU9yaWVudGF0aW9uVXBkYXRlUHJvdmlkZXJQcm94eS5tZXNzYWdlcy5pbgo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV2ViRGV2aWNlT3JpZW50YXRpb25V
cGRhdGVQcm92aWRlclByb3h5Lm1lc3NhZ2VzLmluCShub25leGlzdGVudCkKKysrIFNvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL2lvcy9XZWJEZXZpY2VPcmllbnRhdGlvblVwZGF0ZVByb3ZpZGVyUHJv
eHkubWVzc2FnZXMuaW4JKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwyOCBAQAorIyBDb3B5cmln
aHQgKEMpIDIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIworIyBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisjIGFyZSBtZXQ6CisjIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorIyAy
LiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyMgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyMgICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisjCisjIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9S
UyBgYEFTIElTJycgQU5ECisjIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisjIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUK
KyMgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJ
QlVUT1JTIEJFIExJQUJMRSBGT1IKKyMgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTAorIyBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBP
UgorIyBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
IElOVEVSUlVQVElPTikgSE9XRVZFUgorIyBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLAorIyBPUiBUT1JU
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRQorIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkg
JiYgRU5BQkxFKERFVklDRV9PUklFTlRBVElPTikKK21lc3NhZ2VzIC0+IFdlYkRldmljZU9yaWVu
dGF0aW9uVXBkYXRlUHJvdmlkZXJQcm94eSBOb3RSZWZDb3VudGVkIHsKKyAgICBTdGFydFVwZGF0
aW5nRGV2aWNlT3JpZW50YXRpb24oKTsKKyAgICBTdG9wVXBkYXRpbmdEZXZpY2VPcmllbnRhdGlv
bigpOworfQorI2VuZGlmCkluZGV4OiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV2ViRGV2
aWNlT3JpZW50YXRpb25VcGRhdGVQcm92aWRlclByb3h5Lm1tCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XZWJEZXZpY2VPcmllbnRhdGlvblVwZGF0ZVByb3ZpZGVy
UHJveHkubW0JKG5vbmV4aXN0ZW50KQorKysgU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dl
YkRldmljZU9yaWVudGF0aW9uVXBkYXRlUHJvdmlkZXJQcm94eS5tbQkod29ya2luZyBjb3B5KQpA
QCAtMCwwICsxLDY3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE5IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2ltcG9ydCAiY29uZmlnLmgiCisjaW1wb3J0
ICJXZWJEZXZpY2VPcmllbnRhdGlvblVwZGF0ZVByb3ZpZGVyUHJveHkuaCIKKworI2lmIFBMQVRG
T1JNKElPU19GQU1JTFkpICYmIEVOQUJMRShERVZJQ0VfT1JJRU5UQVRJT04pCisKKyNpbXBvcnQg
IldlYkRldmljZU9yaWVudGF0aW9uVXBkYXRlUHJvdmlkZXJNZXNzYWdlcy5oIgorI2ltcG9ydCAi
V2ViRGV2aWNlT3JpZW50YXRpb25VcGRhdGVQcm92aWRlclByb3h5TWVzc2FnZXMuaCIKKyNpbXBv
cnQgIldlYlBhZ2VQcm94eS5oIgorI2ltcG9ydCAiV2ViUHJvY2Vzc1Byb3h5LmgiCisjaW1wb3J0
IDxXZWJDb3JlL1dlYkNvcmVNb3Rpb25NYW5hZ2VyLmg+CisKK25hbWVzcGFjZSBXZWJLaXQgewor
CitXZWJEZXZpY2VPcmllbnRhdGlvblVwZGF0ZVByb3ZpZGVyUHJveHk6OldlYkRldmljZU9yaWVu
dGF0aW9uVXBkYXRlUHJvdmlkZXJQcm94eShXZWJQYWdlUHJveHkmIHBhZ2UpCisgICAgOiBtX3Bh
Z2UocGFnZSkKK3sKKyAgICBtX3BhZ2UucHJvY2VzcygpLmFkZE1lc3NhZ2VSZWNlaXZlcihNZXNz
YWdlczo6V2ViRGV2aWNlT3JpZW50YXRpb25VcGRhdGVQcm92aWRlclByb3h5OjptZXNzYWdlUmVj
ZWl2ZXJOYW1lKCksIG1fcGFnZS53ZWJQYWdlSUQoKSwgKnRoaXMpOworfQorCitXZWJEZXZpY2VP
cmllbnRhdGlvblVwZGF0ZVByb3ZpZGVyUHJveHk6On5XZWJEZXZpY2VPcmllbnRhdGlvblVwZGF0
ZVByb3ZpZGVyUHJveHkoKQoreworICAgIG1fcGFnZS5wcm9jZXNzKCkucmVtb3ZlTWVzc2FnZVJl
Y2VpdmVyKE1lc3NhZ2VzOjpXZWJEZXZpY2VPcmllbnRhdGlvblVwZGF0ZVByb3ZpZGVyUHJveHk6
Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSwgbV9wYWdlLndlYlBhZ2VJRCgpKTsKK30KKwordm9pZCBX
ZWJEZXZpY2VPcmllbnRhdGlvblVwZGF0ZVByb3ZpZGVyUHJveHk6OnN0YXJ0VXBkYXRpbmdEZXZp
Y2VPcmllbnRhdGlvbigpCit7CisgICAgW1tXZWJDb3JlTW90aW9uTWFuYWdlciBzaGFyZWRNYW5h
Z2VyXSBhZGRPcmllbnRhdGlvbkNsaWVudDp0aGlzXTsKK30KKwordm9pZCBXZWJEZXZpY2VPcmll
bnRhdGlvblVwZGF0ZVByb3ZpZGVyUHJveHk6OnN0b3BVcGRhdGluZ0RldmljZU9yaWVudGF0aW9u
KCkKK3sKKyAgICBbW1dlYkNvcmVNb3Rpb25NYW5hZ2VyIHNoYXJlZE1hbmFnZXJdIHJlbW92ZU9y
aWVudGF0aW9uQ2xpZW50OnRoaXNdOworfQorCit2b2lkIFdlYkRldmljZU9yaWVudGF0aW9uVXBk
YXRlUHJvdmlkZXJQcm94eTo6b3JpZW50YXRpb25DaGFuZ2VkKGRvdWJsZSBhbHBoYSwgZG91Ymxl
IGJldGEsIGRvdWJsZSBnYW1tYSwgZG91YmxlIGNvbXBhc3NIZWFkaW5nLCBkb3VibGUgY29tcGFz
c0FjY3VyYWN5KQoreworICAgIG1fcGFnZS5zZW5kKE1lc3NhZ2VzOjpXZWJEZXZpY2VPcmllbnRh
dGlvblVwZGF0ZVByb3ZpZGVyOjpEZXZpY2VPcmllbnRhdGlvbkNoYW5nZWQoYWxwaGEsIGJldGEs
IGdhbW1hLCBjb21wYXNzSGVhZGluZywgY29tcGFzc0FjY3VyYWN5KSk7Cit9CisKK30gLy8gbmFt
ZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gUExBVEZPUk0oSU9TX0ZBTUlMWSkKSW5kZXg6IFNv
dXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkocmV2aXNp
b24gMjUzMTcwKQorKysgU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagkod29ya2luZyBjb3B5KQpAQCAtMTY5Niw2ICsxNjk2LDE0IEBACiAJCUUxRDI2QTUzMTc1
OTY0RDkwMDk1QkZEMSAvKiBXZWJDb250ZW50UHJvY2Vzcy54aWIgaW4gUmVzb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxRDI2QTRDMTc1OTYzNEUwMDk1QkZEMSAv
KiBXZWJDb250ZW50UHJvY2Vzcy54aWIgKi87IH07CiAJCUUxRTU1MkM1MTZBRTA2NUYwMDRFRDY1
MyAvKiBTYW5kYm94SW5pdGlhbGl6YXRpb25QYXJhbWV0ZXJzLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMUU1NTJDMzE2QUUwNjVFMDA0RUQ2NTMgLyog
U2FuZGJveEluaXRpYWxpemF0aW9uUGFyYW1ldGVycy5oICovOyB9OwogCQlFMUVFNTNFMzExRjhD
RkMwMDBDQ0JFRTQgLyogSW5qZWN0ZWRCdW5kbGVQYWdlRWRpdG9yQ2xpZW50LmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMUVFNTNEQzExRjhDRjlGMDBD
Q0JFRTQgLyogSW5qZWN0ZWRCdW5kbGVQYWdlRWRpdG9yQ2xpZW50LmggKi87IH07CisJCUUzODY2
QUU1MjM5NzQwMDQwMEY4OEZFOSAvKiBXZWJEZXZpY2VPcmllbnRhdGlvblVwZGF0ZVByb3ZpZGVy
UHJveHkubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBF
Mzg2NkFFNDIzOTc0MDA0MDBGODhGRTkgLyogV2ViRGV2aWNlT3JpZW50YXRpb25VcGRhdGVQcm92
aWRlclByb3h5Lm1tICovOyB9OworCQlFMzg2NkFFNzIzOTc0MDUzMDBGODhGRTkgLyogV2ViRGV2
aWNlT3JpZW50YXRpb25VcGRhdGVQcm92aWRlclByb3h5LmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMzg2NkFFNjIzOTc0MDUzMDBGODhGRTkgLyogV2Vi
RGV2aWNlT3JpZW50YXRpb25VcGRhdGVQcm92aWRlclByb3h5LmggKi87IH07CisJCUUzODY2QjA4
MjM5OUEyRDEwMEY4OEZFOSAvKiBXZWJEZXZpY2VPcmllbnRhdGlvblVwZGF0ZVByb3ZpZGVyUHJv
eHlNZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gRTM4NjZCMDUyMzk5OTc5QzAwRjg4RkU5IC8qIFdlYkRldmljZU9yaWVudGF0aW9uVXBkYXRl
UHJvdmlkZXJQcm94eU1lc3NhZ2VzLmggKi87IH07CisJCUUzODY2QjA5MjM5OUEyRDUwMEY4OEZF
OSAvKiBXZWJEZXZpY2VPcmllbnRhdGlvblVwZGF0ZVByb3ZpZGVyUHJveHlNZXNzYWdlUmVjZWl2
ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTM4
NjZCMDQyMzk5OTc5QzAwRjg4RkU5IC8qIFdlYkRldmljZU9yaWVudGF0aW9uVXBkYXRlUHJvdmlk
ZXJQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgKi87IH07CisJCUUzODY2QjBBMjM5OUEyRDkwMEY4
OEZFOSAvKiBXZWJEZXZpY2VPcmllbnRhdGlvblVwZGF0ZVByb3ZpZGVyTWVzc2FnZXMuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUzODY2QjA3MjM5OTk3
OUQwMEY4OEZFOSAvKiBXZWJEZXZpY2VPcmllbnRhdGlvblVwZGF0ZVByb3ZpZGVyTWVzc2FnZXMu
aCAqLzsgfTsKKwkJRTM4NjZCMEIyMzk5QTJERDAwRjg4RkU5IC8qIFdlYkRldmljZU9yaWVudGF0
aW9uVXBkYXRlUHJvdmlkZXJNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTM4NjZCMDYyMzk5OTc5QzAwRjg4RkU5IC8qIFdl
YkRldmljZU9yaWVudGF0aW9uVXBkYXRlUHJvdmlkZXJNZXNzYWdlUmVjZWl2ZXIuY3BwICovOyB9
OworCQlFMzk2MjhERDIzOTYwQ0M2MDA2NThFQ0QgLyogV2ViRGV2aWNlT3JpZW50YXRpb25VcGRh
dGVQcm92aWRlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gRTM5NjI4REIyMzk2MENDNTAwNjU4RUNEIC8qIFdlYkRldmljZU9yaWVudGF0aW9uVXBkYXRl
UHJvdmlkZXIuaCAqLzsgfTsKKwkJRTM5NjI4REUyMzk2MENDNjAwNjU4RUNEIC8qIFdlYkRldmlj
ZU9yaWVudGF0aW9uVXBkYXRlUHJvdmlkZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gRTM5NjI4REMyMzk2MENDNjAwNjU4RUNEIC8qIFdlYkRldmlj
ZU9yaWVudGF0aW9uVXBkYXRlUHJvdmlkZXIuY3BwICovOyB9OwogCQlFNDEzRjU5RDFBQzFBREM0
MDAzNDUzNjAgLyogTmV0d29ya0NhY2hlRW50cnkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU0MTNGNTlCMUFDMUFEQjYwMDM0NTM2MCAvKiBOZXR3b3Jr
Q2FjaGVFbnRyeS5oICovOyB9OwogCQlFNDJFMDYxMDFBQTc1MjNCMDBCMTE2OTkgLyogTmV0d29y
a0NhY2hlSU9DaGFubmVsLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBFNDJFMDYwQjFBQTc0NDBEMDBCMTE2OTkgLyogTmV0d29ya0NhY2hlSU9DaGFubmVs
LmggKi87IH07CiAJCUU0MkUwNjEyMUFBNzVBQkQwMEIxMTY5OSAvKiBOZXR3b3JrQ2FjaGVEYXRh
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFNDJFMDYx
MTFBQTc1QUJEMDBCMTE2OTkgLyogTmV0d29ya0NhY2hlRGF0YS5oICovOyB9OwpAQCAtMTk3NSw5
ICsxOTgzLDkgQEAKIAkJCWRzdFBhdGggPSAiJChJTlNUQUxMX1BBVEgpIjsKIAkJCWRzdFN1YmZv
bGRlclNwZWMgPSAwOwogCQkJZmlsZXMgPSAoCisJCQkJMkRCOTYwNTMyMzk4ODZDMTAwMTAyNzkx
IC8qIGNvbS5hcHBsZS5XZWJLaXQuR1BVLnNiIGluIENvcHlGaWxlcyAqLywKIAkJCQlBNzhDQ0RE
QjE5M0FDOUY4MDA1RUNDMjUgLyogY29tLmFwcGxlLldlYktpdC5OZXR3b3JraW5nLnNiIGluIENv
cHlGaWxlcyAqLywKIAkJCQlBNzhDQ0REQzE5M0FDOUZCMDA1RUNDMjUgLyogY29tLmFwcGxlLldl
YktpdC5XZWJDb250ZW50LnNiIGluIENvcHlGaWxlcyAqLywKLQkJCQkyREI5NjA1MzIzOTg4NkMx
MDAxMDI3OTEgLyogY29tLmFwcGxlLldlYktpdC5HUFUuc2IgaW4gQ29weUZpbGVzICovLAogCQkJ
KTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpAQCAt
NDgwNiw2ICs0ODE0LDE2IEBACiAJCUUxRUU1M0RDMTFGOENGOUYwMENDQkVFNCAvKiBJbmplY3Rl
ZEJ1bmRsZVBhZ2VFZGl0b3JDbGllbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gSW5qZWN0ZWRCdW5kbGVQYWdlRWRpdG9yQ2xpZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCUUxRUU1M0U2MTFGOENGRkIwMENDQkVFNCAvKiBJbmplY3RlZEJ1bmRsZVBhZ2VF
ZGl0b3JDbGllbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSW5q
ZWN0ZWRCdW5kbGVQYWdlRWRpdG9yQ2xpZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJRTM0MzlCNjMyMzQ1NDYzQTAwMTFERTBCIC8qIE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlv
bkluZm8uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uSW5mby5oOyBw
YXRoID0gTmV0d29yay9OZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb25JbmZvLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCUUzODY2QUU0MjM5NzQwMDQwMEY4OEZFOSAvKiBXZWJEZXZpY2VP
cmllbnRhdGlvblVwZGF0ZVByb3ZpZGVyUHJveHkubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5vYmpjcHA7IG5hbWUgPSBXZWJEZXZpY2VPcmllbnRhdGlvblVwZGF0ZVByb3ZpZGVyUHJveHku
bW07IHBhdGggPSBpb3MvV2ViRGV2aWNlT3JpZW50YXRpb25VcGRhdGVQcm92aWRlclByb3h5Lm1t
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFMzg2NkFFNjIzOTc0MDUzMDBGODhGRTkg
LyogV2ViRGV2aWNlT3JpZW50YXRpb25VcGRhdGVQcm92aWRlclByb3h5LmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFdlYkRldmljZU9yaWVudGF0aW9uVXBkYXRlUHJvdmlkZXJQ
cm94eS5oOyBwYXRoID0gaW9zL1dlYkRldmljZU9yaWVudGF0aW9uVXBkYXRlUHJvdmlkZXJQcm94
eS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFMzg2NkFFRDIzOTg0NzFBMDBGODhG
RTkgLyogV2ViRGV2aWNlT3JpZW50YXRpb25VcGRhdGVQcm92aWRlclByb3h5Lm1lc3NhZ2VzLmlu
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gdGV4dDsgbmFtZSA9IFdlYkRldmljZU9yaWVudGF0aW9uVXBkYXRlUHJvdmlk
ZXJQcm94eS5tZXNzYWdlcy5pbjsgcGF0aCA9IGlvcy9XZWJEZXZpY2VPcmllbnRhdGlvblVwZGF0
ZVByb3ZpZGVyUHJveHkubWVzc2FnZXMuaW47IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CUUzODY2QjA0MjM5OTk3OUMwMEY4OEZFOSAvKiBXZWJEZXZpY2VPcmllbnRhdGlvblVwZGF0ZVBy
b3ZpZGVyUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBuYW1lID0gV2ViRGV2aWNlT3JpZW50YXRpb25VcGRhdGVQcm92aWRlclByb3h5TWVzc2Fn
ZVJlY2VpdmVyLmNwcDsgcGF0aCA9IERlcml2ZWRTb3VyY2VzL1dlYktpdDIvV2ViRGV2aWNlT3Jp
ZW50YXRpb25VcGRhdGVQcm92aWRlclByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcDsgc291cmNlVHJl
ZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsgfTsKKwkJRTM4NjZCMDUyMzk5OTc5QzAwRjg4RkU5IC8q
IFdlYkRldmljZU9yaWVudGF0aW9uVXBkYXRlUHJvdmlkZXJQcm94eU1lc3NhZ2VzLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFdlYkRldmljZU9yaWVudGF0aW9uVXBkYXRlUHJv
dmlkZXJQcm94eU1lc3NhZ2VzLmg7IHBhdGggPSBEZXJpdmVkU291cmNlcy9XZWJLaXQyL1dlYkRl
dmljZU9yaWVudGF0aW9uVXBkYXRlUHJvdmlkZXJQcm94eU1lc3NhZ2VzLmg7IHNvdXJjZVRyZWUg
PSBCVUlMVF9QUk9EVUNUU19ESVI7IH07CisJCUUzODY2QjA2MjM5OTk3OUMwMEY4OEZFOSAvKiBX
ZWJEZXZpY2VPcmllbnRhdGlvblVwZGF0ZVByb3ZpZGVyTWVzc2FnZVJlY2VpdmVyLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IFdlYkRldmljZU9yaWVudGF0aW9uVXBk
YXRlUHJvdmlkZXJNZXNzYWdlUmVjZWl2ZXIuY3BwOyBwYXRoID0gRGVyaXZlZFNvdXJjZXMvV2Vi
S2l0Mi9XZWJEZXZpY2VPcmllbnRhdGlvblVwZGF0ZVByb3ZpZGVyTWVzc2FnZVJlY2VpdmVyLmNw
cDsgc291cmNlVHJlZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsgfTsKKwkJRTM4NjZCMDcyMzk5OTc5
RDAwRjg4RkU5IC8qIFdlYkRldmljZU9yaWVudGF0aW9uVXBkYXRlUHJvdmlkZXJNZXNzYWdlcy5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBXZWJEZXZpY2VPcmllbnRhdGlvblVw
ZGF0ZVByb3ZpZGVyTWVzc2FnZXMuaDsgcGF0aCA9IERlcml2ZWRTb3VyY2VzL1dlYktpdDIvV2Vi
RGV2aWNlT3JpZW50YXRpb25VcGRhdGVQcm92aWRlck1lc3NhZ2VzLmg7IHNvdXJjZVRyZWUgPSBC
VUlMVF9QUk9EVUNUU19ESVI7IH07CisJCUUzOTYyOERCMjM5NjBDQzUwMDY1OEVDRCAvKiBXZWJE
ZXZpY2VPcmllbnRhdGlvblVwZGF0ZVByb3ZpZGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IFdlYkRldmljZU9yaWVudGF0aW9uVXBkYXRlUHJvdmlkZXIuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTM5NjI4REMyMzk2MENDNjAwNjU4RUNEIC8qIFdlYkRldmlj
ZU9yaWVudGF0aW9uVXBkYXRlUHJvdmlkZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gV2ViRGV2aWNlT3JpZW50YXRpb25VcGRhdGVQcm92aWRlci5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUUzOTYyOEU0MjM5NzFGMzQwMDY1OEVDRCAvKiBXZWJE
ZXZpY2VPcmllbnRhdGlvblVwZGF0ZVByb3ZpZGVyLm1lc3NhZ2VzLmluICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4
dDsgcGF0aCA9IFdlYkRldmljZU9yaWVudGF0aW9uVXBkYXRlUHJvdmlkZXIubWVzc2FnZXMuaW47
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUU0MDQ5MDcwMjFERTY1RjcwMDM3RjBEQiAv
KiBTY3JvbGxlclBhaXJNYWMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU2Ny
b2xsZXJQYWlyTWFjLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUU0MDQ5MDcxMjFE
RTY1RjcwMDM3RjBEQiAvKiBTY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlUmVtb3RlTWFj
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNjcm9sbGluZ1RyZWVG
cmFtZVNjcm9sbGluZ05vZGVSZW1vdGVNYWMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQlFNDA0OTA3MjIxREU2NUY3MDAzN0YwREIgLyogU2Nyb2xsZXJQYWlyTWFjLm1tICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gU2Nyb2xsZXJQYWlyTWFjLm1tOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNTkyMyw2ICs1OTQxLDkgQEAKIAkJCWlzYSA9
IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCiAJCQkJMkQyOEYzRTAxODg1Q0NDMTAwNEI5RUFF
IC8qIFdlYkNocm9tZUNsaWVudElPUy5tbSAqLywKKwkJCQlFMzk2MjhEQzIzOTYwQ0M2MDA2NThF
Q0QgLyogV2ViRGV2aWNlT3JpZW50YXRpb25VcGRhdGVQcm92aWRlci5jcHAgKi8sCisJCQkJRTM5
NjI4REIyMzk2MENDNTAwNjU4RUNEIC8qIFdlYkRldmljZU9yaWVudGF0aW9uVXBkYXRlUHJvdmlk
ZXIuaCAqLywKKwkJCQlFMzk2MjhFNDIzOTcxRjM0MDA2NThFQ0QgLyogV2ViRGV2aWNlT3JpZW50
YXRpb25VcGRhdGVQcm92aWRlci5tZXNzYWdlcy5pbiAqLywKIAkJCQkyRDI4RjNFMjE4ODVDQ0Mx
MDA0QjlFQUUgLyogV2ViRWRpdG9yQ2xpZW50SU9TLm1tICovLAogCQkJCTJEMjhGM0UzMTg4NUND
QzEwMDRCOUVBRSAvKiBXZWJGcmFtZUxvYWRlckNsaWVudElPUy5tbSAqLywKIAkJCQlBMUM1MTJD
NjE5MDY1NkU1MDA0NDg5MTQgLyogV2ViUHJldmlld0xvYWRlckNsaWVudC5jcHAgKi8sCkBAIC02
MzEwLDYgKzYzMzEsOSBAQAogCQkJCTJERjk1OTM0MThBNDI0MTIwMDk3ODVBMSAvKiBWaWV3R2Vz
dHVyZUNvbnRyb2xsZXJJT1MubW0gKi8sCiAJCQkJRTVCRUY2ODAyMTMwQzQ3RjAwRjMxMTExIC8q
IFdlYkRhdGFMaXN0U3VnZ2VzdGlvbnNEcm9wZG93bklPUy5oICovLAogCQkJCUU1QkVGNjgxMjEz
MEM0N0YwMEYzMTExMSAvKiBXZWJEYXRhTGlzdFN1Z2dlc3Rpb25zRHJvcGRvd25JT1MubW0gKi8s
CisJCQkJRTM4NjZBRTYyMzk3NDA1MzAwRjg4RkU5IC8qIFdlYkRldmljZU9yaWVudGF0aW9uVXBk
YXRlUHJvdmlkZXJQcm94eS5oICovLAorCQkJCUUzODY2QUVEMjM5ODQ3MUEwMEY4OEZFOSAvKiBX
ZWJEZXZpY2VPcmllbnRhdGlvblVwZGF0ZVByb3ZpZGVyUHJveHkubWVzc2FnZXMuaW4gKi8sCisJ
CQkJRTM4NjZBRTQyMzk3NDAwNDAwRjg4RkU5IC8qIFdlYkRldmljZU9yaWVudGF0aW9uVXBkYXRl
UHJvdmlkZXJQcm94eS5tbSAqLywKIAkJCQkyREE5NDRBQjE4ODRFOUJBMDBFRDg2REIgLyogV2Vi
UGFnZVByb3h5SU9TLm1tICovLAogCQkJCTJEQTk0NEFDMTg4NEU5QkEwMEVEODZEQiAvKiBXZWJQ
cm9jZXNzUHJveHlJT1MubW0gKi8sCiAJCQkJMEZDQjRFMzgxOEJCRTA0NDAwMEZDRkM5IC8qIFdL
QWN0aW9uU2hlZXQuaCAqLywKQEAgLTkxNDgsNiArOTE3MiwxMCBAQAogCQkJCTMzMDkzNDQ0MTMx
NUI5MjIwMDk3QTdCQyAvKiBXZWJDb29raWVNYW5hZ2VyTWVzc2FnZXMuaCAqLywKIAkJCQkzMzA5
MzQ0NTEzMTVCOTIyMDA5N0E3QkMgLyogV2ViQ29va2llTWFuYWdlclByb3h5TWVzc2FnZVJlY2Vp
dmVyLmNwcCAqLywKIAkJCQkzMzA5MzQ0NjEzMTVCOTIyMDA5N0E3QkMgLyogV2ViQ29va2llTWFu
YWdlclByb3h5TWVzc2FnZXMuaCAqLywKKwkJCQlFMzg2NkIwNjIzOTk5NzlDMDBGODhGRTkgLyog
V2ViRGV2aWNlT3JpZW50YXRpb25VcGRhdGVQcm92aWRlck1lc3NhZ2VSZWNlaXZlci5jcHAgKi8s
CisJCQkJRTM4NjZCMDcyMzk5OTc5RDAwRjg4RkU5IC8qIFdlYkRldmljZU9yaWVudGF0aW9uVXBk
YXRlUHJvdmlkZXJNZXNzYWdlcy5oICovLAorCQkJCUUzODY2QjA0MjM5OTk3OUMwMEY4OEZFOSAv
KiBXZWJEZXZpY2VPcmllbnRhdGlvblVwZGF0ZVByb3ZpZGVyUHJveHlNZXNzYWdlUmVjZWl2ZXIu
Y3BwICovLAorCQkJCUUzODY2QjA1MjM5OTk3OUMwMEY4OEZFOSAvKiBXZWJEZXZpY2VPcmllbnRh
dGlvblVwZGF0ZVByb3ZpZGVyUHJveHlNZXNzYWdlcy5oICovLAogCQkJCUNENzNCQTQ4MTMxQUNE
OEUwMEVFREVEMiAvKiBXZWJGdWxsU2NyZWVuTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAgKi8s
CiAJCQkJQ0Q3M0JBNDkxMzFBQ0Q4RTAwRUVERUQyIC8qIFdlYkZ1bGxTY3JlZW5NYW5hZ2VyTWVz
c2FnZXMuaCAqLywKIAkJCQlDRDczQkE0NTEzMUFDQzg4MDBFRURFRDIgLyogV2ViRnVsbFNjcmVl
bk1hbmFnZXJQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgKi8sCkBAIC0xMDEzNSw2ICsxMDE2Mywx
MCBAQAogCQkJCUU1QkVGNjgyMjEzMEM0ODAwMEYzMTExMSAvKiBXZWJEYXRhTGlzdFN1Z2dlc3Rp
b25zRHJvcGRvd25JT1MuaCBpbiBIZWFkZXJzICovLAogCQkJCUU1NjhCOTIyMjBBM0FDNkEwMEUz
Qzg1NiAvKiBXZWJEYXRhTGlzdFN1Z2dlc3Rpb25zRHJvcGRvd25NYWMuaCBpbiBIZWFkZXJzICov
LAogCQkJCTQ2QjA1MjQ3MjI2NjhEODUwMDI2NUI5NyAvKiBXZWJEZXZpY2VPcmllbnRhdGlvbkFu
ZE1vdGlvbkFjY2Vzc0NvbnRyb2xsZXIuaCBpbiBIZWFkZXJzICovLAorCQkJCUUzOTYyOEREMjM5
NjBDQzYwMDY1OEVDRCAvKiBXZWJEZXZpY2VPcmllbnRhdGlvblVwZGF0ZVByb3ZpZGVyLmggaW4g
SGVhZGVycyAqLywKKwkJCQlFMzg2NkIwQTIzOTlBMkQ5MDBGODhGRTkgLyogV2ViRGV2aWNlT3Jp
ZW50YXRpb25VcGRhdGVQcm92aWRlck1lc3NhZ2VzLmggaW4gSGVhZGVycyAqLywKKwkJCQlFMzg2
NkFFNzIzOTc0MDUzMDBGODhGRTkgLyogV2ViRGV2aWNlT3JpZW50YXRpb25VcGRhdGVQcm92aWRl
clByb3h5LmggaW4gSGVhZGVycyAqLywKKwkJCQlFMzg2NkIwODIzOTlBMkQxMDBGODhGRTkgLyog
V2ViRGV2aWNlT3JpZW50YXRpb25VcGRhdGVQcm92aWRlclByb3h5TWVzc2FnZXMuaCBpbiBIZWFk
ZXJzICovLAogCQkJCUNEMTlBMjZFMUExM0U4MzQwMDhENjUwRSAvKiBXZWJEaWFnbm9zdGljTG9n
Z2luZ0NsaWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUE1QjFDNTUxODk4N0VERjAwNEZDRjlC
IC8qIFdlYkRvY3VtZW50TG9hZGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzAzMkQ3QjEwRjQz
NzhEMDA1OEMxNUEgLyogV2ViRHJhZ0NsaWVudC5oIGluIEhlYWRlcnMgKi8sCkBAIC0xMTgyOCw2
ICsxMTg2MCwxMCBAQAogCQkJCTMzMDkzNDQ3MTMxNUI5MjIwMDk3QTdCQyAvKiBXZWJDb29raWVN
YW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTMzMDkzNDQ5MTMx
NUI5MjIwMDk3QTdCQyAvKiBXZWJDb29raWVNYW5hZ2VyUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJMkQ5MkE3ODgyMTJCNkFCMTAwRjQ5M0ZEIC8qIFdlYkNvcmVB
cmd1bWVudENvZGVycy5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlFMzk2MjhERTIzOTYwQ0M2MDA2
NThFQ0QgLyogV2ViRGV2aWNlT3JpZW50YXRpb25VcGRhdGVQcm92aWRlci5jcHAgaW4gU291cmNl
cyAqLywKKwkJCQlFMzg2NkIwQjIzOTlBMkREMDBGODhGRTkgLyogV2ViRGV2aWNlT3JpZW50YXRp
b25VcGRhdGVQcm92aWRlck1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlF
Mzg2NkFFNTIzOTc0MDA0MDBGODhGRTkgLyogV2ViRGV2aWNlT3JpZW50YXRpb25VcGRhdGVQcm92
aWRlclByb3h5Lm1tIGluIFNvdXJjZXMgKi8sCisJCQkJRTM4NjZCMDkyMzk5QTJENTAwRjg4RkU5
IC8qIFdlYkRldmljZU9yaWVudGF0aW9uVXBkYXRlUHJvdmlkZXJQcm94eU1lc3NhZ2VSZWNlaXZl
ci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkyRDkyQTc4OTIxMkI2QUIxMDBGNDkzRkQgLyogV2Vi
RXZlbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQ0Q3M0JBNEUxMzFBQ0RCNzAwRUVERUQyIC8q
IFdlYkZ1bGxTY3JlZW5NYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCUNENzNCQTQ3MTMxQUNDOUEwMEVFREVEMiAvKiBXZWJGdWxsU2NyZWVuTWFuYWdlclByb3h5
TWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLApJbmRleDogU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkRldmljZU9yaWVudGF0aW9uVXBkYXRlUHJvdmlk
ZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC9XZWJEZXZpY2VPcmllbnRhdGlvblVwZGF0ZVByb3ZpZGVyLmNwcAkobm9uZXhpc3RlbnQp
CisrKyBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRGV2aWNlT3Jp
ZW50YXRpb25VcGRhdGVQcm92aWRlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw3NSBA
QAorLyoKKyogQ29weXJpZ2h0IChDKSAyMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyoKKyogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworKiBhcmUgbWV0OgorKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyoKKyogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJworKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyogVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
IElUUyBDT05UUklCVVRPUlMKKyogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorKiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorKiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MKKyogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyogQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRgorKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisqLworCisjaW5jbHVk
ZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV2ViRGV2aWNlT3JpZW50YXRpb25VcGRhdGVQcm92aWRl
ci5oIgorCisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkgJiYgRU5BQkxFKERFVklDRV9PUklFTlRB
VElPTikKKworI2luY2x1ZGUgIldlYkRldmljZU9yaWVudGF0aW9uVXBkYXRlUHJvdmlkZXJNZXNz
YWdlcy5oIgorI2luY2x1ZGUgIldlYkRldmljZU9yaWVudGF0aW9uVXBkYXRlUHJvdmlkZXJQcm94
eU1lc3NhZ2VzLmgiCisjaW5jbHVkZSAiV2ViUGFnZS5oIgorI2luY2x1ZGUgIldlYlByb2Nlc3Mu
aCIKKworI2luY2x1ZGUgPFdlYkNvcmUvTW90aW9uTWFuYWdlckNsaWVudC5oPgorCituYW1lc3Bh
Y2UgV2ViS2l0IHsKKworV2ViRGV2aWNlT3JpZW50YXRpb25VcGRhdGVQcm92aWRlcjo6V2ViRGV2
aWNlT3JpZW50YXRpb25VcGRhdGVQcm92aWRlcihXZWJQYWdlJiBwYWdlKQorICAgIDogbV9wYWdl
KG1ha2VXZWFrUHRyKHBhZ2UpKQoreworICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmFkZE1l
c3NhZ2VSZWNlaXZlcihNZXNzYWdlczo6V2ViRGV2aWNlT3JpZW50YXRpb25VcGRhdGVQcm92aWRl
cjo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpLCBwYWdlLmlkZW50aWZpZXIoKSwgKnRoaXMpOworfQor
CitXZWJEZXZpY2VPcmllbnRhdGlvblVwZGF0ZVByb3ZpZGVyOjp+V2ViRGV2aWNlT3JpZW50YXRp
b25VcGRhdGVQcm92aWRlcigpCit7CisgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkucmVtb3Zl
TWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2VzOjpXZWJEZXZpY2VPcmllbnRhdGlvblVwZGF0ZVByb3Zp
ZGVyOjptZXNzYWdlUmVjZWl2ZXJOYW1lKCkpOworfQorCit2b2lkIFdlYkRldmljZU9yaWVudGF0
aW9uVXBkYXRlUHJvdmlkZXI6OnN0YXJ0VXBkYXRpbmcoV2ViQ29yZTo6TW90aW9uTWFuYWdlckNs
aWVudCYgY2xpZW50KQoreworICAgIGlmIChtX2NsaWVudHMuaXNFbXB0eSgpICYmIG1fcGFnZSkK
KyAgICAgICAgbV9wYWdlLT5zZW5kKE1lc3NhZ2VzOjpXZWJEZXZpY2VPcmllbnRhdGlvblVwZGF0
ZVByb3ZpZGVyUHJveHk6OlN0YXJ0VXBkYXRpbmdEZXZpY2VPcmllbnRhdGlvbigpKTsKKyAgICBt
X2NsaWVudHMuYWRkKCZjbGllbnQpOworfQorCit2b2lkIFdlYkRldmljZU9yaWVudGF0aW9uVXBk
YXRlUHJvdmlkZXI6OnN0b3BVcGRhdGluZyhXZWJDb3JlOjpNb3Rpb25NYW5hZ2VyQ2xpZW50JiBj
bGllbnQpCit7CisgICAgaWYgKG1fY2xpZW50cy5pc0VtcHR5KCkpCisgICAgICAgIHJldHVybjsK
KyAgICBtX2NsaWVudHMucmVtb3ZlKCZjbGllbnQpOworICAgIGlmIChtX2NsaWVudHMuaXNFbXB0
eSgpICYmIG1fcGFnZSkKKyAgICAgICAgbV9wYWdlLT5zZW5kKE1lc3NhZ2VzOjpXZWJEZXZpY2VP
cmllbnRhdGlvblVwZGF0ZVByb3ZpZGVyUHJveHk6OlN0b3BVcGRhdGluZ0RldmljZU9yaWVudGF0
aW9uKCkpOworfQorCit2b2lkIFdlYkRldmljZU9yaWVudGF0aW9uVXBkYXRlUHJvdmlkZXI6OmRl
dmljZU9yaWVudGF0aW9uQ2hhbmdlZChkb3VibGUgYWxwaGEsIGRvdWJsZSBiZXRhLCBkb3VibGUg
Z2FtbWEsIGRvdWJsZSBjb21wYXNzSGVhZGluZywgZG91YmxlIGNvbXBhc3NBY2N1cmFjeSkKK3sK
KyAgICBmb3IgKGF1dG8qIGNsaWVudCA6IGNvcHlUb1ZlY3RvcihtX2NsaWVudHMpKQorICAgICAg
ICBjbGllbnQtPm9yaWVudGF0aW9uQ2hhbmdlZChhbHBoYSwgYmV0YSwgZ2FtbWEsIGNvbXBhc3NI
ZWFkaW5nLCBjb21wYXNzQWNjdXJhY3kpOworfQorCit9CisKKyNlbmRpZiAvLyBQTEFURk9STShJ
T1NfRkFNSUxZKSAmJiBFTkFCTEUoREVWSUNFX09SSUVOVEFUSU9OKQpJbmRleDogU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkRldmljZU9yaWVudGF0aW9uVXBkYXRl
UHJvdmlkZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29y
ZVN1cHBvcnQvV2ViRGV2aWNlT3JpZW50YXRpb25VcGRhdGVQcm92aWRlci5oCShub25leGlzdGVu
dCkKKysrIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJEZXZpY2VP
cmllbnRhdGlvblVwZGF0ZVByb3ZpZGVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw2MiBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAiTWVzc2FnZVJlY2VpdmVy
LmgiCisjaW5jbHVkZSAiV2ViUGFnZS5oIgorCisjaW5jbHVkZSA8V2ViQ29yZS9EZXZpY2VPcmll
bnRhdGlvblVwZGF0ZVByb3ZpZGVyLmg+CisKKyNpbmNsdWRlIDx3dGYvSGFzaFNldC5oPgorI2lu
Y2x1ZGUgPHd0Zi9XZWFrUHRyLmg+CisKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKSAmJiBFTkFC
TEUoREVWSUNFX09SSUVOVEFUSU9OKQorCituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3MgV2Vi
RGV2aWNlT3JpZW50YXRpb25VcGRhdGVQcm92aWRlciBmaW5hbCA6IHB1YmxpYyBXZWJDb3JlOjpE
ZXZpY2VPcmllbnRhdGlvblVwZGF0ZVByb3ZpZGVyLCBwcml2YXRlIElQQzo6TWVzc2FnZVJlY2Vp
dmVyIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmPFdlYkRldmljZU9yaWVudGF0aW9uVXBkYXRl
UHJvdmlkZXI+IGNyZWF0ZShXZWJQYWdlJiBwYWdlKSB7IHJldHVybiBhZG9wdFJlZigqbmV3IFdl
YkRldmljZU9yaWVudGF0aW9uVXBkYXRlUHJvdmlkZXIocGFnZSkpO30KKworcHJpdmF0ZToKKyAg
ICBXZWJEZXZpY2VPcmllbnRhdGlvblVwZGF0ZVByb3ZpZGVyKFdlYlBhZ2UmKTsKKyAgICB+V2Vi
RGV2aWNlT3JpZW50YXRpb25VcGRhdGVQcm92aWRlcigpOworCisgICAgLy8gV2ViQ29yZTo6RGV2
aWNlT3JpZW50YXRpb25VcGRhdGVQcm92aWRlcgorICAgIHZvaWQgc3RhcnRVcGRhdGluZyhXZWJD
b3JlOjpNb3Rpb25NYW5hZ2VyQ2xpZW50JikgZmluYWw7CisgICAgdm9pZCBzdG9wVXBkYXRpbmco
V2ViQ29yZTo6TW90aW9uTWFuYWdlckNsaWVudCYpIGZpbmFsOworICAgIHZvaWQgZGV2aWNlT3Jp
ZW50YXRpb25DaGFuZ2VkKGRvdWJsZSwgZG91YmxlLCBkb3VibGUsIGRvdWJsZSwgZG91YmxlKSBm
aW5hbDsKKworICAgIC8vIElQQzo6TWVzc2FnZVJlY2VpdmVyLgorICAgIHZvaWQgZGlkUmVjZWl2
ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJikgb3ZlcnJpZGU7CisKKyAg
ICBXZWFrUHRyPFdlYlBhZ2U+IG1fcGFnZTsKKyAgICBIYXNoU2V0PFdlYkNvcmU6Ok1vdGlvbk1h
bmFnZXJDbGllbnQqPiBtX2NsaWVudHM7Cit9OworCit9CisKKyNlbmRpZiAvLyBQTEFURk9STShJ
T1NfRkFNSUxZKSAmJiBFTkFCTEUoREVWSUNFX09SSUVOVEFUSU9OKQpJbmRleDogU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkRldmljZU9yaWVudGF0aW9uVXBkYXRl
UHJvdmlkZXIubWVzc2FnZXMuaW4KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkRldmljZU9yaWVudGF0aW9uVXBkYXRlUHJvdmlkZXIubWVz
c2FnZXMuaW4JKG5vbmV4aXN0ZW50KQorKysgU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNv
cmVTdXBwb3J0L1dlYkRldmljZU9yaWVudGF0aW9uVXBkYXRlUHJvdmlkZXIubWVzc2FnZXMuaW4J
KHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwyNyBAQAorIyBDb3B5cmlnaHQgKEMpIDIwMTkgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIworIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisjIGFyZSBtZXQ6CisjIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorIyAyLiAgUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMg
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyMgICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisjCisjIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycgQU5E
CisjIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisjIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyMgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJM
RSBGT1IKKyMgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IgQ09OU0VRVUVOVElBTAorIyBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUgorIyBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikg
SE9XRVZFUgorIyBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLAorIyBPUiBUT1JUIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQor
IyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorCisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkgJiYgRU5BQkxFKERFVklD
RV9PUklFTlRBVElPTikKK21lc3NhZ2VzIC0+IFdlYkRldmljZU9yaWVudGF0aW9uVXBkYXRlUHJv
dmlkZXIgeworICAgIERldmljZU9yaWVudGF0aW9uQ2hhbmdlZChkb3VibGUgYWxwaGEsIGRvdWJs
ZSBiZXRhLCBkb3VibGUgZ2FtbWEsIGRvdWJsZSBjb21wYXNzSGVhZGluZywgZG91YmxlIGNvbXBh
c3NBY2N1cmFjeSkKK30KKyNlbmRpZgpJbmRleDogU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YlBhZ2UvV2ViUGFnZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYlBhZ2UvV2ViUGFnZS5jcHAJKHJldmlzaW9uIDI1MzE3MCkKKysrIFNvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMDcsNiAr
MzA3LDEwIEBACiAjaW5jbHVkZSA8V2ViQ29yZS9BdXRoZW50aWNhdG9yQ29vcmRpbmF0b3IuaD4K
ICNlbmRpZgogCisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkgJiYgRU5BQkxFKERFVklDRV9PUklF
TlRBVElPTikKKyNpbmNsdWRlICJXZWJEZXZpY2VPcmllbnRhdGlvblVwZGF0ZVByb3ZpZGVyLmgi
CisjZW5kaWYKKwogbmFtZXNwYWNlIFdlYktpdCB7CiB1c2luZyBuYW1lc3BhY2UgSlNDOwogdXNp
bmcgbmFtZXNwYWNlIFdlYkNvcmU7CkBAIC01MDEsNiArNTA1LDEwIEBAIFdlYlBhZ2U6OldlYlBh
Z2UoUGFnZUlkZW50aWZpZXIgcGFnZUlELCAKICNpZiBFTkFCTEUoQVBQTElDQVRJT05fTUFOSUZF
U1QpCiAgICAgcGFnZUNvbmZpZ3VyYXRpb24uYXBwbGljYXRpb25NYW5pZmVzdCA9IHBhcmFtZXRl
cnMuYXBwbGljYXRpb25NYW5pZmVzdDsKICNlbmRpZgorICAgIAorI2lmIFBMQVRGT1JNKElPU19G
QU1JTFkpICYmIEVOQUJMRShERVZJQ0VfT1JJRU5UQVRJT04pCisgICAgcGFnZUNvbmZpZ3VyYXRp
b24uZGV2aWNlT3JpZW50YXRpb25VcGRhdGVQcm92aWRlciA9IFdlYkRldmljZU9yaWVudGF0aW9u
VXBkYXRlUHJvdmlkZXI6OmNyZWF0ZSgqdGhpcyk7CisjZW5kaWYKIAogICAgIG1fcGFnZSA9IG1h
a2VVbmlxdWU8UGFnZT4oV1RGTW92ZShwYWdlQ29uZmlndXJhdGlvbikpOwogCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>384965</attachid>
            <date>2019-12-05 14:58:55 -0800</date>
            <delta_ts>2019-12-06 14:36:48 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-204720-20191205145854.patch</filename>
            <type>text/plain</type>
            <size>60743</size>
            <attacher name="Per Arne Vollan">pvollan</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDI1MzE3MykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQ0IEBACisyMDE5LTEyLTA1ICBQZXIgQXJu
ZSBWb2xsYW4gIDxwdm9sbGFuQGFwcGxlLmNvbT4KKworICAgICAgICBbaU9TXSBDYWxscyB0byBk
ZXZpY2Ugb3JpZW50YXRpb24gQVBJIHNob3VsZCBiZSBkb25lIGluIHRoZSBVSSBwcm9jZXNzCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDQ3MjAKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGUgZGV2aWNl
IG9yaWVudGF0aW9uIEFQSSBvbiBpT1MgaXMgY29tbXVuaWNhdGluZyB3aXRoIGxvY2F0aW9uZC4g
U2luY2UgbWFjaCBsb29rdXAgdG8gdGhpcyBkYWVtb24KKyAgICAgICAgd2lsbCBiZSBjbG9zZWQs
IHRoZSBjYWxscyB0byB0aGlzIEFQSSBzaG91bGQgYmUgbW92ZWQgZnJvbSB0aGUgV2ViQ29udGVu
dCBwcm9jZXNzIHRvIHRoZSBVSSBwcm9jZXNzLgorICAgICAgICBUaGlzIHBhdGNoIGltcGxlbWVu
dHMgZm9yd2FyZGluZyBvZiB0aGUgZGV2aWNlIG9yaWVudGF0aW9uIHJlcXVlc3RzIHRvIHRoZSBV
SSBwcm9jZXNzIHRocm91Z2ggYSBuZXcKKyAgICAgICAgY2xhc3MsIERldmljZU9yaWVudGF0aW9u
VXBkYXRlUHJvdmlkZXIsIHdoaWNoIGlzIHN1YmNsYXNzZWQgYnkgV2ViRGV2aWNlT3JpZW50YXRp
b25VcGRhdGVQcm92aWRlciBpbgorICAgICAgICBtb2Rlcm4gV2ViS2l0LiBUaGlzIGNsYXNzIGlt
cGxlbWVudHMgZm9yd2FyZGluZyBvZiB0aGUgcmVxdWVzdHMgdG8gdGhlIFVJIHByb2Nlc3MsIGFu
ZCByZWNlaXZlcworICAgICAgICBkZXZpY2Ugb3JpZW50YXRpb24gdXBkYXRlcyBmcm9tIHRoZSBV
SSBwcm9jZXNzLiBBbiBpbnN0YW5jZSBvZiB0aGlzIGNsYXNzIHdpbGwgYmUgc2hhcmVkIGJ5IGFs
bAorICAgICAgICBkZXZpY2Ugb3JpZW50YXRpb24gY2xpZW50cyBvbiBhIHBhZ2UsIGFuZCBwYXNz
ZWQgYXMgcGFydCBvZiB0aGUgcGFnZSBjb25maWd1cmF0aW9uIHBhcmFtZXRlcnMuIE9uCisgICAg
ICAgIHRoZSBVSSBwcm9jZXNzIHNpZGUsIGEgbmV3IGNsYXNzIFdlYkRldmljZU9yaWVudGF0aW9u
VXBkYXRlUHJvdmlkZXJQcm94eSBhdHRhY2hlZCB0byB0aGUgV2ViIHBhZ2UKKyAgICAgICAgcHJv
eHkgaXMgdGFraW5nIGNhcmUgb2YgY2FsbGluZyB0aGUgZGV2aWNlIG9yaWVudGF0aW9uIEFQSSB0
aHJvdWdoIHRoZSBleGlzdGluZyBXZWJDb3JlTW90aW9uTWFuYWdlcgorICAgICAgICBPYmplY3Rp
dmUtQyBjbGFzcywgYW5kIHNlbmQgZGV2aWNlIG9yaWVudGF0aW9uIHVwZGF0ZXMgYmFjayB0byB0
aGUgV2ViIHByb2Nlc3MuIEFsc28sIHVzZSBhIHdlYWsKKyAgICAgICAgaGFzaCBzZXQgb2Ygb3Jp
ZW50YXRpb24gY2xpZW50cyBpbiBXZWJDb3JlTW90aW9uTWFuYWdlci4KKworICAgICAgICAqIFdl
YkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBkb20vRGV2aWNlT3Jp
ZW50YXRpb25DbGllbnQuaDoKKyAgICAgICAgKiBkb20vRG9jdW1lbnQuY3BwOgorICAgICAgICAq
IHBhZ2UvUGFnZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjptX2RldmljZU9yaWVudGF0aW9uVXBk
YXRlUHJvdmlkZXIpOgorICAgICAgICAoV2ViQ29yZTo6bV9hcHBsaWNhdGlvbk1hbmlmZXN0KTog
RGVsZXRlZC4KKyAgICAgICAgKiBwYWdlL1BhZ2UuaDoKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2U6
OmRldmljZU9yaWVudGF0aW9uVXBkYXRlUHJvdmlkZXIgY29uc3QpOgorICAgICAgICAqIHBhZ2Uv
UGFnZUNvbmZpZ3VyYXRpb24uaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9pb3MvRGV2aWNlT3JpZW50
YXRpb25DbGllbnRJT1MuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9pb3MvRGV2aWNlT3JpZW50YXRp
b25DbGllbnRJT1MubW06CisgICAgICAgIChXZWJDb3JlOjpEZXZpY2VPcmllbnRhdGlvbkNsaWVu
dElPUzo6RGV2aWNlT3JpZW50YXRpb25DbGllbnRJT1MpOgorICAgICAgICAoV2ViQ29yZTo6RGV2
aWNlT3JpZW50YXRpb25DbGllbnRJT1M6OnN0YXJ0VXBkYXRpbmcpOgorICAgICAgICAoV2ViQ29y
ZTo6RGV2aWNlT3JpZW50YXRpb25DbGllbnRJT1M6OnN0b3BVcGRhdGluZyk6CisgICAgICAgIChX
ZWJDb3JlOjpEZXZpY2VPcmllbnRhdGlvbkNsaWVudElPUzo6ZGV2aWNlT3JpZW50YXRpb25Db250
cm9sbGVyRGVzdHJveWVkKToKKyAgICAgICAgKiBwbGF0Zm9ybS9pb3MvV2ViQ29yZU1vdGlvbk1h
bmFnZXIuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9pb3MvV2ViQ29yZU1vdGlvbk1hbmFnZXIubW06
CisgICAgICAgICgtW1dlYkNvcmVNb3Rpb25NYW5hZ2VyIGFkZE9yaWVudGF0aW9uQ2xpZW50Ol0p
OgorICAgICAgICAoLVtXZWJDb3JlTW90aW9uTWFuYWdlciByZW1vdmVPcmllbnRhdGlvbkNsaWVu
dDpdKToKKyAgICAgICAgKC1bV2ViQ29yZU1vdGlvbk1hbmFnZXIgY2hlY2tDbGllbnRTdGF0dXNd
KToKKyAgICAgICAgKC1bV2ViQ29yZU1vdGlvbk1hbmFnZXIgc2VuZE1vdGlvbkRhdGE6d2l0aEhl
YWRpbmc6XSk6CisKIDIwMTktMTItMDUgIFphbGFuIEJ1anRhcyAgPHphbGFuQGFwcGxlLmNvbT4K
IAogICAgICAgICBbTEZDXVtJRkNdIEludHJvZHVjZSBJbmxpbmVTb2Z0TGluZUJyZWFrSXRlbQpJ
bmRleDogU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagkocmV2aXNpb24gMjUzMTczKQorKysgU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCSh3b3JraW5nIGNvcHkpCkBAIC05MDksNyArOTA5LDcgQEAKIAkJ
MzEzNTkxMEExRTdEREM3MzAwRjMwNjMwIC8qIFJUQ1NkcFR5cGUuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMxMzU5MTA0MUU3RERDNjAwMEYzMDYzMCAv
KiBSVENTZHBUeXBlLmggKi87IH07CiAJCTMxMzU5MTBCMUU3RERDNzMwMEYzMDYzMCAvKiBSVENT
aWduYWxpbmdTdGF0ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMzEzNTkxMDUxRTdEREM2MDAwRjMwNjMwIC8qIFJUQ1NpZ25hbGluZ1N0YXRlLmggKi87
IH07CiAJCTMxM0JDRTFDMjM1RTNCRTUwMEZDMzlFNSAvKiBFbGVtZW50Q29udGV4dC5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzEzQkNFMUIyMzVFM0JE
QjAwRkMzOUU1IC8qIEVsZW1lbnRDb250ZXh0LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMg
PSAoUHJpdmF0ZSwgKTsgfTsgfTsKLQkJMzE0MDM3OUIxMjRCRUE3RjAwQUY0MEU0IC8qIFdlYkNv
cmVNb3Rpb25NYW5hZ2VyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSAzMTQwMzc5NzEyNEJFQTdGMDBBRjQwRTQgLyogV2ViQ29yZU1vdGlvbk1hbmFnZXIu
aCAqLzsgfTsKKwkJMzE0MDM3OUIxMjRCRUE3RjAwQUY0MEU0IC8qIFdlYkNvcmVNb3Rpb25NYW5h
Z2VyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzMTQw
Mzc5NzEyNEJFQTdGMDBBRjQwRTQgLyogV2ViQ29yZU1vdGlvbk1hbmFnZXIuaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkzMTQwMzc5RDEyNEJFQTdG
MDBBRjQwRTQgLyogRGV2aWNlT3JpZW50YXRpb25DbGllbnRJT1MuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMxNDAzNzk5MTI0QkVBN0YwMEFGNDBFNCAv
KiBEZXZpY2VPcmllbnRhdGlvbkNsaWVudElPUy5oICovOyB9OwogCQkzMTQwQzUyMDFGREYxNTFB
MDBEMkE4NzMgLyogT2Zmc2NyZWVuQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzMTQwQzUxRTFGREYxNTFBMDBE
MkE4NzMgLyogT2Zmc2NyZWVuQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmggKi87IH07CiAJCTMx
NDBDNTI0MUZERjMxODcwMEQyQTg3MyAvKiBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkRCYXNlLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzMTQwQzUyMjFG
REYzMTg2MDBEMkE4NzMgLyogQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEQmFzZS5oICovOyB9OwpA
QCAtNDc4MSw2ICs0NzgxLDggQEAKIAkJRTM1ODAyQjYxREM4NDM1RDAwQTk3NzNDIC8qIERPTUpJ
VElETFR5cGVGaWx0ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEUzNTgwMkI1MURDODQzNTgwMEE5NzczQyAvKiBET01KSVRJRExUeXBlRmlsdGVyLmgg
Ki87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJRTM3N0ZF
NEQxREFERTE2NTAwQ0REMDI1IC8qIE5vZGVDb25zdGFudHMuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUzRDA0OTkzMURBREMwNDUwMDcxOEYzQyAvKiBO
b2RlQ29uc3RhbnRzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsg
fTsgfTsKIAkJRTM3Qzg2NTAxRUI2M0UzRjAwODdDNkNBIC8qIEpTRE9NUHJvbWlzZS5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTM3Qzg2NEYxRUI2M0Uy
RDAwODdDNkNBIC8qIEpTRE9NUHJvbWlzZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CisJCUUzOTYyOEJGMjM5NTcyOEYwMDY1OEVDRCAvKiBEZXZpY2VP
cmllbnRhdGlvblVwZGF0ZVByb3ZpZGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBFMzk2MjhCRDIzOTU3MjhFMDA2NThFQ0QgLyogRGV2aWNlT3JpZW50
YXRpb25VcGRhdGVQcm92aWRlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07CisJCUUzOTYyOEMxMjM5NTc0MzEwMDY1OEVDRCAvKiBNb3Rpb25NYW5hZ2Vy
Q2xpZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBF
Mzk2MjhDMDIzOTU3NDMwMDA2NThFQ0QgLyogTW90aW9uTWFuYWdlckNsaWVudC5oICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUUzQTc3NjY3MURDODVE
MjgwMEI2OTBEOCAvKiBET01KSVRJRExDb252ZXJ0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFM0E3NzY2NTFEQzg1RDIyMDBCNjkwRDggLyogRE9NSklU
SURMQ29udmVydC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CiAJCUUzQTc3NjY4MURDODVEMjgwMEI2OTBEOCAvKiBET01KSVRJRExUeXBlLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFM0E3NzY2NjFEQzg1RDIy
MDBCNjkwRDggLyogRE9NSklUSURMVHlwZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CiAJCUUzQjJGMEVEMUQ3RjRDQTMwMEIwQzlEMSAvKiBMb2FkYWJs
ZVNjcmlwdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
RTNCMkYwRTcxRDdGMzVFQzAwQjBDOUQxIC8qIExvYWRhYmxlU2NyaXB0LmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTE1MDg3LDYgKzE1MDg5LDgg
QEAKIAkJRTM4ODM4OTQxQkFEMTQ1RjAwRDYyRUUzIC8qIFNjcmlwdE1vZHVsZUxvYWRlci5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTY3JpcHRNb2R1bGVMb2FkZXIu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFMzg4Mzg5NTFCQUQxNDVGMDBENjJF
RTMgLyogU2NyaXB0TW9kdWxlTG9hZGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IFNjcmlwdE1vZHVsZUxvYWRlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlF
MzhEMDYwOTFGOEU4MTE5MDA2NDlDRjIgLyogTW9kdWxlRmV0Y2hQYXJhbWV0ZXJzLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1vZHVsZUZldGNoUGFyYW1ldGVycy5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFMzk2MjhCRDIzOTU3MjhFMDA2NThFQ0QgLyogRGV2
aWNlT3JpZW50YXRpb25VcGRhdGVQcm92aWRlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBEZXZpY2VPcmllbnRhdGlvblVwZGF0ZVByb3ZpZGVyLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCUUzOTYyOEMwMjM5NTc0MzAwMDY1OEVDRCAvKiBNb3Rpb25NYW5hZ2Vy
Q2xpZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1vdGlvbk1hbmFnZXJD
bGllbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTM5NzVCNzYxRUM5QUYzOTAw
ODQ3NzE3IC8qIEpTRG9jdW1lbnRGcmFnbWVudERPTUpJVC5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBKU0RvY3VtZW50RnJhZ21lbnRET01KSVQuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQlFMzk3NUI3NzFFQzlBRjM5MDA4NDc3MTcgLyogSlNFbGVt
ZW50RE9NSklULmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTRWxl
bWVudERPTUpJVC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUzOTc1Qjc4MUVD
OUFGMzkwMDg0NzcxNyAvKiBKU0V2ZW50RE9NSklULmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IEpTRXZlbnRET01KSVQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwpAQCAtMjI4MTksNiArMjI4MjMsNyBAQAogCQkJCTMxRUFGOTdEMTIxNDM1QTQwMEU3QzFC
RiAvKiBEZXZpY2VNb3Rpb25DbGllbnRJT1MubW0gKi8sCiAJCQkJMzE0MDM3OTkxMjRCRUE3RjAw
QUY0MEU0IC8qIERldmljZU9yaWVudGF0aW9uQ2xpZW50SU9TLmggKi8sCiAJCQkJMzE0MDM3OUEx
MjRCRUE3RjAwQUY0MEU0IC8qIERldmljZU9yaWVudGF0aW9uQ2xpZW50SU9TLm1tICovLAorCQkJ
CUUzOTYyOEJEMjM5NTcyOEUwMDY1OEVDRCAvKiBEZXZpY2VPcmllbnRhdGlvblVwZGF0ZVByb3Zp
ZGVyLmggKi8sCiAJCQkJMEZEQTdDMjIxODgzMzBBOTAwQzk1NEI1IC8qIERyYWdJbWFnZUlPUy5t
bSAqLywKIAkJCQkyNjU1NDEzNzE0ODk4MTFDMDAwREZDNUQgLyogS2V5RXZlbnRDb2Rlc0lPUy5o
ICovLAogCQkJCTI2NTU0MTM4MTQ4OTgxMUMwMDBERkM1RCAvKiBLZXlFdmVudElPUy5tbSAqLywK
QEAgLTIyODM1LDYgKzIyODQwLDcgQEAKIAkJCQkxQzQzREU2ODIyQUI0QjhBMDAxNTI3RDkgLyog
TG9jYWxDdXJyZW50VHJhaXRDb2xsZWN0aW9uLmggKi8sCiAJCQkJMUM0M0RFNkEyMkFCNEI4QTAw
MTUyN0Q5IC8qIExvY2FsQ3VycmVudFRyYWl0Q29sbGVjdGlvbi5tbSAqLywKIAkJCQk0NkVGQUYw
RDFFNUZCOUMyMDBFN0YzNEIgLyogTG93UG93ZXJNb2RlTm90aWZpZXJJT1MubW0gKi8sCisJCQkJ
RTM5NjI4QzAyMzk1NzQzMDAwNjU4RUNEIC8qIE1vdGlvbk1hbmFnZXJDbGllbnQuaCAqLywKIAkJ
CQlFNDUzOTAxOTBFQUZDQUNBMDAzNjk1QzggLyogUGFzdGVib2FyZElPUy5tbSAqLywKIAkJCQky
NjYwMUVCRDE0QjNCOUFEMDAxMkMwRkUgLyogUGxhdGZvcm1FdmVudEZhY3RvcnlJT1MuaCAqLywK
IAkJCQkyNjYwMUVCRTE0QjNCOUFEMDAxMkMwRkUgLyogUGxhdGZvcm1FdmVudEZhY3RvcnlJT1Mu
bW0gKi8sCkBAIC0yOTU2MCw2ICsyOTU2Niw3IEBACiAJCQkJNTlBODVFQTQxMTlENjhFQzAwREVG
MUVGIC8qIERldmljZU9yaWVudGF0aW9uRXZlbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTQ2MEUz
MDc1MjIyRjRFRkQwMDlBMDYwNiAvKiBEZXZpY2VPcmllbnRhdGlvbk9yTW90aW9uRXZlbnQuaCBp
biBIZWFkZXJzICovLAogCQkJCTQ2MEUzMDc3MjIyRjRGMDMwMDlBMDYwNiAvKiBEZXZpY2VPcmll
bnRhdGlvbk9yTW90aW9uUGVybWlzc2lvblN0YXRlLmggaW4gSGVhZGVycyAqLywKKwkJCQlFMzk2
MjhCRjIzOTU3MjhGMDA2NThFQ0QgLyogRGV2aWNlT3JpZW50YXRpb25VcGRhdGVQcm92aWRlci5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJNTcyQjQwMUYyMTc1N0E2NDAwMEFENDNFIC8qIERldmljZVJl
cXVlc3RDb252ZXJ0ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTU3MkI0MDNBMjE3NzI1ODEwMDBB
RDQzRSAvKiBEZXZpY2VSZXNwb25zZUNvbnZlcnRlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMjY3
NzI1RkQxQTVCM0FEOTAwM0MyNEREIC8qIERGQS5oIGluIEhlYWRlcnMgKi8sCkBAIC0zMTQ0OCw2
ICszMTQ1NSw3IEBACiAJCQkJNzA5QTAxRkUxRTNEMEJERDAwNkIwRDRDIC8qIE1vZHVsZUZldGNo
RmFpbHVyZUtpbmQuaCBpbiBIZWFkZXJzICovLAogCQkJCUUzMjAxQzFBMUY4RTgyMTMwMDc2QTAz
MiAvKiBNb2R1bGVGZXRjaFBhcmFtZXRlcnMuaCBpbiBIZWFkZXJzICovLAogCQkJCUY1NUIzREM2
MTI1MUYxMkQwMDNFRjI2OSAvKiBNb250aElucHV0VHlwZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJ
RTM5NjI4QzEyMzk1NzQzMTAwNjU4RUNEIC8qIE1vdGlvbk1hbmFnZXJDbGllbnQuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTg1MDMxQjQ2MEE0NEVGQzcwMEY5OTJFMCAvKiBNb3VzZUV2ZW50LmggaW4g
SGVhZGVycyAqLywKIAkJCQk4Mzc2NUY5NTFEQUM1MjJGMDBDMDY1MzcgLyogTW91c2VFdmVudElu
aXQuaCBpbiBIZWFkZXJzICovLAogCQkJCTkzNUM0NzYzMDlBQzRDRTYwMEE2QUFCNCAvKiBNb3Vz
ZUV2ZW50V2l0aEhpdFRlc3RSZXN1bHRzLmggaW4gSGVhZGVycyAqLywKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL2RvbS9EZXZpY2VPcmllbnRhdGlvbkNsaWVudC5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL2RvbS9EZXZpY2VPcmllbnRhdGlvbkNsaWVudC5oCShyZXZpc2lvbiAyNTMxNzMp
CisrKyBTb3VyY2UvV2ViQ29yZS9kb20vRGV2aWNlT3JpZW50YXRpb25DbGllbnQuaAkod29ya2lu
ZyBjb3B5KQpAQCAtMjgsNiArMjgsNyBAQAogCiAjaW5jbHVkZSAiRGV2aWNlQ2xpZW50LmgiCiAj
aW5jbHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+CisjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgogCiBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAkocmV2aXNp
b24gMjUzMTczKQorKysgU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAkod29ya2luZyBj
b3B5KQpAQCAtNTY1LDcgKzU2NSw3IEBAIERvY3VtZW50OjpEb2N1bWVudChGcmFtZSogZnJhbWUs
IGNvbnN0IFUKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKSAmJiBFTkFCTEUoREVWSUNFX09SSUVO
VEFUSU9OKQogICAgICwgbV9kZXZpY2VNb3Rpb25DbGllbnQobWFrZVVuaXF1ZTxEZXZpY2VNb3Rp
b25DbGllbnRJT1M+KCkpCiAgICAgLCBtX2RldmljZU1vdGlvbkNvbnRyb2xsZXIobWFrZVVuaXF1
ZTxEZXZpY2VNb3Rpb25Db250cm9sbGVyPigqbV9kZXZpY2VNb3Rpb25DbGllbnQpKQotICAgICwg
bV9kZXZpY2VPcmllbnRhdGlvbkNsaWVudChtYWtlVW5pcXVlPERldmljZU9yaWVudGF0aW9uQ2xp
ZW50SU9TPigpKQorICAgICwgbV9kZXZpY2VPcmllbnRhdGlvbkNsaWVudChtYWtlVW5pcXVlPERl
dmljZU9yaWVudGF0aW9uQ2xpZW50SU9TPihwYWdlKCkgPyBwYWdlKCktPmRldmljZU9yaWVudGF0
aW9uVXBkYXRlUHJvdmlkZXIoKSA6IG51bGxwdHIpKQogICAgICwgbV9kZXZpY2VPcmllbnRhdGlv
bkNvbnRyb2xsZXIobWFrZVVuaXF1ZTxEZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXI+KCptX2Rl
dmljZU9yaWVudGF0aW9uQ2xpZW50KSkKICNlbmRpZgogICAgICwgbV9wZW5kaW5nVGFza3NUaW1l
cigqdGhpcywgJkRvY3VtZW50OjpwZW5kaW5nVGFza3NUaW1lckZpcmVkKQpJbmRleDogU291cmNl
L1dlYkNvcmUvcGFnZS9QYWdlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wYWdl
L1BhZ2UuY3BwCShyZXZpc2lvbiAyNTMxNzMpCisrKyBTb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2Uu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yODksNiArMjg5LDkgQEAgUGFnZTo6UGFnZShQYWdlQ29u
ZmlndXJhdGlvbiYmIHBhZ2VDb25maQogI2lmIEVOQUJMRShBUFBMSUNBVElPTl9NQU5JRkVTVCkK
ICAgICAsIG1fYXBwbGljYXRpb25NYW5pZmVzdChwYWdlQ29uZmlndXJhdGlvbi5hcHBsaWNhdGlv
bk1hbmlmZXN0KQogI2VuZGlmCisjaWYgRU5BQkxFKERFVklDRV9PUklFTlRBVElPTikgJiYgUExB
VEZPUk0oSU9TX0ZBTUlMWSkKKyAgICAsIG1fZGV2aWNlT3JpZW50YXRpb25VcGRhdGVQcm92aWRl
cihXVEZNb3ZlKHBhZ2VDb25maWd1cmF0aW9uLmRldmljZU9yaWVudGF0aW9uVXBkYXRlUHJvdmlk
ZXIpKQorI2VuZGlmCiB7CiAgICAgdXBkYXRlVGltZXJUaHJvdHRsaW5nU3RhdGUoKTsKIApJbmRl
eDogU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvcGFnZS9QYWdlLmgJKHJldmlzaW9uIDI1MzE3MykKKysrIFNvdXJjZS9XZWJDb3JlL3BhZ2Uv
UGFnZS5oCSh3b3JraW5nIGNvcHkpCkBAIC02OSw2ICs2OSwxMCBAQAogI2luY2x1ZGUgIk1lZGlh
UGxheWJhY2tUYXJnZXRDb250ZXh0LmgiCiAjZW5kaWYKIAorI2lmIEVOQUJMRShERVZJQ0VfT1JJ
RU5UQVRJT04pICYmIFBMQVRGT1JNKElPU19GQU1JTFkpCisjaW5jbHVkZSAiRGV2aWNlT3JpZW50
YXRpb25VcGRhdGVQcm92aWRlci5oIgorI2VuZGlmCisKIG5hbWVzcGFjZSBKU0MgewogY2xhc3Mg
RGVidWdnZXI7CiB9CkBAIC03MTksNiArNzIzLDEwIEBAIHB1YmxpYzoKIAogICAgIFdFQkNPUkVf
RVhQT1JUIFZlY3RvcjxSZWY8RWxlbWVudD4+IGVkaXRhYmxlRWxlbWVudHNJblJlY3QoY29uc3Qg
RmxvYXRSZWN0JikgY29uc3Q7CiAKKyNpZiBFTkFCTEUoREVWSUNFX09SSUVOVEFUSU9OKSAmJiBQ
TEFURk9STShJT1NfRkFNSUxZKQorICAgIERldmljZU9yaWVudGF0aW9uVXBkYXRlUHJvdmlkZXIq
IGRldmljZU9yaWVudGF0aW9uVXBkYXRlUHJvdmlkZXIoKSBjb25zdCB7IHJldHVybiBtX2Rldmlj
ZU9yaWVudGF0aW9uVXBkYXRlUHJvdmlkZXIuZ2V0KCk7IH0KKyNlbmRpZgorCiBwcml2YXRlOgog
ICAgIHN0cnVjdCBOYXZpZ2F0aW9uIHsKICAgICAgICAgUmVnaXN0cmFibGVEb21haW4gZG9tYWlu
OwpAQCAtOTkwLDYgKzk5OCwxMCBAQCBwcml2YXRlOgogCiAgICAgT3B0aW9uYWw8Vmlld3BvcnRB
cmd1bWVudHM+IG1fb3ZlcnJpZGVWaWV3cG9ydEFyZ3VtZW50czsKIAorI2lmIEVOQUJMRShERVZJ
Q0VfT1JJRU5UQVRJT04pICYmIFBMQVRGT1JNKElPU19GQU1JTFkpCisgICAgUmVmUHRyPERldmlj
ZU9yaWVudGF0aW9uVXBkYXRlUHJvdmlkZXI+IG1fZGV2aWNlT3JpZW50YXRpb25VcGRhdGVQcm92
aWRlcjsKKyNlbmRpZgorCiAgICAgYm9vbCBtX3Nob3VsZEVuYWJsZUlDRUNhbmRpZGF0ZUZpbHRl
cmluZ0J5RGVmYXVsdCB7IHRydWUgfTsKICAgICBib29sIG1fbWVkaWFQbGF5YmFja0lzU3VzcGVu
ZGVkIHsgZmFsc2UgfTsKICAgICBib29sIG1fbWVkaWFCdWZmZXJpbmdJc1N1c3BlbmRlZCB7IGZh
bHNlIH07CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VDb25maWd1cmF0aW9uLmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlQ29uZmlndXJhdGlvbi5oCShyZXZp
c2lvbiAyNTMxNzMpCisrKyBTb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VDb25maWd1cmF0aW9uLmgJ
KHdvcmtpbmcgY29weSkKQEAgLTExOCw2ICsxMTgsMTAgQEAgcHVibGljOgogICAgIFJlZlB0cjxT
dG9yYWdlTmFtZXNwYWNlUHJvdmlkZXI+IHN0b3JhZ2VOYW1lc3BhY2VQcm92aWRlcjsKICAgICBS
ZWZQdHI8VXNlckNvbnRlbnRQcm92aWRlcj4gdXNlckNvbnRlbnRQcm92aWRlcjsKICAgICBSZWZQ
dHI8VmlzaXRlZExpbmtTdG9yZT4gdmlzaXRlZExpbmtTdG9yZTsKKyAgICAKKyNpZiBFTkFCTEUo
REVWSUNFX09SSUVOVEFUSU9OKSAmJiBQTEFURk9STShJT1NfRkFNSUxZKQorICAgIFJlZlB0cjxE
ZXZpY2VPcmllbnRhdGlvblVwZGF0ZVByb3ZpZGVyPiBkZXZpY2VPcmllbnRhdGlvblVwZGF0ZVBy
b3ZpZGVyOworI2VuZGlmCiB9OwogCiB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9p
b3MvRGV2aWNlT3JpZW50YXRpb25DbGllbnRJT1MuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9pb3MvRGV2aWNlT3JpZW50YXRpb25DbGllbnRJT1MuaAkocmV2aXNpb24g
MjUzMTczKQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL0RldmljZU9yaWVudGF0aW9u
Q2xpZW50SU9TLmgJKHdvcmtpbmcgY29weSkKQEAgLTMwLDE1ICszMCwxNyBAQAogI2luY2x1ZGUg
IkRldmljZU9yaWVudGF0aW9uQ2xpZW50LmgiCiAjaW5jbHVkZSAiRGV2aWNlT3JpZW50YXRpb25D
b250cm9sbGVyLmgiCiAjaW5jbHVkZSAiRGV2aWNlT3JpZW50YXRpb25EYXRhLmgiCisjaW5jbHVk
ZSAiRGV2aWNlT3JpZW50YXRpb25VcGRhdGVQcm92aWRlci5oIgorI2luY2x1ZGUgIk1vdGlvbk1h
bmFnZXJDbGllbnQuaCIKICNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CiAKIE9CSkNfQ0xBU1MgV2Vi
Q29yZU1vdGlvbk1hbmFnZXI7CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotY2xhc3MgRGV2aWNl
T3JpZW50YXRpb25DbGllbnRJT1MgOiBwdWJsaWMgRGV2aWNlT3JpZW50YXRpb25DbGllbnQgewor
Y2xhc3MgRGV2aWNlT3JpZW50YXRpb25DbGllbnRJT1MgOiBwdWJsaWMgRGV2aWNlT3JpZW50YXRp
b25DbGllbnQsIHB1YmxpYyBNb3Rpb25NYW5hZ2VyQ2xpZW50IHsKIHB1YmxpYzoKLSAgICBEZXZp
Y2VPcmllbnRhdGlvbkNsaWVudElPUygpOworICAgIERldmljZU9yaWVudGF0aW9uQ2xpZW50SU9T
KFJlZlB0cjxEZXZpY2VPcmllbnRhdGlvblVwZGF0ZVByb3ZpZGVyPiYmKTsKICAgICB+RGV2aWNl
T3JpZW50YXRpb25DbGllbnRJT1MoKSBvdmVycmlkZTsKICAgICB2b2lkIHNldENvbnRyb2xsZXIo
RGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyKikgb3ZlcnJpZGU7CiAgICAgdm9pZCBzdGFydFVw
ZGF0aW5nKCkgb3ZlcnJpZGU7CkBAIC00NiwxMyArNDgsMTQgQEAgcHVibGljOgogICAgIERldmlj
ZU9yaWVudGF0aW9uRGF0YSogbGFzdE9yaWVudGF0aW9uKCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAg
dm9pZCBkZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXJEZXN0cm95ZWQoKSBvdmVycmlkZTsKIAot
ICAgIHZvaWQgb3JpZW50YXRpb25DaGFuZ2VkKGRvdWJsZSwgZG91YmxlLCBkb3VibGUsIGRvdWJs
ZSwgZG91YmxlKTsKKyAgICB2b2lkIG9yaWVudGF0aW9uQ2hhbmdlZChkb3VibGUsIGRvdWJsZSwg
ZG91YmxlLCBkb3VibGUsIGRvdWJsZSkgb3ZlcnJpZGU7CiAKIHByaXZhdGU6Ci0gICAgV2ViQ29y
ZU1vdGlvbk1hbmFnZXIqIG1fbW90aW9uTWFuYWdlcjsKLSAgICBEZXZpY2VPcmllbnRhdGlvbkNv
bnRyb2xsZXIqIG1fY29udHJvbGxlcjsKKyAgICBXZWJDb3JlTW90aW9uTWFuYWdlciogbV9tb3Rp
b25NYW5hZ2VyICB7IG51bGxwdHIgfTsKKyAgICBEZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXIq
IG1fY29udHJvbGxlciAgeyBudWxscHRyIH07CiAgICAgUmVmUHRyPERldmljZU9yaWVudGF0aW9u
RGF0YT4gbV9jdXJyZW50RGV2aWNlT3JpZW50YXRpb247Ci0gICAgYm9vbCBtX3VwZGF0aW5nOwor
ICAgIFJlZlB0cjxEZXZpY2VPcmllbnRhdGlvblVwZGF0ZVByb3ZpZGVyPiBtX2RldmljZU9yaWVu
dGF0aW9uVXBkYXRlUHJvdmlkZXI7CisgICAgYm9vbCBtX3VwZGF0aW5nIHsgZmFsc2UgfTsKIH07
CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2lvcy9EZXZpY2VPcmllbnRhdGlvbkNsaWVudElPUy5tbQo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9pb3MvRGV2aWNlT3JpZW50YXRpb25DbGllbnRJT1MubW0JKHJldmlz
aW9uIDI1MzE3MykKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9EZXZpY2VPcmllbnRh
dGlvbkNsaWVudElPUy5tbQkod29ya2luZyBjb3B5KQpAQCAtMzMsMTAgKzMzLDkgQEAKIAogbmFt
ZXNwYWNlIFdlYkNvcmUgewogCi1EZXZpY2VPcmllbnRhdGlvbkNsaWVudElPUzo6RGV2aWNlT3Jp
ZW50YXRpb25DbGllbnRJT1MoKQorRGV2aWNlT3JpZW50YXRpb25DbGllbnRJT1M6OkRldmljZU9y
aWVudGF0aW9uQ2xpZW50SU9TKFJlZlB0cjxEZXZpY2VPcmllbnRhdGlvblVwZGF0ZVByb3ZpZGVy
PiYmIGRldmljZU9yaWVudGF0aW9uVXBkYXRlUHJvdmlkZXIpCiAgICAgOiBEZXZpY2VPcmllbnRh
dGlvbkNsaWVudCgpCi0gICAgLCBtX21vdGlvbk1hbmFnZXIobnVsbHB0cikKLSAgICAsIG1fdXBk
YXRpbmcoMCkKKyAgICAsIG1fZGV2aWNlT3JpZW50YXRpb25VcGRhdGVQcm92aWRlcihXVEZNb3Zl
KGRldmljZU9yaWVudGF0aW9uVXBkYXRlUHJvdmlkZXIpKQogewogfQogCkBAIC01Myw2ICs1Miwx
MSBAQCB2b2lkIERldmljZU9yaWVudGF0aW9uQ2xpZW50SU9TOjpzdGFydFVwCiB7CiAgICAgbV91
cGRhdGluZyA9IHRydWU7CiAKKyAgICBpZiAobV9kZXZpY2VPcmllbnRhdGlvblVwZGF0ZVByb3Zp
ZGVyKSB7CisgICAgICAgIG1fZGV2aWNlT3JpZW50YXRpb25VcGRhdGVQcm92aWRlci0+c3RhcnRV
cGRhdGluZygqdGhpcyk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKICAgICBpZiAoIW1fbW90
aW9uTWFuYWdlcikKICAgICAgICAgbV9tb3Rpb25NYW5hZ2VyID0gW1dlYkNvcmVNb3Rpb25NYW5h
Z2VyIHNoYXJlZE1hbmFnZXJdOwogCkBAIC02Myw2ICs2NywxMSBAQCB2b2lkIERldmljZU9yaWVu
dGF0aW9uQ2xpZW50SU9TOjpzdG9wVXBkCiB7CiAgICAgbV91cGRhdGluZyA9IGZhbHNlOwogCisg
ICAgaWYgKG1fZGV2aWNlT3JpZW50YXRpb25VcGRhdGVQcm92aWRlcikgeworICAgICAgICBtX2Rl
dmljZU9yaWVudGF0aW9uVXBkYXRlUHJvdmlkZXItPnN0b3BVcGRhdGluZygqdGhpcyk7CisgICAg
ICAgIHJldHVybjsKKyAgICB9CisKICAgICAvLyBSZW1vdmUgb3Vyc2VsdmVzIGFzIHRoZSBvcmll
bnRhdGlvbiBjbGllbnQgc28gd2Ugd29uJ3QgZ2V0IHVwZGF0ZXMuCiAgICAgW21fbW90aW9uTWFu
YWdlciByZW1vdmVPcmllbnRhdGlvbkNsaWVudDp0aGlzXTsKIH0KQEAgLTc0LDYgKzgzLDExIEBA
IERldmljZU9yaWVudGF0aW9uRGF0YSogRGV2aWNlT3JpZW50YXRpb24KIAogdm9pZCBEZXZpY2VP
cmllbnRhdGlvbkNsaWVudElPUzo6ZGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyRGVzdHJveWVk
KCkKIHsKKyAgICBpZiAobV9kZXZpY2VPcmllbnRhdGlvblVwZGF0ZVByb3ZpZGVyKSB7CisgICAg
ICAgIG1fZGV2aWNlT3JpZW50YXRpb25VcGRhdGVQcm92aWRlci0+c3RvcFVwZGF0aW5nKCp0aGlz
KTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKwogICAgIFttX21vdGlvbk1hbmFnZXIgcmVtb3Zl
T3JpZW50YXRpb25DbGllbnQ6dGhpc107CiB9CiAgICAgCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9pb3MvRGV2aWNlT3JpZW50YXRpb25VcGRhdGVQcm92aWRlci5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9EZXZpY2VPcmllbnRhdGlvblVwZGF0ZVBy
b3ZpZGVyLmgJKG5vbmV4aXN0ZW50KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL0Rl
dmljZU9yaWVudGF0aW9uVXBkYXRlUHJvdmlkZXIuaAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsx
LDUxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
ICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRI
RSBDT1BZUklHSFQgSE9MREVSUyBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIFRI
RSBDT1BZUklHSFQgT1dORVIgT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
UFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIFBMQVRGT1JNKElPU19GQU1JTFkp
ICYmIEVOQUJMRShERVZJQ0VfT1JJRU5UQVRJT04pCisKKyNpbmNsdWRlIDx3dGYvUmVmQ291bnRl
ZC5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIE1vdGlvbk1hbmFnZXJDbGllbnQ7
CisKK2NsYXNzIERldmljZU9yaWVudGF0aW9uVXBkYXRlUHJvdmlkZXIgOiBwdWJsaWMgUmVmQ291
bnRlZDxEZXZpY2VPcmllbnRhdGlvblVwZGF0ZVByb3ZpZGVyPiB7CitwdWJsaWM6CisgICAgdmly
dHVhbCB+RGV2aWNlT3JpZW50YXRpb25VcGRhdGVQcm92aWRlcigpIHsgfQorCisgICAgdmlydHVh
bCB2b2lkIHN0YXJ0VXBkYXRpbmcoTW90aW9uTWFuYWdlckNsaWVudCYpID0gMDsKKyAgICB2aXJ0
dWFsIHZvaWQgc3RvcFVwZGF0aW5nKE1vdGlvbk1hbmFnZXJDbGllbnQmKSA9IDA7CisKKyAgICB2
aXJ0dWFsIHZvaWQgZGV2aWNlT3JpZW50YXRpb25DaGFuZ2VkKGRvdWJsZSwgZG91YmxlLCBkb3Vi
bGUsIGRvdWJsZSwgZG91YmxlKSA9IDA7CisgICAgCitwcm90ZWN0ZWQ6CisgICAgRGV2aWNlT3Jp
ZW50YXRpb25VcGRhdGVQcm92aWRlcigpID0gZGVmYXVsdDsKK307CisKK30gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKKworI2VuZGlmIC8vIFBMQVRGT1JNKElPU19GQU1JTFkpICYmIEVOQUJMRShERVZJ
Q0VfT1JJRU5UQVRJT04pCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvTW90aW9u
TWFuYWdlckNsaWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lv
cy9Nb3Rpb25NYW5hZ2VyQ2xpZW50LmgJKG5vbmV4aXN0ZW50KQorKysgU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vaW9zL01vdGlvbk1hbmFnZXJDbGllbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMCww
ICsxLDQzIEBACisvKgorKiBDb3B5cmlnaHQgKEMpIDIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorKgorKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisqIGFyZSBtZXQ6CisqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorKgorKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorKiBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisqIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
CisqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUworKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorKiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQor
KiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GCisqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyovCisK
KyNwcmFnbWEgb25jZQorCisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkgJiYgRU5BQkxFKERFVklD
RV9PUklFTlRBVElPTikKKworI2luY2x1ZGUgPHd0Zi9XZWFrUHRyLmg+CisKK25hbWVzcGFjZSBX
ZWJDb3JlIHsKKworY2xhc3MgTW90aW9uTWFuYWdlckNsaWVudCA6IHB1YmxpYyBDYW5NYWtlV2Vh
a1B0cjxNb3Rpb25NYW5hZ2VyQ2xpZW50PiB7CitwdWJsaWM6CisgICAgdmlydHVhbCB+TW90aW9u
TWFuYWdlckNsaWVudCgpIHsgfTsKKworICAgIHZpcnR1YWwgdm9pZCBvcmllbnRhdGlvbkNoYW5n
ZWQoZG91YmxlLCBkb3VibGUsIGRvdWJsZSwgZG91YmxlLCBkb3VibGUpID0gMDsKK307CisKK307
CisKKyNlbmRpZiAvLyBQTEFURk9STShJT1NfRkFNSUxZKSAmJiBFTkFCTEUoREVWSUNFX09SSUVO
VEFUSU9OKQpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dlYkNvcmVNb3Rpb25N
YW5hZ2VyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dlYkNv
cmVNb3Rpb25NYW5hZ2VyLmgJKHJldmlzaW9uIDI1MzE3MykKKysrIFNvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2lvcy9XZWJDb3JlTW90aW9uTWFuYWdlci5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNSwx
MCArMjUsOSBAQAogCiAjcHJhZ21hIG9uY2UKIAotI2ltcG9ydCAiRGV2aWNlTW90aW9uQ2xpZW50
SU9TLmgiCi0jaW1wb3J0ICJEZXZpY2VPcmllbnRhdGlvbkNsaWVudElPUy5oIgogI2ltcG9ydCA8
Q29yZUxvY2F0aW9uL0NvcmVMb2NhdGlvbi5oPgogI2ltcG9ydCA8d3RmL0hhc2hDb3VudGVkU2V0
Lmg+CisjaW1wb3J0IDx3dGYvV2Vha0hhc2hTZXQuaD4KIAogI2lmIFBMQVRGT1JNKElPU19GQU1J
TFkpICYmIEVOQUJMRShERVZJQ0VfT1JJRU5UQVRJT04pCiAKQEAgLTM2LDExICszNSwxNiBAQAog
CiBjb25zdCBmbG9hdCBrTW90aW9uVXBkYXRlSW50ZXJ2YWwgPSAxLjBmIC8gNjAuMGY7CiAKLUBp
bnRlcmZhY2UgV2ViQ29yZU1vdGlvbk1hbmFnZXIgOiBOU09iamVjdCB7CituYW1lc3BhY2UgV2Vi
Q29yZSB7CitjbGFzcyBEZXZpY2VNb3Rpb25DbGllbnRJT1M7CitjbGFzcyBNb3Rpb25NYW5hZ2Vy
Q2xpZW50OworfTsKKworV0VCQ09SRV9FWFBPUlQgQGludGVyZmFjZSBXZWJDb3JlTW90aW9uTWFu
YWdlciA6IE5TT2JqZWN0IHsKICAgICBDTU1vdGlvbk1hbmFnZXIqIG1fbW90aW9uTWFuYWdlcjsK
ICAgICBDTExvY2F0aW9uTWFuYWdlciogbV9sb2NhdGlvbk1hbmFnZXI7CiAgICAgSGFzaFNldDxX
ZWJDb3JlOjpEZXZpY2VNb3Rpb25DbGllbnRJT1MqPiBtX2RldmljZU1vdGlvbkNsaWVudHM7Ci0g
ICAgSGFzaFNldDxXZWJDb3JlOjpEZXZpY2VPcmllbnRhdGlvbkNsaWVudElPUyo+IG1fZGV2aWNl
T3JpZW50YXRpb25DbGllbnRzOworICAgIFdlYWtIYXNoU2V0PFdlYkNvcmU6Ok1vdGlvbk1hbmFn
ZXJDbGllbnQ+IG1fZGV2aWNlT3JpZW50YXRpb25DbGllbnRzOwogICAgIE5TVGltZXIqIG1fdXBk
YXRlVGltZXI7CiAgICAgQk9PTCBtX2d5cm9BdmFpbGFibGU7CiAgICAgQk9PTCBtX2hlYWRpbmdB
dmFpbGFibGU7CkBAIC01MCw4ICs1NCw4IEBAIGNvbnN0IGZsb2F0IGtNb3Rpb25VcGRhdGVJbnRl
cnZhbCA9IDEuMGYKICsgKFdlYkNvcmVNb3Rpb25NYW5hZ2VyICopc2hhcmVkTWFuYWdlcjsKIC0g
KHZvaWQpYWRkTW90aW9uQ2xpZW50OihXZWJDb3JlOjpEZXZpY2VNb3Rpb25DbGllbnRJT1MgKilj
bGllbnQ7CiAtICh2b2lkKXJlbW92ZU1vdGlvbkNsaWVudDooV2ViQ29yZTo6RGV2aWNlTW90aW9u
Q2xpZW50SU9TICopY2xpZW50OwotLSAodm9pZClhZGRPcmllbnRhdGlvbkNsaWVudDooV2ViQ29y
ZTo6RGV2aWNlT3JpZW50YXRpb25DbGllbnRJT1MgKiljbGllbnQ7Ci0tICh2b2lkKXJlbW92ZU9y
aWVudGF0aW9uQ2xpZW50OihXZWJDb3JlOjpEZXZpY2VPcmllbnRhdGlvbkNsaWVudElPUyAqKWNs
aWVudDsKKy0gKHZvaWQpYWRkT3JpZW50YXRpb25DbGllbnQ6KFdlYkNvcmU6Ok1vdGlvbk1hbmFn
ZXJDbGllbnQgKiljbGllbnQ7CistICh2b2lkKXJlbW92ZU9yaWVudGF0aW9uQ2xpZW50OihXZWJD
b3JlOjpNb3Rpb25NYW5hZ2VyQ2xpZW50ICopY2xpZW50OwogLSAoQk9PTClneXJvQXZhaWxhYmxl
OwogLSAoQk9PTCloZWFkaW5nQXZhaWxhYmxlOwogQGVuZApJbmRleDogU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vaW9zL1dlYkNvcmVNb3Rpb25NYW5hZ2VyLm1tCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJDb3JlTW90aW9uTWFuYWdlci5tbQkocmV2aXNpb24g
MjUzMTczKQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dlYkNvcmVNb3Rpb25NYW5h
Z2VyLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0yOCw2ICsyOCw4IEBACiAKICNpZiBQTEFURk9STShJ
T1NfRkFNSUxZKSAmJiBFTkFCTEUoREVWSUNFX09SSUVOVEFUSU9OKQogCisjaW1wb3J0ICJEZXZp
Y2VNb3Rpb25DbGllbnRJT1MuaCIKKyNpbXBvcnQgIk1vdGlvbk1hbmFnZXJDbGllbnQuaCIKICNp
bXBvcnQgIldlYkNvcmVPYmpDRXh0cmFzLmgiCiAjaW1wb3J0ICJXZWJDb3JlVGhyZWFkUnVuLmgi
CiAjaW1wb3J0IDxDb3JlTG9jYXRpb24vQ29yZUxvY2F0aW9uLmg+CkBAIC0xMTIsMTYgKzExNCwx
NiBAQCAtICh2b2lkKXJlbW92ZU1vdGlvbkNsaWVudDooV2ViQ29yZTo6RGV2CiAgICAgICAgIFtz
ZWxmIGNoZWNrQ2xpZW50U3RhdHVzXTsKIH0KIAotLSAodm9pZClhZGRPcmllbnRhdGlvbkNsaWVu
dDooV2ViQ29yZTo6RGV2aWNlT3JpZW50YXRpb25DbGllbnRJT1MgKiljbGllbnQKKy0gKHZvaWQp
YWRkT3JpZW50YXRpb25DbGllbnQ6KFdlYkNvcmU6Ok1vdGlvbk1hbmFnZXJDbGllbnQgKiljbGll
bnQKIHsKLSAgICBtX2RldmljZU9yaWVudGF0aW9uQ2xpZW50cy5hZGQoY2xpZW50KTsKKyAgICBt
X2RldmljZU9yaWVudGF0aW9uQ2xpZW50cy5hZGQoKmNsaWVudCk7CiAgICAgaWYgKG1faW5pdGlh
bGl6ZWQpCiAgICAgICAgIFtzZWxmIGNoZWNrQ2xpZW50U3RhdHVzXTsKIH0KIAotLSAodm9pZCly
ZW1vdmVPcmllbnRhdGlvbkNsaWVudDooV2ViQ29yZTo6RGV2aWNlT3JpZW50YXRpb25DbGllbnRJ
T1MgKiljbGllbnQKKy0gKHZvaWQpcmVtb3ZlT3JpZW50YXRpb25DbGllbnQ6KFdlYkNvcmU6Ok1v
dGlvbk1hbmFnZXJDbGllbnQgKiljbGllbnQKIHsKLSAgICBtX2RldmljZU9yaWVudGF0aW9uQ2xp
ZW50cy5yZW1vdmUoY2xpZW50KTsKKyAgICBtX2RldmljZU9yaWVudGF0aW9uQ2xpZW50cy5yZW1v
dmUoKmNsaWVudCk7CiAgICAgaWYgKG1faW5pdGlhbGl6ZWQpCiAgICAgICAgIFtzZWxmIGNoZWNr
Q2xpZW50U3RhdHVzXTsKIH0KQEAgLTE2OSw3ICsxNzEsNyBAQCAtICh2b2lkKWNoZWNrQ2xpZW50
U3RhdHVzCiAgICAgLy8gYmUgbm8gY2hhbmNlIHRoYXQgbV9tb3Rpb25NYW5hZ2VyIGhhcyBub3Qg
YmVlbiBjcmVhdGVkLgogICAgIEFTU0VSVChtX21vdGlvbk1hbmFnZXIpOwogCi0gICAgaWYgKG1f
ZGV2aWNlTW90aW9uQ2xpZW50cy5zaXplKCkgfHwgbV9kZXZpY2VPcmllbnRhdGlvbkNsaWVudHMu
c2l6ZSgpKSB7CisgICAgaWYgKG1fZGV2aWNlTW90aW9uQ2xpZW50cy5zaXplKCkgfHwgbV9kZXZp
Y2VPcmllbnRhdGlvbkNsaWVudHMuY29tcHV0ZVNpemUoKSkgewogICAgICAgICBpZiAobV9neXJv
QXZhaWxhYmxlKQogICAgICAgICAgICAgW21fbW90aW9uTWFuYWdlciBzdGFydERldmljZU1vdGlv
blVwZGF0ZXNdOwogICAgICAgICBlbHNlCkBAIC0yNDYsOCArMjQ4LDExIEBAIC0gKHZvaWQpc2Vu
ZE1vdGlvbkRhdGE6KENNRGV2aWNlTW90aW9uICoKIAogICAgICAgICBDTUF0dGl0dWRlKiBhdHRp
dHVkZSA9IG5ld01vdGlvbi5hdHRpdHVkZTsKIAotICAgICAgICBhdXRvIG9yaWVudGF0aW9uQ2xp
ZW50cyA9IGNvcHlUb1ZlY3RvcihtX2RldmljZU9yaWVudGF0aW9uQ2xpZW50cyk7Ci0KKyAgICAg
ICAgVmVjdG9yPFdlYWtQdHI8TW90aW9uTWFuYWdlckNsaWVudD4+IG9yaWVudGF0aW9uQ2xpZW50
czsKKyAgICAgICAgb3JpZW50YXRpb25DbGllbnRzLnJlc2VydmVJbml0aWFsQ2FwYWNpdHkobV9k
ZXZpY2VPcmllbnRhdGlvbkNsaWVudHMuY29tcHV0ZVNpemUoKSk7CisgICAgICAgIGZvciAoYXV0
byYgY2xpZW50IDogbV9kZXZpY2VPcmllbnRhdGlvbkNsaWVudHMpCisgICAgICAgICAgICBvcmll
bnRhdGlvbkNsaWVudHMuYXBwZW5kKG1ha2VXZWFrUHRyKCZjbGllbnQpKTsKKyAgICAgICAgCiAg
ICAgICAgIC8vIENvbXBvc2UgdGhlIHJhdyBtb3Rpb24gZGF0YSB0byBhbiBpbnRlcm1lZGlhdGUg
WlhZLWJhc2VkIDN4MyByb3RhdGlvbgogICAgICAgICAvLyBtYXRyaXggKFIpIHdoZXJlIFt6PWF0
dGl0dWRlLnlhdywgeD1hdHRpdHVkZS5waXRjaCwgeT1hdHRpdHVkZS5yb2xsXQogICAgICAgICAv
LyBpbiB0aGUgZm9ybToKQEAgLTMxOSw4ICszMjQsMTAgQEAgLSAodm9pZClzZW5kTW90aW9uRGF0
YTooQ01EZXZpY2VNb3Rpb24gKgogICAgICAgICBkb3VibGUgaGVhZGluZyA9IChtX2hlYWRpbmdB
dmFpbGFibGUgJiYgbmV3SGVhZGluZykgPyBuZXdIZWFkaW5nLm1hZ25ldGljSGVhZGluZyA6IDA7
CiAgICAgICAgIGRvdWJsZSBoZWFkaW5nQWNjdXJhY3kgPSAobV9oZWFkaW5nQXZhaWxhYmxlICYm
IG5ld0hlYWRpbmcpID8gbmV3SGVhZGluZy5oZWFkaW5nQWNjdXJhY3kgOiAtMTsKIAotICAgICAg
ICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IG9yaWVudGF0aW9uQ2xpZW50cy5zaXplKCk7ICsraSkK
LSAgICAgICAgICAgIG9yaWVudGF0aW9uQ2xpZW50c1tpXS0+b3JpZW50YXRpb25DaGFuZ2VkKGFs
cGhhLCBiZXRhLCBnYW1tYSwgaGVhZGluZywgaGVhZGluZ0FjY3VyYWN5KTsKKyAgICAgICAgZm9y
IChzaXplX3QgaSA9IDA7IGkgPCBvcmllbnRhdGlvbkNsaWVudHMuc2l6ZSgpOyArK2kpIHsKKyAg
ICAgICAgICAgIGlmIChvcmllbnRhdGlvbkNsaWVudHNbaV0pCisgICAgICAgICAgICAgICAgb3Jp
ZW50YXRpb25DbGllbnRzW2ldLT5vcmllbnRhdGlvbkNoYW5nZWQoYWxwaGEsIGJldGEsIGdhbW1h
LCBoZWFkaW5nLCBoZWFkaW5nQWNjdXJhY3kpOworICAgICAgICB9CiAgICAgfSk7CiB9CiAKSW5k
ZXg6IFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQv
Q2hhbmdlTG9nCShyZXZpc2lvbiAyNTMxNzMpCisrKyBTb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwko
d29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI1IEBACisyMDE5LTEyLTA1ICBQZXIgQXJuZSBWb2xs
YW4gIDxwdm9sbGFuQGFwcGxlLmNvbT4KKworICAgICAgICBbaU9TXSBDYWxscyB0byBkZXZpY2Ug
b3JpZW50YXRpb24gQVBJIHNob3VsZCBiZSBkb25lIGluIHRoZSBVSSBwcm9jZXNzCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDQ3MjAKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgYSBuZXcgY2xhc3Ms
IFdlYkRldmljZU9yaWVudGF0aW9uVXBkYXRlUHJvdmlkZXJQcm94eSwgdG8gaGFuZGxlIG1lc3Nh
Z2VzIHRvIHN0YXJ0IGFuZCBzdG9wIHVwZGF0aW5nIGRldmljZSBvcmllbnRhdGlvbgorICAgICAg
ICBpbiB0aGUgVUkgcHJvY2Vzcy4gQWxzbywgYWRkIGEgbWVzc2FnZSB0byB1cGRhdGUgdGhlIGRl
dmljZSBvcmllbnRhdGlvbiBpbiB0aGUgV2ViQ29udGVudCBwcm9jZXNzLiBJbiB0aGUgVUkgcHJv
Y2VzcywgdGhlCisgICAgICAgIGRldmljZSBvcmllbnRhdGlvbiBBUEkgaXMgY2FsbGVkIHRocm91
Z2ggdGhlIGFscmVhZHkgZXhpc3RpbmcgV2ViQ29yZU1vdGlvbk1hbmFnZXIgY2xhc3MuCisKKyAg
ICAgICAgKiBEZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0OgorICAgICAgICAqIERlcml2
ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0OgorICAgICAgICAqIERlcml2ZWRTb3VyY2VzLm1h
a2U6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHA6CisgICAgICAgIChXZWJL
aXQ6Om1fd2ViRGV2aWNlT3JpZW50YXRpb25VcGRhdGVQcm92aWRlclByb3h5KToKKyAgICAgICAg
KFdlYktpdDo6bV9yZXNldFJlY2VudENyYXNoQ291bnRUaW1lcik6IERlbGV0ZWQuCisgICAgICAg
ICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oOgorICAgICAgICAqIFdlYktpdC54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNw
cDoKKyAgICAgICAgKFdlYktpdDo6bV9vdmVycmlkZGVuTWVkaWFUeXBlKToKKwogMjAxOS0xMi0w
NSAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIE1FU1NBR0VfQ0hF
Q0sgQmFja0ZvcndhcmRJdGVtSWRlbnRpZmllciBvbiBpbmNvbWluZyBJUEMgZnJvbSB0aGUgV2Vi
UHJvY2VzcwpJbmRleDogU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVs
aXN0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNm
aWxlbGlzdAkocmV2aXNpb24gMjUzMTczKQorKysgU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNl
cy1pbnB1dC54Y2ZpbGVsaXN0CSh3b3JraW5nIGNvcHkpCkBAIC04OCw2ICs4OCw3IEBAICQoUFJP
SkVDVF9ESVIpL1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC4KICQoUFJPSkVDVF9ESVIpL1VJUHJv
Y2Vzcy9XZWJQcm9jZXNzUHJveHkubWVzc2FnZXMuaW4KICQoUFJPSkVDVF9ESVIpL1VJUHJvY2Vz
cy9pb3MvRWRpdGFibGVJbWFnZUNvbnRyb2xsZXIubWVzc2FnZXMuaW4KICQoUFJPSkVDVF9ESVIp
L1VJUHJvY2Vzcy9pb3MvU21hcnRNYWduaWZpY2F0aW9uQ29udHJvbGxlci5tZXNzYWdlcy5pbgor
JChQUk9KRUNUX0RJUikvVUlQcm9jZXNzL2lvcy9XZWJEZXZpY2VPcmllbnRhdGlvblVwZGF0ZVBy
b3ZpZGVyUHJveHkubWVzc2FnZXMuaW4KICQoUFJPSkVDVF9ESVIpL1VJUHJvY2Vzcy9tYWMvU2Vj
SXRlbVNoaW1Qcm94eS5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikvV2ViUHJvY2Vzcy9BcHBs
ZVBheS9XZWJQYXltZW50Q29vcmRpbmF0b3IubWVzc2FnZXMuaW4KICQoUFJPSkVDVF9ESVIpL1dl
YlByb2Nlc3MvQXV0b21hdGlvbi9XZWJBdXRvbWF0aW9uU2Vzc2lvblByb3h5LmpzCkBAIC0xMTMs
NiArMTE0LDcgQEAgJChQUk9KRUNUX0RJUikvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQwogJChQ
Uk9KRUNUX0RJUikvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0
aW9uLm1lc3NhZ2VzLmluCiAkKFBST0pFQ1RfRElSKS9XZWJQcm9jZXNzL1VzZXJDb250ZW50L1dl
YlVzZXJDb250ZW50Q29udHJvbGxlci5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikvV2ViUHJv
Y2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9XZWJBdXRoZW50aWNhdG9yQ29vcmRpbmF0b3IubWVzc2Fn
ZXMuaW4KKyQoUFJPSkVDVF9ESVIpL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRGV2aWNl
T3JpZW50YXRpb25VcGRhdGVQcm92aWRlci5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikvV2Vi
UHJvY2Vzcy9XZWJQYWdlL0NvY29hL1RleHRDaGVja2luZ0NvbnRyb2xsZXJQcm94eS5tZXNzYWdl
cy5pbgogJChQUk9KRUNUX0RJUikvV2ViUHJvY2Vzcy9XZWJQYWdlL0RyYXdpbmdBcmVhLm1lc3Nh
Z2VzLmluCiAkKFBST0pFQ1RfRElSKS9XZWJQcm9jZXNzL1dlYlBhZ2UvRXZlbnREaXNwYXRjaGVy
Lm1lc3NhZ2VzLmluCkluZGV4OiBTb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54
Y2ZpbGVsaXN0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMtb3V0
cHV0LnhjZmlsZWxpc3QJKHJldmlzaW9uIDI1MzE3MykKKysrIFNvdXJjZS9XZWJLaXQvRGVyaXZl
ZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QJKHdvcmtpbmcgY29weSkKQEAgLTE5Myw2ICsxOTMs
MTIgQEAgJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYgogJChCVUlMVF9Q
Uk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvV2ViQ29va2llTWFuYWdlclByb3h5
TWVzc2FnZVJlY2VpdmVyLmNwcAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2Vz
L1dlYktpdDIvV2ViQ29va2llTWFuYWdlclByb3h5TWVzc2FnZXMuaAogJChCVUlMVF9QUk9EVUNU
U19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvV2ViQ29va2llTWFuYWdlclByb3h5TWVzc2Fn
ZXNSZXBsaWVzLmgKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQy
L1dlYkRldmljZU9yaWVudGF0aW9uVXBkYXRlUHJvdmlkZXJNZXNzYWdlUmVjZWl2ZXIuY3BwCisk
KEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9XZWJEZXZpY2VPcmll
bnRhdGlvblVwZGF0ZVByb3ZpZGVyTWVzc2FnZXMuaAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rl
cml2ZWRTb3VyY2VzL1dlYktpdDIvV2ViRGV2aWNlT3JpZW50YXRpb25VcGRhdGVQcm92aWRlck1l
c3NhZ2VzUmVwbGllcy5oCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2Vi
S2l0Mi9XZWJEZXZpY2VPcmllbnRhdGlvblVwZGF0ZVByb3ZpZGVyUHJveHlNZXNzYWdlUmVjZWl2
ZXIuY3BwCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9XZWJE
ZXZpY2VPcmllbnRhdGlvblVwZGF0ZVByb3ZpZGVyUHJveHlNZXNzYWdlcy5oCiskKEJVSUxUX1BS
T0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9XZWJEZXZpY2VPcmllbnRhdGlvblVw
ZGF0ZVByb3ZpZGVyUHJveHlNZXNzYWdlc1JlcGxpZXMuaAogJChCVUlMVF9QUk9EVUNUU19ESVIp
L0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvV2ViRnVsbFNjcmVlbk1hbmFnZXJNZXNzYWdlUmVjZWl2
ZXIuY3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9XZWJG
dWxsU2NyZWVuTWFuYWdlck1lc3NhZ2VzLmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVk
U291cmNlcy9XZWJLaXQyL1dlYkZ1bGxTY3JlZW5NYW5hZ2VyTWVzc2FnZXNSZXBsaWVzLmgKSW5k
ZXg6IFNvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMubWFrZQo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLm1ha2UJKHJldmlzaW9uIDI1MzE3MykKKysrIFNvdXJj
ZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMubWFrZQkod29ya2luZyBjb3B5KQpAQCAtMTg5LDYgKzE4
OSw4IEBAIE1FU1NBR0VfUkVDRUlWRVJTID0gXAogICAgIFdlYlNXQ29udGV4dE1hbmFnZXJDb25u
ZWN0aW9uIFwKICAgICBXZWJTV1NlcnZlckNvbm5lY3Rpb24gXAogICAgIFdlYlNXU2VydmVyVG9D
b250ZXh0Q29ubmVjdGlvbiBcCisgICAgV2ViRGV2aWNlT3JpZW50YXRpb25VcGRhdGVQcm92aWRl
ciBcCisgICAgV2ViRGV2aWNlT3JpZW50YXRpb25VcGRhdGVQcm92aWRlclByb3h5IFwKICAgICBX
ZWJTb2NrZXRDaGFubmVsIFwKICAgICBXZWJTb2NrZXRTdHJlYW0gXAogICAgIFdlYlVzZXJDb250
ZW50Q29udHJvbGxlciBcCkluZGV4OiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJv
eHkuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94
eS5jcHAJKHJldmlzaW9uIDI1MzE3MykKKysrIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBh
Z2VQcm94eS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ0OSw2ICs0NDksOSBAQCBXZWJQYWdlUHJv
eHk6OldlYlBhZ2VQcm94eShQYWdlQ2xpZW50JiBwCiAgICAgLCBtX2luc3BlY3RvckRlYnVnZ2Fi
bGUobWFrZVVuaXF1ZTxXZWJQYWdlRGVidWdnYWJsZT4oKnRoaXMpKQogI2VuZGlmCiAgICAgLCBt
X3Jlc2V0UmVjZW50Q3Jhc2hDb3VudFRpbWVyKFJ1bkxvb3A6Om1haW4oKSwgdGhpcywgJldlYlBh
Z2VQcm94eTo6cmVzZXRSZWNlbnRDcmFzaENvdW50KQorI2lmIFBMQVRGT1JNKElPU19GQU1JTFkp
ICYmIEVOQUJMRShERVZJQ0VfT1JJRU5UQVRJT04pCisgICAgLCBtX3dlYkRldmljZU9yaWVudGF0
aW9uVXBkYXRlUHJvdmlkZXJQcm94eSgqdGhpcykKKyNlbmRpZgogewogICAgIFJFTEVBU0VfTE9H
X0lGX0FMTE9XRUQoTG9hZGluZywgImNvbnN0cnVjdG9yOiIpOwogCkluZGV4OiBTb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAkocmV2aXNpb24gMjUzMTczKQorKysgU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgJKHdvcmtpbmcgY29weSkKQEAgLTE0OSw2ICsx
NDksMTAgQEAgT0JKQ19DTEFTUyBfV0tSZW1vdGVPYmplY3RSZWdpc3RyeTsKICNpbmNsdWRlICJT
T0F1dGhvcml6YXRpb25Mb2FkUG9saWN5LmgiCiAjZW5kaWYKIAorI2lmIFBMQVRGT1JNKElPU19G
QU1JTFkpICYmIEVOQUJMRShERVZJQ0VfT1JJRU5UQVRJT04pCisjaW5jbHVkZSAiV2ViRGV2aWNl
T3JpZW50YXRpb25VcGRhdGVQcm92aWRlclByb3h5LmgiCisjZW5kaWYKKwogI2lmIEVOQUJMRShN
RURJQV9TRVNTSU9OKQogbmFtZXNwYWNlIFdlYkNvcmUgewogY2xhc3MgTWVkaWFTZXNzaW9uTWV0
YWRhdGE7CkBAIC0yNjI5LDYgKzI2MzMsMTAgQEAgcHJpdmF0ZToKICAgICBib29sIG1faXNRdW90
YUluY3JlYXNlRGVuaWVkIHsgZmFsc2UgfTsKICAgICAKICAgICBTdHJpbmcgbV9vdmVycmlkZGVu
TWVkaWFUeXBlOworICAgICAgICAKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKSAmJiBFTkFCTEUo
REVWSUNFX09SSUVOVEFUSU9OKQorICAgIFdlYkRldmljZU9yaWVudGF0aW9uVXBkYXRlUHJvdmlk
ZXJQcm94eSBtX3dlYkRldmljZU9yaWVudGF0aW9uVXBkYXRlUHJvdmlkZXJQcm94eTsKKyNlbmRp
ZgogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CkluZGV4OiBTb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9pb3MvV2ViRGV2aWNlT3JpZW50YXRpb25VcGRhdGVQcm92aWRlclByb3h5LmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dlYkRldmljZU9yaWVudGF0aW9u
VXBkYXRlUHJvdmlkZXJQcm94eS5oCShub25leGlzdGVudCkKKysrIFNvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL2lvcy9XZWJEZXZpY2VPcmllbnRhdGlvblVwZGF0ZVByb3ZpZGVyUHJveHkuaAkod29y
a2luZyBjb3B5KQpAQCAtMCwwICsxLDU3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE5IEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJ
UycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9S
UworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwor
ICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisg
KiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisK
KyNpZiBQTEFURk9STShJT1NfRkFNSUxZKSAmJiBFTkFCTEUoREVWSUNFX09SSUVOVEFUSU9OKQor
CisjaW5jbHVkZSAiTWVzc2FnZVJlY2VpdmVyLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9Nb3Rpb25N
YW5hZ2VyQ2xpZW50Lmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBXZWJQYWdlUHJv
eHk7CisKK2NsYXNzIFdlYkRldmljZU9yaWVudGF0aW9uVXBkYXRlUHJvdmlkZXJQcm94eSA6IHB1
YmxpYyBXZWJDb3JlOjpNb3Rpb25NYW5hZ2VyQ2xpZW50LCBwcml2YXRlIElQQzo6TWVzc2FnZVJl
Y2VpdmVyIHsKK3B1YmxpYzoKKyAgICBXZWJEZXZpY2VPcmllbnRhdGlvblVwZGF0ZVByb3ZpZGVy
UHJveHkoV2ViUGFnZVByb3h5Jik7CisgICAgfldlYkRldmljZU9yaWVudGF0aW9uVXBkYXRlUHJv
dmlkZXJQcm94eSgpOworCisgICAgdm9pZCBzdGFydFVwZGF0aW5nRGV2aWNlT3JpZW50YXRpb24o
KTsKKyAgICB2b2lkIHN0b3BVcGRhdGluZ0RldmljZU9yaWVudGF0aW9uKCk7CisgICAgCitwcml2
YXRlOgorICAgIC8vIFdlYkNvcmU6OldlYkNvcmVNb3Rpb25NYW5hZ2VyQ2xpZW50CisgICAgdm9p
ZCBvcmllbnRhdGlvbkNoYW5nZWQoZG91YmxlLCBkb3VibGUsIGRvdWJsZSwgZG91YmxlLCBkb3Vi
bGUpIGZpbmFsOworICAgIAorICAgIC8vIElQQzo6TWVzc2FnZVJlY2VpdmVyLgorICAgIHZvaWQg
ZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJikgb3ZlcnJp
ZGU7CisKKyAgICBXZWJQYWdlUHJveHkmIG1fcGFnZTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdl
YktpdAorCisjZW5kaWYgLy8gUExBVEZPUk0oSU9TX0ZBTUlMWSkgJiYgRU5BQkxFKERFVklDRV9P
UklFTlRBVElPTikKSW5kZXg6IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XZWJEZXZpY2VP
cmllbnRhdGlvblVwZGF0ZVByb3ZpZGVyUHJveHkubWVzc2FnZXMuaW4KPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dlYkRldmljZU9yaWVudGF0aW9uVXBkYXRlUHJv
dmlkZXJQcm94eS5tZXNzYWdlcy5pbgkobm9uZXhpc3RlbnQpCisrKyBTb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9pb3MvV2ViRGV2aWNlT3JpZW50YXRpb25VcGRhdGVQcm92aWRlclByb3h5Lm1lc3Nh
Z2VzLmluCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMjggQEAKKyMgQ29weXJpZ2h0IChDKSAy
MDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMKKyMgUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisjIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworIyBhcmUgbWV0OgorIyAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMgMi4gIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisjICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisjICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorIworIyBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJ
UycnIEFORAorIyBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorIyBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisjIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUyBC
RSBMSUFCTEUgRk9SCisjIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwKKyMgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IKKyMgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJV
UFRJT04pIEhPV0VWRVIKKyMgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwKKyMgT1IgVE9SVCAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UKKyMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKworI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpICYmIEVOQUJM
RShERVZJQ0VfT1JJRU5UQVRJT04pCittZXNzYWdlcyAtPiBXZWJEZXZpY2VPcmllbnRhdGlvblVw
ZGF0ZVByb3ZpZGVyUHJveHkgTm90UmVmQ291bnRlZCB7CisgICAgU3RhcnRVcGRhdGluZ0Rldmlj
ZU9yaWVudGF0aW9uKCk7CisgICAgU3RvcFVwZGF0aW5nRGV2aWNlT3JpZW50YXRpb24oKTsKK30K
KyNlbmRpZgpJbmRleDogU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dlYkRldmljZU9yaWVu
dGF0aW9uVXBkYXRlUHJvdmlkZXJQcm94eS5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9pb3MvV2ViRGV2aWNlT3JpZW50YXRpb25VcGRhdGVQcm92aWRlclByb3h5Lm1t
CShub25leGlzdGVudCkKKysrIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XZWJEZXZpY2VP
cmllbnRhdGlvblVwZGF0ZVByb3ZpZGVyUHJveHkubW0JKHdvcmtpbmcgY29weSkKQEAgLTAsMCAr
MSw2NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
KyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisg
KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNpbXBvcnQgImNvbmZpZy5oIgorI2ltcG9ydCAiV2ViRGV2
aWNlT3JpZW50YXRpb25VcGRhdGVQcm92aWRlclByb3h5LmgiCisKKyNpZiBQTEFURk9STShJT1Nf
RkFNSUxZKSAmJiBFTkFCTEUoREVWSUNFX09SSUVOVEFUSU9OKQorCisjaW1wb3J0ICJXZWJEZXZp
Y2VPcmllbnRhdGlvblVwZGF0ZVByb3ZpZGVyTWVzc2FnZXMuaCIKKyNpbXBvcnQgIldlYkRldmlj
ZU9yaWVudGF0aW9uVXBkYXRlUHJvdmlkZXJQcm94eU1lc3NhZ2VzLmgiCisjaW1wb3J0ICJXZWJQ
YWdlUHJveHkuaCIKKyNpbXBvcnQgIldlYlByb2Nlc3NQcm94eS5oIgorI2ltcG9ydCA8V2ViQ29y
ZS9XZWJDb3JlTW90aW9uTWFuYWdlci5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworV2ViRGV2
aWNlT3JpZW50YXRpb25VcGRhdGVQcm92aWRlclByb3h5OjpXZWJEZXZpY2VPcmllbnRhdGlvblVw
ZGF0ZVByb3ZpZGVyUHJveHkoV2ViUGFnZVByb3h5JiBwYWdlKQorICAgIDogbV9wYWdlKHBhZ2Up
Cit7CisgICAgbV9wYWdlLnByb2Nlc3MoKS5hZGRNZXNzYWdlUmVjZWl2ZXIoTWVzc2FnZXM6Oldl
YkRldmljZU9yaWVudGF0aW9uVXBkYXRlUHJvdmlkZXJQcm94eTo6bWVzc2FnZVJlY2VpdmVyTmFt
ZSgpLCBtX3BhZ2Uud2ViUGFnZUlEKCksICp0aGlzKTsKK30KKworV2ViRGV2aWNlT3JpZW50YXRp
b25VcGRhdGVQcm92aWRlclByb3h5Ojp+V2ViRGV2aWNlT3JpZW50YXRpb25VcGRhdGVQcm92aWRl
clByb3h5KCkKK3sKKyAgICBtX3BhZ2UucHJvY2VzcygpLnJlbW92ZU1lc3NhZ2VSZWNlaXZlcihN
ZXNzYWdlczo6V2ViRGV2aWNlT3JpZW50YXRpb25VcGRhdGVQcm92aWRlclByb3h5OjptZXNzYWdl
UmVjZWl2ZXJOYW1lKCksIG1fcGFnZS53ZWJQYWdlSUQoKSk7Cit9CisKK3ZvaWQgV2ViRGV2aWNl
T3JpZW50YXRpb25VcGRhdGVQcm92aWRlclByb3h5OjpzdGFydFVwZGF0aW5nRGV2aWNlT3JpZW50
YXRpb24oKQoreworICAgIFtbV2ViQ29yZU1vdGlvbk1hbmFnZXIgc2hhcmVkTWFuYWdlcl0gYWRk
T3JpZW50YXRpb25DbGllbnQ6dGhpc107Cit9CisKK3ZvaWQgV2ViRGV2aWNlT3JpZW50YXRpb25V
cGRhdGVQcm92aWRlclByb3h5OjpzdG9wVXBkYXRpbmdEZXZpY2VPcmllbnRhdGlvbigpCit7Cisg
ICAgW1tXZWJDb3JlTW90aW9uTWFuYWdlciBzaGFyZWRNYW5hZ2VyXSByZW1vdmVPcmllbnRhdGlv
bkNsaWVudDp0aGlzXTsKK30KKwordm9pZCBXZWJEZXZpY2VPcmllbnRhdGlvblVwZGF0ZVByb3Zp
ZGVyUHJveHk6Om9yaWVudGF0aW9uQ2hhbmdlZChkb3VibGUgYWxwaGEsIGRvdWJsZSBiZXRhLCBk
b3VibGUgZ2FtbWEsIGRvdWJsZSBjb21wYXNzSGVhZGluZywgZG91YmxlIGNvbXBhc3NBY2N1cmFj
eSkKK3sKKyAgICBtX3BhZ2Uuc2VuZChNZXNzYWdlczo6V2ViRGV2aWNlT3JpZW50YXRpb25VcGRh
dGVQcm92aWRlcjo6RGV2aWNlT3JpZW50YXRpb25DaGFuZ2VkKGFscGhhLCBiZXRhLCBnYW1tYSwg
Y29tcGFzc0hlYWRpbmcsIGNvbXBhc3NBY2N1cmFjeSkpOworfQorCit9IC8vIG5hbWVzcGFjZSBX
ZWJLaXQKKworI2VuZGlmIC8vIFBMQVRGT1JNKElPU19GQU1JTFkpCkluZGV4OiBTb3VyY2UvV2Vi
S2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHJldmlzaW9uIDI1MzE3
MykKKysrIFNvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHdv
cmtpbmcgY29weSkKQEAgLTE2OTYsNiArMTY5NiwxNCBAQAogCQlFMUQyNkE1MzE3NTk2NEQ5MDA5
NUJGRDEgLyogV2ViQ29udGVudFByb2Nlc3MueGliIGluIFJlc291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMUQyNkE0QzE3NTk2MzRFMDA5NUJGRDEgLyogV2ViQ29u
dGVudFByb2Nlc3MueGliICovOyB9OwogCQlFMUU1NTJDNTE2QUUwNjVGMDA0RUQ2NTMgLyogU2Fu
ZGJveEluaXRpYWxpemF0aW9uUGFyYW1ldGVycy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gRTFFNTUyQzMxNkFFMDY1RTAwNEVENjUzIC8qIFNhbmRib3hJ
bml0aWFsaXphdGlvblBhcmFtZXRlcnMuaCAqLzsgfTsKIAkJRTFFRTUzRTMxMUY4Q0ZDMDAwQ0NC
RUU0IC8qIEluamVjdGVkQnVuZGxlUGFnZUVkaXRvckNsaWVudC5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTFFRTUzREMxMUY4Q0Y5RjAwQ0NCRUU0IC8q
IEluamVjdGVkQnVuZGxlUGFnZUVkaXRvckNsaWVudC5oICovOyB9OworCQlFMzg2NkFFNTIzOTc0
MDA0MDBGODhGRTkgLyogV2ViRGV2aWNlT3JpZW50YXRpb25VcGRhdGVQcm92aWRlclByb3h5Lm1t
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTM4NjZBRTQy
Mzk3NDAwNDAwRjg4RkU5IC8qIFdlYkRldmljZU9yaWVudGF0aW9uVXBkYXRlUHJvdmlkZXJQcm94
eS5tbSAqLzsgfTsKKwkJRTM4NjZBRTcyMzk3NDA1MzAwRjg4RkU5IC8qIFdlYkRldmljZU9yaWVu
dGF0aW9uVXBkYXRlUHJvdmlkZXJQcm94eS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gRTM4NjZBRTYyMzk3NDA1MzAwRjg4RkU5IC8qIFdlYkRldmljZU9y
aWVudGF0aW9uVXBkYXRlUHJvdmlkZXJQcm94eS5oICovOyB9OworCQlFMzg2NkIwODIzOTlBMkQx
MDBGODhGRTkgLyogV2ViRGV2aWNlT3JpZW50YXRpb25VcGRhdGVQcm92aWRlclByb3h5TWVzc2Fn
ZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUzODY2
QjA1MjM5OTk3OUMwMEY4OEZFOSAvKiBXZWJEZXZpY2VPcmllbnRhdGlvblVwZGF0ZVByb3ZpZGVy
UHJveHlNZXNzYWdlcy5oICovOyB9OworCQlFMzg2NkIwOTIzOTlBMkQ1MDBGODhGRTkgLyogV2Vi
RGV2aWNlT3JpZW50YXRpb25VcGRhdGVQcm92aWRlclByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUzODY2QjA0MjM5
OTk3OUMwMEY4OEZFOSAvKiBXZWJEZXZpY2VPcmllbnRhdGlvblVwZGF0ZVByb3ZpZGVyUHJveHlN
ZXNzYWdlUmVjZWl2ZXIuY3BwICovOyB9OworCQlFMzg2NkIwQTIzOTlBMkQ5MDBGODhGRTkgLyog
V2ViRGV2aWNlT3JpZW50YXRpb25VcGRhdGVQcm92aWRlck1lc3NhZ2VzLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMzg2NkIwNzIzOTk5NzlEMDBGODhG
RTkgLyogV2ViRGV2aWNlT3JpZW50YXRpb25VcGRhdGVQcm92aWRlck1lc3NhZ2VzLmggKi87IH07
CisJCUUzODY2QjBCMjM5OUEyREQwMEY4OEZFOSAvKiBXZWJEZXZpY2VPcmllbnRhdGlvblVwZGF0
ZVByb3ZpZGVyTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEUzODY2QjA2MjM5OTk3OUMwMEY4OEZFOSAvKiBXZWJEZXZpY2VP
cmllbnRhdGlvblVwZGF0ZVByb3ZpZGVyTWVzc2FnZVJlY2VpdmVyLmNwcCAqLzsgfTsKKwkJRTM5
NjI4REQyMzk2MENDNjAwNjU4RUNEIC8qIFdlYkRldmljZU9yaWVudGF0aW9uVXBkYXRlUHJvdmlk
ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUzOTYy
OERCMjM5NjBDQzUwMDY1OEVDRCAvKiBXZWJEZXZpY2VPcmllbnRhdGlvblVwZGF0ZVByb3ZpZGVy
LmggKi87IH07CisJCUUzOTYyOERFMjM5NjBDQzYwMDY1OEVDRCAvKiBXZWJEZXZpY2VPcmllbnRh
dGlvblVwZGF0ZVByb3ZpZGVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEUzOTYyOERDMjM5NjBDQzYwMDY1OEVDRCAvKiBXZWJEZXZpY2VPcmllbnRh
dGlvblVwZGF0ZVByb3ZpZGVyLmNwcCAqLzsgfTsKIAkJRTQxM0Y1OUQxQUMxQURDNDAwMzQ1MzYw
IC8qIE5ldHdvcmtDYWNoZUVudHJ5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBFNDEzRjU5QjFBQzFBREI2MDAzNDUzNjAgLyogTmV0d29ya0NhY2hlRW50
cnkuaCAqLzsgfTsKIAkJRTQyRTA2MTAxQUE3NTIzQjAwQjExNjk5IC8qIE5ldHdvcmtDYWNoZUlP
Q2hhbm5lbC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
RTQyRTA2MEIxQUE3NDQwRDAwQjExNjk5IC8qIE5ldHdvcmtDYWNoZUlPQ2hhbm5lbC5oICovOyB9
OwogCQlFNDJFMDYxMjFBQTc1QUJEMDBCMTE2OTkgLyogTmV0d29ya0NhY2hlRGF0YS5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTQyRTA2MTExQUE3NUFC
RDAwQjExNjk5IC8qIE5ldHdvcmtDYWNoZURhdGEuaCAqLzsgfTsKQEAgLTE5NzUsOSArMTk4Myw5
IEBACiAJCQlkc3RQYXRoID0gIiQoSU5TVEFMTF9QQVRIKSI7CiAJCQlkc3RTdWJmb2xkZXJTcGVj
ID0gMDsKIAkJCWZpbGVzID0gKAorCQkJCTJEQjk2MDUzMjM5ODg2QzEwMDEwMjc5MSAvKiBjb20u
YXBwbGUuV2ViS2l0LkdQVS5zYiBpbiBDb3B5RmlsZXMgKi8sCiAJCQkJQTc4Q0NEREIxOTNBQzlG
ODAwNUVDQzI1IC8qIGNvbS5hcHBsZS5XZWJLaXQuTmV0d29ya2luZy5zYiBpbiBDb3B5RmlsZXMg
Ki8sCiAJCQkJQTc4Q0NEREMxOTNBQzlGQjAwNUVDQzI1IC8qIGNvbS5hcHBsZS5XZWJLaXQuV2Vi
Q29udGVudC5zYiBpbiBDb3B5RmlsZXMgKi8sCi0JCQkJMkRCOTYwNTMyMzk4ODZDMTAwMTAyNzkx
IC8qIGNvbS5hcHBsZS5XZWJLaXQuR1BVLnNiIGluIENvcHlGaWxlcyAqLywKIAkJCSk7CiAJCQly
dW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKQEAgLTQ4MDYsNiAr
NDgxNCwxNiBAQAogCQlFMUVFNTNEQzExRjhDRjlGMDBDQ0JFRTQgLyogSW5qZWN0ZWRCdW5kbGVQ
YWdlRWRpdG9yQ2xpZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEluamVj
dGVkQnVuZGxlUGFnZUVkaXRvckNsaWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQlFMUVFNTNFNjExRjhDRkZCMDBDQ0JFRTQgLyogSW5qZWN0ZWRCdW5kbGVQYWdlRWRpdG9yQ2xp
ZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEluamVjdGVkQnVu
ZGxlUGFnZUVkaXRvckNsaWVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUz
NDM5QjYzMjM0NTQ2M0EwMDExREUwQiAvKiBOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb25JbmZvLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgbmFtZSA9IE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbkluZm8uaDsgcGF0aCA9IE5l
dHdvcmsvTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uSW5mby5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQlFMzg2NkFFNDIzOTc0MDA0MDBGODhGRTkgLyogV2ViRGV2aWNlT3JpZW50YXRp
b25VcGRhdGVQcm92aWRlclByb3h5Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3Bw
OyBuYW1lID0gV2ViRGV2aWNlT3JpZW50YXRpb25VcGRhdGVQcm92aWRlclByb3h5Lm1tOyBwYXRo
ID0gaW9zL1dlYkRldmljZU9yaWVudGF0aW9uVXBkYXRlUHJvdmlkZXJQcm94eS5tbTsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTM4NjZBRTYyMzk3NDA1MzAwRjg4RkU5IC8qIFdlYkRl
dmljZU9yaWVudGF0aW9uVXBkYXRlUHJvdmlkZXJQcm94eS5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IG5hbWUgPSBXZWJEZXZpY2VPcmllbnRhdGlvblVwZGF0ZVByb3ZpZGVyUHJveHkuaDsg
cGF0aCA9IGlvcy9XZWJEZXZpY2VPcmllbnRhdGlvblVwZGF0ZVByb3ZpZGVyUHJveHkuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTM4NjZBRUQyMzk4NDcxQTAwRjg4RkU5IC8qIFdl
YkRldmljZU9yaWVudGF0aW9uVXBkYXRlUHJvdmlkZXJQcm94eS5tZXNzYWdlcy5pbiAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHRleHQ7IG5hbWUgPSBXZWJEZXZpY2VPcmllbnRhdGlvblVwZGF0ZVByb3ZpZGVyUHJveHku
bWVzc2FnZXMuaW47IHBhdGggPSBpb3MvV2ViRGV2aWNlT3JpZW50YXRpb25VcGRhdGVQcm92aWRl
clByb3h5Lm1lc3NhZ2VzLmluOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFMzg2NkIw
NDIzOTk5NzlDMDBGODhGRTkgLyogV2ViRGV2aWNlT3JpZW50YXRpb25VcGRhdGVQcm92aWRlclBy
b3h5TWVzc2FnZVJlY2VpdmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFt
ZSA9IFdlYkRldmljZU9yaWVudGF0aW9uVXBkYXRlUHJvdmlkZXJQcm94eU1lc3NhZ2VSZWNlaXZl
ci5jcHA7IHBhdGggPSBEZXJpdmVkU291cmNlcy9XZWJLaXQyL1dlYkRldmljZU9yaWVudGF0aW9u
VXBkYXRlUHJvdmlkZXJQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHA7IHNvdXJjZVRyZWUgPSBCVUlM
VF9QUk9EVUNUU19ESVI7IH07CisJCUUzODY2QjA1MjM5OTk3OUMwMEY4OEZFOSAvKiBXZWJEZXZp
Y2VPcmllbnRhdGlvblVwZGF0ZVByb3ZpZGVyUHJveHlNZXNzYWdlcy5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IG5hbWUgPSBXZWJEZXZpY2VPcmllbnRhdGlvblVwZGF0ZVByb3ZpZGVyUHJv
eHlNZXNzYWdlcy5oOyBwYXRoID0gRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9XZWJEZXZpY2VPcmll
bnRhdGlvblVwZGF0ZVByb3ZpZGVyUHJveHlNZXNzYWdlcy5oOyBzb3VyY2VUcmVlID0gQlVJTFRf
UFJPRFVDVFNfRElSOyB9OworCQlFMzg2NkIwNjIzOTk5NzlDMDBGODhGRTkgLyogV2ViRGV2aWNl
T3JpZW50YXRpb25VcGRhdGVQcm92aWRlck1lc3NhZ2VSZWNlaXZlci5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBXZWJEZXZpY2VPcmllbnRhdGlvblVwZGF0ZVByb3Zp
ZGVyTWVzc2FnZVJlY2VpdmVyLmNwcDsgcGF0aCA9IERlcml2ZWRTb3VyY2VzL1dlYktpdDIvV2Vi
RGV2aWNlT3JpZW50YXRpb25VcGRhdGVQcm92aWRlck1lc3NhZ2VSZWNlaXZlci5jcHA7IHNvdXJj
ZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7IH07CisJCUUzODY2QjA3MjM5OTk3OUQwMEY4OEZF
OSAvKiBXZWJEZXZpY2VPcmllbnRhdGlvblVwZGF0ZVByb3ZpZGVyTWVzc2FnZXMuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gV2ViRGV2aWNlT3JpZW50YXRpb25VcGRhdGVQcm92
aWRlck1lc3NhZ2VzLmg7IHBhdGggPSBEZXJpdmVkU291cmNlcy9XZWJLaXQyL1dlYkRldmljZU9y
aWVudGF0aW9uVXBkYXRlUHJvdmlkZXJNZXNzYWdlcy5oOyBzb3VyY2VUcmVlID0gQlVJTFRfUFJP
RFVDVFNfRElSOyB9OworCQlFMzk2MjhEQjIzOTYwQ0M1MDA2NThFQ0QgLyogV2ViRGV2aWNlT3Jp
ZW50YXRpb25VcGRhdGVQcm92aWRlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBXZWJEZXZpY2VPcmllbnRhdGlvblVwZGF0ZVByb3ZpZGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCUUzOTYyOERDMjM5NjBDQzYwMDY1OEVDRCAvKiBXZWJEZXZpY2VPcmllbnRh
dGlvblVwZGF0ZVByb3ZpZGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IFdlYkRldmljZU9yaWVudGF0aW9uVXBkYXRlUHJvdmlkZXIuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQlFMzk2MjhFNDIzOTcxRjM0MDA2NThFQ0QgLyogV2ViRGV2aWNlT3Jp
ZW50YXRpb25VcGRhdGVQcm92aWRlci5tZXNzYWdlcy5pbiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGgg
PSBXZWJEZXZpY2VPcmllbnRhdGlvblVwZGF0ZVByb3ZpZGVyLm1lc3NhZ2VzLmluOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQlFNDA0OTA3MDIxREU2NUY3MDAzN0YwREIgLyogU2Nyb2xs
ZXJQYWlyTWFjLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNjcm9sbGVyUGFp
ck1hYy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFNDA0OTA3MTIxREU2NUY3MDAz
N0YwREIgLyogU2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZVJlbW90ZU1hYy5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTY3JvbGxpbmdUcmVlRnJhbWVTY3Jv
bGxpbmdOb2RlUmVtb3RlTWFjLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTQw
NDkwNzIyMURFNjVGNzAwMzdGMERCIC8qIFNjcm9sbGVyUGFpck1hYy5tbSAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFNjcm9sbGVyUGFpck1hYy5tbTsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTU5MjMsNiArNTk0MSw5IEBACiAJCQlpc2EgPSBQQlhHcm91
cDsKIAkJCWNoaWxkcmVuID0gKAogCQkJCTJEMjhGM0UwMTg4NUNDQzEwMDRCOUVBRSAvKiBXZWJD
aHJvbWVDbGllbnRJT1MubW0gKi8sCisJCQkJRTM5NjI4REMyMzk2MENDNjAwNjU4RUNEIC8qIFdl
YkRldmljZU9yaWVudGF0aW9uVXBkYXRlUHJvdmlkZXIuY3BwICovLAorCQkJCUUzOTYyOERCMjM5
NjBDQzUwMDY1OEVDRCAvKiBXZWJEZXZpY2VPcmllbnRhdGlvblVwZGF0ZVByb3ZpZGVyLmggKi8s
CisJCQkJRTM5NjI4RTQyMzk3MUYzNDAwNjU4RUNEIC8qIFdlYkRldmljZU9yaWVudGF0aW9uVXBk
YXRlUHJvdmlkZXIubWVzc2FnZXMuaW4gKi8sCiAJCQkJMkQyOEYzRTIxODg1Q0NDMTAwNEI5RUFF
IC8qIFdlYkVkaXRvckNsaWVudElPUy5tbSAqLywKIAkJCQkyRDI4RjNFMzE4ODVDQ0MxMDA0QjlF
QUUgLyogV2ViRnJhbWVMb2FkZXJDbGllbnRJT1MubW0gKi8sCiAJCQkJQTFDNTEyQzYxOTA2NTZF
NTAwNDQ4OTE0IC8qIFdlYlByZXZpZXdMb2FkZXJDbGllbnQuY3BwICovLApAQCAtNjMxMCw2ICs2
MzMxLDkgQEAKIAkJCQkyREY5NTkzNDE4QTQyNDEyMDA5Nzg1QTEgLyogVmlld0dlc3R1cmVDb250
cm9sbGVySU9TLm1tICovLAogCQkJCUU1QkVGNjgwMjEzMEM0N0YwMEYzMTExMSAvKiBXZWJEYXRh
TGlzdFN1Z2dlc3Rpb25zRHJvcGRvd25JT1MuaCAqLywKIAkJCQlFNUJFRjY4MTIxMzBDNDdGMDBG
MzExMTEgLyogV2ViRGF0YUxpc3RTdWdnZXN0aW9uc0Ryb3Bkb3duSU9TLm1tICovLAorCQkJCUUz
ODY2QUU2MjM5NzQwNTMwMEY4OEZFOSAvKiBXZWJEZXZpY2VPcmllbnRhdGlvblVwZGF0ZVByb3Zp
ZGVyUHJveHkuaCAqLywKKwkJCQlFMzg2NkFFRDIzOTg0NzFBMDBGODhGRTkgLyogV2ViRGV2aWNl
T3JpZW50YXRpb25VcGRhdGVQcm92aWRlclByb3h5Lm1lc3NhZ2VzLmluICovLAorCQkJCUUzODY2
QUU0MjM5NzQwMDQwMEY4OEZFOSAvKiBXZWJEZXZpY2VPcmllbnRhdGlvblVwZGF0ZVByb3ZpZGVy
UHJveHkubW0gKi8sCiAJCQkJMkRBOTQ0QUIxODg0RTlCQTAwRUQ4NkRCIC8qIFdlYlBhZ2VQcm94
eUlPUy5tbSAqLywKIAkJCQkyREE5NDRBQzE4ODRFOUJBMDBFRDg2REIgLyogV2ViUHJvY2Vzc1By
b3h5SU9TLm1tICovLAogCQkJCTBGQ0I0RTM4MThCQkUwNDQwMDBGQ0ZDOSAvKiBXS0FjdGlvblNo
ZWV0LmggKi8sCkBAIC05MTQ4LDYgKzkxNzIsMTAgQEAKIAkJCQkzMzA5MzQ0NDEzMTVCOTIyMDA5
N0E3QkMgLyogV2ViQ29va2llTWFuYWdlck1lc3NhZ2VzLmggKi8sCiAJCQkJMzMwOTM0NDUxMzE1
QjkyMjAwOTdBN0JDIC8qIFdlYkNvb2tpZU1hbmFnZXJQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAg
Ki8sCiAJCQkJMzMwOTM0NDYxMzE1QjkyMjAwOTdBN0JDIC8qIFdlYkNvb2tpZU1hbmFnZXJQcm94
eU1lc3NhZ2VzLmggKi8sCisJCQkJRTM4NjZCMDYyMzk5OTc5QzAwRjg4RkU5IC8qIFdlYkRldmlj
ZU9yaWVudGF0aW9uVXBkYXRlUHJvdmlkZXJNZXNzYWdlUmVjZWl2ZXIuY3BwICovLAorCQkJCUUz
ODY2QjA3MjM5OTk3OUQwMEY4OEZFOSAvKiBXZWJEZXZpY2VPcmllbnRhdGlvblVwZGF0ZVByb3Zp
ZGVyTWVzc2FnZXMuaCAqLywKKwkJCQlFMzg2NkIwNDIzOTk5NzlDMDBGODhGRTkgLyogV2ViRGV2
aWNlT3JpZW50YXRpb25VcGRhdGVQcm92aWRlclByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCAqLywK
KwkJCQlFMzg2NkIwNTIzOTk5NzlDMDBGODhGRTkgLyogV2ViRGV2aWNlT3JpZW50YXRpb25VcGRh
dGVQcm92aWRlclByb3h5TWVzc2FnZXMuaCAqLywKIAkJCQlDRDczQkE0ODEzMUFDRDhFMDBFRURF
RDIgLyogV2ViRnVsbFNjcmVlbk1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwICovLAogCQkJCUNE
NzNCQTQ5MTMxQUNEOEUwMEVFREVEMiAvKiBXZWJGdWxsU2NyZWVuTWFuYWdlck1lc3NhZ2VzLmgg
Ki8sCiAJCQkJQ0Q3M0JBNDUxMzFBQ0M4ODAwRUVERUQyIC8qIFdlYkZ1bGxTY3JlZW5NYW5hZ2Vy
UHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwICovLApAQCAtMTAxMzUsNiArMTAxNjMsMTAgQEAKIAkJ
CQlFNUJFRjY4MjIxMzBDNDgwMDBGMzExMTEgLyogV2ViRGF0YUxpc3RTdWdnZXN0aW9uc0Ryb3Bk
b3duSU9TLmggaW4gSGVhZGVycyAqLywKIAkJCQlFNTY4QjkyMjIwQTNBQzZBMDBFM0M4NTYgLyog
V2ViRGF0YUxpc3RTdWdnZXN0aW9uc0Ryb3Bkb3duTWFjLmggaW4gSGVhZGVycyAqLywKIAkJCQk0
NkIwNTI0NzIyNjY4RDg1MDAyNjVCOTcgLyogV2ViRGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25B
Y2Nlc3NDb250cm9sbGVyLmggaW4gSGVhZGVycyAqLywKKwkJCQlFMzk2MjhERDIzOTYwQ0M2MDA2
NThFQ0QgLyogV2ViRGV2aWNlT3JpZW50YXRpb25VcGRhdGVQcm92aWRlci5oIGluIEhlYWRlcnMg
Ki8sCisJCQkJRTM4NjZCMEEyMzk5QTJEOTAwRjg4RkU5IC8qIFdlYkRldmljZU9yaWVudGF0aW9u
VXBkYXRlUHJvdmlkZXJNZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8sCisJCQkJRTM4NjZBRTcyMzk3
NDA1MzAwRjg4RkU5IC8qIFdlYkRldmljZU9yaWVudGF0aW9uVXBkYXRlUHJvdmlkZXJQcm94eS5o
IGluIEhlYWRlcnMgKi8sCisJCQkJRTM4NjZCMDgyMzk5QTJEMTAwRjg4RkU5IC8qIFdlYkRldmlj
ZU9yaWVudGF0aW9uVXBkYXRlUHJvdmlkZXJQcm94eU1lc3NhZ2VzLmggaW4gSGVhZGVycyAqLywK
IAkJCQlDRDE5QTI2RTFBMTNFODM0MDA4RDY1MEUgLyogV2ViRGlhZ25vc3RpY0xvZ2dpbmdDbGll
bnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTFBNUIxQzU1MTg5ODdFREYwMDRGQ0Y5QiAvKiBXZWJE
b2N1bWVudExvYWRlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkMwMzJEN0IxMEY0Mzc4RDAwNThD
MTVBIC8qIFdlYkRyYWdDbGllbnQuaCBpbiBIZWFkZXJzICovLApAQCAtMTE4MjgsNiArMTE4NjAs
MTAgQEAKIAkJCQkzMzA5MzQ0NzEzMTVCOTIyMDA5N0E3QkMgLyogV2ViQ29va2llTWFuYWdlck1l
c3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkzMzA5MzQ0OTEzMTVCOTIyMDA5
N0E3QkMgLyogV2ViQ29va2llTWFuYWdlclByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCTJEOTJBNzg4MjEyQjZBQjEwMEY0OTNGRCAvKiBXZWJDb3JlQXJndW1lbnRD
b2RlcnMuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJRTM5NjI4REUyMzk2MENDNjAwNjU4RUNEIC8q
IFdlYkRldmljZU9yaWVudGF0aW9uVXBkYXRlUHJvdmlkZXIuY3BwIGluIFNvdXJjZXMgKi8sCisJ
CQkJRTM4NjZCMEIyMzk5QTJERDAwRjg4RkU5IC8qIFdlYkRldmljZU9yaWVudGF0aW9uVXBkYXRl
UHJvdmlkZXJNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJRTM4NjZBRTUy
Mzk3NDAwNDAwRjg4RkU5IC8qIFdlYkRldmljZU9yaWVudGF0aW9uVXBkYXRlUHJvdmlkZXJQcm94
eS5tbSBpbiBTb3VyY2VzICovLAorCQkJCUUzODY2QjA5MjM5OUEyRDUwMEY4OEZFOSAvKiBXZWJE
ZXZpY2VPcmllbnRhdGlvblVwZGF0ZVByb3ZpZGVyUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJMkQ5MkE3ODkyMTJCNkFCMTAwRjQ5M0ZEIC8qIFdlYkV2ZW50LmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCUNENzNCQTRFMTMxQUNEQjcwMEVFREVEMiAvKiBXZWJGdWxs
U2NyZWVuTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlDRDcz
QkE0NzEzMUFDQzlBMDBFRURFRDIgLyogV2ViRnVsbFNjcmVlbk1hbmFnZXJQcm94eU1lc3NhZ2VS
ZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywKSW5kZXg6IFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJDb3JlU3VwcG9ydC9XZWJEZXZpY2VPcmllbnRhdGlvblVwZGF0ZVByb3ZpZGVyLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2Vi
RGV2aWNlT3JpZW50YXRpb25VcGRhdGVQcm92aWRlci5jcHAJKG5vbmV4aXN0ZW50KQorKysgU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkRldmljZU9yaWVudGF0aW9u
VXBkYXRlUHJvdmlkZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNzUgQEAKKy8qCisq
IENvcHlyaWdodCAoQykgMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisqCisq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyogYXJlIG1ldDoKKyogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisqCisq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJV
VE9SUyBgYEFTIElTJycKKyogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09O
VFJJQlVUT1JTCisqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyogU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTCisqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOCisqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisqIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YK
KyogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorKi8KKworI2luY2x1ZGUgImNvbmZp
Zy5oIgorI2luY2x1ZGUgIldlYkRldmljZU9yaWVudGF0aW9uVXBkYXRlUHJvdmlkZXIuaCIKKwor
I2lmIFBMQVRGT1JNKElPU19GQU1JTFkpICYmIEVOQUJMRShERVZJQ0VfT1JJRU5UQVRJT04pCisK
KyNpbmNsdWRlICJXZWJEZXZpY2VPcmllbnRhdGlvblVwZGF0ZVByb3ZpZGVyTWVzc2FnZXMuaCIK
KyNpbmNsdWRlICJXZWJEZXZpY2VPcmllbnRhdGlvblVwZGF0ZVByb3ZpZGVyUHJveHlNZXNzYWdl
cy5oIgorI2luY2x1ZGUgIldlYlBhZ2UuaCIKKyNpbmNsdWRlICJXZWJQcm9jZXNzLmgiCisKKyNp
bmNsdWRlIDxXZWJDb3JlL01vdGlvbk1hbmFnZXJDbGllbnQuaD4KKworbmFtZXNwYWNlIFdlYktp
dCB7CisKK1dlYkRldmljZU9yaWVudGF0aW9uVXBkYXRlUHJvdmlkZXI6OldlYkRldmljZU9yaWVu
dGF0aW9uVXBkYXRlUHJvdmlkZXIoV2ViUGFnZSYgcGFnZSkKKyAgICA6IG1fcGFnZShtYWtlV2Vh
a1B0cihwYWdlKSkKK3sKKyAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5hZGRNZXNzYWdlUmVj
ZWl2ZXIoTWVzc2FnZXM6OldlYkRldmljZU9yaWVudGF0aW9uVXBkYXRlUHJvdmlkZXI6Om1lc3Nh
Z2VSZWNlaXZlck5hbWUoKSwgcGFnZS5pZGVudGlmaWVyKCksICp0aGlzKTsKK30KKworV2ViRGV2
aWNlT3JpZW50YXRpb25VcGRhdGVQcm92aWRlcjo6fldlYkRldmljZU9yaWVudGF0aW9uVXBkYXRl
UHJvdmlkZXIoKQoreworICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLnJlbW92ZU1lc3NhZ2VS
ZWNlaXZlcihNZXNzYWdlczo6V2ViRGV2aWNlT3JpZW50YXRpb25VcGRhdGVQcm92aWRlcjo6bWVz
c2FnZVJlY2VpdmVyTmFtZSgpKTsKK30KKwordm9pZCBXZWJEZXZpY2VPcmllbnRhdGlvblVwZGF0
ZVByb3ZpZGVyOjpzdGFydFVwZGF0aW5nKFdlYkNvcmU6Ok1vdGlvbk1hbmFnZXJDbGllbnQmIGNs
aWVudCkKK3sKKyAgICBpZiAobV9jbGllbnRzLmlzRW1wdHkoKSAmJiBtX3BhZ2UpCisgICAgICAg
IG1fcGFnZS0+c2VuZChNZXNzYWdlczo6V2ViRGV2aWNlT3JpZW50YXRpb25VcGRhdGVQcm92aWRl
clByb3h5OjpTdGFydFVwZGF0aW5nRGV2aWNlT3JpZW50YXRpb24oKSk7CisgICAgbV9jbGllbnRz
LmFkZCgmY2xpZW50KTsKK30KKwordm9pZCBXZWJEZXZpY2VPcmllbnRhdGlvblVwZGF0ZVByb3Zp
ZGVyOjpzdG9wVXBkYXRpbmcoV2ViQ29yZTo6TW90aW9uTWFuYWdlckNsaWVudCYgY2xpZW50KQor
eworICAgIGlmIChtX2NsaWVudHMuaXNFbXB0eSgpKQorICAgICAgICByZXR1cm47CisgICAgbV9j
bGllbnRzLnJlbW92ZSgmY2xpZW50KTsKKyAgICBpZiAobV9jbGllbnRzLmlzRW1wdHkoKSAmJiBt
X3BhZ2UpCisgICAgICAgIG1fcGFnZS0+c2VuZChNZXNzYWdlczo6V2ViRGV2aWNlT3JpZW50YXRp
b25VcGRhdGVQcm92aWRlclByb3h5OjpTdG9wVXBkYXRpbmdEZXZpY2VPcmllbnRhdGlvbigpKTsK
K30KKwordm9pZCBXZWJEZXZpY2VPcmllbnRhdGlvblVwZGF0ZVByb3ZpZGVyOjpkZXZpY2VPcmll
bnRhdGlvbkNoYW5nZWQoZG91YmxlIGFscGhhLCBkb3VibGUgYmV0YSwgZG91YmxlIGdhbW1hLCBk
b3VibGUgY29tcGFzc0hlYWRpbmcsIGRvdWJsZSBjb21wYXNzQWNjdXJhY3kpCit7CisgICAgZm9y
IChhdXRvKiBjbGllbnQgOiBjb3B5VG9WZWN0b3IobV9jbGllbnRzKSkKKyAgICAgICAgY2xpZW50
LT5vcmllbnRhdGlvbkNoYW5nZWQoYWxwaGEsIGJldGEsIGdhbW1hLCBjb21wYXNzSGVhZGluZywg
Y29tcGFzc0FjY3VyYWN5KTsKK30KKworfQorCisjZW5kaWYgLy8gUExBVEZPUk0oSU9TX0ZBTUlM
WSkgJiYgRU5BQkxFKERFVklDRV9PUklFTlRBVElPTikKSW5kZXg6IFNvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJEZXZpY2VPcmllbnRhdGlvblVwZGF0ZVByb3ZpZGVy
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0
L1dlYkRldmljZU9yaWVudGF0aW9uVXBkYXRlUHJvdmlkZXIuaAkobm9uZXhpc3RlbnQpCisrKyBT
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRGV2aWNlT3JpZW50YXRp
b25VcGRhdGVQcm92aWRlci5oCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNjIgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQg
SVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgIk1lc3NhZ2VSZWNlaXZlci5oIgorI2lu
Y2x1ZGUgIldlYlBhZ2UuaCIKKworI2luY2x1ZGUgPFdlYkNvcmUvRGV2aWNlT3JpZW50YXRpb25V
cGRhdGVQcm92aWRlci5oPgorCisjaW5jbHVkZSA8d3RmL0hhc2hTZXQuaD4KKyNpbmNsdWRlIDx3
dGYvV2Vha1B0ci5oPgorCisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkgJiYgRU5BQkxFKERFVklD
RV9PUklFTlRBVElPTikKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIFdlYkRldmljZU9y
aWVudGF0aW9uVXBkYXRlUHJvdmlkZXIgZmluYWwgOiBwdWJsaWMgV2ViQ29yZTo6RGV2aWNlT3Jp
ZW50YXRpb25VcGRhdGVQcm92aWRlciwgcHJpdmF0ZSBJUEM6Ok1lc3NhZ2VSZWNlaXZlciB7Citw
dWJsaWM6CisgICAgc3RhdGljIFJlZjxXZWJEZXZpY2VPcmllbnRhdGlvblVwZGF0ZVByb3ZpZGVy
PiBjcmVhdGUoV2ViUGFnZSYgcGFnZSkgeyByZXR1cm4gYWRvcHRSZWYoKm5ldyBXZWJEZXZpY2VP
cmllbnRhdGlvblVwZGF0ZVByb3ZpZGVyKHBhZ2UpKTt9CisKK3ByaXZhdGU6CisgICAgV2ViRGV2
aWNlT3JpZW50YXRpb25VcGRhdGVQcm92aWRlcihXZWJQYWdlJik7CisgICAgfldlYkRldmljZU9y
aWVudGF0aW9uVXBkYXRlUHJvdmlkZXIoKTsKKworICAgIC8vIFdlYkNvcmU6OkRldmljZU9yaWVu
dGF0aW9uVXBkYXRlUHJvdmlkZXIKKyAgICB2b2lkIHN0YXJ0VXBkYXRpbmcoV2ViQ29yZTo6TW90
aW9uTWFuYWdlckNsaWVudCYpIGZpbmFsOworICAgIHZvaWQgc3RvcFVwZGF0aW5nKFdlYkNvcmU6
Ok1vdGlvbk1hbmFnZXJDbGllbnQmKSBmaW5hbDsKKyAgICB2b2lkIGRldmljZU9yaWVudGF0aW9u
Q2hhbmdlZChkb3VibGUsIGRvdWJsZSwgZG91YmxlLCBkb3VibGUsIGRvdWJsZSkgZmluYWw7CisK
KyAgICAvLyBJUEM6Ok1lc3NhZ2VSZWNlaXZlci4KKyAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdl
KElQQzo6Q29ubmVjdGlvbiYsIElQQzo6RGVjb2RlciYpIG92ZXJyaWRlOworCisgICAgV2Vha1B0
cjxXZWJQYWdlPiBtX3BhZ2U7CisgICAgSGFzaFNldDxXZWJDb3JlOjpNb3Rpb25NYW5hZ2VyQ2xp
ZW50Kj4gbV9jbGllbnRzOworfTsKKworfQorCisjZW5kaWYgLy8gUExBVEZPUk0oSU9TX0ZBTUlM
WSkgJiYgRU5BQkxFKERFVklDRV9PUklFTlRBVElPTikKSW5kZXg6IFNvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJEZXZpY2VPcmllbnRhdGlvblVwZGF0ZVByb3ZpZGVy
Lm1lc3NhZ2VzLmluCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC9XZWJEZXZpY2VPcmllbnRhdGlvblVwZGF0ZVByb3ZpZGVyLm1lc3NhZ2VzLmlu
CShub25leGlzdGVudCkKKysrIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9y
dC9XZWJEZXZpY2VPcmllbnRhdGlvblVwZGF0ZVByb3ZpZGVyLm1lc3NhZ2VzLmluCSh3b3JraW5n
IGNvcHkpCkBAIC0wLDAgKzEsMjcgQEAKKyMgQ29weXJpZ2h0IChDKSAyMDE5IEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMKKyMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisjIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworIyBhcmUg
bWV0OgorIyAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMgMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisjICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorIworIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFORAorIyBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBUSEUgSU1QTElFRAorIyBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisjIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SCisj
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
IENPTlNFUVVFTlRJQUwKKyMgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IKKyMgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIK
KyMgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwKKyMgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyMgT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKworI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpICYmIEVOQUJMRShERVZJQ0VfT1JJRU5U
QVRJT04pCittZXNzYWdlcyAtPiBXZWJEZXZpY2VPcmllbnRhdGlvblVwZGF0ZVByb3ZpZGVyIHsK
KyAgICBEZXZpY2VPcmllbnRhdGlvbkNoYW5nZWQoZG91YmxlIGFscGhhLCBkb3VibGUgYmV0YSwg
ZG91YmxlIGdhbW1hLCBkb3VibGUgY29tcGFzc0hlYWRpbmcsIGRvdWJsZSBjb21wYXNzQWNjdXJh
Y3kpCit9CisjZW5kaWYKSW5kZXg6IFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dl
YlBhZ2UuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdl
L1dlYlBhZ2UuY3BwCShyZXZpc2lvbiAyNTMxNzMpCisrKyBTb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViUGFnZS9XZWJQYWdlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzA3LDYgKzMwNywxMCBA
QAogI2luY2x1ZGUgPFdlYkNvcmUvQXV0aGVudGljYXRvckNvb3JkaW5hdG9yLmg+CiAjZW5kaWYK
IAorI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpICYmIEVOQUJMRShERVZJQ0VfT1JJRU5UQVRJT04p
CisjaW5jbHVkZSAiV2ViRGV2aWNlT3JpZW50YXRpb25VcGRhdGVQcm92aWRlci5oIgorI2VuZGlm
CisKIG5hbWVzcGFjZSBXZWJLaXQgewogdXNpbmcgbmFtZXNwYWNlIEpTQzsKIHVzaW5nIG5hbWVz
cGFjZSBXZWJDb3JlOwpAQCAtNTAxLDYgKzUwNSwxMCBAQCBXZWJQYWdlOjpXZWJQYWdlKFBhZ2VJ
ZGVudGlmaWVyIHBhZ2VJRCwgCiAjaWYgRU5BQkxFKEFQUExJQ0FUSU9OX01BTklGRVNUKQogICAg
IHBhZ2VDb25maWd1cmF0aW9uLmFwcGxpY2F0aW9uTWFuaWZlc3QgPSBwYXJhbWV0ZXJzLmFwcGxp
Y2F0aW9uTWFuaWZlc3Q7CiAjZW5kaWYKKyAgICAKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKSAm
JiBFTkFCTEUoREVWSUNFX09SSUVOVEFUSU9OKQorICAgIHBhZ2VDb25maWd1cmF0aW9uLmRldmlj
ZU9yaWVudGF0aW9uVXBkYXRlUHJvdmlkZXIgPSBXZWJEZXZpY2VPcmllbnRhdGlvblVwZGF0ZVBy
b3ZpZGVyOjpjcmVhdGUoKnRoaXMpOworI2VuZGlmCiAKICAgICBtX3BhZ2UgPSBtYWtlVW5pcXVl
PFBhZ2U+KFdURk1vdmUocGFnZUNvbmZpZ3VyYXRpb24pKTsKIAo=
</data>
<flag name="review"
          id="400802"
          type_id="1"
          status="+"
          setter="achristensen"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>385051</attachid>
            <date>2019-12-06 15:35:40 -0800</date>
            <delta_ts>2019-12-06 16:19:30 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-204720-20191206153540.patch</filename>
            <type>text/plain</type>
            <size>60828</size>
            <attacher name="Per Arne Vollan">pvollan</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDI1MzIyNikKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQ0IEBACisyMDE5LTEyLTA2ICBQZXIgQXJu
ZSBWb2xsYW4gIDxwdm9sbGFuQGFwcGxlLmNvbT4KKworICAgICAgICBbaU9TXSBDYWxscyB0byBk
ZXZpY2Ugb3JpZW50YXRpb24gQVBJIHNob3VsZCBiZSBkb25lIGluIHRoZSBVSSBwcm9jZXNzCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDQ3MjAKKwor
ICAgICAgICBSZXZpZXdlZCBieSBBbGV4IENocmlzdGVuc2VuLgorCisgICAgICAgIFRoZSBkZXZp
Y2Ugb3JpZW50YXRpb24gQVBJIG9uIGlPUyBpcyBjb21tdW5pY2F0aW5nIHdpdGggbG9jYXRpb25k
LiBTaW5jZSBtYWNoIGxvb2t1cCB0byB0aGlzIGRhZW1vbgorICAgICAgICB3aWxsIGJlIGNsb3Nl
ZCwgdGhlIGNhbGxzIHRvIHRoaXMgQVBJIHNob3VsZCBiZSBtb3ZlZCBmcm9tIHRoZSBXZWJDb250
ZW50IHByb2Nlc3MgdG8gdGhlIFVJIHByb2Nlc3MuCisgICAgICAgIFRoaXMgcGF0Y2ggaW1wbGVt
ZW50cyBmb3J3YXJkaW5nIG9mIHRoZSBkZXZpY2Ugb3JpZW50YXRpb24gcmVxdWVzdHMgdG8gdGhl
IFVJIHByb2Nlc3MgdGhyb3VnaCBhIG5ldworICAgICAgICBjbGFzcywgRGV2aWNlT3JpZW50YXRp
b25VcGRhdGVQcm92aWRlciwgd2hpY2ggaXMgc3ViY2xhc3NlZCBieSBXZWJEZXZpY2VPcmllbnRh
dGlvblVwZGF0ZVByb3ZpZGVyIGluCisgICAgICAgIG1vZGVybiBXZWJLaXQuIFRoaXMgY2xhc3Mg
aW1wbGVtZW50cyBmb3J3YXJkaW5nIG9mIHRoZSByZXF1ZXN0cyB0byB0aGUgVUkgcHJvY2Vzcywg
YW5kIHJlY2VpdmVzCisgICAgICAgIGRldmljZSBvcmllbnRhdGlvbiB1cGRhdGVzIGZyb20gdGhl
IFVJIHByb2Nlc3MuIEFuIGluc3RhbmNlIG9mIHRoaXMgY2xhc3Mgd2lsbCBiZSBzaGFyZWQgYnkg
YWxsCisgICAgICAgIGRldmljZSBvcmllbnRhdGlvbiBjbGllbnRzIG9uIGEgcGFnZSwgYW5kIHBh
c3NlZCBhcyBwYXJ0IG9mIHRoZSBwYWdlIGNvbmZpZ3VyYXRpb24gcGFyYW1ldGVycy4gT24KKyAg
ICAgICAgdGhlIFVJIHByb2Nlc3Mgc2lkZSwgYSBuZXcgY2xhc3MgV2ViRGV2aWNlT3JpZW50YXRp
b25VcGRhdGVQcm92aWRlclByb3h5IGF0dGFjaGVkIHRvIHRoZSBXZWIgcGFnZQorICAgICAgICBw
cm94eSBpcyB0YWtpbmcgY2FyZSBvZiBjYWxsaW5nIHRoZSBkZXZpY2Ugb3JpZW50YXRpb24gQVBJ
IHRocm91Z2ggdGhlIGV4aXN0aW5nIFdlYkNvcmVNb3Rpb25NYW5hZ2VyCisgICAgICAgIE9iamVj
dGl2ZS1DIGNsYXNzLCBhbmQgc2VuZCBkZXZpY2Ugb3JpZW50YXRpb24gdXBkYXRlcyBiYWNrIHRv
IHRoZSBXZWIgcHJvY2Vzcy4gQWxzbywgdXNlIGEgd2VhaworICAgICAgICBoYXNoIHNldCBvZiBv
cmllbnRhdGlvbiBjbGllbnRzIGluIFdlYkNvcmVNb3Rpb25NYW5hZ2VyLgorCisgICAgICAgICog
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGRvbS9EZXZpY2VP
cmllbnRhdGlvbkNsaWVudC5oOgorICAgICAgICAqIGRvbS9Eb2N1bWVudC5jcHA6CisgICAgICAg
ICogcGFnZS9QYWdlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Om1fZGV2aWNlT3JpZW50YXRpb25V
cGRhdGVQcm92aWRlcik6CisgICAgICAgIChXZWJDb3JlOjptX2FwcGxpY2F0aW9uTWFuaWZlc3Qp
OiBEZWxldGVkLgorICAgICAgICAqIHBhZ2UvUGFnZS5oOgorICAgICAgICAoV2ViQ29yZTo6UGFn
ZTo6ZGV2aWNlT3JpZW50YXRpb25VcGRhdGVQcm92aWRlciBjb25zdCk6CisgICAgICAgICogcGFn
ZS9QYWdlQ29uZmlndXJhdGlvbi5oOgorICAgICAgICAqIHBsYXRmb3JtL2lvcy9EZXZpY2VPcmll
bnRhdGlvbkNsaWVudElPUy5oOgorICAgICAgICAqIHBsYXRmb3JtL2lvcy9EZXZpY2VPcmllbnRh
dGlvbkNsaWVudElPUy5tbToKKyAgICAgICAgKFdlYkNvcmU6OkRldmljZU9yaWVudGF0aW9uQ2xp
ZW50SU9TOjpEZXZpY2VPcmllbnRhdGlvbkNsaWVudElPUyk6CisgICAgICAgIChXZWJDb3JlOjpE
ZXZpY2VPcmllbnRhdGlvbkNsaWVudElPUzo6c3RhcnRVcGRhdGluZyk6CisgICAgICAgIChXZWJD
b3JlOjpEZXZpY2VPcmllbnRhdGlvbkNsaWVudElPUzo6c3RvcFVwZGF0aW5nKToKKyAgICAgICAg
KFdlYkNvcmU6OkRldmljZU9yaWVudGF0aW9uQ2xpZW50SU9TOjpkZXZpY2VPcmllbnRhdGlvbkNv
bnRyb2xsZXJEZXN0cm95ZWQpOgorICAgICAgICAqIHBsYXRmb3JtL2lvcy9XZWJDb3JlTW90aW9u
TWFuYWdlci5oOgorICAgICAgICAqIHBsYXRmb3JtL2lvcy9XZWJDb3JlTW90aW9uTWFuYWdlci5t
bToKKyAgICAgICAgKC1bV2ViQ29yZU1vdGlvbk1hbmFnZXIgYWRkT3JpZW50YXRpb25DbGllbnQ6
XSk6CisgICAgICAgICgtW1dlYkNvcmVNb3Rpb25NYW5hZ2VyIHJlbW92ZU9yaWVudGF0aW9uQ2xp
ZW50Ol0pOgorICAgICAgICAoLVtXZWJDb3JlTW90aW9uTWFuYWdlciBjaGVja0NsaWVudFN0YXR1
c10pOgorICAgICAgICAoLVtXZWJDb3JlTW90aW9uTWFuYWdlciBzZW5kTW90aW9uRGF0YTp3aXRo
SGVhZGluZzpdKToKKwogMjAxOS0xMi0wNiAgRGV2aW4gUm91c3NvICA8ZHJvdXNzb0BhcHBsZS5j
b20+CiAKICAgICAgICAgV2ViIEluc3BlY3RvcjogYWRkIGNvbXBpbGVyIFVOTElLRUxZIGhpbnRz
IHdoZW4gY2hlY2tpbmcgaWYgZGV2ZWxvcGVyIGV4dHJhcyBhcmUgZW5hYmxlZApJbmRleDogU291
cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkocmV2
aXNpb24gMjUzMjI2KQorKysgU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCSh3b3JraW5nIGNvcHkpCkBAIC05MDksNyArOTA5LDcgQEAKIAkJMzEzNTkxMEEx
RTdEREM3MzAwRjMwNjMwIC8qIFJUQ1NkcFR5cGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMxMzU5MTA0MUU3RERDNjAwMEYzMDYzMCAvKiBSVENTZHBU
eXBlLmggKi87IH07CiAJCTMxMzU5MTBCMUU3RERDNzMwMEYzMDYzMCAvKiBSVENTaWduYWxpbmdT
dGF0ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzEz
NTkxMDUxRTdEREM2MDAwRjMwNjMwIC8qIFJUQ1NpZ25hbGluZ1N0YXRlLmggKi87IH07CiAJCTMx
M0JDRTFDMjM1RTNCRTUwMEZDMzlFNSAvKiBFbGVtZW50Q29udGV4dC5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzEzQkNFMUIyMzVFM0JEQjAwRkMzOUU1
IC8qIEVsZW1lbnRDb250ZXh0LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0
ZSwgKTsgfTsgfTsKLQkJMzE0MDM3OUIxMjRCRUE3RjAwQUY0MEU0IC8qIFdlYkNvcmVNb3Rpb25N
YW5hZ2VyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAz
MTQwMzc5NzEyNEJFQTdGMDBBRjQwRTQgLyogV2ViQ29yZU1vdGlvbk1hbmFnZXIuaCAqLzsgfTsK
KwkJMzE0MDM3OUIxMjRCRUE3RjAwQUY0MEU0IC8qIFdlYkNvcmVNb3Rpb25NYW5hZ2VyLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzMTQwMzc5NzEyNEJF
QTdGMDBBRjQwRTQgLyogV2ViQ29yZU1vdGlvbk1hbmFnZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRU
UklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkzMTQwMzc5RDEyNEJFQTdGMDBBRjQwRTQg
LyogRGV2aWNlT3JpZW50YXRpb25DbGllbnRJT1MuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMxNDAzNzk5MTI0QkVBN0YwMEFGNDBFNCAvKiBEZXZpY2VP
cmllbnRhdGlvbkNsaWVudElPUy5oICovOyB9OwogCQkzMTQwQzUyMDFGREYxNTFBMDBEMkE4NzMg
LyogT2Zmc2NyZWVuQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzMTQwQzUxRTFGREYxNTFBMDBEMkE4NzMgLyog
T2Zmc2NyZWVuQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmggKi87IH07CiAJCTMxNDBDNTI0MUZE
RjMxODcwMEQyQTg3MyAvKiBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkRCYXNlLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzMTQwQzUyMjFGREYzMTg2MDBE
MkE4NzMgLyogQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEQmFzZS5oICovOyB9OwpAQCAtNDc4MCw2
ICs0NzgwLDggQEAKIAkJRTM1ODAyQjYxREM4NDM1RDAwQTk3NzNDIC8qIERPTUpJVElETFR5cGVG
aWx0ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUz
NTgwMkI1MURDODQzNTgwMEE5NzczQyAvKiBET01KSVRJRExUeXBlRmlsdGVyLmggKi87IHNldHRp
bmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJRTM3N0ZFNEQxREFERTE2
NTAwQ0REMDI1IC8qIE5vZGVDb25zdGFudHMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEUzRDA0OTkzMURBREMwNDUwMDcxOEYzQyAvKiBOb2RlQ29uc3Rh
bnRzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJ
RTM3Qzg2NTAxRUI2M0UzRjAwODdDNkNBIC8qIEpTRE9NUHJvbWlzZS5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTM3Qzg2NEYxRUI2M0UyRDAwODdDNkNB
IC8qIEpTRE9NUHJvbWlzZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07CisJCUUzOTYyOEJGMjM5NTcyOEYwMDY1OEVDRCAvKiBEZXZpY2VPcmllbnRhdGlv
blVwZGF0ZVByb3ZpZGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBFMzk2MjhCRDIzOTU3MjhFMDA2NThFQ0QgLyogRGV2aWNlT3JpZW50YXRpb25VcGRh
dGVQcm92aWRlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CisJCUUzOTYyOEMxMjM5NTc0MzEwMDY1OEVDRCAvKiBNb3Rpb25NYW5hZ2VyQ2xpZW50Lmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMzk2MjhDMDIz
OTU3NDMwMDA2NThFQ0QgLyogTW90aW9uTWFuYWdlckNsaWVudC5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUUzQTc3NjY3MURDODVEMjgwMEI2OTBE
OCAvKiBET01KSVRJRExDb252ZXJ0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBFM0E3NzY2NTFEQzg1RDIyMDBCNjkwRDggLyogRE9NSklUSURMQ29udmVy
dC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUUz
QTc3NjY4MURDODVEMjgwMEI2OTBEOCAvKiBET01KSVRJRExUeXBlLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFM0E3NzY2NjFEQzg1RDIyMDBCNjkwRDgg
LyogRE9NSklUSURMVHlwZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07CiAJCUUzQjJGMEVEMUQ3RjRDQTMwMEIwQzlEMSAvKiBMb2FkYWJsZVNjcmlwdC5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTNCMkYwRTcx
RDdGMzVFQzAwQjBDOUQxIC8qIExvYWRhYmxlU2NyaXB0LmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTE1MDg0LDYgKzE1MDg2LDggQEAKIAkJRTM4
ODM4OTQxQkFEMTQ1RjAwRDYyRUUzIC8qIFNjcmlwdE1vZHVsZUxvYWRlci5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTY3JpcHRNb2R1bGVMb2FkZXIuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFMzg4Mzg5NTFCQUQxNDVGMDBENjJFRTMgLyogU2Ny
aXB0TW9kdWxlTG9hZGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNjcmlw
dE1vZHVsZUxvYWRlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFMzhEMDYwOTFG
OEU4MTE5MDA2NDlDRjIgLyogTW9kdWxlRmV0Y2hQYXJhbWV0ZXJzLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IE1vZHVsZUZldGNoUGFyYW1ldGVycy5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQlFMzk2MjhCRDIzOTU3MjhFMDA2NThFQ0QgLyogRGV2aWNlT3JpZW50
YXRpb25VcGRhdGVQcm92aWRlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBE
ZXZpY2VPcmllbnRhdGlvblVwZGF0ZVByb3ZpZGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCUUzOTYyOEMwMjM5NTc0MzAwMDY1OEVDRCAvKiBNb3Rpb25NYW5hZ2VyQ2xpZW50Lmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1vdGlvbk1hbmFnZXJDbGllbnQuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTM5NzVCNzYxRUM5QUYzOTAwODQ3NzE3IC8q
IEpTRG9jdW1lbnRGcmFnbWVudERPTUpJVC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBKU0RvY3VtZW50RnJhZ21lbnRET01KSVQuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQlFMzk3NUI3NzFFQzlBRjM5MDA4NDc3MTcgLyogSlNFbGVtZW50RE9NSklU
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTRWxlbWVudERPTUpJ
VC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUzOTc1Qjc4MUVDOUFGMzkwMDg0
NzcxNyAvKiBKU0V2ZW50RE9NSklULmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IEpTRXZlbnRET01KSVQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAt
MjI4MTQsNiArMjI4MTgsNyBAQAogCQkJCTMxRUFGOTdEMTIxNDM1QTQwMEU3QzFCRiAvKiBEZXZp
Y2VNb3Rpb25DbGllbnRJT1MubW0gKi8sCiAJCQkJMzE0MDM3OTkxMjRCRUE3RjAwQUY0MEU0IC8q
IERldmljZU9yaWVudGF0aW9uQ2xpZW50SU9TLmggKi8sCiAJCQkJMzE0MDM3OUExMjRCRUE3RjAw
QUY0MEU0IC8qIERldmljZU9yaWVudGF0aW9uQ2xpZW50SU9TLm1tICovLAorCQkJCUUzOTYyOEJE
MjM5NTcyOEUwMDY1OEVDRCAvKiBEZXZpY2VPcmllbnRhdGlvblVwZGF0ZVByb3ZpZGVyLmggKi8s
CiAJCQkJMEZEQTdDMjIxODgzMzBBOTAwQzk1NEI1IC8qIERyYWdJbWFnZUlPUy5tbSAqLywKIAkJ
CQkyNjU1NDEzNzE0ODk4MTFDMDAwREZDNUQgLyogS2V5RXZlbnRDb2Rlc0lPUy5oICovLAogCQkJ
CTI2NTU0MTM4MTQ4OTgxMUMwMDBERkM1RCAvKiBLZXlFdmVudElPUy5tbSAqLywKQEAgLTIyODMw
LDYgKzIyODM1LDcgQEAKIAkJCQkxQzQzREU2ODIyQUI0QjhBMDAxNTI3RDkgLyogTG9jYWxDdXJy
ZW50VHJhaXRDb2xsZWN0aW9uLmggKi8sCiAJCQkJMUM0M0RFNkEyMkFCNEI4QTAwMTUyN0Q5IC8q
IExvY2FsQ3VycmVudFRyYWl0Q29sbGVjdGlvbi5tbSAqLywKIAkJCQk0NkVGQUYwRDFFNUZCOUMy
MDBFN0YzNEIgLyogTG93UG93ZXJNb2RlTm90aWZpZXJJT1MubW0gKi8sCisJCQkJRTM5NjI4QzAy
Mzk1NzQzMDAwNjU4RUNEIC8qIE1vdGlvbk1hbmFnZXJDbGllbnQuaCAqLywKIAkJCQlFNDUzOTAx
OTBFQUZDQUNBMDAzNjk1QzggLyogUGFzdGVib2FyZElPUy5tbSAqLywKIAkJCQkyNjYwMUVCRDE0
QjNCOUFEMDAxMkMwRkUgLyogUGxhdGZvcm1FdmVudEZhY3RvcnlJT1MuaCAqLywKIAkJCQkyNjYw
MUVCRTE0QjNCOUFEMDAxMkMwRkUgLyogUGxhdGZvcm1FdmVudEZhY3RvcnlJT1MubW0gKi8sCkBA
IC0yOTU1NSw2ICsyOTU2MSw3IEBACiAJCQkJNTlBODVFQTQxMTlENjhFQzAwREVGMUVGIC8qIERl
dmljZU9yaWVudGF0aW9uRXZlbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTQ2MEUzMDc1MjIyRjRF
RkQwMDlBMDYwNiAvKiBEZXZpY2VPcmllbnRhdGlvbk9yTW90aW9uRXZlbnQuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTQ2MEUzMDc3MjIyRjRGMDMwMDlBMDYwNiAvKiBEZXZpY2VPcmllbnRhdGlvbk9y
TW90aW9uUGVybWlzc2lvblN0YXRlLmggaW4gSGVhZGVycyAqLywKKwkJCQlFMzk2MjhCRjIzOTU3
MjhGMDA2NThFQ0QgLyogRGV2aWNlT3JpZW50YXRpb25VcGRhdGVQcm92aWRlci5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJNTcyQjQwMUYyMTc1N0E2NDAwMEFENDNFIC8qIERldmljZVJlcXVlc3RDb252
ZXJ0ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTU3MkI0MDNBMjE3NzI1ODEwMDBBRDQzRSAvKiBE
ZXZpY2VSZXNwb25zZUNvbnZlcnRlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMjY3NzI1RkQxQTVC
M0FEOTAwM0MyNEREIC8qIERGQS5oIGluIEhlYWRlcnMgKi8sCkBAIC0zMTQ0Miw2ICszMTQ0OSw3
IEBACiAJCQkJNzA5QTAxRkUxRTNEMEJERDAwNkIwRDRDIC8qIE1vZHVsZUZldGNoRmFpbHVyZUtp
bmQuaCBpbiBIZWFkZXJzICovLAogCQkJCUUzMjAxQzFBMUY4RTgyMTMwMDc2QTAzMiAvKiBNb2R1
bGVGZXRjaFBhcmFtZXRlcnMuaCBpbiBIZWFkZXJzICovLAogCQkJCUY1NUIzREM2MTI1MUYxMkQw
MDNFRjI2OSAvKiBNb250aElucHV0VHlwZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJRTM5NjI4QzEy
Mzk1NzQzMTAwNjU4RUNEIC8qIE1vdGlvbk1hbmFnZXJDbGllbnQuaCBpbiBIZWFkZXJzICovLAog
CQkJCTg1MDMxQjQ2MEE0NEVGQzcwMEY5OTJFMCAvKiBNb3VzZUV2ZW50LmggaW4gSGVhZGVycyAq
LywKIAkJCQk4Mzc2NUY5NTFEQUM1MjJGMDBDMDY1MzcgLyogTW91c2VFdmVudEluaXQuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTkzNUM0NzYzMDlBQzRDRTYwMEE2QUFCNCAvKiBNb3VzZUV2ZW50V2l0
aEhpdFRlc3RSZXN1bHRzLmggaW4gSGVhZGVycyAqLywKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2Rv
bS9EZXZpY2VPcmllbnRhdGlvbkNsaWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L2RvbS9EZXZpY2VPcmllbnRhdGlvbkNsaWVudC5oCShyZXZpc2lvbiAyNTMyMjYpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9kb20vRGV2aWNlT3JpZW50YXRpb25DbGllbnQuaAkod29ya2luZyBjb3B5KQpA
QCAtMjgsNiArMjgsNyBAQAogCiAjaW5jbHVkZSAiRGV2aWNlQ2xpZW50LmgiCiAjaW5jbHVkZSA8
d3RmL05vbmNvcHlhYmxlLmg+CisjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgogCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAkocmV2aXNpb24gMjUzMjI2
KQorKysgU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAt
NTY1LDcgKzU2NSw3IEBAIERvY3VtZW50OjpEb2N1bWVudChGcmFtZSogZnJhbWUsIGNvbnN0IFUK
ICNpZiBQTEFURk9STShJT1NfRkFNSUxZKSAmJiBFTkFCTEUoREVWSUNFX09SSUVOVEFUSU9OKQog
ICAgICwgbV9kZXZpY2VNb3Rpb25DbGllbnQobWFrZVVuaXF1ZTxEZXZpY2VNb3Rpb25DbGllbnRJ
T1M+KCkpCiAgICAgLCBtX2RldmljZU1vdGlvbkNvbnRyb2xsZXIobWFrZVVuaXF1ZTxEZXZpY2VN
b3Rpb25Db250cm9sbGVyPigqbV9kZXZpY2VNb3Rpb25DbGllbnQpKQotICAgICwgbV9kZXZpY2VP
cmllbnRhdGlvbkNsaWVudChtYWtlVW5pcXVlPERldmljZU9yaWVudGF0aW9uQ2xpZW50SU9TPigp
KQorICAgICwgbV9kZXZpY2VPcmllbnRhdGlvbkNsaWVudChtYWtlVW5pcXVlPERldmljZU9yaWVu
dGF0aW9uQ2xpZW50SU9TPihwYWdlKCkgPyBwYWdlKCktPmRldmljZU9yaWVudGF0aW9uVXBkYXRl
UHJvdmlkZXIoKSA6IG51bGxwdHIpKQogICAgICwgbV9kZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xs
ZXIobWFrZVVuaXF1ZTxEZXZpY2VPcmllbnRhdGlvbkNvbnRyb2xsZXI+KCptX2RldmljZU9yaWVu
dGF0aW9uQ2xpZW50KSkKICNlbmRpZgogICAgICwgbV9wZW5kaW5nVGFza3NUaW1lcigqdGhpcywg
JkRvY3VtZW50OjpwZW5kaW5nVGFza3NUaW1lckZpcmVkKQpJbmRleDogU291cmNlL1dlYkNvcmUv
cGFnZS9QYWdlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3Bw
CShyZXZpc2lvbiAyNTMyMjYpCisrKyBTb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC0yODgsNiArMjg4LDkgQEAgUGFnZTo6UGFnZShQYWdlQ29uZmlndXJhdGlv
biYmIHBhZ2VDb25maQogI2lmIEVOQUJMRShBUFBMSUNBVElPTl9NQU5JRkVTVCkKICAgICAsIG1f
YXBwbGljYXRpb25NYW5pZmVzdChwYWdlQ29uZmlndXJhdGlvbi5hcHBsaWNhdGlvbk1hbmlmZXN0
KQogI2VuZGlmCisjaWYgRU5BQkxFKERFVklDRV9PUklFTlRBVElPTikgJiYgUExBVEZPUk0oSU9T
X0ZBTUlMWSkKKyAgICAsIG1fZGV2aWNlT3JpZW50YXRpb25VcGRhdGVQcm92aWRlcihXVEZNb3Zl
KHBhZ2VDb25maWd1cmF0aW9uLmRldmljZU9yaWVudGF0aW9uVXBkYXRlUHJvdmlkZXIpKQorI2Vu
ZGlmCiB7CiAgICAgdXBkYXRlVGltZXJUaHJvdHRsaW5nU3RhdGUoKTsKIApJbmRleDogU291cmNl
L1dlYkNvcmUvcGFnZS9QYWdlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGFnZS9Q
YWdlLmgJKHJldmlzaW9uIDI1MzIyNikKKysrIFNvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oCSh3
b3JraW5nIGNvcHkpCkBAIC02OSw2ICs2OSwxMCBAQAogI2luY2x1ZGUgIk1lZGlhUGxheWJhY2tU
YXJnZXRDb250ZXh0LmgiCiAjZW5kaWYKIAorI2lmIEVOQUJMRShERVZJQ0VfT1JJRU5UQVRJT04p
ICYmIFBMQVRGT1JNKElPU19GQU1JTFkpCisjaW5jbHVkZSAiRGV2aWNlT3JpZW50YXRpb25VcGRh
dGVQcm92aWRlci5oIgorI2VuZGlmCisKIG5hbWVzcGFjZSBKU0MgewogY2xhc3MgRGVidWdnZXI7
CiB9CkBAIC03MjMsNiArNzI3LDEwIEBAIHB1YmxpYzoKIAogICAgIFdFQkNPUkVfRVhQT1JUIFZl
Y3RvcjxSZWY8RWxlbWVudD4+IGVkaXRhYmxlRWxlbWVudHNJblJlY3QoY29uc3QgRmxvYXRSZWN0
JikgY29uc3Q7CiAKKyNpZiBFTkFCTEUoREVWSUNFX09SSUVOVEFUSU9OKSAmJiBQTEFURk9STShJ
T1NfRkFNSUxZKQorICAgIERldmljZU9yaWVudGF0aW9uVXBkYXRlUHJvdmlkZXIqIGRldmljZU9y
aWVudGF0aW9uVXBkYXRlUHJvdmlkZXIoKSBjb25zdCB7IHJldHVybiBtX2RldmljZU9yaWVudGF0
aW9uVXBkYXRlUHJvdmlkZXIuZ2V0KCk7IH0KKyNlbmRpZgorCiBwcml2YXRlOgogICAgIHN0cnVj
dCBOYXZpZ2F0aW9uIHsKICAgICAgICAgUmVnaXN0cmFibGVEb21haW4gZG9tYWluOwpAQCAtOTk1
LDYgKzEwMDMsMTAgQEAgcHJpdmF0ZToKIAogICAgIE9wdGlvbmFsPFZpZXdwb3J0QXJndW1lbnRz
PiBtX292ZXJyaWRlVmlld3BvcnRBcmd1bWVudHM7CiAKKyNpZiBFTkFCTEUoREVWSUNFX09SSUVO
VEFUSU9OKSAmJiBQTEFURk9STShJT1NfRkFNSUxZKQorICAgIFJlZlB0cjxEZXZpY2VPcmllbnRh
dGlvblVwZGF0ZVByb3ZpZGVyPiBtX2RldmljZU9yaWVudGF0aW9uVXBkYXRlUHJvdmlkZXI7Cisj
ZW5kaWYKKwogICAgIGJvb2wgbV9zaG91bGRFbmFibGVJQ0VDYW5kaWRhdGVGaWx0ZXJpbmdCeURl
ZmF1bHQgeyB0cnVlIH07CiAgICAgYm9vbCBtX21lZGlhUGxheWJhY2tJc1N1c3BlbmRlZCB7IGZh
bHNlIH07CiAgICAgYm9vbCBtX21lZGlhQnVmZmVyaW5nSXNTdXNwZW5kZWQgeyBmYWxzZSB9OwpJ
bmRleDogU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlQ29uZmlndXJhdGlvbi5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZUNvbmZpZ3VyYXRpb24uaAkocmV2aXNpb24gMjUz
MjI2KQorKysgU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlQ29uZmlndXJhdGlvbi5oCSh3b3JraW5n
IGNvcHkpCkBAIC0xMTgsNiArMTE4LDEwIEBAIHB1YmxpYzoKICAgICBSZWZQdHI8U3RvcmFnZU5h
bWVzcGFjZVByb3ZpZGVyPiBzdG9yYWdlTmFtZXNwYWNlUHJvdmlkZXI7CiAgICAgUmVmUHRyPFVz
ZXJDb250ZW50UHJvdmlkZXI+IHVzZXJDb250ZW50UHJvdmlkZXI7CiAgICAgUmVmUHRyPFZpc2l0
ZWRMaW5rU3RvcmU+IHZpc2l0ZWRMaW5rU3RvcmU7CisgICAgCisjaWYgRU5BQkxFKERFVklDRV9P
UklFTlRBVElPTikgJiYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKyAgICBSZWZQdHI8RGV2aWNlT3Jp
ZW50YXRpb25VcGRhdGVQcm92aWRlcj4gZGV2aWNlT3JpZW50YXRpb25VcGRhdGVQcm92aWRlcjsK
KyNlbmRpZgogfTsKIAogfQpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL0Rldmlj
ZU9yaWVudGF0aW9uQ2xpZW50SU9TLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vaW9zL0RldmljZU9yaWVudGF0aW9uQ2xpZW50SU9TLmgJKHJldmlzaW9uIDI1MzIyNikK
KysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9EZXZpY2VPcmllbnRhdGlvbkNsaWVudElP
Uy5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMCwxNSArMzAsMTcgQEAKICNpbmNsdWRlICJEZXZpY2VP
cmllbnRhdGlvbkNsaWVudC5oIgogI2luY2x1ZGUgIkRldmljZU9yaWVudGF0aW9uQ29udHJvbGxl
ci5oIgogI2luY2x1ZGUgIkRldmljZU9yaWVudGF0aW9uRGF0YS5oIgorI2luY2x1ZGUgIkRldmlj
ZU9yaWVudGF0aW9uVXBkYXRlUHJvdmlkZXIuaCIKKyNpbmNsdWRlICJNb3Rpb25NYW5hZ2VyQ2xp
ZW50LmgiCiAjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgogCiBPQkpDX0NMQVNTIFdlYkNvcmVNb3Rp
b25NYW5hZ2VyOwogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWNsYXNzIERldmljZU9yaWVudGF0
aW9uQ2xpZW50SU9TIDogcHVibGljIERldmljZU9yaWVudGF0aW9uQ2xpZW50IHsKK2NsYXNzIERl
dmljZU9yaWVudGF0aW9uQ2xpZW50SU9TIDogcHVibGljIERldmljZU9yaWVudGF0aW9uQ2xpZW50
LCBwdWJsaWMgTW90aW9uTWFuYWdlckNsaWVudCB7CiBwdWJsaWM6Ci0gICAgRGV2aWNlT3JpZW50
YXRpb25DbGllbnRJT1MoKTsKKyAgICBEZXZpY2VPcmllbnRhdGlvbkNsaWVudElPUyhSZWZQdHI8
RGV2aWNlT3JpZW50YXRpb25VcGRhdGVQcm92aWRlcj4mJik7CiAgICAgfkRldmljZU9yaWVudGF0
aW9uQ2xpZW50SU9TKCkgb3ZlcnJpZGU7CiAgICAgdm9pZCBzZXRDb250cm9sbGVyKERldmljZU9y
aWVudGF0aW9uQ29udHJvbGxlciopIG92ZXJyaWRlOwogICAgIHZvaWQgc3RhcnRVcGRhdGluZygp
IG92ZXJyaWRlOwpAQCAtNDYsMTMgKzQ4LDE0IEBAIHB1YmxpYzoKICAgICBEZXZpY2VPcmllbnRh
dGlvbkRhdGEqIGxhc3RPcmllbnRhdGlvbigpIGNvbnN0IG92ZXJyaWRlOwogICAgIHZvaWQgZGV2
aWNlT3JpZW50YXRpb25Db250cm9sbGVyRGVzdHJveWVkKCkgb3ZlcnJpZGU7CiAKLSAgICB2b2lk
IG9yaWVudGF0aW9uQ2hhbmdlZChkb3VibGUsIGRvdWJsZSwgZG91YmxlLCBkb3VibGUsIGRvdWJs
ZSk7CisgICAgdm9pZCBvcmllbnRhdGlvbkNoYW5nZWQoZG91YmxlLCBkb3VibGUsIGRvdWJsZSwg
ZG91YmxlLCBkb3VibGUpIG92ZXJyaWRlOwogCiBwcml2YXRlOgotICAgIFdlYkNvcmVNb3Rpb25N
YW5hZ2VyKiBtX21vdGlvbk1hbmFnZXI7Ci0gICAgRGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVy
KiBtX2NvbnRyb2xsZXI7CisgICAgV2ViQ29yZU1vdGlvbk1hbmFnZXIqIG1fbW90aW9uTWFuYWdl
ciAgeyBudWxscHRyIH07CisgICAgRGV2aWNlT3JpZW50YXRpb25Db250cm9sbGVyKiBtX2NvbnRy
b2xsZXIgIHsgbnVsbHB0ciB9OwogICAgIFJlZlB0cjxEZXZpY2VPcmllbnRhdGlvbkRhdGE+IG1f
Y3VycmVudERldmljZU9yaWVudGF0aW9uOwotICAgIGJvb2wgbV91cGRhdGluZzsKKyAgICBSZWZQ
dHI8RGV2aWNlT3JpZW50YXRpb25VcGRhdGVQcm92aWRlcj4gbV9kZXZpY2VPcmllbnRhdGlvblVw
ZGF0ZVByb3ZpZGVyOworICAgIGJvb2wgbV91cGRhdGluZyB7IGZhbHNlIH07CiB9OwogCiB9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvRGV2
aWNlT3JpZW50YXRpb25DbGllbnRJT1MubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vaW9zL0RldmljZU9yaWVudGF0aW9uQ2xpZW50SU9TLm1tCShyZXZpc2lvbiAyNTMy
MjYpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvRGV2aWNlT3JpZW50YXRpb25DbGll
bnRJT1MubW0JKHdvcmtpbmcgY29weSkKQEAgLTMzLDEwICszMyw5IEBACiAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIAotRGV2aWNlT3JpZW50YXRpb25DbGllbnRJT1M6OkRldmljZU9yaWVudGF0aW9u
Q2xpZW50SU9TKCkKK0RldmljZU9yaWVudGF0aW9uQ2xpZW50SU9TOjpEZXZpY2VPcmllbnRhdGlv
bkNsaWVudElPUyhSZWZQdHI8RGV2aWNlT3JpZW50YXRpb25VcGRhdGVQcm92aWRlcj4mJiBkZXZp
Y2VPcmllbnRhdGlvblVwZGF0ZVByb3ZpZGVyKQogICAgIDogRGV2aWNlT3JpZW50YXRpb25DbGll
bnQoKQotICAgICwgbV9tb3Rpb25NYW5hZ2VyKG51bGxwdHIpCi0gICAgLCBtX3VwZGF0aW5nKDAp
CisgICAgLCBtX2RldmljZU9yaWVudGF0aW9uVXBkYXRlUHJvdmlkZXIoV1RGTW92ZShkZXZpY2VP
cmllbnRhdGlvblVwZGF0ZVByb3ZpZGVyKSkKIHsKIH0KIApAQCAtNTMsNiArNTIsMTEgQEAgdm9p
ZCBEZXZpY2VPcmllbnRhdGlvbkNsaWVudElPUzo6c3RhcnRVcAogewogICAgIG1fdXBkYXRpbmcg
PSB0cnVlOwogCisgICAgaWYgKG1fZGV2aWNlT3JpZW50YXRpb25VcGRhdGVQcm92aWRlcikgewor
ICAgICAgICBtX2RldmljZU9yaWVudGF0aW9uVXBkYXRlUHJvdmlkZXItPnN0YXJ0VXBkYXRpbmco
KnRoaXMpOworICAgICAgICByZXR1cm47CisgICAgfQorCiAgICAgaWYgKCFtX21vdGlvbk1hbmFn
ZXIpCiAgICAgICAgIG1fbW90aW9uTWFuYWdlciA9IFtXZWJDb3JlTW90aW9uTWFuYWdlciBzaGFy
ZWRNYW5hZ2VyXTsKIApAQCAtNjMsNiArNjcsMTEgQEAgdm9pZCBEZXZpY2VPcmllbnRhdGlvbkNs
aWVudElPUzo6c3RvcFVwZAogewogICAgIG1fdXBkYXRpbmcgPSBmYWxzZTsKIAorICAgIGlmICht
X2RldmljZU9yaWVudGF0aW9uVXBkYXRlUHJvdmlkZXIpIHsKKyAgICAgICAgbV9kZXZpY2VPcmll
bnRhdGlvblVwZGF0ZVByb3ZpZGVyLT5zdG9wVXBkYXRpbmcoKnRoaXMpOworICAgICAgICByZXR1
cm47CisgICAgfQorCiAgICAgLy8gUmVtb3ZlIG91cnNlbHZlcyBhcyB0aGUgb3JpZW50YXRpb24g
Y2xpZW50IHNvIHdlIHdvbid0IGdldCB1cGRhdGVzLgogICAgIFttX21vdGlvbk1hbmFnZXIgcmVt
b3ZlT3JpZW50YXRpb25DbGllbnQ6dGhpc107CiB9CkBAIC03NCw2ICs4MywxMSBAQCBEZXZpY2VP
cmllbnRhdGlvbkRhdGEqIERldmljZU9yaWVudGF0aW9uCiAKIHZvaWQgRGV2aWNlT3JpZW50YXRp
b25DbGllbnRJT1M6OmRldmljZU9yaWVudGF0aW9uQ29udHJvbGxlckRlc3Ryb3llZCgpCiB7Cisg
ICAgaWYgKG1fZGV2aWNlT3JpZW50YXRpb25VcGRhdGVQcm92aWRlcikgeworICAgICAgICBtX2Rl
dmljZU9yaWVudGF0aW9uVXBkYXRlUHJvdmlkZXItPnN0b3BVcGRhdGluZygqdGhpcyk7CisgICAg
ICAgIHJldHVybjsKKyAgICB9CisKICAgICBbbV9tb3Rpb25NYW5hZ2VyIHJlbW92ZU9yaWVudGF0
aW9uQ2xpZW50OnRoaXNdOwogfQogICAgIApJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
aW9zL0RldmljZU9yaWVudGF0aW9uVXBkYXRlUHJvdmlkZXIuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvRGV2aWNlT3JpZW50YXRpb25VcGRhdGVQcm92aWRlci5o
CShub25leGlzdGVudCkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9EZXZpY2VPcmll
bnRhdGlvblVwZGF0ZVByb3ZpZGVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw1MSBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAgKiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJ
R0hUIEhPTERFUlMgYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJ
R0hUIE9XTkVSIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVN
RU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKSAmJiBFTkFC
TEUoREVWSUNFX09SSUVOVEFUSU9OKQorCisjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KKwor
bmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBNb3Rpb25NYW5hZ2VyQ2xpZW50OworCitjbGFz
cyBEZXZpY2VPcmllbnRhdGlvblVwZGF0ZVByb3ZpZGVyIDogcHVibGljIFJlZkNvdW50ZWQ8RGV2
aWNlT3JpZW50YXRpb25VcGRhdGVQcm92aWRlcj4geworcHVibGljOgorICAgIHZpcnR1YWwgfkRl
dmljZU9yaWVudGF0aW9uVXBkYXRlUHJvdmlkZXIoKSB7IH0KKworICAgIHZpcnR1YWwgdm9pZCBz
dGFydFVwZGF0aW5nKE1vdGlvbk1hbmFnZXJDbGllbnQmKSA9IDA7CisgICAgdmlydHVhbCB2b2lk
IHN0b3BVcGRhdGluZyhNb3Rpb25NYW5hZ2VyQ2xpZW50JikgPSAwOworCisgICAgdmlydHVhbCB2
b2lkIGRldmljZU9yaWVudGF0aW9uQ2hhbmdlZChkb3VibGUsIGRvdWJsZSwgZG91YmxlLCBkb3Vi
bGUsIGRvdWJsZSkgPSAwOworICAgIAorcHJvdGVjdGVkOgorICAgIERldmljZU9yaWVudGF0aW9u
VXBkYXRlUHJvdmlkZXIoKSA9IGRlZmF1bHQ7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CisKKyNlbmRpZiAvLyBQTEFURk9STShJT1NfRkFNSUxZKSAmJiBFTkFCTEUoREVWSUNFX09SSUVO
VEFUSU9OKQpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL01vdGlvbk1hbmFnZXJD
bGllbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvTW90aW9u
TWFuYWdlckNsaWVudC5oCShub25leGlzdGVudCkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2lvcy9Nb3Rpb25NYW5hZ2VyQ2xpZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw0MyBA
QAorLyoKKyogQ29weXJpZ2h0IChDKSAyMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyoKKyogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworKiBhcmUgbWV0OgorKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyoKKyogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJworKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyogVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
IElUUyBDT05UUklCVVRPUlMKKyogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorKiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorKiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MKKyogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyogQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRgorKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisqLworCisjcHJhZ21h
IG9uY2UKKworI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpICYmIEVOQUJMRShERVZJQ0VfT1JJRU5U
QVRJT04pCisKKyNpbmNsdWRlIDx3dGYvV2Vha1B0ci5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7
CisKK2NsYXNzIE1vdGlvbk1hbmFnZXJDbGllbnQgOiBwdWJsaWMgQ2FuTWFrZVdlYWtQdHI8TW90
aW9uTWFuYWdlckNsaWVudD4geworcHVibGljOgorICAgIHZpcnR1YWwgfk1vdGlvbk1hbmFnZXJD
bGllbnQoKSB7IH07CisKKyAgICB2aXJ0dWFsIHZvaWQgb3JpZW50YXRpb25DaGFuZ2VkKGRvdWJs
ZSwgZG91YmxlLCBkb3VibGUsIGRvdWJsZSwgZG91YmxlKSA9IDA7Cit9OworCit9OworCisjZW5k
aWYgLy8gUExBVEZPUk0oSU9TX0ZBTUlMWSkgJiYgRU5BQkxFKERFVklDRV9PUklFTlRBVElPTikK
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJDb3JlTW90aW9uTWFuYWdlci5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJDb3JlTW90aW9u
TWFuYWdlci5oCShyZXZpc2lvbiAyNTMyMjYpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9p
b3MvV2ViQ29yZU1vdGlvbk1hbmFnZXIuaAkod29ya2luZyBjb3B5KQpAQCAtMjUsMTAgKzI1LDkg
QEAKIAogI3ByYWdtYSBvbmNlCiAKLSNpbXBvcnQgIkRldmljZU1vdGlvbkNsaWVudElPUy5oIgot
I2ltcG9ydCAiRGV2aWNlT3JpZW50YXRpb25DbGllbnRJT1MuaCIKICNpbXBvcnQgPENvcmVMb2Nh
dGlvbi9Db3JlTG9jYXRpb24uaD4KICNpbXBvcnQgPHd0Zi9IYXNoQ291bnRlZFNldC5oPgorI2lt
cG9ydCA8d3RmL1dlYWtIYXNoU2V0Lmg+CiAKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKSAmJiBF
TkFCTEUoREVWSUNFX09SSUVOVEFUSU9OKQogCkBAIC0zNiwxMSArMzUsMTYgQEAKIAogY29uc3Qg
ZmxvYXQga01vdGlvblVwZGF0ZUludGVydmFsID0gMS4wZiAvIDYwLjBmOwogCi1AaW50ZXJmYWNl
IFdlYkNvcmVNb3Rpb25NYW5hZ2VyIDogTlNPYmplY3QgeworbmFtZXNwYWNlIFdlYkNvcmUgewor
Y2xhc3MgRGV2aWNlTW90aW9uQ2xpZW50SU9TOworY2xhc3MgTW90aW9uTWFuYWdlckNsaWVudDsK
K307CisKK1dFQkNPUkVfRVhQT1JUIEBpbnRlcmZhY2UgV2ViQ29yZU1vdGlvbk1hbmFnZXIgOiBO
U09iamVjdCB7CiAgICAgQ01Nb3Rpb25NYW5hZ2VyKiBtX21vdGlvbk1hbmFnZXI7CiAgICAgQ0xM
b2NhdGlvbk1hbmFnZXIqIG1fbG9jYXRpb25NYW5hZ2VyOwogICAgIEhhc2hTZXQ8V2ViQ29yZTo6
RGV2aWNlTW90aW9uQ2xpZW50SU9TKj4gbV9kZXZpY2VNb3Rpb25DbGllbnRzOwotICAgIEhhc2hT
ZXQ8V2ViQ29yZTo6RGV2aWNlT3JpZW50YXRpb25DbGllbnRJT1MqPiBtX2RldmljZU9yaWVudGF0
aW9uQ2xpZW50czsKKyAgICBXZWFrSGFzaFNldDxXZWJDb3JlOjpNb3Rpb25NYW5hZ2VyQ2xpZW50
PiBtX2RldmljZU9yaWVudGF0aW9uQ2xpZW50czsKICAgICBOU1RpbWVyKiBtX3VwZGF0ZVRpbWVy
OwogICAgIEJPT0wgbV9neXJvQXZhaWxhYmxlOwogICAgIEJPT0wgbV9oZWFkaW5nQXZhaWxhYmxl
OwpAQCAtNTAsOCArNTQsOCBAQCBjb25zdCBmbG9hdCBrTW90aW9uVXBkYXRlSW50ZXJ2YWwgPSAx
LjBmCiArIChXZWJDb3JlTW90aW9uTWFuYWdlciAqKXNoYXJlZE1hbmFnZXI7CiAtICh2b2lkKWFk
ZE1vdGlvbkNsaWVudDooV2ViQ29yZTo6RGV2aWNlTW90aW9uQ2xpZW50SU9TICopY2xpZW50Owog
LSAodm9pZClyZW1vdmVNb3Rpb25DbGllbnQ6KFdlYkNvcmU6OkRldmljZU1vdGlvbkNsaWVudElP
UyAqKWNsaWVudDsKLS0gKHZvaWQpYWRkT3JpZW50YXRpb25DbGllbnQ6KFdlYkNvcmU6OkRldmlj
ZU9yaWVudGF0aW9uQ2xpZW50SU9TICopY2xpZW50OwotLSAodm9pZClyZW1vdmVPcmllbnRhdGlv
bkNsaWVudDooV2ViQ29yZTo6RGV2aWNlT3JpZW50YXRpb25DbGllbnRJT1MgKiljbGllbnQ7Cist
ICh2b2lkKWFkZE9yaWVudGF0aW9uQ2xpZW50OihXZWJDb3JlOjpNb3Rpb25NYW5hZ2VyQ2xpZW50
ICopY2xpZW50OworLSAodm9pZClyZW1vdmVPcmllbnRhdGlvbkNsaWVudDooV2ViQ29yZTo6TW90
aW9uTWFuYWdlckNsaWVudCAqKWNsaWVudDsKIC0gKEJPT0wpZ3lyb0F2YWlsYWJsZTsKIC0gKEJP
T0wpaGVhZGluZ0F2YWlsYWJsZTsKIEBlbmQKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2lvcy9XZWJDb3JlTW90aW9uTWFuYWdlci5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9pb3MvV2ViQ29yZU1vdGlvbk1hbmFnZXIubW0JKHJldmlzaW9uIDI1MzIyNikK
KysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJDb3JlTW90aW9uTWFuYWdlci5tbQko
d29ya2luZyBjb3B5KQpAQCAtMjgsNiArMjgsOCBAQAogCiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlM
WSkgJiYgRU5BQkxFKERFVklDRV9PUklFTlRBVElPTikKIAorI2ltcG9ydCAiRGV2aWNlTW90aW9u
Q2xpZW50SU9TLmgiCisjaW1wb3J0ICJNb3Rpb25NYW5hZ2VyQ2xpZW50LmgiCiAjaW1wb3J0ICJX
ZWJDb3JlT2JqQ0V4dHJhcy5oIgogI2ltcG9ydCAiV2ViQ29yZVRocmVhZFJ1bi5oIgogI2ltcG9y
dCA8Q29yZUxvY2F0aW9uL0NvcmVMb2NhdGlvbi5oPgpAQCAtMTEyLDE2ICsxMTQsMTYgQEAgLSAo
dm9pZClyZW1vdmVNb3Rpb25DbGllbnQ6KFdlYkNvcmU6OkRldgogICAgICAgICBbc2VsZiBjaGVj
a0NsaWVudFN0YXR1c107CiB9CiAKLS0gKHZvaWQpYWRkT3JpZW50YXRpb25DbGllbnQ6KFdlYkNv
cmU6OkRldmljZU9yaWVudGF0aW9uQ2xpZW50SU9TICopY2xpZW50CistICh2b2lkKWFkZE9yaWVu
dGF0aW9uQ2xpZW50OihXZWJDb3JlOjpNb3Rpb25NYW5hZ2VyQ2xpZW50ICopY2xpZW50CiB7Ci0g
ICAgbV9kZXZpY2VPcmllbnRhdGlvbkNsaWVudHMuYWRkKGNsaWVudCk7CisgICAgbV9kZXZpY2VP
cmllbnRhdGlvbkNsaWVudHMuYWRkKCpjbGllbnQpOwogICAgIGlmIChtX2luaXRpYWxpemVkKQog
ICAgICAgICBbc2VsZiBjaGVja0NsaWVudFN0YXR1c107CiB9CiAKLS0gKHZvaWQpcmVtb3ZlT3Jp
ZW50YXRpb25DbGllbnQ6KFdlYkNvcmU6OkRldmljZU9yaWVudGF0aW9uQ2xpZW50SU9TICopY2xp
ZW50CistICh2b2lkKXJlbW92ZU9yaWVudGF0aW9uQ2xpZW50OihXZWJDb3JlOjpNb3Rpb25NYW5h
Z2VyQ2xpZW50ICopY2xpZW50CiB7Ci0gICAgbV9kZXZpY2VPcmllbnRhdGlvbkNsaWVudHMucmVt
b3ZlKGNsaWVudCk7CisgICAgbV9kZXZpY2VPcmllbnRhdGlvbkNsaWVudHMucmVtb3ZlKCpjbGll
bnQpOwogICAgIGlmIChtX2luaXRpYWxpemVkKQogICAgICAgICBbc2VsZiBjaGVja0NsaWVudFN0
YXR1c107CiB9CkBAIC0xNjksNyArMTcxLDcgQEAgLSAodm9pZCljaGVja0NsaWVudFN0YXR1cwog
ICAgIC8vIGJlIG5vIGNoYW5jZSB0aGF0IG1fbW90aW9uTWFuYWdlciBoYXMgbm90IGJlZW4gY3Jl
YXRlZC4KICAgICBBU1NFUlQobV9tb3Rpb25NYW5hZ2VyKTsKIAotICAgIGlmIChtX2RldmljZU1v
dGlvbkNsaWVudHMuc2l6ZSgpIHx8IG1fZGV2aWNlT3JpZW50YXRpb25DbGllbnRzLnNpemUoKSkg
eworICAgIGlmIChtX2RldmljZU1vdGlvbkNsaWVudHMuc2l6ZSgpIHx8IG1fZGV2aWNlT3JpZW50
YXRpb25DbGllbnRzLmNvbXB1dGVTaXplKCkpIHsKICAgICAgICAgaWYgKG1fZ3lyb0F2YWlsYWJs
ZSkKICAgICAgICAgICAgIFttX21vdGlvbk1hbmFnZXIgc3RhcnREZXZpY2VNb3Rpb25VcGRhdGVz
XTsKICAgICAgICAgZWxzZQpAQCAtMjQ2LDggKzI0OCwxMSBAQCAtICh2b2lkKXNlbmRNb3Rpb25E
YXRhOihDTURldmljZU1vdGlvbiAqCiAKICAgICAgICAgQ01BdHRpdHVkZSogYXR0aXR1ZGUgPSBu
ZXdNb3Rpb24uYXR0aXR1ZGU7CiAKLSAgICAgICAgYXV0byBvcmllbnRhdGlvbkNsaWVudHMgPSBj
b3B5VG9WZWN0b3IobV9kZXZpY2VPcmllbnRhdGlvbkNsaWVudHMpOwotCisgICAgICAgIFZlY3Rv
cjxXZWFrUHRyPE1vdGlvbk1hbmFnZXJDbGllbnQ+PiBvcmllbnRhdGlvbkNsaWVudHM7CisgICAg
ICAgIG9yaWVudGF0aW9uQ2xpZW50cy5yZXNlcnZlSW5pdGlhbENhcGFjaXR5KG1fZGV2aWNlT3Jp
ZW50YXRpb25DbGllbnRzLmNvbXB1dGVTaXplKCkpOworICAgICAgICBmb3IgKGF1dG8mIGNsaWVu
dCA6IG1fZGV2aWNlT3JpZW50YXRpb25DbGllbnRzKQorICAgICAgICAgICAgb3JpZW50YXRpb25D
bGllbnRzLnVuY2hlY2tlZEFwcGVuZChtYWtlV2Vha1B0cigmY2xpZW50KSk7CisgICAgICAgIAog
ICAgICAgICAvLyBDb21wb3NlIHRoZSByYXcgbW90aW9uIGRhdGEgdG8gYW4gaW50ZXJtZWRpYXRl
IFpYWS1iYXNlZCAzeDMgcm90YXRpb24KICAgICAgICAgLy8gbWF0cml4IChSKSB3aGVyZSBbej1h
dHRpdHVkZS55YXcsIHg9YXR0aXR1ZGUucGl0Y2gsIHk9YXR0aXR1ZGUucm9sbF0KICAgICAgICAg
Ly8gaW4gdGhlIGZvcm06CkBAIC0zMTksOCArMzI0LDEwIEBAIC0gKHZvaWQpc2VuZE1vdGlvbkRh
dGE6KENNRGV2aWNlTW90aW9uICoKICAgICAgICAgZG91YmxlIGhlYWRpbmcgPSAobV9oZWFkaW5n
QXZhaWxhYmxlICYmIG5ld0hlYWRpbmcpID8gbmV3SGVhZGluZy5tYWduZXRpY0hlYWRpbmcgOiAw
OwogICAgICAgICBkb3VibGUgaGVhZGluZ0FjY3VyYWN5ID0gKG1faGVhZGluZ0F2YWlsYWJsZSAm
JiBuZXdIZWFkaW5nKSA/IG5ld0hlYWRpbmcuaGVhZGluZ0FjY3VyYWN5IDogLTE7CiAKLSAgICAg
ICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBvcmllbnRhdGlvbkNsaWVudHMuc2l6ZSgpOyArK2kp
Ci0gICAgICAgICAgICBvcmllbnRhdGlvbkNsaWVudHNbaV0tPm9yaWVudGF0aW9uQ2hhbmdlZChh
bHBoYSwgYmV0YSwgZ2FtbWEsIGhlYWRpbmcsIGhlYWRpbmdBY2N1cmFjeSk7CisgICAgICAgIGZv
ciAoc2l6ZV90IGkgPSAwOyBpIDwgb3JpZW50YXRpb25DbGllbnRzLnNpemUoKTsgKytpKSB7Cisg
ICAgICAgICAgICBpZiAob3JpZW50YXRpb25DbGllbnRzW2ldKQorICAgICAgICAgICAgICAgIG9y
aWVudGF0aW9uQ2xpZW50c1tpXS0+b3JpZW50YXRpb25DaGFuZ2VkKGFscGhhLCBiZXRhLCBnYW1t
YSwgaGVhZGluZywgaGVhZGluZ0FjY3VyYWN5KTsKKyAgICAgICAgfQogICAgIH0pOwogfQogCklu
ZGV4OiBTb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0
L0NoYW5nZUxvZwkocmV2aXNpb24gMjUzMjI2KQorKysgU291cmNlL1dlYktpdC9DaGFuZ2VMb2cJ
KHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwyNSBAQAorMjAxOS0xMi0wNiAgUGVyIEFybmUgVm9s
bGFuICA8cHZvbGxhbkBhcHBsZS5jb20+CisKKyAgICAgICAgW2lPU10gQ2FsbHMgdG8gZGV2aWNl
IG9yaWVudGF0aW9uIEFQSSBzaG91bGQgYmUgZG9uZSBpbiB0aGUgVUkgcHJvY2VzcworICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA0NzIwCisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgQWxleCBDaHJpc3RlbnNlbi4KKworICAgICAgICBBZGQgYSBuZXcgY2xh
c3MsIFdlYkRldmljZU9yaWVudGF0aW9uVXBkYXRlUHJvdmlkZXJQcm94eSwgdG8gaGFuZGxlIG1l
c3NhZ2VzIHRvIHN0YXJ0IGFuZCBzdG9wIHVwZGF0aW5nIGRldmljZSBvcmllbnRhdGlvbgorICAg
ICAgICBpbiB0aGUgVUkgcHJvY2Vzcy4gQWxzbywgYWRkIGEgbWVzc2FnZSB0byB1cGRhdGUgdGhl
IGRldmljZSBvcmllbnRhdGlvbiBpbiB0aGUgV2ViQ29udGVudCBwcm9jZXNzLiBJbiB0aGUgVUkg
cHJvY2VzcywgdGhlCisgICAgICAgIGRldmljZSBvcmllbnRhdGlvbiBBUEkgaXMgY2FsbGVkIHRo
cm91Z2ggdGhlIGFscmVhZHkgZXhpc3RpbmcgV2ViQ29yZU1vdGlvbk1hbmFnZXIgY2xhc3MuCisK
KyAgICAgICAgKiBEZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0OgorICAgICAgICAqIERl
cml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0OgorICAgICAgICAqIERlcml2ZWRTb3VyY2Vz
Lm1ha2U6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHA6CisgICAgICAgIChX
ZWJLaXQ6Om1fd2ViRGV2aWNlT3JpZW50YXRpb25VcGRhdGVQcm92aWRlclByb3h5KToKKyAgICAg
ICAgKFdlYktpdDo6bV9yZXNldFJlY2VudENyYXNoQ291bnRUaW1lcik6IERlbGV0ZWQuCisgICAg
ICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oOgorICAgICAgICAqIFdlYktpdC54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdl
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6bV9vdmVycmlkZGVuTWVkaWFUeXBlKToKKwogMjAxOS0x
Mi0wNiAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIFJlZHVjZSB0
aW1lb3V0IGZvciBwYWdlIHRvIGhhbmRsZSBiZWZvcmV1bmxvYWQgZXZlbnRzIHdoZW4gdHJ5aW5n
IHRvIGNsb3NlIGEgcGFnZQpJbmRleDogU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy1pbnB1
dC54Y2ZpbGVsaXN0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMt
aW5wdXQueGNmaWxlbGlzdAkocmV2aXNpb24gMjUzMjI2KQorKysgU291cmNlL1dlYktpdC9EZXJp
dmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0CSh3b3JraW5nIGNvcHkpCkBAIC04OCw2ICs4OCw3
IEBAICQoUFJPSkVDVF9ESVIpL1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC4KICQoUFJPSkVDVF9E
SVIpL1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkubWVzc2FnZXMuaW4KICQoUFJPSkVDVF9ESVIp
L1VJUHJvY2Vzcy9pb3MvRWRpdGFibGVJbWFnZUNvbnRyb2xsZXIubWVzc2FnZXMuaW4KICQoUFJP
SkVDVF9ESVIpL1VJUHJvY2Vzcy9pb3MvU21hcnRNYWduaWZpY2F0aW9uQ29udHJvbGxlci5tZXNz
YWdlcy5pbgorJChQUk9KRUNUX0RJUikvVUlQcm9jZXNzL2lvcy9XZWJEZXZpY2VPcmllbnRhdGlv
blVwZGF0ZVByb3ZpZGVyUHJveHkubWVzc2FnZXMuaW4KICQoUFJPSkVDVF9ESVIpL1VJUHJvY2Vz
cy9tYWMvU2VjSXRlbVNoaW1Qcm94eS5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikvV2ViUHJv
Y2Vzcy9BcHBsZVBheS9XZWJQYXltZW50Q29vcmRpbmF0b3IubWVzc2FnZXMuaW4KICQoUFJPSkVD
VF9ESVIpL1dlYlByb2Nlc3MvQXV0b21hdGlvbi9XZWJBdXRvbWF0aW9uU2Vzc2lvblByb3h5Lmpz
CkBAIC0xMTMsNiArMTE0LDcgQEAgJChQUk9KRUNUX0RJUikvV2ViUHJvY2Vzcy9TdG9yYWdlL1dl
YlNXQwogJChQUk9KRUNUX0RJUikvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ29udGV4dE1hbmFn
ZXJDb25uZWN0aW9uLm1lc3NhZ2VzLmluCiAkKFBST0pFQ1RfRElSKS9XZWJQcm9jZXNzL1VzZXJD
b250ZW50L1dlYlVzZXJDb250ZW50Q29udHJvbGxlci5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJ
UikvV2ViUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9XZWJBdXRoZW50aWNhdG9yQ29vcmRpbmF0
b3IubWVzc2FnZXMuaW4KKyQoUFJPSkVDVF9ESVIpL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
V2ViRGV2aWNlT3JpZW50YXRpb25VcGRhdGVQcm92aWRlci5tZXNzYWdlcy5pbgogJChQUk9KRUNU
X0RJUikvV2ViUHJvY2Vzcy9XZWJQYWdlL0NvY29hL1RleHRDaGVja2luZ0NvbnRyb2xsZXJQcm94
eS5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikvV2ViUHJvY2Vzcy9XZWJQYWdlL0RyYXdpbmdB
cmVhLm1lc3NhZ2VzLmluCiAkKFBST0pFQ1RfRElSKS9XZWJQcm9jZXNzL1dlYlBhZ2UvRXZlbnRE
aXNwYXRjaGVyLm1lc3NhZ2VzLmluCkluZGV4OiBTb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2Vz
LW91dHB1dC54Y2ZpbGVsaXN0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvRGVyaXZlZFNv
dXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QJKHJldmlzaW9uIDI1MzIyNikKKysrIFNvdXJjZS9XZWJL
aXQvRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QJKHdvcmtpbmcgY29weSkKQEAgLTE5
Myw2ICsxOTMsMTIgQEAgJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYgog
JChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvV2ViQ29va2llTWFu
YWdlclByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2
ZWRTb3VyY2VzL1dlYktpdDIvV2ViQ29va2llTWFuYWdlclByb3h5TWVzc2FnZXMuaAogJChCVUlM
VF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvV2ViQ29va2llTWFuYWdlclBy
b3h5TWVzc2FnZXNSZXBsaWVzLmgKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNl
cy9XZWJLaXQyL1dlYkRldmljZU9yaWVudGF0aW9uVXBkYXRlUHJvdmlkZXJNZXNzYWdlUmVjZWl2
ZXIuY3BwCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9XZWJE
ZXZpY2VPcmllbnRhdGlvblVwZGF0ZVByb3ZpZGVyTWVzc2FnZXMuaAorJChCVUlMVF9QUk9EVUNU
U19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvV2ViRGV2aWNlT3JpZW50YXRpb25VcGRhdGVQ
cm92aWRlck1lc3NhZ2VzUmVwbGllcy5oCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNv
dXJjZXMvV2ViS2l0Mi9XZWJEZXZpY2VPcmllbnRhdGlvblVwZGF0ZVByb3ZpZGVyUHJveHlNZXNz
YWdlUmVjZWl2ZXIuY3BwCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2Vi
S2l0Mi9XZWJEZXZpY2VPcmllbnRhdGlvblVwZGF0ZVByb3ZpZGVyUHJveHlNZXNzYWdlcy5oCisk
KEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9XZWJEZXZpY2VPcmll
bnRhdGlvblVwZGF0ZVByb3ZpZGVyUHJveHlNZXNzYWdlc1JlcGxpZXMuaAogJChCVUlMVF9QUk9E
VUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvV2ViRnVsbFNjcmVlbk1hbmFnZXJNZXNz
YWdlUmVjZWl2ZXIuY3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2Vi
S2l0Mi9XZWJGdWxsU2NyZWVuTWFuYWdlck1lc3NhZ2VzLmgKICQoQlVJTFRfUFJPRFVDVFNfRElS
KS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1dlYkZ1bGxTY3JlZW5NYW5hZ2VyTWVzc2FnZXNSZXBs
aWVzLmgKSW5kZXg6IFNvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMubWFrZQo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLm1ha2UJKHJldmlzaW9uIDI1MzIyNikK
KysrIFNvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMubWFrZQkod29ya2luZyBjb3B5KQpAQCAt
MTg5LDYgKzE4OSw4IEBAIE1FU1NBR0VfUkVDRUlWRVJTID0gXAogICAgIFdlYlNXQ29udGV4dE1h
bmFnZXJDb25uZWN0aW9uIFwKICAgICBXZWJTV1NlcnZlckNvbm5lY3Rpb24gXAogICAgIFdlYlNX
U2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbiBcCisgICAgV2ViRGV2aWNlT3JpZW50YXRpb25VcGRh
dGVQcm92aWRlciBcCisgICAgV2ViRGV2aWNlT3JpZW50YXRpb25VcGRhdGVQcm92aWRlclByb3h5
IFwKICAgICBXZWJTb2NrZXRDaGFubmVsIFwKICAgICBXZWJTb2NrZXRTdHJlYW0gXAogICAgIFdl
YlVzZXJDb250ZW50Q29udHJvbGxlciBcCkluZGV4OiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9X
ZWJQYWdlUHJveHkuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dl
YlBhZ2VQcm94eS5jcHAJKHJldmlzaW9uIDI1MzIyNikKKysrIFNvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1dlYlBhZ2VQcm94eS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ1MSw2ICs0NTEsOSBAQCBX
ZWJQYWdlUHJveHk6OldlYlBhZ2VQcm94eShQYWdlQ2xpZW50JiBwCiAjZW5kaWYKICAgICAsIG1f
cmVzZXRSZWNlbnRDcmFzaENvdW50VGltZXIoUnVuTG9vcDo6bWFpbigpLCB0aGlzLCAmV2ViUGFn
ZVByb3h5OjpyZXNldFJlY2VudENyYXNoQ291bnQpCiAgICAgLCBtX3RyeUNsb3NlVGltZW91dFRp
bWVyKFJ1bkxvb3A6Om1haW4oKSwgdGhpcywgJldlYlBhZ2VQcm94eTo6dHJ5Q2xvc2VUaW1lZE91
dCkKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKSAmJiBFTkFCTEUoREVWSUNFX09SSUVOVEFUSU9O
KQorICAgICwgbV93ZWJEZXZpY2VPcmllbnRhdGlvblVwZGF0ZVByb3ZpZGVyUHJveHkoKnRoaXMp
CisjZW5kaWYKIHsKICAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKExvYWRpbmcsICJjb25zdHJ1
Y3RvcjoiKTsKIApJbmRleDogU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgJKHJl
dmlzaW9uIDI1MzIyNikKKysrIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5o
CSh3b3JraW5nIGNvcHkpCkBAIC0xNDksNiArMTQ5LDEwIEBAIE9CSkNfQ0xBU1MgX1dLUmVtb3Rl
T2JqZWN0UmVnaXN0cnk7CiAjaW5jbHVkZSAiU09BdXRob3JpemF0aW9uTG9hZFBvbGljeS5oIgog
I2VuZGlmCiAKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKSAmJiBFTkFCTEUoREVWSUNFX09SSUVO
VEFUSU9OKQorI2luY2x1ZGUgIldlYkRldmljZU9yaWVudGF0aW9uVXBkYXRlUHJvdmlkZXJQcm94
eS5oIgorI2VuZGlmCisKICNpZiBFTkFCTEUoTUVESUFfU0VTU0lPTikKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIGNsYXNzIE1lZGlhU2Vzc2lvbk1ldGFkYXRhOwpAQCAtMjYzMiw2ICsyNjM2LDEwIEBA
IHByaXZhdGU6CiAgICAgYm9vbCBtX2lzUXVvdGFJbmNyZWFzZURlbmllZCB7IGZhbHNlIH07CiAg
ICAgCiAgICAgU3RyaW5nIG1fb3ZlcnJpZGRlbk1lZGlhVHlwZTsKKyAgICAgICAgCisjaWYgUExB
VEZPUk0oSU9TX0ZBTUlMWSkgJiYgRU5BQkxFKERFVklDRV9PUklFTlRBVElPTikKKyAgICBXZWJE
ZXZpY2VPcmllbnRhdGlvblVwZGF0ZVByb3ZpZGVyUHJveHkgbV93ZWJEZXZpY2VPcmllbnRhdGlv
blVwZGF0ZVByb3ZpZGVyUHJveHk7CisjZW5kaWYKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktp
dApJbmRleDogU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dlYkRldmljZU9yaWVudGF0aW9u
VXBkYXRlUHJvdmlkZXJQcm94eS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL2lvcy9XZWJEZXZpY2VPcmllbnRhdGlvblVwZGF0ZVByb3ZpZGVyUHJveHkuaAkobm9uZXhp
c3RlbnQpCisrKyBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV2ViRGV2aWNlT3JpZW50YXRp
b25VcGRhdGVQcm92aWRlclByb3h5LmgJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw1NyBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkgJiYg
RU5BQkxFKERFVklDRV9PUklFTlRBVElPTikKKworI2luY2x1ZGUgIk1lc3NhZ2VSZWNlaXZlci5o
IgorI2luY2x1ZGUgPFdlYkNvcmUvTW90aW9uTWFuYWdlckNsaWVudC5oPgorCituYW1lc3BhY2Ug
V2ViS2l0IHsKKworY2xhc3MgV2ViUGFnZVByb3h5OworCitjbGFzcyBXZWJEZXZpY2VPcmllbnRh
dGlvblVwZGF0ZVByb3ZpZGVyUHJveHkgOiBwdWJsaWMgV2ViQ29yZTo6TW90aW9uTWFuYWdlckNs
aWVudCwgcHJpdmF0ZSBJUEM6Ok1lc3NhZ2VSZWNlaXZlciB7CitwdWJsaWM6CisgICAgV2ViRGV2
aWNlT3JpZW50YXRpb25VcGRhdGVQcm92aWRlclByb3h5KFdlYlBhZ2VQcm94eSYpOworICAgIH5X
ZWJEZXZpY2VPcmllbnRhdGlvblVwZGF0ZVByb3ZpZGVyUHJveHkoKTsKKworICAgIHZvaWQgc3Rh
cnRVcGRhdGluZ0RldmljZU9yaWVudGF0aW9uKCk7CisgICAgdm9pZCBzdG9wVXBkYXRpbmdEZXZp
Y2VPcmllbnRhdGlvbigpOworICAgIAorcHJpdmF0ZToKKyAgICAvLyBXZWJDb3JlOjpXZWJDb3Jl
TW90aW9uTWFuYWdlckNsaWVudAorICAgIHZvaWQgb3JpZW50YXRpb25DaGFuZ2VkKGRvdWJsZSwg
ZG91YmxlLCBkb3VibGUsIGRvdWJsZSwgZG91YmxlKSBmaW5hbDsKKyAgICAKKyAgICAvLyBJUEM6
Ok1lc3NhZ2VSZWNlaXZlci4KKyAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVj
dGlvbiYsIElQQzo6RGVjb2RlciYpIG92ZXJyaWRlOworCisgICAgV2ViUGFnZVByb3h5JiBtX3Bh
Z2U7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIFBMQVRGT1JNKElP
U19GQU1JTFkpICYmIEVOQUJMRShERVZJQ0VfT1JJRU5UQVRJT04pCkluZGV4OiBTb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9pb3MvV2ViRGV2aWNlT3JpZW50YXRpb25VcGRhdGVQcm92aWRlclByb3h5
Lm1lc3NhZ2VzLmluCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9X
ZWJEZXZpY2VPcmllbnRhdGlvblVwZGF0ZVByb3ZpZGVyUHJveHkubWVzc2FnZXMuaW4JKG5vbmV4
aXN0ZW50KQorKysgU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dlYkRldmljZU9yaWVudGF0
aW9uVXBkYXRlUHJvdmlkZXJQcm94eS5tZXNzYWdlcy5pbgkod29ya2luZyBjb3B5KQpAQCAtMCww
ICsxLDI4IEBACisjIENvcHlyaWdodCAoQykgMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisjCisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyMgYXJlIG1ldDoKKyMgMS4gIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisjICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisjIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorIyAgICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyMKKyMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQKKyMgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJ
RUQKKyMgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUiBQVVJQT1NFIEFSRQorIyBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUgorIyBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFM
CisjIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RiBTVUJTVElUVVRFIEdPT0RTIE9SCisjIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSCisjIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksCisjIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkg
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisjIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisKKyNpZiBQ
TEFURk9STShJT1NfRkFNSUxZKSAmJiBFTkFCTEUoREVWSUNFX09SSUVOVEFUSU9OKQorbWVzc2Fn
ZXMgLT4gV2ViRGV2aWNlT3JpZW50YXRpb25VcGRhdGVQcm92aWRlclByb3h5IE5vdFJlZkNvdW50
ZWQgeworICAgIFN0YXJ0VXBkYXRpbmdEZXZpY2VPcmllbnRhdGlvbigpOworICAgIFN0b3BVcGRh
dGluZ0RldmljZU9yaWVudGF0aW9uKCk7Cit9CisjZW5kaWYKSW5kZXg6IFNvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL2lvcy9XZWJEZXZpY2VPcmllbnRhdGlvblVwZGF0ZVByb3ZpZGVyUHJveHkubW0K
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dlYkRldmljZU9yaWVu
dGF0aW9uVXBkYXRlUHJvdmlkZXJQcm94eS5tbQkobm9uZXhpc3RlbnQpCisrKyBTb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9pb3MvV2ViRGV2aWNlT3JpZW50YXRpb25VcGRhdGVQcm92aWRlclByb3h5
Lm1tCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNjcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9S
UyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09O
VFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW1wb3J0
ICJjb25maWcuaCIKKyNpbXBvcnQgIldlYkRldmljZU9yaWVudGF0aW9uVXBkYXRlUHJvdmlkZXJQ
cm94eS5oIgorCisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkgJiYgRU5BQkxFKERFVklDRV9PUklF
TlRBVElPTikKKworI2ltcG9ydCAiV2ViRGV2aWNlT3JpZW50YXRpb25VcGRhdGVQcm92aWRlck1l
c3NhZ2VzLmgiCisjaW1wb3J0ICJXZWJEZXZpY2VPcmllbnRhdGlvblVwZGF0ZVByb3ZpZGVyUHJv
eHlNZXNzYWdlcy5oIgorI2ltcG9ydCAiV2ViUGFnZVByb3h5LmgiCisjaW1wb3J0ICJXZWJQcm9j
ZXNzUHJveHkuaCIKKyNpbXBvcnQgPFdlYkNvcmUvV2ViQ29yZU1vdGlvbk1hbmFnZXIuaD4KKwor
bmFtZXNwYWNlIFdlYktpdCB7CisKK1dlYkRldmljZU9yaWVudGF0aW9uVXBkYXRlUHJvdmlkZXJQ
cm94eTo6V2ViRGV2aWNlT3JpZW50YXRpb25VcGRhdGVQcm92aWRlclByb3h5KFdlYlBhZ2VQcm94
eSYgcGFnZSkKKyAgICA6IG1fcGFnZShwYWdlKQoreworICAgIG1fcGFnZS5wcm9jZXNzKCkuYWRk
TWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2VzOjpXZWJEZXZpY2VPcmllbnRhdGlvblVwZGF0ZVByb3Zp
ZGVyUHJveHk6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSwgbV9wYWdlLndlYlBhZ2VJRCgpLCAqdGhp
cyk7Cit9CisKK1dlYkRldmljZU9yaWVudGF0aW9uVXBkYXRlUHJvdmlkZXJQcm94eTo6fldlYkRl
dmljZU9yaWVudGF0aW9uVXBkYXRlUHJvdmlkZXJQcm94eSgpCit7CisgICAgbV9wYWdlLnByb2Nl
c3MoKS5yZW1vdmVNZXNzYWdlUmVjZWl2ZXIoTWVzc2FnZXM6OldlYkRldmljZU9yaWVudGF0aW9u
VXBkYXRlUHJvdmlkZXJQcm94eTo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpLCBtX3BhZ2Uud2ViUGFn
ZUlEKCkpOworfQorCit2b2lkIFdlYkRldmljZU9yaWVudGF0aW9uVXBkYXRlUHJvdmlkZXJQcm94
eTo6c3RhcnRVcGRhdGluZ0RldmljZU9yaWVudGF0aW9uKCkKK3sKKyAgICBbW1dlYkNvcmVNb3Rp
b25NYW5hZ2VyIHNoYXJlZE1hbmFnZXJdIGFkZE9yaWVudGF0aW9uQ2xpZW50OnRoaXNdOworfQor
Cit2b2lkIFdlYkRldmljZU9yaWVudGF0aW9uVXBkYXRlUHJvdmlkZXJQcm94eTo6c3RvcFVwZGF0
aW5nRGV2aWNlT3JpZW50YXRpb24oKQoreworICAgIFtbV2ViQ29yZU1vdGlvbk1hbmFnZXIgc2hh
cmVkTWFuYWdlcl0gcmVtb3ZlT3JpZW50YXRpb25DbGllbnQ6dGhpc107Cit9CisKK3ZvaWQgV2Vi
RGV2aWNlT3JpZW50YXRpb25VcGRhdGVQcm92aWRlclByb3h5OjpvcmllbnRhdGlvbkNoYW5nZWQo
ZG91YmxlIGFscGhhLCBkb3VibGUgYmV0YSwgZG91YmxlIGdhbW1hLCBkb3VibGUgY29tcGFzc0hl
YWRpbmcsIGRvdWJsZSBjb21wYXNzQWNjdXJhY3kpCit7CisgICAgbV9wYWdlLnNlbmQoTWVzc2Fn
ZXM6OldlYkRldmljZU9yaWVudGF0aW9uVXBkYXRlUHJvdmlkZXI6OkRldmljZU9yaWVudGF0aW9u
Q2hhbmdlZChhbHBoYSwgYmV0YSwgZ2FtbWEsIGNvbXBhc3NIZWFkaW5nLCBjb21wYXNzQWNjdXJh
Y3kpKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBQTEFURk9STShJ
T1NfRkFNSUxZKQpJbmRleDogU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvago9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCShyZXZpc2lvbiAyNTMyMjYpCisrKyBTb3VyY2UvV2ViS2l0L1dlYktpdC54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCSh3b3JraW5nIGNvcHkpCkBAIC0xNjk2LDYgKzE2OTYs
MTQgQEAKIAkJRTFEMjZBNTMxNzU5NjREOTAwOTVCRkQxIC8qIFdlYkNvbnRlbnRQcm9jZXNzLnhp
YiBpbiBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTFEMjZB
NEMxNzU5NjM0RTAwOTVCRkQxIC8qIFdlYkNvbnRlbnRQcm9jZXNzLnhpYiAqLzsgfTsKIAkJRTFF
NTUyQzUxNkFFMDY1RjAwNEVENjUzIC8qIFNhbmRib3hJbml0aWFsaXphdGlvblBhcmFtZXRlcnMu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxRTU1MkMz
MTZBRTA2NUUwMDRFRDY1MyAvKiBTYW5kYm94SW5pdGlhbGl6YXRpb25QYXJhbWV0ZXJzLmggKi87
IH07CiAJCUUxRUU1M0UzMTFGOENGQzAwMENDQkVFNCAvKiBJbmplY3RlZEJ1bmRsZVBhZ2VFZGl0
b3JDbGllbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEUxRUU1M0RDMTFGOENGOUYwMENDQkVFNCAvKiBJbmplY3RlZEJ1bmRsZVBhZ2VFZGl0b3JDbGll
bnQuaCAqLzsgfTsKKwkJRTM4NjZBRTUyMzk3NDAwNDAwRjg4RkU5IC8qIFdlYkRldmljZU9yaWVu
dGF0aW9uVXBkYXRlUHJvdmlkZXJQcm94eS5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEUzODY2QUU0MjM5NzQwMDQwMEY4OEZFOSAvKiBXZWJEZXZpY2VP
cmllbnRhdGlvblVwZGF0ZVByb3ZpZGVyUHJveHkubW0gKi87IH07CisJCUUzODY2QUU3MjM5NzQw
NTMwMEY4OEZFOSAvKiBXZWJEZXZpY2VPcmllbnRhdGlvblVwZGF0ZVByb3ZpZGVyUHJveHkuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUzODY2QUU2MjM5
NzQwNTMwMEY4OEZFOSAvKiBXZWJEZXZpY2VPcmllbnRhdGlvblVwZGF0ZVByb3ZpZGVyUHJveHku
aCAqLzsgfTsKKwkJRTM4NjZCMDgyMzk5QTJEMTAwRjg4RkU5IC8qIFdlYkRldmljZU9yaWVudGF0
aW9uVXBkYXRlUHJvdmlkZXJQcm94eU1lc3NhZ2VzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMzg2NkIwNTIzOTk5NzlDMDBGODhGRTkgLyogV2ViRGV2
aWNlT3JpZW50YXRpb25VcGRhdGVQcm92aWRlclByb3h5TWVzc2FnZXMuaCAqLzsgfTsKKwkJRTM4
NjZCMDkyMzk5QTJENTAwRjg4RkU5IC8qIFdlYkRldmljZU9yaWVudGF0aW9uVXBkYXRlUHJvdmlk
ZXJQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBFMzg2NkIwNDIzOTk5NzlDMDBGODhGRTkgLyogV2ViRGV2aWNlT3Jp
ZW50YXRpb25VcGRhdGVQcm92aWRlclByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCAqLzsgfTsKKwkJ
RTM4NjZCMEEyMzk5QTJEOTAwRjg4RkU5IC8qIFdlYkRldmljZU9yaWVudGF0aW9uVXBkYXRlUHJv
dmlkZXJNZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gRTM4NjZCMDcyMzk5OTc5RDAwRjg4RkU5IC8qIFdlYkRldmljZU9yaWVudGF0aW9uVXBk
YXRlUHJvdmlkZXJNZXNzYWdlcy5oICovOyB9OworCQlFMzg2NkIwQjIzOTlBMkREMDBGODhGRTkg
LyogV2ViRGV2aWNlT3JpZW50YXRpb25VcGRhdGVQcm92aWRlck1lc3NhZ2VSZWNlaXZlci5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMzg2NkIwNjIz
OTk5NzlDMDBGODhGRTkgLyogV2ViRGV2aWNlT3JpZW50YXRpb25VcGRhdGVQcm92aWRlck1lc3Nh
Z2VSZWNlaXZlci5jcHAgKi87IH07CisJCUUzOTYyOEREMjM5NjBDQzYwMDY1OEVDRCAvKiBXZWJE
ZXZpY2VPcmllbnRhdGlvblVwZGF0ZVByb3ZpZGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMzk2MjhEQjIzOTYwQ0M1MDA2NThFQ0QgLyogV2ViRGV2
aWNlT3JpZW50YXRpb25VcGRhdGVQcm92aWRlci5oICovOyB9OworCQlFMzk2MjhERTIzOTYwQ0M2
MDA2NThFQ0QgLyogV2ViRGV2aWNlT3JpZW50YXRpb25VcGRhdGVQcm92aWRlci5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMzk2MjhEQzIzOTYwQ0M2
MDA2NThFQ0QgLyogV2ViRGV2aWNlT3JpZW50YXRpb25VcGRhdGVQcm92aWRlci5jcHAgKi87IH07
CiAJCUU0MTNGNTlEMUFDMUFEQzQwMDM0NTM2MCAvKiBOZXR3b3JrQ2FjaGVFbnRyeS5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTQxM0Y1OUIxQUMxQURC
NjAwMzQ1MzYwIC8qIE5ldHdvcmtDYWNoZUVudHJ5LmggKi87IH07CiAJCUU0MkUwNjEwMUFBNzUy
M0IwMEIxMTY5OSAvKiBOZXR3b3JrQ2FjaGVJT0NoYW5uZWwuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU0MkUwNjBCMUFBNzQ0MEQwMEIxMTY5OSAvKiBO
ZXR3b3JrQ2FjaGVJT0NoYW5uZWwuaCAqLzsgfTsKIAkJRTQyRTA2MTIxQUE3NUFCRDAwQjExNjk5
IC8qIE5ldHdvcmtDYWNoZURhdGEuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEU0MkUwNjExMUFBNzVBQkQwMEIxMTY5OSAvKiBOZXR3b3JrQ2FjaGVEYXRh
LmggKi87IH07CkBAIC0xOTc1LDkgKzE5ODMsOSBAQAogCQkJZHN0UGF0aCA9ICIkKElOU1RBTExf
UEFUSCkiOwogCQkJZHN0U3ViZm9sZGVyU3BlYyA9IDA7CiAJCQlmaWxlcyA9ICgKKwkJCQkyREI5
NjA1MzIzOTg4NkMxMDAxMDI3OTEgLyogY29tLmFwcGxlLldlYktpdC5HUFUuc2IgaW4gQ29weUZp
bGVzICovLAogCQkJCUE3OENDRERCMTkzQUM5RjgwMDVFQ0MyNSAvKiBjb20uYXBwbGUuV2ViS2l0
Lk5ldHdvcmtpbmcuc2IgaW4gQ29weUZpbGVzICovLAogCQkJCUE3OENDRERDMTkzQUM5RkIwMDVF
Q0MyNSAvKiBjb20uYXBwbGUuV2ViS2l0LldlYkNvbnRlbnQuc2IgaW4gQ29weUZpbGVzICovLAot
CQkJCTJEQjk2MDUzMjM5ODg2QzEwMDEwMjc5MSAvKiBjb20uYXBwbGUuV2ViS2l0LkdQVS5zYiBp
biBDb3B5RmlsZXMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vz
c2luZyA9IDA7CiAJCX07CkBAIC00ODA2LDYgKzQ4MTQsMTYgQEAKIAkJRTFFRTUzREMxMUY4Q0Y5
RjAwQ0NCRUU0IC8qIEluamVjdGVkQnVuZGxlUGFnZUVkaXRvckNsaWVudC5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBJbmplY3RlZEJ1bmRsZVBhZ2VFZGl0b3JDbGllbnQuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTFFRTUzRTYxMUY4Q0ZGQjAwQ0NCRUU0IC8q
IEluamVjdGVkQnVuZGxlUGFnZUVkaXRvckNsaWVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBJbmplY3RlZEJ1bmRsZVBhZ2VFZGl0b3JDbGllbnQuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFMzQzOUI2MzIzNDU0NjNBMDAxMURFMEIgLyogTmV0
d29ya1Byb2Nlc3NDb25uZWN0aW9uSW5mby5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBOZXR3b3JrUHJvY2Vz
c0Nvbm5lY3Rpb25JbmZvLmg7IHBhdGggPSBOZXR3b3JrL05ldHdvcmtQcm9jZXNzQ29ubmVjdGlv
bkluZm8uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTM4NjZBRTQyMzk3NDAwNDAw
Rjg4RkU5IC8qIFdlYkRldmljZU9yaWVudGF0aW9uVXBkYXRlUHJvdmlkZXJQcm94eS5tbSAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgbmFtZSA9IFdlYkRldmljZU9yaWVudGF0aW9u
VXBkYXRlUHJvdmlkZXJQcm94eS5tbTsgcGF0aCA9IGlvcy9XZWJEZXZpY2VPcmllbnRhdGlvblVw
ZGF0ZVByb3ZpZGVyUHJveHkubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUUzODY2
QUU2MjM5NzQwNTMwMEY4OEZFOSAvKiBXZWJEZXZpY2VPcmllbnRhdGlvblVwZGF0ZVByb3ZpZGVy
UHJveHkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gV2ViRGV2aWNlT3JpZW50
YXRpb25VcGRhdGVQcm92aWRlclByb3h5Lmg7IHBhdGggPSBpb3MvV2ViRGV2aWNlT3JpZW50YXRp
b25VcGRhdGVQcm92aWRlclByb3h5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUUz
ODY2QUVEMjM5ODQ3MUEwMEY4OEZFOSAvKiBXZWJEZXZpY2VPcmllbnRhdGlvblVwZGF0ZVByb3Zp
ZGVyUHJveHkubWVzc2FnZXMuaW4gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBuYW1lID0gV2ViRGV2aWNlT3Jp
ZW50YXRpb25VcGRhdGVQcm92aWRlclByb3h5Lm1lc3NhZ2VzLmluOyBwYXRoID0gaW9zL1dlYkRl
dmljZU9yaWVudGF0aW9uVXBkYXRlUHJvdmlkZXJQcm94eS5tZXNzYWdlcy5pbjsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTM4NjZCMDQyMzk5OTc5QzAwRjg4RkU5IC8qIFdlYkRldmlj
ZU9yaWVudGF0aW9uVXBkYXRlUHJvdmlkZXJQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBXZWJEZXZpY2VPcmllbnRhdGlvblVwZGF0
ZVByb3ZpZGVyUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwOyBwYXRoID0gRGVyaXZlZFNvdXJjZXMv
V2ViS2l0Mi9XZWJEZXZpY2VPcmllbnRhdGlvblVwZGF0ZVByb3ZpZGVyUHJveHlNZXNzYWdlUmVj
ZWl2ZXIuY3BwOyBzb3VyY2VUcmVlID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9OworCQlFMzg2NkIw
NTIzOTk5NzlDMDBGODhGRTkgLyogV2ViRGV2aWNlT3JpZW50YXRpb25VcGRhdGVQcm92aWRlclBy
b3h5TWVzc2FnZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gV2ViRGV2aWNl
T3JpZW50YXRpb25VcGRhdGVQcm92aWRlclByb3h5TWVzc2FnZXMuaDsgcGF0aCA9IERlcml2ZWRT
b3VyY2VzL1dlYktpdDIvV2ViRGV2aWNlT3JpZW50YXRpb25VcGRhdGVQcm92aWRlclByb3h5TWVz
c2FnZXMuaDsgc291cmNlVHJlZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsgfTsKKwkJRTM4NjZCMDYy
Mzk5OTc5QzAwRjg4RkU5IC8qIFdlYkRldmljZU9yaWVudGF0aW9uVXBkYXRlUHJvdmlkZXJNZXNz
YWdlUmVjZWl2ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gV2Vi
RGV2aWNlT3JpZW50YXRpb25VcGRhdGVQcm92aWRlck1lc3NhZ2VSZWNlaXZlci5jcHA7IHBhdGgg
PSBEZXJpdmVkU291cmNlcy9XZWJLaXQyL1dlYkRldmljZU9yaWVudGF0aW9uVXBkYXRlUHJvdmlk
ZXJNZXNzYWdlUmVjZWl2ZXIuY3BwOyBzb3VyY2VUcmVlID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9
OworCQlFMzg2NkIwNzIzOTk5NzlEMDBGODhGRTkgLyogV2ViRGV2aWNlT3JpZW50YXRpb25VcGRh
dGVQcm92aWRlck1lc3NhZ2VzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFdl
YkRldmljZU9yaWVudGF0aW9uVXBkYXRlUHJvdmlkZXJNZXNzYWdlcy5oOyBwYXRoID0gRGVyaXZl
ZFNvdXJjZXMvV2ViS2l0Mi9XZWJEZXZpY2VPcmllbnRhdGlvblVwZGF0ZVByb3ZpZGVyTWVzc2Fn
ZXMuaDsgc291cmNlVHJlZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsgfTsKKwkJRTM5NjI4REIyMzk2
MENDNTAwNjU4RUNEIC8qIFdlYkRldmljZU9yaWVudGF0aW9uVXBkYXRlUHJvdmlkZXIuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViRGV2aWNlT3JpZW50YXRpb25VcGRhdGVQ
cm92aWRlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFMzk2MjhEQzIzOTYwQ0M2
MDA2NThFQ0QgLyogV2ViRGV2aWNlT3JpZW50YXRpb25VcGRhdGVQcm92aWRlci5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJEZXZpY2VPcmllbnRhdGlvblVwZGF0
ZVByb3ZpZGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTM5NjI4RTQyMzk3
MUYzNDAwNjU4RUNEIC8qIFdlYkRldmljZU9yaWVudGF0aW9uVXBkYXRlUHJvdmlkZXIubWVzc2Fn
ZXMuaW4gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gV2ViRGV2aWNlT3JpZW50YXRpb25VcGRhdGVQ
cm92aWRlci5tZXNzYWdlcy5pbjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTQwNDkw
NzAyMURFNjVGNzAwMzdGMERCIC8qIFNjcm9sbGVyUGFpck1hYy5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBTY3JvbGxlclBhaXJNYWMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJRTQwNDkwNzEyMURFNjVGNzAwMzdGMERCIC8qIFNjcm9sbGluZ1RyZWVGcmFtZVNj
cm9sbGluZ05vZGVSZW1vdGVNYWMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gU2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZVJlbW90ZU1hYy5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUU0MDQ5MDcyMjFERTY1RjcwMDM3RjBEQiAvKiBTY3Jv
bGxlclBhaXJNYWMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBT
Y3JvbGxlclBhaXJNYWMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC01OTIzLDYg
KzU5NDEsOSBAQAogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKIAkJCQkyRDI4
RjNFMDE4ODVDQ0MxMDA0QjlFQUUgLyogV2ViQ2hyb21lQ2xpZW50SU9TLm1tICovLAorCQkJCUUz
OTYyOERDMjM5NjBDQzYwMDY1OEVDRCAvKiBXZWJEZXZpY2VPcmllbnRhdGlvblVwZGF0ZVByb3Zp
ZGVyLmNwcCAqLywKKwkJCQlFMzk2MjhEQjIzOTYwQ0M1MDA2NThFQ0QgLyogV2ViRGV2aWNlT3Jp
ZW50YXRpb25VcGRhdGVQcm92aWRlci5oICovLAorCQkJCUUzOTYyOEU0MjM5NzFGMzQwMDY1OEVD
RCAvKiBXZWJEZXZpY2VPcmllbnRhdGlvblVwZGF0ZVByb3ZpZGVyLm1lc3NhZ2VzLmluICovLAog
CQkJCTJEMjhGM0UyMTg4NUNDQzEwMDRCOUVBRSAvKiBXZWJFZGl0b3JDbGllbnRJT1MubW0gKi8s
CiAJCQkJMkQyOEYzRTMxODg1Q0NDMTAwNEI5RUFFIC8qIFdlYkZyYW1lTG9hZGVyQ2xpZW50SU9T
Lm1tICovLAogCQkJCUExQzUxMkM2MTkwNjU2RTUwMDQ0ODkxNCAvKiBXZWJQcmV2aWV3TG9hZGVy
Q2xpZW50LmNwcCAqLywKQEAgLTYzMTAsNiArNjMzMSw5IEBACiAJCQkJMkRGOTU5MzQxOEE0MjQx
MjAwOTc4NUExIC8qIFZpZXdHZXN0dXJlQ29udHJvbGxlcklPUy5tbSAqLywKIAkJCQlFNUJFRjY4
MDIxMzBDNDdGMDBGMzExMTEgLyogV2ViRGF0YUxpc3RTdWdnZXN0aW9uc0Ryb3Bkb3duSU9TLmgg
Ki8sCiAJCQkJRTVCRUY2ODEyMTMwQzQ3RjAwRjMxMTExIC8qIFdlYkRhdGFMaXN0U3VnZ2VzdGlv
bnNEcm9wZG93bklPUy5tbSAqLywKKwkJCQlFMzg2NkFFNjIzOTc0MDUzMDBGODhGRTkgLyogV2Vi
RGV2aWNlT3JpZW50YXRpb25VcGRhdGVQcm92aWRlclByb3h5LmggKi8sCisJCQkJRTM4NjZBRUQy
Mzk4NDcxQTAwRjg4RkU5IC8qIFdlYkRldmljZU9yaWVudGF0aW9uVXBkYXRlUHJvdmlkZXJQcm94
eS5tZXNzYWdlcy5pbiAqLywKKwkJCQlFMzg2NkFFNDIzOTc0MDA0MDBGODhGRTkgLyogV2ViRGV2
aWNlT3JpZW50YXRpb25VcGRhdGVQcm92aWRlclByb3h5Lm1tICovLAogCQkJCTJEQTk0NEFCMTg4
NEU5QkEwMEVEODZEQiAvKiBXZWJQYWdlUHJveHlJT1MubW0gKi8sCiAJCQkJMkRBOTQ0QUMxODg0
RTlCQTAwRUQ4NkRCIC8qIFdlYlByb2Nlc3NQcm94eUlPUy5tbSAqLywKIAkJCQkwRkNCNEUzODE4
QkJFMDQ0MDAwRkNGQzkgLyogV0tBY3Rpb25TaGVldC5oICovLApAQCAtOTE0OCw2ICs5MTcyLDEw
IEBACiAJCQkJMzMwOTM0NDQxMzE1QjkyMjAwOTdBN0JDIC8qIFdlYkNvb2tpZU1hbmFnZXJNZXNz
YWdlcy5oICovLAogCQkJCTMzMDkzNDQ1MTMxNUI5MjIwMDk3QTdCQyAvKiBXZWJDb29raWVNYW5h
Z2VyUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwICovLAogCQkJCTMzMDkzNDQ2MTMxNUI5MjIwMDk3
QTdCQyAvKiBXZWJDb29raWVNYW5hZ2VyUHJveHlNZXNzYWdlcy5oICovLAorCQkJCUUzODY2QjA2
MjM5OTk3OUMwMEY4OEZFOSAvKiBXZWJEZXZpY2VPcmllbnRhdGlvblVwZGF0ZVByb3ZpZGVyTWVz
c2FnZVJlY2VpdmVyLmNwcCAqLywKKwkJCQlFMzg2NkIwNzIzOTk5NzlEMDBGODhGRTkgLyogV2Vi
RGV2aWNlT3JpZW50YXRpb25VcGRhdGVQcm92aWRlck1lc3NhZ2VzLmggKi8sCisJCQkJRTM4NjZC
MDQyMzk5OTc5QzAwRjg4RkU5IC8qIFdlYkRldmljZU9yaWVudGF0aW9uVXBkYXRlUHJvdmlkZXJQ
cm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgKi8sCisJCQkJRTM4NjZCMDUyMzk5OTc5QzAwRjg4RkU5
IC8qIFdlYkRldmljZU9yaWVudGF0aW9uVXBkYXRlUHJvdmlkZXJQcm94eU1lc3NhZ2VzLmggKi8s
CiAJCQkJQ0Q3M0JBNDgxMzFBQ0Q4RTAwRUVERUQyIC8qIFdlYkZ1bGxTY3JlZW5NYW5hZ2VyTWVz
c2FnZVJlY2VpdmVyLmNwcCAqLywKIAkJCQlDRDczQkE0OTEzMUFDRDhFMDBFRURFRDIgLyogV2Vi
RnVsbFNjcmVlbk1hbmFnZXJNZXNzYWdlcy5oICovLAogCQkJCUNENzNCQTQ1MTMxQUNDODgwMEVF
REVEMiAvKiBXZWJGdWxsU2NyZWVuTWFuYWdlclByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCAqLywK
QEAgLTEwMTM1LDYgKzEwMTYzLDEwIEBACiAJCQkJRTVCRUY2ODIyMTMwQzQ4MDAwRjMxMTExIC8q
IFdlYkRhdGFMaXN0U3VnZ2VzdGlvbnNEcm9wZG93bklPUy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
RTU2OEI5MjIyMEEzQUM2QTAwRTNDODU2IC8qIFdlYkRhdGFMaXN0U3VnZ2VzdGlvbnNEcm9wZG93
bk1hYy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDZCMDUyNDcyMjY2OEQ4NTAwMjY1Qjk3IC8qIFdl
YkRldmljZU9yaWVudGF0aW9uQW5kTW90aW9uQWNjZXNzQ29udHJvbGxlci5oIGluIEhlYWRlcnMg
Ki8sCisJCQkJRTM5NjI4REQyMzk2MENDNjAwNjU4RUNEIC8qIFdlYkRldmljZU9yaWVudGF0aW9u
VXBkYXRlUHJvdmlkZXIuaCBpbiBIZWFkZXJzICovLAorCQkJCUUzODY2QjBBMjM5OUEyRDkwMEY4
OEZFOSAvKiBXZWJEZXZpY2VPcmllbnRhdGlvblVwZGF0ZVByb3ZpZGVyTWVzc2FnZXMuaCBpbiBI
ZWFkZXJzICovLAorCQkJCUUzODY2QUU3MjM5NzQwNTMwMEY4OEZFOSAvKiBXZWJEZXZpY2VPcmll
bnRhdGlvblVwZGF0ZVByb3ZpZGVyUHJveHkuaCBpbiBIZWFkZXJzICovLAorCQkJCUUzODY2QjA4
MjM5OUEyRDEwMEY4OEZFOSAvKiBXZWJEZXZpY2VPcmllbnRhdGlvblVwZGF0ZVByb3ZpZGVyUHJv
eHlNZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQ0QxOUEyNkUxQTEzRTgzNDAwOEQ2NTBF
IC8qIFdlYkRpYWdub3N0aWNMb2dnaW5nQ2xpZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQkxQTVC
MUM1NTE4OTg3RURGMDA0RkNGOUIgLyogV2ViRG9jdW1lbnRMb2FkZXIuaCBpbiBIZWFkZXJzICov
LAogCQkJCUJDMDMyRDdCMTBGNDM3OEQwMDU4QzE1QSAvKiBXZWJEcmFnQ2xpZW50LmggaW4gSGVh
ZGVycyAqLywKQEAgLTExODI4LDYgKzExODYwLDEwIEBACiAJCQkJMzMwOTM0NDcxMzE1QjkyMjAw
OTdBN0JDIC8qIFdlYkNvb2tpZU1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJMzMwOTM0NDkxMzE1QjkyMjAwOTdBN0JDIC8qIFdlYkNvb2tpZU1hbmFnZXJQcm94
eU1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkyRDkyQTc4ODIxMkI2QUIx
MDBGNDkzRkQgLyogV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNwcCBpbiBTb3VyY2VzICovLAorCQkJ
CUUzOTYyOERFMjM5NjBDQzYwMDY1OEVDRCAvKiBXZWJEZXZpY2VPcmllbnRhdGlvblVwZGF0ZVBy
b3ZpZGVyLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUUzODY2QjBCMjM5OUEyREQwMEY4OEZFOSAv
KiBXZWJEZXZpY2VPcmllbnRhdGlvblVwZGF0ZVByb3ZpZGVyTWVzc2FnZVJlY2VpdmVyLmNwcCBp
biBTb3VyY2VzICovLAorCQkJCUUzODY2QUU1MjM5NzQwMDQwMEY4OEZFOSAvKiBXZWJEZXZpY2VP
cmllbnRhdGlvblVwZGF0ZVByb3ZpZGVyUHJveHkubW0gaW4gU291cmNlcyAqLywKKwkJCQlFMzg2
NkIwOTIzOTlBMkQ1MDBGODhGRTkgLyogV2ViRGV2aWNlT3JpZW50YXRpb25VcGRhdGVQcm92aWRl
clByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTJEOTJBNzg5MjEy
QjZBQjEwMEY0OTNGRCAvKiBXZWJFdmVudC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlDRDczQkE0
RTEzMUFDREI3MDBFRURFRDIgLyogV2ViRnVsbFNjcmVlbk1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQ0Q3M0JBNDcxMzFBQ0M5QTAwRUVERUQyIC8qIFdlYkZ1
bGxTY3JlZW5NYW5hZ2VyUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCklu
ZGV4OiBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRGV2aWNlT3Jp
ZW50YXRpb25VcGRhdGVQcm92aWRlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkRldmljZU9yaWVudGF0aW9uVXBkYXRlUHJvdmlk
ZXIuY3BwCShub25leGlzdGVudCkKKysrIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3Jl
U3VwcG9ydC9XZWJEZXZpY2VPcmllbnRhdGlvblVwZGF0ZVByb3ZpZGVyLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMCwwICsxLDc1IEBACisvKgorKiBDb3B5cmlnaHQgKEMpIDIwMTkgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorKgorKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisqIGFy
ZSBtZXQ6CisqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorKgorKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisqIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworKiBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisq
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GCisqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorKiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKQorKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJXZWJEZXZpY2VPcmll
bnRhdGlvblVwZGF0ZVByb3ZpZGVyLmgiCisKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKSAmJiBF
TkFCTEUoREVWSUNFX09SSUVOVEFUSU9OKQorCisjaW5jbHVkZSAiV2ViRGV2aWNlT3JpZW50YXRp
b25VcGRhdGVQcm92aWRlck1lc3NhZ2VzLmgiCisjaW5jbHVkZSAiV2ViRGV2aWNlT3JpZW50YXRp
b25VcGRhdGVQcm92aWRlclByb3h5TWVzc2FnZXMuaCIKKyNpbmNsdWRlICJXZWJQYWdlLmgiCisj
aW5jbHVkZSAiV2ViUHJvY2Vzcy5oIgorCisjaW5jbHVkZSA8V2ViQ29yZS9Nb3Rpb25NYW5hZ2Vy
Q2xpZW50Lmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitXZWJEZXZpY2VPcmllbnRhdGlvblVw
ZGF0ZVByb3ZpZGVyOjpXZWJEZXZpY2VPcmllbnRhdGlvblVwZGF0ZVByb3ZpZGVyKFdlYlBhZ2Um
IHBhZ2UpCisgICAgOiBtX3BhZ2UobWFrZVdlYWtQdHIocGFnZSkpCit7CisgICAgV2ViUHJvY2Vz
czo6c2luZ2xldG9uKCkuYWRkTWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2VzOjpXZWJEZXZpY2VPcmll
bnRhdGlvblVwZGF0ZVByb3ZpZGVyOjptZXNzYWdlUmVjZWl2ZXJOYW1lKCksIHBhZ2UuaWRlbnRp
ZmllcigpLCAqdGhpcyk7Cit9CisKK1dlYkRldmljZU9yaWVudGF0aW9uVXBkYXRlUHJvdmlkZXI6
On5XZWJEZXZpY2VPcmllbnRhdGlvblVwZGF0ZVByb3ZpZGVyKCkKK3sKKyAgICBXZWJQcm9jZXNz
OjpzaW5nbGV0b24oKS5yZW1vdmVNZXNzYWdlUmVjZWl2ZXIoTWVzc2FnZXM6OldlYkRldmljZU9y
aWVudGF0aW9uVXBkYXRlUHJvdmlkZXI6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSk7Cit9CisKK3Zv
aWQgV2ViRGV2aWNlT3JpZW50YXRpb25VcGRhdGVQcm92aWRlcjo6c3RhcnRVcGRhdGluZyhXZWJD
b3JlOjpNb3Rpb25NYW5hZ2VyQ2xpZW50JiBjbGllbnQpCit7CisgICAgaWYgKG1fY2xpZW50cy5p
c0VtcHR5KCkgJiYgbV9wYWdlKQorICAgICAgICBtX3BhZ2UtPnNlbmQoTWVzc2FnZXM6OldlYkRl
dmljZU9yaWVudGF0aW9uVXBkYXRlUHJvdmlkZXJQcm94eTo6U3RhcnRVcGRhdGluZ0RldmljZU9y
aWVudGF0aW9uKCkpOworICAgIG1fY2xpZW50cy5hZGQoJmNsaWVudCk7Cit9CisKK3ZvaWQgV2Vi
RGV2aWNlT3JpZW50YXRpb25VcGRhdGVQcm92aWRlcjo6c3RvcFVwZGF0aW5nKFdlYkNvcmU6Ok1v
dGlvbk1hbmFnZXJDbGllbnQmIGNsaWVudCkKK3sKKyAgICBpZiAobV9jbGllbnRzLmlzRW1wdHko
KSkKKyAgICAgICAgcmV0dXJuOworICAgIG1fY2xpZW50cy5yZW1vdmUoJmNsaWVudCk7CisgICAg
aWYgKG1fY2xpZW50cy5pc0VtcHR5KCkgJiYgbV9wYWdlKQorICAgICAgICBtX3BhZ2UtPnNlbmQo
TWVzc2FnZXM6OldlYkRldmljZU9yaWVudGF0aW9uVXBkYXRlUHJvdmlkZXJQcm94eTo6U3RvcFVw
ZGF0aW5nRGV2aWNlT3JpZW50YXRpb24oKSk7Cit9CisKK3ZvaWQgV2ViRGV2aWNlT3JpZW50YXRp
b25VcGRhdGVQcm92aWRlcjo6ZGV2aWNlT3JpZW50YXRpb25DaGFuZ2VkKGRvdWJsZSBhbHBoYSwg
ZG91YmxlIGJldGEsIGRvdWJsZSBnYW1tYSwgZG91YmxlIGNvbXBhc3NIZWFkaW5nLCBkb3VibGUg
Y29tcGFzc0FjY3VyYWN5KQoreworICAgIGZvciAoYXV0byogY2xpZW50IDogY29weVRvVmVjdG9y
KG1fY2xpZW50cykpCisgICAgICAgIGNsaWVudC0+b3JpZW50YXRpb25DaGFuZ2VkKGFscGhhLCBi
ZXRhLCBnYW1tYSwgY29tcGFzc0hlYWRpbmcsIGNvbXBhc3NBY2N1cmFjeSk7Cit9CisKK30KKwor
I2VuZGlmIC8vIFBMQVRGT1JNKElPU19GQU1JTFkpICYmIEVOQUJMRShERVZJQ0VfT1JJRU5UQVRJ
T04pCkluZGV4OiBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRGV2
aWNlT3JpZW50YXRpb25VcGRhdGVQcm92aWRlci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJEZXZpY2VPcmllbnRhdGlvblVwZGF0ZVBy
b3ZpZGVyLmgJKG5vbmV4aXN0ZW50KQorKysgU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNv
cmVTdXBwb3J0L1dlYkRldmljZU9yaWVudGF0aW9uVXBkYXRlUHJvdmlkZXIuaAkod29ya2luZyBj
b3B5KQpAQCAtMCwwICsxLDYyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE5IEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisg
KiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICog
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNs
dWRlICJNZXNzYWdlUmVjZWl2ZXIuaCIKKyNpbmNsdWRlICJXZWJQYWdlLmgiCisKKyNpbmNsdWRl
IDxXZWJDb3JlL0RldmljZU9yaWVudGF0aW9uVXBkYXRlUHJvdmlkZXIuaD4KKworI2luY2x1ZGUg
PHd0Zi9IYXNoU2V0Lmg+CisjaW5jbHVkZSA8d3RmL1dlYWtQdHIuaD4KKworI2lmIFBMQVRGT1JN
KElPU19GQU1JTFkpICYmIEVOQUJMRShERVZJQ0VfT1JJRU5UQVRJT04pCisKK25hbWVzcGFjZSBX
ZWJLaXQgeworCitjbGFzcyBXZWJEZXZpY2VPcmllbnRhdGlvblVwZGF0ZVByb3ZpZGVyIGZpbmFs
IDogcHVibGljIFdlYkNvcmU6OkRldmljZU9yaWVudGF0aW9uVXBkYXRlUHJvdmlkZXIsIHByaXZh
dGUgSVBDOjpNZXNzYWdlUmVjZWl2ZXIgeworcHVibGljOgorICAgIHN0YXRpYyBSZWY8V2ViRGV2
aWNlT3JpZW50YXRpb25VcGRhdGVQcm92aWRlcj4gY3JlYXRlKFdlYlBhZ2UmIHBhZ2UpIHsgcmV0
dXJuIGFkb3B0UmVmKCpuZXcgV2ViRGV2aWNlT3JpZW50YXRpb25VcGRhdGVQcm92aWRlcihwYWdl
KSk7fQorCitwcml2YXRlOgorICAgIFdlYkRldmljZU9yaWVudGF0aW9uVXBkYXRlUHJvdmlkZXIo
V2ViUGFnZSYpOworICAgIH5XZWJEZXZpY2VPcmllbnRhdGlvblVwZGF0ZVByb3ZpZGVyKCk7CisK
KyAgICAvLyBXZWJDb3JlOjpEZXZpY2VPcmllbnRhdGlvblVwZGF0ZVByb3ZpZGVyCisgICAgdm9p
ZCBzdGFydFVwZGF0aW5nKFdlYkNvcmU6Ok1vdGlvbk1hbmFnZXJDbGllbnQmKSBmaW5hbDsKKyAg
ICB2b2lkIHN0b3BVcGRhdGluZyhXZWJDb3JlOjpNb3Rpb25NYW5hZ2VyQ2xpZW50JikgZmluYWw7
CisgICAgdm9pZCBkZXZpY2VPcmllbnRhdGlvbkNoYW5nZWQoZG91YmxlLCBkb3VibGUsIGRvdWJs
ZSwgZG91YmxlLCBkb3VibGUpIGZpbmFsOworCisgICAgLy8gSVBDOjpNZXNzYWdlUmVjZWl2ZXIu
CisgICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29k
ZXImKSBvdmVycmlkZTsKKworICAgIFdlYWtQdHI8V2ViUGFnZT4gbV9wYWdlOworICAgIEhhc2hT
ZXQ8V2ViQ29yZTo6TW90aW9uTWFuYWdlckNsaWVudCo+IG1fY2xpZW50czsKK307CisKK30KKwor
I2VuZGlmIC8vIFBMQVRGT1JNKElPU19GQU1JTFkpICYmIEVOQUJMRShERVZJQ0VfT1JJRU5UQVRJ
T04pCkluZGV4OiBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRGV2
aWNlT3JpZW50YXRpb25VcGRhdGVQcm92aWRlci5tZXNzYWdlcy5pbgo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRGV2aWNlT3JpZW50YXRp
b25VcGRhdGVQcm92aWRlci5tZXNzYWdlcy5pbgkobm9uZXhpc3RlbnQpCisrKyBTb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRGV2aWNlT3JpZW50YXRpb25VcGRhdGVQ
cm92aWRlci5tZXNzYWdlcy5pbgkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDI3IEBACisjIENv
cHlyaWdodCAoQykgMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjCisjIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyMgYXJlIG1ldDoKKyMgMS4gIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisjIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorIyAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorIyAgICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyMK
KyMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJ
QlVUT1JTIGBgQVMgSVMnJyBBTkQKKyMgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyMgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NF
IEFSRQorIyBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBD
T05UUklCVVRPUlMgQkUgTElBQkxFIEZPUgorIyBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMCisjIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdP
T0RTIE9SCisjIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSCisjIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksCisjIE9S
IFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFCisjIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisKKyNpZiBQTEFURk9STShJT1NfRkFN
SUxZKSAmJiBFTkFCTEUoREVWSUNFX09SSUVOVEFUSU9OKQorbWVzc2FnZXMgLT4gV2ViRGV2aWNl
T3JpZW50YXRpb25VcGRhdGVQcm92aWRlciB7CisgICAgRGV2aWNlT3JpZW50YXRpb25DaGFuZ2Vk
KGRvdWJsZSBhbHBoYSwgZG91YmxlIGJldGEsIGRvdWJsZSBnYW1tYSwgZG91YmxlIGNvbXBhc3NI
ZWFkaW5nLCBkb3VibGUgY29tcGFzc0FjY3VyYWN5KQorfQorI2VuZGlmCkluZGV4OiBTb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAkocmV2aXNpb24gMjUzMjI2
KQorKysgU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTMwNyw2ICszMDcsMTAgQEAKICNpbmNsdWRlIDxXZWJDb3JlL0F1dGhlbnRp
Y2F0b3JDb29yZGluYXRvci5oPgogI2VuZGlmCiAKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKSAm
JiBFTkFCTEUoREVWSUNFX09SSUVOVEFUSU9OKQorI2luY2x1ZGUgIldlYkRldmljZU9yaWVudGF0
aW9uVXBkYXRlUHJvdmlkZXIuaCIKKyNlbmRpZgorCiBuYW1lc3BhY2UgV2ViS2l0IHsKIHVzaW5n
IG5hbWVzcGFjZSBKU0M7CiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKQEAgLTUwMSw2ICs1MDUs
MTAgQEAgV2ViUGFnZTo6V2ViUGFnZShQYWdlSWRlbnRpZmllciBwYWdlSUQsIAogI2lmIEVOQUJM
RShBUFBMSUNBVElPTl9NQU5JRkVTVCkKICAgICBwYWdlQ29uZmlndXJhdGlvbi5hcHBsaWNhdGlv
bk1hbmlmZXN0ID0gcGFyYW1ldGVycy5hcHBsaWNhdGlvbk1hbmlmZXN0OwogI2VuZGlmCisgICAg
CisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkgJiYgRU5BQkxFKERFVklDRV9PUklFTlRBVElPTikK
KyAgICBwYWdlQ29uZmlndXJhdGlvbi5kZXZpY2VPcmllbnRhdGlvblVwZGF0ZVByb3ZpZGVyID0g
V2ViRGV2aWNlT3JpZW50YXRpb25VcGRhdGVQcm92aWRlcjo6Y3JlYXRlKCp0aGlzKTsKKyNlbmRp
ZgogCiAgICAgbV9wYWdlID0gbWFrZVVuaXF1ZTxQYWdlPihXVEZNb3ZlKHBhZ2VDb25maWd1cmF0
aW9uKSk7CiAK
</data>

          </attachment>
      

    </bug>

</bugzilla>