<?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>221187</bug_id>
          
          <creation_ts>2021-01-31 09:12:54 -0800</creation_ts>
          <short_desc>Permission request API for MediaKeySystem access support</short_desc>
          <delta_ts>2021-04-12 15:37:56 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit2</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=224384</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>221586</dependson>
          <blocked>221199</blocked>
    
    <blocked>224384</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Philippe Normand">pnormand</reporter>
          <assigned_to name="Philippe Normand">pnormand</assigned_to>
          <cc>annulen</cc>
    
    <cc>berto</cc>
    
    <cc>calvaris</cc>
    
    <cc>cdumez</cc>
    
    <cc>cgarcia</cc>
    
    <cc>commit-queue</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>gustavo</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>japhet</cc>
    
    <cc>jer.noble</cc>
    
    <cc>mkwst</cc>
    
    <cc>peng.liu6</cc>
    
    <cc>philipj</cc>
    
    <cc>rniwa</cc>
    
    <cc>ryuan.choi</cc>
    
    <cc>sergio</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1724078</commentid>
    <comment_count>0</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2021-01-31 09:12:54 -0800</bug_when>
    <thetext>At least GTK/WPE would like to have API for asking permission to the user when EME&apos;s MediaKeyAccess is being requested by a page. On Apple platforms the permission is granted by default until a decision is made about supporting this in their APIUIClient.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1724081</commentid>
    <comment_count>1</comment_count>
      <attachid>418826</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2021-01-31 09:30:05 -0800</bug_when>
    <thetext>Created attachment 418826
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1724082</commentid>
    <comment_count>2</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2021-01-31 09:31:30 -0800</bug_when>
    <thetext>Thanks for the patch. If this patch contains new public API please make sure it follows the guidelines for new WebKit2 GTK+ API. See https://trac.webkit.org/wiki/WebKitGTK/AddingNewWebKit2API</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1724083</commentid>
    <comment_count>3</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2021-01-31 09:32:34 -0800</bug_when>
    <thetext>I expect apple&apos;s EWS to fail. I&apos;ll check the build issues.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1724186</commentid>
    <comment_count>4</comment_count>
      <attachid>418853</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2021-02-01 04:03:18 -0800</bug_when>
    <thetext>Created attachment 418853
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1724187</commentid>
    <comment_count>5</comment_count>
      <attachid>418854</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2021-02-01 04:06:14 -0800</bug_when>
    <thetext>Created attachment 418854
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1724189</commentid>
    <comment_count>6</comment_count>
      <attachid>418855</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2021-02-01 04:18:10 -0800</bug_when>
    <thetext>Created attachment 418855
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1724192</commentid>
    <comment_count>7</comment_count>
      <attachid>418857</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2021-02-01 04:41:42 -0800</bug_when>
    <thetext>Created attachment 418857
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1724197</commentid>
    <comment_count>8</comment_count>
      <attachid>418859</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2021-02-01 05:04:42 -0800</bug_when>
    <thetext>Created attachment 418859
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1724219</commentid>
    <comment_count>9</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2021-02-01 06:47:55 -0800</bug_when>
    <thetext>mac-wk1 layout tests failing, most likely because of missing UIDelegate support for the permission request. I&apos;ll check it.

Any hints regarding the watch/tv build failures would be welcome though!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1724252</commentid>
    <comment_count>10</comment_count>
      <attachid>418878</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2021-02-01 08:19:17 -0800</bug_when>
    <thetext>Created attachment 418878
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1724598</commentid>
    <comment_count>11</comment_count>
      <attachid>418979</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2021-02-02 03:05:23 -0800</bug_when>
    <thetext>Created attachment 418979
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1724602</commentid>
    <comment_count>12</comment_count>
      <attachid>418980</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2021-02-02 03:08:33 -0800</bug_when>
    <thetext>Created attachment 418980
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1725899</commentid>
    <comment_count>13</comment_count>
      <attachid>418980</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2021-02-04 17:55:04 -0800</bug_when>
    <thetext>Comment on attachment 418980
Patch

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

&gt; Source/WebCore/Modules/encryptedmedia/MediaKeySystemClient.h:29
&gt; +#include &lt;wtf/CompletionHandler.h&gt;

This doesn&apos;t look necessary; could this be removed?

&gt; Source/WebCore/Modules/encryptedmedia/MediaKeySystemClient.h:48
&gt; +WEBCORE_EXPORT void provideMediaKeySystemTo(Page*, MediaKeySystemClient*);

Both these should probably be references.

&gt; Source/WebCore/Modules/encryptedmedia/MediaKeySystemController.h:29
&gt; +#include &quot;FeaturePolicy.h&quot;

Could this be moved into the implementation file?

&gt; Source/WebCore/Modules/encryptedmedia/MediaKeySystemController.h:31
&gt; +#include &quot;Page.h&quot;

Ditto here, but the `from()` method would need to be un-inlined, which is fine since supplementName() is already in the implementation file also.

&gt; Source/WebCore/Modules/encryptedmedia/MediaKeySystemController.h:32
&gt; +#include &lt;wtf/CompletionHandler.h&gt;

This doesn&apos;t appear to be used.

&gt; Source/WebCore/Modules/encryptedmedia/MediaKeySystemController.h:41
&gt; +    explicit MediaKeySystemController(MediaKeySystemClient*);

This should take a reference; and MediaKeySystemClient should probably be a CanMakeWeakPtr.

&gt; Source/WebCore/Modules/encryptedmedia/MediaKeySystemController.h:44
&gt; +    MediaKeySystemClient* client() const { return m_client; }

Is this really needed?

&gt; Source/WebCore/Modules/encryptedmedia/MediaKeySystemController.h:55
&gt; +    MediaKeySystemClient* m_client;

This should probably be a WeakPtr&lt;MediaKeySystemClient&gt;.

&gt; Source/WebCore/Modules/encryptedmedia/MediaKeySystemController.h:60
&gt; +    m_client-&gt;requestMediaKeySystem(request);

This should have a NULL check.

&gt; Source/WebCore/Modules/encryptedmedia/MediaKeySystemController.h:65
&gt; +    m_client-&gt;cancelMediaKeySystemRequest(request);

Ditto.

&gt; Source/WebKit/UIProcess/MediaKeySystemPermissionRequest.h:29
&gt; +#include &lt;WebCore/ClientOrigin.h&gt;

This doesn&apos;t seem to be used. Can it be moved to the implementation file?

&gt; Source/WebKit/UIProcess/MediaKeySystemPermissionRequestManagerProxy.h:31
&gt; +#include &lt;wtf/CompletionHandler.h&gt;
&gt; +#include &lt;wtf/Deque.h&gt;

These doesn&apos;t appear to be used.

&gt; Source/WebKit/UIProcess/MediaKeySystemPermissionRequestManagerProxy.h:35
&gt; +#include &lt;wtf/RunLoop.h&gt;
&gt; +#include &lt;wtf/Seconds.h&gt;

Ditto.

&gt; Source/WebKit/UIProcess/MediaKeySystemPermissionRequestManagerProxy.h:50
&gt; +#if !RELEASE_LOG_DISABLED
&gt; +    , private LoggerHelper
&gt; +#endif

So, ...

&gt; Source/WebKit/UIProcess/MediaKeySystemPermissionRequestManagerProxy.h:72
&gt; +#if !RELEASE_LOG_DISABLED
&gt; +    const Logger&amp; logger() const final;
&gt; +    const void* logIdentifier() const final { return m_logIdentifier; }
&gt; +    const char* logClassName() const override { return &quot;MediaKeySystemPermissionRequestManagerProxy&quot;; }
&gt; +    WTFLogChannel&amp; logChannel() const final;
&gt; +#endif

It turns out there&apos;s not a great reason to explicitly inherit from LoggerHelper (unless a subclass relies upon them); these methods just need to be defined in the scope in which LOG macro appears.  The methods need to exist, but it&apos;s also fine just to define them as local statics, if needed. Also, this means you don&apos;t need the LoggerHelper.h header (nor even Logger or WTFLogChannel, if they&apos;re forward declared).

&gt; Source/WebKit/UIProcess/MediaKeySystemPermissionRequestManagerProxy.h:80
&gt; +    Ref&lt;const Logger&gt; m_logger;

This isn&apos;t needed, as you just get the Logger from the page.

&gt; Source/WebKit/UIProcess/MediaKeySystemPermissionRequestProxy.h:68
&gt; +    MediaKeySystemPermissionRequestManagerProxy* m_manager;

This should be a `WeakPtr&lt;MediaKeySystemPermissionRequestManagerProxy&gt;`.

&gt; Source/WebKit/UIProcess/SpeechRecognitionRemoteRealtimeMediaSource.cpp:37
&gt; +#include &lt;WebCore/CARingBuffer.h&gt;
&gt; +#include &lt;WebCore/WebAudioBufferList.h&gt;

Is this perhaps an unrelated change?

&gt; Source/WebKit/UIProcess/SpeechRecognitionRemoteRealtimeMediaSource.h:30
&gt; +#include &quot;SharedMemory.h&quot;

Ditto?

&gt; Source/WebKit/UIProcess/WebPageProxy.cpp:10465
&gt; +    completionHandler(false);

This appears to deny all media key system access unless clients specifically add a UIClient to do the reverse, which is a breaking change. Could this just be &quot;true&quot; by default instead?

&gt; Source/WebKitLegacy/mac/WebCoreSupport/WebMediaKeySystemClient.h:34
&gt; +    WebView *webView() { return m_webView; }

This never appears to be called. Is it necessary, or indeed is the WebView* needed at all?

&gt; Source/WebKitLegacy/mac/WebCoreSupport/WebMediaKeySystemClient.mm:43
&gt; +void WebMediaKeySystemClient::pageDestroyed()
&gt; +{
&gt; +    delete this;
&gt; +}

This seems really weird. (Same above, too.)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1725900</commentid>
    <comment_count>14</comment_count>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2021-02-04 17:57:47 -0800</bug_when>
    <thetext>(In reply to Philippe Normand from comment #9)
&gt; mac-wk1 layout tests failing, most likely because of missing UIDelegate
&gt; support for the permission request. I&apos;ll check it.
&gt; 
&gt; Any hints regarding the watch/tv build failures would be welcome though!

Looks like MediaKeySystemRequest is guarded by `#if ENABLE(MEDIA_STREAM)` not `#if ENABLE(ENCRYPTED_MEDIA)`. And the former isn&apos;t enabled on TV or watchOS.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1725992</commentid>
    <comment_count>15</comment_count>
      <attachid>419383</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2021-02-05 02:58:06 -0800</bug_when>
    <thetext>Created attachment 419383
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1725993</commentid>
    <comment_count>16</comment_count>
      <attachid>418980</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2021-02-05 02:58:27 -0800</bug_when>
    <thetext>Comment on attachment 418980
Patch

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

Thanks Jer!

&gt;&gt; Source/WebKit/UIProcess/MediaKeySystemPermissionRequest.h:29
&gt;&gt; +#include &lt;WebCore/ClientOrigin.h&gt;
&gt; 
&gt; This doesn&apos;t seem to be used. Can it be moved to the implementation file?

The class is entirely implemented in the header.

&gt;&gt; Source/WebKit/UIProcess/SpeechRecognitionRemoteRealtimeMediaSource.cpp:37
&gt;&gt; +#include &lt;WebCore/WebAudioBufferList.h&gt;
&gt; 
&gt; Is this perhaps an unrelated change?

Actually it is relevant to this patch, which somehow changes the unified build &quot;layout&quot; :/</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1725994</commentid>
    <comment_count>17</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2021-02-05 03:00:38 -0800</bug_when>
    <thetext>(In reply to Jer Noble from comment #14)
&gt; (In reply to Philippe Normand from comment #9)
&gt; &gt; mac-wk1 layout tests failing, most likely because of missing UIDelegate
&gt; &gt; support for the permission request. I&apos;ll check it.
&gt; &gt; 
&gt; &gt; Any hints regarding the watch/tv build failures would be welcome though!
&gt; 
&gt; Looks like MediaKeySystemRequest is guarded by `#if ENABLE(MEDIA_STREAM)`
&gt; not `#if ENABLE(ENCRYPTED_MEDIA)`. And the former isn&apos;t enabled on TV or
&gt; watchOS.

Oh wow, nice catch! 😅</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1725996</commentid>
    <comment_count>18</comment_count>
      <attachid>419384</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2021-02-05 03:12:50 -0800</bug_when>
    <thetext>Created attachment 419384
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1726426</commentid>
    <comment_count>19</comment_count>
      <attachid>419384</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2021-02-06 15:58:30 -0800</bug_when>
    <thetext>Comment on attachment 419384
Patch

r=me, with one comment:

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

&gt; Source/WebCore/Modules/encryptedmedia/MediaKeySystemController.cpp:57
&gt; +    m_client-&gt;pageDestroyed();

Null check?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1726484</commentid>
    <comment_count>20</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-02-07 09:13:13 -0800</bug_when>
    <thetext>&lt;rdar://problem/74073825&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1726550</commentid>
    <comment_count>21</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2021-02-08 00:38:25 -0800</bug_when>
    <thetext>Committed r272480: &lt;https://trac.webkit.org/changeset/272480&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1726706</commentid>
    <comment_count>22</comment_count>
    <who name="Ryan Haddad">ryanhaddad</who>
    <bug_when>2021-02-08 10:59:12 -0800</bug_when>
    <thetext>Follow-up fix for macCatalyst in https://trac.webkit.org/changeset/272500/webkit</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1726709</commentid>
    <comment_count>23</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2021-02-08 11:05:32 -0800</bug_when>
    <thetext>Thanks Ryan, sorry for the trouble.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1726886</commentid>
    <comment_count>24</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2021-02-08 16:37:32 -0800</bug_when>
    <thetext>Re-opened since this is blocked by bug 221586</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1727000</commentid>
    <comment_count>25</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2021-02-09 04:16:30 -0800</bug_when>
    <thetext>Fix:

diff --git a/Source/WebCore/Modules/encryptedmedia/MediaKeySystemRequest.cpp b/Source/WebCore/Modules/encryptedmedia/MediaKeySystemRequest.cpp
index e669715e5de7..2a2fec324b0d 100644
--- a/Source/WebCore/Modules/encryptedmedia/MediaKeySystemRequest.cpp
+++ b/Source/WebCore/Modules/encryptedmedia/MediaKeySystemRequest.cpp
@@ -48,6 +48,7 @@ Ref&lt;MediaKeySystemRequest&gt; MediaKeySystemRequest::create(Document&amp; document, con
 
 MediaKeySystemRequest::MediaKeySystemRequest(Document&amp; document, const String&amp; keySystem, Ref&lt;DeferredPromise&gt;&amp;&amp; promise)
     : ActiveDOMObject(document)
+    , m_identifier(MediaKeySystemRequestIdentifier::generate())
     , m_keySystem(keySystem)
     , m_promise(WTFMove(promise))
 {</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1727003</commentid>
    <comment_count>26</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2021-02-09 04:46:53 -0800</bug_when>
    <thetext>Committed r272573: &lt;https://trac.webkit.org/changeset/272573&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1748807</commentid>
    <comment_count>27</comment_count>
    <who name="Peng Liu">peng.liu6</who>
    <bug_when>2021-04-09 11:41:27 -0700</bug_when>
    <thetext>This patch breaks Netflix playback on macOS Big Sur. See bug 224384.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1748940</commentid>
    <comment_count>28</comment_count>
    <who name="Peng Liu">peng.liu6</who>
    <bug_when>2021-04-09 18:53:57 -0700</bug_when>
    <thetext>(In reply to Peng Liu from comment #27)
&gt; This patch breaks Netflix playback on macOS Big Sur. See bug 224384.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1748981</commentid>
    <comment_count>29</comment_count>
      <attachid>419384</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2021-04-10 01:40:37 -0700</bug_when>
    <thetext>Comment on attachment 419384
Patch

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

&gt; Source/WebKit/UIProcess/API/C/WKPage.cpp:2129
&gt; +            if (!m_client.decidePolicyForMediaKeySystemPermissionRequest) {
&gt; +                completionHandler(false);
&gt; +                return;
&gt; +            }

Can you check if this hit by Safari? I suspect this is the bug, if your APIUIClient doesn´t have a decidePolicyForMediaKeySystemPermissionRequest handler, the permission request is denied.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1749110</commentid>
    <comment_count>30</comment_count>
      <attachid>419384</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2021-04-11 10:49:03 -0700</bug_when>
    <thetext>Comment on attachment 419384
Patch

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

&gt;&gt; Source/WebKit/UIProcess/API/C/WKPage.cpp:2129
&gt;&gt; +            }
&gt; 
&gt; Can you check if this hit by Safari? I suspect this is the bug, if your APIUIClient doesn´t have a decidePolicyForMediaKeySystemPermissionRequest handler, the permission request is denied.

Your initial comment in this bug was &quot;On Apple platforms the permission is granted by default until a decision is made about supporting this in their APIUIClient&quot;. Did this change?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1749111</commentid>
    <comment_count>31</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2021-04-11 11:37:04 -0700</bug_when>
    <thetext>(In reply to Eric Carlson from comment #30)
&gt; Comment on attachment 419384 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=419384&amp;action=review
&gt; 
&gt; &gt;&gt; Source/WebKit/UIProcess/API/C/WKPage.cpp:2129
&gt; &gt;&gt; +            }
&gt; &gt; 
&gt; &gt; Can you check if this hit by Safari? I suspect this is the bug, if your APIUIClient doesn´t have a decidePolicyForMediaKeySystemPermissionRequest handler, the permission request is denied.
&gt; 
&gt; Your initial comment in this bug was &quot;On Apple platforms the permission is
&gt; granted by default until a decision is made about supporting this in their
&gt; APIUIClient&quot;. Did this change?

No. I was just commenting on this specific part of the patch because of a hunch. I don&apos;t have a Netflix account, so can&apos;t reproduce this issue.

Are you sure this is a WebKit issue? Can you provide a reduced test-case?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1749270</commentid>
    <comment_count>32</comment_count>
    <who name="Peng Liu">peng.liu6</who>
    <bug_when>2021-04-12 10:26:35 -0700</bug_when>
    <thetext>(In reply to Philippe Normand from comment #29)
&gt; Comment on attachment 419384 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=419384&amp;action=review
&gt; 
&gt; &gt; Source/WebKit/UIProcess/API/C/WKPage.cpp:2129
&gt; &gt; +            if (!m_client.decidePolicyForMediaKeySystemPermissionRequest) {
&gt; &gt; +                completionHandler(false);
&gt; &gt; +                return;
&gt; &gt; +            }
&gt; 
&gt; Can you check if this hit by Safari? I suspect this is the bug, if your
&gt; APIUIClient doesn´t have a decidePolicyForMediaKeySystemPermissionRequest
&gt; handler, the permission request is denied.

I just tested. When the issue happens, function `WebPageProxy::requestMediaKeySystemPermissionForFrame()` is not called at all. The reason seems to be that the WebContent process is in the background and the IPC message is not delivered to the UI process.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1749293</commentid>
    <comment_count>33</comment_count>
      <attachid>419384</attachid>
    <who name="Peng Liu">peng.liu6</who>
    <bug_when>2021-04-12 11:21:13 -0700</bug_when>
    <thetext>Comment on attachment 419384
Patch

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

&gt; Source/WebKit/WebProcess/EncryptedMedia/MediaKeySystemPermissionRequestManager.cpp:61
&gt; +        sendMediaKeySystemRequest(request);

A bug here. When we open a tab in the background, the request won&apos;t be sent, and we won&apos;t retry when the tab goes to foreground.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1749303</commentid>
    <comment_count>34</comment_count>
      <attachid>419384</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2021-04-12 11:45:47 -0700</bug_when>
    <thetext>Comment on attachment 419384
Patch

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

&gt;&gt; Source/WebKit/WebProcess/EncryptedMedia/MediaKeySystemPermissionRequestManager.cpp:61
&gt;&gt; +        sendMediaKeySystemRequest(request);
&gt; 
&gt; A bug here. When we open a tab in the background, the request won&apos;t be sent, and we won&apos;t retry when the tab goes to foreground.

Ah! Would the MediaCanStartListener be triggered in such case?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1749307</commentid>
    <comment_count>35</comment_count>
      <attachid>419384</attachid>
    <who name="Peng Liu">peng.liu6</who>
    <bug_when>2021-04-12 11:49:29 -0700</bug_when>
    <thetext>Comment on attachment 419384
Patch

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

&gt;&gt;&gt; Source/WebKit/WebProcess/EncryptedMedia/MediaKeySystemPermissionRequestManager.cpp:61
&gt;&gt;&gt; +        sendMediaKeySystemRequest(request);
&gt;&gt; 
&gt;&gt; A bug here. When we open a tab in the background, the request won&apos;t be sent, and we won&apos;t retry when the tab goes to foreground.
&gt; 
&gt; Ah! Would the MediaCanStartListener be triggered in such case?

Yes. Just had a discussion with Eric and Jer. Will upload a patch for review after test. :-)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1749308</commentid>
    <comment_count>36</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2021-04-12 11:50:59 -0700</bug_when>
    <thetext>Thanks Peng!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1749415</commentid>
    <comment_count>37</comment_count>
    <who name="Peng Liu">peng.liu6</who>
    <bug_when>2021-04-12 15:37:56 -0700</bug_when>
    <thetext>(In reply to Philippe Normand from comment #36)
&gt; Thanks Peng!

My pleasure. :-)

Let&apos;s close this bug. The issue we discussed will be fixed in bug 224384.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>418826</attachid>
            <date>2021-01-31 09:30:05 -0800</date>
            <delta_ts>2021-02-01 04:03:11 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-221187-20210131093003.patch</filename>
            <type>text/plain</type>
            <size>142105</size>
            <attacher name="Philippe Normand">pnormand</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcyMTIzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjFhOTc5ZjllYmVmODRm
NTZjYTZlMTJiYzdiNWQzZGNlYmFiZTczOC4uNmJjYTg4OTE1MDRiZDAxYjQ4ZGYzYjYzN2JhZTk0
YWNiMTY4MDRmMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ4IEBACisyMDIxLTAxLTMxICBQaGls
aXBwZSBOb3JtYW5kICA8cG5vcm1hbmRAaWdhbGlhLmNvbT4KKworICAgICAgICBQZXJtaXNzaW9u
IHJlcXVlc3QgQVBJIGZvciBNZWRpYUtleVN5c3RlbSBhY2Nlc3Mgc3VwcG9ydAorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjIxMTg3CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgU3VwcG9ydCBmb3IgdXNlciBw
ZXJtaXNzaW9uIHJlcXVlc3Rpbmcgd2hlbiBhY2Nlc3MgdG8gYW4gRU1FIE1lZGlhS2V5U3lzdGVt
IGlzIGJlaW5nCisgICAgICAgIHJlcXVlc3RlZCBieSB0aGUgcGFnZS4gVGhpcyBpcyBzaW1pbGFy
IHRvIHRoZSBtZWRpYURldmljZXMgYWNjZXNzIGd1YXJkcy4KKworICAgICAgICBFeGlzdGluZyB0
ZXN0IG1lZGlhL2VuY3J5cHRlZC1tZWRpYS9tb2NrLU1lZGlhS2V5U3lzdGVtQWNjZXNzLmh0bWwg
d2FzIHVwZGF0ZWQgdG8gY292ZXIgdGhpcworICAgICAgICBuZXcgY29kZSBwYXRoIGFuZCBXUEUv
R1RLIEFQSSB0ZXN0cyBhcyB3ZWxsLgorCisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6CisgICAg
ICAgICogSGVhZGVycy5jbWFrZToKKyAgICAgICAgKiBNb2R1bGVzL2VuY3J5cHRlZG1lZGlhL01l
ZGlhS2V5U3lzdGVtQ2xpZW50Lmg6IEFkZGVkLgorICAgICAgICAqIE1vZHVsZXMvZW5jcnlwdGVk
bWVkaWEvTWVkaWFLZXlTeXN0ZW1Db250cm9sbGVyLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJD
b3JlOjpNZWRpYUtleVN5c3RlbUNvbnRyb2xsZXI6OnN1cHBsZW1lbnROYW1lKToKKyAgICAgICAg
KFdlYkNvcmU6Ok1lZGlhS2V5U3lzdGVtQ29udHJvbGxlcjo6TWVkaWFLZXlTeXN0ZW1Db250cm9s
bGVyKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhS2V5U3lzdGVtQ29udHJvbGxlcjo6fk1lZGlh
S2V5U3lzdGVtQ29udHJvbGxlcik6CisgICAgICAgIChXZWJDb3JlOjpwcm92aWRlTWVkaWFLZXlT
eXN0ZW1Ubyk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYUtleVN5c3RlbUNvbnRyb2xsZXI6Omxv
Z1JlcXVlc3RNZWRpYUtleVN5c3RlbURlbmlhbCk6CisgICAgICAgICogTW9kdWxlcy9lbmNyeXB0
ZWRtZWRpYS9NZWRpYUtleVN5c3RlbUNvbnRyb2xsZXIuaDogQWRkZWQuCisgICAgICAgIChXZWJD
b3JlOjpNZWRpYUtleVN5c3RlbUNvbnRyb2xsZXI6OmNsaWVudCBjb25zdCk6CisgICAgICAgIChX
ZWJDb3JlOjpNZWRpYUtleVN5c3RlbUNvbnRyb2xsZXI6OmZyb20pOgorICAgICAgICAoV2ViQ29y
ZTo6TWVkaWFLZXlTeXN0ZW1Db250cm9sbGVyOjpyZXF1ZXN0TWVkaWFLZXlTeXN0ZW0pOgorICAg
ICAgICAoV2ViQ29yZTo6TWVkaWFLZXlTeXN0ZW1Db250cm9sbGVyOjpjYW5jZWxNZWRpYUtleVN5
c3RlbVJlcXVlc3QpOgorICAgICAgICAqIE1vZHVsZXMvZW5jcnlwdGVkbWVkaWEvTWVkaWFLZXlT
eXN0ZW1SZXF1ZXN0LmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpNZWRpYUtleVN5c3Rl
bVJlcXVlc3Q6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYUtleVN5c3RlbVJlcXVl
c3Q6Ok1lZGlhS2V5U3lzdGVtUmVxdWVzdCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYUtleVN5
c3RlbVJlcXVlc3Q6On5NZWRpYUtleVN5c3RlbVJlcXVlc3QpOgorICAgICAgICAoV2ViQ29yZTo6
TWVkaWFLZXlTeXN0ZW1SZXF1ZXN0Ojp0b3BMZXZlbERvY3VtZW50T3JpZ2luIGNvbnN0KToKKyAg
ICAgICAgKFdlYkNvcmU6Ok1lZGlhS2V5U3lzdGVtUmVxdWVzdDo6c3RhcnQpOgorICAgICAgICAo
V2ViQ29yZTo6TWVkaWFLZXlTeXN0ZW1SZXF1ZXN0OjphbGxvdyk6CisgICAgICAgIChXZWJDb3Jl
OjpNZWRpYUtleVN5c3RlbVJlcXVlc3Q6OmRlbnkpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFL
ZXlTeXN0ZW1SZXF1ZXN0OjpzdG9wKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhS2V5U3lzdGVt
UmVxdWVzdDo6YWN0aXZlRE9NT2JqZWN0TmFtZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpN
ZWRpYUtleVN5c3RlbVJlcXVlc3Q6OmRvY3VtZW50IGNvbnN0KToKKyAgICAgICAgKiBNb2R1bGVz
L2VuY3J5cHRlZG1lZGlhL01lZGlhS2V5U3lzdGVtUmVxdWVzdC5oOiBBZGRlZC4KKyAgICAgICAg
KFdlYkNvcmU6Ok1lZGlhS2V5U3lzdGVtUmVxdWVzdDo6c2V0QWxsb3dDYWxsYmFjayk6CisgICAg
ICAgIChXZWJDb3JlOjpNZWRpYUtleVN5c3RlbVJlcXVlc3Q6OmlkZW50aWZpZXIgY29uc3QpOgor
ICAgICAgICAoV2ViQ29yZTo6TWVkaWFLZXlTeXN0ZW1SZXF1ZXN0OjprZXlTeXN0ZW0gY29uc3Qp
OgorICAgICAgICAqIE1vZHVsZXMvZW5jcnlwdGVkbWVkaWEvTmF2aWdhdG9yRU1FLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6Ok5hdmlnYXRvckVNRTo6cmVxdWVzdE1lZGlhS2V5U3lzdGVtQWNjZXNz
KToKKwogMjAyMS0wMS0zMCAgU2FtIFdlaW5pZyAgPHdlaW5pZ0BhcHBsZS5jb20+CiAKICAgICAg
ICAgQWRkIHN1cHBvcnQgZm9yIGNvbG9yKHJlYzIwMjAgLi4uKSBhcyBwYXJ0IG9mIENTUyBDb2xv
ciA0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQv
Q2hhbmdlTG9nCmluZGV4IGY4ZjQ1YTNkYWZlNWJhMGQxZjQ4ZDlkNmY2OWQ5NWRlZTFiOTQwYzYu
Ljc3YWM2MzQ4ZTkyNTU5YTg4ZWY3MDZhM2I1ZTYxNzYxZTgyNjZiMjUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMTE4IEBACisyMDIxLTAxLTMxICBQaGlsaXBwZSBOb3JtYW5kICA8cG5vcm1hbmRAaWdh
bGlhLmNvbT4KKworICAgICAgICBQZXJtaXNzaW9uIHJlcXVlc3QgQVBJIGZvciBNZWRpYUtleVN5
c3RlbSBhY2Nlc3Mgc3VwcG9ydAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MjIxMTg3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgQWRkIG5ldyBJUEMgYW5kIEFQSSBleHBvc2luZyBNZWRpYUtleVN5c3RlbSBh
Y2Nlc3MgcGVybWlzc2lvbnMgdG8gdGhlIFVJUHJvY2Vzcy4gQXQgbGVhc3QKKyAgICAgICAgR1RL
L1dQRSB3b3VsZCBsaWtlIHRvIGhhdmUgQVBJIGZvciBhc2tpbmcgcGVybWlzc2lvbiB0byB0aGUg
dXNlciB3aGVuIEVNRSdzIE1lZGlhS2V5QWNjZXNzCisgICAgICAgIGlzIGJlaW5nIHJlcXVlc3Rl
ZCBieSBhIHBhZ2UuIE9uIEFwcGxlIHBsYXRmb3JtcyB0aGUgcGVybWlzc2lvbiBpcyBncmFudGVk
IGJ5IGRlZmF1bHQgdW50aWwKKyAgICAgICAgYSBkZWNpc2lvbiBpcyBtYWRlIGFib3V0IHN1cHBv
cnRpbmcgdGhpcyBpbiB0aGVpciBBUElVSUNsaWVudC4KKworICAgICAgICAqIENNYWtlTGlzdHMu
dHh0OgorICAgICAgICAqIEhlYWRlcnMuY21ha2U6CisgICAgICAgICogUGxhdGZvcm0vTG9nZ2lu
Zy5oOgorICAgICAgICAqIFBsYXRmb3JtR1RLLmNtYWtlOgorICAgICAgICAqIFBsYXRmb3JtV1BF
LmNtYWtlOgorICAgICAgICAqIFNoYXJlZC9BUEkvQVBJT2JqZWN0Lmg6CisgICAgICAgICogU2hh
cmVkL0FQSS9jL1dLQmFzZS5oOgorICAgICAgICAqIFNvdXJjZXMudHh0OgorICAgICAgICAqIFNv
dXJjZXNHVEsudHh0OgorICAgICAgICAqIFNvdXJjZXNXUEUudHh0OgorICAgICAgICAqIFVJUHJv
Y2Vzcy9BUEkvQVBJVUlDbGllbnQuaDoKKyAgICAgICAgKEFQSTo6VUlDbGllbnQ6OmRlY2lkZVBv
bGljeUZvck1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3QpOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9BUEkvQy9XS0FQSUNhc3QuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tNZWRp
YUtleVN5c3RlbVBlcm1pc3Npb25DYWxsYmFjay5jcHA6IEFkZGVkLgorICAgICAgICAoV0tNZWRp
YUtleVN5c3RlbVBlcm1pc3Npb25DYWxsYmFja0dldFR5cGVJRCk6CisgICAgICAgIChXS01lZGlh
S2V5U3lzdGVtUGVybWlzc2lvbkNhbGxiYWNrQ29tcGxldGUpOgorICAgICAgICAqIFVJUHJvY2Vz
cy9BUEkvQy9XS01lZGlhS2V5U3lzdGVtUGVybWlzc2lvbkNhbGxiYWNrLmg6IEFkZGVkLgorICAg
ICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuY3BwOgorICAgICAgICAoV0tQYWdlU2V0UGFn
ZVVJQ2xpZW50KToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tQYWdlVUlDbGllbnQuaDoK
KyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0TWVkaWFLZXlTeXN0ZW1QZXJtaXNz
aW9uUmVxdWVzdC5jcHA6IEFkZGVkLgorICAgICAgICAod2Via2l0TWVkaWFLZXlTeXN0ZW1QZXJt
aXNzaW9uUmVxdWVzdEFsbG93KToKKyAgICAgICAgKHdlYmtpdE1lZGlhS2V5U3lzdGVtUGVybWlz
c2lvblJlcXVlc3REZW55KToKKyAgICAgICAgKHdlYmtpdF9wZXJtaXNzaW9uX3JlcXVlc3RfaW50
ZXJmYWNlX2luaXQpOgorICAgICAgICAod2Via2l0TWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVx
dWVzdERpc3Bvc2UpOgorICAgICAgICAod2Via2l0X21lZGlhX2tleV9zeXN0ZW1fcGVybWlzc2lv
bl9yZXF1ZXN0X2NsYXNzX2luaXQpOgorICAgICAgICAod2Via2l0TWVkaWFLZXlTeXN0ZW1QZXJt
aXNzaW9uUmVxdWVzdENyZWF0ZSk6CisgICAgICAgICh3ZWJraXRfbWVkaWFfa2V5X3N5c3RlbV9w
ZXJtaXNzaW9uX2dldF9uYW1lKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0
TWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdFByaXZhdGUuaDogQWRkZWQuCisgICAgICAg
ICogVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdFVJQ2xpZW50LmNwcDoKKyAgICAgICAgKiBVSVBy
b2Nlc3MvQVBJL2d0ay9XZWJLaXRBdXRvY2xlYW51cHMuaDoKKyAgICAgICAgKiBVSVByb2Nlc3Mv
QVBJL2d0ay9XZWJLaXRNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0Lmg6IEFkZGVkLgor
ICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ3RrL2RvY3Mvd2Via2l0Mmd0ay00LjAtc2VjdGlvbnMu
dHh0OgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ3RrL2RvY3Mvd2Via2l0Mmd0ay1kb2NzLnNn
bWw6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9ndGsvd2Via2l0Mi5oOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9BUEkvd3BlL1dlYktpdE1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3QuaDog
QWRkZWQuCisgICAgICAgICogVUlQcm9jZXNzL0FQSS93cGUvZG9jcy93cGUtMS4wLXNlY3Rpb25z
LnR4dDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL3dwZS9kb2NzL3dwZS1kb2NzLnNnbWw6Cisg
ICAgICAgICogVUlQcm9jZXNzL01lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3QuaDogQWRk
ZWQuCisgICAgICAgIChXZWJLaXQ6Ok1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3Q6OmNy
ZWF0ZSk6CisgICAgICAgIChXZWJLaXQ6Ok1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3Q6
OmNvbXBsZXRlKToKKyAgICAgICAgKFdlYktpdDo6TWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVx
dWVzdDo6a2V5U3lzdGVtIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6TWVkaWFLZXlTeXN0ZW1Q
ZXJtaXNzaW9uUmVxdWVzdDo6TWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdCk6CisgICAg
ICAgIChXZWJLaXQ6Ok1lZGlhS2V5U3lzdGVtUGVybWlzc2lvbkNhbGxiYWNrOjpjcmVhdGUpOgor
ICAgICAgICAoV2ViS2l0OjpNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25DYWxsYmFjazo6Y29tcGxl
dGUpOgorICAgICAgICAoV2ViS2l0OjpNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25DYWxsYmFjazo6
TWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uQ2FsbGJhY2spOgorICAgICAgICAqIFVJUHJvY2Vzcy9N
ZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmNwcDogQWRkZWQuCisg
ICAgICAgIChXZWJLaXQ6Ok1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJv
eHk6Ok1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkpOgorICAgICAg
ICAoV2ViS2l0OjpNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5Ojp+
TWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eSk6CisgICAgICAgIChX
ZWJLaXQ6Ok1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6OmludmFs
aWRhdGVQZW5kaW5nUmVxdWVzdHMpOgorICAgICAgICAoV2ViS2l0OjpNZWRpYUtleVN5c3RlbVBl
cm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5OjpkZW55UmVxdWVzdCk6CisgICAgICAgIChXZWJL
aXQ6Ok1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6OmdyYW50UmVx
dWVzdCk6CisgICAgICAgIChXZWJLaXQ6Ok1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RN
YW5hZ2VyUHJveHk6OmNyZWF0ZVJlcXVlc3RGb3JGcmFtZSk6CisgICAgICAgIChXZWJLaXQ6Ok1l
ZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6OmxvZ0NoYW5uZWwgY29u
c3QpOgorICAgICAgICAoV2ViS2l0OjpNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0TWFu
YWdlclByb3h5Ojpsb2dnZXIgY29uc3QpOgorICAgICAgICAqIFVJUHJvY2Vzcy9NZWRpYUtleVN5
c3RlbVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5Lmg6IEFkZGVkLgorICAgICAgICAoV2Vi
S2l0OjpNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5OjpwYWdlIGNv
bnN0KToKKyAgICAgICAgKFdlYktpdDo6TWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdE1h
bmFnZXJQcm94eTo6ZGVueVJlcXVlc3QpOgorICAgICAgICAqIFVJUHJvY2Vzcy9NZWRpYUtleVN5
c3RlbVBlcm1pc3Npb25SZXF1ZXN0UHJveHkuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6
TWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdFByb3h5OjpNZWRpYUtleVN5c3RlbVBlcm1p
c3Npb25SZXF1ZXN0UHJveHkpOgorICAgICAgICAoV2ViS2l0OjpNZWRpYUtleVN5c3RlbVBlcm1p
c3Npb25SZXF1ZXN0UHJveHk6OmFsbG93KToKKyAgICAgICAgKFdlYktpdDo6TWVkaWFLZXlTeXN0
ZW1QZXJtaXNzaW9uUmVxdWVzdFByb3h5OjpkZW55KToKKyAgICAgICAgKFdlYktpdDo6TWVkaWFL
ZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdFByb3h5OjppbnZhbGlkYXRlKToKKyAgICAgICAgKFdl
YktpdDo6TWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdFByb3h5Ojpkb0RlZmF1bHRBY3Rp
b24pOgorICAgICAgICAqIFVJUHJvY2Vzcy9NZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0
UHJveHkuaDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6Ok1lZGlhS2V5U3lzdGVtUGVybWlzc2lv
blJlcXVlc3RQcm94eTo6Y3JlYXRlKToKKyAgICAgICAgKFdlYktpdDo6TWVkaWFLZXlTeXN0ZW1Q
ZXJtaXNzaW9uUmVxdWVzdFByb3h5Ojppc1BlbmRpbmcgY29uc3QpOgorICAgICAgICAoV2ViS2l0
OjpNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0UHJveHk6Om1lZGlhS2V5U3lzdGVtSUQg
Y29uc3QpOgorICAgICAgICAoV2ViS2l0OjpNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0
UHJveHk6Om1haW5GcmFtZUlEIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6TWVkaWFLZXlTeXN0
ZW1QZXJtaXNzaW9uUmVxdWVzdFByb3h5OjpmcmFtZUlEIGNvbnN0KToKKyAgICAgICAgKFdlYktp
dDo6TWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdFByb3h5Ojp0b3BMZXZlbERvY3VtZW50
U2VjdXJpdHlPcmlnaW4pOgorICAgICAgICAoV2ViS2l0OjpNZWRpYUtleVN5c3RlbVBlcm1pc3Np
b25SZXF1ZXN0UHJveHk6OnRvcExldmVsRG9jdW1lbnRTZWN1cml0eU9yaWdpbiBjb25zdCk6Cisg
ICAgICAgIChXZWJLaXQ6Ok1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RQcm94eTo6a2V5
U3lzdGVtIGNvbnN0KToKKyAgICAgICAgKiBVSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25SZW1v
dGVSZWFsdGltZU1lZGlhU291cmNlLmg6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94
eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6cmVxdWVzdE1lZGlhS2V5U3lz
dGVtUGVybWlzc2lvbkZvckZyYW1lKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5Ojpt
ZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcik6CisgICAgICAgIChXZWJLaXQ6
OldlYlBhZ2VQcm94eTo6cmVxdWVzdE1lZGlhS2V5U3lzdGVtUGVybWlzc2lvbkJ5RGVmYXVsdEFj
dGlvbik6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW46CisgICAgICAgICogV2ViUHJvY2Vzcy9F
bmNyeXB0ZWRNZWRpYS9NZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlci5jcHA6
IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0
TWFuYWdlcjo6TWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIpOgorICAgICAg
ICAoV2ViS2l0OjpNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcjo6c3RhcnRN
ZWRpYUtleVN5c3RlbVJlcXVlc3QpOgorICAgICAgICAoV2ViS2l0OjpNZWRpYUtleVN5c3RlbVBl
cm1pc3Npb25SZXF1ZXN0TWFuYWdlcjo6c2VuZE1lZGlhS2V5U3lzdGVtUmVxdWVzdCk6CisgICAg
ICAgIChXZWJLaXQ6Ok1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyOjpjYW5j
ZWxNZWRpYUtleVN5c3RlbVJlcXVlc3QpOgorICAgICAgICAoV2ViS2l0OjpNZWRpYUtleVN5c3Rl
bVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcjo6bWVkaWFLZXlTeXN0ZW1XYXNHcmFudGVkKToKKyAg
ICAgICAgKFdlYktpdDo6TWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXI6Om1l
ZGlhS2V5U3lzdGVtV2FzRGVuaWVkKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0VuY3J5cHRlZE1l
ZGlhL01lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyLmg6IEFkZGVkLgorICAg
ICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViTWVkaWFLZXlTeXN0ZW1DbGllbnQu
Y3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViTWVkaWFLZXlTeXN0ZW1DbGllbnQ6Oldl
Yk1lZGlhS2V5U3lzdGVtQ2xpZW50KToKKyAgICAgICAgKFdlYktpdDo6V2ViTWVkaWFLZXlTeXN0
ZW1DbGllbnQ6OnBhZ2VEZXN0cm95ZWQpOgorICAgICAgICAoV2ViS2l0OjpXZWJNZWRpYUtleVN5
c3RlbUNsaWVudDo6cmVxdWVzdE1lZGlhS2V5U3lzdGVtKToKKyAgICAgICAgKFdlYktpdDo6V2Vi
TWVkaWFLZXlTeXN0ZW1DbGllbnQ6OmNhbmNlbE1lZGlhS2V5U3lzdGVtUmVxdWVzdCk6CisgICAg
ICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJNZWRpYUtleVN5c3RlbUNsaWVudC5o
OiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViTWVkaWFLZXlTeXN0ZW1DbGllbnQ6On5XZWJN
ZWRpYUtleVN5c3RlbUNsaWVudCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBh
Z2UuY3BwOgorICAgICAgICAoV2ViS2l0OjptX2xpbWl0c05hdmlnYXRpb25zVG9BcHBCb3VuZERv
bWFpbnMpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjptZWRpYUtleVN5c3RlbVdhc0dyYW50
ZWQpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjptZWRpYUtleVN5c3RlbVdhc0RlbmllZCk6
CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaDoKKyAgICAgICAgKFdlYktp
dDo6V2ViUGFnZTo6bWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIpOgorICAg
ICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluOgorCiAyMDIxLTAx
LTI5ICBEYXJpbiBBZGxlciAgPGRhcmluQGFwcGxlLmNvbT4KIAogICAgICAgICBDaGVjayBhY3Rp
dmVEb2N1bWVudExvYWRlcigpIGZvciBudWxsIGNvbnNpc3RlbnRseSBldmVyeXdoZXJlCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL0NN
YWtlTGlzdHMudHh0CmluZGV4IGJhYTQ1M2Q2Y2YxYzIyZTY1OTMxMTU0NGIwMjZiNzhhZDRiNThk
NjQuLmIyZjE2NzkwMTJjMDNiODBkZmM1NGQyNDc4ZmYwYmUyZTgyNGUwYjkgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL0NNYWtl
TGlzdHMudHh0CkBAIC0xNDk3LDYgKzE0OTcsOCBAQCBpZiAoRU5BQkxFX0VOQ1JZUFRFRF9NRURJ
QSkKICAgICAgICAgTW9kdWxlcy9lbmNyeXB0ZWRtZWRpYS9NZWRpYUtleVNlc3Npb24uY3BwCiAg
ICAgICAgIE1vZHVsZXMvZW5jcnlwdGVkbWVkaWEvTWVkaWFLZXlTdGF0dXNNYXAuY3BwCiAgICAg
ICAgIE1vZHVsZXMvZW5jcnlwdGVkbWVkaWEvTWVkaWFLZXlTeXN0ZW1BY2Nlc3MuY3BwCisgICAg
ICAgIE1vZHVsZXMvZW5jcnlwdGVkbWVkaWEvTWVkaWFLZXlTeXN0ZW1Db250cm9sbGVyLmNwcAor
ICAgICAgICBNb2R1bGVzL2VuY3J5cHRlZG1lZGlhL01lZGlhS2V5U3lzdGVtUmVxdWVzdC5jcHAK
ICAgICAgICAgTW9kdWxlcy9lbmNyeXB0ZWRtZWRpYS9NZWRpYUtleXMuY3BwCiAgICAgICAgIE1v
ZHVsZXMvZW5jcnlwdGVkbWVkaWEvTmF2aWdhdG9yRU1FLmNwcAogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlIGIvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQpp
bmRleCBhYmExNWUwZWQ3YTAxNDY0NTgyZjNmOTI4MGU2NzhiM2RiMjhmNjMyLi44YzFiNmMzMjc4
MmE5MWQ5YzQxNGM2MTBiNDllNjc5ZWViNjBiYjY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9IZWFkZXJzLmNtYWtlCisrKyBiL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKQEAgLTI0
LDYgKzI0LDkgQEAgc2V0KFdlYkNvcmVfUFJJVkFURV9GUkFNRVdPUktfSEVBREVSUwogICAgIE1v
ZHVsZXMvY29udGFjdC1waWNrZXIvQ29udGFjdHNSZXF1ZXN0RGF0YS5oCiAKICAgICBNb2R1bGVz
L2VuY3J5cHRlZG1lZGlhL0NETUNsaWVudC5oCisgICAgTW9kdWxlcy9lbmNyeXB0ZWRtZWRpYS9N
ZWRpYUtleVN5c3RlbUNsaWVudC5oCisgICAgTW9kdWxlcy9lbmNyeXB0ZWRtZWRpYS9NZWRpYUtl
eVN5c3RlbUNvbnRyb2xsZXIuaAorICAgIE1vZHVsZXMvZW5jcnlwdGVkbWVkaWEvTWVkaWFLZXlT
eXN0ZW1SZXF1ZXN0LmgKIAogICAgIE1vZHVsZXMvZmV0Y2gvRmV0Y2hCb2R5Q29uc3VtZXIuaAog
ICAgIE1vZHVsZXMvZmV0Y2gvRmV0Y2hCb2R5U291cmNlLmgKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvZW5jcnlwdGVkbWVkaWEvTWVkaWFLZXlTeXN0ZW1DbGllbnQuaCBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvZW5jcnlwdGVkbWVkaWEvTWVkaWFLZXlTeXN0ZW1DbGllbnQu
aApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi41M2QzMGIxZDBmODllMDA1MGFhZDA0MjI3YTEwZTg0NDAyOTgyOTdiCi0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9lbmNyeXB0ZWRtZWRpYS9N
ZWRpYUtleVN5c3RlbUNsaWVudC5oCkBAIC0wLDAgKzEsNTIgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMjEgSWdhbGlhIFMuTC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycg
QU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTIEJF
IExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICogKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OCisgKiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFIE9GIFRISVMKKyAqIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5B
QkxFKEVOQ1JZUFRFRF9NRURJQSkKKworI2luY2x1ZGUgPHd0Zi9Db21wbGV0aW9uSGFuZGxlci5o
PgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIERvY3VtZW50OworY2xhc3MgUGFnZTsK
K2NsYXNzIE1lZGlhS2V5U3lzdGVtUmVxdWVzdDsKKworY2xhc3MgTWVkaWFLZXlTeXN0ZW1DbGll
bnQgeworcHVibGljOgorICAgIHZpcnR1YWwgdm9pZCBwYWdlRGVzdHJveWVkKCkgPSAwOworCisg
ICAgdmlydHVhbCB2b2lkIHJlcXVlc3RNZWRpYUtleVN5c3RlbShNZWRpYUtleVN5c3RlbVJlcXVl
c3QmKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGNhbmNlbE1lZGlhS2V5U3lzdGVtUmVxdWVzdChN
ZWRpYUtleVN5c3RlbVJlcXVlc3QmKSA9IDA7CisKK3Byb3RlY3RlZDoKKyAgICB2aXJ0dWFsIH5N
ZWRpYUtleVN5c3RlbUNsaWVudCgpID0gZGVmYXVsdDsKK307CisKK1dFQkNPUkVfRVhQT1JUIHZv
aWQgcHJvdmlkZU1lZGlhS2V5U3lzdGVtVG8oUGFnZSosIE1lZGlhS2V5U3lzdGVtQ2xpZW50Kik7
CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShFTkNSWVBURURf
TUVESUEpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2VuY3J5cHRlZG1lZGlh
L01lZGlhS2V5U3lzdGVtQ29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2Vu
Y3J5cHRlZG1lZGlhL01lZGlhS2V5U3lzdGVtQ29udHJvbGxlci5jcHAKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTIy
YmE4MjVjMmM3Mzc2MGM5YWQ4M2IwMjNkZmYwZmEwMjdkNGU0OQotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZW5jcnlwdGVkbWVkaWEvTWVkaWFLZXlTeXN0ZW1Db250
cm9sbGVyLmNwcApAQCAtMCwwICsxLDY2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEln
YWxpYSBTLkwuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFORCBBTlkKKyAq
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9S
IEFOWQorICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExP
U1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTgorICogQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RiBUSElTCisgKiBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiTWVk
aWFLZXlTeXN0ZW1Db250cm9sbGVyLmgiCisKKyNpZiBFTkFCTEUoRU5DUllQVEVEX01FRElBKQor
CisjaW5jbHVkZSAiRE9NV2luZG93LmgiCisjaW5jbHVkZSAiRG9jdW1lbnQuaCIKKyNpbmNsdWRl
ICJGcmFtZS5oIgorI2luY2x1ZGUgIkhUTUxJRnJhbWVFbGVtZW50LmgiCisjaW5jbHVkZSAiTWVk
aWFLZXlTeXN0ZW1SZXF1ZXN0LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY29uc3QgY2hh
ciogTWVkaWFLZXlTeXN0ZW1Db250cm9sbGVyOjpzdXBwbGVtZW50TmFtZSgpCit7CisgICAgcmV0
dXJuICJNZWRpYUtleVN5c3RlbUNvbnRyb2xsZXIiOworfQorCitNZWRpYUtleVN5c3RlbUNvbnRy
b2xsZXI6Ok1lZGlhS2V5U3lzdGVtQ29udHJvbGxlcihNZWRpYUtleVN5c3RlbUNsaWVudCogY2xp
ZW50KQorICAgIDogbV9jbGllbnQoY2xpZW50KQoreworfQorCitNZWRpYUtleVN5c3RlbUNvbnRy
b2xsZXI6On5NZWRpYUtleVN5c3RlbUNvbnRyb2xsZXIoKQoreworICAgIG1fY2xpZW50LT5wYWdl
RGVzdHJveWVkKCk7Cit9CisKK3ZvaWQgcHJvdmlkZU1lZGlhS2V5U3lzdGVtVG8oUGFnZSogcGFn
ZSwgTWVkaWFLZXlTeXN0ZW1DbGllbnQqIGNsaWVudCkKK3sKKyAgICBNZWRpYUtleVN5c3RlbUNv
bnRyb2xsZXI6OnByb3ZpZGVUbyhwYWdlLCBNZWRpYUtleVN5c3RlbUNvbnRyb2xsZXI6OnN1cHBs
ZW1lbnROYW1lKCksIG1ha2VVbmlxdWU8TWVkaWFLZXlTeXN0ZW1Db250cm9sbGVyPihjbGllbnQp
KTsKK30KKwordm9pZCBNZWRpYUtleVN5c3RlbUNvbnRyb2xsZXI6OmxvZ1JlcXVlc3RNZWRpYUtl
eVN5c3RlbURlbmlhbChEb2N1bWVudCYgZG9jdW1lbnQpCit7CisgICAgaWYgKGF1dG8qIHdpbmRv
dyA9IGRvY3VtZW50LmRvbVdpbmRvdygpKQorICAgICAgICB3aW5kb3ctPnByaW50RXJyb3JNZXNz
YWdlKG1ha2VTdHJpbmcoIk5vdCBhbGxvd2VkIHRvIGFjY2VzcyBNZWRpYUtleVN5c3RlbS4iKSk7
Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShNRURJQV9T
VFJFQU0pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2VuY3J5cHRlZG1lZGlh
L01lZGlhS2V5U3lzdGVtQ29udHJvbGxlci5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9lbmNy
eXB0ZWRtZWRpYS9NZWRpYUtleVN5c3RlbUNvbnRyb2xsZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xOWEyOGEy
YmI5MGViNDQwYzY3NzgwMWVmNzlhY2Q4ZmZiMWFhODAzCi0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9lbmNyeXB0ZWRtZWRpYS9NZWRpYUtleVN5c3RlbUNvbnRyb2xs
ZXIuaApAQCAtMCwwICsxLDcwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIElnYWxpYSBT
LkwuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiAg
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
VEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQor
ICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBD
T05TRVFVRU5USUFMIERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTgorICogQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElT
CisgKiBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShFTkNSWVBURURfTUVE
SUEpCisKKyNpbmNsdWRlICJGZWF0dXJlUG9saWN5LmgiCisjaW5jbHVkZSAiTWVkaWFLZXlTeXN0
ZW1DbGllbnQuaCIKKyNpbmNsdWRlICJQYWdlLmgiCisjaW5jbHVkZSA8d3RmL0NvbXBsZXRpb25I
YW5kbGVyLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgTWVkaWFLZXlTeXN0ZW1S
ZXF1ZXN0OworCitjbGFzcyBNZWRpYUtleVN5c3RlbUNvbnRyb2xsZXIgOiBwdWJsaWMgU3VwcGxl
bWVudDxQYWdlPiB7CisgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CitwdWJsaWM6CisgICAg
ZXhwbGljaXQgTWVkaWFLZXlTeXN0ZW1Db250cm9sbGVyKE1lZGlhS2V5U3lzdGVtQ2xpZW50Kik7
CisgICAgfk1lZGlhS2V5U3lzdGVtQ29udHJvbGxlcigpOworCisgICAgTWVkaWFLZXlTeXN0ZW1D
bGllbnQqIGNsaWVudCgpIGNvbnN0IHsgcmV0dXJuIG1fY2xpZW50OyB9CisKKyAgICB2b2lkIHJl
cXVlc3RNZWRpYUtleVN5c3RlbShNZWRpYUtleVN5c3RlbVJlcXVlc3QmKTsKKyAgICB2b2lkIGNh
bmNlbE1lZGlhS2V5U3lzdGVtUmVxdWVzdChNZWRpYUtleVN5c3RlbVJlcXVlc3QmKTsKKworICAg
IHZvaWQgbG9nUmVxdWVzdE1lZGlhS2V5U3lzdGVtRGVuaWFsKERvY3VtZW50Jik7CisKKyAgICBX
RUJDT1JFX0VYUE9SVCBzdGF0aWMgY29uc3QgY2hhciogc3VwcGxlbWVudE5hbWUoKTsKKyAgICBz
dGF0aWMgTWVkaWFLZXlTeXN0ZW1Db250cm9sbGVyKiBmcm9tKFBhZ2UqIHBhZ2UpIHsgcmV0dXJu
IHN0YXRpY19jYXN0PE1lZGlhS2V5U3lzdGVtQ29udHJvbGxlcio+KFN1cHBsZW1lbnQ8UGFnZT46
OmZyb20ocGFnZSwgc3VwcGxlbWVudE5hbWUoKSkpOyB9CisKK3ByaXZhdGU6CisgICAgTWVkaWFL
ZXlTeXN0ZW1DbGllbnQqIG1fY2xpZW50OworfTsKKworaW5saW5lIHZvaWQgTWVkaWFLZXlTeXN0
ZW1Db250cm9sbGVyOjpyZXF1ZXN0TWVkaWFLZXlTeXN0ZW0oTWVkaWFLZXlTeXN0ZW1SZXF1ZXN0
JiByZXF1ZXN0KQoreworICAgIG1fY2xpZW50LT5yZXF1ZXN0TWVkaWFLZXlTeXN0ZW0ocmVxdWVz
dCk7Cit9CisKK2lubGluZSB2b2lkIE1lZGlhS2V5U3lzdGVtQ29udHJvbGxlcjo6Y2FuY2VsTWVk
aWFLZXlTeXN0ZW1SZXF1ZXN0KE1lZGlhS2V5U3lzdGVtUmVxdWVzdCYgcmVxdWVzdCkKK3sKKyAg
ICBtX2NsaWVudC0+Y2FuY2VsTWVkaWFLZXlTeXN0ZW1SZXF1ZXN0KHJlcXVlc3QpOworfQorCit9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoRU5DUllQVEVEX01FRElB
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9lbmNyeXB0ZWRtZWRpYS9NZWRp
YUtleVN5c3RlbVJlcXVlc3QuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9lbmNyeXB0ZWRt
ZWRpYS9NZWRpYUtleVN5c3RlbVJlcXVlc3QuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjdlZjUzYWE2YWI1NTJl
ZGU1NGE0NmEyMmI2ZGMyYzBlYWEzMzkzYWMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2VuY3J5cHRlZG1lZGlhL01lZGlhS2V5U3lzdGVtUmVxdWVzdC5jcHAKQEAg
LTAsMCArMSwxMjcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgSWdhbGlhIFMuTC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuICBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1Q
TElFRAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVF
TlRJQUwgREFNQUdFUworICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OCisgKiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMKKyAqIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJNZWRpYUtleVN5c3RlbVJl
cXVlc3QuaCIKKworI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCisKKyNpbmNsdWRlICJEb2N1bWVu
dC5oIgorI2luY2x1ZGUgIkZyYW1lLmgiCisjaW5jbHVkZSAiSlNET01Qcm9taXNlRGVmZXJyZWQu
aCIKKyNpbmNsdWRlICJKU01lZGlhS2V5U3lzdGVtQWNjZXNzLmgiCisjaW5jbHVkZSAiTG9nZ2lu
Zy5oIgorI2luY2x1ZGUgIk1lZGlhS2V5U3lzdGVtQ29udHJvbGxlci5oIgorI2luY2x1ZGUgIlBs
YXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdlci5oIgorI2luY2x1ZGUgIlNldHRpbmdzLmgiCisjaW5j
bHVkZSAiV2luZG93RXZlbnRMb29wLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworUmVmPE1l
ZGlhS2V5U3lzdGVtUmVxdWVzdD4gTWVkaWFLZXlTeXN0ZW1SZXF1ZXN0OjpjcmVhdGUoRG9jdW1l
bnQmIGRvY3VtZW50LCBjb25zdCBTdHJpbmcmIGtleVN5c3RlbSwgUmVmPERlZmVycmVkUHJvbWlz
ZT4mJiBwcm9taXNlKQoreworICAgIGF1dG8gcmVzdWx0ID0gYWRvcHRSZWYoKm5ldyBNZWRpYUtl
eVN5c3RlbVJlcXVlc3QoZG9jdW1lbnQsIGtleVN5c3RlbSwgV1RGTW92ZShwcm9taXNlKSkpOwor
ICAgIHJlc3VsdC0+c3VzcGVuZElmTmVlZGVkKCk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KKwor
TWVkaWFLZXlTeXN0ZW1SZXF1ZXN0OjpNZWRpYUtleVN5c3RlbVJlcXVlc3QoRG9jdW1lbnQmIGRv
Y3VtZW50LCBjb25zdCBTdHJpbmcmIGtleVN5c3RlbSwgUmVmPERlZmVycmVkUHJvbWlzZT4mJiBw
cm9taXNlKQorICAgIDogQWN0aXZlRE9NT2JqZWN0KGRvY3VtZW50KQorICAgICwgbV9rZXlTeXN0
ZW0oa2V5U3lzdGVtKQorICAgICwgbV9wcm9taXNlKFdURk1vdmUocHJvbWlzZSkpCit7Cit9CisK
K01lZGlhS2V5U3lzdGVtUmVxdWVzdDo6fk1lZGlhS2V5U3lzdGVtUmVxdWVzdCgpCit7CisgICAg
aWYgKG1fYWxsb3dDb21wbGV0aW9uSGFuZGxlcikKKyAgICAgICAgbV9hbGxvd0NvbXBsZXRpb25I
YW5kbGVyKFdURk1vdmUobV9wcm9taXNlKSk7Cit9CisKK1NlY3VyaXR5T3JpZ2luKiBNZWRpYUtl
eVN5c3RlbVJlcXVlc3Q6OnRvcExldmVsRG9jdW1lbnRPcmlnaW4oKSBjb25zdAoreworICAgIGlm
ICghbV9zY3JpcHRFeGVjdXRpb25Db250ZXh0KQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAg
ICByZXR1cm4gJm1fc2NyaXB0RXhlY3V0aW9uQ29udGV4dC0+dG9wT3JpZ2luKCk7Cit9CisKK3Zv
aWQgTWVkaWFLZXlTeXN0ZW1SZXF1ZXN0OjpzdGFydCgpCit7CisgICAgQVNTRVJUKG1fc2NyaXB0
RXhlY3V0aW9uQ29udGV4dCk7CisgICAgaWYgKCFtX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQpIHsK
KyAgICAgICAgZGVueSgpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgYXV0byYgZG9j
dW1lbnQgPSBkb3duY2FzdDxEb2N1bWVudD4oKm1fc2NyaXB0RXhlY3V0aW9uQ29udGV4dCk7Cisg
ICAgYXV0byogY29udHJvbGxlciA9IE1lZGlhS2V5U3lzdGVtQ29udHJvbGxlcjo6ZnJvbShkb2N1
bWVudC5wYWdlKCkpOworICAgIGlmICghY29udHJvbGxlcikgeworICAgICAgICBkZW55KCk7Cisg
ICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBjb250cm9sbGVyLT5yZXF1ZXN0TWVkaWFLZXlT
eXN0ZW0oKnRoaXMpOworfQorCit2b2lkIE1lZGlhS2V5U3lzdGVtUmVxdWVzdDo6YWxsb3coQ29t
cGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQoreworICAgIHF1ZXVl
VGFza0tlZXBpbmdPYmplY3RBbGl2ZSgqdGhpcywgVGFza1NvdXJjZTo6VXNlckludGVyYWN0aW9u
LCBbdGhpcywgaGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXSgpIG11dGFibGUg
eworICAgICAgICBhdXRvIGNvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShtX2FsbG93Q29tcGxl
dGlvbkhhbmRsZXIpOworICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihXVEZNb3ZlKG1fcHJvbWlz
ZSkpOworICAgICAgICBoYW5kbGVyKCk7CisgICAgfSk7Cit9CisKK3ZvaWQgTWVkaWFLZXlTeXN0
ZW1SZXF1ZXN0OjpkZW55KGNvbnN0IFN0cmluZyYgbWVzc2FnZSkKK3sKKyAgICBpZiAoIW1fc2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCkKKyAgICAgICAgcmV0dXJuOworCisgICAgRXhjZXB0aW9uQ29k
ZSBjb2RlID0gTm90U3VwcG9ydGVkRXJyb3I7CisgICAgaWYgKCFtZXNzYWdlLmlzRW1wdHkoKSkK
KyAgICAgICAgbV9wcm9taXNlLT5yZWplY3QoY29kZSwgbWVzc2FnZSk7CisgICAgZWxzZQorICAg
ICAgICBtX3Byb21pc2UtPnJlamVjdChjb2RlKTsKK30KKwordm9pZCBNZWRpYUtleVN5c3RlbVJl
cXVlc3Q6OnN0b3AoKQoreworICAgIGF1dG8mIGRvY3VtZW50ID0gZG93bmNhc3Q8RG9jdW1lbnQ+
KCptX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQpOworICAgIGlmIChhdXRvKiBjb250cm9sbGVyID0g
TWVkaWFLZXlTeXN0ZW1Db250cm9sbGVyOjpmcm9tKGRvY3VtZW50LnBhZ2UoKSkpCisgICAgICAg
IGNvbnRyb2xsZXItPmNhbmNlbE1lZGlhS2V5U3lzdGVtUmVxdWVzdCgqdGhpcyk7Cit9CisKK2Nv
bnN0IGNoYXIqIE1lZGlhS2V5U3lzdGVtUmVxdWVzdDo6YWN0aXZlRE9NT2JqZWN0TmFtZSgpIGNv
bnN0Cit7CisgICAgcmV0dXJuICJNZWRpYUtleVN5c3RlbVJlcXVlc3QiOworfQorCitEb2N1bWVu
dCogTWVkaWFLZXlTeXN0ZW1SZXF1ZXN0Ojpkb2N1bWVudCgpIGNvbnN0Cit7CisgICAgcmV0dXJu
IGRvd25jYXN0PERvY3VtZW50PihtX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQpOworfQorCit9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoRU5DUllQVEVEX01FRElBKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9lbmNyeXB0ZWRtZWRpYS9NZWRpYUtl
eVN5c3RlbVJlcXVlc3QuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZW5jcnlwdGVkbWVkaWEv
TWVkaWFLZXlTeXN0ZW1SZXF1ZXN0LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOWZjYmU0ZjFiYWJkYmNkYjcyYWQ1
NDU2NjczZmFiZWI0NjBlMmFiNwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvZW5jcnlwdGVkbWVkaWEvTWVkaWFLZXlTeXN0ZW1SZXF1ZXN0LmgKQEAgLTAsMCArMSw4
MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBJZ2FsaWEgUy5MLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
IFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKKyAqIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1B
R0VTCisgKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7CisgKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04KKyAq
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUworICogU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwor
I3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoRU5DUllQVEVEX01FRElBKQorCisjaW5jbHVkZSAi
QWN0aXZlRE9NT2JqZWN0LmgiCisjaW5jbHVkZSAiSURMVHlwZXMuaCIKKyNpbmNsdWRlICJKU0RP
TVByb21pc2VEZWZlcnJlZC5oIgorI2luY2x1ZGUgPHd0Zi9Db21wbGV0aW9uSGFuZGxlci5oPgor
I2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CisjaW5jbHVkZSA8d3RmL09iamVjdElkZW50aWZpZXIu
aD4KKyNpbmNsdWRlIDx3dGYvVW5pcXVlUmVmLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwor
Y2xhc3MgU2VjdXJpdHlPcmlnaW47CitjbGFzcyBNZWRpYUtleVN5c3RlbTsKKwordGVtcGxhdGUg
PHR5cGVuYW1lIElETFR5cGU+IGNsYXNzIERPTVByb21pc2VEZWZlcnJlZDsKKworZW51bSBNZWRp
YUtleVN5c3RlbVJlcXVlc3RJZGVudGlmaWVyVHlwZSB7IH07Cit1c2luZyBNZWRpYUtleVN5c3Rl
bVJlcXVlc3RJZGVudGlmaWVyID0gT2JqZWN0SWRlbnRpZmllcjxNZWRpYUtleVN5c3RlbVJlcXVl
c3RJZGVudGlmaWVyVHlwZT47CisKK2NsYXNzIE1lZGlhS2V5U3lzdGVtUmVxdWVzdCA6IHB1Ymxp
YyBSZWZDb3VudGVkPE1lZGlhS2V5U3lzdGVtUmVxdWVzdD4sIHB1YmxpYyBBY3RpdmVET01PYmpl
Y3QgeworcHVibGljOgorICAgIHN0YXRpYyBSZWY8TWVkaWFLZXlTeXN0ZW1SZXF1ZXN0PiBjcmVh
dGUoRG9jdW1lbnQmLCBjb25zdCBTdHJpbmcmIGtleVN5c3RlbSwgUmVmPERlZmVycmVkUHJvbWlz
ZT4mJik7CisgICAgdmlydHVhbCB+TWVkaWFLZXlTeXN0ZW1SZXF1ZXN0KCk7CisKKyAgICB2b2lk
IHNldEFsbG93Q2FsbGJhY2soQ29tcGxldGlvbkhhbmRsZXI8dm9pZChSZWY8RGVmZXJyZWRQcm9t
aXNlPiYmKT4mJiBjYWxsYmFjaykgeyBtX2FsbG93Q29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3Zl
KGNhbGxiYWNrKTsgfQorICAgIE1lZGlhS2V5U3lzdGVtUmVxdWVzdElkZW50aWZpZXIgaWRlbnRp
ZmllcigpIGNvbnN0IHsgcmV0dXJuIG1faWRlbnRpZmllcjsgfQorICAgIHZvaWQgc3RhcnQoKTsK
KworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgYWxsb3coQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgp
PiYmKTsKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGRlbnkoY29uc3QgU3RyaW5nJiBlcnJvck1l
c3NhZ2UgPSBlbXB0eVN0cmluZygpKTsKKworICAgIFdFQkNPUkVfRVhQT1JUIFNlY3VyaXR5T3Jp
Z2luKiB0b3BMZXZlbERvY3VtZW50T3JpZ2luKCkgY29uc3Q7CisgICAgV0VCQ09SRV9FWFBPUlQg
RG9jdW1lbnQqIGRvY3VtZW50KCkgY29uc3Q7CisKKyAgICBjb25zdCBTdHJpbmcga2V5U3lzdGVt
KCkgY29uc3QgeyByZXR1cm4gbV9rZXlTeXN0ZW07IH0KKworcHJpdmF0ZToKKyAgICBNZWRpYUtl
eVN5c3RlbVJlcXVlc3QoRG9jdW1lbnQmLCBjb25zdCBTdHJpbmcmIGtleVN5c3RlbSwgUmVmPERl
ZmVycmVkUHJvbWlzZT4mJik7CisKKyAgICB2b2lkIHN0b3AoKSBmaW5hbDsKKyAgICBjb25zdCBj
aGFyKiBhY3RpdmVET01PYmplY3ROYW1lKCkgY29uc3QgZmluYWw7CisKKyAgICBNZWRpYUtleVN5
c3RlbVJlcXVlc3RJZGVudGlmaWVyIG1faWRlbnRpZmllcjsKKworICAgIFN0cmluZyBtX2tleVN5
c3RlbTsKKyAgICBSZWY8RGVmZXJyZWRQcm9taXNlPiBtX3Byb21pc2U7CisKKyAgICBDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKFJlZjxEZWZlcnJlZFByb21pc2U+JiYpPiBtX2FsbG93Q29tcGxldGlv
bkhhbmRsZXI7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFC
TEUoRU5DUllQVEVEX01FRElBKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9l
bmNyeXB0ZWRtZWRpYS9OYXZpZ2F0b3JFTUUuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9l
bmNyeXB0ZWRtZWRpYS9OYXZpZ2F0b3JFTUUuY3BwCmluZGV4IDY5NDU2NGFmM2U1OTNhNjk2MTc1
OGZhZmQ3MmE3ZDUwNDdhNmFjMzYuLjkyODhjY2E3ZjA0ODIyNTk4OWY2ZDE4ZTRmMDQ2MjEwMzBl
Y2RlZWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZW5jcnlwdGVkbWVkaWEv
TmF2aWdhdG9yRU1FLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2VuY3J5cHRlZG1l
ZGlhL05hdmlnYXRvckVNRS5jcHAKQEAgLTM3LDYgKzM3LDcgQEAKICNpbmNsdWRlICJKU0RPTVBy
b21pc2VEZWZlcnJlZC5oIgogI2luY2x1ZGUgIkpTTWVkaWFLZXlTeXN0ZW1BY2Nlc3MuaCIKICNp
bmNsdWRlICJMb2dnaW5nLmgiCisjaW5jbHVkZSAiTWVkaWFLZXlTeXN0ZW1SZXF1ZXN0LmgiCiAj
aW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nQnVpbGRlci5oPgogCiBuYW1lc3BhY2UgV1RGIHsKQEAg
LTk5LDIzICsxMDAsMjcgQEAgdm9pZCBOYXZpZ2F0b3JFTUU6OnJlcXVlc3RNZWRpYUtleVN5c3Rl
bUFjY2VzcyhOYXZpZ2F0b3ImIG5hdmlnYXRvciwgRG9jdW1lbnQmIGQKICAgICAgICAgcmV0dXJu
OwogICAgIH0KIAotICAgIGRvY3VtZW50LnBvc3RUYXNrKFtrZXlTeXN0ZW0sIHN1cHBvcnRlZENv
bmZpZ3VyYXRpb25zID0gV1RGTW92ZShzdXBwb3J0ZWRDb25maWd1cmF0aW9ucyksIHByb21pc2Ug
PSBXVEZNb3ZlKHByb21pc2UpLCAmZG9jdW1lbnQsIGxvZ2dlciA9IFdURk1vdmUobG9nZ2VyKSwg
aWRlbnRpZmllciA9IFdURk1vdmUoaWRlbnRpZmllcildIChTY3JpcHRFeGVjdXRpb25Db250ZXh0
JikgbXV0YWJsZSB7Ci0gICAgICAgIC8vIDMuIExldCBkb2N1bWVudCBiZSB0aGUgY2FsbGluZyBj
b250ZXh0J3MgRG9jdW1lbnQuCi0gICAgICAgIC8vIDQuIExldCBvcmlnaW4gYmUgdGhlIG9yaWdp
biBvZiBkb2N1bWVudC4KLSAgICAgICAgLy8gNS4gTGV0IHByb21pc2UgYmUgYSBuZXcgcHJvbWlz
ZS4KLSAgICAgICAgLy8gNi4gUnVuIHRoZSBmb2xsb3dpbmcgc3RlcHMgaW4gcGFyYWxsZWw6Ci0g
ICAgICAgIC8vIDYuMS4gSWYga2V5U3lzdGVtIGlzIG5vdCBvbmUgb2YgdGhlIEtleSBTeXN0ZW1z
IHN1cHBvcnRlZCBieSB0aGUgdXNlciBhZ2VudCwgcmVqZWN0IHByb21pc2Ugd2l0aCBhIE5vdFN1
cHBvcnRlZEVycm9yLgotICAgICAgICAvLyAgICAgIFN0cmluZyBjb21wYXJpc29uIGlzIGNhc2Ut
c2Vuc2l0aXZlLgotICAgICAgICBpZiAoIUNETTo6c3VwcG9ydHNLZXlTeXN0ZW0oa2V5U3lzdGVt
KSkgewotICAgICAgICAgICAgaW5mb0xvZyhsb2dnZXIsIGlkZW50aWZpZXIsICJSZWplY3RlZDog
a2V5U3lzdGVtKCIsIGtleVN5c3RlbSwgIikgbm90IHN1cHBvcnRlZCIpOwotICAgICAgICAgICAg
cHJvbWlzZS0+cmVqZWN0KE5vdFN1cHBvcnRlZEVycm9yKTsKLSAgICAgICAgICAgIHJldHVybjsK
LSAgICAgICAgfQotCi0gICAgICAgIC8vIDYuMi4gTGV0IGltcGxlbWVudGF0aW9uIGJlIHRoZSBp
bXBsZW1lbnRhdGlvbiBvZiBrZXlTeXN0ZW0uCi0gICAgICAgIGF1dG8gaW1wbGVtZW50YXRpb24g
PSBDRE06OmNyZWF0ZShkb2N1bWVudCwga2V5U3lzdGVtKTsKLSAgICAgICAgdHJ5TmV4dFN1cHBv
cnRlZENvbmZpZ3VyYXRpb24oV1RGTW92ZShpbXBsZW1lbnRhdGlvbiksIFdURk1vdmUoc3VwcG9y
dGVkQ29uZmlndXJhdGlvbnMpLCBXVEZNb3ZlKHByb21pc2UpLCBXVEZNb3ZlKGxvZ2dlciksIFdU
Rk1vdmUoaWRlbnRpZmllcikpOworICAgIGF1dG8gcmVxdWVzdCA9IE1lZGlhS2V5U3lzdGVtUmVx
dWVzdDo6Y3JlYXRlKGRvY3VtZW50LCBrZXlTeXN0ZW0sIFdURk1vdmUocHJvbWlzZSkpOworICAg
IHJlcXVlc3QtPnNldEFsbG93Q2FsbGJhY2soW2tleVN5c3RlbSwgc3VwcG9ydGVkQ29uZmlndXJh
dGlvbnMgPSBXVEZNb3ZlKHN1cHBvcnRlZENvbmZpZ3VyYXRpb25zKSwgJmRvY3VtZW50LCBsb2dn
ZXIgPSBXVEZNb3ZlKGxvZ2dlciksIGlkZW50aWZpZXIgPSBXVEZNb3ZlKGlkZW50aWZpZXIpXShS
ZWY8RGVmZXJyZWRQcm9taXNlPiYmIHByb21pc2UpIHsKKyAgICAgICAgZG9jdW1lbnQucG9zdFRh
c2soW3Byb21pc2UgPSBXVEZNb3ZlKHByb21pc2UpLCAmZG9jdW1lbnQsIGtleVN5c3RlbSwgbG9n
Z2VyLCBpZGVudGlmaWVyLCBzdXBwb3J0ZWRDb25maWd1cmF0aW9uc10gKFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQmKSBtdXRhYmxlIHsKKyAgICAgICAgICAgIC8vIDMuIExldCBkb2N1bWVudCBiZSB0
aGUgY2FsbGluZyBjb250ZXh0J3MgRG9jdW1lbnQuCisgICAgICAgICAgICAvLyA0LiBMZXQgb3Jp
Z2luIGJlIHRoZSBvcmlnaW4gb2YgZG9jdW1lbnQuCisgICAgICAgICAgICAvLyA1LiBMZXQgcHJv
bWlzZSBiZSBhIG5ldyBwcm9taXNlLgorICAgICAgICAgICAgLy8gNi4gUnVuIHRoZSBmb2xsb3dp
bmcgc3RlcHMgaW4gcGFyYWxsZWw6CisgICAgICAgICAgICAvLyA2LjEuIElmIGtleVN5c3RlbSBp
cyBub3Qgb25lIG9mIHRoZSBLZXkgU3lzdGVtcyBzdXBwb3J0ZWQgYnkgdGhlIHVzZXIgYWdlbnQs
IHJlamVjdCBwcm9taXNlIHdpdGggYSBOb3RTdXBwb3J0ZWRFcnJvci4KKyAgICAgICAgICAgIC8v
ICAgICAgU3RyaW5nIGNvbXBhcmlzb24gaXMgY2FzZS1zZW5zaXRpdmUuCisgICAgICAgICAgICBp
ZiAoIUNETTo6c3VwcG9ydHNLZXlTeXN0ZW0oa2V5U3lzdGVtKSkgeworICAgICAgICAgICAgICAg
IGluZm9Mb2cobG9nZ2VyLCBpZGVudGlmaWVyLCAiUmVqZWN0ZWQ6IGtleVN5c3RlbSgiLCBrZXlT
eXN0ZW0sICIpIG5vdCBzdXBwb3J0ZWQiKTsKKyAgICAgICAgICAgICAgICBwcm9taXNlLT5yZWpl
Y3QoTm90U3VwcG9ydGVkRXJyb3IpOworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAg
ICAgIH0KKworICAgICAgICAgICAgLy8gNi4yLiBMZXQgaW1wbGVtZW50YXRpb24gYmUgdGhlIGlt
cGxlbWVudGF0aW9uIG9mIGtleVN5c3RlbS4KKyAgICAgICAgICAgIGF1dG8gaW1wbGVtZW50YXRp
b24gPSBDRE06OmNyZWF0ZShkb2N1bWVudCwga2V5U3lzdGVtKTsKKyAgICAgICAgICAgIHRyeU5l
eHRTdXBwb3J0ZWRDb25maWd1cmF0aW9uKFdURk1vdmUoaW1wbGVtZW50YXRpb24pLCBXVEZNb3Zl
KHN1cHBvcnRlZENvbmZpZ3VyYXRpb25zKSwgV1RGTW92ZShwcm9taXNlKSwgV1RGTW92ZShsb2dn
ZXIpLCBXVEZNb3ZlKGlkZW50aWZpZXIpKTsKKyAgICAgICAgfSk7CiAgICAgfSk7CisgICAgcmVx
dWVzdC0+c3RhcnQoKTsKIH0KIAogc3RhdGljIHZvaWQgdHJ5TmV4dFN1cHBvcnRlZENvbmZpZ3Vy
YXRpb24oUmVmUHRyPENETT4mJiBpbXBsZW1lbnRhdGlvbiwgVmVjdG9yPE1lZGlhS2V5U3lzdGVt
Q29uZmlndXJhdGlvbj4mJiBzdXBwb3J0ZWRDb25maWd1cmF0aW9ucywgUmVmUHRyPERlZmVycmVk
UHJvbWlzZT4mJiBwcm9taXNlLCBSZWY8TG9nZ2VyPiYmIGxvZ2dlciwgV1RGOjpMb2dnZXI6Okxv
Z1NpdGVJZGVudGlmaWVyJiYgaWRlbnRpZmllcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
Q01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvV2ViS2l0L0NNYWtlTGlzdHMudHh0CmluZGV4IGNiY2E4
ZDMzODhjNTgyOWI3NDI3MjJlNzQ5OWY5MzY5ZmIzYzMwODUuLjQ2ZWMwYzU0Y2M0NGQxYjNiYmRj
ZTA5NjJmMjcxMzA1ODA1YTg3MjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ01ha2VMaXN0
cy50eHQKKysrIGIvU291cmNlL1dlYktpdC9DTWFrZUxpc3RzLnR4dApAQCAtNzUsNiArNzUsNyBA
QCBzZXQoV2ViS2l0X0lOQ0xVREVfRElSRUNUT1JJRVMKICAgICAiJHtXRUJLSVRfRElSfS9XZWJQ
cm9jZXNzL0NhY2hlIgogICAgICIke1dFQktJVF9ESVJ9L1dlYlByb2Nlc3MvRGF0YWJhc2VzIgog
ICAgICIke1dFQktJVF9ESVJ9L1dlYlByb2Nlc3MvRGF0YWJhc2VzL0luZGV4ZWREQiIKKyAgICAi
JHtXRUJLSVRfRElSfS9XZWJQcm9jZXNzL0VuY3J5cHRlZE1lZGlhIgogICAgICIke1dFQktJVF9E
SVJ9L1dlYlByb2Nlc3MvRmlsZUFQSSIKICAgICAiJHtXRUJLSVRfRElSfS9XZWJQcm9jZXNzL0Z1
bGxTY3JlZW4iCiAgICAgIiR7V0VCS0lUX0RJUn0vV2ViUHJvY2Vzcy9HYW1lcGFkIgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9IZWFkZXJzLmNtYWtlIGIvU291cmNlL1dlYktpdC9IZWFkZXJz
LmNtYWtlCmluZGV4IDIxMzA0ZGEzMGQ3ODgyNTQzNjUyMjdhYTZiMzZmMGU3NmY2OTBlZjQuLjM0
NmM4YTYzYTdiN2FlNDk3YTFiZWUyNGQ3ZjgwOGIwZmE4Y2U0YTMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvSGVhZGVycy5jbWFrZQorKysgYi9Tb3VyY2UvV2ViS2l0L0hlYWRlcnMuY21ha2UK
QEAgLTYyLDYgKzYyLDcgQEAgc2V0KFdlYktpdF9QVUJMSUNfRlJBTUVXT1JLX0hFQURFUlMKICAg
ICBVSVByb2Nlc3MvQVBJL0MvV0tJY29uRGF0YWJhc2UuaAogICAgIFVJUHJvY2Vzcy9BUEkvQy9X
S0luc3BlY3Rvci5oCiAgICAgVUlQcm9jZXNzL0FQSS9DL1dLTGF5b3V0TW9kZS5oCisgICAgVUlQ
cm9jZXNzL0FQSS9DL1dLTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uQ2FsbGJhY2suaAogICAgIFVJ
UHJvY2Vzcy9BUEkvQy9XS01lc3NhZ2VMaXN0ZW5lci5oCiAgICAgVUlQcm9jZXNzL0FQSS9DL1dL
TW9ja0Rpc3BsYXkuaAogICAgIFVJUHJvY2Vzcy9BUEkvQy9XS01vY2tNZWRpYURldmljZS5oCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL0xvZ2dpbmcuaCBiL1NvdXJjZS9XZWJL
aXQvUGxhdGZvcm0vTG9nZ2luZy5oCmluZGV4IGY0OWYzOGI2YTVmOWQzZDcwOTUyZDJlMTIxYzg5
OTVkZWNlOThlYWEuLjA2NmYwNjVmZTNlM2FlYzRhMDc5ODY4MTkzZGFlOGEwYjA3Nzc1YjggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vTG9nZ2luZy5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvUGxhdGZvcm0vTG9nZ2luZy5oCkBAIC01Miw2ICs1Miw3IEBAIGV4dGVybiAiQyIgewog
ICAgIE0oQ29udGV4dE1lbnUpIFwKICAgICBNKERpc2tQZXJzaXN0ZW5jeSkgXAogICAgIE0oRHJh
Z0FuZERyb3ApIFwKKyAgICBNKEVNRSkgXAogICAgIE0oRnVsbHNjcmVlbikgXAogICAgIE0oR2Ft
ZXBhZCkgXAogICAgIE0oSVBDKSBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1BsYXRmb3Jt
R1RLLmNtYWtlIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybUdUSy5jbWFrZQppbmRleCAzMjBiMTE2
YjFkOGEzM2E3ZDU0N2M3Y2Y2MTkwNzU2NzYxNDczNzcyLi45YThlMGZhODk3OGY2YjJhZTg4Nzg1
MzYzNGE5Y2NkNjdkNzUxODcxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtR1RL
LmNtYWtlCisrKyBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm1HVEsuY21ha2UKQEAgLTExOSw2ICsx
MTksNyBAQCBzZXQoV2ViS2l0MkdUS19JTlNUQUxMRURfSEVBREVSUwogICAgICR7V0VCS0lUX0RJ
Un0vVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0SGl0VGVzdFJlc3VsdC5oCiAgICAgJHtXRUJLSVRf
RElSfS9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRJbnN0YWxsTWlzc2luZ01lZGlhUGx1Z2luc1Bl
cm1pc3Npb25SZXF1ZXN0LmgKICAgICAke1dFQktJVF9ESVJ9L1VJUHJvY2Vzcy9BUEkvZ3RrL1dl
YktpdEphdmFzY3JpcHRSZXN1bHQuaAorICAgICR7V0VCS0lUX0RJUn0vVUlQcm9jZXNzL0FQSS9n
dGsvV2ViS2l0TWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdC5oCiAgICAgJHtXRUJLSVRf
RElSfS9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRNaW1lSW5mby5oCiAgICAgJHtXRUJLSVRfRElS
fS9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXROYXZpZ2F0aW9uQWN0aW9uLmgKICAgICAke1dFQktJ
VF9ESVJ9L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdE5hdmlnYXRpb25Qb2xpY3lEZWNpc2lvbi5o
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtV1BFLmNtYWtlIGIvU291cmNlL1dl
YktpdC9QbGF0Zm9ybVdQRS5jbWFrZQppbmRleCBjNDQxZTZhYWJmNDJjOWQ1YWVjY2NkOTYxZGI0
MDEwN2M0ODdiZDQwLi5mNDVjNTMxYTA5YmNiNThkYWFmOWZmNWE5ODRmYzFjNjExMWM1OTc5IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtV1BFLmNtYWtlCisrKyBiL1NvdXJjZS9X
ZWJLaXQvUGxhdGZvcm1XUEUuY21ha2UKQEAgLTEzMiw2ICsxMzIsNyBAQCBzZXQoV1BFX0FQSV9J
TlNUQUxMRURfSEVBREVSUwogICAgICR7V0VCS0lUX0RJUn0vVUlQcm9jZXNzL0FQSS93cGUvV2Vi
S2l0SW5wdXRNZXRob2RDb250ZXh0LmgKICAgICAke1dFQktJVF9ESVJ9L1VJUHJvY2Vzcy9BUEkv
d3BlL1dlYktpdEluc3RhbGxNaXNzaW5nTWVkaWFQbHVnaW5zUGVybWlzc2lvblJlcXVlc3QuaAog
ICAgICR7V0VCS0lUX0RJUn0vVUlQcm9jZXNzL0FQSS93cGUvV2ViS2l0SmF2YXNjcmlwdFJlc3Vs
dC5oCisgICAgJHtXRUJLSVRfRElSfS9VSVByb2Nlc3MvQVBJL3dwZS9XZWJLaXRNZWRpYUtleVN5
c3RlbVBlcm1pc3Npb25SZXF1ZXN0LmgKICAgICAke1dFQktJVF9ESVJ9L1VJUHJvY2Vzcy9BUEkv
d3BlL1dlYktpdE1pbWVJbmZvLmgKICAgICAke1dFQktJVF9ESVJ9L1VJUHJvY2Vzcy9BUEkvd3Bl
L1dlYktpdE5hdmlnYXRpb25BY3Rpb24uaAogICAgICR7V0VCS0lUX0RJUn0vVUlQcm9jZXNzL0FQ
SS93cGUvV2ViS2l0TmF2aWdhdGlvblBvbGljeURlY2lzaW9uLmgKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvU2hhcmVkL0FQSS9BUElPYmplY3QuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0FQ
SS9BUElPYmplY3QuaAppbmRleCAwNTU2OTM0M2EwZGMzYWFkNmMyZDMzNDAzZThlMjliYTg2ZmU0
Y2FiLi40NmM3NzNlZTM4Y2QzMDY3NWI2ZThiMTYyNWY5NzUzMDc5M2IxNmJiIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BUEkvQVBJT2JqZWN0LmgKKysrIGIvU291cmNlL1dlYktp
dC9TaGFyZWQvQVBJL0FQSU9iamVjdC5oCkBAIC0xODksNiArMTg5LDggQEAgcHVibGljOgogICAg
ICAgICBXZWJBdXRoZW50aWNhdGlvblBhbmVsLAogI2VuZGlmCiAKKyAgICAgICAgTWVkaWFLZXlT
eXN0ZW1QZXJtaXNzaW9uQ2FsbGJhY2ssCisKICAgICAgICAgLy8gQnVuZGxlIHR5cGVzCiAgICAg
ICAgIEJ1bmRsZSwKICAgICAgICAgQnVuZGxlQmFja0ZvcndhcmRMaXN0LApAQCAtNDM4LDYgKzQ0
MCw4IEBAIHRlbXBsYXRlPD4gc3RydWN0IEVudW1UcmFpdHM8QVBJOjpPYmplY3Q6OlR5cGU+IHsK
ICAgICAgICAgQVBJOjpPYmplY3Q6OlR5cGU6OldlYkF1dGhlbnRpY2F0aW9uUGFuZWwsCiAjZW5k
aWYKIAorICAgICAgICBBUEk6Ok9iamVjdDo6VHlwZTo6TWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9u
Q2FsbGJhY2ssCisKICAgICAgICAgLy8gQnVuZGxlIHR5cGVzCiAgICAgICAgIEFQSTo6T2JqZWN0
OjpUeXBlOjpCdW5kbGUsCiAgICAgICAgIEFQSTo6T2JqZWN0OjpUeXBlOjpCdW5kbGVCYWNrRm9y
d2FyZExpc3QsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BUEkvYy9XS0Jhc2Uu
aCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0FQSS9jL1dLQmFzZS5oCmluZGV4IDg0ZWU2YzI4OGY2
ZDJlYmQ1MWZhNzNlYTcyNzA4ZjMyOTQ2YmRkODUuLjdjOGJkMjM5MjRjNGFiNzExNTRmNWNhYzdl
NzNjYzczZDM5NDU4YzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0FQSS9jL1dL
QmFzZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0FQSS9jL1dLQmFzZS5oCkBAIC0xNDIs
NiArMTQyLDggQEAgdHlwZWRlZiBjb25zdCBzdHJ1Y3QgT3BhcXVlV0tXZWJzaXRlRGF0YVN0b3Jl
KiBXS1dlYnNpdGVEYXRhU3RvcmVSZWY7CiB0eXBlZGVmIGNvbnN0IHN0cnVjdCBPcGFxdWVXS1dl
YnNpdGVQb2xpY2llcyogV0tXZWJzaXRlUG9saWNpZXNSZWY7CiB0eXBlZGVmIGNvbnN0IHN0cnVj
dCBPcGFxdWVXS1dpbmRvd0ZlYXR1cmVzKiBXS1dpbmRvd0ZlYXR1cmVzUmVmOwogdHlwZWRlZiBj
b25zdCBzdHJ1Y3QgT3BhcXVlV0tTcGVlY2hSZWNvZ25pdGlvblBlcm1pc3Npb25DYWxsYmFjayog
V0tTcGVlY2hSZWNvZ25pdGlvblBlcm1pc3Npb25DYWxsYmFja1JlZjsKK3R5cGVkZWYgY29uc3Qg
c3RydWN0IE9wYXF1ZVdLTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdCogV0tNZWRpYUtl
eVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0UmVmOwordHlwZWRlZiBjb25zdCBzdHJ1Y3QgT3BhcXVl
V0tNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25DYWxsYmFjayogV0tNZWRpYUtleVN5c3RlbVBlcm1p
c3Npb25DYWxsYmFja1JlZjsKIAogLyogV2ViS2l0MiBCdW5kbGUgdHlwZXMgKi8KIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9Tb3VyY2VzLnR4dCBiL1NvdXJjZS9XZWJLaXQvU291cmNlcy50
eHQKaW5kZXggN2Y0MDhiYzQ2MTBjMTA1NDkxZDViMDY0MWY4YjcwZjNhZjkxYjA0My4uNDNhYTJi
N2Q1NzYyYzU4ZDk0N2UyMWVmNGJjNzI1MDQ1OTk3MWQwMSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9Tb3VyY2VzLnR4dAorKysgYi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0CkBAIC0yODUs
NiArMjg1LDggQEAgVUlQcm9jZXNzL0ZyYW1lTG9hZFN0YXRlLmNwcAogVUlQcm9jZXNzL0dlb2xv
Y2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuY3BwCiBVSVByb2Nlc3MvR2VvbG9j
YXRpb25QZXJtaXNzaW9uUmVxdWVzdFByb3h5LmNwcAogVUlQcm9jZXNzL0xlZ2FjeUdsb2JhbFNl
dHRpbmdzLmNwcAorVUlQcm9jZXNzL01lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RNYW5h
Z2VyUHJveHkuY3BwCitVSVByb2Nlc3MvTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdFBy
b3h5LmNwcAogVUlQcm9jZXNzL1BhZ2VMb2FkU3RhdGUuY3BwCiBVSVByb2Nlc3MvUHJvY2Vzc0Fz
c2VydGlvbi5jcHAKIFVJUHJvY2Vzcy9Qcm9jZXNzVGhyb3R0bGVyLmNwcApAQCAtMzkxLDYgKzM5
Myw3IEBAIFVJUHJvY2Vzcy9BUEkvQy9XS0hpdFRlc3RSZXN1bHQuY3BwCiBVSVByb2Nlc3MvQVBJ
L0MvV0tJY29uRGF0YWJhc2UuY3BwCiBVSVByb2Nlc3MvQVBJL0MvV0tJbnNwZWN0b3IuY3BwCiBV
SVByb2Nlc3MvQVBJL0MvV0tLZXlWYWx1ZVN0b3JhZ2VNYW5hZ2VyLmNwcAorVUlQcm9jZXNzL0FQ
SS9DL1dLTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uQ2FsbGJhY2suY3BwCiBVSVByb2Nlc3MvQVBJ
L0MvV0tNZXNzYWdlTGlzdGVuZXIuY3BwCiBVSVByb2Nlc3MvQVBJL0MvV0tNb2NrRGlzcGxheS5j
cHAKIFVJUHJvY2Vzcy9BUEkvQy9XS01vY2tNZWRpYURldmljZS5jcHAKQEAgLTUxMSw2ICs1MTQs
OCBAQCBXZWJQcm9jZXNzL0RhdGFiYXNlcy9XZWJEYXRhYmFzZVByb3ZpZGVyLmNwcAogCiBXZWJQ
cm9jZXNzL0RhdGFiYXNlcy9JbmRleGVkREIvV2ViSURCQ29ubmVjdGlvblRvU2VydmVyLmNwcAog
CitXZWJQcm9jZXNzL0VuY3J5cHRlZE1lZGlhL01lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVl
c3RNYW5hZ2VyLmNwcAorCiBXZWJQcm9jZXNzL0ZpbGVBUEkvQmxvYlJlZ2lzdHJ5UHJveHkuY3Bw
CiAKIFdlYlByb2Nlc3MvRnVsbFNjcmVlbi9XZWJGdWxsU2NyZWVuTWFuYWdlci5jcHAKQEAgLTY2
NSw2ICs2NzAsNyBAQCBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkRyYWdDbGllbnQuY3Bw
CiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5jcHAKIFdlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwCiBXZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L1dlYkdlb2xvY2F0aW9uQ2xpZW50LmNwcAorV2ViUHJvY2Vzcy9XZWJDb3Jl
U3VwcG9ydC9XZWJNZWRpYUtleVN5c3RlbUNsaWVudC5jcHAKIFdlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvV2ViTWVzc2FnZVBvcnRDaGFubmVsUHJvdmlkZXIuY3BwCiBXZWJQcm9jZXNzL1dlYkNv
cmVTdXBwb3J0L1dlYk5vdGlmaWNhdGlvbkNsaWVudC5jcHAKIFdlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvV2ViUGVyZm9ybWFuY2VMb2dnaW5nQ2xpZW50LmNwcApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9Tb3VyY2VzR1RLLnR4dCBiL1NvdXJjZS9XZWJLaXQvU291cmNlc0dUSy50eHQKaW5k
ZXggNWQ1YjAzYjJlNWVlNGRhNGNjMmI0YzJkZTA0YjgwZDlkZTBjZWFiYi4uNTZiZGZmYTZmYTVl
NDExMWI1MGUwNDgzMDFiZGUzMTExYzY5NGFjNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9T
b3VyY2VzR1RLLnR4dAorKysgYi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNHVEsudHh0CkBAIC0xNDYs
NiArMTQ2LDcgQEAgVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdEluamVjdGVkQnVuZGxlQ2xpZW50
LmNwcCBAbm8tdW5pZnkKIFVJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRJbnB1dE1ldGhvZENvbnRl
eHQuY3BwIEBuby11bmlmeQogVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdEluc3RhbGxNaXNzaW5n
TWVkaWFQbHVnaW5zUGVybWlzc2lvblJlcXVlc3QuY3BwIEBuby11bmlmeQogVUlQcm9jZXNzL0FQ
SS9nbGliL1dlYktpdEphdmFzY3JpcHRSZXN1bHQuY3BwIEBuby11bmlmeQorVUlQcm9jZXNzL0FQ
SS9nbGliL1dlYktpdE1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3QuY3BwIEBuby11bmlm
eQogVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdE1pbWVJbmZvLmNwcCBAbm8tdW5pZnkKIFVJUHJv
Y2Vzcy9BUEkvZ2xpYi9XZWJLaXROYXZpZ2F0aW9uQWN0aW9uLmNwcCBAbm8tdW5pZnkKIFVJUHJv
Y2Vzcy9BUEkvZ2xpYi9XZWJLaXROYXZpZ2F0aW9uQ2xpZW50LmNwcCBAbm8tdW5pZnkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvU291cmNlc1dQRS50eHQgYi9Tb3VyY2UvV2ViS2l0L1NvdXJj
ZXNXUEUudHh0CmluZGV4IGM2NzY3MDc0Y2RiODRiYWNkMWM5MWRjOTUxMjhjZDY1NjZkYTJjZTEu
LmMyZTE3NDU4NDkwNzUzNzE4NjQ3ZTRjMGUwMjYzOWU4NjdhOWFiZDIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvU291cmNlc1dQRS50eHQKKysrIGIvU291cmNlL1dlYktpdC9Tb3VyY2VzV1BF
LnR4dApAQCAtMTM3LDYgKzEzNyw3IEBAIFVJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRJbmplY3Rl
ZEJ1bmRsZUNsaWVudC5jcHAgQG5vLXVuaWZ5CiBVSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0SW5w
dXRNZXRob2RDb250ZXh0LmNwcCBAbm8tdW5pZnkKIFVJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRJ
bnN0YWxsTWlzc2luZ01lZGlhUGx1Z2luc1Blcm1pc3Npb25SZXF1ZXN0LmNwcCBAbm8tdW5pZnkK
IFVJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRKYXZhc2NyaXB0UmVzdWx0LmNwcCBAbm8tdW5pZnkK
K1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0
LmNwcCBAbm8tdW5pZnkKIFVJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRNaW1lSW5mby5jcHAgQG5v
LXVuaWZ5CiBVSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0TmF2aWdhdGlvbkFjdGlvbi5jcHAgQG5v
LXVuaWZ5CiBVSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0TmF2aWdhdGlvbkNsaWVudC5jcHAgQG5v
LXVuaWZ5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJVUlDbGll
bnQuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElVSUNsaWVudC5oCmluZGV4IGIx
N2I1YTE5NjJiYzlmZGU2YmY4ZjA1NWQ0YjRhZTllMTdlYjg0ZGUuLjE2MzY3ZTZjYWM4MjVhYTlj
NzRmYjRjNDg0M2RkMmYxZmYxZGFkMzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9BUElVSUNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9B
UElVSUNsaWVudC5oCkBAIC0yMDUsNiArMjA1LDkgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9p
ZCBkaWREaXNhYmxlSW5zcGVjdG9yQnJvd3NlckRvbWFpbihXZWJLaXQ6OldlYlBhZ2VQcm94eSYp
IHsgfQogCiAgICAgdmlydHVhbCB2b2lkIGRlY2lkZVBvbGljeUZvclNwZWVjaFJlY29nbml0aW9u
UGVybWlzc2lvblJlcXVlc3QoV2ViS2l0OjpXZWJQYWdlUHJveHkmIHBhZ2UsIEFQSTo6U2VjdXJp
dHlPcmlnaW4mIG9yaWdpbiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJiBjb21wbGV0
aW9uSGFuZGxlcikgeyBwYWdlLnJlcXVlc3RTcGVlY2hSZWNvZ25pdGlvblBlcm1pc3Npb25CeURl
ZmF1bHRBY3Rpb24ob3JpZ2luLnNlY3VyaXR5T3JpZ2luKCksIFdURk1vdmUoY29tcGxldGlvbkhh
bmRsZXIpKTsgfQorCisgICAgdmlydHVhbCB2b2lkIGRlY2lkZVBvbGljeUZvck1lZGlhS2V5U3lz
dGVtUGVybWlzc2lvblJlcXVlc3QoV2ViS2l0OjpXZWJQYWdlUHJveHkmIHBhZ2UsIEFQSTo6U2Vj
dXJpdHlPcmlnaW4mIG9yaWdpbiwgY29uc3QgV1RGOjpTdHJpbmcmIGtleVN5c3RlbSwgQ29tcGxl
dGlvbkhhbmRsZXI8dm9pZChib29sKT4mJiBjb21wbGV0aW9uSGFuZGxlcikgeyBwYWdlLnJlcXVl
c3RNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25CeURlZmF1bHRBY3Rpb24ob3JpZ2luLnNlY3VyaXR5
T3JpZ2luKCksIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsgfQorCiB9OwogCiB9IC8vIG5h
bWVzcGFjZSBBUEkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dL
QVBJQ2FzdC5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tBUElDYXN0LmgKaW5k
ZXggY2M5Y2Y1OTU3ZWEzMGQ2YWNmMDQ2OGRlNzAxNzk4YTZmNDE4MTE0YS4uYzhhMTg5NWE2ZDBk
ZTcwOWY5YWUzOThiZTQ1YmVhNjZiOWViZmEwZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL0MvV0tBUElDYXN0LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL0MvV0tBUElDYXN0LmgKQEAgLTc4LDYgKzc4LDcgQEAgY2xhc3MgQXV0aGVudGljYXRpb25D
aGFsbGVuZ2VQcm94eTsKIGNsYXNzIEF1dGhlbnRpY2F0aW9uRGVjaXNpb25MaXN0ZW5lcjsKIGNs
YXNzIERvd25sb2FkUHJveHk7CiBjbGFzcyBHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0Owor
Y2xhc3MgTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uQ2FsbGJhY2s7CiBjbGFzcyBOb3RpZmljYXRp
b25QZXJtaXNzaW9uUmVxdWVzdDsKIGNsYXNzIFNwZWVjaFJlY29nbml0aW9uUGVybWlzc2lvbkNh
bGxiYWNrOwogY2xhc3MgVXNlck1lZGlhUGVybWlzc2lvbkNoZWNrUHJveHk7CkBAIC0xMzUsNiAr
MTM2LDcgQEAgV0tfQUREX0FQSV9NQVBQSU5HKFdLSFRUUENvb2tpZVN0b3JlUmVmLCBBUEk6OkhU
VFBDb29raWVTdG9yZSkKIFdLX0FERF9BUElfTUFQUElORyhXS0hpdFRlc3RSZXN1bHRSZWYsIEFQ
STo6SGl0VGVzdFJlc3VsdCkKIFdLX0FERF9BUElfTUFQUElORyhXS0ljb25EYXRhYmFzZVJlZiwg
V2ViSWNvbkRhdGFiYXNlKQogV0tfQUREX0FQSV9NQVBQSU5HKFdLSW5zcGVjdG9yUmVmLCBXZWJJ
bnNwZWN0b3JQcm94eSkKK1dLX0FERF9BUElfTUFQUElORyhXS01lZGlhS2V5U3lzdGVtUGVybWlz
c2lvbkNhbGxiYWNrUmVmLCBNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25DYWxsYmFjaykKIFdLX0FE
RF9BUElfTUFQUElORyhXS01lc3NhZ2VMaXN0ZW5lclJlZiwgQVBJOjpNZXNzYWdlTGlzdGVuZXIp
CiBXS19BRERfQVBJX01BUFBJTkcoV0tOYXZpZ2F0aW9uQWN0aW9uUmVmLCBBUEk6Ok5hdmlnYXRp
b25BY3Rpb24pCiBXS19BRERfQVBJX01BUFBJTkcoV0tOYXZpZ2F0aW9uRGF0YVJlZiwgQVBJOjpO
YXZpZ2F0aW9uRGF0YSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9D
L1dLTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uQ2FsbGJhY2suY3BwIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL0MvV0tNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25DYWxsYmFjay5jcHAKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uYWFhNzMyNGJiYzJhYjM3MjU3ZGE4M2FiYmMzNDA3MTRiYTdlMDUzMAotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLTWVkaWFLZXlTeXN0
ZW1QZXJtaXNzaW9uQ2FsbGJhY2suY3BwCkBAIC0wLDAgKzEsNDIgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMjEgSWdhbGlhIFMuTC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisg
KiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICog
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgor
I2luY2x1ZGUgIldLTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uQ2FsbGJhY2suaCIKKworI2luY2x1
ZGUgIk1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3QuaCIKKyNpbmNsdWRlICJXS0FQSUNh
c3QuaCIKKwordXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKKworV0tUeXBlSUQgV0tNZWRpYUtleVN5
c3RlbVBlcm1pc3Npb25DYWxsYmFja0dldFR5cGVJRCgpCit7CisgICAgcmV0dXJuIHRvQVBJKE1l
ZGlhS2V5U3lzdGVtUGVybWlzc2lvbkNhbGxiYWNrOjpBUElUeXBlKTsKK30KKwordm9pZCBXS01l
ZGlhS2V5U3lzdGVtUGVybWlzc2lvbkNhbGxiYWNrQ29tcGxldGUoV0tNZWRpYUtleVN5c3RlbVBl
cm1pc3Npb25DYWxsYmFja1JlZiBwZXJtaXNzaW9uQ2FsbGJhY2ssIGJvb2wgZ3JhbnRlZCkKK3sK
KyAgICByZXR1cm4gdG9JbXBsKHBlcm1pc3Npb25DYWxsYmFjayktPmNvbXBsZXRlKGdyYW50ZWQp
OworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tNZWRpYUtl
eVN5c3RlbVBlcm1pc3Npb25DYWxsYmFjay5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L0MvV0tNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25DYWxsYmFjay5oCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmY1ZDM2
ODM3ZWZhNjlhNGIwNmRmMTMyMTIyZmFmNmEwYTFmNTIwNzgKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS01lZGlhS2V5U3lzdGVtUGVybWlzc2lvbkNh
bGxiYWNrLmgKQEAgLTAsMCArMSw0MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBJZ2Fs
aWEgUy5MLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAor
ICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisg
KiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICog
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgPFdlYktpdC9XS0Jh
c2UuaD4KKworI2lmZGVmIF9fY3BsdXNwbHVzCitleHRlcm4gIkMiIHsKKyNlbmRpZgorCitXS19F
WFBPUlQgV0tUeXBlSUQgV0tNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25DYWxsYmFja0dldFR5cGVJ
RCh2b2lkKTsKKworV0tfRVhQT1JUIHZvaWQgV0tNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25DYWxs
YmFja0NvbXBsZXRlKFdLTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uQ2FsbGJhY2tSZWYgcGVybWlz
c2lvbkNhbGxiYWNrLCBib29sIGdyYW50ZWQpOworCisjaWZkZWYgX19jcGx1c3BsdXMKK30KKyNl
bmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmNw
cCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5jcHAKaW5kZXggNzQ0M2Y3
MGY5NTc1ODM2ZDg0M2RhNTRjODQ4MTUwOWM5ZDhjNGRlYy4uYzM5ZTcyZjA3MTJjYmFjMGJlYmFm
ZjBiMDJlODQ1NzNhYzE2ZjkxNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL0MvV0tQYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1Bh
Z2UuY3BwCkBAIC01OCw2ICs1OCw3IEBACiAjaW5jbHVkZSAiRG93bmxvYWRQcm94eS5oIgogI2lu
Y2x1ZGUgIkxlZ2FjeVNlc3Npb25TdGF0ZUNvZGluZy5oIgogI2luY2x1ZGUgIkxvZ2dpbmcuaCIK
KyNpbmNsdWRlICJNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0LmgiCiAjaW5jbHVkZSAi
TmF0aXZlV2ViS2V5Ym9hcmRFdmVudC5oIgogI2luY2x1ZGUgIk5hdGl2ZVdlYldoZWVsRXZlbnQu
aCIKICNpbmNsdWRlICJOYXZpZ2F0aW9uQWN0aW9uRGF0YS5oIgpAQCAtMTE3LDcgKzExOCw3IEBA
IHRlbXBsYXRlPD4gc3RydWN0IENsaWVudFRyYWl0czxXS1BhZ2VQb2xpY3lDbGllbnRCYXNlPiB7
CiB9OwogCiB0ZW1wbGF0ZTw+IHN0cnVjdCBDbGllbnRUcmFpdHM8V0tQYWdlVUlDbGllbnRCYXNl
PiB7Ci0gICAgdHlwZWRlZiBzdGQ6OnR1cGxlPFdLUGFnZVVJQ2xpZW50VjAsIFdLUGFnZVVJQ2xp
ZW50VjEsIFdLUGFnZVVJQ2xpZW50VjIsIFdLUGFnZVVJQ2xpZW50VjMsIFdLUGFnZVVJQ2xpZW50
VjQsIFdLUGFnZVVJQ2xpZW50VjUsIFdLUGFnZVVJQ2xpZW50VjYsIFdLUGFnZVVJQ2xpZW50Vjcs
IFdLUGFnZVVJQ2xpZW50VjgsIFdLUGFnZVVJQ2xpZW50VjksIFdLUGFnZVVJQ2xpZW50VjEwLCBX
S1BhZ2VVSUNsaWVudFYxMSwgV0tQYWdlVUlDbGllbnRWMTIsIFdLUGFnZVVJQ2xpZW50VjEzLCBX
S1BhZ2VVSUNsaWVudFYxNCwgV0tQYWdlVUlDbGllbnRWMTU+IFZlcnNpb25zOworICAgIHR5cGVk
ZWYgc3RkOjp0dXBsZTxXS1BhZ2VVSUNsaWVudFYwLCBXS1BhZ2VVSUNsaWVudFYxLCBXS1BhZ2VV
SUNsaWVudFYyLCBXS1BhZ2VVSUNsaWVudFYzLCBXS1BhZ2VVSUNsaWVudFY0LCBXS1BhZ2VVSUNs
aWVudFY1LCBXS1BhZ2VVSUNsaWVudFY2LCBXS1BhZ2VVSUNsaWVudFY3LCBXS1BhZ2VVSUNsaWVu
dFY4LCBXS1BhZ2VVSUNsaWVudFY5LCBXS1BhZ2VVSUNsaWVudFYxMCwgV0tQYWdlVUlDbGllbnRW
MTEsIFdLUGFnZVVJQ2xpZW50VjEyLCBXS1BhZ2VVSUNsaWVudFYxMywgV0tQYWdlVUlDbGllbnRW
MTQsIFdLUGFnZVVJQ2xpZW50VjE1LCBXS1BhZ2VVSUNsaWVudFYxNj4gVmVyc2lvbnM7CiB9Owog
CiAjaWYgRU5BQkxFKENPTlRFWFRfTUVOVVMpCkBAIC0yMTE5LDYgKzIxMjAsMTYgQEAgdm9pZCBX
S1BhZ2VTZXRQYWdlVUlDbGllbnQoV0tQYWdlUmVmIHBhZ2VSZWYsIGNvbnN0IFdLUGFnZVVJQ2xp
ZW50QmFzZSogd2tDbGllbnQKIAogICAgICAgICAgICAgbV9jbGllbnQuZGVjaWRlUG9saWN5Rm9y
U3BlZWNoUmVjb2duaXRpb25QZXJtaXNzaW9uUmVxdWVzdCh0b0FQSSgmcGFnZSksIHRvQVBJKCZv
cmlnaW4pLCB0b0FQSShTcGVlY2hSZWNvZ25pdGlvblBlcm1pc3Npb25DYWxsYmFjazo6Y3JlYXRl
KFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKS5wdHIoKSkpOwogICAgICAgICB9CisKKyAgICAg
ICAgdm9pZCBkZWNpZGVQb2xpY3lGb3JNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0KFdl
YlBhZ2VQcm94eSYgcGFnZSwgQVBJOjpTZWN1cml0eU9yaWdpbiYgb3JpZ2luLCBjb25zdCBTdHJp
bmcmIGtleVN5c3RlbSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJiBjb21wbGV0aW9u
SGFuZGxlcikgZmluYWwKKyAgICAgICAgeworICAgICAgICAgICAgaWYgKCFtX2NsaWVudC5kZWNp
ZGVQb2xpY3lGb3JNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0KSB7CisgICAgICAgICAg
ICAgICAgY29tcGxldGlvbkhhbmRsZXIoZmFsc2UpOworICAgICAgICAgICAgICAgIHJldHVybjsK
KyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgbV9jbGllbnQuZGVjaWRlUG9saWN5Rm9yTWVk
aWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdCh0b0FQSSgmcGFnZSksIHRvQVBJKCZvcmlnaW4p
LCB0b0FQSShBUEk6OlN0cmluZzo6Y3JlYXRlKGtleVN5c3RlbSkucHRyKCkpLCB0b0FQSShNZWRp
YUtleVN5c3RlbVBlcm1pc3Npb25DYWxsYmFjazo6Y3JlYXRlKFdURk1vdmUoY29tcGxldGlvbkhh
bmRsZXIpKS5wdHIoKSkpOworICAgICAgICB9CiAgICAgfTsKIAogICAgIHRvSW1wbChwYWdlUmVm
KS0+c2V0VUlDbGllbnQobWFrZVVuaXF1ZTxVSUNsaWVudD4od2tDbGllbnQpKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZVVJQ2xpZW50LmggYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2VVSUNsaWVudC5oCmluZGV4IDYzNjM1NTU2
NGQwMGIxMTIyYTg3ZTIyOWEzMGI5NGQ3ZTk5ZTRlZjkuLjNkMzE1YmU2MTM0OGRkN2QyNDY3YmFh
OTRkZWE0YWU3MTFjMjc4MDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9DL1dLUGFnZVVJQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0Mv
V0tQYWdlVUlDbGllbnQuaApAQCAtMTM4LDggKzEzOCwxMCBAQCB0eXBlZGVmIGJvb2wgKCpXS1Bh
Z2VTaG91bGRBbGxvd0RldmljZU9yaWVudGF0aW9uQW5kTW90aW9uQWNjZXNzQ2FsbGJhY2spKFdL
UGFnZQogdHlwZWRlZiB2b2lkICgqV0tQYWdlUnVuV2ViQXV0aGVudGljYXRpb25QYW5lbENhbGxi
YWNrKSgpOwogdHlwZWRlZiB2b2lkICgqV0tQYWdlRGVjaWRlUG9saWN5Rm9yU3BlZWNoUmVjb2du
aXRpb25QZXJtaXNzaW9uUmVxdWVzdENhbGxiYWNrKShXS1BhZ2VSZWYgcGFnZSwgV0tTZWN1cml0
eU9yaWdpblJlZiB0b3BPcmlnaW4sIFdLU3BlZWNoUmVjb2duaXRpb25QZXJtaXNzaW9uQ2FsbGJh
Y2tSZWYgY2FsbGJhY2spOwogCit0eXBlZGVmIHZvaWQgKCpXS1BhZ2VEZWNpZGVQb2xpY3lGb3JN
ZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0Q2FsbGJhY2spKFdLUGFnZVJlZiBwYWdlLCBX
S1NlY3VyaXR5T3JpZ2luUmVmIHRvcE9yaWdpbiwgV0tTdHJpbmdSZWYga2V5U3lzdGVtLCBXS01l
ZGlhS2V5U3lzdGVtUGVybWlzc2lvbkNhbGxiYWNrUmVmIGNhbGxiYWNrKTsKKwogLy8gRGVwcmVj
YXRlZAotdHlwZWRlZiBXS1BhZ2VSZWYgKCpXS1BhZ2VDcmVhdGVOZXdQYWdlQ2FsbGJhY2tfZGVw
cmVjYXRlZEZvclVzZVdpdGhWMCkoV0tQYWdlUmVmIHBhZ2UsIFdLRGljdGlvbmFyeVJlZiBmZWF0
dXJlcywgV0tFdmVudE1vZGlmaWVycyBtb2RpZmllcnMsIFdLRXZlbnRNb3VzZUJ1dHRvbiBtb3Vz
ZUJ1dHRvbiwgY29uc3Qgdm9pZCAqY2xpZW50SW5mbyk7Cit0eXBlZGVmIFdLUGFnZVJlZiAoKldL
UGFnZUNyZWF0ZU5ld1BhZ2VDYWxsYmFja19kZXByZWNhdGVkRm9yVXNlV2l0aFYwKShXS1BhZ2VS
ZWYgcGFnZSwgV0tEaWN0aW9uYXJ5UmVmIGZlYXR1cmVzLCBXS0V2ZW50TW9kaWZpZXJzIG1vZGlm
aWVycywgV0tFdmVudE1vdXNlQnV0dG9uIG1vdXNlQnV0dG9uLCBjb25zdCB2b2lkKiBjbGllbnRJ
bmZvKTsKIHR5cGVkZWYgdm9pZCAgICAgICgqV0tQYWdlTW91c2VEaWRNb3ZlT3ZlckVsZW1lbnRD
YWxsYmFja19kZXByZWNhdGVkRm9yVXNlV2l0aFYwKShXS1BhZ2VSZWYgcGFnZSwgV0tFdmVudE1v
ZGlmaWVycyBtb2RpZmllcnMsIFdLVHlwZVJlZiB1c2VyRGF0YSwgY29uc3Qgdm9pZCAqY2xpZW50
SW5mbyk7CiB0eXBlZGVmIHZvaWQgKCpXS1BhZ2VNaXNzaW5nUGx1Z2luQnV0dG9uQ2xpY2tlZENh
bGxiYWNrX2RlcHJlY2F0ZWRGb3JVc2VXaXRoVjApKFdLUGFnZVJlZiBwYWdlLCBXS1N0cmluZ1Jl
ZiBtaW1lVHlwZSwgV0tTdHJpbmdSZWYgdXJsLCBXS1N0cmluZ1JlZiBwbHVnaW5zUGFnZVVSTCwg
Y29uc3Qgdm9pZCogY2xpZW50SW5mbyk7CiB0eXBlZGVmIHZvaWQgKCpXS1BhZ2VVbmF2YWlsYWJs
ZVBsdWdpbkJ1dHRvbkNsaWNrZWRDYWxsYmFja19kZXByZWNhdGVkRm9yVXNlV2l0aFYxKShXS1Bh
Z2VSZWYgcGFnZSwgV0tQbHVnaW5VbmF2YWlsYWJpbGl0eVJlYXNvbiBwbHVnaW5VbmF2YWlsYWJp
bGl0eVJlYXNvbiwgV0tTdHJpbmdSZWYgbWltZVR5cGUsIFdLU3RyaW5nUmVmIHVybCwgV0tTdHJp
bmdSZWYgcGx1Z2luc1BhZ2VVUkwsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pOwpAQCAtMTQ2NSw2
ICsxNDY3LDEyMSBAQCB0eXBlZGVmIHN0cnVjdCBXS1BhZ2VVSUNsaWVudFYxNSB7CiAgICAgCiB9
IFdLUGFnZVVJQ2xpZW50VjE1OwogCit0eXBlZGVmIHN0cnVjdCBXS1BhZ2VVSUNsaWVudFYxNiB7
CisgICAgV0tQYWdlVUlDbGllbnRCYXNlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBiYXNlOworCisgICAgLy8gVmVyc2lvbiAwLgorICAgIFdLUGFnZUNy
ZWF0ZU5ld1BhZ2VDYWxsYmFja19kZXByZWNhdGVkRm9yVXNlV2l0aFYwICAgICAgICAgICAgICAg
ICAgY3JlYXRlTmV3UGFnZV9kZXByZWNhdGVkRm9yVXNlV2l0aFYwOworICAgIFdLUGFnZVVJQ2xp
ZW50Q2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
c2hvd1BhZ2U7CisgICAgV0tQYWdlVUlDbGllbnRDYWxsYmFjayAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBjbG9zZTsKKyAgICBXS1BhZ2VUYWtlRm9jdXNDYWxs
YmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRha2VGb2N1
czsKKyAgICBXS1BhZ2VGb2N1c0NhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGZvY3VzOworICAgIFdLUGFnZVVuZm9jdXNDYWxsYmFjayAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5mb2N1czsKKyAgICBX
S1BhZ2VSdW5KYXZhU2NyaXB0QWxlcnRDYWxsYmFja19kZXByZWNhdGVkRm9yVXNlV2l0aFYwICAg
ICAgICAgICAgIHJ1bkphdmFTY3JpcHRBbGVydF9kZXByZWNhdGVkRm9yVXNlV2l0aFYwOworICAg
IFdLUGFnZVJ1bkphdmFTY3JpcHRDb25maXJtQ2FsbGJhY2tfZGVwcmVjYXRlZEZvclVzZVdpdGhW
MCAgICAgICAgICAgcnVuSmF2YVNjcmlwdENvbmZpcm1fZGVwcmVjYXRlZEZvclVzZVdpdGhWMDsK
KyAgICBXS1BhZ2VSdW5KYXZhU2NyaXB0UHJvbXB0Q2FsbGJhY2tfZGVwcmVjYXRlZEZvclVzZVdp
dGhWMCAgICAgICAgICAgIHJ1bkphdmFTY3JpcHRQcm9tcHRfZGVwcmVjYXRlZEZvclVzZVdpdGhW
MDsKKyAgICBXS1BhZ2VTZXRTdGF0dXNUZXh0Q2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHNldFN0YXR1c1RleHQ7CisgICAgV0tQYWdlTW91c2VEaWRNb3Zl
T3ZlckVsZW1lbnRDYWxsYmFja19kZXByZWNhdGVkRm9yVXNlV2l0aFYwICAgICAgICBtb3VzZURp
ZE1vdmVPdmVyRWxlbWVudF9kZXByZWNhdGVkRm9yVXNlV2l0aFYwOworICAgIFdLUGFnZU1pc3Np
bmdQbHVnaW5CdXR0b25DbGlja2VkQ2FsbGJhY2tfZGVwcmVjYXRlZEZvclVzZVdpdGhWMCAgICAg
bWlzc2luZ1BsdWdpbkJ1dHRvbkNsaWNrZWRfZGVwcmVjYXRlZEZvclVzZVdpdGhWMDsKKyAgICBX
S1BhZ2VEaWROb3RIYW5kbGVLZXlFdmVudENhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGRpZE5vdEhhbmRsZUtleUV2ZW50OworICAgIFdLUGFnZURpZE5vdEhhbmRsZVdo
ZWVsRXZlbnRDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlkTm90SGFu
ZGxlV2hlZWxFdmVudDsKKyAgICBXS1BhZ2VHZXRUb29sYmFyc0FyZVZpc2libGVDYWxsYmFjayAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvb2xiYXJzQXJlVmlzaWJsZTsKKyAgICBX
S1BhZ2VTZXRUb29sYmFyc0FyZVZpc2libGVDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHNldFRvb2xiYXJzQXJlVmlzaWJsZTsKKyAgICBXS1BhZ2VHZXRNZW51QmFySXNW
aXNpYmxlQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1lbnVCYXJJ
c1Zpc2libGU7CisgICAgV0tQYWdlU2V0TWVudUJhcklzVmlzaWJsZUNhbGxiYWNrICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRNZW51QmFySXNWaXNpYmxlOworICAgIFdLUGFn
ZUdldFN0YXR1c0JhcklzVmlzaWJsZUNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgc3RhdHVzQmFySXNWaXNpYmxlOworICAgIFdLUGFnZVNldFN0YXR1c0JhcklzVmlzaWJs
ZUNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0U3RhdHVzQmFySXNW
aXNpYmxlOworICAgIFdLUGFnZUdldElzUmVzaXphYmxlQ2FsbGJhY2sgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgaXNSZXNpemFibGU7CisgICAgV0tQYWdlU2V0SXNSZXNp
emFibGVDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRJ
c1Jlc2l6YWJsZTsKKyAgICBXS1BhZ2VHZXRXaW5kb3dGcmFtZUNhbGxiYWNrICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdldFdpbmRvd0ZyYW1lOworICAgIFdLUGFnZVNl
dFdpbmRvd0ZyYW1lQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgc2V0V2luZG93RnJhbWU7CisgICAgV0tQYWdlUnVuQmVmb3JlVW5sb2FkQ29uZmlybVBhbmVs
Q2FsbGJhY2tfZGVwcmVjYXRlZEZvclVzZVdpdGhWNiAgICBydW5CZWZvcmVVbmxvYWRDb25maXJt
UGFuZWxfZGVwcmVjYXRlZEZvclVzZVdpdGhWNjsKKyAgICBXS1BhZ2VVSUNsaWVudENhbGxiYWNr
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpZERyYXc7Cisg
ICAgV0tQYWdlVUlDbGllbnRDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBwYWdlRGlkU2Nyb2xsOworICAgIFdLUGFnZUV4Y2VlZGVkRGF0YWJhc2VR
dW90YUNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXhjZWVkZWREYXRh
YmFzZVF1b3RhOworICAgIFdLUGFnZVJ1bk9wZW5QYW5lbENhbGxiYWNrICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgcnVuT3BlblBhbmVsOworICAgIFdLUGFnZURlY2lk
ZVBvbGljeUZvckdlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3RDYWxsYmFjayAgICAgICAgICAg
ZGVjaWRlUG9saWN5Rm9yR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdDsKKyAgICBXS1BhZ2VI
ZWFkZXJIZWlnaHRDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGhlYWRlckhlaWdodDsKKyAgICBXS1BhZ2VGb290ZXJIZWlnaHRDYWxsYmFjayAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvb3RlckhlaWdodDsKKyAgICBXS1Bh
Z2VEcmF3SGVhZGVyQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGRyYXdIZWFkZXI7CisgICAgV0tQYWdlRHJhd0Zvb3RlckNhbGxiYWNrICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkcmF3Rm9vdGVyOworICAgIFdLUGFn
ZVByaW50RnJhbWVDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgcHJpbnRGcmFtZTsKKyAgICBXS1BhZ2VVSUNsaWVudENhbGxiYWNrICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJ1bk1vZGFsOworICAgIHZvaWQqICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgdW51c2VkMTsgLy8gVXNlZCB0byBiZSBkaWRDb21wbGV0ZVJ1YmJlckJhbmRGb3JNYWluRnJh
bWUKKyAgICBXS1BhZ2VTYXZlRGF0YVRvRmlsZUluRG93bmxvYWRzRm9sZGVyQ2FsbGJhY2sgICAg
ICAgICAgICAgICAgICAgICAgIHNhdmVEYXRhVG9GaWxlSW5Eb3dubG9hZHNGb2xkZXI7CisgICAg
dm9pZCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBzaG91bGRJbnRlcnJ1cHRKYXZhU2NyaXB0X3VuYXZhaWxhYmxlOworCisgICAg
Ly8gVmVyc2lvbiAxLgorICAgIFdLUGFnZUNyZWF0ZU5ld1BhZ2VDYWxsYmFja19kZXByZWNhdGVk
Rm9yVXNlV2l0aFYxICAgICAgICAgICAgICAgICAgY3JlYXRlTmV3UGFnZV9kZXByZWNhdGVkRm9y
VXNlV2l0aFYxOworICAgIFdLUGFnZU1vdXNlRGlkTW92ZU92ZXJFbGVtZW50Q2FsbGJhY2sgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgbW91c2VEaWRNb3ZlT3ZlckVsZW1lbnQ7CisgICAg
V0tQYWdlRGVjaWRlUG9saWN5Rm9yTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RDYWxsYmFj
ayAgICAgICAgICBkZWNpZGVQb2xpY3lGb3JOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdDsK
KyAgICBXS1BhZ2VVbmF2YWlsYWJsZVBsdWdpbkJ1dHRvbkNsaWNrZWRDYWxsYmFja19kZXByZWNh
dGVkRm9yVXNlV2l0aFYxIHVuYXZhaWxhYmxlUGx1Z2luQnV0dG9uQ2xpY2tlZF9kZXByZWNhdGVk
Rm9yVXNlV2l0aFYxOworCisgICAgLy8gVmVyc2lvbiAyLgorICAgIFdLUGFnZVNob3dDb2xvclBp
Y2tlckNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2hvd0Nv
bG9yUGlja2VyOworICAgIFdLUGFnZUhpZGVDb2xvclBpY2tlckNhbGxiYWNrICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgaGlkZUNvbG9yUGlja2VyOworICAgIFdLUGFnZVVu
YXZhaWxhYmxlUGx1Z2luQnV0dG9uQ2xpY2tlZENhbGxiYWNrICAgICAgICAgICAgICAgICAgICAg
ICAgdW5hdmFpbGFibGVQbHVnaW5CdXR0b25DbGlja2VkOworCisgICAgLy8gVmVyc2lvbiAzLgor
ICAgIFdLUGFnZVBpbm5lZFN0YXRlRGlkQ2hhbmdlQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgcGlubmVkU3RhdGVEaWRDaGFuZ2U7CisKKyAgICAvLyBWZXJzaW9uIDQu
CisgICAgdm9pZCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICB1bnVzZWQyOyAvLyBVc2VkIHRvIGJlIGRpZEJlZ2luVHJhY2tpbmdQ
b3RlbnRpYWxMb25nTW91c2VQcmVzcy4KKyAgICB2b2lkKiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVudXNlZDM7IC8vIFVzZWQg
dG8gYmUgZGlkUmVjb2duaXplTG9uZ01vdXNlUHJlc3MuCisgICAgdm9pZCogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnVzZWQ0
OyAvLyBVc2VkIHRvIGJlIGRpZENhbmNlbFRyYWNraW5nUG90ZW50aWFsTG9uZ01vdXNlUHJlc3Mu
CisgICAgV0tQYWdlSXNQbGF5aW5nQXVkaW9EaWRDaGFuZ2VDYWxsYmFjayAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBpc1BsYXlpbmdBdWRpb0RpZENoYW5nZTsKKworICAgIC8vIFZlcnNp
b24gNS4KKyAgICBXS1BhZ2VEZWNpZGVQb2xpY3lGb3JVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVz
dENhbGxiYWNrICAgICAgICAgICAgIGRlY2lkZVBvbGljeUZvclVzZXJNZWRpYVBlcm1pc3Npb25S
ZXF1ZXN0OworICAgIFdLUGFnZURpZENsaWNrQXV0b0ZpbGxCdXR0b25DYWxsYmFjayAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgZGlkQ2xpY2tBdXRvRmlsbEJ1dHRvbjsKKyAgICBXS1Bh
Z2VSdW5KYXZhU2NyaXB0QWxlcnRDYWxsYmFja19kZXByZWNhdGVkRm9yVXNlV2l0aFY1ICAgICAg
ICAgICAgIHJ1bkphdmFTY3JpcHRBbGVydF9kZXByZWNhdGVkRm9yVXNlV2l0aFY1OworICAgIFdL
UGFnZVJ1bkphdmFTY3JpcHRDb25maXJtQ2FsbGJhY2tfZGVwcmVjYXRlZEZvclVzZVdpdGhWNSAg
ICAgICAgICAgcnVuSmF2YVNjcmlwdENvbmZpcm1fZGVwcmVjYXRlZEZvclVzZVdpdGhWNTsKKyAg
ICBXS1BhZ2VSdW5KYXZhU2NyaXB0UHJvbXB0Q2FsbGJhY2tfZGVwcmVjYXRlZEZvclVzZVdpdGhW
NSAgICAgICAgICAgIHJ1bkphdmFTY3JpcHRQcm9tcHRfZGVwcmVjYXRlZEZvclVzZVdpdGhWNTsK
KyAgICB2b2lkKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHVudXNlZDU7IC8vIFVzZWQgdG8gYmUgbWVkaWFTZXNzaW9uTWV0YWRh
dGFEaWRDaGFuZ2UuCisKKyAgICAvLyBWZXJzaW9uIDYuCisgICAgV0tQYWdlQ3JlYXRlTmV3UGFn
ZUNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjcmVhdGVO
ZXdQYWdlOworICAgIFdLUGFnZVJ1bkphdmFTY3JpcHRBbGVydENhbGxiYWNrICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgcnVuSmF2YVNjcmlwdEFsZXJ0OworICAgIFdLUGFnZVJ1
bkphdmFTY3JpcHRDb25maXJtQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgcnVuSmF2YVNjcmlwdENvbmZpcm07CisgICAgV0tQYWdlUnVuSmF2YVNjcmlwdFByb21wdENh
bGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBydW5KYXZhU2NyaXB0UHJv
bXB0OworICAgIFdLQ2hlY2tVc2VyTWVkaWFQZXJtaXNzaW9uQ2FsbGJhY2sgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgY2hlY2tVc2VyTWVkaWFQZXJtaXNzaW9uRm9yT3JpZ2luOwor
CisgICAgLy8gVmVyc2lvbiA3LgorICAgIFdLUGFnZVJ1bkJlZm9yZVVubG9hZENvbmZpcm1QYW5l
bENhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgcnVuQmVmb3JlVW5sb2FkQ29uZmly
bVBhbmVsOworICAgIFdLRnVsbHNjcmVlbk1heVJldHVyblRvSW5saW5lQ2FsbGJhY2sgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgZnVsbHNjcmVlbk1heVJldHVyblRvSW5saW5lOworCisg
ICAgLy8gVmVyc2lvbiA4LgorICAgIFdLUmVxdWVzdFBvaW50ZXJMb2NrQ2FsbGJhY2sgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdFBvaW50ZXJMb2NrOworICAg
IFdLRGlkTG9zZVBvaW50ZXJMb2NrQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgZGlkTG9zZVBvaW50ZXJMb2NrOworCisgICAgLy8gVmVyc2lvbiA5LgorICAg
IFdLSGFuZGxlQXV0b3BsYXlFdmVudENhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgaGFuZGxlQXV0b3BsYXlFdmVudDsKKworICAgIC8vIFZlcnNpb24gMTAuCisg
ICAgV0tIYXNWaWRlb0luUGljdHVyZUluUGljdHVyZURpZENoYW5nZUNhbGxiYWNrICAgICAgICAg
ICAgICAgICAgICAgICBoYXNWaWRlb0luUGljdHVyZUluUGljdHVyZURpZENoYW5nZTsKKyAgICBX
S0RpZEV4Y2VlZEJhY2tncm91bmRSZXNvdXJjZUxpbWl0V2hpbGVJbkZvcmVncm91bmRDYWxsYmFj
ayAgICAgICAgIGRpZEV4Y2VlZEJhY2tncm91bmRSZXNvdXJjZUxpbWl0V2hpbGVJbkZvcmVncm91
bmQ7CisKKyAgICAvLyBWZXJzaW9uIDExLgorICAgIFdLUGFnZURpZFJlc2lnbklucHV0RWxlbWVu
dFN0cm9uZ1Bhc3N3b3JkQXBwZWFyYW5jZUNhbGxiYWNrICAgICAgICAgZGlkUmVzaWduSW5wdXRF
bGVtZW50U3Ryb25nUGFzc3dvcmRBcHBlYXJhbmNlOworCisgICAgLy8gVmVyc2lvbiAxMi4KKyAg
ICBXS1BhZ2VSZXF1ZXN0U3RvcmFnZUFjY2Vzc0NvbmZpcm1DYWxsYmFjayAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHJlcXVlc3RTdG9yYWdlQWNjZXNzQ29uZmlybTsKKworICAgIC8vIFZlcnNp
b24gMTMuCisgICAgV0tQYWdlU2hvdWxkQWxsb3dEZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvbkFj
Y2Vzc0NhbGxiYWNrICAgICAgICAgICBzaG91bGRBbGxvd0RldmljZU9yaWVudGF0aW9uQW5kTW90
aW9uQWNjZXNzOworCisgICAgLy8gVmVyc2lvbiAxNC4KKyAgICBXS1BhZ2VSdW5XZWJBdXRoZW50
aWNhdGlvblBhbmVsQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJ1bldlYkF1
dGhlbnRpY2F0aW9uUGFuZWw7CisKKyAgICAvLyBWZXJzaW9uIDE1LgorICAgIFdLUGFnZURlY2lk
ZVBvbGljeUZvclNwZWVjaFJlY29nbml0aW9uUGVybWlzc2lvblJlcXVlc3RDYWxsYmFjayAgICAg
ZGVjaWRlUG9saWN5Rm9yU3BlZWNoUmVjb2duaXRpb25QZXJtaXNzaW9uUmVxdWVzdDsKKworICAg
IC8vIFZlcnNpb24gMTYuCisgICAgV0tQYWdlRGVjaWRlUG9saWN5Rm9yTWVkaWFLZXlTeXN0ZW1Q
ZXJtaXNzaW9uUmVxdWVzdENhbGxiYWNrICAgICAgICBkZWNpZGVQb2xpY3lGb3JNZWRpYUtleVN5
c3RlbVBlcm1pc3Npb25SZXF1ZXN0OworCit9IFdLUGFnZVVJQ2xpZW50VjE2OworCisKICNpZmRl
ZiBfX2NwbHVzcGx1cwogfQogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvZ2xpYi9XZWJLaXRNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0LmNwcCBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdE1lZGlhS2V5U3lzdGVtUGVy
bWlzc2lvblJlcXVlc3QuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjAyYWIwZmEzY2Y3MjFiMDhhYWU3NDZkZDll
ZDYyYTZmZWZhMmVlYjgKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvZ2xpYi9XZWJLaXRNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0LmNwcApAQCAt
MCwwICsxLDEyNCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBJZ2FsaWEgUy5MLgorICoK
KyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBp
dCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5
IEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0
d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3Ig
KGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIGxpYnJhcnkg
aXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1
dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5
IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBP
U0UuICBTZWUgdGhlIEdOVQorICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBt
b3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0
aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlz
IGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAq
IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwg
RmlmdGggRmxvb3IsCisgKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqLworCisjaW5j
bHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV2ViS2l0TWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9u
UmVxdWVzdC5oIgorCisjaW5jbHVkZSAiTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdC5o
IgorI2luY2x1ZGUgIldlYktpdE1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RQcml2YXRl
LmgiCisjaW5jbHVkZSAiV2ViS2l0UGVybWlzc2lvblJlcXVlc3QuaCIKKyNpbmNsdWRlIDx3dGYv
Z2xpYi9XVEZHVHlwZS5oPgorCit1c2luZyBuYW1lc3BhY2UgV2ViS2l0OworCisvKioKKyAqIFNF
Q1RJT046IFdlYktpdE1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3QKKyAqIEBTaG9ydF9k
ZXNjcmlwdGlvbjogQSBwZXJtaXNzaW9uIHJlcXVlc3QgZm9yIHVzaW5nIGFuIEVNRSBDb250ZW50
IERlY3J5cHRpb24gTW9kdWxlCisgKiBAVGl0bGU6IFdlYktpdE1lZGlhS2V5U3lzdGVtUGVybWlz
c2lvblJlcXVlc3QKKyAqIEBTZWVfYWxzbzogI1dlYktpdFBlcm1pc3Npb25SZXF1ZXN0LCAjV2Vi
S2l0V2ViVmlldworICoKKyAqIFdlYktpdE1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3Qg
cmVwcmVzZW50cyBhIHJlcXVlc3QgZm9yIHBlcm1pc3Npb24gdG8gZGVjaWRlIHdoZXRoZXIKKyAq
IFdlYktpdCBzaG91bGQgdXNlIHRoZSBnaXZlbiBDRE0gdG8gYWNjZXNzIHByb3RlY3RlZCBtZWRp
YSB3aGVuIHJlcXVlc3RlZCB0aHJvdWdoIHRoZQorICogTWVkaWFLZXlTeXN0ZW0gQVBJLgorICoK
KyAqIFdoZW4gYSBXZWJLaXRNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0IGlzIG5vdCBo
YW5kbGVkIGJ5IHRoZSB1c2VyLAorICogaXQgaXMgZGVuaWVkIGJ5IGRlZmF1bHQuCisgKgorICog
V2hlbiBoYW5kbGluZyB0aGlzIHBlcm1pc3Npb24gcmVxdWVzdCB0aGUgYXBwbGljYXRpb24gbWF5
IHBlcmZvcm0gYWRkaXRpb25hbCBpbnN0YWxsYXRpb24gb2YgdGhlCisgKiByZXF1ZXN0ZWQgQ0RN
LCB1bmxlc3MgaXQgaXMgYWxyZWFkeSBwcmVzZW50IG9uIHRoZSBob3N0IHN5c3RlbS4KKyAqLwor
CitzdGF0aWMgdm9pZCB3ZWJraXRfcGVybWlzc2lvbl9yZXF1ZXN0X2ludGVyZmFjZV9pbml0KFdl
YktpdFBlcm1pc3Npb25SZXF1ZXN0SWZhY2UqKTsKKworc3RydWN0IF9XZWJLaXRNZWRpYUtleVN5
c3RlbVBlcm1pc3Npb25SZXF1ZXN0UHJpdmF0ZSB7CisgICAgUmVmUHRyPE1lZGlhS2V5U3lzdGVt
UGVybWlzc2lvblJlcXVlc3Q+IHJlcXVlc3Q7CisgICAgYm9vbCBtYWRlRGVjaXNpb247Cit9Owor
CitXRUJLSVRfREVGSU5FX1RZUEVfV0lUSF9DT0RFKAorICAgIFdlYktpdE1lZGlhS2V5U3lzdGVt
UGVybWlzc2lvblJlcXVlc3QsIHdlYmtpdF9tZWRpYV9rZXlfc3lzdGVtX3Blcm1pc3Npb25fcmVx
dWVzdCwgR19UWVBFX09CSkVDVCwKKyAgICBHX0lNUExFTUVOVF9JTlRFUkZBQ0UoV0VCS0lUX1RZ
UEVfUEVSTUlTU0lPTl9SRVFVRVNULCB3ZWJraXRfcGVybWlzc2lvbl9yZXF1ZXN0X2ludGVyZmFj
ZV9pbml0KSkKKworc3RhdGljIHZvaWQgd2Via2l0TWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVx
dWVzdEFsbG93KFdlYktpdFBlcm1pc3Npb25SZXF1ZXN0KiByZXF1ZXN0KQoreworICAgIEFTU0VS
VChXRUJLSVRfSVNfTUVESUFfS0VZX1NZU1RFTV9QRVJNSVNTSU9OX1JFUVVFU1QocmVxdWVzdCkp
OworCisgICAgV2ViS2l0TWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdFByaXZhdGUqIHBy
aXYgPSBXRUJLSVRfTUVESUFfS0VZX1NZU1RFTV9QRVJNSVNTSU9OX1JFUVVFU1QocmVxdWVzdCkt
PnByaXY7CisKKyAgICAvLyBPbmx5IG9uZSBkZWNpc2lvbiBhdCBhIHRpbWUuCisgICAgaWYgKHBy
aXYtPm1hZGVEZWNpc2lvbikKKyAgICAgICAgcmV0dXJuOworCisgICAgcHJpdi0+cmVxdWVzdC0+
Y29tcGxldGUodHJ1ZSk7CisgICAgcHJpdi0+bWFkZURlY2lzaW9uID0gdHJ1ZTsKK30KKworc3Rh
dGljIHZvaWQgd2Via2l0TWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdERlbnkoV2ViS2l0
UGVybWlzc2lvblJlcXVlc3QqIHJlcXVlc3QpCit7CisgICAgQVNTRVJUKFdFQktJVF9JU19NRURJ
QV9LRVlfU1lTVEVNX1BFUk1JU1NJT05fUkVRVUVTVChyZXF1ZXN0KSk7CisKKyAgICBXZWJLaXRN
ZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0UHJpdmF0ZSogcHJpdiA9IFdFQktJVF9NRURJ
QV9LRVlfU1lTVEVNX1BFUk1JU1NJT05fUkVRVUVTVChyZXF1ZXN0KS0+cHJpdjsKKworICAgIC8v
IE9ubHkgb25lIGRlY2lzaW9uIGF0IGEgdGltZS4KKyAgICBpZiAocHJpdi0+bWFkZURlY2lzaW9u
KQorICAgICAgICByZXR1cm47CisKKyAgICBwcml2LT5yZXF1ZXN0LT5jb21wbGV0ZShmYWxzZSk7
CisgICAgcHJpdi0+bWFkZURlY2lzaW9uID0gdHJ1ZTsKK30KKworc3RhdGljIHZvaWQgd2Via2l0
X3Blcm1pc3Npb25fcmVxdWVzdF9pbnRlcmZhY2VfaW5pdChXZWJLaXRQZXJtaXNzaW9uUmVxdWVz
dElmYWNlKiBpZmFjZSkKK3sKKyAgICBpZmFjZS0+YWxsb3cgPSB3ZWJraXRNZWRpYUtleVN5c3Rl
bVBlcm1pc3Npb25SZXF1ZXN0QWxsb3c7CisgICAgaWZhY2UtPmRlbnkgPSB3ZWJraXRNZWRpYUtl
eVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0RGVueTsKK30KKworc3RhdGljIHZvaWQgd2Via2l0TWVk
aWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdERpc3Bvc2UoR09iamVjdCogb2JqZWN0KQorewor
ICAgIC8vIERlZmF1bHQgYmVoYXZpb3VyIHdoZW4gbm8gZGVjaXNpb24gaGFzIGJlZW4gbWFkZSBp
cyBkZW55aW5nIHRoZSByZXF1ZXN0LgorICAgIHdlYmtpdE1lZGlhS2V5U3lzdGVtUGVybWlzc2lv
blJlcXVlc3REZW55KFdFQktJVF9QRVJNSVNTSU9OX1JFUVVFU1Qob2JqZWN0KSk7CisgICAgR19P
QkpFQ1RfQ0xBU1Mod2Via2l0X21lZGlhX2tleV9zeXN0ZW1fcGVybWlzc2lvbl9yZXF1ZXN0X3Bh
cmVudF9jbGFzcyktPmRpc3Bvc2Uob2JqZWN0KTsKK30KKworc3RhdGljIHZvaWQgd2Via2l0X21l
ZGlhX2tleV9zeXN0ZW1fcGVybWlzc2lvbl9yZXF1ZXN0X2NsYXNzX2luaXQoV2ViS2l0TWVkaWFL
ZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdENsYXNzKiBrbGFzcykKK3sKKyAgICBHT2JqZWN0Q2xh
c3MqIG9iamVjdENsYXNzID0gR19PQkpFQ1RfQ0xBU1Moa2xhc3MpOworICAgIG9iamVjdENsYXNz
LT5kaXNwb3NlID0gd2Via2l0TWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdERpc3Bvc2U7
Cit9CisKK1dlYktpdE1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3QqIHdlYmtpdE1lZGlh
S2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RDcmVhdGUoTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9u
UmVxdWVzdCogcmVxdWVzdCkKK3sKKyAgICBXZWJLaXRNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25S
ZXF1ZXN0KiBwZXJtaXNzaW9uUmVxdWVzdCA9IFdFQktJVF9NRURJQV9LRVlfU1lTVEVNX1BFUk1J
U1NJT05fUkVRVUVTVChnX29iamVjdF9uZXcoV0VCS0lUX1RZUEVfTUVESUFfS0VZX1NZU1RFTV9Q
RVJNSVNTSU9OX1JFUVVFU1QsIE5VTEwpKTsKKyAgICBwZXJtaXNzaW9uUmVxdWVzdC0+cHJpdi0+
cmVxdWVzdCA9IHJlcXVlc3Q7CisgICAgcmV0dXJuIHBlcm1pc3Npb25SZXF1ZXN0OworfQorCisv
KioKKyAqIHdlYmtpdF9tZWRpYV9rZXlfc3lzdGVtX3Blcm1pc3Npb25fZ2V0X25hbWU6CisgKiBA
cmVxdWVzdDogYSAjV2ViS2l0TWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdAorICoKKyAq
IFJldHVybnM6IFRoZSBuYW1lIG9mIHRoZSBrZXkgc3lzdGVtIGZvciB3aGljaCBhY2Nlc3MgcGVy
bWlzc2lvbiBpcyBiZWluZyByZXF1ZXN0ZWQuCisgKgorICogU2luY2U6IDIuMzQKKyAqLworY29u
c3QgZ2NoYXIqCit3ZWJraXRfbWVkaWFfa2V5X3N5c3RlbV9wZXJtaXNzaW9uX2dldF9uYW1lKFdl
YktpdE1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3QqIHJlcXVlc3QpCit7CisgICAgcmV0
dXJuIHJlcXVlc3QtPnByaXYtPnJlcXVlc3QtPmtleVN5c3RlbSgpLnV0ZjgoKS5kYXRhKCk7Cit9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRNZWRp
YUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0UHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL2dsaWIvV2ViS2l0TWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdFByaXZh
dGUuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi43ZTM2ZTRlYmNlMWFlZThjYTgzYjBmM2NiOTkxM2I3M2IwNTYwNDk5
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2Vi
S2l0TWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdFByaXZhdGUuaApAQCAtMCwwICsxLDI1
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIElnYWxpYSBTLkwuCisgKgorICogVGhpcyBs
aWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgor
ICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQ
dWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5k
YXRpb247IGVpdGhlcgorICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBv
cHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmli
dXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQg
QU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1F
UkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0
aGUgR05VCisgKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWls
cy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGli
cmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsg
c2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICogdGhlIEZyZWUg
U29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9v
ciwKKyAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorICovCisKKyNwcmFnbWEgb25jZQor
CisjaW5jbHVkZSAiTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdC5oIgorI2luY2x1ZGUg
IldlYktpdE1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3QuaCIKKworV2ViS2l0TWVkaWFL
ZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdCogd2Via2l0TWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9u
UmVxdWVzdENyZWF0ZShXZWJLaXQ6Ok1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3QqKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdFVJQ2xp
ZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdFVJQ2xpZW50
LmNwcAppbmRleCAyY2ViMmI0ZjQ5ZjQwOWJiZTZlNjgxMDExNWUzNmQwYzg0ZjgzYjVkLi5mYzY5
ZDY0ODEwNGFmMzFiZWIwYzBmMDU1YTg3MmM2MTk3MGI3NTBlIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRVSUNsaWVudC5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0VUlDbGllbnQuY3BwCkBAIC0yNSw2ICsy
NSw3IEBACiAjaW5jbHVkZSAiV2ViS2l0RGV2aWNlSW5mb1Blcm1pc3Npb25SZXF1ZXN0UHJpdmF0
ZS5oIgogI2luY2x1ZGUgIldlYktpdEZpbGVDaG9vc2VyUmVxdWVzdFByaXZhdGUuaCIKICNpbmNs
dWRlICJXZWJLaXRHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0UHJpdmF0ZS5oIgorI2luY2x1
ZGUgIldlYktpdE1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RQcml2YXRlLmgiCiAjaW5j
bHVkZSAiV2ViS2l0TmF2aWdhdGlvbkFjdGlvblByaXZhdGUuaCIKICNpbmNsdWRlICJXZWJLaXRO
b3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdFByaXZhdGUuaCIKICNpbmNsdWRlICJXZWJLaXRQ
b2ludGVyTG9ja1Blcm1pc3Npb25SZXF1ZXN0UHJpdmF0ZS5oIgpAQCAtMjgzLDYgKzI4NCwxMiBA
QCBwcml2YXRlOgogICAgICAgICB3ZWJraXRXZWJWaWV3TWFrZVBlcm1pc3Npb25SZXF1ZXN0KG1f
d2ViVmlldywgV0VCS0lUX1BFUk1JU1NJT05fUkVRVUVTVChnZW9sb2NhdGlvblBlcm1pc3Npb25S
ZXF1ZXN0LmdldCgpKSk7CiAgICAgfQogCisgICAgdm9pZCBkZWNpZGVQb2xpY3lGb3JNZWRpYUtl
eVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0KFdlYlBhZ2VQcm94eSYsIEFQSTo6U2VjdXJpdHlPcmln
aW4mIHRvcExldmVsRG9jdW1lbnRPcmlnaW4sIGNvbnN0IFdURjo6U3RyaW5nJiBrZXlTeXN0ZW0s
IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYgY29tcGxldGlvbkhhbmRsZXIpIGZpbmFs
CisgICAgeworICAgICAgICBhdXRvIHBlcm1pc3Npb25SZXF1ZXN0ID0gYWRvcHRHUmVmKHdlYmtp
dE1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RDcmVhdGUoTWVkaWFLZXlTeXN0ZW1QZXJt
aXNzaW9uUmVxdWVzdDo6Y3JlYXRlKGtleVN5c3RlbSwgc3RkOjpleGNoYW5nZShjb21wbGV0aW9u
SGFuZGxlciwgbnVsbHB0cikpLnB0cigpKSk7CisgICAgICAgIHdlYmtpdFdlYlZpZXdNYWtlUGVy
bWlzc2lvblJlcXVlc3QobV93ZWJWaWV3LCBXRUJLSVRfUEVSTUlTU0lPTl9SRVFVRVNUKHBlcm1p
c3Npb25SZXF1ZXN0LmdldCgpKSk7CisgICAgfQorCiAgICAgdm9pZCBkZWNpZGVQb2xpY3lGb3JV
c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdChXZWJQYWdlUHJveHkmLCBXZWJGcmFtZVByb3h5Jiwg
QVBJOjpTZWN1cml0eU9yaWdpbiYgdXNlck1lZGlhRG9jdW1lbnRPcmlnaW4sIEFQSTo6U2VjdXJp
dHlPcmlnaW4mIHRvcExldmVsRG9jdW1lbnRPcmlnaW4sIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1
ZXN0UHJveHkmIHBlcm1pc3Npb25SZXF1ZXN0KSBmaW5hbAogICAgIHsKICAgICAgICAgR1JlZlB0
cjxXZWJLaXRVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdD4gdXNlck1lZGlhUGVybWlzc2lvblJl
cXVlc3QgPSBhZG9wdEdSZWYod2Via2l0VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RDcmVhdGUo
cGVybWlzc2lvblJlcXVlc3QsIHVzZXJNZWRpYURvY3VtZW50T3JpZ2luLCB0b3BMZXZlbERvY3Vt
ZW50T3JpZ2luKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3Rr
L1dlYktpdEF1dG9jbGVhbnVwcy5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0ay9X
ZWJLaXRBdXRvY2xlYW51cHMuaAppbmRleCA1ODhmNGMxNmYzMzUyM2U5MWNiZTM4ZmNjMGY2YTlh
NThkMGM3Y2E2Li43ZTUyYmZhOGI3YzRmODdhODBkZmYxYjIzNzEzYmJmNTFiZmI4MDRkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdEF1dG9jbGVhbnVw
cy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0QXV0b2NsZWFu
dXBzLmgKQEAgLTQ1LDYgKzQ1LDcgQEAgR19ERUZJTkVfQVVUT1BUUl9DTEVBTlVQX0ZVTkMgKFdl
YktpdEdlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3QsIGdfb2JqZWN0X3VucmUKIEdfREVGSU5F
X0FVVE9QVFJfQ0xFQU5VUF9GVU5DIChXZWJLaXRIaXRUZXN0UmVzdWx0LCBnX29iamVjdF91bnJl
ZikKIEdfREVGSU5FX0FVVE9QVFJfQ0xFQU5VUF9GVU5DIChXZWJLaXRJbnB1dE1ldGhvZENvbnRl
eHQsIGdfb2JqZWN0X3VucmVmKQogR19ERUZJTkVfQVVUT1BUUl9DTEVBTlVQX0ZVTkMgKFdlYktp
dEluc3RhbGxNaXNzaW5nTWVkaWFQbHVnaW5zUGVybWlzc2lvblJlcXVlc3QsIGdfb2JqZWN0X3Vu
cmVmKQorR19ERUZJTkVfQVVUT1BUUl9DTEVBTlVQX0ZVTkMgKFdlYktpdE1lZGlhS2V5U3lzdGVt
UGVybWlzc2lvblJlcXVlc3QsIGdfb2JqZWN0X3VucmVmKQogR19ERUZJTkVfQVVUT1BUUl9DTEVB
TlVQX0ZVTkMgKFdlYktpdE5hdmlnYXRpb25Qb2xpY3lEZWNpc2lvbiwgZ19vYmplY3RfdW5yZWYp
CiBHX0RFRklORV9BVVRPUFRSX0NMRUFOVVBfRlVOQyAoV2ViS2l0Tm90aWZpY2F0aW9uLCBnX29i
amVjdF91bnJlZikKIEdfREVGSU5FX0FVVE9QVFJfQ0xFQU5VUF9GVU5DIChXZWJLaXROb3RpZmlj
YXRpb25QZXJtaXNzaW9uUmVxdWVzdCwgZ19vYmplY3RfdW5yZWYpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdE1lZGlhS2V5U3lzdGVtUGVybWlzc2lv
blJlcXVlc3QuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0TWVkaWFL
ZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQxZjE0OTMzNmY0NTQ4MzY5
MGI2NWQ4M2I4ZDYyMWViOWY0YWYzZDkKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdE1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3Qu
aApAQCAtMCwwICsxLDY3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIElnYWxpYSBTLkwu
CisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmli
dXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExp
YnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVl
IFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNl
LCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgbGli
cmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAor
ICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2Fy
cmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIg
UFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2Ug
Zm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5
IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRo
IHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0
bworICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3Ry
ZWV0LCBGaWZ0aCBGbG9vciwKKyAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorICovCisK
KyNpZiAhZGVmaW5lZChfX1dFQktJVDJfSF9JTlNJREVfXykgJiYgIWRlZmluZWQoV0VCS0lUMl9D
T01QSUxBVElPTikKKyNlcnJvciAiT25seSA8d2Via2l0Mi93ZWJraXQyLmg+IGNhbiBiZSBpbmNs
dWRlZCBkaXJlY3RseS4iCisjZW5kaWYKKworI2lmbmRlZiBXZWJLaXRNZWRpYUtleVN5c3RlbVBl
cm1pc3Npb25SZXF1ZXN0X2gKKyNkZWZpbmUgV2ViS2l0TWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9u
UmVxdWVzdF9oCisKKyNpbmNsdWRlIDxnbGliLW9iamVjdC5oPgorI2luY2x1ZGUgPHdlYmtpdDIv
V2ViS2l0RGVmaW5lcy5oPgorCitHX0JFR0lOX0RFQ0xTCisKKyNkZWZpbmUgV0VCS0lUX1RZUEVf
TUVESUFfS0VZX1NZU1RFTV9QRVJNSVNTSU9OX1JFUVVFU1QgICAgICAgICAgICAod2Via2l0X21l
ZGlhX2tleV9zeXN0ZW1fcGVybWlzc2lvbl9yZXF1ZXN0X2dldF90eXBlKCkpCisjZGVmaW5lIFdF
QktJVF9NRURJQV9LRVlfU1lTVEVNX1BFUk1JU1NJT05fUkVRVUVTVChvYmopICAgICAgICAgICAg
KEdfVFlQRV9DSEVDS19JTlNUQU5DRV9DQVNUKChvYmopLCBXRUJLSVRfVFlQRV9NRURJQV9LRVlf
U1lTVEVNX1BFUk1JU1NJT05fUkVRVUVTVCwgV2ViS2l0TWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9u
UmVxdWVzdCkpCisjZGVmaW5lIFdFQktJVF9NRURJQV9LRVlfU1lTVEVNX1BFUk1JU1NJT05fUkVR
VUVTVF9DTEFTUyhrbGFzcykgICAgKEdfVFlQRV9DSEVDS19DTEFTU19DQVNUKChrbGFzcyksICBX
RUJLSVRfVFlQRV9NRURJQV9LRVlfU1lTVEVNX1BFUk1JU1NJT05fUkVRVUVTVCwgV2ViS2l0TWVk
aWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdENsYXNzKSkKKyNkZWZpbmUgV0VCS0lUX0lTX01F
RElBX0tFWV9TWVNURU1fUEVSTUlTU0lPTl9SRVFVRVNUKG9iaikgICAgICAgICAoR19UWVBFX0NI
RUNLX0lOU1RBTkNFX1RZUEUoKG9iaiksIFdFQktJVF9UWVBFX01FRElBX0tFWV9TWVNURU1fUEVS
TUlTU0lPTl9SRVFVRVNUKSkKKyNkZWZpbmUgV0VCS0lUX0lTX01FRElBX0tFWV9TWVNURU1fUEVS
TUlTU0lPTl9SRVFVRVNUX0NMQVNTKGtsYXNzKSAoR19UWVBFX0NIRUNLX0NMQVNTX1RZUEUoKGts
YXNzKSwgIFdFQktJVF9UWVBFX01FRElBX0tFWV9TWVNURU1fUEVSTUlTU0lPTl9SRVFVRVNUKSkK
KyNkZWZpbmUgV0VCS0lUX01FRElBX0tFWV9TWVNURU1fUEVSTUlTU0lPTl9SRVFVRVNUX0dFVF9D
TEFTUyhvYmopICAoR19UWVBFX0lOU1RBTkNFX0dFVF9DTEFTUygob2JqKSwgIFdFQktJVF9UWVBF
X01FRElBX0tFWV9TWVNURU1fUEVSTUlTU0lPTl9SRVFVRVNULCBXZWJLaXRNZWRpYUtleVN5c3Rl
bVBlcm1pc3Npb25SZXF1ZXN0Q2xhc3MpKQorCit0eXBlZGVmIHN0cnVjdCBfV2ViS2l0TWVkaWFL
ZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdCAgICAgICAgV2ViS2l0TWVkaWFLZXlTeXN0ZW1QZXJt
aXNzaW9uUmVxdWVzdDsKK3R5cGVkZWYgc3RydWN0IF9XZWJLaXRNZWRpYUtleVN5c3RlbVBlcm1p
c3Npb25SZXF1ZXN0Q2xhc3MgICBXZWJLaXRNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0
Q2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfV2ViS2l0TWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVx
dWVzdFByaXZhdGUgV2ViS2l0TWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdFByaXZhdGU7
CisKK3N0cnVjdCBfV2ViS2l0TWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdCB7CisgICAg
R09iamVjdCBwYXJlbnQ7CisKKyAgICAvKjwgcHJpdmF0ZSA+Ki8KKyAgICBXZWJLaXRNZWRpYUtl
eVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0UHJpdmF0ZSAqcHJpdjsKK307CisKK3N0cnVjdCBfV2Vi
S2l0TWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdENsYXNzIHsKKyAgICBHT2JqZWN0Q2xh
c3MgcGFyZW50X2NsYXNzOworCisgICAgdm9pZCAoKl93ZWJraXRfcmVzZXJ2ZWQwKSAodm9pZCk7
CisgICAgdm9pZCAoKl93ZWJraXRfcmVzZXJ2ZWQxKSAodm9pZCk7CisgICAgdm9pZCAoKl93ZWJr
aXRfcmVzZXJ2ZWQyKSAodm9pZCk7CisgICAgdm9pZCAoKl93ZWJraXRfcmVzZXJ2ZWQzKSAodm9p
ZCk7Cit9OworCitXRUJLSVRfQVBJIEdUeXBlCit3ZWJraXRfbWVkaWFfa2V5X3N5c3RlbV9wZXJt
aXNzaW9uX3JlcXVlc3RfZ2V0X3R5cGUgKHZvaWQpOworCitXRUJLSVRfQVBJIGNvbnN0IGdjaGFy
Kgord2Via2l0X21lZGlhX2tleV9zeXN0ZW1fcGVybWlzc2lvbl9nZXRfbmFtZSAoV2ViS2l0TWVk
aWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdCAqcmVxdWVzdCk7CisKK0dfRU5EX0RFQ0xTCisK
KyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0ay9kb2Nz
L3dlYmtpdDJndGstNC4wLXNlY3Rpb25zLnR4dCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9ndGsvZG9jcy93ZWJraXQyZ3RrLTQuMC1zZWN0aW9ucy50eHQKaW5kZXggZjZmNWI4YzUxZTZj
OThiY2JiNmU1ODk0YTBiNjg3OGUyMWNjODc1Yi4uZjFjZmE0NGM3Mjc4MzRiZDEwYmE3N2U3OTMz
ZTkwZjg5OWY4MGE3YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0
ay9kb2NzL3dlYmtpdDJndGstNC4wLXNlY3Rpb25zLnR4dAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvZ3RrL2RvY3Mvd2Via2l0Mmd0ay00LjAtc2VjdGlvbnMudHh0CkBAIC04MDQs
NiArODA0LDI1IEBAIFdlYktpdFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJpdmF0ZQogd2Vi
a2l0X3VzZXJfbWVkaWFfcGVybWlzc2lvbl9yZXF1ZXN0X2dldF90eXBlCiA8L1NFQ1RJT04+CiAK
KzxTRUNUSU9OPgorPEZJTEU+V2ViS2l0TWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdDwv
RklMRT4KK1dlYktpdE1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3QKK3dlYmtpdF9tZWRp
YV9rZXlfc3lzdGVtX3Blcm1pc3Npb25fZ2V0X25hbWUKKworPFNVQlNFQ1RJT04gU3RhbmRhcmQ+
CitXZWJLaXRNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0Q2xhc3MKK1dFQktJVF9UWVBF
X01FRElBX0tFWV9TWVNURU1fUEVSTUlTU0lPTl9SRVFVRVNUCitXRUJLSVRfTUVESUFfS0VZX1NZ
U1RFTV9QRVJNSVNTSU9OX1JFUVVFU1QKK1dFQktJVF9JU19NRURJQV9LRVlfU1lTVEVNX1BFUk1J
U1NJT05fUkVRVUVTVAorV0VCS0lUX01FRElBX0tFWV9TWVNURU1fUEVSTUlTU0lPTl9SRVFVRVNU
X0NMQVNTCitXRUJLSVRfSVNfTUVESUFfS0VZX1NZU1RFTV9QRVJNSVNTSU9OX1JFUVVFU1RfQ0xB
U1MKK1dFQktJVF9NRURJQV9LRVlfU1lTVEVNX1BFUk1JU1NJT05fUkVRVUVTVF9HRVRfQ0xBU1MK
KworPFNVQlNFQ1RJT04gUHJpdmF0ZT4KK1dlYktpdE1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJl
cXVlc3RQcml2YXRlCit3ZWJraXRfbWVkaWFfa2V5X3N5c3RlbV9wZXJtaXNzaW9uX3JlcXVlc3Rf
Z2V0X3R5cGUKKzwvU0VDVElPTj4KKwogPFNFQ1RJT04+CiA8RklMRT5XZWJLaXROb3RpZmljYXRp
b248L0ZJTEU+CiBXZWJLaXROb3RpZmljYXRpb24KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9ndGsvZG9jcy93ZWJraXQyZ3RrLWRvY3Muc2dtbCBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9ndGsvZG9jcy93ZWJraXQyZ3RrLWRvY3Muc2dtbAppbmRleCBkOGFj
ODIzMzMyZjI5NDYyOWY4NzUyMzBkNjJkNjcyYmRkMjlkZjM5Li40MTFlZTY0ZDgzMzMzZjA1MjMw
NmM1Yjk5ZDA3M2JiNDI3OTc4YTY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvZ3RrL2RvY3Mvd2Via2l0Mmd0ay1kb2NzLnNnbWwKKysrIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL2d0ay9kb2NzL3dlYmtpdDJndGstZG9jcy5zZ21sCkBAIC0yNCw2ICsyNCw3
IEBACiAgICAgPHhpOmluY2x1ZGUgaHJlZj0ieG1sL1dlYktpdFBlcm1pc3Npb25SZXF1ZXN0Lnht
bCIvPgogICAgIDx4aTppbmNsdWRlIGhyZWY9InhtbC9XZWJLaXRHZW9sb2NhdGlvblBlcm1pc3Np
b25SZXF1ZXN0LnhtbCIvPgogICAgIDx4aTppbmNsdWRlIGhyZWY9InhtbC9XZWJLaXRJbnN0YWxs
TWlzc2luZ01lZGlhUGx1Z2luc1Blcm1pc3Npb25SZXF1ZXN0LnhtbCIvPgorICAgIDx4aTppbmNs
dWRlIGhyZWY9InhtbC9XZWJLaXRNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0LnhtbCIv
PgogICAgIDx4aTppbmNsdWRlIGhyZWY9InhtbC9XZWJLaXROYXZpZ2F0aW9uQWN0aW9uLnhtbCIv
PgogICAgIDx4aTppbmNsdWRlIGhyZWY9InhtbC9XZWJLaXRVc2VyTWVkaWFQZXJtaXNzaW9uUmVx
dWVzdC54bWwiLz4KICAgICA8eGk6aW5jbHVkZSBocmVmPSJ4bWwvV2ViS2l0RGV2aWNlSW5mb1Bl
cm1pc3Npb25SZXF1ZXN0LnhtbCIvPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL2d0ay93ZWJraXQyLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL3dl
YmtpdDIuaAppbmRleCBjMzU4MTE4MzYwYTM4YzdiNDYyMjI3YWE0YWI4Mzg4YmQ3OTQyYzNlLi5l
Y2JlNDMzZWQ4ODgzNTNiMWU2MDEzOTQzYjQ0NjM4MzVjMzU4MmQyIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL3dlYmtpdDIuaAorKysgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvZ3RrL3dlYmtpdDIuaApAQCAtMzIsNiArMzIsNyBAQAogI2luY2x1ZGUg
PHdlYmtpdDIvV2ViS2l0QXV0b21hdGlvblNlc3Npb24uaD4KICNpbmNsdWRlIDx3ZWJraXQyL1dl
YktpdEJhY2tGb3J3YXJkTGlzdC5oPgogI2luY2x1ZGUgPHdlYmtpdDIvV2ViS2l0QmFja0Zvcndh
cmRMaXN0SXRlbS5oPgorI2luY2x1ZGUgPHdlYmtpdDIvV2ViS2l0Q29sb3JDaG9vc2VyUmVxdWVz
dC5oPgogI2luY2x1ZGUgPHdlYmtpdDIvV2ViS2l0Q29udGV4dE1lbnUuaD4KICNpbmNsdWRlIDx3
ZWJraXQyL1dlYktpdENvbnRleHRNZW51QWN0aW9ucy5oPgogI2luY2x1ZGUgPHdlYmtpdDIvV2Vi
S2l0Q29udGV4dE1lbnVJdGVtLmg+CkBAIC00NSw3ICs0Niw2IEBACiAjaW5jbHVkZSA8d2Via2l0
Mi9XZWJLaXRFbnVtVHlwZXMuaD4KICNpbmNsdWRlIDx3ZWJraXQyL1dlYktpdEVycm9yLmg+CiAj
aW5jbHVkZSA8d2Via2l0Mi9XZWJLaXRGYXZpY29uRGF0YWJhc2UuaD4KLSNpbmNsdWRlIDx3ZWJr
aXQyL1dlYktpdENvbG9yQ2hvb3NlclJlcXVlc3QuaD4KICNpbmNsdWRlIDx3ZWJraXQyL1dlYktp
dEZpbGVDaG9vc2VyUmVxdWVzdC5oPgogI2luY2x1ZGUgPHdlYmtpdDIvV2ViS2l0RmluZENvbnRy
b2xsZXIuaD4KICNpbmNsdWRlIDx3ZWJraXQyL1dlYktpdEZvcm1TdWJtaXNzaW9uUmVxdWVzdC5o
PgpAQCAtNTUsNiArNTUsNyBAQAogI2luY2x1ZGUgPHdlYmtpdDIvV2ViS2l0SW5wdXRNZXRob2RD
b250ZXh0Lmg+CiAjaW5jbHVkZSA8d2Via2l0Mi9XZWJLaXRJbnN0YWxsTWlzc2luZ01lZGlhUGx1
Z2luc1Blcm1pc3Npb25SZXF1ZXN0Lmg+CiAjaW5jbHVkZSA8d2Via2l0Mi9XZWJLaXRKYXZhc2Ny
aXB0UmVzdWx0Lmg+CisjaW5jbHVkZSA8d2Via2l0Mi9XZWJLaXRNZWRpYUtleVN5c3RlbVBlcm1p
c3Npb25SZXF1ZXN0Lmg+CiAjaW5jbHVkZSA8d2Via2l0Mi9XZWJLaXRNaW1lSW5mby5oPgogI2lu
Y2x1ZGUgPHdlYmtpdDIvV2ViS2l0TmF2aWdhdGlvbkFjdGlvbi5oPgogI2luY2x1ZGUgPHdlYmtp
dDIvV2ViS2l0TmF2aWdhdGlvblBvbGljeURlY2lzaW9uLmg+CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvd3BlL1dlYktpdE1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJl
cXVlc3QuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS93cGUvV2ViS2l0TWVkaWFLZXlT
eXN0ZW1QZXJtaXNzaW9uUmVxdWVzdC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjljODk4YWYxNjQ3MGRjYTE4ODUy
Njk2ODI2OGFmOWZkYmMzNWIxM2YKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvd3BlL1dlYktpdE1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3QuaApA
QCAtMCwwICsxLDY3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIElnYWxpYSBTLkwuCisg
KgorICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRl
IGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJh
cnkgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNv
ZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBv
ciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgbGlicmFy
eSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICog
YnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFu
dHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVS
UE9TRS4gIFNlZSB0aGUgR05VCisgKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9y
IG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9m
IHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRo
aXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bwor
ICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0
LCBGaWZ0aCBGbG9vciwKKyAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorICovCisKKyNp
ZiAhZGVmaW5lZChfX1dFQktJVDJfSF9JTlNJREVfXykgJiYgIWRlZmluZWQoV0VCS0lUMl9DT01Q
SUxBVElPTikKKyNlcnJvciAiT25seSA8d2Via2l0Mi93ZWJraXQyLmg+IGNhbiBiZSBpbmNsdWRl
ZCBkaXJlY3RseS4iCisjZW5kaWYKKworI2lmbmRlZiBXZWJLaXRNZWRpYUtleVN5c3RlbVBlcm1p
c3Npb25SZXF1ZXN0X2gKKyNkZWZpbmUgV2ViS2l0TWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVx
dWVzdF9oCisKKyNpbmNsdWRlIDxnbGliLW9iamVjdC5oPgorI2luY2x1ZGUgPHdwZS9XZWJLaXRE
ZWZpbmVzLmg+CisKK0dfQkVHSU5fREVDTFMKKworI2RlZmluZSBXRUJLSVRfVFlQRV9NRURJQV9L
RVlfU1lTVEVNX1BFUk1JU1NJT05fUkVRVUVTVCAgICAgICAgICAgICh3ZWJraXRfbWVkaWFfa2V5
X3N5c3RlbV9wZXJtaXNzaW9uX3JlcXVlc3RfZ2V0X3R5cGUoKSkKKyNkZWZpbmUgV0VCS0lUX01F
RElBX0tFWV9TWVNURU1fUEVSTUlTU0lPTl9SRVFVRVNUKG9iaikgICAgICAgICAgICAoR19UWVBF
X0NIRUNLX0lOU1RBTkNFX0NBU1QoKG9iaiksIFdFQktJVF9UWVBFX01FRElBX0tFWV9TWVNURU1f
UEVSTUlTU0lPTl9SRVFVRVNULCBXZWJLaXRNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0
KSkKKyNkZWZpbmUgV0VCS0lUX01FRElBX0tFWV9TWVNURU1fUEVSTUlTU0lPTl9SRVFVRVNUX0NM
QVNTKGtsYXNzKSAgICAoR19UWVBFX0NIRUNLX0NMQVNTX0NBU1QoKGtsYXNzKSwgIFdFQktJVF9U
WVBFX01FRElBX0tFWV9TWVNURU1fUEVSTUlTU0lPTl9SRVFVRVNULCBXZWJLaXRNZWRpYUtleVN5
c3RlbVBlcm1pc3Npb25SZXF1ZXN0Q2xhc3MpKQorI2RlZmluZSBXRUJLSVRfSVNfTUVESUFfS0VZ
X1NZU1RFTV9QRVJNSVNTSU9OX1JFUVVFU1Qob2JqKSAgICAgICAgIChHX1RZUEVfQ0hFQ0tfSU5T
VEFOQ0VfVFlQRSgob2JqKSwgV0VCS0lUX1RZUEVfTUVESUFfS0VZX1NZU1RFTV9QRVJNSVNTSU9O
X1JFUVVFU1QpKQorI2RlZmluZSBXRUJLSVRfSVNfTUVESUFfS0VZX1NZU1RFTV9QRVJNSVNTSU9O
X1JFUVVFU1RfQ0xBU1Moa2xhc3MpIChHX1RZUEVfQ0hFQ0tfQ0xBU1NfVFlQRSgoa2xhc3MpLCAg
V0VCS0lUX1RZUEVfTUVESUFfS0VZX1NZU1RFTV9QRVJNSVNTSU9OX1JFUVVFU1QpKQorI2RlZmlu
ZSBXRUJLSVRfTUVESUFfS0VZX1NZU1RFTV9QRVJNSVNTSU9OX1JFUVVFU1RfR0VUX0NMQVNTKG9i
aikgIChHX1RZUEVfSU5TVEFOQ0VfR0VUX0NMQVNTKChvYmopLCAgV0VCS0lUX1RZUEVfTUVESUFf
S0VZX1NZU1RFTV9QRVJNSVNTSU9OX1JFUVVFU1QsIFdlYktpdE1lZGlhS2V5U3lzdGVtUGVybWlz
c2lvblJlcXVlc3RDbGFzcykpCisKK3R5cGVkZWYgc3RydWN0IF9XZWJLaXRNZWRpYUtleVN5c3Rl
bVBlcm1pc3Npb25SZXF1ZXN0ICAgICAgICBXZWJLaXRNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25S
ZXF1ZXN0OwordHlwZWRlZiBzdHJ1Y3QgX1dlYktpdE1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJl
cXVlc3RDbGFzcyAgIFdlYktpdE1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RDbGFzczsK
K3R5cGVkZWYgc3RydWN0IF9XZWJLaXRNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0UHJp
dmF0ZSBXZWJLaXRNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0UHJpdmF0ZTsKKworc3Ry
dWN0IF9XZWJLaXRNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0IHsKKyAgICBHT2JqZWN0
IHBhcmVudDsKKworICAgIC8qPCBwcml2YXRlID4qLworICAgIFdlYktpdE1lZGlhS2V5U3lzdGVt
UGVybWlzc2lvblJlcXVlc3RQcml2YXRlICpwcml2OworfTsKKworc3RydWN0IF9XZWJLaXRNZWRp
YUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0Q2xhc3MgeworICAgIEdPYmplY3RDbGFzcyBwYXJl
bnRfY2xhc3M7CisKKyAgICB2b2lkICgqX3dlYmtpdF9yZXNlcnZlZDApICh2b2lkKTsKKyAgICB2
b2lkICgqX3dlYmtpdF9yZXNlcnZlZDEpICh2b2lkKTsKKyAgICB2b2lkICgqX3dlYmtpdF9yZXNl
cnZlZDIpICh2b2lkKTsKKyAgICB2b2lkICgqX3dlYmtpdF9yZXNlcnZlZDMpICh2b2lkKTsKK307
CisKK1dFQktJVF9BUEkgR1R5cGUKK3dlYmtpdF9tZWRpYV9rZXlfc3lzdGVtX3Blcm1pc3Npb25f
cmVxdWVzdF9nZXRfdHlwZSAodm9pZCk7CisKK1dFQktJVF9BUEkgY29uc3QgZ2NoYXIqCit3ZWJr
aXRfbWVkaWFfa2V5X3N5c3RlbV9wZXJtaXNzaW9uX2dldF9uYW1lIChXZWJLaXRNZWRpYUtleVN5
c3RlbVBlcm1pc3Npb25SZXF1ZXN0ICpyZXF1ZXN0KTsKKworR19FTkRfREVDTFMKKworI2VuZGlm
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvd3BlL2RvY3Mvd3BlLTEu
MC1zZWN0aW9ucy50eHQgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvd3BlL2RvY3Mvd3Bl
LTEuMC1zZWN0aW9ucy50eHQKaW5kZXggMGVlMjUwZTU2MzM4Y2RhNzMzMmQ3MDUwODU4MmE1OWE3
YWQyMWM4MC4uODI1ZDUxMDBiNmE2OWFjZjVhN2EyMDk1MzgzNzZkMmM4NTJkYmFjOCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL3dwZS9kb2NzL3dwZS0xLjAtc2VjdGlv
bnMudHh0CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS93cGUvZG9jcy93cGUtMS4w
LXNlY3Rpb25zLnR4dApAQCAtODA4LDYgKzgwOCwyNSBAQCBXZWJLaXRVc2VyTWVkaWFQZXJtaXNz
aW9uUmVxdWVzdFByaXZhdGUKIHdlYmtpdF91c2VyX21lZGlhX3Blcm1pc3Npb25fcmVxdWVzdF9n
ZXRfdHlwZQogPC9TRUNUSU9OPgogCis8U0VDVElPTj4KKzxGSUxFPldlYktpdE1lZGlhS2V5U3lz
dGVtUGVybWlzc2lvblJlcXVlc3Q8L0ZJTEU+CitXZWJLaXRNZWRpYUtleVN5c3RlbVBlcm1pc3Np
b25SZXF1ZXN0Cit3ZWJraXRfbWVkaWFfa2V5X3N5c3RlbV9wZXJtaXNzaW9uX2dldF9uYW1lCisK
KzxTVUJTRUNUSU9OIFN0YW5kYXJkPgorV2ViS2l0TWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVx
dWVzdENsYXNzCitXRUJLSVRfVFlQRV9NRURJQV9LRVlfU1lTVEVNX1BFUk1JU1NJT05fUkVRVUVT
VAorV0VCS0lUX01FRElBX0tFWV9TWVNURU1fUEVSTUlTU0lPTl9SRVFVRVNUCitXRUJLSVRfSVNf
TUVESUFfS0VZX1NZU1RFTV9QRVJNSVNTSU9OX1JFUVVFU1QKK1dFQktJVF9NRURJQV9LRVlfU1lT
VEVNX1BFUk1JU1NJT05fUkVRVUVTVF9DTEFTUworV0VCS0lUX0lTX01FRElBX0tFWV9TWVNURU1f
UEVSTUlTU0lPTl9SRVFVRVNUX0NMQVNTCitXRUJLSVRfTUVESUFfS0VZX1NZU1RFTV9QRVJNSVNT
SU9OX1JFUVVFU1RfR0VUX0NMQVNTCisKKzxTVUJTRUNUSU9OIFByaXZhdGU+CitXZWJLaXRNZWRp
YUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0UHJpdmF0ZQord2Via2l0X21lZGlhX2tleV9zeXN0
ZW1fcGVybWlzc2lvbl9yZXF1ZXN0X2dldF90eXBlCis8L1NFQ1RJT04+CisKIDxTRUNUSU9OPgog
PEZJTEU+V2ViS2l0Tm90aWZpY2F0aW9uPC9GSUxFPgogV2ViS2l0Tm90aWZpY2F0aW9uCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvd3BlL2RvY3Mvd3BlLWRvY3Muc2dt
bCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS93cGUvZG9jcy93cGUtZG9jcy5zZ21sCmlu
ZGV4IDA5YWY0ZmM5YmI0ZDVmYjU1OTZhMTc2NTgxNzMyYmMwZGMyZTMzMWIuLjhlMjU3ZjAyZjEx
ZmViZWNkMmE1NjczYjhlODcwNmQ1ZWM2YzY4MzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS93cGUvZG9jcy93cGUtZG9jcy5zZ21sCisrKyBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS93cGUvZG9jcy93cGUtZG9jcy5zZ21sCkBAIC0yNSw2ICsyNSw3IEBACiAg
ICAgPHhpOmluY2x1ZGUgaHJlZj0ieG1sL1dlYktpdFBlcm1pc3Npb25SZXF1ZXN0LnhtbCIvPgog
ICAgIDx4aTppbmNsdWRlIGhyZWY9InhtbC9XZWJLaXRHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1
ZXN0LnhtbCIvPgogICAgIDx4aTppbmNsdWRlIGhyZWY9InhtbC9XZWJLaXRJbnN0YWxsTWlzc2lu
Z01lZGlhUGx1Z2luc1Blcm1pc3Npb25SZXF1ZXN0LnhtbCIvPgorICAgIDx4aTppbmNsdWRlIGhy
ZWY9InhtbC9XZWJLaXRNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0LnhtbCIvPgogICAg
IDx4aTppbmNsdWRlIGhyZWY9InhtbC9XZWJLaXROYXZpZ2F0aW9uQWN0aW9uLnhtbCIvPgogICAg
IDx4aTppbmNsdWRlIGhyZWY9InhtbC9XZWJLaXRVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdC54
bWwiLz4KICAgICA8eGk6aW5jbHVkZSBocmVmPSJ4bWwvV2ViS2l0UG9saWN5RGVjaXNpb24ueG1s
Ii8+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9NZWRpYUtleVN5c3RlbVBl
cm1pc3Npb25SZXF1ZXN0LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9NZWRpYUtleVN5c3Rl
bVBlcm1pc3Npb25SZXF1ZXN0LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNGFmYzM1ZDAxNzcyZDU4OTdjNzdlYWMw
MTA3YmM5YmU3NGI0NjI4YQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL01lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3QuaApAQCAtMCwwICsxLDc2IEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDIxIElnYWxpYSBTLkwuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEg
b25jZQorCisjaW5jbHVkZSAiQVBJT2JqZWN0LmgiCisjaW5jbHVkZSA8V2ViQ29yZS9DbGllbnRP
cmlnaW4uaD4KKyNpbmNsdWRlIDx3dGYvQ29tcGxldGlvbkhhbmRsZXIuaD4KKworbmFtZXNwYWNl
IFdlYktpdCB7CisKK2NsYXNzIE1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3QgOiBwdWJs
aWMgUmVmQ291bnRlZDxNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0PiB7CitwdWJsaWM6
CisgICAgc3RhdGljIFJlZjxNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0PiBjcmVhdGUo
Y29uc3QgU3RyaW5nJiBrZXlTeXN0ZW0sIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYg
Y29tcGxldGlvbkhhbmRsZXIpCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBN
ZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0KGtleVN5c3RlbSwgV1RGTW92ZShjb21wbGV0
aW9uSGFuZGxlcikpKTsKKyAgICB9CisKKyAgICB2b2lkIGNvbXBsZXRlKGJvb2wgc3VjY2VzcykK
KyAgICB7CisgICAgICAgIGF1dG8gY29tcGxldGlvbkhhbmRsZXIgPSBzdGQ6OmV4Y2hhbmdlKG1f
Y29tcGxldGlvbkhhbmRsZXIsIHsgfSk7CisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKHN1Y2Nl
c3MpOworICAgIH0KKworICAgIGNvbnN0IFN0cmluZyYga2V5U3lzdGVtKCkgY29uc3QgeyByZXR1
cm4gbV9rZXlTeXN0ZW07IH0KKworcHJpdmF0ZToKKyAgICBNZWRpYUtleVN5c3RlbVBlcm1pc3Np
b25SZXF1ZXN0KGNvbnN0IFN0cmluZyYga2V5U3lzdGVtLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KGJvb2wpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQorICAgICAgICA6IG1fa2V5U3lzdGVtKGtleVN5
c3RlbSkKKyAgICAgICAgLCBtX2NvbXBsZXRpb25IYW5kbGVyKFdURk1vdmUoY29tcGxldGlvbkhh
bmRsZXIpKQorICAgIHsgfQorCisgICAgU3RyaW5nIG1fa2V5U3lzdGVtOworICAgIENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoYm9vbCk+IG1fY29tcGxldGlvbkhhbmRsZXI7Cit9OworCitjbGFzcyBN
ZWRpYUtleVN5c3RlbVBlcm1pc3Npb25DYWxsYmFjayA6IHB1YmxpYyBBUEk6Ok9iamVjdEltcGw8
QVBJOjpPYmplY3Q6OlR5cGU6Ok1lZGlhS2V5U3lzdGVtUGVybWlzc2lvbkNhbGxiYWNrPiB7Citw
dWJsaWM6CisgICAgc3RhdGljIFJlZjxNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25DYWxsYmFjaz4g
Y3JlYXRlKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYgY29tcGxldGlvbkhhbmRsZXIp
CisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBNZWRpYUtleVN5c3RlbVBlcm1p
c3Npb25DYWxsYmFjayhXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSkpOworICAgIH0KKworICAg
IHZvaWQgY29tcGxldGUoYm9vbCBncmFudGVkKSB7IG1fY29tcGxldGlvbkhhbmRsZXIoZ3JhbnRl
ZCk7IH0KKworcHJpdmF0ZToKKyAgICBNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25DYWxsYmFjayhD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQorICAgICAg
ICA6IG1fY29tcGxldGlvbkhhbmRsZXIoV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpCisgICAg
eyB9CisKKyAgICBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiBtX2NvbXBsZXRpb25IYW5k
bGVyOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9NZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5
LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL01lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJl
cXVlc3RNYW5hZ2VyUHJveHkuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmJiM2U0NTJkNTgzNTE5OGUyYmI1YWVm
MjMyNDRhNWZkZWNmZWQwMDcKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9NZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmNwcApAQCAt
MCwwICsxLDEyNCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBJZ2FsaWEgUy5MLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQg
SVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiTWVkaWFLZXlTeXN0ZW1QZXJt
aXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5oIgorCisjaW5jbHVkZSAiQVBJU2VjdXJpdHlPcmln
aW4uaCIKKyNpbmNsdWRlICJBUElVSUNsaWVudC5oIgorI2luY2x1ZGUgIkxvZ2dpbmcuaCIKKyNp
bmNsdWRlICJXZWJBdXRvbWF0aW9uU2Vzc2lvbi5oIgorI2luY2x1ZGUgIldlYlBhZ2VNZXNzYWdl
cy5oIgorI2luY2x1ZGUgIldlYlBhZ2VQcm94eS5oIgorI2luY2x1ZGUgIldlYlByb2Nlc3MuaCIK
KyNpbmNsdWRlICJXZWJQcm9jZXNzUG9vbC5oIgorI2luY2x1ZGUgIldlYlByb2Nlc3NQcm94eS5o
IgorI2luY2x1ZGUgIldlYnNpdGVEYXRhU3RvcmUuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL01lZGlh
S2V5U3lzdGVtUmVxdWVzdC5oPgorI2luY2x1ZGUgPFdlYkNvcmUvU2VjdXJpdHlPcmlnaW5EYXRh
Lmg+CisjaW5jbHVkZSA8d3RmL1Njb3BlLmg+CisKK25hbWVzcGFjZSBXZWJLaXQgewordXNpbmcg
bmFtZXNwYWNlIFdlYkNvcmU7CisKK01lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RNYW5h
Z2VyUHJveHk6Ok1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkoV2Vi
UGFnZVByb3h5JiBwYWdlKQorICAgIDogbV9wYWdlKHBhZ2UpCisjaWYgIVJFTEVBU0VfTE9HX0RJ
U0FCTEVECisgICAgLCBtX2xvZ2dlcihwYWdlLmxvZ2dlcigpKQorICAgICwgbV9sb2dJZGVudGlm
aWVyKHVuaXF1ZUxvZ0lkZW50aWZpZXIoKSkKKyNlbmRpZgoreworfQorCitNZWRpYUtleVN5c3Rl
bVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5Ojp+TWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9u
UmVxdWVzdE1hbmFnZXJQcm94eSgpCit7CisgICAgaW52YWxpZGF0ZVBlbmRpbmdSZXF1ZXN0cygp
OworfQorCit2b2lkIE1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6
OmludmFsaWRhdGVQZW5kaW5nUmVxdWVzdHMoKQoreworICAgIGZvciAoYXV0byYgcmVxdWVzdCA6
IG1fcGVuZGluZ1JlcXVlc3RzLnZhbHVlcygpKQorICAgICAgICByZXF1ZXN0LT5pbnZhbGlkYXRl
KCk7CisKKyAgICBtX3BlbmRpbmdSZXF1ZXN0cy5jbGVhcigpOworfQorCit2b2lkIE1lZGlhS2V5
U3lzdGVtUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6OmRlbnlSZXF1ZXN0KE1lZGlhS2V5
U3lzdGVtUGVybWlzc2lvblJlcXVlc3RQcm94eSYgcmVxdWVzdCwgY29uc3QgU3RyaW5nJiBtZXNz
YWdlKQoreworICAgIGlmICghbV9wYWdlLmhhc1J1bm5pbmdQcm9jZXNzKCkpCisgICAgICAgIHJl
dHVybjsKKworICAgIEFMV0FZU19MT0coTE9HSURFTlRJRklFUiwgcmVxdWVzdC5tZWRpYUtleVN5
c3RlbUlEKCksICIsIHJlYXNvbjogIiwgbWVzc2FnZSk7CisKKyNpZiBFTkFCTEUoRU5DUllQVEVE
X01FRElBKQorICAgIG1fcGFnZS5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpNZWRpYUtleVN5c3Rl
bVdhc0RlbmllZChyZXF1ZXN0Lm1lZGlhS2V5U3lzdGVtSUQoKSwgbWVzc2FnZSkpOworI2Vsc2UK
KyAgICBVTlVTRURfUEFSQU0obWVzc2FnZSk7CisjZW5kaWYKK30KKwordm9pZCBNZWRpYUtleVN5
c3RlbVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5OjpncmFudFJlcXVlc3QoTWVkaWFLZXlT
eXN0ZW1QZXJtaXNzaW9uUmVxdWVzdFByb3h5JiByZXF1ZXN0KQoreworICAgIGlmICghbV9wYWdl
Lmhhc1J1bm5pbmdQcm9jZXNzKCkpCisgICAgICAgIHJldHVybjsKKworI2lmIEVOQUJMRShFTkNS
WVBURURfTUVESUEpCisgICAgQUxXQVlTX0xPRyhMT0dJREVOVElGSUVSLCByZXF1ZXN0Lm1lZGlh
S2V5U3lzdGVtSUQoKSwgIiwga2V5U3lzdGVtOiAiLCByZXF1ZXN0LmtleVN5c3RlbSgpKTsKKwor
ICAgIG1fcGFnZS5zZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6OldlYlBhZ2U6Ok1lZGlhS2V5
U3lzdGVtV2FzR3JhbnRlZCB7IHJlcXVlc3QubWVkaWFLZXlTeXN0ZW1JRCgpIH0sIFtdIHsgfSk7
CisjZWxzZQorICAgIFVOVVNFRF9QQVJBTShyZXF1ZXN0KTsKKyNlbmRpZgorfQorCitSZWY8TWVk
aWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdFByb3h5PiBNZWRpYUtleVN5c3RlbVBlcm1pc3Np
b25SZXF1ZXN0TWFuYWdlclByb3h5OjpjcmVhdGVSZXF1ZXN0Rm9yRnJhbWUodWludDY0X3QgbWVk
aWFLZXlTeXN0ZW1JRCwgRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIFJlZjxTZWN1cml0eU9yaWdp
bj4mJiB0b3BMZXZlbERvY3VtZW50T3JpZ2luLCBjb25zdCBTdHJpbmcmIGtleVN5c3RlbSkKK3sK
KyNpZiBFTkFCTEUoRU5DUllQVEVEX01FRElBKQorICAgIEFMV0FZU19MT0coTE9HSURFTlRJRklF
UiwgbWVkaWFLZXlTeXN0ZW1JRCk7CisKKyAgICBhdXRvIHJlcXVlc3QgPSBNZWRpYUtleVN5c3Rl
bVBlcm1pc3Npb25SZXF1ZXN0UHJveHk6OmNyZWF0ZSgqdGhpcywgbWVkaWFLZXlTeXN0ZW1JRCwg
bV9wYWdlLm1haW5GcmFtZSgpLT5mcmFtZUlEKCksIGZyYW1lSUQsIFdURk1vdmUodG9wTGV2ZWxE
b2N1bWVudE9yaWdpbiksIGtleVN5c3RlbSk7CisgICAgbV9wZW5kaW5nUmVxdWVzdHMuYWRkKG1l
ZGlhS2V5U3lzdGVtSUQsIHJlcXVlc3QucHRyKCkpOworICAgIHJldHVybiByZXF1ZXN0OworI2Vs
c2UKKyAgICBVTlVTRURfUEFSQU0obWVkaWFLZXlTeXN0ZW1JRCk7CisgICAgVU5VU0VEX1BBUkFN
KGZyYW1lSUQpOworICAgIFVOVVNFRF9QQVJBTSh0b3BMZXZlbERvY3VtZW50T3JpZ2luKTsKKyAg
ICBVTlVTRURfUEFSQU0oa2V5U3lzdGVtKTsKKyNlbmRpZgorfQorCisjaWYgIVJFTEVBU0VfTE9H
X0RJU0FCTEVECitXVEZMb2dDaGFubmVsJiBNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0
TWFuYWdlclByb3h5Ojpsb2dDaGFubmVsKCkgY29uc3QKK3sKKyAgICByZXR1cm4gV2ViS2l0Mkxv
Z0VNRTsKK30KKworY29uc3QgTG9nZ2VyJiBNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0
TWFuYWdlclByb3h5Ojpsb2dnZXIoKSBjb25zdAoreworICAgIHJldHVybiBtX3BhZ2UubG9nZ2Vy
KCk7Cit9CisjZW5kaWYKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9NZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdl
clByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9NZWRpYUtleVN5c3RlbVBlcm1pc3Np
b25SZXF1ZXN0TWFuYWdlclByb3h5LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjAzYTYyODQ4MTFiZWYyZDIyMTMx
YjdiZTEwZTg5M2MwNjcxODZmYwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL01lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuaApAQCAt
MCwwICsxLDg1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIElnYWxpYSBTLkwuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
CisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAiTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9u
UmVxdWVzdFByb3h5LmgiCisjaW5jbHVkZSA8V2ViQ29yZS9TZWN1cml0eU9yaWdpbi5oPgorI2lu
Y2x1ZGUgPHd0Zi9Db21wbGV0aW9uSGFuZGxlci5oPgorI2luY2x1ZGUgPHd0Zi9EZXF1ZS5oPgor
I2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CisjaW5jbHVkZSA8d3RmL0xvZ2dlckhlbHBlci5oPgor
I2luY2x1ZGUgPHd0Zi9SdW5Mb29wLmg+CisjaW5jbHVkZSA8d3RmL1NlY29uZHMuaD4KKyNpbmNs
dWRlIDx3dGYvV2Vha1B0ci5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CitjbGFzcyBTZWN1cml0
eU9yaWdpbjsKK307CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBXZWJQYWdlUHJveHk7
CisKK2NsYXNzIE1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkKKyAg
ICA6IHB1YmxpYyBDYW5NYWtlV2Vha1B0cjxNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0
TWFuYWdlclByb3h5PgorI2lmICFSRUxFQVNFX0xPR19ESVNBQkxFRAorICAgICwgcHJpdmF0ZSBM
b2dnZXJIZWxwZXIKKyNlbmRpZgoreworICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOworcHVi
bGljOgorICAgIGV4cGxpY2l0IE1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RNYW5hZ2Vy
UHJveHkoV2ViUGFnZVByb3h5Jik7CisgICAgfk1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVl
c3RNYW5hZ2VyUHJveHkoKTsKKworICAgIFdlYlBhZ2VQcm94eSYgcGFnZSgpIGNvbnN0IHsgcmV0
dXJuIG1fcGFnZTsgfQorCisgICAgdm9pZCBpbnZhbGlkYXRlUGVuZGluZ1JlcXVlc3RzKCk7CisK
KyAgICBSZWY8TWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdFByb3h5PiBjcmVhdGVSZXF1
ZXN0Rm9yRnJhbWUodWludDY0X3QgdXNlck1lZGlhSUQsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmll
ciwgUmVmPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luPiYmIHRvcExldmVsRG9jdW1lbnRPcmlnaW4s
IGNvbnN0IFN0cmluZyYga2V5U3lzdGVtKTsKKworICAgIHZvaWQgZ3JhbnRSZXF1ZXN0KE1lZGlh
S2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RQcm94eSYpOworICAgIHZvaWQgZGVueVJlcXVlc3Qo
TWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdFByb3h5JiwgY29uc3QgU3RyaW5nJiBtZXNz
YWdlID0geyB9KTsKKworcHJpdmF0ZToKKyNpZiAhUkVMRUFTRV9MT0dfRElTQUJMRUQKKyAgICBj
b25zdCBMb2dnZXImIGxvZ2dlcigpIGNvbnN0IGZpbmFsOworICAgIGNvbnN0IHZvaWQqIGxvZ0lk
ZW50aWZpZXIoKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX2xvZ0lkZW50aWZpZXI7IH0KKyAgICBj
b25zdCBjaGFyKiBsb2dDbGFzc05hbWUoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiAiTWVkaWFL
ZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eSI7IH0KKyAgICBXVEZMb2dDaGFu
bmVsJiBsb2dDaGFubmVsKCkgY29uc3QgZmluYWw7CisjZW5kaWYKKworICAgIFdlYlBhZ2VQcm94
eSYgbV9wYWdlOworCisgICAgSGFzaE1hcDx1aW50NjRfdCwgUmVmUHRyPE1lZGlhS2V5U3lzdGVt
UGVybWlzc2lvblJlcXVlc3RQcm94eT4+IG1fcGVuZGluZ1JlcXVlc3RzOworICAgIEhhc2hTZXQ8
U3RyaW5nPiBtX3ZhbGlkQXV0aG9yaXphdGlvblRva2VuczsKKworI2lmICFSRUxFQVNFX0xPR19E
SVNBQkxFRAorICAgIFJlZjxjb25zdCBMb2dnZXI+IG1fbG9nZ2VyOworICAgIGNvbnN0IHZvaWQq
IG1fbG9nSWRlbnRpZmllcjsKKyNlbmRpZgorfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9NZWRpYUtleVN5c3RlbVBlcm1pc3Np
b25SZXF1ZXN0UHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTWVkaWFLZXlTeXN0
ZW1QZXJtaXNzaW9uUmVxdWVzdFByb3h5LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kMmI5MTU1ZDE1ODU2YTM0
MDJiY2ZjMWY1NTI2OTIwZTAzNzkwYmRjCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdFByb3h5LmNwcApAQCAt
MCwwICsxLDgyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIElnYWxpYSBTLkwuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
CisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJNZWRpYUtleVN5c3RlbVBlcm1p
c3Npb25SZXF1ZXN0UHJveHkuaCIKKworI2luY2x1ZGUgIk1lZGlhS2V5U3lzdGVtUGVybWlzc2lv
blJlcXVlc3RNYW5hZ2VyUHJveHkuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL1NlY3VyaXR5T3JpZ2lu
Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9TZWN1cml0eU9yaWdpbkRhdGEuaD4KKyNpbmNsdWRlIDx3
dGYvdGV4dC9TdHJpbmdIYXNoLmg+CisKK25hbWVzcGFjZSBXZWJLaXQgewordXNpbmcgbmFtZXNw
YWNlIFdlYkNvcmU7CisKK01lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RQcm94eTo6TWVk
aWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdFByb3h5KE1lZGlhS2V5U3lzdGVtUGVybWlzc2lv
blJlcXVlc3RNYW5hZ2VyUHJveHkmIG1hbmFnZXIsIHVpbnQ2NF90IG1lZGlhS2V5U3lzdGVtSUQs
IEZyYW1lSWRlbnRpZmllciBtYWluRnJhbWVJRCwgRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIFJl
ZjxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbj4mJiB0b3BMZXZlbERvY3VtZW50T3JpZ2luLCBjb25z
dCBTdHJpbmcmIGtleVN5c3RlbSkKKyAgICA6IG1fbWFuYWdlcigmbWFuYWdlcikKKyAgICAsIG1f
bWVkaWFLZXlTeXN0ZW1JRChtZWRpYUtleVN5c3RlbUlEKQorICAgICwgbV9tYWluRnJhbWVJRCht
YWluRnJhbWVJRCkKKyAgICAsIG1fZnJhbWVJRChmcmFtZUlEKQorICAgICwgbV90b3BMZXZlbERv
Y3VtZW50U2VjdXJpdHlPcmlnaW4oV1RGTW92ZSh0b3BMZXZlbERvY3VtZW50T3JpZ2luKSkKKyAg
ICAsIG1fa2V5U3lzdGVtKGtleVN5c3RlbSkKK3sKK30KKwordm9pZCBNZWRpYUtleVN5c3RlbVBl
cm1pc3Npb25SZXF1ZXN0UHJveHk6OmFsbG93KCkKK3sKKyAgICBBU1NFUlQobV9tYW5hZ2VyKTsK
KyAgICBpZiAoIW1fbWFuYWdlcikKKyAgICAgICAgcmV0dXJuOworCisgICAgbV9tYW5hZ2VyLT5n
cmFudFJlcXVlc3QoKnRoaXMpOworICAgIGludmFsaWRhdGUoKTsKK30KKwordm9pZCBNZWRpYUtl
eVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0UHJveHk6OmRlbnkoKQoreworICAgIGlmICghbV9tYW5h
Z2VyKQorICAgICAgICByZXR1cm47CisKKyAgICBtX21hbmFnZXItPmRlbnlSZXF1ZXN0KCp0aGlz
KTsKKyAgICBpbnZhbGlkYXRlKCk7Cit9CisKK3ZvaWQgTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9u
UmVxdWVzdFByb3h5OjppbnZhbGlkYXRlKCkKK3sKKyAgICBtX21hbmFnZXIgPSBudWxscHRyOwor
fQorCit2b2lkIE1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RQcm94eTo6ZG9EZWZhdWx0
QWN0aW9uKCkKK3sKKyNpZiBQTEFURk9STShDT0NPQSkKKyAgICAvLyBCYWNrd2FyZCBjb21wYXRp
YmlsaXR5IGZvciBwbGF0Zm9ybXMgbm90IHlldCBzdXBwb3J0aW5nIHRoZSBNZWRpYUtleVN5c3Rl
bSBwZXJtaXNzaW9uIHJlcXVlc3QKKyAgICAvLyBpbiB0aGVpciBBUElVSUNsaWVudC4KKyAgICBh
bGxvdygpOworI2Vsc2UKKyAgICBkZW55KCk7CisjZW5kaWYKK30KKworfSAvLyBuYW1lc3BhY2Ug
V2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9NZWRpYUtleVN5c3Rl
bVBlcm1pc3Npb25SZXF1ZXN0UHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL01lZGlh
S2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RQcm94eS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmE2NGQxYzYyMDU3
ZDU2OTcyMDU2ODZlODcxYWVjMjgzNjc1MDVkYzkKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9NZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0UHJveHkuaApA
QCAtMCwwICsxLDc2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIElnYWxpYSBTLkwuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFO
RCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAiQVBJT2JqZWN0LmgiCisjaW5jbHVk
ZSA8V2ViQ29yZS9GcmFtZUlkZW50aWZpZXIuaD4KKyNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+Cisj
aW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKK2Ns
YXNzIFNlY3VyaXR5T3JpZ2luOworfQorCituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3MgTWVk
aWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eTsKKworY2xhc3MgTWVkaWFL
ZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdFByb3h5IDogcHVibGljIFJlZkNvdW50ZWQ8TWVkaWFL
ZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdFByb3h5PiB7CitwdWJsaWM6CisgICAgc3RhdGljIFJl
ZjxNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0UHJveHk+IGNyZWF0ZShNZWRpYUtleVN5
c3RlbVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5JiBtYW5hZ2VyLCB1aW50NjRfdCBtZWRp
YUtleVN5c3RlbUlELCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgbWFpbkZyYW1lSUQsIFdlYkNv
cmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBSZWY8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4+
JiYgdG9wTGV2ZWxEb2N1bWVudE9yaWdpbiwgY29uc3QgU3RyaW5nJiBrZXlTeXN0ZW0pCisgICAg
eworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25S
ZXF1ZXN0UHJveHkobWFuYWdlciwgbWVkaWFLZXlTeXN0ZW1JRCwgbWFpbkZyYW1lSUQsIGZyYW1l
SUQsIFdURk1vdmUodG9wTGV2ZWxEb2N1bWVudE9yaWdpbiksIGtleVN5c3RlbSkpOworICAgIH0K
KworICAgIHZvaWQgYWxsb3coKTsKKyAgICB2b2lkIGRlbnkoKTsKKworICAgIHZvaWQgaW52YWxp
ZGF0ZSgpOworICAgIGJvb2wgaXNQZW5kaW5nKCkgY29uc3QgeyByZXR1cm4gbV9tYW5hZ2VyOyB9
CisKKyAgICB1aW50NjRfdCBtZWRpYUtleVN5c3RlbUlEKCkgY29uc3QgeyByZXR1cm4gbV9tZWRp
YUtleVN5c3RlbUlEOyB9CisgICAgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIG1haW5GcmFtZUlE
KCkgY29uc3QgeyByZXR1cm4gbV9tYWluRnJhbWVJRDsgfQorICAgIFdlYkNvcmU6OkZyYW1lSWRl
bnRpZmllciBmcmFtZUlEKCkgY29uc3QgeyByZXR1cm4gbV9mcmFtZUlEOyB9CisKKyAgICBXZWJD
b3JlOjpTZWN1cml0eU9yaWdpbiYgdG9wTGV2ZWxEb2N1bWVudFNlY3VyaXR5T3JpZ2luKCkgeyBy
ZXR1cm4gbV90b3BMZXZlbERvY3VtZW50U2VjdXJpdHlPcmlnaW4uZ2V0KCk7IH0KKyAgICBjb25z
dCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbiYgdG9wTGV2ZWxEb2N1bWVudFNlY3VyaXR5T3JpZ2lu
KCkgY29uc3QgeyByZXR1cm4gbV90b3BMZXZlbERvY3VtZW50U2VjdXJpdHlPcmlnaW4uZ2V0KCk7
IH0KKworICAgIGNvbnN0IFN0cmluZyYga2V5U3lzdGVtKCkgY29uc3QgeyByZXR1cm4gbV9rZXlT
eXN0ZW07IH0KKworICAgIHZvaWQgZG9EZWZhdWx0QWN0aW9uKCk7CisKK3ByaXZhdGU6CisgICAg
TWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdFByb3h5KE1lZGlhS2V5U3lzdGVtUGVybWlz
c2lvblJlcXVlc3RNYW5hZ2VyUHJveHkmLCB1aW50NjRfdCBtZWRpYUtleVN5c3RlbUlELCBXZWJD
b3JlOjpGcmFtZUlkZW50aWZpZXIgbWFpbkZyYW1lSUQsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmll
ciwgUmVmPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luPiYmIHRvcExldmVsRG9jdW1lbnRPcmlnaW4s
IGNvbnN0IFN0cmluZyYga2V5U3lzdGVtKTsKKworICAgIE1lZGlhS2V5U3lzdGVtUGVybWlzc2lv
blJlcXVlc3RNYW5hZ2VyUHJveHkqIG1fbWFuYWdlcjsKKyAgICB1aW50NjRfdCBtX21lZGlhS2V5
U3lzdGVtSUQ7CisgICAgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIG1fbWFpbkZyYW1lSUQ7Cisg
ICAgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIG1fZnJhbWVJRDsKKyAgICBSZWY8V2ViQ29yZTo6
U2VjdXJpdHlPcmlnaW4+IG1fdG9wTGV2ZWxEb2N1bWVudFNlY3VyaXR5T3JpZ2luOworICAgIFN0
cmluZyBtX2tleVN5c3RlbTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGlt
ZU1lZGlhU291cmNlLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlv
blJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UuaAppbmRleCA4YjUxMjUwZjVjYWQ3ZjNmNWNlNzhm
NThkNjc2MzcxOTBjZjhiZjkxLi5lNjQ1YzhmZTRjNDg1M2MzYzMyMzlhZmFiZWEyMmM3NzZmMTE1
ODE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlv
blJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9TcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UuaApAQCAtNDMsNiAr
NDMsNyBAQCBjbGFzcyBXZWJBdWRpb0J1ZmZlckxpc3Q7CiB9CiAKIG5hbWVzcGFjZSBXZWJLaXQg
eworY2xhc3MgU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdl
cjsKIAogY2xhc3MgU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlIDog
cHVibGljIFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2UgewogcHVibGljOgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKaW5kZXggZjEyYzg0NmU4OGRiZDA2MGJhNDVh
NTM0ZDhiNmY2MmFmMjkxOTExMC4uYWI2OGEzYmZmMGM3OTdiYmJmN2U4YWM4MThjODM3YTJlMGM1
NThkZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCkBAIC04Mjkx
LDYgKzgyOTEsMjcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmNsZWFyVXNlck1lZGlhU3RhdGUoKQog
I2VuZGlmCiB9CiAKK3ZvaWQgV2ViUGFnZVByb3h5OjpyZXF1ZXN0TWVkaWFLZXlTeXN0ZW1QZXJt
aXNzaW9uRm9yRnJhbWUodWludDY0X3QgbWVkaWFLZXlTeXN0ZW1JRCwgRnJhbWVJZGVudGlmaWVy
IGZyYW1lSUQsIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYgdG9wTGV2ZWxEb2N1
bWVudE9yaWdpbkRhdGEsIGNvbnN0IFN0cmluZyYga2V5U3lzdGVtKQoreworI2lmIEVOQUJMRShN
RURJQV9TVFJFQU0pCisgICAgTUVTU0FHRV9DSEVDSyhtX3Byb2Nlc3MsIG1fcHJvY2Vzcy0+d2Vi
RnJhbWUoZnJhbWVJRCkpOworCisgICAgYXV0byBvcmlnaW4gPSBBUEk6OlNlY3VyaXR5T3JpZ2lu
OjpjcmVhdGUodG9wTGV2ZWxEb2N1bWVudE9yaWdpbkRhdGEuc2VjdXJpdHlPcmlnaW4oKSk7Cisg
ICAgYXV0byByZXF1ZXN0ID0gbWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIo
KS5jcmVhdGVSZXF1ZXN0Rm9yRnJhbWUobWVkaWFLZXlTeXN0ZW1JRCwgZnJhbWVJRCwgdG9wTGV2
ZWxEb2N1bWVudE9yaWdpbkRhdGEuc2VjdXJpdHlPcmlnaW4oKSwga2V5U3lzdGVtKTsKKyAgICBt
X3VpQ2xpZW50LT5kZWNpZGVQb2xpY3lGb3JNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0
KCp0aGlzLCBvcmlnaW4sIGtleVN5c3RlbSwgW3JlcXVlc3QgPSBXVEZNb3ZlKHJlcXVlc3QpXShi
b29sIGFsbG93ZWQpIHsKKyAgICAgICAgaWYgKGFsbG93ZWQpCisgICAgICAgICAgICByZXF1ZXN0
LT5hbGxvdygpOworICAgICAgICBlbHNlCisgICAgICAgICAgICByZXF1ZXN0LT5kZW55KCk7Cisg
ICAgfSk7CisjZWxzZQorICAgIFVOVVNFRF9QQVJBTShtZWRpYUtleVN5c3RlbUlEKTsKKyAgICBV
TlVTRURfUEFSQU0oZnJhbWVJRCk7CisgICAgVU5VU0VEX1BBUkFNKHRvcExldmVsRG9jdW1lbnRP
cmlnaW5EYXRhKTsKKyAgICBVTlVTRURfUEFSQU0oa2V5U3lzdGVtKTsKKyNlbmRpZgorfQorCiAj
aWYgRU5BQkxFKERFVklDRV9PUklFTlRBVElPTikKIHZvaWQgV2ViUGFnZVByb3h5OjpzaG91bGRB
bGxvd0RldmljZU9yaWVudGF0aW9uQW5kTW90aW9uQWNjZXNzKEZyYW1lSWRlbnRpZmllciBmcmFt
ZUlELCBGcmFtZUluZm9EYXRhJiYgZnJhbWVJbmZvLCBib29sIG1heVByb21wdCwgQ29tcGxldGlv
bkhhbmRsZXI8dm9pZChEZXZpY2VPcmllbnRhdGlvbk9yTW90aW9uUGVybWlzc2lvblN0YXRlKT4m
JiBjb21wbGV0aW9uSGFuZGxlcikKIHsKQEAgLTgzMDEsNiArODMyMiwxNyBAQCB2b2lkIFdlYlBh
Z2VQcm94eTo6c2hvdWxkQWxsb3dEZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvbkFjY2VzcyhGcmFt
ZUlkZW50aWZpZXIgZgogfQogI2VuZGlmCiAKKyNpZiBFTkFCTEUoRU5DUllQVEVEX01FRElBKQor
TWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eSYgV2ViUGFnZVByb3h5
OjptZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcigpCit7CisgICAgaWYgKG1f
bWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIpCisgICAgICAgIHJldHVybiAq
bV9tZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcjsKKworICAgIG1fbWVkaWFL
ZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIgPSBtYWtlVW5pcXVlPE1lZGlhS2V5U3lz
dGVtUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk+KCp0aGlzKTsKKyAgICByZXR1cm4gKm1f
bWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXI7Cit9CisjZW5kaWYKKwogdm9p
ZCBXZWJQYWdlUHJveHk6OnJlcXVlc3ROb3RpZmljYXRpb25QZXJtaXNzaW9uKHVpbnQ2NF90IHJl
cXVlc3RJRCwgY29uc3QgU3RyaW5nJiBvcmlnaW5TdHJpbmcpCiB7CiAgICAgaWYgKCFpc1JlcXVl
c3RJRFZhbGlkKHJlcXVlc3RJRCkpCkBAIC0xMDQxNSw2ICsxMDQ0NywxMSBAQCB2b2lkIFdlYlBh
Z2VQcm94eTo6cmVxdWVzdFNwZWVjaFJlY29nbml0aW9uUGVybWlzc2lvbkJ5RGVmYXVsdEFjdGlv
bihjb25zdCBXZWJDbwogICAgIG1fc3BlZWNoUmVjb2duaXRpb25QZXJtaXNzaW9uTWFuYWdlci0+
ZGVjaWRlQnlEZWZhdWx0QWN0aW9uKG9yaWdpbiwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikp
OwogfQogCit2b2lkIFdlYlBhZ2VQcm94eTo6cmVxdWVzdE1lZGlhS2V5U3lzdGVtUGVybWlzc2lv
bkJ5RGVmYXVsdEFjdGlvbihjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbiYgb3JpZ2luLCBD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQoreworICAg
IGNvbXBsZXRpb25IYW5kbGVyKGZhbHNlKTsKK30KKwogI2lmIEVOQUJMRShNRURJQV9TVFJFQU0p
CiAKIFdlYkNvcmU6OkNhcHR1cmVTb3VyY2VPckVycm9yIFdlYlBhZ2VQcm94eTo6Y3JlYXRlUmVh
bHRpbWVNZWRpYVNvdXJjZUZvclNwZWVjaFJlY29nbml0aW9uKCkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2ViUGFnZVByb3h5LmgKaW5kZXggNmE5OTFkYzA1ZWU0YzM2MmU3OTA1ZWFlNzgzMTZjMWI2
NDI0N2QxMy4uMWRkZmZhYzZiYTUwZDNkZDUwMTJhMWNlN2U0NjQxN2E2YjQ1ODFlNiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKKysrIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKQEAgLTQwLDYgKzQwLDcgQEAKICNpbmNs
dWRlICJHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmgiCiAjaW5jbHVk
ZSAiSGlkZGVuUGFnZVRocm90dGxpbmdBdXRvSW5jcmVhc2VzQ291bnRlci5oIgogI2luY2x1ZGUg
IkxheWVyVHJlZUNvbnRleHQuaCIKKyNpbmNsdWRlICJNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25S
ZXF1ZXN0TWFuYWdlclByb3h5LmgiCiAjaW5jbHVkZSAiTWVkaWFQbGF5YmFja1N0YXRlLmgiCiAj
aW5jbHVkZSAiTWVzc2FnZVNlbmRlci5oIgogI2luY2x1ZGUgIk5vdGlmaWNhdGlvblBlcm1pc3Np
b25SZXF1ZXN0TWFuYWdlclByb3h5LmgiCkBAIC03Miw4ICs3Myw4IEBACiAjaW5jbHVkZSAiV2Vi
UGFnZVByb3h5SWRlbnRpZmllci5oIgogI2luY2x1ZGUgIldlYlBhZ2VQcm94eU1lc3NhZ2VzUmVw
bGllcy5oIgogI2luY2x1ZGUgIldlYlBheW1lbnRDb29yZGluYXRvclByb3h5LmgiCi0jaW5jbHVk
ZSAiV2ViUHJlZmVyZW5jZXMuaCIKICNpbmNsdWRlICJXZWJQb3B1cE1lbnVQcm94eS5oIgorI2lu
Y2x1ZGUgIldlYlByZWZlcmVuY2VzLmgiCiAjaW5jbHVkZSAiV2ViVW5kb1N0ZXBJRC5oIgogI2lu
Y2x1ZGUgIldlYnNpdGVQb2xpY2llc0RhdGEuaCIKICNpbmNsdWRlIDxXZWJDb3JlL0FjdGl2aXR5
U3RhdGUuaD4KQEAgLTE4MTksNiArMTgyMCw4IEBAIHB1YmxpYzoKICAgICB2b2lkIHJlcXVlc3RT
cGVlY2hSZWNvZ25pdGlvblBlcm1pc3Npb24oY29uc3QgU3RyaW5nJiBsYW5nLCBjb25zdCBXZWJD
b3JlOjpDbGllbnRPcmlnaW4mLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKE9wdGlvbmFsPFdlYkNv
cmU6OlNwZWVjaFJlY29nbml0aW9uRXJyb3I+JiYpPiYmKTsKICAgICB2b2lkIHJlcXVlc3RTcGVl
Y2hSZWNvZ25pdGlvblBlcm1pc3Npb25CeURlZmF1bHRBY3Rpb24oY29uc3QgV2ViQ29yZTo6U2Vj
dXJpdHlPcmlnaW4mLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmKTsKIAorICAgIHZv
aWQgcmVxdWVzdE1lZGlhS2V5U3lzdGVtUGVybWlzc2lvbkJ5RGVmYXVsdEFjdGlvbihjb25zdCBX
ZWJDb3JlOjpTZWN1cml0eU9yaWdpbiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYp
OworCiAgICAgdm9pZCBzeW5jSWZNb2NrRGV2aWNlc0VuYWJsZWRDaGFuZ2VkKCk7CiAKICNpZiBF
TkFCTEUoQVBQX0hJR0hMSUdIVFMpCkBAIC0xOTk1LDYgKzE5OTgsMTEgQEAgcHJpdmF0ZToKICAg
ICB2b2lkIGVudW1lcmF0ZU1lZGlhRGV2aWNlc0ZvckZyYW1lKFdlYkNvcmU6OkZyYW1lSWRlbnRp
ZmllciwgY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiB1c2VyTWVkaWFEb2N1bWVu
dE9yaWdpbkRhdGEsIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYgdG9wTGV2ZWxE
b2N1bWVudE9yaWdpbkRhdGEsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoY29uc3QgVmVjdG9yPFdl
YkNvcmU6OkNhcHR1cmVEZXZpY2U+JiwgY29uc3QgU3RyaW5nJik+JiYpOwogICAgIHZvaWQgYmVn
aW5Nb25pdG9yaW5nQ2FwdHVyZURldmljZXMoKTsKIAorI2lmIEVOQUJMRShFTkNSWVBURURfTUVE
SUEpCisgICAgTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eSYgbWVk
aWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIoKTsKKyNlbmRpZgorICAgIHZvaWQg
cmVxdWVzdE1lZGlhS2V5U3lzdGVtUGVybWlzc2lvbkZvckZyYW1lKHVpbnQ2NF90IG1lZGlhS2V5
U3lzdGVtSUQsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6U2VjdXJp
dHlPcmlnaW5EYXRhJiB0b3BMZXZlbERvY3VtZW50T3JpZ2luSWRlbnRpZmllciwgY29uc3QgU3Ry
aW5nJik7CisKICAgICB2b2lkIHJ1bk1vZGFsKCk7CiAgICAgdm9pZCBub3RpZnlTY3JvbGxlclRo
dW1iSXNWaXNpYmxlSW5SZWN0KGNvbnN0IFdlYkNvcmU6OkludFJlY3QmKTsKICAgICB2b2lkIHJl
Y29tbWVuZGVkU2Nyb2xsYmFyU3R5bGVEaWRDaGFuZ2UoaW50MzJfdCBuZXdTdHlsZSk7CkBAIC0y
NTA0LDYgKzI1MTIsMTAgQEAgcHJpdmF0ZToKICAgICBzdGQ6OnVuaXF1ZV9wdHI8VXNlck1lZGlh
UGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk+IG1fdXNlck1lZGlhUGVybWlzc2lvblJlcXVl
c3RNYW5hZ2VyOwogI2VuZGlmCiAKKyNpZiBFTkFCTEUoRU5DUllQVEVEX01FRElBKQorICAgIHN0
ZDo6dW5pcXVlX3B0cjxNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5
PiBtX21lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyOworI2VuZGlmCisKICAg
ICBPcHRpb25TZXQ8V2ViQ29yZTo6QWN0aXZpdHlTdGF0ZTo6RmxhZz4gbV9hY3Rpdml0eVN0YXRl
OwogICAgIGJvb2wgbV92aWV3V2FzRXZlckluV2luZG93IHsgZmFsc2UgfTsKICNpZiBQTEFURk9S
TShNQUNDQVRBTFlTVCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBh
Z2VQcm94eS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94
eS5tZXNzYWdlcy5pbgppbmRleCBmNDAzNDY5OGEzZWNlYjU2ZDk3MzVlYmRkZDdjZDNjNDRiZTky
NjExLi44MTBhNmU0M2EwMDkxODA3MTQxMDMxZjYyNTEwZjBkODE3ZjBiYjlhIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4KKysrIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluCkBAIC0yODAs
NiArMjgwLDEwIEBAIG1lc3NhZ2VzIC0+IFdlYlBhZ2VQcm94eSB7CiAgICAgQmVnaW5Nb25pdG9y
aW5nQ2FwdHVyZURldmljZXMoKQogI2VuZGlmCiAKKyNpZiBFTkFCTEUoRU5DUllQVEVEX01FRElB
KQorICAgIFJlcXVlc3RNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25Gb3JGcmFtZSh1aW50NjRfdCB1
c2VyTWVkaWFJRCwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIHN0cnVjdCBXZWJD
b3JlOjpTZWN1cml0eU9yaWdpbkRhdGEgdG9wTGV2ZWxEb2N1bWVudE9yaWdpbklkZW50aWZpZXIs
IFN0cmluZyBrZXlTeXN0ZW0pCisjZW5kaWYKKwogICAgICMgTm90aWZpY2F0aW9uIG1lc3NhZ2Vz
CiAgICAgUmVxdWVzdE5vdGlmaWNhdGlvblBlcm1pc3Npb24odWludDY0X3QgcmVxdWVzdElELCBT
dHJpbmcgb3JpZ2luSWRlbnRpZmllcikKICAgICBTaG93Tm90aWZpY2F0aW9uKFN0cmluZyB0aXRs
ZSwgU3RyaW5nIGJvZHksIFN0cmluZyBpY29uVVJMLCBTdHJpbmcgdGFnLCBTdHJpbmcgbGFuZywg
ZW51bTp1aW50OF90IFdlYkNvcmU6Ok5vdGlmaWNhdGlvbkRpcmVjdGlvbiBkaXIsIFN0cmluZyBv
cmlnaW5JZGVudGlmaWVyLCB1aW50NjRfdCBub3RpZmljYXRpb25JRCkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9FbmNyeXB0ZWRNZWRpYS9NZWRpYUtleVN5c3RlbVBlcm1p
c3Npb25SZXF1ZXN0TWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvRW5jcnlw
dGVkTWVkaWEvTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIuY3BwCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLmEyNDk4ODJkMDdhOTllNzVkMDkxYmZiNzJhZWVjODMxNjQ4NTc3MzgKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvRW5jcnlwdGVkTWVkaWEvTWVkaWFL
ZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIuY3BwCkBAIC0wLDAgKzEsMTMyIEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDIxIElnYWxpYSBTLkwuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRl
ICJjb25maWcuaCIKKyNpbmNsdWRlICJNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0TWFu
YWdlci5oIgorCisjaWYgRU5BQkxFKEVOQ1JZUFRFRF9NRURJQSkKKworI2luY2x1ZGUgIkxvZ2dp
bmcuaCIKKyNpbmNsdWRlICJXZWJDb3JlQXJndW1lbnRDb2RlcnMuaCIKKyNpbmNsdWRlICJXZWJG
cmFtZS5oIgorI2luY2x1ZGUgIldlYlBhZ2UuaCIKKyNpbmNsdWRlICJXZWJQYWdlUHJveHlNZXNz
YWdlcy5oIgorI2luY2x1ZGUgPFdlYkNvcmUvRG9jdW1lbnQuaD4KKyNpbmNsdWRlIDxXZWJDb3Jl
L0ZyYW1lLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9GcmFtZUxvYWRlci5oPgorI2luY2x1ZGUgPFdl
YkNvcmUvU2VjdXJpdHlPcmlnaW4uaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1NlY3VyaXR5T3JpZ2lu
RGF0YS5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwor
CitNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcjo6TWVkaWFLZXlTeXN0ZW1Q
ZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIoV2ViUGFnZSYgcGFnZSkKKyAgICA6IG1fcGFnZShwYWdl
KQoreworfQorCit2b2lkIE1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyOjpz
dGFydE1lZGlhS2V5U3lzdGVtUmVxdWVzdChNZWRpYUtleVN5c3RlbVJlcXVlc3QmIHJlcXVlc3Qp
Cit7CisgICAgRG9jdW1lbnQqIGRvY3VtZW50ID0gcmVxdWVzdC5kb2N1bWVudCgpOworICAgIEZy
YW1lKiBmcmFtZSA9IGRvY3VtZW50ID8gZG9jdW1lbnQtPmZyYW1lKCkgOiBudWxscHRyOworCisg
ICAgaWYgKCFmcmFtZSB8fCAhZG9jdW1lbnQtPnBhZ2UoKSkgeworICAgICAgICByZXF1ZXN0LmRl
bnkoZW1wdHlTdHJpbmcoKSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBpZiAoZG9j
dW1lbnQtPnBhZ2UoKS0+Y2FuU3RhcnRNZWRpYSgpKSB7CisgICAgICAgIHNlbmRNZWRpYUtleVN5
c3RlbVJlcXVlc3QocmVxdWVzdCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBhdXRv
JiBwZW5kaW5nUmVxdWVzdHMgPSBtX3BlbmRpbmdNZWRpYUtleVN5c3RlbVJlcXVlc3RzLmFkZChk
b2N1bWVudCwgVmVjdG9yPFJlZjxNZWRpYUtleVN5c3RlbVJlcXVlc3Q+PigpKS5pdGVyYXRvci0+
dmFsdWU7CisgICAgcGVuZGluZ1JlcXVlc3RzLmFwcGVuZChyZXF1ZXN0KTsKK30KKwordm9pZCBN
ZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcjo6c2VuZE1lZGlhS2V5U3lzdGVt
UmVxdWVzdChNZWRpYUtleVN5c3RlbVJlcXVlc3QmIHVzZXJSZXF1ZXN0KQoreworICAgIGF1dG8q
IGZyYW1lID0gdXNlclJlcXVlc3QuZG9jdW1lbnQoKSA/IHVzZXJSZXF1ZXN0LmRvY3VtZW50KCkt
PmZyYW1lKCkgOiBudWxscHRyOworICAgIGlmICghZnJhbWUpIHsKKyAgICAgICAgdXNlclJlcXVl
c3QuZGVueShlbXB0eVN0cmluZygpKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIG1f
b25nb2luZ01lZGlhS2V5U3lzdGVtUmVxdWVzdHMuYWRkKHVzZXJSZXF1ZXN0LmlkZW50aWZpZXIo
KSwgbWFrZVJlZih1c2VyUmVxdWVzdCkpOworCisgICAgV2ViRnJhbWUqIHdlYkZyYW1lID0gV2Vi
RnJhbWU6OmZyb21Db3JlRnJhbWUoKmZyYW1lKTsKKyAgICBBU1NFUlQod2ViRnJhbWUpOworCisg
ICAgYXV0byogdG9wTGV2ZWxEb2N1bWVudE9yaWdpbiA9IHVzZXJSZXF1ZXN0LnRvcExldmVsRG9j
dW1lbnRPcmlnaW4oKTsKKyAgICBtX3BhZ2Uuc2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpS
ZXF1ZXN0TWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uRm9yRnJhbWUodXNlclJlcXVlc3QuaWRlbnRp
ZmllcigpLnRvVUludDY0KCksIHdlYkZyYW1lLT5mcmFtZUlEKCksIHRvcExldmVsRG9jdW1lbnRP
cmlnaW4tPmRhdGEoKSwgdXNlclJlcXVlc3Qua2V5U3lzdGVtKCkpKTsKK30KKwordm9pZCBNZWRp
YUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcjo6Y2FuY2VsTWVkaWFLZXlTeXN0ZW1S
ZXF1ZXN0KE1lZGlhS2V5U3lzdGVtUmVxdWVzdCYgcmVxdWVzdCkKK3sKKyAgICBpZiAoYXV0byBy
ZW1vdmVkUmVxdWVzdCA9IG1fb25nb2luZ01lZGlhS2V5U3lzdGVtUmVxdWVzdHMudGFrZShyZXF1
ZXN0LmlkZW50aWZpZXIoKSkpCisgICAgICAgIHJldHVybjsKKworICAgIGF1dG8qIGRvY3VtZW50
ID0gcmVxdWVzdC5kb2N1bWVudCgpOworICAgIGlmICghZG9jdW1lbnQpCisgICAgICAgIHJldHVy
bjsKKworICAgIGF1dG8gaXRlcmF0b3IgPSBtX3BlbmRpbmdNZWRpYUtleVN5c3RlbVJlcXVlc3Rz
LmZpbmQoZG9jdW1lbnQpOworICAgIGlmIChpdGVyYXRvciA9PSBtX3BlbmRpbmdNZWRpYUtleVN5
c3RlbVJlcXVlc3RzLmVuZCgpKQorICAgICAgICByZXR1cm47CisKKyAgICBhdXRvJiBwZW5kaW5n
UmVxdWVzdHMgPSBpdGVyYXRvci0+dmFsdWU7CisgICAgcGVuZGluZ1JlcXVlc3RzLnJlbW92ZUZp
cnN0TWF0Y2hpbmcoWyZyZXF1ZXN0XShhdXRvJiBpdGVtKSB7CisgICAgICAgIHJldHVybiAmcmVx
dWVzdCA9PSBpdGVtLnB0cigpOworICAgIH0pOworCisgICAgaWYgKCFwZW5kaW5nUmVxdWVzdHMu
aXNFbXB0eSgpKQorICAgICAgICByZXR1cm47CisKKyAgICBtX3BlbmRpbmdNZWRpYUtleVN5c3Rl
bVJlcXVlc3RzLnJlbW92ZShpdGVyYXRvcik7Cit9CisKK3ZvaWQgTWVkaWFLZXlTeXN0ZW1QZXJt
aXNzaW9uUmVxdWVzdE1hbmFnZXI6Om1lZGlhS2V5U3lzdGVtV2FzR3JhbnRlZCh1aW50NjRfdCBy
ZXF1ZXN0SUQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikK
K3sKKyAgICBhdXRvIHJlcXVlc3QgPSBtX29uZ29pbmdNZWRpYUtleVN5c3RlbVJlcXVlc3RzLnRh
a2UobWFrZU9iamVjdElkZW50aWZpZXI8TWVkaWFLZXlTeXN0ZW1SZXF1ZXN0SWRlbnRpZmllclR5
cGU+KHJlcXVlc3RJRCkpOworICAgIGlmICghcmVxdWVzdCkgeworICAgICAgICBjb21wbGV0aW9u
SGFuZGxlcigpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgcmVxdWVzdC0+YWxsb3co
V1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOworfQorCit2b2lkIE1lZGlhS2V5U3lzdGVtUGVy
bWlzc2lvblJlcXVlc3RNYW5hZ2VyOjptZWRpYUtleVN5c3RlbVdhc0RlbmllZCh1aW50NjRfdCBy
ZXF1ZXN0SUQsIFN0cmluZyYmIG1lc3NhZ2UpCit7CisgICAgYXV0byByZXF1ZXN0ID0gbV9vbmdv
aW5nTWVkaWFLZXlTeXN0ZW1SZXF1ZXN0cy50YWtlKG1ha2VPYmplY3RJZGVudGlmaWVyPE1lZGlh
S2V5U3lzdGVtUmVxdWVzdElkZW50aWZpZXJUeXBlPihyZXF1ZXN0SUQpKTsKKyAgICBpZiAoIXJl
cXVlc3QpCisgICAgICAgIHJldHVybjsKKworICAgIHJlcXVlc3QtPmRlbnkoV1RGTW92ZShtZXNz
YWdlKSk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gRU5BQkxFKEVO
Q1JZUFRFRF9NRURJQSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9FbmNy
eXB0ZWRNZWRpYS9NZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlci5oIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0VuY3J5cHRlZE1lZGlhL01lZGlhS2V5U3lzdGVtUGVybWlz
c2lvblJlcXVlc3RNYW5hZ2VyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODY5NTVmYjlkZWQ3MTE2MWNhZGY0YTIz
NjkwMmIyYzU0MjI1NjlhNgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9FbmNyeXB0ZWRNZWRpYS9NZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdl
ci5oCkBAIC0wLDAgKzEsNjMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgSWdhbGlhIFMu
TC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoRU5DUllQVEVEX01FRElB
KQorCisjaW5jbHVkZSAiU2FuZGJveEV4dGVuc2lvbi5oIgorI2luY2x1ZGUgPFdlYkNvcmUvTWVk
aWFLZXlTeXN0ZW1DbGllbnQuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL01lZGlhS2V5U3lzdGVtUmVx
dWVzdC5oPgorI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CisjaW5jbHVkZSA8d3RmL1JlZi5oPgor
I2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIFdl
YlBhZ2U7CisKK2NsYXNzIE1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyIHsK
KyAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKK3B1YmxpYzoKKyAgICBleHBsaWNpdCBNZWRp
YUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcihXZWJQYWdlJik7CisgICAgfk1lZGlh
S2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyKCkgPSBkZWZhdWx0OworCisgICAgdm9p
ZCBzdGFydE1lZGlhS2V5U3lzdGVtUmVxdWVzdChXZWJDb3JlOjpNZWRpYUtleVN5c3RlbVJlcXVl
c3QmKTsKKyAgICB2b2lkIGNhbmNlbE1lZGlhS2V5U3lzdGVtUmVxdWVzdChXZWJDb3JlOjpNZWRp
YUtleVN5c3RlbVJlcXVlc3QmKTsKKyAgICB2b2lkIG1lZGlhS2V5U3lzdGVtV2FzR3JhbnRlZCh1
aW50NjRfdCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKKyAgICB2b2lkIG1lZGlhS2V5
U3lzdGVtV2FzRGVuaWVkKHVpbnQ2NF90LCBTdHJpbmcmJik7CisKK3ByaXZhdGU6CisgICAgdm9p
ZCBzZW5kTWVkaWFLZXlTeXN0ZW1SZXF1ZXN0KFdlYkNvcmU6Ok1lZGlhS2V5U3lzdGVtUmVxdWVz
dCYpOworCisgICAgV2ViUGFnZSYgbV9wYWdlOworCisgICAgSGFzaE1hcDxXZWJDb3JlOjpNZWRp
YUtleVN5c3RlbVJlcXVlc3RJZGVudGlmaWVyLCBSZWY8V2ViQ29yZTo6TWVkaWFLZXlTeXN0ZW1S
ZXF1ZXN0Pj4gbV9vbmdvaW5nTWVkaWFLZXlTeXN0ZW1SZXF1ZXN0czsKKyAgICBIYXNoTWFwPFJl
ZlB0cjxXZWJDb3JlOjpEb2N1bWVudD4sIFZlY3RvcjxSZWY8V2ViQ29yZTo6TWVkaWFLZXlTeXN0
ZW1SZXF1ZXN0Pj4+IG1fcGVuZGluZ01lZGlhS2V5U3lzdGVtUmVxdWVzdHM7Cit9OworCit9IC8v
IG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIEVOQUJMRShNRURJQV9TVFJFQU0pCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViTWVkaWFL
ZXlTeXN0ZW1DbGllbnQuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L1dlYk1lZGlhS2V5U3lzdGVtQ2xpZW50LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jZDJiOGE1YmQzOWQw
MzE3YTQ2ZmEzMWI4NDYxOTYzNTdjN2JmMTE4Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYk1lZGlhS2V5U3lzdGVtQ2xpZW50LmNw
cApAQCAtMCwwICsxLDYxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIElnYWxpYSBTLkwu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJXZWJNZWRpYUtleVN5
c3RlbUNsaWVudC5oIgorCisjaWYgRU5BQkxFKEVOQ1JZUFRFRF9NRURJQSkKKworI2luY2x1ZGUg
Ik1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyLmgiCisjaW5jbHVkZSAiV2Vi
UGFnZS5oIgorI2luY2x1ZGUgPFdlYkNvcmUvTWVkaWFLZXlTeXN0ZW1Db250cm9sbGVyLmg+Cisj
aW5jbHVkZSA8V2ViQ29yZS9NZWRpYUtleVN5c3RlbVJlcXVlc3QuaD4KKworbmFtZXNwYWNlIFdl
YktpdCB7Cit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKKworV2ViTWVkaWFLZXlTeXN0ZW1DbGll
bnQ6OldlYk1lZGlhS2V5U3lzdGVtQ2xpZW50KFdlYlBhZ2UmIHBhZ2UpCisgICAgOiBtX3BhZ2Uo
cGFnZSkKK3sKK30KKwordm9pZCBXZWJNZWRpYUtleVN5c3RlbUNsaWVudDo6cGFnZURlc3Ryb3ll
ZCgpCit7CisgICAgZGVsZXRlIHRoaXM7Cit9CisKK3ZvaWQgV2ViTWVkaWFLZXlTeXN0ZW1DbGll
bnQ6OnJlcXVlc3RNZWRpYUtleVN5c3RlbShNZWRpYUtleVN5c3RlbVJlcXVlc3QmIHJlcXVlc3Qp
Cit7CisgICAgbV9wYWdlLm1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyKCku
c3RhcnRNZWRpYUtleVN5c3RlbVJlcXVlc3QocmVxdWVzdCk7Cit9CisKK3ZvaWQgV2ViTWVkaWFL
ZXlTeXN0ZW1DbGllbnQ6OmNhbmNlbE1lZGlhS2V5U3lzdGVtUmVxdWVzdChNZWRpYUtleVN5c3Rl
bVJlcXVlc3QmIHJlcXVlc3QpCit7CisgICAgbV9wYWdlLm1lZGlhS2V5U3lzdGVtUGVybWlzc2lv
blJlcXVlc3RNYW5hZ2VyKCkuY2FuY2VsTWVkaWFLZXlTeXN0ZW1SZXF1ZXN0KHJlcXVlc3QpOwor
fQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQ7CisKKyNlbmRpZiAvLyBFTkFCTEUoRU5DUllQVEVE
X01FRElBKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L1dlYk1lZGlhS2V5U3lzdGVtQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvV2ViTWVkaWFLZXlTeXN0ZW1DbGllbnQuaApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mNDgw
MzJmOGI5YWE2MGFmYjkxOGUwNDNmNTQ4MTFmZmIzMjI3Nzg2Ci0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYk1lZGlhS2V5U3lzdGVt
Q2xpZW50LmgKQEAgLTAsMCArMSw1MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBJZ2Fs
aWEgUy5MLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAor
ICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisg
KiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICog
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShFTkNSWVBURURf
TUVESUEpCisKKyNpbmNsdWRlIDxXZWJDb3JlL01lZGlhS2V5U3lzdGVtQ2xpZW50Lmg+CisKK25h
bWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBXZWJQYWdlOworCitjbGFzcyBXZWJNZWRpYUtleVN5
c3RlbUNsaWVudCA6IHB1YmxpYyBXZWJDb3JlOjpNZWRpYUtleVN5c3RlbUNsaWVudCB7CisgICAg
V1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CitwdWJsaWM6CisgICAgV2ViTWVkaWFLZXlTeXN0ZW1D
bGllbnQoV2ViUGFnZSYpOworICAgIH5XZWJNZWRpYUtleVN5c3RlbUNsaWVudCgpIHsgfQorCitw
cml2YXRlOgorICAgIHZvaWQgcGFnZURlc3Ryb3llZCgpIG92ZXJyaWRlOworCisgICAgdm9pZCBy
ZXF1ZXN0TWVkaWFLZXlTeXN0ZW0oV2ViQ29yZTo6TWVkaWFLZXlTeXN0ZW1SZXF1ZXN0Jikgb3Zl
cnJpZGU7CisgICAgdm9pZCBjYW5jZWxNZWRpYUtleVN5c3RlbVJlcXVlc3QoV2ViQ29yZTo6TWVk
aWFLZXlTeXN0ZW1SZXF1ZXN0Jikgb3ZlcnJpZGU7CisKKyAgICBXZWJQYWdlJiBtX3BhZ2U7Cit9
OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoRU5DUllQVEVE
X01FRElBKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2Vi
UGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcApp
bmRleCBjYWUwYTk3MThjZjdmZjlmNDAyMWY2Y2NhOTA0ZTI3NGJkMWIzMzNlLi5hYzdlMDM0OGQ2
YzIxY2Q2NGQzOTAzZjRkOTgwNzkzYzI1ZDA5Zjg3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcApAQCAtNDYsNiArNDYsNyBAQAogI2luY2x1ZGUgIkxp
YldlYlJUQ1Byb3ZpZGVyLmgiCiAjaW5jbHVkZSAiTG9hZFBhcmFtZXRlcnMuaCIKICNpbmNsdWRl
ICJMb2dnaW5nLmgiCisjaW5jbHVkZSAiTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdE1h
bmFnZXIuaCIKICNpbmNsdWRlICJNZWRpYVBsYXliYWNrU3RhdGUuaCIKICNpbmNsdWRlICJNZWRp
YVJlY29yZGVyUHJvdmlkZXIuaCIKICNpbmNsdWRlICJOZXRzY2FwZVBsdWdpbi5oIgpAQCAtMTA0
LDYgKzEwNSw3IEBACiAjaW5jbHVkZSAiV2ViS2V5Ym9hcmRFdmVudC5oIgogI2luY2x1ZGUgIldl
YkxvYWRlclN0cmF0ZWd5LmgiCiAjaW5jbHVkZSAiV2ViTWVkaWFLZXlTdG9yYWdlTWFuYWdlci5o
IgorI2luY2x1ZGUgIldlYk1lZGlhS2V5U3lzdGVtQ2xpZW50LmgiCiAjaW5jbHVkZSAiV2ViTWVk
aWFTdHJhdGVneS5oIgogI2luY2x1ZGUgIldlYk1vdXNlRXZlbnQuaCIKICNpbmNsdWRlICJXZWJO
b3RpZmljYXRpb25DbGllbnQuaCIKQEAgLTQ2Nyw2ICs0NjksOSBAQCBXZWJQYWdlOjpXZWJQYWdl
KFBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycyYmIHBhcmFt
ZXRlcnMpCiAjZW5kaWYKICNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQogICAgICwgbV91c2VyTWVk
aWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIgeyBtYWtlVW5pcXVlUmVmPFVzZXJNZWRpYVBlcm1p
c3Npb25SZXF1ZXN0TWFuYWdlcj4oKnRoaXMpIH0KKyNlbmRpZgorI2lmIEVOQUJMRShFTkNSWVBU
RURfTUVESUEpCisgICAgLCBtX21lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RNYW5hZ2Vy
IHsgbWFrZVVuaXF1ZVJlZjxNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcj4o
KnRoaXMpIH0KICNlbmRpZgogICAgICwgbV9wYWdlU2Nyb2xsZWRIeXN0ZXJlc2lzKFt0aGlzXShQ
QUw6Okh5c3RlcmVzaXNTdGF0ZSBzdGF0ZSkgeyBpZiAoc3RhdGUgPT0gUEFMOjpIeXN0ZXJlc2lz
U3RhdGU6OlN0b3BwZWQpIHBhZ2VTdG9wcGVkU2Nyb2xsaW5nKCk7IH0sIHBhZ2VTY3JvbGxIeXN0
ZXJlc2lzRHVyYXRpb24pCiAgICAgLCBtX2NhblJ1bkJlZm9yZVVubG9hZENvbmZpcm1QYW5lbChw
YXJhbWV0ZXJzLmNhblJ1bkJlZm9yZVVubG9hZENvbmZpcm1QYW5lbCkKQEAgLTY0OCw2ICs2NTMs
OSBAQCBXZWJQYWdlOjpXZWJQYWdlKFBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgV2ViUGFnZUNyZWF0
aW9uUGFyYW1ldGVycyYmIHBhcmFtZXRlcnMpCiAjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKICAg
ICBXZWJDb3JlOjpwcm92aWRlVXNlck1lZGlhVG8obV9wYWdlLmdldCgpLCBuZXcgV2ViVXNlck1l
ZGlhQ2xpZW50KCp0aGlzKSk7CiAjZW5kaWYKKyNpZiBFTkFCTEUoRU5DUllQVEVEX01FRElBKQor
ICAgIFdlYkNvcmU6OnByb3ZpZGVNZWRpYUtleVN5c3RlbVRvKG1fcGFnZS5nZXQoKSwgbmV3IFdl
Yk1lZGlhS2V5U3lzdGVtQ2xpZW50KCp0aGlzKSk7CisjZW5kaWYKIAogICAgIG1fcGFnZS0+c2V0
Q29udHJvbGxlZEJ5QXV0b21hdGlvbihwYXJhbWV0ZXJzLmNvbnRyb2xsZWRCeUF1dG9tYXRpb24p
OwogICAgIG1fcGFnZS0+c2V0SGFzUmVzb3VyY2VMb2FkQ2xpZW50KHBhcmFtZXRlcnMuaGFzUmVz
b3VyY2VMb2FkQ2xpZW50KTsKQEAgLTQ1MjEsNiArNDUyOSwxOCBAQCB2b2lkIFdlYlBhZ2U6OmNh
cHR1cmVEZXZpY2VzQ2hhbmdlZCgpCiAKICNlbmRpZgogCisjaWYgRU5BQkxFKEVOQ1JZUFRFRF9N
RURJQSkKK3ZvaWQgV2ViUGFnZTo6bWVkaWFLZXlTeXN0ZW1XYXNHcmFudGVkKHVpbnQ2NF90IG1l
ZGlhS2V5U3lzdGVtSUQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFu
ZGxlcikKK3sKKyAgICBtX21lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyLT5t
ZWRpYUtleVN5c3RlbVdhc0dyYW50ZWQobWVkaWFLZXlTeXN0ZW1JRCwgV1RGTW92ZShjb21wbGV0
aW9uSGFuZGxlcikpOworfQorCit2b2lkIFdlYlBhZ2U6Om1lZGlhS2V5U3lzdGVtV2FzRGVuaWVk
KHVpbnQ2NF90IG1lZGlhS2V5U3lzdGVtSUQsIFN0cmluZyYmIG1lc3NhZ2UpCit7CisgICAgbV9t
ZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlci0+bWVkaWFLZXlTeXN0ZW1XYXNE
ZW5pZWQobWVkaWFLZXlTeXN0ZW1JRCwgV1RGTW92ZShtZXNzYWdlKSk7Cit9CisjZW5kaWYKKwog
I2lmICFQTEFURk9STShJT1NfRkFNSUxZKQogdm9pZCBXZWJQYWdlOjphZHZhbmNlVG9OZXh0TWlz
c3BlbGxpbmcoYm9vbCBzdGFydEJlZm9yZVNlbGVjdGlvbikKIHsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaCBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAppbmRleCA4MzM1MTk0MTZmMjZjM2QxYzQ5NWQ3Y2Yz
YmFhNWEzOGUwODUxMzliLi44ODdkMmNmNjI2NDYxYzFkNWM3NWI1YWNjN2I3Y2U5NThhNWIyNzhl
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgK
KysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCkBAIC0yNDYs
NiArMjQ2LDcgQEAgY2xhc3MgR2FtZXBhZERhdGE7CiBjbGFzcyBHZW9sb2NhdGlvblBlcm1pc3Np
b25SZXF1ZXN0TWFuYWdlcjsKIGNsYXNzIExheWVySG9zdGluZ0NvbnRleHQ7CiBjbGFzcyBNZWRp
YURldmljZVNhbmRib3hFeHRlbnNpb25zOworY2xhc3MgTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9u
UmVxdWVzdE1hbmFnZXI7CiBjbGFzcyBOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFn
ZXI7CiBjbGFzcyBQREZQbHVnaW47CiBjbGFzcyBQYWdlQmFubmVyOwpAQCAtNjcyLDYgKzY3Mywx
MCBAQCBwdWJsaWM6CiAgICAgdm9pZCBjYXB0dXJlRGV2aWNlc0NoYW5nZWQoKTsKICNlbmRpZgog
CisjaWYgRU5BQkxFKEVOQ1JZUFRFRF9NRURJQSkKKyAgICBNZWRpYUtleVN5c3RlbVBlcm1pc3Np
b25SZXF1ZXN0TWFuYWdlciYgbWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIo
KSB7IHJldHVybiBtX21lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyOyB9Cisj
ZW5kaWYKKwogICAgIHZvaWQgZWxlbWVudERpZEZvY3VzKFdlYkNvcmU6OkVsZW1lbnQmKTsKICAg
ICB2b2lkIGVsZW1lbnREaWRSZWZvY3VzKFdlYkNvcmU6OkVsZW1lbnQmKTsKICAgICB2b2lkIGVs
ZW1lbnREaWRCbHVyKFdlYkNvcmU6OkVsZW1lbnQmKTsKQEAgLTE2NjcsNyArMTY3MiwxMSBAQCBw
cml2YXRlOgogI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCiAgICAgdm9pZCB1c2VyTWVkaWFBY2Nl
c3NXYXNHcmFudGVkKHVpbnQ2NF90IHVzZXJNZWRpYUlELCBXZWJDb3JlOjpDYXB0dXJlRGV2aWNl
JiYgYXVkaW9EZXZpY2VVSUQsIFdlYkNvcmU6OkNhcHR1cmVEZXZpY2UmJiB2aWRlb0RldmljZVVJ
RCwgU3RyaW5nJiYgbWVkaWFEZXZpY2VJZGVudGlmaWVySGFzaFNhbHQsIFNhbmRib3hFeHRlbnNp
b246OkhhbmRsZSYmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwogICAgIHZvaWQgdXNl
ck1lZGlhQWNjZXNzV2FzRGVuaWVkKHVpbnQ2NF90IHVzZXJNZWRpYUlELCB1aW50NjRfdCByZWFz
b24sIFN0cmluZyYmIGludmFsaWRDb25zdHJhaW50KTsKKyNlbmRpZgogCisjaWYgRU5BQkxFKEVO
Q1JZUFRFRF9NRURJQSkKKyAgICB2b2lkIG1lZGlhS2V5U3lzdGVtV2FzR3JhbnRlZCh1aW50NjRf
dCBtZWRpYUtleVN5c3RlbUlELCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOworICAgIHZv
aWQgbWVkaWFLZXlTeXN0ZW1XYXNEZW5pZWQodWludDY0X3QgbWVkaWFLZXlTeXN0ZW1JRCwgU3Ry
aW5nJiYgbWVzc2FnZSk7CiAjZW5kaWYKIAogICAgIHZvaWQgcmVxdWVzdE1lZGlhUGxheWJhY2tT
dGF0ZShDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYktpdDo6TWVkaWFQbGF5YmFja1N0YXRlKT4m
Jik7CkBAIC0xOTc5LDYgKzE5ODgsMTAgQEAgcHJpdmF0ZToKICAgICBVbmlxdWVSZWY8VXNlck1l
ZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyPiBtX3VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0
TWFuYWdlcjsKICNlbmRpZgogCisjaWYgRU5BQkxFKEVOQ1JZUFRFRF9NRURJQSkKKyAgICBVbmlx
dWVSZWY8TWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXI+IG1fbWVkaWFLZXlT
eXN0ZW1QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXI7CisjZW5kaWYKKwogICAgIHN0ZDo6dW5pcXVl
X3B0cjxXZWJDb3JlOjpQcmludENvbnRleHQ+IG1fcHJpbnRDb250ZXh0OwogI2lmIFBMQVRGT1JN
KEdUSykKICAgICBSZWZQdHI8V2ViUHJpbnRPcGVyYXRpb25HdGs+IG1fcHJpbnRPcGVyYXRpb247
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1l
c3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNz
YWdlcy5pbgppbmRleCAyZGE5OWNkMzcyMzkyZTgyYzUzMGQ0MmMwMWExMjg3NzBmYmQ4NzE3Li4y
M2ZjYTM1NzFmMDc0NzUwOTFmZjNmYzE0YmFiYzQ2NWUyMTZlZDRjIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluCisrKyBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4KQEAgLTM3
OCw2ICszNzgsMTEgQEAgR2VuZXJhdGVTeW50aGV0aWNFZGl0aW5nQ29tbWFuZChlbnVtOnVpbnQ4
X3QgV2ViS2l0OjpTeW50aGV0aWNFZGl0aW5nQ29tbWFuZFR5cGUKICAgICBDYXB0dXJlRGV2aWNl
c0NoYW5nZWQoKQogI2VuZGlmCiAKKyNpZiBFTkFCTEUoRU5DUllQVEVEX01FRElBKQorICAgIE1l
ZGlhS2V5U3lzdGVtV2FzR3JhbnRlZCh1aW50NjRfdCBtZWRpYUtleVN5c3RlbUlEKSAtPiAoKSBB
c3luYworICAgIE1lZGlhS2V5U3lzdGVtV2FzRGVuaWVkKHVpbnQ2NF90IG1lZGlhS2V5U3lzdGVt
SUQsIFN0cmluZyBtZXNzYWdlKQorI2VuZGlmCisKICAgICBSZXF1ZXN0TWVkaWFQbGF5YmFja1N0
YXRlKCkgLT4gKGVudW06dWludDhfdCBXZWJLaXQ6Ok1lZGlhUGxheWJhY2tTdGF0ZSBzdGF0ZSkg
QXN5bmMKICAgICBQYXVzZUFsbE1lZGlhUGxheWJhY2soKSAtPiAoKSBBc3luYwogICAgIFN1c3Bl
bmRBbGxNZWRpYVBsYXliYWNrKCkgLT4gKCkgQXN5bmMKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5n
ZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCBjNjg0M2RmZWRhODcwMDA0ZTlkMzkyZGUxNTU4
YmYwOTZkZjNmMDQ1Li42OTIzNWQ3OGUwMDI2MDMzMDBmNmU4YTZhMmI5NTgzYTc4ZWRiNTVkIDEw
MDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMzYgQEAKKzIwMjEtMDEtMzEgIFBoaWxpcHBlIE5vcm1hbmQgIDxwbm9ybWFuZEBpZ2FsaWEu
Y29tPgorCisgICAgICAgIFBlcm1pc3Npb24gcmVxdWVzdCBBUEkgZm9yIE1lZGlhS2V5U3lzdGVt
IGFjY2VzcyBzdXBwb3J0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0yMjExODcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBBZGQgYmFzaWMgc3VwcG9ydCBmb3IgTWVkaWFLZXlTeXN0ZW0gcGVybWlzc2lvbiBy
ZXF1ZXN0IHN1cHBvcnQgR1RLJ3MgTWluaUJyb3dzZXIuCisgICAgICAgIEFkZCBzdXBwb3J0IGZv
ciBzZXR0aW5nIHRoZSBwZXJtaXNzaW9uIHJlcXVlc3QgcmVzcG9uc2UgZnJvbSB0aGUgVGVzdFJ1
bm5lciwgZm9yIHVzYWdlIHdpdGhpbiBsYXlvdXQgdGVzdHMuCisgICAgICAgIEFkZCBHTGliIEFQ
SSB0ZXN0IGZvciB0aGUgTWVkaWFLZXlTeXN0ZW0gcGVybWlzc2lvbiByZXF1ZXN0IHN1cHBvcnQu
CisgICAgICAgIAorICAgICAgICAqIE1pbmlCcm93c2VyL2d0ay9Ccm93c2VyVGFiLmM6CisgICAg
ICAgIChwZXJtaXNzaW9uUmVxdWVzdERpYWxvZ1Jlc3BvbnNlKToKKyAgICAgICAgKGRlY2lkZVBl
cm1pc3Npb25SZXF1ZXN0KToKKyAgICAgICAgKGJyb3dzZXJfdGFiX2NsYXNzX2luaXQpOgorICAg
ICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0R0xpYi9UZXN0VUlDbGllbnQuY3BwOgor
ICAgICAgICAodGVzdFdlYlZpZXdNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0cyk6Cisg
ICAgICAgIChiZWZvcmVBbGwpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvZ2xpYi9XZWJLaXRH
TGliL1dlYlZpZXdUZXN0LmNwcDoKKyAgICAgICAgKFdlYlZpZXdUZXN0Ojppbml0aWFsaXplV2Vi
Vmlldyk6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5n
cy9UZXN0UnVubmVyLmlkbDoKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVu
ZGxlL1Rlc3RSdW5uZXIuY3BwOgorICAgICAgICAoV1RSOjpUZXN0UnVubmVyOjpzZXRJc01lZGlh
S2V5U3lzdGVtUGVybWlzc2lvbkdyYW50ZWQpOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIv
SW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5oOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIv
VGVzdENvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV1RSOjpkZWNpZGVQb2xpY3lGb3JNZWRpYUtl
eVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0KToKKyAgICAgICAgKFdUUjo6VGVzdENvbnRyb2xsZXI6
OmNvbXBsZXRlTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uQ2hlY2spOgorICAgICAgICAoV1RSOjpU
ZXN0Q29udHJvbGxlcjo6c2V0SXNNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25HcmFudGVkKToKKyAg
ICAgICAgKFdUUjo6VGVzdENvbnRyb2xsZXI6OmNyZWF0ZVdlYlZpZXdXaXRoT3B0aW9ucyk6Cisg
ICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5oOgorICAgICAgICAqIFdl
YktpdFRlc3RSdW5uZXIvVGVzdEludm9jYXRpb24uY3BwOgorICAgICAgICAoV1RSOjpUZXN0SW52
b2NhdGlvbjo6ZGlkUmVjZWl2ZVN5bmNocm9ub3VzTWVzc2FnZUZyb21JbmplY3RlZEJ1bmRsZSk6
CisKIDIwMjEtMDEtMjkgIERvbiBPbG1zdGVhZCAgPGRvbi5vbG1zdGVhZEBzb255LmNvbT4KIAog
ICAgICAgICBbd2Via2l0cHldIFRocmVhZC5pc0FsaXZlIHdhcyByZW5hbWVkIHRvIFRocmVhZC5p
c19hbGl2ZQpkaWZmIC0tZ2l0IGEvVG9vbHMvTWluaUJyb3dzZXIvZ3RrL0Jyb3dzZXJUYWIuYyBi
L1Rvb2xzL01pbmlCcm93c2VyL2d0ay9Ccm93c2VyVGFiLmMKaW5kZXggM2U1MzhhOWQ4YTVmNDhk
YzA4YjMzMGVkNDUxN2MyMjc1MzY4ZGE5Zi4uOTkzNTg3OTM2MzNlYTM4ZDU0ZWU3MjlkMWRmODhh
ZGE5ZTJkNDVmZiAxMDA2NDQKLS0tIGEvVG9vbHMvTWluaUJyb3dzZXIvZ3RrL0Jyb3dzZXJUYWIu
YworKysgYi9Ub29scy9NaW5pQnJvd3Nlci9ndGsvQnJvd3NlclRhYi5jCkBAIC02MCw2ICs2MCw3
IEBAIHN0cnVjdCBfQnJvd3NlclRhYiB7CiB9OwogCiBzdGF0aWMgR0hhc2hUYWJsZSAqdXNlck1l
ZGlhUGVybWlzc2lvbkdyYW50ZWRPcmlnaW5zOworc3RhdGljIEdIYXNoVGFibGUgKm1lZGlhS2V5
U3lzdGVtUGVybWlzc2lvbkdyYW50ZWRPcmlnaW5zOwogc3RydWN0IF9Ccm93c2VyVGFiQ2xhc3Mg
ewogICAgIEd0a0JveENsYXNzIHBhcmVudDsKIH07CkBAIC0yNjQsMTIgKzI2NSwxNiBAQCBzdGF0
aWMgdm9pZCBwZXJtaXNzaW9uUmVxdWVzdERpYWxvZ1Jlc3BvbnNlKEd0a1dpZGdldCAqZGlhbG9n
LCBnaW50IHJlc3BvbnNlLCBQZQogICAgIGNhc2UgR1RLX1JFU1BPTlNFX1lFUzoKICAgICAgICAg
aWYgKFdFQktJVF9JU19VU0VSX01FRElBX1BFUk1JU1NJT05fUkVRVUVTVChyZXF1ZXN0RGF0YS0+
cmVxdWVzdCkpCiAgICAgICAgICAgICBnX2hhc2hfdGFibGVfYWRkKHVzZXJNZWRpYVBlcm1pc3Np
b25HcmFudGVkT3JpZ2lucywgZ19zdHJkdXAocmVxdWVzdERhdGEtPm9yaWdpbikpOworICAgICAg
ICBpZiAoV0VCS0lUX0lTX01FRElBX0tFWV9TWVNURU1fUEVSTUlTU0lPTl9SRVFVRVNUKHJlcXVl
c3REYXRhLT5yZXF1ZXN0KSkKKyAgICAgICAgICAgIGdfaGFzaF90YWJsZV9hZGQobWVkaWFLZXlT
eXN0ZW1QZXJtaXNzaW9uR3JhbnRlZE9yaWdpbnMsIGdfc3RyZHVwKHJlcXVlc3REYXRhLT5vcmln
aW4pKTsKIAogICAgICAgICB3ZWJraXRfcGVybWlzc2lvbl9yZXF1ZXN0X2FsbG93KHJlcXVlc3RE
YXRhLT5yZXF1ZXN0KTsKICAgICAgICAgYnJlYWs7CiAgICAgZGVmYXVsdDoKICAgICAgICAgaWYg
KFdFQktJVF9JU19VU0VSX01FRElBX1BFUk1JU1NJT05fUkVRVUVTVChyZXF1ZXN0RGF0YS0+cmVx
dWVzdCkpCiAgICAgICAgICAgICBnX2hhc2hfdGFibGVfcmVtb3ZlKHVzZXJNZWRpYVBlcm1pc3Np
b25HcmFudGVkT3JpZ2lucywgcmVxdWVzdERhdGEtPm9yaWdpbik7CisgICAgICAgIGlmIChXRUJL
SVRfSVNfTUVESUFfS0VZX1NZU1RFTV9QRVJNSVNTSU9OX1JFUVVFU1QocmVxdWVzdERhdGEtPnJl
cXVlc3QpKQorICAgICAgICAgICAgZ19oYXNoX3RhYmxlX3JlbW92ZShtZWRpYUtleVN5c3RlbVBl
cm1pc3Npb25HcmFudGVkT3JpZ2lucywgcmVxdWVzdERhdGEtPm9yaWdpbik7CiAKICAgICAgICAg
d2Via2l0X3Blcm1pc3Npb25fcmVxdWVzdF9kZW55KHJlcXVlc3REYXRhLT5yZXF1ZXN0KTsKICAg
ICAgICAgYnJlYWs7CkBAIC0zNDAsNiArMzQ1LDE2IEBAIHN0YXRpYyBnYm9vbGVhbiBkZWNpZGVQ
ZXJtaXNzaW9uUmVxdWVzdChXZWJLaXRXZWJWaWV3ICp3ZWJWaWV3LCBXZWJLaXRQZXJtaXNzaW9u
CiAgICAgICAgIGNvbnN0IGdjaGFyICpjdXJyZW50RG9tYWluID0gd2Via2l0X3dlYnNpdGVfZGF0
YV9hY2Nlc3NfcGVybWlzc2lvbl9yZXF1ZXN0X2dldF9jdXJyZW50X2RvbWFpbih3ZWJzaXRlRGF0
YUFjY2Vzc1JlcXVlc3QpOwogICAgICAgICB0ZXh0ID0gZ19zdHJkdXBfcHJpbnRmKCJEbyB5b3Ug
d2FudCB0byBhbGxvdyBcIiVzXCIgdG8gdXNlIGNvb2tpZXMgd2hpbGUgYnJvd3NpbmcgXCIlc1wi
PyBUaGlzIHdpbGwgYWxsb3cgXCIlc1wiIHRvIHRyYWNrIHlvdXIgYWN0aXZpdHkiLAogICAgICAg
ICAgICAgcmVxdWVzdGluZ0RvbWFpbiwgY3VycmVudERvbWFpbiwgcmVxdWVzdGluZ0RvbWFpbik7
CisgICAgfSBlbHNlIGlmIChXRUJLSVRfSVNfTUVESUFfS0VZX1NZU1RFTV9QRVJNSVNTSU9OX1JF
UVVFU1QocmVxdWVzdCkpIHsKKyAgICAgICAgY2hhciAqb3JpZ2luID0gZ2V0V2ViVmlld09yaWdp
bih3ZWJWaWV3KTsKKyAgICAgICAgaWYgKGdfaGFzaF90YWJsZV9jb250YWlucyhtZWRpYUtleVN5
c3RlbVBlcm1pc3Npb25HcmFudGVkT3JpZ2lucywgb3JpZ2luKSkgeworICAgICAgICAgICAgd2Vi
a2l0X3Blcm1pc3Npb25fcmVxdWVzdF9hbGxvdyhyZXF1ZXN0KTsKKyAgICAgICAgICAgIGdfZnJl
ZShvcmlnaW4pOworICAgICAgICAgICAgcmV0dXJuIFRSVUU7CisgICAgICAgIH0KKyAgICAgICAg
Z19mcmVlKG9yaWdpbik7CisgICAgICAgIHRpdGxlID0gIkRSTSBzeXN0ZW0gYWNjZXNzIHJlcXVl
c3QiOworICAgICAgICB0ZXh0ID0gZ19zdHJkdXBfcHJpbnRmKCJBbGxvdyB0byB1c2UgYSBDRE0g
cHJvdmlkaW5nIGFjY2VzcyB0byAlcz8iLCB3ZWJraXRfbWVkaWFfa2V5X3N5c3RlbV9wZXJtaXNz
aW9uX2dldF9uYW1lKFdFQktJVF9NRURJQV9LRVlfU1lTVEVNX1BFUk1JU1NJT05fUkVRVUVTVChy
ZXF1ZXN0KSkpOwogICAgIH0gZWxzZSB7CiAgICAgICAgIGdfcHJpbnQoIiVzIHJlcXVlc3Qgbm90
IGhhbmRsZWRcbiIsIEdfT0JKRUNUX1RZUEVfTkFNRShyZXF1ZXN0KSk7CiAgICAgICAgIHJldHVy
biBGQUxTRTsKQEAgLTY1NSw2ICs2NzAsOSBAQCBzdGF0aWMgdm9pZCBicm93c2VyX3RhYl9jbGFz
c19pbml0KEJyb3dzZXJUYWJDbGFzcyAqa2xhc3MpCiAgICAgaWYgKCF1c2VyTWVkaWFQZXJtaXNz
aW9uR3JhbnRlZE9yaWdpbnMpCiAgICAgICAgIHVzZXJNZWRpYVBlcm1pc3Npb25HcmFudGVkT3Jp
Z2lucyA9IGdfaGFzaF90YWJsZV9uZXdfZnVsbChnX3N0cl9oYXNoLCBnX3N0cl9lcXVhbCwgZ19m
cmVlLCBOVUxMKTsKIAorICAgIGlmICghbWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uR3JhbnRlZE9y
aWdpbnMpCisgICAgICAgIG1lZGlhS2V5U3lzdGVtUGVybWlzc2lvbkdyYW50ZWRPcmlnaW5zID0g
Z19oYXNoX3RhYmxlX25ld19mdWxsKGdfc3RyX2hhc2gsIGdfc3RyX2VxdWFsLCBnX2ZyZWUsIE5V
TEwpOworCiAgICAgZ19vYmplY3RfY2xhc3NfaW5zdGFsbF9wcm9wZXJ0eSgKICAgICAgICAgZ29i
amVjdENsYXNzLAogICAgICAgICBQUk9QX1ZJRVcsCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYktpdEdMaWIvVGVzdFVJQ2xpZW50LmNwcCBiL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvV2ViS2l0R0xpYi9UZXN0VUlDbGllbnQuY3BwCmluZGV4IDBmOWNhMmEzODNk
Mjc5ZjNkNTMzMmFlOTNiMDQwZWU0YzE3ZWYzMWEuLmM3ZmE2ZGUwZjVkZjZkY2U5ZjNkNjYxNGY1
NGUxNTQ5OTU3NDkyYTUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
S2l0R0xpYi9UZXN0VUlDbGllbnQuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViS2l0R0xpYi9UZXN0VUlDbGllbnQuY3BwCkBAIC04OTYsNiArODk2LDQyIEBAIHN0YXRpYyB2
b2lkIHRlc3RXZWJWaWV3R2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdHMoVUlDbGllbnRUZXN0
KiB0ZXN0LCBnY29uc3RwCiAgICAgVGVzdDo6YWRkTG9nRmF0YWxGbGFnKEdfTE9HX0xFVkVMX1dB
Uk5JTkcpOwogfQogCisjaWYgRU5BQkxFKEVOQ1JZUFRFRF9NRURJQSkKK3N0YXRpYyB2b2lkIHRl
c3RXZWJWaWV3TWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdHMoVUlDbGllbnRUZXN0KiB0
ZXN0LCBnY29uc3Rwb2ludGVyKQoreworICAgIHRlc3QtPnNob3dJbldpbmRvdygpOworICAgIHN0
YXRpYyBjb25zdCBjaGFyKiBtZWRpYUtleVN5c3RlbVJlcXVlc3RIVE1MID0gIjxodG1sPiIKKyAg
ICAgICAgIiAgPHNjcmlwdD4iCisgICAgICAgICIgIGZ1bmN0aW9uIHJ1blRlc3QoKSIKKyAgICAg
ICAgIiAgeyIKKyAgICAgICAgIiAgICBjb25zdCBvcHRpb25zID0gWyIKKyAgICAgICAgIiAgICAg
eyBpbml0RGF0YVR5cGVzOiBbXCJjZW5jXCJdLCIKKyAgICAgICAgIiAgICAgICB2aWRlb0NhcGFi
aWxpdGllczogW3tjb250ZW50VHlwZSA6ICd2aWRlby9tcDQnfV0gfSIKKyAgICAgICAgIiAgICBd
OyIKKyAgICAgICAgIiAgICBuYXZpZ2F0b3IucmVxdWVzdE1lZGlhS2V5U3lzdGVtQWNjZXNzKCdv
cmcudzMuY2xlYXJrZXknLCBvcHRpb25zKS50aGVuKChhY2Nlc3MpID0+IHsiCisgICAgICAgICIg
ICAgICB3aW5kb3cud2Via2l0Lm1lc3NhZ2VIYW5kbGVycy5wZXJtaXNzaW9uLnBvc3RNZXNzYWdl
KCdPSycpOyIKKyAgICAgICAgIiAgICB9KS5jYXRjaCgoZSkgPT4geyIKKyAgICAgICAgIiAgICAg
IHdpbmRvdy53ZWJraXQubWVzc2FnZUhhbmRsZXJzLnBlcm1pc3Npb24ucG9zdE1lc3NhZ2UoZS5u
YW1lKTsiCisgICAgICAgICIgICAgfSk7IgorICAgICAgICAiICB9IgorICAgICAgICAiICA8L3Nj
cmlwdD4iCisgICAgICAgICIgIDxib2R5IG9ubG9hZD0ncnVuVGVzdCgpOyc+PC9ib2R5PiIKKyAg
ICAgICAgIjwvaHRtbD4iOworCisgICAgLy8gVGVzdCBkZW55aW5nIGEgcGVybWlzc2lvbiByZXF1
ZXN0LgorICAgIHRlc3QtPm1fYWxsb3dQZXJtaXNzaW9uUmVxdWVzdHMgPSBmYWxzZTsKKyAgICB0
ZXN0LT5sb2FkSHRtbChtZWRpYUtleVN5c3RlbVJlcXVlc3RIVE1MLCAiaHR0cHM6Ly9mb28uY29t
L2JhciIpOworICAgIGNvbnN0IGdjaGFyKiByZXN1bHQgPSB0ZXN0LT53YWl0VW50aWxQZXJtaXNz
aW9uUmVzdWx0TWVzc2FnZVJlY2VpdmVkKCk7CisgICAgZ19hc3NlcnRfY21wc3RyKHJlc3VsdCwg
PT0sICJOb3RTdXBwb3J0ZWRFcnJvciIpOworCisgICAgLy8gVGVzdCBhbGxvd2luZyBhIHBlcm1p
c3Npb24gcmVxdWVzdC4KKyAgICB0ZXN0LT5tX2FsbG93UGVybWlzc2lvblJlcXVlc3RzID0gdHJ1
ZTsKKyAgICB0ZXN0LT5sb2FkSHRtbChtZWRpYUtleVN5c3RlbVJlcXVlc3RIVE1MLCAiaHR0cHM6
Ly9mb28uY29tL2JhciIpOworICAgIHJlc3VsdCA9IHRlc3QtPndhaXRVbnRpbFBlcm1pc3Npb25S
ZXN1bHRNZXNzYWdlUmVjZWl2ZWQoKTsKKyAgICBnX2Fzc2VydF9jbXBzdHIocmVzdWx0LCA9PSwg
Ik9LIik7Cit9CisjZW5kaWYKKwogI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCiBzdGF0aWMgdm9p
ZCB0ZXN0V2ViVmlld1VzZXJNZWRpYUVudW1lcmF0ZURldmljZXNQZXJtaXNzaW9uQ2hlY2soVUlD
bGllbnRUZXN0KiB0ZXN0LCBnY29uc3Rwb2ludGVyKQogewpAQCAtMTI5OSw2ICsxMzM1LDkgQEAg
dm9pZCBiZWZvcmVBbGwoKQogICAgIFVJQ2xpZW50VGVzdDo6YWRkKCJXZWJLaXRXZWJWaWV3Iiwg
Im1vdXNlLXRhcmdldCIsIHRlc3RXZWJWaWV3TW91c2VUYXJnZXQpOwogI2VuZGlmCiAgICAgVUlD
bGllbnRUZXN0OjphZGQoIldlYktpdFdlYlZpZXciLCAiZ2VvbG9jYXRpb24tcGVybWlzc2lvbi1y
ZXF1ZXN0cyIsIHRlc3RXZWJWaWV3R2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdHMpOworI2lm
IEVOQUJMRShFTkNSWVBURURfTUVESUEpCisgICAgVUlDbGllbnRUZXN0OjphZGQoIldlYktpdFdl
YlZpZXciLCAibWVkaWFLZXlTeXN0ZW0tcGVybWlzc2lvbi1yZXF1ZXN0cyIsIHRlc3RXZWJWaWV3
TWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdHMpOworI2VuZGlmCiAjaWYgRU5BQkxFKE1F
RElBX1NUUkVBTSkKICAgICBVSUNsaWVudFRlc3Q6OmFkZCgiV2ViS2l0V2ViVmlldyIsICJ1c2Vy
bWVkaWEtZW51bWVyYXRlZGV2aWNlcy1wZXJtaXNzaW9uLWNoZWNrIiwgdGVzdFdlYlZpZXdVc2Vy
TWVkaWFFbnVtZXJhdGVEZXZpY2VzUGVybWlzc2lvbkNoZWNrKTsKICAgICBVSUNsaWVudFRlc3Q6
OmFkZCgiV2ViS2l0V2ViVmlldyIsICJ1c2VybWVkaWEtcGVybWlzc2lvbi1yZXF1ZXN0cyIsIHRl
c3RXZWJWaWV3VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RzKTsKZGlmZiAtLWdpdCBhL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvZ2xpYi9XZWJLaXRHTGliL1dlYlZpZXdUZXN0LmNwcCBiL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvZ2xpYi9XZWJLaXRHTGliL1dlYlZpZXdUZXN0LmNwcAppbmRleCA3YTEzZWI4
Zjg0MDJkZjA1MTdhZjA2OGQ5MWQyYWZjZDA5ZGU5NjQ2Li42YzdlOWI5NDZiNjQ3Y2RiNzI0YTVl
MjY2MDllNzczOTFkOGQzMjdkIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL2dsaWIv
V2ViS2l0R0xpYi9XZWJWaWV3VGVzdC5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9nbGli
L1dlYktpdEdMaWIvV2ViVmlld1Rlc3QuY3BwCkBAIC02MCw2ICs2MCwxMiBAQCB2b2lkIFdlYlZp
ZXdUZXN0Ojppbml0aWFsaXplV2ViVmlldygpCiAgICAgICAgICJ1c2VyLWNvbnRlbnQtbWFuYWdl
ciIsIG1fdXNlckNvbnRlbnRNYW5hZ2VyLmdldCgpLAogICAgICAgICAiaXMtZXBoZW1lcmFsIiwg
c2hvdWxkQ3JlYXRlRXBoZW1lcmFsV2ViVmlldywKICAgICAgICAgbnVsbHB0cikpOworCisjaWYg
RU5BQkxFKEVOQ1JZUFRFRF9NRURJQSkKKyAgICBhdXRvKiBzZXR0aW5ncyA9IHdlYmtpdF93ZWJf
dmlld19nZXRfc2V0dGluZ3MobV93ZWJWaWV3KTsKKyAgICB3ZWJraXRfc2V0dGluZ3Nfc2V0X2Vu
YWJsZV9lbmNyeXB0ZWRfbWVkaWEoc2V0dGluZ3MsIFRSVUUpOworI2VuZGlmCisKICAgICBwbGF0
Zm9ybUluaXRpYWxpemVXZWJWaWV3KCk7CiAgICAgYXNzZXJ0T2JqZWN0SXNEZWxldGVkV2hlblRl
c3RGaW5pc2hlcyhHX09CSkVDVChtX3dlYlZpZXcpKTsKIApkaWZmIC0tZ2l0IGEvVG9vbHMvV2Vi
S2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9UZXN0UnVubmVyLmlkbCBiL1Rv
b2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvVGVzdFJ1bm5lci5p
ZGwKaW5kZXggZGIxNTk5YTJjNTYwMmFlODFhYjJmMjRlMDhmOWY5NTUzOWMwNWI5YS4uYTA3MWVj
ZGRkOWU0MzQ4M2ZlNzcxOTY4NmMzNWE0ZjM3YjhiMWJjNyAxMDA2NDQKLS0tIGEvVG9vbHMvV2Vi
S2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9UZXN0UnVubmVyLmlkbAorKysg
Yi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0JpbmRpbmdzL1Rlc3RSdW5u
ZXIuaWRsCkBAIC00MDgsNCArNDA4LDcgQEAgaW50ZXJmYWNlIFRlc3RSdW5uZXIgewogCiAgICAg
Ly8gU3BlZWNoUmVjb2duaXRpb24KICAgICB1bmRlZmluZWQgc2V0SXNTcGVlY2hSZWNvZ25pdGlv
blBlcm1pc3Npb25HcmFudGVkKGJvb2xlYW4gdmFsdWUpOworCisgICAgLy8gTWVkaWFLZXlTeXN0
ZW0KKyAgICB1bmRlZmluZWQgc2V0SXNNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25HcmFudGVkKGJv
b2xlYW4gdmFsdWUpOwogfTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5q
ZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5jcHAgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVj
dGVkQnVuZGxlL1Rlc3RSdW5uZXIuY3BwCmluZGV4IDYzODA5ODkyNTE4Y2NlM2NmZDZiYTJkZmFj
ZGM2ZjVlZjkwM2JhYjYuLjg2NGNjZTI4NTk3YTQxOGQ4OWE1MzU3ZGM5MjAwY2NkMDE5NGM3ZDUg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1
bm5lci5jcHAKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0
UnVubmVyLmNwcApAQCAtMjA4NCw2ICsyMDg0LDExIEBAIHZvaWQgVGVzdFJ1bm5lcjo6c2V0SXNT
cGVlY2hSZWNvZ25pdGlvblBlcm1pc3Npb25HcmFudGVkKGJvb2wgZ3JhbnRlZCkKICAgICBwb3N0
U3luY2hyb25vdXNQYWdlTWVzc2FnZSgic2V0SXNTcGVlY2hSZWNvZ25pdGlvblBlcm1pc3Npb25H
cmFudGVkIiwgZ3JhbnRlZCk7CiB9CiAKK3ZvaWQgVGVzdFJ1bm5lcjo6c2V0SXNNZWRpYUtleVN5
c3RlbVBlcm1pc3Npb25HcmFudGVkKGJvb2wgZ3JhbnRlZCkKK3sKKyAgICBwb3N0U3luY2hyb25v
dXNQYWdlTWVzc2FnZSgic2V0SXNNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25HcmFudGVkIiwgZ3Jh
bnRlZCk7Cit9CisKIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAogCiB9IC8vIG5h
bWVzcGFjZSBXVFIKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRC
dW5kbGUvVGVzdFJ1bm5lci5oIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRs
ZS9UZXN0UnVubmVyLmgKaW5kZXggOTNhOTdjYmRkZTQ4NzVjYmQzMzVhNzBmY2I5ZmY1M2RiNGYy
OGI0NC4uYmNmNzEwYjdiODU0NjlmOWJjNjkyMDQxMjgyNzE0NmQyM2IzYmM5NyAxMDA2NDQKLS0t
IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmgKKysr
IGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmgKQEAg
LTUxOSw2ICs1MTksOCBAQCBwdWJsaWM6CiAKICAgICB2b2lkIHNldElzU3BlZWNoUmVjb2duaXRp
b25QZXJtaXNzaW9uR3JhbnRlZChib29sKTsKIAorICAgIHZvaWQgc2V0SXNNZWRpYUtleVN5c3Rl
bVBlcm1pc3Npb25HcmFudGVkKGJvb2wpOworCiBwcml2YXRlOgogICAgIFRlc3RSdW5uZXIoKTsK
IApkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAg
Yi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcAppbmRleCBkMmNiZWY0
MjUzZGZlNjUxMzI4NzIzZDU3OWRiMzQxNGJmMWRhNzhjLi5iM2YzYjkzM2Q5ZGFmMDA2ZTBmZjg3
MzI0NGU3NWE5MzZmNzIyOGQ4IDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rl
c3RDb250cm9sbGVyLmNwcAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9s
bGVyLmNwcApAQCAtNDYsNiArNDYsNyBAQAogI2luY2x1ZGUgPFdlYktpdC9XS0ZyYW1lSW5mb1Jl
Zi5oPgogI2luY2x1ZGUgPFdlYktpdC9XS0hUVFBDb29raWVTdG9yZVJlZi5oPgogI2luY2x1ZGUg
PFdlYktpdC9XS0ljb25EYXRhYmFzZS5oPgorI2luY2x1ZGUgPFdlYktpdC9XS01lZGlhS2V5U3lz
dGVtUGVybWlzc2lvbkNhbGxiYWNrLmg+CiAjaW5jbHVkZSA8V2ViS2l0L1dLTWVzc2FnZUxpc3Rl
bmVyLmg+CiAjaW5jbHVkZSA8V2ViS2l0L1dLTW9ja0Rpc3BsYXkuaD4KICNpbmNsdWRlIDxXZWJL
aXQvV0tNb2NrTWVkaWFEZXZpY2UuaD4KQEAgLTM0Myw2ICszNDQsMjEgQEAgdm9pZCBUZXN0Q29u
dHJvbGxlcjo6c2V0SXNTcGVlY2hSZWNvZ25pdGlvblBlcm1pc3Npb25HcmFudGVkKGJvb2wgZ3Jh
bnRlZCkKICAgICBtX2lzU3BlZWNoUmVjb2duaXRpb25QZXJtaXNzaW9uR3JhbnRlZCA9IGdyYW50
ZWQ7CiB9CiAKK3N0YXRpYyB2b2lkIGRlY2lkZVBvbGljeUZvck1lZGlhS2V5U3lzdGVtUGVybWlz
c2lvblJlcXVlc3QoV0tQYWdlUmVmLCBXS1NlY3VyaXR5T3JpZ2luUmVmLCBXS1N0cmluZ1JlZiwg
V0tNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25DYWxsYmFja1JlZiBjYWxsYmFjaykKK3sKKyAgICBU
ZXN0Q29udHJvbGxlcjo6c2luZ2xldG9uKCkuY29tcGxldGVNZWRpYUtleVN5c3RlbVBlcm1pc3Np
b25DaGVjayhjYWxsYmFjayk7Cit9CisKK3ZvaWQgVGVzdENvbnRyb2xsZXI6OmNvbXBsZXRlTWVk
aWFLZXlTeXN0ZW1QZXJtaXNzaW9uQ2hlY2soV0tNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25DYWxs
YmFja1JlZiBjYWxsYmFjaykKK3sKKyAgICBXS01lZGlhS2V5U3lzdGVtUGVybWlzc2lvbkNhbGxi
YWNrQ29tcGxldGUoY2FsbGJhY2ssIG1faXNNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25HcmFudGVk
KTsKK30KKwordm9pZCBUZXN0Q29udHJvbGxlcjo6c2V0SXNNZWRpYUtleVN5c3RlbVBlcm1pc3Np
b25HcmFudGVkKGJvb2wgZ3JhbnRlZCkKK3sKKyAgICBtX2lzTWVkaWFLZXlTeXN0ZW1QZXJtaXNz
aW9uR3JhbnRlZCA9IGdyYW50ZWQ7Cit9CisKIFdLUGFnZVJlZiBUZXN0Q29udHJvbGxlcjo6Y3Jl
YXRlT3RoZXJQYWdlKFdLUGFnZVJlZiwgV0tQYWdlQ29uZmlndXJhdGlvblJlZiBjb25maWd1cmF0
aW9uLCBXS05hdmlnYXRpb25BY3Rpb25SZWYgbmF2aWdhdGlvbkFjdGlvbiwgV0tXaW5kb3dGZWF0
dXJlc1JlZiB3aW5kb3dGZWF0dXJlcywgY29uc3Qgdm9pZCAqY2xpZW50SW5mbykKIHsKICAgICBQ
bGF0Zm9ybVdlYlZpZXcqIHBhcmVudFZpZXcgPSBzdGF0aWNfY2FzdDxQbGF0Zm9ybVdlYlZpZXcq
Pihjb25zdF9jYXN0PHZvaWQqPihjbGllbnRJbmZvKSk7CkBAIC02OTksOCArNzE1LDggQEAgdm9p
ZCBUZXN0Q29udHJvbGxlcjo6Y3JlYXRlV2ViVmlld1dpdGhPcHRpb25zKGNvbnN0IFRlc3RPcHRp
b25zJiBvcHRpb25zKQogICAgIFdLSFRUUENvb2tpZVN0b3JlRGVsZXRlQWxsQ29va2llcyhXS1dl
YnNpdGVEYXRhU3RvcmVHZXRIVFRQQ29va2llU3RvcmUod2Vic2l0ZURhdGFTdG9yZSgpKSwgbnVs
bHB0ciwgbnVsbHB0cik7CiAKICAgICBwbGF0Zm9ybUNyZWF0ZVdlYlZpZXcoY29uZmlndXJhdGlv
bi5nZXQoKSwgb3B0aW9ucyk7Ci0gICAgV0tQYWdlVUlDbGllbnRWMTUgcGFnZVVJQ2xpZW50ID0g
ewotICAgICAgICB7IDE1LCBtX21haW5XZWJWaWV3LmdldCgpIH0sCisgICAgV0tQYWdlVUlDbGll
bnRWMTYgcGFnZVVJQ2xpZW50ID0geworICAgICAgICB7IDE2LCBtX21haW5XZWJWaWV3LmdldCgp
IH0sCiAgICAgICAgIDAsIC8vIGNyZWF0ZU5ld1BhZ2VfZGVwcmVjYXRlZEZvclVzZVdpdGhWMAog
ICAgICAgICAwLCAvLyBzaG93UGFnZQogICAgICAgICAwLCAvLyBjbG9zZQpAQCAtNzc0LDcgKzc5
MCw4IEBAIHZvaWQgVGVzdENvbnRyb2xsZXI6OmNyZWF0ZVdlYlZpZXdXaXRoT3B0aW9ucyhjb25z
dCBUZXN0T3B0aW9ucyYgb3B0aW9ucykKICAgICAgICAgMCwgLy8gcmVxdWVzdFN0b3JhZ2VBY2Nl
c3NDb25maXJtCiAgICAgICAgIHNob3VsZEFsbG93RGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25B
Y2Nlc3MsCiAgICAgICAgIHJ1bldlYkF1dGhlbnRpY2F0aW9uUGFuZWwsCi0gICAgICAgIGRlY2lk
ZVBvbGljeUZvclNwZWVjaFJlY29nbml0aW9uUGVybWlzc2lvblJlcXVlc3QKKyAgICAgICAgZGVj
aWRlUG9saWN5Rm9yU3BlZWNoUmVjb2duaXRpb25QZXJtaXNzaW9uUmVxdWVzdCwKKyAgICAgICAg
ZGVjaWRlUG9saWN5Rm9yTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdAogICAgIH07CiAg
ICAgV0tQYWdlU2V0UGFnZVVJQ2xpZW50KG1fbWFpbldlYlZpZXctPnBhZ2UoKSwgJnBhZ2VVSUNs
aWVudC5iYXNlKTsKIApkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29u
dHJvbGxlci5oIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5oCmluZGV4
IGJiNzVkNTA3MDJjM2E1M2YzOWRlMTU4MWRjYzRkM2IzMzczOTY0Y2IuLjgxOGMyYjRlYzRhNTYy
YmMwNjdhNGYzZDVjZWJiY2RiZDA1YzA0N2MgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RS
dW5uZXIvVGVzdENvbnRyb2xsZXIuaAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RD
b250cm9sbGVyLmgKQEAgLTM1Niw2ICszNTYsOSBAQCBwdWJsaWM6CiAgICAgdm9pZCBjb21wbGV0
ZVNwZWVjaFJlY29nbml0aW9uUGVybWlzc2lvbkNoZWNrKFdLU3BlZWNoUmVjb2duaXRpb25QZXJt
aXNzaW9uQ2FsbGJhY2tSZWYpOwogICAgIHZvaWQgc2V0SXNTcGVlY2hSZWNvZ25pdGlvblBlcm1p
c3Npb25HcmFudGVkKGJvb2wpOwogCisgICAgdm9pZCBjb21wbGV0ZU1lZGlhS2V5U3lzdGVtUGVy
bWlzc2lvbkNoZWNrKFdLTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uQ2FsbGJhY2tSZWYpOworICAg
IHZvaWQgc2V0SXNNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25HcmFudGVkKGJvb2wpOworCiBwcml2
YXRlOgogICAgIFdLUmV0YWluUHRyPFdLUGFnZUNvbmZpZ3VyYXRpb25SZWY+IGdlbmVyYXRlUGFn
ZUNvbmZpZ3VyYXRpb24oY29uc3QgVGVzdE9wdGlvbnMmKTsKICAgICBXS1JldGFpblB0cjxXS0Nv
bnRleHRDb25maWd1cmF0aW9uUmVmPiBnZW5lcmF0ZUNvbnRleHRDb25maWd1cmF0aW9uKGNvbnN0
IFRlc3RPcHRpb25zJikgY29uc3Q7CkBAIC02NDcsNiArNjUwLDggQEAgcHJpdmF0ZToKICNlbmRp
ZgogCiAgICAgYm9vbCBtX2lzU3BlZWNoUmVjb2duaXRpb25QZXJtaXNzaW9uR3JhbnRlZCB7IGZh
bHNlIH07CisKKyAgICBib29sIG1faXNNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25HcmFudGVkIHsg
dHJ1ZSB9OwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV1RSCmRpZmYgLS1naXQgYS9Ub29scy9XZWJL
aXRUZXN0UnVubmVyL1Rlc3RJbnZvY2F0aW9uLmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIv
VGVzdEludm9jYXRpb24uY3BwCmluZGV4IDU5OGRmYzdkMWFjMGUzN2JiMjJmYjc4NGJhMTU0YWI3
NDc3YWVhMTUuLjU1MDM1NWM3YjhiOTg0ODRhN2QyOGNmNTU5NWY2Mzg3NTE3YmY0YmEgMTAwNjQ0
Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdEludm9jYXRpb24uY3BwCisrKyBiL1Rv
b2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdEludm9jYXRpb24uY3BwCkBAIC0xMzYwLDYgKzEzNjAs
MTEgQEAgV0tSZXRhaW5QdHI8V0tUeXBlUmVmPiBUZXN0SW52b2NhdGlvbjo6ZGlkUmVjZWl2ZVN5
bmNocm9ub3VzTWVzc2FnZUZyb21JbmplY3RlZEIKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAg
ICAgfQogCisgICAgaWYgKFdLU3RyaW5nSXNFcXVhbFRvVVRGOENTdHJpbmcobWVzc2FnZU5hbWUs
ICJzZXRJc01lZGlhS2V5U3lzdGVtUGVybWlzc2lvbkdyYW50ZWQiKSkgeworICAgICAgICBUZXN0
Q29udHJvbGxlcjo6c2luZ2xldG9uKCkuc2V0SXNNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25HcmFu
dGVkKGJvb2xlYW5WYWx1ZShtZXNzYWdlQm9keSkpOworICAgICAgICByZXR1cm4gbnVsbHB0cjsK
KyAgICB9CisKICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICByZXR1cm4gbnVsbHB0cjsK
IH0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5n
ZUxvZwppbmRleCA4ZmExNjk1NjIxNjY5NDIxYTU1YmI1YWVkNzJjNTc5NmM1MzY4NTM2Li43OWM1
NmI0Y2M1YTEwZTdmYWE2Yzc0ZmE3ZWExYTVhZWQwNzI5NDI1IDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYg
QEAKKzIwMjEtMDEtMzEgIFBoaWxpcHBlIE5vcm1hbmQgIDxwbm9ybWFuZEBpZ2FsaWEuY29tPgor
CisgICAgICAgIFBlcm1pc3Npb24gcmVxdWVzdCBBUEkgZm9yIE1lZGlhS2V5U3lzdGVtIGFjY2Vz
cyBzdXBwb3J0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0yMjExODcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBBZGQgYmFzaWMgY292ZXJhZ2Ugc3VwcG9ydCBmb3Igb3ZlcnJpZGluZyB0aGUgTWVkaWFLZXlT
eXN0ZW0gcGVybWlzc2lvbiBhbnN3ZXIgYW5kIHRodXMgaGF2ZQorICAgICAgICB0aGUgcHJvbWlz
ZSByZWplY3Rpb24gdGVzdGVkIGluIHRoaXMgY2FzZS4KKworICAgICAgICAqIG1lZGlhL2VuY3J5
cHRlZC1tZWRpYS9tb2NrLU1lZGlhS2V5U3lzdGVtQWNjZXNzLWV4cGVjdGVkLnR4dDoKKyAgICAg
ICAgKiBtZWRpYS9lbmNyeXB0ZWQtbWVkaWEvbW9jay1NZWRpYUtleVN5c3RlbUFjY2Vzcy5odG1s
OgorCiAyMDIxLTAxLTMwICBTYW0gV2VpbmlnICA8d2VpbmlnQGFwcGxlLmNvbT4KIAogICAgICAg
ICBBZGQgc3VwcG9ydCBmb3IgY29sb3IocmVjMjAyMCAuLi4pIGFzIHBhcnQgb2YgQ1NTIENvbG9y
IDQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL21lZGlhL2VuY3J5cHRlZC1tZWRpYS9tb2NrLU1l
ZGlhS2V5U3lzdGVtQWNjZXNzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL21lZGlhL2VuY3J5
cHRlZC1tZWRpYS9tb2NrLU1lZGlhS2V5U3lzdGVtQWNjZXNzLWV4cGVjdGVkLnR4dAppbmRleCAy
MDkyMzRkNTExOThmMGMxMjQ4YWVkNmVjM2I3NTYzYTE3NTBkZGM0Li4xMjBiYTFmMmMyODdjZWI3
NjhlZjBhNmY0YTJmOGU0OTJlZWE0YWEwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9tZWRpYS9l
bmNyeXB0ZWQtbWVkaWEvbW9jay1NZWRpYUtleVN5c3RlbUFjY2Vzcy1leHBlY3RlZC50eHQKKysr
IGIvTGF5b3V0VGVzdHMvbWVkaWEvZW5jcnlwdGVkLW1lZGlhL21vY2stTWVkaWFLZXlTeXN0ZW1B
Y2Nlc3MtZXhwZWN0ZWQudHh0CkBAIC0zMSw2ICszMSwxMCBAQCBSVU4oY2FwYWJpbGl0aWVzLnBl
cnNpc3RlbnRTdGF0ZSA9ICJub3QtYWxsb3dlZCIpCiBSVU4ocHJvbWlzZSA9IG5hdmlnYXRvci5y
ZXF1ZXN0TWVkaWFLZXlTeXN0ZW1BY2Nlc3MoIm9yZy53ZWJraXQubW9jayIsIFtjYXBhYmlsaXRp
ZXNdKSkKIFByb21pc2UgcmVzb2x2ZWQgT0sKIAorUlVOKHRlc3RSdW5uZXIuc2V0SXNNZWRpYUtl
eVN5c3RlbVBlcm1pc3Npb25HcmFudGVkKGZhbHNlKSkKK1JVTihwcm9taXNlID0gbmF2aWdhdG9y
LnJlcXVlc3RNZWRpYUtleVN5c3RlbUFjY2Vzcygib3JnLndlYmtpdC5tb2NrIiwgW2NhcGFiaWxp
dGllc10pKQorUHJvbWlzZSByZWplY3RlZCBjb3JyZWN0bHkgT0sKKwogUlVOKHByb21pc2UgPSBt
ZWRpYUtleVN5c3RlbUFjY2Vzcy5jcmVhdGVNZWRpYUtleXMoKSkKIFByb21pc2UgcmVzb2x2ZWQg
T0sKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvbWVkaWEvZW5jcnlwdGVkLW1lZGlhL21vY2st
TWVkaWFLZXlTeXN0ZW1BY2Nlc3MuaHRtbCBiL0xheW91dFRlc3RzL21lZGlhL2VuY3J5cHRlZC1t
ZWRpYS9tb2NrLU1lZGlhS2V5U3lzdGVtQWNjZXNzLmh0bWwKaW5kZXggNDc5NmYxOGMyMDFmMTc0
NmQ3ZGY0MzI3NDJkOTc1Yzc1ZWU0YmE3NS4uNTU1YjllZTc2OWVlYmQxNmQ5YTY3NjkyYjYzNzAz
ZDRjYTMyYzcwOSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvbWVkaWEvZW5jcnlwdGVkLW1lZGlh
L21vY2stTWVkaWFLZXlTeXN0ZW1BY2Nlc3MuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9tZWRpYS9l
bmNyeXB0ZWQtbWVkaWEvbW9jay1NZWRpYUtleVN5c3RlbUFjY2Vzcy5odG1sCkBAIC04NCw2ICs4
NCwxMyBAQAogICAgICAgICB9LAogCiAgICAgICAgIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAg
cnVuKCd0ZXN0UnVubmVyLnNldElzTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uR3JhbnRlZChmYWxz
ZSknKTsKKyAgICAgICAgICAgIHJ1bigncHJvbWlzZSA9IG5hdmlnYXRvci5yZXF1ZXN0TWVkaWFL
ZXlTeXN0ZW1BY2Nlc3MoIm9yZy53ZWJraXQubW9jayIsIFtjYXBhYmlsaXRpZXNdKScpOworICAg
ICAgICAgICAgc2hvdWxkUmVqZWN0KHByb21pc2UpLnRoZW4obmV4dCwgbmV4dCk7CisgICAgICAg
IH0sCisKKyAgICAgICAgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICB0ZXN0UnVubmVyLnNldElz
TWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uR3JhbnRlZCh0cnVlKTsKICAgICAgICAgICAgIHJ1bign
cHJvbWlzZSA9IG1lZGlhS2V5U3lzdGVtQWNjZXNzLmNyZWF0ZU1lZGlhS2V5cygpJyk7CiAgICAg
ICAgICAgICBzaG91bGRSZXNvbHZlKHByb21pc2UpLnRoZW4obmV4dCwgbmV4dCk7CiAgICAgICAg
IH0sCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>418853</attachid>
            <date>2021-02-01 04:03:18 -0800</date>
            <delta_ts>2021-02-01 04:17:59 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-221187-20210201040316.patch</filename>
            <type>text/plain</type>
            <size>162250</size>
            <attacher name="Philippe Normand">pnormand</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcyMTM5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNGQzNzA5MTUyYzFmMmU1
Y2U1MmZmOTliZTIyNjY2MTM1MDhmOTdhNS4uMzQzZDgwM2IyNWZjODIyMDFiZjcyYmRhODBlNmIx
NGE5MjQyNDFjYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ4IEBACisyMDIxLTAxLTMxICBQaGls
aXBwZSBOb3JtYW5kICA8cG5vcm1hbmRAaWdhbGlhLmNvbT4KKworICAgICAgICBQZXJtaXNzaW9u
IHJlcXVlc3QgQVBJIGZvciBNZWRpYUtleVN5c3RlbSBhY2Nlc3Mgc3VwcG9ydAorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjIxMTg3CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgU3VwcG9ydCBmb3IgdXNlciBw
ZXJtaXNzaW9uIHJlcXVlc3Rpbmcgd2hlbiBhY2Nlc3MgdG8gYW4gRU1FIE1lZGlhS2V5U3lzdGVt
IGlzIGJlaW5nCisgICAgICAgIHJlcXVlc3RlZCBieSB0aGUgcGFnZS4gVGhpcyBpcyBzaW1pbGFy
IHRvIHRoZSBtZWRpYURldmljZXMgYWNjZXNzIGd1YXJkcy4KKworICAgICAgICBFeGlzdGluZyB0
ZXN0IG1lZGlhL2VuY3J5cHRlZC1tZWRpYS9tb2NrLU1lZGlhS2V5U3lzdGVtQWNjZXNzLmh0bWwg
d2FzIHVwZGF0ZWQgdG8gY292ZXIgdGhpcworICAgICAgICBuZXcgY29kZSBwYXRoIGFuZCBXUEUv
R1RLIEFQSSB0ZXN0cyBhcyB3ZWxsLgorCisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6CisgICAg
ICAgICogSGVhZGVycy5jbWFrZToKKyAgICAgICAgKiBNb2R1bGVzL2VuY3J5cHRlZG1lZGlhL01l
ZGlhS2V5U3lzdGVtQ2xpZW50Lmg6IEFkZGVkLgorICAgICAgICAqIE1vZHVsZXMvZW5jcnlwdGVk
bWVkaWEvTWVkaWFLZXlTeXN0ZW1Db250cm9sbGVyLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJD
b3JlOjpNZWRpYUtleVN5c3RlbUNvbnRyb2xsZXI6OnN1cHBsZW1lbnROYW1lKToKKyAgICAgICAg
KFdlYkNvcmU6Ok1lZGlhS2V5U3lzdGVtQ29udHJvbGxlcjo6TWVkaWFLZXlTeXN0ZW1Db250cm9s
bGVyKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhS2V5U3lzdGVtQ29udHJvbGxlcjo6fk1lZGlh
S2V5U3lzdGVtQ29udHJvbGxlcik6CisgICAgICAgIChXZWJDb3JlOjpwcm92aWRlTWVkaWFLZXlT
eXN0ZW1Ubyk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYUtleVN5c3RlbUNvbnRyb2xsZXI6Omxv
Z1JlcXVlc3RNZWRpYUtleVN5c3RlbURlbmlhbCk6CisgICAgICAgICogTW9kdWxlcy9lbmNyeXB0
ZWRtZWRpYS9NZWRpYUtleVN5c3RlbUNvbnRyb2xsZXIuaDogQWRkZWQuCisgICAgICAgIChXZWJD
b3JlOjpNZWRpYUtleVN5c3RlbUNvbnRyb2xsZXI6OmNsaWVudCBjb25zdCk6CisgICAgICAgIChX
ZWJDb3JlOjpNZWRpYUtleVN5c3RlbUNvbnRyb2xsZXI6OmZyb20pOgorICAgICAgICAoV2ViQ29y
ZTo6TWVkaWFLZXlTeXN0ZW1Db250cm9sbGVyOjpyZXF1ZXN0TWVkaWFLZXlTeXN0ZW0pOgorICAg
ICAgICAoV2ViQ29yZTo6TWVkaWFLZXlTeXN0ZW1Db250cm9sbGVyOjpjYW5jZWxNZWRpYUtleVN5
c3RlbVJlcXVlc3QpOgorICAgICAgICAqIE1vZHVsZXMvZW5jcnlwdGVkbWVkaWEvTWVkaWFLZXlT
eXN0ZW1SZXF1ZXN0LmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpNZWRpYUtleVN5c3Rl
bVJlcXVlc3Q6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYUtleVN5c3RlbVJlcXVl
c3Q6Ok1lZGlhS2V5U3lzdGVtUmVxdWVzdCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYUtleVN5
c3RlbVJlcXVlc3Q6On5NZWRpYUtleVN5c3RlbVJlcXVlc3QpOgorICAgICAgICAoV2ViQ29yZTo6
TWVkaWFLZXlTeXN0ZW1SZXF1ZXN0Ojp0b3BMZXZlbERvY3VtZW50T3JpZ2luIGNvbnN0KToKKyAg
ICAgICAgKFdlYkNvcmU6Ok1lZGlhS2V5U3lzdGVtUmVxdWVzdDo6c3RhcnQpOgorICAgICAgICAo
V2ViQ29yZTo6TWVkaWFLZXlTeXN0ZW1SZXF1ZXN0OjphbGxvdyk6CisgICAgICAgIChXZWJDb3Jl
OjpNZWRpYUtleVN5c3RlbVJlcXVlc3Q6OmRlbnkpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFL
ZXlTeXN0ZW1SZXF1ZXN0OjpzdG9wKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhS2V5U3lzdGVt
UmVxdWVzdDo6YWN0aXZlRE9NT2JqZWN0TmFtZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpN
ZWRpYUtleVN5c3RlbVJlcXVlc3Q6OmRvY3VtZW50IGNvbnN0KToKKyAgICAgICAgKiBNb2R1bGVz
L2VuY3J5cHRlZG1lZGlhL01lZGlhS2V5U3lzdGVtUmVxdWVzdC5oOiBBZGRlZC4KKyAgICAgICAg
KFdlYkNvcmU6Ok1lZGlhS2V5U3lzdGVtUmVxdWVzdDo6c2V0QWxsb3dDYWxsYmFjayk6CisgICAg
ICAgIChXZWJDb3JlOjpNZWRpYUtleVN5c3RlbVJlcXVlc3Q6OmlkZW50aWZpZXIgY29uc3QpOgor
ICAgICAgICAoV2ViQ29yZTo6TWVkaWFLZXlTeXN0ZW1SZXF1ZXN0OjprZXlTeXN0ZW0gY29uc3Qp
OgorICAgICAgICAqIE1vZHVsZXMvZW5jcnlwdGVkbWVkaWEvTmF2aWdhdG9yRU1FLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6Ok5hdmlnYXRvckVNRTo6cmVxdWVzdE1lZGlhS2V5U3lzdGVtQWNjZXNz
KToKKwogMjAyMS0wMi0wMSAgWGFiaWVyIFJvZHJpZ3VleiBDYWx2YXIgIDxjYWx2YXJpc0BpZ2Fs
aWEuY29tPgogCiAgICAgICAgIFtHU3RyZWFtZXJdW0VNRV1bVGh1bmRlcl0gQWRkIHZpZGVvL3gt
dnA5IGFzIHN1cHBvcnRlZCBmb3IgY2VuYyBhbmQgY2JjcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCAyY2FkNzhmMWU2
ZWY0ODk5ZDZmZTMwNDdlOTM5MzJkY2ViOTNiMWUyLi42NDk0NTRmZGYxY2Q2ZDkyOGI0YmRjY2Y0
MmMzYWVmZWIxZWIxZjg5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysg
Yi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDExOCBAQAorMjAyMS0wMS0zMSAg
UGhpbGlwcGUgTm9ybWFuZCAgPHBub3JtYW5kQGlnYWxpYS5jb20+CisKKyAgICAgICAgUGVybWlz
c2lvbiByZXF1ZXN0IEFQSSBmb3IgTWVkaWFLZXlTeXN0ZW0gYWNjZXNzIHN1cHBvcnQKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyMTE4NworCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBuZXcgSVBDIGFu
ZCBBUEkgZXhwb3NpbmcgTWVkaWFLZXlTeXN0ZW0gYWNjZXNzIHBlcm1pc3Npb25zIHRvIHRoZSBV
SVByb2Nlc3MuIEF0IGxlYXN0CisgICAgICAgIEdUSy9XUEUgd291bGQgbGlrZSB0byBoYXZlIEFQ
SSBmb3IgYXNraW5nIHBlcm1pc3Npb24gdG8gdGhlIHVzZXIgd2hlbiBFTUUncyBNZWRpYUtleUFj
Y2VzcworICAgICAgICBpcyBiZWluZyByZXF1ZXN0ZWQgYnkgYSBwYWdlLiBPbiBBcHBsZSBwbGF0
Zm9ybXMgdGhlIHBlcm1pc3Npb24gaXMgZ3JhbnRlZCBieSBkZWZhdWx0IHVudGlsCisgICAgICAg
IGEgZGVjaXNpb24gaXMgbWFkZSBhYm91dCBzdXBwb3J0aW5nIHRoaXMgaW4gdGhlaXIgQVBJVUlD
bGllbnQuCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBIZWFkZXJzLmNt
YWtlOgorICAgICAgICAqIFBsYXRmb3JtL0xvZ2dpbmcuaDoKKyAgICAgICAgKiBQbGF0Zm9ybUdU
Sy5jbWFrZToKKyAgICAgICAgKiBQbGF0Zm9ybVdQRS5jbWFrZToKKyAgICAgICAgKiBTaGFyZWQv
QVBJL0FQSU9iamVjdC5oOgorICAgICAgICAqIFNoYXJlZC9BUEkvYy9XS0Jhc2UuaDoKKyAgICAg
ICAgKiBTb3VyY2VzLnR4dDoKKyAgICAgICAgKiBTb3VyY2VzR1RLLnR4dDoKKyAgICAgICAgKiBT
b3VyY2VzV1BFLnR4dDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0FQSVVJQ2xpZW50Lmg6Cisg
ICAgICAgIChBUEk6OlVJQ2xpZW50OjpkZWNpZGVQb2xpY3lGb3JNZWRpYUtleVN5c3RlbVBlcm1p
c3Npb25SZXF1ZXN0KToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tBUElDYXN0Lmg6Cisg
ICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dLTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uQ2FsbGJh
Y2suY3BwOiBBZGRlZC4KKyAgICAgICAgKFdLTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uQ2FsbGJh
Y2tHZXRUeXBlSUQpOgorICAgICAgICAoV0tNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25DYWxsYmFj
a0NvbXBsZXRlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tNZWRpYUtleVN5c3RlbVBl
cm1pc3Npb25DYWxsYmFjay5oOiBBZGRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tQ
YWdlLmNwcDoKKyAgICAgICAgKFdLUGFnZVNldFBhZ2VVSUNsaWVudCk6CisgICAgICAgICogVUlQ
cm9jZXNzL0FQSS9DL1dLUGFnZVVJQ2xpZW50Lmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9n
bGliL1dlYktpdE1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3QuY3BwOiBBZGRlZC4KKyAg
ICAgICAgKHdlYmtpdE1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RBbGxvdyk6CisgICAg
ICAgICh3ZWJraXRNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0RGVueSk6CisgICAgICAg
ICh3ZWJraXRfcGVybWlzc2lvbl9yZXF1ZXN0X2ludGVyZmFjZV9pbml0KToKKyAgICAgICAgKHdl
YmtpdE1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3REaXNwb3NlKToKKyAgICAgICAgKHdl
YmtpdF9tZWRpYV9rZXlfc3lzdGVtX3Blcm1pc3Npb25fcmVxdWVzdF9jbGFzc19pbml0KToKKyAg
ICAgICAgKHdlYmtpdE1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RDcmVhdGUpOgorICAg
ICAgICAod2Via2l0X21lZGlhX2tleV9zeXN0ZW1fcGVybWlzc2lvbl9nZXRfbmFtZSk6CisgICAg
ICAgICogVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdE1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJl
cXVlc3RQcml2YXRlLmg6IEFkZGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJL
aXRVSUNsaWVudC5jcHA6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0QXV0b2Ns
ZWFudXBzLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0TWVkaWFLZXlTeXN0
ZW1QZXJtaXNzaW9uUmVxdWVzdC5oOiBBZGRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2d0
ay9kb2NzL3dlYmtpdDJndGstNC4wLXNlY3Rpb25zLnR4dDoKKyAgICAgICAgKiBVSVByb2Nlc3Mv
QVBJL2d0ay9kb2NzL3dlYmtpdDJndGstZG9jcy5zZ21sOgorICAgICAgICAqIFVJUHJvY2Vzcy9B
UEkvZ3RrL3dlYmtpdDIuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL3dwZS9XZWJLaXRNZWRp
YUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0Lmg6IEFkZGVkLgorICAgICAgICAqIFVJUHJvY2Vz
cy9BUEkvd3BlL2RvY3Mvd3BlLTEuMC1zZWN0aW9ucy50eHQ6CisgICAgICAgICogVUlQcm9jZXNz
L0FQSS93cGUvZG9jcy93cGUtZG9jcy5zZ21sOgorICAgICAgICAqIFVJUHJvY2Vzcy9NZWRpYUtl
eVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0Lmg6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpNZWRp
YUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0OjpjcmVhdGUpOgorICAgICAgICAoV2ViS2l0OjpN
ZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0Ojpjb21wbGV0ZSk6CisgICAgICAgIChXZWJL
aXQ6Ok1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3Q6OmtleVN5c3RlbSBjb25zdCk6Cisg
ICAgICAgIChXZWJLaXQ6Ok1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3Q6Ok1lZGlhS2V5
U3lzdGVtUGVybWlzc2lvblJlcXVlc3QpOgorICAgICAgICAoV2ViS2l0OjpNZWRpYUtleVN5c3Rl
bVBlcm1pc3Npb25DYWxsYmFjazo6Y3JlYXRlKToKKyAgICAgICAgKFdlYktpdDo6TWVkaWFLZXlT
eXN0ZW1QZXJtaXNzaW9uQ2FsbGJhY2s6OmNvbXBsZXRlKToKKyAgICAgICAgKFdlYktpdDo6TWVk
aWFLZXlTeXN0ZW1QZXJtaXNzaW9uQ2FsbGJhY2s6Ok1lZGlhS2V5U3lzdGVtUGVybWlzc2lvbkNh
bGxiYWNrKToKKyAgICAgICAgKiBVSVByb2Nlc3MvTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVx
dWVzdE1hbmFnZXJQcm94eS5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpNZWRpYUtleVN5
c3RlbVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5OjpNZWRpYUtleVN5c3RlbVBlcm1pc3Np
b25SZXF1ZXN0TWFuYWdlclByb3h5KToKKyAgICAgICAgKFdlYktpdDo6TWVkaWFLZXlTeXN0ZW1Q
ZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6fk1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJl
cXVlc3RNYW5hZ2VyUHJveHkpOgorICAgICAgICAoV2ViS2l0OjpNZWRpYUtleVN5c3RlbVBlcm1p
c3Npb25SZXF1ZXN0TWFuYWdlclByb3h5OjppbnZhbGlkYXRlUGVuZGluZ1JlcXVlc3RzKToKKyAg
ICAgICAgKFdlYktpdDo6TWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94
eTo6ZGVueVJlcXVlc3QpOgorICAgICAgICAoV2ViS2l0OjpNZWRpYUtleVN5c3RlbVBlcm1pc3Np
b25SZXF1ZXN0TWFuYWdlclByb3h5OjpncmFudFJlcXVlc3QpOgorICAgICAgICAoV2ViS2l0OjpN
ZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5OjpjcmVhdGVSZXF1ZXN0
Rm9yRnJhbWUpOgorICAgICAgICAoV2ViS2l0OjpNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1
ZXN0TWFuYWdlclByb3h5Ojpsb2dDaGFubmVsIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6TWVk
aWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6bG9nZ2VyIGNvbnN0KToK
KyAgICAgICAgKiBVSVByb2Nlc3MvTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdE1hbmFn
ZXJQcm94eS5oOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6TWVkaWFLZXlTeXN0ZW1QZXJtaXNz
aW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6cGFnZSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6Ok1l
ZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6OmRlbnlSZXF1ZXN0KToK
KyAgICAgICAgKiBVSVByb2Nlc3MvTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdFByb3h5
LmNwcDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6Ok1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJl
cXVlc3RQcm94eTo6TWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdFByb3h5KToKKyAgICAg
ICAgKFdlYktpdDo6TWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdFByb3h5OjphbGxvdyk6
CisgICAgICAgIChXZWJLaXQ6Ok1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RQcm94eTo6
ZGVueSk6CisgICAgICAgIChXZWJLaXQ6Ok1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RQ
cm94eTo6aW52YWxpZGF0ZSk6CisgICAgICAgIChXZWJLaXQ6Ok1lZGlhS2V5U3lzdGVtUGVybWlz
c2lvblJlcXVlc3RQcm94eTo6ZG9EZWZhdWx0QWN0aW9uKToKKyAgICAgICAgKiBVSVByb2Nlc3Mv
TWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdFByb3h5Lmg6IEFkZGVkLgorICAgICAgICAo
V2ViS2l0OjpNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0UHJveHk6OmNyZWF0ZSk6Cisg
ICAgICAgIChXZWJLaXQ6Ok1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RQcm94eTo6aXNQ
ZW5kaW5nIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6TWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9u
UmVxdWVzdFByb3h5OjptZWRpYUtleVN5c3RlbUlEIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6
TWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdFByb3h5OjptYWluRnJhbWVJRCBjb25zdCk6
CisgICAgICAgIChXZWJLaXQ6Ok1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RQcm94eTo6
ZnJhbWVJRCBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6Ok1lZGlhS2V5U3lzdGVtUGVybWlzc2lv
blJlcXVlc3RQcm94eTo6dG9wTGV2ZWxEb2N1bWVudFNlY3VyaXR5T3JpZ2luKToKKyAgICAgICAg
KFdlYktpdDo6TWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdFByb3h5Ojp0b3BMZXZlbERv
Y3VtZW50U2VjdXJpdHlPcmlnaW4gY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpNZWRpYUtleVN5
c3RlbVBlcm1pc3Npb25SZXF1ZXN0UHJveHk6OmtleVN5c3RlbSBjb25zdCk6CisgICAgICAgICog
VUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZS5oOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpX
ZWJQYWdlUHJveHk6OnJlcXVlc3RNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25Gb3JGcmFtZSk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6bWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVx
dWVzdE1hbmFnZXIpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OnJlcXVlc3RNZWRp
YUtleVN5c3RlbVBlcm1pc3Npb25CeURlZmF1bHRBY3Rpb24pOgorICAgICAgICAqIFVJUHJvY2Vz
cy9XZWJQYWdlUHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3Nh
Z2VzLmluOgorICAgICAgICAqIFdlYlByb2Nlc3MvRW5jcnlwdGVkTWVkaWEvTWVkaWFLZXlTeXN0
ZW1QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6
TWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXI6Ok1lZGlhS2V5U3lzdGVtUGVy
bWlzc2lvblJlcXVlc3RNYW5hZ2VyKToKKyAgICAgICAgKFdlYktpdDo6TWVkaWFLZXlTeXN0ZW1Q
ZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXI6OnN0YXJ0TWVkaWFLZXlTeXN0ZW1SZXF1ZXN0KToKKyAg
ICAgICAgKFdlYktpdDo6TWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXI6OnNl
bmRNZWRpYUtleVN5c3RlbVJlcXVlc3QpOgorICAgICAgICAoV2ViS2l0OjpNZWRpYUtleVN5c3Rl
bVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcjo6Y2FuY2VsTWVkaWFLZXlTeXN0ZW1SZXF1ZXN0KToK
KyAgICAgICAgKFdlYktpdDo6TWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXI6
Om1lZGlhS2V5U3lzdGVtV2FzR3JhbnRlZCk6CisgICAgICAgIChXZWJLaXQ6Ok1lZGlhS2V5U3lz
dGVtUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyOjptZWRpYUtleVN5c3RlbVdhc0RlbmllZCk6Cisg
ICAgICAgICogV2ViUHJvY2Vzcy9FbmNyeXB0ZWRNZWRpYS9NZWRpYUtleVN5c3RlbVBlcm1pc3Np
b25SZXF1ZXN0TWFuYWdlci5oOiBBZGRlZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0L1dlYk1lZGlhS2V5U3lzdGVtQ2xpZW50LmNwcDogQWRkZWQuCisgICAgICAgIChXZWJL
aXQ6OldlYk1lZGlhS2V5U3lzdGVtQ2xpZW50OjpXZWJNZWRpYUtleVN5c3RlbUNsaWVudCk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYk1lZGlhS2V5U3lzdGVtQ2xpZW50OjpwYWdlRGVzdHJveWVkKToK
KyAgICAgICAgKFdlYktpdDo6V2ViTWVkaWFLZXlTeXN0ZW1DbGllbnQ6OnJlcXVlc3RNZWRpYUtl
eVN5c3RlbSk6CisgICAgICAgIChXZWJLaXQ6OldlYk1lZGlhS2V5U3lzdGVtQ2xpZW50OjpjYW5j
ZWxNZWRpYUtleVN5c3RlbVJlcXVlc3QpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvV2ViTWVkaWFLZXlTeXN0ZW1DbGllbnQuaDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6
OldlYk1lZGlhS2V5U3lzdGVtQ2xpZW50Ojp+V2ViTWVkaWFLZXlTeXN0ZW1DbGllbnQpOgorICAg
ICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6
bV9saW1pdHNOYXZpZ2F0aW9uc1RvQXBwQm91bmREb21haW5zKToKKyAgICAgICAgKFdlYktpdDo6
V2ViUGFnZTo6bWVkaWFLZXlTeXN0ZW1XYXNHcmFudGVkKToKKyAgICAgICAgKFdlYktpdDo6V2Vi
UGFnZTo6bWVkaWFLZXlTeXN0ZW1XYXNEZW5pZWQpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2Vi
UGFnZS9XZWJQYWdlLmg6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6Om1lZGlhS2V5U3lzdGVt
UGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2Uv
V2ViUGFnZS5tZXNzYWdlcy5pbjoKKwogMjAyMS0wMi0wMSAgQ2FybG9zIEdhcmNpYSBDYW1wb3Mg
IDxjZ2FyY2lhQGlnYWxpYS5jb20+CiAKICAgICAgICAgW1NPVVBdIEFkZCBzdXBwb3J0IGZvciBk
YXRhIFVSTHMgaW4gdGhlIG5ldHdvcmsgcHJvY2VzcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAppbmRleCBi
YWE0NTNkNmNmMWMyMmU2NTkzMTE1NDRiMDI2Yjc4YWQ0YjU4ZDY0Li5iMmYxNjc5MDEyYzAzYjgw
ZGZjNTRkMjQ3OGZmMGJlMmU4MjRlMGI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DTWFr
ZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dApAQCAtMTQ5Nyw2
ICsxNDk3LDggQEAgaWYgKEVOQUJMRV9FTkNSWVBURURfTUVESUEpCiAgICAgICAgIE1vZHVsZXMv
ZW5jcnlwdGVkbWVkaWEvTWVkaWFLZXlTZXNzaW9uLmNwcAogICAgICAgICBNb2R1bGVzL2VuY3J5
cHRlZG1lZGlhL01lZGlhS2V5U3RhdHVzTWFwLmNwcAogICAgICAgICBNb2R1bGVzL2VuY3J5cHRl
ZG1lZGlhL01lZGlhS2V5U3lzdGVtQWNjZXNzLmNwcAorICAgICAgICBNb2R1bGVzL2VuY3J5cHRl
ZG1lZGlhL01lZGlhS2V5U3lzdGVtQ29udHJvbGxlci5jcHAKKyAgICAgICAgTW9kdWxlcy9lbmNy
eXB0ZWRtZWRpYS9NZWRpYUtleVN5c3RlbVJlcXVlc3QuY3BwCiAgICAgICAgIE1vZHVsZXMvZW5j
cnlwdGVkbWVkaWEvTWVkaWFLZXlzLmNwcAogICAgICAgICBNb2R1bGVzL2VuY3J5cHRlZG1lZGlh
L05hdmlnYXRvckVNRS5jcHAKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvSGVhZGVycy5j
bWFrZSBiL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKaW5kZXggYWJhMTVlMGVkN2EwMTQ2
NDU4MmYzZjkyODBlNjc4YjNkYjI4ZjYzMi4uOGMxYjZjMzI3ODJhOTFkOWM0MTRjNjEwYjQ5ZTY3
OWVlYjYwYmI2OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCkBAIC0yNCw2ICsyNCw5IEBAIHNldChXZWJD
b3JlX1BSSVZBVEVfRlJBTUVXT1JLX0hFQURFUlMKICAgICBNb2R1bGVzL2NvbnRhY3QtcGlja2Vy
L0NvbnRhY3RzUmVxdWVzdERhdGEuaAogCiAgICAgTW9kdWxlcy9lbmNyeXB0ZWRtZWRpYS9DRE1D
bGllbnQuaAorICAgIE1vZHVsZXMvZW5jcnlwdGVkbWVkaWEvTWVkaWFLZXlTeXN0ZW1DbGllbnQu
aAorICAgIE1vZHVsZXMvZW5jcnlwdGVkbWVkaWEvTWVkaWFLZXlTeXN0ZW1Db250cm9sbGVyLmgK
KyAgICBNb2R1bGVzL2VuY3J5cHRlZG1lZGlhL01lZGlhS2V5U3lzdGVtUmVxdWVzdC5oCiAKICAg
ICBNb2R1bGVzL2ZldGNoL0ZldGNoQm9keUNvbnN1bWVyLmgKICAgICBNb2R1bGVzL2ZldGNoL0Zl
dGNoQm9keVNvdXJjZS5oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2VuY3J5
cHRlZG1lZGlhL01lZGlhS2V5U3lzdGVtQ2xpZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2VuY3J5cHRlZG1lZGlhL01lZGlhS2V5U3lzdGVtQ2xpZW50LmgKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNTNkMzBi
MWQwZjg5ZTAwNTBhYWQwNDIyN2ExMGU4NDQwMjk4Mjk3YgotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvZW5jcnlwdGVkbWVkaWEvTWVkaWFLZXlTeXN0ZW1DbGllbnQu
aApAQCAtMCwwICsxLDUyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIElnYWxpYSBTLkwu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiAgUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhF
IElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorICog
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05T
RVFVRU5USUFMIERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1MgT0YgVVNF
LCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTgorICogQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTCisg
KiBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShFTkNSWVBURURfTUVESUEp
CisKKyNpbmNsdWRlIDx3dGYvQ29tcGxldGlvbkhhbmRsZXIuaD4KKworbmFtZXNwYWNlIFdlYkNv
cmUgeworCitjbGFzcyBEb2N1bWVudDsKK2NsYXNzIFBhZ2U7CitjbGFzcyBNZWRpYUtleVN5c3Rl
bVJlcXVlc3Q7CisKK2NsYXNzIE1lZGlhS2V5U3lzdGVtQ2xpZW50IHsKK3B1YmxpYzoKKyAgICB2
aXJ0dWFsIHZvaWQgcGFnZURlc3Ryb3llZCgpID0gMDsKKworICAgIHZpcnR1YWwgdm9pZCByZXF1
ZXN0TWVkaWFLZXlTeXN0ZW0oTWVkaWFLZXlTeXN0ZW1SZXF1ZXN0JikgPSAwOworICAgIHZpcnR1
YWwgdm9pZCBjYW5jZWxNZWRpYUtleVN5c3RlbVJlcXVlc3QoTWVkaWFLZXlTeXN0ZW1SZXF1ZXN0
JikgPSAwOworCitwcm90ZWN0ZWQ6CisgICAgdmlydHVhbCB+TWVkaWFLZXlTeXN0ZW1DbGllbnQo
KSA9IGRlZmF1bHQ7Cit9OworCitXRUJDT1JFX0VYUE9SVCB2b2lkIHByb3ZpZGVNZWRpYUtleVN5
c3RlbVRvKFBhZ2UqLCBNZWRpYUtleVN5c3RlbUNsaWVudCopOworCit9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoRU5DUllQVEVEX01FRElBKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9lbmNyeXB0ZWRtZWRpYS9NZWRpYUtleVN5c3RlbUNvbnRy
b2xsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9lbmNyeXB0ZWRtZWRpYS9NZWRpYUtl
eVN5c3RlbUNvbnRyb2xsZXIuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjEyMmJhODI1YzJjNzM3NjBjOWFkODNi
MDIzZGZmMGZhMDI3ZDRlNDkKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2VuY3J5cHRlZG1lZGlhL01lZGlhS2V5U3lzdGVtQ29udHJvbGxlci5jcHAKQEAgLTAsMCAr
MSw2NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBJZ2FsaWEgUy5MLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisg
KiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKKyAqIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBE
QU1BR0VTCisgKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7CisgKiBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04K
KyAqIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUworICogU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIk1lZGlhS2V5U3lzdGVtQ29udHJvbGxl
ci5oIgorCisjaWYgRU5BQkxFKEVOQ1JZUFRFRF9NRURJQSkKKworI2luY2x1ZGUgIkRPTVdpbmRv
dy5oIgorI2luY2x1ZGUgIkRvY3VtZW50LmgiCisjaW5jbHVkZSAiRnJhbWUuaCIKKyNpbmNsdWRl
ICJIVE1MSUZyYW1lRWxlbWVudC5oIgorI2luY2x1ZGUgIk1lZGlhS2V5U3lzdGVtUmVxdWVzdC5o
IgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NvbnN0IGNoYXIqIE1lZGlhS2V5U3lzdGVtQ29u
dHJvbGxlcjo6c3VwcGxlbWVudE5hbWUoKQoreworICAgIHJldHVybiAiTWVkaWFLZXlTeXN0ZW1D
b250cm9sbGVyIjsKK30KKworTWVkaWFLZXlTeXN0ZW1Db250cm9sbGVyOjpNZWRpYUtleVN5c3Rl
bUNvbnRyb2xsZXIoTWVkaWFLZXlTeXN0ZW1DbGllbnQqIGNsaWVudCkKKyAgICA6IG1fY2xpZW50
KGNsaWVudCkKK3sKK30KKworTWVkaWFLZXlTeXN0ZW1Db250cm9sbGVyOjp+TWVkaWFLZXlTeXN0
ZW1Db250cm9sbGVyKCkKK3sKKyAgICBtX2NsaWVudC0+cGFnZURlc3Ryb3llZCgpOworfQorCit2
b2lkIHByb3ZpZGVNZWRpYUtleVN5c3RlbVRvKFBhZ2UqIHBhZ2UsIE1lZGlhS2V5U3lzdGVtQ2xp
ZW50KiBjbGllbnQpCit7CisgICAgTWVkaWFLZXlTeXN0ZW1Db250cm9sbGVyOjpwcm92aWRlVG8o
cGFnZSwgTWVkaWFLZXlTeXN0ZW1Db250cm9sbGVyOjpzdXBwbGVtZW50TmFtZSgpLCBtYWtlVW5p
cXVlPE1lZGlhS2V5U3lzdGVtQ29udHJvbGxlcj4oY2xpZW50KSk7Cit9CisKK3ZvaWQgTWVkaWFL
ZXlTeXN0ZW1Db250cm9sbGVyOjpsb2dSZXF1ZXN0TWVkaWFLZXlTeXN0ZW1EZW5pYWwoRG9jdW1l
bnQmIGRvY3VtZW50KQoreworICAgIGlmIChhdXRvKiB3aW5kb3cgPSBkb2N1bWVudC5kb21XaW5k
b3coKSkKKyAgICAgICAgd2luZG93LT5wcmludEVycm9yTWVzc2FnZShtYWtlU3RyaW5nKCJOb3Qg
YWxsb3dlZCB0byBhY2Nlc3MgTWVkaWFLZXlTeXN0ZW0uIikpOworfQorCit9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoTUVESUFfU1RSRUFNKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9lbmNyeXB0ZWRtZWRpYS9NZWRpYUtleVN5c3RlbUNvbnRy
b2xsZXIuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZW5jcnlwdGVkbWVkaWEvTWVkaWFLZXlT
eXN0ZW1Db250cm9sbGVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTlhMjhhMmJiOTBlYjQ0MGM2Nzc4MDFlZjc5
YWNkOGZmYjFhYTgwMwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
ZW5jcnlwdGVkbWVkaWEvTWVkaWFLZXlTeXN0ZW1Db250cm9sbGVyLmgKQEAgLTAsMCArMSw3MCBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBJZ2FsaWEgUy5MLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09O
VFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBV
UlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
IElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKKyAqIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VT
CisgKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7CisgKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04KKyAqIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUworICogU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3By
YWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoRU5DUllQVEVEX01FRElBKQorCisjaW5jbHVkZSAiRmVh
dHVyZVBvbGljeS5oIgorI2luY2x1ZGUgIk1lZGlhS2V5U3lzdGVtQ2xpZW50LmgiCisjaW5jbHVk
ZSAiUGFnZS5oIgorI2luY2x1ZGUgPHd0Zi9Db21wbGV0aW9uSGFuZGxlci5oPgorCituYW1lc3Bh
Y2UgV2ViQ29yZSB7CisKK2NsYXNzIE1lZGlhS2V5U3lzdGVtUmVxdWVzdDsKKworY2xhc3MgTWVk
aWFLZXlTeXN0ZW1Db250cm9sbGVyIDogcHVibGljIFN1cHBsZW1lbnQ8UGFnZT4geworICAgIFdU
Rl9NQUtFX0ZBU1RfQUxMT0NBVEVEOworcHVibGljOgorICAgIGV4cGxpY2l0IE1lZGlhS2V5U3lz
dGVtQ29udHJvbGxlcihNZWRpYUtleVN5c3RlbUNsaWVudCopOworICAgIH5NZWRpYUtleVN5c3Rl
bUNvbnRyb2xsZXIoKTsKKworICAgIE1lZGlhS2V5U3lzdGVtQ2xpZW50KiBjbGllbnQoKSBjb25z
dCB7IHJldHVybiBtX2NsaWVudDsgfQorCisgICAgdm9pZCByZXF1ZXN0TWVkaWFLZXlTeXN0ZW0o
TWVkaWFLZXlTeXN0ZW1SZXF1ZXN0Jik7CisgICAgdm9pZCBjYW5jZWxNZWRpYUtleVN5c3RlbVJl
cXVlc3QoTWVkaWFLZXlTeXN0ZW1SZXF1ZXN0Jik7CisKKyAgICB2b2lkIGxvZ1JlcXVlc3RNZWRp
YUtleVN5c3RlbURlbmlhbChEb2N1bWVudCYpOworCisgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGlj
IGNvbnN0IGNoYXIqIHN1cHBsZW1lbnROYW1lKCk7CisgICAgc3RhdGljIE1lZGlhS2V5U3lzdGVt
Q29udHJvbGxlciogZnJvbShQYWdlKiBwYWdlKSB7IHJldHVybiBzdGF0aWNfY2FzdDxNZWRpYUtl
eVN5c3RlbUNvbnRyb2xsZXIqPihTdXBwbGVtZW50PFBhZ2U+Ojpmcm9tKHBhZ2UsIHN1cHBsZW1l
bnROYW1lKCkpKTsgfQorCitwcml2YXRlOgorICAgIE1lZGlhS2V5U3lzdGVtQ2xpZW50KiBtX2Ns
aWVudDsKK307CisKK2lubGluZSB2b2lkIE1lZGlhS2V5U3lzdGVtQ29udHJvbGxlcjo6cmVxdWVz
dE1lZGlhS2V5U3lzdGVtKE1lZGlhS2V5U3lzdGVtUmVxdWVzdCYgcmVxdWVzdCkKK3sKKyAgICBt
X2NsaWVudC0+cmVxdWVzdE1lZGlhS2V5U3lzdGVtKHJlcXVlc3QpOworfQorCitpbmxpbmUgdm9p
ZCBNZWRpYUtleVN5c3RlbUNvbnRyb2xsZXI6OmNhbmNlbE1lZGlhS2V5U3lzdGVtUmVxdWVzdChN
ZWRpYUtleVN5c3RlbVJlcXVlc3QmIHJlcXVlc3QpCit7CisgICAgbV9jbGllbnQtPmNhbmNlbE1l
ZGlhS2V5U3lzdGVtUmVxdWVzdChyZXF1ZXN0KTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQorCisjZW5kaWYgLy8gRU5BQkxFKEVOQ1JZUFRFRF9NRURJQSkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvZW5jcnlwdGVkbWVkaWEvTWVkaWFLZXlTeXN0ZW1SZXF1ZXN0LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZW5jcnlwdGVkbWVkaWEvTWVkaWFLZXlTeXN0ZW1S
ZXF1ZXN0LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43ZWY1M2FhNmFiNTUyZWRlNTRhNDZhMjJiNmRjMmMwZWFh
MzM5M2FjCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9lbmNyeXB0
ZWRtZWRpYS9NZWRpYUtleVN5c3RlbVJlcXVlc3QuY3BwCkBAIC0wLDAgKzEsMTI3IEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDIxIElnYWxpYSBTLkwuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAg
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRP
UlMgYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBB
UkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENP
TlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyAqIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTgorICogQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTCisgKiBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAi
Y29uZmlnLmgiCisjaW5jbHVkZSAiTWVkaWFLZXlTeXN0ZW1SZXF1ZXN0LmgiCisKKyNpZiBFTkFC
TEUoTUVESUFfU1RSRUFNKQorCisjaW5jbHVkZSAiRG9jdW1lbnQuaCIKKyNpbmNsdWRlICJGcmFt
ZS5oIgorI2luY2x1ZGUgIkpTRE9NUHJvbWlzZURlZmVycmVkLmgiCisjaW5jbHVkZSAiSlNNZWRp
YUtleVN5c3RlbUFjY2Vzcy5oIgorI2luY2x1ZGUgIkxvZ2dpbmcuaCIKKyNpbmNsdWRlICJNZWRp
YUtleVN5c3RlbUNvbnRyb2xsZXIuaCIKKyNpbmNsdWRlICJQbGF0Zm9ybU1lZGlhU2Vzc2lvbk1h
bmFnZXIuaCIKKyNpbmNsdWRlICJTZXR0aW5ncy5oIgorI2luY2x1ZGUgIldpbmRvd0V2ZW50TG9v
cC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1JlZjxNZWRpYUtleVN5c3RlbVJlcXVlc3Q+
IE1lZGlhS2V5U3lzdGVtUmVxdWVzdDo6Y3JlYXRlKERvY3VtZW50JiBkb2N1bWVudCwgY29uc3Qg
U3RyaW5nJiBrZXlTeXN0ZW0sIFJlZjxEZWZlcnJlZFByb21pc2U+JiYgcHJvbWlzZSkKK3sKKyAg
ICBhdXRvIHJlc3VsdCA9IGFkb3B0UmVmKCpuZXcgTWVkaWFLZXlTeXN0ZW1SZXF1ZXN0KGRvY3Vt
ZW50LCBrZXlTeXN0ZW0sIFdURk1vdmUocHJvbWlzZSkpKTsKKyAgICByZXN1bHQtPnN1c3BlbmRJ
Zk5lZWRlZCgpOworICAgIHJldHVybiByZXN1bHQ7Cit9CisKK01lZGlhS2V5U3lzdGVtUmVxdWVz
dDo6TWVkaWFLZXlTeXN0ZW1SZXF1ZXN0KERvY3VtZW50JiBkb2N1bWVudCwgY29uc3QgU3RyaW5n
JiBrZXlTeXN0ZW0sIFJlZjxEZWZlcnJlZFByb21pc2U+JiYgcHJvbWlzZSkKKyAgICA6IEFjdGl2
ZURPTU9iamVjdChkb2N1bWVudCkKKyAgICAsIG1fa2V5U3lzdGVtKGtleVN5c3RlbSkKKyAgICAs
IG1fcHJvbWlzZShXVEZNb3ZlKHByb21pc2UpKQoreworfQorCitNZWRpYUtleVN5c3RlbVJlcXVl
c3Q6On5NZWRpYUtleVN5c3RlbVJlcXVlc3QoKQoreworICAgIGlmIChtX2FsbG93Q29tcGxldGlv
bkhhbmRsZXIpCisgICAgICAgIG1fYWxsb3dDb21wbGV0aW9uSGFuZGxlcihXVEZNb3ZlKG1fcHJv
bWlzZSkpOworfQorCitTZWN1cml0eU9yaWdpbiogTWVkaWFLZXlTeXN0ZW1SZXF1ZXN0Ojp0b3BM
ZXZlbERvY3VtZW50T3JpZ2luKCkgY29uc3QKK3sKKyAgICBpZiAoIW1fc2NyaXB0RXhlY3V0aW9u
Q29udGV4dCkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgcmV0dXJuICZtX3NjcmlwdEV4
ZWN1dGlvbkNvbnRleHQtPnRvcE9yaWdpbigpOworfQorCit2b2lkIE1lZGlhS2V5U3lzdGVtUmVx
dWVzdDo6c3RhcnQoKQoreworICAgIEFTU0VSVChtX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQpOwor
ICAgIGlmICghbV9zY3JpcHRFeGVjdXRpb25Db250ZXh0KSB7CisgICAgICAgIGRlbnkoKTsKKyAg
ICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGF1dG8mIGRvY3VtZW50ID0gZG93bmNhc3Q8RG9j
dW1lbnQ+KCptX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQpOworICAgIGF1dG8qIGNvbnRyb2xsZXIg
PSBNZWRpYUtleVN5c3RlbUNvbnRyb2xsZXI6OmZyb20oZG9jdW1lbnQucGFnZSgpKTsKKyAgICBp
ZiAoIWNvbnRyb2xsZXIpIHsKKyAgICAgICAgZGVueSgpOworICAgICAgICByZXR1cm47CisgICAg
fQorCisgICAgY29udHJvbGxlci0+cmVxdWVzdE1lZGlhS2V5U3lzdGVtKCp0aGlzKTsKK30KKwor
dm9pZCBNZWRpYUtleVN5c3RlbVJlcXVlc3Q6OmFsbG93KENvbXBsZXRpb25IYW5kbGVyPHZvaWQo
KT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3sKKyAgICBxdWV1ZVRhc2tLZWVwaW5nT2JqZWN0QWxp
dmUoKnRoaXMsIFRhc2tTb3VyY2U6OlVzZXJJbnRlcmFjdGlvbiwgW3RoaXMsIGhhbmRsZXIgPSBX
VEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0oKSBtdXRhYmxlIHsKKyAgICAgICAgYXV0byBjb21w
bGV0aW9uSGFuZGxlciA9IFdURk1vdmUobV9hbGxvd0NvbXBsZXRpb25IYW5kbGVyKTsKKyAgICAg
ICAgY29tcGxldGlvbkhhbmRsZXIoV1RGTW92ZShtX3Byb21pc2UpKTsKKyAgICAgICAgaGFuZGxl
cigpOworICAgIH0pOworfQorCit2b2lkIE1lZGlhS2V5U3lzdGVtUmVxdWVzdDo6ZGVueShjb25z
dCBTdHJpbmcmIG1lc3NhZ2UpCit7CisgICAgaWYgKCFtX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQp
CisgICAgICAgIHJldHVybjsKKworICAgIEV4Y2VwdGlvbkNvZGUgY29kZSA9IE5vdFN1cHBvcnRl
ZEVycm9yOworICAgIGlmICghbWVzc2FnZS5pc0VtcHR5KCkpCisgICAgICAgIG1fcHJvbWlzZS0+
cmVqZWN0KGNvZGUsIG1lc3NhZ2UpOworICAgIGVsc2UKKyAgICAgICAgbV9wcm9taXNlLT5yZWpl
Y3QoY29kZSk7Cit9CisKK3ZvaWQgTWVkaWFLZXlTeXN0ZW1SZXF1ZXN0OjpzdG9wKCkKK3sKKyAg
ICBhdXRvJiBkb2N1bWVudCA9IGRvd25jYXN0PERvY3VtZW50PigqbV9zY3JpcHRFeGVjdXRpb25D
b250ZXh0KTsKKyAgICBpZiAoYXV0byogY29udHJvbGxlciA9IE1lZGlhS2V5U3lzdGVtQ29udHJv
bGxlcjo6ZnJvbShkb2N1bWVudC5wYWdlKCkpKQorICAgICAgICBjb250cm9sbGVyLT5jYW5jZWxN
ZWRpYUtleVN5c3RlbVJlcXVlc3QoKnRoaXMpOworfQorCitjb25zdCBjaGFyKiBNZWRpYUtleVN5
c3RlbVJlcXVlc3Q6OmFjdGl2ZURPTU9iamVjdE5hbWUoKSBjb25zdAoreworICAgIHJldHVybiAi
TWVkaWFLZXlTeXN0ZW1SZXF1ZXN0IjsKK30KKworRG9jdW1lbnQqIE1lZGlhS2V5U3lzdGVtUmVx
dWVzdDo6ZG9jdW1lbnQoKSBjb25zdAoreworICAgIHJldHVybiBkb3duY2FzdDxEb2N1bWVudD4o
bV9zY3JpcHRFeGVjdXRpb25Db250ZXh0KTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQor
CisjZW5kaWYgLy8gRU5BQkxFKEVOQ1JZUFRFRF9NRURJQSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvZW5jcnlwdGVkbWVkaWEvTWVkaWFLZXlTeXN0ZW1SZXF1ZXN0LmggYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2VuY3J5cHRlZG1lZGlhL01lZGlhS2V5U3lzdGVtUmVxdWVz
dC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjlmY2JlNGYxYmFiZGJjZGI3MmFkNTQ1NjY3M2ZhYmViNDYwZTJhYjcK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2VuY3J5cHRlZG1lZGlh
L01lZGlhS2V5U3lzdGVtUmVxdWVzdC5oCkBAIC0wLDAgKzEsODAgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMjEgSWdhbGlhIFMuTC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElT
JycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICogRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JT
IEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICogKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OCisgKiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICog
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFIE9GIFRISVMKKyAqIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYg
RU5BQkxFKEVOQ1JZUFRFRF9NRURJQSkKKworI2luY2x1ZGUgIkFjdGl2ZURPTU9iamVjdC5oIgor
I2luY2x1ZGUgIklETFR5cGVzLmgiCisjaW5jbHVkZSAiSlNET01Qcm9taXNlRGVmZXJyZWQuaCIK
KyNpbmNsdWRlIDx3dGYvQ29tcGxldGlvbkhhbmRsZXIuaD4KKyNpbmNsdWRlIDx3dGYvRm9yd2Fy
ZC5oPgorI2luY2x1ZGUgPHd0Zi9PYmplY3RJZGVudGlmaWVyLmg+CisjaW5jbHVkZSA8d3RmL1Vu
aXF1ZVJlZi5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFNlY3VyaXR5T3JpZ2lu
OworY2xhc3MgTWVkaWFLZXlTeXN0ZW07CisKK3RlbXBsYXRlIDx0eXBlbmFtZSBJRExUeXBlPiBj
bGFzcyBET01Qcm9taXNlRGVmZXJyZWQ7CisKK2VudW0gTWVkaWFLZXlTeXN0ZW1SZXF1ZXN0SWRl
bnRpZmllclR5cGUgeyB9OwordXNpbmcgTWVkaWFLZXlTeXN0ZW1SZXF1ZXN0SWRlbnRpZmllciA9
IE9iamVjdElkZW50aWZpZXI8TWVkaWFLZXlTeXN0ZW1SZXF1ZXN0SWRlbnRpZmllclR5cGU+Owor
CitjbGFzcyBNZWRpYUtleVN5c3RlbVJlcXVlc3QgOiBwdWJsaWMgUmVmQ291bnRlZDxNZWRpYUtl
eVN5c3RlbVJlcXVlc3Q+LCBwdWJsaWMgQWN0aXZlRE9NT2JqZWN0IHsKK3B1YmxpYzoKKyAgICBz
dGF0aWMgUmVmPE1lZGlhS2V5U3lzdGVtUmVxdWVzdD4gY3JlYXRlKERvY3VtZW50JiwgY29uc3Qg
U3RyaW5nJiBrZXlTeXN0ZW0sIFJlZjxEZWZlcnJlZFByb21pc2U+JiYpOworICAgIHZpcnR1YWwg
fk1lZGlhS2V5U3lzdGVtUmVxdWVzdCgpOworCisgICAgdm9pZCBzZXRBbGxvd0NhbGxiYWNrKENv
bXBsZXRpb25IYW5kbGVyPHZvaWQoUmVmPERlZmVycmVkUHJvbWlzZT4mJik+JiYgY2FsbGJhY2sp
IHsgbV9hbGxvd0NvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjYWxsYmFjayk7IH0KKyAgICBN
ZWRpYUtleVN5c3RlbVJlcXVlc3RJZGVudGlmaWVyIGlkZW50aWZpZXIoKSBjb25zdCB7IHJldHVy
biBtX2lkZW50aWZpZXI7IH0KKyAgICB2b2lkIHN0YXJ0KCk7CisKKyAgICBXRUJDT1JFX0VYUE9S
VCB2b2lkIGFsbG93KENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CisgICAgV0VCQ09SRV9F
WFBPUlQgdm9pZCBkZW55KGNvbnN0IFN0cmluZyYgZXJyb3JNZXNzYWdlID0gZW1wdHlTdHJpbmco
KSk7CisKKyAgICBXRUJDT1JFX0VYUE9SVCBTZWN1cml0eU9yaWdpbiogdG9wTGV2ZWxEb2N1bWVu
dE9yaWdpbigpIGNvbnN0OworICAgIFdFQkNPUkVfRVhQT1JUIERvY3VtZW50KiBkb2N1bWVudCgp
IGNvbnN0OworCisgICAgY29uc3QgU3RyaW5nIGtleVN5c3RlbSgpIGNvbnN0IHsgcmV0dXJuIG1f
a2V5U3lzdGVtOyB9CisKK3ByaXZhdGU6CisgICAgTWVkaWFLZXlTeXN0ZW1SZXF1ZXN0KERvY3Vt
ZW50JiwgY29uc3QgU3RyaW5nJiBrZXlTeXN0ZW0sIFJlZjxEZWZlcnJlZFByb21pc2U+JiYpOwor
CisgICAgdm9pZCBzdG9wKCkgZmluYWw7CisgICAgY29uc3QgY2hhciogYWN0aXZlRE9NT2JqZWN0
TmFtZSgpIGNvbnN0IGZpbmFsOworCisgICAgTWVkaWFLZXlTeXN0ZW1SZXF1ZXN0SWRlbnRpZmll
ciBtX2lkZW50aWZpZXI7CisKKyAgICBTdHJpbmcgbV9rZXlTeXN0ZW07CisgICAgUmVmPERlZmVy
cmVkUHJvbWlzZT4gbV9wcm9taXNlOworCisgICAgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChSZWY8
RGVmZXJyZWRQcm9taXNlPiYmKT4gbV9hbGxvd0NvbXBsZXRpb25IYW5kbGVyOworfTsKKworfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKEVOQ1JZUFRFRF9NRURJQSkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZW5jcnlwdGVkbWVkaWEvTmF2aWdh
dG9yRU1FLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZW5jcnlwdGVkbWVkaWEvTmF2aWdh
dG9yRU1FLmNwcAppbmRleCA2OTQ1NjRhZjNlNTkzYTY5NjE3NThmYWZkNzJhN2Q1MDQ3YTZhYzM2
Li5mYzYxMzc0ZTIxNjQxYzE2NzQxZDdlNTFkZDBlM2U3YTJkNTJiNjYyIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2VuY3J5cHRlZG1lZGlhL05hdmlnYXRvckVNRS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9lbmNyeXB0ZWRtZWRpYS9OYXZpZ2F0b3JFTUUuY3Bw
CkBAIC0zNyw2ICszNyw3IEBACiAjaW5jbHVkZSAiSlNET01Qcm9taXNlRGVmZXJyZWQuaCIKICNp
bmNsdWRlICJKU01lZGlhS2V5U3lzdGVtQWNjZXNzLmgiCiAjaW5jbHVkZSAiTG9nZ2luZy5oIgor
I2luY2x1ZGUgIk1lZGlhS2V5U3lzdGVtUmVxdWVzdC5oIgogI2luY2x1ZGUgPHd0Zi90ZXh0L1N0
cmluZ0J1aWxkZXIuaD4KIAogbmFtZXNwYWNlIFdURiB7CkBAIC05OSwyMyArMTAwLDI3IEBAIHZv
aWQgTmF2aWdhdG9yRU1FOjpyZXF1ZXN0TWVkaWFLZXlTeXN0ZW1BY2Nlc3MoTmF2aWdhdG9yJiBu
YXZpZ2F0b3IsIERvY3VtZW50JiBkCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBkb2N1
bWVudC5wb3N0VGFzayhba2V5U3lzdGVtLCBzdXBwb3J0ZWRDb25maWd1cmF0aW9ucyA9IFdURk1v
dmUoc3VwcG9ydGVkQ29uZmlndXJhdGlvbnMpLCBwcm9taXNlID0gV1RGTW92ZShwcm9taXNlKSwg
JmRvY3VtZW50LCBsb2dnZXIgPSBXVEZNb3ZlKGxvZ2dlciksIGlkZW50aWZpZXIgPSBXVEZNb3Zl
KGlkZW50aWZpZXIpXSAoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYpIG11dGFibGUgewotICAgICAg
ICAvLyAzLiBMZXQgZG9jdW1lbnQgYmUgdGhlIGNhbGxpbmcgY29udGV4dCdzIERvY3VtZW50Lgot
ICAgICAgICAvLyA0LiBMZXQgb3JpZ2luIGJlIHRoZSBvcmlnaW4gb2YgZG9jdW1lbnQuCi0gICAg
ICAgIC8vIDUuIExldCBwcm9taXNlIGJlIGEgbmV3IHByb21pc2UuCi0gICAgICAgIC8vIDYuIFJ1
biB0aGUgZm9sbG93aW5nIHN0ZXBzIGluIHBhcmFsbGVsOgotICAgICAgICAvLyA2LjEuIElmIGtl
eVN5c3RlbSBpcyBub3Qgb25lIG9mIHRoZSBLZXkgU3lzdGVtcyBzdXBwb3J0ZWQgYnkgdGhlIHVz
ZXIgYWdlbnQsIHJlamVjdCBwcm9taXNlIHdpdGggYSBOb3RTdXBwb3J0ZWRFcnJvci4KLSAgICAg
ICAgLy8gICAgICBTdHJpbmcgY29tcGFyaXNvbiBpcyBjYXNlLXNlbnNpdGl2ZS4KLSAgICAgICAg
aWYgKCFDRE06OnN1cHBvcnRzS2V5U3lzdGVtKGtleVN5c3RlbSkpIHsKLSAgICAgICAgICAgIGlu
Zm9Mb2cobG9nZ2VyLCBpZGVudGlmaWVyLCAiUmVqZWN0ZWQ6IGtleVN5c3RlbSgiLCBrZXlTeXN0
ZW0sICIpIG5vdCBzdXBwb3J0ZWQiKTsKLSAgICAgICAgICAgIHByb21pc2UtPnJlamVjdChOb3RT
dXBwb3J0ZWRFcnJvcik7Ci0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIH0KLQotICAgICAg
ICAvLyA2LjIuIExldCBpbXBsZW1lbnRhdGlvbiBiZSB0aGUgaW1wbGVtZW50YXRpb24gb2Yga2V5
U3lzdGVtLgotICAgICAgICBhdXRvIGltcGxlbWVudGF0aW9uID0gQ0RNOjpjcmVhdGUoZG9jdW1l
bnQsIGtleVN5c3RlbSk7Ci0gICAgICAgIHRyeU5leHRTdXBwb3J0ZWRDb25maWd1cmF0aW9uKFdU
Rk1vdmUoaW1wbGVtZW50YXRpb24pLCBXVEZNb3ZlKHN1cHBvcnRlZENvbmZpZ3VyYXRpb25zKSwg
V1RGTW92ZShwcm9taXNlKSwgV1RGTW92ZShsb2dnZXIpLCBXVEZNb3ZlKGlkZW50aWZpZXIpKTsK
KyAgICBhdXRvIHJlcXVlc3QgPSBNZWRpYUtleVN5c3RlbVJlcXVlc3Q6OmNyZWF0ZShkb2N1bWVu
dCwga2V5U3lzdGVtLCBXVEZNb3ZlKHByb21pc2UpKTsKKyAgICByZXF1ZXN0LT5zZXRBbGxvd0Nh
bGxiYWNrKFtrZXlTeXN0ZW0sIHN1cHBvcnRlZENvbmZpZ3VyYXRpb25zID0gV1RGTW92ZShzdXBw
b3J0ZWRDb25maWd1cmF0aW9ucyksICZkb2N1bWVudCwgbG9nZ2VyID0gV1RGTW92ZShsb2dnZXIp
LCBpZGVudGlmaWVyID0gV1RGTW92ZShpZGVudGlmaWVyKV0oUmVmPERlZmVycmVkUHJvbWlzZT4m
JiBwcm9taXNlKSBtdXRhYmxlIHsKKyAgICAgICAgZG9jdW1lbnQucG9zdFRhc2soW3Byb21pc2Ug
PSBXVEZNb3ZlKHByb21pc2UpLCAmZG9jdW1lbnQsIGtleVN5c3RlbSwgbG9nZ2VyID0gV1RGTW92
ZShsb2dnZXIpLCBpZGVudGlmaWVyID0gV1RGTW92ZShpZGVudGlmaWVyKSwgc3VwcG9ydGVkQ29u
ZmlndXJhdGlvbnMgPSBXVEZNb3ZlKHN1cHBvcnRlZENvbmZpZ3VyYXRpb25zKV0gKFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQmKSBtdXRhYmxlIHsKKyAgICAgICAgICAgIC8vIDMuIExldCBkb2N1bWVu
dCBiZSB0aGUgY2FsbGluZyBjb250ZXh0J3MgRG9jdW1lbnQuCisgICAgICAgICAgICAvLyA0LiBM
ZXQgb3JpZ2luIGJlIHRoZSBvcmlnaW4gb2YgZG9jdW1lbnQuCisgICAgICAgICAgICAvLyA1LiBM
ZXQgcHJvbWlzZSBiZSBhIG5ldyBwcm9taXNlLgorICAgICAgICAgICAgLy8gNi4gUnVuIHRoZSBm
b2xsb3dpbmcgc3RlcHMgaW4gcGFyYWxsZWw6CisgICAgICAgICAgICAvLyA2LjEuIElmIGtleVN5
c3RlbSBpcyBub3Qgb25lIG9mIHRoZSBLZXkgU3lzdGVtcyBzdXBwb3J0ZWQgYnkgdGhlIHVzZXIg
YWdlbnQsIHJlamVjdCBwcm9taXNlIHdpdGggYSBOb3RTdXBwb3J0ZWRFcnJvci4KKyAgICAgICAg
ICAgIC8vICAgICAgU3RyaW5nIGNvbXBhcmlzb24gaXMgY2FzZS1zZW5zaXRpdmUuCisgICAgICAg
ICAgICBpZiAoIUNETTo6c3VwcG9ydHNLZXlTeXN0ZW0oa2V5U3lzdGVtKSkgeworICAgICAgICAg
ICAgICAgIGluZm9Mb2cobG9nZ2VyLCBpZGVudGlmaWVyLCAiUmVqZWN0ZWQ6IGtleVN5c3RlbSgi
LCBrZXlTeXN0ZW0sICIpIG5vdCBzdXBwb3J0ZWQiKTsKKyAgICAgICAgICAgICAgICBwcm9taXNl
LT5yZWplY3QoTm90U3VwcG9ydGVkRXJyb3IpOworICAgICAgICAgICAgICAgIHJldHVybjsKKyAg
ICAgICAgICAgIH0KKworICAgICAgICAgICAgLy8gNi4yLiBMZXQgaW1wbGVtZW50YXRpb24gYmUg
dGhlIGltcGxlbWVudGF0aW9uIG9mIGtleVN5c3RlbS4KKyAgICAgICAgICAgIGF1dG8gaW1wbGVt
ZW50YXRpb24gPSBDRE06OmNyZWF0ZShkb2N1bWVudCwga2V5U3lzdGVtKTsKKyAgICAgICAgICAg
IHRyeU5leHRTdXBwb3J0ZWRDb25maWd1cmF0aW9uKFdURk1vdmUoaW1wbGVtZW50YXRpb24pLCBX
VEZNb3ZlKHN1cHBvcnRlZENvbmZpZ3VyYXRpb25zKSwgV1RGTW92ZShwcm9taXNlKSwgV1RGTW92
ZShsb2dnZXIpLCBXVEZNb3ZlKGlkZW50aWZpZXIpKTsKKyAgICAgICAgfSk7CiAgICAgfSk7Cisg
ICAgcmVxdWVzdC0+c3RhcnQoKTsKIH0KIAogc3RhdGljIHZvaWQgdHJ5TmV4dFN1cHBvcnRlZENv
bmZpZ3VyYXRpb24oUmVmUHRyPENETT4mJiBpbXBsZW1lbnRhdGlvbiwgVmVjdG9yPE1lZGlhS2V5
U3lzdGVtQ29uZmlndXJhdGlvbj4mJiBzdXBwb3J0ZWRDb25maWd1cmF0aW9ucywgUmVmUHRyPERl
ZmVycmVkUHJvbWlzZT4mJiBwcm9taXNlLCBSZWY8TG9nZ2VyPiYmIGxvZ2dlciwgV1RGOjpMb2dn
ZXI6OkxvZ1NpdGVJZGVudGlmaWVyJiYgaWRlbnRpZmllcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA1YzUwZWVlM2VjMzU0MThk
MmJjNDliZWY2MjYwOTY2ZTQ1NmY2MjhiLi5kNjY1NzBiZTk5ZDcwMTI3YWM4MWFiMTFmNjIzNDdm
ZDlhOTgyM2NiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCkBAIC0zMDQxLDYgKzMwNDEsMTEgQEAKIAkJOTlEMUIyRDMyM0FDMTQzMTAw
ODExQ0YwIC8qIEluc3BlY3RvckRlYnVnZ2FibGVUeXBlLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5OUQxQjJEMTIzQUMxNDMwMDA4MTFDRjAgLyogSW5z
cGVjdG9yRGVidWdnYWJsZVR5cGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2
YXRlLCApOyB9OyB9OwogCQk5QTUyOEU4NDE3RDdGNTJGMDBBQTk1MTggLyogRmxvYXRpbmdPYmpl
Y3RzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5QTUy
OEU4MjE3RDdGNTJGMDBBQTk1MTggLyogRmxvYXRpbmdPYmplY3RzLmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJOUFCMUYzODAxOEUyNDg5QTAwNTM0
NzQzIC8qIENTU1RvTGVuZ3RoQ29udmVyc2lvbkRhdGEuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDlBQjFGMzdFMThFMjQ4OUEwMDUzNDc0MyAvKiBDU1NU
b0xlbmd0aENvbnZlcnNpb25EYXRhLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKKwkJOUFDQzA3OTYyNUM3MjVFRTAwREM2Mzg2IC8qIE1lZGlhS2V5U3lz
dGVtUmVxdWVzdC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA5QUNDMDc5NDI1QzcyNUVEMDBEQzYzODYgLyogTWVkaWFLZXlTeXN0ZW1SZXF1ZXN0LmNw
cCAqLzsgfTsKKwkJOUFDQzA3OTgyNUM3MjY3NzAwREM2Mzg2IC8qIE1lZGlhS2V5U3lzdGVtQ29u
dHJvbGxlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA5QUNDMDc5NzI1QzcyNjc2MDBEQzYzODYgLyogTWVkaWFLZXlTeXN0ZW1Db250cm9sbGVyLmNw
cCAqLzsgfTsKKwkJOUFDQzA3QTYyNUM4MTBERjAwREM2Mzg2IC8qIE1lZGlhS2V5U3lzdGVtUmVx
dWVzdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOUFD
QzA3QTUyNUM4MTBERjAwREM2Mzg2IC8qIE1lZGlhS2V5U3lzdGVtUmVxdWVzdC5oICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTlBQ0MwN0E4MjVDODEx
MEQwMERDNjM4NiAvKiBNZWRpYUtleVN5c3RlbUNsaWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOUFDQzA3QTcyNUM4MTEwRDAwREM2Mzg2IC8qIE1l
ZGlhS2V5U3lzdGVtQ2xpZW50LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0
ZSwgKTsgfTsgfTsKKwkJOUFDQzA3QUYyNUM4MTQxRDAwREM2Mzg2IC8qIE1lZGlhS2V5U3lzdGVt
Q29udHJvbGxlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gOUFDQzA3QUUyNUM4MTQxQzAwREM2Mzg2IC8qIE1lZGlhS2V5U3lzdGVtQ29udHJvbGxlci5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTlCMDJF
MEM4MjM1RUFEMkEwMDQwNDRCMiAvKiBUZXh0TWFuaXB1bGF0aW9uQ29udHJvbGxlci5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOUIwMkUwQzMyMzVFNzZB
QTAwNDA0NEIyIC8qIFRleHRNYW5pcHVsYXRpb25Db250cm9sbGVyLmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJOUIwQUJDQUUyMzZCQjQzMTAwQjQ1
MDg1IC8qIFRhc2tTb3VyY2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDlCMEFCQ0FDMjM2QkI0MEEwMEI0NTA4NSAvKiBUYXNrU291cmNlLmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJOUIxMjI5QzQyM0ZF
NEJEMjAwOENBNzUxIC8qIEF1ZGlvRGVzdGluYXRpb25Db2NvYS5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDEzMTUxODYyMzU3NzQ1RTAwMTE1RTZFIC8q
IEF1ZGlvRGVzdGluYXRpb25Db2NvYS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFBy
aXZhdGUsICk7IH07IH07CkBAIC0xMjAwMCw2ICsxMjAwNSwxMSBAQAogCQk5QUM2RjAyNTIxMTQ4
RjU0MDBDQkRBMDYgLyogTWVkaWFFbmdpbmVDb25maWd1cmF0aW9uRmFjdG9yeS5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBNZWRpYUVuZ2luZUNvbmZpZ3VyYXRpb25GYWN0b3J5
Lmg7IHBhdGggPSBtZWRpYWNhcGFiaWxpdGllcy9NZWRpYUVuZ2luZUNvbmZpZ3VyYXRpb25GYWN0
b3J5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTlBQzZGMDJEMjExNDhGOUYwMENC
REEwNiAvKiBNZWRpYUVuZ2luZUNvbmZpZ3VyYXRpb25GYWN0b3J5TW9jay5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBNZWRpYUVuZ2luZUNvbmZpZ3VyYXRpb25GYWN0
b3J5TW9jay5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTlBQzZGMDJGMjExNDhG
QTIwMENCREEwNiAvKiBNZWRpYUVuZ2luZUNvbmZpZ3VyYXRpb25GYWN0b3J5TW9jay5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBNZWRpYUVuZ2luZUNvbmZpZ3VyYXRpb25GYWN0
b3J5TW9jay5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5QUNDMDc5NDI1QzcyNUVE
MDBEQzYzODYgLyogTWVkaWFLZXlTeXN0ZW1SZXF1ZXN0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IE1lZGlhS2V5U3lzdGVtUmVxdWVzdC5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCTlBQ0MwNzk3MjVDNzI2NzYwMERDNjM4NiAvKiBNZWRpYUtleVN5
c3RlbUNvbnRyb2xsZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
TWVkaWFLZXlTeXN0ZW1Db250cm9sbGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJOUFDQzA3QTUyNUM4MTBERjAwREM2Mzg2IC8qIE1lZGlhS2V5U3lzdGVtUmVxdWVzdC5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBNZWRpYUtleVN5c3RlbVJlcXVlc3QuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOUFDQzA3QTcyNUM4MTEwRDAwREM2Mzg2IC8q
IE1lZGlhS2V5U3lzdGVtQ2xpZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IE1lZGlhS2V5U3lzdGVtQ2xpZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTlB
Q0MwN0FFMjVDODE0MUMwMERDNjM4NiAvKiBNZWRpYUtleVN5c3RlbUNvbnRyb2xsZXIuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTWVkaWFLZXlTeXN0ZW1Db250cm9sbGVyLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTlCMDJFMEMzMjM1RTc2QUEwMDQwNDRCMiAv
KiBUZXh0TWFuaXB1bGF0aW9uQ29udHJvbGxlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBUZXh0TWFuaXB1
bGF0aW9uQ29udHJvbGxlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5QjAyRTBD
NDIzNUU3NkFBMDA0MDQ0QjIgLyogVGV4dE1hbmlwdWxhdGlvbkNvbnRyb2xsZXIuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gVGV4dE1hbmlwdWxhdGlvbkNvbnRyb2xsZXIuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk5QjAzRDgwNjFCQjMxMTBEMDBCNzNGNjQgLyogUmVhZGFibGVC
eXRlU3RyZWFtSW50ZXJuYWxzQnVpbHRpbnMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBu
YW1lID0gUmVhZGFibGVCeXRlU3RyZWFtSW50ZXJuYWxzQnVpbHRpbnMuaDsgcGF0aCA9IERlcml2
ZWRTb3VyY2VzL1dlYkNvcmUvUmVhZGFibGVCeXRlU3RyZWFtSW50ZXJuYWxzQnVpbHRpbnMuaDsg
c291cmNlVHJlZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsgfTsKQEAgLTI4MDE1LDYgKzI4MDI1LDEx
IEBACiAJCUNEQTk4REJEMTYwMTRFMDgwMEZFQTNCMSAvKiBlbmNyeXB0ZWRtZWRpYSAqLyA9IHsK
IAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCisJCQkJOUFDQzA3QUUyNUM4MTQx
QzAwREM2Mzg2IC8qIE1lZGlhS2V5U3lzdGVtQ29udHJvbGxlci5oICovLAorCQkJCTlBQ0MwN0E3
MjVDODExMEQwMERDNjM4NiAvKiBNZWRpYUtleVN5c3RlbUNsaWVudC5oICovLAorCQkJCTlBQ0Mw
N0E1MjVDODEwREYwMERDNjM4NiAvKiBNZWRpYUtleVN5c3RlbVJlcXVlc3QuaCAqLywKKwkJCQk5
QUNDMDc5NzI1QzcyNjc2MDBEQzYzODYgLyogTWVkaWFLZXlTeXN0ZW1Db250cm9sbGVyLmNwcCAq
LywKKwkJCQk5QUNDMDc5NDI1QzcyNUVEMDBEQzYzODYgLyogTWVkaWFLZXlTeXN0ZW1SZXF1ZXN0
LmNwcCAqLywKIAkJCQkyRDA2MjE0NjFEQTYzOUVDMDBBN0ZCMjYgLyogbGVnYWN5ICovLAogCQkJ
CUNERjRCNzEzMUUwMEI3RTUwMEUyMzVBMiAvKiBDRE0uY3BwICovLAogCQkJCUNERjRCNzE0MUUw
MEI3RTUwMEUyMzVBMiAvKiBDRE0uaCAqLywKQEAgLTMxMjM5LDYgKzMxMjU0LDcgQEAKIAkJCQk5
MzRGNzEzQTBENUE2RjEwMDAwMThENjkgLyogQXV0aGVudGljYXRpb25DaGFsbGVuZ2VCYXNlLmgg
aW4gSGVhZGVycyAqLywKIAkJCQlFMTI0NzQ4NDEwQUExNjFEMDBCNzk0OTMgLyogQXV0aGVudGlj
YXRpb25DbGllbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTU3REE0N0IwMjI0MDM0RTQwMDJBNDYx
MiAvKiBBdXRoZW50aWNhdGlvbkV4dGVuc2lvbnNDbGllbnRJbnB1dHMuaCBpbiBIZWFkZXJzICov
LAorCQkJCTlBQ0MwN0E4MjVDODExMEQwMERDNjM4NiAvKiBNZWRpYUtleVN5c3RlbUNsaWVudC5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJNTc1ODU5NkMyMzlGMzIxQzAwQzc0NTcyIC8qIEF1dGhlbnRp
Y2F0aW9uRXh0ZW5zaW9uc0NsaWVudE91dHB1dHMuaCBpbiBIZWFkZXJzICovLAogCQkJCTUxNEM3
NjRDMENFOTIzNEUwMDdFRjNDRCAvKiBBdXRoZW50aWNhdGlvbk1hYy5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJNTczMDNDMkMyMDA5QjRBODAwMzU1OTY1IC8qIEF1dGhlbnRpY2F0b3JBc3NlcnRpb25S
ZXNwb25zZS5oIGluIEhlYWRlcnMgKi8sCkBAIC0zMjY4OCw2ICszMjcwNCw3IEBACiAJCQkJMUFF
OTZBOEQxRDFBMERERDAwQjg2NzY4IC8qIEpTQXBwbGVQYXlQYXltZW50TWV0aG9kU2VsZWN0ZWRF
dmVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTFGNkQwMEYxRkUwOTk5NDAwMTgwNzhDIC8qIEpT
QXBwbGVQYXlQYXltZW50TWV0aG9kVHlwZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTEyQzU5RkMy
MDM2MEIyNzAwMTIyMzZCIC8qIEpTQXBwbGVQYXlQYXltZW50TWV0aG9kVXBkYXRlLmggaW4gSGVh
ZGVycyAqLywKKwkJCQk5QUNDMDdBRjI1QzgxNDFEMDBEQzYzODYgLyogTWVkaWFLZXlTeXN0ZW1D
b250cm9sbGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk3QzY1MjMxQTFFMDBEQkI1MDA2NzdGMjIg
LyogSlNBcHBsZVBheVBheW1lbnRQYXNzLmggaW4gSGVhZGVycyAqLywKIAkJCQk3QzY1NzlGMjFF
MDA4NTY2MDBFM0EyN0EgLyogSlNBcHBsZVBheVBheW1lbnRSZXF1ZXN0LmggaW4gSGVhZGVycyAq
LywKIAkJCQlBMURGNUE4RjFGN0VDMDAyMDA1OEE0NzcgLyogSlNBcHBsZVBheVJlcXVlc3QuaCBp
biBIZWFkZXJzICovLApAQCAtMzQxNTgsNiArMzQxNzUsNyBAQAogCQkJCUIyMjI3OTcyMEQwMEJG
MjIwMDcxQjc4MiAvKiBSYWRpYWxHcmFkaWVudEF0dHJpYnV0ZXMuaCBpbiBIZWFkZXJzICovLAog
CQkJCTkzRjkyNTQzMEY3RUY1QjgwMDdFMzdDOSAvKiBSYWRpb0J1dHRvbkdyb3Vwcy5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJRjU1QjNEQ0MxMjUxRjEyRDAwM0VGMjY5IC8qIFJhZGlvSW5wdXRUeXBl
LmggaW4gSGVhZGVycyAqLywKKwkJCQk5QUNDMDdBNjI1QzgxMERGMDBEQzYzODYgLyogTWVkaWFL
ZXlTeXN0ZW1SZXF1ZXN0LmggaW4gSGVhZGVycyAqLywKIAkJCQlCNjU4RkZBNjE1MjJFRkFBMDBE
RDU1OTUgLyogUmFkaW9Ob2RlTGlzdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTNGMTk5MTgwODI0
NUU1OTAwMUU5QUJDIC8qIFJhbmdlLmggaW4gSGVhZGVycyAqLywKIAkJCQk5M0Q5RDUzQzBEQTI3
RTE4MDA3NzIxNkMgLyogUmFuZ2VCb3VuZGFyeVBvaW50LmggaW4gSGVhZGVycyAqLywKQEAgLTM2
MDIwLDYgKzM2MDM4LDcgQEAKIAkJCQk2RTcyRjU0RTIyOURDRDEwMDBCM0UxNTEgLyogR3JhcGhp
Y3NDb250ZXh0R0xBTkdMRS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk3QzNFNTEwQjE4REY4RjM1
MDBDMTEyRjcgLyogSFRNTENvbnZlcnRlci5tbSBpbiBTb3VyY2VzICovLAogCQkJCUE4RDA2QjNB
MEEyNjVEQ0QwMDVFNzIwMyAvKiBIVE1MTmFtZXMuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJOUFD
QzA3OTgyNUM3MjY3NzAwREM2Mzg2IC8qIE1lZGlhS2V5U3lzdGVtQ29udHJvbGxlci5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQkxQUM5MDBDMzE5NDNDMEZDMDA4NjI1QjUgLyogSFRUUEhlYWRlck5h
bWVzLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUNEMTlGRUFGMUY1NzRCNkQwMDBDNDJGQiAvKiBJ
bWFnZURlY29kZXJBVkZPYmpDLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJQ0QyN0FFNTEyMkE5ODY4
NzAwOTQ3RkY5IC8qIEltYWdlUm90YXRpb25TZXNzaW9uVlQubW0gaW4gU291cmNlcyAqLywKQEAg
LTM2NTY2LDYgKzM2NTg1LDcgQEAKIAkJCQlERTVGODUwNzFGQTFBNEY4MDA2REI2M0EgLyogVW5p
ZmllZFNvdXJjZTQwNS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlERTVGODUwODFGQTFBNEY4MDA2
REI2M0EgLyogVW5pZmllZFNvdXJjZTQwNi5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlERTVGODUw
OTFGQTFBNEY4MDA2REI2M0EgLyogVW5pZmllZFNvdXJjZTQwNy5jcHAgaW4gU291cmNlcyAqLywK
KwkJCQk5QUNDMDc5NjI1QzcyNUVFMDBEQzYzODYgLyogTWVkaWFLZXlTeXN0ZW1SZXF1ZXN0LmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCURFNUY4NTBBMUZBMUE0RjgwMDZEQjYzQSAvKiBVbmlmaWVk
U291cmNlNDA4LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCURFNUY4NTBCMUZBMUE0RjgwMDZEQjYz
QSAvKiBVbmlmaWVkU291cmNlNDA5LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCURFNUY4NTBDMUZB
MUE0RjgwMDZEQjYzQSAvKiBVbmlmaWVkU291cmNlNDEwLmNwcCBpbiBTb3VyY2VzICovLApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9XZWJLaXQvQ01h
a2VMaXN0cy50eHQKaW5kZXggY2JjYThkMzM4OGM1ODI5Yjc0MjcyMmU3NDk5ZjkzNjlmYjNjMzA4
NS4uNDZlYzBjNTRjYzQ0ZDFiM2JiZGNlMDk2MmYyNzEzMDU4MDVhODcyOSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvV2ViS2l0L0NNYWtlTGlz
dHMudHh0CkBAIC03NSw2ICs3NSw3IEBAIHNldChXZWJLaXRfSU5DTFVERV9ESVJFQ1RPUklFUwog
ICAgICIke1dFQktJVF9ESVJ9L1dlYlByb2Nlc3MvQ2FjaGUiCiAgICAgIiR7V0VCS0lUX0RJUn0v
V2ViUHJvY2Vzcy9EYXRhYmFzZXMiCiAgICAgIiR7V0VCS0lUX0RJUn0vV2ViUHJvY2Vzcy9EYXRh
YmFzZXMvSW5kZXhlZERCIgorICAgICIke1dFQktJVF9ESVJ9L1dlYlByb2Nlc3MvRW5jcnlwdGVk
TWVkaWEiCiAgICAgIiR7V0VCS0lUX0RJUn0vV2ViUHJvY2Vzcy9GaWxlQVBJIgogICAgICIke1dF
QktJVF9ESVJ9L1dlYlByb2Nlc3MvRnVsbFNjcmVlbiIKICAgICAiJHtXRUJLSVRfRElSfS9XZWJQ
cm9jZXNzL0dhbWVwYWQiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0hlYWRlcnMuY21ha2Ug
Yi9Tb3VyY2UvV2ViS2l0L0hlYWRlcnMuY21ha2UKaW5kZXggMjEzMDRkYTMwZDc4ODI1NDM2NTIy
N2FhNmIzNmYwZTc2ZjY5MGVmNC4uMzQ2YzhhNjNhN2I3YWU0OTdhMWJlZTI0ZDdmODA4YjBmYThj
ZTRhMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9IZWFkZXJzLmNtYWtlCisrKyBiL1NvdXJj
ZS9XZWJLaXQvSGVhZGVycy5jbWFrZQpAQCAtNjIsNiArNjIsNyBAQCBzZXQoV2ViS2l0X1BVQkxJ
Q19GUkFNRVdPUktfSEVBREVSUwogICAgIFVJUHJvY2Vzcy9BUEkvQy9XS0ljb25EYXRhYmFzZS5o
CiAgICAgVUlQcm9jZXNzL0FQSS9DL1dLSW5zcGVjdG9yLmgKICAgICBVSVByb2Nlc3MvQVBJL0Mv
V0tMYXlvdXRNb2RlLmgKKyAgICBVSVByb2Nlc3MvQVBJL0MvV0tNZWRpYUtleVN5c3RlbVBlcm1p
c3Npb25DYWxsYmFjay5oCiAgICAgVUlQcm9jZXNzL0FQSS9DL1dLTWVzc2FnZUxpc3RlbmVyLmgK
ICAgICBVSVByb2Nlc3MvQVBJL0MvV0tNb2NrRGlzcGxheS5oCiAgICAgVUlQcm9jZXNzL0FQSS9D
L1dLTW9ja01lZGlhRGV2aWNlLmgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0v
TG9nZ2luZy5oIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9Mb2dnaW5nLmgKaW5kZXggZjQ5ZjM4
YjZhNWY5ZDNkNzA5NTJkMmUxMjFjODk5NWRlY2U5OGVhYS4uMDY2ZjA2NWZlM2UzYWVjNGEwNzk4
NjgxOTNkYWU4YTBiMDc3NzViOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9M
b2dnaW5nLmgKKysrIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9Mb2dnaW5nLmgKQEAgLTUyLDYg
KzUyLDcgQEAgZXh0ZXJuICJDIiB7CiAgICAgTShDb250ZXh0TWVudSkgXAogICAgIE0oRGlza1Bl
cnNpc3RlbmN5KSBcCiAgICAgTShEcmFnQW5kRHJvcCkgXAorICAgIE0oRU1FKSBcCiAgICAgTShG
dWxsc2NyZWVuKSBcCiAgICAgTShHYW1lcGFkKSBcCiAgICAgTShJUEMpIFwKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvUGxhdGZvcm1HVEsuY21ha2UgYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3Jt
R1RLLmNtYWtlCmluZGV4IDMyMGIxMTZiMWQ4YTMzYTdkNTQ3YzdjZjYxOTA3NTY3NjE0NzM3NzIu
LjlhOGUwZmE4OTc4ZjZiMmFlODg3ODUzNjM0YTljY2Q2N2Q3NTE4NzEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvUGxhdGZvcm1HVEsuY21ha2UKKysrIGIvU291cmNlL1dlYktpdC9QbGF0Zm9y
bUdUSy5jbWFrZQpAQCAtMTE5LDYgKzExOSw3IEBAIHNldChXZWJLaXQyR1RLX0lOU1RBTExFRF9I
RUFERVJTCiAgICAgJHtXRUJLSVRfRElSfS9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRIaXRUZXN0
UmVzdWx0LmgKICAgICAke1dFQktJVF9ESVJ9L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdEluc3Rh
bGxNaXNzaW5nTWVkaWFQbHVnaW5zUGVybWlzc2lvblJlcXVlc3QuaAogICAgICR7V0VCS0lUX0RJ
Un0vVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0SmF2YXNjcmlwdFJlc3VsdC5oCisgICAgJHtXRUJL
SVRfRElSfS9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25S
ZXF1ZXN0LmgKICAgICAke1dFQktJVF9ESVJ9L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdE1pbWVJ
bmZvLmgKICAgICAke1dFQktJVF9ESVJ9L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdE5hdmlnYXRp
b25BY3Rpb24uaAogICAgICR7V0VCS0lUX0RJUn0vVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0TmF2
aWdhdGlvblBvbGljeURlY2lzaW9uLmgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvUGxhdGZv
cm1XUEUuY21ha2UgYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtV1BFLmNtYWtlCmluZGV4IGM0NDFl
NmFhYmY0MmM5ZDVhZWNjY2Q5NjFkYjQwMTA3YzQ4N2JkNDAuLmY0NWM1MzFhMDliY2I1OGRhYWY5
ZmY1YTk4NGZjMWM2MTExYzU5NzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm1X
UEUuY21ha2UKKysrIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybVdQRS5jbWFrZQpAQCAtMTMyLDYg
KzEzMiw3IEBAIHNldChXUEVfQVBJX0lOU1RBTExFRF9IRUFERVJTCiAgICAgJHtXRUJLSVRfRElS
fS9VSVByb2Nlc3MvQVBJL3dwZS9XZWJLaXRJbnB1dE1ldGhvZENvbnRleHQuaAogICAgICR7V0VC
S0lUX0RJUn0vVUlQcm9jZXNzL0FQSS93cGUvV2ViS2l0SW5zdGFsbE1pc3NpbmdNZWRpYVBsdWdp
bnNQZXJtaXNzaW9uUmVxdWVzdC5oCiAgICAgJHtXRUJLSVRfRElSfS9VSVByb2Nlc3MvQVBJL3dw
ZS9XZWJLaXRKYXZhc2NyaXB0UmVzdWx0LmgKKyAgICAke1dFQktJVF9ESVJ9L1VJUHJvY2Vzcy9B
UEkvd3BlL1dlYktpdE1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3QuaAogICAgICR7V0VC
S0lUX0RJUn0vVUlQcm9jZXNzL0FQSS93cGUvV2ViS2l0TWltZUluZm8uaAogICAgICR7V0VCS0lU
X0RJUn0vVUlQcm9jZXNzL0FQSS93cGUvV2ViS2l0TmF2aWdhdGlvbkFjdGlvbi5oCiAgICAgJHtX
RUJLSVRfRElSfS9VSVByb2Nlc3MvQVBJL3dwZS9XZWJLaXROYXZpZ2F0aW9uUG9saWN5RGVjaXNp
b24uaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvQVBJL0FQSU9iamVjdC5oIGIv
U291cmNlL1dlYktpdC9TaGFyZWQvQVBJL0FQSU9iamVjdC5oCmluZGV4IDA1NTY5MzQzYTBkYzNh
YWQ2YzJkMzM0MDNlOGUyOWJhODZmZTRjYWIuLjQ2Yzc3M2VlMzhjZDMwNjc1YjZlOGIxNjI1Zjk3
NTMwNzkzYjE2YmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0FQSS9BUElPYmpl
Y3QuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BUEkvQVBJT2JqZWN0LmgKQEAgLTE4OSw2
ICsxODksOCBAQCBwdWJsaWM6CiAgICAgICAgIFdlYkF1dGhlbnRpY2F0aW9uUGFuZWwsCiAjZW5k
aWYKIAorICAgICAgICBNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25DYWxsYmFjaywKKwogICAgICAg
ICAvLyBCdW5kbGUgdHlwZXMKICAgICAgICAgQnVuZGxlLAogICAgICAgICBCdW5kbGVCYWNrRm9y
d2FyZExpc3QsCkBAIC00MzgsNiArNDQwLDggQEAgdGVtcGxhdGU8PiBzdHJ1Y3QgRW51bVRyYWl0
czxBUEk6Ok9iamVjdDo6VHlwZT4gewogICAgICAgICBBUEk6Ok9iamVjdDo6VHlwZTo6V2ViQXV0
aGVudGljYXRpb25QYW5lbCwKICNlbmRpZgogCisgICAgICAgIEFQSTo6T2JqZWN0OjpUeXBlOjpN
ZWRpYUtleVN5c3RlbVBlcm1pc3Npb25DYWxsYmFjaywKKwogICAgICAgICAvLyBCdW5kbGUgdHlw
ZXMKICAgICAgICAgQVBJOjpPYmplY3Q6OlR5cGU6OkJ1bmRsZSwKICAgICAgICAgQVBJOjpPYmpl
Y3Q6OlR5cGU6OkJ1bmRsZUJhY2tGb3J3YXJkTGlzdCwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvU2hhcmVkL0FQSS9jL1dLQmFzZS5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvQVBJL2MvV0tC
YXNlLmgKaW5kZXggODRlZTZjMjg4ZjZkMmViZDUxZmE3M2VhNzI3MDhmMzI5NDZiZGQ4NS4uN2M4
YmQyMzkyNGM0YWI3MTE1NGY1Y2FjN2U3M2NjNzNkMzk0NThjMCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9TaGFyZWQvQVBJL2MvV0tCYXNlLmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQv
QVBJL2MvV0tCYXNlLmgKQEAgLTE0Miw2ICsxNDIsOCBAQCB0eXBlZGVmIGNvbnN0IHN0cnVjdCBP
cGFxdWVXS1dlYnNpdGVEYXRhU3RvcmUqIFdLV2Vic2l0ZURhdGFTdG9yZVJlZjsKIHR5cGVkZWYg
Y29uc3Qgc3RydWN0IE9wYXF1ZVdLV2Vic2l0ZVBvbGljaWVzKiBXS1dlYnNpdGVQb2xpY2llc1Jl
ZjsKIHR5cGVkZWYgY29uc3Qgc3RydWN0IE9wYXF1ZVdLV2luZG93RmVhdHVyZXMqIFdLV2luZG93
RmVhdHVyZXNSZWY7CiB0eXBlZGVmIGNvbnN0IHN0cnVjdCBPcGFxdWVXS1NwZWVjaFJlY29nbml0
aW9uUGVybWlzc2lvbkNhbGxiYWNrKiBXS1NwZWVjaFJlY29nbml0aW9uUGVybWlzc2lvbkNhbGxi
YWNrUmVmOwordHlwZWRlZiBjb25zdCBzdHJ1Y3QgT3BhcXVlV0tNZWRpYUtleVN5c3RlbVBlcm1p
c3Npb25SZXF1ZXN0KiBXS01lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RSZWY7Cit0eXBl
ZGVmIGNvbnN0IHN0cnVjdCBPcGFxdWVXS01lZGlhS2V5U3lzdGVtUGVybWlzc2lvbkNhbGxiYWNr
KiBXS01lZGlhS2V5U3lzdGVtUGVybWlzc2lvbkNhbGxiYWNrUmVmOwogCiAvKiBXZWJLaXQyIEJ1
bmRsZSB0eXBlcyAqLwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0IGIv
U291cmNlL1dlYktpdC9Tb3VyY2VzLnR4dAppbmRleCA3ZjQwOGJjNDYxMGMxMDU0OTFkNWIwNjQx
ZjhiNzBmM2FmOTFiMDQzLi40M2FhMmI3ZDU3NjJjNThkOTQ3ZTIxZWY0YmM3MjUwNDU5OTcxZDAx
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0CisrKyBiL1NvdXJjZS9XZWJL
aXQvU291cmNlcy50eHQKQEAgLTI4NSw2ICsyODUsOCBAQCBVSVByb2Nlc3MvRnJhbWVMb2FkU3Rh
dGUuY3BwCiBVSVByb2Nlc3MvR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94
eS5jcHAKIFVJUHJvY2Vzcy9HZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0UHJveHkuY3BwCiBV
SVByb2Nlc3MvTGVnYWN5R2xvYmFsU2V0dGluZ3MuY3BwCitVSVByb2Nlc3MvTWVkaWFLZXlTeXN0
ZW1QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5jcHAKK1VJUHJvY2Vzcy9NZWRpYUtleVN5
c3RlbVBlcm1pc3Npb25SZXF1ZXN0UHJveHkuY3BwCiBVSVByb2Nlc3MvUGFnZUxvYWRTdGF0ZS5j
cHAKIFVJUHJvY2Vzcy9Qcm9jZXNzQXNzZXJ0aW9uLmNwcAogVUlQcm9jZXNzL1Byb2Nlc3NUaHJv
dHRsZXIuY3BwCkBAIC0zOTEsNiArMzkzLDcgQEAgVUlQcm9jZXNzL0FQSS9DL1dLSGl0VGVzdFJl
c3VsdC5jcHAKIFVJUHJvY2Vzcy9BUEkvQy9XS0ljb25EYXRhYmFzZS5jcHAKIFVJUHJvY2Vzcy9B
UEkvQy9XS0luc3BlY3Rvci5jcHAKIFVJUHJvY2Vzcy9BUEkvQy9XS0tleVZhbHVlU3RvcmFnZU1h
bmFnZXIuY3BwCitVSVByb2Nlc3MvQVBJL0MvV0tNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25DYWxs
YmFjay5jcHAKIFVJUHJvY2Vzcy9BUEkvQy9XS01lc3NhZ2VMaXN0ZW5lci5jcHAKIFVJUHJvY2Vz
cy9BUEkvQy9XS01vY2tEaXNwbGF5LmNwcAogVUlQcm9jZXNzL0FQSS9DL1dLTW9ja01lZGlhRGV2
aWNlLmNwcApAQCAtNTExLDYgKzUxNCw4IEBAIFdlYlByb2Nlc3MvRGF0YWJhc2VzL1dlYkRhdGFi
YXNlUHJvdmlkZXIuY3BwCiAKIFdlYlByb2Nlc3MvRGF0YWJhc2VzL0luZGV4ZWREQi9XZWJJREJD
b25uZWN0aW9uVG9TZXJ2ZXIuY3BwCiAKK1dlYlByb2Nlc3MvRW5jcnlwdGVkTWVkaWEvTWVkaWFL
ZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIuY3BwCisKIFdlYlByb2Nlc3MvRmlsZUFQ
SS9CbG9iUmVnaXN0cnlQcm94eS5jcHAKIAogV2ViUHJvY2Vzcy9GdWxsU2NyZWVuL1dlYkZ1bGxT
Y3JlZW5NYW5hZ2VyLmNwcApAQCAtNjY1LDYgKzY3MCw3IEBAIFdlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvV2ViRHJhZ0NsaWVudC5jcHAKIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRWRp
dG9yQ2xpZW50LmNwcAogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNs
aWVudC5jcHAKIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViR2VvbG9jYXRpb25DbGllbnQu
Y3BwCitXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYk1lZGlhS2V5U3lzdGVtQ2xpZW50LmNw
cAogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJNZXNzYWdlUG9ydENoYW5uZWxQcm92aWRl
ci5jcHAKIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViTm90aWZpY2F0aW9uQ2xpZW50LmNw
cAogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJQZXJmb3JtYW5jZUxvZ2dpbmdDbGllbnQu
Y3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNHVEsudHh0IGIvU291cmNlL1dl
YktpdC9Tb3VyY2VzR1RLLnR4dAppbmRleCA1ZDViMDNiMmU1ZWU0ZGE0Y2MyYjRjMmRlMDRiODBk
OWRlMGNlYWJiLi41NmJkZmZhNmZhNWU0MTExYjUwZTA0ODMwMWJkZTMxMTFjNjk0YWM1IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNHVEsudHh0CisrKyBiL1NvdXJjZS9XZWJLaXQv
U291cmNlc0dUSy50eHQKQEAgLTE0Niw2ICsxNDYsNyBAQCBVSVByb2Nlc3MvQVBJL2dsaWIvV2Vi
S2l0SW5qZWN0ZWRCdW5kbGVDbGllbnQuY3BwIEBuby11bmlmeQogVUlQcm9jZXNzL0FQSS9nbGli
L1dlYktpdElucHV0TWV0aG9kQ29udGV4dC5jcHAgQG5vLXVuaWZ5CiBVSVByb2Nlc3MvQVBJL2ds
aWIvV2ViS2l0SW5zdGFsbE1pc3NpbmdNZWRpYVBsdWdpbnNQZXJtaXNzaW9uUmVxdWVzdC5jcHAg
QG5vLXVuaWZ5CiBVSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0SmF2YXNjcmlwdFJlc3VsdC5jcHAg
QG5vLXVuaWZ5CitVSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0TWVkaWFLZXlTeXN0ZW1QZXJtaXNz
aW9uUmVxdWVzdC5jcHAgQG5vLXVuaWZ5CiBVSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0TWltZUlu
Zm8uY3BwIEBuby11bmlmeQogVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdE5hdmlnYXRpb25BY3Rp
b24uY3BwIEBuby11bmlmeQogVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdE5hdmlnYXRpb25DbGll
bnQuY3BwIEBuby11bmlmeQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9Tb3VyY2VzV1BFLnR4
dCBiL1NvdXJjZS9XZWJLaXQvU291cmNlc1dQRS50eHQKaW5kZXggYzY3NjcwNzRjZGI4NGJhY2Qx
YzkxZGM5NTEyOGNkNjU2NmRhMmNlMS4uYzJlMTc0NTg0OTA3NTM3MTg2NDdlNGMwZTAyNjM5ZTg2
N2E5YWJkMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9Tb3VyY2VzV1BFLnR4dAorKysgYi9T
b3VyY2UvV2ViS2l0L1NvdXJjZXNXUEUudHh0CkBAIC0xMzcsNiArMTM3LDcgQEAgVUlQcm9jZXNz
L0FQSS9nbGliL1dlYktpdEluamVjdGVkQnVuZGxlQ2xpZW50LmNwcCBAbm8tdW5pZnkKIFVJUHJv
Y2Vzcy9BUEkvZ2xpYi9XZWJLaXRJbnB1dE1ldGhvZENvbnRleHQuY3BwIEBuby11bmlmeQogVUlQ
cm9jZXNzL0FQSS9nbGliL1dlYktpdEluc3RhbGxNaXNzaW5nTWVkaWFQbHVnaW5zUGVybWlzc2lv
blJlcXVlc3QuY3BwIEBuby11bmlmeQogVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdEphdmFzY3Jp
cHRSZXN1bHQuY3BwIEBuby11bmlmeQorVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdE1lZGlhS2V5
U3lzdGVtUGVybWlzc2lvblJlcXVlc3QuY3BwIEBuby11bmlmeQogVUlQcm9jZXNzL0FQSS9nbGli
L1dlYktpdE1pbWVJbmZvLmNwcCBAbm8tdW5pZnkKIFVJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRO
YXZpZ2F0aW9uQWN0aW9uLmNwcCBAbm8tdW5pZnkKIFVJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRO
YXZpZ2F0aW9uQ2xpZW50LmNwcCBAbm8tdW5pZnkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9BUElVSUNsaWVudC5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L0FQSVVJQ2xpZW50LmgKaW5kZXggYjE3YjVhMTk2MmJjOWZkZTZiZjhmMDU1ZDRiNGFlOWUxN2Vi
ODRkZS4uMTYzNjdlNmNhYzgyNWFhOWM3NGZiNGM0ODQzZGQyZjFmZjFkYWQzOCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSVVJQ2xpZW50LmgKKysrIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSVVJQ2xpZW50LmgKQEAgLTIwNSw2ICsyMDUsOSBAQCBw
dWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGRpZERpc2FibGVJbnNwZWN0b3JCcm93c2VyRG9tYWlu
KFdlYktpdDo6V2ViUGFnZVByb3h5JikgeyB9CiAKICAgICB2aXJ0dWFsIHZvaWQgZGVjaWRlUG9s
aWN5Rm9yU3BlZWNoUmVjb2duaXRpb25QZXJtaXNzaW9uUmVxdWVzdChXZWJLaXQ6OldlYlBhZ2VQ
cm94eSYgcGFnZSwgQVBJOjpTZWN1cml0eU9yaWdpbiYgb3JpZ2luLCBDb21wbGV0aW9uSGFuZGxl
cjx2b2lkKGJvb2wpPiYmIGNvbXBsZXRpb25IYW5kbGVyKSB7IHBhZ2UucmVxdWVzdFNwZWVjaFJl
Y29nbml0aW9uUGVybWlzc2lvbkJ5RGVmYXVsdEFjdGlvbihvcmlnaW4uc2VjdXJpdHlPcmlnaW4o
KSwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOyB9CisKKyAgICB2aXJ0dWFsIHZvaWQgZGVj
aWRlUG9saWN5Rm9yTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdChXZWJLaXQ6OldlYlBh
Z2VQcm94eSYgcGFnZSwgQVBJOjpTZWN1cml0eU9yaWdpbiYgb3JpZ2luLCBjb25zdCBXVEY6OlN0
cmluZyYga2V5U3lzdGVtLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmIGNvbXBsZXRp
b25IYW5kbGVyKSB7IHBhZ2UucmVxdWVzdE1lZGlhS2V5U3lzdGVtUGVybWlzc2lvbkJ5RGVmYXVs
dEFjdGlvbihvcmlnaW4uc2VjdXJpdHlPcmlnaW4oKSwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxl
cikpOyB9CisKIH07CiAKIH0gLy8gbmFtZXNwYWNlIEFQSQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL0MvV0tBUElDYXN0LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvQy9XS0FQSUNhc3QuaAppbmRleCBjYzljZjU5NTdlYTMwZDZhY2YwNDY4ZGU3MDE3OThh
NmY0MTgxMTRhLi5jOGExODk1YTZkMGRlNzA5ZjlhZTM5OGJlNDViZWE2NmI5ZWJmYTBkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS0FQSUNhc3QuaAorKysgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS0FQSUNhc3QuaApAQCAtNzgsNiArNzgsNyBA
QCBjbGFzcyBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZVByb3h5OwogY2xhc3MgQXV0aGVudGljYXRp
b25EZWNpc2lvbkxpc3RlbmVyOwogY2xhc3MgRG93bmxvYWRQcm94eTsKIGNsYXNzIEdlb2xvY2F0
aW9uUGVybWlzc2lvblJlcXVlc3Q7CitjbGFzcyBNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25DYWxs
YmFjazsKIGNsYXNzIE5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0OwogY2xhc3MgU3BlZWNo
UmVjb2duaXRpb25QZXJtaXNzaW9uQ2FsbGJhY2s7CiBjbGFzcyBVc2VyTWVkaWFQZXJtaXNzaW9u
Q2hlY2tQcm94eTsKQEAgLTEzNSw2ICsxMzYsNyBAQCBXS19BRERfQVBJX01BUFBJTkcoV0tIVFRQ
Q29va2llU3RvcmVSZWYsIEFQSTo6SFRUUENvb2tpZVN0b3JlKQogV0tfQUREX0FQSV9NQVBQSU5H
KFdLSGl0VGVzdFJlc3VsdFJlZiwgQVBJOjpIaXRUZXN0UmVzdWx0KQogV0tfQUREX0FQSV9NQVBQ
SU5HKFdLSWNvbkRhdGFiYXNlUmVmLCBXZWJJY29uRGF0YWJhc2UpCiBXS19BRERfQVBJX01BUFBJ
TkcoV0tJbnNwZWN0b3JSZWYsIFdlYkluc3BlY3RvclByb3h5KQorV0tfQUREX0FQSV9NQVBQSU5H
KFdLTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uQ2FsbGJhY2tSZWYsIE1lZGlhS2V5U3lzdGVtUGVy
bWlzc2lvbkNhbGxiYWNrKQogV0tfQUREX0FQSV9NQVBQSU5HKFdLTWVzc2FnZUxpc3RlbmVyUmVm
LCBBUEk6Ok1lc3NhZ2VMaXN0ZW5lcikKIFdLX0FERF9BUElfTUFQUElORyhXS05hdmlnYXRpb25B
Y3Rpb25SZWYsIEFQSTo6TmF2aWdhdGlvbkFjdGlvbikKIFdLX0FERF9BUElfTUFQUElORyhXS05h
dmlnYXRpb25EYXRhUmVmLCBBUEk6Ok5hdmlnYXRpb25EYXRhKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25DYWxsYmFj
ay5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS01lZGlhS2V5U3lzdGVtUGVy
bWlzc2lvbkNhbGxiYWNrLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hYWE3MzI0YmJjMmFiMzcyNTdkYTgzYWJi
YzM0MDcxNGJhN2UwNTMwCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL0MvV0tNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25DYWxsYmFjay5jcHAKQEAgLTAsMCAr
MSw0MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBJZ2FsaWEgUy5MLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENP
TlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICog
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAq
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLwor
CisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV0tNZWRpYUtleVN5c3RlbVBlcm1pc3Np
b25DYWxsYmFjay5oIgorCisjaW5jbHVkZSAiTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVz
dC5oIgorI2luY2x1ZGUgIldLQVBJQ2FzdC5oIgorCit1c2luZyBuYW1lc3BhY2UgV2ViS2l0Owor
CitXS1R5cGVJRCBXS01lZGlhS2V5U3lzdGVtUGVybWlzc2lvbkNhbGxiYWNrR2V0VHlwZUlEKCkK
K3sKKyAgICByZXR1cm4gdG9BUEkoTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uQ2FsbGJhY2s6OkFQ
SVR5cGUpOworfQorCit2b2lkIFdLTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uQ2FsbGJhY2tDb21w
bGV0ZShXS01lZGlhS2V5U3lzdGVtUGVybWlzc2lvbkNhbGxiYWNrUmVmIHBlcm1pc3Npb25DYWxs
YmFjaywgYm9vbCBncmFudGVkKQoreworICAgIHJldHVybiB0b0ltcGwocGVybWlzc2lvbkNhbGxi
YWNrKS0+Y29tcGxldGUoZ3JhbnRlZCk7Cit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvQy9XS01lZGlhS2V5U3lzdGVtUGVybWlzc2lvbkNhbGxiYWNrLmggYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS01lZGlhS2V5U3lzdGVtUGVybWlzc2lvbkNhbGxi
YWNrLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uZjVkMzY4MzdlZmE2OWE0YjA2ZGYxMzIxMjJmYWY2YTBhMWY1MjA3
OAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLTWVk
aWFLZXlTeXN0ZW1QZXJtaXNzaW9uQ2FsbGJhY2suaApAQCAtMCwwICsxLDQwIEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDIxIElnYWxpYSBTLkwuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMg
SVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRP
UlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MK
KyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgor
ICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQor
CisjaW5jbHVkZSA8V2ViS2l0L1dLQmFzZS5oPgorCisjaWZkZWYgX19jcGx1c3BsdXMKK2V4dGVy
biAiQyIgeworI2VuZGlmCisKK1dLX0VYUE9SVCBXS1R5cGVJRCBXS01lZGlhS2V5U3lzdGVtUGVy
bWlzc2lvbkNhbGxiYWNrR2V0VHlwZUlEKHZvaWQpOworCitXS19FWFBPUlQgdm9pZCBXS01lZGlh
S2V5U3lzdGVtUGVybWlzc2lvbkNhbGxiYWNrQ29tcGxldGUoV0tNZWRpYUtleVN5c3RlbVBlcm1p
c3Npb25DYWxsYmFja1JlZiBwZXJtaXNzaW9uQ2FsbGJhY2ssIGJvb2wgZ3JhbnRlZCk7CisKKyNp
ZmRlZiBfX2NwbHVzcGx1cworfQorI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvQy9XS1BhZ2UuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0Mv
V0tQYWdlLmNwcAppbmRleCA3NDQzZjcwZjk1NzU4MzZkODQzZGE1NGM4NDgxNTA5YzlkOGM0ZGVj
Li5jMzllNzJmMDcxMmNiYWMwYmViYWZmMGIwMmU4NDU3M2FjMTZmOTE0IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5jcHAKQEAgLTU4LDYgKzU4LDcgQEAKICNpbmNsdWRl
ICJEb3dubG9hZFByb3h5LmgiCiAjaW5jbHVkZSAiTGVnYWN5U2Vzc2lvblN0YXRlQ29kaW5nLmgi
CiAjaW5jbHVkZSAiTG9nZ2luZy5oIgorI2luY2x1ZGUgIk1lZGlhS2V5U3lzdGVtUGVybWlzc2lv
blJlcXVlc3QuaCIKICNpbmNsdWRlICJOYXRpdmVXZWJLZXlib2FyZEV2ZW50LmgiCiAjaW5jbHVk
ZSAiTmF0aXZlV2ViV2hlZWxFdmVudC5oIgogI2luY2x1ZGUgIk5hdmlnYXRpb25BY3Rpb25EYXRh
LmgiCkBAIC0xMTcsNyArMTE4LDcgQEAgdGVtcGxhdGU8PiBzdHJ1Y3QgQ2xpZW50VHJhaXRzPFdL
UGFnZVBvbGljeUNsaWVudEJhc2U+IHsKIH07CiAKIHRlbXBsYXRlPD4gc3RydWN0IENsaWVudFRy
YWl0czxXS1BhZ2VVSUNsaWVudEJhc2U+IHsKLSAgICB0eXBlZGVmIHN0ZDo6dHVwbGU8V0tQYWdl
VUlDbGllbnRWMCwgV0tQYWdlVUlDbGllbnRWMSwgV0tQYWdlVUlDbGllbnRWMiwgV0tQYWdlVUlD
bGllbnRWMywgV0tQYWdlVUlDbGllbnRWNCwgV0tQYWdlVUlDbGllbnRWNSwgV0tQYWdlVUlDbGll
bnRWNiwgV0tQYWdlVUlDbGllbnRWNywgV0tQYWdlVUlDbGllbnRWOCwgV0tQYWdlVUlDbGllbnRW
OSwgV0tQYWdlVUlDbGllbnRWMTAsIFdLUGFnZVVJQ2xpZW50VjExLCBXS1BhZ2VVSUNsaWVudFYx
MiwgV0tQYWdlVUlDbGllbnRWMTMsIFdLUGFnZVVJQ2xpZW50VjE0LCBXS1BhZ2VVSUNsaWVudFYx
NT4gVmVyc2lvbnM7CisgICAgdHlwZWRlZiBzdGQ6OnR1cGxlPFdLUGFnZVVJQ2xpZW50VjAsIFdL
UGFnZVVJQ2xpZW50VjEsIFdLUGFnZVVJQ2xpZW50VjIsIFdLUGFnZVVJQ2xpZW50VjMsIFdLUGFn
ZVVJQ2xpZW50VjQsIFdLUGFnZVVJQ2xpZW50VjUsIFdLUGFnZVVJQ2xpZW50VjYsIFdLUGFnZVVJ
Q2xpZW50VjcsIFdLUGFnZVVJQ2xpZW50VjgsIFdLUGFnZVVJQ2xpZW50VjksIFdLUGFnZVVJQ2xp
ZW50VjEwLCBXS1BhZ2VVSUNsaWVudFYxMSwgV0tQYWdlVUlDbGllbnRWMTIsIFdLUGFnZVVJQ2xp
ZW50VjEzLCBXS1BhZ2VVSUNsaWVudFYxNCwgV0tQYWdlVUlDbGllbnRWMTUsIFdLUGFnZVVJQ2xp
ZW50VjE2PiBWZXJzaW9uczsKIH07CiAKICNpZiBFTkFCTEUoQ09OVEVYVF9NRU5VUykKQEAgLTIx
MTksNiArMjEyMCwxNiBAQCB2b2lkIFdLUGFnZVNldFBhZ2VVSUNsaWVudChXS1BhZ2VSZWYgcGFn
ZVJlZiwgY29uc3QgV0tQYWdlVUlDbGllbnRCYXNlKiB3a0NsaWVudAogCiAgICAgICAgICAgICBt
X2NsaWVudC5kZWNpZGVQb2xpY3lGb3JTcGVlY2hSZWNvZ25pdGlvblBlcm1pc3Npb25SZXF1ZXN0
KHRvQVBJKCZwYWdlKSwgdG9BUEkoJm9yaWdpbiksIHRvQVBJKFNwZWVjaFJlY29nbml0aW9uUGVy
bWlzc2lvbkNhbGxiYWNrOjpjcmVhdGUoV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpLnB0cigp
KSk7CiAgICAgICAgIH0KKworICAgICAgICB2b2lkIGRlY2lkZVBvbGljeUZvck1lZGlhS2V5U3lz
dGVtUGVybWlzc2lvblJlcXVlc3QoV2ViUGFnZVByb3h5JiBwYWdlLCBBUEk6OlNlY3VyaXR5T3Jp
Z2luJiBvcmlnaW4sIGNvbnN0IFN0cmluZyYga2V5U3lzdGVtLCBDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKGJvb2wpPiYmIGNvbXBsZXRpb25IYW5kbGVyKSBmaW5hbAorICAgICAgICB7CisgICAgICAg
ICAgICBpZiAoIW1fY2xpZW50LmRlY2lkZVBvbGljeUZvck1lZGlhS2V5U3lzdGVtUGVybWlzc2lv
blJlcXVlc3QpIHsKKyAgICAgICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihmYWxzZSk7Cisg
ICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBtX2Ns
aWVudC5kZWNpZGVQb2xpY3lGb3JNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0KHRvQVBJ
KCZwYWdlKSwgdG9BUEkoJm9yaWdpbiksIHRvQVBJKEFQSTo6U3RyaW5nOjpjcmVhdGUoa2V5U3lz
dGVtKS5wdHIoKSksIHRvQVBJKE1lZGlhS2V5U3lzdGVtUGVybWlzc2lvbkNhbGxiYWNrOjpjcmVh
dGUoV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpLnB0cigpKSk7CisgICAgICAgIH0KICAgICB9
OwogCiAgICAgdG9JbXBsKHBhZ2VSZWYpLT5zZXRVSUNsaWVudChtYWtlVW5pcXVlPFVJQ2xpZW50
Pih3a0NsaWVudCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0Mv
V0tQYWdlVUlDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZVVJ
Q2xpZW50LmgKaW5kZXggNjM2MzU1NTY0ZDAwYjExMjJhODdlMjI5YTMwYjk0ZDdlOTllNGVmOS4u
M2QzMTViZTYxMzQ4ZGQ3ZDI0NjdiYWE5NGRlYTRhZTcxMWMyNzgwMyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlVUlDbGllbnQuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2VVSUNsaWVudC5oCkBAIC0xMzgsOCArMTM4LDEw
IEBAIHR5cGVkZWYgYm9vbCAoKldLUGFnZVNob3VsZEFsbG93RGV2aWNlT3JpZW50YXRpb25BbmRN
b3Rpb25BY2Nlc3NDYWxsYmFjaykoV0tQYWdlCiB0eXBlZGVmIHZvaWQgKCpXS1BhZ2VSdW5XZWJB
dXRoZW50aWNhdGlvblBhbmVsQ2FsbGJhY2spKCk7CiB0eXBlZGVmIHZvaWQgKCpXS1BhZ2VEZWNp
ZGVQb2xpY3lGb3JTcGVlY2hSZWNvZ25pdGlvblBlcm1pc3Npb25SZXF1ZXN0Q2FsbGJhY2spKFdL
UGFnZVJlZiBwYWdlLCBXS1NlY3VyaXR5T3JpZ2luUmVmIHRvcE9yaWdpbiwgV0tTcGVlY2hSZWNv
Z25pdGlvblBlcm1pc3Npb25DYWxsYmFja1JlZiBjYWxsYmFjayk7CiAKK3R5cGVkZWYgdm9pZCAo
KldLUGFnZURlY2lkZVBvbGljeUZvck1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RDYWxs
YmFjaykoV0tQYWdlUmVmIHBhZ2UsIFdLU2VjdXJpdHlPcmlnaW5SZWYgdG9wT3JpZ2luLCBXS1N0
cmluZ1JlZiBrZXlTeXN0ZW0sIFdLTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uQ2FsbGJhY2tSZWYg
Y2FsbGJhY2spOworCiAvLyBEZXByZWNhdGVkCi10eXBlZGVmIFdLUGFnZVJlZiAoKldLUGFnZUNy
ZWF0ZU5ld1BhZ2VDYWxsYmFja19kZXByZWNhdGVkRm9yVXNlV2l0aFYwKShXS1BhZ2VSZWYgcGFn
ZSwgV0tEaWN0aW9uYXJ5UmVmIGZlYXR1cmVzLCBXS0V2ZW50TW9kaWZpZXJzIG1vZGlmaWVycywg
V0tFdmVudE1vdXNlQnV0dG9uIG1vdXNlQnV0dG9uLCBjb25zdCB2b2lkICpjbGllbnRJbmZvKTsK
K3R5cGVkZWYgV0tQYWdlUmVmICgqV0tQYWdlQ3JlYXRlTmV3UGFnZUNhbGxiYWNrX2RlcHJlY2F0
ZWRGb3JVc2VXaXRoVjApKFdLUGFnZVJlZiBwYWdlLCBXS0RpY3Rpb25hcnlSZWYgZmVhdHVyZXMs
IFdLRXZlbnRNb2RpZmllcnMgbW9kaWZpZXJzLCBXS0V2ZW50TW91c2VCdXR0b24gbW91c2VCdXR0
b24sIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pOwogdHlwZWRlZiB2b2lkICAgICAgKCpXS1BhZ2VN
b3VzZURpZE1vdmVPdmVyRWxlbWVudENhbGxiYWNrX2RlcHJlY2F0ZWRGb3JVc2VXaXRoVjApKFdL
UGFnZVJlZiBwYWdlLCBXS0V2ZW50TW9kaWZpZXJzIG1vZGlmaWVycywgV0tUeXBlUmVmIHVzZXJE
YXRhLCBjb25zdCB2b2lkICpjbGllbnRJbmZvKTsKIHR5cGVkZWYgdm9pZCAoKldLUGFnZU1pc3Np
bmdQbHVnaW5CdXR0b25DbGlja2VkQ2FsbGJhY2tfZGVwcmVjYXRlZEZvclVzZVdpdGhWMCkoV0tQ
YWdlUmVmIHBhZ2UsIFdLU3RyaW5nUmVmIG1pbWVUeXBlLCBXS1N0cmluZ1JlZiB1cmwsIFdLU3Ry
aW5nUmVmIHBsdWdpbnNQYWdlVVJMLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKTsKIHR5cGVkZWYg
dm9pZCAoKldLUGFnZVVuYXZhaWxhYmxlUGx1Z2luQnV0dG9uQ2xpY2tlZENhbGxiYWNrX2RlcHJl
Y2F0ZWRGb3JVc2VXaXRoVjEpKFdLUGFnZVJlZiBwYWdlLCBXS1BsdWdpblVuYXZhaWxhYmlsaXR5
UmVhc29uIHBsdWdpblVuYXZhaWxhYmlsaXR5UmVhc29uLCBXS1N0cmluZ1JlZiBtaW1lVHlwZSwg
V0tTdHJpbmdSZWYgdXJsLCBXS1N0cmluZ1JlZiBwbHVnaW5zUGFnZVVSTCwgY29uc3Qgdm9pZCog
Y2xpZW50SW5mbyk7CkBAIC0xNDY1LDYgKzE0NjcsMTIxIEBAIHR5cGVkZWYgc3RydWN0IFdLUGFn
ZVVJQ2xpZW50VjE1IHsKICAgICAKIH0gV0tQYWdlVUlDbGllbnRWMTU7CiAKK3R5cGVkZWYgc3Ry
dWN0IFdLUGFnZVVJQ2xpZW50VjE2IHsKKyAgICBXS1BhZ2VVSUNsaWVudEJhc2UgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJhc2U7CisKKyAgICAvLyBW
ZXJzaW9uIDAuCisgICAgV0tQYWdlQ3JlYXRlTmV3UGFnZUNhbGxiYWNrX2RlcHJlY2F0ZWRGb3JV
c2VXaXRoVjAgICAgICAgICAgICAgICAgICBjcmVhdGVOZXdQYWdlX2RlcHJlY2F0ZWRGb3JVc2VX
aXRoVjA7CisgICAgV0tQYWdlVUlDbGllbnRDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBzaG93UGFnZTsKKyAgICBXS1BhZ2VVSUNsaWVudENhbGxi
YWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsb3NlOwor
ICAgIFdLUGFnZVRha2VGb2N1c0NhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgdGFrZUZvY3VzOworICAgIFdLUGFnZUZvY3VzQ2FsbGJhY2sgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9jdXM7CisgICAgV0tQ
YWdlVW5mb2N1c0NhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICB1bmZvY3VzOworICAgIFdLUGFnZVJ1bkphdmFTY3JpcHRBbGVydENhbGxiYWNrX2Rl
cHJlY2F0ZWRGb3JVc2VXaXRoVjAgICAgICAgICAgICAgcnVuSmF2YVNjcmlwdEFsZXJ0X2RlcHJl
Y2F0ZWRGb3JVc2VXaXRoVjA7CisgICAgV0tQYWdlUnVuSmF2YVNjcmlwdENvbmZpcm1DYWxsYmFj
a19kZXByZWNhdGVkRm9yVXNlV2l0aFYwICAgICAgICAgICBydW5KYXZhU2NyaXB0Q29uZmlybV9k
ZXByZWNhdGVkRm9yVXNlV2l0aFYwOworICAgIFdLUGFnZVJ1bkphdmFTY3JpcHRQcm9tcHRDYWxs
YmFja19kZXByZWNhdGVkRm9yVXNlV2l0aFYwICAgICAgICAgICAgcnVuSmF2YVNjcmlwdFByb21w
dF9kZXByZWNhdGVkRm9yVXNlV2l0aFYwOworICAgIFdLUGFnZVNldFN0YXR1c1RleHRDYWxsYmFj
ayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0U3RhdHVzVGV4dDsK
KyAgICBXS1BhZ2VNb3VzZURpZE1vdmVPdmVyRWxlbWVudENhbGxiYWNrX2RlcHJlY2F0ZWRGb3JV
c2VXaXRoVjAgICAgICAgIG1vdXNlRGlkTW92ZU92ZXJFbGVtZW50X2RlcHJlY2F0ZWRGb3JVc2VX
aXRoVjA7CisgICAgV0tQYWdlTWlzc2luZ1BsdWdpbkJ1dHRvbkNsaWNrZWRDYWxsYmFja19kZXBy
ZWNhdGVkRm9yVXNlV2l0aFYwICAgICBtaXNzaW5nUGx1Z2luQnV0dG9uQ2xpY2tlZF9kZXByZWNh
dGVkRm9yVXNlV2l0aFYwOworICAgIFdLUGFnZURpZE5vdEhhbmRsZUtleUV2ZW50Q2FsbGJhY2sg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlkTm90SGFuZGxlS2V5RXZlbnQ7Cisg
ICAgV0tQYWdlRGlkTm90SGFuZGxlV2hlZWxFdmVudENhbGxiYWNrICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBkaWROb3RIYW5kbGVXaGVlbEV2ZW50OworICAgIFdLUGFnZUdldFRvb2xi
YXJzQXJlVmlzaWJsZUNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG9v
bGJhcnNBcmVWaXNpYmxlOworICAgIFdLUGFnZVNldFRvb2xiYXJzQXJlVmlzaWJsZUNhbGxiYWNr
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0VG9vbGJhcnNBcmVWaXNpYmxlOwor
ICAgIFdLUGFnZUdldE1lbnVCYXJJc1Zpc2libGVDYWxsYmFjayAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgbWVudUJhcklzVmlzaWJsZTsKKyAgICBXS1BhZ2VTZXRNZW51QmFySXNW
aXNpYmxlQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldE1lbnVC
YXJJc1Zpc2libGU7CisgICAgV0tQYWdlR2V0U3RhdHVzQmFySXNWaXNpYmxlQ2FsbGJhY2sgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0dXNCYXJJc1Zpc2libGU7CisgICAgV0tQ
YWdlU2V0U3RhdHVzQmFySXNWaXNpYmxlQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBzZXRTdGF0dXNCYXJJc1Zpc2libGU7CisgICAgV0tQYWdlR2V0SXNSZXNpemFibGVD
YWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpc1Jlc2l6YWJs
ZTsKKyAgICBXS1BhZ2VTZXRJc1Jlc2l6YWJsZUNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHNldElzUmVzaXphYmxlOworICAgIFdLUGFnZUdldFdpbmRvd0Zy
YW1lQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2V0V2lu
ZG93RnJhbWU7CisgICAgV0tQYWdlU2V0V2luZG93RnJhbWVDYWxsYmFjayAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRXaW5kb3dGcmFtZTsKKyAgICBXS1BhZ2VSdW5C
ZWZvcmVVbmxvYWRDb25maXJtUGFuZWxDYWxsYmFja19kZXByZWNhdGVkRm9yVXNlV2l0aFY2ICAg
IHJ1bkJlZm9yZVVubG9hZENvbmZpcm1QYW5lbF9kZXByZWNhdGVkRm9yVXNlV2l0aFY2OworICAg
IFdLUGFnZVVJQ2xpZW50Q2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgZGlkRHJhdzsKKyAgICBXS1BhZ2VVSUNsaWVudENhbGxiYWNrICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhZ2VEaWRTY3JvbGw7CisgICAg
V0tQYWdlRXhjZWVkZWREYXRhYmFzZVF1b3RhQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBleGNlZWRlZERhdGFiYXNlUXVvdGE7CisgICAgV0tQYWdlUnVuT3BlblBhbmVs
Q2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBydW5PcGVu
UGFuZWw7CisgICAgV0tQYWdlRGVjaWRlUG9saWN5Rm9yR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVx
dWVzdENhbGxiYWNrICAgICAgICAgICBkZWNpZGVQb2xpY3lGb3JHZW9sb2NhdGlvblBlcm1pc3Np
b25SZXF1ZXN0OworICAgIFdLUGFnZUhlYWRlckhlaWdodENhbGxiYWNrICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVhZGVySGVpZ2h0OworICAgIFdLUGFnZUZvb3Rl
ckhlaWdodENhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
Zm9vdGVySGVpZ2h0OworICAgIFdLUGFnZURyYXdIZWFkZXJDYWxsYmFjayAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZHJhd0hlYWRlcjsKKyAgICBXS1BhZ2VEcmF3
Rm9vdGVyQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGRyYXdGb290ZXI7CisgICAgV0tQYWdlUHJpbnRGcmFtZUNhbGxiYWNrICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmludEZyYW1lOworICAgIFdLUGFnZVVJQ2xp
ZW50Q2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
cnVuTW9kYWw7CisgICAgdm9pZCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICB1bnVzZWQxOyAvLyBVc2VkIHRvIGJlIGRpZENvbXBs
ZXRlUnViYmVyQmFuZEZvck1haW5GcmFtZQorICAgIFdLUGFnZVNhdmVEYXRhVG9GaWxlSW5Eb3du
bG9hZHNGb2xkZXJDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgc2F2ZURhdGFUb0ZpbGVJ
bkRvd25sb2Fkc0ZvbGRlcjsKKyAgICB2b2lkKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNob3VsZEludGVycnVwdEphdmFTY3Jp
cHRfdW5hdmFpbGFibGU7CisKKyAgICAvLyBWZXJzaW9uIDEuCisgICAgV0tQYWdlQ3JlYXRlTmV3
UGFnZUNhbGxiYWNrX2RlcHJlY2F0ZWRGb3JVc2VXaXRoVjEgICAgICAgICAgICAgICAgICBjcmVh
dGVOZXdQYWdlX2RlcHJlY2F0ZWRGb3JVc2VXaXRoVjE7CisgICAgV0tQYWdlTW91c2VEaWRNb3Zl
T3ZlckVsZW1lbnRDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtb3VzZURp
ZE1vdmVPdmVyRWxlbWVudDsKKyAgICBXS1BhZ2VEZWNpZGVQb2xpY3lGb3JOb3RpZmljYXRpb25Q
ZXJtaXNzaW9uUmVxdWVzdENhbGxiYWNrICAgICAgICAgIGRlY2lkZVBvbGljeUZvck5vdGlmaWNh
dGlvblBlcm1pc3Npb25SZXF1ZXN0OworICAgIFdLUGFnZVVuYXZhaWxhYmxlUGx1Z2luQnV0dG9u
Q2xpY2tlZENhbGxiYWNrX2RlcHJlY2F0ZWRGb3JVc2VXaXRoVjEgdW5hdmFpbGFibGVQbHVnaW5C
dXR0b25DbGlja2VkX2RlcHJlY2F0ZWRGb3JVc2VXaXRoVjE7CisKKyAgICAvLyBWZXJzaW9uIDIu
CisgICAgV0tQYWdlU2hvd0NvbG9yUGlja2VyQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBzaG93Q29sb3JQaWNrZXI7CisgICAgV0tQYWdlSGlkZUNvbG9yUGlj
a2VyQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoaWRlQ29s
b3JQaWNrZXI7CisgICAgV0tQYWdlVW5hdmFpbGFibGVQbHVnaW5CdXR0b25DbGlja2VkQ2FsbGJh
Y2sgICAgICAgICAgICAgICAgICAgICAgICB1bmF2YWlsYWJsZVBsdWdpbkJ1dHRvbkNsaWNrZWQ7
CisKKyAgICAvLyBWZXJzaW9uIDMuCisgICAgV0tQYWdlUGlubmVkU3RhdGVEaWRDaGFuZ2VDYWxs
YmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwaW5uZWRTdGF0ZURpZENoYW5n
ZTsKKworICAgIC8vIFZlcnNpb24gNC4KKyAgICB2b2lkKiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVudXNlZDI7IC8vIFVzZWQg
dG8gYmUgZGlkQmVnaW5UcmFja2luZ1BvdGVudGlhbExvbmdNb3VzZVByZXNzLgorICAgIHZvaWQq
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgdW51c2VkMzsgLy8gVXNlZCB0byBiZSBkaWRSZWNvZ25pemVMb25nTW91c2VQcmVzcy4K
KyAgICB2b2lkKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHVudXNlZDQ7IC8vIFVzZWQgdG8gYmUgZGlkQ2FuY2VsVHJhY2tpbmdQ
b3RlbnRpYWxMb25nTW91c2VQcmVzcy4KKyAgICBXS1BhZ2VJc1BsYXlpbmdBdWRpb0RpZENoYW5n
ZUNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlzUGxheWluZ0F1ZGlvRGlk
Q2hhbmdlOworCisgICAgLy8gVmVyc2lvbiA1LgorICAgIFdLUGFnZURlY2lkZVBvbGljeUZvclVz
ZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0Q2FsbGJhY2sgICAgICAgICAgICAgZGVjaWRlUG9saWN5
Rm9yVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3Q7CisgICAgV0tQYWdlRGlkQ2xpY2tBdXRvRmls
bEJ1dHRvbkNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaWRDbGlja0F1
dG9GaWxsQnV0dG9uOworICAgIFdLUGFnZVJ1bkphdmFTY3JpcHRBbGVydENhbGxiYWNrX2RlcHJl
Y2F0ZWRGb3JVc2VXaXRoVjUgICAgICAgICAgICAgcnVuSmF2YVNjcmlwdEFsZXJ0X2RlcHJlY2F0
ZWRGb3JVc2VXaXRoVjU7CisgICAgV0tQYWdlUnVuSmF2YVNjcmlwdENvbmZpcm1DYWxsYmFja19k
ZXByZWNhdGVkRm9yVXNlV2l0aFY1ICAgICAgICAgICBydW5KYXZhU2NyaXB0Q29uZmlybV9kZXBy
ZWNhdGVkRm9yVXNlV2l0aFY1OworICAgIFdLUGFnZVJ1bkphdmFTY3JpcHRQcm9tcHRDYWxsYmFj
a19kZXByZWNhdGVkRm9yVXNlV2l0aFY1ICAgICAgICAgICAgcnVuSmF2YVNjcmlwdFByb21wdF9k
ZXByZWNhdGVkRm9yVXNlV2l0aFY1OworICAgIHZvaWQqICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW51c2VkNTsgLy8gVXNlZCB0
byBiZSBtZWRpYVNlc3Npb25NZXRhZGF0YURpZENoYW5nZS4KKworICAgIC8vIFZlcnNpb24gNi4K
KyAgICBXS1BhZ2VDcmVhdGVOZXdQYWdlQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGNyZWF0ZU5ld1BhZ2U7CisgICAgV0tQYWdlUnVuSmF2YVNjcmlwdEFs
ZXJ0Q2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBydW5KYXZhU2Ny
aXB0QWxlcnQ7CisgICAgV0tQYWdlUnVuSmF2YVNjcmlwdENvbmZpcm1DYWxsYmFjayAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBydW5KYXZhU2NyaXB0Q29uZmlybTsKKyAgICBXS1Bh
Z2VSdW5KYXZhU2NyaXB0UHJvbXB0Q2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHJ1bkphdmFTY3JpcHRQcm9tcHQ7CisgICAgV0tDaGVja1VzZXJNZWRpYVBlcm1pc3Np
b25DYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGVja1VzZXJNZWRp
YVBlcm1pc3Npb25Gb3JPcmlnaW47CisKKyAgICAvLyBWZXJzaW9uIDcuCisgICAgV0tQYWdlUnVu
QmVmb3JlVW5sb2FkQ29uZmlybVBhbmVsQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAg
ICBydW5CZWZvcmVVbmxvYWRDb25maXJtUGFuZWw7CisgICAgV0tGdWxsc2NyZWVuTWF5UmV0dXJu
VG9JbmxpbmVDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmdWxsc2NyZWVu
TWF5UmV0dXJuVG9JbmxpbmU7CisKKyAgICAvLyBWZXJzaW9uIDguCisgICAgV0tSZXF1ZXN0UG9p
bnRlckxvY2tDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBy
ZXF1ZXN0UG9pbnRlckxvY2s7CisgICAgV0tEaWRMb3NlUG9pbnRlckxvY2tDYWxsYmFjayAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaWRMb3NlUG9pbnRlckxvY2s7CisK
KyAgICAvLyBWZXJzaW9uIDkuCisgICAgV0tIYW5kbGVBdXRvcGxheUV2ZW50Q2FsbGJhY2sgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVBdXRvcGxheUV2ZW50Owor
CisgICAgLy8gVmVyc2lvbiAxMC4KKyAgICBXS0hhc1ZpZGVvSW5QaWN0dXJlSW5QaWN0dXJlRGlk
Q2hhbmdlQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgIGhhc1ZpZGVvSW5QaWN0dXJlSW5Q
aWN0dXJlRGlkQ2hhbmdlOworICAgIFdLRGlkRXhjZWVkQmFja2dyb3VuZFJlc291cmNlTGltaXRX
aGlsZUluRm9yZWdyb3VuZENhbGxiYWNrICAgICAgICAgZGlkRXhjZWVkQmFja2dyb3VuZFJlc291
cmNlTGltaXRXaGlsZUluRm9yZWdyb3VuZDsKKworICAgIC8vIFZlcnNpb24gMTEuCisgICAgV0tQ
YWdlRGlkUmVzaWduSW5wdXRFbGVtZW50U3Ryb25nUGFzc3dvcmRBcHBlYXJhbmNlQ2FsbGJhY2sg
ICAgICAgICBkaWRSZXNpZ25JbnB1dEVsZW1lbnRTdHJvbmdQYXNzd29yZEFwcGVhcmFuY2U7CisK
KyAgICAvLyBWZXJzaW9uIDEyLgorICAgIFdLUGFnZVJlcXVlc3RTdG9yYWdlQWNjZXNzQ29uZmly
bUNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdFN0b3JhZ2VBY2Nlc3ND
b25maXJtOworCisgICAgLy8gVmVyc2lvbiAxMy4KKyAgICBXS1BhZ2VTaG91bGRBbGxvd0Rldmlj
ZU9yaWVudGF0aW9uQW5kTW90aW9uQWNjZXNzQ2FsbGJhY2sgICAgICAgICAgIHNob3VsZEFsbG93
RGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25BY2Nlc3M7CisKKyAgICAvLyBWZXJzaW9uIDE0Lgor
ICAgIFdLUGFnZVJ1bldlYkF1dGhlbnRpY2F0aW9uUGFuZWxDYWxsYmFjayAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgcnVuV2ViQXV0aGVudGljYXRpb25QYW5lbDsKKworICAgIC8vIFZlcnNp
b24gMTUuCisgICAgV0tQYWdlRGVjaWRlUG9saWN5Rm9yU3BlZWNoUmVjb2duaXRpb25QZXJtaXNz
aW9uUmVxdWVzdENhbGxiYWNrICAgICBkZWNpZGVQb2xpY3lGb3JTcGVlY2hSZWNvZ25pdGlvblBl
cm1pc3Npb25SZXF1ZXN0OworCisgICAgLy8gVmVyc2lvbiAxNi4KKyAgICBXS1BhZ2VEZWNpZGVQ
b2xpY3lGb3JNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0Q2FsbGJhY2sgICAgICAgIGRl
Y2lkZVBvbGljeUZvck1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3Q7CisKK30gV0tQYWdl
VUlDbGllbnRWMTY7CisKKwogI2lmZGVmIF9fY3BsdXNwbHVzCiB9CiAjZW5kaWYKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdE1lZGlhS2V5U3lzdGVt
UGVybWlzc2lvblJlcXVlc3QuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIv
V2ViS2l0TWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdC5jcHAKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDJh
YjBmYTNjZjcyMWIwOGFhZTc0NmRkOWVkNjJhNmZlZmEyZWViOAotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdE1lZGlhS2V5U3lzdGVtUGVy
bWlzc2lvblJlcXVlc3QuY3BwCkBAIC0wLDAgKzEsMTI0IEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDIxIElnYWxpYSBTLkwuCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7
IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0
ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVi
bGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogdmVyc2lv
biAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9u
LgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0
IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2
ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiBMaWJyYXJ5IEdlbmVy
YWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhh
dmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNl
bnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElC
LiAgSWYgbm90LCB3cml0ZSB0bworICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5j
LiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAqIEJvc3RvbiwgTUEgMDIxMTAt
MTMwMSwgVVNBLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJXZWJLaXRN
ZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0LmgiCisKKyNpbmNsdWRlICJNZWRpYUtleVN5
c3RlbVBlcm1pc3Npb25SZXF1ZXN0LmgiCisjaW5jbHVkZSAiV2ViS2l0TWVkaWFLZXlTeXN0ZW1Q
ZXJtaXNzaW9uUmVxdWVzdFByaXZhdGUuaCIKKyNpbmNsdWRlICJXZWJLaXRQZXJtaXNzaW9uUmVx
dWVzdC5oIgorI2luY2x1ZGUgPHd0Zi9nbGliL1dURkdUeXBlLmg+CisKK3VzaW5nIG5hbWVzcGFj
ZSBXZWJLaXQ7CisKKy8qKgorICogU0VDVElPTjogV2ViS2l0TWVkaWFLZXlTeXN0ZW1QZXJtaXNz
aW9uUmVxdWVzdAorICogQFNob3J0X2Rlc2NyaXB0aW9uOiBBIHBlcm1pc3Npb24gcmVxdWVzdCBm
b3IgdXNpbmcgYW4gRU1FIENvbnRlbnQgRGVjcnlwdGlvbiBNb2R1bGUKKyAqIEBUaXRsZTogV2Vi
S2l0TWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdAorICogQFNlZV9hbHNvOiAjV2ViS2l0
UGVybWlzc2lvblJlcXVlc3QsICNXZWJLaXRXZWJWaWV3CisgKgorICogV2ViS2l0TWVkaWFLZXlT
eXN0ZW1QZXJtaXNzaW9uUmVxdWVzdCByZXByZXNlbnRzIGEgcmVxdWVzdCBmb3IgcGVybWlzc2lv
biB0byBkZWNpZGUgd2hldGhlcgorICogV2ViS2l0IHNob3VsZCB1c2UgdGhlIGdpdmVuIENETSB0
byBhY2Nlc3MgcHJvdGVjdGVkIG1lZGlhIHdoZW4gcmVxdWVzdGVkIHRocm91Z2ggdGhlCisgKiBN
ZWRpYUtleVN5c3RlbSBBUEkuCisgKgorICogV2hlbiBhIFdlYktpdE1lZGlhS2V5U3lzdGVtUGVy
bWlzc2lvblJlcXVlc3QgaXMgbm90IGhhbmRsZWQgYnkgdGhlIHVzZXIsCisgKiBpdCBpcyBkZW5p
ZWQgYnkgZGVmYXVsdC4KKyAqCisgKiBXaGVuIGhhbmRsaW5nIHRoaXMgcGVybWlzc2lvbiByZXF1
ZXN0IHRoZSBhcHBsaWNhdGlvbiBtYXkgcGVyZm9ybSBhZGRpdGlvbmFsIGluc3RhbGxhdGlvbiBv
ZiB0aGUKKyAqIHJlcXVlc3RlZCBDRE0sIHVubGVzcyBpdCBpcyBhbHJlYWR5IHByZXNlbnQgb24g
dGhlIGhvc3Qgc3lzdGVtLgorICovCisKK3N0YXRpYyB2b2lkIHdlYmtpdF9wZXJtaXNzaW9uX3Jl
cXVlc3RfaW50ZXJmYWNlX2luaXQoV2ViS2l0UGVybWlzc2lvblJlcXVlc3RJZmFjZSopOworCitz
dHJ1Y3QgX1dlYktpdE1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RQcml2YXRlIHsKKyAg
ICBSZWZQdHI8TWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdD4gcmVxdWVzdDsKKyAgICBi
b29sIG1hZGVEZWNpc2lvbjsKK307CisKK1dFQktJVF9ERUZJTkVfVFlQRV9XSVRIX0NPREUoCisg
ICAgV2ViS2l0TWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdCwgd2Via2l0X21lZGlhX2tl
eV9zeXN0ZW1fcGVybWlzc2lvbl9yZXF1ZXN0LCBHX1RZUEVfT0JKRUNULAorICAgIEdfSU1QTEVN
RU5UX0lOVEVSRkFDRShXRUJLSVRfVFlQRV9QRVJNSVNTSU9OX1JFUVVFU1QsIHdlYmtpdF9wZXJt
aXNzaW9uX3JlcXVlc3RfaW50ZXJmYWNlX2luaXQpKQorCitzdGF0aWMgdm9pZCB3ZWJraXRNZWRp
YUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0QWxsb3coV2ViS2l0UGVybWlzc2lvblJlcXVlc3Qq
IHJlcXVlc3QpCit7CisgICAgQVNTRVJUKFdFQktJVF9JU19NRURJQV9LRVlfU1lTVEVNX1BFUk1J
U1NJT05fUkVRVUVTVChyZXF1ZXN0KSk7CisKKyAgICBXZWJLaXRNZWRpYUtleVN5c3RlbVBlcm1p
c3Npb25SZXF1ZXN0UHJpdmF0ZSogcHJpdiA9IFdFQktJVF9NRURJQV9LRVlfU1lTVEVNX1BFUk1J
U1NJT05fUkVRVUVTVChyZXF1ZXN0KS0+cHJpdjsKKworICAgIC8vIE9ubHkgb25lIGRlY2lzaW9u
IGF0IGEgdGltZS4KKyAgICBpZiAocHJpdi0+bWFkZURlY2lzaW9uKQorICAgICAgICByZXR1cm47
CisKKyAgICBwcml2LT5yZXF1ZXN0LT5jb21wbGV0ZSh0cnVlKTsKKyAgICBwcml2LT5tYWRlRGVj
aXNpb24gPSB0cnVlOworfQorCitzdGF0aWMgdm9pZCB3ZWJraXRNZWRpYUtleVN5c3RlbVBlcm1p
c3Npb25SZXF1ZXN0RGVueShXZWJLaXRQZXJtaXNzaW9uUmVxdWVzdCogcmVxdWVzdCkKK3sKKyAg
ICBBU1NFUlQoV0VCS0lUX0lTX01FRElBX0tFWV9TWVNURU1fUEVSTUlTU0lPTl9SRVFVRVNUKHJl
cXVlc3QpKTsKKworICAgIFdlYktpdE1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RQcml2
YXRlKiBwcml2ID0gV0VCS0lUX01FRElBX0tFWV9TWVNURU1fUEVSTUlTU0lPTl9SRVFVRVNUKHJl
cXVlc3QpLT5wcml2OworCisgICAgLy8gT25seSBvbmUgZGVjaXNpb24gYXQgYSB0aW1lLgorICAg
IGlmIChwcml2LT5tYWRlRGVjaXNpb24pCisgICAgICAgIHJldHVybjsKKworICAgIHByaXYtPnJl
cXVlc3QtPmNvbXBsZXRlKGZhbHNlKTsKKyAgICBwcml2LT5tYWRlRGVjaXNpb24gPSB0cnVlOwor
fQorCitzdGF0aWMgdm9pZCB3ZWJraXRfcGVybWlzc2lvbl9yZXF1ZXN0X2ludGVyZmFjZV9pbml0
KFdlYktpdFBlcm1pc3Npb25SZXF1ZXN0SWZhY2UqIGlmYWNlKQoreworICAgIGlmYWNlLT5hbGxv
dyA9IHdlYmtpdE1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RBbGxvdzsKKyAgICBpZmFj
ZS0+ZGVueSA9IHdlYmtpdE1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3REZW55OworfQor
CitzdGF0aWMgdm9pZCB3ZWJraXRNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0RGlzcG9z
ZShHT2JqZWN0KiBvYmplY3QpCit7CisgICAgLy8gRGVmYXVsdCBiZWhhdmlvdXIgd2hlbiBubyBk
ZWNpc2lvbiBoYXMgYmVlbiBtYWRlIGlzIGRlbnlpbmcgdGhlIHJlcXVlc3QuCisgICAgd2Via2l0
TWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdERlbnkoV0VCS0lUX1BFUk1JU1NJT05fUkVR
VUVTVChvYmplY3QpKTsKKyAgICBHX09CSkVDVF9DTEFTUyh3ZWJraXRfbWVkaWFfa2V5X3N5c3Rl
bV9wZXJtaXNzaW9uX3JlcXVlc3RfcGFyZW50X2NsYXNzKS0+ZGlzcG9zZShvYmplY3QpOworfQor
CitzdGF0aWMgdm9pZCB3ZWJraXRfbWVkaWFfa2V5X3N5c3RlbV9wZXJtaXNzaW9uX3JlcXVlc3Rf
Y2xhc3NfaW5pdChXZWJLaXRNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0Q2xhc3MqIGts
YXNzKQoreworICAgIEdPYmplY3RDbGFzcyogb2JqZWN0Q2xhc3MgPSBHX09CSkVDVF9DTEFTUyhr
bGFzcyk7CisgICAgb2JqZWN0Q2xhc3MtPmRpc3Bvc2UgPSB3ZWJraXRNZWRpYUtleVN5c3RlbVBl
cm1pc3Npb25SZXF1ZXN0RGlzcG9zZTsKK30KKworV2ViS2l0TWVkaWFLZXlTeXN0ZW1QZXJtaXNz
aW9uUmVxdWVzdCogd2Via2l0TWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdENyZWF0ZShN
ZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0KiByZXF1ZXN0KQoreworICAgIFdlYktpdE1l
ZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3QqIHBlcm1pc3Npb25SZXF1ZXN0ID0gV0VCS0lU
X01FRElBX0tFWV9TWVNURU1fUEVSTUlTU0lPTl9SRVFVRVNUKGdfb2JqZWN0X25ldyhXRUJLSVRf
VFlQRV9NRURJQV9LRVlfU1lTVEVNX1BFUk1JU1NJT05fUkVRVUVTVCwgTlVMTCkpOworICAgIHBl
cm1pc3Npb25SZXF1ZXN0LT5wcml2LT5yZXF1ZXN0ID0gcmVxdWVzdDsKKyAgICByZXR1cm4gcGVy
bWlzc2lvblJlcXVlc3Q7Cit9CisKKy8qKgorICogd2Via2l0X21lZGlhX2tleV9zeXN0ZW1fcGVy
bWlzc2lvbl9nZXRfbmFtZToKKyAqIEByZXF1ZXN0OiBhICNXZWJLaXRNZWRpYUtleVN5c3RlbVBl
cm1pc3Npb25SZXF1ZXN0CisgKgorICogUmV0dXJuczogVGhlIG5hbWUgb2YgdGhlIGtleSBzeXN0
ZW0gZm9yIHdoaWNoIGFjY2VzcyBwZXJtaXNzaW9uIGlzIGJlaW5nIHJlcXVlc3RlZC4KKyAqCisg
KiBTaW5jZTogMi4zNAorICovCitjb25zdCBnY2hhcioKK3dlYmtpdF9tZWRpYV9rZXlfc3lzdGVt
X3Blcm1pc3Npb25fZ2V0X25hbWUoV2ViS2l0TWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVz
dCogcmVxdWVzdCkKK3sKKyAgICByZXR1cm4gcmVxdWVzdC0+cHJpdi0+cmVxdWVzdC0+a2V5U3lz
dGVtKCkudXRmOCgpLmRhdGEoKTsKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9nbGliL1dlYktpdE1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RQcml2YXRl
LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRNZWRpYUtleVN5c3Rl
bVBlcm1pc3Npb25SZXF1ZXN0UHJpdmF0ZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjdlMzZlNGViY2UxYWVlOGNh
ODNiMGYzY2I5OTEzYjczYjA1NjA0OTkKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0
UHJpdmF0ZS5oCkBAIC0wLDAgKzEsMjUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgSWdh
bGlhIFMuTC4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiBy
ZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRo
ZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkg
dGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIgb2YgdGhl
IExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICog
VGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1
c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1w
bGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMg
TGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZl
ZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFs
b25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3Qs
IHdyaXRlIHRvCisgKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFu
a2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAorICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0Eu
CisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlICJNZWRpYUtleVN5c3RlbVBlcm1pc3Np
b25SZXF1ZXN0LmgiCisjaW5jbHVkZSAiV2ViS2l0TWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVx
dWVzdC5oIgorCitXZWJLaXRNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0KiB3ZWJraXRN
ZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0Q3JlYXRlKFdlYktpdDo6TWVkaWFLZXlTeXN0
ZW1QZXJtaXNzaW9uUmVxdWVzdCopOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL2dsaWIvV2ViS2l0VUlDbGllbnQuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL2dsaWIvV2ViS2l0VUlDbGllbnQuY3BwCmluZGV4IDJjZWIyYjRmNDlmNDA5YmJlNmU2ODEw
MTE1ZTM2ZDBjODRmODNiNWQuLmZjNjlkNjQ4MTA0YWYzMWJlYjBjMGYwNTVhODcyYzYxOTcwYjc1
MGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdFVJ
Q2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRV
SUNsaWVudC5jcHAKQEAgLTI1LDYgKzI1LDcgQEAKICNpbmNsdWRlICJXZWJLaXREZXZpY2VJbmZv
UGVybWlzc2lvblJlcXVlc3RQcml2YXRlLmgiCiAjaW5jbHVkZSAiV2ViS2l0RmlsZUNob29zZXJS
ZXF1ZXN0UHJpdmF0ZS5oIgogI2luY2x1ZGUgIldlYktpdEdlb2xvY2F0aW9uUGVybWlzc2lvblJl
cXVlc3RQcml2YXRlLmgiCisjaW5jbHVkZSAiV2ViS2l0TWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9u
UmVxdWVzdFByaXZhdGUuaCIKICNpbmNsdWRlICJXZWJLaXROYXZpZ2F0aW9uQWN0aW9uUHJpdmF0
ZS5oIgogI2luY2x1ZGUgIldlYktpdE5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0UHJpdmF0
ZS5oIgogI2luY2x1ZGUgIldlYktpdFBvaW50ZXJMb2NrUGVybWlzc2lvblJlcXVlc3RQcml2YXRl
LmgiCkBAIC0yODMsNiArMjg0LDEyIEBAIHByaXZhdGU6CiAgICAgICAgIHdlYmtpdFdlYlZpZXdN
YWtlUGVybWlzc2lvblJlcXVlc3QobV93ZWJWaWV3LCBXRUJLSVRfUEVSTUlTU0lPTl9SRVFVRVNU
KGdlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3QuZ2V0KCkpKTsKICAgICB9CiAKKyAgICB2b2lk
IGRlY2lkZVBvbGljeUZvck1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3QoV2ViUGFnZVBy
b3h5JiwgQVBJOjpTZWN1cml0eU9yaWdpbiYgdG9wTGV2ZWxEb2N1bWVudE9yaWdpbiwgY29uc3Qg
V1RGOjpTdHJpbmcmIGtleVN5c3RlbSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJiBj
b21wbGV0aW9uSGFuZGxlcikgZmluYWwKKyAgICB7CisgICAgICAgIGF1dG8gcGVybWlzc2lvblJl
cXVlc3QgPSBhZG9wdEdSZWYod2Via2l0TWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdENy
ZWF0ZShNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0OjpjcmVhdGUoa2V5U3lzdGVtLCBz
dGQ6OmV4Y2hhbmdlKGNvbXBsZXRpb25IYW5kbGVyLCBudWxscHRyKSkucHRyKCkpKTsKKyAgICAg
ICAgd2Via2l0V2ViVmlld01ha2VQZXJtaXNzaW9uUmVxdWVzdChtX3dlYlZpZXcsIFdFQktJVF9Q
RVJNSVNTSU9OX1JFUVVFU1QocGVybWlzc2lvblJlcXVlc3QuZ2V0KCkpKTsKKyAgICB9CisKICAg
ICB2b2lkIGRlY2lkZVBvbGljeUZvclVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0KFdlYlBhZ2VQ
cm94eSYsIFdlYkZyYW1lUHJveHkmLCBBUEk6OlNlY3VyaXR5T3JpZ2luJiB1c2VyTWVkaWFEb2N1
bWVudE9yaWdpbiwgQVBJOjpTZWN1cml0eU9yaWdpbiYgdG9wTGV2ZWxEb2N1bWVudE9yaWdpbiwg
VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eSYgcGVybWlzc2lvblJlcXVlc3QpIGZpbmFs
CiAgICAgewogICAgICAgICBHUmVmUHRyPFdlYktpdFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0
PiB1c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdCA9IGFkb3B0R1JlZih3ZWJraXRVc2VyTWVkaWFQ
ZXJtaXNzaW9uUmVxdWVzdENyZWF0ZShwZXJtaXNzaW9uUmVxdWVzdCwgdXNlck1lZGlhRG9jdW1l
bnRPcmlnaW4sIHRvcExldmVsRG9jdW1lbnRPcmlnaW4pKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0QXV0b2NsZWFudXBzLmggYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdEF1dG9jbGVhbnVwcy5oCmluZGV4IDU4OGY0YzE2
ZjMzNTIzZTkxY2JlMzhmY2MwZjZhOWE1OGQwYzdjYTYuLjdlNTJiZmE4YjdjNGY4N2E4MGRmZjFi
MjM3MTNiYmY1MWJmYjgwNGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9ndGsvV2ViS2l0QXV0b2NsZWFudXBzLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL2d0ay9XZWJLaXRBdXRvY2xlYW51cHMuaApAQCAtNDUsNiArNDUsNyBAQCBHX0RFRklORV9B
VVRPUFRSX0NMRUFOVVBfRlVOQyAoV2ViS2l0R2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdCwg
Z19vYmplY3RfdW5yZQogR19ERUZJTkVfQVVUT1BUUl9DTEVBTlVQX0ZVTkMgKFdlYktpdEhpdFRl
c3RSZXN1bHQsIGdfb2JqZWN0X3VucmVmKQogR19ERUZJTkVfQVVUT1BUUl9DTEVBTlVQX0ZVTkMg
KFdlYktpdElucHV0TWV0aG9kQ29udGV4dCwgZ19vYmplY3RfdW5yZWYpCiBHX0RFRklORV9BVVRP
UFRSX0NMRUFOVVBfRlVOQyAoV2ViS2l0SW5zdGFsbE1pc3NpbmdNZWRpYVBsdWdpbnNQZXJtaXNz
aW9uUmVxdWVzdCwgZ19vYmplY3RfdW5yZWYpCitHX0RFRklORV9BVVRPUFRSX0NMRUFOVVBfRlVO
QyAoV2ViS2l0TWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdCwgZ19vYmplY3RfdW5yZWYp
CiBHX0RFRklORV9BVVRPUFRSX0NMRUFOVVBfRlVOQyAoV2ViS2l0TmF2aWdhdGlvblBvbGljeURl
Y2lzaW9uLCBnX29iamVjdF91bnJlZikKIEdfREVGSU5FX0FVVE9QVFJfQ0xFQU5VUF9GVU5DIChX
ZWJLaXROb3RpZmljYXRpb24sIGdfb2JqZWN0X3VucmVmKQogR19ERUZJTkVfQVVUT1BUUl9DTEVB
TlVQX0ZVTkMgKFdlYktpdE5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0LCBnX29iamVjdF91
bnJlZikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0
TWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdC5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL2d0ay9XZWJLaXRNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0LmgKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uNDFmMTQ5MzM2ZjQ1NDgzNjkwYjY1ZDgzYjhkNjIxZWI5ZjRhZjNkOQotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0TWVkaWFLZXlT
eXN0ZW1QZXJtaXNzaW9uUmVxdWVzdC5oCkBAIC0wLDAgKzEsNjcgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMjEgSWdhbGlhIFMuTC4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0
d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIg
dGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBh
cyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiB2
ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZl
cnNpb24uCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRo
YXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhv
dXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqIExpYnJhcnkg
R2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91
bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGlj
IExpY2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlO
Ry5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9u
LCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAorICogQm9zdG9uLCBNQSAw
MjExMC0xMzAxLCBVU0EuCisgKi8KKworI2lmICFkZWZpbmVkKF9fV0VCS0lUMl9IX0lOU0lERV9f
KSAmJiAhZGVmaW5lZChXRUJLSVQyX0NPTVBJTEFUSU9OKQorI2Vycm9yICJPbmx5IDx3ZWJraXQy
L3dlYmtpdDIuaD4gY2FuIGJlIGluY2x1ZGVkIGRpcmVjdGx5LiIKKyNlbmRpZgorCisjaWZuZGVm
IFdlYktpdE1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RfaAorI2RlZmluZSBXZWJLaXRN
ZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0X2gKKworI2luY2x1ZGUgPGdsaWItb2JqZWN0
Lmg+CisjaW5jbHVkZSA8d2Via2l0Mi9XZWJLaXREZWZpbmVzLmg+CisKK0dfQkVHSU5fREVDTFMK
KworI2RlZmluZSBXRUJLSVRfVFlQRV9NRURJQV9LRVlfU1lTVEVNX1BFUk1JU1NJT05fUkVRVUVT
VCAgICAgICAgICAgICh3ZWJraXRfbWVkaWFfa2V5X3N5c3RlbV9wZXJtaXNzaW9uX3JlcXVlc3Rf
Z2V0X3R5cGUoKSkKKyNkZWZpbmUgV0VCS0lUX01FRElBX0tFWV9TWVNURU1fUEVSTUlTU0lPTl9S
RVFVRVNUKG9iaikgICAgICAgICAgICAoR19UWVBFX0NIRUNLX0lOU1RBTkNFX0NBU1QoKG9iaiks
IFdFQktJVF9UWVBFX01FRElBX0tFWV9TWVNURU1fUEVSTUlTU0lPTl9SRVFVRVNULCBXZWJLaXRN
ZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0KSkKKyNkZWZpbmUgV0VCS0lUX01FRElBX0tF
WV9TWVNURU1fUEVSTUlTU0lPTl9SRVFVRVNUX0NMQVNTKGtsYXNzKSAgICAoR19UWVBFX0NIRUNL
X0NMQVNTX0NBU1QoKGtsYXNzKSwgIFdFQktJVF9UWVBFX01FRElBX0tFWV9TWVNURU1fUEVSTUlT
U0lPTl9SRVFVRVNULCBXZWJLaXRNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0Q2xhc3Mp
KQorI2RlZmluZSBXRUJLSVRfSVNfTUVESUFfS0VZX1NZU1RFTV9QRVJNSVNTSU9OX1JFUVVFU1Qo
b2JqKSAgICAgICAgIChHX1RZUEVfQ0hFQ0tfSU5TVEFOQ0VfVFlQRSgob2JqKSwgV0VCS0lUX1RZ
UEVfTUVESUFfS0VZX1NZU1RFTV9QRVJNSVNTSU9OX1JFUVVFU1QpKQorI2RlZmluZSBXRUJLSVRf
SVNfTUVESUFfS0VZX1NZU1RFTV9QRVJNSVNTSU9OX1JFUVVFU1RfQ0xBU1Moa2xhc3MpIChHX1RZ
UEVfQ0hFQ0tfQ0xBU1NfVFlQRSgoa2xhc3MpLCAgV0VCS0lUX1RZUEVfTUVESUFfS0VZX1NZU1RF
TV9QRVJNSVNTSU9OX1JFUVVFU1QpKQorI2RlZmluZSBXRUJLSVRfTUVESUFfS0VZX1NZU1RFTV9Q
RVJNSVNTSU9OX1JFUVVFU1RfR0VUX0NMQVNTKG9iaikgIChHX1RZUEVfSU5TVEFOQ0VfR0VUX0NM
QVNTKChvYmopLCAgV0VCS0lUX1RZUEVfTUVESUFfS0VZX1NZU1RFTV9QRVJNSVNTSU9OX1JFUVVF
U1QsIFdlYktpdE1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RDbGFzcykpCisKK3R5cGVk
ZWYgc3RydWN0IF9XZWJLaXRNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0ICAgICAgICBX
ZWJLaXRNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0OwordHlwZWRlZiBzdHJ1Y3QgX1dl
YktpdE1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RDbGFzcyAgIFdlYktpdE1lZGlhS2V5
U3lzdGVtUGVybWlzc2lvblJlcXVlc3RDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9XZWJLaXRNZWRp
YUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0UHJpdmF0ZSBXZWJLaXRNZWRpYUtleVN5c3RlbVBl
cm1pc3Npb25SZXF1ZXN0UHJpdmF0ZTsKKworc3RydWN0IF9XZWJLaXRNZWRpYUtleVN5c3RlbVBl
cm1pc3Npb25SZXF1ZXN0IHsKKyAgICBHT2JqZWN0IHBhcmVudDsKKworICAgIC8qPCBwcml2YXRl
ID4qLworICAgIFdlYktpdE1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RQcml2YXRlICpw
cml2OworfTsKKworc3RydWN0IF9XZWJLaXRNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0
Q2xhc3MgeworICAgIEdPYmplY3RDbGFzcyBwYXJlbnRfY2xhc3M7CisKKyAgICB2b2lkICgqX3dl
YmtpdF9yZXNlcnZlZDApICh2b2lkKTsKKyAgICB2b2lkICgqX3dlYmtpdF9yZXNlcnZlZDEpICh2
b2lkKTsKKyAgICB2b2lkICgqX3dlYmtpdF9yZXNlcnZlZDIpICh2b2lkKTsKKyAgICB2b2lkICgq
X3dlYmtpdF9yZXNlcnZlZDMpICh2b2lkKTsKK307CisKK1dFQktJVF9BUEkgR1R5cGUKK3dlYmtp
dF9tZWRpYV9rZXlfc3lzdGVtX3Blcm1pc3Npb25fcmVxdWVzdF9nZXRfdHlwZSAodm9pZCk7CisK
K1dFQktJVF9BUEkgY29uc3QgZ2NoYXIqCit3ZWJraXRfbWVkaWFfa2V5X3N5c3RlbV9wZXJtaXNz
aW9uX2dldF9uYW1lIChXZWJLaXRNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0ICpyZXF1
ZXN0KTsKKworR19FTkRfREVDTFMKKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvZ3RrL2RvY3Mvd2Via2l0Mmd0ay00LjAtc2VjdGlvbnMudHh0IGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0ay9kb2NzL3dlYmtpdDJndGstNC4wLXNlY3Rpb25z
LnR4dAppbmRleCBmNmY1YjhjNTFlNmM5OGJjYmI2ZTU4OTRhMGI2ODc4ZTIxY2M4NzViLi5mMWNm
YTQ0YzcyNzgzNGJkMTBiYTc3ZTc5MzNlOTBmODk5ZjgwYTdhIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL2RvY3Mvd2Via2l0Mmd0ay00LjAtc2VjdGlvbnMudHh0
CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvZG9jcy93ZWJraXQyZ3RrLTQu
MC1zZWN0aW9ucy50eHQKQEAgLTgwNCw2ICs4MDQsMjUgQEAgV2ViS2l0VXNlck1lZGlhUGVybWlz
c2lvblJlcXVlc3RQcml2YXRlCiB3ZWJraXRfdXNlcl9tZWRpYV9wZXJtaXNzaW9uX3JlcXVlc3Rf
Z2V0X3R5cGUKIDwvU0VDVElPTj4KIAorPFNFQ1RJT04+Cis8RklMRT5XZWJLaXRNZWRpYUtleVN5
c3RlbVBlcm1pc3Npb25SZXF1ZXN0PC9GSUxFPgorV2ViS2l0TWVkaWFLZXlTeXN0ZW1QZXJtaXNz
aW9uUmVxdWVzdAord2Via2l0X21lZGlhX2tleV9zeXN0ZW1fcGVybWlzc2lvbl9nZXRfbmFtZQor
Cis8U1VCU0VDVElPTiBTdGFuZGFyZD4KK1dlYktpdE1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJl
cXVlc3RDbGFzcworV0VCS0lUX1RZUEVfTUVESUFfS0VZX1NZU1RFTV9QRVJNSVNTSU9OX1JFUVVF
U1QKK1dFQktJVF9NRURJQV9LRVlfU1lTVEVNX1BFUk1JU1NJT05fUkVRVUVTVAorV0VCS0lUX0lT
X01FRElBX0tFWV9TWVNURU1fUEVSTUlTU0lPTl9SRVFVRVNUCitXRUJLSVRfTUVESUFfS0VZX1NZ
U1RFTV9QRVJNSVNTSU9OX1JFUVVFU1RfQ0xBU1MKK1dFQktJVF9JU19NRURJQV9LRVlfU1lTVEVN
X1BFUk1JU1NJT05fUkVRVUVTVF9DTEFTUworV0VCS0lUX01FRElBX0tFWV9TWVNURU1fUEVSTUlT
U0lPTl9SRVFVRVNUX0dFVF9DTEFTUworCis8U1VCU0VDVElPTiBQcml2YXRlPgorV2ViS2l0TWVk
aWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdFByaXZhdGUKK3dlYmtpdF9tZWRpYV9rZXlfc3lz
dGVtX3Blcm1pc3Npb25fcmVxdWVzdF9nZXRfdHlwZQorPC9TRUNUSU9OPgorCiA8U0VDVElPTj4K
IDxGSUxFPldlYktpdE5vdGlmaWNhdGlvbjwvRklMRT4KIFdlYktpdE5vdGlmaWNhdGlvbgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0ay9kb2NzL3dlYmtpdDJndGst
ZG9jcy5zZ21sIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0ay9kb2NzL3dlYmtpdDJn
dGstZG9jcy5zZ21sCmluZGV4IGQ4YWM4MjMzMzJmMjk0NjI5Zjg3NTIzMGQ2MmQ2NzJiZGQyOWRm
MzkuLjQxMWVlNjRkODMzMzNmMDUyMzA2YzViOTlkMDczYmI0Mjc5NzhhNjUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvZG9jcy93ZWJraXQyZ3RrLWRvY3Muc2dt
bAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL2RvY3Mvd2Via2l0Mmd0ay1k
b2NzLnNnbWwKQEAgLTI0LDYgKzI0LDcgQEAKICAgICA8eGk6aW5jbHVkZSBocmVmPSJ4bWwvV2Vi
S2l0UGVybWlzc2lvblJlcXVlc3QueG1sIi8+CiAgICAgPHhpOmluY2x1ZGUgaHJlZj0ieG1sL1dl
YktpdEdlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3QueG1sIi8+CiAgICAgPHhpOmluY2x1ZGUg
aHJlZj0ieG1sL1dlYktpdEluc3RhbGxNaXNzaW5nTWVkaWFQbHVnaW5zUGVybWlzc2lvblJlcXVl
c3QueG1sIi8+CisgICAgPHhpOmluY2x1ZGUgaHJlZj0ieG1sL1dlYktpdE1lZGlhS2V5U3lzdGVt
UGVybWlzc2lvblJlcXVlc3QueG1sIi8+CiAgICAgPHhpOmluY2x1ZGUgaHJlZj0ieG1sL1dlYktp
dE5hdmlnYXRpb25BY3Rpb24ueG1sIi8+CiAgICAgPHhpOmluY2x1ZGUgaHJlZj0ieG1sL1dlYktp
dFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0LnhtbCIvPgogICAgIDx4aTppbmNsdWRlIGhyZWY9
InhtbC9XZWJLaXREZXZpY2VJbmZvUGVybWlzc2lvblJlcXVlc3QueG1sIi8+CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL3dlYmtpdDIuaCBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9ndGsvd2Via2l0Mi5oCmluZGV4IGMzNTgxMTgzNjBhMzhjN2I0NjIy
MjdhYTRhYjgzODhiZDc5NDJjM2UuLmVjYmU0MzNlZDg4ODM1M2IxZTYwMTM5NDNiNDQ2MzgzNWMz
NTgyZDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvd2Via2l0
Mi5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvd2Via2l0Mi5oCkBAIC0z
Miw2ICszMiw3IEBACiAjaW5jbHVkZSA8d2Via2l0Mi9XZWJLaXRBdXRvbWF0aW9uU2Vzc2lvbi5o
PgogI2luY2x1ZGUgPHdlYmtpdDIvV2ViS2l0QmFja0ZvcndhcmRMaXN0Lmg+CiAjaW5jbHVkZSA8
d2Via2l0Mi9XZWJLaXRCYWNrRm9yd2FyZExpc3RJdGVtLmg+CisjaW5jbHVkZSA8d2Via2l0Mi9X
ZWJLaXRDb2xvckNob29zZXJSZXF1ZXN0Lmg+CiAjaW5jbHVkZSA8d2Via2l0Mi9XZWJLaXRDb250
ZXh0TWVudS5oPgogI2luY2x1ZGUgPHdlYmtpdDIvV2ViS2l0Q29udGV4dE1lbnVBY3Rpb25zLmg+
CiAjaW5jbHVkZSA8d2Via2l0Mi9XZWJLaXRDb250ZXh0TWVudUl0ZW0uaD4KQEAgLTQ1LDcgKzQ2
LDYgQEAKICNpbmNsdWRlIDx3ZWJraXQyL1dlYktpdEVudW1UeXBlcy5oPgogI2luY2x1ZGUgPHdl
YmtpdDIvV2ViS2l0RXJyb3IuaD4KICNpbmNsdWRlIDx3ZWJraXQyL1dlYktpdEZhdmljb25EYXRh
YmFzZS5oPgotI2luY2x1ZGUgPHdlYmtpdDIvV2ViS2l0Q29sb3JDaG9vc2VyUmVxdWVzdC5oPgog
I2luY2x1ZGUgPHdlYmtpdDIvV2ViS2l0RmlsZUNob29zZXJSZXF1ZXN0Lmg+CiAjaW5jbHVkZSA8
d2Via2l0Mi9XZWJLaXRGaW5kQ29udHJvbGxlci5oPgogI2luY2x1ZGUgPHdlYmtpdDIvV2ViS2l0
Rm9ybVN1Ym1pc3Npb25SZXF1ZXN0Lmg+CkBAIC01NSw2ICs1NSw3IEBACiAjaW5jbHVkZSA8d2Vi
a2l0Mi9XZWJLaXRJbnB1dE1ldGhvZENvbnRleHQuaD4KICNpbmNsdWRlIDx3ZWJraXQyL1dlYktp
dEluc3RhbGxNaXNzaW5nTWVkaWFQbHVnaW5zUGVybWlzc2lvblJlcXVlc3QuaD4KICNpbmNsdWRl
IDx3ZWJraXQyL1dlYktpdEphdmFzY3JpcHRSZXN1bHQuaD4KKyNpbmNsdWRlIDx3ZWJraXQyL1dl
YktpdE1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3QuaD4KICNpbmNsdWRlIDx3ZWJraXQy
L1dlYktpdE1pbWVJbmZvLmg+CiAjaW5jbHVkZSA8d2Via2l0Mi9XZWJLaXROYXZpZ2F0aW9uQWN0
aW9uLmg+CiAjaW5jbHVkZSA8d2Via2l0Mi9XZWJLaXROYXZpZ2F0aW9uUG9saWN5RGVjaXNpb24u
aD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS93cGUvV2ViS2l0TWVk
aWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdC5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL3dwZS9XZWJLaXRNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0LmgKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uOWM4OThhZjE2NDcwZGNhMTg4NTI2OTY4MjY4YWY5ZmRiYzM1YjEzZgotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS93cGUvV2ViS2l0TWVkaWFLZXlTeXN0
ZW1QZXJtaXNzaW9uUmVxdWVzdC5oCkBAIC0wLDAgKzEsNjcgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMjEgSWdhbGlhIFMuTC4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2Fy
ZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhl
IHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhcyBw
dWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJz
aW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNp
b24uCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQg
aXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQg
ZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqIExpYnJhcnkgR2Vu
ZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQg
aGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExp
Y2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5M
SUIuICBJZiBub3QsIHdyaXRlIHRvCisgKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJ
bmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAorICogQm9zdG9uLCBNQSAwMjEx
MC0xMzAxLCBVU0EuCisgKi8KKworI2lmICFkZWZpbmVkKF9fV0VCS0lUMl9IX0lOU0lERV9fKSAm
JiAhZGVmaW5lZChXRUJLSVQyX0NPTVBJTEFUSU9OKQorI2Vycm9yICJPbmx5IDx3ZWJraXQyL3dl
YmtpdDIuaD4gY2FuIGJlIGluY2x1ZGVkIGRpcmVjdGx5LiIKKyNlbmRpZgorCisjaWZuZGVmIFdl
YktpdE1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RfaAorI2RlZmluZSBXZWJLaXRNZWRp
YUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0X2gKKworI2luY2x1ZGUgPGdsaWItb2JqZWN0Lmg+
CisjaW5jbHVkZSA8d3BlL1dlYktpdERlZmluZXMuaD4KKworR19CRUdJTl9ERUNMUworCisjZGVm
aW5lIFdFQktJVF9UWVBFX01FRElBX0tFWV9TWVNURU1fUEVSTUlTU0lPTl9SRVFVRVNUICAgICAg
ICAgICAgKHdlYmtpdF9tZWRpYV9rZXlfc3lzdGVtX3Blcm1pc3Npb25fcmVxdWVzdF9nZXRfdHlw
ZSgpKQorI2RlZmluZSBXRUJLSVRfTUVESUFfS0VZX1NZU1RFTV9QRVJNSVNTSU9OX1JFUVVFU1Qo
b2JqKSAgICAgICAgICAgIChHX1RZUEVfQ0hFQ0tfSU5TVEFOQ0VfQ0FTVCgob2JqKSwgV0VCS0lU
X1RZUEVfTUVESUFfS0VZX1NZU1RFTV9QRVJNSVNTSU9OX1JFUVVFU1QsIFdlYktpdE1lZGlhS2V5
U3lzdGVtUGVybWlzc2lvblJlcXVlc3QpKQorI2RlZmluZSBXRUJLSVRfTUVESUFfS0VZX1NZU1RF
TV9QRVJNSVNTSU9OX1JFUVVFU1RfQ0xBU1Moa2xhc3MpICAgIChHX1RZUEVfQ0hFQ0tfQ0xBU1Nf
Q0FTVCgoa2xhc3MpLCAgV0VCS0lUX1RZUEVfTUVESUFfS0VZX1NZU1RFTV9QRVJNSVNTSU9OX1JF
UVVFU1QsIFdlYktpdE1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RDbGFzcykpCisjZGVm
aW5lIFdFQktJVF9JU19NRURJQV9LRVlfU1lTVEVNX1BFUk1JU1NJT05fUkVRVUVTVChvYmopICAg
ICAgICAgKEdfVFlQRV9DSEVDS19JTlNUQU5DRV9UWVBFKChvYmopLCBXRUJLSVRfVFlQRV9NRURJ
QV9LRVlfU1lTVEVNX1BFUk1JU1NJT05fUkVRVUVTVCkpCisjZGVmaW5lIFdFQktJVF9JU19NRURJ
QV9LRVlfU1lTVEVNX1BFUk1JU1NJT05fUkVRVUVTVF9DTEFTUyhrbGFzcykgKEdfVFlQRV9DSEVD
S19DTEFTU19UWVBFKChrbGFzcyksICBXRUJLSVRfVFlQRV9NRURJQV9LRVlfU1lTVEVNX1BFUk1J
U1NJT05fUkVRVUVTVCkpCisjZGVmaW5lIFdFQktJVF9NRURJQV9LRVlfU1lTVEVNX1BFUk1JU1NJ
T05fUkVRVUVTVF9HRVRfQ0xBU1Mob2JqKSAgKEdfVFlQRV9JTlNUQU5DRV9HRVRfQ0xBU1MoKG9i
aiksICBXRUJLSVRfVFlQRV9NRURJQV9LRVlfU1lTVEVNX1BFUk1JU1NJT05fUkVRVUVTVCwgV2Vi
S2l0TWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdENsYXNzKSkKKwordHlwZWRlZiBzdHJ1
Y3QgX1dlYktpdE1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3QgICAgICAgIFdlYktpdE1l
ZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3Q7Cit0eXBlZGVmIHN0cnVjdCBfV2ViS2l0TWVk
aWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdENsYXNzICAgV2ViS2l0TWVkaWFLZXlTeXN0ZW1Q
ZXJtaXNzaW9uUmVxdWVzdENsYXNzOwordHlwZWRlZiBzdHJ1Y3QgX1dlYktpdE1lZGlhS2V5U3lz
dGVtUGVybWlzc2lvblJlcXVlc3RQcml2YXRlIFdlYktpdE1lZGlhS2V5U3lzdGVtUGVybWlzc2lv
blJlcXVlc3RQcml2YXRlOworCitzdHJ1Y3QgX1dlYktpdE1lZGlhS2V5U3lzdGVtUGVybWlzc2lv
blJlcXVlc3QgeworICAgIEdPYmplY3QgcGFyZW50OworCisgICAgLyo8IHByaXZhdGUgPiovCisg
ICAgV2ViS2l0TWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdFByaXZhdGUgKnByaXY7Cit9
OworCitzdHJ1Y3QgX1dlYktpdE1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RDbGFzcyB7
CisgICAgR09iamVjdENsYXNzIHBhcmVudF9jbGFzczsKKworICAgIHZvaWQgKCpfd2Via2l0X3Jl
c2VydmVkMCkgKHZvaWQpOworICAgIHZvaWQgKCpfd2Via2l0X3Jlc2VydmVkMSkgKHZvaWQpOwor
ICAgIHZvaWQgKCpfd2Via2l0X3Jlc2VydmVkMikgKHZvaWQpOworICAgIHZvaWQgKCpfd2Via2l0
X3Jlc2VydmVkMykgKHZvaWQpOworfTsKKworV0VCS0lUX0FQSSBHVHlwZQord2Via2l0X21lZGlh
X2tleV9zeXN0ZW1fcGVybWlzc2lvbl9yZXF1ZXN0X2dldF90eXBlICh2b2lkKTsKKworV0VCS0lU
X0FQSSBjb25zdCBnY2hhcioKK3dlYmtpdF9tZWRpYV9rZXlfc3lzdGVtX3Blcm1pc3Npb25fZ2V0
X25hbWUgKFdlYktpdE1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3QgKnJlcXVlc3QpOwor
CitHX0VORF9ERUNMUworCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS93cGUvZG9jcy93cGUtMS4wLXNlY3Rpb25zLnR4dCBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS93cGUvZG9jcy93cGUtMS4wLXNlY3Rpb25zLnR4dAppbmRleCAwZWUyNTBlNTYz
MzhjZGE3MzMyZDcwNTA4NTgyYTU5YTdhZDIxYzgwLi44MjVkNTEwMGI2YTY5YWNmNWE3YTIwOTUz
ODM3NmQyYzg1MmRiYWM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
d3BlL2RvY3Mvd3BlLTEuMC1zZWN0aW9ucy50eHQKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL3dwZS9kb2NzL3dwZS0xLjAtc2VjdGlvbnMudHh0CkBAIC04MDgsNiArODA4LDI1IEBA
IFdlYktpdFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJpdmF0ZQogd2Via2l0X3VzZXJfbWVk
aWFfcGVybWlzc2lvbl9yZXF1ZXN0X2dldF90eXBlCiA8L1NFQ1RJT04+CiAKKzxTRUNUSU9OPgor
PEZJTEU+V2ViS2l0TWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdDwvRklMRT4KK1dlYktp
dE1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3QKK3dlYmtpdF9tZWRpYV9rZXlfc3lzdGVt
X3Blcm1pc3Npb25fZ2V0X25hbWUKKworPFNVQlNFQ1RJT04gU3RhbmRhcmQ+CitXZWJLaXRNZWRp
YUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0Q2xhc3MKK1dFQktJVF9UWVBFX01FRElBX0tFWV9T
WVNURU1fUEVSTUlTU0lPTl9SRVFVRVNUCitXRUJLSVRfTUVESUFfS0VZX1NZU1RFTV9QRVJNSVNT
SU9OX1JFUVVFU1QKK1dFQktJVF9JU19NRURJQV9LRVlfU1lTVEVNX1BFUk1JU1NJT05fUkVRVUVT
VAorV0VCS0lUX01FRElBX0tFWV9TWVNURU1fUEVSTUlTU0lPTl9SRVFVRVNUX0NMQVNTCitXRUJL
SVRfSVNfTUVESUFfS0VZX1NZU1RFTV9QRVJNSVNTSU9OX1JFUVVFU1RfQ0xBU1MKK1dFQktJVF9N
RURJQV9LRVlfU1lTVEVNX1BFUk1JU1NJT05fUkVRVUVTVF9HRVRfQ0xBU1MKKworPFNVQlNFQ1RJ
T04gUHJpdmF0ZT4KK1dlYktpdE1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RQcml2YXRl
Cit3ZWJraXRfbWVkaWFfa2V5X3N5c3RlbV9wZXJtaXNzaW9uX3JlcXVlc3RfZ2V0X3R5cGUKKzwv
U0VDVElPTj4KKwogPFNFQ1RJT04+CiA8RklMRT5XZWJLaXROb3RpZmljYXRpb248L0ZJTEU+CiBX
ZWJLaXROb3RpZmljYXRpb24KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS93cGUvZG9jcy93cGUtZG9jcy5zZ21sIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL3dw
ZS9kb2NzL3dwZS1kb2NzLnNnbWwKaW5kZXggMDlhZjRmYzliYjRkNWZiNTU5NmExNzY1ODE3MzJi
YzBkYzJlMzMxYi4uOGUyNTdmMDJmMTFmZWJlY2QyYTU2NzNiOGU4NzA2ZDVlYzZjNjgzOSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL3dwZS9kb2NzL3dwZS1kb2NzLnNn
bWwKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL3dwZS9kb2NzL3dwZS1kb2NzLnNn
bWwKQEAgLTI1LDYgKzI1LDcgQEAKICAgICA8eGk6aW5jbHVkZSBocmVmPSJ4bWwvV2ViS2l0UGVy
bWlzc2lvblJlcXVlc3QueG1sIi8+CiAgICAgPHhpOmluY2x1ZGUgaHJlZj0ieG1sL1dlYktpdEdl
b2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3QueG1sIi8+CiAgICAgPHhpOmluY2x1ZGUgaHJlZj0i
eG1sL1dlYktpdEluc3RhbGxNaXNzaW5nTWVkaWFQbHVnaW5zUGVybWlzc2lvblJlcXVlc3QueG1s
Ii8+CisgICAgPHhpOmluY2x1ZGUgaHJlZj0ieG1sL1dlYktpdE1lZGlhS2V5U3lzdGVtUGVybWlz
c2lvblJlcXVlc3QueG1sIi8+CiAgICAgPHhpOmluY2x1ZGUgaHJlZj0ieG1sL1dlYktpdE5hdmln
YXRpb25BY3Rpb24ueG1sIi8+CiAgICAgPHhpOmluY2x1ZGUgaHJlZj0ieG1sL1dlYktpdFVzZXJN
ZWRpYVBlcm1pc3Npb25SZXF1ZXN0LnhtbCIvPgogICAgIDx4aTppbmNsdWRlIGhyZWY9InhtbC9X
ZWJLaXRQb2xpY3lEZWNpc2lvbi54bWwiLz4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL01lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3QuaCBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL01lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3QuaApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40
YWZjMzVkMDE3NzJkNTg5N2M3N2VhYzAxMDdiYzliZTc0YjQ2MjhhCi0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVz
dC5oCkBAIC0wLDAgKzEsNzYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgSWdhbGlhIFMu
TC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlICJBUElPYmplY3QuaCIKKyNp
bmNsdWRlIDxXZWJDb3JlL0NsaWVudE9yaWdpbi5oPgorI2luY2x1ZGUgPHd0Zi9Db21wbGV0aW9u
SGFuZGxlci5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3MgTWVkaWFLZXlTeXN0ZW1Q
ZXJtaXNzaW9uUmVxdWVzdCA6IHB1YmxpYyBSZWZDb3VudGVkPE1lZGlhS2V5U3lzdGVtUGVybWlz
c2lvblJlcXVlc3Q+IHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmPE1lZGlhS2V5U3lzdGVtUGVy
bWlzc2lvblJlcXVlc3Q+IGNyZWF0ZShjb25zdCBTdHJpbmcmIGtleVN5c3RlbSwgQ29tcGxldGlv
bkhhbmRsZXI8dm9pZChib29sKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKKyAgICB7CisgICAgICAg
IHJldHVybiBhZG9wdFJlZigqbmV3IE1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3Qoa2V5
U3lzdGVtLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSkpOworICAgIH0KKworICAgIHZvaWQg
Y29tcGxldGUoYm9vbCBzdWNjZXNzKQorICAgIHsKKyAgICAgICAgYXV0byBjb21wbGV0aW9uSGFu
ZGxlciA9IHN0ZDo6ZXhjaGFuZ2UobV9jb21wbGV0aW9uSGFuZGxlciwgeyB9KTsKKyAgICAgICAg
Y29tcGxldGlvbkhhbmRsZXIoc3VjY2Vzcyk7CisgICAgfQorCisgICAgY29uc3QgU3RyaW5nJiBr
ZXlTeXN0ZW0oKSBjb25zdCB7IHJldHVybiBtX2tleVN5c3RlbTsgfQorCitwcml2YXRlOgorICAg
IE1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3QoY29uc3QgU3RyaW5nJiBrZXlTeXN0ZW0s
IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCisgICAg
ICAgIDogbV9rZXlTeXN0ZW0oa2V5U3lzdGVtKQorICAgICAgICAsIG1fY29tcGxldGlvbkhhbmRs
ZXIoV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpCisgICAgeyB9CisKKyAgICBTdHJpbmcgbV9r
ZXlTeXN0ZW07CisgICAgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4gbV9jb21wbGV0aW9u
SGFuZGxlcjsKK307CisKK2NsYXNzIE1lZGlhS2V5U3lzdGVtUGVybWlzc2lvbkNhbGxiYWNrIDog
cHVibGljIEFQSTo6T2JqZWN0SW1wbDxBUEk6Ok9iamVjdDo6VHlwZTo6TWVkaWFLZXlTeXN0ZW1Q
ZXJtaXNzaW9uQ2FsbGJhY2s+IHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmPE1lZGlhS2V5U3lz
dGVtUGVybWlzc2lvbkNhbGxiYWNrPiBjcmVhdGUoQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29s
KT4mJiBjb21wbGV0aW9uSGFuZGxlcikKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigq
bmV3IE1lZGlhS2V5U3lzdGVtUGVybWlzc2lvbkNhbGxiYWNrKFdURk1vdmUoY29tcGxldGlvbkhh
bmRsZXIpKSk7CisgICAgfQorCisgICAgdm9pZCBjb21wbGV0ZShib29sIGdyYW50ZWQpIHsgbV9j
b21wbGV0aW9uSGFuZGxlcihncmFudGVkKTsgfQorCitwcml2YXRlOgorICAgIE1lZGlhS2V5U3lz
dGVtUGVybWlzc2lvbkNhbGxiYWNrKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYgY29t
cGxldGlvbkhhbmRsZXIpCisgICAgICAgIDogbV9jb21wbGV0aW9uSGFuZGxlcihXVEZNb3ZlKGNv
bXBsZXRpb25IYW5kbGVyKSkKKyAgICB7IH0KKworICAgIENvbXBsZXRpb25IYW5kbGVyPHZvaWQo
Ym9vbCk+IG1fY29tcGxldGlvbkhhbmRsZXI7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL01lZGlhS2V5U3lzdGVtUGVybWlz
c2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTWVk
aWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5jcHAKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
YmIzZTQ1MmQ1ODM1MTk4ZTJiYjVhZWYyMzI0NGE1ZmRlY2ZlZDAwNwotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL01lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVl
c3RNYW5hZ2VyUHJveHkuY3BwCkBAIC0wLDAgKzEsMTI0IEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDIxIElnYWxpYSBTLkwuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNs
dWRlICJNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmgiCisKKyNp
bmNsdWRlICJBUElTZWN1cml0eU9yaWdpbi5oIgorI2luY2x1ZGUgIkFQSVVJQ2xpZW50LmgiCisj
aW5jbHVkZSAiTG9nZ2luZy5oIgorI2luY2x1ZGUgIldlYkF1dG9tYXRpb25TZXNzaW9uLmgiCisj
aW5jbHVkZSAiV2ViUGFnZU1lc3NhZ2VzLmgiCisjaW5jbHVkZSAiV2ViUGFnZVByb3h5LmgiCisj
aW5jbHVkZSAiV2ViUHJvY2Vzcy5oIgorI2luY2x1ZGUgIldlYlByb2Nlc3NQb29sLmgiCisjaW5j
bHVkZSAiV2ViUHJvY2Vzc1Byb3h5LmgiCisjaW5jbHVkZSAiV2Vic2l0ZURhdGFTdG9yZS5oIgor
I2luY2x1ZGUgPFdlYkNvcmUvTWVkaWFLZXlTeXN0ZW1SZXF1ZXN0Lmg+CisjaW5jbHVkZSA8V2Vi
Q29yZS9TZWN1cml0eU9yaWdpbkRhdGEuaD4KKyNpbmNsdWRlIDx3dGYvU2NvcGUuaD4KKworbmFt
ZXNwYWNlIFdlYktpdCB7Cit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKKworTWVkaWFLZXlTeXN0
ZW1QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6TWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9u
UmVxdWVzdE1hbmFnZXJQcm94eShXZWJQYWdlUHJveHkmIHBhZ2UpCisgICAgOiBtX3BhZ2UocGFn
ZSkKKyNpZiAhUkVMRUFTRV9MT0dfRElTQUJMRUQKKyAgICAsIG1fbG9nZ2VyKHBhZ2UubG9nZ2Vy
KCkpCisgICAgLCBtX2xvZ0lkZW50aWZpZXIodW5pcXVlTG9nSWRlbnRpZmllcigpKQorI2VuZGlm
Cit7Cit9CisKK01lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6On5N
ZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5KCkKK3sKKyAgICBpbnZh
bGlkYXRlUGVuZGluZ1JlcXVlc3RzKCk7Cit9CisKK3ZvaWQgTWVkaWFLZXlTeXN0ZW1QZXJtaXNz
aW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6aW52YWxpZGF0ZVBlbmRpbmdSZXF1ZXN0cygpCit7Cisg
ICAgZm9yIChhdXRvJiByZXF1ZXN0IDogbV9wZW5kaW5nUmVxdWVzdHMudmFsdWVzKCkpCisgICAg
ICAgIHJlcXVlc3QtPmludmFsaWRhdGUoKTsKKworICAgIG1fcGVuZGluZ1JlcXVlc3RzLmNsZWFy
KCk7Cit9CisKK3ZvaWQgTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94
eTo6ZGVueVJlcXVlc3QoTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdFByb3h5JiByZXF1
ZXN0LCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UpCit7CisgICAgaWYgKCFtX3BhZ2UuaGFzUnVubmlu
Z1Byb2Nlc3MoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgQUxXQVlTX0xPRyhMT0dJREVOVElG
SUVSLCByZXF1ZXN0Lm1lZGlhS2V5U3lzdGVtSUQoKSwgIiwgcmVhc29uOiAiLCBtZXNzYWdlKTsK
KworI2lmIEVOQUJMRShFTkNSWVBURURfTUVESUEpCisgICAgbV9wYWdlLnNlbmQoTWVzc2FnZXM6
OldlYlBhZ2U6Ok1lZGlhS2V5U3lzdGVtV2FzRGVuaWVkKHJlcXVlc3QubWVkaWFLZXlTeXN0ZW1J
RCgpLCBtZXNzYWdlKSk7CisjZWxzZQorICAgIFVOVVNFRF9QQVJBTShtZXNzYWdlKTsKKyNlbmRp
ZgorfQorCit2b2lkIE1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6
OmdyYW50UmVxdWVzdChNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0UHJveHkmIHJlcXVl
c3QpCit7CisgICAgaWYgKCFtX3BhZ2UuaGFzUnVubmluZ1Byb2Nlc3MoKSkKKyAgICAgICAgcmV0
dXJuOworCisjaWYgRU5BQkxFKEVOQ1JZUFRFRF9NRURJQSkKKyAgICBBTFdBWVNfTE9HKExPR0lE
RU5USUZJRVIsIHJlcXVlc3QubWVkaWFLZXlTeXN0ZW1JRCgpLCAiLCBrZXlTeXN0ZW06ICIsIHJl
cXVlc3Qua2V5U3lzdGVtKCkpOworCisgICAgbV9wYWdlLnNlbmRXaXRoQXN5bmNSZXBseShNZXNz
YWdlczo6V2ViUGFnZTo6TWVkaWFLZXlTeXN0ZW1XYXNHcmFudGVkIHsgcmVxdWVzdC5tZWRpYUtl
eVN5c3RlbUlEKCkgfSwgW10geyB9KTsKKyNlbHNlCisgICAgVU5VU0VEX1BBUkFNKHJlcXVlc3Qp
OworI2VuZGlmCit9CisKK1JlZjxNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0UHJveHk+
IE1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6OmNyZWF0ZVJlcXVl
c3RGb3JGcmFtZSh1aW50NjRfdCBtZWRpYUtleVN5c3RlbUlELCBGcmFtZUlkZW50aWZpZXIgZnJh
bWVJRCwgUmVmPFNlY3VyaXR5T3JpZ2luPiYmIHRvcExldmVsRG9jdW1lbnRPcmlnaW4sIGNvbnN0
IFN0cmluZyYga2V5U3lzdGVtKQoreworI2lmIEVOQUJMRShFTkNSWVBURURfTUVESUEpCisgICAg
QUxXQVlTX0xPRyhMT0dJREVOVElGSUVSLCBtZWRpYUtleVN5c3RlbUlEKTsKKworICAgIGF1dG8g
cmVxdWVzdCA9IE1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RQcm94eTo6Y3JlYXRlKCp0
aGlzLCBtZWRpYUtleVN5c3RlbUlELCBtX3BhZ2UubWFpbkZyYW1lKCktPmZyYW1lSUQoKSwgZnJh
bWVJRCwgV1RGTW92ZSh0b3BMZXZlbERvY3VtZW50T3JpZ2luKSwga2V5U3lzdGVtKTsKKyAgICBt
X3BlbmRpbmdSZXF1ZXN0cy5hZGQobWVkaWFLZXlTeXN0ZW1JRCwgcmVxdWVzdC5wdHIoKSk7Cisg
ICAgcmV0dXJuIHJlcXVlc3Q7CisjZWxzZQorICAgIFVOVVNFRF9QQVJBTShtZWRpYUtleVN5c3Rl
bUlEKTsKKyAgICBVTlVTRURfUEFSQU0oZnJhbWVJRCk7CisgICAgVU5VU0VEX1BBUkFNKHRvcExl
dmVsRG9jdW1lbnRPcmlnaW4pOworICAgIFVOVVNFRF9QQVJBTShrZXlTeXN0ZW0pOworI2VuZGlm
Cit9CisKKyNpZiAhUkVMRUFTRV9MT0dfRElTQUJMRUQKK1dURkxvZ0NoYW5uZWwmIE1lZGlhS2V5
U3lzdGVtUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6OmxvZ0NoYW5uZWwoKSBjb25zdAor
eworICAgIHJldHVybiBXZWJLaXQyTG9nRU1FOworfQorCitjb25zdCBMb2dnZXImIE1lZGlhS2V5
U3lzdGVtUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6OmxvZ2dlcigpIGNvbnN0Cit7Cisg
ICAgcmV0dXJuIG1fcGFnZS5sb2dnZXIoKTsKK30KKyNlbmRpZgorCit9IC8vIG5hbWVzcGFjZSBX
ZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL01lZGlhS2V5U3lzdGVt
UGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L01lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuaApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li5iMDNhNjI4NDgxMWJlZjJkMjIxMzFiN2JlMTBlODkzYzA2NzE4NmZjCi0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVx
dWVzdE1hbmFnZXJQcm94eS5oCkBAIC0wLDAgKzEsODUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMjEgSWdhbGlhIFMuTC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlICJN
ZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0UHJveHkuaCIKKyNpbmNsdWRlIDxXZWJDb3Jl
L1NlY3VyaXR5T3JpZ2luLmg+CisjaW5jbHVkZSA8d3RmL0NvbXBsZXRpb25IYW5kbGVyLmg+Cisj
aW5jbHVkZSA8d3RmL0RlcXVlLmg+CisjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KKyNpbmNsdWRl
IDx3dGYvTG9nZ2VySGVscGVyLmg+CisjaW5jbHVkZSA8d3RmL1J1bkxvb3AuaD4KKyNpbmNsdWRl
IDx3dGYvU2Vjb25kcy5oPgorI2luY2x1ZGUgPHd0Zi9XZWFrUHRyLmg+CisKK25hbWVzcGFjZSBX
ZWJDb3JlIHsKK2NsYXNzIFNlY3VyaXR5T3JpZ2luOworfTsKKworbmFtZXNwYWNlIFdlYktpdCB7
CisKK2NsYXNzIFdlYlBhZ2VQcm94eTsKKworY2xhc3MgTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9u
UmVxdWVzdE1hbmFnZXJQcm94eQorICAgIDogcHVibGljIENhbk1ha2VXZWFrUHRyPE1lZGlhS2V5
U3lzdGVtUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk+CisjaWYgIVJFTEVBU0VfTE9HX0RJ
U0FCTEVECisgICAgLCBwcml2YXRlIExvZ2dlckhlbHBlcgorI2VuZGlmCit7CisgICAgV1RGX01B
S0VfRkFTVF9BTExPQ0FURUQ7CitwdWJsaWM6CisgICAgZXhwbGljaXQgTWVkaWFLZXlTeXN0ZW1Q
ZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eShXZWJQYWdlUHJveHkmKTsKKyAgICB+TWVkaWFL
ZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eSgpOworCisgICAgV2ViUGFnZVBy
b3h5JiBwYWdlKCkgY29uc3QgeyByZXR1cm4gbV9wYWdlOyB9CisKKyAgICB2b2lkIGludmFsaWRh
dGVQZW5kaW5nUmVxdWVzdHMoKTsKKworICAgIFJlZjxNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25S
ZXF1ZXN0UHJveHk+IGNyZWF0ZVJlcXVlc3RGb3JGcmFtZSh1aW50NjRfdCB1c2VyTWVkaWFJRCwg
V2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBSZWY8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4+JiYg
dG9wTGV2ZWxEb2N1bWVudE9yaWdpbiwgY29uc3QgU3RyaW5nJiBrZXlTeXN0ZW0pOworCisgICAg
dm9pZCBncmFudFJlcXVlc3QoTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdFByb3h5Jik7
CisgICAgdm9pZCBkZW55UmVxdWVzdChNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0UHJv
eHkmLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UgPSB7IH0pOworCitwcml2YXRlOgorI2lmICFSRUxF
QVNFX0xPR19ESVNBQkxFRAorICAgIGNvbnN0IExvZ2dlciYgbG9nZ2VyKCkgY29uc3QgZmluYWw7
CisgICAgY29uc3Qgdm9pZCogbG9nSWRlbnRpZmllcigpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1f
bG9nSWRlbnRpZmllcjsgfQorICAgIGNvbnN0IGNoYXIqIGxvZ0NsYXNzTmFtZSgpIGNvbnN0IG92
ZXJyaWRlIHsgcmV0dXJuICJNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclBy
b3h5IjsgfQorICAgIFdURkxvZ0NoYW5uZWwmIGxvZ0NoYW5uZWwoKSBjb25zdCBmaW5hbDsKKyNl
bmRpZgorCisgICAgV2ViUGFnZVByb3h5JiBtX3BhZ2U7CisKKyAgICBIYXNoTWFwPHVpbnQ2NF90
LCBSZWZQdHI8TWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdFByb3h5Pj4gbV9wZW5kaW5n
UmVxdWVzdHM7CisgICAgSGFzaFNldDxTdHJpbmc+IG1fdmFsaWRBdXRob3JpemF0aW9uVG9rZW5z
OworCisjaWYgIVJFTEVBU0VfTE9HX0RJU0FCTEVECisgICAgUmVmPGNvbnN0IExvZ2dlcj4gbV9s
b2dnZXI7CisgICAgY29uc3Qgdm9pZCogbV9sb2dJZGVudGlmaWVyOworI2VuZGlmCit9OworCit9
IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L01lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9NZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0UHJveHkuY3BwCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLmQyYjkxNTVkMTU4NTZhMzQwMmJjZmMxZjU1MjY5MjBlMDM3OTBiZGMKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9NZWRpYUtleVN5c3RlbVBlcm1pc3Np
b25SZXF1ZXN0UHJveHkuY3BwCkBAIC0wLDAgKzEsODIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMjEgSWdhbGlhIFMuTC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1
ZGUgIk1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RQcm94eS5oIgorCisjaW5jbHVkZSAi
TWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5oIgorI2luY2x1ZGUg
PFdlYkNvcmUvU2VjdXJpdHlPcmlnaW4uaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1NlY3VyaXR5T3Jp
Z2luRGF0YS5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0hhc2guaD4KKworbmFtZXNwYWNl
IFdlYktpdCB7Cit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKKworTWVkaWFLZXlTeXN0ZW1QZXJt
aXNzaW9uUmVxdWVzdFByb3h5OjpNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0UHJveHko
TWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eSYgbWFuYWdlciwgdWlu
dDY0X3QgbWVkaWFLZXlTeXN0ZW1JRCwgRnJhbWVJZGVudGlmaWVyIG1haW5GcmFtZUlELCBGcmFt
ZUlkZW50aWZpZXIgZnJhbWVJRCwgUmVmPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luPiYmIHRvcExl
dmVsRG9jdW1lbnRPcmlnaW4sIGNvbnN0IFN0cmluZyYga2V5U3lzdGVtKQorICAgIDogbV9tYW5h
Z2VyKCZtYW5hZ2VyKQorICAgICwgbV9tZWRpYUtleVN5c3RlbUlEKG1lZGlhS2V5U3lzdGVtSUQp
CisgICAgLCBtX21haW5GcmFtZUlEKG1haW5GcmFtZUlEKQorICAgICwgbV9mcmFtZUlEKGZyYW1l
SUQpCisgICAgLCBtX3RvcExldmVsRG9jdW1lbnRTZWN1cml0eU9yaWdpbihXVEZNb3ZlKHRvcExl
dmVsRG9jdW1lbnRPcmlnaW4pKQorICAgICwgbV9rZXlTeXN0ZW0oa2V5U3lzdGVtKQoreworfQor
Cit2b2lkIE1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RQcm94eTo6YWxsb3coKQorewor
ICAgIEFTU0VSVChtX21hbmFnZXIpOworICAgIGlmICghbV9tYW5hZ2VyKQorICAgICAgICByZXR1
cm47CisKKyAgICBtX21hbmFnZXItPmdyYW50UmVxdWVzdCgqdGhpcyk7CisgICAgaW52YWxpZGF0
ZSgpOworfQorCit2b2lkIE1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RQcm94eTo6ZGVu
eSgpCit7CisgICAgaWYgKCFtX21hbmFnZXIpCisgICAgICAgIHJldHVybjsKKworICAgIG1fbWFu
YWdlci0+ZGVueVJlcXVlc3QoKnRoaXMpOworICAgIGludmFsaWRhdGUoKTsKK30KKwordm9pZCBN
ZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0UHJveHk6OmludmFsaWRhdGUoKQoreworICAg
IG1fbWFuYWdlciA9IG51bGxwdHI7Cit9CisKK3ZvaWQgTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9u
UmVxdWVzdFByb3h5Ojpkb0RlZmF1bHRBY3Rpb24oKQoreworI2lmIFBMQVRGT1JNKENPQ09BKQor
ICAgIC8vIEJhY2t3YXJkIGNvbXBhdGliaWxpdHkgZm9yIHBsYXRmb3JtcyBub3QgeWV0IHN1cHBv
cnRpbmcgdGhlIE1lZGlhS2V5U3lzdGVtIHBlcm1pc3Npb24gcmVxdWVzdAorICAgIC8vIGluIHRo
ZWlyIEFQSVVJQ2xpZW50LgorICAgIGFsbG93KCk7CisjZWxzZQorICAgIGRlbnkoKTsKKyNlbmRp
ZgorfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL01lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RQcm94eS5oIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdFByb3h5LmgK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uYTY0ZDFjNjIwNTdkNTY5NzIwNTY4NmU4NzFhZWMyODM2NzUwNWRjOQotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL01lZGlhS2V5U3lzdGVtUGVy
bWlzc2lvblJlcXVlc3RQcm94eS5oCkBAIC0wLDAgKzEsNzYgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMjEgSWdhbGlhIFMuTC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRl
ICJBUElPYmplY3QuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL0ZyYW1lSWRlbnRpZmllci5oPgorI2lu
Y2x1ZGUgPHd0Zi9WZWN0b3IuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KKwor
bmFtZXNwYWNlIFdlYkNvcmUgeworY2xhc3MgU2VjdXJpdHlPcmlnaW47Cit9CisKK25hbWVzcGFj
ZSBXZWJLaXQgeworCitjbGFzcyBNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdl
clByb3h5OworCitjbGFzcyBNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0UHJveHkgOiBw
dWJsaWMgUmVmQ291bnRlZDxNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0UHJveHk+IHsK
K3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmPE1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RQ
cm94eT4gY3JlYXRlKE1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkm
IG1hbmFnZXIsIHVpbnQ2NF90IG1lZGlhS2V5U3lzdGVtSUQsIFdlYkNvcmU6OkZyYW1lSWRlbnRp
ZmllciBtYWluRnJhbWVJRCwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIFJlZjxX
ZWJDb3JlOjpTZWN1cml0eU9yaWdpbj4mJiB0b3BMZXZlbERvY3VtZW50T3JpZ2luLCBjb25zdCBT
dHJpbmcmIGtleVN5c3RlbSkKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IE1l
ZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RQcm94eShtYW5hZ2VyLCBtZWRpYUtleVN5c3Rl
bUlELCBtYWluRnJhbWVJRCwgZnJhbWVJRCwgV1RGTW92ZSh0b3BMZXZlbERvY3VtZW50T3JpZ2lu
KSwga2V5U3lzdGVtKSk7CisgICAgfQorCisgICAgdm9pZCBhbGxvdygpOworICAgIHZvaWQgZGVu
eSgpOworCisgICAgdm9pZCBpbnZhbGlkYXRlKCk7CisgICAgYm9vbCBpc1BlbmRpbmcoKSBjb25z
dCB7IHJldHVybiBtX21hbmFnZXI7IH0KKworICAgIHVpbnQ2NF90IG1lZGlhS2V5U3lzdGVtSUQo
KSBjb25zdCB7IHJldHVybiBtX21lZGlhS2V5U3lzdGVtSUQ7IH0KKyAgICBXZWJDb3JlOjpGcmFt
ZUlkZW50aWZpZXIgbWFpbkZyYW1lSUQoKSBjb25zdCB7IHJldHVybiBtX21haW5GcmFtZUlEOyB9
CisgICAgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQoKSBjb25zdCB7IHJldHVybiBt
X2ZyYW1lSUQ7IH0KKworICAgIFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luJiB0b3BMZXZlbERvY3Vt
ZW50U2VjdXJpdHlPcmlnaW4oKSB7IHJldHVybiBtX3RvcExldmVsRG9jdW1lbnRTZWN1cml0eU9y
aWdpbi5nZXQoKTsgfQorICAgIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luJiB0b3BMZXZl
bERvY3VtZW50U2VjdXJpdHlPcmlnaW4oKSBjb25zdCB7IHJldHVybiBtX3RvcExldmVsRG9jdW1l
bnRTZWN1cml0eU9yaWdpbi5nZXQoKTsgfQorCisgICAgY29uc3QgU3RyaW5nJiBrZXlTeXN0ZW0o
KSBjb25zdCB7IHJldHVybiBtX2tleVN5c3RlbTsgfQorCisgICAgdm9pZCBkb0RlZmF1bHRBY3Rp
b24oKTsKKworcHJpdmF0ZToKKyAgICBNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0UHJv
eHkoTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eSYsIHVpbnQ2NF90
IG1lZGlhS2V5U3lzdGVtSUQsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBtYWluRnJhbWVJRCwg
V2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBSZWY8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4+JiYg
dG9wTGV2ZWxEb2N1bWVudE9yaWdpbiwgY29uc3QgU3RyaW5nJiBrZXlTeXN0ZW0pOworCisgICAg
TWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eSogbV9tYW5hZ2VyOwor
ICAgIHVpbnQ2NF90IG1fbWVkaWFLZXlTeXN0ZW1JRDsKKyAgICBXZWJDb3JlOjpGcmFtZUlkZW50
aWZpZXIgbV9tYWluRnJhbWVJRDsKKyAgICBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgbV9mcmFt
ZUlEOworICAgIFJlZjxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbj4gbV90b3BMZXZlbERvY3VtZW50
U2VjdXJpdHlPcmlnaW47CisgICAgU3RyaW5nIG1fa2V5U3lzdGVtOworfTsKKworfSAvLyBuYW1l
c3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TcGVlY2hS
ZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UuY3BwIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlLmNwcApp
bmRleCBiOWQ5MzIwOTYzOWRkM2JmOGYyNzQ4MzUyNGNmNDA2ZDYzZWM2MGFkLi45MmQwNjQ3MjY0
ZDNmY2UzYTc2Yjc1NzZlYjQyYmJlMjQ2Njg3M2UyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVh
bHRpbWVNZWRpYVNvdXJjZS5jcHAKQEAgLTM0LDYgKzM0LDggQEAKICNpZiBQTEFURk9STShDT0NP
QSkKICNpbmNsdWRlICJTaGFyZWRSaW5nQnVmZmVyU3RvcmFnZS5oIgogI2VuZGlmCisjaW5jbHVk
ZSA8V2ViQ29yZS9DQVJpbmdCdWZmZXIuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1dlYkF1ZGlvQnVm
ZmVyTGlzdC5oPgogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIApAQCAtNDcsNyArNDksNyBAQCBTcGVl
Y2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6OlNwZWVjaFJlY29nbml0aW9u
UmVtb3RlUmVhbHRpbWVNZWRpYQogICAgICwgbV9pZGVudGlmaWVyKGlkZW50aWZpZXIpCiAgICAg
LCBtX21hbmFnZXIobWFrZVdlYWtQdHIobWFuYWdlcikpCiAjaWYgUExBVEZPUk0oQ09DT0EpCi0g
ICAgLCBtX3JpbmdCdWZmZXIobWFrZVVuaXF1ZTxDQVJpbmdCdWZmZXI+KCkpCisgICAgLCBtX3Jp
bmdCdWZmZXIobWFrZVVuaXF1ZTxXZWJDb3JlOjpDQVJpbmdCdWZmZXI+KCkpCiAjZW5kaWYKIHsK
ICAgICBtX21hbmFnZXItPmFkZFNvdXJjZSgqdGhpcywgY2FwdHVyZURldmljZSk7CkBAIC03Nyw4
ICs3OSw4IEBAIHZvaWQgU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNl
OjpzZXRTdG9yYWdlKGNvbnN0IFNoYXJlZE1lbW9yeTo6CiB7CiAgICAgbV9kZXNjcmlwdGlvbiA9
IGRlc2NyaXB0aW9uOwogCi0gICAgbV9yaW5nQnVmZmVyID0gbWFrZVVuaXF1ZTxDQVJpbmdCdWZm
ZXI+KG1ha2VVbmlxdWVSZWY8UmVhZE9ubHlTaGFyZWRSaW5nQnVmZmVyU3RvcmFnZT4oaGFuZGxl
KSwgZGVzY3JpcHRpb24sIG51bWJlck9mRnJhbWVzKTsKLSAgICBtX2J1ZmZlciA9IG1ha2VVbmlx
dWU8V2ViQXVkaW9CdWZmZXJMaXN0PihkZXNjcmlwdGlvbiwgbnVtYmVyT2ZGcmFtZXMpOworICAg
IG1fcmluZ0J1ZmZlciA9IG1ha2VVbmlxdWU8V2ViQ29yZTo6Q0FSaW5nQnVmZmVyPihtYWtlVW5p
cXVlUmVmPFJlYWRPbmx5U2hhcmVkUmluZ0J1ZmZlclN0b3JhZ2U+KGhhbmRsZSksIGRlc2NyaXB0
aW9uLCBudW1iZXJPZkZyYW1lcyk7CisgICAgbV9idWZmZXIgPSBtYWtlVW5pcXVlPFdlYkNvcmU6
OldlYkF1ZGlvQnVmZmVyTGlzdD4oZGVzY3JpcHRpb24sIG51bWJlck9mRnJhbWVzKTsKIH0KIAog
I2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TcGVlY2hSZWNvZ25p
dGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1NwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZS5oCmluZGV4IDhiNTEy
NTBmNWNhZDdmM2Y1Y2U3OGY1OGQ2NzYzNzE5MGNmOGJmOTEuLmExZTI3YWQ1ZmQ3MDM4ZWQyZWRl
ZWIzMmMxNWI1MDkxMGRhZDUxZTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1NwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZS5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNv
dXJjZS5oCkBAIC0yNyw2ICsyNyw3IEBACiAKICNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQogCisj
aW5jbHVkZSAiU2hhcmVkTWVtb3J5LmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9SZWFsdGltZU1lZGlh
U291cmNlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9SZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmll
ci5oPgogCkBAIC00Myw3ICs0NCw4IEBAIGNsYXNzIFdlYkF1ZGlvQnVmZmVyTGlzdDsKIH0KIAog
bmFtZXNwYWNlIFdlYktpdCB7Ci0KK2NsYXNzIFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRp
bWVNZWRpYVNvdXJjZU1hbmFnZXI7CisgICAgCiBjbGFzcyBTcGVlY2hSZWNvZ25pdGlvblJlbW90
ZVJlYWx0aW1lTWVkaWFTb3VyY2UgOiBwdWJsaWMgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJj
ZSB7CiBwdWJsaWM6CiAgICAgc3RhdGljIFJlZjxXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNl
PiBjcmVhdGUoU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdl
ciYsIGNvbnN0IFdlYkNvcmU6OkNhcHR1cmVEZXZpY2UmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJQYWdlUHJveHkuY3BwCmluZGV4IGYxMmM4NDZlODhkYmQwNjBiYTQ1YTUzNGQ4YjZmNjJh
ZjI5MTkxMTAuLmFiNjhhM2JmZjBjNzk3YmJiZjdlOGFjODE4YzgzN2EyZTBjNTU4ZGYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcApAQCAtODI5MSw2ICs4MjkxLDI3
IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpjbGVhclVzZXJNZWRpYVN0YXRlKCkKICNlbmRpZgogfQog
Cit2b2lkIFdlYlBhZ2VQcm94eTo6cmVxdWVzdE1lZGlhS2V5U3lzdGVtUGVybWlzc2lvbkZvckZy
YW1lKHVpbnQ2NF90IG1lZGlhS2V5U3lzdGVtSUQsIEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBj
b25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmIHRvcExldmVsRG9jdW1lbnRPcmlnaW5E
YXRhLCBjb25zdCBTdHJpbmcmIGtleVN5c3RlbSkKK3sKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFN
KQorICAgIE1FU1NBR0VfQ0hFQ0sobV9wcm9jZXNzLCBtX3Byb2Nlc3MtPndlYkZyYW1lKGZyYW1l
SUQpKTsKKworICAgIGF1dG8gb3JpZ2luID0gQVBJOjpTZWN1cml0eU9yaWdpbjo6Y3JlYXRlKHRv
cExldmVsRG9jdW1lbnRPcmlnaW5EYXRhLnNlY3VyaXR5T3JpZ2luKCkpOworICAgIGF1dG8gcmVx
dWVzdCA9IG1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyKCkuY3JlYXRlUmVx
dWVzdEZvckZyYW1lKG1lZGlhS2V5U3lzdGVtSUQsIGZyYW1lSUQsIHRvcExldmVsRG9jdW1lbnRP
cmlnaW5EYXRhLnNlY3VyaXR5T3JpZ2luKCksIGtleVN5c3RlbSk7CisgICAgbV91aUNsaWVudC0+
ZGVjaWRlUG9saWN5Rm9yTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdCgqdGhpcywgb3Jp
Z2luLCBrZXlTeXN0ZW0sIFtyZXF1ZXN0ID0gV1RGTW92ZShyZXF1ZXN0KV0oYm9vbCBhbGxvd2Vk
KSB7CisgICAgICAgIGlmIChhbGxvd2VkKQorICAgICAgICAgICAgcmVxdWVzdC0+YWxsb3coKTsK
KyAgICAgICAgZWxzZQorICAgICAgICAgICAgcmVxdWVzdC0+ZGVueSgpOworICAgIH0pOworI2Vs
c2UKKyAgICBVTlVTRURfUEFSQU0obWVkaWFLZXlTeXN0ZW1JRCk7CisgICAgVU5VU0VEX1BBUkFN
KGZyYW1lSUQpOworICAgIFVOVVNFRF9QQVJBTSh0b3BMZXZlbERvY3VtZW50T3JpZ2luRGF0YSk7
CisgICAgVU5VU0VEX1BBUkFNKGtleVN5c3RlbSk7CisjZW5kaWYKK30KKwogI2lmIEVOQUJMRShE
RVZJQ0VfT1JJRU5UQVRJT04pCiB2b2lkIFdlYlBhZ2VQcm94eTo6c2hvdWxkQWxsb3dEZXZpY2VP
cmllbnRhdGlvbkFuZE1vdGlvbkFjY2VzcyhGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgRnJhbWVJ
bmZvRGF0YSYmIGZyYW1lSW5mbywgYm9vbCBtYXlQcm9tcHQsIENvbXBsZXRpb25IYW5kbGVyPHZv
aWQoRGV2aWNlT3JpZW50YXRpb25Pck1vdGlvblBlcm1pc3Npb25TdGF0ZSk+JiYgY29tcGxldGlv
bkhhbmRsZXIpCiB7CkBAIC04MzAxLDYgKzgzMjIsMTcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OnNo
b3VsZEFsbG93RGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25BY2Nlc3MoRnJhbWVJZGVudGlmaWVy
IGYKIH0KICNlbmRpZgogCisjaWYgRU5BQkxFKEVOQ1JZUFRFRF9NRURJQSkKK01lZGlhS2V5U3lz
dGVtUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkmIFdlYlBhZ2VQcm94eTo6bWVkaWFLZXlT
eXN0ZW1QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIoKQoreworICAgIGlmIChtX21lZGlhS2V5U3lz
dGVtUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyKQorICAgICAgICByZXR1cm4gKm1fbWVkaWFLZXlT
eXN0ZW1QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXI7CisKKyAgICBtX21lZGlhS2V5U3lzdGVtUGVy
bWlzc2lvblJlcXVlc3RNYW5hZ2VyID0gbWFrZVVuaXF1ZTxNZWRpYUtleVN5c3RlbVBlcm1pc3Np
b25SZXF1ZXN0TWFuYWdlclByb3h5PigqdGhpcyk7CisgICAgcmV0dXJuICptX21lZGlhS2V5U3lz
dGVtUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyOworfQorI2VuZGlmCisKIHZvaWQgV2ViUGFnZVBy
b3h5OjpyZXF1ZXN0Tm90aWZpY2F0aW9uUGVybWlzc2lvbih1aW50NjRfdCByZXF1ZXN0SUQsIGNv
bnN0IFN0cmluZyYgb3JpZ2luU3RyaW5nKQogewogICAgIGlmICghaXNSZXF1ZXN0SURWYWxpZChy
ZXF1ZXN0SUQpKQpAQCAtMTA0MTUsNiArMTA0NDcsMTEgQEAgdm9pZCBXZWJQYWdlUHJveHk6OnJl
cXVlc3RTcGVlY2hSZWNvZ25pdGlvblBlcm1pc3Npb25CeURlZmF1bHRBY3Rpb24oY29uc3QgV2Vi
Q28KICAgICBtX3NwZWVjaFJlY29nbml0aW9uUGVybWlzc2lvbk1hbmFnZXItPmRlY2lkZUJ5RGVm
YXVsdEFjdGlvbihvcmlnaW4sIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKIH0KIAordm9p
ZCBXZWJQYWdlUHJveHk6OnJlcXVlc3RNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25CeURlZmF1bHRB
Y3Rpb24oY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4mIG9yaWdpbiwgQ29tcGxldGlvbkhh
bmRsZXI8dm9pZChib29sKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3sKKyAgICBjb21wbGV0aW9u
SGFuZGxlcihmYWxzZSk7Cit9CisKICNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQogCiBXZWJDb3Jl
OjpDYXB0dXJlU291cmNlT3JFcnJvciBXZWJQYWdlUHJveHk6OmNyZWF0ZVJlYWx0aW1lTWVkaWFT
b3VyY2VGb3JTcGVlY2hSZWNvZ25pdGlvbigpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9XZWJQYWdlUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQ
cm94eS5oCmluZGV4IDZhOTkxZGMwNWVlNGMzNjJlNzkwNWVhZTc4MzE2YzFiNjQyNDdkMTMuLjFk
ZGZmYWM2YmE1MGQzZGQ1MDEyYTFjZTdlNDY0MTdhNmI0NTgxZTYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYlBhZ2VQcm94eS5oCkBAIC00MCw2ICs0MCw3IEBACiAjaW5jbHVkZSAiR2VvbG9j
YXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5oIgogI2luY2x1ZGUgIkhpZGRlblBh
Z2VUaHJvdHRsaW5nQXV0b0luY3JlYXNlc0NvdW50ZXIuaCIKICNpbmNsdWRlICJMYXllclRyZWVD
b250ZXh0LmgiCisjaW5jbHVkZSAiTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdE1hbmFn
ZXJQcm94eS5oIgogI2luY2x1ZGUgIk1lZGlhUGxheWJhY2tTdGF0ZS5oIgogI2luY2x1ZGUgIk1l
c3NhZ2VTZW5kZXIuaCIKICNpbmNsdWRlICJOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1h
bmFnZXJQcm94eS5oIgpAQCAtNzIsOCArNzMsOCBAQAogI2luY2x1ZGUgIldlYlBhZ2VQcm94eUlk
ZW50aWZpZXIuaCIKICNpbmNsdWRlICJXZWJQYWdlUHJveHlNZXNzYWdlc1JlcGxpZXMuaCIKICNp
bmNsdWRlICJXZWJQYXltZW50Q29vcmRpbmF0b3JQcm94eS5oIgotI2luY2x1ZGUgIldlYlByZWZl
cmVuY2VzLmgiCiAjaW5jbHVkZSAiV2ViUG9wdXBNZW51UHJveHkuaCIKKyNpbmNsdWRlICJXZWJQ
cmVmZXJlbmNlcy5oIgogI2luY2x1ZGUgIldlYlVuZG9TdGVwSUQuaCIKICNpbmNsdWRlICJXZWJz
aXRlUG9saWNpZXNEYXRhLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9BY3Rpdml0eVN0YXRlLmg+CkBA
IC0xODE5LDYgKzE4MjAsOCBAQCBwdWJsaWM6CiAgICAgdm9pZCByZXF1ZXN0U3BlZWNoUmVjb2du
aXRpb25QZXJtaXNzaW9uKGNvbnN0IFN0cmluZyYgbGFuZywgY29uc3QgV2ViQ29yZTo6Q2xpZW50
T3JpZ2luJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChPcHRpb25hbDxXZWJDb3JlOjpTcGVlY2hS
ZWNvZ25pdGlvbkVycm9yPiYmKT4mJik7CiAgICAgdm9pZCByZXF1ZXN0U3BlZWNoUmVjb2duaXRp
b25QZXJtaXNzaW9uQnlEZWZhdWx0QWN0aW9uKGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2lu
JiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJik7CiAKKyAgICB2b2lkIHJlcXVlc3RN
ZWRpYUtleVN5c3RlbVBlcm1pc3Npb25CeURlZmF1bHRBY3Rpb24oY29uc3QgV2ViQ29yZTo6U2Vj
dXJpdHlPcmlnaW4mLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmKTsKKwogICAgIHZv
aWQgc3luY0lmTW9ja0RldmljZXNFbmFibGVkQ2hhbmdlZCgpOwogCiAjaWYgRU5BQkxFKEFQUF9I
SUdITElHSFRTKQpAQCAtMTk5NSw2ICsxOTk4LDExIEBAIHByaXZhdGU6CiAgICAgdm9pZCBlbnVt
ZXJhdGVNZWRpYURldmljZXNGb3JGcmFtZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIGNvbnN0
IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYgdXNlck1lZGlhRG9jdW1lbnRPcmlnaW5EYXRh
LCBjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmIHRvcExldmVsRG9jdW1lbnRPcmln
aW5EYXRhLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGNvbnN0IFZlY3RvcjxXZWJDb3JlOjpDYXB0
dXJlRGV2aWNlPiYsIGNvbnN0IFN0cmluZyYpPiYmKTsKICAgICB2b2lkIGJlZ2luTW9uaXRvcmlu
Z0NhcHR1cmVEZXZpY2VzKCk7CiAKKyNpZiBFTkFCTEUoRU5DUllQVEVEX01FRElBKQorICAgIE1l
ZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkmIG1lZGlhS2V5U3lzdGVt
UGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyKCk7CisjZW5kaWYKKyAgICB2b2lkIHJlcXVlc3RNZWRp
YUtleVN5c3RlbVBlcm1pc3Npb25Gb3JGcmFtZSh1aW50NjRfdCBtZWRpYUtleVN5c3RlbUlELCBX
ZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0
YSYgdG9wTGV2ZWxEb2N1bWVudE9yaWdpbklkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYpOworCiAg
ICAgdm9pZCBydW5Nb2RhbCgpOwogICAgIHZvaWQgbm90aWZ5U2Nyb2xsZXJUaHVtYklzVmlzaWJs
ZUluUmVjdChjb25zdCBXZWJDb3JlOjpJbnRSZWN0Jik7CiAgICAgdm9pZCByZWNvbW1lbmRlZFNj
cm9sbGJhclN0eWxlRGlkQ2hhbmdlKGludDMyX3QgbmV3U3R5bGUpOwpAQCAtMjUwNCw2ICsyNTEy
LDEwIEBAIHByaXZhdGU6CiAgICAgc3RkOjp1bmlxdWVfcHRyPFVzZXJNZWRpYVBlcm1pc3Npb25S
ZXF1ZXN0TWFuYWdlclByb3h5PiBtX3VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcjsK
ICNlbmRpZgogCisjaWYgRU5BQkxFKEVOQ1JZUFRFRF9NRURJQSkKKyAgICBzdGQ6OnVuaXF1ZV9w
dHI8TWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eT4gbV9tZWRpYUtl
eVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcjsKKyNlbmRpZgorCiAgICAgT3B0aW9uU2V0
PFdlYkNvcmU6OkFjdGl2aXR5U3RhdGU6OkZsYWc+IG1fYWN0aXZpdHlTdGF0ZTsKICAgICBib29s
IG1fdmlld1dhc0V2ZXJJbldpbmRvdyB7IGZhbHNlIH07CiAjaWYgUExBVEZPUk0oTUFDQ0FUQUxZ
U1QpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVz
c2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMu
aW4KaW5kZXggZjQwMzQ2OThhM2VjZWI1NmQ5NzM1ZWJkZGQ3Y2QzYzQ0YmU5MjYxMS4uODEwYTZl
NDNhMDA5MTgwNzE0MTAzMWY2MjUxMGYwZDgxN2YwYmI5YSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbgpAQCAtMjgwLDYgKzI4MCwxMCBA
QCBtZXNzYWdlcyAtPiBXZWJQYWdlUHJveHkgewogICAgIEJlZ2luTW9uaXRvcmluZ0NhcHR1cmVE
ZXZpY2VzKCkKICNlbmRpZgogCisjaWYgRU5BQkxFKEVOQ1JZUFRFRF9NRURJQSkKKyAgICBSZXF1
ZXN0TWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uRm9yRnJhbWUodWludDY0X3QgdXNlck1lZGlhSUQs
IFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBzdHJ1Y3QgV2ViQ29yZTo6U2VjdXJp
dHlPcmlnaW5EYXRhIHRvcExldmVsRG9jdW1lbnRPcmlnaW5JZGVudGlmaWVyLCBTdHJpbmcga2V5
U3lzdGVtKQorI2VuZGlmCisKICAgICAjIE5vdGlmaWNhdGlvbiBtZXNzYWdlcwogICAgIFJlcXVl
c3ROb3RpZmljYXRpb25QZXJtaXNzaW9uKHVpbnQ2NF90IHJlcXVlc3RJRCwgU3RyaW5nIG9yaWdp
bklkZW50aWZpZXIpCiAgICAgU2hvd05vdGlmaWNhdGlvbihTdHJpbmcgdGl0bGUsIFN0cmluZyBi
b2R5LCBTdHJpbmcgaWNvblVSTCwgU3RyaW5nIHRhZywgU3RyaW5nIGxhbmcsIGVudW06dWludDhf
dCBXZWJDb3JlOjpOb3RpZmljYXRpb25EaXJlY3Rpb24gZGlyLCBTdHJpbmcgb3JpZ2luSWRlbnRp
ZmllciwgdWludDY0X3Qgbm90aWZpY2F0aW9uSUQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYktpdC9XZWJLaXQu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA1YWJhOTZmMzY1NzZkMjhhOTIzMzEyMjJk
Y2E2NzUyY2VkYzkyNDM2Li4zNmU0YTU4M2Y1YmFmYTAxMDZlOGRkMjU0NWQ1ODgzMTFlODM4ZDZk
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oK
QEAgLTE1MjAsNiArMTUyMCwxMiBAQAogCQk5OUU3MTRDNTFDMTI0QTA0MDA2NjVCM0EgLyogX1dL
QXV0b21hdGlvbkRlbGVnYXRlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA5OUU3MTRDMTFDMTI0OUU2MDA2NjVCM0EgLyogX1dLQXV0b21hdGlvbkRlbGVn
YXRlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJ
OTlFNzE4OUEyMUY3OUQ5RTAwNTVFOTc1IC8qIF9XS1RvdWNoRXZlbnRHZW5lcmF0b3IubW0gaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5OUU3MTg5NjIxRjc5
RDlEMDA1NUU5NzUgLyogX1dLVG91Y2hFdmVudEdlbmVyYXRvci5tbSAqLzsgfTsKIAkJOTlFNzE4
OUMyMUY3OUQ5RTAwNTVFOTc1IC8qIF9XS1RvdWNoRXZlbnRHZW5lcmF0b3IuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk5RTcxODk4MjFGNzlEOUUwMDU1
RTk3NSAvKiBfV0tUb3VjaEV2ZW50R2VuZXJhdG9yLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVU
RVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJOUFDQzA3QUQyNUM4MTMyRDAwREM2Mzg2IC8qIE1l
ZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5QUNDMDdBQzI1QzgxMzJEMDBEQzYzODYgLyog
TWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIuaCAqLzsgfTsKKwkJOUFDQzA3
QjEyNUM4MTVEODAwREM2Mzg2IC8qIE1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3QuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDlBQ0MwN0IwMjVD
ODE1RDgwMERDNjM4NiAvKiBNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0LmggKi87IH07
CisJCTlBQ0MwN0IzMjVDODE1RjMwMERDNjM4NiAvKiBNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25S
ZXF1ZXN0TWFuYWdlclByb3h5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA5QUNDMDdCMjI1QzgxNUYzMDBEQzYzODYgLyogTWVkaWFLZXlTeXN0ZW1QZXJt
aXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5oICovOyB9OworCQk5QUNDMDdCNTI1QzgxNjBDMDBE
QzYzODYgLyogTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdFByb3h5LmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5QUNDMDdCNDI1QzgxNjBCMDBE
QzYzODYgLyogTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdFByb3h5LmggKi87IH07CisJ
CTlBQ0MwN0I3MjVDODFEMzQwMERDNjM4NiAvKiBXZWJNZWRpYUtleVN5c3RlbUNsaWVudC5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOUFDQzA3QjYyNUM4
MUQzMzAwREM2Mzg2IC8qIFdlYk1lZGlhS2V5U3lzdGVtQ2xpZW50LmggKi87IH07CisJCTlBQ0Mw
N0I5MjVDODIxODQwMERDNjM4NiAvKiBXS01lZGlhS2V5U3lzdGVtUGVybWlzc2lvbkNhbGxiYWNr
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5QUNDMDdC
ODI1QzgyMTgzMDBEQzYzODYgLyogV0tNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25DYWxsYmFjay5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTlCMDJF
MENCMjM1RUI5NTMwMDQwNDRCMiAvKiBfV0tUZXh0TWFuaXB1bGF0aW9uRGVsZWdhdGUuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDlCMDJFMEM5MjM1RUI2
MkQwMDQwNDRCMiAvKiBfV0tUZXh0TWFuaXB1bGF0aW9uRGVsZWdhdGUuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk5QjAyRTBDQzIzNUVCOTU3MDA0
MDQ0QjIgLyogX1dLVGV4dE1hbmlwdWxhdGlvbkl0ZW0uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDlCMDJFMENBMjM1RUI4ODQwMDQwNDRCMiAvKiBfV0tU
ZXh0TWFuaXB1bGF0aW9uSXRlbS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07CiAJCTlCMDJFMEQ3MjM1RkM5NEYwMDQwNDRCMiAvKiBfV0tUZXh0TWFuaXB1
bGF0aW9uVG9rZW4uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDlCMDJFMENEMjM1RUI5NjcwMDQwNDRCMiAvKiBfV0tUZXh0TWFuaXB1bGF0aW9uVG9rZW4u
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtNDg2
Nyw2ICs0ODczLDEyIEBACiAJCTk5RTcxODk2MjFGNzlEOUQwMDU1RTk3NSAvKiBfV0tUb3VjaEV2
ZW50R2VuZXJhdG9yLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0g
X1dLVG91Y2hFdmVudEdlbmVyYXRvci5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
OTlFNzE4OTgyMUY3OUQ5RTAwNTVFOTc1IC8qIF9XS1RvdWNoRXZlbnRHZW5lcmF0b3IuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gX1dLVG91Y2hFdmVudEdlbmVyYXRvci5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5OUY2NDJEMjFGQUJFMzc4MDA5NjIxRTkgLyog
Q29vcmRpbmF0ZVN5c3RlbS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDb29y
ZGluYXRlU3lzdGVtLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTlBQ0MwN0FDMjVD
ODEzMkQwMERDNjM4NiAvKiBNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlci5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBNZWRpYUtleVN5c3RlbVBlcm1pc3Np
b25SZXF1ZXN0TWFuYWdlci5oOyBwYXRoID0gRW5jcnlwdGVkTWVkaWEvTWVkaWFLZXlTeXN0ZW1Q
ZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
OUFDQzA3QjAyNUM4MTVEODAwREM2Mzg2IC8qIE1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVl
c3QuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTWVkaWFLZXlTeXN0ZW1QZXJt
aXNzaW9uUmVxdWVzdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5QUNDMDdCMjI1
QzgxNUYzMDBEQzYzODYgLyogTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQ
cm94eS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBNZWRpYUtleVN5c3RlbVBl
cm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCTlBQ0MwN0I0MjVDODE2MEIwMERDNjM4NiAvKiBNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25S
ZXF1ZXN0UHJveHkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTWVkaWFLZXlT
eXN0ZW1QZXJtaXNzaW9uUmVxdWVzdFByb3h5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCTlBQ0MwN0I2MjVDODFEMzMwMERDNjM4NiAvKiBXZWJNZWRpYUtleVN5c3RlbUNsaWVudC5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJNZWRpYUtleVN5c3RlbUNsaWVu
dC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5QUNDMDdCODI1QzgyMTgzMDBEQzYz
ODYgLyogV0tNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25DYWxsYmFjay5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBXS01lZGlhS2V5U3lzdGVtUGVybWlzc2lvbkNhbGxiYWNrLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTlCMDJFMEM5MjM1RUI2MkQwMDQwNDRCMiAv
KiBfV0tUZXh0TWFuaXB1bGF0aW9uRGVsZWdhdGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gX1dLVGV4dE1h
bmlwdWxhdGlvbkRlbGVnYXRlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTlCMDJF
MENBMjM1RUI4ODQwMDQwNDRCMiAvKiBfV0tUZXh0TWFuaXB1bGF0aW9uSXRlbS5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBfV0tUZXh0TWFuaXB1bGF0aW9uSXRlbS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk5QjAyRTBDRDIzNUVCOTY3MDA0MDQ0QjIgLyogX1dLVGV4dE1hbmlwdWxhdGlvblRv
a2VuLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IF9XS1RleHRNYW5pcHVsYXRpb25Ub2tlbi5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwpAQCAtOTMyOSw2ICs5MzQxLDE0IEBACiAJCQlwYXRoID0gY29j
b2E7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwogCQl9OworCQk5QUNDMDdBOTI1QzgxMkU3
MDBEQzYzODYgLyogRW5jcnlwdGVkTWVkaWEgKi8gPSB7CisJCQlpc2EgPSBQQlhHcm91cDsKKwkJ
CWNoaWxkcmVuID0gKAorCQkJCTlBQ0MwN0FDMjVDODEzMkQwMERDNjM4NiAvKiBNZWRpYUtleVN5
c3RlbVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlci5oICovLAorCQkJKTsKKwkJCW5hbWUgPSBFbmNy
eXB0ZWRNZWRpYTsKKwkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CisJCX07CiAJCUExNTc5OUFD
MjU4NDQzMzEwMDUyODIzNiAvKiBNZWRpYUZvcm1hdFJlYWRlciAqLyA9IHsKIAkJCWlzYSA9IFBC
WEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCkBAIC05NDQxLDYgKzk0NjEsNyBAQAogCQlCQzAzMkQ1
QzEwRjQzNkQ1MDA1OEMxNUEgLyogV2ViUHJvY2VzcyAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3Vw
OwogCQkJY2hpbGRyZW4gPSAoCisJCQkJOUFDQzA3QTkyNUM4MTJFNzAwREM2Mzg2IC8qIEVuY3J5
cHRlZE1lZGlhICovLAogCQkJCTVDNzQzMDBDMjE1MDA0MzQwMDRCRkExNyAvKiBBUEkgKi8sCiAJ
CQkJMUFCMUY3NzAxRDFCMkY1RDAwN0M5QkQxIC8qIEFwcGxlUGF5ICovLAogCQkJCTFDMEExOTQz
MUM4RkYxQTgwMEZFMEVCQiAvKiBBdXRvbWF0aW9uICovLApAQCAtOTQ4Niw2ICs5NTA3LDcgQEAK
IAkJQkMwMzJENUQxMEY0MzcyMjAwNThDMTVBIC8qIFdlYkNvcmVTdXBwb3J0ICovID0gewogCQkJ
aXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKKwkJCQk5QUNDMDdCNjI1QzgxRDMzMDBE
QzYzODYgLyogV2ViTWVkaWFLZXlTeXN0ZW1DbGllbnQuaCAqLywKIAkJCQlDRDYxNzgxMTFFNkRF
OTgwMDBGREE1N0QgLyogY29jb2EgKi8sCiAJCQkJMkQyOEYzREYxODg1Q0NCNDAwNEI5RUFFIC8q
IGlvcyAqLywKIAkJCQlCQzExMUFERTExMkY1QjlBMDAzMzdCQUIgLyogbWFjICovLApAQCAtOTYw
OCw2ICs5NjMwLDkgQEAKIAkJQkMwMzJEQzMxMEY0MzgyNjAwNThDMTVBIC8qIFVJUHJvY2VzcyAq
LyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCisJCQkJOUFDQzA3QjQy
NUM4MTYwQjAwREM2Mzg2IC8qIE1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RQcm94eS5o
ICovLAorCQkJCTlBQ0MwN0IyMjVDODE1RjMwMERDNjM4NiAvKiBNZWRpYUtleVN5c3RlbVBlcm1p
c3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmggKi8sCisJCQkJOUFDQzA3QjAyNUM4MTVEODAwREM2
Mzg2IC8qIE1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3QuaCAqLywKIAkJCQlCQzAzMkRD
NDEwRjQzODdDMDA1OEMxNUEgLyogQVBJICovLAogCQkJCTUxMkY1ODhEMTJBODgzNkYwMDYyOTUz
MCAvKiBBdXRoZW50aWNhdGlvbiAqLywKIAkJCQk5OTU1QTZFODFDNzk4MDkwMDBFQjZBOTMgLyog
QXV0b21hdGlvbiAqLywKQEAgLTk5MDMsNiArOTkyOCw3IEBACiAJCUJDMEMzNzY2MTBGODA3NjYw
MDc2RDdDQiAvKiBDICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgK
KwkJCQk5QUNDMDdCODI1QzgyMTgzMDBEQzYzODYgLyogV0tNZWRpYUtleVN5c3RlbVBlcm1pc3Np
b25DYWxsYmFjay5oICovLAogCQkJCTUxMjNDRjE4MTMzRDI1RTYwMDU2RjgwMCAvKiBjZyAqLywK
IAkJCQk2RUU4NDlDNDEzNjhEOTA0MDAzOEQ0ODEgLyogbWFjICovLAogCQkJCUJDQjYzNDc3MTE2
QkYxMDYwMDYwMzIxNSAvKiBXZWJLaXQyX0MuaCAqLywKQEAgLTExNzM2LDggKzExNzYyLDEwIEBA
CiAJCQkJNThFOTc3REYyMUM0OUEwMDAwNUQ5MkE2IC8qIE5ldHdvcmtIVFRQU1VwZ3JhZGVDaGVj
a2VyLmggaW4gSGVhZGVycyAqLywKIAkJCQk4Mzk5MDIwMzFCRTlBMDJCMDAwRjM2NTMgLyogTmV0
d29ya0xvYWQuaCBpbiBIZWFkZXJzICovLAogCQkJCTgzRDQ1NEQ3MUJFOUQzQzQwMDZDOTNCRCAv
KiBOZXR3b3JrTG9hZENsaWVudC5oIGluIEhlYWRlcnMgKi8sCisJCQkJOUFDQzA3QUQyNUM4MTMy
RDAwREM2Mzg2IC8qIE1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyLmggaW4g
SGVhZGVycyAqLywKIAkJCQk4MzkxNDk2NTFCRUE4Mzg1MDBEMkQ5NTMgLyogTmV0d29ya0xvYWRQ
YXJhbWV0ZXJzLmggaW4gSGVhZGVycyAqLywKIAkJCQk1MTc5NTU2QTE2Mjg3NkYzMDBGQTQzQjYg
LyogTmV0d29ya1Byb2Nlc3MuaCBpbiBIZWFkZXJzICovLAorCQkJCTlBQ0MwN0IzMjVDODE1RjMw
MERDNjM4NiAvKiBNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5Lmgg
aW4gSGVhZGVycyAqLywKIAkJCQk1MTdDRjBFNDE2M0E0ODZDMDBDMjk1MEUgLyogTmV0d29ya1By
b2Nlc3NDb25uZWN0aW9uTWVzc2FnZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTVDMTQyNkVEMUMy
M0Y4MDkwMEQ0MTE4MyAvKiBOZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJNTE2MzE5OTUxNjI4OUE2MzAwRTIyRjAwIC8qIE5ldHdvcmtQcm9jZXNz
TWVzc2FnZXMuaCBpbiBIZWFkZXJzICovLApAQCAtMTIwNjIsNiArMTIwOTAsNyBAQAogCQkJCUU1
NjhCOTFGMjBBM0FCMkYwMEUzQzg1NiAvKiBXZWJEYXRhTGlzdFN1Z2dlc3Rpb25zRHJvcGRvd24u
aCBpbiBIZWFkZXJzICovLAogCQkJCUU1QkVGNjgyMjEzMEM0ODAwMEYzMTExMSAvKiBXZWJEYXRh
TGlzdFN1Z2dlc3Rpb25zRHJvcGRvd25JT1MuaCBpbiBIZWFkZXJzICovLAogCQkJCUU1NjhCOTIy
MjBBM0FDNkEwMEUzQzg1NiAvKiBXZWJEYXRhTGlzdFN1Z2dlc3Rpb25zRHJvcGRvd25NYWMuaCBp
biBIZWFkZXJzICovLAorCQkJCTlBQ0MwN0I3MjVDODFEMzQwMERDNjM4NiAvKiBXZWJNZWRpYUtl
eVN5c3RlbUNsaWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTU1Q0QxRjUyNENGNzQ3RDAwNDJE
QjlDIC8qIFdlYkRhdGVUaW1lQ2hvb3Nlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTU1Q0QyMDAy
NEQwOEQ4RjAwNDJEQjlDIC8qIFdlYkRhdGVUaW1lUGlja2VyLmggaW4gSGVhZGVycyAqLywKIAkJ
CQlFNTVDRDIwMzI0RDA5RjFGMDA0MkRCOUMgLyogV2ViRGF0ZVRpbWVQaWNrZXJNYWMuaCBpbiBI
ZWFkZXJzICovLApAQCAtMTIwNzksNiArMTIxMDgsNyBAQAogCQkJCUJDMDMyREI5MTBGNDM4MEYw
MDU4QzE1QSAvKiBXZWJFdmVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkMwMzJEQkIxMEY0Mzgw
RjAwNThDMTVBIC8qIFdlYkV2ZW50Q29udmVyc2lvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkMx
MTFCNUQxMTJGNjI5ODAwMzM3QkFCIC8qIFdlYkV2ZW50RmFjdG9yeS5oIGluIEhlYWRlcnMgKi8s
CisJCQkJOUFDQzA3QjUyNUM4MTYwQzAwREM2Mzg2IC8qIE1lZGlhS2V5U3lzdGVtUGVybWlzc2lv
blJlcXVlc3RQcm94eS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUE5MEMxRUUxMjY0RkQ1MDAwM0U0
NEQ0IC8qIFdlYkZpbmRPcHRpb25zLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQ0U0Njk1NDEyMTRF
NkNCMDAwQjk4RUIgLyogV2ViRm9ybUNsaWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkNFNDY5
NTYxMjE0RTZDQjAwMEI5OEVCIC8qIFdlYkZvcm1TdWJtaXNzaW9uTGlzdGVuZXJQcm94eS5oIGlu
IEhlYWRlcnMgKi8sCkBAIC0xMjI1OSw2ICsxMjI4OSw3IEBACiAJCQkJMkRGRjdCNkYxREE0Q0ZB
RjAwODE0NjE0IC8qIFdLQmFja0ZvcndhcmRMaXN0SXRlbVByaXZhdGUuaCBpbiBIZWFkZXJzICov
LAogCQkJCUJDNjQ2QzFEMTFERDM5OUYwMDY0NTVCMCAvKiBXS0JhY2tGb3J3YXJkTGlzdEl0ZW1S
ZWYuaCBpbiBIZWFkZXJzICovLAogCQkJCTUyOEMzN0MxMTk1Q0JCMUEwMEQ4QjlDQyAvKiBXS0Jh
Y2tGb3J3YXJkTGlzdFByaXZhdGUuaCBpbiBIZWFkZXJzICovLAorCQkJCTlBQ0MwN0IxMjVDODE1
RDgwMERDNjM4NiAvKiBNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0LmggaW4gSGVhZGVy
cyAqLywKIAkJCQlCQzY0NkMxQjExREQzOTlGMDA2NDU1QjAgLyogV0tCYWNrRm9yd2FyZExpc3RS
ZWYuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDRERCMzE3MTI0RUJEMTMwMDQ4RDEzQyAvKiBXS0Jh
c2UuaCBpbiBIZWFkZXJzICovLAogCQkJCTdDRDVFQkJCMTc0NkE4M0UwMDBDMUM0NSAvKiBXS0Jh
c2VNYWMuaCBpbiBIZWFkZXJzICovLApAQCAtMTIyNjYsNiArMTIyOTcsNyBAQAogCQkJCUJDQkFB
Qzc0MTQ0RTYxQTUwMDUzRjgyRiAvKiBXS0Jyb3dzaW5nQ29udGV4dENvbnRyb2xsZXJJbnRlcm5h
bC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMzc4OEEwNUMxNDc0M0M5MDAwNjMxOUU1IC8qIFdLQnJv
d3NpbmdDb250ZXh0Q29udHJvbGxlclByaXZhdGUuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDQkFB
Q0Y0MTQ1MjMyNEYwMDUzRjgyRiAvKiBXS0Jyb3dzaW5nQ29udGV4dEdyb3VwLmggaW4gSGVhZGVy
cyAqLywKKwkJCQk5QUNDMDdCOTI1QzgyMTg0MDBEQzYzODYgLyogV0tNZWRpYUtleVN5c3RlbVBl
cm1pc3Npb25DYWxsYmFjay5oIGluIEhlYWRlcnMgKi8sCiAJCQkJN0M5RDE1MzcxODQ1ODREQTAw
OUQzOTE4IC8qIFdLQnJvd3NpbmdDb250ZXh0R3JvdXBJbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJQkNCQUFDRjYxNDUyMzI0RjAwNTNGODJGIC8qIFdLQnJvd3NpbmdDb250ZXh0R3JvdXBQ
cml2YXRlLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQUUwMEQ0RDE4MkQ2RUIwMDAwODdERDcgLyog
V0tCcm93c2luZ0NvbnRleHRIYW5kbGUuaCBpbiBIZWFkZXJzICovLApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0VuY3J5cHRlZE1lZGlhL01lZGlhS2V5U3lzdGVtUGVybWlz
c2lvblJlcXVlc3RNYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9FbmNyeXB0
ZWRNZWRpYS9NZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlci5jcHAKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uYTI0OTg4MmQwN2E5OWU3NWQwOTFiZmI3MmFlZWM4MzE2NDg1NzczOAotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9FbmNyeXB0ZWRNZWRpYS9NZWRpYUtl
eVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlci5jcHAKQEAgLTAsMCArMSwxMzIgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgSWdhbGlhIFMuTC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMg
YGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRS
SUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUg
ImNvbmZpZy5oIgorI2luY2x1ZGUgIk1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RNYW5h
Z2VyLmgiCisKKyNpZiBFTkFCTEUoRU5DUllQVEVEX01FRElBKQorCisjaW5jbHVkZSAiTG9nZ2lu
Zy5oIgorI2luY2x1ZGUgIldlYkNvcmVBcmd1bWVudENvZGVycy5oIgorI2luY2x1ZGUgIldlYkZy
YW1lLmgiCisjaW5jbHVkZSAiV2ViUGFnZS5oIgorI2luY2x1ZGUgIldlYlBhZ2VQcm94eU1lc3Nh
Z2VzLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9Eb2N1bWVudC5oPgorI2luY2x1ZGUgPFdlYkNvcmUv
RnJhbWUuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0ZyYW1lTG9hZGVyLmg+CisjaW5jbHVkZSA8V2Vi
Q29yZS9TZWN1cml0eU9yaWdpbi5oPgorI2luY2x1ZGUgPFdlYkNvcmUvU2VjdXJpdHlPcmlnaW5E
YXRhLmg+CisKK25hbWVzcGFjZSBXZWJLaXQgewordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisK
K01lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyOjpNZWRpYUtleVN5c3RlbVBl
cm1pc3Npb25SZXF1ZXN0TWFuYWdlcihXZWJQYWdlJiBwYWdlKQorICAgIDogbV9wYWdlKHBhZ2Up
Cit7Cit9CisKK3ZvaWQgTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXI6OnN0
YXJ0TWVkaWFLZXlTeXN0ZW1SZXF1ZXN0KE1lZGlhS2V5U3lzdGVtUmVxdWVzdCYgcmVxdWVzdCkK
K3sKKyAgICBEb2N1bWVudCogZG9jdW1lbnQgPSByZXF1ZXN0LmRvY3VtZW50KCk7CisgICAgRnJh
bWUqIGZyYW1lID0gZG9jdW1lbnQgPyBkb2N1bWVudC0+ZnJhbWUoKSA6IG51bGxwdHI7CisKKyAg
ICBpZiAoIWZyYW1lIHx8ICFkb2N1bWVudC0+cGFnZSgpKSB7CisgICAgICAgIHJlcXVlc3QuZGVu
eShlbXB0eVN0cmluZygpKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGlmIChkb2N1
bWVudC0+cGFnZSgpLT5jYW5TdGFydE1lZGlhKCkpIHsKKyAgICAgICAgc2VuZE1lZGlhS2V5U3lz
dGVtUmVxdWVzdChyZXF1ZXN0KTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGF1dG8m
IHBlbmRpbmdSZXF1ZXN0cyA9IG1fcGVuZGluZ01lZGlhS2V5U3lzdGVtUmVxdWVzdHMuYWRkKGRv
Y3VtZW50LCBWZWN0b3I8UmVmPE1lZGlhS2V5U3lzdGVtUmVxdWVzdD4+KCkpLml0ZXJhdG9yLT52
YWx1ZTsKKyAgICBwZW5kaW5nUmVxdWVzdHMuYXBwZW5kKHJlcXVlc3QpOworfQorCit2b2lkIE1l
ZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyOjpzZW5kTWVkaWFLZXlTeXN0ZW1S
ZXF1ZXN0KE1lZGlhS2V5U3lzdGVtUmVxdWVzdCYgdXNlclJlcXVlc3QpCit7CisgICAgYXV0byog
ZnJhbWUgPSB1c2VyUmVxdWVzdC5kb2N1bWVudCgpID8gdXNlclJlcXVlc3QuZG9jdW1lbnQoKS0+
ZnJhbWUoKSA6IG51bGxwdHI7CisgICAgaWYgKCFmcmFtZSkgeworICAgICAgICB1c2VyUmVxdWVz
dC5kZW55KGVtcHR5U3RyaW5nKCkpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgbV9v
bmdvaW5nTWVkaWFLZXlTeXN0ZW1SZXF1ZXN0cy5hZGQodXNlclJlcXVlc3QuaWRlbnRpZmllcigp
LCBtYWtlUmVmKHVzZXJSZXF1ZXN0KSk7CisKKyAgICBXZWJGcmFtZSogd2ViRnJhbWUgPSBXZWJG
cmFtZTo6ZnJvbUNvcmVGcmFtZSgqZnJhbWUpOworICAgIEFTU0VSVCh3ZWJGcmFtZSk7CisKKyAg
ICBhdXRvKiB0b3BMZXZlbERvY3VtZW50T3JpZ2luID0gdXNlclJlcXVlc3QudG9wTGV2ZWxEb2N1
bWVudE9yaWdpbigpOworICAgIG1fcGFnZS5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OlJl
cXVlc3RNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25Gb3JGcmFtZSh1c2VyUmVxdWVzdC5pZGVudGlm
aWVyKCkudG9VSW50NjQoKSwgd2ViRnJhbWUtPmZyYW1lSUQoKSwgdG9wTGV2ZWxEb2N1bWVudE9y
aWdpbi0+ZGF0YSgpLCB1c2VyUmVxdWVzdC5rZXlTeXN0ZW0oKSkpOworfQorCit2b2lkIE1lZGlh
S2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyOjpjYW5jZWxNZWRpYUtleVN5c3RlbVJl
cXVlc3QoTWVkaWFLZXlTeXN0ZW1SZXF1ZXN0JiByZXF1ZXN0KQoreworICAgIGlmIChhdXRvIHJl
bW92ZWRSZXF1ZXN0ID0gbV9vbmdvaW5nTWVkaWFLZXlTeXN0ZW1SZXF1ZXN0cy50YWtlKHJlcXVl
c3QuaWRlbnRpZmllcigpKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgYXV0byogZG9jdW1lbnQg
PSByZXF1ZXN0LmRvY3VtZW50KCk7CisgICAgaWYgKCFkb2N1bWVudCkKKyAgICAgICAgcmV0dXJu
OworCisgICAgYXV0byBpdGVyYXRvciA9IG1fcGVuZGluZ01lZGlhS2V5U3lzdGVtUmVxdWVzdHMu
ZmluZChkb2N1bWVudCk7CisgICAgaWYgKGl0ZXJhdG9yID09IG1fcGVuZGluZ01lZGlhS2V5U3lz
dGVtUmVxdWVzdHMuZW5kKCkpCisgICAgICAgIHJldHVybjsKKworICAgIGF1dG8mIHBlbmRpbmdS
ZXF1ZXN0cyA9IGl0ZXJhdG9yLT52YWx1ZTsKKyAgICBwZW5kaW5nUmVxdWVzdHMucmVtb3ZlRmly
c3RNYXRjaGluZyhbJnJlcXVlc3RdKGF1dG8mIGl0ZW0pIHsKKyAgICAgICAgcmV0dXJuICZyZXF1
ZXN0ID09IGl0ZW0ucHRyKCk7CisgICAgfSk7CisKKyAgICBpZiAoIXBlbmRpbmdSZXF1ZXN0cy5p
c0VtcHR5KCkpCisgICAgICAgIHJldHVybjsKKworICAgIG1fcGVuZGluZ01lZGlhS2V5U3lzdGVt
UmVxdWVzdHMucmVtb3ZlKGl0ZXJhdG9yKTsKK30KKwordm9pZCBNZWRpYUtleVN5c3RlbVBlcm1p
c3Npb25SZXF1ZXN0TWFuYWdlcjo6bWVkaWFLZXlTeXN0ZW1XYXNHcmFudGVkKHVpbnQ2NF90IHJl
cXVlc3RJRCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQor
eworICAgIGF1dG8gcmVxdWVzdCA9IG1fb25nb2luZ01lZGlhS2V5U3lzdGVtUmVxdWVzdHMudGFr
ZShtYWtlT2JqZWN0SWRlbnRpZmllcjxNZWRpYUtleVN5c3RlbVJlcXVlc3RJZGVudGlmaWVyVHlw
ZT4ocmVxdWVzdElEKSk7CisgICAgaWYgKCFyZXF1ZXN0KSB7CisgICAgICAgIGNvbXBsZXRpb25I
YW5kbGVyKCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICByZXF1ZXN0LT5hbGxvdyhX
VEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7Cit9CisKK3ZvaWQgTWVkaWFLZXlTeXN0ZW1QZXJt
aXNzaW9uUmVxdWVzdE1hbmFnZXI6Om1lZGlhS2V5U3lzdGVtV2FzRGVuaWVkKHVpbnQ2NF90IHJl
cXVlc3RJRCwgU3RyaW5nJiYgbWVzc2FnZSkKK3sKKyAgICBhdXRvIHJlcXVlc3QgPSBtX29uZ29p
bmdNZWRpYUtleVN5c3RlbVJlcXVlc3RzLnRha2UobWFrZU9iamVjdElkZW50aWZpZXI8TWVkaWFL
ZXlTeXN0ZW1SZXF1ZXN0SWRlbnRpZmllclR5cGU+KHJlcXVlc3RJRCkpOworICAgIGlmICghcmVx
dWVzdCkKKyAgICAgICAgcmV0dXJuOworCisgICAgcmVxdWVzdC0+ZGVueShXVEZNb3ZlKG1lc3Nh
Z2UpKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBFTkFCTEUoRU5D
UllQVEVEX01FRElBKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0VuY3J5
cHRlZE1lZGlhL01lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyLmggYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvRW5jcnlwdGVkTWVkaWEvTWVkaWFLZXlTeXN0ZW1QZXJtaXNz
aW9uUmVxdWVzdE1hbmFnZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44Njk1NWZiOWRlZDcxMTYxY2FkZjRhMjM2
OTAyYjJjNTQyMjU2OWE2Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL0VuY3J5cHRlZE1lZGlhL01lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RNYW5hZ2Vy
LmgKQEAgLTAsMCArMSw2MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBJZ2FsaWEgUy5M
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShFTkNSWVBURURfTUVESUEp
CisKKyNpbmNsdWRlICJTYW5kYm94RXh0ZW5zaW9uLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9NZWRp
YUtleVN5c3RlbUNsaWVudC5oPgorI2luY2x1ZGUgPFdlYkNvcmUvTWVkaWFLZXlTeXN0ZW1SZXF1
ZXN0Lmg+CisjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KKyNpbmNsdWRlIDx3dGYvUmVmLmg+Cisj
aW5jbHVkZSA8d3RmL1JlZlB0ci5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3MgV2Vi
UGFnZTsKKworY2xhc3MgTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIgewor
ICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOworcHVibGljOgorICAgIGV4cGxpY2l0IE1lZGlh
S2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyKFdlYlBhZ2UmKTsKKyAgICB+TWVkaWFL
ZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIoKSA9IGRlZmF1bHQ7CisKKyAgICB2b2lk
IHN0YXJ0TWVkaWFLZXlTeXN0ZW1SZXF1ZXN0KFdlYkNvcmU6Ok1lZGlhS2V5U3lzdGVtUmVxdWVz
dCYpOworICAgIHZvaWQgY2FuY2VsTWVkaWFLZXlTeXN0ZW1SZXF1ZXN0KFdlYkNvcmU6Ok1lZGlh
S2V5U3lzdGVtUmVxdWVzdCYpOworICAgIHZvaWQgbWVkaWFLZXlTeXN0ZW1XYXNHcmFudGVkKHVp
bnQ2NF90LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOworICAgIHZvaWQgbWVkaWFLZXlT
eXN0ZW1XYXNEZW5pZWQodWludDY0X3QsIFN0cmluZyYmKTsKKworcHJpdmF0ZToKKyAgICB2b2lk
IHNlbmRNZWRpYUtleVN5c3RlbVJlcXVlc3QoV2ViQ29yZTo6TWVkaWFLZXlTeXN0ZW1SZXF1ZXN0
Jik7CisKKyAgICBXZWJQYWdlJiBtX3BhZ2U7CisKKyAgICBIYXNoTWFwPFdlYkNvcmU6Ok1lZGlh
S2V5U3lzdGVtUmVxdWVzdElkZW50aWZpZXIsIFJlZjxXZWJDb3JlOjpNZWRpYUtleVN5c3RlbVJl
cXVlc3Q+PiBtX29uZ29pbmdNZWRpYUtleVN5c3RlbVJlcXVlc3RzOworICAgIEhhc2hNYXA8UmVm
UHRyPFdlYkNvcmU6OkRvY3VtZW50PiwgVmVjdG9yPFJlZjxXZWJDb3JlOjpNZWRpYUtleVN5c3Rl
bVJlcXVlc3Q+Pj4gbV9wZW5kaW5nTWVkaWFLZXlTeXN0ZW1SZXF1ZXN0czsKK307CisKK30gLy8g
bmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gRU5BQkxFKE1FRElBX1NUUkVBTSkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJNZWRpYUtl
eVN5c3RlbUNsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBv
cnQvV2ViTWVkaWFLZXlTeXN0ZW1DbGllbnQuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmNkMmI4YTViZDM5ZDAz
MTdhNDZmYTMxYjg0NjE5NjM1N2M3YmYxMTgKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViTWVkaWFLZXlTeXN0ZW1DbGllbnQuY3Bw
CkBAIC0wLDAgKzEsNjEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgSWdhbGlhIFMuTC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldlYk1lZGlhS2V5U3lz
dGVtQ2xpZW50LmgiCisKKyNpZiBFTkFCTEUoRU5DUllQVEVEX01FRElBKQorCisjaW5jbHVkZSAi
TWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIuaCIKKyNpbmNsdWRlICJXZWJQ
YWdlLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9NZWRpYUtleVN5c3RlbUNvbnRyb2xsZXIuaD4KKyNp
bmNsdWRlIDxXZWJDb3JlL01lZGlhS2V5U3lzdGVtUmVxdWVzdC5oPgorCituYW1lc3BhY2UgV2Vi
S2l0IHsKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOworCitXZWJNZWRpYUtleVN5c3RlbUNsaWVu
dDo6V2ViTWVkaWFLZXlTeXN0ZW1DbGllbnQoV2ViUGFnZSYgcGFnZSkKKyAgICA6IG1fcGFnZShw
YWdlKQoreworfQorCit2b2lkIFdlYk1lZGlhS2V5U3lzdGVtQ2xpZW50OjpwYWdlRGVzdHJveWVk
KCkKK3sKKyAgICBkZWxldGUgdGhpczsKK30KKwordm9pZCBXZWJNZWRpYUtleVN5c3RlbUNsaWVu
dDo6cmVxdWVzdE1lZGlhS2V5U3lzdGVtKE1lZGlhS2V5U3lzdGVtUmVxdWVzdCYgcmVxdWVzdCkK
K3sKKyAgICBtX3BhZ2UubWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIoKS5z
dGFydE1lZGlhS2V5U3lzdGVtUmVxdWVzdChyZXF1ZXN0KTsKK30KKwordm9pZCBXZWJNZWRpYUtl
eVN5c3RlbUNsaWVudDo6Y2FuY2VsTWVkaWFLZXlTeXN0ZW1SZXF1ZXN0KE1lZGlhS2V5U3lzdGVt
UmVxdWVzdCYgcmVxdWVzdCkKK3sKKyAgICBtX3BhZ2UubWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9u
UmVxdWVzdE1hbmFnZXIoKS5jYW5jZWxNZWRpYUtleVN5c3RlbVJlcXVlc3QocmVxdWVzdCk7Cit9
CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdDsKKworI2VuZGlmIC8vIEVOQUJMRShFTkNSWVBURURf
TUVESUEpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBv
cnQvV2ViTWVkaWFLZXlTeXN0ZW1DbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJDb3JlU3VwcG9ydC9XZWJNZWRpYUtleVN5c3RlbUNsaWVudC5oCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmY0ODAz
MmY4YjlhYTYwYWZiOTE4ZTA0M2Y1NDgxMWZmYjMyMjc3ODYKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViTWVkaWFLZXlTeXN0ZW1D
bGllbnQuaApAQCAtMCwwICsxLDUzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIElnYWxp
YSBTLkwuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAq
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKEVOQ1JZUFRFRF9N
RURJQSkKKworI2luY2x1ZGUgPFdlYkNvcmUvTWVkaWFLZXlTeXN0ZW1DbGllbnQuaD4KKworbmFt
ZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIFdlYlBhZ2U7CisKK2NsYXNzIFdlYk1lZGlhS2V5U3lz
dGVtQ2xpZW50IDogcHVibGljIFdlYkNvcmU6Ok1lZGlhS2V5U3lzdGVtQ2xpZW50IHsKKyAgICBX
VEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKK3B1YmxpYzoKKyAgICBXZWJNZWRpYUtleVN5c3RlbUNs
aWVudChXZWJQYWdlJik7CisgICAgfldlYk1lZGlhS2V5U3lzdGVtQ2xpZW50KCkgeyB9CisKK3By
aXZhdGU6CisgICAgdm9pZCBwYWdlRGVzdHJveWVkKCkgb3ZlcnJpZGU7CisKKyAgICB2b2lkIHJl
cXVlc3RNZWRpYUtleVN5c3RlbShXZWJDb3JlOjpNZWRpYUtleVN5c3RlbVJlcXVlc3QmKSBvdmVy
cmlkZTsKKyAgICB2b2lkIGNhbmNlbE1lZGlhS2V5U3lzdGVtUmVxdWVzdChXZWJDb3JlOjpNZWRp
YUtleVN5c3RlbVJlcXVlc3QmKSBvdmVycmlkZTsKKworICAgIFdlYlBhZ2UmIG1fcGFnZTsKK307
CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShFTkNSWVBURURf
TUVESUEpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQ
YWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCmlu
ZGV4IGNhZTBhOTcxOGNmN2ZmOWY0MDIxZjZjY2E5MDRlMjc0YmQxYjMzM2UuLmFjN2UwMzQ4ZDZj
MjFjZDY0ZDM5MDNmNGQ5ODA3OTNjMjVkMDlmODcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCkBAIC00Niw2ICs0Niw3IEBACiAjaW5jbHVkZSAiTGli
V2ViUlRDUHJvdmlkZXIuaCIKICNpbmNsdWRlICJMb2FkUGFyYW1ldGVycy5oIgogI2luY2x1ZGUg
IkxvZ2dpbmcuaCIKKyNpbmNsdWRlICJNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0TWFu
YWdlci5oIgogI2luY2x1ZGUgIk1lZGlhUGxheWJhY2tTdGF0ZS5oIgogI2luY2x1ZGUgIk1lZGlh
UmVjb3JkZXJQcm92aWRlci5oIgogI2luY2x1ZGUgIk5ldHNjYXBlUGx1Z2luLmgiCkBAIC0xMDQs
NiArMTA1LDcgQEAKICNpbmNsdWRlICJXZWJLZXlib2FyZEV2ZW50LmgiCiAjaW5jbHVkZSAiV2Vi
TG9hZGVyU3RyYXRlZ3kuaCIKICNpbmNsdWRlICJXZWJNZWRpYUtleVN0b3JhZ2VNYW5hZ2VyLmgi
CisjaW5jbHVkZSAiV2ViTWVkaWFLZXlTeXN0ZW1DbGllbnQuaCIKICNpbmNsdWRlICJXZWJNZWRp
YVN0cmF0ZWd5LmgiCiAjaW5jbHVkZSAiV2ViTW91c2VFdmVudC5oIgogI2luY2x1ZGUgIldlYk5v
dGlmaWNhdGlvbkNsaWVudC5oIgpAQCAtNDY3LDYgKzQ2OSw5IEBAIFdlYlBhZ2U6OldlYlBhZ2Uo
UGFnZUlkZW50aWZpZXIgcGFnZUlELCBXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzJiYgcGFyYW1l
dGVycykKICNlbmRpZgogI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCiAgICAgLCBtX3VzZXJNZWRp
YVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlciB7IG1ha2VVbmlxdWVSZWY8VXNlck1lZGlhUGVybWlz
c2lvblJlcXVlc3RNYW5hZ2VyPigqdGhpcykgfQorI2VuZGlmCisjaWYgRU5BQkxFKEVOQ1JZUFRF
RF9NRURJQSkKKyAgICAsIG1fbWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIg
eyBtYWtlVW5pcXVlUmVmPE1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyPigq
dGhpcykgfQogI2VuZGlmCiAgICAgLCBtX3BhZ2VTY3JvbGxlZEh5c3RlcmVzaXMoW3RoaXNdKFBB
TDo6SHlzdGVyZXNpc1N0YXRlIHN0YXRlKSB7IGlmIChzdGF0ZSA9PSBQQUw6Okh5c3RlcmVzaXNT
dGF0ZTo6U3RvcHBlZCkgcGFnZVN0b3BwZWRTY3JvbGxpbmcoKTsgfSwgcGFnZVNjcm9sbEh5c3Rl
cmVzaXNEdXJhdGlvbikKICAgICAsIG1fY2FuUnVuQmVmb3JlVW5sb2FkQ29uZmlybVBhbmVsKHBh
cmFtZXRlcnMuY2FuUnVuQmVmb3JlVW5sb2FkQ29uZmlybVBhbmVsKQpAQCAtNjQ4LDYgKzY1Myw5
IEBAIFdlYlBhZ2U6OldlYlBhZ2UoUGFnZUlkZW50aWZpZXIgcGFnZUlELCBXZWJQYWdlQ3JlYXRp
b25QYXJhbWV0ZXJzJiYgcGFyYW1ldGVycykKICNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQogICAg
IFdlYkNvcmU6OnByb3ZpZGVVc2VyTWVkaWFUbyhtX3BhZ2UuZ2V0KCksIG5ldyBXZWJVc2VyTWVk
aWFDbGllbnQoKnRoaXMpKTsKICNlbmRpZgorI2lmIEVOQUJMRShFTkNSWVBURURfTUVESUEpCisg
ICAgV2ViQ29yZTo6cHJvdmlkZU1lZGlhS2V5U3lzdGVtVG8obV9wYWdlLmdldCgpLCBuZXcgV2Vi
TWVkaWFLZXlTeXN0ZW1DbGllbnQoKnRoaXMpKTsKKyNlbmRpZgogCiAgICAgbV9wYWdlLT5zZXRD
b250cm9sbGVkQnlBdXRvbWF0aW9uKHBhcmFtZXRlcnMuY29udHJvbGxlZEJ5QXV0b21hdGlvbik7
CiAgICAgbV9wYWdlLT5zZXRIYXNSZXNvdXJjZUxvYWRDbGllbnQocGFyYW1ldGVycy5oYXNSZXNv
dXJjZUxvYWRDbGllbnQpOwpAQCAtNDUyMSw2ICs0NTI5LDE4IEBAIHZvaWQgV2ViUGFnZTo6Y2Fw
dHVyZURldmljZXNDaGFuZ2VkKCkKIAogI2VuZGlmCiAKKyNpZiBFTkFCTEUoRU5DUllQVEVEX01F
RElBKQordm9pZCBXZWJQYWdlOjptZWRpYUtleVN5c3RlbVdhc0dyYW50ZWQodWludDY0X3QgbWVk
aWFLZXlTeXN0ZW1JRCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5k
bGVyKQoreworICAgIG1fbWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXItPm1l
ZGlhS2V5U3lzdGVtV2FzR3JhbnRlZChtZWRpYUtleVN5c3RlbUlELCBXVEZNb3ZlKGNvbXBsZXRp
b25IYW5kbGVyKSk7Cit9CisKK3ZvaWQgV2ViUGFnZTo6bWVkaWFLZXlTeXN0ZW1XYXNEZW5pZWQo
dWludDY0X3QgbWVkaWFLZXlTeXN0ZW1JRCwgU3RyaW5nJiYgbWVzc2FnZSkKK3sKKyAgICBtX21l
ZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyLT5tZWRpYUtleVN5c3RlbVdhc0Rl
bmllZChtZWRpYUtleVN5c3RlbUlELCBXVEZNb3ZlKG1lc3NhZ2UpKTsKK30KKyNlbmRpZgorCiAj
aWYgIVBMQVRGT1JNKElPU19GQU1JTFkpCiB2b2lkIFdlYlBhZ2U6OmFkdmFuY2VUb05leHRNaXNz
cGVsbGluZyhib29sIHN0YXJ0QmVmb3JlU2VsZWN0aW9uKQogewpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCmluZGV4IDgzMzUxOTQxNmYyNmMzZDFjNDk1ZDdjZjNi
YWE1YTM4ZTA4NTEzOWIuLjg4N2QyY2Y2MjY0NjFjMWQ1Yzc1YjVhY2M3YjdjZTk1OGE1YjI3OGUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAor
KysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKQEAgLTI0Niw2
ICsyNDYsNyBAQCBjbGFzcyBHYW1lcGFkRGF0YTsKIGNsYXNzIEdlb2xvY2F0aW9uUGVybWlzc2lv
blJlcXVlc3RNYW5hZ2VyOwogY2xhc3MgTGF5ZXJIb3N0aW5nQ29udGV4dDsKIGNsYXNzIE1lZGlh
RGV2aWNlU2FuZGJveEV4dGVuc2lvbnM7CitjbGFzcyBNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25S
ZXF1ZXN0TWFuYWdlcjsKIGNsYXNzIE5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdl
cjsKIGNsYXNzIFBERlBsdWdpbjsKIGNsYXNzIFBhZ2VCYW5uZXI7CkBAIC02NzIsNiArNjczLDEw
IEBAIHB1YmxpYzoKICAgICB2b2lkIGNhcHR1cmVEZXZpY2VzQ2hhbmdlZCgpOwogI2VuZGlmCiAK
KyNpZiBFTkFCTEUoRU5DUllQVEVEX01FRElBKQorICAgIE1lZGlhS2V5U3lzdGVtUGVybWlzc2lv
blJlcXVlc3RNYW5hZ2VyJiBtZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcigp
IHsgcmV0dXJuIG1fbWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXI7IH0KKyNl
bmRpZgorCiAgICAgdm9pZCBlbGVtZW50RGlkRm9jdXMoV2ViQ29yZTo6RWxlbWVudCYpOwogICAg
IHZvaWQgZWxlbWVudERpZFJlZm9jdXMoV2ViQ29yZTo6RWxlbWVudCYpOwogICAgIHZvaWQgZWxl
bWVudERpZEJsdXIoV2ViQ29yZTo6RWxlbWVudCYpOwpAQCAtMTY2Nyw3ICsxNjcyLDExIEBAIHBy
aXZhdGU6CiAjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKICAgICB2b2lkIHVzZXJNZWRpYUFjY2Vz
c1dhc0dyYW50ZWQodWludDY0X3QgdXNlck1lZGlhSUQsIFdlYkNvcmU6OkNhcHR1cmVEZXZpY2Um
JiBhdWRpb0RldmljZVVJRCwgV2ViQ29yZTo6Q2FwdHVyZURldmljZSYmIHZpZGVvRGV2aWNlVUlE
LCBTdHJpbmcmJiBtZWRpYURldmljZUlkZW50aWZpZXJIYXNoU2FsdCwgU2FuZGJveEV4dGVuc2lv
bjo6SGFuZGxlJiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAgICAgdm9pZCB1c2Vy
TWVkaWFBY2Nlc3NXYXNEZW5pZWQodWludDY0X3QgdXNlck1lZGlhSUQsIHVpbnQ2NF90IHJlYXNv
biwgU3RyaW5nJiYgaW52YWxpZENvbnN0cmFpbnQpOworI2VuZGlmCiAKKyNpZiBFTkFCTEUoRU5D
UllQVEVEX01FRElBKQorICAgIHZvaWQgbWVkaWFLZXlTeXN0ZW1XYXNHcmFudGVkKHVpbnQ2NF90
IG1lZGlhS2V5U3lzdGVtSUQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CisgICAgdm9p
ZCBtZWRpYUtleVN5c3RlbVdhc0RlbmllZCh1aW50NjRfdCBtZWRpYUtleVN5c3RlbUlELCBTdHJp
bmcmJiBtZXNzYWdlKTsKICNlbmRpZgogCiAgICAgdm9pZCByZXF1ZXN0TWVkaWFQbGF5YmFja1N0
YXRlKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2ViS2l0OjpNZWRpYVBsYXliYWNrU3RhdGUpPiYm
KTsKQEAgLTE5NzksNiArMTk4OCwxMCBAQCBwcml2YXRlOgogICAgIFVuaXF1ZVJlZjxVc2VyTWVk
aWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXI+IG1fdXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RN
YW5hZ2VyOwogI2VuZGlmCiAKKyNpZiBFTkFCTEUoRU5DUllQVEVEX01FRElBKQorICAgIFVuaXF1
ZVJlZjxNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcj4gbV9tZWRpYUtleVN5
c3RlbVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcjsKKyNlbmRpZgorCiAgICAgc3RkOjp1bmlxdWVf
cHRyPFdlYkNvcmU6OlByaW50Q29udGV4dD4gbV9wcmludENvbnRleHQ7CiAjaWYgUExBVEZPUk0o
R1RLKQogICAgIFJlZlB0cjxXZWJQcmludE9wZXJhdGlvbkd0az4gbV9wcmludE9wZXJhdGlvbjsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVz
c2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3Nh
Z2VzLmluCmluZGV4IDJkYTk5Y2QzNzIzOTJlODJjNTMwZDQyYzAxYTEyODc3MGZiZDg3MTcuLjIz
ZmNhMzU3MWYwNzQ3NTA5MWZmM2ZjMTRiYWJjNDY1ZTIxNmVkNGMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4KKysrIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbgpAQCAtMzc4
LDYgKzM3OCwxMSBAQCBHZW5lcmF0ZVN5bnRoZXRpY0VkaXRpbmdDb21tYW5kKGVudW06dWludDhf
dCBXZWJLaXQ6OlN5bnRoZXRpY0VkaXRpbmdDb21tYW5kVHlwZQogICAgIENhcHR1cmVEZXZpY2Vz
Q2hhbmdlZCgpCiAjZW5kaWYKIAorI2lmIEVOQUJMRShFTkNSWVBURURfTUVESUEpCisgICAgTWVk
aWFLZXlTeXN0ZW1XYXNHcmFudGVkKHVpbnQ2NF90IG1lZGlhS2V5U3lzdGVtSUQpIC0+ICgpIEFz
eW5jCisgICAgTWVkaWFLZXlTeXN0ZW1XYXNEZW5pZWQodWludDY0X3QgbWVkaWFLZXlTeXN0ZW1J
RCwgU3RyaW5nIG1lc3NhZ2UpCisjZW5kaWYKKwogICAgIFJlcXVlc3RNZWRpYVBsYXliYWNrU3Rh
dGUoKSAtPiAoZW51bTp1aW50OF90IFdlYktpdDo6TWVkaWFQbGF5YmFja1N0YXRlIHN0YXRlKSBB
c3luYwogICAgIFBhdXNlQWxsTWVkaWFQbGF5YmFjaygpIC0+ICgpIEFzeW5jCiAgICAgU3VzcGVu
ZEFsbE1lZGlhUGxheWJhY2soKSAtPiAoKSBBc3luYwpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdl
TG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IDZkOTBkNDMzMGM1MTNhYzVhZjZhMGQ0YWFlYTkx
NGMyZDAxYTFkZTEuLjExOTdlMmQzM2JlNTAwZTQ2NWRhZmM0ODhmNzExYmIxOGM1YzEwOTYgMTAw
NjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwzNiBAQAorMjAyMS0wMS0zMSAgUGhpbGlwcGUgTm9ybWFuZCAgPHBub3JtYW5kQGlnYWxpYS5j
b20+CisKKyAgICAgICAgUGVybWlzc2lvbiByZXF1ZXN0IEFQSSBmb3IgTWVkaWFLZXlTeXN0ZW0g
YWNjZXNzIHN1cHBvcnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTIyMTE4NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIEFkZCBiYXNpYyBzdXBwb3J0IGZvciBNZWRpYUtleVN5c3RlbSBwZXJtaXNzaW9uIHJl
cXVlc3Qgc3VwcG9ydCBHVEsncyBNaW5pQnJvd3Nlci4KKyAgICAgICAgQWRkIHN1cHBvcnQgZm9y
IHNldHRpbmcgdGhlIHBlcm1pc3Npb24gcmVxdWVzdCByZXNwb25zZSBmcm9tIHRoZSBUZXN0UnVu
bmVyLCBmb3IgdXNhZ2Ugd2l0aGluIGxheW91dCB0ZXN0cy4KKyAgICAgICAgQWRkIEdMaWIgQVBJ
IHRlc3QgZm9yIHRoZSBNZWRpYUtleVN5c3RlbSBwZXJtaXNzaW9uIHJlcXVlc3Qgc3VwcG9ydC4K
KyAgICAgICAgCisgICAgICAgICogTWluaUJyb3dzZXIvZ3RrL0Jyb3dzZXJUYWIuYzoKKyAgICAg
ICAgKHBlcm1pc3Npb25SZXF1ZXN0RGlhbG9nUmVzcG9uc2UpOgorICAgICAgICAoZGVjaWRlUGVy
bWlzc2lvblJlcXVlc3QpOgorICAgICAgICAoYnJvd3Nlcl90YWJfY2xhc3NfaW5pdCk6CisgICAg
ICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRHTGliL1Rlc3RVSUNsaWVudC5jcHA6Cisg
ICAgICAgICh0ZXN0V2ViVmlld01lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RzKToKKyAg
ICAgICAgKGJlZm9yZUFsbCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9nbGliL1dlYktpdEdM
aWIvV2ViVmlld1Rlc3QuY3BwOgorICAgICAgICAoV2ViVmlld1Rlc3Q6OmluaXRpYWxpemVXZWJW
aWV3KToKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0JpbmRpbmdz
L1Rlc3RSdW5uZXIuaWRsOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5k
bGUvVGVzdFJ1bm5lci5jcHA6CisgICAgICAgIChXVFI6OlRlc3RSdW5uZXI6OnNldElzTWVkaWFL
ZXlTeXN0ZW1QZXJtaXNzaW9uR3JhbnRlZCk6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9J
bmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmg6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9U
ZXN0Q29udHJvbGxlci5jcHA6CisgICAgICAgIChXVFI6OmRlY2lkZVBvbGljeUZvck1lZGlhS2V5
U3lzdGVtUGVybWlzc2lvblJlcXVlc3QpOgorICAgICAgICAoV1RSOjpUZXN0Q29udHJvbGxlcjo6
Y29tcGxldGVNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25DaGVjayk6CisgICAgICAgIChXVFI6OlRl
c3RDb250cm9sbGVyOjpzZXRJc01lZGlhS2V5U3lzdGVtUGVybWlzc2lvbkdyYW50ZWQpOgorICAg
ICAgICAoV1RSOjpUZXN0Q29udHJvbGxlcjo6Y3JlYXRlV2ViVmlld1dpdGhPcHRpb25zKToKKyAg
ICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmg6CisgICAgICAgICogV2Vi
S2l0VGVzdFJ1bm5lci9UZXN0SW52b2NhdGlvbi5jcHA6CisgICAgICAgIChXVFI6OlRlc3RJbnZv
Y2F0aW9uOjpkaWRSZWNlaXZlU3luY2hyb25vdXNNZXNzYWdlRnJvbUluamVjdGVkQnVuZGxlKToK
KwogMjAyMS0wMi0wMSAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29tPgogCiAgICAg
ICAgIFtKU0NdIEFkZCBAIGluIEVycm9yLnN0YWNrIGlmIFVSTCBleGlzdHMKZGlmZiAtLWdpdCBh
L1Rvb2xzL01pbmlCcm93c2VyL2d0ay9Ccm93c2VyVGFiLmMgYi9Ub29scy9NaW5pQnJvd3Nlci9n
dGsvQnJvd3NlclRhYi5jCmluZGV4IDNlNTM4YTlkOGE1ZjQ4ZGMwOGIzMzBlZDQ1MTdjMjI3NTM2
OGRhOWYuLjk5MzU4NzkzNjMzZWEzOGQ1NGVlNzI5ZDFkZjg4YWRhOWUyZDQ1ZmYgMTAwNjQ0Ci0t
LSBhL1Rvb2xzL01pbmlCcm93c2VyL2d0ay9Ccm93c2VyVGFiLmMKKysrIGIvVG9vbHMvTWluaUJy
b3dzZXIvZ3RrL0Jyb3dzZXJUYWIuYwpAQCAtNjAsNiArNjAsNyBAQCBzdHJ1Y3QgX0Jyb3dzZXJU
YWIgewogfTsKIAogc3RhdGljIEdIYXNoVGFibGUgKnVzZXJNZWRpYVBlcm1pc3Npb25HcmFudGVk
T3JpZ2luczsKK3N0YXRpYyBHSGFzaFRhYmxlICptZWRpYUtleVN5c3RlbVBlcm1pc3Npb25HcmFu
dGVkT3JpZ2luczsKIHN0cnVjdCBfQnJvd3NlclRhYkNsYXNzIHsKICAgICBHdGtCb3hDbGFzcyBw
YXJlbnQ7CiB9OwpAQCAtMjY0LDEyICsyNjUsMTYgQEAgc3RhdGljIHZvaWQgcGVybWlzc2lvblJl
cXVlc3REaWFsb2dSZXNwb25zZShHdGtXaWRnZXQgKmRpYWxvZywgZ2ludCByZXNwb25zZSwgUGUK
ICAgICBjYXNlIEdUS19SRVNQT05TRV9ZRVM6CiAgICAgICAgIGlmIChXRUJLSVRfSVNfVVNFUl9N
RURJQV9QRVJNSVNTSU9OX1JFUVVFU1QocmVxdWVzdERhdGEtPnJlcXVlc3QpKQogICAgICAgICAg
ICAgZ19oYXNoX3RhYmxlX2FkZCh1c2VyTWVkaWFQZXJtaXNzaW9uR3JhbnRlZE9yaWdpbnMsIGdf
c3RyZHVwKHJlcXVlc3REYXRhLT5vcmlnaW4pKTsKKyAgICAgICAgaWYgKFdFQktJVF9JU19NRURJ
QV9LRVlfU1lTVEVNX1BFUk1JU1NJT05fUkVRVUVTVChyZXF1ZXN0RGF0YS0+cmVxdWVzdCkpCisg
ICAgICAgICAgICBnX2hhc2hfdGFibGVfYWRkKG1lZGlhS2V5U3lzdGVtUGVybWlzc2lvbkdyYW50
ZWRPcmlnaW5zLCBnX3N0cmR1cChyZXF1ZXN0RGF0YS0+b3JpZ2luKSk7CiAKICAgICAgICAgd2Vi
a2l0X3Blcm1pc3Npb25fcmVxdWVzdF9hbGxvdyhyZXF1ZXN0RGF0YS0+cmVxdWVzdCk7CiAgICAg
ICAgIGJyZWFrOwogICAgIGRlZmF1bHQ6CiAgICAgICAgIGlmIChXRUJLSVRfSVNfVVNFUl9NRURJ
QV9QRVJNSVNTSU9OX1JFUVVFU1QocmVxdWVzdERhdGEtPnJlcXVlc3QpKQogICAgICAgICAgICAg
Z19oYXNoX3RhYmxlX3JlbW92ZSh1c2VyTWVkaWFQZXJtaXNzaW9uR3JhbnRlZE9yaWdpbnMsIHJl
cXVlc3REYXRhLT5vcmlnaW4pOworICAgICAgICBpZiAoV0VCS0lUX0lTX01FRElBX0tFWV9TWVNU
RU1fUEVSTUlTU0lPTl9SRVFVRVNUKHJlcXVlc3REYXRhLT5yZXF1ZXN0KSkKKyAgICAgICAgICAg
IGdfaGFzaF90YWJsZV9yZW1vdmUobWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uR3JhbnRlZE9yaWdp
bnMsIHJlcXVlc3REYXRhLT5vcmlnaW4pOwogCiAgICAgICAgIHdlYmtpdF9wZXJtaXNzaW9uX3Jl
cXVlc3RfZGVueShyZXF1ZXN0RGF0YS0+cmVxdWVzdCk7CiAgICAgICAgIGJyZWFrOwpAQCAtMzQw
LDYgKzM0NSwxNiBAQCBzdGF0aWMgZ2Jvb2xlYW4gZGVjaWRlUGVybWlzc2lvblJlcXVlc3QoV2Vi
S2l0V2ViVmlldyAqd2ViVmlldywgV2ViS2l0UGVybWlzc2lvbgogICAgICAgICBjb25zdCBnY2hh
ciAqY3VycmVudERvbWFpbiA9IHdlYmtpdF93ZWJzaXRlX2RhdGFfYWNjZXNzX3Blcm1pc3Npb25f
cmVxdWVzdF9nZXRfY3VycmVudF9kb21haW4od2Vic2l0ZURhdGFBY2Nlc3NSZXF1ZXN0KTsKICAg
ICAgICAgdGV4dCA9IGdfc3RyZHVwX3ByaW50ZigiRG8geW91IHdhbnQgdG8gYWxsb3cgXCIlc1wi
IHRvIHVzZSBjb29raWVzIHdoaWxlIGJyb3dzaW5nIFwiJXNcIj8gVGhpcyB3aWxsIGFsbG93IFwi
JXNcIiB0byB0cmFjayB5b3VyIGFjdGl2aXR5IiwKICAgICAgICAgICAgIHJlcXVlc3RpbmdEb21h
aW4sIGN1cnJlbnREb21haW4sIHJlcXVlc3RpbmdEb21haW4pOworICAgIH0gZWxzZSBpZiAoV0VC
S0lUX0lTX01FRElBX0tFWV9TWVNURU1fUEVSTUlTU0lPTl9SRVFVRVNUKHJlcXVlc3QpKSB7Cisg
ICAgICAgIGNoYXIgKm9yaWdpbiA9IGdldFdlYlZpZXdPcmlnaW4od2ViVmlldyk7CisgICAgICAg
IGlmIChnX2hhc2hfdGFibGVfY29udGFpbnMobWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uR3JhbnRl
ZE9yaWdpbnMsIG9yaWdpbikpIHsKKyAgICAgICAgICAgIHdlYmtpdF9wZXJtaXNzaW9uX3JlcXVl
c3RfYWxsb3cocmVxdWVzdCk7CisgICAgICAgICAgICBnX2ZyZWUob3JpZ2luKTsKKyAgICAgICAg
ICAgIHJldHVybiBUUlVFOworICAgICAgICB9CisgICAgICAgIGdfZnJlZShvcmlnaW4pOworICAg
ICAgICB0aXRsZSA9ICJEUk0gc3lzdGVtIGFjY2VzcyByZXF1ZXN0IjsKKyAgICAgICAgdGV4dCA9
IGdfc3RyZHVwX3ByaW50ZigiQWxsb3cgdG8gdXNlIGEgQ0RNIHByb3ZpZGluZyBhY2Nlc3MgdG8g
JXM/Iiwgd2Via2l0X21lZGlhX2tleV9zeXN0ZW1fcGVybWlzc2lvbl9nZXRfbmFtZShXRUJLSVRf
TUVESUFfS0VZX1NZU1RFTV9QRVJNSVNTSU9OX1JFUVVFU1QocmVxdWVzdCkpKTsKICAgICB9IGVs
c2UgewogICAgICAgICBnX3ByaW50KCIlcyByZXF1ZXN0IG5vdCBoYW5kbGVkXG4iLCBHX09CSkVD
VF9UWVBFX05BTUUocmVxdWVzdCkpOwogICAgICAgICByZXR1cm4gRkFMU0U7CkBAIC02NTUsNiAr
NjcwLDkgQEAgc3RhdGljIHZvaWQgYnJvd3Nlcl90YWJfY2xhc3NfaW5pdChCcm93c2VyVGFiQ2xh
c3MgKmtsYXNzKQogICAgIGlmICghdXNlck1lZGlhUGVybWlzc2lvbkdyYW50ZWRPcmlnaW5zKQog
ICAgICAgICB1c2VyTWVkaWFQZXJtaXNzaW9uR3JhbnRlZE9yaWdpbnMgPSBnX2hhc2hfdGFibGVf
bmV3X2Z1bGwoZ19zdHJfaGFzaCwgZ19zdHJfZXF1YWwsIGdfZnJlZSwgTlVMTCk7CiAKKyAgICBp
ZiAoIW1lZGlhS2V5U3lzdGVtUGVybWlzc2lvbkdyYW50ZWRPcmlnaW5zKQorICAgICAgICBtZWRp
YUtleVN5c3RlbVBlcm1pc3Npb25HcmFudGVkT3JpZ2lucyA9IGdfaGFzaF90YWJsZV9uZXdfZnVs
bChnX3N0cl9oYXNoLCBnX3N0cl9lcXVhbCwgZ19mcmVlLCBOVUxMKTsKKwogICAgIGdfb2JqZWN0
X2NsYXNzX2luc3RhbGxfcHJvcGVydHkoCiAgICAgICAgIGdvYmplY3RDbGFzcywKICAgICAgICAg
UFJPUF9WSUVXLApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRH
TGliL1Rlc3RVSUNsaWVudC5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdEdM
aWIvVGVzdFVJQ2xpZW50LmNwcAppbmRleCAwZjljYTJhMzgzZDI3OWYzZDUzMzJhZTkzYjA0MGVl
NGMxN2VmMzFhLi5jN2ZhNmRlMGY1ZGY2ZGNlOWYzZDY2MTRmNTRlMTU0OTk1NzQ5MmE1IDEwMDY0
NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdEdMaWIvVGVzdFVJQ2xpZW50
LmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdEdMaWIvVGVzdFVJQ2xp
ZW50LmNwcApAQCAtODk2LDYgKzg5Niw0MiBAQCBzdGF0aWMgdm9pZCB0ZXN0V2ViVmlld0dlb2xv
Y2F0aW9uUGVybWlzc2lvblJlcXVlc3RzKFVJQ2xpZW50VGVzdCogdGVzdCwgZ2NvbnN0cAogICAg
IFRlc3Q6OmFkZExvZ0ZhdGFsRmxhZyhHX0xPR19MRVZFTF9XQVJOSU5HKTsKIH0KIAorI2lmIEVO
QUJMRShFTkNSWVBURURfTUVESUEpCitzdGF0aWMgdm9pZCB0ZXN0V2ViVmlld01lZGlhS2V5U3lz
dGVtUGVybWlzc2lvblJlcXVlc3RzKFVJQ2xpZW50VGVzdCogdGVzdCwgZ2NvbnN0cG9pbnRlcikK
K3sKKyAgICB0ZXN0LT5zaG93SW5XaW5kb3coKTsKKyAgICBzdGF0aWMgY29uc3QgY2hhciogbWVk
aWFLZXlTeXN0ZW1SZXF1ZXN0SFRNTCA9ICI8aHRtbD4iCisgICAgICAgICIgIDxzY3JpcHQ+Igor
ICAgICAgICAiICBmdW5jdGlvbiBydW5UZXN0KCkiCisgICAgICAgICIgIHsiCisgICAgICAgICIg
ICAgY29uc3Qgb3B0aW9ucyA9IFsiCisgICAgICAgICIgICAgIHsgaW5pdERhdGFUeXBlczogW1wi
Y2VuY1wiXSwiCisgICAgICAgICIgICAgICAgdmlkZW9DYXBhYmlsaXRpZXM6IFt7Y29udGVudFR5
cGUgOiAndmlkZW8vbXA0J31dIH0iCisgICAgICAgICIgICAgXTsiCisgICAgICAgICIgICAgbmF2
aWdhdG9yLnJlcXVlc3RNZWRpYUtleVN5c3RlbUFjY2Vzcygnb3JnLnczLmNsZWFya2V5Jywgb3B0
aW9ucykudGhlbigoYWNjZXNzKSA9PiB7IgorICAgICAgICAiICAgICAgd2luZG93LndlYmtpdC5t
ZXNzYWdlSGFuZGxlcnMucGVybWlzc2lvbi5wb3N0TWVzc2FnZSgnT0snKTsiCisgICAgICAgICIg
ICAgfSkuY2F0Y2goKGUpID0+IHsiCisgICAgICAgICIgICAgICB3aW5kb3cud2Via2l0Lm1lc3Nh
Z2VIYW5kbGVycy5wZXJtaXNzaW9uLnBvc3RNZXNzYWdlKGUubmFtZSk7IgorICAgICAgICAiICAg
IH0pOyIKKyAgICAgICAgIiAgfSIKKyAgICAgICAgIiAgPC9zY3JpcHQ+IgorICAgICAgICAiICA8
Ym9keSBvbmxvYWQ9J3J1blRlc3QoKTsnPjwvYm9keT4iCisgICAgICAgICI8L2h0bWw+IjsKKwor
ICAgIC8vIFRlc3QgZGVueWluZyBhIHBlcm1pc3Npb24gcmVxdWVzdC4KKyAgICB0ZXN0LT5tX2Fs
bG93UGVybWlzc2lvblJlcXVlc3RzID0gZmFsc2U7CisgICAgdGVzdC0+bG9hZEh0bWwobWVkaWFL
ZXlTeXN0ZW1SZXF1ZXN0SFRNTCwgImh0dHBzOi8vZm9vLmNvbS9iYXIiKTsKKyAgICBjb25zdCBn
Y2hhciogcmVzdWx0ID0gdGVzdC0+d2FpdFVudGlsUGVybWlzc2lvblJlc3VsdE1lc3NhZ2VSZWNl
aXZlZCgpOworICAgIGdfYXNzZXJ0X2NtcHN0cihyZXN1bHQsID09LCAiTm90U3VwcG9ydGVkRXJy
b3IiKTsKKworICAgIC8vIFRlc3QgYWxsb3dpbmcgYSBwZXJtaXNzaW9uIHJlcXVlc3QuCisgICAg
dGVzdC0+bV9hbGxvd1Blcm1pc3Npb25SZXF1ZXN0cyA9IHRydWU7CisgICAgdGVzdC0+bG9hZEh0
bWwobWVkaWFLZXlTeXN0ZW1SZXF1ZXN0SFRNTCwgImh0dHBzOi8vZm9vLmNvbS9iYXIiKTsKKyAg
ICByZXN1bHQgPSB0ZXN0LT53YWl0VW50aWxQZXJtaXNzaW9uUmVzdWx0TWVzc2FnZVJlY2VpdmVk
KCk7CisgICAgZ19hc3NlcnRfY21wc3RyKHJlc3VsdCwgPT0sICJPSyIpOworfQorI2VuZGlmCisK
ICNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQogc3RhdGljIHZvaWQgdGVzdFdlYlZpZXdVc2VyTWVk
aWFFbnVtZXJhdGVEZXZpY2VzUGVybWlzc2lvbkNoZWNrKFVJQ2xpZW50VGVzdCogdGVzdCwgZ2Nv
bnN0cG9pbnRlcikKIHsKQEAgLTEyOTksNiArMTMzNSw5IEBAIHZvaWQgYmVmb3JlQWxsKCkKICAg
ICBVSUNsaWVudFRlc3Q6OmFkZCgiV2ViS2l0V2ViVmlldyIsICJtb3VzZS10YXJnZXQiLCB0ZXN0
V2ViVmlld01vdXNlVGFyZ2V0KTsKICNlbmRpZgogICAgIFVJQ2xpZW50VGVzdDo6YWRkKCJXZWJL
aXRXZWJWaWV3IiwgImdlb2xvY2F0aW9uLXBlcm1pc3Npb24tcmVxdWVzdHMiLCB0ZXN0V2ViVmll
d0dlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3RzKTsKKyNpZiBFTkFCTEUoRU5DUllQVEVEX01F
RElBKQorICAgIFVJQ2xpZW50VGVzdDo6YWRkKCJXZWJLaXRXZWJWaWV3IiwgIm1lZGlhS2V5U3lz
dGVtLXBlcm1pc3Npb24tcmVxdWVzdHMiLCB0ZXN0V2ViVmlld01lZGlhS2V5U3lzdGVtUGVybWlz
c2lvblJlcXVlc3RzKTsKKyNlbmRpZgogI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCiAgICAgVUlD
bGllbnRUZXN0OjphZGQoIldlYktpdFdlYlZpZXciLCAidXNlcm1lZGlhLWVudW1lcmF0ZWRldmlj
ZXMtcGVybWlzc2lvbi1jaGVjayIsIHRlc3RXZWJWaWV3VXNlck1lZGlhRW51bWVyYXRlRGV2aWNl
c1Blcm1pc3Npb25DaGVjayk7CiAgICAgVUlDbGllbnRUZXN0OjphZGQoIldlYktpdFdlYlZpZXci
LCAidXNlcm1lZGlhLXBlcm1pc3Npb24tcmVxdWVzdHMiLCB0ZXN0V2ViVmlld1VzZXJNZWRpYVBl
cm1pc3Npb25SZXF1ZXN0cyk7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL2dsaWIv
V2ViS2l0R0xpYi9XZWJWaWV3VGVzdC5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL2dsaWIvV2Vi
S2l0R0xpYi9XZWJWaWV3VGVzdC5jcHAKaW5kZXggN2ExM2ViOGY4NDAyZGYwNTE3YWYwNjhkOTFk
MmFmY2QwOWRlOTY0Ni4uNmM3ZTliOTQ2YjY0N2NkYjcyNGE1ZTI2NjA5ZTc3MzkxZDhkMzI3ZCAx
MDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9nbGliL1dlYktpdEdMaWIvV2ViVmlld1Rl
c3QuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvZ2xpYi9XZWJLaXRHTGliL1dlYlZpZXdU
ZXN0LmNwcApAQCAtNjAsNiArNjAsMTIgQEAgdm9pZCBXZWJWaWV3VGVzdDo6aW5pdGlhbGl6ZVdl
YlZpZXcoKQogICAgICAgICAidXNlci1jb250ZW50LW1hbmFnZXIiLCBtX3VzZXJDb250ZW50TWFu
YWdlci5nZXQoKSwKICAgICAgICAgImlzLWVwaGVtZXJhbCIsIHNob3VsZENyZWF0ZUVwaGVtZXJh
bFdlYlZpZXcsCiAgICAgICAgIG51bGxwdHIpKTsKKworI2lmIEVOQUJMRShFTkNSWVBURURfTUVE
SUEpCisgICAgYXV0byogc2V0dGluZ3MgPSB3ZWJraXRfd2ViX3ZpZXdfZ2V0X3NldHRpbmdzKG1f
d2ViVmlldyk7CisgICAgd2Via2l0X3NldHRpbmdzX3NldF9lbmFibGVfZW5jcnlwdGVkX21lZGlh
KHNldHRpbmdzLCBUUlVFKTsKKyNlbmRpZgorCiAgICAgcGxhdGZvcm1Jbml0aWFsaXplV2ViVmll
dygpOwogICAgIGFzc2VydE9iamVjdElzRGVsZXRlZFdoZW5UZXN0RmluaXNoZXMoR19PQkpFQ1Qo
bV93ZWJWaWV3KSk7CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0
ZWRCdW5kbGUvQmluZGluZ3MvVGVzdFJ1bm5lci5pZGwgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVy
L0luamVjdGVkQnVuZGxlL0JpbmRpbmdzL1Rlc3RSdW5uZXIuaWRsCmluZGV4IGRiMTU5OWEyYzU2
MDJhZTgxYWIyZjI0ZTA4ZjlmOTU1MzljMDViOWEuLmEwNzFlY2RkZDllNDM0ODNmZTc3MTk2ODZj
MzVhNGYzN2I4YjFiYzcgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0
ZWRCdW5kbGUvQmluZGluZ3MvVGVzdFJ1bm5lci5pZGwKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1
bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9UZXN0UnVubmVyLmlkbApAQCAtNDA4LDQgKzQw
OCw3IEBAIGludGVyZmFjZSBUZXN0UnVubmVyIHsKIAogICAgIC8vIFNwZWVjaFJlY29nbml0aW9u
CiAgICAgdW5kZWZpbmVkIHNldElzU3BlZWNoUmVjb2duaXRpb25QZXJtaXNzaW9uR3JhbnRlZChi
b29sZWFuIHZhbHVlKTsKKworICAgIC8vIE1lZGlhS2V5U3lzdGVtCisgICAgdW5kZWZpbmVkIHNl
dElzTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uR3JhbnRlZChib29sZWFuIHZhbHVlKTsKIH07CmRp
ZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5u
ZXIuY3BwIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVy
LmNwcAppbmRleCA2MzgwOTg5MjUxOGNjZTNjZmQ2YmEyZGZhY2RjNmY1ZWY5MDNiYWI2Li44NjRj
Y2UyODU5N2E0MThkODlhNTM1N2RjOTIwMGNjZDAxOTRjN2Q1IDEwMDY0NAotLS0gYS9Ub29scy9X
ZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuY3BwCisrKyBiL1Rvb2xz
L1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5jcHAKQEAgLTIwODQs
NiArMjA4NCwxMSBAQCB2b2lkIFRlc3RSdW5uZXI6OnNldElzU3BlZWNoUmVjb2duaXRpb25QZXJt
aXNzaW9uR3JhbnRlZChib29sIGdyYW50ZWQpCiAgICAgcG9zdFN5bmNocm9ub3VzUGFnZU1lc3Nh
Z2UoInNldElzU3BlZWNoUmVjb2duaXRpb25QZXJtaXNzaW9uR3JhbnRlZCIsIGdyYW50ZWQpOwog
fQogCit2b2lkIFRlc3RSdW5uZXI6OnNldElzTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uR3JhbnRl
ZChib29sIGdyYW50ZWQpCit7CisgICAgcG9zdFN5bmNocm9ub3VzUGFnZU1lc3NhZ2UoInNldElz
TWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uR3JhbnRlZCIsIGdyYW50ZWQpOworfQorCiBBTExPV19E
RVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKIAogfSAvLyBuYW1lc3BhY2UgV1RSCmRpZmYgLS1n
aXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuaCBi
L1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5oCmluZGV4
IDkzYTk3Y2JkZGU0ODc1Y2JkMzM1YTcwZmNiOWZmNTNkYjRmMjhiNDQuLmJjZjcxMGI3Yjg1NDY5
ZjliYzY5MjA0MTI4MjcxNDZkMjNiM2JjOTcgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RS
dW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5oCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RS
dW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5oCkBAIC01MTksNiArNTE5LDggQEAgcHVi
bGljOgogCiAgICAgdm9pZCBzZXRJc1NwZWVjaFJlY29nbml0aW9uUGVybWlzc2lvbkdyYW50ZWQo
Ym9vbCk7CiAKKyAgICB2b2lkIHNldElzTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uR3JhbnRlZChi
b29sKTsKKwogcHJpdmF0ZToKICAgICBUZXN0UnVubmVyKCk7CiAKZGlmZiAtLWdpdCBhL1Rvb2xz
L1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwIGIvVG9vbHMvV2ViS2l0VGVzdFJ1
bm5lci9UZXN0Q29udHJvbGxlci5jcHAKaW5kZXggZDJjYmVmNDI1M2RmZTY1MTMyODcyM2Q1Nzlk
YjM0MTRiZjFkYTc4Yy4uYjNmM2I5MzNkOWRhZjAwNmUwZmY4NzMyNDRlNzVhOTM2ZjcyMjhkOCAx
MDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAKKysr
IGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAKQEAgLTQ2LDYgKzQ2
LDcgQEAKICNpbmNsdWRlIDxXZWJLaXQvV0tGcmFtZUluZm9SZWYuaD4KICNpbmNsdWRlIDxXZWJL
aXQvV0tIVFRQQ29va2llU3RvcmVSZWYuaD4KICNpbmNsdWRlIDxXZWJLaXQvV0tJY29uRGF0YWJh
c2UuaD4KKyNpbmNsdWRlIDxXZWJLaXQvV0tNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25DYWxsYmFj
ay5oPgogI2luY2x1ZGUgPFdlYktpdC9XS01lc3NhZ2VMaXN0ZW5lci5oPgogI2luY2x1ZGUgPFdl
YktpdC9XS01vY2tEaXNwbGF5Lmg+CiAjaW5jbHVkZSA8V2ViS2l0L1dLTW9ja01lZGlhRGV2aWNl
Lmg+CkBAIC0zNDMsNiArMzQ0LDIxIEBAIHZvaWQgVGVzdENvbnRyb2xsZXI6OnNldElzU3BlZWNo
UmVjb2duaXRpb25QZXJtaXNzaW9uR3JhbnRlZChib29sIGdyYW50ZWQpCiAgICAgbV9pc1NwZWVj
aFJlY29nbml0aW9uUGVybWlzc2lvbkdyYW50ZWQgPSBncmFudGVkOwogfQogCitzdGF0aWMgdm9p
ZCBkZWNpZGVQb2xpY3lGb3JNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0KFdLUGFnZVJl
ZiwgV0tTZWN1cml0eU9yaWdpblJlZiwgV0tTdHJpbmdSZWYsIFdLTWVkaWFLZXlTeXN0ZW1QZXJt
aXNzaW9uQ2FsbGJhY2tSZWYgY2FsbGJhY2spCit7CisgICAgVGVzdENvbnRyb2xsZXI6OnNpbmds
ZXRvbigpLmNvbXBsZXRlTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uQ2hlY2soY2FsbGJhY2spOwor
fQorCit2b2lkIFRlc3RDb250cm9sbGVyOjpjb21wbGV0ZU1lZGlhS2V5U3lzdGVtUGVybWlzc2lv
bkNoZWNrKFdLTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uQ2FsbGJhY2tSZWYgY2FsbGJhY2spCit7
CisgICAgV0tNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25DYWxsYmFja0NvbXBsZXRlKGNhbGxiYWNr
LCBtX2lzTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uR3JhbnRlZCk7Cit9CisKK3ZvaWQgVGVzdENv
bnRyb2xsZXI6OnNldElzTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uR3JhbnRlZChib29sIGdyYW50
ZWQpCit7CisgICAgbV9pc01lZGlhS2V5U3lzdGVtUGVybWlzc2lvbkdyYW50ZWQgPSBncmFudGVk
OworfQorCiBXS1BhZ2VSZWYgVGVzdENvbnRyb2xsZXI6OmNyZWF0ZU90aGVyUGFnZShXS1BhZ2VS
ZWYsIFdLUGFnZUNvbmZpZ3VyYXRpb25SZWYgY29uZmlndXJhdGlvbiwgV0tOYXZpZ2F0aW9uQWN0
aW9uUmVmIG5hdmlnYXRpb25BY3Rpb24sIFdLV2luZG93RmVhdHVyZXNSZWYgd2luZG93RmVhdHVy
ZXMsIGNvbnN0IHZvaWQgKmNsaWVudEluZm8pCiB7CiAgICAgUGxhdGZvcm1XZWJWaWV3KiBwYXJl
bnRWaWV3ID0gc3RhdGljX2Nhc3Q8UGxhdGZvcm1XZWJWaWV3Kj4oY29uc3RfY2FzdDx2b2lkKj4o
Y2xpZW50SW5mbykpOwpAQCAtNjk5LDggKzcxNSw4IEBAIHZvaWQgVGVzdENvbnRyb2xsZXI6OmNy
ZWF0ZVdlYlZpZXdXaXRoT3B0aW9ucyhjb25zdCBUZXN0T3B0aW9ucyYgb3B0aW9ucykKICAgICBX
S0hUVFBDb29raWVTdG9yZURlbGV0ZUFsbENvb2tpZXMoV0tXZWJzaXRlRGF0YVN0b3JlR2V0SFRU
UENvb2tpZVN0b3JlKHdlYnNpdGVEYXRhU3RvcmUoKSksIG51bGxwdHIsIG51bGxwdHIpOwogCiAg
ICAgcGxhdGZvcm1DcmVhdGVXZWJWaWV3KGNvbmZpZ3VyYXRpb24uZ2V0KCksIG9wdGlvbnMpOwot
ICAgIFdLUGFnZVVJQ2xpZW50VjE1IHBhZ2VVSUNsaWVudCA9IHsKLSAgICAgICAgeyAxNSwgbV9t
YWluV2ViVmlldy5nZXQoKSB9LAorICAgIFdLUGFnZVVJQ2xpZW50VjE2IHBhZ2VVSUNsaWVudCA9
IHsKKyAgICAgICAgeyAxNiwgbV9tYWluV2ViVmlldy5nZXQoKSB9LAogICAgICAgICAwLCAvLyBj
cmVhdGVOZXdQYWdlX2RlcHJlY2F0ZWRGb3JVc2VXaXRoVjAKICAgICAgICAgMCwgLy8gc2hvd1Bh
Z2UKICAgICAgICAgMCwgLy8gY2xvc2UKQEAgLTc3NCw3ICs3OTAsOCBAQCB2b2lkIFRlc3RDb250
cm9sbGVyOjpjcmVhdGVXZWJWaWV3V2l0aE9wdGlvbnMoY29uc3QgVGVzdE9wdGlvbnMmIG9wdGlv
bnMpCiAgICAgICAgIDAsIC8vIHJlcXVlc3RTdG9yYWdlQWNjZXNzQ29uZmlybQogICAgICAgICBz
aG91bGRBbGxvd0RldmljZU9yaWVudGF0aW9uQW5kTW90aW9uQWNjZXNzLAogICAgICAgICBydW5X
ZWJBdXRoZW50aWNhdGlvblBhbmVsLAotICAgICAgICBkZWNpZGVQb2xpY3lGb3JTcGVlY2hSZWNv
Z25pdGlvblBlcm1pc3Npb25SZXF1ZXN0CisgICAgICAgIGRlY2lkZVBvbGljeUZvclNwZWVjaFJl
Y29nbml0aW9uUGVybWlzc2lvblJlcXVlc3QsCisgICAgICAgIGRlY2lkZVBvbGljeUZvck1lZGlh
S2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3QKICAgICB9OwogICAgIFdLUGFnZVNldFBhZ2VVSUNs
aWVudChtX21haW5XZWJWaWV3LT5wYWdlKCksICZwYWdlVUlDbGllbnQuYmFzZSk7CiAKZGlmZiAt
LWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuaCBiL1Rvb2xzL1dl
YktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuaAppbmRleCBiYjc1ZDUwNzAyYzNhNTNmMzlk
ZTE1ODFkY2M0ZDNiMzM3Mzk2NGNiLi44MThjMmI0ZWM0YTU2MmJjMDY3YTRmM2Q1Y2ViYmNkYmQw
NWMwNDdjIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVy
LmgKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5oCkBAIC0zNTYs
NiArMzU2LDkgQEAgcHVibGljOgogICAgIHZvaWQgY29tcGxldGVTcGVlY2hSZWNvZ25pdGlvblBl
cm1pc3Npb25DaGVjayhXS1NwZWVjaFJlY29nbml0aW9uUGVybWlzc2lvbkNhbGxiYWNrUmVmKTsK
ICAgICB2b2lkIHNldElzU3BlZWNoUmVjb2duaXRpb25QZXJtaXNzaW9uR3JhbnRlZChib29sKTsK
IAorICAgIHZvaWQgY29tcGxldGVNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25DaGVjayhXS01lZGlh
S2V5U3lzdGVtUGVybWlzc2lvbkNhbGxiYWNrUmVmKTsKKyAgICB2b2lkIHNldElzTWVkaWFLZXlT
eXN0ZW1QZXJtaXNzaW9uR3JhbnRlZChib29sKTsKKwogcHJpdmF0ZToKICAgICBXS1JldGFpblB0
cjxXS1BhZ2VDb25maWd1cmF0aW9uUmVmPiBnZW5lcmF0ZVBhZ2VDb25maWd1cmF0aW9uKGNvbnN0
IFRlc3RPcHRpb25zJik7CiAgICAgV0tSZXRhaW5QdHI8V0tDb250ZXh0Q29uZmlndXJhdGlvblJl
Zj4gZ2VuZXJhdGVDb250ZXh0Q29uZmlndXJhdGlvbihjb25zdCBUZXN0T3B0aW9ucyYpIGNvbnN0
OwpAQCAtNjQ3LDYgKzY1MCw4IEBAIHByaXZhdGU6CiAjZW5kaWYKIAogICAgIGJvb2wgbV9pc1Nw
ZWVjaFJlY29nbml0aW9uUGVybWlzc2lvbkdyYW50ZWQgeyBmYWxzZSB9OworCisgICAgYm9vbCBt
X2lzTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uR3JhbnRlZCB7IHRydWUgfTsKIH07CiAKIH0gLy8g
bmFtZXNwYWNlIFdUUgpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0SW52
b2NhdGlvbi5jcHAgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RJbnZvY2F0aW9uLmNwcApp
bmRleCA1OThkZmM3ZDFhYzBlMzdiYjIyZmI3ODRiYTE1NGFiNzQ3N2FlYTE1Li41NTAzNTVjN2I4
Yjk4NDg0YTdkMjhjZjU1OTVmNjM4NzUxN2JmNGJhIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRU
ZXN0UnVubmVyL1Rlc3RJbnZvY2F0aW9uLmNwcAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVy
L1Rlc3RJbnZvY2F0aW9uLmNwcApAQCAtMTM2MCw2ICsxMzYwLDExIEBAIFdLUmV0YWluUHRyPFdL
VHlwZVJlZj4gVGVzdEludm9jYXRpb246OmRpZFJlY2VpdmVTeW5jaHJvbm91c01lc3NhZ2VGcm9t
SW5qZWN0ZWRCCiAgICAgICAgIHJldHVybiBudWxscHRyOwogICAgIH0KIAorICAgIGlmIChXS1N0
cmluZ0lzRXF1YWxUb1VURjhDU3RyaW5nKG1lc3NhZ2VOYW1lLCAic2V0SXNNZWRpYUtleVN5c3Rl
bVBlcm1pc3Npb25HcmFudGVkIikpIHsKKyAgICAgICAgVGVzdENvbnRyb2xsZXI6OnNpbmdsZXRv
bigpLnNldElzTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uR3JhbnRlZChib29sZWFuVmFsdWUobWVz
c2FnZUJvZHkpKTsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgfQorCiAgICAgQVNTRVJU
X05PVF9SRUFDSEVEKCk7CiAgICAgcmV0dXJuIG51bGxwdHI7CiB9CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggMDJjZjNlOThh
ZGFjYmI5M2M5NTNhZTIwMGNiYzAzYmJmZmNiMDQ4OC4uZDFmY2Q0YzI0Mzg4MGNmZDcwMDA2ZDkx
YjYyYmMwZjM5ZDk4YjBiNCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBi
L0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDIxLTAxLTMxICBQaGls
aXBwZSBOb3JtYW5kICA8cG5vcm1hbmRAaWdhbGlhLmNvbT4KKworICAgICAgICBQZXJtaXNzaW9u
IHJlcXVlc3QgQVBJIGZvciBNZWRpYUtleVN5c3RlbSBhY2Nlc3Mgc3VwcG9ydAorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjIxMTg3CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIGJhc2ljIGNvdmVyYWdl
IHN1cHBvcnQgZm9yIG92ZXJyaWRpbmcgdGhlIE1lZGlhS2V5U3lzdGVtIHBlcm1pc3Npb24gYW5z
d2VyIGFuZCB0aHVzIGhhdmUKKyAgICAgICAgdGhlIHByb21pc2UgcmVqZWN0aW9uIHRlc3RlZCBp
biB0aGlzIGNhc2UuCisKKyAgICAgICAgKiBtZWRpYS9lbmNyeXB0ZWQtbWVkaWEvbW9jay1NZWRp
YUtleVN5c3RlbUFjY2Vzcy1leHBlY3RlZC50eHQ6CisgICAgICAgICogbWVkaWEvZW5jcnlwdGVk
LW1lZGlhL21vY2stTWVkaWFLZXlTeXN0ZW1BY2Nlc3MuaHRtbDoKKwogMjAyMS0wMi0wMSAgWXVz
dWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29tPgogCiAgICAgICAgIFtKU0NdIEFkZCBAIGlu
IEVycm9yLnN0YWNrIGlmIFVSTCBleGlzdHMKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL21lZGlh
L2VuY3J5cHRlZC1tZWRpYS9tb2NrLU1lZGlhS2V5U3lzdGVtQWNjZXNzLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL21lZGlhL2VuY3J5cHRlZC1tZWRpYS9tb2NrLU1lZGlhS2V5U3lzdGVtQWNj
ZXNzLWV4cGVjdGVkLnR4dAppbmRleCAyMDkyMzRkNTExOThmMGMxMjQ4YWVkNmVjM2I3NTYzYTE3
NTBkZGM0Li4xMjBiYTFmMmMyODdjZWI3NjhlZjBhNmY0YTJmOGU0OTJlZWE0YWEwIDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9tZWRpYS9lbmNyeXB0ZWQtbWVkaWEvbW9jay1NZWRpYUtleVN5c3Rl
bUFjY2Vzcy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvbWVkaWEvZW5jcnlwdGVkLW1l
ZGlhL21vY2stTWVkaWFLZXlTeXN0ZW1BY2Nlc3MtZXhwZWN0ZWQudHh0CkBAIC0zMSw2ICszMSwx
MCBAQCBSVU4oY2FwYWJpbGl0aWVzLnBlcnNpc3RlbnRTdGF0ZSA9ICJub3QtYWxsb3dlZCIpCiBS
VU4ocHJvbWlzZSA9IG5hdmlnYXRvci5yZXF1ZXN0TWVkaWFLZXlTeXN0ZW1BY2Nlc3MoIm9yZy53
ZWJraXQubW9jayIsIFtjYXBhYmlsaXRpZXNdKSkKIFByb21pc2UgcmVzb2x2ZWQgT0sKIAorUlVO
KHRlc3RSdW5uZXIuc2V0SXNNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25HcmFudGVkKGZhbHNlKSkK
K1JVTihwcm9taXNlID0gbmF2aWdhdG9yLnJlcXVlc3RNZWRpYUtleVN5c3RlbUFjY2Vzcygib3Jn
LndlYmtpdC5tb2NrIiwgW2NhcGFiaWxpdGllc10pKQorUHJvbWlzZSByZWplY3RlZCBjb3JyZWN0
bHkgT0sKKwogUlVOKHByb21pc2UgPSBtZWRpYUtleVN5c3RlbUFjY2Vzcy5jcmVhdGVNZWRpYUtl
eXMoKSkKIFByb21pc2UgcmVzb2x2ZWQgT0sKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvbWVk
aWEvZW5jcnlwdGVkLW1lZGlhL21vY2stTWVkaWFLZXlTeXN0ZW1BY2Nlc3MuaHRtbCBiL0xheW91
dFRlc3RzL21lZGlhL2VuY3J5cHRlZC1tZWRpYS9tb2NrLU1lZGlhS2V5U3lzdGVtQWNjZXNzLmh0
bWwKaW5kZXggNDc5NmYxOGMyMDFmMTc0NmQ3ZGY0MzI3NDJkOTc1Yzc1ZWU0YmE3NS4uNTU1Yjll
ZTc2OWVlYmQxNmQ5YTY3NjkyYjYzNzAzZDRjYTMyYzcwOSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvbWVkaWEvZW5jcnlwdGVkLW1lZGlhL21vY2stTWVkaWFLZXlTeXN0ZW1BY2Nlc3MuaHRtbAor
KysgYi9MYXlvdXRUZXN0cy9tZWRpYS9lbmNyeXB0ZWQtbWVkaWEvbW9jay1NZWRpYUtleVN5c3Rl
bUFjY2Vzcy5odG1sCkBAIC04NCw2ICs4NCwxMyBAQAogICAgICAgICB9LAogCiAgICAgICAgIGZ1
bmN0aW9uKCkgeworICAgICAgICAgICAgcnVuKCd0ZXN0UnVubmVyLnNldElzTWVkaWFLZXlTeXN0
ZW1QZXJtaXNzaW9uR3JhbnRlZChmYWxzZSknKTsKKyAgICAgICAgICAgIHJ1bigncHJvbWlzZSA9
IG5hdmlnYXRvci5yZXF1ZXN0TWVkaWFLZXlTeXN0ZW1BY2Nlc3MoIm9yZy53ZWJraXQubW9jayIs
IFtjYXBhYmlsaXRpZXNdKScpOworICAgICAgICAgICAgc2hvdWxkUmVqZWN0KHByb21pc2UpLnRo
ZW4obmV4dCwgbmV4dCk7CisgICAgICAgIH0sCisKKyAgICAgICAgZnVuY3Rpb24oKSB7CisgICAg
ICAgICAgICB0ZXN0UnVubmVyLnNldElzTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uR3JhbnRlZCh0
cnVlKTsKICAgICAgICAgICAgIHJ1bigncHJvbWlzZSA9IG1lZGlhS2V5U3lzdGVtQWNjZXNzLmNy
ZWF0ZU1lZGlhS2V5cygpJyk7CiAgICAgICAgICAgICBzaG91bGRSZXNvbHZlKHByb21pc2UpLnRo
ZW4obmV4dCwgbmV4dCk7CiAgICAgICAgIH0sCg==
</data>
<flag name="commit-queue"
          id="436942"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>418854</attachid>
            <date>2021-02-01 04:06:14 -0800</date>
            <delta_ts>2021-02-01 04:21:22 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-221187-20210201040611.patch</filename>
            <type>text/plain</type>
            <size>161710</size>
            <attacher name="Philippe Normand">pnormand</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcyMTM5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNGQzNzA5MTUyYzFmMmU1
Y2U1MmZmOTliZTIyNjY2MTM1MDhmOTdhNS4uMzQzZDgwM2IyNWZjODIyMDFiZjcyYmRhODBlNmIx
NGE5MjQyNDFjYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ4IEBACisyMDIxLTAxLTMxICBQaGls
aXBwZSBOb3JtYW5kICA8cG5vcm1hbmRAaWdhbGlhLmNvbT4KKworICAgICAgICBQZXJtaXNzaW9u
IHJlcXVlc3QgQVBJIGZvciBNZWRpYUtleVN5c3RlbSBhY2Nlc3Mgc3VwcG9ydAorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjIxMTg3CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgU3VwcG9ydCBmb3IgdXNlciBw
ZXJtaXNzaW9uIHJlcXVlc3Rpbmcgd2hlbiBhY2Nlc3MgdG8gYW4gRU1FIE1lZGlhS2V5U3lzdGVt
IGlzIGJlaW5nCisgICAgICAgIHJlcXVlc3RlZCBieSB0aGUgcGFnZS4gVGhpcyBpcyBzaW1pbGFy
IHRvIHRoZSBtZWRpYURldmljZXMgYWNjZXNzIGd1YXJkcy4KKworICAgICAgICBFeGlzdGluZyB0
ZXN0IG1lZGlhL2VuY3J5cHRlZC1tZWRpYS9tb2NrLU1lZGlhS2V5U3lzdGVtQWNjZXNzLmh0bWwg
d2FzIHVwZGF0ZWQgdG8gY292ZXIgdGhpcworICAgICAgICBuZXcgY29kZSBwYXRoIGFuZCBXUEUv
R1RLIEFQSSB0ZXN0cyBhcyB3ZWxsLgorCisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6CisgICAg
ICAgICogSGVhZGVycy5jbWFrZToKKyAgICAgICAgKiBNb2R1bGVzL2VuY3J5cHRlZG1lZGlhL01l
ZGlhS2V5U3lzdGVtQ2xpZW50Lmg6IEFkZGVkLgorICAgICAgICAqIE1vZHVsZXMvZW5jcnlwdGVk
bWVkaWEvTWVkaWFLZXlTeXN0ZW1Db250cm9sbGVyLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJD
b3JlOjpNZWRpYUtleVN5c3RlbUNvbnRyb2xsZXI6OnN1cHBsZW1lbnROYW1lKToKKyAgICAgICAg
KFdlYkNvcmU6Ok1lZGlhS2V5U3lzdGVtQ29udHJvbGxlcjo6TWVkaWFLZXlTeXN0ZW1Db250cm9s
bGVyKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhS2V5U3lzdGVtQ29udHJvbGxlcjo6fk1lZGlh
S2V5U3lzdGVtQ29udHJvbGxlcik6CisgICAgICAgIChXZWJDb3JlOjpwcm92aWRlTWVkaWFLZXlT
eXN0ZW1Ubyk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYUtleVN5c3RlbUNvbnRyb2xsZXI6Omxv
Z1JlcXVlc3RNZWRpYUtleVN5c3RlbURlbmlhbCk6CisgICAgICAgICogTW9kdWxlcy9lbmNyeXB0
ZWRtZWRpYS9NZWRpYUtleVN5c3RlbUNvbnRyb2xsZXIuaDogQWRkZWQuCisgICAgICAgIChXZWJD
b3JlOjpNZWRpYUtleVN5c3RlbUNvbnRyb2xsZXI6OmNsaWVudCBjb25zdCk6CisgICAgICAgIChX
ZWJDb3JlOjpNZWRpYUtleVN5c3RlbUNvbnRyb2xsZXI6OmZyb20pOgorICAgICAgICAoV2ViQ29y
ZTo6TWVkaWFLZXlTeXN0ZW1Db250cm9sbGVyOjpyZXF1ZXN0TWVkaWFLZXlTeXN0ZW0pOgorICAg
ICAgICAoV2ViQ29yZTo6TWVkaWFLZXlTeXN0ZW1Db250cm9sbGVyOjpjYW5jZWxNZWRpYUtleVN5
c3RlbVJlcXVlc3QpOgorICAgICAgICAqIE1vZHVsZXMvZW5jcnlwdGVkbWVkaWEvTWVkaWFLZXlT
eXN0ZW1SZXF1ZXN0LmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpNZWRpYUtleVN5c3Rl
bVJlcXVlc3Q6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYUtleVN5c3RlbVJlcXVl
c3Q6Ok1lZGlhS2V5U3lzdGVtUmVxdWVzdCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYUtleVN5
c3RlbVJlcXVlc3Q6On5NZWRpYUtleVN5c3RlbVJlcXVlc3QpOgorICAgICAgICAoV2ViQ29yZTo6
TWVkaWFLZXlTeXN0ZW1SZXF1ZXN0Ojp0b3BMZXZlbERvY3VtZW50T3JpZ2luIGNvbnN0KToKKyAg
ICAgICAgKFdlYkNvcmU6Ok1lZGlhS2V5U3lzdGVtUmVxdWVzdDo6c3RhcnQpOgorICAgICAgICAo
V2ViQ29yZTo6TWVkaWFLZXlTeXN0ZW1SZXF1ZXN0OjphbGxvdyk6CisgICAgICAgIChXZWJDb3Jl
OjpNZWRpYUtleVN5c3RlbVJlcXVlc3Q6OmRlbnkpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFL
ZXlTeXN0ZW1SZXF1ZXN0OjpzdG9wKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhS2V5U3lzdGVt
UmVxdWVzdDo6YWN0aXZlRE9NT2JqZWN0TmFtZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpN
ZWRpYUtleVN5c3RlbVJlcXVlc3Q6OmRvY3VtZW50IGNvbnN0KToKKyAgICAgICAgKiBNb2R1bGVz
L2VuY3J5cHRlZG1lZGlhL01lZGlhS2V5U3lzdGVtUmVxdWVzdC5oOiBBZGRlZC4KKyAgICAgICAg
KFdlYkNvcmU6Ok1lZGlhS2V5U3lzdGVtUmVxdWVzdDo6c2V0QWxsb3dDYWxsYmFjayk6CisgICAg
ICAgIChXZWJDb3JlOjpNZWRpYUtleVN5c3RlbVJlcXVlc3Q6OmlkZW50aWZpZXIgY29uc3QpOgor
ICAgICAgICAoV2ViQ29yZTo6TWVkaWFLZXlTeXN0ZW1SZXF1ZXN0OjprZXlTeXN0ZW0gY29uc3Qp
OgorICAgICAgICAqIE1vZHVsZXMvZW5jcnlwdGVkbWVkaWEvTmF2aWdhdG9yRU1FLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6Ok5hdmlnYXRvckVNRTo6cmVxdWVzdE1lZGlhS2V5U3lzdGVtQWNjZXNz
KToKKwogMjAyMS0wMi0wMSAgWGFiaWVyIFJvZHJpZ3VleiBDYWx2YXIgIDxjYWx2YXJpc0BpZ2Fs
aWEuY29tPgogCiAgICAgICAgIFtHU3RyZWFtZXJdW0VNRV1bVGh1bmRlcl0gQWRkIHZpZGVvL3gt
dnA5IGFzIHN1cHBvcnRlZCBmb3IgY2VuYyBhbmQgY2JjcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCAyY2FkNzhmMWU2
ZWY0ODk5ZDZmZTMwNDdlOTM5MzJkY2ViOTNiMWUyLi42NDk0NTRmZGYxY2Q2ZDkyOGI0YmRjY2Y0
MmMzYWVmZWIxZWIxZjg5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysg
Yi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDExOCBAQAorMjAyMS0wMS0zMSAg
UGhpbGlwcGUgTm9ybWFuZCAgPHBub3JtYW5kQGlnYWxpYS5jb20+CisKKyAgICAgICAgUGVybWlz
c2lvbiByZXF1ZXN0IEFQSSBmb3IgTWVkaWFLZXlTeXN0ZW0gYWNjZXNzIHN1cHBvcnQKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyMTE4NworCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBuZXcgSVBDIGFu
ZCBBUEkgZXhwb3NpbmcgTWVkaWFLZXlTeXN0ZW0gYWNjZXNzIHBlcm1pc3Npb25zIHRvIHRoZSBV
SVByb2Nlc3MuIEF0IGxlYXN0CisgICAgICAgIEdUSy9XUEUgd291bGQgbGlrZSB0byBoYXZlIEFQ
SSBmb3IgYXNraW5nIHBlcm1pc3Npb24gdG8gdGhlIHVzZXIgd2hlbiBFTUUncyBNZWRpYUtleUFj
Y2VzcworICAgICAgICBpcyBiZWluZyByZXF1ZXN0ZWQgYnkgYSBwYWdlLiBPbiBBcHBsZSBwbGF0
Zm9ybXMgdGhlIHBlcm1pc3Npb24gaXMgZ3JhbnRlZCBieSBkZWZhdWx0IHVudGlsCisgICAgICAg
IGEgZGVjaXNpb24gaXMgbWFkZSBhYm91dCBzdXBwb3J0aW5nIHRoaXMgaW4gdGhlaXIgQVBJVUlD
bGllbnQuCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBIZWFkZXJzLmNt
YWtlOgorICAgICAgICAqIFBsYXRmb3JtL0xvZ2dpbmcuaDoKKyAgICAgICAgKiBQbGF0Zm9ybUdU
Sy5jbWFrZToKKyAgICAgICAgKiBQbGF0Zm9ybVdQRS5jbWFrZToKKyAgICAgICAgKiBTaGFyZWQv
QVBJL0FQSU9iamVjdC5oOgorICAgICAgICAqIFNoYXJlZC9BUEkvYy9XS0Jhc2UuaDoKKyAgICAg
ICAgKiBTb3VyY2VzLnR4dDoKKyAgICAgICAgKiBTb3VyY2VzR1RLLnR4dDoKKyAgICAgICAgKiBT
b3VyY2VzV1BFLnR4dDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0FQSVVJQ2xpZW50Lmg6Cisg
ICAgICAgIChBUEk6OlVJQ2xpZW50OjpkZWNpZGVQb2xpY3lGb3JNZWRpYUtleVN5c3RlbVBlcm1p
c3Npb25SZXF1ZXN0KToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tBUElDYXN0Lmg6Cisg
ICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dLTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uQ2FsbGJh
Y2suY3BwOiBBZGRlZC4KKyAgICAgICAgKFdLTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uQ2FsbGJh
Y2tHZXRUeXBlSUQpOgorICAgICAgICAoV0tNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25DYWxsYmFj
a0NvbXBsZXRlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tNZWRpYUtleVN5c3RlbVBl
cm1pc3Npb25DYWxsYmFjay5oOiBBZGRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tQ
YWdlLmNwcDoKKyAgICAgICAgKFdLUGFnZVNldFBhZ2VVSUNsaWVudCk6CisgICAgICAgICogVUlQ
cm9jZXNzL0FQSS9DL1dLUGFnZVVJQ2xpZW50Lmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9n
bGliL1dlYktpdE1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3QuY3BwOiBBZGRlZC4KKyAg
ICAgICAgKHdlYmtpdE1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RBbGxvdyk6CisgICAg
ICAgICh3ZWJraXRNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0RGVueSk6CisgICAgICAg
ICh3ZWJraXRfcGVybWlzc2lvbl9yZXF1ZXN0X2ludGVyZmFjZV9pbml0KToKKyAgICAgICAgKHdl
YmtpdE1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3REaXNwb3NlKToKKyAgICAgICAgKHdl
YmtpdF9tZWRpYV9rZXlfc3lzdGVtX3Blcm1pc3Npb25fcmVxdWVzdF9jbGFzc19pbml0KToKKyAg
ICAgICAgKHdlYmtpdE1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RDcmVhdGUpOgorICAg
ICAgICAod2Via2l0X21lZGlhX2tleV9zeXN0ZW1fcGVybWlzc2lvbl9nZXRfbmFtZSk6CisgICAg
ICAgICogVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdE1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJl
cXVlc3RQcml2YXRlLmg6IEFkZGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJL
aXRVSUNsaWVudC5jcHA6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0QXV0b2Ns
ZWFudXBzLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0TWVkaWFLZXlTeXN0
ZW1QZXJtaXNzaW9uUmVxdWVzdC5oOiBBZGRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2d0
ay9kb2NzL3dlYmtpdDJndGstNC4wLXNlY3Rpb25zLnR4dDoKKyAgICAgICAgKiBVSVByb2Nlc3Mv
QVBJL2d0ay9kb2NzL3dlYmtpdDJndGstZG9jcy5zZ21sOgorICAgICAgICAqIFVJUHJvY2Vzcy9B
UEkvZ3RrL3dlYmtpdDIuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL3dwZS9XZWJLaXRNZWRp
YUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0Lmg6IEFkZGVkLgorICAgICAgICAqIFVJUHJvY2Vz
cy9BUEkvd3BlL2RvY3Mvd3BlLTEuMC1zZWN0aW9ucy50eHQ6CisgICAgICAgICogVUlQcm9jZXNz
L0FQSS93cGUvZG9jcy93cGUtZG9jcy5zZ21sOgorICAgICAgICAqIFVJUHJvY2Vzcy9NZWRpYUtl
eVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0Lmg6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpNZWRp
YUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0OjpjcmVhdGUpOgorICAgICAgICAoV2ViS2l0OjpN
ZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0Ojpjb21wbGV0ZSk6CisgICAgICAgIChXZWJL
aXQ6Ok1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3Q6OmtleVN5c3RlbSBjb25zdCk6Cisg
ICAgICAgIChXZWJLaXQ6Ok1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3Q6Ok1lZGlhS2V5
U3lzdGVtUGVybWlzc2lvblJlcXVlc3QpOgorICAgICAgICAoV2ViS2l0OjpNZWRpYUtleVN5c3Rl
bVBlcm1pc3Npb25DYWxsYmFjazo6Y3JlYXRlKToKKyAgICAgICAgKFdlYktpdDo6TWVkaWFLZXlT
eXN0ZW1QZXJtaXNzaW9uQ2FsbGJhY2s6OmNvbXBsZXRlKToKKyAgICAgICAgKFdlYktpdDo6TWVk
aWFLZXlTeXN0ZW1QZXJtaXNzaW9uQ2FsbGJhY2s6Ok1lZGlhS2V5U3lzdGVtUGVybWlzc2lvbkNh
bGxiYWNrKToKKyAgICAgICAgKiBVSVByb2Nlc3MvTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVx
dWVzdE1hbmFnZXJQcm94eS5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpNZWRpYUtleVN5
c3RlbVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5OjpNZWRpYUtleVN5c3RlbVBlcm1pc3Np
b25SZXF1ZXN0TWFuYWdlclByb3h5KToKKyAgICAgICAgKFdlYktpdDo6TWVkaWFLZXlTeXN0ZW1Q
ZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6fk1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJl
cXVlc3RNYW5hZ2VyUHJveHkpOgorICAgICAgICAoV2ViS2l0OjpNZWRpYUtleVN5c3RlbVBlcm1p
c3Npb25SZXF1ZXN0TWFuYWdlclByb3h5OjppbnZhbGlkYXRlUGVuZGluZ1JlcXVlc3RzKToKKyAg
ICAgICAgKFdlYktpdDo6TWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94
eTo6ZGVueVJlcXVlc3QpOgorICAgICAgICAoV2ViS2l0OjpNZWRpYUtleVN5c3RlbVBlcm1pc3Np
b25SZXF1ZXN0TWFuYWdlclByb3h5OjpncmFudFJlcXVlc3QpOgorICAgICAgICAoV2ViS2l0OjpN
ZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5OjpjcmVhdGVSZXF1ZXN0
Rm9yRnJhbWUpOgorICAgICAgICAoV2ViS2l0OjpNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1
ZXN0TWFuYWdlclByb3h5Ojpsb2dDaGFubmVsIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6TWVk
aWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6bG9nZ2VyIGNvbnN0KToK
KyAgICAgICAgKiBVSVByb2Nlc3MvTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdE1hbmFn
ZXJQcm94eS5oOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6TWVkaWFLZXlTeXN0ZW1QZXJtaXNz
aW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6cGFnZSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6Ok1l
ZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6OmRlbnlSZXF1ZXN0KToK
KyAgICAgICAgKiBVSVByb2Nlc3MvTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdFByb3h5
LmNwcDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6Ok1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJl
cXVlc3RQcm94eTo6TWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdFByb3h5KToKKyAgICAg
ICAgKFdlYktpdDo6TWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdFByb3h5OjphbGxvdyk6
CisgICAgICAgIChXZWJLaXQ6Ok1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RQcm94eTo6
ZGVueSk6CisgICAgICAgIChXZWJLaXQ6Ok1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RQ
cm94eTo6aW52YWxpZGF0ZSk6CisgICAgICAgIChXZWJLaXQ6Ok1lZGlhS2V5U3lzdGVtUGVybWlz
c2lvblJlcXVlc3RQcm94eTo6ZG9EZWZhdWx0QWN0aW9uKToKKyAgICAgICAgKiBVSVByb2Nlc3Mv
TWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdFByb3h5Lmg6IEFkZGVkLgorICAgICAgICAo
V2ViS2l0OjpNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0UHJveHk6OmNyZWF0ZSk6Cisg
ICAgICAgIChXZWJLaXQ6Ok1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RQcm94eTo6aXNQ
ZW5kaW5nIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6TWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9u
UmVxdWVzdFByb3h5OjptZWRpYUtleVN5c3RlbUlEIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6
TWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdFByb3h5OjptYWluRnJhbWVJRCBjb25zdCk6
CisgICAgICAgIChXZWJLaXQ6Ok1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RQcm94eTo6
ZnJhbWVJRCBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6Ok1lZGlhS2V5U3lzdGVtUGVybWlzc2lv
blJlcXVlc3RQcm94eTo6dG9wTGV2ZWxEb2N1bWVudFNlY3VyaXR5T3JpZ2luKToKKyAgICAgICAg
KFdlYktpdDo6TWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdFByb3h5Ojp0b3BMZXZlbERv
Y3VtZW50U2VjdXJpdHlPcmlnaW4gY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpNZWRpYUtleVN5
c3RlbVBlcm1pc3Npb25SZXF1ZXN0UHJveHk6OmtleVN5c3RlbSBjb25zdCk6CisgICAgICAgICog
VUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZS5oOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpX
ZWJQYWdlUHJveHk6OnJlcXVlc3RNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25Gb3JGcmFtZSk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6bWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVx
dWVzdE1hbmFnZXIpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OnJlcXVlc3RNZWRp
YUtleVN5c3RlbVBlcm1pc3Npb25CeURlZmF1bHRBY3Rpb24pOgorICAgICAgICAqIFVJUHJvY2Vz
cy9XZWJQYWdlUHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3Nh
Z2VzLmluOgorICAgICAgICAqIFdlYlByb2Nlc3MvRW5jcnlwdGVkTWVkaWEvTWVkaWFLZXlTeXN0
ZW1QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6
TWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXI6Ok1lZGlhS2V5U3lzdGVtUGVy
bWlzc2lvblJlcXVlc3RNYW5hZ2VyKToKKyAgICAgICAgKFdlYktpdDo6TWVkaWFLZXlTeXN0ZW1Q
ZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXI6OnN0YXJ0TWVkaWFLZXlTeXN0ZW1SZXF1ZXN0KToKKyAg
ICAgICAgKFdlYktpdDo6TWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXI6OnNl
bmRNZWRpYUtleVN5c3RlbVJlcXVlc3QpOgorICAgICAgICAoV2ViS2l0OjpNZWRpYUtleVN5c3Rl
bVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcjo6Y2FuY2VsTWVkaWFLZXlTeXN0ZW1SZXF1ZXN0KToK
KyAgICAgICAgKFdlYktpdDo6TWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXI6
Om1lZGlhS2V5U3lzdGVtV2FzR3JhbnRlZCk6CisgICAgICAgIChXZWJLaXQ6Ok1lZGlhS2V5U3lz
dGVtUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyOjptZWRpYUtleVN5c3RlbVdhc0RlbmllZCk6Cisg
ICAgICAgICogV2ViUHJvY2Vzcy9FbmNyeXB0ZWRNZWRpYS9NZWRpYUtleVN5c3RlbVBlcm1pc3Np
b25SZXF1ZXN0TWFuYWdlci5oOiBBZGRlZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0L1dlYk1lZGlhS2V5U3lzdGVtQ2xpZW50LmNwcDogQWRkZWQuCisgICAgICAgIChXZWJL
aXQ6OldlYk1lZGlhS2V5U3lzdGVtQ2xpZW50OjpXZWJNZWRpYUtleVN5c3RlbUNsaWVudCk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYk1lZGlhS2V5U3lzdGVtQ2xpZW50OjpwYWdlRGVzdHJveWVkKToK
KyAgICAgICAgKFdlYktpdDo6V2ViTWVkaWFLZXlTeXN0ZW1DbGllbnQ6OnJlcXVlc3RNZWRpYUtl
eVN5c3RlbSk6CisgICAgICAgIChXZWJLaXQ6OldlYk1lZGlhS2V5U3lzdGVtQ2xpZW50OjpjYW5j
ZWxNZWRpYUtleVN5c3RlbVJlcXVlc3QpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvV2ViTWVkaWFLZXlTeXN0ZW1DbGllbnQuaDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6
OldlYk1lZGlhS2V5U3lzdGVtQ2xpZW50Ojp+V2ViTWVkaWFLZXlTeXN0ZW1DbGllbnQpOgorICAg
ICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6
bV9saW1pdHNOYXZpZ2F0aW9uc1RvQXBwQm91bmREb21haW5zKToKKyAgICAgICAgKFdlYktpdDo6
V2ViUGFnZTo6bWVkaWFLZXlTeXN0ZW1XYXNHcmFudGVkKToKKyAgICAgICAgKFdlYktpdDo6V2Vi
UGFnZTo6bWVkaWFLZXlTeXN0ZW1XYXNEZW5pZWQpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2Vi
UGFnZS9XZWJQYWdlLmg6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6Om1lZGlhS2V5U3lzdGVt
UGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2Uv
V2ViUGFnZS5tZXNzYWdlcy5pbjoKKwogMjAyMS0wMi0wMSAgQ2FybG9zIEdhcmNpYSBDYW1wb3Mg
IDxjZ2FyY2lhQGlnYWxpYS5jb20+CiAKICAgICAgICAgW1NPVVBdIEFkZCBzdXBwb3J0IGZvciBk
YXRhIFVSTHMgaW4gdGhlIG5ldHdvcmsgcHJvY2VzcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAppbmRleCBi
YWE0NTNkNmNmMWMyMmU2NTkzMTE1NDRiMDI2Yjc4YWQ0YjU4ZDY0Li5iMmYxNjc5MDEyYzAzYjgw
ZGZjNTRkMjQ3OGZmMGJlMmU4MjRlMGI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DTWFr
ZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dApAQCAtMTQ5Nyw2
ICsxNDk3LDggQEAgaWYgKEVOQUJMRV9FTkNSWVBURURfTUVESUEpCiAgICAgICAgIE1vZHVsZXMv
ZW5jcnlwdGVkbWVkaWEvTWVkaWFLZXlTZXNzaW9uLmNwcAogICAgICAgICBNb2R1bGVzL2VuY3J5
cHRlZG1lZGlhL01lZGlhS2V5U3RhdHVzTWFwLmNwcAogICAgICAgICBNb2R1bGVzL2VuY3J5cHRl
ZG1lZGlhL01lZGlhS2V5U3lzdGVtQWNjZXNzLmNwcAorICAgICAgICBNb2R1bGVzL2VuY3J5cHRl
ZG1lZGlhL01lZGlhS2V5U3lzdGVtQ29udHJvbGxlci5jcHAKKyAgICAgICAgTW9kdWxlcy9lbmNy
eXB0ZWRtZWRpYS9NZWRpYUtleVN5c3RlbVJlcXVlc3QuY3BwCiAgICAgICAgIE1vZHVsZXMvZW5j
cnlwdGVkbWVkaWEvTWVkaWFLZXlzLmNwcAogICAgICAgICBNb2R1bGVzL2VuY3J5cHRlZG1lZGlh
L05hdmlnYXRvckVNRS5jcHAKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvSGVhZGVycy5j
bWFrZSBiL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKaW5kZXggYWJhMTVlMGVkN2EwMTQ2
NDU4MmYzZjkyODBlNjc4YjNkYjI4ZjYzMi4uOGMxYjZjMzI3ODJhOTFkOWM0MTRjNjEwYjQ5ZTY3
OWVlYjYwYmI2OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCkBAIC0yNCw2ICsyNCw5IEBAIHNldChXZWJD
b3JlX1BSSVZBVEVfRlJBTUVXT1JLX0hFQURFUlMKICAgICBNb2R1bGVzL2NvbnRhY3QtcGlja2Vy
L0NvbnRhY3RzUmVxdWVzdERhdGEuaAogCiAgICAgTW9kdWxlcy9lbmNyeXB0ZWRtZWRpYS9DRE1D
bGllbnQuaAorICAgIE1vZHVsZXMvZW5jcnlwdGVkbWVkaWEvTWVkaWFLZXlTeXN0ZW1DbGllbnQu
aAorICAgIE1vZHVsZXMvZW5jcnlwdGVkbWVkaWEvTWVkaWFLZXlTeXN0ZW1Db250cm9sbGVyLmgK
KyAgICBNb2R1bGVzL2VuY3J5cHRlZG1lZGlhL01lZGlhS2V5U3lzdGVtUmVxdWVzdC5oCiAKICAg
ICBNb2R1bGVzL2ZldGNoL0ZldGNoQm9keUNvbnN1bWVyLmgKICAgICBNb2R1bGVzL2ZldGNoL0Zl
dGNoQm9keVNvdXJjZS5oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2VuY3J5
cHRlZG1lZGlhL01lZGlhS2V5U3lzdGVtQ2xpZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2VuY3J5cHRlZG1lZGlhL01lZGlhS2V5U3lzdGVtQ2xpZW50LmgKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNTNkMzBi
MWQwZjg5ZTAwNTBhYWQwNDIyN2ExMGU4NDQwMjk4Mjk3YgotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvZW5jcnlwdGVkbWVkaWEvTWVkaWFLZXlTeXN0ZW1DbGllbnQu
aApAQCAtMCwwICsxLDUyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIElnYWxpYSBTLkwu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiAgUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhF
IElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorICog
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05T
RVFVRU5USUFMIERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1MgT0YgVVNF
LCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTgorICogQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTCisg
KiBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShFTkNSWVBURURfTUVESUEp
CisKKyNpbmNsdWRlIDx3dGYvQ29tcGxldGlvbkhhbmRsZXIuaD4KKworbmFtZXNwYWNlIFdlYkNv
cmUgeworCitjbGFzcyBEb2N1bWVudDsKK2NsYXNzIFBhZ2U7CitjbGFzcyBNZWRpYUtleVN5c3Rl
bVJlcXVlc3Q7CisKK2NsYXNzIE1lZGlhS2V5U3lzdGVtQ2xpZW50IHsKK3B1YmxpYzoKKyAgICB2
aXJ0dWFsIHZvaWQgcGFnZURlc3Ryb3llZCgpID0gMDsKKworICAgIHZpcnR1YWwgdm9pZCByZXF1
ZXN0TWVkaWFLZXlTeXN0ZW0oTWVkaWFLZXlTeXN0ZW1SZXF1ZXN0JikgPSAwOworICAgIHZpcnR1
YWwgdm9pZCBjYW5jZWxNZWRpYUtleVN5c3RlbVJlcXVlc3QoTWVkaWFLZXlTeXN0ZW1SZXF1ZXN0
JikgPSAwOworCitwcm90ZWN0ZWQ6CisgICAgdmlydHVhbCB+TWVkaWFLZXlTeXN0ZW1DbGllbnQo
KSA9IGRlZmF1bHQ7Cit9OworCitXRUJDT1JFX0VYUE9SVCB2b2lkIHByb3ZpZGVNZWRpYUtleVN5
c3RlbVRvKFBhZ2UqLCBNZWRpYUtleVN5c3RlbUNsaWVudCopOworCit9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoRU5DUllQVEVEX01FRElBKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9lbmNyeXB0ZWRtZWRpYS9NZWRpYUtleVN5c3RlbUNvbnRy
b2xsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9lbmNyeXB0ZWRtZWRpYS9NZWRpYUtl
eVN5c3RlbUNvbnRyb2xsZXIuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjEyMmJhODI1YzJjNzM3NjBjOWFkODNi
MDIzZGZmMGZhMDI3ZDRlNDkKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2VuY3J5cHRlZG1lZGlhL01lZGlhS2V5U3lzdGVtQ29udHJvbGxlci5jcHAKQEAgLTAsMCAr
MSw2NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBJZ2FsaWEgUy5MLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisg
KiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKKyAqIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBE
QU1BR0VTCisgKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7CisgKiBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04K
KyAqIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUworICogU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIk1lZGlhS2V5U3lzdGVtQ29udHJvbGxl
ci5oIgorCisjaWYgRU5BQkxFKEVOQ1JZUFRFRF9NRURJQSkKKworI2luY2x1ZGUgIkRPTVdpbmRv
dy5oIgorI2luY2x1ZGUgIkRvY3VtZW50LmgiCisjaW5jbHVkZSAiRnJhbWUuaCIKKyNpbmNsdWRl
ICJIVE1MSUZyYW1lRWxlbWVudC5oIgorI2luY2x1ZGUgIk1lZGlhS2V5U3lzdGVtUmVxdWVzdC5o
IgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NvbnN0IGNoYXIqIE1lZGlhS2V5U3lzdGVtQ29u
dHJvbGxlcjo6c3VwcGxlbWVudE5hbWUoKQoreworICAgIHJldHVybiAiTWVkaWFLZXlTeXN0ZW1D
b250cm9sbGVyIjsKK30KKworTWVkaWFLZXlTeXN0ZW1Db250cm9sbGVyOjpNZWRpYUtleVN5c3Rl
bUNvbnRyb2xsZXIoTWVkaWFLZXlTeXN0ZW1DbGllbnQqIGNsaWVudCkKKyAgICA6IG1fY2xpZW50
KGNsaWVudCkKK3sKK30KKworTWVkaWFLZXlTeXN0ZW1Db250cm9sbGVyOjp+TWVkaWFLZXlTeXN0
ZW1Db250cm9sbGVyKCkKK3sKKyAgICBtX2NsaWVudC0+cGFnZURlc3Ryb3llZCgpOworfQorCit2
b2lkIHByb3ZpZGVNZWRpYUtleVN5c3RlbVRvKFBhZ2UqIHBhZ2UsIE1lZGlhS2V5U3lzdGVtQ2xp
ZW50KiBjbGllbnQpCit7CisgICAgTWVkaWFLZXlTeXN0ZW1Db250cm9sbGVyOjpwcm92aWRlVG8o
cGFnZSwgTWVkaWFLZXlTeXN0ZW1Db250cm9sbGVyOjpzdXBwbGVtZW50TmFtZSgpLCBtYWtlVW5p
cXVlPE1lZGlhS2V5U3lzdGVtQ29udHJvbGxlcj4oY2xpZW50KSk7Cit9CisKK3ZvaWQgTWVkaWFL
ZXlTeXN0ZW1Db250cm9sbGVyOjpsb2dSZXF1ZXN0TWVkaWFLZXlTeXN0ZW1EZW5pYWwoRG9jdW1l
bnQmIGRvY3VtZW50KQoreworICAgIGlmIChhdXRvKiB3aW5kb3cgPSBkb2N1bWVudC5kb21XaW5k
b3coKSkKKyAgICAgICAgd2luZG93LT5wcmludEVycm9yTWVzc2FnZShtYWtlU3RyaW5nKCJOb3Qg
YWxsb3dlZCB0byBhY2Nlc3MgTWVkaWFLZXlTeXN0ZW0uIikpOworfQorCit9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoTUVESUFfU1RSRUFNKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9lbmNyeXB0ZWRtZWRpYS9NZWRpYUtleVN5c3RlbUNvbnRy
b2xsZXIuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZW5jcnlwdGVkbWVkaWEvTWVkaWFLZXlT
eXN0ZW1Db250cm9sbGVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTlhMjhhMmJiOTBlYjQ0MGM2Nzc4MDFlZjc5
YWNkOGZmYjFhYTgwMwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
ZW5jcnlwdGVkbWVkaWEvTWVkaWFLZXlTeXN0ZW1Db250cm9sbGVyLmgKQEAgLTAsMCArMSw3MCBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBJZ2FsaWEgUy5MLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09O
VFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBV
UlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
IElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKKyAqIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VT
CisgKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7CisgKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04KKyAqIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUworICogU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3By
YWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoRU5DUllQVEVEX01FRElBKQorCisjaW5jbHVkZSAiRmVh
dHVyZVBvbGljeS5oIgorI2luY2x1ZGUgIk1lZGlhS2V5U3lzdGVtQ2xpZW50LmgiCisjaW5jbHVk
ZSAiUGFnZS5oIgorI2luY2x1ZGUgPHd0Zi9Db21wbGV0aW9uSGFuZGxlci5oPgorCituYW1lc3Bh
Y2UgV2ViQ29yZSB7CisKK2NsYXNzIE1lZGlhS2V5U3lzdGVtUmVxdWVzdDsKKworY2xhc3MgTWVk
aWFLZXlTeXN0ZW1Db250cm9sbGVyIDogcHVibGljIFN1cHBsZW1lbnQ8UGFnZT4geworICAgIFdU
Rl9NQUtFX0ZBU1RfQUxMT0NBVEVEOworcHVibGljOgorICAgIGV4cGxpY2l0IE1lZGlhS2V5U3lz
dGVtQ29udHJvbGxlcihNZWRpYUtleVN5c3RlbUNsaWVudCopOworICAgIH5NZWRpYUtleVN5c3Rl
bUNvbnRyb2xsZXIoKTsKKworICAgIE1lZGlhS2V5U3lzdGVtQ2xpZW50KiBjbGllbnQoKSBjb25z
dCB7IHJldHVybiBtX2NsaWVudDsgfQorCisgICAgdm9pZCByZXF1ZXN0TWVkaWFLZXlTeXN0ZW0o
TWVkaWFLZXlTeXN0ZW1SZXF1ZXN0Jik7CisgICAgdm9pZCBjYW5jZWxNZWRpYUtleVN5c3RlbVJl
cXVlc3QoTWVkaWFLZXlTeXN0ZW1SZXF1ZXN0Jik7CisKKyAgICB2b2lkIGxvZ1JlcXVlc3RNZWRp
YUtleVN5c3RlbURlbmlhbChEb2N1bWVudCYpOworCisgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGlj
IGNvbnN0IGNoYXIqIHN1cHBsZW1lbnROYW1lKCk7CisgICAgc3RhdGljIE1lZGlhS2V5U3lzdGVt
Q29udHJvbGxlciogZnJvbShQYWdlKiBwYWdlKSB7IHJldHVybiBzdGF0aWNfY2FzdDxNZWRpYUtl
eVN5c3RlbUNvbnRyb2xsZXIqPihTdXBwbGVtZW50PFBhZ2U+Ojpmcm9tKHBhZ2UsIHN1cHBsZW1l
bnROYW1lKCkpKTsgfQorCitwcml2YXRlOgorICAgIE1lZGlhS2V5U3lzdGVtQ2xpZW50KiBtX2Ns
aWVudDsKK307CisKK2lubGluZSB2b2lkIE1lZGlhS2V5U3lzdGVtQ29udHJvbGxlcjo6cmVxdWVz
dE1lZGlhS2V5U3lzdGVtKE1lZGlhS2V5U3lzdGVtUmVxdWVzdCYgcmVxdWVzdCkKK3sKKyAgICBt
X2NsaWVudC0+cmVxdWVzdE1lZGlhS2V5U3lzdGVtKHJlcXVlc3QpOworfQorCitpbmxpbmUgdm9p
ZCBNZWRpYUtleVN5c3RlbUNvbnRyb2xsZXI6OmNhbmNlbE1lZGlhS2V5U3lzdGVtUmVxdWVzdChN
ZWRpYUtleVN5c3RlbVJlcXVlc3QmIHJlcXVlc3QpCit7CisgICAgbV9jbGllbnQtPmNhbmNlbE1l
ZGlhS2V5U3lzdGVtUmVxdWVzdChyZXF1ZXN0KTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQorCisjZW5kaWYgLy8gRU5BQkxFKEVOQ1JZUFRFRF9NRURJQSkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvZW5jcnlwdGVkbWVkaWEvTWVkaWFLZXlTeXN0ZW1SZXF1ZXN0LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZW5jcnlwdGVkbWVkaWEvTWVkaWFLZXlTeXN0ZW1S
ZXF1ZXN0LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43ZWY1M2FhNmFiNTUyZWRlNTRhNDZhMjJiNmRjMmMwZWFh
MzM5M2FjCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9lbmNyeXB0
ZWRtZWRpYS9NZWRpYUtleVN5c3RlbVJlcXVlc3QuY3BwCkBAIC0wLDAgKzEsMTI3IEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDIxIElnYWxpYSBTLkwuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAg
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRP
UlMgYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBB
UkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENP
TlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyAqIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTgorICogQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTCisgKiBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAi
Y29uZmlnLmgiCisjaW5jbHVkZSAiTWVkaWFLZXlTeXN0ZW1SZXF1ZXN0LmgiCisKKyNpZiBFTkFC
TEUoTUVESUFfU1RSRUFNKQorCisjaW5jbHVkZSAiRG9jdW1lbnQuaCIKKyNpbmNsdWRlICJGcmFt
ZS5oIgorI2luY2x1ZGUgIkpTRE9NUHJvbWlzZURlZmVycmVkLmgiCisjaW5jbHVkZSAiSlNNZWRp
YUtleVN5c3RlbUFjY2Vzcy5oIgorI2luY2x1ZGUgIkxvZ2dpbmcuaCIKKyNpbmNsdWRlICJNZWRp
YUtleVN5c3RlbUNvbnRyb2xsZXIuaCIKKyNpbmNsdWRlICJQbGF0Zm9ybU1lZGlhU2Vzc2lvbk1h
bmFnZXIuaCIKKyNpbmNsdWRlICJTZXR0aW5ncy5oIgorI2luY2x1ZGUgIldpbmRvd0V2ZW50TG9v
cC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1JlZjxNZWRpYUtleVN5c3RlbVJlcXVlc3Q+
IE1lZGlhS2V5U3lzdGVtUmVxdWVzdDo6Y3JlYXRlKERvY3VtZW50JiBkb2N1bWVudCwgY29uc3Qg
U3RyaW5nJiBrZXlTeXN0ZW0sIFJlZjxEZWZlcnJlZFByb21pc2U+JiYgcHJvbWlzZSkKK3sKKyAg
ICBhdXRvIHJlc3VsdCA9IGFkb3B0UmVmKCpuZXcgTWVkaWFLZXlTeXN0ZW1SZXF1ZXN0KGRvY3Vt
ZW50LCBrZXlTeXN0ZW0sIFdURk1vdmUocHJvbWlzZSkpKTsKKyAgICByZXN1bHQtPnN1c3BlbmRJ
Zk5lZWRlZCgpOworICAgIHJldHVybiByZXN1bHQ7Cit9CisKK01lZGlhS2V5U3lzdGVtUmVxdWVz
dDo6TWVkaWFLZXlTeXN0ZW1SZXF1ZXN0KERvY3VtZW50JiBkb2N1bWVudCwgY29uc3QgU3RyaW5n
JiBrZXlTeXN0ZW0sIFJlZjxEZWZlcnJlZFByb21pc2U+JiYgcHJvbWlzZSkKKyAgICA6IEFjdGl2
ZURPTU9iamVjdChkb2N1bWVudCkKKyAgICAsIG1fa2V5U3lzdGVtKGtleVN5c3RlbSkKKyAgICAs
IG1fcHJvbWlzZShXVEZNb3ZlKHByb21pc2UpKQoreworfQorCitNZWRpYUtleVN5c3RlbVJlcXVl
c3Q6On5NZWRpYUtleVN5c3RlbVJlcXVlc3QoKQoreworICAgIGlmIChtX2FsbG93Q29tcGxldGlv
bkhhbmRsZXIpCisgICAgICAgIG1fYWxsb3dDb21wbGV0aW9uSGFuZGxlcihXVEZNb3ZlKG1fcHJv
bWlzZSkpOworfQorCitTZWN1cml0eU9yaWdpbiogTWVkaWFLZXlTeXN0ZW1SZXF1ZXN0Ojp0b3BM
ZXZlbERvY3VtZW50T3JpZ2luKCkgY29uc3QKK3sKKyAgICBpZiAoIW1fc2NyaXB0RXhlY3V0aW9u
Q29udGV4dCkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgcmV0dXJuICZtX3NjcmlwdEV4
ZWN1dGlvbkNvbnRleHQtPnRvcE9yaWdpbigpOworfQorCit2b2lkIE1lZGlhS2V5U3lzdGVtUmVx
dWVzdDo6c3RhcnQoKQoreworICAgIEFTU0VSVChtX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQpOwor
ICAgIGlmICghbV9zY3JpcHRFeGVjdXRpb25Db250ZXh0KSB7CisgICAgICAgIGRlbnkoKTsKKyAg
ICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGF1dG8mIGRvY3VtZW50ID0gZG93bmNhc3Q8RG9j
dW1lbnQ+KCptX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQpOworICAgIGF1dG8qIGNvbnRyb2xsZXIg
PSBNZWRpYUtleVN5c3RlbUNvbnRyb2xsZXI6OmZyb20oZG9jdW1lbnQucGFnZSgpKTsKKyAgICBp
ZiAoIWNvbnRyb2xsZXIpIHsKKyAgICAgICAgZGVueSgpOworICAgICAgICByZXR1cm47CisgICAg
fQorCisgICAgY29udHJvbGxlci0+cmVxdWVzdE1lZGlhS2V5U3lzdGVtKCp0aGlzKTsKK30KKwor
dm9pZCBNZWRpYUtleVN5c3RlbVJlcXVlc3Q6OmFsbG93KENvbXBsZXRpb25IYW5kbGVyPHZvaWQo
KT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3sKKyAgICBxdWV1ZVRhc2tLZWVwaW5nT2JqZWN0QWxp
dmUoKnRoaXMsIFRhc2tTb3VyY2U6OlVzZXJJbnRlcmFjdGlvbiwgW3RoaXMsIGhhbmRsZXIgPSBX
VEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0oKSBtdXRhYmxlIHsKKyAgICAgICAgYXV0byBjb21w
bGV0aW9uSGFuZGxlciA9IFdURk1vdmUobV9hbGxvd0NvbXBsZXRpb25IYW5kbGVyKTsKKyAgICAg
ICAgY29tcGxldGlvbkhhbmRsZXIoV1RGTW92ZShtX3Byb21pc2UpKTsKKyAgICAgICAgaGFuZGxl
cigpOworICAgIH0pOworfQorCit2b2lkIE1lZGlhS2V5U3lzdGVtUmVxdWVzdDo6ZGVueShjb25z
dCBTdHJpbmcmIG1lc3NhZ2UpCit7CisgICAgaWYgKCFtX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQp
CisgICAgICAgIHJldHVybjsKKworICAgIEV4Y2VwdGlvbkNvZGUgY29kZSA9IE5vdFN1cHBvcnRl
ZEVycm9yOworICAgIGlmICghbWVzc2FnZS5pc0VtcHR5KCkpCisgICAgICAgIG1fcHJvbWlzZS0+
cmVqZWN0KGNvZGUsIG1lc3NhZ2UpOworICAgIGVsc2UKKyAgICAgICAgbV9wcm9taXNlLT5yZWpl
Y3QoY29kZSk7Cit9CisKK3ZvaWQgTWVkaWFLZXlTeXN0ZW1SZXF1ZXN0OjpzdG9wKCkKK3sKKyAg
ICBhdXRvJiBkb2N1bWVudCA9IGRvd25jYXN0PERvY3VtZW50PigqbV9zY3JpcHRFeGVjdXRpb25D
b250ZXh0KTsKKyAgICBpZiAoYXV0byogY29udHJvbGxlciA9IE1lZGlhS2V5U3lzdGVtQ29udHJv
bGxlcjo6ZnJvbShkb2N1bWVudC5wYWdlKCkpKQorICAgICAgICBjb250cm9sbGVyLT5jYW5jZWxN
ZWRpYUtleVN5c3RlbVJlcXVlc3QoKnRoaXMpOworfQorCitjb25zdCBjaGFyKiBNZWRpYUtleVN5
c3RlbVJlcXVlc3Q6OmFjdGl2ZURPTU9iamVjdE5hbWUoKSBjb25zdAoreworICAgIHJldHVybiAi
TWVkaWFLZXlTeXN0ZW1SZXF1ZXN0IjsKK30KKworRG9jdW1lbnQqIE1lZGlhS2V5U3lzdGVtUmVx
dWVzdDo6ZG9jdW1lbnQoKSBjb25zdAoreworICAgIHJldHVybiBkb3duY2FzdDxEb2N1bWVudD4o
bV9zY3JpcHRFeGVjdXRpb25Db250ZXh0KTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQor
CisjZW5kaWYgLy8gRU5BQkxFKEVOQ1JZUFRFRF9NRURJQSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvZW5jcnlwdGVkbWVkaWEvTWVkaWFLZXlTeXN0ZW1SZXF1ZXN0LmggYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2VuY3J5cHRlZG1lZGlhL01lZGlhS2V5U3lzdGVtUmVxdWVz
dC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjlmY2JlNGYxYmFiZGJjZGI3MmFkNTQ1NjY3M2ZhYmViNDYwZTJhYjcK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2VuY3J5cHRlZG1lZGlh
L01lZGlhS2V5U3lzdGVtUmVxdWVzdC5oCkBAIC0wLDAgKzEsODAgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMjEgSWdhbGlhIFMuTC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElT
JycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICogRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JT
IEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICogKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OCisgKiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICog
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFIE9GIFRISVMKKyAqIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYg
RU5BQkxFKEVOQ1JZUFRFRF9NRURJQSkKKworI2luY2x1ZGUgIkFjdGl2ZURPTU9iamVjdC5oIgor
I2luY2x1ZGUgIklETFR5cGVzLmgiCisjaW5jbHVkZSAiSlNET01Qcm9taXNlRGVmZXJyZWQuaCIK
KyNpbmNsdWRlIDx3dGYvQ29tcGxldGlvbkhhbmRsZXIuaD4KKyNpbmNsdWRlIDx3dGYvRm9yd2Fy
ZC5oPgorI2luY2x1ZGUgPHd0Zi9PYmplY3RJZGVudGlmaWVyLmg+CisjaW5jbHVkZSA8d3RmL1Vu
aXF1ZVJlZi5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFNlY3VyaXR5T3JpZ2lu
OworY2xhc3MgTWVkaWFLZXlTeXN0ZW07CisKK3RlbXBsYXRlIDx0eXBlbmFtZSBJRExUeXBlPiBj
bGFzcyBET01Qcm9taXNlRGVmZXJyZWQ7CisKK2VudW0gTWVkaWFLZXlTeXN0ZW1SZXF1ZXN0SWRl
bnRpZmllclR5cGUgeyB9OwordXNpbmcgTWVkaWFLZXlTeXN0ZW1SZXF1ZXN0SWRlbnRpZmllciA9
IE9iamVjdElkZW50aWZpZXI8TWVkaWFLZXlTeXN0ZW1SZXF1ZXN0SWRlbnRpZmllclR5cGU+Owor
CitjbGFzcyBNZWRpYUtleVN5c3RlbVJlcXVlc3QgOiBwdWJsaWMgUmVmQ291bnRlZDxNZWRpYUtl
eVN5c3RlbVJlcXVlc3Q+LCBwdWJsaWMgQWN0aXZlRE9NT2JqZWN0IHsKK3B1YmxpYzoKKyAgICBz
dGF0aWMgUmVmPE1lZGlhS2V5U3lzdGVtUmVxdWVzdD4gY3JlYXRlKERvY3VtZW50JiwgY29uc3Qg
U3RyaW5nJiBrZXlTeXN0ZW0sIFJlZjxEZWZlcnJlZFByb21pc2U+JiYpOworICAgIHZpcnR1YWwg
fk1lZGlhS2V5U3lzdGVtUmVxdWVzdCgpOworCisgICAgdm9pZCBzZXRBbGxvd0NhbGxiYWNrKENv
bXBsZXRpb25IYW5kbGVyPHZvaWQoUmVmPERlZmVycmVkUHJvbWlzZT4mJik+JiYgY2FsbGJhY2sp
IHsgbV9hbGxvd0NvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjYWxsYmFjayk7IH0KKyAgICBN
ZWRpYUtleVN5c3RlbVJlcXVlc3RJZGVudGlmaWVyIGlkZW50aWZpZXIoKSBjb25zdCB7IHJldHVy
biBtX2lkZW50aWZpZXI7IH0KKyAgICB2b2lkIHN0YXJ0KCk7CisKKyAgICBXRUJDT1JFX0VYUE9S
VCB2b2lkIGFsbG93KENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CisgICAgV0VCQ09SRV9F
WFBPUlQgdm9pZCBkZW55KGNvbnN0IFN0cmluZyYgZXJyb3JNZXNzYWdlID0gZW1wdHlTdHJpbmco
KSk7CisKKyAgICBXRUJDT1JFX0VYUE9SVCBTZWN1cml0eU9yaWdpbiogdG9wTGV2ZWxEb2N1bWVu
dE9yaWdpbigpIGNvbnN0OworICAgIFdFQkNPUkVfRVhQT1JUIERvY3VtZW50KiBkb2N1bWVudCgp
IGNvbnN0OworCisgICAgY29uc3QgU3RyaW5nIGtleVN5c3RlbSgpIGNvbnN0IHsgcmV0dXJuIG1f
a2V5U3lzdGVtOyB9CisKK3ByaXZhdGU6CisgICAgTWVkaWFLZXlTeXN0ZW1SZXF1ZXN0KERvY3Vt
ZW50JiwgY29uc3QgU3RyaW5nJiBrZXlTeXN0ZW0sIFJlZjxEZWZlcnJlZFByb21pc2U+JiYpOwor
CisgICAgdm9pZCBzdG9wKCkgZmluYWw7CisgICAgY29uc3QgY2hhciogYWN0aXZlRE9NT2JqZWN0
TmFtZSgpIGNvbnN0IGZpbmFsOworCisgICAgTWVkaWFLZXlTeXN0ZW1SZXF1ZXN0SWRlbnRpZmll
ciBtX2lkZW50aWZpZXI7CisKKyAgICBTdHJpbmcgbV9rZXlTeXN0ZW07CisgICAgUmVmPERlZmVy
cmVkUHJvbWlzZT4gbV9wcm9taXNlOworCisgICAgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChSZWY8
RGVmZXJyZWRQcm9taXNlPiYmKT4gbV9hbGxvd0NvbXBsZXRpb25IYW5kbGVyOworfTsKKworfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKEVOQ1JZUFRFRF9NRURJQSkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZW5jcnlwdGVkbWVkaWEvTmF2aWdh
dG9yRU1FLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZW5jcnlwdGVkbWVkaWEvTmF2aWdh
dG9yRU1FLmNwcAppbmRleCA2OTQ1NjRhZjNlNTkzYTY5NjE3NThmYWZkNzJhN2Q1MDQ3YTZhYzM2
Li5mYzYxMzc0ZTIxNjQxYzE2NzQxZDdlNTFkZDBlM2U3YTJkNTJiNjYyIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2VuY3J5cHRlZG1lZGlhL05hdmlnYXRvckVNRS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9lbmNyeXB0ZWRtZWRpYS9OYXZpZ2F0b3JFTUUuY3Bw
CkBAIC0zNyw2ICszNyw3IEBACiAjaW5jbHVkZSAiSlNET01Qcm9taXNlRGVmZXJyZWQuaCIKICNp
bmNsdWRlICJKU01lZGlhS2V5U3lzdGVtQWNjZXNzLmgiCiAjaW5jbHVkZSAiTG9nZ2luZy5oIgor
I2luY2x1ZGUgIk1lZGlhS2V5U3lzdGVtUmVxdWVzdC5oIgogI2luY2x1ZGUgPHd0Zi90ZXh0L1N0
cmluZ0J1aWxkZXIuaD4KIAogbmFtZXNwYWNlIFdURiB7CkBAIC05OSwyMyArMTAwLDI3IEBAIHZv
aWQgTmF2aWdhdG9yRU1FOjpyZXF1ZXN0TWVkaWFLZXlTeXN0ZW1BY2Nlc3MoTmF2aWdhdG9yJiBu
YXZpZ2F0b3IsIERvY3VtZW50JiBkCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBkb2N1
bWVudC5wb3N0VGFzayhba2V5U3lzdGVtLCBzdXBwb3J0ZWRDb25maWd1cmF0aW9ucyA9IFdURk1v
dmUoc3VwcG9ydGVkQ29uZmlndXJhdGlvbnMpLCBwcm9taXNlID0gV1RGTW92ZShwcm9taXNlKSwg
JmRvY3VtZW50LCBsb2dnZXIgPSBXVEZNb3ZlKGxvZ2dlciksIGlkZW50aWZpZXIgPSBXVEZNb3Zl
KGlkZW50aWZpZXIpXSAoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYpIG11dGFibGUgewotICAgICAg
ICAvLyAzLiBMZXQgZG9jdW1lbnQgYmUgdGhlIGNhbGxpbmcgY29udGV4dCdzIERvY3VtZW50Lgot
ICAgICAgICAvLyA0LiBMZXQgb3JpZ2luIGJlIHRoZSBvcmlnaW4gb2YgZG9jdW1lbnQuCi0gICAg
ICAgIC8vIDUuIExldCBwcm9taXNlIGJlIGEgbmV3IHByb21pc2UuCi0gICAgICAgIC8vIDYuIFJ1
biB0aGUgZm9sbG93aW5nIHN0ZXBzIGluIHBhcmFsbGVsOgotICAgICAgICAvLyA2LjEuIElmIGtl
eVN5c3RlbSBpcyBub3Qgb25lIG9mIHRoZSBLZXkgU3lzdGVtcyBzdXBwb3J0ZWQgYnkgdGhlIHVz
ZXIgYWdlbnQsIHJlamVjdCBwcm9taXNlIHdpdGggYSBOb3RTdXBwb3J0ZWRFcnJvci4KLSAgICAg
ICAgLy8gICAgICBTdHJpbmcgY29tcGFyaXNvbiBpcyBjYXNlLXNlbnNpdGl2ZS4KLSAgICAgICAg
aWYgKCFDRE06OnN1cHBvcnRzS2V5U3lzdGVtKGtleVN5c3RlbSkpIHsKLSAgICAgICAgICAgIGlu
Zm9Mb2cobG9nZ2VyLCBpZGVudGlmaWVyLCAiUmVqZWN0ZWQ6IGtleVN5c3RlbSgiLCBrZXlTeXN0
ZW0sICIpIG5vdCBzdXBwb3J0ZWQiKTsKLSAgICAgICAgICAgIHByb21pc2UtPnJlamVjdChOb3RT
dXBwb3J0ZWRFcnJvcik7Ci0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIH0KLQotICAgICAg
ICAvLyA2LjIuIExldCBpbXBsZW1lbnRhdGlvbiBiZSB0aGUgaW1wbGVtZW50YXRpb24gb2Yga2V5
U3lzdGVtLgotICAgICAgICBhdXRvIGltcGxlbWVudGF0aW9uID0gQ0RNOjpjcmVhdGUoZG9jdW1l
bnQsIGtleVN5c3RlbSk7Ci0gICAgICAgIHRyeU5leHRTdXBwb3J0ZWRDb25maWd1cmF0aW9uKFdU
Rk1vdmUoaW1wbGVtZW50YXRpb24pLCBXVEZNb3ZlKHN1cHBvcnRlZENvbmZpZ3VyYXRpb25zKSwg
V1RGTW92ZShwcm9taXNlKSwgV1RGTW92ZShsb2dnZXIpLCBXVEZNb3ZlKGlkZW50aWZpZXIpKTsK
KyAgICBhdXRvIHJlcXVlc3QgPSBNZWRpYUtleVN5c3RlbVJlcXVlc3Q6OmNyZWF0ZShkb2N1bWVu
dCwga2V5U3lzdGVtLCBXVEZNb3ZlKHByb21pc2UpKTsKKyAgICByZXF1ZXN0LT5zZXRBbGxvd0Nh
bGxiYWNrKFtrZXlTeXN0ZW0sIHN1cHBvcnRlZENvbmZpZ3VyYXRpb25zID0gV1RGTW92ZShzdXBw
b3J0ZWRDb25maWd1cmF0aW9ucyksICZkb2N1bWVudCwgbG9nZ2VyID0gV1RGTW92ZShsb2dnZXIp
LCBpZGVudGlmaWVyID0gV1RGTW92ZShpZGVudGlmaWVyKV0oUmVmPERlZmVycmVkUHJvbWlzZT4m
JiBwcm9taXNlKSBtdXRhYmxlIHsKKyAgICAgICAgZG9jdW1lbnQucG9zdFRhc2soW3Byb21pc2Ug
PSBXVEZNb3ZlKHByb21pc2UpLCAmZG9jdW1lbnQsIGtleVN5c3RlbSwgbG9nZ2VyID0gV1RGTW92
ZShsb2dnZXIpLCBpZGVudGlmaWVyID0gV1RGTW92ZShpZGVudGlmaWVyKSwgc3VwcG9ydGVkQ29u
ZmlndXJhdGlvbnMgPSBXVEZNb3ZlKHN1cHBvcnRlZENvbmZpZ3VyYXRpb25zKV0gKFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQmKSBtdXRhYmxlIHsKKyAgICAgICAgICAgIC8vIDMuIExldCBkb2N1bWVu
dCBiZSB0aGUgY2FsbGluZyBjb250ZXh0J3MgRG9jdW1lbnQuCisgICAgICAgICAgICAvLyA0LiBM
ZXQgb3JpZ2luIGJlIHRoZSBvcmlnaW4gb2YgZG9jdW1lbnQuCisgICAgICAgICAgICAvLyA1LiBM
ZXQgcHJvbWlzZSBiZSBhIG5ldyBwcm9taXNlLgorICAgICAgICAgICAgLy8gNi4gUnVuIHRoZSBm
b2xsb3dpbmcgc3RlcHMgaW4gcGFyYWxsZWw6CisgICAgICAgICAgICAvLyA2LjEuIElmIGtleVN5
c3RlbSBpcyBub3Qgb25lIG9mIHRoZSBLZXkgU3lzdGVtcyBzdXBwb3J0ZWQgYnkgdGhlIHVzZXIg
YWdlbnQsIHJlamVjdCBwcm9taXNlIHdpdGggYSBOb3RTdXBwb3J0ZWRFcnJvci4KKyAgICAgICAg
ICAgIC8vICAgICAgU3RyaW5nIGNvbXBhcmlzb24gaXMgY2FzZS1zZW5zaXRpdmUuCisgICAgICAg
ICAgICBpZiAoIUNETTo6c3VwcG9ydHNLZXlTeXN0ZW0oa2V5U3lzdGVtKSkgeworICAgICAgICAg
ICAgICAgIGluZm9Mb2cobG9nZ2VyLCBpZGVudGlmaWVyLCAiUmVqZWN0ZWQ6IGtleVN5c3RlbSgi
LCBrZXlTeXN0ZW0sICIpIG5vdCBzdXBwb3J0ZWQiKTsKKyAgICAgICAgICAgICAgICBwcm9taXNl
LT5yZWplY3QoTm90U3VwcG9ydGVkRXJyb3IpOworICAgICAgICAgICAgICAgIHJldHVybjsKKyAg
ICAgICAgICAgIH0KKworICAgICAgICAgICAgLy8gNi4yLiBMZXQgaW1wbGVtZW50YXRpb24gYmUg
dGhlIGltcGxlbWVudGF0aW9uIG9mIGtleVN5c3RlbS4KKyAgICAgICAgICAgIGF1dG8gaW1wbGVt
ZW50YXRpb24gPSBDRE06OmNyZWF0ZShkb2N1bWVudCwga2V5U3lzdGVtKTsKKyAgICAgICAgICAg
IHRyeU5leHRTdXBwb3J0ZWRDb25maWd1cmF0aW9uKFdURk1vdmUoaW1wbGVtZW50YXRpb24pLCBX
VEZNb3ZlKHN1cHBvcnRlZENvbmZpZ3VyYXRpb25zKSwgV1RGTW92ZShwcm9taXNlKSwgV1RGTW92
ZShsb2dnZXIpLCBXVEZNb3ZlKGlkZW50aWZpZXIpKTsKKyAgICAgICAgfSk7CiAgICAgfSk7Cisg
ICAgcmVxdWVzdC0+c3RhcnQoKTsKIH0KIAogc3RhdGljIHZvaWQgdHJ5TmV4dFN1cHBvcnRlZENv
bmZpZ3VyYXRpb24oUmVmUHRyPENETT4mJiBpbXBsZW1lbnRhdGlvbiwgVmVjdG9yPE1lZGlhS2V5
U3lzdGVtQ29uZmlndXJhdGlvbj4mJiBzdXBwb3J0ZWRDb25maWd1cmF0aW9ucywgUmVmUHRyPERl
ZmVycmVkUHJvbWlzZT4mJiBwcm9taXNlLCBSZWY8TG9nZ2VyPiYmIGxvZ2dlciwgV1RGOjpMb2dn
ZXI6OkxvZ1NpdGVJZGVudGlmaWVyJiYgaWRlbnRpZmllcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA1YzUwZWVlM2VjMzU0MThk
MmJjNDliZWY2MjYwOTY2ZTQ1NmY2MjhiLi44NTQxMzZhNThjMzE1ZDA1NmNmMDJhNjcyNDkzM2Q5
ZjA5ZjE2N2M0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCkBAIC0zMDQxLDYgKzMwNDEsMTEgQEAKIAkJOTlEMUIyRDMyM0FDMTQzMTAw
ODExQ0YwIC8qIEluc3BlY3RvckRlYnVnZ2FibGVUeXBlLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5OUQxQjJEMTIzQUMxNDMwMDA4MTFDRjAgLyogSW5z
cGVjdG9yRGVidWdnYWJsZVR5cGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2
YXRlLCApOyB9OyB9OwogCQk5QTUyOEU4NDE3RDdGNTJGMDBBQTk1MTggLyogRmxvYXRpbmdPYmpl
Y3RzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5QTUy
OEU4MjE3RDdGNTJGMDBBQTk1MTggLyogRmxvYXRpbmdPYmplY3RzLmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJOUFCMUYzODAxOEUyNDg5QTAwNTM0
NzQzIC8qIENTU1RvTGVuZ3RoQ29udmVyc2lvbkRhdGEuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDlBQjFGMzdFMThFMjQ4OUEwMDUzNDc0MyAvKiBDU1NU
b0xlbmd0aENvbnZlcnNpb25EYXRhLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKKwkJOUFDQzA3OTYyNUM3MjVFRTAwREM2Mzg2IC8qIE1lZGlhS2V5U3lz
dGVtUmVxdWVzdC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA5QUNDMDc5NDI1QzcyNUVEMDBEQzYzODYgLyogTWVkaWFLZXlTeXN0ZW1SZXF1ZXN0LmNw
cCAqLzsgfTsKKwkJOUFDQzA3OTgyNUM3MjY3NzAwREM2Mzg2IC8qIE1lZGlhS2V5U3lzdGVtQ29u
dHJvbGxlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA5QUNDMDc5NzI1QzcyNjc2MDBEQzYzODYgLyogTWVkaWFLZXlTeXN0ZW1Db250cm9sbGVyLmNw
cCAqLzsgfTsKKwkJOUFDQzA3QTYyNUM4MTBERjAwREM2Mzg2IC8qIE1lZGlhS2V5U3lzdGVtUmVx
dWVzdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOUFD
QzA3QTUyNUM4MTBERjAwREM2Mzg2IC8qIE1lZGlhS2V5U3lzdGVtUmVxdWVzdC5oICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTlBQ0MwN0E4MjVDODEx
MEQwMERDNjM4NiAvKiBNZWRpYUtleVN5c3RlbUNsaWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOUFDQzA3QTcyNUM4MTEwRDAwREM2Mzg2IC8qIE1l
ZGlhS2V5U3lzdGVtQ2xpZW50LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0
ZSwgKTsgfTsgfTsKKwkJOUFDQzA3QUYyNUM4MTQxRDAwREM2Mzg2IC8qIE1lZGlhS2V5U3lzdGVt
Q29udHJvbGxlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gOUFDQzA3QUUyNUM4MTQxQzAwREM2Mzg2IC8qIE1lZGlhS2V5U3lzdGVtQ29udHJvbGxlci5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTlCMDJF
MEM4MjM1RUFEMkEwMDQwNDRCMiAvKiBUZXh0TWFuaXB1bGF0aW9uQ29udHJvbGxlci5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOUIwMkUwQzMyMzVFNzZB
QTAwNDA0NEIyIC8qIFRleHRNYW5pcHVsYXRpb25Db250cm9sbGVyLmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJOUIwQUJDQUUyMzZCQjQzMTAwQjQ1
MDg1IC8qIFRhc2tTb3VyY2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDlCMEFCQ0FDMjM2QkI0MEEwMEI0NTA4NSAvKiBUYXNrU291cmNlLmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJOUIxMjI5QzQyM0ZF
NEJEMjAwOENBNzUxIC8qIEF1ZGlvRGVzdGluYXRpb25Db2NvYS5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDEzMTUxODYyMzU3NzQ1RTAwMTE1RTZFIC8q
IEF1ZGlvRGVzdGluYXRpb25Db2NvYS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFBy
aXZhdGUsICk7IH07IH07CkBAIC0xMjAwMCw2ICsxMjAwNSwxMSBAQAogCQk5QUM2RjAyNTIxMTQ4
RjU0MDBDQkRBMDYgLyogTWVkaWFFbmdpbmVDb25maWd1cmF0aW9uRmFjdG9yeS5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBNZWRpYUVuZ2luZUNvbmZpZ3VyYXRpb25GYWN0b3J5
Lmg7IHBhdGggPSBtZWRpYWNhcGFiaWxpdGllcy9NZWRpYUVuZ2luZUNvbmZpZ3VyYXRpb25GYWN0
b3J5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTlBQzZGMDJEMjExNDhGOUYwMENC
REEwNiAvKiBNZWRpYUVuZ2luZUNvbmZpZ3VyYXRpb25GYWN0b3J5TW9jay5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBNZWRpYUVuZ2luZUNvbmZpZ3VyYXRpb25GYWN0
b3J5TW9jay5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTlBQzZGMDJGMjExNDhG
QTIwMENCREEwNiAvKiBNZWRpYUVuZ2luZUNvbmZpZ3VyYXRpb25GYWN0b3J5TW9jay5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBNZWRpYUVuZ2luZUNvbmZpZ3VyYXRpb25GYWN0
b3J5TW9jay5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5QUNDMDc5NDI1QzcyNUVE
MDBEQzYzODYgLyogTWVkaWFLZXlTeXN0ZW1SZXF1ZXN0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IE1lZGlhS2V5U3lzdGVtUmVxdWVzdC5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCTlBQ0MwNzk3MjVDNzI2NzYwMERDNjM4NiAvKiBNZWRpYUtleVN5
c3RlbUNvbnRyb2xsZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
TWVkaWFLZXlTeXN0ZW1Db250cm9sbGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJOUFDQzA3QTUyNUM4MTBERjAwREM2Mzg2IC8qIE1lZGlhS2V5U3lzdGVtUmVxdWVzdC5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBNZWRpYUtleVN5c3RlbVJlcXVlc3QuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOUFDQzA3QTcyNUM4MTEwRDAwREM2Mzg2IC8q
IE1lZGlhS2V5U3lzdGVtQ2xpZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IE1lZGlhS2V5U3lzdGVtQ2xpZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTlB
Q0MwN0FFMjVDODE0MUMwMERDNjM4NiAvKiBNZWRpYUtleVN5c3RlbUNvbnRyb2xsZXIuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTWVkaWFLZXlTeXN0ZW1Db250cm9sbGVyLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTlCMDJFMEMzMjM1RTc2QUEwMDQwNDRCMiAv
KiBUZXh0TWFuaXB1bGF0aW9uQ29udHJvbGxlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBUZXh0TWFuaXB1
bGF0aW9uQ29udHJvbGxlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5QjAyRTBD
NDIzNUU3NkFBMDA0MDQ0QjIgLyogVGV4dE1hbmlwdWxhdGlvbkNvbnRyb2xsZXIuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gVGV4dE1hbmlwdWxhdGlvbkNvbnRyb2xsZXIuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk5QjAzRDgwNjFCQjMxMTBEMDBCNzNGNjQgLyogUmVhZGFibGVC
eXRlU3RyZWFtSW50ZXJuYWxzQnVpbHRpbnMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBu
YW1lID0gUmVhZGFibGVCeXRlU3RyZWFtSW50ZXJuYWxzQnVpbHRpbnMuaDsgcGF0aCA9IERlcml2
ZWRTb3VyY2VzL1dlYkNvcmUvUmVhZGFibGVCeXRlU3RyZWFtSW50ZXJuYWxzQnVpbHRpbnMuaDsg
c291cmNlVHJlZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsgfTsKQEAgLTI4MDQ2LDEwICsyODA1Niwx
NSBAQAogCQkJCTJEOUJGNzNDMURCRkRDMEYwMDdBN0Q5OSAvKiBNZWRpYUtleVN5c3RlbUFjY2Vz
cy5jcHAgKi8sCiAJCQkJMkQ5QkY3M0QxREJGREMwRjAwN0E3RDk5IC8qIE1lZGlhS2V5U3lzdGVt
QWNjZXNzLmggKi8sCiAJCQkJMkQ5QkY2RjkxREJGQjcxRjAwN0E3RDk5IC8qIE1lZGlhS2V5U3lz
dGVtQWNjZXNzLmlkbCAqLywKKwkJCQk5QUNDMDdBNzI1QzgxMTBEMDBEQzYzODYgLyogTWVkaWFL
ZXlTeXN0ZW1DbGllbnQuaCAqLywKIAkJCQkyRDlCRjczRTFEQkZEQzBGMDA3QTdEOTkgLyogTWVk
aWFLZXlTeXN0ZW1Db25maWd1cmF0aW9uLmggKi8sCiAJCQkJMkQ5QkY2RkExREJGQjcxRjAwN0E3
RDk5IC8qIE1lZGlhS2V5U3lzdGVtQ29uZmlndXJhdGlvbi5pZGwgKi8sCisJCQkJOUFDQzA3OTcy
NUM3MjY3NjAwREM2Mzg2IC8qIE1lZGlhS2V5U3lzdGVtQ29udHJvbGxlci5jcHAgKi8sCisJCQkJ
OUFDQzA3QUUyNUM4MTQxQzAwREM2Mzg2IC8qIE1lZGlhS2V5U3lzdGVtQ29udHJvbGxlci5oICov
LAogCQkJCTJEOUJGNzNGMURCRkRDMEYwMDdBN0Q5OSAvKiBNZWRpYUtleVN5c3RlbU1lZGlhQ2Fw
YWJpbGl0eS5oICovLAogCQkJCTJEOUJGNkZCMURCRkI3MUYwMDdBN0Q5OSAvKiBNZWRpYUtleVN5
c3RlbU1lZGlhQ2FwYWJpbGl0eS5pZGwgKi8sCisJCQkJOUFDQzA3OTQyNUM3MjVFRDAwREM2Mzg2
IC8qIE1lZGlhS2V5U3lzdGVtUmVxdWVzdC5jcHAgKi8sCisJCQkJOUFDQzA3QTUyNUM4MTBERjAw
REM2Mzg2IC8qIE1lZGlhS2V5U3lzdGVtUmVxdWVzdC5oICovLAogCQkJCTJEOUJGNkZDMURCRkI3
MUYwMDdBN0Q5OSAvKiBOYXZpZ2F0b3IrRU1FLmlkbCAqLywKIAkJCQkyRDlCRjc0MDFEQkZEQzBG
MDA3QTdEOTkgLyogTmF2aWdhdG9yRU1FLmNwcCAqLywKIAkJCQkyRDlCRjc0MTFEQkZEQzBGMDA3
QTdEOTkgLyogTmF2aWdhdG9yRU1FLmggKi8sCkBAIC0zMzY5Nyw2ICszMzcxMiw5IEBACiAJCQkJ
Q0RGNEI3MUExRTAxRDNEMDAwRTIzNUEyIC8qIE1lZGlhS2V5U2Vzc2lvblR5cGUuaWRsIGluIEhl
YWRlcnMgKi8sCiAJCQkJQ0RGNEI3MjgxRTAzQzU3MzAwRTIzNUEyIC8qIE1lZGlhS2V5c1JlcXVp
cmVtZW50LmlkbCBpbiBIZWFkZXJzICovLAogCQkJCUNERjRCNzE4MUUwMUNCOTEwMEUyMzVBMiAv
KiBNZWRpYUtleXNSZXN0cmljdGlvbnMuaCBpbiBIZWFkZXJzICovLAorCQkJCTlBQ0MwN0E4MjVD
ODExMEQwMERDNjM4NiAvKiBNZWRpYUtleVN5c3RlbUNsaWVudC5oIGluIEhlYWRlcnMgKi8sCisJ
CQkJOUFDQzA3QUYyNUM4MTQxRDAwREM2Mzg2IC8qIE1lZGlhS2V5U3lzdGVtQ29udHJvbGxlci5o
IGluIEhlYWRlcnMgKi8sCisJCQkJOUFDQzA3QTYyNUM4MTBERjAwREM2Mzg2IC8qIE1lZGlhS2V5
U3lzdGVtUmVxdWVzdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQThFQTgwMEUwQTE5NTE2RTAwQThF
RjVGIC8qIE1lZGlhTGlzdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNUVCQjg5MzExQzc3NzdGRjAw
QzY1RDQxIC8qIE1lZGlhUGF5bG9hZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMDdFM0RGRDExQTlF
Nzg2NTAwNzY0Q0E4IC8qIE1lZGlhUGxheWJhY2tUYXJnZXQuaCBpbiBIZWFkZXJzICovLApAQCAt
MzYwNTAsNiArMzYwNjgsOCBAQAogCQkJCTJEOUJGNzQ1MURCRkRDNDQwMDdBN0Q5OSAvKiBNZWRp
YUtleVNlc3Npb24uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMkQ5QkY3NDQxREJGREM0MTAwN0E3
RDk5IC8qIE1lZGlhS2V5U3RhdHVzTWFwLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTJEOUJGNzQz
MURCRkRDM0UwMDdBN0Q5OSAvKiBNZWRpYUtleVN5c3RlbUFjY2Vzcy5jcHAgaW4gU291cmNlcyAq
LywKKwkJCQk5QUNDMDc5ODI1QzcyNjc3MDBEQzYzODYgLyogTWVkaWFLZXlTeXN0ZW1Db250cm9s
bGVyLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTlBQ0MwNzk2MjVDNzI1RUUwMERDNjM4NiAvKiBN
ZWRpYUtleVN5c3RlbVJlcXVlc3QuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMDcxRTQ5NkUxQUQ1
QUEwRDAwOEE1MEI0IC8qIE1lZGlhUGxheWJhY2tUYXJnZXRDb2NvYS5tbSBpbiBTb3VyY2VzICov
LAogCQkJCTA3OEU0M0RFMUFCQjZGNkYwMDFDMkZBNiAvKiBNZWRpYVBsYXliYWNrVGFyZ2V0UGlj
a2VyTWFjLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJMDcyQzhCMTExMzFDNTE4NjAwQTRGQ0U5IC8q
IE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbi5jcHAgaW4gU291cmNlcyAqLywKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvV2ViS2l0L0NNYWtl
TGlzdHMudHh0CmluZGV4IGNiY2E4ZDMzODhjNTgyOWI3NDI3MjJlNzQ5OWY5MzY5ZmIzYzMwODUu
LjQ2ZWMwYzU0Y2M0NGQxYjNiYmRjZTA5NjJmMjcxMzA1ODA1YTg3MjkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYktpdC9DTWFrZUxpc3Rz
LnR4dApAQCAtNzUsNiArNzUsNyBAQCBzZXQoV2ViS2l0X0lOQ0xVREVfRElSRUNUT1JJRVMKICAg
ICAiJHtXRUJLSVRfRElSfS9XZWJQcm9jZXNzL0NhY2hlIgogICAgICIke1dFQktJVF9ESVJ9L1dl
YlByb2Nlc3MvRGF0YWJhc2VzIgogICAgICIke1dFQktJVF9ESVJ9L1dlYlByb2Nlc3MvRGF0YWJh
c2VzL0luZGV4ZWREQiIKKyAgICAiJHtXRUJLSVRfRElSfS9XZWJQcm9jZXNzL0VuY3J5cHRlZE1l
ZGlhIgogICAgICIke1dFQktJVF9ESVJ9L1dlYlByb2Nlc3MvRmlsZUFQSSIKICAgICAiJHtXRUJL
SVRfRElSfS9XZWJQcm9jZXNzL0Z1bGxTY3JlZW4iCiAgICAgIiR7V0VCS0lUX0RJUn0vV2ViUHJv
Y2Vzcy9HYW1lcGFkIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9IZWFkZXJzLmNtYWtlIGIv
U291cmNlL1dlYktpdC9IZWFkZXJzLmNtYWtlCmluZGV4IDIxMzA0ZGEzMGQ3ODgyNTQzNjUyMjdh
YTZiMzZmMGU3NmY2OTBlZjQuLjM0NmM4YTYzYTdiN2FlNDk3YTFiZWUyNGQ3ZjgwOGIwZmE4Y2U0
YTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvSGVhZGVycy5jbWFrZQorKysgYi9Tb3VyY2Uv
V2ViS2l0L0hlYWRlcnMuY21ha2UKQEAgLTYyLDYgKzYyLDcgQEAgc2V0KFdlYktpdF9QVUJMSUNf
RlJBTUVXT1JLX0hFQURFUlMKICAgICBVSVByb2Nlc3MvQVBJL0MvV0tJY29uRGF0YWJhc2UuaAog
ICAgIFVJUHJvY2Vzcy9BUEkvQy9XS0luc3BlY3Rvci5oCiAgICAgVUlQcm9jZXNzL0FQSS9DL1dL
TGF5b3V0TW9kZS5oCisgICAgVUlQcm9jZXNzL0FQSS9DL1dLTWVkaWFLZXlTeXN0ZW1QZXJtaXNz
aW9uQ2FsbGJhY2suaAogICAgIFVJUHJvY2Vzcy9BUEkvQy9XS01lc3NhZ2VMaXN0ZW5lci5oCiAg
ICAgVUlQcm9jZXNzL0FQSS9DL1dLTW9ja0Rpc3BsYXkuaAogICAgIFVJUHJvY2Vzcy9BUEkvQy9X
S01vY2tNZWRpYURldmljZS5oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL0xv
Z2dpbmcuaCBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vTG9nZ2luZy5oCmluZGV4IGY0OWYzOGI2
YTVmOWQzZDcwOTUyZDJlMTIxYzg5OTVkZWNlOThlYWEuLjA2NmYwNjVmZTNlM2FlYzRhMDc5ODY4
MTkzZGFlOGEwYjA3Nzc1YjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vTG9n
Z2luZy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vTG9nZ2luZy5oCkBAIC01Miw2ICs1
Miw3IEBAIGV4dGVybiAiQyIgewogICAgIE0oQ29udGV4dE1lbnUpIFwKICAgICBNKERpc2tQZXJz
aXN0ZW5jeSkgXAogICAgIE0oRHJhZ0FuZERyb3ApIFwKKyAgICBNKEVNRSkgXAogICAgIE0oRnVs
bHNjcmVlbikgXAogICAgIE0oR2FtZXBhZCkgXAogICAgIE0oSVBDKSBcCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1BsYXRmb3JtR1RLLmNtYWtlIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybUdU
Sy5jbWFrZQppbmRleCAzMjBiMTE2YjFkOGEzM2E3ZDU0N2M3Y2Y2MTkwNzU2NzYxNDczNzcyLi45
YThlMGZhODk3OGY2YjJhZTg4Nzg1MzYzNGE5Y2NkNjdkNzUxODcxIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1BsYXRmb3JtR1RLLmNtYWtlCisrKyBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm1H
VEsuY21ha2UKQEAgLTExOSw2ICsxMTksNyBAQCBzZXQoV2ViS2l0MkdUS19JTlNUQUxMRURfSEVB
REVSUwogICAgICR7V0VCS0lUX0RJUn0vVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0SGl0VGVzdFJl
c3VsdC5oCiAgICAgJHtXRUJLSVRfRElSfS9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRJbnN0YWxs
TWlzc2luZ01lZGlhUGx1Z2luc1Blcm1pc3Npb25SZXF1ZXN0LmgKICAgICAke1dFQktJVF9ESVJ9
L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdEphdmFzY3JpcHRSZXN1bHQuaAorICAgICR7V0VCS0lU
X0RJUn0vVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0TWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVx
dWVzdC5oCiAgICAgJHtXRUJLSVRfRElSfS9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRNaW1lSW5m
by5oCiAgICAgJHtXRUJLSVRfRElSfS9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXROYXZpZ2F0aW9u
QWN0aW9uLmgKICAgICAke1dFQktJVF9ESVJ9L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdE5hdmln
YXRpb25Qb2xpY3lEZWNpc2lvbi5oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1BsYXRmb3Jt
V1BFLmNtYWtlIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybVdQRS5jbWFrZQppbmRleCBjNDQxZTZh
YWJmNDJjOWQ1YWVjY2NkOTYxZGI0MDEwN2M0ODdiZDQwLi5mNDVjNTMxYTA5YmNiNThkYWFmOWZm
NWE5ODRmYzFjNjExMWM1OTc5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtV1BF
LmNtYWtlCisrKyBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm1XUEUuY21ha2UKQEAgLTEzMiw2ICsx
MzIsNyBAQCBzZXQoV1BFX0FQSV9JTlNUQUxMRURfSEVBREVSUwogICAgICR7V0VCS0lUX0RJUn0v
VUlQcm9jZXNzL0FQSS93cGUvV2ViS2l0SW5wdXRNZXRob2RDb250ZXh0LmgKICAgICAke1dFQktJ
VF9ESVJ9L1VJUHJvY2Vzcy9BUEkvd3BlL1dlYktpdEluc3RhbGxNaXNzaW5nTWVkaWFQbHVnaW5z
UGVybWlzc2lvblJlcXVlc3QuaAogICAgICR7V0VCS0lUX0RJUn0vVUlQcm9jZXNzL0FQSS93cGUv
V2ViS2l0SmF2YXNjcmlwdFJlc3VsdC5oCisgICAgJHtXRUJLSVRfRElSfS9VSVByb2Nlc3MvQVBJ
L3dwZS9XZWJLaXRNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0LmgKICAgICAke1dFQktJ
VF9ESVJ9L1VJUHJvY2Vzcy9BUEkvd3BlL1dlYktpdE1pbWVJbmZvLmgKICAgICAke1dFQktJVF9E
SVJ9L1VJUHJvY2Vzcy9BUEkvd3BlL1dlYktpdE5hdmlnYXRpb25BY3Rpb24uaAogICAgICR7V0VC
S0lUX0RJUn0vVUlQcm9jZXNzL0FQSS93cGUvV2ViS2l0TmF2aWdhdGlvblBvbGljeURlY2lzaW9u
LmgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0FQSS9BUElPYmplY3QuaCBiL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL0FQSS9BUElPYmplY3QuaAppbmRleCAwNTU2OTM0M2EwZGMzYWFk
NmMyZDMzNDAzZThlMjliYTg2ZmU0Y2FiLi40NmM3NzNlZTM4Y2QzMDY3NWI2ZThiMTYyNWY5NzUz
MDc5M2IxNmJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BUEkvQVBJT2JqZWN0
LmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvQVBJL0FQSU9iamVjdC5oCkBAIC0xODksNiAr
MTg5LDggQEAgcHVibGljOgogICAgICAgICBXZWJBdXRoZW50aWNhdGlvblBhbmVsLAogI2VuZGlm
CiAKKyAgICAgICAgTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uQ2FsbGJhY2ssCisKICAgICAgICAg
Ly8gQnVuZGxlIHR5cGVzCiAgICAgICAgIEJ1bmRsZSwKICAgICAgICAgQnVuZGxlQmFja0Zvcndh
cmRMaXN0LApAQCAtNDM4LDYgKzQ0MCw4IEBAIHRlbXBsYXRlPD4gc3RydWN0IEVudW1UcmFpdHM8
QVBJOjpPYmplY3Q6OlR5cGU+IHsKICAgICAgICAgQVBJOjpPYmplY3Q6OlR5cGU6OldlYkF1dGhl
bnRpY2F0aW9uUGFuZWwsCiAjZW5kaWYKIAorICAgICAgICBBUEk6Ok9iamVjdDo6VHlwZTo6TWVk
aWFLZXlTeXN0ZW1QZXJtaXNzaW9uQ2FsbGJhY2ssCisKICAgICAgICAgLy8gQnVuZGxlIHR5cGVz
CiAgICAgICAgIEFQSTo6T2JqZWN0OjpUeXBlOjpCdW5kbGUsCiAgICAgICAgIEFQSTo6T2JqZWN0
OjpUeXBlOjpCdW5kbGVCYWNrRm9yd2FyZExpc3QsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1NoYXJlZC9BUEkvYy9XS0Jhc2UuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0FQSS9jL1dLQmFz
ZS5oCmluZGV4IDg0ZWU2YzI4OGY2ZDJlYmQ1MWZhNzNlYTcyNzA4ZjMyOTQ2YmRkODUuLjdjOGJk
MjM5MjRjNGFiNzExNTRmNWNhYzdlNzNjYzczZDM5NDU4YzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL0FQSS9jL1dLQmFzZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0FQ
SS9jL1dLQmFzZS5oCkBAIC0xNDIsNiArMTQyLDggQEAgdHlwZWRlZiBjb25zdCBzdHJ1Y3QgT3Bh
cXVlV0tXZWJzaXRlRGF0YVN0b3JlKiBXS1dlYnNpdGVEYXRhU3RvcmVSZWY7CiB0eXBlZGVmIGNv
bnN0IHN0cnVjdCBPcGFxdWVXS1dlYnNpdGVQb2xpY2llcyogV0tXZWJzaXRlUG9saWNpZXNSZWY7
CiB0eXBlZGVmIGNvbnN0IHN0cnVjdCBPcGFxdWVXS1dpbmRvd0ZlYXR1cmVzKiBXS1dpbmRvd0Zl
YXR1cmVzUmVmOwogdHlwZWRlZiBjb25zdCBzdHJ1Y3QgT3BhcXVlV0tTcGVlY2hSZWNvZ25pdGlv
blBlcm1pc3Npb25DYWxsYmFjayogV0tTcGVlY2hSZWNvZ25pdGlvblBlcm1pc3Npb25DYWxsYmFj
a1JlZjsKK3R5cGVkZWYgY29uc3Qgc3RydWN0IE9wYXF1ZVdLTWVkaWFLZXlTeXN0ZW1QZXJtaXNz
aW9uUmVxdWVzdCogV0tNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0UmVmOwordHlwZWRl
ZiBjb25zdCBzdHJ1Y3QgT3BhcXVlV0tNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25DYWxsYmFjayog
V0tNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25DYWxsYmFja1JlZjsKIAogLyogV2ViS2l0MiBCdW5k
bGUgdHlwZXMgKi8KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9Tb3VyY2VzLnR4dCBiL1Nv
dXJjZS9XZWJLaXQvU291cmNlcy50eHQKaW5kZXggN2Y0MDhiYzQ2MTBjMTA1NDkxZDViMDY0MWY4
YjcwZjNhZjkxYjA0My4uNDNhYTJiN2Q1NzYyYzU4ZDk0N2UyMWVmNGJjNzI1MDQ1OTk3MWQwMSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9Tb3VyY2VzLnR4dAorKysgYi9Tb3VyY2UvV2ViS2l0
L1NvdXJjZXMudHh0CkBAIC0yODUsNiArMjg1LDggQEAgVUlQcm9jZXNzL0ZyYW1lTG9hZFN0YXRl
LmNwcAogVUlQcm9jZXNzL0dlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHku
Y3BwCiBVSVByb2Nlc3MvR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdFByb3h5LmNwcAogVUlQ
cm9jZXNzL0xlZ2FjeUdsb2JhbFNldHRpbmdzLmNwcAorVUlQcm9jZXNzL01lZGlhS2V5U3lzdGVt
UGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuY3BwCitVSVByb2Nlc3MvTWVkaWFLZXlTeXN0
ZW1QZXJtaXNzaW9uUmVxdWVzdFByb3h5LmNwcAogVUlQcm9jZXNzL1BhZ2VMb2FkU3RhdGUuY3Bw
CiBVSVByb2Nlc3MvUHJvY2Vzc0Fzc2VydGlvbi5jcHAKIFVJUHJvY2Vzcy9Qcm9jZXNzVGhyb3R0
bGVyLmNwcApAQCAtMzkxLDYgKzM5Myw3IEBAIFVJUHJvY2Vzcy9BUEkvQy9XS0hpdFRlc3RSZXN1
bHQuY3BwCiBVSVByb2Nlc3MvQVBJL0MvV0tJY29uRGF0YWJhc2UuY3BwCiBVSVByb2Nlc3MvQVBJ
L0MvV0tJbnNwZWN0b3IuY3BwCiBVSVByb2Nlc3MvQVBJL0MvV0tLZXlWYWx1ZVN0b3JhZ2VNYW5h
Z2VyLmNwcAorVUlQcm9jZXNzL0FQSS9DL1dLTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uQ2FsbGJh
Y2suY3BwCiBVSVByb2Nlc3MvQVBJL0MvV0tNZXNzYWdlTGlzdGVuZXIuY3BwCiBVSVByb2Nlc3Mv
QVBJL0MvV0tNb2NrRGlzcGxheS5jcHAKIFVJUHJvY2Vzcy9BUEkvQy9XS01vY2tNZWRpYURldmlj
ZS5jcHAKQEAgLTUxMSw2ICs1MTQsOCBAQCBXZWJQcm9jZXNzL0RhdGFiYXNlcy9XZWJEYXRhYmFz
ZVByb3ZpZGVyLmNwcAogCiBXZWJQcm9jZXNzL0RhdGFiYXNlcy9JbmRleGVkREIvV2ViSURCQ29u
bmVjdGlvblRvU2VydmVyLmNwcAogCitXZWJQcm9jZXNzL0VuY3J5cHRlZE1lZGlhL01lZGlhS2V5
U3lzdGVtUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyLmNwcAorCiBXZWJQcm9jZXNzL0ZpbGVBUEkv
QmxvYlJlZ2lzdHJ5UHJveHkuY3BwCiAKIFdlYlByb2Nlc3MvRnVsbFNjcmVlbi9XZWJGdWxsU2Ny
ZWVuTWFuYWdlci5jcHAKQEAgLTY2NSw2ICs2NzAsNyBAQCBXZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L1dlYkRyYWdDbGllbnQuY3BwCiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRv
ckNsaWVudC5jcHAKIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGll
bnQuY3BwCiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkdlb2xvY2F0aW9uQ2xpZW50LmNw
cAorV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJNZWRpYUtleVN5c3RlbUNsaWVudC5jcHAK
IFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViTWVzc2FnZVBvcnRDaGFubmVsUHJvdmlkZXIu
Y3BwCiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYk5vdGlmaWNhdGlvbkNsaWVudC5jcHAK
IFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViUGVyZm9ybWFuY2VMb2dnaW5nQ2xpZW50LmNw
cApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9Tb3VyY2VzR1RLLnR4dCBiL1NvdXJjZS9XZWJL
aXQvU291cmNlc0dUSy50eHQKaW5kZXggNWQ1YjAzYjJlNWVlNGRhNGNjMmI0YzJkZTA0YjgwZDlk
ZTBjZWFiYi4uNTZiZGZmYTZmYTVlNDExMWI1MGUwNDgzMDFiZGUzMTExYzY5NGFjNSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9Tb3VyY2VzR1RLLnR4dAorKysgYi9Tb3VyY2UvV2ViS2l0L1Nv
dXJjZXNHVEsudHh0CkBAIC0xNDYsNiArMTQ2LDcgQEAgVUlQcm9jZXNzL0FQSS9nbGliL1dlYktp
dEluamVjdGVkQnVuZGxlQ2xpZW50LmNwcCBAbm8tdW5pZnkKIFVJUHJvY2Vzcy9BUEkvZ2xpYi9X
ZWJLaXRJbnB1dE1ldGhvZENvbnRleHQuY3BwIEBuby11bmlmeQogVUlQcm9jZXNzL0FQSS9nbGli
L1dlYktpdEluc3RhbGxNaXNzaW5nTWVkaWFQbHVnaW5zUGVybWlzc2lvblJlcXVlc3QuY3BwIEBu
by11bmlmeQogVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdEphdmFzY3JpcHRSZXN1bHQuY3BwIEBu
by11bmlmeQorVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdE1lZGlhS2V5U3lzdGVtUGVybWlzc2lv
blJlcXVlc3QuY3BwIEBuby11bmlmeQogVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdE1pbWVJbmZv
LmNwcCBAbm8tdW5pZnkKIFVJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXROYXZpZ2F0aW9uQWN0aW9u
LmNwcCBAbm8tdW5pZnkKIFVJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXROYXZpZ2F0aW9uQ2xpZW50
LmNwcCBAbm8tdW5pZnkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU291cmNlc1dQRS50eHQg
Yi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNXUEUudHh0CmluZGV4IGM2NzY3MDc0Y2RiODRiYWNkMWM5
MWRjOTUxMjhjZDY1NjZkYTJjZTEuLmMyZTE3NDU4NDkwNzUzNzE4NjQ3ZTRjMGUwMjYzOWU4Njdh
OWFiZDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU291cmNlc1dQRS50eHQKKysrIGIvU291
cmNlL1dlYktpdC9Tb3VyY2VzV1BFLnR4dApAQCAtMTM3LDYgKzEzNyw3IEBAIFVJUHJvY2Vzcy9B
UEkvZ2xpYi9XZWJLaXRJbmplY3RlZEJ1bmRsZUNsaWVudC5jcHAgQG5vLXVuaWZ5CiBVSVByb2Nl
c3MvQVBJL2dsaWIvV2ViS2l0SW5wdXRNZXRob2RDb250ZXh0LmNwcCBAbm8tdW5pZnkKIFVJUHJv
Y2Vzcy9BUEkvZ2xpYi9XZWJLaXRJbnN0YWxsTWlzc2luZ01lZGlhUGx1Z2luc1Blcm1pc3Npb25S
ZXF1ZXN0LmNwcCBAbm8tdW5pZnkKIFVJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRKYXZhc2NyaXB0
UmVzdWx0LmNwcCBAbm8tdW5pZnkKK1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRNZWRpYUtleVN5
c3RlbVBlcm1pc3Npb25SZXF1ZXN0LmNwcCBAbm8tdW5pZnkKIFVJUHJvY2Vzcy9BUEkvZ2xpYi9X
ZWJLaXRNaW1lSW5mby5jcHAgQG5vLXVuaWZ5CiBVSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0TmF2
aWdhdGlvbkFjdGlvbi5jcHAgQG5vLXVuaWZ5CiBVSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0TmF2
aWdhdGlvbkNsaWVudC5jcHAgQG5vLXVuaWZ5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvQVBJVUlDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9B
UElVSUNsaWVudC5oCmluZGV4IGIxN2I1YTE5NjJiYzlmZGU2YmY4ZjA1NWQ0YjRhZTllMTdlYjg0
ZGUuLjE2MzY3ZTZjYWM4MjVhYTljNzRmYjRjNDg0M2RkMmYxZmYxZGFkMzggMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElVSUNsaWVudC5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElVSUNsaWVudC5oCkBAIC0yMDUsNiArMjA1LDkgQEAgcHVi
bGljOgogICAgIHZpcnR1YWwgdm9pZCBkaWREaXNhYmxlSW5zcGVjdG9yQnJvd3NlckRvbWFpbihX
ZWJLaXQ6OldlYlBhZ2VQcm94eSYpIHsgfQogCiAgICAgdmlydHVhbCB2b2lkIGRlY2lkZVBvbGlj
eUZvclNwZWVjaFJlY29nbml0aW9uUGVybWlzc2lvblJlcXVlc3QoV2ViS2l0OjpXZWJQYWdlUHJv
eHkmIHBhZ2UsIEFQSTo6U2VjdXJpdHlPcmlnaW4mIG9yaWdpbiwgQ29tcGxldGlvbkhhbmRsZXI8
dm9pZChib29sKT4mJiBjb21wbGV0aW9uSGFuZGxlcikgeyBwYWdlLnJlcXVlc3RTcGVlY2hSZWNv
Z25pdGlvblBlcm1pc3Npb25CeURlZmF1bHRBY3Rpb24ob3JpZ2luLnNlY3VyaXR5T3JpZ2luKCks
IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsgfQorCisgICAgdmlydHVhbCB2b2lkIGRlY2lk
ZVBvbGljeUZvck1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3QoV2ViS2l0OjpXZWJQYWdl
UHJveHkmIHBhZ2UsIEFQSTo6U2VjdXJpdHlPcmlnaW4mIG9yaWdpbiwgY29uc3QgV1RGOjpTdHJp
bmcmIGtleVN5c3RlbSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJiBjb21wbGV0aW9u
SGFuZGxlcikgeyBwYWdlLnJlcXVlc3RNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25CeURlZmF1bHRB
Y3Rpb24ob3JpZ2luLnNlY3VyaXR5T3JpZ2luKCksIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIp
KTsgfQorCiB9OwogCiB9IC8vIG5hbWVzcGFjZSBBUEkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9DL1dLQVBJQ2FzdC5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL0MvV0tBUElDYXN0LmgKaW5kZXggY2M5Y2Y1OTU3ZWEzMGQ2YWNmMDQ2OGRlNzAxNzk4YTZm
NDE4MTE0YS4uYzhhMTg5NWE2ZDBkZTcwOWY5YWUzOThiZTQ1YmVhNjZiOWViZmEwZCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tBUElDYXN0LmgKKysrIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tBUElDYXN0LmgKQEAgLTc4LDYgKzc4LDcgQEAg
Y2xhc3MgQXV0aGVudGljYXRpb25DaGFsbGVuZ2VQcm94eTsKIGNsYXNzIEF1dGhlbnRpY2F0aW9u
RGVjaXNpb25MaXN0ZW5lcjsKIGNsYXNzIERvd25sb2FkUHJveHk7CiBjbGFzcyBHZW9sb2NhdGlv
blBlcm1pc3Npb25SZXF1ZXN0OworY2xhc3MgTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uQ2FsbGJh
Y2s7CiBjbGFzcyBOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdDsKIGNsYXNzIFNwZWVjaFJl
Y29nbml0aW9uUGVybWlzc2lvbkNhbGxiYWNrOwogY2xhc3MgVXNlck1lZGlhUGVybWlzc2lvbkNo
ZWNrUHJveHk7CkBAIC0xMzUsNiArMTM2LDcgQEAgV0tfQUREX0FQSV9NQVBQSU5HKFdLSFRUUENv
b2tpZVN0b3JlUmVmLCBBUEk6OkhUVFBDb29raWVTdG9yZSkKIFdLX0FERF9BUElfTUFQUElORyhX
S0hpdFRlc3RSZXN1bHRSZWYsIEFQSTo6SGl0VGVzdFJlc3VsdCkKIFdLX0FERF9BUElfTUFQUElO
RyhXS0ljb25EYXRhYmFzZVJlZiwgV2ViSWNvbkRhdGFiYXNlKQogV0tfQUREX0FQSV9NQVBQSU5H
KFdLSW5zcGVjdG9yUmVmLCBXZWJJbnNwZWN0b3JQcm94eSkKK1dLX0FERF9BUElfTUFQUElORyhX
S01lZGlhS2V5U3lzdGVtUGVybWlzc2lvbkNhbGxiYWNrUmVmLCBNZWRpYUtleVN5c3RlbVBlcm1p
c3Npb25DYWxsYmFjaykKIFdLX0FERF9BUElfTUFQUElORyhXS01lc3NhZ2VMaXN0ZW5lclJlZiwg
QVBJOjpNZXNzYWdlTGlzdGVuZXIpCiBXS19BRERfQVBJX01BUFBJTkcoV0tOYXZpZ2F0aW9uQWN0
aW9uUmVmLCBBUEk6Ok5hdmlnYXRpb25BY3Rpb24pCiBXS19BRERfQVBJX01BUFBJTkcoV0tOYXZp
Z2F0aW9uRGF0YVJlZiwgQVBJOjpOYXZpZ2F0aW9uRGF0YSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uQ2FsbGJhY2su
Y3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tNZWRpYUtleVN5c3RlbVBlcm1p
c3Npb25DYWxsYmFjay5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYWFhNzMyNGJiYzJhYjM3MjU3ZGE4M2FiYmMz
NDA3MTRiYTdlMDUzMAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9DL1dLTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uQ2FsbGJhY2suY3BwCkBAIC0wLDAgKzEs
NDIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgSWdhbGlhIFMuTC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05U
UklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1Ig
SVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwor
I2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldLTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9u
Q2FsbGJhY2suaCIKKworI2luY2x1ZGUgIk1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3Qu
aCIKKyNpbmNsdWRlICJXS0FQSUNhc3QuaCIKKwordXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKKwor
V0tUeXBlSUQgV0tNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25DYWxsYmFja0dldFR5cGVJRCgpCit7
CisgICAgcmV0dXJuIHRvQVBJKE1lZGlhS2V5U3lzdGVtUGVybWlzc2lvbkNhbGxiYWNrOjpBUElU
eXBlKTsKK30KKwordm9pZCBXS01lZGlhS2V5U3lzdGVtUGVybWlzc2lvbkNhbGxiYWNrQ29tcGxl
dGUoV0tNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25DYWxsYmFja1JlZiBwZXJtaXNzaW9uQ2FsbGJh
Y2ssIGJvb2wgZ3JhbnRlZCkKK3sKKyAgICByZXR1cm4gdG9JbXBsKHBlcm1pc3Npb25DYWxsYmFj
ayktPmNvbXBsZXRlKGdyYW50ZWQpOworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL0MvV0tNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25DYWxsYmFjay5oIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25DYWxsYmFj
ay5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmY1ZDM2ODM3ZWZhNjlhNGIwNmRmMTMyMTIyZmFmNmEwYTFmNTIwNzgK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS01lZGlh
S2V5U3lzdGVtUGVybWlzc2lvbkNhbGxiYWNrLmgKQEAgLTAsMCArMSw0MCBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAyMSBJZ2FsaWEgUy5MLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElT
JycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JT
CisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisg
KiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAq
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKwor
I2luY2x1ZGUgPFdlYktpdC9XS0Jhc2UuaD4KKworI2lmZGVmIF9fY3BsdXNwbHVzCitleHRlcm4g
IkMiIHsKKyNlbmRpZgorCitXS19FWFBPUlQgV0tUeXBlSUQgV0tNZWRpYUtleVN5c3RlbVBlcm1p
c3Npb25DYWxsYmFja0dldFR5cGVJRCh2b2lkKTsKKworV0tfRVhQT1JUIHZvaWQgV0tNZWRpYUtl
eVN5c3RlbVBlcm1pc3Npb25DYWxsYmFja0NvbXBsZXRlKFdLTWVkaWFLZXlTeXN0ZW1QZXJtaXNz
aW9uQ2FsbGJhY2tSZWYgcGVybWlzc2lvbkNhbGxiYWNrLCBib29sIGdyYW50ZWQpOworCisjaWZk
ZWYgX19jcGx1c3BsdXMKK30KKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL0MvV0tQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dL
UGFnZS5jcHAKaW5kZXggNzQ0M2Y3MGY5NTc1ODM2ZDg0M2RhNTRjODQ4MTUwOWM5ZDhjNGRlYy4u
YzM5ZTcyZjA3MTJjYmFjMGJlYmFmZjBiMDJlODQ1NzNhYzE2ZjkxNCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuY3BwCkBAIC01OCw2ICs1OCw3IEBACiAjaW5jbHVkZSAi
RG93bmxvYWRQcm94eS5oIgogI2luY2x1ZGUgIkxlZ2FjeVNlc3Npb25TdGF0ZUNvZGluZy5oIgog
I2luY2x1ZGUgIkxvZ2dpbmcuaCIKKyNpbmNsdWRlICJNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25S
ZXF1ZXN0LmgiCiAjaW5jbHVkZSAiTmF0aXZlV2ViS2V5Ym9hcmRFdmVudC5oIgogI2luY2x1ZGUg
Ik5hdGl2ZVdlYldoZWVsRXZlbnQuaCIKICNpbmNsdWRlICJOYXZpZ2F0aW9uQWN0aW9uRGF0YS5o
IgpAQCAtMTE3LDcgKzExOCw3IEBAIHRlbXBsYXRlPD4gc3RydWN0IENsaWVudFRyYWl0czxXS1Bh
Z2VQb2xpY3lDbGllbnRCYXNlPiB7CiB9OwogCiB0ZW1wbGF0ZTw+IHN0cnVjdCBDbGllbnRUcmFp
dHM8V0tQYWdlVUlDbGllbnRCYXNlPiB7Ci0gICAgdHlwZWRlZiBzdGQ6OnR1cGxlPFdLUGFnZVVJ
Q2xpZW50VjAsIFdLUGFnZVVJQ2xpZW50VjEsIFdLUGFnZVVJQ2xpZW50VjIsIFdLUGFnZVVJQ2xp
ZW50VjMsIFdLUGFnZVVJQ2xpZW50VjQsIFdLUGFnZVVJQ2xpZW50VjUsIFdLUGFnZVVJQ2xpZW50
VjYsIFdLUGFnZVVJQ2xpZW50VjcsIFdLUGFnZVVJQ2xpZW50VjgsIFdLUGFnZVVJQ2xpZW50Vjks
IFdLUGFnZVVJQ2xpZW50VjEwLCBXS1BhZ2VVSUNsaWVudFYxMSwgV0tQYWdlVUlDbGllbnRWMTIs
IFdLUGFnZVVJQ2xpZW50VjEzLCBXS1BhZ2VVSUNsaWVudFYxNCwgV0tQYWdlVUlDbGllbnRWMTU+
IFZlcnNpb25zOworICAgIHR5cGVkZWYgc3RkOjp0dXBsZTxXS1BhZ2VVSUNsaWVudFYwLCBXS1Bh
Z2VVSUNsaWVudFYxLCBXS1BhZ2VVSUNsaWVudFYyLCBXS1BhZ2VVSUNsaWVudFYzLCBXS1BhZ2VV
SUNsaWVudFY0LCBXS1BhZ2VVSUNsaWVudFY1LCBXS1BhZ2VVSUNsaWVudFY2LCBXS1BhZ2VVSUNs
aWVudFY3LCBXS1BhZ2VVSUNsaWVudFY4LCBXS1BhZ2VVSUNsaWVudFY5LCBXS1BhZ2VVSUNsaWVu
dFYxMCwgV0tQYWdlVUlDbGllbnRWMTEsIFdLUGFnZVVJQ2xpZW50VjEyLCBXS1BhZ2VVSUNsaWVu
dFYxMywgV0tQYWdlVUlDbGllbnRWMTQsIFdLUGFnZVVJQ2xpZW50VjE1LCBXS1BhZ2VVSUNsaWVu
dFYxNj4gVmVyc2lvbnM7CiB9OwogCiAjaWYgRU5BQkxFKENPTlRFWFRfTUVOVVMpCkBAIC0yMTE5
LDYgKzIxMjAsMTYgQEAgdm9pZCBXS1BhZ2VTZXRQYWdlVUlDbGllbnQoV0tQYWdlUmVmIHBhZ2VS
ZWYsIGNvbnN0IFdLUGFnZVVJQ2xpZW50QmFzZSogd2tDbGllbnQKIAogICAgICAgICAgICAgbV9j
bGllbnQuZGVjaWRlUG9saWN5Rm9yU3BlZWNoUmVjb2duaXRpb25QZXJtaXNzaW9uUmVxdWVzdCh0
b0FQSSgmcGFnZSksIHRvQVBJKCZvcmlnaW4pLCB0b0FQSShTcGVlY2hSZWNvZ25pdGlvblBlcm1p
c3Npb25DYWxsYmFjazo6Y3JlYXRlKFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKS5wdHIoKSkp
OwogICAgICAgICB9CisKKyAgICAgICAgdm9pZCBkZWNpZGVQb2xpY3lGb3JNZWRpYUtleVN5c3Rl
bVBlcm1pc3Npb25SZXF1ZXN0KFdlYlBhZ2VQcm94eSYgcGFnZSwgQVBJOjpTZWN1cml0eU9yaWdp
biYgb3JpZ2luLCBjb25zdCBTdHJpbmcmIGtleVN5c3RlbSwgQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZChib29sKT4mJiBjb21wbGV0aW9uSGFuZGxlcikgZmluYWwKKyAgICAgICAgeworICAgICAgICAg
ICAgaWYgKCFtX2NsaWVudC5kZWNpZGVQb2xpY3lGb3JNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25S
ZXF1ZXN0KSB7CisgICAgICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoZmFsc2UpOworICAg
ICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgbV9jbGll
bnQuZGVjaWRlUG9saWN5Rm9yTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdCh0b0FQSSgm
cGFnZSksIHRvQVBJKCZvcmlnaW4pLCB0b0FQSShBUEk6OlN0cmluZzo6Y3JlYXRlKGtleVN5c3Rl
bSkucHRyKCkpLCB0b0FQSShNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25DYWxsYmFjazo6Y3JlYXRl
KFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKS5wdHIoKSkpOworICAgICAgICB9CiAgICAgfTsK
IAogICAgIHRvSW1wbChwYWdlUmVmKS0+c2V0VUlDbGllbnQobWFrZVVuaXF1ZTxVSUNsaWVudD4o
d2tDbGllbnQpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dL
UGFnZVVJQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2VVSUNs
aWVudC5oCmluZGV4IDYzNjM1NTU2NGQwMGIxMTIyYTg3ZTIyOWEzMGI5NGQ3ZTk5ZTRlZjkuLjNk
MzE1YmU2MTM0OGRkN2QyNDY3YmFhOTRkZWE0YWU3MTFjMjc4MDMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZVVJQ2xpZW50LmgKKysrIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlVUlDbGllbnQuaApAQCAtMTM4LDggKzEzOCwxMCBA
QCB0eXBlZGVmIGJvb2wgKCpXS1BhZ2VTaG91bGRBbGxvd0RldmljZU9yaWVudGF0aW9uQW5kTW90
aW9uQWNjZXNzQ2FsbGJhY2spKFdLUGFnZQogdHlwZWRlZiB2b2lkICgqV0tQYWdlUnVuV2ViQXV0
aGVudGljYXRpb25QYW5lbENhbGxiYWNrKSgpOwogdHlwZWRlZiB2b2lkICgqV0tQYWdlRGVjaWRl
UG9saWN5Rm9yU3BlZWNoUmVjb2duaXRpb25QZXJtaXNzaW9uUmVxdWVzdENhbGxiYWNrKShXS1Bh
Z2VSZWYgcGFnZSwgV0tTZWN1cml0eU9yaWdpblJlZiB0b3BPcmlnaW4sIFdLU3BlZWNoUmVjb2du
aXRpb25QZXJtaXNzaW9uQ2FsbGJhY2tSZWYgY2FsbGJhY2spOwogCit0eXBlZGVmIHZvaWQgKCpX
S1BhZ2VEZWNpZGVQb2xpY3lGb3JNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0Q2FsbGJh
Y2spKFdLUGFnZVJlZiBwYWdlLCBXS1NlY3VyaXR5T3JpZ2luUmVmIHRvcE9yaWdpbiwgV0tTdHJp
bmdSZWYga2V5U3lzdGVtLCBXS01lZGlhS2V5U3lzdGVtUGVybWlzc2lvbkNhbGxiYWNrUmVmIGNh
bGxiYWNrKTsKKwogLy8gRGVwcmVjYXRlZAotdHlwZWRlZiBXS1BhZ2VSZWYgKCpXS1BhZ2VDcmVh
dGVOZXdQYWdlQ2FsbGJhY2tfZGVwcmVjYXRlZEZvclVzZVdpdGhWMCkoV0tQYWdlUmVmIHBhZ2Us
IFdLRGljdGlvbmFyeVJlZiBmZWF0dXJlcywgV0tFdmVudE1vZGlmaWVycyBtb2RpZmllcnMsIFdL
RXZlbnRNb3VzZUJ1dHRvbiBtb3VzZUJ1dHRvbiwgY29uc3Qgdm9pZCAqY2xpZW50SW5mbyk7Cit0
eXBlZGVmIFdLUGFnZVJlZiAoKldLUGFnZUNyZWF0ZU5ld1BhZ2VDYWxsYmFja19kZXByZWNhdGVk
Rm9yVXNlV2l0aFYwKShXS1BhZ2VSZWYgcGFnZSwgV0tEaWN0aW9uYXJ5UmVmIGZlYXR1cmVzLCBX
S0V2ZW50TW9kaWZpZXJzIG1vZGlmaWVycywgV0tFdmVudE1vdXNlQnV0dG9uIG1vdXNlQnV0dG9u
LCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKTsKIHR5cGVkZWYgdm9pZCAgICAgICgqV0tQYWdlTW91
c2VEaWRNb3ZlT3ZlckVsZW1lbnRDYWxsYmFja19kZXByZWNhdGVkRm9yVXNlV2l0aFYwKShXS1Bh
Z2VSZWYgcGFnZSwgV0tFdmVudE1vZGlmaWVycyBtb2RpZmllcnMsIFdLVHlwZVJlZiB1c2VyRGF0
YSwgY29uc3Qgdm9pZCAqY2xpZW50SW5mbyk7CiB0eXBlZGVmIHZvaWQgKCpXS1BhZ2VNaXNzaW5n
UGx1Z2luQnV0dG9uQ2xpY2tlZENhbGxiYWNrX2RlcHJlY2F0ZWRGb3JVc2VXaXRoVjApKFdLUGFn
ZVJlZiBwYWdlLCBXS1N0cmluZ1JlZiBtaW1lVHlwZSwgV0tTdHJpbmdSZWYgdXJsLCBXS1N0cmlu
Z1JlZiBwbHVnaW5zUGFnZVVSTCwgY29uc3Qgdm9pZCogY2xpZW50SW5mbyk7CiB0eXBlZGVmIHZv
aWQgKCpXS1BhZ2VVbmF2YWlsYWJsZVBsdWdpbkJ1dHRvbkNsaWNrZWRDYWxsYmFja19kZXByZWNh
dGVkRm9yVXNlV2l0aFYxKShXS1BhZ2VSZWYgcGFnZSwgV0tQbHVnaW5VbmF2YWlsYWJpbGl0eVJl
YXNvbiBwbHVnaW5VbmF2YWlsYWJpbGl0eVJlYXNvbiwgV0tTdHJpbmdSZWYgbWltZVR5cGUsIFdL
U3RyaW5nUmVmIHVybCwgV0tTdHJpbmdSZWYgcGx1Z2luc1BhZ2VVUkwsIGNvbnN0IHZvaWQqIGNs
aWVudEluZm8pOwpAQCAtMTQ2NSw2ICsxNDY3LDEyMSBAQCB0eXBlZGVmIHN0cnVjdCBXS1BhZ2VV
SUNsaWVudFYxNSB7CiAgICAgCiB9IFdLUGFnZVVJQ2xpZW50VjE1OwogCit0eXBlZGVmIHN0cnVj
dCBXS1BhZ2VVSUNsaWVudFYxNiB7CisgICAgV0tQYWdlVUlDbGllbnRCYXNlICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiYXNlOworCisgICAgLy8gVmVy
c2lvbiAwLgorICAgIFdLUGFnZUNyZWF0ZU5ld1BhZ2VDYWxsYmFja19kZXByZWNhdGVkRm9yVXNl
V2l0aFYwICAgICAgICAgICAgICAgICAgY3JlYXRlTmV3UGFnZV9kZXByZWNhdGVkRm9yVXNlV2l0
aFYwOworICAgIFdLUGFnZVVJQ2xpZW50Q2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgc2hvd1BhZ2U7CisgICAgV0tQYWdlVUlDbGllbnRDYWxsYmFj
ayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbG9zZTsKKyAg
ICBXS1BhZ2VUYWtlRm9jdXNDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHRha2VGb2N1czsKKyAgICBXS1BhZ2VGb2N1c0NhbGxiYWNrICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvY3VzOworICAgIFdLUGFn
ZVVuZm9jdXNDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgdW5mb2N1czsKKyAgICBXS1BhZ2VSdW5KYXZhU2NyaXB0QWxlcnRDYWxsYmFja19kZXBy
ZWNhdGVkRm9yVXNlV2l0aFYwICAgICAgICAgICAgIHJ1bkphdmFTY3JpcHRBbGVydF9kZXByZWNh
dGVkRm9yVXNlV2l0aFYwOworICAgIFdLUGFnZVJ1bkphdmFTY3JpcHRDb25maXJtQ2FsbGJhY2tf
ZGVwcmVjYXRlZEZvclVzZVdpdGhWMCAgICAgICAgICAgcnVuSmF2YVNjcmlwdENvbmZpcm1fZGVw
cmVjYXRlZEZvclVzZVdpdGhWMDsKKyAgICBXS1BhZ2VSdW5KYXZhU2NyaXB0UHJvbXB0Q2FsbGJh
Y2tfZGVwcmVjYXRlZEZvclVzZVdpdGhWMCAgICAgICAgICAgIHJ1bkphdmFTY3JpcHRQcm9tcHRf
ZGVwcmVjYXRlZEZvclVzZVdpdGhWMDsKKyAgICBXS1BhZ2VTZXRTdGF0dXNUZXh0Q2FsbGJhY2sg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldFN0YXR1c1RleHQ7Cisg
ICAgV0tQYWdlTW91c2VEaWRNb3ZlT3ZlckVsZW1lbnRDYWxsYmFja19kZXByZWNhdGVkRm9yVXNl
V2l0aFYwICAgICAgICBtb3VzZURpZE1vdmVPdmVyRWxlbWVudF9kZXByZWNhdGVkRm9yVXNlV2l0
aFYwOworICAgIFdLUGFnZU1pc3NpbmdQbHVnaW5CdXR0b25DbGlja2VkQ2FsbGJhY2tfZGVwcmVj
YXRlZEZvclVzZVdpdGhWMCAgICAgbWlzc2luZ1BsdWdpbkJ1dHRvbkNsaWNrZWRfZGVwcmVjYXRl
ZEZvclVzZVdpdGhWMDsKKyAgICBXS1BhZ2VEaWROb3RIYW5kbGVLZXlFdmVudENhbGxiYWNrICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpZE5vdEhhbmRsZUtleUV2ZW50OworICAg
IFdLUGFnZURpZE5vdEhhbmRsZVdoZWVsRXZlbnRDYWxsYmFjayAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgZGlkTm90SGFuZGxlV2hlZWxFdmVudDsKKyAgICBXS1BhZ2VHZXRUb29sYmFy
c0FyZVZpc2libGVDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvb2xi
YXJzQXJlVmlzaWJsZTsKKyAgICBXS1BhZ2VTZXRUb29sYmFyc0FyZVZpc2libGVDYWxsYmFjayAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldFRvb2xiYXJzQXJlVmlzaWJsZTsKKyAg
ICBXS1BhZ2VHZXRNZW51QmFySXNWaXNpYmxlQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIG1lbnVCYXJJc1Zpc2libGU7CisgICAgV0tQYWdlU2V0TWVudUJhcklzVmlz
aWJsZUNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRNZW51QmFy
SXNWaXNpYmxlOworICAgIFdLUGFnZUdldFN0YXR1c0JhcklzVmlzaWJsZUNhbGxiYWNrICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdHVzQmFySXNWaXNpYmxlOworICAgIFdLUGFn
ZVNldFN0YXR1c0JhcklzVmlzaWJsZUNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgc2V0U3RhdHVzQmFySXNWaXNpYmxlOworICAgIFdLUGFnZUdldElzUmVzaXphYmxlQ2Fs
bGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXNSZXNpemFibGU7
CisgICAgV0tQYWdlU2V0SXNSZXNpemFibGVDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBzZXRJc1Jlc2l6YWJsZTsKKyAgICBXS1BhZ2VHZXRXaW5kb3dGcmFt
ZUNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdldFdpbmRv
d0ZyYW1lOworICAgIFdLUGFnZVNldFdpbmRvd0ZyYW1lQ2FsbGJhY2sgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgc2V0V2luZG93RnJhbWU7CisgICAgV0tQYWdlUnVuQmVm
b3JlVW5sb2FkQ29uZmlybVBhbmVsQ2FsbGJhY2tfZGVwcmVjYXRlZEZvclVzZVdpdGhWNiAgICBy
dW5CZWZvcmVVbmxvYWRDb25maXJtUGFuZWxfZGVwcmVjYXRlZEZvclVzZVdpdGhWNjsKKyAgICBX
S1BhZ2VVSUNsaWVudENhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGRpZERyYXc7CisgICAgV0tQYWdlVUlDbGllbnRDYWxsYmFjayAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYWdlRGlkU2Nyb2xsOworICAgIFdL
UGFnZUV4Y2VlZGVkRGF0YWJhc2VRdW90YUNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgZXhjZWVkZWREYXRhYmFzZVF1b3RhOworICAgIFdLUGFnZVJ1bk9wZW5QYW5lbENh
bGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcnVuT3BlblBh
bmVsOworICAgIFdLUGFnZURlY2lkZVBvbGljeUZvckdlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVl
c3RDYWxsYmFjayAgICAgICAgICAgZGVjaWRlUG9saWN5Rm9yR2VvbG9jYXRpb25QZXJtaXNzaW9u
UmVxdWVzdDsKKyAgICBXS1BhZ2VIZWFkZXJIZWlnaHRDYWxsYmFjayAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGhlYWRlckhlaWdodDsKKyAgICBXS1BhZ2VGb290ZXJI
ZWlnaHRDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZv
b3RlckhlaWdodDsKKyAgICBXS1BhZ2VEcmF3SGVhZGVyQ2FsbGJhY2sgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRyYXdIZWFkZXI7CisgICAgV0tQYWdlRHJhd0Zv
b3RlckNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBk
cmF3Rm9vdGVyOworICAgIFdLUGFnZVByaW50RnJhbWVDYWxsYmFjayAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJpbnRGcmFtZTsKKyAgICBXS1BhZ2VVSUNsaWVu
dENhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJ1
bk1vZGFsOworICAgIHZvaWQqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgdW51c2VkMTsgLy8gVXNlZCB0byBiZSBkaWRDb21wbGV0
ZVJ1YmJlckJhbmRGb3JNYWluRnJhbWUKKyAgICBXS1BhZ2VTYXZlRGF0YVRvRmlsZUluRG93bmxv
YWRzRm9sZGVyQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgIHNhdmVEYXRhVG9GaWxlSW5E
b3dubG9hZHNGb2xkZXI7CisgICAgdm9pZCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaG91bGRJbnRlcnJ1cHRKYXZhU2NyaXB0
X3VuYXZhaWxhYmxlOworCisgICAgLy8gVmVyc2lvbiAxLgorICAgIFdLUGFnZUNyZWF0ZU5ld1Bh
Z2VDYWxsYmFja19kZXByZWNhdGVkRm9yVXNlV2l0aFYxICAgICAgICAgICAgICAgICAgY3JlYXRl
TmV3UGFnZV9kZXByZWNhdGVkRm9yVXNlV2l0aFYxOworICAgIFdLUGFnZU1vdXNlRGlkTW92ZU92
ZXJFbGVtZW50Q2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbW91c2VEaWRN
b3ZlT3ZlckVsZW1lbnQ7CisgICAgV0tQYWdlRGVjaWRlUG9saWN5Rm9yTm90aWZpY2F0aW9uUGVy
bWlzc2lvblJlcXVlc3RDYWxsYmFjayAgICAgICAgICBkZWNpZGVQb2xpY3lGb3JOb3RpZmljYXRp
b25QZXJtaXNzaW9uUmVxdWVzdDsKKyAgICBXS1BhZ2VVbmF2YWlsYWJsZVBsdWdpbkJ1dHRvbkNs
aWNrZWRDYWxsYmFja19kZXByZWNhdGVkRm9yVXNlV2l0aFYxIHVuYXZhaWxhYmxlUGx1Z2luQnV0
dG9uQ2xpY2tlZF9kZXByZWNhdGVkRm9yVXNlV2l0aFYxOworCisgICAgLy8gVmVyc2lvbiAyLgor
ICAgIFdLUGFnZVNob3dDb2xvclBpY2tlckNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgc2hvd0NvbG9yUGlja2VyOworICAgIFdLUGFnZUhpZGVDb2xvclBpY2tl
ckNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGlkZUNvbG9y
UGlja2VyOworICAgIFdLUGFnZVVuYXZhaWxhYmxlUGx1Z2luQnV0dG9uQ2xpY2tlZENhbGxiYWNr
ICAgICAgICAgICAgICAgICAgICAgICAgdW5hdmFpbGFibGVQbHVnaW5CdXR0b25DbGlja2VkOwor
CisgICAgLy8gVmVyc2lvbiAzLgorICAgIFdLUGFnZVBpbm5lZFN0YXRlRGlkQ2hhbmdlQ2FsbGJh
Y2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGlubmVkU3RhdGVEaWRDaGFuZ2U7
CisKKyAgICAvLyBWZXJzaW9uIDQuCisgICAgdm9pZCogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnVzZWQyOyAvLyBVc2VkIHRv
IGJlIGRpZEJlZ2luVHJhY2tpbmdQb3RlbnRpYWxMb25nTW91c2VQcmVzcy4KKyAgICB2b2lkKiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHVudXNlZDM7IC8vIFVzZWQgdG8gYmUgZGlkUmVjb2duaXplTG9uZ01vdXNlUHJlc3MuCisg
ICAgdm9pZCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB1bnVzZWQ0OyAvLyBVc2VkIHRvIGJlIGRpZENhbmNlbFRyYWNraW5nUG90
ZW50aWFsTG9uZ01vdXNlUHJlc3MuCisgICAgV0tQYWdlSXNQbGF5aW5nQXVkaW9EaWRDaGFuZ2VD
YWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpc1BsYXlpbmdBdWRpb0RpZENo
YW5nZTsKKworICAgIC8vIFZlcnNpb24gNS4KKyAgICBXS1BhZ2VEZWNpZGVQb2xpY3lGb3JVc2Vy
TWVkaWFQZXJtaXNzaW9uUmVxdWVzdENhbGxiYWNrICAgICAgICAgICAgIGRlY2lkZVBvbGljeUZv
clVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0OworICAgIFdLUGFnZURpZENsaWNrQXV0b0ZpbGxC
dXR0b25DYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlkQ2xpY2tBdXRv
RmlsbEJ1dHRvbjsKKyAgICBXS1BhZ2VSdW5KYXZhU2NyaXB0QWxlcnRDYWxsYmFja19kZXByZWNh
dGVkRm9yVXNlV2l0aFY1ICAgICAgICAgICAgIHJ1bkphdmFTY3JpcHRBbGVydF9kZXByZWNhdGVk
Rm9yVXNlV2l0aFY1OworICAgIFdLUGFnZVJ1bkphdmFTY3JpcHRDb25maXJtQ2FsbGJhY2tfZGVw
cmVjYXRlZEZvclVzZVdpdGhWNSAgICAgICAgICAgcnVuSmF2YVNjcmlwdENvbmZpcm1fZGVwcmVj
YXRlZEZvclVzZVdpdGhWNTsKKyAgICBXS1BhZ2VSdW5KYXZhU2NyaXB0UHJvbXB0Q2FsbGJhY2tf
ZGVwcmVjYXRlZEZvclVzZVdpdGhWNSAgICAgICAgICAgIHJ1bkphdmFTY3JpcHRQcm9tcHRfZGVw
cmVjYXRlZEZvclVzZVdpdGhWNTsKKyAgICB2b2lkKiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVudXNlZDU7IC8vIFVzZWQgdG8g
YmUgbWVkaWFTZXNzaW9uTWV0YWRhdGFEaWRDaGFuZ2UuCisKKyAgICAvLyBWZXJzaW9uIDYuCisg
ICAgV0tQYWdlQ3JlYXRlTmV3UGFnZUNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBjcmVhdGVOZXdQYWdlOworICAgIFdLUGFnZVJ1bkphdmFTY3JpcHRBbGVy
dENhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcnVuSmF2YVNjcmlw
dEFsZXJ0OworICAgIFdLUGFnZVJ1bkphdmFTY3JpcHRDb25maXJtQ2FsbGJhY2sgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgcnVuSmF2YVNjcmlwdENvbmZpcm07CisgICAgV0tQYWdl
UnVuSmF2YVNjcmlwdFByb21wdENhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBydW5KYXZhU2NyaXB0UHJvbXB0OworICAgIFdLQ2hlY2tVc2VyTWVkaWFQZXJtaXNzaW9u
Q2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hlY2tVc2VyTWVkaWFQ
ZXJtaXNzaW9uRm9yT3JpZ2luOworCisgICAgLy8gVmVyc2lvbiA3LgorICAgIFdLUGFnZVJ1bkJl
Zm9yZVVubG9hZENvbmZpcm1QYW5lbENhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAg
cnVuQmVmb3JlVW5sb2FkQ29uZmlybVBhbmVsOworICAgIFdLRnVsbHNjcmVlbk1heVJldHVyblRv
SW5saW5lQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZnVsbHNjcmVlbk1h
eVJldHVyblRvSW5saW5lOworCisgICAgLy8gVmVyc2lvbiA4LgorICAgIFdLUmVxdWVzdFBvaW50
ZXJMb2NrQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVx
dWVzdFBvaW50ZXJMb2NrOworICAgIFdLRGlkTG9zZVBvaW50ZXJMb2NrQ2FsbGJhY2sgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlkTG9zZVBvaW50ZXJMb2NrOworCisg
ICAgLy8gVmVyc2lvbiA5LgorICAgIFdLSGFuZGxlQXV0b3BsYXlFdmVudENhbGxiYWNrICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlQXV0b3BsYXlFdmVudDsKKwor
ICAgIC8vIFZlcnNpb24gMTAuCisgICAgV0tIYXNWaWRlb0luUGljdHVyZUluUGljdHVyZURpZENo
YW5nZUNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICBoYXNWaWRlb0luUGljdHVyZUluUGlj
dHVyZURpZENoYW5nZTsKKyAgICBXS0RpZEV4Y2VlZEJhY2tncm91bmRSZXNvdXJjZUxpbWl0V2hp
bGVJbkZvcmVncm91bmRDYWxsYmFjayAgICAgICAgIGRpZEV4Y2VlZEJhY2tncm91bmRSZXNvdXJj
ZUxpbWl0V2hpbGVJbkZvcmVncm91bmQ7CisKKyAgICAvLyBWZXJzaW9uIDExLgorICAgIFdLUGFn
ZURpZFJlc2lnbklucHV0RWxlbWVudFN0cm9uZ1Bhc3N3b3JkQXBwZWFyYW5jZUNhbGxiYWNrICAg
ICAgICAgZGlkUmVzaWduSW5wdXRFbGVtZW50U3Ryb25nUGFzc3dvcmRBcHBlYXJhbmNlOworCisg
ICAgLy8gVmVyc2lvbiAxMi4KKyAgICBXS1BhZ2VSZXF1ZXN0U3RvcmFnZUFjY2Vzc0NvbmZpcm1D
YWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3RTdG9yYWdlQWNjZXNzQ29u
ZmlybTsKKworICAgIC8vIFZlcnNpb24gMTMuCisgICAgV0tQYWdlU2hvdWxkQWxsb3dEZXZpY2VP
cmllbnRhdGlvbkFuZE1vdGlvbkFjY2Vzc0NhbGxiYWNrICAgICAgICAgICBzaG91bGRBbGxvd0Rl
dmljZU9yaWVudGF0aW9uQW5kTW90aW9uQWNjZXNzOworCisgICAgLy8gVmVyc2lvbiAxNC4KKyAg
ICBXS1BhZ2VSdW5XZWJBdXRoZW50aWNhdGlvblBhbmVsQ2FsbGJhY2sgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHJ1bldlYkF1dGhlbnRpY2F0aW9uUGFuZWw7CisKKyAgICAvLyBWZXJzaW9u
IDE1LgorICAgIFdLUGFnZURlY2lkZVBvbGljeUZvclNwZWVjaFJlY29nbml0aW9uUGVybWlzc2lv
blJlcXVlc3RDYWxsYmFjayAgICAgZGVjaWRlUG9saWN5Rm9yU3BlZWNoUmVjb2duaXRpb25QZXJt
aXNzaW9uUmVxdWVzdDsKKworICAgIC8vIFZlcnNpb24gMTYuCisgICAgV0tQYWdlRGVjaWRlUG9s
aWN5Rm9yTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdENhbGxiYWNrICAgICAgICBkZWNp
ZGVQb2xpY3lGb3JNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0OworCit9IFdLUGFnZVVJ
Q2xpZW50VjE2OworCisKICNpZmRlZiBfX2NwbHVzcGx1cwogfQogI2VuZGlmCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRNZWRpYUtleVN5c3RlbVBl
cm1pc3Npb25SZXF1ZXN0LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dl
YktpdE1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3QuY3BwCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjAyYWIw
ZmEzY2Y3MjFiMDhhYWU3NDZkZDllZDYyYTZmZWZhMmVlYjgKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRNZWRpYUtleVN5c3RlbVBlcm1p
c3Npb25SZXF1ZXN0LmNwcApAQCAtMCwwICsxLDEyNCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAyMSBJZ2FsaWEgUy5MLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5
b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVy
bXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxp
c2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24g
MiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4K
KyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3
aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVu
IHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogTGlicmFyeSBHZW5lcmFs
IFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZl
IHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5z
ZQorICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4g
IElmIG5vdCwgd3JpdGUgdG8KKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4s
IDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgKiBCb3N0b24sIE1BIDAyMTEwLTEz
MDEsIFVTQS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV2ViS2l0TWVk
aWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdC5oIgorCisjaW5jbHVkZSAiTWVkaWFLZXlTeXN0
ZW1QZXJtaXNzaW9uUmVxdWVzdC5oIgorI2luY2x1ZGUgIldlYktpdE1lZGlhS2V5U3lzdGVtUGVy
bWlzc2lvblJlcXVlc3RQcml2YXRlLmgiCisjaW5jbHVkZSAiV2ViS2l0UGVybWlzc2lvblJlcXVl
c3QuaCIKKyNpbmNsdWRlIDx3dGYvZ2xpYi9XVEZHVHlwZS5oPgorCit1c2luZyBuYW1lc3BhY2Ug
V2ViS2l0OworCisvKioKKyAqIFNFQ1RJT046IFdlYktpdE1lZGlhS2V5U3lzdGVtUGVybWlzc2lv
blJlcXVlc3QKKyAqIEBTaG9ydF9kZXNjcmlwdGlvbjogQSBwZXJtaXNzaW9uIHJlcXVlc3QgZm9y
IHVzaW5nIGFuIEVNRSBDb250ZW50IERlY3J5cHRpb24gTW9kdWxlCisgKiBAVGl0bGU6IFdlYktp
dE1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3QKKyAqIEBTZWVfYWxzbzogI1dlYktpdFBl
cm1pc3Npb25SZXF1ZXN0LCAjV2ViS2l0V2ViVmlldworICoKKyAqIFdlYktpdE1lZGlhS2V5U3lz
dGVtUGVybWlzc2lvblJlcXVlc3QgcmVwcmVzZW50cyBhIHJlcXVlc3QgZm9yIHBlcm1pc3Npb24g
dG8gZGVjaWRlIHdoZXRoZXIKKyAqIFdlYktpdCBzaG91bGQgdXNlIHRoZSBnaXZlbiBDRE0gdG8g
YWNjZXNzIHByb3RlY3RlZCBtZWRpYSB3aGVuIHJlcXVlc3RlZCB0aHJvdWdoIHRoZQorICogTWVk
aWFLZXlTeXN0ZW0gQVBJLgorICoKKyAqIFdoZW4gYSBXZWJLaXRNZWRpYUtleVN5c3RlbVBlcm1p
c3Npb25SZXF1ZXN0IGlzIG5vdCBoYW5kbGVkIGJ5IHRoZSB1c2VyLAorICogaXQgaXMgZGVuaWVk
IGJ5IGRlZmF1bHQuCisgKgorICogV2hlbiBoYW5kbGluZyB0aGlzIHBlcm1pc3Npb24gcmVxdWVz
dCB0aGUgYXBwbGljYXRpb24gbWF5IHBlcmZvcm0gYWRkaXRpb25hbCBpbnN0YWxsYXRpb24gb2Yg
dGhlCisgKiByZXF1ZXN0ZWQgQ0RNLCB1bmxlc3MgaXQgaXMgYWxyZWFkeSBwcmVzZW50IG9uIHRo
ZSBob3N0IHN5c3RlbS4KKyAqLworCitzdGF0aWMgdm9pZCB3ZWJraXRfcGVybWlzc2lvbl9yZXF1
ZXN0X2ludGVyZmFjZV9pbml0KFdlYktpdFBlcm1pc3Npb25SZXF1ZXN0SWZhY2UqKTsKKworc3Ry
dWN0IF9XZWJLaXRNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0UHJpdmF0ZSB7CisgICAg
UmVmUHRyPE1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3Q+IHJlcXVlc3Q7CisgICAgYm9v
bCBtYWRlRGVjaXNpb247Cit9OworCitXRUJLSVRfREVGSU5FX1RZUEVfV0lUSF9DT0RFKAorICAg
IFdlYktpdE1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3QsIHdlYmtpdF9tZWRpYV9rZXlf
c3lzdGVtX3Blcm1pc3Npb25fcmVxdWVzdCwgR19UWVBFX09CSkVDVCwKKyAgICBHX0lNUExFTUVO
VF9JTlRFUkZBQ0UoV0VCS0lUX1RZUEVfUEVSTUlTU0lPTl9SRVFVRVNULCB3ZWJraXRfcGVybWlz
c2lvbl9yZXF1ZXN0X2ludGVyZmFjZV9pbml0KSkKKworc3RhdGljIHZvaWQgd2Via2l0TWVkaWFL
ZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdEFsbG93KFdlYktpdFBlcm1pc3Npb25SZXF1ZXN0KiBy
ZXF1ZXN0KQoreworICAgIEFTU0VSVChXRUJLSVRfSVNfTUVESUFfS0VZX1NZU1RFTV9QRVJNSVNT
SU9OX1JFUVVFU1QocmVxdWVzdCkpOworCisgICAgV2ViS2l0TWVkaWFLZXlTeXN0ZW1QZXJtaXNz
aW9uUmVxdWVzdFByaXZhdGUqIHByaXYgPSBXRUJLSVRfTUVESUFfS0VZX1NZU1RFTV9QRVJNSVNT
SU9OX1JFUVVFU1QocmVxdWVzdCktPnByaXY7CisKKyAgICAvLyBPbmx5IG9uZSBkZWNpc2lvbiBh
dCBhIHRpbWUuCisgICAgaWYgKHByaXYtPm1hZGVEZWNpc2lvbikKKyAgICAgICAgcmV0dXJuOwor
CisgICAgcHJpdi0+cmVxdWVzdC0+Y29tcGxldGUodHJ1ZSk7CisgICAgcHJpdi0+bWFkZURlY2lz
aW9uID0gdHJ1ZTsKK30KKworc3RhdGljIHZvaWQgd2Via2l0TWVkaWFLZXlTeXN0ZW1QZXJtaXNz
aW9uUmVxdWVzdERlbnkoV2ViS2l0UGVybWlzc2lvblJlcXVlc3QqIHJlcXVlc3QpCit7CisgICAg
QVNTRVJUKFdFQktJVF9JU19NRURJQV9LRVlfU1lTVEVNX1BFUk1JU1NJT05fUkVRVUVTVChyZXF1
ZXN0KSk7CisKKyAgICBXZWJLaXRNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0UHJpdmF0
ZSogcHJpdiA9IFdFQktJVF9NRURJQV9LRVlfU1lTVEVNX1BFUk1JU1NJT05fUkVRVUVTVChyZXF1
ZXN0KS0+cHJpdjsKKworICAgIC8vIE9ubHkgb25lIGRlY2lzaW9uIGF0IGEgdGltZS4KKyAgICBp
ZiAocHJpdi0+bWFkZURlY2lzaW9uKQorICAgICAgICByZXR1cm47CisKKyAgICBwcml2LT5yZXF1
ZXN0LT5jb21wbGV0ZShmYWxzZSk7CisgICAgcHJpdi0+bWFkZURlY2lzaW9uID0gdHJ1ZTsKK30K
Kworc3RhdGljIHZvaWQgd2Via2l0X3Blcm1pc3Npb25fcmVxdWVzdF9pbnRlcmZhY2VfaW5pdChX
ZWJLaXRQZXJtaXNzaW9uUmVxdWVzdElmYWNlKiBpZmFjZSkKK3sKKyAgICBpZmFjZS0+YWxsb3cg
PSB3ZWJraXRNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0QWxsb3c7CisgICAgaWZhY2Ut
PmRlbnkgPSB3ZWJraXRNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0RGVueTsKK30KKwor
c3RhdGljIHZvaWQgd2Via2l0TWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdERpc3Bvc2Uo
R09iamVjdCogb2JqZWN0KQoreworICAgIC8vIERlZmF1bHQgYmVoYXZpb3VyIHdoZW4gbm8gZGVj
aXNpb24gaGFzIGJlZW4gbWFkZSBpcyBkZW55aW5nIHRoZSByZXF1ZXN0LgorICAgIHdlYmtpdE1l
ZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3REZW55KFdFQktJVF9QRVJNSVNTSU9OX1JFUVVF
U1Qob2JqZWN0KSk7CisgICAgR19PQkpFQ1RfQ0xBU1Mod2Via2l0X21lZGlhX2tleV9zeXN0ZW1f
cGVybWlzc2lvbl9yZXF1ZXN0X3BhcmVudF9jbGFzcyktPmRpc3Bvc2Uob2JqZWN0KTsKK30KKwor
c3RhdGljIHZvaWQgd2Via2l0X21lZGlhX2tleV9zeXN0ZW1fcGVybWlzc2lvbl9yZXF1ZXN0X2Ns
YXNzX2luaXQoV2ViS2l0TWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdENsYXNzKiBrbGFz
cykKK3sKKyAgICBHT2JqZWN0Q2xhc3MqIG9iamVjdENsYXNzID0gR19PQkpFQ1RfQ0xBU1Moa2xh
c3MpOworICAgIG9iamVjdENsYXNzLT5kaXNwb3NlID0gd2Via2l0TWVkaWFLZXlTeXN0ZW1QZXJt
aXNzaW9uUmVxdWVzdERpc3Bvc2U7Cit9CisKK1dlYktpdE1lZGlhS2V5U3lzdGVtUGVybWlzc2lv
blJlcXVlc3QqIHdlYmtpdE1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RDcmVhdGUoTWVk
aWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdCogcmVxdWVzdCkKK3sKKyAgICBXZWJLaXRNZWRp
YUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0KiBwZXJtaXNzaW9uUmVxdWVzdCA9IFdFQktJVF9N
RURJQV9LRVlfU1lTVEVNX1BFUk1JU1NJT05fUkVRVUVTVChnX29iamVjdF9uZXcoV0VCS0lUX1RZ
UEVfTUVESUFfS0VZX1NZU1RFTV9QRVJNSVNTSU9OX1JFUVVFU1QsIE5VTEwpKTsKKyAgICBwZXJt
aXNzaW9uUmVxdWVzdC0+cHJpdi0+cmVxdWVzdCA9IHJlcXVlc3Q7CisgICAgcmV0dXJuIHBlcm1p
c3Npb25SZXF1ZXN0OworfQorCisvKioKKyAqIHdlYmtpdF9tZWRpYV9rZXlfc3lzdGVtX3Blcm1p
c3Npb25fZ2V0X25hbWU6CisgKiBAcmVxdWVzdDogYSAjV2ViS2l0TWVkaWFLZXlTeXN0ZW1QZXJt
aXNzaW9uUmVxdWVzdAorICoKKyAqIFJldHVybnM6IFRoZSBuYW1lIG9mIHRoZSBrZXkgc3lzdGVt
IGZvciB3aGljaCBhY2Nlc3MgcGVybWlzc2lvbiBpcyBiZWluZyByZXF1ZXN0ZWQuCisgKgorICog
U2luY2U6IDIuMzQKKyAqLworY29uc3QgZ2NoYXIqCit3ZWJraXRfbWVkaWFfa2V5X3N5c3RlbV9w
ZXJtaXNzaW9uX2dldF9uYW1lKFdlYktpdE1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3Qq
IHJlcXVlc3QpCit7CisgICAgcmV0dXJuIHJlcXVlc3QtPnByaXYtPnJlcXVlc3QtPmtleVN5c3Rl
bSgpLnV0ZjgoKS5kYXRhKCk7Cit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvZ2xpYi9XZWJLaXRNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0UHJpdmF0ZS5o
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0TWVkaWFLZXlTeXN0ZW1Q
ZXJtaXNzaW9uUmVxdWVzdFByaXZhdGUuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43ZTM2ZTRlYmNlMWFlZThjYTgz
YjBmM2NiOTkxM2I3M2IwNTYwNDk5Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0TWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdFBy
aXZhdGUuaApAQCAtMCwwICsxLDI1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIElnYWxp
YSBTLkwuCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVk
aXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUg
R05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRo
ZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogdmVyc2lvbiAyIG9mIHRoZSBM
aWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRo
aXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNl
ZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxp
ZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExp
Y2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQg
YSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9u
ZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3
cml0ZSB0bworICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmts
aW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgor
ICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAiTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9u
UmVxdWVzdC5oIgorI2luY2x1ZGUgIldlYktpdE1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVl
c3QuaCIKKworV2ViS2l0TWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdCogd2Via2l0TWVk
aWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdENyZWF0ZShXZWJLaXQ6Ok1lZGlhS2V5U3lzdGVt
UGVybWlzc2lvblJlcXVlc3QqKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9nbGliL1dlYktpdFVJQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9nbGliL1dlYktpdFVJQ2xpZW50LmNwcAppbmRleCAyY2ViMmI0ZjQ5ZjQwOWJiZTZlNjgxMDEx
NWUzNmQwYzg0ZjgzYjVkLi5mYzY5ZDY0ODEwNGFmMzFiZWIwYzBmMDU1YTg3MmM2MTk3MGI3NTBl
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRVSUNs
aWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0VUlD
bGllbnQuY3BwCkBAIC0yNSw2ICsyNSw3IEBACiAjaW5jbHVkZSAiV2ViS2l0RGV2aWNlSW5mb1Bl
cm1pc3Npb25SZXF1ZXN0UHJpdmF0ZS5oIgogI2luY2x1ZGUgIldlYktpdEZpbGVDaG9vc2VyUmVx
dWVzdFByaXZhdGUuaCIKICNpbmNsdWRlICJXZWJLaXRHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1
ZXN0UHJpdmF0ZS5oIgorI2luY2x1ZGUgIldlYktpdE1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJl
cXVlc3RQcml2YXRlLmgiCiAjaW5jbHVkZSAiV2ViS2l0TmF2aWdhdGlvbkFjdGlvblByaXZhdGUu
aCIKICNpbmNsdWRlICJXZWJLaXROb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdFByaXZhdGUu
aCIKICNpbmNsdWRlICJXZWJLaXRQb2ludGVyTG9ja1Blcm1pc3Npb25SZXF1ZXN0UHJpdmF0ZS5o
IgpAQCAtMjgzLDYgKzI4NCwxMiBAQCBwcml2YXRlOgogICAgICAgICB3ZWJraXRXZWJWaWV3TWFr
ZVBlcm1pc3Npb25SZXF1ZXN0KG1fd2ViVmlldywgV0VCS0lUX1BFUk1JU1NJT05fUkVRVUVTVChn
ZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0LmdldCgpKSk7CiAgICAgfQogCisgICAgdm9pZCBk
ZWNpZGVQb2xpY3lGb3JNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0KFdlYlBhZ2VQcm94
eSYsIEFQSTo6U2VjdXJpdHlPcmlnaW4mIHRvcExldmVsRG9jdW1lbnRPcmlnaW4sIGNvbnN0IFdU
Rjo6U3RyaW5nJiBrZXlTeXN0ZW0sIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYgY29t
cGxldGlvbkhhbmRsZXIpIGZpbmFsCisgICAgeworICAgICAgICBhdXRvIHBlcm1pc3Npb25SZXF1
ZXN0ID0gYWRvcHRHUmVmKHdlYmtpdE1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RDcmVh
dGUoTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdDo6Y3JlYXRlKGtleVN5c3RlbSwgc3Rk
OjpleGNoYW5nZShjb21wbGV0aW9uSGFuZGxlciwgbnVsbHB0cikpLnB0cigpKSk7CisgICAgICAg
IHdlYmtpdFdlYlZpZXdNYWtlUGVybWlzc2lvblJlcXVlc3QobV93ZWJWaWV3LCBXRUJLSVRfUEVS
TUlTU0lPTl9SRVFVRVNUKHBlcm1pc3Npb25SZXF1ZXN0LmdldCgpKSk7CisgICAgfQorCiAgICAg
dm9pZCBkZWNpZGVQb2xpY3lGb3JVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdChXZWJQYWdlUHJv
eHkmLCBXZWJGcmFtZVByb3h5JiwgQVBJOjpTZWN1cml0eU9yaWdpbiYgdXNlck1lZGlhRG9jdW1l
bnRPcmlnaW4sIEFQSTo6U2VjdXJpdHlPcmlnaW4mIHRvcExldmVsRG9jdW1lbnRPcmlnaW4sIFVz
ZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkmIHBlcm1pc3Npb25SZXF1ZXN0KSBmaW5hbAog
ICAgIHsKICAgICAgICAgR1JlZlB0cjxXZWJLaXRVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdD4g
dXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QgPSBhZG9wdEdSZWYod2Via2l0VXNlck1lZGlhUGVy
bWlzc2lvblJlcXVlc3RDcmVhdGUocGVybWlzc2lvblJlcXVlc3QsIHVzZXJNZWRpYURvY3VtZW50
T3JpZ2luLCB0b3BMZXZlbERvY3VtZW50T3JpZ2luKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdEF1dG9jbGVhbnVwcy5oIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRBdXRvY2xlYW51cHMuaAppbmRleCA1ODhmNGMxNmYz
MzUyM2U5MWNiZTM4ZmNjMGY2YTlhNThkMGM3Y2E2Li43ZTUyYmZhOGI3YzRmODdhODBkZmYxYjIz
NzEzYmJmNTFiZmI4MDRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
Z3RrL1dlYktpdEF1dG9jbGVhbnVwcy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9ndGsvV2ViS2l0QXV0b2NsZWFudXBzLmgKQEAgLTQ1LDYgKzQ1LDcgQEAgR19ERUZJTkVfQVVU
T1BUUl9DTEVBTlVQX0ZVTkMgKFdlYktpdEdlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3QsIGdf
b2JqZWN0X3VucmUKIEdfREVGSU5FX0FVVE9QVFJfQ0xFQU5VUF9GVU5DIChXZWJLaXRIaXRUZXN0
UmVzdWx0LCBnX29iamVjdF91bnJlZikKIEdfREVGSU5FX0FVVE9QVFJfQ0xFQU5VUF9GVU5DIChX
ZWJLaXRJbnB1dE1ldGhvZENvbnRleHQsIGdfb2JqZWN0X3VucmVmKQogR19ERUZJTkVfQVVUT1BU
Ul9DTEVBTlVQX0ZVTkMgKFdlYktpdEluc3RhbGxNaXNzaW5nTWVkaWFQbHVnaW5zUGVybWlzc2lv
blJlcXVlc3QsIGdfb2JqZWN0X3VucmVmKQorR19ERUZJTkVfQVVUT1BUUl9DTEVBTlVQX0ZVTkMg
KFdlYktpdE1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3QsIGdfb2JqZWN0X3VucmVmKQog
R19ERUZJTkVfQVVUT1BUUl9DTEVBTlVQX0ZVTkMgKFdlYktpdE5hdmlnYXRpb25Qb2xpY3lEZWNp
c2lvbiwgZ19vYmplY3RfdW5yZWYpCiBHX0RFRklORV9BVVRPUFRSX0NMRUFOVVBfRlVOQyAoV2Vi
S2l0Tm90aWZpY2F0aW9uLCBnX29iamVjdF91bnJlZikKIEdfREVGSU5FX0FVVE9QVFJfQ0xFQU5V
UF9GVU5DIChXZWJLaXROb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdCwgZ19vYmplY3RfdW5y
ZWYpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdE1l
ZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3QuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9ndGsvV2ViS2l0TWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdC5oCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjQxZjE0OTMzNmY0NTQ4MzY5MGI2NWQ4M2I4ZDYyMWViOWY0YWYzZDkKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdE1lZGlhS2V5U3lz
dGVtUGVybWlzc2lvblJlcXVlc3QuaApAQCAtMCwwICsxLDY3IEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDIxIElnYWxpYSBTLkwuCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdh
cmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRo
ZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMg
cHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogdmVy
c2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJz
aW9uLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0
IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0
IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiBMaWJyYXJ5IEdl
bmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxk
IGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBM
aWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcu
TElCLiAgSWYgbm90LCB3cml0ZSB0bworICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwg
SW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAqIEJvc3RvbiwgTUEgMDIx
MTAtMTMwMSwgVVNBLgorICovCisKKyNpZiAhZGVmaW5lZChfX1dFQktJVDJfSF9JTlNJREVfXykg
JiYgIWRlZmluZWQoV0VCS0lUMl9DT01QSUxBVElPTikKKyNlcnJvciAiT25seSA8d2Via2l0Mi93
ZWJraXQyLmg+IGNhbiBiZSBpbmNsdWRlZCBkaXJlY3RseS4iCisjZW5kaWYKKworI2lmbmRlZiBX
ZWJLaXRNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0X2gKKyNkZWZpbmUgV2ViS2l0TWVk
aWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdF9oCisKKyNpbmNsdWRlIDxnbGliLW9iamVjdC5o
PgorI2luY2x1ZGUgPHdlYmtpdDIvV2ViS2l0RGVmaW5lcy5oPgorCitHX0JFR0lOX0RFQ0xTCisK
KyNkZWZpbmUgV0VCS0lUX1RZUEVfTUVESUFfS0VZX1NZU1RFTV9QRVJNSVNTSU9OX1JFUVVFU1Qg
ICAgICAgICAgICAod2Via2l0X21lZGlhX2tleV9zeXN0ZW1fcGVybWlzc2lvbl9yZXF1ZXN0X2dl
dF90eXBlKCkpCisjZGVmaW5lIFdFQktJVF9NRURJQV9LRVlfU1lTVEVNX1BFUk1JU1NJT05fUkVR
VUVTVChvYmopICAgICAgICAgICAgKEdfVFlQRV9DSEVDS19JTlNUQU5DRV9DQVNUKChvYmopLCBX
RUJLSVRfVFlQRV9NRURJQV9LRVlfU1lTVEVNX1BFUk1JU1NJT05fUkVRVUVTVCwgV2ViS2l0TWVk
aWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdCkpCisjZGVmaW5lIFdFQktJVF9NRURJQV9LRVlf
U1lTVEVNX1BFUk1JU1NJT05fUkVRVUVTVF9DTEFTUyhrbGFzcykgICAgKEdfVFlQRV9DSEVDS19D
TEFTU19DQVNUKChrbGFzcyksICBXRUJLSVRfVFlQRV9NRURJQV9LRVlfU1lTVEVNX1BFUk1JU1NJ
T05fUkVRVUVTVCwgV2ViS2l0TWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdENsYXNzKSkK
KyNkZWZpbmUgV0VCS0lUX0lTX01FRElBX0tFWV9TWVNURU1fUEVSTUlTU0lPTl9SRVFVRVNUKG9i
aikgICAgICAgICAoR19UWVBFX0NIRUNLX0lOU1RBTkNFX1RZUEUoKG9iaiksIFdFQktJVF9UWVBF
X01FRElBX0tFWV9TWVNURU1fUEVSTUlTU0lPTl9SRVFVRVNUKSkKKyNkZWZpbmUgV0VCS0lUX0lT
X01FRElBX0tFWV9TWVNURU1fUEVSTUlTU0lPTl9SRVFVRVNUX0NMQVNTKGtsYXNzKSAoR19UWVBF
X0NIRUNLX0NMQVNTX1RZUEUoKGtsYXNzKSwgIFdFQktJVF9UWVBFX01FRElBX0tFWV9TWVNURU1f
UEVSTUlTU0lPTl9SRVFVRVNUKSkKKyNkZWZpbmUgV0VCS0lUX01FRElBX0tFWV9TWVNURU1fUEVS
TUlTU0lPTl9SRVFVRVNUX0dFVF9DTEFTUyhvYmopICAoR19UWVBFX0lOU1RBTkNFX0dFVF9DTEFT
Uygob2JqKSwgIFdFQktJVF9UWVBFX01FRElBX0tFWV9TWVNURU1fUEVSTUlTU0lPTl9SRVFVRVNU
LCBXZWJLaXRNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0Q2xhc3MpKQorCit0eXBlZGVm
IHN0cnVjdCBfV2ViS2l0TWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdCAgICAgICAgV2Vi
S2l0TWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdDsKK3R5cGVkZWYgc3RydWN0IF9XZWJL
aXRNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0Q2xhc3MgICBXZWJLaXRNZWRpYUtleVN5
c3RlbVBlcm1pc3Npb25SZXF1ZXN0Q2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfV2ViS2l0TWVkaWFL
ZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdFByaXZhdGUgV2ViS2l0TWVkaWFLZXlTeXN0ZW1QZXJt
aXNzaW9uUmVxdWVzdFByaXZhdGU7CisKK3N0cnVjdCBfV2ViS2l0TWVkaWFLZXlTeXN0ZW1QZXJt
aXNzaW9uUmVxdWVzdCB7CisgICAgR09iamVjdCBwYXJlbnQ7CisKKyAgICAvKjwgcHJpdmF0ZSA+
Ki8KKyAgICBXZWJLaXRNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0UHJpdmF0ZSAqcHJp
djsKK307CisKK3N0cnVjdCBfV2ViS2l0TWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdENs
YXNzIHsKKyAgICBHT2JqZWN0Q2xhc3MgcGFyZW50X2NsYXNzOworCisgICAgdm9pZCAoKl93ZWJr
aXRfcmVzZXJ2ZWQwKSAodm9pZCk7CisgICAgdm9pZCAoKl93ZWJraXRfcmVzZXJ2ZWQxKSAodm9p
ZCk7CisgICAgdm9pZCAoKl93ZWJraXRfcmVzZXJ2ZWQyKSAodm9pZCk7CisgICAgdm9pZCAoKl93
ZWJraXRfcmVzZXJ2ZWQzKSAodm9pZCk7Cit9OworCitXRUJLSVRfQVBJIEdUeXBlCit3ZWJraXRf
bWVkaWFfa2V5X3N5c3RlbV9wZXJtaXNzaW9uX3JlcXVlc3RfZ2V0X3R5cGUgKHZvaWQpOworCitX
RUJLSVRfQVBJIGNvbnN0IGdjaGFyKgord2Via2l0X21lZGlhX2tleV9zeXN0ZW1fcGVybWlzc2lv
bl9nZXRfbmFtZSAoV2ViS2l0TWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdCAqcmVxdWVz
dCk7CisKK0dfRU5EX0RFQ0xTCisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL2d0ay9kb2NzL3dlYmtpdDJndGstNC4wLXNlY3Rpb25zLnR4dCBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvZG9jcy93ZWJraXQyZ3RrLTQuMC1zZWN0aW9ucy50
eHQKaW5kZXggZjZmNWI4YzUxZTZjOThiY2JiNmU1ODk0YTBiNjg3OGUyMWNjODc1Yi4uZjFjZmE0
NGM3Mjc4MzRiZDEwYmE3N2U3OTMzZTkwZjg5OWY4MGE3YSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL2d0ay9kb2NzL3dlYmtpdDJndGstNC4wLXNlY3Rpb25zLnR4dAor
KysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL2RvY3Mvd2Via2l0Mmd0ay00LjAt
c2VjdGlvbnMudHh0CkBAIC04MDQsNiArODA0LDI1IEBAIFdlYktpdFVzZXJNZWRpYVBlcm1pc3Np
b25SZXF1ZXN0UHJpdmF0ZQogd2Via2l0X3VzZXJfbWVkaWFfcGVybWlzc2lvbl9yZXF1ZXN0X2dl
dF90eXBlCiA8L1NFQ1RJT04+CiAKKzxTRUNUSU9OPgorPEZJTEU+V2ViS2l0TWVkaWFLZXlTeXN0
ZW1QZXJtaXNzaW9uUmVxdWVzdDwvRklMRT4KK1dlYktpdE1lZGlhS2V5U3lzdGVtUGVybWlzc2lv
blJlcXVlc3QKK3dlYmtpdF9tZWRpYV9rZXlfc3lzdGVtX3Blcm1pc3Npb25fZ2V0X25hbWUKKwor
PFNVQlNFQ1RJT04gU3RhbmRhcmQ+CitXZWJLaXRNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1
ZXN0Q2xhc3MKK1dFQktJVF9UWVBFX01FRElBX0tFWV9TWVNURU1fUEVSTUlTU0lPTl9SRVFVRVNU
CitXRUJLSVRfTUVESUFfS0VZX1NZU1RFTV9QRVJNSVNTSU9OX1JFUVVFU1QKK1dFQktJVF9JU19N
RURJQV9LRVlfU1lTVEVNX1BFUk1JU1NJT05fUkVRVUVTVAorV0VCS0lUX01FRElBX0tFWV9TWVNU
RU1fUEVSTUlTU0lPTl9SRVFVRVNUX0NMQVNTCitXRUJLSVRfSVNfTUVESUFfS0VZX1NZU1RFTV9Q
RVJNSVNTSU9OX1JFUVVFU1RfQ0xBU1MKK1dFQktJVF9NRURJQV9LRVlfU1lTVEVNX1BFUk1JU1NJ
T05fUkVRVUVTVF9HRVRfQ0xBU1MKKworPFNVQlNFQ1RJT04gUHJpdmF0ZT4KK1dlYktpdE1lZGlh
S2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RQcml2YXRlCit3ZWJraXRfbWVkaWFfa2V5X3N5c3Rl
bV9wZXJtaXNzaW9uX3JlcXVlc3RfZ2V0X3R5cGUKKzwvU0VDVElPTj4KKwogPFNFQ1RJT04+CiA8
RklMRT5XZWJLaXROb3RpZmljYXRpb248L0ZJTEU+CiBXZWJLaXROb3RpZmljYXRpb24KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvZG9jcy93ZWJraXQyZ3RrLWRv
Y3Muc2dtbCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvZG9jcy93ZWJraXQyZ3Rr
LWRvY3Muc2dtbAppbmRleCBkOGFjODIzMzMyZjI5NDYyOWY4NzUyMzBkNjJkNjcyYmRkMjlkZjM5
Li40MTFlZTY0ZDgzMzMzZjA1MjMwNmM1Yjk5ZDA3M2JiNDI3OTc4YTY1IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL2RvY3Mvd2Via2l0Mmd0ay1kb2NzLnNnbWwK
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0ay9kb2NzL3dlYmtpdDJndGstZG9j
cy5zZ21sCkBAIC0yNCw2ICsyNCw3IEBACiAgICAgPHhpOmluY2x1ZGUgaHJlZj0ieG1sL1dlYktp
dFBlcm1pc3Npb25SZXF1ZXN0LnhtbCIvPgogICAgIDx4aTppbmNsdWRlIGhyZWY9InhtbC9XZWJL
aXRHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0LnhtbCIvPgogICAgIDx4aTppbmNsdWRlIGhy
ZWY9InhtbC9XZWJLaXRJbnN0YWxsTWlzc2luZ01lZGlhUGx1Z2luc1Blcm1pc3Npb25SZXF1ZXN0
LnhtbCIvPgorICAgIDx4aTppbmNsdWRlIGhyZWY9InhtbC9XZWJLaXRNZWRpYUtleVN5c3RlbVBl
cm1pc3Npb25SZXF1ZXN0LnhtbCIvPgogICAgIDx4aTppbmNsdWRlIGhyZWY9InhtbC9XZWJLaXRO
YXZpZ2F0aW9uQWN0aW9uLnhtbCIvPgogICAgIDx4aTppbmNsdWRlIGhyZWY9InhtbC9XZWJLaXRV
c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdC54bWwiLz4KICAgICA8eGk6aW5jbHVkZSBocmVmPSJ4
bWwvV2ViS2l0RGV2aWNlSW5mb1Blcm1pc3Npb25SZXF1ZXN0LnhtbCIvPgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0ay93ZWJraXQyLmggYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvZ3RrL3dlYmtpdDIuaAppbmRleCBjMzU4MTE4MzYwYTM4YzdiNDYyMjI3
YWE0YWI4Mzg4YmQ3OTQyYzNlLi5lY2JlNDMzZWQ4ODgzNTNiMWU2MDEzOTQzYjQ0NjM4MzVjMzU4
MmQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL3dlYmtpdDIu
aAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL3dlYmtpdDIuaApAQCAtMzIs
NiArMzIsNyBAQAogI2luY2x1ZGUgPHdlYmtpdDIvV2ViS2l0QXV0b21hdGlvblNlc3Npb24uaD4K
ICNpbmNsdWRlIDx3ZWJraXQyL1dlYktpdEJhY2tGb3J3YXJkTGlzdC5oPgogI2luY2x1ZGUgPHdl
YmtpdDIvV2ViS2l0QmFja0ZvcndhcmRMaXN0SXRlbS5oPgorI2luY2x1ZGUgPHdlYmtpdDIvV2Vi
S2l0Q29sb3JDaG9vc2VyUmVxdWVzdC5oPgogI2luY2x1ZGUgPHdlYmtpdDIvV2ViS2l0Q29udGV4
dE1lbnUuaD4KICNpbmNsdWRlIDx3ZWJraXQyL1dlYktpdENvbnRleHRNZW51QWN0aW9ucy5oPgog
I2luY2x1ZGUgPHdlYmtpdDIvV2ViS2l0Q29udGV4dE1lbnVJdGVtLmg+CkBAIC00NSw3ICs0Niw2
IEBACiAjaW5jbHVkZSA8d2Via2l0Mi9XZWJLaXRFbnVtVHlwZXMuaD4KICNpbmNsdWRlIDx3ZWJr
aXQyL1dlYktpdEVycm9yLmg+CiAjaW5jbHVkZSA8d2Via2l0Mi9XZWJLaXRGYXZpY29uRGF0YWJh
c2UuaD4KLSNpbmNsdWRlIDx3ZWJraXQyL1dlYktpdENvbG9yQ2hvb3NlclJlcXVlc3QuaD4KICNp
bmNsdWRlIDx3ZWJraXQyL1dlYktpdEZpbGVDaG9vc2VyUmVxdWVzdC5oPgogI2luY2x1ZGUgPHdl
YmtpdDIvV2ViS2l0RmluZENvbnRyb2xsZXIuaD4KICNpbmNsdWRlIDx3ZWJraXQyL1dlYktpdEZv
cm1TdWJtaXNzaW9uUmVxdWVzdC5oPgpAQCAtNTUsNiArNTUsNyBAQAogI2luY2x1ZGUgPHdlYmtp
dDIvV2ViS2l0SW5wdXRNZXRob2RDb250ZXh0Lmg+CiAjaW5jbHVkZSA8d2Via2l0Mi9XZWJLaXRJ
bnN0YWxsTWlzc2luZ01lZGlhUGx1Z2luc1Blcm1pc3Npb25SZXF1ZXN0Lmg+CiAjaW5jbHVkZSA8
d2Via2l0Mi9XZWJLaXRKYXZhc2NyaXB0UmVzdWx0Lmg+CisjaW5jbHVkZSA8d2Via2l0Mi9XZWJL
aXRNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0Lmg+CiAjaW5jbHVkZSA8d2Via2l0Mi9X
ZWJLaXRNaW1lSW5mby5oPgogI2luY2x1ZGUgPHdlYmtpdDIvV2ViS2l0TmF2aWdhdGlvbkFjdGlv
bi5oPgogI2luY2x1ZGUgPHdlYmtpdDIvV2ViS2l0TmF2aWdhdGlvblBvbGljeURlY2lzaW9uLmg+
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvd3BlL1dlYktpdE1lZGlh
S2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3QuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS93cGUvV2ViS2l0TWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdC5oCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjljODk4YWYxNjQ3MGRjYTE4ODUyNjk2ODI2OGFmOWZkYmMzNWIxM2YKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvd3BlL1dlYktpdE1lZGlhS2V5U3lzdGVt
UGVybWlzc2lvblJlcXVlc3QuaApAQCAtMCwwICsxLDY3IEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDIxIElnYWxpYSBTLkwuCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7
IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0
ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVi
bGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogdmVyc2lv
biAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9u
LgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0
IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2
ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiBMaWJyYXJ5IEdlbmVy
YWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhh
dmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNl
bnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElC
LiAgSWYgbm90LCB3cml0ZSB0bworICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5j
LiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAqIEJvc3RvbiwgTUEgMDIxMTAt
MTMwMSwgVVNBLgorICovCisKKyNpZiAhZGVmaW5lZChfX1dFQktJVDJfSF9JTlNJREVfXykgJiYg
IWRlZmluZWQoV0VCS0lUMl9DT01QSUxBVElPTikKKyNlcnJvciAiT25seSA8d2Via2l0Mi93ZWJr
aXQyLmg+IGNhbiBiZSBpbmNsdWRlZCBkaXJlY3RseS4iCisjZW5kaWYKKworI2lmbmRlZiBXZWJL
aXRNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0X2gKKyNkZWZpbmUgV2ViS2l0TWVkaWFL
ZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdF9oCisKKyNpbmNsdWRlIDxnbGliLW9iamVjdC5oPgor
I2luY2x1ZGUgPHdwZS9XZWJLaXREZWZpbmVzLmg+CisKK0dfQkVHSU5fREVDTFMKKworI2RlZmlu
ZSBXRUJLSVRfVFlQRV9NRURJQV9LRVlfU1lTVEVNX1BFUk1JU1NJT05fUkVRVUVTVCAgICAgICAg
ICAgICh3ZWJraXRfbWVkaWFfa2V5X3N5c3RlbV9wZXJtaXNzaW9uX3JlcXVlc3RfZ2V0X3R5cGUo
KSkKKyNkZWZpbmUgV0VCS0lUX01FRElBX0tFWV9TWVNURU1fUEVSTUlTU0lPTl9SRVFVRVNUKG9i
aikgICAgICAgICAgICAoR19UWVBFX0NIRUNLX0lOU1RBTkNFX0NBU1QoKG9iaiksIFdFQktJVF9U
WVBFX01FRElBX0tFWV9TWVNURU1fUEVSTUlTU0lPTl9SRVFVRVNULCBXZWJLaXRNZWRpYUtleVN5
c3RlbVBlcm1pc3Npb25SZXF1ZXN0KSkKKyNkZWZpbmUgV0VCS0lUX01FRElBX0tFWV9TWVNURU1f
UEVSTUlTU0lPTl9SRVFVRVNUX0NMQVNTKGtsYXNzKSAgICAoR19UWVBFX0NIRUNLX0NMQVNTX0NB
U1QoKGtsYXNzKSwgIFdFQktJVF9UWVBFX01FRElBX0tFWV9TWVNURU1fUEVSTUlTU0lPTl9SRVFV
RVNULCBXZWJLaXRNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0Q2xhc3MpKQorI2RlZmlu
ZSBXRUJLSVRfSVNfTUVESUFfS0VZX1NZU1RFTV9QRVJNSVNTSU9OX1JFUVVFU1Qob2JqKSAgICAg
ICAgIChHX1RZUEVfQ0hFQ0tfSU5TVEFOQ0VfVFlQRSgob2JqKSwgV0VCS0lUX1RZUEVfTUVESUFf
S0VZX1NZU1RFTV9QRVJNSVNTSU9OX1JFUVVFU1QpKQorI2RlZmluZSBXRUJLSVRfSVNfTUVESUFf
S0VZX1NZU1RFTV9QRVJNSVNTSU9OX1JFUVVFU1RfQ0xBU1Moa2xhc3MpIChHX1RZUEVfQ0hFQ0tf
Q0xBU1NfVFlQRSgoa2xhc3MpLCAgV0VCS0lUX1RZUEVfTUVESUFfS0VZX1NZU1RFTV9QRVJNSVNT
SU9OX1JFUVVFU1QpKQorI2RlZmluZSBXRUJLSVRfTUVESUFfS0VZX1NZU1RFTV9QRVJNSVNTSU9O
X1JFUVVFU1RfR0VUX0NMQVNTKG9iaikgIChHX1RZUEVfSU5TVEFOQ0VfR0VUX0NMQVNTKChvYmop
LCAgV0VCS0lUX1RZUEVfTUVESUFfS0VZX1NZU1RFTV9QRVJNSVNTSU9OX1JFUVVFU1QsIFdlYktp
dE1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RDbGFzcykpCisKK3R5cGVkZWYgc3RydWN0
IF9XZWJLaXRNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0ICAgICAgICBXZWJLaXRNZWRp
YUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0OwordHlwZWRlZiBzdHJ1Y3QgX1dlYktpdE1lZGlh
S2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RDbGFzcyAgIFdlYktpdE1lZGlhS2V5U3lzdGVtUGVy
bWlzc2lvblJlcXVlc3RDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9XZWJLaXRNZWRpYUtleVN5c3Rl
bVBlcm1pc3Npb25SZXF1ZXN0UHJpdmF0ZSBXZWJLaXRNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25S
ZXF1ZXN0UHJpdmF0ZTsKKworc3RydWN0IF9XZWJLaXRNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25S
ZXF1ZXN0IHsKKyAgICBHT2JqZWN0IHBhcmVudDsKKworICAgIC8qPCBwcml2YXRlID4qLworICAg
IFdlYktpdE1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RQcml2YXRlICpwcml2OworfTsK
Kworc3RydWN0IF9XZWJLaXRNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0Q2xhc3Mgewor
ICAgIEdPYmplY3RDbGFzcyBwYXJlbnRfY2xhc3M7CisKKyAgICB2b2lkICgqX3dlYmtpdF9yZXNl
cnZlZDApICh2b2lkKTsKKyAgICB2b2lkICgqX3dlYmtpdF9yZXNlcnZlZDEpICh2b2lkKTsKKyAg
ICB2b2lkICgqX3dlYmtpdF9yZXNlcnZlZDIpICh2b2lkKTsKKyAgICB2b2lkICgqX3dlYmtpdF9y
ZXNlcnZlZDMpICh2b2lkKTsKK307CisKK1dFQktJVF9BUEkgR1R5cGUKK3dlYmtpdF9tZWRpYV9r
ZXlfc3lzdGVtX3Blcm1pc3Npb25fcmVxdWVzdF9nZXRfdHlwZSAodm9pZCk7CisKK1dFQktJVF9B
UEkgY29uc3QgZ2NoYXIqCit3ZWJraXRfbWVkaWFfa2V5X3N5c3RlbV9wZXJtaXNzaW9uX2dldF9u
YW1lIChXZWJLaXRNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0ICpyZXF1ZXN0KTsKKwor
R19FTkRfREVDTFMKKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvd3BlL2RvY3Mvd3BlLTEuMC1zZWN0aW9ucy50eHQgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvd3BlL2RvY3Mvd3BlLTEuMC1zZWN0aW9ucy50eHQKaW5kZXggMGVlMjUwZTU2MzM4
Y2RhNzMzMmQ3MDUwODU4MmE1OWE3YWQyMWM4MC4uODI1ZDUxMDBiNmE2OWFjZjVhN2EyMDk1Mzgz
NzZkMmM4NTJkYmFjOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL3dw
ZS9kb2NzL3dwZS0xLjAtc2VjdGlvbnMudHh0CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS93cGUvZG9jcy93cGUtMS4wLXNlY3Rpb25zLnR4dApAQCAtODA4LDYgKzgwOCwyNSBAQCBX
ZWJLaXRVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByaXZhdGUKIHdlYmtpdF91c2VyX21lZGlh
X3Blcm1pc3Npb25fcmVxdWVzdF9nZXRfdHlwZQogPC9TRUNUSU9OPgogCis8U0VDVElPTj4KKzxG
SUxFPldlYktpdE1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3Q8L0ZJTEU+CitXZWJLaXRN
ZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0Cit3ZWJraXRfbWVkaWFfa2V5X3N5c3RlbV9w
ZXJtaXNzaW9uX2dldF9uYW1lCisKKzxTVUJTRUNUSU9OIFN0YW5kYXJkPgorV2ViS2l0TWVkaWFL
ZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdENsYXNzCitXRUJLSVRfVFlQRV9NRURJQV9LRVlfU1lT
VEVNX1BFUk1JU1NJT05fUkVRVUVTVAorV0VCS0lUX01FRElBX0tFWV9TWVNURU1fUEVSTUlTU0lP
Tl9SRVFVRVNUCitXRUJLSVRfSVNfTUVESUFfS0VZX1NZU1RFTV9QRVJNSVNTSU9OX1JFUVVFU1QK
K1dFQktJVF9NRURJQV9LRVlfU1lTVEVNX1BFUk1JU1NJT05fUkVRVUVTVF9DTEFTUworV0VCS0lU
X0lTX01FRElBX0tFWV9TWVNURU1fUEVSTUlTU0lPTl9SRVFVRVNUX0NMQVNTCitXRUJLSVRfTUVE
SUFfS0VZX1NZU1RFTV9QRVJNSVNTSU9OX1JFUVVFU1RfR0VUX0NMQVNTCisKKzxTVUJTRUNUSU9O
IFByaXZhdGU+CitXZWJLaXRNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0UHJpdmF0ZQor
d2Via2l0X21lZGlhX2tleV9zeXN0ZW1fcGVybWlzc2lvbl9yZXF1ZXN0X2dldF90eXBlCis8L1NF
Q1RJT04+CisKIDxTRUNUSU9OPgogPEZJTEU+V2ViS2l0Tm90aWZpY2F0aW9uPC9GSUxFPgogV2Vi
S2l0Tm90aWZpY2F0aW9uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
d3BlL2RvY3Mvd3BlLWRvY3Muc2dtbCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS93cGUv
ZG9jcy93cGUtZG9jcy5zZ21sCmluZGV4IDA5YWY0ZmM5YmI0ZDVmYjU1OTZhMTc2NTgxNzMyYmMw
ZGMyZTMzMWIuLjhlMjU3ZjAyZjExZmViZWNkMmE1NjczYjhlODcwNmQ1ZWM2YzY4MzkgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS93cGUvZG9jcy93cGUtZG9jcy5zZ21s
CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS93cGUvZG9jcy93cGUtZG9jcy5zZ21s
CkBAIC0yNSw2ICsyNSw3IEBACiAgICAgPHhpOmluY2x1ZGUgaHJlZj0ieG1sL1dlYktpdFBlcm1p
c3Npb25SZXF1ZXN0LnhtbCIvPgogICAgIDx4aTppbmNsdWRlIGhyZWY9InhtbC9XZWJLaXRHZW9s
b2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0LnhtbCIvPgogICAgIDx4aTppbmNsdWRlIGhyZWY9Inht
bC9XZWJLaXRJbnN0YWxsTWlzc2luZ01lZGlhUGx1Z2luc1Blcm1pc3Npb25SZXF1ZXN0LnhtbCIv
PgorICAgIDx4aTppbmNsdWRlIGhyZWY9InhtbC9XZWJLaXRNZWRpYUtleVN5c3RlbVBlcm1pc3Np
b25SZXF1ZXN0LnhtbCIvPgogICAgIDx4aTppbmNsdWRlIGhyZWY9InhtbC9XZWJLaXROYXZpZ2F0
aW9uQWN0aW9uLnhtbCIvPgogICAgIDx4aTppbmNsdWRlIGhyZWY9InhtbC9XZWJLaXRVc2VyTWVk
aWFQZXJtaXNzaW9uUmVxdWVzdC54bWwiLz4KICAgICA8eGk6aW5jbHVkZSBocmVmPSJ4bWwvV2Vi
S2l0UG9saWN5RGVjaXNpb24ueG1sIi8+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9NZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0LmggYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9NZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0LmgKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNGFm
YzM1ZDAxNzcyZDU4OTdjNzdlYWMwMTA3YmM5YmU3NGI0NjI4YQotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL01lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3Qu
aApAQCAtMCwwICsxLDc2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIElnYWxpYSBTLkwu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAiQVBJT2JqZWN0LmgiCisjaW5j
bHVkZSA8V2ViQ29yZS9DbGllbnRPcmlnaW4uaD4KKyNpbmNsdWRlIDx3dGYvQ29tcGxldGlvbkhh
bmRsZXIuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIE1lZGlhS2V5U3lzdGVtUGVy
bWlzc2lvblJlcXVlc3QgOiBwdWJsaWMgUmVmQ291bnRlZDxNZWRpYUtleVN5c3RlbVBlcm1pc3Np
b25SZXF1ZXN0PiB7CitwdWJsaWM6CisgICAgc3RhdGljIFJlZjxNZWRpYUtleVN5c3RlbVBlcm1p
c3Npb25SZXF1ZXN0PiBjcmVhdGUoY29uc3QgU3RyaW5nJiBrZXlTeXN0ZW0sIENvbXBsZXRpb25I
YW5kbGVyPHZvaWQoYm9vbCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCisgICAgeworICAgICAgICBy
ZXR1cm4gYWRvcHRSZWYoKm5ldyBNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0KGtleVN5
c3RlbSwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpKTsKKyAgICB9CisKKyAgICB2b2lkIGNv
bXBsZXRlKGJvb2wgc3VjY2VzcykKKyAgICB7CisgICAgICAgIGF1dG8gY29tcGxldGlvbkhhbmRs
ZXIgPSBzdGQ6OmV4Y2hhbmdlKG1fY29tcGxldGlvbkhhbmRsZXIsIHsgfSk7CisgICAgICAgIGNv
bXBsZXRpb25IYW5kbGVyKHN1Y2Nlc3MpOworICAgIH0KKworICAgIGNvbnN0IFN0cmluZyYga2V5
U3lzdGVtKCkgY29uc3QgeyByZXR1cm4gbV9rZXlTeXN0ZW07IH0KKworcHJpdmF0ZToKKyAgICBN
ZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0KGNvbnN0IFN0cmluZyYga2V5U3lzdGVtLCBD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQorICAgICAg
ICA6IG1fa2V5U3lzdGVtKGtleVN5c3RlbSkKKyAgICAgICAgLCBtX2NvbXBsZXRpb25IYW5kbGVy
KFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKQorICAgIHsgfQorCisgICAgU3RyaW5nIG1fa2V5
U3lzdGVtOworICAgIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+IG1fY29tcGxldGlvbkhh
bmRsZXI7Cit9OworCitjbGFzcyBNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25DYWxsYmFjayA6IHB1
YmxpYyBBUEk6Ok9iamVjdEltcGw8QVBJOjpPYmplY3Q6OlR5cGU6Ok1lZGlhS2V5U3lzdGVtUGVy
bWlzc2lvbkNhbGxiYWNrPiB7CitwdWJsaWM6CisgICAgc3RhdGljIFJlZjxNZWRpYUtleVN5c3Rl
bVBlcm1pc3Npb25DYWxsYmFjaz4gY3JlYXRlKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+
JiYgY29tcGxldGlvbkhhbmRsZXIpCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5l
dyBNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25DYWxsYmFjayhXVEZNb3ZlKGNvbXBsZXRpb25IYW5k
bGVyKSkpOworICAgIH0KKworICAgIHZvaWQgY29tcGxldGUoYm9vbCBncmFudGVkKSB7IG1fY29t
cGxldGlvbkhhbmRsZXIoZ3JhbnRlZCk7IH0KKworcHJpdmF0ZToKKyAgICBNZWRpYUtleVN5c3Rl
bVBlcm1pc3Npb25DYWxsYmFjayhDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmIGNvbXBs
ZXRpb25IYW5kbGVyKQorICAgICAgICA6IG1fY29tcGxldGlvbkhhbmRsZXIoV1RGTW92ZShjb21w
bGV0aW9uSGFuZGxlcikpCisgICAgeyB9CisKKyAgICBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJv
b2wpPiBtX2NvbXBsZXRpb25IYW5kbGVyOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9NZWRpYUtleVN5c3RlbVBlcm1pc3Np
b25SZXF1ZXN0TWFuYWdlclByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL01lZGlh
S2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuY3BwCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmJi
M2U0NTJkNTgzNTE5OGUyYmI1YWVmMjMyNDRhNWZkZWNmZWQwMDcKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9NZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0
TWFuYWdlclByb3h5LmNwcApAQCAtMCwwICsxLDEyNCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAyMSBJZ2FsaWEgUy5MLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVk
ZSAiTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5oIgorCisjaW5j
bHVkZSAiQVBJU2VjdXJpdHlPcmlnaW4uaCIKKyNpbmNsdWRlICJBUElVSUNsaWVudC5oIgorI2lu
Y2x1ZGUgIkxvZ2dpbmcuaCIKKyNpbmNsdWRlICJXZWJBdXRvbWF0aW9uU2Vzc2lvbi5oIgorI2lu
Y2x1ZGUgIldlYlBhZ2VNZXNzYWdlcy5oIgorI2luY2x1ZGUgIldlYlBhZ2VQcm94eS5oIgorI2lu
Y2x1ZGUgIldlYlByb2Nlc3MuaCIKKyNpbmNsdWRlICJXZWJQcm9jZXNzUG9vbC5oIgorI2luY2x1
ZGUgIldlYlByb2Nlc3NQcm94eS5oIgorI2luY2x1ZGUgIldlYnNpdGVEYXRhU3RvcmUuaCIKKyNp
bmNsdWRlIDxXZWJDb3JlL01lZGlhS2V5U3lzdGVtUmVxdWVzdC5oPgorI2luY2x1ZGUgPFdlYkNv
cmUvU2VjdXJpdHlPcmlnaW5EYXRhLmg+CisjaW5jbHVkZSA8d3RmL1Njb3BlLmg+CisKK25hbWVz
cGFjZSBXZWJLaXQgewordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisKK01lZGlhS2V5U3lzdGVt
UGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6Ok1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJl
cXVlc3RNYW5hZ2VyUHJveHkoV2ViUGFnZVByb3h5JiBwYWdlKQorICAgIDogbV9wYWdlKHBhZ2Up
CisjaWYgIVJFTEVBU0VfTE9HX0RJU0FCTEVECisgICAgLCBtX2xvZ2dlcihwYWdlLmxvZ2dlcigp
KQorICAgICwgbV9sb2dJZGVudGlmaWVyKHVuaXF1ZUxvZ0lkZW50aWZpZXIoKSkKKyNlbmRpZgor
eworfQorCitNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5Ojp+TWVk
aWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eSgpCit7CisgICAgaW52YWxp
ZGF0ZVBlbmRpbmdSZXF1ZXN0cygpOworfQorCit2b2lkIE1lZGlhS2V5U3lzdGVtUGVybWlzc2lv
blJlcXVlc3RNYW5hZ2VyUHJveHk6OmludmFsaWRhdGVQZW5kaW5nUmVxdWVzdHMoKQoreworICAg
IGZvciAoYXV0byYgcmVxdWVzdCA6IG1fcGVuZGluZ1JlcXVlc3RzLnZhbHVlcygpKQorICAgICAg
ICByZXF1ZXN0LT5pbnZhbGlkYXRlKCk7CisKKyAgICBtX3BlbmRpbmdSZXF1ZXN0cy5jbGVhcigp
OworfQorCit2b2lkIE1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6
OmRlbnlSZXF1ZXN0KE1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RQcm94eSYgcmVxdWVz
dCwgY29uc3QgU3RyaW5nJiBtZXNzYWdlKQoreworICAgIGlmICghbV9wYWdlLmhhc1J1bm5pbmdQ
cm9jZXNzKCkpCisgICAgICAgIHJldHVybjsKKworICAgIEFMV0FZU19MT0coTE9HSURFTlRJRklF
UiwgcmVxdWVzdC5tZWRpYUtleVN5c3RlbUlEKCksICIsIHJlYXNvbjogIiwgbWVzc2FnZSk7CisK
KyNpZiBFTkFCTEUoRU5DUllQVEVEX01FRElBKQorICAgIG1fcGFnZS5zZW5kKE1lc3NhZ2VzOjpX
ZWJQYWdlOjpNZWRpYUtleVN5c3RlbVdhc0RlbmllZChyZXF1ZXN0Lm1lZGlhS2V5U3lzdGVtSUQo
KSwgbWVzc2FnZSkpOworI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0obWVzc2FnZSk7CisjZW5kaWYK
K30KKwordm9pZCBNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5Ojpn
cmFudFJlcXVlc3QoTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdFByb3h5JiByZXF1ZXN0
KQoreworICAgIGlmICghbV9wYWdlLmhhc1J1bm5pbmdQcm9jZXNzKCkpCisgICAgICAgIHJldHVy
bjsKKworI2lmIEVOQUJMRShFTkNSWVBURURfTUVESUEpCisgICAgQUxXQVlTX0xPRyhMT0dJREVO
VElGSUVSLCByZXF1ZXN0Lm1lZGlhS2V5U3lzdGVtSUQoKSwgIiwga2V5U3lzdGVtOiAiLCByZXF1
ZXN0LmtleVN5c3RlbSgpKTsKKworICAgIG1fcGFnZS5zZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2Fn
ZXM6OldlYlBhZ2U6Ok1lZGlhS2V5U3lzdGVtV2FzR3JhbnRlZCB7IHJlcXVlc3QubWVkaWFLZXlT
eXN0ZW1JRCgpIH0sIFtdIHsgfSk7CisjZWxzZQorICAgIFVOVVNFRF9QQVJBTShyZXF1ZXN0KTsK
KyNlbmRpZgorfQorCitSZWY8TWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdFByb3h5PiBN
ZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5OjpjcmVhdGVSZXF1ZXN0
Rm9yRnJhbWUodWludDY0X3QgbWVkaWFLZXlTeXN0ZW1JRCwgRnJhbWVJZGVudGlmaWVyIGZyYW1l
SUQsIFJlZjxTZWN1cml0eU9yaWdpbj4mJiB0b3BMZXZlbERvY3VtZW50T3JpZ2luLCBjb25zdCBT
dHJpbmcmIGtleVN5c3RlbSkKK3sKKyNpZiBFTkFCTEUoRU5DUllQVEVEX01FRElBKQorICAgIEFM
V0FZU19MT0coTE9HSURFTlRJRklFUiwgbWVkaWFLZXlTeXN0ZW1JRCk7CisKKyAgICBhdXRvIHJl
cXVlc3QgPSBNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0UHJveHk6OmNyZWF0ZSgqdGhp
cywgbWVkaWFLZXlTeXN0ZW1JRCwgbV9wYWdlLm1haW5GcmFtZSgpLT5mcmFtZUlEKCksIGZyYW1l
SUQsIFdURk1vdmUodG9wTGV2ZWxEb2N1bWVudE9yaWdpbiksIGtleVN5c3RlbSk7CisgICAgbV9w
ZW5kaW5nUmVxdWVzdHMuYWRkKG1lZGlhS2V5U3lzdGVtSUQsIHJlcXVlc3QucHRyKCkpOworICAg
IHJldHVybiByZXF1ZXN0OworI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0obWVkaWFLZXlTeXN0ZW1J
RCk7CisgICAgVU5VU0VEX1BBUkFNKGZyYW1lSUQpOworICAgIFVOVVNFRF9QQVJBTSh0b3BMZXZl
bERvY3VtZW50T3JpZ2luKTsKKyAgICBVTlVTRURfUEFSQU0oa2V5U3lzdGVtKTsKKyNlbmRpZgor
fQorCisjaWYgIVJFTEVBU0VfTE9HX0RJU0FCTEVECitXVEZMb2dDaGFubmVsJiBNZWRpYUtleVN5
c3RlbVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5Ojpsb2dDaGFubmVsKCkgY29uc3QKK3sK
KyAgICByZXR1cm4gV2ViS2l0MkxvZ0VNRTsKK30KKworY29uc3QgTG9nZ2VyJiBNZWRpYUtleVN5
c3RlbVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5Ojpsb2dnZXIoKSBjb25zdAoreworICAg
IHJldHVybiBtX3BhZ2UubG9nZ2VyKCk7Cit9CisjZW5kaWYKKworfSAvLyBuYW1lc3BhY2UgV2Vi
S2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9NZWRpYUtleVN5c3RlbVBl
cm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9N
ZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmgKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
YjAzYTYyODQ4MTFiZWYyZDIyMTMxYjdiZTEwZTg5M2MwNjcxODZmYwotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL01lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVl
c3RNYW5hZ2VyUHJveHkuaApAQCAtMCwwICsxLDg1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDIxIElnYWxpYSBTLkwuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAiTWVk
aWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdFByb3h5LmgiCisjaW5jbHVkZSA8V2ViQ29yZS9T
ZWN1cml0eU9yaWdpbi5oPgorI2luY2x1ZGUgPHd0Zi9Db21wbGV0aW9uSGFuZGxlci5oPgorI2lu
Y2x1ZGUgPHd0Zi9EZXF1ZS5oPgorI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CisjaW5jbHVkZSA8
d3RmL0xvZ2dlckhlbHBlci5oPgorI2luY2x1ZGUgPHd0Zi9SdW5Mb29wLmg+CisjaW5jbHVkZSA8
d3RmL1NlY29uZHMuaD4KKyNpbmNsdWRlIDx3dGYvV2Vha1B0ci5oPgorCituYW1lc3BhY2UgV2Vi
Q29yZSB7CitjbGFzcyBTZWN1cml0eU9yaWdpbjsKK307CisKK25hbWVzcGFjZSBXZWJLaXQgewor
CitjbGFzcyBXZWJQYWdlUHJveHk7CisKK2NsYXNzIE1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJl
cXVlc3RNYW5hZ2VyUHJveHkKKyAgICA6IHB1YmxpYyBDYW5NYWtlV2Vha1B0cjxNZWRpYUtleVN5
c3RlbVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5PgorI2lmICFSRUxFQVNFX0xPR19ESVNB
QkxFRAorICAgICwgcHJpdmF0ZSBMb2dnZXJIZWxwZXIKKyNlbmRpZgoreworICAgIFdURl9NQUtF
X0ZBU1RfQUxMT0NBVEVEOworcHVibGljOgorICAgIGV4cGxpY2l0IE1lZGlhS2V5U3lzdGVtUGVy
bWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkoV2ViUGFnZVByb3h5Jik7CisgICAgfk1lZGlhS2V5
U3lzdGVtUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkoKTsKKworICAgIFdlYlBhZ2VQcm94
eSYgcGFnZSgpIGNvbnN0IHsgcmV0dXJuIG1fcGFnZTsgfQorCisgICAgdm9pZCBpbnZhbGlkYXRl
UGVuZGluZ1JlcXVlc3RzKCk7CisKKyAgICBSZWY8TWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVx
dWVzdFByb3h5PiBjcmVhdGVSZXF1ZXN0Rm9yRnJhbWUodWludDY0X3QgdXNlck1lZGlhSUQsIFdl
YkNvcmU6OkZyYW1lSWRlbnRpZmllciwgUmVmPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luPiYmIHRv
cExldmVsRG9jdW1lbnRPcmlnaW4sIGNvbnN0IFN0cmluZyYga2V5U3lzdGVtKTsKKworICAgIHZv
aWQgZ3JhbnRSZXF1ZXN0KE1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RQcm94eSYpOwor
ICAgIHZvaWQgZGVueVJlcXVlc3QoTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdFByb3h5
JiwgY29uc3QgU3RyaW5nJiBtZXNzYWdlID0geyB9KTsKKworcHJpdmF0ZToKKyNpZiAhUkVMRUFT
RV9MT0dfRElTQUJMRUQKKyAgICBjb25zdCBMb2dnZXImIGxvZ2dlcigpIGNvbnN0IGZpbmFsOwor
ICAgIGNvbnN0IHZvaWQqIGxvZ0lkZW50aWZpZXIoKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX2xv
Z0lkZW50aWZpZXI7IH0KKyAgICBjb25zdCBjaGFyKiBsb2dDbGFzc05hbWUoKSBjb25zdCBvdmVy
cmlkZSB7IHJldHVybiAiTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94
eSI7IH0KKyAgICBXVEZMb2dDaGFubmVsJiBsb2dDaGFubmVsKCkgY29uc3QgZmluYWw7CisjZW5k
aWYKKworICAgIFdlYlBhZ2VQcm94eSYgbV9wYWdlOworCisgICAgSGFzaE1hcDx1aW50NjRfdCwg
UmVmUHRyPE1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RQcm94eT4+IG1fcGVuZGluZ1Jl
cXVlc3RzOworICAgIEhhc2hTZXQ8U3RyaW5nPiBtX3ZhbGlkQXV0aG9yaXphdGlvblRva2VuczsK
KworI2lmICFSRUxFQVNFX0xPR19ESVNBQkxFRAorICAgIFJlZjxjb25zdCBMb2dnZXI+IG1fbG9n
Z2VyOworICAgIGNvbnN0IHZvaWQqIG1fbG9nSWRlbnRpZmllcjsKKyNlbmRpZgorfTsKKworfSAv
LyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9N
ZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0UHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdFByb3h5LmNwcApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi5kMmI5MTU1ZDE1ODU2YTM0MDJiY2ZjMWY1NTI2OTIwZTAzNzkwYmRjCi0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9u
UmVxdWVzdFByb3h5LmNwcApAQCAtMCwwICsxLDgyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDIxIElnYWxpYSBTLkwuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRl
ICJNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0UHJveHkuaCIKKworI2luY2x1ZGUgIk1l
ZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuaCIKKyNpbmNsdWRlIDxX
ZWJDb3JlL1NlY3VyaXR5T3JpZ2luLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9TZWN1cml0eU9yaWdp
bkRhdGEuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdIYXNoLmg+CisKK25hbWVzcGFjZSBX
ZWJLaXQgewordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisKK01lZGlhS2V5U3lzdGVtUGVybWlz
c2lvblJlcXVlc3RQcm94eTo6TWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdFByb3h5KE1l
ZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkmIG1hbmFnZXIsIHVpbnQ2
NF90IG1lZGlhS2V5U3lzdGVtSUQsIEZyYW1lSWRlbnRpZmllciBtYWluRnJhbWVJRCwgRnJhbWVJ
ZGVudGlmaWVyIGZyYW1lSUQsIFJlZjxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbj4mJiB0b3BMZXZl
bERvY3VtZW50T3JpZ2luLCBjb25zdCBTdHJpbmcmIGtleVN5c3RlbSkKKyAgICA6IG1fbWFuYWdl
cigmbWFuYWdlcikKKyAgICAsIG1fbWVkaWFLZXlTeXN0ZW1JRChtZWRpYUtleVN5c3RlbUlEKQor
ICAgICwgbV9tYWluRnJhbWVJRChtYWluRnJhbWVJRCkKKyAgICAsIG1fZnJhbWVJRChmcmFtZUlE
KQorICAgICwgbV90b3BMZXZlbERvY3VtZW50U2VjdXJpdHlPcmlnaW4oV1RGTW92ZSh0b3BMZXZl
bERvY3VtZW50T3JpZ2luKSkKKyAgICAsIG1fa2V5U3lzdGVtKGtleVN5c3RlbSkKK3sKK30KKwor
dm9pZCBNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0UHJveHk6OmFsbG93KCkKK3sKKyAg
ICBBU1NFUlQobV9tYW5hZ2VyKTsKKyAgICBpZiAoIW1fbWFuYWdlcikKKyAgICAgICAgcmV0dXJu
OworCisgICAgbV9tYW5hZ2VyLT5ncmFudFJlcXVlc3QoKnRoaXMpOworICAgIGludmFsaWRhdGUo
KTsKK30KKwordm9pZCBNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0UHJveHk6OmRlbnko
KQoreworICAgIGlmICghbV9tYW5hZ2VyKQorICAgICAgICByZXR1cm47CisKKyAgICBtX21hbmFn
ZXItPmRlbnlSZXF1ZXN0KCp0aGlzKTsKKyAgICBpbnZhbGlkYXRlKCk7Cit9CisKK3ZvaWQgTWVk
aWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdFByb3h5OjppbnZhbGlkYXRlKCkKK3sKKyAgICBt
X21hbmFnZXIgPSBudWxscHRyOworfQorCit2b2lkIE1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJl
cXVlc3RQcm94eTo6ZG9EZWZhdWx0QWN0aW9uKCkKK3sKKyNpZiBQTEFURk9STShDT0NPQSkKKyAg
ICAvLyBCYWNrd2FyZCBjb21wYXRpYmlsaXR5IGZvciBwbGF0Zm9ybXMgbm90IHlldCBzdXBwb3J0
aW5nIHRoZSBNZWRpYUtleVN5c3RlbSBwZXJtaXNzaW9uIHJlcXVlc3QKKyAgICAvLyBpbiB0aGVp
ciBBUElVSUNsaWVudC4KKyAgICBhbGxvdygpOworI2Vsc2UKKyAgICBkZW55KCk7CisjZW5kaWYK
K30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9NZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0UHJveHkuaCBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL01lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RQcm94eS5oCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLmE2NGQxYzYyMDU3ZDU2OTcyMDU2ODZlODcxYWVjMjgzNjc1MDVkYzkKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9NZWRpYUtleVN5c3RlbVBlcm1p
c3Npb25SZXF1ZXN0UHJveHkuaApAQCAtMCwwICsxLDc2IEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDIxIElnYWxpYSBTLkwuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAi
QVBJT2JqZWN0LmgiCisjaW5jbHVkZSA8V2ViQ29yZS9GcmFtZUlkZW50aWZpZXIuaD4KKyNpbmNs
dWRlIDx3dGYvVmVjdG9yLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CisKK25h
bWVzcGFjZSBXZWJDb3JlIHsKK2NsYXNzIFNlY3VyaXR5T3JpZ2luOworfQorCituYW1lc3BhY2Ug
V2ViS2l0IHsKKworY2xhc3MgTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQ
cm94eTsKKworY2xhc3MgTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdFByb3h5IDogcHVi
bGljIFJlZkNvdW50ZWQ8TWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdFByb3h5PiB7Citw
dWJsaWM6CisgICAgc3RhdGljIFJlZjxNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0UHJv
eHk+IGNyZWF0ZShNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5JiBt
YW5hZ2VyLCB1aW50NjRfdCBtZWRpYUtleVN5c3RlbUlELCBXZWJDb3JlOjpGcmFtZUlkZW50aWZp
ZXIgbWFpbkZyYW1lSUQsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBSZWY8V2Vi
Q29yZTo6U2VjdXJpdHlPcmlnaW4+JiYgdG9wTGV2ZWxEb2N1bWVudE9yaWdpbiwgY29uc3QgU3Ry
aW5nJiBrZXlTeXN0ZW0pCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBNZWRp
YUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0UHJveHkobWFuYWdlciwgbWVkaWFLZXlTeXN0ZW1J
RCwgbWFpbkZyYW1lSUQsIGZyYW1lSUQsIFdURk1vdmUodG9wTGV2ZWxEb2N1bWVudE9yaWdpbiks
IGtleVN5c3RlbSkpOworICAgIH0KKworICAgIHZvaWQgYWxsb3coKTsKKyAgICB2b2lkIGRlbnko
KTsKKworICAgIHZvaWQgaW52YWxpZGF0ZSgpOworICAgIGJvb2wgaXNQZW5kaW5nKCkgY29uc3Qg
eyByZXR1cm4gbV9tYW5hZ2VyOyB9CisKKyAgICB1aW50NjRfdCBtZWRpYUtleVN5c3RlbUlEKCkg
Y29uc3QgeyByZXR1cm4gbV9tZWRpYUtleVN5c3RlbUlEOyB9CisgICAgV2ViQ29yZTo6RnJhbWVJ
ZGVudGlmaWVyIG1haW5GcmFtZUlEKCkgY29uc3QgeyByZXR1cm4gbV9tYWluRnJhbWVJRDsgfQor
ICAgIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlEKCkgY29uc3QgeyByZXR1cm4gbV9m
cmFtZUlEOyB9CisKKyAgICBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbiYgdG9wTGV2ZWxEb2N1bWVu
dFNlY3VyaXR5T3JpZ2luKCkgeyByZXR1cm4gbV90b3BMZXZlbERvY3VtZW50U2VjdXJpdHlPcmln
aW4uZ2V0KCk7IH0KKyAgICBjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbiYgdG9wTGV2ZWxE
b2N1bWVudFNlY3VyaXR5T3JpZ2luKCkgY29uc3QgeyByZXR1cm4gbV90b3BMZXZlbERvY3VtZW50
U2VjdXJpdHlPcmlnaW4uZ2V0KCk7IH0KKworICAgIGNvbnN0IFN0cmluZyYga2V5U3lzdGVtKCkg
Y29uc3QgeyByZXR1cm4gbV9rZXlTeXN0ZW07IH0KKworICAgIHZvaWQgZG9EZWZhdWx0QWN0aW9u
KCk7CisKK3ByaXZhdGU6CisgICAgTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdFByb3h5
KE1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkmLCB1aW50NjRfdCBt
ZWRpYUtleVN5c3RlbUlELCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgbWFpbkZyYW1lSUQsIFdl
YkNvcmU6OkZyYW1lSWRlbnRpZmllciwgUmVmPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luPiYmIHRv
cExldmVsRG9jdW1lbnRPcmlnaW4sIGNvbnN0IFN0cmluZyYga2V5U3lzdGVtKTsKKworICAgIE1l
ZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkqIG1fbWFuYWdlcjsKKyAg
ICB1aW50NjRfdCBtX21lZGlhS2V5U3lzdGVtSUQ7CisgICAgV2ViQ29yZTo6RnJhbWVJZGVudGlm
aWVyIG1fbWFpbkZyYW1lSUQ7CisgICAgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIG1fZnJhbWVJ
RDsKKyAgICBSZWY8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4+IG1fdG9wTGV2ZWxEb2N1bWVudFNl
Y3VyaXR5T3JpZ2luOworICAgIFN0cmluZyBtX2tleVN5c3RlbTsKK307CisKK30gLy8gbmFtZXNw
YWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3BlZWNoUmVj
b2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1NwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZS5jcHAKaW5k
ZXggYjlkOTMyMDk2MzlkZDNiZjhmMjc0ODM1MjRjZjQwNmQ2M2VjNjBhZC4uOTJkMDY0NzI2NGQz
ZmNlM2E3NmI3NTc2ZWI0MmJiZTI0NjY4NzNlMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlLmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0
aW1lTWVkaWFTb3VyY2UuY3BwCkBAIC0zNCw2ICszNCw4IEBACiAjaWYgUExBVEZPUk0oQ09DT0Ep
CiAjaW5jbHVkZSAiU2hhcmVkUmluZ0J1ZmZlclN0b3JhZ2UuaCIKICNlbmRpZgorI2luY2x1ZGUg
PFdlYkNvcmUvQ0FSaW5nQnVmZmVyLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9XZWJBdWRpb0J1ZmZl
ckxpc3QuaD4KIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKQEAgLTQ3LDcgKzQ5LDcgQEAgU3BlZWNo
UmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjpTcGVlY2hSZWNvZ25pdGlvblJl
bW90ZVJlYWx0aW1lTWVkaWEKICAgICAsIG1faWRlbnRpZmllcihpZGVudGlmaWVyKQogICAgICwg
bV9tYW5hZ2VyKG1ha2VXZWFrUHRyKG1hbmFnZXIpKQogI2lmIFBMQVRGT1JNKENPQ09BKQotICAg
ICwgbV9yaW5nQnVmZmVyKG1ha2VVbmlxdWU8Q0FSaW5nQnVmZmVyPigpKQorICAgICwgbV9yaW5n
QnVmZmVyKG1ha2VVbmlxdWU8V2ViQ29yZTo6Q0FSaW5nQnVmZmVyPigpKQogI2VuZGlmCiB7CiAg
ICAgbV9tYW5hZ2VyLT5hZGRTb3VyY2UoKnRoaXMsIGNhcHR1cmVEZXZpY2UpOwpAQCAtNzcsOCAr
NzksOCBAQCB2b2lkIFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6
c2V0U3RvcmFnZShjb25zdCBTaGFyZWRNZW1vcnk6OgogewogICAgIG1fZGVzY3JpcHRpb24gPSBk
ZXNjcmlwdGlvbjsKIAotICAgIG1fcmluZ0J1ZmZlciA9IG1ha2VVbmlxdWU8Q0FSaW5nQnVmZmVy
PihtYWtlVW5pcXVlUmVmPFJlYWRPbmx5U2hhcmVkUmluZ0J1ZmZlclN0b3JhZ2U+KGhhbmRsZSks
IGRlc2NyaXB0aW9uLCBudW1iZXJPZkZyYW1lcyk7Ci0gICAgbV9idWZmZXIgPSBtYWtlVW5pcXVl
PFdlYkF1ZGlvQnVmZmVyTGlzdD4oZGVzY3JpcHRpb24sIG51bWJlck9mRnJhbWVzKTsKKyAgICBt
X3JpbmdCdWZmZXIgPSBtYWtlVW5pcXVlPFdlYkNvcmU6OkNBUmluZ0J1ZmZlcj4obWFrZVVuaXF1
ZVJlZjxSZWFkT25seVNoYXJlZFJpbmdCdWZmZXJTdG9yYWdlPihoYW5kbGUpLCBkZXNjcmlwdGlv
biwgbnVtYmVyT2ZGcmFtZXMpOworICAgIG1fYnVmZmVyID0gbWFrZVVuaXF1ZTxXZWJDb3JlOjpX
ZWJBdWRpb0J1ZmZlckxpc3Q+KGRlc2NyaXB0aW9uLCBudW1iZXJPZkZyYW1lcyk7CiB9CiAKICNl
bmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRp
b25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9T
cGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UuaAppbmRleCA4YjUxMjUw
ZjVjYWQ3ZjNmNWNlNzhmNThkNjc2MzcxOTBjZjhiZjkxLi5hMWUyN2FkNWZkNzAzOGVkMmVkZWVi
MzJjMTViNTA5MTBkYWQ1MWUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9T
cGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3Vy
Y2UuaApAQCAtMjcsNiArMjcsNyBAQAogCiAjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKIAorI2lu
Y2x1ZGUgIlNoYXJlZE1lbW9yeS5oIgogI2luY2x1ZGUgPFdlYkNvcmUvUmVhbHRpbWVNZWRpYVNv
dXJjZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIu
aD4KIApAQCAtNDMsNyArNDQsOCBAQCBjbGFzcyBXZWJBdWRpb0J1ZmZlckxpc3Q7CiB9CiAKIG5h
bWVzcGFjZSBXZWJLaXQgewotCitjbGFzcyBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1l
TWVkaWFTb3VyY2VNYW5hZ2VyOworICAgIAogY2xhc3MgU3BlZWNoUmVjb2duaXRpb25SZW1vdGVS
ZWFsdGltZU1lZGlhU291cmNlIDogcHVibGljIFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2Ug
ewogcHVibGljOgogICAgIHN0YXRpYyBSZWY8V2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZT4g
Y3JlYXRlKFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIm
LCBjb25zdCBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2ViUGFnZVByb3h5LmNwcAppbmRleCBmMTJjODQ2ZTg4ZGJkMDYwYmE0NWE1MzRkOGI2ZjYyYWYy
OTE5MTEwLi5hYjY4YTNiZmYwYzc5N2JiYmY3ZThhYzgxOGM4MzdhMmUwYzU1OGRmIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKQEAgLTgyOTEsNiArODI5MSwyNyBA
QCB2b2lkIFdlYlBhZ2VQcm94eTo6Y2xlYXJVc2VyTWVkaWFTdGF0ZSgpCiAjZW5kaWYKIH0KIAor
dm9pZCBXZWJQYWdlUHJveHk6OnJlcXVlc3RNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25Gb3JGcmFt
ZSh1aW50NjRfdCBtZWRpYUtleVN5c3RlbUlELCBGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgY29u
c3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiB0b3BMZXZlbERvY3VtZW50T3JpZ2luRGF0
YSwgY29uc3QgU3RyaW5nJiBrZXlTeXN0ZW0pCit7CisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkK
KyAgICBNRVNTQUdFX0NIRUNLKG1fcHJvY2VzcywgbV9wcm9jZXNzLT53ZWJGcmFtZShmcmFtZUlE
KSk7CisKKyAgICBhdXRvIG9yaWdpbiA9IEFQSTo6U2VjdXJpdHlPcmlnaW46OmNyZWF0ZSh0b3BM
ZXZlbERvY3VtZW50T3JpZ2luRGF0YS5zZWN1cml0eU9yaWdpbigpKTsKKyAgICBhdXRvIHJlcXVl
c3QgPSBtZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcigpLmNyZWF0ZVJlcXVl
c3RGb3JGcmFtZShtZWRpYUtleVN5c3RlbUlELCBmcmFtZUlELCB0b3BMZXZlbERvY3VtZW50T3Jp
Z2luRGF0YS5zZWN1cml0eU9yaWdpbigpLCBrZXlTeXN0ZW0pOworICAgIG1fdWlDbGllbnQtPmRl
Y2lkZVBvbGljeUZvck1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3QoKnRoaXMsIG9yaWdp
biwga2V5U3lzdGVtLCBbcmVxdWVzdCA9IFdURk1vdmUocmVxdWVzdCldKGJvb2wgYWxsb3dlZCkg
eworICAgICAgICBpZiAoYWxsb3dlZCkKKyAgICAgICAgICAgIHJlcXVlc3QtPmFsbG93KCk7Cisg
ICAgICAgIGVsc2UKKyAgICAgICAgICAgIHJlcXVlc3QtPmRlbnkoKTsKKyAgICB9KTsKKyNlbHNl
CisgICAgVU5VU0VEX1BBUkFNKG1lZGlhS2V5U3lzdGVtSUQpOworICAgIFVOVVNFRF9QQVJBTShm
cmFtZUlEKTsKKyAgICBVTlVTRURfUEFSQU0odG9wTGV2ZWxEb2N1bWVudE9yaWdpbkRhdGEpOwor
ICAgIFVOVVNFRF9QQVJBTShrZXlTeXN0ZW0pOworI2VuZGlmCit9CisKICNpZiBFTkFCTEUoREVW
SUNFX09SSUVOVEFUSU9OKQogdm9pZCBXZWJQYWdlUHJveHk6OnNob3VsZEFsbG93RGV2aWNlT3Jp
ZW50YXRpb25BbmRNb3Rpb25BY2Nlc3MoRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIEZyYW1lSW5m
b0RhdGEmJiBmcmFtZUluZm8sIGJvb2wgbWF5UHJvbXB0LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KERldmljZU9yaWVudGF0aW9uT3JNb3Rpb25QZXJtaXNzaW9uU3RhdGUpPiYmIGNvbXBsZXRpb25I
YW5kbGVyKQogewpAQCAtODMwMSw2ICs4MzIyLDE3IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpzaG91
bGRBbGxvd0RldmljZU9yaWVudGF0aW9uQW5kTW90aW9uQWNjZXNzKEZyYW1lSWRlbnRpZmllciBm
CiB9CiAjZW5kaWYKIAorI2lmIEVOQUJMRShFTkNSWVBURURfTUVESUEpCitNZWRpYUtleVN5c3Rl
bVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5JiBXZWJQYWdlUHJveHk6Om1lZGlhS2V5U3lz
dGVtUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyKCkKK3sKKyAgICBpZiAobV9tZWRpYUtleVN5c3Rl
bVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcikKKyAgICAgICAgcmV0dXJuICptX21lZGlhS2V5U3lz
dGVtUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyOworCisgICAgbV9tZWRpYUtleVN5c3RlbVBlcm1p
c3Npb25SZXF1ZXN0TWFuYWdlciA9IG1ha2VVbmlxdWU8TWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9u
UmVxdWVzdE1hbmFnZXJQcm94eT4oKnRoaXMpOworICAgIHJldHVybiAqbV9tZWRpYUtleVN5c3Rl
bVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcjsKK30KKyNlbmRpZgorCiB2b2lkIFdlYlBhZ2VQcm94
eTo6cmVxdWVzdE5vdGlmaWNhdGlvblBlcm1pc3Npb24odWludDY0X3QgcmVxdWVzdElELCBjb25z
dCBTdHJpbmcmIG9yaWdpblN0cmluZykKIHsKICAgICBpZiAoIWlzUmVxdWVzdElEVmFsaWQocmVx
dWVzdElEKSkKQEAgLTEwNDE1LDYgKzEwNDQ3LDExIEBAIHZvaWQgV2ViUGFnZVByb3h5OjpyZXF1
ZXN0U3BlZWNoUmVjb2duaXRpb25QZXJtaXNzaW9uQnlEZWZhdWx0QWN0aW9uKGNvbnN0IFdlYkNv
CiAgICAgbV9zcGVlY2hSZWNvZ25pdGlvblBlcm1pc3Npb25NYW5hZ2VyLT5kZWNpZGVCeURlZmF1
bHRBY3Rpb24ob3JpZ2luLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CiB9CiAKK3ZvaWQg
V2ViUGFnZVByb3h5OjpyZXF1ZXN0TWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uQnlEZWZhdWx0QWN0
aW9uKGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luJiBvcmlnaW4sIENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoYm9vbCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCit7CisgICAgY29tcGxldGlvbkhh
bmRsZXIoZmFsc2UpOworfQorCiAjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKIAogV2ViQ29yZTo6
Q2FwdHVyZVNvdXJjZU9yRXJyb3IgV2ViUGFnZVByb3h5OjpjcmVhdGVSZWFsdGltZU1lZGlhU291
cmNlRm9yU3BlZWNoUmVjb2duaXRpb24oKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvV2ViUGFnZVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJv
eHkuaAppbmRleCA2YTk5MWRjMDVlZTRjMzYyZTc5MDVlYWU3ODMxNmMxYjY0MjQ3ZDEzLi4xZGRm
ZmFjNmJhNTBkM2RkNTAxMmExY2U3ZTQ2NDE3YTZiNDU4MWU2IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJQYWdlUHJveHkuaApAQCAtNDAsNiArNDAsNyBAQAogI2luY2x1ZGUgIkdlb2xvY2F0
aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuaCIKICNpbmNsdWRlICJIaWRkZW5QYWdl
VGhyb3R0bGluZ0F1dG9JbmNyZWFzZXNDb3VudGVyLmgiCiAjaW5jbHVkZSAiTGF5ZXJUcmVlQ29u
dGV4dC5oIgorI2luY2x1ZGUgIk1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RNYW5hZ2Vy
UHJveHkuaCIKICNpbmNsdWRlICJNZWRpYVBsYXliYWNrU3RhdGUuaCIKICNpbmNsdWRlICJNZXNz
YWdlU2VuZGVyLmgiCiAjaW5jbHVkZSAiTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5h
Z2VyUHJveHkuaCIKQEAgLTcyLDggKzczLDggQEAKICNpbmNsdWRlICJXZWJQYWdlUHJveHlJZGVu
dGlmaWVyLmgiCiAjaW5jbHVkZSAiV2ViUGFnZVByb3h5TWVzc2FnZXNSZXBsaWVzLmgiCiAjaW5j
bHVkZSAiV2ViUGF5bWVudENvb3JkaW5hdG9yUHJveHkuaCIKLSNpbmNsdWRlICJXZWJQcmVmZXJl
bmNlcy5oIgogI2luY2x1ZGUgIldlYlBvcHVwTWVudVByb3h5LmgiCisjaW5jbHVkZSAiV2ViUHJl
ZmVyZW5jZXMuaCIKICNpbmNsdWRlICJXZWJVbmRvU3RlcElELmgiCiAjaW5jbHVkZSAiV2Vic2l0
ZVBvbGljaWVzRGF0YS5oIgogI2luY2x1ZGUgPFdlYkNvcmUvQWN0aXZpdHlTdGF0ZS5oPgpAQCAt
MTgxOSw2ICsxODIwLDggQEAgcHVibGljOgogICAgIHZvaWQgcmVxdWVzdFNwZWVjaFJlY29nbml0
aW9uUGVybWlzc2lvbihjb25zdCBTdHJpbmcmIGxhbmcsIGNvbnN0IFdlYkNvcmU6OkNsaWVudE9y
aWdpbiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoT3B0aW9uYWw8V2ViQ29yZTo6U3BlZWNoUmVj
b2duaXRpb25FcnJvcj4mJik+JiYpOwogICAgIHZvaWQgcmVxdWVzdFNwZWVjaFJlY29nbml0aW9u
UGVybWlzc2lvbkJ5RGVmYXVsdEFjdGlvbihjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbiYs
IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYpOwogCisgICAgdm9pZCByZXF1ZXN0TWVk
aWFLZXlTeXN0ZW1QZXJtaXNzaW9uQnlEZWZhdWx0QWN0aW9uKGNvbnN0IFdlYkNvcmU6OlNlY3Vy
aXR5T3JpZ2luJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJik7CisKICAgICB2b2lk
IHN5bmNJZk1vY2tEZXZpY2VzRW5hYmxlZENoYW5nZWQoKTsKIAogI2lmIEVOQUJMRShBUFBfSElH
SExJR0hUUykKQEAgLTE5OTUsNiArMTk5OCwxMSBAQCBwcml2YXRlOgogICAgIHZvaWQgZW51bWVy
YXRlTWVkaWFEZXZpY2VzRm9yRnJhbWUoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBjb25zdCBX
ZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmIHVzZXJNZWRpYURvY3VtZW50T3JpZ2luRGF0YSwg
Y29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiB0b3BMZXZlbERvY3VtZW50T3JpZ2lu
RGF0YSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChjb25zdCBWZWN0b3I8V2ViQ29yZTo6Q2FwdHVy
ZURldmljZT4mLCBjb25zdCBTdHJpbmcmKT4mJik7CiAgICAgdm9pZCBiZWdpbk1vbml0b3JpbmdD
YXB0dXJlRGV2aWNlcygpOwogCisjaWYgRU5BQkxFKEVOQ1JZUFRFRF9NRURJQSkKKyAgICBNZWRp
YUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5JiBtZWRpYUtleVN5c3RlbVBl
cm1pc3Npb25SZXF1ZXN0TWFuYWdlcigpOworI2VuZGlmCisgICAgdm9pZCByZXF1ZXN0TWVkaWFL
ZXlTeXN0ZW1QZXJtaXNzaW9uRm9yRnJhbWUodWludDY0X3QgbWVkaWFLZXlTeXN0ZW1JRCwgV2Vi
Q29yZTo6RnJhbWVJZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEm
IHRvcExldmVsRG9jdW1lbnRPcmlnaW5JZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmKTsKKwogICAg
IHZvaWQgcnVuTW9kYWwoKTsKICAgICB2b2lkIG5vdGlmeVNjcm9sbGVyVGh1bWJJc1Zpc2libGVJ
blJlY3QoY29uc3QgV2ViQ29yZTo6SW50UmVjdCYpOwogICAgIHZvaWQgcmVjb21tZW5kZWRTY3Jv
bGxiYXJTdHlsZURpZENoYW5nZShpbnQzMl90IG5ld1N0eWxlKTsKQEAgLTI1MDQsNiArMjUxMiwx
MCBAQCBwcml2YXRlOgogICAgIHN0ZDo6dW5pcXVlX3B0cjxVc2VyTWVkaWFQZXJtaXNzaW9uUmVx
dWVzdE1hbmFnZXJQcm94eT4gbV91c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXI7CiAj
ZW5kaWYKIAorI2lmIEVOQUJMRShFTkNSWVBURURfTUVESUEpCisgICAgc3RkOjp1bmlxdWVfcHRy
PE1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk+IG1fbWVkaWFLZXlT
eXN0ZW1QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXI7CisjZW5kaWYKKwogICAgIE9wdGlvblNldDxX
ZWJDb3JlOjpBY3Rpdml0eVN0YXRlOjpGbGFnPiBtX2FjdGl2aXR5U3RhdGU7CiAgICAgYm9vbCBt
X3ZpZXdXYXNFdmVySW5XaW5kb3cgeyBmYWxzZSB9OwogI2lmIFBMQVRGT1JNKE1BQ0NBVEFMWVNU
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3Nh
Z2VzLmluIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmlu
CmluZGV4IGY0MDM0Njk4YTNlY2ViNTZkOTczNWViZGRkN2NkM2M0NGJlOTI2MTEuLjgxMGE2ZTQz
YTAwOTE4MDcxNDEwMzFmNjI1MTBmMGQ4MTdmMGJiOWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4KQEAgLTI4MCw2ICsyODAsMTAgQEAg
bWVzc2FnZXMgLT4gV2ViUGFnZVByb3h5IHsKICAgICBCZWdpbk1vbml0b3JpbmdDYXB0dXJlRGV2
aWNlcygpCiAjZW5kaWYKIAorI2lmIEVOQUJMRShFTkNSWVBURURfTUVESUEpCisgICAgUmVxdWVz
dE1lZGlhS2V5U3lzdGVtUGVybWlzc2lvbkZvckZyYW1lKHVpbnQ2NF90IHVzZXJNZWRpYUlELCBX
ZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgc3RydWN0IFdlYkNvcmU6OlNlY3VyaXR5
T3JpZ2luRGF0YSB0b3BMZXZlbERvY3VtZW50T3JpZ2luSWRlbnRpZmllciwgU3RyaW5nIGtleVN5
c3RlbSkKKyNlbmRpZgorCiAgICAgIyBOb3RpZmljYXRpb24gbWVzc2FnZXMKICAgICBSZXF1ZXN0
Tm90aWZpY2F0aW9uUGVybWlzc2lvbih1aW50NjRfdCByZXF1ZXN0SUQsIFN0cmluZyBvcmlnaW5J
ZGVudGlmaWVyKQogICAgIFNob3dOb3RpZmljYXRpb24oU3RyaW5nIHRpdGxlLCBTdHJpbmcgYm9k
eSwgU3RyaW5nIGljb25VUkwsIFN0cmluZyB0YWcsIFN0cmluZyBsYW5nLCBlbnVtOnVpbnQ4X3Qg
V2ViQ29yZTo6Tm90aWZpY2F0aW9uRGlyZWN0aW9uIGRpciwgU3RyaW5nIG9yaWdpbklkZW50aWZp
ZXIsIHVpbnQ2NF90IG5vdGlmaWNhdGlvbklEKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9X
ZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggNWFiYTk2ZjM2NTc2ZDI4YTkyMzMxMjIyZGNh
Njc1MmNlZGM5MjQzNi4uNzA4NTA0MTdkMTVlYzJjNzljODA0NDM2NGUzOTk0MmYxYWFlODlhYSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBA
IC0xNTIwLDYgKzE1MjAsMTIgQEAKIAkJOTlFNzE0QzUxQzEyNEEwNDAwNjY1QjNBIC8qIF9XS0F1
dG9tYXRpb25EZWxlZ2F0ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gOTlFNzE0QzExQzEyNDlFNjAwNjY1QjNBIC8qIF9XS0F1dG9tYXRpb25EZWxlZ2F0
ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTk5
RTcxODlBMjFGNzlEOUUwMDU1RTk3NSAvKiBfV0tUb3VjaEV2ZW50R2VuZXJhdG9yLm1tIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTlFNzE4OTYyMUY3OUQ5
RDAwNTVFOTc1IC8qIF9XS1RvdWNoRXZlbnRHZW5lcmF0b3IubW0gKi87IH07CiAJCTk5RTcxODlD
MjFGNzlEOUUwMDU1RTk3NSAvKiBfV0tUb3VjaEV2ZW50R2VuZXJhdG9yLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5OUU3MTg5ODIxRjc5RDlFMDA1NUU5
NzUgLyogX1dLVG91Y2hFdmVudEdlbmVyYXRvci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07CisJCTlBQ0MwN0FEMjVDODEzMkQwMERDNjM4NiAvKiBNZWRp
YUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOUFDQzA3QUMyNUM4MTMyRDAwREM2Mzg2IC8qIE1l
ZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyLmggKi87IH07CisJCTlBQ0MwN0Ix
MjVDODE1RDgwMERDNjM4NiAvKiBNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0LmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5QUNDMDdCMDI1Qzgx
NUQ4MDBEQzYzODYgLyogTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdC5oICovOyB9Owor
CQk5QUNDMDdCMzI1QzgxNUYzMDBEQzYzODYgLyogTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVx
dWVzdE1hbmFnZXJQcm94eS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gOUFDQzA3QjIyNUM4MTVGMzAwREM2Mzg2IC8qIE1lZGlhS2V5U3lzdGVtUGVybWlz
c2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuaCAqLzsgfTsKKwkJOUFDQzA3QjUyNUM4MTYwQzAwREM2
Mzg2IC8qIE1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RQcm94eS5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOUFDQzA3QjQyNUM4MTYwQjAwREM2
Mzg2IC8qIE1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RQcm94eS5oICovOyB9OworCQk5
QUNDMDdCNzI1QzgxRDM0MDBEQzYzODYgLyogV2ViTWVkaWFLZXlTeXN0ZW1DbGllbnQuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDlBQ0MwN0I2MjVDODFE
MzMwMERDNjM4NiAvKiBXZWJNZWRpYUtleVN5c3RlbUNsaWVudC5oICovOyB9OworCQk5QUNDMDdC
OTI1QzgyMTg0MDBEQzYzODYgLyogV0tNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25DYWxsYmFjay5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOUFDQzA3Qjgy
NUM4MjE4MzAwREM2Mzg2IC8qIFdLTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uQ2FsbGJhY2suaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk5QjAyRTBD
QjIzNUVCOTUzMDA0MDQ0QjIgLyogX1dLVGV4dE1hbmlwdWxhdGlvbkRlbGVnYXRlLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5QjAyRTBDOTIzNUVCNjJE
MDA0MDQ0QjIgLyogX1dLVGV4dE1hbmlwdWxhdGlvbkRlbGVnYXRlLmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJOUIwMkUwQ0MyMzVFQjk1NzAwNDA0
NEIyIC8qIF9XS1RleHRNYW5pcHVsYXRpb25JdGVtLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5QjAyRTBDQTIzNUVCODg0MDA0MDQ0QjIgLyogX1dLVGV4
dE1hbmlwdWxhdGlvbkl0ZW0uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRl
LCApOyB9OyB9OwogCQk5QjAyRTBENzIzNUZDOTRGMDA0MDQ0QjIgLyogX1dLVGV4dE1hbmlwdWxh
dGlvblRva2VuLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA5QjAyRTBDRDIzNUVCOTY3MDA0MDQ0QjIgLyogX1dLVGV4dE1hbmlwdWxhdGlvblRva2VuLmgg
Ki87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTQ4Njcs
NiArNDg3MywxMiBAQAogCQk5OUU3MTg5NjIxRjc5RDlEMDA1NUU5NzUgLyogX1dLVG91Y2hFdmVu
dEdlbmVyYXRvci5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IF9X
S1RvdWNoRXZlbnRHZW5lcmF0b3IubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTk5
RTcxODk4MjFGNzlEOUUwMDU1RTk3NSAvKiBfV0tUb3VjaEV2ZW50R2VuZXJhdG9yLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IF9XS1RvdWNoRXZlbnRHZW5lcmF0b3IuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTlGNjQyRDIxRkFCRTM3ODAwOTYyMUU5IC8qIENv
b3JkaW5hdGVTeXN0ZW0uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ29vcmRp
bmF0ZVN5c3RlbS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5QUNDMDdBQzI1Qzgx
MzJEMDBEQzYzODYgLyogTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9u
UmVxdWVzdE1hbmFnZXIuaDsgcGF0aCA9IEVuY3J5cHRlZE1lZGlhL01lZGlhS2V5U3lzdGVtUGVy
bWlzc2lvblJlcXVlc3RNYW5hZ2VyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTlB
Q0MwN0IwMjVDODE1RDgwMERDNjM4NiAvKiBNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1lZGlhS2V5U3lzdGVtUGVybWlz
c2lvblJlcXVlc3QuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOUFDQzA3QjIyNUM4
MTVGMzAwREM2Mzg2IC8qIE1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJv
eHkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTWVkaWFLZXlTeXN0ZW1QZXJt
aXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQk5QUNDMDdCNDI1QzgxNjBCMDBEQzYzODYgLyogTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVx
dWVzdFByb3h5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1lZGlhS2V5U3lz
dGVtUGVybWlzc2lvblJlcXVlc3RQcm94eS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQk5QUNDMDdCNjI1QzgxRDMzMDBEQzYzODYgLyogV2ViTWVkaWFLZXlTeXN0ZW1DbGllbnQuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViTWVkaWFLZXlTeXN0ZW1DbGllbnQu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOUFDQzA3QjgyNUM4MjE4MzAwREM2Mzg2
IC8qIFdLTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uQ2FsbGJhY2suaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gV0tNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25DYWxsYmFjay5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5QjAyRTBDOTIzNUVCNjJEMDA0MDQ0QjIgLyog
X1dLVGV4dE1hbmlwdWxhdGlvbkRlbGVnYXRlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IF9XS1RleHRNYW5p
cHVsYXRpb25EZWxlZ2F0ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5QjAyRTBD
QTIzNUVCODg0MDA0MDQ0QjIgLyogX1dLVGV4dE1hbmlwdWxhdGlvbkl0ZW0uaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gX1dLVGV4dE1hbmlwdWxhdGlvbkl0ZW0uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJOUIwMkUwQ0QyMzVFQjk2NzAwNDA0NEIyIC8qIF9XS1RleHRNYW5pcHVsYXRpb25Ub2tl
bi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBfV0tUZXh0TWFuaXB1bGF0aW9uVG9rZW4uaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTkzMjksNiArOTM0MSwxNCBAQAogCQkJcGF0aCA9IGNvY29h
OwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKIAkJfTsKKwkJOUFDQzA3QTkyNUM4MTJFNzAw
REM2Mzg2IC8qIEVuY3J5cHRlZE1lZGlhICovID0geworCQkJaXNhID0gUEJYR3JvdXA7CisJCQlj
aGlsZHJlbiA9ICgKKwkJCQk5QUNDMDdBQzI1QzgxMzJEMDBEQzYzODYgLyogTWVkaWFLZXlTeXN0
ZW1QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIuaCAqLywKKwkJCSk7CisJCQluYW1lID0gRW5jcnlw
dGVkTWVkaWE7CisJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOworCQl9OwogCQlBMTU3OTlBQzI1
ODQ0MzMxMDA1MjgyMzYgLyogTWVkaWFGb3JtYXRSZWFkZXIgKi8gPSB7CiAJCQlpc2EgPSBQQlhH
cm91cDsKIAkJCWNoaWxkcmVuID0gKApAQCAtOTQ0Nyw2ICs5NDY3LDcgQEAKIAkJCQk0MUQxMjlE
ODFGM0QxMDE0MDBEMTVFNDcgLyogQ2FjaGUgKi8sCiAJCQkJN0M2RTcwRjgxOEIyRDQ3RTAwRjI0
RTJFIC8qIGNvY29hICovLAogCQkJCTUxMkE5NzU0MTgwREY5MjcwMDM5QTE0OSAvKiBEYXRhYmFz
ZXMgKi8sCisJCQkJOUFDQzA3QTkyNUM4MTJFNzAwREM2Mzg2IC8qIEVuY3J5cHRlZE1lZGlhICov
LAogCQkJCUJDQUNDNDNCMTZCMjRDNUQwMEI2RTA5MiAvKiBFbnRyeVBvaW50ICovLAogCQkJCUUx
NzA4NzZEMTZENkNBNzIwMEY5OTIyNiAvKiBGaWxlQVBJICovLAogCQkJCUNENzNCQTNEMTMxQTJB
MjEwMEVFREVEMiAvKiBGdWxsU2NyZWVuICovLApAQCAtOTUxMiw2ICs5NTMzLDcgQEAKIAkJCQlC
QzAzMkQ2QTEwRjQzNzhEMDA1OEMxNUEgLyogV2ViRnJhbWVMb2FkZXJDbGllbnQuaCAqLywKIAkJ
CQlCQzFCRTFERjEyRDU0QTQxMDAwNEEyMjggLyogV2ViR2VvbG9jYXRpb25DbGllbnQuY3BwICov
LAogCQkJCUJDMUJFMURFMTJENTRBNDEwMDA0QTIyOCAvKiBXZWJHZW9sb2NhdGlvbkNsaWVudC5o
ICovLAorCQkJCTlBQ0MwN0I2MjVDODFEMzMwMERDNjM4NiAvKiBXZWJNZWRpYUtleVN5c3RlbUNs
aWVudC5oICovLAogCQkJCTUxM0ZGQjhFMjAxNDU5QzIwMDI1OTZFQSAvKiBXZWJNZXNzYWdlUG9y
dENoYW5uZWxQcm92aWRlci5jcHAgKi8sCiAJCQkJNTEzRkZCOEYyMDE0NTlDMjAwMjU5NkVBIC8q
IFdlYk1lc3NhZ2VQb3J0Q2hhbm5lbFByb3ZpZGVyLmggKi8sCiAJCQkJMzEwOTk5NzExNDZDNzU5
QjAwMjlERUI5IC8qIFdlYk5vdGlmaWNhdGlvbkNsaWVudC5jcHAgKi8sCkBAIC05NjUxLDYgKzk2
NzMsOSBAQAogCQkJCTVDRUFCQTJCMjMzMzI1MTQwMDc5Nzc5NyAvKiBMZWdhY3lHbG9iYWxTZXR0
aW5ncy5jcHAgKi8sCiAJCQkJNUNFQUJBMkEyMzMzMjQ3NzAwNzk3Nzk3IC8qIExlZ2FjeUdsb2Jh
bFNldHRpbmdzLmggKi8sCiAJCQkJMzE2MDdGMzgxOTYyNzAwMjAwOUI4N0RBIC8qIExlZ2FjeVNl
c3Npb25TdGF0ZUNvZGluZy5oICovLAorCQkJCTlBQ0MwN0IwMjVDODE1RDgwMERDNjM4NiAvKiBN
ZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0LmggKi8sCisJCQkJOUFDQzA3QjIyNUM4MTVG
MzAwREM2Mzg2IC8qIE1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHku
aCAqLywKKwkJCQk5QUNDMDdCNDI1QzgxNjBCMDBEQzYzODYgLyogTWVkaWFLZXlTeXN0ZW1QZXJt
aXNzaW9uUmVxdWVzdFByb3h5LmggKi8sCiAJCQkJOTM0MjU4OTgyNTVCNTM0QjAwNTlFRUREIC8q
IE1lZGlhUGVybWlzc2lvblV0aWxpdGllcy5oICovLAogCQkJCUJDNkVEQUE1MTExMjcxQzYwMEU3
Njc4QiAvKiBQYWdlQ2xpZW50LmggKi8sCiAJCQkJMUFDNzUzNzkxODNBOUZEQTAwNzJDQjE1IC8q
IFBhZ2VMb2FkU3RhdGUuY3BwICovLApAQCAtOTk2Myw2ICs5OTg4LDcgQEAKIAkJCQk1MUE5RTEw
ODEzMTVDRDE4MDA5RTcwMzEgLyogV0tLZXlWYWx1ZVN0b3JhZ2VNYW5hZ2VyLmNwcCAqLywKIAkJ
CQk1MUE5RTEwOTEzMTVDRDE4MDA5RTcwMzEgLyogV0tLZXlWYWx1ZVN0b3JhZ2VNYW5hZ2VyLmgg
Ki8sCiAJCQkJMkQ3OTBBOUUxQUQ3MTY0OTAwQUI5MEIzIC8qIFdLTGF5b3V0TW9kZS5oICovLAor
CQkJCTlBQ0MwN0I4MjVDODIxODMwMERDNjM4NiAvKiBXS01lZGlhS2V5U3lzdGVtUGVybWlzc2lv
bkNhbGxiYWNrLmggKi8sCiAJCQkJNUNBQkRDODQyMkM0MEZDQzAwMUVERThFIC8qIFdLTWVzc2Fn
ZUxpc3RlbmVyLmNwcCAqLywKIAkJCQk1Q0FCREM4NTIyQzQwRkNDMDAxRURFOEUgLyogV0tNZXNz
YWdlTGlzdGVuZXIuaCAqLywKIAkJCQlDMTFFMTY5MzIxMkI4N0M1MDA5ODVGRjYgLyogV0tNb2Nr
RGlzcGxheS5jcHAgKi8sCkBAIC0xMTY4NCw2ICsxMTcxMCwxMCBAQAogCQkJCUJDQzU2Rjc5MTE1
OTk1N0QwMDFDQ0FGOSAvKiBNYWNoUG9ydC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUEyNEI1RjMx
MUY1MzFFODAwQzM4MjY5IC8qIE1hY2hVdGlsaXRpZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCUEx
NTc5OUJFMjU4NDQzMzIwMDUyODIzNiAvKiBNZWRpYUZvcm1hdFJlYWRlci5oIGluIEhlYWRlcnMg
Ki8sCisJCQkJOUFDQzA3QjEyNUM4MTVEODAwREM2Mzg2IC8qIE1lZGlhS2V5U3lzdGVtUGVybWlz
c2lvblJlcXVlc3QuaCBpbiBIZWFkZXJzICovLAorCQkJCTlBQ0MwN0FEMjVDODEzMkQwMERDNjM4
NiAvKiBNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlci5oIGluIEhlYWRlcnMg
Ki8sCisJCQkJOUFDQzA3QjMyNUM4MTVGMzAwREM2Mzg2IC8qIE1lZGlhS2V5U3lzdGVtUGVybWlz
c2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuaCBpbiBIZWFkZXJzICovLAorCQkJCTlBQ0MwN0I1MjVD
ODE2MEMwMERDNjM4NiAvKiBNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0UHJveHkuaCBp
biBIZWFkZXJzICovLAogCQkJCTkzNDI1ODlBMjU1QjUzNUEwMDU5RUVERCAvKiBNZWRpYVBlcm1p
c3Npb25VdGlsaXRpZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTA3RTE5RUZDMjNENDAxRjEwMDk0
RkZCNCAvKiBNZWRpYVBsYXllclByaXZhdGVSZW1vdGVNZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJMDdFMTlFRkQyM0Q0MDFGMTAwOTRGRkI0IC8qIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90
ZU1lc3NhZ2VzUmVwbGllcy5oIGluIEhlYWRlcnMgKi8sCkBAIC0xMTczNyw2ICsxMTc2Nyw3IEBA
CiAJCQkJODM5OTAyMDMxQkU5QTAyQjAwMEYzNjUzIC8qIE5ldHdvcmtMb2FkLmggaW4gSGVhZGVy
cyAqLywKIAkJCQk4M0Q0NTRENzFCRTlEM0M0MDA2QzkzQkQgLyogTmV0d29ya0xvYWRDbGllbnQu
aCBpbiBIZWFkZXJzICovLAogCQkJCTgzOTE0OTY1MUJFQTgzODUwMEQyRDk1MyAvKiBOZXR3b3Jr
TG9hZFBhcmFtZXRlcnMuaCBpbiBIZWFkZXJzICovLAorCQkJCUU0N0ZDOEEwMjVCODMzMUMwMDU0
OTVGQyAvKiBOZXR3b3JrTG9hZFNjaGVkdWxlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTE3OTU1
NkExNjI4NzZGMzAwRkE0M0I2IC8qIE5ldHdvcmtQcm9jZXNzLmggaW4gSGVhZGVycyAqLywKIAkJ
CQk1MTdDRjBFNDE2M0E0ODZDMDBDMjk1MEUgLyogTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uTWVz
c2FnZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTVDMTQyNkVEMUMyM0Y4MDkwMEQ0MTE4MyAvKiBO
ZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oIGluIEhlYWRlcnMgKi8sCkBAIC0xMjEw
MCw3ICsxMjEzMSw2IEBACiAJCQkJOTNBODhCMzMxQkM2RTlDRDAwQUJBNUMyIC8qIFdlYkhpdFRl
c3RSZXN1bHREYXRhLmggaW4gSGVhZGVycyAqLywKIAkJCQlGNDRERkVCMjFFOUU3NTJGMDAzOEQx
OTYgLyogV2ViSWNvblV0aWxpdGllcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTMyNjExNjEyMTQw
NTRGNDAwMDgwNkU3IC8qIFdlYklEQkNvbm5lY3Rpb25Ub0NsaWVudC5oIGluIEhlYWRlcnMgKi8s
Ci0JCQkJRTQ3RkM4QTAyNUI4MzMxQzAwNTQ5NUZDIC8qIE5ldHdvcmtMb2FkU2NoZWR1bGVyLmgg
aW4gSGVhZGVycyAqLywKIAkJCQk1MTQxMjk5NDFDNjQyOEJCMDA1OUU3MTQgLyogV2ViSURCQ29u
bmVjdGlvblRvU2VydmVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk1MTA1MjM3NDFDNzNEMzhCMDA3
OTkzQ0IgLyogV2ViSURCQ29ubmVjdGlvblRvU2VydmVyTWVzc2FnZXMuaCBpbiBIZWFkZXJzICov
LAogCQkJCTkzM0U4MzU1MjNBMDdDMDYwMERFRjI4OSAvKiBXZWJJREJTZXJ2ZXIuaCBpbiBIZWFk
ZXJzICovLApAQCAtMTIxMjYsNiArMTIxNTYsNyBAQAogCQkJCUJDOUJBNTA1MTY5N0M0NTMwMEU0
NDYxNiAvKiBXZWJLaXQySW5pdGlhbGl6ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUE2MjgwQzcx
OTE5OTUwQzAwNkFEOUY5IC8qIFdlYktpdFByaXZhdGUuaCBpbiBIZWFkZXJzICovLAogCQkJCUNE
MDAzQTUzMTlENDlCNUQwMDVBQkNFMCAvKiBXZWJNZWRpYUtleVN0b3JhZ2VNYW5hZ2VyLmggaW4g
SGVhZGVycyAqLywKKwkJCQk5QUNDMDdCNzI1QzgxRDM0MDBEQzYzODYgLyogV2ViTWVkaWFLZXlT
eXN0ZW1DbGllbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTlCNUJFQzI2MjQwMEY0QTkwMDcwQzZF
RiAvKiBXZWJNZWRpYVN0cmF0ZWd5LmggaW4gSGVhZGVycyAqLywKIAkJCQkyRDNFRjQ0MzE5MTc2
NDYzMDAwMzQxODQgLyogV2ViTWVtb3J5UHJlc3N1cmVIYW5kbGVyLmggaW4gSGVhZGVycyAqLywK
IAkJCQk5MDk4NTRFRDEyQkM0RTE4MDAwQUQwODAgLyogV2ViTWVtb3J5U2FtcGxlci5oIGluIEhl
YWRlcnMgKi8sCkBAIC0xMjQzNCw2ICsxMjQ2NSw3IEBACiAJCQkJMkQ3OTBBOUYxQUQ3MTY0OTAw
QUI5MEIzIC8qIFdLTGF5b3V0TW9kZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNUNFOTEyMTQyMjkz
QzI4MDAwNUJFQzc4IC8qIFdLTWFpbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTE1NzlCMjgyNTg0
OTBFNTAwNTI4MjM2IC8qIFdLTWVkaWFGb3JtYXRSZWFkZXIuaCBpbiBIZWFkZXJzICovLAorCQkJ
CTlBQ0MwN0I5MjVDODIxODQwMERDNjM4NiAvKiBXS01lZGlhS2V5U3lzdGVtUGVybWlzc2lvbkNh
bGxiYWNrLmggaW4gSGVhZGVycyAqLywKIAkJCQk0OTkxN0RBNzI1MkQ2NDlFMDA1MDMxM0YgLyog
V0tNZWRpYVBsYXliYWNrU3RhdGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTFBQjQwRUU2MUJGNjc3
RTMwMEJBODFCRSAvKiBXS01lbnVJdGVtSWRlbnRpZmllcnNQcml2YXRlLmggaW4gSGVhZGVycyAq
LywKIAkJCQk1Q0FCREM4NjIyQzQwRkRFMDAxRURFOEUgLyogV0tNZXNzYWdlTGlzdGVuZXIuaCBp
biBIZWFkZXJzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0VuY3J5
cHRlZE1lZGlhL01lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyLmNwcCBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9FbmNyeXB0ZWRNZWRpYS9NZWRpYUtleVN5c3RlbVBlcm1p
c3Npb25SZXF1ZXN0TWFuYWdlci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYTI0OTg4MmQwN2E5OWU3NWQwOTFi
ZmI3MmFlZWM4MzE2NDg1NzczOAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9FbmNyeXB0ZWRNZWRpYS9NZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0TWFu
YWdlci5jcHAKQEAgLTAsMCArMSwxMzIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgSWdh
bGlhIFMuTC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgor
ICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAq
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIk1lZGlh
S2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyLmgiCisKKyNpZiBFTkFCTEUoRU5DUllQ
VEVEX01FRElBKQorCisjaW5jbHVkZSAiTG9nZ2luZy5oIgorI2luY2x1ZGUgIldlYkNvcmVBcmd1
bWVudENvZGVycy5oIgorI2luY2x1ZGUgIldlYkZyYW1lLmgiCisjaW5jbHVkZSAiV2ViUGFnZS5o
IgorI2luY2x1ZGUgIldlYlBhZ2VQcm94eU1lc3NhZ2VzLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9E
b2N1bWVudC5oPgorI2luY2x1ZGUgPFdlYkNvcmUvRnJhbWUuaD4KKyNpbmNsdWRlIDxXZWJDb3Jl
L0ZyYW1lTG9hZGVyLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9TZWN1cml0eU9yaWdpbi5oPgorI2lu
Y2x1ZGUgPFdlYkNvcmUvU2VjdXJpdHlPcmlnaW5EYXRhLmg+CisKK25hbWVzcGFjZSBXZWJLaXQg
ewordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisKK01lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJl
cXVlc3RNYW5hZ2VyOjpNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcihXZWJQ
YWdlJiBwYWdlKQorICAgIDogbV9wYWdlKHBhZ2UpCit7Cit9CisKK3ZvaWQgTWVkaWFLZXlTeXN0
ZW1QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXI6OnN0YXJ0TWVkaWFLZXlTeXN0ZW1SZXF1ZXN0KE1l
ZGlhS2V5U3lzdGVtUmVxdWVzdCYgcmVxdWVzdCkKK3sKKyAgICBEb2N1bWVudCogZG9jdW1lbnQg
PSByZXF1ZXN0LmRvY3VtZW50KCk7CisgICAgRnJhbWUqIGZyYW1lID0gZG9jdW1lbnQgPyBkb2N1
bWVudC0+ZnJhbWUoKSA6IG51bGxwdHI7CisKKyAgICBpZiAoIWZyYW1lIHx8ICFkb2N1bWVudC0+
cGFnZSgpKSB7CisgICAgICAgIHJlcXVlc3QuZGVueShlbXB0eVN0cmluZygpKTsKKyAgICAgICAg
cmV0dXJuOworICAgIH0KKworICAgIGlmIChkb2N1bWVudC0+cGFnZSgpLT5jYW5TdGFydE1lZGlh
KCkpIHsKKyAgICAgICAgc2VuZE1lZGlhS2V5U3lzdGVtUmVxdWVzdChyZXF1ZXN0KTsKKyAgICAg
ICAgcmV0dXJuOworICAgIH0KKworICAgIGF1dG8mIHBlbmRpbmdSZXF1ZXN0cyA9IG1fcGVuZGlu
Z01lZGlhS2V5U3lzdGVtUmVxdWVzdHMuYWRkKGRvY3VtZW50LCBWZWN0b3I8UmVmPE1lZGlhS2V5
U3lzdGVtUmVxdWVzdD4+KCkpLml0ZXJhdG9yLT52YWx1ZTsKKyAgICBwZW5kaW5nUmVxdWVzdHMu
YXBwZW5kKHJlcXVlc3QpOworfQorCit2b2lkIE1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVl
c3RNYW5hZ2VyOjpzZW5kTWVkaWFLZXlTeXN0ZW1SZXF1ZXN0KE1lZGlhS2V5U3lzdGVtUmVxdWVz
dCYgdXNlclJlcXVlc3QpCit7CisgICAgYXV0byogZnJhbWUgPSB1c2VyUmVxdWVzdC5kb2N1bWVu
dCgpID8gdXNlclJlcXVlc3QuZG9jdW1lbnQoKS0+ZnJhbWUoKSA6IG51bGxwdHI7CisgICAgaWYg
KCFmcmFtZSkgeworICAgICAgICB1c2VyUmVxdWVzdC5kZW55KGVtcHR5U3RyaW5nKCkpOworICAg
ICAgICByZXR1cm47CisgICAgfQorCisgICAgbV9vbmdvaW5nTWVkaWFLZXlTeXN0ZW1SZXF1ZXN0
cy5hZGQodXNlclJlcXVlc3QuaWRlbnRpZmllcigpLCBtYWtlUmVmKHVzZXJSZXF1ZXN0KSk7CisK
KyAgICBXZWJGcmFtZSogd2ViRnJhbWUgPSBXZWJGcmFtZTo6ZnJvbUNvcmVGcmFtZSgqZnJhbWUp
OworICAgIEFTU0VSVCh3ZWJGcmFtZSk7CisKKyAgICBhdXRvKiB0b3BMZXZlbERvY3VtZW50T3Jp
Z2luID0gdXNlclJlcXVlc3QudG9wTGV2ZWxEb2N1bWVudE9yaWdpbigpOworICAgIG1fcGFnZS5z
ZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OlJlcXVlc3RNZWRpYUtleVN5c3RlbVBlcm1pc3Np
b25Gb3JGcmFtZSh1c2VyUmVxdWVzdC5pZGVudGlmaWVyKCkudG9VSW50NjQoKSwgd2ViRnJhbWUt
PmZyYW1lSUQoKSwgdG9wTGV2ZWxEb2N1bWVudE9yaWdpbi0+ZGF0YSgpLCB1c2VyUmVxdWVzdC5r
ZXlTeXN0ZW0oKSkpOworfQorCit2b2lkIE1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RN
YW5hZ2VyOjpjYW5jZWxNZWRpYUtleVN5c3RlbVJlcXVlc3QoTWVkaWFLZXlTeXN0ZW1SZXF1ZXN0
JiByZXF1ZXN0KQoreworICAgIGlmIChhdXRvIHJlbW92ZWRSZXF1ZXN0ID0gbV9vbmdvaW5nTWVk
aWFLZXlTeXN0ZW1SZXF1ZXN0cy50YWtlKHJlcXVlc3QuaWRlbnRpZmllcigpKSkKKyAgICAgICAg
cmV0dXJuOworCisgICAgYXV0byogZG9jdW1lbnQgPSByZXF1ZXN0LmRvY3VtZW50KCk7CisgICAg
aWYgKCFkb2N1bWVudCkKKyAgICAgICAgcmV0dXJuOworCisgICAgYXV0byBpdGVyYXRvciA9IG1f
cGVuZGluZ01lZGlhS2V5U3lzdGVtUmVxdWVzdHMuZmluZChkb2N1bWVudCk7CisgICAgaWYgKGl0
ZXJhdG9yID09IG1fcGVuZGluZ01lZGlhS2V5U3lzdGVtUmVxdWVzdHMuZW5kKCkpCisgICAgICAg
IHJldHVybjsKKworICAgIGF1dG8mIHBlbmRpbmdSZXF1ZXN0cyA9IGl0ZXJhdG9yLT52YWx1ZTsK
KyAgICBwZW5kaW5nUmVxdWVzdHMucmVtb3ZlRmlyc3RNYXRjaGluZyhbJnJlcXVlc3RdKGF1dG8m
IGl0ZW0pIHsKKyAgICAgICAgcmV0dXJuICZyZXF1ZXN0ID09IGl0ZW0ucHRyKCk7CisgICAgfSk7
CisKKyAgICBpZiAoIXBlbmRpbmdSZXF1ZXN0cy5pc0VtcHR5KCkpCisgICAgICAgIHJldHVybjsK
KworICAgIG1fcGVuZGluZ01lZGlhS2V5U3lzdGVtUmVxdWVzdHMucmVtb3ZlKGl0ZXJhdG9yKTsK
K30KKwordm9pZCBNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcjo6bWVkaWFL
ZXlTeXN0ZW1XYXNHcmFudGVkKHVpbnQ2NF90IHJlcXVlc3RJRCwgQ29tcGxldGlvbkhhbmRsZXI8
dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQoreworICAgIGF1dG8gcmVxdWVzdCA9IG1fb25n
b2luZ01lZGlhS2V5U3lzdGVtUmVxdWVzdHMudGFrZShtYWtlT2JqZWN0SWRlbnRpZmllcjxNZWRp
YUtleVN5c3RlbVJlcXVlc3RJZGVudGlmaWVyVHlwZT4ocmVxdWVzdElEKSk7CisgICAgaWYgKCFy
ZXF1ZXN0KSB7CisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKCk7CisgICAgICAgIHJldHVybjsK
KyAgICB9CisKKyAgICByZXF1ZXN0LT5hbGxvdyhXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7
Cit9CisKK3ZvaWQgTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXI6Om1lZGlh
S2V5U3lzdGVtV2FzRGVuaWVkKHVpbnQ2NF90IHJlcXVlc3RJRCwgU3RyaW5nJiYgbWVzc2FnZSkK
K3sKKyAgICBhdXRvIHJlcXVlc3QgPSBtX29uZ29pbmdNZWRpYUtleVN5c3RlbVJlcXVlc3RzLnRh
a2UobWFrZU9iamVjdElkZW50aWZpZXI8TWVkaWFLZXlTeXN0ZW1SZXF1ZXN0SWRlbnRpZmllclR5
cGU+KHJlcXVlc3RJRCkpOworICAgIGlmICghcmVxdWVzdCkKKyAgICAgICAgcmV0dXJuOworCisg
ICAgcmVxdWVzdC0+ZGVueShXVEZNb3ZlKG1lc3NhZ2UpKTsKK30KKworfSAvLyBuYW1lc3BhY2Ug
V2ViS2l0CisKKyNlbmRpZiAvLyBFTkFCTEUoRU5DUllQVEVEX01FRElBKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0VuY3J5cHRlZE1lZGlhL01lZGlhS2V5U3lzdGVtUGVy
bWlzc2lvblJlcXVlc3RNYW5hZ2VyLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvRW5jcnlw
dGVkTWVkaWEvTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIuaApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi44Njk1NWZiOWRlZDcxMTYxY2FkZjRhMjM2OTAyYjJjNTQyMjU2OWE2Ci0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0VuY3J5cHRlZE1lZGlhL01lZGlhS2V5
U3lzdGVtUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyLmgKQEAgLTAsMCArMSw2MyBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAyMSBJZ2FsaWEgUy5MLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFT
IElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVU
T1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
CisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YK
KyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UK
KworI2lmIEVOQUJMRShFTkNSWVBURURfTUVESUEpCisKKyNpbmNsdWRlICJTYW5kYm94RXh0ZW5z
aW9uLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9NZWRpYUtleVN5c3RlbUNsaWVudC5oPgorI2luY2x1
ZGUgPFdlYkNvcmUvTWVkaWFLZXlTeXN0ZW1SZXF1ZXN0Lmg+CisjaW5jbHVkZSA8d3RmL0hhc2hN
YXAuaD4KKyNpbmNsdWRlIDx3dGYvUmVmLmg+CisjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgorCitu
YW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3MgV2ViUGFnZTsKKworY2xhc3MgTWVkaWFLZXlTeXN0
ZW1QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIgeworICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVE
OworcHVibGljOgorICAgIGV4cGxpY2l0IE1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RN
YW5hZ2VyKFdlYlBhZ2UmKTsKKyAgICB+TWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdE1h
bmFnZXIoKSA9IGRlZmF1bHQ7CisKKyAgICB2b2lkIHN0YXJ0TWVkaWFLZXlTeXN0ZW1SZXF1ZXN0
KFdlYkNvcmU6Ok1lZGlhS2V5U3lzdGVtUmVxdWVzdCYpOworICAgIHZvaWQgY2FuY2VsTWVkaWFL
ZXlTeXN0ZW1SZXF1ZXN0KFdlYkNvcmU6Ok1lZGlhS2V5U3lzdGVtUmVxdWVzdCYpOworICAgIHZv
aWQgbWVkaWFLZXlTeXN0ZW1XYXNHcmFudGVkKHVpbnQ2NF90LCBDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKCk+JiYpOworICAgIHZvaWQgbWVkaWFLZXlTeXN0ZW1XYXNEZW5pZWQodWludDY0X3QsIFN0
cmluZyYmKTsKKworcHJpdmF0ZToKKyAgICB2b2lkIHNlbmRNZWRpYUtleVN5c3RlbVJlcXVlc3Qo
V2ViQ29yZTo6TWVkaWFLZXlTeXN0ZW1SZXF1ZXN0Jik7CisKKyAgICBXZWJQYWdlJiBtX3BhZ2U7
CisKKyAgICBIYXNoTWFwPFdlYkNvcmU6Ok1lZGlhS2V5U3lzdGVtUmVxdWVzdElkZW50aWZpZXIs
IFJlZjxXZWJDb3JlOjpNZWRpYUtleVN5c3RlbVJlcXVlc3Q+PiBtX29uZ29pbmdNZWRpYUtleVN5
c3RlbVJlcXVlc3RzOworICAgIEhhc2hNYXA8UmVmUHRyPFdlYkNvcmU6OkRvY3VtZW50PiwgVmVj
dG9yPFJlZjxXZWJDb3JlOjpNZWRpYUtleVN5c3RlbVJlcXVlc3Q+Pj4gbV9wZW5kaW5nTWVkaWFL
ZXlTeXN0ZW1SZXF1ZXN0czsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYg
Ly8gRU5BQkxFKE1FRElBX1NUUkVBTSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJNZWRpYUtleVN5c3RlbUNsaWVudC5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViTWVkaWFLZXlTeXN0ZW1DbGllbnQu
Y3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmNkMmI4YTViZDM5ZDAzMTdhNDZmYTMxYjg0NjE5NjM1N2M3YmYxMTgK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBv
cnQvV2ViTWVkaWFLZXlTeXN0ZW1DbGllbnQuY3BwCkBAIC0wLDAgKzEsNjEgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMjEgSWdhbGlhIFMuTC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJ
UycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9S
UworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwor
ICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisg
KiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZp
Zy5oIgorI2luY2x1ZGUgIldlYk1lZGlhS2V5U3lzdGVtQ2xpZW50LmgiCisKKyNpZiBFTkFCTEUo
RU5DUllQVEVEX01FRElBKQorCisjaW5jbHVkZSAiTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVx
dWVzdE1hbmFnZXIuaCIKKyNpbmNsdWRlICJXZWJQYWdlLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9N
ZWRpYUtleVN5c3RlbUNvbnRyb2xsZXIuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL01lZGlhS2V5U3lz
dGVtUmVxdWVzdC5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKK3VzaW5nIG5hbWVzcGFjZSBXZWJD
b3JlOworCitXZWJNZWRpYUtleVN5c3RlbUNsaWVudDo6V2ViTWVkaWFLZXlTeXN0ZW1DbGllbnQo
V2ViUGFnZSYgcGFnZSkKKyAgICA6IG1fcGFnZShwYWdlKQoreworfQorCit2b2lkIFdlYk1lZGlh
S2V5U3lzdGVtQ2xpZW50OjpwYWdlRGVzdHJveWVkKCkKK3sKKyAgICBkZWxldGUgdGhpczsKK30K
Kwordm9pZCBXZWJNZWRpYUtleVN5c3RlbUNsaWVudDo6cmVxdWVzdE1lZGlhS2V5U3lzdGVtKE1l
ZGlhS2V5U3lzdGVtUmVxdWVzdCYgcmVxdWVzdCkKK3sKKyAgICBtX3BhZ2UubWVkaWFLZXlTeXN0
ZW1QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIoKS5zdGFydE1lZGlhS2V5U3lzdGVtUmVxdWVzdChy
ZXF1ZXN0KTsKK30KKwordm9pZCBXZWJNZWRpYUtleVN5c3RlbUNsaWVudDo6Y2FuY2VsTWVkaWFL
ZXlTeXN0ZW1SZXF1ZXN0KE1lZGlhS2V5U3lzdGVtUmVxdWVzdCYgcmVxdWVzdCkKK3sKKyAgICBt
X3BhZ2UubWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIoKS5jYW5jZWxNZWRp
YUtleVN5c3RlbVJlcXVlc3QocmVxdWVzdCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdDsK
KworI2VuZGlmIC8vIEVOQUJMRShFTkNSWVBURURfTUVESUEpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViTWVkaWFLZXlTeXN0ZW1DbGllbnQu
aCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJNZWRpYUtleVN5
c3RlbUNsaWVudC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmY0ODAzMmY4YjlhYTYwYWZiOTE4ZTA0M2Y1NDgxMWZm
YjMyMjc3ODYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvV2ViTWVkaWFLZXlTeXN0ZW1DbGllbnQuaApAQCAtMCwwICsxLDUzIEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDIxIElnYWxpYSBTLkwuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEg
b25jZQorCisjaWYgRU5BQkxFKEVOQ1JZUFRFRF9NRURJQSkKKworI2luY2x1ZGUgPFdlYkNvcmUv
TWVkaWFLZXlTeXN0ZW1DbGllbnQuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIFdl
YlBhZ2U7CisKK2NsYXNzIFdlYk1lZGlhS2V5U3lzdGVtQ2xpZW50IDogcHVibGljIFdlYkNvcmU6
Ok1lZGlhS2V5U3lzdGVtQ2xpZW50IHsKKyAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKK3B1
YmxpYzoKKyAgICBXZWJNZWRpYUtleVN5c3RlbUNsaWVudChXZWJQYWdlJik7CisgICAgfldlYk1l
ZGlhS2V5U3lzdGVtQ2xpZW50KCkgeyB9CisKK3ByaXZhdGU6CisgICAgdm9pZCBwYWdlRGVzdHJv
eWVkKCkgb3ZlcnJpZGU7CisKKyAgICB2b2lkIHJlcXVlc3RNZWRpYUtleVN5c3RlbShXZWJDb3Jl
OjpNZWRpYUtleVN5c3RlbVJlcXVlc3QmKSBvdmVycmlkZTsKKyAgICB2b2lkIGNhbmNlbE1lZGlh
S2V5U3lzdGVtUmVxdWVzdChXZWJDb3JlOjpNZWRpYUtleVN5c3RlbVJlcXVlc3QmKSBvdmVycmlk
ZTsKKworICAgIFdlYlBhZ2UmIG1fcGFnZTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
KworI2VuZGlmIC8vIEVOQUJMRShFTkNSWVBURURfTUVESUEpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCmluZGV4IGNhZTBhOTcxOGNmN2ZmOWY0MDIxZjZj
Y2E5MDRlMjc0YmQxYjMzM2UuLmFjN2UwMzQ4ZDZjMjFjZDY0ZDM5MDNmNGQ5ODA3OTNjMjVkMDlm
ODcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2Uu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCkBA
IC00Niw2ICs0Niw3IEBACiAjaW5jbHVkZSAiTGliV2ViUlRDUHJvdmlkZXIuaCIKICNpbmNsdWRl
ICJMb2FkUGFyYW1ldGVycy5oIgogI2luY2x1ZGUgIkxvZ2dpbmcuaCIKKyNpbmNsdWRlICJNZWRp
YUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlci5oIgogI2luY2x1ZGUgIk1lZGlhUGxh
eWJhY2tTdGF0ZS5oIgogI2luY2x1ZGUgIk1lZGlhUmVjb3JkZXJQcm92aWRlci5oIgogI2luY2x1
ZGUgIk5ldHNjYXBlUGx1Z2luLmgiCkBAIC0xMDQsNiArMTA1LDcgQEAKICNpbmNsdWRlICJXZWJL
ZXlib2FyZEV2ZW50LmgiCiAjaW5jbHVkZSAiV2ViTG9hZGVyU3RyYXRlZ3kuaCIKICNpbmNsdWRl
ICJXZWJNZWRpYUtleVN0b3JhZ2VNYW5hZ2VyLmgiCisjaW5jbHVkZSAiV2ViTWVkaWFLZXlTeXN0
ZW1DbGllbnQuaCIKICNpbmNsdWRlICJXZWJNZWRpYVN0cmF0ZWd5LmgiCiAjaW5jbHVkZSAiV2Vi
TW91c2VFdmVudC5oIgogI2luY2x1ZGUgIldlYk5vdGlmaWNhdGlvbkNsaWVudC5oIgpAQCAtNDY3
LDYgKzQ2OSw5IEBAIFdlYlBhZ2U6OldlYlBhZ2UoUGFnZUlkZW50aWZpZXIgcGFnZUlELCBXZWJQ
YWdlQ3JlYXRpb25QYXJhbWV0ZXJzJiYgcGFyYW1ldGVycykKICNlbmRpZgogI2lmIEVOQUJMRShN
RURJQV9TVFJFQU0pCiAgICAgLCBtX3VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlciB7
IG1ha2VVbmlxdWVSZWY8VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyPigqdGhpcykg
fQorI2VuZGlmCisjaWYgRU5BQkxFKEVOQ1JZUFRFRF9NRURJQSkKKyAgICAsIG1fbWVkaWFLZXlT
eXN0ZW1QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIgeyBtYWtlVW5pcXVlUmVmPE1lZGlhS2V5U3lz
dGVtUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyPigqdGhpcykgfQogI2VuZGlmCiAgICAgLCBtX3Bh
Z2VTY3JvbGxlZEh5c3RlcmVzaXMoW3RoaXNdKFBBTDo6SHlzdGVyZXNpc1N0YXRlIHN0YXRlKSB7
IGlmIChzdGF0ZSA9PSBQQUw6Okh5c3RlcmVzaXNTdGF0ZTo6U3RvcHBlZCkgcGFnZVN0b3BwZWRT
Y3JvbGxpbmcoKTsgfSwgcGFnZVNjcm9sbEh5c3RlcmVzaXNEdXJhdGlvbikKICAgICAsIG1fY2Fu
UnVuQmVmb3JlVW5sb2FkQ29uZmlybVBhbmVsKHBhcmFtZXRlcnMuY2FuUnVuQmVmb3JlVW5sb2Fk
Q29uZmlybVBhbmVsKQpAQCAtNjQ4LDYgKzY1Myw5IEBAIFdlYlBhZ2U6OldlYlBhZ2UoUGFnZUlk
ZW50aWZpZXIgcGFnZUlELCBXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzJiYgcGFyYW1ldGVycykK
ICNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQogICAgIFdlYkNvcmU6OnByb3ZpZGVVc2VyTWVkaWFU
byhtX3BhZ2UuZ2V0KCksIG5ldyBXZWJVc2VyTWVkaWFDbGllbnQoKnRoaXMpKTsKICNlbmRpZgor
I2lmIEVOQUJMRShFTkNSWVBURURfTUVESUEpCisgICAgV2ViQ29yZTo6cHJvdmlkZU1lZGlhS2V5
U3lzdGVtVG8obV9wYWdlLmdldCgpLCBuZXcgV2ViTWVkaWFLZXlTeXN0ZW1DbGllbnQoKnRoaXMp
KTsKKyNlbmRpZgogCiAgICAgbV9wYWdlLT5zZXRDb250cm9sbGVkQnlBdXRvbWF0aW9uKHBhcmFt
ZXRlcnMuY29udHJvbGxlZEJ5QXV0b21hdGlvbik7CiAgICAgbV9wYWdlLT5zZXRIYXNSZXNvdXJj
ZUxvYWRDbGllbnQocGFyYW1ldGVycy5oYXNSZXNvdXJjZUxvYWRDbGllbnQpOwpAQCAtNDUyMSw2
ICs0NTI5LDE4IEBAIHZvaWQgV2ViUGFnZTo6Y2FwdHVyZURldmljZXNDaGFuZ2VkKCkKIAogI2Vu
ZGlmCiAKKyNpZiBFTkFCTEUoRU5DUllQVEVEX01FRElBKQordm9pZCBXZWJQYWdlOjptZWRpYUtl
eVN5c3RlbVdhc0dyYW50ZWQodWludDY0X3QgbWVkaWFLZXlTeXN0ZW1JRCwgQ29tcGxldGlvbkhh
bmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQoreworICAgIG1fbWVkaWFLZXlTeXN0
ZW1QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXItPm1lZGlhS2V5U3lzdGVtV2FzR3JhbnRlZChtZWRp
YUtleVN5c3RlbUlELCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7Cit9CisKK3ZvaWQgV2Vi
UGFnZTo6bWVkaWFLZXlTeXN0ZW1XYXNEZW5pZWQodWludDY0X3QgbWVkaWFLZXlTeXN0ZW1JRCwg
U3RyaW5nJiYgbWVzc2FnZSkKK3sKKyAgICBtX21lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVl
c3RNYW5hZ2VyLT5tZWRpYUtleVN5c3RlbVdhc0RlbmllZChtZWRpYUtleVN5c3RlbUlELCBXVEZN
b3ZlKG1lc3NhZ2UpKTsKK30KKyNlbmRpZgorCiAjaWYgIVBMQVRGT1JNKElPU19GQU1JTFkpCiB2
b2lkIFdlYlBhZ2U6OmFkdmFuY2VUb05leHRNaXNzcGVsbGluZyhib29sIHN0YXJ0QmVmb3JlU2Vs
ZWN0aW9uKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2Uv
V2ViUGFnZS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCmlu
ZGV4IDgzMzUxOTQxNmYyNmMzZDFjNDk1ZDdjZjNiYWE1YTM4ZTA4NTEzOWIuLjg4N2QyY2Y2MjY0
NjFjMWQ1Yzc1YjVhY2M3YjdjZTk1OGE1YjI3OGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViUGFnZS9XZWJQYWdlLmgKQEAgLTI0Niw2ICsyNDYsNyBAQCBjbGFzcyBHYW1lcGFkRGF0
YTsKIGNsYXNzIEdlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyOwogY2xhc3MgTGF5
ZXJIb3N0aW5nQ29udGV4dDsKIGNsYXNzIE1lZGlhRGV2aWNlU2FuZGJveEV4dGVuc2lvbnM7Citj
bGFzcyBNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcjsKIGNsYXNzIE5vdGlm
aWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcjsKIGNsYXNzIFBERlBsdWdpbjsKIGNsYXNz
IFBhZ2VCYW5uZXI7CkBAIC02NzIsNiArNjczLDEwIEBAIHB1YmxpYzoKICAgICB2b2lkIGNhcHR1
cmVEZXZpY2VzQ2hhbmdlZCgpOwogI2VuZGlmCiAKKyNpZiBFTkFCTEUoRU5DUllQVEVEX01FRElB
KQorICAgIE1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyJiBtZWRpYUtleVN5
c3RlbVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcigpIHsgcmV0dXJuIG1fbWVkaWFLZXlTeXN0ZW1Q
ZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXI7IH0KKyNlbmRpZgorCiAgICAgdm9pZCBlbGVtZW50RGlk
Rm9jdXMoV2ViQ29yZTo6RWxlbWVudCYpOwogICAgIHZvaWQgZWxlbWVudERpZFJlZm9jdXMoV2Vi
Q29yZTo6RWxlbWVudCYpOwogICAgIHZvaWQgZWxlbWVudERpZEJsdXIoV2ViQ29yZTo6RWxlbWVu
dCYpOwpAQCAtMTY2Nyw3ICsxNjcyLDExIEBAIHByaXZhdGU6CiAjaWYgRU5BQkxFKE1FRElBX1NU
UkVBTSkKICAgICB2b2lkIHVzZXJNZWRpYUFjY2Vzc1dhc0dyYW50ZWQodWludDY0X3QgdXNlck1l
ZGlhSUQsIFdlYkNvcmU6OkNhcHR1cmVEZXZpY2UmJiBhdWRpb0RldmljZVVJRCwgV2ViQ29yZTo6
Q2FwdHVyZURldmljZSYmIHZpZGVvRGV2aWNlVUlELCBTdHJpbmcmJiBtZWRpYURldmljZUlkZW50
aWZpZXJIYXNoU2FsdCwgU2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlJiYsIENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoKT4mJik7CiAgICAgdm9pZCB1c2VyTWVkaWFBY2Nlc3NXYXNEZW5pZWQodWludDY0
X3QgdXNlck1lZGlhSUQsIHVpbnQ2NF90IHJlYXNvbiwgU3RyaW5nJiYgaW52YWxpZENvbnN0cmFp
bnQpOworI2VuZGlmCiAKKyNpZiBFTkFCTEUoRU5DUllQVEVEX01FRElBKQorICAgIHZvaWQgbWVk
aWFLZXlTeXN0ZW1XYXNHcmFudGVkKHVpbnQ2NF90IG1lZGlhS2V5U3lzdGVtSUQsIENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoKT4mJik7CisgICAgdm9pZCBtZWRpYUtleVN5c3RlbVdhc0RlbmllZCh1
aW50NjRfdCBtZWRpYUtleVN5c3RlbUlELCBTdHJpbmcmJiBtZXNzYWdlKTsKICNlbmRpZgogCiAg
ICAgdm9pZCByZXF1ZXN0TWVkaWFQbGF5YmFja1N0YXRlKENvbXBsZXRpb25IYW5kbGVyPHZvaWQo
V2ViS2l0OjpNZWRpYVBsYXliYWNrU3RhdGUpPiYmKTsKQEAgLTE5NzksNiArMTk4OCwxMCBAQCBw
cml2YXRlOgogICAgIFVuaXF1ZVJlZjxVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXI+
IG1fdXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyOwogI2VuZGlmCiAKKyNpZiBFTkFC
TEUoRU5DUllQVEVEX01FRElBKQorICAgIFVuaXF1ZVJlZjxNZWRpYUtleVN5c3RlbVBlcm1pc3Np
b25SZXF1ZXN0TWFuYWdlcj4gbV9tZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdl
cjsKKyNlbmRpZgorCiAgICAgc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OlByaW50Q29udGV4dD4g
bV9wcmludENvbnRleHQ7CiAjaWYgUExBVEZPUk0oR1RLKQogICAgIFJlZlB0cjxXZWJQcmludE9w
ZXJhdGlvbkd0az4gbV9wcmludE9wZXJhdGlvbjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluCmluZGV4IDJkYTk5Y2QzNzIzOTJl
ODJjNTMwZDQyYzAxYTEyODc3MGZiZDg3MTcuLjIzZmNhMzU3MWYwNzQ3NTA5MWZmM2ZjMTRiYWJj
NDY1ZTIxNmVkNGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdl
L1dlYlBhZ2UubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBh
Z2UvV2ViUGFnZS5tZXNzYWdlcy5pbgpAQCAtMzc4LDYgKzM3OCwxMSBAQCBHZW5lcmF0ZVN5bnRo
ZXRpY0VkaXRpbmdDb21tYW5kKGVudW06dWludDhfdCBXZWJLaXQ6OlN5bnRoZXRpY0VkaXRpbmdD
b21tYW5kVHlwZQogICAgIENhcHR1cmVEZXZpY2VzQ2hhbmdlZCgpCiAjZW5kaWYKIAorI2lmIEVO
QUJMRShFTkNSWVBURURfTUVESUEpCisgICAgTWVkaWFLZXlTeXN0ZW1XYXNHcmFudGVkKHVpbnQ2
NF90IG1lZGlhS2V5U3lzdGVtSUQpIC0+ICgpIEFzeW5jCisgICAgTWVkaWFLZXlTeXN0ZW1XYXNE
ZW5pZWQodWludDY0X3QgbWVkaWFLZXlTeXN0ZW1JRCwgU3RyaW5nIG1lc3NhZ2UpCisjZW5kaWYK
KwogICAgIFJlcXVlc3RNZWRpYVBsYXliYWNrU3RhdGUoKSAtPiAoZW51bTp1aW50OF90IFdlYktp
dDo6TWVkaWFQbGF5YmFja1N0YXRlIHN0YXRlKSBBc3luYwogICAgIFBhdXNlQWxsTWVkaWFQbGF5
YmFjaygpIC0+ICgpIEFzeW5jCiAgICAgU3VzcGVuZEFsbE1lZGlhUGxheWJhY2soKSAtPiAoKSBB
c3luYwpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4
IDZkOTBkNDMzMGM1MTNhYzVhZjZhMGQ0YWFlYTkxNGMyZDAxYTFkZTEuLjExOTdlMmQzM2JlNTAw
ZTQ2NWRhZmM0ODhmNzExYmIxOGM1YzEwOTYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZwor
KysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzNiBAQAorMjAyMS0wMS0zMSAgUGhpbGlw
cGUgTm9ybWFuZCAgPHBub3JtYW5kQGlnYWxpYS5jb20+CisKKyAgICAgICAgUGVybWlzc2lvbiBy
ZXF1ZXN0IEFQSSBmb3IgTWVkaWFLZXlTeXN0ZW0gYWNjZXNzIHN1cHBvcnQKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyMTE4NworCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBiYXNpYyBzdXBwb3J0IGZv
ciBNZWRpYUtleVN5c3RlbSBwZXJtaXNzaW9uIHJlcXVlc3Qgc3VwcG9ydCBHVEsncyBNaW5pQnJv
d3Nlci4KKyAgICAgICAgQWRkIHN1cHBvcnQgZm9yIHNldHRpbmcgdGhlIHBlcm1pc3Npb24gcmVx
dWVzdCByZXNwb25zZSBmcm9tIHRoZSBUZXN0UnVubmVyLCBmb3IgdXNhZ2Ugd2l0aGluIGxheW91
dCB0ZXN0cy4KKyAgICAgICAgQWRkIEdMaWIgQVBJIHRlc3QgZm9yIHRoZSBNZWRpYUtleVN5c3Rl
bSBwZXJtaXNzaW9uIHJlcXVlc3Qgc3VwcG9ydC4KKyAgICAgICAgCisgICAgICAgICogTWluaUJy
b3dzZXIvZ3RrL0Jyb3dzZXJUYWIuYzoKKyAgICAgICAgKHBlcm1pc3Npb25SZXF1ZXN0RGlhbG9n
UmVzcG9uc2UpOgorICAgICAgICAoZGVjaWRlUGVybWlzc2lvblJlcXVlc3QpOgorICAgICAgICAo
YnJvd3Nlcl90YWJfY2xhc3NfaW5pdCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJLaXRHTGliL1Rlc3RVSUNsaWVudC5jcHA6CisgICAgICAgICh0ZXN0V2ViVmlld01lZGlhS2V5
U3lzdGVtUGVybWlzc2lvblJlcXVlc3RzKToKKyAgICAgICAgKGJlZm9yZUFsbCk6CisgICAgICAg
ICogVGVzdFdlYktpdEFQSS9nbGliL1dlYktpdEdMaWIvV2ViVmlld1Rlc3QuY3BwOgorICAgICAg
ICAoV2ViVmlld1Rlc3Q6OmluaXRpYWxpemVXZWJWaWV3KToKKyAgICAgICAgKiBXZWJLaXRUZXN0
UnVubmVyL0luamVjdGVkQnVuZGxlL0JpbmRpbmdzL1Rlc3RSdW5uZXIuaWRsOgorICAgICAgICAq
IFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5jcHA6CisgICAgICAg
IChXVFI6OlRlc3RSdW5uZXI6OnNldElzTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uR3JhbnRlZCk6
CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmg6
CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHA6CisgICAgICAg
IChXVFI6OmRlY2lkZVBvbGljeUZvck1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3QpOgor
ICAgICAgICAoV1RSOjpUZXN0Q29udHJvbGxlcjo6Y29tcGxldGVNZWRpYUtleVN5c3RlbVBlcm1p
c3Npb25DaGVjayk6CisgICAgICAgIChXVFI6OlRlc3RDb250cm9sbGVyOjpzZXRJc01lZGlhS2V5
U3lzdGVtUGVybWlzc2lvbkdyYW50ZWQpOgorICAgICAgICAoV1RSOjpUZXN0Q29udHJvbGxlcjo6
Y3JlYXRlV2ViVmlld1dpdGhPcHRpb25zKToKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL1Rl
c3RDb250cm9sbGVyLmg6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9UZXN0SW52b2NhdGlv
bi5jcHA6CisgICAgICAgIChXVFI6OlRlc3RJbnZvY2F0aW9uOjpkaWRSZWNlaXZlU3luY2hyb25v
dXNNZXNzYWdlRnJvbUluamVjdGVkQnVuZGxlKToKKwogMjAyMS0wMi0wMSAgWXVzdWtlIFN1enVr
aSAgPHlzdXp1a2lAYXBwbGUuY29tPgogCiAgICAgICAgIFtKU0NdIEFkZCBAIGluIEVycm9yLnN0
YWNrIGlmIFVSTCBleGlzdHMKZGlmZiAtLWdpdCBhL1Rvb2xzL01pbmlCcm93c2VyL2d0ay9Ccm93
c2VyVGFiLmMgYi9Ub29scy9NaW5pQnJvd3Nlci9ndGsvQnJvd3NlclRhYi5jCmluZGV4IDNlNTM4
YTlkOGE1ZjQ4ZGMwOGIzMzBlZDQ1MTdjMjI3NTM2OGRhOWYuLjk5MzU4NzkzNjMzZWEzOGQ1NGVl
NzI5ZDFkZjg4YWRhOWUyZDQ1ZmYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL01pbmlCcm93c2VyL2d0ay9C
cm93c2VyVGFiLmMKKysrIGIvVG9vbHMvTWluaUJyb3dzZXIvZ3RrL0Jyb3dzZXJUYWIuYwpAQCAt
NjAsNiArNjAsNyBAQCBzdHJ1Y3QgX0Jyb3dzZXJUYWIgewogfTsKIAogc3RhdGljIEdIYXNoVGFi
bGUgKnVzZXJNZWRpYVBlcm1pc3Npb25HcmFudGVkT3JpZ2luczsKK3N0YXRpYyBHSGFzaFRhYmxl
ICptZWRpYUtleVN5c3RlbVBlcm1pc3Npb25HcmFudGVkT3JpZ2luczsKIHN0cnVjdCBfQnJvd3Nl
clRhYkNsYXNzIHsKICAgICBHdGtCb3hDbGFzcyBwYXJlbnQ7CiB9OwpAQCAtMjY0LDEyICsyNjUs
MTYgQEAgc3RhdGljIHZvaWQgcGVybWlzc2lvblJlcXVlc3REaWFsb2dSZXNwb25zZShHdGtXaWRn
ZXQgKmRpYWxvZywgZ2ludCByZXNwb25zZSwgUGUKICAgICBjYXNlIEdUS19SRVNQT05TRV9ZRVM6
CiAgICAgICAgIGlmIChXRUJLSVRfSVNfVVNFUl9NRURJQV9QRVJNSVNTSU9OX1JFUVVFU1QocmVx
dWVzdERhdGEtPnJlcXVlc3QpKQogICAgICAgICAgICAgZ19oYXNoX3RhYmxlX2FkZCh1c2VyTWVk
aWFQZXJtaXNzaW9uR3JhbnRlZE9yaWdpbnMsIGdfc3RyZHVwKHJlcXVlc3REYXRhLT5vcmlnaW4p
KTsKKyAgICAgICAgaWYgKFdFQktJVF9JU19NRURJQV9LRVlfU1lTVEVNX1BFUk1JU1NJT05fUkVR
VUVTVChyZXF1ZXN0RGF0YS0+cmVxdWVzdCkpCisgICAgICAgICAgICBnX2hhc2hfdGFibGVfYWRk
KG1lZGlhS2V5U3lzdGVtUGVybWlzc2lvbkdyYW50ZWRPcmlnaW5zLCBnX3N0cmR1cChyZXF1ZXN0
RGF0YS0+b3JpZ2luKSk7CiAKICAgICAgICAgd2Via2l0X3Blcm1pc3Npb25fcmVxdWVzdF9hbGxv
dyhyZXF1ZXN0RGF0YS0+cmVxdWVzdCk7CiAgICAgICAgIGJyZWFrOwogICAgIGRlZmF1bHQ6CiAg
ICAgICAgIGlmIChXRUJLSVRfSVNfVVNFUl9NRURJQV9QRVJNSVNTSU9OX1JFUVVFU1QocmVxdWVz
dERhdGEtPnJlcXVlc3QpKQogICAgICAgICAgICAgZ19oYXNoX3RhYmxlX3JlbW92ZSh1c2VyTWVk
aWFQZXJtaXNzaW9uR3JhbnRlZE9yaWdpbnMsIHJlcXVlc3REYXRhLT5vcmlnaW4pOworICAgICAg
ICBpZiAoV0VCS0lUX0lTX01FRElBX0tFWV9TWVNURU1fUEVSTUlTU0lPTl9SRVFVRVNUKHJlcXVl
c3REYXRhLT5yZXF1ZXN0KSkKKyAgICAgICAgICAgIGdfaGFzaF90YWJsZV9yZW1vdmUobWVkaWFL
ZXlTeXN0ZW1QZXJtaXNzaW9uR3JhbnRlZE9yaWdpbnMsIHJlcXVlc3REYXRhLT5vcmlnaW4pOwog
CiAgICAgICAgIHdlYmtpdF9wZXJtaXNzaW9uX3JlcXVlc3RfZGVueShyZXF1ZXN0RGF0YS0+cmVx
dWVzdCk7CiAgICAgICAgIGJyZWFrOwpAQCAtMzQwLDYgKzM0NSwxNiBAQCBzdGF0aWMgZ2Jvb2xl
YW4gZGVjaWRlUGVybWlzc2lvblJlcXVlc3QoV2ViS2l0V2ViVmlldyAqd2ViVmlldywgV2ViS2l0
UGVybWlzc2lvbgogICAgICAgICBjb25zdCBnY2hhciAqY3VycmVudERvbWFpbiA9IHdlYmtpdF93
ZWJzaXRlX2RhdGFfYWNjZXNzX3Blcm1pc3Npb25fcmVxdWVzdF9nZXRfY3VycmVudF9kb21haW4o
d2Vic2l0ZURhdGFBY2Nlc3NSZXF1ZXN0KTsKICAgICAgICAgdGV4dCA9IGdfc3RyZHVwX3ByaW50
ZigiRG8geW91IHdhbnQgdG8gYWxsb3cgXCIlc1wiIHRvIHVzZSBjb29raWVzIHdoaWxlIGJyb3dz
aW5nIFwiJXNcIj8gVGhpcyB3aWxsIGFsbG93IFwiJXNcIiB0byB0cmFjayB5b3VyIGFjdGl2aXR5
IiwKICAgICAgICAgICAgIHJlcXVlc3RpbmdEb21haW4sIGN1cnJlbnREb21haW4sIHJlcXVlc3Rp
bmdEb21haW4pOworICAgIH0gZWxzZSBpZiAoV0VCS0lUX0lTX01FRElBX0tFWV9TWVNURU1fUEVS
TUlTU0lPTl9SRVFVRVNUKHJlcXVlc3QpKSB7CisgICAgICAgIGNoYXIgKm9yaWdpbiA9IGdldFdl
YlZpZXdPcmlnaW4od2ViVmlldyk7CisgICAgICAgIGlmIChnX2hhc2hfdGFibGVfY29udGFpbnMo
bWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uR3JhbnRlZE9yaWdpbnMsIG9yaWdpbikpIHsKKyAgICAg
ICAgICAgIHdlYmtpdF9wZXJtaXNzaW9uX3JlcXVlc3RfYWxsb3cocmVxdWVzdCk7CisgICAgICAg
ICAgICBnX2ZyZWUob3JpZ2luKTsKKyAgICAgICAgICAgIHJldHVybiBUUlVFOworICAgICAgICB9
CisgICAgICAgIGdfZnJlZShvcmlnaW4pOworICAgICAgICB0aXRsZSA9ICJEUk0gc3lzdGVtIGFj
Y2VzcyByZXF1ZXN0IjsKKyAgICAgICAgdGV4dCA9IGdfc3RyZHVwX3ByaW50ZigiQWxsb3cgdG8g
dXNlIGEgQ0RNIHByb3ZpZGluZyBhY2Nlc3MgdG8gJXM/Iiwgd2Via2l0X21lZGlhX2tleV9zeXN0
ZW1fcGVybWlzc2lvbl9nZXRfbmFtZShXRUJLSVRfTUVESUFfS0VZX1NZU1RFTV9QRVJNSVNTSU9O
X1JFUVVFU1QocmVxdWVzdCkpKTsKICAgICB9IGVsc2UgewogICAgICAgICBnX3ByaW50KCIlcyBy
ZXF1ZXN0IG5vdCBoYW5kbGVkXG4iLCBHX09CSkVDVF9UWVBFX05BTUUocmVxdWVzdCkpOwogICAg
ICAgICByZXR1cm4gRkFMU0U7CkBAIC02NTUsNiArNjcwLDkgQEAgc3RhdGljIHZvaWQgYnJvd3Nl
cl90YWJfY2xhc3NfaW5pdChCcm93c2VyVGFiQ2xhc3MgKmtsYXNzKQogICAgIGlmICghdXNlck1l
ZGlhUGVybWlzc2lvbkdyYW50ZWRPcmlnaW5zKQogICAgICAgICB1c2VyTWVkaWFQZXJtaXNzaW9u
R3JhbnRlZE9yaWdpbnMgPSBnX2hhc2hfdGFibGVfbmV3X2Z1bGwoZ19zdHJfaGFzaCwgZ19zdHJf
ZXF1YWwsIGdfZnJlZSwgTlVMTCk7CiAKKyAgICBpZiAoIW1lZGlhS2V5U3lzdGVtUGVybWlzc2lv
bkdyYW50ZWRPcmlnaW5zKQorICAgICAgICBtZWRpYUtleVN5c3RlbVBlcm1pc3Npb25HcmFudGVk
T3JpZ2lucyA9IGdfaGFzaF90YWJsZV9uZXdfZnVsbChnX3N0cl9oYXNoLCBnX3N0cl9lcXVhbCwg
Z19mcmVlLCBOVUxMKTsKKwogICAgIGdfb2JqZWN0X2NsYXNzX2luc3RhbGxfcHJvcGVydHkoCiAg
ICAgICAgIGdvYmplY3RDbGFzcywKICAgICAgICAgUFJPUF9WSUVXLApkaWZmIC0tZ2l0IGEvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRHTGliL1Rlc3RVSUNsaWVudC5jcHAgYi9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdEdMaWIvVGVzdFVJQ2xpZW50LmNwcAppbmRleCAw
ZjljYTJhMzgzZDI3OWYzZDUzMzJhZTkzYjA0MGVlNGMxN2VmMzFhLi5jN2ZhNmRlMGY1ZGY2ZGNl
OWYzZDY2MTRmNTRlMTU0OTk1NzQ5MmE1IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYktpdEdMaWIvVGVzdFVJQ2xpZW50LmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYktpdEdMaWIvVGVzdFVJQ2xpZW50LmNwcApAQCAtODk2LDYgKzg5Niw0MiBA
QCBzdGF0aWMgdm9pZCB0ZXN0V2ViVmlld0dlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3RzKFVJ
Q2xpZW50VGVzdCogdGVzdCwgZ2NvbnN0cAogICAgIFRlc3Q6OmFkZExvZ0ZhdGFsRmxhZyhHX0xP
R19MRVZFTF9XQVJOSU5HKTsKIH0KIAorI2lmIEVOQUJMRShFTkNSWVBURURfTUVESUEpCitzdGF0
aWMgdm9pZCB0ZXN0V2ViVmlld01lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RzKFVJQ2xp
ZW50VGVzdCogdGVzdCwgZ2NvbnN0cG9pbnRlcikKK3sKKyAgICB0ZXN0LT5zaG93SW5XaW5kb3co
KTsKKyAgICBzdGF0aWMgY29uc3QgY2hhciogbWVkaWFLZXlTeXN0ZW1SZXF1ZXN0SFRNTCA9ICI8
aHRtbD4iCisgICAgICAgICIgIDxzY3JpcHQ+IgorICAgICAgICAiICBmdW5jdGlvbiBydW5UZXN0
KCkiCisgICAgICAgICIgIHsiCisgICAgICAgICIgICAgY29uc3Qgb3B0aW9ucyA9IFsiCisgICAg
ICAgICIgICAgIHsgaW5pdERhdGFUeXBlczogW1wiY2VuY1wiXSwiCisgICAgICAgICIgICAgICAg
dmlkZW9DYXBhYmlsaXRpZXM6IFt7Y29udGVudFR5cGUgOiAndmlkZW8vbXA0J31dIH0iCisgICAg
ICAgICIgICAgXTsiCisgICAgICAgICIgICAgbmF2aWdhdG9yLnJlcXVlc3RNZWRpYUtleVN5c3Rl
bUFjY2Vzcygnb3JnLnczLmNsZWFya2V5Jywgb3B0aW9ucykudGhlbigoYWNjZXNzKSA9PiB7Igor
ICAgICAgICAiICAgICAgd2luZG93LndlYmtpdC5tZXNzYWdlSGFuZGxlcnMucGVybWlzc2lvbi5w
b3N0TWVzc2FnZSgnT0snKTsiCisgICAgICAgICIgICAgfSkuY2F0Y2goKGUpID0+IHsiCisgICAg
ICAgICIgICAgICB3aW5kb3cud2Via2l0Lm1lc3NhZ2VIYW5kbGVycy5wZXJtaXNzaW9uLnBvc3RN
ZXNzYWdlKGUubmFtZSk7IgorICAgICAgICAiICAgIH0pOyIKKyAgICAgICAgIiAgfSIKKyAgICAg
ICAgIiAgPC9zY3JpcHQ+IgorICAgICAgICAiICA8Ym9keSBvbmxvYWQ9J3J1blRlc3QoKTsnPjwv
Ym9keT4iCisgICAgICAgICI8L2h0bWw+IjsKKworICAgIC8vIFRlc3QgZGVueWluZyBhIHBlcm1p
c3Npb24gcmVxdWVzdC4KKyAgICB0ZXN0LT5tX2FsbG93UGVybWlzc2lvblJlcXVlc3RzID0gZmFs
c2U7CisgICAgdGVzdC0+bG9hZEh0bWwobWVkaWFLZXlTeXN0ZW1SZXF1ZXN0SFRNTCwgImh0dHBz
Oi8vZm9vLmNvbS9iYXIiKTsKKyAgICBjb25zdCBnY2hhciogcmVzdWx0ID0gdGVzdC0+d2FpdFVu
dGlsUGVybWlzc2lvblJlc3VsdE1lc3NhZ2VSZWNlaXZlZCgpOworICAgIGdfYXNzZXJ0X2NtcHN0
cihyZXN1bHQsID09LCAiTm90U3VwcG9ydGVkRXJyb3IiKTsKKworICAgIC8vIFRlc3QgYWxsb3dp
bmcgYSBwZXJtaXNzaW9uIHJlcXVlc3QuCisgICAgdGVzdC0+bV9hbGxvd1Blcm1pc3Npb25SZXF1
ZXN0cyA9IHRydWU7CisgICAgdGVzdC0+bG9hZEh0bWwobWVkaWFLZXlTeXN0ZW1SZXF1ZXN0SFRN
TCwgImh0dHBzOi8vZm9vLmNvbS9iYXIiKTsKKyAgICByZXN1bHQgPSB0ZXN0LT53YWl0VW50aWxQ
ZXJtaXNzaW9uUmVzdWx0TWVzc2FnZVJlY2VpdmVkKCk7CisgICAgZ19hc3NlcnRfY21wc3RyKHJl
c3VsdCwgPT0sICJPSyIpOworfQorI2VuZGlmCisKICNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQog
c3RhdGljIHZvaWQgdGVzdFdlYlZpZXdVc2VyTWVkaWFFbnVtZXJhdGVEZXZpY2VzUGVybWlzc2lv
bkNoZWNrKFVJQ2xpZW50VGVzdCogdGVzdCwgZ2NvbnN0cG9pbnRlcikKIHsKQEAgLTEyOTksNiAr
MTMzNSw5IEBAIHZvaWQgYmVmb3JlQWxsKCkKICAgICBVSUNsaWVudFRlc3Q6OmFkZCgiV2ViS2l0
V2ViVmlldyIsICJtb3VzZS10YXJnZXQiLCB0ZXN0V2ViVmlld01vdXNlVGFyZ2V0KTsKICNlbmRp
ZgogICAgIFVJQ2xpZW50VGVzdDo6YWRkKCJXZWJLaXRXZWJWaWV3IiwgImdlb2xvY2F0aW9uLXBl
cm1pc3Npb24tcmVxdWVzdHMiLCB0ZXN0V2ViVmlld0dlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVl
c3RzKTsKKyNpZiBFTkFCTEUoRU5DUllQVEVEX01FRElBKQorICAgIFVJQ2xpZW50VGVzdDo6YWRk
KCJXZWJLaXRXZWJWaWV3IiwgIm1lZGlhS2V5U3lzdGVtLXBlcm1pc3Npb24tcmVxdWVzdHMiLCB0
ZXN0V2ViVmlld01lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RzKTsKKyNlbmRpZgogI2lm
IEVOQUJMRShNRURJQV9TVFJFQU0pCiAgICAgVUlDbGllbnRUZXN0OjphZGQoIldlYktpdFdlYlZp
ZXciLCAidXNlcm1lZGlhLWVudW1lcmF0ZWRldmljZXMtcGVybWlzc2lvbi1jaGVjayIsIHRlc3RX
ZWJWaWV3VXNlck1lZGlhRW51bWVyYXRlRGV2aWNlc1Blcm1pc3Npb25DaGVjayk7CiAgICAgVUlD
bGllbnRUZXN0OjphZGQoIldlYktpdFdlYlZpZXciLCAidXNlcm1lZGlhLXBlcm1pc3Npb24tcmVx
dWVzdHMiLCB0ZXN0V2ViVmlld1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0cyk7CmRpZmYgLS1n
aXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL2dsaWIvV2ViS2l0R0xpYi9XZWJWaWV3VGVzdC5jcHAg
Yi9Ub29scy9UZXN0V2ViS2l0QVBJL2dsaWIvV2ViS2l0R0xpYi9XZWJWaWV3VGVzdC5jcHAKaW5k
ZXggN2ExM2ViOGY4NDAyZGYwNTE3YWYwNjhkOTFkMmFmY2QwOWRlOTY0Ni4uNmM3ZTliOTQ2YjY0
N2NkYjcyNGE1ZTI2NjA5ZTc3MzkxZDhkMzI3ZCAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktp
dEFQSS9nbGliL1dlYktpdEdMaWIvV2ViVmlld1Rlc3QuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvZ2xpYi9XZWJLaXRHTGliL1dlYlZpZXdUZXN0LmNwcApAQCAtNjAsNiArNjAsMTIgQEAg
dm9pZCBXZWJWaWV3VGVzdDo6aW5pdGlhbGl6ZVdlYlZpZXcoKQogICAgICAgICAidXNlci1jb250
ZW50LW1hbmFnZXIiLCBtX3VzZXJDb250ZW50TWFuYWdlci5nZXQoKSwKICAgICAgICAgImlzLWVw
aGVtZXJhbCIsIHNob3VsZENyZWF0ZUVwaGVtZXJhbFdlYlZpZXcsCiAgICAgICAgIG51bGxwdHIp
KTsKKworI2lmIEVOQUJMRShFTkNSWVBURURfTUVESUEpCisgICAgYXV0byogc2V0dGluZ3MgPSB3
ZWJraXRfd2ViX3ZpZXdfZ2V0X3NldHRpbmdzKG1fd2ViVmlldyk7CisgICAgd2Via2l0X3NldHRp
bmdzX3NldF9lbmFibGVfZW5jcnlwdGVkX21lZGlhKHNldHRpbmdzLCBUUlVFKTsKKyNlbmRpZgor
CiAgICAgcGxhdGZvcm1Jbml0aWFsaXplV2ViVmlldygpOwogICAgIGFzc2VydE9iamVjdElzRGVs
ZXRlZFdoZW5UZXN0RmluaXNoZXMoR19PQkpFQ1QobV93ZWJWaWV3KSk7CiAKZGlmZiAtLWdpdCBh
L1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvVGVzdFJ1bm5l
ci5pZGwgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0JpbmRpbmdzL1Rl
c3RSdW5uZXIuaWRsCmluZGV4IGRiMTU5OWEyYzU2MDJhZTgxYWIyZjI0ZTA4ZjlmOTU1MzljMDVi
OWEuLmEwNzFlY2RkZDllNDM0ODNmZTc3MTk2ODZjMzVhNGYzN2I4YjFiYzcgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvVGVzdFJ1bm5l
ci5pZGwKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5n
cy9UZXN0UnVubmVyLmlkbApAQCAtNDA4LDQgKzQwOCw3IEBAIGludGVyZmFjZSBUZXN0UnVubmVy
IHsKIAogICAgIC8vIFNwZWVjaFJlY29nbml0aW9uCiAgICAgdW5kZWZpbmVkIHNldElzU3BlZWNo
UmVjb2duaXRpb25QZXJtaXNzaW9uR3JhbnRlZChib29sZWFuIHZhbHVlKTsKKworICAgIC8vIE1l
ZGlhS2V5U3lzdGVtCisgICAgdW5kZWZpbmVkIHNldElzTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9u
R3JhbnRlZChib29sZWFuIHZhbHVlKTsKIH07CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0
UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuY3BwIGIvVG9vbHMvV2ViS2l0VGVzdFJ1
bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmNwcAppbmRleCA2MzgwOTg5MjUxOGNjZTNj
ZmQ2YmEyZGZhY2RjNmY1ZWY5MDNiYWI2Li44NjRjY2UyODU5N2E0MThkODlhNTM1N2RjOTIwMGNj
ZDAxOTRjN2Q1IDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVu
ZGxlL1Rlc3RSdW5uZXIuY3BwCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRC
dW5kbGUvVGVzdFJ1bm5lci5jcHAKQEAgLTIwODQsNiArMjA4NCwxMSBAQCB2b2lkIFRlc3RSdW5u
ZXI6OnNldElzU3BlZWNoUmVjb2duaXRpb25QZXJtaXNzaW9uR3JhbnRlZChib29sIGdyYW50ZWQp
CiAgICAgcG9zdFN5bmNocm9ub3VzUGFnZU1lc3NhZ2UoInNldElzU3BlZWNoUmVjb2duaXRpb25Q
ZXJtaXNzaW9uR3JhbnRlZCIsIGdyYW50ZWQpOwogfQogCit2b2lkIFRlc3RSdW5uZXI6OnNldElz
TWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uR3JhbnRlZChib29sIGdyYW50ZWQpCit7CisgICAgcG9z
dFN5bmNocm9ub3VzUGFnZU1lc3NhZ2UoInNldElzTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uR3Jh
bnRlZCIsIGdyYW50ZWQpOworfQorCiBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQK
IAogfSAvLyBuYW1lc3BhY2UgV1RSCmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVy
L0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuaCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5q
ZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5oCmluZGV4IDkzYTk3Y2JkZGU0ODc1Y2JkMzM1YTcwZmNi
OWZmNTNkYjRmMjhiNDQuLmJjZjcxMGI3Yjg1NDY5ZjliYzY5MjA0MTI4MjcxNDZkMjNiM2JjOTcg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1
bm5lci5oCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1
bm5lci5oCkBAIC01MTksNiArNTE5LDggQEAgcHVibGljOgogCiAgICAgdm9pZCBzZXRJc1NwZWVj
aFJlY29nbml0aW9uUGVybWlzc2lvbkdyYW50ZWQoYm9vbCk7CiAKKyAgICB2b2lkIHNldElzTWVk
aWFLZXlTeXN0ZW1QZXJtaXNzaW9uR3JhbnRlZChib29sKTsKKwogcHJpdmF0ZToKICAgICBUZXN0
UnVubmVyKCk7CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRy
b2xsZXIuY3BwIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAKaW5k
ZXggZDJjYmVmNDI1M2RmZTY1MTMyODcyM2Q1NzlkYjM0MTRiZjFkYTc4Yy4uYjNmM2I5MzNkOWRh
ZjAwNmUwZmY4NzMyNDRlNzVhOTM2ZjcyMjhkOCAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVz
dFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9U
ZXN0Q29udHJvbGxlci5jcHAKQEAgLTQ2LDYgKzQ2LDcgQEAKICNpbmNsdWRlIDxXZWJLaXQvV0tG
cmFtZUluZm9SZWYuaD4KICNpbmNsdWRlIDxXZWJLaXQvV0tIVFRQQ29va2llU3RvcmVSZWYuaD4K
ICNpbmNsdWRlIDxXZWJLaXQvV0tJY29uRGF0YWJhc2UuaD4KKyNpbmNsdWRlIDxXZWJLaXQvV0tN
ZWRpYUtleVN5c3RlbVBlcm1pc3Npb25DYWxsYmFjay5oPgogI2luY2x1ZGUgPFdlYktpdC9XS01l
c3NhZ2VMaXN0ZW5lci5oPgogI2luY2x1ZGUgPFdlYktpdC9XS01vY2tEaXNwbGF5Lmg+CiAjaW5j
bHVkZSA8V2ViS2l0L1dLTW9ja01lZGlhRGV2aWNlLmg+CkBAIC0zNDMsNiArMzQ0LDIxIEBAIHZv
aWQgVGVzdENvbnRyb2xsZXI6OnNldElzU3BlZWNoUmVjb2duaXRpb25QZXJtaXNzaW9uR3JhbnRl
ZChib29sIGdyYW50ZWQpCiAgICAgbV9pc1NwZWVjaFJlY29nbml0aW9uUGVybWlzc2lvbkdyYW50
ZWQgPSBncmFudGVkOwogfQogCitzdGF0aWMgdm9pZCBkZWNpZGVQb2xpY3lGb3JNZWRpYUtleVN5
c3RlbVBlcm1pc3Npb25SZXF1ZXN0KFdLUGFnZVJlZiwgV0tTZWN1cml0eU9yaWdpblJlZiwgV0tT
dHJpbmdSZWYsIFdLTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uQ2FsbGJhY2tSZWYgY2FsbGJhY2sp
Cit7CisgICAgVGVzdENvbnRyb2xsZXI6OnNpbmdsZXRvbigpLmNvbXBsZXRlTWVkaWFLZXlTeXN0
ZW1QZXJtaXNzaW9uQ2hlY2soY2FsbGJhY2spOworfQorCit2b2lkIFRlc3RDb250cm9sbGVyOjpj
b21wbGV0ZU1lZGlhS2V5U3lzdGVtUGVybWlzc2lvbkNoZWNrKFdLTWVkaWFLZXlTeXN0ZW1QZXJt
aXNzaW9uQ2FsbGJhY2tSZWYgY2FsbGJhY2spCit7CisgICAgV0tNZWRpYUtleVN5c3RlbVBlcm1p
c3Npb25DYWxsYmFja0NvbXBsZXRlKGNhbGxiYWNrLCBtX2lzTWVkaWFLZXlTeXN0ZW1QZXJtaXNz
aW9uR3JhbnRlZCk7Cit9CisKK3ZvaWQgVGVzdENvbnRyb2xsZXI6OnNldElzTWVkaWFLZXlTeXN0
ZW1QZXJtaXNzaW9uR3JhbnRlZChib29sIGdyYW50ZWQpCit7CisgICAgbV9pc01lZGlhS2V5U3lz
dGVtUGVybWlzc2lvbkdyYW50ZWQgPSBncmFudGVkOworfQorCiBXS1BhZ2VSZWYgVGVzdENvbnRy
b2xsZXI6OmNyZWF0ZU90aGVyUGFnZShXS1BhZ2VSZWYsIFdLUGFnZUNvbmZpZ3VyYXRpb25SZWYg
Y29uZmlndXJhdGlvbiwgV0tOYXZpZ2F0aW9uQWN0aW9uUmVmIG5hdmlnYXRpb25BY3Rpb24sIFdL
V2luZG93RmVhdHVyZXNSZWYgd2luZG93RmVhdHVyZXMsIGNvbnN0IHZvaWQgKmNsaWVudEluZm8p
CiB7CiAgICAgUGxhdGZvcm1XZWJWaWV3KiBwYXJlbnRWaWV3ID0gc3RhdGljX2Nhc3Q8UGxhdGZv
cm1XZWJWaWV3Kj4oY29uc3RfY2FzdDx2b2lkKj4oY2xpZW50SW5mbykpOwpAQCAtNjk5LDggKzcx
NSw4IEBAIHZvaWQgVGVzdENvbnRyb2xsZXI6OmNyZWF0ZVdlYlZpZXdXaXRoT3B0aW9ucyhjb25z
dCBUZXN0T3B0aW9ucyYgb3B0aW9ucykKICAgICBXS0hUVFBDb29raWVTdG9yZURlbGV0ZUFsbENv
b2tpZXMoV0tXZWJzaXRlRGF0YVN0b3JlR2V0SFRUUENvb2tpZVN0b3JlKHdlYnNpdGVEYXRhU3Rv
cmUoKSksIG51bGxwdHIsIG51bGxwdHIpOwogCiAgICAgcGxhdGZvcm1DcmVhdGVXZWJWaWV3KGNv
bmZpZ3VyYXRpb24uZ2V0KCksIG9wdGlvbnMpOwotICAgIFdLUGFnZVVJQ2xpZW50VjE1IHBhZ2VV
SUNsaWVudCA9IHsKLSAgICAgICAgeyAxNSwgbV9tYWluV2ViVmlldy5nZXQoKSB9LAorICAgIFdL
UGFnZVVJQ2xpZW50VjE2IHBhZ2VVSUNsaWVudCA9IHsKKyAgICAgICAgeyAxNiwgbV9tYWluV2Vi
Vmlldy5nZXQoKSB9LAogICAgICAgICAwLCAvLyBjcmVhdGVOZXdQYWdlX2RlcHJlY2F0ZWRGb3JV
c2VXaXRoVjAKICAgICAgICAgMCwgLy8gc2hvd1BhZ2UKICAgICAgICAgMCwgLy8gY2xvc2UKQEAg
LTc3NCw3ICs3OTAsOCBAQCB2b2lkIFRlc3RDb250cm9sbGVyOjpjcmVhdGVXZWJWaWV3V2l0aE9w
dGlvbnMoY29uc3QgVGVzdE9wdGlvbnMmIG9wdGlvbnMpCiAgICAgICAgIDAsIC8vIHJlcXVlc3RT
dG9yYWdlQWNjZXNzQ29uZmlybQogICAgICAgICBzaG91bGRBbGxvd0RldmljZU9yaWVudGF0aW9u
QW5kTW90aW9uQWNjZXNzLAogICAgICAgICBydW5XZWJBdXRoZW50aWNhdGlvblBhbmVsLAotICAg
ICAgICBkZWNpZGVQb2xpY3lGb3JTcGVlY2hSZWNvZ25pdGlvblBlcm1pc3Npb25SZXF1ZXN0Cisg
ICAgICAgIGRlY2lkZVBvbGljeUZvclNwZWVjaFJlY29nbml0aW9uUGVybWlzc2lvblJlcXVlc3Qs
CisgICAgICAgIGRlY2lkZVBvbGljeUZvck1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3QK
ICAgICB9OwogICAgIFdLUGFnZVNldFBhZ2VVSUNsaWVudChtX21haW5XZWJWaWV3LT5wYWdlKCks
ICZwYWdlVUlDbGllbnQuYmFzZSk7CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5u
ZXIvVGVzdENvbnRyb2xsZXIuaCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xs
ZXIuaAppbmRleCBiYjc1ZDUwNzAyYzNhNTNmMzlkZTE1ODFkY2M0ZDNiMzM3Mzk2NGNiLi44MThj
MmI0ZWM0YTU2MmJjMDY3YTRmM2Q1Y2ViYmNkYmQwNWMwNDdjIDEwMDY0NAotLS0gYS9Ub29scy9X
ZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmgKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1
bm5lci9UZXN0Q29udHJvbGxlci5oCkBAIC0zNTYsNiArMzU2LDkgQEAgcHVibGljOgogICAgIHZv
aWQgY29tcGxldGVTcGVlY2hSZWNvZ25pdGlvblBlcm1pc3Npb25DaGVjayhXS1NwZWVjaFJlY29n
bml0aW9uUGVybWlzc2lvbkNhbGxiYWNrUmVmKTsKICAgICB2b2lkIHNldElzU3BlZWNoUmVjb2du
aXRpb25QZXJtaXNzaW9uR3JhbnRlZChib29sKTsKIAorICAgIHZvaWQgY29tcGxldGVNZWRpYUtl
eVN5c3RlbVBlcm1pc3Npb25DaGVjayhXS01lZGlhS2V5U3lzdGVtUGVybWlzc2lvbkNhbGxiYWNr
UmVmKTsKKyAgICB2b2lkIHNldElzTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uR3JhbnRlZChib29s
KTsKKwogcHJpdmF0ZToKICAgICBXS1JldGFpblB0cjxXS1BhZ2VDb25maWd1cmF0aW9uUmVmPiBn
ZW5lcmF0ZVBhZ2VDb25maWd1cmF0aW9uKGNvbnN0IFRlc3RPcHRpb25zJik7CiAgICAgV0tSZXRh
aW5QdHI8V0tDb250ZXh0Q29uZmlndXJhdGlvblJlZj4gZ2VuZXJhdGVDb250ZXh0Q29uZmlndXJh
dGlvbihjb25zdCBUZXN0T3B0aW9ucyYpIGNvbnN0OwpAQCAtNjQ3LDYgKzY1MCw4IEBAIHByaXZh
dGU6CiAjZW5kaWYKIAogICAgIGJvb2wgbV9pc1NwZWVjaFJlY29nbml0aW9uUGVybWlzc2lvbkdy
YW50ZWQgeyBmYWxzZSB9OworCisgICAgYm9vbCBtX2lzTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9u
R3JhbnRlZCB7IHRydWUgfTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdUUgpkaWZmIC0tZ2l0IGEv
VG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0SW52b2NhdGlvbi5jcHAgYi9Ub29scy9XZWJLaXRU
ZXN0UnVubmVyL1Rlc3RJbnZvY2F0aW9uLmNwcAppbmRleCA1OThkZmM3ZDFhYzBlMzdiYjIyZmI3
ODRiYTE1NGFiNzQ3N2FlYTE1Li41NTAzNTVjN2I4Yjk4NDg0YTdkMjhjZjU1OTVmNjM4NzUxN2Jm
NGJhIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RJbnZvY2F0aW9uLmNw
cAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RJbnZvY2F0aW9uLmNwcApAQCAtMTM2
MCw2ICsxMzYwLDExIEBAIFdLUmV0YWluUHRyPFdLVHlwZVJlZj4gVGVzdEludm9jYXRpb246OmRp
ZFJlY2VpdmVTeW5jaHJvbm91c01lc3NhZ2VGcm9tSW5qZWN0ZWRCCiAgICAgICAgIHJldHVybiBu
dWxscHRyOwogICAgIH0KIAorICAgIGlmIChXS1N0cmluZ0lzRXF1YWxUb1VURjhDU3RyaW5nKG1l
c3NhZ2VOYW1lLCAic2V0SXNNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25HcmFudGVkIikpIHsKKyAg
ICAgICAgVGVzdENvbnRyb2xsZXI6OnNpbmdsZXRvbigpLnNldElzTWVkaWFLZXlTeXN0ZW1QZXJt
aXNzaW9uR3JhbnRlZChib29sZWFuVmFsdWUobWVzc2FnZUJvZHkpKTsKKyAgICAgICAgcmV0dXJu
IG51bGxwdHI7CisgICAgfQorCiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgcmV0dXJu
IG51bGxwdHI7CiB9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cKaW5kZXggMDJjZjNlOThhZGFjYmI5M2M5NTNhZTIwMGNiYzAzYmJmZmNi
MDQ4OC4uZDFmY2Q0YzI0Mzg4MGNmZDcwMDA2ZDkxYjYyYmMwZjM5ZDk4YjBiNCAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDE2IEBACisyMDIxLTAxLTMxICBQaGlsaXBwZSBOb3JtYW5kICA8cG5vcm1hbmRAaWdh
bGlhLmNvbT4KKworICAgICAgICBQZXJtaXNzaW9uIHJlcXVlc3QgQVBJIGZvciBNZWRpYUtleVN5
c3RlbSBhY2Nlc3Mgc3VwcG9ydAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MjIxMTg3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgQWRkIGJhc2ljIGNvdmVyYWdlIHN1cHBvcnQgZm9yIG92ZXJyaWRpbmcgdGhl
IE1lZGlhS2V5U3lzdGVtIHBlcm1pc3Npb24gYW5zd2VyIGFuZCB0aHVzIGhhdmUKKyAgICAgICAg
dGhlIHByb21pc2UgcmVqZWN0aW9uIHRlc3RlZCBpbiB0aGlzIGNhc2UuCisKKyAgICAgICAgKiBt
ZWRpYS9lbmNyeXB0ZWQtbWVkaWEvbW9jay1NZWRpYUtleVN5c3RlbUFjY2Vzcy1leHBlY3RlZC50
eHQ6CisgICAgICAgICogbWVkaWEvZW5jcnlwdGVkLW1lZGlhL21vY2stTWVkaWFLZXlTeXN0ZW1B
Y2Nlc3MuaHRtbDoKKwogMjAyMS0wMi0wMSAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUu
Y29tPgogCiAgICAgICAgIFtKU0NdIEFkZCBAIGluIEVycm9yLnN0YWNrIGlmIFVSTCBleGlzdHMK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL21lZGlhL2VuY3J5cHRlZC1tZWRpYS9tb2NrLU1lZGlh
S2V5U3lzdGVtQWNjZXNzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL21lZGlhL2VuY3J5cHRl
ZC1tZWRpYS9tb2NrLU1lZGlhS2V5U3lzdGVtQWNjZXNzLWV4cGVjdGVkLnR4dAppbmRleCAyMDky
MzRkNTExOThmMGMxMjQ4YWVkNmVjM2I3NTYzYTE3NTBkZGM0Li4xMjBiYTFmMmMyODdjZWI3Njhl
ZjBhNmY0YTJmOGU0OTJlZWE0YWEwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9tZWRpYS9lbmNy
eXB0ZWQtbWVkaWEvbW9jay1NZWRpYUtleVN5c3RlbUFjY2Vzcy1leHBlY3RlZC50eHQKKysrIGIv
TGF5b3V0VGVzdHMvbWVkaWEvZW5jcnlwdGVkLW1lZGlhL21vY2stTWVkaWFLZXlTeXN0ZW1BY2Nl
c3MtZXhwZWN0ZWQudHh0CkBAIC0zMSw2ICszMSwxMCBAQCBSVU4oY2FwYWJpbGl0aWVzLnBlcnNp
c3RlbnRTdGF0ZSA9ICJub3QtYWxsb3dlZCIpCiBSVU4ocHJvbWlzZSA9IG5hdmlnYXRvci5yZXF1
ZXN0TWVkaWFLZXlTeXN0ZW1BY2Nlc3MoIm9yZy53ZWJraXQubW9jayIsIFtjYXBhYmlsaXRpZXNd
KSkKIFByb21pc2UgcmVzb2x2ZWQgT0sKIAorUlVOKHRlc3RSdW5uZXIuc2V0SXNNZWRpYUtleVN5
c3RlbVBlcm1pc3Npb25HcmFudGVkKGZhbHNlKSkKK1JVTihwcm9taXNlID0gbmF2aWdhdG9yLnJl
cXVlc3RNZWRpYUtleVN5c3RlbUFjY2Vzcygib3JnLndlYmtpdC5tb2NrIiwgW2NhcGFiaWxpdGll
c10pKQorUHJvbWlzZSByZWplY3RlZCBjb3JyZWN0bHkgT0sKKwogUlVOKHByb21pc2UgPSBtZWRp
YUtleVN5c3RlbUFjY2Vzcy5jcmVhdGVNZWRpYUtleXMoKSkKIFByb21pc2UgcmVzb2x2ZWQgT0sK
IApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvbWVkaWEvZW5jcnlwdGVkLW1lZGlhL21vY2stTWVk
aWFLZXlTeXN0ZW1BY2Nlc3MuaHRtbCBiL0xheW91dFRlc3RzL21lZGlhL2VuY3J5cHRlZC1tZWRp
YS9tb2NrLU1lZGlhS2V5U3lzdGVtQWNjZXNzLmh0bWwKaW5kZXggNDc5NmYxOGMyMDFmMTc0NmQ3
ZGY0MzI3NDJkOTc1Yzc1ZWU0YmE3NS4uNTU1YjllZTc2OWVlYmQxNmQ5YTY3NjkyYjYzNzAzZDRj
YTMyYzcwOSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvbWVkaWEvZW5jcnlwdGVkLW1lZGlhL21v
Y2stTWVkaWFLZXlTeXN0ZW1BY2Nlc3MuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9tZWRpYS9lbmNy
eXB0ZWQtbWVkaWEvbW9jay1NZWRpYUtleVN5c3RlbUFjY2Vzcy5odG1sCkBAIC04NCw2ICs4NCwx
MyBAQAogICAgICAgICB9LAogCiAgICAgICAgIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgcnVu
KCd0ZXN0UnVubmVyLnNldElzTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uR3JhbnRlZChmYWxzZSkn
KTsKKyAgICAgICAgICAgIHJ1bigncHJvbWlzZSA9IG5hdmlnYXRvci5yZXF1ZXN0TWVkaWFLZXlT
eXN0ZW1BY2Nlc3MoIm9yZy53ZWJraXQubW9jayIsIFtjYXBhYmlsaXRpZXNdKScpOworICAgICAg
ICAgICAgc2hvdWxkUmVqZWN0KHByb21pc2UpLnRoZW4obmV4dCwgbmV4dCk7CisgICAgICAgIH0s
CisKKyAgICAgICAgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICB0ZXN0UnVubmVyLnNldElzTWVk
aWFLZXlTeXN0ZW1QZXJtaXNzaW9uR3JhbnRlZCh0cnVlKTsKICAgICAgICAgICAgIHJ1bigncHJv
bWlzZSA9IG1lZGlhS2V5U3lzdGVtQWNjZXNzLmNyZWF0ZU1lZGlhS2V5cygpJyk7CiAgICAgICAg
ICAgICBzaG91bGRSZXNvbHZlKHByb21pc2UpLnRoZW4obmV4dCwgbmV4dCk7CiAgICAgICAgIH0s
Cg==
</data>
<flag name="commit-queue"
          id="436944"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>418855</attachid>
            <date>2021-02-01 04:18:10 -0800</date>
            <delta_ts>2021-02-01 05:09:51 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-221187-20210201041808.patch</filename>
            <type>text/plain</type>
            <size>161906</size>
            <attacher name="Philippe Normand">pnormand</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcyMTM5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNGQzNzA5MTUyYzFmMmU1
Y2U1MmZmOTliZTIyNjY2MTM1MDhmOTdhNS4uMzQzZDgwM2IyNWZjODIyMDFiZjcyYmRhODBlNmIx
NGE5MjQyNDFjYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ4IEBACisyMDIxLTAxLTMxICBQaGls
aXBwZSBOb3JtYW5kICA8cG5vcm1hbmRAaWdhbGlhLmNvbT4KKworICAgICAgICBQZXJtaXNzaW9u
IHJlcXVlc3QgQVBJIGZvciBNZWRpYUtleVN5c3RlbSBhY2Nlc3Mgc3VwcG9ydAorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjIxMTg3CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgU3VwcG9ydCBmb3IgdXNlciBw
ZXJtaXNzaW9uIHJlcXVlc3Rpbmcgd2hlbiBhY2Nlc3MgdG8gYW4gRU1FIE1lZGlhS2V5U3lzdGVt
IGlzIGJlaW5nCisgICAgICAgIHJlcXVlc3RlZCBieSB0aGUgcGFnZS4gVGhpcyBpcyBzaW1pbGFy
IHRvIHRoZSBtZWRpYURldmljZXMgYWNjZXNzIGd1YXJkcy4KKworICAgICAgICBFeGlzdGluZyB0
ZXN0IG1lZGlhL2VuY3J5cHRlZC1tZWRpYS9tb2NrLU1lZGlhS2V5U3lzdGVtQWNjZXNzLmh0bWwg
d2FzIHVwZGF0ZWQgdG8gY292ZXIgdGhpcworICAgICAgICBuZXcgY29kZSBwYXRoIGFuZCBXUEUv
R1RLIEFQSSB0ZXN0cyBhcyB3ZWxsLgorCisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6CisgICAg
ICAgICogSGVhZGVycy5jbWFrZToKKyAgICAgICAgKiBNb2R1bGVzL2VuY3J5cHRlZG1lZGlhL01l
ZGlhS2V5U3lzdGVtQ2xpZW50Lmg6IEFkZGVkLgorICAgICAgICAqIE1vZHVsZXMvZW5jcnlwdGVk
bWVkaWEvTWVkaWFLZXlTeXN0ZW1Db250cm9sbGVyLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJD
b3JlOjpNZWRpYUtleVN5c3RlbUNvbnRyb2xsZXI6OnN1cHBsZW1lbnROYW1lKToKKyAgICAgICAg
KFdlYkNvcmU6Ok1lZGlhS2V5U3lzdGVtQ29udHJvbGxlcjo6TWVkaWFLZXlTeXN0ZW1Db250cm9s
bGVyKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhS2V5U3lzdGVtQ29udHJvbGxlcjo6fk1lZGlh
S2V5U3lzdGVtQ29udHJvbGxlcik6CisgICAgICAgIChXZWJDb3JlOjpwcm92aWRlTWVkaWFLZXlT
eXN0ZW1Ubyk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYUtleVN5c3RlbUNvbnRyb2xsZXI6Omxv
Z1JlcXVlc3RNZWRpYUtleVN5c3RlbURlbmlhbCk6CisgICAgICAgICogTW9kdWxlcy9lbmNyeXB0
ZWRtZWRpYS9NZWRpYUtleVN5c3RlbUNvbnRyb2xsZXIuaDogQWRkZWQuCisgICAgICAgIChXZWJD
b3JlOjpNZWRpYUtleVN5c3RlbUNvbnRyb2xsZXI6OmNsaWVudCBjb25zdCk6CisgICAgICAgIChX
ZWJDb3JlOjpNZWRpYUtleVN5c3RlbUNvbnRyb2xsZXI6OmZyb20pOgorICAgICAgICAoV2ViQ29y
ZTo6TWVkaWFLZXlTeXN0ZW1Db250cm9sbGVyOjpyZXF1ZXN0TWVkaWFLZXlTeXN0ZW0pOgorICAg
ICAgICAoV2ViQ29yZTo6TWVkaWFLZXlTeXN0ZW1Db250cm9sbGVyOjpjYW5jZWxNZWRpYUtleVN5
c3RlbVJlcXVlc3QpOgorICAgICAgICAqIE1vZHVsZXMvZW5jcnlwdGVkbWVkaWEvTWVkaWFLZXlT
eXN0ZW1SZXF1ZXN0LmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpNZWRpYUtleVN5c3Rl
bVJlcXVlc3Q6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYUtleVN5c3RlbVJlcXVl
c3Q6Ok1lZGlhS2V5U3lzdGVtUmVxdWVzdCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYUtleVN5
c3RlbVJlcXVlc3Q6On5NZWRpYUtleVN5c3RlbVJlcXVlc3QpOgorICAgICAgICAoV2ViQ29yZTo6
TWVkaWFLZXlTeXN0ZW1SZXF1ZXN0Ojp0b3BMZXZlbERvY3VtZW50T3JpZ2luIGNvbnN0KToKKyAg
ICAgICAgKFdlYkNvcmU6Ok1lZGlhS2V5U3lzdGVtUmVxdWVzdDo6c3RhcnQpOgorICAgICAgICAo
V2ViQ29yZTo6TWVkaWFLZXlTeXN0ZW1SZXF1ZXN0OjphbGxvdyk6CisgICAgICAgIChXZWJDb3Jl
OjpNZWRpYUtleVN5c3RlbVJlcXVlc3Q6OmRlbnkpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFL
ZXlTeXN0ZW1SZXF1ZXN0OjpzdG9wKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhS2V5U3lzdGVt
UmVxdWVzdDo6YWN0aXZlRE9NT2JqZWN0TmFtZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpN
ZWRpYUtleVN5c3RlbVJlcXVlc3Q6OmRvY3VtZW50IGNvbnN0KToKKyAgICAgICAgKiBNb2R1bGVz
L2VuY3J5cHRlZG1lZGlhL01lZGlhS2V5U3lzdGVtUmVxdWVzdC5oOiBBZGRlZC4KKyAgICAgICAg
KFdlYkNvcmU6Ok1lZGlhS2V5U3lzdGVtUmVxdWVzdDo6c2V0QWxsb3dDYWxsYmFjayk6CisgICAg
ICAgIChXZWJDb3JlOjpNZWRpYUtleVN5c3RlbVJlcXVlc3Q6OmlkZW50aWZpZXIgY29uc3QpOgor
ICAgICAgICAoV2ViQ29yZTo6TWVkaWFLZXlTeXN0ZW1SZXF1ZXN0OjprZXlTeXN0ZW0gY29uc3Qp
OgorICAgICAgICAqIE1vZHVsZXMvZW5jcnlwdGVkbWVkaWEvTmF2aWdhdG9yRU1FLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6Ok5hdmlnYXRvckVNRTo6cmVxdWVzdE1lZGlhS2V5U3lzdGVtQWNjZXNz
KToKKwogMjAyMS0wMi0wMSAgWGFiaWVyIFJvZHJpZ3VleiBDYWx2YXIgIDxjYWx2YXJpc0BpZ2Fs
aWEuY29tPgogCiAgICAgICAgIFtHU3RyZWFtZXJdW0VNRV1bVGh1bmRlcl0gQWRkIHZpZGVvL3gt
dnA5IGFzIHN1cHBvcnRlZCBmb3IgY2VuYyBhbmQgY2JjcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCAyY2FkNzhmMWU2
ZWY0ODk5ZDZmZTMwNDdlOTM5MzJkY2ViOTNiMWUyLi42NDk0NTRmZGYxY2Q2ZDkyOGI0YmRjY2Y0
MmMzYWVmZWIxZWIxZjg5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysg
Yi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDExOCBAQAorMjAyMS0wMS0zMSAg
UGhpbGlwcGUgTm9ybWFuZCAgPHBub3JtYW5kQGlnYWxpYS5jb20+CisKKyAgICAgICAgUGVybWlz
c2lvbiByZXF1ZXN0IEFQSSBmb3IgTWVkaWFLZXlTeXN0ZW0gYWNjZXNzIHN1cHBvcnQKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyMTE4NworCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBuZXcgSVBDIGFu
ZCBBUEkgZXhwb3NpbmcgTWVkaWFLZXlTeXN0ZW0gYWNjZXNzIHBlcm1pc3Npb25zIHRvIHRoZSBV
SVByb2Nlc3MuIEF0IGxlYXN0CisgICAgICAgIEdUSy9XUEUgd291bGQgbGlrZSB0byBoYXZlIEFQ
SSBmb3IgYXNraW5nIHBlcm1pc3Npb24gdG8gdGhlIHVzZXIgd2hlbiBFTUUncyBNZWRpYUtleUFj
Y2VzcworICAgICAgICBpcyBiZWluZyByZXF1ZXN0ZWQgYnkgYSBwYWdlLiBPbiBBcHBsZSBwbGF0
Zm9ybXMgdGhlIHBlcm1pc3Npb24gaXMgZ3JhbnRlZCBieSBkZWZhdWx0IHVudGlsCisgICAgICAg
IGEgZGVjaXNpb24gaXMgbWFkZSBhYm91dCBzdXBwb3J0aW5nIHRoaXMgaW4gdGhlaXIgQVBJVUlD
bGllbnQuCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBIZWFkZXJzLmNt
YWtlOgorICAgICAgICAqIFBsYXRmb3JtL0xvZ2dpbmcuaDoKKyAgICAgICAgKiBQbGF0Zm9ybUdU
Sy5jbWFrZToKKyAgICAgICAgKiBQbGF0Zm9ybVdQRS5jbWFrZToKKyAgICAgICAgKiBTaGFyZWQv
QVBJL0FQSU9iamVjdC5oOgorICAgICAgICAqIFNoYXJlZC9BUEkvYy9XS0Jhc2UuaDoKKyAgICAg
ICAgKiBTb3VyY2VzLnR4dDoKKyAgICAgICAgKiBTb3VyY2VzR1RLLnR4dDoKKyAgICAgICAgKiBT
b3VyY2VzV1BFLnR4dDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0FQSVVJQ2xpZW50Lmg6Cisg
ICAgICAgIChBUEk6OlVJQ2xpZW50OjpkZWNpZGVQb2xpY3lGb3JNZWRpYUtleVN5c3RlbVBlcm1p
c3Npb25SZXF1ZXN0KToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tBUElDYXN0Lmg6Cisg
ICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dLTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uQ2FsbGJh
Y2suY3BwOiBBZGRlZC4KKyAgICAgICAgKFdLTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uQ2FsbGJh
Y2tHZXRUeXBlSUQpOgorICAgICAgICAoV0tNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25DYWxsYmFj
a0NvbXBsZXRlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tNZWRpYUtleVN5c3RlbVBl
cm1pc3Npb25DYWxsYmFjay5oOiBBZGRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tQ
YWdlLmNwcDoKKyAgICAgICAgKFdLUGFnZVNldFBhZ2VVSUNsaWVudCk6CisgICAgICAgICogVUlQ
cm9jZXNzL0FQSS9DL1dLUGFnZVVJQ2xpZW50Lmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9n
bGliL1dlYktpdE1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3QuY3BwOiBBZGRlZC4KKyAg
ICAgICAgKHdlYmtpdE1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RBbGxvdyk6CisgICAg
ICAgICh3ZWJraXRNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0RGVueSk6CisgICAgICAg
ICh3ZWJraXRfcGVybWlzc2lvbl9yZXF1ZXN0X2ludGVyZmFjZV9pbml0KToKKyAgICAgICAgKHdl
YmtpdE1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3REaXNwb3NlKToKKyAgICAgICAgKHdl
YmtpdF9tZWRpYV9rZXlfc3lzdGVtX3Blcm1pc3Npb25fcmVxdWVzdF9jbGFzc19pbml0KToKKyAg
ICAgICAgKHdlYmtpdE1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RDcmVhdGUpOgorICAg
ICAgICAod2Via2l0X21lZGlhX2tleV9zeXN0ZW1fcGVybWlzc2lvbl9nZXRfbmFtZSk6CisgICAg
ICAgICogVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdE1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJl
cXVlc3RQcml2YXRlLmg6IEFkZGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJL
aXRVSUNsaWVudC5jcHA6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0QXV0b2Ns
ZWFudXBzLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0TWVkaWFLZXlTeXN0
ZW1QZXJtaXNzaW9uUmVxdWVzdC5oOiBBZGRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2d0
ay9kb2NzL3dlYmtpdDJndGstNC4wLXNlY3Rpb25zLnR4dDoKKyAgICAgICAgKiBVSVByb2Nlc3Mv
QVBJL2d0ay9kb2NzL3dlYmtpdDJndGstZG9jcy5zZ21sOgorICAgICAgICAqIFVJUHJvY2Vzcy9B
UEkvZ3RrL3dlYmtpdDIuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL3dwZS9XZWJLaXRNZWRp
YUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0Lmg6IEFkZGVkLgorICAgICAgICAqIFVJUHJvY2Vz
cy9BUEkvd3BlL2RvY3Mvd3BlLTEuMC1zZWN0aW9ucy50eHQ6CisgICAgICAgICogVUlQcm9jZXNz
L0FQSS93cGUvZG9jcy93cGUtZG9jcy5zZ21sOgorICAgICAgICAqIFVJUHJvY2Vzcy9NZWRpYUtl
eVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0Lmg6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpNZWRp
YUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0OjpjcmVhdGUpOgorICAgICAgICAoV2ViS2l0OjpN
ZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0Ojpjb21wbGV0ZSk6CisgICAgICAgIChXZWJL
aXQ6Ok1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3Q6OmtleVN5c3RlbSBjb25zdCk6Cisg
ICAgICAgIChXZWJLaXQ6Ok1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3Q6Ok1lZGlhS2V5
U3lzdGVtUGVybWlzc2lvblJlcXVlc3QpOgorICAgICAgICAoV2ViS2l0OjpNZWRpYUtleVN5c3Rl
bVBlcm1pc3Npb25DYWxsYmFjazo6Y3JlYXRlKToKKyAgICAgICAgKFdlYktpdDo6TWVkaWFLZXlT
eXN0ZW1QZXJtaXNzaW9uQ2FsbGJhY2s6OmNvbXBsZXRlKToKKyAgICAgICAgKFdlYktpdDo6TWVk
aWFLZXlTeXN0ZW1QZXJtaXNzaW9uQ2FsbGJhY2s6Ok1lZGlhS2V5U3lzdGVtUGVybWlzc2lvbkNh
bGxiYWNrKToKKyAgICAgICAgKiBVSVByb2Nlc3MvTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVx
dWVzdE1hbmFnZXJQcm94eS5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpNZWRpYUtleVN5
c3RlbVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5OjpNZWRpYUtleVN5c3RlbVBlcm1pc3Np
b25SZXF1ZXN0TWFuYWdlclByb3h5KToKKyAgICAgICAgKFdlYktpdDo6TWVkaWFLZXlTeXN0ZW1Q
ZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6fk1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJl
cXVlc3RNYW5hZ2VyUHJveHkpOgorICAgICAgICAoV2ViS2l0OjpNZWRpYUtleVN5c3RlbVBlcm1p
c3Npb25SZXF1ZXN0TWFuYWdlclByb3h5OjppbnZhbGlkYXRlUGVuZGluZ1JlcXVlc3RzKToKKyAg
ICAgICAgKFdlYktpdDo6TWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94
eTo6ZGVueVJlcXVlc3QpOgorICAgICAgICAoV2ViS2l0OjpNZWRpYUtleVN5c3RlbVBlcm1pc3Np
b25SZXF1ZXN0TWFuYWdlclByb3h5OjpncmFudFJlcXVlc3QpOgorICAgICAgICAoV2ViS2l0OjpN
ZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5OjpjcmVhdGVSZXF1ZXN0
Rm9yRnJhbWUpOgorICAgICAgICAoV2ViS2l0OjpNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1
ZXN0TWFuYWdlclByb3h5Ojpsb2dDaGFubmVsIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6TWVk
aWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6bG9nZ2VyIGNvbnN0KToK
KyAgICAgICAgKiBVSVByb2Nlc3MvTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdE1hbmFn
ZXJQcm94eS5oOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6TWVkaWFLZXlTeXN0ZW1QZXJtaXNz
aW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6cGFnZSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6Ok1l
ZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6OmRlbnlSZXF1ZXN0KToK
KyAgICAgICAgKiBVSVByb2Nlc3MvTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdFByb3h5
LmNwcDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6Ok1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJl
cXVlc3RQcm94eTo6TWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdFByb3h5KToKKyAgICAg
ICAgKFdlYktpdDo6TWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdFByb3h5OjphbGxvdyk6
CisgICAgICAgIChXZWJLaXQ6Ok1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RQcm94eTo6
ZGVueSk6CisgICAgICAgIChXZWJLaXQ6Ok1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RQ
cm94eTo6aW52YWxpZGF0ZSk6CisgICAgICAgIChXZWJLaXQ6Ok1lZGlhS2V5U3lzdGVtUGVybWlz
c2lvblJlcXVlc3RQcm94eTo6ZG9EZWZhdWx0QWN0aW9uKToKKyAgICAgICAgKiBVSVByb2Nlc3Mv
TWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdFByb3h5Lmg6IEFkZGVkLgorICAgICAgICAo
V2ViS2l0OjpNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0UHJveHk6OmNyZWF0ZSk6Cisg
ICAgICAgIChXZWJLaXQ6Ok1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RQcm94eTo6aXNQ
ZW5kaW5nIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6TWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9u
UmVxdWVzdFByb3h5OjptZWRpYUtleVN5c3RlbUlEIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6
TWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdFByb3h5OjptYWluRnJhbWVJRCBjb25zdCk6
CisgICAgICAgIChXZWJLaXQ6Ok1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RQcm94eTo6
ZnJhbWVJRCBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6Ok1lZGlhS2V5U3lzdGVtUGVybWlzc2lv
blJlcXVlc3RQcm94eTo6dG9wTGV2ZWxEb2N1bWVudFNlY3VyaXR5T3JpZ2luKToKKyAgICAgICAg
KFdlYktpdDo6TWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdFByb3h5Ojp0b3BMZXZlbERv
Y3VtZW50U2VjdXJpdHlPcmlnaW4gY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpNZWRpYUtleVN5
c3RlbVBlcm1pc3Npb25SZXF1ZXN0UHJveHk6OmtleVN5c3RlbSBjb25zdCk6CisgICAgICAgICog
VUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZS5oOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpX
ZWJQYWdlUHJveHk6OnJlcXVlc3RNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25Gb3JGcmFtZSk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6bWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVx
dWVzdE1hbmFnZXIpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OnJlcXVlc3RNZWRp
YUtleVN5c3RlbVBlcm1pc3Npb25CeURlZmF1bHRBY3Rpb24pOgorICAgICAgICAqIFVJUHJvY2Vz
cy9XZWJQYWdlUHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3Nh
Z2VzLmluOgorICAgICAgICAqIFdlYlByb2Nlc3MvRW5jcnlwdGVkTWVkaWEvTWVkaWFLZXlTeXN0
ZW1QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6
TWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXI6Ok1lZGlhS2V5U3lzdGVtUGVy
bWlzc2lvblJlcXVlc3RNYW5hZ2VyKToKKyAgICAgICAgKFdlYktpdDo6TWVkaWFLZXlTeXN0ZW1Q
ZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXI6OnN0YXJ0TWVkaWFLZXlTeXN0ZW1SZXF1ZXN0KToKKyAg
ICAgICAgKFdlYktpdDo6TWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXI6OnNl
bmRNZWRpYUtleVN5c3RlbVJlcXVlc3QpOgorICAgICAgICAoV2ViS2l0OjpNZWRpYUtleVN5c3Rl
bVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcjo6Y2FuY2VsTWVkaWFLZXlTeXN0ZW1SZXF1ZXN0KToK
KyAgICAgICAgKFdlYktpdDo6TWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXI6
Om1lZGlhS2V5U3lzdGVtV2FzR3JhbnRlZCk6CisgICAgICAgIChXZWJLaXQ6Ok1lZGlhS2V5U3lz
dGVtUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyOjptZWRpYUtleVN5c3RlbVdhc0RlbmllZCk6Cisg
ICAgICAgICogV2ViUHJvY2Vzcy9FbmNyeXB0ZWRNZWRpYS9NZWRpYUtleVN5c3RlbVBlcm1pc3Np
b25SZXF1ZXN0TWFuYWdlci5oOiBBZGRlZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0L1dlYk1lZGlhS2V5U3lzdGVtQ2xpZW50LmNwcDogQWRkZWQuCisgICAgICAgIChXZWJL
aXQ6OldlYk1lZGlhS2V5U3lzdGVtQ2xpZW50OjpXZWJNZWRpYUtleVN5c3RlbUNsaWVudCk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYk1lZGlhS2V5U3lzdGVtQ2xpZW50OjpwYWdlRGVzdHJveWVkKToK
KyAgICAgICAgKFdlYktpdDo6V2ViTWVkaWFLZXlTeXN0ZW1DbGllbnQ6OnJlcXVlc3RNZWRpYUtl
eVN5c3RlbSk6CisgICAgICAgIChXZWJLaXQ6OldlYk1lZGlhS2V5U3lzdGVtQ2xpZW50OjpjYW5j
ZWxNZWRpYUtleVN5c3RlbVJlcXVlc3QpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvV2ViTWVkaWFLZXlTeXN0ZW1DbGllbnQuaDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6
OldlYk1lZGlhS2V5U3lzdGVtQ2xpZW50Ojp+V2ViTWVkaWFLZXlTeXN0ZW1DbGllbnQpOgorICAg
ICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6
bV9saW1pdHNOYXZpZ2F0aW9uc1RvQXBwQm91bmREb21haW5zKToKKyAgICAgICAgKFdlYktpdDo6
V2ViUGFnZTo6bWVkaWFLZXlTeXN0ZW1XYXNHcmFudGVkKToKKyAgICAgICAgKFdlYktpdDo6V2Vi
UGFnZTo6bWVkaWFLZXlTeXN0ZW1XYXNEZW5pZWQpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2Vi
UGFnZS9XZWJQYWdlLmg6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6Om1lZGlhS2V5U3lzdGVt
UGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2Uv
V2ViUGFnZS5tZXNzYWdlcy5pbjoKKwogMjAyMS0wMi0wMSAgQ2FybG9zIEdhcmNpYSBDYW1wb3Mg
IDxjZ2FyY2lhQGlnYWxpYS5jb20+CiAKICAgICAgICAgW1NPVVBdIEFkZCBzdXBwb3J0IGZvciBk
YXRhIFVSTHMgaW4gdGhlIG5ldHdvcmsgcHJvY2VzcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAppbmRleCBi
YWE0NTNkNmNmMWMyMmU2NTkzMTE1NDRiMDI2Yjc4YWQ0YjU4ZDY0Li5iMmYxNjc5MDEyYzAzYjgw
ZGZjNTRkMjQ3OGZmMGJlMmU4MjRlMGI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DTWFr
ZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dApAQCAtMTQ5Nyw2
ICsxNDk3LDggQEAgaWYgKEVOQUJMRV9FTkNSWVBURURfTUVESUEpCiAgICAgICAgIE1vZHVsZXMv
ZW5jcnlwdGVkbWVkaWEvTWVkaWFLZXlTZXNzaW9uLmNwcAogICAgICAgICBNb2R1bGVzL2VuY3J5
cHRlZG1lZGlhL01lZGlhS2V5U3RhdHVzTWFwLmNwcAogICAgICAgICBNb2R1bGVzL2VuY3J5cHRl
ZG1lZGlhL01lZGlhS2V5U3lzdGVtQWNjZXNzLmNwcAorICAgICAgICBNb2R1bGVzL2VuY3J5cHRl
ZG1lZGlhL01lZGlhS2V5U3lzdGVtQ29udHJvbGxlci5jcHAKKyAgICAgICAgTW9kdWxlcy9lbmNy
eXB0ZWRtZWRpYS9NZWRpYUtleVN5c3RlbVJlcXVlc3QuY3BwCiAgICAgICAgIE1vZHVsZXMvZW5j
cnlwdGVkbWVkaWEvTWVkaWFLZXlzLmNwcAogICAgICAgICBNb2R1bGVzL2VuY3J5cHRlZG1lZGlh
L05hdmlnYXRvckVNRS5jcHAKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvSGVhZGVycy5j
bWFrZSBiL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKaW5kZXggYWJhMTVlMGVkN2EwMTQ2
NDU4MmYzZjkyODBlNjc4YjNkYjI4ZjYzMi4uOGMxYjZjMzI3ODJhOTFkOWM0MTRjNjEwYjQ5ZTY3
OWVlYjYwYmI2OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCkBAIC0yNCw2ICsyNCw5IEBAIHNldChXZWJD
b3JlX1BSSVZBVEVfRlJBTUVXT1JLX0hFQURFUlMKICAgICBNb2R1bGVzL2NvbnRhY3QtcGlja2Vy
L0NvbnRhY3RzUmVxdWVzdERhdGEuaAogCiAgICAgTW9kdWxlcy9lbmNyeXB0ZWRtZWRpYS9DRE1D
bGllbnQuaAorICAgIE1vZHVsZXMvZW5jcnlwdGVkbWVkaWEvTWVkaWFLZXlTeXN0ZW1DbGllbnQu
aAorICAgIE1vZHVsZXMvZW5jcnlwdGVkbWVkaWEvTWVkaWFLZXlTeXN0ZW1Db250cm9sbGVyLmgK
KyAgICBNb2R1bGVzL2VuY3J5cHRlZG1lZGlhL01lZGlhS2V5U3lzdGVtUmVxdWVzdC5oCiAKICAg
ICBNb2R1bGVzL2ZldGNoL0ZldGNoQm9keUNvbnN1bWVyLmgKICAgICBNb2R1bGVzL2ZldGNoL0Zl
dGNoQm9keVNvdXJjZS5oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2VuY3J5
cHRlZG1lZGlhL01lZGlhS2V5U3lzdGVtQ2xpZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2VuY3J5cHRlZG1lZGlhL01lZGlhS2V5U3lzdGVtQ2xpZW50LmgKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNTNkMzBi
MWQwZjg5ZTAwNTBhYWQwNDIyN2ExMGU4NDQwMjk4Mjk3YgotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvZW5jcnlwdGVkbWVkaWEvTWVkaWFLZXlTeXN0ZW1DbGllbnQu
aApAQCAtMCwwICsxLDUyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIElnYWxpYSBTLkwu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiAgUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhF
IElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorICog
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05T
RVFVRU5USUFMIERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1MgT0YgVVNF
LCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTgorICogQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTCisg
KiBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShFTkNSWVBURURfTUVESUEp
CisKKyNpbmNsdWRlIDx3dGYvQ29tcGxldGlvbkhhbmRsZXIuaD4KKworbmFtZXNwYWNlIFdlYkNv
cmUgeworCitjbGFzcyBEb2N1bWVudDsKK2NsYXNzIFBhZ2U7CitjbGFzcyBNZWRpYUtleVN5c3Rl
bVJlcXVlc3Q7CisKK2NsYXNzIE1lZGlhS2V5U3lzdGVtQ2xpZW50IHsKK3B1YmxpYzoKKyAgICB2
aXJ0dWFsIHZvaWQgcGFnZURlc3Ryb3llZCgpID0gMDsKKworICAgIHZpcnR1YWwgdm9pZCByZXF1
ZXN0TWVkaWFLZXlTeXN0ZW0oTWVkaWFLZXlTeXN0ZW1SZXF1ZXN0JikgPSAwOworICAgIHZpcnR1
YWwgdm9pZCBjYW5jZWxNZWRpYUtleVN5c3RlbVJlcXVlc3QoTWVkaWFLZXlTeXN0ZW1SZXF1ZXN0
JikgPSAwOworCitwcm90ZWN0ZWQ6CisgICAgdmlydHVhbCB+TWVkaWFLZXlTeXN0ZW1DbGllbnQo
KSA9IGRlZmF1bHQ7Cit9OworCitXRUJDT1JFX0VYUE9SVCB2b2lkIHByb3ZpZGVNZWRpYUtleVN5
c3RlbVRvKFBhZ2UqLCBNZWRpYUtleVN5c3RlbUNsaWVudCopOworCit9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoRU5DUllQVEVEX01FRElBKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9lbmNyeXB0ZWRtZWRpYS9NZWRpYUtleVN5c3RlbUNvbnRy
b2xsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9lbmNyeXB0ZWRtZWRpYS9NZWRpYUtl
eVN5c3RlbUNvbnRyb2xsZXIuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjEyMmJhODI1YzJjNzM3NjBjOWFkODNi
MDIzZGZmMGZhMDI3ZDRlNDkKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2VuY3J5cHRlZG1lZGlhL01lZGlhS2V5U3lzdGVtQ29udHJvbGxlci5jcHAKQEAgLTAsMCAr
MSw2NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBJZ2FsaWEgUy5MLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisg
KiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKKyAqIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBE
QU1BR0VTCisgKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7CisgKiBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04K
KyAqIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUworICogU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIk1lZGlhS2V5U3lzdGVtQ29udHJvbGxl
ci5oIgorCisjaWYgRU5BQkxFKEVOQ1JZUFRFRF9NRURJQSkKKworI2luY2x1ZGUgIkRPTVdpbmRv
dy5oIgorI2luY2x1ZGUgIkRvY3VtZW50LmgiCisjaW5jbHVkZSAiRnJhbWUuaCIKKyNpbmNsdWRl
ICJIVE1MSUZyYW1lRWxlbWVudC5oIgorI2luY2x1ZGUgIk1lZGlhS2V5U3lzdGVtUmVxdWVzdC5o
IgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NvbnN0IGNoYXIqIE1lZGlhS2V5U3lzdGVtQ29u
dHJvbGxlcjo6c3VwcGxlbWVudE5hbWUoKQoreworICAgIHJldHVybiAiTWVkaWFLZXlTeXN0ZW1D
b250cm9sbGVyIjsKK30KKworTWVkaWFLZXlTeXN0ZW1Db250cm9sbGVyOjpNZWRpYUtleVN5c3Rl
bUNvbnRyb2xsZXIoTWVkaWFLZXlTeXN0ZW1DbGllbnQqIGNsaWVudCkKKyAgICA6IG1fY2xpZW50
KGNsaWVudCkKK3sKK30KKworTWVkaWFLZXlTeXN0ZW1Db250cm9sbGVyOjp+TWVkaWFLZXlTeXN0
ZW1Db250cm9sbGVyKCkKK3sKKyAgICBtX2NsaWVudC0+cGFnZURlc3Ryb3llZCgpOworfQorCit2
b2lkIHByb3ZpZGVNZWRpYUtleVN5c3RlbVRvKFBhZ2UqIHBhZ2UsIE1lZGlhS2V5U3lzdGVtQ2xp
ZW50KiBjbGllbnQpCit7CisgICAgTWVkaWFLZXlTeXN0ZW1Db250cm9sbGVyOjpwcm92aWRlVG8o
cGFnZSwgTWVkaWFLZXlTeXN0ZW1Db250cm9sbGVyOjpzdXBwbGVtZW50TmFtZSgpLCBtYWtlVW5p
cXVlPE1lZGlhS2V5U3lzdGVtQ29udHJvbGxlcj4oY2xpZW50KSk7Cit9CisKK3ZvaWQgTWVkaWFL
ZXlTeXN0ZW1Db250cm9sbGVyOjpsb2dSZXF1ZXN0TWVkaWFLZXlTeXN0ZW1EZW5pYWwoRG9jdW1l
bnQmIGRvY3VtZW50KQoreworICAgIGlmIChhdXRvKiB3aW5kb3cgPSBkb2N1bWVudC5kb21XaW5k
b3coKSkKKyAgICAgICAgd2luZG93LT5wcmludEVycm9yTWVzc2FnZShtYWtlU3RyaW5nKCJOb3Qg
YWxsb3dlZCB0byBhY2Nlc3MgTWVkaWFLZXlTeXN0ZW0uIikpOworfQorCit9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoTUVESUFfU1RSRUFNKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9lbmNyeXB0ZWRtZWRpYS9NZWRpYUtleVN5c3RlbUNvbnRy
b2xsZXIuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZW5jcnlwdGVkbWVkaWEvTWVkaWFLZXlT
eXN0ZW1Db250cm9sbGVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTlhMjhhMmJiOTBlYjQ0MGM2Nzc4MDFlZjc5
YWNkOGZmYjFhYTgwMwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
ZW5jcnlwdGVkbWVkaWEvTWVkaWFLZXlTeXN0ZW1Db250cm9sbGVyLmgKQEAgLTAsMCArMSw3MCBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBJZ2FsaWEgUy5MLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09O
VFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBV
UlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
IElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKKyAqIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VT
CisgKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7CisgKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04KKyAqIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUworICogU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3By
YWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoRU5DUllQVEVEX01FRElBKQorCisjaW5jbHVkZSAiRmVh
dHVyZVBvbGljeS5oIgorI2luY2x1ZGUgIk1lZGlhS2V5U3lzdGVtQ2xpZW50LmgiCisjaW5jbHVk
ZSAiUGFnZS5oIgorI2luY2x1ZGUgPHd0Zi9Db21wbGV0aW9uSGFuZGxlci5oPgorCituYW1lc3Bh
Y2UgV2ViQ29yZSB7CisKK2NsYXNzIE1lZGlhS2V5U3lzdGVtUmVxdWVzdDsKKworY2xhc3MgTWVk
aWFLZXlTeXN0ZW1Db250cm9sbGVyIDogcHVibGljIFN1cHBsZW1lbnQ8UGFnZT4geworICAgIFdU
Rl9NQUtFX0ZBU1RfQUxMT0NBVEVEOworcHVibGljOgorICAgIGV4cGxpY2l0IE1lZGlhS2V5U3lz
dGVtQ29udHJvbGxlcihNZWRpYUtleVN5c3RlbUNsaWVudCopOworICAgIH5NZWRpYUtleVN5c3Rl
bUNvbnRyb2xsZXIoKTsKKworICAgIE1lZGlhS2V5U3lzdGVtQ2xpZW50KiBjbGllbnQoKSBjb25z
dCB7IHJldHVybiBtX2NsaWVudDsgfQorCisgICAgdm9pZCByZXF1ZXN0TWVkaWFLZXlTeXN0ZW0o
TWVkaWFLZXlTeXN0ZW1SZXF1ZXN0Jik7CisgICAgdm9pZCBjYW5jZWxNZWRpYUtleVN5c3RlbVJl
cXVlc3QoTWVkaWFLZXlTeXN0ZW1SZXF1ZXN0Jik7CisKKyAgICB2b2lkIGxvZ1JlcXVlc3RNZWRp
YUtleVN5c3RlbURlbmlhbChEb2N1bWVudCYpOworCisgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGlj
IGNvbnN0IGNoYXIqIHN1cHBsZW1lbnROYW1lKCk7CisgICAgc3RhdGljIE1lZGlhS2V5U3lzdGVt
Q29udHJvbGxlciogZnJvbShQYWdlKiBwYWdlKSB7IHJldHVybiBzdGF0aWNfY2FzdDxNZWRpYUtl
eVN5c3RlbUNvbnRyb2xsZXIqPihTdXBwbGVtZW50PFBhZ2U+Ojpmcm9tKHBhZ2UsIHN1cHBsZW1l
bnROYW1lKCkpKTsgfQorCitwcml2YXRlOgorICAgIE1lZGlhS2V5U3lzdGVtQ2xpZW50KiBtX2Ns
aWVudDsKK307CisKK2lubGluZSB2b2lkIE1lZGlhS2V5U3lzdGVtQ29udHJvbGxlcjo6cmVxdWVz
dE1lZGlhS2V5U3lzdGVtKE1lZGlhS2V5U3lzdGVtUmVxdWVzdCYgcmVxdWVzdCkKK3sKKyAgICBt
X2NsaWVudC0+cmVxdWVzdE1lZGlhS2V5U3lzdGVtKHJlcXVlc3QpOworfQorCitpbmxpbmUgdm9p
ZCBNZWRpYUtleVN5c3RlbUNvbnRyb2xsZXI6OmNhbmNlbE1lZGlhS2V5U3lzdGVtUmVxdWVzdChN
ZWRpYUtleVN5c3RlbVJlcXVlc3QmIHJlcXVlc3QpCit7CisgICAgbV9jbGllbnQtPmNhbmNlbE1l
ZGlhS2V5U3lzdGVtUmVxdWVzdChyZXF1ZXN0KTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQorCisjZW5kaWYgLy8gRU5BQkxFKEVOQ1JZUFRFRF9NRURJQSkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvZW5jcnlwdGVkbWVkaWEvTWVkaWFLZXlTeXN0ZW1SZXF1ZXN0LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZW5jcnlwdGVkbWVkaWEvTWVkaWFLZXlTeXN0ZW1S
ZXF1ZXN0LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43ZWY1M2FhNmFiNTUyZWRlNTRhNDZhMjJiNmRjMmMwZWFh
MzM5M2FjCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9lbmNyeXB0
ZWRtZWRpYS9NZWRpYUtleVN5c3RlbVJlcXVlc3QuY3BwCkBAIC0wLDAgKzEsMTI3IEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDIxIElnYWxpYSBTLkwuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAg
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRP
UlMgYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBB
UkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENP
TlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyAqIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTgorICogQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTCisgKiBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAi
Y29uZmlnLmgiCisjaW5jbHVkZSAiTWVkaWFLZXlTeXN0ZW1SZXF1ZXN0LmgiCisKKyNpZiBFTkFC
TEUoTUVESUFfU1RSRUFNKQorCisjaW5jbHVkZSAiRG9jdW1lbnQuaCIKKyNpbmNsdWRlICJGcmFt
ZS5oIgorI2luY2x1ZGUgIkpTRE9NUHJvbWlzZURlZmVycmVkLmgiCisjaW5jbHVkZSAiSlNNZWRp
YUtleVN5c3RlbUFjY2Vzcy5oIgorI2luY2x1ZGUgIkxvZ2dpbmcuaCIKKyNpbmNsdWRlICJNZWRp
YUtleVN5c3RlbUNvbnRyb2xsZXIuaCIKKyNpbmNsdWRlICJQbGF0Zm9ybU1lZGlhU2Vzc2lvbk1h
bmFnZXIuaCIKKyNpbmNsdWRlICJTZXR0aW5ncy5oIgorI2luY2x1ZGUgIldpbmRvd0V2ZW50TG9v
cC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1JlZjxNZWRpYUtleVN5c3RlbVJlcXVlc3Q+
IE1lZGlhS2V5U3lzdGVtUmVxdWVzdDo6Y3JlYXRlKERvY3VtZW50JiBkb2N1bWVudCwgY29uc3Qg
U3RyaW5nJiBrZXlTeXN0ZW0sIFJlZjxEZWZlcnJlZFByb21pc2U+JiYgcHJvbWlzZSkKK3sKKyAg
ICBhdXRvIHJlc3VsdCA9IGFkb3B0UmVmKCpuZXcgTWVkaWFLZXlTeXN0ZW1SZXF1ZXN0KGRvY3Vt
ZW50LCBrZXlTeXN0ZW0sIFdURk1vdmUocHJvbWlzZSkpKTsKKyAgICByZXN1bHQtPnN1c3BlbmRJ
Zk5lZWRlZCgpOworICAgIHJldHVybiByZXN1bHQ7Cit9CisKK01lZGlhS2V5U3lzdGVtUmVxdWVz
dDo6TWVkaWFLZXlTeXN0ZW1SZXF1ZXN0KERvY3VtZW50JiBkb2N1bWVudCwgY29uc3QgU3RyaW5n
JiBrZXlTeXN0ZW0sIFJlZjxEZWZlcnJlZFByb21pc2U+JiYgcHJvbWlzZSkKKyAgICA6IEFjdGl2
ZURPTU9iamVjdChkb2N1bWVudCkKKyAgICAsIG1fa2V5U3lzdGVtKGtleVN5c3RlbSkKKyAgICAs
IG1fcHJvbWlzZShXVEZNb3ZlKHByb21pc2UpKQoreworfQorCitNZWRpYUtleVN5c3RlbVJlcXVl
c3Q6On5NZWRpYUtleVN5c3RlbVJlcXVlc3QoKQoreworICAgIGlmIChtX2FsbG93Q29tcGxldGlv
bkhhbmRsZXIpCisgICAgICAgIG1fYWxsb3dDb21wbGV0aW9uSGFuZGxlcihXVEZNb3ZlKG1fcHJv
bWlzZSkpOworfQorCitTZWN1cml0eU9yaWdpbiogTWVkaWFLZXlTeXN0ZW1SZXF1ZXN0Ojp0b3BM
ZXZlbERvY3VtZW50T3JpZ2luKCkgY29uc3QKK3sKKyAgICBpZiAoIW1fc2NyaXB0RXhlY3V0aW9u
Q29udGV4dCkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgcmV0dXJuICZtX3NjcmlwdEV4
ZWN1dGlvbkNvbnRleHQtPnRvcE9yaWdpbigpOworfQorCit2b2lkIE1lZGlhS2V5U3lzdGVtUmVx
dWVzdDo6c3RhcnQoKQoreworICAgIEFTU0VSVChtX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQpOwor
ICAgIGlmICghbV9zY3JpcHRFeGVjdXRpb25Db250ZXh0KSB7CisgICAgICAgIGRlbnkoKTsKKyAg
ICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGF1dG8mIGRvY3VtZW50ID0gZG93bmNhc3Q8RG9j
dW1lbnQ+KCptX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQpOworICAgIGF1dG8qIGNvbnRyb2xsZXIg
PSBNZWRpYUtleVN5c3RlbUNvbnRyb2xsZXI6OmZyb20oZG9jdW1lbnQucGFnZSgpKTsKKyAgICBp
ZiAoIWNvbnRyb2xsZXIpIHsKKyAgICAgICAgZGVueSgpOworICAgICAgICByZXR1cm47CisgICAg
fQorCisgICAgY29udHJvbGxlci0+cmVxdWVzdE1lZGlhS2V5U3lzdGVtKCp0aGlzKTsKK30KKwor
dm9pZCBNZWRpYUtleVN5c3RlbVJlcXVlc3Q6OmFsbG93KENvbXBsZXRpb25IYW5kbGVyPHZvaWQo
KT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3sKKyAgICBxdWV1ZVRhc2tLZWVwaW5nT2JqZWN0QWxp
dmUoKnRoaXMsIFRhc2tTb3VyY2U6OlVzZXJJbnRlcmFjdGlvbiwgW3RoaXMsIGhhbmRsZXIgPSBX
VEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0oKSBtdXRhYmxlIHsKKyAgICAgICAgYXV0byBjb21w
bGV0aW9uSGFuZGxlciA9IFdURk1vdmUobV9hbGxvd0NvbXBsZXRpb25IYW5kbGVyKTsKKyAgICAg
ICAgY29tcGxldGlvbkhhbmRsZXIoV1RGTW92ZShtX3Byb21pc2UpKTsKKyAgICAgICAgaGFuZGxl
cigpOworICAgIH0pOworfQorCit2b2lkIE1lZGlhS2V5U3lzdGVtUmVxdWVzdDo6ZGVueShjb25z
dCBTdHJpbmcmIG1lc3NhZ2UpCit7CisgICAgaWYgKCFtX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQp
CisgICAgICAgIHJldHVybjsKKworICAgIEV4Y2VwdGlvbkNvZGUgY29kZSA9IE5vdFN1cHBvcnRl
ZEVycm9yOworICAgIGlmICghbWVzc2FnZS5pc0VtcHR5KCkpCisgICAgICAgIG1fcHJvbWlzZS0+
cmVqZWN0KGNvZGUsIG1lc3NhZ2UpOworICAgIGVsc2UKKyAgICAgICAgbV9wcm9taXNlLT5yZWpl
Y3QoY29kZSk7Cit9CisKK3ZvaWQgTWVkaWFLZXlTeXN0ZW1SZXF1ZXN0OjpzdG9wKCkKK3sKKyAg
ICBhdXRvJiBkb2N1bWVudCA9IGRvd25jYXN0PERvY3VtZW50PigqbV9zY3JpcHRFeGVjdXRpb25D
b250ZXh0KTsKKyAgICBpZiAoYXV0byogY29udHJvbGxlciA9IE1lZGlhS2V5U3lzdGVtQ29udHJv
bGxlcjo6ZnJvbShkb2N1bWVudC5wYWdlKCkpKQorICAgICAgICBjb250cm9sbGVyLT5jYW5jZWxN
ZWRpYUtleVN5c3RlbVJlcXVlc3QoKnRoaXMpOworfQorCitjb25zdCBjaGFyKiBNZWRpYUtleVN5
c3RlbVJlcXVlc3Q6OmFjdGl2ZURPTU9iamVjdE5hbWUoKSBjb25zdAoreworICAgIHJldHVybiAi
TWVkaWFLZXlTeXN0ZW1SZXF1ZXN0IjsKK30KKworRG9jdW1lbnQqIE1lZGlhS2V5U3lzdGVtUmVx
dWVzdDo6ZG9jdW1lbnQoKSBjb25zdAoreworICAgIHJldHVybiBkb3duY2FzdDxEb2N1bWVudD4o
bV9zY3JpcHRFeGVjdXRpb25Db250ZXh0KTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQor
CisjZW5kaWYgLy8gRU5BQkxFKEVOQ1JZUFRFRF9NRURJQSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvZW5jcnlwdGVkbWVkaWEvTWVkaWFLZXlTeXN0ZW1SZXF1ZXN0LmggYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2VuY3J5cHRlZG1lZGlhL01lZGlhS2V5U3lzdGVtUmVxdWVz
dC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjlmY2JlNGYxYmFiZGJjZGI3MmFkNTQ1NjY3M2ZhYmViNDYwZTJhYjcK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2VuY3J5cHRlZG1lZGlh
L01lZGlhS2V5U3lzdGVtUmVxdWVzdC5oCkBAIC0wLDAgKzEsODAgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMjEgSWdhbGlhIFMuTC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElT
JycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICogRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JT
IEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICogKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OCisgKiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICog
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFIE9GIFRISVMKKyAqIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYg
RU5BQkxFKEVOQ1JZUFRFRF9NRURJQSkKKworI2luY2x1ZGUgIkFjdGl2ZURPTU9iamVjdC5oIgor
I2luY2x1ZGUgIklETFR5cGVzLmgiCisjaW5jbHVkZSAiSlNET01Qcm9taXNlRGVmZXJyZWQuaCIK
KyNpbmNsdWRlIDx3dGYvQ29tcGxldGlvbkhhbmRsZXIuaD4KKyNpbmNsdWRlIDx3dGYvRm9yd2Fy
ZC5oPgorI2luY2x1ZGUgPHd0Zi9PYmplY3RJZGVudGlmaWVyLmg+CisjaW5jbHVkZSA8d3RmL1Vu
aXF1ZVJlZi5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFNlY3VyaXR5T3JpZ2lu
OworY2xhc3MgTWVkaWFLZXlTeXN0ZW07CisKK3RlbXBsYXRlIDx0eXBlbmFtZSBJRExUeXBlPiBj
bGFzcyBET01Qcm9taXNlRGVmZXJyZWQ7CisKK2VudW0gTWVkaWFLZXlTeXN0ZW1SZXF1ZXN0SWRl
bnRpZmllclR5cGUgeyB9OwordXNpbmcgTWVkaWFLZXlTeXN0ZW1SZXF1ZXN0SWRlbnRpZmllciA9
IE9iamVjdElkZW50aWZpZXI8TWVkaWFLZXlTeXN0ZW1SZXF1ZXN0SWRlbnRpZmllclR5cGU+Owor
CitjbGFzcyBNZWRpYUtleVN5c3RlbVJlcXVlc3QgOiBwdWJsaWMgUmVmQ291bnRlZDxNZWRpYUtl
eVN5c3RlbVJlcXVlc3Q+LCBwdWJsaWMgQWN0aXZlRE9NT2JqZWN0IHsKK3B1YmxpYzoKKyAgICBz
dGF0aWMgUmVmPE1lZGlhS2V5U3lzdGVtUmVxdWVzdD4gY3JlYXRlKERvY3VtZW50JiwgY29uc3Qg
U3RyaW5nJiBrZXlTeXN0ZW0sIFJlZjxEZWZlcnJlZFByb21pc2U+JiYpOworICAgIHZpcnR1YWwg
fk1lZGlhS2V5U3lzdGVtUmVxdWVzdCgpOworCisgICAgdm9pZCBzZXRBbGxvd0NhbGxiYWNrKENv
bXBsZXRpb25IYW5kbGVyPHZvaWQoUmVmPERlZmVycmVkUHJvbWlzZT4mJik+JiYgY2FsbGJhY2sp
IHsgbV9hbGxvd0NvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjYWxsYmFjayk7IH0KKyAgICBN
ZWRpYUtleVN5c3RlbVJlcXVlc3RJZGVudGlmaWVyIGlkZW50aWZpZXIoKSBjb25zdCB7IHJldHVy
biBtX2lkZW50aWZpZXI7IH0KKyAgICB2b2lkIHN0YXJ0KCk7CisKKyAgICBXRUJDT1JFX0VYUE9S
VCB2b2lkIGFsbG93KENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CisgICAgV0VCQ09SRV9F
WFBPUlQgdm9pZCBkZW55KGNvbnN0IFN0cmluZyYgZXJyb3JNZXNzYWdlID0gZW1wdHlTdHJpbmco
KSk7CisKKyAgICBXRUJDT1JFX0VYUE9SVCBTZWN1cml0eU9yaWdpbiogdG9wTGV2ZWxEb2N1bWVu
dE9yaWdpbigpIGNvbnN0OworICAgIFdFQkNPUkVfRVhQT1JUIERvY3VtZW50KiBkb2N1bWVudCgp
IGNvbnN0OworCisgICAgY29uc3QgU3RyaW5nIGtleVN5c3RlbSgpIGNvbnN0IHsgcmV0dXJuIG1f
a2V5U3lzdGVtOyB9CisKK3ByaXZhdGU6CisgICAgTWVkaWFLZXlTeXN0ZW1SZXF1ZXN0KERvY3Vt
ZW50JiwgY29uc3QgU3RyaW5nJiBrZXlTeXN0ZW0sIFJlZjxEZWZlcnJlZFByb21pc2U+JiYpOwor
CisgICAgdm9pZCBzdG9wKCkgZmluYWw7CisgICAgY29uc3QgY2hhciogYWN0aXZlRE9NT2JqZWN0
TmFtZSgpIGNvbnN0IGZpbmFsOworCisgICAgTWVkaWFLZXlTeXN0ZW1SZXF1ZXN0SWRlbnRpZmll
ciBtX2lkZW50aWZpZXI7CisKKyAgICBTdHJpbmcgbV9rZXlTeXN0ZW07CisgICAgUmVmPERlZmVy
cmVkUHJvbWlzZT4gbV9wcm9taXNlOworCisgICAgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChSZWY8
RGVmZXJyZWRQcm9taXNlPiYmKT4gbV9hbGxvd0NvbXBsZXRpb25IYW5kbGVyOworfTsKKworfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKEVOQ1JZUFRFRF9NRURJQSkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZW5jcnlwdGVkbWVkaWEvTmF2aWdh
dG9yRU1FLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZW5jcnlwdGVkbWVkaWEvTmF2aWdh
dG9yRU1FLmNwcAppbmRleCA2OTQ1NjRhZjNlNTkzYTY5NjE3NThmYWZkNzJhN2Q1MDQ3YTZhYzM2
Li5mYzYxMzc0ZTIxNjQxYzE2NzQxZDdlNTFkZDBlM2U3YTJkNTJiNjYyIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2VuY3J5cHRlZG1lZGlhL05hdmlnYXRvckVNRS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9lbmNyeXB0ZWRtZWRpYS9OYXZpZ2F0b3JFTUUuY3Bw
CkBAIC0zNyw2ICszNyw3IEBACiAjaW5jbHVkZSAiSlNET01Qcm9taXNlRGVmZXJyZWQuaCIKICNp
bmNsdWRlICJKU01lZGlhS2V5U3lzdGVtQWNjZXNzLmgiCiAjaW5jbHVkZSAiTG9nZ2luZy5oIgor
I2luY2x1ZGUgIk1lZGlhS2V5U3lzdGVtUmVxdWVzdC5oIgogI2luY2x1ZGUgPHd0Zi90ZXh0L1N0
cmluZ0J1aWxkZXIuaD4KIAogbmFtZXNwYWNlIFdURiB7CkBAIC05OSwyMyArMTAwLDI3IEBAIHZv
aWQgTmF2aWdhdG9yRU1FOjpyZXF1ZXN0TWVkaWFLZXlTeXN0ZW1BY2Nlc3MoTmF2aWdhdG9yJiBu
YXZpZ2F0b3IsIERvY3VtZW50JiBkCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBkb2N1
bWVudC5wb3N0VGFzayhba2V5U3lzdGVtLCBzdXBwb3J0ZWRDb25maWd1cmF0aW9ucyA9IFdURk1v
dmUoc3VwcG9ydGVkQ29uZmlndXJhdGlvbnMpLCBwcm9taXNlID0gV1RGTW92ZShwcm9taXNlKSwg
JmRvY3VtZW50LCBsb2dnZXIgPSBXVEZNb3ZlKGxvZ2dlciksIGlkZW50aWZpZXIgPSBXVEZNb3Zl
KGlkZW50aWZpZXIpXSAoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYpIG11dGFibGUgewotICAgICAg
ICAvLyAzLiBMZXQgZG9jdW1lbnQgYmUgdGhlIGNhbGxpbmcgY29udGV4dCdzIERvY3VtZW50Lgot
ICAgICAgICAvLyA0LiBMZXQgb3JpZ2luIGJlIHRoZSBvcmlnaW4gb2YgZG9jdW1lbnQuCi0gICAg
ICAgIC8vIDUuIExldCBwcm9taXNlIGJlIGEgbmV3IHByb21pc2UuCi0gICAgICAgIC8vIDYuIFJ1
biB0aGUgZm9sbG93aW5nIHN0ZXBzIGluIHBhcmFsbGVsOgotICAgICAgICAvLyA2LjEuIElmIGtl
eVN5c3RlbSBpcyBub3Qgb25lIG9mIHRoZSBLZXkgU3lzdGVtcyBzdXBwb3J0ZWQgYnkgdGhlIHVz
ZXIgYWdlbnQsIHJlamVjdCBwcm9taXNlIHdpdGggYSBOb3RTdXBwb3J0ZWRFcnJvci4KLSAgICAg
ICAgLy8gICAgICBTdHJpbmcgY29tcGFyaXNvbiBpcyBjYXNlLXNlbnNpdGl2ZS4KLSAgICAgICAg
aWYgKCFDRE06OnN1cHBvcnRzS2V5U3lzdGVtKGtleVN5c3RlbSkpIHsKLSAgICAgICAgICAgIGlu
Zm9Mb2cobG9nZ2VyLCBpZGVudGlmaWVyLCAiUmVqZWN0ZWQ6IGtleVN5c3RlbSgiLCBrZXlTeXN0
ZW0sICIpIG5vdCBzdXBwb3J0ZWQiKTsKLSAgICAgICAgICAgIHByb21pc2UtPnJlamVjdChOb3RT
dXBwb3J0ZWRFcnJvcik7Ci0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIH0KLQotICAgICAg
ICAvLyA2LjIuIExldCBpbXBsZW1lbnRhdGlvbiBiZSB0aGUgaW1wbGVtZW50YXRpb24gb2Yga2V5
U3lzdGVtLgotICAgICAgICBhdXRvIGltcGxlbWVudGF0aW9uID0gQ0RNOjpjcmVhdGUoZG9jdW1l
bnQsIGtleVN5c3RlbSk7Ci0gICAgICAgIHRyeU5leHRTdXBwb3J0ZWRDb25maWd1cmF0aW9uKFdU
Rk1vdmUoaW1wbGVtZW50YXRpb24pLCBXVEZNb3ZlKHN1cHBvcnRlZENvbmZpZ3VyYXRpb25zKSwg
V1RGTW92ZShwcm9taXNlKSwgV1RGTW92ZShsb2dnZXIpLCBXVEZNb3ZlKGlkZW50aWZpZXIpKTsK
KyAgICBhdXRvIHJlcXVlc3QgPSBNZWRpYUtleVN5c3RlbVJlcXVlc3Q6OmNyZWF0ZShkb2N1bWVu
dCwga2V5U3lzdGVtLCBXVEZNb3ZlKHByb21pc2UpKTsKKyAgICByZXF1ZXN0LT5zZXRBbGxvd0Nh
bGxiYWNrKFtrZXlTeXN0ZW0sIHN1cHBvcnRlZENvbmZpZ3VyYXRpb25zID0gV1RGTW92ZShzdXBw
b3J0ZWRDb25maWd1cmF0aW9ucyksICZkb2N1bWVudCwgbG9nZ2VyID0gV1RGTW92ZShsb2dnZXIp
LCBpZGVudGlmaWVyID0gV1RGTW92ZShpZGVudGlmaWVyKV0oUmVmPERlZmVycmVkUHJvbWlzZT4m
JiBwcm9taXNlKSBtdXRhYmxlIHsKKyAgICAgICAgZG9jdW1lbnQucG9zdFRhc2soW3Byb21pc2Ug
PSBXVEZNb3ZlKHByb21pc2UpLCAmZG9jdW1lbnQsIGtleVN5c3RlbSwgbG9nZ2VyID0gV1RGTW92
ZShsb2dnZXIpLCBpZGVudGlmaWVyID0gV1RGTW92ZShpZGVudGlmaWVyKSwgc3VwcG9ydGVkQ29u
ZmlndXJhdGlvbnMgPSBXVEZNb3ZlKHN1cHBvcnRlZENvbmZpZ3VyYXRpb25zKV0gKFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQmKSBtdXRhYmxlIHsKKyAgICAgICAgICAgIC8vIDMuIExldCBkb2N1bWVu
dCBiZSB0aGUgY2FsbGluZyBjb250ZXh0J3MgRG9jdW1lbnQuCisgICAgICAgICAgICAvLyA0LiBM
ZXQgb3JpZ2luIGJlIHRoZSBvcmlnaW4gb2YgZG9jdW1lbnQuCisgICAgICAgICAgICAvLyA1LiBM
ZXQgcHJvbWlzZSBiZSBhIG5ldyBwcm9taXNlLgorICAgICAgICAgICAgLy8gNi4gUnVuIHRoZSBm
b2xsb3dpbmcgc3RlcHMgaW4gcGFyYWxsZWw6CisgICAgICAgICAgICAvLyA2LjEuIElmIGtleVN5
c3RlbSBpcyBub3Qgb25lIG9mIHRoZSBLZXkgU3lzdGVtcyBzdXBwb3J0ZWQgYnkgdGhlIHVzZXIg
YWdlbnQsIHJlamVjdCBwcm9taXNlIHdpdGggYSBOb3RTdXBwb3J0ZWRFcnJvci4KKyAgICAgICAg
ICAgIC8vICAgICAgU3RyaW5nIGNvbXBhcmlzb24gaXMgY2FzZS1zZW5zaXRpdmUuCisgICAgICAg
ICAgICBpZiAoIUNETTo6c3VwcG9ydHNLZXlTeXN0ZW0oa2V5U3lzdGVtKSkgeworICAgICAgICAg
ICAgICAgIGluZm9Mb2cobG9nZ2VyLCBpZGVudGlmaWVyLCAiUmVqZWN0ZWQ6IGtleVN5c3RlbSgi
LCBrZXlTeXN0ZW0sICIpIG5vdCBzdXBwb3J0ZWQiKTsKKyAgICAgICAgICAgICAgICBwcm9taXNl
LT5yZWplY3QoTm90U3VwcG9ydGVkRXJyb3IpOworICAgICAgICAgICAgICAgIHJldHVybjsKKyAg
ICAgICAgICAgIH0KKworICAgICAgICAgICAgLy8gNi4yLiBMZXQgaW1wbGVtZW50YXRpb24gYmUg
dGhlIGltcGxlbWVudGF0aW9uIG9mIGtleVN5c3RlbS4KKyAgICAgICAgICAgIGF1dG8gaW1wbGVt
ZW50YXRpb24gPSBDRE06OmNyZWF0ZShkb2N1bWVudCwga2V5U3lzdGVtKTsKKyAgICAgICAgICAg
IHRyeU5leHRTdXBwb3J0ZWRDb25maWd1cmF0aW9uKFdURk1vdmUoaW1wbGVtZW50YXRpb24pLCBX
VEZNb3ZlKHN1cHBvcnRlZENvbmZpZ3VyYXRpb25zKSwgV1RGTW92ZShwcm9taXNlKSwgV1RGTW92
ZShsb2dnZXIpLCBXVEZNb3ZlKGlkZW50aWZpZXIpKTsKKyAgICAgICAgfSk7CiAgICAgfSk7Cisg
ICAgcmVxdWVzdC0+c3RhcnQoKTsKIH0KIAogc3RhdGljIHZvaWQgdHJ5TmV4dFN1cHBvcnRlZENv
bmZpZ3VyYXRpb24oUmVmUHRyPENETT4mJiBpbXBsZW1lbnRhdGlvbiwgVmVjdG9yPE1lZGlhS2V5
U3lzdGVtQ29uZmlndXJhdGlvbj4mJiBzdXBwb3J0ZWRDb25maWd1cmF0aW9ucywgUmVmUHRyPERl
ZmVycmVkUHJvbWlzZT4mJiBwcm9taXNlLCBSZWY8TG9nZ2VyPiYmIGxvZ2dlciwgV1RGOjpMb2dn
ZXI6OkxvZ1NpdGVJZGVudGlmaWVyJiYgaWRlbnRpZmllcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA1YzUwZWVlM2VjMzU0MThk
MmJjNDliZWY2MjYwOTY2ZTQ1NmY2MjhiLi44NTQxMzZhNThjMzE1ZDA1NmNmMDJhNjcyNDkzM2Q5
ZjA5ZjE2N2M0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCkBAIC0zMDQxLDYgKzMwNDEsMTEgQEAKIAkJOTlEMUIyRDMyM0FDMTQzMTAw
ODExQ0YwIC8qIEluc3BlY3RvckRlYnVnZ2FibGVUeXBlLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5OUQxQjJEMTIzQUMxNDMwMDA4MTFDRjAgLyogSW5z
cGVjdG9yRGVidWdnYWJsZVR5cGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2
YXRlLCApOyB9OyB9OwogCQk5QTUyOEU4NDE3RDdGNTJGMDBBQTk1MTggLyogRmxvYXRpbmdPYmpl
Y3RzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5QTUy
OEU4MjE3RDdGNTJGMDBBQTk1MTggLyogRmxvYXRpbmdPYmplY3RzLmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJOUFCMUYzODAxOEUyNDg5QTAwNTM0
NzQzIC8qIENTU1RvTGVuZ3RoQ29udmVyc2lvbkRhdGEuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDlBQjFGMzdFMThFMjQ4OUEwMDUzNDc0MyAvKiBDU1NU
b0xlbmd0aENvbnZlcnNpb25EYXRhLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKKwkJOUFDQzA3OTYyNUM3MjVFRTAwREM2Mzg2IC8qIE1lZGlhS2V5U3lz
dGVtUmVxdWVzdC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA5QUNDMDc5NDI1QzcyNUVEMDBEQzYzODYgLyogTWVkaWFLZXlTeXN0ZW1SZXF1ZXN0LmNw
cCAqLzsgfTsKKwkJOUFDQzA3OTgyNUM3MjY3NzAwREM2Mzg2IC8qIE1lZGlhS2V5U3lzdGVtQ29u
dHJvbGxlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA5QUNDMDc5NzI1QzcyNjc2MDBEQzYzODYgLyogTWVkaWFLZXlTeXN0ZW1Db250cm9sbGVyLmNw
cCAqLzsgfTsKKwkJOUFDQzA3QTYyNUM4MTBERjAwREM2Mzg2IC8qIE1lZGlhS2V5U3lzdGVtUmVx
dWVzdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOUFD
QzA3QTUyNUM4MTBERjAwREM2Mzg2IC8qIE1lZGlhS2V5U3lzdGVtUmVxdWVzdC5oICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTlBQ0MwN0E4MjVDODEx
MEQwMERDNjM4NiAvKiBNZWRpYUtleVN5c3RlbUNsaWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOUFDQzA3QTcyNUM4MTEwRDAwREM2Mzg2IC8qIE1l
ZGlhS2V5U3lzdGVtQ2xpZW50LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0
ZSwgKTsgfTsgfTsKKwkJOUFDQzA3QUYyNUM4MTQxRDAwREM2Mzg2IC8qIE1lZGlhS2V5U3lzdGVt
Q29udHJvbGxlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gOUFDQzA3QUUyNUM4MTQxQzAwREM2Mzg2IC8qIE1lZGlhS2V5U3lzdGVtQ29udHJvbGxlci5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTlCMDJF
MEM4MjM1RUFEMkEwMDQwNDRCMiAvKiBUZXh0TWFuaXB1bGF0aW9uQ29udHJvbGxlci5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOUIwMkUwQzMyMzVFNzZB
QTAwNDA0NEIyIC8qIFRleHRNYW5pcHVsYXRpb25Db250cm9sbGVyLmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJOUIwQUJDQUUyMzZCQjQzMTAwQjQ1
MDg1IC8qIFRhc2tTb3VyY2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDlCMEFCQ0FDMjM2QkI0MEEwMEI0NTA4NSAvKiBUYXNrU291cmNlLmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJOUIxMjI5QzQyM0ZF
NEJEMjAwOENBNzUxIC8qIEF1ZGlvRGVzdGluYXRpb25Db2NvYS5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDEzMTUxODYyMzU3NzQ1RTAwMTE1RTZFIC8q
IEF1ZGlvRGVzdGluYXRpb25Db2NvYS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFBy
aXZhdGUsICk7IH07IH07CkBAIC0xMjAwMCw2ICsxMjAwNSwxMSBAQAogCQk5QUM2RjAyNTIxMTQ4
RjU0MDBDQkRBMDYgLyogTWVkaWFFbmdpbmVDb25maWd1cmF0aW9uRmFjdG9yeS5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBNZWRpYUVuZ2luZUNvbmZpZ3VyYXRpb25GYWN0b3J5
Lmg7IHBhdGggPSBtZWRpYWNhcGFiaWxpdGllcy9NZWRpYUVuZ2luZUNvbmZpZ3VyYXRpb25GYWN0
b3J5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTlBQzZGMDJEMjExNDhGOUYwMENC
REEwNiAvKiBNZWRpYUVuZ2luZUNvbmZpZ3VyYXRpb25GYWN0b3J5TW9jay5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBNZWRpYUVuZ2luZUNvbmZpZ3VyYXRpb25GYWN0
b3J5TW9jay5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTlBQzZGMDJGMjExNDhG
QTIwMENCREEwNiAvKiBNZWRpYUVuZ2luZUNvbmZpZ3VyYXRpb25GYWN0b3J5TW9jay5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBNZWRpYUVuZ2luZUNvbmZpZ3VyYXRpb25GYWN0
b3J5TW9jay5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5QUNDMDc5NDI1QzcyNUVE
MDBEQzYzODYgLyogTWVkaWFLZXlTeXN0ZW1SZXF1ZXN0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IE1lZGlhS2V5U3lzdGVtUmVxdWVzdC5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCTlBQ0MwNzk3MjVDNzI2NzYwMERDNjM4NiAvKiBNZWRpYUtleVN5
c3RlbUNvbnRyb2xsZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
TWVkaWFLZXlTeXN0ZW1Db250cm9sbGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJOUFDQzA3QTUyNUM4MTBERjAwREM2Mzg2IC8qIE1lZGlhS2V5U3lzdGVtUmVxdWVzdC5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBNZWRpYUtleVN5c3RlbVJlcXVlc3QuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOUFDQzA3QTcyNUM4MTEwRDAwREM2Mzg2IC8q
IE1lZGlhS2V5U3lzdGVtQ2xpZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IE1lZGlhS2V5U3lzdGVtQ2xpZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTlB
Q0MwN0FFMjVDODE0MUMwMERDNjM4NiAvKiBNZWRpYUtleVN5c3RlbUNvbnRyb2xsZXIuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTWVkaWFLZXlTeXN0ZW1Db250cm9sbGVyLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTlCMDJFMEMzMjM1RTc2QUEwMDQwNDRCMiAv
KiBUZXh0TWFuaXB1bGF0aW9uQ29udHJvbGxlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBUZXh0TWFuaXB1
bGF0aW9uQ29udHJvbGxlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5QjAyRTBD
NDIzNUU3NkFBMDA0MDQ0QjIgLyogVGV4dE1hbmlwdWxhdGlvbkNvbnRyb2xsZXIuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gVGV4dE1hbmlwdWxhdGlvbkNvbnRyb2xsZXIuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk5QjAzRDgwNjFCQjMxMTBEMDBCNzNGNjQgLyogUmVhZGFibGVC
eXRlU3RyZWFtSW50ZXJuYWxzQnVpbHRpbnMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBu
YW1lID0gUmVhZGFibGVCeXRlU3RyZWFtSW50ZXJuYWxzQnVpbHRpbnMuaDsgcGF0aCA9IERlcml2
ZWRTb3VyY2VzL1dlYkNvcmUvUmVhZGFibGVCeXRlU3RyZWFtSW50ZXJuYWxzQnVpbHRpbnMuaDsg
c291cmNlVHJlZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsgfTsKQEAgLTI4MDQ2LDEwICsyODA1Niwx
NSBAQAogCQkJCTJEOUJGNzNDMURCRkRDMEYwMDdBN0Q5OSAvKiBNZWRpYUtleVN5c3RlbUFjY2Vz
cy5jcHAgKi8sCiAJCQkJMkQ5QkY3M0QxREJGREMwRjAwN0E3RDk5IC8qIE1lZGlhS2V5U3lzdGVt
QWNjZXNzLmggKi8sCiAJCQkJMkQ5QkY2RjkxREJGQjcxRjAwN0E3RDk5IC8qIE1lZGlhS2V5U3lz
dGVtQWNjZXNzLmlkbCAqLywKKwkJCQk5QUNDMDdBNzI1QzgxMTBEMDBEQzYzODYgLyogTWVkaWFL
ZXlTeXN0ZW1DbGllbnQuaCAqLywKIAkJCQkyRDlCRjczRTFEQkZEQzBGMDA3QTdEOTkgLyogTWVk
aWFLZXlTeXN0ZW1Db25maWd1cmF0aW9uLmggKi8sCiAJCQkJMkQ5QkY2RkExREJGQjcxRjAwN0E3
RDk5IC8qIE1lZGlhS2V5U3lzdGVtQ29uZmlndXJhdGlvbi5pZGwgKi8sCisJCQkJOUFDQzA3OTcy
NUM3MjY3NjAwREM2Mzg2IC8qIE1lZGlhS2V5U3lzdGVtQ29udHJvbGxlci5jcHAgKi8sCisJCQkJ
OUFDQzA3QUUyNUM4MTQxQzAwREM2Mzg2IC8qIE1lZGlhS2V5U3lzdGVtQ29udHJvbGxlci5oICov
LAogCQkJCTJEOUJGNzNGMURCRkRDMEYwMDdBN0Q5OSAvKiBNZWRpYUtleVN5c3RlbU1lZGlhQ2Fw
YWJpbGl0eS5oICovLAogCQkJCTJEOUJGNkZCMURCRkI3MUYwMDdBN0Q5OSAvKiBNZWRpYUtleVN5
c3RlbU1lZGlhQ2FwYWJpbGl0eS5pZGwgKi8sCisJCQkJOUFDQzA3OTQyNUM3MjVFRDAwREM2Mzg2
IC8qIE1lZGlhS2V5U3lzdGVtUmVxdWVzdC5jcHAgKi8sCisJCQkJOUFDQzA3QTUyNUM4MTBERjAw
REM2Mzg2IC8qIE1lZGlhS2V5U3lzdGVtUmVxdWVzdC5oICovLAogCQkJCTJEOUJGNkZDMURCRkI3
MUYwMDdBN0Q5OSAvKiBOYXZpZ2F0b3IrRU1FLmlkbCAqLywKIAkJCQkyRDlCRjc0MDFEQkZEQzBG
MDA3QTdEOTkgLyogTmF2aWdhdG9yRU1FLmNwcCAqLywKIAkJCQkyRDlCRjc0MTFEQkZEQzBGMDA3
QTdEOTkgLyogTmF2aWdhdG9yRU1FLmggKi8sCkBAIC0zMzY5Nyw2ICszMzcxMiw5IEBACiAJCQkJ
Q0RGNEI3MUExRTAxRDNEMDAwRTIzNUEyIC8qIE1lZGlhS2V5U2Vzc2lvblR5cGUuaWRsIGluIEhl
YWRlcnMgKi8sCiAJCQkJQ0RGNEI3MjgxRTAzQzU3MzAwRTIzNUEyIC8qIE1lZGlhS2V5c1JlcXVp
cmVtZW50LmlkbCBpbiBIZWFkZXJzICovLAogCQkJCUNERjRCNzE4MUUwMUNCOTEwMEUyMzVBMiAv
KiBNZWRpYUtleXNSZXN0cmljdGlvbnMuaCBpbiBIZWFkZXJzICovLAorCQkJCTlBQ0MwN0E4MjVD
ODExMEQwMERDNjM4NiAvKiBNZWRpYUtleVN5c3RlbUNsaWVudC5oIGluIEhlYWRlcnMgKi8sCisJ
CQkJOUFDQzA3QUYyNUM4MTQxRDAwREM2Mzg2IC8qIE1lZGlhS2V5U3lzdGVtQ29udHJvbGxlci5o
IGluIEhlYWRlcnMgKi8sCisJCQkJOUFDQzA3QTYyNUM4MTBERjAwREM2Mzg2IC8qIE1lZGlhS2V5
U3lzdGVtUmVxdWVzdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQThFQTgwMEUwQTE5NTE2RTAwQThF
RjVGIC8qIE1lZGlhTGlzdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNUVCQjg5MzExQzc3NzdGRjAw
QzY1RDQxIC8qIE1lZGlhUGF5bG9hZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMDdFM0RGRDExQTlF
Nzg2NTAwNzY0Q0E4IC8qIE1lZGlhUGxheWJhY2tUYXJnZXQuaCBpbiBIZWFkZXJzICovLApAQCAt
MzYwNTAsNiArMzYwNjgsOCBAQAogCQkJCTJEOUJGNzQ1MURCRkRDNDQwMDdBN0Q5OSAvKiBNZWRp
YUtleVNlc3Npb24uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMkQ5QkY3NDQxREJGREM0MTAwN0E3
RDk5IC8qIE1lZGlhS2V5U3RhdHVzTWFwLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTJEOUJGNzQz
MURCRkRDM0UwMDdBN0Q5OSAvKiBNZWRpYUtleVN5c3RlbUFjY2Vzcy5jcHAgaW4gU291cmNlcyAq
LywKKwkJCQk5QUNDMDc5ODI1QzcyNjc3MDBEQzYzODYgLyogTWVkaWFLZXlTeXN0ZW1Db250cm9s
bGVyLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTlBQ0MwNzk2MjVDNzI1RUUwMERDNjM4NiAvKiBN
ZWRpYUtleVN5c3RlbVJlcXVlc3QuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMDcxRTQ5NkUxQUQ1
QUEwRDAwOEE1MEI0IC8qIE1lZGlhUGxheWJhY2tUYXJnZXRDb2NvYS5tbSBpbiBTb3VyY2VzICov
LAogCQkJCTA3OEU0M0RFMUFCQjZGNkYwMDFDMkZBNiAvKiBNZWRpYVBsYXliYWNrVGFyZ2V0UGlj
a2VyTWFjLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJMDcyQzhCMTExMzFDNTE4NjAwQTRGQ0U5IC8q
IE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbi5jcHAgaW4gU291cmNlcyAqLywKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvV2ViS2l0L0NNYWtl
TGlzdHMudHh0CmluZGV4IGNiY2E4ZDMzODhjNTgyOWI3NDI3MjJlNzQ5OWY5MzY5ZmIzYzMwODUu
LjQ2ZWMwYzU0Y2M0NGQxYjNiYmRjZTA5NjJmMjcxMzA1ODA1YTg3MjkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYktpdC9DTWFrZUxpc3Rz
LnR4dApAQCAtNzUsNiArNzUsNyBAQCBzZXQoV2ViS2l0X0lOQ0xVREVfRElSRUNUT1JJRVMKICAg
ICAiJHtXRUJLSVRfRElSfS9XZWJQcm9jZXNzL0NhY2hlIgogICAgICIke1dFQktJVF9ESVJ9L1dl
YlByb2Nlc3MvRGF0YWJhc2VzIgogICAgICIke1dFQktJVF9ESVJ9L1dlYlByb2Nlc3MvRGF0YWJh
c2VzL0luZGV4ZWREQiIKKyAgICAiJHtXRUJLSVRfRElSfS9XZWJQcm9jZXNzL0VuY3J5cHRlZE1l
ZGlhIgogICAgICIke1dFQktJVF9ESVJ9L1dlYlByb2Nlc3MvRmlsZUFQSSIKICAgICAiJHtXRUJL
SVRfRElSfS9XZWJQcm9jZXNzL0Z1bGxTY3JlZW4iCiAgICAgIiR7V0VCS0lUX0RJUn0vV2ViUHJv
Y2Vzcy9HYW1lcGFkIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9IZWFkZXJzLmNtYWtlIGIv
U291cmNlL1dlYktpdC9IZWFkZXJzLmNtYWtlCmluZGV4IDIxMzA0ZGEzMGQ3ODgyNTQzNjUyMjdh
YTZiMzZmMGU3NmY2OTBlZjQuLjM0NmM4YTYzYTdiN2FlNDk3YTFiZWUyNGQ3ZjgwOGIwZmE4Y2U0
YTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvSGVhZGVycy5jbWFrZQorKysgYi9Tb3VyY2Uv
V2ViS2l0L0hlYWRlcnMuY21ha2UKQEAgLTYyLDYgKzYyLDcgQEAgc2V0KFdlYktpdF9QVUJMSUNf
RlJBTUVXT1JLX0hFQURFUlMKICAgICBVSVByb2Nlc3MvQVBJL0MvV0tJY29uRGF0YWJhc2UuaAog
ICAgIFVJUHJvY2Vzcy9BUEkvQy9XS0luc3BlY3Rvci5oCiAgICAgVUlQcm9jZXNzL0FQSS9DL1dL
TGF5b3V0TW9kZS5oCisgICAgVUlQcm9jZXNzL0FQSS9DL1dLTWVkaWFLZXlTeXN0ZW1QZXJtaXNz
aW9uQ2FsbGJhY2suaAogICAgIFVJUHJvY2Vzcy9BUEkvQy9XS01lc3NhZ2VMaXN0ZW5lci5oCiAg
ICAgVUlQcm9jZXNzL0FQSS9DL1dLTW9ja0Rpc3BsYXkuaAogICAgIFVJUHJvY2Vzcy9BUEkvQy9X
S01vY2tNZWRpYURldmljZS5oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL0xv
Z2dpbmcuaCBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vTG9nZ2luZy5oCmluZGV4IGY0OWYzOGI2
YTVmOWQzZDcwOTUyZDJlMTIxYzg5OTVkZWNlOThlYWEuLjA2NmYwNjVmZTNlM2FlYzRhMDc5ODY4
MTkzZGFlOGEwYjA3Nzc1YjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vTG9n
Z2luZy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vTG9nZ2luZy5oCkBAIC01Miw2ICs1
Miw3IEBAIGV4dGVybiAiQyIgewogICAgIE0oQ29udGV4dE1lbnUpIFwKICAgICBNKERpc2tQZXJz
aXN0ZW5jeSkgXAogICAgIE0oRHJhZ0FuZERyb3ApIFwKKyAgICBNKEVNRSkgXAogICAgIE0oRnVs
bHNjcmVlbikgXAogICAgIE0oR2FtZXBhZCkgXAogICAgIE0oSVBDKSBcCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1BsYXRmb3JtR1RLLmNtYWtlIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybUdU
Sy5jbWFrZQppbmRleCAzMjBiMTE2YjFkOGEzM2E3ZDU0N2M3Y2Y2MTkwNzU2NzYxNDczNzcyLi45
YThlMGZhODk3OGY2YjJhZTg4Nzg1MzYzNGE5Y2NkNjdkNzUxODcxIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1BsYXRmb3JtR1RLLmNtYWtlCisrKyBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm1H
VEsuY21ha2UKQEAgLTExOSw2ICsxMTksNyBAQCBzZXQoV2ViS2l0MkdUS19JTlNUQUxMRURfSEVB
REVSUwogICAgICR7V0VCS0lUX0RJUn0vVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0SGl0VGVzdFJl
c3VsdC5oCiAgICAgJHtXRUJLSVRfRElSfS9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRJbnN0YWxs
TWlzc2luZ01lZGlhUGx1Z2luc1Blcm1pc3Npb25SZXF1ZXN0LmgKICAgICAke1dFQktJVF9ESVJ9
L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdEphdmFzY3JpcHRSZXN1bHQuaAorICAgICR7V0VCS0lU
X0RJUn0vVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0TWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVx
dWVzdC5oCiAgICAgJHtXRUJLSVRfRElSfS9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRNaW1lSW5m
by5oCiAgICAgJHtXRUJLSVRfRElSfS9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXROYXZpZ2F0aW9u
QWN0aW9uLmgKICAgICAke1dFQktJVF9ESVJ9L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdE5hdmln
YXRpb25Qb2xpY3lEZWNpc2lvbi5oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1BsYXRmb3Jt
V1BFLmNtYWtlIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybVdQRS5jbWFrZQppbmRleCBjNDQxZTZh
YWJmNDJjOWQ1YWVjY2NkOTYxZGI0MDEwN2M0ODdiZDQwLi5mNDVjNTMxYTA5YmNiNThkYWFmOWZm
NWE5ODRmYzFjNjExMWM1OTc5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtV1BF
LmNtYWtlCisrKyBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm1XUEUuY21ha2UKQEAgLTEzMiw2ICsx
MzIsNyBAQCBzZXQoV1BFX0FQSV9JTlNUQUxMRURfSEVBREVSUwogICAgICR7V0VCS0lUX0RJUn0v
VUlQcm9jZXNzL0FQSS93cGUvV2ViS2l0SW5wdXRNZXRob2RDb250ZXh0LmgKICAgICAke1dFQktJ
VF9ESVJ9L1VJUHJvY2Vzcy9BUEkvd3BlL1dlYktpdEluc3RhbGxNaXNzaW5nTWVkaWFQbHVnaW5z
UGVybWlzc2lvblJlcXVlc3QuaAogICAgICR7V0VCS0lUX0RJUn0vVUlQcm9jZXNzL0FQSS93cGUv
V2ViS2l0SmF2YXNjcmlwdFJlc3VsdC5oCisgICAgJHtXRUJLSVRfRElSfS9VSVByb2Nlc3MvQVBJ
L3dwZS9XZWJLaXRNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0LmgKICAgICAke1dFQktJ
VF9ESVJ9L1VJUHJvY2Vzcy9BUEkvd3BlL1dlYktpdE1pbWVJbmZvLmgKICAgICAke1dFQktJVF9E
SVJ9L1VJUHJvY2Vzcy9BUEkvd3BlL1dlYktpdE5hdmlnYXRpb25BY3Rpb24uaAogICAgICR7V0VC
S0lUX0RJUn0vVUlQcm9jZXNzL0FQSS93cGUvV2ViS2l0TmF2aWdhdGlvblBvbGljeURlY2lzaW9u
LmgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0FQSS9BUElPYmplY3QuaCBiL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL0FQSS9BUElPYmplY3QuaAppbmRleCAwNTU2OTM0M2EwZGMzYWFk
NmMyZDMzNDAzZThlMjliYTg2ZmU0Y2FiLi40NmM3NzNlZTM4Y2QzMDY3NWI2ZThiMTYyNWY5NzUz
MDc5M2IxNmJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BUEkvQVBJT2JqZWN0
LmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvQVBJL0FQSU9iamVjdC5oCkBAIC0xODksNiAr
MTg5LDggQEAgcHVibGljOgogICAgICAgICBXZWJBdXRoZW50aWNhdGlvblBhbmVsLAogI2VuZGlm
CiAKKyAgICAgICAgTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uQ2FsbGJhY2ssCisKICAgICAgICAg
Ly8gQnVuZGxlIHR5cGVzCiAgICAgICAgIEJ1bmRsZSwKICAgICAgICAgQnVuZGxlQmFja0Zvcndh
cmRMaXN0LApAQCAtNDM4LDYgKzQ0MCw4IEBAIHRlbXBsYXRlPD4gc3RydWN0IEVudW1UcmFpdHM8
QVBJOjpPYmplY3Q6OlR5cGU+IHsKICAgICAgICAgQVBJOjpPYmplY3Q6OlR5cGU6OldlYkF1dGhl
bnRpY2F0aW9uUGFuZWwsCiAjZW5kaWYKIAorICAgICAgICBBUEk6Ok9iamVjdDo6VHlwZTo6TWVk
aWFLZXlTeXN0ZW1QZXJtaXNzaW9uQ2FsbGJhY2ssCisKICAgICAgICAgLy8gQnVuZGxlIHR5cGVz
CiAgICAgICAgIEFQSTo6T2JqZWN0OjpUeXBlOjpCdW5kbGUsCiAgICAgICAgIEFQSTo6T2JqZWN0
OjpUeXBlOjpCdW5kbGVCYWNrRm9yd2FyZExpc3QsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1NoYXJlZC9BUEkvYy9XS0Jhc2UuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0FQSS9jL1dLQmFz
ZS5oCmluZGV4IDg0ZWU2YzI4OGY2ZDJlYmQ1MWZhNzNlYTcyNzA4ZjMyOTQ2YmRkODUuLjdjOGJk
MjM5MjRjNGFiNzExNTRmNWNhYzdlNzNjYzczZDM5NDU4YzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL0FQSS9jL1dLQmFzZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0FQ
SS9jL1dLQmFzZS5oCkBAIC0xNDIsNiArMTQyLDggQEAgdHlwZWRlZiBjb25zdCBzdHJ1Y3QgT3Bh
cXVlV0tXZWJzaXRlRGF0YVN0b3JlKiBXS1dlYnNpdGVEYXRhU3RvcmVSZWY7CiB0eXBlZGVmIGNv
bnN0IHN0cnVjdCBPcGFxdWVXS1dlYnNpdGVQb2xpY2llcyogV0tXZWJzaXRlUG9saWNpZXNSZWY7
CiB0eXBlZGVmIGNvbnN0IHN0cnVjdCBPcGFxdWVXS1dpbmRvd0ZlYXR1cmVzKiBXS1dpbmRvd0Zl
YXR1cmVzUmVmOwogdHlwZWRlZiBjb25zdCBzdHJ1Y3QgT3BhcXVlV0tTcGVlY2hSZWNvZ25pdGlv
blBlcm1pc3Npb25DYWxsYmFjayogV0tTcGVlY2hSZWNvZ25pdGlvblBlcm1pc3Npb25DYWxsYmFj
a1JlZjsKK3R5cGVkZWYgY29uc3Qgc3RydWN0IE9wYXF1ZVdLTWVkaWFLZXlTeXN0ZW1QZXJtaXNz
aW9uUmVxdWVzdCogV0tNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0UmVmOwordHlwZWRl
ZiBjb25zdCBzdHJ1Y3QgT3BhcXVlV0tNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25DYWxsYmFjayog
V0tNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25DYWxsYmFja1JlZjsKIAogLyogV2ViS2l0MiBCdW5k
bGUgdHlwZXMgKi8KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9Tb3VyY2VzLnR4dCBiL1Nv
dXJjZS9XZWJLaXQvU291cmNlcy50eHQKaW5kZXggN2Y0MDhiYzQ2MTBjMTA1NDkxZDViMDY0MWY4
YjcwZjNhZjkxYjA0My4uNDNhYTJiN2Q1NzYyYzU4ZDk0N2UyMWVmNGJjNzI1MDQ1OTk3MWQwMSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9Tb3VyY2VzLnR4dAorKysgYi9Tb3VyY2UvV2ViS2l0
L1NvdXJjZXMudHh0CkBAIC0yODUsNiArMjg1LDggQEAgVUlQcm9jZXNzL0ZyYW1lTG9hZFN0YXRl
LmNwcAogVUlQcm9jZXNzL0dlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHku
Y3BwCiBVSVByb2Nlc3MvR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdFByb3h5LmNwcAogVUlQ
cm9jZXNzL0xlZ2FjeUdsb2JhbFNldHRpbmdzLmNwcAorVUlQcm9jZXNzL01lZGlhS2V5U3lzdGVt
UGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuY3BwCitVSVByb2Nlc3MvTWVkaWFLZXlTeXN0
ZW1QZXJtaXNzaW9uUmVxdWVzdFByb3h5LmNwcAogVUlQcm9jZXNzL1BhZ2VMb2FkU3RhdGUuY3Bw
CiBVSVByb2Nlc3MvUHJvY2Vzc0Fzc2VydGlvbi5jcHAKIFVJUHJvY2Vzcy9Qcm9jZXNzVGhyb3R0
bGVyLmNwcApAQCAtMzkxLDYgKzM5Myw3IEBAIFVJUHJvY2Vzcy9BUEkvQy9XS0hpdFRlc3RSZXN1
bHQuY3BwCiBVSVByb2Nlc3MvQVBJL0MvV0tJY29uRGF0YWJhc2UuY3BwCiBVSVByb2Nlc3MvQVBJ
L0MvV0tJbnNwZWN0b3IuY3BwCiBVSVByb2Nlc3MvQVBJL0MvV0tLZXlWYWx1ZVN0b3JhZ2VNYW5h
Z2VyLmNwcAorVUlQcm9jZXNzL0FQSS9DL1dLTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uQ2FsbGJh
Y2suY3BwCiBVSVByb2Nlc3MvQVBJL0MvV0tNZXNzYWdlTGlzdGVuZXIuY3BwCiBVSVByb2Nlc3Mv
QVBJL0MvV0tNb2NrRGlzcGxheS5jcHAKIFVJUHJvY2Vzcy9BUEkvQy9XS01vY2tNZWRpYURldmlj
ZS5jcHAKQEAgLTUxMSw2ICs1MTQsOCBAQCBXZWJQcm9jZXNzL0RhdGFiYXNlcy9XZWJEYXRhYmFz
ZVByb3ZpZGVyLmNwcAogCiBXZWJQcm9jZXNzL0RhdGFiYXNlcy9JbmRleGVkREIvV2ViSURCQ29u
bmVjdGlvblRvU2VydmVyLmNwcAogCitXZWJQcm9jZXNzL0VuY3J5cHRlZE1lZGlhL01lZGlhS2V5
U3lzdGVtUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyLmNwcAorCiBXZWJQcm9jZXNzL0ZpbGVBUEkv
QmxvYlJlZ2lzdHJ5UHJveHkuY3BwCiAKIFdlYlByb2Nlc3MvRnVsbFNjcmVlbi9XZWJGdWxsU2Ny
ZWVuTWFuYWdlci5jcHAKQEAgLTY2NSw2ICs2NzAsNyBAQCBXZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L1dlYkRyYWdDbGllbnQuY3BwCiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRv
ckNsaWVudC5jcHAKIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGll
bnQuY3BwCiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkdlb2xvY2F0aW9uQ2xpZW50LmNw
cAorV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJNZWRpYUtleVN5c3RlbUNsaWVudC5jcHAK
IFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViTWVzc2FnZVBvcnRDaGFubmVsUHJvdmlkZXIu
Y3BwCiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYk5vdGlmaWNhdGlvbkNsaWVudC5jcHAK
IFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViUGVyZm9ybWFuY2VMb2dnaW5nQ2xpZW50LmNw
cApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9Tb3VyY2VzR1RLLnR4dCBiL1NvdXJjZS9XZWJL
aXQvU291cmNlc0dUSy50eHQKaW5kZXggNWQ1YjAzYjJlNWVlNGRhNGNjMmI0YzJkZTA0YjgwZDlk
ZTBjZWFiYi4uNTZiZGZmYTZmYTVlNDExMWI1MGUwNDgzMDFiZGUzMTExYzY5NGFjNSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9Tb3VyY2VzR1RLLnR4dAorKysgYi9Tb3VyY2UvV2ViS2l0L1Nv
dXJjZXNHVEsudHh0CkBAIC0xNDYsNiArMTQ2LDcgQEAgVUlQcm9jZXNzL0FQSS9nbGliL1dlYktp
dEluamVjdGVkQnVuZGxlQ2xpZW50LmNwcCBAbm8tdW5pZnkKIFVJUHJvY2Vzcy9BUEkvZ2xpYi9X
ZWJLaXRJbnB1dE1ldGhvZENvbnRleHQuY3BwIEBuby11bmlmeQogVUlQcm9jZXNzL0FQSS9nbGli
L1dlYktpdEluc3RhbGxNaXNzaW5nTWVkaWFQbHVnaW5zUGVybWlzc2lvblJlcXVlc3QuY3BwIEBu
by11bmlmeQogVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdEphdmFzY3JpcHRSZXN1bHQuY3BwIEBu
by11bmlmeQorVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdE1lZGlhS2V5U3lzdGVtUGVybWlzc2lv
blJlcXVlc3QuY3BwIEBuby11bmlmeQogVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdE1pbWVJbmZv
LmNwcCBAbm8tdW5pZnkKIFVJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXROYXZpZ2F0aW9uQWN0aW9u
LmNwcCBAbm8tdW5pZnkKIFVJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXROYXZpZ2F0aW9uQ2xpZW50
LmNwcCBAbm8tdW5pZnkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU291cmNlc1dQRS50eHQg
Yi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNXUEUudHh0CmluZGV4IGM2NzY3MDc0Y2RiODRiYWNkMWM5
MWRjOTUxMjhjZDY1NjZkYTJjZTEuLmMyZTE3NDU4NDkwNzUzNzE4NjQ3ZTRjMGUwMjYzOWU4Njdh
OWFiZDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU291cmNlc1dQRS50eHQKKysrIGIvU291
cmNlL1dlYktpdC9Tb3VyY2VzV1BFLnR4dApAQCAtMTM3LDYgKzEzNyw3IEBAIFVJUHJvY2Vzcy9B
UEkvZ2xpYi9XZWJLaXRJbmplY3RlZEJ1bmRsZUNsaWVudC5jcHAgQG5vLXVuaWZ5CiBVSVByb2Nl
c3MvQVBJL2dsaWIvV2ViS2l0SW5wdXRNZXRob2RDb250ZXh0LmNwcCBAbm8tdW5pZnkKIFVJUHJv
Y2Vzcy9BUEkvZ2xpYi9XZWJLaXRJbnN0YWxsTWlzc2luZ01lZGlhUGx1Z2luc1Blcm1pc3Npb25S
ZXF1ZXN0LmNwcCBAbm8tdW5pZnkKIFVJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRKYXZhc2NyaXB0
UmVzdWx0LmNwcCBAbm8tdW5pZnkKK1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRNZWRpYUtleVN5
c3RlbVBlcm1pc3Npb25SZXF1ZXN0LmNwcCBAbm8tdW5pZnkKIFVJUHJvY2Vzcy9BUEkvZ2xpYi9X
ZWJLaXRNaW1lSW5mby5jcHAgQG5vLXVuaWZ5CiBVSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0TmF2
aWdhdGlvbkFjdGlvbi5jcHAgQG5vLXVuaWZ5CiBVSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0TmF2
aWdhdGlvbkNsaWVudC5jcHAgQG5vLXVuaWZ5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvQVBJVUlDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9B
UElVSUNsaWVudC5oCmluZGV4IGIxN2I1YTE5NjJiYzlmZGU2YmY4ZjA1NWQ0YjRhZTllMTdlYjg0
ZGUuLjE2MzY3ZTZjYWM4MjVhYTljNzRmYjRjNDg0M2RkMmYxZmYxZGFkMzggMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElVSUNsaWVudC5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElVSUNsaWVudC5oCkBAIC0yMDUsNiArMjA1LDkgQEAgcHVi
bGljOgogICAgIHZpcnR1YWwgdm9pZCBkaWREaXNhYmxlSW5zcGVjdG9yQnJvd3NlckRvbWFpbihX
ZWJLaXQ6OldlYlBhZ2VQcm94eSYpIHsgfQogCiAgICAgdmlydHVhbCB2b2lkIGRlY2lkZVBvbGlj
eUZvclNwZWVjaFJlY29nbml0aW9uUGVybWlzc2lvblJlcXVlc3QoV2ViS2l0OjpXZWJQYWdlUHJv
eHkmIHBhZ2UsIEFQSTo6U2VjdXJpdHlPcmlnaW4mIG9yaWdpbiwgQ29tcGxldGlvbkhhbmRsZXI8
dm9pZChib29sKT4mJiBjb21wbGV0aW9uSGFuZGxlcikgeyBwYWdlLnJlcXVlc3RTcGVlY2hSZWNv
Z25pdGlvblBlcm1pc3Npb25CeURlZmF1bHRBY3Rpb24ob3JpZ2luLnNlY3VyaXR5T3JpZ2luKCks
IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsgfQorCisgICAgdmlydHVhbCB2b2lkIGRlY2lk
ZVBvbGljeUZvck1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3QoV2ViS2l0OjpXZWJQYWdl
UHJveHkmIHBhZ2UsIEFQSTo6U2VjdXJpdHlPcmlnaW4mIG9yaWdpbiwgY29uc3QgV1RGOjpTdHJp
bmcmIGtleVN5c3RlbSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJiBjb21wbGV0aW9u
SGFuZGxlcikgeyBwYWdlLnJlcXVlc3RNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25CeURlZmF1bHRB
Y3Rpb24ob3JpZ2luLnNlY3VyaXR5T3JpZ2luKCksIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIp
KTsgfQorCiB9OwogCiB9IC8vIG5hbWVzcGFjZSBBUEkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9DL1dLQVBJQ2FzdC5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL0MvV0tBUElDYXN0LmgKaW5kZXggY2M5Y2Y1OTU3ZWEzMGQ2YWNmMDQ2OGRlNzAxNzk4YTZm
NDE4MTE0YS4uYzhhMTg5NWE2ZDBkZTcwOWY5YWUzOThiZTQ1YmVhNjZiOWViZmEwZCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tBUElDYXN0LmgKKysrIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tBUElDYXN0LmgKQEAgLTc4LDYgKzc4LDcgQEAg
Y2xhc3MgQXV0aGVudGljYXRpb25DaGFsbGVuZ2VQcm94eTsKIGNsYXNzIEF1dGhlbnRpY2F0aW9u
RGVjaXNpb25MaXN0ZW5lcjsKIGNsYXNzIERvd25sb2FkUHJveHk7CiBjbGFzcyBHZW9sb2NhdGlv
blBlcm1pc3Npb25SZXF1ZXN0OworY2xhc3MgTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uQ2FsbGJh
Y2s7CiBjbGFzcyBOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdDsKIGNsYXNzIFNwZWVjaFJl
Y29nbml0aW9uUGVybWlzc2lvbkNhbGxiYWNrOwogY2xhc3MgVXNlck1lZGlhUGVybWlzc2lvbkNo
ZWNrUHJveHk7CkBAIC0xMzUsNiArMTM2LDcgQEAgV0tfQUREX0FQSV9NQVBQSU5HKFdLSFRUUENv
b2tpZVN0b3JlUmVmLCBBUEk6OkhUVFBDb29raWVTdG9yZSkKIFdLX0FERF9BUElfTUFQUElORyhX
S0hpdFRlc3RSZXN1bHRSZWYsIEFQSTo6SGl0VGVzdFJlc3VsdCkKIFdLX0FERF9BUElfTUFQUElO
RyhXS0ljb25EYXRhYmFzZVJlZiwgV2ViSWNvbkRhdGFiYXNlKQogV0tfQUREX0FQSV9NQVBQSU5H
KFdLSW5zcGVjdG9yUmVmLCBXZWJJbnNwZWN0b3JQcm94eSkKK1dLX0FERF9BUElfTUFQUElORyhX
S01lZGlhS2V5U3lzdGVtUGVybWlzc2lvbkNhbGxiYWNrUmVmLCBNZWRpYUtleVN5c3RlbVBlcm1p
c3Npb25DYWxsYmFjaykKIFdLX0FERF9BUElfTUFQUElORyhXS01lc3NhZ2VMaXN0ZW5lclJlZiwg
QVBJOjpNZXNzYWdlTGlzdGVuZXIpCiBXS19BRERfQVBJX01BUFBJTkcoV0tOYXZpZ2F0aW9uQWN0
aW9uUmVmLCBBUEk6Ok5hdmlnYXRpb25BY3Rpb24pCiBXS19BRERfQVBJX01BUFBJTkcoV0tOYXZp
Z2F0aW9uRGF0YVJlZiwgQVBJOjpOYXZpZ2F0aW9uRGF0YSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uQ2FsbGJhY2su
Y3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tNZWRpYUtleVN5c3RlbVBlcm1p
c3Npb25DYWxsYmFjay5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYWFhNzMyNGJiYzJhYjM3MjU3ZGE4M2FiYmMz
NDA3MTRiYTdlMDUzMAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9DL1dLTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uQ2FsbGJhY2suY3BwCkBAIC0wLDAgKzEs
NDIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgSWdhbGlhIFMuTC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05U
UklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1Ig
SVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwor
I2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldLTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9u
Q2FsbGJhY2suaCIKKworI2luY2x1ZGUgIk1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3Qu
aCIKKyNpbmNsdWRlICJXS0FQSUNhc3QuaCIKKwordXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKKwor
V0tUeXBlSUQgV0tNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25DYWxsYmFja0dldFR5cGVJRCgpCit7
CisgICAgcmV0dXJuIHRvQVBJKE1lZGlhS2V5U3lzdGVtUGVybWlzc2lvbkNhbGxiYWNrOjpBUElU
eXBlKTsKK30KKwordm9pZCBXS01lZGlhS2V5U3lzdGVtUGVybWlzc2lvbkNhbGxiYWNrQ29tcGxl
dGUoV0tNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25DYWxsYmFja1JlZiBwZXJtaXNzaW9uQ2FsbGJh
Y2ssIGJvb2wgZ3JhbnRlZCkKK3sKKyAgICByZXR1cm4gdG9JbXBsKHBlcm1pc3Npb25DYWxsYmFj
ayktPmNvbXBsZXRlKGdyYW50ZWQpOworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL0MvV0tNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25DYWxsYmFjay5oIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25DYWxsYmFj
ay5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmY1ZDM2ODM3ZWZhNjlhNGIwNmRmMTMyMTIyZmFmNmEwYTFmNTIwNzgK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS01lZGlh
S2V5U3lzdGVtUGVybWlzc2lvbkNhbGxiYWNrLmgKQEAgLTAsMCArMSw0MCBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAyMSBJZ2FsaWEgUy5MLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElT
JycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JT
CisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisg
KiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAq
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKwor
I2luY2x1ZGUgPFdlYktpdC9XS0Jhc2UuaD4KKworI2lmZGVmIF9fY3BsdXNwbHVzCitleHRlcm4g
IkMiIHsKKyNlbmRpZgorCitXS19FWFBPUlQgV0tUeXBlSUQgV0tNZWRpYUtleVN5c3RlbVBlcm1p
c3Npb25DYWxsYmFja0dldFR5cGVJRCh2b2lkKTsKKworV0tfRVhQT1JUIHZvaWQgV0tNZWRpYUtl
eVN5c3RlbVBlcm1pc3Npb25DYWxsYmFja0NvbXBsZXRlKFdLTWVkaWFLZXlTeXN0ZW1QZXJtaXNz
aW9uQ2FsbGJhY2tSZWYgcGVybWlzc2lvbkNhbGxiYWNrLCBib29sIGdyYW50ZWQpOworCisjaWZk
ZWYgX19jcGx1c3BsdXMKK30KKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL0MvV0tQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dL
UGFnZS5jcHAKaW5kZXggNzQ0M2Y3MGY5NTc1ODM2ZDg0M2RhNTRjODQ4MTUwOWM5ZDhjNGRlYy4u
YzM5ZTcyZjA3MTJjYmFjMGJlYmFmZjBiMDJlODQ1NzNhYzE2ZjkxNCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuY3BwCkBAIC01OCw2ICs1OCw3IEBACiAjaW5jbHVkZSAi
RG93bmxvYWRQcm94eS5oIgogI2luY2x1ZGUgIkxlZ2FjeVNlc3Npb25TdGF0ZUNvZGluZy5oIgog
I2luY2x1ZGUgIkxvZ2dpbmcuaCIKKyNpbmNsdWRlICJNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25S
ZXF1ZXN0LmgiCiAjaW5jbHVkZSAiTmF0aXZlV2ViS2V5Ym9hcmRFdmVudC5oIgogI2luY2x1ZGUg
Ik5hdGl2ZVdlYldoZWVsRXZlbnQuaCIKICNpbmNsdWRlICJOYXZpZ2F0aW9uQWN0aW9uRGF0YS5o
IgpAQCAtMTE3LDcgKzExOCw3IEBAIHRlbXBsYXRlPD4gc3RydWN0IENsaWVudFRyYWl0czxXS1Bh
Z2VQb2xpY3lDbGllbnRCYXNlPiB7CiB9OwogCiB0ZW1wbGF0ZTw+IHN0cnVjdCBDbGllbnRUcmFp
dHM8V0tQYWdlVUlDbGllbnRCYXNlPiB7Ci0gICAgdHlwZWRlZiBzdGQ6OnR1cGxlPFdLUGFnZVVJ
Q2xpZW50VjAsIFdLUGFnZVVJQ2xpZW50VjEsIFdLUGFnZVVJQ2xpZW50VjIsIFdLUGFnZVVJQ2xp
ZW50VjMsIFdLUGFnZVVJQ2xpZW50VjQsIFdLUGFnZVVJQ2xpZW50VjUsIFdLUGFnZVVJQ2xpZW50
VjYsIFdLUGFnZVVJQ2xpZW50VjcsIFdLUGFnZVVJQ2xpZW50VjgsIFdLUGFnZVVJQ2xpZW50Vjks
IFdLUGFnZVVJQ2xpZW50VjEwLCBXS1BhZ2VVSUNsaWVudFYxMSwgV0tQYWdlVUlDbGllbnRWMTIs
IFdLUGFnZVVJQ2xpZW50VjEzLCBXS1BhZ2VVSUNsaWVudFYxNCwgV0tQYWdlVUlDbGllbnRWMTU+
IFZlcnNpb25zOworICAgIHR5cGVkZWYgc3RkOjp0dXBsZTxXS1BhZ2VVSUNsaWVudFYwLCBXS1Bh
Z2VVSUNsaWVudFYxLCBXS1BhZ2VVSUNsaWVudFYyLCBXS1BhZ2VVSUNsaWVudFYzLCBXS1BhZ2VV
SUNsaWVudFY0LCBXS1BhZ2VVSUNsaWVudFY1LCBXS1BhZ2VVSUNsaWVudFY2LCBXS1BhZ2VVSUNs
aWVudFY3LCBXS1BhZ2VVSUNsaWVudFY4LCBXS1BhZ2VVSUNsaWVudFY5LCBXS1BhZ2VVSUNsaWVu
dFYxMCwgV0tQYWdlVUlDbGllbnRWMTEsIFdLUGFnZVVJQ2xpZW50VjEyLCBXS1BhZ2VVSUNsaWVu
dFYxMywgV0tQYWdlVUlDbGllbnRWMTQsIFdLUGFnZVVJQ2xpZW50VjE1LCBXS1BhZ2VVSUNsaWVu
dFYxNj4gVmVyc2lvbnM7CiB9OwogCiAjaWYgRU5BQkxFKENPTlRFWFRfTUVOVVMpCkBAIC0yMTE5
LDYgKzIxMjAsMTYgQEAgdm9pZCBXS1BhZ2VTZXRQYWdlVUlDbGllbnQoV0tQYWdlUmVmIHBhZ2VS
ZWYsIGNvbnN0IFdLUGFnZVVJQ2xpZW50QmFzZSogd2tDbGllbnQKIAogICAgICAgICAgICAgbV9j
bGllbnQuZGVjaWRlUG9saWN5Rm9yU3BlZWNoUmVjb2duaXRpb25QZXJtaXNzaW9uUmVxdWVzdCh0
b0FQSSgmcGFnZSksIHRvQVBJKCZvcmlnaW4pLCB0b0FQSShTcGVlY2hSZWNvZ25pdGlvblBlcm1p
c3Npb25DYWxsYmFjazo6Y3JlYXRlKFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKS5wdHIoKSkp
OwogICAgICAgICB9CisKKyAgICAgICAgdm9pZCBkZWNpZGVQb2xpY3lGb3JNZWRpYUtleVN5c3Rl
bVBlcm1pc3Npb25SZXF1ZXN0KFdlYlBhZ2VQcm94eSYgcGFnZSwgQVBJOjpTZWN1cml0eU9yaWdp
biYgb3JpZ2luLCBjb25zdCBTdHJpbmcmIGtleVN5c3RlbSwgQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZChib29sKT4mJiBjb21wbGV0aW9uSGFuZGxlcikgZmluYWwKKyAgICAgICAgeworICAgICAgICAg
ICAgaWYgKCFtX2NsaWVudC5kZWNpZGVQb2xpY3lGb3JNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25S
ZXF1ZXN0KSB7CisgICAgICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoZmFsc2UpOworICAg
ICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgbV9jbGll
bnQuZGVjaWRlUG9saWN5Rm9yTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdCh0b0FQSSgm
cGFnZSksIHRvQVBJKCZvcmlnaW4pLCB0b0FQSShBUEk6OlN0cmluZzo6Y3JlYXRlKGtleVN5c3Rl
bSkucHRyKCkpLCB0b0FQSShNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25DYWxsYmFjazo6Y3JlYXRl
KFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKS5wdHIoKSkpOworICAgICAgICB9CiAgICAgfTsK
IAogICAgIHRvSW1wbChwYWdlUmVmKS0+c2V0VUlDbGllbnQobWFrZVVuaXF1ZTxVSUNsaWVudD4o
d2tDbGllbnQpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dL
UGFnZVVJQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2VVSUNs
aWVudC5oCmluZGV4IDYzNjM1NTU2NGQwMGIxMTIyYTg3ZTIyOWEzMGI5NGQ3ZTk5ZTRlZjkuLjNk
MzE1YmU2MTM0OGRkN2QyNDY3YmFhOTRkZWE0YWU3MTFjMjc4MDMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZVVJQ2xpZW50LmgKKysrIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlVUlDbGllbnQuaApAQCAtMTM4LDggKzEzOCwxMCBA
QCB0eXBlZGVmIGJvb2wgKCpXS1BhZ2VTaG91bGRBbGxvd0RldmljZU9yaWVudGF0aW9uQW5kTW90
aW9uQWNjZXNzQ2FsbGJhY2spKFdLUGFnZQogdHlwZWRlZiB2b2lkICgqV0tQYWdlUnVuV2ViQXV0
aGVudGljYXRpb25QYW5lbENhbGxiYWNrKSgpOwogdHlwZWRlZiB2b2lkICgqV0tQYWdlRGVjaWRl
UG9saWN5Rm9yU3BlZWNoUmVjb2duaXRpb25QZXJtaXNzaW9uUmVxdWVzdENhbGxiYWNrKShXS1Bh
Z2VSZWYgcGFnZSwgV0tTZWN1cml0eU9yaWdpblJlZiB0b3BPcmlnaW4sIFdLU3BlZWNoUmVjb2du
aXRpb25QZXJtaXNzaW9uQ2FsbGJhY2tSZWYgY2FsbGJhY2spOwogCit0eXBlZGVmIHZvaWQgKCpX
S1BhZ2VEZWNpZGVQb2xpY3lGb3JNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0Q2FsbGJh
Y2spKFdLUGFnZVJlZiBwYWdlLCBXS1NlY3VyaXR5T3JpZ2luUmVmIHRvcE9yaWdpbiwgV0tTdHJp
bmdSZWYga2V5U3lzdGVtLCBXS01lZGlhS2V5U3lzdGVtUGVybWlzc2lvbkNhbGxiYWNrUmVmIGNh
bGxiYWNrKTsKKwogLy8gRGVwcmVjYXRlZAotdHlwZWRlZiBXS1BhZ2VSZWYgKCpXS1BhZ2VDcmVh
dGVOZXdQYWdlQ2FsbGJhY2tfZGVwcmVjYXRlZEZvclVzZVdpdGhWMCkoV0tQYWdlUmVmIHBhZ2Us
IFdLRGljdGlvbmFyeVJlZiBmZWF0dXJlcywgV0tFdmVudE1vZGlmaWVycyBtb2RpZmllcnMsIFdL
RXZlbnRNb3VzZUJ1dHRvbiBtb3VzZUJ1dHRvbiwgY29uc3Qgdm9pZCAqY2xpZW50SW5mbyk7Cit0
eXBlZGVmIFdLUGFnZVJlZiAoKldLUGFnZUNyZWF0ZU5ld1BhZ2VDYWxsYmFja19kZXByZWNhdGVk
Rm9yVXNlV2l0aFYwKShXS1BhZ2VSZWYgcGFnZSwgV0tEaWN0aW9uYXJ5UmVmIGZlYXR1cmVzLCBX
S0V2ZW50TW9kaWZpZXJzIG1vZGlmaWVycywgV0tFdmVudE1vdXNlQnV0dG9uIG1vdXNlQnV0dG9u
LCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKTsKIHR5cGVkZWYgdm9pZCAgICAgICgqV0tQYWdlTW91
c2VEaWRNb3ZlT3ZlckVsZW1lbnRDYWxsYmFja19kZXByZWNhdGVkRm9yVXNlV2l0aFYwKShXS1Bh
Z2VSZWYgcGFnZSwgV0tFdmVudE1vZGlmaWVycyBtb2RpZmllcnMsIFdLVHlwZVJlZiB1c2VyRGF0
YSwgY29uc3Qgdm9pZCAqY2xpZW50SW5mbyk7CiB0eXBlZGVmIHZvaWQgKCpXS1BhZ2VNaXNzaW5n
UGx1Z2luQnV0dG9uQ2xpY2tlZENhbGxiYWNrX2RlcHJlY2F0ZWRGb3JVc2VXaXRoVjApKFdLUGFn
ZVJlZiBwYWdlLCBXS1N0cmluZ1JlZiBtaW1lVHlwZSwgV0tTdHJpbmdSZWYgdXJsLCBXS1N0cmlu
Z1JlZiBwbHVnaW5zUGFnZVVSTCwgY29uc3Qgdm9pZCogY2xpZW50SW5mbyk7CiB0eXBlZGVmIHZv
aWQgKCpXS1BhZ2VVbmF2YWlsYWJsZVBsdWdpbkJ1dHRvbkNsaWNrZWRDYWxsYmFja19kZXByZWNh
dGVkRm9yVXNlV2l0aFYxKShXS1BhZ2VSZWYgcGFnZSwgV0tQbHVnaW5VbmF2YWlsYWJpbGl0eVJl
YXNvbiBwbHVnaW5VbmF2YWlsYWJpbGl0eVJlYXNvbiwgV0tTdHJpbmdSZWYgbWltZVR5cGUsIFdL
U3RyaW5nUmVmIHVybCwgV0tTdHJpbmdSZWYgcGx1Z2luc1BhZ2VVUkwsIGNvbnN0IHZvaWQqIGNs
aWVudEluZm8pOwpAQCAtMTQ2NSw2ICsxNDY3LDEyMSBAQCB0eXBlZGVmIHN0cnVjdCBXS1BhZ2VV
SUNsaWVudFYxNSB7CiAgICAgCiB9IFdLUGFnZVVJQ2xpZW50VjE1OwogCit0eXBlZGVmIHN0cnVj
dCBXS1BhZ2VVSUNsaWVudFYxNiB7CisgICAgV0tQYWdlVUlDbGllbnRCYXNlICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiYXNlOworCisgICAgLy8gVmVy
c2lvbiAwLgorICAgIFdLUGFnZUNyZWF0ZU5ld1BhZ2VDYWxsYmFja19kZXByZWNhdGVkRm9yVXNl
V2l0aFYwICAgICAgICAgICAgICAgICAgY3JlYXRlTmV3UGFnZV9kZXByZWNhdGVkRm9yVXNlV2l0
aFYwOworICAgIFdLUGFnZVVJQ2xpZW50Q2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgc2hvd1BhZ2U7CisgICAgV0tQYWdlVUlDbGllbnRDYWxsYmFj
ayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbG9zZTsKKyAg
ICBXS1BhZ2VUYWtlRm9jdXNDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHRha2VGb2N1czsKKyAgICBXS1BhZ2VGb2N1c0NhbGxiYWNrICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvY3VzOworICAgIFdLUGFn
ZVVuZm9jdXNDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgdW5mb2N1czsKKyAgICBXS1BhZ2VSdW5KYXZhU2NyaXB0QWxlcnRDYWxsYmFja19kZXBy
ZWNhdGVkRm9yVXNlV2l0aFYwICAgICAgICAgICAgIHJ1bkphdmFTY3JpcHRBbGVydF9kZXByZWNh
dGVkRm9yVXNlV2l0aFYwOworICAgIFdLUGFnZVJ1bkphdmFTY3JpcHRDb25maXJtQ2FsbGJhY2tf
ZGVwcmVjYXRlZEZvclVzZVdpdGhWMCAgICAgICAgICAgcnVuSmF2YVNjcmlwdENvbmZpcm1fZGVw
cmVjYXRlZEZvclVzZVdpdGhWMDsKKyAgICBXS1BhZ2VSdW5KYXZhU2NyaXB0UHJvbXB0Q2FsbGJh
Y2tfZGVwcmVjYXRlZEZvclVzZVdpdGhWMCAgICAgICAgICAgIHJ1bkphdmFTY3JpcHRQcm9tcHRf
ZGVwcmVjYXRlZEZvclVzZVdpdGhWMDsKKyAgICBXS1BhZ2VTZXRTdGF0dXNUZXh0Q2FsbGJhY2sg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldFN0YXR1c1RleHQ7Cisg
ICAgV0tQYWdlTW91c2VEaWRNb3ZlT3ZlckVsZW1lbnRDYWxsYmFja19kZXByZWNhdGVkRm9yVXNl
V2l0aFYwICAgICAgICBtb3VzZURpZE1vdmVPdmVyRWxlbWVudF9kZXByZWNhdGVkRm9yVXNlV2l0
aFYwOworICAgIFdLUGFnZU1pc3NpbmdQbHVnaW5CdXR0b25DbGlja2VkQ2FsbGJhY2tfZGVwcmVj
YXRlZEZvclVzZVdpdGhWMCAgICAgbWlzc2luZ1BsdWdpbkJ1dHRvbkNsaWNrZWRfZGVwcmVjYXRl
ZEZvclVzZVdpdGhWMDsKKyAgICBXS1BhZ2VEaWROb3RIYW5kbGVLZXlFdmVudENhbGxiYWNrICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpZE5vdEhhbmRsZUtleUV2ZW50OworICAg
IFdLUGFnZURpZE5vdEhhbmRsZVdoZWVsRXZlbnRDYWxsYmFjayAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgZGlkTm90SGFuZGxlV2hlZWxFdmVudDsKKyAgICBXS1BhZ2VHZXRUb29sYmFy
c0FyZVZpc2libGVDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvb2xi
YXJzQXJlVmlzaWJsZTsKKyAgICBXS1BhZ2VTZXRUb29sYmFyc0FyZVZpc2libGVDYWxsYmFjayAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldFRvb2xiYXJzQXJlVmlzaWJsZTsKKyAg
ICBXS1BhZ2VHZXRNZW51QmFySXNWaXNpYmxlQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIG1lbnVCYXJJc1Zpc2libGU7CisgICAgV0tQYWdlU2V0TWVudUJhcklzVmlz
aWJsZUNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRNZW51QmFy
SXNWaXNpYmxlOworICAgIFdLUGFnZUdldFN0YXR1c0JhcklzVmlzaWJsZUNhbGxiYWNrICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdHVzQmFySXNWaXNpYmxlOworICAgIFdLUGFn
ZVNldFN0YXR1c0JhcklzVmlzaWJsZUNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgc2V0U3RhdHVzQmFySXNWaXNpYmxlOworICAgIFdLUGFnZUdldElzUmVzaXphYmxlQ2Fs
bGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXNSZXNpemFibGU7
CisgICAgV0tQYWdlU2V0SXNSZXNpemFibGVDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBzZXRJc1Jlc2l6YWJsZTsKKyAgICBXS1BhZ2VHZXRXaW5kb3dGcmFt
ZUNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdldFdpbmRv
d0ZyYW1lOworICAgIFdLUGFnZVNldFdpbmRvd0ZyYW1lQ2FsbGJhY2sgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgc2V0V2luZG93RnJhbWU7CisgICAgV0tQYWdlUnVuQmVm
b3JlVW5sb2FkQ29uZmlybVBhbmVsQ2FsbGJhY2tfZGVwcmVjYXRlZEZvclVzZVdpdGhWNiAgICBy
dW5CZWZvcmVVbmxvYWRDb25maXJtUGFuZWxfZGVwcmVjYXRlZEZvclVzZVdpdGhWNjsKKyAgICBX
S1BhZ2VVSUNsaWVudENhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGRpZERyYXc7CisgICAgV0tQYWdlVUlDbGllbnRDYWxsYmFjayAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYWdlRGlkU2Nyb2xsOworICAgIFdL
UGFnZUV4Y2VlZGVkRGF0YWJhc2VRdW90YUNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgZXhjZWVkZWREYXRhYmFzZVF1b3RhOworICAgIFdLUGFnZVJ1bk9wZW5QYW5lbENh
bGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcnVuT3BlblBh
bmVsOworICAgIFdLUGFnZURlY2lkZVBvbGljeUZvckdlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVl
c3RDYWxsYmFjayAgICAgICAgICAgZGVjaWRlUG9saWN5Rm9yR2VvbG9jYXRpb25QZXJtaXNzaW9u
UmVxdWVzdDsKKyAgICBXS1BhZ2VIZWFkZXJIZWlnaHRDYWxsYmFjayAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGhlYWRlckhlaWdodDsKKyAgICBXS1BhZ2VGb290ZXJI
ZWlnaHRDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZv
b3RlckhlaWdodDsKKyAgICBXS1BhZ2VEcmF3SGVhZGVyQ2FsbGJhY2sgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRyYXdIZWFkZXI7CisgICAgV0tQYWdlRHJhd0Zv
b3RlckNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBk
cmF3Rm9vdGVyOworICAgIFdLUGFnZVByaW50RnJhbWVDYWxsYmFjayAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJpbnRGcmFtZTsKKyAgICBXS1BhZ2VVSUNsaWVu
dENhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJ1
bk1vZGFsOworICAgIHZvaWQqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgdW51c2VkMTsgLy8gVXNlZCB0byBiZSBkaWRDb21wbGV0
ZVJ1YmJlckJhbmRGb3JNYWluRnJhbWUKKyAgICBXS1BhZ2VTYXZlRGF0YVRvRmlsZUluRG93bmxv
YWRzRm9sZGVyQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgIHNhdmVEYXRhVG9GaWxlSW5E
b3dubG9hZHNGb2xkZXI7CisgICAgdm9pZCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaG91bGRJbnRlcnJ1cHRKYXZhU2NyaXB0
X3VuYXZhaWxhYmxlOworCisgICAgLy8gVmVyc2lvbiAxLgorICAgIFdLUGFnZUNyZWF0ZU5ld1Bh
Z2VDYWxsYmFja19kZXByZWNhdGVkRm9yVXNlV2l0aFYxICAgICAgICAgICAgICAgICAgY3JlYXRl
TmV3UGFnZV9kZXByZWNhdGVkRm9yVXNlV2l0aFYxOworICAgIFdLUGFnZU1vdXNlRGlkTW92ZU92
ZXJFbGVtZW50Q2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbW91c2VEaWRN
b3ZlT3ZlckVsZW1lbnQ7CisgICAgV0tQYWdlRGVjaWRlUG9saWN5Rm9yTm90aWZpY2F0aW9uUGVy
bWlzc2lvblJlcXVlc3RDYWxsYmFjayAgICAgICAgICBkZWNpZGVQb2xpY3lGb3JOb3RpZmljYXRp
b25QZXJtaXNzaW9uUmVxdWVzdDsKKyAgICBXS1BhZ2VVbmF2YWlsYWJsZVBsdWdpbkJ1dHRvbkNs
aWNrZWRDYWxsYmFja19kZXByZWNhdGVkRm9yVXNlV2l0aFYxIHVuYXZhaWxhYmxlUGx1Z2luQnV0
dG9uQ2xpY2tlZF9kZXByZWNhdGVkRm9yVXNlV2l0aFYxOworCisgICAgLy8gVmVyc2lvbiAyLgor
ICAgIFdLUGFnZVNob3dDb2xvclBpY2tlckNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgc2hvd0NvbG9yUGlja2VyOworICAgIFdLUGFnZUhpZGVDb2xvclBpY2tl
ckNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGlkZUNvbG9y
UGlja2VyOworICAgIFdLUGFnZVVuYXZhaWxhYmxlUGx1Z2luQnV0dG9uQ2xpY2tlZENhbGxiYWNr
ICAgICAgICAgICAgICAgICAgICAgICAgdW5hdmFpbGFibGVQbHVnaW5CdXR0b25DbGlja2VkOwor
CisgICAgLy8gVmVyc2lvbiAzLgorICAgIFdLUGFnZVBpbm5lZFN0YXRlRGlkQ2hhbmdlQ2FsbGJh
Y2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGlubmVkU3RhdGVEaWRDaGFuZ2U7
CisKKyAgICAvLyBWZXJzaW9uIDQuCisgICAgdm9pZCogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnVzZWQyOyAvLyBVc2VkIHRv
IGJlIGRpZEJlZ2luVHJhY2tpbmdQb3RlbnRpYWxMb25nTW91c2VQcmVzcy4KKyAgICB2b2lkKiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHVudXNlZDM7IC8vIFVzZWQgdG8gYmUgZGlkUmVjb2duaXplTG9uZ01vdXNlUHJlc3MuCisg
ICAgdm9pZCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB1bnVzZWQ0OyAvLyBVc2VkIHRvIGJlIGRpZENhbmNlbFRyYWNraW5nUG90
ZW50aWFsTG9uZ01vdXNlUHJlc3MuCisgICAgV0tQYWdlSXNQbGF5aW5nQXVkaW9EaWRDaGFuZ2VD
YWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpc1BsYXlpbmdBdWRpb0RpZENo
YW5nZTsKKworICAgIC8vIFZlcnNpb24gNS4KKyAgICBXS1BhZ2VEZWNpZGVQb2xpY3lGb3JVc2Vy
TWVkaWFQZXJtaXNzaW9uUmVxdWVzdENhbGxiYWNrICAgICAgICAgICAgIGRlY2lkZVBvbGljeUZv
clVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0OworICAgIFdLUGFnZURpZENsaWNrQXV0b0ZpbGxC
dXR0b25DYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlkQ2xpY2tBdXRv
RmlsbEJ1dHRvbjsKKyAgICBXS1BhZ2VSdW5KYXZhU2NyaXB0QWxlcnRDYWxsYmFja19kZXByZWNh
dGVkRm9yVXNlV2l0aFY1ICAgICAgICAgICAgIHJ1bkphdmFTY3JpcHRBbGVydF9kZXByZWNhdGVk
Rm9yVXNlV2l0aFY1OworICAgIFdLUGFnZVJ1bkphdmFTY3JpcHRDb25maXJtQ2FsbGJhY2tfZGVw
cmVjYXRlZEZvclVzZVdpdGhWNSAgICAgICAgICAgcnVuSmF2YVNjcmlwdENvbmZpcm1fZGVwcmVj
YXRlZEZvclVzZVdpdGhWNTsKKyAgICBXS1BhZ2VSdW5KYXZhU2NyaXB0UHJvbXB0Q2FsbGJhY2tf
ZGVwcmVjYXRlZEZvclVzZVdpdGhWNSAgICAgICAgICAgIHJ1bkphdmFTY3JpcHRQcm9tcHRfZGVw
cmVjYXRlZEZvclVzZVdpdGhWNTsKKyAgICB2b2lkKiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVudXNlZDU7IC8vIFVzZWQgdG8g
YmUgbWVkaWFTZXNzaW9uTWV0YWRhdGFEaWRDaGFuZ2UuCisKKyAgICAvLyBWZXJzaW9uIDYuCisg
ICAgV0tQYWdlQ3JlYXRlTmV3UGFnZUNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBjcmVhdGVOZXdQYWdlOworICAgIFdLUGFnZVJ1bkphdmFTY3JpcHRBbGVy
dENhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcnVuSmF2YVNjcmlw
dEFsZXJ0OworICAgIFdLUGFnZVJ1bkphdmFTY3JpcHRDb25maXJtQ2FsbGJhY2sgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgcnVuSmF2YVNjcmlwdENvbmZpcm07CisgICAgV0tQYWdl
UnVuSmF2YVNjcmlwdFByb21wdENhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBydW5KYXZhU2NyaXB0UHJvbXB0OworICAgIFdLQ2hlY2tVc2VyTWVkaWFQZXJtaXNzaW9u
Q2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hlY2tVc2VyTWVkaWFQ
ZXJtaXNzaW9uRm9yT3JpZ2luOworCisgICAgLy8gVmVyc2lvbiA3LgorICAgIFdLUGFnZVJ1bkJl
Zm9yZVVubG9hZENvbmZpcm1QYW5lbENhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAg
cnVuQmVmb3JlVW5sb2FkQ29uZmlybVBhbmVsOworICAgIFdLRnVsbHNjcmVlbk1heVJldHVyblRv
SW5saW5lQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZnVsbHNjcmVlbk1h
eVJldHVyblRvSW5saW5lOworCisgICAgLy8gVmVyc2lvbiA4LgorICAgIFdLUmVxdWVzdFBvaW50
ZXJMb2NrQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVx
dWVzdFBvaW50ZXJMb2NrOworICAgIFdLRGlkTG9zZVBvaW50ZXJMb2NrQ2FsbGJhY2sgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlkTG9zZVBvaW50ZXJMb2NrOworCisg
ICAgLy8gVmVyc2lvbiA5LgorICAgIFdLSGFuZGxlQXV0b3BsYXlFdmVudENhbGxiYWNrICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlQXV0b3BsYXlFdmVudDsKKwor
ICAgIC8vIFZlcnNpb24gMTAuCisgICAgV0tIYXNWaWRlb0luUGljdHVyZUluUGljdHVyZURpZENo
YW5nZUNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICBoYXNWaWRlb0luUGljdHVyZUluUGlj
dHVyZURpZENoYW5nZTsKKyAgICBXS0RpZEV4Y2VlZEJhY2tncm91bmRSZXNvdXJjZUxpbWl0V2hp
bGVJbkZvcmVncm91bmRDYWxsYmFjayAgICAgICAgIGRpZEV4Y2VlZEJhY2tncm91bmRSZXNvdXJj
ZUxpbWl0V2hpbGVJbkZvcmVncm91bmQ7CisKKyAgICAvLyBWZXJzaW9uIDExLgorICAgIFdLUGFn
ZURpZFJlc2lnbklucHV0RWxlbWVudFN0cm9uZ1Bhc3N3b3JkQXBwZWFyYW5jZUNhbGxiYWNrICAg
ICAgICAgZGlkUmVzaWduSW5wdXRFbGVtZW50U3Ryb25nUGFzc3dvcmRBcHBlYXJhbmNlOworCisg
ICAgLy8gVmVyc2lvbiAxMi4KKyAgICBXS1BhZ2VSZXF1ZXN0U3RvcmFnZUFjY2Vzc0NvbmZpcm1D
YWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3RTdG9yYWdlQWNjZXNzQ29u
ZmlybTsKKworICAgIC8vIFZlcnNpb24gMTMuCisgICAgV0tQYWdlU2hvdWxkQWxsb3dEZXZpY2VP
cmllbnRhdGlvbkFuZE1vdGlvbkFjY2Vzc0NhbGxiYWNrICAgICAgICAgICBzaG91bGRBbGxvd0Rl
dmljZU9yaWVudGF0aW9uQW5kTW90aW9uQWNjZXNzOworCisgICAgLy8gVmVyc2lvbiAxNC4KKyAg
ICBXS1BhZ2VSdW5XZWJBdXRoZW50aWNhdGlvblBhbmVsQ2FsbGJhY2sgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHJ1bldlYkF1dGhlbnRpY2F0aW9uUGFuZWw7CisKKyAgICAvLyBWZXJzaW9u
IDE1LgorICAgIFdLUGFnZURlY2lkZVBvbGljeUZvclNwZWVjaFJlY29nbml0aW9uUGVybWlzc2lv
blJlcXVlc3RDYWxsYmFjayAgICAgZGVjaWRlUG9saWN5Rm9yU3BlZWNoUmVjb2duaXRpb25QZXJt
aXNzaW9uUmVxdWVzdDsKKworICAgIC8vIFZlcnNpb24gMTYuCisgICAgV0tQYWdlRGVjaWRlUG9s
aWN5Rm9yTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdENhbGxiYWNrICAgICAgICBkZWNp
ZGVQb2xpY3lGb3JNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0OworCit9IFdLUGFnZVVJ
Q2xpZW50VjE2OworCisKICNpZmRlZiBfX2NwbHVzcGx1cwogfQogI2VuZGlmCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRNZWRpYUtleVN5c3RlbVBl
cm1pc3Npb25SZXF1ZXN0LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dl
YktpdE1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3QuY3BwCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjAyYWIw
ZmEzY2Y3MjFiMDhhYWU3NDZkZDllZDYyYTZmZWZhMmVlYjgKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRNZWRpYUtleVN5c3RlbVBlcm1p
c3Npb25SZXF1ZXN0LmNwcApAQCAtMCwwICsxLDEyNCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAyMSBJZ2FsaWEgUy5MLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5
b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVy
bXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxp
c2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24g
MiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4K
KyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3
aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVu
IHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogTGlicmFyeSBHZW5lcmFs
IFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZl
IHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5z
ZQorICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4g
IElmIG5vdCwgd3JpdGUgdG8KKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4s
IDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgKiBCb3N0b24sIE1BIDAyMTEwLTEz
MDEsIFVTQS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV2ViS2l0TWVk
aWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdC5oIgorCisjaW5jbHVkZSAiTWVkaWFLZXlTeXN0
ZW1QZXJtaXNzaW9uUmVxdWVzdC5oIgorI2luY2x1ZGUgIldlYktpdE1lZGlhS2V5U3lzdGVtUGVy
bWlzc2lvblJlcXVlc3RQcml2YXRlLmgiCisjaW5jbHVkZSAiV2ViS2l0UGVybWlzc2lvblJlcXVl
c3QuaCIKKyNpbmNsdWRlIDx3dGYvZ2xpYi9XVEZHVHlwZS5oPgorCit1c2luZyBuYW1lc3BhY2Ug
V2ViS2l0OworCisvKioKKyAqIFNFQ1RJT046IFdlYktpdE1lZGlhS2V5U3lzdGVtUGVybWlzc2lv
blJlcXVlc3QKKyAqIEBTaG9ydF9kZXNjcmlwdGlvbjogQSBwZXJtaXNzaW9uIHJlcXVlc3QgZm9y
IHVzaW5nIGFuIEVNRSBDb250ZW50IERlY3J5cHRpb24gTW9kdWxlCisgKiBAVGl0bGU6IFdlYktp
dE1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3QKKyAqIEBTZWVfYWxzbzogI1dlYktpdFBl
cm1pc3Npb25SZXF1ZXN0LCAjV2ViS2l0V2ViVmlldworICoKKyAqIFdlYktpdE1lZGlhS2V5U3lz
dGVtUGVybWlzc2lvblJlcXVlc3QgcmVwcmVzZW50cyBhIHJlcXVlc3QgZm9yIHBlcm1pc3Npb24g
dG8gZGVjaWRlIHdoZXRoZXIKKyAqIFdlYktpdCBzaG91bGQgdXNlIHRoZSBnaXZlbiBDRE0gdG8g
YWNjZXNzIHByb3RlY3RlZCBtZWRpYSB3aGVuIHJlcXVlc3RlZCB0aHJvdWdoIHRoZQorICogTWVk
aWFLZXlTeXN0ZW0gQVBJLgorICoKKyAqIFdoZW4gYSBXZWJLaXRNZWRpYUtleVN5c3RlbVBlcm1p
c3Npb25SZXF1ZXN0IGlzIG5vdCBoYW5kbGVkIGJ5IHRoZSB1c2VyLAorICogaXQgaXMgZGVuaWVk
IGJ5IGRlZmF1bHQuCisgKgorICogV2hlbiBoYW5kbGluZyB0aGlzIHBlcm1pc3Npb24gcmVxdWVz
dCB0aGUgYXBwbGljYXRpb24gbWF5IHBlcmZvcm0gYWRkaXRpb25hbCBpbnN0YWxsYXRpb24gb2Yg
dGhlCisgKiByZXF1ZXN0ZWQgQ0RNLCB1bmxlc3MgaXQgaXMgYWxyZWFkeSBwcmVzZW50IG9uIHRo
ZSBob3N0IHN5c3RlbS4KKyAqLworCitzdGF0aWMgdm9pZCB3ZWJraXRfcGVybWlzc2lvbl9yZXF1
ZXN0X2ludGVyZmFjZV9pbml0KFdlYktpdFBlcm1pc3Npb25SZXF1ZXN0SWZhY2UqKTsKKworc3Ry
dWN0IF9XZWJLaXRNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0UHJpdmF0ZSB7CisgICAg
UmVmUHRyPE1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3Q+IHJlcXVlc3Q7CisgICAgYm9v
bCBtYWRlRGVjaXNpb247Cit9OworCitXRUJLSVRfREVGSU5FX1RZUEVfV0lUSF9DT0RFKAorICAg
IFdlYktpdE1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3QsIHdlYmtpdF9tZWRpYV9rZXlf
c3lzdGVtX3Blcm1pc3Npb25fcmVxdWVzdCwgR19UWVBFX09CSkVDVCwKKyAgICBHX0lNUExFTUVO
VF9JTlRFUkZBQ0UoV0VCS0lUX1RZUEVfUEVSTUlTU0lPTl9SRVFVRVNULCB3ZWJraXRfcGVybWlz
c2lvbl9yZXF1ZXN0X2ludGVyZmFjZV9pbml0KSkKKworc3RhdGljIHZvaWQgd2Via2l0TWVkaWFL
ZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdEFsbG93KFdlYktpdFBlcm1pc3Npb25SZXF1ZXN0KiBy
ZXF1ZXN0KQoreworICAgIEFTU0VSVChXRUJLSVRfSVNfTUVESUFfS0VZX1NZU1RFTV9QRVJNSVNT
SU9OX1JFUVVFU1QocmVxdWVzdCkpOworCisgICAgV2ViS2l0TWVkaWFLZXlTeXN0ZW1QZXJtaXNz
aW9uUmVxdWVzdFByaXZhdGUqIHByaXYgPSBXRUJLSVRfTUVESUFfS0VZX1NZU1RFTV9QRVJNSVNT
SU9OX1JFUVVFU1QocmVxdWVzdCktPnByaXY7CisKKyAgICAvLyBPbmx5IG9uZSBkZWNpc2lvbiBh
dCBhIHRpbWUuCisgICAgaWYgKHByaXYtPm1hZGVEZWNpc2lvbikKKyAgICAgICAgcmV0dXJuOwor
CisgICAgcHJpdi0+cmVxdWVzdC0+Y29tcGxldGUodHJ1ZSk7CisgICAgcHJpdi0+bWFkZURlY2lz
aW9uID0gdHJ1ZTsKK30KKworc3RhdGljIHZvaWQgd2Via2l0TWVkaWFLZXlTeXN0ZW1QZXJtaXNz
aW9uUmVxdWVzdERlbnkoV2ViS2l0UGVybWlzc2lvblJlcXVlc3QqIHJlcXVlc3QpCit7CisgICAg
QVNTRVJUKFdFQktJVF9JU19NRURJQV9LRVlfU1lTVEVNX1BFUk1JU1NJT05fUkVRVUVTVChyZXF1
ZXN0KSk7CisKKyAgICBXZWJLaXRNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0UHJpdmF0
ZSogcHJpdiA9IFdFQktJVF9NRURJQV9LRVlfU1lTVEVNX1BFUk1JU1NJT05fUkVRVUVTVChyZXF1
ZXN0KS0+cHJpdjsKKworICAgIC8vIE9ubHkgb25lIGRlY2lzaW9uIGF0IGEgdGltZS4KKyAgICBp
ZiAocHJpdi0+bWFkZURlY2lzaW9uKQorICAgICAgICByZXR1cm47CisKKyAgICBwcml2LT5yZXF1
ZXN0LT5jb21wbGV0ZShmYWxzZSk7CisgICAgcHJpdi0+bWFkZURlY2lzaW9uID0gdHJ1ZTsKK30K
Kworc3RhdGljIHZvaWQgd2Via2l0X3Blcm1pc3Npb25fcmVxdWVzdF9pbnRlcmZhY2VfaW5pdChX
ZWJLaXRQZXJtaXNzaW9uUmVxdWVzdElmYWNlKiBpZmFjZSkKK3sKKyAgICBpZmFjZS0+YWxsb3cg
PSB3ZWJraXRNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0QWxsb3c7CisgICAgaWZhY2Ut
PmRlbnkgPSB3ZWJraXRNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0RGVueTsKK30KKwor
c3RhdGljIHZvaWQgd2Via2l0TWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdERpc3Bvc2Uo
R09iamVjdCogb2JqZWN0KQoreworICAgIC8vIERlZmF1bHQgYmVoYXZpb3VyIHdoZW4gbm8gZGVj
aXNpb24gaGFzIGJlZW4gbWFkZSBpcyBkZW55aW5nIHRoZSByZXF1ZXN0LgorICAgIHdlYmtpdE1l
ZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3REZW55KFdFQktJVF9QRVJNSVNTSU9OX1JFUVVF
U1Qob2JqZWN0KSk7CisgICAgR19PQkpFQ1RfQ0xBU1Mod2Via2l0X21lZGlhX2tleV9zeXN0ZW1f
cGVybWlzc2lvbl9yZXF1ZXN0X3BhcmVudF9jbGFzcyktPmRpc3Bvc2Uob2JqZWN0KTsKK30KKwor
c3RhdGljIHZvaWQgd2Via2l0X21lZGlhX2tleV9zeXN0ZW1fcGVybWlzc2lvbl9yZXF1ZXN0X2Ns
YXNzX2luaXQoV2ViS2l0TWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdENsYXNzKiBrbGFz
cykKK3sKKyAgICBHT2JqZWN0Q2xhc3MqIG9iamVjdENsYXNzID0gR19PQkpFQ1RfQ0xBU1Moa2xh
c3MpOworICAgIG9iamVjdENsYXNzLT5kaXNwb3NlID0gd2Via2l0TWVkaWFLZXlTeXN0ZW1QZXJt
aXNzaW9uUmVxdWVzdERpc3Bvc2U7Cit9CisKK1dlYktpdE1lZGlhS2V5U3lzdGVtUGVybWlzc2lv
blJlcXVlc3QqIHdlYmtpdE1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RDcmVhdGUoTWVk
aWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdCogcmVxdWVzdCkKK3sKKyAgICBXZWJLaXRNZWRp
YUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0KiBwZXJtaXNzaW9uUmVxdWVzdCA9IFdFQktJVF9N
RURJQV9LRVlfU1lTVEVNX1BFUk1JU1NJT05fUkVRVUVTVChnX29iamVjdF9uZXcoV0VCS0lUX1RZ
UEVfTUVESUFfS0VZX1NZU1RFTV9QRVJNSVNTSU9OX1JFUVVFU1QsIE5VTEwpKTsKKyAgICBwZXJt
aXNzaW9uUmVxdWVzdC0+cHJpdi0+cmVxdWVzdCA9IHJlcXVlc3Q7CisgICAgcmV0dXJuIHBlcm1p
c3Npb25SZXF1ZXN0OworfQorCisvKioKKyAqIHdlYmtpdF9tZWRpYV9rZXlfc3lzdGVtX3Blcm1p
c3Npb25fZ2V0X25hbWU6CisgKiBAcmVxdWVzdDogYSAjV2ViS2l0TWVkaWFLZXlTeXN0ZW1QZXJt
aXNzaW9uUmVxdWVzdAorICoKKyAqIFJldHVybnM6IFRoZSBuYW1lIG9mIHRoZSBrZXkgc3lzdGVt
IGZvciB3aGljaCBhY2Nlc3MgcGVybWlzc2lvbiBpcyBiZWluZyByZXF1ZXN0ZWQuCisgKgorICog
U2luY2U6IDIuMzQKKyAqLworY29uc3QgZ2NoYXIqCit3ZWJraXRfbWVkaWFfa2V5X3N5c3RlbV9w
ZXJtaXNzaW9uX2dldF9uYW1lKFdlYktpdE1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3Qq
IHJlcXVlc3QpCit7CisgICAgcmV0dXJuIHJlcXVlc3QtPnByaXYtPnJlcXVlc3QtPmtleVN5c3Rl
bSgpLnV0ZjgoKS5kYXRhKCk7Cit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvZ2xpYi9XZWJLaXRNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0UHJpdmF0ZS5o
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0TWVkaWFLZXlTeXN0ZW1Q
ZXJtaXNzaW9uUmVxdWVzdFByaXZhdGUuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43ZTM2ZTRlYmNlMWFlZThjYTgz
YjBmM2NiOTkxM2I3M2IwNTYwNDk5Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0TWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdFBy
aXZhdGUuaApAQCAtMCwwICsxLDI1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIElnYWxp
YSBTLkwuCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVk
aXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUg
R05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRo
ZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogdmVyc2lvbiAyIG9mIHRoZSBM
aWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRo
aXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNl
ZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxp
ZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExp
Y2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQg
YSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9u
ZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3
cml0ZSB0bworICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmts
aW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgor
ICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAiTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9u
UmVxdWVzdC5oIgorI2luY2x1ZGUgIldlYktpdE1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVl
c3QuaCIKKworV2ViS2l0TWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdCogd2Via2l0TWVk
aWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdENyZWF0ZShXZWJLaXQ6Ok1lZGlhS2V5U3lzdGVt
UGVybWlzc2lvblJlcXVlc3QqKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9nbGliL1dlYktpdFVJQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9nbGliL1dlYktpdFVJQ2xpZW50LmNwcAppbmRleCAyY2ViMmI0ZjQ5ZjQwOWJiZTZlNjgxMDEx
NWUzNmQwYzg0ZjgzYjVkLi5mYzY5ZDY0ODEwNGFmMzFiZWIwYzBmMDU1YTg3MmM2MTk3MGI3NTBl
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRVSUNs
aWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0VUlD
bGllbnQuY3BwCkBAIC0yNSw2ICsyNSw3IEBACiAjaW5jbHVkZSAiV2ViS2l0RGV2aWNlSW5mb1Bl
cm1pc3Npb25SZXF1ZXN0UHJpdmF0ZS5oIgogI2luY2x1ZGUgIldlYktpdEZpbGVDaG9vc2VyUmVx
dWVzdFByaXZhdGUuaCIKICNpbmNsdWRlICJXZWJLaXRHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1
ZXN0UHJpdmF0ZS5oIgorI2luY2x1ZGUgIldlYktpdE1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJl
cXVlc3RQcml2YXRlLmgiCiAjaW5jbHVkZSAiV2ViS2l0TmF2aWdhdGlvbkFjdGlvblByaXZhdGUu
aCIKICNpbmNsdWRlICJXZWJLaXROb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdFByaXZhdGUu
aCIKICNpbmNsdWRlICJXZWJLaXRQb2ludGVyTG9ja1Blcm1pc3Npb25SZXF1ZXN0UHJpdmF0ZS5o
IgpAQCAtMjgzLDYgKzI4NCwxMiBAQCBwcml2YXRlOgogICAgICAgICB3ZWJraXRXZWJWaWV3TWFr
ZVBlcm1pc3Npb25SZXF1ZXN0KG1fd2ViVmlldywgV0VCS0lUX1BFUk1JU1NJT05fUkVRVUVTVChn
ZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0LmdldCgpKSk7CiAgICAgfQogCisgICAgdm9pZCBk
ZWNpZGVQb2xpY3lGb3JNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0KFdlYlBhZ2VQcm94
eSYsIEFQSTo6U2VjdXJpdHlPcmlnaW4mIHRvcExldmVsRG9jdW1lbnRPcmlnaW4sIGNvbnN0IFdU
Rjo6U3RyaW5nJiBrZXlTeXN0ZW0sIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYgY29t
cGxldGlvbkhhbmRsZXIpIGZpbmFsCisgICAgeworICAgICAgICBhdXRvIHBlcm1pc3Npb25SZXF1
ZXN0ID0gYWRvcHRHUmVmKHdlYmtpdE1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RDcmVh
dGUoTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdDo6Y3JlYXRlKGtleVN5c3RlbSwgc3Rk
OjpleGNoYW5nZShjb21wbGV0aW9uSGFuZGxlciwgbnVsbHB0cikpLnB0cigpKSk7CisgICAgICAg
IHdlYmtpdFdlYlZpZXdNYWtlUGVybWlzc2lvblJlcXVlc3QobV93ZWJWaWV3LCBXRUJLSVRfUEVS
TUlTU0lPTl9SRVFVRVNUKHBlcm1pc3Npb25SZXF1ZXN0LmdldCgpKSk7CisgICAgfQorCiAgICAg
dm9pZCBkZWNpZGVQb2xpY3lGb3JVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdChXZWJQYWdlUHJv
eHkmLCBXZWJGcmFtZVByb3h5JiwgQVBJOjpTZWN1cml0eU9yaWdpbiYgdXNlck1lZGlhRG9jdW1l
bnRPcmlnaW4sIEFQSTo6U2VjdXJpdHlPcmlnaW4mIHRvcExldmVsRG9jdW1lbnRPcmlnaW4sIFVz
ZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkmIHBlcm1pc3Npb25SZXF1ZXN0KSBmaW5hbAog
ICAgIHsKICAgICAgICAgR1JlZlB0cjxXZWJLaXRVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdD4g
dXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QgPSBhZG9wdEdSZWYod2Via2l0VXNlck1lZGlhUGVy
bWlzc2lvblJlcXVlc3RDcmVhdGUocGVybWlzc2lvblJlcXVlc3QsIHVzZXJNZWRpYURvY3VtZW50
T3JpZ2luLCB0b3BMZXZlbERvY3VtZW50T3JpZ2luKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdEF1dG9jbGVhbnVwcy5oIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRBdXRvY2xlYW51cHMuaAppbmRleCA1ODhmNGMxNmYz
MzUyM2U5MWNiZTM4ZmNjMGY2YTlhNThkMGM3Y2E2Li43ZTUyYmZhOGI3YzRmODdhODBkZmYxYjIz
NzEzYmJmNTFiZmI4MDRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
Z3RrL1dlYktpdEF1dG9jbGVhbnVwcy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9ndGsvV2ViS2l0QXV0b2NsZWFudXBzLmgKQEAgLTQ1LDYgKzQ1LDcgQEAgR19ERUZJTkVfQVVU
T1BUUl9DTEVBTlVQX0ZVTkMgKFdlYktpdEdlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3QsIGdf
b2JqZWN0X3VucmUKIEdfREVGSU5FX0FVVE9QVFJfQ0xFQU5VUF9GVU5DIChXZWJLaXRIaXRUZXN0
UmVzdWx0LCBnX29iamVjdF91bnJlZikKIEdfREVGSU5FX0FVVE9QVFJfQ0xFQU5VUF9GVU5DIChX
ZWJLaXRJbnB1dE1ldGhvZENvbnRleHQsIGdfb2JqZWN0X3VucmVmKQogR19ERUZJTkVfQVVUT1BU
Ul9DTEVBTlVQX0ZVTkMgKFdlYktpdEluc3RhbGxNaXNzaW5nTWVkaWFQbHVnaW5zUGVybWlzc2lv
blJlcXVlc3QsIGdfb2JqZWN0X3VucmVmKQorR19ERUZJTkVfQVVUT1BUUl9DTEVBTlVQX0ZVTkMg
KFdlYktpdE1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3QsIGdfb2JqZWN0X3VucmVmKQog
R19ERUZJTkVfQVVUT1BUUl9DTEVBTlVQX0ZVTkMgKFdlYktpdE5hdmlnYXRpb25Qb2xpY3lEZWNp
c2lvbiwgZ19vYmplY3RfdW5yZWYpCiBHX0RFRklORV9BVVRPUFRSX0NMRUFOVVBfRlVOQyAoV2Vi
S2l0Tm90aWZpY2F0aW9uLCBnX29iamVjdF91bnJlZikKIEdfREVGSU5FX0FVVE9QVFJfQ0xFQU5V
UF9GVU5DIChXZWJLaXROb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdCwgZ19vYmplY3RfdW5y
ZWYpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdE1l
ZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3QuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9ndGsvV2ViS2l0TWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdC5oCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjQxZjE0OTMzNmY0NTQ4MzY5MGI2NWQ4M2I4ZDYyMWViOWY0YWYzZDkKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdE1lZGlhS2V5U3lz
dGVtUGVybWlzc2lvblJlcXVlc3QuaApAQCAtMCwwICsxLDY3IEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDIxIElnYWxpYSBTLkwuCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdh
cmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRo
ZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMg
cHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogdmVy
c2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJz
aW9uLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0
IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0
IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiBMaWJyYXJ5IEdl
bmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxk
IGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBM
aWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcu
TElCLiAgSWYgbm90LCB3cml0ZSB0bworICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwg
SW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAqIEJvc3RvbiwgTUEgMDIx
MTAtMTMwMSwgVVNBLgorICovCisKKyNpZiAhZGVmaW5lZChfX1dFQktJVDJfSF9JTlNJREVfXykg
JiYgIWRlZmluZWQoV0VCS0lUMl9DT01QSUxBVElPTikKKyNlcnJvciAiT25seSA8d2Via2l0Mi93
ZWJraXQyLmg+IGNhbiBiZSBpbmNsdWRlZCBkaXJlY3RseS4iCisjZW5kaWYKKworI2lmbmRlZiBX
ZWJLaXRNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0X2gKKyNkZWZpbmUgV2ViS2l0TWVk
aWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdF9oCisKKyNpbmNsdWRlIDxnbGliLW9iamVjdC5o
PgorI2luY2x1ZGUgPHdlYmtpdDIvV2ViS2l0RGVmaW5lcy5oPgorCitHX0JFR0lOX0RFQ0xTCisK
KyNkZWZpbmUgV0VCS0lUX1RZUEVfTUVESUFfS0VZX1NZU1RFTV9QRVJNSVNTSU9OX1JFUVVFU1Qg
ICAgICAgICAgICAod2Via2l0X21lZGlhX2tleV9zeXN0ZW1fcGVybWlzc2lvbl9yZXF1ZXN0X2dl
dF90eXBlKCkpCisjZGVmaW5lIFdFQktJVF9NRURJQV9LRVlfU1lTVEVNX1BFUk1JU1NJT05fUkVR
VUVTVChvYmopICAgICAgICAgICAgKEdfVFlQRV9DSEVDS19JTlNUQU5DRV9DQVNUKChvYmopLCBX
RUJLSVRfVFlQRV9NRURJQV9LRVlfU1lTVEVNX1BFUk1JU1NJT05fUkVRVUVTVCwgV2ViS2l0TWVk
aWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdCkpCisjZGVmaW5lIFdFQktJVF9NRURJQV9LRVlf
U1lTVEVNX1BFUk1JU1NJT05fUkVRVUVTVF9DTEFTUyhrbGFzcykgICAgKEdfVFlQRV9DSEVDS19D
TEFTU19DQVNUKChrbGFzcyksICBXRUJLSVRfVFlQRV9NRURJQV9LRVlfU1lTVEVNX1BFUk1JU1NJ
T05fUkVRVUVTVCwgV2ViS2l0TWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdENsYXNzKSkK
KyNkZWZpbmUgV0VCS0lUX0lTX01FRElBX0tFWV9TWVNURU1fUEVSTUlTU0lPTl9SRVFVRVNUKG9i
aikgICAgICAgICAoR19UWVBFX0NIRUNLX0lOU1RBTkNFX1RZUEUoKG9iaiksIFdFQktJVF9UWVBF
X01FRElBX0tFWV9TWVNURU1fUEVSTUlTU0lPTl9SRVFVRVNUKSkKKyNkZWZpbmUgV0VCS0lUX0lT
X01FRElBX0tFWV9TWVNURU1fUEVSTUlTU0lPTl9SRVFVRVNUX0NMQVNTKGtsYXNzKSAoR19UWVBF
X0NIRUNLX0NMQVNTX1RZUEUoKGtsYXNzKSwgIFdFQktJVF9UWVBFX01FRElBX0tFWV9TWVNURU1f
UEVSTUlTU0lPTl9SRVFVRVNUKSkKKyNkZWZpbmUgV0VCS0lUX01FRElBX0tFWV9TWVNURU1fUEVS
TUlTU0lPTl9SRVFVRVNUX0dFVF9DTEFTUyhvYmopICAoR19UWVBFX0lOU1RBTkNFX0dFVF9DTEFT
Uygob2JqKSwgIFdFQktJVF9UWVBFX01FRElBX0tFWV9TWVNURU1fUEVSTUlTU0lPTl9SRVFVRVNU
LCBXZWJLaXRNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0Q2xhc3MpKQorCit0eXBlZGVm
IHN0cnVjdCBfV2ViS2l0TWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdCAgICAgICAgV2Vi
S2l0TWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdDsKK3R5cGVkZWYgc3RydWN0IF9XZWJL
aXRNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0Q2xhc3MgICBXZWJLaXRNZWRpYUtleVN5
c3RlbVBlcm1pc3Npb25SZXF1ZXN0Q2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfV2ViS2l0TWVkaWFL
ZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdFByaXZhdGUgV2ViS2l0TWVkaWFLZXlTeXN0ZW1QZXJt
aXNzaW9uUmVxdWVzdFByaXZhdGU7CisKK3N0cnVjdCBfV2ViS2l0TWVkaWFLZXlTeXN0ZW1QZXJt
aXNzaW9uUmVxdWVzdCB7CisgICAgR09iamVjdCBwYXJlbnQ7CisKKyAgICAvKjwgcHJpdmF0ZSA+
Ki8KKyAgICBXZWJLaXRNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0UHJpdmF0ZSAqcHJp
djsKK307CisKK3N0cnVjdCBfV2ViS2l0TWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdENs
YXNzIHsKKyAgICBHT2JqZWN0Q2xhc3MgcGFyZW50X2NsYXNzOworCisgICAgdm9pZCAoKl93ZWJr
aXRfcmVzZXJ2ZWQwKSAodm9pZCk7CisgICAgdm9pZCAoKl93ZWJraXRfcmVzZXJ2ZWQxKSAodm9p
ZCk7CisgICAgdm9pZCAoKl93ZWJraXRfcmVzZXJ2ZWQyKSAodm9pZCk7CisgICAgdm9pZCAoKl93
ZWJraXRfcmVzZXJ2ZWQzKSAodm9pZCk7Cit9OworCitXRUJLSVRfQVBJIEdUeXBlCit3ZWJraXRf
bWVkaWFfa2V5X3N5c3RlbV9wZXJtaXNzaW9uX3JlcXVlc3RfZ2V0X3R5cGUgKHZvaWQpOworCitX
RUJLSVRfQVBJIGNvbnN0IGdjaGFyKgord2Via2l0X21lZGlhX2tleV9zeXN0ZW1fcGVybWlzc2lv
bl9nZXRfbmFtZSAoV2ViS2l0TWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdCAqcmVxdWVz
dCk7CisKK0dfRU5EX0RFQ0xTCisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL2d0ay9kb2NzL3dlYmtpdDJndGstNC4wLXNlY3Rpb25zLnR4dCBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvZG9jcy93ZWJraXQyZ3RrLTQuMC1zZWN0aW9ucy50
eHQKaW5kZXggZjZmNWI4YzUxZTZjOThiY2JiNmU1ODk0YTBiNjg3OGUyMWNjODc1Yi4uZjFjZmE0
NGM3Mjc4MzRiZDEwYmE3N2U3OTMzZTkwZjg5OWY4MGE3YSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL2d0ay9kb2NzL3dlYmtpdDJndGstNC4wLXNlY3Rpb25zLnR4dAor
KysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL2RvY3Mvd2Via2l0Mmd0ay00LjAt
c2VjdGlvbnMudHh0CkBAIC04MDQsNiArODA0LDI1IEBAIFdlYktpdFVzZXJNZWRpYVBlcm1pc3Np
b25SZXF1ZXN0UHJpdmF0ZQogd2Via2l0X3VzZXJfbWVkaWFfcGVybWlzc2lvbl9yZXF1ZXN0X2dl
dF90eXBlCiA8L1NFQ1RJT04+CiAKKzxTRUNUSU9OPgorPEZJTEU+V2ViS2l0TWVkaWFLZXlTeXN0
ZW1QZXJtaXNzaW9uUmVxdWVzdDwvRklMRT4KK1dlYktpdE1lZGlhS2V5U3lzdGVtUGVybWlzc2lv
blJlcXVlc3QKK3dlYmtpdF9tZWRpYV9rZXlfc3lzdGVtX3Blcm1pc3Npb25fZ2V0X25hbWUKKwor
PFNVQlNFQ1RJT04gU3RhbmRhcmQ+CitXZWJLaXRNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1
ZXN0Q2xhc3MKK1dFQktJVF9UWVBFX01FRElBX0tFWV9TWVNURU1fUEVSTUlTU0lPTl9SRVFVRVNU
CitXRUJLSVRfTUVESUFfS0VZX1NZU1RFTV9QRVJNSVNTSU9OX1JFUVVFU1QKK1dFQktJVF9JU19N
RURJQV9LRVlfU1lTVEVNX1BFUk1JU1NJT05fUkVRVUVTVAorV0VCS0lUX01FRElBX0tFWV9TWVNU
RU1fUEVSTUlTU0lPTl9SRVFVRVNUX0NMQVNTCitXRUJLSVRfSVNfTUVESUFfS0VZX1NZU1RFTV9Q
RVJNSVNTSU9OX1JFUVVFU1RfQ0xBU1MKK1dFQktJVF9NRURJQV9LRVlfU1lTVEVNX1BFUk1JU1NJ
T05fUkVRVUVTVF9HRVRfQ0xBU1MKKworPFNVQlNFQ1RJT04gUHJpdmF0ZT4KK1dlYktpdE1lZGlh
S2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RQcml2YXRlCit3ZWJraXRfbWVkaWFfa2V5X3N5c3Rl
bV9wZXJtaXNzaW9uX3JlcXVlc3RfZ2V0X3R5cGUKKzwvU0VDVElPTj4KKwogPFNFQ1RJT04+CiA8
RklMRT5XZWJLaXROb3RpZmljYXRpb248L0ZJTEU+CiBXZWJLaXROb3RpZmljYXRpb24KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvZG9jcy93ZWJraXQyZ3RrLWRv
Y3Muc2dtbCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvZG9jcy93ZWJraXQyZ3Rr
LWRvY3Muc2dtbAppbmRleCBkOGFjODIzMzMyZjI5NDYyOWY4NzUyMzBkNjJkNjcyYmRkMjlkZjM5
Li40MTFlZTY0ZDgzMzMzZjA1MjMwNmM1Yjk5ZDA3M2JiNDI3OTc4YTY1IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL2RvY3Mvd2Via2l0Mmd0ay1kb2NzLnNnbWwK
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0ay9kb2NzL3dlYmtpdDJndGstZG9j
cy5zZ21sCkBAIC0yNCw2ICsyNCw3IEBACiAgICAgPHhpOmluY2x1ZGUgaHJlZj0ieG1sL1dlYktp
dFBlcm1pc3Npb25SZXF1ZXN0LnhtbCIvPgogICAgIDx4aTppbmNsdWRlIGhyZWY9InhtbC9XZWJL
aXRHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0LnhtbCIvPgogICAgIDx4aTppbmNsdWRlIGhy
ZWY9InhtbC9XZWJLaXRJbnN0YWxsTWlzc2luZ01lZGlhUGx1Z2luc1Blcm1pc3Npb25SZXF1ZXN0
LnhtbCIvPgorICAgIDx4aTppbmNsdWRlIGhyZWY9InhtbC9XZWJLaXRNZWRpYUtleVN5c3RlbVBl
cm1pc3Npb25SZXF1ZXN0LnhtbCIvPgogICAgIDx4aTppbmNsdWRlIGhyZWY9InhtbC9XZWJLaXRO
YXZpZ2F0aW9uQWN0aW9uLnhtbCIvPgogICAgIDx4aTppbmNsdWRlIGhyZWY9InhtbC9XZWJLaXRV
c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdC54bWwiLz4KICAgICA8eGk6aW5jbHVkZSBocmVmPSJ4
bWwvV2ViS2l0RGV2aWNlSW5mb1Blcm1pc3Npb25SZXF1ZXN0LnhtbCIvPgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0ay93ZWJraXQyLmggYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvZ3RrL3dlYmtpdDIuaAppbmRleCBjMzU4MTE4MzYwYTM4YzdiNDYyMjI3
YWE0YWI4Mzg4YmQ3OTQyYzNlLi5lY2JlNDMzZWQ4ODgzNTNiMWU2MDEzOTQzYjQ0NjM4MzVjMzU4
MmQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL3dlYmtpdDIu
aAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL3dlYmtpdDIuaApAQCAtMzIs
NiArMzIsNyBAQAogI2luY2x1ZGUgPHdlYmtpdDIvV2ViS2l0QXV0b21hdGlvblNlc3Npb24uaD4K
ICNpbmNsdWRlIDx3ZWJraXQyL1dlYktpdEJhY2tGb3J3YXJkTGlzdC5oPgogI2luY2x1ZGUgPHdl
YmtpdDIvV2ViS2l0QmFja0ZvcndhcmRMaXN0SXRlbS5oPgorI2luY2x1ZGUgPHdlYmtpdDIvV2Vi
S2l0Q29sb3JDaG9vc2VyUmVxdWVzdC5oPgogI2luY2x1ZGUgPHdlYmtpdDIvV2ViS2l0Q29udGV4
dE1lbnUuaD4KICNpbmNsdWRlIDx3ZWJraXQyL1dlYktpdENvbnRleHRNZW51QWN0aW9ucy5oPgog
I2luY2x1ZGUgPHdlYmtpdDIvV2ViS2l0Q29udGV4dE1lbnVJdGVtLmg+CkBAIC00NSw3ICs0Niw2
IEBACiAjaW5jbHVkZSA8d2Via2l0Mi9XZWJLaXRFbnVtVHlwZXMuaD4KICNpbmNsdWRlIDx3ZWJr
aXQyL1dlYktpdEVycm9yLmg+CiAjaW5jbHVkZSA8d2Via2l0Mi9XZWJLaXRGYXZpY29uRGF0YWJh
c2UuaD4KLSNpbmNsdWRlIDx3ZWJraXQyL1dlYktpdENvbG9yQ2hvb3NlclJlcXVlc3QuaD4KICNp
bmNsdWRlIDx3ZWJraXQyL1dlYktpdEZpbGVDaG9vc2VyUmVxdWVzdC5oPgogI2luY2x1ZGUgPHdl
YmtpdDIvV2ViS2l0RmluZENvbnRyb2xsZXIuaD4KICNpbmNsdWRlIDx3ZWJraXQyL1dlYktpdEZv
cm1TdWJtaXNzaW9uUmVxdWVzdC5oPgpAQCAtNTUsNiArNTUsNyBAQAogI2luY2x1ZGUgPHdlYmtp
dDIvV2ViS2l0SW5wdXRNZXRob2RDb250ZXh0Lmg+CiAjaW5jbHVkZSA8d2Via2l0Mi9XZWJLaXRJ
bnN0YWxsTWlzc2luZ01lZGlhUGx1Z2luc1Blcm1pc3Npb25SZXF1ZXN0Lmg+CiAjaW5jbHVkZSA8
d2Via2l0Mi9XZWJLaXRKYXZhc2NyaXB0UmVzdWx0Lmg+CisjaW5jbHVkZSA8d2Via2l0Mi9XZWJL
aXRNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0Lmg+CiAjaW5jbHVkZSA8d2Via2l0Mi9X
ZWJLaXRNaW1lSW5mby5oPgogI2luY2x1ZGUgPHdlYmtpdDIvV2ViS2l0TmF2aWdhdGlvbkFjdGlv
bi5oPgogI2luY2x1ZGUgPHdlYmtpdDIvV2ViS2l0TmF2aWdhdGlvblBvbGljeURlY2lzaW9uLmg+
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvd3BlL1dlYktpdE1lZGlh
S2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3QuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS93cGUvV2ViS2l0TWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdC5oCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjljODk4YWYxNjQ3MGRjYTE4ODUyNjk2ODI2OGFmOWZkYmMzNWIxM2YKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvd3BlL1dlYktpdE1lZGlhS2V5U3lzdGVt
UGVybWlzc2lvblJlcXVlc3QuaApAQCAtMCwwICsxLDY3IEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDIxIElnYWxpYSBTLkwuCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7
IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0
ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVi
bGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogdmVyc2lv
biAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9u
LgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0
IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2
ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiBMaWJyYXJ5IEdlbmVy
YWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhh
dmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNl
bnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElC
LiAgSWYgbm90LCB3cml0ZSB0bworICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5j
LiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAqIEJvc3RvbiwgTUEgMDIxMTAt
MTMwMSwgVVNBLgorICovCisKKyNpZiAhZGVmaW5lZChfX1dFQktJVDJfSF9JTlNJREVfXykgJiYg
IWRlZmluZWQoV0VCS0lUMl9DT01QSUxBVElPTikKKyNlcnJvciAiT25seSA8d2Via2l0Mi93ZWJr
aXQyLmg+IGNhbiBiZSBpbmNsdWRlZCBkaXJlY3RseS4iCisjZW5kaWYKKworI2lmbmRlZiBXZWJL
aXRNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0X2gKKyNkZWZpbmUgV2ViS2l0TWVkaWFL
ZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdF9oCisKKyNpbmNsdWRlIDxnbGliLW9iamVjdC5oPgor
I2luY2x1ZGUgPHdwZS9XZWJLaXREZWZpbmVzLmg+CisKK0dfQkVHSU5fREVDTFMKKworI2RlZmlu
ZSBXRUJLSVRfVFlQRV9NRURJQV9LRVlfU1lTVEVNX1BFUk1JU1NJT05fUkVRVUVTVCAgICAgICAg
ICAgICh3ZWJraXRfbWVkaWFfa2V5X3N5c3RlbV9wZXJtaXNzaW9uX3JlcXVlc3RfZ2V0X3R5cGUo
KSkKKyNkZWZpbmUgV0VCS0lUX01FRElBX0tFWV9TWVNURU1fUEVSTUlTU0lPTl9SRVFVRVNUKG9i
aikgICAgICAgICAgICAoR19UWVBFX0NIRUNLX0lOU1RBTkNFX0NBU1QoKG9iaiksIFdFQktJVF9U
WVBFX01FRElBX0tFWV9TWVNURU1fUEVSTUlTU0lPTl9SRVFVRVNULCBXZWJLaXRNZWRpYUtleVN5
c3RlbVBlcm1pc3Npb25SZXF1ZXN0KSkKKyNkZWZpbmUgV0VCS0lUX01FRElBX0tFWV9TWVNURU1f
UEVSTUlTU0lPTl9SRVFVRVNUX0NMQVNTKGtsYXNzKSAgICAoR19UWVBFX0NIRUNLX0NMQVNTX0NB
U1QoKGtsYXNzKSwgIFdFQktJVF9UWVBFX01FRElBX0tFWV9TWVNURU1fUEVSTUlTU0lPTl9SRVFV
RVNULCBXZWJLaXRNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0Q2xhc3MpKQorI2RlZmlu
ZSBXRUJLSVRfSVNfTUVESUFfS0VZX1NZU1RFTV9QRVJNSVNTSU9OX1JFUVVFU1Qob2JqKSAgICAg
ICAgIChHX1RZUEVfQ0hFQ0tfSU5TVEFOQ0VfVFlQRSgob2JqKSwgV0VCS0lUX1RZUEVfTUVESUFf
S0VZX1NZU1RFTV9QRVJNSVNTSU9OX1JFUVVFU1QpKQorI2RlZmluZSBXRUJLSVRfSVNfTUVESUFf
S0VZX1NZU1RFTV9QRVJNSVNTSU9OX1JFUVVFU1RfQ0xBU1Moa2xhc3MpIChHX1RZUEVfQ0hFQ0tf
Q0xBU1NfVFlQRSgoa2xhc3MpLCAgV0VCS0lUX1RZUEVfTUVESUFfS0VZX1NZU1RFTV9QRVJNSVNT
SU9OX1JFUVVFU1QpKQorI2RlZmluZSBXRUJLSVRfTUVESUFfS0VZX1NZU1RFTV9QRVJNSVNTSU9O
X1JFUVVFU1RfR0VUX0NMQVNTKG9iaikgIChHX1RZUEVfSU5TVEFOQ0VfR0VUX0NMQVNTKChvYmop
LCAgV0VCS0lUX1RZUEVfTUVESUFfS0VZX1NZU1RFTV9QRVJNSVNTSU9OX1JFUVVFU1QsIFdlYktp
dE1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RDbGFzcykpCisKK3R5cGVkZWYgc3RydWN0
IF9XZWJLaXRNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0ICAgICAgICBXZWJLaXRNZWRp
YUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0OwordHlwZWRlZiBzdHJ1Y3QgX1dlYktpdE1lZGlh
S2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RDbGFzcyAgIFdlYktpdE1lZGlhS2V5U3lzdGVtUGVy
bWlzc2lvblJlcXVlc3RDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9XZWJLaXRNZWRpYUtleVN5c3Rl
bVBlcm1pc3Npb25SZXF1ZXN0UHJpdmF0ZSBXZWJLaXRNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25S
ZXF1ZXN0UHJpdmF0ZTsKKworc3RydWN0IF9XZWJLaXRNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25S
ZXF1ZXN0IHsKKyAgICBHT2JqZWN0IHBhcmVudDsKKworICAgIC8qPCBwcml2YXRlID4qLworICAg
IFdlYktpdE1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RQcml2YXRlICpwcml2OworfTsK
Kworc3RydWN0IF9XZWJLaXRNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0Q2xhc3Mgewor
ICAgIEdPYmplY3RDbGFzcyBwYXJlbnRfY2xhc3M7CisKKyAgICB2b2lkICgqX3dlYmtpdF9yZXNl
cnZlZDApICh2b2lkKTsKKyAgICB2b2lkICgqX3dlYmtpdF9yZXNlcnZlZDEpICh2b2lkKTsKKyAg
ICB2b2lkICgqX3dlYmtpdF9yZXNlcnZlZDIpICh2b2lkKTsKKyAgICB2b2lkICgqX3dlYmtpdF9y
ZXNlcnZlZDMpICh2b2lkKTsKK307CisKK1dFQktJVF9BUEkgR1R5cGUKK3dlYmtpdF9tZWRpYV9r
ZXlfc3lzdGVtX3Blcm1pc3Npb25fcmVxdWVzdF9nZXRfdHlwZSAodm9pZCk7CisKK1dFQktJVF9B
UEkgY29uc3QgZ2NoYXIqCit3ZWJraXRfbWVkaWFfa2V5X3N5c3RlbV9wZXJtaXNzaW9uX2dldF9u
YW1lIChXZWJLaXRNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0ICpyZXF1ZXN0KTsKKwor
R19FTkRfREVDTFMKKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvd3BlL2RvY3Mvd3BlLTEuMC1zZWN0aW9ucy50eHQgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvd3BlL2RvY3Mvd3BlLTEuMC1zZWN0aW9ucy50eHQKaW5kZXggMGVlMjUwZTU2MzM4
Y2RhNzMzMmQ3MDUwODU4MmE1OWE3YWQyMWM4MC4uODI1ZDUxMDBiNmE2OWFjZjVhN2EyMDk1Mzgz
NzZkMmM4NTJkYmFjOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL3dw
ZS9kb2NzL3dwZS0xLjAtc2VjdGlvbnMudHh0CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS93cGUvZG9jcy93cGUtMS4wLXNlY3Rpb25zLnR4dApAQCAtODA4LDYgKzgwOCwyNSBAQCBX
ZWJLaXRVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByaXZhdGUKIHdlYmtpdF91c2VyX21lZGlh
X3Blcm1pc3Npb25fcmVxdWVzdF9nZXRfdHlwZQogPC9TRUNUSU9OPgogCis8U0VDVElPTj4KKzxG
SUxFPldlYktpdE1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3Q8L0ZJTEU+CitXZWJLaXRN
ZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0Cit3ZWJraXRfbWVkaWFfa2V5X3N5c3RlbV9w
ZXJtaXNzaW9uX2dldF9uYW1lCisKKzxTVUJTRUNUSU9OIFN0YW5kYXJkPgorV2ViS2l0TWVkaWFL
ZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdENsYXNzCitXRUJLSVRfVFlQRV9NRURJQV9LRVlfU1lT
VEVNX1BFUk1JU1NJT05fUkVRVUVTVAorV0VCS0lUX01FRElBX0tFWV9TWVNURU1fUEVSTUlTU0lP
Tl9SRVFVRVNUCitXRUJLSVRfSVNfTUVESUFfS0VZX1NZU1RFTV9QRVJNSVNTSU9OX1JFUVVFU1QK
K1dFQktJVF9NRURJQV9LRVlfU1lTVEVNX1BFUk1JU1NJT05fUkVRVUVTVF9DTEFTUworV0VCS0lU
X0lTX01FRElBX0tFWV9TWVNURU1fUEVSTUlTU0lPTl9SRVFVRVNUX0NMQVNTCitXRUJLSVRfTUVE
SUFfS0VZX1NZU1RFTV9QRVJNSVNTSU9OX1JFUVVFU1RfR0VUX0NMQVNTCisKKzxTVUJTRUNUSU9O
IFByaXZhdGU+CitXZWJLaXRNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0UHJpdmF0ZQor
d2Via2l0X21lZGlhX2tleV9zeXN0ZW1fcGVybWlzc2lvbl9yZXF1ZXN0X2dldF90eXBlCis8L1NF
Q1RJT04+CisKIDxTRUNUSU9OPgogPEZJTEU+V2ViS2l0Tm90aWZpY2F0aW9uPC9GSUxFPgogV2Vi
S2l0Tm90aWZpY2F0aW9uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
d3BlL2RvY3Mvd3BlLWRvY3Muc2dtbCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS93cGUv
ZG9jcy93cGUtZG9jcy5zZ21sCmluZGV4IDA5YWY0ZmM5YmI0ZDVmYjU1OTZhMTc2NTgxNzMyYmMw
ZGMyZTMzMWIuLjhlMjU3ZjAyZjExZmViZWNkMmE1NjczYjhlODcwNmQ1ZWM2YzY4MzkgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS93cGUvZG9jcy93cGUtZG9jcy5zZ21s
CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS93cGUvZG9jcy93cGUtZG9jcy5zZ21s
CkBAIC0yNSw2ICsyNSw3IEBACiAgICAgPHhpOmluY2x1ZGUgaHJlZj0ieG1sL1dlYktpdFBlcm1p
c3Npb25SZXF1ZXN0LnhtbCIvPgogICAgIDx4aTppbmNsdWRlIGhyZWY9InhtbC9XZWJLaXRHZW9s
b2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0LnhtbCIvPgogICAgIDx4aTppbmNsdWRlIGhyZWY9Inht
bC9XZWJLaXRJbnN0YWxsTWlzc2luZ01lZGlhUGx1Z2luc1Blcm1pc3Npb25SZXF1ZXN0LnhtbCIv
PgorICAgIDx4aTppbmNsdWRlIGhyZWY9InhtbC9XZWJLaXRNZWRpYUtleVN5c3RlbVBlcm1pc3Np
b25SZXF1ZXN0LnhtbCIvPgogICAgIDx4aTppbmNsdWRlIGhyZWY9InhtbC9XZWJLaXROYXZpZ2F0
aW9uQWN0aW9uLnhtbCIvPgogICAgIDx4aTppbmNsdWRlIGhyZWY9InhtbC9XZWJLaXRVc2VyTWVk
aWFQZXJtaXNzaW9uUmVxdWVzdC54bWwiLz4KICAgICA8eGk6aW5jbHVkZSBocmVmPSJ4bWwvV2Vi
S2l0UG9saWN5RGVjaXNpb24ueG1sIi8+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9NZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0LmggYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9NZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0LmgKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNGFm
YzM1ZDAxNzcyZDU4OTdjNzdlYWMwMTA3YmM5YmU3NGI0NjI4YQotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL01lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3Qu
aApAQCAtMCwwICsxLDc2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIElnYWxpYSBTLkwu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAiQVBJT2JqZWN0LmgiCisjaW5j
bHVkZSA8V2ViQ29yZS9DbGllbnRPcmlnaW4uaD4KKyNpbmNsdWRlIDx3dGYvQ29tcGxldGlvbkhh
bmRsZXIuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIE1lZGlhS2V5U3lzdGVtUGVy
bWlzc2lvblJlcXVlc3QgOiBwdWJsaWMgUmVmQ291bnRlZDxNZWRpYUtleVN5c3RlbVBlcm1pc3Np
b25SZXF1ZXN0PiB7CitwdWJsaWM6CisgICAgc3RhdGljIFJlZjxNZWRpYUtleVN5c3RlbVBlcm1p
c3Npb25SZXF1ZXN0PiBjcmVhdGUoY29uc3QgU3RyaW5nJiBrZXlTeXN0ZW0sIENvbXBsZXRpb25I
YW5kbGVyPHZvaWQoYm9vbCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCisgICAgeworICAgICAgICBy
ZXR1cm4gYWRvcHRSZWYoKm5ldyBNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0KGtleVN5
c3RlbSwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpKTsKKyAgICB9CisKKyAgICB2b2lkIGNv
bXBsZXRlKGJvb2wgc3VjY2VzcykKKyAgICB7CisgICAgICAgIGF1dG8gY29tcGxldGlvbkhhbmRs
ZXIgPSBzdGQ6OmV4Y2hhbmdlKG1fY29tcGxldGlvbkhhbmRsZXIsIHsgfSk7CisgICAgICAgIGNv
bXBsZXRpb25IYW5kbGVyKHN1Y2Nlc3MpOworICAgIH0KKworICAgIGNvbnN0IFN0cmluZyYga2V5
U3lzdGVtKCkgY29uc3QgeyByZXR1cm4gbV9rZXlTeXN0ZW07IH0KKworcHJpdmF0ZToKKyAgICBN
ZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0KGNvbnN0IFN0cmluZyYga2V5U3lzdGVtLCBD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQorICAgICAg
ICA6IG1fa2V5U3lzdGVtKGtleVN5c3RlbSkKKyAgICAgICAgLCBtX2NvbXBsZXRpb25IYW5kbGVy
KFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKQorICAgIHsgfQorCisgICAgU3RyaW5nIG1fa2V5
U3lzdGVtOworICAgIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+IG1fY29tcGxldGlvbkhh
bmRsZXI7Cit9OworCitjbGFzcyBNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25DYWxsYmFjayA6IHB1
YmxpYyBBUEk6Ok9iamVjdEltcGw8QVBJOjpPYmplY3Q6OlR5cGU6Ok1lZGlhS2V5U3lzdGVtUGVy
bWlzc2lvbkNhbGxiYWNrPiB7CitwdWJsaWM6CisgICAgc3RhdGljIFJlZjxNZWRpYUtleVN5c3Rl
bVBlcm1pc3Npb25DYWxsYmFjaz4gY3JlYXRlKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+
JiYgY29tcGxldGlvbkhhbmRsZXIpCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5l
dyBNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25DYWxsYmFjayhXVEZNb3ZlKGNvbXBsZXRpb25IYW5k
bGVyKSkpOworICAgIH0KKworICAgIHZvaWQgY29tcGxldGUoYm9vbCBncmFudGVkKSB7IG1fY29t
cGxldGlvbkhhbmRsZXIoZ3JhbnRlZCk7IH0KKworcHJpdmF0ZToKKyAgICBNZWRpYUtleVN5c3Rl
bVBlcm1pc3Npb25DYWxsYmFjayhDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmIGNvbXBs
ZXRpb25IYW5kbGVyKQorICAgICAgICA6IG1fY29tcGxldGlvbkhhbmRsZXIoV1RGTW92ZShjb21w
bGV0aW9uSGFuZGxlcikpCisgICAgeyB9CisKKyAgICBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJv
b2wpPiBtX2NvbXBsZXRpb25IYW5kbGVyOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9NZWRpYUtleVN5c3RlbVBlcm1pc3Np
b25SZXF1ZXN0TWFuYWdlclByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL01lZGlh
S2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuY3BwCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmJi
M2U0NTJkNTgzNTE5OGUyYmI1YWVmMjMyNDRhNWZkZWNmZWQwMDcKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9NZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0
TWFuYWdlclByb3h5LmNwcApAQCAtMCwwICsxLDEyNCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAyMSBJZ2FsaWEgUy5MLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVk
ZSAiTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5oIgorCisjaW5j
bHVkZSAiQVBJU2VjdXJpdHlPcmlnaW4uaCIKKyNpbmNsdWRlICJBUElVSUNsaWVudC5oIgorI2lu
Y2x1ZGUgIkxvZ2dpbmcuaCIKKyNpbmNsdWRlICJXZWJBdXRvbWF0aW9uU2Vzc2lvbi5oIgorI2lu
Y2x1ZGUgIldlYlBhZ2VNZXNzYWdlcy5oIgorI2luY2x1ZGUgIldlYlBhZ2VQcm94eS5oIgorI2lu
Y2x1ZGUgIldlYlByb2Nlc3MuaCIKKyNpbmNsdWRlICJXZWJQcm9jZXNzUG9vbC5oIgorI2luY2x1
ZGUgIldlYlByb2Nlc3NQcm94eS5oIgorI2luY2x1ZGUgIldlYnNpdGVEYXRhU3RvcmUuaCIKKyNp
bmNsdWRlIDxXZWJDb3JlL01lZGlhS2V5U3lzdGVtUmVxdWVzdC5oPgorI2luY2x1ZGUgPFdlYkNv
cmUvU2VjdXJpdHlPcmlnaW5EYXRhLmg+CisjaW5jbHVkZSA8d3RmL1Njb3BlLmg+CisKK25hbWVz
cGFjZSBXZWJLaXQgewordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisKK01lZGlhS2V5U3lzdGVt
UGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6Ok1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJl
cXVlc3RNYW5hZ2VyUHJveHkoV2ViUGFnZVByb3h5JiBwYWdlKQorICAgIDogbV9wYWdlKHBhZ2Up
CisjaWYgIVJFTEVBU0VfTE9HX0RJU0FCTEVECisgICAgLCBtX2xvZ2dlcihwYWdlLmxvZ2dlcigp
KQorICAgICwgbV9sb2dJZGVudGlmaWVyKHVuaXF1ZUxvZ0lkZW50aWZpZXIoKSkKKyNlbmRpZgor
eworfQorCitNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5Ojp+TWVk
aWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eSgpCit7CisgICAgaW52YWxp
ZGF0ZVBlbmRpbmdSZXF1ZXN0cygpOworfQorCit2b2lkIE1lZGlhS2V5U3lzdGVtUGVybWlzc2lv
blJlcXVlc3RNYW5hZ2VyUHJveHk6OmludmFsaWRhdGVQZW5kaW5nUmVxdWVzdHMoKQoreworICAg
IGZvciAoYXV0byYgcmVxdWVzdCA6IG1fcGVuZGluZ1JlcXVlc3RzLnZhbHVlcygpKQorICAgICAg
ICByZXF1ZXN0LT5pbnZhbGlkYXRlKCk7CisKKyAgICBtX3BlbmRpbmdSZXF1ZXN0cy5jbGVhcigp
OworfQorCit2b2lkIE1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6
OmRlbnlSZXF1ZXN0KE1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RQcm94eSYgcmVxdWVz
dCwgY29uc3QgU3RyaW5nJiBtZXNzYWdlKQoreworICAgIGlmICghbV9wYWdlLmhhc1J1bm5pbmdQ
cm9jZXNzKCkpCisgICAgICAgIHJldHVybjsKKworICAgIEFMV0FZU19MT0coTE9HSURFTlRJRklF
UiwgcmVxdWVzdC5tZWRpYUtleVN5c3RlbUlEKCksICIsIHJlYXNvbjogIiwgbWVzc2FnZSk7CisK
KyNpZiBFTkFCTEUoRU5DUllQVEVEX01FRElBKQorICAgIG1fcGFnZS5zZW5kKE1lc3NhZ2VzOjpX
ZWJQYWdlOjpNZWRpYUtleVN5c3RlbVdhc0RlbmllZChyZXF1ZXN0Lm1lZGlhS2V5U3lzdGVtSUQo
KSwgbWVzc2FnZSkpOworI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0obWVzc2FnZSk7CisjZW5kaWYK
K30KKwordm9pZCBNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5Ojpn
cmFudFJlcXVlc3QoTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdFByb3h5JiByZXF1ZXN0
KQoreworICAgIGlmICghbV9wYWdlLmhhc1J1bm5pbmdQcm9jZXNzKCkpCisgICAgICAgIHJldHVy
bjsKKworI2lmIEVOQUJMRShFTkNSWVBURURfTUVESUEpCisgICAgQUxXQVlTX0xPRyhMT0dJREVO
VElGSUVSLCByZXF1ZXN0Lm1lZGlhS2V5U3lzdGVtSUQoKSwgIiwga2V5U3lzdGVtOiAiLCByZXF1
ZXN0LmtleVN5c3RlbSgpKTsKKworICAgIG1fcGFnZS5zZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2Fn
ZXM6OldlYlBhZ2U6Ok1lZGlhS2V5U3lzdGVtV2FzR3JhbnRlZCB7IHJlcXVlc3QubWVkaWFLZXlT
eXN0ZW1JRCgpIH0sIFtdIHsgfSk7CisjZWxzZQorICAgIFVOVVNFRF9QQVJBTShyZXF1ZXN0KTsK
KyNlbmRpZgorfQorCitSZWY8TWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdFByb3h5PiBN
ZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5OjpjcmVhdGVSZXF1ZXN0
Rm9yRnJhbWUodWludDY0X3QgbWVkaWFLZXlTeXN0ZW1JRCwgRnJhbWVJZGVudGlmaWVyIGZyYW1l
SUQsIFJlZjxTZWN1cml0eU9yaWdpbj4mJiB0b3BMZXZlbERvY3VtZW50T3JpZ2luLCBjb25zdCBT
dHJpbmcmIGtleVN5c3RlbSkKK3sKKyNpZiBFTkFCTEUoRU5DUllQVEVEX01FRElBKQorICAgIEFM
V0FZU19MT0coTE9HSURFTlRJRklFUiwgbWVkaWFLZXlTeXN0ZW1JRCk7CisKKyAgICBhdXRvIHJl
cXVlc3QgPSBNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0UHJveHk6OmNyZWF0ZSgqdGhp
cywgbWVkaWFLZXlTeXN0ZW1JRCwgbV9wYWdlLm1haW5GcmFtZSgpLT5mcmFtZUlEKCksIGZyYW1l
SUQsIFdURk1vdmUodG9wTGV2ZWxEb2N1bWVudE9yaWdpbiksIGtleVN5c3RlbSk7CisgICAgbV9w
ZW5kaW5nUmVxdWVzdHMuYWRkKG1lZGlhS2V5U3lzdGVtSUQsIHJlcXVlc3QucHRyKCkpOworICAg
IHJldHVybiByZXF1ZXN0OworI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0obWVkaWFLZXlTeXN0ZW1J
RCk7CisgICAgVU5VU0VEX1BBUkFNKGZyYW1lSUQpOworICAgIFVOVVNFRF9QQVJBTSh0b3BMZXZl
bERvY3VtZW50T3JpZ2luKTsKKyAgICBVTlVTRURfUEFSQU0oa2V5U3lzdGVtKTsKKyNlbmRpZgor
fQorCisjaWYgIVJFTEVBU0VfTE9HX0RJU0FCTEVECitXVEZMb2dDaGFubmVsJiBNZWRpYUtleVN5
c3RlbVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5Ojpsb2dDaGFubmVsKCkgY29uc3QKK3sK
KyAgICByZXR1cm4gV2ViS2l0MkxvZ0VNRTsKK30KKworY29uc3QgTG9nZ2VyJiBNZWRpYUtleVN5
c3RlbVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5Ojpsb2dnZXIoKSBjb25zdAoreworICAg
IHJldHVybiBtX3BhZ2UubG9nZ2VyKCk7Cit9CisjZW5kaWYKKworfSAvLyBuYW1lc3BhY2UgV2Vi
S2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9NZWRpYUtleVN5c3RlbVBl
cm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9N
ZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmgKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
YjAzYTYyODQ4MTFiZWYyZDIyMTMxYjdiZTEwZTg5M2MwNjcxODZmYwotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL01lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVl
c3RNYW5hZ2VyUHJveHkuaApAQCAtMCwwICsxLDg1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDIxIElnYWxpYSBTLkwuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAiTWVk
aWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdFByb3h5LmgiCisjaW5jbHVkZSA8V2ViQ29yZS9T
ZWN1cml0eU9yaWdpbi5oPgorI2luY2x1ZGUgPHd0Zi9Db21wbGV0aW9uSGFuZGxlci5oPgorI2lu
Y2x1ZGUgPHd0Zi9EZXF1ZS5oPgorI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CisjaW5jbHVkZSA8
d3RmL0xvZ2dlckhlbHBlci5oPgorI2luY2x1ZGUgPHd0Zi9SdW5Mb29wLmg+CisjaW5jbHVkZSA8
d3RmL1NlY29uZHMuaD4KKyNpbmNsdWRlIDx3dGYvV2Vha1B0ci5oPgorCituYW1lc3BhY2UgV2Vi
Q29yZSB7CitjbGFzcyBTZWN1cml0eU9yaWdpbjsKK307CisKK25hbWVzcGFjZSBXZWJLaXQgewor
CitjbGFzcyBXZWJQYWdlUHJveHk7CisKK2NsYXNzIE1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJl
cXVlc3RNYW5hZ2VyUHJveHkKKyAgICA6IHB1YmxpYyBDYW5NYWtlV2Vha1B0cjxNZWRpYUtleVN5
c3RlbVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5PgorI2lmICFSRUxFQVNFX0xPR19ESVNB
QkxFRAorICAgICwgcHJpdmF0ZSBMb2dnZXJIZWxwZXIKKyNlbmRpZgoreworICAgIFdURl9NQUtF
X0ZBU1RfQUxMT0NBVEVEOworcHVibGljOgorICAgIGV4cGxpY2l0IE1lZGlhS2V5U3lzdGVtUGVy
bWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkoV2ViUGFnZVByb3h5Jik7CisgICAgfk1lZGlhS2V5
U3lzdGVtUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkoKTsKKworICAgIFdlYlBhZ2VQcm94
eSYgcGFnZSgpIGNvbnN0IHsgcmV0dXJuIG1fcGFnZTsgfQorCisgICAgdm9pZCBpbnZhbGlkYXRl
UGVuZGluZ1JlcXVlc3RzKCk7CisKKyAgICBSZWY8TWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVx
dWVzdFByb3h5PiBjcmVhdGVSZXF1ZXN0Rm9yRnJhbWUodWludDY0X3QgdXNlck1lZGlhSUQsIFdl
YkNvcmU6OkZyYW1lSWRlbnRpZmllciwgUmVmPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luPiYmIHRv
cExldmVsRG9jdW1lbnRPcmlnaW4sIGNvbnN0IFN0cmluZyYga2V5U3lzdGVtKTsKKworICAgIHZv
aWQgZ3JhbnRSZXF1ZXN0KE1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RQcm94eSYpOwor
ICAgIHZvaWQgZGVueVJlcXVlc3QoTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdFByb3h5
JiwgY29uc3QgU3RyaW5nJiBtZXNzYWdlID0geyB9KTsKKworcHJpdmF0ZToKKyNpZiAhUkVMRUFT
RV9MT0dfRElTQUJMRUQKKyAgICBjb25zdCBMb2dnZXImIGxvZ2dlcigpIGNvbnN0IGZpbmFsOwor
ICAgIGNvbnN0IHZvaWQqIGxvZ0lkZW50aWZpZXIoKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX2xv
Z0lkZW50aWZpZXI7IH0KKyAgICBjb25zdCBjaGFyKiBsb2dDbGFzc05hbWUoKSBjb25zdCBvdmVy
cmlkZSB7IHJldHVybiAiTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94
eSI7IH0KKyAgICBXVEZMb2dDaGFubmVsJiBsb2dDaGFubmVsKCkgY29uc3QgZmluYWw7CisjZW5k
aWYKKworICAgIFdlYlBhZ2VQcm94eSYgbV9wYWdlOworCisgICAgSGFzaE1hcDx1aW50NjRfdCwg
UmVmUHRyPE1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RQcm94eT4+IG1fcGVuZGluZ1Jl
cXVlc3RzOworICAgIEhhc2hTZXQ8U3RyaW5nPiBtX3ZhbGlkQXV0aG9yaXphdGlvblRva2VuczsK
KworI2lmICFSRUxFQVNFX0xPR19ESVNBQkxFRAorICAgIFJlZjxjb25zdCBMb2dnZXI+IG1fbG9n
Z2VyOworICAgIGNvbnN0IHZvaWQqIG1fbG9nSWRlbnRpZmllcjsKKyNlbmRpZgorfTsKKworfSAv
LyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9N
ZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0UHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdFByb3h5LmNwcApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi5kMmI5MTU1ZDE1ODU2YTM0MDJiY2ZjMWY1NTI2OTIwZTAzNzkwYmRjCi0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9u
UmVxdWVzdFByb3h5LmNwcApAQCAtMCwwICsxLDgyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDIxIElnYWxpYSBTLkwuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRl
ICJNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0UHJveHkuaCIKKworI2luY2x1ZGUgIk1l
ZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuaCIKKyNpbmNsdWRlIDxX
ZWJDb3JlL1NlY3VyaXR5T3JpZ2luLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9TZWN1cml0eU9yaWdp
bkRhdGEuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdIYXNoLmg+CisKK25hbWVzcGFjZSBX
ZWJLaXQgewordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisKK01lZGlhS2V5U3lzdGVtUGVybWlz
c2lvblJlcXVlc3RQcm94eTo6TWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdFByb3h5KE1l
ZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkmIG1hbmFnZXIsIHVpbnQ2
NF90IG1lZGlhS2V5U3lzdGVtSUQsIEZyYW1lSWRlbnRpZmllciBtYWluRnJhbWVJRCwgRnJhbWVJ
ZGVudGlmaWVyIGZyYW1lSUQsIFJlZjxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbj4mJiB0b3BMZXZl
bERvY3VtZW50T3JpZ2luLCBjb25zdCBTdHJpbmcmIGtleVN5c3RlbSkKKyAgICA6IG1fbWFuYWdl
cigmbWFuYWdlcikKKyAgICAsIG1fbWVkaWFLZXlTeXN0ZW1JRChtZWRpYUtleVN5c3RlbUlEKQor
ICAgICwgbV9tYWluRnJhbWVJRChtYWluRnJhbWVJRCkKKyAgICAsIG1fZnJhbWVJRChmcmFtZUlE
KQorICAgICwgbV90b3BMZXZlbERvY3VtZW50U2VjdXJpdHlPcmlnaW4oV1RGTW92ZSh0b3BMZXZl
bERvY3VtZW50T3JpZ2luKSkKKyAgICAsIG1fa2V5U3lzdGVtKGtleVN5c3RlbSkKK3sKK30KKwor
dm9pZCBNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0UHJveHk6OmFsbG93KCkKK3sKKyAg
ICBBU1NFUlQobV9tYW5hZ2VyKTsKKyAgICBpZiAoIW1fbWFuYWdlcikKKyAgICAgICAgcmV0dXJu
OworCisgICAgbV9tYW5hZ2VyLT5ncmFudFJlcXVlc3QoKnRoaXMpOworICAgIGludmFsaWRhdGUo
KTsKK30KKwordm9pZCBNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0UHJveHk6OmRlbnko
KQoreworICAgIGlmICghbV9tYW5hZ2VyKQorICAgICAgICByZXR1cm47CisKKyAgICBtX21hbmFn
ZXItPmRlbnlSZXF1ZXN0KCp0aGlzKTsKKyAgICBpbnZhbGlkYXRlKCk7Cit9CisKK3ZvaWQgTWVk
aWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdFByb3h5OjppbnZhbGlkYXRlKCkKK3sKKyAgICBt
X21hbmFnZXIgPSBudWxscHRyOworfQorCit2b2lkIE1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJl
cXVlc3RQcm94eTo6ZG9EZWZhdWx0QWN0aW9uKCkKK3sKKyNpZiBQTEFURk9STShDT0NPQSkKKyAg
ICAvLyBCYWNrd2FyZCBjb21wYXRpYmlsaXR5IGZvciBwbGF0Zm9ybXMgbm90IHlldCBzdXBwb3J0
aW5nIHRoZSBNZWRpYUtleVN5c3RlbSBwZXJtaXNzaW9uIHJlcXVlc3QKKyAgICAvLyBpbiB0aGVp
ciBBUElVSUNsaWVudC4KKyAgICBhbGxvdygpOworI2Vsc2UKKyAgICBkZW55KCk7CisjZW5kaWYK
K30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9NZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0UHJveHkuaCBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL01lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RQcm94eS5oCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLmE2NGQxYzYyMDU3ZDU2OTcyMDU2ODZlODcxYWVjMjgzNjc1MDVkYzkKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9NZWRpYUtleVN5c3RlbVBlcm1p
c3Npb25SZXF1ZXN0UHJveHkuaApAQCAtMCwwICsxLDc2IEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDIxIElnYWxpYSBTLkwuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAi
QVBJT2JqZWN0LmgiCisjaW5jbHVkZSA8V2ViQ29yZS9GcmFtZUlkZW50aWZpZXIuaD4KKyNpbmNs
dWRlIDx3dGYvVmVjdG9yLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CisKK25h
bWVzcGFjZSBXZWJDb3JlIHsKK2NsYXNzIFNlY3VyaXR5T3JpZ2luOworfQorCituYW1lc3BhY2Ug
V2ViS2l0IHsKKworY2xhc3MgTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQ
cm94eTsKKworY2xhc3MgTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdFByb3h5IDogcHVi
bGljIFJlZkNvdW50ZWQ8TWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdFByb3h5PiB7Citw
dWJsaWM6CisgICAgc3RhdGljIFJlZjxNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0UHJv
eHk+IGNyZWF0ZShNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5JiBt
YW5hZ2VyLCB1aW50NjRfdCBtZWRpYUtleVN5c3RlbUlELCBXZWJDb3JlOjpGcmFtZUlkZW50aWZp
ZXIgbWFpbkZyYW1lSUQsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBSZWY8V2Vi
Q29yZTo6U2VjdXJpdHlPcmlnaW4+JiYgdG9wTGV2ZWxEb2N1bWVudE9yaWdpbiwgY29uc3QgU3Ry
aW5nJiBrZXlTeXN0ZW0pCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBNZWRp
YUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0UHJveHkobWFuYWdlciwgbWVkaWFLZXlTeXN0ZW1J
RCwgbWFpbkZyYW1lSUQsIGZyYW1lSUQsIFdURk1vdmUodG9wTGV2ZWxEb2N1bWVudE9yaWdpbiks
IGtleVN5c3RlbSkpOworICAgIH0KKworICAgIHZvaWQgYWxsb3coKTsKKyAgICB2b2lkIGRlbnko
KTsKKworICAgIHZvaWQgaW52YWxpZGF0ZSgpOworICAgIGJvb2wgaXNQZW5kaW5nKCkgY29uc3Qg
eyByZXR1cm4gbV9tYW5hZ2VyOyB9CisKKyAgICB1aW50NjRfdCBtZWRpYUtleVN5c3RlbUlEKCkg
Y29uc3QgeyByZXR1cm4gbV9tZWRpYUtleVN5c3RlbUlEOyB9CisgICAgV2ViQ29yZTo6RnJhbWVJ
ZGVudGlmaWVyIG1haW5GcmFtZUlEKCkgY29uc3QgeyByZXR1cm4gbV9tYWluRnJhbWVJRDsgfQor
ICAgIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlEKCkgY29uc3QgeyByZXR1cm4gbV9m
cmFtZUlEOyB9CisKKyAgICBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbiYgdG9wTGV2ZWxEb2N1bWVu
dFNlY3VyaXR5T3JpZ2luKCkgeyByZXR1cm4gbV90b3BMZXZlbERvY3VtZW50U2VjdXJpdHlPcmln
aW4uZ2V0KCk7IH0KKyAgICBjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbiYgdG9wTGV2ZWxE
b2N1bWVudFNlY3VyaXR5T3JpZ2luKCkgY29uc3QgeyByZXR1cm4gbV90b3BMZXZlbERvY3VtZW50
U2VjdXJpdHlPcmlnaW4uZ2V0KCk7IH0KKworICAgIGNvbnN0IFN0cmluZyYga2V5U3lzdGVtKCkg
Y29uc3QgeyByZXR1cm4gbV9rZXlTeXN0ZW07IH0KKworICAgIHZvaWQgZG9EZWZhdWx0QWN0aW9u
KCk7CisKK3ByaXZhdGU6CisgICAgTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdFByb3h5
KE1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkmLCB1aW50NjRfdCBt
ZWRpYUtleVN5c3RlbUlELCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgbWFpbkZyYW1lSUQsIFdl
YkNvcmU6OkZyYW1lSWRlbnRpZmllciwgUmVmPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luPiYmIHRv
cExldmVsRG9jdW1lbnRPcmlnaW4sIGNvbnN0IFN0cmluZyYga2V5U3lzdGVtKTsKKworICAgIE1l
ZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkqIG1fbWFuYWdlcjsKKyAg
ICB1aW50NjRfdCBtX21lZGlhS2V5U3lzdGVtSUQ7CisgICAgV2ViQ29yZTo6RnJhbWVJZGVudGlm
aWVyIG1fbWFpbkZyYW1lSUQ7CisgICAgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIG1fZnJhbWVJ
RDsKKyAgICBSZWY8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4+IG1fdG9wTGV2ZWxEb2N1bWVudFNl
Y3VyaXR5T3JpZ2luOworICAgIFN0cmluZyBtX2tleVN5c3RlbTsKK307CisKK30gLy8gbmFtZXNw
YWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3BlZWNoUmVj
b2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1NwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZS5jcHAKaW5k
ZXggYjlkOTMyMDk2MzlkZDNiZjhmMjc0ODM1MjRjZjQwNmQ2M2VjNjBhZC4uODJiNDI5MTA4NTMz
ODQ4YTFhOTg1ZTE4NWI2YzBkMWY2Y2I5MDI2NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlLmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0
aW1lTWVkaWFTb3VyY2UuY3BwCkBAIC0zMyw4ICszMywxMSBAQAogCiAjaWYgUExBVEZPUk0oQ09D
T0EpCiAjaW5jbHVkZSAiU2hhcmVkUmluZ0J1ZmZlclN0b3JhZ2UuaCIKKyNpbmNsdWRlIDxXZWJD
b3JlL0NBUmluZ0J1ZmZlci5oPgogI2VuZGlmCiAKKyNpbmNsdWRlIDxXZWJDb3JlL1dlYkF1ZGlv
QnVmZmVyTGlzdC5oPgorCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogUmVmPFdlYkNvcmU6OlJlYWx0
aW1lTWVkaWFTb3VyY2U+IFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJj
ZTo6Y3JlYXRlKFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFn
ZXImIG1hbmFnZXIsIGNvbnN0IFdlYkNvcmU6OkNhcHR1cmVEZXZpY2UmIGNhcHR1cmVEZXZpY2Up
CkBAIC00Nyw3ICs1MCw3IEBAIFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNv
dXJjZTo6U3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhCiAgICAgLCBtX2lkZW50
aWZpZXIoaWRlbnRpZmllcikKICAgICAsIG1fbWFuYWdlcihtYWtlV2Vha1B0cihtYW5hZ2VyKSkK
ICNpZiBQTEFURk9STShDT0NPQSkKLSAgICAsIG1fcmluZ0J1ZmZlcihtYWtlVW5pcXVlPENBUmlu
Z0J1ZmZlcj4oKSkKKyAgICAsIG1fcmluZ0J1ZmZlcihtYWtlVW5pcXVlPFdlYkNvcmU6OkNBUmlu
Z0J1ZmZlcj4oKSkKICNlbmRpZgogewogICAgIG1fbWFuYWdlci0+YWRkU291cmNlKCp0aGlzLCBj
YXB0dXJlRGV2aWNlKTsKQEAgLTc3LDggKzgwLDggQEAgdm9pZCBTcGVlY2hSZWNvZ25pdGlvblJl
bW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6OnNldFN0b3JhZ2UoY29uc3QgU2hhcmVkTWVtb3J5OjoK
IHsKICAgICBtX2Rlc2NyaXB0aW9uID0gZGVzY3JpcHRpb247CiAKLSAgICBtX3JpbmdCdWZmZXIg
PSBtYWtlVW5pcXVlPENBUmluZ0J1ZmZlcj4obWFrZVVuaXF1ZVJlZjxSZWFkT25seVNoYXJlZFJp
bmdCdWZmZXJTdG9yYWdlPihoYW5kbGUpLCBkZXNjcmlwdGlvbiwgbnVtYmVyT2ZGcmFtZXMpOwot
ICAgIG1fYnVmZmVyID0gbWFrZVVuaXF1ZTxXZWJBdWRpb0J1ZmZlckxpc3Q+KGRlc2NyaXB0aW9u
LCBudW1iZXJPZkZyYW1lcyk7CisgICAgbV9yaW5nQnVmZmVyID0gbWFrZVVuaXF1ZTxXZWJDb3Jl
OjpDQVJpbmdCdWZmZXI+KG1ha2VVbmlxdWVSZWY8UmVhZE9ubHlTaGFyZWRSaW5nQnVmZmVyU3Rv
cmFnZT4oaGFuZGxlKSwgZGVzY3JpcHRpb24sIG51bWJlck9mRnJhbWVzKTsKKyAgICBtX2J1ZmZl
ciA9IG1ha2VVbmlxdWU8V2ViQ29yZTo6V2ViQXVkaW9CdWZmZXJMaXN0PihkZXNjcmlwdGlvbiwg
bnVtYmVyT2ZGcmFtZXMpOwogfQogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZS5oIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1l
ZGlhU291cmNlLmgKaW5kZXggOGI1MTI1MGY1Y2FkN2YzZjVjZTc4ZjU4ZDY3NjM3MTkwY2Y4YmY5
MS4uYTFlMjdhZDVmZDcwMzhlZDJlZGVlYjMyYzE1YjUwOTEwZGFkNTFlMCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1l
ZGlhU291cmNlLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRp
b25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlLmgKQEAgLTI3LDYgKzI3LDcgQEAKIAogI2lmIEVO
QUJMRShNRURJQV9TVFJFQU0pCiAKKyNpbmNsdWRlICJTaGFyZWRNZW1vcnkuaCIKICNpbmNsdWRl
IDxXZWJDb3JlL1JlYWx0aW1lTWVkaWFTb3VyY2UuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1JlYWx0
aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyLmg+CiAKQEAgLTQzLDcgKzQ0LDggQEAgY2xhc3MgV2Vi
QXVkaW9CdWZmZXJMaXN0OwogfQogCiBuYW1lc3BhY2UgV2ViS2l0IHsKLQorY2xhc3MgU3BlZWNo
UmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjsKKyAgICAKIGNsYXNz
IFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZSA6IHB1YmxpYyBXZWJD
b3JlOjpSZWFsdGltZU1lZGlhU291cmNlIHsKIHB1YmxpYzoKICAgICBzdGF0aWMgUmVmPFdlYkNv
cmU6OlJlYWx0aW1lTWVkaWFTb3VyY2U+IGNyZWF0ZShTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJl
YWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyJiwgY29uc3QgV2ViQ29yZTo6Q2FwdHVyZURldmljZSYp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcCBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKaW5kZXggZjEyYzg0NmU4
OGRiZDA2MGJhNDVhNTM0ZDhiNmY2MmFmMjkxOTExMC4uYWI2OGEzYmZmMGM3OTdiYmJmN2U4YWM4
MThjODM3YTJlMGM1NThkZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
UGFnZVByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHku
Y3BwCkBAIC04MjkxLDYgKzgyOTEsMjcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmNsZWFyVXNlck1l
ZGlhU3RhdGUoKQogI2VuZGlmCiB9CiAKK3ZvaWQgV2ViUGFnZVByb3h5OjpyZXF1ZXN0TWVkaWFL
ZXlTeXN0ZW1QZXJtaXNzaW9uRm9yRnJhbWUodWludDY0X3QgbWVkaWFLZXlTeXN0ZW1JRCwgRnJh
bWVJZGVudGlmaWVyIGZyYW1lSUQsIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYg
dG9wTGV2ZWxEb2N1bWVudE9yaWdpbkRhdGEsIGNvbnN0IFN0cmluZyYga2V5U3lzdGVtKQorewor
I2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCisgICAgTUVTU0FHRV9DSEVDSyhtX3Byb2Nlc3MsIG1f
cHJvY2Vzcy0+d2ViRnJhbWUoZnJhbWVJRCkpOworCisgICAgYXV0byBvcmlnaW4gPSBBUEk6OlNl
Y3VyaXR5T3JpZ2luOjpjcmVhdGUodG9wTGV2ZWxEb2N1bWVudE9yaWdpbkRhdGEuc2VjdXJpdHlP
cmlnaW4oKSk7CisgICAgYXV0byByZXF1ZXN0ID0gbWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVx
dWVzdE1hbmFnZXIoKS5jcmVhdGVSZXF1ZXN0Rm9yRnJhbWUobWVkaWFLZXlTeXN0ZW1JRCwgZnJh
bWVJRCwgdG9wTGV2ZWxEb2N1bWVudE9yaWdpbkRhdGEuc2VjdXJpdHlPcmlnaW4oKSwga2V5U3lz
dGVtKTsKKyAgICBtX3VpQ2xpZW50LT5kZWNpZGVQb2xpY3lGb3JNZWRpYUtleVN5c3RlbVBlcm1p
c3Npb25SZXF1ZXN0KCp0aGlzLCBvcmlnaW4sIGtleVN5c3RlbSwgW3JlcXVlc3QgPSBXVEZNb3Zl
KHJlcXVlc3QpXShib29sIGFsbG93ZWQpIHsKKyAgICAgICAgaWYgKGFsbG93ZWQpCisgICAgICAg
ICAgICByZXF1ZXN0LT5hbGxvdygpOworICAgICAgICBlbHNlCisgICAgICAgICAgICByZXF1ZXN0
LT5kZW55KCk7CisgICAgfSk7CisjZWxzZQorICAgIFVOVVNFRF9QQVJBTShtZWRpYUtleVN5c3Rl
bUlEKTsKKyAgICBVTlVTRURfUEFSQU0oZnJhbWVJRCk7CisgICAgVU5VU0VEX1BBUkFNKHRvcExl
dmVsRG9jdW1lbnRPcmlnaW5EYXRhKTsKKyAgICBVTlVTRURfUEFSQU0oa2V5U3lzdGVtKTsKKyNl
bmRpZgorfQorCiAjaWYgRU5BQkxFKERFVklDRV9PUklFTlRBVElPTikKIHZvaWQgV2ViUGFnZVBy
b3h5OjpzaG91bGRBbGxvd0RldmljZU9yaWVudGF0aW9uQW5kTW90aW9uQWNjZXNzKEZyYW1lSWRl
bnRpZmllciBmcmFtZUlELCBGcmFtZUluZm9EYXRhJiYgZnJhbWVJbmZvLCBib29sIG1heVByb21w
dCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChEZXZpY2VPcmllbnRhdGlvbk9yTW90aW9uUGVybWlz
c2lvblN0YXRlKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKQEAgLTgzMDEsNiArODMyMiwxNyBA
QCB2b2lkIFdlYlBhZ2VQcm94eTo6c2hvdWxkQWxsb3dEZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlv
bkFjY2VzcyhGcmFtZUlkZW50aWZpZXIgZgogfQogI2VuZGlmCiAKKyNpZiBFTkFCTEUoRU5DUllQ
VEVEX01FRElBKQorTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eSYg
V2ViUGFnZVByb3h5OjptZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcigpCit7
CisgICAgaWYgKG1fbWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIpCisgICAg
ICAgIHJldHVybiAqbV9tZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcjsKKwor
ICAgIG1fbWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIgPSBtYWtlVW5pcXVl
PE1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk+KCp0aGlzKTsKKyAg
ICByZXR1cm4gKm1fbWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXI7Cit9Cisj
ZW5kaWYKKwogdm9pZCBXZWJQYWdlUHJveHk6OnJlcXVlc3ROb3RpZmljYXRpb25QZXJtaXNzaW9u
KHVpbnQ2NF90IHJlcXVlc3RJRCwgY29uc3QgU3RyaW5nJiBvcmlnaW5TdHJpbmcpCiB7CiAgICAg
aWYgKCFpc1JlcXVlc3RJRFZhbGlkKHJlcXVlc3RJRCkpCkBAIC0xMDQxNSw2ICsxMDQ0NywxMSBA
QCB2b2lkIFdlYlBhZ2VQcm94eTo6cmVxdWVzdFNwZWVjaFJlY29nbml0aW9uUGVybWlzc2lvbkJ5
RGVmYXVsdEFjdGlvbihjb25zdCBXZWJDbwogICAgIG1fc3BlZWNoUmVjb2duaXRpb25QZXJtaXNz
aW9uTWFuYWdlci0+ZGVjaWRlQnlEZWZhdWx0QWN0aW9uKG9yaWdpbiwgV1RGTW92ZShjb21wbGV0
aW9uSGFuZGxlcikpOwogfQogCit2b2lkIFdlYlBhZ2VQcm94eTo6cmVxdWVzdE1lZGlhS2V5U3lz
dGVtUGVybWlzc2lvbkJ5RGVmYXVsdEFjdGlvbihjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdp
biYgb3JpZ2luLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmIGNvbXBsZXRpb25IYW5k
bGVyKQoreworICAgIGNvbXBsZXRpb25IYW5kbGVyKGZhbHNlKTsKK30KKwogI2lmIEVOQUJMRShN
RURJQV9TVFJFQU0pCiAKIFdlYkNvcmU6OkNhcHR1cmVTb3VyY2VPckVycm9yIFdlYlBhZ2VQcm94
eTo6Y3JlYXRlUmVhbHRpbWVNZWRpYVNvdXJjZUZvclNwZWVjaFJlY29nbml0aW9uKCkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKaW5kZXggNmE5OTFkYzA1ZWU0YzM2MmU3OTA1
ZWFlNzgzMTZjMWI2NDI0N2QxMy4uMWRkZmZhYzZiYTUwZDNkZDUwMTJhMWNlN2U0NjQxN2E2YjQ1
ODFlNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgK
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKQEAgLTQwLDYgKzQw
LDcgQEAKICNpbmNsdWRlICJHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5
LmgiCiAjaW5jbHVkZSAiSGlkZGVuUGFnZVRocm90dGxpbmdBdXRvSW5jcmVhc2VzQ291bnRlci5o
IgogI2luY2x1ZGUgIkxheWVyVHJlZUNvbnRleHQuaCIKKyNpbmNsdWRlICJNZWRpYUtleVN5c3Rl
bVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmgiCiAjaW5jbHVkZSAiTWVkaWFQbGF5YmFj
a1N0YXRlLmgiCiAjaW5jbHVkZSAiTWVzc2FnZVNlbmRlci5oIgogI2luY2x1ZGUgIk5vdGlmaWNh
dGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmgiCkBAIC03Miw4ICs3Myw4IEBACiAj
aW5jbHVkZSAiV2ViUGFnZVByb3h5SWRlbnRpZmllci5oIgogI2luY2x1ZGUgIldlYlBhZ2VQcm94
eU1lc3NhZ2VzUmVwbGllcy5oIgogI2luY2x1ZGUgIldlYlBheW1lbnRDb29yZGluYXRvclByb3h5
LmgiCi0jaW5jbHVkZSAiV2ViUHJlZmVyZW5jZXMuaCIKICNpbmNsdWRlICJXZWJQb3B1cE1lbnVQ
cm94eS5oIgorI2luY2x1ZGUgIldlYlByZWZlcmVuY2VzLmgiCiAjaW5jbHVkZSAiV2ViVW5kb1N0
ZXBJRC5oIgogI2luY2x1ZGUgIldlYnNpdGVQb2xpY2llc0RhdGEuaCIKICNpbmNsdWRlIDxXZWJD
b3JlL0FjdGl2aXR5U3RhdGUuaD4KQEAgLTE4MTksNiArMTgyMCw4IEBAIHB1YmxpYzoKICAgICB2
b2lkIHJlcXVlc3RTcGVlY2hSZWNvZ25pdGlvblBlcm1pc3Npb24oY29uc3QgU3RyaW5nJiBsYW5n
LCBjb25zdCBXZWJDb3JlOjpDbGllbnRPcmlnaW4mLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKE9w
dGlvbmFsPFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uRXJyb3I+JiYpPiYmKTsKICAgICB2b2lk
IHJlcXVlc3RTcGVlY2hSZWNvZ25pdGlvblBlcm1pc3Npb25CeURlZmF1bHRBY3Rpb24oY29uc3Qg
V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4mLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYm
KTsKIAorICAgIHZvaWQgcmVxdWVzdE1lZGlhS2V5U3lzdGVtUGVybWlzc2lvbkJ5RGVmYXVsdEFj
dGlvbihjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbiYsIENvbXBsZXRpb25IYW5kbGVyPHZv
aWQoYm9vbCk+JiYpOworCiAgICAgdm9pZCBzeW5jSWZNb2NrRGV2aWNlc0VuYWJsZWRDaGFuZ2Vk
KCk7CiAKICNpZiBFTkFCTEUoQVBQX0hJR0hMSUdIVFMpCkBAIC0xOTk1LDYgKzE5OTgsMTEgQEAg
cHJpdmF0ZToKICAgICB2b2lkIGVudW1lcmF0ZU1lZGlhRGV2aWNlc0ZvckZyYW1lKFdlYkNvcmU6
OkZyYW1lSWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiB1c2Vy
TWVkaWFEb2N1bWVudE9yaWdpbkRhdGEsIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0
YSYgdG9wTGV2ZWxEb2N1bWVudE9yaWdpbkRhdGEsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoY29u
c3QgVmVjdG9yPFdlYkNvcmU6OkNhcHR1cmVEZXZpY2U+JiwgY29uc3QgU3RyaW5nJik+JiYpOwog
ICAgIHZvaWQgYmVnaW5Nb25pdG9yaW5nQ2FwdHVyZURldmljZXMoKTsKIAorI2lmIEVOQUJMRShF
TkNSWVBURURfTUVESUEpCisgICAgTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdE1hbmFn
ZXJQcm94eSYgbWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIoKTsKKyNlbmRp
ZgorICAgIHZvaWQgcmVxdWVzdE1lZGlhS2V5U3lzdGVtUGVybWlzc2lvbkZvckZyYW1lKHVpbnQ2
NF90IG1lZGlhS2V5U3lzdGVtSUQsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgY29uc3QgV2Vi
Q29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiB0b3BMZXZlbERvY3VtZW50T3JpZ2luSWRlbnRpZmll
ciwgY29uc3QgU3RyaW5nJik7CisKICAgICB2b2lkIHJ1bk1vZGFsKCk7CiAgICAgdm9pZCBub3Rp
ZnlTY3JvbGxlclRodW1iSXNWaXNpYmxlSW5SZWN0KGNvbnN0IFdlYkNvcmU6OkludFJlY3QmKTsK
ICAgICB2b2lkIHJlY29tbWVuZGVkU2Nyb2xsYmFyU3R5bGVEaWRDaGFuZ2UoaW50MzJfdCBuZXdT
dHlsZSk7CkBAIC0yNTA0LDYgKzI1MTIsMTAgQEAgcHJpdmF0ZToKICAgICBzdGQ6OnVuaXF1ZV9w
dHI8VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk+IG1fdXNlck1lZGlhUGVy
bWlzc2lvblJlcXVlc3RNYW5hZ2VyOwogI2VuZGlmCiAKKyNpZiBFTkFCTEUoRU5DUllQVEVEX01F
RElBKQorICAgIHN0ZDo6dW5pcXVlX3B0cjxNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0
TWFuYWdlclByb3h5PiBtX21lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyOwor
I2VuZGlmCisKICAgICBPcHRpb25TZXQ8V2ViQ29yZTo6QWN0aXZpdHlTdGF0ZTo6RmxhZz4gbV9h
Y3Rpdml0eVN0YXRlOwogICAgIGJvb2wgbV92aWV3V2FzRXZlckluV2luZG93IHsgZmFsc2UgfTsK
ICNpZiBQTEFURk9STShNQUNDQVRBTFlTVCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbgppbmRleCBmNDAzNDY5OGEzZWNlYjU2ZDk3MzVlYmRk
ZDdjZDNjNDRiZTkyNjExLi44MTBhNmU0M2EwMDkxODA3MTQxMDMxZjYyNTEwZjBkODE3ZjBiYjlh
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2Fn
ZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2Vz
LmluCkBAIC0yODAsNiArMjgwLDEwIEBAIG1lc3NhZ2VzIC0+IFdlYlBhZ2VQcm94eSB7CiAgICAg
QmVnaW5Nb25pdG9yaW5nQ2FwdHVyZURldmljZXMoKQogI2VuZGlmCiAKKyNpZiBFTkFCTEUoRU5D
UllQVEVEX01FRElBKQorICAgIFJlcXVlc3RNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25Gb3JGcmFt
ZSh1aW50NjRfdCB1c2VyTWVkaWFJRCwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQs
IHN0cnVjdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEgdG9wTGV2ZWxEb2N1bWVudE9yaWdp
bklkZW50aWZpZXIsIFN0cmluZyBrZXlTeXN0ZW0pCisjZW5kaWYKKwogICAgICMgTm90aWZpY2F0
aW9uIG1lc3NhZ2VzCiAgICAgUmVxdWVzdE5vdGlmaWNhdGlvblBlcm1pc3Npb24odWludDY0X3Qg
cmVxdWVzdElELCBTdHJpbmcgb3JpZ2luSWRlbnRpZmllcikKICAgICBTaG93Tm90aWZpY2F0aW9u
KFN0cmluZyB0aXRsZSwgU3RyaW5nIGJvZHksIFN0cmluZyBpY29uVVJMLCBTdHJpbmcgdGFnLCBT
dHJpbmcgbGFuZywgZW51bTp1aW50OF90IFdlYkNvcmU6Ok5vdGlmaWNhdGlvbkRpcmVjdGlvbiBk
aXIsIFN0cmluZyBvcmlnaW5JZGVudGlmaWVyLCB1aW50NjRfdCBub3RpZmljYXRpb25JRCkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2og
Yi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDVh
YmE5NmYzNjU3NmQyOGE5MjMzMTIyMmRjYTY3NTJjZWRjOTI0MzYuLjcwODUwNDE3ZDE1ZWMyYzc5
YzgwNDQzNjRlMzk5NDJmMWFhZTg5YWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMTUyMCw2ICsxNTIwLDEyIEBACiAJCTk5RTcxNEM1
MUMxMjRBMDQwMDY2NUIzQSAvKiBfV0tBdXRvbWF0aW9uRGVsZWdhdGUuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk5RTcxNEMxMUMxMjQ5RTYwMDY2NUIz
QSAvKiBfV0tBdXRvbWF0aW9uRGVsZWdhdGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9
IChQcml2YXRlLCApOyB9OyB9OwogCQk5OUU3MTg5QTIxRjc5RDlFMDA1NUU5NzUgLyogX1dLVG91
Y2hFdmVudEdlbmVyYXRvci5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDk5RTcxODk2MjFGNzlEOUQwMDU1RTk3NSAvKiBfV0tUb3VjaEV2ZW50R2VuZXJh
dG9yLm1tICovOyB9OwogCQk5OUU3MTg5QzIxRjc5RDlFMDA1NUU5NzUgLyogX1dLVG91Y2hFdmVu
dEdlbmVyYXRvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gOTlFNzE4OTgyMUY3OUQ5RTAwNTVFOTc1IC8qIF9XS1RvdWNoRXZlbnRHZW5lcmF0b3IuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk5QUNDMDdB
RDI1QzgxMzJEMDBEQzYzODYgLyogTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdE1hbmFn
ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDlBQ0Mw
N0FDMjVDODEzMkQwMERDNjM4NiAvKiBNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0TWFu
YWdlci5oICovOyB9OworCQk5QUNDMDdCMTI1QzgxNUQ4MDBEQzYzODYgLyogTWVkaWFLZXlTeXN0
ZW1QZXJtaXNzaW9uUmVxdWVzdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gOUFDQzA3QjAyNUM4MTVEODAwREM2Mzg2IC8qIE1lZGlhS2V5U3lzdGVtUGVy
bWlzc2lvblJlcXVlc3QuaCAqLzsgfTsKKwkJOUFDQzA3QjMyNUM4MTVGMzAwREM2Mzg2IC8qIE1l
ZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDlBQ0MwN0IyMjVDODE1RjMwMERDNjM4
NiAvKiBNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmggKi87IH07
CisJCTlBQ0MwN0I1MjVDODE2MEMwMERDNjM4NiAvKiBNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25S
ZXF1ZXN0UHJveHkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDlBQ0MwN0I0MjVDODE2MEIwMERDNjM4NiAvKiBNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25S
ZXF1ZXN0UHJveHkuaCAqLzsgfTsKKwkJOUFDQzA3QjcyNUM4MUQzNDAwREM2Mzg2IC8qIFdlYk1l
ZGlhS2V5U3lzdGVtQ2xpZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA5QUNDMDdCNjI1QzgxRDMzMDBEQzYzODYgLyogV2ViTWVkaWFLZXlTeXN0ZW1D
bGllbnQuaCAqLzsgfTsKKwkJOUFDQzA3QjkyNUM4MjE4NDAwREM2Mzg2IC8qIFdLTWVkaWFLZXlT
eXN0ZW1QZXJtaXNzaW9uQ2FsbGJhY2suaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDlBQ0MwN0I4MjVDODIxODMwMERDNjM4NiAvKiBXS01lZGlhS2V5U3lz
dGVtUGVybWlzc2lvbkNhbGxiYWNrLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKIAkJOUIwMkUwQ0IyMzVFQjk1MzAwNDA0NEIyIC8qIF9XS1RleHRNYW5p
cHVsYXRpb25EZWxlZ2F0ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gOUIwMkUwQzkyMzVFQjYyRDAwNDA0NEIyIC8qIF9XS1RleHRNYW5pcHVsYXRpb25E
ZWxlZ2F0ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CiAJCTlCMDJFMENDMjM1RUI5NTcwMDQwNDRCMiAvKiBfV0tUZXh0TWFuaXB1bGF0aW9uSXRlbS5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOUIwMkUwQ0Ey
MzVFQjg4NDAwNDA0NEIyIC8qIF9XS1RleHRNYW5pcHVsYXRpb25JdGVtLmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJOUIwMkUwRDcyMzVGQzk0RjAw
NDA0NEIyIC8qIF9XS1RleHRNYW5pcHVsYXRpb25Ub2tlbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOUIwMkUwQ0QyMzVFQjk2NzAwNDA0NEIyIC8qIF9X
S1RleHRNYW5pcHVsYXRpb25Ub2tlbi5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFBy
aXZhdGUsICk7IH07IH07CkBAIC00ODY3LDYgKzQ4NzMsMTIgQEAKIAkJOTlFNzE4OTYyMUY3OUQ5
RDAwNTVFOTc1IC8qIF9XS1RvdWNoRXZlbnRHZW5lcmF0b3IubW0gKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5vYmpjcHA7IHBhdGggPSBfV0tUb3VjaEV2ZW50R2VuZXJhdG9yLm1tOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk5OUU3MTg5ODIxRjc5RDlFMDA1NUU5NzUgLyogX1dLVG91
Y2hFdmVudEdlbmVyYXRvci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBfV0tU
b3VjaEV2ZW50R2VuZXJhdG9yLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTk5RjY0
MkQyMUZBQkUzNzgwMDk2MjFFOSAvKiBDb29yZGluYXRlU3lzdGVtLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IENvb3JkaW5hdGVTeXN0ZW0uaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJOUFDQzA3QUMyNUM4MTMyRDAwREM2Mzg2IC8qIE1lZGlhS2V5U3lzdGVtUGVy
bWlzc2lvblJlcXVlc3RNYW5hZ2VyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9
IE1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyLmg7IHBhdGggPSBFbmNyeXB0
ZWRNZWRpYS9NZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlci5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQk5QUNDMDdCMDI1QzgxNUQ4MDBEQzYzODYgLyogTWVkaWFL
ZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0Lmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCTlBQ0MwN0IyMjVDODE1RjMwMERDNjM4NiAvKiBNZWRpYUtleVN5c3RlbVBl
cm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IE1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOUFDQzA3QjQyNUM4MTYwQjAwREM2Mzg2IC8qIE1l
ZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RQcm94eS5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0UHJveHkuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOUFDQzA3QjYyNUM4MUQzMzAwREM2Mzg2IC8qIFdl
Yk1lZGlhS2V5U3lzdGVtQ2xpZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFdlYk1lZGlhS2V5U3lzdGVtQ2xpZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CTlBQ0MwN0I4MjVDODIxODMwMERDNjM4NiAvKiBXS01lZGlhS2V5U3lzdGVtUGVybWlzc2lvbkNh
bGxiYWNrLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdLTWVkaWFLZXlTeXN0
ZW1QZXJtaXNzaW9uQ2FsbGJhY2suaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOUIw
MkUwQzkyMzVFQjYyRDAwNDA0NEIyIC8qIF9XS1RleHRNYW5pcHVsYXRpb25EZWxlZ2F0ZS5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBfV0tUZXh0TWFuaXB1bGF0aW9uRGVsZWdhdGUuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJOUIwMkUwQ0EyMzVFQjg4NDAwNDA0NEIyIC8qIF9XS1RleHRNYW5p
cHVsYXRpb25JdGVtLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IF9XS1RleHRNYW5pcHVsYXRpb25JdGVtLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTlCMDJFMENEMjM1RUI5NjcwMDQwNDRCMiAv
KiBfV0tUZXh0TWFuaXB1bGF0aW9uVG9rZW4uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gX1dLVGV4dE1hbmlw
dWxhdGlvblRva2VuLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC05MzI5LDYgKzkz
NDEsMTQgQEAKIAkJCXBhdGggPSBjb2NvYTsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CiAJ
CX07CisJCTlBQ0MwN0E5MjVDODEyRTcwMERDNjM4NiAvKiBFbmNyeXB0ZWRNZWRpYSAqLyA9IHsK
KwkJCWlzYSA9IFBCWEdyb3VwOworCQkJY2hpbGRyZW4gPSAoCisJCQkJOUFDQzA3QUMyNUM4MTMy
RDAwREM2Mzg2IC8qIE1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyLmggKi8s
CisJCQkpOworCQkJbmFtZSA9IEVuY3J5cHRlZE1lZGlhOworCQkJc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsKKwkJfTsKIAkJQTE1Nzk5QUMyNTg0NDMzMTAwNTI4MjM2IC8qIE1lZGlhRm9ybWF0UmVh
ZGVyICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKQEAgLTk0NDcs
NiArOTQ2Nyw3IEBACiAJCQkJNDFEMTI5RDgxRjNEMTAxNDAwRDE1RTQ3IC8qIENhY2hlICovLAog
CQkJCTdDNkU3MEY4MThCMkQ0N0UwMEYyNEUyRSAvKiBjb2NvYSAqLywKIAkJCQk1MTJBOTc1NDE4
MERGOTI3MDAzOUExNDkgLyogRGF0YWJhc2VzICovLAorCQkJCTlBQ0MwN0E5MjVDODEyRTcwMERD
NjM4NiAvKiBFbmNyeXB0ZWRNZWRpYSAqLywKIAkJCQlCQ0FDQzQzQjE2QjI0QzVEMDBCNkUwOTIg
LyogRW50cnlQb2ludCAqLywKIAkJCQlFMTcwODc2RDE2RDZDQTcyMDBGOTkyMjYgLyogRmlsZUFQ
SSAqLywKIAkJCQlDRDczQkEzRDEzMUEyQTIxMDBFRURFRDIgLyogRnVsbFNjcmVlbiAqLywKQEAg
LTk1MTIsNiArOTUzMyw3IEBACiAJCQkJQkMwMzJENkExMEY0Mzc4RDAwNThDMTVBIC8qIFdlYkZy
YW1lTG9hZGVyQ2xpZW50LmggKi8sCiAJCQkJQkMxQkUxREYxMkQ1NEE0MTAwMDRBMjI4IC8qIFdl
Ykdlb2xvY2F0aW9uQ2xpZW50LmNwcCAqLywKIAkJCQlCQzFCRTFERTEyRDU0QTQxMDAwNEEyMjgg
LyogV2ViR2VvbG9jYXRpb25DbGllbnQuaCAqLywKKwkJCQk5QUNDMDdCNjI1QzgxRDMzMDBEQzYz
ODYgLyogV2ViTWVkaWFLZXlTeXN0ZW1DbGllbnQuaCAqLywKIAkJCQk1MTNGRkI4RTIwMTQ1OUMy
MDAyNTk2RUEgLyogV2ViTWVzc2FnZVBvcnRDaGFubmVsUHJvdmlkZXIuY3BwICovLAogCQkJCTUx
M0ZGQjhGMjAxNDU5QzIwMDI1OTZFQSAvKiBXZWJNZXNzYWdlUG9ydENoYW5uZWxQcm92aWRlci5o
ICovLAogCQkJCTMxMDk5OTcxMTQ2Qzc1OUIwMDI5REVCOSAvKiBXZWJOb3RpZmljYXRpb25DbGll
bnQuY3BwICovLApAQCAtOTY1MSw2ICs5NjczLDkgQEAKIAkJCQk1Q0VBQkEyQjIzMzMyNTE0MDA3
OTc3OTcgLyogTGVnYWN5R2xvYmFsU2V0dGluZ3MuY3BwICovLAogCQkJCTVDRUFCQTJBMjMzMzI0
NzcwMDc5Nzc5NyAvKiBMZWdhY3lHbG9iYWxTZXR0aW5ncy5oICovLAogCQkJCTMxNjA3RjM4MTk2
MjcwMDIwMDlCODdEQSAvKiBMZWdhY3lTZXNzaW9uU3RhdGVDb2RpbmcuaCAqLywKKwkJCQk5QUND
MDdCMDI1QzgxNUQ4MDBEQzYzODYgLyogTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdC5o
ICovLAorCQkJCTlBQ0MwN0IyMjVDODE1RjMwMERDNjM4NiAvKiBNZWRpYUtleVN5c3RlbVBlcm1p
c3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmggKi8sCisJCQkJOUFDQzA3QjQyNUM4MTYwQjAwREM2
Mzg2IC8qIE1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RQcm94eS5oICovLAogCQkJCTkz
NDI1ODk4MjU1QjUzNEIwMDU5RUVERCAvKiBNZWRpYVBlcm1pc3Npb25VdGlsaXRpZXMuaCAqLywK
IAkJCQlCQzZFREFBNTExMTI3MUM2MDBFNzY3OEIgLyogUGFnZUNsaWVudC5oICovLAogCQkJCTFB
Qzc1Mzc5MTgzQTlGREEwMDcyQ0IxNSAvKiBQYWdlTG9hZFN0YXRlLmNwcCAqLywKQEAgLTk5NjMs
NiArOTk4OCw3IEBACiAJCQkJNTFBOUUxMDgxMzE1Q0QxODAwOUU3MDMxIC8qIFdLS2V5VmFsdWVT
dG9yYWdlTWFuYWdlci5jcHAgKi8sCiAJCQkJNTFBOUUxMDkxMzE1Q0QxODAwOUU3MDMxIC8qIFdL
S2V5VmFsdWVTdG9yYWdlTWFuYWdlci5oICovLAogCQkJCTJENzkwQTlFMUFENzE2NDkwMEFCOTBC
MyAvKiBXS0xheW91dE1vZGUuaCAqLywKKwkJCQk5QUNDMDdCODI1QzgyMTgzMDBEQzYzODYgLyog
V0tNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25DYWxsYmFjay5oICovLAogCQkJCTVDQUJEQzg0MjJD
NDBGQ0MwMDFFREU4RSAvKiBXS01lc3NhZ2VMaXN0ZW5lci5jcHAgKi8sCiAJCQkJNUNBQkRDODUy
MkM0MEZDQzAwMUVERThFIC8qIFdLTWVzc2FnZUxpc3RlbmVyLmggKi8sCiAJCQkJQzExRTE2OTMy
MTJCODdDNTAwOTg1RkY2IC8qIFdLTW9ja0Rpc3BsYXkuY3BwICovLApAQCAtMTE2ODQsNiArMTE3
MTAsMTAgQEAKIAkJCQlCQ0M1NkY3OTExNTk5NTdEMDAxQ0NBRjkgLyogTWFjaFBvcnQuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTFBMjRCNUYzMTFGNTMxRTgwMEMzODI2OSAvKiBNYWNoVXRpbGl0aWVz
LmggaW4gSGVhZGVycyAqLywKIAkJCQlBMTU3OTlCRTI1ODQ0MzMyMDA1MjgyMzYgLyogTWVkaWFG
b3JtYXRSZWFkZXIuaCBpbiBIZWFkZXJzICovLAorCQkJCTlBQ0MwN0IxMjVDODE1RDgwMERDNjM4
NiAvKiBNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0LmggaW4gSGVhZGVycyAqLywKKwkJ
CQk5QUNDMDdBRDI1QzgxMzJEMDBEQzYzODYgLyogTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVx
dWVzdE1hbmFnZXIuaCBpbiBIZWFkZXJzICovLAorCQkJCTlBQ0MwN0IzMjVDODE1RjMwMERDNjM4
NiAvKiBNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmggaW4gSGVh
ZGVycyAqLywKKwkJCQk5QUNDMDdCNTI1QzgxNjBDMDBEQzYzODYgLyogTWVkaWFLZXlTeXN0ZW1Q
ZXJtaXNzaW9uUmVxdWVzdFByb3h5LmggaW4gSGVhZGVycyAqLywKIAkJCQk5MzQyNTg5QTI1NUI1
MzVBMDA1OUVFREQgLyogTWVkaWFQZXJtaXNzaW9uVXRpbGl0aWVzLmggaW4gSGVhZGVycyAqLywK
IAkJCQkwN0UxOUVGQzIzRDQwMUYxMDA5NEZGQjQgLyogTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3Rl
TWVzc2FnZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTA3RTE5RUZEMjNENDAxRjEwMDk0RkZCNCAv
KiBNZWRpYVBsYXllclByaXZhdGVSZW1vdGVNZXNzYWdlc1JlcGxpZXMuaCBpbiBIZWFkZXJzICov
LApAQCAtMTE3MzcsNiArMTE3NjcsNyBAQAogCQkJCTgzOTkwMjAzMUJFOUEwMkIwMDBGMzY1MyAv
KiBOZXR3b3JrTG9hZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODNENDU0RDcxQkU5RDNDNDAwNkM5
M0JEIC8qIE5ldHdvcmtMb2FkQ2xpZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQk4MzkxNDk2NTFC
RUE4Mzg1MDBEMkQ5NTMgLyogTmV0d29ya0xvYWRQYXJhbWV0ZXJzLmggaW4gSGVhZGVycyAqLywK
KwkJCQlFNDdGQzhBMDI1QjgzMzFDMDA1NDk1RkMgLyogTmV0d29ya0xvYWRTY2hlZHVsZXIuaCBp
biBIZWFkZXJzICovLAogCQkJCTUxNzk1NTZBMTYyODc2RjMwMEZBNDNCNiAvKiBOZXR3b3JrUHJv
Y2Vzcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTE3Q0YwRTQxNjNBNDg2QzAwQzI5NTBFIC8qIE5l
dHdvcmtQcm9jZXNzQ29ubmVjdGlvbk1lc3NhZ2VzLmggaW4gSGVhZGVycyAqLywKIAkJCQk1QzE0
MjZFRDFDMjNGODA5MDBENDExODMgLyogTmV0d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMu
aCBpbiBIZWFkZXJzICovLApAQCAtMTIxMDAsNyArMTIxMzEsNiBAQAogCQkJCTkzQTg4QjMzMUJD
NkU5Q0QwMEFCQTVDMiAvKiBXZWJIaXRUZXN0UmVzdWx0RGF0YS5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJRjQ0REZFQjIxRTlFNzUyRjAwMzhEMTk2IC8qIFdlYkljb25VdGlsaXRpZXMuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTkzMjYxMTYxMjE0MDU0RjQwMDA4MDZFNyAvKiBXZWJJREJDb25uZWN0aW9u
VG9DbGllbnQuaCBpbiBIZWFkZXJzICovLAotCQkJCUU0N0ZDOEEwMjVCODMzMUMwMDU0OTVGQyAv
KiBOZXR3b3JrTG9hZFNjaGVkdWxlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTE0MTI5OTQxQzY0
MjhCQjAwNTlFNzE0IC8qIFdlYklEQkNvbm5lY3Rpb25Ub1NlcnZlci5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJNTEwNTIzNzQxQzczRDM4QjAwNzk5M0NCIC8qIFdlYklEQkNvbm5lY3Rpb25Ub1NlcnZl
ck1lc3NhZ2VzLmggaW4gSGVhZGVycyAqLywKIAkJCQk5MzNFODM1NTIzQTA3QzA2MDBERUYyODkg
LyogV2ViSURCU2VydmVyLmggaW4gSGVhZGVycyAqLywKQEAgLTEyMTI2LDYgKzEyMTU2LDcgQEAK
IAkJCQlCQzlCQTUwNTE2OTdDNDUzMDBFNDQ2MTYgLyogV2ViS2l0MkluaXRpYWxpemUuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTFBNjI4MEM3MTkxOTk1MEMwMDZBRDlGOSAvKiBXZWJLaXRQcml2YXRl
LmggaW4gSGVhZGVycyAqLywKIAkJCQlDRDAwM0E1MzE5RDQ5QjVEMDA1QUJDRTAgLyogV2ViTWVk
aWFLZXlTdG9yYWdlTWFuYWdlci5oIGluIEhlYWRlcnMgKi8sCisJCQkJOUFDQzA3QjcyNUM4MUQz
NDAwREM2Mzg2IC8qIFdlYk1lZGlhS2V5U3lzdGVtQ2xpZW50LmggaW4gSGVhZGVycyAqLywKIAkJ
CQk5QjVCRUMyNjI0MDBGNEE5MDA3MEM2RUYgLyogV2ViTWVkaWFTdHJhdGVneS5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJMkQzRUY0NDMxOTE3NjQ2MzAwMDM0MTg0IC8qIFdlYk1lbW9yeVByZXNzdXJl
SGFuZGxlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTA5ODU0RUQxMkJDNEUxODAwMEFEMDgwIC8q
IFdlYk1lbW9yeVNhbXBsZXIuaCBpbiBIZWFkZXJzICovLApAQCAtMTI0MzQsNiArMTI0NjUsNyBA
QAogCQkJCTJENzkwQTlGMUFENzE2NDkwMEFCOTBCMyAvKiBXS0xheW91dE1vZGUuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTVDRTkxMjE0MjI5M0MyODAwMDVCRUM3OCAvKiBXS01haW4uaCBpbiBIZWFk
ZXJzICovLAogCQkJCUExNTc5QjI4MjU4NDkwRTUwMDUyODIzNiAvKiBXS01lZGlhRm9ybWF0UmVh
ZGVyLmggaW4gSGVhZGVycyAqLywKKwkJCQk5QUNDMDdCOTI1QzgyMTg0MDBEQzYzODYgLyogV0tN
ZWRpYUtleVN5c3RlbVBlcm1pc3Npb25DYWxsYmFjay5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDk5
MTdEQTcyNTJENjQ5RTAwNTAzMTNGIC8qIFdLTWVkaWFQbGF5YmFja1N0YXRlLmggaW4gSGVhZGVy
cyAqLywKIAkJCQkxQUI0MEVFNjFCRjY3N0UzMDBCQTgxQkUgLyogV0tNZW51SXRlbUlkZW50aWZp
ZXJzUHJpdmF0ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNUNBQkRDODYyMkM0MEZERTAwMUVERThF
IC8qIFdLTWVzc2FnZUxpc3RlbmVyLmggaW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9FbmNyeXB0ZWRNZWRpYS9NZWRpYUtleVN5c3RlbVBlcm1pc3Np
b25SZXF1ZXN0TWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvRW5jcnlwdGVk
TWVkaWEvTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIuY3BwCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmEyNDk4ODJkMDdhOTllNzVkMDkxYmZiNzJhZWVjODMxNjQ4NTc3MzgKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvRW5jcnlwdGVkTWVkaWEvTWVkaWFLZXlT
eXN0ZW1QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIuY3BwCkBAIC0wLDAgKzEsMTMyIEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDIxIElnYWxpYSBTLkwuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBg
QVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklC
VVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJj
b25maWcuaCIKKyNpbmNsdWRlICJNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdl
ci5oIgorCisjaWYgRU5BQkxFKEVOQ1JZUFRFRF9NRURJQSkKKworI2luY2x1ZGUgIkxvZ2dpbmcu
aCIKKyNpbmNsdWRlICJXZWJDb3JlQXJndW1lbnRDb2RlcnMuaCIKKyNpbmNsdWRlICJXZWJGcmFt
ZS5oIgorI2luY2x1ZGUgIldlYlBhZ2UuaCIKKyNpbmNsdWRlICJXZWJQYWdlUHJveHlNZXNzYWdl
cy5oIgorI2luY2x1ZGUgPFdlYkNvcmUvRG9jdW1lbnQuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0Zy
YW1lLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9GcmFtZUxvYWRlci5oPgorI2luY2x1ZGUgPFdlYkNv
cmUvU2VjdXJpdHlPcmlnaW4uaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1NlY3VyaXR5T3JpZ2luRGF0
YS5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOworCitN
ZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcjo6TWVkaWFLZXlTeXN0ZW1QZXJt
aXNzaW9uUmVxdWVzdE1hbmFnZXIoV2ViUGFnZSYgcGFnZSkKKyAgICA6IG1fcGFnZShwYWdlKQor
eworfQorCit2b2lkIE1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyOjpzdGFy
dE1lZGlhS2V5U3lzdGVtUmVxdWVzdChNZWRpYUtleVN5c3RlbVJlcXVlc3QmIHJlcXVlc3QpCit7
CisgICAgRG9jdW1lbnQqIGRvY3VtZW50ID0gcmVxdWVzdC5kb2N1bWVudCgpOworICAgIEZyYW1l
KiBmcmFtZSA9IGRvY3VtZW50ID8gZG9jdW1lbnQtPmZyYW1lKCkgOiBudWxscHRyOworCisgICAg
aWYgKCFmcmFtZSB8fCAhZG9jdW1lbnQtPnBhZ2UoKSkgeworICAgICAgICByZXF1ZXN0LmRlbnko
ZW1wdHlTdHJpbmcoKSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBpZiAoZG9jdW1l
bnQtPnBhZ2UoKS0+Y2FuU3RhcnRNZWRpYSgpKSB7CisgICAgICAgIHNlbmRNZWRpYUtleVN5c3Rl
bVJlcXVlc3QocmVxdWVzdCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBhdXRvJiBw
ZW5kaW5nUmVxdWVzdHMgPSBtX3BlbmRpbmdNZWRpYUtleVN5c3RlbVJlcXVlc3RzLmFkZChkb2N1
bWVudCwgVmVjdG9yPFJlZjxNZWRpYUtleVN5c3RlbVJlcXVlc3Q+PigpKS5pdGVyYXRvci0+dmFs
dWU7CisgICAgcGVuZGluZ1JlcXVlc3RzLmFwcGVuZChyZXF1ZXN0KTsKK30KKwordm9pZCBNZWRp
YUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcjo6c2VuZE1lZGlhS2V5U3lzdGVtUmVx
dWVzdChNZWRpYUtleVN5c3RlbVJlcXVlc3QmIHVzZXJSZXF1ZXN0KQoreworICAgIGF1dG8qIGZy
YW1lID0gdXNlclJlcXVlc3QuZG9jdW1lbnQoKSA/IHVzZXJSZXF1ZXN0LmRvY3VtZW50KCktPmZy
YW1lKCkgOiBudWxscHRyOworICAgIGlmICghZnJhbWUpIHsKKyAgICAgICAgdXNlclJlcXVlc3Qu
ZGVueShlbXB0eVN0cmluZygpKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIG1fb25n
b2luZ01lZGlhS2V5U3lzdGVtUmVxdWVzdHMuYWRkKHVzZXJSZXF1ZXN0LmlkZW50aWZpZXIoKSwg
bWFrZVJlZih1c2VyUmVxdWVzdCkpOworCisgICAgV2ViRnJhbWUqIHdlYkZyYW1lID0gV2ViRnJh
bWU6OmZyb21Db3JlRnJhbWUoKmZyYW1lKTsKKyAgICBBU1NFUlQod2ViRnJhbWUpOworCisgICAg
YXV0byogdG9wTGV2ZWxEb2N1bWVudE9yaWdpbiA9IHVzZXJSZXF1ZXN0LnRvcExldmVsRG9jdW1l
bnRPcmlnaW4oKTsKKyAgICBtX3BhZ2Uuc2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpSZXF1
ZXN0TWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uRm9yRnJhbWUodXNlclJlcXVlc3QuaWRlbnRpZmll
cigpLnRvVUludDY0KCksIHdlYkZyYW1lLT5mcmFtZUlEKCksIHRvcExldmVsRG9jdW1lbnRPcmln
aW4tPmRhdGEoKSwgdXNlclJlcXVlc3Qua2V5U3lzdGVtKCkpKTsKK30KKwordm9pZCBNZWRpYUtl
eVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcjo6Y2FuY2VsTWVkaWFLZXlTeXN0ZW1SZXF1
ZXN0KE1lZGlhS2V5U3lzdGVtUmVxdWVzdCYgcmVxdWVzdCkKK3sKKyAgICBpZiAoYXV0byByZW1v
dmVkUmVxdWVzdCA9IG1fb25nb2luZ01lZGlhS2V5U3lzdGVtUmVxdWVzdHMudGFrZShyZXF1ZXN0
LmlkZW50aWZpZXIoKSkpCisgICAgICAgIHJldHVybjsKKworICAgIGF1dG8qIGRvY3VtZW50ID0g
cmVxdWVzdC5kb2N1bWVudCgpOworICAgIGlmICghZG9jdW1lbnQpCisgICAgICAgIHJldHVybjsK
KworICAgIGF1dG8gaXRlcmF0b3IgPSBtX3BlbmRpbmdNZWRpYUtleVN5c3RlbVJlcXVlc3RzLmZp
bmQoZG9jdW1lbnQpOworICAgIGlmIChpdGVyYXRvciA9PSBtX3BlbmRpbmdNZWRpYUtleVN5c3Rl
bVJlcXVlc3RzLmVuZCgpKQorICAgICAgICByZXR1cm47CisKKyAgICBhdXRvJiBwZW5kaW5nUmVx
dWVzdHMgPSBpdGVyYXRvci0+dmFsdWU7CisgICAgcGVuZGluZ1JlcXVlc3RzLnJlbW92ZUZpcnN0
TWF0Y2hpbmcoWyZyZXF1ZXN0XShhdXRvJiBpdGVtKSB7CisgICAgICAgIHJldHVybiAmcmVxdWVz
dCA9PSBpdGVtLnB0cigpOworICAgIH0pOworCisgICAgaWYgKCFwZW5kaW5nUmVxdWVzdHMuaXNF
bXB0eSgpKQorICAgICAgICByZXR1cm47CisKKyAgICBtX3BlbmRpbmdNZWRpYUtleVN5c3RlbVJl
cXVlc3RzLnJlbW92ZShpdGVyYXRvcik7Cit9CisKK3ZvaWQgTWVkaWFLZXlTeXN0ZW1QZXJtaXNz
aW9uUmVxdWVzdE1hbmFnZXI6Om1lZGlhS2V5U3lzdGVtV2FzR3JhbnRlZCh1aW50NjRfdCByZXF1
ZXN0SUQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3sK
KyAgICBhdXRvIHJlcXVlc3QgPSBtX29uZ29pbmdNZWRpYUtleVN5c3RlbVJlcXVlc3RzLnRha2Uo
bWFrZU9iamVjdElkZW50aWZpZXI8TWVkaWFLZXlTeXN0ZW1SZXF1ZXN0SWRlbnRpZmllclR5cGU+
KHJlcXVlc3RJRCkpOworICAgIGlmICghcmVxdWVzdCkgeworICAgICAgICBjb21wbGV0aW9uSGFu
ZGxlcigpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgcmVxdWVzdC0+YWxsb3coV1RG
TW92ZShjb21wbGV0aW9uSGFuZGxlcikpOworfQorCit2b2lkIE1lZGlhS2V5U3lzdGVtUGVybWlz
c2lvblJlcXVlc3RNYW5hZ2VyOjptZWRpYUtleVN5c3RlbVdhc0RlbmllZCh1aW50NjRfdCByZXF1
ZXN0SUQsIFN0cmluZyYmIG1lc3NhZ2UpCit7CisgICAgYXV0byByZXF1ZXN0ID0gbV9vbmdvaW5n
TWVkaWFLZXlTeXN0ZW1SZXF1ZXN0cy50YWtlKG1ha2VPYmplY3RJZGVudGlmaWVyPE1lZGlhS2V5
U3lzdGVtUmVxdWVzdElkZW50aWZpZXJUeXBlPihyZXF1ZXN0SUQpKTsKKyAgICBpZiAoIXJlcXVl
c3QpCisgICAgICAgIHJldHVybjsKKworICAgIHJlcXVlc3QtPmRlbnkoV1RGTW92ZShtZXNzYWdl
KSk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gRU5BQkxFKEVOQ1JZ
UFRFRF9NRURJQSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9FbmNyeXB0
ZWRNZWRpYS9NZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlci5oIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0VuY3J5cHRlZE1lZGlhL01lZGlhS2V5U3lzdGVtUGVybWlzc2lv
blJlcXVlc3RNYW5hZ2VyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODY5NTVmYjlkZWQ3MTE2MWNhZGY0YTIzNjkw
MmIyYzU0MjI1NjlhNgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9FbmNyeXB0ZWRNZWRpYS9NZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlci5o
CkBAIC0wLDAgKzEsNjMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgSWdhbGlhIFMuTC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoRU5DUllQVEVEX01FRElBKQor
CisjaW5jbHVkZSAiU2FuZGJveEV4dGVuc2lvbi5oIgorI2luY2x1ZGUgPFdlYkNvcmUvTWVkaWFL
ZXlTeXN0ZW1DbGllbnQuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL01lZGlhS2V5U3lzdGVtUmVxdWVz
dC5oPgorI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CisjaW5jbHVkZSA8d3RmL1JlZi5oPgorI2lu
Y2x1ZGUgPHd0Zi9SZWZQdHIuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIFdlYlBh
Z2U7CisKK2NsYXNzIE1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyIHsKKyAg
ICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKK3B1YmxpYzoKKyAgICBleHBsaWNpdCBNZWRpYUtl
eVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcihXZWJQYWdlJik7CisgICAgfk1lZGlhS2V5
U3lzdGVtUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyKCkgPSBkZWZhdWx0OworCisgICAgdm9pZCBz
dGFydE1lZGlhS2V5U3lzdGVtUmVxdWVzdChXZWJDb3JlOjpNZWRpYUtleVN5c3RlbVJlcXVlc3Qm
KTsKKyAgICB2b2lkIGNhbmNlbE1lZGlhS2V5U3lzdGVtUmVxdWVzdChXZWJDb3JlOjpNZWRpYUtl
eVN5c3RlbVJlcXVlc3QmKTsKKyAgICB2b2lkIG1lZGlhS2V5U3lzdGVtV2FzR3JhbnRlZCh1aW50
NjRfdCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKKyAgICB2b2lkIG1lZGlhS2V5U3lz
dGVtV2FzRGVuaWVkKHVpbnQ2NF90LCBTdHJpbmcmJik7CisKK3ByaXZhdGU6CisgICAgdm9pZCBz
ZW5kTWVkaWFLZXlTeXN0ZW1SZXF1ZXN0KFdlYkNvcmU6Ok1lZGlhS2V5U3lzdGVtUmVxdWVzdCYp
OworCisgICAgV2ViUGFnZSYgbV9wYWdlOworCisgICAgSGFzaE1hcDxXZWJDb3JlOjpNZWRpYUtl
eVN5c3RlbVJlcXVlc3RJZGVudGlmaWVyLCBSZWY8V2ViQ29yZTo6TWVkaWFLZXlTeXN0ZW1SZXF1
ZXN0Pj4gbV9vbmdvaW5nTWVkaWFLZXlTeXN0ZW1SZXF1ZXN0czsKKyAgICBIYXNoTWFwPFJlZlB0
cjxXZWJDb3JlOjpEb2N1bWVudD4sIFZlY3RvcjxSZWY8V2ViQ29yZTo6TWVkaWFLZXlTeXN0ZW1S
ZXF1ZXN0Pj4+IG1fcGVuZGluZ01lZGlhS2V5U3lzdGVtUmVxdWVzdHM7Cit9OworCit9IC8vIG5h
bWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIEVOQUJMRShNRURJQV9TVFJFQU0pCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViTWVkaWFLZXlT
eXN0ZW1DbGllbnQuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0
L1dlYk1lZGlhS2V5U3lzdGVtQ2xpZW50LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jZDJiOGE1YmQzOWQwMzE3
YTQ2ZmEzMWI4NDYxOTYzNTdjN2JmMTE4Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYk1lZGlhS2V5U3lzdGVtQ2xpZW50LmNwcApA
QCAtMCwwICsxLDYxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIElnYWxpYSBTLkwuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFO
RCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJXZWJNZWRpYUtleVN5c3Rl
bUNsaWVudC5oIgorCisjaWYgRU5BQkxFKEVOQ1JZUFRFRF9NRURJQSkKKworI2luY2x1ZGUgIk1l
ZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyLmgiCisjaW5jbHVkZSAiV2ViUGFn
ZS5oIgorI2luY2x1ZGUgPFdlYkNvcmUvTWVkaWFLZXlTeXN0ZW1Db250cm9sbGVyLmg+CisjaW5j
bHVkZSA8V2ViQ29yZS9NZWRpYUtleVN5c3RlbVJlcXVlc3QuaD4KKworbmFtZXNwYWNlIFdlYktp
dCB7Cit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKKworV2ViTWVkaWFLZXlTeXN0ZW1DbGllbnQ6
OldlYk1lZGlhS2V5U3lzdGVtQ2xpZW50KFdlYlBhZ2UmIHBhZ2UpCisgICAgOiBtX3BhZ2UocGFn
ZSkKK3sKK30KKwordm9pZCBXZWJNZWRpYUtleVN5c3RlbUNsaWVudDo6cGFnZURlc3Ryb3llZCgp
Cit7CisgICAgZGVsZXRlIHRoaXM7Cit9CisKK3ZvaWQgV2ViTWVkaWFLZXlTeXN0ZW1DbGllbnQ6
OnJlcXVlc3RNZWRpYUtleVN5c3RlbShNZWRpYUtleVN5c3RlbVJlcXVlc3QmIHJlcXVlc3QpCit7
CisgICAgbV9wYWdlLm1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyKCkuc3Rh
cnRNZWRpYUtleVN5c3RlbVJlcXVlc3QocmVxdWVzdCk7Cit9CisKK3ZvaWQgV2ViTWVkaWFLZXlT
eXN0ZW1DbGllbnQ6OmNhbmNlbE1lZGlhS2V5U3lzdGVtUmVxdWVzdChNZWRpYUtleVN5c3RlbVJl
cXVlc3QmIHJlcXVlc3QpCit7CisgICAgbV9wYWdlLm1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJl
cXVlc3RNYW5hZ2VyKCkuY2FuY2VsTWVkaWFLZXlTeXN0ZW1SZXF1ZXN0KHJlcXVlc3QpOworfQor
Cit9IC8vIG5hbWVzcGFjZSBXZWJLaXQ7CisKKyNlbmRpZiAvLyBFTkFCTEUoRU5DUllQVEVEX01F
RElBKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0
L1dlYk1lZGlhS2V5U3lzdGVtQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvV2ViTWVkaWFLZXlTeXN0ZW1DbGllbnQuaApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mNDgwMzJm
OGI5YWE2MGFmYjkxOGUwNDNmNTQ4MTFmZmIzMjI3Nzg2Ci0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYk1lZGlhS2V5U3lzdGVtQ2xp
ZW50LmgKQEAgLTAsMCArMSw1MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBJZ2FsaWEg
Uy5MLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShFTkNSWVBURURfTUVE
SUEpCisKKyNpbmNsdWRlIDxXZWJDb3JlL01lZGlhS2V5U3lzdGVtQ2xpZW50Lmg+CisKK25hbWVz
cGFjZSBXZWJLaXQgeworCitjbGFzcyBXZWJQYWdlOworCitjbGFzcyBXZWJNZWRpYUtleVN5c3Rl
bUNsaWVudCA6IHB1YmxpYyBXZWJDb3JlOjpNZWRpYUtleVN5c3RlbUNsaWVudCB7CisgICAgV1RG
X01BS0VfRkFTVF9BTExPQ0FURUQ7CitwdWJsaWM6CisgICAgV2ViTWVkaWFLZXlTeXN0ZW1DbGll
bnQoV2ViUGFnZSYpOworICAgIH5XZWJNZWRpYUtleVN5c3RlbUNsaWVudCgpIHsgfQorCitwcml2
YXRlOgorICAgIHZvaWQgcGFnZURlc3Ryb3llZCgpIG92ZXJyaWRlOworCisgICAgdm9pZCByZXF1
ZXN0TWVkaWFLZXlTeXN0ZW0oV2ViQ29yZTo6TWVkaWFLZXlTeXN0ZW1SZXF1ZXN0Jikgb3ZlcnJp
ZGU7CisgICAgdm9pZCBjYW5jZWxNZWRpYUtleVN5c3RlbVJlcXVlc3QoV2ViQ29yZTo6TWVkaWFL
ZXlTeXN0ZW1SZXF1ZXN0Jikgb3ZlcnJpZGU7CisKKyAgICBXZWJQYWdlJiBtX3BhZ2U7Cit9Owor
Cit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoRU5DUllQVEVEX01F
RElBKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFn
ZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAppbmRl
eCBjYWUwYTk3MThjZjdmZjlmNDAyMWY2Y2NhOTA0ZTI3NGJkMWIzMzNlLi5hYzdlMDM0OGQ2YzIx
Y2Q2NGQzOTAzZjRkOTgwNzkzYzI1ZDA5Zjg3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViUGFnZS9XZWJQYWdlLmNwcApAQCAtNDYsNiArNDYsNyBAQAogI2luY2x1ZGUgIkxpYldl
YlJUQ1Byb3ZpZGVyLmgiCiAjaW5jbHVkZSAiTG9hZFBhcmFtZXRlcnMuaCIKICNpbmNsdWRlICJM
b2dnaW5nLmgiCisjaW5jbHVkZSAiTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdE1hbmFn
ZXIuaCIKICNpbmNsdWRlICJNZWRpYVBsYXliYWNrU3RhdGUuaCIKICNpbmNsdWRlICJNZWRpYVJl
Y29yZGVyUHJvdmlkZXIuaCIKICNpbmNsdWRlICJOZXRzY2FwZVBsdWdpbi5oIgpAQCAtMTA0LDYg
KzEwNSw3IEBACiAjaW5jbHVkZSAiV2ViS2V5Ym9hcmRFdmVudC5oIgogI2luY2x1ZGUgIldlYkxv
YWRlclN0cmF0ZWd5LmgiCiAjaW5jbHVkZSAiV2ViTWVkaWFLZXlTdG9yYWdlTWFuYWdlci5oIgor
I2luY2x1ZGUgIldlYk1lZGlhS2V5U3lzdGVtQ2xpZW50LmgiCiAjaW5jbHVkZSAiV2ViTWVkaWFT
dHJhdGVneS5oIgogI2luY2x1ZGUgIldlYk1vdXNlRXZlbnQuaCIKICNpbmNsdWRlICJXZWJOb3Rp
ZmljYXRpb25DbGllbnQuaCIKQEAgLTQ2Nyw2ICs0NjksOSBAQCBXZWJQYWdlOjpXZWJQYWdlKFBh
Z2VJZGVudGlmaWVyIHBhZ2VJRCwgV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycyYmIHBhcmFtZXRl
cnMpCiAjZW5kaWYKICNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQogICAgICwgbV91c2VyTWVkaWFQ
ZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIgeyBtYWtlVW5pcXVlUmVmPFVzZXJNZWRpYVBlcm1pc3Np
b25SZXF1ZXN0TWFuYWdlcj4oKnRoaXMpIH0KKyNlbmRpZgorI2lmIEVOQUJMRShFTkNSWVBURURf
TUVESUEpCisgICAgLCBtX21lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyIHsg
bWFrZVVuaXF1ZVJlZjxNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcj4oKnRo
aXMpIH0KICNlbmRpZgogICAgICwgbV9wYWdlU2Nyb2xsZWRIeXN0ZXJlc2lzKFt0aGlzXShQQUw6
Okh5c3RlcmVzaXNTdGF0ZSBzdGF0ZSkgeyBpZiAoc3RhdGUgPT0gUEFMOjpIeXN0ZXJlc2lzU3Rh
dGU6OlN0b3BwZWQpIHBhZ2VTdG9wcGVkU2Nyb2xsaW5nKCk7IH0sIHBhZ2VTY3JvbGxIeXN0ZXJl
c2lzRHVyYXRpb24pCiAgICAgLCBtX2NhblJ1bkJlZm9yZVVubG9hZENvbmZpcm1QYW5lbChwYXJh
bWV0ZXJzLmNhblJ1bkJlZm9yZVVubG9hZENvbmZpcm1QYW5lbCkKQEAgLTY0OCw2ICs2NTMsOSBA
QCBXZWJQYWdlOjpXZWJQYWdlKFBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgV2ViUGFnZUNyZWF0aW9u
UGFyYW1ldGVycyYmIHBhcmFtZXRlcnMpCiAjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKICAgICBX
ZWJDb3JlOjpwcm92aWRlVXNlck1lZGlhVG8obV9wYWdlLmdldCgpLCBuZXcgV2ViVXNlck1lZGlh
Q2xpZW50KCp0aGlzKSk7CiAjZW5kaWYKKyNpZiBFTkFCTEUoRU5DUllQVEVEX01FRElBKQorICAg
IFdlYkNvcmU6OnByb3ZpZGVNZWRpYUtleVN5c3RlbVRvKG1fcGFnZS5nZXQoKSwgbmV3IFdlYk1l
ZGlhS2V5U3lzdGVtQ2xpZW50KCp0aGlzKSk7CisjZW5kaWYKIAogICAgIG1fcGFnZS0+c2V0Q29u
dHJvbGxlZEJ5QXV0b21hdGlvbihwYXJhbWV0ZXJzLmNvbnRyb2xsZWRCeUF1dG9tYXRpb24pOwog
ICAgIG1fcGFnZS0+c2V0SGFzUmVzb3VyY2VMb2FkQ2xpZW50KHBhcmFtZXRlcnMuaGFzUmVzb3Vy
Y2VMb2FkQ2xpZW50KTsKQEAgLTQ1MjEsNiArNDUyOSwxOCBAQCB2b2lkIFdlYlBhZ2U6OmNhcHR1
cmVEZXZpY2VzQ2hhbmdlZCgpCiAKICNlbmRpZgogCisjaWYgRU5BQkxFKEVOQ1JZUFRFRF9NRURJ
QSkKK3ZvaWQgV2ViUGFnZTo6bWVkaWFLZXlTeXN0ZW1XYXNHcmFudGVkKHVpbnQ2NF90IG1lZGlh
S2V5U3lzdGVtSUQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxl
cikKK3sKKyAgICBtX21lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyLT5tZWRp
YUtleVN5c3RlbVdhc0dyYW50ZWQobWVkaWFLZXlTeXN0ZW1JRCwgV1RGTW92ZShjb21wbGV0aW9u
SGFuZGxlcikpOworfQorCit2b2lkIFdlYlBhZ2U6Om1lZGlhS2V5U3lzdGVtV2FzRGVuaWVkKHVp
bnQ2NF90IG1lZGlhS2V5U3lzdGVtSUQsIFN0cmluZyYmIG1lc3NhZ2UpCit7CisgICAgbV9tZWRp
YUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlci0+bWVkaWFLZXlTeXN0ZW1XYXNEZW5p
ZWQobWVkaWFLZXlTeXN0ZW1JRCwgV1RGTW92ZShtZXNzYWdlKSk7Cit9CisjZW5kaWYKKwogI2lm
ICFQTEFURk9STShJT1NfRkFNSUxZKQogdm9pZCBXZWJQYWdlOjphZHZhbmNlVG9OZXh0TWlzc3Bl
bGxpbmcoYm9vbCBzdGFydEJlZm9yZVNlbGVjdGlvbikKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAppbmRleCA4MzM1MTk0MTZmMjZjM2QxYzQ5NWQ3Y2YzYmFh
NWEzOGUwODUxMzliLi44ODdkMmNmNjI2NDYxYzFkNWM3NWI1YWNjN2I3Y2U5NThhNWIyNzhlIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKKysr
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCkBAIC0yNDYsNiAr
MjQ2LDcgQEAgY2xhc3MgR2FtZXBhZERhdGE7CiBjbGFzcyBHZW9sb2NhdGlvblBlcm1pc3Npb25S
ZXF1ZXN0TWFuYWdlcjsKIGNsYXNzIExheWVySG9zdGluZ0NvbnRleHQ7CiBjbGFzcyBNZWRpYURl
dmljZVNhbmRib3hFeHRlbnNpb25zOworY2xhc3MgTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVx
dWVzdE1hbmFnZXI7CiBjbGFzcyBOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXI7
CiBjbGFzcyBQREZQbHVnaW47CiBjbGFzcyBQYWdlQmFubmVyOwpAQCAtNjcyLDYgKzY3MywxMCBA
QCBwdWJsaWM6CiAgICAgdm9pZCBjYXB0dXJlRGV2aWNlc0NoYW5nZWQoKTsKICNlbmRpZgogCisj
aWYgRU5BQkxFKEVOQ1JZUFRFRF9NRURJQSkKKyAgICBNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25S
ZXF1ZXN0TWFuYWdlciYgbWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIoKSB7
IHJldHVybiBtX21lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyOyB9CisjZW5k
aWYKKwogICAgIHZvaWQgZWxlbWVudERpZEZvY3VzKFdlYkNvcmU6OkVsZW1lbnQmKTsKICAgICB2
b2lkIGVsZW1lbnREaWRSZWZvY3VzKFdlYkNvcmU6OkVsZW1lbnQmKTsKICAgICB2b2lkIGVsZW1l
bnREaWRCbHVyKFdlYkNvcmU6OkVsZW1lbnQmKTsKQEAgLTE2NjcsNyArMTY3MiwxMSBAQCBwcml2
YXRlOgogI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCiAgICAgdm9pZCB1c2VyTWVkaWFBY2Nlc3NX
YXNHcmFudGVkKHVpbnQ2NF90IHVzZXJNZWRpYUlELCBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlJiYg
YXVkaW9EZXZpY2VVSUQsIFdlYkNvcmU6OkNhcHR1cmVEZXZpY2UmJiB2aWRlb0RldmljZVVJRCwg
U3RyaW5nJiYgbWVkaWFEZXZpY2VJZGVudGlmaWVySGFzaFNhbHQsIFNhbmRib3hFeHRlbnNpb246
OkhhbmRsZSYmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwogICAgIHZvaWQgdXNlck1l
ZGlhQWNjZXNzV2FzRGVuaWVkKHVpbnQ2NF90IHVzZXJNZWRpYUlELCB1aW50NjRfdCByZWFzb24s
IFN0cmluZyYmIGludmFsaWRDb25zdHJhaW50KTsKKyNlbmRpZgogCisjaWYgRU5BQkxFKEVOQ1JZ
UFRFRF9NRURJQSkKKyAgICB2b2lkIG1lZGlhS2V5U3lzdGVtV2FzR3JhbnRlZCh1aW50NjRfdCBt
ZWRpYUtleVN5c3RlbUlELCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOworICAgIHZvaWQg
bWVkaWFLZXlTeXN0ZW1XYXNEZW5pZWQodWludDY0X3QgbWVkaWFLZXlTeXN0ZW1JRCwgU3RyaW5n
JiYgbWVzc2FnZSk7CiAjZW5kaWYKIAogICAgIHZvaWQgcmVxdWVzdE1lZGlhUGxheWJhY2tTdGF0
ZShDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYktpdDo6TWVkaWFQbGF5YmFja1N0YXRlKT4mJik7
CkBAIC0xOTc5LDYgKzE5ODgsMTAgQEAgcHJpdmF0ZToKICAgICBVbmlxdWVSZWY8VXNlck1lZGlh
UGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyPiBtX3VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFu
YWdlcjsKICNlbmRpZgogCisjaWYgRU5BQkxFKEVOQ1JZUFRFRF9NRURJQSkKKyAgICBVbmlxdWVS
ZWY8TWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXI+IG1fbWVkaWFLZXlTeXN0
ZW1QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXI7CisjZW5kaWYKKwogICAgIHN0ZDo6dW5pcXVlX3B0
cjxXZWJDb3JlOjpQcmludENvbnRleHQ+IG1fcHJpbnRDb250ZXh0OwogI2lmIFBMQVRGT1JNKEdU
SykKICAgICBSZWZQdHI8V2ViUHJpbnRPcGVyYXRpb25HdGs+IG1fcHJpbnRPcGVyYXRpb247CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3Nh
Z2VzLmluIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdl
cy5pbgppbmRleCAyZGE5OWNkMzcyMzkyZTgyYzUzMGQ0MmMwMWExMjg3NzBmYmQ4NzE3Li4yM2Zj
YTM1NzFmMDc0NzUwOTFmZjNmYzE0YmFiYzQ2NWUyMTZlZDRjIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4KQEAgLTM3OCw2
ICszNzgsMTEgQEAgR2VuZXJhdGVTeW50aGV0aWNFZGl0aW5nQ29tbWFuZChlbnVtOnVpbnQ4X3Qg
V2ViS2l0OjpTeW50aGV0aWNFZGl0aW5nQ29tbWFuZFR5cGUKICAgICBDYXB0dXJlRGV2aWNlc0No
YW5nZWQoKQogI2VuZGlmCiAKKyNpZiBFTkFCTEUoRU5DUllQVEVEX01FRElBKQorICAgIE1lZGlh
S2V5U3lzdGVtV2FzR3JhbnRlZCh1aW50NjRfdCBtZWRpYUtleVN5c3RlbUlEKSAtPiAoKSBBc3lu
YworICAgIE1lZGlhS2V5U3lzdGVtV2FzRGVuaWVkKHVpbnQ2NF90IG1lZGlhS2V5U3lzdGVtSUQs
IFN0cmluZyBtZXNzYWdlKQorI2VuZGlmCisKICAgICBSZXF1ZXN0TWVkaWFQbGF5YmFja1N0YXRl
KCkgLT4gKGVudW06dWludDhfdCBXZWJLaXQ6Ok1lZGlhUGxheWJhY2tTdGF0ZSBzdGF0ZSkgQXN5
bmMKICAgICBQYXVzZUFsbE1lZGlhUGxheWJhY2soKSAtPiAoKSBBc3luYwogICAgIFN1c3BlbmRB
bGxNZWRpYVBsYXliYWNrKCkgLT4gKCkgQXN5bmMKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxv
ZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCA2ZDkwZDQzMzBjNTEzYWM1YWY2YTBkNGFhZWE5MTRj
MmQwMWExZGUxLi4xMTk3ZTJkMzNiZTUwMGU0NjVkYWZjNDg4ZjcxMWJiMThjNWMxMDk2IDEwMDY0
NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MzYgQEAKKzIwMjEtMDEtMzEgIFBoaWxpcHBlIE5vcm1hbmQgIDxwbm9ybWFuZEBpZ2FsaWEuY29t
PgorCisgICAgICAgIFBlcm1pc3Npb24gcmVxdWVzdCBBUEkgZm9yIE1lZGlhS2V5U3lzdGVtIGFj
Y2VzcyBzdXBwb3J0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yMjExODcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBBZGQgYmFzaWMgc3VwcG9ydCBmb3IgTWVkaWFLZXlTeXN0ZW0gcGVybWlzc2lvbiByZXF1
ZXN0IHN1cHBvcnQgR1RLJ3MgTWluaUJyb3dzZXIuCisgICAgICAgIEFkZCBzdXBwb3J0IGZvciBz
ZXR0aW5nIHRoZSBwZXJtaXNzaW9uIHJlcXVlc3QgcmVzcG9uc2UgZnJvbSB0aGUgVGVzdFJ1bm5l
ciwgZm9yIHVzYWdlIHdpdGhpbiBsYXlvdXQgdGVzdHMuCisgICAgICAgIEFkZCBHTGliIEFQSSB0
ZXN0IGZvciB0aGUgTWVkaWFLZXlTeXN0ZW0gcGVybWlzc2lvbiByZXF1ZXN0IHN1cHBvcnQuCisg
ICAgICAgIAorICAgICAgICAqIE1pbmlCcm93c2VyL2d0ay9Ccm93c2VyVGFiLmM6CisgICAgICAg
IChwZXJtaXNzaW9uUmVxdWVzdERpYWxvZ1Jlc3BvbnNlKToKKyAgICAgICAgKGRlY2lkZVBlcm1p
c3Npb25SZXF1ZXN0KToKKyAgICAgICAgKGJyb3dzZXJfdGFiX2NsYXNzX2luaXQpOgorICAgICAg
ICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0R0xpYi9UZXN0VUlDbGllbnQuY3BwOgorICAg
ICAgICAodGVzdFdlYlZpZXdNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0cyk6CisgICAg
ICAgIChiZWZvcmVBbGwpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvZ2xpYi9XZWJLaXRHTGli
L1dlYlZpZXdUZXN0LmNwcDoKKyAgICAgICAgKFdlYlZpZXdUZXN0Ojppbml0aWFsaXplV2ViVmll
dyk6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9U
ZXN0UnVubmVyLmlkbDoKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxl
L1Rlc3RSdW5uZXIuY3BwOgorICAgICAgICAoV1RSOjpUZXN0UnVubmVyOjpzZXRJc01lZGlhS2V5
U3lzdGVtUGVybWlzc2lvbkdyYW50ZWQpOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvSW5q
ZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5oOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvVGVz
dENvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV1RSOjpkZWNpZGVQb2xpY3lGb3JNZWRpYUtleVN5
c3RlbVBlcm1pc3Npb25SZXF1ZXN0KToKKyAgICAgICAgKFdUUjo6VGVzdENvbnRyb2xsZXI6OmNv
bXBsZXRlTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uQ2hlY2spOgorICAgICAgICAoV1RSOjpUZXN0
Q29udHJvbGxlcjo6c2V0SXNNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25HcmFudGVkKToKKyAgICAg
ICAgKFdUUjo6VGVzdENvbnRyb2xsZXI6OmNyZWF0ZVdlYlZpZXdXaXRoT3B0aW9ucyk6CisgICAg
ICAgICogV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5oOgorICAgICAgICAqIFdlYktp
dFRlc3RSdW5uZXIvVGVzdEludm9jYXRpb24uY3BwOgorICAgICAgICAoV1RSOjpUZXN0SW52b2Nh
dGlvbjo6ZGlkUmVjZWl2ZVN5bmNocm9ub3VzTWVzc2FnZUZyb21JbmplY3RlZEJ1bmRsZSk6CisK
IDIwMjEtMDItMDEgIFl1c3VrZSBTdXp1a2kgIDx5c3V6dWtpQGFwcGxlLmNvbT4KIAogICAgICAg
ICBbSlNDXSBBZGQgQCBpbiBFcnJvci5zdGFjayBpZiBVUkwgZXhpc3RzCmRpZmYgLS1naXQgYS9U
b29scy9NaW5pQnJvd3Nlci9ndGsvQnJvd3NlclRhYi5jIGIvVG9vbHMvTWluaUJyb3dzZXIvZ3Rr
L0Jyb3dzZXJUYWIuYwppbmRleCAzZTUzOGE5ZDhhNWY0OGRjMDhiMzMwZWQ0NTE3YzIyNzUzNjhk
YTlmLi45OTM1ODc5MzYzM2VhMzhkNTRlZTcyOWQxZGY4OGFkYTllMmQ0NWZmIDEwMDY0NAotLS0g
YS9Ub29scy9NaW5pQnJvd3Nlci9ndGsvQnJvd3NlclRhYi5jCisrKyBiL1Rvb2xzL01pbmlCcm93
c2VyL2d0ay9Ccm93c2VyVGFiLmMKQEAgLTYwLDYgKzYwLDcgQEAgc3RydWN0IF9Ccm93c2VyVGFi
IHsKIH07CiAKIHN0YXRpYyBHSGFzaFRhYmxlICp1c2VyTWVkaWFQZXJtaXNzaW9uR3JhbnRlZE9y
aWdpbnM7CitzdGF0aWMgR0hhc2hUYWJsZSAqbWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uR3JhbnRl
ZE9yaWdpbnM7CiBzdHJ1Y3QgX0Jyb3dzZXJUYWJDbGFzcyB7CiAgICAgR3RrQm94Q2xhc3MgcGFy
ZW50OwogfTsKQEAgLTI2NCwxMiArMjY1LDE2IEBAIHN0YXRpYyB2b2lkIHBlcm1pc3Npb25SZXF1
ZXN0RGlhbG9nUmVzcG9uc2UoR3RrV2lkZ2V0ICpkaWFsb2csIGdpbnQgcmVzcG9uc2UsIFBlCiAg
ICAgY2FzZSBHVEtfUkVTUE9OU0VfWUVTOgogICAgICAgICBpZiAoV0VCS0lUX0lTX1VTRVJfTUVE
SUFfUEVSTUlTU0lPTl9SRVFVRVNUKHJlcXVlc3REYXRhLT5yZXF1ZXN0KSkKICAgICAgICAgICAg
IGdfaGFzaF90YWJsZV9hZGQodXNlck1lZGlhUGVybWlzc2lvbkdyYW50ZWRPcmlnaW5zLCBnX3N0
cmR1cChyZXF1ZXN0RGF0YS0+b3JpZ2luKSk7CisgICAgICAgIGlmIChXRUJLSVRfSVNfTUVESUFf
S0VZX1NZU1RFTV9QRVJNSVNTSU9OX1JFUVVFU1QocmVxdWVzdERhdGEtPnJlcXVlc3QpKQorICAg
ICAgICAgICAgZ19oYXNoX3RhYmxlX2FkZChtZWRpYUtleVN5c3RlbVBlcm1pc3Npb25HcmFudGVk
T3JpZ2lucywgZ19zdHJkdXAocmVxdWVzdERhdGEtPm9yaWdpbikpOwogCiAgICAgICAgIHdlYmtp
dF9wZXJtaXNzaW9uX3JlcXVlc3RfYWxsb3cocmVxdWVzdERhdGEtPnJlcXVlc3QpOwogICAgICAg
ICBicmVhazsKICAgICBkZWZhdWx0OgogICAgICAgICBpZiAoV0VCS0lUX0lTX1VTRVJfTUVESUFf
UEVSTUlTU0lPTl9SRVFVRVNUKHJlcXVlc3REYXRhLT5yZXF1ZXN0KSkKICAgICAgICAgICAgIGdf
aGFzaF90YWJsZV9yZW1vdmUodXNlck1lZGlhUGVybWlzc2lvbkdyYW50ZWRPcmlnaW5zLCByZXF1
ZXN0RGF0YS0+b3JpZ2luKTsKKyAgICAgICAgaWYgKFdFQktJVF9JU19NRURJQV9LRVlfU1lTVEVN
X1BFUk1JU1NJT05fUkVRVUVTVChyZXF1ZXN0RGF0YS0+cmVxdWVzdCkpCisgICAgICAgICAgICBn
X2hhc2hfdGFibGVfcmVtb3ZlKG1lZGlhS2V5U3lzdGVtUGVybWlzc2lvbkdyYW50ZWRPcmlnaW5z
LCByZXF1ZXN0RGF0YS0+b3JpZ2luKTsKIAogICAgICAgICB3ZWJraXRfcGVybWlzc2lvbl9yZXF1
ZXN0X2RlbnkocmVxdWVzdERhdGEtPnJlcXVlc3QpOwogICAgICAgICBicmVhazsKQEAgLTM0MCw2
ICszNDUsMTYgQEAgc3RhdGljIGdib29sZWFuIGRlY2lkZVBlcm1pc3Npb25SZXF1ZXN0KFdlYktp
dFdlYlZpZXcgKndlYlZpZXcsIFdlYktpdFBlcm1pc3Npb24KICAgICAgICAgY29uc3QgZ2NoYXIg
KmN1cnJlbnREb21haW4gPSB3ZWJraXRfd2Vic2l0ZV9kYXRhX2FjY2Vzc19wZXJtaXNzaW9uX3Jl
cXVlc3RfZ2V0X2N1cnJlbnRfZG9tYWluKHdlYnNpdGVEYXRhQWNjZXNzUmVxdWVzdCk7CiAgICAg
ICAgIHRleHQgPSBnX3N0cmR1cF9wcmludGYoIkRvIHlvdSB3YW50IHRvIGFsbG93IFwiJXNcIiB0
byB1c2UgY29va2llcyB3aGlsZSBicm93c2luZyBcIiVzXCI/IFRoaXMgd2lsbCBhbGxvdyBcIiVz
XCIgdG8gdHJhY2sgeW91ciBhY3Rpdml0eSIsCiAgICAgICAgICAgICByZXF1ZXN0aW5nRG9tYWlu
LCBjdXJyZW50RG9tYWluLCByZXF1ZXN0aW5nRG9tYWluKTsKKyAgICB9IGVsc2UgaWYgKFdFQktJ
VF9JU19NRURJQV9LRVlfU1lTVEVNX1BFUk1JU1NJT05fUkVRVUVTVChyZXF1ZXN0KSkgeworICAg
ICAgICBjaGFyICpvcmlnaW4gPSBnZXRXZWJWaWV3T3JpZ2luKHdlYlZpZXcpOworICAgICAgICBp
ZiAoZ19oYXNoX3RhYmxlX2NvbnRhaW5zKG1lZGlhS2V5U3lzdGVtUGVybWlzc2lvbkdyYW50ZWRP
cmlnaW5zLCBvcmlnaW4pKSB7CisgICAgICAgICAgICB3ZWJraXRfcGVybWlzc2lvbl9yZXF1ZXN0
X2FsbG93KHJlcXVlc3QpOworICAgICAgICAgICAgZ19mcmVlKG9yaWdpbik7CisgICAgICAgICAg
ICByZXR1cm4gVFJVRTsKKyAgICAgICAgfQorICAgICAgICBnX2ZyZWUob3JpZ2luKTsKKyAgICAg
ICAgdGl0bGUgPSAiRFJNIHN5c3RlbSBhY2Nlc3MgcmVxdWVzdCI7CisgICAgICAgIHRleHQgPSBn
X3N0cmR1cF9wcmludGYoIkFsbG93IHRvIHVzZSBhIENETSBwcm92aWRpbmcgYWNjZXNzIHRvICVz
PyIsIHdlYmtpdF9tZWRpYV9rZXlfc3lzdGVtX3Blcm1pc3Npb25fZ2V0X25hbWUoV0VCS0lUX01F
RElBX0tFWV9TWVNURU1fUEVSTUlTU0lPTl9SRVFVRVNUKHJlcXVlc3QpKSk7CiAgICAgfSBlbHNl
IHsKICAgICAgICAgZ19wcmludCgiJXMgcmVxdWVzdCBub3QgaGFuZGxlZFxuIiwgR19PQkpFQ1Rf
VFlQRV9OQU1FKHJlcXVlc3QpKTsKICAgICAgICAgcmV0dXJuIEZBTFNFOwpAQCAtNjU1LDYgKzY3
MCw5IEBAIHN0YXRpYyB2b2lkIGJyb3dzZXJfdGFiX2NsYXNzX2luaXQoQnJvd3NlclRhYkNsYXNz
ICprbGFzcykKICAgICBpZiAoIXVzZXJNZWRpYVBlcm1pc3Npb25HcmFudGVkT3JpZ2lucykKICAg
ICAgICAgdXNlck1lZGlhUGVybWlzc2lvbkdyYW50ZWRPcmlnaW5zID0gZ19oYXNoX3RhYmxlX25l
d19mdWxsKGdfc3RyX2hhc2gsIGdfc3RyX2VxdWFsLCBnX2ZyZWUsIE5VTEwpOwogCisgICAgaWYg
KCFtZWRpYUtleVN5c3RlbVBlcm1pc3Npb25HcmFudGVkT3JpZ2lucykKKyAgICAgICAgbWVkaWFL
ZXlTeXN0ZW1QZXJtaXNzaW9uR3JhbnRlZE9yaWdpbnMgPSBnX2hhc2hfdGFibGVfbmV3X2Z1bGwo
Z19zdHJfaGFzaCwgZ19zdHJfZXF1YWwsIGdfZnJlZSwgTlVMTCk7CisKICAgICBnX29iamVjdF9j
bGFzc19pbnN0YWxsX3Byb3BlcnR5KAogICAgICAgICBnb2JqZWN0Q2xhc3MsCiAgICAgICAgIFBS
T1BfVklFVywKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0R0xp
Yi9UZXN0VUlDbGllbnQuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRHTGli
L1Rlc3RVSUNsaWVudC5jcHAKaW5kZXggMGY5Y2EyYTM4M2QyNzlmM2Q1MzMyYWU5M2IwNDBlZTRj
MTdlZjMxYS4uYzdmYTZkZTBmNWRmNmRjZTlmM2Q2NjE0ZjU0ZTE1NDk5NTc0OTJhNSAxMDA2NDQK
LS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRHTGliL1Rlc3RVSUNsaWVudC5j
cHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRHTGliL1Rlc3RVSUNsaWVu
dC5jcHAKQEAgLTg5Niw2ICs4OTYsNDIgQEAgc3RhdGljIHZvaWQgdGVzdFdlYlZpZXdHZW9sb2Nh
dGlvblBlcm1pc3Npb25SZXF1ZXN0cyhVSUNsaWVudFRlc3QqIHRlc3QsIGdjb25zdHAKICAgICBU
ZXN0OjphZGRMb2dGYXRhbEZsYWcoR19MT0dfTEVWRUxfV0FSTklORyk7CiB9CiAKKyNpZiBFTkFC
TEUoRU5DUllQVEVEX01FRElBKQorc3RhdGljIHZvaWQgdGVzdFdlYlZpZXdNZWRpYUtleVN5c3Rl
bVBlcm1pc3Npb25SZXF1ZXN0cyhVSUNsaWVudFRlc3QqIHRlc3QsIGdjb25zdHBvaW50ZXIpCit7
CisgICAgdGVzdC0+c2hvd0luV2luZG93KCk7CisgICAgc3RhdGljIGNvbnN0IGNoYXIqIG1lZGlh
S2V5U3lzdGVtUmVxdWVzdEhUTUwgPSAiPGh0bWw+IgorICAgICAgICAiICA8c2NyaXB0PiIKKyAg
ICAgICAgIiAgZnVuY3Rpb24gcnVuVGVzdCgpIgorICAgICAgICAiICB7IgorICAgICAgICAiICAg
IGNvbnN0IG9wdGlvbnMgPSBbIgorICAgICAgICAiICAgICB7IGluaXREYXRhVHlwZXM6IFtcImNl
bmNcIl0sIgorICAgICAgICAiICAgICAgIHZpZGVvQ2FwYWJpbGl0aWVzOiBbe2NvbnRlbnRUeXBl
IDogJ3ZpZGVvL21wNCd9XSB9IgorICAgICAgICAiICAgIF07IgorICAgICAgICAiICAgIG5hdmln
YXRvci5yZXF1ZXN0TWVkaWFLZXlTeXN0ZW1BY2Nlc3MoJ29yZy53My5jbGVhcmtleScsIG9wdGlv
bnMpLnRoZW4oKGFjY2VzcykgPT4geyIKKyAgICAgICAgIiAgICAgIHdpbmRvdy53ZWJraXQubWVz
c2FnZUhhbmRsZXJzLnBlcm1pc3Npb24ucG9zdE1lc3NhZ2UoJ09LJyk7IgorICAgICAgICAiICAg
IH0pLmNhdGNoKChlKSA9PiB7IgorICAgICAgICAiICAgICAgd2luZG93LndlYmtpdC5tZXNzYWdl
SGFuZGxlcnMucGVybWlzc2lvbi5wb3N0TWVzc2FnZShlLm5hbWUpOyIKKyAgICAgICAgIiAgICB9
KTsiCisgICAgICAgICIgIH0iCisgICAgICAgICIgIDwvc2NyaXB0PiIKKyAgICAgICAgIiAgPGJv
ZHkgb25sb2FkPSdydW5UZXN0KCk7Jz48L2JvZHk+IgorICAgICAgICAiPC9odG1sPiI7CisKKyAg
ICAvLyBUZXN0IGRlbnlpbmcgYSBwZXJtaXNzaW9uIHJlcXVlc3QuCisgICAgdGVzdC0+bV9hbGxv
d1Blcm1pc3Npb25SZXF1ZXN0cyA9IGZhbHNlOworICAgIHRlc3QtPmxvYWRIdG1sKG1lZGlhS2V5
U3lzdGVtUmVxdWVzdEhUTUwsICJodHRwczovL2Zvby5jb20vYmFyIik7CisgICAgY29uc3QgZ2No
YXIqIHJlc3VsdCA9IHRlc3QtPndhaXRVbnRpbFBlcm1pc3Npb25SZXN1bHRNZXNzYWdlUmVjZWl2
ZWQoKTsKKyAgICBnX2Fzc2VydF9jbXBzdHIocmVzdWx0LCA9PSwgIk5vdFN1cHBvcnRlZEVycm9y
Iik7CisKKyAgICAvLyBUZXN0IGFsbG93aW5nIGEgcGVybWlzc2lvbiByZXF1ZXN0LgorICAgIHRl
c3QtPm1fYWxsb3dQZXJtaXNzaW9uUmVxdWVzdHMgPSB0cnVlOworICAgIHRlc3QtPmxvYWRIdG1s
KG1lZGlhS2V5U3lzdGVtUmVxdWVzdEhUTUwsICJodHRwczovL2Zvby5jb20vYmFyIik7CisgICAg
cmVzdWx0ID0gdGVzdC0+d2FpdFVudGlsUGVybWlzc2lvblJlc3VsdE1lc3NhZ2VSZWNlaXZlZCgp
OworICAgIGdfYXNzZXJ0X2NtcHN0cihyZXN1bHQsID09LCAiT0siKTsKK30KKyNlbmRpZgorCiAj
aWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKIHN0YXRpYyB2b2lkIHRlc3RXZWJWaWV3VXNlck1lZGlh
RW51bWVyYXRlRGV2aWNlc1Blcm1pc3Npb25DaGVjayhVSUNsaWVudFRlc3QqIHRlc3QsIGdjb25z
dHBvaW50ZXIpCiB7CkBAIC0xMjk5LDYgKzEzMzUsOSBAQCB2b2lkIGJlZm9yZUFsbCgpCiAgICAg
VUlDbGllbnRUZXN0OjphZGQoIldlYktpdFdlYlZpZXciLCAibW91c2UtdGFyZ2V0IiwgdGVzdFdl
YlZpZXdNb3VzZVRhcmdldCk7CiAjZW5kaWYKICAgICBVSUNsaWVudFRlc3Q6OmFkZCgiV2ViS2l0
V2ViVmlldyIsICJnZW9sb2NhdGlvbi1wZXJtaXNzaW9uLXJlcXVlc3RzIiwgdGVzdFdlYlZpZXdH
ZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0cyk7CisjaWYgRU5BQkxFKEVOQ1JZUFRFRF9NRURJ
QSkKKyAgICBVSUNsaWVudFRlc3Q6OmFkZCgiV2ViS2l0V2ViVmlldyIsICJtZWRpYUtleVN5c3Rl
bS1wZXJtaXNzaW9uLXJlcXVlc3RzIiwgdGVzdFdlYlZpZXdNZWRpYUtleVN5c3RlbVBlcm1pc3Np
b25SZXF1ZXN0cyk7CisjZW5kaWYKICNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQogICAgIFVJQ2xp
ZW50VGVzdDo6YWRkKCJXZWJLaXRXZWJWaWV3IiwgInVzZXJtZWRpYS1lbnVtZXJhdGVkZXZpY2Vz
LXBlcm1pc3Npb24tY2hlY2siLCB0ZXN0V2ViVmlld1VzZXJNZWRpYUVudW1lcmF0ZURldmljZXNQ
ZXJtaXNzaW9uQ2hlY2spOwogICAgIFVJQ2xpZW50VGVzdDo6YWRkKCJXZWJLaXRXZWJWaWV3Iiwg
InVzZXJtZWRpYS1wZXJtaXNzaW9uLXJlcXVlc3RzIiwgdGVzdFdlYlZpZXdVc2VyTWVkaWFQZXJt
aXNzaW9uUmVxdWVzdHMpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9nbGliL1dl
YktpdEdMaWIvV2ViVmlld1Rlc3QuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9nbGliL1dlYktp
dEdMaWIvV2ViVmlld1Rlc3QuY3BwCmluZGV4IDdhMTNlYjhmODQwMmRmMDUxN2FmMDY4ZDkxZDJh
ZmNkMDlkZTk2NDYuLjZjN2U5Yjk0NmI2NDdjZGI3MjRhNWUyNjYwOWU3NzM5MWQ4ZDMyN2QgMTAw
NjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvZ2xpYi9XZWJLaXRHTGliL1dlYlZpZXdUZXN0
LmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL2dsaWIvV2ViS2l0R0xpYi9XZWJWaWV3VGVz
dC5jcHAKQEAgLTYwLDYgKzYwLDEyIEBAIHZvaWQgV2ViVmlld1Rlc3Q6OmluaXRpYWxpemVXZWJW
aWV3KCkKICAgICAgICAgInVzZXItY29udGVudC1tYW5hZ2VyIiwgbV91c2VyQ29udGVudE1hbmFn
ZXIuZ2V0KCksCiAgICAgICAgICJpcy1lcGhlbWVyYWwiLCBzaG91bGRDcmVhdGVFcGhlbWVyYWxX
ZWJWaWV3LAogICAgICAgICBudWxscHRyKSk7CisKKyNpZiBFTkFCTEUoRU5DUllQVEVEX01FRElB
KQorICAgIGF1dG8qIHNldHRpbmdzID0gd2Via2l0X3dlYl92aWV3X2dldF9zZXR0aW5ncyhtX3dl
YlZpZXcpOworICAgIHdlYmtpdF9zZXR0aW5nc19zZXRfZW5hYmxlX2VuY3J5cHRlZF9tZWRpYShz
ZXR0aW5ncywgVFJVRSk7CisjZW5kaWYKKwogICAgIHBsYXRmb3JtSW5pdGlhbGl6ZVdlYlZpZXco
KTsKICAgICBhc3NlcnRPYmplY3RJc0RlbGV0ZWRXaGVuVGVzdEZpbmlzaGVzKEdfT0JKRUNUKG1f
d2ViVmlldykpOwogCmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVk
QnVuZGxlL0JpbmRpbmdzL1Rlc3RSdW5uZXIuaWRsIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9J
bmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9UZXN0UnVubmVyLmlkbAppbmRleCBkYjE1OTlhMmM1NjAy
YWU4MWFiMmYyNGUwOGY5Zjk1NTM5YzA1YjlhLi5hMDcxZWNkZGQ5ZTQzNDgzZmU3NzE5Njg2YzM1
YTRmMzdiOGIxYmM3IDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVk
QnVuZGxlL0JpbmRpbmdzL1Rlc3RSdW5uZXIuaWRsCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5u
ZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvVGVzdFJ1bm5lci5pZGwKQEAgLTQwOCw0ICs0MDgs
NyBAQCBpbnRlcmZhY2UgVGVzdFJ1bm5lciB7CiAKICAgICAvLyBTcGVlY2hSZWNvZ25pdGlvbgog
ICAgIHVuZGVmaW5lZCBzZXRJc1NwZWVjaFJlY29nbml0aW9uUGVybWlzc2lvbkdyYW50ZWQoYm9v
bGVhbiB2YWx1ZSk7CisKKyAgICAvLyBNZWRpYUtleVN5c3RlbQorICAgIHVuZGVmaW5lZCBzZXRJ
c01lZGlhS2V5U3lzdGVtUGVybWlzc2lvbkdyYW50ZWQoYm9vbGVhbiB2YWx1ZSk7CiB9OwpkaWZm
IC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVy
LmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5j
cHAKaW5kZXggNjM4MDk4OTI1MThjY2UzY2ZkNmJhMmRmYWNkYzZmNWVmOTAzYmFiNi4uODY0Y2Nl
Mjg1OTdhNDE4ZDg5YTUzNTdkYzkyMDBjY2QwMTk0YzdkNSAxMDA2NDQKLS0tIGEvVG9vbHMvV2Vi
S2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmNwcAorKysgYi9Ub29scy9X
ZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuY3BwCkBAIC0yMDg0LDYg
KzIwODQsMTEgQEAgdm9pZCBUZXN0UnVubmVyOjpzZXRJc1NwZWVjaFJlY29nbml0aW9uUGVybWlz
c2lvbkdyYW50ZWQoYm9vbCBncmFudGVkKQogICAgIHBvc3RTeW5jaHJvbm91c1BhZ2VNZXNzYWdl
KCJzZXRJc1NwZWVjaFJlY29nbml0aW9uUGVybWlzc2lvbkdyYW50ZWQiLCBncmFudGVkKTsKIH0K
IAordm9pZCBUZXN0UnVubmVyOjpzZXRJc01lZGlhS2V5U3lzdGVtUGVybWlzc2lvbkdyYW50ZWQo
Ym9vbCBncmFudGVkKQoreworICAgIHBvc3RTeW5jaHJvbm91c1BhZ2VNZXNzYWdlKCJzZXRJc01l
ZGlhS2V5U3lzdGVtUGVybWlzc2lvbkdyYW50ZWQiLCBncmFudGVkKTsKK30KKwogQUxMT1dfREVQ
UkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiAKIH0gLy8gbmFtZXNwYWNlIFdUUgpkaWZmIC0tZ2l0
IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmggYi9U
b29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuaAppbmRleCA5
M2E5N2NiZGRlNDg3NWNiZDMzNWE3MGZjYjlmZjUzZGI0ZjI4YjQ0Li5iY2Y3MTBiN2I4NTQ2OWY5
YmM2OTIwNDEyODI3MTQ2ZDIzYjNiYzk3IDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVu
bmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuaAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVu
bmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuaApAQCAtNTE5LDYgKzUxOSw4IEBAIHB1Ymxp
YzoKIAogICAgIHZvaWQgc2V0SXNTcGVlY2hSZWNvZ25pdGlvblBlcm1pc3Npb25HcmFudGVkKGJv
b2wpOwogCisgICAgdm9pZCBzZXRJc01lZGlhS2V5U3lzdGVtUGVybWlzc2lvbkdyYW50ZWQoYm9v
bCk7CisKIHByaXZhdGU6CiAgICAgVGVzdFJ1bm5lcigpOwogCmRpZmYgLS1naXQgYS9Ub29scy9X
ZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5u
ZXIvVGVzdENvbnRyb2xsZXIuY3BwCmluZGV4IGQyY2JlZjQyNTNkZmU2NTEzMjg3MjNkNTc5ZGIz
NDE0YmYxZGE3OGMuLmIzZjNiOTMzZDlkYWYwMDZlMGZmODczMjQ0ZTc1YTkzNmY3MjI4ZDggMTAw
NjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwCisrKyBi
L1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwCkBAIC00Niw2ICs0Niw3
IEBACiAjaW5jbHVkZSA8V2ViS2l0L1dLRnJhbWVJbmZvUmVmLmg+CiAjaW5jbHVkZSA8V2ViS2l0
L1dLSFRUUENvb2tpZVN0b3JlUmVmLmg+CiAjaW5jbHVkZSA8V2ViS2l0L1dLSWNvbkRhdGFiYXNl
Lmg+CisjaW5jbHVkZSA8V2ViS2l0L1dLTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uQ2FsbGJhY2su
aD4KICNpbmNsdWRlIDxXZWJLaXQvV0tNZXNzYWdlTGlzdGVuZXIuaD4KICNpbmNsdWRlIDxXZWJL
aXQvV0tNb2NrRGlzcGxheS5oPgogI2luY2x1ZGUgPFdlYktpdC9XS01vY2tNZWRpYURldmljZS5o
PgpAQCAtMzQzLDYgKzM0NCwyMSBAQCB2b2lkIFRlc3RDb250cm9sbGVyOjpzZXRJc1NwZWVjaFJl
Y29nbml0aW9uUGVybWlzc2lvbkdyYW50ZWQoYm9vbCBncmFudGVkKQogICAgIG1faXNTcGVlY2hS
ZWNvZ25pdGlvblBlcm1pc3Npb25HcmFudGVkID0gZ3JhbnRlZDsKIH0KIAorc3RhdGljIHZvaWQg
ZGVjaWRlUG9saWN5Rm9yTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdChXS1BhZ2VSZWYs
IFdLU2VjdXJpdHlPcmlnaW5SZWYsIFdLU3RyaW5nUmVmLCBXS01lZGlhS2V5U3lzdGVtUGVybWlz
c2lvbkNhbGxiYWNrUmVmIGNhbGxiYWNrKQoreworICAgIFRlc3RDb250cm9sbGVyOjpzaW5nbGV0
b24oKS5jb21wbGV0ZU1lZGlhS2V5U3lzdGVtUGVybWlzc2lvbkNoZWNrKGNhbGxiYWNrKTsKK30K
Kwordm9pZCBUZXN0Q29udHJvbGxlcjo6Y29tcGxldGVNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25D
aGVjayhXS01lZGlhS2V5U3lzdGVtUGVybWlzc2lvbkNhbGxiYWNrUmVmIGNhbGxiYWNrKQorewor
ICAgIFdLTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uQ2FsbGJhY2tDb21wbGV0ZShjYWxsYmFjaywg
bV9pc01lZGlhS2V5U3lzdGVtUGVybWlzc2lvbkdyYW50ZWQpOworfQorCit2b2lkIFRlc3RDb250
cm9sbGVyOjpzZXRJc01lZGlhS2V5U3lzdGVtUGVybWlzc2lvbkdyYW50ZWQoYm9vbCBncmFudGVk
KQoreworICAgIG1faXNNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25HcmFudGVkID0gZ3JhbnRlZDsK
K30KKwogV0tQYWdlUmVmIFRlc3RDb250cm9sbGVyOjpjcmVhdGVPdGhlclBhZ2UoV0tQYWdlUmVm
LCBXS1BhZ2VDb25maWd1cmF0aW9uUmVmIGNvbmZpZ3VyYXRpb24sIFdLTmF2aWdhdGlvbkFjdGlv
blJlZiBuYXZpZ2F0aW9uQWN0aW9uLCBXS1dpbmRvd0ZlYXR1cmVzUmVmIHdpbmRvd0ZlYXR1cmVz
LCBjb25zdCB2b2lkICpjbGllbnRJbmZvKQogewogICAgIFBsYXRmb3JtV2ViVmlldyogcGFyZW50
VmlldyA9IHN0YXRpY19jYXN0PFBsYXRmb3JtV2ViVmlldyo+KGNvbnN0X2Nhc3Q8dm9pZCo+KGNs
aWVudEluZm8pKTsKQEAgLTY5OSw4ICs3MTUsOCBAQCB2b2lkIFRlc3RDb250cm9sbGVyOjpjcmVh
dGVXZWJWaWV3V2l0aE9wdGlvbnMoY29uc3QgVGVzdE9wdGlvbnMmIG9wdGlvbnMpCiAgICAgV0tI
VFRQQ29va2llU3RvcmVEZWxldGVBbGxDb29raWVzKFdLV2Vic2l0ZURhdGFTdG9yZUdldEhUVFBD
b29raWVTdG9yZSh3ZWJzaXRlRGF0YVN0b3JlKCkpLCBudWxscHRyLCBudWxscHRyKTsKIAogICAg
IHBsYXRmb3JtQ3JlYXRlV2ViVmlldyhjb25maWd1cmF0aW9uLmdldCgpLCBvcHRpb25zKTsKLSAg
ICBXS1BhZ2VVSUNsaWVudFYxNSBwYWdlVUlDbGllbnQgPSB7Ci0gICAgICAgIHsgMTUsIG1fbWFp
bldlYlZpZXcuZ2V0KCkgfSwKKyAgICBXS1BhZ2VVSUNsaWVudFYxNiBwYWdlVUlDbGllbnQgPSB7
CisgICAgICAgIHsgMTYsIG1fbWFpbldlYlZpZXcuZ2V0KCkgfSwKICAgICAgICAgMCwgLy8gY3Jl
YXRlTmV3UGFnZV9kZXByZWNhdGVkRm9yVXNlV2l0aFYwCiAgICAgICAgIDAsIC8vIHNob3dQYWdl
CiAgICAgICAgIDAsIC8vIGNsb3NlCkBAIC03NzQsNyArNzkwLDggQEAgdm9pZCBUZXN0Q29udHJv
bGxlcjo6Y3JlYXRlV2ViVmlld1dpdGhPcHRpb25zKGNvbnN0IFRlc3RPcHRpb25zJiBvcHRpb25z
KQogICAgICAgICAwLCAvLyByZXF1ZXN0U3RvcmFnZUFjY2Vzc0NvbmZpcm0KICAgICAgICAgc2hv
dWxkQWxsb3dEZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvbkFjY2VzcywKICAgICAgICAgcnVuV2Vi
QXV0aGVudGljYXRpb25QYW5lbCwKLSAgICAgICAgZGVjaWRlUG9saWN5Rm9yU3BlZWNoUmVjb2du
aXRpb25QZXJtaXNzaW9uUmVxdWVzdAorICAgICAgICBkZWNpZGVQb2xpY3lGb3JTcGVlY2hSZWNv
Z25pdGlvblBlcm1pc3Npb25SZXF1ZXN0LAorICAgICAgICBkZWNpZGVQb2xpY3lGb3JNZWRpYUtl
eVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0CiAgICAgfTsKICAgICBXS1BhZ2VTZXRQYWdlVUlDbGll
bnQobV9tYWluV2ViVmlldy0+cGFnZSgpLCAmcGFnZVVJQ2xpZW50LmJhc2UpOwogCmRpZmYgLS1n
aXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmggYi9Ub29scy9XZWJL
aXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmgKaW5kZXggYmI3NWQ1MDcwMmMzYTUzZjM5ZGUx
NTgxZGNjNGQzYjMzNzM5NjRjYi4uODE4YzJiNGVjNGE1NjJiYzA2N2E0ZjNkNWNlYmJjZGJkMDVj
MDQ3YyAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5o
CisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuaApAQCAtMzU2LDYg
KzM1Niw5IEBAIHB1YmxpYzoKICAgICB2b2lkIGNvbXBsZXRlU3BlZWNoUmVjb2duaXRpb25QZXJt
aXNzaW9uQ2hlY2soV0tTcGVlY2hSZWNvZ25pdGlvblBlcm1pc3Npb25DYWxsYmFja1JlZik7CiAg
ICAgdm9pZCBzZXRJc1NwZWVjaFJlY29nbml0aW9uUGVybWlzc2lvbkdyYW50ZWQoYm9vbCk7CiAK
KyAgICB2b2lkIGNvbXBsZXRlTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uQ2hlY2soV0tNZWRpYUtl
eVN5c3RlbVBlcm1pc3Npb25DYWxsYmFja1JlZik7CisgICAgdm9pZCBzZXRJc01lZGlhS2V5U3lz
dGVtUGVybWlzc2lvbkdyYW50ZWQoYm9vbCk7CisKIHByaXZhdGU6CiAgICAgV0tSZXRhaW5QdHI8
V0tQYWdlQ29uZmlndXJhdGlvblJlZj4gZ2VuZXJhdGVQYWdlQ29uZmlndXJhdGlvbihjb25zdCBU
ZXN0T3B0aW9ucyYpOwogICAgIFdLUmV0YWluUHRyPFdLQ29udGV4dENvbmZpZ3VyYXRpb25SZWY+
IGdlbmVyYXRlQ29udGV4dENvbmZpZ3VyYXRpb24oY29uc3QgVGVzdE9wdGlvbnMmKSBjb25zdDsK
QEAgLTY0Nyw2ICs2NTAsOCBAQCBwcml2YXRlOgogI2VuZGlmCiAKICAgICBib29sIG1faXNTcGVl
Y2hSZWNvZ25pdGlvblBlcm1pc3Npb25HcmFudGVkIHsgZmFsc2UgfTsKKworICAgIGJvb2wgbV9p
c01lZGlhS2V5U3lzdGVtUGVybWlzc2lvbkdyYW50ZWQgeyB0cnVlIH07CiB9OwogCiB9IC8vIG5h
bWVzcGFjZSBXVFIKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdEludm9j
YXRpb24uY3BwIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0SW52b2NhdGlvbi5jcHAKaW5k
ZXggNTk4ZGZjN2QxYWMwZTM3YmIyMmZiNzg0YmExNTRhYjc0NzdhZWExNS4uNTUwMzU1YzdiOGI5
ODQ4NGE3ZDI4Y2Y1NTk1ZjYzODc1MTdiZjRiYSAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVz
dFJ1bm5lci9UZXN0SW52b2NhdGlvbi5jcHAKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9U
ZXN0SW52b2NhdGlvbi5jcHAKQEAgLTEzNjAsNiArMTM2MCwxMSBAQCBXS1JldGFpblB0cjxXS1R5
cGVSZWY+IFRlc3RJbnZvY2F0aW9uOjpkaWRSZWNlaXZlU3luY2hyb25vdXNNZXNzYWdlRnJvbUlu
amVjdGVkQgogICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICB9CiAKKyAgICBpZiAoV0tTdHJp
bmdJc0VxdWFsVG9VVEY4Q1N0cmluZyhtZXNzYWdlTmFtZSwgInNldElzTWVkaWFLZXlTeXN0ZW1Q
ZXJtaXNzaW9uR3JhbnRlZCIpKSB7CisgICAgICAgIFRlc3RDb250cm9sbGVyOjpzaW5nbGV0b24o
KS5zZXRJc01lZGlhS2V5U3lzdGVtUGVybWlzc2lvbkdyYW50ZWQoYm9vbGVhblZhbHVlKG1lc3Nh
Z2VCb2R5KSk7CisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIH0KKwogICAgIEFTU0VSVF9O
T1RfUkVBQ0hFRCgpOwogICAgIHJldHVybiBudWxscHRyOwogfQpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDAyY2YzZTk4YWRh
Y2JiOTNjOTUzYWUyMDBjYmMwM2JiZmZjYjA0ODguLmQxZmNkNGMyNDM4ODBjZmQ3MDAwNmQ5MWI2
MmJjMGYzOWQ5OGIwYjQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAyMS0wMS0zMSAgUGhpbGlw
cGUgTm9ybWFuZCAgPHBub3JtYW5kQGlnYWxpYS5jb20+CisKKyAgICAgICAgUGVybWlzc2lvbiBy
ZXF1ZXN0IEFQSSBmb3IgTWVkaWFLZXlTeXN0ZW0gYWNjZXNzIHN1cHBvcnQKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyMTE4NworCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBiYXNpYyBjb3ZlcmFnZSBz
dXBwb3J0IGZvciBvdmVycmlkaW5nIHRoZSBNZWRpYUtleVN5c3RlbSBwZXJtaXNzaW9uIGFuc3dl
ciBhbmQgdGh1cyBoYXZlCisgICAgICAgIHRoZSBwcm9taXNlIHJlamVjdGlvbiB0ZXN0ZWQgaW4g
dGhpcyBjYXNlLgorCisgICAgICAgICogbWVkaWEvZW5jcnlwdGVkLW1lZGlhL21vY2stTWVkaWFL
ZXlTeXN0ZW1BY2Nlc3MtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIG1lZGlhL2VuY3J5cHRlZC1t
ZWRpYS9tb2NrLU1lZGlhS2V5U3lzdGVtQWNjZXNzLmh0bWw6CisKIDIwMjEtMDItMDEgIFl1c3Vr
ZSBTdXp1a2kgIDx5c3V6dWtpQGFwcGxlLmNvbT4KIAogICAgICAgICBbSlNDXSBBZGQgQCBpbiBF
cnJvci5zdGFjayBpZiBVUkwgZXhpc3RzCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9tZWRpYS9l
bmNyeXB0ZWQtbWVkaWEvbW9jay1NZWRpYUtleVN5c3RlbUFjY2Vzcy1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9tZWRpYS9lbmNyeXB0ZWQtbWVkaWEvbW9jay1NZWRpYUtleVN5c3RlbUFjY2Vz
cy1leHBlY3RlZC50eHQKaW5kZXggMjA5MjM0ZDUxMTk4ZjBjMTI0OGFlZDZlYzNiNzU2M2ExNzUw
ZGRjNC4uMTIwYmExZjJjMjg3Y2ViNzY4ZWYwYTZmNGEyZjhlNDkyZWVhNGFhMCAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvbWVkaWEvZW5jcnlwdGVkLW1lZGlhL21vY2stTWVkaWFLZXlTeXN0ZW1B
Y2Nlc3MtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL21lZGlhL2VuY3J5cHRlZC1tZWRp
YS9tb2NrLU1lZGlhS2V5U3lzdGVtQWNjZXNzLWV4cGVjdGVkLnR4dApAQCAtMzEsNiArMzEsMTAg
QEAgUlVOKGNhcGFiaWxpdGllcy5wZXJzaXN0ZW50U3RhdGUgPSAibm90LWFsbG93ZWQiKQogUlVO
KHByb21pc2UgPSBuYXZpZ2F0b3IucmVxdWVzdE1lZGlhS2V5U3lzdGVtQWNjZXNzKCJvcmcud2Vi
a2l0Lm1vY2siLCBbY2FwYWJpbGl0aWVzXSkpCiBQcm9taXNlIHJlc29sdmVkIE9LCiAKK1JVTih0
ZXN0UnVubmVyLnNldElzTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uR3JhbnRlZChmYWxzZSkpCitS
VU4ocHJvbWlzZSA9IG5hdmlnYXRvci5yZXF1ZXN0TWVkaWFLZXlTeXN0ZW1BY2Nlc3MoIm9yZy53
ZWJraXQubW9jayIsIFtjYXBhYmlsaXRpZXNdKSkKK1Byb21pc2UgcmVqZWN0ZWQgY29ycmVjdGx5
IE9LCisKIFJVTihwcm9taXNlID0gbWVkaWFLZXlTeXN0ZW1BY2Nlc3MuY3JlYXRlTWVkaWFLZXlz
KCkpCiBQcm9taXNlIHJlc29sdmVkIE9LCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL21lZGlh
L2VuY3J5cHRlZC1tZWRpYS9tb2NrLU1lZGlhS2V5U3lzdGVtQWNjZXNzLmh0bWwgYi9MYXlvdXRU
ZXN0cy9tZWRpYS9lbmNyeXB0ZWQtbWVkaWEvbW9jay1NZWRpYUtleVN5c3RlbUFjY2Vzcy5odG1s
CmluZGV4IDQ3OTZmMThjMjAxZjE3NDZkN2RmNDMyNzQyZDk3NWM3NWVlNGJhNzUuLjU1NWI5ZWU3
NjllZWJkMTZkOWE2NzY5MmI2MzcwM2Q0Y2EzMmM3MDkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L21lZGlhL2VuY3J5cHRlZC1tZWRpYS9tb2NrLU1lZGlhS2V5U3lzdGVtQWNjZXNzLmh0bWwKKysr
IGIvTGF5b3V0VGVzdHMvbWVkaWEvZW5jcnlwdGVkLW1lZGlhL21vY2stTWVkaWFLZXlTeXN0ZW1B
Y2Nlc3MuaHRtbApAQCAtODQsNiArODQsMTMgQEAKICAgICAgICAgfSwKIAogICAgICAgICBmdW5j
dGlvbigpIHsKKyAgICAgICAgICAgIHJ1bigndGVzdFJ1bm5lci5zZXRJc01lZGlhS2V5U3lzdGVt
UGVybWlzc2lvbkdyYW50ZWQoZmFsc2UpJyk7CisgICAgICAgICAgICBydW4oJ3Byb21pc2UgPSBu
YXZpZ2F0b3IucmVxdWVzdE1lZGlhS2V5U3lzdGVtQWNjZXNzKCJvcmcud2Via2l0Lm1vY2siLCBb
Y2FwYWJpbGl0aWVzXSknKTsKKyAgICAgICAgICAgIHNob3VsZFJlamVjdChwcm9taXNlKS50aGVu
KG5leHQsIG5leHQpOworICAgICAgICB9LAorCisgICAgICAgIGZ1bmN0aW9uKCkgeworICAgICAg
ICAgICAgdGVzdFJ1bm5lci5zZXRJc01lZGlhS2V5U3lzdGVtUGVybWlzc2lvbkdyYW50ZWQodHJ1
ZSk7CiAgICAgICAgICAgICBydW4oJ3Byb21pc2UgPSBtZWRpYUtleVN5c3RlbUFjY2Vzcy5jcmVh
dGVNZWRpYUtleXMoKScpOwogICAgICAgICAgICAgc2hvdWxkUmVzb2x2ZShwcm9taXNlKS50aGVu
KG5leHQsIG5leHQpOwogICAgICAgICB9LAo=
</data>
<flag name="commit-queue"
          id="436952"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>418857</attachid>
            <date>2021-02-01 04:41:42 -0800</date>
            <delta_ts>2021-02-01 05:04:35 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-221187-20210201044140.patch</filename>
            <type>text/plain</type>
            <size>161710</size>
            <attacher name="Philippe Normand">pnormand</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcyMTM5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNGQzNzA5MTUyYzFmMmU1
Y2U1MmZmOTliZTIyNjY2MTM1MDhmOTdhNS4uMzQzZDgwM2IyNWZjODIyMDFiZjcyYmRhODBlNmIx
NGE5MjQyNDFjYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ4IEBACisyMDIxLTAxLTMxICBQaGls
aXBwZSBOb3JtYW5kICA8cG5vcm1hbmRAaWdhbGlhLmNvbT4KKworICAgICAgICBQZXJtaXNzaW9u
IHJlcXVlc3QgQVBJIGZvciBNZWRpYUtleVN5c3RlbSBhY2Nlc3Mgc3VwcG9ydAorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjIxMTg3CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgU3VwcG9ydCBmb3IgdXNlciBw
ZXJtaXNzaW9uIHJlcXVlc3Rpbmcgd2hlbiBhY2Nlc3MgdG8gYW4gRU1FIE1lZGlhS2V5U3lzdGVt
IGlzIGJlaW5nCisgICAgICAgIHJlcXVlc3RlZCBieSB0aGUgcGFnZS4gVGhpcyBpcyBzaW1pbGFy
IHRvIHRoZSBtZWRpYURldmljZXMgYWNjZXNzIGd1YXJkcy4KKworICAgICAgICBFeGlzdGluZyB0
ZXN0IG1lZGlhL2VuY3J5cHRlZC1tZWRpYS9tb2NrLU1lZGlhS2V5U3lzdGVtQWNjZXNzLmh0bWwg
d2FzIHVwZGF0ZWQgdG8gY292ZXIgdGhpcworICAgICAgICBuZXcgY29kZSBwYXRoIGFuZCBXUEUv
R1RLIEFQSSB0ZXN0cyBhcyB3ZWxsLgorCisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6CisgICAg
ICAgICogSGVhZGVycy5jbWFrZToKKyAgICAgICAgKiBNb2R1bGVzL2VuY3J5cHRlZG1lZGlhL01l
ZGlhS2V5U3lzdGVtQ2xpZW50Lmg6IEFkZGVkLgorICAgICAgICAqIE1vZHVsZXMvZW5jcnlwdGVk
bWVkaWEvTWVkaWFLZXlTeXN0ZW1Db250cm9sbGVyLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJD
b3JlOjpNZWRpYUtleVN5c3RlbUNvbnRyb2xsZXI6OnN1cHBsZW1lbnROYW1lKToKKyAgICAgICAg
KFdlYkNvcmU6Ok1lZGlhS2V5U3lzdGVtQ29udHJvbGxlcjo6TWVkaWFLZXlTeXN0ZW1Db250cm9s
bGVyKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhS2V5U3lzdGVtQ29udHJvbGxlcjo6fk1lZGlh
S2V5U3lzdGVtQ29udHJvbGxlcik6CisgICAgICAgIChXZWJDb3JlOjpwcm92aWRlTWVkaWFLZXlT
eXN0ZW1Ubyk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYUtleVN5c3RlbUNvbnRyb2xsZXI6Omxv
Z1JlcXVlc3RNZWRpYUtleVN5c3RlbURlbmlhbCk6CisgICAgICAgICogTW9kdWxlcy9lbmNyeXB0
ZWRtZWRpYS9NZWRpYUtleVN5c3RlbUNvbnRyb2xsZXIuaDogQWRkZWQuCisgICAgICAgIChXZWJD
b3JlOjpNZWRpYUtleVN5c3RlbUNvbnRyb2xsZXI6OmNsaWVudCBjb25zdCk6CisgICAgICAgIChX
ZWJDb3JlOjpNZWRpYUtleVN5c3RlbUNvbnRyb2xsZXI6OmZyb20pOgorICAgICAgICAoV2ViQ29y
ZTo6TWVkaWFLZXlTeXN0ZW1Db250cm9sbGVyOjpyZXF1ZXN0TWVkaWFLZXlTeXN0ZW0pOgorICAg
ICAgICAoV2ViQ29yZTo6TWVkaWFLZXlTeXN0ZW1Db250cm9sbGVyOjpjYW5jZWxNZWRpYUtleVN5
c3RlbVJlcXVlc3QpOgorICAgICAgICAqIE1vZHVsZXMvZW5jcnlwdGVkbWVkaWEvTWVkaWFLZXlT
eXN0ZW1SZXF1ZXN0LmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpNZWRpYUtleVN5c3Rl
bVJlcXVlc3Q6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYUtleVN5c3RlbVJlcXVl
c3Q6Ok1lZGlhS2V5U3lzdGVtUmVxdWVzdCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYUtleVN5
c3RlbVJlcXVlc3Q6On5NZWRpYUtleVN5c3RlbVJlcXVlc3QpOgorICAgICAgICAoV2ViQ29yZTo6
TWVkaWFLZXlTeXN0ZW1SZXF1ZXN0Ojp0b3BMZXZlbERvY3VtZW50T3JpZ2luIGNvbnN0KToKKyAg
ICAgICAgKFdlYkNvcmU6Ok1lZGlhS2V5U3lzdGVtUmVxdWVzdDo6c3RhcnQpOgorICAgICAgICAo
V2ViQ29yZTo6TWVkaWFLZXlTeXN0ZW1SZXF1ZXN0OjphbGxvdyk6CisgICAgICAgIChXZWJDb3Jl
OjpNZWRpYUtleVN5c3RlbVJlcXVlc3Q6OmRlbnkpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFL
ZXlTeXN0ZW1SZXF1ZXN0OjpzdG9wKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhS2V5U3lzdGVt
UmVxdWVzdDo6YWN0aXZlRE9NT2JqZWN0TmFtZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpN
ZWRpYUtleVN5c3RlbVJlcXVlc3Q6OmRvY3VtZW50IGNvbnN0KToKKyAgICAgICAgKiBNb2R1bGVz
L2VuY3J5cHRlZG1lZGlhL01lZGlhS2V5U3lzdGVtUmVxdWVzdC5oOiBBZGRlZC4KKyAgICAgICAg
KFdlYkNvcmU6Ok1lZGlhS2V5U3lzdGVtUmVxdWVzdDo6c2V0QWxsb3dDYWxsYmFjayk6CisgICAg
ICAgIChXZWJDb3JlOjpNZWRpYUtleVN5c3RlbVJlcXVlc3Q6OmlkZW50aWZpZXIgY29uc3QpOgor
ICAgICAgICAoV2ViQ29yZTo6TWVkaWFLZXlTeXN0ZW1SZXF1ZXN0OjprZXlTeXN0ZW0gY29uc3Qp
OgorICAgICAgICAqIE1vZHVsZXMvZW5jcnlwdGVkbWVkaWEvTmF2aWdhdG9yRU1FLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6Ok5hdmlnYXRvckVNRTo6cmVxdWVzdE1lZGlhS2V5U3lzdGVtQWNjZXNz
KToKKwogMjAyMS0wMi0wMSAgWGFiaWVyIFJvZHJpZ3VleiBDYWx2YXIgIDxjYWx2YXJpc0BpZ2Fs
aWEuY29tPgogCiAgICAgICAgIFtHU3RyZWFtZXJdW0VNRV1bVGh1bmRlcl0gQWRkIHZpZGVvL3gt
dnA5IGFzIHN1cHBvcnRlZCBmb3IgY2VuYyBhbmQgY2JjcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCAyY2FkNzhmMWU2
ZWY0ODk5ZDZmZTMwNDdlOTM5MzJkY2ViOTNiMWUyLi42NDk0NTRmZGYxY2Q2ZDkyOGI0YmRjY2Y0
MmMzYWVmZWIxZWIxZjg5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysg
Yi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDExOCBAQAorMjAyMS0wMS0zMSAg
UGhpbGlwcGUgTm9ybWFuZCAgPHBub3JtYW5kQGlnYWxpYS5jb20+CisKKyAgICAgICAgUGVybWlz
c2lvbiByZXF1ZXN0IEFQSSBmb3IgTWVkaWFLZXlTeXN0ZW0gYWNjZXNzIHN1cHBvcnQKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyMTE4NworCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBuZXcgSVBDIGFu
ZCBBUEkgZXhwb3NpbmcgTWVkaWFLZXlTeXN0ZW0gYWNjZXNzIHBlcm1pc3Npb25zIHRvIHRoZSBV
SVByb2Nlc3MuIEF0IGxlYXN0CisgICAgICAgIEdUSy9XUEUgd291bGQgbGlrZSB0byBoYXZlIEFQ
SSBmb3IgYXNraW5nIHBlcm1pc3Npb24gdG8gdGhlIHVzZXIgd2hlbiBFTUUncyBNZWRpYUtleUFj
Y2VzcworICAgICAgICBpcyBiZWluZyByZXF1ZXN0ZWQgYnkgYSBwYWdlLiBPbiBBcHBsZSBwbGF0
Zm9ybXMgdGhlIHBlcm1pc3Npb24gaXMgZ3JhbnRlZCBieSBkZWZhdWx0IHVudGlsCisgICAgICAg
IGEgZGVjaXNpb24gaXMgbWFkZSBhYm91dCBzdXBwb3J0aW5nIHRoaXMgaW4gdGhlaXIgQVBJVUlD
bGllbnQuCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBIZWFkZXJzLmNt
YWtlOgorICAgICAgICAqIFBsYXRmb3JtL0xvZ2dpbmcuaDoKKyAgICAgICAgKiBQbGF0Zm9ybUdU
Sy5jbWFrZToKKyAgICAgICAgKiBQbGF0Zm9ybVdQRS5jbWFrZToKKyAgICAgICAgKiBTaGFyZWQv
QVBJL0FQSU9iamVjdC5oOgorICAgICAgICAqIFNoYXJlZC9BUEkvYy9XS0Jhc2UuaDoKKyAgICAg
ICAgKiBTb3VyY2VzLnR4dDoKKyAgICAgICAgKiBTb3VyY2VzR1RLLnR4dDoKKyAgICAgICAgKiBT
b3VyY2VzV1BFLnR4dDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0FQSVVJQ2xpZW50Lmg6Cisg
ICAgICAgIChBUEk6OlVJQ2xpZW50OjpkZWNpZGVQb2xpY3lGb3JNZWRpYUtleVN5c3RlbVBlcm1p
c3Npb25SZXF1ZXN0KToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tBUElDYXN0Lmg6Cisg
ICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dLTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uQ2FsbGJh
Y2suY3BwOiBBZGRlZC4KKyAgICAgICAgKFdLTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uQ2FsbGJh
Y2tHZXRUeXBlSUQpOgorICAgICAgICAoV0tNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25DYWxsYmFj
a0NvbXBsZXRlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tNZWRpYUtleVN5c3RlbVBl
cm1pc3Npb25DYWxsYmFjay5oOiBBZGRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tQ
YWdlLmNwcDoKKyAgICAgICAgKFdLUGFnZVNldFBhZ2VVSUNsaWVudCk6CisgICAgICAgICogVUlQ
cm9jZXNzL0FQSS9DL1dLUGFnZVVJQ2xpZW50Lmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9n
bGliL1dlYktpdE1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3QuY3BwOiBBZGRlZC4KKyAg
ICAgICAgKHdlYmtpdE1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RBbGxvdyk6CisgICAg
ICAgICh3ZWJraXRNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0RGVueSk6CisgICAgICAg
ICh3ZWJraXRfcGVybWlzc2lvbl9yZXF1ZXN0X2ludGVyZmFjZV9pbml0KToKKyAgICAgICAgKHdl
YmtpdE1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3REaXNwb3NlKToKKyAgICAgICAgKHdl
YmtpdF9tZWRpYV9rZXlfc3lzdGVtX3Blcm1pc3Npb25fcmVxdWVzdF9jbGFzc19pbml0KToKKyAg
ICAgICAgKHdlYmtpdE1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RDcmVhdGUpOgorICAg
ICAgICAod2Via2l0X21lZGlhX2tleV9zeXN0ZW1fcGVybWlzc2lvbl9nZXRfbmFtZSk6CisgICAg
ICAgICogVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdE1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJl
cXVlc3RQcml2YXRlLmg6IEFkZGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJL
aXRVSUNsaWVudC5jcHA6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0QXV0b2Ns
ZWFudXBzLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0TWVkaWFLZXlTeXN0
ZW1QZXJtaXNzaW9uUmVxdWVzdC5oOiBBZGRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2d0
ay9kb2NzL3dlYmtpdDJndGstNC4wLXNlY3Rpb25zLnR4dDoKKyAgICAgICAgKiBVSVByb2Nlc3Mv
QVBJL2d0ay9kb2NzL3dlYmtpdDJndGstZG9jcy5zZ21sOgorICAgICAgICAqIFVJUHJvY2Vzcy9B
UEkvZ3RrL3dlYmtpdDIuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL3dwZS9XZWJLaXRNZWRp
YUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0Lmg6IEFkZGVkLgorICAgICAgICAqIFVJUHJvY2Vz
cy9BUEkvd3BlL2RvY3Mvd3BlLTEuMC1zZWN0aW9ucy50eHQ6CisgICAgICAgICogVUlQcm9jZXNz
L0FQSS93cGUvZG9jcy93cGUtZG9jcy5zZ21sOgorICAgICAgICAqIFVJUHJvY2Vzcy9NZWRpYUtl
eVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0Lmg6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpNZWRp
YUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0OjpjcmVhdGUpOgorICAgICAgICAoV2ViS2l0OjpN
ZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0Ojpjb21wbGV0ZSk6CisgICAgICAgIChXZWJL
aXQ6Ok1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3Q6OmtleVN5c3RlbSBjb25zdCk6Cisg
ICAgICAgIChXZWJLaXQ6Ok1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3Q6Ok1lZGlhS2V5
U3lzdGVtUGVybWlzc2lvblJlcXVlc3QpOgorICAgICAgICAoV2ViS2l0OjpNZWRpYUtleVN5c3Rl
bVBlcm1pc3Npb25DYWxsYmFjazo6Y3JlYXRlKToKKyAgICAgICAgKFdlYktpdDo6TWVkaWFLZXlT
eXN0ZW1QZXJtaXNzaW9uQ2FsbGJhY2s6OmNvbXBsZXRlKToKKyAgICAgICAgKFdlYktpdDo6TWVk
aWFLZXlTeXN0ZW1QZXJtaXNzaW9uQ2FsbGJhY2s6Ok1lZGlhS2V5U3lzdGVtUGVybWlzc2lvbkNh
bGxiYWNrKToKKyAgICAgICAgKiBVSVByb2Nlc3MvTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVx
dWVzdE1hbmFnZXJQcm94eS5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpNZWRpYUtleVN5
c3RlbVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5OjpNZWRpYUtleVN5c3RlbVBlcm1pc3Np
b25SZXF1ZXN0TWFuYWdlclByb3h5KToKKyAgICAgICAgKFdlYktpdDo6TWVkaWFLZXlTeXN0ZW1Q
ZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6fk1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJl
cXVlc3RNYW5hZ2VyUHJveHkpOgorICAgICAgICAoV2ViS2l0OjpNZWRpYUtleVN5c3RlbVBlcm1p
c3Npb25SZXF1ZXN0TWFuYWdlclByb3h5OjppbnZhbGlkYXRlUGVuZGluZ1JlcXVlc3RzKToKKyAg
ICAgICAgKFdlYktpdDo6TWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94
eTo6ZGVueVJlcXVlc3QpOgorICAgICAgICAoV2ViS2l0OjpNZWRpYUtleVN5c3RlbVBlcm1pc3Np
b25SZXF1ZXN0TWFuYWdlclByb3h5OjpncmFudFJlcXVlc3QpOgorICAgICAgICAoV2ViS2l0OjpN
ZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5OjpjcmVhdGVSZXF1ZXN0
Rm9yRnJhbWUpOgorICAgICAgICAoV2ViS2l0OjpNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1
ZXN0TWFuYWdlclByb3h5Ojpsb2dDaGFubmVsIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6TWVk
aWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6bG9nZ2VyIGNvbnN0KToK
KyAgICAgICAgKiBVSVByb2Nlc3MvTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdE1hbmFn
ZXJQcm94eS5oOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6TWVkaWFLZXlTeXN0ZW1QZXJtaXNz
aW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6cGFnZSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6Ok1l
ZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6OmRlbnlSZXF1ZXN0KToK
KyAgICAgICAgKiBVSVByb2Nlc3MvTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdFByb3h5
LmNwcDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6Ok1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJl
cXVlc3RQcm94eTo6TWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdFByb3h5KToKKyAgICAg
ICAgKFdlYktpdDo6TWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdFByb3h5OjphbGxvdyk6
CisgICAgICAgIChXZWJLaXQ6Ok1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RQcm94eTo6
ZGVueSk6CisgICAgICAgIChXZWJLaXQ6Ok1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RQ
cm94eTo6aW52YWxpZGF0ZSk6CisgICAgICAgIChXZWJLaXQ6Ok1lZGlhS2V5U3lzdGVtUGVybWlz
c2lvblJlcXVlc3RQcm94eTo6ZG9EZWZhdWx0QWN0aW9uKToKKyAgICAgICAgKiBVSVByb2Nlc3Mv
TWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdFByb3h5Lmg6IEFkZGVkLgorICAgICAgICAo
V2ViS2l0OjpNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0UHJveHk6OmNyZWF0ZSk6Cisg
ICAgICAgIChXZWJLaXQ6Ok1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RQcm94eTo6aXNQ
ZW5kaW5nIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6TWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9u
UmVxdWVzdFByb3h5OjptZWRpYUtleVN5c3RlbUlEIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6
TWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdFByb3h5OjptYWluRnJhbWVJRCBjb25zdCk6
CisgICAgICAgIChXZWJLaXQ6Ok1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RQcm94eTo6
ZnJhbWVJRCBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6Ok1lZGlhS2V5U3lzdGVtUGVybWlzc2lv
blJlcXVlc3RQcm94eTo6dG9wTGV2ZWxEb2N1bWVudFNlY3VyaXR5T3JpZ2luKToKKyAgICAgICAg
KFdlYktpdDo6TWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdFByb3h5Ojp0b3BMZXZlbERv
Y3VtZW50U2VjdXJpdHlPcmlnaW4gY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpNZWRpYUtleVN5
c3RlbVBlcm1pc3Npb25SZXF1ZXN0UHJveHk6OmtleVN5c3RlbSBjb25zdCk6CisgICAgICAgICog
VUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZS5oOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpX
ZWJQYWdlUHJveHk6OnJlcXVlc3RNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25Gb3JGcmFtZSk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6bWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVx
dWVzdE1hbmFnZXIpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OnJlcXVlc3RNZWRp
YUtleVN5c3RlbVBlcm1pc3Npb25CeURlZmF1bHRBY3Rpb24pOgorICAgICAgICAqIFVJUHJvY2Vz
cy9XZWJQYWdlUHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3Nh
Z2VzLmluOgorICAgICAgICAqIFdlYlByb2Nlc3MvRW5jcnlwdGVkTWVkaWEvTWVkaWFLZXlTeXN0
ZW1QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6
TWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXI6Ok1lZGlhS2V5U3lzdGVtUGVy
bWlzc2lvblJlcXVlc3RNYW5hZ2VyKToKKyAgICAgICAgKFdlYktpdDo6TWVkaWFLZXlTeXN0ZW1Q
ZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXI6OnN0YXJ0TWVkaWFLZXlTeXN0ZW1SZXF1ZXN0KToKKyAg
ICAgICAgKFdlYktpdDo6TWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXI6OnNl
bmRNZWRpYUtleVN5c3RlbVJlcXVlc3QpOgorICAgICAgICAoV2ViS2l0OjpNZWRpYUtleVN5c3Rl
bVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcjo6Y2FuY2VsTWVkaWFLZXlTeXN0ZW1SZXF1ZXN0KToK
KyAgICAgICAgKFdlYktpdDo6TWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXI6
Om1lZGlhS2V5U3lzdGVtV2FzR3JhbnRlZCk6CisgICAgICAgIChXZWJLaXQ6Ok1lZGlhS2V5U3lz
dGVtUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyOjptZWRpYUtleVN5c3RlbVdhc0RlbmllZCk6Cisg
ICAgICAgICogV2ViUHJvY2Vzcy9FbmNyeXB0ZWRNZWRpYS9NZWRpYUtleVN5c3RlbVBlcm1pc3Np
b25SZXF1ZXN0TWFuYWdlci5oOiBBZGRlZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0L1dlYk1lZGlhS2V5U3lzdGVtQ2xpZW50LmNwcDogQWRkZWQuCisgICAgICAgIChXZWJL
aXQ6OldlYk1lZGlhS2V5U3lzdGVtQ2xpZW50OjpXZWJNZWRpYUtleVN5c3RlbUNsaWVudCk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYk1lZGlhS2V5U3lzdGVtQ2xpZW50OjpwYWdlRGVzdHJveWVkKToK
KyAgICAgICAgKFdlYktpdDo6V2ViTWVkaWFLZXlTeXN0ZW1DbGllbnQ6OnJlcXVlc3RNZWRpYUtl
eVN5c3RlbSk6CisgICAgICAgIChXZWJLaXQ6OldlYk1lZGlhS2V5U3lzdGVtQ2xpZW50OjpjYW5j
ZWxNZWRpYUtleVN5c3RlbVJlcXVlc3QpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvV2ViTWVkaWFLZXlTeXN0ZW1DbGllbnQuaDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6
OldlYk1lZGlhS2V5U3lzdGVtQ2xpZW50Ojp+V2ViTWVkaWFLZXlTeXN0ZW1DbGllbnQpOgorICAg
ICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6
bV9saW1pdHNOYXZpZ2F0aW9uc1RvQXBwQm91bmREb21haW5zKToKKyAgICAgICAgKFdlYktpdDo6
V2ViUGFnZTo6bWVkaWFLZXlTeXN0ZW1XYXNHcmFudGVkKToKKyAgICAgICAgKFdlYktpdDo6V2Vi
UGFnZTo6bWVkaWFLZXlTeXN0ZW1XYXNEZW5pZWQpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2Vi
UGFnZS9XZWJQYWdlLmg6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6Om1lZGlhS2V5U3lzdGVt
UGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2Uv
V2ViUGFnZS5tZXNzYWdlcy5pbjoKKwogMjAyMS0wMi0wMSAgQ2FybG9zIEdhcmNpYSBDYW1wb3Mg
IDxjZ2FyY2lhQGlnYWxpYS5jb20+CiAKICAgICAgICAgW1NPVVBdIEFkZCBzdXBwb3J0IGZvciBk
YXRhIFVSTHMgaW4gdGhlIG5ldHdvcmsgcHJvY2VzcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAppbmRleCBi
YWE0NTNkNmNmMWMyMmU2NTkzMTE1NDRiMDI2Yjc4YWQ0YjU4ZDY0Li5iMmYxNjc5MDEyYzAzYjgw
ZGZjNTRkMjQ3OGZmMGJlMmU4MjRlMGI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DTWFr
ZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dApAQCAtMTQ5Nyw2
ICsxNDk3LDggQEAgaWYgKEVOQUJMRV9FTkNSWVBURURfTUVESUEpCiAgICAgICAgIE1vZHVsZXMv
ZW5jcnlwdGVkbWVkaWEvTWVkaWFLZXlTZXNzaW9uLmNwcAogICAgICAgICBNb2R1bGVzL2VuY3J5
cHRlZG1lZGlhL01lZGlhS2V5U3RhdHVzTWFwLmNwcAogICAgICAgICBNb2R1bGVzL2VuY3J5cHRl
ZG1lZGlhL01lZGlhS2V5U3lzdGVtQWNjZXNzLmNwcAorICAgICAgICBNb2R1bGVzL2VuY3J5cHRl
ZG1lZGlhL01lZGlhS2V5U3lzdGVtQ29udHJvbGxlci5jcHAKKyAgICAgICAgTW9kdWxlcy9lbmNy
eXB0ZWRtZWRpYS9NZWRpYUtleVN5c3RlbVJlcXVlc3QuY3BwCiAgICAgICAgIE1vZHVsZXMvZW5j
cnlwdGVkbWVkaWEvTWVkaWFLZXlzLmNwcAogICAgICAgICBNb2R1bGVzL2VuY3J5cHRlZG1lZGlh
L05hdmlnYXRvckVNRS5jcHAKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvSGVhZGVycy5j
bWFrZSBiL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKaW5kZXggYWJhMTVlMGVkN2EwMTQ2
NDU4MmYzZjkyODBlNjc4YjNkYjI4ZjYzMi4uOGMxYjZjMzI3ODJhOTFkOWM0MTRjNjEwYjQ5ZTY3
OWVlYjYwYmI2OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCkBAIC0yNCw2ICsyNCw5IEBAIHNldChXZWJD
b3JlX1BSSVZBVEVfRlJBTUVXT1JLX0hFQURFUlMKICAgICBNb2R1bGVzL2NvbnRhY3QtcGlja2Vy
L0NvbnRhY3RzUmVxdWVzdERhdGEuaAogCiAgICAgTW9kdWxlcy9lbmNyeXB0ZWRtZWRpYS9DRE1D
bGllbnQuaAorICAgIE1vZHVsZXMvZW5jcnlwdGVkbWVkaWEvTWVkaWFLZXlTeXN0ZW1DbGllbnQu
aAorICAgIE1vZHVsZXMvZW5jcnlwdGVkbWVkaWEvTWVkaWFLZXlTeXN0ZW1Db250cm9sbGVyLmgK
KyAgICBNb2R1bGVzL2VuY3J5cHRlZG1lZGlhL01lZGlhS2V5U3lzdGVtUmVxdWVzdC5oCiAKICAg
ICBNb2R1bGVzL2ZldGNoL0ZldGNoQm9keUNvbnN1bWVyLmgKICAgICBNb2R1bGVzL2ZldGNoL0Zl
dGNoQm9keVNvdXJjZS5oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2VuY3J5
cHRlZG1lZGlhL01lZGlhS2V5U3lzdGVtQ2xpZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2VuY3J5cHRlZG1lZGlhL01lZGlhS2V5U3lzdGVtQ2xpZW50LmgKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNTNkMzBi
MWQwZjg5ZTAwNTBhYWQwNDIyN2ExMGU4NDQwMjk4Mjk3YgotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvZW5jcnlwdGVkbWVkaWEvTWVkaWFLZXlTeXN0ZW1DbGllbnQu
aApAQCAtMCwwICsxLDUyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIElnYWxpYSBTLkwu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiAgUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhF
IElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorICog
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05T
RVFVRU5USUFMIERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1MgT0YgVVNF
LCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTgorICogQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTCisg
KiBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShFTkNSWVBURURfTUVESUEp
CisKKyNpbmNsdWRlIDx3dGYvQ29tcGxldGlvbkhhbmRsZXIuaD4KKworbmFtZXNwYWNlIFdlYkNv
cmUgeworCitjbGFzcyBEb2N1bWVudDsKK2NsYXNzIFBhZ2U7CitjbGFzcyBNZWRpYUtleVN5c3Rl
bVJlcXVlc3Q7CisKK2NsYXNzIE1lZGlhS2V5U3lzdGVtQ2xpZW50IHsKK3B1YmxpYzoKKyAgICB2
aXJ0dWFsIHZvaWQgcGFnZURlc3Ryb3llZCgpID0gMDsKKworICAgIHZpcnR1YWwgdm9pZCByZXF1
ZXN0TWVkaWFLZXlTeXN0ZW0oTWVkaWFLZXlTeXN0ZW1SZXF1ZXN0JikgPSAwOworICAgIHZpcnR1
YWwgdm9pZCBjYW5jZWxNZWRpYUtleVN5c3RlbVJlcXVlc3QoTWVkaWFLZXlTeXN0ZW1SZXF1ZXN0
JikgPSAwOworCitwcm90ZWN0ZWQ6CisgICAgdmlydHVhbCB+TWVkaWFLZXlTeXN0ZW1DbGllbnQo
KSA9IGRlZmF1bHQ7Cit9OworCitXRUJDT1JFX0VYUE9SVCB2b2lkIHByb3ZpZGVNZWRpYUtleVN5
c3RlbVRvKFBhZ2UqLCBNZWRpYUtleVN5c3RlbUNsaWVudCopOworCit9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoRU5DUllQVEVEX01FRElBKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9lbmNyeXB0ZWRtZWRpYS9NZWRpYUtleVN5c3RlbUNvbnRy
b2xsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9lbmNyeXB0ZWRtZWRpYS9NZWRpYUtl
eVN5c3RlbUNvbnRyb2xsZXIuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjEyMmJhODI1YzJjNzM3NjBjOWFkODNi
MDIzZGZmMGZhMDI3ZDRlNDkKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2VuY3J5cHRlZG1lZGlhL01lZGlhS2V5U3lzdGVtQ29udHJvbGxlci5jcHAKQEAgLTAsMCAr
MSw2NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBJZ2FsaWEgUy5MLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisg
KiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKKyAqIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBE
QU1BR0VTCisgKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7CisgKiBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04K
KyAqIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUworICogU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIk1lZGlhS2V5U3lzdGVtQ29udHJvbGxl
ci5oIgorCisjaWYgRU5BQkxFKEVOQ1JZUFRFRF9NRURJQSkKKworI2luY2x1ZGUgIkRPTVdpbmRv
dy5oIgorI2luY2x1ZGUgIkRvY3VtZW50LmgiCisjaW5jbHVkZSAiRnJhbWUuaCIKKyNpbmNsdWRl
ICJIVE1MSUZyYW1lRWxlbWVudC5oIgorI2luY2x1ZGUgIk1lZGlhS2V5U3lzdGVtUmVxdWVzdC5o
IgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NvbnN0IGNoYXIqIE1lZGlhS2V5U3lzdGVtQ29u
dHJvbGxlcjo6c3VwcGxlbWVudE5hbWUoKQoreworICAgIHJldHVybiAiTWVkaWFLZXlTeXN0ZW1D
b250cm9sbGVyIjsKK30KKworTWVkaWFLZXlTeXN0ZW1Db250cm9sbGVyOjpNZWRpYUtleVN5c3Rl
bUNvbnRyb2xsZXIoTWVkaWFLZXlTeXN0ZW1DbGllbnQqIGNsaWVudCkKKyAgICA6IG1fY2xpZW50
KGNsaWVudCkKK3sKK30KKworTWVkaWFLZXlTeXN0ZW1Db250cm9sbGVyOjp+TWVkaWFLZXlTeXN0
ZW1Db250cm9sbGVyKCkKK3sKKyAgICBtX2NsaWVudC0+cGFnZURlc3Ryb3llZCgpOworfQorCit2
b2lkIHByb3ZpZGVNZWRpYUtleVN5c3RlbVRvKFBhZ2UqIHBhZ2UsIE1lZGlhS2V5U3lzdGVtQ2xp
ZW50KiBjbGllbnQpCit7CisgICAgTWVkaWFLZXlTeXN0ZW1Db250cm9sbGVyOjpwcm92aWRlVG8o
cGFnZSwgTWVkaWFLZXlTeXN0ZW1Db250cm9sbGVyOjpzdXBwbGVtZW50TmFtZSgpLCBtYWtlVW5p
cXVlPE1lZGlhS2V5U3lzdGVtQ29udHJvbGxlcj4oY2xpZW50KSk7Cit9CisKK3ZvaWQgTWVkaWFL
ZXlTeXN0ZW1Db250cm9sbGVyOjpsb2dSZXF1ZXN0TWVkaWFLZXlTeXN0ZW1EZW5pYWwoRG9jdW1l
bnQmIGRvY3VtZW50KQoreworICAgIGlmIChhdXRvKiB3aW5kb3cgPSBkb2N1bWVudC5kb21XaW5k
b3coKSkKKyAgICAgICAgd2luZG93LT5wcmludEVycm9yTWVzc2FnZShtYWtlU3RyaW5nKCJOb3Qg
YWxsb3dlZCB0byBhY2Nlc3MgTWVkaWFLZXlTeXN0ZW0uIikpOworfQorCit9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoTUVESUFfU1RSRUFNKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9lbmNyeXB0ZWRtZWRpYS9NZWRpYUtleVN5c3RlbUNvbnRy
b2xsZXIuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZW5jcnlwdGVkbWVkaWEvTWVkaWFLZXlT
eXN0ZW1Db250cm9sbGVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTlhMjhhMmJiOTBlYjQ0MGM2Nzc4MDFlZjc5
YWNkOGZmYjFhYTgwMwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
ZW5jcnlwdGVkbWVkaWEvTWVkaWFLZXlTeXN0ZW1Db250cm9sbGVyLmgKQEAgLTAsMCArMSw3MCBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBJZ2FsaWEgUy5MLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09O
VFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBV
UlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
IElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKKyAqIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VT
CisgKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7CisgKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04KKyAqIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUworICogU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3By
YWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoRU5DUllQVEVEX01FRElBKQorCisjaW5jbHVkZSAiRmVh
dHVyZVBvbGljeS5oIgorI2luY2x1ZGUgIk1lZGlhS2V5U3lzdGVtQ2xpZW50LmgiCisjaW5jbHVk
ZSAiUGFnZS5oIgorI2luY2x1ZGUgPHd0Zi9Db21wbGV0aW9uSGFuZGxlci5oPgorCituYW1lc3Bh
Y2UgV2ViQ29yZSB7CisKK2NsYXNzIE1lZGlhS2V5U3lzdGVtUmVxdWVzdDsKKworY2xhc3MgTWVk
aWFLZXlTeXN0ZW1Db250cm9sbGVyIDogcHVibGljIFN1cHBsZW1lbnQ8UGFnZT4geworICAgIFdU
Rl9NQUtFX0ZBU1RfQUxMT0NBVEVEOworcHVibGljOgorICAgIGV4cGxpY2l0IE1lZGlhS2V5U3lz
dGVtQ29udHJvbGxlcihNZWRpYUtleVN5c3RlbUNsaWVudCopOworICAgIH5NZWRpYUtleVN5c3Rl
bUNvbnRyb2xsZXIoKTsKKworICAgIE1lZGlhS2V5U3lzdGVtQ2xpZW50KiBjbGllbnQoKSBjb25z
dCB7IHJldHVybiBtX2NsaWVudDsgfQorCisgICAgdm9pZCByZXF1ZXN0TWVkaWFLZXlTeXN0ZW0o
TWVkaWFLZXlTeXN0ZW1SZXF1ZXN0Jik7CisgICAgdm9pZCBjYW5jZWxNZWRpYUtleVN5c3RlbVJl
cXVlc3QoTWVkaWFLZXlTeXN0ZW1SZXF1ZXN0Jik7CisKKyAgICB2b2lkIGxvZ1JlcXVlc3RNZWRp
YUtleVN5c3RlbURlbmlhbChEb2N1bWVudCYpOworCisgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGlj
IGNvbnN0IGNoYXIqIHN1cHBsZW1lbnROYW1lKCk7CisgICAgc3RhdGljIE1lZGlhS2V5U3lzdGVt
Q29udHJvbGxlciogZnJvbShQYWdlKiBwYWdlKSB7IHJldHVybiBzdGF0aWNfY2FzdDxNZWRpYUtl
eVN5c3RlbUNvbnRyb2xsZXIqPihTdXBwbGVtZW50PFBhZ2U+Ojpmcm9tKHBhZ2UsIHN1cHBsZW1l
bnROYW1lKCkpKTsgfQorCitwcml2YXRlOgorICAgIE1lZGlhS2V5U3lzdGVtQ2xpZW50KiBtX2Ns
aWVudDsKK307CisKK2lubGluZSB2b2lkIE1lZGlhS2V5U3lzdGVtQ29udHJvbGxlcjo6cmVxdWVz
dE1lZGlhS2V5U3lzdGVtKE1lZGlhS2V5U3lzdGVtUmVxdWVzdCYgcmVxdWVzdCkKK3sKKyAgICBt
X2NsaWVudC0+cmVxdWVzdE1lZGlhS2V5U3lzdGVtKHJlcXVlc3QpOworfQorCitpbmxpbmUgdm9p
ZCBNZWRpYUtleVN5c3RlbUNvbnRyb2xsZXI6OmNhbmNlbE1lZGlhS2V5U3lzdGVtUmVxdWVzdChN
ZWRpYUtleVN5c3RlbVJlcXVlc3QmIHJlcXVlc3QpCit7CisgICAgbV9jbGllbnQtPmNhbmNlbE1l
ZGlhS2V5U3lzdGVtUmVxdWVzdChyZXF1ZXN0KTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQorCisjZW5kaWYgLy8gRU5BQkxFKEVOQ1JZUFRFRF9NRURJQSkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvZW5jcnlwdGVkbWVkaWEvTWVkaWFLZXlTeXN0ZW1SZXF1ZXN0LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZW5jcnlwdGVkbWVkaWEvTWVkaWFLZXlTeXN0ZW1S
ZXF1ZXN0LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43ZWY1M2FhNmFiNTUyZWRlNTRhNDZhMjJiNmRjMmMwZWFh
MzM5M2FjCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9lbmNyeXB0
ZWRtZWRpYS9NZWRpYUtleVN5c3RlbVJlcXVlc3QuY3BwCkBAIC0wLDAgKzEsMTI3IEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDIxIElnYWxpYSBTLkwuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAg
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRP
UlMgYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBB
UkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENP
TlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyAqIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTgorICogQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTCisgKiBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAi
Y29uZmlnLmgiCisjaW5jbHVkZSAiTWVkaWFLZXlTeXN0ZW1SZXF1ZXN0LmgiCisKKyNpZiBFTkFC
TEUoTUVESUFfU1RSRUFNKQorCisjaW5jbHVkZSAiRG9jdW1lbnQuaCIKKyNpbmNsdWRlICJGcmFt
ZS5oIgorI2luY2x1ZGUgIkpTRE9NUHJvbWlzZURlZmVycmVkLmgiCisjaW5jbHVkZSAiSlNNZWRp
YUtleVN5c3RlbUFjY2Vzcy5oIgorI2luY2x1ZGUgIkxvZ2dpbmcuaCIKKyNpbmNsdWRlICJNZWRp
YUtleVN5c3RlbUNvbnRyb2xsZXIuaCIKKyNpbmNsdWRlICJQbGF0Zm9ybU1lZGlhU2Vzc2lvbk1h
bmFnZXIuaCIKKyNpbmNsdWRlICJTZXR0aW5ncy5oIgorI2luY2x1ZGUgIldpbmRvd0V2ZW50TG9v
cC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1JlZjxNZWRpYUtleVN5c3RlbVJlcXVlc3Q+
IE1lZGlhS2V5U3lzdGVtUmVxdWVzdDo6Y3JlYXRlKERvY3VtZW50JiBkb2N1bWVudCwgY29uc3Qg
U3RyaW5nJiBrZXlTeXN0ZW0sIFJlZjxEZWZlcnJlZFByb21pc2U+JiYgcHJvbWlzZSkKK3sKKyAg
ICBhdXRvIHJlc3VsdCA9IGFkb3B0UmVmKCpuZXcgTWVkaWFLZXlTeXN0ZW1SZXF1ZXN0KGRvY3Vt
ZW50LCBrZXlTeXN0ZW0sIFdURk1vdmUocHJvbWlzZSkpKTsKKyAgICByZXN1bHQtPnN1c3BlbmRJ
Zk5lZWRlZCgpOworICAgIHJldHVybiByZXN1bHQ7Cit9CisKK01lZGlhS2V5U3lzdGVtUmVxdWVz
dDo6TWVkaWFLZXlTeXN0ZW1SZXF1ZXN0KERvY3VtZW50JiBkb2N1bWVudCwgY29uc3QgU3RyaW5n
JiBrZXlTeXN0ZW0sIFJlZjxEZWZlcnJlZFByb21pc2U+JiYgcHJvbWlzZSkKKyAgICA6IEFjdGl2
ZURPTU9iamVjdChkb2N1bWVudCkKKyAgICAsIG1fa2V5U3lzdGVtKGtleVN5c3RlbSkKKyAgICAs
IG1fcHJvbWlzZShXVEZNb3ZlKHByb21pc2UpKQoreworfQorCitNZWRpYUtleVN5c3RlbVJlcXVl
c3Q6On5NZWRpYUtleVN5c3RlbVJlcXVlc3QoKQoreworICAgIGlmIChtX2FsbG93Q29tcGxldGlv
bkhhbmRsZXIpCisgICAgICAgIG1fYWxsb3dDb21wbGV0aW9uSGFuZGxlcihXVEZNb3ZlKG1fcHJv
bWlzZSkpOworfQorCitTZWN1cml0eU9yaWdpbiogTWVkaWFLZXlTeXN0ZW1SZXF1ZXN0Ojp0b3BM
ZXZlbERvY3VtZW50T3JpZ2luKCkgY29uc3QKK3sKKyAgICBpZiAoIW1fc2NyaXB0RXhlY3V0aW9u
Q29udGV4dCkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgcmV0dXJuICZtX3NjcmlwdEV4
ZWN1dGlvbkNvbnRleHQtPnRvcE9yaWdpbigpOworfQorCit2b2lkIE1lZGlhS2V5U3lzdGVtUmVx
dWVzdDo6c3RhcnQoKQoreworICAgIEFTU0VSVChtX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQpOwor
ICAgIGlmICghbV9zY3JpcHRFeGVjdXRpb25Db250ZXh0KSB7CisgICAgICAgIGRlbnkoKTsKKyAg
ICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGF1dG8mIGRvY3VtZW50ID0gZG93bmNhc3Q8RG9j
dW1lbnQ+KCptX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQpOworICAgIGF1dG8qIGNvbnRyb2xsZXIg
PSBNZWRpYUtleVN5c3RlbUNvbnRyb2xsZXI6OmZyb20oZG9jdW1lbnQucGFnZSgpKTsKKyAgICBp
ZiAoIWNvbnRyb2xsZXIpIHsKKyAgICAgICAgZGVueSgpOworICAgICAgICByZXR1cm47CisgICAg
fQorCisgICAgY29udHJvbGxlci0+cmVxdWVzdE1lZGlhS2V5U3lzdGVtKCp0aGlzKTsKK30KKwor
dm9pZCBNZWRpYUtleVN5c3RlbVJlcXVlc3Q6OmFsbG93KENvbXBsZXRpb25IYW5kbGVyPHZvaWQo
KT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3sKKyAgICBxdWV1ZVRhc2tLZWVwaW5nT2JqZWN0QWxp
dmUoKnRoaXMsIFRhc2tTb3VyY2U6OlVzZXJJbnRlcmFjdGlvbiwgW3RoaXMsIGhhbmRsZXIgPSBX
VEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0oKSBtdXRhYmxlIHsKKyAgICAgICAgYXV0byBjb21w
bGV0aW9uSGFuZGxlciA9IFdURk1vdmUobV9hbGxvd0NvbXBsZXRpb25IYW5kbGVyKTsKKyAgICAg
ICAgY29tcGxldGlvbkhhbmRsZXIoV1RGTW92ZShtX3Byb21pc2UpKTsKKyAgICAgICAgaGFuZGxl
cigpOworICAgIH0pOworfQorCit2b2lkIE1lZGlhS2V5U3lzdGVtUmVxdWVzdDo6ZGVueShjb25z
dCBTdHJpbmcmIG1lc3NhZ2UpCit7CisgICAgaWYgKCFtX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQp
CisgICAgICAgIHJldHVybjsKKworICAgIEV4Y2VwdGlvbkNvZGUgY29kZSA9IE5vdFN1cHBvcnRl
ZEVycm9yOworICAgIGlmICghbWVzc2FnZS5pc0VtcHR5KCkpCisgICAgICAgIG1fcHJvbWlzZS0+
cmVqZWN0KGNvZGUsIG1lc3NhZ2UpOworICAgIGVsc2UKKyAgICAgICAgbV9wcm9taXNlLT5yZWpl
Y3QoY29kZSk7Cit9CisKK3ZvaWQgTWVkaWFLZXlTeXN0ZW1SZXF1ZXN0OjpzdG9wKCkKK3sKKyAg
ICBhdXRvJiBkb2N1bWVudCA9IGRvd25jYXN0PERvY3VtZW50PigqbV9zY3JpcHRFeGVjdXRpb25D
b250ZXh0KTsKKyAgICBpZiAoYXV0byogY29udHJvbGxlciA9IE1lZGlhS2V5U3lzdGVtQ29udHJv
bGxlcjo6ZnJvbShkb2N1bWVudC5wYWdlKCkpKQorICAgICAgICBjb250cm9sbGVyLT5jYW5jZWxN
ZWRpYUtleVN5c3RlbVJlcXVlc3QoKnRoaXMpOworfQorCitjb25zdCBjaGFyKiBNZWRpYUtleVN5
c3RlbVJlcXVlc3Q6OmFjdGl2ZURPTU9iamVjdE5hbWUoKSBjb25zdAoreworICAgIHJldHVybiAi
TWVkaWFLZXlTeXN0ZW1SZXF1ZXN0IjsKK30KKworRG9jdW1lbnQqIE1lZGlhS2V5U3lzdGVtUmVx
dWVzdDo6ZG9jdW1lbnQoKSBjb25zdAoreworICAgIHJldHVybiBkb3duY2FzdDxEb2N1bWVudD4o
bV9zY3JpcHRFeGVjdXRpb25Db250ZXh0KTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQor
CisjZW5kaWYgLy8gRU5BQkxFKEVOQ1JZUFRFRF9NRURJQSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvZW5jcnlwdGVkbWVkaWEvTWVkaWFLZXlTeXN0ZW1SZXF1ZXN0LmggYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2VuY3J5cHRlZG1lZGlhL01lZGlhS2V5U3lzdGVtUmVxdWVz
dC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjlmY2JlNGYxYmFiZGJjZGI3MmFkNTQ1NjY3M2ZhYmViNDYwZTJhYjcK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2VuY3J5cHRlZG1lZGlh
L01lZGlhS2V5U3lzdGVtUmVxdWVzdC5oCkBAIC0wLDAgKzEsODAgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMjEgSWdhbGlhIFMuTC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElT
JycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICogRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JT
IEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICogKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OCisgKiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICog
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFIE9GIFRISVMKKyAqIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYg
RU5BQkxFKEVOQ1JZUFRFRF9NRURJQSkKKworI2luY2x1ZGUgIkFjdGl2ZURPTU9iamVjdC5oIgor
I2luY2x1ZGUgIklETFR5cGVzLmgiCisjaW5jbHVkZSAiSlNET01Qcm9taXNlRGVmZXJyZWQuaCIK
KyNpbmNsdWRlIDx3dGYvQ29tcGxldGlvbkhhbmRsZXIuaD4KKyNpbmNsdWRlIDx3dGYvRm9yd2Fy
ZC5oPgorI2luY2x1ZGUgPHd0Zi9PYmplY3RJZGVudGlmaWVyLmg+CisjaW5jbHVkZSA8d3RmL1Vu
aXF1ZVJlZi5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFNlY3VyaXR5T3JpZ2lu
OworY2xhc3MgTWVkaWFLZXlTeXN0ZW07CisKK3RlbXBsYXRlIDx0eXBlbmFtZSBJRExUeXBlPiBj
bGFzcyBET01Qcm9taXNlRGVmZXJyZWQ7CisKK2VudW0gTWVkaWFLZXlTeXN0ZW1SZXF1ZXN0SWRl
bnRpZmllclR5cGUgeyB9OwordXNpbmcgTWVkaWFLZXlTeXN0ZW1SZXF1ZXN0SWRlbnRpZmllciA9
IE9iamVjdElkZW50aWZpZXI8TWVkaWFLZXlTeXN0ZW1SZXF1ZXN0SWRlbnRpZmllclR5cGU+Owor
CitjbGFzcyBNZWRpYUtleVN5c3RlbVJlcXVlc3QgOiBwdWJsaWMgUmVmQ291bnRlZDxNZWRpYUtl
eVN5c3RlbVJlcXVlc3Q+LCBwdWJsaWMgQWN0aXZlRE9NT2JqZWN0IHsKK3B1YmxpYzoKKyAgICBz
dGF0aWMgUmVmPE1lZGlhS2V5U3lzdGVtUmVxdWVzdD4gY3JlYXRlKERvY3VtZW50JiwgY29uc3Qg
U3RyaW5nJiBrZXlTeXN0ZW0sIFJlZjxEZWZlcnJlZFByb21pc2U+JiYpOworICAgIHZpcnR1YWwg
fk1lZGlhS2V5U3lzdGVtUmVxdWVzdCgpOworCisgICAgdm9pZCBzZXRBbGxvd0NhbGxiYWNrKENv
bXBsZXRpb25IYW5kbGVyPHZvaWQoUmVmPERlZmVycmVkUHJvbWlzZT4mJik+JiYgY2FsbGJhY2sp
IHsgbV9hbGxvd0NvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjYWxsYmFjayk7IH0KKyAgICBN
ZWRpYUtleVN5c3RlbVJlcXVlc3RJZGVudGlmaWVyIGlkZW50aWZpZXIoKSBjb25zdCB7IHJldHVy
biBtX2lkZW50aWZpZXI7IH0KKyAgICB2b2lkIHN0YXJ0KCk7CisKKyAgICBXRUJDT1JFX0VYUE9S
VCB2b2lkIGFsbG93KENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CisgICAgV0VCQ09SRV9F
WFBPUlQgdm9pZCBkZW55KGNvbnN0IFN0cmluZyYgZXJyb3JNZXNzYWdlID0gZW1wdHlTdHJpbmco
KSk7CisKKyAgICBXRUJDT1JFX0VYUE9SVCBTZWN1cml0eU9yaWdpbiogdG9wTGV2ZWxEb2N1bWVu
dE9yaWdpbigpIGNvbnN0OworICAgIFdFQkNPUkVfRVhQT1JUIERvY3VtZW50KiBkb2N1bWVudCgp
IGNvbnN0OworCisgICAgY29uc3QgU3RyaW5nIGtleVN5c3RlbSgpIGNvbnN0IHsgcmV0dXJuIG1f
a2V5U3lzdGVtOyB9CisKK3ByaXZhdGU6CisgICAgTWVkaWFLZXlTeXN0ZW1SZXF1ZXN0KERvY3Vt
ZW50JiwgY29uc3QgU3RyaW5nJiBrZXlTeXN0ZW0sIFJlZjxEZWZlcnJlZFByb21pc2U+JiYpOwor
CisgICAgdm9pZCBzdG9wKCkgZmluYWw7CisgICAgY29uc3QgY2hhciogYWN0aXZlRE9NT2JqZWN0
TmFtZSgpIGNvbnN0IGZpbmFsOworCisgICAgTWVkaWFLZXlTeXN0ZW1SZXF1ZXN0SWRlbnRpZmll
ciBtX2lkZW50aWZpZXI7CisKKyAgICBTdHJpbmcgbV9rZXlTeXN0ZW07CisgICAgUmVmPERlZmVy
cmVkUHJvbWlzZT4gbV9wcm9taXNlOworCisgICAgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChSZWY8
RGVmZXJyZWRQcm9taXNlPiYmKT4gbV9hbGxvd0NvbXBsZXRpb25IYW5kbGVyOworfTsKKworfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKEVOQ1JZUFRFRF9NRURJQSkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZW5jcnlwdGVkbWVkaWEvTmF2aWdh
dG9yRU1FLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZW5jcnlwdGVkbWVkaWEvTmF2aWdh
dG9yRU1FLmNwcAppbmRleCA2OTQ1NjRhZjNlNTkzYTY5NjE3NThmYWZkNzJhN2Q1MDQ3YTZhYzM2
Li5mYzYxMzc0ZTIxNjQxYzE2NzQxZDdlNTFkZDBlM2U3YTJkNTJiNjYyIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2VuY3J5cHRlZG1lZGlhL05hdmlnYXRvckVNRS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9lbmNyeXB0ZWRtZWRpYS9OYXZpZ2F0b3JFTUUuY3Bw
CkBAIC0zNyw2ICszNyw3IEBACiAjaW5jbHVkZSAiSlNET01Qcm9taXNlRGVmZXJyZWQuaCIKICNp
bmNsdWRlICJKU01lZGlhS2V5U3lzdGVtQWNjZXNzLmgiCiAjaW5jbHVkZSAiTG9nZ2luZy5oIgor
I2luY2x1ZGUgIk1lZGlhS2V5U3lzdGVtUmVxdWVzdC5oIgogI2luY2x1ZGUgPHd0Zi90ZXh0L1N0
cmluZ0J1aWxkZXIuaD4KIAogbmFtZXNwYWNlIFdURiB7CkBAIC05OSwyMyArMTAwLDI3IEBAIHZv
aWQgTmF2aWdhdG9yRU1FOjpyZXF1ZXN0TWVkaWFLZXlTeXN0ZW1BY2Nlc3MoTmF2aWdhdG9yJiBu
YXZpZ2F0b3IsIERvY3VtZW50JiBkCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBkb2N1
bWVudC5wb3N0VGFzayhba2V5U3lzdGVtLCBzdXBwb3J0ZWRDb25maWd1cmF0aW9ucyA9IFdURk1v
dmUoc3VwcG9ydGVkQ29uZmlndXJhdGlvbnMpLCBwcm9taXNlID0gV1RGTW92ZShwcm9taXNlKSwg
JmRvY3VtZW50LCBsb2dnZXIgPSBXVEZNb3ZlKGxvZ2dlciksIGlkZW50aWZpZXIgPSBXVEZNb3Zl
KGlkZW50aWZpZXIpXSAoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYpIG11dGFibGUgewotICAgICAg
ICAvLyAzLiBMZXQgZG9jdW1lbnQgYmUgdGhlIGNhbGxpbmcgY29udGV4dCdzIERvY3VtZW50Lgot
ICAgICAgICAvLyA0LiBMZXQgb3JpZ2luIGJlIHRoZSBvcmlnaW4gb2YgZG9jdW1lbnQuCi0gICAg
ICAgIC8vIDUuIExldCBwcm9taXNlIGJlIGEgbmV3IHByb21pc2UuCi0gICAgICAgIC8vIDYuIFJ1
biB0aGUgZm9sbG93aW5nIHN0ZXBzIGluIHBhcmFsbGVsOgotICAgICAgICAvLyA2LjEuIElmIGtl
eVN5c3RlbSBpcyBub3Qgb25lIG9mIHRoZSBLZXkgU3lzdGVtcyBzdXBwb3J0ZWQgYnkgdGhlIHVz
ZXIgYWdlbnQsIHJlamVjdCBwcm9taXNlIHdpdGggYSBOb3RTdXBwb3J0ZWRFcnJvci4KLSAgICAg
ICAgLy8gICAgICBTdHJpbmcgY29tcGFyaXNvbiBpcyBjYXNlLXNlbnNpdGl2ZS4KLSAgICAgICAg
aWYgKCFDRE06OnN1cHBvcnRzS2V5U3lzdGVtKGtleVN5c3RlbSkpIHsKLSAgICAgICAgICAgIGlu
Zm9Mb2cobG9nZ2VyLCBpZGVudGlmaWVyLCAiUmVqZWN0ZWQ6IGtleVN5c3RlbSgiLCBrZXlTeXN0
ZW0sICIpIG5vdCBzdXBwb3J0ZWQiKTsKLSAgICAgICAgICAgIHByb21pc2UtPnJlamVjdChOb3RT
dXBwb3J0ZWRFcnJvcik7Ci0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIH0KLQotICAgICAg
ICAvLyA2LjIuIExldCBpbXBsZW1lbnRhdGlvbiBiZSB0aGUgaW1wbGVtZW50YXRpb24gb2Yga2V5
U3lzdGVtLgotICAgICAgICBhdXRvIGltcGxlbWVudGF0aW9uID0gQ0RNOjpjcmVhdGUoZG9jdW1l
bnQsIGtleVN5c3RlbSk7Ci0gICAgICAgIHRyeU5leHRTdXBwb3J0ZWRDb25maWd1cmF0aW9uKFdU
Rk1vdmUoaW1wbGVtZW50YXRpb24pLCBXVEZNb3ZlKHN1cHBvcnRlZENvbmZpZ3VyYXRpb25zKSwg
V1RGTW92ZShwcm9taXNlKSwgV1RGTW92ZShsb2dnZXIpLCBXVEZNb3ZlKGlkZW50aWZpZXIpKTsK
KyAgICBhdXRvIHJlcXVlc3QgPSBNZWRpYUtleVN5c3RlbVJlcXVlc3Q6OmNyZWF0ZShkb2N1bWVu
dCwga2V5U3lzdGVtLCBXVEZNb3ZlKHByb21pc2UpKTsKKyAgICByZXF1ZXN0LT5zZXRBbGxvd0Nh
bGxiYWNrKFtrZXlTeXN0ZW0sIHN1cHBvcnRlZENvbmZpZ3VyYXRpb25zID0gV1RGTW92ZShzdXBw
b3J0ZWRDb25maWd1cmF0aW9ucyksICZkb2N1bWVudCwgbG9nZ2VyID0gV1RGTW92ZShsb2dnZXIp
LCBpZGVudGlmaWVyID0gV1RGTW92ZShpZGVudGlmaWVyKV0oUmVmPERlZmVycmVkUHJvbWlzZT4m
JiBwcm9taXNlKSBtdXRhYmxlIHsKKyAgICAgICAgZG9jdW1lbnQucG9zdFRhc2soW3Byb21pc2Ug
PSBXVEZNb3ZlKHByb21pc2UpLCAmZG9jdW1lbnQsIGtleVN5c3RlbSwgbG9nZ2VyID0gV1RGTW92
ZShsb2dnZXIpLCBpZGVudGlmaWVyID0gV1RGTW92ZShpZGVudGlmaWVyKSwgc3VwcG9ydGVkQ29u
ZmlndXJhdGlvbnMgPSBXVEZNb3ZlKHN1cHBvcnRlZENvbmZpZ3VyYXRpb25zKV0gKFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQmKSBtdXRhYmxlIHsKKyAgICAgICAgICAgIC8vIDMuIExldCBkb2N1bWVu
dCBiZSB0aGUgY2FsbGluZyBjb250ZXh0J3MgRG9jdW1lbnQuCisgICAgICAgICAgICAvLyA0LiBM
ZXQgb3JpZ2luIGJlIHRoZSBvcmlnaW4gb2YgZG9jdW1lbnQuCisgICAgICAgICAgICAvLyA1LiBM
ZXQgcHJvbWlzZSBiZSBhIG5ldyBwcm9taXNlLgorICAgICAgICAgICAgLy8gNi4gUnVuIHRoZSBm
b2xsb3dpbmcgc3RlcHMgaW4gcGFyYWxsZWw6CisgICAgICAgICAgICAvLyA2LjEuIElmIGtleVN5
c3RlbSBpcyBub3Qgb25lIG9mIHRoZSBLZXkgU3lzdGVtcyBzdXBwb3J0ZWQgYnkgdGhlIHVzZXIg
YWdlbnQsIHJlamVjdCBwcm9taXNlIHdpdGggYSBOb3RTdXBwb3J0ZWRFcnJvci4KKyAgICAgICAg
ICAgIC8vICAgICAgU3RyaW5nIGNvbXBhcmlzb24gaXMgY2FzZS1zZW5zaXRpdmUuCisgICAgICAg
ICAgICBpZiAoIUNETTo6c3VwcG9ydHNLZXlTeXN0ZW0oa2V5U3lzdGVtKSkgeworICAgICAgICAg
ICAgICAgIGluZm9Mb2cobG9nZ2VyLCBpZGVudGlmaWVyLCAiUmVqZWN0ZWQ6IGtleVN5c3RlbSgi
LCBrZXlTeXN0ZW0sICIpIG5vdCBzdXBwb3J0ZWQiKTsKKyAgICAgICAgICAgICAgICBwcm9taXNl
LT5yZWplY3QoTm90U3VwcG9ydGVkRXJyb3IpOworICAgICAgICAgICAgICAgIHJldHVybjsKKyAg
ICAgICAgICAgIH0KKworICAgICAgICAgICAgLy8gNi4yLiBMZXQgaW1wbGVtZW50YXRpb24gYmUg
dGhlIGltcGxlbWVudGF0aW9uIG9mIGtleVN5c3RlbS4KKyAgICAgICAgICAgIGF1dG8gaW1wbGVt
ZW50YXRpb24gPSBDRE06OmNyZWF0ZShkb2N1bWVudCwga2V5U3lzdGVtKTsKKyAgICAgICAgICAg
IHRyeU5leHRTdXBwb3J0ZWRDb25maWd1cmF0aW9uKFdURk1vdmUoaW1wbGVtZW50YXRpb24pLCBX
VEZNb3ZlKHN1cHBvcnRlZENvbmZpZ3VyYXRpb25zKSwgV1RGTW92ZShwcm9taXNlKSwgV1RGTW92
ZShsb2dnZXIpLCBXVEZNb3ZlKGlkZW50aWZpZXIpKTsKKyAgICAgICAgfSk7CiAgICAgfSk7Cisg
ICAgcmVxdWVzdC0+c3RhcnQoKTsKIH0KIAogc3RhdGljIHZvaWQgdHJ5TmV4dFN1cHBvcnRlZENv
bmZpZ3VyYXRpb24oUmVmUHRyPENETT4mJiBpbXBsZW1lbnRhdGlvbiwgVmVjdG9yPE1lZGlhS2V5
U3lzdGVtQ29uZmlndXJhdGlvbj4mJiBzdXBwb3J0ZWRDb25maWd1cmF0aW9ucywgUmVmUHRyPERl
ZmVycmVkUHJvbWlzZT4mJiBwcm9taXNlLCBSZWY8TG9nZ2VyPiYmIGxvZ2dlciwgV1RGOjpMb2dn
ZXI6OkxvZ1NpdGVJZGVudGlmaWVyJiYgaWRlbnRpZmllcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA1YzUwZWVlM2VjMzU0MThk
MmJjNDliZWY2MjYwOTY2ZTQ1NmY2MjhiLi44NTQxMzZhNThjMzE1ZDA1NmNmMDJhNjcyNDkzM2Q5
ZjA5ZjE2N2M0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCkBAIC0zMDQxLDYgKzMwNDEsMTEgQEAKIAkJOTlEMUIyRDMyM0FDMTQzMTAw
ODExQ0YwIC8qIEluc3BlY3RvckRlYnVnZ2FibGVUeXBlLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5OUQxQjJEMTIzQUMxNDMwMDA4MTFDRjAgLyogSW5z
cGVjdG9yRGVidWdnYWJsZVR5cGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2
YXRlLCApOyB9OyB9OwogCQk5QTUyOEU4NDE3RDdGNTJGMDBBQTk1MTggLyogRmxvYXRpbmdPYmpl
Y3RzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5QTUy
OEU4MjE3RDdGNTJGMDBBQTk1MTggLyogRmxvYXRpbmdPYmplY3RzLmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJOUFCMUYzODAxOEUyNDg5QTAwNTM0
NzQzIC8qIENTU1RvTGVuZ3RoQ29udmVyc2lvbkRhdGEuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDlBQjFGMzdFMThFMjQ4OUEwMDUzNDc0MyAvKiBDU1NU
b0xlbmd0aENvbnZlcnNpb25EYXRhLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKKwkJOUFDQzA3OTYyNUM3MjVFRTAwREM2Mzg2IC8qIE1lZGlhS2V5U3lz
dGVtUmVxdWVzdC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA5QUNDMDc5NDI1QzcyNUVEMDBEQzYzODYgLyogTWVkaWFLZXlTeXN0ZW1SZXF1ZXN0LmNw
cCAqLzsgfTsKKwkJOUFDQzA3OTgyNUM3MjY3NzAwREM2Mzg2IC8qIE1lZGlhS2V5U3lzdGVtQ29u
dHJvbGxlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA5QUNDMDc5NzI1QzcyNjc2MDBEQzYzODYgLyogTWVkaWFLZXlTeXN0ZW1Db250cm9sbGVyLmNw
cCAqLzsgfTsKKwkJOUFDQzA3QTYyNUM4MTBERjAwREM2Mzg2IC8qIE1lZGlhS2V5U3lzdGVtUmVx
dWVzdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOUFD
QzA3QTUyNUM4MTBERjAwREM2Mzg2IC8qIE1lZGlhS2V5U3lzdGVtUmVxdWVzdC5oICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTlBQ0MwN0E4MjVDODEx
MEQwMERDNjM4NiAvKiBNZWRpYUtleVN5c3RlbUNsaWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOUFDQzA3QTcyNUM4MTEwRDAwREM2Mzg2IC8qIE1l
ZGlhS2V5U3lzdGVtQ2xpZW50LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0
ZSwgKTsgfTsgfTsKKwkJOUFDQzA3QUYyNUM4MTQxRDAwREM2Mzg2IC8qIE1lZGlhS2V5U3lzdGVt
Q29udHJvbGxlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gOUFDQzA3QUUyNUM4MTQxQzAwREM2Mzg2IC8qIE1lZGlhS2V5U3lzdGVtQ29udHJvbGxlci5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTlCMDJF
MEM4MjM1RUFEMkEwMDQwNDRCMiAvKiBUZXh0TWFuaXB1bGF0aW9uQ29udHJvbGxlci5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOUIwMkUwQzMyMzVFNzZB
QTAwNDA0NEIyIC8qIFRleHRNYW5pcHVsYXRpb25Db250cm9sbGVyLmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJOUIwQUJDQUUyMzZCQjQzMTAwQjQ1
MDg1IC8qIFRhc2tTb3VyY2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDlCMEFCQ0FDMjM2QkI0MEEwMEI0NTA4NSAvKiBUYXNrU291cmNlLmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJOUIxMjI5QzQyM0ZF
NEJEMjAwOENBNzUxIC8qIEF1ZGlvRGVzdGluYXRpb25Db2NvYS5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDEzMTUxODYyMzU3NzQ1RTAwMTE1RTZFIC8q
IEF1ZGlvRGVzdGluYXRpb25Db2NvYS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFBy
aXZhdGUsICk7IH07IH07CkBAIC0xMjAwMCw2ICsxMjAwNSwxMSBAQAogCQk5QUM2RjAyNTIxMTQ4
RjU0MDBDQkRBMDYgLyogTWVkaWFFbmdpbmVDb25maWd1cmF0aW9uRmFjdG9yeS5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBNZWRpYUVuZ2luZUNvbmZpZ3VyYXRpb25GYWN0b3J5
Lmg7IHBhdGggPSBtZWRpYWNhcGFiaWxpdGllcy9NZWRpYUVuZ2luZUNvbmZpZ3VyYXRpb25GYWN0
b3J5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTlBQzZGMDJEMjExNDhGOUYwMENC
REEwNiAvKiBNZWRpYUVuZ2luZUNvbmZpZ3VyYXRpb25GYWN0b3J5TW9jay5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBNZWRpYUVuZ2luZUNvbmZpZ3VyYXRpb25GYWN0
b3J5TW9jay5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTlBQzZGMDJGMjExNDhG
QTIwMENCREEwNiAvKiBNZWRpYUVuZ2luZUNvbmZpZ3VyYXRpb25GYWN0b3J5TW9jay5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBNZWRpYUVuZ2luZUNvbmZpZ3VyYXRpb25GYWN0
b3J5TW9jay5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5QUNDMDc5NDI1QzcyNUVE
MDBEQzYzODYgLyogTWVkaWFLZXlTeXN0ZW1SZXF1ZXN0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IE1lZGlhS2V5U3lzdGVtUmVxdWVzdC5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCTlBQ0MwNzk3MjVDNzI2NzYwMERDNjM4NiAvKiBNZWRpYUtleVN5
c3RlbUNvbnRyb2xsZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
TWVkaWFLZXlTeXN0ZW1Db250cm9sbGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJOUFDQzA3QTUyNUM4MTBERjAwREM2Mzg2IC8qIE1lZGlhS2V5U3lzdGVtUmVxdWVzdC5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBNZWRpYUtleVN5c3RlbVJlcXVlc3QuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOUFDQzA3QTcyNUM4MTEwRDAwREM2Mzg2IC8q
IE1lZGlhS2V5U3lzdGVtQ2xpZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IE1lZGlhS2V5U3lzdGVtQ2xpZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTlB
Q0MwN0FFMjVDODE0MUMwMERDNjM4NiAvKiBNZWRpYUtleVN5c3RlbUNvbnRyb2xsZXIuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTWVkaWFLZXlTeXN0ZW1Db250cm9sbGVyLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTlCMDJFMEMzMjM1RTc2QUEwMDQwNDRCMiAv
KiBUZXh0TWFuaXB1bGF0aW9uQ29udHJvbGxlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBUZXh0TWFuaXB1
bGF0aW9uQ29udHJvbGxlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5QjAyRTBD
NDIzNUU3NkFBMDA0MDQ0QjIgLyogVGV4dE1hbmlwdWxhdGlvbkNvbnRyb2xsZXIuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gVGV4dE1hbmlwdWxhdGlvbkNvbnRyb2xsZXIuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk5QjAzRDgwNjFCQjMxMTBEMDBCNzNGNjQgLyogUmVhZGFibGVC
eXRlU3RyZWFtSW50ZXJuYWxzQnVpbHRpbnMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBu
YW1lID0gUmVhZGFibGVCeXRlU3RyZWFtSW50ZXJuYWxzQnVpbHRpbnMuaDsgcGF0aCA9IERlcml2
ZWRTb3VyY2VzL1dlYkNvcmUvUmVhZGFibGVCeXRlU3RyZWFtSW50ZXJuYWxzQnVpbHRpbnMuaDsg
c291cmNlVHJlZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsgfTsKQEAgLTI4MDQ2LDEwICsyODA1Niwx
NSBAQAogCQkJCTJEOUJGNzNDMURCRkRDMEYwMDdBN0Q5OSAvKiBNZWRpYUtleVN5c3RlbUFjY2Vz
cy5jcHAgKi8sCiAJCQkJMkQ5QkY3M0QxREJGREMwRjAwN0E3RDk5IC8qIE1lZGlhS2V5U3lzdGVt
QWNjZXNzLmggKi8sCiAJCQkJMkQ5QkY2RjkxREJGQjcxRjAwN0E3RDk5IC8qIE1lZGlhS2V5U3lz
dGVtQWNjZXNzLmlkbCAqLywKKwkJCQk5QUNDMDdBNzI1QzgxMTBEMDBEQzYzODYgLyogTWVkaWFL
ZXlTeXN0ZW1DbGllbnQuaCAqLywKIAkJCQkyRDlCRjczRTFEQkZEQzBGMDA3QTdEOTkgLyogTWVk
aWFLZXlTeXN0ZW1Db25maWd1cmF0aW9uLmggKi8sCiAJCQkJMkQ5QkY2RkExREJGQjcxRjAwN0E3
RDk5IC8qIE1lZGlhS2V5U3lzdGVtQ29uZmlndXJhdGlvbi5pZGwgKi8sCisJCQkJOUFDQzA3OTcy
NUM3MjY3NjAwREM2Mzg2IC8qIE1lZGlhS2V5U3lzdGVtQ29udHJvbGxlci5jcHAgKi8sCisJCQkJ
OUFDQzA3QUUyNUM4MTQxQzAwREM2Mzg2IC8qIE1lZGlhS2V5U3lzdGVtQ29udHJvbGxlci5oICov
LAogCQkJCTJEOUJGNzNGMURCRkRDMEYwMDdBN0Q5OSAvKiBNZWRpYUtleVN5c3RlbU1lZGlhQ2Fw
YWJpbGl0eS5oICovLAogCQkJCTJEOUJGNkZCMURCRkI3MUYwMDdBN0Q5OSAvKiBNZWRpYUtleVN5
c3RlbU1lZGlhQ2FwYWJpbGl0eS5pZGwgKi8sCisJCQkJOUFDQzA3OTQyNUM3MjVFRDAwREM2Mzg2
IC8qIE1lZGlhS2V5U3lzdGVtUmVxdWVzdC5jcHAgKi8sCisJCQkJOUFDQzA3QTUyNUM4MTBERjAw
REM2Mzg2IC8qIE1lZGlhS2V5U3lzdGVtUmVxdWVzdC5oICovLAogCQkJCTJEOUJGNkZDMURCRkI3
MUYwMDdBN0Q5OSAvKiBOYXZpZ2F0b3IrRU1FLmlkbCAqLywKIAkJCQkyRDlCRjc0MDFEQkZEQzBG
MDA3QTdEOTkgLyogTmF2aWdhdG9yRU1FLmNwcCAqLywKIAkJCQkyRDlCRjc0MTFEQkZEQzBGMDA3
QTdEOTkgLyogTmF2aWdhdG9yRU1FLmggKi8sCkBAIC0zMzY5Nyw2ICszMzcxMiw5IEBACiAJCQkJ
Q0RGNEI3MUExRTAxRDNEMDAwRTIzNUEyIC8qIE1lZGlhS2V5U2Vzc2lvblR5cGUuaWRsIGluIEhl
YWRlcnMgKi8sCiAJCQkJQ0RGNEI3MjgxRTAzQzU3MzAwRTIzNUEyIC8qIE1lZGlhS2V5c1JlcXVp
cmVtZW50LmlkbCBpbiBIZWFkZXJzICovLAogCQkJCUNERjRCNzE4MUUwMUNCOTEwMEUyMzVBMiAv
KiBNZWRpYUtleXNSZXN0cmljdGlvbnMuaCBpbiBIZWFkZXJzICovLAorCQkJCTlBQ0MwN0E4MjVD
ODExMEQwMERDNjM4NiAvKiBNZWRpYUtleVN5c3RlbUNsaWVudC5oIGluIEhlYWRlcnMgKi8sCisJ
CQkJOUFDQzA3QUYyNUM4MTQxRDAwREM2Mzg2IC8qIE1lZGlhS2V5U3lzdGVtQ29udHJvbGxlci5o
IGluIEhlYWRlcnMgKi8sCisJCQkJOUFDQzA3QTYyNUM4MTBERjAwREM2Mzg2IC8qIE1lZGlhS2V5
U3lzdGVtUmVxdWVzdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQThFQTgwMEUwQTE5NTE2RTAwQThF
RjVGIC8qIE1lZGlhTGlzdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNUVCQjg5MzExQzc3NzdGRjAw
QzY1RDQxIC8qIE1lZGlhUGF5bG9hZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMDdFM0RGRDExQTlF
Nzg2NTAwNzY0Q0E4IC8qIE1lZGlhUGxheWJhY2tUYXJnZXQuaCBpbiBIZWFkZXJzICovLApAQCAt
MzYwNTAsNiArMzYwNjgsOCBAQAogCQkJCTJEOUJGNzQ1MURCRkRDNDQwMDdBN0Q5OSAvKiBNZWRp
YUtleVNlc3Npb24uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMkQ5QkY3NDQxREJGREM0MTAwN0E3
RDk5IC8qIE1lZGlhS2V5U3RhdHVzTWFwLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTJEOUJGNzQz
MURCRkRDM0UwMDdBN0Q5OSAvKiBNZWRpYUtleVN5c3RlbUFjY2Vzcy5jcHAgaW4gU291cmNlcyAq
LywKKwkJCQk5QUNDMDc5ODI1QzcyNjc3MDBEQzYzODYgLyogTWVkaWFLZXlTeXN0ZW1Db250cm9s
bGVyLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTlBQ0MwNzk2MjVDNzI1RUUwMERDNjM4NiAvKiBN
ZWRpYUtleVN5c3RlbVJlcXVlc3QuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMDcxRTQ5NkUxQUQ1
QUEwRDAwOEE1MEI0IC8qIE1lZGlhUGxheWJhY2tUYXJnZXRDb2NvYS5tbSBpbiBTb3VyY2VzICov
LAogCQkJCTA3OEU0M0RFMUFCQjZGNkYwMDFDMkZBNiAvKiBNZWRpYVBsYXliYWNrVGFyZ2V0UGlj
a2VyTWFjLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJMDcyQzhCMTExMzFDNTE4NjAwQTRGQ0U5IC8q
IE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbi5jcHAgaW4gU291cmNlcyAqLywKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvV2ViS2l0L0NNYWtl
TGlzdHMudHh0CmluZGV4IGNiY2E4ZDMzODhjNTgyOWI3NDI3MjJlNzQ5OWY5MzY5ZmIzYzMwODUu
LjQ2ZWMwYzU0Y2M0NGQxYjNiYmRjZTA5NjJmMjcxMzA1ODA1YTg3MjkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYktpdC9DTWFrZUxpc3Rz
LnR4dApAQCAtNzUsNiArNzUsNyBAQCBzZXQoV2ViS2l0X0lOQ0xVREVfRElSRUNUT1JJRVMKICAg
ICAiJHtXRUJLSVRfRElSfS9XZWJQcm9jZXNzL0NhY2hlIgogICAgICIke1dFQktJVF9ESVJ9L1dl
YlByb2Nlc3MvRGF0YWJhc2VzIgogICAgICIke1dFQktJVF9ESVJ9L1dlYlByb2Nlc3MvRGF0YWJh
c2VzL0luZGV4ZWREQiIKKyAgICAiJHtXRUJLSVRfRElSfS9XZWJQcm9jZXNzL0VuY3J5cHRlZE1l
ZGlhIgogICAgICIke1dFQktJVF9ESVJ9L1dlYlByb2Nlc3MvRmlsZUFQSSIKICAgICAiJHtXRUJL
SVRfRElSfS9XZWJQcm9jZXNzL0Z1bGxTY3JlZW4iCiAgICAgIiR7V0VCS0lUX0RJUn0vV2ViUHJv
Y2Vzcy9HYW1lcGFkIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9IZWFkZXJzLmNtYWtlIGIv
U291cmNlL1dlYktpdC9IZWFkZXJzLmNtYWtlCmluZGV4IDIxMzA0ZGEzMGQ3ODgyNTQzNjUyMjdh
YTZiMzZmMGU3NmY2OTBlZjQuLjM0NmM4YTYzYTdiN2FlNDk3YTFiZWUyNGQ3ZjgwOGIwZmE4Y2U0
YTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvSGVhZGVycy5jbWFrZQorKysgYi9Tb3VyY2Uv
V2ViS2l0L0hlYWRlcnMuY21ha2UKQEAgLTYyLDYgKzYyLDcgQEAgc2V0KFdlYktpdF9QVUJMSUNf
RlJBTUVXT1JLX0hFQURFUlMKICAgICBVSVByb2Nlc3MvQVBJL0MvV0tJY29uRGF0YWJhc2UuaAog
ICAgIFVJUHJvY2Vzcy9BUEkvQy9XS0luc3BlY3Rvci5oCiAgICAgVUlQcm9jZXNzL0FQSS9DL1dL
TGF5b3V0TW9kZS5oCisgICAgVUlQcm9jZXNzL0FQSS9DL1dLTWVkaWFLZXlTeXN0ZW1QZXJtaXNz
aW9uQ2FsbGJhY2suaAogICAgIFVJUHJvY2Vzcy9BUEkvQy9XS01lc3NhZ2VMaXN0ZW5lci5oCiAg
ICAgVUlQcm9jZXNzL0FQSS9DL1dLTW9ja0Rpc3BsYXkuaAogICAgIFVJUHJvY2Vzcy9BUEkvQy9X
S01vY2tNZWRpYURldmljZS5oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL0xv
Z2dpbmcuaCBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vTG9nZ2luZy5oCmluZGV4IGY0OWYzOGI2
YTVmOWQzZDcwOTUyZDJlMTIxYzg5OTVkZWNlOThlYWEuLjA2NmYwNjVmZTNlM2FlYzRhMDc5ODY4
MTkzZGFlOGEwYjA3Nzc1YjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vTG9n
Z2luZy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vTG9nZ2luZy5oCkBAIC01Miw2ICs1
Miw3IEBAIGV4dGVybiAiQyIgewogICAgIE0oQ29udGV4dE1lbnUpIFwKICAgICBNKERpc2tQZXJz
aXN0ZW5jeSkgXAogICAgIE0oRHJhZ0FuZERyb3ApIFwKKyAgICBNKEVNRSkgXAogICAgIE0oRnVs
bHNjcmVlbikgXAogICAgIE0oR2FtZXBhZCkgXAogICAgIE0oSVBDKSBcCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1BsYXRmb3JtR1RLLmNtYWtlIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybUdU
Sy5jbWFrZQppbmRleCAzMjBiMTE2YjFkOGEzM2E3ZDU0N2M3Y2Y2MTkwNzU2NzYxNDczNzcyLi45
YThlMGZhODk3OGY2YjJhZTg4Nzg1MzYzNGE5Y2NkNjdkNzUxODcxIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1BsYXRmb3JtR1RLLmNtYWtlCisrKyBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm1H
VEsuY21ha2UKQEAgLTExOSw2ICsxMTksNyBAQCBzZXQoV2ViS2l0MkdUS19JTlNUQUxMRURfSEVB
REVSUwogICAgICR7V0VCS0lUX0RJUn0vVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0SGl0VGVzdFJl
c3VsdC5oCiAgICAgJHtXRUJLSVRfRElSfS9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRJbnN0YWxs
TWlzc2luZ01lZGlhUGx1Z2luc1Blcm1pc3Npb25SZXF1ZXN0LmgKICAgICAke1dFQktJVF9ESVJ9
L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdEphdmFzY3JpcHRSZXN1bHQuaAorICAgICR7V0VCS0lU
X0RJUn0vVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0TWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVx
dWVzdC5oCiAgICAgJHtXRUJLSVRfRElSfS9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRNaW1lSW5m
by5oCiAgICAgJHtXRUJLSVRfRElSfS9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXROYXZpZ2F0aW9u
QWN0aW9uLmgKICAgICAke1dFQktJVF9ESVJ9L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdE5hdmln
YXRpb25Qb2xpY3lEZWNpc2lvbi5oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1BsYXRmb3Jt
V1BFLmNtYWtlIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybVdQRS5jbWFrZQppbmRleCBjNDQxZTZh
YWJmNDJjOWQ1YWVjY2NkOTYxZGI0MDEwN2M0ODdiZDQwLi5mNDVjNTMxYTA5YmNiNThkYWFmOWZm
NWE5ODRmYzFjNjExMWM1OTc5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtV1BF
LmNtYWtlCisrKyBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm1XUEUuY21ha2UKQEAgLTEzMiw2ICsx
MzIsNyBAQCBzZXQoV1BFX0FQSV9JTlNUQUxMRURfSEVBREVSUwogICAgICR7V0VCS0lUX0RJUn0v
VUlQcm9jZXNzL0FQSS93cGUvV2ViS2l0SW5wdXRNZXRob2RDb250ZXh0LmgKICAgICAke1dFQktJ
VF9ESVJ9L1VJUHJvY2Vzcy9BUEkvd3BlL1dlYktpdEluc3RhbGxNaXNzaW5nTWVkaWFQbHVnaW5z
UGVybWlzc2lvblJlcXVlc3QuaAogICAgICR7V0VCS0lUX0RJUn0vVUlQcm9jZXNzL0FQSS93cGUv
V2ViS2l0SmF2YXNjcmlwdFJlc3VsdC5oCisgICAgJHtXRUJLSVRfRElSfS9VSVByb2Nlc3MvQVBJ
L3dwZS9XZWJLaXRNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0LmgKICAgICAke1dFQktJ
VF9ESVJ9L1VJUHJvY2Vzcy9BUEkvd3BlL1dlYktpdE1pbWVJbmZvLmgKICAgICAke1dFQktJVF9E
SVJ9L1VJUHJvY2Vzcy9BUEkvd3BlL1dlYktpdE5hdmlnYXRpb25BY3Rpb24uaAogICAgICR7V0VC
S0lUX0RJUn0vVUlQcm9jZXNzL0FQSS93cGUvV2ViS2l0TmF2aWdhdGlvblBvbGljeURlY2lzaW9u
LmgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0FQSS9BUElPYmplY3QuaCBiL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL0FQSS9BUElPYmplY3QuaAppbmRleCAwNTU2OTM0M2EwZGMzYWFk
NmMyZDMzNDAzZThlMjliYTg2ZmU0Y2FiLi40NmM3NzNlZTM4Y2QzMDY3NWI2ZThiMTYyNWY5NzUz
MDc5M2IxNmJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BUEkvQVBJT2JqZWN0
LmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvQVBJL0FQSU9iamVjdC5oCkBAIC0xODksNiAr
MTg5LDggQEAgcHVibGljOgogICAgICAgICBXZWJBdXRoZW50aWNhdGlvblBhbmVsLAogI2VuZGlm
CiAKKyAgICAgICAgTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uQ2FsbGJhY2ssCisKICAgICAgICAg
Ly8gQnVuZGxlIHR5cGVzCiAgICAgICAgIEJ1bmRsZSwKICAgICAgICAgQnVuZGxlQmFja0Zvcndh
cmRMaXN0LApAQCAtNDM4LDYgKzQ0MCw4IEBAIHRlbXBsYXRlPD4gc3RydWN0IEVudW1UcmFpdHM8
QVBJOjpPYmplY3Q6OlR5cGU+IHsKICAgICAgICAgQVBJOjpPYmplY3Q6OlR5cGU6OldlYkF1dGhl
bnRpY2F0aW9uUGFuZWwsCiAjZW5kaWYKIAorICAgICAgICBBUEk6Ok9iamVjdDo6VHlwZTo6TWVk
aWFLZXlTeXN0ZW1QZXJtaXNzaW9uQ2FsbGJhY2ssCisKICAgICAgICAgLy8gQnVuZGxlIHR5cGVz
CiAgICAgICAgIEFQSTo6T2JqZWN0OjpUeXBlOjpCdW5kbGUsCiAgICAgICAgIEFQSTo6T2JqZWN0
OjpUeXBlOjpCdW5kbGVCYWNrRm9yd2FyZExpc3QsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1NoYXJlZC9BUEkvYy9XS0Jhc2UuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0FQSS9jL1dLQmFz
ZS5oCmluZGV4IDg0ZWU2YzI4OGY2ZDJlYmQ1MWZhNzNlYTcyNzA4ZjMyOTQ2YmRkODUuLjdjOGJk
MjM5MjRjNGFiNzExNTRmNWNhYzdlNzNjYzczZDM5NDU4YzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL0FQSS9jL1dLQmFzZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0FQ
SS9jL1dLQmFzZS5oCkBAIC0xNDIsNiArMTQyLDggQEAgdHlwZWRlZiBjb25zdCBzdHJ1Y3QgT3Bh
cXVlV0tXZWJzaXRlRGF0YVN0b3JlKiBXS1dlYnNpdGVEYXRhU3RvcmVSZWY7CiB0eXBlZGVmIGNv
bnN0IHN0cnVjdCBPcGFxdWVXS1dlYnNpdGVQb2xpY2llcyogV0tXZWJzaXRlUG9saWNpZXNSZWY7
CiB0eXBlZGVmIGNvbnN0IHN0cnVjdCBPcGFxdWVXS1dpbmRvd0ZlYXR1cmVzKiBXS1dpbmRvd0Zl
YXR1cmVzUmVmOwogdHlwZWRlZiBjb25zdCBzdHJ1Y3QgT3BhcXVlV0tTcGVlY2hSZWNvZ25pdGlv
blBlcm1pc3Npb25DYWxsYmFjayogV0tTcGVlY2hSZWNvZ25pdGlvblBlcm1pc3Npb25DYWxsYmFj
a1JlZjsKK3R5cGVkZWYgY29uc3Qgc3RydWN0IE9wYXF1ZVdLTWVkaWFLZXlTeXN0ZW1QZXJtaXNz
aW9uUmVxdWVzdCogV0tNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0UmVmOwordHlwZWRl
ZiBjb25zdCBzdHJ1Y3QgT3BhcXVlV0tNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25DYWxsYmFjayog
V0tNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25DYWxsYmFja1JlZjsKIAogLyogV2ViS2l0MiBCdW5k
bGUgdHlwZXMgKi8KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9Tb3VyY2VzLnR4dCBiL1Nv
dXJjZS9XZWJLaXQvU291cmNlcy50eHQKaW5kZXggN2Y0MDhiYzQ2MTBjMTA1NDkxZDViMDY0MWY4
YjcwZjNhZjkxYjA0My4uNDNhYTJiN2Q1NzYyYzU4ZDk0N2UyMWVmNGJjNzI1MDQ1OTk3MWQwMSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9Tb3VyY2VzLnR4dAorKysgYi9Tb3VyY2UvV2ViS2l0
L1NvdXJjZXMudHh0CkBAIC0yODUsNiArMjg1LDggQEAgVUlQcm9jZXNzL0ZyYW1lTG9hZFN0YXRl
LmNwcAogVUlQcm9jZXNzL0dlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHku
Y3BwCiBVSVByb2Nlc3MvR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdFByb3h5LmNwcAogVUlQ
cm9jZXNzL0xlZ2FjeUdsb2JhbFNldHRpbmdzLmNwcAorVUlQcm9jZXNzL01lZGlhS2V5U3lzdGVt
UGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuY3BwCitVSVByb2Nlc3MvTWVkaWFLZXlTeXN0
ZW1QZXJtaXNzaW9uUmVxdWVzdFByb3h5LmNwcAogVUlQcm9jZXNzL1BhZ2VMb2FkU3RhdGUuY3Bw
CiBVSVByb2Nlc3MvUHJvY2Vzc0Fzc2VydGlvbi5jcHAKIFVJUHJvY2Vzcy9Qcm9jZXNzVGhyb3R0
bGVyLmNwcApAQCAtMzkxLDYgKzM5Myw3IEBAIFVJUHJvY2Vzcy9BUEkvQy9XS0hpdFRlc3RSZXN1
bHQuY3BwCiBVSVByb2Nlc3MvQVBJL0MvV0tJY29uRGF0YWJhc2UuY3BwCiBVSVByb2Nlc3MvQVBJ
L0MvV0tJbnNwZWN0b3IuY3BwCiBVSVByb2Nlc3MvQVBJL0MvV0tLZXlWYWx1ZVN0b3JhZ2VNYW5h
Z2VyLmNwcAorVUlQcm9jZXNzL0FQSS9DL1dLTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uQ2FsbGJh
Y2suY3BwCiBVSVByb2Nlc3MvQVBJL0MvV0tNZXNzYWdlTGlzdGVuZXIuY3BwCiBVSVByb2Nlc3Mv
QVBJL0MvV0tNb2NrRGlzcGxheS5jcHAKIFVJUHJvY2Vzcy9BUEkvQy9XS01vY2tNZWRpYURldmlj
ZS5jcHAKQEAgLTUxMSw2ICs1MTQsOCBAQCBXZWJQcm9jZXNzL0RhdGFiYXNlcy9XZWJEYXRhYmFz
ZVByb3ZpZGVyLmNwcAogCiBXZWJQcm9jZXNzL0RhdGFiYXNlcy9JbmRleGVkREIvV2ViSURCQ29u
bmVjdGlvblRvU2VydmVyLmNwcAogCitXZWJQcm9jZXNzL0VuY3J5cHRlZE1lZGlhL01lZGlhS2V5
U3lzdGVtUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyLmNwcAorCiBXZWJQcm9jZXNzL0ZpbGVBUEkv
QmxvYlJlZ2lzdHJ5UHJveHkuY3BwCiAKIFdlYlByb2Nlc3MvRnVsbFNjcmVlbi9XZWJGdWxsU2Ny
ZWVuTWFuYWdlci5jcHAKQEAgLTY2NSw2ICs2NzAsNyBAQCBXZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L1dlYkRyYWdDbGllbnQuY3BwCiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRv
ckNsaWVudC5jcHAKIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGll
bnQuY3BwCiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkdlb2xvY2F0aW9uQ2xpZW50LmNw
cAorV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJNZWRpYUtleVN5c3RlbUNsaWVudC5jcHAK
IFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViTWVzc2FnZVBvcnRDaGFubmVsUHJvdmlkZXIu
Y3BwCiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYk5vdGlmaWNhdGlvbkNsaWVudC5jcHAK
IFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViUGVyZm9ybWFuY2VMb2dnaW5nQ2xpZW50LmNw
cApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9Tb3VyY2VzR1RLLnR4dCBiL1NvdXJjZS9XZWJL
aXQvU291cmNlc0dUSy50eHQKaW5kZXggNWQ1YjAzYjJlNWVlNGRhNGNjMmI0YzJkZTA0YjgwZDlk
ZTBjZWFiYi4uNTZiZGZmYTZmYTVlNDExMWI1MGUwNDgzMDFiZGUzMTExYzY5NGFjNSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9Tb3VyY2VzR1RLLnR4dAorKysgYi9Tb3VyY2UvV2ViS2l0L1Nv
dXJjZXNHVEsudHh0CkBAIC0xNDYsNiArMTQ2LDcgQEAgVUlQcm9jZXNzL0FQSS9nbGliL1dlYktp
dEluamVjdGVkQnVuZGxlQ2xpZW50LmNwcCBAbm8tdW5pZnkKIFVJUHJvY2Vzcy9BUEkvZ2xpYi9X
ZWJLaXRJbnB1dE1ldGhvZENvbnRleHQuY3BwIEBuby11bmlmeQogVUlQcm9jZXNzL0FQSS9nbGli
L1dlYktpdEluc3RhbGxNaXNzaW5nTWVkaWFQbHVnaW5zUGVybWlzc2lvblJlcXVlc3QuY3BwIEBu
by11bmlmeQogVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdEphdmFzY3JpcHRSZXN1bHQuY3BwIEBu
by11bmlmeQorVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdE1lZGlhS2V5U3lzdGVtUGVybWlzc2lv
blJlcXVlc3QuY3BwIEBuby11bmlmeQogVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdE1pbWVJbmZv
LmNwcCBAbm8tdW5pZnkKIFVJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXROYXZpZ2F0aW9uQWN0aW9u
LmNwcCBAbm8tdW5pZnkKIFVJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXROYXZpZ2F0aW9uQ2xpZW50
LmNwcCBAbm8tdW5pZnkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU291cmNlc1dQRS50eHQg
Yi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNXUEUudHh0CmluZGV4IGM2NzY3MDc0Y2RiODRiYWNkMWM5
MWRjOTUxMjhjZDY1NjZkYTJjZTEuLmMyZTE3NDU4NDkwNzUzNzE4NjQ3ZTRjMGUwMjYzOWU4Njdh
OWFiZDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU291cmNlc1dQRS50eHQKKysrIGIvU291
cmNlL1dlYktpdC9Tb3VyY2VzV1BFLnR4dApAQCAtMTM3LDYgKzEzNyw3IEBAIFVJUHJvY2Vzcy9B
UEkvZ2xpYi9XZWJLaXRJbmplY3RlZEJ1bmRsZUNsaWVudC5jcHAgQG5vLXVuaWZ5CiBVSVByb2Nl
c3MvQVBJL2dsaWIvV2ViS2l0SW5wdXRNZXRob2RDb250ZXh0LmNwcCBAbm8tdW5pZnkKIFVJUHJv
Y2Vzcy9BUEkvZ2xpYi9XZWJLaXRJbnN0YWxsTWlzc2luZ01lZGlhUGx1Z2luc1Blcm1pc3Npb25S
ZXF1ZXN0LmNwcCBAbm8tdW5pZnkKIFVJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRKYXZhc2NyaXB0
UmVzdWx0LmNwcCBAbm8tdW5pZnkKK1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRNZWRpYUtleVN5
c3RlbVBlcm1pc3Npb25SZXF1ZXN0LmNwcCBAbm8tdW5pZnkKIFVJUHJvY2Vzcy9BUEkvZ2xpYi9X
ZWJLaXRNaW1lSW5mby5jcHAgQG5vLXVuaWZ5CiBVSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0TmF2
aWdhdGlvbkFjdGlvbi5jcHAgQG5vLXVuaWZ5CiBVSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0TmF2
aWdhdGlvbkNsaWVudC5jcHAgQG5vLXVuaWZ5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvQVBJVUlDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9B
UElVSUNsaWVudC5oCmluZGV4IGIxN2I1YTE5NjJiYzlmZGU2YmY4ZjA1NWQ0YjRhZTllMTdlYjg0
ZGUuLjE2MzY3ZTZjYWM4MjVhYTljNzRmYjRjNDg0M2RkMmYxZmYxZGFkMzggMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElVSUNsaWVudC5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElVSUNsaWVudC5oCkBAIC0yMDUsNiArMjA1LDkgQEAgcHVi
bGljOgogICAgIHZpcnR1YWwgdm9pZCBkaWREaXNhYmxlSW5zcGVjdG9yQnJvd3NlckRvbWFpbihX
ZWJLaXQ6OldlYlBhZ2VQcm94eSYpIHsgfQogCiAgICAgdmlydHVhbCB2b2lkIGRlY2lkZVBvbGlj
eUZvclNwZWVjaFJlY29nbml0aW9uUGVybWlzc2lvblJlcXVlc3QoV2ViS2l0OjpXZWJQYWdlUHJv
eHkmIHBhZ2UsIEFQSTo6U2VjdXJpdHlPcmlnaW4mIG9yaWdpbiwgQ29tcGxldGlvbkhhbmRsZXI8
dm9pZChib29sKT4mJiBjb21wbGV0aW9uSGFuZGxlcikgeyBwYWdlLnJlcXVlc3RTcGVlY2hSZWNv
Z25pdGlvblBlcm1pc3Npb25CeURlZmF1bHRBY3Rpb24ob3JpZ2luLnNlY3VyaXR5T3JpZ2luKCks
IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsgfQorCisgICAgdmlydHVhbCB2b2lkIGRlY2lk
ZVBvbGljeUZvck1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3QoV2ViS2l0OjpXZWJQYWdl
UHJveHkmIHBhZ2UsIEFQSTo6U2VjdXJpdHlPcmlnaW4mIG9yaWdpbiwgY29uc3QgV1RGOjpTdHJp
bmcmIGtleVN5c3RlbSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJiBjb21wbGV0aW9u
SGFuZGxlcikgeyBwYWdlLnJlcXVlc3RNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25CeURlZmF1bHRB
Y3Rpb24ob3JpZ2luLnNlY3VyaXR5T3JpZ2luKCksIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIp
KTsgfQorCiB9OwogCiB9IC8vIG5hbWVzcGFjZSBBUEkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9DL1dLQVBJQ2FzdC5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL0MvV0tBUElDYXN0LmgKaW5kZXggY2M5Y2Y1OTU3ZWEzMGQ2YWNmMDQ2OGRlNzAxNzk4YTZm
NDE4MTE0YS4uYzhhMTg5NWE2ZDBkZTcwOWY5YWUzOThiZTQ1YmVhNjZiOWViZmEwZCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tBUElDYXN0LmgKKysrIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tBUElDYXN0LmgKQEAgLTc4LDYgKzc4LDcgQEAg
Y2xhc3MgQXV0aGVudGljYXRpb25DaGFsbGVuZ2VQcm94eTsKIGNsYXNzIEF1dGhlbnRpY2F0aW9u
RGVjaXNpb25MaXN0ZW5lcjsKIGNsYXNzIERvd25sb2FkUHJveHk7CiBjbGFzcyBHZW9sb2NhdGlv
blBlcm1pc3Npb25SZXF1ZXN0OworY2xhc3MgTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uQ2FsbGJh
Y2s7CiBjbGFzcyBOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdDsKIGNsYXNzIFNwZWVjaFJl
Y29nbml0aW9uUGVybWlzc2lvbkNhbGxiYWNrOwogY2xhc3MgVXNlck1lZGlhUGVybWlzc2lvbkNo
ZWNrUHJveHk7CkBAIC0xMzUsNiArMTM2LDcgQEAgV0tfQUREX0FQSV9NQVBQSU5HKFdLSFRUUENv
b2tpZVN0b3JlUmVmLCBBUEk6OkhUVFBDb29raWVTdG9yZSkKIFdLX0FERF9BUElfTUFQUElORyhX
S0hpdFRlc3RSZXN1bHRSZWYsIEFQSTo6SGl0VGVzdFJlc3VsdCkKIFdLX0FERF9BUElfTUFQUElO
RyhXS0ljb25EYXRhYmFzZVJlZiwgV2ViSWNvbkRhdGFiYXNlKQogV0tfQUREX0FQSV9NQVBQSU5H
KFdLSW5zcGVjdG9yUmVmLCBXZWJJbnNwZWN0b3JQcm94eSkKK1dLX0FERF9BUElfTUFQUElORyhX
S01lZGlhS2V5U3lzdGVtUGVybWlzc2lvbkNhbGxiYWNrUmVmLCBNZWRpYUtleVN5c3RlbVBlcm1p
c3Npb25DYWxsYmFjaykKIFdLX0FERF9BUElfTUFQUElORyhXS01lc3NhZ2VMaXN0ZW5lclJlZiwg
QVBJOjpNZXNzYWdlTGlzdGVuZXIpCiBXS19BRERfQVBJX01BUFBJTkcoV0tOYXZpZ2F0aW9uQWN0
aW9uUmVmLCBBUEk6Ok5hdmlnYXRpb25BY3Rpb24pCiBXS19BRERfQVBJX01BUFBJTkcoV0tOYXZp
Z2F0aW9uRGF0YVJlZiwgQVBJOjpOYXZpZ2F0aW9uRGF0YSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uQ2FsbGJhY2su
Y3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tNZWRpYUtleVN5c3RlbVBlcm1p
c3Npb25DYWxsYmFjay5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYWFhNzMyNGJiYzJhYjM3MjU3ZGE4M2FiYmMz
NDA3MTRiYTdlMDUzMAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9DL1dLTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uQ2FsbGJhY2suY3BwCkBAIC0wLDAgKzEs
NDIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgSWdhbGlhIFMuTC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05U
UklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1Ig
SVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwor
I2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldLTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9u
Q2FsbGJhY2suaCIKKworI2luY2x1ZGUgIk1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3Qu
aCIKKyNpbmNsdWRlICJXS0FQSUNhc3QuaCIKKwordXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKKwor
V0tUeXBlSUQgV0tNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25DYWxsYmFja0dldFR5cGVJRCgpCit7
CisgICAgcmV0dXJuIHRvQVBJKE1lZGlhS2V5U3lzdGVtUGVybWlzc2lvbkNhbGxiYWNrOjpBUElU
eXBlKTsKK30KKwordm9pZCBXS01lZGlhS2V5U3lzdGVtUGVybWlzc2lvbkNhbGxiYWNrQ29tcGxl
dGUoV0tNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25DYWxsYmFja1JlZiBwZXJtaXNzaW9uQ2FsbGJh
Y2ssIGJvb2wgZ3JhbnRlZCkKK3sKKyAgICByZXR1cm4gdG9JbXBsKHBlcm1pc3Npb25DYWxsYmFj
ayktPmNvbXBsZXRlKGdyYW50ZWQpOworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL0MvV0tNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25DYWxsYmFjay5oIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25DYWxsYmFj
ay5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmY1ZDM2ODM3ZWZhNjlhNGIwNmRmMTMyMTIyZmFmNmEwYTFmNTIwNzgK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS01lZGlh
S2V5U3lzdGVtUGVybWlzc2lvbkNhbGxiYWNrLmgKQEAgLTAsMCArMSw0MCBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAyMSBJZ2FsaWEgUy5MLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElT
JycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JT
CisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisg
KiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAq
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKwor
I2luY2x1ZGUgPFdlYktpdC9XS0Jhc2UuaD4KKworI2lmZGVmIF9fY3BsdXNwbHVzCitleHRlcm4g
IkMiIHsKKyNlbmRpZgorCitXS19FWFBPUlQgV0tUeXBlSUQgV0tNZWRpYUtleVN5c3RlbVBlcm1p
c3Npb25DYWxsYmFja0dldFR5cGVJRCh2b2lkKTsKKworV0tfRVhQT1JUIHZvaWQgV0tNZWRpYUtl
eVN5c3RlbVBlcm1pc3Npb25DYWxsYmFja0NvbXBsZXRlKFdLTWVkaWFLZXlTeXN0ZW1QZXJtaXNz
aW9uQ2FsbGJhY2tSZWYgcGVybWlzc2lvbkNhbGxiYWNrLCBib29sIGdyYW50ZWQpOworCisjaWZk
ZWYgX19jcGx1c3BsdXMKK30KKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL0MvV0tQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dL
UGFnZS5jcHAKaW5kZXggNzQ0M2Y3MGY5NTc1ODM2ZDg0M2RhNTRjODQ4MTUwOWM5ZDhjNGRlYy4u
YzM5ZTcyZjA3MTJjYmFjMGJlYmFmZjBiMDJlODQ1NzNhYzE2ZjkxNCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuY3BwCkBAIC01OCw2ICs1OCw3IEBACiAjaW5jbHVkZSAi
RG93bmxvYWRQcm94eS5oIgogI2luY2x1ZGUgIkxlZ2FjeVNlc3Npb25TdGF0ZUNvZGluZy5oIgog
I2luY2x1ZGUgIkxvZ2dpbmcuaCIKKyNpbmNsdWRlICJNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25S
ZXF1ZXN0LmgiCiAjaW5jbHVkZSAiTmF0aXZlV2ViS2V5Ym9hcmRFdmVudC5oIgogI2luY2x1ZGUg
Ik5hdGl2ZVdlYldoZWVsRXZlbnQuaCIKICNpbmNsdWRlICJOYXZpZ2F0aW9uQWN0aW9uRGF0YS5o
IgpAQCAtMTE3LDcgKzExOCw3IEBAIHRlbXBsYXRlPD4gc3RydWN0IENsaWVudFRyYWl0czxXS1Bh
Z2VQb2xpY3lDbGllbnRCYXNlPiB7CiB9OwogCiB0ZW1wbGF0ZTw+IHN0cnVjdCBDbGllbnRUcmFp
dHM8V0tQYWdlVUlDbGllbnRCYXNlPiB7Ci0gICAgdHlwZWRlZiBzdGQ6OnR1cGxlPFdLUGFnZVVJ
Q2xpZW50VjAsIFdLUGFnZVVJQ2xpZW50VjEsIFdLUGFnZVVJQ2xpZW50VjIsIFdLUGFnZVVJQ2xp
ZW50VjMsIFdLUGFnZVVJQ2xpZW50VjQsIFdLUGFnZVVJQ2xpZW50VjUsIFdLUGFnZVVJQ2xpZW50
VjYsIFdLUGFnZVVJQ2xpZW50VjcsIFdLUGFnZVVJQ2xpZW50VjgsIFdLUGFnZVVJQ2xpZW50Vjks
IFdLUGFnZVVJQ2xpZW50VjEwLCBXS1BhZ2VVSUNsaWVudFYxMSwgV0tQYWdlVUlDbGllbnRWMTIs
IFdLUGFnZVVJQ2xpZW50VjEzLCBXS1BhZ2VVSUNsaWVudFYxNCwgV0tQYWdlVUlDbGllbnRWMTU+
IFZlcnNpb25zOworICAgIHR5cGVkZWYgc3RkOjp0dXBsZTxXS1BhZ2VVSUNsaWVudFYwLCBXS1Bh
Z2VVSUNsaWVudFYxLCBXS1BhZ2VVSUNsaWVudFYyLCBXS1BhZ2VVSUNsaWVudFYzLCBXS1BhZ2VV
SUNsaWVudFY0LCBXS1BhZ2VVSUNsaWVudFY1LCBXS1BhZ2VVSUNsaWVudFY2LCBXS1BhZ2VVSUNs
aWVudFY3LCBXS1BhZ2VVSUNsaWVudFY4LCBXS1BhZ2VVSUNsaWVudFY5LCBXS1BhZ2VVSUNsaWVu
dFYxMCwgV0tQYWdlVUlDbGllbnRWMTEsIFdLUGFnZVVJQ2xpZW50VjEyLCBXS1BhZ2VVSUNsaWVu
dFYxMywgV0tQYWdlVUlDbGllbnRWMTQsIFdLUGFnZVVJQ2xpZW50VjE1LCBXS1BhZ2VVSUNsaWVu
dFYxNj4gVmVyc2lvbnM7CiB9OwogCiAjaWYgRU5BQkxFKENPTlRFWFRfTUVOVVMpCkBAIC0yMTE5
LDYgKzIxMjAsMTYgQEAgdm9pZCBXS1BhZ2VTZXRQYWdlVUlDbGllbnQoV0tQYWdlUmVmIHBhZ2VS
ZWYsIGNvbnN0IFdLUGFnZVVJQ2xpZW50QmFzZSogd2tDbGllbnQKIAogICAgICAgICAgICAgbV9j
bGllbnQuZGVjaWRlUG9saWN5Rm9yU3BlZWNoUmVjb2duaXRpb25QZXJtaXNzaW9uUmVxdWVzdCh0
b0FQSSgmcGFnZSksIHRvQVBJKCZvcmlnaW4pLCB0b0FQSShTcGVlY2hSZWNvZ25pdGlvblBlcm1p
c3Npb25DYWxsYmFjazo6Y3JlYXRlKFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKS5wdHIoKSkp
OwogICAgICAgICB9CisKKyAgICAgICAgdm9pZCBkZWNpZGVQb2xpY3lGb3JNZWRpYUtleVN5c3Rl
bVBlcm1pc3Npb25SZXF1ZXN0KFdlYlBhZ2VQcm94eSYgcGFnZSwgQVBJOjpTZWN1cml0eU9yaWdp
biYgb3JpZ2luLCBjb25zdCBTdHJpbmcmIGtleVN5c3RlbSwgQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZChib29sKT4mJiBjb21wbGV0aW9uSGFuZGxlcikgZmluYWwKKyAgICAgICAgeworICAgICAgICAg
ICAgaWYgKCFtX2NsaWVudC5kZWNpZGVQb2xpY3lGb3JNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25S
ZXF1ZXN0KSB7CisgICAgICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoZmFsc2UpOworICAg
ICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgbV9jbGll
bnQuZGVjaWRlUG9saWN5Rm9yTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdCh0b0FQSSgm
cGFnZSksIHRvQVBJKCZvcmlnaW4pLCB0b0FQSShBUEk6OlN0cmluZzo6Y3JlYXRlKGtleVN5c3Rl
bSkucHRyKCkpLCB0b0FQSShNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25DYWxsYmFjazo6Y3JlYXRl
KFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKS5wdHIoKSkpOworICAgICAgICB9CiAgICAgfTsK
IAogICAgIHRvSW1wbChwYWdlUmVmKS0+c2V0VUlDbGllbnQobWFrZVVuaXF1ZTxVSUNsaWVudD4o
d2tDbGllbnQpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dL
UGFnZVVJQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2VVSUNs
aWVudC5oCmluZGV4IDYzNjM1NTU2NGQwMGIxMTIyYTg3ZTIyOWEzMGI5NGQ3ZTk5ZTRlZjkuLjNk
MzE1YmU2MTM0OGRkN2QyNDY3YmFhOTRkZWE0YWU3MTFjMjc4MDMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZVVJQ2xpZW50LmgKKysrIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlVUlDbGllbnQuaApAQCAtMTM4LDggKzEzOCwxMCBA
QCB0eXBlZGVmIGJvb2wgKCpXS1BhZ2VTaG91bGRBbGxvd0RldmljZU9yaWVudGF0aW9uQW5kTW90
aW9uQWNjZXNzQ2FsbGJhY2spKFdLUGFnZQogdHlwZWRlZiB2b2lkICgqV0tQYWdlUnVuV2ViQXV0
aGVudGljYXRpb25QYW5lbENhbGxiYWNrKSgpOwogdHlwZWRlZiB2b2lkICgqV0tQYWdlRGVjaWRl
UG9saWN5Rm9yU3BlZWNoUmVjb2duaXRpb25QZXJtaXNzaW9uUmVxdWVzdENhbGxiYWNrKShXS1Bh
Z2VSZWYgcGFnZSwgV0tTZWN1cml0eU9yaWdpblJlZiB0b3BPcmlnaW4sIFdLU3BlZWNoUmVjb2du
aXRpb25QZXJtaXNzaW9uQ2FsbGJhY2tSZWYgY2FsbGJhY2spOwogCit0eXBlZGVmIHZvaWQgKCpX
S1BhZ2VEZWNpZGVQb2xpY3lGb3JNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0Q2FsbGJh
Y2spKFdLUGFnZVJlZiBwYWdlLCBXS1NlY3VyaXR5T3JpZ2luUmVmIHRvcE9yaWdpbiwgV0tTdHJp
bmdSZWYga2V5U3lzdGVtLCBXS01lZGlhS2V5U3lzdGVtUGVybWlzc2lvbkNhbGxiYWNrUmVmIGNh
bGxiYWNrKTsKKwogLy8gRGVwcmVjYXRlZAotdHlwZWRlZiBXS1BhZ2VSZWYgKCpXS1BhZ2VDcmVh
dGVOZXdQYWdlQ2FsbGJhY2tfZGVwcmVjYXRlZEZvclVzZVdpdGhWMCkoV0tQYWdlUmVmIHBhZ2Us
IFdLRGljdGlvbmFyeVJlZiBmZWF0dXJlcywgV0tFdmVudE1vZGlmaWVycyBtb2RpZmllcnMsIFdL
RXZlbnRNb3VzZUJ1dHRvbiBtb3VzZUJ1dHRvbiwgY29uc3Qgdm9pZCAqY2xpZW50SW5mbyk7Cit0
eXBlZGVmIFdLUGFnZVJlZiAoKldLUGFnZUNyZWF0ZU5ld1BhZ2VDYWxsYmFja19kZXByZWNhdGVk
Rm9yVXNlV2l0aFYwKShXS1BhZ2VSZWYgcGFnZSwgV0tEaWN0aW9uYXJ5UmVmIGZlYXR1cmVzLCBX
S0V2ZW50TW9kaWZpZXJzIG1vZGlmaWVycywgV0tFdmVudE1vdXNlQnV0dG9uIG1vdXNlQnV0dG9u
LCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKTsKIHR5cGVkZWYgdm9pZCAgICAgICgqV0tQYWdlTW91
c2VEaWRNb3ZlT3ZlckVsZW1lbnRDYWxsYmFja19kZXByZWNhdGVkRm9yVXNlV2l0aFYwKShXS1Bh
Z2VSZWYgcGFnZSwgV0tFdmVudE1vZGlmaWVycyBtb2RpZmllcnMsIFdLVHlwZVJlZiB1c2VyRGF0
YSwgY29uc3Qgdm9pZCAqY2xpZW50SW5mbyk7CiB0eXBlZGVmIHZvaWQgKCpXS1BhZ2VNaXNzaW5n
UGx1Z2luQnV0dG9uQ2xpY2tlZENhbGxiYWNrX2RlcHJlY2F0ZWRGb3JVc2VXaXRoVjApKFdLUGFn
ZVJlZiBwYWdlLCBXS1N0cmluZ1JlZiBtaW1lVHlwZSwgV0tTdHJpbmdSZWYgdXJsLCBXS1N0cmlu
Z1JlZiBwbHVnaW5zUGFnZVVSTCwgY29uc3Qgdm9pZCogY2xpZW50SW5mbyk7CiB0eXBlZGVmIHZv
aWQgKCpXS1BhZ2VVbmF2YWlsYWJsZVBsdWdpbkJ1dHRvbkNsaWNrZWRDYWxsYmFja19kZXByZWNh
dGVkRm9yVXNlV2l0aFYxKShXS1BhZ2VSZWYgcGFnZSwgV0tQbHVnaW5VbmF2YWlsYWJpbGl0eVJl
YXNvbiBwbHVnaW5VbmF2YWlsYWJpbGl0eVJlYXNvbiwgV0tTdHJpbmdSZWYgbWltZVR5cGUsIFdL
U3RyaW5nUmVmIHVybCwgV0tTdHJpbmdSZWYgcGx1Z2luc1BhZ2VVUkwsIGNvbnN0IHZvaWQqIGNs
aWVudEluZm8pOwpAQCAtMTQ2NSw2ICsxNDY3LDEyMSBAQCB0eXBlZGVmIHN0cnVjdCBXS1BhZ2VV
SUNsaWVudFYxNSB7CiAgICAgCiB9IFdLUGFnZVVJQ2xpZW50VjE1OwogCit0eXBlZGVmIHN0cnVj
dCBXS1BhZ2VVSUNsaWVudFYxNiB7CisgICAgV0tQYWdlVUlDbGllbnRCYXNlICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiYXNlOworCisgICAgLy8gVmVy
c2lvbiAwLgorICAgIFdLUGFnZUNyZWF0ZU5ld1BhZ2VDYWxsYmFja19kZXByZWNhdGVkRm9yVXNl
V2l0aFYwICAgICAgICAgICAgICAgICAgY3JlYXRlTmV3UGFnZV9kZXByZWNhdGVkRm9yVXNlV2l0
aFYwOworICAgIFdLUGFnZVVJQ2xpZW50Q2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgc2hvd1BhZ2U7CisgICAgV0tQYWdlVUlDbGllbnRDYWxsYmFj
ayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbG9zZTsKKyAg
ICBXS1BhZ2VUYWtlRm9jdXNDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHRha2VGb2N1czsKKyAgICBXS1BhZ2VGb2N1c0NhbGxiYWNrICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvY3VzOworICAgIFdLUGFn
ZVVuZm9jdXNDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgdW5mb2N1czsKKyAgICBXS1BhZ2VSdW5KYXZhU2NyaXB0QWxlcnRDYWxsYmFja19kZXBy
ZWNhdGVkRm9yVXNlV2l0aFYwICAgICAgICAgICAgIHJ1bkphdmFTY3JpcHRBbGVydF9kZXByZWNh
dGVkRm9yVXNlV2l0aFYwOworICAgIFdLUGFnZVJ1bkphdmFTY3JpcHRDb25maXJtQ2FsbGJhY2tf
ZGVwcmVjYXRlZEZvclVzZVdpdGhWMCAgICAgICAgICAgcnVuSmF2YVNjcmlwdENvbmZpcm1fZGVw
cmVjYXRlZEZvclVzZVdpdGhWMDsKKyAgICBXS1BhZ2VSdW5KYXZhU2NyaXB0UHJvbXB0Q2FsbGJh
Y2tfZGVwcmVjYXRlZEZvclVzZVdpdGhWMCAgICAgICAgICAgIHJ1bkphdmFTY3JpcHRQcm9tcHRf
ZGVwcmVjYXRlZEZvclVzZVdpdGhWMDsKKyAgICBXS1BhZ2VTZXRTdGF0dXNUZXh0Q2FsbGJhY2sg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldFN0YXR1c1RleHQ7Cisg
ICAgV0tQYWdlTW91c2VEaWRNb3ZlT3ZlckVsZW1lbnRDYWxsYmFja19kZXByZWNhdGVkRm9yVXNl
V2l0aFYwICAgICAgICBtb3VzZURpZE1vdmVPdmVyRWxlbWVudF9kZXByZWNhdGVkRm9yVXNlV2l0
aFYwOworICAgIFdLUGFnZU1pc3NpbmdQbHVnaW5CdXR0b25DbGlja2VkQ2FsbGJhY2tfZGVwcmVj
YXRlZEZvclVzZVdpdGhWMCAgICAgbWlzc2luZ1BsdWdpbkJ1dHRvbkNsaWNrZWRfZGVwcmVjYXRl
ZEZvclVzZVdpdGhWMDsKKyAgICBXS1BhZ2VEaWROb3RIYW5kbGVLZXlFdmVudENhbGxiYWNrICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpZE5vdEhhbmRsZUtleUV2ZW50OworICAg
IFdLUGFnZURpZE5vdEhhbmRsZVdoZWVsRXZlbnRDYWxsYmFjayAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgZGlkTm90SGFuZGxlV2hlZWxFdmVudDsKKyAgICBXS1BhZ2VHZXRUb29sYmFy
c0FyZVZpc2libGVDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvb2xi
YXJzQXJlVmlzaWJsZTsKKyAgICBXS1BhZ2VTZXRUb29sYmFyc0FyZVZpc2libGVDYWxsYmFjayAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldFRvb2xiYXJzQXJlVmlzaWJsZTsKKyAg
ICBXS1BhZ2VHZXRNZW51QmFySXNWaXNpYmxlQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIG1lbnVCYXJJc1Zpc2libGU7CisgICAgV0tQYWdlU2V0TWVudUJhcklzVmlz
aWJsZUNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRNZW51QmFy
SXNWaXNpYmxlOworICAgIFdLUGFnZUdldFN0YXR1c0JhcklzVmlzaWJsZUNhbGxiYWNrICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdHVzQmFySXNWaXNpYmxlOworICAgIFdLUGFn
ZVNldFN0YXR1c0JhcklzVmlzaWJsZUNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgc2V0U3RhdHVzQmFySXNWaXNpYmxlOworICAgIFdLUGFnZUdldElzUmVzaXphYmxlQ2Fs
bGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXNSZXNpemFibGU7
CisgICAgV0tQYWdlU2V0SXNSZXNpemFibGVDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBzZXRJc1Jlc2l6YWJsZTsKKyAgICBXS1BhZ2VHZXRXaW5kb3dGcmFt
ZUNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdldFdpbmRv
d0ZyYW1lOworICAgIFdLUGFnZVNldFdpbmRvd0ZyYW1lQ2FsbGJhY2sgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgc2V0V2luZG93RnJhbWU7CisgICAgV0tQYWdlUnVuQmVm
b3JlVW5sb2FkQ29uZmlybVBhbmVsQ2FsbGJhY2tfZGVwcmVjYXRlZEZvclVzZVdpdGhWNiAgICBy
dW5CZWZvcmVVbmxvYWRDb25maXJtUGFuZWxfZGVwcmVjYXRlZEZvclVzZVdpdGhWNjsKKyAgICBX
S1BhZ2VVSUNsaWVudENhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGRpZERyYXc7CisgICAgV0tQYWdlVUlDbGllbnRDYWxsYmFjayAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYWdlRGlkU2Nyb2xsOworICAgIFdL
UGFnZUV4Y2VlZGVkRGF0YWJhc2VRdW90YUNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgZXhjZWVkZWREYXRhYmFzZVF1b3RhOworICAgIFdLUGFnZVJ1bk9wZW5QYW5lbENh
bGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcnVuT3BlblBh
bmVsOworICAgIFdLUGFnZURlY2lkZVBvbGljeUZvckdlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVl
c3RDYWxsYmFjayAgICAgICAgICAgZGVjaWRlUG9saWN5Rm9yR2VvbG9jYXRpb25QZXJtaXNzaW9u
UmVxdWVzdDsKKyAgICBXS1BhZ2VIZWFkZXJIZWlnaHRDYWxsYmFjayAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGhlYWRlckhlaWdodDsKKyAgICBXS1BhZ2VGb290ZXJI
ZWlnaHRDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZv
b3RlckhlaWdodDsKKyAgICBXS1BhZ2VEcmF3SGVhZGVyQ2FsbGJhY2sgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRyYXdIZWFkZXI7CisgICAgV0tQYWdlRHJhd0Zv
b3RlckNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBk
cmF3Rm9vdGVyOworICAgIFdLUGFnZVByaW50RnJhbWVDYWxsYmFjayAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJpbnRGcmFtZTsKKyAgICBXS1BhZ2VVSUNsaWVu
dENhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJ1
bk1vZGFsOworICAgIHZvaWQqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgdW51c2VkMTsgLy8gVXNlZCB0byBiZSBkaWRDb21wbGV0
ZVJ1YmJlckJhbmRGb3JNYWluRnJhbWUKKyAgICBXS1BhZ2VTYXZlRGF0YVRvRmlsZUluRG93bmxv
YWRzRm9sZGVyQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgIHNhdmVEYXRhVG9GaWxlSW5E
b3dubG9hZHNGb2xkZXI7CisgICAgdm9pZCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaG91bGRJbnRlcnJ1cHRKYXZhU2NyaXB0
X3VuYXZhaWxhYmxlOworCisgICAgLy8gVmVyc2lvbiAxLgorICAgIFdLUGFnZUNyZWF0ZU5ld1Bh
Z2VDYWxsYmFja19kZXByZWNhdGVkRm9yVXNlV2l0aFYxICAgICAgICAgICAgICAgICAgY3JlYXRl
TmV3UGFnZV9kZXByZWNhdGVkRm9yVXNlV2l0aFYxOworICAgIFdLUGFnZU1vdXNlRGlkTW92ZU92
ZXJFbGVtZW50Q2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbW91c2VEaWRN
b3ZlT3ZlckVsZW1lbnQ7CisgICAgV0tQYWdlRGVjaWRlUG9saWN5Rm9yTm90aWZpY2F0aW9uUGVy
bWlzc2lvblJlcXVlc3RDYWxsYmFjayAgICAgICAgICBkZWNpZGVQb2xpY3lGb3JOb3RpZmljYXRp
b25QZXJtaXNzaW9uUmVxdWVzdDsKKyAgICBXS1BhZ2VVbmF2YWlsYWJsZVBsdWdpbkJ1dHRvbkNs
aWNrZWRDYWxsYmFja19kZXByZWNhdGVkRm9yVXNlV2l0aFYxIHVuYXZhaWxhYmxlUGx1Z2luQnV0
dG9uQ2xpY2tlZF9kZXByZWNhdGVkRm9yVXNlV2l0aFYxOworCisgICAgLy8gVmVyc2lvbiAyLgor
ICAgIFdLUGFnZVNob3dDb2xvclBpY2tlckNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgc2hvd0NvbG9yUGlja2VyOworICAgIFdLUGFnZUhpZGVDb2xvclBpY2tl
ckNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGlkZUNvbG9y
UGlja2VyOworICAgIFdLUGFnZVVuYXZhaWxhYmxlUGx1Z2luQnV0dG9uQ2xpY2tlZENhbGxiYWNr
ICAgICAgICAgICAgICAgICAgICAgICAgdW5hdmFpbGFibGVQbHVnaW5CdXR0b25DbGlja2VkOwor
CisgICAgLy8gVmVyc2lvbiAzLgorICAgIFdLUGFnZVBpbm5lZFN0YXRlRGlkQ2hhbmdlQ2FsbGJh
Y2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGlubmVkU3RhdGVEaWRDaGFuZ2U7
CisKKyAgICAvLyBWZXJzaW9uIDQuCisgICAgdm9pZCogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnVzZWQyOyAvLyBVc2VkIHRv
IGJlIGRpZEJlZ2luVHJhY2tpbmdQb3RlbnRpYWxMb25nTW91c2VQcmVzcy4KKyAgICB2b2lkKiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHVudXNlZDM7IC8vIFVzZWQgdG8gYmUgZGlkUmVjb2duaXplTG9uZ01vdXNlUHJlc3MuCisg
ICAgdm9pZCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB1bnVzZWQ0OyAvLyBVc2VkIHRvIGJlIGRpZENhbmNlbFRyYWNraW5nUG90
ZW50aWFsTG9uZ01vdXNlUHJlc3MuCisgICAgV0tQYWdlSXNQbGF5aW5nQXVkaW9EaWRDaGFuZ2VD
YWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpc1BsYXlpbmdBdWRpb0RpZENo
YW5nZTsKKworICAgIC8vIFZlcnNpb24gNS4KKyAgICBXS1BhZ2VEZWNpZGVQb2xpY3lGb3JVc2Vy
TWVkaWFQZXJtaXNzaW9uUmVxdWVzdENhbGxiYWNrICAgICAgICAgICAgIGRlY2lkZVBvbGljeUZv
clVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0OworICAgIFdLUGFnZURpZENsaWNrQXV0b0ZpbGxC
dXR0b25DYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlkQ2xpY2tBdXRv
RmlsbEJ1dHRvbjsKKyAgICBXS1BhZ2VSdW5KYXZhU2NyaXB0QWxlcnRDYWxsYmFja19kZXByZWNh
dGVkRm9yVXNlV2l0aFY1ICAgICAgICAgICAgIHJ1bkphdmFTY3JpcHRBbGVydF9kZXByZWNhdGVk
Rm9yVXNlV2l0aFY1OworICAgIFdLUGFnZVJ1bkphdmFTY3JpcHRDb25maXJtQ2FsbGJhY2tfZGVw
cmVjYXRlZEZvclVzZVdpdGhWNSAgICAgICAgICAgcnVuSmF2YVNjcmlwdENvbmZpcm1fZGVwcmVj
YXRlZEZvclVzZVdpdGhWNTsKKyAgICBXS1BhZ2VSdW5KYXZhU2NyaXB0UHJvbXB0Q2FsbGJhY2tf
ZGVwcmVjYXRlZEZvclVzZVdpdGhWNSAgICAgICAgICAgIHJ1bkphdmFTY3JpcHRQcm9tcHRfZGVw
cmVjYXRlZEZvclVzZVdpdGhWNTsKKyAgICB2b2lkKiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVudXNlZDU7IC8vIFVzZWQgdG8g
YmUgbWVkaWFTZXNzaW9uTWV0YWRhdGFEaWRDaGFuZ2UuCisKKyAgICAvLyBWZXJzaW9uIDYuCisg
ICAgV0tQYWdlQ3JlYXRlTmV3UGFnZUNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBjcmVhdGVOZXdQYWdlOworICAgIFdLUGFnZVJ1bkphdmFTY3JpcHRBbGVy
dENhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcnVuSmF2YVNjcmlw
dEFsZXJ0OworICAgIFdLUGFnZVJ1bkphdmFTY3JpcHRDb25maXJtQ2FsbGJhY2sgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgcnVuSmF2YVNjcmlwdENvbmZpcm07CisgICAgV0tQYWdl
UnVuSmF2YVNjcmlwdFByb21wdENhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBydW5KYXZhU2NyaXB0UHJvbXB0OworICAgIFdLQ2hlY2tVc2VyTWVkaWFQZXJtaXNzaW9u
Q2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hlY2tVc2VyTWVkaWFQ
ZXJtaXNzaW9uRm9yT3JpZ2luOworCisgICAgLy8gVmVyc2lvbiA3LgorICAgIFdLUGFnZVJ1bkJl
Zm9yZVVubG9hZENvbmZpcm1QYW5lbENhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAg
cnVuQmVmb3JlVW5sb2FkQ29uZmlybVBhbmVsOworICAgIFdLRnVsbHNjcmVlbk1heVJldHVyblRv
SW5saW5lQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZnVsbHNjcmVlbk1h
eVJldHVyblRvSW5saW5lOworCisgICAgLy8gVmVyc2lvbiA4LgorICAgIFdLUmVxdWVzdFBvaW50
ZXJMb2NrQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVx
dWVzdFBvaW50ZXJMb2NrOworICAgIFdLRGlkTG9zZVBvaW50ZXJMb2NrQ2FsbGJhY2sgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlkTG9zZVBvaW50ZXJMb2NrOworCisg
ICAgLy8gVmVyc2lvbiA5LgorICAgIFdLSGFuZGxlQXV0b3BsYXlFdmVudENhbGxiYWNrICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlQXV0b3BsYXlFdmVudDsKKwor
ICAgIC8vIFZlcnNpb24gMTAuCisgICAgV0tIYXNWaWRlb0luUGljdHVyZUluUGljdHVyZURpZENo
YW5nZUNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICBoYXNWaWRlb0luUGljdHVyZUluUGlj
dHVyZURpZENoYW5nZTsKKyAgICBXS0RpZEV4Y2VlZEJhY2tncm91bmRSZXNvdXJjZUxpbWl0V2hp
bGVJbkZvcmVncm91bmRDYWxsYmFjayAgICAgICAgIGRpZEV4Y2VlZEJhY2tncm91bmRSZXNvdXJj
ZUxpbWl0V2hpbGVJbkZvcmVncm91bmQ7CisKKyAgICAvLyBWZXJzaW9uIDExLgorICAgIFdLUGFn
ZURpZFJlc2lnbklucHV0RWxlbWVudFN0cm9uZ1Bhc3N3b3JkQXBwZWFyYW5jZUNhbGxiYWNrICAg
ICAgICAgZGlkUmVzaWduSW5wdXRFbGVtZW50U3Ryb25nUGFzc3dvcmRBcHBlYXJhbmNlOworCisg
ICAgLy8gVmVyc2lvbiAxMi4KKyAgICBXS1BhZ2VSZXF1ZXN0U3RvcmFnZUFjY2Vzc0NvbmZpcm1D
YWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3RTdG9yYWdlQWNjZXNzQ29u
ZmlybTsKKworICAgIC8vIFZlcnNpb24gMTMuCisgICAgV0tQYWdlU2hvdWxkQWxsb3dEZXZpY2VP
cmllbnRhdGlvbkFuZE1vdGlvbkFjY2Vzc0NhbGxiYWNrICAgICAgICAgICBzaG91bGRBbGxvd0Rl
dmljZU9yaWVudGF0aW9uQW5kTW90aW9uQWNjZXNzOworCisgICAgLy8gVmVyc2lvbiAxNC4KKyAg
ICBXS1BhZ2VSdW5XZWJBdXRoZW50aWNhdGlvblBhbmVsQ2FsbGJhY2sgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHJ1bldlYkF1dGhlbnRpY2F0aW9uUGFuZWw7CisKKyAgICAvLyBWZXJzaW9u
IDE1LgorICAgIFdLUGFnZURlY2lkZVBvbGljeUZvclNwZWVjaFJlY29nbml0aW9uUGVybWlzc2lv
blJlcXVlc3RDYWxsYmFjayAgICAgZGVjaWRlUG9saWN5Rm9yU3BlZWNoUmVjb2duaXRpb25QZXJt
aXNzaW9uUmVxdWVzdDsKKworICAgIC8vIFZlcnNpb24gMTYuCisgICAgV0tQYWdlRGVjaWRlUG9s
aWN5Rm9yTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdENhbGxiYWNrICAgICAgICBkZWNp
ZGVQb2xpY3lGb3JNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0OworCit9IFdLUGFnZVVJ
Q2xpZW50VjE2OworCisKICNpZmRlZiBfX2NwbHVzcGx1cwogfQogI2VuZGlmCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRNZWRpYUtleVN5c3RlbVBl
cm1pc3Npb25SZXF1ZXN0LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dl
YktpdE1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3QuY3BwCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjAyYWIw
ZmEzY2Y3MjFiMDhhYWU3NDZkZDllZDYyYTZmZWZhMmVlYjgKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRNZWRpYUtleVN5c3RlbVBlcm1p
c3Npb25SZXF1ZXN0LmNwcApAQCAtMCwwICsxLDEyNCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAyMSBJZ2FsaWEgUy5MLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5
b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVy
bXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxp
c2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24g
MiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4K
KyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3
aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVu
IHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogTGlicmFyeSBHZW5lcmFs
IFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZl
IHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5z
ZQorICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4g
IElmIG5vdCwgd3JpdGUgdG8KKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4s
IDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgKiBCb3N0b24sIE1BIDAyMTEwLTEz
MDEsIFVTQS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV2ViS2l0TWVk
aWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdC5oIgorCisjaW5jbHVkZSAiTWVkaWFLZXlTeXN0
ZW1QZXJtaXNzaW9uUmVxdWVzdC5oIgorI2luY2x1ZGUgIldlYktpdE1lZGlhS2V5U3lzdGVtUGVy
bWlzc2lvblJlcXVlc3RQcml2YXRlLmgiCisjaW5jbHVkZSAiV2ViS2l0UGVybWlzc2lvblJlcXVl
c3QuaCIKKyNpbmNsdWRlIDx3dGYvZ2xpYi9XVEZHVHlwZS5oPgorCit1c2luZyBuYW1lc3BhY2Ug
V2ViS2l0OworCisvKioKKyAqIFNFQ1RJT046IFdlYktpdE1lZGlhS2V5U3lzdGVtUGVybWlzc2lv
blJlcXVlc3QKKyAqIEBTaG9ydF9kZXNjcmlwdGlvbjogQSBwZXJtaXNzaW9uIHJlcXVlc3QgZm9y
IHVzaW5nIGFuIEVNRSBDb250ZW50IERlY3J5cHRpb24gTW9kdWxlCisgKiBAVGl0bGU6IFdlYktp
dE1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3QKKyAqIEBTZWVfYWxzbzogI1dlYktpdFBl
cm1pc3Npb25SZXF1ZXN0LCAjV2ViS2l0V2ViVmlldworICoKKyAqIFdlYktpdE1lZGlhS2V5U3lz
dGVtUGVybWlzc2lvblJlcXVlc3QgcmVwcmVzZW50cyBhIHJlcXVlc3QgZm9yIHBlcm1pc3Npb24g
dG8gZGVjaWRlIHdoZXRoZXIKKyAqIFdlYktpdCBzaG91bGQgdXNlIHRoZSBnaXZlbiBDRE0gdG8g
YWNjZXNzIHByb3RlY3RlZCBtZWRpYSB3aGVuIHJlcXVlc3RlZCB0aHJvdWdoIHRoZQorICogTWVk
aWFLZXlTeXN0ZW0gQVBJLgorICoKKyAqIFdoZW4gYSBXZWJLaXRNZWRpYUtleVN5c3RlbVBlcm1p
c3Npb25SZXF1ZXN0IGlzIG5vdCBoYW5kbGVkIGJ5IHRoZSB1c2VyLAorICogaXQgaXMgZGVuaWVk
IGJ5IGRlZmF1bHQuCisgKgorICogV2hlbiBoYW5kbGluZyB0aGlzIHBlcm1pc3Npb24gcmVxdWVz
dCB0aGUgYXBwbGljYXRpb24gbWF5IHBlcmZvcm0gYWRkaXRpb25hbCBpbnN0YWxsYXRpb24gb2Yg
dGhlCisgKiByZXF1ZXN0ZWQgQ0RNLCB1bmxlc3MgaXQgaXMgYWxyZWFkeSBwcmVzZW50IG9uIHRo
ZSBob3N0IHN5c3RlbS4KKyAqLworCitzdGF0aWMgdm9pZCB3ZWJraXRfcGVybWlzc2lvbl9yZXF1
ZXN0X2ludGVyZmFjZV9pbml0KFdlYktpdFBlcm1pc3Npb25SZXF1ZXN0SWZhY2UqKTsKKworc3Ry
dWN0IF9XZWJLaXRNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0UHJpdmF0ZSB7CisgICAg
UmVmUHRyPE1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3Q+IHJlcXVlc3Q7CisgICAgYm9v
bCBtYWRlRGVjaXNpb247Cit9OworCitXRUJLSVRfREVGSU5FX1RZUEVfV0lUSF9DT0RFKAorICAg
IFdlYktpdE1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3QsIHdlYmtpdF9tZWRpYV9rZXlf
c3lzdGVtX3Blcm1pc3Npb25fcmVxdWVzdCwgR19UWVBFX09CSkVDVCwKKyAgICBHX0lNUExFTUVO
VF9JTlRFUkZBQ0UoV0VCS0lUX1RZUEVfUEVSTUlTU0lPTl9SRVFVRVNULCB3ZWJraXRfcGVybWlz
c2lvbl9yZXF1ZXN0X2ludGVyZmFjZV9pbml0KSkKKworc3RhdGljIHZvaWQgd2Via2l0TWVkaWFL
ZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdEFsbG93KFdlYktpdFBlcm1pc3Npb25SZXF1ZXN0KiBy
ZXF1ZXN0KQoreworICAgIEFTU0VSVChXRUJLSVRfSVNfTUVESUFfS0VZX1NZU1RFTV9QRVJNSVNT
SU9OX1JFUVVFU1QocmVxdWVzdCkpOworCisgICAgV2ViS2l0TWVkaWFLZXlTeXN0ZW1QZXJtaXNz
aW9uUmVxdWVzdFByaXZhdGUqIHByaXYgPSBXRUJLSVRfTUVESUFfS0VZX1NZU1RFTV9QRVJNSVNT
SU9OX1JFUVVFU1QocmVxdWVzdCktPnByaXY7CisKKyAgICAvLyBPbmx5IG9uZSBkZWNpc2lvbiBh
dCBhIHRpbWUuCisgICAgaWYgKHByaXYtPm1hZGVEZWNpc2lvbikKKyAgICAgICAgcmV0dXJuOwor
CisgICAgcHJpdi0+cmVxdWVzdC0+Y29tcGxldGUodHJ1ZSk7CisgICAgcHJpdi0+bWFkZURlY2lz
aW9uID0gdHJ1ZTsKK30KKworc3RhdGljIHZvaWQgd2Via2l0TWVkaWFLZXlTeXN0ZW1QZXJtaXNz
aW9uUmVxdWVzdERlbnkoV2ViS2l0UGVybWlzc2lvblJlcXVlc3QqIHJlcXVlc3QpCit7CisgICAg
QVNTRVJUKFdFQktJVF9JU19NRURJQV9LRVlfU1lTVEVNX1BFUk1JU1NJT05fUkVRVUVTVChyZXF1
ZXN0KSk7CisKKyAgICBXZWJLaXRNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0UHJpdmF0
ZSogcHJpdiA9IFdFQktJVF9NRURJQV9LRVlfU1lTVEVNX1BFUk1JU1NJT05fUkVRVUVTVChyZXF1
ZXN0KS0+cHJpdjsKKworICAgIC8vIE9ubHkgb25lIGRlY2lzaW9uIGF0IGEgdGltZS4KKyAgICBp
ZiAocHJpdi0+bWFkZURlY2lzaW9uKQorICAgICAgICByZXR1cm47CisKKyAgICBwcml2LT5yZXF1
ZXN0LT5jb21wbGV0ZShmYWxzZSk7CisgICAgcHJpdi0+bWFkZURlY2lzaW9uID0gdHJ1ZTsKK30K
Kworc3RhdGljIHZvaWQgd2Via2l0X3Blcm1pc3Npb25fcmVxdWVzdF9pbnRlcmZhY2VfaW5pdChX
ZWJLaXRQZXJtaXNzaW9uUmVxdWVzdElmYWNlKiBpZmFjZSkKK3sKKyAgICBpZmFjZS0+YWxsb3cg
PSB3ZWJraXRNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0QWxsb3c7CisgICAgaWZhY2Ut
PmRlbnkgPSB3ZWJraXRNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0RGVueTsKK30KKwor
c3RhdGljIHZvaWQgd2Via2l0TWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdERpc3Bvc2Uo
R09iamVjdCogb2JqZWN0KQoreworICAgIC8vIERlZmF1bHQgYmVoYXZpb3VyIHdoZW4gbm8gZGVj
aXNpb24gaGFzIGJlZW4gbWFkZSBpcyBkZW55aW5nIHRoZSByZXF1ZXN0LgorICAgIHdlYmtpdE1l
ZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3REZW55KFdFQktJVF9QRVJNSVNTSU9OX1JFUVVF
U1Qob2JqZWN0KSk7CisgICAgR19PQkpFQ1RfQ0xBU1Mod2Via2l0X21lZGlhX2tleV9zeXN0ZW1f
cGVybWlzc2lvbl9yZXF1ZXN0X3BhcmVudF9jbGFzcyktPmRpc3Bvc2Uob2JqZWN0KTsKK30KKwor
c3RhdGljIHZvaWQgd2Via2l0X21lZGlhX2tleV9zeXN0ZW1fcGVybWlzc2lvbl9yZXF1ZXN0X2Ns
YXNzX2luaXQoV2ViS2l0TWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdENsYXNzKiBrbGFz
cykKK3sKKyAgICBHT2JqZWN0Q2xhc3MqIG9iamVjdENsYXNzID0gR19PQkpFQ1RfQ0xBU1Moa2xh
c3MpOworICAgIG9iamVjdENsYXNzLT5kaXNwb3NlID0gd2Via2l0TWVkaWFLZXlTeXN0ZW1QZXJt
aXNzaW9uUmVxdWVzdERpc3Bvc2U7Cit9CisKK1dlYktpdE1lZGlhS2V5U3lzdGVtUGVybWlzc2lv
blJlcXVlc3QqIHdlYmtpdE1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RDcmVhdGUoTWVk
aWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdCogcmVxdWVzdCkKK3sKKyAgICBXZWJLaXRNZWRp
YUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0KiBwZXJtaXNzaW9uUmVxdWVzdCA9IFdFQktJVF9N
RURJQV9LRVlfU1lTVEVNX1BFUk1JU1NJT05fUkVRVUVTVChnX29iamVjdF9uZXcoV0VCS0lUX1RZ
UEVfTUVESUFfS0VZX1NZU1RFTV9QRVJNSVNTSU9OX1JFUVVFU1QsIE5VTEwpKTsKKyAgICBwZXJt
aXNzaW9uUmVxdWVzdC0+cHJpdi0+cmVxdWVzdCA9IHJlcXVlc3Q7CisgICAgcmV0dXJuIHBlcm1p
c3Npb25SZXF1ZXN0OworfQorCisvKioKKyAqIHdlYmtpdF9tZWRpYV9rZXlfc3lzdGVtX3Blcm1p
c3Npb25fZ2V0X25hbWU6CisgKiBAcmVxdWVzdDogYSAjV2ViS2l0TWVkaWFLZXlTeXN0ZW1QZXJt
aXNzaW9uUmVxdWVzdAorICoKKyAqIFJldHVybnM6IFRoZSBuYW1lIG9mIHRoZSBrZXkgc3lzdGVt
IGZvciB3aGljaCBhY2Nlc3MgcGVybWlzc2lvbiBpcyBiZWluZyByZXF1ZXN0ZWQuCisgKgorICog
U2luY2U6IDIuMzQKKyAqLworY29uc3QgZ2NoYXIqCit3ZWJraXRfbWVkaWFfa2V5X3N5c3RlbV9w
ZXJtaXNzaW9uX2dldF9uYW1lKFdlYktpdE1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3Qq
IHJlcXVlc3QpCit7CisgICAgcmV0dXJuIHJlcXVlc3QtPnByaXYtPnJlcXVlc3QtPmtleVN5c3Rl
bSgpLnV0ZjgoKS5kYXRhKCk7Cit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvZ2xpYi9XZWJLaXRNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0UHJpdmF0ZS5o
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0TWVkaWFLZXlTeXN0ZW1Q
ZXJtaXNzaW9uUmVxdWVzdFByaXZhdGUuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43ZTM2ZTRlYmNlMWFlZThjYTgz
YjBmM2NiOTkxM2I3M2IwNTYwNDk5Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0TWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdFBy
aXZhdGUuaApAQCAtMCwwICsxLDI1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIElnYWxp
YSBTLkwuCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVk
aXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUg
R05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRo
ZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogdmVyc2lvbiAyIG9mIHRoZSBM
aWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRo
aXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNl
ZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxp
ZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExp
Y2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQg
YSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9u
ZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3
cml0ZSB0bworICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmts
aW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgor
ICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAiTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9u
UmVxdWVzdC5oIgorI2luY2x1ZGUgIldlYktpdE1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVl
c3QuaCIKKworV2ViS2l0TWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdCogd2Via2l0TWVk
aWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdENyZWF0ZShXZWJLaXQ6Ok1lZGlhS2V5U3lzdGVt
UGVybWlzc2lvblJlcXVlc3QqKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9nbGliL1dlYktpdFVJQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9nbGliL1dlYktpdFVJQ2xpZW50LmNwcAppbmRleCAyY2ViMmI0ZjQ5ZjQwOWJiZTZlNjgxMDEx
NWUzNmQwYzg0ZjgzYjVkLi5mYzY5ZDY0ODEwNGFmMzFiZWIwYzBmMDU1YTg3MmM2MTk3MGI3NTBl
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRVSUNs
aWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0VUlD
bGllbnQuY3BwCkBAIC0yNSw2ICsyNSw3IEBACiAjaW5jbHVkZSAiV2ViS2l0RGV2aWNlSW5mb1Bl
cm1pc3Npb25SZXF1ZXN0UHJpdmF0ZS5oIgogI2luY2x1ZGUgIldlYktpdEZpbGVDaG9vc2VyUmVx
dWVzdFByaXZhdGUuaCIKICNpbmNsdWRlICJXZWJLaXRHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1
ZXN0UHJpdmF0ZS5oIgorI2luY2x1ZGUgIldlYktpdE1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJl
cXVlc3RQcml2YXRlLmgiCiAjaW5jbHVkZSAiV2ViS2l0TmF2aWdhdGlvbkFjdGlvblByaXZhdGUu
aCIKICNpbmNsdWRlICJXZWJLaXROb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdFByaXZhdGUu
aCIKICNpbmNsdWRlICJXZWJLaXRQb2ludGVyTG9ja1Blcm1pc3Npb25SZXF1ZXN0UHJpdmF0ZS5o
IgpAQCAtMjgzLDYgKzI4NCwxMiBAQCBwcml2YXRlOgogICAgICAgICB3ZWJraXRXZWJWaWV3TWFr
ZVBlcm1pc3Npb25SZXF1ZXN0KG1fd2ViVmlldywgV0VCS0lUX1BFUk1JU1NJT05fUkVRVUVTVChn
ZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0LmdldCgpKSk7CiAgICAgfQogCisgICAgdm9pZCBk
ZWNpZGVQb2xpY3lGb3JNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0KFdlYlBhZ2VQcm94
eSYsIEFQSTo6U2VjdXJpdHlPcmlnaW4mIHRvcExldmVsRG9jdW1lbnRPcmlnaW4sIGNvbnN0IFdU
Rjo6U3RyaW5nJiBrZXlTeXN0ZW0sIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYgY29t
cGxldGlvbkhhbmRsZXIpIGZpbmFsCisgICAgeworICAgICAgICBhdXRvIHBlcm1pc3Npb25SZXF1
ZXN0ID0gYWRvcHRHUmVmKHdlYmtpdE1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RDcmVh
dGUoTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdDo6Y3JlYXRlKGtleVN5c3RlbSwgc3Rk
OjpleGNoYW5nZShjb21wbGV0aW9uSGFuZGxlciwgbnVsbHB0cikpLnB0cigpKSk7CisgICAgICAg
IHdlYmtpdFdlYlZpZXdNYWtlUGVybWlzc2lvblJlcXVlc3QobV93ZWJWaWV3LCBXRUJLSVRfUEVS
TUlTU0lPTl9SRVFVRVNUKHBlcm1pc3Npb25SZXF1ZXN0LmdldCgpKSk7CisgICAgfQorCiAgICAg
dm9pZCBkZWNpZGVQb2xpY3lGb3JVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdChXZWJQYWdlUHJv
eHkmLCBXZWJGcmFtZVByb3h5JiwgQVBJOjpTZWN1cml0eU9yaWdpbiYgdXNlck1lZGlhRG9jdW1l
bnRPcmlnaW4sIEFQSTo6U2VjdXJpdHlPcmlnaW4mIHRvcExldmVsRG9jdW1lbnRPcmlnaW4sIFVz
ZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkmIHBlcm1pc3Npb25SZXF1ZXN0KSBmaW5hbAog
ICAgIHsKICAgICAgICAgR1JlZlB0cjxXZWJLaXRVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdD4g
dXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QgPSBhZG9wdEdSZWYod2Via2l0VXNlck1lZGlhUGVy
bWlzc2lvblJlcXVlc3RDcmVhdGUocGVybWlzc2lvblJlcXVlc3QsIHVzZXJNZWRpYURvY3VtZW50
T3JpZ2luLCB0b3BMZXZlbERvY3VtZW50T3JpZ2luKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdEF1dG9jbGVhbnVwcy5oIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRBdXRvY2xlYW51cHMuaAppbmRleCA1ODhmNGMxNmYz
MzUyM2U5MWNiZTM4ZmNjMGY2YTlhNThkMGM3Y2E2Li43ZTUyYmZhOGI3YzRmODdhODBkZmYxYjIz
NzEzYmJmNTFiZmI4MDRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
Z3RrL1dlYktpdEF1dG9jbGVhbnVwcy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9ndGsvV2ViS2l0QXV0b2NsZWFudXBzLmgKQEAgLTQ1LDYgKzQ1LDcgQEAgR19ERUZJTkVfQVVU
T1BUUl9DTEVBTlVQX0ZVTkMgKFdlYktpdEdlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3QsIGdf
b2JqZWN0X3VucmUKIEdfREVGSU5FX0FVVE9QVFJfQ0xFQU5VUF9GVU5DIChXZWJLaXRIaXRUZXN0
UmVzdWx0LCBnX29iamVjdF91bnJlZikKIEdfREVGSU5FX0FVVE9QVFJfQ0xFQU5VUF9GVU5DIChX
ZWJLaXRJbnB1dE1ldGhvZENvbnRleHQsIGdfb2JqZWN0X3VucmVmKQogR19ERUZJTkVfQVVUT1BU
Ul9DTEVBTlVQX0ZVTkMgKFdlYktpdEluc3RhbGxNaXNzaW5nTWVkaWFQbHVnaW5zUGVybWlzc2lv
blJlcXVlc3QsIGdfb2JqZWN0X3VucmVmKQorR19ERUZJTkVfQVVUT1BUUl9DTEVBTlVQX0ZVTkMg
KFdlYktpdE1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3QsIGdfb2JqZWN0X3VucmVmKQog
R19ERUZJTkVfQVVUT1BUUl9DTEVBTlVQX0ZVTkMgKFdlYktpdE5hdmlnYXRpb25Qb2xpY3lEZWNp
c2lvbiwgZ19vYmplY3RfdW5yZWYpCiBHX0RFRklORV9BVVRPUFRSX0NMRUFOVVBfRlVOQyAoV2Vi
S2l0Tm90aWZpY2F0aW9uLCBnX29iamVjdF91bnJlZikKIEdfREVGSU5FX0FVVE9QVFJfQ0xFQU5V
UF9GVU5DIChXZWJLaXROb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdCwgZ19vYmplY3RfdW5y
ZWYpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdE1l
ZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3QuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9ndGsvV2ViS2l0TWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdC5oCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjQxZjE0OTMzNmY0NTQ4MzY5MGI2NWQ4M2I4ZDYyMWViOWY0YWYzZDkKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdE1lZGlhS2V5U3lz
dGVtUGVybWlzc2lvblJlcXVlc3QuaApAQCAtMCwwICsxLDY3IEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDIxIElnYWxpYSBTLkwuCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdh
cmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRo
ZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMg
cHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogdmVy
c2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJz
aW9uLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0
IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0
IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiBMaWJyYXJ5IEdl
bmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxk
IGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBM
aWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcu
TElCLiAgSWYgbm90LCB3cml0ZSB0bworICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwg
SW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAqIEJvc3RvbiwgTUEgMDIx
MTAtMTMwMSwgVVNBLgorICovCisKKyNpZiAhZGVmaW5lZChfX1dFQktJVDJfSF9JTlNJREVfXykg
JiYgIWRlZmluZWQoV0VCS0lUMl9DT01QSUxBVElPTikKKyNlcnJvciAiT25seSA8d2Via2l0Mi93
ZWJraXQyLmg+IGNhbiBiZSBpbmNsdWRlZCBkaXJlY3RseS4iCisjZW5kaWYKKworI2lmbmRlZiBX
ZWJLaXRNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0X2gKKyNkZWZpbmUgV2ViS2l0TWVk
aWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdF9oCisKKyNpbmNsdWRlIDxnbGliLW9iamVjdC5o
PgorI2luY2x1ZGUgPHdlYmtpdDIvV2ViS2l0RGVmaW5lcy5oPgorCitHX0JFR0lOX0RFQ0xTCisK
KyNkZWZpbmUgV0VCS0lUX1RZUEVfTUVESUFfS0VZX1NZU1RFTV9QRVJNSVNTSU9OX1JFUVVFU1Qg
ICAgICAgICAgICAod2Via2l0X21lZGlhX2tleV9zeXN0ZW1fcGVybWlzc2lvbl9yZXF1ZXN0X2dl
dF90eXBlKCkpCisjZGVmaW5lIFdFQktJVF9NRURJQV9LRVlfU1lTVEVNX1BFUk1JU1NJT05fUkVR
VUVTVChvYmopICAgICAgICAgICAgKEdfVFlQRV9DSEVDS19JTlNUQU5DRV9DQVNUKChvYmopLCBX
RUJLSVRfVFlQRV9NRURJQV9LRVlfU1lTVEVNX1BFUk1JU1NJT05fUkVRVUVTVCwgV2ViS2l0TWVk
aWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdCkpCisjZGVmaW5lIFdFQktJVF9NRURJQV9LRVlf
U1lTVEVNX1BFUk1JU1NJT05fUkVRVUVTVF9DTEFTUyhrbGFzcykgICAgKEdfVFlQRV9DSEVDS19D
TEFTU19DQVNUKChrbGFzcyksICBXRUJLSVRfVFlQRV9NRURJQV9LRVlfU1lTVEVNX1BFUk1JU1NJ
T05fUkVRVUVTVCwgV2ViS2l0TWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdENsYXNzKSkK
KyNkZWZpbmUgV0VCS0lUX0lTX01FRElBX0tFWV9TWVNURU1fUEVSTUlTU0lPTl9SRVFVRVNUKG9i
aikgICAgICAgICAoR19UWVBFX0NIRUNLX0lOU1RBTkNFX1RZUEUoKG9iaiksIFdFQktJVF9UWVBF
X01FRElBX0tFWV9TWVNURU1fUEVSTUlTU0lPTl9SRVFVRVNUKSkKKyNkZWZpbmUgV0VCS0lUX0lT
X01FRElBX0tFWV9TWVNURU1fUEVSTUlTU0lPTl9SRVFVRVNUX0NMQVNTKGtsYXNzKSAoR19UWVBF
X0NIRUNLX0NMQVNTX1RZUEUoKGtsYXNzKSwgIFdFQktJVF9UWVBFX01FRElBX0tFWV9TWVNURU1f
UEVSTUlTU0lPTl9SRVFVRVNUKSkKKyNkZWZpbmUgV0VCS0lUX01FRElBX0tFWV9TWVNURU1fUEVS
TUlTU0lPTl9SRVFVRVNUX0dFVF9DTEFTUyhvYmopICAoR19UWVBFX0lOU1RBTkNFX0dFVF9DTEFT
Uygob2JqKSwgIFdFQktJVF9UWVBFX01FRElBX0tFWV9TWVNURU1fUEVSTUlTU0lPTl9SRVFVRVNU
LCBXZWJLaXRNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0Q2xhc3MpKQorCit0eXBlZGVm
IHN0cnVjdCBfV2ViS2l0TWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdCAgICAgICAgV2Vi
S2l0TWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdDsKK3R5cGVkZWYgc3RydWN0IF9XZWJL
aXRNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0Q2xhc3MgICBXZWJLaXRNZWRpYUtleVN5
c3RlbVBlcm1pc3Npb25SZXF1ZXN0Q2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBfV2ViS2l0TWVkaWFL
ZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdFByaXZhdGUgV2ViS2l0TWVkaWFLZXlTeXN0ZW1QZXJt
aXNzaW9uUmVxdWVzdFByaXZhdGU7CisKK3N0cnVjdCBfV2ViS2l0TWVkaWFLZXlTeXN0ZW1QZXJt
aXNzaW9uUmVxdWVzdCB7CisgICAgR09iamVjdCBwYXJlbnQ7CisKKyAgICAvKjwgcHJpdmF0ZSA+
Ki8KKyAgICBXZWJLaXRNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0UHJpdmF0ZSAqcHJp
djsKK307CisKK3N0cnVjdCBfV2ViS2l0TWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdENs
YXNzIHsKKyAgICBHT2JqZWN0Q2xhc3MgcGFyZW50X2NsYXNzOworCisgICAgdm9pZCAoKl93ZWJr
aXRfcmVzZXJ2ZWQwKSAodm9pZCk7CisgICAgdm9pZCAoKl93ZWJraXRfcmVzZXJ2ZWQxKSAodm9p
ZCk7CisgICAgdm9pZCAoKl93ZWJraXRfcmVzZXJ2ZWQyKSAodm9pZCk7CisgICAgdm9pZCAoKl93
ZWJraXRfcmVzZXJ2ZWQzKSAodm9pZCk7Cit9OworCitXRUJLSVRfQVBJIEdUeXBlCit3ZWJraXRf
bWVkaWFfa2V5X3N5c3RlbV9wZXJtaXNzaW9uX3JlcXVlc3RfZ2V0X3R5cGUgKHZvaWQpOworCitX
RUJLSVRfQVBJIGNvbnN0IGdjaGFyKgord2Via2l0X21lZGlhX2tleV9zeXN0ZW1fcGVybWlzc2lv
bl9nZXRfbmFtZSAoV2ViS2l0TWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdCAqcmVxdWVz
dCk7CisKK0dfRU5EX0RFQ0xTCisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL2d0ay9kb2NzL3dlYmtpdDJndGstNC4wLXNlY3Rpb25zLnR4dCBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvZG9jcy93ZWJraXQyZ3RrLTQuMC1zZWN0aW9ucy50
eHQKaW5kZXggZjZmNWI4YzUxZTZjOThiY2JiNmU1ODk0YTBiNjg3OGUyMWNjODc1Yi4uZjFjZmE0
NGM3Mjc4MzRiZDEwYmE3N2U3OTMzZTkwZjg5OWY4MGE3YSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL2d0ay9kb2NzL3dlYmtpdDJndGstNC4wLXNlY3Rpb25zLnR4dAor
KysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL2RvY3Mvd2Via2l0Mmd0ay00LjAt
c2VjdGlvbnMudHh0CkBAIC04MDQsNiArODA0LDI1IEBAIFdlYktpdFVzZXJNZWRpYVBlcm1pc3Np
b25SZXF1ZXN0UHJpdmF0ZQogd2Via2l0X3VzZXJfbWVkaWFfcGVybWlzc2lvbl9yZXF1ZXN0X2dl
dF90eXBlCiA8L1NFQ1RJT04+CiAKKzxTRUNUSU9OPgorPEZJTEU+V2ViS2l0TWVkaWFLZXlTeXN0
ZW1QZXJtaXNzaW9uUmVxdWVzdDwvRklMRT4KK1dlYktpdE1lZGlhS2V5U3lzdGVtUGVybWlzc2lv
blJlcXVlc3QKK3dlYmtpdF9tZWRpYV9rZXlfc3lzdGVtX3Blcm1pc3Npb25fZ2V0X25hbWUKKwor
PFNVQlNFQ1RJT04gU3RhbmRhcmQ+CitXZWJLaXRNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1
ZXN0Q2xhc3MKK1dFQktJVF9UWVBFX01FRElBX0tFWV9TWVNURU1fUEVSTUlTU0lPTl9SRVFVRVNU
CitXRUJLSVRfTUVESUFfS0VZX1NZU1RFTV9QRVJNSVNTSU9OX1JFUVVFU1QKK1dFQktJVF9JU19N
RURJQV9LRVlfU1lTVEVNX1BFUk1JU1NJT05fUkVRVUVTVAorV0VCS0lUX01FRElBX0tFWV9TWVNU
RU1fUEVSTUlTU0lPTl9SRVFVRVNUX0NMQVNTCitXRUJLSVRfSVNfTUVESUFfS0VZX1NZU1RFTV9Q
RVJNSVNTSU9OX1JFUVVFU1RfQ0xBU1MKK1dFQktJVF9NRURJQV9LRVlfU1lTVEVNX1BFUk1JU1NJ
T05fUkVRVUVTVF9HRVRfQ0xBU1MKKworPFNVQlNFQ1RJT04gUHJpdmF0ZT4KK1dlYktpdE1lZGlh
S2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RQcml2YXRlCit3ZWJraXRfbWVkaWFfa2V5X3N5c3Rl
bV9wZXJtaXNzaW9uX3JlcXVlc3RfZ2V0X3R5cGUKKzwvU0VDVElPTj4KKwogPFNFQ1RJT04+CiA8
RklMRT5XZWJLaXROb3RpZmljYXRpb248L0ZJTEU+CiBXZWJLaXROb3RpZmljYXRpb24KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvZG9jcy93ZWJraXQyZ3RrLWRv
Y3Muc2dtbCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvZG9jcy93ZWJraXQyZ3Rr
LWRvY3Muc2dtbAppbmRleCBkOGFjODIzMzMyZjI5NDYyOWY4NzUyMzBkNjJkNjcyYmRkMjlkZjM5
Li40MTFlZTY0ZDgzMzMzZjA1MjMwNmM1Yjk5ZDA3M2JiNDI3OTc4YTY1IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL2RvY3Mvd2Via2l0Mmd0ay1kb2NzLnNnbWwK
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0ay9kb2NzL3dlYmtpdDJndGstZG9j
cy5zZ21sCkBAIC0yNCw2ICsyNCw3IEBACiAgICAgPHhpOmluY2x1ZGUgaHJlZj0ieG1sL1dlYktp
dFBlcm1pc3Npb25SZXF1ZXN0LnhtbCIvPgogICAgIDx4aTppbmNsdWRlIGhyZWY9InhtbC9XZWJL
aXRHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0LnhtbCIvPgogICAgIDx4aTppbmNsdWRlIGhy
ZWY9InhtbC9XZWJLaXRJbnN0YWxsTWlzc2luZ01lZGlhUGx1Z2luc1Blcm1pc3Npb25SZXF1ZXN0
LnhtbCIvPgorICAgIDx4aTppbmNsdWRlIGhyZWY9InhtbC9XZWJLaXRNZWRpYUtleVN5c3RlbVBl
cm1pc3Npb25SZXF1ZXN0LnhtbCIvPgogICAgIDx4aTppbmNsdWRlIGhyZWY9InhtbC9XZWJLaXRO
YXZpZ2F0aW9uQWN0aW9uLnhtbCIvPgogICAgIDx4aTppbmNsdWRlIGhyZWY9InhtbC9XZWJLaXRV
c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdC54bWwiLz4KICAgICA8eGk6aW5jbHVkZSBocmVmPSJ4
bWwvV2ViS2l0RGV2aWNlSW5mb1Blcm1pc3Npb25SZXF1ZXN0LnhtbCIvPgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0ay93ZWJraXQyLmggYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvZ3RrL3dlYmtpdDIuaAppbmRleCBjMzU4MTE4MzYwYTM4YzdiNDYyMjI3
YWE0YWI4Mzg4YmQ3OTQyYzNlLi5lY2JlNDMzZWQ4ODgzNTNiMWU2MDEzOTQzYjQ0NjM4MzVjMzU4
MmQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL3dlYmtpdDIu
aAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL3dlYmtpdDIuaApAQCAtMzIs
NiArMzIsNyBAQAogI2luY2x1ZGUgPHdlYmtpdDIvV2ViS2l0QXV0b21hdGlvblNlc3Npb24uaD4K
ICNpbmNsdWRlIDx3ZWJraXQyL1dlYktpdEJhY2tGb3J3YXJkTGlzdC5oPgogI2luY2x1ZGUgPHdl
YmtpdDIvV2ViS2l0QmFja0ZvcndhcmRMaXN0SXRlbS5oPgorI2luY2x1ZGUgPHdlYmtpdDIvV2Vi
S2l0Q29sb3JDaG9vc2VyUmVxdWVzdC5oPgogI2luY2x1ZGUgPHdlYmtpdDIvV2ViS2l0Q29udGV4
dE1lbnUuaD4KICNpbmNsdWRlIDx3ZWJraXQyL1dlYktpdENvbnRleHRNZW51QWN0aW9ucy5oPgog
I2luY2x1ZGUgPHdlYmtpdDIvV2ViS2l0Q29udGV4dE1lbnVJdGVtLmg+CkBAIC00NSw3ICs0Niw2
IEBACiAjaW5jbHVkZSA8d2Via2l0Mi9XZWJLaXRFbnVtVHlwZXMuaD4KICNpbmNsdWRlIDx3ZWJr
aXQyL1dlYktpdEVycm9yLmg+CiAjaW5jbHVkZSA8d2Via2l0Mi9XZWJLaXRGYXZpY29uRGF0YWJh
c2UuaD4KLSNpbmNsdWRlIDx3ZWJraXQyL1dlYktpdENvbG9yQ2hvb3NlclJlcXVlc3QuaD4KICNp
bmNsdWRlIDx3ZWJraXQyL1dlYktpdEZpbGVDaG9vc2VyUmVxdWVzdC5oPgogI2luY2x1ZGUgPHdl
YmtpdDIvV2ViS2l0RmluZENvbnRyb2xsZXIuaD4KICNpbmNsdWRlIDx3ZWJraXQyL1dlYktpdEZv
cm1TdWJtaXNzaW9uUmVxdWVzdC5oPgpAQCAtNTUsNiArNTUsNyBAQAogI2luY2x1ZGUgPHdlYmtp
dDIvV2ViS2l0SW5wdXRNZXRob2RDb250ZXh0Lmg+CiAjaW5jbHVkZSA8d2Via2l0Mi9XZWJLaXRJ
bnN0YWxsTWlzc2luZ01lZGlhUGx1Z2luc1Blcm1pc3Npb25SZXF1ZXN0Lmg+CiAjaW5jbHVkZSA8
d2Via2l0Mi9XZWJLaXRKYXZhc2NyaXB0UmVzdWx0Lmg+CisjaW5jbHVkZSA8d2Via2l0Mi9XZWJL
aXRNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0Lmg+CiAjaW5jbHVkZSA8d2Via2l0Mi9X
ZWJLaXRNaW1lSW5mby5oPgogI2luY2x1ZGUgPHdlYmtpdDIvV2ViS2l0TmF2aWdhdGlvbkFjdGlv
bi5oPgogI2luY2x1ZGUgPHdlYmtpdDIvV2ViS2l0TmF2aWdhdGlvblBvbGljeURlY2lzaW9uLmg+
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvd3BlL1dlYktpdE1lZGlh
S2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3QuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS93cGUvV2ViS2l0TWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdC5oCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjljODk4YWYxNjQ3MGRjYTE4ODUyNjk2ODI2OGFmOWZkYmMzNWIxM2YKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvd3BlL1dlYktpdE1lZGlhS2V5U3lzdGVt
UGVybWlzc2lvblJlcXVlc3QuaApAQCAtMCwwICsxLDY3IEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDIxIElnYWxpYSBTLkwuCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7
IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0
ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVi
bGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogdmVyc2lv
biAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9u
LgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0
IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2
ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiBMaWJyYXJ5IEdlbmVy
YWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhh
dmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNl
bnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElC
LiAgSWYgbm90LCB3cml0ZSB0bworICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5j
LiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAqIEJvc3RvbiwgTUEgMDIxMTAt
MTMwMSwgVVNBLgorICovCisKKyNpZiAhZGVmaW5lZChfX1dFQktJVDJfSF9JTlNJREVfXykgJiYg
IWRlZmluZWQoV0VCS0lUMl9DT01QSUxBVElPTikKKyNlcnJvciAiT25seSA8d2Via2l0Mi93ZWJr
aXQyLmg+IGNhbiBiZSBpbmNsdWRlZCBkaXJlY3RseS4iCisjZW5kaWYKKworI2lmbmRlZiBXZWJL
aXRNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0X2gKKyNkZWZpbmUgV2ViS2l0TWVkaWFL
ZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdF9oCisKKyNpbmNsdWRlIDxnbGliLW9iamVjdC5oPgor
I2luY2x1ZGUgPHdwZS9XZWJLaXREZWZpbmVzLmg+CisKK0dfQkVHSU5fREVDTFMKKworI2RlZmlu
ZSBXRUJLSVRfVFlQRV9NRURJQV9LRVlfU1lTVEVNX1BFUk1JU1NJT05fUkVRVUVTVCAgICAgICAg
ICAgICh3ZWJraXRfbWVkaWFfa2V5X3N5c3RlbV9wZXJtaXNzaW9uX3JlcXVlc3RfZ2V0X3R5cGUo
KSkKKyNkZWZpbmUgV0VCS0lUX01FRElBX0tFWV9TWVNURU1fUEVSTUlTU0lPTl9SRVFVRVNUKG9i
aikgICAgICAgICAgICAoR19UWVBFX0NIRUNLX0lOU1RBTkNFX0NBU1QoKG9iaiksIFdFQktJVF9U
WVBFX01FRElBX0tFWV9TWVNURU1fUEVSTUlTU0lPTl9SRVFVRVNULCBXZWJLaXRNZWRpYUtleVN5
c3RlbVBlcm1pc3Npb25SZXF1ZXN0KSkKKyNkZWZpbmUgV0VCS0lUX01FRElBX0tFWV9TWVNURU1f
UEVSTUlTU0lPTl9SRVFVRVNUX0NMQVNTKGtsYXNzKSAgICAoR19UWVBFX0NIRUNLX0NMQVNTX0NB
U1QoKGtsYXNzKSwgIFdFQktJVF9UWVBFX01FRElBX0tFWV9TWVNURU1fUEVSTUlTU0lPTl9SRVFV
RVNULCBXZWJLaXRNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0Q2xhc3MpKQorI2RlZmlu
ZSBXRUJLSVRfSVNfTUVESUFfS0VZX1NZU1RFTV9QRVJNSVNTSU9OX1JFUVVFU1Qob2JqKSAgICAg
ICAgIChHX1RZUEVfQ0hFQ0tfSU5TVEFOQ0VfVFlQRSgob2JqKSwgV0VCS0lUX1RZUEVfTUVESUFf
S0VZX1NZU1RFTV9QRVJNSVNTSU9OX1JFUVVFU1QpKQorI2RlZmluZSBXRUJLSVRfSVNfTUVESUFf
S0VZX1NZU1RFTV9QRVJNSVNTSU9OX1JFUVVFU1RfQ0xBU1Moa2xhc3MpIChHX1RZUEVfQ0hFQ0tf
Q0xBU1NfVFlQRSgoa2xhc3MpLCAgV0VCS0lUX1RZUEVfTUVESUFfS0VZX1NZU1RFTV9QRVJNSVNT
SU9OX1JFUVVFU1QpKQorI2RlZmluZSBXRUJLSVRfTUVESUFfS0VZX1NZU1RFTV9QRVJNSVNTSU9O
X1JFUVVFU1RfR0VUX0NMQVNTKG9iaikgIChHX1RZUEVfSU5TVEFOQ0VfR0VUX0NMQVNTKChvYmop
LCAgV0VCS0lUX1RZUEVfTUVESUFfS0VZX1NZU1RFTV9QRVJNSVNTSU9OX1JFUVVFU1QsIFdlYktp
dE1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RDbGFzcykpCisKK3R5cGVkZWYgc3RydWN0
IF9XZWJLaXRNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0ICAgICAgICBXZWJLaXRNZWRp
YUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0OwordHlwZWRlZiBzdHJ1Y3QgX1dlYktpdE1lZGlh
S2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RDbGFzcyAgIFdlYktpdE1lZGlhS2V5U3lzdGVtUGVy
bWlzc2lvblJlcXVlc3RDbGFzczsKK3R5cGVkZWYgc3RydWN0IF9XZWJLaXRNZWRpYUtleVN5c3Rl
bVBlcm1pc3Npb25SZXF1ZXN0UHJpdmF0ZSBXZWJLaXRNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25S
ZXF1ZXN0UHJpdmF0ZTsKKworc3RydWN0IF9XZWJLaXRNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25S
ZXF1ZXN0IHsKKyAgICBHT2JqZWN0IHBhcmVudDsKKworICAgIC8qPCBwcml2YXRlID4qLworICAg
IFdlYktpdE1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RQcml2YXRlICpwcml2OworfTsK
Kworc3RydWN0IF9XZWJLaXRNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0Q2xhc3Mgewor
ICAgIEdPYmplY3RDbGFzcyBwYXJlbnRfY2xhc3M7CisKKyAgICB2b2lkICgqX3dlYmtpdF9yZXNl
cnZlZDApICh2b2lkKTsKKyAgICB2b2lkICgqX3dlYmtpdF9yZXNlcnZlZDEpICh2b2lkKTsKKyAg
ICB2b2lkICgqX3dlYmtpdF9yZXNlcnZlZDIpICh2b2lkKTsKKyAgICB2b2lkICgqX3dlYmtpdF9y
ZXNlcnZlZDMpICh2b2lkKTsKK307CisKK1dFQktJVF9BUEkgR1R5cGUKK3dlYmtpdF9tZWRpYV9r
ZXlfc3lzdGVtX3Blcm1pc3Npb25fcmVxdWVzdF9nZXRfdHlwZSAodm9pZCk7CisKK1dFQktJVF9B
UEkgY29uc3QgZ2NoYXIqCit3ZWJraXRfbWVkaWFfa2V5X3N5c3RlbV9wZXJtaXNzaW9uX2dldF9u
YW1lIChXZWJLaXRNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0ICpyZXF1ZXN0KTsKKwor
R19FTkRfREVDTFMKKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvd3BlL2RvY3Mvd3BlLTEuMC1zZWN0aW9ucy50eHQgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvd3BlL2RvY3Mvd3BlLTEuMC1zZWN0aW9ucy50eHQKaW5kZXggMGVlMjUwZTU2MzM4
Y2RhNzMzMmQ3MDUwODU4MmE1OWE3YWQyMWM4MC4uODI1ZDUxMDBiNmE2OWFjZjVhN2EyMDk1Mzgz
NzZkMmM4NTJkYmFjOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL3dw
ZS9kb2NzL3dwZS0xLjAtc2VjdGlvbnMudHh0CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS93cGUvZG9jcy93cGUtMS4wLXNlY3Rpb25zLnR4dApAQCAtODA4LDYgKzgwOCwyNSBAQCBX
ZWJLaXRVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByaXZhdGUKIHdlYmtpdF91c2VyX21lZGlh
X3Blcm1pc3Npb25fcmVxdWVzdF9nZXRfdHlwZQogPC9TRUNUSU9OPgogCis8U0VDVElPTj4KKzxG
SUxFPldlYktpdE1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3Q8L0ZJTEU+CitXZWJLaXRN
ZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0Cit3ZWJraXRfbWVkaWFfa2V5X3N5c3RlbV9w
ZXJtaXNzaW9uX2dldF9uYW1lCisKKzxTVUJTRUNUSU9OIFN0YW5kYXJkPgorV2ViS2l0TWVkaWFL
ZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdENsYXNzCitXRUJLSVRfVFlQRV9NRURJQV9LRVlfU1lT
VEVNX1BFUk1JU1NJT05fUkVRVUVTVAorV0VCS0lUX01FRElBX0tFWV9TWVNURU1fUEVSTUlTU0lP
Tl9SRVFVRVNUCitXRUJLSVRfSVNfTUVESUFfS0VZX1NZU1RFTV9QRVJNSVNTSU9OX1JFUVVFU1QK
K1dFQktJVF9NRURJQV9LRVlfU1lTVEVNX1BFUk1JU1NJT05fUkVRVUVTVF9DTEFTUworV0VCS0lU
X0lTX01FRElBX0tFWV9TWVNURU1fUEVSTUlTU0lPTl9SRVFVRVNUX0NMQVNTCitXRUJLSVRfTUVE
SUFfS0VZX1NZU1RFTV9QRVJNSVNTSU9OX1JFUVVFU1RfR0VUX0NMQVNTCisKKzxTVUJTRUNUSU9O
IFByaXZhdGU+CitXZWJLaXRNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0UHJpdmF0ZQor
d2Via2l0X21lZGlhX2tleV9zeXN0ZW1fcGVybWlzc2lvbl9yZXF1ZXN0X2dldF90eXBlCis8L1NF
Q1RJT04+CisKIDxTRUNUSU9OPgogPEZJTEU+V2ViS2l0Tm90aWZpY2F0aW9uPC9GSUxFPgogV2Vi
S2l0Tm90aWZpY2F0aW9uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
d3BlL2RvY3Mvd3BlLWRvY3Muc2dtbCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS93cGUv
ZG9jcy93cGUtZG9jcy5zZ21sCmluZGV4IDA5YWY0ZmM5YmI0ZDVmYjU1OTZhMTc2NTgxNzMyYmMw
ZGMyZTMzMWIuLjhlMjU3ZjAyZjExZmViZWNkMmE1NjczYjhlODcwNmQ1ZWM2YzY4MzkgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS93cGUvZG9jcy93cGUtZG9jcy5zZ21s
CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS93cGUvZG9jcy93cGUtZG9jcy5zZ21s
CkBAIC0yNSw2ICsyNSw3IEBACiAgICAgPHhpOmluY2x1ZGUgaHJlZj0ieG1sL1dlYktpdFBlcm1p
c3Npb25SZXF1ZXN0LnhtbCIvPgogICAgIDx4aTppbmNsdWRlIGhyZWY9InhtbC9XZWJLaXRHZW9s
b2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0LnhtbCIvPgogICAgIDx4aTppbmNsdWRlIGhyZWY9Inht
bC9XZWJLaXRJbnN0YWxsTWlzc2luZ01lZGlhUGx1Z2luc1Blcm1pc3Npb25SZXF1ZXN0LnhtbCIv
PgorICAgIDx4aTppbmNsdWRlIGhyZWY9InhtbC9XZWJLaXRNZWRpYUtleVN5c3RlbVBlcm1pc3Np
b25SZXF1ZXN0LnhtbCIvPgogICAgIDx4aTppbmNsdWRlIGhyZWY9InhtbC9XZWJLaXROYXZpZ2F0
aW9uQWN0aW9uLnhtbCIvPgogICAgIDx4aTppbmNsdWRlIGhyZWY9InhtbC9XZWJLaXRVc2VyTWVk
aWFQZXJtaXNzaW9uUmVxdWVzdC54bWwiLz4KICAgICA8eGk6aW5jbHVkZSBocmVmPSJ4bWwvV2Vi
S2l0UG9saWN5RGVjaXNpb24ueG1sIi8+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9NZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0LmggYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9NZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0LmgKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNGFm
YzM1ZDAxNzcyZDU4OTdjNzdlYWMwMTA3YmM5YmU3NGI0NjI4YQotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL01lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3Qu
aApAQCAtMCwwICsxLDc2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIElnYWxpYSBTLkwu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAiQVBJT2JqZWN0LmgiCisjaW5j
bHVkZSA8V2ViQ29yZS9DbGllbnRPcmlnaW4uaD4KKyNpbmNsdWRlIDx3dGYvQ29tcGxldGlvbkhh
bmRsZXIuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIE1lZGlhS2V5U3lzdGVtUGVy
bWlzc2lvblJlcXVlc3QgOiBwdWJsaWMgUmVmQ291bnRlZDxNZWRpYUtleVN5c3RlbVBlcm1pc3Np
b25SZXF1ZXN0PiB7CitwdWJsaWM6CisgICAgc3RhdGljIFJlZjxNZWRpYUtleVN5c3RlbVBlcm1p
c3Npb25SZXF1ZXN0PiBjcmVhdGUoY29uc3QgU3RyaW5nJiBrZXlTeXN0ZW0sIENvbXBsZXRpb25I
YW5kbGVyPHZvaWQoYm9vbCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCisgICAgeworICAgICAgICBy
ZXR1cm4gYWRvcHRSZWYoKm5ldyBNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0KGtleVN5
c3RlbSwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpKTsKKyAgICB9CisKKyAgICB2b2lkIGNv
bXBsZXRlKGJvb2wgc3VjY2VzcykKKyAgICB7CisgICAgICAgIGF1dG8gY29tcGxldGlvbkhhbmRs
ZXIgPSBzdGQ6OmV4Y2hhbmdlKG1fY29tcGxldGlvbkhhbmRsZXIsIHsgfSk7CisgICAgICAgIGNv
bXBsZXRpb25IYW5kbGVyKHN1Y2Nlc3MpOworICAgIH0KKworICAgIGNvbnN0IFN0cmluZyYga2V5
U3lzdGVtKCkgY29uc3QgeyByZXR1cm4gbV9rZXlTeXN0ZW07IH0KKworcHJpdmF0ZToKKyAgICBN
ZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0KGNvbnN0IFN0cmluZyYga2V5U3lzdGVtLCBD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQorICAgICAg
ICA6IG1fa2V5U3lzdGVtKGtleVN5c3RlbSkKKyAgICAgICAgLCBtX2NvbXBsZXRpb25IYW5kbGVy
KFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKQorICAgIHsgfQorCisgICAgU3RyaW5nIG1fa2V5
U3lzdGVtOworICAgIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+IG1fY29tcGxldGlvbkhh
bmRsZXI7Cit9OworCitjbGFzcyBNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25DYWxsYmFjayA6IHB1
YmxpYyBBUEk6Ok9iamVjdEltcGw8QVBJOjpPYmplY3Q6OlR5cGU6Ok1lZGlhS2V5U3lzdGVtUGVy
bWlzc2lvbkNhbGxiYWNrPiB7CitwdWJsaWM6CisgICAgc3RhdGljIFJlZjxNZWRpYUtleVN5c3Rl
bVBlcm1pc3Npb25DYWxsYmFjaz4gY3JlYXRlKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+
JiYgY29tcGxldGlvbkhhbmRsZXIpCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5l
dyBNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25DYWxsYmFjayhXVEZNb3ZlKGNvbXBsZXRpb25IYW5k
bGVyKSkpOworICAgIH0KKworICAgIHZvaWQgY29tcGxldGUoYm9vbCBncmFudGVkKSB7IG1fY29t
cGxldGlvbkhhbmRsZXIoZ3JhbnRlZCk7IH0KKworcHJpdmF0ZToKKyAgICBNZWRpYUtleVN5c3Rl
bVBlcm1pc3Npb25DYWxsYmFjayhDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmIGNvbXBs
ZXRpb25IYW5kbGVyKQorICAgICAgICA6IG1fY29tcGxldGlvbkhhbmRsZXIoV1RGTW92ZShjb21w
bGV0aW9uSGFuZGxlcikpCisgICAgeyB9CisKKyAgICBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJv
b2wpPiBtX2NvbXBsZXRpb25IYW5kbGVyOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9NZWRpYUtleVN5c3RlbVBlcm1pc3Np
b25SZXF1ZXN0TWFuYWdlclByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL01lZGlh
S2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuY3BwCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmJi
M2U0NTJkNTgzNTE5OGUyYmI1YWVmMjMyNDRhNWZkZWNmZWQwMDcKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9NZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0
TWFuYWdlclByb3h5LmNwcApAQCAtMCwwICsxLDEyNCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAyMSBJZ2FsaWEgUy5MLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVk
ZSAiTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5oIgorCisjaW5j
bHVkZSAiQVBJU2VjdXJpdHlPcmlnaW4uaCIKKyNpbmNsdWRlICJBUElVSUNsaWVudC5oIgorI2lu
Y2x1ZGUgIkxvZ2dpbmcuaCIKKyNpbmNsdWRlICJXZWJBdXRvbWF0aW9uU2Vzc2lvbi5oIgorI2lu
Y2x1ZGUgIldlYlBhZ2VNZXNzYWdlcy5oIgorI2luY2x1ZGUgIldlYlBhZ2VQcm94eS5oIgorI2lu
Y2x1ZGUgIldlYlByb2Nlc3MuaCIKKyNpbmNsdWRlICJXZWJQcm9jZXNzUG9vbC5oIgorI2luY2x1
ZGUgIldlYlByb2Nlc3NQcm94eS5oIgorI2luY2x1ZGUgIldlYnNpdGVEYXRhU3RvcmUuaCIKKyNp
bmNsdWRlIDxXZWJDb3JlL01lZGlhS2V5U3lzdGVtUmVxdWVzdC5oPgorI2luY2x1ZGUgPFdlYkNv
cmUvU2VjdXJpdHlPcmlnaW5EYXRhLmg+CisjaW5jbHVkZSA8d3RmL1Njb3BlLmg+CisKK25hbWVz
cGFjZSBXZWJLaXQgewordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisKK01lZGlhS2V5U3lzdGVt
UGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6Ok1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJl
cXVlc3RNYW5hZ2VyUHJveHkoV2ViUGFnZVByb3h5JiBwYWdlKQorICAgIDogbV9wYWdlKHBhZ2Up
CisjaWYgIVJFTEVBU0VfTE9HX0RJU0FCTEVECisgICAgLCBtX2xvZ2dlcihwYWdlLmxvZ2dlcigp
KQorICAgICwgbV9sb2dJZGVudGlmaWVyKHVuaXF1ZUxvZ0lkZW50aWZpZXIoKSkKKyNlbmRpZgor
eworfQorCitNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5Ojp+TWVk
aWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eSgpCit7CisgICAgaW52YWxp
ZGF0ZVBlbmRpbmdSZXF1ZXN0cygpOworfQorCit2b2lkIE1lZGlhS2V5U3lzdGVtUGVybWlzc2lv
blJlcXVlc3RNYW5hZ2VyUHJveHk6OmludmFsaWRhdGVQZW5kaW5nUmVxdWVzdHMoKQoreworICAg
IGZvciAoYXV0byYgcmVxdWVzdCA6IG1fcGVuZGluZ1JlcXVlc3RzLnZhbHVlcygpKQorICAgICAg
ICByZXF1ZXN0LT5pbnZhbGlkYXRlKCk7CisKKyAgICBtX3BlbmRpbmdSZXF1ZXN0cy5jbGVhcigp
OworfQorCit2b2lkIE1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6
OmRlbnlSZXF1ZXN0KE1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RQcm94eSYgcmVxdWVz
dCwgY29uc3QgU3RyaW5nJiBtZXNzYWdlKQoreworICAgIGlmICghbV9wYWdlLmhhc1J1bm5pbmdQ
cm9jZXNzKCkpCisgICAgICAgIHJldHVybjsKKworICAgIEFMV0FZU19MT0coTE9HSURFTlRJRklF
UiwgcmVxdWVzdC5tZWRpYUtleVN5c3RlbUlEKCksICIsIHJlYXNvbjogIiwgbWVzc2FnZSk7CisK
KyNpZiBFTkFCTEUoRU5DUllQVEVEX01FRElBKQorICAgIG1fcGFnZS5zZW5kKE1lc3NhZ2VzOjpX
ZWJQYWdlOjpNZWRpYUtleVN5c3RlbVdhc0RlbmllZChyZXF1ZXN0Lm1lZGlhS2V5U3lzdGVtSUQo
KSwgbWVzc2FnZSkpOworI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0obWVzc2FnZSk7CisjZW5kaWYK
K30KKwordm9pZCBNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5Ojpn
cmFudFJlcXVlc3QoTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdFByb3h5JiByZXF1ZXN0
KQoreworICAgIGlmICghbV9wYWdlLmhhc1J1bm5pbmdQcm9jZXNzKCkpCisgICAgICAgIHJldHVy
bjsKKworI2lmIEVOQUJMRShFTkNSWVBURURfTUVESUEpCisgICAgQUxXQVlTX0xPRyhMT0dJREVO
VElGSUVSLCByZXF1ZXN0Lm1lZGlhS2V5U3lzdGVtSUQoKSwgIiwga2V5U3lzdGVtOiAiLCByZXF1
ZXN0LmtleVN5c3RlbSgpKTsKKworICAgIG1fcGFnZS5zZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2Fn
ZXM6OldlYlBhZ2U6Ok1lZGlhS2V5U3lzdGVtV2FzR3JhbnRlZCB7IHJlcXVlc3QubWVkaWFLZXlT
eXN0ZW1JRCgpIH0sIFtdIHsgfSk7CisjZWxzZQorICAgIFVOVVNFRF9QQVJBTShyZXF1ZXN0KTsK
KyNlbmRpZgorfQorCitSZWY8TWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdFByb3h5PiBN
ZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5OjpjcmVhdGVSZXF1ZXN0
Rm9yRnJhbWUodWludDY0X3QgbWVkaWFLZXlTeXN0ZW1JRCwgRnJhbWVJZGVudGlmaWVyIGZyYW1l
SUQsIFJlZjxTZWN1cml0eU9yaWdpbj4mJiB0b3BMZXZlbERvY3VtZW50T3JpZ2luLCBjb25zdCBT
dHJpbmcmIGtleVN5c3RlbSkKK3sKKyNpZiBFTkFCTEUoRU5DUllQVEVEX01FRElBKQorICAgIEFM
V0FZU19MT0coTE9HSURFTlRJRklFUiwgbWVkaWFLZXlTeXN0ZW1JRCk7CisKKyAgICBhdXRvIHJl
cXVlc3QgPSBNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0UHJveHk6OmNyZWF0ZSgqdGhp
cywgbWVkaWFLZXlTeXN0ZW1JRCwgbV9wYWdlLm1haW5GcmFtZSgpLT5mcmFtZUlEKCksIGZyYW1l
SUQsIFdURk1vdmUodG9wTGV2ZWxEb2N1bWVudE9yaWdpbiksIGtleVN5c3RlbSk7CisgICAgbV9w
ZW5kaW5nUmVxdWVzdHMuYWRkKG1lZGlhS2V5U3lzdGVtSUQsIHJlcXVlc3QucHRyKCkpOworICAg
IHJldHVybiByZXF1ZXN0OworI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0obWVkaWFLZXlTeXN0ZW1J
RCk7CisgICAgVU5VU0VEX1BBUkFNKGZyYW1lSUQpOworICAgIFVOVVNFRF9QQVJBTSh0b3BMZXZl
bERvY3VtZW50T3JpZ2luKTsKKyAgICBVTlVTRURfUEFSQU0oa2V5U3lzdGVtKTsKKyNlbmRpZgor
fQorCisjaWYgIVJFTEVBU0VfTE9HX0RJU0FCTEVECitXVEZMb2dDaGFubmVsJiBNZWRpYUtleVN5
c3RlbVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5Ojpsb2dDaGFubmVsKCkgY29uc3QKK3sK
KyAgICByZXR1cm4gV2ViS2l0MkxvZ0VNRTsKK30KKworY29uc3QgTG9nZ2VyJiBNZWRpYUtleVN5
c3RlbVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5Ojpsb2dnZXIoKSBjb25zdAoreworICAg
IHJldHVybiBtX3BhZ2UubG9nZ2VyKCk7Cit9CisjZW5kaWYKKworfSAvLyBuYW1lc3BhY2UgV2Vi
S2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9NZWRpYUtleVN5c3RlbVBl
cm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9N
ZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmgKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
YjAzYTYyODQ4MTFiZWYyZDIyMTMxYjdiZTEwZTg5M2MwNjcxODZmYwotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL01lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVl
c3RNYW5hZ2VyUHJveHkuaApAQCAtMCwwICsxLDg1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDIxIElnYWxpYSBTLkwuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAiTWVk
aWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdFByb3h5LmgiCisjaW5jbHVkZSA8V2ViQ29yZS9T
ZWN1cml0eU9yaWdpbi5oPgorI2luY2x1ZGUgPHd0Zi9Db21wbGV0aW9uSGFuZGxlci5oPgorI2lu
Y2x1ZGUgPHd0Zi9EZXF1ZS5oPgorI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CisjaW5jbHVkZSA8
d3RmL0xvZ2dlckhlbHBlci5oPgorI2luY2x1ZGUgPHd0Zi9SdW5Mb29wLmg+CisjaW5jbHVkZSA8
d3RmL1NlY29uZHMuaD4KKyNpbmNsdWRlIDx3dGYvV2Vha1B0ci5oPgorCituYW1lc3BhY2UgV2Vi
Q29yZSB7CitjbGFzcyBTZWN1cml0eU9yaWdpbjsKK307CisKK25hbWVzcGFjZSBXZWJLaXQgewor
CitjbGFzcyBXZWJQYWdlUHJveHk7CisKK2NsYXNzIE1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJl
cXVlc3RNYW5hZ2VyUHJveHkKKyAgICA6IHB1YmxpYyBDYW5NYWtlV2Vha1B0cjxNZWRpYUtleVN5
c3RlbVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5PgorI2lmICFSRUxFQVNFX0xPR19ESVNB
QkxFRAorICAgICwgcHJpdmF0ZSBMb2dnZXJIZWxwZXIKKyNlbmRpZgoreworICAgIFdURl9NQUtF
X0ZBU1RfQUxMT0NBVEVEOworcHVibGljOgorICAgIGV4cGxpY2l0IE1lZGlhS2V5U3lzdGVtUGVy
bWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkoV2ViUGFnZVByb3h5Jik7CisgICAgfk1lZGlhS2V5
U3lzdGVtUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkoKTsKKworICAgIFdlYlBhZ2VQcm94
eSYgcGFnZSgpIGNvbnN0IHsgcmV0dXJuIG1fcGFnZTsgfQorCisgICAgdm9pZCBpbnZhbGlkYXRl
UGVuZGluZ1JlcXVlc3RzKCk7CisKKyAgICBSZWY8TWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVx
dWVzdFByb3h5PiBjcmVhdGVSZXF1ZXN0Rm9yRnJhbWUodWludDY0X3QgdXNlck1lZGlhSUQsIFdl
YkNvcmU6OkZyYW1lSWRlbnRpZmllciwgUmVmPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luPiYmIHRv
cExldmVsRG9jdW1lbnRPcmlnaW4sIGNvbnN0IFN0cmluZyYga2V5U3lzdGVtKTsKKworICAgIHZv
aWQgZ3JhbnRSZXF1ZXN0KE1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RQcm94eSYpOwor
ICAgIHZvaWQgZGVueVJlcXVlc3QoTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdFByb3h5
JiwgY29uc3QgU3RyaW5nJiBtZXNzYWdlID0geyB9KTsKKworcHJpdmF0ZToKKyNpZiAhUkVMRUFT
RV9MT0dfRElTQUJMRUQKKyAgICBjb25zdCBMb2dnZXImIGxvZ2dlcigpIGNvbnN0IGZpbmFsOwor
ICAgIGNvbnN0IHZvaWQqIGxvZ0lkZW50aWZpZXIoKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX2xv
Z0lkZW50aWZpZXI7IH0KKyAgICBjb25zdCBjaGFyKiBsb2dDbGFzc05hbWUoKSBjb25zdCBvdmVy
cmlkZSB7IHJldHVybiAiTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94
eSI7IH0KKyAgICBXVEZMb2dDaGFubmVsJiBsb2dDaGFubmVsKCkgY29uc3QgZmluYWw7CisjZW5k
aWYKKworICAgIFdlYlBhZ2VQcm94eSYgbV9wYWdlOworCisgICAgSGFzaE1hcDx1aW50NjRfdCwg
UmVmUHRyPE1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RQcm94eT4+IG1fcGVuZGluZ1Jl
cXVlc3RzOworICAgIEhhc2hTZXQ8U3RyaW5nPiBtX3ZhbGlkQXV0aG9yaXphdGlvblRva2VuczsK
KworI2lmICFSRUxFQVNFX0xPR19ESVNBQkxFRAorICAgIFJlZjxjb25zdCBMb2dnZXI+IG1fbG9n
Z2VyOworICAgIGNvbnN0IHZvaWQqIG1fbG9nSWRlbnRpZmllcjsKKyNlbmRpZgorfTsKKworfSAv
LyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9N
ZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0UHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdFByb3h5LmNwcApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi5kMmI5MTU1ZDE1ODU2YTM0MDJiY2ZjMWY1NTI2OTIwZTAzNzkwYmRjCi0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9u
UmVxdWVzdFByb3h5LmNwcApAQCAtMCwwICsxLDgyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDIxIElnYWxpYSBTLkwuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRl
ICJNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0UHJveHkuaCIKKworI2luY2x1ZGUgIk1l
ZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuaCIKKyNpbmNsdWRlIDxX
ZWJDb3JlL1NlY3VyaXR5T3JpZ2luLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9TZWN1cml0eU9yaWdp
bkRhdGEuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdIYXNoLmg+CisKK25hbWVzcGFjZSBX
ZWJLaXQgewordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisKK01lZGlhS2V5U3lzdGVtUGVybWlz
c2lvblJlcXVlc3RQcm94eTo6TWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdFByb3h5KE1l
ZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkmIG1hbmFnZXIsIHVpbnQ2
NF90IG1lZGlhS2V5U3lzdGVtSUQsIEZyYW1lSWRlbnRpZmllciBtYWluRnJhbWVJRCwgRnJhbWVJ
ZGVudGlmaWVyIGZyYW1lSUQsIFJlZjxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbj4mJiB0b3BMZXZl
bERvY3VtZW50T3JpZ2luLCBjb25zdCBTdHJpbmcmIGtleVN5c3RlbSkKKyAgICA6IG1fbWFuYWdl
cigmbWFuYWdlcikKKyAgICAsIG1fbWVkaWFLZXlTeXN0ZW1JRChtZWRpYUtleVN5c3RlbUlEKQor
ICAgICwgbV9tYWluRnJhbWVJRChtYWluRnJhbWVJRCkKKyAgICAsIG1fZnJhbWVJRChmcmFtZUlE
KQorICAgICwgbV90b3BMZXZlbERvY3VtZW50U2VjdXJpdHlPcmlnaW4oV1RGTW92ZSh0b3BMZXZl
bERvY3VtZW50T3JpZ2luKSkKKyAgICAsIG1fa2V5U3lzdGVtKGtleVN5c3RlbSkKK3sKK30KKwor
dm9pZCBNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0UHJveHk6OmFsbG93KCkKK3sKKyAg
ICBBU1NFUlQobV9tYW5hZ2VyKTsKKyAgICBpZiAoIW1fbWFuYWdlcikKKyAgICAgICAgcmV0dXJu
OworCisgICAgbV9tYW5hZ2VyLT5ncmFudFJlcXVlc3QoKnRoaXMpOworICAgIGludmFsaWRhdGUo
KTsKK30KKwordm9pZCBNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0UHJveHk6OmRlbnko
KQoreworICAgIGlmICghbV9tYW5hZ2VyKQorICAgICAgICByZXR1cm47CisKKyAgICBtX21hbmFn
ZXItPmRlbnlSZXF1ZXN0KCp0aGlzKTsKKyAgICBpbnZhbGlkYXRlKCk7Cit9CisKK3ZvaWQgTWVk
aWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdFByb3h5OjppbnZhbGlkYXRlKCkKK3sKKyAgICBt
X21hbmFnZXIgPSBudWxscHRyOworfQorCit2b2lkIE1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJl
cXVlc3RQcm94eTo6ZG9EZWZhdWx0QWN0aW9uKCkKK3sKKyNpZiBQTEFURk9STShDT0NPQSkKKyAg
ICAvLyBCYWNrd2FyZCBjb21wYXRpYmlsaXR5IGZvciBwbGF0Zm9ybXMgbm90IHlldCBzdXBwb3J0
aW5nIHRoZSBNZWRpYUtleVN5c3RlbSBwZXJtaXNzaW9uIHJlcXVlc3QKKyAgICAvLyBpbiB0aGVp
ciBBUElVSUNsaWVudC4KKyAgICBhbGxvdygpOworI2Vsc2UKKyAgICBkZW55KCk7CisjZW5kaWYK
K30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9NZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0UHJveHkuaCBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL01lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RQcm94eS5oCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLmE2NGQxYzYyMDU3ZDU2OTcyMDU2ODZlODcxYWVjMjgzNjc1MDVkYzkKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9NZWRpYUtleVN5c3RlbVBlcm1p
c3Npb25SZXF1ZXN0UHJveHkuaApAQCAtMCwwICsxLDc2IEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDIxIElnYWxpYSBTLkwuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAi
QVBJT2JqZWN0LmgiCisjaW5jbHVkZSA8V2ViQ29yZS9GcmFtZUlkZW50aWZpZXIuaD4KKyNpbmNs
dWRlIDx3dGYvVmVjdG9yLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CisKK25h
bWVzcGFjZSBXZWJDb3JlIHsKK2NsYXNzIFNlY3VyaXR5T3JpZ2luOworfQorCituYW1lc3BhY2Ug
V2ViS2l0IHsKKworY2xhc3MgTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQ
cm94eTsKKworY2xhc3MgTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdFByb3h5IDogcHVi
bGljIFJlZkNvdW50ZWQ8TWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdFByb3h5PiB7Citw
dWJsaWM6CisgICAgc3RhdGljIFJlZjxNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0UHJv
eHk+IGNyZWF0ZShNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5JiBt
YW5hZ2VyLCB1aW50NjRfdCBtZWRpYUtleVN5c3RlbUlELCBXZWJDb3JlOjpGcmFtZUlkZW50aWZp
ZXIgbWFpbkZyYW1lSUQsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBSZWY8V2Vi
Q29yZTo6U2VjdXJpdHlPcmlnaW4+JiYgdG9wTGV2ZWxEb2N1bWVudE9yaWdpbiwgY29uc3QgU3Ry
aW5nJiBrZXlTeXN0ZW0pCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBNZWRp
YUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0UHJveHkobWFuYWdlciwgbWVkaWFLZXlTeXN0ZW1J
RCwgbWFpbkZyYW1lSUQsIGZyYW1lSUQsIFdURk1vdmUodG9wTGV2ZWxEb2N1bWVudE9yaWdpbiks
IGtleVN5c3RlbSkpOworICAgIH0KKworICAgIHZvaWQgYWxsb3coKTsKKyAgICB2b2lkIGRlbnko
KTsKKworICAgIHZvaWQgaW52YWxpZGF0ZSgpOworICAgIGJvb2wgaXNQZW5kaW5nKCkgY29uc3Qg
eyByZXR1cm4gbV9tYW5hZ2VyOyB9CisKKyAgICB1aW50NjRfdCBtZWRpYUtleVN5c3RlbUlEKCkg
Y29uc3QgeyByZXR1cm4gbV9tZWRpYUtleVN5c3RlbUlEOyB9CisgICAgV2ViQ29yZTo6RnJhbWVJ
ZGVudGlmaWVyIG1haW5GcmFtZUlEKCkgY29uc3QgeyByZXR1cm4gbV9tYWluRnJhbWVJRDsgfQor
ICAgIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlEKCkgY29uc3QgeyByZXR1cm4gbV9m
cmFtZUlEOyB9CisKKyAgICBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbiYgdG9wTGV2ZWxEb2N1bWVu
dFNlY3VyaXR5T3JpZ2luKCkgeyByZXR1cm4gbV90b3BMZXZlbERvY3VtZW50U2VjdXJpdHlPcmln
aW4uZ2V0KCk7IH0KKyAgICBjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbiYgdG9wTGV2ZWxE
b2N1bWVudFNlY3VyaXR5T3JpZ2luKCkgY29uc3QgeyByZXR1cm4gbV90b3BMZXZlbERvY3VtZW50
U2VjdXJpdHlPcmlnaW4uZ2V0KCk7IH0KKworICAgIGNvbnN0IFN0cmluZyYga2V5U3lzdGVtKCkg
Y29uc3QgeyByZXR1cm4gbV9rZXlTeXN0ZW07IH0KKworICAgIHZvaWQgZG9EZWZhdWx0QWN0aW9u
KCk7CisKK3ByaXZhdGU6CisgICAgTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdFByb3h5
KE1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkmLCB1aW50NjRfdCBt
ZWRpYUtleVN5c3RlbUlELCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgbWFpbkZyYW1lSUQsIFdl
YkNvcmU6OkZyYW1lSWRlbnRpZmllciwgUmVmPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luPiYmIHRv
cExldmVsRG9jdW1lbnRPcmlnaW4sIGNvbnN0IFN0cmluZyYga2V5U3lzdGVtKTsKKworICAgIE1l
ZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkqIG1fbWFuYWdlcjsKKyAg
ICB1aW50NjRfdCBtX21lZGlhS2V5U3lzdGVtSUQ7CisgICAgV2ViQ29yZTo6RnJhbWVJZGVudGlm
aWVyIG1fbWFpbkZyYW1lSUQ7CisgICAgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIG1fZnJhbWVJ
RDsKKyAgICBSZWY8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4+IG1fdG9wTGV2ZWxEb2N1bWVudFNl
Y3VyaXR5T3JpZ2luOworICAgIFN0cmluZyBtX2tleVN5c3RlbTsKK307CisKK30gLy8gbmFtZXNw
YWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3BlZWNoUmVj
b2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1NwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZS5jcHAKaW5k
ZXggYjlkOTMyMDk2MzlkZDNiZjhmMjc0ODM1MjRjZjQwNmQ2M2VjNjBhZC4uNDM4NGQ0OWExN2M5
ZWYwM2MzMGI4OWY3MjRiNWI1Mzk3MjE0ZDk3YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlLmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0
aW1lTWVkaWFTb3VyY2UuY3BwCkBAIC0zMyw2ICszMyw4IEBACiAKICNpZiBQTEFURk9STShDT0NP
QSkKICNpbmNsdWRlICJTaGFyZWRSaW5nQnVmZmVyU3RvcmFnZS5oIgorI2luY2x1ZGUgPFdlYkNv
cmUvQ0FSaW5nQnVmZmVyLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9XZWJBdWRpb0J1ZmZlckxpc3Qu
aD4KICNlbmRpZgogCiBuYW1lc3BhY2UgV2ViS2l0IHsKQEAgLTQ3LDcgKzQ5LDcgQEAgU3BlZWNo
UmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjpTcGVlY2hSZWNvZ25pdGlvblJl
bW90ZVJlYWx0aW1lTWVkaWEKICAgICAsIG1faWRlbnRpZmllcihpZGVudGlmaWVyKQogICAgICwg
bV9tYW5hZ2VyKG1ha2VXZWFrUHRyKG1hbmFnZXIpKQogI2lmIFBMQVRGT1JNKENPQ09BKQotICAg
ICwgbV9yaW5nQnVmZmVyKG1ha2VVbmlxdWU8Q0FSaW5nQnVmZmVyPigpKQorICAgICwgbV9yaW5n
QnVmZmVyKG1ha2VVbmlxdWU8V2ViQ29yZTo6Q0FSaW5nQnVmZmVyPigpKQogI2VuZGlmCiB7CiAg
ICAgbV9tYW5hZ2VyLT5hZGRTb3VyY2UoKnRoaXMsIGNhcHR1cmVEZXZpY2UpOwpAQCAtNzcsOCAr
NzksOCBAQCB2b2lkIFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6
c2V0U3RvcmFnZShjb25zdCBTaGFyZWRNZW1vcnk6OgogewogICAgIG1fZGVzY3JpcHRpb24gPSBk
ZXNjcmlwdGlvbjsKIAotICAgIG1fcmluZ0J1ZmZlciA9IG1ha2VVbmlxdWU8Q0FSaW5nQnVmZmVy
PihtYWtlVW5pcXVlUmVmPFJlYWRPbmx5U2hhcmVkUmluZ0J1ZmZlclN0b3JhZ2U+KGhhbmRsZSks
IGRlc2NyaXB0aW9uLCBudW1iZXJPZkZyYW1lcyk7Ci0gICAgbV9idWZmZXIgPSBtYWtlVW5pcXVl
PFdlYkF1ZGlvQnVmZmVyTGlzdD4oZGVzY3JpcHRpb24sIG51bWJlck9mRnJhbWVzKTsKKyAgICBt
X3JpbmdCdWZmZXIgPSBtYWtlVW5pcXVlPFdlYkNvcmU6OkNBUmluZ0J1ZmZlcj4obWFrZVVuaXF1
ZVJlZjxSZWFkT25seVNoYXJlZFJpbmdCdWZmZXJTdG9yYWdlPihoYW5kbGUpLCBkZXNjcmlwdGlv
biwgbnVtYmVyT2ZGcmFtZXMpOworICAgIG1fYnVmZmVyID0gbWFrZVVuaXF1ZTxXZWJDb3JlOjpX
ZWJBdWRpb0J1ZmZlckxpc3Q+KGRlc2NyaXB0aW9uLCBudW1iZXJPZkZyYW1lcyk7CiB9CiAKICNl
bmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRp
b25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9T
cGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UuaAppbmRleCA4YjUxMjUw
ZjVjYWQ3ZjNmNWNlNzhmNThkNjc2MzcxOTBjZjhiZjkxLi5hMWUyN2FkNWZkNzAzOGVkMmVkZWVi
MzJjMTViNTA5MTBkYWQ1MWUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9T
cGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3Vy
Y2UuaApAQCAtMjcsNiArMjcsNyBAQAogCiAjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKIAorI2lu
Y2x1ZGUgIlNoYXJlZE1lbW9yeS5oIgogI2luY2x1ZGUgPFdlYkNvcmUvUmVhbHRpbWVNZWRpYVNv
dXJjZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIu
aD4KIApAQCAtNDMsNyArNDQsOCBAQCBjbGFzcyBXZWJBdWRpb0J1ZmZlckxpc3Q7CiB9CiAKIG5h
bWVzcGFjZSBXZWJLaXQgewotCitjbGFzcyBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1l
TWVkaWFTb3VyY2VNYW5hZ2VyOworICAgIAogY2xhc3MgU3BlZWNoUmVjb2duaXRpb25SZW1vdGVS
ZWFsdGltZU1lZGlhU291cmNlIDogcHVibGljIFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2Ug
ewogcHVibGljOgogICAgIHN0YXRpYyBSZWY8V2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZT4g
Y3JlYXRlKFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIm
LCBjb25zdCBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2ViUGFnZVByb3h5LmNwcAppbmRleCBmMTJjODQ2ZTg4ZGJkMDYwYmE0NWE1MzRkOGI2ZjYyYWYy
OTE5MTEwLi5hYjY4YTNiZmYwYzc5N2JiYmY3ZThhYzgxOGM4MzdhMmUwYzU1OGRmIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKQEAgLTgyOTEsNiArODI5MSwyNyBA
QCB2b2lkIFdlYlBhZ2VQcm94eTo6Y2xlYXJVc2VyTWVkaWFTdGF0ZSgpCiAjZW5kaWYKIH0KIAor
dm9pZCBXZWJQYWdlUHJveHk6OnJlcXVlc3RNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25Gb3JGcmFt
ZSh1aW50NjRfdCBtZWRpYUtleVN5c3RlbUlELCBGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgY29u
c3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiB0b3BMZXZlbERvY3VtZW50T3JpZ2luRGF0
YSwgY29uc3QgU3RyaW5nJiBrZXlTeXN0ZW0pCit7CisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkK
KyAgICBNRVNTQUdFX0NIRUNLKG1fcHJvY2VzcywgbV9wcm9jZXNzLT53ZWJGcmFtZShmcmFtZUlE
KSk7CisKKyAgICBhdXRvIG9yaWdpbiA9IEFQSTo6U2VjdXJpdHlPcmlnaW46OmNyZWF0ZSh0b3BM
ZXZlbERvY3VtZW50T3JpZ2luRGF0YS5zZWN1cml0eU9yaWdpbigpKTsKKyAgICBhdXRvIHJlcXVl
c3QgPSBtZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcigpLmNyZWF0ZVJlcXVl
c3RGb3JGcmFtZShtZWRpYUtleVN5c3RlbUlELCBmcmFtZUlELCB0b3BMZXZlbERvY3VtZW50T3Jp
Z2luRGF0YS5zZWN1cml0eU9yaWdpbigpLCBrZXlTeXN0ZW0pOworICAgIG1fdWlDbGllbnQtPmRl
Y2lkZVBvbGljeUZvck1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3QoKnRoaXMsIG9yaWdp
biwga2V5U3lzdGVtLCBbcmVxdWVzdCA9IFdURk1vdmUocmVxdWVzdCldKGJvb2wgYWxsb3dlZCkg
eworICAgICAgICBpZiAoYWxsb3dlZCkKKyAgICAgICAgICAgIHJlcXVlc3QtPmFsbG93KCk7Cisg
ICAgICAgIGVsc2UKKyAgICAgICAgICAgIHJlcXVlc3QtPmRlbnkoKTsKKyAgICB9KTsKKyNlbHNl
CisgICAgVU5VU0VEX1BBUkFNKG1lZGlhS2V5U3lzdGVtSUQpOworICAgIFVOVVNFRF9QQVJBTShm
cmFtZUlEKTsKKyAgICBVTlVTRURfUEFSQU0odG9wTGV2ZWxEb2N1bWVudE9yaWdpbkRhdGEpOwor
ICAgIFVOVVNFRF9QQVJBTShrZXlTeXN0ZW0pOworI2VuZGlmCit9CisKICNpZiBFTkFCTEUoREVW
SUNFX09SSUVOVEFUSU9OKQogdm9pZCBXZWJQYWdlUHJveHk6OnNob3VsZEFsbG93RGV2aWNlT3Jp
ZW50YXRpb25BbmRNb3Rpb25BY2Nlc3MoRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIEZyYW1lSW5m
b0RhdGEmJiBmcmFtZUluZm8sIGJvb2wgbWF5UHJvbXB0LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KERldmljZU9yaWVudGF0aW9uT3JNb3Rpb25QZXJtaXNzaW9uU3RhdGUpPiYmIGNvbXBsZXRpb25I
YW5kbGVyKQogewpAQCAtODMwMSw2ICs4MzIyLDE3IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpzaG91
bGRBbGxvd0RldmljZU9yaWVudGF0aW9uQW5kTW90aW9uQWNjZXNzKEZyYW1lSWRlbnRpZmllciBm
CiB9CiAjZW5kaWYKIAorI2lmIEVOQUJMRShFTkNSWVBURURfTUVESUEpCitNZWRpYUtleVN5c3Rl
bVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5JiBXZWJQYWdlUHJveHk6Om1lZGlhS2V5U3lz
dGVtUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyKCkKK3sKKyAgICBpZiAobV9tZWRpYUtleVN5c3Rl
bVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcikKKyAgICAgICAgcmV0dXJuICptX21lZGlhS2V5U3lz
dGVtUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyOworCisgICAgbV9tZWRpYUtleVN5c3RlbVBlcm1p
c3Npb25SZXF1ZXN0TWFuYWdlciA9IG1ha2VVbmlxdWU8TWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9u
UmVxdWVzdE1hbmFnZXJQcm94eT4oKnRoaXMpOworICAgIHJldHVybiAqbV9tZWRpYUtleVN5c3Rl
bVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcjsKK30KKyNlbmRpZgorCiB2b2lkIFdlYlBhZ2VQcm94
eTo6cmVxdWVzdE5vdGlmaWNhdGlvblBlcm1pc3Npb24odWludDY0X3QgcmVxdWVzdElELCBjb25z
dCBTdHJpbmcmIG9yaWdpblN0cmluZykKIHsKICAgICBpZiAoIWlzUmVxdWVzdElEVmFsaWQocmVx
dWVzdElEKSkKQEAgLTEwNDE1LDYgKzEwNDQ3LDExIEBAIHZvaWQgV2ViUGFnZVByb3h5OjpyZXF1
ZXN0U3BlZWNoUmVjb2duaXRpb25QZXJtaXNzaW9uQnlEZWZhdWx0QWN0aW9uKGNvbnN0IFdlYkNv
CiAgICAgbV9zcGVlY2hSZWNvZ25pdGlvblBlcm1pc3Npb25NYW5hZ2VyLT5kZWNpZGVCeURlZmF1
bHRBY3Rpb24ob3JpZ2luLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CiB9CiAKK3ZvaWQg
V2ViUGFnZVByb3h5OjpyZXF1ZXN0TWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uQnlEZWZhdWx0QWN0
aW9uKGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luJiBvcmlnaW4sIENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoYm9vbCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCit7CisgICAgY29tcGxldGlvbkhh
bmRsZXIoZmFsc2UpOworfQorCiAjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKIAogV2ViQ29yZTo6
Q2FwdHVyZVNvdXJjZU9yRXJyb3IgV2ViUGFnZVByb3h5OjpjcmVhdGVSZWFsdGltZU1lZGlhU291
cmNlRm9yU3BlZWNoUmVjb2duaXRpb24oKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvV2ViUGFnZVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJv
eHkuaAppbmRleCA2YTk5MWRjMDVlZTRjMzYyZTc5MDVlYWU3ODMxNmMxYjY0MjQ3ZDEzLi4xZGRm
ZmFjNmJhNTBkM2RkNTAxMmExY2U3ZTQ2NDE3YTZiNDU4MWU2IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJQYWdlUHJveHkuaApAQCAtNDAsNiArNDAsNyBAQAogI2luY2x1ZGUgIkdlb2xvY2F0
aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuaCIKICNpbmNsdWRlICJIaWRkZW5QYWdl
VGhyb3R0bGluZ0F1dG9JbmNyZWFzZXNDb3VudGVyLmgiCiAjaW5jbHVkZSAiTGF5ZXJUcmVlQ29u
dGV4dC5oIgorI2luY2x1ZGUgIk1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RNYW5hZ2Vy
UHJveHkuaCIKICNpbmNsdWRlICJNZWRpYVBsYXliYWNrU3RhdGUuaCIKICNpbmNsdWRlICJNZXNz
YWdlU2VuZGVyLmgiCiAjaW5jbHVkZSAiTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5h
Z2VyUHJveHkuaCIKQEAgLTcyLDggKzczLDggQEAKICNpbmNsdWRlICJXZWJQYWdlUHJveHlJZGVu
dGlmaWVyLmgiCiAjaW5jbHVkZSAiV2ViUGFnZVByb3h5TWVzc2FnZXNSZXBsaWVzLmgiCiAjaW5j
bHVkZSAiV2ViUGF5bWVudENvb3JkaW5hdG9yUHJveHkuaCIKLSNpbmNsdWRlICJXZWJQcmVmZXJl
bmNlcy5oIgogI2luY2x1ZGUgIldlYlBvcHVwTWVudVByb3h5LmgiCisjaW5jbHVkZSAiV2ViUHJl
ZmVyZW5jZXMuaCIKICNpbmNsdWRlICJXZWJVbmRvU3RlcElELmgiCiAjaW5jbHVkZSAiV2Vic2l0
ZVBvbGljaWVzRGF0YS5oIgogI2luY2x1ZGUgPFdlYkNvcmUvQWN0aXZpdHlTdGF0ZS5oPgpAQCAt
MTgxOSw2ICsxODIwLDggQEAgcHVibGljOgogICAgIHZvaWQgcmVxdWVzdFNwZWVjaFJlY29nbml0
aW9uUGVybWlzc2lvbihjb25zdCBTdHJpbmcmIGxhbmcsIGNvbnN0IFdlYkNvcmU6OkNsaWVudE9y
aWdpbiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoT3B0aW9uYWw8V2ViQ29yZTo6U3BlZWNoUmVj
b2duaXRpb25FcnJvcj4mJik+JiYpOwogICAgIHZvaWQgcmVxdWVzdFNwZWVjaFJlY29nbml0aW9u
UGVybWlzc2lvbkJ5RGVmYXVsdEFjdGlvbihjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbiYs
IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYpOwogCisgICAgdm9pZCByZXF1ZXN0TWVk
aWFLZXlTeXN0ZW1QZXJtaXNzaW9uQnlEZWZhdWx0QWN0aW9uKGNvbnN0IFdlYkNvcmU6OlNlY3Vy
aXR5T3JpZ2luJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJik7CisKICAgICB2b2lk
IHN5bmNJZk1vY2tEZXZpY2VzRW5hYmxlZENoYW5nZWQoKTsKIAogI2lmIEVOQUJMRShBUFBfSElH
SExJR0hUUykKQEAgLTE5OTUsNiArMTk5OCwxMSBAQCBwcml2YXRlOgogICAgIHZvaWQgZW51bWVy
YXRlTWVkaWFEZXZpY2VzRm9yRnJhbWUoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBjb25zdCBX
ZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmIHVzZXJNZWRpYURvY3VtZW50T3JpZ2luRGF0YSwg
Y29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiB0b3BMZXZlbERvY3VtZW50T3JpZ2lu
RGF0YSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChjb25zdCBWZWN0b3I8V2ViQ29yZTo6Q2FwdHVy
ZURldmljZT4mLCBjb25zdCBTdHJpbmcmKT4mJik7CiAgICAgdm9pZCBiZWdpbk1vbml0b3JpbmdD
YXB0dXJlRGV2aWNlcygpOwogCisjaWYgRU5BQkxFKEVOQ1JZUFRFRF9NRURJQSkKKyAgICBNZWRp
YUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5JiBtZWRpYUtleVN5c3RlbVBl
cm1pc3Npb25SZXF1ZXN0TWFuYWdlcigpOworI2VuZGlmCisgICAgdm9pZCByZXF1ZXN0TWVkaWFL
ZXlTeXN0ZW1QZXJtaXNzaW9uRm9yRnJhbWUodWludDY0X3QgbWVkaWFLZXlTeXN0ZW1JRCwgV2Vi
Q29yZTo6RnJhbWVJZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEm
IHRvcExldmVsRG9jdW1lbnRPcmlnaW5JZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmKTsKKwogICAg
IHZvaWQgcnVuTW9kYWwoKTsKICAgICB2b2lkIG5vdGlmeVNjcm9sbGVyVGh1bWJJc1Zpc2libGVJ
blJlY3QoY29uc3QgV2ViQ29yZTo6SW50UmVjdCYpOwogICAgIHZvaWQgcmVjb21tZW5kZWRTY3Jv
bGxiYXJTdHlsZURpZENoYW5nZShpbnQzMl90IG5ld1N0eWxlKTsKQEAgLTI1MDQsNiArMjUxMiwx
MCBAQCBwcml2YXRlOgogICAgIHN0ZDo6dW5pcXVlX3B0cjxVc2VyTWVkaWFQZXJtaXNzaW9uUmVx
dWVzdE1hbmFnZXJQcm94eT4gbV91c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXI7CiAj
ZW5kaWYKIAorI2lmIEVOQUJMRShFTkNSWVBURURfTUVESUEpCisgICAgc3RkOjp1bmlxdWVfcHRy
PE1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk+IG1fbWVkaWFLZXlT
eXN0ZW1QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXI7CisjZW5kaWYKKwogICAgIE9wdGlvblNldDxX
ZWJDb3JlOjpBY3Rpdml0eVN0YXRlOjpGbGFnPiBtX2FjdGl2aXR5U3RhdGU7CiAgICAgYm9vbCBt
X3ZpZXdXYXNFdmVySW5XaW5kb3cgeyBmYWxzZSB9OwogI2lmIFBMQVRGT1JNKE1BQ0NBVEFMWVNU
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3Nh
Z2VzLmluIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmlu
CmluZGV4IGY0MDM0Njk4YTNlY2ViNTZkOTczNWViZGRkN2NkM2M0NGJlOTI2MTEuLjgxMGE2ZTQz
YTAwOTE4MDcxNDEwMzFmNjI1MTBmMGQ4MTdmMGJiOWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4KQEAgLTI4MCw2ICsyODAsMTAgQEAg
bWVzc2FnZXMgLT4gV2ViUGFnZVByb3h5IHsKICAgICBCZWdpbk1vbml0b3JpbmdDYXB0dXJlRGV2
aWNlcygpCiAjZW5kaWYKIAorI2lmIEVOQUJMRShFTkNSWVBURURfTUVESUEpCisgICAgUmVxdWVz
dE1lZGlhS2V5U3lzdGVtUGVybWlzc2lvbkZvckZyYW1lKHVpbnQ2NF90IHVzZXJNZWRpYUlELCBX
ZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgc3RydWN0IFdlYkNvcmU6OlNlY3VyaXR5
T3JpZ2luRGF0YSB0b3BMZXZlbERvY3VtZW50T3JpZ2luSWRlbnRpZmllciwgU3RyaW5nIGtleVN5
c3RlbSkKKyNlbmRpZgorCiAgICAgIyBOb3RpZmljYXRpb24gbWVzc2FnZXMKICAgICBSZXF1ZXN0
Tm90aWZpY2F0aW9uUGVybWlzc2lvbih1aW50NjRfdCByZXF1ZXN0SUQsIFN0cmluZyBvcmlnaW5J
ZGVudGlmaWVyKQogICAgIFNob3dOb3RpZmljYXRpb24oU3RyaW5nIHRpdGxlLCBTdHJpbmcgYm9k
eSwgU3RyaW5nIGljb25VUkwsIFN0cmluZyB0YWcsIFN0cmluZyBsYW5nLCBlbnVtOnVpbnQ4X3Qg
V2ViQ29yZTo6Tm90aWZpY2F0aW9uRGlyZWN0aW9uIGRpciwgU3RyaW5nIG9yaWdpbklkZW50aWZp
ZXIsIHVpbnQ2NF90IG5vdGlmaWNhdGlvbklEKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9X
ZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggNWFiYTk2ZjM2NTc2ZDI4YTkyMzMxMjIyZGNh
Njc1MmNlZGM5MjQzNi4uNzA4NTA0MTdkMTVlYzJjNzljODA0NDM2NGUzOTk0MmYxYWFlODlhYSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBA
IC0xNTIwLDYgKzE1MjAsMTIgQEAKIAkJOTlFNzE0QzUxQzEyNEEwNDAwNjY1QjNBIC8qIF9XS0F1
dG9tYXRpb25EZWxlZ2F0ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gOTlFNzE0QzExQzEyNDlFNjAwNjY1QjNBIC8qIF9XS0F1dG9tYXRpb25EZWxlZ2F0
ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTk5
RTcxODlBMjFGNzlEOUUwMDU1RTk3NSAvKiBfV0tUb3VjaEV2ZW50R2VuZXJhdG9yLm1tIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTlFNzE4OTYyMUY3OUQ5
RDAwNTVFOTc1IC8qIF9XS1RvdWNoRXZlbnRHZW5lcmF0b3IubW0gKi87IH07CiAJCTk5RTcxODlD
MjFGNzlEOUUwMDU1RTk3NSAvKiBfV0tUb3VjaEV2ZW50R2VuZXJhdG9yLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5OUU3MTg5ODIxRjc5RDlFMDA1NUU5
NzUgLyogX1dLVG91Y2hFdmVudEdlbmVyYXRvci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07CisJCTlBQ0MwN0FEMjVDODEzMkQwMERDNjM4NiAvKiBNZWRp
YUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOUFDQzA3QUMyNUM4MTMyRDAwREM2Mzg2IC8qIE1l
ZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyLmggKi87IH07CisJCTlBQ0MwN0Ix
MjVDODE1RDgwMERDNjM4NiAvKiBNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0LmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5QUNDMDdCMDI1Qzgx
NUQ4MDBEQzYzODYgLyogTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdC5oICovOyB9Owor
CQk5QUNDMDdCMzI1QzgxNUYzMDBEQzYzODYgLyogTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVx
dWVzdE1hbmFnZXJQcm94eS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gOUFDQzA3QjIyNUM4MTVGMzAwREM2Mzg2IC8qIE1lZGlhS2V5U3lzdGVtUGVybWlz
c2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuaCAqLzsgfTsKKwkJOUFDQzA3QjUyNUM4MTYwQzAwREM2
Mzg2IC8qIE1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RQcm94eS5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOUFDQzA3QjQyNUM4MTYwQjAwREM2
Mzg2IC8qIE1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RQcm94eS5oICovOyB9OworCQk5
QUNDMDdCNzI1QzgxRDM0MDBEQzYzODYgLyogV2ViTWVkaWFLZXlTeXN0ZW1DbGllbnQuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDlBQ0MwN0I2MjVDODFE
MzMwMERDNjM4NiAvKiBXZWJNZWRpYUtleVN5c3RlbUNsaWVudC5oICovOyB9OworCQk5QUNDMDdC
OTI1QzgyMTg0MDBEQzYzODYgLyogV0tNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25DYWxsYmFjay5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOUFDQzA3Qjgy
NUM4MjE4MzAwREM2Mzg2IC8qIFdLTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uQ2FsbGJhY2suaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk5QjAyRTBD
QjIzNUVCOTUzMDA0MDQ0QjIgLyogX1dLVGV4dE1hbmlwdWxhdGlvbkRlbGVnYXRlLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5QjAyRTBDOTIzNUVCNjJE
MDA0MDQ0QjIgLyogX1dLVGV4dE1hbmlwdWxhdGlvbkRlbGVnYXRlLmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJOUIwMkUwQ0MyMzVFQjk1NzAwNDA0
NEIyIC8qIF9XS1RleHRNYW5pcHVsYXRpb25JdGVtLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5QjAyRTBDQTIzNUVCODg0MDA0MDQ0QjIgLyogX1dLVGV4
dE1hbmlwdWxhdGlvbkl0ZW0uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRl
LCApOyB9OyB9OwogCQk5QjAyRTBENzIzNUZDOTRGMDA0MDQ0QjIgLyogX1dLVGV4dE1hbmlwdWxh
dGlvblRva2VuLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA5QjAyRTBDRDIzNUVCOTY3MDA0MDQ0QjIgLyogX1dLVGV4dE1hbmlwdWxhdGlvblRva2VuLmgg
Ki87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTQ4Njcs
NiArNDg3MywxMiBAQAogCQk5OUU3MTg5NjIxRjc5RDlEMDA1NUU5NzUgLyogX1dLVG91Y2hFdmVu
dEdlbmVyYXRvci5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IF9X
S1RvdWNoRXZlbnRHZW5lcmF0b3IubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTk5
RTcxODk4MjFGNzlEOUUwMDU1RTk3NSAvKiBfV0tUb3VjaEV2ZW50R2VuZXJhdG9yLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IF9XS1RvdWNoRXZlbnRHZW5lcmF0b3IuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTlGNjQyRDIxRkFCRTM3ODAwOTYyMUU5IC8qIENv
b3JkaW5hdGVTeXN0ZW0uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ29vcmRp
bmF0ZVN5c3RlbS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5QUNDMDdBQzI1Qzgx
MzJEMDBEQzYzODYgLyogTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9u
UmVxdWVzdE1hbmFnZXIuaDsgcGF0aCA9IEVuY3J5cHRlZE1lZGlhL01lZGlhS2V5U3lzdGVtUGVy
bWlzc2lvblJlcXVlc3RNYW5hZ2VyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTlB
Q0MwN0IwMjVDODE1RDgwMERDNjM4NiAvKiBNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1lZGlhS2V5U3lzdGVtUGVybWlz
c2lvblJlcXVlc3QuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOUFDQzA3QjIyNUM4
MTVGMzAwREM2Mzg2IC8qIE1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJv
eHkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTWVkaWFLZXlTeXN0ZW1QZXJt
aXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQk5QUNDMDdCNDI1QzgxNjBCMDBEQzYzODYgLyogTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVx
dWVzdFByb3h5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1lZGlhS2V5U3lz
dGVtUGVybWlzc2lvblJlcXVlc3RQcm94eS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQk5QUNDMDdCNjI1QzgxRDMzMDBEQzYzODYgLyogV2ViTWVkaWFLZXlTeXN0ZW1DbGllbnQuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViTWVkaWFLZXlTeXN0ZW1DbGllbnQu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOUFDQzA3QjgyNUM4MjE4MzAwREM2Mzg2
IC8qIFdLTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uQ2FsbGJhY2suaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gV0tNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25DYWxsYmFjay5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5QjAyRTBDOTIzNUVCNjJEMDA0MDQ0QjIgLyog
X1dLVGV4dE1hbmlwdWxhdGlvbkRlbGVnYXRlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IF9XS1RleHRNYW5p
cHVsYXRpb25EZWxlZ2F0ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5QjAyRTBD
QTIzNUVCODg0MDA0MDQ0QjIgLyogX1dLVGV4dE1hbmlwdWxhdGlvbkl0ZW0uaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gX1dLVGV4dE1hbmlwdWxhdGlvbkl0ZW0uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJOUIwMkUwQ0QyMzVFQjk2NzAwNDA0NEIyIC8qIF9XS1RleHRNYW5pcHVsYXRpb25Ub2tl
bi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBfV0tUZXh0TWFuaXB1bGF0aW9uVG9rZW4uaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTkzMjksNiArOTM0MSwxNCBAQAogCQkJcGF0aCA9IGNvY29h
OwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKIAkJfTsKKwkJOUFDQzA3QTkyNUM4MTJFNzAw
REM2Mzg2IC8qIEVuY3J5cHRlZE1lZGlhICovID0geworCQkJaXNhID0gUEJYR3JvdXA7CisJCQlj
aGlsZHJlbiA9ICgKKwkJCQk5QUNDMDdBQzI1QzgxMzJEMDBEQzYzODYgLyogTWVkaWFLZXlTeXN0
ZW1QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIuaCAqLywKKwkJCSk7CisJCQluYW1lID0gRW5jcnlw
dGVkTWVkaWE7CisJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOworCQl9OwogCQlBMTU3OTlBQzI1
ODQ0MzMxMDA1MjgyMzYgLyogTWVkaWFGb3JtYXRSZWFkZXIgKi8gPSB7CiAJCQlpc2EgPSBQQlhH
cm91cDsKIAkJCWNoaWxkcmVuID0gKApAQCAtOTQ0Nyw2ICs5NDY3LDcgQEAKIAkJCQk0MUQxMjlE
ODFGM0QxMDE0MDBEMTVFNDcgLyogQ2FjaGUgKi8sCiAJCQkJN0M2RTcwRjgxOEIyRDQ3RTAwRjI0
RTJFIC8qIGNvY29hICovLAogCQkJCTUxMkE5NzU0MTgwREY5MjcwMDM5QTE0OSAvKiBEYXRhYmFz
ZXMgKi8sCisJCQkJOUFDQzA3QTkyNUM4MTJFNzAwREM2Mzg2IC8qIEVuY3J5cHRlZE1lZGlhICov
LAogCQkJCUJDQUNDNDNCMTZCMjRDNUQwMEI2RTA5MiAvKiBFbnRyeVBvaW50ICovLAogCQkJCUUx
NzA4NzZEMTZENkNBNzIwMEY5OTIyNiAvKiBGaWxlQVBJICovLAogCQkJCUNENzNCQTNEMTMxQTJB
MjEwMEVFREVEMiAvKiBGdWxsU2NyZWVuICovLApAQCAtOTUxMiw2ICs5NTMzLDcgQEAKIAkJCQlC
QzAzMkQ2QTEwRjQzNzhEMDA1OEMxNUEgLyogV2ViRnJhbWVMb2FkZXJDbGllbnQuaCAqLywKIAkJ
CQlCQzFCRTFERjEyRDU0QTQxMDAwNEEyMjggLyogV2ViR2VvbG9jYXRpb25DbGllbnQuY3BwICov
LAogCQkJCUJDMUJFMURFMTJENTRBNDEwMDA0QTIyOCAvKiBXZWJHZW9sb2NhdGlvbkNsaWVudC5o
ICovLAorCQkJCTlBQ0MwN0I2MjVDODFEMzMwMERDNjM4NiAvKiBXZWJNZWRpYUtleVN5c3RlbUNs
aWVudC5oICovLAogCQkJCTUxM0ZGQjhFMjAxNDU5QzIwMDI1OTZFQSAvKiBXZWJNZXNzYWdlUG9y
dENoYW5uZWxQcm92aWRlci5jcHAgKi8sCiAJCQkJNTEzRkZCOEYyMDE0NTlDMjAwMjU5NkVBIC8q
IFdlYk1lc3NhZ2VQb3J0Q2hhbm5lbFByb3ZpZGVyLmggKi8sCiAJCQkJMzEwOTk5NzExNDZDNzU5
QjAwMjlERUI5IC8qIFdlYk5vdGlmaWNhdGlvbkNsaWVudC5jcHAgKi8sCkBAIC05NjUxLDYgKzk2
NzMsOSBAQAogCQkJCTVDRUFCQTJCMjMzMzI1MTQwMDc5Nzc5NyAvKiBMZWdhY3lHbG9iYWxTZXR0
aW5ncy5jcHAgKi8sCiAJCQkJNUNFQUJBMkEyMzMzMjQ3NzAwNzk3Nzk3IC8qIExlZ2FjeUdsb2Jh
bFNldHRpbmdzLmggKi8sCiAJCQkJMzE2MDdGMzgxOTYyNzAwMjAwOUI4N0RBIC8qIExlZ2FjeVNl
c3Npb25TdGF0ZUNvZGluZy5oICovLAorCQkJCTlBQ0MwN0IwMjVDODE1RDgwMERDNjM4NiAvKiBN
ZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0LmggKi8sCisJCQkJOUFDQzA3QjIyNUM4MTVG
MzAwREM2Mzg2IC8qIE1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHku
aCAqLywKKwkJCQk5QUNDMDdCNDI1QzgxNjBCMDBEQzYzODYgLyogTWVkaWFLZXlTeXN0ZW1QZXJt
aXNzaW9uUmVxdWVzdFByb3h5LmggKi8sCiAJCQkJOTM0MjU4OTgyNTVCNTM0QjAwNTlFRUREIC8q
IE1lZGlhUGVybWlzc2lvblV0aWxpdGllcy5oICovLAogCQkJCUJDNkVEQUE1MTExMjcxQzYwMEU3
Njc4QiAvKiBQYWdlQ2xpZW50LmggKi8sCiAJCQkJMUFDNzUzNzkxODNBOUZEQTAwNzJDQjE1IC8q
IFBhZ2VMb2FkU3RhdGUuY3BwICovLApAQCAtOTk2Myw2ICs5OTg4LDcgQEAKIAkJCQk1MUE5RTEw
ODEzMTVDRDE4MDA5RTcwMzEgLyogV0tLZXlWYWx1ZVN0b3JhZ2VNYW5hZ2VyLmNwcCAqLywKIAkJ
CQk1MUE5RTEwOTEzMTVDRDE4MDA5RTcwMzEgLyogV0tLZXlWYWx1ZVN0b3JhZ2VNYW5hZ2VyLmgg
Ki8sCiAJCQkJMkQ3OTBBOUUxQUQ3MTY0OTAwQUI5MEIzIC8qIFdLTGF5b3V0TW9kZS5oICovLAor
CQkJCTlBQ0MwN0I4MjVDODIxODMwMERDNjM4NiAvKiBXS01lZGlhS2V5U3lzdGVtUGVybWlzc2lv
bkNhbGxiYWNrLmggKi8sCiAJCQkJNUNBQkRDODQyMkM0MEZDQzAwMUVERThFIC8qIFdLTWVzc2Fn
ZUxpc3RlbmVyLmNwcCAqLywKIAkJCQk1Q0FCREM4NTIyQzQwRkNDMDAxRURFOEUgLyogV0tNZXNz
YWdlTGlzdGVuZXIuaCAqLywKIAkJCQlDMTFFMTY5MzIxMkI4N0M1MDA5ODVGRjYgLyogV0tNb2Nr
RGlzcGxheS5jcHAgKi8sCkBAIC0xMTY4NCw2ICsxMTcxMCwxMCBAQAogCQkJCUJDQzU2Rjc5MTE1
OTk1N0QwMDFDQ0FGOSAvKiBNYWNoUG9ydC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUEyNEI1RjMx
MUY1MzFFODAwQzM4MjY5IC8qIE1hY2hVdGlsaXRpZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCUEx
NTc5OUJFMjU4NDQzMzIwMDUyODIzNiAvKiBNZWRpYUZvcm1hdFJlYWRlci5oIGluIEhlYWRlcnMg
Ki8sCisJCQkJOUFDQzA3QjEyNUM4MTVEODAwREM2Mzg2IC8qIE1lZGlhS2V5U3lzdGVtUGVybWlz
c2lvblJlcXVlc3QuaCBpbiBIZWFkZXJzICovLAorCQkJCTlBQ0MwN0FEMjVDODEzMkQwMERDNjM4
NiAvKiBNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlci5oIGluIEhlYWRlcnMg
Ki8sCisJCQkJOUFDQzA3QjMyNUM4MTVGMzAwREM2Mzg2IC8qIE1lZGlhS2V5U3lzdGVtUGVybWlz
c2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuaCBpbiBIZWFkZXJzICovLAorCQkJCTlBQ0MwN0I1MjVD
ODE2MEMwMERDNjM4NiAvKiBNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0UHJveHkuaCBp
biBIZWFkZXJzICovLAogCQkJCTkzNDI1ODlBMjU1QjUzNUEwMDU5RUVERCAvKiBNZWRpYVBlcm1p
c3Npb25VdGlsaXRpZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTA3RTE5RUZDMjNENDAxRjEwMDk0
RkZCNCAvKiBNZWRpYVBsYXllclByaXZhdGVSZW1vdGVNZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJMDdFMTlFRkQyM0Q0MDFGMTAwOTRGRkI0IC8qIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90
ZU1lc3NhZ2VzUmVwbGllcy5oIGluIEhlYWRlcnMgKi8sCkBAIC0xMTczNyw2ICsxMTc2Nyw3IEBA
CiAJCQkJODM5OTAyMDMxQkU5QTAyQjAwMEYzNjUzIC8qIE5ldHdvcmtMb2FkLmggaW4gSGVhZGVy
cyAqLywKIAkJCQk4M0Q0NTRENzFCRTlEM0M0MDA2QzkzQkQgLyogTmV0d29ya0xvYWRDbGllbnQu
aCBpbiBIZWFkZXJzICovLAogCQkJCTgzOTE0OTY1MUJFQTgzODUwMEQyRDk1MyAvKiBOZXR3b3Jr
TG9hZFBhcmFtZXRlcnMuaCBpbiBIZWFkZXJzICovLAorCQkJCUU0N0ZDOEEwMjVCODMzMUMwMDU0
OTVGQyAvKiBOZXR3b3JrTG9hZFNjaGVkdWxlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTE3OTU1
NkExNjI4NzZGMzAwRkE0M0I2IC8qIE5ldHdvcmtQcm9jZXNzLmggaW4gSGVhZGVycyAqLywKIAkJ
CQk1MTdDRjBFNDE2M0E0ODZDMDBDMjk1MEUgLyogTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uTWVz
c2FnZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTVDMTQyNkVEMUMyM0Y4MDkwMEQ0MTE4MyAvKiBO
ZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oIGluIEhlYWRlcnMgKi8sCkBAIC0xMjEw
MCw3ICsxMjEzMSw2IEBACiAJCQkJOTNBODhCMzMxQkM2RTlDRDAwQUJBNUMyIC8qIFdlYkhpdFRl
c3RSZXN1bHREYXRhLmggaW4gSGVhZGVycyAqLywKIAkJCQlGNDRERkVCMjFFOUU3NTJGMDAzOEQx
OTYgLyogV2ViSWNvblV0aWxpdGllcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTMyNjExNjEyMTQw
NTRGNDAwMDgwNkU3IC8qIFdlYklEQkNvbm5lY3Rpb25Ub0NsaWVudC5oIGluIEhlYWRlcnMgKi8s
Ci0JCQkJRTQ3RkM4QTAyNUI4MzMxQzAwNTQ5NUZDIC8qIE5ldHdvcmtMb2FkU2NoZWR1bGVyLmgg
aW4gSGVhZGVycyAqLywKIAkJCQk1MTQxMjk5NDFDNjQyOEJCMDA1OUU3MTQgLyogV2ViSURCQ29u
bmVjdGlvblRvU2VydmVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk1MTA1MjM3NDFDNzNEMzhCMDA3
OTkzQ0IgLyogV2ViSURCQ29ubmVjdGlvblRvU2VydmVyTWVzc2FnZXMuaCBpbiBIZWFkZXJzICov
LAogCQkJCTkzM0U4MzU1MjNBMDdDMDYwMERFRjI4OSAvKiBXZWJJREJTZXJ2ZXIuaCBpbiBIZWFk
ZXJzICovLApAQCAtMTIxMjYsNiArMTIxNTYsNyBAQAogCQkJCUJDOUJBNTA1MTY5N0M0NTMwMEU0
NDYxNiAvKiBXZWJLaXQySW5pdGlhbGl6ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUE2MjgwQzcx
OTE5OTUwQzAwNkFEOUY5IC8qIFdlYktpdFByaXZhdGUuaCBpbiBIZWFkZXJzICovLAogCQkJCUNE
MDAzQTUzMTlENDlCNUQwMDVBQkNFMCAvKiBXZWJNZWRpYUtleVN0b3JhZ2VNYW5hZ2VyLmggaW4g
SGVhZGVycyAqLywKKwkJCQk5QUNDMDdCNzI1QzgxRDM0MDBEQzYzODYgLyogV2ViTWVkaWFLZXlT
eXN0ZW1DbGllbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTlCNUJFQzI2MjQwMEY0QTkwMDcwQzZF
RiAvKiBXZWJNZWRpYVN0cmF0ZWd5LmggaW4gSGVhZGVycyAqLywKIAkJCQkyRDNFRjQ0MzE5MTc2
NDYzMDAwMzQxODQgLyogV2ViTWVtb3J5UHJlc3N1cmVIYW5kbGVyLmggaW4gSGVhZGVycyAqLywK
IAkJCQk5MDk4NTRFRDEyQkM0RTE4MDAwQUQwODAgLyogV2ViTWVtb3J5U2FtcGxlci5oIGluIEhl
YWRlcnMgKi8sCkBAIC0xMjQzNCw2ICsxMjQ2NSw3IEBACiAJCQkJMkQ3OTBBOUYxQUQ3MTY0OTAw
QUI5MEIzIC8qIFdLTGF5b3V0TW9kZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNUNFOTEyMTQyMjkz
QzI4MDAwNUJFQzc4IC8qIFdLTWFpbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTE1NzlCMjgyNTg0
OTBFNTAwNTI4MjM2IC8qIFdLTWVkaWFGb3JtYXRSZWFkZXIuaCBpbiBIZWFkZXJzICovLAorCQkJ
CTlBQ0MwN0I5MjVDODIxODQwMERDNjM4NiAvKiBXS01lZGlhS2V5U3lzdGVtUGVybWlzc2lvbkNh
bGxiYWNrLmggaW4gSGVhZGVycyAqLywKIAkJCQk0OTkxN0RBNzI1MkQ2NDlFMDA1MDMxM0YgLyog
V0tNZWRpYVBsYXliYWNrU3RhdGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTFBQjQwRUU2MUJGNjc3
RTMwMEJBODFCRSAvKiBXS01lbnVJdGVtSWRlbnRpZmllcnNQcml2YXRlLmggaW4gSGVhZGVycyAq
LywKIAkJCQk1Q0FCREM4NjIyQzQwRkRFMDAxRURFOEUgLyogV0tNZXNzYWdlTGlzdGVuZXIuaCBp
biBIZWFkZXJzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0VuY3J5
cHRlZE1lZGlhL01lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyLmNwcCBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9FbmNyeXB0ZWRNZWRpYS9NZWRpYUtleVN5c3RlbVBlcm1p
c3Npb25SZXF1ZXN0TWFuYWdlci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYTI0OTg4MmQwN2E5OWU3NWQwOTFi
ZmI3MmFlZWM4MzE2NDg1NzczOAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9FbmNyeXB0ZWRNZWRpYS9NZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0TWFu
YWdlci5jcHAKQEAgLTAsMCArMSwxMzIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgSWdh
bGlhIFMuTC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgor
ICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAq
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIk1lZGlh
S2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyLmgiCisKKyNpZiBFTkFCTEUoRU5DUllQ
VEVEX01FRElBKQorCisjaW5jbHVkZSAiTG9nZ2luZy5oIgorI2luY2x1ZGUgIldlYkNvcmVBcmd1
bWVudENvZGVycy5oIgorI2luY2x1ZGUgIldlYkZyYW1lLmgiCisjaW5jbHVkZSAiV2ViUGFnZS5o
IgorI2luY2x1ZGUgIldlYlBhZ2VQcm94eU1lc3NhZ2VzLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9E
b2N1bWVudC5oPgorI2luY2x1ZGUgPFdlYkNvcmUvRnJhbWUuaD4KKyNpbmNsdWRlIDxXZWJDb3Jl
L0ZyYW1lTG9hZGVyLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9TZWN1cml0eU9yaWdpbi5oPgorI2lu
Y2x1ZGUgPFdlYkNvcmUvU2VjdXJpdHlPcmlnaW5EYXRhLmg+CisKK25hbWVzcGFjZSBXZWJLaXQg
ewordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisKK01lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJl
cXVlc3RNYW5hZ2VyOjpNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcihXZWJQ
YWdlJiBwYWdlKQorICAgIDogbV9wYWdlKHBhZ2UpCit7Cit9CisKK3ZvaWQgTWVkaWFLZXlTeXN0
ZW1QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXI6OnN0YXJ0TWVkaWFLZXlTeXN0ZW1SZXF1ZXN0KE1l
ZGlhS2V5U3lzdGVtUmVxdWVzdCYgcmVxdWVzdCkKK3sKKyAgICBEb2N1bWVudCogZG9jdW1lbnQg
PSByZXF1ZXN0LmRvY3VtZW50KCk7CisgICAgRnJhbWUqIGZyYW1lID0gZG9jdW1lbnQgPyBkb2N1
bWVudC0+ZnJhbWUoKSA6IG51bGxwdHI7CisKKyAgICBpZiAoIWZyYW1lIHx8ICFkb2N1bWVudC0+
cGFnZSgpKSB7CisgICAgICAgIHJlcXVlc3QuZGVueShlbXB0eVN0cmluZygpKTsKKyAgICAgICAg
cmV0dXJuOworICAgIH0KKworICAgIGlmIChkb2N1bWVudC0+cGFnZSgpLT5jYW5TdGFydE1lZGlh
KCkpIHsKKyAgICAgICAgc2VuZE1lZGlhS2V5U3lzdGVtUmVxdWVzdChyZXF1ZXN0KTsKKyAgICAg
ICAgcmV0dXJuOworICAgIH0KKworICAgIGF1dG8mIHBlbmRpbmdSZXF1ZXN0cyA9IG1fcGVuZGlu
Z01lZGlhS2V5U3lzdGVtUmVxdWVzdHMuYWRkKGRvY3VtZW50LCBWZWN0b3I8UmVmPE1lZGlhS2V5
U3lzdGVtUmVxdWVzdD4+KCkpLml0ZXJhdG9yLT52YWx1ZTsKKyAgICBwZW5kaW5nUmVxdWVzdHMu
YXBwZW5kKHJlcXVlc3QpOworfQorCit2b2lkIE1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVl
c3RNYW5hZ2VyOjpzZW5kTWVkaWFLZXlTeXN0ZW1SZXF1ZXN0KE1lZGlhS2V5U3lzdGVtUmVxdWVz
dCYgdXNlclJlcXVlc3QpCit7CisgICAgYXV0byogZnJhbWUgPSB1c2VyUmVxdWVzdC5kb2N1bWVu
dCgpID8gdXNlclJlcXVlc3QuZG9jdW1lbnQoKS0+ZnJhbWUoKSA6IG51bGxwdHI7CisgICAgaWYg
KCFmcmFtZSkgeworICAgICAgICB1c2VyUmVxdWVzdC5kZW55KGVtcHR5U3RyaW5nKCkpOworICAg
ICAgICByZXR1cm47CisgICAgfQorCisgICAgbV9vbmdvaW5nTWVkaWFLZXlTeXN0ZW1SZXF1ZXN0
cy5hZGQodXNlclJlcXVlc3QuaWRlbnRpZmllcigpLCBtYWtlUmVmKHVzZXJSZXF1ZXN0KSk7CisK
KyAgICBXZWJGcmFtZSogd2ViRnJhbWUgPSBXZWJGcmFtZTo6ZnJvbUNvcmVGcmFtZSgqZnJhbWUp
OworICAgIEFTU0VSVCh3ZWJGcmFtZSk7CisKKyAgICBhdXRvKiB0b3BMZXZlbERvY3VtZW50T3Jp
Z2luID0gdXNlclJlcXVlc3QudG9wTGV2ZWxEb2N1bWVudE9yaWdpbigpOworICAgIG1fcGFnZS5z
ZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OlJlcXVlc3RNZWRpYUtleVN5c3RlbVBlcm1pc3Np
b25Gb3JGcmFtZSh1c2VyUmVxdWVzdC5pZGVudGlmaWVyKCkudG9VSW50NjQoKSwgd2ViRnJhbWUt
PmZyYW1lSUQoKSwgdG9wTGV2ZWxEb2N1bWVudE9yaWdpbi0+ZGF0YSgpLCB1c2VyUmVxdWVzdC5r
ZXlTeXN0ZW0oKSkpOworfQorCit2b2lkIE1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RN
YW5hZ2VyOjpjYW5jZWxNZWRpYUtleVN5c3RlbVJlcXVlc3QoTWVkaWFLZXlTeXN0ZW1SZXF1ZXN0
JiByZXF1ZXN0KQoreworICAgIGlmIChhdXRvIHJlbW92ZWRSZXF1ZXN0ID0gbV9vbmdvaW5nTWVk
aWFLZXlTeXN0ZW1SZXF1ZXN0cy50YWtlKHJlcXVlc3QuaWRlbnRpZmllcigpKSkKKyAgICAgICAg
cmV0dXJuOworCisgICAgYXV0byogZG9jdW1lbnQgPSByZXF1ZXN0LmRvY3VtZW50KCk7CisgICAg
aWYgKCFkb2N1bWVudCkKKyAgICAgICAgcmV0dXJuOworCisgICAgYXV0byBpdGVyYXRvciA9IG1f
cGVuZGluZ01lZGlhS2V5U3lzdGVtUmVxdWVzdHMuZmluZChkb2N1bWVudCk7CisgICAgaWYgKGl0
ZXJhdG9yID09IG1fcGVuZGluZ01lZGlhS2V5U3lzdGVtUmVxdWVzdHMuZW5kKCkpCisgICAgICAg
IHJldHVybjsKKworICAgIGF1dG8mIHBlbmRpbmdSZXF1ZXN0cyA9IGl0ZXJhdG9yLT52YWx1ZTsK
KyAgICBwZW5kaW5nUmVxdWVzdHMucmVtb3ZlRmlyc3RNYXRjaGluZyhbJnJlcXVlc3RdKGF1dG8m
IGl0ZW0pIHsKKyAgICAgICAgcmV0dXJuICZyZXF1ZXN0ID09IGl0ZW0ucHRyKCk7CisgICAgfSk7
CisKKyAgICBpZiAoIXBlbmRpbmdSZXF1ZXN0cy5pc0VtcHR5KCkpCisgICAgICAgIHJldHVybjsK
KworICAgIG1fcGVuZGluZ01lZGlhS2V5U3lzdGVtUmVxdWVzdHMucmVtb3ZlKGl0ZXJhdG9yKTsK
K30KKwordm9pZCBNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcjo6bWVkaWFL
ZXlTeXN0ZW1XYXNHcmFudGVkKHVpbnQ2NF90IHJlcXVlc3RJRCwgQ29tcGxldGlvbkhhbmRsZXI8
dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQoreworICAgIGF1dG8gcmVxdWVzdCA9IG1fb25n
b2luZ01lZGlhS2V5U3lzdGVtUmVxdWVzdHMudGFrZShtYWtlT2JqZWN0SWRlbnRpZmllcjxNZWRp
YUtleVN5c3RlbVJlcXVlc3RJZGVudGlmaWVyVHlwZT4ocmVxdWVzdElEKSk7CisgICAgaWYgKCFy
ZXF1ZXN0KSB7CisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKCk7CisgICAgICAgIHJldHVybjsK
KyAgICB9CisKKyAgICByZXF1ZXN0LT5hbGxvdyhXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7
Cit9CisKK3ZvaWQgTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXI6Om1lZGlh
S2V5U3lzdGVtV2FzRGVuaWVkKHVpbnQ2NF90IHJlcXVlc3RJRCwgU3RyaW5nJiYgbWVzc2FnZSkK
K3sKKyAgICBhdXRvIHJlcXVlc3QgPSBtX29uZ29pbmdNZWRpYUtleVN5c3RlbVJlcXVlc3RzLnRh
a2UobWFrZU9iamVjdElkZW50aWZpZXI8TWVkaWFLZXlTeXN0ZW1SZXF1ZXN0SWRlbnRpZmllclR5
cGU+KHJlcXVlc3RJRCkpOworICAgIGlmICghcmVxdWVzdCkKKyAgICAgICAgcmV0dXJuOworCisg
ICAgcmVxdWVzdC0+ZGVueShXVEZNb3ZlKG1lc3NhZ2UpKTsKK30KKworfSAvLyBuYW1lc3BhY2Ug
V2ViS2l0CisKKyNlbmRpZiAvLyBFTkFCTEUoRU5DUllQVEVEX01FRElBKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0VuY3J5cHRlZE1lZGlhL01lZGlhS2V5U3lzdGVtUGVy
bWlzc2lvblJlcXVlc3RNYW5hZ2VyLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvRW5jcnlw
dGVkTWVkaWEvTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIuaApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi44Njk1NWZiOWRlZDcxMTYxY2FkZjRhMjM2OTAyYjJjNTQyMjU2OWE2Ci0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0VuY3J5cHRlZE1lZGlhL01lZGlhS2V5
U3lzdGVtUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyLmgKQEAgLTAsMCArMSw2MyBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAyMSBJZ2FsaWEgUy5MLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFT
IElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVU
T1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
CisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YK
KyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UK
KworI2lmIEVOQUJMRShFTkNSWVBURURfTUVESUEpCisKKyNpbmNsdWRlICJTYW5kYm94RXh0ZW5z
aW9uLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9NZWRpYUtleVN5c3RlbUNsaWVudC5oPgorI2luY2x1
ZGUgPFdlYkNvcmUvTWVkaWFLZXlTeXN0ZW1SZXF1ZXN0Lmg+CisjaW5jbHVkZSA8d3RmL0hhc2hN
YXAuaD4KKyNpbmNsdWRlIDx3dGYvUmVmLmg+CisjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgorCitu
YW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3MgV2ViUGFnZTsKKworY2xhc3MgTWVkaWFLZXlTeXN0
ZW1QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIgeworICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVE
OworcHVibGljOgorICAgIGV4cGxpY2l0IE1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RN
YW5hZ2VyKFdlYlBhZ2UmKTsKKyAgICB+TWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdE1h
bmFnZXIoKSA9IGRlZmF1bHQ7CisKKyAgICB2b2lkIHN0YXJ0TWVkaWFLZXlTeXN0ZW1SZXF1ZXN0
KFdlYkNvcmU6Ok1lZGlhS2V5U3lzdGVtUmVxdWVzdCYpOworICAgIHZvaWQgY2FuY2VsTWVkaWFL
ZXlTeXN0ZW1SZXF1ZXN0KFdlYkNvcmU6Ok1lZGlhS2V5U3lzdGVtUmVxdWVzdCYpOworICAgIHZv
aWQgbWVkaWFLZXlTeXN0ZW1XYXNHcmFudGVkKHVpbnQ2NF90LCBDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKCk+JiYpOworICAgIHZvaWQgbWVkaWFLZXlTeXN0ZW1XYXNEZW5pZWQodWludDY0X3QsIFN0
cmluZyYmKTsKKworcHJpdmF0ZToKKyAgICB2b2lkIHNlbmRNZWRpYUtleVN5c3RlbVJlcXVlc3Qo
V2ViQ29yZTo6TWVkaWFLZXlTeXN0ZW1SZXF1ZXN0Jik7CisKKyAgICBXZWJQYWdlJiBtX3BhZ2U7
CisKKyAgICBIYXNoTWFwPFdlYkNvcmU6Ok1lZGlhS2V5U3lzdGVtUmVxdWVzdElkZW50aWZpZXIs
IFJlZjxXZWJDb3JlOjpNZWRpYUtleVN5c3RlbVJlcXVlc3Q+PiBtX29uZ29pbmdNZWRpYUtleVN5
c3RlbVJlcXVlc3RzOworICAgIEhhc2hNYXA8UmVmUHRyPFdlYkNvcmU6OkRvY3VtZW50PiwgVmVj
dG9yPFJlZjxXZWJDb3JlOjpNZWRpYUtleVN5c3RlbVJlcXVlc3Q+Pj4gbV9wZW5kaW5nTWVkaWFL
ZXlTeXN0ZW1SZXF1ZXN0czsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYg
Ly8gRU5BQkxFKE1FRElBX1NUUkVBTSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJNZWRpYUtleVN5c3RlbUNsaWVudC5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViTWVkaWFLZXlTeXN0ZW1DbGllbnQu
Y3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmNkMmI4YTViZDM5ZDAzMTdhNDZmYTMxYjg0NjE5NjM1N2M3YmYxMTgK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBv
cnQvV2ViTWVkaWFLZXlTeXN0ZW1DbGllbnQuY3BwCkBAIC0wLDAgKzEsNjEgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMjEgSWdhbGlhIFMuTC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJ
UycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9S
UworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwor
ICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisg
KiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZp
Zy5oIgorI2luY2x1ZGUgIldlYk1lZGlhS2V5U3lzdGVtQ2xpZW50LmgiCisKKyNpZiBFTkFCTEUo
RU5DUllQVEVEX01FRElBKQorCisjaW5jbHVkZSAiTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVx
dWVzdE1hbmFnZXIuaCIKKyNpbmNsdWRlICJXZWJQYWdlLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9N
ZWRpYUtleVN5c3RlbUNvbnRyb2xsZXIuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL01lZGlhS2V5U3lz
dGVtUmVxdWVzdC5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKK3VzaW5nIG5hbWVzcGFjZSBXZWJD
b3JlOworCitXZWJNZWRpYUtleVN5c3RlbUNsaWVudDo6V2ViTWVkaWFLZXlTeXN0ZW1DbGllbnQo
V2ViUGFnZSYgcGFnZSkKKyAgICA6IG1fcGFnZShwYWdlKQoreworfQorCit2b2lkIFdlYk1lZGlh
S2V5U3lzdGVtQ2xpZW50OjpwYWdlRGVzdHJveWVkKCkKK3sKKyAgICBkZWxldGUgdGhpczsKK30K
Kwordm9pZCBXZWJNZWRpYUtleVN5c3RlbUNsaWVudDo6cmVxdWVzdE1lZGlhS2V5U3lzdGVtKE1l
ZGlhS2V5U3lzdGVtUmVxdWVzdCYgcmVxdWVzdCkKK3sKKyAgICBtX3BhZ2UubWVkaWFLZXlTeXN0
ZW1QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIoKS5zdGFydE1lZGlhS2V5U3lzdGVtUmVxdWVzdChy
ZXF1ZXN0KTsKK30KKwordm9pZCBXZWJNZWRpYUtleVN5c3RlbUNsaWVudDo6Y2FuY2VsTWVkaWFL
ZXlTeXN0ZW1SZXF1ZXN0KE1lZGlhS2V5U3lzdGVtUmVxdWVzdCYgcmVxdWVzdCkKK3sKKyAgICBt
X3BhZ2UubWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIoKS5jYW5jZWxNZWRp
YUtleVN5c3RlbVJlcXVlc3QocmVxdWVzdCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdDsK
KworI2VuZGlmIC8vIEVOQUJMRShFTkNSWVBURURfTUVESUEpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViTWVkaWFLZXlTeXN0ZW1DbGllbnQu
aCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJNZWRpYUtleVN5
c3RlbUNsaWVudC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmY0ODAzMmY4YjlhYTYwYWZiOTE4ZTA0M2Y1NDgxMWZm
YjMyMjc3ODYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvV2ViTWVkaWFLZXlTeXN0ZW1DbGllbnQuaApAQCAtMCwwICsxLDUzIEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDIxIElnYWxpYSBTLkwuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEg
b25jZQorCisjaWYgRU5BQkxFKEVOQ1JZUFRFRF9NRURJQSkKKworI2luY2x1ZGUgPFdlYkNvcmUv
TWVkaWFLZXlTeXN0ZW1DbGllbnQuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIFdl
YlBhZ2U7CisKK2NsYXNzIFdlYk1lZGlhS2V5U3lzdGVtQ2xpZW50IDogcHVibGljIFdlYkNvcmU6
Ok1lZGlhS2V5U3lzdGVtQ2xpZW50IHsKKyAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKK3B1
YmxpYzoKKyAgICBXZWJNZWRpYUtleVN5c3RlbUNsaWVudChXZWJQYWdlJik7CisgICAgfldlYk1l
ZGlhS2V5U3lzdGVtQ2xpZW50KCkgeyB9CisKK3ByaXZhdGU6CisgICAgdm9pZCBwYWdlRGVzdHJv
eWVkKCkgb3ZlcnJpZGU7CisKKyAgICB2b2lkIHJlcXVlc3RNZWRpYUtleVN5c3RlbShXZWJDb3Jl
OjpNZWRpYUtleVN5c3RlbVJlcXVlc3QmKSBvdmVycmlkZTsKKyAgICB2b2lkIGNhbmNlbE1lZGlh
S2V5U3lzdGVtUmVxdWVzdChXZWJDb3JlOjpNZWRpYUtleVN5c3RlbVJlcXVlc3QmKSBvdmVycmlk
ZTsKKworICAgIFdlYlBhZ2UmIG1fcGFnZTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
KworI2VuZGlmIC8vIEVOQUJMRShFTkNSWVBURURfTUVESUEpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCmluZGV4IGNhZTBhOTcxOGNmN2ZmOWY0MDIxZjZj
Y2E5MDRlMjc0YmQxYjMzM2UuLmFjN2UwMzQ4ZDZjMjFjZDY0ZDM5MDNmNGQ5ODA3OTNjMjVkMDlm
ODcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2Uu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCkBA
IC00Niw2ICs0Niw3IEBACiAjaW5jbHVkZSAiTGliV2ViUlRDUHJvdmlkZXIuaCIKICNpbmNsdWRl
ICJMb2FkUGFyYW1ldGVycy5oIgogI2luY2x1ZGUgIkxvZ2dpbmcuaCIKKyNpbmNsdWRlICJNZWRp
YUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlci5oIgogI2luY2x1ZGUgIk1lZGlhUGxh
eWJhY2tTdGF0ZS5oIgogI2luY2x1ZGUgIk1lZGlhUmVjb3JkZXJQcm92aWRlci5oIgogI2luY2x1
ZGUgIk5ldHNjYXBlUGx1Z2luLmgiCkBAIC0xMDQsNiArMTA1LDcgQEAKICNpbmNsdWRlICJXZWJL
ZXlib2FyZEV2ZW50LmgiCiAjaW5jbHVkZSAiV2ViTG9hZGVyU3RyYXRlZ3kuaCIKICNpbmNsdWRl
ICJXZWJNZWRpYUtleVN0b3JhZ2VNYW5hZ2VyLmgiCisjaW5jbHVkZSAiV2ViTWVkaWFLZXlTeXN0
ZW1DbGllbnQuaCIKICNpbmNsdWRlICJXZWJNZWRpYVN0cmF0ZWd5LmgiCiAjaW5jbHVkZSAiV2Vi
TW91c2VFdmVudC5oIgogI2luY2x1ZGUgIldlYk5vdGlmaWNhdGlvbkNsaWVudC5oIgpAQCAtNDY3
LDYgKzQ2OSw5IEBAIFdlYlBhZ2U6OldlYlBhZ2UoUGFnZUlkZW50aWZpZXIgcGFnZUlELCBXZWJQ
YWdlQ3JlYXRpb25QYXJhbWV0ZXJzJiYgcGFyYW1ldGVycykKICNlbmRpZgogI2lmIEVOQUJMRShN
RURJQV9TVFJFQU0pCiAgICAgLCBtX3VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlciB7
IG1ha2VVbmlxdWVSZWY8VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyPigqdGhpcykg
fQorI2VuZGlmCisjaWYgRU5BQkxFKEVOQ1JZUFRFRF9NRURJQSkKKyAgICAsIG1fbWVkaWFLZXlT
eXN0ZW1QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIgeyBtYWtlVW5pcXVlUmVmPE1lZGlhS2V5U3lz
dGVtUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyPigqdGhpcykgfQogI2VuZGlmCiAgICAgLCBtX3Bh
Z2VTY3JvbGxlZEh5c3RlcmVzaXMoW3RoaXNdKFBBTDo6SHlzdGVyZXNpc1N0YXRlIHN0YXRlKSB7
IGlmIChzdGF0ZSA9PSBQQUw6Okh5c3RlcmVzaXNTdGF0ZTo6U3RvcHBlZCkgcGFnZVN0b3BwZWRT
Y3JvbGxpbmcoKTsgfSwgcGFnZVNjcm9sbEh5c3RlcmVzaXNEdXJhdGlvbikKICAgICAsIG1fY2Fu
UnVuQmVmb3JlVW5sb2FkQ29uZmlybVBhbmVsKHBhcmFtZXRlcnMuY2FuUnVuQmVmb3JlVW5sb2Fk
Q29uZmlybVBhbmVsKQpAQCAtNjQ4LDYgKzY1Myw5IEBAIFdlYlBhZ2U6OldlYlBhZ2UoUGFnZUlk
ZW50aWZpZXIgcGFnZUlELCBXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzJiYgcGFyYW1ldGVycykK
ICNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQogICAgIFdlYkNvcmU6OnByb3ZpZGVVc2VyTWVkaWFU
byhtX3BhZ2UuZ2V0KCksIG5ldyBXZWJVc2VyTWVkaWFDbGllbnQoKnRoaXMpKTsKICNlbmRpZgor
I2lmIEVOQUJMRShFTkNSWVBURURfTUVESUEpCisgICAgV2ViQ29yZTo6cHJvdmlkZU1lZGlhS2V5
U3lzdGVtVG8obV9wYWdlLmdldCgpLCBuZXcgV2ViTWVkaWFLZXlTeXN0ZW1DbGllbnQoKnRoaXMp
KTsKKyNlbmRpZgogCiAgICAgbV9wYWdlLT5zZXRDb250cm9sbGVkQnlBdXRvbWF0aW9uKHBhcmFt
ZXRlcnMuY29udHJvbGxlZEJ5QXV0b21hdGlvbik7CiAgICAgbV9wYWdlLT5zZXRIYXNSZXNvdXJj
ZUxvYWRDbGllbnQocGFyYW1ldGVycy5oYXNSZXNvdXJjZUxvYWRDbGllbnQpOwpAQCAtNDUyMSw2
ICs0NTI5LDE4IEBAIHZvaWQgV2ViUGFnZTo6Y2FwdHVyZURldmljZXNDaGFuZ2VkKCkKIAogI2Vu
ZGlmCiAKKyNpZiBFTkFCTEUoRU5DUllQVEVEX01FRElBKQordm9pZCBXZWJQYWdlOjptZWRpYUtl
eVN5c3RlbVdhc0dyYW50ZWQodWludDY0X3QgbWVkaWFLZXlTeXN0ZW1JRCwgQ29tcGxldGlvbkhh
bmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQoreworICAgIG1fbWVkaWFLZXlTeXN0
ZW1QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXItPm1lZGlhS2V5U3lzdGVtV2FzR3JhbnRlZChtZWRp
YUtleVN5c3RlbUlELCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7Cit9CisKK3ZvaWQgV2Vi
UGFnZTo6bWVkaWFLZXlTeXN0ZW1XYXNEZW5pZWQodWludDY0X3QgbWVkaWFLZXlTeXN0ZW1JRCwg
U3RyaW5nJiYgbWVzc2FnZSkKK3sKKyAgICBtX21lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVl
c3RNYW5hZ2VyLT5tZWRpYUtleVN5c3RlbVdhc0RlbmllZChtZWRpYUtleVN5c3RlbUlELCBXVEZN
b3ZlKG1lc3NhZ2UpKTsKK30KKyNlbmRpZgorCiAjaWYgIVBMQVRGT1JNKElPU19GQU1JTFkpCiB2
b2lkIFdlYlBhZ2U6OmFkdmFuY2VUb05leHRNaXNzcGVsbGluZyhib29sIHN0YXJ0QmVmb3JlU2Vs
ZWN0aW9uKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2Uv
V2ViUGFnZS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCmlu
ZGV4IDgzMzUxOTQxNmYyNmMzZDFjNDk1ZDdjZjNiYWE1YTM4ZTA4NTEzOWIuLjg4N2QyY2Y2MjY0
NjFjMWQ1Yzc1YjVhY2M3YjdjZTk1OGE1YjI3OGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViUGFnZS9XZWJQYWdlLmgKQEAgLTI0Niw2ICsyNDYsNyBAQCBjbGFzcyBHYW1lcGFkRGF0
YTsKIGNsYXNzIEdlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyOwogY2xhc3MgTGF5
ZXJIb3N0aW5nQ29udGV4dDsKIGNsYXNzIE1lZGlhRGV2aWNlU2FuZGJveEV4dGVuc2lvbnM7Citj
bGFzcyBNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcjsKIGNsYXNzIE5vdGlm
aWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcjsKIGNsYXNzIFBERlBsdWdpbjsKIGNsYXNz
IFBhZ2VCYW5uZXI7CkBAIC02NzIsNiArNjczLDEwIEBAIHB1YmxpYzoKICAgICB2b2lkIGNhcHR1
cmVEZXZpY2VzQ2hhbmdlZCgpOwogI2VuZGlmCiAKKyNpZiBFTkFCTEUoRU5DUllQVEVEX01FRElB
KQorICAgIE1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyJiBtZWRpYUtleVN5
c3RlbVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcigpIHsgcmV0dXJuIG1fbWVkaWFLZXlTeXN0ZW1Q
ZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXI7IH0KKyNlbmRpZgorCiAgICAgdm9pZCBlbGVtZW50RGlk
Rm9jdXMoV2ViQ29yZTo6RWxlbWVudCYpOwogICAgIHZvaWQgZWxlbWVudERpZFJlZm9jdXMoV2Vi
Q29yZTo6RWxlbWVudCYpOwogICAgIHZvaWQgZWxlbWVudERpZEJsdXIoV2ViQ29yZTo6RWxlbWVu
dCYpOwpAQCAtMTY2Nyw3ICsxNjcyLDExIEBAIHByaXZhdGU6CiAjaWYgRU5BQkxFKE1FRElBX1NU
UkVBTSkKICAgICB2b2lkIHVzZXJNZWRpYUFjY2Vzc1dhc0dyYW50ZWQodWludDY0X3QgdXNlck1l
ZGlhSUQsIFdlYkNvcmU6OkNhcHR1cmVEZXZpY2UmJiBhdWRpb0RldmljZVVJRCwgV2ViQ29yZTo6
Q2FwdHVyZURldmljZSYmIHZpZGVvRGV2aWNlVUlELCBTdHJpbmcmJiBtZWRpYURldmljZUlkZW50
aWZpZXJIYXNoU2FsdCwgU2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlJiYsIENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoKT4mJik7CiAgICAgdm9pZCB1c2VyTWVkaWFBY2Nlc3NXYXNEZW5pZWQodWludDY0
X3QgdXNlck1lZGlhSUQsIHVpbnQ2NF90IHJlYXNvbiwgU3RyaW5nJiYgaW52YWxpZENvbnN0cmFp
bnQpOworI2VuZGlmCiAKKyNpZiBFTkFCTEUoRU5DUllQVEVEX01FRElBKQorICAgIHZvaWQgbWVk
aWFLZXlTeXN0ZW1XYXNHcmFudGVkKHVpbnQ2NF90IG1lZGlhS2V5U3lzdGVtSUQsIENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoKT4mJik7CisgICAgdm9pZCBtZWRpYUtleVN5c3RlbVdhc0RlbmllZCh1
aW50NjRfdCBtZWRpYUtleVN5c3RlbUlELCBTdHJpbmcmJiBtZXNzYWdlKTsKICNlbmRpZgogCiAg
ICAgdm9pZCByZXF1ZXN0TWVkaWFQbGF5YmFja1N0YXRlKENvbXBsZXRpb25IYW5kbGVyPHZvaWQo
V2ViS2l0OjpNZWRpYVBsYXliYWNrU3RhdGUpPiYmKTsKQEAgLTE5NzksNiArMTk4OCwxMCBAQCBw
cml2YXRlOgogICAgIFVuaXF1ZVJlZjxVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXI+
IG1fdXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyOwogI2VuZGlmCiAKKyNpZiBFTkFC
TEUoRU5DUllQVEVEX01FRElBKQorICAgIFVuaXF1ZVJlZjxNZWRpYUtleVN5c3RlbVBlcm1pc3Np
b25SZXF1ZXN0TWFuYWdlcj4gbV9tZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdl
cjsKKyNlbmRpZgorCiAgICAgc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OlByaW50Q29udGV4dD4g
bV9wcmludENvbnRleHQ7CiAjaWYgUExBVEZPUk0oR1RLKQogICAgIFJlZlB0cjxXZWJQcmludE9w
ZXJhdGlvbkd0az4gbV9wcmludE9wZXJhdGlvbjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluCmluZGV4IDJkYTk5Y2QzNzIzOTJl
ODJjNTMwZDQyYzAxYTEyODc3MGZiZDg3MTcuLjIzZmNhMzU3MWYwNzQ3NTA5MWZmM2ZjMTRiYWJj
NDY1ZTIxNmVkNGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdl
L1dlYlBhZ2UubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBh
Z2UvV2ViUGFnZS5tZXNzYWdlcy5pbgpAQCAtMzc4LDYgKzM3OCwxMSBAQCBHZW5lcmF0ZVN5bnRo
ZXRpY0VkaXRpbmdDb21tYW5kKGVudW06dWludDhfdCBXZWJLaXQ6OlN5bnRoZXRpY0VkaXRpbmdD
b21tYW5kVHlwZQogICAgIENhcHR1cmVEZXZpY2VzQ2hhbmdlZCgpCiAjZW5kaWYKIAorI2lmIEVO
QUJMRShFTkNSWVBURURfTUVESUEpCisgICAgTWVkaWFLZXlTeXN0ZW1XYXNHcmFudGVkKHVpbnQ2
NF90IG1lZGlhS2V5U3lzdGVtSUQpIC0+ICgpIEFzeW5jCisgICAgTWVkaWFLZXlTeXN0ZW1XYXNE
ZW5pZWQodWludDY0X3QgbWVkaWFLZXlTeXN0ZW1JRCwgU3RyaW5nIG1lc3NhZ2UpCisjZW5kaWYK
KwogICAgIFJlcXVlc3RNZWRpYVBsYXliYWNrU3RhdGUoKSAtPiAoZW51bTp1aW50OF90IFdlYktp
dDo6TWVkaWFQbGF5YmFja1N0YXRlIHN0YXRlKSBBc3luYwogICAgIFBhdXNlQWxsTWVkaWFQbGF5
YmFjaygpIC0+ICgpIEFzeW5jCiAgICAgU3VzcGVuZEFsbE1lZGlhUGxheWJhY2soKSAtPiAoKSBB
c3luYwpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4
IDZkOTBkNDMzMGM1MTNhYzVhZjZhMGQ0YWFlYTkxNGMyZDAxYTFkZTEuLjExOTdlMmQzM2JlNTAw
ZTQ2NWRhZmM0ODhmNzExYmIxOGM1YzEwOTYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZwor
KysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzNiBAQAorMjAyMS0wMS0zMSAgUGhpbGlw
cGUgTm9ybWFuZCAgPHBub3JtYW5kQGlnYWxpYS5jb20+CisKKyAgICAgICAgUGVybWlzc2lvbiBy
ZXF1ZXN0IEFQSSBmb3IgTWVkaWFLZXlTeXN0ZW0gYWNjZXNzIHN1cHBvcnQKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyMTE4NworCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBiYXNpYyBzdXBwb3J0IGZv
ciBNZWRpYUtleVN5c3RlbSBwZXJtaXNzaW9uIHJlcXVlc3Qgc3VwcG9ydCBHVEsncyBNaW5pQnJv
d3Nlci4KKyAgICAgICAgQWRkIHN1cHBvcnQgZm9yIHNldHRpbmcgdGhlIHBlcm1pc3Npb24gcmVx
dWVzdCByZXNwb25zZSBmcm9tIHRoZSBUZXN0UnVubmVyLCBmb3IgdXNhZ2Ugd2l0aGluIGxheW91
dCB0ZXN0cy4KKyAgICAgICAgQWRkIEdMaWIgQVBJIHRlc3QgZm9yIHRoZSBNZWRpYUtleVN5c3Rl
bSBwZXJtaXNzaW9uIHJlcXVlc3Qgc3VwcG9ydC4KKyAgICAgICAgCisgICAgICAgICogTWluaUJy
b3dzZXIvZ3RrL0Jyb3dzZXJUYWIuYzoKKyAgICAgICAgKHBlcm1pc3Npb25SZXF1ZXN0RGlhbG9n
UmVzcG9uc2UpOgorICAgICAgICAoZGVjaWRlUGVybWlzc2lvblJlcXVlc3QpOgorICAgICAgICAo
YnJvd3Nlcl90YWJfY2xhc3NfaW5pdCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJLaXRHTGliL1Rlc3RVSUNsaWVudC5jcHA6CisgICAgICAgICh0ZXN0V2ViVmlld01lZGlhS2V5
U3lzdGVtUGVybWlzc2lvblJlcXVlc3RzKToKKyAgICAgICAgKGJlZm9yZUFsbCk6CisgICAgICAg
ICogVGVzdFdlYktpdEFQSS9nbGliL1dlYktpdEdMaWIvV2ViVmlld1Rlc3QuY3BwOgorICAgICAg
ICAoV2ViVmlld1Rlc3Q6OmluaXRpYWxpemVXZWJWaWV3KToKKyAgICAgICAgKiBXZWJLaXRUZXN0
UnVubmVyL0luamVjdGVkQnVuZGxlL0JpbmRpbmdzL1Rlc3RSdW5uZXIuaWRsOgorICAgICAgICAq
IFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5jcHA6CisgICAgICAg
IChXVFI6OlRlc3RSdW5uZXI6OnNldElzTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uR3JhbnRlZCk6
CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmg6
CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHA6CisgICAgICAg
IChXVFI6OmRlY2lkZVBvbGljeUZvck1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3QpOgor
ICAgICAgICAoV1RSOjpUZXN0Q29udHJvbGxlcjo6Y29tcGxldGVNZWRpYUtleVN5c3RlbVBlcm1p
c3Npb25DaGVjayk6CisgICAgICAgIChXVFI6OlRlc3RDb250cm9sbGVyOjpzZXRJc01lZGlhS2V5
U3lzdGVtUGVybWlzc2lvbkdyYW50ZWQpOgorICAgICAgICAoV1RSOjpUZXN0Q29udHJvbGxlcjo6
Y3JlYXRlV2ViVmlld1dpdGhPcHRpb25zKToKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL1Rl
c3RDb250cm9sbGVyLmg6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9UZXN0SW52b2NhdGlv
bi5jcHA6CisgICAgICAgIChXVFI6OlRlc3RJbnZvY2F0aW9uOjpkaWRSZWNlaXZlU3luY2hyb25v
dXNNZXNzYWdlRnJvbUluamVjdGVkQnVuZGxlKToKKwogMjAyMS0wMi0wMSAgWXVzdWtlIFN1enVr
aSAgPHlzdXp1a2lAYXBwbGUuY29tPgogCiAgICAgICAgIFtKU0NdIEFkZCBAIGluIEVycm9yLnN0
YWNrIGlmIFVSTCBleGlzdHMKZGlmZiAtLWdpdCBhL1Rvb2xzL01pbmlCcm93c2VyL2d0ay9Ccm93
c2VyVGFiLmMgYi9Ub29scy9NaW5pQnJvd3Nlci9ndGsvQnJvd3NlclRhYi5jCmluZGV4IDNlNTM4
YTlkOGE1ZjQ4ZGMwOGIzMzBlZDQ1MTdjMjI3NTM2OGRhOWYuLjk5MzU4NzkzNjMzZWEzOGQ1NGVl
NzI5ZDFkZjg4YWRhOWUyZDQ1ZmYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL01pbmlCcm93c2VyL2d0ay9C
cm93c2VyVGFiLmMKKysrIGIvVG9vbHMvTWluaUJyb3dzZXIvZ3RrL0Jyb3dzZXJUYWIuYwpAQCAt
NjAsNiArNjAsNyBAQCBzdHJ1Y3QgX0Jyb3dzZXJUYWIgewogfTsKIAogc3RhdGljIEdIYXNoVGFi
bGUgKnVzZXJNZWRpYVBlcm1pc3Npb25HcmFudGVkT3JpZ2luczsKK3N0YXRpYyBHSGFzaFRhYmxl
ICptZWRpYUtleVN5c3RlbVBlcm1pc3Npb25HcmFudGVkT3JpZ2luczsKIHN0cnVjdCBfQnJvd3Nl
clRhYkNsYXNzIHsKICAgICBHdGtCb3hDbGFzcyBwYXJlbnQ7CiB9OwpAQCAtMjY0LDEyICsyNjUs
MTYgQEAgc3RhdGljIHZvaWQgcGVybWlzc2lvblJlcXVlc3REaWFsb2dSZXNwb25zZShHdGtXaWRn
ZXQgKmRpYWxvZywgZ2ludCByZXNwb25zZSwgUGUKICAgICBjYXNlIEdUS19SRVNQT05TRV9ZRVM6
CiAgICAgICAgIGlmIChXRUJLSVRfSVNfVVNFUl9NRURJQV9QRVJNSVNTSU9OX1JFUVVFU1QocmVx
dWVzdERhdGEtPnJlcXVlc3QpKQogICAgICAgICAgICAgZ19oYXNoX3RhYmxlX2FkZCh1c2VyTWVk
aWFQZXJtaXNzaW9uR3JhbnRlZE9yaWdpbnMsIGdfc3RyZHVwKHJlcXVlc3REYXRhLT5vcmlnaW4p
KTsKKyAgICAgICAgaWYgKFdFQktJVF9JU19NRURJQV9LRVlfU1lTVEVNX1BFUk1JU1NJT05fUkVR
VUVTVChyZXF1ZXN0RGF0YS0+cmVxdWVzdCkpCisgICAgICAgICAgICBnX2hhc2hfdGFibGVfYWRk
KG1lZGlhS2V5U3lzdGVtUGVybWlzc2lvbkdyYW50ZWRPcmlnaW5zLCBnX3N0cmR1cChyZXF1ZXN0
RGF0YS0+b3JpZ2luKSk7CiAKICAgICAgICAgd2Via2l0X3Blcm1pc3Npb25fcmVxdWVzdF9hbGxv
dyhyZXF1ZXN0RGF0YS0+cmVxdWVzdCk7CiAgICAgICAgIGJyZWFrOwogICAgIGRlZmF1bHQ6CiAg
ICAgICAgIGlmIChXRUJLSVRfSVNfVVNFUl9NRURJQV9QRVJNSVNTSU9OX1JFUVVFU1QocmVxdWVz
dERhdGEtPnJlcXVlc3QpKQogICAgICAgICAgICAgZ19oYXNoX3RhYmxlX3JlbW92ZSh1c2VyTWVk
aWFQZXJtaXNzaW9uR3JhbnRlZE9yaWdpbnMsIHJlcXVlc3REYXRhLT5vcmlnaW4pOworICAgICAg
ICBpZiAoV0VCS0lUX0lTX01FRElBX0tFWV9TWVNURU1fUEVSTUlTU0lPTl9SRVFVRVNUKHJlcXVl
c3REYXRhLT5yZXF1ZXN0KSkKKyAgICAgICAgICAgIGdfaGFzaF90YWJsZV9yZW1vdmUobWVkaWFL
ZXlTeXN0ZW1QZXJtaXNzaW9uR3JhbnRlZE9yaWdpbnMsIHJlcXVlc3REYXRhLT5vcmlnaW4pOwog
CiAgICAgICAgIHdlYmtpdF9wZXJtaXNzaW9uX3JlcXVlc3RfZGVueShyZXF1ZXN0RGF0YS0+cmVx
dWVzdCk7CiAgICAgICAgIGJyZWFrOwpAQCAtMzQwLDYgKzM0NSwxNiBAQCBzdGF0aWMgZ2Jvb2xl
YW4gZGVjaWRlUGVybWlzc2lvblJlcXVlc3QoV2ViS2l0V2ViVmlldyAqd2ViVmlldywgV2ViS2l0
UGVybWlzc2lvbgogICAgICAgICBjb25zdCBnY2hhciAqY3VycmVudERvbWFpbiA9IHdlYmtpdF93
ZWJzaXRlX2RhdGFfYWNjZXNzX3Blcm1pc3Npb25fcmVxdWVzdF9nZXRfY3VycmVudF9kb21haW4o
d2Vic2l0ZURhdGFBY2Nlc3NSZXF1ZXN0KTsKICAgICAgICAgdGV4dCA9IGdfc3RyZHVwX3ByaW50
ZigiRG8geW91IHdhbnQgdG8gYWxsb3cgXCIlc1wiIHRvIHVzZSBjb29raWVzIHdoaWxlIGJyb3dz
aW5nIFwiJXNcIj8gVGhpcyB3aWxsIGFsbG93IFwiJXNcIiB0byB0cmFjayB5b3VyIGFjdGl2aXR5
IiwKICAgICAgICAgICAgIHJlcXVlc3RpbmdEb21haW4sIGN1cnJlbnREb21haW4sIHJlcXVlc3Rp
bmdEb21haW4pOworICAgIH0gZWxzZSBpZiAoV0VCS0lUX0lTX01FRElBX0tFWV9TWVNURU1fUEVS
TUlTU0lPTl9SRVFVRVNUKHJlcXVlc3QpKSB7CisgICAgICAgIGNoYXIgKm9yaWdpbiA9IGdldFdl
YlZpZXdPcmlnaW4od2ViVmlldyk7CisgICAgICAgIGlmIChnX2hhc2hfdGFibGVfY29udGFpbnMo
bWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uR3JhbnRlZE9yaWdpbnMsIG9yaWdpbikpIHsKKyAgICAg
ICAgICAgIHdlYmtpdF9wZXJtaXNzaW9uX3JlcXVlc3RfYWxsb3cocmVxdWVzdCk7CisgICAgICAg
ICAgICBnX2ZyZWUob3JpZ2luKTsKKyAgICAgICAgICAgIHJldHVybiBUUlVFOworICAgICAgICB9
CisgICAgICAgIGdfZnJlZShvcmlnaW4pOworICAgICAgICB0aXRsZSA9ICJEUk0gc3lzdGVtIGFj
Y2VzcyByZXF1ZXN0IjsKKyAgICAgICAgdGV4dCA9IGdfc3RyZHVwX3ByaW50ZigiQWxsb3cgdG8g
dXNlIGEgQ0RNIHByb3ZpZGluZyBhY2Nlc3MgdG8gJXM/Iiwgd2Via2l0X21lZGlhX2tleV9zeXN0
ZW1fcGVybWlzc2lvbl9nZXRfbmFtZShXRUJLSVRfTUVESUFfS0VZX1NZU1RFTV9QRVJNSVNTSU9O
X1JFUVVFU1QocmVxdWVzdCkpKTsKICAgICB9IGVsc2UgewogICAgICAgICBnX3ByaW50KCIlcyBy
ZXF1ZXN0IG5vdCBoYW5kbGVkXG4iLCBHX09CSkVDVF9UWVBFX05BTUUocmVxdWVzdCkpOwogICAg
ICAgICByZXR1cm4gRkFMU0U7CkBAIC02NTUsNiArNjcwLDkgQEAgc3RhdGljIHZvaWQgYnJvd3Nl
cl90YWJfY2xhc3NfaW5pdChCcm93c2VyVGFiQ2xhc3MgKmtsYXNzKQogICAgIGlmICghdXNlck1l
ZGlhUGVybWlzc2lvbkdyYW50ZWRPcmlnaW5zKQogICAgICAgICB1c2VyTWVkaWFQZXJtaXNzaW9u
R3JhbnRlZE9yaWdpbnMgPSBnX2hhc2hfdGFibGVfbmV3X2Z1bGwoZ19zdHJfaGFzaCwgZ19zdHJf
ZXF1YWwsIGdfZnJlZSwgTlVMTCk7CiAKKyAgICBpZiAoIW1lZGlhS2V5U3lzdGVtUGVybWlzc2lv
bkdyYW50ZWRPcmlnaW5zKQorICAgICAgICBtZWRpYUtleVN5c3RlbVBlcm1pc3Npb25HcmFudGVk
T3JpZ2lucyA9IGdfaGFzaF90YWJsZV9uZXdfZnVsbChnX3N0cl9oYXNoLCBnX3N0cl9lcXVhbCwg
Z19mcmVlLCBOVUxMKTsKKwogICAgIGdfb2JqZWN0X2NsYXNzX2luc3RhbGxfcHJvcGVydHkoCiAg
ICAgICAgIGdvYmplY3RDbGFzcywKICAgICAgICAgUFJPUF9WSUVXLApkaWZmIC0tZ2l0IGEvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRHTGliL1Rlc3RVSUNsaWVudC5jcHAgYi9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdEdMaWIvVGVzdFVJQ2xpZW50LmNwcAppbmRleCAw
ZjljYTJhMzgzZDI3OWYzZDUzMzJhZTkzYjA0MGVlNGMxN2VmMzFhLi5jN2ZhNmRlMGY1ZGY2ZGNl
OWYzZDY2MTRmNTRlMTU0OTk1NzQ5MmE1IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYktpdEdMaWIvVGVzdFVJQ2xpZW50LmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYktpdEdMaWIvVGVzdFVJQ2xpZW50LmNwcApAQCAtODk2LDYgKzg5Niw0MiBA
QCBzdGF0aWMgdm9pZCB0ZXN0V2ViVmlld0dlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3RzKFVJ
Q2xpZW50VGVzdCogdGVzdCwgZ2NvbnN0cAogICAgIFRlc3Q6OmFkZExvZ0ZhdGFsRmxhZyhHX0xP
R19MRVZFTF9XQVJOSU5HKTsKIH0KIAorI2lmIEVOQUJMRShFTkNSWVBURURfTUVESUEpCitzdGF0
aWMgdm9pZCB0ZXN0V2ViVmlld01lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RzKFVJQ2xp
ZW50VGVzdCogdGVzdCwgZ2NvbnN0cG9pbnRlcikKK3sKKyAgICB0ZXN0LT5zaG93SW5XaW5kb3co
KTsKKyAgICBzdGF0aWMgY29uc3QgY2hhciogbWVkaWFLZXlTeXN0ZW1SZXF1ZXN0SFRNTCA9ICI8
aHRtbD4iCisgICAgICAgICIgIDxzY3JpcHQ+IgorICAgICAgICAiICBmdW5jdGlvbiBydW5UZXN0
KCkiCisgICAgICAgICIgIHsiCisgICAgICAgICIgICAgY29uc3Qgb3B0aW9ucyA9IFsiCisgICAg
ICAgICIgICAgIHsgaW5pdERhdGFUeXBlczogW1wiY2VuY1wiXSwiCisgICAgICAgICIgICAgICAg
dmlkZW9DYXBhYmlsaXRpZXM6IFt7Y29udGVudFR5cGUgOiAndmlkZW8vbXA0J31dIH0iCisgICAg
ICAgICIgICAgXTsiCisgICAgICAgICIgICAgbmF2aWdhdG9yLnJlcXVlc3RNZWRpYUtleVN5c3Rl
bUFjY2Vzcygnb3JnLnczLmNsZWFya2V5Jywgb3B0aW9ucykudGhlbigoYWNjZXNzKSA9PiB7Igor
ICAgICAgICAiICAgICAgd2luZG93LndlYmtpdC5tZXNzYWdlSGFuZGxlcnMucGVybWlzc2lvbi5w
b3N0TWVzc2FnZSgnT0snKTsiCisgICAgICAgICIgICAgfSkuY2F0Y2goKGUpID0+IHsiCisgICAg
ICAgICIgICAgICB3aW5kb3cud2Via2l0Lm1lc3NhZ2VIYW5kbGVycy5wZXJtaXNzaW9uLnBvc3RN
ZXNzYWdlKGUubmFtZSk7IgorICAgICAgICAiICAgIH0pOyIKKyAgICAgICAgIiAgfSIKKyAgICAg
ICAgIiAgPC9zY3JpcHQ+IgorICAgICAgICAiICA8Ym9keSBvbmxvYWQ9J3J1blRlc3QoKTsnPjwv
Ym9keT4iCisgICAgICAgICI8L2h0bWw+IjsKKworICAgIC8vIFRlc3QgZGVueWluZyBhIHBlcm1p
c3Npb24gcmVxdWVzdC4KKyAgICB0ZXN0LT5tX2FsbG93UGVybWlzc2lvblJlcXVlc3RzID0gZmFs
c2U7CisgICAgdGVzdC0+bG9hZEh0bWwobWVkaWFLZXlTeXN0ZW1SZXF1ZXN0SFRNTCwgImh0dHBz
Oi8vZm9vLmNvbS9iYXIiKTsKKyAgICBjb25zdCBnY2hhciogcmVzdWx0ID0gdGVzdC0+d2FpdFVu
dGlsUGVybWlzc2lvblJlc3VsdE1lc3NhZ2VSZWNlaXZlZCgpOworICAgIGdfYXNzZXJ0X2NtcHN0
cihyZXN1bHQsID09LCAiTm90U3VwcG9ydGVkRXJyb3IiKTsKKworICAgIC8vIFRlc3QgYWxsb3dp
bmcgYSBwZXJtaXNzaW9uIHJlcXVlc3QuCisgICAgdGVzdC0+bV9hbGxvd1Blcm1pc3Npb25SZXF1
ZXN0cyA9IHRydWU7CisgICAgdGVzdC0+bG9hZEh0bWwobWVkaWFLZXlTeXN0ZW1SZXF1ZXN0SFRN
TCwgImh0dHBzOi8vZm9vLmNvbS9iYXIiKTsKKyAgICByZXN1bHQgPSB0ZXN0LT53YWl0VW50aWxQ
ZXJtaXNzaW9uUmVzdWx0TWVzc2FnZVJlY2VpdmVkKCk7CisgICAgZ19hc3NlcnRfY21wc3RyKHJl
c3VsdCwgPT0sICJPSyIpOworfQorI2VuZGlmCisKICNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQog
c3RhdGljIHZvaWQgdGVzdFdlYlZpZXdVc2VyTWVkaWFFbnVtZXJhdGVEZXZpY2VzUGVybWlzc2lv
bkNoZWNrKFVJQ2xpZW50VGVzdCogdGVzdCwgZ2NvbnN0cG9pbnRlcikKIHsKQEAgLTEyOTksNiAr
MTMzNSw5IEBAIHZvaWQgYmVmb3JlQWxsKCkKICAgICBVSUNsaWVudFRlc3Q6OmFkZCgiV2ViS2l0
V2ViVmlldyIsICJtb3VzZS10YXJnZXQiLCB0ZXN0V2ViVmlld01vdXNlVGFyZ2V0KTsKICNlbmRp
ZgogICAgIFVJQ2xpZW50VGVzdDo6YWRkKCJXZWJLaXRXZWJWaWV3IiwgImdlb2xvY2F0aW9uLXBl
cm1pc3Npb24tcmVxdWVzdHMiLCB0ZXN0V2ViVmlld0dlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVl
c3RzKTsKKyNpZiBFTkFCTEUoRU5DUllQVEVEX01FRElBKQorICAgIFVJQ2xpZW50VGVzdDo6YWRk
KCJXZWJLaXRXZWJWaWV3IiwgIm1lZGlhS2V5U3lzdGVtLXBlcm1pc3Npb24tcmVxdWVzdHMiLCB0
ZXN0V2ViVmlld01lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RzKTsKKyNlbmRpZgogI2lm
IEVOQUJMRShNRURJQV9TVFJFQU0pCiAgICAgVUlDbGllbnRUZXN0OjphZGQoIldlYktpdFdlYlZp
ZXciLCAidXNlcm1lZGlhLWVudW1lcmF0ZWRldmljZXMtcGVybWlzc2lvbi1jaGVjayIsIHRlc3RX
ZWJWaWV3VXNlck1lZGlhRW51bWVyYXRlRGV2aWNlc1Blcm1pc3Npb25DaGVjayk7CiAgICAgVUlD
bGllbnRUZXN0OjphZGQoIldlYktpdFdlYlZpZXciLCAidXNlcm1lZGlhLXBlcm1pc3Npb24tcmVx
dWVzdHMiLCB0ZXN0V2ViVmlld1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0cyk7CmRpZmYgLS1n
aXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL2dsaWIvV2ViS2l0R0xpYi9XZWJWaWV3VGVzdC5jcHAg
Yi9Ub29scy9UZXN0V2ViS2l0QVBJL2dsaWIvV2ViS2l0R0xpYi9XZWJWaWV3VGVzdC5jcHAKaW5k
ZXggN2ExM2ViOGY4NDAyZGYwNTE3YWYwNjhkOTFkMmFmY2QwOWRlOTY0Ni4uNmM3ZTliOTQ2YjY0
N2NkYjcyNGE1ZTI2NjA5ZTc3MzkxZDhkMzI3ZCAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktp
dEFQSS9nbGliL1dlYktpdEdMaWIvV2ViVmlld1Rlc3QuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvZ2xpYi9XZWJLaXRHTGliL1dlYlZpZXdUZXN0LmNwcApAQCAtNjAsNiArNjAsMTIgQEAg
dm9pZCBXZWJWaWV3VGVzdDo6aW5pdGlhbGl6ZVdlYlZpZXcoKQogICAgICAgICAidXNlci1jb250
ZW50LW1hbmFnZXIiLCBtX3VzZXJDb250ZW50TWFuYWdlci5nZXQoKSwKICAgICAgICAgImlzLWVw
aGVtZXJhbCIsIHNob3VsZENyZWF0ZUVwaGVtZXJhbFdlYlZpZXcsCiAgICAgICAgIG51bGxwdHIp
KTsKKworI2lmIEVOQUJMRShFTkNSWVBURURfTUVESUEpCisgICAgYXV0byogc2V0dGluZ3MgPSB3
ZWJraXRfd2ViX3ZpZXdfZ2V0X3NldHRpbmdzKG1fd2ViVmlldyk7CisgICAgd2Via2l0X3NldHRp
bmdzX3NldF9lbmFibGVfZW5jcnlwdGVkX21lZGlhKHNldHRpbmdzLCBUUlVFKTsKKyNlbmRpZgor
CiAgICAgcGxhdGZvcm1Jbml0aWFsaXplV2ViVmlldygpOwogICAgIGFzc2VydE9iamVjdElzRGVs
ZXRlZFdoZW5UZXN0RmluaXNoZXMoR19PQkpFQ1QobV93ZWJWaWV3KSk7CiAKZGlmZiAtLWdpdCBh
L1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvVGVzdFJ1bm5l
ci5pZGwgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0JpbmRpbmdzL1Rl
c3RSdW5uZXIuaWRsCmluZGV4IGRiMTU5OWEyYzU2MDJhZTgxYWIyZjI0ZTA4ZjlmOTU1MzljMDVi
OWEuLmEwNzFlY2RkZDllNDM0ODNmZTc3MTk2ODZjMzVhNGYzN2I4YjFiYzcgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvVGVzdFJ1bm5l
ci5pZGwKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5n
cy9UZXN0UnVubmVyLmlkbApAQCAtNDA4LDQgKzQwOCw3IEBAIGludGVyZmFjZSBUZXN0UnVubmVy
IHsKIAogICAgIC8vIFNwZWVjaFJlY29nbml0aW9uCiAgICAgdW5kZWZpbmVkIHNldElzU3BlZWNo
UmVjb2duaXRpb25QZXJtaXNzaW9uR3JhbnRlZChib29sZWFuIHZhbHVlKTsKKworICAgIC8vIE1l
ZGlhS2V5U3lzdGVtCisgICAgdW5kZWZpbmVkIHNldElzTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9u
R3JhbnRlZChib29sZWFuIHZhbHVlKTsKIH07CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0
UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuY3BwIGIvVG9vbHMvV2ViS2l0VGVzdFJ1
bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmNwcAppbmRleCA2MzgwOTg5MjUxOGNjZTNj
ZmQ2YmEyZGZhY2RjNmY1ZWY5MDNiYWI2Li44NjRjY2UyODU5N2E0MThkODlhNTM1N2RjOTIwMGNj
ZDAxOTRjN2Q1IDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVu
ZGxlL1Rlc3RSdW5uZXIuY3BwCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRC
dW5kbGUvVGVzdFJ1bm5lci5jcHAKQEAgLTIwODQsNiArMjA4NCwxMSBAQCB2b2lkIFRlc3RSdW5u
ZXI6OnNldElzU3BlZWNoUmVjb2duaXRpb25QZXJtaXNzaW9uR3JhbnRlZChib29sIGdyYW50ZWQp
CiAgICAgcG9zdFN5bmNocm9ub3VzUGFnZU1lc3NhZ2UoInNldElzU3BlZWNoUmVjb2duaXRpb25Q
ZXJtaXNzaW9uR3JhbnRlZCIsIGdyYW50ZWQpOwogfQogCit2b2lkIFRlc3RSdW5uZXI6OnNldElz
TWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uR3JhbnRlZChib29sIGdyYW50ZWQpCit7CisgICAgcG9z
dFN5bmNocm9ub3VzUGFnZU1lc3NhZ2UoInNldElzTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uR3Jh
bnRlZCIsIGdyYW50ZWQpOworfQorCiBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQK
IAogfSAvLyBuYW1lc3BhY2UgV1RSCmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVy
L0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuaCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5q
ZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5oCmluZGV4IDkzYTk3Y2JkZGU0ODc1Y2JkMzM1YTcwZmNi
OWZmNTNkYjRmMjhiNDQuLmJjZjcxMGI3Yjg1NDY5ZjliYzY5MjA0MTI4MjcxNDZkMjNiM2JjOTcg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1
bm5lci5oCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1
bm5lci5oCkBAIC01MTksNiArNTE5LDggQEAgcHVibGljOgogCiAgICAgdm9pZCBzZXRJc1NwZWVj
aFJlY29nbml0aW9uUGVybWlzc2lvbkdyYW50ZWQoYm9vbCk7CiAKKyAgICB2b2lkIHNldElzTWVk
aWFLZXlTeXN0ZW1QZXJtaXNzaW9uR3JhbnRlZChib29sKTsKKwogcHJpdmF0ZToKICAgICBUZXN0
UnVubmVyKCk7CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRy
b2xsZXIuY3BwIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAKaW5k
ZXggZDJjYmVmNDI1M2RmZTY1MTMyODcyM2Q1NzlkYjM0MTRiZjFkYTc4Yy4uYjNmM2I5MzNkOWRh
ZjAwNmUwZmY4NzMyNDRlNzVhOTM2ZjcyMjhkOCAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVz
dFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9U
ZXN0Q29udHJvbGxlci5jcHAKQEAgLTQ2LDYgKzQ2LDcgQEAKICNpbmNsdWRlIDxXZWJLaXQvV0tG
cmFtZUluZm9SZWYuaD4KICNpbmNsdWRlIDxXZWJLaXQvV0tIVFRQQ29va2llU3RvcmVSZWYuaD4K
ICNpbmNsdWRlIDxXZWJLaXQvV0tJY29uRGF0YWJhc2UuaD4KKyNpbmNsdWRlIDxXZWJLaXQvV0tN
ZWRpYUtleVN5c3RlbVBlcm1pc3Npb25DYWxsYmFjay5oPgogI2luY2x1ZGUgPFdlYktpdC9XS01l
c3NhZ2VMaXN0ZW5lci5oPgogI2luY2x1ZGUgPFdlYktpdC9XS01vY2tEaXNwbGF5Lmg+CiAjaW5j
bHVkZSA8V2ViS2l0L1dLTW9ja01lZGlhRGV2aWNlLmg+CkBAIC0zNDMsNiArMzQ0LDIxIEBAIHZv
aWQgVGVzdENvbnRyb2xsZXI6OnNldElzU3BlZWNoUmVjb2duaXRpb25QZXJtaXNzaW9uR3JhbnRl
ZChib29sIGdyYW50ZWQpCiAgICAgbV9pc1NwZWVjaFJlY29nbml0aW9uUGVybWlzc2lvbkdyYW50
ZWQgPSBncmFudGVkOwogfQogCitzdGF0aWMgdm9pZCBkZWNpZGVQb2xpY3lGb3JNZWRpYUtleVN5
c3RlbVBlcm1pc3Npb25SZXF1ZXN0KFdLUGFnZVJlZiwgV0tTZWN1cml0eU9yaWdpblJlZiwgV0tT
dHJpbmdSZWYsIFdLTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uQ2FsbGJhY2tSZWYgY2FsbGJhY2sp
Cit7CisgICAgVGVzdENvbnRyb2xsZXI6OnNpbmdsZXRvbigpLmNvbXBsZXRlTWVkaWFLZXlTeXN0
ZW1QZXJtaXNzaW9uQ2hlY2soY2FsbGJhY2spOworfQorCit2b2lkIFRlc3RDb250cm9sbGVyOjpj
b21wbGV0ZU1lZGlhS2V5U3lzdGVtUGVybWlzc2lvbkNoZWNrKFdLTWVkaWFLZXlTeXN0ZW1QZXJt
aXNzaW9uQ2FsbGJhY2tSZWYgY2FsbGJhY2spCit7CisgICAgV0tNZWRpYUtleVN5c3RlbVBlcm1p
c3Npb25DYWxsYmFja0NvbXBsZXRlKGNhbGxiYWNrLCBtX2lzTWVkaWFLZXlTeXN0ZW1QZXJtaXNz
aW9uR3JhbnRlZCk7Cit9CisKK3ZvaWQgVGVzdENvbnRyb2xsZXI6OnNldElzTWVkaWFLZXlTeXN0
ZW1QZXJtaXNzaW9uR3JhbnRlZChib29sIGdyYW50ZWQpCit7CisgICAgbV9pc01lZGlhS2V5U3lz
dGVtUGVybWlzc2lvbkdyYW50ZWQgPSBncmFudGVkOworfQorCiBXS1BhZ2VSZWYgVGVzdENvbnRy
b2xsZXI6OmNyZWF0ZU90aGVyUGFnZShXS1BhZ2VSZWYsIFdLUGFnZUNvbmZpZ3VyYXRpb25SZWYg
Y29uZmlndXJhdGlvbiwgV0tOYXZpZ2F0aW9uQWN0aW9uUmVmIG5hdmlnYXRpb25BY3Rpb24sIFdL
V2luZG93RmVhdHVyZXNSZWYgd2luZG93RmVhdHVyZXMsIGNvbnN0IHZvaWQgKmNsaWVudEluZm8p
CiB7CiAgICAgUGxhdGZvcm1XZWJWaWV3KiBwYXJlbnRWaWV3ID0gc3RhdGljX2Nhc3Q8UGxhdGZv
cm1XZWJWaWV3Kj4oY29uc3RfY2FzdDx2b2lkKj4oY2xpZW50SW5mbykpOwpAQCAtNjk5LDggKzcx
NSw4IEBAIHZvaWQgVGVzdENvbnRyb2xsZXI6OmNyZWF0ZVdlYlZpZXdXaXRoT3B0aW9ucyhjb25z
dCBUZXN0T3B0aW9ucyYgb3B0aW9ucykKICAgICBXS0hUVFBDb29raWVTdG9yZURlbGV0ZUFsbENv
b2tpZXMoV0tXZWJzaXRlRGF0YVN0b3JlR2V0SFRUUENvb2tpZVN0b3JlKHdlYnNpdGVEYXRhU3Rv
cmUoKSksIG51bGxwdHIsIG51bGxwdHIpOwogCiAgICAgcGxhdGZvcm1DcmVhdGVXZWJWaWV3KGNv
bmZpZ3VyYXRpb24uZ2V0KCksIG9wdGlvbnMpOwotICAgIFdLUGFnZVVJQ2xpZW50VjE1IHBhZ2VV
SUNsaWVudCA9IHsKLSAgICAgICAgeyAxNSwgbV9tYWluV2ViVmlldy5nZXQoKSB9LAorICAgIFdL
UGFnZVVJQ2xpZW50VjE2IHBhZ2VVSUNsaWVudCA9IHsKKyAgICAgICAgeyAxNiwgbV9tYWluV2Vi
Vmlldy5nZXQoKSB9LAogICAgICAgICAwLCAvLyBjcmVhdGVOZXdQYWdlX2RlcHJlY2F0ZWRGb3JV
c2VXaXRoVjAKICAgICAgICAgMCwgLy8gc2hvd1BhZ2UKICAgICAgICAgMCwgLy8gY2xvc2UKQEAg
LTc3NCw3ICs3OTAsOCBAQCB2b2lkIFRlc3RDb250cm9sbGVyOjpjcmVhdGVXZWJWaWV3V2l0aE9w
dGlvbnMoY29uc3QgVGVzdE9wdGlvbnMmIG9wdGlvbnMpCiAgICAgICAgIDAsIC8vIHJlcXVlc3RT
dG9yYWdlQWNjZXNzQ29uZmlybQogICAgICAgICBzaG91bGRBbGxvd0RldmljZU9yaWVudGF0aW9u
QW5kTW90aW9uQWNjZXNzLAogICAgICAgICBydW5XZWJBdXRoZW50aWNhdGlvblBhbmVsLAotICAg
ICAgICBkZWNpZGVQb2xpY3lGb3JTcGVlY2hSZWNvZ25pdGlvblBlcm1pc3Npb25SZXF1ZXN0Cisg
ICAgICAgIGRlY2lkZVBvbGljeUZvclNwZWVjaFJlY29nbml0aW9uUGVybWlzc2lvblJlcXVlc3Qs
CisgICAgICAgIGRlY2lkZVBvbGljeUZvck1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3QK
ICAgICB9OwogICAgIFdLUGFnZVNldFBhZ2VVSUNsaWVudChtX21haW5XZWJWaWV3LT5wYWdlKCks
ICZwYWdlVUlDbGllbnQuYmFzZSk7CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5u
ZXIvVGVzdENvbnRyb2xsZXIuaCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xs
ZXIuaAppbmRleCBiYjc1ZDUwNzAyYzNhNTNmMzlkZTE1ODFkY2M0ZDNiMzM3Mzk2NGNiLi44MThj
MmI0ZWM0YTU2MmJjMDY3YTRmM2Q1Y2ViYmNkYmQwNWMwNDdjIDEwMDY0NAotLS0gYS9Ub29scy9X
ZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmgKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1
bm5lci9UZXN0Q29udHJvbGxlci5oCkBAIC0zNTYsNiArMzU2LDkgQEAgcHVibGljOgogICAgIHZv
aWQgY29tcGxldGVTcGVlY2hSZWNvZ25pdGlvblBlcm1pc3Npb25DaGVjayhXS1NwZWVjaFJlY29n
bml0aW9uUGVybWlzc2lvbkNhbGxiYWNrUmVmKTsKICAgICB2b2lkIHNldElzU3BlZWNoUmVjb2du
aXRpb25QZXJtaXNzaW9uR3JhbnRlZChib29sKTsKIAorICAgIHZvaWQgY29tcGxldGVNZWRpYUtl
eVN5c3RlbVBlcm1pc3Npb25DaGVjayhXS01lZGlhS2V5U3lzdGVtUGVybWlzc2lvbkNhbGxiYWNr
UmVmKTsKKyAgICB2b2lkIHNldElzTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uR3JhbnRlZChib29s
KTsKKwogcHJpdmF0ZToKICAgICBXS1JldGFpblB0cjxXS1BhZ2VDb25maWd1cmF0aW9uUmVmPiBn
ZW5lcmF0ZVBhZ2VDb25maWd1cmF0aW9uKGNvbnN0IFRlc3RPcHRpb25zJik7CiAgICAgV0tSZXRh
aW5QdHI8V0tDb250ZXh0Q29uZmlndXJhdGlvblJlZj4gZ2VuZXJhdGVDb250ZXh0Q29uZmlndXJh
dGlvbihjb25zdCBUZXN0T3B0aW9ucyYpIGNvbnN0OwpAQCAtNjQ3LDYgKzY1MCw4IEBAIHByaXZh
dGU6CiAjZW5kaWYKIAogICAgIGJvb2wgbV9pc1NwZWVjaFJlY29nbml0aW9uUGVybWlzc2lvbkdy
YW50ZWQgeyBmYWxzZSB9OworCisgICAgYm9vbCBtX2lzTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9u
R3JhbnRlZCB7IHRydWUgfTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdUUgpkaWZmIC0tZ2l0IGEv
VG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0SW52b2NhdGlvbi5jcHAgYi9Ub29scy9XZWJLaXRU
ZXN0UnVubmVyL1Rlc3RJbnZvY2F0aW9uLmNwcAppbmRleCA1OThkZmM3ZDFhYzBlMzdiYjIyZmI3
ODRiYTE1NGFiNzQ3N2FlYTE1Li41NTAzNTVjN2I4Yjk4NDg0YTdkMjhjZjU1OTVmNjM4NzUxN2Jm
NGJhIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RJbnZvY2F0aW9uLmNw
cAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RJbnZvY2F0aW9uLmNwcApAQCAtMTM2
MCw2ICsxMzYwLDExIEBAIFdLUmV0YWluUHRyPFdLVHlwZVJlZj4gVGVzdEludm9jYXRpb246OmRp
ZFJlY2VpdmVTeW5jaHJvbm91c01lc3NhZ2VGcm9tSW5qZWN0ZWRCCiAgICAgICAgIHJldHVybiBu
dWxscHRyOwogICAgIH0KIAorICAgIGlmIChXS1N0cmluZ0lzRXF1YWxUb1VURjhDU3RyaW5nKG1l
c3NhZ2VOYW1lLCAic2V0SXNNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25HcmFudGVkIikpIHsKKyAg
ICAgICAgVGVzdENvbnRyb2xsZXI6OnNpbmdsZXRvbigpLnNldElzTWVkaWFLZXlTeXN0ZW1QZXJt
aXNzaW9uR3JhbnRlZChib29sZWFuVmFsdWUobWVzc2FnZUJvZHkpKTsKKyAgICAgICAgcmV0dXJu
IG51bGxwdHI7CisgICAgfQorCiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgcmV0dXJu
IG51bGxwdHI7CiB9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cKaW5kZXggMDJjZjNlOThhZGFjYmI5M2M5NTNhZTIwMGNiYzAzYmJmZmNi
MDQ4OC4uZDFmY2Q0YzI0Mzg4MGNmZDcwMDA2ZDkxYjYyYmMwZjM5ZDk4YjBiNCAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDE2IEBACisyMDIxLTAxLTMxICBQaGlsaXBwZSBOb3JtYW5kICA8cG5vcm1hbmRAaWdh
bGlhLmNvbT4KKworICAgICAgICBQZXJtaXNzaW9uIHJlcXVlc3QgQVBJIGZvciBNZWRpYUtleVN5
c3RlbSBhY2Nlc3Mgc3VwcG9ydAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MjIxMTg3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgQWRkIGJhc2ljIGNvdmVyYWdlIHN1cHBvcnQgZm9yIG92ZXJyaWRpbmcgdGhl
IE1lZGlhS2V5U3lzdGVtIHBlcm1pc3Npb24gYW5zd2VyIGFuZCB0aHVzIGhhdmUKKyAgICAgICAg
dGhlIHByb21pc2UgcmVqZWN0aW9uIHRlc3RlZCBpbiB0aGlzIGNhc2UuCisKKyAgICAgICAgKiBt
ZWRpYS9lbmNyeXB0ZWQtbWVkaWEvbW9jay1NZWRpYUtleVN5c3RlbUFjY2Vzcy1leHBlY3RlZC50
eHQ6CisgICAgICAgICogbWVkaWEvZW5jcnlwdGVkLW1lZGlhL21vY2stTWVkaWFLZXlTeXN0ZW1B
Y2Nlc3MuaHRtbDoKKwogMjAyMS0wMi0wMSAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUu
Y29tPgogCiAgICAgICAgIFtKU0NdIEFkZCBAIGluIEVycm9yLnN0YWNrIGlmIFVSTCBleGlzdHMK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL21lZGlhL2VuY3J5cHRlZC1tZWRpYS9tb2NrLU1lZGlh
S2V5U3lzdGVtQWNjZXNzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL21lZGlhL2VuY3J5cHRl
ZC1tZWRpYS9tb2NrLU1lZGlhS2V5U3lzdGVtQWNjZXNzLWV4cGVjdGVkLnR4dAppbmRleCAyMDky
MzRkNTExOThmMGMxMjQ4YWVkNmVjM2I3NTYzYTE3NTBkZGM0Li4xMjBiYTFmMmMyODdjZWI3Njhl
ZjBhNmY0YTJmOGU0OTJlZWE0YWEwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9tZWRpYS9lbmNy
eXB0ZWQtbWVkaWEvbW9jay1NZWRpYUtleVN5c3RlbUFjY2Vzcy1leHBlY3RlZC50eHQKKysrIGIv
TGF5b3V0VGVzdHMvbWVkaWEvZW5jcnlwdGVkLW1lZGlhL21vY2stTWVkaWFLZXlTeXN0ZW1BY2Nl
c3MtZXhwZWN0ZWQudHh0CkBAIC0zMSw2ICszMSwxMCBAQCBSVU4oY2FwYWJpbGl0aWVzLnBlcnNp
c3RlbnRTdGF0ZSA9ICJub3QtYWxsb3dlZCIpCiBSVU4ocHJvbWlzZSA9IG5hdmlnYXRvci5yZXF1
ZXN0TWVkaWFLZXlTeXN0ZW1BY2Nlc3MoIm9yZy53ZWJraXQubW9jayIsIFtjYXBhYmlsaXRpZXNd
KSkKIFByb21pc2UgcmVzb2x2ZWQgT0sKIAorUlVOKHRlc3RSdW5uZXIuc2V0SXNNZWRpYUtleVN5
c3RlbVBlcm1pc3Npb25HcmFudGVkKGZhbHNlKSkKK1JVTihwcm9taXNlID0gbmF2aWdhdG9yLnJl
cXVlc3RNZWRpYUtleVN5c3RlbUFjY2Vzcygib3JnLndlYmtpdC5tb2NrIiwgW2NhcGFiaWxpdGll
c10pKQorUHJvbWlzZSByZWplY3RlZCBjb3JyZWN0bHkgT0sKKwogUlVOKHByb21pc2UgPSBtZWRp
YUtleVN5c3RlbUFjY2Vzcy5jcmVhdGVNZWRpYUtleXMoKSkKIFByb21pc2UgcmVzb2x2ZWQgT0sK
IApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvbWVkaWEvZW5jcnlwdGVkLW1lZGlhL21vY2stTWVk
aWFLZXlTeXN0ZW1BY2Nlc3MuaHRtbCBiL0xheW91dFRlc3RzL21lZGlhL2VuY3J5cHRlZC1tZWRp
YS9tb2NrLU1lZGlhS2V5U3lzdGVtQWNjZXNzLmh0bWwKaW5kZXggNDc5NmYxOGMyMDFmMTc0NmQ3
ZGY0MzI3NDJkOTc1Yzc1ZWU0YmE3NS4uNTU1YjllZTc2OWVlYmQxNmQ5YTY3NjkyYjYzNzAzZDRj
YTMyYzcwOSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvbWVkaWEvZW5jcnlwdGVkLW1lZGlhL21v
Y2stTWVkaWFLZXlTeXN0ZW1BY2Nlc3MuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9tZWRpYS9lbmNy
eXB0ZWQtbWVkaWEvbW9jay1NZWRpYUtleVN5c3RlbUFjY2Vzcy5odG1sCkBAIC04NCw2ICs4NCwx
MyBAQAogICAgICAgICB9LAogCiAgICAgICAgIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgcnVu
KCd0ZXN0UnVubmVyLnNldElzTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uR3JhbnRlZChmYWxzZSkn
KTsKKyAgICAgICAgICAgIHJ1bigncHJvbWlzZSA9IG5hdmlnYXRvci5yZXF1ZXN0TWVkaWFLZXlT
eXN0ZW1BY2Nlc3MoIm9yZy53ZWJraXQubW9jayIsIFtjYXBhYmlsaXRpZXNdKScpOworICAgICAg
ICAgICAgc2hvdWxkUmVqZWN0KHByb21pc2UpLnRoZW4obmV4dCwgbmV4dCk7CisgICAgICAgIH0s
CisKKyAgICAgICAgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICB0ZXN0UnVubmVyLnNldElzTWVk
aWFLZXlTeXN0ZW1QZXJtaXNzaW9uR3JhbnRlZCh0cnVlKTsKICAgICAgICAgICAgIHJ1bigncHJv
bWlzZSA9IG1lZGlhS2V5U3lzdGVtQWNjZXNzLmNyZWF0ZU1lZGlhS2V5cygpJyk7CiAgICAgICAg
ICAgICBzaG91bGRSZXNvbHZlKHByb21pc2UpLnRoZW4obmV4dCwgbmV4dCk7CiAgICAgICAgIH0s
Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>418859</attachid>
            <date>2021-02-01 05:04:42 -0800</date>
            <delta_ts>2021-02-01 08:45:45 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-221187-20210201050440.patch</filename>
            <type>text/plain</type>
            <size>128316</size>
            <attacher name="Philippe Normand">pnormand</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcyMTM5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNGQzNzA5MTUyYzFmMmU1
Y2U1MmZmOTliZTIyNjY2MTM1MDhmOTdhNS4uMzQzZDgwM2IyNWZjODIyMDFiZjcyYmRhODBlNmIx
NGE5MjQyNDFjYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ4IEBACisyMDIxLTAxLTMxICBQaGls
aXBwZSBOb3JtYW5kICA8cG5vcm1hbmRAaWdhbGlhLmNvbT4KKworICAgICAgICBQZXJtaXNzaW9u
IHJlcXVlc3QgQVBJIGZvciBNZWRpYUtleVN5c3RlbSBhY2Nlc3Mgc3VwcG9ydAorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjIxMTg3CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgU3VwcG9ydCBmb3IgdXNlciBw
ZXJtaXNzaW9uIHJlcXVlc3Rpbmcgd2hlbiBhY2Nlc3MgdG8gYW4gRU1FIE1lZGlhS2V5U3lzdGVt
IGlzIGJlaW5nCisgICAgICAgIHJlcXVlc3RlZCBieSB0aGUgcGFnZS4gVGhpcyBpcyBzaW1pbGFy
IHRvIHRoZSBtZWRpYURldmljZXMgYWNjZXNzIGd1YXJkcy4KKworICAgICAgICBFeGlzdGluZyB0
ZXN0IG1lZGlhL2VuY3J5cHRlZC1tZWRpYS9tb2NrLU1lZGlhS2V5U3lzdGVtQWNjZXNzLmh0bWwg
d2FzIHVwZGF0ZWQgdG8gY292ZXIgdGhpcworICAgICAgICBuZXcgY29kZSBwYXRoIGFuZCBXUEUv
R1RLIEFQSSB0ZXN0cyBhcyB3ZWxsLgorCisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6CisgICAg
ICAgICogSGVhZGVycy5jbWFrZToKKyAgICAgICAgKiBNb2R1bGVzL2VuY3J5cHRlZG1lZGlhL01l
ZGlhS2V5U3lzdGVtQ2xpZW50Lmg6IEFkZGVkLgorICAgICAgICAqIE1vZHVsZXMvZW5jcnlwdGVk
bWVkaWEvTWVkaWFLZXlTeXN0ZW1Db250cm9sbGVyLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJD
b3JlOjpNZWRpYUtleVN5c3RlbUNvbnRyb2xsZXI6OnN1cHBsZW1lbnROYW1lKToKKyAgICAgICAg
KFdlYkNvcmU6Ok1lZGlhS2V5U3lzdGVtQ29udHJvbGxlcjo6TWVkaWFLZXlTeXN0ZW1Db250cm9s
bGVyKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhS2V5U3lzdGVtQ29udHJvbGxlcjo6fk1lZGlh
S2V5U3lzdGVtQ29udHJvbGxlcik6CisgICAgICAgIChXZWJDb3JlOjpwcm92aWRlTWVkaWFLZXlT
eXN0ZW1Ubyk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYUtleVN5c3RlbUNvbnRyb2xsZXI6Omxv
Z1JlcXVlc3RNZWRpYUtleVN5c3RlbURlbmlhbCk6CisgICAgICAgICogTW9kdWxlcy9lbmNyeXB0
ZWRtZWRpYS9NZWRpYUtleVN5c3RlbUNvbnRyb2xsZXIuaDogQWRkZWQuCisgICAgICAgIChXZWJD
b3JlOjpNZWRpYUtleVN5c3RlbUNvbnRyb2xsZXI6OmNsaWVudCBjb25zdCk6CisgICAgICAgIChX
ZWJDb3JlOjpNZWRpYUtleVN5c3RlbUNvbnRyb2xsZXI6OmZyb20pOgorICAgICAgICAoV2ViQ29y
ZTo6TWVkaWFLZXlTeXN0ZW1Db250cm9sbGVyOjpyZXF1ZXN0TWVkaWFLZXlTeXN0ZW0pOgorICAg
ICAgICAoV2ViQ29yZTo6TWVkaWFLZXlTeXN0ZW1Db250cm9sbGVyOjpjYW5jZWxNZWRpYUtleVN5
c3RlbVJlcXVlc3QpOgorICAgICAgICAqIE1vZHVsZXMvZW5jcnlwdGVkbWVkaWEvTWVkaWFLZXlT
eXN0ZW1SZXF1ZXN0LmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpNZWRpYUtleVN5c3Rl
bVJlcXVlc3Q6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYUtleVN5c3RlbVJlcXVl
c3Q6Ok1lZGlhS2V5U3lzdGVtUmVxdWVzdCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYUtleVN5
c3RlbVJlcXVlc3Q6On5NZWRpYUtleVN5c3RlbVJlcXVlc3QpOgorICAgICAgICAoV2ViQ29yZTo6
TWVkaWFLZXlTeXN0ZW1SZXF1ZXN0Ojp0b3BMZXZlbERvY3VtZW50T3JpZ2luIGNvbnN0KToKKyAg
ICAgICAgKFdlYkNvcmU6Ok1lZGlhS2V5U3lzdGVtUmVxdWVzdDo6c3RhcnQpOgorICAgICAgICAo
V2ViQ29yZTo6TWVkaWFLZXlTeXN0ZW1SZXF1ZXN0OjphbGxvdyk6CisgICAgICAgIChXZWJDb3Jl
OjpNZWRpYUtleVN5c3RlbVJlcXVlc3Q6OmRlbnkpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFL
ZXlTeXN0ZW1SZXF1ZXN0OjpzdG9wKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhS2V5U3lzdGVt
UmVxdWVzdDo6YWN0aXZlRE9NT2JqZWN0TmFtZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpN
ZWRpYUtleVN5c3RlbVJlcXVlc3Q6OmRvY3VtZW50IGNvbnN0KToKKyAgICAgICAgKiBNb2R1bGVz
L2VuY3J5cHRlZG1lZGlhL01lZGlhS2V5U3lzdGVtUmVxdWVzdC5oOiBBZGRlZC4KKyAgICAgICAg
KFdlYkNvcmU6Ok1lZGlhS2V5U3lzdGVtUmVxdWVzdDo6c2V0QWxsb3dDYWxsYmFjayk6CisgICAg
ICAgIChXZWJDb3JlOjpNZWRpYUtleVN5c3RlbVJlcXVlc3Q6OmlkZW50aWZpZXIgY29uc3QpOgor
ICAgICAgICAoV2ViQ29yZTo6TWVkaWFLZXlTeXN0ZW1SZXF1ZXN0OjprZXlTeXN0ZW0gY29uc3Qp
OgorICAgICAgICAqIE1vZHVsZXMvZW5jcnlwdGVkbWVkaWEvTmF2aWdhdG9yRU1FLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6Ok5hdmlnYXRvckVNRTo6cmVxdWVzdE1lZGlhS2V5U3lzdGVtQWNjZXNz
KToKKwogMjAyMS0wMi0wMSAgWGFiaWVyIFJvZHJpZ3VleiBDYWx2YXIgIDxjYWx2YXJpc0BpZ2Fs
aWEuY29tPgogCiAgICAgICAgIFtHU3RyZWFtZXJdW0VNRV1bVGh1bmRlcl0gQWRkIHZpZGVvL3gt
dnA5IGFzIHN1cHBvcnRlZCBmb3IgY2VuYyBhbmQgY2JjcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCAyY2FkNzhmMWU2
ZWY0ODk5ZDZmZTMwNDdlOTM5MzJkY2ViOTNiMWUyLi4wZDJlMTgzYTk0OGM4MjI4MzAyYTJhNzNm
NWE0ZTFmZjUxODZmMjA4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysg
Yi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDk2IEBACisyMDIxLTAxLTMxICBQ
aGlsaXBwZSBOb3JtYW5kICA8cG5vcm1hbmRAaWdhbGlhLmNvbT4KKworICAgICAgICBQZXJtaXNz
aW9uIHJlcXVlc3QgQVBJIGZvciBNZWRpYUtleVN5c3RlbSBhY2Nlc3Mgc3VwcG9ydAorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjIxMTg3CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIG5ldyBJUEMgYW5k
IEMgQVBJIGV4cG9zaW5nIE1lZGlhS2V5U3lzdGVtIGFjY2VzcyBwZXJtaXNzaW9ucyB0byB0aGUg
VUlQcm9jZXNzLiBBdCBsZWFzdAorICAgICAgICBHVEsvV1BFIHdvdWxkIGxpa2UgdG8gaGF2ZSBB
UEkgZm9yIGFza2luZyBwZXJtaXNzaW9uIHRvIHRoZSB1c2VyIHdoZW4gRU1FJ3MgTWVkaWFLZXlB
Y2Nlc3MKKyAgICAgICAgaXMgYmVpbmcgcmVxdWVzdGVkIGJ5IGEgcGFnZS4gT24gQXBwbGUgcGxh
dGZvcm1zIHRoZSBwZXJtaXNzaW9uIGlzIGdyYW50ZWQgYnkgZGVmYXVsdCB1bnRpbAorICAgICAg
ICBhIGRlY2lzaW9uIGlzIG1hZGUgYWJvdXQgc3VwcG9ydGluZyB0aGlzIGluIHRoZWlyIEFQSVVJ
Q2xpZW50LgorCisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6CisgICAgICAgICogSGVhZGVycy5j
bWFrZToKKyAgICAgICAgKiBQbGF0Zm9ybS9Mb2dnaW5nLmg6CisgICAgICAgICogU2hhcmVkL0FQ
SS9BUElPYmplY3QuaDoKKyAgICAgICAgKiBTaGFyZWQvQVBJL2MvV0tCYXNlLmg6CisgICAgICAg
ICogU291cmNlcy50eHQ6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9BUElVSUNsaWVudC5oOgor
ICAgICAgICAoQVBJOjpVSUNsaWVudDo6ZGVjaWRlUG9saWN5Rm9yTWVkaWFLZXlTeXN0ZW1QZXJt
aXNzaW9uUmVxdWVzdCk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dLQVBJQ2FzdC5oOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS01lZGlhS2V5U3lzdGVtUGVybWlzc2lvbkNhbGxi
YWNrLmNwcDogQWRkZWQuCisgICAgICAgIChXS01lZGlhS2V5U3lzdGVtUGVybWlzc2lvbkNhbGxi
YWNrR2V0VHlwZUlEKToKKyAgICAgICAgKFdLTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uQ2FsbGJh
Y2tDb21wbGV0ZSk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dLTWVkaWFLZXlTeXN0ZW1Q
ZXJtaXNzaW9uQ2FsbGJhY2suaDogQWRkZWQuCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dL
UGFnZS5jcHA6CisgICAgICAgIChXS1BhZ2VTZXRQYWdlVUlDbGllbnQpOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9BUEkvQy9XS1BhZ2VVSUNsaWVudC5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9NZWRp
YUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0Lmg6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpN
ZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0OjpjcmVhdGUpOgorICAgICAgICAoV2ViS2l0
OjpNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0Ojpjb21wbGV0ZSk6CisgICAgICAgIChX
ZWJLaXQ6Ok1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3Q6OmtleVN5c3RlbSBjb25zdCk6
CisgICAgICAgIChXZWJLaXQ6Ok1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3Q6Ok1lZGlh
S2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3QpOgorICAgICAgICAoV2ViS2l0OjpNZWRpYUtleVN5
c3RlbVBlcm1pc3Npb25DYWxsYmFjazo6Y3JlYXRlKToKKyAgICAgICAgKFdlYktpdDo6TWVkaWFL
ZXlTeXN0ZW1QZXJtaXNzaW9uQ2FsbGJhY2s6OmNvbXBsZXRlKToKKyAgICAgICAgKFdlYktpdDo6
TWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uQ2FsbGJhY2s6Ok1lZGlhS2V5U3lzdGVtUGVybWlzc2lv
bkNhbGxiYWNrKToKKyAgICAgICAgKiBVSVByb2Nlc3MvTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9u
UmVxdWVzdE1hbmFnZXJQcm94eS5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpNZWRpYUtl
eVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5OjpNZWRpYUtleVN5c3RlbVBlcm1p
c3Npb25SZXF1ZXN0TWFuYWdlclByb3h5KToKKyAgICAgICAgKFdlYktpdDo6TWVkaWFLZXlTeXN0
ZW1QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6fk1lZGlhS2V5U3lzdGVtUGVybWlzc2lv
blJlcXVlc3RNYW5hZ2VyUHJveHkpOgorICAgICAgICAoV2ViS2l0OjpNZWRpYUtleVN5c3RlbVBl
cm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5OjppbnZhbGlkYXRlUGVuZGluZ1JlcXVlc3RzKToK
KyAgICAgICAgKFdlYktpdDo6TWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQ
cm94eTo6ZGVueVJlcXVlc3QpOgorICAgICAgICAoV2ViS2l0OjpNZWRpYUtleVN5c3RlbVBlcm1p
c3Npb25SZXF1ZXN0TWFuYWdlclByb3h5OjpncmFudFJlcXVlc3QpOgorICAgICAgICAoV2ViS2l0
OjpNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5OjpjcmVhdGVSZXF1
ZXN0Rm9yRnJhbWUpOgorICAgICAgICAoV2ViS2l0OjpNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25S
ZXF1ZXN0TWFuYWdlclByb3h5Ojpsb2dDaGFubmVsIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6
TWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6bG9nZ2VyIGNvbnN0
KToKKyAgICAgICAgKiBVSVByb2Nlc3MvTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdE1h
bmFnZXJQcm94eS5oOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6TWVkaWFLZXlTeXN0ZW1QZXJt
aXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6cGFnZSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6
Ok1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6OmRlbnlSZXF1ZXN0
KToKKyAgICAgICAgKiBVSVByb2Nlc3MvTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdFBy
b3h5LmNwcDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6Ok1lZGlhS2V5U3lzdGVtUGVybWlzc2lv
blJlcXVlc3RQcm94eTo6TWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdFByb3h5KToKKyAg
ICAgICAgKFdlYktpdDo6TWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdFByb3h5OjphbGxv
dyk6CisgICAgICAgIChXZWJLaXQ6Ok1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RQcm94
eTo6ZGVueSk6CisgICAgICAgIChXZWJLaXQ6Ok1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVl
c3RQcm94eTo6aW52YWxpZGF0ZSk6CisgICAgICAgIChXZWJLaXQ6Ok1lZGlhS2V5U3lzdGVtUGVy
bWlzc2lvblJlcXVlc3RQcm94eTo6ZG9EZWZhdWx0QWN0aW9uKToKKyAgICAgICAgKiBVSVByb2Nl
c3MvTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdFByb3h5Lmg6IEFkZGVkLgorICAgICAg
ICAoV2ViS2l0OjpNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0UHJveHk6OmNyZWF0ZSk6
CisgICAgICAgIChXZWJLaXQ6Ok1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RQcm94eTo6
aXNQZW5kaW5nIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6TWVkaWFLZXlTeXN0ZW1QZXJtaXNz
aW9uUmVxdWVzdFByb3h5OjptZWRpYUtleVN5c3RlbUlEIGNvbnN0KToKKyAgICAgICAgKFdlYktp
dDo6TWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdFByb3h5OjptYWluRnJhbWVJRCBjb25z
dCk6CisgICAgICAgIChXZWJLaXQ6Ok1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RQcm94
eTo6ZnJhbWVJRCBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6Ok1lZGlhS2V5U3lzdGVtUGVybWlz
c2lvblJlcXVlc3RQcm94eTo6dG9wTGV2ZWxEb2N1bWVudFNlY3VyaXR5T3JpZ2luKToKKyAgICAg
ICAgKFdlYktpdDo6TWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdFByb3h5Ojp0b3BMZXZl
bERvY3VtZW50U2VjdXJpdHlPcmlnaW4gY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpNZWRpYUtl
eVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0UHJveHk6OmtleVN5c3RlbSBjb25zdCk6CisgICAgICAg
ICogVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZS5o
OgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0
OjpXZWJQYWdlUHJveHk6OnJlcXVlc3RNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25Gb3JGcmFtZSk6
CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6bWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9u
UmVxdWVzdE1hbmFnZXIpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OnJlcXVlc3RN
ZWRpYUtleVN5c3RlbVBlcm1pc3Npb25CeURlZmF1bHRBY3Rpb24pOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9XZWJQYWdlUHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1l
c3NhZ2VzLmluOgorICAgICAgICAqIFdlYlByb2Nlc3MvRW5jcnlwdGVkTWVkaWEvTWVkaWFLZXlT
eXN0ZW1QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYktp
dDo6TWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXI6Ok1lZGlhS2V5U3lzdGVt
UGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyKToKKyAgICAgICAgKFdlYktpdDo6TWVkaWFLZXlTeXN0
ZW1QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXI6OnN0YXJ0TWVkaWFLZXlTeXN0ZW1SZXF1ZXN0KToK
KyAgICAgICAgKFdlYktpdDo6TWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXI6
OnNlbmRNZWRpYUtleVN5c3RlbVJlcXVlc3QpOgorICAgICAgICAoV2ViS2l0OjpNZWRpYUtleVN5
c3RlbVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcjo6Y2FuY2VsTWVkaWFLZXlTeXN0ZW1SZXF1ZXN0
KToKKyAgICAgICAgKFdlYktpdDo6TWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdE1hbmFn
ZXI6Om1lZGlhS2V5U3lzdGVtV2FzR3JhbnRlZCk6CisgICAgICAgIChXZWJLaXQ6Ok1lZGlhS2V5
U3lzdGVtUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyOjptZWRpYUtleVN5c3RlbVdhc0RlbmllZCk6
CisgICAgICAgICogV2ViUHJvY2Vzcy9FbmNyeXB0ZWRNZWRpYS9NZWRpYUtleVN5c3RlbVBlcm1p
c3Npb25SZXF1ZXN0TWFuYWdlci5oOiBBZGRlZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNv
cmVTdXBwb3J0L1dlYk1lZGlhS2V5U3lzdGVtQ2xpZW50LmNwcDogQWRkZWQuCisgICAgICAgIChX
ZWJLaXQ6OldlYk1lZGlhS2V5U3lzdGVtQ2xpZW50OjpXZWJNZWRpYUtleVN5c3RlbUNsaWVudCk6
CisgICAgICAgIChXZWJLaXQ6OldlYk1lZGlhS2V5U3lzdGVtQ2xpZW50OjpwYWdlRGVzdHJveWVk
KToKKyAgICAgICAgKFdlYktpdDo6V2ViTWVkaWFLZXlTeXN0ZW1DbGllbnQ6OnJlcXVlc3RNZWRp
YUtleVN5c3RlbSk6CisgICAgICAgIChXZWJLaXQ6OldlYk1lZGlhS2V5U3lzdGVtQ2xpZW50Ojpj
YW5jZWxNZWRpYUtleVN5c3RlbVJlcXVlc3QpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29y
ZVN1cHBvcnQvV2ViTWVkaWFLZXlTeXN0ZW1DbGllbnQuaDogQWRkZWQuCisgICAgICAgIChXZWJL
aXQ6OldlYk1lZGlhS2V5U3lzdGVtQ2xpZW50Ojp+V2ViTWVkaWFLZXlTeXN0ZW1DbGllbnQpOgor
ICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcDoKKyAgICAgICAgKFdlYktp
dDo6bV9saW1pdHNOYXZpZ2F0aW9uc1RvQXBwQm91bmREb21haW5zKToKKyAgICAgICAgKFdlYktp
dDo6V2ViUGFnZTo6bWVkaWFLZXlTeXN0ZW1XYXNHcmFudGVkKToKKyAgICAgICAgKFdlYktpdDo6
V2ViUGFnZTo6bWVkaWFLZXlTeXN0ZW1XYXNEZW5pZWQpOgorICAgICAgICAqIFdlYlByb2Nlc3Mv
V2ViUGFnZS9XZWJQYWdlLmg6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6Om1lZGlhS2V5U3lz
dGVtUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBh
Z2UvV2ViUGFnZS5tZXNzYWdlcy5pbjoKKwogMjAyMS0wMi0wMSAgQ2FybG9zIEdhcmNpYSBDYW1w
b3MgIDxjZ2FyY2lhQGlnYWxpYS5jb20+CiAKICAgICAgICAgW1NPVVBdIEFkZCBzdXBwb3J0IGZv
ciBkYXRhIFVSTHMgaW4gdGhlIG5ldHdvcmsgcHJvY2VzcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAppbmRl
eCBiYWE0NTNkNmNmMWMyMmU2NTkzMTE1NDRiMDI2Yjc4YWQ0YjU4ZDY0Li5iMmYxNjc5MDEyYzAz
YjgwZGZjNTRkMjQ3OGZmMGJlMmU4MjRlMGI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9D
TWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dApAQCAtMTQ5
Nyw2ICsxNDk3LDggQEAgaWYgKEVOQUJMRV9FTkNSWVBURURfTUVESUEpCiAgICAgICAgIE1vZHVs
ZXMvZW5jcnlwdGVkbWVkaWEvTWVkaWFLZXlTZXNzaW9uLmNwcAogICAgICAgICBNb2R1bGVzL2Vu
Y3J5cHRlZG1lZGlhL01lZGlhS2V5U3RhdHVzTWFwLmNwcAogICAgICAgICBNb2R1bGVzL2VuY3J5
cHRlZG1lZGlhL01lZGlhS2V5U3lzdGVtQWNjZXNzLmNwcAorICAgICAgICBNb2R1bGVzL2VuY3J5
cHRlZG1lZGlhL01lZGlhS2V5U3lzdGVtQ29udHJvbGxlci5jcHAKKyAgICAgICAgTW9kdWxlcy9l
bmNyeXB0ZWRtZWRpYS9NZWRpYUtleVN5c3RlbVJlcXVlc3QuY3BwCiAgICAgICAgIE1vZHVsZXMv
ZW5jcnlwdGVkbWVkaWEvTWVkaWFLZXlzLmNwcAogICAgICAgICBNb2R1bGVzL2VuY3J5cHRlZG1l
ZGlhL05hdmlnYXRvckVNRS5jcHAKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvSGVhZGVy
cy5jbWFrZSBiL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKaW5kZXggYWJhMTVlMGVkN2Ew
MTQ2NDU4MmYzZjkyODBlNjc4YjNkYjI4ZjYzMi4uOGMxYjZjMzI3ODJhOTFkOWM0MTRjNjEwYjQ5
ZTY3OWVlYjYwYmI2OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQor
KysgYi9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCkBAIC0yNCw2ICsyNCw5IEBAIHNldChX
ZWJDb3JlX1BSSVZBVEVfRlJBTUVXT1JLX0hFQURFUlMKICAgICBNb2R1bGVzL2NvbnRhY3QtcGlj
a2VyL0NvbnRhY3RzUmVxdWVzdERhdGEuaAogCiAgICAgTW9kdWxlcy9lbmNyeXB0ZWRtZWRpYS9D
RE1DbGllbnQuaAorICAgIE1vZHVsZXMvZW5jcnlwdGVkbWVkaWEvTWVkaWFLZXlTeXN0ZW1DbGll
bnQuaAorICAgIE1vZHVsZXMvZW5jcnlwdGVkbWVkaWEvTWVkaWFLZXlTeXN0ZW1Db250cm9sbGVy
LmgKKyAgICBNb2R1bGVzL2VuY3J5cHRlZG1lZGlhL01lZGlhS2V5U3lzdGVtUmVxdWVzdC5oCiAK
ICAgICBNb2R1bGVzL2ZldGNoL0ZldGNoQm9keUNvbnN1bWVyLmgKICAgICBNb2R1bGVzL2ZldGNo
L0ZldGNoQm9keVNvdXJjZS5oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2Vu
Y3J5cHRlZG1lZGlhL01lZGlhS2V5U3lzdGVtQ2xpZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2VuY3J5cHRlZG1lZGlhL01lZGlhS2V5U3lzdGVtQ2xpZW50LmgKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNTNk
MzBiMWQwZjg5ZTAwNTBhYWQwNDIyN2ExMGU4NDQwMjk4Mjk3YgotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZW5jcnlwdGVkbWVkaWEvTWVkaWFLZXlTeXN0ZW1DbGll
bnQuaApAQCAtMCwwICsxLDUyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIElnYWxpYSBT
LkwuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiAg
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
VEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQor
ICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBD
T05TRVFVRU5USUFMIERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTgorICogQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElT
CisgKiBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShFTkNSWVBURURfTUVE
SUEpCisKKyNpbmNsdWRlIDx3dGYvQ29tcGxldGlvbkhhbmRsZXIuaD4KKworbmFtZXNwYWNlIFdl
YkNvcmUgeworCitjbGFzcyBEb2N1bWVudDsKK2NsYXNzIFBhZ2U7CitjbGFzcyBNZWRpYUtleVN5
c3RlbVJlcXVlc3Q7CisKK2NsYXNzIE1lZGlhS2V5U3lzdGVtQ2xpZW50IHsKK3B1YmxpYzoKKyAg
ICB2aXJ0dWFsIHZvaWQgcGFnZURlc3Ryb3llZCgpID0gMDsKKworICAgIHZpcnR1YWwgdm9pZCBy
ZXF1ZXN0TWVkaWFLZXlTeXN0ZW0oTWVkaWFLZXlTeXN0ZW1SZXF1ZXN0JikgPSAwOworICAgIHZp
cnR1YWwgdm9pZCBjYW5jZWxNZWRpYUtleVN5c3RlbVJlcXVlc3QoTWVkaWFLZXlTeXN0ZW1SZXF1
ZXN0JikgPSAwOworCitwcm90ZWN0ZWQ6CisgICAgdmlydHVhbCB+TWVkaWFLZXlTeXN0ZW1DbGll
bnQoKSA9IGRlZmF1bHQ7Cit9OworCitXRUJDT1JFX0VYUE9SVCB2b2lkIHByb3ZpZGVNZWRpYUtl
eVN5c3RlbVRvKFBhZ2UqLCBNZWRpYUtleVN5c3RlbUNsaWVudCopOworCit9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoRU5DUllQVEVEX01FRElBKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9lbmNyeXB0ZWRtZWRpYS9NZWRpYUtleVN5c3RlbUNv
bnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9lbmNyeXB0ZWRtZWRpYS9NZWRp
YUtleVN5c3RlbUNvbnRyb2xsZXIuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjEyMmJhODI1YzJjNzM3NjBjOWFk
ODNiMDIzZGZmMGZhMDI3ZDRlNDkKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2VuY3J5cHRlZG1lZGlhL01lZGlhS2V5U3lzdGVtQ29udHJvbGxlci5jcHAKQEAgLTAs
MCArMSw2NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBJZ2FsaWEgUy5MLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFO
RCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVE
CisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKKyAqIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElB
TCBEQU1BR0VTCisgKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7CisgKiBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04KKyAqIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUworICogU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIk1lZGlhS2V5U3lzdGVtQ29udHJv
bGxlci5oIgorCisjaWYgRU5BQkxFKEVOQ1JZUFRFRF9NRURJQSkKKworI2luY2x1ZGUgIkRPTVdp
bmRvdy5oIgorI2luY2x1ZGUgIkRvY3VtZW50LmgiCisjaW5jbHVkZSAiRnJhbWUuaCIKKyNpbmNs
dWRlICJIVE1MSUZyYW1lRWxlbWVudC5oIgorI2luY2x1ZGUgIk1lZGlhS2V5U3lzdGVtUmVxdWVz
dC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NvbnN0IGNoYXIqIE1lZGlhS2V5U3lzdGVt
Q29udHJvbGxlcjo6c3VwcGxlbWVudE5hbWUoKQoreworICAgIHJldHVybiAiTWVkaWFLZXlTeXN0
ZW1Db250cm9sbGVyIjsKK30KKworTWVkaWFLZXlTeXN0ZW1Db250cm9sbGVyOjpNZWRpYUtleVN5
c3RlbUNvbnRyb2xsZXIoTWVkaWFLZXlTeXN0ZW1DbGllbnQqIGNsaWVudCkKKyAgICA6IG1fY2xp
ZW50KGNsaWVudCkKK3sKK30KKworTWVkaWFLZXlTeXN0ZW1Db250cm9sbGVyOjp+TWVkaWFLZXlT
eXN0ZW1Db250cm9sbGVyKCkKK3sKKyAgICBtX2NsaWVudC0+cGFnZURlc3Ryb3llZCgpOworfQor
Cit2b2lkIHByb3ZpZGVNZWRpYUtleVN5c3RlbVRvKFBhZ2UqIHBhZ2UsIE1lZGlhS2V5U3lzdGVt
Q2xpZW50KiBjbGllbnQpCit7CisgICAgTWVkaWFLZXlTeXN0ZW1Db250cm9sbGVyOjpwcm92aWRl
VG8ocGFnZSwgTWVkaWFLZXlTeXN0ZW1Db250cm9sbGVyOjpzdXBwbGVtZW50TmFtZSgpLCBtYWtl
VW5pcXVlPE1lZGlhS2V5U3lzdGVtQ29udHJvbGxlcj4oY2xpZW50KSk7Cit9CisKK3ZvaWQgTWVk
aWFLZXlTeXN0ZW1Db250cm9sbGVyOjpsb2dSZXF1ZXN0TWVkaWFLZXlTeXN0ZW1EZW5pYWwoRG9j
dW1lbnQmIGRvY3VtZW50KQoreworICAgIGlmIChhdXRvKiB3aW5kb3cgPSBkb2N1bWVudC5kb21X
aW5kb3coKSkKKyAgICAgICAgd2luZG93LT5wcmludEVycm9yTWVzc2FnZShtYWtlU3RyaW5nKCJO
b3QgYWxsb3dlZCB0byBhY2Nlc3MgTWVkaWFLZXlTeXN0ZW0uIikpOworfQorCit9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoTUVESUFfU1RSRUFNKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9lbmNyeXB0ZWRtZWRpYS9NZWRpYUtleVN5c3RlbUNv
bnRyb2xsZXIuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZW5jcnlwdGVkbWVkaWEvTWVkaWFL
ZXlTeXN0ZW1Db250cm9sbGVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTlhMjhhMmJiOTBlYjQ0MGM2Nzc4MDFl
Zjc5YWNkOGZmYjFhYTgwMwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvZW5jcnlwdGVkbWVkaWEvTWVkaWFLZXlTeXN0ZW1Db250cm9sbGVyLmgKQEAgLTAsMCArMSw3
MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBJZ2FsaWEgUy5MLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
IFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKKyAqIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1B
R0VTCisgKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7CisgKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04KKyAq
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUworICogU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwor
I3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoRU5DUllQVEVEX01FRElBKQorCisjaW5jbHVkZSAi
RmVhdHVyZVBvbGljeS5oIgorI2luY2x1ZGUgIk1lZGlhS2V5U3lzdGVtQ2xpZW50LmgiCisjaW5j
bHVkZSAiUGFnZS5oIgorI2luY2x1ZGUgPHd0Zi9Db21wbGV0aW9uSGFuZGxlci5oPgorCituYW1l
c3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIE1lZGlhS2V5U3lzdGVtUmVxdWVzdDsKKworY2xhc3Mg
TWVkaWFLZXlTeXN0ZW1Db250cm9sbGVyIDogcHVibGljIFN1cHBsZW1lbnQ8UGFnZT4geworICAg
IFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOworcHVibGljOgorICAgIGV4cGxpY2l0IE1lZGlhS2V5
U3lzdGVtQ29udHJvbGxlcihNZWRpYUtleVN5c3RlbUNsaWVudCopOworICAgIH5NZWRpYUtleVN5
c3RlbUNvbnRyb2xsZXIoKTsKKworICAgIE1lZGlhS2V5U3lzdGVtQ2xpZW50KiBjbGllbnQoKSBj
b25zdCB7IHJldHVybiBtX2NsaWVudDsgfQorCisgICAgdm9pZCByZXF1ZXN0TWVkaWFLZXlTeXN0
ZW0oTWVkaWFLZXlTeXN0ZW1SZXF1ZXN0Jik7CisgICAgdm9pZCBjYW5jZWxNZWRpYUtleVN5c3Rl
bVJlcXVlc3QoTWVkaWFLZXlTeXN0ZW1SZXF1ZXN0Jik7CisKKyAgICB2b2lkIGxvZ1JlcXVlc3RN
ZWRpYUtleVN5c3RlbURlbmlhbChEb2N1bWVudCYpOworCisgICAgV0VCQ09SRV9FWFBPUlQgc3Rh
dGljIGNvbnN0IGNoYXIqIHN1cHBsZW1lbnROYW1lKCk7CisgICAgc3RhdGljIE1lZGlhS2V5U3lz
dGVtQ29udHJvbGxlciogZnJvbShQYWdlKiBwYWdlKSB7IHJldHVybiBzdGF0aWNfY2FzdDxNZWRp
YUtleVN5c3RlbUNvbnRyb2xsZXIqPihTdXBwbGVtZW50PFBhZ2U+Ojpmcm9tKHBhZ2UsIHN1cHBs
ZW1lbnROYW1lKCkpKTsgfQorCitwcml2YXRlOgorICAgIE1lZGlhS2V5U3lzdGVtQ2xpZW50KiBt
X2NsaWVudDsKK307CisKK2lubGluZSB2b2lkIE1lZGlhS2V5U3lzdGVtQ29udHJvbGxlcjo6cmVx
dWVzdE1lZGlhS2V5U3lzdGVtKE1lZGlhS2V5U3lzdGVtUmVxdWVzdCYgcmVxdWVzdCkKK3sKKyAg
ICBtX2NsaWVudC0+cmVxdWVzdE1lZGlhS2V5U3lzdGVtKHJlcXVlc3QpOworfQorCitpbmxpbmUg
dm9pZCBNZWRpYUtleVN5c3RlbUNvbnRyb2xsZXI6OmNhbmNlbE1lZGlhS2V5U3lzdGVtUmVxdWVz
dChNZWRpYUtleVN5c3RlbVJlcXVlc3QmIHJlcXVlc3QpCit7CisgICAgbV9jbGllbnQtPmNhbmNl
bE1lZGlhS2V5U3lzdGVtUmVxdWVzdChyZXF1ZXN0KTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQorCisjZW5kaWYgLy8gRU5BQkxFKEVOQ1JZUFRFRF9NRURJQSkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvZW5jcnlwdGVkbWVkaWEvTWVkaWFLZXlTeXN0ZW1SZXF1ZXN0
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZW5jcnlwdGVkbWVkaWEvTWVkaWFLZXlTeXN0
ZW1SZXF1ZXN0LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43ZWY1M2FhNmFiNTUyZWRlNTRhNDZhMjJiNmRjMmMw
ZWFhMzM5M2FjCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9lbmNy
eXB0ZWRtZWRpYS9NZWRpYUtleVN5c3RlbVJlcXVlc3QuY3BwCkBAIC0wLDAgKzEsMTI3IEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDIxIElnYWxpYSBTLkwuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9T
RSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRT
IENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorICogRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyAq
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTgorICogQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTCisgKiBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVk
ZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiTWVkaWFLZXlTeXN0ZW1SZXF1ZXN0LmgiCisKKyNpZiBF
TkFCTEUoTUVESUFfU1RSRUFNKQorCisjaW5jbHVkZSAiRG9jdW1lbnQuaCIKKyNpbmNsdWRlICJG
cmFtZS5oIgorI2luY2x1ZGUgIkpTRE9NUHJvbWlzZURlZmVycmVkLmgiCisjaW5jbHVkZSAiSlNN
ZWRpYUtleVN5c3RlbUFjY2Vzcy5oIgorI2luY2x1ZGUgIkxvZ2dpbmcuaCIKKyNpbmNsdWRlICJN
ZWRpYUtleVN5c3RlbUNvbnRyb2xsZXIuaCIKKyNpbmNsdWRlICJQbGF0Zm9ybU1lZGlhU2Vzc2lv
bk1hbmFnZXIuaCIKKyNpbmNsdWRlICJTZXR0aW5ncy5oIgorI2luY2x1ZGUgIldpbmRvd0V2ZW50
TG9vcC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1JlZjxNZWRpYUtleVN5c3RlbVJlcXVl
c3Q+IE1lZGlhS2V5U3lzdGVtUmVxdWVzdDo6Y3JlYXRlKERvY3VtZW50JiBkb2N1bWVudCwgY29u
c3QgU3RyaW5nJiBrZXlTeXN0ZW0sIFJlZjxEZWZlcnJlZFByb21pc2U+JiYgcHJvbWlzZSkKK3sK
KyAgICBhdXRvIHJlc3VsdCA9IGFkb3B0UmVmKCpuZXcgTWVkaWFLZXlTeXN0ZW1SZXF1ZXN0KGRv
Y3VtZW50LCBrZXlTeXN0ZW0sIFdURk1vdmUocHJvbWlzZSkpKTsKKyAgICByZXN1bHQtPnN1c3Bl
bmRJZk5lZWRlZCgpOworICAgIHJldHVybiByZXN1bHQ7Cit9CisKK01lZGlhS2V5U3lzdGVtUmVx
dWVzdDo6TWVkaWFLZXlTeXN0ZW1SZXF1ZXN0KERvY3VtZW50JiBkb2N1bWVudCwgY29uc3QgU3Ry
aW5nJiBrZXlTeXN0ZW0sIFJlZjxEZWZlcnJlZFByb21pc2U+JiYgcHJvbWlzZSkKKyAgICA6IEFj
dGl2ZURPTU9iamVjdChkb2N1bWVudCkKKyAgICAsIG1fa2V5U3lzdGVtKGtleVN5c3RlbSkKKyAg
ICAsIG1fcHJvbWlzZShXVEZNb3ZlKHByb21pc2UpKQoreworfQorCitNZWRpYUtleVN5c3RlbVJl
cXVlc3Q6On5NZWRpYUtleVN5c3RlbVJlcXVlc3QoKQoreworICAgIGlmIChtX2FsbG93Q29tcGxl
dGlvbkhhbmRsZXIpCisgICAgICAgIG1fYWxsb3dDb21wbGV0aW9uSGFuZGxlcihXVEZNb3ZlKG1f
cHJvbWlzZSkpOworfQorCitTZWN1cml0eU9yaWdpbiogTWVkaWFLZXlTeXN0ZW1SZXF1ZXN0Ojp0
b3BMZXZlbERvY3VtZW50T3JpZ2luKCkgY29uc3QKK3sKKyAgICBpZiAoIW1fc2NyaXB0RXhlY3V0
aW9uQ29udGV4dCkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgcmV0dXJuICZtX3Njcmlw
dEV4ZWN1dGlvbkNvbnRleHQtPnRvcE9yaWdpbigpOworfQorCit2b2lkIE1lZGlhS2V5U3lzdGVt
UmVxdWVzdDo6c3RhcnQoKQoreworICAgIEFTU0VSVChtX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQp
OworICAgIGlmICghbV9zY3JpcHRFeGVjdXRpb25Db250ZXh0KSB7CisgICAgICAgIGRlbnkoKTsK
KyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGF1dG8mIGRvY3VtZW50ID0gZG93bmNhc3Q8
RG9jdW1lbnQ+KCptX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQpOworICAgIGF1dG8qIGNvbnRyb2xs
ZXIgPSBNZWRpYUtleVN5c3RlbUNvbnRyb2xsZXI6OmZyb20oZG9jdW1lbnQucGFnZSgpKTsKKyAg
ICBpZiAoIWNvbnRyb2xsZXIpIHsKKyAgICAgICAgZGVueSgpOworICAgICAgICByZXR1cm47Cisg
ICAgfQorCisgICAgY29udHJvbGxlci0+cmVxdWVzdE1lZGlhS2V5U3lzdGVtKCp0aGlzKTsKK30K
Kwordm9pZCBNZWRpYUtleVN5c3RlbVJlcXVlc3Q6OmFsbG93KENvbXBsZXRpb25IYW5kbGVyPHZv
aWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3sKKyAgICBxdWV1ZVRhc2tLZWVwaW5nT2JqZWN0
QWxpdmUoKnRoaXMsIFRhc2tTb3VyY2U6OlVzZXJJbnRlcmFjdGlvbiwgW3RoaXMsIGhhbmRsZXIg
PSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0oKSBtdXRhYmxlIHsKKyAgICAgICAgYXV0byBj
b21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUobV9hbGxvd0NvbXBsZXRpb25IYW5kbGVyKTsKKyAg
ICAgICAgY29tcGxldGlvbkhhbmRsZXIoV1RGTW92ZShtX3Byb21pc2UpKTsKKyAgICAgICAgaGFu
ZGxlcigpOworICAgIH0pOworfQorCit2b2lkIE1lZGlhS2V5U3lzdGVtUmVxdWVzdDo6ZGVueShj
b25zdCBTdHJpbmcmIG1lc3NhZ2UpCit7CisgICAgaWYgKCFtX3NjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQpCisgICAgICAgIHJldHVybjsKKworICAgIEV4Y2VwdGlvbkNvZGUgY29kZSA9IE5vdFN1cHBv
cnRlZEVycm9yOworICAgIGlmICghbWVzc2FnZS5pc0VtcHR5KCkpCisgICAgICAgIG1fcHJvbWlz
ZS0+cmVqZWN0KGNvZGUsIG1lc3NhZ2UpOworICAgIGVsc2UKKyAgICAgICAgbV9wcm9taXNlLT5y
ZWplY3QoY29kZSk7Cit9CisKK3ZvaWQgTWVkaWFLZXlTeXN0ZW1SZXF1ZXN0OjpzdG9wKCkKK3sK
KyAgICBhdXRvJiBkb2N1bWVudCA9IGRvd25jYXN0PERvY3VtZW50PigqbV9zY3JpcHRFeGVjdXRp
b25Db250ZXh0KTsKKyAgICBpZiAoYXV0byogY29udHJvbGxlciA9IE1lZGlhS2V5U3lzdGVtQ29u
dHJvbGxlcjo6ZnJvbShkb2N1bWVudC5wYWdlKCkpKQorICAgICAgICBjb250cm9sbGVyLT5jYW5j
ZWxNZWRpYUtleVN5c3RlbVJlcXVlc3QoKnRoaXMpOworfQorCitjb25zdCBjaGFyKiBNZWRpYUtl
eVN5c3RlbVJlcXVlc3Q6OmFjdGl2ZURPTU9iamVjdE5hbWUoKSBjb25zdAoreworICAgIHJldHVy
biAiTWVkaWFLZXlTeXN0ZW1SZXF1ZXN0IjsKK30KKworRG9jdW1lbnQqIE1lZGlhS2V5U3lzdGVt
UmVxdWVzdDo6ZG9jdW1lbnQoKSBjb25zdAoreworICAgIHJldHVybiBkb3duY2FzdDxEb2N1bWVu
dD4obV9zY3JpcHRFeGVjdXRpb25Db250ZXh0KTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQorCisjZW5kaWYgLy8gRU5BQkxFKEVOQ1JZUFRFRF9NRURJQSkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvZW5jcnlwdGVkbWVkaWEvTWVkaWFLZXlTeXN0ZW1SZXF1ZXN0Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2VuY3J5cHRlZG1lZGlhL01lZGlhS2V5U3lzdGVtUmVx
dWVzdC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjlmY2JlNGYxYmFiZGJjZGI3MmFkNTQ1NjY3M2ZhYmViNDYwZTJh
YjcKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2VuY3J5cHRlZG1l
ZGlhL01lZGlhS2V5U3lzdGVtUmVxdWVzdC5oCkBAIC0wLDAgKzEsODAgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMjEgSWdhbGlhIFMuTC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFT
IElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICog
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVU
T1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICogKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OCisgKiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAor
ICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFIE9GIFRISVMKKyAqIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisj
aWYgRU5BQkxFKEVOQ1JZUFRFRF9NRURJQSkKKworI2luY2x1ZGUgIkFjdGl2ZURPTU9iamVjdC5o
IgorI2luY2x1ZGUgIklETFR5cGVzLmgiCisjaW5jbHVkZSAiSlNET01Qcm9taXNlRGVmZXJyZWQu
aCIKKyNpbmNsdWRlIDx3dGYvQ29tcGxldGlvbkhhbmRsZXIuaD4KKyNpbmNsdWRlIDx3dGYvRm9y
d2FyZC5oPgorI2luY2x1ZGUgPHd0Zi9PYmplY3RJZGVudGlmaWVyLmg+CisjaW5jbHVkZSA8d3Rm
L1VuaXF1ZVJlZi5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFNlY3VyaXR5T3Jp
Z2luOworY2xhc3MgTWVkaWFLZXlTeXN0ZW07CisKK3RlbXBsYXRlIDx0eXBlbmFtZSBJRExUeXBl
PiBjbGFzcyBET01Qcm9taXNlRGVmZXJyZWQ7CisKK2VudW0gTWVkaWFLZXlTeXN0ZW1SZXF1ZXN0
SWRlbnRpZmllclR5cGUgeyB9OwordXNpbmcgTWVkaWFLZXlTeXN0ZW1SZXF1ZXN0SWRlbnRpZmll
ciA9IE9iamVjdElkZW50aWZpZXI8TWVkaWFLZXlTeXN0ZW1SZXF1ZXN0SWRlbnRpZmllclR5cGU+
OworCitjbGFzcyBNZWRpYUtleVN5c3RlbVJlcXVlc3QgOiBwdWJsaWMgUmVmQ291bnRlZDxNZWRp
YUtleVN5c3RlbVJlcXVlc3Q+LCBwdWJsaWMgQWN0aXZlRE9NT2JqZWN0IHsKK3B1YmxpYzoKKyAg
ICBzdGF0aWMgUmVmPE1lZGlhS2V5U3lzdGVtUmVxdWVzdD4gY3JlYXRlKERvY3VtZW50JiwgY29u
c3QgU3RyaW5nJiBrZXlTeXN0ZW0sIFJlZjxEZWZlcnJlZFByb21pc2U+JiYpOworICAgIHZpcnR1
YWwgfk1lZGlhS2V5U3lzdGVtUmVxdWVzdCgpOworCisgICAgdm9pZCBzZXRBbGxvd0NhbGxiYWNr
KENvbXBsZXRpb25IYW5kbGVyPHZvaWQoUmVmPERlZmVycmVkUHJvbWlzZT4mJik+JiYgY2FsbGJh
Y2spIHsgbV9hbGxvd0NvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjYWxsYmFjayk7IH0KKyAg
ICBNZWRpYUtleVN5c3RlbVJlcXVlc3RJZGVudGlmaWVyIGlkZW50aWZpZXIoKSBjb25zdCB7IHJl
dHVybiBtX2lkZW50aWZpZXI7IH0KKyAgICB2b2lkIHN0YXJ0KCk7CisKKyAgICBXRUJDT1JFX0VY
UE9SVCB2b2lkIGFsbG93KENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CisgICAgV0VCQ09S
RV9FWFBPUlQgdm9pZCBkZW55KGNvbnN0IFN0cmluZyYgZXJyb3JNZXNzYWdlID0gZW1wdHlTdHJp
bmcoKSk7CisKKyAgICBXRUJDT1JFX0VYUE9SVCBTZWN1cml0eU9yaWdpbiogdG9wTGV2ZWxEb2N1
bWVudE9yaWdpbigpIGNvbnN0OworICAgIFdFQkNPUkVfRVhQT1JUIERvY3VtZW50KiBkb2N1bWVu
dCgpIGNvbnN0OworCisgICAgY29uc3QgU3RyaW5nIGtleVN5c3RlbSgpIGNvbnN0IHsgcmV0dXJu
IG1fa2V5U3lzdGVtOyB9CisKK3ByaXZhdGU6CisgICAgTWVkaWFLZXlTeXN0ZW1SZXF1ZXN0KERv
Y3VtZW50JiwgY29uc3QgU3RyaW5nJiBrZXlTeXN0ZW0sIFJlZjxEZWZlcnJlZFByb21pc2U+JiYp
OworCisgICAgdm9pZCBzdG9wKCkgZmluYWw7CisgICAgY29uc3QgY2hhciogYWN0aXZlRE9NT2Jq
ZWN0TmFtZSgpIGNvbnN0IGZpbmFsOworCisgICAgTWVkaWFLZXlTeXN0ZW1SZXF1ZXN0SWRlbnRp
ZmllciBtX2lkZW50aWZpZXI7CisKKyAgICBTdHJpbmcgbV9rZXlTeXN0ZW07CisgICAgUmVmPERl
ZmVycmVkUHJvbWlzZT4gbV9wcm9taXNlOworCisgICAgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChS
ZWY8RGVmZXJyZWRQcm9taXNlPiYmKT4gbV9hbGxvd0NvbXBsZXRpb25IYW5kbGVyOworfTsKKwor
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKEVOQ1JZUFRFRF9NRURJ
QSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZW5jcnlwdGVkbWVkaWEvTmF2
aWdhdG9yRU1FLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZW5jcnlwdGVkbWVkaWEvTmF2
aWdhdG9yRU1FLmNwcAppbmRleCA2OTQ1NjRhZjNlNTkzYTY5NjE3NThmYWZkNzJhN2Q1MDQ3YTZh
YzM2Li5mYzYxMzc0ZTIxNjQxYzE2NzQxZDdlNTFkZDBlM2U3YTJkNTJiNjYyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2VuY3J5cHRlZG1lZGlhL05hdmlnYXRvckVNRS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9lbmNyeXB0ZWRtZWRpYS9OYXZpZ2F0b3JFTUUu
Y3BwCkBAIC0zNyw2ICszNyw3IEBACiAjaW5jbHVkZSAiSlNET01Qcm9taXNlRGVmZXJyZWQuaCIK
ICNpbmNsdWRlICJKU01lZGlhS2V5U3lzdGVtQWNjZXNzLmgiCiAjaW5jbHVkZSAiTG9nZ2luZy5o
IgorI2luY2x1ZGUgIk1lZGlhS2V5U3lzdGVtUmVxdWVzdC5oIgogI2luY2x1ZGUgPHd0Zi90ZXh0
L1N0cmluZ0J1aWxkZXIuaD4KIAogbmFtZXNwYWNlIFdURiB7CkBAIC05OSwyMyArMTAwLDI3IEBA
IHZvaWQgTmF2aWdhdG9yRU1FOjpyZXF1ZXN0TWVkaWFLZXlTeXN0ZW1BY2Nlc3MoTmF2aWdhdG9y
JiBuYXZpZ2F0b3IsIERvY3VtZW50JiBkCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBk
b2N1bWVudC5wb3N0VGFzayhba2V5U3lzdGVtLCBzdXBwb3J0ZWRDb25maWd1cmF0aW9ucyA9IFdU
Rk1vdmUoc3VwcG9ydGVkQ29uZmlndXJhdGlvbnMpLCBwcm9taXNlID0gV1RGTW92ZShwcm9taXNl
KSwgJmRvY3VtZW50LCBsb2dnZXIgPSBXVEZNb3ZlKGxvZ2dlciksIGlkZW50aWZpZXIgPSBXVEZN
b3ZlKGlkZW50aWZpZXIpXSAoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYpIG11dGFibGUgewotICAg
ICAgICAvLyAzLiBMZXQgZG9jdW1lbnQgYmUgdGhlIGNhbGxpbmcgY29udGV4dCdzIERvY3VtZW50
LgotICAgICAgICAvLyA0LiBMZXQgb3JpZ2luIGJlIHRoZSBvcmlnaW4gb2YgZG9jdW1lbnQuCi0g
ICAgICAgIC8vIDUuIExldCBwcm9taXNlIGJlIGEgbmV3IHByb21pc2UuCi0gICAgICAgIC8vIDYu
IFJ1biB0aGUgZm9sbG93aW5nIHN0ZXBzIGluIHBhcmFsbGVsOgotICAgICAgICAvLyA2LjEuIElm
IGtleVN5c3RlbSBpcyBub3Qgb25lIG9mIHRoZSBLZXkgU3lzdGVtcyBzdXBwb3J0ZWQgYnkgdGhl
IHVzZXIgYWdlbnQsIHJlamVjdCBwcm9taXNlIHdpdGggYSBOb3RTdXBwb3J0ZWRFcnJvci4KLSAg
ICAgICAgLy8gICAgICBTdHJpbmcgY29tcGFyaXNvbiBpcyBjYXNlLXNlbnNpdGl2ZS4KLSAgICAg
ICAgaWYgKCFDRE06OnN1cHBvcnRzS2V5U3lzdGVtKGtleVN5c3RlbSkpIHsKLSAgICAgICAgICAg
IGluZm9Mb2cobG9nZ2VyLCBpZGVudGlmaWVyLCAiUmVqZWN0ZWQ6IGtleVN5c3RlbSgiLCBrZXlT
eXN0ZW0sICIpIG5vdCBzdXBwb3J0ZWQiKTsKLSAgICAgICAgICAgIHByb21pc2UtPnJlamVjdChO
b3RTdXBwb3J0ZWRFcnJvcik7Ci0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIH0KLQotICAg
ICAgICAvLyA2LjIuIExldCBpbXBsZW1lbnRhdGlvbiBiZSB0aGUgaW1wbGVtZW50YXRpb24gb2Yg
a2V5U3lzdGVtLgotICAgICAgICBhdXRvIGltcGxlbWVudGF0aW9uID0gQ0RNOjpjcmVhdGUoZG9j
dW1lbnQsIGtleVN5c3RlbSk7Ci0gICAgICAgIHRyeU5leHRTdXBwb3J0ZWRDb25maWd1cmF0aW9u
KFdURk1vdmUoaW1wbGVtZW50YXRpb24pLCBXVEZNb3ZlKHN1cHBvcnRlZENvbmZpZ3VyYXRpb25z
KSwgV1RGTW92ZShwcm9taXNlKSwgV1RGTW92ZShsb2dnZXIpLCBXVEZNb3ZlKGlkZW50aWZpZXIp
KTsKKyAgICBhdXRvIHJlcXVlc3QgPSBNZWRpYUtleVN5c3RlbVJlcXVlc3Q6OmNyZWF0ZShkb2N1
bWVudCwga2V5U3lzdGVtLCBXVEZNb3ZlKHByb21pc2UpKTsKKyAgICByZXF1ZXN0LT5zZXRBbGxv
d0NhbGxiYWNrKFtrZXlTeXN0ZW0sIHN1cHBvcnRlZENvbmZpZ3VyYXRpb25zID0gV1RGTW92ZShz
dXBwb3J0ZWRDb25maWd1cmF0aW9ucyksICZkb2N1bWVudCwgbG9nZ2VyID0gV1RGTW92ZShsb2dn
ZXIpLCBpZGVudGlmaWVyID0gV1RGTW92ZShpZGVudGlmaWVyKV0oUmVmPERlZmVycmVkUHJvbWlz
ZT4mJiBwcm9taXNlKSBtdXRhYmxlIHsKKyAgICAgICAgZG9jdW1lbnQucG9zdFRhc2soW3Byb21p
c2UgPSBXVEZNb3ZlKHByb21pc2UpLCAmZG9jdW1lbnQsIGtleVN5c3RlbSwgbG9nZ2VyID0gV1RG
TW92ZShsb2dnZXIpLCBpZGVudGlmaWVyID0gV1RGTW92ZShpZGVudGlmaWVyKSwgc3VwcG9ydGVk
Q29uZmlndXJhdGlvbnMgPSBXVEZNb3ZlKHN1cHBvcnRlZENvbmZpZ3VyYXRpb25zKV0gKFNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQmKSBtdXRhYmxlIHsKKyAgICAgICAgICAgIC8vIDMuIExldCBkb2N1
bWVudCBiZSB0aGUgY2FsbGluZyBjb250ZXh0J3MgRG9jdW1lbnQuCisgICAgICAgICAgICAvLyA0
LiBMZXQgb3JpZ2luIGJlIHRoZSBvcmlnaW4gb2YgZG9jdW1lbnQuCisgICAgICAgICAgICAvLyA1
LiBMZXQgcHJvbWlzZSBiZSBhIG5ldyBwcm9taXNlLgorICAgICAgICAgICAgLy8gNi4gUnVuIHRo
ZSBmb2xsb3dpbmcgc3RlcHMgaW4gcGFyYWxsZWw6CisgICAgICAgICAgICAvLyA2LjEuIElmIGtl
eVN5c3RlbSBpcyBub3Qgb25lIG9mIHRoZSBLZXkgU3lzdGVtcyBzdXBwb3J0ZWQgYnkgdGhlIHVz
ZXIgYWdlbnQsIHJlamVjdCBwcm9taXNlIHdpdGggYSBOb3RTdXBwb3J0ZWRFcnJvci4KKyAgICAg
ICAgICAgIC8vICAgICAgU3RyaW5nIGNvbXBhcmlzb24gaXMgY2FzZS1zZW5zaXRpdmUuCisgICAg
ICAgICAgICBpZiAoIUNETTo6c3VwcG9ydHNLZXlTeXN0ZW0oa2V5U3lzdGVtKSkgeworICAgICAg
ICAgICAgICAgIGluZm9Mb2cobG9nZ2VyLCBpZGVudGlmaWVyLCAiUmVqZWN0ZWQ6IGtleVN5c3Rl
bSgiLCBrZXlTeXN0ZW0sICIpIG5vdCBzdXBwb3J0ZWQiKTsKKyAgICAgICAgICAgICAgICBwcm9t
aXNlLT5yZWplY3QoTm90U3VwcG9ydGVkRXJyb3IpOworICAgICAgICAgICAgICAgIHJldHVybjsK
KyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgLy8gNi4yLiBMZXQgaW1wbGVtZW50YXRpb24g
YmUgdGhlIGltcGxlbWVudGF0aW9uIG9mIGtleVN5c3RlbS4KKyAgICAgICAgICAgIGF1dG8gaW1w
bGVtZW50YXRpb24gPSBDRE06OmNyZWF0ZShkb2N1bWVudCwga2V5U3lzdGVtKTsKKyAgICAgICAg
ICAgIHRyeU5leHRTdXBwb3J0ZWRDb25maWd1cmF0aW9uKFdURk1vdmUoaW1wbGVtZW50YXRpb24p
LCBXVEZNb3ZlKHN1cHBvcnRlZENvbmZpZ3VyYXRpb25zKSwgV1RGTW92ZShwcm9taXNlKSwgV1RG
TW92ZShsb2dnZXIpLCBXVEZNb3ZlKGlkZW50aWZpZXIpKTsKKyAgICAgICAgfSk7CiAgICAgfSk7
CisgICAgcmVxdWVzdC0+c3RhcnQoKTsKIH0KIAogc3RhdGljIHZvaWQgdHJ5TmV4dFN1cHBvcnRl
ZENvbmZpZ3VyYXRpb24oUmVmUHRyPENETT4mJiBpbXBsZW1lbnRhdGlvbiwgVmVjdG9yPE1lZGlh
S2V5U3lzdGVtQ29uZmlndXJhdGlvbj4mJiBzdXBwb3J0ZWRDb25maWd1cmF0aW9ucywgUmVmUHRy
PERlZmVycmVkUHJvbWlzZT4mJiBwcm9taXNlLCBSZWY8TG9nZ2VyPiYmIGxvZ2dlciwgV1RGOjpM
b2dnZXI6OkxvZ1NpdGVJZGVudGlmaWVyJiYgaWRlbnRpZmllcikKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA1YzUwZWVlM2VjMzU0
MThkMmJjNDliZWY2MjYwOTY2ZTQ1NmY2MjhiLi44NTQxMzZhNThjMzE1ZDA1NmNmMDJhNjcyNDkz
M2Q5ZjA5ZjE2N2M0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCkBAIC0zMDQxLDYgKzMwNDEsMTEgQEAKIAkJOTlEMUIyRDMyM0FDMTQz
MTAwODExQ0YwIC8qIEluc3BlY3RvckRlYnVnZ2FibGVUeXBlLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5OUQxQjJEMTIzQUMxNDMwMDA4MTFDRjAgLyog
SW5zcGVjdG9yRGVidWdnYWJsZVR5cGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQ
cml2YXRlLCApOyB9OyB9OwogCQk5QTUyOEU4NDE3RDdGNTJGMDBBQTk1MTggLyogRmxvYXRpbmdP
YmplY3RzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5
QTUyOEU4MjE3RDdGNTJGMDBBQTk1MTggLyogRmxvYXRpbmdPYmplY3RzLmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJOUFCMUYzODAxOEUyNDg5QTAw
NTM0NzQzIC8qIENTU1RvTGVuZ3RoQ29udmVyc2lvbkRhdGEuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDlBQjFGMzdFMThFMjQ4OUEwMDUzNDc0MyAvKiBD
U1NUb0xlbmd0aENvbnZlcnNpb25EYXRhLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAo
UHJpdmF0ZSwgKTsgfTsgfTsKKwkJOUFDQzA3OTYyNUM3MjVFRTAwREM2Mzg2IC8qIE1lZGlhS2V5
U3lzdGVtUmVxdWVzdC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA5QUNDMDc5NDI1QzcyNUVEMDBEQzYzODYgLyogTWVkaWFLZXlTeXN0ZW1SZXF1ZXN0
LmNwcCAqLzsgfTsKKwkJOUFDQzA3OTgyNUM3MjY3NzAwREM2Mzg2IC8qIE1lZGlhS2V5U3lzdGVt
Q29udHJvbGxlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA5QUNDMDc5NzI1QzcyNjc2MDBEQzYzODYgLyogTWVkaWFLZXlTeXN0ZW1Db250cm9sbGVy
LmNwcCAqLzsgfTsKKwkJOUFDQzA3QTYyNUM4MTBERjAwREM2Mzg2IC8qIE1lZGlhS2V5U3lzdGVt
UmVxdWVzdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
OUFDQzA3QTUyNUM4MTBERjAwREM2Mzg2IC8qIE1lZGlhS2V5U3lzdGVtUmVxdWVzdC5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTlBQ0MwN0E4MjVD
ODExMEQwMERDNjM4NiAvKiBNZWRpYUtleVN5c3RlbUNsaWVudC5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOUFDQzA3QTcyNUM4MTEwRDAwREM2Mzg2IC8q
IE1lZGlhS2V5U3lzdGVtQ2xpZW50LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKKwkJOUFDQzA3QUYyNUM4MTQxRDAwREM2Mzg2IC8qIE1lZGlhS2V5U3lz
dGVtQ29udHJvbGxlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gOUFDQzA3QUUyNUM4MTQxQzAwREM2Mzg2IC8qIE1lZGlhS2V5U3lzdGVtQ29udHJvbGxl
ci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTlC
MDJFMEM4MjM1RUFEMkEwMDQwNDRCMiAvKiBUZXh0TWFuaXB1bGF0aW9uQ29udHJvbGxlci5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOUIwMkUwQzMyMzVF
NzZBQTAwNDA0NEIyIC8qIFRleHRNYW5pcHVsYXRpb25Db250cm9sbGVyLmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJOUIwQUJDQUUyMzZCQjQzMTAw
QjQ1MDg1IC8qIFRhc2tTb3VyY2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDlCMEFCQ0FDMjM2QkI0MEEwMEI0NTA4NSAvKiBUYXNrU291cmNlLmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJOUIxMjI5QzQy
M0ZFNEJEMjAwOENBNzUxIC8qIEF1ZGlvRGVzdGluYXRpb25Db2NvYS5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDEzMTUxODYyMzU3NzQ1RTAwMTE1RTZF
IC8qIEF1ZGlvRGVzdGluYXRpb25Db2NvYS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CkBAIC0xMjAwMCw2ICsxMjAwNSwxMSBAQAogCQk5QUM2RjAyNTIx
MTQ4RjU0MDBDQkRBMDYgLyogTWVkaWFFbmdpbmVDb25maWd1cmF0aW9uRmFjdG9yeS5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBNZWRpYUVuZ2luZUNvbmZpZ3VyYXRpb25GYWN0
b3J5Lmg7IHBhdGggPSBtZWRpYWNhcGFiaWxpdGllcy9NZWRpYUVuZ2luZUNvbmZpZ3VyYXRpb25G
YWN0b3J5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTlBQzZGMDJEMjExNDhGOUYw
MENCREEwNiAvKiBNZWRpYUVuZ2luZUNvbmZpZ3VyYXRpb25GYWN0b3J5TW9jay5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBNZWRpYUVuZ2luZUNvbmZpZ3VyYXRpb25G
YWN0b3J5TW9jay5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTlBQzZGMDJGMjEx
NDhGQTIwMENCREEwNiAvKiBNZWRpYUVuZ2luZUNvbmZpZ3VyYXRpb25GYWN0b3J5TW9jay5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBNZWRpYUVuZ2luZUNvbmZpZ3VyYXRpb25G
YWN0b3J5TW9jay5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5QUNDMDc5NDI1Qzcy
NUVEMDBEQzYzODYgLyogTWVkaWFLZXlTeXN0ZW1SZXF1ZXN0LmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE1lZGlhS2V5U3lzdGVtUmVxdWVzdC5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCTlBQ0MwNzk3MjVDNzI2NzYwMERDNjM4NiAvKiBNZWRpYUtl
eVN5c3RlbUNvbnRyb2xsZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gTWVkaWFLZXlTeXN0ZW1Db250cm9sbGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJOUFDQzA3QTUyNUM4MTBERjAwREM2Mzg2IC8qIE1lZGlhS2V5U3lzdGVtUmVxdWVzdC5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBNZWRpYUtleVN5c3RlbVJlcXVlc3Qu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOUFDQzA3QTcyNUM4MTEwRDAwREM2Mzg2
IC8qIE1lZGlhS2V5U3lzdGVtQ2xpZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IE1lZGlhS2V5U3lzdGVtQ2xpZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CTlBQ0MwN0FFMjVDODE0MUMwMERDNjM4NiAvKiBNZWRpYUtleVN5c3RlbUNvbnRyb2xsZXIuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTWVkaWFLZXlTeXN0ZW1Db250cm9sbGVy
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTlCMDJFMEMzMjM1RTc2QUEwMDQwNDRC
MiAvKiBUZXh0TWFuaXB1bGF0aW9uQ29udHJvbGxlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBUZXh0TWFu
aXB1bGF0aW9uQ29udHJvbGxlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5QjAy
RTBDNDIzNUU3NkFBMDA0MDQ0QjIgLyogVGV4dE1hbmlwdWxhdGlvbkNvbnRyb2xsZXIuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gVGV4dE1hbmlwdWxhdGlvbkNvbnRyb2xsZXIuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk5QjAzRDgwNjFCQjMxMTBEMDBCNzNGNjQgLyogUmVhZGFi
bGVCeXRlU3RyZWFtSW50ZXJuYWxzQnVpbHRpbnMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBuYW1lID0gUmVhZGFibGVCeXRlU3RyZWFtSW50ZXJuYWxzQnVpbHRpbnMuaDsgcGF0aCA9IERl
cml2ZWRTb3VyY2VzL1dlYkNvcmUvUmVhZGFibGVCeXRlU3RyZWFtSW50ZXJuYWxzQnVpbHRpbnMu
aDsgc291cmNlVHJlZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsgfTsKQEAgLTI4MDQ2LDEwICsyODA1
NiwxNSBAQAogCQkJCTJEOUJGNzNDMURCRkRDMEYwMDdBN0Q5OSAvKiBNZWRpYUtleVN5c3RlbUFj
Y2Vzcy5jcHAgKi8sCiAJCQkJMkQ5QkY3M0QxREJGREMwRjAwN0E3RDk5IC8qIE1lZGlhS2V5U3lz
dGVtQWNjZXNzLmggKi8sCiAJCQkJMkQ5QkY2RjkxREJGQjcxRjAwN0E3RDk5IC8qIE1lZGlhS2V5
U3lzdGVtQWNjZXNzLmlkbCAqLywKKwkJCQk5QUNDMDdBNzI1QzgxMTBEMDBEQzYzODYgLyogTWVk
aWFLZXlTeXN0ZW1DbGllbnQuaCAqLywKIAkJCQkyRDlCRjczRTFEQkZEQzBGMDA3QTdEOTkgLyog
TWVkaWFLZXlTeXN0ZW1Db25maWd1cmF0aW9uLmggKi8sCiAJCQkJMkQ5QkY2RkExREJGQjcxRjAw
N0E3RDk5IC8qIE1lZGlhS2V5U3lzdGVtQ29uZmlndXJhdGlvbi5pZGwgKi8sCisJCQkJOUFDQzA3
OTcyNUM3MjY3NjAwREM2Mzg2IC8qIE1lZGlhS2V5U3lzdGVtQ29udHJvbGxlci5jcHAgKi8sCisJ
CQkJOUFDQzA3QUUyNUM4MTQxQzAwREM2Mzg2IC8qIE1lZGlhS2V5U3lzdGVtQ29udHJvbGxlci5o
ICovLAogCQkJCTJEOUJGNzNGMURCRkRDMEYwMDdBN0Q5OSAvKiBNZWRpYUtleVN5c3RlbU1lZGlh
Q2FwYWJpbGl0eS5oICovLAogCQkJCTJEOUJGNkZCMURCRkI3MUYwMDdBN0Q5OSAvKiBNZWRpYUtl
eVN5c3RlbU1lZGlhQ2FwYWJpbGl0eS5pZGwgKi8sCisJCQkJOUFDQzA3OTQyNUM3MjVFRDAwREM2
Mzg2IC8qIE1lZGlhS2V5U3lzdGVtUmVxdWVzdC5jcHAgKi8sCisJCQkJOUFDQzA3QTUyNUM4MTBE
RjAwREM2Mzg2IC8qIE1lZGlhS2V5U3lzdGVtUmVxdWVzdC5oICovLAogCQkJCTJEOUJGNkZDMURC
RkI3MUYwMDdBN0Q5OSAvKiBOYXZpZ2F0b3IrRU1FLmlkbCAqLywKIAkJCQkyRDlCRjc0MDFEQkZE
QzBGMDA3QTdEOTkgLyogTmF2aWdhdG9yRU1FLmNwcCAqLywKIAkJCQkyRDlCRjc0MTFEQkZEQzBG
MDA3QTdEOTkgLyogTmF2aWdhdG9yRU1FLmggKi8sCkBAIC0zMzY5Nyw2ICszMzcxMiw5IEBACiAJ
CQkJQ0RGNEI3MUExRTAxRDNEMDAwRTIzNUEyIC8qIE1lZGlhS2V5U2Vzc2lvblR5cGUuaWRsIGlu
IEhlYWRlcnMgKi8sCiAJCQkJQ0RGNEI3MjgxRTAzQzU3MzAwRTIzNUEyIC8qIE1lZGlhS2V5c1Jl
cXVpcmVtZW50LmlkbCBpbiBIZWFkZXJzICovLAogCQkJCUNERjRCNzE4MUUwMUNCOTEwMEUyMzVB
MiAvKiBNZWRpYUtleXNSZXN0cmljdGlvbnMuaCBpbiBIZWFkZXJzICovLAorCQkJCTlBQ0MwN0E4
MjVDODExMEQwMERDNjM4NiAvKiBNZWRpYUtleVN5c3RlbUNsaWVudC5oIGluIEhlYWRlcnMgKi8s
CisJCQkJOUFDQzA3QUYyNUM4MTQxRDAwREM2Mzg2IC8qIE1lZGlhS2V5U3lzdGVtQ29udHJvbGxl
ci5oIGluIEhlYWRlcnMgKi8sCisJCQkJOUFDQzA3QTYyNUM4MTBERjAwREM2Mzg2IC8qIE1lZGlh
S2V5U3lzdGVtUmVxdWVzdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQThFQTgwMEUwQTE5NTE2RTAw
QThFRjVGIC8qIE1lZGlhTGlzdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNUVCQjg5MzExQzc3NzdG
RjAwQzY1RDQxIC8qIE1lZGlhUGF5bG9hZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMDdFM0RGRDEx
QTlFNzg2NTAwNzY0Q0E4IC8qIE1lZGlhUGxheWJhY2tUYXJnZXQuaCBpbiBIZWFkZXJzICovLApA
QCAtMzYwNTAsNiArMzYwNjgsOCBAQAogCQkJCTJEOUJGNzQ1MURCRkRDNDQwMDdBN0Q5OSAvKiBN
ZWRpYUtleVNlc3Npb24uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMkQ5QkY3NDQxREJGREM0MTAw
N0E3RDk5IC8qIE1lZGlhS2V5U3RhdHVzTWFwLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTJEOUJG
NzQzMURCRkRDM0UwMDdBN0Q5OSAvKiBNZWRpYUtleVN5c3RlbUFjY2Vzcy5jcHAgaW4gU291cmNl
cyAqLywKKwkJCQk5QUNDMDc5ODI1QzcyNjc3MDBEQzYzODYgLyogTWVkaWFLZXlTeXN0ZW1Db250
cm9sbGVyLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTlBQ0MwNzk2MjVDNzI1RUUwMERDNjM4NiAv
KiBNZWRpYUtleVN5c3RlbVJlcXVlc3QuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMDcxRTQ5NkUx
QUQ1QUEwRDAwOEE1MEI0IC8qIE1lZGlhUGxheWJhY2tUYXJnZXRDb2NvYS5tbSBpbiBTb3VyY2Vz
ICovLAogCQkJCTA3OEU0M0RFMUFCQjZGNkYwMDFDMkZBNiAvKiBNZWRpYVBsYXliYWNrVGFyZ2V0
UGlja2VyTWFjLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJMDcyQzhCMTExMzFDNTE4NjAwQTRGQ0U5
IC8qIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbi5jcHAgaW4gU291cmNlcyAqLywKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvV2ViS2l0L0NN
YWtlTGlzdHMudHh0CmluZGV4IGNiY2E4ZDMzODhjNTgyOWI3NDI3MjJlNzQ5OWY5MzY5ZmIzYzMw
ODUuLjQ2ZWMwYzU0Y2M0NGQxYjNiYmRjZTA5NjJmMjcxMzA1ODA1YTg3MjkgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYktpdC9DTWFrZUxp
c3RzLnR4dApAQCAtNzUsNiArNzUsNyBAQCBzZXQoV2ViS2l0X0lOQ0xVREVfRElSRUNUT1JJRVMK
ICAgICAiJHtXRUJLSVRfRElSfS9XZWJQcm9jZXNzL0NhY2hlIgogICAgICIke1dFQktJVF9ESVJ9
L1dlYlByb2Nlc3MvRGF0YWJhc2VzIgogICAgICIke1dFQktJVF9ESVJ9L1dlYlByb2Nlc3MvRGF0
YWJhc2VzL0luZGV4ZWREQiIKKyAgICAiJHtXRUJLSVRfRElSfS9XZWJQcm9jZXNzL0VuY3J5cHRl
ZE1lZGlhIgogICAgICIke1dFQktJVF9ESVJ9L1dlYlByb2Nlc3MvRmlsZUFQSSIKICAgICAiJHtX
RUJLSVRfRElSfS9XZWJQcm9jZXNzL0Z1bGxTY3JlZW4iCiAgICAgIiR7V0VCS0lUX0RJUn0vV2Vi
UHJvY2Vzcy9HYW1lcGFkIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9IZWFkZXJzLmNtYWtl
IGIvU291cmNlL1dlYktpdC9IZWFkZXJzLmNtYWtlCmluZGV4IDIxMzA0ZGEzMGQ3ODgyNTQzNjUy
MjdhYTZiMzZmMGU3NmY2OTBlZjQuLjM0NmM4YTYzYTdiN2FlNDk3YTFiZWUyNGQ3ZjgwOGIwZmE4
Y2U0YTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvSGVhZGVycy5jbWFrZQorKysgYi9Tb3Vy
Y2UvV2ViS2l0L0hlYWRlcnMuY21ha2UKQEAgLTYyLDYgKzYyLDcgQEAgc2V0KFdlYktpdF9QVUJM
SUNfRlJBTUVXT1JLX0hFQURFUlMKICAgICBVSVByb2Nlc3MvQVBJL0MvV0tJY29uRGF0YWJhc2Uu
aAogICAgIFVJUHJvY2Vzcy9BUEkvQy9XS0luc3BlY3Rvci5oCiAgICAgVUlQcm9jZXNzL0FQSS9D
L1dLTGF5b3V0TW9kZS5oCisgICAgVUlQcm9jZXNzL0FQSS9DL1dLTWVkaWFLZXlTeXN0ZW1QZXJt
aXNzaW9uQ2FsbGJhY2suaAogICAgIFVJUHJvY2Vzcy9BUEkvQy9XS01lc3NhZ2VMaXN0ZW5lci5o
CiAgICAgVUlQcm9jZXNzL0FQSS9DL1dLTW9ja0Rpc3BsYXkuaAogICAgIFVJUHJvY2Vzcy9BUEkv
Qy9XS01vY2tNZWRpYURldmljZS5oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1BsYXRmb3Jt
L0xvZ2dpbmcuaCBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vTG9nZ2luZy5oCmluZGV4IGY0OWYz
OGI2YTVmOWQzZDcwOTUyZDJlMTIxYzg5OTVkZWNlOThlYWEuLjA2NmYwNjVmZTNlM2FlYzRhMDc5
ODY4MTkzZGFlOGEwYjA3Nzc1YjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0v
TG9nZ2luZy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vTG9nZ2luZy5oCkBAIC01Miw2
ICs1Miw3IEBAIGV4dGVybiAiQyIgewogICAgIE0oQ29udGV4dE1lbnUpIFwKICAgICBNKERpc2tQ
ZXJzaXN0ZW5jeSkgXAogICAgIE0oRHJhZ0FuZERyb3ApIFwKKyAgICBNKEVNRSkgXAogICAgIE0o
RnVsbHNjcmVlbikgXAogICAgIE0oR2FtZXBhZCkgXAogICAgIE0oSVBDKSBcCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BUEkvQVBJT2JqZWN0LmggYi9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9BUEkvQVBJT2JqZWN0LmgKaW5kZXggMDU1NjkzNDNhMGRjM2FhZDZjMmQzMzQwM2U4ZTI5
YmE4NmZlNGNhYi4uNDZjNzczZWUzOGNkMzA2NzViNmU4YjE2MjVmOTc1MzA3OTNiMTZiYiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvQVBJL0FQSU9iamVjdC5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQvU2hhcmVkL0FQSS9BUElPYmplY3QuaApAQCAtMTg5LDYgKzE4OSw4IEBAIHB1Ymxp
YzoKICAgICAgICAgV2ViQXV0aGVudGljYXRpb25QYW5lbCwKICNlbmRpZgogCisgICAgICAgIE1l
ZGlhS2V5U3lzdGVtUGVybWlzc2lvbkNhbGxiYWNrLAorCiAgICAgICAgIC8vIEJ1bmRsZSB0eXBl
cwogICAgICAgICBCdW5kbGUsCiAgICAgICAgIEJ1bmRsZUJhY2tGb3J3YXJkTGlzdCwKQEAgLTQz
OCw2ICs0NDAsOCBAQCB0ZW1wbGF0ZTw+IHN0cnVjdCBFbnVtVHJhaXRzPEFQSTo6T2JqZWN0OjpU
eXBlPiB7CiAgICAgICAgIEFQSTo6T2JqZWN0OjpUeXBlOjpXZWJBdXRoZW50aWNhdGlvblBhbmVs
LAogI2VuZGlmCiAKKyAgICAgICAgQVBJOjpPYmplY3Q6OlR5cGU6Ok1lZGlhS2V5U3lzdGVtUGVy
bWlzc2lvbkNhbGxiYWNrLAorCiAgICAgICAgIC8vIEJ1bmRsZSB0eXBlcwogICAgICAgICBBUEk6
Ok9iamVjdDo6VHlwZTo6QnVuZGxlLAogICAgICAgICBBUEk6Ok9iamVjdDo6VHlwZTo6QnVuZGxl
QmFja0ZvcndhcmRMaXN0LApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvQVBJL2Mv
V0tCYXNlLmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BUEkvYy9XS0Jhc2UuaAppbmRleCA4NGVl
NmMyODhmNmQyZWJkNTFmYTczZWE3MjcwOGYzMjk0NmJkZDg1Li43YzhiZDIzOTI0YzRhYjcxMTU0
ZjVjYWM3ZTczY2M3M2QzOTQ1OGMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9B
UEkvYy9XS0Jhc2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BUEkvYy9XS0Jhc2UuaApA
QCAtMTQyLDYgKzE0Miw4IEBAIHR5cGVkZWYgY29uc3Qgc3RydWN0IE9wYXF1ZVdLV2Vic2l0ZURh
dGFTdG9yZSogV0tXZWJzaXRlRGF0YVN0b3JlUmVmOwogdHlwZWRlZiBjb25zdCBzdHJ1Y3QgT3Bh
cXVlV0tXZWJzaXRlUG9saWNpZXMqIFdLV2Vic2l0ZVBvbGljaWVzUmVmOwogdHlwZWRlZiBjb25z
dCBzdHJ1Y3QgT3BhcXVlV0tXaW5kb3dGZWF0dXJlcyogV0tXaW5kb3dGZWF0dXJlc1JlZjsKIHR5
cGVkZWYgY29uc3Qgc3RydWN0IE9wYXF1ZVdLU3BlZWNoUmVjb2duaXRpb25QZXJtaXNzaW9uQ2Fs
bGJhY2sqIFdLU3BlZWNoUmVjb2duaXRpb25QZXJtaXNzaW9uQ2FsbGJhY2tSZWY7Cit0eXBlZGVm
IGNvbnN0IHN0cnVjdCBPcGFxdWVXS01lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3QqIFdL
TWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdFJlZjsKK3R5cGVkZWYgY29uc3Qgc3RydWN0
IE9wYXF1ZVdLTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uQ2FsbGJhY2sqIFdLTWVkaWFLZXlTeXN0
ZW1QZXJtaXNzaW9uQ2FsbGJhY2tSZWY7CiAKIC8qIFdlYktpdDIgQnVuZGxlIHR5cGVzICovCiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU291cmNlcy50eHQgYi9Tb3VyY2UvV2ViS2l0L1Nv
dXJjZXMudHh0CmluZGV4IDdmNDA4YmM0NjEwYzEwNTQ5MWQ1YjA2NDFmOGI3MGYzYWY5MWIwNDMu
LjQzYWEyYjdkNTc2MmM1OGQ5NDdlMjFlZjRiYzcyNTA0NTk5NzFkMDEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvU291cmNlcy50eHQKKysrIGIvU291cmNlL1dlYktpdC9Tb3VyY2VzLnR4dApA
QCAtMjg1LDYgKzI4NSw4IEBAIFVJUHJvY2Vzcy9GcmFtZUxvYWRTdGF0ZS5jcHAKIFVJUHJvY2Vz
cy9HZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmNwcAogVUlQcm9jZXNz
L0dlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3RQcm94eS5jcHAKIFVJUHJvY2Vzcy9MZWdhY3lH
bG9iYWxTZXR0aW5ncy5jcHAKK1VJUHJvY2Vzcy9NZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1
ZXN0TWFuYWdlclByb3h5LmNwcAorVUlQcm9jZXNzL01lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJl
cXVlc3RQcm94eS5jcHAKIFVJUHJvY2Vzcy9QYWdlTG9hZFN0YXRlLmNwcAogVUlQcm9jZXNzL1By
b2Nlc3NBc3NlcnRpb24uY3BwCiBVSVByb2Nlc3MvUHJvY2Vzc1Rocm90dGxlci5jcHAKQEAgLTM5
MSw2ICszOTMsNyBAQCBVSVByb2Nlc3MvQVBJL0MvV0tIaXRUZXN0UmVzdWx0LmNwcAogVUlQcm9j
ZXNzL0FQSS9DL1dLSWNvbkRhdGFiYXNlLmNwcAogVUlQcm9jZXNzL0FQSS9DL1dLSW5zcGVjdG9y
LmNwcAogVUlQcm9jZXNzL0FQSS9DL1dLS2V5VmFsdWVTdG9yYWdlTWFuYWdlci5jcHAKK1VJUHJv
Y2Vzcy9BUEkvQy9XS01lZGlhS2V5U3lzdGVtUGVybWlzc2lvbkNhbGxiYWNrLmNwcAogVUlQcm9j
ZXNzL0FQSS9DL1dLTWVzc2FnZUxpc3RlbmVyLmNwcAogVUlQcm9jZXNzL0FQSS9DL1dLTW9ja0Rp
c3BsYXkuY3BwCiBVSVByb2Nlc3MvQVBJL0MvV0tNb2NrTWVkaWFEZXZpY2UuY3BwCkBAIC01MTEs
NiArNTE0LDggQEAgV2ViUHJvY2Vzcy9EYXRhYmFzZXMvV2ViRGF0YWJhc2VQcm92aWRlci5jcHAK
IAogV2ViUHJvY2Vzcy9EYXRhYmFzZXMvSW5kZXhlZERCL1dlYklEQkNvbm5lY3Rpb25Ub1NlcnZl
ci5jcHAKIAorV2ViUHJvY2Vzcy9FbmNyeXB0ZWRNZWRpYS9NZWRpYUtleVN5c3RlbVBlcm1pc3Np
b25SZXF1ZXN0TWFuYWdlci5jcHAKKwogV2ViUHJvY2Vzcy9GaWxlQVBJL0Jsb2JSZWdpc3RyeVBy
b3h5LmNwcAogCiBXZWJQcm9jZXNzL0Z1bGxTY3JlZW4vV2ViRnVsbFNjcmVlbk1hbmFnZXIuY3Bw
CkBAIC02NjUsNiArNjcwLDcgQEAgV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJEcmFnQ2xp
ZW50LmNwcAogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuY3BwCiBX
ZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcAogV2ViUHJv
Y2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJHZW9sb2NhdGlvbkNsaWVudC5jcHAKK1dlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvV2ViTWVkaWFLZXlTeXN0ZW1DbGllbnQuY3BwCiBXZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L1dlYk1lc3NhZ2VQb3J0Q2hhbm5lbFByb3ZpZGVyLmNwcAogV2ViUHJvY2Vz
cy9XZWJDb3JlU3VwcG9ydC9XZWJOb3RpZmljYXRpb25DbGllbnQuY3BwCiBXZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L1dlYlBlcmZvcm1hbmNlTG9nZ2luZ0NsaWVudC5jcHAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElVSUNsaWVudC5oIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL0FQSVVJQ2xpZW50LmgKaW5kZXggYjE3YjVhMTk2MmJjOWZkZTZiZjhm
MDU1ZDRiNGFlOWUxN2ViODRkZS4uMTYzNjdlNmNhYzgyNWFhOWM3NGZiNGM0ODQzZGQyZjFmZjFk
YWQzOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSVVJQ2xpZW50
LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSVVJQ2xpZW50LmgKQEAgLTIw
NSw2ICsyMDUsOSBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGRpZERpc2FibGVJbnNwZWN0
b3JCcm93c2VyRG9tYWluKFdlYktpdDo6V2ViUGFnZVByb3h5JikgeyB9CiAKICAgICB2aXJ0dWFs
IHZvaWQgZGVjaWRlUG9saWN5Rm9yU3BlZWNoUmVjb2duaXRpb25QZXJtaXNzaW9uUmVxdWVzdChX
ZWJLaXQ6OldlYlBhZ2VQcm94eSYgcGFnZSwgQVBJOjpTZWN1cml0eU9yaWdpbiYgb3JpZ2luLCBD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmIGNvbXBsZXRpb25IYW5kbGVyKSB7IHBhZ2Uu
cmVxdWVzdFNwZWVjaFJlY29nbml0aW9uUGVybWlzc2lvbkJ5RGVmYXVsdEFjdGlvbihvcmlnaW4u
c2VjdXJpdHlPcmlnaW4oKSwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOyB9CisKKyAgICB2
aXJ0dWFsIHZvaWQgZGVjaWRlUG9saWN5Rm9yTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVz
dChXZWJLaXQ6OldlYlBhZ2VQcm94eSYgcGFnZSwgQVBJOjpTZWN1cml0eU9yaWdpbiYgb3JpZ2lu
LCBjb25zdCBXVEY6OlN0cmluZyYga2V5U3lzdGVtLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJv
b2wpPiYmIGNvbXBsZXRpb25IYW5kbGVyKSB7IHBhZ2UucmVxdWVzdE1lZGlhS2V5U3lzdGVtUGVy
bWlzc2lvbkJ5RGVmYXVsdEFjdGlvbihvcmlnaW4uc2VjdXJpdHlPcmlnaW4oKSwgV1RGTW92ZShj
b21wbGV0aW9uSGFuZGxlcikpOyB9CisKIH07CiAKIH0gLy8gbmFtZXNwYWNlIEFQSQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tBUElDYXN0LmggYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS0FQSUNhc3QuaAppbmRleCBjYzljZjU5NTdlYTMwZDZh
Y2YwNDY4ZGU3MDE3OThhNmY0MTgxMTRhLi5jOGExODk1YTZkMGRlNzA5ZjlhZTM5OGJlNDViZWE2
NmI5ZWJmYTBkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS0FQ
SUNhc3QuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS0FQSUNhc3QuaApA
QCAtNzgsNiArNzgsNyBAQCBjbGFzcyBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZVByb3h5OwogY2xh
c3MgQXV0aGVudGljYXRpb25EZWNpc2lvbkxpc3RlbmVyOwogY2xhc3MgRG93bmxvYWRQcm94eTsK
IGNsYXNzIEdlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3Q7CitjbGFzcyBNZWRpYUtleVN5c3Rl
bVBlcm1pc3Npb25DYWxsYmFjazsKIGNsYXNzIE5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0
OwogY2xhc3MgU3BlZWNoUmVjb2duaXRpb25QZXJtaXNzaW9uQ2FsbGJhY2s7CiBjbGFzcyBVc2Vy
TWVkaWFQZXJtaXNzaW9uQ2hlY2tQcm94eTsKQEAgLTEzNSw2ICsxMzYsNyBAQCBXS19BRERfQVBJ
X01BUFBJTkcoV0tIVFRQQ29va2llU3RvcmVSZWYsIEFQSTo6SFRUUENvb2tpZVN0b3JlKQogV0tf
QUREX0FQSV9NQVBQSU5HKFdLSGl0VGVzdFJlc3VsdFJlZiwgQVBJOjpIaXRUZXN0UmVzdWx0KQog
V0tfQUREX0FQSV9NQVBQSU5HKFdLSWNvbkRhdGFiYXNlUmVmLCBXZWJJY29uRGF0YWJhc2UpCiBX
S19BRERfQVBJX01BUFBJTkcoV0tJbnNwZWN0b3JSZWYsIFdlYkluc3BlY3RvclByb3h5KQorV0tf
QUREX0FQSV9NQVBQSU5HKFdLTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uQ2FsbGJhY2tSZWYsIE1l
ZGlhS2V5U3lzdGVtUGVybWlzc2lvbkNhbGxiYWNrKQogV0tfQUREX0FQSV9NQVBQSU5HKFdLTWVz
c2FnZUxpc3RlbmVyUmVmLCBBUEk6Ok1lc3NhZ2VMaXN0ZW5lcikKIFdLX0FERF9BUElfTUFQUElO
RyhXS05hdmlnYXRpb25BY3Rpb25SZWYsIEFQSTo6TmF2aWdhdGlvbkFjdGlvbikKIFdLX0FERF9B
UElfTUFQUElORyhXS05hdmlnYXRpb25EYXRhUmVmLCBBUEk6Ok5hdmlnYXRpb25EYXRhKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tNZWRpYUtleVN5c3RlbVBl
cm1pc3Npb25DYWxsYmFjay5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS01l
ZGlhS2V5U3lzdGVtUGVybWlzc2lvbkNhbGxiYWNrLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hYWE3MzI0YmJj
MmFiMzcyNTdkYTgzYWJiYzM0MDcxNGJhN2UwNTMwCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25DYWxsYmFj
ay5jcHAKQEAgLTAsMCArMSw0MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBJZ2FsaWEg
Uy5MLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV0tNZWRpYUtl
eVN5c3RlbVBlcm1pc3Npb25DYWxsYmFjay5oIgorCisjaW5jbHVkZSAiTWVkaWFLZXlTeXN0ZW1Q
ZXJtaXNzaW9uUmVxdWVzdC5oIgorI2luY2x1ZGUgIldLQVBJQ2FzdC5oIgorCit1c2luZyBuYW1l
c3BhY2UgV2ViS2l0OworCitXS1R5cGVJRCBXS01lZGlhS2V5U3lzdGVtUGVybWlzc2lvbkNhbGxi
YWNrR2V0VHlwZUlEKCkKK3sKKyAgICByZXR1cm4gdG9BUEkoTWVkaWFLZXlTeXN0ZW1QZXJtaXNz
aW9uQ2FsbGJhY2s6OkFQSVR5cGUpOworfQorCit2b2lkIFdLTWVkaWFLZXlTeXN0ZW1QZXJtaXNz
aW9uQ2FsbGJhY2tDb21wbGV0ZShXS01lZGlhS2V5U3lzdGVtUGVybWlzc2lvbkNhbGxiYWNrUmVm
IHBlcm1pc3Npb25DYWxsYmFjaywgYm9vbCBncmFudGVkKQoreworICAgIHJldHVybiB0b0ltcGwo
cGVybWlzc2lvbkNhbGxiYWNrKS0+Y29tcGxldGUoZ3JhbnRlZCk7Cit9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS01lZGlhS2V5U3lzdGVtUGVybWlzc2lvbkNh
bGxiYWNrLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS01lZGlhS2V5U3lzdGVt
UGVybWlzc2lvbkNhbGxiYWNrLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjVkMzY4MzdlZmE2OWE0YjA2ZGYxMzIx
MjJmYWY2YTBhMWY1MjA3OAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9DL1dLTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uQ2FsbGJhY2suaApAQCAtMCwwICsx
LDQwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIElnYWxpYSBTLkwuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09O
VFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
IElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICog
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisK
KyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSA8V2ViS2l0L1dLQmFzZS5oPgorCisjaWZkZWYgX19j
cGx1c3BsdXMKK2V4dGVybiAiQyIgeworI2VuZGlmCisKK1dLX0VYUE9SVCBXS1R5cGVJRCBXS01l
ZGlhS2V5U3lzdGVtUGVybWlzc2lvbkNhbGxiYWNrR2V0VHlwZUlEKHZvaWQpOworCitXS19FWFBP
UlQgdm9pZCBXS01lZGlhS2V5U3lzdGVtUGVybWlzc2lvbkNhbGxiYWNrQ29tcGxldGUoV0tNZWRp
YUtleVN5c3RlbVBlcm1pc3Npb25DYWxsYmFja1JlZiBwZXJtaXNzaW9uQ2FsbGJhY2ssIGJvb2wg
Z3JhbnRlZCk7CisKKyNpZmRlZiBfX2NwbHVzcGx1cworfQorI2VuZGlmCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuY3BwIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL0MvV0tQYWdlLmNwcAppbmRleCA3NDQzZjcwZjk1NzU4MzZkODQzZGE1NGM4
NDgxNTA5YzlkOGM0ZGVjLi5jMzllNzJmMDcxMmNiYWMwYmViYWZmMGIwMmU4NDU3M2FjMTZmOTE0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5jcHAKQEAgLTU4LDYgKzU4
LDcgQEAKICNpbmNsdWRlICJEb3dubG9hZFByb3h5LmgiCiAjaW5jbHVkZSAiTGVnYWN5U2Vzc2lv
blN0YXRlQ29kaW5nLmgiCiAjaW5jbHVkZSAiTG9nZ2luZy5oIgorI2luY2x1ZGUgIk1lZGlhS2V5
U3lzdGVtUGVybWlzc2lvblJlcXVlc3QuaCIKICNpbmNsdWRlICJOYXRpdmVXZWJLZXlib2FyZEV2
ZW50LmgiCiAjaW5jbHVkZSAiTmF0aXZlV2ViV2hlZWxFdmVudC5oIgogI2luY2x1ZGUgIk5hdmln
YXRpb25BY3Rpb25EYXRhLmgiCkBAIC0xMTcsNyArMTE4LDcgQEAgdGVtcGxhdGU8PiBzdHJ1Y3Qg
Q2xpZW50VHJhaXRzPFdLUGFnZVBvbGljeUNsaWVudEJhc2U+IHsKIH07CiAKIHRlbXBsYXRlPD4g
c3RydWN0IENsaWVudFRyYWl0czxXS1BhZ2VVSUNsaWVudEJhc2U+IHsKLSAgICB0eXBlZGVmIHN0
ZDo6dHVwbGU8V0tQYWdlVUlDbGllbnRWMCwgV0tQYWdlVUlDbGllbnRWMSwgV0tQYWdlVUlDbGll
bnRWMiwgV0tQYWdlVUlDbGllbnRWMywgV0tQYWdlVUlDbGllbnRWNCwgV0tQYWdlVUlDbGllbnRW
NSwgV0tQYWdlVUlDbGllbnRWNiwgV0tQYWdlVUlDbGllbnRWNywgV0tQYWdlVUlDbGllbnRWOCwg
V0tQYWdlVUlDbGllbnRWOSwgV0tQYWdlVUlDbGllbnRWMTAsIFdLUGFnZVVJQ2xpZW50VjExLCBX
S1BhZ2VVSUNsaWVudFYxMiwgV0tQYWdlVUlDbGllbnRWMTMsIFdLUGFnZVVJQ2xpZW50VjE0LCBX
S1BhZ2VVSUNsaWVudFYxNT4gVmVyc2lvbnM7CisgICAgdHlwZWRlZiBzdGQ6OnR1cGxlPFdLUGFn
ZVVJQ2xpZW50VjAsIFdLUGFnZVVJQ2xpZW50VjEsIFdLUGFnZVVJQ2xpZW50VjIsIFdLUGFnZVVJ
Q2xpZW50VjMsIFdLUGFnZVVJQ2xpZW50VjQsIFdLUGFnZVVJQ2xpZW50VjUsIFdLUGFnZVVJQ2xp
ZW50VjYsIFdLUGFnZVVJQ2xpZW50VjcsIFdLUGFnZVVJQ2xpZW50VjgsIFdLUGFnZVVJQ2xpZW50
VjksIFdLUGFnZVVJQ2xpZW50VjEwLCBXS1BhZ2VVSUNsaWVudFYxMSwgV0tQYWdlVUlDbGllbnRW
MTIsIFdLUGFnZVVJQ2xpZW50VjEzLCBXS1BhZ2VVSUNsaWVudFYxNCwgV0tQYWdlVUlDbGllbnRW
MTUsIFdLUGFnZVVJQ2xpZW50VjE2PiBWZXJzaW9uczsKIH07CiAKICNpZiBFTkFCTEUoQ09OVEVY
VF9NRU5VUykKQEAgLTIxMTksNiArMjEyMCwxNiBAQCB2b2lkIFdLUGFnZVNldFBhZ2VVSUNsaWVu
dChXS1BhZ2VSZWYgcGFnZVJlZiwgY29uc3QgV0tQYWdlVUlDbGllbnRCYXNlKiB3a0NsaWVudAog
CiAgICAgICAgICAgICBtX2NsaWVudC5kZWNpZGVQb2xpY3lGb3JTcGVlY2hSZWNvZ25pdGlvblBl
cm1pc3Npb25SZXF1ZXN0KHRvQVBJKCZwYWdlKSwgdG9BUEkoJm9yaWdpbiksIHRvQVBJKFNwZWVj
aFJlY29nbml0aW9uUGVybWlzc2lvbkNhbGxiYWNrOjpjcmVhdGUoV1RGTW92ZShjb21wbGV0aW9u
SGFuZGxlcikpLnB0cigpKSk7CiAgICAgICAgIH0KKworICAgICAgICB2b2lkIGRlY2lkZVBvbGlj
eUZvck1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3QoV2ViUGFnZVByb3h5JiBwYWdlLCBB
UEk6OlNlY3VyaXR5T3JpZ2luJiBvcmlnaW4sIGNvbnN0IFN0cmluZyYga2V5U3lzdGVtLCBDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmIGNvbXBsZXRpb25IYW5kbGVyKSBmaW5hbAorICAg
ICAgICB7CisgICAgICAgICAgICBpZiAoIW1fY2xpZW50LmRlY2lkZVBvbGljeUZvck1lZGlhS2V5
U3lzdGVtUGVybWlzc2lvblJlcXVlc3QpIHsKKyAgICAgICAgICAgICAgICBjb21wbGV0aW9uSGFu
ZGxlcihmYWxzZSk7CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQorCisg
ICAgICAgICAgICBtX2NsaWVudC5kZWNpZGVQb2xpY3lGb3JNZWRpYUtleVN5c3RlbVBlcm1pc3Np
b25SZXF1ZXN0KHRvQVBJKCZwYWdlKSwgdG9BUEkoJm9yaWdpbiksIHRvQVBJKEFQSTo6U3RyaW5n
OjpjcmVhdGUoa2V5U3lzdGVtKS5wdHIoKSksIHRvQVBJKE1lZGlhS2V5U3lzdGVtUGVybWlzc2lv
bkNhbGxiYWNrOjpjcmVhdGUoV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpLnB0cigpKSk7Cisg
ICAgICAgIH0KICAgICB9OwogCiAgICAgdG9JbXBsKHBhZ2VSZWYpLT5zZXRVSUNsaWVudChtYWtl
VW5pcXVlPFVJQ2xpZW50Pih3a0NsaWVudCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL0MvV0tQYWdlVUlDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9DL1dLUGFnZVVJQ2xpZW50LmgKaW5kZXggNjM2MzU1NTY0ZDAwYjExMjJhODdlMjI5YTMw
Yjk0ZDdlOTllNGVmOS4uM2QzMTViZTYxMzQ4ZGQ3ZDI0NjdiYWE5NGRlYTRhZTcxMWMyNzgwMyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlVUlDbGllbnQu
aAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2VVSUNsaWVudC5oCkBA
IC0xMzgsOCArMTM4LDEwIEBAIHR5cGVkZWYgYm9vbCAoKldLUGFnZVNob3VsZEFsbG93RGV2aWNl
T3JpZW50YXRpb25BbmRNb3Rpb25BY2Nlc3NDYWxsYmFjaykoV0tQYWdlCiB0eXBlZGVmIHZvaWQg
KCpXS1BhZ2VSdW5XZWJBdXRoZW50aWNhdGlvblBhbmVsQ2FsbGJhY2spKCk7CiB0eXBlZGVmIHZv
aWQgKCpXS1BhZ2VEZWNpZGVQb2xpY3lGb3JTcGVlY2hSZWNvZ25pdGlvblBlcm1pc3Npb25SZXF1
ZXN0Q2FsbGJhY2spKFdLUGFnZVJlZiBwYWdlLCBXS1NlY3VyaXR5T3JpZ2luUmVmIHRvcE9yaWdp
biwgV0tTcGVlY2hSZWNvZ25pdGlvblBlcm1pc3Npb25DYWxsYmFja1JlZiBjYWxsYmFjayk7CiAK
K3R5cGVkZWYgdm9pZCAoKldLUGFnZURlY2lkZVBvbGljeUZvck1lZGlhS2V5U3lzdGVtUGVybWlz
c2lvblJlcXVlc3RDYWxsYmFjaykoV0tQYWdlUmVmIHBhZ2UsIFdLU2VjdXJpdHlPcmlnaW5SZWYg
dG9wT3JpZ2luLCBXS1N0cmluZ1JlZiBrZXlTeXN0ZW0sIFdLTWVkaWFLZXlTeXN0ZW1QZXJtaXNz
aW9uQ2FsbGJhY2tSZWYgY2FsbGJhY2spOworCiAvLyBEZXByZWNhdGVkCi10eXBlZGVmIFdLUGFn
ZVJlZiAoKldLUGFnZUNyZWF0ZU5ld1BhZ2VDYWxsYmFja19kZXByZWNhdGVkRm9yVXNlV2l0aFYw
KShXS1BhZ2VSZWYgcGFnZSwgV0tEaWN0aW9uYXJ5UmVmIGZlYXR1cmVzLCBXS0V2ZW50TW9kaWZp
ZXJzIG1vZGlmaWVycywgV0tFdmVudE1vdXNlQnV0dG9uIG1vdXNlQnV0dG9uLCBjb25zdCB2b2lk
ICpjbGllbnRJbmZvKTsKK3R5cGVkZWYgV0tQYWdlUmVmICgqV0tQYWdlQ3JlYXRlTmV3UGFnZUNh
bGxiYWNrX2RlcHJlY2F0ZWRGb3JVc2VXaXRoVjApKFdLUGFnZVJlZiBwYWdlLCBXS0RpY3Rpb25h
cnlSZWYgZmVhdHVyZXMsIFdLRXZlbnRNb2RpZmllcnMgbW9kaWZpZXJzLCBXS0V2ZW50TW91c2VC
dXR0b24gbW91c2VCdXR0b24sIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pOwogdHlwZWRlZiB2b2lk
ICAgICAgKCpXS1BhZ2VNb3VzZURpZE1vdmVPdmVyRWxlbWVudENhbGxiYWNrX2RlcHJlY2F0ZWRG
b3JVc2VXaXRoVjApKFdLUGFnZVJlZiBwYWdlLCBXS0V2ZW50TW9kaWZpZXJzIG1vZGlmaWVycywg
V0tUeXBlUmVmIHVzZXJEYXRhLCBjb25zdCB2b2lkICpjbGllbnRJbmZvKTsKIHR5cGVkZWYgdm9p
ZCAoKldLUGFnZU1pc3NpbmdQbHVnaW5CdXR0b25DbGlja2VkQ2FsbGJhY2tfZGVwcmVjYXRlZEZv
clVzZVdpdGhWMCkoV0tQYWdlUmVmIHBhZ2UsIFdLU3RyaW5nUmVmIG1pbWVUeXBlLCBXS1N0cmlu
Z1JlZiB1cmwsIFdLU3RyaW5nUmVmIHBsdWdpbnNQYWdlVVJMLCBjb25zdCB2b2lkKiBjbGllbnRJ
bmZvKTsKIHR5cGVkZWYgdm9pZCAoKldLUGFnZVVuYXZhaWxhYmxlUGx1Z2luQnV0dG9uQ2xpY2tl
ZENhbGxiYWNrX2RlcHJlY2F0ZWRGb3JVc2VXaXRoVjEpKFdLUGFnZVJlZiBwYWdlLCBXS1BsdWdp
blVuYXZhaWxhYmlsaXR5UmVhc29uIHBsdWdpblVuYXZhaWxhYmlsaXR5UmVhc29uLCBXS1N0cmlu
Z1JlZiBtaW1lVHlwZSwgV0tTdHJpbmdSZWYgdXJsLCBXS1N0cmluZ1JlZiBwbHVnaW5zUGFnZVVS
TCwgY29uc3Qgdm9pZCogY2xpZW50SW5mbyk7CkBAIC0xNDY1LDYgKzE0NjcsMTIxIEBAIHR5cGVk
ZWYgc3RydWN0IFdLUGFnZVVJQ2xpZW50VjE1IHsKICAgICAKIH0gV0tQYWdlVUlDbGllbnRWMTU7
CiAKK3R5cGVkZWYgc3RydWN0IFdLUGFnZVVJQ2xpZW50VjE2IHsKKyAgICBXS1BhZ2VVSUNsaWVu
dEJhc2UgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJh
c2U7CisKKyAgICAvLyBWZXJzaW9uIDAuCisgICAgV0tQYWdlQ3JlYXRlTmV3UGFnZUNhbGxiYWNr
X2RlcHJlY2F0ZWRGb3JVc2VXaXRoVjAgICAgICAgICAgICAgICAgICBjcmVhdGVOZXdQYWdlX2Rl
cHJlY2F0ZWRGb3JVc2VXaXRoVjA7CisgICAgV0tQYWdlVUlDbGllbnRDYWxsYmFjayAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaG93UGFnZTsKKyAgICBXS1Bh
Z2VVSUNsaWVudENhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGNsb3NlOworICAgIFdLUGFnZVRha2VGb2N1c0NhbGxiYWNrICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFrZUZvY3VzOworICAgIFdLUGFnZUZvY3Vz
Q2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
Zm9jdXM7CisgICAgV0tQYWdlVW5mb2N1c0NhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB1bmZvY3VzOworICAgIFdLUGFnZVJ1bkphdmFTY3JpcHRB
bGVydENhbGxiYWNrX2RlcHJlY2F0ZWRGb3JVc2VXaXRoVjAgICAgICAgICAgICAgcnVuSmF2YVNj
cmlwdEFsZXJ0X2RlcHJlY2F0ZWRGb3JVc2VXaXRoVjA7CisgICAgV0tQYWdlUnVuSmF2YVNjcmlw
dENvbmZpcm1DYWxsYmFja19kZXByZWNhdGVkRm9yVXNlV2l0aFYwICAgICAgICAgICBydW5KYXZh
U2NyaXB0Q29uZmlybV9kZXByZWNhdGVkRm9yVXNlV2l0aFYwOworICAgIFdLUGFnZVJ1bkphdmFT
Y3JpcHRQcm9tcHRDYWxsYmFja19kZXByZWNhdGVkRm9yVXNlV2l0aFYwICAgICAgICAgICAgcnVu
SmF2YVNjcmlwdFByb21wdF9kZXByZWNhdGVkRm9yVXNlV2l0aFYwOworICAgIFdLUGFnZVNldFN0
YXR1c1RleHRDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
c2V0U3RhdHVzVGV4dDsKKyAgICBXS1BhZ2VNb3VzZURpZE1vdmVPdmVyRWxlbWVudENhbGxiYWNr
X2RlcHJlY2F0ZWRGb3JVc2VXaXRoVjAgICAgICAgIG1vdXNlRGlkTW92ZU92ZXJFbGVtZW50X2Rl
cHJlY2F0ZWRGb3JVc2VXaXRoVjA7CisgICAgV0tQYWdlTWlzc2luZ1BsdWdpbkJ1dHRvbkNsaWNr
ZWRDYWxsYmFja19kZXByZWNhdGVkRm9yVXNlV2l0aFYwICAgICBtaXNzaW5nUGx1Z2luQnV0dG9u
Q2xpY2tlZF9kZXByZWNhdGVkRm9yVXNlV2l0aFYwOworICAgIFdLUGFnZURpZE5vdEhhbmRsZUtl
eUV2ZW50Q2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlkTm90SGFu
ZGxlS2V5RXZlbnQ7CisgICAgV0tQYWdlRGlkTm90SGFuZGxlV2hlZWxFdmVudENhbGxiYWNrICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaWROb3RIYW5kbGVXaGVlbEV2ZW50OworICAg
IFdLUGFnZUdldFRvb2xiYXJzQXJlVmlzaWJsZUNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgdG9vbGJhcnNBcmVWaXNpYmxlOworICAgIFdLUGFnZVNldFRvb2xiYXJzQXJl
VmlzaWJsZUNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0VG9vbGJh
cnNBcmVWaXNpYmxlOworICAgIFdLUGFnZUdldE1lbnVCYXJJc1Zpc2libGVDYWxsYmFjayAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWVudUJhcklzVmlzaWJsZTsKKyAgICBXS1Bh
Z2VTZXRNZW51QmFySXNWaXNpYmxlQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHNldE1lbnVCYXJJc1Zpc2libGU7CisgICAgV0tQYWdlR2V0U3RhdHVzQmFySXNWaXNp
YmxlQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0dXNCYXJJc1Zp
c2libGU7CisgICAgV0tQYWdlU2V0U3RhdHVzQmFySXNWaXNpYmxlQ2FsbGJhY2sgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBzZXRTdGF0dXNCYXJJc1Zpc2libGU7CisgICAgV0tQYWdl
R2V0SXNSZXNpemFibGVDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBpc1Jlc2l6YWJsZTsKKyAgICBXS1BhZ2VTZXRJc1Jlc2l6YWJsZUNhbGxiYWNrICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldElzUmVzaXphYmxlOworICAgIFdL
UGFnZUdldFdpbmRvd0ZyYW1lQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgZ2V0V2luZG93RnJhbWU7CisgICAgV0tQYWdlU2V0V2luZG93RnJhbWVDYWxsYmFj
ayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRXaW5kb3dGcmFtZTsK
KyAgICBXS1BhZ2VSdW5CZWZvcmVVbmxvYWRDb25maXJtUGFuZWxDYWxsYmFja19kZXByZWNhdGVk
Rm9yVXNlV2l0aFY2ICAgIHJ1bkJlZm9yZVVubG9hZENvbmZpcm1QYW5lbF9kZXByZWNhdGVkRm9y
VXNlV2l0aFY2OworICAgIFdLUGFnZVVJQ2xpZW50Q2FsbGJhY2sgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlkRHJhdzsKKyAgICBXS1BhZ2VVSUNsaWVudENh
bGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhZ2VE
aWRTY3JvbGw7CisgICAgV0tQYWdlRXhjZWVkZWREYXRhYmFzZVF1b3RhQ2FsbGJhY2sgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBleGNlZWRlZERhdGFiYXNlUXVvdGE7CisgICAgV0tQ
YWdlUnVuT3BlblBhbmVsQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBydW5PcGVuUGFuZWw7CisgICAgV0tQYWdlRGVjaWRlUG9saWN5Rm9yR2VvbG9jYXRp
b25QZXJtaXNzaW9uUmVxdWVzdENhbGxiYWNrICAgICAgICAgICBkZWNpZGVQb2xpY3lGb3JHZW9s
b2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0OworICAgIFdLUGFnZUhlYWRlckhlaWdodENhbGxiYWNr
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVhZGVySGVpZ2h0Owor
ICAgIFdLUGFnZUZvb3RlckhlaWdodENhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgZm9vdGVySGVpZ2h0OworICAgIFdLUGFnZURyYXdIZWFkZXJDYWxsYmFj
ayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZHJhd0hlYWRlcjsK
KyAgICBXS1BhZ2VEcmF3Rm9vdGVyQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGRyYXdGb290ZXI7CisgICAgV0tQYWdlUHJpbnRGcmFtZUNhbGxiYWNr
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmludEZyYW1lOwor
ICAgIFdLUGFnZVVJQ2xpZW50Q2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgcnVuTW9kYWw7CisgICAgdm9pZCogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnVzZWQxOyAvLyBVc2Vk
IHRvIGJlIGRpZENvbXBsZXRlUnViYmVyQmFuZEZvck1haW5GcmFtZQorICAgIFdLUGFnZVNhdmVE
YXRhVG9GaWxlSW5Eb3dubG9hZHNGb2xkZXJDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAg
c2F2ZURhdGFUb0ZpbGVJbkRvd25sb2Fkc0ZvbGRlcjsKKyAgICB2b2lkKiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNob3VsZElu
dGVycnVwdEphdmFTY3JpcHRfdW5hdmFpbGFibGU7CisKKyAgICAvLyBWZXJzaW9uIDEuCisgICAg
V0tQYWdlQ3JlYXRlTmV3UGFnZUNhbGxiYWNrX2RlcHJlY2F0ZWRGb3JVc2VXaXRoVjEgICAgICAg
ICAgICAgICAgICBjcmVhdGVOZXdQYWdlX2RlcHJlY2F0ZWRGb3JVc2VXaXRoVjE7CisgICAgV0tQ
YWdlTW91c2VEaWRNb3ZlT3ZlckVsZW1lbnRDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBtb3VzZURpZE1vdmVPdmVyRWxlbWVudDsKKyAgICBXS1BhZ2VEZWNpZGVQb2xpY3lG
b3JOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdENhbGxiYWNrICAgICAgICAgIGRlY2lkZVBv
bGljeUZvck5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0OworICAgIFdLUGFnZVVuYXZhaWxh
YmxlUGx1Z2luQnV0dG9uQ2xpY2tlZENhbGxiYWNrX2RlcHJlY2F0ZWRGb3JVc2VXaXRoVjEgdW5h
dmFpbGFibGVQbHVnaW5CdXR0b25DbGlja2VkX2RlcHJlY2F0ZWRGb3JVc2VXaXRoVjE7CisKKyAg
ICAvLyBWZXJzaW9uIDIuCisgICAgV0tQYWdlU2hvd0NvbG9yUGlja2VyQ2FsbGJhY2sgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaG93Q29sb3JQaWNrZXI7CisgICAgV0tQ
YWdlSGlkZUNvbG9yUGlja2VyQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBoaWRlQ29sb3JQaWNrZXI7CisgICAgV0tQYWdlVW5hdmFpbGFibGVQbHVnaW5CdXR0
b25DbGlja2VkQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICB1bmF2YWlsYWJsZVBsdWdp
bkJ1dHRvbkNsaWNrZWQ7CisKKyAgICAvLyBWZXJzaW9uIDMuCisgICAgV0tQYWdlUGlubmVkU3Rh
dGVEaWRDaGFuZ2VDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwaW5u
ZWRTdGF0ZURpZENoYW5nZTsKKworICAgIC8vIFZlcnNpb24gNC4KKyAgICB2b2lkKiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVu
dXNlZDI7IC8vIFVzZWQgdG8gYmUgZGlkQmVnaW5UcmFja2luZ1BvdGVudGlhbExvbmdNb3VzZVBy
ZXNzLgorICAgIHZvaWQqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgdW51c2VkMzsgLy8gVXNlZCB0byBiZSBkaWRSZWNvZ25pemVM
b25nTW91c2VQcmVzcy4KKyAgICB2b2lkKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVudXNlZDQ7IC8vIFVzZWQgdG8gYmUgZGlk
Q2FuY2VsVHJhY2tpbmdQb3RlbnRpYWxMb25nTW91c2VQcmVzcy4KKyAgICBXS1BhZ2VJc1BsYXlp
bmdBdWRpb0RpZENoYW5nZUNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlz
UGxheWluZ0F1ZGlvRGlkQ2hhbmdlOworCisgICAgLy8gVmVyc2lvbiA1LgorICAgIFdLUGFnZURl
Y2lkZVBvbGljeUZvclVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0Q2FsbGJhY2sgICAgICAgICAg
ICAgZGVjaWRlUG9saWN5Rm9yVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3Q7CisgICAgV0tQYWdl
RGlkQ2xpY2tBdXRvRmlsbEJ1dHRvbkNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBkaWRDbGlja0F1dG9GaWxsQnV0dG9uOworICAgIFdLUGFnZVJ1bkphdmFTY3JpcHRBbGVy
dENhbGxiYWNrX2RlcHJlY2F0ZWRGb3JVc2VXaXRoVjUgICAgICAgICAgICAgcnVuSmF2YVNjcmlw
dEFsZXJ0X2RlcHJlY2F0ZWRGb3JVc2VXaXRoVjU7CisgICAgV0tQYWdlUnVuSmF2YVNjcmlwdENv
bmZpcm1DYWxsYmFja19kZXByZWNhdGVkRm9yVXNlV2l0aFY1ICAgICAgICAgICBydW5KYXZhU2Ny
aXB0Q29uZmlybV9kZXByZWNhdGVkRm9yVXNlV2l0aFY1OworICAgIFdLUGFnZVJ1bkphdmFTY3Jp
cHRQcm9tcHRDYWxsYmFja19kZXByZWNhdGVkRm9yVXNlV2l0aFY1ICAgICAgICAgICAgcnVuSmF2
YVNjcmlwdFByb21wdF9kZXByZWNhdGVkRm9yVXNlV2l0aFY1OworICAgIHZvaWQqICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW51
c2VkNTsgLy8gVXNlZCB0byBiZSBtZWRpYVNlc3Npb25NZXRhZGF0YURpZENoYW5nZS4KKworICAg
IC8vIFZlcnNpb24gNi4KKyAgICBXS1BhZ2VDcmVhdGVOZXdQYWdlQ2FsbGJhY2sgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNyZWF0ZU5ld1BhZ2U7CisgICAgV0tQYWdl
UnVuSmF2YVNjcmlwdEFsZXJ0Q2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBydW5KYXZhU2NyaXB0QWxlcnQ7CisgICAgV0tQYWdlUnVuSmF2YVNjcmlwdENvbmZpcm1D
YWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBydW5KYXZhU2NyaXB0Q29u
ZmlybTsKKyAgICBXS1BhZ2VSdW5KYXZhU2NyaXB0UHJvbXB0Q2FsbGJhY2sgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHJ1bkphdmFTY3JpcHRQcm9tcHQ7CisgICAgV0tDaGVja1Vz
ZXJNZWRpYVBlcm1pc3Npb25DYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBjaGVja1VzZXJNZWRpYVBlcm1pc3Npb25Gb3JPcmlnaW47CisKKyAgICAvLyBWZXJzaW9uIDcu
CisgICAgV0tQYWdlUnVuQmVmb3JlVW5sb2FkQ29uZmlybVBhbmVsQ2FsbGJhY2sgICAgICAgICAg
ICAgICAgICAgICAgICAgICBydW5CZWZvcmVVbmxvYWRDb25maXJtUGFuZWw7CisgICAgV0tGdWxs
c2NyZWVuTWF5UmV0dXJuVG9JbmxpbmVDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBmdWxsc2NyZWVuTWF5UmV0dXJuVG9JbmxpbmU7CisKKyAgICAvLyBWZXJzaW9uIDguCisg
ICAgV0tSZXF1ZXN0UG9pbnRlckxvY2tDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICByZXF1ZXN0UG9pbnRlckxvY2s7CisgICAgV0tEaWRMb3NlUG9pbnRlckxv
Y2tDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaWRMb3Nl
UG9pbnRlckxvY2s7CisKKyAgICAvLyBWZXJzaW9uIDkuCisgICAgV0tIYW5kbGVBdXRvcGxheUV2
ZW50Q2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVB
dXRvcGxheUV2ZW50OworCisgICAgLy8gVmVyc2lvbiAxMC4KKyAgICBXS0hhc1ZpZGVvSW5QaWN0
dXJlSW5QaWN0dXJlRGlkQ2hhbmdlQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgIGhhc1Zp
ZGVvSW5QaWN0dXJlSW5QaWN0dXJlRGlkQ2hhbmdlOworICAgIFdLRGlkRXhjZWVkQmFja2dyb3Vu
ZFJlc291cmNlTGltaXRXaGlsZUluRm9yZWdyb3VuZENhbGxiYWNrICAgICAgICAgZGlkRXhjZWVk
QmFja2dyb3VuZFJlc291cmNlTGltaXRXaGlsZUluRm9yZWdyb3VuZDsKKworICAgIC8vIFZlcnNp
b24gMTEuCisgICAgV0tQYWdlRGlkUmVzaWduSW5wdXRFbGVtZW50U3Ryb25nUGFzc3dvcmRBcHBl
YXJhbmNlQ2FsbGJhY2sgICAgICAgICBkaWRSZXNpZ25JbnB1dEVsZW1lbnRTdHJvbmdQYXNzd29y
ZEFwcGVhcmFuY2U7CisKKyAgICAvLyBWZXJzaW9uIDEyLgorICAgIFdLUGFnZVJlcXVlc3RTdG9y
YWdlQWNjZXNzQ29uZmlybUNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVz
dFN0b3JhZ2VBY2Nlc3NDb25maXJtOworCisgICAgLy8gVmVyc2lvbiAxMy4KKyAgICBXS1BhZ2VT
aG91bGRBbGxvd0RldmljZU9yaWVudGF0aW9uQW5kTW90aW9uQWNjZXNzQ2FsbGJhY2sgICAgICAg
ICAgIHNob3VsZEFsbG93RGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25BY2Nlc3M7CisKKyAgICAv
LyBWZXJzaW9uIDE0LgorICAgIFdLUGFnZVJ1bldlYkF1dGhlbnRpY2F0aW9uUGFuZWxDYWxsYmFj
ayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcnVuV2ViQXV0aGVudGljYXRpb25QYW5lbDsK
KworICAgIC8vIFZlcnNpb24gMTUuCisgICAgV0tQYWdlRGVjaWRlUG9saWN5Rm9yU3BlZWNoUmVj
b2duaXRpb25QZXJtaXNzaW9uUmVxdWVzdENhbGxiYWNrICAgICBkZWNpZGVQb2xpY3lGb3JTcGVl
Y2hSZWNvZ25pdGlvblBlcm1pc3Npb25SZXF1ZXN0OworCisgICAgLy8gVmVyc2lvbiAxNi4KKyAg
ICBXS1BhZ2VEZWNpZGVQb2xpY3lGb3JNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0Q2Fs
bGJhY2sgICAgICAgIGRlY2lkZVBvbGljeUZvck1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVl
c3Q7CisKK30gV0tQYWdlVUlDbGllbnRWMTY7CisKKwogI2lmZGVmIF9fY3BsdXNwbHVzCiB9CiAj
ZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL01lZGlhS2V5U3lzdGVt
UGVybWlzc2lvblJlcXVlc3QuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL01lZGlhS2V5U3lz
dGVtUGVybWlzc2lvblJlcXVlc3QuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40YWZjMzVkMDE3NzJkNTg5N2M3N2Vh
YzAxMDdiYzliZTc0YjQ2MjhhCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdC5oCkBAIC0wLDAgKzEsNzYgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgSWdhbGlhIFMuTC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRP
UlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENP
TlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdt
YSBvbmNlCisKKyNpbmNsdWRlICJBUElPYmplY3QuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL0NsaWVu
dE9yaWdpbi5oPgorI2luY2x1ZGUgPHd0Zi9Db21wbGV0aW9uSGFuZGxlci5oPgorCituYW1lc3Bh
Y2UgV2ViS2l0IHsKKworY2xhc3MgTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdCA6IHB1
YmxpYyBSZWZDb3VudGVkPE1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3Q+IHsKK3B1Ymxp
YzoKKyAgICBzdGF0aWMgUmVmPE1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3Q+IGNyZWF0
ZShjb25zdCBTdHJpbmcmIGtleVN5c3RlbSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4m
JiBjb21wbGV0aW9uSGFuZGxlcikKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3
IE1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3Qoa2V5U3lzdGVtLCBXVEZNb3ZlKGNvbXBs
ZXRpb25IYW5kbGVyKSkpOworICAgIH0KKworICAgIHZvaWQgY29tcGxldGUoYm9vbCBzdWNjZXNz
KQorICAgIHsKKyAgICAgICAgYXV0byBjb21wbGV0aW9uSGFuZGxlciA9IHN0ZDo6ZXhjaGFuZ2Uo
bV9jb21wbGV0aW9uSGFuZGxlciwgeyB9KTsKKyAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoc3Vj
Y2Vzcyk7CisgICAgfQorCisgICAgY29uc3QgU3RyaW5nJiBrZXlTeXN0ZW0oKSBjb25zdCB7IHJl
dHVybiBtX2tleVN5c3RlbTsgfQorCitwcml2YXRlOgorICAgIE1lZGlhS2V5U3lzdGVtUGVybWlz
c2lvblJlcXVlc3QoY29uc3QgU3RyaW5nJiBrZXlTeXN0ZW0sIENvbXBsZXRpb25IYW5kbGVyPHZv
aWQoYm9vbCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCisgICAgICAgIDogbV9rZXlTeXN0ZW0oa2V5
U3lzdGVtKQorICAgICAgICAsIG1fY29tcGxldGlvbkhhbmRsZXIoV1RGTW92ZShjb21wbGV0aW9u
SGFuZGxlcikpCisgICAgeyB9CisKKyAgICBTdHJpbmcgbV9rZXlTeXN0ZW07CisgICAgQ29tcGxl
dGlvbkhhbmRsZXI8dm9pZChib29sKT4gbV9jb21wbGV0aW9uSGFuZGxlcjsKK307CisKK2NsYXNz
IE1lZGlhS2V5U3lzdGVtUGVybWlzc2lvbkNhbGxiYWNrIDogcHVibGljIEFQSTo6T2JqZWN0SW1w
bDxBUEk6Ok9iamVjdDo6VHlwZTo6TWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uQ2FsbGJhY2s+IHsK
K3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmPE1lZGlhS2V5U3lzdGVtUGVybWlzc2lvbkNhbGxiYWNr
PiBjcmVhdGUoQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJiBjb21wbGV0aW9uSGFuZGxl
cikKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IE1lZGlhS2V5U3lzdGVtUGVy
bWlzc2lvbkNhbGxiYWNrKFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKSk7CisgICAgfQorCisg
ICAgdm9pZCBjb21wbGV0ZShib29sIGdyYW50ZWQpIHsgbV9jb21wbGV0aW9uSGFuZGxlcihncmFu
dGVkKTsgfQorCitwcml2YXRlOgorICAgIE1lZGlhS2V5U3lzdGVtUGVybWlzc2lvbkNhbGxiYWNr
KENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCisgICAg
ICAgIDogbV9jb21wbGV0aW9uSGFuZGxlcihXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSkKKyAg
ICB7IH0KKworICAgIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+IG1fY29tcGxldGlvbkhh
bmRsZXI7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL01lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJv
eHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9u
UmVxdWVzdE1hbmFnZXJQcm94eS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYmIzZTQ1MmQ1ODM1MTk4ZTJiYjVh
ZWYyMzI0NGE1ZmRlY2ZlZDAwNwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL01lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuY3BwCkBA
IC0wLDAgKzEsMTI0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIElnYWxpYSBTLkwuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFO
RCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJNZWRpYUtleVN5c3RlbVBl
cm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmgiCisKKyNpbmNsdWRlICJBUElTZWN1cml0eU9y
aWdpbi5oIgorI2luY2x1ZGUgIkFQSVVJQ2xpZW50LmgiCisjaW5jbHVkZSAiTG9nZ2luZy5oIgor
I2luY2x1ZGUgIldlYkF1dG9tYXRpb25TZXNzaW9uLmgiCisjaW5jbHVkZSAiV2ViUGFnZU1lc3Nh
Z2VzLmgiCisjaW5jbHVkZSAiV2ViUGFnZVByb3h5LmgiCisjaW5jbHVkZSAiV2ViUHJvY2Vzcy5o
IgorI2luY2x1ZGUgIldlYlByb2Nlc3NQb29sLmgiCisjaW5jbHVkZSAiV2ViUHJvY2Vzc1Byb3h5
LmgiCisjaW5jbHVkZSAiV2Vic2l0ZURhdGFTdG9yZS5oIgorI2luY2x1ZGUgPFdlYkNvcmUvTWVk
aWFLZXlTeXN0ZW1SZXF1ZXN0Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9TZWN1cml0eU9yaWdpbkRh
dGEuaD4KKyNpbmNsdWRlIDx3dGYvU2NvcGUuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7Cit1c2lu
ZyBuYW1lc3BhY2UgV2ViQ29yZTsKKworTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdE1h
bmFnZXJQcm94eTo6TWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eShX
ZWJQYWdlUHJveHkmIHBhZ2UpCisgICAgOiBtX3BhZ2UocGFnZSkKKyNpZiAhUkVMRUFTRV9MT0df
RElTQUJMRUQKKyAgICAsIG1fbG9nZ2VyKHBhZ2UubG9nZ2VyKCkpCisgICAgLCBtX2xvZ0lkZW50
aWZpZXIodW5pcXVlTG9nSWRlbnRpZmllcigpKQorI2VuZGlmCit7Cit9CisKK01lZGlhS2V5U3lz
dGVtUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6On5NZWRpYUtleVN5c3RlbVBlcm1pc3Np
b25SZXF1ZXN0TWFuYWdlclByb3h5KCkKK3sKKyAgICBpbnZhbGlkYXRlUGVuZGluZ1JlcXVlc3Rz
KCk7Cit9CisKK3ZvaWQgTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94
eTo6aW52YWxpZGF0ZVBlbmRpbmdSZXF1ZXN0cygpCit7CisgICAgZm9yIChhdXRvJiByZXF1ZXN0
IDogbV9wZW5kaW5nUmVxdWVzdHMudmFsdWVzKCkpCisgICAgICAgIHJlcXVlc3QtPmludmFsaWRh
dGUoKTsKKworICAgIG1fcGVuZGluZ1JlcXVlc3RzLmNsZWFyKCk7Cit9CisKK3ZvaWQgTWVkaWFL
ZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6ZGVueVJlcXVlc3QoTWVkaWFL
ZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdFByb3h5JiByZXF1ZXN0LCBjb25zdCBTdHJpbmcmIG1l
c3NhZ2UpCit7CisgICAgaWYgKCFtX3BhZ2UuaGFzUnVubmluZ1Byb2Nlc3MoKSkKKyAgICAgICAg
cmV0dXJuOworCisgICAgQUxXQVlTX0xPRyhMT0dJREVOVElGSUVSLCByZXF1ZXN0Lm1lZGlhS2V5
U3lzdGVtSUQoKSwgIiwgcmVhc29uOiAiLCBtZXNzYWdlKTsKKworI2lmIEVOQUJMRShFTkNSWVBU
RURfTUVESUEpCisgICAgbV9wYWdlLnNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6Ok1lZGlhS2V5U3lz
dGVtV2FzRGVuaWVkKHJlcXVlc3QubWVkaWFLZXlTeXN0ZW1JRCgpLCBtZXNzYWdlKSk7CisjZWxz
ZQorICAgIFVOVVNFRF9QQVJBTShtZXNzYWdlKTsKKyNlbmRpZgorfQorCit2b2lkIE1lZGlhS2V5
U3lzdGVtUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6OmdyYW50UmVxdWVzdChNZWRpYUtl
eVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0UHJveHkmIHJlcXVlc3QpCit7CisgICAgaWYgKCFtX3Bh
Z2UuaGFzUnVubmluZ1Byb2Nlc3MoKSkKKyAgICAgICAgcmV0dXJuOworCisjaWYgRU5BQkxFKEVO
Q1JZUFRFRF9NRURJQSkKKyAgICBBTFdBWVNfTE9HKExPR0lERU5USUZJRVIsIHJlcXVlc3QubWVk
aWFLZXlTeXN0ZW1JRCgpLCAiLCBrZXlTeXN0ZW06ICIsIHJlcXVlc3Qua2V5U3lzdGVtKCkpOwor
CisgICAgbV9wYWdlLnNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6V2ViUGFnZTo6TWVkaWFL
ZXlTeXN0ZW1XYXNHcmFudGVkIHsgcmVxdWVzdC5tZWRpYUtleVN5c3RlbUlEKCkgfSwgW10geyB9
KTsKKyNlbHNlCisgICAgVU5VU0VEX1BBUkFNKHJlcXVlc3QpOworI2VuZGlmCit9CisKK1JlZjxN
ZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0UHJveHk+IE1lZGlhS2V5U3lzdGVtUGVybWlz
c2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6OmNyZWF0ZVJlcXVlc3RGb3JGcmFtZSh1aW50NjRfdCBt
ZWRpYUtleVN5c3RlbUlELCBGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgUmVmPFNlY3VyaXR5T3Jp
Z2luPiYmIHRvcExldmVsRG9jdW1lbnRPcmlnaW4sIGNvbnN0IFN0cmluZyYga2V5U3lzdGVtKQor
eworI2lmIEVOQUJMRShFTkNSWVBURURfTUVESUEpCisgICAgQUxXQVlTX0xPRyhMT0dJREVOVElG
SUVSLCBtZWRpYUtleVN5c3RlbUlEKTsKKworICAgIGF1dG8gcmVxdWVzdCA9IE1lZGlhS2V5U3lz
dGVtUGVybWlzc2lvblJlcXVlc3RQcm94eTo6Y3JlYXRlKCp0aGlzLCBtZWRpYUtleVN5c3RlbUlE
LCBtX3BhZ2UubWFpbkZyYW1lKCktPmZyYW1lSUQoKSwgZnJhbWVJRCwgV1RGTW92ZSh0b3BMZXZl
bERvY3VtZW50T3JpZ2luKSwga2V5U3lzdGVtKTsKKyAgICBtX3BlbmRpbmdSZXF1ZXN0cy5hZGQo
bWVkaWFLZXlTeXN0ZW1JRCwgcmVxdWVzdC5wdHIoKSk7CisgICAgcmV0dXJuIHJlcXVlc3Q7Cisj
ZWxzZQorICAgIFVOVVNFRF9QQVJBTShtZWRpYUtleVN5c3RlbUlEKTsKKyAgICBVTlVTRURfUEFS
QU0oZnJhbWVJRCk7CisgICAgVU5VU0VEX1BBUkFNKHRvcExldmVsRG9jdW1lbnRPcmlnaW4pOwor
ICAgIFVOVVNFRF9QQVJBTShrZXlTeXN0ZW0pOworI2VuZGlmCit9CisKKyNpZiAhUkVMRUFTRV9M
T0dfRElTQUJMRUQKK1dURkxvZ0NoYW5uZWwmIE1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVl
c3RNYW5hZ2VyUHJveHk6OmxvZ0NoYW5uZWwoKSBjb25zdAoreworICAgIHJldHVybiBXZWJLaXQy
TG9nRU1FOworfQorCitjb25zdCBMb2dnZXImIE1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVl
c3RNYW5hZ2VyUHJveHk6OmxvZ2dlcigpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fcGFnZS5sb2dn
ZXIoKTsKK30KKyNlbmRpZgorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL01lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RNYW5h
Z2VyUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL01lZGlhS2V5U3lzdGVtUGVybWlz
c2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iMDNhNjI4NDgxMWJlZjJkMjIx
MzFiN2JlMTBlODkzYzA2NzE4NmZjCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5oCkBA
IC0wLDAgKzEsODUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgSWdhbGlhIFMuTC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlICJNZWRpYUtleVN5c3RlbVBlcm1pc3Np
b25SZXF1ZXN0UHJveHkuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL1NlY3VyaXR5T3JpZ2luLmg+Cisj
aW5jbHVkZSA8d3RmL0NvbXBsZXRpb25IYW5kbGVyLmg+CisjaW5jbHVkZSA8d3RmL0RlcXVlLmg+
CisjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KKyNpbmNsdWRlIDx3dGYvTG9nZ2VySGVscGVyLmg+
CisjaW5jbHVkZSA8d3RmL1J1bkxvb3AuaD4KKyNpbmNsdWRlIDx3dGYvU2Vjb25kcy5oPgorI2lu
Y2x1ZGUgPHd0Zi9XZWFrUHRyLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKK2NsYXNzIFNlY3Vy
aXR5T3JpZ2luOworfTsKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIFdlYlBhZ2VQcm94
eTsKKworY2xhc3MgTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eQor
ICAgIDogcHVibGljIENhbk1ha2VXZWFrUHRyPE1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVl
c3RNYW5hZ2VyUHJveHk+CisjaWYgIVJFTEVBU0VfTE9HX0RJU0FCTEVECisgICAgLCBwcml2YXRl
IExvZ2dlckhlbHBlcgorI2VuZGlmCit7CisgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7Citw
dWJsaWM6CisgICAgZXhwbGljaXQgTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdE1hbmFn
ZXJQcm94eShXZWJQYWdlUHJveHkmKTsKKyAgICB+TWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVx
dWVzdE1hbmFnZXJQcm94eSgpOworCisgICAgV2ViUGFnZVByb3h5JiBwYWdlKCkgY29uc3QgeyBy
ZXR1cm4gbV9wYWdlOyB9CisKKyAgICB2b2lkIGludmFsaWRhdGVQZW5kaW5nUmVxdWVzdHMoKTsK
KworICAgIFJlZjxNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0UHJveHk+IGNyZWF0ZVJl
cXVlc3RGb3JGcmFtZSh1aW50NjRfdCB1c2VyTWVkaWFJRCwgV2ViQ29yZTo6RnJhbWVJZGVudGlm
aWVyLCBSZWY8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4+JiYgdG9wTGV2ZWxEb2N1bWVudE9yaWdp
biwgY29uc3QgU3RyaW5nJiBrZXlTeXN0ZW0pOworCisgICAgdm9pZCBncmFudFJlcXVlc3QoTWVk
aWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdFByb3h5Jik7CisgICAgdm9pZCBkZW55UmVxdWVz
dChNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0UHJveHkmLCBjb25zdCBTdHJpbmcmIG1l
c3NhZ2UgPSB7IH0pOworCitwcml2YXRlOgorI2lmICFSRUxFQVNFX0xPR19ESVNBQkxFRAorICAg
IGNvbnN0IExvZ2dlciYgbG9nZ2VyKCkgY29uc3QgZmluYWw7CisgICAgY29uc3Qgdm9pZCogbG9n
SWRlbnRpZmllcigpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1fbG9nSWRlbnRpZmllcjsgfQorICAg
IGNvbnN0IGNoYXIqIGxvZ0NsYXNzTmFtZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuICJNZWRp
YUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5IjsgfQorICAgIFdURkxvZ0No
YW5uZWwmIGxvZ0NoYW5uZWwoKSBjb25zdCBmaW5hbDsKKyNlbmRpZgorCisgICAgV2ViUGFnZVBy
b3h5JiBtX3BhZ2U7CisKKyAgICBIYXNoTWFwPHVpbnQ2NF90LCBSZWZQdHI8TWVkaWFLZXlTeXN0
ZW1QZXJtaXNzaW9uUmVxdWVzdFByb3h5Pj4gbV9wZW5kaW5nUmVxdWVzdHM7CisgICAgSGFzaFNl
dDxTdHJpbmc+IG1fdmFsaWRBdXRob3JpemF0aW9uVG9rZW5zOworCisjaWYgIVJFTEVBU0VfTE9H
X0RJU0FCTEVECisgICAgUmVmPGNvbnN0IExvZ2dlcj4gbV9sb2dnZXI7CisgICAgY29uc3Qgdm9p
ZCogbV9sb2dJZGVudGlmaWVyOworI2VuZGlmCit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL01lZGlhS2V5U3lzdGVtUGVybWlz
c2lvblJlcXVlc3RQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9NZWRpYUtleVN5
c3RlbVBlcm1pc3Npb25SZXF1ZXN0UHJveHkuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQyYjkxNTVkMTU4NTZh
MzQwMmJjZmMxZjU1MjY5MjBlMDM3OTBiZGMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9NZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0UHJveHkuY3BwCkBA
IC0wLDAgKzEsODIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgSWdhbGlhIFMuTC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIk1lZGlhS2V5U3lzdGVtUGVy
bWlzc2lvblJlcXVlc3RQcm94eS5oIgorCisjaW5jbHVkZSAiTWVkaWFLZXlTeXN0ZW1QZXJtaXNz
aW9uUmVxdWVzdE1hbmFnZXJQcm94eS5oIgorI2luY2x1ZGUgPFdlYkNvcmUvU2VjdXJpdHlPcmln
aW4uaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1NlY3VyaXR5T3JpZ2luRGF0YS5oPgorI2luY2x1ZGUg
PHd0Zi90ZXh0L1N0cmluZ0hhc2guaD4KKworbmFtZXNwYWNlIFdlYktpdCB7Cit1c2luZyBuYW1l
c3BhY2UgV2ViQ29yZTsKKworTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdFByb3h5OjpN
ZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0UHJveHkoTWVkaWFLZXlTeXN0ZW1QZXJtaXNz
aW9uUmVxdWVzdE1hbmFnZXJQcm94eSYgbWFuYWdlciwgdWludDY0X3QgbWVkaWFLZXlTeXN0ZW1J
RCwgRnJhbWVJZGVudGlmaWVyIG1haW5GcmFtZUlELCBGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwg
UmVmPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luPiYmIHRvcExldmVsRG9jdW1lbnRPcmlnaW4sIGNv
bnN0IFN0cmluZyYga2V5U3lzdGVtKQorICAgIDogbV9tYW5hZ2VyKCZtYW5hZ2VyKQorICAgICwg
bV9tZWRpYUtleVN5c3RlbUlEKG1lZGlhS2V5U3lzdGVtSUQpCisgICAgLCBtX21haW5GcmFtZUlE
KG1haW5GcmFtZUlEKQorICAgICwgbV9mcmFtZUlEKGZyYW1lSUQpCisgICAgLCBtX3RvcExldmVs
RG9jdW1lbnRTZWN1cml0eU9yaWdpbihXVEZNb3ZlKHRvcExldmVsRG9jdW1lbnRPcmlnaW4pKQor
ICAgICwgbV9rZXlTeXN0ZW0oa2V5U3lzdGVtKQoreworfQorCit2b2lkIE1lZGlhS2V5U3lzdGVt
UGVybWlzc2lvblJlcXVlc3RQcm94eTo6YWxsb3coKQoreworICAgIEFTU0VSVChtX21hbmFnZXIp
OworICAgIGlmICghbV9tYW5hZ2VyKQorICAgICAgICByZXR1cm47CisKKyAgICBtX21hbmFnZXIt
PmdyYW50UmVxdWVzdCgqdGhpcyk7CisgICAgaW52YWxpZGF0ZSgpOworfQorCit2b2lkIE1lZGlh
S2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RQcm94eTo6ZGVueSgpCit7CisgICAgaWYgKCFtX21h
bmFnZXIpCisgICAgICAgIHJldHVybjsKKworICAgIG1fbWFuYWdlci0+ZGVueVJlcXVlc3QoKnRo
aXMpOworICAgIGludmFsaWRhdGUoKTsKK30KKwordm9pZCBNZWRpYUtleVN5c3RlbVBlcm1pc3Np
b25SZXF1ZXN0UHJveHk6OmludmFsaWRhdGUoKQoreworICAgIG1fbWFuYWdlciA9IG51bGxwdHI7
Cit9CisKK3ZvaWQgTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdFByb3h5Ojpkb0RlZmF1
bHRBY3Rpb24oKQoreworI2lmIFBMQVRGT1JNKENPQ09BKQorICAgIC8vIEJhY2t3YXJkIGNvbXBh
dGliaWxpdHkgZm9yIHBsYXRmb3JtcyBub3QgeWV0IHN1cHBvcnRpbmcgdGhlIE1lZGlhS2V5U3lz
dGVtIHBlcm1pc3Npb24gcmVxdWVzdAorICAgIC8vIGluIHRoZWlyIEFQSVVJQ2xpZW50LgorICAg
IGFsbG93KCk7CisjZWxzZQorICAgIGRlbnkoKTsKKyNlbmRpZgorfQorCit9IC8vIG5hbWVzcGFj
ZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL01lZGlhS2V5U3lz
dGVtUGVybWlzc2lvblJlcXVlc3RQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTWVk
aWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdFByb3h5LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYTY0ZDFjNjIw
NTdkNTY5NzIwNTY4NmU4NzFhZWMyODM2NzUwNWRjOQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL01lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RQcm94eS5o
CkBAIC0wLDAgKzEsNzYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgSWdhbGlhIFMuTC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlICJBUElPYmplY3QuaCIKKyNpbmNs
dWRlIDxXZWJDb3JlL0ZyYW1lSWRlbnRpZmllci5oPgorI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4K
KyNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgewor
Y2xhc3MgU2VjdXJpdHlPcmlnaW47Cit9CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBN
ZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5OworCitjbGFzcyBNZWRp
YUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0UHJveHkgOiBwdWJsaWMgUmVmQ291bnRlZDxNZWRp
YUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0UHJveHk+IHsKK3B1YmxpYzoKKyAgICBzdGF0aWMg
UmVmPE1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RQcm94eT4gY3JlYXRlKE1lZGlhS2V5
U3lzdGVtUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkmIG1hbmFnZXIsIHVpbnQ2NF90IG1l
ZGlhS2V5U3lzdGVtSUQsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBtYWluRnJhbWVJRCwgV2Vi
Q29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIFJlZjxXZWJDb3JlOjpTZWN1cml0eU9yaWdp
bj4mJiB0b3BMZXZlbERvY3VtZW50T3JpZ2luLCBjb25zdCBTdHJpbmcmIGtleVN5c3RlbSkKKyAg
ICB7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IE1lZGlhS2V5U3lzdGVtUGVybWlzc2lv
blJlcXVlc3RQcm94eShtYW5hZ2VyLCBtZWRpYUtleVN5c3RlbUlELCBtYWluRnJhbWVJRCwgZnJh
bWVJRCwgV1RGTW92ZSh0b3BMZXZlbERvY3VtZW50T3JpZ2luKSwga2V5U3lzdGVtKSk7CisgICAg
fQorCisgICAgdm9pZCBhbGxvdygpOworICAgIHZvaWQgZGVueSgpOworCisgICAgdm9pZCBpbnZh
bGlkYXRlKCk7CisgICAgYm9vbCBpc1BlbmRpbmcoKSBjb25zdCB7IHJldHVybiBtX21hbmFnZXI7
IH0KKworICAgIHVpbnQ2NF90IG1lZGlhS2V5U3lzdGVtSUQoKSBjb25zdCB7IHJldHVybiBtX21l
ZGlhS2V5U3lzdGVtSUQ7IH0KKyAgICBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgbWFpbkZyYW1l
SUQoKSBjb25zdCB7IHJldHVybiBtX21haW5GcmFtZUlEOyB9CisgICAgV2ViQ29yZTo6RnJhbWVJ
ZGVudGlmaWVyIGZyYW1lSUQoKSBjb25zdCB7IHJldHVybiBtX2ZyYW1lSUQ7IH0KKworICAgIFdl
YkNvcmU6OlNlY3VyaXR5T3JpZ2luJiB0b3BMZXZlbERvY3VtZW50U2VjdXJpdHlPcmlnaW4oKSB7
IHJldHVybiBtX3RvcExldmVsRG9jdW1lbnRTZWN1cml0eU9yaWdpbi5nZXQoKTsgfQorICAgIGNv
bnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luJiB0b3BMZXZlbERvY3VtZW50U2VjdXJpdHlPcmln
aW4oKSBjb25zdCB7IHJldHVybiBtX3RvcExldmVsRG9jdW1lbnRTZWN1cml0eU9yaWdpbi5nZXQo
KTsgfQorCisgICAgY29uc3QgU3RyaW5nJiBrZXlTeXN0ZW0oKSBjb25zdCB7IHJldHVybiBtX2tl
eVN5c3RlbTsgfQorCisgICAgdm9pZCBkb0RlZmF1bHRBY3Rpb24oKTsKKworcHJpdmF0ZToKKyAg
ICBNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0UHJveHkoTWVkaWFLZXlTeXN0ZW1QZXJt
aXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eSYsIHVpbnQ2NF90IG1lZGlhS2V5U3lzdGVtSUQsIFdl
YkNvcmU6OkZyYW1lSWRlbnRpZmllciBtYWluRnJhbWVJRCwgV2ViQ29yZTo6RnJhbWVJZGVudGlm
aWVyLCBSZWY8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4+JiYgdG9wTGV2ZWxEb2N1bWVudE9yaWdp
biwgY29uc3QgU3RyaW5nJiBrZXlTeXN0ZW0pOworCisgICAgTWVkaWFLZXlTeXN0ZW1QZXJtaXNz
aW9uUmVxdWVzdE1hbmFnZXJQcm94eSogbV9tYW5hZ2VyOworICAgIHVpbnQ2NF90IG1fbWVkaWFL
ZXlTeXN0ZW1JRDsKKyAgICBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgbV9tYWluRnJhbWVJRDsK
KyAgICBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgbV9mcmFtZUlEOworICAgIFJlZjxXZWJDb3Jl
OjpTZWN1cml0eU9yaWdpbj4gbV90b3BMZXZlbERvY3VtZW50U2VjdXJpdHlPcmlnaW47CisgICAg
U3RyaW5nIG1fa2V5U3lzdGVtOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0
aW1lTWVkaWFTb3VyY2UuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3BlZWNoUmVjb2du
aXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlLmNwcAppbmRleCBiOWQ5MzIwOTYzOWRkM2Jm
OGYyNzQ4MzUyNGNmNDA2ZDYzZWM2MGFkLi40Mzg0ZDQ5YTE3YzllZjAzYzMwYjg5ZjcyNGI1YjUz
OTcyMTRkOTdjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TcGVlY2hSZWNv
Z25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZS5jcHAK
QEAgLTMzLDYgKzMzLDggQEAKIAogI2lmIFBMQVRGT1JNKENPQ09BKQogI2luY2x1ZGUgIlNoYXJl
ZFJpbmdCdWZmZXJTdG9yYWdlLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9DQVJpbmdCdWZmZXIuaD4K
KyNpbmNsdWRlIDxXZWJDb3JlL1dlYkF1ZGlvQnVmZmVyTGlzdC5oPgogI2VuZGlmCiAKIG5hbWVz
cGFjZSBXZWJLaXQgewpAQCAtNDcsNyArNDksNyBAQCBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJl
YWx0aW1lTWVkaWFTb3VyY2U6OlNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYQog
ICAgICwgbV9pZGVudGlmaWVyKGlkZW50aWZpZXIpCiAgICAgLCBtX21hbmFnZXIobWFrZVdlYWtQ
dHIobWFuYWdlcikpCiAjaWYgUExBVEZPUk0oQ09DT0EpCi0gICAgLCBtX3JpbmdCdWZmZXIobWFr
ZVVuaXF1ZTxDQVJpbmdCdWZmZXI+KCkpCisgICAgLCBtX3JpbmdCdWZmZXIobWFrZVVuaXF1ZTxX
ZWJDb3JlOjpDQVJpbmdCdWZmZXI+KCkpCiAjZW5kaWYKIHsKICAgICBtX21hbmFnZXItPmFkZFNv
dXJjZSgqdGhpcywgY2FwdHVyZURldmljZSk7CkBAIC03Nyw4ICs3OSw4IEBAIHZvaWQgU3BlZWNo
UmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjpzZXRTdG9yYWdlKGNvbnN0IFNo
YXJlZE1lbW9yeTo6CiB7CiAgICAgbV9kZXNjcmlwdGlvbiA9IGRlc2NyaXB0aW9uOwogCi0gICAg
bV9yaW5nQnVmZmVyID0gbWFrZVVuaXF1ZTxDQVJpbmdCdWZmZXI+KG1ha2VVbmlxdWVSZWY8UmVh
ZE9ubHlTaGFyZWRSaW5nQnVmZmVyU3RvcmFnZT4oaGFuZGxlKSwgZGVzY3JpcHRpb24sIG51bWJl
ck9mRnJhbWVzKTsKLSAgICBtX2J1ZmZlciA9IG1ha2VVbmlxdWU8V2ViQXVkaW9CdWZmZXJMaXN0
PihkZXNjcmlwdGlvbiwgbnVtYmVyT2ZGcmFtZXMpOworICAgIG1fcmluZ0J1ZmZlciA9IG1ha2VV
bmlxdWU8V2ViQ29yZTo6Q0FSaW5nQnVmZmVyPihtYWtlVW5pcXVlUmVmPFJlYWRPbmx5U2hhcmVk
UmluZ0J1ZmZlclN0b3JhZ2U+KGhhbmRsZSksIGRlc2NyaXB0aW9uLCBudW1iZXJPZkZyYW1lcyk7
CisgICAgbV9idWZmZXIgPSBtYWtlVW5pcXVlPFdlYkNvcmU6OldlYkF1ZGlvQnVmZmVyTGlzdD4o
ZGVzY3JpcHRpb24sIG51bWJlck9mRnJhbWVzKTsKIH0KIAogI2VuZGlmCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVk
aWFTb3VyY2UuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uUmVt
b3RlUmVhbHRpbWVNZWRpYVNvdXJjZS5oCmluZGV4IDhiNTEyNTBmNWNhZDdmM2Y1Y2U3OGY1OGQ2
NzYzNzE5MGNmOGJmOTEuLmExZTI3YWQ1ZmQ3MDM4ZWQyZWRlZWIzMmMxNWI1MDkxMGRhZDUxZTAg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uUmVt
b3RlUmVhbHRpbWVNZWRpYVNvdXJjZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Nw
ZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZS5oCkBAIC0yNyw2ICsyNyw3
IEBACiAKICNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQogCisjaW5jbHVkZSAiU2hhcmVkTWVtb3J5
LmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9SZWFsdGltZU1lZGlhU291cmNlLmg+CiAjaW5jbHVkZSA8
V2ViQ29yZS9SZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllci5oPgogCkBAIC00Myw3ICs0NCw4
IEBAIGNsYXNzIFdlYkF1ZGlvQnVmZmVyTGlzdDsKIH0KIAogbmFtZXNwYWNlIFdlYktpdCB7Ci0K
K2NsYXNzIFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI7
CisgICAgCiBjbGFzcyBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2Ug
OiBwdWJsaWMgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZSB7CiBwdWJsaWM6CiAgICAgc3Rh
dGljIFJlZjxXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlPiBjcmVhdGUoU3BlZWNoUmVjb2du
aXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlciYsIGNvbnN0IFdlYkNvcmU6OkNh
cHR1cmVEZXZpY2UmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBh
Z2VQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCmlu
ZGV4IGYxMmM4NDZlODhkYmQwNjBiYTQ1YTUzNGQ4YjZmNjJhZjI5MTkxMTAuLmFiNjhhM2JmZjBj
Nzk3YmJiZjdlOGFjODE4YzgzN2EyZTBjNTU4ZGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2ViUGFnZVByb3h5LmNwcApAQCAtODI5MSw2ICs4MjkxLDI3IEBAIHZvaWQgV2ViUGFnZVByb3h5
OjpjbGVhclVzZXJNZWRpYVN0YXRlKCkKICNlbmRpZgogfQogCit2b2lkIFdlYlBhZ2VQcm94eTo6
cmVxdWVzdE1lZGlhS2V5U3lzdGVtUGVybWlzc2lvbkZvckZyYW1lKHVpbnQ2NF90IG1lZGlhS2V5
U3lzdGVtSUQsIEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBjb25zdCBXZWJDb3JlOjpTZWN1cml0
eU9yaWdpbkRhdGEmIHRvcExldmVsRG9jdW1lbnRPcmlnaW5EYXRhLCBjb25zdCBTdHJpbmcmIGtl
eVN5c3RlbSkKK3sKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorICAgIE1FU1NBR0VfQ0hFQ0so
bV9wcm9jZXNzLCBtX3Byb2Nlc3MtPndlYkZyYW1lKGZyYW1lSUQpKTsKKworICAgIGF1dG8gb3Jp
Z2luID0gQVBJOjpTZWN1cml0eU9yaWdpbjo6Y3JlYXRlKHRvcExldmVsRG9jdW1lbnRPcmlnaW5E
YXRhLnNlY3VyaXR5T3JpZ2luKCkpOworICAgIGF1dG8gcmVxdWVzdCA9IG1lZGlhS2V5U3lzdGVt
UGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyKCkuY3JlYXRlUmVxdWVzdEZvckZyYW1lKG1lZGlhS2V5
U3lzdGVtSUQsIGZyYW1lSUQsIHRvcExldmVsRG9jdW1lbnRPcmlnaW5EYXRhLnNlY3VyaXR5T3Jp
Z2luKCksIGtleVN5c3RlbSk7CisgICAgbV91aUNsaWVudC0+ZGVjaWRlUG9saWN5Rm9yTWVkaWFL
ZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdCgqdGhpcywgb3JpZ2luLCBrZXlTeXN0ZW0sIFtyZXF1
ZXN0ID0gV1RGTW92ZShyZXF1ZXN0KV0oYm9vbCBhbGxvd2VkKSB7CisgICAgICAgIGlmIChhbGxv
d2VkKQorICAgICAgICAgICAgcmVxdWVzdC0+YWxsb3coKTsKKyAgICAgICAgZWxzZQorICAgICAg
ICAgICAgcmVxdWVzdC0+ZGVueSgpOworICAgIH0pOworI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0o
bWVkaWFLZXlTeXN0ZW1JRCk7CisgICAgVU5VU0VEX1BBUkFNKGZyYW1lSUQpOworICAgIFVOVVNF
RF9QQVJBTSh0b3BMZXZlbERvY3VtZW50T3JpZ2luRGF0YSk7CisgICAgVU5VU0VEX1BBUkFNKGtl
eVN5c3RlbSk7CisjZW5kaWYKK30KKwogI2lmIEVOQUJMRShERVZJQ0VfT1JJRU5UQVRJT04pCiB2
b2lkIFdlYlBhZ2VQcm94eTo6c2hvdWxkQWxsb3dEZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvbkFj
Y2VzcyhGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgRnJhbWVJbmZvRGF0YSYmIGZyYW1lSW5mbywg
Ym9vbCBtYXlQcm9tcHQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoRGV2aWNlT3JpZW50YXRpb25P
ck1vdGlvblBlcm1pc3Npb25TdGF0ZSk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CkBAIC04MzAx
LDYgKzgzMjIsMTcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OnNob3VsZEFsbG93RGV2aWNlT3JpZW50
YXRpb25BbmRNb3Rpb25BY2Nlc3MoRnJhbWVJZGVudGlmaWVyIGYKIH0KICNlbmRpZgogCisjaWYg
RU5BQkxFKEVOQ1JZUFRFRF9NRURJQSkKK01lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RN
YW5hZ2VyUHJveHkmIFdlYlBhZ2VQcm94eTo6bWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVz
dE1hbmFnZXIoKQoreworICAgIGlmIChtX21lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RN
YW5hZ2VyKQorICAgICAgICByZXR1cm4gKm1fbWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVz
dE1hbmFnZXI7CisKKyAgICBtX21lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RNYW5hZ2Vy
ID0gbWFrZVVuaXF1ZTxNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5
PigqdGhpcyk7CisgICAgcmV0dXJuICptX21lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RN
YW5hZ2VyOworfQorI2VuZGlmCisKIHZvaWQgV2ViUGFnZVByb3h5OjpyZXF1ZXN0Tm90aWZpY2F0
aW9uUGVybWlzc2lvbih1aW50NjRfdCByZXF1ZXN0SUQsIGNvbnN0IFN0cmluZyYgb3JpZ2luU3Ry
aW5nKQogewogICAgIGlmICghaXNSZXF1ZXN0SURWYWxpZChyZXF1ZXN0SUQpKQpAQCAtMTA0MTUs
NiArMTA0NDcsMTEgQEAgdm9pZCBXZWJQYWdlUHJveHk6OnJlcXVlc3RTcGVlY2hSZWNvZ25pdGlv
blBlcm1pc3Npb25CeURlZmF1bHRBY3Rpb24oY29uc3QgV2ViQ28KICAgICBtX3NwZWVjaFJlY29n
bml0aW9uUGVybWlzc2lvbk1hbmFnZXItPmRlY2lkZUJ5RGVmYXVsdEFjdGlvbihvcmlnaW4sIFdU
Rk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKIH0KIAordm9pZCBXZWJQYWdlUHJveHk6OnJlcXVl
c3RNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25CeURlZmF1bHRBY3Rpb24oY29uc3QgV2ViQ29yZTo6
U2VjdXJpdHlPcmlnaW4mIG9yaWdpbiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJiBj
b21wbGV0aW9uSGFuZGxlcikKK3sKKyAgICBjb21wbGV0aW9uSGFuZGxlcihmYWxzZSk7Cit9CisK
ICNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQogCiBXZWJDb3JlOjpDYXB0dXJlU291cmNlT3JFcnJv
ciBXZWJQYWdlUHJveHk6OmNyZWF0ZVJlYWx0aW1lTWVkaWFTb3VyY2VGb3JTcGVlY2hSZWNvZ25p
dGlvbigpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHku
aCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCmluZGV4IDZhOTkxZGMw
NWVlNGMzNjJlNzkwNWVhZTc4MzE2YzFiNjQyNDdkMTMuLjFkZGZmYWM2YmE1MGQzZGQ1MDEyYTFj
ZTdlNDY0MTdhNmI0NTgxZTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dl
YlBhZ2VQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5o
CkBAIC00MCw2ICs0MCw3IEBACiAjaW5jbHVkZSAiR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVz
dE1hbmFnZXJQcm94eS5oIgogI2luY2x1ZGUgIkhpZGRlblBhZ2VUaHJvdHRsaW5nQXV0b0luY3Jl
YXNlc0NvdW50ZXIuaCIKICNpbmNsdWRlICJMYXllclRyZWVDb250ZXh0LmgiCisjaW5jbHVkZSAi
TWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5oIgogI2luY2x1ZGUg
Ik1lZGlhUGxheWJhY2tTdGF0ZS5oIgogI2luY2x1ZGUgIk1lc3NhZ2VTZW5kZXIuaCIKICNpbmNs
dWRlICJOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5oIgpAQCAtNzIs
OCArNzMsOCBAQAogI2luY2x1ZGUgIldlYlBhZ2VQcm94eUlkZW50aWZpZXIuaCIKICNpbmNsdWRl
ICJXZWJQYWdlUHJveHlNZXNzYWdlc1JlcGxpZXMuaCIKICNpbmNsdWRlICJXZWJQYXltZW50Q29v
cmRpbmF0b3JQcm94eS5oIgotI2luY2x1ZGUgIldlYlByZWZlcmVuY2VzLmgiCiAjaW5jbHVkZSAi
V2ViUG9wdXBNZW51UHJveHkuaCIKKyNpbmNsdWRlICJXZWJQcmVmZXJlbmNlcy5oIgogI2luY2x1
ZGUgIldlYlVuZG9TdGVwSUQuaCIKICNpbmNsdWRlICJXZWJzaXRlUG9saWNpZXNEYXRhLmgiCiAj
aW5jbHVkZSA8V2ViQ29yZS9BY3Rpdml0eVN0YXRlLmg+CkBAIC0xODE5LDYgKzE4MjAsOCBAQCBw
dWJsaWM6CiAgICAgdm9pZCByZXF1ZXN0U3BlZWNoUmVjb2duaXRpb25QZXJtaXNzaW9uKGNvbnN0
IFN0cmluZyYgbGFuZywgY29uc3QgV2ViQ29yZTo6Q2xpZW50T3JpZ2luJiwgQ29tcGxldGlvbkhh
bmRsZXI8dm9pZChPcHRpb25hbDxXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkVycm9yPiYmKT4m
Jik7CiAgICAgdm9pZCByZXF1ZXN0U3BlZWNoUmVjb2duaXRpb25QZXJtaXNzaW9uQnlEZWZhdWx0
QWN0aW9uKGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luJiwgQ29tcGxldGlvbkhhbmRsZXI8
dm9pZChib29sKT4mJik7CiAKKyAgICB2b2lkIHJlcXVlc3RNZWRpYUtleVN5c3RlbVBlcm1pc3Np
b25CeURlZmF1bHRBY3Rpb24oY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4mLCBDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmKTsKKwogICAgIHZvaWQgc3luY0lmTW9ja0RldmljZXNF
bmFibGVkQ2hhbmdlZCgpOwogCiAjaWYgRU5BQkxFKEFQUF9ISUdITElHSFRTKQpAQCAtMTk5NSw2
ICsxOTk4LDExIEBAIHByaXZhdGU6CiAgICAgdm9pZCBlbnVtZXJhdGVNZWRpYURldmljZXNGb3JG
cmFtZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3Jp
Z2luRGF0YSYgdXNlck1lZGlhRG9jdW1lbnRPcmlnaW5EYXRhLCBjb25zdCBXZWJDb3JlOjpTZWN1
cml0eU9yaWdpbkRhdGEmIHRvcExldmVsRG9jdW1lbnRPcmlnaW5EYXRhLCBDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKGNvbnN0IFZlY3RvcjxXZWJDb3JlOjpDYXB0dXJlRGV2aWNlPiYsIGNvbnN0IFN0
cmluZyYpPiYmKTsKICAgICB2b2lkIGJlZ2luTW9uaXRvcmluZ0NhcHR1cmVEZXZpY2VzKCk7CiAK
KyNpZiBFTkFCTEUoRU5DUllQVEVEX01FRElBKQorICAgIE1lZGlhS2V5U3lzdGVtUGVybWlzc2lv
blJlcXVlc3RNYW5hZ2VyUHJveHkmIG1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RNYW5h
Z2VyKCk7CisjZW5kaWYKKyAgICB2b2lkIHJlcXVlc3RNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25G
b3JGcmFtZSh1aW50NjRfdCBtZWRpYUtleVN5c3RlbUlELCBXZWJDb3JlOjpGcmFtZUlkZW50aWZp
ZXIsIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYgdG9wTGV2ZWxEb2N1bWVudE9y
aWdpbklkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYpOworCiAgICAgdm9pZCBydW5Nb2RhbCgpOwog
ICAgIHZvaWQgbm90aWZ5U2Nyb2xsZXJUaHVtYklzVmlzaWJsZUluUmVjdChjb25zdCBXZWJDb3Jl
OjpJbnRSZWN0Jik7CiAgICAgdm9pZCByZWNvbW1lbmRlZFNjcm9sbGJhclN0eWxlRGlkQ2hhbmdl
KGludDMyX3QgbmV3U3R5bGUpOwpAQCAtMjUwNCw2ICsyNTEyLDEwIEBAIHByaXZhdGU6CiAgICAg
c3RkOjp1bmlxdWVfcHRyPFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5PiBt
X3VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcjsKICNlbmRpZgogCisjaWYgRU5BQkxF
KEVOQ1JZUFRFRF9NRURJQSkKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8TWVkaWFLZXlTeXN0ZW1QZXJt
aXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eT4gbV9tZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1
ZXN0TWFuYWdlcjsKKyNlbmRpZgorCiAgICAgT3B0aW9uU2V0PFdlYkNvcmU6OkFjdGl2aXR5U3Rh
dGU6OkZsYWc+IG1fYWN0aXZpdHlTdGF0ZTsKICAgICBib29sIG1fdmlld1dhc0V2ZXJJbldpbmRv
dyB7IGZhbHNlIH07CiAjaWYgUExBVEZPUk0oTUFDQ0FUQUxZU1QpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4KaW5kZXggZjQwMzQ2OThhM2Vj
ZWI1NmQ5NzM1ZWJkZGQ3Y2QzYzQ0YmU5MjYxMS4uODEwYTZlNDNhMDA5MTgwNzE0MTAzMWY2MjUx
MGYwZDgxN2YwYmI5YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFn
ZVByb3h5Lm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQ
cm94eS5tZXNzYWdlcy5pbgpAQCAtMjgwLDYgKzI4MCwxMCBAQCBtZXNzYWdlcyAtPiBXZWJQYWdl
UHJveHkgewogICAgIEJlZ2luTW9uaXRvcmluZ0NhcHR1cmVEZXZpY2VzKCkKICNlbmRpZgogCisj
aWYgRU5BQkxFKEVOQ1JZUFRFRF9NRURJQSkKKyAgICBSZXF1ZXN0TWVkaWFLZXlTeXN0ZW1QZXJt
aXNzaW9uRm9yRnJhbWUodWludDY0X3QgdXNlck1lZGlhSUQsIFdlYkNvcmU6OkZyYW1lSWRlbnRp
ZmllciBmcmFtZUlELCBzdHJ1Y3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhIHRvcExldmVs
RG9jdW1lbnRPcmlnaW5JZGVudGlmaWVyLCBTdHJpbmcga2V5U3lzdGVtKQorI2VuZGlmCisKICAg
ICAjIE5vdGlmaWNhdGlvbiBtZXNzYWdlcwogICAgIFJlcXVlc3ROb3RpZmljYXRpb25QZXJtaXNz
aW9uKHVpbnQ2NF90IHJlcXVlc3RJRCwgU3RyaW5nIG9yaWdpbklkZW50aWZpZXIpCiAgICAgU2hv
d05vdGlmaWNhdGlvbihTdHJpbmcgdGl0bGUsIFN0cmluZyBib2R5LCBTdHJpbmcgaWNvblVSTCwg
U3RyaW5nIHRhZywgU3RyaW5nIGxhbmcsIGVudW06dWludDhfdCBXZWJDb3JlOjpOb3RpZmljYXRp
b25EaXJlY3Rpb24gZGlyLCBTdHJpbmcgb3JpZ2luSWRlbnRpZmllciwgdWludDY0X3Qgbm90aWZp
Y2F0aW9uSUQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qIGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagppbmRleCA1YWJhOTZmMzY1NzZkMjhhOTIzMzEyMjJkY2E2NzUyY2VkYzkyNDM2Li43MDg1
MDQxN2QxNWVjMmM3OWM4MDQ0MzY0ZTM5OTQyZjFhYWU4OWFhIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJL
aXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTE1MjAsNiArMTUyMCwxMiBA
QAogCQk5OUU3MTRDNTFDMTI0QTA0MDA2NjVCM0EgLyogX1dLQXV0b21hdGlvbkRlbGVnYXRlLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5OUU3MTRDMTFD
MTI0OUU2MDA2NjVCM0EgLyogX1dLQXV0b21hdGlvbkRlbGVnYXRlLmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJOTlFNzE4OUEyMUY3OUQ5RTAwNTVF
OTc1IC8qIF9XS1RvdWNoRXZlbnRHZW5lcmF0b3IubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5OUU3MTg5NjIxRjc5RDlEMDA1NUU5NzUgLyogX1dLVG91
Y2hFdmVudEdlbmVyYXRvci5tbSAqLzsgfTsKIAkJOTlFNzE4OUMyMUY3OUQ5RTAwNTVFOTc1IC8q
IF9XS1RvdWNoRXZlbnRHZW5lcmF0b3IuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDk5RTcxODk4MjFGNzlEOUUwMDU1RTk3NSAvKiBfV0tUb3VjaEV2ZW50
R2VuZXJhdG9yLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsg
fTsKKwkJOUFDQzA3QUQyNUM4MTMyRDAwREM2Mzg2IC8qIE1lZGlhS2V5U3lzdGVtUGVybWlzc2lv
blJlcXVlc3RNYW5hZ2VyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA5QUNDMDdBQzI1QzgxMzJEMDBEQzYzODYgLyogTWVkaWFLZXlTeXN0ZW1QZXJtaXNz
aW9uUmVxdWVzdE1hbmFnZXIuaCAqLzsgfTsKKwkJOUFDQzA3QjEyNUM4MTVEODAwREM2Mzg2IC8q
IE1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDlBQ0MwN0IwMjVDODE1RDgwMERDNjM4NiAvKiBNZWRp
YUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0LmggKi87IH07CisJCTlBQ0MwN0IzMjVDODE1RjMw
MERDNjM4NiAvKiBNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5Lmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5QUNDMDdCMjI1
QzgxNUYzMDBEQzYzODYgLyogTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQ
cm94eS5oICovOyB9OworCQk5QUNDMDdCNTI1QzgxNjBDMDBEQzYzODYgLyogTWVkaWFLZXlTeXN0
ZW1QZXJtaXNzaW9uUmVxdWVzdFByb3h5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA5QUNDMDdCNDI1QzgxNjBCMDBEQzYzODYgLyogTWVkaWFLZXlTeXN0
ZW1QZXJtaXNzaW9uUmVxdWVzdFByb3h5LmggKi87IH07CisJCTlBQ0MwN0I3MjVDODFEMzQwMERD
NjM4NiAvKiBXZWJNZWRpYUtleVN5c3RlbUNsaWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOUFDQzA3QjYyNUM4MUQzMzAwREM2Mzg2IC8qIFdlYk1l
ZGlhS2V5U3lzdGVtQ2xpZW50LmggKi87IH07CisJCTlBQ0MwN0I5MjVDODIxODQwMERDNjM4NiAv
KiBXS01lZGlhS2V5U3lzdGVtUGVybWlzc2lvbkNhbGxiYWNrLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5QUNDMDdCODI1QzgyMTgzMDBEQzYzODYgLyog
V0tNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25DYWxsYmFjay5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTlCMDJFMENCMjM1RUI5NTMwMDQwNDRCMiAv
KiBfV0tUZXh0TWFuaXB1bGF0aW9uRGVsZWdhdGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDlCMDJFMEM5MjM1RUI2MkQwMDQwNDRCMiAvKiBfV0tUZXh0
TWFuaXB1bGF0aW9uRGVsZWdhdGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2
YXRlLCApOyB9OyB9OwogCQk5QjAyRTBDQzIzNUVCOTU3MDA0MDQ0QjIgLyogX1dLVGV4dE1hbmlw
dWxhdGlvbkl0ZW0uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDlCMDJFMENBMjM1RUI4ODQwMDQwNDRCMiAvKiBfV0tUZXh0TWFuaXB1bGF0aW9uSXRlbS5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTlCMDJF
MEQ3MjM1RkM5NEYwMDQwNDRCMiAvKiBfV0tUZXh0TWFuaXB1bGF0aW9uVG9rZW4uaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDlCMDJFMENEMjM1RUI5Njcw
MDQwNDRCMiAvKiBfV0tUZXh0TWFuaXB1bGF0aW9uVG9rZW4uaCAqLzsgc2V0dGluZ3MgPSB7QVRU
UklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtNDg2Nyw2ICs0ODczLDEyIEBACiAJCTk5
RTcxODk2MjFGNzlEOUQwMDU1RTk3NSAvKiBfV0tUb3VjaEV2ZW50R2VuZXJhdG9yLm1tICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gX1dLVG91Y2hFdmVudEdlbmVyYXRv
ci5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTlFNzE4OTgyMUY3OUQ5RTAwNTVF
OTc1IC8qIF9XS1RvdWNoRXZlbnRHZW5lcmF0b3IuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gX1dLVG91Y2hFdmVudEdlbmVyYXRvci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk5OUY2NDJEMjFGQUJFMzc4MDA5NjIxRTkgLyogQ29vcmRpbmF0ZVN5c3RlbS5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDb29yZGluYXRlU3lzdGVtLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTlBQ0MwN0FDMjVDODEzMkQwMERDNjM4NiAvKiBNZWRp
YUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlci5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IG5hbWUgPSBNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlci5oOyBw
YXRoID0gRW5jcnlwdGVkTWVkaWEvTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdE1hbmFn
ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOUFDQzA3QjAyNUM4MTVEODAwREM2
Mzg2IC8qIE1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3QuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdC5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5QUNDMDdCMjI1QzgxNUYzMDBEQzYzODYgLyogTWVk
aWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdl
clByb3h5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTlBQ0MwN0I0MjVDODE2MEIw
MERDNjM4NiAvKiBNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0UHJveHkuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVz
dFByb3h5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTlBQ0MwN0I2MjVDODFEMzMw
MERDNjM4NiAvKiBXZWJNZWRpYUtleVN5c3RlbUNsaWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBXZWJNZWRpYUtleVN5c3RlbUNsaWVudC5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQk5QUNDMDdCODI1QzgyMTgzMDBEQzYzODYgLyogV0tNZWRpYUtleVN5c3Rl
bVBlcm1pc3Npb25DYWxsYmFjay5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBX
S01lZGlhS2V5U3lzdGVtUGVybWlzc2lvbkNhbGxiYWNrLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTlCMDJFMEM5MjM1RUI2MkQwMDQwNDRCMiAvKiBfV0tUZXh0TWFuaXB1bGF0aW9u
RGVsZWdhdGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gX1dLVGV4dE1hbmlwdWxhdGlvbkRlbGVnYXRlLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTlCMDJFMENBMjM1RUI4ODQwMDQwNDRCMiAv
KiBfV0tUZXh0TWFuaXB1bGF0aW9uSXRlbS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBfV0tUZXh0TWFuaXB1
bGF0aW9uSXRlbS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5QjAyRTBDRDIzNUVC
OTY3MDA0MDQ0QjIgLyogX1dLVGV4dE1hbmlwdWxhdGlvblRva2VuLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IF9XS1RleHRNYW5pcHVsYXRpb25Ub2tlbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpA
QCAtOTMyOSw2ICs5MzQxLDE0IEBACiAJCQlwYXRoID0gY29jb2E7CiAJCQlzb3VyY2VUcmVlID0g
Ijxncm91cD4iOwogCQl9OworCQk5QUNDMDdBOTI1QzgxMkU3MDBEQzYzODYgLyogRW5jcnlwdGVk
TWVkaWEgKi8gPSB7CisJCQlpc2EgPSBQQlhHcm91cDsKKwkJCWNoaWxkcmVuID0gKAorCQkJCTlB
Q0MwN0FDMjVDODEzMkQwMERDNjM4NiAvKiBNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0
TWFuYWdlci5oICovLAorCQkJKTsKKwkJCW5hbWUgPSBFbmNyeXB0ZWRNZWRpYTsKKwkJCXNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7CisJCX07CiAJCUExNTc5OUFDMjU4NDQzMzEwMDUyODIzNiAvKiBN
ZWRpYUZvcm1hdFJlYWRlciAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4g
PSAoCkBAIC05NDQ3LDYgKzk0NjcsNyBAQAogCQkJCTQxRDEyOUQ4MUYzRDEwMTQwMEQxNUU0NyAv
KiBDYWNoZSAqLywKIAkJCQk3QzZFNzBGODE4QjJENDdFMDBGMjRFMkUgLyogY29jb2EgKi8sCiAJ
CQkJNTEyQTk3NTQxODBERjkyNzAwMzlBMTQ5IC8qIERhdGFiYXNlcyAqLywKKwkJCQk5QUNDMDdB
OTI1QzgxMkU3MDBEQzYzODYgLyogRW5jcnlwdGVkTWVkaWEgKi8sCiAJCQkJQkNBQ0M0M0IxNkIy
NEM1RDAwQjZFMDkyIC8qIEVudHJ5UG9pbnQgKi8sCiAJCQkJRTE3MDg3NkQxNkQ2Q0E3MjAwRjk5
MjI2IC8qIEZpbGVBUEkgKi8sCiAJCQkJQ0Q3M0JBM0QxMzFBMkEyMTAwRUVERUQyIC8qIEZ1bGxT
Y3JlZW4gKi8sCkBAIC05NTEyLDYgKzk1MzMsNyBAQAogCQkJCUJDMDMyRDZBMTBGNDM3OEQwMDU4
QzE1QSAvKiBXZWJGcmFtZUxvYWRlckNsaWVudC5oICovLAogCQkJCUJDMUJFMURGMTJENTRBNDEw
MDA0QTIyOCAvKiBXZWJHZW9sb2NhdGlvbkNsaWVudC5jcHAgKi8sCiAJCQkJQkMxQkUxREUxMkQ1
NEE0MTAwMDRBMjI4IC8qIFdlYkdlb2xvY2F0aW9uQ2xpZW50LmggKi8sCisJCQkJOUFDQzA3QjYy
NUM4MUQzMzAwREM2Mzg2IC8qIFdlYk1lZGlhS2V5U3lzdGVtQ2xpZW50LmggKi8sCiAJCQkJNTEz
RkZCOEUyMDE0NTlDMjAwMjU5NkVBIC8qIFdlYk1lc3NhZ2VQb3J0Q2hhbm5lbFByb3ZpZGVyLmNw
cCAqLywKIAkJCQk1MTNGRkI4RjIwMTQ1OUMyMDAyNTk2RUEgLyogV2ViTWVzc2FnZVBvcnRDaGFu
bmVsUHJvdmlkZXIuaCAqLywKIAkJCQkzMTA5OTk3MTE0NkM3NTlCMDAyOURFQjkgLyogV2ViTm90
aWZpY2F0aW9uQ2xpZW50LmNwcCAqLywKQEAgLTk2NTEsNiArOTY3Myw5IEBACiAJCQkJNUNFQUJB
MkIyMzMzMjUxNDAwNzk3Nzk3IC8qIExlZ2FjeUdsb2JhbFNldHRpbmdzLmNwcCAqLywKIAkJCQk1
Q0VBQkEyQTIzMzMyNDc3MDA3OTc3OTcgLyogTGVnYWN5R2xvYmFsU2V0dGluZ3MuaCAqLywKIAkJ
CQkzMTYwN0YzODE5NjI3MDAyMDA5Qjg3REEgLyogTGVnYWN5U2Vzc2lvblN0YXRlQ29kaW5nLmgg
Ki8sCisJCQkJOUFDQzA3QjAyNUM4MTVEODAwREM2Mzg2IC8qIE1lZGlhS2V5U3lzdGVtUGVybWlz
c2lvblJlcXVlc3QuaCAqLywKKwkJCQk5QUNDMDdCMjI1QzgxNUYzMDBEQzYzODYgLyogTWVkaWFL
ZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5oICovLAorCQkJCTlBQ0MwN0I0
MjVDODE2MEIwMERDNjM4NiAvKiBNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0UHJveHku
aCAqLywKIAkJCQk5MzQyNTg5ODI1NUI1MzRCMDA1OUVFREQgLyogTWVkaWFQZXJtaXNzaW9uVXRp
bGl0aWVzLmggKi8sCiAJCQkJQkM2RURBQTUxMTEyNzFDNjAwRTc2NzhCIC8qIFBhZ2VDbGllbnQu
aCAqLywKIAkJCQkxQUM3NTM3OTE4M0E5RkRBMDA3MkNCMTUgLyogUGFnZUxvYWRTdGF0ZS5jcHAg
Ki8sCkBAIC05OTYzLDYgKzk5ODgsNyBAQAogCQkJCTUxQTlFMTA4MTMxNUNEMTgwMDlFNzAzMSAv
KiBXS0tleVZhbHVlU3RvcmFnZU1hbmFnZXIuY3BwICovLAogCQkJCTUxQTlFMTA5MTMxNUNEMTgw
MDlFNzAzMSAvKiBXS0tleVZhbHVlU3RvcmFnZU1hbmFnZXIuaCAqLywKIAkJCQkyRDc5MEE5RTFB
RDcxNjQ5MDBBQjkwQjMgLyogV0tMYXlvdXRNb2RlLmggKi8sCisJCQkJOUFDQzA3QjgyNUM4MjE4
MzAwREM2Mzg2IC8qIFdLTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uQ2FsbGJhY2suaCAqLywKIAkJ
CQk1Q0FCREM4NDIyQzQwRkNDMDAxRURFOEUgLyogV0tNZXNzYWdlTGlzdGVuZXIuY3BwICovLAog
CQkJCTVDQUJEQzg1MjJDNDBGQ0MwMDFFREU4RSAvKiBXS01lc3NhZ2VMaXN0ZW5lci5oICovLAog
CQkJCUMxMUUxNjkzMjEyQjg3QzUwMDk4NUZGNiAvKiBXS01vY2tEaXNwbGF5LmNwcCAqLywKQEAg
LTExNjg0LDYgKzExNzEwLDEwIEBACiAJCQkJQkNDNTZGNzkxMTU5OTU3RDAwMUNDQUY5IC8qIE1h
Y2hQb3J0LmggaW4gSGVhZGVycyAqLywKIAkJCQkxQTI0QjVGMzExRjUzMUU4MDBDMzgyNjkgLyog
TWFjaFV0aWxpdGllcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTE1Nzk5QkUyNTg0NDMzMjAwNTI4
MjM2IC8qIE1lZGlhRm9ybWF0UmVhZGVyLmggaW4gSGVhZGVycyAqLywKKwkJCQk5QUNDMDdCMTI1
QzgxNUQ4MDBEQzYzODYgLyogTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdC5oIGluIEhl
YWRlcnMgKi8sCisJCQkJOUFDQzA3QUQyNUM4MTMyRDAwREM2Mzg2IC8qIE1lZGlhS2V5U3lzdGVt
UGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyLmggaW4gSGVhZGVycyAqLywKKwkJCQk5QUNDMDdCMzI1
QzgxNUYzMDBEQzYzODYgLyogTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQ
cm94eS5oIGluIEhlYWRlcnMgKi8sCisJCQkJOUFDQzA3QjUyNUM4MTYwQzAwREM2Mzg2IC8qIE1l
ZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RQcm94eS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
OTM0MjU4OUEyNTVCNTM1QTAwNTlFRUREIC8qIE1lZGlhUGVybWlzc2lvblV0aWxpdGllcy5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJMDdFMTlFRkMyM0Q0MDFGMTAwOTRGRkI0IC8qIE1lZGlhUGxheWVy
UHJpdmF0ZVJlbW90ZU1lc3NhZ2VzLmggaW4gSGVhZGVycyAqLywKIAkJCQkwN0UxOUVGRDIzRDQw
MUYxMDA5NEZGQjQgLyogTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlTWVzc2FnZXNSZXBsaWVzLmgg
aW4gSGVhZGVycyAqLywKQEAgLTExNzM3LDYgKzExNzY3LDcgQEAKIAkJCQk4Mzk5MDIwMzFCRTlB
MDJCMDAwRjM2NTMgLyogTmV0d29ya0xvYWQuaCBpbiBIZWFkZXJzICovLAogCQkJCTgzRDQ1NEQ3
MUJFOUQzQzQwMDZDOTNCRCAvKiBOZXR3b3JrTG9hZENsaWVudC5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJODM5MTQ5NjUxQkVBODM4NTAwRDJEOTUzIC8qIE5ldHdvcmtMb2FkUGFyYW1ldGVycy5oIGlu
IEhlYWRlcnMgKi8sCisJCQkJRTQ3RkM4QTAyNUI4MzMxQzAwNTQ5NUZDIC8qIE5ldHdvcmtMb2Fk
U2NoZWR1bGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk1MTc5NTU2QTE2Mjg3NkYzMDBGQTQzQjYg
LyogTmV0d29ya1Byb2Nlc3MuaCBpbiBIZWFkZXJzICovLAogCQkJCTUxN0NGMEU0MTYzQTQ4NkMw
MEMyOTUwRSAvKiBOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb25NZXNzYWdlcy5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJNUMxNDI2RUQxQzIzRjgwOTAwRDQxMTgzIC8qIE5ldHdvcmtQcm9jZXNzQ3JlYXRp
b25QYXJhbWV0ZXJzLmggaW4gSGVhZGVycyAqLywKQEAgLTEyMTAwLDcgKzEyMTMxLDYgQEAKIAkJ
CQk5M0E4OEIzMzFCQzZFOUNEMDBBQkE1QzIgLyogV2ViSGl0VGVzdFJlc3VsdERhdGEuaCBpbiBI
ZWFkZXJzICovLAogCQkJCUY0NERGRUIyMUU5RTc1MkYwMDM4RDE5NiAvKiBXZWJJY29uVXRpbGl0
aWVzLmggaW4gSGVhZGVycyAqLywKIAkJCQk5MzI2MTE2MTIxNDA1NEY0MDAwODA2RTcgLyogV2Vi
SURCQ29ubmVjdGlvblRvQ2xpZW50LmggaW4gSGVhZGVycyAqLywKLQkJCQlFNDdGQzhBMDI1Qjgz
MzFDMDA1NDk1RkMgLyogTmV0d29ya0xvYWRTY2hlZHVsZXIuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTUxNDEyOTk0MUM2NDI4QkIwMDU5RTcxNCAvKiBXZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXIuaCBp
biBIZWFkZXJzICovLAogCQkJCTUxMDUyMzc0MUM3M0QzOEIwMDc5OTNDQiAvKiBXZWJJREJDb25u
ZWN0aW9uVG9TZXJ2ZXJNZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTMzRTgzNTUyM0Ew
N0MwNjAwREVGMjg5IC8qIFdlYklEQlNlcnZlci5oIGluIEhlYWRlcnMgKi8sCkBAIC0xMjEyNiw2
ICsxMjE1Niw3IEBACiAJCQkJQkM5QkE1MDUxNjk3QzQ1MzAwRTQ0NjE2IC8qIFdlYktpdDJJbml0
aWFsaXplLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQTYyODBDNzE5MTk5NTBDMDA2QUQ5RjkgLyog
V2ViS2l0UHJpdmF0ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQ0QwMDNBNTMxOUQ0OUI1RDAwNUFC
Q0UwIC8qIFdlYk1lZGlhS2V5U3RvcmFnZU1hbmFnZXIuaCBpbiBIZWFkZXJzICovLAorCQkJCTlB
Q0MwN0I3MjVDODFEMzQwMERDNjM4NiAvKiBXZWJNZWRpYUtleVN5c3RlbUNsaWVudC5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJOUI1QkVDMjYyNDAwRjRBOTAwNzBDNkVGIC8qIFdlYk1lZGlhU3RyYXRl
Z3kuaCBpbiBIZWFkZXJzICovLAogCQkJCTJEM0VGNDQzMTkxNzY0NjMwMDAzNDE4NCAvKiBXZWJN
ZW1vcnlQcmVzc3VyZUhhbmRsZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTkwOTg1NEVEMTJCQzRF
MTgwMDBBRDA4MCAvKiBXZWJNZW1vcnlTYW1wbGVyLmggaW4gSGVhZGVycyAqLywKQEAgLTEyNDM0
LDYgKzEyNDY1LDcgQEAKIAkJCQkyRDc5MEE5RjFBRDcxNjQ5MDBBQjkwQjMgLyogV0tMYXlvdXRN
b2RlLmggaW4gSGVhZGVycyAqLywKIAkJCQk1Q0U5MTIxNDIyOTNDMjgwMDA1QkVDNzggLyogV0tN
YWluLmggaW4gSGVhZGVycyAqLywKIAkJCQlBMTU3OUIyODI1ODQ5MEU1MDA1MjgyMzYgLyogV0tN
ZWRpYUZvcm1hdFJlYWRlci5oIGluIEhlYWRlcnMgKi8sCisJCQkJOUFDQzA3QjkyNUM4MjE4NDAw
REM2Mzg2IC8qIFdLTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uQ2FsbGJhY2suaCBpbiBIZWFkZXJz
ICovLAogCQkJCTQ5OTE3REE3MjUyRDY0OUUwMDUwMzEzRiAvKiBXS01lZGlhUGxheWJhY2tTdGF0
ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUFCNDBFRTYxQkY2NzdFMzAwQkE4MUJFIC8qIFdLTWVu
dUl0ZW1JZGVudGlmaWVyc1ByaXZhdGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTVDQUJEQzg2MjJD
NDBGREUwMDFFREU4RSAvKiBXS01lc3NhZ2VMaXN0ZW5lci5oIGluIEhlYWRlcnMgKi8sCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvRW5jcnlwdGVkTWVkaWEvTWVkaWFLZXlT
eXN0ZW1QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL0VuY3J5cHRlZE1lZGlhL01lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RNYW5hZ2Vy
LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi5hMjQ5ODgyZDA3YTk5ZTc1ZDA5MWJmYjcyYWVlYzgzMTY0ODU3NzM4
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0VuY3J5cHRlZE1l
ZGlhL01lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyLmNwcApAQCAtMCwwICsx
LDEzMiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBJZ2FsaWEgUy5MLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENP
TlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICog
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAq
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLwor
CisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9u
UmVxdWVzdE1hbmFnZXIuaCIKKworI2lmIEVOQUJMRShFTkNSWVBURURfTUVESUEpCisKKyNpbmNs
dWRlICJMb2dnaW5nLmgiCisjaW5jbHVkZSAiV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgiCisjaW5j
bHVkZSAiV2ViRnJhbWUuaCIKKyNpbmNsdWRlICJXZWJQYWdlLmgiCisjaW5jbHVkZSAiV2ViUGFn
ZVByb3h5TWVzc2FnZXMuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL0RvY3VtZW50Lmg+CisjaW5jbHVk
ZSA8V2ViQ29yZS9GcmFtZS5oPgorI2luY2x1ZGUgPFdlYkNvcmUvRnJhbWVMb2FkZXIuaD4KKyNp
bmNsdWRlIDxXZWJDb3JlL1NlY3VyaXR5T3JpZ2luLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9TZWN1
cml0eU9yaWdpbkRhdGEuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7Cit1c2luZyBuYW1lc3BhY2Ug
V2ViQ29yZTsKKworTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXI6Ok1lZGlh
S2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyKFdlYlBhZ2UmIHBhZ2UpCisgICAgOiBt
X3BhZ2UocGFnZSkKK3sKK30KKwordm9pZCBNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0
TWFuYWdlcjo6c3RhcnRNZWRpYUtleVN5c3RlbVJlcXVlc3QoTWVkaWFLZXlTeXN0ZW1SZXF1ZXN0
JiByZXF1ZXN0KQoreworICAgIERvY3VtZW50KiBkb2N1bWVudCA9IHJlcXVlc3QuZG9jdW1lbnQo
KTsKKyAgICBGcmFtZSogZnJhbWUgPSBkb2N1bWVudCA/IGRvY3VtZW50LT5mcmFtZSgpIDogbnVs
bHB0cjsKKworICAgIGlmICghZnJhbWUgfHwgIWRvY3VtZW50LT5wYWdlKCkpIHsKKyAgICAgICAg
cmVxdWVzdC5kZW55KGVtcHR5U3RyaW5nKCkpOworICAgICAgICByZXR1cm47CisgICAgfQorCisg
ICAgaWYgKGRvY3VtZW50LT5wYWdlKCktPmNhblN0YXJ0TWVkaWEoKSkgeworICAgICAgICBzZW5k
TWVkaWFLZXlTeXN0ZW1SZXF1ZXN0KHJlcXVlc3QpOworICAgICAgICByZXR1cm47CisgICAgfQor
CisgICAgYXV0byYgcGVuZGluZ1JlcXVlc3RzID0gbV9wZW5kaW5nTWVkaWFLZXlTeXN0ZW1SZXF1
ZXN0cy5hZGQoZG9jdW1lbnQsIFZlY3RvcjxSZWY8TWVkaWFLZXlTeXN0ZW1SZXF1ZXN0Pj4oKSku
aXRlcmF0b3ItPnZhbHVlOworICAgIHBlbmRpbmdSZXF1ZXN0cy5hcHBlbmQocmVxdWVzdCk7Cit9
CisKK3ZvaWQgTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXI6OnNlbmRNZWRp
YUtleVN5c3RlbVJlcXVlc3QoTWVkaWFLZXlTeXN0ZW1SZXF1ZXN0JiB1c2VyUmVxdWVzdCkKK3sK
KyAgICBhdXRvKiBmcmFtZSA9IHVzZXJSZXF1ZXN0LmRvY3VtZW50KCkgPyB1c2VyUmVxdWVzdC5k
b2N1bWVudCgpLT5mcmFtZSgpIDogbnVsbHB0cjsKKyAgICBpZiAoIWZyYW1lKSB7CisgICAgICAg
IHVzZXJSZXF1ZXN0LmRlbnkoZW1wdHlTdHJpbmcoKSk7CisgICAgICAgIHJldHVybjsKKyAgICB9
CisKKyAgICBtX29uZ29pbmdNZWRpYUtleVN5c3RlbVJlcXVlc3RzLmFkZCh1c2VyUmVxdWVzdC5p
ZGVudGlmaWVyKCksIG1ha2VSZWYodXNlclJlcXVlc3QpKTsKKworICAgIFdlYkZyYW1lKiB3ZWJG
cmFtZSA9IFdlYkZyYW1lOjpmcm9tQ29yZUZyYW1lKCpmcmFtZSk7CisgICAgQVNTRVJUKHdlYkZy
YW1lKTsKKworICAgIGF1dG8qIHRvcExldmVsRG9jdW1lbnRPcmlnaW4gPSB1c2VyUmVxdWVzdC50
b3BMZXZlbERvY3VtZW50T3JpZ2luKCk7CisgICAgbV9wYWdlLnNlbmQoTWVzc2FnZXM6OldlYlBh
Z2VQcm94eTo6UmVxdWVzdE1lZGlhS2V5U3lzdGVtUGVybWlzc2lvbkZvckZyYW1lKHVzZXJSZXF1
ZXN0LmlkZW50aWZpZXIoKS50b1VJbnQ2NCgpLCB3ZWJGcmFtZS0+ZnJhbWVJRCgpLCB0b3BMZXZl
bERvY3VtZW50T3JpZ2luLT5kYXRhKCksIHVzZXJSZXF1ZXN0LmtleVN5c3RlbSgpKSk7Cit9CisK
K3ZvaWQgTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXI6OmNhbmNlbE1lZGlh
S2V5U3lzdGVtUmVxdWVzdChNZWRpYUtleVN5c3RlbVJlcXVlc3QmIHJlcXVlc3QpCit7CisgICAg
aWYgKGF1dG8gcmVtb3ZlZFJlcXVlc3QgPSBtX29uZ29pbmdNZWRpYUtleVN5c3RlbVJlcXVlc3Rz
LnRha2UocmVxdWVzdC5pZGVudGlmaWVyKCkpKQorICAgICAgICByZXR1cm47CisKKyAgICBhdXRv
KiBkb2N1bWVudCA9IHJlcXVlc3QuZG9jdW1lbnQoKTsKKyAgICBpZiAoIWRvY3VtZW50KQorICAg
ICAgICByZXR1cm47CisKKyAgICBhdXRvIGl0ZXJhdG9yID0gbV9wZW5kaW5nTWVkaWFLZXlTeXN0
ZW1SZXF1ZXN0cy5maW5kKGRvY3VtZW50KTsKKyAgICBpZiAoaXRlcmF0b3IgPT0gbV9wZW5kaW5n
TWVkaWFLZXlTeXN0ZW1SZXF1ZXN0cy5lbmQoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgYXV0
byYgcGVuZGluZ1JlcXVlc3RzID0gaXRlcmF0b3ItPnZhbHVlOworICAgIHBlbmRpbmdSZXF1ZXN0
cy5yZW1vdmVGaXJzdE1hdGNoaW5nKFsmcmVxdWVzdF0oYXV0byYgaXRlbSkgeworICAgICAgICBy
ZXR1cm4gJnJlcXVlc3QgPT0gaXRlbS5wdHIoKTsKKyAgICB9KTsKKworICAgIGlmICghcGVuZGlu
Z1JlcXVlc3RzLmlzRW1wdHkoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgbV9wZW5kaW5nTWVk
aWFLZXlTeXN0ZW1SZXF1ZXN0cy5yZW1vdmUoaXRlcmF0b3IpOworfQorCit2b2lkIE1lZGlhS2V5
U3lzdGVtUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyOjptZWRpYUtleVN5c3RlbVdhc0dyYW50ZWQo
dWludDY0X3QgcmVxdWVzdElELCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlv
bkhhbmRsZXIpCit7CisgICAgYXV0byByZXF1ZXN0ID0gbV9vbmdvaW5nTWVkaWFLZXlTeXN0ZW1S
ZXF1ZXN0cy50YWtlKG1ha2VPYmplY3RJZGVudGlmaWVyPE1lZGlhS2V5U3lzdGVtUmVxdWVzdElk
ZW50aWZpZXJUeXBlPihyZXF1ZXN0SUQpKTsKKyAgICBpZiAoIXJlcXVlc3QpIHsKKyAgICAgICAg
Y29tcGxldGlvbkhhbmRsZXIoKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIHJlcXVl
c3QtPmFsbG93KFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKK30KKwordm9pZCBNZWRpYUtl
eVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcjo6bWVkaWFLZXlTeXN0ZW1XYXNEZW5pZWQo
dWludDY0X3QgcmVxdWVzdElELCBTdHJpbmcmJiBtZXNzYWdlKQoreworICAgIGF1dG8gcmVxdWVz
dCA9IG1fb25nb2luZ01lZGlhS2V5U3lzdGVtUmVxdWVzdHMudGFrZShtYWtlT2JqZWN0SWRlbnRp
ZmllcjxNZWRpYUtleVN5c3RlbVJlcXVlc3RJZGVudGlmaWVyVHlwZT4ocmVxdWVzdElEKSk7Cisg
ICAgaWYgKCFyZXF1ZXN0KQorICAgICAgICByZXR1cm47CisKKyAgICByZXF1ZXN0LT5kZW55KFdU
Rk1vdmUobWVzc2FnZSkpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8v
IEVOQUJMRShFTkNSWVBURURfTUVESUEpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvRW5jcnlwdGVkTWVkaWEvTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdE1hbmFn
ZXIuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9FbmNyeXB0ZWRNZWRpYS9NZWRpYUtleVN5
c3RlbVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjg2OTU1ZmI5ZGVkNzEx
NjFjYWRmNGEyMzY5MDJiMmM1NDIyNTY5YTYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvRW5jcnlwdGVkTWVkaWEvTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVx
dWVzdE1hbmFnZXIuaApAQCAtMCwwICsxLDYzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIx
IElnYWxpYSBTLkwuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
CisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKEVOQ1JZ
UFRFRF9NRURJQSkKKworI2luY2x1ZGUgIlNhbmRib3hFeHRlbnNpb24uaCIKKyNpbmNsdWRlIDxX
ZWJDb3JlL01lZGlhS2V5U3lzdGVtQ2xpZW50Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9NZWRpYUtl
eVN5c3RlbVJlcXVlc3QuaD4KKyNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgorI2luY2x1ZGUgPHd0
Zi9SZWYuaD4KKyNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CisKK25hbWVzcGFjZSBXZWJLaXQgewor
CitjbGFzcyBXZWJQYWdlOworCitjbGFzcyBNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0
TWFuYWdlciB7CisgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CitwdWJsaWM6CisgICAgZXhw
bGljaXQgTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIoV2ViUGFnZSYpOwor
ICAgIH5NZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcigpID0gZGVmYXVsdDsK
KworICAgIHZvaWQgc3RhcnRNZWRpYUtleVN5c3RlbVJlcXVlc3QoV2ViQ29yZTo6TWVkaWFLZXlT
eXN0ZW1SZXF1ZXN0Jik7CisgICAgdm9pZCBjYW5jZWxNZWRpYUtleVN5c3RlbVJlcXVlc3QoV2Vi
Q29yZTo6TWVkaWFLZXlTeXN0ZW1SZXF1ZXN0Jik7CisgICAgdm9pZCBtZWRpYUtleVN5c3RlbVdh
c0dyYW50ZWQodWludDY0X3QsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CisgICAgdm9p
ZCBtZWRpYUtleVN5c3RlbVdhc0RlbmllZCh1aW50NjRfdCwgU3RyaW5nJiYpOworCitwcml2YXRl
OgorICAgIHZvaWQgc2VuZE1lZGlhS2V5U3lzdGVtUmVxdWVzdChXZWJDb3JlOjpNZWRpYUtleVN5
c3RlbVJlcXVlc3QmKTsKKworICAgIFdlYlBhZ2UmIG1fcGFnZTsKKworICAgIEhhc2hNYXA8V2Vi
Q29yZTo6TWVkaWFLZXlTeXN0ZW1SZXF1ZXN0SWRlbnRpZmllciwgUmVmPFdlYkNvcmU6Ok1lZGlh
S2V5U3lzdGVtUmVxdWVzdD4+IG1fb25nb2luZ01lZGlhS2V5U3lzdGVtUmVxdWVzdHM7CisgICAg
SGFzaE1hcDxSZWZQdHI8V2ViQ29yZTo6RG9jdW1lbnQ+LCBWZWN0b3I8UmVmPFdlYkNvcmU6Ok1l
ZGlhS2V5U3lzdGVtUmVxdWVzdD4+PiBtX3BlbmRpbmdNZWRpYUtleVN5c3RlbVJlcXVlc3RzOwor
fTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBFTkFCTEUoTUVESUFfU1RS
RUFNKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0
L1dlYk1lZGlhS2V5U3lzdGVtQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJDb3JlU3VwcG9ydC9XZWJNZWRpYUtleVN5c3RlbUNsaWVudC5jcHAKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uY2Qy
YjhhNWJkMzlkMDMxN2E0NmZhMzFiODQ2MTk2MzU3YzdiZjExOAotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJNZWRpYUtleVN5c3Rl
bUNsaWVudC5jcHAKQEAgLTAsMCArMSw2MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBJ
Z2FsaWEgUy5MLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
CisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgor
ICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV2Vi
TWVkaWFLZXlTeXN0ZW1DbGllbnQuaCIKKworI2lmIEVOQUJMRShFTkNSWVBURURfTUVESUEpCisK
KyNpbmNsdWRlICJNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlci5oIgorI2lu
Y2x1ZGUgIldlYlBhZ2UuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL01lZGlhS2V5U3lzdGVtQ29udHJv
bGxlci5oPgorI2luY2x1ZGUgPFdlYkNvcmUvTWVkaWFLZXlTeXN0ZW1SZXF1ZXN0Lmg+CisKK25h
bWVzcGFjZSBXZWJLaXQgewordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisKK1dlYk1lZGlhS2V5
U3lzdGVtQ2xpZW50OjpXZWJNZWRpYUtleVN5c3RlbUNsaWVudChXZWJQYWdlJiBwYWdlKQorICAg
IDogbV9wYWdlKHBhZ2UpCit7Cit9CisKK3ZvaWQgV2ViTWVkaWFLZXlTeXN0ZW1DbGllbnQ6OnBh
Z2VEZXN0cm95ZWQoKQoreworICAgIGRlbGV0ZSB0aGlzOworfQorCit2b2lkIFdlYk1lZGlhS2V5
U3lzdGVtQ2xpZW50OjpyZXF1ZXN0TWVkaWFLZXlTeXN0ZW0oTWVkaWFLZXlTeXN0ZW1SZXF1ZXN0
JiByZXF1ZXN0KQoreworICAgIG1fcGFnZS5tZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0
TWFuYWdlcigpLnN0YXJ0TWVkaWFLZXlTeXN0ZW1SZXF1ZXN0KHJlcXVlc3QpOworfQorCit2b2lk
IFdlYk1lZGlhS2V5U3lzdGVtQ2xpZW50OjpjYW5jZWxNZWRpYUtleVN5c3RlbVJlcXVlc3QoTWVk
aWFLZXlTeXN0ZW1SZXF1ZXN0JiByZXF1ZXN0KQoreworICAgIG1fcGFnZS5tZWRpYUtleVN5c3Rl
bVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcigpLmNhbmNlbE1lZGlhS2V5U3lzdGVtUmVxdWVzdChy
ZXF1ZXN0KTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0OworCisjZW5kaWYgLy8gRU5BQkxF
KEVOQ1JZUFRFRF9NRURJQSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJDb3JlU3VwcG9ydC9XZWJNZWRpYUtleVN5c3RlbUNsaWVudC5oIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYk1lZGlhS2V5U3lzdGVtQ2xpZW50LmgKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uZjQ4MDMyZjhiOWFhNjBhZmI5MThlMDQzZjU0ODExZmZiMzIyNzc4NgotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJNZWRp
YUtleVN5c3RlbUNsaWVudC5oCkBAIC0wLDAgKzEsNTMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMjEgSWdhbGlhIFMuTC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUo
RU5DUllQVEVEX01FRElBKQorCisjaW5jbHVkZSA8V2ViQ29yZS9NZWRpYUtleVN5c3RlbUNsaWVu
dC5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3MgV2ViUGFnZTsKKworY2xhc3MgV2Vi
TWVkaWFLZXlTeXN0ZW1DbGllbnQgOiBwdWJsaWMgV2ViQ29yZTo6TWVkaWFLZXlTeXN0ZW1DbGll
bnQgeworICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOworcHVibGljOgorICAgIFdlYk1lZGlh
S2V5U3lzdGVtQ2xpZW50KFdlYlBhZ2UmKTsKKyAgICB+V2ViTWVkaWFLZXlTeXN0ZW1DbGllbnQo
KSB7IH0KKworcHJpdmF0ZToKKyAgICB2b2lkIHBhZ2VEZXN0cm95ZWQoKSBvdmVycmlkZTsKKwor
ICAgIHZvaWQgcmVxdWVzdE1lZGlhS2V5U3lzdGVtKFdlYkNvcmU6Ok1lZGlhS2V5U3lzdGVtUmVx
dWVzdCYpIG92ZXJyaWRlOworICAgIHZvaWQgY2FuY2VsTWVkaWFLZXlTeXN0ZW1SZXF1ZXN0KFdl
YkNvcmU6Ok1lZGlhS2V5U3lzdGVtUmVxdWVzdCYpIG92ZXJyaWRlOworCisgICAgV2ViUGFnZSYg
bV9wYWdlOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxF
KEVOQ1JZUFRFRF9NRURJQSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJQYWdlL1dlYlBhZ2UuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2Vi
UGFnZS5jcHAKaW5kZXggY2FlMGE5NzE4Y2Y3ZmY5ZjQwMjFmNmNjYTkwNGUyNzRiZDFiMzMzZS4u
YWM3ZTAzNDhkNmMyMWNkNjRkMzkwM2Y0ZDk4MDc5M2MyNWQwOWY4NyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKQEAgLTQ2LDYgKzQ2LDcgQEAKICNp
bmNsdWRlICJMaWJXZWJSVENQcm92aWRlci5oIgogI2luY2x1ZGUgIkxvYWRQYXJhbWV0ZXJzLmgi
CiAjaW5jbHVkZSAiTG9nZ2luZy5oIgorI2luY2x1ZGUgIk1lZGlhS2V5U3lzdGVtUGVybWlzc2lv
blJlcXVlc3RNYW5hZ2VyLmgiCiAjaW5jbHVkZSAiTWVkaWFQbGF5YmFja1N0YXRlLmgiCiAjaW5j
bHVkZSAiTWVkaWFSZWNvcmRlclByb3ZpZGVyLmgiCiAjaW5jbHVkZSAiTmV0c2NhcGVQbHVnaW4u
aCIKQEAgLTEwNCw2ICsxMDUsNyBAQAogI2luY2x1ZGUgIldlYktleWJvYXJkRXZlbnQuaCIKICNp
bmNsdWRlICJXZWJMb2FkZXJTdHJhdGVneS5oIgogI2luY2x1ZGUgIldlYk1lZGlhS2V5U3RvcmFn
ZU1hbmFnZXIuaCIKKyNpbmNsdWRlICJXZWJNZWRpYUtleVN5c3RlbUNsaWVudC5oIgogI2luY2x1
ZGUgIldlYk1lZGlhU3RyYXRlZ3kuaCIKICNpbmNsdWRlICJXZWJNb3VzZUV2ZW50LmgiCiAjaW5j
bHVkZSAiV2ViTm90aWZpY2F0aW9uQ2xpZW50LmgiCkBAIC00NjcsNiArNDY5LDkgQEAgV2ViUGFn
ZTo6V2ViUGFnZShQYWdlSWRlbnRpZmllciBwYWdlSUQsIFdlYlBhZ2VDcmVhdGlvblBhcmFtZXRl
cnMmJiBwYXJhbWV0ZXJzKQogI2VuZGlmCiAjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKICAgICAs
IG1fdXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyIHsgbWFrZVVuaXF1ZVJlZjxVc2Vy
TWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXI+KCp0aGlzKSB9CisjZW5kaWYKKyNpZiBFTkFC
TEUoRU5DUllQVEVEX01FRElBKQorICAgICwgbV9tZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1
ZXN0TWFuYWdlciB7IG1ha2VVbmlxdWVSZWY8TWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVz
dE1hbmFnZXI+KCp0aGlzKSB9CiAjZW5kaWYKICAgICAsIG1fcGFnZVNjcm9sbGVkSHlzdGVyZXNp
cyhbdGhpc10oUEFMOjpIeXN0ZXJlc2lzU3RhdGUgc3RhdGUpIHsgaWYgKHN0YXRlID09IFBBTDo6
SHlzdGVyZXNpc1N0YXRlOjpTdG9wcGVkKSBwYWdlU3RvcHBlZFNjcm9sbGluZygpOyB9LCBwYWdl
U2Nyb2xsSHlzdGVyZXNpc0R1cmF0aW9uKQogICAgICwgbV9jYW5SdW5CZWZvcmVVbmxvYWRDb25m
aXJtUGFuZWwocGFyYW1ldGVycy5jYW5SdW5CZWZvcmVVbmxvYWRDb25maXJtUGFuZWwpCkBAIC02
NDgsNiArNjUzLDkgQEAgV2ViUGFnZTo6V2ViUGFnZShQYWdlSWRlbnRpZmllciBwYWdlSUQsIFdl
YlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMmJiBwYXJhbWV0ZXJzKQogI2lmIEVOQUJMRShNRURJQV9T
VFJFQU0pCiAgICAgV2ViQ29yZTo6cHJvdmlkZVVzZXJNZWRpYVRvKG1fcGFnZS5nZXQoKSwgbmV3
IFdlYlVzZXJNZWRpYUNsaWVudCgqdGhpcykpOwogI2VuZGlmCisjaWYgRU5BQkxFKEVOQ1JZUFRF
RF9NRURJQSkKKyAgICBXZWJDb3JlOjpwcm92aWRlTWVkaWFLZXlTeXN0ZW1UbyhtX3BhZ2UuZ2V0
KCksIG5ldyBXZWJNZWRpYUtleVN5c3RlbUNsaWVudCgqdGhpcykpOworI2VuZGlmCiAKICAgICBt
X3BhZ2UtPnNldENvbnRyb2xsZWRCeUF1dG9tYXRpb24ocGFyYW1ldGVycy5jb250cm9sbGVkQnlB
dXRvbWF0aW9uKTsKICAgICBtX3BhZ2UtPnNldEhhc1Jlc291cmNlTG9hZENsaWVudChwYXJhbWV0
ZXJzLmhhc1Jlc291cmNlTG9hZENsaWVudCk7CkBAIC00NTIxLDYgKzQ1MjksMTggQEAgdm9pZCBX
ZWJQYWdlOjpjYXB0dXJlRGV2aWNlc0NoYW5nZWQoKQogCiAjZW5kaWYKIAorI2lmIEVOQUJMRShF
TkNSWVBURURfTUVESUEpCit2b2lkIFdlYlBhZ2U6Om1lZGlhS2V5U3lzdGVtV2FzR3JhbnRlZCh1
aW50NjRfdCBtZWRpYUtleVN5c3RlbUlELCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29t
cGxldGlvbkhhbmRsZXIpCit7CisgICAgbV9tZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0
TWFuYWdlci0+bWVkaWFLZXlTeXN0ZW1XYXNHcmFudGVkKG1lZGlhS2V5U3lzdGVtSUQsIFdURk1v
dmUoY29tcGxldGlvbkhhbmRsZXIpKTsKK30KKwordm9pZCBXZWJQYWdlOjptZWRpYUtleVN5c3Rl
bVdhc0RlbmllZCh1aW50NjRfdCBtZWRpYUtleVN5c3RlbUlELCBTdHJpbmcmJiBtZXNzYWdlKQor
eworICAgIG1fbWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXItPm1lZGlhS2V5
U3lzdGVtV2FzRGVuaWVkKG1lZGlhS2V5U3lzdGVtSUQsIFdURk1vdmUobWVzc2FnZSkpOworfQor
I2VuZGlmCisKICNpZiAhUExBVEZPUk0oSU9TX0ZBTUlMWSkKIHZvaWQgV2ViUGFnZTo6YWR2YW5j
ZVRvTmV4dE1pc3NwZWxsaW5nKGJvb2wgc3RhcnRCZWZvcmVTZWxlY3Rpb24pCiB7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmggYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKaW5kZXggODMzNTE5NDE2ZjI2YzNk
MWM0OTVkN2NmM2JhYTVhMzhlMDg1MTM5Yi4uODg3ZDJjZjYyNjQ2MWMxZDVjNzViNWFjYzdiN2Nl
OTU4YTViMjc4ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2Uv
V2ViUGFnZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2Uu
aApAQCAtMjQ2LDYgKzI0Niw3IEBAIGNsYXNzIEdhbWVwYWREYXRhOwogY2xhc3MgR2VvbG9jYXRp
b25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXI7CiBjbGFzcyBMYXllckhvc3RpbmdDb250ZXh0Owog
Y2xhc3MgTWVkaWFEZXZpY2VTYW5kYm94RXh0ZW5zaW9uczsKK2NsYXNzIE1lZGlhS2V5U3lzdGVt
UGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyOwogY2xhc3MgTm90aWZpY2F0aW9uUGVybWlzc2lvblJl
cXVlc3RNYW5hZ2VyOwogY2xhc3MgUERGUGx1Z2luOwogY2xhc3MgUGFnZUJhbm5lcjsKQEAgLTY3
Miw2ICs2NzMsMTAgQEAgcHVibGljOgogICAgIHZvaWQgY2FwdHVyZURldmljZXNDaGFuZ2VkKCk7
CiAjZW5kaWYKIAorI2lmIEVOQUJMRShFTkNSWVBURURfTUVESUEpCisgICAgTWVkaWFLZXlTeXN0
ZW1QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXImIG1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVl
c3RNYW5hZ2VyKCkgeyByZXR1cm4gbV9tZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0TWFu
YWdlcjsgfQorI2VuZGlmCisKICAgICB2b2lkIGVsZW1lbnREaWRGb2N1cyhXZWJDb3JlOjpFbGVt
ZW50Jik7CiAgICAgdm9pZCBlbGVtZW50RGlkUmVmb2N1cyhXZWJDb3JlOjpFbGVtZW50Jik7CiAg
ICAgdm9pZCBlbGVtZW50RGlkQmx1cihXZWJDb3JlOjpFbGVtZW50Jik7CkBAIC0xNjY3LDcgKzE2
NzIsMTEgQEAgcHJpdmF0ZToKICNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQogICAgIHZvaWQgdXNl
ck1lZGlhQWNjZXNzV2FzR3JhbnRlZCh1aW50NjRfdCB1c2VyTWVkaWFJRCwgV2ViQ29yZTo6Q2Fw
dHVyZURldmljZSYmIGF1ZGlvRGV2aWNlVUlELCBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlJiYgdmlk
ZW9EZXZpY2VVSUQsIFN0cmluZyYmIG1lZGlhRGV2aWNlSWRlbnRpZmllckhhc2hTYWx0LCBTYW5k
Ym94RXh0ZW5zaW9uOjpIYW5kbGUmJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKICAg
ICB2b2lkIHVzZXJNZWRpYUFjY2Vzc1dhc0RlbmllZCh1aW50NjRfdCB1c2VyTWVkaWFJRCwgdWlu
dDY0X3QgcmVhc29uLCBTdHJpbmcmJiBpbnZhbGlkQ29uc3RyYWludCk7CisjZW5kaWYKIAorI2lm
IEVOQUJMRShFTkNSWVBURURfTUVESUEpCisgICAgdm9pZCBtZWRpYUtleVN5c3RlbVdhc0dyYW50
ZWQodWludDY0X3QgbWVkaWFLZXlTeXN0ZW1JRCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYm
KTsKKyAgICB2b2lkIG1lZGlhS2V5U3lzdGVtV2FzRGVuaWVkKHVpbnQ2NF90IG1lZGlhS2V5U3lz
dGVtSUQsIFN0cmluZyYmIG1lc3NhZ2UpOwogI2VuZGlmCiAKICAgICB2b2lkIHJlcXVlc3RNZWRp
YVBsYXliYWNrU3RhdGUoQ29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJLaXQ6Ok1lZGlhUGxheWJh
Y2tTdGF0ZSk+JiYpOwpAQCAtMTk3OSw2ICsxOTg4LDEwIEBAIHByaXZhdGU6CiAgICAgVW5pcXVl
UmVmPFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcj4gbV91c2VyTWVkaWFQZXJtaXNz
aW9uUmVxdWVzdE1hbmFnZXI7CiAjZW5kaWYKIAorI2lmIEVOQUJMRShFTkNSWVBURURfTUVESUEp
CisgICAgVW5pcXVlUmVmPE1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyPiBt
X21lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyOworI2VuZGlmCisKICAgICBz
dGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6UHJpbnRDb250ZXh0PiBtX3ByaW50Q29udGV4dDsKICNp
ZiBQTEFURk9STShHVEspCiAgICAgUmVmUHRyPFdlYlByaW50T3BlcmF0aW9uR3RrPiBtX3ByaW50
T3BlcmF0aW9uOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2Uv
V2ViUGFnZS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dl
YlBhZ2UubWVzc2FnZXMuaW4KaW5kZXggMmRhOTljZDM3MjM5MmU4MmM1MzBkNDJjMDFhMTI4Nzcw
ZmJkODcxNy4uMjNmY2EzNTcxZjA3NDc1MDkxZmYzZmMxNGJhYmM0NjVlMjE2ZWQ0YyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5p
bgorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2Vz
LmluCkBAIC0zNzgsNiArMzc4LDExIEBAIEdlbmVyYXRlU3ludGhldGljRWRpdGluZ0NvbW1hbmQo
ZW51bTp1aW50OF90IFdlYktpdDo6U3ludGhldGljRWRpdGluZ0NvbW1hbmRUeXBlCiAgICAgQ2Fw
dHVyZURldmljZXNDaGFuZ2VkKCkKICNlbmRpZgogCisjaWYgRU5BQkxFKEVOQ1JZUFRFRF9NRURJ
QSkKKyAgICBNZWRpYUtleVN5c3RlbVdhc0dyYW50ZWQodWludDY0X3QgbWVkaWFLZXlTeXN0ZW1J
RCkgLT4gKCkgQXN5bmMKKyAgICBNZWRpYUtleVN5c3RlbVdhc0RlbmllZCh1aW50NjRfdCBtZWRp
YUtleVN5c3RlbUlELCBTdHJpbmcgbWVzc2FnZSkKKyNlbmRpZgorCiAgICAgUmVxdWVzdE1lZGlh
UGxheWJhY2tTdGF0ZSgpIC0+IChlbnVtOnVpbnQ4X3QgV2ViS2l0OjpNZWRpYVBsYXliYWNrU3Rh
dGUgc3RhdGUpIEFzeW5jCiAgICAgUGF1c2VBbGxNZWRpYVBsYXliYWNrKCkgLT4gKCkgQXN5bmMK
ICAgICBTdXNwZW5kQWxsTWVkaWFQbGF5YmFjaygpIC0+ICgpIEFzeW5jCmRpZmYgLS1naXQgYS9U
b29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggNmQ5MGQ0MzMwYzUxM2FjNWFm
NmEwZDRhYWVhOTE0YzJkMDFhMWRlMS4uODczMDkwMjMyZjkzNTU0YzgzMDhjYmY5ODRiMWEzMzM4
MTBmMTFjNSAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDI1IEBACisyMDIxLTAxLTMxICBQaGlsaXBwZSBOb3JtYW5kICA8cG5vcm1h
bmRAaWdhbGlhLmNvbT4KKworICAgICAgICBQZXJtaXNzaW9uIHJlcXVlc3QgQVBJIGZvciBNZWRp
YUtleVN5c3RlbSBhY2Nlc3Mgc3VwcG9ydAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MjIxMTg3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgQWRkIHN1cHBvcnQgZm9yIHNldHRpbmcgdGhlIHBlcm1pc3Npb24g
cmVxdWVzdCByZXNwb25zZSBmcm9tIHRoZSBUZXN0UnVubmVyLCBmb3IgdXNhZ2Ugd2l0aGluIGxh
eW91dCB0ZXN0cy4KKworICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUv
QmluZGluZ3MvVGVzdFJ1bm5lci5pZGw6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9Jbmpl
Y3RlZEJ1bmRsZS9UZXN0UnVubmVyLmNwcDoKKyAgICAgICAgKFdUUjo6VGVzdFJ1bm5lcjo6c2V0
SXNNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25HcmFudGVkKToKKyAgICAgICAgKiBXZWJLaXRUZXN0
UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuaDoKKyAgICAgICAgKiBXZWJLaXRUZXN0
UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdUUjo6ZGVjaWRlUG9saWN5Rm9y
TWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdCk6CisgICAgICAgIChXVFI6OlRlc3RDb250
cm9sbGVyOjpjb21wbGV0ZU1lZGlhS2V5U3lzdGVtUGVybWlzc2lvbkNoZWNrKToKKyAgICAgICAg
KFdUUjo6VGVzdENvbnRyb2xsZXI6OnNldElzTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uR3JhbnRl
ZCk6CisgICAgICAgIChXVFI6OlRlc3RDb250cm9sbGVyOjpjcmVhdGVXZWJWaWV3V2l0aE9wdGlv
bnMpOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuaDoKKyAgICAg
ICAgKiBXZWJLaXRUZXN0UnVubmVyL1Rlc3RJbnZvY2F0aW9uLmNwcDoKKyAgICAgICAgKFdUUjo6
VGVzdEludm9jYXRpb246OmRpZFJlY2VpdmVTeW5jaHJvbm91c01lc3NhZ2VGcm9tSW5qZWN0ZWRC
dW5kbGUpOgorCiAyMDIxLTAyLTAxICBZdXN1a2UgU3V6dWtpICA8eXN1enVraUBhcHBsZS5jb20+
CiAKICAgICAgICAgW0pTQ10gQWRkIEAgaW4gRXJyb3Iuc3RhY2sgaWYgVVJMIGV4aXN0cwpkaWZm
IC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9U
ZXN0UnVubmVyLmlkbCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmlu
ZGluZ3MvVGVzdFJ1bm5lci5pZGwKaW5kZXggZGIxNTk5YTJjNTYwMmFlODFhYjJmMjRlMDhmOWY5
NTUzOWMwNWI5YS4uYTA3MWVjZGRkOWU0MzQ4M2ZlNzcxOTY4NmMzNWE0ZjM3YjhiMWJjNyAxMDA2
NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9U
ZXN0UnVubmVyLmlkbAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxl
L0JpbmRpbmdzL1Rlc3RSdW5uZXIuaWRsCkBAIC00MDgsNCArNDA4LDcgQEAgaW50ZXJmYWNlIFRl
c3RSdW5uZXIgewogCiAgICAgLy8gU3BlZWNoUmVjb2duaXRpb24KICAgICB1bmRlZmluZWQgc2V0
SXNTcGVlY2hSZWNvZ25pdGlvblBlcm1pc3Npb25HcmFudGVkKGJvb2xlYW4gdmFsdWUpOworCisg
ICAgLy8gTWVkaWFLZXlTeXN0ZW0KKyAgICB1bmRlZmluZWQgc2V0SXNNZWRpYUtleVN5c3RlbVBl
cm1pc3Npb25HcmFudGVkKGJvb2xlYW4gdmFsdWUpOwogfTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dl
YktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5jcHAgYi9Ub29scy9XZWJL
aXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuY3BwCmluZGV4IDYzODA5ODky
NTE4Y2NlM2NmZDZiYTJkZmFjZGM2ZjVlZjkwM2JhYjYuLjg2NGNjZTI4NTk3YTQxOGQ4OWE1MzU3
ZGM5MjAwY2NkMDE5NGM3ZDUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5q
ZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5jcHAKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9J
bmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmNwcApAQCAtMjA4NCw2ICsyMDg0LDExIEBAIHZvaWQg
VGVzdFJ1bm5lcjo6c2V0SXNTcGVlY2hSZWNvZ25pdGlvblBlcm1pc3Npb25HcmFudGVkKGJvb2wg
Z3JhbnRlZCkKICAgICBwb3N0U3luY2hyb25vdXNQYWdlTWVzc2FnZSgic2V0SXNTcGVlY2hSZWNv
Z25pdGlvblBlcm1pc3Npb25HcmFudGVkIiwgZ3JhbnRlZCk7CiB9CiAKK3ZvaWQgVGVzdFJ1bm5l
cjo6c2V0SXNNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25HcmFudGVkKGJvb2wgZ3JhbnRlZCkKK3sK
KyAgICBwb3N0U3luY2hyb25vdXNQYWdlTWVzc2FnZSgic2V0SXNNZWRpYUtleVN5c3RlbVBlcm1p
c3Npb25HcmFudGVkIiwgZ3JhbnRlZCk7Cit9CisKIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJ
T05TX0VORAogCiB9IC8vIG5hbWVzcGFjZSBXVFIKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRl
c3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5oIGIvVG9vbHMvV2ViS2l0VGVzdFJ1
bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmgKaW5kZXggOTNhOTdjYmRkZTQ4NzVjYmQz
MzVhNzBmY2I5ZmY1M2RiNGYyOGI0NC4uYmNmNzEwYjdiODU0NjlmOWJjNjkyMDQxMjgyNzE0NmQy
M2IzYmM5NyAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRs
ZS9UZXN0UnVubmVyLmgKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRs
ZS9UZXN0UnVubmVyLmgKQEAgLTUxOSw2ICs1MTksOCBAQCBwdWJsaWM6CiAKICAgICB2b2lkIHNl
dElzU3BlZWNoUmVjb2duaXRpb25QZXJtaXNzaW9uR3JhbnRlZChib29sKTsKIAorICAgIHZvaWQg
c2V0SXNNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25HcmFudGVkKGJvb2wpOworCiBwcml2YXRlOgog
ICAgIFRlc3RSdW5uZXIoKTsKIApkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9U
ZXN0Q29udHJvbGxlci5jcHAgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVy
LmNwcAppbmRleCBkMmNiZWY0MjUzZGZlNjUxMzI4NzIzZDU3OWRiMzQxNGJmMWRhNzhjLi5iM2Yz
YjkzM2Q5ZGFmMDA2ZTBmZjg3MzI0NGU3NWE5MzZmNzIyOGQ4IDEwMDY0NAotLS0gYS9Ub29scy9X
ZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcAorKysgYi9Ub29scy9XZWJLaXRUZXN0
UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcApAQCAtNDYsNiArNDYsNyBAQAogI2luY2x1ZGUgPFdl
YktpdC9XS0ZyYW1lSW5mb1JlZi5oPgogI2luY2x1ZGUgPFdlYktpdC9XS0hUVFBDb29raWVTdG9y
ZVJlZi5oPgogI2luY2x1ZGUgPFdlYktpdC9XS0ljb25EYXRhYmFzZS5oPgorI2luY2x1ZGUgPFdl
YktpdC9XS01lZGlhS2V5U3lzdGVtUGVybWlzc2lvbkNhbGxiYWNrLmg+CiAjaW5jbHVkZSA8V2Vi
S2l0L1dLTWVzc2FnZUxpc3RlbmVyLmg+CiAjaW5jbHVkZSA8V2ViS2l0L1dLTW9ja0Rpc3BsYXku
aD4KICNpbmNsdWRlIDxXZWJLaXQvV0tNb2NrTWVkaWFEZXZpY2UuaD4KQEAgLTM0Myw2ICszNDQs
MjEgQEAgdm9pZCBUZXN0Q29udHJvbGxlcjo6c2V0SXNTcGVlY2hSZWNvZ25pdGlvblBlcm1pc3Np
b25HcmFudGVkKGJvb2wgZ3JhbnRlZCkKICAgICBtX2lzU3BlZWNoUmVjb2duaXRpb25QZXJtaXNz
aW9uR3JhbnRlZCA9IGdyYW50ZWQ7CiB9CiAKK3N0YXRpYyB2b2lkIGRlY2lkZVBvbGljeUZvck1l
ZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3QoV0tQYWdlUmVmLCBXS1NlY3VyaXR5T3JpZ2lu
UmVmLCBXS1N0cmluZ1JlZiwgV0tNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25DYWxsYmFja1JlZiBj
YWxsYmFjaykKK3sKKyAgICBUZXN0Q29udHJvbGxlcjo6c2luZ2xldG9uKCkuY29tcGxldGVNZWRp
YUtleVN5c3RlbVBlcm1pc3Npb25DaGVjayhjYWxsYmFjayk7Cit9CisKK3ZvaWQgVGVzdENvbnRy
b2xsZXI6OmNvbXBsZXRlTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uQ2hlY2soV0tNZWRpYUtleVN5
c3RlbVBlcm1pc3Npb25DYWxsYmFja1JlZiBjYWxsYmFjaykKK3sKKyAgICBXS01lZGlhS2V5U3lz
dGVtUGVybWlzc2lvbkNhbGxiYWNrQ29tcGxldGUoY2FsbGJhY2ssIG1faXNNZWRpYUtleVN5c3Rl
bVBlcm1pc3Npb25HcmFudGVkKTsKK30KKwordm9pZCBUZXN0Q29udHJvbGxlcjo6c2V0SXNNZWRp
YUtleVN5c3RlbVBlcm1pc3Npb25HcmFudGVkKGJvb2wgZ3JhbnRlZCkKK3sKKyAgICBtX2lzTWVk
aWFLZXlTeXN0ZW1QZXJtaXNzaW9uR3JhbnRlZCA9IGdyYW50ZWQ7Cit9CisKIFdLUGFnZVJlZiBU
ZXN0Q29udHJvbGxlcjo6Y3JlYXRlT3RoZXJQYWdlKFdLUGFnZVJlZiwgV0tQYWdlQ29uZmlndXJh
dGlvblJlZiBjb25maWd1cmF0aW9uLCBXS05hdmlnYXRpb25BY3Rpb25SZWYgbmF2aWdhdGlvbkFj
dGlvbiwgV0tXaW5kb3dGZWF0dXJlc1JlZiB3aW5kb3dGZWF0dXJlcywgY29uc3Qgdm9pZCAqY2xp
ZW50SW5mbykKIHsKICAgICBQbGF0Zm9ybVdlYlZpZXcqIHBhcmVudFZpZXcgPSBzdGF0aWNfY2Fz
dDxQbGF0Zm9ybVdlYlZpZXcqPihjb25zdF9jYXN0PHZvaWQqPihjbGllbnRJbmZvKSk7CkBAIC02
OTksOCArNzE1LDggQEAgdm9pZCBUZXN0Q29udHJvbGxlcjo6Y3JlYXRlV2ViVmlld1dpdGhPcHRp
b25zKGNvbnN0IFRlc3RPcHRpb25zJiBvcHRpb25zKQogICAgIFdLSFRUUENvb2tpZVN0b3JlRGVs
ZXRlQWxsQ29va2llcyhXS1dlYnNpdGVEYXRhU3RvcmVHZXRIVFRQQ29va2llU3RvcmUod2Vic2l0
ZURhdGFTdG9yZSgpKSwgbnVsbHB0ciwgbnVsbHB0cik7CiAKICAgICBwbGF0Zm9ybUNyZWF0ZVdl
YlZpZXcoY29uZmlndXJhdGlvbi5nZXQoKSwgb3B0aW9ucyk7Ci0gICAgV0tQYWdlVUlDbGllbnRW
MTUgcGFnZVVJQ2xpZW50ID0gewotICAgICAgICB7IDE1LCBtX21haW5XZWJWaWV3LmdldCgpIH0s
CisgICAgV0tQYWdlVUlDbGllbnRWMTYgcGFnZVVJQ2xpZW50ID0geworICAgICAgICB7IDE2LCBt
X21haW5XZWJWaWV3LmdldCgpIH0sCiAgICAgICAgIDAsIC8vIGNyZWF0ZU5ld1BhZ2VfZGVwcmVj
YXRlZEZvclVzZVdpdGhWMAogICAgICAgICAwLCAvLyBzaG93UGFnZQogICAgICAgICAwLCAvLyBj
bG9zZQpAQCAtNzc0LDcgKzc5MCw4IEBAIHZvaWQgVGVzdENvbnRyb2xsZXI6OmNyZWF0ZVdlYlZp
ZXdXaXRoT3B0aW9ucyhjb25zdCBUZXN0T3B0aW9ucyYgb3B0aW9ucykKICAgICAgICAgMCwgLy8g
cmVxdWVzdFN0b3JhZ2VBY2Nlc3NDb25maXJtCiAgICAgICAgIHNob3VsZEFsbG93RGV2aWNlT3Jp
ZW50YXRpb25BbmRNb3Rpb25BY2Nlc3MsCiAgICAgICAgIHJ1bldlYkF1dGhlbnRpY2F0aW9uUGFu
ZWwsCi0gICAgICAgIGRlY2lkZVBvbGljeUZvclNwZWVjaFJlY29nbml0aW9uUGVybWlzc2lvblJl
cXVlc3QKKyAgICAgICAgZGVjaWRlUG9saWN5Rm9yU3BlZWNoUmVjb2duaXRpb25QZXJtaXNzaW9u
UmVxdWVzdCwKKyAgICAgICAgZGVjaWRlUG9saWN5Rm9yTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9u
UmVxdWVzdAogICAgIH07CiAgICAgV0tQYWdlU2V0UGFnZVVJQ2xpZW50KG1fbWFpbldlYlZpZXct
PnBhZ2UoKSwgJnBhZ2VVSUNsaWVudC5iYXNlKTsKIApkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0
VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5oIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0
Q29udHJvbGxlci5oCmluZGV4IGJiNzVkNTA3MDJjM2E1M2YzOWRlMTU4MWRjYzRkM2IzMzczOTY0
Y2IuLjgxOGMyYjRlYzRhNTYyYmMwNjdhNGYzZDVjZWJiY2RiZDA1YzA0N2MgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuaAorKysgYi9Ub29scy9XZWJL
aXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmgKQEAgLTM1Niw2ICszNTYsOSBAQCBwdWJsaWM6
CiAgICAgdm9pZCBjb21wbGV0ZVNwZWVjaFJlY29nbml0aW9uUGVybWlzc2lvbkNoZWNrKFdLU3Bl
ZWNoUmVjb2duaXRpb25QZXJtaXNzaW9uQ2FsbGJhY2tSZWYpOwogICAgIHZvaWQgc2V0SXNTcGVl
Y2hSZWNvZ25pdGlvblBlcm1pc3Npb25HcmFudGVkKGJvb2wpOwogCisgICAgdm9pZCBjb21wbGV0
ZU1lZGlhS2V5U3lzdGVtUGVybWlzc2lvbkNoZWNrKFdLTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9u
Q2FsbGJhY2tSZWYpOworICAgIHZvaWQgc2V0SXNNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25HcmFu
dGVkKGJvb2wpOworCiBwcml2YXRlOgogICAgIFdLUmV0YWluUHRyPFdLUGFnZUNvbmZpZ3VyYXRp
b25SZWY+IGdlbmVyYXRlUGFnZUNvbmZpZ3VyYXRpb24oY29uc3QgVGVzdE9wdGlvbnMmKTsKICAg
ICBXS1JldGFpblB0cjxXS0NvbnRleHRDb25maWd1cmF0aW9uUmVmPiBnZW5lcmF0ZUNvbnRleHRD
b25maWd1cmF0aW9uKGNvbnN0IFRlc3RPcHRpb25zJikgY29uc3Q7CkBAIC02NDcsNiArNjUwLDgg
QEAgcHJpdmF0ZToKICNlbmRpZgogCiAgICAgYm9vbCBtX2lzU3BlZWNoUmVjb2duaXRpb25QZXJt
aXNzaW9uR3JhbnRlZCB7IGZhbHNlIH07CisKKyAgICBib29sIG1faXNNZWRpYUtleVN5c3RlbVBl
cm1pc3Npb25HcmFudGVkIHsgdHJ1ZSB9OwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV1RSCmRpZmYg
LS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RJbnZvY2F0aW9uLmNwcCBiL1Rvb2xz
L1dlYktpdFRlc3RSdW5uZXIvVGVzdEludm9jYXRpb24uY3BwCmluZGV4IDU5OGRmYzdkMWFjMGUz
N2JiMjJmYjc4NGJhMTU0YWI3NDc3YWVhMTUuLjU1MDM1NWM3YjhiOTg0ODRhN2QyOGNmNTU5NWY2
Mzg3NTE3YmY0YmEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdEludm9j
YXRpb24uY3BwCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdEludm9jYXRpb24uY3Bw
CkBAIC0xMzYwLDYgKzEzNjAsMTEgQEAgV0tSZXRhaW5QdHI8V0tUeXBlUmVmPiBUZXN0SW52b2Nh
dGlvbjo6ZGlkUmVjZWl2ZVN5bmNocm9ub3VzTWVzc2FnZUZyb21JbmplY3RlZEIKICAgICAgICAg
cmV0dXJuIG51bGxwdHI7CiAgICAgfQogCisgICAgaWYgKFdLU3RyaW5nSXNFcXVhbFRvVVRGOENT
dHJpbmcobWVzc2FnZU5hbWUsICJzZXRJc01lZGlhS2V5U3lzdGVtUGVybWlzc2lvbkdyYW50ZWQi
KSkgeworICAgICAgICBUZXN0Q29udHJvbGxlcjo6c2luZ2xldG9uKCkuc2V0SXNNZWRpYUtleVN5
c3RlbVBlcm1pc3Npb25HcmFudGVkKGJvb2xlYW5WYWx1ZShtZXNzYWdlQm9keSkpOworICAgICAg
ICByZXR1cm4gbnVsbHB0cjsKKyAgICB9CisKICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAg
ICByZXR1cm4gbnVsbHB0cjsKIH0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBi
L0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCAwMmNmM2U5OGFkYWNiYjkzYzk1M2FlMjAwY2Jj
MDNiYmZmY2IwNDg4Li5kMWZjZDRjMjQzODgwY2ZkNzAwMDZkOTFiNjJiYzBmMzlkOThiMGI0IDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMjEtMDEtMzEgIFBoaWxpcHBlIE5vcm1hbmQgIDxwbm9y
bWFuZEBpZ2FsaWEuY29tPgorCisgICAgICAgIFBlcm1pc3Npb24gcmVxdWVzdCBBUEkgZm9yIE1l
ZGlhS2V5U3lzdGVtIGFjY2VzcyBzdXBwb3J0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yMjExODcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBBZGQgYmFzaWMgY292ZXJhZ2Ugc3VwcG9ydCBmb3Igb3ZlcnJp
ZGluZyB0aGUgTWVkaWFLZXlTeXN0ZW0gcGVybWlzc2lvbiBhbnN3ZXIgYW5kIHRodXMgaGF2ZQor
ICAgICAgICB0aGUgcHJvbWlzZSByZWplY3Rpb24gdGVzdGVkIGluIHRoaXMgY2FzZS4KKworICAg
ICAgICAqIG1lZGlhL2VuY3J5cHRlZC1tZWRpYS9tb2NrLU1lZGlhS2V5U3lzdGVtQWNjZXNzLWV4
cGVjdGVkLnR4dDoKKyAgICAgICAgKiBtZWRpYS9lbmNyeXB0ZWQtbWVkaWEvbW9jay1NZWRpYUtl
eVN5c3RlbUFjY2Vzcy5odG1sOgorCiAyMDIxLTAyLTAxICBZdXN1a2UgU3V6dWtpICA8eXN1enVr
aUBhcHBsZS5jb20+CiAKICAgICAgICAgW0pTQ10gQWRkIEAgaW4gRXJyb3Iuc3RhY2sgaWYgVVJM
IGV4aXN0cwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvbWVkaWEvZW5jcnlwdGVkLW1lZGlhL21v
Y2stTWVkaWFLZXlTeXN0ZW1BY2Nlc3MtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvbWVkaWEv
ZW5jcnlwdGVkLW1lZGlhL21vY2stTWVkaWFLZXlTeXN0ZW1BY2Nlc3MtZXhwZWN0ZWQudHh0Cmlu
ZGV4IDIwOTIzNGQ1MTE5OGYwYzEyNDhhZWQ2ZWMzYjc1NjNhMTc1MGRkYzQuLjEyMGJhMWYyYzI4
N2NlYjc2OGVmMGE2ZjRhMmY4ZTQ5MmVlYTRhYTAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL21l
ZGlhL2VuY3J5cHRlZC1tZWRpYS9tb2NrLU1lZGlhS2V5U3lzdGVtQWNjZXNzLWV4cGVjdGVkLnR4
dAorKysgYi9MYXlvdXRUZXN0cy9tZWRpYS9lbmNyeXB0ZWQtbWVkaWEvbW9jay1NZWRpYUtleVN5
c3RlbUFjY2Vzcy1leHBlY3RlZC50eHQKQEAgLTMxLDYgKzMxLDEwIEBAIFJVTihjYXBhYmlsaXRp
ZXMucGVyc2lzdGVudFN0YXRlID0gIm5vdC1hbGxvd2VkIikKIFJVTihwcm9taXNlID0gbmF2aWdh
dG9yLnJlcXVlc3RNZWRpYUtleVN5c3RlbUFjY2Vzcygib3JnLndlYmtpdC5tb2NrIiwgW2NhcGFi
aWxpdGllc10pKQogUHJvbWlzZSByZXNvbHZlZCBPSwogCitSVU4odGVzdFJ1bm5lci5zZXRJc01l
ZGlhS2V5U3lzdGVtUGVybWlzc2lvbkdyYW50ZWQoZmFsc2UpKQorUlVOKHByb21pc2UgPSBuYXZp
Z2F0b3IucmVxdWVzdE1lZGlhS2V5U3lzdGVtQWNjZXNzKCJvcmcud2Via2l0Lm1vY2siLCBbY2Fw
YWJpbGl0aWVzXSkpCitQcm9taXNlIHJlamVjdGVkIGNvcnJlY3RseSBPSworCiBSVU4ocHJvbWlz
ZSA9IG1lZGlhS2V5U3lzdGVtQWNjZXNzLmNyZWF0ZU1lZGlhS2V5cygpKQogUHJvbWlzZSByZXNv
bHZlZCBPSwogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9tZWRpYS9lbmNyeXB0ZWQtbWVkaWEv
bW9jay1NZWRpYUtleVN5c3RlbUFjY2Vzcy5odG1sIGIvTGF5b3V0VGVzdHMvbWVkaWEvZW5jcnlw
dGVkLW1lZGlhL21vY2stTWVkaWFLZXlTeXN0ZW1BY2Nlc3MuaHRtbAppbmRleCA0Nzk2ZjE4YzIw
MWYxNzQ2ZDdkZjQzMjc0MmQ5NzVjNzVlZTRiYTc1Li41NTViOWVlNzY5ZWViZDE2ZDlhNjc2OTJi
NjM3MDNkNGNhMzJjNzA5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9tZWRpYS9lbmNyeXB0ZWQt
bWVkaWEvbW9jay1NZWRpYUtleVN5c3RlbUFjY2Vzcy5odG1sCisrKyBiL0xheW91dFRlc3RzL21l
ZGlhL2VuY3J5cHRlZC1tZWRpYS9tb2NrLU1lZGlhS2V5U3lzdGVtQWNjZXNzLmh0bWwKQEAgLTg0
LDYgKzg0LDEzIEBACiAgICAgICAgIH0sCiAKICAgICAgICAgZnVuY3Rpb24oKSB7CisgICAgICAg
ICAgICBydW4oJ3Rlc3RSdW5uZXIuc2V0SXNNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25HcmFudGVk
KGZhbHNlKScpOworICAgICAgICAgICAgcnVuKCdwcm9taXNlID0gbmF2aWdhdG9yLnJlcXVlc3RN
ZWRpYUtleVN5c3RlbUFjY2Vzcygib3JnLndlYmtpdC5tb2NrIiwgW2NhcGFiaWxpdGllc10pJyk7
CisgICAgICAgICAgICBzaG91bGRSZWplY3QocHJvbWlzZSkudGhlbihuZXh0LCBuZXh0KTsKKyAg
ICAgICAgfSwKKworICAgICAgICBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIu
c2V0SXNNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25HcmFudGVkKHRydWUpOwogICAgICAgICAgICAg
cnVuKCdwcm9taXNlID0gbWVkaWFLZXlTeXN0ZW1BY2Nlc3MuY3JlYXRlTWVkaWFLZXlzKCknKTsK
ICAgICAgICAgICAgIHNob3VsZFJlc29sdmUocHJvbWlzZSkudGhlbihuZXh0LCBuZXh0KTsKICAg
ICAgICAgfSwK
</data>
<flag name="commit-queue"
          id="436974"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>418878</attachid>
            <date>2021-02-01 08:19:17 -0800</date>
            <delta_ts>2021-02-02 03:05:16 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-221187-20210201081915.patch</filename>
            <type>text/plain</type>
            <size>138740</size>
            <attacher name="Philippe Normand">pnormand</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcyMTM5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNGQzNzA5MTUyYzFmMmU1
Y2U1MmZmOTliZTIyNjY2MTM1MDhmOTdhNS4uMzQzZDgwM2IyNWZjODIyMDFiZjcyYmRhODBlNmIx
NGE5MjQyNDFjYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ4IEBACisyMDIxLTAxLTMxICBQaGls
aXBwZSBOb3JtYW5kICA8cG5vcm1hbmRAaWdhbGlhLmNvbT4KKworICAgICAgICBQZXJtaXNzaW9u
IHJlcXVlc3QgQVBJIGZvciBNZWRpYUtleVN5c3RlbSBhY2Nlc3Mgc3VwcG9ydAorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjIxMTg3CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgU3VwcG9ydCBmb3IgdXNlciBw
ZXJtaXNzaW9uIHJlcXVlc3Rpbmcgd2hlbiBhY2Nlc3MgdG8gYW4gRU1FIE1lZGlhS2V5U3lzdGVt
IGlzIGJlaW5nCisgICAgICAgIHJlcXVlc3RlZCBieSB0aGUgcGFnZS4gVGhpcyBpcyBzaW1pbGFy
IHRvIHRoZSBtZWRpYURldmljZXMgYWNjZXNzIGd1YXJkcy4KKworICAgICAgICBFeGlzdGluZyB0
ZXN0IG1lZGlhL2VuY3J5cHRlZC1tZWRpYS9tb2NrLU1lZGlhS2V5U3lzdGVtQWNjZXNzLmh0bWwg
d2FzIHVwZGF0ZWQgdG8gY292ZXIgdGhpcworICAgICAgICBuZXcgY29kZSBwYXRoIGFuZCBXUEUv
R1RLIEFQSSB0ZXN0cyBhcyB3ZWxsLgorCisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6CisgICAg
ICAgICogSGVhZGVycy5jbWFrZToKKyAgICAgICAgKiBNb2R1bGVzL2VuY3J5cHRlZG1lZGlhL01l
ZGlhS2V5U3lzdGVtQ2xpZW50Lmg6IEFkZGVkLgorICAgICAgICAqIE1vZHVsZXMvZW5jcnlwdGVk
bWVkaWEvTWVkaWFLZXlTeXN0ZW1Db250cm9sbGVyLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJD
b3JlOjpNZWRpYUtleVN5c3RlbUNvbnRyb2xsZXI6OnN1cHBsZW1lbnROYW1lKToKKyAgICAgICAg
KFdlYkNvcmU6Ok1lZGlhS2V5U3lzdGVtQ29udHJvbGxlcjo6TWVkaWFLZXlTeXN0ZW1Db250cm9s
bGVyKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhS2V5U3lzdGVtQ29udHJvbGxlcjo6fk1lZGlh
S2V5U3lzdGVtQ29udHJvbGxlcik6CisgICAgICAgIChXZWJDb3JlOjpwcm92aWRlTWVkaWFLZXlT
eXN0ZW1Ubyk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYUtleVN5c3RlbUNvbnRyb2xsZXI6Omxv
Z1JlcXVlc3RNZWRpYUtleVN5c3RlbURlbmlhbCk6CisgICAgICAgICogTW9kdWxlcy9lbmNyeXB0
ZWRtZWRpYS9NZWRpYUtleVN5c3RlbUNvbnRyb2xsZXIuaDogQWRkZWQuCisgICAgICAgIChXZWJD
b3JlOjpNZWRpYUtleVN5c3RlbUNvbnRyb2xsZXI6OmNsaWVudCBjb25zdCk6CisgICAgICAgIChX
ZWJDb3JlOjpNZWRpYUtleVN5c3RlbUNvbnRyb2xsZXI6OmZyb20pOgorICAgICAgICAoV2ViQ29y
ZTo6TWVkaWFLZXlTeXN0ZW1Db250cm9sbGVyOjpyZXF1ZXN0TWVkaWFLZXlTeXN0ZW0pOgorICAg
ICAgICAoV2ViQ29yZTo6TWVkaWFLZXlTeXN0ZW1Db250cm9sbGVyOjpjYW5jZWxNZWRpYUtleVN5
c3RlbVJlcXVlc3QpOgorICAgICAgICAqIE1vZHVsZXMvZW5jcnlwdGVkbWVkaWEvTWVkaWFLZXlT
eXN0ZW1SZXF1ZXN0LmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpNZWRpYUtleVN5c3Rl
bVJlcXVlc3Q6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYUtleVN5c3RlbVJlcXVl
c3Q6Ok1lZGlhS2V5U3lzdGVtUmVxdWVzdCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYUtleVN5
c3RlbVJlcXVlc3Q6On5NZWRpYUtleVN5c3RlbVJlcXVlc3QpOgorICAgICAgICAoV2ViQ29yZTo6
TWVkaWFLZXlTeXN0ZW1SZXF1ZXN0Ojp0b3BMZXZlbERvY3VtZW50T3JpZ2luIGNvbnN0KToKKyAg
ICAgICAgKFdlYkNvcmU6Ok1lZGlhS2V5U3lzdGVtUmVxdWVzdDo6c3RhcnQpOgorICAgICAgICAo
V2ViQ29yZTo6TWVkaWFLZXlTeXN0ZW1SZXF1ZXN0OjphbGxvdyk6CisgICAgICAgIChXZWJDb3Jl
OjpNZWRpYUtleVN5c3RlbVJlcXVlc3Q6OmRlbnkpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFL
ZXlTeXN0ZW1SZXF1ZXN0OjpzdG9wKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhS2V5U3lzdGVt
UmVxdWVzdDo6YWN0aXZlRE9NT2JqZWN0TmFtZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpN
ZWRpYUtleVN5c3RlbVJlcXVlc3Q6OmRvY3VtZW50IGNvbnN0KToKKyAgICAgICAgKiBNb2R1bGVz
L2VuY3J5cHRlZG1lZGlhL01lZGlhS2V5U3lzdGVtUmVxdWVzdC5oOiBBZGRlZC4KKyAgICAgICAg
KFdlYkNvcmU6Ok1lZGlhS2V5U3lzdGVtUmVxdWVzdDo6c2V0QWxsb3dDYWxsYmFjayk6CisgICAg
ICAgIChXZWJDb3JlOjpNZWRpYUtleVN5c3RlbVJlcXVlc3Q6OmlkZW50aWZpZXIgY29uc3QpOgor
ICAgICAgICAoV2ViQ29yZTo6TWVkaWFLZXlTeXN0ZW1SZXF1ZXN0OjprZXlTeXN0ZW0gY29uc3Qp
OgorICAgICAgICAqIE1vZHVsZXMvZW5jcnlwdGVkbWVkaWEvTmF2aWdhdG9yRU1FLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6Ok5hdmlnYXRvckVNRTo6cmVxdWVzdE1lZGlhS2V5U3lzdGVtQWNjZXNz
KToKKwogMjAyMS0wMi0wMSAgWGFiaWVyIFJvZHJpZ3VleiBDYWx2YXIgIDxjYWx2YXJpc0BpZ2Fs
aWEuY29tPgogCiAgICAgICAgIFtHU3RyZWFtZXJdW0VNRV1bVGh1bmRlcl0gQWRkIHZpZGVvL3gt
dnA5IGFzIHN1cHBvcnRlZCBmb3IgY2VuYyBhbmQgY2JjcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCAyY2FkNzhmMWU2
ZWY0ODk5ZDZmZTMwNDdlOTM5MzJkY2ViOTNiMWUyLi4wZDJlMTgzYTk0OGM4MjI4MzAyYTJhNzNm
NWE0ZTFmZjUxODZmMjA4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysg
Yi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDk2IEBACisyMDIxLTAxLTMxICBQ
aGlsaXBwZSBOb3JtYW5kICA8cG5vcm1hbmRAaWdhbGlhLmNvbT4KKworICAgICAgICBQZXJtaXNz
aW9uIHJlcXVlc3QgQVBJIGZvciBNZWRpYUtleVN5c3RlbSBhY2Nlc3Mgc3VwcG9ydAorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjIxMTg3CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIG5ldyBJUEMgYW5k
IEMgQVBJIGV4cG9zaW5nIE1lZGlhS2V5U3lzdGVtIGFjY2VzcyBwZXJtaXNzaW9ucyB0byB0aGUg
VUlQcm9jZXNzLiBBdCBsZWFzdAorICAgICAgICBHVEsvV1BFIHdvdWxkIGxpa2UgdG8gaGF2ZSBB
UEkgZm9yIGFza2luZyBwZXJtaXNzaW9uIHRvIHRoZSB1c2VyIHdoZW4gRU1FJ3MgTWVkaWFLZXlB
Y2Nlc3MKKyAgICAgICAgaXMgYmVpbmcgcmVxdWVzdGVkIGJ5IGEgcGFnZS4gT24gQXBwbGUgcGxh
dGZvcm1zIHRoZSBwZXJtaXNzaW9uIGlzIGdyYW50ZWQgYnkgZGVmYXVsdCB1bnRpbAorICAgICAg
ICBhIGRlY2lzaW9uIGlzIG1hZGUgYWJvdXQgc3VwcG9ydGluZyB0aGlzIGluIHRoZWlyIEFQSVVJ
Q2xpZW50LgorCisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6CisgICAgICAgICogSGVhZGVycy5j
bWFrZToKKyAgICAgICAgKiBQbGF0Zm9ybS9Mb2dnaW5nLmg6CisgICAgICAgICogU2hhcmVkL0FQ
SS9BUElPYmplY3QuaDoKKyAgICAgICAgKiBTaGFyZWQvQVBJL2MvV0tCYXNlLmg6CisgICAgICAg
ICogU291cmNlcy50eHQ6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9BUElVSUNsaWVudC5oOgor
ICAgICAgICAoQVBJOjpVSUNsaWVudDo6ZGVjaWRlUG9saWN5Rm9yTWVkaWFLZXlTeXN0ZW1QZXJt
aXNzaW9uUmVxdWVzdCk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dLQVBJQ2FzdC5oOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS01lZGlhS2V5U3lzdGVtUGVybWlzc2lvbkNhbGxi
YWNrLmNwcDogQWRkZWQuCisgICAgICAgIChXS01lZGlhS2V5U3lzdGVtUGVybWlzc2lvbkNhbGxi
YWNrR2V0VHlwZUlEKToKKyAgICAgICAgKFdLTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uQ2FsbGJh
Y2tDb21wbGV0ZSk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dLTWVkaWFLZXlTeXN0ZW1Q
ZXJtaXNzaW9uQ2FsbGJhY2suaDogQWRkZWQuCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dL
UGFnZS5jcHA6CisgICAgICAgIChXS1BhZ2VTZXRQYWdlVUlDbGllbnQpOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9BUEkvQy9XS1BhZ2VVSUNsaWVudC5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9NZWRp
YUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0Lmg6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpN
ZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0OjpjcmVhdGUpOgorICAgICAgICAoV2ViS2l0
OjpNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0Ojpjb21wbGV0ZSk6CisgICAgICAgIChX
ZWJLaXQ6Ok1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3Q6OmtleVN5c3RlbSBjb25zdCk6
CisgICAgICAgIChXZWJLaXQ6Ok1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3Q6Ok1lZGlh
S2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3QpOgorICAgICAgICAoV2ViS2l0OjpNZWRpYUtleVN5
c3RlbVBlcm1pc3Npb25DYWxsYmFjazo6Y3JlYXRlKToKKyAgICAgICAgKFdlYktpdDo6TWVkaWFL
ZXlTeXN0ZW1QZXJtaXNzaW9uQ2FsbGJhY2s6OmNvbXBsZXRlKToKKyAgICAgICAgKFdlYktpdDo6
TWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uQ2FsbGJhY2s6Ok1lZGlhS2V5U3lzdGVtUGVybWlzc2lv
bkNhbGxiYWNrKToKKyAgICAgICAgKiBVSVByb2Nlc3MvTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9u
UmVxdWVzdE1hbmFnZXJQcm94eS5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpNZWRpYUtl
eVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5OjpNZWRpYUtleVN5c3RlbVBlcm1p
c3Npb25SZXF1ZXN0TWFuYWdlclByb3h5KToKKyAgICAgICAgKFdlYktpdDo6TWVkaWFLZXlTeXN0
ZW1QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6fk1lZGlhS2V5U3lzdGVtUGVybWlzc2lv
blJlcXVlc3RNYW5hZ2VyUHJveHkpOgorICAgICAgICAoV2ViS2l0OjpNZWRpYUtleVN5c3RlbVBl
cm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5OjppbnZhbGlkYXRlUGVuZGluZ1JlcXVlc3RzKToK
KyAgICAgICAgKFdlYktpdDo6TWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQ
cm94eTo6ZGVueVJlcXVlc3QpOgorICAgICAgICAoV2ViS2l0OjpNZWRpYUtleVN5c3RlbVBlcm1p
c3Npb25SZXF1ZXN0TWFuYWdlclByb3h5OjpncmFudFJlcXVlc3QpOgorICAgICAgICAoV2ViS2l0
OjpNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5OjpjcmVhdGVSZXF1
ZXN0Rm9yRnJhbWUpOgorICAgICAgICAoV2ViS2l0OjpNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25S
ZXF1ZXN0TWFuYWdlclByb3h5Ojpsb2dDaGFubmVsIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6
TWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6bG9nZ2VyIGNvbnN0
KToKKyAgICAgICAgKiBVSVByb2Nlc3MvTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdE1h
bmFnZXJQcm94eS5oOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6TWVkaWFLZXlTeXN0ZW1QZXJt
aXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6cGFnZSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6
Ok1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6OmRlbnlSZXF1ZXN0
KToKKyAgICAgICAgKiBVSVByb2Nlc3MvTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdFBy
b3h5LmNwcDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6Ok1lZGlhS2V5U3lzdGVtUGVybWlzc2lv
blJlcXVlc3RQcm94eTo6TWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdFByb3h5KToKKyAg
ICAgICAgKFdlYktpdDo6TWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdFByb3h5OjphbGxv
dyk6CisgICAgICAgIChXZWJLaXQ6Ok1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RQcm94
eTo6ZGVueSk6CisgICAgICAgIChXZWJLaXQ6Ok1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVl
c3RQcm94eTo6aW52YWxpZGF0ZSk6CisgICAgICAgIChXZWJLaXQ6Ok1lZGlhS2V5U3lzdGVtUGVy
bWlzc2lvblJlcXVlc3RQcm94eTo6ZG9EZWZhdWx0QWN0aW9uKToKKyAgICAgICAgKiBVSVByb2Nl
c3MvTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdFByb3h5Lmg6IEFkZGVkLgorICAgICAg
ICAoV2ViS2l0OjpNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0UHJveHk6OmNyZWF0ZSk6
CisgICAgICAgIChXZWJLaXQ6Ok1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RQcm94eTo6
aXNQZW5kaW5nIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6TWVkaWFLZXlTeXN0ZW1QZXJtaXNz
aW9uUmVxdWVzdFByb3h5OjptZWRpYUtleVN5c3RlbUlEIGNvbnN0KToKKyAgICAgICAgKFdlYktp
dDo6TWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdFByb3h5OjptYWluRnJhbWVJRCBjb25z
dCk6CisgICAgICAgIChXZWJLaXQ6Ok1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RQcm94
eTo6ZnJhbWVJRCBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6Ok1lZGlhS2V5U3lzdGVtUGVybWlz
c2lvblJlcXVlc3RQcm94eTo6dG9wTGV2ZWxEb2N1bWVudFNlY3VyaXR5T3JpZ2luKToKKyAgICAg
ICAgKFdlYktpdDo6TWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdFByb3h5Ojp0b3BMZXZl
bERvY3VtZW50U2VjdXJpdHlPcmlnaW4gY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpNZWRpYUtl
eVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0UHJveHk6OmtleVN5c3RlbSBjb25zdCk6CisgICAgICAg
ICogVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZS5o
OgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0
OjpXZWJQYWdlUHJveHk6OnJlcXVlc3RNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25Gb3JGcmFtZSk6
CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6bWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9u
UmVxdWVzdE1hbmFnZXIpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OnJlcXVlc3RN
ZWRpYUtleVN5c3RlbVBlcm1pc3Npb25CeURlZmF1bHRBY3Rpb24pOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9XZWJQYWdlUHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1l
c3NhZ2VzLmluOgorICAgICAgICAqIFdlYlByb2Nlc3MvRW5jcnlwdGVkTWVkaWEvTWVkaWFLZXlT
eXN0ZW1QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYktp
dDo6TWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXI6Ok1lZGlhS2V5U3lzdGVt
UGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyKToKKyAgICAgICAgKFdlYktpdDo6TWVkaWFLZXlTeXN0
ZW1QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXI6OnN0YXJ0TWVkaWFLZXlTeXN0ZW1SZXF1ZXN0KToK
KyAgICAgICAgKFdlYktpdDo6TWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXI6
OnNlbmRNZWRpYUtleVN5c3RlbVJlcXVlc3QpOgorICAgICAgICAoV2ViS2l0OjpNZWRpYUtleVN5
c3RlbVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcjo6Y2FuY2VsTWVkaWFLZXlTeXN0ZW1SZXF1ZXN0
KToKKyAgICAgICAgKFdlYktpdDo6TWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdE1hbmFn
ZXI6Om1lZGlhS2V5U3lzdGVtV2FzR3JhbnRlZCk6CisgICAgICAgIChXZWJLaXQ6Ok1lZGlhS2V5
U3lzdGVtUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyOjptZWRpYUtleVN5c3RlbVdhc0RlbmllZCk6
CisgICAgICAgICogV2ViUHJvY2Vzcy9FbmNyeXB0ZWRNZWRpYS9NZWRpYUtleVN5c3RlbVBlcm1p
c3Npb25SZXF1ZXN0TWFuYWdlci5oOiBBZGRlZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNv
cmVTdXBwb3J0L1dlYk1lZGlhS2V5U3lzdGVtQ2xpZW50LmNwcDogQWRkZWQuCisgICAgICAgIChX
ZWJLaXQ6OldlYk1lZGlhS2V5U3lzdGVtQ2xpZW50OjpXZWJNZWRpYUtleVN5c3RlbUNsaWVudCk6
CisgICAgICAgIChXZWJLaXQ6OldlYk1lZGlhS2V5U3lzdGVtQ2xpZW50OjpwYWdlRGVzdHJveWVk
KToKKyAgICAgICAgKFdlYktpdDo6V2ViTWVkaWFLZXlTeXN0ZW1DbGllbnQ6OnJlcXVlc3RNZWRp
YUtleVN5c3RlbSk6CisgICAgICAgIChXZWJLaXQ6OldlYk1lZGlhS2V5U3lzdGVtQ2xpZW50Ojpj
YW5jZWxNZWRpYUtleVN5c3RlbVJlcXVlc3QpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29y
ZVN1cHBvcnQvV2ViTWVkaWFLZXlTeXN0ZW1DbGllbnQuaDogQWRkZWQuCisgICAgICAgIChXZWJL
aXQ6OldlYk1lZGlhS2V5U3lzdGVtQ2xpZW50Ojp+V2ViTWVkaWFLZXlTeXN0ZW1DbGllbnQpOgor
ICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcDoKKyAgICAgICAgKFdlYktp
dDo6bV9saW1pdHNOYXZpZ2F0aW9uc1RvQXBwQm91bmREb21haW5zKToKKyAgICAgICAgKFdlYktp
dDo6V2ViUGFnZTo6bWVkaWFLZXlTeXN0ZW1XYXNHcmFudGVkKToKKyAgICAgICAgKFdlYktpdDo6
V2ViUGFnZTo6bWVkaWFLZXlTeXN0ZW1XYXNEZW5pZWQpOgorICAgICAgICAqIFdlYlByb2Nlc3Mv
V2ViUGFnZS9XZWJQYWdlLmg6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6Om1lZGlhS2V5U3lz
dGVtUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBh
Z2UvV2ViUGFnZS5tZXNzYWdlcy5pbjoKKwogMjAyMS0wMi0wMSAgQ2FybG9zIEdhcmNpYSBDYW1w
b3MgIDxjZ2FyY2lhQGlnYWxpYS5jb20+CiAKICAgICAgICAgW1NPVVBdIEFkZCBzdXBwb3J0IGZv
ciBkYXRhIFVSTHMgaW4gdGhlIG5ldHdvcmsgcHJvY2VzcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAppbmRl
eCBiYWE0NTNkNmNmMWMyMmU2NTkzMTE1NDRiMDI2Yjc4YWQ0YjU4ZDY0Li5iMmYxNjc5MDEyYzAz
YjgwZGZjNTRkMjQ3OGZmMGJlMmU4MjRlMGI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9D
TWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dApAQCAtMTQ5
Nyw2ICsxNDk3LDggQEAgaWYgKEVOQUJMRV9FTkNSWVBURURfTUVESUEpCiAgICAgICAgIE1vZHVs
ZXMvZW5jcnlwdGVkbWVkaWEvTWVkaWFLZXlTZXNzaW9uLmNwcAogICAgICAgICBNb2R1bGVzL2Vu
Y3J5cHRlZG1lZGlhL01lZGlhS2V5U3RhdHVzTWFwLmNwcAogICAgICAgICBNb2R1bGVzL2VuY3J5
cHRlZG1lZGlhL01lZGlhS2V5U3lzdGVtQWNjZXNzLmNwcAorICAgICAgICBNb2R1bGVzL2VuY3J5
cHRlZG1lZGlhL01lZGlhS2V5U3lzdGVtQ29udHJvbGxlci5jcHAKKyAgICAgICAgTW9kdWxlcy9l
bmNyeXB0ZWRtZWRpYS9NZWRpYUtleVN5c3RlbVJlcXVlc3QuY3BwCiAgICAgICAgIE1vZHVsZXMv
ZW5jcnlwdGVkbWVkaWEvTWVkaWFLZXlzLmNwcAogICAgICAgICBNb2R1bGVzL2VuY3J5cHRlZG1l
ZGlhL05hdmlnYXRvckVNRS5jcHAKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvSGVhZGVy
cy5jbWFrZSBiL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKaW5kZXggYWJhMTVlMGVkN2Ew
MTQ2NDU4MmYzZjkyODBlNjc4YjNkYjI4ZjYzMi4uOGMxYjZjMzI3ODJhOTFkOWM0MTRjNjEwYjQ5
ZTY3OWVlYjYwYmI2OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQor
KysgYi9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCkBAIC0yNCw2ICsyNCw5IEBAIHNldChX
ZWJDb3JlX1BSSVZBVEVfRlJBTUVXT1JLX0hFQURFUlMKICAgICBNb2R1bGVzL2NvbnRhY3QtcGlj
a2VyL0NvbnRhY3RzUmVxdWVzdERhdGEuaAogCiAgICAgTW9kdWxlcy9lbmNyeXB0ZWRtZWRpYS9D
RE1DbGllbnQuaAorICAgIE1vZHVsZXMvZW5jcnlwdGVkbWVkaWEvTWVkaWFLZXlTeXN0ZW1DbGll
bnQuaAorICAgIE1vZHVsZXMvZW5jcnlwdGVkbWVkaWEvTWVkaWFLZXlTeXN0ZW1Db250cm9sbGVy
LmgKKyAgICBNb2R1bGVzL2VuY3J5cHRlZG1lZGlhL01lZGlhS2V5U3lzdGVtUmVxdWVzdC5oCiAK
ICAgICBNb2R1bGVzL2ZldGNoL0ZldGNoQm9keUNvbnN1bWVyLmgKICAgICBNb2R1bGVzL2ZldGNo
L0ZldGNoQm9keVNvdXJjZS5oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2Vu
Y3J5cHRlZG1lZGlhL01lZGlhS2V5U3lzdGVtQ2xpZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2VuY3J5cHRlZG1lZGlhL01lZGlhS2V5U3lzdGVtQ2xpZW50LmgKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNTNk
MzBiMWQwZjg5ZTAwNTBhYWQwNDIyN2ExMGU4NDQwMjk4Mjk3YgotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZW5jcnlwdGVkbWVkaWEvTWVkaWFLZXlTeXN0ZW1DbGll
bnQuaApAQCAtMCwwICsxLDUyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIElnYWxpYSBT
LkwuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiAg
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
VEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQor
ICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBD
T05TRVFVRU5USUFMIERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTgorICogQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElT
CisgKiBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShFTkNSWVBURURfTUVE
SUEpCisKKyNpbmNsdWRlIDx3dGYvQ29tcGxldGlvbkhhbmRsZXIuaD4KKworbmFtZXNwYWNlIFdl
YkNvcmUgeworCitjbGFzcyBEb2N1bWVudDsKK2NsYXNzIFBhZ2U7CitjbGFzcyBNZWRpYUtleVN5
c3RlbVJlcXVlc3Q7CisKK2NsYXNzIE1lZGlhS2V5U3lzdGVtQ2xpZW50IHsKK3B1YmxpYzoKKyAg
ICB2aXJ0dWFsIHZvaWQgcGFnZURlc3Ryb3llZCgpID0gMDsKKworICAgIHZpcnR1YWwgdm9pZCBy
ZXF1ZXN0TWVkaWFLZXlTeXN0ZW0oTWVkaWFLZXlTeXN0ZW1SZXF1ZXN0JikgPSAwOworICAgIHZp
cnR1YWwgdm9pZCBjYW5jZWxNZWRpYUtleVN5c3RlbVJlcXVlc3QoTWVkaWFLZXlTeXN0ZW1SZXF1
ZXN0JikgPSAwOworCitwcm90ZWN0ZWQ6CisgICAgdmlydHVhbCB+TWVkaWFLZXlTeXN0ZW1DbGll
bnQoKSA9IGRlZmF1bHQ7Cit9OworCitXRUJDT1JFX0VYUE9SVCB2b2lkIHByb3ZpZGVNZWRpYUtl
eVN5c3RlbVRvKFBhZ2UqLCBNZWRpYUtleVN5c3RlbUNsaWVudCopOworCit9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoRU5DUllQVEVEX01FRElBKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9lbmNyeXB0ZWRtZWRpYS9NZWRpYUtleVN5c3RlbUNv
bnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9lbmNyeXB0ZWRtZWRpYS9NZWRp
YUtleVN5c3RlbUNvbnRyb2xsZXIuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjEyMmJhODI1YzJjNzM3NjBjOWFk
ODNiMDIzZGZmMGZhMDI3ZDRlNDkKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2VuY3J5cHRlZG1lZGlhL01lZGlhS2V5U3lzdGVtQ29udHJvbGxlci5jcHAKQEAgLTAs
MCArMSw2NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBJZ2FsaWEgUy5MLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFO
RCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVE
CisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKKyAqIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElB
TCBEQU1BR0VTCisgKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7CisgKiBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04KKyAqIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUworICogU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIk1lZGlhS2V5U3lzdGVtQ29udHJv
bGxlci5oIgorCisjaWYgRU5BQkxFKEVOQ1JZUFRFRF9NRURJQSkKKworI2luY2x1ZGUgIkRPTVdp
bmRvdy5oIgorI2luY2x1ZGUgIkRvY3VtZW50LmgiCisjaW5jbHVkZSAiRnJhbWUuaCIKKyNpbmNs
dWRlICJIVE1MSUZyYW1lRWxlbWVudC5oIgorI2luY2x1ZGUgIk1lZGlhS2V5U3lzdGVtUmVxdWVz
dC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NvbnN0IGNoYXIqIE1lZGlhS2V5U3lzdGVt
Q29udHJvbGxlcjo6c3VwcGxlbWVudE5hbWUoKQoreworICAgIHJldHVybiAiTWVkaWFLZXlTeXN0
ZW1Db250cm9sbGVyIjsKK30KKworTWVkaWFLZXlTeXN0ZW1Db250cm9sbGVyOjpNZWRpYUtleVN5
c3RlbUNvbnRyb2xsZXIoTWVkaWFLZXlTeXN0ZW1DbGllbnQqIGNsaWVudCkKKyAgICA6IG1fY2xp
ZW50KGNsaWVudCkKK3sKK30KKworTWVkaWFLZXlTeXN0ZW1Db250cm9sbGVyOjp+TWVkaWFLZXlT
eXN0ZW1Db250cm9sbGVyKCkKK3sKKyAgICBtX2NsaWVudC0+cGFnZURlc3Ryb3llZCgpOworfQor
Cit2b2lkIHByb3ZpZGVNZWRpYUtleVN5c3RlbVRvKFBhZ2UqIHBhZ2UsIE1lZGlhS2V5U3lzdGVt
Q2xpZW50KiBjbGllbnQpCit7CisgICAgTWVkaWFLZXlTeXN0ZW1Db250cm9sbGVyOjpwcm92aWRl
VG8ocGFnZSwgTWVkaWFLZXlTeXN0ZW1Db250cm9sbGVyOjpzdXBwbGVtZW50TmFtZSgpLCBtYWtl
VW5pcXVlPE1lZGlhS2V5U3lzdGVtQ29udHJvbGxlcj4oY2xpZW50KSk7Cit9CisKK3ZvaWQgTWVk
aWFLZXlTeXN0ZW1Db250cm9sbGVyOjpsb2dSZXF1ZXN0TWVkaWFLZXlTeXN0ZW1EZW5pYWwoRG9j
dW1lbnQmIGRvY3VtZW50KQoreworICAgIGlmIChhdXRvKiB3aW5kb3cgPSBkb2N1bWVudC5kb21X
aW5kb3coKSkKKyAgICAgICAgd2luZG93LT5wcmludEVycm9yTWVzc2FnZShtYWtlU3RyaW5nKCJO
b3QgYWxsb3dlZCB0byBhY2Nlc3MgTWVkaWFLZXlTeXN0ZW0uIikpOworfQorCit9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoTUVESUFfU1RSRUFNKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9lbmNyeXB0ZWRtZWRpYS9NZWRpYUtleVN5c3RlbUNv
bnRyb2xsZXIuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZW5jcnlwdGVkbWVkaWEvTWVkaWFL
ZXlTeXN0ZW1Db250cm9sbGVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTlhMjhhMmJiOTBlYjQ0MGM2Nzc4MDFl
Zjc5YWNkOGZmYjFhYTgwMwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvZW5jcnlwdGVkbWVkaWEvTWVkaWFLZXlTeXN0ZW1Db250cm9sbGVyLmgKQEAgLTAsMCArMSw3
MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBJZ2FsaWEgUy5MLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
IFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKKyAqIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1B
R0VTCisgKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7CisgKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04KKyAq
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUworICogU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwor
I3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoRU5DUllQVEVEX01FRElBKQorCisjaW5jbHVkZSAi
RmVhdHVyZVBvbGljeS5oIgorI2luY2x1ZGUgIk1lZGlhS2V5U3lzdGVtQ2xpZW50LmgiCisjaW5j
bHVkZSAiUGFnZS5oIgorI2luY2x1ZGUgPHd0Zi9Db21wbGV0aW9uSGFuZGxlci5oPgorCituYW1l
c3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIE1lZGlhS2V5U3lzdGVtUmVxdWVzdDsKKworY2xhc3Mg
TWVkaWFLZXlTeXN0ZW1Db250cm9sbGVyIDogcHVibGljIFN1cHBsZW1lbnQ8UGFnZT4geworICAg
IFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOworcHVibGljOgorICAgIGV4cGxpY2l0IE1lZGlhS2V5
U3lzdGVtQ29udHJvbGxlcihNZWRpYUtleVN5c3RlbUNsaWVudCopOworICAgIH5NZWRpYUtleVN5
c3RlbUNvbnRyb2xsZXIoKTsKKworICAgIE1lZGlhS2V5U3lzdGVtQ2xpZW50KiBjbGllbnQoKSBj
b25zdCB7IHJldHVybiBtX2NsaWVudDsgfQorCisgICAgdm9pZCByZXF1ZXN0TWVkaWFLZXlTeXN0
ZW0oTWVkaWFLZXlTeXN0ZW1SZXF1ZXN0Jik7CisgICAgdm9pZCBjYW5jZWxNZWRpYUtleVN5c3Rl
bVJlcXVlc3QoTWVkaWFLZXlTeXN0ZW1SZXF1ZXN0Jik7CisKKyAgICB2b2lkIGxvZ1JlcXVlc3RN
ZWRpYUtleVN5c3RlbURlbmlhbChEb2N1bWVudCYpOworCisgICAgV0VCQ09SRV9FWFBPUlQgc3Rh
dGljIGNvbnN0IGNoYXIqIHN1cHBsZW1lbnROYW1lKCk7CisgICAgc3RhdGljIE1lZGlhS2V5U3lz
dGVtQ29udHJvbGxlciogZnJvbShQYWdlKiBwYWdlKSB7IHJldHVybiBzdGF0aWNfY2FzdDxNZWRp
YUtleVN5c3RlbUNvbnRyb2xsZXIqPihTdXBwbGVtZW50PFBhZ2U+Ojpmcm9tKHBhZ2UsIHN1cHBs
ZW1lbnROYW1lKCkpKTsgfQorCitwcml2YXRlOgorICAgIE1lZGlhS2V5U3lzdGVtQ2xpZW50KiBt
X2NsaWVudDsKK307CisKK2lubGluZSB2b2lkIE1lZGlhS2V5U3lzdGVtQ29udHJvbGxlcjo6cmVx
dWVzdE1lZGlhS2V5U3lzdGVtKE1lZGlhS2V5U3lzdGVtUmVxdWVzdCYgcmVxdWVzdCkKK3sKKyAg
ICBtX2NsaWVudC0+cmVxdWVzdE1lZGlhS2V5U3lzdGVtKHJlcXVlc3QpOworfQorCitpbmxpbmUg
dm9pZCBNZWRpYUtleVN5c3RlbUNvbnRyb2xsZXI6OmNhbmNlbE1lZGlhS2V5U3lzdGVtUmVxdWVz
dChNZWRpYUtleVN5c3RlbVJlcXVlc3QmIHJlcXVlc3QpCit7CisgICAgbV9jbGllbnQtPmNhbmNl
bE1lZGlhS2V5U3lzdGVtUmVxdWVzdChyZXF1ZXN0KTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQorCisjZW5kaWYgLy8gRU5BQkxFKEVOQ1JZUFRFRF9NRURJQSkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvZW5jcnlwdGVkbWVkaWEvTWVkaWFLZXlTeXN0ZW1SZXF1ZXN0
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZW5jcnlwdGVkbWVkaWEvTWVkaWFLZXlTeXN0
ZW1SZXF1ZXN0LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43ZWY1M2FhNmFiNTUyZWRlNTRhNDZhMjJiNmRjMmMw
ZWFhMzM5M2FjCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9lbmNy
eXB0ZWRtZWRpYS9NZWRpYUtleVN5c3RlbVJlcXVlc3QuY3BwCkBAIC0wLDAgKzEsMTI3IEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDIxIElnYWxpYSBTLkwuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9T
RSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRT
IENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorICogRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyAq
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTgorICogQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTCisgKiBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVk
ZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiTWVkaWFLZXlTeXN0ZW1SZXF1ZXN0LmgiCisKKyNpZiBF
TkFCTEUoTUVESUFfU1RSRUFNKQorCisjaW5jbHVkZSAiRG9jdW1lbnQuaCIKKyNpbmNsdWRlICJG
cmFtZS5oIgorI2luY2x1ZGUgIkpTRE9NUHJvbWlzZURlZmVycmVkLmgiCisjaW5jbHVkZSAiSlNN
ZWRpYUtleVN5c3RlbUFjY2Vzcy5oIgorI2luY2x1ZGUgIkxvZ2dpbmcuaCIKKyNpbmNsdWRlICJN
ZWRpYUtleVN5c3RlbUNvbnRyb2xsZXIuaCIKKyNpbmNsdWRlICJQbGF0Zm9ybU1lZGlhU2Vzc2lv
bk1hbmFnZXIuaCIKKyNpbmNsdWRlICJTZXR0aW5ncy5oIgorI2luY2x1ZGUgIldpbmRvd0V2ZW50
TG9vcC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1JlZjxNZWRpYUtleVN5c3RlbVJlcXVl
c3Q+IE1lZGlhS2V5U3lzdGVtUmVxdWVzdDo6Y3JlYXRlKERvY3VtZW50JiBkb2N1bWVudCwgY29u
c3QgU3RyaW5nJiBrZXlTeXN0ZW0sIFJlZjxEZWZlcnJlZFByb21pc2U+JiYgcHJvbWlzZSkKK3sK
KyAgICBhdXRvIHJlc3VsdCA9IGFkb3B0UmVmKCpuZXcgTWVkaWFLZXlTeXN0ZW1SZXF1ZXN0KGRv
Y3VtZW50LCBrZXlTeXN0ZW0sIFdURk1vdmUocHJvbWlzZSkpKTsKKyAgICByZXN1bHQtPnN1c3Bl
bmRJZk5lZWRlZCgpOworICAgIHJldHVybiByZXN1bHQ7Cit9CisKK01lZGlhS2V5U3lzdGVtUmVx
dWVzdDo6TWVkaWFLZXlTeXN0ZW1SZXF1ZXN0KERvY3VtZW50JiBkb2N1bWVudCwgY29uc3QgU3Ry
aW5nJiBrZXlTeXN0ZW0sIFJlZjxEZWZlcnJlZFByb21pc2U+JiYgcHJvbWlzZSkKKyAgICA6IEFj
dGl2ZURPTU9iamVjdChkb2N1bWVudCkKKyAgICAsIG1fa2V5U3lzdGVtKGtleVN5c3RlbSkKKyAg
ICAsIG1fcHJvbWlzZShXVEZNb3ZlKHByb21pc2UpKQoreworfQorCitNZWRpYUtleVN5c3RlbVJl
cXVlc3Q6On5NZWRpYUtleVN5c3RlbVJlcXVlc3QoKQoreworICAgIGlmIChtX2FsbG93Q29tcGxl
dGlvbkhhbmRsZXIpCisgICAgICAgIG1fYWxsb3dDb21wbGV0aW9uSGFuZGxlcihXVEZNb3ZlKG1f
cHJvbWlzZSkpOworfQorCitTZWN1cml0eU9yaWdpbiogTWVkaWFLZXlTeXN0ZW1SZXF1ZXN0Ojp0
b3BMZXZlbERvY3VtZW50T3JpZ2luKCkgY29uc3QKK3sKKyAgICBpZiAoIW1fc2NyaXB0RXhlY3V0
aW9uQ29udGV4dCkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgcmV0dXJuICZtX3Njcmlw
dEV4ZWN1dGlvbkNvbnRleHQtPnRvcE9yaWdpbigpOworfQorCit2b2lkIE1lZGlhS2V5U3lzdGVt
UmVxdWVzdDo6c3RhcnQoKQoreworICAgIEFTU0VSVChtX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQp
OworICAgIGlmICghbV9zY3JpcHRFeGVjdXRpb25Db250ZXh0KSB7CisgICAgICAgIGRlbnkoKTsK
KyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGF1dG8mIGRvY3VtZW50ID0gZG93bmNhc3Q8
RG9jdW1lbnQ+KCptX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQpOworICAgIGF1dG8qIGNvbnRyb2xs
ZXIgPSBNZWRpYUtleVN5c3RlbUNvbnRyb2xsZXI6OmZyb20oZG9jdW1lbnQucGFnZSgpKTsKKyAg
ICBpZiAoIWNvbnRyb2xsZXIpIHsKKyAgICAgICAgZGVueSgpOworICAgICAgICByZXR1cm47Cisg
ICAgfQorCisgICAgY29udHJvbGxlci0+cmVxdWVzdE1lZGlhS2V5U3lzdGVtKCp0aGlzKTsKK30K
Kwordm9pZCBNZWRpYUtleVN5c3RlbVJlcXVlc3Q6OmFsbG93KENvbXBsZXRpb25IYW5kbGVyPHZv
aWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3sKKyAgICBxdWV1ZVRhc2tLZWVwaW5nT2JqZWN0
QWxpdmUoKnRoaXMsIFRhc2tTb3VyY2U6OlVzZXJJbnRlcmFjdGlvbiwgW3RoaXMsIGhhbmRsZXIg
PSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0oKSBtdXRhYmxlIHsKKyAgICAgICAgYXV0byBj
b21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUobV9hbGxvd0NvbXBsZXRpb25IYW5kbGVyKTsKKyAg
ICAgICAgY29tcGxldGlvbkhhbmRsZXIoV1RGTW92ZShtX3Byb21pc2UpKTsKKyAgICAgICAgaGFu
ZGxlcigpOworICAgIH0pOworfQorCit2b2lkIE1lZGlhS2V5U3lzdGVtUmVxdWVzdDo6ZGVueShj
b25zdCBTdHJpbmcmIG1lc3NhZ2UpCit7CisgICAgaWYgKCFtX3NjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQpCisgICAgICAgIHJldHVybjsKKworICAgIEV4Y2VwdGlvbkNvZGUgY29kZSA9IE5vdFN1cHBv
cnRlZEVycm9yOworICAgIGlmICghbWVzc2FnZS5pc0VtcHR5KCkpCisgICAgICAgIG1fcHJvbWlz
ZS0+cmVqZWN0KGNvZGUsIG1lc3NhZ2UpOworICAgIGVsc2UKKyAgICAgICAgbV9wcm9taXNlLT5y
ZWplY3QoY29kZSk7Cit9CisKK3ZvaWQgTWVkaWFLZXlTeXN0ZW1SZXF1ZXN0OjpzdG9wKCkKK3sK
KyAgICBhdXRvJiBkb2N1bWVudCA9IGRvd25jYXN0PERvY3VtZW50PigqbV9zY3JpcHRFeGVjdXRp
b25Db250ZXh0KTsKKyAgICBpZiAoYXV0byogY29udHJvbGxlciA9IE1lZGlhS2V5U3lzdGVtQ29u
dHJvbGxlcjo6ZnJvbShkb2N1bWVudC5wYWdlKCkpKQorICAgICAgICBjb250cm9sbGVyLT5jYW5j
ZWxNZWRpYUtleVN5c3RlbVJlcXVlc3QoKnRoaXMpOworfQorCitjb25zdCBjaGFyKiBNZWRpYUtl
eVN5c3RlbVJlcXVlc3Q6OmFjdGl2ZURPTU9iamVjdE5hbWUoKSBjb25zdAoreworICAgIHJldHVy
biAiTWVkaWFLZXlTeXN0ZW1SZXF1ZXN0IjsKK30KKworRG9jdW1lbnQqIE1lZGlhS2V5U3lzdGVt
UmVxdWVzdDo6ZG9jdW1lbnQoKSBjb25zdAoreworICAgIHJldHVybiBkb3duY2FzdDxEb2N1bWVu
dD4obV9zY3JpcHRFeGVjdXRpb25Db250ZXh0KTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQorCisjZW5kaWYgLy8gRU5BQkxFKEVOQ1JZUFRFRF9NRURJQSkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvZW5jcnlwdGVkbWVkaWEvTWVkaWFLZXlTeXN0ZW1SZXF1ZXN0Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2VuY3J5cHRlZG1lZGlhL01lZGlhS2V5U3lzdGVtUmVx
dWVzdC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjlmY2JlNGYxYmFiZGJjZGI3MmFkNTQ1NjY3M2ZhYmViNDYwZTJh
YjcKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2VuY3J5cHRlZG1l
ZGlhL01lZGlhS2V5U3lzdGVtUmVxdWVzdC5oCkBAIC0wLDAgKzEsODAgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMjEgSWdhbGlhIFMuTC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFT
IElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICog
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVU
T1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICogKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OCisgKiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAor
ICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFIE9GIFRISVMKKyAqIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisj
aWYgRU5BQkxFKEVOQ1JZUFRFRF9NRURJQSkKKworI2luY2x1ZGUgIkFjdGl2ZURPTU9iamVjdC5o
IgorI2luY2x1ZGUgIklETFR5cGVzLmgiCisjaW5jbHVkZSAiSlNET01Qcm9taXNlRGVmZXJyZWQu
aCIKKyNpbmNsdWRlIDx3dGYvQ29tcGxldGlvbkhhbmRsZXIuaD4KKyNpbmNsdWRlIDx3dGYvRm9y
d2FyZC5oPgorI2luY2x1ZGUgPHd0Zi9PYmplY3RJZGVudGlmaWVyLmg+CisjaW5jbHVkZSA8d3Rm
L1VuaXF1ZVJlZi5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFNlY3VyaXR5T3Jp
Z2luOworY2xhc3MgTWVkaWFLZXlTeXN0ZW07CisKK3RlbXBsYXRlIDx0eXBlbmFtZSBJRExUeXBl
PiBjbGFzcyBET01Qcm9taXNlRGVmZXJyZWQ7CisKK2VudW0gTWVkaWFLZXlTeXN0ZW1SZXF1ZXN0
SWRlbnRpZmllclR5cGUgeyB9OwordXNpbmcgTWVkaWFLZXlTeXN0ZW1SZXF1ZXN0SWRlbnRpZmll
ciA9IE9iamVjdElkZW50aWZpZXI8TWVkaWFLZXlTeXN0ZW1SZXF1ZXN0SWRlbnRpZmllclR5cGU+
OworCitjbGFzcyBNZWRpYUtleVN5c3RlbVJlcXVlc3QgOiBwdWJsaWMgUmVmQ291bnRlZDxNZWRp
YUtleVN5c3RlbVJlcXVlc3Q+LCBwdWJsaWMgQWN0aXZlRE9NT2JqZWN0IHsKK3B1YmxpYzoKKyAg
ICBzdGF0aWMgUmVmPE1lZGlhS2V5U3lzdGVtUmVxdWVzdD4gY3JlYXRlKERvY3VtZW50JiwgY29u
c3QgU3RyaW5nJiBrZXlTeXN0ZW0sIFJlZjxEZWZlcnJlZFByb21pc2U+JiYpOworICAgIHZpcnR1
YWwgfk1lZGlhS2V5U3lzdGVtUmVxdWVzdCgpOworCisgICAgdm9pZCBzZXRBbGxvd0NhbGxiYWNr
KENvbXBsZXRpb25IYW5kbGVyPHZvaWQoUmVmPERlZmVycmVkUHJvbWlzZT4mJik+JiYgY2FsbGJh
Y2spIHsgbV9hbGxvd0NvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjYWxsYmFjayk7IH0KKyAg
ICBNZWRpYUtleVN5c3RlbVJlcXVlc3RJZGVudGlmaWVyIGlkZW50aWZpZXIoKSBjb25zdCB7IHJl
dHVybiBtX2lkZW50aWZpZXI7IH0KKyAgICB2b2lkIHN0YXJ0KCk7CisKKyAgICBXRUJDT1JFX0VY
UE9SVCB2b2lkIGFsbG93KENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CisgICAgV0VCQ09S
RV9FWFBPUlQgdm9pZCBkZW55KGNvbnN0IFN0cmluZyYgZXJyb3JNZXNzYWdlID0gZW1wdHlTdHJp
bmcoKSk7CisKKyAgICBXRUJDT1JFX0VYUE9SVCBTZWN1cml0eU9yaWdpbiogdG9wTGV2ZWxEb2N1
bWVudE9yaWdpbigpIGNvbnN0OworICAgIFdFQkNPUkVfRVhQT1JUIERvY3VtZW50KiBkb2N1bWVu
dCgpIGNvbnN0OworCisgICAgY29uc3QgU3RyaW5nIGtleVN5c3RlbSgpIGNvbnN0IHsgcmV0dXJu
IG1fa2V5U3lzdGVtOyB9CisKK3ByaXZhdGU6CisgICAgTWVkaWFLZXlTeXN0ZW1SZXF1ZXN0KERv
Y3VtZW50JiwgY29uc3QgU3RyaW5nJiBrZXlTeXN0ZW0sIFJlZjxEZWZlcnJlZFByb21pc2U+JiYp
OworCisgICAgdm9pZCBzdG9wKCkgZmluYWw7CisgICAgY29uc3QgY2hhciogYWN0aXZlRE9NT2Jq
ZWN0TmFtZSgpIGNvbnN0IGZpbmFsOworCisgICAgTWVkaWFLZXlTeXN0ZW1SZXF1ZXN0SWRlbnRp
ZmllciBtX2lkZW50aWZpZXI7CisKKyAgICBTdHJpbmcgbV9rZXlTeXN0ZW07CisgICAgUmVmPERl
ZmVycmVkUHJvbWlzZT4gbV9wcm9taXNlOworCisgICAgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChS
ZWY8RGVmZXJyZWRQcm9taXNlPiYmKT4gbV9hbGxvd0NvbXBsZXRpb25IYW5kbGVyOworfTsKKwor
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKEVOQ1JZUFRFRF9NRURJ
QSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZW5jcnlwdGVkbWVkaWEvTmF2
aWdhdG9yRU1FLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZW5jcnlwdGVkbWVkaWEvTmF2
aWdhdG9yRU1FLmNwcAppbmRleCA2OTQ1NjRhZjNlNTkzYTY5NjE3NThmYWZkNzJhN2Q1MDQ3YTZh
YzM2Li5mYzYxMzc0ZTIxNjQxYzE2NzQxZDdlNTFkZDBlM2U3YTJkNTJiNjYyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2VuY3J5cHRlZG1lZGlhL05hdmlnYXRvckVNRS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9lbmNyeXB0ZWRtZWRpYS9OYXZpZ2F0b3JFTUUu
Y3BwCkBAIC0zNyw2ICszNyw3IEBACiAjaW5jbHVkZSAiSlNET01Qcm9taXNlRGVmZXJyZWQuaCIK
ICNpbmNsdWRlICJKU01lZGlhS2V5U3lzdGVtQWNjZXNzLmgiCiAjaW5jbHVkZSAiTG9nZ2luZy5o
IgorI2luY2x1ZGUgIk1lZGlhS2V5U3lzdGVtUmVxdWVzdC5oIgogI2luY2x1ZGUgPHd0Zi90ZXh0
L1N0cmluZ0J1aWxkZXIuaD4KIAogbmFtZXNwYWNlIFdURiB7CkBAIC05OSwyMyArMTAwLDI3IEBA
IHZvaWQgTmF2aWdhdG9yRU1FOjpyZXF1ZXN0TWVkaWFLZXlTeXN0ZW1BY2Nlc3MoTmF2aWdhdG9y
JiBuYXZpZ2F0b3IsIERvY3VtZW50JiBkCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBk
b2N1bWVudC5wb3N0VGFzayhba2V5U3lzdGVtLCBzdXBwb3J0ZWRDb25maWd1cmF0aW9ucyA9IFdU
Rk1vdmUoc3VwcG9ydGVkQ29uZmlndXJhdGlvbnMpLCBwcm9taXNlID0gV1RGTW92ZShwcm9taXNl
KSwgJmRvY3VtZW50LCBsb2dnZXIgPSBXVEZNb3ZlKGxvZ2dlciksIGlkZW50aWZpZXIgPSBXVEZN
b3ZlKGlkZW50aWZpZXIpXSAoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYpIG11dGFibGUgewotICAg
ICAgICAvLyAzLiBMZXQgZG9jdW1lbnQgYmUgdGhlIGNhbGxpbmcgY29udGV4dCdzIERvY3VtZW50
LgotICAgICAgICAvLyA0LiBMZXQgb3JpZ2luIGJlIHRoZSBvcmlnaW4gb2YgZG9jdW1lbnQuCi0g
ICAgICAgIC8vIDUuIExldCBwcm9taXNlIGJlIGEgbmV3IHByb21pc2UuCi0gICAgICAgIC8vIDYu
IFJ1biB0aGUgZm9sbG93aW5nIHN0ZXBzIGluIHBhcmFsbGVsOgotICAgICAgICAvLyA2LjEuIElm
IGtleVN5c3RlbSBpcyBub3Qgb25lIG9mIHRoZSBLZXkgU3lzdGVtcyBzdXBwb3J0ZWQgYnkgdGhl
IHVzZXIgYWdlbnQsIHJlamVjdCBwcm9taXNlIHdpdGggYSBOb3RTdXBwb3J0ZWRFcnJvci4KLSAg
ICAgICAgLy8gICAgICBTdHJpbmcgY29tcGFyaXNvbiBpcyBjYXNlLXNlbnNpdGl2ZS4KLSAgICAg
ICAgaWYgKCFDRE06OnN1cHBvcnRzS2V5U3lzdGVtKGtleVN5c3RlbSkpIHsKLSAgICAgICAgICAg
IGluZm9Mb2cobG9nZ2VyLCBpZGVudGlmaWVyLCAiUmVqZWN0ZWQ6IGtleVN5c3RlbSgiLCBrZXlT
eXN0ZW0sICIpIG5vdCBzdXBwb3J0ZWQiKTsKLSAgICAgICAgICAgIHByb21pc2UtPnJlamVjdChO
b3RTdXBwb3J0ZWRFcnJvcik7Ci0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIH0KLQotICAg
ICAgICAvLyA2LjIuIExldCBpbXBsZW1lbnRhdGlvbiBiZSB0aGUgaW1wbGVtZW50YXRpb24gb2Yg
a2V5U3lzdGVtLgotICAgICAgICBhdXRvIGltcGxlbWVudGF0aW9uID0gQ0RNOjpjcmVhdGUoZG9j
dW1lbnQsIGtleVN5c3RlbSk7Ci0gICAgICAgIHRyeU5leHRTdXBwb3J0ZWRDb25maWd1cmF0aW9u
KFdURk1vdmUoaW1wbGVtZW50YXRpb24pLCBXVEZNb3ZlKHN1cHBvcnRlZENvbmZpZ3VyYXRpb25z
KSwgV1RGTW92ZShwcm9taXNlKSwgV1RGTW92ZShsb2dnZXIpLCBXVEZNb3ZlKGlkZW50aWZpZXIp
KTsKKyAgICBhdXRvIHJlcXVlc3QgPSBNZWRpYUtleVN5c3RlbVJlcXVlc3Q6OmNyZWF0ZShkb2N1
bWVudCwga2V5U3lzdGVtLCBXVEZNb3ZlKHByb21pc2UpKTsKKyAgICByZXF1ZXN0LT5zZXRBbGxv
d0NhbGxiYWNrKFtrZXlTeXN0ZW0sIHN1cHBvcnRlZENvbmZpZ3VyYXRpb25zID0gV1RGTW92ZShz
dXBwb3J0ZWRDb25maWd1cmF0aW9ucyksICZkb2N1bWVudCwgbG9nZ2VyID0gV1RGTW92ZShsb2dn
ZXIpLCBpZGVudGlmaWVyID0gV1RGTW92ZShpZGVudGlmaWVyKV0oUmVmPERlZmVycmVkUHJvbWlz
ZT4mJiBwcm9taXNlKSBtdXRhYmxlIHsKKyAgICAgICAgZG9jdW1lbnQucG9zdFRhc2soW3Byb21p
c2UgPSBXVEZNb3ZlKHByb21pc2UpLCAmZG9jdW1lbnQsIGtleVN5c3RlbSwgbG9nZ2VyID0gV1RG
TW92ZShsb2dnZXIpLCBpZGVudGlmaWVyID0gV1RGTW92ZShpZGVudGlmaWVyKSwgc3VwcG9ydGVk
Q29uZmlndXJhdGlvbnMgPSBXVEZNb3ZlKHN1cHBvcnRlZENvbmZpZ3VyYXRpb25zKV0gKFNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQmKSBtdXRhYmxlIHsKKyAgICAgICAgICAgIC8vIDMuIExldCBkb2N1
bWVudCBiZSB0aGUgY2FsbGluZyBjb250ZXh0J3MgRG9jdW1lbnQuCisgICAgICAgICAgICAvLyA0
LiBMZXQgb3JpZ2luIGJlIHRoZSBvcmlnaW4gb2YgZG9jdW1lbnQuCisgICAgICAgICAgICAvLyA1
LiBMZXQgcHJvbWlzZSBiZSBhIG5ldyBwcm9taXNlLgorICAgICAgICAgICAgLy8gNi4gUnVuIHRo
ZSBmb2xsb3dpbmcgc3RlcHMgaW4gcGFyYWxsZWw6CisgICAgICAgICAgICAvLyA2LjEuIElmIGtl
eVN5c3RlbSBpcyBub3Qgb25lIG9mIHRoZSBLZXkgU3lzdGVtcyBzdXBwb3J0ZWQgYnkgdGhlIHVz
ZXIgYWdlbnQsIHJlamVjdCBwcm9taXNlIHdpdGggYSBOb3RTdXBwb3J0ZWRFcnJvci4KKyAgICAg
ICAgICAgIC8vICAgICAgU3RyaW5nIGNvbXBhcmlzb24gaXMgY2FzZS1zZW5zaXRpdmUuCisgICAg
ICAgICAgICBpZiAoIUNETTo6c3VwcG9ydHNLZXlTeXN0ZW0oa2V5U3lzdGVtKSkgeworICAgICAg
ICAgICAgICAgIGluZm9Mb2cobG9nZ2VyLCBpZGVudGlmaWVyLCAiUmVqZWN0ZWQ6IGtleVN5c3Rl
bSgiLCBrZXlTeXN0ZW0sICIpIG5vdCBzdXBwb3J0ZWQiKTsKKyAgICAgICAgICAgICAgICBwcm9t
aXNlLT5yZWplY3QoTm90U3VwcG9ydGVkRXJyb3IpOworICAgICAgICAgICAgICAgIHJldHVybjsK
KyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgLy8gNi4yLiBMZXQgaW1wbGVtZW50YXRpb24g
YmUgdGhlIGltcGxlbWVudGF0aW9uIG9mIGtleVN5c3RlbS4KKyAgICAgICAgICAgIGF1dG8gaW1w
bGVtZW50YXRpb24gPSBDRE06OmNyZWF0ZShkb2N1bWVudCwga2V5U3lzdGVtKTsKKyAgICAgICAg
ICAgIHRyeU5leHRTdXBwb3J0ZWRDb25maWd1cmF0aW9uKFdURk1vdmUoaW1wbGVtZW50YXRpb24p
LCBXVEZNb3ZlKHN1cHBvcnRlZENvbmZpZ3VyYXRpb25zKSwgV1RGTW92ZShwcm9taXNlKSwgV1RG
TW92ZShsb2dnZXIpLCBXVEZNb3ZlKGlkZW50aWZpZXIpKTsKKyAgICAgICAgfSk7CiAgICAgfSk7
CisgICAgcmVxdWVzdC0+c3RhcnQoKTsKIH0KIAogc3RhdGljIHZvaWQgdHJ5TmV4dFN1cHBvcnRl
ZENvbmZpZ3VyYXRpb24oUmVmUHRyPENETT4mJiBpbXBsZW1lbnRhdGlvbiwgVmVjdG9yPE1lZGlh
S2V5U3lzdGVtQ29uZmlndXJhdGlvbj4mJiBzdXBwb3J0ZWRDb25maWd1cmF0aW9ucywgUmVmUHRy
PERlZmVycmVkUHJvbWlzZT4mJiBwcm9taXNlLCBSZWY8TG9nZ2VyPiYmIGxvZ2dlciwgV1RGOjpM
b2dnZXI6OkxvZ1NpdGVJZGVudGlmaWVyJiYgaWRlbnRpZmllcikKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA1YzUwZWVlM2VjMzU0
MThkMmJjNDliZWY2MjYwOTY2ZTQ1NmY2MjhiLi44NTQxMzZhNThjMzE1ZDA1NmNmMDJhNjcyNDkz
M2Q5ZjA5ZjE2N2M0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCkBAIC0zMDQxLDYgKzMwNDEsMTEgQEAKIAkJOTlEMUIyRDMyM0FDMTQz
MTAwODExQ0YwIC8qIEluc3BlY3RvckRlYnVnZ2FibGVUeXBlLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5OUQxQjJEMTIzQUMxNDMwMDA4MTFDRjAgLyog
SW5zcGVjdG9yRGVidWdnYWJsZVR5cGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQ
cml2YXRlLCApOyB9OyB9OwogCQk5QTUyOEU4NDE3RDdGNTJGMDBBQTk1MTggLyogRmxvYXRpbmdP
YmplY3RzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5
QTUyOEU4MjE3RDdGNTJGMDBBQTk1MTggLyogRmxvYXRpbmdPYmplY3RzLmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJOUFCMUYzODAxOEUyNDg5QTAw
NTM0NzQzIC8qIENTU1RvTGVuZ3RoQ29udmVyc2lvbkRhdGEuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDlBQjFGMzdFMThFMjQ4OUEwMDUzNDc0MyAvKiBD
U1NUb0xlbmd0aENvbnZlcnNpb25EYXRhLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAo
UHJpdmF0ZSwgKTsgfTsgfTsKKwkJOUFDQzA3OTYyNUM3MjVFRTAwREM2Mzg2IC8qIE1lZGlhS2V5
U3lzdGVtUmVxdWVzdC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA5QUNDMDc5NDI1QzcyNUVEMDBEQzYzODYgLyogTWVkaWFLZXlTeXN0ZW1SZXF1ZXN0
LmNwcCAqLzsgfTsKKwkJOUFDQzA3OTgyNUM3MjY3NzAwREM2Mzg2IC8qIE1lZGlhS2V5U3lzdGVt
Q29udHJvbGxlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA5QUNDMDc5NzI1QzcyNjc2MDBEQzYzODYgLyogTWVkaWFLZXlTeXN0ZW1Db250cm9sbGVy
LmNwcCAqLzsgfTsKKwkJOUFDQzA3QTYyNUM4MTBERjAwREM2Mzg2IC8qIE1lZGlhS2V5U3lzdGVt
UmVxdWVzdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
OUFDQzA3QTUyNUM4MTBERjAwREM2Mzg2IC8qIE1lZGlhS2V5U3lzdGVtUmVxdWVzdC5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTlBQ0MwN0E4MjVD
ODExMEQwMERDNjM4NiAvKiBNZWRpYUtleVN5c3RlbUNsaWVudC5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOUFDQzA3QTcyNUM4MTEwRDAwREM2Mzg2IC8q
IE1lZGlhS2V5U3lzdGVtQ2xpZW50LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKKwkJOUFDQzA3QUYyNUM4MTQxRDAwREM2Mzg2IC8qIE1lZGlhS2V5U3lz
dGVtQ29udHJvbGxlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gOUFDQzA3QUUyNUM4MTQxQzAwREM2Mzg2IC8qIE1lZGlhS2V5U3lzdGVtQ29udHJvbGxl
ci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTlC
MDJFMEM4MjM1RUFEMkEwMDQwNDRCMiAvKiBUZXh0TWFuaXB1bGF0aW9uQ29udHJvbGxlci5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOUIwMkUwQzMyMzVF
NzZBQTAwNDA0NEIyIC8qIFRleHRNYW5pcHVsYXRpb25Db250cm9sbGVyLmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJOUIwQUJDQUUyMzZCQjQzMTAw
QjQ1MDg1IC8qIFRhc2tTb3VyY2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDlCMEFCQ0FDMjM2QkI0MEEwMEI0NTA4NSAvKiBUYXNrU291cmNlLmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJOUIxMjI5QzQy
M0ZFNEJEMjAwOENBNzUxIC8qIEF1ZGlvRGVzdGluYXRpb25Db2NvYS5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDEzMTUxODYyMzU3NzQ1RTAwMTE1RTZF
IC8qIEF1ZGlvRGVzdGluYXRpb25Db2NvYS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CkBAIC0xMjAwMCw2ICsxMjAwNSwxMSBAQAogCQk5QUM2RjAyNTIx
MTQ4RjU0MDBDQkRBMDYgLyogTWVkaWFFbmdpbmVDb25maWd1cmF0aW9uRmFjdG9yeS5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBNZWRpYUVuZ2luZUNvbmZpZ3VyYXRpb25GYWN0
b3J5Lmg7IHBhdGggPSBtZWRpYWNhcGFiaWxpdGllcy9NZWRpYUVuZ2luZUNvbmZpZ3VyYXRpb25G
YWN0b3J5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTlBQzZGMDJEMjExNDhGOUYw
MENCREEwNiAvKiBNZWRpYUVuZ2luZUNvbmZpZ3VyYXRpb25GYWN0b3J5TW9jay5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBNZWRpYUVuZ2luZUNvbmZpZ3VyYXRpb25G
YWN0b3J5TW9jay5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTlBQzZGMDJGMjEx
NDhGQTIwMENCREEwNiAvKiBNZWRpYUVuZ2luZUNvbmZpZ3VyYXRpb25GYWN0b3J5TW9jay5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBNZWRpYUVuZ2luZUNvbmZpZ3VyYXRpb25G
YWN0b3J5TW9jay5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5QUNDMDc5NDI1Qzcy
NUVEMDBEQzYzODYgLyogTWVkaWFLZXlTeXN0ZW1SZXF1ZXN0LmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE1lZGlhS2V5U3lzdGVtUmVxdWVzdC5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCTlBQ0MwNzk3MjVDNzI2NzYwMERDNjM4NiAvKiBNZWRpYUtl
eVN5c3RlbUNvbnRyb2xsZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gTWVkaWFLZXlTeXN0ZW1Db250cm9sbGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJOUFDQzA3QTUyNUM4MTBERjAwREM2Mzg2IC8qIE1lZGlhS2V5U3lzdGVtUmVxdWVzdC5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBNZWRpYUtleVN5c3RlbVJlcXVlc3Qu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOUFDQzA3QTcyNUM4MTEwRDAwREM2Mzg2
IC8qIE1lZGlhS2V5U3lzdGVtQ2xpZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IE1lZGlhS2V5U3lzdGVtQ2xpZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CTlBQ0MwN0FFMjVDODE0MUMwMERDNjM4NiAvKiBNZWRpYUtleVN5c3RlbUNvbnRyb2xsZXIuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTWVkaWFLZXlTeXN0ZW1Db250cm9sbGVy
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTlCMDJFMEMzMjM1RTc2QUEwMDQwNDRC
MiAvKiBUZXh0TWFuaXB1bGF0aW9uQ29udHJvbGxlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBUZXh0TWFu
aXB1bGF0aW9uQ29udHJvbGxlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5QjAy
RTBDNDIzNUU3NkFBMDA0MDQ0QjIgLyogVGV4dE1hbmlwdWxhdGlvbkNvbnRyb2xsZXIuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gVGV4dE1hbmlwdWxhdGlvbkNvbnRyb2xsZXIuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk5QjAzRDgwNjFCQjMxMTBEMDBCNzNGNjQgLyogUmVhZGFi
bGVCeXRlU3RyZWFtSW50ZXJuYWxzQnVpbHRpbnMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBuYW1lID0gUmVhZGFibGVCeXRlU3RyZWFtSW50ZXJuYWxzQnVpbHRpbnMuaDsgcGF0aCA9IERl
cml2ZWRTb3VyY2VzL1dlYkNvcmUvUmVhZGFibGVCeXRlU3RyZWFtSW50ZXJuYWxzQnVpbHRpbnMu
aDsgc291cmNlVHJlZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsgfTsKQEAgLTI4MDQ2LDEwICsyODA1
NiwxNSBAQAogCQkJCTJEOUJGNzNDMURCRkRDMEYwMDdBN0Q5OSAvKiBNZWRpYUtleVN5c3RlbUFj
Y2Vzcy5jcHAgKi8sCiAJCQkJMkQ5QkY3M0QxREJGREMwRjAwN0E3RDk5IC8qIE1lZGlhS2V5U3lz
dGVtQWNjZXNzLmggKi8sCiAJCQkJMkQ5QkY2RjkxREJGQjcxRjAwN0E3RDk5IC8qIE1lZGlhS2V5
U3lzdGVtQWNjZXNzLmlkbCAqLywKKwkJCQk5QUNDMDdBNzI1QzgxMTBEMDBEQzYzODYgLyogTWVk
aWFLZXlTeXN0ZW1DbGllbnQuaCAqLywKIAkJCQkyRDlCRjczRTFEQkZEQzBGMDA3QTdEOTkgLyog
TWVkaWFLZXlTeXN0ZW1Db25maWd1cmF0aW9uLmggKi8sCiAJCQkJMkQ5QkY2RkExREJGQjcxRjAw
N0E3RDk5IC8qIE1lZGlhS2V5U3lzdGVtQ29uZmlndXJhdGlvbi5pZGwgKi8sCisJCQkJOUFDQzA3
OTcyNUM3MjY3NjAwREM2Mzg2IC8qIE1lZGlhS2V5U3lzdGVtQ29udHJvbGxlci5jcHAgKi8sCisJ
CQkJOUFDQzA3QUUyNUM4MTQxQzAwREM2Mzg2IC8qIE1lZGlhS2V5U3lzdGVtQ29udHJvbGxlci5o
ICovLAogCQkJCTJEOUJGNzNGMURCRkRDMEYwMDdBN0Q5OSAvKiBNZWRpYUtleVN5c3RlbU1lZGlh
Q2FwYWJpbGl0eS5oICovLAogCQkJCTJEOUJGNkZCMURCRkI3MUYwMDdBN0Q5OSAvKiBNZWRpYUtl
eVN5c3RlbU1lZGlhQ2FwYWJpbGl0eS5pZGwgKi8sCisJCQkJOUFDQzA3OTQyNUM3MjVFRDAwREM2
Mzg2IC8qIE1lZGlhS2V5U3lzdGVtUmVxdWVzdC5jcHAgKi8sCisJCQkJOUFDQzA3QTUyNUM4MTBE
RjAwREM2Mzg2IC8qIE1lZGlhS2V5U3lzdGVtUmVxdWVzdC5oICovLAogCQkJCTJEOUJGNkZDMURC
RkI3MUYwMDdBN0Q5OSAvKiBOYXZpZ2F0b3IrRU1FLmlkbCAqLywKIAkJCQkyRDlCRjc0MDFEQkZE
QzBGMDA3QTdEOTkgLyogTmF2aWdhdG9yRU1FLmNwcCAqLywKIAkJCQkyRDlCRjc0MTFEQkZEQzBG
MDA3QTdEOTkgLyogTmF2aWdhdG9yRU1FLmggKi8sCkBAIC0zMzY5Nyw2ICszMzcxMiw5IEBACiAJ
CQkJQ0RGNEI3MUExRTAxRDNEMDAwRTIzNUEyIC8qIE1lZGlhS2V5U2Vzc2lvblR5cGUuaWRsIGlu
IEhlYWRlcnMgKi8sCiAJCQkJQ0RGNEI3MjgxRTAzQzU3MzAwRTIzNUEyIC8qIE1lZGlhS2V5c1Jl
cXVpcmVtZW50LmlkbCBpbiBIZWFkZXJzICovLAogCQkJCUNERjRCNzE4MUUwMUNCOTEwMEUyMzVB
MiAvKiBNZWRpYUtleXNSZXN0cmljdGlvbnMuaCBpbiBIZWFkZXJzICovLAorCQkJCTlBQ0MwN0E4
MjVDODExMEQwMERDNjM4NiAvKiBNZWRpYUtleVN5c3RlbUNsaWVudC5oIGluIEhlYWRlcnMgKi8s
CisJCQkJOUFDQzA3QUYyNUM4MTQxRDAwREM2Mzg2IC8qIE1lZGlhS2V5U3lzdGVtQ29udHJvbGxl
ci5oIGluIEhlYWRlcnMgKi8sCisJCQkJOUFDQzA3QTYyNUM4MTBERjAwREM2Mzg2IC8qIE1lZGlh
S2V5U3lzdGVtUmVxdWVzdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQThFQTgwMEUwQTE5NTE2RTAw
QThFRjVGIC8qIE1lZGlhTGlzdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNUVCQjg5MzExQzc3NzdG
RjAwQzY1RDQxIC8qIE1lZGlhUGF5bG9hZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMDdFM0RGRDEx
QTlFNzg2NTAwNzY0Q0E4IC8qIE1lZGlhUGxheWJhY2tUYXJnZXQuaCBpbiBIZWFkZXJzICovLApA
QCAtMzYwNTAsNiArMzYwNjgsOCBAQAogCQkJCTJEOUJGNzQ1MURCRkRDNDQwMDdBN0Q5OSAvKiBN
ZWRpYUtleVNlc3Npb24uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMkQ5QkY3NDQxREJGREM0MTAw
N0E3RDk5IC8qIE1lZGlhS2V5U3RhdHVzTWFwLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTJEOUJG
NzQzMURCRkRDM0UwMDdBN0Q5OSAvKiBNZWRpYUtleVN5c3RlbUFjY2Vzcy5jcHAgaW4gU291cmNl
cyAqLywKKwkJCQk5QUNDMDc5ODI1QzcyNjc3MDBEQzYzODYgLyogTWVkaWFLZXlTeXN0ZW1Db250
cm9sbGVyLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTlBQ0MwNzk2MjVDNzI1RUUwMERDNjM4NiAv
KiBNZWRpYUtleVN5c3RlbVJlcXVlc3QuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMDcxRTQ5NkUx
QUQ1QUEwRDAwOEE1MEI0IC8qIE1lZGlhUGxheWJhY2tUYXJnZXRDb2NvYS5tbSBpbiBTb3VyY2Vz
ICovLAogCQkJCTA3OEU0M0RFMUFCQjZGNkYwMDFDMkZBNiAvKiBNZWRpYVBsYXliYWNrVGFyZ2V0
UGlja2VyTWFjLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJMDcyQzhCMTExMzFDNTE4NjAwQTRGQ0U5
IC8qIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbi5jcHAgaW4gU291cmNlcyAqLywKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvV2ViS2l0L0NN
YWtlTGlzdHMudHh0CmluZGV4IGNiY2E4ZDMzODhjNTgyOWI3NDI3MjJlNzQ5OWY5MzY5ZmIzYzMw
ODUuLjQ2ZWMwYzU0Y2M0NGQxYjNiYmRjZTA5NjJmMjcxMzA1ODA1YTg3MjkgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYktpdC9DTWFrZUxp
c3RzLnR4dApAQCAtNzUsNiArNzUsNyBAQCBzZXQoV2ViS2l0X0lOQ0xVREVfRElSRUNUT1JJRVMK
ICAgICAiJHtXRUJLSVRfRElSfS9XZWJQcm9jZXNzL0NhY2hlIgogICAgICIke1dFQktJVF9ESVJ9
L1dlYlByb2Nlc3MvRGF0YWJhc2VzIgogICAgICIke1dFQktJVF9ESVJ9L1dlYlByb2Nlc3MvRGF0
YWJhc2VzL0luZGV4ZWREQiIKKyAgICAiJHtXRUJLSVRfRElSfS9XZWJQcm9jZXNzL0VuY3J5cHRl
ZE1lZGlhIgogICAgICIke1dFQktJVF9ESVJ9L1dlYlByb2Nlc3MvRmlsZUFQSSIKICAgICAiJHtX
RUJLSVRfRElSfS9XZWJQcm9jZXNzL0Z1bGxTY3JlZW4iCiAgICAgIiR7V0VCS0lUX0RJUn0vV2Vi
UHJvY2Vzcy9HYW1lcGFkIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9IZWFkZXJzLmNtYWtl
IGIvU291cmNlL1dlYktpdC9IZWFkZXJzLmNtYWtlCmluZGV4IDIxMzA0ZGEzMGQ3ODgyNTQzNjUy
MjdhYTZiMzZmMGU3NmY2OTBlZjQuLjM0NmM4YTYzYTdiN2FlNDk3YTFiZWUyNGQ3ZjgwOGIwZmE4
Y2U0YTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvSGVhZGVycy5jbWFrZQorKysgYi9Tb3Vy
Y2UvV2ViS2l0L0hlYWRlcnMuY21ha2UKQEAgLTYyLDYgKzYyLDcgQEAgc2V0KFdlYktpdF9QVUJM
SUNfRlJBTUVXT1JLX0hFQURFUlMKICAgICBVSVByb2Nlc3MvQVBJL0MvV0tJY29uRGF0YWJhc2Uu
aAogICAgIFVJUHJvY2Vzcy9BUEkvQy9XS0luc3BlY3Rvci5oCiAgICAgVUlQcm9jZXNzL0FQSS9D
L1dLTGF5b3V0TW9kZS5oCisgICAgVUlQcm9jZXNzL0FQSS9DL1dLTWVkaWFLZXlTeXN0ZW1QZXJt
aXNzaW9uQ2FsbGJhY2suaAogICAgIFVJUHJvY2Vzcy9BUEkvQy9XS01lc3NhZ2VMaXN0ZW5lci5o
CiAgICAgVUlQcm9jZXNzL0FQSS9DL1dLTW9ja0Rpc3BsYXkuaAogICAgIFVJUHJvY2Vzcy9BUEkv
Qy9XS01vY2tNZWRpYURldmljZS5oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1BsYXRmb3Jt
L0xvZ2dpbmcuaCBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vTG9nZ2luZy5oCmluZGV4IGY0OWYz
OGI2YTVmOWQzZDcwOTUyZDJlMTIxYzg5OTVkZWNlOThlYWEuLjA2NmYwNjVmZTNlM2FlYzRhMDc5
ODY4MTkzZGFlOGEwYjA3Nzc1YjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0v
TG9nZ2luZy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vTG9nZ2luZy5oCkBAIC01Miw2
ICs1Miw3IEBAIGV4dGVybiAiQyIgewogICAgIE0oQ29udGV4dE1lbnUpIFwKICAgICBNKERpc2tQ
ZXJzaXN0ZW5jeSkgXAogICAgIE0oRHJhZ0FuZERyb3ApIFwKKyAgICBNKEVNRSkgXAogICAgIE0o
RnVsbHNjcmVlbikgXAogICAgIE0oR2FtZXBhZCkgXAogICAgIE0oSVBDKSBcCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BUEkvQVBJT2JqZWN0LmggYi9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9BUEkvQVBJT2JqZWN0LmgKaW5kZXggMDU1NjkzNDNhMGRjM2FhZDZjMmQzMzQwM2U4ZTI5
YmE4NmZlNGNhYi4uNDZjNzczZWUzOGNkMzA2NzViNmU4YjE2MjVmOTc1MzA3OTNiMTZiYiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvQVBJL0FQSU9iamVjdC5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQvU2hhcmVkL0FQSS9BUElPYmplY3QuaApAQCAtMTg5LDYgKzE4OSw4IEBAIHB1Ymxp
YzoKICAgICAgICAgV2ViQXV0aGVudGljYXRpb25QYW5lbCwKICNlbmRpZgogCisgICAgICAgIE1l
ZGlhS2V5U3lzdGVtUGVybWlzc2lvbkNhbGxiYWNrLAorCiAgICAgICAgIC8vIEJ1bmRsZSB0eXBl
cwogICAgICAgICBCdW5kbGUsCiAgICAgICAgIEJ1bmRsZUJhY2tGb3J3YXJkTGlzdCwKQEAgLTQz
OCw2ICs0NDAsOCBAQCB0ZW1wbGF0ZTw+IHN0cnVjdCBFbnVtVHJhaXRzPEFQSTo6T2JqZWN0OjpU
eXBlPiB7CiAgICAgICAgIEFQSTo6T2JqZWN0OjpUeXBlOjpXZWJBdXRoZW50aWNhdGlvblBhbmVs
LAogI2VuZGlmCiAKKyAgICAgICAgQVBJOjpPYmplY3Q6OlR5cGU6Ok1lZGlhS2V5U3lzdGVtUGVy
bWlzc2lvbkNhbGxiYWNrLAorCiAgICAgICAgIC8vIEJ1bmRsZSB0eXBlcwogICAgICAgICBBUEk6
Ok9iamVjdDo6VHlwZTo6QnVuZGxlLAogICAgICAgICBBUEk6Ok9iamVjdDo6VHlwZTo6QnVuZGxl
QmFja0ZvcndhcmRMaXN0LApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvQVBJL2Mv
V0tCYXNlLmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BUEkvYy9XS0Jhc2UuaAppbmRleCA4NGVl
NmMyODhmNmQyZWJkNTFmYTczZWE3MjcwOGYzMjk0NmJkZDg1Li43YzhiZDIzOTI0YzRhYjcxMTU0
ZjVjYWM3ZTczY2M3M2QzOTQ1OGMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9B
UEkvYy9XS0Jhc2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BUEkvYy9XS0Jhc2UuaApA
QCAtMTQyLDYgKzE0Miw4IEBAIHR5cGVkZWYgY29uc3Qgc3RydWN0IE9wYXF1ZVdLV2Vic2l0ZURh
dGFTdG9yZSogV0tXZWJzaXRlRGF0YVN0b3JlUmVmOwogdHlwZWRlZiBjb25zdCBzdHJ1Y3QgT3Bh
cXVlV0tXZWJzaXRlUG9saWNpZXMqIFdLV2Vic2l0ZVBvbGljaWVzUmVmOwogdHlwZWRlZiBjb25z
dCBzdHJ1Y3QgT3BhcXVlV0tXaW5kb3dGZWF0dXJlcyogV0tXaW5kb3dGZWF0dXJlc1JlZjsKIHR5
cGVkZWYgY29uc3Qgc3RydWN0IE9wYXF1ZVdLU3BlZWNoUmVjb2duaXRpb25QZXJtaXNzaW9uQ2Fs
bGJhY2sqIFdLU3BlZWNoUmVjb2duaXRpb25QZXJtaXNzaW9uQ2FsbGJhY2tSZWY7Cit0eXBlZGVm
IGNvbnN0IHN0cnVjdCBPcGFxdWVXS01lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3QqIFdL
TWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdFJlZjsKK3R5cGVkZWYgY29uc3Qgc3RydWN0
IE9wYXF1ZVdLTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uQ2FsbGJhY2sqIFdLTWVkaWFLZXlTeXN0
ZW1QZXJtaXNzaW9uQ2FsbGJhY2tSZWY7CiAKIC8qIFdlYktpdDIgQnVuZGxlIHR5cGVzICovCiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU291cmNlcy50eHQgYi9Tb3VyY2UvV2ViS2l0L1Nv
dXJjZXMudHh0CmluZGV4IDdmNDA4YmM0NjEwYzEwNTQ5MWQ1YjA2NDFmOGI3MGYzYWY5MWIwNDMu
LjQzYWEyYjdkNTc2MmM1OGQ5NDdlMjFlZjRiYzcyNTA0NTk5NzFkMDEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvU291cmNlcy50eHQKKysrIGIvU291cmNlL1dlYktpdC9Tb3VyY2VzLnR4dApA
QCAtMjg1LDYgKzI4NSw4IEBAIFVJUHJvY2Vzcy9GcmFtZUxvYWRTdGF0ZS5jcHAKIFVJUHJvY2Vz
cy9HZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmNwcAogVUlQcm9jZXNz
L0dlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3RQcm94eS5jcHAKIFVJUHJvY2Vzcy9MZWdhY3lH
bG9iYWxTZXR0aW5ncy5jcHAKK1VJUHJvY2Vzcy9NZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1
ZXN0TWFuYWdlclByb3h5LmNwcAorVUlQcm9jZXNzL01lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJl
cXVlc3RQcm94eS5jcHAKIFVJUHJvY2Vzcy9QYWdlTG9hZFN0YXRlLmNwcAogVUlQcm9jZXNzL1By
b2Nlc3NBc3NlcnRpb24uY3BwCiBVSVByb2Nlc3MvUHJvY2Vzc1Rocm90dGxlci5jcHAKQEAgLTM5
MSw2ICszOTMsNyBAQCBVSVByb2Nlc3MvQVBJL0MvV0tIaXRUZXN0UmVzdWx0LmNwcAogVUlQcm9j
ZXNzL0FQSS9DL1dLSWNvbkRhdGFiYXNlLmNwcAogVUlQcm9jZXNzL0FQSS9DL1dLSW5zcGVjdG9y
LmNwcAogVUlQcm9jZXNzL0FQSS9DL1dLS2V5VmFsdWVTdG9yYWdlTWFuYWdlci5jcHAKK1VJUHJv
Y2Vzcy9BUEkvQy9XS01lZGlhS2V5U3lzdGVtUGVybWlzc2lvbkNhbGxiYWNrLmNwcAogVUlQcm9j
ZXNzL0FQSS9DL1dLTWVzc2FnZUxpc3RlbmVyLmNwcAogVUlQcm9jZXNzL0FQSS9DL1dLTW9ja0Rp
c3BsYXkuY3BwCiBVSVByb2Nlc3MvQVBJL0MvV0tNb2NrTWVkaWFEZXZpY2UuY3BwCkBAIC01MTEs
NiArNTE0LDggQEAgV2ViUHJvY2Vzcy9EYXRhYmFzZXMvV2ViRGF0YWJhc2VQcm92aWRlci5jcHAK
IAogV2ViUHJvY2Vzcy9EYXRhYmFzZXMvSW5kZXhlZERCL1dlYklEQkNvbm5lY3Rpb25Ub1NlcnZl
ci5jcHAKIAorV2ViUHJvY2Vzcy9FbmNyeXB0ZWRNZWRpYS9NZWRpYUtleVN5c3RlbVBlcm1pc3Np
b25SZXF1ZXN0TWFuYWdlci5jcHAKKwogV2ViUHJvY2Vzcy9GaWxlQVBJL0Jsb2JSZWdpc3RyeVBy
b3h5LmNwcAogCiBXZWJQcm9jZXNzL0Z1bGxTY3JlZW4vV2ViRnVsbFNjcmVlbk1hbmFnZXIuY3Bw
CkBAIC02NjUsNiArNjcwLDcgQEAgV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJEcmFnQ2xp
ZW50LmNwcAogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuY3BwCiBX
ZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcAogV2ViUHJv
Y2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJHZW9sb2NhdGlvbkNsaWVudC5jcHAKK1dlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvV2ViTWVkaWFLZXlTeXN0ZW1DbGllbnQuY3BwCiBXZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L1dlYk1lc3NhZ2VQb3J0Q2hhbm5lbFByb3ZpZGVyLmNwcAogV2ViUHJvY2Vz
cy9XZWJDb3JlU3VwcG9ydC9XZWJOb3RpZmljYXRpb25DbGllbnQuY3BwCiBXZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L1dlYlBlcmZvcm1hbmNlTG9nZ2luZ0NsaWVudC5jcHAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElVSUNsaWVudC5oIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL0FQSVVJQ2xpZW50LmgKaW5kZXggYjE3YjVhMTk2MmJjOWZkZTZiZjhm
MDU1ZDRiNGFlOWUxN2ViODRkZS4uMTYzNjdlNmNhYzgyNWFhOWM3NGZiNGM0ODQzZGQyZjFmZjFk
YWQzOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSVVJQ2xpZW50
LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSVVJQ2xpZW50LmgKQEAgLTIw
NSw2ICsyMDUsOSBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGRpZERpc2FibGVJbnNwZWN0
b3JCcm93c2VyRG9tYWluKFdlYktpdDo6V2ViUGFnZVByb3h5JikgeyB9CiAKICAgICB2aXJ0dWFs
IHZvaWQgZGVjaWRlUG9saWN5Rm9yU3BlZWNoUmVjb2duaXRpb25QZXJtaXNzaW9uUmVxdWVzdChX
ZWJLaXQ6OldlYlBhZ2VQcm94eSYgcGFnZSwgQVBJOjpTZWN1cml0eU9yaWdpbiYgb3JpZ2luLCBD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmIGNvbXBsZXRpb25IYW5kbGVyKSB7IHBhZ2Uu
cmVxdWVzdFNwZWVjaFJlY29nbml0aW9uUGVybWlzc2lvbkJ5RGVmYXVsdEFjdGlvbihvcmlnaW4u
c2VjdXJpdHlPcmlnaW4oKSwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOyB9CisKKyAgICB2
aXJ0dWFsIHZvaWQgZGVjaWRlUG9saWN5Rm9yTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVz
dChXZWJLaXQ6OldlYlBhZ2VQcm94eSYgcGFnZSwgQVBJOjpTZWN1cml0eU9yaWdpbiYgb3JpZ2lu
LCBjb25zdCBXVEY6OlN0cmluZyYga2V5U3lzdGVtLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJv
b2wpPiYmIGNvbXBsZXRpb25IYW5kbGVyKSB7IHBhZ2UucmVxdWVzdE1lZGlhS2V5U3lzdGVtUGVy
bWlzc2lvbkJ5RGVmYXVsdEFjdGlvbihvcmlnaW4uc2VjdXJpdHlPcmlnaW4oKSwgV1RGTW92ZShj
b21wbGV0aW9uSGFuZGxlcikpOyB9CisKIH07CiAKIH0gLy8gbmFtZXNwYWNlIEFQSQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tBUElDYXN0LmggYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS0FQSUNhc3QuaAppbmRleCBjYzljZjU5NTdlYTMwZDZh
Y2YwNDY4ZGU3MDE3OThhNmY0MTgxMTRhLi5jOGExODk1YTZkMGRlNzA5ZjlhZTM5OGJlNDViZWE2
NmI5ZWJmYTBkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS0FQ
SUNhc3QuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS0FQSUNhc3QuaApA
QCAtNzgsNiArNzgsNyBAQCBjbGFzcyBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZVByb3h5OwogY2xh
c3MgQXV0aGVudGljYXRpb25EZWNpc2lvbkxpc3RlbmVyOwogY2xhc3MgRG93bmxvYWRQcm94eTsK
IGNsYXNzIEdlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3Q7CitjbGFzcyBNZWRpYUtleVN5c3Rl
bVBlcm1pc3Npb25DYWxsYmFjazsKIGNsYXNzIE5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0
OwogY2xhc3MgU3BlZWNoUmVjb2duaXRpb25QZXJtaXNzaW9uQ2FsbGJhY2s7CiBjbGFzcyBVc2Vy
TWVkaWFQZXJtaXNzaW9uQ2hlY2tQcm94eTsKQEAgLTEzNSw2ICsxMzYsNyBAQCBXS19BRERfQVBJ
X01BUFBJTkcoV0tIVFRQQ29va2llU3RvcmVSZWYsIEFQSTo6SFRUUENvb2tpZVN0b3JlKQogV0tf
QUREX0FQSV9NQVBQSU5HKFdLSGl0VGVzdFJlc3VsdFJlZiwgQVBJOjpIaXRUZXN0UmVzdWx0KQog
V0tfQUREX0FQSV9NQVBQSU5HKFdLSWNvbkRhdGFiYXNlUmVmLCBXZWJJY29uRGF0YWJhc2UpCiBX
S19BRERfQVBJX01BUFBJTkcoV0tJbnNwZWN0b3JSZWYsIFdlYkluc3BlY3RvclByb3h5KQorV0tf
QUREX0FQSV9NQVBQSU5HKFdLTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uQ2FsbGJhY2tSZWYsIE1l
ZGlhS2V5U3lzdGVtUGVybWlzc2lvbkNhbGxiYWNrKQogV0tfQUREX0FQSV9NQVBQSU5HKFdLTWVz
c2FnZUxpc3RlbmVyUmVmLCBBUEk6Ok1lc3NhZ2VMaXN0ZW5lcikKIFdLX0FERF9BUElfTUFQUElO
RyhXS05hdmlnYXRpb25BY3Rpb25SZWYsIEFQSTo6TmF2aWdhdGlvbkFjdGlvbikKIFdLX0FERF9B
UElfTUFQUElORyhXS05hdmlnYXRpb25EYXRhUmVmLCBBUEk6Ok5hdmlnYXRpb25EYXRhKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tNZWRpYUtleVN5c3RlbVBl
cm1pc3Npb25DYWxsYmFjay5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS01l
ZGlhS2V5U3lzdGVtUGVybWlzc2lvbkNhbGxiYWNrLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hYWE3MzI0YmJj
MmFiMzcyNTdkYTgzYWJiYzM0MDcxNGJhN2UwNTMwCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25DYWxsYmFj
ay5jcHAKQEAgLTAsMCArMSw0MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBJZ2FsaWEg
Uy5MLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV0tNZWRpYUtl
eVN5c3RlbVBlcm1pc3Npb25DYWxsYmFjay5oIgorCisjaW5jbHVkZSAiTWVkaWFLZXlTeXN0ZW1Q
ZXJtaXNzaW9uUmVxdWVzdC5oIgorI2luY2x1ZGUgIldLQVBJQ2FzdC5oIgorCit1c2luZyBuYW1l
c3BhY2UgV2ViS2l0OworCitXS1R5cGVJRCBXS01lZGlhS2V5U3lzdGVtUGVybWlzc2lvbkNhbGxi
YWNrR2V0VHlwZUlEKCkKK3sKKyAgICByZXR1cm4gdG9BUEkoTWVkaWFLZXlTeXN0ZW1QZXJtaXNz
aW9uQ2FsbGJhY2s6OkFQSVR5cGUpOworfQorCit2b2lkIFdLTWVkaWFLZXlTeXN0ZW1QZXJtaXNz
aW9uQ2FsbGJhY2tDb21wbGV0ZShXS01lZGlhS2V5U3lzdGVtUGVybWlzc2lvbkNhbGxiYWNrUmVm
IHBlcm1pc3Npb25DYWxsYmFjaywgYm9vbCBncmFudGVkKQoreworICAgIHJldHVybiB0b0ltcGwo
cGVybWlzc2lvbkNhbGxiYWNrKS0+Y29tcGxldGUoZ3JhbnRlZCk7Cit9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS01lZGlhS2V5U3lzdGVtUGVybWlzc2lvbkNh
bGxiYWNrLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS01lZGlhS2V5U3lzdGVt
UGVybWlzc2lvbkNhbGxiYWNrLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjVkMzY4MzdlZmE2OWE0YjA2ZGYxMzIx
MjJmYWY2YTBhMWY1MjA3OAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9DL1dLTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uQ2FsbGJhY2suaApAQCAtMCwwICsx
LDQwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIElnYWxpYSBTLkwuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09O
VFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
IElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICog
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisK
KyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSA8V2ViS2l0L1dLQmFzZS5oPgorCisjaWZkZWYgX19j
cGx1c3BsdXMKK2V4dGVybiAiQyIgeworI2VuZGlmCisKK1dLX0VYUE9SVCBXS1R5cGVJRCBXS01l
ZGlhS2V5U3lzdGVtUGVybWlzc2lvbkNhbGxiYWNrR2V0VHlwZUlEKHZvaWQpOworCitXS19FWFBP
UlQgdm9pZCBXS01lZGlhS2V5U3lzdGVtUGVybWlzc2lvbkNhbGxiYWNrQ29tcGxldGUoV0tNZWRp
YUtleVN5c3RlbVBlcm1pc3Npb25DYWxsYmFja1JlZiBwZXJtaXNzaW9uQ2FsbGJhY2ssIGJvb2wg
Z3JhbnRlZCk7CisKKyNpZmRlZiBfX2NwbHVzcGx1cworfQorI2VuZGlmCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuY3BwIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL0MvV0tQYWdlLmNwcAppbmRleCA3NDQzZjcwZjk1NzU4MzZkODQzZGE1NGM4
NDgxNTA5YzlkOGM0ZGVjLi5jMzllNzJmMDcxMmNiYWMwYmViYWZmMGIwMmU4NDU3M2FjMTZmOTE0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5jcHAKQEAgLTU4LDYgKzU4
LDcgQEAKICNpbmNsdWRlICJEb3dubG9hZFByb3h5LmgiCiAjaW5jbHVkZSAiTGVnYWN5U2Vzc2lv
blN0YXRlQ29kaW5nLmgiCiAjaW5jbHVkZSAiTG9nZ2luZy5oIgorI2luY2x1ZGUgIk1lZGlhS2V5
U3lzdGVtUGVybWlzc2lvblJlcXVlc3QuaCIKICNpbmNsdWRlICJOYXRpdmVXZWJLZXlib2FyZEV2
ZW50LmgiCiAjaW5jbHVkZSAiTmF0aXZlV2ViV2hlZWxFdmVudC5oIgogI2luY2x1ZGUgIk5hdmln
YXRpb25BY3Rpb25EYXRhLmgiCkBAIC0xMTcsNyArMTE4LDcgQEAgdGVtcGxhdGU8PiBzdHJ1Y3Qg
Q2xpZW50VHJhaXRzPFdLUGFnZVBvbGljeUNsaWVudEJhc2U+IHsKIH07CiAKIHRlbXBsYXRlPD4g
c3RydWN0IENsaWVudFRyYWl0czxXS1BhZ2VVSUNsaWVudEJhc2U+IHsKLSAgICB0eXBlZGVmIHN0
ZDo6dHVwbGU8V0tQYWdlVUlDbGllbnRWMCwgV0tQYWdlVUlDbGllbnRWMSwgV0tQYWdlVUlDbGll
bnRWMiwgV0tQYWdlVUlDbGllbnRWMywgV0tQYWdlVUlDbGllbnRWNCwgV0tQYWdlVUlDbGllbnRW
NSwgV0tQYWdlVUlDbGllbnRWNiwgV0tQYWdlVUlDbGllbnRWNywgV0tQYWdlVUlDbGllbnRWOCwg
V0tQYWdlVUlDbGllbnRWOSwgV0tQYWdlVUlDbGllbnRWMTAsIFdLUGFnZVVJQ2xpZW50VjExLCBX
S1BhZ2VVSUNsaWVudFYxMiwgV0tQYWdlVUlDbGllbnRWMTMsIFdLUGFnZVVJQ2xpZW50VjE0LCBX
S1BhZ2VVSUNsaWVudFYxNT4gVmVyc2lvbnM7CisgICAgdHlwZWRlZiBzdGQ6OnR1cGxlPFdLUGFn
ZVVJQ2xpZW50VjAsIFdLUGFnZVVJQ2xpZW50VjEsIFdLUGFnZVVJQ2xpZW50VjIsIFdLUGFnZVVJ
Q2xpZW50VjMsIFdLUGFnZVVJQ2xpZW50VjQsIFdLUGFnZVVJQ2xpZW50VjUsIFdLUGFnZVVJQ2xp
ZW50VjYsIFdLUGFnZVVJQ2xpZW50VjcsIFdLUGFnZVVJQ2xpZW50VjgsIFdLUGFnZVVJQ2xpZW50
VjksIFdLUGFnZVVJQ2xpZW50VjEwLCBXS1BhZ2VVSUNsaWVudFYxMSwgV0tQYWdlVUlDbGllbnRW
MTIsIFdLUGFnZVVJQ2xpZW50VjEzLCBXS1BhZ2VVSUNsaWVudFYxNCwgV0tQYWdlVUlDbGllbnRW
MTUsIFdLUGFnZVVJQ2xpZW50VjE2PiBWZXJzaW9uczsKIH07CiAKICNpZiBFTkFCTEUoQ09OVEVY
VF9NRU5VUykKQEAgLTIxMTksNiArMjEyMCwxNiBAQCB2b2lkIFdLUGFnZVNldFBhZ2VVSUNsaWVu
dChXS1BhZ2VSZWYgcGFnZVJlZiwgY29uc3QgV0tQYWdlVUlDbGllbnRCYXNlKiB3a0NsaWVudAog
CiAgICAgICAgICAgICBtX2NsaWVudC5kZWNpZGVQb2xpY3lGb3JTcGVlY2hSZWNvZ25pdGlvblBl
cm1pc3Npb25SZXF1ZXN0KHRvQVBJKCZwYWdlKSwgdG9BUEkoJm9yaWdpbiksIHRvQVBJKFNwZWVj
aFJlY29nbml0aW9uUGVybWlzc2lvbkNhbGxiYWNrOjpjcmVhdGUoV1RGTW92ZShjb21wbGV0aW9u
SGFuZGxlcikpLnB0cigpKSk7CiAgICAgICAgIH0KKworICAgICAgICB2b2lkIGRlY2lkZVBvbGlj
eUZvck1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3QoV2ViUGFnZVByb3h5JiBwYWdlLCBB
UEk6OlNlY3VyaXR5T3JpZ2luJiBvcmlnaW4sIGNvbnN0IFN0cmluZyYga2V5U3lzdGVtLCBDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmIGNvbXBsZXRpb25IYW5kbGVyKSBmaW5hbAorICAg
ICAgICB7CisgICAgICAgICAgICBpZiAoIW1fY2xpZW50LmRlY2lkZVBvbGljeUZvck1lZGlhS2V5
U3lzdGVtUGVybWlzc2lvblJlcXVlc3QpIHsKKyAgICAgICAgICAgICAgICBjb21wbGV0aW9uSGFu
ZGxlcihmYWxzZSk7CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQorCisg
ICAgICAgICAgICBtX2NsaWVudC5kZWNpZGVQb2xpY3lGb3JNZWRpYUtleVN5c3RlbVBlcm1pc3Np
b25SZXF1ZXN0KHRvQVBJKCZwYWdlKSwgdG9BUEkoJm9yaWdpbiksIHRvQVBJKEFQSTo6U3RyaW5n
OjpjcmVhdGUoa2V5U3lzdGVtKS5wdHIoKSksIHRvQVBJKE1lZGlhS2V5U3lzdGVtUGVybWlzc2lv
bkNhbGxiYWNrOjpjcmVhdGUoV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpLnB0cigpKSk7Cisg
ICAgICAgIH0KICAgICB9OwogCiAgICAgdG9JbXBsKHBhZ2VSZWYpLT5zZXRVSUNsaWVudChtYWtl
VW5pcXVlPFVJQ2xpZW50Pih3a0NsaWVudCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL0MvV0tQYWdlVUlDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9DL1dLUGFnZVVJQ2xpZW50LmgKaW5kZXggNjM2MzU1NTY0ZDAwYjExMjJhODdlMjI5YTMw
Yjk0ZDdlOTllNGVmOS4uM2QzMTViZTYxMzQ4ZGQ3ZDI0NjdiYWE5NGRlYTRhZTcxMWMyNzgwMyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlVUlDbGllbnQu
aAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2VVSUNsaWVudC5oCkBA
IC0xMzgsOCArMTM4LDEwIEBAIHR5cGVkZWYgYm9vbCAoKldLUGFnZVNob3VsZEFsbG93RGV2aWNl
T3JpZW50YXRpb25BbmRNb3Rpb25BY2Nlc3NDYWxsYmFjaykoV0tQYWdlCiB0eXBlZGVmIHZvaWQg
KCpXS1BhZ2VSdW5XZWJBdXRoZW50aWNhdGlvblBhbmVsQ2FsbGJhY2spKCk7CiB0eXBlZGVmIHZv
aWQgKCpXS1BhZ2VEZWNpZGVQb2xpY3lGb3JTcGVlY2hSZWNvZ25pdGlvblBlcm1pc3Npb25SZXF1
ZXN0Q2FsbGJhY2spKFdLUGFnZVJlZiBwYWdlLCBXS1NlY3VyaXR5T3JpZ2luUmVmIHRvcE9yaWdp
biwgV0tTcGVlY2hSZWNvZ25pdGlvblBlcm1pc3Npb25DYWxsYmFja1JlZiBjYWxsYmFjayk7CiAK
K3R5cGVkZWYgdm9pZCAoKldLUGFnZURlY2lkZVBvbGljeUZvck1lZGlhS2V5U3lzdGVtUGVybWlz
c2lvblJlcXVlc3RDYWxsYmFjaykoV0tQYWdlUmVmIHBhZ2UsIFdLU2VjdXJpdHlPcmlnaW5SZWYg
dG9wT3JpZ2luLCBXS1N0cmluZ1JlZiBrZXlTeXN0ZW0sIFdLTWVkaWFLZXlTeXN0ZW1QZXJtaXNz
aW9uQ2FsbGJhY2tSZWYgY2FsbGJhY2spOworCiAvLyBEZXByZWNhdGVkCi10eXBlZGVmIFdLUGFn
ZVJlZiAoKldLUGFnZUNyZWF0ZU5ld1BhZ2VDYWxsYmFja19kZXByZWNhdGVkRm9yVXNlV2l0aFYw
KShXS1BhZ2VSZWYgcGFnZSwgV0tEaWN0aW9uYXJ5UmVmIGZlYXR1cmVzLCBXS0V2ZW50TW9kaWZp
ZXJzIG1vZGlmaWVycywgV0tFdmVudE1vdXNlQnV0dG9uIG1vdXNlQnV0dG9uLCBjb25zdCB2b2lk
ICpjbGllbnRJbmZvKTsKK3R5cGVkZWYgV0tQYWdlUmVmICgqV0tQYWdlQ3JlYXRlTmV3UGFnZUNh
bGxiYWNrX2RlcHJlY2F0ZWRGb3JVc2VXaXRoVjApKFdLUGFnZVJlZiBwYWdlLCBXS0RpY3Rpb25h
cnlSZWYgZmVhdHVyZXMsIFdLRXZlbnRNb2RpZmllcnMgbW9kaWZpZXJzLCBXS0V2ZW50TW91c2VC
dXR0b24gbW91c2VCdXR0b24sIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pOwogdHlwZWRlZiB2b2lk
ICAgICAgKCpXS1BhZ2VNb3VzZURpZE1vdmVPdmVyRWxlbWVudENhbGxiYWNrX2RlcHJlY2F0ZWRG
b3JVc2VXaXRoVjApKFdLUGFnZVJlZiBwYWdlLCBXS0V2ZW50TW9kaWZpZXJzIG1vZGlmaWVycywg
V0tUeXBlUmVmIHVzZXJEYXRhLCBjb25zdCB2b2lkICpjbGllbnRJbmZvKTsKIHR5cGVkZWYgdm9p
ZCAoKldLUGFnZU1pc3NpbmdQbHVnaW5CdXR0b25DbGlja2VkQ2FsbGJhY2tfZGVwcmVjYXRlZEZv
clVzZVdpdGhWMCkoV0tQYWdlUmVmIHBhZ2UsIFdLU3RyaW5nUmVmIG1pbWVUeXBlLCBXS1N0cmlu
Z1JlZiB1cmwsIFdLU3RyaW5nUmVmIHBsdWdpbnNQYWdlVVJMLCBjb25zdCB2b2lkKiBjbGllbnRJ
bmZvKTsKIHR5cGVkZWYgdm9pZCAoKldLUGFnZVVuYXZhaWxhYmxlUGx1Z2luQnV0dG9uQ2xpY2tl
ZENhbGxiYWNrX2RlcHJlY2F0ZWRGb3JVc2VXaXRoVjEpKFdLUGFnZVJlZiBwYWdlLCBXS1BsdWdp
blVuYXZhaWxhYmlsaXR5UmVhc29uIHBsdWdpblVuYXZhaWxhYmlsaXR5UmVhc29uLCBXS1N0cmlu
Z1JlZiBtaW1lVHlwZSwgV0tTdHJpbmdSZWYgdXJsLCBXS1N0cmluZ1JlZiBwbHVnaW5zUGFnZVVS
TCwgY29uc3Qgdm9pZCogY2xpZW50SW5mbyk7CkBAIC0xNDY1LDYgKzE0NjcsMTIxIEBAIHR5cGVk
ZWYgc3RydWN0IFdLUGFnZVVJQ2xpZW50VjE1IHsKICAgICAKIH0gV0tQYWdlVUlDbGllbnRWMTU7
CiAKK3R5cGVkZWYgc3RydWN0IFdLUGFnZVVJQ2xpZW50VjE2IHsKKyAgICBXS1BhZ2VVSUNsaWVu
dEJhc2UgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJh
c2U7CisKKyAgICAvLyBWZXJzaW9uIDAuCisgICAgV0tQYWdlQ3JlYXRlTmV3UGFnZUNhbGxiYWNr
X2RlcHJlY2F0ZWRGb3JVc2VXaXRoVjAgICAgICAgICAgICAgICAgICBjcmVhdGVOZXdQYWdlX2Rl
cHJlY2F0ZWRGb3JVc2VXaXRoVjA7CisgICAgV0tQYWdlVUlDbGllbnRDYWxsYmFjayAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaG93UGFnZTsKKyAgICBXS1Bh
Z2VVSUNsaWVudENhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGNsb3NlOworICAgIFdLUGFnZVRha2VGb2N1c0NhbGxiYWNrICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFrZUZvY3VzOworICAgIFdLUGFnZUZvY3Vz
Q2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
Zm9jdXM7CisgICAgV0tQYWdlVW5mb2N1c0NhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB1bmZvY3VzOworICAgIFdLUGFnZVJ1bkphdmFTY3JpcHRB
bGVydENhbGxiYWNrX2RlcHJlY2F0ZWRGb3JVc2VXaXRoVjAgICAgICAgICAgICAgcnVuSmF2YVNj
cmlwdEFsZXJ0X2RlcHJlY2F0ZWRGb3JVc2VXaXRoVjA7CisgICAgV0tQYWdlUnVuSmF2YVNjcmlw
dENvbmZpcm1DYWxsYmFja19kZXByZWNhdGVkRm9yVXNlV2l0aFYwICAgICAgICAgICBydW5KYXZh
U2NyaXB0Q29uZmlybV9kZXByZWNhdGVkRm9yVXNlV2l0aFYwOworICAgIFdLUGFnZVJ1bkphdmFT
Y3JpcHRQcm9tcHRDYWxsYmFja19kZXByZWNhdGVkRm9yVXNlV2l0aFYwICAgICAgICAgICAgcnVu
SmF2YVNjcmlwdFByb21wdF9kZXByZWNhdGVkRm9yVXNlV2l0aFYwOworICAgIFdLUGFnZVNldFN0
YXR1c1RleHRDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
c2V0U3RhdHVzVGV4dDsKKyAgICBXS1BhZ2VNb3VzZURpZE1vdmVPdmVyRWxlbWVudENhbGxiYWNr
X2RlcHJlY2F0ZWRGb3JVc2VXaXRoVjAgICAgICAgIG1vdXNlRGlkTW92ZU92ZXJFbGVtZW50X2Rl
cHJlY2F0ZWRGb3JVc2VXaXRoVjA7CisgICAgV0tQYWdlTWlzc2luZ1BsdWdpbkJ1dHRvbkNsaWNr
ZWRDYWxsYmFja19kZXByZWNhdGVkRm9yVXNlV2l0aFYwICAgICBtaXNzaW5nUGx1Z2luQnV0dG9u
Q2xpY2tlZF9kZXByZWNhdGVkRm9yVXNlV2l0aFYwOworICAgIFdLUGFnZURpZE5vdEhhbmRsZUtl
eUV2ZW50Q2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlkTm90SGFu
ZGxlS2V5RXZlbnQ7CisgICAgV0tQYWdlRGlkTm90SGFuZGxlV2hlZWxFdmVudENhbGxiYWNrICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaWROb3RIYW5kbGVXaGVlbEV2ZW50OworICAg
IFdLUGFnZUdldFRvb2xiYXJzQXJlVmlzaWJsZUNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgdG9vbGJhcnNBcmVWaXNpYmxlOworICAgIFdLUGFnZVNldFRvb2xiYXJzQXJl
VmlzaWJsZUNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0VG9vbGJh
cnNBcmVWaXNpYmxlOworICAgIFdLUGFnZUdldE1lbnVCYXJJc1Zpc2libGVDYWxsYmFjayAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWVudUJhcklzVmlzaWJsZTsKKyAgICBXS1Bh
Z2VTZXRNZW51QmFySXNWaXNpYmxlQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHNldE1lbnVCYXJJc1Zpc2libGU7CisgICAgV0tQYWdlR2V0U3RhdHVzQmFySXNWaXNp
YmxlQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0dXNCYXJJc1Zp
c2libGU7CisgICAgV0tQYWdlU2V0U3RhdHVzQmFySXNWaXNpYmxlQ2FsbGJhY2sgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBzZXRTdGF0dXNCYXJJc1Zpc2libGU7CisgICAgV0tQYWdl
R2V0SXNSZXNpemFibGVDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBpc1Jlc2l6YWJsZTsKKyAgICBXS1BhZ2VTZXRJc1Jlc2l6YWJsZUNhbGxiYWNrICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldElzUmVzaXphYmxlOworICAgIFdL
UGFnZUdldFdpbmRvd0ZyYW1lQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgZ2V0V2luZG93RnJhbWU7CisgICAgV0tQYWdlU2V0V2luZG93RnJhbWVDYWxsYmFj
ayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRXaW5kb3dGcmFtZTsK
KyAgICBXS1BhZ2VSdW5CZWZvcmVVbmxvYWRDb25maXJtUGFuZWxDYWxsYmFja19kZXByZWNhdGVk
Rm9yVXNlV2l0aFY2ICAgIHJ1bkJlZm9yZVVubG9hZENvbmZpcm1QYW5lbF9kZXByZWNhdGVkRm9y
VXNlV2l0aFY2OworICAgIFdLUGFnZVVJQ2xpZW50Q2FsbGJhY2sgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlkRHJhdzsKKyAgICBXS1BhZ2VVSUNsaWVudENh
bGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhZ2VE
aWRTY3JvbGw7CisgICAgV0tQYWdlRXhjZWVkZWREYXRhYmFzZVF1b3RhQ2FsbGJhY2sgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBleGNlZWRlZERhdGFiYXNlUXVvdGE7CisgICAgV0tQ
YWdlUnVuT3BlblBhbmVsQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBydW5PcGVuUGFuZWw7CisgICAgV0tQYWdlRGVjaWRlUG9saWN5Rm9yR2VvbG9jYXRp
b25QZXJtaXNzaW9uUmVxdWVzdENhbGxiYWNrICAgICAgICAgICBkZWNpZGVQb2xpY3lGb3JHZW9s
b2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0OworICAgIFdLUGFnZUhlYWRlckhlaWdodENhbGxiYWNr
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVhZGVySGVpZ2h0Owor
ICAgIFdLUGFnZUZvb3RlckhlaWdodENhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgZm9vdGVySGVpZ2h0OworICAgIFdLUGFnZURyYXdIZWFkZXJDYWxsYmFj
ayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZHJhd0hlYWRlcjsK
KyAgICBXS1BhZ2VEcmF3Rm9vdGVyQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGRyYXdGb290ZXI7CisgICAgV0tQYWdlUHJpbnRGcmFtZUNhbGxiYWNr
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmludEZyYW1lOwor
ICAgIFdLUGFnZVVJQ2xpZW50Q2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgcnVuTW9kYWw7CisgICAgdm9pZCogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnVzZWQxOyAvLyBVc2Vk
IHRvIGJlIGRpZENvbXBsZXRlUnViYmVyQmFuZEZvck1haW5GcmFtZQorICAgIFdLUGFnZVNhdmVE
YXRhVG9GaWxlSW5Eb3dubG9hZHNGb2xkZXJDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAg
c2F2ZURhdGFUb0ZpbGVJbkRvd25sb2Fkc0ZvbGRlcjsKKyAgICB2b2lkKiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNob3VsZElu
dGVycnVwdEphdmFTY3JpcHRfdW5hdmFpbGFibGU7CisKKyAgICAvLyBWZXJzaW9uIDEuCisgICAg
V0tQYWdlQ3JlYXRlTmV3UGFnZUNhbGxiYWNrX2RlcHJlY2F0ZWRGb3JVc2VXaXRoVjEgICAgICAg
ICAgICAgICAgICBjcmVhdGVOZXdQYWdlX2RlcHJlY2F0ZWRGb3JVc2VXaXRoVjE7CisgICAgV0tQ
YWdlTW91c2VEaWRNb3ZlT3ZlckVsZW1lbnRDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBtb3VzZURpZE1vdmVPdmVyRWxlbWVudDsKKyAgICBXS1BhZ2VEZWNpZGVQb2xpY3lG
b3JOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdENhbGxiYWNrICAgICAgICAgIGRlY2lkZVBv
bGljeUZvck5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0OworICAgIFdLUGFnZVVuYXZhaWxh
YmxlUGx1Z2luQnV0dG9uQ2xpY2tlZENhbGxiYWNrX2RlcHJlY2F0ZWRGb3JVc2VXaXRoVjEgdW5h
dmFpbGFibGVQbHVnaW5CdXR0b25DbGlja2VkX2RlcHJlY2F0ZWRGb3JVc2VXaXRoVjE7CisKKyAg
ICAvLyBWZXJzaW9uIDIuCisgICAgV0tQYWdlU2hvd0NvbG9yUGlja2VyQ2FsbGJhY2sgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaG93Q29sb3JQaWNrZXI7CisgICAgV0tQ
YWdlSGlkZUNvbG9yUGlja2VyQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBoaWRlQ29sb3JQaWNrZXI7CisgICAgV0tQYWdlVW5hdmFpbGFibGVQbHVnaW5CdXR0
b25DbGlja2VkQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICB1bmF2YWlsYWJsZVBsdWdp
bkJ1dHRvbkNsaWNrZWQ7CisKKyAgICAvLyBWZXJzaW9uIDMuCisgICAgV0tQYWdlUGlubmVkU3Rh
dGVEaWRDaGFuZ2VDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwaW5u
ZWRTdGF0ZURpZENoYW5nZTsKKworICAgIC8vIFZlcnNpb24gNC4KKyAgICB2b2lkKiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVu
dXNlZDI7IC8vIFVzZWQgdG8gYmUgZGlkQmVnaW5UcmFja2luZ1BvdGVudGlhbExvbmdNb3VzZVBy
ZXNzLgorICAgIHZvaWQqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgdW51c2VkMzsgLy8gVXNlZCB0byBiZSBkaWRSZWNvZ25pemVM
b25nTW91c2VQcmVzcy4KKyAgICB2b2lkKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVudXNlZDQ7IC8vIFVzZWQgdG8gYmUgZGlk
Q2FuY2VsVHJhY2tpbmdQb3RlbnRpYWxMb25nTW91c2VQcmVzcy4KKyAgICBXS1BhZ2VJc1BsYXlp
bmdBdWRpb0RpZENoYW5nZUNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlz
UGxheWluZ0F1ZGlvRGlkQ2hhbmdlOworCisgICAgLy8gVmVyc2lvbiA1LgorICAgIFdLUGFnZURl
Y2lkZVBvbGljeUZvclVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0Q2FsbGJhY2sgICAgICAgICAg
ICAgZGVjaWRlUG9saWN5Rm9yVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3Q7CisgICAgV0tQYWdl
RGlkQ2xpY2tBdXRvRmlsbEJ1dHRvbkNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBkaWRDbGlja0F1dG9GaWxsQnV0dG9uOworICAgIFdLUGFnZVJ1bkphdmFTY3JpcHRBbGVy
dENhbGxiYWNrX2RlcHJlY2F0ZWRGb3JVc2VXaXRoVjUgICAgICAgICAgICAgcnVuSmF2YVNjcmlw
dEFsZXJ0X2RlcHJlY2F0ZWRGb3JVc2VXaXRoVjU7CisgICAgV0tQYWdlUnVuSmF2YVNjcmlwdENv
bmZpcm1DYWxsYmFja19kZXByZWNhdGVkRm9yVXNlV2l0aFY1ICAgICAgICAgICBydW5KYXZhU2Ny
aXB0Q29uZmlybV9kZXByZWNhdGVkRm9yVXNlV2l0aFY1OworICAgIFdLUGFnZVJ1bkphdmFTY3Jp
cHRQcm9tcHRDYWxsYmFja19kZXByZWNhdGVkRm9yVXNlV2l0aFY1ICAgICAgICAgICAgcnVuSmF2
YVNjcmlwdFByb21wdF9kZXByZWNhdGVkRm9yVXNlV2l0aFY1OworICAgIHZvaWQqICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW51
c2VkNTsgLy8gVXNlZCB0byBiZSBtZWRpYVNlc3Npb25NZXRhZGF0YURpZENoYW5nZS4KKworICAg
IC8vIFZlcnNpb24gNi4KKyAgICBXS1BhZ2VDcmVhdGVOZXdQYWdlQ2FsbGJhY2sgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNyZWF0ZU5ld1BhZ2U7CisgICAgV0tQYWdl
UnVuSmF2YVNjcmlwdEFsZXJ0Q2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBydW5KYXZhU2NyaXB0QWxlcnQ7CisgICAgV0tQYWdlUnVuSmF2YVNjcmlwdENvbmZpcm1D
YWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBydW5KYXZhU2NyaXB0Q29u
ZmlybTsKKyAgICBXS1BhZ2VSdW5KYXZhU2NyaXB0UHJvbXB0Q2FsbGJhY2sgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHJ1bkphdmFTY3JpcHRQcm9tcHQ7CisgICAgV0tDaGVja1Vz
ZXJNZWRpYVBlcm1pc3Npb25DYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBjaGVja1VzZXJNZWRpYVBlcm1pc3Npb25Gb3JPcmlnaW47CisKKyAgICAvLyBWZXJzaW9uIDcu
CisgICAgV0tQYWdlUnVuQmVmb3JlVW5sb2FkQ29uZmlybVBhbmVsQ2FsbGJhY2sgICAgICAgICAg
ICAgICAgICAgICAgICAgICBydW5CZWZvcmVVbmxvYWRDb25maXJtUGFuZWw7CisgICAgV0tGdWxs
c2NyZWVuTWF5UmV0dXJuVG9JbmxpbmVDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBmdWxsc2NyZWVuTWF5UmV0dXJuVG9JbmxpbmU7CisKKyAgICAvLyBWZXJzaW9uIDguCisg
ICAgV0tSZXF1ZXN0UG9pbnRlckxvY2tDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICByZXF1ZXN0UG9pbnRlckxvY2s7CisgICAgV0tEaWRMb3NlUG9pbnRlckxv
Y2tDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaWRMb3Nl
UG9pbnRlckxvY2s7CisKKyAgICAvLyBWZXJzaW9uIDkuCisgICAgV0tIYW5kbGVBdXRvcGxheUV2
ZW50Q2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVB
dXRvcGxheUV2ZW50OworCisgICAgLy8gVmVyc2lvbiAxMC4KKyAgICBXS0hhc1ZpZGVvSW5QaWN0
dXJlSW5QaWN0dXJlRGlkQ2hhbmdlQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgIGhhc1Zp
ZGVvSW5QaWN0dXJlSW5QaWN0dXJlRGlkQ2hhbmdlOworICAgIFdLRGlkRXhjZWVkQmFja2dyb3Vu
ZFJlc291cmNlTGltaXRXaGlsZUluRm9yZWdyb3VuZENhbGxiYWNrICAgICAgICAgZGlkRXhjZWVk
QmFja2dyb3VuZFJlc291cmNlTGltaXRXaGlsZUluRm9yZWdyb3VuZDsKKworICAgIC8vIFZlcnNp
b24gMTEuCisgICAgV0tQYWdlRGlkUmVzaWduSW5wdXRFbGVtZW50U3Ryb25nUGFzc3dvcmRBcHBl
YXJhbmNlQ2FsbGJhY2sgICAgICAgICBkaWRSZXNpZ25JbnB1dEVsZW1lbnRTdHJvbmdQYXNzd29y
ZEFwcGVhcmFuY2U7CisKKyAgICAvLyBWZXJzaW9uIDEyLgorICAgIFdLUGFnZVJlcXVlc3RTdG9y
YWdlQWNjZXNzQ29uZmlybUNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVz
dFN0b3JhZ2VBY2Nlc3NDb25maXJtOworCisgICAgLy8gVmVyc2lvbiAxMy4KKyAgICBXS1BhZ2VT
aG91bGRBbGxvd0RldmljZU9yaWVudGF0aW9uQW5kTW90aW9uQWNjZXNzQ2FsbGJhY2sgICAgICAg
ICAgIHNob3VsZEFsbG93RGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25BY2Nlc3M7CisKKyAgICAv
LyBWZXJzaW9uIDE0LgorICAgIFdLUGFnZVJ1bldlYkF1dGhlbnRpY2F0aW9uUGFuZWxDYWxsYmFj
ayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcnVuV2ViQXV0aGVudGljYXRpb25QYW5lbDsK
KworICAgIC8vIFZlcnNpb24gMTUuCisgICAgV0tQYWdlRGVjaWRlUG9saWN5Rm9yU3BlZWNoUmVj
b2duaXRpb25QZXJtaXNzaW9uUmVxdWVzdENhbGxiYWNrICAgICBkZWNpZGVQb2xpY3lGb3JTcGVl
Y2hSZWNvZ25pdGlvblBlcm1pc3Npb25SZXF1ZXN0OworCisgICAgLy8gVmVyc2lvbiAxNi4KKyAg
ICBXS1BhZ2VEZWNpZGVQb2xpY3lGb3JNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0Q2Fs
bGJhY2sgICAgICAgIGRlY2lkZVBvbGljeUZvck1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVl
c3Q7CisKK30gV0tQYWdlVUlDbGllbnRWMTY7CisKKwogI2lmZGVmIF9fY3BsdXNwbHVzCiB9CiAj
ZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL01lZGlhS2V5U3lzdGVt
UGVybWlzc2lvblJlcXVlc3QuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL01lZGlhS2V5U3lz
dGVtUGVybWlzc2lvblJlcXVlc3QuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40YWZjMzVkMDE3NzJkNTg5N2M3N2Vh
YzAxMDdiYzliZTc0YjQ2MjhhCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdC5oCkBAIC0wLDAgKzEsNzYgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgSWdhbGlhIFMuTC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRP
UlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENP
TlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdt
YSBvbmNlCisKKyNpbmNsdWRlICJBUElPYmplY3QuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL0NsaWVu
dE9yaWdpbi5oPgorI2luY2x1ZGUgPHd0Zi9Db21wbGV0aW9uSGFuZGxlci5oPgorCituYW1lc3Bh
Y2UgV2ViS2l0IHsKKworY2xhc3MgTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdCA6IHB1
YmxpYyBSZWZDb3VudGVkPE1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3Q+IHsKK3B1Ymxp
YzoKKyAgICBzdGF0aWMgUmVmPE1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3Q+IGNyZWF0
ZShjb25zdCBTdHJpbmcmIGtleVN5c3RlbSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4m
JiBjb21wbGV0aW9uSGFuZGxlcikKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3
IE1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3Qoa2V5U3lzdGVtLCBXVEZNb3ZlKGNvbXBs
ZXRpb25IYW5kbGVyKSkpOworICAgIH0KKworICAgIHZvaWQgY29tcGxldGUoYm9vbCBzdWNjZXNz
KQorICAgIHsKKyAgICAgICAgYXV0byBjb21wbGV0aW9uSGFuZGxlciA9IHN0ZDo6ZXhjaGFuZ2Uo
bV9jb21wbGV0aW9uSGFuZGxlciwgeyB9KTsKKyAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoc3Vj
Y2Vzcyk7CisgICAgfQorCisgICAgY29uc3QgU3RyaW5nJiBrZXlTeXN0ZW0oKSBjb25zdCB7IHJl
dHVybiBtX2tleVN5c3RlbTsgfQorCitwcml2YXRlOgorICAgIE1lZGlhS2V5U3lzdGVtUGVybWlz
c2lvblJlcXVlc3QoY29uc3QgU3RyaW5nJiBrZXlTeXN0ZW0sIENvbXBsZXRpb25IYW5kbGVyPHZv
aWQoYm9vbCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCisgICAgICAgIDogbV9rZXlTeXN0ZW0oa2V5
U3lzdGVtKQorICAgICAgICAsIG1fY29tcGxldGlvbkhhbmRsZXIoV1RGTW92ZShjb21wbGV0aW9u
SGFuZGxlcikpCisgICAgeyB9CisKKyAgICBTdHJpbmcgbV9rZXlTeXN0ZW07CisgICAgQ29tcGxl
dGlvbkhhbmRsZXI8dm9pZChib29sKT4gbV9jb21wbGV0aW9uSGFuZGxlcjsKK307CisKK2NsYXNz
IE1lZGlhS2V5U3lzdGVtUGVybWlzc2lvbkNhbGxiYWNrIDogcHVibGljIEFQSTo6T2JqZWN0SW1w
bDxBUEk6Ok9iamVjdDo6VHlwZTo6TWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uQ2FsbGJhY2s+IHsK
K3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmPE1lZGlhS2V5U3lzdGVtUGVybWlzc2lvbkNhbGxiYWNr
PiBjcmVhdGUoQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJiBjb21wbGV0aW9uSGFuZGxl
cikKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IE1lZGlhS2V5U3lzdGVtUGVy
bWlzc2lvbkNhbGxiYWNrKFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKSk7CisgICAgfQorCisg
ICAgdm9pZCBjb21wbGV0ZShib29sIGdyYW50ZWQpIHsgbV9jb21wbGV0aW9uSGFuZGxlcihncmFu
dGVkKTsgfQorCitwcml2YXRlOgorICAgIE1lZGlhS2V5U3lzdGVtUGVybWlzc2lvbkNhbGxiYWNr
KENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCisgICAg
ICAgIDogbV9jb21wbGV0aW9uSGFuZGxlcihXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSkKKyAg
ICB7IH0KKworICAgIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+IG1fY29tcGxldGlvbkhh
bmRsZXI7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL01lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJv
eHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9u
UmVxdWVzdE1hbmFnZXJQcm94eS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNWIxMGRiODMwZDcxYjlmYjEwY2Ey
MWUzNTc0ZjE1Mzc5YzQ2NTk5MAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL01lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuY3BwCkBA
IC0wLDAgKzEsMTE3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIElnYWxpYSBTLkwuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFO
RCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJNZWRpYUtleVN5c3RlbVBl
cm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmgiCisKKyNpbmNsdWRlICJBUElTZWN1cml0eU9y
aWdpbi5oIgorI2luY2x1ZGUgIkFQSVVJQ2xpZW50LmgiCisjaW5jbHVkZSAiTG9nZ2luZy5oIgor
I2luY2x1ZGUgIldlYkF1dG9tYXRpb25TZXNzaW9uLmgiCisjaW5jbHVkZSAiV2ViUGFnZU1lc3Nh
Z2VzLmgiCisjaW5jbHVkZSAiV2ViUGFnZVByb3h5LmgiCisjaW5jbHVkZSAiV2ViUHJvY2Vzcy5o
IgorI2luY2x1ZGUgIldlYlByb2Nlc3NQb29sLmgiCisjaW5jbHVkZSAiV2ViUHJvY2Vzc1Byb3h5
LmgiCisjaW5jbHVkZSAiV2Vic2l0ZURhdGFTdG9yZS5oIgorI2luY2x1ZGUgPFdlYkNvcmUvTWVk
aWFLZXlTeXN0ZW1SZXF1ZXN0Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9TZWN1cml0eU9yaWdpbkRh
dGEuaD4KKyNpbmNsdWRlIDx3dGYvU2NvcGUuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7Cit1c2lu
ZyBuYW1lc3BhY2UgV2ViQ29yZTsKKworTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdE1h
bmFnZXJQcm94eTo6TWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eShX
ZWJQYWdlUHJveHkmIHBhZ2UpCisgICAgOiBtX3BhZ2UocGFnZSkKKyNpZiAhUkVMRUFTRV9MT0df
RElTQUJMRUQKKyAgICAsIG1fbG9nZ2VyKHBhZ2UubG9nZ2VyKCkpCisgICAgLCBtX2xvZ0lkZW50
aWZpZXIodW5pcXVlTG9nSWRlbnRpZmllcigpKQorI2VuZGlmCit7Cit9CisKK01lZGlhS2V5U3lz
dGVtUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6On5NZWRpYUtleVN5c3RlbVBlcm1pc3Np
b25SZXF1ZXN0TWFuYWdlclByb3h5KCkKK3sKKyAgICBpbnZhbGlkYXRlUGVuZGluZ1JlcXVlc3Rz
KCk7Cit9CisKK3ZvaWQgTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94
eTo6aW52YWxpZGF0ZVBlbmRpbmdSZXF1ZXN0cygpCit7CisgICAgZm9yIChhdXRvJiByZXF1ZXN0
IDogbV9wZW5kaW5nUmVxdWVzdHMudmFsdWVzKCkpCisgICAgICAgIHJlcXVlc3QtPmludmFsaWRh
dGUoKTsKKworICAgIG1fcGVuZGluZ1JlcXVlc3RzLmNsZWFyKCk7Cit9CisKK3ZvaWQgTWVkaWFL
ZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6ZGVueVJlcXVlc3QoTWVkaWFL
ZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdFByb3h5JiByZXF1ZXN0LCBjb25zdCBTdHJpbmcmIG1l
c3NhZ2UpCit7CisgICAgaWYgKCFtX3BhZ2UuaGFzUnVubmluZ1Byb2Nlc3MoKSkKKyAgICAgICAg
cmV0dXJuOworCisgICAgQUxXQVlTX0xPRyhMT0dJREVOVElGSUVSLCByZXF1ZXN0Lm1lZGlhS2V5
U3lzdGVtSUQoKSwgIiwgcmVhc29uOiAiLCBtZXNzYWdlKTsKKworI2lmIEVOQUJMRShFTkNSWVBU
RURfTUVESUEpCisgICAgbV9wYWdlLnNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6Ok1lZGlhS2V5U3lz
dGVtV2FzRGVuaWVkKHJlcXVlc3QubWVkaWFLZXlTeXN0ZW1JRCgpLCBtZXNzYWdlKSk7CisjZWxz
ZQorICAgIFVOVVNFRF9QQVJBTShtZXNzYWdlKTsKKyNlbmRpZgorfQorCit2b2lkIE1lZGlhS2V5
U3lzdGVtUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6OmdyYW50UmVxdWVzdChNZWRpYUtl
eVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0UHJveHkmIHJlcXVlc3QpCit7CisgICAgaWYgKCFtX3Bh
Z2UuaGFzUnVubmluZ1Byb2Nlc3MoKSkKKyAgICAgICAgcmV0dXJuOworCisjaWYgRU5BQkxFKEVO
Q1JZUFRFRF9NRURJQSkKKyAgICBBTFdBWVNfTE9HKExPR0lERU5USUZJRVIsIHJlcXVlc3QubWVk
aWFLZXlTeXN0ZW1JRCgpLCAiLCBrZXlTeXN0ZW06ICIsIHJlcXVlc3Qua2V5U3lzdGVtKCkpOwor
CisgICAgbV9wYWdlLnNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6V2ViUGFnZTo6TWVkaWFL
ZXlTeXN0ZW1XYXNHcmFudGVkIHsgcmVxdWVzdC5tZWRpYUtleVN5c3RlbUlEKCkgfSwgW10geyB9
KTsKKyNlbHNlCisgICAgVU5VU0VEX1BBUkFNKHJlcXVlc3QpOworI2VuZGlmCit9CisKK1JlZjxN
ZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0UHJveHk+IE1lZGlhS2V5U3lzdGVtUGVybWlz
c2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6OmNyZWF0ZVJlcXVlc3RGb3JGcmFtZSh1aW50NjRfdCBt
ZWRpYUtleVN5c3RlbUlELCBGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgUmVmPFNlY3VyaXR5T3Jp
Z2luPiYmIHRvcExldmVsRG9jdW1lbnRPcmlnaW4sIGNvbnN0IFN0cmluZyYga2V5U3lzdGVtKQor
eworICAgIEFMV0FZU19MT0coTE9HSURFTlRJRklFUiwgbWVkaWFLZXlTeXN0ZW1JRCk7CisKKyAg
ICBhdXRvIHJlcXVlc3QgPSBNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0UHJveHk6OmNy
ZWF0ZSgqdGhpcywgbWVkaWFLZXlTeXN0ZW1JRCwgbV9wYWdlLm1haW5GcmFtZSgpLT5mcmFtZUlE
KCksIGZyYW1lSUQsIFdURk1vdmUodG9wTGV2ZWxEb2N1bWVudE9yaWdpbiksIGtleVN5c3RlbSk7
CisgICAgbV9wZW5kaW5nUmVxdWVzdHMuYWRkKG1lZGlhS2V5U3lzdGVtSUQsIHJlcXVlc3QucHRy
KCkpOworICAgIHJldHVybiByZXF1ZXN0OworfQorCisjaWYgIVJFTEVBU0VfTE9HX0RJU0FCTEVE
CitXVEZMb2dDaGFubmVsJiBNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclBy
b3h5Ojpsb2dDaGFubmVsKCkgY29uc3QKK3sKKyAgICByZXR1cm4gV2ViS2l0MkxvZ0VNRTsKK30K
KworY29uc3QgTG9nZ2VyJiBNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclBy
b3h5Ojpsb2dnZXIoKSBjb25zdAoreworICAgIHJldHVybiBtX3BhZ2UubG9nZ2VyKCk7Cit9Cisj
ZW5kaWYKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9NZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5Lmgg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9NZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0
TWFuYWdlclByb3h5LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjAzYTYyODQ4MTFiZWYyZDIyMTMxYjdiZTEwZTg5
M2MwNjcxODZmYwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL01l
ZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuaApAQCAtMCwwICsxLDg1
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIElnYWxpYSBTLkwuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJ
QlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElU
UyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNw
cmFnbWEgb25jZQorCisjaW5jbHVkZSAiTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdFBy
b3h5LmgiCisjaW5jbHVkZSA8V2ViQ29yZS9TZWN1cml0eU9yaWdpbi5oPgorI2luY2x1ZGUgPHd0
Zi9Db21wbGV0aW9uSGFuZGxlci5oPgorI2luY2x1ZGUgPHd0Zi9EZXF1ZS5oPgorI2luY2x1ZGUg
PHd0Zi9IYXNoTWFwLmg+CisjaW5jbHVkZSA8d3RmL0xvZ2dlckhlbHBlci5oPgorI2luY2x1ZGUg
PHd0Zi9SdW5Mb29wLmg+CisjaW5jbHVkZSA8d3RmL1NlY29uZHMuaD4KKyNpbmNsdWRlIDx3dGYv
V2Vha1B0ci5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CitjbGFzcyBTZWN1cml0eU9yaWdpbjsK
K307CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBXZWJQYWdlUHJveHk7CisKK2NsYXNz
IE1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkKKyAgICA6IHB1Ymxp
YyBDYW5NYWtlV2Vha1B0cjxNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclBy
b3h5PgorI2lmICFSRUxFQVNFX0xPR19ESVNBQkxFRAorICAgICwgcHJpdmF0ZSBMb2dnZXJIZWxw
ZXIKKyNlbmRpZgoreworICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOworcHVibGljOgorICAg
IGV4cGxpY2l0IE1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkoV2Vi
UGFnZVByb3h5Jik7CisgICAgfk1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RNYW5hZ2Vy
UHJveHkoKTsKKworICAgIFdlYlBhZ2VQcm94eSYgcGFnZSgpIGNvbnN0IHsgcmV0dXJuIG1fcGFn
ZTsgfQorCisgICAgdm9pZCBpbnZhbGlkYXRlUGVuZGluZ1JlcXVlc3RzKCk7CisKKyAgICBSZWY8
TWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdFByb3h5PiBjcmVhdGVSZXF1ZXN0Rm9yRnJh
bWUodWludDY0X3QgdXNlck1lZGlhSUQsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgUmVmPFdl
YkNvcmU6OlNlY3VyaXR5T3JpZ2luPiYmIHRvcExldmVsRG9jdW1lbnRPcmlnaW4sIGNvbnN0IFN0
cmluZyYga2V5U3lzdGVtKTsKKworICAgIHZvaWQgZ3JhbnRSZXF1ZXN0KE1lZGlhS2V5U3lzdGVt
UGVybWlzc2lvblJlcXVlc3RQcm94eSYpOworICAgIHZvaWQgZGVueVJlcXVlc3QoTWVkaWFLZXlT
eXN0ZW1QZXJtaXNzaW9uUmVxdWVzdFByb3h5JiwgY29uc3QgU3RyaW5nJiBtZXNzYWdlID0geyB9
KTsKKworcHJpdmF0ZToKKyNpZiAhUkVMRUFTRV9MT0dfRElTQUJMRUQKKyAgICBjb25zdCBMb2dn
ZXImIGxvZ2dlcigpIGNvbnN0IGZpbmFsOworICAgIGNvbnN0IHZvaWQqIGxvZ0lkZW50aWZpZXIo
KSBjb25zdCBmaW5hbCB7IHJldHVybiBtX2xvZ0lkZW50aWZpZXI7IH0KKyAgICBjb25zdCBjaGFy
KiBsb2dDbGFzc05hbWUoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiAiTWVkaWFLZXlTeXN0ZW1Q
ZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eSI7IH0KKyAgICBXVEZMb2dDaGFubmVsJiBsb2dD
aGFubmVsKCkgY29uc3QgZmluYWw7CisjZW5kaWYKKworICAgIFdlYlBhZ2VQcm94eSYgbV9wYWdl
OworCisgICAgSGFzaE1hcDx1aW50NjRfdCwgUmVmUHRyPE1lZGlhS2V5U3lzdGVtUGVybWlzc2lv
blJlcXVlc3RQcm94eT4+IG1fcGVuZGluZ1JlcXVlc3RzOworICAgIEhhc2hTZXQ8U3RyaW5nPiBt
X3ZhbGlkQXV0aG9yaXphdGlvblRva2VuczsKKworI2lmICFSRUxFQVNFX0xPR19ESVNBQkxFRAor
ICAgIFJlZjxjb25zdCBMb2dnZXI+IG1fbG9nZ2VyOworICAgIGNvbnN0IHZvaWQqIG1fbG9nSWRl
bnRpZmllcjsKKyNlbmRpZgorfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9NZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0
UHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTWVkaWFLZXlTeXN0ZW1QZXJtaXNz
aW9uUmVxdWVzdFByb3h5LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kMmI5MTU1ZDE1ODU2YTM0MDJiY2ZjMWY1
NTI2OTIwZTAzNzkwYmRjCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdFByb3h5LmNwcApAQCAtMCwwICsxLDgy
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIElnYWxpYSBTLkwuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJ
QlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElU
UyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNp
bmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1
ZXN0UHJveHkuaCIKKworI2luY2x1ZGUgIk1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RN
YW5hZ2VyUHJveHkuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL1NlY3VyaXR5T3JpZ2luLmg+CisjaW5j
bHVkZSA8V2ViQ29yZS9TZWN1cml0eU9yaWdpbkRhdGEuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9T
dHJpbmdIYXNoLmg+CisKK25hbWVzcGFjZSBXZWJLaXQgewordXNpbmcgbmFtZXNwYWNlIFdlYkNv
cmU7CisKK01lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RQcm94eTo6TWVkaWFLZXlTeXN0
ZW1QZXJtaXNzaW9uUmVxdWVzdFByb3h5KE1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RN
YW5hZ2VyUHJveHkmIG1hbmFnZXIsIHVpbnQ2NF90IG1lZGlhS2V5U3lzdGVtSUQsIEZyYW1lSWRl
bnRpZmllciBtYWluRnJhbWVJRCwgRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIFJlZjxXZWJDb3Jl
OjpTZWN1cml0eU9yaWdpbj4mJiB0b3BMZXZlbERvY3VtZW50T3JpZ2luLCBjb25zdCBTdHJpbmcm
IGtleVN5c3RlbSkKKyAgICA6IG1fbWFuYWdlcigmbWFuYWdlcikKKyAgICAsIG1fbWVkaWFLZXlT
eXN0ZW1JRChtZWRpYUtleVN5c3RlbUlEKQorICAgICwgbV9tYWluRnJhbWVJRChtYWluRnJhbWVJ
RCkKKyAgICAsIG1fZnJhbWVJRChmcmFtZUlEKQorICAgICwgbV90b3BMZXZlbERvY3VtZW50U2Vj
dXJpdHlPcmlnaW4oV1RGTW92ZSh0b3BMZXZlbERvY3VtZW50T3JpZ2luKSkKKyAgICAsIG1fa2V5
U3lzdGVtKGtleVN5c3RlbSkKK3sKK30KKwordm9pZCBNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25S
ZXF1ZXN0UHJveHk6OmFsbG93KCkKK3sKKyAgICBBU1NFUlQobV9tYW5hZ2VyKTsKKyAgICBpZiAo
IW1fbWFuYWdlcikKKyAgICAgICAgcmV0dXJuOworCisgICAgbV9tYW5hZ2VyLT5ncmFudFJlcXVl
c3QoKnRoaXMpOworICAgIGludmFsaWRhdGUoKTsKK30KKwordm9pZCBNZWRpYUtleVN5c3RlbVBl
cm1pc3Npb25SZXF1ZXN0UHJveHk6OmRlbnkoKQoreworICAgIGlmICghbV9tYW5hZ2VyKQorICAg
ICAgICByZXR1cm47CisKKyAgICBtX21hbmFnZXItPmRlbnlSZXF1ZXN0KCp0aGlzKTsKKyAgICBp
bnZhbGlkYXRlKCk7Cit9CisKK3ZvaWQgTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdFBy
b3h5OjppbnZhbGlkYXRlKCkKK3sKKyAgICBtX21hbmFnZXIgPSBudWxscHRyOworfQorCit2b2lk
IE1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RQcm94eTo6ZG9EZWZhdWx0QWN0aW9uKCkK
K3sKKyNpZiBQTEFURk9STShDT0NPQSkKKyAgICAvLyBCYWNrd2FyZCBjb21wYXRpYmlsaXR5IGZv
ciBwbGF0Zm9ybXMgbm90IHlldCBzdXBwb3J0aW5nIHRoZSBNZWRpYUtleVN5c3RlbSBwZXJtaXNz
aW9uIHJlcXVlc3QKKyAgICAvLyBpbiB0aGVpciBBUElVSUNsaWVudC4KKyAgICBhbGxvdygpOwor
I2Vsc2UKKyAgICBkZW55KCk7CisjZW5kaWYKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9NZWRpYUtleVN5c3RlbVBlcm1pc3Np
b25SZXF1ZXN0UHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL01lZGlhS2V5U3lzdGVt
UGVybWlzc2lvblJlcXVlc3RQcm94eS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmE2NGQxYzYyMDU3ZDU2OTcyMDU2
ODZlODcxYWVjMjgzNjc1MDVkYzkKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9NZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0UHJveHkuaApAQCAtMCwwICsx
LDc2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIElnYWxpYSBTLkwuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09O
VFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
IElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICog
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisK
KyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAiQVBJT2JqZWN0LmgiCisjaW5jbHVkZSA8V2ViQ29y
ZS9GcmFtZUlkZW50aWZpZXIuaD4KKyNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CisjaW5jbHVkZSA8
d3RmL3RleHQvV1RGU3RyaW5nLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKK2NsYXNzIFNlY3Vy
aXR5T3JpZ2luOworfQorCituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3MgTWVkaWFLZXlTeXN0
ZW1QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eTsKKworY2xhc3MgTWVkaWFLZXlTeXN0ZW1Q
ZXJtaXNzaW9uUmVxdWVzdFByb3h5IDogcHVibGljIFJlZkNvdW50ZWQ8TWVkaWFLZXlTeXN0ZW1Q
ZXJtaXNzaW9uUmVxdWVzdFByb3h5PiB7CitwdWJsaWM6CisgICAgc3RhdGljIFJlZjxNZWRpYUtl
eVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0UHJveHk+IGNyZWF0ZShNZWRpYUtleVN5c3RlbVBlcm1p
c3Npb25SZXF1ZXN0TWFuYWdlclByb3h5JiBtYW5hZ2VyLCB1aW50NjRfdCBtZWRpYUtleVN5c3Rl
bUlELCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgbWFpbkZyYW1lSUQsIFdlYkNvcmU6OkZyYW1l
SWRlbnRpZmllciBmcmFtZUlELCBSZWY8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4+JiYgdG9wTGV2
ZWxEb2N1bWVudE9yaWdpbiwgY29uc3QgU3RyaW5nJiBrZXlTeXN0ZW0pCisgICAgeworICAgICAg
ICByZXR1cm4gYWRvcHRSZWYoKm5ldyBNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0UHJv
eHkobWFuYWdlciwgbWVkaWFLZXlTeXN0ZW1JRCwgbWFpbkZyYW1lSUQsIGZyYW1lSUQsIFdURk1v
dmUodG9wTGV2ZWxEb2N1bWVudE9yaWdpbiksIGtleVN5c3RlbSkpOworICAgIH0KKworICAgIHZv
aWQgYWxsb3coKTsKKyAgICB2b2lkIGRlbnkoKTsKKworICAgIHZvaWQgaW52YWxpZGF0ZSgpOwor
ICAgIGJvb2wgaXNQZW5kaW5nKCkgY29uc3QgeyByZXR1cm4gbV9tYW5hZ2VyOyB9CisKKyAgICB1
aW50NjRfdCBtZWRpYUtleVN5c3RlbUlEKCkgY29uc3QgeyByZXR1cm4gbV9tZWRpYUtleVN5c3Rl
bUlEOyB9CisgICAgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIG1haW5GcmFtZUlEKCkgY29uc3Qg
eyByZXR1cm4gbV9tYWluRnJhbWVJRDsgfQorICAgIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBm
cmFtZUlEKCkgY29uc3QgeyByZXR1cm4gbV9mcmFtZUlEOyB9CisKKyAgICBXZWJDb3JlOjpTZWN1
cml0eU9yaWdpbiYgdG9wTGV2ZWxEb2N1bWVudFNlY3VyaXR5T3JpZ2luKCkgeyByZXR1cm4gbV90
b3BMZXZlbERvY3VtZW50U2VjdXJpdHlPcmlnaW4uZ2V0KCk7IH0KKyAgICBjb25zdCBXZWJDb3Jl
OjpTZWN1cml0eU9yaWdpbiYgdG9wTGV2ZWxEb2N1bWVudFNlY3VyaXR5T3JpZ2luKCkgY29uc3Qg
eyByZXR1cm4gbV90b3BMZXZlbERvY3VtZW50U2VjdXJpdHlPcmlnaW4uZ2V0KCk7IH0KKworICAg
IGNvbnN0IFN0cmluZyYga2V5U3lzdGVtKCkgY29uc3QgeyByZXR1cm4gbV9rZXlTeXN0ZW07IH0K
KworICAgIHZvaWQgZG9EZWZhdWx0QWN0aW9uKCk7CisKK3ByaXZhdGU6CisgICAgTWVkaWFLZXlT
eXN0ZW1QZXJtaXNzaW9uUmVxdWVzdFByb3h5KE1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVl
c3RNYW5hZ2VyUHJveHkmLCB1aW50NjRfdCBtZWRpYUtleVN5c3RlbUlELCBXZWJDb3JlOjpGcmFt
ZUlkZW50aWZpZXIgbWFpbkZyYW1lSUQsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgUmVmPFdl
YkNvcmU6OlNlY3VyaXR5T3JpZ2luPiYmIHRvcExldmVsRG9jdW1lbnRPcmlnaW4sIGNvbnN0IFN0
cmluZyYga2V5U3lzdGVtKTsKKworICAgIE1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RN
YW5hZ2VyUHJveHkqIG1fbWFuYWdlcjsKKyAgICB1aW50NjRfdCBtX21lZGlhS2V5U3lzdGVtSUQ7
CisgICAgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIG1fbWFpbkZyYW1lSUQ7CisgICAgV2ViQ29y
ZTo6RnJhbWVJZGVudGlmaWVyIG1fZnJhbWVJRDsKKyAgICBSZWY8V2ViQ29yZTo6U2VjdXJpdHlP
cmlnaW4+IG1fdG9wTGV2ZWxEb2N1bWVudFNlY3VyaXR5T3JpZ2luOworICAgIFN0cmluZyBtX2tl
eVN5c3RlbTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291
cmNlLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uUmVtb3Rl
UmVhbHRpbWVNZWRpYVNvdXJjZS5jcHAKaW5kZXggYjlkOTMyMDk2MzlkZDNiZjhmMjc0ODM1MjRj
ZjQwNmQ2M2VjNjBhZC4uNDM4NGQ0OWExN2M5ZWYwM2MzMGI4OWY3MjRiNWI1Mzk3MjE0ZDk3YyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25SZW1v
dGVSZWFsdGltZU1lZGlhU291cmNlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9T
cGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UuY3BwCkBAIC0zMyw2ICsz
Myw4IEBACiAKICNpZiBQTEFURk9STShDT0NPQSkKICNpbmNsdWRlICJTaGFyZWRSaW5nQnVmZmVy
U3RvcmFnZS5oIgorI2luY2x1ZGUgPFdlYkNvcmUvQ0FSaW5nQnVmZmVyLmg+CisjaW5jbHVkZSA8
V2ViQ29yZS9XZWJBdWRpb0J1ZmZlckxpc3QuaD4KICNlbmRpZgogCiBuYW1lc3BhY2UgV2ViS2l0
IHsKQEAgLTQ3LDcgKzQ5LDcgQEAgU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlh
U291cmNlOjpTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWEKICAgICAsIG1faWRl
bnRpZmllcihpZGVudGlmaWVyKQogICAgICwgbV9tYW5hZ2VyKG1ha2VXZWFrUHRyKG1hbmFnZXIp
KQogI2lmIFBMQVRGT1JNKENPQ09BKQotICAgICwgbV9yaW5nQnVmZmVyKG1ha2VVbmlxdWU8Q0FS
aW5nQnVmZmVyPigpKQorICAgICwgbV9yaW5nQnVmZmVyKG1ha2VVbmlxdWU8V2ViQ29yZTo6Q0FS
aW5nQnVmZmVyPigpKQogI2VuZGlmCiB7CiAgICAgbV9tYW5hZ2VyLT5hZGRTb3VyY2UoKnRoaXMs
IGNhcHR1cmVEZXZpY2UpOwpAQCAtNzcsOCArNzksOCBAQCB2b2lkIFNwZWVjaFJlY29nbml0aW9u
UmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6c2V0U3RvcmFnZShjb25zdCBTaGFyZWRNZW1vcnk6
OgogewogICAgIG1fZGVzY3JpcHRpb24gPSBkZXNjcmlwdGlvbjsKIAotICAgIG1fcmluZ0J1ZmZl
ciA9IG1ha2VVbmlxdWU8Q0FSaW5nQnVmZmVyPihtYWtlVW5pcXVlUmVmPFJlYWRPbmx5U2hhcmVk
UmluZ0J1ZmZlclN0b3JhZ2U+KGhhbmRsZSksIGRlc2NyaXB0aW9uLCBudW1iZXJPZkZyYW1lcyk7
Ci0gICAgbV9idWZmZXIgPSBtYWtlVW5pcXVlPFdlYkF1ZGlvQnVmZmVyTGlzdD4oZGVzY3JpcHRp
b24sIG51bWJlck9mRnJhbWVzKTsKKyAgICBtX3JpbmdCdWZmZXIgPSBtYWtlVW5pcXVlPFdlYkNv
cmU6OkNBUmluZ0J1ZmZlcj4obWFrZVVuaXF1ZVJlZjxSZWFkT25seVNoYXJlZFJpbmdCdWZmZXJT
dG9yYWdlPihoYW5kbGUpLCBkZXNjcmlwdGlvbiwgbnVtYmVyT2ZGcmFtZXMpOworICAgIG1fYnVm
ZmVyID0gbWFrZVVuaXF1ZTxXZWJDb3JlOjpXZWJBdWRpb0J1ZmZlckxpc3Q+KGRlc2NyaXB0aW9u
LCBudW1iZXJPZkZyYW1lcyk7CiB9CiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlLmgg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1l
TWVkaWFTb3VyY2UuaAppbmRleCA4YjUxMjUwZjVjYWQ3ZjNmNWNlNzhmNThkNjc2MzcxOTBjZjhi
ZjkxLi5hMWUyN2FkNWZkNzAzOGVkMmVkZWViMzJjMTViNTA5MTBkYWQ1MWUwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1l
TWVkaWFTb3VyY2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TcGVlY2hSZWNvZ25p
dGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UuaApAQCAtMjcsNiArMjcsNyBAQAogCiAjaWYg
RU5BQkxFKE1FRElBX1NUUkVBTSkKIAorI2luY2x1ZGUgIlNoYXJlZE1lbW9yeS5oIgogI2luY2x1
ZGUgPFdlYkNvcmUvUmVhbHRpbWVNZWRpYVNvdXJjZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUmVh
bHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIuaD4KIApAQCAtNDMsNyArNDQsOCBAQCBjbGFzcyBX
ZWJBdWRpb0J1ZmZlckxpc3Q7CiB9CiAKIG5hbWVzcGFjZSBXZWJLaXQgewotCitjbGFzcyBTcGVl
Y2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOworICAgIAogY2xh
c3MgU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlIDogcHVibGljIFdl
YkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2UgewogcHVibGljOgogICAgIHN0YXRpYyBSZWY8V2Vi
Q29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZT4gY3JlYXRlKFNwZWVjaFJlY29nbml0aW9uUmVtb3Rl
UmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXImLCBjb25zdCBXZWJDb3JlOjpDYXB0dXJlRGV2aWNl
Jik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3Bw
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAppbmRleCBmMTJjODQ2
ZTg4ZGJkMDYwYmE0NWE1MzRkOGI2ZjYyYWYyOTE5MTEwLi5hYjY4YTNiZmYwYzc5N2JiYmY3ZThh
YzgxOGM4MzdhMmUwYzU1OGRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9X
ZWJQYWdlUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94
eS5jcHAKQEAgLTgyOTEsNiArODI5MSwyNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6Y2xlYXJVc2Vy
TWVkaWFTdGF0ZSgpCiAjZW5kaWYKIH0KIAordm9pZCBXZWJQYWdlUHJveHk6OnJlcXVlc3RNZWRp
YUtleVN5c3RlbVBlcm1pc3Npb25Gb3JGcmFtZSh1aW50NjRfdCBtZWRpYUtleVN5c3RlbUlELCBG
cmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRh
JiB0b3BMZXZlbERvY3VtZW50T3JpZ2luRGF0YSwgY29uc3QgU3RyaW5nJiBrZXlTeXN0ZW0pCit7
CisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKyAgICBNRVNTQUdFX0NIRUNLKG1fcHJvY2Vzcywg
bV9wcm9jZXNzLT53ZWJGcmFtZShmcmFtZUlEKSk7CisKKyAgICBhdXRvIG9yaWdpbiA9IEFQSTo6
U2VjdXJpdHlPcmlnaW46OmNyZWF0ZSh0b3BMZXZlbERvY3VtZW50T3JpZ2luRGF0YS5zZWN1cml0
eU9yaWdpbigpKTsKKyAgICBhdXRvIHJlcXVlc3QgPSBtZWRpYUtleVN5c3RlbVBlcm1pc3Npb25S
ZXF1ZXN0TWFuYWdlcigpLmNyZWF0ZVJlcXVlc3RGb3JGcmFtZShtZWRpYUtleVN5c3RlbUlELCBm
cmFtZUlELCB0b3BMZXZlbERvY3VtZW50T3JpZ2luRGF0YS5zZWN1cml0eU9yaWdpbigpLCBrZXlT
eXN0ZW0pOworICAgIG1fdWlDbGllbnQtPmRlY2lkZVBvbGljeUZvck1lZGlhS2V5U3lzdGVtUGVy
bWlzc2lvblJlcXVlc3QoKnRoaXMsIG9yaWdpbiwga2V5U3lzdGVtLCBbcmVxdWVzdCA9IFdURk1v
dmUocmVxdWVzdCldKGJvb2wgYWxsb3dlZCkgeworICAgICAgICBpZiAoYWxsb3dlZCkKKyAgICAg
ICAgICAgIHJlcXVlc3QtPmFsbG93KCk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHJlcXVl
c3QtPmRlbnkoKTsKKyAgICB9KTsKKyNlbHNlCisgICAgVU5VU0VEX1BBUkFNKG1lZGlhS2V5U3lz
dGVtSUQpOworICAgIFVOVVNFRF9QQVJBTShmcmFtZUlEKTsKKyAgICBVTlVTRURfUEFSQU0odG9w
TGV2ZWxEb2N1bWVudE9yaWdpbkRhdGEpOworICAgIFVOVVNFRF9QQVJBTShrZXlTeXN0ZW0pOwor
I2VuZGlmCit9CisKICNpZiBFTkFCTEUoREVWSUNFX09SSUVOVEFUSU9OKQogdm9pZCBXZWJQYWdl
UHJveHk6OnNob3VsZEFsbG93RGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25BY2Nlc3MoRnJhbWVJ
ZGVudGlmaWVyIGZyYW1lSUQsIEZyYW1lSW5mb0RhdGEmJiBmcmFtZUluZm8sIGJvb2wgbWF5UHJv
bXB0LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKERldmljZU9yaWVudGF0aW9uT3JNb3Rpb25QZXJt
aXNzaW9uU3RhdGUpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewpAQCAtODMwMSw2ICs4MzIyLDE3
IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpzaG91bGRBbGxvd0RldmljZU9yaWVudGF0aW9uQW5kTW90
aW9uQWNjZXNzKEZyYW1lSWRlbnRpZmllciBmCiB9CiAjZW5kaWYKIAorI2lmIEVOQUJMRShFTkNS
WVBURURfTUVESUEpCitNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5
JiBXZWJQYWdlUHJveHk6Om1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyKCkK
K3sKKyAgICBpZiAobV9tZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcikKKyAg
ICAgICAgcmV0dXJuICptX21lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyOwor
CisgICAgbV9tZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlciA9IG1ha2VVbmlx
dWU8TWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eT4oKnRoaXMpOwor
ICAgIHJldHVybiAqbV9tZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcjsKK30K
KyNlbmRpZgorCiB2b2lkIFdlYlBhZ2VQcm94eTo6cmVxdWVzdE5vdGlmaWNhdGlvblBlcm1pc3Np
b24odWludDY0X3QgcmVxdWVzdElELCBjb25zdCBTdHJpbmcmIG9yaWdpblN0cmluZykKIHsKICAg
ICBpZiAoIWlzUmVxdWVzdElEVmFsaWQocmVxdWVzdElEKSkKQEAgLTEwNDE1LDYgKzEwNDQ3LDEx
IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpyZXF1ZXN0U3BlZWNoUmVjb2duaXRpb25QZXJtaXNzaW9u
QnlEZWZhdWx0QWN0aW9uKGNvbnN0IFdlYkNvCiAgICAgbV9zcGVlY2hSZWNvZ25pdGlvblBlcm1p
c3Npb25NYW5hZ2VyLT5kZWNpZGVCeURlZmF1bHRBY3Rpb24ob3JpZ2luLCBXVEZNb3ZlKGNvbXBs
ZXRpb25IYW5kbGVyKSk7CiB9CiAKK3ZvaWQgV2ViUGFnZVByb3h5OjpyZXF1ZXN0TWVkaWFLZXlT
eXN0ZW1QZXJtaXNzaW9uQnlEZWZhdWx0QWN0aW9uKGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3Jp
Z2luJiBvcmlnaW4sIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYgY29tcGxldGlvbkhh
bmRsZXIpCit7CisgICAgY29tcGxldGlvbkhhbmRsZXIoZmFsc2UpOworfQorCiAjaWYgRU5BQkxF
KE1FRElBX1NUUkVBTSkKIAogV2ViQ29yZTo6Q2FwdHVyZVNvdXJjZU9yRXJyb3IgV2ViUGFnZVBy
b3h5OjpjcmVhdGVSZWFsdGltZU1lZGlhU291cmNlRm9yU3BlZWNoUmVjb2duaXRpb24oKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmggYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAppbmRleCA2YTk5MWRjMDVlZTRjMzYyZTc5
MDVlYWU3ODMxNmMxYjY0MjQ3ZDEzLi4xZGRmZmFjNmJhNTBkM2RkNTAxMmExY2U3ZTQ2NDE3YTZi
NDU4MWU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHku
aAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaApAQCAtNDAsNiAr
NDAsNyBAQAogI2luY2x1ZGUgIkdlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJv
eHkuaCIKICNpbmNsdWRlICJIaWRkZW5QYWdlVGhyb3R0bGluZ0F1dG9JbmNyZWFzZXNDb3VudGVy
LmgiCiAjaW5jbHVkZSAiTGF5ZXJUcmVlQ29udGV4dC5oIgorI2luY2x1ZGUgIk1lZGlhS2V5U3lz
dGVtUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuaCIKICNpbmNsdWRlICJNZWRpYVBsYXli
YWNrU3RhdGUuaCIKICNpbmNsdWRlICJNZXNzYWdlU2VuZGVyLmgiCiAjaW5jbHVkZSAiTm90aWZp
Y2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuaCIKQEAgLTcyLDggKzczLDggQEAK
ICNpbmNsdWRlICJXZWJQYWdlUHJveHlJZGVudGlmaWVyLmgiCiAjaW5jbHVkZSAiV2ViUGFnZVBy
b3h5TWVzc2FnZXNSZXBsaWVzLmgiCiAjaW5jbHVkZSAiV2ViUGF5bWVudENvb3JkaW5hdG9yUHJv
eHkuaCIKLSNpbmNsdWRlICJXZWJQcmVmZXJlbmNlcy5oIgogI2luY2x1ZGUgIldlYlBvcHVwTWVu
dVByb3h5LmgiCisjaW5jbHVkZSAiV2ViUHJlZmVyZW5jZXMuaCIKICNpbmNsdWRlICJXZWJVbmRv
U3RlcElELmgiCiAjaW5jbHVkZSAiV2Vic2l0ZVBvbGljaWVzRGF0YS5oIgogI2luY2x1ZGUgPFdl
YkNvcmUvQWN0aXZpdHlTdGF0ZS5oPgpAQCAtMTgxOSw2ICsxODIwLDggQEAgcHVibGljOgogICAg
IHZvaWQgcmVxdWVzdFNwZWVjaFJlY29nbml0aW9uUGVybWlzc2lvbihjb25zdCBTdHJpbmcmIGxh
bmcsIGNvbnN0IFdlYkNvcmU6OkNsaWVudE9yaWdpbiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQo
T3B0aW9uYWw8V2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25FcnJvcj4mJik+JiYpOwogICAgIHZv
aWQgcmVxdWVzdFNwZWVjaFJlY29nbml0aW9uUGVybWlzc2lvbkJ5RGVmYXVsdEFjdGlvbihjb25z
dCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+
JiYpOwogCisgICAgdm9pZCByZXF1ZXN0TWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uQnlEZWZhdWx0
QWN0aW9uKGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luJiwgQ29tcGxldGlvbkhhbmRsZXI8
dm9pZChib29sKT4mJik7CisKICAgICB2b2lkIHN5bmNJZk1vY2tEZXZpY2VzRW5hYmxlZENoYW5n
ZWQoKTsKIAogI2lmIEVOQUJMRShBUFBfSElHSExJR0hUUykKQEAgLTE5OTUsNiArMTk5OCwxMSBA
QCBwcml2YXRlOgogICAgIHZvaWQgZW51bWVyYXRlTWVkaWFEZXZpY2VzRm9yRnJhbWUoV2ViQ29y
ZTo6RnJhbWVJZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmIHVz
ZXJNZWRpYURvY3VtZW50T3JpZ2luRGF0YSwgY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5E
YXRhJiB0b3BMZXZlbERvY3VtZW50T3JpZ2luRGF0YSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChj
b25zdCBWZWN0b3I8V2ViQ29yZTo6Q2FwdHVyZURldmljZT4mLCBjb25zdCBTdHJpbmcmKT4mJik7
CiAgICAgdm9pZCBiZWdpbk1vbml0b3JpbmdDYXB0dXJlRGV2aWNlcygpOwogCisjaWYgRU5BQkxF
KEVOQ1JZUFRFRF9NRURJQSkKKyAgICBNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0TWFu
YWdlclByb3h5JiBtZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcigpOworI2Vu
ZGlmCisgICAgdm9pZCByZXF1ZXN0TWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uRm9yRnJhbWUodWlu
dDY0X3QgbWVkaWFLZXlTeXN0ZW1JRCwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBjb25zdCBX
ZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmIHRvcExldmVsRG9jdW1lbnRPcmlnaW5JZGVudGlm
aWVyLCBjb25zdCBTdHJpbmcmKTsKKwogICAgIHZvaWQgcnVuTW9kYWwoKTsKICAgICB2b2lkIG5v
dGlmeVNjcm9sbGVyVGh1bWJJc1Zpc2libGVJblJlY3QoY29uc3QgV2ViQ29yZTo6SW50UmVjdCYp
OwogICAgIHZvaWQgcmVjb21tZW5kZWRTY3JvbGxiYXJTdHlsZURpZENoYW5nZShpbnQzMl90IG5l
d1N0eWxlKTsKQEAgLTI1MDQsNiArMjUxMiwxMCBAQCBwcml2YXRlOgogICAgIHN0ZDo6dW5pcXVl
X3B0cjxVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eT4gbV91c2VyTWVkaWFQ
ZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXI7CiAjZW5kaWYKIAorI2lmIEVOQUJMRShFTkNSWVBURURf
TUVESUEpCisgICAgc3RkOjp1bmlxdWVfcHRyPE1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVl
c3RNYW5hZ2VyUHJveHk+IG1fbWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXI7
CisjZW5kaWYKKwogICAgIE9wdGlvblNldDxXZWJDb3JlOjpBY3Rpdml0eVN0YXRlOjpGbGFnPiBt
X2FjdGl2aXR5U3RhdGU7CiAgICAgYm9vbCBtX3ZpZXdXYXNFdmVySW5XaW5kb3cgeyBmYWxzZSB9
OwogI2lmIFBMQVRGT1JNKE1BQ0NBVEFMWVNUKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluCmluZGV4IGY0MDM0Njk4YTNlY2ViNTZkOTczNWVi
ZGRkN2NkM2M0NGJlOTI2MTEuLjgxMGE2ZTQzYTAwOTE4MDcxNDEwMzFmNjI1MTBmMGQ4MTdmMGJi
OWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNz
YWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2Fn
ZXMuaW4KQEAgLTI4MCw2ICsyODAsMTAgQEAgbWVzc2FnZXMgLT4gV2ViUGFnZVByb3h5IHsKICAg
ICBCZWdpbk1vbml0b3JpbmdDYXB0dXJlRGV2aWNlcygpCiAjZW5kaWYKIAorI2lmIEVOQUJMRShF
TkNSWVBURURfTUVESUEpCisgICAgUmVxdWVzdE1lZGlhS2V5U3lzdGVtUGVybWlzc2lvbkZvckZy
YW1lKHVpbnQ2NF90IHVzZXJNZWRpYUlELCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJ
RCwgc3RydWN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSB0b3BMZXZlbERvY3VtZW50T3Jp
Z2luSWRlbnRpZmllciwgU3RyaW5nIGtleVN5c3RlbSkKKyNlbmRpZgorCiAgICAgIyBOb3RpZmlj
YXRpb24gbWVzc2FnZXMKICAgICBSZXF1ZXN0Tm90aWZpY2F0aW9uUGVybWlzc2lvbih1aW50NjRf
dCByZXF1ZXN0SUQsIFN0cmluZyBvcmlnaW5JZGVudGlmaWVyKQogICAgIFNob3dOb3RpZmljYXRp
b24oU3RyaW5nIHRpdGxlLCBTdHJpbmcgYm9keSwgU3RyaW5nIGljb25VUkwsIFN0cmluZyB0YWcs
IFN0cmluZyBsYW5nLCBlbnVtOnVpbnQ4X3QgV2ViQ29yZTo6Tm90aWZpY2F0aW9uRGlyZWN0aW9u
IGRpciwgU3RyaW5nIG9yaWdpbklkZW50aWZpZXIsIHVpbnQ2NF90IG5vdGlmaWNhdGlvbklEKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
aiBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXgg
NWFiYTk2ZjM2NTc2ZDI4YTkyMzMxMjIyZGNhNjc1MmNlZGM5MjQzNi4uNzA4NTA0MTdkMTVlYzJj
NzljODA0NDM2NGUzOTk0MmYxYWFlODlhYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJL
aXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xNTIwLDYgKzE1MjAsMTIgQEAKIAkJOTlFNzE0
QzUxQzEyNEEwNDAwNjY1QjNBIC8qIF9XS0F1dG9tYXRpb25EZWxlZ2F0ZS5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTlFNzE0QzExQzEyNDlFNjAwNjY1
QjNBIC8qIF9XS0F1dG9tYXRpb25EZWxlZ2F0ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07CiAJCTk5RTcxODlBMjFGNzlEOUUwMDU1RTk3NSAvKiBfV0tU
b3VjaEV2ZW50R2VuZXJhdG9yLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gOTlFNzE4OTYyMUY3OUQ5RDAwNTVFOTc1IC8qIF9XS1RvdWNoRXZlbnRHZW5l
cmF0b3IubW0gKi87IH07CiAJCTk5RTcxODlDMjFGNzlEOUUwMDU1RTk3NSAvKiBfV0tUb3VjaEV2
ZW50R2VuZXJhdG9yLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA5OUU3MTg5ODIxRjc5RDlFMDA1NUU5NzUgLyogX1dLVG91Y2hFdmVudEdlbmVyYXRvci5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTlBQ0Mw
N0FEMjVDODEzMkQwMERDNjM4NiAvKiBNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0TWFu
YWdlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOUFD
QzA3QUMyNUM4MTMyRDAwREM2Mzg2IC8qIE1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RN
YW5hZ2VyLmggKi87IH07CisJCTlBQ0MwN0IxMjVDODE1RDgwMERDNjM4NiAvKiBNZWRpYUtleVN5
c3RlbVBlcm1pc3Npb25SZXF1ZXN0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA5QUNDMDdCMDI1QzgxNUQ4MDBEQzYzODYgLyogTWVkaWFLZXlTeXN0ZW1Q
ZXJtaXNzaW9uUmVxdWVzdC5oICovOyB9OworCQk5QUNDMDdCMzI1QzgxNUYzMDBEQzYzODYgLyog
TWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOUFDQzA3QjIyNUM4MTVGMzAwREM2
Mzg2IC8qIE1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuaCAqLzsg
fTsKKwkJOUFDQzA3QjUyNUM4MTYwQzAwREM2Mzg2IC8qIE1lZGlhS2V5U3lzdGVtUGVybWlzc2lv
blJlcXVlc3RQcm94eS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gOUFDQzA3QjQyNUM4MTYwQjAwREM2Mzg2IC8qIE1lZGlhS2V5U3lzdGVtUGVybWlzc2lv
blJlcXVlc3RQcm94eS5oICovOyB9OworCQk5QUNDMDdCNzI1QzgxRDM0MDBEQzYzODYgLyogV2Vi
TWVkaWFLZXlTeXN0ZW1DbGllbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDlBQ0MwN0I2MjVDODFEMzMwMERDNjM4NiAvKiBXZWJNZWRpYUtleVN5c3Rl
bUNsaWVudC5oICovOyB9OworCQk5QUNDMDdCOTI1QzgyMTg0MDBEQzYzODYgLyogV0tNZWRpYUtl
eVN5c3RlbVBlcm1pc3Npb25DYWxsYmFjay5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gOUFDQzA3QjgyNUM4MjE4MzAwREM2Mzg2IC8qIFdLTWVkaWFLZXlT
eXN0ZW1QZXJtaXNzaW9uQ2FsbGJhY2suaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQ
cml2YXRlLCApOyB9OyB9OwogCQk5QjAyRTBDQjIzNUVCOTUzMDA0MDQ0QjIgLyogX1dLVGV4dE1h
bmlwdWxhdGlvbkRlbGVnYXRlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA5QjAyRTBDOTIzNUVCNjJEMDA0MDQ0QjIgLyogX1dLVGV4dE1hbmlwdWxhdGlv
bkRlbGVnYXRlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsg
fTsKIAkJOUIwMkUwQ0MyMzVFQjk1NzAwNDA0NEIyIC8qIF9XS1RleHRNYW5pcHVsYXRpb25JdGVt
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5QjAyRTBD
QTIzNUVCODg0MDA0MDQ0QjIgLyogX1dLVGV4dE1hbmlwdWxhdGlvbkl0ZW0uaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk5QjAyRTBENzIzNUZDOTRG
MDA0MDQ0QjIgLyogX1dLVGV4dE1hbmlwdWxhdGlvblRva2VuLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5QjAyRTBDRDIzNUVCOTY3MDA0MDQ0QjIgLyog
X1dLVGV4dE1hbmlwdWxhdGlvblRva2VuLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAo
UHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTQ4NjcsNiArNDg3MywxMiBAQAogCQk5OUU3MTg5NjIxRjc5
RDlEMDA1NUU5NzUgLyogX1dLVG91Y2hFdmVudEdlbmVyYXRvci5tbSAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IF9XS1RvdWNoRXZlbnRHZW5lcmF0b3IubW07IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTk5RTcxODk4MjFGNzlEOUUwMDU1RTk3NSAvKiBfV0tU
b3VjaEV2ZW50R2VuZXJhdG9yLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IF9X
S1RvdWNoRXZlbnRHZW5lcmF0b3IuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTlG
NjQyRDIxRkFCRTM3ODAwOTYyMUU5IC8qIENvb3JkaW5hdGVTeXN0ZW0uaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gQ29vcmRpbmF0ZVN5c3RlbS5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQk5QUNDMDdBQzI1QzgxMzJEMDBEQzYzODYgLyogTWVkaWFLZXlTeXN0ZW1Q
ZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1l
ID0gTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIuaDsgcGF0aCA9IEVuY3J5
cHRlZE1lZGlhL01lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTlBQ0MwN0IwMjVDODE1RDgwMERDNjM4NiAvKiBNZWRp
YUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IE1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3QuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJOUFDQzA3QjIyNUM4MTVGMzAwREM2Mzg2IC8qIE1lZGlhS2V5U3lzdGVt
UGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5QUNDMDdCNDI1QzgxNjBCMDBEQzYzODYgLyog
TWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdFByb3h5LmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IE1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RQcm94eS5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5QUNDMDdCNjI1QzgxRDMzMDBEQzYzODYgLyog
V2ViTWVkaWFLZXlTeXN0ZW1DbGllbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gV2ViTWVkaWFLZXlTeXN0ZW1DbGllbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJOUFDQzA3QjgyNUM4MjE4MzAwREM2Mzg2IC8qIFdLTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9u
Q2FsbGJhY2suaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0tNZWRpYUtleVN5
c3RlbVBlcm1pc3Npb25DYWxsYmFjay5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5
QjAyRTBDOTIzNUVCNjJEMDA0MDQ0QjIgLyogX1dLVGV4dE1hbmlwdWxhdGlvbkRlbGVnYXRlLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IF9XS1RleHRNYW5pcHVsYXRpb25EZWxlZ2F0ZS5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk5QjAyRTBDQTIzNUVCODg0MDA0MDQ0QjIgLyogX1dLVGV4dE1h
bmlwdWxhdGlvbkl0ZW0uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gX1dLVGV4dE1hbmlwdWxhdGlvbkl0ZW0u
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOUIwMkUwQ0QyMzVFQjk2NzAwNDA0NEIy
IC8qIF9XS1RleHRNYW5pcHVsYXRpb25Ub2tlbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBfV0tUZXh0TWFu
aXB1bGF0aW9uVG9rZW4uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTkzMjksNiAr
OTM0MSwxNCBAQAogCQkJcGF0aCA9IGNvY29hOwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsK
IAkJfTsKKwkJOUFDQzA3QTkyNUM4MTJFNzAwREM2Mzg2IC8qIEVuY3J5cHRlZE1lZGlhICovID0g
eworCQkJaXNhID0gUEJYR3JvdXA7CisJCQljaGlsZHJlbiA9ICgKKwkJCQk5QUNDMDdBQzI1Qzgx
MzJEMDBEQzYzODYgLyogTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIuaCAq
LywKKwkJCSk7CisJCQluYW1lID0gRW5jcnlwdGVkTWVkaWE7CisJCQlzb3VyY2VUcmVlID0gIjxn
cm91cD4iOworCQl9OwogCQlBMTU3OTlBQzI1ODQ0MzMxMDA1MjgyMzYgLyogTWVkaWFGb3JtYXRS
ZWFkZXIgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKApAQCAtOTQ0
Nyw2ICs5NDY3LDcgQEAKIAkJCQk0MUQxMjlEODFGM0QxMDE0MDBEMTVFNDcgLyogQ2FjaGUgKi8s
CiAJCQkJN0M2RTcwRjgxOEIyRDQ3RTAwRjI0RTJFIC8qIGNvY29hICovLAogCQkJCTUxMkE5NzU0
MTgwREY5MjcwMDM5QTE0OSAvKiBEYXRhYmFzZXMgKi8sCisJCQkJOUFDQzA3QTkyNUM4MTJFNzAw
REM2Mzg2IC8qIEVuY3J5cHRlZE1lZGlhICovLAogCQkJCUJDQUNDNDNCMTZCMjRDNUQwMEI2RTA5
MiAvKiBFbnRyeVBvaW50ICovLAogCQkJCUUxNzA4NzZEMTZENkNBNzIwMEY5OTIyNiAvKiBGaWxl
QVBJICovLAogCQkJCUNENzNCQTNEMTMxQTJBMjEwMEVFREVEMiAvKiBGdWxsU2NyZWVuICovLApA
QCAtOTUxMiw2ICs5NTMzLDcgQEAKIAkJCQlCQzAzMkQ2QTEwRjQzNzhEMDA1OEMxNUEgLyogV2Vi
RnJhbWVMb2FkZXJDbGllbnQuaCAqLywKIAkJCQlCQzFCRTFERjEyRDU0QTQxMDAwNEEyMjggLyog
V2ViR2VvbG9jYXRpb25DbGllbnQuY3BwICovLAogCQkJCUJDMUJFMURFMTJENTRBNDEwMDA0QTIy
OCAvKiBXZWJHZW9sb2NhdGlvbkNsaWVudC5oICovLAorCQkJCTlBQ0MwN0I2MjVDODFEMzMwMERD
NjM4NiAvKiBXZWJNZWRpYUtleVN5c3RlbUNsaWVudC5oICovLAogCQkJCTUxM0ZGQjhFMjAxNDU5
QzIwMDI1OTZFQSAvKiBXZWJNZXNzYWdlUG9ydENoYW5uZWxQcm92aWRlci5jcHAgKi8sCiAJCQkJ
NTEzRkZCOEYyMDE0NTlDMjAwMjU5NkVBIC8qIFdlYk1lc3NhZ2VQb3J0Q2hhbm5lbFByb3ZpZGVy
LmggKi8sCiAJCQkJMzEwOTk5NzExNDZDNzU5QjAwMjlERUI5IC8qIFdlYk5vdGlmaWNhdGlvbkNs
aWVudC5jcHAgKi8sCkBAIC05NjUxLDYgKzk2NzMsOSBAQAogCQkJCTVDRUFCQTJCMjMzMzI1MTQw
MDc5Nzc5NyAvKiBMZWdhY3lHbG9iYWxTZXR0aW5ncy5jcHAgKi8sCiAJCQkJNUNFQUJBMkEyMzMz
MjQ3NzAwNzk3Nzk3IC8qIExlZ2FjeUdsb2JhbFNldHRpbmdzLmggKi8sCiAJCQkJMzE2MDdGMzgx
OTYyNzAwMjAwOUI4N0RBIC8qIExlZ2FjeVNlc3Npb25TdGF0ZUNvZGluZy5oICovLAorCQkJCTlB
Q0MwN0IwMjVDODE1RDgwMERDNjM4NiAvKiBNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0
LmggKi8sCisJCQkJOUFDQzA3QjIyNUM4MTVGMzAwREM2Mzg2IC8qIE1lZGlhS2V5U3lzdGVtUGVy
bWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuaCAqLywKKwkJCQk5QUNDMDdCNDI1QzgxNjBCMDBE
QzYzODYgLyogTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdFByb3h5LmggKi8sCiAJCQkJ
OTM0MjU4OTgyNTVCNTM0QjAwNTlFRUREIC8qIE1lZGlhUGVybWlzc2lvblV0aWxpdGllcy5oICov
LAogCQkJCUJDNkVEQUE1MTExMjcxQzYwMEU3Njc4QiAvKiBQYWdlQ2xpZW50LmggKi8sCiAJCQkJ
MUFDNzUzNzkxODNBOUZEQTAwNzJDQjE1IC8qIFBhZ2VMb2FkU3RhdGUuY3BwICovLApAQCAtOTk2
Myw2ICs5OTg4LDcgQEAKIAkJCQk1MUE5RTEwODEzMTVDRDE4MDA5RTcwMzEgLyogV0tLZXlWYWx1
ZVN0b3JhZ2VNYW5hZ2VyLmNwcCAqLywKIAkJCQk1MUE5RTEwOTEzMTVDRDE4MDA5RTcwMzEgLyog
V0tLZXlWYWx1ZVN0b3JhZ2VNYW5hZ2VyLmggKi8sCiAJCQkJMkQ3OTBBOUUxQUQ3MTY0OTAwQUI5
MEIzIC8qIFdLTGF5b3V0TW9kZS5oICovLAorCQkJCTlBQ0MwN0I4MjVDODIxODMwMERDNjM4NiAv
KiBXS01lZGlhS2V5U3lzdGVtUGVybWlzc2lvbkNhbGxiYWNrLmggKi8sCiAJCQkJNUNBQkRDODQy
MkM0MEZDQzAwMUVERThFIC8qIFdLTWVzc2FnZUxpc3RlbmVyLmNwcCAqLywKIAkJCQk1Q0FCREM4
NTIyQzQwRkNDMDAxRURFOEUgLyogV0tNZXNzYWdlTGlzdGVuZXIuaCAqLywKIAkJCQlDMTFFMTY5
MzIxMkI4N0M1MDA5ODVGRjYgLyogV0tNb2NrRGlzcGxheS5jcHAgKi8sCkBAIC0xMTY4NCw2ICsx
MTcxMCwxMCBAQAogCQkJCUJDQzU2Rjc5MTE1OTk1N0QwMDFDQ0FGOSAvKiBNYWNoUG9ydC5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJMUEyNEI1RjMxMUY1MzFFODAwQzM4MjY5IC8qIE1hY2hVdGlsaXRp
ZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCUExNTc5OUJFMjU4NDQzMzIwMDUyODIzNiAvKiBNZWRp
YUZvcm1hdFJlYWRlci5oIGluIEhlYWRlcnMgKi8sCisJCQkJOUFDQzA3QjEyNUM4MTVEODAwREM2
Mzg2IC8qIE1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3QuaCBpbiBIZWFkZXJzICovLAor
CQkJCTlBQ0MwN0FEMjVDODEzMkQwMERDNjM4NiAvKiBNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25S
ZXF1ZXN0TWFuYWdlci5oIGluIEhlYWRlcnMgKi8sCisJCQkJOUFDQzA3QjMyNUM4MTVGMzAwREM2
Mzg2IC8qIE1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuaCBpbiBI
ZWFkZXJzICovLAorCQkJCTlBQ0MwN0I1MjVDODE2MEMwMERDNjM4NiAvKiBNZWRpYUtleVN5c3Rl
bVBlcm1pc3Npb25SZXF1ZXN0UHJveHkuaCBpbiBIZWFkZXJzICovLAogCQkJCTkzNDI1ODlBMjU1
QjUzNUEwMDU5RUVERCAvKiBNZWRpYVBlcm1pc3Npb25VdGlsaXRpZXMuaCBpbiBIZWFkZXJzICov
LAogCQkJCTA3RTE5RUZDMjNENDAxRjEwMDk0RkZCNCAvKiBNZWRpYVBsYXllclByaXZhdGVSZW1v
dGVNZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMDdFMTlFRkQyM0Q0MDFGMTAwOTRGRkI0
IC8qIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZU1lc3NhZ2VzUmVwbGllcy5oIGluIEhlYWRlcnMg
Ki8sCkBAIC0xMTczNyw2ICsxMTc2Nyw3IEBACiAJCQkJODM5OTAyMDMxQkU5QTAyQjAwMEYzNjUz
IC8qIE5ldHdvcmtMb2FkLmggaW4gSGVhZGVycyAqLywKIAkJCQk4M0Q0NTRENzFCRTlEM0M0MDA2
QzkzQkQgLyogTmV0d29ya0xvYWRDbGllbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTgzOTE0OTY1
MUJFQTgzODUwMEQyRDk1MyAvKiBOZXR3b3JrTG9hZFBhcmFtZXRlcnMuaCBpbiBIZWFkZXJzICov
LAorCQkJCUU0N0ZDOEEwMjVCODMzMUMwMDU0OTVGQyAvKiBOZXR3b3JrTG9hZFNjaGVkdWxlci5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJNTE3OTU1NkExNjI4NzZGMzAwRkE0M0I2IC8qIE5ldHdvcmtQ
cm9jZXNzLmggaW4gSGVhZGVycyAqLywKIAkJCQk1MTdDRjBFNDE2M0E0ODZDMDBDMjk1MEUgLyog
TmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uTWVzc2FnZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTVD
MTQyNkVEMUMyM0Y4MDkwMEQ0MTE4MyAvKiBOZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVy
cy5oIGluIEhlYWRlcnMgKi8sCkBAIC0xMjEwMCw3ICsxMjEzMSw2IEBACiAJCQkJOTNBODhCMzMx
QkM2RTlDRDAwQUJBNUMyIC8qIFdlYkhpdFRlc3RSZXN1bHREYXRhLmggaW4gSGVhZGVycyAqLywK
IAkJCQlGNDRERkVCMjFFOUU3NTJGMDAzOEQxOTYgLyogV2ViSWNvblV0aWxpdGllcy5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJOTMyNjExNjEyMTQwNTRGNDAwMDgwNkU3IC8qIFdlYklEQkNvbm5lY3Rp
b25Ub0NsaWVudC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJRTQ3RkM4QTAyNUI4MzMxQzAwNTQ5NUZD
IC8qIE5ldHdvcmtMb2FkU2NoZWR1bGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk1MTQxMjk5NDFD
NjQyOEJCMDA1OUU3MTQgLyogV2ViSURCQ29ubmVjdGlvblRvU2VydmVyLmggaW4gSGVhZGVycyAq
LywKIAkJCQk1MTA1MjM3NDFDNzNEMzhCMDA3OTkzQ0IgLyogV2ViSURCQ29ubmVjdGlvblRvU2Vy
dmVyTWVzc2FnZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTkzM0U4MzU1MjNBMDdDMDYwMERFRjI4
OSAvKiBXZWJJREJTZXJ2ZXIuaCBpbiBIZWFkZXJzICovLApAQCAtMTIxMjYsNiArMTIxNTYsNyBA
QAogCQkJCUJDOUJBNTA1MTY5N0M0NTMwMEU0NDYxNiAvKiBXZWJLaXQySW5pdGlhbGl6ZS5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJMUE2MjgwQzcxOTE5OTUwQzAwNkFEOUY5IC8qIFdlYktpdFByaXZh
dGUuaCBpbiBIZWFkZXJzICovLAogCQkJCUNEMDAzQTUzMTlENDlCNUQwMDVBQkNFMCAvKiBXZWJN
ZWRpYUtleVN0b3JhZ2VNYW5hZ2VyLmggaW4gSGVhZGVycyAqLywKKwkJCQk5QUNDMDdCNzI1Qzgx
RDM0MDBEQzYzODYgLyogV2ViTWVkaWFLZXlTeXN0ZW1DbGllbnQuaCBpbiBIZWFkZXJzICovLAog
CQkJCTlCNUJFQzI2MjQwMEY0QTkwMDcwQzZFRiAvKiBXZWJNZWRpYVN0cmF0ZWd5LmggaW4gSGVh
ZGVycyAqLywKIAkJCQkyRDNFRjQ0MzE5MTc2NDYzMDAwMzQxODQgLyogV2ViTWVtb3J5UHJlc3N1
cmVIYW5kbGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk5MDk4NTRFRDEyQkM0RTE4MDAwQUQwODAg
LyogV2ViTWVtb3J5U2FtcGxlci5oIGluIEhlYWRlcnMgKi8sCkBAIC0xMjQzNCw2ICsxMjQ2NSw3
IEBACiAJCQkJMkQ3OTBBOUYxQUQ3MTY0OTAwQUI5MEIzIC8qIFdLTGF5b3V0TW9kZS5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJNUNFOTEyMTQyMjkzQzI4MDAwNUJFQzc4IC8qIFdLTWFpbi5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJQTE1NzlCMjgyNTg0OTBFNTAwNTI4MjM2IC8qIFdLTWVkaWFGb3JtYXRS
ZWFkZXIuaCBpbiBIZWFkZXJzICovLAorCQkJCTlBQ0MwN0I5MjVDODIxODQwMERDNjM4NiAvKiBX
S01lZGlhS2V5U3lzdGVtUGVybWlzc2lvbkNhbGxiYWNrLmggaW4gSGVhZGVycyAqLywKIAkJCQk0
OTkxN0RBNzI1MkQ2NDlFMDA1MDMxM0YgLyogV0tNZWRpYVBsYXliYWNrU3RhdGUuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTFBQjQwRUU2MUJGNjc3RTMwMEJBODFCRSAvKiBXS01lbnVJdGVtSWRlbnRp
ZmllcnNQcml2YXRlLmggaW4gSGVhZGVycyAqLywKIAkJCQk1Q0FCREM4NjIyQzQwRkRFMDAxRURF
OEUgLyogV0tNZXNzYWdlTGlzdGVuZXIuaCBpbiBIZWFkZXJzICovLApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0VuY3J5cHRlZE1lZGlhL01lZGlhS2V5U3lzdGVtUGVybWlz
c2lvblJlcXVlc3RNYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9FbmNyeXB0
ZWRNZWRpYS9NZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlci5jcHAKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uYTI0OTg4MmQwN2E5OWU3NWQwOTFiZmI3MmFlZWM4MzE2NDg1NzczOAotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9FbmNyeXB0ZWRNZWRpYS9NZWRpYUtl
eVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlci5jcHAKQEAgLTAsMCArMSwxMzIgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgSWdhbGlhIFMuTC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMg
YGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRS
SUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUg
ImNvbmZpZy5oIgorI2luY2x1ZGUgIk1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RNYW5h
Z2VyLmgiCisKKyNpZiBFTkFCTEUoRU5DUllQVEVEX01FRElBKQorCisjaW5jbHVkZSAiTG9nZ2lu
Zy5oIgorI2luY2x1ZGUgIldlYkNvcmVBcmd1bWVudENvZGVycy5oIgorI2luY2x1ZGUgIldlYkZy
YW1lLmgiCisjaW5jbHVkZSAiV2ViUGFnZS5oIgorI2luY2x1ZGUgIldlYlBhZ2VQcm94eU1lc3Nh
Z2VzLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9Eb2N1bWVudC5oPgorI2luY2x1ZGUgPFdlYkNvcmUv
RnJhbWUuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0ZyYW1lTG9hZGVyLmg+CisjaW5jbHVkZSA8V2Vi
Q29yZS9TZWN1cml0eU9yaWdpbi5oPgorI2luY2x1ZGUgPFdlYkNvcmUvU2VjdXJpdHlPcmlnaW5E
YXRhLmg+CisKK25hbWVzcGFjZSBXZWJLaXQgewordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisK
K01lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyOjpNZWRpYUtleVN5c3RlbVBl
cm1pc3Npb25SZXF1ZXN0TWFuYWdlcihXZWJQYWdlJiBwYWdlKQorICAgIDogbV9wYWdlKHBhZ2Up
Cit7Cit9CisKK3ZvaWQgTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXI6OnN0
YXJ0TWVkaWFLZXlTeXN0ZW1SZXF1ZXN0KE1lZGlhS2V5U3lzdGVtUmVxdWVzdCYgcmVxdWVzdCkK
K3sKKyAgICBEb2N1bWVudCogZG9jdW1lbnQgPSByZXF1ZXN0LmRvY3VtZW50KCk7CisgICAgRnJh
bWUqIGZyYW1lID0gZG9jdW1lbnQgPyBkb2N1bWVudC0+ZnJhbWUoKSA6IG51bGxwdHI7CisKKyAg
ICBpZiAoIWZyYW1lIHx8ICFkb2N1bWVudC0+cGFnZSgpKSB7CisgICAgICAgIHJlcXVlc3QuZGVu
eShlbXB0eVN0cmluZygpKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGlmIChkb2N1
bWVudC0+cGFnZSgpLT5jYW5TdGFydE1lZGlhKCkpIHsKKyAgICAgICAgc2VuZE1lZGlhS2V5U3lz
dGVtUmVxdWVzdChyZXF1ZXN0KTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGF1dG8m
IHBlbmRpbmdSZXF1ZXN0cyA9IG1fcGVuZGluZ01lZGlhS2V5U3lzdGVtUmVxdWVzdHMuYWRkKGRv
Y3VtZW50LCBWZWN0b3I8UmVmPE1lZGlhS2V5U3lzdGVtUmVxdWVzdD4+KCkpLml0ZXJhdG9yLT52
YWx1ZTsKKyAgICBwZW5kaW5nUmVxdWVzdHMuYXBwZW5kKHJlcXVlc3QpOworfQorCit2b2lkIE1l
ZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyOjpzZW5kTWVkaWFLZXlTeXN0ZW1S
ZXF1ZXN0KE1lZGlhS2V5U3lzdGVtUmVxdWVzdCYgdXNlclJlcXVlc3QpCit7CisgICAgYXV0byog
ZnJhbWUgPSB1c2VyUmVxdWVzdC5kb2N1bWVudCgpID8gdXNlclJlcXVlc3QuZG9jdW1lbnQoKS0+
ZnJhbWUoKSA6IG51bGxwdHI7CisgICAgaWYgKCFmcmFtZSkgeworICAgICAgICB1c2VyUmVxdWVz
dC5kZW55KGVtcHR5U3RyaW5nKCkpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgbV9v
bmdvaW5nTWVkaWFLZXlTeXN0ZW1SZXF1ZXN0cy5hZGQodXNlclJlcXVlc3QuaWRlbnRpZmllcigp
LCBtYWtlUmVmKHVzZXJSZXF1ZXN0KSk7CisKKyAgICBXZWJGcmFtZSogd2ViRnJhbWUgPSBXZWJG
cmFtZTo6ZnJvbUNvcmVGcmFtZSgqZnJhbWUpOworICAgIEFTU0VSVCh3ZWJGcmFtZSk7CisKKyAg
ICBhdXRvKiB0b3BMZXZlbERvY3VtZW50T3JpZ2luID0gdXNlclJlcXVlc3QudG9wTGV2ZWxEb2N1
bWVudE9yaWdpbigpOworICAgIG1fcGFnZS5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OlJl
cXVlc3RNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25Gb3JGcmFtZSh1c2VyUmVxdWVzdC5pZGVudGlm
aWVyKCkudG9VSW50NjQoKSwgd2ViRnJhbWUtPmZyYW1lSUQoKSwgdG9wTGV2ZWxEb2N1bWVudE9y
aWdpbi0+ZGF0YSgpLCB1c2VyUmVxdWVzdC5rZXlTeXN0ZW0oKSkpOworfQorCit2b2lkIE1lZGlh
S2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyOjpjYW5jZWxNZWRpYUtleVN5c3RlbVJl
cXVlc3QoTWVkaWFLZXlTeXN0ZW1SZXF1ZXN0JiByZXF1ZXN0KQoreworICAgIGlmIChhdXRvIHJl
bW92ZWRSZXF1ZXN0ID0gbV9vbmdvaW5nTWVkaWFLZXlTeXN0ZW1SZXF1ZXN0cy50YWtlKHJlcXVl
c3QuaWRlbnRpZmllcigpKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgYXV0byogZG9jdW1lbnQg
PSByZXF1ZXN0LmRvY3VtZW50KCk7CisgICAgaWYgKCFkb2N1bWVudCkKKyAgICAgICAgcmV0dXJu
OworCisgICAgYXV0byBpdGVyYXRvciA9IG1fcGVuZGluZ01lZGlhS2V5U3lzdGVtUmVxdWVzdHMu
ZmluZChkb2N1bWVudCk7CisgICAgaWYgKGl0ZXJhdG9yID09IG1fcGVuZGluZ01lZGlhS2V5U3lz
dGVtUmVxdWVzdHMuZW5kKCkpCisgICAgICAgIHJldHVybjsKKworICAgIGF1dG8mIHBlbmRpbmdS
ZXF1ZXN0cyA9IGl0ZXJhdG9yLT52YWx1ZTsKKyAgICBwZW5kaW5nUmVxdWVzdHMucmVtb3ZlRmly
c3RNYXRjaGluZyhbJnJlcXVlc3RdKGF1dG8mIGl0ZW0pIHsKKyAgICAgICAgcmV0dXJuICZyZXF1
ZXN0ID09IGl0ZW0ucHRyKCk7CisgICAgfSk7CisKKyAgICBpZiAoIXBlbmRpbmdSZXF1ZXN0cy5p
c0VtcHR5KCkpCisgICAgICAgIHJldHVybjsKKworICAgIG1fcGVuZGluZ01lZGlhS2V5U3lzdGVt
UmVxdWVzdHMucmVtb3ZlKGl0ZXJhdG9yKTsKK30KKwordm9pZCBNZWRpYUtleVN5c3RlbVBlcm1p
c3Npb25SZXF1ZXN0TWFuYWdlcjo6bWVkaWFLZXlTeXN0ZW1XYXNHcmFudGVkKHVpbnQ2NF90IHJl
cXVlc3RJRCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQor
eworICAgIGF1dG8gcmVxdWVzdCA9IG1fb25nb2luZ01lZGlhS2V5U3lzdGVtUmVxdWVzdHMudGFr
ZShtYWtlT2JqZWN0SWRlbnRpZmllcjxNZWRpYUtleVN5c3RlbVJlcXVlc3RJZGVudGlmaWVyVHlw
ZT4ocmVxdWVzdElEKSk7CisgICAgaWYgKCFyZXF1ZXN0KSB7CisgICAgICAgIGNvbXBsZXRpb25I
YW5kbGVyKCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICByZXF1ZXN0LT5hbGxvdyhX
VEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7Cit9CisKK3ZvaWQgTWVkaWFLZXlTeXN0ZW1QZXJt
aXNzaW9uUmVxdWVzdE1hbmFnZXI6Om1lZGlhS2V5U3lzdGVtV2FzRGVuaWVkKHVpbnQ2NF90IHJl
cXVlc3RJRCwgU3RyaW5nJiYgbWVzc2FnZSkKK3sKKyAgICBhdXRvIHJlcXVlc3QgPSBtX29uZ29p
bmdNZWRpYUtleVN5c3RlbVJlcXVlc3RzLnRha2UobWFrZU9iamVjdElkZW50aWZpZXI8TWVkaWFL
ZXlTeXN0ZW1SZXF1ZXN0SWRlbnRpZmllclR5cGU+KHJlcXVlc3RJRCkpOworICAgIGlmICghcmVx
dWVzdCkKKyAgICAgICAgcmV0dXJuOworCisgICAgcmVxdWVzdC0+ZGVueShXVEZNb3ZlKG1lc3Nh
Z2UpKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBFTkFCTEUoRU5D
UllQVEVEX01FRElBKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0VuY3J5
cHRlZE1lZGlhL01lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyLmggYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvRW5jcnlwdGVkTWVkaWEvTWVkaWFLZXlTeXN0ZW1QZXJtaXNz
aW9uUmVxdWVzdE1hbmFnZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44Njk1NWZiOWRlZDcxMTYxY2FkZjRhMjM2
OTAyYjJjNTQyMjU2OWE2Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL0VuY3J5cHRlZE1lZGlhL01lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RNYW5hZ2Vy
LmgKQEAgLTAsMCArMSw2MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBJZ2FsaWEgUy5M
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShFTkNSWVBURURfTUVESUEp
CisKKyNpbmNsdWRlICJTYW5kYm94RXh0ZW5zaW9uLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9NZWRp
YUtleVN5c3RlbUNsaWVudC5oPgorI2luY2x1ZGUgPFdlYkNvcmUvTWVkaWFLZXlTeXN0ZW1SZXF1
ZXN0Lmg+CisjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KKyNpbmNsdWRlIDx3dGYvUmVmLmg+Cisj
aW5jbHVkZSA8d3RmL1JlZlB0ci5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3MgV2Vi
UGFnZTsKKworY2xhc3MgTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIgewor
ICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOworcHVibGljOgorICAgIGV4cGxpY2l0IE1lZGlh
S2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyKFdlYlBhZ2UmKTsKKyAgICB+TWVkaWFL
ZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIoKSA9IGRlZmF1bHQ7CisKKyAgICB2b2lk
IHN0YXJ0TWVkaWFLZXlTeXN0ZW1SZXF1ZXN0KFdlYkNvcmU6Ok1lZGlhS2V5U3lzdGVtUmVxdWVz
dCYpOworICAgIHZvaWQgY2FuY2VsTWVkaWFLZXlTeXN0ZW1SZXF1ZXN0KFdlYkNvcmU6Ok1lZGlh
S2V5U3lzdGVtUmVxdWVzdCYpOworICAgIHZvaWQgbWVkaWFLZXlTeXN0ZW1XYXNHcmFudGVkKHVp
bnQ2NF90LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOworICAgIHZvaWQgbWVkaWFLZXlT
eXN0ZW1XYXNEZW5pZWQodWludDY0X3QsIFN0cmluZyYmKTsKKworcHJpdmF0ZToKKyAgICB2b2lk
IHNlbmRNZWRpYUtleVN5c3RlbVJlcXVlc3QoV2ViQ29yZTo6TWVkaWFLZXlTeXN0ZW1SZXF1ZXN0
Jik7CisKKyAgICBXZWJQYWdlJiBtX3BhZ2U7CisKKyAgICBIYXNoTWFwPFdlYkNvcmU6Ok1lZGlh
S2V5U3lzdGVtUmVxdWVzdElkZW50aWZpZXIsIFJlZjxXZWJDb3JlOjpNZWRpYUtleVN5c3RlbVJl
cXVlc3Q+PiBtX29uZ29pbmdNZWRpYUtleVN5c3RlbVJlcXVlc3RzOworICAgIEhhc2hNYXA8UmVm
UHRyPFdlYkNvcmU6OkRvY3VtZW50PiwgVmVjdG9yPFJlZjxXZWJDb3JlOjpNZWRpYUtleVN5c3Rl
bVJlcXVlc3Q+Pj4gbV9wZW5kaW5nTWVkaWFLZXlTeXN0ZW1SZXF1ZXN0czsKK307CisKK30gLy8g
bmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gRU5BQkxFKE1FRElBX1NUUkVBTSkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJNZWRpYUtl
eVN5c3RlbUNsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBv
cnQvV2ViTWVkaWFLZXlTeXN0ZW1DbGllbnQuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmNkMmI4YTViZDM5ZDAz
MTdhNDZmYTMxYjg0NjE5NjM1N2M3YmYxMTgKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViTWVkaWFLZXlTeXN0ZW1DbGllbnQuY3Bw
CkBAIC0wLDAgKzEsNjEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgSWdhbGlhIFMuTC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldlYk1lZGlhS2V5U3lz
dGVtQ2xpZW50LmgiCisKKyNpZiBFTkFCTEUoRU5DUllQVEVEX01FRElBKQorCisjaW5jbHVkZSAi
TWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIuaCIKKyNpbmNsdWRlICJXZWJQ
YWdlLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9NZWRpYUtleVN5c3RlbUNvbnRyb2xsZXIuaD4KKyNp
bmNsdWRlIDxXZWJDb3JlL01lZGlhS2V5U3lzdGVtUmVxdWVzdC5oPgorCituYW1lc3BhY2UgV2Vi
S2l0IHsKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOworCitXZWJNZWRpYUtleVN5c3RlbUNsaWVu
dDo6V2ViTWVkaWFLZXlTeXN0ZW1DbGllbnQoV2ViUGFnZSYgcGFnZSkKKyAgICA6IG1fcGFnZShw
YWdlKQoreworfQorCit2b2lkIFdlYk1lZGlhS2V5U3lzdGVtQ2xpZW50OjpwYWdlRGVzdHJveWVk
KCkKK3sKKyAgICBkZWxldGUgdGhpczsKK30KKwordm9pZCBXZWJNZWRpYUtleVN5c3RlbUNsaWVu
dDo6cmVxdWVzdE1lZGlhS2V5U3lzdGVtKE1lZGlhS2V5U3lzdGVtUmVxdWVzdCYgcmVxdWVzdCkK
K3sKKyAgICBtX3BhZ2UubWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIoKS5z
dGFydE1lZGlhS2V5U3lzdGVtUmVxdWVzdChyZXF1ZXN0KTsKK30KKwordm9pZCBXZWJNZWRpYUtl
eVN5c3RlbUNsaWVudDo6Y2FuY2VsTWVkaWFLZXlTeXN0ZW1SZXF1ZXN0KE1lZGlhS2V5U3lzdGVt
UmVxdWVzdCYgcmVxdWVzdCkKK3sKKyAgICBtX3BhZ2UubWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9u
UmVxdWVzdE1hbmFnZXIoKS5jYW5jZWxNZWRpYUtleVN5c3RlbVJlcXVlc3QocmVxdWVzdCk7Cit9
CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdDsKKworI2VuZGlmIC8vIEVOQUJMRShFTkNSWVBURURf
TUVESUEpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBv
cnQvV2ViTWVkaWFLZXlTeXN0ZW1DbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJDb3JlU3VwcG9ydC9XZWJNZWRpYUtleVN5c3RlbUNsaWVudC5oCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmY0ODAz
MmY4YjlhYTYwYWZiOTE4ZTA0M2Y1NDgxMWZmYjMyMjc3ODYKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViTWVkaWFLZXlTeXN0ZW1D
bGllbnQuaApAQCAtMCwwICsxLDUzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIElnYWxp
YSBTLkwuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAq
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKEVOQ1JZUFRFRF9N
RURJQSkKKworI2luY2x1ZGUgPFdlYkNvcmUvTWVkaWFLZXlTeXN0ZW1DbGllbnQuaD4KKworbmFt
ZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIFdlYlBhZ2U7CisKK2NsYXNzIFdlYk1lZGlhS2V5U3lz
dGVtQ2xpZW50IDogcHVibGljIFdlYkNvcmU6Ok1lZGlhS2V5U3lzdGVtQ2xpZW50IHsKKyAgICBX
VEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKK3B1YmxpYzoKKyAgICBXZWJNZWRpYUtleVN5c3RlbUNs
aWVudChXZWJQYWdlJik7CisgICAgfldlYk1lZGlhS2V5U3lzdGVtQ2xpZW50KCkgeyB9CisKK3By
aXZhdGU6CisgICAgdm9pZCBwYWdlRGVzdHJveWVkKCkgb3ZlcnJpZGU7CisKKyAgICB2b2lkIHJl
cXVlc3RNZWRpYUtleVN5c3RlbShXZWJDb3JlOjpNZWRpYUtleVN5c3RlbVJlcXVlc3QmKSBvdmVy
cmlkZTsKKyAgICB2b2lkIGNhbmNlbE1lZGlhS2V5U3lzdGVtUmVxdWVzdChXZWJDb3JlOjpNZWRp
YUtleVN5c3RlbVJlcXVlc3QmKSBvdmVycmlkZTsKKworICAgIFdlYlBhZ2UmIG1fcGFnZTsKK307
CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShFTkNSWVBURURf
TUVESUEpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQ
YWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCmlu
ZGV4IGNhZTBhOTcxOGNmN2ZmOWY0MDIxZjZjY2E5MDRlMjc0YmQxYjMzM2UuLmFjN2UwMzQ4ZDZj
MjFjZDY0ZDM5MDNmNGQ5ODA3OTNjMjVkMDlmODcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCkBAIC00Niw2ICs0Niw3IEBACiAjaW5jbHVkZSAiTGli
V2ViUlRDUHJvdmlkZXIuaCIKICNpbmNsdWRlICJMb2FkUGFyYW1ldGVycy5oIgogI2luY2x1ZGUg
IkxvZ2dpbmcuaCIKKyNpbmNsdWRlICJNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0TWFu
YWdlci5oIgogI2luY2x1ZGUgIk1lZGlhUGxheWJhY2tTdGF0ZS5oIgogI2luY2x1ZGUgIk1lZGlh
UmVjb3JkZXJQcm92aWRlci5oIgogI2luY2x1ZGUgIk5ldHNjYXBlUGx1Z2luLmgiCkBAIC0xMDQs
NiArMTA1LDcgQEAKICNpbmNsdWRlICJXZWJLZXlib2FyZEV2ZW50LmgiCiAjaW5jbHVkZSAiV2Vi
TG9hZGVyU3RyYXRlZ3kuaCIKICNpbmNsdWRlICJXZWJNZWRpYUtleVN0b3JhZ2VNYW5hZ2VyLmgi
CisjaW5jbHVkZSAiV2ViTWVkaWFLZXlTeXN0ZW1DbGllbnQuaCIKICNpbmNsdWRlICJXZWJNZWRp
YVN0cmF0ZWd5LmgiCiAjaW5jbHVkZSAiV2ViTW91c2VFdmVudC5oIgogI2luY2x1ZGUgIldlYk5v
dGlmaWNhdGlvbkNsaWVudC5oIgpAQCAtNDY3LDYgKzQ2OSw5IEBAIFdlYlBhZ2U6OldlYlBhZ2Uo
UGFnZUlkZW50aWZpZXIgcGFnZUlELCBXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzJiYgcGFyYW1l
dGVycykKICNlbmRpZgogI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCiAgICAgLCBtX3VzZXJNZWRp
YVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlciB7IG1ha2VVbmlxdWVSZWY8VXNlck1lZGlhUGVybWlz
c2lvblJlcXVlc3RNYW5hZ2VyPigqdGhpcykgfQorI2VuZGlmCisjaWYgRU5BQkxFKEVOQ1JZUFRF
RF9NRURJQSkKKyAgICAsIG1fbWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIg
eyBtYWtlVW5pcXVlUmVmPE1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyPigq
dGhpcykgfQogI2VuZGlmCiAgICAgLCBtX3BhZ2VTY3JvbGxlZEh5c3RlcmVzaXMoW3RoaXNdKFBB
TDo6SHlzdGVyZXNpc1N0YXRlIHN0YXRlKSB7IGlmIChzdGF0ZSA9PSBQQUw6Okh5c3RlcmVzaXNT
dGF0ZTo6U3RvcHBlZCkgcGFnZVN0b3BwZWRTY3JvbGxpbmcoKTsgfSwgcGFnZVNjcm9sbEh5c3Rl
cmVzaXNEdXJhdGlvbikKICAgICAsIG1fY2FuUnVuQmVmb3JlVW5sb2FkQ29uZmlybVBhbmVsKHBh
cmFtZXRlcnMuY2FuUnVuQmVmb3JlVW5sb2FkQ29uZmlybVBhbmVsKQpAQCAtNjQ4LDYgKzY1Myw5
IEBAIFdlYlBhZ2U6OldlYlBhZ2UoUGFnZUlkZW50aWZpZXIgcGFnZUlELCBXZWJQYWdlQ3JlYXRp
b25QYXJhbWV0ZXJzJiYgcGFyYW1ldGVycykKICNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQogICAg
IFdlYkNvcmU6OnByb3ZpZGVVc2VyTWVkaWFUbyhtX3BhZ2UuZ2V0KCksIG5ldyBXZWJVc2VyTWVk
aWFDbGllbnQoKnRoaXMpKTsKICNlbmRpZgorI2lmIEVOQUJMRShFTkNSWVBURURfTUVESUEpCisg
ICAgV2ViQ29yZTo6cHJvdmlkZU1lZGlhS2V5U3lzdGVtVG8obV9wYWdlLmdldCgpLCBuZXcgV2Vi
TWVkaWFLZXlTeXN0ZW1DbGllbnQoKnRoaXMpKTsKKyNlbmRpZgogCiAgICAgbV9wYWdlLT5zZXRD
b250cm9sbGVkQnlBdXRvbWF0aW9uKHBhcmFtZXRlcnMuY29udHJvbGxlZEJ5QXV0b21hdGlvbik7
CiAgICAgbV9wYWdlLT5zZXRIYXNSZXNvdXJjZUxvYWRDbGllbnQocGFyYW1ldGVycy5oYXNSZXNv
dXJjZUxvYWRDbGllbnQpOwpAQCAtNDUyMSw2ICs0NTI5LDE4IEBAIHZvaWQgV2ViUGFnZTo6Y2Fw
dHVyZURldmljZXNDaGFuZ2VkKCkKIAogI2VuZGlmCiAKKyNpZiBFTkFCTEUoRU5DUllQVEVEX01F
RElBKQordm9pZCBXZWJQYWdlOjptZWRpYUtleVN5c3RlbVdhc0dyYW50ZWQodWludDY0X3QgbWVk
aWFLZXlTeXN0ZW1JRCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5k
bGVyKQoreworICAgIG1fbWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXItPm1l
ZGlhS2V5U3lzdGVtV2FzR3JhbnRlZChtZWRpYUtleVN5c3RlbUlELCBXVEZNb3ZlKGNvbXBsZXRp
b25IYW5kbGVyKSk7Cit9CisKK3ZvaWQgV2ViUGFnZTo6bWVkaWFLZXlTeXN0ZW1XYXNEZW5pZWQo
dWludDY0X3QgbWVkaWFLZXlTeXN0ZW1JRCwgU3RyaW5nJiYgbWVzc2FnZSkKK3sKKyAgICBtX21l
ZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyLT5tZWRpYUtleVN5c3RlbVdhc0Rl
bmllZChtZWRpYUtleVN5c3RlbUlELCBXVEZNb3ZlKG1lc3NhZ2UpKTsKK30KKyNlbmRpZgorCiAj
aWYgIVBMQVRGT1JNKElPU19GQU1JTFkpCiB2b2lkIFdlYlBhZ2U6OmFkdmFuY2VUb05leHRNaXNz
cGVsbGluZyhib29sIHN0YXJ0QmVmb3JlU2VsZWN0aW9uKQogewpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCmluZGV4IDgzMzUxOTQxNmYyNmMzZDFjNDk1ZDdjZjNi
YWE1YTM4ZTA4NTEzOWIuLjg4N2QyY2Y2MjY0NjFjMWQ1Yzc1YjVhY2M3YjdjZTk1OGE1YjI3OGUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAor
KysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKQEAgLTI0Niw2
ICsyNDYsNyBAQCBjbGFzcyBHYW1lcGFkRGF0YTsKIGNsYXNzIEdlb2xvY2F0aW9uUGVybWlzc2lv
blJlcXVlc3RNYW5hZ2VyOwogY2xhc3MgTGF5ZXJIb3N0aW5nQ29udGV4dDsKIGNsYXNzIE1lZGlh
RGV2aWNlU2FuZGJveEV4dGVuc2lvbnM7CitjbGFzcyBNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25S
ZXF1ZXN0TWFuYWdlcjsKIGNsYXNzIE5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdl
cjsKIGNsYXNzIFBERlBsdWdpbjsKIGNsYXNzIFBhZ2VCYW5uZXI7CkBAIC02NzIsNiArNjczLDEw
IEBAIHB1YmxpYzoKICAgICB2b2lkIGNhcHR1cmVEZXZpY2VzQ2hhbmdlZCgpOwogI2VuZGlmCiAK
KyNpZiBFTkFCTEUoRU5DUllQVEVEX01FRElBKQorICAgIE1lZGlhS2V5U3lzdGVtUGVybWlzc2lv
blJlcXVlc3RNYW5hZ2VyJiBtZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcigp
IHsgcmV0dXJuIG1fbWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXI7IH0KKyNl
bmRpZgorCiAgICAgdm9pZCBlbGVtZW50RGlkRm9jdXMoV2ViQ29yZTo6RWxlbWVudCYpOwogICAg
IHZvaWQgZWxlbWVudERpZFJlZm9jdXMoV2ViQ29yZTo6RWxlbWVudCYpOwogICAgIHZvaWQgZWxl
bWVudERpZEJsdXIoV2ViQ29yZTo6RWxlbWVudCYpOwpAQCAtMTY2Nyw3ICsxNjcyLDExIEBAIHBy
aXZhdGU6CiAjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKICAgICB2b2lkIHVzZXJNZWRpYUFjY2Vz
c1dhc0dyYW50ZWQodWludDY0X3QgdXNlck1lZGlhSUQsIFdlYkNvcmU6OkNhcHR1cmVEZXZpY2Um
JiBhdWRpb0RldmljZVVJRCwgV2ViQ29yZTo6Q2FwdHVyZURldmljZSYmIHZpZGVvRGV2aWNlVUlE
LCBTdHJpbmcmJiBtZWRpYURldmljZUlkZW50aWZpZXJIYXNoU2FsdCwgU2FuZGJveEV4dGVuc2lv
bjo6SGFuZGxlJiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAgICAgdm9pZCB1c2Vy
TWVkaWFBY2Nlc3NXYXNEZW5pZWQodWludDY0X3QgdXNlck1lZGlhSUQsIHVpbnQ2NF90IHJlYXNv
biwgU3RyaW5nJiYgaW52YWxpZENvbnN0cmFpbnQpOworI2VuZGlmCiAKKyNpZiBFTkFCTEUoRU5D
UllQVEVEX01FRElBKQorICAgIHZvaWQgbWVkaWFLZXlTeXN0ZW1XYXNHcmFudGVkKHVpbnQ2NF90
IG1lZGlhS2V5U3lzdGVtSUQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CisgICAgdm9p
ZCBtZWRpYUtleVN5c3RlbVdhc0RlbmllZCh1aW50NjRfdCBtZWRpYUtleVN5c3RlbUlELCBTdHJp
bmcmJiBtZXNzYWdlKTsKICNlbmRpZgogCiAgICAgdm9pZCByZXF1ZXN0TWVkaWFQbGF5YmFja1N0
YXRlKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2ViS2l0OjpNZWRpYVBsYXliYWNrU3RhdGUpPiYm
KTsKQEAgLTE5NzksNiArMTk4OCwxMCBAQCBwcml2YXRlOgogICAgIFVuaXF1ZVJlZjxVc2VyTWVk
aWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXI+IG1fdXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RN
YW5hZ2VyOwogI2VuZGlmCiAKKyNpZiBFTkFCTEUoRU5DUllQVEVEX01FRElBKQorICAgIFVuaXF1
ZVJlZjxNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcj4gbV9tZWRpYUtleVN5
c3RlbVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcjsKKyNlbmRpZgorCiAgICAgc3RkOjp1bmlxdWVf
cHRyPFdlYkNvcmU6OlByaW50Q29udGV4dD4gbV9wcmludENvbnRleHQ7CiAjaWYgUExBVEZPUk0o
R1RLKQogICAgIFJlZlB0cjxXZWJQcmludE9wZXJhdGlvbkd0az4gbV9wcmludE9wZXJhdGlvbjsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVz
c2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3Nh
Z2VzLmluCmluZGV4IDJkYTk5Y2QzNzIzOTJlODJjNTMwZDQyYzAxYTEyODc3MGZiZDg3MTcuLjIz
ZmNhMzU3MWYwNzQ3NTA5MWZmM2ZjMTRiYWJjNDY1ZTIxNmVkNGMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4KKysrIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbgpAQCAtMzc4
LDYgKzM3OCwxMSBAQCBHZW5lcmF0ZVN5bnRoZXRpY0VkaXRpbmdDb21tYW5kKGVudW06dWludDhf
dCBXZWJLaXQ6OlN5bnRoZXRpY0VkaXRpbmdDb21tYW5kVHlwZQogICAgIENhcHR1cmVEZXZpY2Vz
Q2hhbmdlZCgpCiAjZW5kaWYKIAorI2lmIEVOQUJMRShFTkNSWVBURURfTUVESUEpCisgICAgTWVk
aWFLZXlTeXN0ZW1XYXNHcmFudGVkKHVpbnQ2NF90IG1lZGlhS2V5U3lzdGVtSUQpIC0+ICgpIEFz
eW5jCisgICAgTWVkaWFLZXlTeXN0ZW1XYXNEZW5pZWQodWludDY0X3QgbWVkaWFLZXlTeXN0ZW1J
RCwgU3RyaW5nIG1lc3NhZ2UpCisjZW5kaWYKKwogICAgIFJlcXVlc3RNZWRpYVBsYXliYWNrU3Rh
dGUoKSAtPiAoZW51bTp1aW50OF90IFdlYktpdDo6TWVkaWFQbGF5YmFja1N0YXRlIHN0YXRlKSBB
c3luYwogICAgIFBhdXNlQWxsTWVkaWFQbGF5YmFjaygpIC0+ICgpIEFzeW5jCiAgICAgU3VzcGVu
ZEFsbE1lZGlhUGxheWJhY2soKSAtPiAoKSBBc3luYwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dExlZ2FjeS9XZWJLaXRMZWdhY3kueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9X
ZWJLaXRMZWdhY3kvV2ViS2l0TGVnYWN5Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXgg
NDBkN2YwNzlkMGJhYjdiMzhjOTZmMTE5MTBlN2M3M2Q0MjljNTczOS4uN2UxYzUwYmQzN2YwZGYz
MWE2Mjk2NTc1MDc3MGVjNTE4NjRmZTg5NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2Fj
eS9XZWJLaXRMZWdhY3kueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2Vi
S2l0TGVnYWN5L1dlYktpdExlZ2FjeS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC01ODEs
NiArNTgxLDggQEAKIAkJOTNFMkExQTQxMjNCMEIzQzAwOUZFMTJBIC8qIFdlYkRhc2hib2FyZFJl
Z2lvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNF
MkExQTIxMjNCMEIzQzAwOUZFMTJBIC8qIFdlYkRhc2hib2FyZFJlZ2lvbi5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTkzRTJBMUE1MTIzQjBCM0Mw
MDlGRTEyQSAvKiBXZWJEYXNoYm9hcmRSZWdpb24ubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0UyQTFBMzEyM0IwQjNDMDA5RkUxMkEgLyogV2ViRGFz
aGJvYXJkUmVnaW9uLm1tICovOyB9OwogCQk5M0ZERTkzMzBENzlDQUYzMDA3NEYwMjkgLyogV2Vi
SGlzdG9yeUludGVybmFsLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA5M0ZERTkzMjBENzlDQUYzMDA3NEYwMjkgLyogV2ViSGlzdG9yeUludGVybmFsLmgg
Ki87IH07CisJCTlBQ0MwN0JDMjVDODVBNDcwMERDNjM4NiAvKiBXZWJNZWRpYUtleVN5c3RlbUNs
aWVudC5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDlB
Q0MwN0JCMjVDODVBNDcwMERDNjM4NiAvKiBXZWJNZWRpYUtleVN5c3RlbUNsaWVudC5tbSAqLzsg
fTsKKwkJOUFDQzA3QkUyNUM4NUE1OTAwREM2Mzg2IC8qIFdlYk1lZGlhS2V5U3lzdGVtQ2xpZW50
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5QUNDMDdC
RDI1Qzg1QTU5MDBEQzYzODYgLyogV2ViTWVkaWFLZXlTeXN0ZW1DbGllbnQuaCAqLzsgfTsKIAkJ
QTEwQzFEMTgxODIwMkY5QzAwMzY4ODNBIC8qIFdlYkRlZmF1bHRGb3JtRGVsZWdhdGUuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEExMEMxRDEwMTgyMDJG
OUMwMDM2ODgzQSAvKiBXZWJEZWZhdWx0Rm9ybURlbGVnYXRlLmggKi87IH07CiAJCUExMEMxRDE5
MTgyMDJGOUMwMDM2ODgzQSAvKiBXZWJEZWZhdWx0Rm9ybURlbGVnYXRlLm0gaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBMTBDMUQxMTE4MjAyRjlDMDAzNjg4
M0EgLyogV2ViRGVmYXVsdEZvcm1EZWxlZ2F0ZS5tICovOyB9OwogCQlBMTBDMUQxQTE4MjAyRjlD
MDAzNjg4M0EgLyogV2ViRGVmYXVsdEZyYW1lTG9hZERlbGVnYXRlLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBMTBDMUQxMjE4MjAyRjlDMDAzNjg4M0Eg
LyogV2ViRGVmYXVsdEZyYW1lTG9hZERlbGVnYXRlLmggKi87IH07CkBAIC0xNDEyLDYgKzE0MTQs
OCBAQAogCQk5M0UyQTFBMjEyM0IwQjNDMDA5RkUxMkEgLyogV2ViRGFzaGJvYXJkUmVnaW9uLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkRhc2hib2FyZFJlZ2lvbi5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5M0UyQTFBMzEyM0IwQjNDMDA5RkUxMkEgLyog
V2ViRGFzaGJvYXJkUmVnaW9uLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBw
YXRoID0gV2ViRGFzaGJvYXJkUmVnaW9uLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk5M0ZERTkzMjBENzlDQUYzMDA3NEYwMjkgLyogV2ViSGlzdG9yeUludGVybmFsLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkhpc3RvcnlJbnRlcm5hbC5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQk5QUNDMDdCQjI1Qzg1QTQ3MDBEQzYzODYgLyogV2ViTWVk
aWFLZXlTeXN0ZW1DbGllbnQubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBh
dGggPSBXZWJNZWRpYUtleVN5c3RlbUNsaWVudC5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJOUFDQzA3QkQyNUM4NUE1OTAwREM2Mzg2IC8qIFdlYk1lZGlhS2V5U3lzdGVtQ2xpZW50
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYk1lZGlhS2V5U3lzdGVtQ2xp
ZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTlDQUU5RDA3MDI1MkE0MTMwRUNB
MTZFQSAvKiBXZWJQcmVmZXJlbmNlc1ByaXZhdGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBpbmRlbnRXaWR0aCA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJQcmVmZXJlbmNlc1ByaXZhdGUuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA4OyB1c2VzVGFicyA9IDA7IH07CiAJCTlDRjBF
MjQ5MDIxMzYxQjAwRUNBMTZFQSAvKiBXZWJGcmFtZVByaXZhdGUuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBpbmRlbnRXaWR0aCA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJGcmFtZVByaXZhdGUuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA4OyB1c2VzVGFicyA9IDA7IH07CiAJCUEx
MEMxRDEwMTgyMDJGOUMwMDM2ODgzQSAvKiBXZWJEZWZhdWx0Rm9ybURlbGVnYXRlLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFdlYkRlZmF1bHRGb3JtRGVsZWdhdGUuaDsgcGF0
aCA9IGlvcy9EZWZhdWx0RGVsZWdhdGVzL1dlYkRlZmF1bHRGb3JtRGVsZWdhdGUuaDsgc291cmNl
VHJlZSA9IFNPVVJDRV9ST09UOyB9OwpAQCAtMjY3Myw2ICsyNjc3LDggQEAKIAkJCQk5MzQ1RDRF
QjAzNjVDNUIyMDA4NjM1Q0UgLyogV2ViSmF2YVNjcmlwdFRleHRJbnB1dFBhbmVsLm0gKi8sCiAJ
CQkJQ0Q4QkZDRTYxNTUzMTIyNDAwNUFGQjI1IC8qIFdlYktpdEZ1bGxTY3JlZW5MaXN0ZW5lci5o
ICovLAogCQkJCUNEOEJGQ0U1MTU1MzEyMjQwMDVBRkIyNSAvKiBXZWJLaXRGdWxsU2NyZWVuTGlz
dGVuZXIubW0gKi8sCisJCQkJOUFDQzA3QkQyNUM4NUE1OTAwREM2Mzg2IC8qIFdlYk1lZGlhS2V5
U3lzdGVtQ2xpZW50LmggKi8sCisJCQkJOUFDQzA3QkIyNUM4NUE0NzAwREM2Mzg2IC8qIFdlYk1l
ZGlhS2V5U3lzdGVtQ2xpZW50Lm1tICovLAogCQkJCTMxQzExQTZDMTQ3NjU1MkUwMDQ5QTRDQyAv
KiBXZWJOb3RpZmljYXRpb25DbGllbnQuaCAqLywKIAkJCQkzMUMxMUE2RDE0NzY1NTJFMDA0OUE0
Q0MgLyogV2ViTm90aWZpY2F0aW9uQ2xpZW50Lm1tICovLAogCQkJCUE1OEE1Nzk3MTQzRTcyNzAw
MDEyNUY1MCAvKiBXZWJPcGVuUGFuZWxSZXN1bHRMaXN0ZW5lci5oICovLApAQCAtMzEwOCw2ICsz
MTE0LDcgQEAKIAkJCQk5Mzk4MTA3OTA4MjRCRjAxMDA4REYwMzggLyogV2ViTG9jYWxpemFibGVT
dHJpbmdzLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzQyRDMyNDEzMUVEMUUwMDA3NUZBNEIgLyog
V2ViTG9jYWxpemFibGVTdHJpbmdzSW50ZXJuYWwuaCBpbiBIZWFkZXJzICovLAogCQkJCUExMEMx
RDgwMTgyMDMwM0QwMDM2ODgzQSAvKiBXZWJNYWlsRGVsZWdhdGUuaCBpbiBIZWFkZXJzICovLAor
CQkJCTlBQ0MwN0JFMjVDODVBNTkwMERDNjM4NiAvKiBXZWJNZWRpYUtleVN5c3RlbUNsaWVudC5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJMDcyRTVGNDUxQUJGODg3NTAwMDNCMTY0IC8qIFdlYk1lZGlh
UGxheWJhY2tUYXJnZXRQaWNrZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUExMEMxRDcyMTgyMDMw
MEUwMDM2ODgzQSAvKiBXZWJNSU1FVHlwZVJlZ2lzdHJ5LmggaW4gSGVhZGVycyAqLywKIAkJCQk1
MTg1RjYyNjEwNzEyQjgwMDA3QUEzOTMgLyogV2ViTmF2aWdhdGlvbkRhdGEuaCBpbiBIZWFkZXJz
ICovLApAQCAtMzY1MCw2ICszNjU3LDcgQEAKIAkJCQk1MTIwQzgyQzFFNTRDRThBMDAyNUIyNTAg
LyogV2ViS2l0VmVyc2lvbkNoZWNrcy5tbSBpbiBTb3VyY2VzICovLAogCQkJCUVENUI5NTI0MTEx
QjcyNUEwMDQ3MjI5OCAvKiBXZWJMb2NhbGl6YWJsZVN0cmluZ3MubW0gaW4gU291cmNlcyAqLywK
IAkJCQlCQzQyRDM0RDEzMUVEMzg4MDA3NUZBNEIgLyogV2ViTG9jYWxpemFibGVTdHJpbmdzSW50
ZXJuYWwubW0gaW4gU291cmNlcyAqLywKKwkJCQk5QUNDMDdCQzI1Qzg1QTQ3MDBEQzYzODYgLyog
V2ViTWVkaWFLZXlTeXN0ZW1DbGllbnQubW0gaW4gU291cmNlcyAqLywKIAkJCQkwNzJFNUY0NjFB
QkY4ODc1MDAwM0IxNjQgLyogV2ViTWVkaWFQbGF5YmFja1RhcmdldFBpY2tlci5tbSBpbiBTb3Vy
Y2VzICovLAogCQkJCUExMEMxRDczMTgyMDMwMEUwMDM2ODgzQSAvKiBXZWJNSU1FVHlwZVJlZ2lz
dHJ5Lm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJNTE4NUY2MjgxMDcxMkI5NzAwN0FBMzkzIC8qIFdl
Yk5hdmlnYXRpb25EYXRhLm1tIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJNZWRpYUtleVN5c3RlbUNsaWVudC5oIGIv
U291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViTWVkaWFLZXlTeXN0ZW1D
bGllbnQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi5lNTU5OWQ1N2VhNTg4OWMyZjcxMjdhMzU5NzhiNTI3ZWU0NjBl
N2U2Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1
cHBvcnQvV2ViTWVkaWFLZXlTeXN0ZW1DbGllbnQuaApAQCAtMCwwICsxLDQzIEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDIxIElnYWxpYSBTLkwuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMg
SVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRP
UlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MK
KyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgor
ICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbXBvcnQgPFdlYkNv
cmUvTWVkaWFLZXlTeXN0ZW1DbGllbnQuaD4KKworQGNsYXNzIFdlYlZpZXc7CisKK2NsYXNzIFdl
Yk1lZGlhS2V5U3lzdGVtQ2xpZW50IDogcHVibGljIFdlYkNvcmU6Ok1lZGlhS2V5U3lzdGVtQ2xp
ZW50IHsKKyAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKK3B1YmxpYzoKKyAgICBXZWJNZWRp
YUtleVN5c3RlbUNsaWVudChXZWJWaWV3ICopOworICAgIFdlYlZpZXcgKndlYlZpZXcoKSB7IHJl
dHVybiBtX3dlYlZpZXc7IH0KKworICAgIHZvaWQgcGFnZURlc3Ryb3llZCgpIG92ZXJyaWRlOwor
CisgICAgdm9pZCByZXF1ZXN0TWVkaWFLZXlTeXN0ZW0oV2ViQ29yZTo6TWVkaWFLZXlTeXN0ZW1S
ZXF1ZXN0Jikgb3ZlcnJpZGU7CisgICAgdm9pZCBjYW5jZWxNZWRpYUtleVN5c3RlbVJlcXVlc3Qo
V2ViQ29yZTo6TWVkaWFLZXlTeXN0ZW1SZXF1ZXN0Jikgb3ZlcnJpZGUgeyB9OworCitwcml2YXRl
OgorICAgIFdlYlZpZXcgKm1fd2ViVmlldzsKK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJNZWRpYUtleVN5c3RlbUNsaWVudC5tbSBiL1Nv
dXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYk1lZGlhS2V5U3lzdGVtQ2xp
ZW50Lm1tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmMzMTczOTY5NWQ4MmFmNmE5OGQ2N2YwMmE3NTQyNzlhNTliMzRk
ZWEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3Vw
cG9ydC9XZWJNZWRpYUtleVN5c3RlbUNsaWVudC5tbQpAQCAtMCwwICsxLDU0IEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDIxIElnYWxpYSBTLkwuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMg
SVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRP
UlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MK
KyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgor
ICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbXBvcnQgIldlYk1l
ZGlhS2V5U3lzdGVtQ2xpZW50LmgiCisKKyNpZiBFTkFCTEUoRU5DUllQVEVEX01FRElBKQorCisj
aW1wb3J0IDxXZWJDb3JlL01lZGlhS2V5U3lzdGVtUmVxdWVzdC5oPgorI2ltcG9ydCA8d3RmL0Js
b2NrT2JqQ0V4Y2VwdGlvbnMuaD4KKwordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisKK1dlYk1l
ZGlhS2V5U3lzdGVtQ2xpZW50OjpXZWJNZWRpYUtleVN5c3RlbUNsaWVudChXZWJWaWV3ICp3ZWJW
aWV3KQorICAgIDogbV93ZWJWaWV3KHdlYlZpZXcpCit7Cit9CisKK3ZvaWQgV2ViTWVkaWFLZXlT
eXN0ZW1DbGllbnQ6OnBhZ2VEZXN0cm95ZWQoKQoreworICAgIGRlbGV0ZSB0aGlzOworfQorCit2
b2lkIFdlYk1lZGlhS2V5U3lzdGVtQ2xpZW50OjpyZXF1ZXN0TWVkaWFLZXlTeXN0ZW0oTWVkaWFL
ZXlTeXN0ZW1SZXF1ZXN0JiByZXF1ZXN0KQoreworICAgIEJFR0lOX0JMT0NLX09CSkNfRVhDRVBU
SU9OUworCisgICAgcmVxdWVzdC5hbGxvdyhbXSB7IH0pOworCisgICAgRU5EX0JMT0NLX09CSkNf
RVhDRVBUSU9OUworfQorCisjZW5kaWYgLy8gRU5BQkxFKEVOQ1JZUFRFRF9NRURJQSkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViVmlldy5tbSBiL1NvdXJj
ZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQppbmRleCA2ODVhY2IxY2RiZjIz
ZDI2NGZkYjg2OWY5MWNhMGI5NDcxOTEzZDg2Li5lNDFlNTVmNDkyZjA0MzU3ZTdkYWQ1YjI5ZGUz
NzAxNmIzNWZkZDQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3
L1dlYlZpZXcubW0KKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJWaWV3
Lm1tCkBAIC04NSw2ICs4NSw3IEBACiAjaW1wb3J0ICJXZWJLaXRTdGF0aXN0aWNzUHJpdmF0ZS5o
IgogI2ltcG9ydCAiV2ViS2l0VmVyc2lvbkNoZWNrcy5oIgogI2ltcG9ydCAiV2ViTG9jYWxpemFi
bGVTdHJpbmdzLmgiCisjaW1wb3J0ICJXZWJNZWRpYUtleVN5c3RlbUNsaWVudC5oIgogI2ltcG9y
dCAiV2ViTlNEYXRhRXh0cmFzLmgiCiAjaW1wb3J0ICJXZWJOU0RhdGFFeHRyYXNQcml2YXRlLmgi
CiAjaW1wb3J0ICJXZWJOU0RpY3Rpb25hcnlFeHRyYXMuaCIKQEAgLTE1NjgsNiArMTU2OSw5IEBA
IHN0YXRpYyB2b2lkIFdlYktpdEluaXRpYWxpemVHYW1lcGFkUHJvdmlkZXJJZk5lY2Vzc2FyeSgp
CiAjaWYgRU5BQkxFKERFVklDRV9PUklFTlRBVElPTikgJiYgIVBMQVRGT1JNKElPU19GQU1JTFkp
CiAgICAgV2ViQ29yZTo6cHJvdmlkZURldmljZU9yaWVudGF0aW9uVG8oKl9wcml2YXRlLT5wYWdl
LCAqbmV3IFdlYkRldmljZU9yaWVudGF0aW9uQ2xpZW50KHNlbGYpKTsKICNlbmRpZgorI2lmIEVO
QUJMRShFTkNSWVBURURfTUVESUEpCisgICAgV2ViQ29yZTo6cHJvdmlkZU1lZGlhS2V5U3lzdGVt
VG8oX3ByaXZhdGUtPnBhZ2UsIG5ldyBXZWJNZWRpYUtleVN5c3RlbUNsaWVudChzZWxmKSk7Cisj
ZW5kaWYKIAogI2lmIEVOQUJMRShSRU1PVEVfSU5TUEVDVE9SKQogICAgIF9wcml2YXRlLT5wYWdl
LT5zZXRSZW1vdGVJbnNwZWN0aW9uQWxsb3dlZCh0cnVlKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL0No
YW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCA2ZDkwZDQzMzBjNTEzYWM1YWY2YTBkNGFh
ZWE5MTRjMmQwMWExZGUxLi44NzMwOTAyMzJmOTM1NTRjODMwOGNiZjk4NGIxYTMzMzgxMGYxMWM1
IDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMjUgQEAKKzIwMjEtMDEtMzEgIFBoaWxpcHBlIE5vcm1hbmQgIDxwbm9ybWFuZEBpZ2Fs
aWEuY29tPgorCisgICAgICAgIFBlcm1pc3Npb24gcmVxdWVzdCBBUEkgZm9yIE1lZGlhS2V5U3lz
dGVtIGFjY2VzcyBzdXBwb3J0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yMjExODcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBBZGQgc3VwcG9ydCBmb3Igc2V0dGluZyB0aGUgcGVybWlzc2lvbiByZXF1ZXN0
IHJlc3BvbnNlIGZyb20gdGhlIFRlc3RSdW5uZXIsIGZvciB1c2FnZSB3aXRoaW4gbGF5b3V0IHRl
c3RzLgorCisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5n
cy9UZXN0UnVubmVyLmlkbDoKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVu
ZGxlL1Rlc3RSdW5uZXIuY3BwOgorICAgICAgICAoV1RSOjpUZXN0UnVubmVyOjpzZXRJc01lZGlh
S2V5U3lzdGVtUGVybWlzc2lvbkdyYW50ZWQpOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIv
SW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5oOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIv
VGVzdENvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV1RSOjpkZWNpZGVQb2xpY3lGb3JNZWRpYUtl
eVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0KToKKyAgICAgICAgKFdUUjo6VGVzdENvbnRyb2xsZXI6
OmNvbXBsZXRlTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uQ2hlY2spOgorICAgICAgICAoV1RSOjpU
ZXN0Q29udHJvbGxlcjo6c2V0SXNNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25HcmFudGVkKToKKyAg
ICAgICAgKFdUUjo6VGVzdENvbnRyb2xsZXI6OmNyZWF0ZVdlYlZpZXdXaXRoT3B0aW9ucyk6Cisg
ICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5oOgorICAgICAgICAqIFdl
YktpdFRlc3RSdW5uZXIvVGVzdEludm9jYXRpb24uY3BwOgorICAgICAgICAoV1RSOjpUZXN0SW52
b2NhdGlvbjo6ZGlkUmVjZWl2ZVN5bmNocm9ub3VzTWVzc2FnZUZyb21JbmplY3RlZEJ1bmRsZSk6
CisKIDIwMjEtMDItMDEgIFl1c3VrZSBTdXp1a2kgIDx5c3V6dWtpQGFwcGxlLmNvbT4KIAogICAg
ICAgICBbSlNDXSBBZGQgQCBpbiBFcnJvci5zdGFjayBpZiBVUkwgZXhpc3RzCmRpZmYgLS1naXQg
YS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0JpbmRpbmdzL1Rlc3RSdW5u
ZXIuaWRsIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9U
ZXN0UnVubmVyLmlkbAppbmRleCBkYjE1OTlhMmM1NjAyYWU4MWFiMmYyNGUwOGY5Zjk1NTM5YzA1
YjlhLi5hMDcxZWNkZGQ5ZTQzNDgzZmU3NzE5Njg2YzM1YTRmMzdiOGIxYmM3IDEwMDY0NAotLS0g
YS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0JpbmRpbmdzL1Rlc3RSdW5u
ZXIuaWRsCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGlu
Z3MvVGVzdFJ1bm5lci5pZGwKQEAgLTQwOCw0ICs0MDgsNyBAQCBpbnRlcmZhY2UgVGVzdFJ1bm5l
ciB7CiAKICAgICAvLyBTcGVlY2hSZWNvZ25pdGlvbgogICAgIHVuZGVmaW5lZCBzZXRJc1NwZWVj
aFJlY29nbml0aW9uUGVybWlzc2lvbkdyYW50ZWQoYm9vbGVhbiB2YWx1ZSk7CisKKyAgICAvLyBN
ZWRpYUtleVN5c3RlbQorICAgIHVuZGVmaW5lZCBzZXRJc01lZGlhS2V5U3lzdGVtUGVybWlzc2lv
bkdyYW50ZWQoYm9vbGVhbiB2YWx1ZSk7CiB9OwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVz
dFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RS
dW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5jcHAKaW5kZXggNjM4MDk4OTI1MThjY2Uz
Y2ZkNmJhMmRmYWNkYzZmNWVmOTAzYmFiNi4uODY0Y2NlMjg1OTdhNDE4ZDg5YTUzNTdkYzkyMDBj
Y2QwMTk0YzdkNSAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1
bmRsZS9UZXN0UnVubmVyLmNwcAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVk
QnVuZGxlL1Rlc3RSdW5uZXIuY3BwCkBAIC0yMDg0LDYgKzIwODQsMTEgQEAgdm9pZCBUZXN0UnVu
bmVyOjpzZXRJc1NwZWVjaFJlY29nbml0aW9uUGVybWlzc2lvbkdyYW50ZWQoYm9vbCBncmFudGVk
KQogICAgIHBvc3RTeW5jaHJvbm91c1BhZ2VNZXNzYWdlKCJzZXRJc1NwZWVjaFJlY29nbml0aW9u
UGVybWlzc2lvbkdyYW50ZWQiLCBncmFudGVkKTsKIH0KIAordm9pZCBUZXN0UnVubmVyOjpzZXRJ
c01lZGlhS2V5U3lzdGVtUGVybWlzc2lvbkdyYW50ZWQoYm9vbCBncmFudGVkKQoreworICAgIHBv
c3RTeW5jaHJvbm91c1BhZ2VNZXNzYWdlKCJzZXRJc01lZGlhS2V5U3lzdGVtUGVybWlzc2lvbkdy
YW50ZWQiLCBncmFudGVkKTsKK30KKwogQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5E
CiAKIH0gLy8gbmFtZXNwYWNlIFdUUgpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5l
ci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmggYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0lu
amVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuaAppbmRleCA5M2E5N2NiZGRlNDg3NWNiZDMzNWE3MGZj
YjlmZjUzZGI0ZjI4YjQ0Li5iY2Y3MTBiN2I4NTQ2OWY5YmM2OTIwNDEyODI3MTQ2ZDIzYjNiYzk3
IDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RS
dW5uZXIuaAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RS
dW5uZXIuaApAQCAtNTE5LDYgKzUxOSw4IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgc2V0SXNTcGVl
Y2hSZWNvZ25pdGlvblBlcm1pc3Npb25HcmFudGVkKGJvb2wpOwogCisgICAgdm9pZCBzZXRJc01l
ZGlhS2V5U3lzdGVtUGVybWlzc2lvbkdyYW50ZWQoYm9vbCk7CisKIHByaXZhdGU6CiAgICAgVGVz
dFJ1bm5lcigpOwogCmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250
cm9sbGVyLmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwCmlu
ZGV4IGQyY2JlZjQyNTNkZmU2NTEzMjg3MjNkNTc5ZGIzNDE0YmYxZGE3OGMuLmIzZjNiOTMzZDlk
YWYwMDZlMGZmODczMjQ0ZTc1YTkzNmY3MjI4ZDggMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRl
c3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIv
VGVzdENvbnRyb2xsZXIuY3BwCkBAIC00Niw2ICs0Niw3IEBACiAjaW5jbHVkZSA8V2ViS2l0L1dL
RnJhbWVJbmZvUmVmLmg+CiAjaW5jbHVkZSA8V2ViS2l0L1dLSFRUUENvb2tpZVN0b3JlUmVmLmg+
CiAjaW5jbHVkZSA8V2ViS2l0L1dLSWNvbkRhdGFiYXNlLmg+CisjaW5jbHVkZSA8V2ViS2l0L1dL
TWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uQ2FsbGJhY2suaD4KICNpbmNsdWRlIDxXZWJLaXQvV0tN
ZXNzYWdlTGlzdGVuZXIuaD4KICNpbmNsdWRlIDxXZWJLaXQvV0tNb2NrRGlzcGxheS5oPgogI2lu
Y2x1ZGUgPFdlYktpdC9XS01vY2tNZWRpYURldmljZS5oPgpAQCAtMzQzLDYgKzM0NCwyMSBAQCB2
b2lkIFRlc3RDb250cm9sbGVyOjpzZXRJc1NwZWVjaFJlY29nbml0aW9uUGVybWlzc2lvbkdyYW50
ZWQoYm9vbCBncmFudGVkKQogICAgIG1faXNTcGVlY2hSZWNvZ25pdGlvblBlcm1pc3Npb25HcmFu
dGVkID0gZ3JhbnRlZDsKIH0KIAorc3RhdGljIHZvaWQgZGVjaWRlUG9saWN5Rm9yTWVkaWFLZXlT
eXN0ZW1QZXJtaXNzaW9uUmVxdWVzdChXS1BhZ2VSZWYsIFdLU2VjdXJpdHlPcmlnaW5SZWYsIFdL
U3RyaW5nUmVmLCBXS01lZGlhS2V5U3lzdGVtUGVybWlzc2lvbkNhbGxiYWNrUmVmIGNhbGxiYWNr
KQoreworICAgIFRlc3RDb250cm9sbGVyOjpzaW5nbGV0b24oKS5jb21wbGV0ZU1lZGlhS2V5U3lz
dGVtUGVybWlzc2lvbkNoZWNrKGNhbGxiYWNrKTsKK30KKwordm9pZCBUZXN0Q29udHJvbGxlcjo6
Y29tcGxldGVNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25DaGVjayhXS01lZGlhS2V5U3lzdGVtUGVy
bWlzc2lvbkNhbGxiYWNrUmVmIGNhbGxiYWNrKQoreworICAgIFdLTWVkaWFLZXlTeXN0ZW1QZXJt
aXNzaW9uQ2FsbGJhY2tDb21wbGV0ZShjYWxsYmFjaywgbV9pc01lZGlhS2V5U3lzdGVtUGVybWlz
c2lvbkdyYW50ZWQpOworfQorCit2b2lkIFRlc3RDb250cm9sbGVyOjpzZXRJc01lZGlhS2V5U3lz
dGVtUGVybWlzc2lvbkdyYW50ZWQoYm9vbCBncmFudGVkKQoreworICAgIG1faXNNZWRpYUtleVN5
c3RlbVBlcm1pc3Npb25HcmFudGVkID0gZ3JhbnRlZDsKK30KKwogV0tQYWdlUmVmIFRlc3RDb250
cm9sbGVyOjpjcmVhdGVPdGhlclBhZ2UoV0tQYWdlUmVmLCBXS1BhZ2VDb25maWd1cmF0aW9uUmVm
IGNvbmZpZ3VyYXRpb24sIFdLTmF2aWdhdGlvbkFjdGlvblJlZiBuYXZpZ2F0aW9uQWN0aW9uLCBX
S1dpbmRvd0ZlYXR1cmVzUmVmIHdpbmRvd0ZlYXR1cmVzLCBjb25zdCB2b2lkICpjbGllbnRJbmZv
KQogewogICAgIFBsYXRmb3JtV2ViVmlldyogcGFyZW50VmlldyA9IHN0YXRpY19jYXN0PFBsYXRm
b3JtV2ViVmlldyo+KGNvbnN0X2Nhc3Q8dm9pZCo+KGNsaWVudEluZm8pKTsKQEAgLTY5OSw4ICs3
MTUsOCBAQCB2b2lkIFRlc3RDb250cm9sbGVyOjpjcmVhdGVXZWJWaWV3V2l0aE9wdGlvbnMoY29u
c3QgVGVzdE9wdGlvbnMmIG9wdGlvbnMpCiAgICAgV0tIVFRQQ29va2llU3RvcmVEZWxldGVBbGxD
b29raWVzKFdLV2Vic2l0ZURhdGFTdG9yZUdldEhUVFBDb29raWVTdG9yZSh3ZWJzaXRlRGF0YVN0
b3JlKCkpLCBudWxscHRyLCBudWxscHRyKTsKIAogICAgIHBsYXRmb3JtQ3JlYXRlV2ViVmlldyhj
b25maWd1cmF0aW9uLmdldCgpLCBvcHRpb25zKTsKLSAgICBXS1BhZ2VVSUNsaWVudFYxNSBwYWdl
VUlDbGllbnQgPSB7Ci0gICAgICAgIHsgMTUsIG1fbWFpbldlYlZpZXcuZ2V0KCkgfSwKKyAgICBX
S1BhZ2VVSUNsaWVudFYxNiBwYWdlVUlDbGllbnQgPSB7CisgICAgICAgIHsgMTYsIG1fbWFpbldl
YlZpZXcuZ2V0KCkgfSwKICAgICAgICAgMCwgLy8gY3JlYXRlTmV3UGFnZV9kZXByZWNhdGVkRm9y
VXNlV2l0aFYwCiAgICAgICAgIDAsIC8vIHNob3dQYWdlCiAgICAgICAgIDAsIC8vIGNsb3NlCkBA
IC03NzQsNyArNzkwLDggQEAgdm9pZCBUZXN0Q29udHJvbGxlcjo6Y3JlYXRlV2ViVmlld1dpdGhP
cHRpb25zKGNvbnN0IFRlc3RPcHRpb25zJiBvcHRpb25zKQogICAgICAgICAwLCAvLyByZXF1ZXN0
U3RvcmFnZUFjY2Vzc0NvbmZpcm0KICAgICAgICAgc2hvdWxkQWxsb3dEZXZpY2VPcmllbnRhdGlv
bkFuZE1vdGlvbkFjY2VzcywKICAgICAgICAgcnVuV2ViQXV0aGVudGljYXRpb25QYW5lbCwKLSAg
ICAgICAgZGVjaWRlUG9saWN5Rm9yU3BlZWNoUmVjb2duaXRpb25QZXJtaXNzaW9uUmVxdWVzdAor
ICAgICAgICBkZWNpZGVQb2xpY3lGb3JTcGVlY2hSZWNvZ25pdGlvblBlcm1pc3Npb25SZXF1ZXN0
LAorICAgICAgICBkZWNpZGVQb2xpY3lGb3JNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0
CiAgICAgfTsKICAgICBXS1BhZ2VTZXRQYWdlVUlDbGllbnQobV9tYWluV2ViVmlldy0+cGFnZSgp
LCAmcGFnZVVJQ2xpZW50LmJhc2UpOwogCmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVu
bmVyL1Rlc3RDb250cm9sbGVyLmggYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9s
bGVyLmgKaW5kZXggYmI3NWQ1MDcwMmMzYTUzZjM5ZGUxNTgxZGNjNGQzYjMzNzM5NjRjYi4uODE4
YzJiNGVjNGE1NjJiYzA2N2E0ZjNkNWNlYmJjZGJkMDVjMDQ3YyAxMDA2NDQKLS0tIGEvVG9vbHMv
V2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5oCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RS
dW5uZXIvVGVzdENvbnRyb2xsZXIuaApAQCAtMzU2LDYgKzM1Niw5IEBAIHB1YmxpYzoKICAgICB2
b2lkIGNvbXBsZXRlU3BlZWNoUmVjb2duaXRpb25QZXJtaXNzaW9uQ2hlY2soV0tTcGVlY2hSZWNv
Z25pdGlvblBlcm1pc3Npb25DYWxsYmFja1JlZik7CiAgICAgdm9pZCBzZXRJc1NwZWVjaFJlY29n
bml0aW9uUGVybWlzc2lvbkdyYW50ZWQoYm9vbCk7CiAKKyAgICB2b2lkIGNvbXBsZXRlTWVkaWFL
ZXlTeXN0ZW1QZXJtaXNzaW9uQ2hlY2soV0tNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25DYWxsYmFj
a1JlZik7CisgICAgdm9pZCBzZXRJc01lZGlhS2V5U3lzdGVtUGVybWlzc2lvbkdyYW50ZWQoYm9v
bCk7CisKIHByaXZhdGU6CiAgICAgV0tSZXRhaW5QdHI8V0tQYWdlQ29uZmlndXJhdGlvblJlZj4g
Z2VuZXJhdGVQYWdlQ29uZmlndXJhdGlvbihjb25zdCBUZXN0T3B0aW9ucyYpOwogICAgIFdLUmV0
YWluUHRyPFdLQ29udGV4dENvbmZpZ3VyYXRpb25SZWY+IGdlbmVyYXRlQ29udGV4dENvbmZpZ3Vy
YXRpb24oY29uc3QgVGVzdE9wdGlvbnMmKSBjb25zdDsKQEAgLTY0Nyw2ICs2NTAsOCBAQCBwcml2
YXRlOgogI2VuZGlmCiAKICAgICBib29sIG1faXNTcGVlY2hSZWNvZ25pdGlvblBlcm1pc3Npb25H
cmFudGVkIHsgZmFsc2UgfTsKKworICAgIGJvb2wgbV9pc01lZGlhS2V5U3lzdGVtUGVybWlzc2lv
bkdyYW50ZWQgeyB0cnVlIH07CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXVFIKZGlmZiAtLWdpdCBh
L1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdEludm9jYXRpb24uY3BwIGIvVG9vbHMvV2ViS2l0
VGVzdFJ1bm5lci9UZXN0SW52b2NhdGlvbi5jcHAKaW5kZXggNTk4ZGZjN2QxYWMwZTM3YmIyMmZi
Nzg0YmExNTRhYjc0NzdhZWExNS4uNTUwMzU1YzdiOGI5ODQ4NGE3ZDI4Y2Y1NTk1ZjYzODc1MTdi
ZjRiYSAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0SW52b2NhdGlvbi5j
cHAKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0SW52b2NhdGlvbi5jcHAKQEAgLTEz
NjAsNiArMTM2MCwxMSBAQCBXS1JldGFpblB0cjxXS1R5cGVSZWY+IFRlc3RJbnZvY2F0aW9uOjpk
aWRSZWNlaXZlU3luY2hyb25vdXNNZXNzYWdlRnJvbUluamVjdGVkQgogICAgICAgICByZXR1cm4g
bnVsbHB0cjsKICAgICB9CiAKKyAgICBpZiAoV0tTdHJpbmdJc0VxdWFsVG9VVEY4Q1N0cmluZyht
ZXNzYWdlTmFtZSwgInNldElzTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uR3JhbnRlZCIpKSB7Cisg
ICAgICAgIFRlc3RDb250cm9sbGVyOjpzaW5nbGV0b24oKS5zZXRJc01lZGlhS2V5U3lzdGVtUGVy
bWlzc2lvbkdyYW50ZWQoYm9vbGVhblZhbHVlKG1lc3NhZ2VCb2R5KSk7CisgICAgICAgIHJldHVy
biBudWxscHRyOworICAgIH0KKwogICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgIHJldHVy
biBudWxscHRyOwogfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDAyY2YzZTk4YWRhY2JiOTNjOTUzYWUyMDBjYmMwM2JiZmZj
YjA0ODguLmQxZmNkNGMyNDM4ODBjZmQ3MDAwNmQ5MWI2MmJjMGYzOWQ5OGIwYjQgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwxNiBAQAorMjAyMS0wMS0zMSAgUGhpbGlwcGUgTm9ybWFuZCAgPHBub3JtYW5kQGln
YWxpYS5jb20+CisKKyAgICAgICAgUGVybWlzc2lvbiByZXF1ZXN0IEFQSSBmb3IgTWVkaWFLZXlT
eXN0ZW0gYWNjZXNzIHN1cHBvcnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTIyMTE4NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIEFkZCBiYXNpYyBjb3ZlcmFnZSBzdXBwb3J0IGZvciBvdmVycmlkaW5nIHRo
ZSBNZWRpYUtleVN5c3RlbSBwZXJtaXNzaW9uIGFuc3dlciBhbmQgdGh1cyBoYXZlCisgICAgICAg
IHRoZSBwcm9taXNlIHJlamVjdGlvbiB0ZXN0ZWQgaW4gdGhpcyBjYXNlLgorCisgICAgICAgICog
bWVkaWEvZW5jcnlwdGVkLW1lZGlhL21vY2stTWVkaWFLZXlTeXN0ZW1BY2Nlc3MtZXhwZWN0ZWQu
dHh0OgorICAgICAgICAqIG1lZGlhL2VuY3J5cHRlZC1tZWRpYS9tb2NrLU1lZGlhS2V5U3lzdGVt
QWNjZXNzLmh0bWw6CisKIDIwMjEtMDItMDEgIFl1c3VrZSBTdXp1a2kgIDx5c3V6dWtpQGFwcGxl
LmNvbT4KIAogICAgICAgICBbSlNDXSBBZGQgQCBpbiBFcnJvci5zdGFjayBpZiBVUkwgZXhpc3Rz
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9tZWRpYS9lbmNyeXB0ZWQtbWVkaWEvbW9jay1NZWRp
YUtleVN5c3RlbUFjY2Vzcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9tZWRpYS9lbmNyeXB0
ZWQtbWVkaWEvbW9jay1NZWRpYUtleVN5c3RlbUFjY2Vzcy1leHBlY3RlZC50eHQKaW5kZXggMjA5
MjM0ZDUxMTk4ZjBjMTI0OGFlZDZlYzNiNzU2M2ExNzUwZGRjNC4uMTIwYmExZjJjMjg3Y2ViNzY4
ZWYwYTZmNGEyZjhlNDkyZWVhNGFhMCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvbWVkaWEvZW5j
cnlwdGVkLW1lZGlhL21vY2stTWVkaWFLZXlTeXN0ZW1BY2Nlc3MtZXhwZWN0ZWQudHh0CisrKyBi
L0xheW91dFRlc3RzL21lZGlhL2VuY3J5cHRlZC1tZWRpYS9tb2NrLU1lZGlhS2V5U3lzdGVtQWNj
ZXNzLWV4cGVjdGVkLnR4dApAQCAtMzEsNiArMzEsMTAgQEAgUlVOKGNhcGFiaWxpdGllcy5wZXJz
aXN0ZW50U3RhdGUgPSAibm90LWFsbG93ZWQiKQogUlVOKHByb21pc2UgPSBuYXZpZ2F0b3IucmVx
dWVzdE1lZGlhS2V5U3lzdGVtQWNjZXNzKCJvcmcud2Via2l0Lm1vY2siLCBbY2FwYWJpbGl0aWVz
XSkpCiBQcm9taXNlIHJlc29sdmVkIE9LCiAKK1JVTih0ZXN0UnVubmVyLnNldElzTWVkaWFLZXlT
eXN0ZW1QZXJtaXNzaW9uR3JhbnRlZChmYWxzZSkpCitSVU4ocHJvbWlzZSA9IG5hdmlnYXRvci5y
ZXF1ZXN0TWVkaWFLZXlTeXN0ZW1BY2Nlc3MoIm9yZy53ZWJraXQubW9jayIsIFtjYXBhYmlsaXRp
ZXNdKSkKK1Byb21pc2UgcmVqZWN0ZWQgY29ycmVjdGx5IE9LCisKIFJVTihwcm9taXNlID0gbWVk
aWFLZXlTeXN0ZW1BY2Nlc3MuY3JlYXRlTWVkaWFLZXlzKCkpCiBQcm9taXNlIHJlc29sdmVkIE9L
CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL21lZGlhL2VuY3J5cHRlZC1tZWRpYS9tb2NrLU1l
ZGlhS2V5U3lzdGVtQWNjZXNzLmh0bWwgYi9MYXlvdXRUZXN0cy9tZWRpYS9lbmNyeXB0ZWQtbWVk
aWEvbW9jay1NZWRpYUtleVN5c3RlbUFjY2Vzcy5odG1sCmluZGV4IDQ3OTZmMThjMjAxZjE3NDZk
N2RmNDMyNzQyZDk3NWM3NWVlNGJhNzUuLjU1NWI5ZWU3NjllZWJkMTZkOWE2NzY5MmI2MzcwM2Q0
Y2EzMmM3MDkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL21lZGlhL2VuY3J5cHRlZC1tZWRpYS9t
b2NrLU1lZGlhS2V5U3lzdGVtQWNjZXNzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvbWVkaWEvZW5j
cnlwdGVkLW1lZGlhL21vY2stTWVkaWFLZXlTeXN0ZW1BY2Nlc3MuaHRtbApAQCAtODQsNiArODQs
MTMgQEAKICAgICAgICAgfSwKIAogICAgICAgICBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIHJ1
bigndGVzdFJ1bm5lci5zZXRJc01lZGlhS2V5U3lzdGVtUGVybWlzc2lvbkdyYW50ZWQoZmFsc2Up
Jyk7CisgICAgICAgICAgICBydW4oJ3Byb21pc2UgPSBuYXZpZ2F0b3IucmVxdWVzdE1lZGlhS2V5
U3lzdGVtQWNjZXNzKCJvcmcud2Via2l0Lm1vY2siLCBbY2FwYWJpbGl0aWVzXSknKTsKKyAgICAg
ICAgICAgIHNob3VsZFJlamVjdChwcm9taXNlKS50aGVuKG5leHQsIG5leHQpOworICAgICAgICB9
LAorCisgICAgICAgIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRJc01l
ZGlhS2V5U3lzdGVtUGVybWlzc2lvbkdyYW50ZWQodHJ1ZSk7CiAgICAgICAgICAgICBydW4oJ3By
b21pc2UgPSBtZWRpYUtleVN5c3RlbUFjY2Vzcy5jcmVhdGVNZWRpYUtleXMoKScpOwogICAgICAg
ICAgICAgc2hvdWxkUmVzb2x2ZShwcm9taXNlKS50aGVuKG5leHQsIG5leHQpOwogICAgICAgICB9
LAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>418979</attachid>
            <date>2021-02-02 03:05:23 -0800</date>
            <delta_ts>2021-02-02 03:08:26 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-221187-20210202030521.patch</filename>
            <type>text/plain</type>
            <size>138763</size>
            <attacher name="Philippe Normand">pnormand</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcyMjAwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTcyN2Y1NDExMzViYmNm
MzQzNzk4MmRjMmU1YTRkYTdkMzE5MWRlZi4uNjM3ZTkzMzRhMGEzMDQwNzUzNGY2NDhlNjMxMWU0
OWIyYjY2YTkzZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ4IEBACisyMDIxLTAxLTMxICBQaGls
aXBwZSBOb3JtYW5kICA8cG5vcm1hbmRAaWdhbGlhLmNvbT4KKworICAgICAgICBQZXJtaXNzaW9u
IHJlcXVlc3QgQVBJIGZvciBNZWRpYUtleVN5c3RlbSBhY2Nlc3Mgc3VwcG9ydAorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjIxMTg3CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgU3VwcG9ydCBmb3IgdXNlciBw
ZXJtaXNzaW9uIHJlcXVlc3Rpbmcgd2hlbiBhY2Nlc3MgdG8gYW4gRU1FIE1lZGlhS2V5U3lzdGVt
IGlzIGJlaW5nCisgICAgICAgIHJlcXVlc3RlZCBieSB0aGUgcGFnZS4gVGhpcyBpcyBzaW1pbGFy
IHRvIHRoZSBtZWRpYURldmljZXMgYWNjZXNzIGd1YXJkcy4KKworICAgICAgICBFeGlzdGluZyB0
ZXN0IG1lZGlhL2VuY3J5cHRlZC1tZWRpYS9tb2NrLU1lZGlhS2V5U3lzdGVtQWNjZXNzLmh0bWwg
d2FzIHVwZGF0ZWQgdG8gY292ZXIgdGhpcworICAgICAgICBuZXcgY29kZSBwYXRoIGFuZCBXUEUv
R1RLIEFQSSB0ZXN0cyBhcyB3ZWxsLgorCisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6CisgICAg
ICAgICogSGVhZGVycy5jbWFrZToKKyAgICAgICAgKiBNb2R1bGVzL2VuY3J5cHRlZG1lZGlhL01l
ZGlhS2V5U3lzdGVtQ2xpZW50Lmg6IEFkZGVkLgorICAgICAgICAqIE1vZHVsZXMvZW5jcnlwdGVk
bWVkaWEvTWVkaWFLZXlTeXN0ZW1Db250cm9sbGVyLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJD
b3JlOjpNZWRpYUtleVN5c3RlbUNvbnRyb2xsZXI6OnN1cHBsZW1lbnROYW1lKToKKyAgICAgICAg
KFdlYkNvcmU6Ok1lZGlhS2V5U3lzdGVtQ29udHJvbGxlcjo6TWVkaWFLZXlTeXN0ZW1Db250cm9s
bGVyKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhS2V5U3lzdGVtQ29udHJvbGxlcjo6fk1lZGlh
S2V5U3lzdGVtQ29udHJvbGxlcik6CisgICAgICAgIChXZWJDb3JlOjpwcm92aWRlTWVkaWFLZXlT
eXN0ZW1Ubyk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYUtleVN5c3RlbUNvbnRyb2xsZXI6Omxv
Z1JlcXVlc3RNZWRpYUtleVN5c3RlbURlbmlhbCk6CisgICAgICAgICogTW9kdWxlcy9lbmNyeXB0
ZWRtZWRpYS9NZWRpYUtleVN5c3RlbUNvbnRyb2xsZXIuaDogQWRkZWQuCisgICAgICAgIChXZWJD
b3JlOjpNZWRpYUtleVN5c3RlbUNvbnRyb2xsZXI6OmNsaWVudCBjb25zdCk6CisgICAgICAgIChX
ZWJDb3JlOjpNZWRpYUtleVN5c3RlbUNvbnRyb2xsZXI6OmZyb20pOgorICAgICAgICAoV2ViQ29y
ZTo6TWVkaWFLZXlTeXN0ZW1Db250cm9sbGVyOjpyZXF1ZXN0TWVkaWFLZXlTeXN0ZW0pOgorICAg
ICAgICAoV2ViQ29yZTo6TWVkaWFLZXlTeXN0ZW1Db250cm9sbGVyOjpjYW5jZWxNZWRpYUtleVN5
c3RlbVJlcXVlc3QpOgorICAgICAgICAqIE1vZHVsZXMvZW5jcnlwdGVkbWVkaWEvTWVkaWFLZXlT
eXN0ZW1SZXF1ZXN0LmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpNZWRpYUtleVN5c3Rl
bVJlcXVlc3Q6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYUtleVN5c3RlbVJlcXVl
c3Q6Ok1lZGlhS2V5U3lzdGVtUmVxdWVzdCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYUtleVN5
c3RlbVJlcXVlc3Q6On5NZWRpYUtleVN5c3RlbVJlcXVlc3QpOgorICAgICAgICAoV2ViQ29yZTo6
TWVkaWFLZXlTeXN0ZW1SZXF1ZXN0Ojp0b3BMZXZlbERvY3VtZW50T3JpZ2luIGNvbnN0KToKKyAg
ICAgICAgKFdlYkNvcmU6Ok1lZGlhS2V5U3lzdGVtUmVxdWVzdDo6c3RhcnQpOgorICAgICAgICAo
V2ViQ29yZTo6TWVkaWFLZXlTeXN0ZW1SZXF1ZXN0OjphbGxvdyk6CisgICAgICAgIChXZWJDb3Jl
OjpNZWRpYUtleVN5c3RlbVJlcXVlc3Q6OmRlbnkpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFL
ZXlTeXN0ZW1SZXF1ZXN0OjpzdG9wKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhS2V5U3lzdGVt
UmVxdWVzdDo6YWN0aXZlRE9NT2JqZWN0TmFtZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpN
ZWRpYUtleVN5c3RlbVJlcXVlc3Q6OmRvY3VtZW50IGNvbnN0KToKKyAgICAgICAgKiBNb2R1bGVz
L2VuY3J5cHRlZG1lZGlhL01lZGlhS2V5U3lzdGVtUmVxdWVzdC5oOiBBZGRlZC4KKyAgICAgICAg
KFdlYkNvcmU6Ok1lZGlhS2V5U3lzdGVtUmVxdWVzdDo6c2V0QWxsb3dDYWxsYmFjayk6CisgICAg
ICAgIChXZWJDb3JlOjpNZWRpYUtleVN5c3RlbVJlcXVlc3Q6OmlkZW50aWZpZXIgY29uc3QpOgor
ICAgICAgICAoV2ViQ29yZTo6TWVkaWFLZXlTeXN0ZW1SZXF1ZXN0OjprZXlTeXN0ZW0gY29uc3Qp
OgorICAgICAgICAqIE1vZHVsZXMvZW5jcnlwdGVkbWVkaWEvTmF2aWdhdG9yRU1FLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6Ok5hdmlnYXRvckVNRTo6cmVxdWVzdE1lZGlhS2V5U3lzdGVtQWNjZXNz
KToKKwogMjAyMS0wMi0wMiAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CiAKICAg
ICAgICAgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9tZWRpYWNhcHR1cmUtcmVjb3Jk
L01lZGlhUmVjb3JkZXItc3RvcC5odG1sIGlzIGZsYWt5IHdoZW4gR1BVUHJvY2VzcyBpcyBlbmFi
bGVkCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQv
Q2hhbmdlTG9nCmluZGV4IDFlYTkyYTcxNDVhNTA1ODQ2NWMwNGNkYTM1ZTE3ZTVhZjUwYmE4ODUu
LmQzNDQ5NzRhYWZiNzViYWIzY2U0MjdjZDkzZjRkNWQ0OGJjMGQzZTMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsOTYgQEAKKzIwMjEtMDEtMzEgIFBoaWxpcHBlIE5vcm1hbmQgIDxwbm9ybWFuZEBpZ2Fs
aWEuY29tPgorCisgICAgICAgIFBlcm1pc3Npb24gcmVxdWVzdCBBUEkgZm9yIE1lZGlhS2V5U3lz
dGVtIGFjY2VzcyBzdXBwb3J0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yMjExODcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBBZGQgbmV3IElQQyBhbmQgQyBBUEkgZXhwb3NpbmcgTWVkaWFLZXlTeXN0ZW0g
YWNjZXNzIHBlcm1pc3Npb25zIHRvIHRoZSBVSVByb2Nlc3MuIEF0IGxlYXN0CisgICAgICAgIEdU
Sy9XUEUgd291bGQgbGlrZSB0byBoYXZlIEFQSSBmb3IgYXNraW5nIHBlcm1pc3Npb24gdG8gdGhl
IHVzZXIgd2hlbiBFTUUncyBNZWRpYUtleUFjY2VzcworICAgICAgICBpcyBiZWluZyByZXF1ZXN0
ZWQgYnkgYSBwYWdlLiBPbiBBcHBsZSBwbGF0Zm9ybXMgdGhlIHBlcm1pc3Npb24gaXMgZ3JhbnRl
ZCBieSBkZWZhdWx0IHVudGlsCisgICAgICAgIGEgZGVjaXNpb24gaXMgbWFkZSBhYm91dCBzdXBw
b3J0aW5nIHRoaXMgaW4gdGhlaXIgQVBJVUlDbGllbnQuCisKKyAgICAgICAgKiBDTWFrZUxpc3Rz
LnR4dDoKKyAgICAgICAgKiBIZWFkZXJzLmNtYWtlOgorICAgICAgICAqIFBsYXRmb3JtL0xvZ2dp
bmcuaDoKKyAgICAgICAgKiBTaGFyZWQvQVBJL0FQSU9iamVjdC5oOgorICAgICAgICAqIFNoYXJl
ZC9BUEkvYy9XS0Jhc2UuaDoKKyAgICAgICAgKiBTb3VyY2VzLnR4dDoKKyAgICAgICAgKiBVSVBy
b2Nlc3MvQVBJL0FQSVVJQ2xpZW50Lmg6CisgICAgICAgIChBUEk6OlVJQ2xpZW50OjpkZWNpZGVQ
b2xpY3lGb3JNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0KToKKyAgICAgICAgKiBVSVBy
b2Nlc3MvQVBJL0MvV0tBUElDYXN0Lmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dLTWVk
aWFLZXlTeXN0ZW1QZXJtaXNzaW9uQ2FsbGJhY2suY3BwOiBBZGRlZC4KKyAgICAgICAgKFdLTWVk
aWFLZXlTeXN0ZW1QZXJtaXNzaW9uQ2FsbGJhY2tHZXRUeXBlSUQpOgorICAgICAgICAoV0tNZWRp
YUtleVN5c3RlbVBlcm1pc3Npb25DYWxsYmFja0NvbXBsZXRlKToKKyAgICAgICAgKiBVSVByb2Nl
c3MvQVBJL0MvV0tNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25DYWxsYmFjay5oOiBBZGRlZC4KKyAg
ICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmNwcDoKKyAgICAgICAgKFdLUGFnZVNldFBh
Z2VVSUNsaWVudCk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dLUGFnZVVJQ2xpZW50Lmg6
CisgICAgICAgICogVUlQcm9jZXNzL01lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3QuaDog
QWRkZWQuCisgICAgICAgIChXZWJLaXQ6Ok1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3Q6
OmNyZWF0ZSk6CisgICAgICAgIChXZWJLaXQ6Ok1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVl
c3Q6OmNvbXBsZXRlKToKKyAgICAgICAgKFdlYktpdDo6TWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9u
UmVxdWVzdDo6a2V5U3lzdGVtIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6TWVkaWFLZXlTeXN0
ZW1QZXJtaXNzaW9uUmVxdWVzdDo6TWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdCk6Cisg
ICAgICAgIChXZWJLaXQ6Ok1lZGlhS2V5U3lzdGVtUGVybWlzc2lvbkNhbGxiYWNrOjpjcmVhdGUp
OgorICAgICAgICAoV2ViS2l0OjpNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25DYWxsYmFjazo6Y29t
cGxldGUpOgorICAgICAgICAoV2ViS2l0OjpNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25DYWxsYmFj
azo6TWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uQ2FsbGJhY2spOgorICAgICAgICAqIFVJUHJvY2Vz
cy9NZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmNwcDogQWRkZWQu
CisgICAgICAgIChXZWJLaXQ6Ok1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RNYW5hZ2Vy
UHJveHk6Ok1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkpOgorICAg
ICAgICAoV2ViS2l0OjpNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5
Ojp+TWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eSk6CisgICAgICAg
IChXZWJLaXQ6Ok1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6Omlu
dmFsaWRhdGVQZW5kaW5nUmVxdWVzdHMpOgorICAgICAgICAoV2ViS2l0OjpNZWRpYUtleVN5c3Rl
bVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5OjpkZW55UmVxdWVzdCk6CisgICAgICAgIChX
ZWJLaXQ6Ok1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6OmdyYW50
UmVxdWVzdCk6CisgICAgICAgIChXZWJLaXQ6Ok1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVl
c3RNYW5hZ2VyUHJveHk6OmNyZWF0ZVJlcXVlc3RGb3JGcmFtZSk6CisgICAgICAgIChXZWJLaXQ6
Ok1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6OmxvZ0NoYW5uZWwg
Y29uc3QpOgorICAgICAgICAoV2ViS2l0OjpNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0
TWFuYWdlclByb3h5Ojpsb2dnZXIgY29uc3QpOgorICAgICAgICAqIFVJUHJvY2Vzcy9NZWRpYUtl
eVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5Lmg6IEFkZGVkLgorICAgICAgICAo
V2ViS2l0OjpNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5OjpwYWdl
IGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6TWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVz
dE1hbmFnZXJQcm94eTo6ZGVueVJlcXVlc3QpOgorICAgICAgICAqIFVJUHJvY2Vzcy9NZWRpYUtl
eVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0UHJveHkuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYktp
dDo6TWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdFByb3h5OjpNZWRpYUtleVN5c3RlbVBl
cm1pc3Npb25SZXF1ZXN0UHJveHkpOgorICAgICAgICAoV2ViS2l0OjpNZWRpYUtleVN5c3RlbVBl
cm1pc3Npb25SZXF1ZXN0UHJveHk6OmFsbG93KToKKyAgICAgICAgKFdlYktpdDo6TWVkaWFLZXlT
eXN0ZW1QZXJtaXNzaW9uUmVxdWVzdFByb3h5OjpkZW55KToKKyAgICAgICAgKFdlYktpdDo6TWVk
aWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdFByb3h5OjppbnZhbGlkYXRlKToKKyAgICAgICAg
KFdlYktpdDo6TWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdFByb3h5Ojpkb0RlZmF1bHRB
Y3Rpb24pOgorICAgICAgICAqIFVJUHJvY2Vzcy9NZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1
ZXN0UHJveHkuaDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6Ok1lZGlhS2V5U3lzdGVtUGVybWlz
c2lvblJlcXVlc3RQcm94eTo6Y3JlYXRlKToKKyAgICAgICAgKFdlYktpdDo6TWVkaWFLZXlTeXN0
ZW1QZXJtaXNzaW9uUmVxdWVzdFByb3h5Ojppc1BlbmRpbmcgY29uc3QpOgorICAgICAgICAoV2Vi
S2l0OjpNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0UHJveHk6Om1lZGlhS2V5U3lzdGVt
SUQgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1
ZXN0UHJveHk6Om1haW5GcmFtZUlEIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6TWVkaWFLZXlT
eXN0ZW1QZXJtaXNzaW9uUmVxdWVzdFByb3h5OjpmcmFtZUlEIGNvbnN0KToKKyAgICAgICAgKFdl
YktpdDo6TWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdFByb3h5Ojp0b3BMZXZlbERvY3Vt
ZW50U2VjdXJpdHlPcmlnaW4pOgorICAgICAgICAoV2ViS2l0OjpNZWRpYUtleVN5c3RlbVBlcm1p
c3Npb25SZXF1ZXN0UHJveHk6OnRvcExldmVsRG9jdW1lbnRTZWN1cml0eU9yaWdpbiBjb25zdCk6
CisgICAgICAgIChXZWJLaXQ6Ok1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RQcm94eTo6
a2V5U3lzdGVtIGNvbnN0KToKKyAgICAgICAgKiBVSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25S
ZW1vdGVSZWFsdGltZU1lZGlhU291cmNlLmg6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQ
cm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6cmVxdWVzdE1lZGlhS2V5
U3lzdGVtUGVybWlzc2lvbkZvckZyYW1lKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5
OjptZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcik6CisgICAgICAgIChXZWJL
aXQ6OldlYlBhZ2VQcm94eTo6cmVxdWVzdE1lZGlhS2V5U3lzdGVtUGVybWlzc2lvbkJ5RGVmYXVs
dEFjdGlvbik6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oOgorICAgICAgICAq
IFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW46CisgICAgICAgICogV2ViUHJvY2Vz
cy9FbmNyeXB0ZWRNZWRpYS9NZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlci5j
cHA6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1
ZXN0TWFuYWdlcjo6TWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIpOgorICAg
ICAgICAoV2ViS2l0OjpNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcjo6c3Rh
cnRNZWRpYUtleVN5c3RlbVJlcXVlc3QpOgorICAgICAgICAoV2ViS2l0OjpNZWRpYUtleVN5c3Rl
bVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcjo6c2VuZE1lZGlhS2V5U3lzdGVtUmVxdWVzdCk6Cisg
ICAgICAgIChXZWJLaXQ6Ok1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyOjpj
YW5jZWxNZWRpYUtleVN5c3RlbVJlcXVlc3QpOgorICAgICAgICAoV2ViS2l0OjpNZWRpYUtleVN5
c3RlbVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcjo6bWVkaWFLZXlTeXN0ZW1XYXNHcmFudGVkKToK
KyAgICAgICAgKFdlYktpdDo6TWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXI6
Om1lZGlhS2V5U3lzdGVtV2FzRGVuaWVkKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0VuY3J5cHRl
ZE1lZGlhL01lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyLmg6IEFkZGVkLgor
ICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViTWVkaWFLZXlTeXN0ZW1DbGll
bnQuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViTWVkaWFLZXlTeXN0ZW1DbGllbnQ6
OldlYk1lZGlhS2V5U3lzdGVtQ2xpZW50KToKKyAgICAgICAgKFdlYktpdDo6V2ViTWVkaWFLZXlT
eXN0ZW1DbGllbnQ6OnBhZ2VEZXN0cm95ZWQpOgorICAgICAgICAoV2ViS2l0OjpXZWJNZWRpYUtl
eVN5c3RlbUNsaWVudDo6cmVxdWVzdE1lZGlhS2V5U3lzdGVtKToKKyAgICAgICAgKFdlYktpdDo6
V2ViTWVkaWFLZXlTeXN0ZW1DbGllbnQ6OmNhbmNlbE1lZGlhS2V5U3lzdGVtUmVxdWVzdCk6Cisg
ICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJNZWRpYUtleVN5c3RlbUNsaWVu
dC5oOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViTWVkaWFLZXlTeXN0ZW1DbGllbnQ6On5X
ZWJNZWRpYUtleVN5c3RlbUNsaWVudCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dl
YlBhZ2UuY3BwOgorICAgICAgICAoV2ViS2l0OjptX2xpbWl0c05hdmlnYXRpb25zVG9BcHBCb3Vu
ZERvbWFpbnMpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjptZWRpYUtleVN5c3RlbVdhc0dy
YW50ZWQpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjptZWRpYUtleVN5c3RlbVdhc0Rlbmll
ZCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaDoKKyAgICAgICAgKFdl
YktpdDo6V2ViUGFnZTo6bWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIpOgor
ICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluOgorCiAyMDIx
LTAyLTAyICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAogICAgICAgICBpbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL21lZGlhY2FwdHVyZS1yZWNvcmQvTWVkaWFSZWNv
cmRlci1zdG9wLmh0bWwgaXMgZmxha3kgd2hlbiBHUFVQcm9jZXNzIGlzIGVuYWJsZWQKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYkNvcmUvQ01h
a2VMaXN0cy50eHQKaW5kZXggYmFhNDUzZDZjZjFjMjJlNjU5MzExNTQ0YjAyNmI3OGFkNGI1OGQ2
NC4uYjJmMTY3OTAxMmMwM2I4MGRmYzU0ZDI0NzhmZjBiZTJlODI0ZTBiOSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvQ01ha2VM
aXN0cy50eHQKQEAgLTE0OTcsNiArMTQ5Nyw4IEBAIGlmIChFTkFCTEVfRU5DUllQVEVEX01FRElB
KQogICAgICAgICBNb2R1bGVzL2VuY3J5cHRlZG1lZGlhL01lZGlhS2V5U2Vzc2lvbi5jcHAKICAg
ICAgICAgTW9kdWxlcy9lbmNyeXB0ZWRtZWRpYS9NZWRpYUtleVN0YXR1c01hcC5jcHAKICAgICAg
ICAgTW9kdWxlcy9lbmNyeXB0ZWRtZWRpYS9NZWRpYUtleVN5c3RlbUFjY2Vzcy5jcHAKKyAgICAg
ICAgTW9kdWxlcy9lbmNyeXB0ZWRtZWRpYS9NZWRpYUtleVN5c3RlbUNvbnRyb2xsZXIuY3BwCisg
ICAgICAgIE1vZHVsZXMvZW5jcnlwdGVkbWVkaWEvTWVkaWFLZXlTeXN0ZW1SZXF1ZXN0LmNwcAog
ICAgICAgICBNb2R1bGVzL2VuY3J5cHRlZG1lZGlhL01lZGlhS2V5cy5jcHAKICAgICAgICAgTW9k
dWxlcy9lbmNyeXB0ZWRtZWRpYS9OYXZpZ2F0b3JFTUUuY3BwCiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UgYi9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCmlu
ZGV4IGFiYTE1ZTBlZDdhMDE0NjQ1ODJmM2Y5MjgwZTY3OGIzZGIyOGY2MzIuLjhjMWI2YzMyNzgy
YTkxZDljNDE0YzYxMGI0OWU2NzllZWI2MGJiNjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L0hlYWRlcnMuY21ha2UKKysrIGIvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQpAQCAtMjQs
NiArMjQsOSBAQCBzZXQoV2ViQ29yZV9QUklWQVRFX0ZSQU1FV09SS19IRUFERVJTCiAgICAgTW9k
dWxlcy9jb250YWN0LXBpY2tlci9Db250YWN0c1JlcXVlc3REYXRhLmgKIAogICAgIE1vZHVsZXMv
ZW5jcnlwdGVkbWVkaWEvQ0RNQ2xpZW50LmgKKyAgICBNb2R1bGVzL2VuY3J5cHRlZG1lZGlhL01l
ZGlhS2V5U3lzdGVtQ2xpZW50LmgKKyAgICBNb2R1bGVzL2VuY3J5cHRlZG1lZGlhL01lZGlhS2V5
U3lzdGVtQ29udHJvbGxlci5oCisgICAgTW9kdWxlcy9lbmNyeXB0ZWRtZWRpYS9NZWRpYUtleVN5
c3RlbVJlcXVlc3QuaAogCiAgICAgTW9kdWxlcy9mZXRjaC9GZXRjaEJvZHlDb25zdW1lci5oCiAg
ICAgTW9kdWxlcy9mZXRjaC9GZXRjaEJvZHlTb3VyY2UuaApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9lbmNyeXB0ZWRtZWRpYS9NZWRpYUtleVN5c3RlbUNsaWVudC5oIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9lbmNyeXB0ZWRtZWRpYS9NZWRpYUtleVN5c3RlbUNsaWVudC5o
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjUzZDMwYjFkMGY4OWUwMDUwYWFkMDQyMjdhMTBlODQ0MDI5ODI5N2IKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2VuY3J5cHRlZG1lZGlhL01l
ZGlhS2V5U3lzdGVtQ2xpZW50LmgKQEAgLTAsMCArMSw1MiBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAyMSBJZ2FsaWEgUy5MLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBB
TkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMgQkUg
TElBQkxFIEZPUiBBTlkKKyAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisgKiAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7CisgKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04KKyAqIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UgT0YgVEhJUworICogU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFC
TEUoRU5DUllQVEVEX01FRElBKQorCisjaW5jbHVkZSA8d3RmL0NvbXBsZXRpb25IYW5kbGVyLmg+
CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgRG9jdW1lbnQ7CitjbGFzcyBQYWdlOwor
Y2xhc3MgTWVkaWFLZXlTeXN0ZW1SZXF1ZXN0OworCitjbGFzcyBNZWRpYUtleVN5c3RlbUNsaWVu
dCB7CitwdWJsaWM6CisgICAgdmlydHVhbCB2b2lkIHBhZ2VEZXN0cm95ZWQoKSA9IDA7CisKKyAg
ICB2aXJ0dWFsIHZvaWQgcmVxdWVzdE1lZGlhS2V5U3lzdGVtKE1lZGlhS2V5U3lzdGVtUmVxdWVz
dCYpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgY2FuY2VsTWVkaWFLZXlTeXN0ZW1SZXF1ZXN0KE1l
ZGlhS2V5U3lzdGVtUmVxdWVzdCYpID0gMDsKKworcHJvdGVjdGVkOgorICAgIHZpcnR1YWwgfk1l
ZGlhS2V5U3lzdGVtQ2xpZW50KCkgPSBkZWZhdWx0OworfTsKKworV0VCQ09SRV9FWFBPUlQgdm9p
ZCBwcm92aWRlTWVkaWFLZXlTeXN0ZW1UbyhQYWdlKiwgTWVkaWFLZXlTeXN0ZW1DbGllbnQqKTsK
KworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKEVOQ1JZUFRFRF9N
RURJQSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZW5jcnlwdGVkbWVkaWEv
TWVkaWFLZXlTeXN0ZW1Db250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZW5j
cnlwdGVkbWVkaWEvTWVkaWFLZXlTeXN0ZW1Db250cm9sbGVyLmNwcApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xMjJi
YTgyNWMyYzczNzYwYzlhZDgzYjAyM2RmZjBmYTAyN2Q0ZTQ5Ci0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9lbmNyeXB0ZWRtZWRpYS9NZWRpYUtleVN5c3RlbUNvbnRy
b2xsZXIuY3BwCkBAIC0wLDAgKzEsNjYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgSWdh
bGlhIFMuTC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycgQU5EIEFOWQorICog
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1Ig
QU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworICogTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OCisgKiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMKKyAqIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJNZWRp
YUtleVN5c3RlbUNvbnRyb2xsZXIuaCIKKworI2lmIEVOQUJMRShFTkNSWVBURURfTUVESUEpCisK
KyNpbmNsdWRlICJET01XaW5kb3cuaCIKKyNpbmNsdWRlICJEb2N1bWVudC5oIgorI2luY2x1ZGUg
IkZyYW1lLmgiCisjaW5jbHVkZSAiSFRNTElGcmFtZUVsZW1lbnQuaCIKKyNpbmNsdWRlICJNZWRp
YUtleVN5c3RlbVJlcXVlc3QuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjb25zdCBjaGFy
KiBNZWRpYUtleVN5c3RlbUNvbnRyb2xsZXI6OnN1cHBsZW1lbnROYW1lKCkKK3sKKyAgICByZXR1
cm4gIk1lZGlhS2V5U3lzdGVtQ29udHJvbGxlciI7Cit9CisKK01lZGlhS2V5U3lzdGVtQ29udHJv
bGxlcjo6TWVkaWFLZXlTeXN0ZW1Db250cm9sbGVyKE1lZGlhS2V5U3lzdGVtQ2xpZW50KiBjbGll
bnQpCisgICAgOiBtX2NsaWVudChjbGllbnQpCit7Cit9CisKK01lZGlhS2V5U3lzdGVtQ29udHJv
bGxlcjo6fk1lZGlhS2V5U3lzdGVtQ29udHJvbGxlcigpCit7CisgICAgbV9jbGllbnQtPnBhZ2VE
ZXN0cm95ZWQoKTsKK30KKwordm9pZCBwcm92aWRlTWVkaWFLZXlTeXN0ZW1UbyhQYWdlKiBwYWdl
LCBNZWRpYUtleVN5c3RlbUNsaWVudCogY2xpZW50KQoreworICAgIE1lZGlhS2V5U3lzdGVtQ29u
dHJvbGxlcjo6cHJvdmlkZVRvKHBhZ2UsIE1lZGlhS2V5U3lzdGVtQ29udHJvbGxlcjo6c3VwcGxl
bWVudE5hbWUoKSwgbWFrZVVuaXF1ZTxNZWRpYUtleVN5c3RlbUNvbnRyb2xsZXI+KGNsaWVudCkp
OworfQorCit2b2lkIE1lZGlhS2V5U3lzdGVtQ29udHJvbGxlcjo6bG9nUmVxdWVzdE1lZGlhS2V5
U3lzdGVtRGVuaWFsKERvY3VtZW50JiBkb2N1bWVudCkKK3sKKyAgICBpZiAoYXV0byogd2luZG93
ID0gZG9jdW1lbnQuZG9tV2luZG93KCkpCisgICAgICAgIHdpbmRvdy0+cHJpbnRFcnJvck1lc3Nh
Z2UobWFrZVN0cmluZygiTm90IGFsbG93ZWQgdG8gYWNjZXNzIE1lZGlhS2V5U3lzdGVtLiIpKTsK
K30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKE1FRElBX1NU
UkVBTSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZW5jcnlwdGVkbWVkaWEv
TWVkaWFLZXlTeXN0ZW1Db250cm9sbGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2VuY3J5
cHRlZG1lZGlhL01lZGlhS2V5U3lzdGVtQ29udHJvbGxlci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjE5YTI4YTJi
YjkwZWI0NDBjNjc3ODAxZWY3OWFjZDhmZmIxYWE4MDMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2VuY3J5cHRlZG1lZGlhL01lZGlhS2V5U3lzdGVtQ29udHJvbGxl
ci5oCkBAIC0wLDAgKzEsNzAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgSWdhbGlhIFMu
TC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuICBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBU
SEUgSU1QTElFRAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisg
KiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENP
TlNFUVVFTlRJQUwgREFNQUdFUworICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OCisgKiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMK
KyAqIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKEVOQ1JZUFRFRF9NRURJ
QSkKKworI2luY2x1ZGUgIkZlYXR1cmVQb2xpY3kuaCIKKyNpbmNsdWRlICJNZWRpYUtleVN5c3Rl
bUNsaWVudC5oIgorI2luY2x1ZGUgIlBhZ2UuaCIKKyNpbmNsdWRlIDx3dGYvQ29tcGxldGlvbkhh
bmRsZXIuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBNZWRpYUtleVN5c3RlbVJl
cXVlc3Q7CisKK2NsYXNzIE1lZGlhS2V5U3lzdGVtQ29udHJvbGxlciA6IHB1YmxpYyBTdXBwbGVt
ZW50PFBhZ2U+IHsKKyAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKK3B1YmxpYzoKKyAgICBl
eHBsaWNpdCBNZWRpYUtleVN5c3RlbUNvbnRyb2xsZXIoTWVkaWFLZXlTeXN0ZW1DbGllbnQqKTsK
KyAgICB+TWVkaWFLZXlTeXN0ZW1Db250cm9sbGVyKCk7CisKKyAgICBNZWRpYUtleVN5c3RlbUNs
aWVudCogY2xpZW50KCkgY29uc3QgeyByZXR1cm4gbV9jbGllbnQ7IH0KKworICAgIHZvaWQgcmVx
dWVzdE1lZGlhS2V5U3lzdGVtKE1lZGlhS2V5U3lzdGVtUmVxdWVzdCYpOworICAgIHZvaWQgY2Fu
Y2VsTWVkaWFLZXlTeXN0ZW1SZXF1ZXN0KE1lZGlhS2V5U3lzdGVtUmVxdWVzdCYpOworCisgICAg
dm9pZCBsb2dSZXF1ZXN0TWVkaWFLZXlTeXN0ZW1EZW5pYWwoRG9jdW1lbnQmKTsKKworICAgIFdF
QkNPUkVfRVhQT1JUIHN0YXRpYyBjb25zdCBjaGFyKiBzdXBwbGVtZW50TmFtZSgpOworICAgIHN0
YXRpYyBNZWRpYUtleVN5c3RlbUNvbnRyb2xsZXIqIGZyb20oUGFnZSogcGFnZSkgeyByZXR1cm4g
c3RhdGljX2Nhc3Q8TWVkaWFLZXlTeXN0ZW1Db250cm9sbGVyKj4oU3VwcGxlbWVudDxQYWdlPjo6
ZnJvbShwYWdlLCBzdXBwbGVtZW50TmFtZSgpKSk7IH0KKworcHJpdmF0ZToKKyAgICBNZWRpYUtl
eVN5c3RlbUNsaWVudCogbV9jbGllbnQ7Cit9OworCitpbmxpbmUgdm9pZCBNZWRpYUtleVN5c3Rl
bUNvbnRyb2xsZXI6OnJlcXVlc3RNZWRpYUtleVN5c3RlbShNZWRpYUtleVN5c3RlbVJlcXVlc3Qm
IHJlcXVlc3QpCit7CisgICAgbV9jbGllbnQtPnJlcXVlc3RNZWRpYUtleVN5c3RlbShyZXF1ZXN0
KTsKK30KKworaW5saW5lIHZvaWQgTWVkaWFLZXlTeXN0ZW1Db250cm9sbGVyOjpjYW5jZWxNZWRp
YUtleVN5c3RlbVJlcXVlc3QoTWVkaWFLZXlTeXN0ZW1SZXF1ZXN0JiByZXF1ZXN0KQoreworICAg
IG1fY2xpZW50LT5jYW5jZWxNZWRpYUtleVN5c3RlbVJlcXVlc3QocmVxdWVzdCk7Cit9CisKK30g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShFTkNSWVBURURfTUVESUEp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2VuY3J5cHRlZG1lZGlhL01lZGlh
S2V5U3lzdGVtUmVxdWVzdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2VuY3J5cHRlZG1l
ZGlhL01lZGlhS2V5U3lzdGVtUmVxdWVzdC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uN2VmNTNhYTZhYjU1MmVk
ZTU0YTQ2YTIyYjZkYzJjMGVhYTMzOTNhYwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvZW5jcnlwdGVkbWVkaWEvTWVkaWFLZXlTeXN0ZW1SZXF1ZXN0LmNwcApAQCAt
MCwwICsxLDEyNyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBJZ2FsaWEgUy5MLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBM
SUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKKyAqIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVO
VElBTCBEQU1BR0VTCisgKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7CisgKiBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04KKyAqIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUworICogU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIk1lZGlhS2V5U3lzdGVtUmVx
dWVzdC5oIgorCisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKworI2luY2x1ZGUgIkRvY3VtZW50
LmgiCisjaW5jbHVkZSAiRnJhbWUuaCIKKyNpbmNsdWRlICJKU0RPTVByb21pc2VEZWZlcnJlZC5o
IgorI2luY2x1ZGUgIkpTTWVkaWFLZXlTeXN0ZW1BY2Nlc3MuaCIKKyNpbmNsdWRlICJMb2dnaW5n
LmgiCisjaW5jbHVkZSAiTWVkaWFLZXlTeXN0ZW1Db250cm9sbGVyLmgiCisjaW5jbHVkZSAiUGxh
dGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyLmgiCisjaW5jbHVkZSAiU2V0dGluZ3MuaCIKKyNpbmNs
dWRlICJXaW5kb3dFdmVudExvb3AuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitSZWY8TWVk
aWFLZXlTeXN0ZW1SZXF1ZXN0PiBNZWRpYUtleVN5c3RlbVJlcXVlc3Q6OmNyZWF0ZShEb2N1bWVu
dCYgZG9jdW1lbnQsIGNvbnN0IFN0cmluZyYga2V5U3lzdGVtLCBSZWY8RGVmZXJyZWRQcm9taXNl
PiYmIHByb21pc2UpCit7CisgICAgYXV0byByZXN1bHQgPSBhZG9wdFJlZigqbmV3IE1lZGlhS2V5
U3lzdGVtUmVxdWVzdChkb2N1bWVudCwga2V5U3lzdGVtLCBXVEZNb3ZlKHByb21pc2UpKSk7Cisg
ICAgcmVzdWx0LT5zdXNwZW5kSWZOZWVkZWQoKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorCitN
ZWRpYUtleVN5c3RlbVJlcXVlc3Q6Ok1lZGlhS2V5U3lzdGVtUmVxdWVzdChEb2N1bWVudCYgZG9j
dW1lbnQsIGNvbnN0IFN0cmluZyYga2V5U3lzdGVtLCBSZWY8RGVmZXJyZWRQcm9taXNlPiYmIHBy
b21pc2UpCisgICAgOiBBY3RpdmVET01PYmplY3QoZG9jdW1lbnQpCisgICAgLCBtX2tleVN5c3Rl
bShrZXlTeXN0ZW0pCisgICAgLCBtX3Byb21pc2UoV1RGTW92ZShwcm9taXNlKSkKK3sKK30KKwor
TWVkaWFLZXlTeXN0ZW1SZXF1ZXN0Ojp+TWVkaWFLZXlTeXN0ZW1SZXF1ZXN0KCkKK3sKKyAgICBp
ZiAobV9hbGxvd0NvbXBsZXRpb25IYW5kbGVyKQorICAgICAgICBtX2FsbG93Q29tcGxldGlvbkhh
bmRsZXIoV1RGTW92ZShtX3Byb21pc2UpKTsKK30KKworU2VjdXJpdHlPcmlnaW4qIE1lZGlhS2V5
U3lzdGVtUmVxdWVzdDo6dG9wTGV2ZWxEb2N1bWVudE9yaWdpbigpIGNvbnN0Cit7CisgICAgaWYg
KCFtX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQpCisgICAgICAgIHJldHVybiBudWxscHRyOworICAg
IHJldHVybiAmbV9zY3JpcHRFeGVjdXRpb25Db250ZXh0LT50b3BPcmlnaW4oKTsKK30KKwordm9p
ZCBNZWRpYUtleVN5c3RlbVJlcXVlc3Q6OnN0YXJ0KCkKK3sKKyAgICBBU1NFUlQobV9zY3JpcHRF
eGVjdXRpb25Db250ZXh0KTsKKyAgICBpZiAoIW1fc2NyaXB0RXhlY3V0aW9uQ29udGV4dCkgewor
ICAgICAgICBkZW55KCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBhdXRvJiBkb2N1
bWVudCA9IGRvd25jYXN0PERvY3VtZW50PigqbV9zY3JpcHRFeGVjdXRpb25Db250ZXh0KTsKKyAg
ICBhdXRvKiBjb250cm9sbGVyID0gTWVkaWFLZXlTeXN0ZW1Db250cm9sbGVyOjpmcm9tKGRvY3Vt
ZW50LnBhZ2UoKSk7CisgICAgaWYgKCFjb250cm9sbGVyKSB7CisgICAgICAgIGRlbnkoKTsKKyAg
ICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGNvbnRyb2xsZXItPnJlcXVlc3RNZWRpYUtleVN5
c3RlbSgqdGhpcyk7Cit9CisKK3ZvaWQgTWVkaWFLZXlTeXN0ZW1SZXF1ZXN0OjphbGxvdyhDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCit7CisgICAgcXVldWVU
YXNrS2VlcGluZ09iamVjdEFsaXZlKCp0aGlzLCBUYXNrU291cmNlOjpVc2VySW50ZXJhY3Rpb24s
IFt0aGlzLCBoYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcildKCkgbXV0YWJsZSB7
CisgICAgICAgIGF1dG8gY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKG1fYWxsb3dDb21wbGV0
aW9uSGFuZGxlcik7CisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKFdURk1vdmUobV9wcm9taXNl
KSk7CisgICAgICAgIGhhbmRsZXIoKTsKKyAgICB9KTsKK30KKwordm9pZCBNZWRpYUtleVN5c3Rl
bVJlcXVlc3Q6OmRlbnkoY29uc3QgU3RyaW5nJiBtZXNzYWdlKQoreworICAgIGlmICghbV9zY3Jp
cHRFeGVjdXRpb25Db250ZXh0KQorICAgICAgICByZXR1cm47CisKKyAgICBFeGNlcHRpb25Db2Rl
IGNvZGUgPSBOb3RTdXBwb3J0ZWRFcnJvcjsKKyAgICBpZiAoIW1lc3NhZ2UuaXNFbXB0eSgpKQor
ICAgICAgICBtX3Byb21pc2UtPnJlamVjdChjb2RlLCBtZXNzYWdlKTsKKyAgICBlbHNlCisgICAg
ICAgIG1fcHJvbWlzZS0+cmVqZWN0KGNvZGUpOworfQorCit2b2lkIE1lZGlhS2V5U3lzdGVtUmVx
dWVzdDo6c3RvcCgpCit7CisgICAgYXV0byYgZG9jdW1lbnQgPSBkb3duY2FzdDxEb2N1bWVudD4o
Km1fc2NyaXB0RXhlY3V0aW9uQ29udGV4dCk7CisgICAgaWYgKGF1dG8qIGNvbnRyb2xsZXIgPSBN
ZWRpYUtleVN5c3RlbUNvbnRyb2xsZXI6OmZyb20oZG9jdW1lbnQucGFnZSgpKSkKKyAgICAgICAg
Y29udHJvbGxlci0+Y2FuY2VsTWVkaWFLZXlTeXN0ZW1SZXF1ZXN0KCp0aGlzKTsKK30KKworY29u
c3QgY2hhciogTWVkaWFLZXlTeXN0ZW1SZXF1ZXN0OjphY3RpdmVET01PYmplY3ROYW1lKCkgY29u
c3QKK3sKKyAgICByZXR1cm4gIk1lZGlhS2V5U3lzdGVtUmVxdWVzdCI7Cit9CisKK0RvY3VtZW50
KiBNZWRpYUtleVN5c3RlbVJlcXVlc3Q6OmRvY3VtZW50KCkgY29uc3QKK3sKKyAgICByZXR1cm4g
ZG93bmNhc3Q8RG9jdW1lbnQ+KG1fc2NyaXB0RXhlY3V0aW9uQ29udGV4dCk7Cit9CisKK30gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShFTkNSWVBURURfTUVESUEpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2VuY3J5cHRlZG1lZGlhL01lZGlhS2V5
U3lzdGVtUmVxdWVzdC5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9lbmNyeXB0ZWRtZWRpYS9N
ZWRpYUtleVN5c3RlbVJlcXVlc3QuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yMzEzYzM4YjJiNmZhOGFkOTViYmFi
N2VjZjM1Y2M0N2JiZDU1ZTUxCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9lbmNyeXB0ZWRtZWRpYS9NZWRpYUtleVN5c3RlbVJlcXVlc3QuaApAQCAtMCwwICsxLDgw
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIElnYWxpYSBTLkwuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIg
UFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorICogRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFH
RVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTgorICog
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTCisgKiBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisj
cHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShFTkNSWVBURURfTUVESUEpCisKKyNpbmNsdWRlICJB
Y3RpdmVET01PYmplY3QuaCIKKyNpbmNsdWRlICJJRExUeXBlcy5oIgorI2luY2x1ZGUgIkpTRE9N
UHJvbWlzZURlZmVycmVkLmgiCisjaW5jbHVkZSA8d3RmL0NvbXBsZXRpb25IYW5kbGVyLmg+Cisj
aW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KKyNpbmNsdWRlIDx3dGYvT2JqZWN0SWRlbnRpZmllci5o
PgorI2luY2x1ZGUgPHd0Zi9VbmlxdWVSZWYuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitj
bGFzcyBTZWN1cml0eU9yaWdpbjsKK2NsYXNzIE1lZGlhS2V5U3lzdGVtOworCit0ZW1wbGF0ZSA8
dHlwZW5hbWUgSURMVHlwZT4gY2xhc3MgRE9NUHJvbWlzZURlZmVycmVkOworCitlbnVtIE1lZGlh
S2V5U3lzdGVtUmVxdWVzdElkZW50aWZpZXJUeXBlIHsgfTsKK3VzaW5nIE1lZGlhS2V5U3lzdGVt
UmVxdWVzdElkZW50aWZpZXIgPSBPYmplY3RJZGVudGlmaWVyPE1lZGlhS2V5U3lzdGVtUmVxdWVz
dElkZW50aWZpZXJUeXBlPjsKKworY2xhc3MgTWVkaWFLZXlTeXN0ZW1SZXF1ZXN0IDogcHVibGlj
IFJlZkNvdW50ZWQ8TWVkaWFLZXlTeXN0ZW1SZXF1ZXN0PiwgcHVibGljIEFjdGl2ZURPTU9iamVj
dCB7CitwdWJsaWM6CisgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIFJlZjxNZWRpYUtleVN5c3Rl
bVJlcXVlc3Q+IGNyZWF0ZShEb2N1bWVudCYsIGNvbnN0IFN0cmluZyYga2V5U3lzdGVtLCBSZWY8
RGVmZXJyZWRQcm9taXNlPiYmKTsKKyAgICB2aXJ0dWFsIH5NZWRpYUtleVN5c3RlbVJlcXVlc3Qo
KTsKKworICAgIHZvaWQgc2V0QWxsb3dDYWxsYmFjayhDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFJl
ZjxEZWZlcnJlZFByb21pc2U+JiYpPiYmIGNhbGxiYWNrKSB7IG1fYWxsb3dDb21wbGV0aW9uSGFu
ZGxlciA9IFdURk1vdmUoY2FsbGJhY2spOyB9CisgICAgTWVkaWFLZXlTeXN0ZW1SZXF1ZXN0SWRl
bnRpZmllciBpZGVudGlmaWVyKCkgY29uc3QgeyByZXR1cm4gbV9pZGVudGlmaWVyOyB9CisgICAg
V0VCQ09SRV9FWFBPUlQgdm9pZCBzdGFydCgpOworCisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBh
bGxvdyhDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOworICAgIFdFQkNPUkVfRVhQT1JUIHZv
aWQgZGVueShjb25zdCBTdHJpbmcmIGVycm9yTWVzc2FnZSA9IGVtcHR5U3RyaW5nKCkpOworCisg
ICAgV0VCQ09SRV9FWFBPUlQgU2VjdXJpdHlPcmlnaW4qIHRvcExldmVsRG9jdW1lbnRPcmlnaW4o
KSBjb25zdDsKKyAgICBXRUJDT1JFX0VYUE9SVCBEb2N1bWVudCogZG9jdW1lbnQoKSBjb25zdDsK
KworICAgIGNvbnN0IFN0cmluZyBrZXlTeXN0ZW0oKSBjb25zdCB7IHJldHVybiBtX2tleVN5c3Rl
bTsgfQorCitwcml2YXRlOgorICAgIE1lZGlhS2V5U3lzdGVtUmVxdWVzdChEb2N1bWVudCYsIGNv
bnN0IFN0cmluZyYga2V5U3lzdGVtLCBSZWY8RGVmZXJyZWRQcm9taXNlPiYmKTsKKworICAgIHZv
aWQgc3RvcCgpIGZpbmFsOworICAgIGNvbnN0IGNoYXIqIGFjdGl2ZURPTU9iamVjdE5hbWUoKSBj
b25zdCBmaW5hbDsKKworICAgIE1lZGlhS2V5U3lzdGVtUmVxdWVzdElkZW50aWZpZXIgbV9pZGVu
dGlmaWVyOworCisgICAgU3RyaW5nIG1fa2V5U3lzdGVtOworICAgIFJlZjxEZWZlcnJlZFByb21p
c2U+IG1fcHJvbWlzZTsKKworICAgIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoUmVmPERlZmVycmVk
UHJvbWlzZT4mJik+IG1fYWxsb3dDb21wbGV0aW9uSGFuZGxlcjsKK307CisKK30gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShFTkNSWVBURURfTUVESUEpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2VuY3J5cHRlZG1lZGlhL05hdmlnYXRvckVNRS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2VuY3J5cHRlZG1lZGlhL05hdmlnYXRvckVNRS5j
cHAKaW5kZXggNjk0NTY0YWYzZTU5M2E2OTYxNzU4ZmFmZDcyYTdkNTA0N2E2YWMzNi4uZmM2MTM3
NGUyMTY0MWMxNjc0MWQ3ZTUxZGQwZTNlN2EyZDUyYjY2MiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9lbmNyeXB0ZWRtZWRpYS9OYXZpZ2F0b3JFTUUuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvZW5jcnlwdGVkbWVkaWEvTmF2aWdhdG9yRU1FLmNwcApAQCAtMzcs
NiArMzcsNyBAQAogI2luY2x1ZGUgIkpTRE9NUHJvbWlzZURlZmVycmVkLmgiCiAjaW5jbHVkZSAi
SlNNZWRpYUtleVN5c3RlbUFjY2Vzcy5oIgogI2luY2x1ZGUgIkxvZ2dpbmcuaCIKKyNpbmNsdWRl
ICJNZWRpYUtleVN5c3RlbVJlcXVlc3QuaCIKICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdCdWls
ZGVyLmg+CiAKIG5hbWVzcGFjZSBXVEYgewpAQCAtOTksMjMgKzEwMCwyNyBAQCB2b2lkIE5hdmln
YXRvckVNRTo6cmVxdWVzdE1lZGlhS2V5U3lzdGVtQWNjZXNzKE5hdmlnYXRvciYgbmF2aWdhdG9y
LCBEb2N1bWVudCYgZAogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgZG9jdW1lbnQucG9z
dFRhc2soW2tleVN5c3RlbSwgc3VwcG9ydGVkQ29uZmlndXJhdGlvbnMgPSBXVEZNb3ZlKHN1cHBv
cnRlZENvbmZpZ3VyYXRpb25zKSwgcHJvbWlzZSA9IFdURk1vdmUocHJvbWlzZSksICZkb2N1bWVu
dCwgbG9nZ2VyID0gV1RGTW92ZShsb2dnZXIpLCBpZGVudGlmaWVyID0gV1RGTW92ZShpZGVudGlm
aWVyKV0gKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmKSBtdXRhYmxlIHsKLSAgICAgICAgLy8gMy4g
TGV0IGRvY3VtZW50IGJlIHRoZSBjYWxsaW5nIGNvbnRleHQncyBEb2N1bWVudC4KLSAgICAgICAg
Ly8gNC4gTGV0IG9yaWdpbiBiZSB0aGUgb3JpZ2luIG9mIGRvY3VtZW50LgotICAgICAgICAvLyA1
LiBMZXQgcHJvbWlzZSBiZSBhIG5ldyBwcm9taXNlLgotICAgICAgICAvLyA2LiBSdW4gdGhlIGZv
bGxvd2luZyBzdGVwcyBpbiBwYXJhbGxlbDoKLSAgICAgICAgLy8gNi4xLiBJZiBrZXlTeXN0ZW0g
aXMgbm90IG9uZSBvZiB0aGUgS2V5IFN5c3RlbXMgc3VwcG9ydGVkIGJ5IHRoZSB1c2VyIGFnZW50
LCByZWplY3QgcHJvbWlzZSB3aXRoIGEgTm90U3VwcG9ydGVkRXJyb3IuCi0gICAgICAgIC8vICAg
ICAgU3RyaW5nIGNvbXBhcmlzb24gaXMgY2FzZS1zZW5zaXRpdmUuCi0gICAgICAgIGlmICghQ0RN
OjpzdXBwb3J0c0tleVN5c3RlbShrZXlTeXN0ZW0pKSB7Ci0gICAgICAgICAgICBpbmZvTG9nKGxv
Z2dlciwgaWRlbnRpZmllciwgIlJlamVjdGVkOiBrZXlTeXN0ZW0oIiwga2V5U3lzdGVtLCAiKSBu
b3Qgc3VwcG9ydGVkIik7Ci0gICAgICAgICAgICBwcm9taXNlLT5yZWplY3QoTm90U3VwcG9ydGVk
RXJyb3IpOwotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICB9Ci0KLSAgICAgICAgLy8gNi4y
LiBMZXQgaW1wbGVtZW50YXRpb24gYmUgdGhlIGltcGxlbWVudGF0aW9uIG9mIGtleVN5c3RlbS4K
LSAgICAgICAgYXV0byBpbXBsZW1lbnRhdGlvbiA9IENETTo6Y3JlYXRlKGRvY3VtZW50LCBrZXlT
eXN0ZW0pOwotICAgICAgICB0cnlOZXh0U3VwcG9ydGVkQ29uZmlndXJhdGlvbihXVEZNb3ZlKGlt
cGxlbWVudGF0aW9uKSwgV1RGTW92ZShzdXBwb3J0ZWRDb25maWd1cmF0aW9ucyksIFdURk1vdmUo
cHJvbWlzZSksIFdURk1vdmUobG9nZ2VyKSwgV1RGTW92ZShpZGVudGlmaWVyKSk7CisgICAgYXV0
byByZXF1ZXN0ID0gTWVkaWFLZXlTeXN0ZW1SZXF1ZXN0OjpjcmVhdGUoZG9jdW1lbnQsIGtleVN5
c3RlbSwgV1RGTW92ZShwcm9taXNlKSk7CisgICAgcmVxdWVzdC0+c2V0QWxsb3dDYWxsYmFjayhb
a2V5U3lzdGVtLCBzdXBwb3J0ZWRDb25maWd1cmF0aW9ucyA9IFdURk1vdmUoc3VwcG9ydGVkQ29u
ZmlndXJhdGlvbnMpLCAmZG9jdW1lbnQsIGxvZ2dlciA9IFdURk1vdmUobG9nZ2VyKSwgaWRlbnRp
ZmllciA9IFdURk1vdmUoaWRlbnRpZmllcildKFJlZjxEZWZlcnJlZFByb21pc2U+JiYgcHJvbWlz
ZSkgbXV0YWJsZSB7CisgICAgICAgIGRvY3VtZW50LnBvc3RUYXNrKFtwcm9taXNlID0gV1RGTW92
ZShwcm9taXNlKSwgJmRvY3VtZW50LCBrZXlTeXN0ZW0sIGxvZ2dlciA9IFdURk1vdmUobG9nZ2Vy
KSwgaWRlbnRpZmllciA9IFdURk1vdmUoaWRlbnRpZmllciksIHN1cHBvcnRlZENvbmZpZ3VyYXRp
b25zID0gV1RGTW92ZShzdXBwb3J0ZWRDb25maWd1cmF0aW9ucyldIChTY3JpcHRFeGVjdXRpb25D
b250ZXh0JikgbXV0YWJsZSB7CisgICAgICAgICAgICAvLyAzLiBMZXQgZG9jdW1lbnQgYmUgdGhl
IGNhbGxpbmcgY29udGV4dCdzIERvY3VtZW50LgorICAgICAgICAgICAgLy8gNC4gTGV0IG9yaWdp
biBiZSB0aGUgb3JpZ2luIG9mIGRvY3VtZW50LgorICAgICAgICAgICAgLy8gNS4gTGV0IHByb21p
c2UgYmUgYSBuZXcgcHJvbWlzZS4KKyAgICAgICAgICAgIC8vIDYuIFJ1biB0aGUgZm9sbG93aW5n
IHN0ZXBzIGluIHBhcmFsbGVsOgorICAgICAgICAgICAgLy8gNi4xLiBJZiBrZXlTeXN0ZW0gaXMg
bm90IG9uZSBvZiB0aGUgS2V5IFN5c3RlbXMgc3VwcG9ydGVkIGJ5IHRoZSB1c2VyIGFnZW50LCBy
ZWplY3QgcHJvbWlzZSB3aXRoIGEgTm90U3VwcG9ydGVkRXJyb3IuCisgICAgICAgICAgICAvLyAg
ICAgIFN0cmluZyBjb21wYXJpc29uIGlzIGNhc2Utc2Vuc2l0aXZlLgorICAgICAgICAgICAgaWYg
KCFDRE06OnN1cHBvcnRzS2V5U3lzdGVtKGtleVN5c3RlbSkpIHsKKyAgICAgICAgICAgICAgICBp
bmZvTG9nKGxvZ2dlciwgaWRlbnRpZmllciwgIlJlamVjdGVkOiBrZXlTeXN0ZW0oIiwga2V5U3lz
dGVtLCAiKSBub3Qgc3VwcG9ydGVkIik7CisgICAgICAgICAgICAgICAgcHJvbWlzZS0+cmVqZWN0
KE5vdFN1cHBvcnRlZEVycm9yKTsKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAg
ICB9CisKKyAgICAgICAgICAgIC8vIDYuMi4gTGV0IGltcGxlbWVudGF0aW9uIGJlIHRoZSBpbXBs
ZW1lbnRhdGlvbiBvZiBrZXlTeXN0ZW0uCisgICAgICAgICAgICBhdXRvIGltcGxlbWVudGF0aW9u
ID0gQ0RNOjpjcmVhdGUoZG9jdW1lbnQsIGtleVN5c3RlbSk7CisgICAgICAgICAgICB0cnlOZXh0
U3VwcG9ydGVkQ29uZmlndXJhdGlvbihXVEZNb3ZlKGltcGxlbWVudGF0aW9uKSwgV1RGTW92ZShz
dXBwb3J0ZWRDb25maWd1cmF0aW9ucyksIFdURk1vdmUocHJvbWlzZSksIFdURk1vdmUobG9nZ2Vy
KSwgV1RGTW92ZShpZGVudGlmaWVyKSk7CisgICAgICAgIH0pOwogICAgIH0pOworICAgIHJlcXVl
c3QtPnN0YXJ0KCk7CiB9CiAKIHN0YXRpYyB2b2lkIHRyeU5leHRTdXBwb3J0ZWRDb25maWd1cmF0
aW9uKFJlZlB0cjxDRE0+JiYgaW1wbGVtZW50YXRpb24sIFZlY3RvcjxNZWRpYUtleVN5c3RlbUNv
bmZpZ3VyYXRpb24+JiYgc3VwcG9ydGVkQ29uZmlndXJhdGlvbnMsIFJlZlB0cjxEZWZlcnJlZFBy
b21pc2U+JiYgcHJvbWlzZSwgUmVmPExvZ2dlcj4mJiBsb2dnZXIsIFdURjo6TG9nZ2VyOjpMb2dT
aXRlSWRlbnRpZmllciYmIGlkZW50aWZpZXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggODBlNTkxZDg3YzM5YzE2MjdjMDVlZWZk
YzBkNzExNDVjMWU4NmEyNi4uYzM3Zjk4ZDY0ZjVkMjgwZTU4YzgyMjE0MzMyNjBhMGI0YTM1ZTNh
YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagpAQCAtMzA0MSw2ICszMDQxLDExIEBACiAJCTk5RDFCMkQzMjNBQzE0MzEwMDgxMUNGMCAv
KiBJbnNwZWN0b3JEZWJ1Z2dhYmxlVHlwZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gOTlEMUIyRDEyM0FDMTQzMDAwODExQ0YwIC8qIEluc3BlY3RvckRl
YnVnZ2FibGVUeXBlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsg
fTsgfTsKIAkJOUE1MjhFODQxN0Q3RjUyRjAwQUE5NTE4IC8qIEZsb2F0aW5nT2JqZWN0cy5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOUE1MjhFODIxN0Q3
RjUyRjAwQUE5NTE4IC8qIEZsb2F0aW5nT2JqZWN0cy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJV
VEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTlBQjFGMzgwMThFMjQ4OUEwMDUzNDc0MyAvKiBD
U1NUb0xlbmd0aENvbnZlcnNpb25EYXRhLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA5QUIxRjM3RTE4RTI0ODlBMDA1MzQ3NDMgLyogQ1NTVG9MZW5ndGhD
b252ZXJzaW9uRGF0YS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CisJCTlBQ0MwNzk2MjVDNzI1RUUwMERDNjM4NiAvKiBNZWRpYUtleVN5c3RlbVJlcXVl
c3QuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOUFD
QzA3OTQyNUM3MjVFRDAwREM2Mzg2IC8qIE1lZGlhS2V5U3lzdGVtUmVxdWVzdC5jcHAgKi87IH07
CisJCTlBQ0MwNzk4MjVDNzI2NzcwMERDNjM4NiAvKiBNZWRpYUtleVN5c3RlbUNvbnRyb2xsZXIu
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOUFDQzA3
OTcyNUM3MjY3NjAwREM2Mzg2IC8qIE1lZGlhS2V5U3lzdGVtQ29udHJvbGxlci5jcHAgKi87IH07
CisJCTlBQ0MwN0E2MjVDODEwREYwMERDNjM4NiAvKiBNZWRpYUtleVN5c3RlbVJlcXVlc3QuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDlBQ0MwN0E1MjVD
ODEwREYwMERDNjM4NiAvKiBNZWRpYUtleVN5c3RlbVJlcXVlc3QuaCAqLzsgc2V0dGluZ3MgPSB7
QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk5QUNDMDdBODI1QzgxMTBEMDBEQzYz
ODYgLyogTWVkaWFLZXlTeXN0ZW1DbGllbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDlBQ0MwN0E3MjVDODExMEQwMERDNjM4NiAvKiBNZWRpYUtleVN5
c3RlbUNsaWVudC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CisJCTlBQ0MwN0FGMjVDODE0MUQwMERDNjM4NiAvKiBNZWRpYUtleVN5c3RlbUNvbnRyb2xs
ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDlBQ0Mw
N0FFMjVDODE0MUMwMERDNjM4NiAvKiBNZWRpYUtleVN5c3RlbUNvbnRyb2xsZXIuaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk5QjAyRTBDODIzNUVB
RDJBMDA0MDQ0QjIgLyogVGV4dE1hbmlwdWxhdGlvbkNvbnRyb2xsZXIuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDlCMDJFMEMzMjM1RTc2QUEwMDQwNDRC
MiAvKiBUZXh0TWFuaXB1bGF0aW9uQ29udHJvbGxlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJV
VEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTlCMEFCQ0FFMjM2QkI0MzEwMEI0NTA4NSAvKiBU
YXNrU291cmNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA5QjBBQkNBQzIzNkJCNDBBMDBCNDUwODUgLyogVGFza1NvdXJjZS5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTlCMTIyOUM0MjNGRTRCRDIwMDhD
QTc1MSAvKiBBdWRpb0Rlc3RpbmF0aW9uQ29jb2EuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxMzE1MTg2MjM1Nzc0NUUwMDExNUU2RSAvKiBBdWRpb0Rl
c3RpbmF0aW9uQ29jb2EuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OwpAQCAtMTIwMDEsNiArMTIwMDYsMTEgQEAKIAkJOUFDNkYwMjUyMTE0OEY1NDAwQ0JE
QTA2IC8qIE1lZGlhRW5naW5lQ29uZmlndXJhdGlvbkZhY3RvcnkuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBuYW1lID0gTWVkaWFFbmdpbmVDb25maWd1cmF0aW9uRmFjdG9yeS5oOyBwYXRo
ID0gbWVkaWFjYXBhYmlsaXRpZXMvTWVkaWFFbmdpbmVDb25maWd1cmF0aW9uRmFjdG9yeS5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5QUM2RjAyRDIxMTQ4RjlGMDBDQkRBMDYgLyog
TWVkaWFFbmdpbmVDb25maWd1cmF0aW9uRmFjdG9yeU1vY2suY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gTWVkaWFFbmdpbmVDb25maWd1cmF0aW9uRmFjdG9yeU1vY2su
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5QUM2RjAyRjIxMTQ4RkEyMDBDQkRB
MDYgLyogTWVkaWFFbmdpbmVDb25maWd1cmF0aW9uRmFjdG9yeU1vY2suaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gTWVkaWFFbmdpbmVDb25maWd1cmF0aW9uRmFjdG9yeU1vY2su
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOUFDQzA3OTQyNUM3MjVFRDAwREM2Mzg2
IC8qIE1lZGlhS2V5U3lzdGVtUmVxdWVzdC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBNZWRpYUtleVN5c3RlbVJlcXVlc3QuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQk5QUNDMDc5NzI1QzcyNjc2MDBEQzYzODYgLyogTWVkaWFLZXlTeXN0ZW1Db250
cm9sbGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE1lZGlhS2V5
U3lzdGVtQ29udHJvbGxlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTlBQ0Mw
N0E1MjVDODEwREYwMERDNjM4NiAvKiBNZWRpYUtleVN5c3RlbVJlcXVlc3QuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTWVkaWFLZXlTeXN0ZW1SZXF1ZXN0Lmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCTlBQ0MwN0E3MjVDODExMEQwMERDNjM4NiAvKiBNZWRpYUtl
eVN5c3RlbUNsaWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBNZWRpYUtl
eVN5c3RlbUNsaWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5QUNDMDdBRTI1
QzgxNDFDMDBEQzYzODYgLyogTWVkaWFLZXlTeXN0ZW1Db250cm9sbGVyLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1lZGlhS2V5U3lzdGVtQ29udHJvbGxlci5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk5QjAyRTBDMzIzNUU3NkFBMDA0MDQ0QjIgLyogVGV4dE1h
bmlwdWxhdGlvbkNvbnRyb2xsZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVGV4dE1hbmlwdWxhdGlvbkNv
bnRyb2xsZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOUIwMkUwQzQyMzVFNzZB
QTAwNDA0NEIyIC8qIFRleHRNYW5pcHVsYXRpb25Db250cm9sbGVyLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IFRleHRNYW5pcHVsYXRpb25Db250cm9sbGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJOUIwM0Q4MDYxQkIzMTEwRDAwQjczRjY0IC8qIFJlYWRhYmxlQnl0ZVN0cmVh
bUludGVybmFsc0J1aWx0aW5zLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFJl
YWRhYmxlQnl0ZVN0cmVhbUludGVybmFsc0J1aWx0aW5zLmg7IHBhdGggPSBEZXJpdmVkU291cmNl
cy9XZWJDb3JlL1JlYWRhYmxlQnl0ZVN0cmVhbUludGVybmFsc0J1aWx0aW5zLmg7IHNvdXJjZVRy
ZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7IH07CkBAIC0yODA0OSwxMCArMjgwNTksMTUgQEAKIAkJ
CQkyRDlCRjczQzFEQkZEQzBGMDA3QTdEOTkgLyogTWVkaWFLZXlTeXN0ZW1BY2Nlc3MuY3BwICov
LAogCQkJCTJEOUJGNzNEMURCRkRDMEYwMDdBN0Q5OSAvKiBNZWRpYUtleVN5c3RlbUFjY2Vzcy5o
ICovLAogCQkJCTJEOUJGNkY5MURCRkI3MUYwMDdBN0Q5OSAvKiBNZWRpYUtleVN5c3RlbUFjY2Vz
cy5pZGwgKi8sCisJCQkJOUFDQzA3QTcyNUM4MTEwRDAwREM2Mzg2IC8qIE1lZGlhS2V5U3lzdGVt
Q2xpZW50LmggKi8sCiAJCQkJMkQ5QkY3M0UxREJGREMwRjAwN0E3RDk5IC8qIE1lZGlhS2V5U3lz
dGVtQ29uZmlndXJhdGlvbi5oICovLAogCQkJCTJEOUJGNkZBMURCRkI3MUYwMDdBN0Q5OSAvKiBN
ZWRpYUtleVN5c3RlbUNvbmZpZ3VyYXRpb24uaWRsICovLAorCQkJCTlBQ0MwNzk3MjVDNzI2NzYw
MERDNjM4NiAvKiBNZWRpYUtleVN5c3RlbUNvbnRyb2xsZXIuY3BwICovLAorCQkJCTlBQ0MwN0FF
MjVDODE0MUMwMERDNjM4NiAvKiBNZWRpYUtleVN5c3RlbUNvbnRyb2xsZXIuaCAqLywKIAkJCQky
RDlCRjczRjFEQkZEQzBGMDA3QTdEOTkgLyogTWVkaWFLZXlTeXN0ZW1NZWRpYUNhcGFiaWxpdHku
aCAqLywKIAkJCQkyRDlCRjZGQjFEQkZCNzFGMDA3QTdEOTkgLyogTWVkaWFLZXlTeXN0ZW1NZWRp
YUNhcGFiaWxpdHkuaWRsICovLAorCQkJCTlBQ0MwNzk0MjVDNzI1RUQwMERDNjM4NiAvKiBNZWRp
YUtleVN5c3RlbVJlcXVlc3QuY3BwICovLAorCQkJCTlBQ0MwN0E1MjVDODEwREYwMERDNjM4NiAv
KiBNZWRpYUtleVN5c3RlbVJlcXVlc3QuaCAqLywKIAkJCQkyRDlCRjZGQzFEQkZCNzFGMDA3QTdE
OTkgLyogTmF2aWdhdG9yK0VNRS5pZGwgKi8sCiAJCQkJMkQ5QkY3NDAxREJGREMwRjAwN0E3RDk5
IC8qIE5hdmlnYXRvckVNRS5jcHAgKi8sCiAJCQkJMkQ5QkY3NDExREJGREMwRjAwN0E3RDk5IC8q
IE5hdmlnYXRvckVNRS5oICovLApAQCAtMzM3MDEsNiArMzM3MTYsOSBAQAogCQkJCUNERjRCNzFB
MUUwMUQzRDAwMEUyMzVBMiAvKiBNZWRpYUtleVNlc3Npb25UeXBlLmlkbCBpbiBIZWFkZXJzICov
LAogCQkJCUNERjRCNzI4MUUwM0M1NzMwMEUyMzVBMiAvKiBNZWRpYUtleXNSZXF1aXJlbWVudC5p
ZGwgaW4gSGVhZGVycyAqLywKIAkJCQlDREY0QjcxODFFMDFDQjkxMDBFMjM1QTIgLyogTWVkaWFL
ZXlzUmVzdHJpY3Rpb25zLmggaW4gSGVhZGVycyAqLywKKwkJCQk5QUNDMDdBODI1QzgxMTBEMDBE
QzYzODYgLyogTWVkaWFLZXlTeXN0ZW1DbGllbnQuaCBpbiBIZWFkZXJzICovLAorCQkJCTlBQ0Mw
N0FGMjVDODE0MUQwMERDNjM4NiAvKiBNZWRpYUtleVN5c3RlbUNvbnRyb2xsZXIuaCBpbiBIZWFk
ZXJzICovLAorCQkJCTlBQ0MwN0E2MjVDODEwREYwMERDNjM4NiAvKiBNZWRpYUtleVN5c3RlbVJl
cXVlc3QuaCBpbiBIZWFkZXJzICovLAogCQkJCUE4RUE4MDBFMEExOTUxNkUwMEE4RUY1RiAvKiBN
ZWRpYUxpc3QuaCBpbiBIZWFkZXJzICovLAogCQkJCTVFQkI4OTMxMUM3Nzc3RkYwMEM2NUQ0MSAv
KiBNZWRpYVBheWxvYWQuaCBpbiBIZWFkZXJzICovLAogCQkJCTA3RTNERkQxMUE5RTc4NjUwMDc2
NENBOCAvKiBNZWRpYVBsYXliYWNrVGFyZ2V0LmggaW4gSGVhZGVycyAqLywKQEAgLTM2MDU0LDYg
KzM2MDcyLDggQEAKIAkJCQkyRDlCRjc0NTFEQkZEQzQ0MDA3QTdEOTkgLyogTWVkaWFLZXlTZXNz
aW9uLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTJEOUJGNzQ0MURCRkRDNDEwMDdBN0Q5OSAvKiBN
ZWRpYUtleVN0YXR1c01hcC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkyRDlCRjc0MzFEQkZEQzNF
MDA3QTdEOTkgLyogTWVkaWFLZXlTeXN0ZW1BY2Nlc3MuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJ
OUFDQzA3OTgyNUM3MjY3NzAwREM2Mzg2IC8qIE1lZGlhS2V5U3lzdGVtQ29udHJvbGxlci5jcHAg
aW4gU291cmNlcyAqLywKKwkJCQk5QUNDMDc5NjI1QzcyNUVFMDBEQzYzODYgLyogTWVkaWFLZXlT
eXN0ZW1SZXF1ZXN0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTA3MUU0OTZFMUFENUFBMEQwMDhB
NTBCNCAvKiBNZWRpYVBsYXliYWNrVGFyZ2V0Q29jb2EubW0gaW4gU291cmNlcyAqLywKIAkJCQkw
NzhFNDNERTFBQkI2RjZGMDAxQzJGQTYgLyogTWVkaWFQbGF5YmFja1RhcmdldFBpY2tlck1hYy5t
bSBpbiBTb3VyY2VzICovLAogCQkJCTA3MkM4QjExMTMxQzUxODYwMEE0RkNFOSAvKiBNZWRpYVBs
YXllclByaXZhdGVBVkZvdW5kYXRpb24uY3BwIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYktpdC9DTWFrZUxpc3RzLnR4
dAppbmRleCBjYmNhOGQzMzg4YzU4MjliNzQyNzIyZTc0OTlmOTM2OWZiM2MzMDg1Li40NmVjMGM1
NGNjNDRkMWIzYmJkY2UwOTYyZjI3MTMwNTgwNWE4NzI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9XZWJLaXQvQ01ha2VMaXN0cy50eHQKQEAg
LTc1LDYgKzc1LDcgQEAgc2V0KFdlYktpdF9JTkNMVURFX0RJUkVDVE9SSUVTCiAgICAgIiR7V0VC
S0lUX0RJUn0vV2ViUHJvY2Vzcy9DYWNoZSIKICAgICAiJHtXRUJLSVRfRElSfS9XZWJQcm9jZXNz
L0RhdGFiYXNlcyIKICAgICAiJHtXRUJLSVRfRElSfS9XZWJQcm9jZXNzL0RhdGFiYXNlcy9JbmRl
eGVkREIiCisgICAgIiR7V0VCS0lUX0RJUn0vV2ViUHJvY2Vzcy9FbmNyeXB0ZWRNZWRpYSIKICAg
ICAiJHtXRUJLSVRfRElSfS9XZWJQcm9jZXNzL0ZpbGVBUEkiCiAgICAgIiR7V0VCS0lUX0RJUn0v
V2ViUHJvY2Vzcy9GdWxsU2NyZWVuIgogICAgICIke1dFQktJVF9ESVJ9L1dlYlByb2Nlc3MvR2Ft
ZXBhZCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvSGVhZGVycy5jbWFrZSBiL1NvdXJjZS9X
ZWJLaXQvSGVhZGVycy5jbWFrZQppbmRleCAyMTMwNGRhMzBkNzg4MjU0MzY1MjI3YWE2YjM2ZjBl
NzZmNjkwZWY0Li4zNDZjOGE2M2E3YjdhZTQ5N2ExYmVlMjRkN2Y4MDhiMGZhOGNlNGEzIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0hlYWRlcnMuY21ha2UKKysrIGIvU291cmNlL1dlYktpdC9I
ZWFkZXJzLmNtYWtlCkBAIC02Miw2ICs2Miw3IEBAIHNldChXZWJLaXRfUFVCTElDX0ZSQU1FV09S
S19IRUFERVJTCiAgICAgVUlQcm9jZXNzL0FQSS9DL1dLSWNvbkRhdGFiYXNlLmgKICAgICBVSVBy
b2Nlc3MvQVBJL0MvV0tJbnNwZWN0b3IuaAogICAgIFVJUHJvY2Vzcy9BUEkvQy9XS0xheW91dE1v
ZGUuaAorICAgIFVJUHJvY2Vzcy9BUEkvQy9XS01lZGlhS2V5U3lzdGVtUGVybWlzc2lvbkNhbGxi
YWNrLmgKICAgICBVSVByb2Nlc3MvQVBJL0MvV0tNZXNzYWdlTGlzdGVuZXIuaAogICAgIFVJUHJv
Y2Vzcy9BUEkvQy9XS01vY2tEaXNwbGF5LmgKICAgICBVSVByb2Nlc3MvQVBJL0MvV0tNb2NrTWVk
aWFEZXZpY2UuaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9Mb2dnaW5nLmgg
Yi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL0xvZ2dpbmcuaAppbmRleCBmNDlmMzhiNmE1ZjlkM2Q3
MDk1MmQyZTEyMWM4OTk1ZGVjZTk4ZWFhLi4wNjZmMDY1ZmUzZTNhZWM0YTA3OTg2ODE5M2RhZThh
MGIwNzc3NWI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL0xvZ2dpbmcuaAor
KysgYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL0xvZ2dpbmcuaApAQCAtNTIsNiArNTIsNyBAQCBl
eHRlcm4gIkMiIHsKICAgICBNKENvbnRleHRNZW51KSBcCiAgICAgTShEaXNrUGVyc2lzdGVuY3kp
IFwKICAgICBNKERyYWdBbmREcm9wKSBcCisgICAgTShFTUUpIFwKICAgICBNKEZ1bGxzY3JlZW4p
IFwKICAgICBNKEdhbWVwYWQpIFwKICAgICBNKElQQykgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9TaGFyZWQvQVBJL0FQSU9iamVjdC5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvQVBJL0FQ
SU9iamVjdC5oCmluZGV4IDA1NTY5MzQzYTBkYzNhYWQ2YzJkMzM0MDNlOGUyOWJhODZmZTRjYWIu
LjQ2Yzc3M2VlMzhjZDMwNjc1YjZlOGIxNjI1Zjk3NTMwNzkzYjE2YmIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL0FQSS9BUElPYmplY3QuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9BUEkvQVBJT2JqZWN0LmgKQEAgLTE4OSw2ICsxODksOCBAQCBwdWJsaWM6CiAgICAgICAg
IFdlYkF1dGhlbnRpY2F0aW9uUGFuZWwsCiAjZW5kaWYKIAorICAgICAgICBNZWRpYUtleVN5c3Rl
bVBlcm1pc3Npb25DYWxsYmFjaywKKwogICAgICAgICAvLyBCdW5kbGUgdHlwZXMKICAgICAgICAg
QnVuZGxlLAogICAgICAgICBCdW5kbGVCYWNrRm9yd2FyZExpc3QsCkBAIC00MzgsNiArNDQwLDgg
QEAgdGVtcGxhdGU8PiBzdHJ1Y3QgRW51bVRyYWl0czxBUEk6Ok9iamVjdDo6VHlwZT4gewogICAg
ICAgICBBUEk6Ok9iamVjdDo6VHlwZTo6V2ViQXV0aGVudGljYXRpb25QYW5lbCwKICNlbmRpZgog
CisgICAgICAgIEFQSTo6T2JqZWN0OjpUeXBlOjpNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25DYWxs
YmFjaywKKwogICAgICAgICAvLyBCdW5kbGUgdHlwZXMKICAgICAgICAgQVBJOjpPYmplY3Q6OlR5
cGU6OkJ1bmRsZSwKICAgICAgICAgQVBJOjpPYmplY3Q6OlR5cGU6OkJ1bmRsZUJhY2tGb3J3YXJk
TGlzdCwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0FQSS9jL1dLQmFzZS5oIGIv
U291cmNlL1dlYktpdC9TaGFyZWQvQVBJL2MvV0tCYXNlLmgKaW5kZXggODRlZTZjMjg4ZjZkMmVi
ZDUxZmE3M2VhNzI3MDhmMzI5NDZiZGQ4NS4uN2M4YmQyMzkyNGM0YWI3MTE1NGY1Y2FjN2U3M2Nj
NzNkMzk0NThjMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvQVBJL2MvV0tCYXNl
LmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvQVBJL2MvV0tCYXNlLmgKQEAgLTE0Miw2ICsx
NDIsOCBAQCB0eXBlZGVmIGNvbnN0IHN0cnVjdCBPcGFxdWVXS1dlYnNpdGVEYXRhU3RvcmUqIFdL
V2Vic2l0ZURhdGFTdG9yZVJlZjsKIHR5cGVkZWYgY29uc3Qgc3RydWN0IE9wYXF1ZVdLV2Vic2l0
ZVBvbGljaWVzKiBXS1dlYnNpdGVQb2xpY2llc1JlZjsKIHR5cGVkZWYgY29uc3Qgc3RydWN0IE9w
YXF1ZVdLV2luZG93RmVhdHVyZXMqIFdLV2luZG93RmVhdHVyZXNSZWY7CiB0eXBlZGVmIGNvbnN0
IHN0cnVjdCBPcGFxdWVXS1NwZWVjaFJlY29nbml0aW9uUGVybWlzc2lvbkNhbGxiYWNrKiBXS1Nw
ZWVjaFJlY29nbml0aW9uUGVybWlzc2lvbkNhbGxiYWNrUmVmOwordHlwZWRlZiBjb25zdCBzdHJ1
Y3QgT3BhcXVlV0tNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0KiBXS01lZGlhS2V5U3lz
dGVtUGVybWlzc2lvblJlcXVlc3RSZWY7Cit0eXBlZGVmIGNvbnN0IHN0cnVjdCBPcGFxdWVXS01l
ZGlhS2V5U3lzdGVtUGVybWlzc2lvbkNhbGxiYWNrKiBXS01lZGlhS2V5U3lzdGVtUGVybWlzc2lv
bkNhbGxiYWNrUmVmOwogCiAvKiBXZWJLaXQyIEJ1bmRsZSB0eXBlcyAqLwogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0IGIvU291cmNlL1dlYktpdC9Tb3VyY2VzLnR4dApp
bmRleCA3ZjQwOGJjNDYxMGMxMDU0OTFkNWIwNjQxZjhiNzBmM2FmOTFiMDQzLi40M2FhMmI3ZDU3
NjJjNThkOTQ3ZTIxZWY0YmM3MjUwNDU5OTcxZDAxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1NvdXJjZXMudHh0CisrKyBiL1NvdXJjZS9XZWJLaXQvU291cmNlcy50eHQKQEAgLTI4NSw2ICsy
ODUsOCBAQCBVSVByb2Nlc3MvRnJhbWVMb2FkU3RhdGUuY3BwCiBVSVByb2Nlc3MvR2VvbG9jYXRp
b25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5jcHAKIFVJUHJvY2Vzcy9HZW9sb2NhdGlv
blBlcm1pc3Npb25SZXF1ZXN0UHJveHkuY3BwCiBVSVByb2Nlc3MvTGVnYWN5R2xvYmFsU2V0dGlu
Z3MuY3BwCitVSVByb2Nlc3MvTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQ
cm94eS5jcHAKK1VJUHJvY2Vzcy9NZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0UHJveHku
Y3BwCiBVSVByb2Nlc3MvUGFnZUxvYWRTdGF0ZS5jcHAKIFVJUHJvY2Vzcy9Qcm9jZXNzQXNzZXJ0
aW9uLmNwcAogVUlQcm9jZXNzL1Byb2Nlc3NUaHJvdHRsZXIuY3BwCkBAIC0zOTEsNiArMzkzLDcg
QEAgVUlQcm9jZXNzL0FQSS9DL1dLSGl0VGVzdFJlc3VsdC5jcHAKIFVJUHJvY2Vzcy9BUEkvQy9X
S0ljb25EYXRhYmFzZS5jcHAKIFVJUHJvY2Vzcy9BUEkvQy9XS0luc3BlY3Rvci5jcHAKIFVJUHJv
Y2Vzcy9BUEkvQy9XS0tleVZhbHVlU3RvcmFnZU1hbmFnZXIuY3BwCitVSVByb2Nlc3MvQVBJL0Mv
V0tNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25DYWxsYmFjay5jcHAKIFVJUHJvY2Vzcy9BUEkvQy9X
S01lc3NhZ2VMaXN0ZW5lci5jcHAKIFVJUHJvY2Vzcy9BUEkvQy9XS01vY2tEaXNwbGF5LmNwcAog
VUlQcm9jZXNzL0FQSS9DL1dLTW9ja01lZGlhRGV2aWNlLmNwcApAQCAtNTExLDYgKzUxNCw4IEBA
IFdlYlByb2Nlc3MvRGF0YWJhc2VzL1dlYkRhdGFiYXNlUHJvdmlkZXIuY3BwCiAKIFdlYlByb2Nl
c3MvRGF0YWJhc2VzL0luZGV4ZWREQi9XZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXIuY3BwCiAKK1dl
YlByb2Nlc3MvRW5jcnlwdGVkTWVkaWEvTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdE1h
bmFnZXIuY3BwCisKIFdlYlByb2Nlc3MvRmlsZUFQSS9CbG9iUmVnaXN0cnlQcm94eS5jcHAKIAog
V2ViUHJvY2Vzcy9GdWxsU2NyZWVuL1dlYkZ1bGxTY3JlZW5NYW5hZ2VyLmNwcApAQCAtNjY1LDYg
KzY3MCw3IEBAIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRHJhZ0NsaWVudC5jcHAKIFdl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmNwcAogV2ViUHJvY2Vzcy9X
ZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAKIFdlYlByb2Nlc3MvV2ViQ29y
ZVN1cHBvcnQvV2ViR2VvbG9jYXRpb25DbGllbnQuY3BwCitXZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L1dlYk1lZGlhS2V5U3lzdGVtQ2xpZW50LmNwcAogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9y
dC9XZWJNZXNzYWdlUG9ydENoYW5uZWxQcm92aWRlci5jcHAKIFdlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvV2ViTm90aWZpY2F0aW9uQ2xpZW50LmNwcAogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9y
dC9XZWJQZXJmb3JtYW5jZUxvZ2dpbmdDbGllbnQuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvQVBJVUlDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9BUElVSUNsaWVudC5oCmluZGV4IGIxN2I1YTE5NjJiYzlmZGU2YmY4ZjA1NWQ0YjRhZTll
MTdlYjg0ZGUuLjE2MzY3ZTZjYWM4MjVhYTljNzRmYjRjNDg0M2RkMmYxZmYxZGFkMzggMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElVSUNsaWVudC5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElVSUNsaWVudC5oCkBAIC0yMDUsNiArMjA1LDkg
QEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBkaWREaXNhYmxlSW5zcGVjdG9yQnJvd3NlckRv
bWFpbihXZWJLaXQ6OldlYlBhZ2VQcm94eSYpIHsgfQogCiAgICAgdmlydHVhbCB2b2lkIGRlY2lk
ZVBvbGljeUZvclNwZWVjaFJlY29nbml0aW9uUGVybWlzc2lvblJlcXVlc3QoV2ViS2l0OjpXZWJQ
YWdlUHJveHkmIHBhZ2UsIEFQSTo6U2VjdXJpdHlPcmlnaW4mIG9yaWdpbiwgQ29tcGxldGlvbkhh
bmRsZXI8dm9pZChib29sKT4mJiBjb21wbGV0aW9uSGFuZGxlcikgeyBwYWdlLnJlcXVlc3RTcGVl
Y2hSZWNvZ25pdGlvblBlcm1pc3Npb25CeURlZmF1bHRBY3Rpb24ob3JpZ2luLnNlY3VyaXR5T3Jp
Z2luKCksIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsgfQorCisgICAgdmlydHVhbCB2b2lk
IGRlY2lkZVBvbGljeUZvck1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3QoV2ViS2l0OjpX
ZWJQYWdlUHJveHkmIHBhZ2UsIEFQSTo6U2VjdXJpdHlPcmlnaW4mIG9yaWdpbiwgY29uc3QgV1RG
OjpTdHJpbmcmIGtleVN5c3RlbSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJiBjb21w
bGV0aW9uSGFuZGxlcikgeyBwYWdlLnJlcXVlc3RNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25CeURl
ZmF1bHRBY3Rpb24ob3JpZ2luLnNlY3VyaXR5T3JpZ2luKCksIFdURk1vdmUoY29tcGxldGlvbkhh
bmRsZXIpKTsgfQorCiB9OwogCiB9IC8vIG5hbWVzcGFjZSBBUEkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLQVBJQ2FzdC5oIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL0MvV0tBUElDYXN0LmgKaW5kZXggY2M5Y2Y1OTU3ZWEzMGQ2YWNmMDQ2OGRlNzAx
Nzk4YTZmNDE4MTE0YS4uYzhhMTg5NWE2ZDBkZTcwOWY5YWUzOThiZTQ1YmVhNjZiOWViZmEwZCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tBUElDYXN0LmgKKysr
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tBUElDYXN0LmgKQEAgLTc4LDYgKzc4
LDcgQEAgY2xhc3MgQXV0aGVudGljYXRpb25DaGFsbGVuZ2VQcm94eTsKIGNsYXNzIEF1dGhlbnRp
Y2F0aW9uRGVjaXNpb25MaXN0ZW5lcjsKIGNsYXNzIERvd25sb2FkUHJveHk7CiBjbGFzcyBHZW9s
b2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0OworY2xhc3MgTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9u
Q2FsbGJhY2s7CiBjbGFzcyBOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdDsKIGNsYXNzIFNw
ZWVjaFJlY29nbml0aW9uUGVybWlzc2lvbkNhbGxiYWNrOwogY2xhc3MgVXNlck1lZGlhUGVybWlz
c2lvbkNoZWNrUHJveHk7CkBAIC0xMzUsNiArMTM2LDcgQEAgV0tfQUREX0FQSV9NQVBQSU5HKFdL
SFRUUENvb2tpZVN0b3JlUmVmLCBBUEk6OkhUVFBDb29raWVTdG9yZSkKIFdLX0FERF9BUElfTUFQ
UElORyhXS0hpdFRlc3RSZXN1bHRSZWYsIEFQSTo6SGl0VGVzdFJlc3VsdCkKIFdLX0FERF9BUElf
TUFQUElORyhXS0ljb25EYXRhYmFzZVJlZiwgV2ViSWNvbkRhdGFiYXNlKQogV0tfQUREX0FQSV9N
QVBQSU5HKFdLSW5zcGVjdG9yUmVmLCBXZWJJbnNwZWN0b3JQcm94eSkKK1dLX0FERF9BUElfTUFQ
UElORyhXS01lZGlhS2V5U3lzdGVtUGVybWlzc2lvbkNhbGxiYWNrUmVmLCBNZWRpYUtleVN5c3Rl
bVBlcm1pc3Npb25DYWxsYmFjaykKIFdLX0FERF9BUElfTUFQUElORyhXS01lc3NhZ2VMaXN0ZW5l
clJlZiwgQVBJOjpNZXNzYWdlTGlzdGVuZXIpCiBXS19BRERfQVBJX01BUFBJTkcoV0tOYXZpZ2F0
aW9uQWN0aW9uUmVmLCBBUEk6Ok5hdmlnYXRpb25BY3Rpb24pCiBXS19BRERfQVBJX01BUFBJTkco
V0tOYXZpZ2F0aW9uRGF0YVJlZiwgQVBJOjpOYXZpZ2F0aW9uRGF0YSkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uQ2Fs
bGJhY2suY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tNZWRpYUtleVN5c3Rl
bVBlcm1pc3Npb25DYWxsYmFjay5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYWFhNzMyNGJiYzJhYjM3MjU3ZGE4
M2FiYmMzNDA3MTRiYTdlMDUzMAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9DL1dLTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uQ2FsbGJhY2suY3BwCkBAIC0w
LDAgKzEsNDIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgSWdhbGlhIFMuTC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElU
UyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YK
KyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
CisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldLTWVkaWFLZXlTeXN0ZW1QZXJt
aXNzaW9uQ2FsbGJhY2suaCIKKworI2luY2x1ZGUgIk1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJl
cXVlc3QuaCIKKyNpbmNsdWRlICJXS0FQSUNhc3QuaCIKKwordXNpbmcgbmFtZXNwYWNlIFdlYktp
dDsKKworV0tUeXBlSUQgV0tNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25DYWxsYmFja0dldFR5cGVJ
RCgpCit7CisgICAgcmV0dXJuIHRvQVBJKE1lZGlhS2V5U3lzdGVtUGVybWlzc2lvbkNhbGxiYWNr
OjpBUElUeXBlKTsKK30KKwordm9pZCBXS01lZGlhS2V5U3lzdGVtUGVybWlzc2lvbkNhbGxiYWNr
Q29tcGxldGUoV0tNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25DYWxsYmFja1JlZiBwZXJtaXNzaW9u
Q2FsbGJhY2ssIGJvb2wgZ3JhbnRlZCkKK3sKKyAgICByZXR1cm4gdG9JbXBsKHBlcm1pc3Npb25D
YWxsYmFjayktPmNvbXBsZXRlKGdyYW50ZWQpOworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL0MvV0tNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25DYWxsYmFjay5oIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25D
YWxsYmFjay5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLmY1ZDM2ODM3ZWZhNjlhNGIwNmRmMTMyMTIyZmFmNmEwYTFm
NTIwNzgKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9X
S01lZGlhS2V5U3lzdGVtUGVybWlzc2lvbkNhbGxiYWNrLmgKQEAgLTAsMCArMSw0MCBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAyMSBJZ2FsaWEgUy5MLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBg
YEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJ
QlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9u
Y2UKKworI2luY2x1ZGUgPFdlYktpdC9XS0Jhc2UuaD4KKworI2lmZGVmIF9fY3BsdXNwbHVzCitl
eHRlcm4gIkMiIHsKKyNlbmRpZgorCitXS19FWFBPUlQgV0tUeXBlSUQgV0tNZWRpYUtleVN5c3Rl
bVBlcm1pc3Npb25DYWxsYmFja0dldFR5cGVJRCh2b2lkKTsKKworV0tfRVhQT1JUIHZvaWQgV0tN
ZWRpYUtleVN5c3RlbVBlcm1pc3Npb25DYWxsYmFja0NvbXBsZXRlKFdLTWVkaWFLZXlTeXN0ZW1Q
ZXJtaXNzaW9uQ2FsbGJhY2tSZWYgcGVybWlzc2lvbkNhbGxiYWNrLCBib29sIGdyYW50ZWQpOwor
CisjaWZkZWYgX19jcGx1c3BsdXMKK30KKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9DL1dLUGFnZS5jcHAKaW5kZXggNzQ0M2Y3MGY5NTc1ODM2ZDg0M2RhNTRjODQ4MTUwOWM5ZDhj
NGRlYy4uYzM5ZTcyZjA3MTJjYmFjMGJlYmFmZjBiMDJlODQ1NzNhYzE2ZjkxNCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuY3BwCkBAIC01OCw2ICs1OCw3IEBACiAjaW5j
bHVkZSAiRG93bmxvYWRQcm94eS5oIgogI2luY2x1ZGUgIkxlZ2FjeVNlc3Npb25TdGF0ZUNvZGlu
Zy5oIgogI2luY2x1ZGUgIkxvZ2dpbmcuaCIKKyNpbmNsdWRlICJNZWRpYUtleVN5c3RlbVBlcm1p
c3Npb25SZXF1ZXN0LmgiCiAjaW5jbHVkZSAiTmF0aXZlV2ViS2V5Ym9hcmRFdmVudC5oIgogI2lu
Y2x1ZGUgIk5hdGl2ZVdlYldoZWVsRXZlbnQuaCIKICNpbmNsdWRlICJOYXZpZ2F0aW9uQWN0aW9u
RGF0YS5oIgpAQCAtMTE3LDcgKzExOCw3IEBAIHRlbXBsYXRlPD4gc3RydWN0IENsaWVudFRyYWl0
czxXS1BhZ2VQb2xpY3lDbGllbnRCYXNlPiB7CiB9OwogCiB0ZW1wbGF0ZTw+IHN0cnVjdCBDbGll
bnRUcmFpdHM8V0tQYWdlVUlDbGllbnRCYXNlPiB7Ci0gICAgdHlwZWRlZiBzdGQ6OnR1cGxlPFdL
UGFnZVVJQ2xpZW50VjAsIFdLUGFnZVVJQ2xpZW50VjEsIFdLUGFnZVVJQ2xpZW50VjIsIFdLUGFn
ZVVJQ2xpZW50VjMsIFdLUGFnZVVJQ2xpZW50VjQsIFdLUGFnZVVJQ2xpZW50VjUsIFdLUGFnZVVJ
Q2xpZW50VjYsIFdLUGFnZVVJQ2xpZW50VjcsIFdLUGFnZVVJQ2xpZW50VjgsIFdLUGFnZVVJQ2xp
ZW50VjksIFdLUGFnZVVJQ2xpZW50VjEwLCBXS1BhZ2VVSUNsaWVudFYxMSwgV0tQYWdlVUlDbGll
bnRWMTIsIFdLUGFnZVVJQ2xpZW50VjEzLCBXS1BhZ2VVSUNsaWVudFYxNCwgV0tQYWdlVUlDbGll
bnRWMTU+IFZlcnNpb25zOworICAgIHR5cGVkZWYgc3RkOjp0dXBsZTxXS1BhZ2VVSUNsaWVudFYw
LCBXS1BhZ2VVSUNsaWVudFYxLCBXS1BhZ2VVSUNsaWVudFYyLCBXS1BhZ2VVSUNsaWVudFYzLCBX
S1BhZ2VVSUNsaWVudFY0LCBXS1BhZ2VVSUNsaWVudFY1LCBXS1BhZ2VVSUNsaWVudFY2LCBXS1Bh
Z2VVSUNsaWVudFY3LCBXS1BhZ2VVSUNsaWVudFY4LCBXS1BhZ2VVSUNsaWVudFY5LCBXS1BhZ2VV
SUNsaWVudFYxMCwgV0tQYWdlVUlDbGllbnRWMTEsIFdLUGFnZVVJQ2xpZW50VjEyLCBXS1BhZ2VV
SUNsaWVudFYxMywgV0tQYWdlVUlDbGllbnRWMTQsIFdLUGFnZVVJQ2xpZW50VjE1LCBXS1BhZ2VV
SUNsaWVudFYxNj4gVmVyc2lvbnM7CiB9OwogCiAjaWYgRU5BQkxFKENPTlRFWFRfTUVOVVMpCkBA
IC0yMTE5LDYgKzIxMjAsMTYgQEAgdm9pZCBXS1BhZ2VTZXRQYWdlVUlDbGllbnQoV0tQYWdlUmVm
IHBhZ2VSZWYsIGNvbnN0IFdLUGFnZVVJQ2xpZW50QmFzZSogd2tDbGllbnQKIAogICAgICAgICAg
ICAgbV9jbGllbnQuZGVjaWRlUG9saWN5Rm9yU3BlZWNoUmVjb2duaXRpb25QZXJtaXNzaW9uUmVx
dWVzdCh0b0FQSSgmcGFnZSksIHRvQVBJKCZvcmlnaW4pLCB0b0FQSShTcGVlY2hSZWNvZ25pdGlv
blBlcm1pc3Npb25DYWxsYmFjazo6Y3JlYXRlKFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKS5w
dHIoKSkpOwogICAgICAgICB9CisKKyAgICAgICAgdm9pZCBkZWNpZGVQb2xpY3lGb3JNZWRpYUtl
eVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0KFdlYlBhZ2VQcm94eSYgcGFnZSwgQVBJOjpTZWN1cml0
eU9yaWdpbiYgb3JpZ2luLCBjb25zdCBTdHJpbmcmIGtleVN5c3RlbSwgQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZChib29sKT4mJiBjb21wbGV0aW9uSGFuZGxlcikgZmluYWwKKyAgICAgICAgeworICAg
ICAgICAgICAgaWYgKCFtX2NsaWVudC5kZWNpZGVQb2xpY3lGb3JNZWRpYUtleVN5c3RlbVBlcm1p
c3Npb25SZXF1ZXN0KSB7CisgICAgICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoZmFsc2Up
OworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAg
bV9jbGllbnQuZGVjaWRlUG9saWN5Rm9yTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdCh0
b0FQSSgmcGFnZSksIHRvQVBJKCZvcmlnaW4pLCB0b0FQSShBUEk6OlN0cmluZzo6Y3JlYXRlKGtl
eVN5c3RlbSkucHRyKCkpLCB0b0FQSShNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25DYWxsYmFjazo6
Y3JlYXRlKFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKS5wdHIoKSkpOworICAgICAgICB9CiAg
ICAgfTsKIAogICAgIHRvSW1wbChwYWdlUmVmKS0+c2V0VUlDbGllbnQobWFrZVVuaXF1ZTxVSUNs
aWVudD4od2tDbGllbnQpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9DL1dLUGFnZVVJQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1Bh
Z2VVSUNsaWVudC5oCmluZGV4IDYzNjM1NTU2NGQwMGIxMTIyYTg3ZTIyOWEzMGI5NGQ3ZTk5ZTRl
ZjkuLjNkMzE1YmU2MTM0OGRkN2QyNDY3YmFhOTRkZWE0YWU3MTFjMjc4MDMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZVVJQ2xpZW50LmgKKysrIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlVUlDbGllbnQuaApAQCAtMTM4LDggKzEz
OCwxMCBAQCB0eXBlZGVmIGJvb2wgKCpXS1BhZ2VTaG91bGRBbGxvd0RldmljZU9yaWVudGF0aW9u
QW5kTW90aW9uQWNjZXNzQ2FsbGJhY2spKFdLUGFnZQogdHlwZWRlZiB2b2lkICgqV0tQYWdlUnVu
V2ViQXV0aGVudGljYXRpb25QYW5lbENhbGxiYWNrKSgpOwogdHlwZWRlZiB2b2lkICgqV0tQYWdl
RGVjaWRlUG9saWN5Rm9yU3BlZWNoUmVjb2duaXRpb25QZXJtaXNzaW9uUmVxdWVzdENhbGxiYWNr
KShXS1BhZ2VSZWYgcGFnZSwgV0tTZWN1cml0eU9yaWdpblJlZiB0b3BPcmlnaW4sIFdLU3BlZWNo
UmVjb2duaXRpb25QZXJtaXNzaW9uQ2FsbGJhY2tSZWYgY2FsbGJhY2spOwogCit0eXBlZGVmIHZv
aWQgKCpXS1BhZ2VEZWNpZGVQb2xpY3lGb3JNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0
Q2FsbGJhY2spKFdLUGFnZVJlZiBwYWdlLCBXS1NlY3VyaXR5T3JpZ2luUmVmIHRvcE9yaWdpbiwg
V0tTdHJpbmdSZWYga2V5U3lzdGVtLCBXS01lZGlhS2V5U3lzdGVtUGVybWlzc2lvbkNhbGxiYWNr
UmVmIGNhbGxiYWNrKTsKKwogLy8gRGVwcmVjYXRlZAotdHlwZWRlZiBXS1BhZ2VSZWYgKCpXS1Bh
Z2VDcmVhdGVOZXdQYWdlQ2FsbGJhY2tfZGVwcmVjYXRlZEZvclVzZVdpdGhWMCkoV0tQYWdlUmVm
IHBhZ2UsIFdLRGljdGlvbmFyeVJlZiBmZWF0dXJlcywgV0tFdmVudE1vZGlmaWVycyBtb2RpZmll
cnMsIFdLRXZlbnRNb3VzZUJ1dHRvbiBtb3VzZUJ1dHRvbiwgY29uc3Qgdm9pZCAqY2xpZW50SW5m
byk7Cit0eXBlZGVmIFdLUGFnZVJlZiAoKldLUGFnZUNyZWF0ZU5ld1BhZ2VDYWxsYmFja19kZXBy
ZWNhdGVkRm9yVXNlV2l0aFYwKShXS1BhZ2VSZWYgcGFnZSwgV0tEaWN0aW9uYXJ5UmVmIGZlYXR1
cmVzLCBXS0V2ZW50TW9kaWZpZXJzIG1vZGlmaWVycywgV0tFdmVudE1vdXNlQnV0dG9uIG1vdXNl
QnV0dG9uLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKTsKIHR5cGVkZWYgdm9pZCAgICAgICgqV0tQ
YWdlTW91c2VEaWRNb3ZlT3ZlckVsZW1lbnRDYWxsYmFja19kZXByZWNhdGVkRm9yVXNlV2l0aFYw
KShXS1BhZ2VSZWYgcGFnZSwgV0tFdmVudE1vZGlmaWVycyBtb2RpZmllcnMsIFdLVHlwZVJlZiB1
c2VyRGF0YSwgY29uc3Qgdm9pZCAqY2xpZW50SW5mbyk7CiB0eXBlZGVmIHZvaWQgKCpXS1BhZ2VN
aXNzaW5nUGx1Z2luQnV0dG9uQ2xpY2tlZENhbGxiYWNrX2RlcHJlY2F0ZWRGb3JVc2VXaXRoVjAp
KFdLUGFnZVJlZiBwYWdlLCBXS1N0cmluZ1JlZiBtaW1lVHlwZSwgV0tTdHJpbmdSZWYgdXJsLCBX
S1N0cmluZ1JlZiBwbHVnaW5zUGFnZVVSTCwgY29uc3Qgdm9pZCogY2xpZW50SW5mbyk7CiB0eXBl
ZGVmIHZvaWQgKCpXS1BhZ2VVbmF2YWlsYWJsZVBsdWdpbkJ1dHRvbkNsaWNrZWRDYWxsYmFja19k
ZXByZWNhdGVkRm9yVXNlV2l0aFYxKShXS1BhZ2VSZWYgcGFnZSwgV0tQbHVnaW5VbmF2YWlsYWJp
bGl0eVJlYXNvbiBwbHVnaW5VbmF2YWlsYWJpbGl0eVJlYXNvbiwgV0tTdHJpbmdSZWYgbWltZVR5
cGUsIFdLU3RyaW5nUmVmIHVybCwgV0tTdHJpbmdSZWYgcGx1Z2luc1BhZ2VVUkwsIGNvbnN0IHZv
aWQqIGNsaWVudEluZm8pOwpAQCAtMTQ2NSw2ICsxNDY3LDEyMSBAQCB0eXBlZGVmIHN0cnVjdCBX
S1BhZ2VVSUNsaWVudFYxNSB7CiAgICAgCiB9IFdLUGFnZVVJQ2xpZW50VjE1OwogCit0eXBlZGVm
IHN0cnVjdCBXS1BhZ2VVSUNsaWVudFYxNiB7CisgICAgV0tQYWdlVUlDbGllbnRCYXNlICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiYXNlOworCisgICAg
Ly8gVmVyc2lvbiAwLgorICAgIFdLUGFnZUNyZWF0ZU5ld1BhZ2VDYWxsYmFja19kZXByZWNhdGVk
Rm9yVXNlV2l0aFYwICAgICAgICAgICAgICAgICAgY3JlYXRlTmV3UGFnZV9kZXByZWNhdGVkRm9y
VXNlV2l0aFYwOworICAgIFdLUGFnZVVJQ2xpZW50Q2FsbGJhY2sgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgc2hvd1BhZ2U7CisgICAgV0tQYWdlVUlDbGllbnRD
YWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbG9z
ZTsKKyAgICBXS1BhZ2VUYWtlRm9jdXNDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHRha2VGb2N1czsKKyAgICBXS1BhZ2VGb2N1c0NhbGxiYWNrICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvY3VzOworICAg
IFdLUGFnZVVuZm9jdXNDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgdW5mb2N1czsKKyAgICBXS1BhZ2VSdW5KYXZhU2NyaXB0QWxlcnRDYWxsYmFj
a19kZXByZWNhdGVkRm9yVXNlV2l0aFYwICAgICAgICAgICAgIHJ1bkphdmFTY3JpcHRBbGVydF9k
ZXByZWNhdGVkRm9yVXNlV2l0aFYwOworICAgIFdLUGFnZVJ1bkphdmFTY3JpcHRDb25maXJtQ2Fs
bGJhY2tfZGVwcmVjYXRlZEZvclVzZVdpdGhWMCAgICAgICAgICAgcnVuSmF2YVNjcmlwdENvbmZp
cm1fZGVwcmVjYXRlZEZvclVzZVdpdGhWMDsKKyAgICBXS1BhZ2VSdW5KYXZhU2NyaXB0UHJvbXB0
Q2FsbGJhY2tfZGVwcmVjYXRlZEZvclVzZVdpdGhWMCAgICAgICAgICAgIHJ1bkphdmFTY3JpcHRQ
cm9tcHRfZGVwcmVjYXRlZEZvclVzZVdpdGhWMDsKKyAgICBXS1BhZ2VTZXRTdGF0dXNUZXh0Q2Fs
bGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldFN0YXR1c1Rl
eHQ7CisgICAgV0tQYWdlTW91c2VEaWRNb3ZlT3ZlckVsZW1lbnRDYWxsYmFja19kZXByZWNhdGVk
Rm9yVXNlV2l0aFYwICAgICAgICBtb3VzZURpZE1vdmVPdmVyRWxlbWVudF9kZXByZWNhdGVkRm9y
VXNlV2l0aFYwOworICAgIFdLUGFnZU1pc3NpbmdQbHVnaW5CdXR0b25DbGlja2VkQ2FsbGJhY2tf
ZGVwcmVjYXRlZEZvclVzZVdpdGhWMCAgICAgbWlzc2luZ1BsdWdpbkJ1dHRvbkNsaWNrZWRfZGVw
cmVjYXRlZEZvclVzZVdpdGhWMDsKKyAgICBXS1BhZ2VEaWROb3RIYW5kbGVLZXlFdmVudENhbGxi
YWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpZE5vdEhhbmRsZUtleUV2ZW50
OworICAgIFdLUGFnZURpZE5vdEhhbmRsZVdoZWVsRXZlbnRDYWxsYmFjayAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgZGlkTm90SGFuZGxlV2hlZWxFdmVudDsKKyAgICBXS1BhZ2VHZXRU
b29sYmFyc0FyZVZpc2libGVDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHRvb2xiYXJzQXJlVmlzaWJsZTsKKyAgICBXS1BhZ2VTZXRUb29sYmFyc0FyZVZpc2libGVDYWxs
YmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldFRvb2xiYXJzQXJlVmlzaWJs
ZTsKKyAgICBXS1BhZ2VHZXRNZW51QmFySXNWaXNpYmxlQ2FsbGJhY2sgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIG1lbnVCYXJJc1Zpc2libGU7CisgICAgV0tQYWdlU2V0TWVudUJh
cklzVmlzaWJsZUNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRN
ZW51QmFySXNWaXNpYmxlOworICAgIFdLUGFnZUdldFN0YXR1c0JhcklzVmlzaWJsZUNhbGxiYWNr
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdHVzQmFySXNWaXNpYmxlOworICAg
IFdLUGFnZVNldFN0YXR1c0JhcklzVmlzaWJsZUNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgc2V0U3RhdHVzQmFySXNWaXNpYmxlOworICAgIFdLUGFnZUdldElzUmVzaXph
YmxlQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXNSZXNp
emFibGU7CisgICAgV0tQYWdlU2V0SXNSZXNpemFibGVDYWxsYmFjayAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBzZXRJc1Jlc2l6YWJsZTsKKyAgICBXS1BhZ2VHZXRXaW5k
b3dGcmFtZUNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdl
dFdpbmRvd0ZyYW1lOworICAgIFdLUGFnZVNldFdpbmRvd0ZyYW1lQ2FsbGJhY2sgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0V2luZG93RnJhbWU7CisgICAgV0tQYWdl
UnVuQmVmb3JlVW5sb2FkQ29uZmlybVBhbmVsQ2FsbGJhY2tfZGVwcmVjYXRlZEZvclVzZVdpdGhW
NiAgICBydW5CZWZvcmVVbmxvYWRDb25maXJtUGFuZWxfZGVwcmVjYXRlZEZvclVzZVdpdGhWNjsK
KyAgICBXS1BhZ2VVSUNsaWVudENhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGRpZERyYXc7CisgICAgV0tQYWdlVUlDbGllbnRDYWxsYmFjayAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYWdlRGlkU2Nyb2xsOwor
ICAgIFdLUGFnZUV4Y2VlZGVkRGF0YWJhc2VRdW90YUNhbGxiYWNrICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgZXhjZWVkZWREYXRhYmFzZVF1b3RhOworICAgIFdLUGFnZVJ1bk9wZW5Q
YW5lbENhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcnVu
T3BlblBhbmVsOworICAgIFdLUGFnZURlY2lkZVBvbGljeUZvckdlb2xvY2F0aW9uUGVybWlzc2lv
blJlcXVlc3RDYWxsYmFjayAgICAgICAgICAgZGVjaWRlUG9saWN5Rm9yR2VvbG9jYXRpb25QZXJt
aXNzaW9uUmVxdWVzdDsKKyAgICBXS1BhZ2VIZWFkZXJIZWlnaHRDYWxsYmFjayAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlYWRlckhlaWdodDsKKyAgICBXS1BhZ2VG
b290ZXJIZWlnaHRDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGZvb3RlckhlaWdodDsKKyAgICBXS1BhZ2VEcmF3SGVhZGVyQ2FsbGJhY2sgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRyYXdIZWFkZXI7CisgICAgV0tQYWdl
RHJhd0Zvb3RlckNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBkcmF3Rm9vdGVyOworICAgIFdLUGFnZVByaW50RnJhbWVDYWxsYmFjayAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJpbnRGcmFtZTsKKyAgICBXS1BhZ2VV
SUNsaWVudENhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHJ1bk1vZGFsOworICAgIHZvaWQqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW51c2VkMTsgLy8gVXNlZCB0byBiZSBkaWRD
b21wbGV0ZVJ1YmJlckJhbmRGb3JNYWluRnJhbWUKKyAgICBXS1BhZ2VTYXZlRGF0YVRvRmlsZUlu
RG93bmxvYWRzRm9sZGVyQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgIHNhdmVEYXRhVG9G
aWxlSW5Eb3dubG9hZHNGb2xkZXI7CisgICAgdm9pZCogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaG91bGRJbnRlcnJ1cHRKYXZh
U2NyaXB0X3VuYXZhaWxhYmxlOworCisgICAgLy8gVmVyc2lvbiAxLgorICAgIFdLUGFnZUNyZWF0
ZU5ld1BhZ2VDYWxsYmFja19kZXByZWNhdGVkRm9yVXNlV2l0aFYxICAgICAgICAgICAgICAgICAg
Y3JlYXRlTmV3UGFnZV9kZXByZWNhdGVkRm9yVXNlV2l0aFYxOworICAgIFdLUGFnZU1vdXNlRGlk
TW92ZU92ZXJFbGVtZW50Q2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbW91
c2VEaWRNb3ZlT3ZlckVsZW1lbnQ7CisgICAgV0tQYWdlRGVjaWRlUG9saWN5Rm9yTm90aWZpY2F0
aW9uUGVybWlzc2lvblJlcXVlc3RDYWxsYmFjayAgICAgICAgICBkZWNpZGVQb2xpY3lGb3JOb3Rp
ZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdDsKKyAgICBXS1BhZ2VVbmF2YWlsYWJsZVBsdWdpbkJ1
dHRvbkNsaWNrZWRDYWxsYmFja19kZXByZWNhdGVkRm9yVXNlV2l0aFYxIHVuYXZhaWxhYmxlUGx1
Z2luQnV0dG9uQ2xpY2tlZF9kZXByZWNhdGVkRm9yVXNlV2l0aFYxOworCisgICAgLy8gVmVyc2lv
biAyLgorICAgIFdLUGFnZVNob3dDb2xvclBpY2tlckNhbGxiYWNrICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgc2hvd0NvbG9yUGlja2VyOworICAgIFdLUGFnZUhpZGVDb2xv
clBpY2tlckNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGlk
ZUNvbG9yUGlja2VyOworICAgIFdLUGFnZVVuYXZhaWxhYmxlUGx1Z2luQnV0dG9uQ2xpY2tlZENh
bGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgdW5hdmFpbGFibGVQbHVnaW5CdXR0b25DbGlj
a2VkOworCisgICAgLy8gVmVyc2lvbiAzLgorICAgIFdLUGFnZVBpbm5lZFN0YXRlRGlkQ2hhbmdl
Q2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGlubmVkU3RhdGVEaWRD
aGFuZ2U7CisKKyAgICAvLyBWZXJzaW9uIDQuCisgICAgdm9pZCogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnVzZWQyOyAvLyBV
c2VkIHRvIGJlIGRpZEJlZ2luVHJhY2tpbmdQb3RlbnRpYWxMb25nTW91c2VQcmVzcy4KKyAgICB2
b2lkKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHVudXNlZDM7IC8vIFVzZWQgdG8gYmUgZGlkUmVjb2duaXplTG9uZ01vdXNlUHJl
c3MuCisgICAgdm9pZCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICB1bnVzZWQ0OyAvLyBVc2VkIHRvIGJlIGRpZENhbmNlbFRyYWNr
aW5nUG90ZW50aWFsTG9uZ01vdXNlUHJlc3MuCisgICAgV0tQYWdlSXNQbGF5aW5nQXVkaW9EaWRD
aGFuZ2VDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpc1BsYXlpbmdBdWRp
b0RpZENoYW5nZTsKKworICAgIC8vIFZlcnNpb24gNS4KKyAgICBXS1BhZ2VEZWNpZGVQb2xpY3lG
b3JVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdENhbGxiYWNrICAgICAgICAgICAgIGRlY2lkZVBv
bGljeUZvclVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0OworICAgIFdLUGFnZURpZENsaWNrQXV0
b0ZpbGxCdXR0b25DYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlkQ2xp
Y2tBdXRvRmlsbEJ1dHRvbjsKKyAgICBXS1BhZ2VSdW5KYXZhU2NyaXB0QWxlcnRDYWxsYmFja19k
ZXByZWNhdGVkRm9yVXNlV2l0aFY1ICAgICAgICAgICAgIHJ1bkphdmFTY3JpcHRBbGVydF9kZXBy
ZWNhdGVkRm9yVXNlV2l0aFY1OworICAgIFdLUGFnZVJ1bkphdmFTY3JpcHRDb25maXJtQ2FsbGJh
Y2tfZGVwcmVjYXRlZEZvclVzZVdpdGhWNSAgICAgICAgICAgcnVuSmF2YVNjcmlwdENvbmZpcm1f
ZGVwcmVjYXRlZEZvclVzZVdpdGhWNTsKKyAgICBXS1BhZ2VSdW5KYXZhU2NyaXB0UHJvbXB0Q2Fs
bGJhY2tfZGVwcmVjYXRlZEZvclVzZVdpdGhWNSAgICAgICAgICAgIHJ1bkphdmFTY3JpcHRQcm9t
cHRfZGVwcmVjYXRlZEZvclVzZVdpdGhWNTsKKyAgICB2b2lkKiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVudXNlZDU7IC8vIFVz
ZWQgdG8gYmUgbWVkaWFTZXNzaW9uTWV0YWRhdGFEaWRDaGFuZ2UuCisKKyAgICAvLyBWZXJzaW9u
IDYuCisgICAgV0tQYWdlQ3JlYXRlTmV3UGFnZUNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBjcmVhdGVOZXdQYWdlOworICAgIFdLUGFnZVJ1bkphdmFTY3Jp
cHRBbGVydENhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcnVuSmF2
YVNjcmlwdEFsZXJ0OworICAgIFdLUGFnZVJ1bkphdmFTY3JpcHRDb25maXJtQ2FsbGJhY2sgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcnVuSmF2YVNjcmlwdENvbmZpcm07CisgICAg
V0tQYWdlUnVuSmF2YVNjcmlwdFByb21wdENhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBydW5KYXZhU2NyaXB0UHJvbXB0OworICAgIFdLQ2hlY2tVc2VyTWVkaWFQZXJt
aXNzaW9uQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hlY2tVc2Vy
TWVkaWFQZXJtaXNzaW9uRm9yT3JpZ2luOworCisgICAgLy8gVmVyc2lvbiA3LgorICAgIFdLUGFn
ZVJ1bkJlZm9yZVVubG9hZENvbmZpcm1QYW5lbENhbGxiYWNrICAgICAgICAgICAgICAgICAgICAg
ICAgICAgcnVuQmVmb3JlVW5sb2FkQ29uZmlybVBhbmVsOworICAgIFdLRnVsbHNjcmVlbk1heVJl
dHVyblRvSW5saW5lQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZnVsbHNj
cmVlbk1heVJldHVyblRvSW5saW5lOworCisgICAgLy8gVmVyc2lvbiA4LgorICAgIFdLUmVxdWVz
dFBvaW50ZXJMb2NrQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgcmVxdWVzdFBvaW50ZXJMb2NrOworICAgIFdLRGlkTG9zZVBvaW50ZXJMb2NrQ2FsbGJhY2sg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlkTG9zZVBvaW50ZXJMb2Nr
OworCisgICAgLy8gVmVyc2lvbiA5LgorICAgIFdLSGFuZGxlQXV0b3BsYXlFdmVudENhbGxiYWNr
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlQXV0b3BsYXlFdmVu
dDsKKworICAgIC8vIFZlcnNpb24gMTAuCisgICAgV0tIYXNWaWRlb0luUGljdHVyZUluUGljdHVy
ZURpZENoYW5nZUNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICBoYXNWaWRlb0luUGljdHVy
ZUluUGljdHVyZURpZENoYW5nZTsKKyAgICBXS0RpZEV4Y2VlZEJhY2tncm91bmRSZXNvdXJjZUxp
bWl0V2hpbGVJbkZvcmVncm91bmRDYWxsYmFjayAgICAgICAgIGRpZEV4Y2VlZEJhY2tncm91bmRS
ZXNvdXJjZUxpbWl0V2hpbGVJbkZvcmVncm91bmQ7CisKKyAgICAvLyBWZXJzaW9uIDExLgorICAg
IFdLUGFnZURpZFJlc2lnbklucHV0RWxlbWVudFN0cm9uZ1Bhc3N3b3JkQXBwZWFyYW5jZUNhbGxi
YWNrICAgICAgICAgZGlkUmVzaWduSW5wdXRFbGVtZW50U3Ryb25nUGFzc3dvcmRBcHBlYXJhbmNl
OworCisgICAgLy8gVmVyc2lvbiAxMi4KKyAgICBXS1BhZ2VSZXF1ZXN0U3RvcmFnZUFjY2Vzc0Nv
bmZpcm1DYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3RTdG9yYWdlQWNj
ZXNzQ29uZmlybTsKKworICAgIC8vIFZlcnNpb24gMTMuCisgICAgV0tQYWdlU2hvdWxkQWxsb3dE
ZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvbkFjY2Vzc0NhbGxiYWNrICAgICAgICAgICBzaG91bGRB
bGxvd0RldmljZU9yaWVudGF0aW9uQW5kTW90aW9uQWNjZXNzOworCisgICAgLy8gVmVyc2lvbiAx
NC4KKyAgICBXS1BhZ2VSdW5XZWJBdXRoZW50aWNhdGlvblBhbmVsQ2FsbGJhY2sgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHJ1bldlYkF1dGhlbnRpY2F0aW9uUGFuZWw7CisKKyAgICAvLyBW
ZXJzaW9uIDE1LgorICAgIFdLUGFnZURlY2lkZVBvbGljeUZvclNwZWVjaFJlY29nbml0aW9uUGVy
bWlzc2lvblJlcXVlc3RDYWxsYmFjayAgICAgZGVjaWRlUG9saWN5Rm9yU3BlZWNoUmVjb2duaXRp
b25QZXJtaXNzaW9uUmVxdWVzdDsKKworICAgIC8vIFZlcnNpb24gMTYuCisgICAgV0tQYWdlRGVj
aWRlUG9saWN5Rm9yTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdENhbGxiYWNrICAgICAg
ICBkZWNpZGVQb2xpY3lGb3JNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0OworCit9IFdL
UGFnZVVJQ2xpZW50VjE2OworCisKICNpZmRlZiBfX2NwbHVzcGx1cwogfQogI2VuZGlmCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9NZWRpYUtleVN5c3RlbVBlcm1pc3Npb25S
ZXF1ZXN0LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9NZWRpYUtleVN5c3RlbVBlcm1pc3Np
b25SZXF1ZXN0LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNGFmYzM1ZDAxNzcyZDU4OTdjNzdlYWMwMTA3YmM5YmU3
NGI0NjI4YQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL01lZGlh
S2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3QuaApAQCAtMCwwICsxLDc2IEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDIxIElnYWxpYSBTLkwuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMn
JworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMK
KyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAq
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICog
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisj
aW5jbHVkZSAiQVBJT2JqZWN0LmgiCisjaW5jbHVkZSA8V2ViQ29yZS9DbGllbnRPcmlnaW4uaD4K
KyNpbmNsdWRlIDx3dGYvQ29tcGxldGlvbkhhbmRsZXIuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7
CisKK2NsYXNzIE1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3QgOiBwdWJsaWMgUmVmQ291
bnRlZDxNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0PiB7CitwdWJsaWM6CisgICAgc3Rh
dGljIFJlZjxNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0PiBjcmVhdGUoY29uc3QgU3Ry
aW5nJiBrZXlTeXN0ZW0sIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYgY29tcGxldGlv
bkhhbmRsZXIpCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBNZWRpYUtleVN5
c3RlbVBlcm1pc3Npb25SZXF1ZXN0KGtleVN5c3RlbSwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxl
cikpKTsKKyAgICB9CisKKyAgICB2b2lkIGNvbXBsZXRlKGJvb2wgc3VjY2VzcykKKyAgICB7Cisg
ICAgICAgIGF1dG8gY29tcGxldGlvbkhhbmRsZXIgPSBzdGQ6OmV4Y2hhbmdlKG1fY29tcGxldGlv
bkhhbmRsZXIsIHsgfSk7CisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKHN1Y2Nlc3MpOworICAg
IH0KKworICAgIGNvbnN0IFN0cmluZyYga2V5U3lzdGVtKCkgY29uc3QgeyByZXR1cm4gbV9rZXlT
eXN0ZW07IH0KKworcHJpdmF0ZToKKyAgICBNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0
KGNvbnN0IFN0cmluZyYga2V5U3lzdGVtLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYm
IGNvbXBsZXRpb25IYW5kbGVyKQorICAgICAgICA6IG1fa2V5U3lzdGVtKGtleVN5c3RlbSkKKyAg
ICAgICAgLCBtX2NvbXBsZXRpb25IYW5kbGVyKFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKQor
ICAgIHsgfQorCisgICAgU3RyaW5nIG1fa2V5U3lzdGVtOworICAgIENvbXBsZXRpb25IYW5kbGVy
PHZvaWQoYm9vbCk+IG1fY29tcGxldGlvbkhhbmRsZXI7Cit9OworCitjbGFzcyBNZWRpYUtleVN5
c3RlbVBlcm1pc3Npb25DYWxsYmFjayA6IHB1YmxpYyBBUEk6Ok9iamVjdEltcGw8QVBJOjpPYmpl
Y3Q6OlR5cGU6Ok1lZGlhS2V5U3lzdGVtUGVybWlzc2lvbkNhbGxiYWNrPiB7CitwdWJsaWM6Cisg
ICAgc3RhdGljIFJlZjxNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25DYWxsYmFjaz4gY3JlYXRlKENv
bXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCisgICAgewor
ICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25DYWxs
YmFjayhXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSkpOworICAgIH0KKworICAgIHZvaWQgY29t
cGxldGUoYm9vbCBncmFudGVkKSB7IG1fY29tcGxldGlvbkhhbmRsZXIoZ3JhbnRlZCk7IH0KKwor
cHJpdmF0ZToKKyAgICBNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25DYWxsYmFjayhDb21wbGV0aW9u
SGFuZGxlcjx2b2lkKGJvb2wpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQorICAgICAgICA6IG1fY29t
cGxldGlvbkhhbmRsZXIoV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpCisgICAgeyB9CisKKyAg
ICBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiBtX2NvbXBsZXRpb25IYW5kbGVyOworfTsK
KworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9NZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmNwcCBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL01lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RNYW5h
Z2VyUHJveHkuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjViMTBkYjgzMGQ3MWI5ZmIxMGNhMjFlMzU3NGYxNTM3
OWM0NjU5OTAKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9NZWRp
YUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmNwcApAQCAtMCwwICsxLDEx
NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBJZ2FsaWEgUy5MLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRS
SUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJ
VFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisj
aW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVx
dWVzdE1hbmFnZXJQcm94eS5oIgorCisjaW5jbHVkZSAiQVBJU2VjdXJpdHlPcmlnaW4uaCIKKyNp
bmNsdWRlICJBUElVSUNsaWVudC5oIgorI2luY2x1ZGUgIkxvZ2dpbmcuaCIKKyNpbmNsdWRlICJX
ZWJBdXRvbWF0aW9uU2Vzc2lvbi5oIgorI2luY2x1ZGUgIldlYlBhZ2VNZXNzYWdlcy5oIgorI2lu
Y2x1ZGUgIldlYlBhZ2VQcm94eS5oIgorI2luY2x1ZGUgIldlYlByb2Nlc3MuaCIKKyNpbmNsdWRl
ICJXZWJQcm9jZXNzUG9vbC5oIgorI2luY2x1ZGUgIldlYlByb2Nlc3NQcm94eS5oIgorI2luY2x1
ZGUgIldlYnNpdGVEYXRhU3RvcmUuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL01lZGlhS2V5U3lzdGVt
UmVxdWVzdC5oPgorI2luY2x1ZGUgPFdlYkNvcmUvU2VjdXJpdHlPcmlnaW5EYXRhLmg+CisjaW5j
bHVkZSA8d3RmL1Njb3BlLmg+CisKK25hbWVzcGFjZSBXZWJLaXQgewordXNpbmcgbmFtZXNwYWNl
IFdlYkNvcmU7CisKK01lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6
Ok1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkoV2ViUGFnZVByb3h5
JiBwYWdlKQorICAgIDogbV9wYWdlKHBhZ2UpCisjaWYgIVJFTEVBU0VfTE9HX0RJU0FCTEVECisg
ICAgLCBtX2xvZ2dlcihwYWdlLmxvZ2dlcigpKQorICAgICwgbV9sb2dJZGVudGlmaWVyKHVuaXF1
ZUxvZ0lkZW50aWZpZXIoKSkKKyNlbmRpZgoreworfQorCitNZWRpYUtleVN5c3RlbVBlcm1pc3Np
b25SZXF1ZXN0TWFuYWdlclByb3h5Ojp+TWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdE1h
bmFnZXJQcm94eSgpCit7CisgICAgaW52YWxpZGF0ZVBlbmRpbmdSZXF1ZXN0cygpOworfQorCit2
b2lkIE1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6OmludmFsaWRh
dGVQZW5kaW5nUmVxdWVzdHMoKQoreworICAgIGZvciAoYXV0byYgcmVxdWVzdCA6IG1fcGVuZGlu
Z1JlcXVlc3RzLnZhbHVlcygpKQorICAgICAgICByZXF1ZXN0LT5pbnZhbGlkYXRlKCk7CisKKyAg
ICBtX3BlbmRpbmdSZXF1ZXN0cy5jbGVhcigpOworfQorCit2b2lkIE1lZGlhS2V5U3lzdGVtUGVy
bWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6OmRlbnlSZXF1ZXN0KE1lZGlhS2V5U3lzdGVtUGVy
bWlzc2lvblJlcXVlc3RQcm94eSYgcmVxdWVzdCwgY29uc3QgU3RyaW5nJiBtZXNzYWdlKQorewor
ICAgIGlmICghbV9wYWdlLmhhc1J1bm5pbmdQcm9jZXNzKCkpCisgICAgICAgIHJldHVybjsKKwor
ICAgIEFMV0FZU19MT0coTE9HSURFTlRJRklFUiwgcmVxdWVzdC5tZWRpYUtleVN5c3RlbUlEKCks
ICIsIHJlYXNvbjogIiwgbWVzc2FnZSk7CisKKyNpZiBFTkFCTEUoRU5DUllQVEVEX01FRElBKQor
ICAgIG1fcGFnZS5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpNZWRpYUtleVN5c3RlbVdhc0Rlbmll
ZChyZXF1ZXN0Lm1lZGlhS2V5U3lzdGVtSUQoKSwgbWVzc2FnZSkpOworI2Vsc2UKKyAgICBVTlVT
RURfUEFSQU0obWVzc2FnZSk7CisjZW5kaWYKK30KKwordm9pZCBNZWRpYUtleVN5c3RlbVBlcm1p
c3Npb25SZXF1ZXN0TWFuYWdlclByb3h5OjpncmFudFJlcXVlc3QoTWVkaWFLZXlTeXN0ZW1QZXJt
aXNzaW9uUmVxdWVzdFByb3h5JiByZXF1ZXN0KQoreworICAgIGlmICghbV9wYWdlLmhhc1J1bm5p
bmdQcm9jZXNzKCkpCisgICAgICAgIHJldHVybjsKKworI2lmIEVOQUJMRShFTkNSWVBURURfTUVE
SUEpCisgICAgQUxXQVlTX0xPRyhMT0dJREVOVElGSUVSLCByZXF1ZXN0Lm1lZGlhS2V5U3lzdGVt
SUQoKSwgIiwga2V5U3lzdGVtOiAiLCByZXF1ZXN0LmtleVN5c3RlbSgpKTsKKworICAgIG1fcGFn
ZS5zZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6OldlYlBhZ2U6Ok1lZGlhS2V5U3lzdGVtV2Fz
R3JhbnRlZCB7IHJlcXVlc3QubWVkaWFLZXlTeXN0ZW1JRCgpIH0sIFtdIHsgfSk7CisjZWxzZQor
ICAgIFVOVVNFRF9QQVJBTShyZXF1ZXN0KTsKKyNlbmRpZgorfQorCitSZWY8TWVkaWFLZXlTeXN0
ZW1QZXJtaXNzaW9uUmVxdWVzdFByb3h5PiBNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0
TWFuYWdlclByb3h5OjpjcmVhdGVSZXF1ZXN0Rm9yRnJhbWUodWludDY0X3QgbWVkaWFLZXlTeXN0
ZW1JRCwgRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIFJlZjxTZWN1cml0eU9yaWdpbj4mJiB0b3BM
ZXZlbERvY3VtZW50T3JpZ2luLCBjb25zdCBTdHJpbmcmIGtleVN5c3RlbSkKK3sKKyAgICBBTFdB
WVNfTE9HKExPR0lERU5USUZJRVIsIG1lZGlhS2V5U3lzdGVtSUQpOworCisgICAgYXV0byByZXF1
ZXN0ID0gTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdFByb3h5OjpjcmVhdGUoKnRoaXMs
IG1lZGlhS2V5U3lzdGVtSUQsIG1fcGFnZS5tYWluRnJhbWUoKS0+ZnJhbWVJRCgpLCBmcmFtZUlE
LCBXVEZNb3ZlKHRvcExldmVsRG9jdW1lbnRPcmlnaW4pLCBrZXlTeXN0ZW0pOworICAgIG1fcGVu
ZGluZ1JlcXVlc3RzLmFkZChtZWRpYUtleVN5c3RlbUlELCByZXF1ZXN0LnB0cigpKTsKKyAgICBy
ZXR1cm4gcmVxdWVzdDsKK30KKworI2lmICFSRUxFQVNFX0xPR19ESVNBQkxFRAorV1RGTG9nQ2hh
bm5lbCYgTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6bG9nQ2hh
bm5lbCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIFdlYktpdDJMb2dFTUU7Cit9CisKK2NvbnN0IExv
Z2dlciYgTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6bG9nZ2Vy
KCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9wYWdlLmxvZ2dlcigpOworfQorI2VuZGlmCisKK30g
Ly8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
TWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5oIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94
eS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmIwM2E2Mjg0ODExYmVmMmQyMjEzMWI3YmUxMGU4OTNjMDY3MTg2ZmMK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9NZWRpYUtleVN5c3Rl
bVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmgKQEAgLTAsMCArMSw4NSBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAyMSBJZ2FsaWEgUy5MLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFT
IElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVU
T1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
CisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YK
KyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UK
KworI2luY2x1ZGUgIk1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RQcm94eS5oIgorI2lu
Y2x1ZGUgPFdlYkNvcmUvU2VjdXJpdHlPcmlnaW4uaD4KKyNpbmNsdWRlIDx3dGYvQ29tcGxldGlv
bkhhbmRsZXIuaD4KKyNpbmNsdWRlIDx3dGYvRGVxdWUuaD4KKyNpbmNsdWRlIDx3dGYvSGFzaE1h
cC5oPgorI2luY2x1ZGUgPHd0Zi9Mb2dnZXJIZWxwZXIuaD4KKyNpbmNsdWRlIDx3dGYvUnVuTG9v
cC5oPgorI2luY2x1ZGUgPHd0Zi9TZWNvbmRzLmg+CisjaW5jbHVkZSA8d3RmL1dlYWtQdHIuaD4K
KworbmFtZXNwYWNlIFdlYkNvcmUgeworY2xhc3MgU2VjdXJpdHlPcmlnaW47Cit9OworCituYW1l
c3BhY2UgV2ViS2l0IHsKKworY2xhc3MgV2ViUGFnZVByb3h5OworCitjbGFzcyBNZWRpYUtleVN5
c3RlbVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5CisgICAgOiBwdWJsaWMgQ2FuTWFrZVdl
YWtQdHI8TWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eT4KKyNpZiAh
UkVMRUFTRV9MT0dfRElTQUJMRUQKKyAgICAsIHByaXZhdGUgTG9nZ2VySGVscGVyCisjZW5kaWYK
K3sKKyAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKK3B1YmxpYzoKKyAgICBleHBsaWNpdCBN
ZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5KFdlYlBhZ2VQcm94eSYp
OworICAgIH5NZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5KCk7CisK
KyAgICBXZWJQYWdlUHJveHkmIHBhZ2UoKSBjb25zdCB7IHJldHVybiBtX3BhZ2U7IH0KKworICAg
IHZvaWQgaW52YWxpZGF0ZVBlbmRpbmdSZXF1ZXN0cygpOworCisgICAgUmVmPE1lZGlhS2V5U3lz
dGVtUGVybWlzc2lvblJlcXVlc3RQcm94eT4gY3JlYXRlUmVxdWVzdEZvckZyYW1lKHVpbnQ2NF90
IHVzZXJNZWRpYUlELCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIFJlZjxXZWJDb3JlOjpTZWN1
cml0eU9yaWdpbj4mJiB0b3BMZXZlbERvY3VtZW50T3JpZ2luLCBjb25zdCBTdHJpbmcmIGtleVN5
c3RlbSk7CisKKyAgICB2b2lkIGdyYW50UmVxdWVzdChNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25S
ZXF1ZXN0UHJveHkmKTsKKyAgICB2b2lkIGRlbnlSZXF1ZXN0KE1lZGlhS2V5U3lzdGVtUGVybWlz
c2lvblJlcXVlc3RQcm94eSYsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSA9IHsgfSk7CisKK3ByaXZh
dGU6CisjaWYgIVJFTEVBU0VfTE9HX0RJU0FCTEVECisgICAgY29uc3QgTG9nZ2VyJiBsb2dnZXIo
KSBjb25zdCBmaW5hbDsKKyAgICBjb25zdCB2b2lkKiBsb2dJZGVudGlmaWVyKCkgY29uc3QgZmlu
YWwgeyByZXR1cm4gbV9sb2dJZGVudGlmaWVyOyB9CisgICAgY29uc3QgY2hhciogbG9nQ2xhc3NO
YW1lKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gIk1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJl
cXVlc3RNYW5hZ2VyUHJveHkiOyB9CisgICAgV1RGTG9nQ2hhbm5lbCYgbG9nQ2hhbm5lbCgpIGNv
bnN0IGZpbmFsOworI2VuZGlmCisKKyAgICBXZWJQYWdlUHJveHkmIG1fcGFnZTsKKworICAgIEhh
c2hNYXA8dWludDY0X3QsIFJlZlB0cjxNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0UHJv
eHk+PiBtX3BlbmRpbmdSZXF1ZXN0czsKKyAgICBIYXNoU2V0PFN0cmluZz4gbV92YWxpZEF1dGhv
cml6YXRpb25Ub2tlbnM7CisKKyNpZiAhUkVMRUFTRV9MT0dfRElTQUJMRUQKKyAgICBSZWY8Y29u
c3QgTG9nZ2VyPiBtX2xvZ2dlcjsKKyAgICBjb25zdCB2b2lkKiBtX2xvZ0lkZW50aWZpZXI7Cisj
ZW5kaWYKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdFByb3h5LmNwcCBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL01lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RQ
cm94eS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uZDJiOTE1NWQxNTg1NmEzNDAyYmNmYzFmNTUyNjkyMGUwMzc5
MGJkYwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL01lZGlhS2V5
U3lzdGVtUGVybWlzc2lvblJlcXVlc3RQcm94eS5jcHAKQEAgLTAsMCArMSw4MiBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAyMSBJZ2FsaWEgUy5MLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFT
IElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVU
T1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
CisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YK
KyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29u
ZmlnLmgiCisjaW5jbHVkZSAiTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdFByb3h5Lmgi
CisKKyNpbmNsdWRlICJNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5
LmgiCisjaW5jbHVkZSA8V2ViQ29yZS9TZWN1cml0eU9yaWdpbi5oPgorI2luY2x1ZGUgPFdlYkNv
cmUvU2VjdXJpdHlPcmlnaW5EYXRhLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nSGFzaC5o
PgorCituYW1lc3BhY2UgV2ViS2l0IHsKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOworCitNZWRp
YUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0UHJveHk6Ok1lZGlhS2V5U3lzdGVtUGVybWlzc2lv
blJlcXVlc3RQcm94eShNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5
JiBtYW5hZ2VyLCB1aW50NjRfdCBtZWRpYUtleVN5c3RlbUlELCBGcmFtZUlkZW50aWZpZXIgbWFp
bkZyYW1lSUQsIEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBSZWY8V2ViQ29yZTo6U2VjdXJpdHlP
cmlnaW4+JiYgdG9wTGV2ZWxEb2N1bWVudE9yaWdpbiwgY29uc3QgU3RyaW5nJiBrZXlTeXN0ZW0p
CisgICAgOiBtX21hbmFnZXIoJm1hbmFnZXIpCisgICAgLCBtX21lZGlhS2V5U3lzdGVtSUQobWVk
aWFLZXlTeXN0ZW1JRCkKKyAgICAsIG1fbWFpbkZyYW1lSUQobWFpbkZyYW1lSUQpCisgICAgLCBt
X2ZyYW1lSUQoZnJhbWVJRCkKKyAgICAsIG1fdG9wTGV2ZWxEb2N1bWVudFNlY3VyaXR5T3JpZ2lu
KFdURk1vdmUodG9wTGV2ZWxEb2N1bWVudE9yaWdpbikpCisgICAgLCBtX2tleVN5c3RlbShrZXlT
eXN0ZW0pCit7Cit9CisKK3ZvaWQgTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdFByb3h5
OjphbGxvdygpCit7CisgICAgQVNTRVJUKG1fbWFuYWdlcik7CisgICAgaWYgKCFtX21hbmFnZXIp
CisgICAgICAgIHJldHVybjsKKworICAgIG1fbWFuYWdlci0+Z3JhbnRSZXF1ZXN0KCp0aGlzKTsK
KyAgICBpbnZhbGlkYXRlKCk7Cit9CisKK3ZvaWQgTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVx
dWVzdFByb3h5OjpkZW55KCkKK3sKKyAgICBpZiAoIW1fbWFuYWdlcikKKyAgICAgICAgcmV0dXJu
OworCisgICAgbV9tYW5hZ2VyLT5kZW55UmVxdWVzdCgqdGhpcyk7CisgICAgaW52YWxpZGF0ZSgp
OworfQorCit2b2lkIE1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RQcm94eTo6aW52YWxp
ZGF0ZSgpCit7CisgICAgbV9tYW5hZ2VyID0gbnVsbHB0cjsKK30KKwordm9pZCBNZWRpYUtleVN5
c3RlbVBlcm1pc3Npb25SZXF1ZXN0UHJveHk6OmRvRGVmYXVsdEFjdGlvbigpCit7CisjaWYgUExB
VEZPUk0oQ09DT0EpCisgICAgLy8gQmFja3dhcmQgY29tcGF0aWJpbGl0eSBmb3IgcGxhdGZvcm1z
IG5vdCB5ZXQgc3VwcG9ydGluZyB0aGUgTWVkaWFLZXlTeXN0ZW0gcGVybWlzc2lvbiByZXF1ZXN0
CisgICAgLy8gaW4gdGhlaXIgQVBJVUlDbGllbnQuCisgICAgYWxsb3coKTsKKyNlbHNlCisgICAg
ZGVueSgpOworI2VuZGlmCit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdFBy
b3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9NZWRpYUtleVN5c3RlbVBlcm1pc3Npb25S
ZXF1ZXN0UHJveHkuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hNjRkMWM2MjA1N2Q1Njk3MjA1Njg2ZTg3MWFlYzI4
MzY3NTA1ZGM5Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTWVk
aWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdFByb3h5LmgKQEAgLTAsMCArMSw3NiBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAyMSBJZ2FsaWEgUy5MLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBg
YEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJ
QlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9u
Y2UKKworI2luY2x1ZGUgIkFQSU9iamVjdC5oIgorI2luY2x1ZGUgPFdlYkNvcmUvRnJhbWVJZGVu
dGlmaWVyLmg+CisjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L1dU
RlN0cmluZy5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CitjbGFzcyBTZWN1cml0eU9yaWdpbjsK
K30KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIE1lZGlhS2V5U3lzdGVtUGVybWlzc2lv
blJlcXVlc3RNYW5hZ2VyUHJveHk7CisKK2NsYXNzIE1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJl
cXVlc3RQcm94eSA6IHB1YmxpYyBSZWZDb3VudGVkPE1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJl
cXVlc3RQcm94eT4geworcHVibGljOgorICAgIHN0YXRpYyBSZWY8TWVkaWFLZXlTeXN0ZW1QZXJt
aXNzaW9uUmVxdWVzdFByb3h5PiBjcmVhdGUoTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVz
dE1hbmFnZXJQcm94eSYgbWFuYWdlciwgdWludDY0X3QgbWVkaWFLZXlTeXN0ZW1JRCwgV2ViQ29y
ZTo6RnJhbWVJZGVudGlmaWVyIG1haW5GcmFtZUlELCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIg
ZnJhbWVJRCwgUmVmPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luPiYmIHRvcExldmVsRG9jdW1lbnRP
cmlnaW4sIGNvbnN0IFN0cmluZyYga2V5U3lzdGVtKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFk
b3B0UmVmKCpuZXcgTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdFByb3h5KG1hbmFnZXIs
IG1lZGlhS2V5U3lzdGVtSUQsIG1haW5GcmFtZUlELCBmcmFtZUlELCBXVEZNb3ZlKHRvcExldmVs
RG9jdW1lbnRPcmlnaW4pLCBrZXlTeXN0ZW0pKTsKKyAgICB9CisKKyAgICB2b2lkIGFsbG93KCk7
CisgICAgdm9pZCBkZW55KCk7CisKKyAgICB2b2lkIGludmFsaWRhdGUoKTsKKyAgICBib29sIGlz
UGVuZGluZygpIGNvbnN0IHsgcmV0dXJuIG1fbWFuYWdlcjsgfQorCisgICAgdWludDY0X3QgbWVk
aWFLZXlTeXN0ZW1JRCgpIGNvbnN0IHsgcmV0dXJuIG1fbWVkaWFLZXlTeXN0ZW1JRDsgfQorICAg
IFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBtYWluRnJhbWVJRCgpIGNvbnN0IHsgcmV0dXJuIG1f
bWFpbkZyYW1lSUQ7IH0KKyAgICBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCgpIGNv
bnN0IHsgcmV0dXJuIG1fZnJhbWVJRDsgfQorCisgICAgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4m
IHRvcExldmVsRG9jdW1lbnRTZWN1cml0eU9yaWdpbigpIHsgcmV0dXJuIG1fdG9wTGV2ZWxEb2N1
bWVudFNlY3VyaXR5T3JpZ2luLmdldCgpOyB9CisgICAgY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlP
cmlnaW4mIHRvcExldmVsRG9jdW1lbnRTZWN1cml0eU9yaWdpbigpIGNvbnN0IHsgcmV0dXJuIG1f
dG9wTGV2ZWxEb2N1bWVudFNlY3VyaXR5T3JpZ2luLmdldCgpOyB9CisKKyAgICBjb25zdCBTdHJp
bmcmIGtleVN5c3RlbSgpIGNvbnN0IHsgcmV0dXJuIG1fa2V5U3lzdGVtOyB9CisKKyAgICB2b2lk
IGRvRGVmYXVsdEFjdGlvbigpOworCitwcml2YXRlOgorICAgIE1lZGlhS2V5U3lzdGVtUGVybWlz
c2lvblJlcXVlc3RQcm94eShNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclBy
b3h5JiwgdWludDY0X3QgbWVkaWFLZXlTeXN0ZW1JRCwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVy
IG1haW5GcmFtZUlELCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIFJlZjxXZWJDb3JlOjpTZWN1
cml0eU9yaWdpbj4mJiB0b3BMZXZlbERvY3VtZW50T3JpZ2luLCBjb25zdCBTdHJpbmcmIGtleVN5
c3RlbSk7CisKKyAgICBNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5
KiBtX21hbmFnZXI7CisgICAgdWludDY0X3QgbV9tZWRpYUtleVN5c3RlbUlEOworICAgIFdlYkNv
cmU6OkZyYW1lSWRlbnRpZmllciBtX21haW5GcmFtZUlEOworICAgIFdlYkNvcmU6OkZyYW1lSWRl
bnRpZmllciBtX2ZyYW1lSUQ7CisgICAgUmVmPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luPiBtX3Rv
cExldmVsRG9jdW1lbnRTZWN1cml0eU9yaWdpbjsKKyAgICBTdHJpbmcgbV9rZXlTeXN0ZW07Cit9
OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1NwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZS5jcHAgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVk
aWFTb3VyY2UuY3BwCmluZGV4IGI5ZDkzMjA5NjM5ZGQzYmY4ZjI3NDgzNTI0Y2Y0MDZkNjNlYzYw
YWQuLjQzODRkNDlhMTdjOWVmMDNjMzBiODlmNzI0YjViNTM5NzIxNGQ5N2MgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVN
ZWRpYVNvdXJjZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3BlZWNoUmVjb2du
aXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlLmNwcApAQCAtMzMsNiArMzMsOCBAQAogCiAj
aWYgUExBVEZPUk0oQ09DT0EpCiAjaW5jbHVkZSAiU2hhcmVkUmluZ0J1ZmZlclN0b3JhZ2UuaCIK
KyNpbmNsdWRlIDxXZWJDb3JlL0NBUmluZ0J1ZmZlci5oPgorI2luY2x1ZGUgPFdlYkNvcmUvV2Vi
QXVkaW9CdWZmZXJMaXN0Lmg+CiAjZW5kaWYKIAogbmFtZXNwYWNlIFdlYktpdCB7CkBAIC00Nyw3
ICs0OSw3IEBAIFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6U3Bl
ZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhCiAgICAgLCBtX2lkZW50aWZpZXIoaWRl
bnRpZmllcikKICAgICAsIG1fbWFuYWdlcihtYWtlV2Vha1B0cihtYW5hZ2VyKSkKICNpZiBQTEFU
Rk9STShDT0NPQSkKLSAgICAsIG1fcmluZ0J1ZmZlcihtYWtlVW5pcXVlPENBUmluZ0J1ZmZlcj4o
KSkKKyAgICAsIG1fcmluZ0J1ZmZlcihtYWtlVW5pcXVlPFdlYkNvcmU6OkNBUmluZ0J1ZmZlcj4o
KSkKICNlbmRpZgogewogICAgIG1fbWFuYWdlci0+YWRkU291cmNlKCp0aGlzLCBjYXB0dXJlRGV2
aWNlKTsKQEAgLTc3LDggKzc5LDggQEAgdm9pZCBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0
aW1lTWVkaWFTb3VyY2U6OnNldFN0b3JhZ2UoY29uc3QgU2hhcmVkTWVtb3J5OjoKIHsKICAgICBt
X2Rlc2NyaXB0aW9uID0gZGVzY3JpcHRpb247CiAKLSAgICBtX3JpbmdCdWZmZXIgPSBtYWtlVW5p
cXVlPENBUmluZ0J1ZmZlcj4obWFrZVVuaXF1ZVJlZjxSZWFkT25seVNoYXJlZFJpbmdCdWZmZXJT
dG9yYWdlPihoYW5kbGUpLCBkZXNjcmlwdGlvbiwgbnVtYmVyT2ZGcmFtZXMpOwotICAgIG1fYnVm
ZmVyID0gbWFrZVVuaXF1ZTxXZWJBdWRpb0J1ZmZlckxpc3Q+KGRlc2NyaXB0aW9uLCBudW1iZXJP
ZkZyYW1lcyk7CisgICAgbV9yaW5nQnVmZmVyID0gbWFrZVVuaXF1ZTxXZWJDb3JlOjpDQVJpbmdC
dWZmZXI+KG1ha2VVbmlxdWVSZWY8UmVhZE9ubHlTaGFyZWRSaW5nQnVmZmVyU3RvcmFnZT4oaGFu
ZGxlKSwgZGVzY3JpcHRpb24sIG51bWJlck9mRnJhbWVzKTsKKyAgICBtX2J1ZmZlciA9IG1ha2VV
bmlxdWU8V2ViQ29yZTo6V2ViQXVkaW9CdWZmZXJMaXN0PihkZXNjcmlwdGlvbiwgbnVtYmVyT2ZG
cmFtZXMpOwogfQogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1NwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZS5oIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNl
LmgKaW5kZXggOGI1MTI1MGY1Y2FkN2YzZjVjZTc4ZjU4ZDY3NjM3MTkwY2Y4YmY5MS4uYTFlMjdh
ZDVmZDcwMzhlZDJlZGVlYjMyYzE1YjUwOTEwZGFkNTFlMCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNl
LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25SZW1vdGVS
ZWFsdGltZU1lZGlhU291cmNlLmgKQEAgLTI3LDYgKzI3LDcgQEAKIAogI2lmIEVOQUJMRShNRURJ
QV9TVFJFQU0pCiAKKyNpbmNsdWRlICJTaGFyZWRNZW1vcnkuaCIKICNpbmNsdWRlIDxXZWJDb3Jl
L1JlYWx0aW1lTWVkaWFTb3VyY2UuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1JlYWx0aW1lTWVkaWFT
b3VyY2VJZGVudGlmaWVyLmg+CiAKQEAgLTQzLDcgKzQ0LDggQEAgY2xhc3MgV2ViQXVkaW9CdWZm
ZXJMaXN0OwogfQogCiBuYW1lc3BhY2UgV2ViS2l0IHsKLQorY2xhc3MgU3BlZWNoUmVjb2duaXRp
b25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlTWFuYWdlcjsKKyAgICAKIGNsYXNzIFNwZWVjaFJl
Y29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZSA6IHB1YmxpYyBXZWJDb3JlOjpSZWFs
dGltZU1lZGlhU291cmNlIHsKIHB1YmxpYzoKICAgICBzdGF0aWMgUmVmPFdlYkNvcmU6OlJlYWx0
aW1lTWVkaWFTb3VyY2U+IGNyZWF0ZShTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVk
aWFTb3VyY2VNYW5hZ2VyJiwgY29uc3QgV2ViQ29yZTo6Q2FwdHVyZURldmljZSYpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcCBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKaW5kZXggN2QzMWNhYTg5NjAxMWJlNzdi
MmMxNGNkYzExN2Y2NDZjZDNhNzRmNC4uZThiN2EwNmMyNDIyMThmMGYwYWVkYzdjZTFhNzczZGVj
Yzc5N2RlMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCkBAIC04
MjkxLDYgKzgyOTEsMjcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmNsZWFyVXNlck1lZGlhU3RhdGUo
KQogI2VuZGlmCiB9CiAKK3ZvaWQgV2ViUGFnZVByb3h5OjpyZXF1ZXN0TWVkaWFLZXlTeXN0ZW1Q
ZXJtaXNzaW9uRm9yRnJhbWUodWludDY0X3QgbWVkaWFLZXlTeXN0ZW1JRCwgRnJhbWVJZGVudGlm
aWVyIGZyYW1lSUQsIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYgdG9wTGV2ZWxE
b2N1bWVudE9yaWdpbkRhdGEsIGNvbnN0IFN0cmluZyYga2V5U3lzdGVtKQoreworI2lmIEVOQUJM
RShNRURJQV9TVFJFQU0pCisgICAgTUVTU0FHRV9DSEVDSyhtX3Byb2Nlc3MsIG1fcHJvY2Vzcy0+
d2ViRnJhbWUoZnJhbWVJRCkpOworCisgICAgYXV0byBvcmlnaW4gPSBBUEk6OlNlY3VyaXR5T3Jp
Z2luOjpjcmVhdGUodG9wTGV2ZWxEb2N1bWVudE9yaWdpbkRhdGEuc2VjdXJpdHlPcmlnaW4oKSk7
CisgICAgYXV0byByZXF1ZXN0ID0gbWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdE1hbmFn
ZXIoKS5jcmVhdGVSZXF1ZXN0Rm9yRnJhbWUobWVkaWFLZXlTeXN0ZW1JRCwgZnJhbWVJRCwgdG9w
TGV2ZWxEb2N1bWVudE9yaWdpbkRhdGEuc2VjdXJpdHlPcmlnaW4oKSwga2V5U3lzdGVtKTsKKyAg
ICBtX3VpQ2xpZW50LT5kZWNpZGVQb2xpY3lGb3JNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1
ZXN0KCp0aGlzLCBvcmlnaW4sIGtleVN5c3RlbSwgW3JlcXVlc3QgPSBXVEZNb3ZlKHJlcXVlc3Qp
XShib29sIGFsbG93ZWQpIHsKKyAgICAgICAgaWYgKGFsbG93ZWQpCisgICAgICAgICAgICByZXF1
ZXN0LT5hbGxvdygpOworICAgICAgICBlbHNlCisgICAgICAgICAgICByZXF1ZXN0LT5kZW55KCk7
CisgICAgfSk7CisjZWxzZQorICAgIFVOVVNFRF9QQVJBTShtZWRpYUtleVN5c3RlbUlEKTsKKyAg
ICBVTlVTRURfUEFSQU0oZnJhbWVJRCk7CisgICAgVU5VU0VEX1BBUkFNKHRvcExldmVsRG9jdW1l
bnRPcmlnaW5EYXRhKTsKKyAgICBVTlVTRURfUEFSQU0oa2V5U3lzdGVtKTsKKyNlbmRpZgorfQor
CiAjaWYgRU5BQkxFKERFVklDRV9PUklFTlRBVElPTikKIHZvaWQgV2ViUGFnZVByb3h5OjpzaG91
bGRBbGxvd0RldmljZU9yaWVudGF0aW9uQW5kTW90aW9uQWNjZXNzKEZyYW1lSWRlbnRpZmllciBm
cmFtZUlELCBGcmFtZUluZm9EYXRhJiYgZnJhbWVJbmZvLCBib29sIG1heVByb21wdCwgQ29tcGxl
dGlvbkhhbmRsZXI8dm9pZChEZXZpY2VPcmllbnRhdGlvbk9yTW90aW9uUGVybWlzc2lvblN0YXRl
KT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKQEAgLTgzMDEsNiArODMyMiwxNyBAQCB2b2lkIFdl
YlBhZ2VQcm94eTo6c2hvdWxkQWxsb3dEZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvbkFjY2VzcyhG
cmFtZUlkZW50aWZpZXIgZgogfQogI2VuZGlmCiAKKyNpZiBFTkFCTEUoRU5DUllQVEVEX01FRElB
KQorTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eSYgV2ViUGFnZVBy
b3h5OjptZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcigpCit7CisgICAgaWYg
KG1fbWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIpCisgICAgICAgIHJldHVy
biAqbV9tZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcjsKKworICAgIG1fbWVk
aWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIgPSBtYWtlVW5pcXVlPE1lZGlhS2V5
U3lzdGVtUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk+KCp0aGlzKTsKKyAgICByZXR1cm4g
Km1fbWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXI7Cit9CisjZW5kaWYKKwog
dm9pZCBXZWJQYWdlUHJveHk6OnJlcXVlc3ROb3RpZmljYXRpb25QZXJtaXNzaW9uKHVpbnQ2NF90
IHJlcXVlc3RJRCwgY29uc3QgU3RyaW5nJiBvcmlnaW5TdHJpbmcpCiB7CiAgICAgaWYgKCFpc1Jl
cXVlc3RJRFZhbGlkKHJlcXVlc3RJRCkpCkBAIC0xMDQyOCw2ICsxMDQ2MCwxMSBAQCB2b2lkIFdl
YlBhZ2VQcm94eTo6cmVxdWVzdFVzZXJNZWRpYVBlcm1pc3Npb25Gb3JTcGVlY2hSZWNvZ25pdGlv
bihGcmFtZUlkZW50aWZpZQogI2VuZGlmCiB9CiAKK3ZvaWQgV2ViUGFnZVByb3h5OjpyZXF1ZXN0
TWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uQnlEZWZhdWx0QWN0aW9uKGNvbnN0IFdlYkNvcmU6OlNl
Y3VyaXR5T3JpZ2luJiBvcmlnaW4sIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYgY29t
cGxldGlvbkhhbmRsZXIpCit7CisgICAgY29tcGxldGlvbkhhbmRsZXIoZmFsc2UpOworfQorCiAj
aWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKIAogV2ViQ29yZTo6Q2FwdHVyZVNvdXJjZU9yRXJyb3Ig
V2ViUGFnZVByb3h5OjpjcmVhdGVSZWFsdGltZU1lZGlhU291cmNlRm9yU3BlZWNoUmVjb2duaXRp
b24oKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lmgg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAppbmRleCBkMGVlNjc4MmNk
ZDhjNzA5Mjc0MTJjNDkyMjI3MGZiYjNmZWY1NjExLi4xYTE3NDViYzU0YWVhMGVhMjZmNzBlMjBi
NjYwYWZjNDI1ZGQ2MWU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQ
YWdlUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaApA
QCAtNDAsNiArNDAsNyBAQAogI2luY2x1ZGUgIkdlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3RN
YW5hZ2VyUHJveHkuaCIKICNpbmNsdWRlICJIaWRkZW5QYWdlVGhyb3R0bGluZ0F1dG9JbmNyZWFz
ZXNDb3VudGVyLmgiCiAjaW5jbHVkZSAiTGF5ZXJUcmVlQ29udGV4dC5oIgorI2luY2x1ZGUgIk1l
ZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuaCIKICNpbmNsdWRlICJN
ZWRpYVBsYXliYWNrU3RhdGUuaCIKICNpbmNsdWRlICJNZXNzYWdlU2VuZGVyLmgiCiAjaW5jbHVk
ZSAiTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuaCIKQEAgLTczLDgg
Kzc0LDggQEAKICNpbmNsdWRlICJXZWJQYWdlUHJveHlJZGVudGlmaWVyLmgiCiAjaW5jbHVkZSAi
V2ViUGFnZVByb3h5TWVzc2FnZXNSZXBsaWVzLmgiCiAjaW5jbHVkZSAiV2ViUGF5bWVudENvb3Jk
aW5hdG9yUHJveHkuaCIKLSNpbmNsdWRlICJXZWJQcmVmZXJlbmNlcy5oIgogI2luY2x1ZGUgIldl
YlBvcHVwTWVudVByb3h5LmgiCisjaW5jbHVkZSAiV2ViUHJlZmVyZW5jZXMuaCIKICNpbmNsdWRl
ICJXZWJVbmRvU3RlcElELmgiCiAjaW5jbHVkZSAiV2Vic2l0ZVBvbGljaWVzRGF0YS5oIgogI2lu
Y2x1ZGUgPFdlYkNvcmUvQWN0aXZpdHlTdGF0ZS5oPgpAQCAtMTgyMSw2ICsxODIyLDggQEAgcHVi
bGljOgogICAgIHZvaWQgcmVxdWVzdFNwZWVjaFJlY29nbml0aW9uUGVybWlzc2lvbkJ5RGVmYXVs
dEFjdGlvbihjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbiYsIENvbXBsZXRpb25IYW5kbGVy
PHZvaWQoYm9vbCk+JiYpOwogICAgIHZvaWQgcmVxdWVzdFVzZXJNZWRpYVBlcm1pc3Npb25Gb3JT
cGVlY2hSZWNvZ25pdGlvbihXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6
OlNlY3VyaXR5T3JpZ2luJiwgY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4mLCBDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmKTsKIAorICAgIHZvaWQgcmVxdWVzdE1lZGlhS2V5U3lz
dGVtUGVybWlzc2lvbkJ5RGVmYXVsdEFjdGlvbihjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdp
biYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYpOworCiAgICAgdm9pZCBzeW5jSWZN
b2NrRGV2aWNlc0VuYWJsZWRDaGFuZ2VkKCk7CiAKICNpZiBFTkFCTEUoQVBQX0hJR0hMSUdIVFMp
CkBAIC0xOTk3LDYgKzIwMDAsMTEgQEAgcHJpdmF0ZToKICAgICB2b2lkIGVudW1lcmF0ZU1lZGlh
RGV2aWNlc0ZvckZyYW1lKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6
U2VjdXJpdHlPcmlnaW5EYXRhJiB1c2VyTWVkaWFEb2N1bWVudE9yaWdpbkRhdGEsIGNvbnN0IFdl
YkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYgdG9wTGV2ZWxEb2N1bWVudE9yaWdpbkRhdGEsIENv
bXBsZXRpb25IYW5kbGVyPHZvaWQoY29uc3QgVmVjdG9yPFdlYkNvcmU6OkNhcHR1cmVEZXZpY2U+
JiwgY29uc3QgU3RyaW5nJik+JiYpOwogICAgIHZvaWQgYmVnaW5Nb25pdG9yaW5nQ2FwdHVyZURl
dmljZXMoKTsKIAorI2lmIEVOQUJMRShFTkNSWVBURURfTUVESUEpCisgICAgTWVkaWFLZXlTeXN0
ZW1QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eSYgbWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9u
UmVxdWVzdE1hbmFnZXIoKTsKKyNlbmRpZgorICAgIHZvaWQgcmVxdWVzdE1lZGlhS2V5U3lzdGVt
UGVybWlzc2lvbkZvckZyYW1lKHVpbnQ2NF90IG1lZGlhS2V5U3lzdGVtSUQsIFdlYkNvcmU6OkZy
YW1lSWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiB0b3BMZXZl
bERvY3VtZW50T3JpZ2luSWRlbnRpZmllciwgY29uc3QgU3RyaW5nJik7CisKICAgICB2b2lkIHJ1
bk1vZGFsKCk7CiAgICAgdm9pZCBub3RpZnlTY3JvbGxlclRodW1iSXNWaXNpYmxlSW5SZWN0KGNv
bnN0IFdlYkNvcmU6OkludFJlY3QmKTsKICAgICB2b2lkIHJlY29tbWVuZGVkU2Nyb2xsYmFyU3R5
bGVEaWRDaGFuZ2UoaW50MzJfdCBuZXdTdHlsZSk7CkBAIC0yNTA2LDYgKzI1MTQsMTAgQEAgcHJp
dmF0ZToKICAgICBzdGQ6OnVuaXF1ZV9wdHI8VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5h
Z2VyUHJveHk+IG1fdXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyOwogI2VuZGlmCiAK
KyNpZiBFTkFCTEUoRU5DUllQVEVEX01FRElBKQorICAgIHN0ZDo6dW5pcXVlX3B0cjxNZWRpYUtl
eVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5PiBtX21lZGlhS2V5U3lzdGVtUGVy
bWlzc2lvblJlcXVlc3RNYW5hZ2VyOworI2VuZGlmCisKICAgICBPcHRpb25TZXQ8V2ViQ29yZTo6
QWN0aXZpdHlTdGF0ZTo6RmxhZz4gbV9hY3Rpdml0eVN0YXRlOwogICAgIGJvb2wgbV92aWV3V2Fz
RXZlckluV2luZG93IHsgZmFsc2UgfTsKICNpZiBQTEFURk9STShNQUNDQVRBTFlTVCkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbiBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbgppbmRleCBm
NDAzNDY5OGEzZWNlYjU2ZDk3MzVlYmRkZDdjZDNjNDRiZTkyNjExLi44MTBhNmU0M2EwMDkxODA3
MTQxMDMxZjYyNTEwZjBkODE3ZjBiYjlhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluCkBAIC0yODAsNiArMjgwLDEwIEBAIG1lc3NhZ2Vz
IC0+IFdlYlBhZ2VQcm94eSB7CiAgICAgQmVnaW5Nb25pdG9yaW5nQ2FwdHVyZURldmljZXMoKQog
I2VuZGlmCiAKKyNpZiBFTkFCTEUoRU5DUllQVEVEX01FRElBKQorICAgIFJlcXVlc3RNZWRpYUtl
eVN5c3RlbVBlcm1pc3Npb25Gb3JGcmFtZSh1aW50NjRfdCB1c2VyTWVkaWFJRCwgV2ViQ29yZTo6
RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIHN0cnVjdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRh
dGEgdG9wTGV2ZWxEb2N1bWVudE9yaWdpbklkZW50aWZpZXIsIFN0cmluZyBrZXlTeXN0ZW0pCisj
ZW5kaWYKKwogICAgICMgTm90aWZpY2F0aW9uIG1lc3NhZ2VzCiAgICAgUmVxdWVzdE5vdGlmaWNh
dGlvblBlcm1pc3Npb24odWludDY0X3QgcmVxdWVzdElELCBTdHJpbmcgb3JpZ2luSWRlbnRpZmll
cikKICAgICBTaG93Tm90aWZpY2F0aW9uKFN0cmluZyB0aXRsZSwgU3RyaW5nIGJvZHksIFN0cmlu
ZyBpY29uVVJMLCBTdHJpbmcgdGFnLCBTdHJpbmcgbGFuZywgZW51bTp1aW50OF90IFdlYkNvcmU6
Ok5vdGlmaWNhdGlvbkRpcmVjdGlvbiBkaXIsIFN0cmluZyBvcmlnaW5JZGVudGlmaWVyLCB1aW50
NjRfdCBub3RpZmljYXRpb25JRCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCmluZGV4IDVhYmE5NmYzNjU3NmQyOGE5MjMzMTIyMmRjYTY3NTJjZWRj
OTI0MzYuLjcwODUwNDE3ZDE1ZWMyYzc5YzgwNDQzNjRlMzk5NDJmMWFhZTg5YWEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIv
U291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMTUyMCw2
ICsxNTIwLDEyIEBACiAJCTk5RTcxNEM1MUMxMjRBMDQwMDY2NUIzQSAvKiBfV0tBdXRvbWF0aW9u
RGVsZWdhdGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDk5RTcxNEMxMUMxMjQ5RTYwMDY2NUIzQSAvKiBfV0tBdXRvbWF0aW9uRGVsZWdhdGUuaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk5OUU3MTg5QTIx
Rjc5RDlFMDA1NUU5NzUgLyogX1dLVG91Y2hFdmVudEdlbmVyYXRvci5tbSBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk5RTcxODk2MjFGNzlEOUQwMDU1RTk3
NSAvKiBfV0tUb3VjaEV2ZW50R2VuZXJhdG9yLm1tICovOyB9OwogCQk5OUU3MTg5QzIxRjc5RDlF
MDA1NUU5NzUgLyogX1dLVG91Y2hFdmVudEdlbmVyYXRvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTlFNzE4OTgyMUY3OUQ5RTAwNTVFOTc1IC8qIF9X
S1RvdWNoRXZlbnRHZW5lcmF0b3IuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2
YXRlLCApOyB9OyB9OworCQk5QUNDMDdBRDI1QzgxMzJEMDBEQzYzODYgLyogTWVkaWFLZXlTeXN0
ZW1QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDlBQ0MwN0FDMjVDODEzMkQwMERDNjM4NiAvKiBNZWRpYUtleVN5
c3RlbVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlci5oICovOyB9OworCQk5QUNDMDdCMTI1QzgxNUQ4
MDBEQzYzODYgLyogTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdC5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOUFDQzA3QjAyNUM4MTVEODAwREM2
Mzg2IC8qIE1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3QuaCAqLzsgfTsKKwkJOUFDQzA3
QjMyNUM4MTVGMzAwREM2Mzg2IC8qIE1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RNYW5h
Z2VyUHJveHkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDlBQ0MwN0IyMjVDODE1RjMwMERDNjM4NiAvKiBNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1
ZXN0TWFuYWdlclByb3h5LmggKi87IH07CisJCTlBQ0MwN0I1MjVDODE2MEMwMERDNjM4NiAvKiBN
ZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0UHJveHkuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDlBQ0MwN0I0MjVDODE2MEIwMERDNjM4NiAvKiBN
ZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0UHJveHkuaCAqLzsgfTsKKwkJOUFDQzA3Qjcy
NUM4MUQzNDAwREM2Mzg2IC8qIFdlYk1lZGlhS2V5U3lzdGVtQ2xpZW50LmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5QUNDMDdCNjI1QzgxRDMzMDBEQzYz
ODYgLyogV2ViTWVkaWFLZXlTeXN0ZW1DbGllbnQuaCAqLzsgfTsKKwkJOUFDQzA3QjkyNUM4MjE4
NDAwREM2Mzg2IC8qIFdLTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uQ2FsbGJhY2suaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDlBQ0MwN0I4MjVDODIxODMw
MERDNjM4NiAvKiBXS01lZGlhS2V5U3lzdGVtUGVybWlzc2lvbkNhbGxiYWNrLmggKi87IHNldHRp
bmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJOUIwMkUwQ0IyMzVFQjk1
MzAwNDA0NEIyIC8qIF9XS1RleHRNYW5pcHVsYXRpb25EZWxlZ2F0ZS5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOUIwMkUwQzkyMzVFQjYyRDAwNDA0NEIy
IC8qIF9XS1RleHRNYW5pcHVsYXRpb25EZWxlZ2F0ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJV
VEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTlCMDJFMENDMjM1RUI5NTcwMDQwNDRCMiAvKiBf
V0tUZXh0TWFuaXB1bGF0aW9uSXRlbS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gOUIwMkUwQ0EyMzVFQjg4NDAwNDA0NEIyIC8qIF9XS1RleHRNYW5pcHVs
YXRpb25JdGVtLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsg
fTsKIAkJOUIwMkUwRDcyMzVGQzk0RjAwNDA0NEIyIC8qIF9XS1RleHRNYW5pcHVsYXRpb25Ub2tl
bi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOUIwMkUw
Q0QyMzVFQjk2NzAwNDA0NEIyIC8qIF9XS1RleHRNYW5pcHVsYXRpb25Ub2tlbi5oICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CkBAIC00ODY3LDYgKzQ4NzMs
MTIgQEAKIAkJOTlFNzE4OTYyMUY3OUQ5RDAwNTVFOTc1IC8qIF9XS1RvdWNoRXZlbnRHZW5lcmF0
b3IubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBfV0tUb3VjaEV2
ZW50R2VuZXJhdG9yLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5OUU3MTg5ODIx
Rjc5RDlFMDA1NUU5NzUgLyogX1dLVG91Y2hFdmVudEdlbmVyYXRvci5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBfV0tUb3VjaEV2ZW50R2VuZXJhdG9yLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTk5RjY0MkQyMUZBQkUzNzgwMDk2MjFFOSAvKiBDb29yZGluYXRl
U3lzdGVtLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENvb3JkaW5hdGVTeXN0
ZW0uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOUFDQzA3QUMyNUM4MTMyRDAwREM2
Mzg2IC8qIE1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IE1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RN
YW5hZ2VyLmg7IHBhdGggPSBFbmNyeXB0ZWRNZWRpYS9NZWRpYUtleVN5c3RlbVBlcm1pc3Npb25S
ZXF1ZXN0TWFuYWdlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5QUNDMDdCMDI1
QzgxNUQ4MDBEQzYzODYgLyogTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdC5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1
ZXN0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTlBQ0MwN0IyMjVDODE1RjMwMERD
NjM4NiAvKiBNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJl
cXVlc3RNYW5hZ2VyUHJveHkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOUFDQzA3
QjQyNUM4MTYwQjAwREM2Mzg2IC8qIE1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RQcm94
eS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBNZWRpYUtleVN5c3RlbVBlcm1p
c3Npb25SZXF1ZXN0UHJveHkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOUFDQzA3
QjYyNUM4MUQzMzAwREM2Mzg2IC8qIFdlYk1lZGlhS2V5U3lzdGVtQ2xpZW50LmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYk1lZGlhS2V5U3lzdGVtQ2xpZW50Lmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTlBQ0MwN0I4MjVDODIxODMwMERDNjM4NiAvKiBXS01l
ZGlhS2V5U3lzdGVtUGVybWlzc2lvbkNhbGxiYWNrLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IFdLTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uQ2FsbGJhY2suaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOUIwMkUwQzkyMzVFQjYyRDAwNDA0NEIyIC8qIF9XS1RleHRN
YW5pcHVsYXRpb25EZWxlZ2F0ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBfV0tUZXh0TWFuaXB1bGF0aW9u
RGVsZWdhdGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOUIwMkUwQ0EyMzVFQjg4
NDAwNDA0NEIyIC8qIF9XS1RleHRNYW5pcHVsYXRpb25JdGVtLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IF9X
S1RleHRNYW5pcHVsYXRpb25JdGVtLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTlC
MDJFMENEMjM1RUI5NjcwMDQwNDRCMiAvKiBfV0tUZXh0TWFuaXB1bGF0aW9uVG9rZW4uaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gX1dLVGV4dE1hbmlwdWxhdGlvblRva2VuLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CkBAIC05MzI5LDYgKzkzNDEsMTQgQEAKIAkJCXBhdGggPSBjb2NvYTsKIAkJCXNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7CiAJCX07CisJCTlBQ0MwN0E5MjVDODEyRTcwMERDNjM4NiAv
KiBFbmNyeXB0ZWRNZWRpYSAqLyA9IHsKKwkJCWlzYSA9IFBCWEdyb3VwOworCQkJY2hpbGRyZW4g
PSAoCisJCQkJOUFDQzA3QUMyNUM4MTMyRDAwREM2Mzg2IC8qIE1lZGlhS2V5U3lzdGVtUGVybWlz
c2lvblJlcXVlc3RNYW5hZ2VyLmggKi8sCisJCQkpOworCQkJbmFtZSA9IEVuY3J5cHRlZE1lZGlh
OworCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKKwkJfTsKIAkJQTE1Nzk5QUMyNTg0NDMzMTAw
NTI4MjM2IC8qIE1lZGlhRm9ybWF0UmVhZGVyICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJ
CQljaGlsZHJlbiA9ICgKQEAgLTk0NDcsNiArOTQ2Nyw3IEBACiAJCQkJNDFEMTI5RDgxRjNEMTAx
NDAwRDE1RTQ3IC8qIENhY2hlICovLAogCQkJCTdDNkU3MEY4MThCMkQ0N0UwMEYyNEUyRSAvKiBj
b2NvYSAqLywKIAkJCQk1MTJBOTc1NDE4MERGOTI3MDAzOUExNDkgLyogRGF0YWJhc2VzICovLAor
CQkJCTlBQ0MwN0E5MjVDODEyRTcwMERDNjM4NiAvKiBFbmNyeXB0ZWRNZWRpYSAqLywKIAkJCQlC
Q0FDQzQzQjE2QjI0QzVEMDBCNkUwOTIgLyogRW50cnlQb2ludCAqLywKIAkJCQlFMTcwODc2RDE2
RDZDQTcyMDBGOTkyMjYgLyogRmlsZUFQSSAqLywKIAkJCQlDRDczQkEzRDEzMUEyQTIxMDBFRURF
RDIgLyogRnVsbFNjcmVlbiAqLywKQEAgLTk1MTIsNiArOTUzMyw3IEBACiAJCQkJQkMwMzJENkEx
MEY0Mzc4RDAwNThDMTVBIC8qIFdlYkZyYW1lTG9hZGVyQ2xpZW50LmggKi8sCiAJCQkJQkMxQkUx
REYxMkQ1NEE0MTAwMDRBMjI4IC8qIFdlYkdlb2xvY2F0aW9uQ2xpZW50LmNwcCAqLywKIAkJCQlC
QzFCRTFERTEyRDU0QTQxMDAwNEEyMjggLyogV2ViR2VvbG9jYXRpb25DbGllbnQuaCAqLywKKwkJ
CQk5QUNDMDdCNjI1QzgxRDMzMDBEQzYzODYgLyogV2ViTWVkaWFLZXlTeXN0ZW1DbGllbnQuaCAq
LywKIAkJCQk1MTNGRkI4RTIwMTQ1OUMyMDAyNTk2RUEgLyogV2ViTWVzc2FnZVBvcnRDaGFubmVs
UHJvdmlkZXIuY3BwICovLAogCQkJCTUxM0ZGQjhGMjAxNDU5QzIwMDI1OTZFQSAvKiBXZWJNZXNz
YWdlUG9ydENoYW5uZWxQcm92aWRlci5oICovLAogCQkJCTMxMDk5OTcxMTQ2Qzc1OUIwMDI5REVC
OSAvKiBXZWJOb3RpZmljYXRpb25DbGllbnQuY3BwICovLApAQCAtOTY1MSw2ICs5NjczLDkgQEAK
IAkJCQk1Q0VBQkEyQjIzMzMyNTE0MDA3OTc3OTcgLyogTGVnYWN5R2xvYmFsU2V0dGluZ3MuY3Bw
ICovLAogCQkJCTVDRUFCQTJBMjMzMzI0NzcwMDc5Nzc5NyAvKiBMZWdhY3lHbG9iYWxTZXR0aW5n
cy5oICovLAogCQkJCTMxNjA3RjM4MTk2MjcwMDIwMDlCODdEQSAvKiBMZWdhY3lTZXNzaW9uU3Rh
dGVDb2RpbmcuaCAqLywKKwkJCQk5QUNDMDdCMDI1QzgxNUQ4MDBEQzYzODYgLyogTWVkaWFLZXlT
eXN0ZW1QZXJtaXNzaW9uUmVxdWVzdC5oICovLAorCQkJCTlBQ0MwN0IyMjVDODE1RjMwMERDNjM4
NiAvKiBNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmggKi8sCisJ
CQkJOUFDQzA3QjQyNUM4MTYwQjAwREM2Mzg2IC8qIE1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJl
cXVlc3RQcm94eS5oICovLAogCQkJCTkzNDI1ODk4MjU1QjUzNEIwMDU5RUVERCAvKiBNZWRpYVBl
cm1pc3Npb25VdGlsaXRpZXMuaCAqLywKIAkJCQlCQzZFREFBNTExMTI3MUM2MDBFNzY3OEIgLyog
UGFnZUNsaWVudC5oICovLAogCQkJCTFBQzc1Mzc5MTgzQTlGREEwMDcyQ0IxNSAvKiBQYWdlTG9h
ZFN0YXRlLmNwcCAqLywKQEAgLTk5NjMsNiArOTk4OCw3IEBACiAJCQkJNTFBOUUxMDgxMzE1Q0Qx
ODAwOUU3MDMxIC8qIFdLS2V5VmFsdWVTdG9yYWdlTWFuYWdlci5jcHAgKi8sCiAJCQkJNTFBOUUx
MDkxMzE1Q0QxODAwOUU3MDMxIC8qIFdLS2V5VmFsdWVTdG9yYWdlTWFuYWdlci5oICovLAogCQkJ
CTJENzkwQTlFMUFENzE2NDkwMEFCOTBCMyAvKiBXS0xheW91dE1vZGUuaCAqLywKKwkJCQk5QUND
MDdCODI1QzgyMTgzMDBEQzYzODYgLyogV0tNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25DYWxsYmFj
ay5oICovLAogCQkJCTVDQUJEQzg0MjJDNDBGQ0MwMDFFREU4RSAvKiBXS01lc3NhZ2VMaXN0ZW5l
ci5jcHAgKi8sCiAJCQkJNUNBQkRDODUyMkM0MEZDQzAwMUVERThFIC8qIFdLTWVzc2FnZUxpc3Rl
bmVyLmggKi8sCiAJCQkJQzExRTE2OTMyMTJCODdDNTAwOTg1RkY2IC8qIFdLTW9ja0Rpc3BsYXku
Y3BwICovLApAQCAtMTE2ODQsNiArMTE3MTAsMTAgQEAKIAkJCQlCQ0M1NkY3OTExNTk5NTdEMDAx
Q0NBRjkgLyogTWFjaFBvcnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTFBMjRCNUYzMTFGNTMxRTgw
MEMzODI2OSAvKiBNYWNoVXRpbGl0aWVzLmggaW4gSGVhZGVycyAqLywKIAkJCQlBMTU3OTlCRTI1
ODQ0MzMyMDA1MjgyMzYgLyogTWVkaWFGb3JtYXRSZWFkZXIuaCBpbiBIZWFkZXJzICovLAorCQkJ
CTlBQ0MwN0IxMjVDODE1RDgwMERDNjM4NiAvKiBNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1
ZXN0LmggaW4gSGVhZGVycyAqLywKKwkJCQk5QUNDMDdBRDI1QzgxMzJEMDBEQzYzODYgLyogTWVk
aWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIuaCBpbiBIZWFkZXJzICovLAorCQkJ
CTlBQ0MwN0IzMjVDODE1RjMwMERDNjM4NiAvKiBNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1
ZXN0TWFuYWdlclByb3h5LmggaW4gSGVhZGVycyAqLywKKwkJCQk5QUNDMDdCNTI1QzgxNjBDMDBE
QzYzODYgLyogTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdFByb3h5LmggaW4gSGVhZGVy
cyAqLywKIAkJCQk5MzQyNTg5QTI1NUI1MzVBMDA1OUVFREQgLyogTWVkaWFQZXJtaXNzaW9uVXRp
bGl0aWVzLmggaW4gSGVhZGVycyAqLywKIAkJCQkwN0UxOUVGQzIzRDQwMUYxMDA5NEZGQjQgLyog
TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlTWVzc2FnZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTA3
RTE5RUZEMjNENDAxRjEwMDk0RkZCNCAvKiBNZWRpYVBsYXllclByaXZhdGVSZW1vdGVNZXNzYWdl
c1JlcGxpZXMuaCBpbiBIZWFkZXJzICovLApAQCAtMTE3MzcsNiArMTE3NjcsNyBAQAogCQkJCTgz
OTkwMjAzMUJFOUEwMkIwMDBGMzY1MyAvKiBOZXR3b3JrTG9hZC5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJODNENDU0RDcxQkU5RDNDNDAwNkM5M0JEIC8qIE5ldHdvcmtMb2FkQ2xpZW50LmggaW4gSGVh
ZGVycyAqLywKIAkJCQk4MzkxNDk2NTFCRUE4Mzg1MDBEMkQ5NTMgLyogTmV0d29ya0xvYWRQYXJh
bWV0ZXJzLmggaW4gSGVhZGVycyAqLywKKwkJCQlFNDdGQzhBMDI1QjgzMzFDMDA1NDk1RkMgLyog
TmV0d29ya0xvYWRTY2hlZHVsZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTUxNzk1NTZBMTYyODc2
RjMwMEZBNDNCNiAvKiBOZXR3b3JrUHJvY2Vzcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTE3Q0Yw
RTQxNjNBNDg2QzAwQzI5NTBFIC8qIE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbk1lc3NhZ2VzLmgg
aW4gSGVhZGVycyAqLywKIAkJCQk1QzE0MjZFRDFDMjNGODA5MDBENDExODMgLyogTmV0d29ya1By
b2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaCBpbiBIZWFkZXJzICovLApAQCAtMTIxMDAsNyArMTIx
MzEsNiBAQAogCQkJCTkzQTg4QjMzMUJDNkU5Q0QwMEFCQTVDMiAvKiBXZWJIaXRUZXN0UmVzdWx0
RGF0YS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRjQ0REZFQjIxRTlFNzUyRjAwMzhEMTk2IC8qIFdl
Ykljb25VdGlsaXRpZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTkzMjYxMTYxMjE0MDU0RjQwMDA4
MDZFNyAvKiBXZWJJREJDb25uZWN0aW9uVG9DbGllbnQuaCBpbiBIZWFkZXJzICovLAotCQkJCUU0
N0ZDOEEwMjVCODMzMUMwMDU0OTVGQyAvKiBOZXR3b3JrTG9hZFNjaGVkdWxlci5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJNTE0MTI5OTQxQzY0MjhCQjAwNTlFNzE0IC8qIFdlYklEQkNvbm5lY3Rpb25U
b1NlcnZlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTEwNTIzNzQxQzczRDM4QjAwNzk5M0NCIC8q
IFdlYklEQkNvbm5lY3Rpb25Ub1NlcnZlck1lc3NhZ2VzLmggaW4gSGVhZGVycyAqLywKIAkJCQk5
MzNFODM1NTIzQTA3QzA2MDBERUYyODkgLyogV2ViSURCU2VydmVyLmggaW4gSGVhZGVycyAqLywK
QEAgLTEyMTI2LDYgKzEyMTU2LDcgQEAKIAkJCQlCQzlCQTUwNTE2OTdDNDUzMDBFNDQ2MTYgLyog
V2ViS2l0MkluaXRpYWxpemUuaCBpbiBIZWFkZXJzICovLAogCQkJCTFBNjI4MEM3MTkxOTk1MEMw
MDZBRDlGOSAvKiBXZWJLaXRQcml2YXRlLmggaW4gSGVhZGVycyAqLywKIAkJCQlDRDAwM0E1MzE5
RDQ5QjVEMDA1QUJDRTAgLyogV2ViTWVkaWFLZXlTdG9yYWdlTWFuYWdlci5oIGluIEhlYWRlcnMg
Ki8sCisJCQkJOUFDQzA3QjcyNUM4MUQzNDAwREM2Mzg2IC8qIFdlYk1lZGlhS2V5U3lzdGVtQ2xp
ZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQk5QjVCRUMyNjI0MDBGNEE5MDA3MEM2RUYgLyogV2Vi
TWVkaWFTdHJhdGVneS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMkQzRUY0NDMxOTE3NjQ2MzAwMDM0
MTg0IC8qIFdlYk1lbW9yeVByZXNzdXJlSGFuZGxlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTA5
ODU0RUQxMkJDNEUxODAwMEFEMDgwIC8qIFdlYk1lbW9yeVNhbXBsZXIuaCBpbiBIZWFkZXJzICov
LApAQCAtMTI0MzQsNiArMTI0NjUsNyBAQAogCQkJCTJENzkwQTlGMUFENzE2NDkwMEFCOTBCMyAv
KiBXS0xheW91dE1vZGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTVDRTkxMjE0MjI5M0MyODAwMDVC
RUM3OCAvKiBXS01haW4uaCBpbiBIZWFkZXJzICovLAogCQkJCUExNTc5QjI4MjU4NDkwRTUwMDUy
ODIzNiAvKiBXS01lZGlhRm9ybWF0UmVhZGVyLmggaW4gSGVhZGVycyAqLywKKwkJCQk5QUNDMDdC
OTI1QzgyMTg0MDBEQzYzODYgLyogV0tNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25DYWxsYmFjay5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJNDk5MTdEQTcyNTJENjQ5RTAwNTAzMTNGIC8qIFdLTWVkaWFQ
bGF5YmFja1N0YXRlLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQUI0MEVFNjFCRjY3N0UzMDBCQTgx
QkUgLyogV0tNZW51SXRlbUlkZW50aWZpZXJzUHJpdmF0ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
NUNBQkRDODYyMkM0MEZERTAwMUVERThFIC8qIFdLTWVzc2FnZUxpc3RlbmVyLmggaW4gSGVhZGVy
cyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9FbmNyeXB0ZWRNZWRp
YS9NZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlci5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvRW5jcnlwdGVkTWVkaWEvTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVx
dWVzdE1hbmFnZXIuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmEyNDk4ODJkMDdhOTllNzVkMDkxYmZiNzJhZWVj
ODMxNjQ4NTc3MzgKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
RW5jcnlwdGVkTWVkaWEvTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIuY3Bw
CkBAIC0wLDAgKzEsMTMyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIElnYWxpYSBTLkwu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJNZWRpYUtleVN5c3Rl
bVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlci5oIgorCisjaWYgRU5BQkxFKEVOQ1JZUFRFRF9NRURJ
QSkKKworI2luY2x1ZGUgIkxvZ2dpbmcuaCIKKyNpbmNsdWRlICJXZWJDb3JlQXJndW1lbnRDb2Rl
cnMuaCIKKyNpbmNsdWRlICJXZWJGcmFtZS5oIgorI2luY2x1ZGUgIldlYlBhZ2UuaCIKKyNpbmNs
dWRlICJXZWJQYWdlUHJveHlNZXNzYWdlcy5oIgorI2luY2x1ZGUgPFdlYkNvcmUvRG9jdW1lbnQu
aD4KKyNpbmNsdWRlIDxXZWJDb3JlL0ZyYW1lLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9GcmFtZUxv
YWRlci5oPgorI2luY2x1ZGUgPFdlYkNvcmUvU2VjdXJpdHlPcmlnaW4uaD4KKyNpbmNsdWRlIDxX
ZWJDb3JlL1NlY3VyaXR5T3JpZ2luRGF0YS5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKK3VzaW5n
IG5hbWVzcGFjZSBXZWJDb3JlOworCitNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0TWFu
YWdlcjo6TWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIoV2ViUGFnZSYgcGFn
ZSkKKyAgICA6IG1fcGFnZShwYWdlKQoreworfQorCit2b2lkIE1lZGlhS2V5U3lzdGVtUGVybWlz
c2lvblJlcXVlc3RNYW5hZ2VyOjpzdGFydE1lZGlhS2V5U3lzdGVtUmVxdWVzdChNZWRpYUtleVN5
c3RlbVJlcXVlc3QmIHJlcXVlc3QpCit7CisgICAgRG9jdW1lbnQqIGRvY3VtZW50ID0gcmVxdWVz
dC5kb2N1bWVudCgpOworICAgIEZyYW1lKiBmcmFtZSA9IGRvY3VtZW50ID8gZG9jdW1lbnQtPmZy
YW1lKCkgOiBudWxscHRyOworCisgICAgaWYgKCFmcmFtZSB8fCAhZG9jdW1lbnQtPnBhZ2UoKSkg
eworICAgICAgICByZXF1ZXN0LmRlbnkoZW1wdHlTdHJpbmcoKSk7CisgICAgICAgIHJldHVybjsK
KyAgICB9CisKKyAgICBpZiAoZG9jdW1lbnQtPnBhZ2UoKS0+Y2FuU3RhcnRNZWRpYSgpKSB7Cisg
ICAgICAgIHNlbmRNZWRpYUtleVN5c3RlbVJlcXVlc3QocmVxdWVzdCk7CisgICAgICAgIHJldHVy
bjsKKyAgICB9CisKKyAgICBhdXRvJiBwZW5kaW5nUmVxdWVzdHMgPSBtX3BlbmRpbmdNZWRpYUtl
eVN5c3RlbVJlcXVlc3RzLmFkZChkb2N1bWVudCwgVmVjdG9yPFJlZjxNZWRpYUtleVN5c3RlbVJl
cXVlc3Q+PigpKS5pdGVyYXRvci0+dmFsdWU7CisgICAgcGVuZGluZ1JlcXVlc3RzLmFwcGVuZChy
ZXF1ZXN0KTsKK30KKwordm9pZCBNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdl
cjo6c2VuZE1lZGlhS2V5U3lzdGVtUmVxdWVzdChNZWRpYUtleVN5c3RlbVJlcXVlc3QmIHVzZXJS
ZXF1ZXN0KQoreworICAgIGF1dG8qIGZyYW1lID0gdXNlclJlcXVlc3QuZG9jdW1lbnQoKSA/IHVz
ZXJSZXF1ZXN0LmRvY3VtZW50KCktPmZyYW1lKCkgOiBudWxscHRyOworICAgIGlmICghZnJhbWUp
IHsKKyAgICAgICAgdXNlclJlcXVlc3QuZGVueShlbXB0eVN0cmluZygpKTsKKyAgICAgICAgcmV0
dXJuOworICAgIH0KKworICAgIG1fb25nb2luZ01lZGlhS2V5U3lzdGVtUmVxdWVzdHMuYWRkKHVz
ZXJSZXF1ZXN0LmlkZW50aWZpZXIoKSwgbWFrZVJlZih1c2VyUmVxdWVzdCkpOworCisgICAgV2Vi
RnJhbWUqIHdlYkZyYW1lID0gV2ViRnJhbWU6OmZyb21Db3JlRnJhbWUoKmZyYW1lKTsKKyAgICBB
U1NFUlQod2ViRnJhbWUpOworCisgICAgYXV0byogdG9wTGV2ZWxEb2N1bWVudE9yaWdpbiA9IHVz
ZXJSZXF1ZXN0LnRvcExldmVsRG9jdW1lbnRPcmlnaW4oKTsKKyAgICBtX3BhZ2Uuc2VuZChNZXNz
YWdlczo6V2ViUGFnZVByb3h5OjpSZXF1ZXN0TWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uRm9yRnJh
bWUodXNlclJlcXVlc3QuaWRlbnRpZmllcigpLnRvVUludDY0KCksIHdlYkZyYW1lLT5mcmFtZUlE
KCksIHRvcExldmVsRG9jdW1lbnRPcmlnaW4tPmRhdGEoKSwgdXNlclJlcXVlc3Qua2V5U3lzdGVt
KCkpKTsKK30KKwordm9pZCBNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcjo6
Y2FuY2VsTWVkaWFLZXlTeXN0ZW1SZXF1ZXN0KE1lZGlhS2V5U3lzdGVtUmVxdWVzdCYgcmVxdWVz
dCkKK3sKKyAgICBpZiAoYXV0byByZW1vdmVkUmVxdWVzdCA9IG1fb25nb2luZ01lZGlhS2V5U3lz
dGVtUmVxdWVzdHMudGFrZShyZXF1ZXN0LmlkZW50aWZpZXIoKSkpCisgICAgICAgIHJldHVybjsK
KworICAgIGF1dG8qIGRvY3VtZW50ID0gcmVxdWVzdC5kb2N1bWVudCgpOworICAgIGlmICghZG9j
dW1lbnQpCisgICAgICAgIHJldHVybjsKKworICAgIGF1dG8gaXRlcmF0b3IgPSBtX3BlbmRpbmdN
ZWRpYUtleVN5c3RlbVJlcXVlc3RzLmZpbmQoZG9jdW1lbnQpOworICAgIGlmIChpdGVyYXRvciA9
PSBtX3BlbmRpbmdNZWRpYUtleVN5c3RlbVJlcXVlc3RzLmVuZCgpKQorICAgICAgICByZXR1cm47
CisKKyAgICBhdXRvJiBwZW5kaW5nUmVxdWVzdHMgPSBpdGVyYXRvci0+dmFsdWU7CisgICAgcGVu
ZGluZ1JlcXVlc3RzLnJlbW92ZUZpcnN0TWF0Y2hpbmcoWyZyZXF1ZXN0XShhdXRvJiBpdGVtKSB7
CisgICAgICAgIHJldHVybiAmcmVxdWVzdCA9PSBpdGVtLnB0cigpOworICAgIH0pOworCisgICAg
aWYgKCFwZW5kaW5nUmVxdWVzdHMuaXNFbXB0eSgpKQorICAgICAgICByZXR1cm47CisKKyAgICBt
X3BlbmRpbmdNZWRpYUtleVN5c3RlbVJlcXVlc3RzLnJlbW92ZShpdGVyYXRvcik7Cit9CisKK3Zv
aWQgTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXI6Om1lZGlhS2V5U3lzdGVt
V2FzR3JhbnRlZCh1aW50NjRfdCByZXF1ZXN0SUQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4m
JiBjb21wbGV0aW9uSGFuZGxlcikKK3sKKyAgICBhdXRvIHJlcXVlc3QgPSBtX29uZ29pbmdNZWRp
YUtleVN5c3RlbVJlcXVlc3RzLnRha2UobWFrZU9iamVjdElkZW50aWZpZXI8TWVkaWFLZXlTeXN0
ZW1SZXF1ZXN0SWRlbnRpZmllclR5cGU+KHJlcXVlc3RJRCkpOworICAgIGlmICghcmVxdWVzdCkg
eworICAgICAgICBjb21wbGV0aW9uSGFuZGxlcigpOworICAgICAgICByZXR1cm47CisgICAgfQor
CisgICAgcmVxdWVzdC0+YWxsb3coV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOworfQorCit2
b2lkIE1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyOjptZWRpYUtleVN5c3Rl
bVdhc0RlbmllZCh1aW50NjRfdCByZXF1ZXN0SUQsIFN0cmluZyYmIG1lc3NhZ2UpCit7CisgICAg
YXV0byByZXF1ZXN0ID0gbV9vbmdvaW5nTWVkaWFLZXlTeXN0ZW1SZXF1ZXN0cy50YWtlKG1ha2VP
YmplY3RJZGVudGlmaWVyPE1lZGlhS2V5U3lzdGVtUmVxdWVzdElkZW50aWZpZXJUeXBlPihyZXF1
ZXN0SUQpKTsKKyAgICBpZiAoIXJlcXVlc3QpCisgICAgICAgIHJldHVybjsKKworICAgIHJlcXVl
c3QtPmRlbnkoV1RGTW92ZShtZXNzYWdlKSk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAor
CisjZW5kaWYgLy8gRU5BQkxFKEVOQ1JZUFRFRF9NRURJQSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9FbmNyeXB0ZWRNZWRpYS9NZWRpYUtleVN5c3RlbVBlcm1pc3Npb25S
ZXF1ZXN0TWFuYWdlci5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0VuY3J5cHRlZE1lZGlh
L01lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyLmgKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODY5
NTVmYjlkZWQ3MTE2MWNhZGY0YTIzNjkwMmIyYzU0MjI1NjlhNgotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9FbmNyeXB0ZWRNZWRpYS9NZWRpYUtleVN5c3RlbVBl
cm1pc3Npb25SZXF1ZXN0TWFuYWdlci5oCkBAIC0wLDAgKzEsNjMgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMjEgSWdhbGlhIFMuTC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisg
KiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICog
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBF
TkFCTEUoRU5DUllQVEVEX01FRElBKQorCisjaW5jbHVkZSAiU2FuZGJveEV4dGVuc2lvbi5oIgor
I2luY2x1ZGUgPFdlYkNvcmUvTWVkaWFLZXlTeXN0ZW1DbGllbnQuaD4KKyNpbmNsdWRlIDxXZWJD
b3JlL01lZGlhS2V5U3lzdGVtUmVxdWVzdC5oPgorI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+Cisj
aW5jbHVkZSA8d3RmL1JlZi5oPgorI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KKworbmFtZXNwYWNl
IFdlYktpdCB7CisKK2NsYXNzIFdlYlBhZ2U7CisKK2NsYXNzIE1lZGlhS2V5U3lzdGVtUGVybWlz
c2lvblJlcXVlc3RNYW5hZ2VyIHsKKyAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKK3B1Ymxp
YzoKKyAgICBleHBsaWNpdCBNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcihX
ZWJQYWdlJik7CisgICAgfk1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyKCkg
PSBkZWZhdWx0OworCisgICAgdm9pZCBzdGFydE1lZGlhS2V5U3lzdGVtUmVxdWVzdChXZWJDb3Jl
OjpNZWRpYUtleVN5c3RlbVJlcXVlc3QmKTsKKyAgICB2b2lkIGNhbmNlbE1lZGlhS2V5U3lzdGVt
UmVxdWVzdChXZWJDb3JlOjpNZWRpYUtleVN5c3RlbVJlcXVlc3QmKTsKKyAgICB2b2lkIG1lZGlh
S2V5U3lzdGVtV2FzR3JhbnRlZCh1aW50NjRfdCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYm
KTsKKyAgICB2b2lkIG1lZGlhS2V5U3lzdGVtV2FzRGVuaWVkKHVpbnQ2NF90LCBTdHJpbmcmJik7
CisKK3ByaXZhdGU6CisgICAgdm9pZCBzZW5kTWVkaWFLZXlTeXN0ZW1SZXF1ZXN0KFdlYkNvcmU6
Ok1lZGlhS2V5U3lzdGVtUmVxdWVzdCYpOworCisgICAgV2ViUGFnZSYgbV9wYWdlOworCisgICAg
SGFzaE1hcDxXZWJDb3JlOjpNZWRpYUtleVN5c3RlbVJlcXVlc3RJZGVudGlmaWVyLCBSZWY8V2Vi
Q29yZTo6TWVkaWFLZXlTeXN0ZW1SZXF1ZXN0Pj4gbV9vbmdvaW5nTWVkaWFLZXlTeXN0ZW1SZXF1
ZXN0czsKKyAgICBIYXNoTWFwPFJlZlB0cjxXZWJDb3JlOjpEb2N1bWVudD4sIFZlY3RvcjxSZWY8
V2ViQ29yZTo6TWVkaWFLZXlTeXN0ZW1SZXF1ZXN0Pj4+IG1fcGVuZGluZ01lZGlhS2V5U3lzdGVt
UmVxdWVzdHM7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIEVOQUJM
RShNRURJQV9TVFJFQU0pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvV2ViTWVkaWFLZXlTeXN0ZW1DbGllbnQuY3BwIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYk1lZGlhS2V5U3lzdGVtQ2xpZW50LmNwcApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5jZDJiOGE1YmQzOWQwMzE3YTQ2ZmEzMWI4NDYxOTYzNTdjN2JmMTE4Ci0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYk1l
ZGlhS2V5U3lzdGVtQ2xpZW50LmNwcApAQCAtMCwwICsxLDYxIEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDIxIElnYWxpYSBTLkwuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICog
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNp
bmNsdWRlICJXZWJNZWRpYUtleVN5c3RlbUNsaWVudC5oIgorCisjaWYgRU5BQkxFKEVOQ1JZUFRF
RF9NRURJQSkKKworI2luY2x1ZGUgIk1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RNYW5h
Z2VyLmgiCisjaW5jbHVkZSAiV2ViUGFnZS5oIgorI2luY2x1ZGUgPFdlYkNvcmUvTWVkaWFLZXlT
eXN0ZW1Db250cm9sbGVyLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9NZWRpYUtleVN5c3RlbVJlcXVl
c3QuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7Cit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKKwor
V2ViTWVkaWFLZXlTeXN0ZW1DbGllbnQ6OldlYk1lZGlhS2V5U3lzdGVtQ2xpZW50KFdlYlBhZ2Um
IHBhZ2UpCisgICAgOiBtX3BhZ2UocGFnZSkKK3sKK30KKwordm9pZCBXZWJNZWRpYUtleVN5c3Rl
bUNsaWVudDo6cGFnZURlc3Ryb3llZCgpCit7CisgICAgZGVsZXRlIHRoaXM7Cit9CisKK3ZvaWQg
V2ViTWVkaWFLZXlTeXN0ZW1DbGllbnQ6OnJlcXVlc3RNZWRpYUtleVN5c3RlbShNZWRpYUtleVN5
c3RlbVJlcXVlc3QmIHJlcXVlc3QpCit7CisgICAgbV9wYWdlLm1lZGlhS2V5U3lzdGVtUGVybWlz
c2lvblJlcXVlc3RNYW5hZ2VyKCkuc3RhcnRNZWRpYUtleVN5c3RlbVJlcXVlc3QocmVxdWVzdCk7
Cit9CisKK3ZvaWQgV2ViTWVkaWFLZXlTeXN0ZW1DbGllbnQ6OmNhbmNlbE1lZGlhS2V5U3lzdGVt
UmVxdWVzdChNZWRpYUtleVN5c3RlbVJlcXVlc3QmIHJlcXVlc3QpCit7CisgICAgbV9wYWdlLm1l
ZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyKCkuY2FuY2VsTWVkaWFLZXlTeXN0
ZW1SZXF1ZXN0KHJlcXVlc3QpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQ7CisKKyNlbmRp
ZiAvLyBFTkFCTEUoRU5DUllQVEVEX01FRElBKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYk1lZGlhS2V5U3lzdGVtQ2xpZW50LmggYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViTWVkaWFLZXlTeXN0ZW1DbGll
bnQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi5mNDgwMzJmOGI5YWE2MGFmYjkxOGUwNDNmNTQ4MTFmZmIzMjI3Nzg2
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L1dlYk1lZGlhS2V5U3lzdGVtQ2xpZW50LmgKQEAgLTAsMCArMSw1MyBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAyMSBJZ2FsaWEgUy5MLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElT
JycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JT
CisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisg
KiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAq
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKwor
I2lmIEVOQUJMRShFTkNSWVBURURfTUVESUEpCisKKyNpbmNsdWRlIDxXZWJDb3JlL01lZGlhS2V5
U3lzdGVtQ2xpZW50Lmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBXZWJQYWdlOwor
CitjbGFzcyBXZWJNZWRpYUtleVN5c3RlbUNsaWVudCA6IHB1YmxpYyBXZWJDb3JlOjpNZWRpYUtl
eVN5c3RlbUNsaWVudCB7CisgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CitwdWJsaWM6Cisg
ICAgV2ViTWVkaWFLZXlTeXN0ZW1DbGllbnQoV2ViUGFnZSYpOworICAgIH5XZWJNZWRpYUtleVN5
c3RlbUNsaWVudCgpIHsgfQorCitwcml2YXRlOgorICAgIHZvaWQgcGFnZURlc3Ryb3llZCgpIG92
ZXJyaWRlOworCisgICAgdm9pZCByZXF1ZXN0TWVkaWFLZXlTeXN0ZW0oV2ViQ29yZTo6TWVkaWFL
ZXlTeXN0ZW1SZXF1ZXN0Jikgb3ZlcnJpZGU7CisgICAgdm9pZCBjYW5jZWxNZWRpYUtleVN5c3Rl
bVJlcXVlc3QoV2ViQ29yZTo6TWVkaWFLZXlTeXN0ZW1SZXF1ZXN0Jikgb3ZlcnJpZGU7CisKKyAg
ICBXZWJQYWdlJiBtX3BhZ2U7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRp
ZiAvLyBFTkFCTEUoRU5DUllQVEVEX01FRElBKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViUGFnZS9XZWJQYWdlLmNwcAppbmRleCBlNzAyOTJjNDRkYzM3NTRmZjJlY2I2OTYzZDY4YTA1
M2ZmMDE4Zjk3Li43ZmJkOGIzOGY5NjAxYWY1ZDNjNTgwOWUxNmJmZTQ5YjQ2ZTVjM2RhIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcApAQCAtNDYsNiAr
NDYsNyBAQAogI2luY2x1ZGUgIkxpYldlYlJUQ1Byb3ZpZGVyLmgiCiAjaW5jbHVkZSAiTG9hZFBh
cmFtZXRlcnMuaCIKICNpbmNsdWRlICJMb2dnaW5nLmgiCisjaW5jbHVkZSAiTWVkaWFLZXlTeXN0
ZW1QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIuaCIKICNpbmNsdWRlICJNZWRpYVBsYXliYWNrU3Rh
dGUuaCIKICNpbmNsdWRlICJNZWRpYVJlY29yZGVyUHJvdmlkZXIuaCIKICNpbmNsdWRlICJOZXRz
Y2FwZVBsdWdpbi5oIgpAQCAtMTA0LDYgKzEwNSw3IEBACiAjaW5jbHVkZSAiV2ViS2V5Ym9hcmRF
dmVudC5oIgogI2luY2x1ZGUgIldlYkxvYWRlclN0cmF0ZWd5LmgiCiAjaW5jbHVkZSAiV2ViTWVk
aWFLZXlTdG9yYWdlTWFuYWdlci5oIgorI2luY2x1ZGUgIldlYk1lZGlhS2V5U3lzdGVtQ2xpZW50
LmgiCiAjaW5jbHVkZSAiV2ViTWVkaWFTdHJhdGVneS5oIgogI2luY2x1ZGUgIldlYk1vdXNlRXZl
bnQuaCIKICNpbmNsdWRlICJXZWJOb3RpZmljYXRpb25DbGllbnQuaCIKQEAgLTQ2OSw2ICs0NzEs
OSBAQCBXZWJQYWdlOjpXZWJQYWdlKFBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgV2ViUGFnZUNyZWF0
aW9uUGFyYW1ldGVycyYmIHBhcmFtZXRlcnMpCiAjZW5kaWYKICNpZiBFTkFCTEUoTUVESUFfU1RS
RUFNKQogICAgICwgbV91c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIgeyBtYWtlVW5p
cXVlUmVmPFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcj4oKnRoaXMpIH0KKyNlbmRp
ZgorI2lmIEVOQUJMRShFTkNSWVBURURfTUVESUEpCisgICAgLCBtX21lZGlhS2V5U3lzdGVtUGVy
bWlzc2lvblJlcXVlc3RNYW5hZ2VyIHsgbWFrZVVuaXF1ZVJlZjxNZWRpYUtleVN5c3RlbVBlcm1p
c3Npb25SZXF1ZXN0TWFuYWdlcj4oKnRoaXMpIH0KICNlbmRpZgogICAgICwgbV9wYWdlU2Nyb2xs
ZWRIeXN0ZXJlc2lzKFt0aGlzXShQQUw6Okh5c3RlcmVzaXNTdGF0ZSBzdGF0ZSkgeyBpZiAoc3Rh
dGUgPT0gUEFMOjpIeXN0ZXJlc2lzU3RhdGU6OlN0b3BwZWQpIHBhZ2VTdG9wcGVkU2Nyb2xsaW5n
KCk7IH0sIHBhZ2VTY3JvbGxIeXN0ZXJlc2lzRHVyYXRpb24pCiAgICAgLCBtX2NhblJ1bkJlZm9y
ZVVubG9hZENvbmZpcm1QYW5lbChwYXJhbWV0ZXJzLmNhblJ1bkJlZm9yZVVubG9hZENvbmZpcm1Q
YW5lbCkKQEAgLTY1MCw2ICs2NTUsOSBAQCBXZWJQYWdlOjpXZWJQYWdlKFBhZ2VJZGVudGlmaWVy
IHBhZ2VJRCwgV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycyYmIHBhcmFtZXRlcnMpCiAjaWYgRU5B
QkxFKE1FRElBX1NUUkVBTSkKICAgICBXZWJDb3JlOjpwcm92aWRlVXNlck1lZGlhVG8obV9wYWdl
LmdldCgpLCBuZXcgV2ViVXNlck1lZGlhQ2xpZW50KCp0aGlzKSk7CiAjZW5kaWYKKyNpZiBFTkFC
TEUoRU5DUllQVEVEX01FRElBKQorICAgIFdlYkNvcmU6OnByb3ZpZGVNZWRpYUtleVN5c3RlbVRv
KG1fcGFnZS5nZXQoKSwgbmV3IFdlYk1lZGlhS2V5U3lzdGVtQ2xpZW50KCp0aGlzKSk7CisjZW5k
aWYKIAogICAgIG1fcGFnZS0+c2V0Q29udHJvbGxlZEJ5QXV0b21hdGlvbihwYXJhbWV0ZXJzLmNv
bnRyb2xsZWRCeUF1dG9tYXRpb24pOwogICAgIG1fcGFnZS0+c2V0SGFzUmVzb3VyY2VMb2FkQ2xp
ZW50KHBhcmFtZXRlcnMuaGFzUmVzb3VyY2VMb2FkQ2xpZW50KTsKQEAgLTQ1MjMsNiArNDUzMSwx
OCBAQCB2b2lkIFdlYlBhZ2U6OmNhcHR1cmVEZXZpY2VzQ2hhbmdlZCgpCiAKICNlbmRpZgogCisj
aWYgRU5BQkxFKEVOQ1JZUFRFRF9NRURJQSkKK3ZvaWQgV2ViUGFnZTo6bWVkaWFLZXlTeXN0ZW1X
YXNHcmFudGVkKHVpbnQ2NF90IG1lZGlhS2V5U3lzdGVtSUQsIENvbXBsZXRpb25IYW5kbGVyPHZv
aWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3sKKyAgICBtX21lZGlhS2V5U3lzdGVtUGVybWlz
c2lvblJlcXVlc3RNYW5hZ2VyLT5tZWRpYUtleVN5c3RlbVdhc0dyYW50ZWQobWVkaWFLZXlTeXN0
ZW1JRCwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOworfQorCit2b2lkIFdlYlBhZ2U6Om1l
ZGlhS2V5U3lzdGVtV2FzRGVuaWVkKHVpbnQ2NF90IG1lZGlhS2V5U3lzdGVtSUQsIFN0cmluZyYm
IG1lc3NhZ2UpCit7CisgICAgbV9tZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdl
ci0+bWVkaWFLZXlTeXN0ZW1XYXNEZW5pZWQobWVkaWFLZXlTeXN0ZW1JRCwgV1RGTW92ZShtZXNz
YWdlKSk7Cit9CisjZW5kaWYKKwogI2lmICFQTEFURk9STShJT1NfRkFNSUxZKQogdm9pZCBXZWJQ
YWdlOjphZHZhbmNlVG9OZXh0TWlzc3BlbGxpbmcoYm9vbCBzdGFydEJlZm9yZVNlbGVjdGlvbikK
IHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2Uu
aCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAppbmRleCBjYmY0
OWU2NWQ3NWU1YmY2ZmI5ZGIwMjExOGMwZjZiZDQ4YjQ5ZDJlLi5lYzk0NTliYTg0YjhlYWVkNjk2
NmJlZjUyNzlmOWVmYjQwMzA3ZDcwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViUGFnZS9XZWJQYWdlLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBh
Z2UvV2ViUGFnZS5oCkBAIC0yNDcsNiArMjQ3LDcgQEAgY2xhc3MgR2FtZXBhZERhdGE7CiBjbGFz
cyBHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcjsKIGNsYXNzIExheWVySG9zdGlu
Z0NvbnRleHQ7CiBjbGFzcyBNZWRpYURldmljZVNhbmRib3hFeHRlbnNpb25zOworY2xhc3MgTWVk
aWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXI7CiBjbGFzcyBOb3RpZmljYXRpb25Q
ZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXI7CiBjbGFzcyBQREZQbHVnaW47CiBjbGFzcyBQYWdlQmFu
bmVyOwpAQCAtNjczLDYgKzY3NCwxMCBAQCBwdWJsaWM6CiAgICAgdm9pZCBjYXB0dXJlRGV2aWNl
c0NoYW5nZWQoKTsKICNlbmRpZgogCisjaWYgRU5BQkxFKEVOQ1JZUFRFRF9NRURJQSkKKyAgICBN
ZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlciYgbWVkaWFLZXlTeXN0ZW1QZXJt
aXNzaW9uUmVxdWVzdE1hbmFnZXIoKSB7IHJldHVybiBtX21lZGlhS2V5U3lzdGVtUGVybWlzc2lv
blJlcXVlc3RNYW5hZ2VyOyB9CisjZW5kaWYKKwogICAgIHZvaWQgZWxlbWVudERpZEZvY3VzKFdl
YkNvcmU6OkVsZW1lbnQmKTsKICAgICB2b2lkIGVsZW1lbnREaWRSZWZvY3VzKFdlYkNvcmU6OkVs
ZW1lbnQmKTsKICAgICB2b2lkIGVsZW1lbnREaWRCbHVyKFdlYkNvcmU6OkVsZW1lbnQmKTsKQEAg
LTE2NzAsNyArMTY3NSwxMSBAQCBwcml2YXRlOgogI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCiAg
ICAgdm9pZCB1c2VyTWVkaWFBY2Nlc3NXYXNHcmFudGVkKHVpbnQ2NF90IHVzZXJNZWRpYUlELCBX
ZWJDb3JlOjpDYXB0dXJlRGV2aWNlJiYgYXVkaW9EZXZpY2VVSUQsIFdlYkNvcmU6OkNhcHR1cmVE
ZXZpY2UmJiB2aWRlb0RldmljZVVJRCwgU3RyaW5nJiYgbWVkaWFEZXZpY2VJZGVudGlmaWVySGFz
aFNhbHQsIFNhbmRib3hFeHRlbnNpb246OkhhbmRsZSYmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KCk+JiYpOwogICAgIHZvaWQgdXNlck1lZGlhQWNjZXNzV2FzRGVuaWVkKHVpbnQ2NF90IHVzZXJN
ZWRpYUlELCB1aW50NjRfdCByZWFzb24sIFN0cmluZyYmIGludmFsaWRDb25zdHJhaW50KTsKKyNl
bmRpZgogCisjaWYgRU5BQkxFKEVOQ1JZUFRFRF9NRURJQSkKKyAgICB2b2lkIG1lZGlhS2V5U3lz
dGVtV2FzR3JhbnRlZCh1aW50NjRfdCBtZWRpYUtleVN5c3RlbUlELCBDb21wbGV0aW9uSGFuZGxl
cjx2b2lkKCk+JiYpOworICAgIHZvaWQgbWVkaWFLZXlTeXN0ZW1XYXNEZW5pZWQodWludDY0X3Qg
bWVkaWFLZXlTeXN0ZW1JRCwgU3RyaW5nJiYgbWVzc2FnZSk7CiAjZW5kaWYKIAogICAgIHZvaWQg
cmVxdWVzdE1lZGlhUGxheWJhY2tTdGF0ZShDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYktpdDo6
TWVkaWFQbGF5YmFja1N0YXRlKT4mJik7CkBAIC0xOTgyLDYgKzE5OTEsMTAgQEAgcHJpdmF0ZToK
ICAgICBVbmlxdWVSZWY8VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyPiBtX3VzZXJN
ZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcjsKICNlbmRpZgogCisjaWYgRU5BQkxFKEVOQ1JZ
UFRFRF9NRURJQSkKKyAgICBVbmlxdWVSZWY8TWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVz
dE1hbmFnZXI+IG1fbWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXI7CisjZW5k
aWYKKwogICAgIHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpQcmludENvbnRleHQ+IG1fcHJpbnRD
b250ZXh0OwogI2lmIFBMQVRGT1JNKEdUSykKICAgICBSZWZQdHI8V2ViUHJpbnRPcGVyYXRpb25H
dGs+IG1fcHJpbnRPcGVyYXRpb247CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbgppbmRleCAyZGE5OWNkMzcyMzkyZTgyYzUzMGQ0
MmMwMWExMjg3NzBmYmQ4NzE3Li4yM2ZjYTM1NzFmMDc0NzUwOTFmZjNmYzE0YmFiYzQ2NWUyMTZl
ZDRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdl
Lm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBh
Z2UubWVzc2FnZXMuaW4KQEAgLTM3OCw2ICszNzgsMTEgQEAgR2VuZXJhdGVTeW50aGV0aWNFZGl0
aW5nQ29tbWFuZChlbnVtOnVpbnQ4X3QgV2ViS2l0OjpTeW50aGV0aWNFZGl0aW5nQ29tbWFuZFR5
cGUKICAgICBDYXB0dXJlRGV2aWNlc0NoYW5nZWQoKQogI2VuZGlmCiAKKyNpZiBFTkFCTEUoRU5D
UllQVEVEX01FRElBKQorICAgIE1lZGlhS2V5U3lzdGVtV2FzR3JhbnRlZCh1aW50NjRfdCBtZWRp
YUtleVN5c3RlbUlEKSAtPiAoKSBBc3luYworICAgIE1lZGlhS2V5U3lzdGVtV2FzRGVuaWVkKHVp
bnQ2NF90IG1lZGlhS2V5U3lzdGVtSUQsIFN0cmluZyBtZXNzYWdlKQorI2VuZGlmCisKICAgICBS
ZXF1ZXN0TWVkaWFQbGF5YmFja1N0YXRlKCkgLT4gKGVudW06dWludDhfdCBXZWJLaXQ6Ok1lZGlh
UGxheWJhY2tTdGF0ZSBzdGF0ZSkgQXN5bmMKICAgICBQYXVzZUFsbE1lZGlhUGxheWJhY2soKSAt
PiAoKSBBc3luYwogICAgIFN1c3BlbmRBbGxNZWRpYVBsYXliYWNrKCkgLT4gKCkgQXN5bmMKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvV2ViS2l0TGVnYWN5Lnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L1dlYktpdExlZ2FjeS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCmluZGV4IDQwZDdmMDc5ZDBiYWI3YjM4Yzk2ZjExOTEwZTdjNzNkNDI5
YzU3MzkuLjdlMWM1MGJkMzdmMGRmMzFhNjI5NjU3NTA3NzBlYzUxODY0ZmU4OTUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvV2ViS2l0TGVnYWN5Lnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9XZWJLaXRMZWdhY3kueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagpAQCAtNTgxLDYgKzU4MSw4IEBACiAJCTkzRTJBMUE0MTIzQjBCM0MwMDlG
RTEyQSAvKiBXZWJEYXNoYm9hcmRSZWdpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDkzRTJBMUEyMTIzQjBCM0MwMDlGRTEyQSAvKiBXZWJEYXNoYm9h
cmRSZWdpb24uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OwogCQk5M0UyQTFBNTEyM0IwQjNDMDA5RkUxMkEgLyogV2ViRGFzaGJvYXJkUmVnaW9uLm1tIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNFMkExQTMxMjNC
MEIzQzAwOUZFMTJBIC8qIFdlYkRhc2hib2FyZFJlZ2lvbi5tbSAqLzsgfTsKIAkJOTNGREU5MzMw
RDc5Q0FGMzAwNzRGMDI5IC8qIFdlYkhpc3RvcnlJbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNGREU5MzIwRDc5Q0FGMzAwNzRGMDI5IC8q
IFdlYkhpc3RvcnlJbnRlcm5hbC5oICovOyB9OworCQk5QUNDMDdCQzI1Qzg1QTQ3MDBEQzYzODYg
LyogV2ViTWVkaWFLZXlTeXN0ZW1DbGllbnQubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA5QUNDMDdCQjI1Qzg1QTQ3MDBEQzYzODYgLyogV2ViTWVkaWFL
ZXlTeXN0ZW1DbGllbnQubW0gKi87IH07CisJCTlBQ0MwN0JFMjVDODVBNTkwMERDNjM4NiAvKiBX
ZWJNZWRpYUtleVN5c3RlbUNsaWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gOUFDQzA3QkQyNUM4NUE1OTAwREM2Mzg2IC8qIFdlYk1lZGlhS2V5U3lz
dGVtQ2xpZW50LmggKi87IH07CiAJCUExMEMxRDE4MTgyMDJGOUMwMDM2ODgzQSAvKiBXZWJEZWZh
dWx0Rm9ybURlbGVnYXRlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBBMTBDMUQxMDE4MjAyRjlDMDAzNjg4M0EgLyogV2ViRGVmYXVsdEZvcm1EZWxlZ2F0
ZS5oICovOyB9OwogCQlBMTBDMUQxOTE4MjAyRjlDMDAzNjg4M0EgLyogV2ViRGVmYXVsdEZvcm1E
ZWxlZ2F0ZS5tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
QTEwQzFEMTExODIwMkY5QzAwMzY4ODNBIC8qIFdlYkRlZmF1bHRGb3JtRGVsZWdhdGUubSAqLzsg
fTsKIAkJQTEwQzFEMUExODIwMkY5QzAwMzY4ODNBIC8qIFdlYkRlZmF1bHRGcmFtZUxvYWREZWxl
Z2F0ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTEw
QzFEMTIxODIwMkY5QzAwMzY4ODNBIC8qIFdlYkRlZmF1bHRGcmFtZUxvYWREZWxlZ2F0ZS5oICov
OyB9OwpAQCAtMTQxMiw2ICsxNDE0LDggQEAKIAkJOTNFMkExQTIxMjNCMEIzQzAwOUZFMTJBIC8q
IFdlYkRhc2hib2FyZFJlZ2lvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBX
ZWJEYXNoYm9hcmRSZWdpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTNFMkEx
QTMxMjNCMEIzQzAwOUZFMTJBIC8qIFdlYkRhc2hib2FyZFJlZ2lvbi5tbSAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdlYkRhc2hib2FyZFJlZ2lvbi5tbTsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTNGREU5MzIwRDc5Q0FGMzAwNzRGMDI5IC8qIFdlYkhp
c3RvcnlJbnRlcm5hbC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJIaXN0
b3J5SW50ZXJuYWwuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOUFDQzA3QkIyNUM4
NUE0NzAwREM2Mzg2IC8qIFdlYk1lZGlhS2V5U3lzdGVtQ2xpZW50Lm1tICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gV2ViTWVkaWFLZXlTeXN0ZW1DbGllbnQubW07IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTlBQ0MwN0JEMjVDODVBNTkwMERDNjM4NiAvKiBX
ZWJNZWRpYUtleVN5c3RlbUNsaWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBXZWJNZWRpYUtleVN5c3RlbUNsaWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk5Q0FFOUQwNzAyNTJBNDEzMEVDQTE2RUEgLyogV2ViUHJlZmVyZW5jZXNQcml2YXRlLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgaW5kZW50V2lkdGgg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViUHJlZmVy
ZW5jZXNQcml2YXRlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRoID0gODsgdXNl
c1RhYnMgPSAwOyB9OwogCQk5Q0YwRTI0OTAyMTM2MUIwMEVDQTE2RUEgLyogV2ViRnJhbWVQcml2
YXRlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgaW5k
ZW50V2lkdGggPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
V2ViRnJhbWVQcml2YXRlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRoID0gODsg
dXNlc1RhYnMgPSAwOyB9OwogCQlBMTBDMUQxMDE4MjAyRjlDMDAzNjg4M0EgLyogV2ViRGVmYXVs
dEZvcm1EZWxlZ2F0ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBXZWJEZWZh
dWx0Rm9ybURlbGVnYXRlLmg7IHBhdGggPSBpb3MvRGVmYXVsdERlbGVnYXRlcy9XZWJEZWZhdWx0
Rm9ybURlbGVnYXRlLmg7IHNvdXJjZVRyZWUgPSBTT1VSQ0VfUk9PVDsgfTsKQEAgLTI2NzMsNiAr
MjY3Nyw4IEBACiAJCQkJOTM0NUQ0RUIwMzY1QzVCMjAwODYzNUNFIC8qIFdlYkphdmFTY3JpcHRU
ZXh0SW5wdXRQYW5lbC5tICovLAogCQkJCUNEOEJGQ0U2MTU1MzEyMjQwMDVBRkIyNSAvKiBXZWJL
aXRGdWxsU2NyZWVuTGlzdGVuZXIuaCAqLywKIAkJCQlDRDhCRkNFNTE1NTMxMjI0MDA1QUZCMjUg
LyogV2ViS2l0RnVsbFNjcmVlbkxpc3RlbmVyLm1tICovLAorCQkJCTlBQ0MwN0JEMjVDODVBNTkw
MERDNjM4NiAvKiBXZWJNZWRpYUtleVN5c3RlbUNsaWVudC5oICovLAorCQkJCTlBQ0MwN0JCMjVD
ODVBNDcwMERDNjM4NiAvKiBXZWJNZWRpYUtleVN5c3RlbUNsaWVudC5tbSAqLywKIAkJCQkzMUMx
MUE2QzE0NzY1NTJFMDA0OUE0Q0MgLyogV2ViTm90aWZpY2F0aW9uQ2xpZW50LmggKi8sCiAJCQkJ
MzFDMTFBNkQxNDc2NTUyRTAwNDlBNENDIC8qIFdlYk5vdGlmaWNhdGlvbkNsaWVudC5tbSAqLywK
IAkJCQlBNThBNTc5NzE0M0U3MjcwMDAxMjVGNTAgLyogV2ViT3BlblBhbmVsUmVzdWx0TGlzdGVu
ZXIuaCAqLywKQEAgLTMxMDgsNiArMzExNCw3IEBACiAJCQkJOTM5ODEwNzkwODI0QkYwMTAwOERG
MDM4IC8qIFdlYkxvY2FsaXphYmxlU3RyaW5ncy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkM0MkQz
MjQxMzFFRDFFMDAwNzVGQTRCIC8qIFdlYkxvY2FsaXphYmxlU3RyaW5nc0ludGVybmFsLmggaW4g
SGVhZGVycyAqLywKIAkJCQlBMTBDMUQ4MDE4MjAzMDNEMDAzNjg4M0EgLyogV2ViTWFpbERlbGVn
YXRlLmggaW4gSGVhZGVycyAqLywKKwkJCQk5QUNDMDdCRTI1Qzg1QTU5MDBEQzYzODYgLyogV2Vi
TWVkaWFLZXlTeXN0ZW1DbGllbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTA3MkU1RjQ1MUFCRjg4
NzUwMDAzQjE2NCAvKiBXZWJNZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyLmggaW4gSGVhZGVycyAq
LywKIAkJCQlBMTBDMUQ3MjE4MjAzMDBFMDAzNjg4M0EgLyogV2ViTUlNRVR5cGVSZWdpc3RyeS5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJNTE4NUY2MjYxMDcxMkI4MDAwN0FBMzkzIC8qIFdlYk5hdmln
YXRpb25EYXRhLmggaW4gSGVhZGVycyAqLywKQEAgLTM2NTAsNiArMzY1Nyw3IEBACiAJCQkJNTEy
MEM4MkMxRTU0Q0U4QTAwMjVCMjUwIC8qIFdlYktpdFZlcnNpb25DaGVja3MubW0gaW4gU291cmNl
cyAqLywKIAkJCQlFRDVCOTUyNDExMUI3MjVBMDA0NzIyOTggLyogV2ViTG9jYWxpemFibGVTdHJp
bmdzLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJQkM0MkQzNEQxMzFFRDM4ODAwNzVGQTRCIC8qIFdl
YkxvY2FsaXphYmxlU3RyaW5nc0ludGVybmFsLm1tIGluIFNvdXJjZXMgKi8sCisJCQkJOUFDQzA3
QkMyNUM4NUE0NzAwREM2Mzg2IC8qIFdlYk1lZGlhS2V5U3lzdGVtQ2xpZW50Lm1tIGluIFNvdXJj
ZXMgKi8sCiAJCQkJMDcyRTVGNDYxQUJGODg3NTAwMDNCMTY0IC8qIFdlYk1lZGlhUGxheWJhY2tU
YXJnZXRQaWNrZXIubW0gaW4gU291cmNlcyAqLywKIAkJCQlBMTBDMUQ3MzE4MjAzMDBFMDAzNjg4
M0EgLyogV2ViTUlNRVR5cGVSZWdpc3RyeS5tbSBpbiBTb3VyY2VzICovLAogCQkJCTUxODVGNjI4
MTA3MTJCOTcwMDdBQTM5MyAvKiBXZWJOYXZpZ2F0aW9uRGF0YS5tbSBpbiBTb3VyY2VzICovLApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViTWVk
aWFLZXlTeXN0ZW1DbGllbnQuaCBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBw
b3J0L1dlYk1lZGlhS2V5U3lzdGVtQ2xpZW50LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTU1OTlkNTdlYTU4ODlj
MmY3MTI3YTM1OTc4YjUyN2VlNDYwZTdlNgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJL
aXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYk1lZGlhS2V5U3lzdGVtQ2xpZW50LmgKQEAg
LTAsMCArMSw0MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBJZ2FsaWEgUy5MLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQg
SVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisjaW1wb3J0IDxXZWJDb3JlL01lZGlhS2V5U3lzdGVtQ2xpZW50Lmg+CisKK0BjbGFz
cyBXZWJWaWV3OworCitjbGFzcyBXZWJNZWRpYUtleVN5c3RlbUNsaWVudCA6IHB1YmxpYyBXZWJD
b3JlOjpNZWRpYUtleVN5c3RlbUNsaWVudCB7CisgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7
CitwdWJsaWM6CisgICAgV2ViTWVkaWFLZXlTeXN0ZW1DbGllbnQoV2ViVmlldyAqKTsKKyAgICBX
ZWJWaWV3ICp3ZWJWaWV3KCkgeyByZXR1cm4gbV93ZWJWaWV3OyB9CisKKyAgICB2b2lkIHBhZ2VE
ZXN0cm95ZWQoKSBvdmVycmlkZTsKKworICAgIHZvaWQgcmVxdWVzdE1lZGlhS2V5U3lzdGVtKFdl
YkNvcmU6Ok1lZGlhS2V5U3lzdGVtUmVxdWVzdCYpIG92ZXJyaWRlOworICAgIHZvaWQgY2FuY2Vs
TWVkaWFLZXlTeXN0ZW1SZXF1ZXN0KFdlYkNvcmU6Ok1lZGlhS2V5U3lzdGVtUmVxdWVzdCYpIG92
ZXJyaWRlIHsgfTsKKworcHJpdmF0ZToKKyAgICBXZWJWaWV3ICptX3dlYlZpZXc7Cit9OwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViTWVkaWFL
ZXlTeXN0ZW1DbGllbnQubW0gYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9y
dC9XZWJNZWRpYUtleVN5c3RlbUNsaWVudC5tbQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jMzE3Mzk2OTVkODJhZjZh
OThkNjdmMDJhNzU0Mjc5YTU5YjM0ZGVhCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktp
dExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViTWVkaWFLZXlTeXN0ZW1DbGllbnQubW0KQEAg
LTAsMCArMSw1NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBJZ2FsaWEgUy5MLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQg
SVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisjaW1wb3J0ICJXZWJNZWRpYUtleVN5c3RlbUNsaWVudC5oIgorCisjaWYgRU5BQkxF
KEVOQ1JZUFRFRF9NRURJQSkKKworI2ltcG9ydCA8V2ViQ29yZS9NZWRpYUtleVN5c3RlbVJlcXVl
c3QuaD4KKyNpbXBvcnQgPHd0Zi9CbG9ja09iakNFeGNlcHRpb25zLmg+CisKK3VzaW5nIG5hbWVz
cGFjZSBXZWJDb3JlOworCitXZWJNZWRpYUtleVN5c3RlbUNsaWVudDo6V2ViTWVkaWFLZXlTeXN0
ZW1DbGllbnQoV2ViVmlldyAqd2ViVmlldykKKyAgICA6IG1fd2ViVmlldyh3ZWJWaWV3KQorewor
fQorCit2b2lkIFdlYk1lZGlhS2V5U3lzdGVtQ2xpZW50OjpwYWdlRGVzdHJveWVkKCkKK3sKKyAg
ICBkZWxldGUgdGhpczsKK30KKwordm9pZCBXZWJNZWRpYUtleVN5c3RlbUNsaWVudDo6cmVxdWVz
dE1lZGlhS2V5U3lzdGVtKE1lZGlhS2V5U3lzdGVtUmVxdWVzdCYgcmVxdWVzdCkKK3sKKyAgICBC
RUdJTl9CTE9DS19PQkpDX0VYQ0VQVElPTlMKKworICAgIHJlcXVlc3QuYWxsb3coW10geyB9KTsK
KworICAgIEVORF9CTE9DS19PQkpDX0VYQ0VQVElPTlMKK30KKworI2VuZGlmIC8vIEVOQUJMRShF
TkNSWVBURURfTUVESUEpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJW
aWV3L1dlYlZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlZpZXcu
bW0KaW5kZXggNjg1YWNiMWNkYmYyM2QyNjRmZGI4NjlmOTFjYTBiOTQ3MTkxM2Q4Ni4uZTQxZTU1
ZjQ5MmYwNDM1N2U3ZGFkNWIyOWRlMzcwMTZiMzVmZGQ0NiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdh
Y3kvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQpAQCAtODUsNiArODUsNyBAQAogI2ltcG9ydCAiV2Vi
S2l0U3RhdGlzdGljc1ByaXZhdGUuaCIKICNpbXBvcnQgIldlYktpdFZlcnNpb25DaGVja3MuaCIK
ICNpbXBvcnQgIldlYkxvY2FsaXphYmxlU3RyaW5ncy5oIgorI2ltcG9ydCAiV2ViTWVkaWFLZXlT
eXN0ZW1DbGllbnQuaCIKICNpbXBvcnQgIldlYk5TRGF0YUV4dHJhcy5oIgogI2ltcG9ydCAiV2Vi
TlNEYXRhRXh0cmFzUHJpdmF0ZS5oIgogI2ltcG9ydCAiV2ViTlNEaWN0aW9uYXJ5RXh0cmFzLmgi
CkBAIC0xNTY4LDYgKzE1NjksOSBAQCBzdGF0aWMgdm9pZCBXZWJLaXRJbml0aWFsaXplR2FtZXBh
ZFByb3ZpZGVySWZOZWNlc3NhcnkoKQogI2lmIEVOQUJMRShERVZJQ0VfT1JJRU5UQVRJT04pICYm
ICFQTEFURk9STShJT1NfRkFNSUxZKQogICAgIFdlYkNvcmU6OnByb3ZpZGVEZXZpY2VPcmllbnRh
dGlvblRvKCpfcHJpdmF0ZS0+cGFnZSwgKm5ldyBXZWJEZXZpY2VPcmllbnRhdGlvbkNsaWVudChz
ZWxmKSk7CiAjZW5kaWYKKyNpZiBFTkFCTEUoRU5DUllQVEVEX01FRElBKQorICAgIFdlYkNvcmU6
OnByb3ZpZGVNZWRpYUtleVN5c3RlbVRvKF9wcml2YXRlLT5wYWdlLCBuZXcgV2ViTWVkaWFLZXlT
eXN0ZW1DbGllbnQoc2VsZikpOworI2VuZGlmCiAKICNpZiBFTkFCTEUoUkVNT1RFX0lOU1BFQ1RP
UikKICAgICBfcHJpdmF0ZS0+cGFnZS0+c2V0UmVtb3RlSW5zcGVjdGlvbkFsbG93ZWQodHJ1ZSk7
CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggZDVj
MGQzMjYxMmRjODFiZWZjOGY0MDY4MTM0OTJjNzJlNTU3N2U0MC4uZTA1YTNiZmM4ZjJjMWYwYzEw
MDJiMWJlY2QxY2MyOGZhNjc3NDljMSAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBi
L1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1IEBACisyMDIxLTAxLTMxICBQaGlsaXBwZSBO
b3JtYW5kICA8cG5vcm1hbmRAaWdhbGlhLmNvbT4KKworICAgICAgICBQZXJtaXNzaW9uIHJlcXVl
c3QgQVBJIGZvciBNZWRpYUtleVN5c3RlbSBhY2Nlc3Mgc3VwcG9ydAorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjIxMTg3CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIHN1cHBvcnQgZm9yIHNldHRpbmcg
dGhlIHBlcm1pc3Npb24gcmVxdWVzdCByZXNwb25zZSBmcm9tIHRoZSBUZXN0UnVubmVyLCBmb3Ig
dXNhZ2Ugd2l0aGluIGxheW91dCB0ZXN0cy4KKworICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIv
SW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvVGVzdFJ1bm5lci5pZGw6CisgICAgICAgICogV2ViS2l0
VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmNwcDoKKyAgICAgICAgKFdUUjo6
VGVzdFJ1bm5lcjo6c2V0SXNNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25HcmFudGVkKToKKyAgICAg
ICAgKiBXZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuaDoKKyAgICAg
ICAgKiBXZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdUUjo6
ZGVjaWRlUG9saWN5Rm9yTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdCk6CisgICAgICAg
IChXVFI6OlRlc3RDb250cm9sbGVyOjpjb21wbGV0ZU1lZGlhS2V5U3lzdGVtUGVybWlzc2lvbkNo
ZWNrKToKKyAgICAgICAgKFdUUjo6VGVzdENvbnRyb2xsZXI6OnNldElzTWVkaWFLZXlTeXN0ZW1Q
ZXJtaXNzaW9uR3JhbnRlZCk6CisgICAgICAgIChXVFI6OlRlc3RDb250cm9sbGVyOjpjcmVhdGVX
ZWJWaWV3V2l0aE9wdGlvbnMpOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRy
b2xsZXIuaDoKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL1Rlc3RJbnZvY2F0aW9uLmNwcDoK
KyAgICAgICAgKFdUUjo6VGVzdEludm9jYXRpb246OmRpZFJlY2VpdmVTeW5jaHJvbm91c01lc3Nh
Z2VGcm9tSW5qZWN0ZWRCdW5kbGUpOgorCiAyMDIxLTAyLTAyICBDYXJsb3MgR2FyY2lhIENhbXBv
cyAgPGNnYXJjaWFAaWdhbGlhLmNvbT4KIAogICAgICAgICBbR1RLXVtXUEVdIE1pZ3JhdGUgV2Vi
S2l0VGVzdFNlcnZlciB0byBsaWJzb3VwIDIuNDggQVBJCmRpZmYgLS1naXQgYS9Ub29scy9XZWJL
aXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0JpbmRpbmdzL1Rlc3RSdW5uZXIuaWRsIGIvVG9v
bHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9UZXN0UnVubmVyLmlk
bAppbmRleCBkYjE1OTlhMmM1NjAyYWU4MWFiMmYyNGUwOGY5Zjk1NTM5YzA1YjlhLi5hMDcxZWNk
ZGQ5ZTQzNDgzZmU3NzE5Njg2YzM1YTRmMzdiOGIxYmM3IDEwMDY0NAotLS0gYS9Ub29scy9XZWJL
aXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0JpbmRpbmdzL1Rlc3RSdW5uZXIuaWRsCisrKyBi
L1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvVGVzdFJ1bm5l
ci5pZGwKQEAgLTQwOCw0ICs0MDgsNyBAQCBpbnRlcmZhY2UgVGVzdFJ1bm5lciB7CiAKICAgICAv
LyBTcGVlY2hSZWNvZ25pdGlvbgogICAgIHVuZGVmaW5lZCBzZXRJc1NwZWVjaFJlY29nbml0aW9u
UGVybWlzc2lvbkdyYW50ZWQoYm9vbGVhbiB2YWx1ZSk7CisKKyAgICAvLyBNZWRpYUtleVN5c3Rl
bQorICAgIHVuZGVmaW5lZCBzZXRJc01lZGlhS2V5U3lzdGVtUGVybWlzc2lvbkdyYW50ZWQoYm9v
bGVhbiB2YWx1ZSk7CiB9OwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9Jbmpl
Y3RlZEJ1bmRsZS9UZXN0UnVubmVyLmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0
ZWRCdW5kbGUvVGVzdFJ1bm5lci5jcHAKaW5kZXggNjM4MDk4OTI1MThjY2UzY2ZkNmJhMmRmYWNk
YzZmNWVmOTAzYmFiNi4uODY0Y2NlMjg1OTdhNDE4ZDg5YTUzNTdkYzkyMDBjY2QwMTk0YzdkNSAx
MDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVu
bmVyLmNwcAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RS
dW5uZXIuY3BwCkBAIC0yMDg0LDYgKzIwODQsMTEgQEAgdm9pZCBUZXN0UnVubmVyOjpzZXRJc1Nw
ZWVjaFJlY29nbml0aW9uUGVybWlzc2lvbkdyYW50ZWQoYm9vbCBncmFudGVkKQogICAgIHBvc3RT
eW5jaHJvbm91c1BhZ2VNZXNzYWdlKCJzZXRJc1NwZWVjaFJlY29nbml0aW9uUGVybWlzc2lvbkdy
YW50ZWQiLCBncmFudGVkKTsKIH0KIAordm9pZCBUZXN0UnVubmVyOjpzZXRJc01lZGlhS2V5U3lz
dGVtUGVybWlzc2lvbkdyYW50ZWQoYm9vbCBncmFudGVkKQoreworICAgIHBvc3RTeW5jaHJvbm91
c1BhZ2VNZXNzYWdlKCJzZXRJc01lZGlhS2V5U3lzdGVtUGVybWlzc2lvbkdyYW50ZWQiLCBncmFu
dGVkKTsKK30KKwogQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiAKIH0gLy8gbmFt
ZXNwYWNlIFdUUgpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1
bmRsZS9UZXN0UnVubmVyLmggYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxl
L1Rlc3RSdW5uZXIuaAppbmRleCA5M2E5N2NiZGRlNDg3NWNiZDMzNWE3MGZjYjlmZjUzZGI0ZjI4
YjQ0Li5iY2Y3MTBiN2I4NTQ2OWY5YmM2OTIwNDEyODI3MTQ2ZDIzYjNiYzk3IDEwMDY0NAotLS0g
YS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuaAorKysg
Yi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuaApAQCAt
NTE5LDYgKzUxOSw4IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgc2V0SXNTcGVlY2hSZWNvZ25pdGlv
blBlcm1pc3Npb25HcmFudGVkKGJvb2wpOwogCisgICAgdm9pZCBzZXRJc01lZGlhS2V5U3lzdGVt
UGVybWlzc2lvbkdyYW50ZWQoYm9vbCk7CisKIHByaXZhdGU6CiAgICAgVGVzdFJ1bm5lcigpOwog
CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcCBi
L1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwCmluZGV4IGQyY2JlZjQy
NTNkZmU2NTEzMjg3MjNkNTc5ZGIzNDE0YmYxZGE3OGMuLmIzZjNiOTMzZDlkYWYwMDZlMGZmODcz
MjQ0ZTc1YTkzNmY3MjI4ZDggMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVz
dENvbnRyb2xsZXIuY3BwCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xs
ZXIuY3BwCkBAIC00Niw2ICs0Niw3IEBACiAjaW5jbHVkZSA8V2ViS2l0L1dLRnJhbWVJbmZvUmVm
Lmg+CiAjaW5jbHVkZSA8V2ViS2l0L1dLSFRUUENvb2tpZVN0b3JlUmVmLmg+CiAjaW5jbHVkZSA8
V2ViS2l0L1dLSWNvbkRhdGFiYXNlLmg+CisjaW5jbHVkZSA8V2ViS2l0L1dLTWVkaWFLZXlTeXN0
ZW1QZXJtaXNzaW9uQ2FsbGJhY2suaD4KICNpbmNsdWRlIDxXZWJLaXQvV0tNZXNzYWdlTGlzdGVu
ZXIuaD4KICNpbmNsdWRlIDxXZWJLaXQvV0tNb2NrRGlzcGxheS5oPgogI2luY2x1ZGUgPFdlYktp
dC9XS01vY2tNZWRpYURldmljZS5oPgpAQCAtMzQzLDYgKzM0NCwyMSBAQCB2b2lkIFRlc3RDb250
cm9sbGVyOjpzZXRJc1NwZWVjaFJlY29nbml0aW9uUGVybWlzc2lvbkdyYW50ZWQoYm9vbCBncmFu
dGVkKQogICAgIG1faXNTcGVlY2hSZWNvZ25pdGlvblBlcm1pc3Npb25HcmFudGVkID0gZ3JhbnRl
ZDsKIH0KIAorc3RhdGljIHZvaWQgZGVjaWRlUG9saWN5Rm9yTWVkaWFLZXlTeXN0ZW1QZXJtaXNz
aW9uUmVxdWVzdChXS1BhZ2VSZWYsIFdLU2VjdXJpdHlPcmlnaW5SZWYsIFdLU3RyaW5nUmVmLCBX
S01lZGlhS2V5U3lzdGVtUGVybWlzc2lvbkNhbGxiYWNrUmVmIGNhbGxiYWNrKQoreworICAgIFRl
c3RDb250cm9sbGVyOjpzaW5nbGV0b24oKS5jb21wbGV0ZU1lZGlhS2V5U3lzdGVtUGVybWlzc2lv
bkNoZWNrKGNhbGxiYWNrKTsKK30KKwordm9pZCBUZXN0Q29udHJvbGxlcjo6Y29tcGxldGVNZWRp
YUtleVN5c3RlbVBlcm1pc3Npb25DaGVjayhXS01lZGlhS2V5U3lzdGVtUGVybWlzc2lvbkNhbGxi
YWNrUmVmIGNhbGxiYWNrKQoreworICAgIFdLTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uQ2FsbGJh
Y2tDb21wbGV0ZShjYWxsYmFjaywgbV9pc01lZGlhS2V5U3lzdGVtUGVybWlzc2lvbkdyYW50ZWQp
OworfQorCit2b2lkIFRlc3RDb250cm9sbGVyOjpzZXRJc01lZGlhS2V5U3lzdGVtUGVybWlzc2lv
bkdyYW50ZWQoYm9vbCBncmFudGVkKQoreworICAgIG1faXNNZWRpYUtleVN5c3RlbVBlcm1pc3Np
b25HcmFudGVkID0gZ3JhbnRlZDsKK30KKwogV0tQYWdlUmVmIFRlc3RDb250cm9sbGVyOjpjcmVh
dGVPdGhlclBhZ2UoV0tQYWdlUmVmLCBXS1BhZ2VDb25maWd1cmF0aW9uUmVmIGNvbmZpZ3VyYXRp
b24sIFdLTmF2aWdhdGlvbkFjdGlvblJlZiBuYXZpZ2F0aW9uQWN0aW9uLCBXS1dpbmRvd0ZlYXR1
cmVzUmVmIHdpbmRvd0ZlYXR1cmVzLCBjb25zdCB2b2lkICpjbGllbnRJbmZvKQogewogICAgIFBs
YXRmb3JtV2ViVmlldyogcGFyZW50VmlldyA9IHN0YXRpY19jYXN0PFBsYXRmb3JtV2ViVmlldyo+
KGNvbnN0X2Nhc3Q8dm9pZCo+KGNsaWVudEluZm8pKTsKQEAgLTY5OSw4ICs3MTUsOCBAQCB2b2lk
IFRlc3RDb250cm9sbGVyOjpjcmVhdGVXZWJWaWV3V2l0aE9wdGlvbnMoY29uc3QgVGVzdE9wdGlv
bnMmIG9wdGlvbnMpCiAgICAgV0tIVFRQQ29va2llU3RvcmVEZWxldGVBbGxDb29raWVzKFdLV2Vi
c2l0ZURhdGFTdG9yZUdldEhUVFBDb29raWVTdG9yZSh3ZWJzaXRlRGF0YVN0b3JlKCkpLCBudWxs
cHRyLCBudWxscHRyKTsKIAogICAgIHBsYXRmb3JtQ3JlYXRlV2ViVmlldyhjb25maWd1cmF0aW9u
LmdldCgpLCBvcHRpb25zKTsKLSAgICBXS1BhZ2VVSUNsaWVudFYxNSBwYWdlVUlDbGllbnQgPSB7
Ci0gICAgICAgIHsgMTUsIG1fbWFpbldlYlZpZXcuZ2V0KCkgfSwKKyAgICBXS1BhZ2VVSUNsaWVu
dFYxNiBwYWdlVUlDbGllbnQgPSB7CisgICAgICAgIHsgMTYsIG1fbWFpbldlYlZpZXcuZ2V0KCkg
fSwKICAgICAgICAgMCwgLy8gY3JlYXRlTmV3UGFnZV9kZXByZWNhdGVkRm9yVXNlV2l0aFYwCiAg
ICAgICAgIDAsIC8vIHNob3dQYWdlCiAgICAgICAgIDAsIC8vIGNsb3NlCkBAIC03NzQsNyArNzkw
LDggQEAgdm9pZCBUZXN0Q29udHJvbGxlcjo6Y3JlYXRlV2ViVmlld1dpdGhPcHRpb25zKGNvbnN0
IFRlc3RPcHRpb25zJiBvcHRpb25zKQogICAgICAgICAwLCAvLyByZXF1ZXN0U3RvcmFnZUFjY2Vz
c0NvbmZpcm0KICAgICAgICAgc2hvdWxkQWxsb3dEZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvbkFj
Y2VzcywKICAgICAgICAgcnVuV2ViQXV0aGVudGljYXRpb25QYW5lbCwKLSAgICAgICAgZGVjaWRl
UG9saWN5Rm9yU3BlZWNoUmVjb2duaXRpb25QZXJtaXNzaW9uUmVxdWVzdAorICAgICAgICBkZWNp
ZGVQb2xpY3lGb3JTcGVlY2hSZWNvZ25pdGlvblBlcm1pc3Npb25SZXF1ZXN0LAorICAgICAgICBk
ZWNpZGVQb2xpY3lGb3JNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0CiAgICAgfTsKICAg
ICBXS1BhZ2VTZXRQYWdlVUlDbGllbnQobV9tYWluV2ViVmlldy0+cGFnZSgpLCAmcGFnZVVJQ2xp
ZW50LmJhc2UpOwogCmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250
cm9sbGVyLmggYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmgKaW5kZXgg
YmI3NWQ1MDcwMmMzYTUzZjM5ZGUxNTgxZGNjNGQzYjMzNzM5NjRjYi4uODE4YzJiNGVjNGE1NjJi
YzA2N2E0ZjNkNWNlYmJjZGJkMDVjMDQ3YyAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1
bm5lci9UZXN0Q29udHJvbGxlci5oCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENv
bnRyb2xsZXIuaApAQCAtMzU2LDYgKzM1Niw5IEBAIHB1YmxpYzoKICAgICB2b2lkIGNvbXBsZXRl
U3BlZWNoUmVjb2duaXRpb25QZXJtaXNzaW9uQ2hlY2soV0tTcGVlY2hSZWNvZ25pdGlvblBlcm1p
c3Npb25DYWxsYmFja1JlZik7CiAgICAgdm9pZCBzZXRJc1NwZWVjaFJlY29nbml0aW9uUGVybWlz
c2lvbkdyYW50ZWQoYm9vbCk7CiAKKyAgICB2b2lkIGNvbXBsZXRlTWVkaWFLZXlTeXN0ZW1QZXJt
aXNzaW9uQ2hlY2soV0tNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25DYWxsYmFja1JlZik7CisgICAg
dm9pZCBzZXRJc01lZGlhS2V5U3lzdGVtUGVybWlzc2lvbkdyYW50ZWQoYm9vbCk7CisKIHByaXZh
dGU6CiAgICAgV0tSZXRhaW5QdHI8V0tQYWdlQ29uZmlndXJhdGlvblJlZj4gZ2VuZXJhdGVQYWdl
Q29uZmlndXJhdGlvbihjb25zdCBUZXN0T3B0aW9ucyYpOwogICAgIFdLUmV0YWluUHRyPFdLQ29u
dGV4dENvbmZpZ3VyYXRpb25SZWY+IGdlbmVyYXRlQ29udGV4dENvbmZpZ3VyYXRpb24oY29uc3Qg
VGVzdE9wdGlvbnMmKSBjb25zdDsKQEAgLTY0Nyw2ICs2NTAsOCBAQCBwcml2YXRlOgogI2VuZGlm
CiAKICAgICBib29sIG1faXNTcGVlY2hSZWNvZ25pdGlvblBlcm1pc3Npb25HcmFudGVkIHsgZmFs
c2UgfTsKKworICAgIGJvb2wgbV9pc01lZGlhS2V5U3lzdGVtUGVybWlzc2lvbkdyYW50ZWQgeyB0
cnVlIH07CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXVFIKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktp
dFRlc3RSdW5uZXIvVGVzdEludm9jYXRpb24uY3BwIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9U
ZXN0SW52b2NhdGlvbi5jcHAKaW5kZXggNTk4ZGZjN2QxYWMwZTM3YmIyMmZiNzg0YmExNTRhYjc0
NzdhZWExNS4uNTUwMzU1YzdiOGI5ODQ4NGE3ZDI4Y2Y1NTk1ZjYzODc1MTdiZjRiYSAxMDA2NDQK
LS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0SW52b2NhdGlvbi5jcHAKKysrIGIvVG9v
bHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0SW52b2NhdGlvbi5jcHAKQEAgLTEzNjAsNiArMTM2MCwx
MSBAQCBXS1JldGFpblB0cjxXS1R5cGVSZWY+IFRlc3RJbnZvY2F0aW9uOjpkaWRSZWNlaXZlU3lu
Y2hyb25vdXNNZXNzYWdlRnJvbUluamVjdGVkQgogICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAg
ICB9CiAKKyAgICBpZiAoV0tTdHJpbmdJc0VxdWFsVG9VVEY4Q1N0cmluZyhtZXNzYWdlTmFtZSwg
InNldElzTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uR3JhbnRlZCIpKSB7CisgICAgICAgIFRlc3RD
b250cm9sbGVyOjpzaW5nbGV0b24oKS5zZXRJc01lZGlhS2V5U3lzdGVtUGVybWlzc2lvbkdyYW50
ZWQoYm9vbGVhblZhbHVlKG1lc3NhZ2VCb2R5KSk7CisgICAgICAgIHJldHVybiBudWxscHRyOwor
ICAgIH0KKwogICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgIHJldHVybiBudWxscHRyOwog
fQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nCmluZGV4IDk5MTU1ZDVjNjA0YTA2MmMxMjkyMjFhNDhmNGZmNTgxMzIzNDY3OWEuLjkyYWUz
MTgyZjdhOTZhZjljMDA2YTE0ZmQ4YzA0ZTkwNmExZGM5NTQgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBA
QAorMjAyMS0wMS0zMSAgUGhpbGlwcGUgTm9ybWFuZCAgPHBub3JtYW5kQGlnYWxpYS5jb20+CisK
KyAgICAgICAgUGVybWlzc2lvbiByZXF1ZXN0IEFQSSBmb3IgTWVkaWFLZXlTeXN0ZW0gYWNjZXNz
IHN1cHBvcnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIyMTE4NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IEFkZCBiYXNpYyBjb3ZlcmFnZSBzdXBwb3J0IGZvciBvdmVycmlkaW5nIHRoZSBNZWRpYUtleVN5
c3RlbSBwZXJtaXNzaW9uIGFuc3dlciBhbmQgdGh1cyBoYXZlCisgICAgICAgIHRoZSBwcm9taXNl
IHJlamVjdGlvbiB0ZXN0ZWQgaW4gdGhpcyBjYXNlLgorCisgICAgICAgICogbWVkaWEvZW5jcnlw
dGVkLW1lZGlhL21vY2stTWVkaWFLZXlTeXN0ZW1BY2Nlc3MtZXhwZWN0ZWQudHh0OgorICAgICAg
ICAqIG1lZGlhL2VuY3J5cHRlZC1tZWRpYS9tb2NrLU1lZGlhS2V5U3lzdGVtQWNjZXNzLmh0bWw6
CisKIDIwMjEtMDItMDIgIFJvYiBCdWlzICA8cmJ1aXNAaWdhbGlhLmNvbT4KIAogICAgICAgICBQ
cm92aWRlIG1vY2sgZHRtZiBzZW5kZXIKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL21lZGlhL2Vu
Y3J5cHRlZC1tZWRpYS9tb2NrLU1lZGlhS2V5U3lzdGVtQWNjZXNzLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL21lZGlhL2VuY3J5cHRlZC1tZWRpYS9tb2NrLU1lZGlhS2V5U3lzdGVtQWNjZXNz
LWV4cGVjdGVkLnR4dAppbmRleCAyMDkyMzRkNTExOThmMGMxMjQ4YWVkNmVjM2I3NTYzYTE3NTBk
ZGM0Li4xMjBiYTFmMmMyODdjZWI3NjhlZjBhNmY0YTJmOGU0OTJlZWE0YWEwIDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9tZWRpYS9lbmNyeXB0ZWQtbWVkaWEvbW9jay1NZWRpYUtleVN5c3RlbUFj
Y2Vzcy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvbWVkaWEvZW5jcnlwdGVkLW1lZGlh
L21vY2stTWVkaWFLZXlTeXN0ZW1BY2Nlc3MtZXhwZWN0ZWQudHh0CkBAIC0zMSw2ICszMSwxMCBA
QCBSVU4oY2FwYWJpbGl0aWVzLnBlcnNpc3RlbnRTdGF0ZSA9ICJub3QtYWxsb3dlZCIpCiBSVU4o
cHJvbWlzZSA9IG5hdmlnYXRvci5yZXF1ZXN0TWVkaWFLZXlTeXN0ZW1BY2Nlc3MoIm9yZy53ZWJr
aXQubW9jayIsIFtjYXBhYmlsaXRpZXNdKSkKIFByb21pc2UgcmVzb2x2ZWQgT0sKIAorUlVOKHRl
c3RSdW5uZXIuc2V0SXNNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25HcmFudGVkKGZhbHNlKSkKK1JV
Tihwcm9taXNlID0gbmF2aWdhdG9yLnJlcXVlc3RNZWRpYUtleVN5c3RlbUFjY2Vzcygib3JnLndl
YmtpdC5tb2NrIiwgW2NhcGFiaWxpdGllc10pKQorUHJvbWlzZSByZWplY3RlZCBjb3JyZWN0bHkg
T0sKKwogUlVOKHByb21pc2UgPSBtZWRpYUtleVN5c3RlbUFjY2Vzcy5jcmVhdGVNZWRpYUtleXMo
KSkKIFByb21pc2UgcmVzb2x2ZWQgT0sKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvbWVkaWEv
ZW5jcnlwdGVkLW1lZGlhL21vY2stTWVkaWFLZXlTeXN0ZW1BY2Nlc3MuaHRtbCBiL0xheW91dFRl
c3RzL21lZGlhL2VuY3J5cHRlZC1tZWRpYS9tb2NrLU1lZGlhS2V5U3lzdGVtQWNjZXNzLmh0bWwK
aW5kZXggNDc5NmYxOGMyMDFmMTc0NmQ3ZGY0MzI3NDJkOTc1Yzc1ZWU0YmE3NS4uNTU1YjllZTc2
OWVlYmQxNmQ5YTY3NjkyYjYzNzAzZDRjYTMyYzcwOSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
bWVkaWEvZW5jcnlwdGVkLW1lZGlhL21vY2stTWVkaWFLZXlTeXN0ZW1BY2Nlc3MuaHRtbAorKysg
Yi9MYXlvdXRUZXN0cy9tZWRpYS9lbmNyeXB0ZWQtbWVkaWEvbW9jay1NZWRpYUtleVN5c3RlbUFj
Y2Vzcy5odG1sCkBAIC04NCw2ICs4NCwxMyBAQAogICAgICAgICB9LAogCiAgICAgICAgIGZ1bmN0
aW9uKCkgeworICAgICAgICAgICAgcnVuKCd0ZXN0UnVubmVyLnNldElzTWVkaWFLZXlTeXN0ZW1Q
ZXJtaXNzaW9uR3JhbnRlZChmYWxzZSknKTsKKyAgICAgICAgICAgIHJ1bigncHJvbWlzZSA9IG5h
dmlnYXRvci5yZXF1ZXN0TWVkaWFLZXlTeXN0ZW1BY2Nlc3MoIm9yZy53ZWJraXQubW9jayIsIFtj
YXBhYmlsaXRpZXNdKScpOworICAgICAgICAgICAgc2hvdWxkUmVqZWN0KHByb21pc2UpLnRoZW4o
bmV4dCwgbmV4dCk7CisgICAgICAgIH0sCisKKyAgICAgICAgZnVuY3Rpb24oKSB7CisgICAgICAg
ICAgICB0ZXN0UnVubmVyLnNldElzTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uR3JhbnRlZCh0cnVl
KTsKICAgICAgICAgICAgIHJ1bigncHJvbWlzZSA9IG1lZGlhS2V5U3lzdGVtQWNjZXNzLmNyZWF0
ZU1lZGlhS2V5cygpJyk7CiAgICAgICAgICAgICBzaG91bGRSZXNvbHZlKHByb21pc2UpLnRoZW4o
bmV4dCwgbmV4dCk7CiAgICAgICAgIH0sCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>418980</attachid>
            <date>2021-02-02 03:08:33 -0800</date>
            <delta_ts>2021-02-05 02:58:54 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-221187-20210202030831.patch</filename>
            <type>text/plain</type>
            <size>139790</size>
            <attacher name="Philippe Normand">pnormand</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcyMjAwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTcyN2Y1NDExMzViYmNm
MzQzNzk4MmRjMmU1YTRkYTdkMzE5MWRlZi4uNjM3ZTkzMzRhMGEzMDQwNzUzNGY2NDhlNjMxMWU0
OWIyYjY2YTkzZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ4IEBACisyMDIxLTAxLTMxICBQaGls
aXBwZSBOb3JtYW5kICA8cG5vcm1hbmRAaWdhbGlhLmNvbT4KKworICAgICAgICBQZXJtaXNzaW9u
IHJlcXVlc3QgQVBJIGZvciBNZWRpYUtleVN5c3RlbSBhY2Nlc3Mgc3VwcG9ydAorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjIxMTg3CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgU3VwcG9ydCBmb3IgdXNlciBw
ZXJtaXNzaW9uIHJlcXVlc3Rpbmcgd2hlbiBhY2Nlc3MgdG8gYW4gRU1FIE1lZGlhS2V5U3lzdGVt
IGlzIGJlaW5nCisgICAgICAgIHJlcXVlc3RlZCBieSB0aGUgcGFnZS4gVGhpcyBpcyBzaW1pbGFy
IHRvIHRoZSBtZWRpYURldmljZXMgYWNjZXNzIGd1YXJkcy4KKworICAgICAgICBFeGlzdGluZyB0
ZXN0IG1lZGlhL2VuY3J5cHRlZC1tZWRpYS9tb2NrLU1lZGlhS2V5U3lzdGVtQWNjZXNzLmh0bWwg
d2FzIHVwZGF0ZWQgdG8gY292ZXIgdGhpcworICAgICAgICBuZXcgY29kZSBwYXRoIGFuZCBXUEUv
R1RLIEFQSSB0ZXN0cyBhcyB3ZWxsLgorCisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6CisgICAg
ICAgICogSGVhZGVycy5jbWFrZToKKyAgICAgICAgKiBNb2R1bGVzL2VuY3J5cHRlZG1lZGlhL01l
ZGlhS2V5U3lzdGVtQ2xpZW50Lmg6IEFkZGVkLgorICAgICAgICAqIE1vZHVsZXMvZW5jcnlwdGVk
bWVkaWEvTWVkaWFLZXlTeXN0ZW1Db250cm9sbGVyLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJD
b3JlOjpNZWRpYUtleVN5c3RlbUNvbnRyb2xsZXI6OnN1cHBsZW1lbnROYW1lKToKKyAgICAgICAg
KFdlYkNvcmU6Ok1lZGlhS2V5U3lzdGVtQ29udHJvbGxlcjo6TWVkaWFLZXlTeXN0ZW1Db250cm9s
bGVyKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhS2V5U3lzdGVtQ29udHJvbGxlcjo6fk1lZGlh
S2V5U3lzdGVtQ29udHJvbGxlcik6CisgICAgICAgIChXZWJDb3JlOjpwcm92aWRlTWVkaWFLZXlT
eXN0ZW1Ubyk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYUtleVN5c3RlbUNvbnRyb2xsZXI6Omxv
Z1JlcXVlc3RNZWRpYUtleVN5c3RlbURlbmlhbCk6CisgICAgICAgICogTW9kdWxlcy9lbmNyeXB0
ZWRtZWRpYS9NZWRpYUtleVN5c3RlbUNvbnRyb2xsZXIuaDogQWRkZWQuCisgICAgICAgIChXZWJD
b3JlOjpNZWRpYUtleVN5c3RlbUNvbnRyb2xsZXI6OmNsaWVudCBjb25zdCk6CisgICAgICAgIChX
ZWJDb3JlOjpNZWRpYUtleVN5c3RlbUNvbnRyb2xsZXI6OmZyb20pOgorICAgICAgICAoV2ViQ29y
ZTo6TWVkaWFLZXlTeXN0ZW1Db250cm9sbGVyOjpyZXF1ZXN0TWVkaWFLZXlTeXN0ZW0pOgorICAg
ICAgICAoV2ViQ29yZTo6TWVkaWFLZXlTeXN0ZW1Db250cm9sbGVyOjpjYW5jZWxNZWRpYUtleVN5
c3RlbVJlcXVlc3QpOgorICAgICAgICAqIE1vZHVsZXMvZW5jcnlwdGVkbWVkaWEvTWVkaWFLZXlT
eXN0ZW1SZXF1ZXN0LmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpNZWRpYUtleVN5c3Rl
bVJlcXVlc3Q6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYUtleVN5c3RlbVJlcXVl
c3Q6Ok1lZGlhS2V5U3lzdGVtUmVxdWVzdCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYUtleVN5
c3RlbVJlcXVlc3Q6On5NZWRpYUtleVN5c3RlbVJlcXVlc3QpOgorICAgICAgICAoV2ViQ29yZTo6
TWVkaWFLZXlTeXN0ZW1SZXF1ZXN0Ojp0b3BMZXZlbERvY3VtZW50T3JpZ2luIGNvbnN0KToKKyAg
ICAgICAgKFdlYkNvcmU6Ok1lZGlhS2V5U3lzdGVtUmVxdWVzdDo6c3RhcnQpOgorICAgICAgICAo
V2ViQ29yZTo6TWVkaWFLZXlTeXN0ZW1SZXF1ZXN0OjphbGxvdyk6CisgICAgICAgIChXZWJDb3Jl
OjpNZWRpYUtleVN5c3RlbVJlcXVlc3Q6OmRlbnkpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFL
ZXlTeXN0ZW1SZXF1ZXN0OjpzdG9wKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhS2V5U3lzdGVt
UmVxdWVzdDo6YWN0aXZlRE9NT2JqZWN0TmFtZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpN
ZWRpYUtleVN5c3RlbVJlcXVlc3Q6OmRvY3VtZW50IGNvbnN0KToKKyAgICAgICAgKiBNb2R1bGVz
L2VuY3J5cHRlZG1lZGlhL01lZGlhS2V5U3lzdGVtUmVxdWVzdC5oOiBBZGRlZC4KKyAgICAgICAg
KFdlYkNvcmU6Ok1lZGlhS2V5U3lzdGVtUmVxdWVzdDo6c2V0QWxsb3dDYWxsYmFjayk6CisgICAg
ICAgIChXZWJDb3JlOjpNZWRpYUtleVN5c3RlbVJlcXVlc3Q6OmlkZW50aWZpZXIgY29uc3QpOgor
ICAgICAgICAoV2ViQ29yZTo6TWVkaWFLZXlTeXN0ZW1SZXF1ZXN0OjprZXlTeXN0ZW0gY29uc3Qp
OgorICAgICAgICAqIE1vZHVsZXMvZW5jcnlwdGVkbWVkaWEvTmF2aWdhdG9yRU1FLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6Ok5hdmlnYXRvckVNRTo6cmVxdWVzdE1lZGlhS2V5U3lzdGVtQWNjZXNz
KToKKwogMjAyMS0wMi0wMiAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CiAKICAg
ICAgICAgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9tZWRpYWNhcHR1cmUtcmVjb3Jk
L01lZGlhUmVjb3JkZXItc3RvcC5odG1sIGlzIGZsYWt5IHdoZW4gR1BVUHJvY2VzcyBpcyBlbmFi
bGVkCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQv
Q2hhbmdlTG9nCmluZGV4IDFlYTkyYTcxNDVhNTA1ODQ2NWMwNGNkYTM1ZTE3ZTVhZjUwYmE4ODUu
LmQzNDQ5NzRhYWZiNzViYWIzY2U0MjdjZDkzZjRkNWQ0OGJjMGQzZTMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsOTYgQEAKKzIwMjEtMDEtMzEgIFBoaWxpcHBlIE5vcm1hbmQgIDxwbm9ybWFuZEBpZ2Fs
aWEuY29tPgorCisgICAgICAgIFBlcm1pc3Npb24gcmVxdWVzdCBBUEkgZm9yIE1lZGlhS2V5U3lz
dGVtIGFjY2VzcyBzdXBwb3J0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yMjExODcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBBZGQgbmV3IElQQyBhbmQgQyBBUEkgZXhwb3NpbmcgTWVkaWFLZXlTeXN0ZW0g
YWNjZXNzIHBlcm1pc3Npb25zIHRvIHRoZSBVSVByb2Nlc3MuIEF0IGxlYXN0CisgICAgICAgIEdU
Sy9XUEUgd291bGQgbGlrZSB0byBoYXZlIEFQSSBmb3IgYXNraW5nIHBlcm1pc3Npb24gdG8gdGhl
IHVzZXIgd2hlbiBFTUUncyBNZWRpYUtleUFjY2VzcworICAgICAgICBpcyBiZWluZyByZXF1ZXN0
ZWQgYnkgYSBwYWdlLiBPbiBBcHBsZSBwbGF0Zm9ybXMgdGhlIHBlcm1pc3Npb24gaXMgZ3JhbnRl
ZCBieSBkZWZhdWx0IHVudGlsCisgICAgICAgIGEgZGVjaXNpb24gaXMgbWFkZSBhYm91dCBzdXBw
b3J0aW5nIHRoaXMgaW4gdGhlaXIgQVBJVUlDbGllbnQuCisKKyAgICAgICAgKiBDTWFrZUxpc3Rz
LnR4dDoKKyAgICAgICAgKiBIZWFkZXJzLmNtYWtlOgorICAgICAgICAqIFBsYXRmb3JtL0xvZ2dp
bmcuaDoKKyAgICAgICAgKiBTaGFyZWQvQVBJL0FQSU9iamVjdC5oOgorICAgICAgICAqIFNoYXJl
ZC9BUEkvYy9XS0Jhc2UuaDoKKyAgICAgICAgKiBTb3VyY2VzLnR4dDoKKyAgICAgICAgKiBVSVBy
b2Nlc3MvQVBJL0FQSVVJQ2xpZW50Lmg6CisgICAgICAgIChBUEk6OlVJQ2xpZW50OjpkZWNpZGVQ
b2xpY3lGb3JNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0KToKKyAgICAgICAgKiBVSVBy
b2Nlc3MvQVBJL0MvV0tBUElDYXN0Lmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dLTWVk
aWFLZXlTeXN0ZW1QZXJtaXNzaW9uQ2FsbGJhY2suY3BwOiBBZGRlZC4KKyAgICAgICAgKFdLTWVk
aWFLZXlTeXN0ZW1QZXJtaXNzaW9uQ2FsbGJhY2tHZXRUeXBlSUQpOgorICAgICAgICAoV0tNZWRp
YUtleVN5c3RlbVBlcm1pc3Npb25DYWxsYmFja0NvbXBsZXRlKToKKyAgICAgICAgKiBVSVByb2Nl
c3MvQVBJL0MvV0tNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25DYWxsYmFjay5oOiBBZGRlZC4KKyAg
ICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmNwcDoKKyAgICAgICAgKFdLUGFnZVNldFBh
Z2VVSUNsaWVudCk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dLUGFnZVVJQ2xpZW50Lmg6
CisgICAgICAgICogVUlQcm9jZXNzL01lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3QuaDog
QWRkZWQuCisgICAgICAgIChXZWJLaXQ6Ok1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3Q6
OmNyZWF0ZSk6CisgICAgICAgIChXZWJLaXQ6Ok1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVl
c3Q6OmNvbXBsZXRlKToKKyAgICAgICAgKFdlYktpdDo6TWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9u
UmVxdWVzdDo6a2V5U3lzdGVtIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6TWVkaWFLZXlTeXN0
ZW1QZXJtaXNzaW9uUmVxdWVzdDo6TWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdCk6Cisg
ICAgICAgIChXZWJLaXQ6Ok1lZGlhS2V5U3lzdGVtUGVybWlzc2lvbkNhbGxiYWNrOjpjcmVhdGUp
OgorICAgICAgICAoV2ViS2l0OjpNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25DYWxsYmFjazo6Y29t
cGxldGUpOgorICAgICAgICAoV2ViS2l0OjpNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25DYWxsYmFj
azo6TWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uQ2FsbGJhY2spOgorICAgICAgICAqIFVJUHJvY2Vz
cy9NZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmNwcDogQWRkZWQu
CisgICAgICAgIChXZWJLaXQ6Ok1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RNYW5hZ2Vy
UHJveHk6Ok1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkpOgorICAg
ICAgICAoV2ViS2l0OjpNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5
Ojp+TWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eSk6CisgICAgICAg
IChXZWJLaXQ6Ok1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6Omlu
dmFsaWRhdGVQZW5kaW5nUmVxdWVzdHMpOgorICAgICAgICAoV2ViS2l0OjpNZWRpYUtleVN5c3Rl
bVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5OjpkZW55UmVxdWVzdCk6CisgICAgICAgIChX
ZWJLaXQ6Ok1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6OmdyYW50
UmVxdWVzdCk6CisgICAgICAgIChXZWJLaXQ6Ok1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVl
c3RNYW5hZ2VyUHJveHk6OmNyZWF0ZVJlcXVlc3RGb3JGcmFtZSk6CisgICAgICAgIChXZWJLaXQ6
Ok1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6OmxvZ0NoYW5uZWwg
Y29uc3QpOgorICAgICAgICAoV2ViS2l0OjpNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0
TWFuYWdlclByb3h5Ojpsb2dnZXIgY29uc3QpOgorICAgICAgICAqIFVJUHJvY2Vzcy9NZWRpYUtl
eVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5Lmg6IEFkZGVkLgorICAgICAgICAo
V2ViS2l0OjpNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5OjpwYWdl
IGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6TWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVz
dE1hbmFnZXJQcm94eTo6ZGVueVJlcXVlc3QpOgorICAgICAgICAqIFVJUHJvY2Vzcy9NZWRpYUtl
eVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0UHJveHkuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYktp
dDo6TWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdFByb3h5OjpNZWRpYUtleVN5c3RlbVBl
cm1pc3Npb25SZXF1ZXN0UHJveHkpOgorICAgICAgICAoV2ViS2l0OjpNZWRpYUtleVN5c3RlbVBl
cm1pc3Npb25SZXF1ZXN0UHJveHk6OmFsbG93KToKKyAgICAgICAgKFdlYktpdDo6TWVkaWFLZXlT
eXN0ZW1QZXJtaXNzaW9uUmVxdWVzdFByb3h5OjpkZW55KToKKyAgICAgICAgKFdlYktpdDo6TWVk
aWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdFByb3h5OjppbnZhbGlkYXRlKToKKyAgICAgICAg
KFdlYktpdDo6TWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdFByb3h5Ojpkb0RlZmF1bHRB
Y3Rpb24pOgorICAgICAgICAqIFVJUHJvY2Vzcy9NZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1
ZXN0UHJveHkuaDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6Ok1lZGlhS2V5U3lzdGVtUGVybWlz
c2lvblJlcXVlc3RQcm94eTo6Y3JlYXRlKToKKyAgICAgICAgKFdlYktpdDo6TWVkaWFLZXlTeXN0
ZW1QZXJtaXNzaW9uUmVxdWVzdFByb3h5Ojppc1BlbmRpbmcgY29uc3QpOgorICAgICAgICAoV2Vi
S2l0OjpNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0UHJveHk6Om1lZGlhS2V5U3lzdGVt
SUQgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1
ZXN0UHJveHk6Om1haW5GcmFtZUlEIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6TWVkaWFLZXlT
eXN0ZW1QZXJtaXNzaW9uUmVxdWVzdFByb3h5OjpmcmFtZUlEIGNvbnN0KToKKyAgICAgICAgKFdl
YktpdDo6TWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdFByb3h5Ojp0b3BMZXZlbERvY3Vt
ZW50U2VjdXJpdHlPcmlnaW4pOgorICAgICAgICAoV2ViS2l0OjpNZWRpYUtleVN5c3RlbVBlcm1p
c3Npb25SZXF1ZXN0UHJveHk6OnRvcExldmVsRG9jdW1lbnRTZWN1cml0eU9yaWdpbiBjb25zdCk6
CisgICAgICAgIChXZWJLaXQ6Ok1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RQcm94eTo6
a2V5U3lzdGVtIGNvbnN0KToKKyAgICAgICAgKiBVSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25S
ZW1vdGVSZWFsdGltZU1lZGlhU291cmNlLmg6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQ
cm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6cmVxdWVzdE1lZGlhS2V5
U3lzdGVtUGVybWlzc2lvbkZvckZyYW1lKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5
OjptZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcik6CisgICAgICAgIChXZWJL
aXQ6OldlYlBhZ2VQcm94eTo6cmVxdWVzdE1lZGlhS2V5U3lzdGVtUGVybWlzc2lvbkJ5RGVmYXVs
dEFjdGlvbik6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oOgorICAgICAgICAq
IFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW46CisgICAgICAgICogV2ViUHJvY2Vz
cy9FbmNyeXB0ZWRNZWRpYS9NZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlci5j
cHA6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1
ZXN0TWFuYWdlcjo6TWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIpOgorICAg
ICAgICAoV2ViS2l0OjpNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcjo6c3Rh
cnRNZWRpYUtleVN5c3RlbVJlcXVlc3QpOgorICAgICAgICAoV2ViS2l0OjpNZWRpYUtleVN5c3Rl
bVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcjo6c2VuZE1lZGlhS2V5U3lzdGVtUmVxdWVzdCk6Cisg
ICAgICAgIChXZWJLaXQ6Ok1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyOjpj
YW5jZWxNZWRpYUtleVN5c3RlbVJlcXVlc3QpOgorICAgICAgICAoV2ViS2l0OjpNZWRpYUtleVN5
c3RlbVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcjo6bWVkaWFLZXlTeXN0ZW1XYXNHcmFudGVkKToK
KyAgICAgICAgKFdlYktpdDo6TWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXI6
Om1lZGlhS2V5U3lzdGVtV2FzRGVuaWVkKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0VuY3J5cHRl
ZE1lZGlhL01lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyLmg6IEFkZGVkLgor
ICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViTWVkaWFLZXlTeXN0ZW1DbGll
bnQuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViTWVkaWFLZXlTeXN0ZW1DbGllbnQ6
OldlYk1lZGlhS2V5U3lzdGVtQ2xpZW50KToKKyAgICAgICAgKFdlYktpdDo6V2ViTWVkaWFLZXlT
eXN0ZW1DbGllbnQ6OnBhZ2VEZXN0cm95ZWQpOgorICAgICAgICAoV2ViS2l0OjpXZWJNZWRpYUtl
eVN5c3RlbUNsaWVudDo6cmVxdWVzdE1lZGlhS2V5U3lzdGVtKToKKyAgICAgICAgKFdlYktpdDo6
V2ViTWVkaWFLZXlTeXN0ZW1DbGllbnQ6OmNhbmNlbE1lZGlhS2V5U3lzdGVtUmVxdWVzdCk6Cisg
ICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJNZWRpYUtleVN5c3RlbUNsaWVu
dC5oOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViTWVkaWFLZXlTeXN0ZW1DbGllbnQ6On5X
ZWJNZWRpYUtleVN5c3RlbUNsaWVudCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dl
YlBhZ2UuY3BwOgorICAgICAgICAoV2ViS2l0OjptX2xpbWl0c05hdmlnYXRpb25zVG9BcHBCb3Vu
ZERvbWFpbnMpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjptZWRpYUtleVN5c3RlbVdhc0dy
YW50ZWQpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjptZWRpYUtleVN5c3RlbVdhc0Rlbmll
ZCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaDoKKyAgICAgICAgKFdl
YktpdDo6V2ViUGFnZTo6bWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIpOgor
ICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluOgorCiAyMDIx
LTAyLTAyICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAogICAgICAgICBpbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL21lZGlhY2FwdHVyZS1yZWNvcmQvTWVkaWFSZWNv
cmRlci1zdG9wLmh0bWwgaXMgZmxha3kgd2hlbiBHUFVQcm9jZXNzIGlzIGVuYWJsZWQKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYkNvcmUvQ01h
a2VMaXN0cy50eHQKaW5kZXggYmFhNDUzZDZjZjFjMjJlNjU5MzExNTQ0YjAyNmI3OGFkNGI1OGQ2
NC4uYjJmMTY3OTAxMmMwM2I4MGRmYzU0ZDI0NzhmZjBiZTJlODI0ZTBiOSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvQ01ha2VM
aXN0cy50eHQKQEAgLTE0OTcsNiArMTQ5Nyw4IEBAIGlmIChFTkFCTEVfRU5DUllQVEVEX01FRElB
KQogICAgICAgICBNb2R1bGVzL2VuY3J5cHRlZG1lZGlhL01lZGlhS2V5U2Vzc2lvbi5jcHAKICAg
ICAgICAgTW9kdWxlcy9lbmNyeXB0ZWRtZWRpYS9NZWRpYUtleVN0YXR1c01hcC5jcHAKICAgICAg
ICAgTW9kdWxlcy9lbmNyeXB0ZWRtZWRpYS9NZWRpYUtleVN5c3RlbUFjY2Vzcy5jcHAKKyAgICAg
ICAgTW9kdWxlcy9lbmNyeXB0ZWRtZWRpYS9NZWRpYUtleVN5c3RlbUNvbnRyb2xsZXIuY3BwCisg
ICAgICAgIE1vZHVsZXMvZW5jcnlwdGVkbWVkaWEvTWVkaWFLZXlTeXN0ZW1SZXF1ZXN0LmNwcAog
ICAgICAgICBNb2R1bGVzL2VuY3J5cHRlZG1lZGlhL01lZGlhS2V5cy5jcHAKICAgICAgICAgTW9k
dWxlcy9lbmNyeXB0ZWRtZWRpYS9OYXZpZ2F0b3JFTUUuY3BwCiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UgYi9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCmlu
ZGV4IGFiYTE1ZTBlZDdhMDE0NjQ1ODJmM2Y5MjgwZTY3OGIzZGIyOGY2MzIuLjhjMWI2YzMyNzgy
YTkxZDljNDE0YzYxMGI0OWU2NzllZWI2MGJiNjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L0hlYWRlcnMuY21ha2UKKysrIGIvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQpAQCAtMjQs
NiArMjQsOSBAQCBzZXQoV2ViQ29yZV9QUklWQVRFX0ZSQU1FV09SS19IRUFERVJTCiAgICAgTW9k
dWxlcy9jb250YWN0LXBpY2tlci9Db250YWN0c1JlcXVlc3REYXRhLmgKIAogICAgIE1vZHVsZXMv
ZW5jcnlwdGVkbWVkaWEvQ0RNQ2xpZW50LmgKKyAgICBNb2R1bGVzL2VuY3J5cHRlZG1lZGlhL01l
ZGlhS2V5U3lzdGVtQ2xpZW50LmgKKyAgICBNb2R1bGVzL2VuY3J5cHRlZG1lZGlhL01lZGlhS2V5
U3lzdGVtQ29udHJvbGxlci5oCisgICAgTW9kdWxlcy9lbmNyeXB0ZWRtZWRpYS9NZWRpYUtleVN5
c3RlbVJlcXVlc3QuaAogCiAgICAgTW9kdWxlcy9mZXRjaC9GZXRjaEJvZHlDb25zdW1lci5oCiAg
ICAgTW9kdWxlcy9mZXRjaC9GZXRjaEJvZHlTb3VyY2UuaApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9lbmNyeXB0ZWRtZWRpYS9NZWRpYUtleVN5c3RlbUNsaWVudC5oIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9lbmNyeXB0ZWRtZWRpYS9NZWRpYUtleVN5c3RlbUNsaWVudC5o
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjUzZDMwYjFkMGY4OWUwMDUwYWFkMDQyMjdhMTBlODQ0MDI5ODI5N2IKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2VuY3J5cHRlZG1lZGlhL01l
ZGlhS2V5U3lzdGVtQ2xpZW50LmgKQEAgLTAsMCArMSw1MiBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAyMSBJZ2FsaWEgUy5MLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBB
TkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMgQkUg
TElBQkxFIEZPUiBBTlkKKyAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisgKiAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7CisgKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04KKyAqIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UgT0YgVEhJUworICogU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFC
TEUoRU5DUllQVEVEX01FRElBKQorCisjaW5jbHVkZSA8d3RmL0NvbXBsZXRpb25IYW5kbGVyLmg+
CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgRG9jdW1lbnQ7CitjbGFzcyBQYWdlOwor
Y2xhc3MgTWVkaWFLZXlTeXN0ZW1SZXF1ZXN0OworCitjbGFzcyBNZWRpYUtleVN5c3RlbUNsaWVu
dCB7CitwdWJsaWM6CisgICAgdmlydHVhbCB2b2lkIHBhZ2VEZXN0cm95ZWQoKSA9IDA7CisKKyAg
ICB2aXJ0dWFsIHZvaWQgcmVxdWVzdE1lZGlhS2V5U3lzdGVtKE1lZGlhS2V5U3lzdGVtUmVxdWVz
dCYpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgY2FuY2VsTWVkaWFLZXlTeXN0ZW1SZXF1ZXN0KE1l
ZGlhS2V5U3lzdGVtUmVxdWVzdCYpID0gMDsKKworcHJvdGVjdGVkOgorICAgIHZpcnR1YWwgfk1l
ZGlhS2V5U3lzdGVtQ2xpZW50KCkgPSBkZWZhdWx0OworfTsKKworV0VCQ09SRV9FWFBPUlQgdm9p
ZCBwcm92aWRlTWVkaWFLZXlTeXN0ZW1UbyhQYWdlKiwgTWVkaWFLZXlTeXN0ZW1DbGllbnQqKTsK
KworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKEVOQ1JZUFRFRF9N
RURJQSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZW5jcnlwdGVkbWVkaWEv
TWVkaWFLZXlTeXN0ZW1Db250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZW5j
cnlwdGVkbWVkaWEvTWVkaWFLZXlTeXN0ZW1Db250cm9sbGVyLmNwcApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xMjJi
YTgyNWMyYzczNzYwYzlhZDgzYjAyM2RmZjBmYTAyN2Q0ZTQ5Ci0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9lbmNyeXB0ZWRtZWRpYS9NZWRpYUtleVN5c3RlbUNvbnRy
b2xsZXIuY3BwCkBAIC0wLDAgKzEsNjYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgSWdh
bGlhIFMuTC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycgQU5EIEFOWQorICog
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1Ig
QU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworICogTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OCisgKiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMKKyAqIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJNZWRp
YUtleVN5c3RlbUNvbnRyb2xsZXIuaCIKKworI2lmIEVOQUJMRShFTkNSWVBURURfTUVESUEpCisK
KyNpbmNsdWRlICJET01XaW5kb3cuaCIKKyNpbmNsdWRlICJEb2N1bWVudC5oIgorI2luY2x1ZGUg
IkZyYW1lLmgiCisjaW5jbHVkZSAiSFRNTElGcmFtZUVsZW1lbnQuaCIKKyNpbmNsdWRlICJNZWRp
YUtleVN5c3RlbVJlcXVlc3QuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjb25zdCBjaGFy
KiBNZWRpYUtleVN5c3RlbUNvbnRyb2xsZXI6OnN1cHBsZW1lbnROYW1lKCkKK3sKKyAgICByZXR1
cm4gIk1lZGlhS2V5U3lzdGVtQ29udHJvbGxlciI7Cit9CisKK01lZGlhS2V5U3lzdGVtQ29udHJv
bGxlcjo6TWVkaWFLZXlTeXN0ZW1Db250cm9sbGVyKE1lZGlhS2V5U3lzdGVtQ2xpZW50KiBjbGll
bnQpCisgICAgOiBtX2NsaWVudChjbGllbnQpCit7Cit9CisKK01lZGlhS2V5U3lzdGVtQ29udHJv
bGxlcjo6fk1lZGlhS2V5U3lzdGVtQ29udHJvbGxlcigpCit7CisgICAgbV9jbGllbnQtPnBhZ2VE
ZXN0cm95ZWQoKTsKK30KKwordm9pZCBwcm92aWRlTWVkaWFLZXlTeXN0ZW1UbyhQYWdlKiBwYWdl
LCBNZWRpYUtleVN5c3RlbUNsaWVudCogY2xpZW50KQoreworICAgIE1lZGlhS2V5U3lzdGVtQ29u
dHJvbGxlcjo6cHJvdmlkZVRvKHBhZ2UsIE1lZGlhS2V5U3lzdGVtQ29udHJvbGxlcjo6c3VwcGxl
bWVudE5hbWUoKSwgbWFrZVVuaXF1ZTxNZWRpYUtleVN5c3RlbUNvbnRyb2xsZXI+KGNsaWVudCkp
OworfQorCit2b2lkIE1lZGlhS2V5U3lzdGVtQ29udHJvbGxlcjo6bG9nUmVxdWVzdE1lZGlhS2V5
U3lzdGVtRGVuaWFsKERvY3VtZW50JiBkb2N1bWVudCkKK3sKKyAgICBpZiAoYXV0byogd2luZG93
ID0gZG9jdW1lbnQuZG9tV2luZG93KCkpCisgICAgICAgIHdpbmRvdy0+cHJpbnRFcnJvck1lc3Nh
Z2UobWFrZVN0cmluZygiTm90IGFsbG93ZWQgdG8gYWNjZXNzIE1lZGlhS2V5U3lzdGVtLiIpKTsK
K30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKE1FRElBX1NU
UkVBTSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZW5jcnlwdGVkbWVkaWEv
TWVkaWFLZXlTeXN0ZW1Db250cm9sbGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2VuY3J5
cHRlZG1lZGlhL01lZGlhS2V5U3lzdGVtQ29udHJvbGxlci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjE5YTI4YTJi
YjkwZWI0NDBjNjc3ODAxZWY3OWFjZDhmZmIxYWE4MDMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2VuY3J5cHRlZG1lZGlhL01lZGlhS2V5U3lzdGVtQ29udHJvbGxl
ci5oCkBAIC0wLDAgKzEsNzAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgSWdhbGlhIFMu
TC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuICBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBU
SEUgSU1QTElFRAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisg
KiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENP
TlNFUVVFTlRJQUwgREFNQUdFUworICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OCisgKiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMK
KyAqIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKEVOQ1JZUFRFRF9NRURJ
QSkKKworI2luY2x1ZGUgIkZlYXR1cmVQb2xpY3kuaCIKKyNpbmNsdWRlICJNZWRpYUtleVN5c3Rl
bUNsaWVudC5oIgorI2luY2x1ZGUgIlBhZ2UuaCIKKyNpbmNsdWRlIDx3dGYvQ29tcGxldGlvbkhh
bmRsZXIuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBNZWRpYUtleVN5c3RlbVJl
cXVlc3Q7CisKK2NsYXNzIE1lZGlhS2V5U3lzdGVtQ29udHJvbGxlciA6IHB1YmxpYyBTdXBwbGVt
ZW50PFBhZ2U+IHsKKyAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKK3B1YmxpYzoKKyAgICBl
eHBsaWNpdCBNZWRpYUtleVN5c3RlbUNvbnRyb2xsZXIoTWVkaWFLZXlTeXN0ZW1DbGllbnQqKTsK
KyAgICB+TWVkaWFLZXlTeXN0ZW1Db250cm9sbGVyKCk7CisKKyAgICBNZWRpYUtleVN5c3RlbUNs
aWVudCogY2xpZW50KCkgY29uc3QgeyByZXR1cm4gbV9jbGllbnQ7IH0KKworICAgIHZvaWQgcmVx
dWVzdE1lZGlhS2V5U3lzdGVtKE1lZGlhS2V5U3lzdGVtUmVxdWVzdCYpOworICAgIHZvaWQgY2Fu
Y2VsTWVkaWFLZXlTeXN0ZW1SZXF1ZXN0KE1lZGlhS2V5U3lzdGVtUmVxdWVzdCYpOworCisgICAg
dm9pZCBsb2dSZXF1ZXN0TWVkaWFLZXlTeXN0ZW1EZW5pYWwoRG9jdW1lbnQmKTsKKworICAgIFdF
QkNPUkVfRVhQT1JUIHN0YXRpYyBjb25zdCBjaGFyKiBzdXBwbGVtZW50TmFtZSgpOworICAgIHN0
YXRpYyBNZWRpYUtleVN5c3RlbUNvbnRyb2xsZXIqIGZyb20oUGFnZSogcGFnZSkgeyByZXR1cm4g
c3RhdGljX2Nhc3Q8TWVkaWFLZXlTeXN0ZW1Db250cm9sbGVyKj4oU3VwcGxlbWVudDxQYWdlPjo6
ZnJvbShwYWdlLCBzdXBwbGVtZW50TmFtZSgpKSk7IH0KKworcHJpdmF0ZToKKyAgICBNZWRpYUtl
eVN5c3RlbUNsaWVudCogbV9jbGllbnQ7Cit9OworCitpbmxpbmUgdm9pZCBNZWRpYUtleVN5c3Rl
bUNvbnRyb2xsZXI6OnJlcXVlc3RNZWRpYUtleVN5c3RlbShNZWRpYUtleVN5c3RlbVJlcXVlc3Qm
IHJlcXVlc3QpCit7CisgICAgbV9jbGllbnQtPnJlcXVlc3RNZWRpYUtleVN5c3RlbShyZXF1ZXN0
KTsKK30KKworaW5saW5lIHZvaWQgTWVkaWFLZXlTeXN0ZW1Db250cm9sbGVyOjpjYW5jZWxNZWRp
YUtleVN5c3RlbVJlcXVlc3QoTWVkaWFLZXlTeXN0ZW1SZXF1ZXN0JiByZXF1ZXN0KQoreworICAg
IG1fY2xpZW50LT5jYW5jZWxNZWRpYUtleVN5c3RlbVJlcXVlc3QocmVxdWVzdCk7Cit9CisKK30g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShFTkNSWVBURURfTUVESUEp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2VuY3J5cHRlZG1lZGlhL01lZGlh
S2V5U3lzdGVtUmVxdWVzdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2VuY3J5cHRlZG1l
ZGlhL01lZGlhS2V5U3lzdGVtUmVxdWVzdC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uN2VmNTNhYTZhYjU1MmVk
ZTU0YTQ2YTIyYjZkYzJjMGVhYTMzOTNhYwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvZW5jcnlwdGVkbWVkaWEvTWVkaWFLZXlTeXN0ZW1SZXF1ZXN0LmNwcApAQCAt
MCwwICsxLDEyNyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBJZ2FsaWEgUy5MLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBM
SUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKKyAqIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVO
VElBTCBEQU1BR0VTCisgKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7CisgKiBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04KKyAqIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUworICogU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIk1lZGlhS2V5U3lzdGVtUmVx
dWVzdC5oIgorCisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKworI2luY2x1ZGUgIkRvY3VtZW50
LmgiCisjaW5jbHVkZSAiRnJhbWUuaCIKKyNpbmNsdWRlICJKU0RPTVByb21pc2VEZWZlcnJlZC5o
IgorI2luY2x1ZGUgIkpTTWVkaWFLZXlTeXN0ZW1BY2Nlc3MuaCIKKyNpbmNsdWRlICJMb2dnaW5n
LmgiCisjaW5jbHVkZSAiTWVkaWFLZXlTeXN0ZW1Db250cm9sbGVyLmgiCisjaW5jbHVkZSAiUGxh
dGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyLmgiCisjaW5jbHVkZSAiU2V0dGluZ3MuaCIKKyNpbmNs
dWRlICJXaW5kb3dFdmVudExvb3AuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitSZWY8TWVk
aWFLZXlTeXN0ZW1SZXF1ZXN0PiBNZWRpYUtleVN5c3RlbVJlcXVlc3Q6OmNyZWF0ZShEb2N1bWVu
dCYgZG9jdW1lbnQsIGNvbnN0IFN0cmluZyYga2V5U3lzdGVtLCBSZWY8RGVmZXJyZWRQcm9taXNl
PiYmIHByb21pc2UpCit7CisgICAgYXV0byByZXN1bHQgPSBhZG9wdFJlZigqbmV3IE1lZGlhS2V5
U3lzdGVtUmVxdWVzdChkb2N1bWVudCwga2V5U3lzdGVtLCBXVEZNb3ZlKHByb21pc2UpKSk7Cisg
ICAgcmVzdWx0LT5zdXNwZW5kSWZOZWVkZWQoKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorCitN
ZWRpYUtleVN5c3RlbVJlcXVlc3Q6Ok1lZGlhS2V5U3lzdGVtUmVxdWVzdChEb2N1bWVudCYgZG9j
dW1lbnQsIGNvbnN0IFN0cmluZyYga2V5U3lzdGVtLCBSZWY8RGVmZXJyZWRQcm9taXNlPiYmIHBy
b21pc2UpCisgICAgOiBBY3RpdmVET01PYmplY3QoZG9jdW1lbnQpCisgICAgLCBtX2tleVN5c3Rl
bShrZXlTeXN0ZW0pCisgICAgLCBtX3Byb21pc2UoV1RGTW92ZShwcm9taXNlKSkKK3sKK30KKwor
TWVkaWFLZXlTeXN0ZW1SZXF1ZXN0Ojp+TWVkaWFLZXlTeXN0ZW1SZXF1ZXN0KCkKK3sKKyAgICBp
ZiAobV9hbGxvd0NvbXBsZXRpb25IYW5kbGVyKQorICAgICAgICBtX2FsbG93Q29tcGxldGlvbkhh
bmRsZXIoV1RGTW92ZShtX3Byb21pc2UpKTsKK30KKworU2VjdXJpdHlPcmlnaW4qIE1lZGlhS2V5
U3lzdGVtUmVxdWVzdDo6dG9wTGV2ZWxEb2N1bWVudE9yaWdpbigpIGNvbnN0Cit7CisgICAgaWYg
KCFtX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQpCisgICAgICAgIHJldHVybiBudWxscHRyOworICAg
IHJldHVybiAmbV9zY3JpcHRFeGVjdXRpb25Db250ZXh0LT50b3BPcmlnaW4oKTsKK30KKwordm9p
ZCBNZWRpYUtleVN5c3RlbVJlcXVlc3Q6OnN0YXJ0KCkKK3sKKyAgICBBU1NFUlQobV9zY3JpcHRF
eGVjdXRpb25Db250ZXh0KTsKKyAgICBpZiAoIW1fc2NyaXB0RXhlY3V0aW9uQ29udGV4dCkgewor
ICAgICAgICBkZW55KCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBhdXRvJiBkb2N1
bWVudCA9IGRvd25jYXN0PERvY3VtZW50PigqbV9zY3JpcHRFeGVjdXRpb25Db250ZXh0KTsKKyAg
ICBhdXRvKiBjb250cm9sbGVyID0gTWVkaWFLZXlTeXN0ZW1Db250cm9sbGVyOjpmcm9tKGRvY3Vt
ZW50LnBhZ2UoKSk7CisgICAgaWYgKCFjb250cm9sbGVyKSB7CisgICAgICAgIGRlbnkoKTsKKyAg
ICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGNvbnRyb2xsZXItPnJlcXVlc3RNZWRpYUtleVN5
c3RlbSgqdGhpcyk7Cit9CisKK3ZvaWQgTWVkaWFLZXlTeXN0ZW1SZXF1ZXN0OjphbGxvdyhDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCit7CisgICAgcXVldWVU
YXNrS2VlcGluZ09iamVjdEFsaXZlKCp0aGlzLCBUYXNrU291cmNlOjpVc2VySW50ZXJhY3Rpb24s
IFt0aGlzLCBoYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcildKCkgbXV0YWJsZSB7
CisgICAgICAgIGF1dG8gY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKG1fYWxsb3dDb21wbGV0
aW9uSGFuZGxlcik7CisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKFdURk1vdmUobV9wcm9taXNl
KSk7CisgICAgICAgIGhhbmRsZXIoKTsKKyAgICB9KTsKK30KKwordm9pZCBNZWRpYUtleVN5c3Rl
bVJlcXVlc3Q6OmRlbnkoY29uc3QgU3RyaW5nJiBtZXNzYWdlKQoreworICAgIGlmICghbV9zY3Jp
cHRFeGVjdXRpb25Db250ZXh0KQorICAgICAgICByZXR1cm47CisKKyAgICBFeGNlcHRpb25Db2Rl
IGNvZGUgPSBOb3RTdXBwb3J0ZWRFcnJvcjsKKyAgICBpZiAoIW1lc3NhZ2UuaXNFbXB0eSgpKQor
ICAgICAgICBtX3Byb21pc2UtPnJlamVjdChjb2RlLCBtZXNzYWdlKTsKKyAgICBlbHNlCisgICAg
ICAgIG1fcHJvbWlzZS0+cmVqZWN0KGNvZGUpOworfQorCit2b2lkIE1lZGlhS2V5U3lzdGVtUmVx
dWVzdDo6c3RvcCgpCit7CisgICAgYXV0byYgZG9jdW1lbnQgPSBkb3duY2FzdDxEb2N1bWVudD4o
Km1fc2NyaXB0RXhlY3V0aW9uQ29udGV4dCk7CisgICAgaWYgKGF1dG8qIGNvbnRyb2xsZXIgPSBN
ZWRpYUtleVN5c3RlbUNvbnRyb2xsZXI6OmZyb20oZG9jdW1lbnQucGFnZSgpKSkKKyAgICAgICAg
Y29udHJvbGxlci0+Y2FuY2VsTWVkaWFLZXlTeXN0ZW1SZXF1ZXN0KCp0aGlzKTsKK30KKworY29u
c3QgY2hhciogTWVkaWFLZXlTeXN0ZW1SZXF1ZXN0OjphY3RpdmVET01PYmplY3ROYW1lKCkgY29u
c3QKK3sKKyAgICByZXR1cm4gIk1lZGlhS2V5U3lzdGVtUmVxdWVzdCI7Cit9CisKK0RvY3VtZW50
KiBNZWRpYUtleVN5c3RlbVJlcXVlc3Q6OmRvY3VtZW50KCkgY29uc3QKK3sKKyAgICByZXR1cm4g
ZG93bmNhc3Q8RG9jdW1lbnQ+KG1fc2NyaXB0RXhlY3V0aW9uQ29udGV4dCk7Cit9CisKK30gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShFTkNSWVBURURfTUVESUEpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2VuY3J5cHRlZG1lZGlhL01lZGlhS2V5
U3lzdGVtUmVxdWVzdC5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9lbmNyeXB0ZWRtZWRpYS9N
ZWRpYUtleVN5c3RlbVJlcXVlc3QuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yMzEzYzM4YjJiNmZhOGFkOTViYmFi
N2VjZjM1Y2M0N2JiZDU1ZTUxCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9lbmNyeXB0ZWRtZWRpYS9NZWRpYUtleVN5c3RlbVJlcXVlc3QuaApAQCAtMCwwICsxLDgw
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIElnYWxpYSBTLkwuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIg
UFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorICogRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFH
RVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTgorICog
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTCisgKiBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisj
cHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShFTkNSWVBURURfTUVESUEpCisKKyNpbmNsdWRlICJB
Y3RpdmVET01PYmplY3QuaCIKKyNpbmNsdWRlICJJRExUeXBlcy5oIgorI2luY2x1ZGUgIkpTRE9N
UHJvbWlzZURlZmVycmVkLmgiCisjaW5jbHVkZSA8d3RmL0NvbXBsZXRpb25IYW5kbGVyLmg+Cisj
aW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KKyNpbmNsdWRlIDx3dGYvT2JqZWN0SWRlbnRpZmllci5o
PgorI2luY2x1ZGUgPHd0Zi9VbmlxdWVSZWYuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitj
bGFzcyBTZWN1cml0eU9yaWdpbjsKK2NsYXNzIE1lZGlhS2V5U3lzdGVtOworCit0ZW1wbGF0ZSA8
dHlwZW5hbWUgSURMVHlwZT4gY2xhc3MgRE9NUHJvbWlzZURlZmVycmVkOworCitlbnVtIE1lZGlh
S2V5U3lzdGVtUmVxdWVzdElkZW50aWZpZXJUeXBlIHsgfTsKK3VzaW5nIE1lZGlhS2V5U3lzdGVt
UmVxdWVzdElkZW50aWZpZXIgPSBPYmplY3RJZGVudGlmaWVyPE1lZGlhS2V5U3lzdGVtUmVxdWVz
dElkZW50aWZpZXJUeXBlPjsKKworY2xhc3MgTWVkaWFLZXlTeXN0ZW1SZXF1ZXN0IDogcHVibGlj
IFJlZkNvdW50ZWQ8TWVkaWFLZXlTeXN0ZW1SZXF1ZXN0PiwgcHVibGljIEFjdGl2ZURPTU9iamVj
dCB7CitwdWJsaWM6CisgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIFJlZjxNZWRpYUtleVN5c3Rl
bVJlcXVlc3Q+IGNyZWF0ZShEb2N1bWVudCYsIGNvbnN0IFN0cmluZyYga2V5U3lzdGVtLCBSZWY8
RGVmZXJyZWRQcm9taXNlPiYmKTsKKyAgICB2aXJ0dWFsIH5NZWRpYUtleVN5c3RlbVJlcXVlc3Qo
KTsKKworICAgIHZvaWQgc2V0QWxsb3dDYWxsYmFjayhDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFJl
ZjxEZWZlcnJlZFByb21pc2U+JiYpPiYmIGNhbGxiYWNrKSB7IG1fYWxsb3dDb21wbGV0aW9uSGFu
ZGxlciA9IFdURk1vdmUoY2FsbGJhY2spOyB9CisgICAgTWVkaWFLZXlTeXN0ZW1SZXF1ZXN0SWRl
bnRpZmllciBpZGVudGlmaWVyKCkgY29uc3QgeyByZXR1cm4gbV9pZGVudGlmaWVyOyB9CisgICAg
V0VCQ09SRV9FWFBPUlQgdm9pZCBzdGFydCgpOworCisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBh
bGxvdyhDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOworICAgIFdFQkNPUkVfRVhQT1JUIHZv
aWQgZGVueShjb25zdCBTdHJpbmcmIGVycm9yTWVzc2FnZSA9IGVtcHR5U3RyaW5nKCkpOworCisg
ICAgV0VCQ09SRV9FWFBPUlQgU2VjdXJpdHlPcmlnaW4qIHRvcExldmVsRG9jdW1lbnRPcmlnaW4o
KSBjb25zdDsKKyAgICBXRUJDT1JFX0VYUE9SVCBEb2N1bWVudCogZG9jdW1lbnQoKSBjb25zdDsK
KworICAgIGNvbnN0IFN0cmluZyBrZXlTeXN0ZW0oKSBjb25zdCB7IHJldHVybiBtX2tleVN5c3Rl
bTsgfQorCitwcml2YXRlOgorICAgIE1lZGlhS2V5U3lzdGVtUmVxdWVzdChEb2N1bWVudCYsIGNv
bnN0IFN0cmluZyYga2V5U3lzdGVtLCBSZWY8RGVmZXJyZWRQcm9taXNlPiYmKTsKKworICAgIHZv
aWQgc3RvcCgpIGZpbmFsOworICAgIGNvbnN0IGNoYXIqIGFjdGl2ZURPTU9iamVjdE5hbWUoKSBj
b25zdCBmaW5hbDsKKworICAgIE1lZGlhS2V5U3lzdGVtUmVxdWVzdElkZW50aWZpZXIgbV9pZGVu
dGlmaWVyOworCisgICAgU3RyaW5nIG1fa2V5U3lzdGVtOworICAgIFJlZjxEZWZlcnJlZFByb21p
c2U+IG1fcHJvbWlzZTsKKworICAgIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoUmVmPERlZmVycmVk
UHJvbWlzZT4mJik+IG1fYWxsb3dDb21wbGV0aW9uSGFuZGxlcjsKK307CisKK30gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShFTkNSWVBURURfTUVESUEpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2VuY3J5cHRlZG1lZGlhL05hdmlnYXRvckVNRS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2VuY3J5cHRlZG1lZGlhL05hdmlnYXRvckVNRS5j
cHAKaW5kZXggNjk0NTY0YWYzZTU5M2E2OTYxNzU4ZmFmZDcyYTdkNTA0N2E2YWMzNi4uZmM2MTM3
NGUyMTY0MWMxNjc0MWQ3ZTUxZGQwZTNlN2EyZDUyYjY2MiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9lbmNyeXB0ZWRtZWRpYS9OYXZpZ2F0b3JFTUUuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvZW5jcnlwdGVkbWVkaWEvTmF2aWdhdG9yRU1FLmNwcApAQCAtMzcs
NiArMzcsNyBAQAogI2luY2x1ZGUgIkpTRE9NUHJvbWlzZURlZmVycmVkLmgiCiAjaW5jbHVkZSAi
SlNNZWRpYUtleVN5c3RlbUFjY2Vzcy5oIgogI2luY2x1ZGUgIkxvZ2dpbmcuaCIKKyNpbmNsdWRl
ICJNZWRpYUtleVN5c3RlbVJlcXVlc3QuaCIKICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdCdWls
ZGVyLmg+CiAKIG5hbWVzcGFjZSBXVEYgewpAQCAtOTksMjMgKzEwMCwyNyBAQCB2b2lkIE5hdmln
YXRvckVNRTo6cmVxdWVzdE1lZGlhS2V5U3lzdGVtQWNjZXNzKE5hdmlnYXRvciYgbmF2aWdhdG9y
LCBEb2N1bWVudCYgZAogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgZG9jdW1lbnQucG9z
dFRhc2soW2tleVN5c3RlbSwgc3VwcG9ydGVkQ29uZmlndXJhdGlvbnMgPSBXVEZNb3ZlKHN1cHBv
cnRlZENvbmZpZ3VyYXRpb25zKSwgcHJvbWlzZSA9IFdURk1vdmUocHJvbWlzZSksICZkb2N1bWVu
dCwgbG9nZ2VyID0gV1RGTW92ZShsb2dnZXIpLCBpZGVudGlmaWVyID0gV1RGTW92ZShpZGVudGlm
aWVyKV0gKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmKSBtdXRhYmxlIHsKLSAgICAgICAgLy8gMy4g
TGV0IGRvY3VtZW50IGJlIHRoZSBjYWxsaW5nIGNvbnRleHQncyBEb2N1bWVudC4KLSAgICAgICAg
Ly8gNC4gTGV0IG9yaWdpbiBiZSB0aGUgb3JpZ2luIG9mIGRvY3VtZW50LgotICAgICAgICAvLyA1
LiBMZXQgcHJvbWlzZSBiZSBhIG5ldyBwcm9taXNlLgotICAgICAgICAvLyA2LiBSdW4gdGhlIGZv
bGxvd2luZyBzdGVwcyBpbiBwYXJhbGxlbDoKLSAgICAgICAgLy8gNi4xLiBJZiBrZXlTeXN0ZW0g
aXMgbm90IG9uZSBvZiB0aGUgS2V5IFN5c3RlbXMgc3VwcG9ydGVkIGJ5IHRoZSB1c2VyIGFnZW50
LCByZWplY3QgcHJvbWlzZSB3aXRoIGEgTm90U3VwcG9ydGVkRXJyb3IuCi0gICAgICAgIC8vICAg
ICAgU3RyaW5nIGNvbXBhcmlzb24gaXMgY2FzZS1zZW5zaXRpdmUuCi0gICAgICAgIGlmICghQ0RN
OjpzdXBwb3J0c0tleVN5c3RlbShrZXlTeXN0ZW0pKSB7Ci0gICAgICAgICAgICBpbmZvTG9nKGxv
Z2dlciwgaWRlbnRpZmllciwgIlJlamVjdGVkOiBrZXlTeXN0ZW0oIiwga2V5U3lzdGVtLCAiKSBu
b3Qgc3VwcG9ydGVkIik7Ci0gICAgICAgICAgICBwcm9taXNlLT5yZWplY3QoTm90U3VwcG9ydGVk
RXJyb3IpOwotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICB9Ci0KLSAgICAgICAgLy8gNi4y
LiBMZXQgaW1wbGVtZW50YXRpb24gYmUgdGhlIGltcGxlbWVudGF0aW9uIG9mIGtleVN5c3RlbS4K
LSAgICAgICAgYXV0byBpbXBsZW1lbnRhdGlvbiA9IENETTo6Y3JlYXRlKGRvY3VtZW50LCBrZXlT
eXN0ZW0pOwotICAgICAgICB0cnlOZXh0U3VwcG9ydGVkQ29uZmlndXJhdGlvbihXVEZNb3ZlKGlt
cGxlbWVudGF0aW9uKSwgV1RGTW92ZShzdXBwb3J0ZWRDb25maWd1cmF0aW9ucyksIFdURk1vdmUo
cHJvbWlzZSksIFdURk1vdmUobG9nZ2VyKSwgV1RGTW92ZShpZGVudGlmaWVyKSk7CisgICAgYXV0
byByZXF1ZXN0ID0gTWVkaWFLZXlTeXN0ZW1SZXF1ZXN0OjpjcmVhdGUoZG9jdW1lbnQsIGtleVN5
c3RlbSwgV1RGTW92ZShwcm9taXNlKSk7CisgICAgcmVxdWVzdC0+c2V0QWxsb3dDYWxsYmFjayhb
a2V5U3lzdGVtLCBzdXBwb3J0ZWRDb25maWd1cmF0aW9ucyA9IFdURk1vdmUoc3VwcG9ydGVkQ29u
ZmlndXJhdGlvbnMpLCAmZG9jdW1lbnQsIGxvZ2dlciA9IFdURk1vdmUobG9nZ2VyKSwgaWRlbnRp
ZmllciA9IFdURk1vdmUoaWRlbnRpZmllcildKFJlZjxEZWZlcnJlZFByb21pc2U+JiYgcHJvbWlz
ZSkgbXV0YWJsZSB7CisgICAgICAgIGRvY3VtZW50LnBvc3RUYXNrKFtwcm9taXNlID0gV1RGTW92
ZShwcm9taXNlKSwgJmRvY3VtZW50LCBrZXlTeXN0ZW0sIGxvZ2dlciA9IFdURk1vdmUobG9nZ2Vy
KSwgaWRlbnRpZmllciA9IFdURk1vdmUoaWRlbnRpZmllciksIHN1cHBvcnRlZENvbmZpZ3VyYXRp
b25zID0gV1RGTW92ZShzdXBwb3J0ZWRDb25maWd1cmF0aW9ucyldIChTY3JpcHRFeGVjdXRpb25D
b250ZXh0JikgbXV0YWJsZSB7CisgICAgICAgICAgICAvLyAzLiBMZXQgZG9jdW1lbnQgYmUgdGhl
IGNhbGxpbmcgY29udGV4dCdzIERvY3VtZW50LgorICAgICAgICAgICAgLy8gNC4gTGV0IG9yaWdp
biBiZSB0aGUgb3JpZ2luIG9mIGRvY3VtZW50LgorICAgICAgICAgICAgLy8gNS4gTGV0IHByb21p
c2UgYmUgYSBuZXcgcHJvbWlzZS4KKyAgICAgICAgICAgIC8vIDYuIFJ1biB0aGUgZm9sbG93aW5n
IHN0ZXBzIGluIHBhcmFsbGVsOgorICAgICAgICAgICAgLy8gNi4xLiBJZiBrZXlTeXN0ZW0gaXMg
bm90IG9uZSBvZiB0aGUgS2V5IFN5c3RlbXMgc3VwcG9ydGVkIGJ5IHRoZSB1c2VyIGFnZW50LCBy
ZWplY3QgcHJvbWlzZSB3aXRoIGEgTm90U3VwcG9ydGVkRXJyb3IuCisgICAgICAgICAgICAvLyAg
ICAgIFN0cmluZyBjb21wYXJpc29uIGlzIGNhc2Utc2Vuc2l0aXZlLgorICAgICAgICAgICAgaWYg
KCFDRE06OnN1cHBvcnRzS2V5U3lzdGVtKGtleVN5c3RlbSkpIHsKKyAgICAgICAgICAgICAgICBp
bmZvTG9nKGxvZ2dlciwgaWRlbnRpZmllciwgIlJlamVjdGVkOiBrZXlTeXN0ZW0oIiwga2V5U3lz
dGVtLCAiKSBub3Qgc3VwcG9ydGVkIik7CisgICAgICAgICAgICAgICAgcHJvbWlzZS0+cmVqZWN0
KE5vdFN1cHBvcnRlZEVycm9yKTsKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAg
ICB9CisKKyAgICAgICAgICAgIC8vIDYuMi4gTGV0IGltcGxlbWVudGF0aW9uIGJlIHRoZSBpbXBs
ZW1lbnRhdGlvbiBvZiBrZXlTeXN0ZW0uCisgICAgICAgICAgICBhdXRvIGltcGxlbWVudGF0aW9u
ID0gQ0RNOjpjcmVhdGUoZG9jdW1lbnQsIGtleVN5c3RlbSk7CisgICAgICAgICAgICB0cnlOZXh0
U3VwcG9ydGVkQ29uZmlndXJhdGlvbihXVEZNb3ZlKGltcGxlbWVudGF0aW9uKSwgV1RGTW92ZShz
dXBwb3J0ZWRDb25maWd1cmF0aW9ucyksIFdURk1vdmUocHJvbWlzZSksIFdURk1vdmUobG9nZ2Vy
KSwgV1RGTW92ZShpZGVudGlmaWVyKSk7CisgICAgICAgIH0pOwogICAgIH0pOworICAgIHJlcXVl
c3QtPnN0YXJ0KCk7CiB9CiAKIHN0YXRpYyB2b2lkIHRyeU5leHRTdXBwb3J0ZWRDb25maWd1cmF0
aW9uKFJlZlB0cjxDRE0+JiYgaW1wbGVtZW50YXRpb24sIFZlY3RvcjxNZWRpYUtleVN5c3RlbUNv
bmZpZ3VyYXRpb24+JiYgc3VwcG9ydGVkQ29uZmlndXJhdGlvbnMsIFJlZlB0cjxEZWZlcnJlZFBy
b21pc2U+JiYgcHJvbWlzZSwgUmVmPExvZ2dlcj4mJiBsb2dnZXIsIFdURjo6TG9nZ2VyOjpMb2dT
aXRlSWRlbnRpZmllciYmIGlkZW50aWZpZXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggODBlNTkxZDg3YzM5YzE2MjdjMDVlZWZk
YzBkNzExNDVjMWU4NmEyNi4uNDM2NjMzNWE3MGMwYjFhYjNlMzllNTc2OTJmMjIwMzg0YWE1MjEz
ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagpAQCAtMzA0MSw2ICszMDQxLDExIEBACiAJCTk5RDFCMkQzMjNBQzE0MzEwMDgxMUNGMCAv
KiBJbnNwZWN0b3JEZWJ1Z2dhYmxlVHlwZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gOTlEMUIyRDEyM0FDMTQzMDAwODExQ0YwIC8qIEluc3BlY3RvckRl
YnVnZ2FibGVUeXBlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsg
fTsgfTsKIAkJOUE1MjhFODQxN0Q3RjUyRjAwQUE5NTE4IC8qIEZsb2F0aW5nT2JqZWN0cy5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOUE1MjhFODIxN0Q3
RjUyRjAwQUE5NTE4IC8qIEZsb2F0aW5nT2JqZWN0cy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJV
VEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTlBQjFGMzgwMThFMjQ4OUEwMDUzNDc0MyAvKiBD
U1NUb0xlbmd0aENvbnZlcnNpb25EYXRhLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA5QUIxRjM3RTE4RTI0ODlBMDA1MzQ3NDMgLyogQ1NTVG9MZW5ndGhD
b252ZXJzaW9uRGF0YS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CisJCTlBQ0MwNzk2MjVDNzI1RUUwMERDNjM4NiAvKiBNZWRpYUtleVN5c3RlbVJlcXVl
c3QuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOUFD
QzA3OTQyNUM3MjVFRDAwREM2Mzg2IC8qIE1lZGlhS2V5U3lzdGVtUmVxdWVzdC5jcHAgKi87IH07
CisJCTlBQ0MwNzk4MjVDNzI2NzcwMERDNjM4NiAvKiBNZWRpYUtleVN5c3RlbUNvbnRyb2xsZXIu
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOUFDQzA3
OTcyNUM3MjY3NjAwREM2Mzg2IC8qIE1lZGlhS2V5U3lzdGVtQ29udHJvbGxlci5jcHAgKi87IH07
CisJCTlBQ0MwN0E2MjVDODEwREYwMERDNjM4NiAvKiBNZWRpYUtleVN5c3RlbVJlcXVlc3QuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDlBQ0MwN0E1MjVD
ODEwREYwMERDNjM4NiAvKiBNZWRpYUtleVN5c3RlbVJlcXVlc3QuaCAqLzsgc2V0dGluZ3MgPSB7
QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk5QUNDMDdBODI1QzgxMTBEMDBEQzYz
ODYgLyogTWVkaWFLZXlTeXN0ZW1DbGllbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDlBQ0MwN0E3MjVDODExMEQwMERDNjM4NiAvKiBNZWRpYUtleVN5
c3RlbUNsaWVudC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CisJCTlBQ0MwN0FGMjVDODE0MUQwMERDNjM4NiAvKiBNZWRpYUtleVN5c3RlbUNvbnRyb2xs
ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDlBQ0Mw
N0FFMjVDODE0MUMwMERDNjM4NiAvKiBNZWRpYUtleVN5c3RlbUNvbnRyb2xsZXIuaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk5QjAyRTBDODIzNUVB
RDJBMDA0MDQ0QjIgLyogVGV4dE1hbmlwdWxhdGlvbkNvbnRyb2xsZXIuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDlCMDJFMEMzMjM1RTc2QUEwMDQwNDRC
MiAvKiBUZXh0TWFuaXB1bGF0aW9uQ29udHJvbGxlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJV
VEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTlCMEFCQ0FFMjM2QkI0MzEwMEI0NTA4NSAvKiBU
YXNrU291cmNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA5QjBBQkNBQzIzNkJCNDBBMDBCNDUwODUgLyogVGFza1NvdXJjZS5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTlCMTIyOUM0MjNGRTRCRDIwMDhD
QTc1MSAvKiBBdWRpb0Rlc3RpbmF0aW9uQ29jb2EuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxMzE1MTg2MjM1Nzc0NUUwMDExNUU2RSAvKiBBdWRpb0Rl
c3RpbmF0aW9uQ29jb2EuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OwpAQCAtMTIwMDEsNiArMTIwMDYsMTEgQEAKIAkJOUFDNkYwMjUyMTE0OEY1NDAwQ0JE
QTA2IC8qIE1lZGlhRW5naW5lQ29uZmlndXJhdGlvbkZhY3RvcnkuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBuYW1lID0gTWVkaWFFbmdpbmVDb25maWd1cmF0aW9uRmFjdG9yeS5oOyBwYXRo
ID0gbWVkaWFjYXBhYmlsaXRpZXMvTWVkaWFFbmdpbmVDb25maWd1cmF0aW9uRmFjdG9yeS5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5QUM2RjAyRDIxMTQ4RjlGMDBDQkRBMDYgLyog
TWVkaWFFbmdpbmVDb25maWd1cmF0aW9uRmFjdG9yeU1vY2suY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gTWVkaWFFbmdpbmVDb25maWd1cmF0aW9uRmFjdG9yeU1vY2su
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5QUM2RjAyRjIxMTQ4RkEyMDBDQkRB
MDYgLyogTWVkaWFFbmdpbmVDb25maWd1cmF0aW9uRmFjdG9yeU1vY2suaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gTWVkaWFFbmdpbmVDb25maWd1cmF0aW9uRmFjdG9yeU1vY2su
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOUFDQzA3OTQyNUM3MjVFRDAwREM2Mzg2
IC8qIE1lZGlhS2V5U3lzdGVtUmVxdWVzdC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBNZWRpYUtleVN5c3RlbVJlcXVlc3QuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQk5QUNDMDc5NzI1QzcyNjc2MDBEQzYzODYgLyogTWVkaWFLZXlTeXN0ZW1Db250
cm9sbGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE1lZGlhS2V5
U3lzdGVtQ29udHJvbGxlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTlBQ0Mw
N0E1MjVDODEwREYwMERDNjM4NiAvKiBNZWRpYUtleVN5c3RlbVJlcXVlc3QuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTWVkaWFLZXlTeXN0ZW1SZXF1ZXN0Lmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCTlBQ0MwN0E3MjVDODExMEQwMERDNjM4NiAvKiBNZWRpYUtl
eVN5c3RlbUNsaWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBNZWRpYUtl
eVN5c3RlbUNsaWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5QUNDMDdBRTI1
QzgxNDFDMDBEQzYzODYgLyogTWVkaWFLZXlTeXN0ZW1Db250cm9sbGVyLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1lZGlhS2V5U3lzdGVtQ29udHJvbGxlci5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk5QjAyRTBDMzIzNUU3NkFBMDA0MDQ0QjIgLyogVGV4dE1h
bmlwdWxhdGlvbkNvbnRyb2xsZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVGV4dE1hbmlwdWxhdGlvbkNv
bnRyb2xsZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOUIwMkUwQzQyMzVFNzZB
QTAwNDA0NEIyIC8qIFRleHRNYW5pcHVsYXRpb25Db250cm9sbGVyLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IFRleHRNYW5pcHVsYXRpb25Db250cm9sbGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJOUIwM0Q4MDYxQkIzMTEwRDAwQjczRjY0IC8qIFJlYWRhYmxlQnl0ZVN0cmVh
bUludGVybmFsc0J1aWx0aW5zLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFJl
YWRhYmxlQnl0ZVN0cmVhbUludGVybmFsc0J1aWx0aW5zLmg7IHBhdGggPSBEZXJpdmVkU291cmNl
cy9XZWJDb3JlL1JlYWRhYmxlQnl0ZVN0cmVhbUludGVybmFsc0J1aWx0aW5zLmg7IHNvdXJjZVRy
ZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7IH07CkBAIC0yODA0OSwxMCArMjgwNTksMTUgQEAKIAkJ
CQkyRDlCRjczQzFEQkZEQzBGMDA3QTdEOTkgLyogTWVkaWFLZXlTeXN0ZW1BY2Nlc3MuY3BwICov
LAogCQkJCTJEOUJGNzNEMURCRkRDMEYwMDdBN0Q5OSAvKiBNZWRpYUtleVN5c3RlbUFjY2Vzcy5o
ICovLAogCQkJCTJEOUJGNkY5MURCRkI3MUYwMDdBN0Q5OSAvKiBNZWRpYUtleVN5c3RlbUFjY2Vz
cy5pZGwgKi8sCisJCQkJOUFDQzA3QTcyNUM4MTEwRDAwREM2Mzg2IC8qIE1lZGlhS2V5U3lzdGVt
Q2xpZW50LmggKi8sCiAJCQkJMkQ5QkY3M0UxREJGREMwRjAwN0E3RDk5IC8qIE1lZGlhS2V5U3lz
dGVtQ29uZmlndXJhdGlvbi5oICovLAogCQkJCTJEOUJGNkZBMURCRkI3MUYwMDdBN0Q5OSAvKiBN
ZWRpYUtleVN5c3RlbUNvbmZpZ3VyYXRpb24uaWRsICovLAorCQkJCTlBQ0MwNzk3MjVDNzI2NzYw
MERDNjM4NiAvKiBNZWRpYUtleVN5c3RlbUNvbnRyb2xsZXIuY3BwICovLAorCQkJCTlBQ0MwN0FF
MjVDODE0MUMwMERDNjM4NiAvKiBNZWRpYUtleVN5c3RlbUNvbnRyb2xsZXIuaCAqLywKIAkJCQky
RDlCRjczRjFEQkZEQzBGMDA3QTdEOTkgLyogTWVkaWFLZXlTeXN0ZW1NZWRpYUNhcGFiaWxpdHku
aCAqLywKIAkJCQkyRDlCRjZGQjFEQkZCNzFGMDA3QTdEOTkgLyogTWVkaWFLZXlTeXN0ZW1NZWRp
YUNhcGFiaWxpdHkuaWRsICovLAorCQkJCTlBQ0MwNzk0MjVDNzI1RUQwMERDNjM4NiAvKiBNZWRp
YUtleVN5c3RlbVJlcXVlc3QuY3BwICovLAorCQkJCTlBQ0MwN0E1MjVDODEwREYwMERDNjM4NiAv
KiBNZWRpYUtleVN5c3RlbVJlcXVlc3QuaCAqLywKIAkJCQkyRDlCRjZGQzFEQkZCNzFGMDA3QTdE
OTkgLyogTmF2aWdhdG9yK0VNRS5pZGwgKi8sCiAJCQkJMkQ5QkY3NDAxREJGREMwRjAwN0E3RDk5
IC8qIE5hdmlnYXRvckVNRS5jcHAgKi8sCiAJCQkJMkQ5QkY3NDExREJGREMwRjAwN0E3RDk5IC8q
IE5hdmlnYXRvckVNRS5oICovLApAQCAtMzE1NzYsNyArMzE1OTEsNiBAQAogCQkJCTc3RDUxMDE3
MUVENjAyMjIwMERBNEM4NyAvKiBDcmVkZW50aWFsc0NvbnRhaW5lci5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJNTFBMDUyMzMxMDU4Nzc0RjAwQ0M5RTk1IC8qIENyZWRlbnRpYWxTdG9yYWdlLmggaW4g
SGVhZGVycyAqLywKIAkJCQkyRDQ4MUYwMjE0NkI1QzU1MDBBQTc4MzQgLyogQ3Jvc3NmYWRlR2Vu
ZXJhdGVkSW1hZ2UuaCBpbiBIZWFkZXJzICovLAotCQkJCUY0OEI3RDUzMjVDMzQxRTYwMDlFNzVE
RCAvKiBJbWFnZUV4dHJhY3Rpb25SZXN1bHQuaCBpbiBIZWFkZXJzICovLAogCQkJCUUxQzQxNjEy
MEY2NTYyRkQwMDkyRDJGQiAvKiBDcm9zc09yaWdpbkFjY2Vzc0NvbnRyb2wuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTQxQUJFNjdCMUQwNTgwREIwMDZEODYyRCAvKiBDcm9zc09yaWdpblByZWZsaWdo
dENoZWNrZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUUxQzQxNURBMEY2NTVENkYwMDkyRDJGQiAv
KiBDcm9zc09yaWdpblByZWZsaWdodFJlc3VsdENhY2hlLmggaW4gSGVhZGVycyAqLywKQEAgLTMy
NTI3LDYgKzMyNTQxLDcgQEAKIAkJCQlDRDE5RkVBRTFGNTc0QjZEMDAwQzQyRkIgLyogSW1hZ2VE
ZWNvZGVyQVZGT2JqQy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTU1Qjg3RUQxQ0FBRjBBQjAwMzQ5
NDI1IC8qIEltYWdlRGVjb2RlckNHLmggaW4gSGVhZGVycyAqLywKIAkJCQk5NzIwNUFCNjEyMzky
OTEwMDBCMTczODAgLyogSW1hZ2VEb2N1bWVudC5oIGluIEhlYWRlcnMgKi8sCisJCQkJRjQ4QjdE
NTMyNUMzNDFFNjAwOUU3NUREIC8qIEltYWdlRXh0cmFjdGlvblJlc3VsdC5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJNTU3NkE1NjUxRDg4QTcwODAwQ0NDMDRDIC8qIEltYWdlRnJhbWUuaCBpbiBIZWFk
ZXJzICovLAogCQkJCUY1NUIzREMyMTI1MUYxMkQwMDNFRjI2OSAvKiBJbWFnZUlucHV0VHlwZS5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJMDg5NTgyNTYwRTg1N0E3RTAwRjgyQzgzIC8qIEltYWdlTG9h
ZGVyLmggaW4gSGVhZGVycyAqLywKQEAgLTMzNzAxLDYgKzMzNzE2LDkgQEAKIAkJCQlDREY0Qjcx
QTFFMDFEM0QwMDBFMjM1QTIgLyogTWVkaWFLZXlTZXNzaW9uVHlwZS5pZGwgaW4gSGVhZGVycyAq
LywKIAkJCQlDREY0QjcyODFFMDNDNTczMDBFMjM1QTIgLyogTWVkaWFLZXlzUmVxdWlyZW1lbnQu
aWRsIGluIEhlYWRlcnMgKi8sCiAJCQkJQ0RGNEI3MTgxRTAxQ0I5MTAwRTIzNUEyIC8qIE1lZGlh
S2V5c1Jlc3RyaWN0aW9ucy5oIGluIEhlYWRlcnMgKi8sCisJCQkJOUFDQzA3QTgyNUM4MTEwRDAw
REM2Mzg2IC8qIE1lZGlhS2V5U3lzdGVtQ2xpZW50LmggaW4gSGVhZGVycyAqLywKKwkJCQk5QUND
MDdBRjI1QzgxNDFEMDBEQzYzODYgLyogTWVkaWFLZXlTeXN0ZW1Db250cm9sbGVyLmggaW4gSGVh
ZGVycyAqLywKKwkJCQk5QUNDMDdBNjI1QzgxMERGMDBEQzYzODYgLyogTWVkaWFLZXlTeXN0ZW1S
ZXF1ZXN0LmggaW4gSGVhZGVycyAqLywKIAkJCQlBOEVBODAwRTBBMTk1MTZFMDBBOEVGNUYgLyog
TWVkaWFMaXN0LmggaW4gSGVhZGVycyAqLywKIAkJCQk1RUJCODkzMTFDNzc3N0ZGMDBDNjVENDEg
LyogTWVkaWFQYXlsb2FkLmggaW4gSGVhZGVycyAqLywKIAkJCQkwN0UzREZEMTFBOUU3ODY1MDA3
NjRDQTggLyogTWVkaWFQbGF5YmFja1RhcmdldC5oIGluIEhlYWRlcnMgKi8sCkBAIC0zNjA1NCw2
ICszNjA3Miw4IEBACiAJCQkJMkQ5QkY3NDUxREJGREM0NDAwN0E3RDk5IC8qIE1lZGlhS2V5U2Vz
c2lvbi5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkyRDlCRjc0NDFEQkZEQzQxMDA3QTdEOTkgLyog
TWVkaWFLZXlTdGF0dXNNYXAuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMkQ5QkY3NDMxREJGREMz
RTAwN0E3RDk5IC8qIE1lZGlhS2V5U3lzdGVtQWNjZXNzLmNwcCBpbiBTb3VyY2VzICovLAorCQkJ
CTlBQ0MwNzk4MjVDNzI2NzcwMERDNjM4NiAvKiBNZWRpYUtleVN5c3RlbUNvbnRyb2xsZXIuY3Bw
IGluIFNvdXJjZXMgKi8sCisJCQkJOUFDQzA3OTYyNUM3MjVFRTAwREM2Mzg2IC8qIE1lZGlhS2V5
U3lzdGVtUmVxdWVzdC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwNzFFNDk2RTFBRDVBQTBEMDA4
QTUwQjQgLyogTWVkaWFQbGF5YmFja1RhcmdldENvY29hLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJ
MDc4RTQzREUxQUJCNkY2RjAwMUMyRkE2IC8qIE1lZGlhUGxheWJhY2tUYXJnZXRQaWNrZXJNYWMu
bW0gaW4gU291cmNlcyAqLywKIAkJCQkwNzJDOEIxMTEzMUM1MTg2MDBBNEZDRTkgLyogTWVkaWFQ
bGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uLmNwcCBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9XZWJLaXQvQ01ha2VMaXN0cy50
eHQKaW5kZXggY2JjYThkMzM4OGM1ODI5Yjc0MjcyMmU3NDk5ZjkzNjlmYjNjMzA4NS4uNDZlYzBj
NTRjYzQ0ZDFiM2JiZGNlMDk2MmYyNzEzMDU4MDVhODcyOSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvV2ViS2l0L0NNYWtlTGlzdHMudHh0CkBA
IC03NSw2ICs3NSw3IEBAIHNldChXZWJLaXRfSU5DTFVERV9ESVJFQ1RPUklFUwogICAgICIke1dF
QktJVF9ESVJ9L1dlYlByb2Nlc3MvQ2FjaGUiCiAgICAgIiR7V0VCS0lUX0RJUn0vV2ViUHJvY2Vz
cy9EYXRhYmFzZXMiCiAgICAgIiR7V0VCS0lUX0RJUn0vV2ViUHJvY2Vzcy9EYXRhYmFzZXMvSW5k
ZXhlZERCIgorICAgICIke1dFQktJVF9ESVJ9L1dlYlByb2Nlc3MvRW5jcnlwdGVkTWVkaWEiCiAg
ICAgIiR7V0VCS0lUX0RJUn0vV2ViUHJvY2Vzcy9GaWxlQVBJIgogICAgICIke1dFQktJVF9ESVJ9
L1dlYlByb2Nlc3MvRnVsbFNjcmVlbiIKICAgICAiJHtXRUJLSVRfRElSfS9XZWJQcm9jZXNzL0dh
bWVwYWQiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0hlYWRlcnMuY21ha2UgYi9Tb3VyY2Uv
V2ViS2l0L0hlYWRlcnMuY21ha2UKaW5kZXggMjEzMDRkYTMwZDc4ODI1NDM2NTIyN2FhNmIzNmYw
ZTc2ZjY5MGVmNC4uMzQ2YzhhNjNhN2I3YWU0OTdhMWJlZTI0ZDdmODA4YjBmYThjZTRhMyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9IZWFkZXJzLmNtYWtlCisrKyBiL1NvdXJjZS9XZWJLaXQv
SGVhZGVycy5jbWFrZQpAQCAtNjIsNiArNjIsNyBAQCBzZXQoV2ViS2l0X1BVQkxJQ19GUkFNRVdP
UktfSEVBREVSUwogICAgIFVJUHJvY2Vzcy9BUEkvQy9XS0ljb25EYXRhYmFzZS5oCiAgICAgVUlQ
cm9jZXNzL0FQSS9DL1dLSW5zcGVjdG9yLmgKICAgICBVSVByb2Nlc3MvQVBJL0MvV0tMYXlvdXRN
b2RlLmgKKyAgICBVSVByb2Nlc3MvQVBJL0MvV0tNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25DYWxs
YmFjay5oCiAgICAgVUlQcm9jZXNzL0FQSS9DL1dLTWVzc2FnZUxpc3RlbmVyLmgKICAgICBVSVBy
b2Nlc3MvQVBJL0MvV0tNb2NrRGlzcGxheS5oCiAgICAgVUlQcm9jZXNzL0FQSS9DL1dLTW9ja01l
ZGlhRGV2aWNlLmgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vTG9nZ2luZy5o
IGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9Mb2dnaW5nLmgKaW5kZXggZjQ5ZjM4YjZhNWY5ZDNk
NzA5NTJkMmUxMjFjODk5NWRlY2U5OGVhYS4uMDY2ZjA2NWZlM2UzYWVjNGEwNzk4NjgxOTNkYWU4
YTBiMDc3NzViOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9Mb2dnaW5nLmgK
KysrIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9Mb2dnaW5nLmgKQEAgLTUyLDYgKzUyLDcgQEAg
ZXh0ZXJuICJDIiB7CiAgICAgTShDb250ZXh0TWVudSkgXAogICAgIE0oRGlza1BlcnNpc3RlbmN5
KSBcCiAgICAgTShEcmFnQW5kRHJvcCkgXAorICAgIE0oRU1FKSBcCiAgICAgTShGdWxsc2NyZWVu
KSBcCiAgICAgTShHYW1lcGFkKSBcCiAgICAgTShJUEMpIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL0FQSS9BUElPYmplY3QuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0FQSS9B
UElPYmplY3QuaAppbmRleCAwNTU2OTM0M2EwZGMzYWFkNmMyZDMzNDAzZThlMjliYTg2ZmU0Y2Fi
Li40NmM3NzNlZTM4Y2QzMDY3NWI2ZThiMTYyNWY5NzUzMDc5M2IxNmJiIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1NoYXJlZC9BUEkvQVBJT2JqZWN0LmgKKysrIGIvU291cmNlL1dlYktpdC9T
aGFyZWQvQVBJL0FQSU9iamVjdC5oCkBAIC0xODksNiArMTg5LDggQEAgcHVibGljOgogICAgICAg
ICBXZWJBdXRoZW50aWNhdGlvblBhbmVsLAogI2VuZGlmCiAKKyAgICAgICAgTWVkaWFLZXlTeXN0
ZW1QZXJtaXNzaW9uQ2FsbGJhY2ssCisKICAgICAgICAgLy8gQnVuZGxlIHR5cGVzCiAgICAgICAg
IEJ1bmRsZSwKICAgICAgICAgQnVuZGxlQmFja0ZvcndhcmRMaXN0LApAQCAtNDM4LDYgKzQ0MCw4
IEBAIHRlbXBsYXRlPD4gc3RydWN0IEVudW1UcmFpdHM8QVBJOjpPYmplY3Q6OlR5cGU+IHsKICAg
ICAgICAgQVBJOjpPYmplY3Q6OlR5cGU6OldlYkF1dGhlbnRpY2F0aW9uUGFuZWwsCiAjZW5kaWYK
IAorICAgICAgICBBUEk6Ok9iamVjdDo6VHlwZTo6TWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uQ2Fs
bGJhY2ssCisKICAgICAgICAgLy8gQnVuZGxlIHR5cGVzCiAgICAgICAgIEFQSTo6T2JqZWN0OjpU
eXBlOjpCdW5kbGUsCiAgICAgICAgIEFQSTo6T2JqZWN0OjpUeXBlOjpCdW5kbGVCYWNrRm9yd2Fy
ZExpc3QsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BUEkvYy9XS0Jhc2UuaCBi
L1NvdXJjZS9XZWJLaXQvU2hhcmVkL0FQSS9jL1dLQmFzZS5oCmluZGV4IDg0ZWU2YzI4OGY2ZDJl
YmQ1MWZhNzNlYTcyNzA4ZjMyOTQ2YmRkODUuLjdjOGJkMjM5MjRjNGFiNzExNTRmNWNhYzdlNzNj
YzczZDM5NDU4YzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0FQSS9jL1dLQmFz
ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0FQSS9jL1dLQmFzZS5oCkBAIC0xNDIsNiAr
MTQyLDggQEAgdHlwZWRlZiBjb25zdCBzdHJ1Y3QgT3BhcXVlV0tXZWJzaXRlRGF0YVN0b3JlKiBX
S1dlYnNpdGVEYXRhU3RvcmVSZWY7CiB0eXBlZGVmIGNvbnN0IHN0cnVjdCBPcGFxdWVXS1dlYnNp
dGVQb2xpY2llcyogV0tXZWJzaXRlUG9saWNpZXNSZWY7CiB0eXBlZGVmIGNvbnN0IHN0cnVjdCBP
cGFxdWVXS1dpbmRvd0ZlYXR1cmVzKiBXS1dpbmRvd0ZlYXR1cmVzUmVmOwogdHlwZWRlZiBjb25z
dCBzdHJ1Y3QgT3BhcXVlV0tTcGVlY2hSZWNvZ25pdGlvblBlcm1pc3Npb25DYWxsYmFjayogV0tT
cGVlY2hSZWNvZ25pdGlvblBlcm1pc3Npb25DYWxsYmFja1JlZjsKK3R5cGVkZWYgY29uc3Qgc3Ry
dWN0IE9wYXF1ZVdLTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdCogV0tNZWRpYUtleVN5
c3RlbVBlcm1pc3Npb25SZXF1ZXN0UmVmOwordHlwZWRlZiBjb25zdCBzdHJ1Y3QgT3BhcXVlV0tN
ZWRpYUtleVN5c3RlbVBlcm1pc3Npb25DYWxsYmFjayogV0tNZWRpYUtleVN5c3RlbVBlcm1pc3Np
b25DYWxsYmFja1JlZjsKIAogLyogV2ViS2l0MiBCdW5kbGUgdHlwZXMgKi8KIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9Tb3VyY2VzLnR4dCBiL1NvdXJjZS9XZWJLaXQvU291cmNlcy50eHQK
aW5kZXggN2Y0MDhiYzQ2MTBjMTA1NDkxZDViMDY0MWY4YjcwZjNhZjkxYjA0My4uNDNhYTJiN2Q1
NzYyYzU4ZDk0N2UyMWVmNGJjNzI1MDQ1OTk3MWQwMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9Tb3VyY2VzLnR4dAorKysgYi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0CkBAIC0yODUsNiAr
Mjg1LDggQEAgVUlQcm9jZXNzL0ZyYW1lTG9hZFN0YXRlLmNwcAogVUlQcm9jZXNzL0dlb2xvY2F0
aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuY3BwCiBVSVByb2Nlc3MvR2VvbG9jYXRp
b25QZXJtaXNzaW9uUmVxdWVzdFByb3h5LmNwcAogVUlQcm9jZXNzL0xlZ2FjeUdsb2JhbFNldHRp
bmdzLmNwcAorVUlQcm9jZXNzL01lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RNYW5hZ2Vy
UHJveHkuY3BwCitVSVByb2Nlc3MvTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdFByb3h5
LmNwcAogVUlQcm9jZXNzL1BhZ2VMb2FkU3RhdGUuY3BwCiBVSVByb2Nlc3MvUHJvY2Vzc0Fzc2Vy
dGlvbi5jcHAKIFVJUHJvY2Vzcy9Qcm9jZXNzVGhyb3R0bGVyLmNwcApAQCAtMzkxLDYgKzM5Myw3
IEBAIFVJUHJvY2Vzcy9BUEkvQy9XS0hpdFRlc3RSZXN1bHQuY3BwCiBVSVByb2Nlc3MvQVBJL0Mv
V0tJY29uRGF0YWJhc2UuY3BwCiBVSVByb2Nlc3MvQVBJL0MvV0tJbnNwZWN0b3IuY3BwCiBVSVBy
b2Nlc3MvQVBJL0MvV0tLZXlWYWx1ZVN0b3JhZ2VNYW5hZ2VyLmNwcAorVUlQcm9jZXNzL0FQSS9D
L1dLTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uQ2FsbGJhY2suY3BwCiBVSVByb2Nlc3MvQVBJL0Mv
V0tNZXNzYWdlTGlzdGVuZXIuY3BwCiBVSVByb2Nlc3MvQVBJL0MvV0tNb2NrRGlzcGxheS5jcHAK
IFVJUHJvY2Vzcy9BUEkvQy9XS01vY2tNZWRpYURldmljZS5jcHAKQEAgLTUxMSw2ICs1MTQsOCBA
QCBXZWJQcm9jZXNzL0RhdGFiYXNlcy9XZWJEYXRhYmFzZVByb3ZpZGVyLmNwcAogCiBXZWJQcm9j
ZXNzL0RhdGFiYXNlcy9JbmRleGVkREIvV2ViSURCQ29ubmVjdGlvblRvU2VydmVyLmNwcAogCitX
ZWJQcm9jZXNzL0VuY3J5cHRlZE1lZGlhL01lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RN
YW5hZ2VyLmNwcAorCiBXZWJQcm9jZXNzL0ZpbGVBUEkvQmxvYlJlZ2lzdHJ5UHJveHkuY3BwCiAK
IFdlYlByb2Nlc3MvRnVsbFNjcmVlbi9XZWJGdWxsU2NyZWVuTWFuYWdlci5jcHAKQEAgLTY2NSw2
ICs2NzAsNyBAQCBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkRyYWdDbGllbnQuY3BwCiBX
ZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5jcHAKIFdlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwCiBXZWJQcm9jZXNzL1dlYkNv
cmVTdXBwb3J0L1dlYkdlb2xvY2F0aW9uQ2xpZW50LmNwcAorV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC9XZWJNZWRpYUtleVN5c3RlbUNsaWVudC5jcHAKIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBv
cnQvV2ViTWVzc2FnZVBvcnRDaGFubmVsUHJvdmlkZXIuY3BwCiBXZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0L1dlYk5vdGlmaWNhdGlvbkNsaWVudC5jcHAKIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBv
cnQvV2ViUGVyZm9ybWFuY2VMb2dnaW5nQ2xpZW50LmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL0FQSVVJQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvQVBJVUlDbGllbnQuaAppbmRleCBiMTdiNWExOTYyYmM5ZmRlNmJmOGYwNTVkNGI0YWU5
ZTE3ZWI4NGRlLi4xNjM2N2U2Y2FjODI1YWE5Yzc0ZmI0YzQ4NDNkZDJmMWZmMWRhZDM4IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJVUlDbGllbnQuaAorKysgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJVUlDbGllbnQuaApAQCAtMjA1LDYgKzIwNSw5
IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgZGlkRGlzYWJsZUluc3BlY3RvckJyb3dzZXJE
b21haW4oV2ViS2l0OjpXZWJQYWdlUHJveHkmKSB7IH0KIAogICAgIHZpcnR1YWwgdm9pZCBkZWNp
ZGVQb2xpY3lGb3JTcGVlY2hSZWNvZ25pdGlvblBlcm1pc3Npb25SZXF1ZXN0KFdlYktpdDo6V2Vi
UGFnZVByb3h5JiBwYWdlLCBBUEk6OlNlY3VyaXR5T3JpZ2luJiBvcmlnaW4sIENvbXBsZXRpb25I
YW5kbGVyPHZvaWQoYm9vbCk+JiYgY29tcGxldGlvbkhhbmRsZXIpIHsgcGFnZS5yZXF1ZXN0U3Bl
ZWNoUmVjb2duaXRpb25QZXJtaXNzaW9uQnlEZWZhdWx0QWN0aW9uKG9yaWdpbi5zZWN1cml0eU9y
aWdpbigpLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7IH0KKworICAgIHZpcnR1YWwgdm9p
ZCBkZWNpZGVQb2xpY3lGb3JNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0KFdlYktpdDo6
V2ViUGFnZVByb3h5JiBwYWdlLCBBUEk6OlNlY3VyaXR5T3JpZ2luJiBvcmlnaW4sIGNvbnN0IFdU
Rjo6U3RyaW5nJiBrZXlTeXN0ZW0sIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYgY29t
cGxldGlvbkhhbmRsZXIpIHsgcGFnZS5yZXF1ZXN0TWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uQnlE
ZWZhdWx0QWN0aW9uKG9yaWdpbi5zZWN1cml0eU9yaWdpbigpLCBXVEZNb3ZlKGNvbXBsZXRpb25I
YW5kbGVyKSk7IH0KKwogfTsKIAogfSAvLyBuYW1lc3BhY2UgQVBJCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS0FQSUNhc3QuaCBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9DL1dLQVBJQ2FzdC5oCmluZGV4IGNjOWNmNTk1N2VhMzBkNmFjZjA0NjhkZTcw
MTc5OGE2ZjQxODExNGEuLmM4YTE4OTVhNmQwZGU3MDlmOWFlMzk4YmU0NWJlYTY2YjllYmZhMGQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLQVBJQ2FzdC5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLQVBJQ2FzdC5oCkBAIC03OCw2ICs3
OCw3IEBAIGNsYXNzIEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlUHJveHk7CiBjbGFzcyBBdXRoZW50
aWNhdGlvbkRlY2lzaW9uTGlzdGVuZXI7CiBjbGFzcyBEb3dubG9hZFByb3h5OwogY2xhc3MgR2Vv
bG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdDsKK2NsYXNzIE1lZGlhS2V5U3lzdGVtUGVybWlzc2lv
bkNhbGxiYWNrOwogY2xhc3MgTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3Q7CiBjbGFzcyBT
cGVlY2hSZWNvZ25pdGlvblBlcm1pc3Npb25DYWxsYmFjazsKIGNsYXNzIFVzZXJNZWRpYVBlcm1p
c3Npb25DaGVja1Byb3h5OwpAQCAtMTM1LDYgKzEzNiw3IEBAIFdLX0FERF9BUElfTUFQUElORyhX
S0hUVFBDb29raWVTdG9yZVJlZiwgQVBJOjpIVFRQQ29va2llU3RvcmUpCiBXS19BRERfQVBJX01B
UFBJTkcoV0tIaXRUZXN0UmVzdWx0UmVmLCBBUEk6OkhpdFRlc3RSZXN1bHQpCiBXS19BRERfQVBJ
X01BUFBJTkcoV0tJY29uRGF0YWJhc2VSZWYsIFdlYkljb25EYXRhYmFzZSkKIFdLX0FERF9BUElf
TUFQUElORyhXS0luc3BlY3RvclJlZiwgV2ViSW5zcGVjdG9yUHJveHkpCitXS19BRERfQVBJX01B
UFBJTkcoV0tNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25DYWxsYmFja1JlZiwgTWVkaWFLZXlTeXN0
ZW1QZXJtaXNzaW9uQ2FsbGJhY2spCiBXS19BRERfQVBJX01BUFBJTkcoV0tNZXNzYWdlTGlzdGVu
ZXJSZWYsIEFQSTo6TWVzc2FnZUxpc3RlbmVyKQogV0tfQUREX0FQSV9NQVBQSU5HKFdLTmF2aWdh
dGlvbkFjdGlvblJlZiwgQVBJOjpOYXZpZ2F0aW9uQWN0aW9uKQogV0tfQUREX0FQSV9NQVBQSU5H
KFdLTmF2aWdhdGlvbkRhdGFSZWYsIEFQSTo6TmF2aWdhdGlvbkRhdGEpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS01lZGlhS2V5U3lzdGVtUGVybWlzc2lvbkNh
bGxiYWNrLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLTWVkaWFLZXlTeXN0
ZW1QZXJtaXNzaW9uQ2FsbGJhY2suY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmFhYTczMjRiYmMyYWIzNzI1N2Rh
ODNhYmJjMzQwNzE0YmE3ZTA1MzAKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvQy9XS01lZGlhS2V5U3lzdGVtUGVybWlzc2lvbkNhbGxiYWNrLmNwcApAQCAt
MCwwICsxLDQyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIElnYWxpYSBTLkwuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
CisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJXS01lZGlhS2V5U3lzdGVtUGVy
bWlzc2lvbkNhbGxiYWNrLmgiCisKKyNpbmNsdWRlICJNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25S
ZXF1ZXN0LmgiCisjaW5jbHVkZSAiV0tBUElDYXN0LmgiCisKK3VzaW5nIG5hbWVzcGFjZSBXZWJL
aXQ7CisKK1dLVHlwZUlEIFdLTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uQ2FsbGJhY2tHZXRUeXBl
SUQoKQoreworICAgIHJldHVybiB0b0FQSShNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25DYWxsYmFj
azo6QVBJVHlwZSk7Cit9CisKK3ZvaWQgV0tNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25DYWxsYmFj
a0NvbXBsZXRlKFdLTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uQ2FsbGJhY2tSZWYgcGVybWlzc2lv
bkNhbGxiYWNrLCBib29sIGdyYW50ZWQpCit7CisgICAgcmV0dXJuIHRvSW1wbChwZXJtaXNzaW9u
Q2FsbGJhY2spLT5jb21wbGV0ZShncmFudGVkKTsKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9DL1dLTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uQ2FsbGJhY2suaCBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9u
Q2FsbGJhY2suaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mNWQzNjgzN2VmYTY5YTRiMDZkZjEzMjEyMmZhZjZhMGEx
ZjUyMDc4Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0Mv
V0tNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25DYWxsYmFjay5oCkBAIC0wLDAgKzEsNDAgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgSWdhbGlhIFMuTC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMg
YGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRS
SUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBv
bmNlCisKKyNpbmNsdWRlIDxXZWJLaXQvV0tCYXNlLmg+CisKKyNpZmRlZiBfX2NwbHVzcGx1cwor
ZXh0ZXJuICJDIiB7CisjZW5kaWYKKworV0tfRVhQT1JUIFdLVHlwZUlEIFdLTWVkaWFLZXlTeXN0
ZW1QZXJtaXNzaW9uQ2FsbGJhY2tHZXRUeXBlSUQodm9pZCk7CisKK1dLX0VYUE9SVCB2b2lkIFdL
TWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uQ2FsbGJhY2tDb21wbGV0ZShXS01lZGlhS2V5U3lzdGVt
UGVybWlzc2lvbkNhbGxiYWNrUmVmIHBlcm1pc3Npb25DYWxsYmFjaywgYm9vbCBncmFudGVkKTsK
KworI2lmZGVmIF9fY3BsdXNwbHVzCit9CisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvQy9XS1BhZ2UuY3BwCmluZGV4IDc0NDNmNzBmOTU3NTgzNmQ4NDNkYTU0Yzg0ODE1MDljOWQ4
YzRkZWMuLmMzOWU3MmYwNzEyY2JhYzBiZWJhZmYwYjAyZTg0NTczYWMxNmY5MTQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmNwcApAQCAtNTgsNiArNTgsNyBAQAogI2lu
Y2x1ZGUgIkRvd25sb2FkUHJveHkuaCIKICNpbmNsdWRlICJMZWdhY3lTZXNzaW9uU3RhdGVDb2Rp
bmcuaCIKICNpbmNsdWRlICJMb2dnaW5nLmgiCisjaW5jbHVkZSAiTWVkaWFLZXlTeXN0ZW1QZXJt
aXNzaW9uUmVxdWVzdC5oIgogI2luY2x1ZGUgIk5hdGl2ZVdlYktleWJvYXJkRXZlbnQuaCIKICNp
bmNsdWRlICJOYXRpdmVXZWJXaGVlbEV2ZW50LmgiCiAjaW5jbHVkZSAiTmF2aWdhdGlvbkFjdGlv
bkRhdGEuaCIKQEAgLTExNyw3ICsxMTgsNyBAQCB0ZW1wbGF0ZTw+IHN0cnVjdCBDbGllbnRUcmFp
dHM8V0tQYWdlUG9saWN5Q2xpZW50QmFzZT4gewogfTsKIAogdGVtcGxhdGU8PiBzdHJ1Y3QgQ2xp
ZW50VHJhaXRzPFdLUGFnZVVJQ2xpZW50QmFzZT4gewotICAgIHR5cGVkZWYgc3RkOjp0dXBsZTxX
S1BhZ2VVSUNsaWVudFYwLCBXS1BhZ2VVSUNsaWVudFYxLCBXS1BhZ2VVSUNsaWVudFYyLCBXS1Bh
Z2VVSUNsaWVudFYzLCBXS1BhZ2VVSUNsaWVudFY0LCBXS1BhZ2VVSUNsaWVudFY1LCBXS1BhZ2VV
SUNsaWVudFY2LCBXS1BhZ2VVSUNsaWVudFY3LCBXS1BhZ2VVSUNsaWVudFY4LCBXS1BhZ2VVSUNs
aWVudFY5LCBXS1BhZ2VVSUNsaWVudFYxMCwgV0tQYWdlVUlDbGllbnRWMTEsIFdLUGFnZVVJQ2xp
ZW50VjEyLCBXS1BhZ2VVSUNsaWVudFYxMywgV0tQYWdlVUlDbGllbnRWMTQsIFdLUGFnZVVJQ2xp
ZW50VjE1PiBWZXJzaW9uczsKKyAgICB0eXBlZGVmIHN0ZDo6dHVwbGU8V0tQYWdlVUlDbGllbnRW
MCwgV0tQYWdlVUlDbGllbnRWMSwgV0tQYWdlVUlDbGllbnRWMiwgV0tQYWdlVUlDbGllbnRWMywg
V0tQYWdlVUlDbGllbnRWNCwgV0tQYWdlVUlDbGllbnRWNSwgV0tQYWdlVUlDbGllbnRWNiwgV0tQ
YWdlVUlDbGllbnRWNywgV0tQYWdlVUlDbGllbnRWOCwgV0tQYWdlVUlDbGllbnRWOSwgV0tQYWdl
VUlDbGllbnRWMTAsIFdLUGFnZVVJQ2xpZW50VjExLCBXS1BhZ2VVSUNsaWVudFYxMiwgV0tQYWdl
VUlDbGllbnRWMTMsIFdLUGFnZVVJQ2xpZW50VjE0LCBXS1BhZ2VVSUNsaWVudFYxNSwgV0tQYWdl
VUlDbGllbnRWMTY+IFZlcnNpb25zOwogfTsKIAogI2lmIEVOQUJMRShDT05URVhUX01FTlVTKQpA
QCAtMjExOSw2ICsyMTIwLDE2IEBAIHZvaWQgV0tQYWdlU2V0UGFnZVVJQ2xpZW50KFdLUGFnZVJl
ZiBwYWdlUmVmLCBjb25zdCBXS1BhZ2VVSUNsaWVudEJhc2UqIHdrQ2xpZW50CiAKICAgICAgICAg
ICAgIG1fY2xpZW50LmRlY2lkZVBvbGljeUZvclNwZWVjaFJlY29nbml0aW9uUGVybWlzc2lvblJl
cXVlc3QodG9BUEkoJnBhZ2UpLCB0b0FQSSgmb3JpZ2luKSwgdG9BUEkoU3BlZWNoUmVjb2duaXRp
b25QZXJtaXNzaW9uQ2FsbGJhY2s6OmNyZWF0ZShXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSku
cHRyKCkpKTsKICAgICAgICAgfQorCisgICAgICAgIHZvaWQgZGVjaWRlUG9saWN5Rm9yTWVkaWFL
ZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdChXZWJQYWdlUHJveHkmIHBhZ2UsIEFQSTo6U2VjdXJp
dHlPcmlnaW4mIG9yaWdpbiwgY29uc3QgU3RyaW5nJiBrZXlTeXN0ZW0sIENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoYm9vbCk+JiYgY29tcGxldGlvbkhhbmRsZXIpIGZpbmFsCisgICAgICAgIHsKKyAg
ICAgICAgICAgIGlmICghbV9jbGllbnQuZGVjaWRlUG9saWN5Rm9yTWVkaWFLZXlTeXN0ZW1QZXJt
aXNzaW9uUmVxdWVzdCkgeworICAgICAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKGZhbHNl
KTsKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAg
IG1fY2xpZW50LmRlY2lkZVBvbGljeUZvck1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3Qo
dG9BUEkoJnBhZ2UpLCB0b0FQSSgmb3JpZ2luKSwgdG9BUEkoQVBJOjpTdHJpbmc6OmNyZWF0ZShr
ZXlTeXN0ZW0pLnB0cigpKSwgdG9BUEkoTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uQ2FsbGJhY2s6
OmNyZWF0ZShXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSkucHRyKCkpKTsKKyAgICAgICAgfQog
ICAgIH07CiAKICAgICB0b0ltcGwocGFnZVJlZiktPnNldFVJQ2xpZW50KG1ha2VVbmlxdWU8VUlD
bGllbnQ+KHdrQ2xpZW50KSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvQy9XS1BhZ2VVSUNsaWVudC5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQ
YWdlVUlDbGllbnQuaAppbmRleCA2MzYzNTU1NjRkMDBiMTEyMmE4N2UyMjlhMzBiOTRkN2U5OWU0
ZWY5Li4zZDMxNWJlNjEzNDhkZDdkMjQ2N2JhYTk0ZGVhNGFlNzExYzI3ODAzIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2VVSUNsaWVudC5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZVVJQ2xpZW50LmgKQEAgLTEzOCw4ICsx
MzgsMTAgQEAgdHlwZWRlZiBib29sICgqV0tQYWdlU2hvdWxkQWxsb3dEZXZpY2VPcmllbnRhdGlv
bkFuZE1vdGlvbkFjY2Vzc0NhbGxiYWNrKShXS1BhZ2UKIHR5cGVkZWYgdm9pZCAoKldLUGFnZVJ1
bldlYkF1dGhlbnRpY2F0aW9uUGFuZWxDYWxsYmFjaykoKTsKIHR5cGVkZWYgdm9pZCAoKldLUGFn
ZURlY2lkZVBvbGljeUZvclNwZWVjaFJlY29nbml0aW9uUGVybWlzc2lvblJlcXVlc3RDYWxsYmFj
aykoV0tQYWdlUmVmIHBhZ2UsIFdLU2VjdXJpdHlPcmlnaW5SZWYgdG9wT3JpZ2luLCBXS1NwZWVj
aFJlY29nbml0aW9uUGVybWlzc2lvbkNhbGxiYWNrUmVmIGNhbGxiYWNrKTsKIAordHlwZWRlZiB2
b2lkICgqV0tQYWdlRGVjaWRlUG9saWN5Rm9yTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVz
dENhbGxiYWNrKShXS1BhZ2VSZWYgcGFnZSwgV0tTZWN1cml0eU9yaWdpblJlZiB0b3BPcmlnaW4s
IFdLU3RyaW5nUmVmIGtleVN5c3RlbSwgV0tNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25DYWxsYmFj
a1JlZiBjYWxsYmFjayk7CisKIC8vIERlcHJlY2F0ZWQKLXR5cGVkZWYgV0tQYWdlUmVmICgqV0tQ
YWdlQ3JlYXRlTmV3UGFnZUNhbGxiYWNrX2RlcHJlY2F0ZWRGb3JVc2VXaXRoVjApKFdLUGFnZVJl
ZiBwYWdlLCBXS0RpY3Rpb25hcnlSZWYgZmVhdHVyZXMsIFdLRXZlbnRNb2RpZmllcnMgbW9kaWZp
ZXJzLCBXS0V2ZW50TW91c2VCdXR0b24gbW91c2VCdXR0b24sIGNvbnN0IHZvaWQgKmNsaWVudElu
Zm8pOwordHlwZWRlZiBXS1BhZ2VSZWYgKCpXS1BhZ2VDcmVhdGVOZXdQYWdlQ2FsbGJhY2tfZGVw
cmVjYXRlZEZvclVzZVdpdGhWMCkoV0tQYWdlUmVmIHBhZ2UsIFdLRGljdGlvbmFyeVJlZiBmZWF0
dXJlcywgV0tFdmVudE1vZGlmaWVycyBtb2RpZmllcnMsIFdLRXZlbnRNb3VzZUJ1dHRvbiBtb3Vz
ZUJ1dHRvbiwgY29uc3Qgdm9pZCogY2xpZW50SW5mbyk7CiB0eXBlZGVmIHZvaWQgICAgICAoKldL
UGFnZU1vdXNlRGlkTW92ZU92ZXJFbGVtZW50Q2FsbGJhY2tfZGVwcmVjYXRlZEZvclVzZVdpdGhW
MCkoV0tQYWdlUmVmIHBhZ2UsIFdLRXZlbnRNb2RpZmllcnMgbW9kaWZpZXJzLCBXS1R5cGVSZWYg
dXNlckRhdGEsIGNvbnN0IHZvaWQgKmNsaWVudEluZm8pOwogdHlwZWRlZiB2b2lkICgqV0tQYWdl
TWlzc2luZ1BsdWdpbkJ1dHRvbkNsaWNrZWRDYWxsYmFja19kZXByZWNhdGVkRm9yVXNlV2l0aFYw
KShXS1BhZ2VSZWYgcGFnZSwgV0tTdHJpbmdSZWYgbWltZVR5cGUsIFdLU3RyaW5nUmVmIHVybCwg
V0tTdHJpbmdSZWYgcGx1Z2luc1BhZ2VVUkwsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pOwogdHlw
ZWRlZiB2b2lkICgqV0tQYWdlVW5hdmFpbGFibGVQbHVnaW5CdXR0b25DbGlja2VkQ2FsbGJhY2tf
ZGVwcmVjYXRlZEZvclVzZVdpdGhWMSkoV0tQYWdlUmVmIHBhZ2UsIFdLUGx1Z2luVW5hdmFpbGFi
aWxpdHlSZWFzb24gcGx1Z2luVW5hdmFpbGFiaWxpdHlSZWFzb24sIFdLU3RyaW5nUmVmIG1pbWVU
eXBlLCBXS1N0cmluZ1JlZiB1cmwsIFdLU3RyaW5nUmVmIHBsdWdpbnNQYWdlVVJMLCBjb25zdCB2
b2lkKiBjbGllbnRJbmZvKTsKQEAgLTE0NjUsNiArMTQ2NywxMjEgQEAgdHlwZWRlZiBzdHJ1Y3Qg
V0tQYWdlVUlDbGllbnRWMTUgewogICAgIAogfSBXS1BhZ2VVSUNsaWVudFYxNTsKIAordHlwZWRl
ZiBzdHJ1Y3QgV0tQYWdlVUlDbGllbnRWMTYgeworICAgIFdLUGFnZVVJQ2xpZW50QmFzZSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmFzZTsKKworICAg
IC8vIFZlcnNpb24gMC4KKyAgICBXS1BhZ2VDcmVhdGVOZXdQYWdlQ2FsbGJhY2tfZGVwcmVjYXRl
ZEZvclVzZVdpdGhWMCAgICAgICAgICAgICAgICAgIGNyZWF0ZU5ld1BhZ2VfZGVwcmVjYXRlZEZv
clVzZVdpdGhWMDsKKyAgICBXS1BhZ2VVSUNsaWVudENhbGxiYWNrICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNob3dQYWdlOworICAgIFdLUGFnZVVJQ2xpZW50
Q2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xv
c2U7CisgICAgV0tQYWdlVGFrZUZvY3VzQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICB0YWtlRm9jdXM7CisgICAgV0tQYWdlRm9jdXNDYWxsYmFjayAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb2N1czsKKyAg
ICBXS1BhZ2VVbmZvY3VzQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHVuZm9jdXM7CisgICAgV0tQYWdlUnVuSmF2YVNjcmlwdEFsZXJ0Q2FsbGJh
Y2tfZGVwcmVjYXRlZEZvclVzZVdpdGhWMCAgICAgICAgICAgICBydW5KYXZhU2NyaXB0QWxlcnRf
ZGVwcmVjYXRlZEZvclVzZVdpdGhWMDsKKyAgICBXS1BhZ2VSdW5KYXZhU2NyaXB0Q29uZmlybUNh
bGxiYWNrX2RlcHJlY2F0ZWRGb3JVc2VXaXRoVjAgICAgICAgICAgIHJ1bkphdmFTY3JpcHRDb25m
aXJtX2RlcHJlY2F0ZWRGb3JVc2VXaXRoVjA7CisgICAgV0tQYWdlUnVuSmF2YVNjcmlwdFByb21w
dENhbGxiYWNrX2RlcHJlY2F0ZWRGb3JVc2VXaXRoVjAgICAgICAgICAgICBydW5KYXZhU2NyaXB0
UHJvbXB0X2RlcHJlY2F0ZWRGb3JVc2VXaXRoVjA7CisgICAgV0tQYWdlU2V0U3RhdHVzVGV4dENh
bGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRTdGF0dXNU
ZXh0OworICAgIFdLUGFnZU1vdXNlRGlkTW92ZU92ZXJFbGVtZW50Q2FsbGJhY2tfZGVwcmVjYXRl
ZEZvclVzZVdpdGhWMCAgICAgICAgbW91c2VEaWRNb3ZlT3ZlckVsZW1lbnRfZGVwcmVjYXRlZEZv
clVzZVdpdGhWMDsKKyAgICBXS1BhZ2VNaXNzaW5nUGx1Z2luQnV0dG9uQ2xpY2tlZENhbGxiYWNr
X2RlcHJlY2F0ZWRGb3JVc2VXaXRoVjAgICAgIG1pc3NpbmdQbHVnaW5CdXR0b25DbGlja2VkX2Rl
cHJlY2F0ZWRGb3JVc2VXaXRoVjA7CisgICAgV0tQYWdlRGlkTm90SGFuZGxlS2V5RXZlbnRDYWxs
YmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaWROb3RIYW5kbGVLZXlFdmVu
dDsKKyAgICBXS1BhZ2VEaWROb3RIYW5kbGVXaGVlbEV2ZW50Q2FsbGJhY2sgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGRpZE5vdEhhbmRsZVdoZWVsRXZlbnQ7CisgICAgV0tQYWdlR2V0
VG9vbGJhcnNBcmVWaXNpYmxlQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB0b29sYmFyc0FyZVZpc2libGU7CisgICAgV0tQYWdlU2V0VG9vbGJhcnNBcmVWaXNpYmxlQ2Fs
bGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRUb29sYmFyc0FyZVZpc2li
bGU7CisgICAgV0tQYWdlR2V0TWVudUJhcklzVmlzaWJsZUNhbGxiYWNrICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBtZW51QmFySXNWaXNpYmxlOworICAgIFdLUGFnZVNldE1lbnVC
YXJJc1Zpc2libGVDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0
TWVudUJhcklzVmlzaWJsZTsKKyAgICBXS1BhZ2VHZXRTdGF0dXNCYXJJc1Zpc2libGVDYWxsYmFj
ayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXR1c0JhcklzVmlzaWJsZTsKKyAg
ICBXS1BhZ2VTZXRTdGF0dXNCYXJJc1Zpc2libGVDYWxsYmFjayAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHNldFN0YXR1c0JhcklzVmlzaWJsZTsKKyAgICBXS1BhZ2VHZXRJc1Jlc2l6
YWJsZUNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlzUmVz
aXphYmxlOworICAgIFdLUGFnZVNldElzUmVzaXphYmxlQ2FsbGJhY2sgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgc2V0SXNSZXNpemFibGU7CisgICAgV0tQYWdlR2V0V2lu
ZG93RnJhbWVDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBn
ZXRXaW5kb3dGcmFtZTsKKyAgICBXS1BhZ2VTZXRXaW5kb3dGcmFtZUNhbGxiYWNrICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldFdpbmRvd0ZyYW1lOworICAgIFdLUGFn
ZVJ1bkJlZm9yZVVubG9hZENvbmZpcm1QYW5lbENhbGxiYWNrX2RlcHJlY2F0ZWRGb3JVc2VXaXRo
VjYgICAgcnVuQmVmb3JlVW5sb2FkQ29uZmlybVBhbmVsX2RlcHJlY2F0ZWRGb3JVc2VXaXRoVjY7
CisgICAgV0tQYWdlVUlDbGllbnRDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBkaWREcmF3OworICAgIFdLUGFnZVVJQ2xpZW50Q2FsbGJhY2sgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFnZURpZFNjcm9sbDsK
KyAgICBXS1BhZ2VFeGNlZWRlZERhdGFiYXNlUXVvdGFDYWxsYmFjayAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGV4Y2VlZGVkRGF0YWJhc2VRdW90YTsKKyAgICBXS1BhZ2VSdW5PcGVu
UGFuZWxDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJ1
bk9wZW5QYW5lbDsKKyAgICBXS1BhZ2VEZWNpZGVQb2xpY3lGb3JHZW9sb2NhdGlvblBlcm1pc3Np
b25SZXF1ZXN0Q2FsbGJhY2sgICAgICAgICAgIGRlY2lkZVBvbGljeUZvckdlb2xvY2F0aW9uUGVy
bWlzc2lvblJlcXVlc3Q7CisgICAgV0tQYWdlSGVhZGVySGVpZ2h0Q2FsbGJhY2sgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWFkZXJIZWlnaHQ7CisgICAgV0tQYWdl
Rm9vdGVySGVpZ2h0Q2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBmb290ZXJIZWlnaHQ7CisgICAgV0tQYWdlRHJhd0hlYWRlckNhbGxiYWNrICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkcmF3SGVhZGVyOworICAgIFdLUGFn
ZURyYXdGb290ZXJDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgZHJhd0Zvb3RlcjsKKyAgICBXS1BhZ2VQcmludEZyYW1lQ2FsbGJhY2sgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByaW50RnJhbWU7CisgICAgV0tQYWdl
VUlDbGllbnRDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBydW5Nb2RhbDsKKyAgICB2b2lkKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVudXNlZDE7IC8vIFVzZWQgdG8gYmUgZGlk
Q29tcGxldGVSdWJiZXJCYW5kRm9yTWFpbkZyYW1lCisgICAgV0tQYWdlU2F2ZURhdGFUb0ZpbGVJ
bkRvd25sb2Fkc0ZvbGRlckNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICBzYXZlRGF0YVRv
RmlsZUluRG93bmxvYWRzRm9sZGVyOworICAgIHZvaWQqICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2hvdWxkSW50ZXJydXB0SmF2
YVNjcmlwdF91bmF2YWlsYWJsZTsKKworICAgIC8vIFZlcnNpb24gMS4KKyAgICBXS1BhZ2VDcmVh
dGVOZXdQYWdlQ2FsbGJhY2tfZGVwcmVjYXRlZEZvclVzZVdpdGhWMSAgICAgICAgICAgICAgICAg
IGNyZWF0ZU5ld1BhZ2VfZGVwcmVjYXRlZEZvclVzZVdpdGhWMTsKKyAgICBXS1BhZ2VNb3VzZURp
ZE1vdmVPdmVyRWxlbWVudENhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1v
dXNlRGlkTW92ZU92ZXJFbGVtZW50OworICAgIFdLUGFnZURlY2lkZVBvbGljeUZvck5vdGlmaWNh
dGlvblBlcm1pc3Npb25SZXF1ZXN0Q2FsbGJhY2sgICAgICAgICAgZGVjaWRlUG9saWN5Rm9yTm90
aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3Q7CisgICAgV0tQYWdlVW5hdmFpbGFibGVQbHVnaW5C
dXR0b25DbGlja2VkQ2FsbGJhY2tfZGVwcmVjYXRlZEZvclVzZVdpdGhWMSB1bmF2YWlsYWJsZVBs
dWdpbkJ1dHRvbkNsaWNrZWRfZGVwcmVjYXRlZEZvclVzZVdpdGhWMTsKKworICAgIC8vIFZlcnNp
b24gMi4KKyAgICBXS1BhZ2VTaG93Q29sb3JQaWNrZXJDYWxsYmFjayAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHNob3dDb2xvclBpY2tlcjsKKyAgICBXS1BhZ2VIaWRlQ29s
b3JQaWNrZXJDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhp
ZGVDb2xvclBpY2tlcjsKKyAgICBXS1BhZ2VVbmF2YWlsYWJsZVBsdWdpbkJ1dHRvbkNsaWNrZWRD
YWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgIHVuYXZhaWxhYmxlUGx1Z2luQnV0dG9uQ2xp
Y2tlZDsKKworICAgIC8vIFZlcnNpb24gMy4KKyAgICBXS1BhZ2VQaW5uZWRTdGF0ZURpZENoYW5n
ZUNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBpbm5lZFN0YXRlRGlk
Q2hhbmdlOworCisgICAgLy8gVmVyc2lvbiA0LgorICAgIHZvaWQqICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW51c2VkMjsgLy8g
VXNlZCB0byBiZSBkaWRCZWdpblRyYWNraW5nUG90ZW50aWFsTG9uZ01vdXNlUHJlc3MuCisgICAg
dm9pZCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICB1bnVzZWQzOyAvLyBVc2VkIHRvIGJlIGRpZFJlY29nbml6ZUxvbmdNb3VzZVBy
ZXNzLgorICAgIHZvaWQqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgdW51c2VkNDsgLy8gVXNlZCB0byBiZSBkaWRDYW5jZWxUcmFj
a2luZ1BvdGVudGlhbExvbmdNb3VzZVByZXNzLgorICAgIFdLUGFnZUlzUGxheWluZ0F1ZGlvRGlk
Q2hhbmdlQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXNQbGF5aW5nQXVk
aW9EaWRDaGFuZ2U7CisKKyAgICAvLyBWZXJzaW9uIDUuCisgICAgV0tQYWdlRGVjaWRlUG9saWN5
Rm9yVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RDYWxsYmFjayAgICAgICAgICAgICBkZWNpZGVQ
b2xpY3lGb3JVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdDsKKyAgICBXS1BhZ2VEaWRDbGlja0F1
dG9GaWxsQnV0dG9uQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpZENs
aWNrQXV0b0ZpbGxCdXR0b247CisgICAgV0tQYWdlUnVuSmF2YVNjcmlwdEFsZXJ0Q2FsbGJhY2tf
ZGVwcmVjYXRlZEZvclVzZVdpdGhWNSAgICAgICAgICAgICBydW5KYXZhU2NyaXB0QWxlcnRfZGVw
cmVjYXRlZEZvclVzZVdpdGhWNTsKKyAgICBXS1BhZ2VSdW5KYXZhU2NyaXB0Q29uZmlybUNhbGxi
YWNrX2RlcHJlY2F0ZWRGb3JVc2VXaXRoVjUgICAgICAgICAgIHJ1bkphdmFTY3JpcHRDb25maXJt
X2RlcHJlY2F0ZWRGb3JVc2VXaXRoVjU7CisgICAgV0tQYWdlUnVuSmF2YVNjcmlwdFByb21wdENh
bGxiYWNrX2RlcHJlY2F0ZWRGb3JVc2VXaXRoVjUgICAgICAgICAgICBydW5KYXZhU2NyaXB0UHJv
bXB0X2RlcHJlY2F0ZWRGb3JVc2VXaXRoVjU7CisgICAgdm9pZCogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnVzZWQ1OyAvLyBV
c2VkIHRvIGJlIG1lZGlhU2Vzc2lvbk1ldGFkYXRhRGlkQ2hhbmdlLgorCisgICAgLy8gVmVyc2lv
biA2LgorICAgIFdLUGFnZUNyZWF0ZU5ld1BhZ2VDYWxsYmFjayAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgY3JlYXRlTmV3UGFnZTsKKyAgICBXS1BhZ2VSdW5KYXZhU2Ny
aXB0QWxlcnRDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJ1bkph
dmFTY3JpcHRBbGVydDsKKyAgICBXS1BhZ2VSdW5KYXZhU2NyaXB0Q29uZmlybUNhbGxiYWNrICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJ1bkphdmFTY3JpcHRDb25maXJtOworICAg
IFdLUGFnZVJ1bkphdmFTY3JpcHRQcm9tcHRDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgcnVuSmF2YVNjcmlwdFByb21wdDsKKyAgICBXS0NoZWNrVXNlck1lZGlhUGVy
bWlzc2lvbkNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoZWNrVXNl
ck1lZGlhUGVybWlzc2lvbkZvck9yaWdpbjsKKworICAgIC8vIFZlcnNpb24gNy4KKyAgICBXS1Bh
Z2VSdW5CZWZvcmVVbmxvYWRDb25maXJtUGFuZWxDYWxsYmFjayAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHJ1bkJlZm9yZVVubG9hZENvbmZpcm1QYW5lbDsKKyAgICBXS0Z1bGxzY3JlZW5NYXlS
ZXR1cm5Ub0lubGluZUNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZ1bGxz
Y3JlZW5NYXlSZXR1cm5Ub0lubGluZTsKKworICAgIC8vIFZlcnNpb24gOC4KKyAgICBXS1JlcXVl
c3RQb2ludGVyTG9ja0NhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHJlcXVlc3RQb2ludGVyTG9jazsKKyAgICBXS0RpZExvc2VQb2ludGVyTG9ja0NhbGxiYWNr
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpZExvc2VQb2ludGVyTG9j
azsKKworICAgIC8vIFZlcnNpb24gOS4KKyAgICBXS0hhbmRsZUF1dG9wbGF5RXZlbnRDYWxsYmFj
ayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZUF1dG9wbGF5RXZl
bnQ7CisKKyAgICAvLyBWZXJzaW9uIDEwLgorICAgIFdLSGFzVmlkZW9JblBpY3R1cmVJblBpY3R1
cmVEaWRDaGFuZ2VDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgaGFzVmlkZW9JblBpY3R1
cmVJblBpY3R1cmVEaWRDaGFuZ2U7CisgICAgV0tEaWRFeGNlZWRCYWNrZ3JvdW5kUmVzb3VyY2VM
aW1pdFdoaWxlSW5Gb3JlZ3JvdW5kQ2FsbGJhY2sgICAgICAgICBkaWRFeGNlZWRCYWNrZ3JvdW5k
UmVzb3VyY2VMaW1pdFdoaWxlSW5Gb3JlZ3JvdW5kOworCisgICAgLy8gVmVyc2lvbiAxMS4KKyAg
ICBXS1BhZ2VEaWRSZXNpZ25JbnB1dEVsZW1lbnRTdHJvbmdQYXNzd29yZEFwcGVhcmFuY2VDYWxs
YmFjayAgICAgICAgIGRpZFJlc2lnbklucHV0RWxlbWVudFN0cm9uZ1Bhc3N3b3JkQXBwZWFyYW5j
ZTsKKworICAgIC8vIFZlcnNpb24gMTIuCisgICAgV0tQYWdlUmVxdWVzdFN0b3JhZ2VBY2Nlc3ND
b25maXJtQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0U3RvcmFnZUFj
Y2Vzc0NvbmZpcm07CisKKyAgICAvLyBWZXJzaW9uIDEzLgorICAgIFdLUGFnZVNob3VsZEFsbG93
RGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25BY2Nlc3NDYWxsYmFjayAgICAgICAgICAgc2hvdWxk
QWxsb3dEZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvbkFjY2VzczsKKworICAgIC8vIFZlcnNpb24g
MTQuCisgICAgV0tQYWdlUnVuV2ViQXV0aGVudGljYXRpb25QYW5lbENhbGxiYWNrICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBydW5XZWJBdXRoZW50aWNhdGlvblBhbmVsOworCisgICAgLy8g
VmVyc2lvbiAxNS4KKyAgICBXS1BhZ2VEZWNpZGVQb2xpY3lGb3JTcGVlY2hSZWNvZ25pdGlvblBl
cm1pc3Npb25SZXF1ZXN0Q2FsbGJhY2sgICAgIGRlY2lkZVBvbGljeUZvclNwZWVjaFJlY29nbml0
aW9uUGVybWlzc2lvblJlcXVlc3Q7CisKKyAgICAvLyBWZXJzaW9uIDE2LgorICAgIFdLUGFnZURl
Y2lkZVBvbGljeUZvck1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RDYWxsYmFjayAgICAg
ICAgZGVjaWRlUG9saWN5Rm9yTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdDsKKworfSBX
S1BhZ2VVSUNsaWVudFYxNjsKKworCiAjaWZkZWYgX19jcGx1c3BsdXMKIH0KICNlbmRpZgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9u
UmVxdWVzdC5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTWVkaWFLZXlTeXN0ZW1QZXJtaXNz
aW9uUmVxdWVzdC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjRhZmMzNWQwMTc3MmQ1ODk3Yzc3ZWFjMDEwN2JjOWJl
NzRiNDYyOGEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9NZWRp
YUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0LmgKQEAgLTAsMCArMSw3NiBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAyMSBJZ2FsaWEgUy5MLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElT
JycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JT
CisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisg
KiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAq
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKwor
I2luY2x1ZGUgIkFQSU9iamVjdC5oIgorI2luY2x1ZGUgPFdlYkNvcmUvQ2xpZW50T3JpZ2luLmg+
CisjaW5jbHVkZSA8d3RmL0NvbXBsZXRpb25IYW5kbGVyLmg+CisKK25hbWVzcGFjZSBXZWJLaXQg
eworCitjbGFzcyBNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0IDogcHVibGljIFJlZkNv
dW50ZWQ8TWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdD4geworcHVibGljOgorICAgIHN0
YXRpYyBSZWY8TWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdD4gY3JlYXRlKGNvbnN0IFN0
cmluZyYga2V5U3lzdGVtLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmIGNvbXBsZXRp
b25IYW5kbGVyKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgTWVkaWFLZXlT
eXN0ZW1QZXJtaXNzaW9uUmVxdWVzdChrZXlTeXN0ZW0sIFdURk1vdmUoY29tcGxldGlvbkhhbmRs
ZXIpKSk7CisgICAgfQorCisgICAgdm9pZCBjb21wbGV0ZShib29sIHN1Y2Nlc3MpCisgICAgewor
ICAgICAgICBhdXRvIGNvbXBsZXRpb25IYW5kbGVyID0gc3RkOjpleGNoYW5nZShtX2NvbXBsZXRp
b25IYW5kbGVyLCB7IH0pOworICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihzdWNjZXNzKTsKKyAg
ICB9CisKKyAgICBjb25zdCBTdHJpbmcmIGtleVN5c3RlbSgpIGNvbnN0IHsgcmV0dXJuIG1fa2V5
U3lzdGVtOyB9CisKK3ByaXZhdGU6CisgICAgTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVz
dChjb25zdCBTdHJpbmcmIGtleVN5c3RlbSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4m
JiBjb21wbGV0aW9uSGFuZGxlcikKKyAgICAgICAgOiBtX2tleVN5c3RlbShrZXlTeXN0ZW0pCisg
ICAgICAgICwgbV9jb21wbGV0aW9uSGFuZGxlcihXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSkK
KyAgICB7IH0KKworICAgIFN0cmluZyBtX2tleVN5c3RlbTsKKyAgICBDb21wbGV0aW9uSGFuZGxl
cjx2b2lkKGJvb2wpPiBtX2NvbXBsZXRpb25IYW5kbGVyOworfTsKKworY2xhc3MgTWVkaWFLZXlT
eXN0ZW1QZXJtaXNzaW9uQ2FsbGJhY2sgOiBwdWJsaWMgQVBJOjpPYmplY3RJbXBsPEFQSTo6T2Jq
ZWN0OjpUeXBlOjpNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25DYWxsYmFjaz4geworcHVibGljOgor
ICAgIHN0YXRpYyBSZWY8TWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uQ2FsbGJhY2s+IGNyZWF0ZShD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQorICAgIHsK
KyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uQ2Fs
bGJhY2soV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpKTsKKyAgICB9CisKKyAgICB2b2lkIGNv
bXBsZXRlKGJvb2wgZ3JhbnRlZCkgeyBtX2NvbXBsZXRpb25IYW5kbGVyKGdyYW50ZWQpOyB9CisK
K3ByaXZhdGU6CisgICAgTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uQ2FsbGJhY2soQ29tcGxldGlv
bkhhbmRsZXI8dm9pZChib29sKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKKyAgICAgICAgOiBtX2Nv
bXBsZXRpb25IYW5kbGVyKFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKQorICAgIHsgfQorCisg
ICAgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4gbV9jb21wbGV0aW9uSGFuZGxlcjsKK307
CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5jcHAgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9NZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0TWFu
YWdlclByb3h5LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41YjEwZGI4MzBkNzFiOWZiMTBjYTIxZTM1NzRmMTUz
NzljNDY1OTkwCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTWVk
aWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5jcHAKQEAgLTAsMCArMSwx
MTcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgSWdhbGlhIFMuTC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05U
UklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1Ig
SVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwor
I2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIk1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJl
cXVlc3RNYW5hZ2VyUHJveHkuaCIKKworI2luY2x1ZGUgIkFQSVNlY3VyaXR5T3JpZ2luLmgiCisj
aW5jbHVkZSAiQVBJVUlDbGllbnQuaCIKKyNpbmNsdWRlICJMb2dnaW5nLmgiCisjaW5jbHVkZSAi
V2ViQXV0b21hdGlvblNlc3Npb24uaCIKKyNpbmNsdWRlICJXZWJQYWdlTWVzc2FnZXMuaCIKKyNp
bmNsdWRlICJXZWJQYWdlUHJveHkuaCIKKyNpbmNsdWRlICJXZWJQcm9jZXNzLmgiCisjaW5jbHVk
ZSAiV2ViUHJvY2Vzc1Bvb2wuaCIKKyNpbmNsdWRlICJXZWJQcm9jZXNzUHJveHkuaCIKKyNpbmNs
dWRlICJXZWJzaXRlRGF0YVN0b3JlLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9NZWRpYUtleVN5c3Rl
bVJlcXVlc3QuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1NlY3VyaXR5T3JpZ2luRGF0YS5oPgorI2lu
Y2x1ZGUgPHd0Zi9TY29wZS5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKK3VzaW5nIG5hbWVzcGFj
ZSBXZWJDb3JlOworCitNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5
OjpNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5KFdlYlBhZ2VQcm94
eSYgcGFnZSkKKyAgICA6IG1fcGFnZShwYWdlKQorI2lmICFSRUxFQVNFX0xPR19ESVNBQkxFRAor
ICAgICwgbV9sb2dnZXIocGFnZS5sb2dnZXIoKSkKKyAgICAsIG1fbG9nSWRlbnRpZmllcih1bmlx
dWVMb2dJZGVudGlmaWVyKCkpCisjZW5kaWYKK3sKK30KKworTWVkaWFLZXlTeXN0ZW1QZXJtaXNz
aW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6fk1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RN
YW5hZ2VyUHJveHkoKQoreworICAgIGludmFsaWRhdGVQZW5kaW5nUmVxdWVzdHMoKTsKK30KKwor
dm9pZCBNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5OjppbnZhbGlk
YXRlUGVuZGluZ1JlcXVlc3RzKCkKK3sKKyAgICBmb3IgKGF1dG8mIHJlcXVlc3QgOiBtX3BlbmRp
bmdSZXF1ZXN0cy52YWx1ZXMoKSkKKyAgICAgICAgcmVxdWVzdC0+aW52YWxpZGF0ZSgpOworCisg
ICAgbV9wZW5kaW5nUmVxdWVzdHMuY2xlYXIoKTsKK30KKwordm9pZCBNZWRpYUtleVN5c3RlbVBl
cm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5OjpkZW55UmVxdWVzdChNZWRpYUtleVN5c3RlbVBl
cm1pc3Npb25SZXF1ZXN0UHJveHkmIHJlcXVlc3QsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSkKK3sK
KyAgICBpZiAoIW1fcGFnZS5oYXNSdW5uaW5nUHJvY2VzcygpKQorICAgICAgICByZXR1cm47CisK
KyAgICBBTFdBWVNfTE9HKExPR0lERU5USUZJRVIsIHJlcXVlc3QubWVkaWFLZXlTeXN0ZW1JRCgp
LCAiLCByZWFzb246ICIsIG1lc3NhZ2UpOworCisjaWYgRU5BQkxFKEVOQ1JZUFRFRF9NRURJQSkK
KyAgICBtX3BhZ2Uuc2VuZChNZXNzYWdlczo6V2ViUGFnZTo6TWVkaWFLZXlTeXN0ZW1XYXNEZW5p
ZWQocmVxdWVzdC5tZWRpYUtleVN5c3RlbUlEKCksIG1lc3NhZ2UpKTsKKyNlbHNlCisgICAgVU5V
U0VEX1BBUkFNKG1lc3NhZ2UpOworI2VuZGlmCit9CisKK3ZvaWQgTWVkaWFLZXlTeXN0ZW1QZXJt
aXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6Z3JhbnRSZXF1ZXN0KE1lZGlhS2V5U3lzdGVtUGVy
bWlzc2lvblJlcXVlc3RQcm94eSYgcmVxdWVzdCkKK3sKKyAgICBpZiAoIW1fcGFnZS5oYXNSdW5u
aW5nUHJvY2VzcygpKQorICAgICAgICByZXR1cm47CisKKyNpZiBFTkFCTEUoRU5DUllQVEVEX01F
RElBKQorICAgIEFMV0FZU19MT0coTE9HSURFTlRJRklFUiwgcmVxdWVzdC5tZWRpYUtleVN5c3Rl
bUlEKCksICIsIGtleVN5c3RlbTogIiwgcmVxdWVzdC5rZXlTeXN0ZW0oKSk7CisKKyAgICBtX3Bh
Z2Uuc2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpXZWJQYWdlOjpNZWRpYUtleVN5c3RlbVdh
c0dyYW50ZWQgeyByZXF1ZXN0Lm1lZGlhS2V5U3lzdGVtSUQoKSB9LCBbXSB7IH0pOworI2Vsc2UK
KyAgICBVTlVTRURfUEFSQU0ocmVxdWVzdCk7CisjZW5kaWYKK30KKworUmVmPE1lZGlhS2V5U3lz
dGVtUGVybWlzc2lvblJlcXVlc3RQcm94eT4gTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVz
dE1hbmFnZXJQcm94eTo6Y3JlYXRlUmVxdWVzdEZvckZyYW1lKHVpbnQ2NF90IG1lZGlhS2V5U3lz
dGVtSUQsIEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBSZWY8U2VjdXJpdHlPcmlnaW4+JiYgdG9w
TGV2ZWxEb2N1bWVudE9yaWdpbiwgY29uc3QgU3RyaW5nJiBrZXlTeXN0ZW0pCit7CisgICAgQUxX
QVlTX0xPRyhMT0dJREVOVElGSUVSLCBtZWRpYUtleVN5c3RlbUlEKTsKKworICAgIGF1dG8gcmVx
dWVzdCA9IE1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RQcm94eTo6Y3JlYXRlKCp0aGlz
LCBtZWRpYUtleVN5c3RlbUlELCBtX3BhZ2UubWFpbkZyYW1lKCktPmZyYW1lSUQoKSwgZnJhbWVJ
RCwgV1RGTW92ZSh0b3BMZXZlbERvY3VtZW50T3JpZ2luKSwga2V5U3lzdGVtKTsKKyAgICBtX3Bl
bmRpbmdSZXF1ZXN0cy5hZGQobWVkaWFLZXlTeXN0ZW1JRCwgcmVxdWVzdC5wdHIoKSk7CisgICAg
cmV0dXJuIHJlcXVlc3Q7Cit9CisKKyNpZiAhUkVMRUFTRV9MT0dfRElTQUJMRUQKK1dURkxvZ0No
YW5uZWwmIE1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6OmxvZ0No
YW5uZWwoKSBjb25zdAoreworICAgIHJldHVybiBXZWJLaXQyTG9nRU1FOworfQorCitjb25zdCBM
b2dnZXImIE1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6OmxvZ2dl
cigpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fcGFnZS5sb2dnZXIoKTsKK30KKyNlbmRpZgorCit9
IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L01lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuaCBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL01lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJv
eHkuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi5iMDNhNjI4NDgxMWJlZjJkMjIxMzFiN2JlMTBlODkzYzA2NzE4NmZj
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTWVkaWFLZXlTeXN0
ZW1QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5oCkBAIC0wLDAgKzEsODUgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMjEgSWdhbGlhIFMuTC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBB
UyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJV
VE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
CisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNl
CisKKyNpbmNsdWRlICJNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0UHJveHkuaCIKKyNp
bmNsdWRlIDxXZWJDb3JlL1NlY3VyaXR5T3JpZ2luLmg+CisjaW5jbHVkZSA8d3RmL0NvbXBsZXRp
b25IYW5kbGVyLmg+CisjaW5jbHVkZSA8d3RmL0RlcXVlLmg+CisjaW5jbHVkZSA8d3RmL0hhc2hN
YXAuaD4KKyNpbmNsdWRlIDx3dGYvTG9nZ2VySGVscGVyLmg+CisjaW5jbHVkZSA8d3RmL1J1bkxv
b3AuaD4KKyNpbmNsdWRlIDx3dGYvU2Vjb25kcy5oPgorI2luY2x1ZGUgPHd0Zi9XZWFrUHRyLmg+
CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKK2NsYXNzIFNlY3VyaXR5T3JpZ2luOworfTsKKworbmFt
ZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIFdlYlBhZ2VQcm94eTsKKworY2xhc3MgTWVkaWFLZXlT
eXN0ZW1QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eQorICAgIDogcHVibGljIENhbk1ha2VX
ZWFrUHRyPE1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk+CisjaWYg
IVJFTEVBU0VfTE9HX0RJU0FCTEVECisgICAgLCBwcml2YXRlIExvZ2dlckhlbHBlcgorI2VuZGlm
Cit7CisgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CitwdWJsaWM6CisgICAgZXhwbGljaXQg
TWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eShXZWJQYWdlUHJveHkm
KTsKKyAgICB+TWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eSgpOwor
CisgICAgV2ViUGFnZVByb3h5JiBwYWdlKCkgY29uc3QgeyByZXR1cm4gbV9wYWdlOyB9CisKKyAg
ICB2b2lkIGludmFsaWRhdGVQZW5kaW5nUmVxdWVzdHMoKTsKKworICAgIFJlZjxNZWRpYUtleVN5
c3RlbVBlcm1pc3Npb25SZXF1ZXN0UHJveHk+IGNyZWF0ZVJlcXVlc3RGb3JGcmFtZSh1aW50NjRf
dCB1c2VyTWVkaWFJRCwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBSZWY8V2ViQ29yZTo6U2Vj
dXJpdHlPcmlnaW4+JiYgdG9wTGV2ZWxEb2N1bWVudE9yaWdpbiwgY29uc3QgU3RyaW5nJiBrZXlT
eXN0ZW0pOworCisgICAgdm9pZCBncmFudFJlcXVlc3QoTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9u
UmVxdWVzdFByb3h5Jik7CisgICAgdm9pZCBkZW55UmVxdWVzdChNZWRpYUtleVN5c3RlbVBlcm1p
c3Npb25SZXF1ZXN0UHJveHkmLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UgPSB7IH0pOworCitwcml2
YXRlOgorI2lmICFSRUxFQVNFX0xPR19ESVNBQkxFRAorICAgIGNvbnN0IExvZ2dlciYgbG9nZ2Vy
KCkgY29uc3QgZmluYWw7CisgICAgY29uc3Qgdm9pZCogbG9nSWRlbnRpZmllcigpIGNvbnN0IGZp
bmFsIHsgcmV0dXJuIG1fbG9nSWRlbnRpZmllcjsgfQorICAgIGNvbnN0IGNoYXIqIGxvZ0NsYXNz
TmFtZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuICJNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25S
ZXF1ZXN0TWFuYWdlclByb3h5IjsgfQorICAgIFdURkxvZ0NoYW5uZWwmIGxvZ0NoYW5uZWwoKSBj
b25zdCBmaW5hbDsKKyNlbmRpZgorCisgICAgV2ViUGFnZVByb3h5JiBtX3BhZ2U7CisKKyAgICBI
YXNoTWFwPHVpbnQ2NF90LCBSZWZQdHI8TWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdFBy
b3h5Pj4gbV9wZW5kaW5nUmVxdWVzdHM7CisgICAgSGFzaFNldDxTdHJpbmc+IG1fdmFsaWRBdXRo
b3JpemF0aW9uVG9rZW5zOworCisjaWYgIVJFTEVBU0VfTE9HX0RJU0FCTEVECisgICAgUmVmPGNv
bnN0IExvZ2dlcj4gbV9sb2dnZXI7CisgICAgY29uc3Qgdm9pZCogbV9sb2dJZGVudGlmaWVyOwor
I2VuZGlmCit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL01lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RQcm94eS5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9NZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0
UHJveHkuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQyYjkxNTVkMTU4NTZhMzQwMmJjZmMxZjU1MjY5MjBlMDM3
OTBiZGMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9NZWRpYUtl
eVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0UHJveHkuY3BwCkBAIC0wLDAgKzEsODIgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMjEgSWdhbGlhIFMuTC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBB
UyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJV
VE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
CisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNv
bmZpZy5oIgorI2luY2x1ZGUgIk1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RQcm94eS5o
IgorCisjaW5jbHVkZSAiTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94
eS5oIgorI2luY2x1ZGUgPFdlYkNvcmUvU2VjdXJpdHlPcmlnaW4uaD4KKyNpbmNsdWRlIDxXZWJD
b3JlL1NlY3VyaXR5T3JpZ2luRGF0YS5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0hhc2gu
aD4KKworbmFtZXNwYWNlIFdlYktpdCB7Cit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKKworTWVk
aWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdFByb3h5OjpNZWRpYUtleVN5c3RlbVBlcm1pc3Np
b25SZXF1ZXN0UHJveHkoTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94
eSYgbWFuYWdlciwgdWludDY0X3QgbWVkaWFLZXlTeXN0ZW1JRCwgRnJhbWVJZGVudGlmaWVyIG1h
aW5GcmFtZUlELCBGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgUmVmPFdlYkNvcmU6OlNlY3VyaXR5
T3JpZ2luPiYmIHRvcExldmVsRG9jdW1lbnRPcmlnaW4sIGNvbnN0IFN0cmluZyYga2V5U3lzdGVt
KQorICAgIDogbV9tYW5hZ2VyKCZtYW5hZ2VyKQorICAgICwgbV9tZWRpYUtleVN5c3RlbUlEKG1l
ZGlhS2V5U3lzdGVtSUQpCisgICAgLCBtX21haW5GcmFtZUlEKG1haW5GcmFtZUlEKQorICAgICwg
bV9mcmFtZUlEKGZyYW1lSUQpCisgICAgLCBtX3RvcExldmVsRG9jdW1lbnRTZWN1cml0eU9yaWdp
bihXVEZNb3ZlKHRvcExldmVsRG9jdW1lbnRPcmlnaW4pKQorICAgICwgbV9rZXlTeXN0ZW0oa2V5
U3lzdGVtKQoreworfQorCit2b2lkIE1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RQcm94
eTo6YWxsb3coKQoreworICAgIEFTU0VSVChtX21hbmFnZXIpOworICAgIGlmICghbV9tYW5hZ2Vy
KQorICAgICAgICByZXR1cm47CisKKyAgICBtX21hbmFnZXItPmdyYW50UmVxdWVzdCgqdGhpcyk7
CisgICAgaW52YWxpZGF0ZSgpOworfQorCit2b2lkIE1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJl
cXVlc3RQcm94eTo6ZGVueSgpCit7CisgICAgaWYgKCFtX21hbmFnZXIpCisgICAgICAgIHJldHVy
bjsKKworICAgIG1fbWFuYWdlci0+ZGVueVJlcXVlc3QoKnRoaXMpOworICAgIGludmFsaWRhdGUo
KTsKK30KKwordm9pZCBNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0UHJveHk6OmludmFs
aWRhdGUoKQoreworICAgIG1fbWFuYWdlciA9IG51bGxwdHI7Cit9CisKK3ZvaWQgTWVkaWFLZXlT
eXN0ZW1QZXJtaXNzaW9uUmVxdWVzdFByb3h5Ojpkb0RlZmF1bHRBY3Rpb24oKQoreworI2lmIFBM
QVRGT1JNKENPQ09BKQorICAgIC8vIEJhY2t3YXJkIGNvbXBhdGliaWxpdHkgZm9yIHBsYXRmb3Jt
cyBub3QgeWV0IHN1cHBvcnRpbmcgdGhlIE1lZGlhS2V5U3lzdGVtIHBlcm1pc3Npb24gcmVxdWVz
dAorICAgIC8vIGluIHRoZWlyIEFQSVVJQ2xpZW50LgorICAgIGFsbG93KCk7CisjZWxzZQorICAg
IGRlbnkoKTsKKyNlbmRpZgorfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL01lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RQ
cm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9u
UmVxdWVzdFByb3h5LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYTY0ZDFjNjIwNTdkNTY5NzIwNTY4NmU4NzFhZWMy
ODM2NzUwNWRjOQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL01l
ZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RQcm94eS5oCkBAIC0wLDAgKzEsNzYgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgSWdhbGlhIFMuTC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMg
YGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRS
SUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBv
bmNlCisKKyNpbmNsdWRlICJBUElPYmplY3QuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL0ZyYW1lSWRl
bnRpZmllci5oPgorI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9X
VEZTdHJpbmcuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworY2xhc3MgU2VjdXJpdHlPcmlnaW47
Cit9CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBNZWRpYUtleVN5c3RlbVBlcm1pc3Np
b25SZXF1ZXN0TWFuYWdlclByb3h5OworCitjbGFzcyBNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25S
ZXF1ZXN0UHJveHkgOiBwdWJsaWMgUmVmQ291bnRlZDxNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25S
ZXF1ZXN0UHJveHk+IHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmPE1lZGlhS2V5U3lzdGVtUGVy
bWlzc2lvblJlcXVlc3RQcm94eT4gY3JlYXRlKE1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVl
c3RNYW5hZ2VyUHJveHkmIG1hbmFnZXIsIHVpbnQ2NF90IG1lZGlhS2V5U3lzdGVtSUQsIFdlYkNv
cmU6OkZyYW1lSWRlbnRpZmllciBtYWluRnJhbWVJRCwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVy
IGZyYW1lSUQsIFJlZjxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbj4mJiB0b3BMZXZlbERvY3VtZW50
T3JpZ2luLCBjb25zdCBTdHJpbmcmIGtleVN5c3RlbSkKKyAgICB7CisgICAgICAgIHJldHVybiBh
ZG9wdFJlZigqbmV3IE1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RQcm94eShtYW5hZ2Vy
LCBtZWRpYUtleVN5c3RlbUlELCBtYWluRnJhbWVJRCwgZnJhbWVJRCwgV1RGTW92ZSh0b3BMZXZl
bERvY3VtZW50T3JpZ2luKSwga2V5U3lzdGVtKSk7CisgICAgfQorCisgICAgdm9pZCBhbGxvdygp
OworICAgIHZvaWQgZGVueSgpOworCisgICAgdm9pZCBpbnZhbGlkYXRlKCk7CisgICAgYm9vbCBp
c1BlbmRpbmcoKSBjb25zdCB7IHJldHVybiBtX21hbmFnZXI7IH0KKworICAgIHVpbnQ2NF90IG1l
ZGlhS2V5U3lzdGVtSUQoKSBjb25zdCB7IHJldHVybiBtX21lZGlhS2V5U3lzdGVtSUQ7IH0KKyAg
ICBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgbWFpbkZyYW1lSUQoKSBjb25zdCB7IHJldHVybiBt
X21haW5GcmFtZUlEOyB9CisgICAgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQoKSBj
b25zdCB7IHJldHVybiBtX2ZyYW1lSUQ7IH0KKworICAgIFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2lu
JiB0b3BMZXZlbERvY3VtZW50U2VjdXJpdHlPcmlnaW4oKSB7IHJldHVybiBtX3RvcExldmVsRG9j
dW1lbnRTZWN1cml0eU9yaWdpbi5nZXQoKTsgfQorICAgIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5
T3JpZ2luJiB0b3BMZXZlbERvY3VtZW50U2VjdXJpdHlPcmlnaW4oKSBjb25zdCB7IHJldHVybiBt
X3RvcExldmVsRG9jdW1lbnRTZWN1cml0eU9yaWdpbi5nZXQoKTsgfQorCisgICAgY29uc3QgU3Ry
aW5nJiBrZXlTeXN0ZW0oKSBjb25zdCB7IHJldHVybiBtX2tleVN5c3RlbTsgfQorCisgICAgdm9p
ZCBkb0RlZmF1bHRBY3Rpb24oKTsKKworcHJpdmF0ZToKKyAgICBNZWRpYUtleVN5c3RlbVBlcm1p
c3Npb25SZXF1ZXN0UHJveHkoTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQ
cm94eSYsIHVpbnQ2NF90IG1lZGlhS2V5U3lzdGVtSUQsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmll
ciBtYWluRnJhbWVJRCwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBSZWY8V2ViQ29yZTo6U2Vj
dXJpdHlPcmlnaW4+JiYgdG9wTGV2ZWxEb2N1bWVudE9yaWdpbiwgY29uc3QgU3RyaW5nJiBrZXlT
eXN0ZW0pOworCisgICAgTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94
eSogbV9tYW5hZ2VyOworICAgIHVpbnQ2NF90IG1fbWVkaWFLZXlTeXN0ZW1JRDsKKyAgICBXZWJD
b3JlOjpGcmFtZUlkZW50aWZpZXIgbV9tYWluRnJhbWVJRDsKKyAgICBXZWJDb3JlOjpGcmFtZUlk
ZW50aWZpZXIgbV9mcmFtZUlEOworICAgIFJlZjxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbj4gbV90
b3BMZXZlbERvY3VtZW50U2VjdXJpdHlPcmlnaW47CisgICAgU3RyaW5nIG1fa2V5U3lzdGVtOwor
fTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UuY3BwIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1l
ZGlhU291cmNlLmNwcAppbmRleCBiOWQ5MzIwOTYzOWRkM2JmOGYyNzQ4MzUyNGNmNDA2ZDYzZWM2
MGFkLi40Mzg0ZDQ5YTE3YzllZjAzYzMwYjg5ZjcyNGI1YjUzOTcyMTRkOTdjIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1l
TWVkaWFTb3VyY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1NwZWVjaFJlY29n
bml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZS5jcHAKQEAgLTMzLDYgKzMzLDggQEAKIAog
I2lmIFBMQVRGT1JNKENPQ09BKQogI2luY2x1ZGUgIlNoYXJlZFJpbmdCdWZmZXJTdG9yYWdlLmgi
CisjaW5jbHVkZSA8V2ViQ29yZS9DQVJpbmdCdWZmZXIuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1dl
YkF1ZGlvQnVmZmVyTGlzdC5oPgogI2VuZGlmCiAKIG5hbWVzcGFjZSBXZWJLaXQgewpAQCAtNDcs
NyArNDksNyBAQCBTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2U6OlNw
ZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYQogICAgICwgbV9pZGVudGlmaWVyKGlk
ZW50aWZpZXIpCiAgICAgLCBtX21hbmFnZXIobWFrZVdlYWtQdHIobWFuYWdlcikpCiAjaWYgUExB
VEZPUk0oQ09DT0EpCi0gICAgLCBtX3JpbmdCdWZmZXIobWFrZVVuaXF1ZTxDQVJpbmdCdWZmZXI+
KCkpCisgICAgLCBtX3JpbmdCdWZmZXIobWFrZVVuaXF1ZTxXZWJDb3JlOjpDQVJpbmdCdWZmZXI+
KCkpCiAjZW5kaWYKIHsKICAgICBtX21hbmFnZXItPmFkZFNvdXJjZSgqdGhpcywgY2FwdHVyZURl
dmljZSk7CkBAIC03Nyw4ICs3OSw4IEBAIHZvaWQgU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFs
dGltZU1lZGlhU291cmNlOjpzZXRTdG9yYWdlKGNvbnN0IFNoYXJlZE1lbW9yeTo6CiB7CiAgICAg
bV9kZXNjcmlwdGlvbiA9IGRlc2NyaXB0aW9uOwogCi0gICAgbV9yaW5nQnVmZmVyID0gbWFrZVVu
aXF1ZTxDQVJpbmdCdWZmZXI+KG1ha2VVbmlxdWVSZWY8UmVhZE9ubHlTaGFyZWRSaW5nQnVmZmVy
U3RvcmFnZT4oaGFuZGxlKSwgZGVzY3JpcHRpb24sIG51bWJlck9mRnJhbWVzKTsKLSAgICBtX2J1
ZmZlciA9IG1ha2VVbmlxdWU8V2ViQXVkaW9CdWZmZXJMaXN0PihkZXNjcmlwdGlvbiwgbnVtYmVy
T2ZGcmFtZXMpOworICAgIG1fcmluZ0J1ZmZlciA9IG1ha2VVbmlxdWU8V2ViQ29yZTo6Q0FSaW5n
QnVmZmVyPihtYWtlVW5pcXVlUmVmPFJlYWRPbmx5U2hhcmVkUmluZ0J1ZmZlclN0b3JhZ2U+KGhh
bmRsZSksIGRlc2NyaXB0aW9uLCBudW1iZXJPZkZyYW1lcyk7CisgICAgbV9idWZmZXIgPSBtYWtl
VW5pcXVlPFdlYkNvcmU6OldlYkF1ZGlvQnVmZmVyTGlzdD4oZGVzY3JpcHRpb24sIG51bWJlck9m
RnJhbWVzKTsKIH0KIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9TcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UuaCBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJj
ZS5oCmluZGV4IDhiNTEyNTBmNWNhZDdmM2Y1Y2U3OGY1OGQ2NzYzNzE5MGNmOGJmOTEuLmExZTI3
YWQ1ZmQ3MDM4ZWQyZWRlZWIzMmMxNWI1MDkxMGRhZDUxZTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJj
ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uUmVtb3Rl
UmVhbHRpbWVNZWRpYVNvdXJjZS5oCkBAIC0yNyw2ICsyNyw3IEBACiAKICNpZiBFTkFCTEUoTUVE
SUFfU1RSRUFNKQogCisjaW5jbHVkZSAiU2hhcmVkTWVtb3J5LmgiCiAjaW5jbHVkZSA8V2ViQ29y
ZS9SZWFsdGltZU1lZGlhU291cmNlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9SZWFsdGltZU1lZGlh
U291cmNlSWRlbnRpZmllci5oPgogCkBAIC00Myw3ICs0NCw4IEBAIGNsYXNzIFdlYkF1ZGlvQnVm
ZmVyTGlzdDsKIH0KIAogbmFtZXNwYWNlIFdlYktpdCB7Ci0KK2NsYXNzIFNwZWVjaFJlY29nbml0
aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXI7CisgICAgCiBjbGFzcyBTcGVlY2hS
ZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UgOiBwdWJsaWMgV2ViQ29yZTo6UmVh
bHRpbWVNZWRpYVNvdXJjZSB7CiBwdWJsaWM6CiAgICAgc3RhdGljIFJlZjxXZWJDb3JlOjpSZWFs
dGltZU1lZGlhU291cmNlPiBjcmVhdGUoU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1l
ZGlhU291cmNlTWFuYWdlciYsIGNvbnN0IFdlYkNvcmU6OkNhcHR1cmVEZXZpY2UmKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCmluZGV4IDdkMzFjYWE4OTYwMTFiZTc3
YjJjMTRjZGMxMTdmNjQ2Y2QzYTc0ZjQuLmU4YjdhMDZjMjQyMjE4ZjBmMGFlZGM3Y2UxYTc3M2Rl
Y2M3OTdkZTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94
eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcApAQCAt
ODI5MSw2ICs4MjkxLDI3IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpjbGVhclVzZXJNZWRpYVN0YXRl
KCkKICNlbmRpZgogfQogCit2b2lkIFdlYlBhZ2VQcm94eTo6cmVxdWVzdE1lZGlhS2V5U3lzdGVt
UGVybWlzc2lvbkZvckZyYW1lKHVpbnQ2NF90IG1lZGlhS2V5U3lzdGVtSUQsIEZyYW1lSWRlbnRp
ZmllciBmcmFtZUlELCBjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmIHRvcExldmVs
RG9jdW1lbnRPcmlnaW5EYXRhLCBjb25zdCBTdHJpbmcmIGtleVN5c3RlbSkKK3sKKyNpZiBFTkFC
TEUoTUVESUFfU1RSRUFNKQorICAgIE1FU1NBR0VfQ0hFQ0sobV9wcm9jZXNzLCBtX3Byb2Nlc3Mt
PndlYkZyYW1lKGZyYW1lSUQpKTsKKworICAgIGF1dG8gb3JpZ2luID0gQVBJOjpTZWN1cml0eU9y
aWdpbjo6Y3JlYXRlKHRvcExldmVsRG9jdW1lbnRPcmlnaW5EYXRhLnNlY3VyaXR5T3JpZ2luKCkp
OworICAgIGF1dG8gcmVxdWVzdCA9IG1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RNYW5h
Z2VyKCkuY3JlYXRlUmVxdWVzdEZvckZyYW1lKG1lZGlhS2V5U3lzdGVtSUQsIGZyYW1lSUQsIHRv
cExldmVsRG9jdW1lbnRPcmlnaW5EYXRhLnNlY3VyaXR5T3JpZ2luKCksIGtleVN5c3RlbSk7Cisg
ICAgbV91aUNsaWVudC0+ZGVjaWRlUG9saWN5Rm9yTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVx
dWVzdCgqdGhpcywgb3JpZ2luLCBrZXlTeXN0ZW0sIFtyZXF1ZXN0ID0gV1RGTW92ZShyZXF1ZXN0
KV0oYm9vbCBhbGxvd2VkKSB7CisgICAgICAgIGlmIChhbGxvd2VkKQorICAgICAgICAgICAgcmVx
dWVzdC0+YWxsb3coKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgcmVxdWVzdC0+ZGVueSgp
OworICAgIH0pOworI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0obWVkaWFLZXlTeXN0ZW1JRCk7Cisg
ICAgVU5VU0VEX1BBUkFNKGZyYW1lSUQpOworICAgIFVOVVNFRF9QQVJBTSh0b3BMZXZlbERvY3Vt
ZW50T3JpZ2luRGF0YSk7CisgICAgVU5VU0VEX1BBUkFNKGtleVN5c3RlbSk7CisjZW5kaWYKK30K
KwogI2lmIEVOQUJMRShERVZJQ0VfT1JJRU5UQVRJT04pCiB2b2lkIFdlYlBhZ2VQcm94eTo6c2hv
dWxkQWxsb3dEZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvbkFjY2VzcyhGcmFtZUlkZW50aWZpZXIg
ZnJhbWVJRCwgRnJhbWVJbmZvRGF0YSYmIGZyYW1lSW5mbywgYm9vbCBtYXlQcm9tcHQsIENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoRGV2aWNlT3JpZW50YXRpb25Pck1vdGlvblBlcm1pc3Npb25TdGF0
ZSk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CkBAIC04MzAxLDYgKzgzMjIsMTcgQEAgdm9pZCBX
ZWJQYWdlUHJveHk6OnNob3VsZEFsbG93RGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25BY2Nlc3Mo
RnJhbWVJZGVudGlmaWVyIGYKIH0KICNlbmRpZgogCisjaWYgRU5BQkxFKEVOQ1JZUFRFRF9NRURJ
QSkKK01lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkmIFdlYlBhZ2VQ
cm94eTo6bWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIoKQoreworICAgIGlm
IChtX21lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyKQorICAgICAgICByZXR1
cm4gKm1fbWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXI7CisKKyAgICBtX21l
ZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyID0gbWFrZVVuaXF1ZTxNZWRpYUtl
eVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5PigqdGhpcyk7CisgICAgcmV0dXJu
ICptX21lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyOworfQorI2VuZGlmCisK
IHZvaWQgV2ViUGFnZVByb3h5OjpyZXF1ZXN0Tm90aWZpY2F0aW9uUGVybWlzc2lvbih1aW50NjRf
dCByZXF1ZXN0SUQsIGNvbnN0IFN0cmluZyYgb3JpZ2luU3RyaW5nKQogewogICAgIGlmICghaXNS
ZXF1ZXN0SURWYWxpZChyZXF1ZXN0SUQpKQpAQCAtMTA0MjgsNiArMTA0NjAsMTEgQEAgdm9pZCBX
ZWJQYWdlUHJveHk6OnJlcXVlc3RVc2VyTWVkaWFQZXJtaXNzaW9uRm9yU3BlZWNoUmVjb2duaXRp
b24oRnJhbWVJZGVudGlmaWUKICNlbmRpZgogfQogCit2b2lkIFdlYlBhZ2VQcm94eTo6cmVxdWVz
dE1lZGlhS2V5U3lzdGVtUGVybWlzc2lvbkJ5RGVmYXVsdEFjdGlvbihjb25zdCBXZWJDb3JlOjpT
ZWN1cml0eU9yaWdpbiYgb3JpZ2luLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmIGNv
bXBsZXRpb25IYW5kbGVyKQoreworICAgIGNvbXBsZXRpb25IYW5kbGVyKGZhbHNlKTsKK30KKwog
I2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCiAKIFdlYkNvcmU6OkNhcHR1cmVTb3VyY2VPckVycm9y
IFdlYlBhZ2VQcm94eTo6Y3JlYXRlUmVhbHRpbWVNZWRpYVNvdXJjZUZvclNwZWVjaFJlY29nbml0
aW9uKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5o
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKaW5kZXggZDBlZTY3ODJj
ZGQ4YzcwOTI3NDEyYzQ5MjIyNzBmYmIzZmVmNTYxMS4uMWExNzQ1YmM1NGFlYTBlYTI2ZjcwZTIw
YjY2MGFmYzQyNWRkNjFlNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
UGFnZVByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgK
QEAgLTQwLDYgKzQwLDcgQEAKICNpbmNsdWRlICJHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0
TWFuYWdlclByb3h5LmgiCiAjaW5jbHVkZSAiSGlkZGVuUGFnZVRocm90dGxpbmdBdXRvSW5jcmVh
c2VzQ291bnRlci5oIgogI2luY2x1ZGUgIkxheWVyVHJlZUNvbnRleHQuaCIKKyNpbmNsdWRlICJN
ZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmgiCiAjaW5jbHVkZSAi
TWVkaWFQbGF5YmFja1N0YXRlLmgiCiAjaW5jbHVkZSAiTWVzc2FnZVNlbmRlci5oIgogI2luY2x1
ZGUgIk5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmgiCkBAIC03Myw4
ICs3NCw4IEBACiAjaW5jbHVkZSAiV2ViUGFnZVByb3h5SWRlbnRpZmllci5oIgogI2luY2x1ZGUg
IldlYlBhZ2VQcm94eU1lc3NhZ2VzUmVwbGllcy5oIgogI2luY2x1ZGUgIldlYlBheW1lbnRDb29y
ZGluYXRvclByb3h5LmgiCi0jaW5jbHVkZSAiV2ViUHJlZmVyZW5jZXMuaCIKICNpbmNsdWRlICJX
ZWJQb3B1cE1lbnVQcm94eS5oIgorI2luY2x1ZGUgIldlYlByZWZlcmVuY2VzLmgiCiAjaW5jbHVk
ZSAiV2ViVW5kb1N0ZXBJRC5oIgogI2luY2x1ZGUgIldlYnNpdGVQb2xpY2llc0RhdGEuaCIKICNp
bmNsdWRlIDxXZWJDb3JlL0FjdGl2aXR5U3RhdGUuaD4KQEAgLTE4MjEsNiArMTgyMiw4IEBAIHB1
YmxpYzoKICAgICB2b2lkIHJlcXVlc3RTcGVlY2hSZWNvZ25pdGlvblBlcm1pc3Npb25CeURlZmF1
bHRBY3Rpb24oY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4mLCBDb21wbGV0aW9uSGFuZGxl
cjx2b2lkKGJvb2wpPiYmKTsKICAgICB2b2lkIHJlcXVlc3RVc2VyTWVkaWFQZXJtaXNzaW9uRm9y
U3BlZWNoUmVjb2duaXRpb24oV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBjb25zdCBXZWJDb3Jl
OjpTZWN1cml0eU9yaWdpbiYsIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luJiwgQ29tcGxl
dGlvbkhhbmRsZXI8dm9pZChib29sKT4mJik7CiAKKyAgICB2b2lkIHJlcXVlc3RNZWRpYUtleVN5
c3RlbVBlcm1pc3Npb25CeURlZmF1bHRBY3Rpb24oY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmln
aW4mLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmKTsKKwogICAgIHZvaWQgc3luY0lm
TW9ja0RldmljZXNFbmFibGVkQ2hhbmdlZCgpOwogCiAjaWYgRU5BQkxFKEFQUF9ISUdITElHSFRT
KQpAQCAtMTk5Nyw2ICsyMDAwLDExIEBAIHByaXZhdGU6CiAgICAgdm9pZCBlbnVtZXJhdGVNZWRp
YURldmljZXNGb3JGcmFtZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6
OlNlY3VyaXR5T3JpZ2luRGF0YSYgdXNlck1lZGlhRG9jdW1lbnRPcmlnaW5EYXRhLCBjb25zdCBX
ZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmIHRvcExldmVsRG9jdW1lbnRPcmlnaW5EYXRhLCBD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKGNvbnN0IFZlY3RvcjxXZWJDb3JlOjpDYXB0dXJlRGV2aWNl
PiYsIGNvbnN0IFN0cmluZyYpPiYmKTsKICAgICB2b2lkIGJlZ2luTW9uaXRvcmluZ0NhcHR1cmVE
ZXZpY2VzKCk7CiAKKyNpZiBFTkFCTEUoRU5DUllQVEVEX01FRElBKQorICAgIE1lZGlhS2V5U3lz
dGVtUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkmIG1lZGlhS2V5U3lzdGVtUGVybWlzc2lv
blJlcXVlc3RNYW5hZ2VyKCk7CisjZW5kaWYKKyAgICB2b2lkIHJlcXVlc3RNZWRpYUtleVN5c3Rl
bVBlcm1pc3Npb25Gb3JGcmFtZSh1aW50NjRfdCBtZWRpYUtleVN5c3RlbUlELCBXZWJDb3JlOjpG
cmFtZUlkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYgdG9wTGV2
ZWxEb2N1bWVudE9yaWdpbklkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYpOworCiAgICAgdm9pZCBy
dW5Nb2RhbCgpOwogICAgIHZvaWQgbm90aWZ5U2Nyb2xsZXJUaHVtYklzVmlzaWJsZUluUmVjdChj
b25zdCBXZWJDb3JlOjpJbnRSZWN0Jik7CiAgICAgdm9pZCByZWNvbW1lbmRlZFNjcm9sbGJhclN0
eWxlRGlkQ2hhbmdlKGludDMyX3QgbmV3U3R5bGUpOwpAQCAtMjUwNiw2ICsyNTE0LDEwIEBAIHBy
aXZhdGU6CiAgICAgc3RkOjp1bmlxdWVfcHRyPFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFu
YWdlclByb3h5PiBtX3VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcjsKICNlbmRpZgog
CisjaWYgRU5BQkxFKEVOQ1JZUFRFRF9NRURJQSkKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8TWVkaWFL
ZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eT4gbV9tZWRpYUtleVN5c3RlbVBl
cm1pc3Npb25SZXF1ZXN0TWFuYWdlcjsKKyNlbmRpZgorCiAgICAgT3B0aW9uU2V0PFdlYkNvcmU6
OkFjdGl2aXR5U3RhdGU6OkZsYWc+IG1fYWN0aXZpdHlTdGF0ZTsKICAgICBib29sIG1fdmlld1dh
c0V2ZXJJbldpbmRvdyB7IGZhbHNlIH07CiAjaWYgUExBVEZPUk0oTUFDQ0FUQUxZU1QpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4g
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4KaW5kZXgg
ZjQwMzQ2OThhM2VjZWI1NmQ5NzM1ZWJkZGQ3Y2QzYzQ0YmU5MjYxMS4uODEwYTZlNDNhMDA5MTgw
NzE0MTAzMWY2MjUxMGYwZDgxN2YwYmI5YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbgpAQCAtMjgwLDYgKzI4MCwxMCBAQCBtZXNzYWdl
cyAtPiBXZWJQYWdlUHJveHkgewogICAgIEJlZ2luTW9uaXRvcmluZ0NhcHR1cmVEZXZpY2VzKCkK
ICNlbmRpZgogCisjaWYgRU5BQkxFKEVOQ1JZUFRFRF9NRURJQSkKKyAgICBSZXF1ZXN0TWVkaWFL
ZXlTeXN0ZW1QZXJtaXNzaW9uRm9yRnJhbWUodWludDY0X3QgdXNlck1lZGlhSUQsIFdlYkNvcmU6
OkZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBzdHJ1Y3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5E
YXRhIHRvcExldmVsRG9jdW1lbnRPcmlnaW5JZGVudGlmaWVyLCBTdHJpbmcga2V5U3lzdGVtKQor
I2VuZGlmCisKICAgICAjIE5vdGlmaWNhdGlvbiBtZXNzYWdlcwogICAgIFJlcXVlc3ROb3RpZmlj
YXRpb25QZXJtaXNzaW9uKHVpbnQ2NF90IHJlcXVlc3RJRCwgU3RyaW5nIG9yaWdpbklkZW50aWZp
ZXIpCiAgICAgU2hvd05vdGlmaWNhdGlvbihTdHJpbmcgdGl0bGUsIFN0cmluZyBib2R5LCBTdHJp
bmcgaWNvblVSTCwgU3RyaW5nIHRhZywgU3RyaW5nIGxhbmcsIGVudW06dWludDhfdCBXZWJDb3Jl
OjpOb3RpZmljYXRpb25EaXJlY3Rpb24gZGlyLCBTdHJpbmcgb3JpZ2luSWRlbnRpZmllciwgdWlu
dDY0X3Qgbm90aWZpY2F0aW9uSUQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagppbmRleCA1YWJhOTZmMzY1NzZkMjhhOTIzMzEyMjJkY2E2NzUyY2Vk
YzkyNDM2Li43MDg1MDQxN2QxNWVjMmM3OWM4MDQ0MzY0ZTM5OTQyZjFhYWU4OWFhIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBi
L1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTE1MjAs
NiArMTUyMCwxMiBAQAogCQk5OUU3MTRDNTFDMTI0QTA0MDA2NjVCM0EgLyogX1dLQXV0b21hdGlv
bkRlbGVnYXRlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA5OUU3MTRDMTFDMTI0OUU2MDA2NjVCM0EgLyogX1dLQXV0b21hdGlvbkRlbGVnYXRlLmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJOTlFNzE4OUEy
MUY3OUQ5RTAwNTVFOTc1IC8qIF9XS1RvdWNoRXZlbnRHZW5lcmF0b3IubW0gaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5OUU3MTg5NjIxRjc5RDlEMDA1NUU5
NzUgLyogX1dLVG91Y2hFdmVudEdlbmVyYXRvci5tbSAqLzsgfTsKIAkJOTlFNzE4OUMyMUY3OUQ5
RTAwNTVFOTc1IC8qIF9XS1RvdWNoRXZlbnRHZW5lcmF0b3IuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk5RTcxODk4MjFGNzlEOUUwMDU1RTk3NSAvKiBf
V0tUb3VjaEV2ZW50R2VuZXJhdG9yLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKKwkJOUFDQzA3QUQyNUM4MTMyRDAwREM2Mzg2IC8qIE1lZGlhS2V5U3lz
dGVtUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA5QUNDMDdBQzI1QzgxMzJEMDBEQzYzODYgLyogTWVkaWFLZXlT
eXN0ZW1QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIuaCAqLzsgfTsKKwkJOUFDQzA3QjEyNUM4MTVE
ODAwREM2Mzg2IC8qIE1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3QuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDlBQ0MwN0IwMjVDODE1RDgwMERD
NjM4NiAvKiBNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0LmggKi87IH07CisJCTlBQ0Mw
N0IzMjVDODE1RjMwMERDNjM4NiAvKiBNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0TWFu
YWdlclByb3h5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA5QUNDMDdCMjI1QzgxNUYzMDBEQzYzODYgLyogTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVx
dWVzdE1hbmFnZXJQcm94eS5oICovOyB9OworCQk5QUNDMDdCNTI1QzgxNjBDMDBEQzYzODYgLyog
TWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdFByb3h5LmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5QUNDMDdCNDI1QzgxNjBCMDBEQzYzODYgLyog
TWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdFByb3h5LmggKi87IH07CisJCTlBQ0MwN0I3
MjVDODFEMzQwMERDNjM4NiAvKiBXZWJNZWRpYUtleVN5c3RlbUNsaWVudC5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOUFDQzA3QjYyNUM4MUQzMzAwREM2
Mzg2IC8qIFdlYk1lZGlhS2V5U3lzdGVtQ2xpZW50LmggKi87IH07CisJCTlBQ0MwN0I5MjVDODIx
ODQwMERDNjM4NiAvKiBXS01lZGlhS2V5U3lzdGVtUGVybWlzc2lvbkNhbGxiYWNrLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5QUNDMDdCODI1QzgyMTgz
MDBEQzYzODYgLyogV0tNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25DYWxsYmFjay5oICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTlCMDJFMENCMjM1RUI5
NTMwMDQwNDRCMiAvKiBfV0tUZXh0TWFuaXB1bGF0aW9uRGVsZWdhdGUuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDlCMDJFMEM5MjM1RUI2MkQwMDQwNDRC
MiAvKiBfV0tUZXh0TWFuaXB1bGF0aW9uRGVsZWdhdGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk5QjAyRTBDQzIzNUVCOTU3MDA0MDQ0QjIgLyog
X1dLVGV4dE1hbmlwdWxhdGlvbkl0ZW0uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDlCMDJFMENBMjM1RUI4ODQwMDQwNDRCMiAvKiBfV0tUZXh0TWFuaXB1
bGF0aW9uSXRlbS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CiAJCTlCMDJFMEQ3MjM1RkM5NEYwMDQwNDRCMiAvKiBfV0tUZXh0TWFuaXB1bGF0aW9uVG9r
ZW4uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDlCMDJF
MENEMjM1RUI5NjcwMDQwNDRCMiAvKiBfV0tUZXh0TWFuaXB1bGF0aW9uVG9rZW4uaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtNDg2Nyw2ICs0ODcz
LDEyIEBACiAJCTk5RTcxODk2MjFGNzlEOUQwMDU1RTk3NSAvKiBfV0tUb3VjaEV2ZW50R2VuZXJh
dG9yLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gX1dLVG91Y2hF
dmVudEdlbmVyYXRvci5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTlFNzE4OTgy
MUY3OUQ5RTAwNTVFOTc1IC8qIF9XS1RvdWNoRXZlbnRHZW5lcmF0b3IuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gX1dLVG91Y2hFdmVudEdlbmVyYXRvci5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk5OUY2NDJEMjFGQUJFMzc4MDA5NjIxRTkgLyogQ29vcmRpbmF0
ZVN5c3RlbS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDb29yZGluYXRlU3lz
dGVtLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTlBQ0MwN0FDMjVDODEzMkQwMERD
NjM4NiAvKiBNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlci5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0
TWFuYWdlci5oOyBwYXRoID0gRW5jcnlwdGVkTWVkaWEvTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9u
UmVxdWVzdE1hbmFnZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOUFDQzA3QjAy
NUM4MTVEODAwREM2Mzg2IC8qIE1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3QuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVx
dWVzdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5QUNDMDdCMjI1QzgxNUYzMDBE
QzYzODYgLyogTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25S
ZXF1ZXN0TWFuYWdlclByb3h5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTlBQ0Mw
N0I0MjVDODE2MEIwMERDNjM4NiAvKiBNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0UHJv
eHkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTWVkaWFLZXlTeXN0ZW1QZXJt
aXNzaW9uUmVxdWVzdFByb3h5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTlBQ0Mw
N0I2MjVDODFEMzMwMERDNjM4NiAvKiBXZWJNZWRpYUtleVN5c3RlbUNsaWVudC5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJNZWRpYUtleVN5c3RlbUNsaWVudC5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5QUNDMDdCODI1QzgyMTgzMDBEQzYzODYgLyogV0tN
ZWRpYUtleVN5c3RlbVBlcm1pc3Npb25DYWxsYmFjay5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBXS01lZGlhS2V5U3lzdGVtUGVybWlzc2lvbkNhbGxiYWNrLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTlCMDJFMEM5MjM1RUI2MkQwMDQwNDRCMiAvKiBfV0tUZXh0
TWFuaXB1bGF0aW9uRGVsZWdhdGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gX1dLVGV4dE1hbmlwdWxhdGlv
bkRlbGVnYXRlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTlCMDJFMENBMjM1RUI4
ODQwMDQwNDRCMiAvKiBfV0tUZXh0TWFuaXB1bGF0aW9uSXRlbS5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBf
V0tUZXh0TWFuaXB1bGF0aW9uSXRlbS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5
QjAyRTBDRDIzNUVCOTY3MDA0MDQ0QjIgLyogX1dLVGV4dE1hbmlwdWxhdGlvblRva2VuLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IF9XS1RleHRNYW5pcHVsYXRpb25Ub2tlbi5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwpAQCAtOTMyOSw2ICs5MzQxLDE0IEBACiAJCQlwYXRoID0gY29jb2E7CiAJCQlz
b3VyY2VUcmVlID0gIjxncm91cD4iOwogCQl9OworCQk5QUNDMDdBOTI1QzgxMkU3MDBEQzYzODYg
LyogRW5jcnlwdGVkTWVkaWEgKi8gPSB7CisJCQlpc2EgPSBQQlhHcm91cDsKKwkJCWNoaWxkcmVu
ID0gKAorCQkJCTlBQ0MwN0FDMjVDODEzMkQwMERDNjM4NiAvKiBNZWRpYUtleVN5c3RlbVBlcm1p
c3Npb25SZXF1ZXN0TWFuYWdlci5oICovLAorCQkJKTsKKwkJCW5hbWUgPSBFbmNyeXB0ZWRNZWRp
YTsKKwkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CisJCX07CiAJCUExNTc5OUFDMjU4NDQzMzEw
MDUyODIzNiAvKiBNZWRpYUZvcm1hdFJlYWRlciAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwog
CQkJY2hpbGRyZW4gPSAoCkBAIC05NDQ3LDYgKzk0NjcsNyBAQAogCQkJCTQxRDEyOUQ4MUYzRDEw
MTQwMEQxNUU0NyAvKiBDYWNoZSAqLywKIAkJCQk3QzZFNzBGODE4QjJENDdFMDBGMjRFMkUgLyog
Y29jb2EgKi8sCiAJCQkJNTEyQTk3NTQxODBERjkyNzAwMzlBMTQ5IC8qIERhdGFiYXNlcyAqLywK
KwkJCQk5QUNDMDdBOTI1QzgxMkU3MDBEQzYzODYgLyogRW5jcnlwdGVkTWVkaWEgKi8sCiAJCQkJ
QkNBQ0M0M0IxNkIyNEM1RDAwQjZFMDkyIC8qIEVudHJ5UG9pbnQgKi8sCiAJCQkJRTE3MDg3NkQx
NkQ2Q0E3MjAwRjk5MjI2IC8qIEZpbGVBUEkgKi8sCiAJCQkJQ0Q3M0JBM0QxMzFBMkEyMTAwRUVE
RUQyIC8qIEZ1bGxTY3JlZW4gKi8sCkBAIC05NTEyLDYgKzk1MzMsNyBAQAogCQkJCUJDMDMyRDZB
MTBGNDM3OEQwMDU4QzE1QSAvKiBXZWJGcmFtZUxvYWRlckNsaWVudC5oICovLAogCQkJCUJDMUJF
MURGMTJENTRBNDEwMDA0QTIyOCAvKiBXZWJHZW9sb2NhdGlvbkNsaWVudC5jcHAgKi8sCiAJCQkJ
QkMxQkUxREUxMkQ1NEE0MTAwMDRBMjI4IC8qIFdlYkdlb2xvY2F0aW9uQ2xpZW50LmggKi8sCisJ
CQkJOUFDQzA3QjYyNUM4MUQzMzAwREM2Mzg2IC8qIFdlYk1lZGlhS2V5U3lzdGVtQ2xpZW50Lmgg
Ki8sCiAJCQkJNTEzRkZCOEUyMDE0NTlDMjAwMjU5NkVBIC8qIFdlYk1lc3NhZ2VQb3J0Q2hhbm5l
bFByb3ZpZGVyLmNwcCAqLywKIAkJCQk1MTNGRkI4RjIwMTQ1OUMyMDAyNTk2RUEgLyogV2ViTWVz
c2FnZVBvcnRDaGFubmVsUHJvdmlkZXIuaCAqLywKIAkJCQkzMTA5OTk3MTE0NkM3NTlCMDAyOURF
QjkgLyogV2ViTm90aWZpY2F0aW9uQ2xpZW50LmNwcCAqLywKQEAgLTk2NTEsNiArOTY3Myw5IEBA
CiAJCQkJNUNFQUJBMkIyMzMzMjUxNDAwNzk3Nzk3IC8qIExlZ2FjeUdsb2JhbFNldHRpbmdzLmNw
cCAqLywKIAkJCQk1Q0VBQkEyQTIzMzMyNDc3MDA3OTc3OTcgLyogTGVnYWN5R2xvYmFsU2V0dGlu
Z3MuaCAqLywKIAkJCQkzMTYwN0YzODE5NjI3MDAyMDA5Qjg3REEgLyogTGVnYWN5U2Vzc2lvblN0
YXRlQ29kaW5nLmggKi8sCisJCQkJOUFDQzA3QjAyNUM4MTVEODAwREM2Mzg2IC8qIE1lZGlhS2V5
U3lzdGVtUGVybWlzc2lvblJlcXVlc3QuaCAqLywKKwkJCQk5QUNDMDdCMjI1QzgxNUYzMDBEQzYz
ODYgLyogTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5oICovLAor
CQkJCTlBQ0MwN0I0MjVDODE2MEIwMERDNjM4NiAvKiBNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25S
ZXF1ZXN0UHJveHkuaCAqLywKIAkJCQk5MzQyNTg5ODI1NUI1MzRCMDA1OUVFREQgLyogTWVkaWFQ
ZXJtaXNzaW9uVXRpbGl0aWVzLmggKi8sCiAJCQkJQkM2RURBQTUxMTEyNzFDNjAwRTc2NzhCIC8q
IFBhZ2VDbGllbnQuaCAqLywKIAkJCQkxQUM3NTM3OTE4M0E5RkRBMDA3MkNCMTUgLyogUGFnZUxv
YWRTdGF0ZS5jcHAgKi8sCkBAIC05OTYzLDYgKzk5ODgsNyBAQAogCQkJCTUxQTlFMTA4MTMxNUNE
MTgwMDlFNzAzMSAvKiBXS0tleVZhbHVlU3RvcmFnZU1hbmFnZXIuY3BwICovLAogCQkJCTUxQTlF
MTA5MTMxNUNEMTgwMDlFNzAzMSAvKiBXS0tleVZhbHVlU3RvcmFnZU1hbmFnZXIuaCAqLywKIAkJ
CQkyRDc5MEE5RTFBRDcxNjQ5MDBBQjkwQjMgLyogV0tMYXlvdXRNb2RlLmggKi8sCisJCQkJOUFD
QzA3QjgyNUM4MjE4MzAwREM2Mzg2IC8qIFdLTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uQ2FsbGJh
Y2suaCAqLywKIAkJCQk1Q0FCREM4NDIyQzQwRkNDMDAxRURFOEUgLyogV0tNZXNzYWdlTGlzdGVu
ZXIuY3BwICovLAogCQkJCTVDQUJEQzg1MjJDNDBGQ0MwMDFFREU4RSAvKiBXS01lc3NhZ2VMaXN0
ZW5lci5oICovLAogCQkJCUMxMUUxNjkzMjEyQjg3QzUwMDk4NUZGNiAvKiBXS01vY2tEaXNwbGF5
LmNwcCAqLywKQEAgLTExNjg0LDYgKzExNzEwLDEwIEBACiAJCQkJQkNDNTZGNzkxMTU5OTU3RDAw
MUNDQUY5IC8qIE1hY2hQb3J0LmggaW4gSGVhZGVycyAqLywKIAkJCQkxQTI0QjVGMzExRjUzMUU4
MDBDMzgyNjkgLyogTWFjaFV0aWxpdGllcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTE1Nzk5QkUy
NTg0NDMzMjAwNTI4MjM2IC8qIE1lZGlhRm9ybWF0UmVhZGVyLmggaW4gSGVhZGVycyAqLywKKwkJ
CQk5QUNDMDdCMTI1QzgxNUQ4MDBEQzYzODYgLyogTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVx
dWVzdC5oIGluIEhlYWRlcnMgKi8sCisJCQkJOUFDQzA3QUQyNUM4MTMyRDAwREM2Mzg2IC8qIE1l
ZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyLmggaW4gSGVhZGVycyAqLywKKwkJ
CQk5QUNDMDdCMzI1QzgxNUYzMDBEQzYzODYgLyogTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVx
dWVzdE1hbmFnZXJQcm94eS5oIGluIEhlYWRlcnMgKi8sCisJCQkJOUFDQzA3QjUyNUM4MTYwQzAw
REM2Mzg2IC8qIE1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RQcm94eS5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJOTM0MjU4OUEyNTVCNTM1QTAwNTlFRUREIC8qIE1lZGlhUGVybWlzc2lvblV0
aWxpdGllcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMDdFMTlFRkMyM0Q0MDFGMTAwOTRGRkI0IC8q
IE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZU1lc3NhZ2VzLmggaW4gSGVhZGVycyAqLywKIAkJCQkw
N0UxOUVGRDIzRDQwMUYxMDA5NEZGQjQgLyogTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlTWVzc2Fn
ZXNSZXBsaWVzLmggaW4gSGVhZGVycyAqLywKQEAgLTExNzM3LDYgKzExNzY3LDcgQEAKIAkJCQk4
Mzk5MDIwMzFCRTlBMDJCMDAwRjM2NTMgLyogTmV0d29ya0xvYWQuaCBpbiBIZWFkZXJzICovLAog
CQkJCTgzRDQ1NEQ3MUJFOUQzQzQwMDZDOTNCRCAvKiBOZXR3b3JrTG9hZENsaWVudC5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJODM5MTQ5NjUxQkVBODM4NTAwRDJEOTUzIC8qIE5ldHdvcmtMb2FkUGFy
YW1ldGVycy5oIGluIEhlYWRlcnMgKi8sCisJCQkJRTQ3RkM4QTAyNUI4MzMxQzAwNTQ5NUZDIC8q
IE5ldHdvcmtMb2FkU2NoZWR1bGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk1MTc5NTU2QTE2Mjg3
NkYzMDBGQTQzQjYgLyogTmV0d29ya1Byb2Nlc3MuaCBpbiBIZWFkZXJzICovLAogCQkJCTUxN0NG
MEU0MTYzQTQ4NkMwMEMyOTUwRSAvKiBOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb25NZXNzYWdlcy5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJNUMxNDI2RUQxQzIzRjgwOTAwRDQxMTgzIC8qIE5ldHdvcmtQ
cm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmggaW4gSGVhZGVycyAqLywKQEAgLTEyMTAwLDcgKzEy
MTMxLDYgQEAKIAkJCQk5M0E4OEIzMzFCQzZFOUNEMDBBQkE1QzIgLyogV2ViSGl0VGVzdFJlc3Vs
dERhdGEuaCBpbiBIZWFkZXJzICovLAogCQkJCUY0NERGRUIyMUU5RTc1MkYwMDM4RDE5NiAvKiBX
ZWJJY29uVXRpbGl0aWVzLmggaW4gSGVhZGVycyAqLywKIAkJCQk5MzI2MTE2MTIxNDA1NEY0MDAw
ODA2RTcgLyogV2ViSURCQ29ubmVjdGlvblRvQ2xpZW50LmggaW4gSGVhZGVycyAqLywKLQkJCQlF
NDdGQzhBMDI1QjgzMzFDMDA1NDk1RkMgLyogTmV0d29ya0xvYWRTY2hlZHVsZXIuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTUxNDEyOTk0MUM2NDI4QkIwMDU5RTcxNCAvKiBXZWJJREJDb25uZWN0aW9u
VG9TZXJ2ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTUxMDUyMzc0MUM3M0QzOEIwMDc5OTNDQiAv
KiBXZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXJNZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
OTMzRTgzNTUyM0EwN0MwNjAwREVGMjg5IC8qIFdlYklEQlNlcnZlci5oIGluIEhlYWRlcnMgKi8s
CkBAIC0xMjEyNiw2ICsxMjE1Niw3IEBACiAJCQkJQkM5QkE1MDUxNjk3QzQ1MzAwRTQ0NjE2IC8q
IFdlYktpdDJJbml0aWFsaXplLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQTYyODBDNzE5MTk5NTBD
MDA2QUQ5RjkgLyogV2ViS2l0UHJpdmF0ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQ0QwMDNBNTMx
OUQ0OUI1RDAwNUFCQ0UwIC8qIFdlYk1lZGlhS2V5U3RvcmFnZU1hbmFnZXIuaCBpbiBIZWFkZXJz
ICovLAorCQkJCTlBQ0MwN0I3MjVDODFEMzQwMERDNjM4NiAvKiBXZWJNZWRpYUtleVN5c3RlbUNs
aWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOUI1QkVDMjYyNDAwRjRBOTAwNzBDNkVGIC8qIFdl
Yk1lZGlhU3RyYXRlZ3kuaCBpbiBIZWFkZXJzICovLAogCQkJCTJEM0VGNDQzMTkxNzY0NjMwMDAz
NDE4NCAvKiBXZWJNZW1vcnlQcmVzc3VyZUhhbmRsZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTkw
OTg1NEVEMTJCQzRFMTgwMDBBRDA4MCAvKiBXZWJNZW1vcnlTYW1wbGVyLmggaW4gSGVhZGVycyAq
LywKQEAgLTEyNDM0LDYgKzEyNDY1LDcgQEAKIAkJCQkyRDc5MEE5RjFBRDcxNjQ5MDBBQjkwQjMg
LyogV0tMYXlvdXRNb2RlLmggaW4gSGVhZGVycyAqLywKIAkJCQk1Q0U5MTIxNDIyOTNDMjgwMDA1
QkVDNzggLyogV0tNYWluLmggaW4gSGVhZGVycyAqLywKIAkJCQlBMTU3OUIyODI1ODQ5MEU1MDA1
MjgyMzYgLyogV0tNZWRpYUZvcm1hdFJlYWRlci5oIGluIEhlYWRlcnMgKi8sCisJCQkJOUFDQzA3
QjkyNUM4MjE4NDAwREM2Mzg2IC8qIFdLTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uQ2FsbGJhY2su
aCBpbiBIZWFkZXJzICovLAogCQkJCTQ5OTE3REE3MjUyRDY0OUUwMDUwMzEzRiAvKiBXS01lZGlh
UGxheWJhY2tTdGF0ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUFCNDBFRTYxQkY2NzdFMzAwQkE4
MUJFIC8qIFdLTWVudUl0ZW1JZGVudGlmaWVyc1ByaXZhdGUuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTVDQUJEQzg2MjJDNDBGREUwMDFFREU4RSAvKiBXS01lc3NhZ2VMaXN0ZW5lci5oIGluIEhlYWRl
cnMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvRW5jcnlwdGVkTWVk
aWEvTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIuY3BwIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL0VuY3J5cHRlZE1lZGlhL01lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJl
cXVlc3RNYW5hZ2VyLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hMjQ5ODgyZDA3YTk5ZTc1ZDA5MWJmYjcyYWVl
YzgzMTY0ODU3NzM4Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L0VuY3J5cHRlZE1lZGlhL01lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyLmNw
cApAQCAtMCwwICsxLDEzMiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBJZ2FsaWEgUy5M
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiTWVkaWFLZXlTeXN0
ZW1QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIuaCIKKworI2lmIEVOQUJMRShFTkNSWVBURURfTUVE
SUEpCisKKyNpbmNsdWRlICJMb2dnaW5nLmgiCisjaW5jbHVkZSAiV2ViQ29yZUFyZ3VtZW50Q29k
ZXJzLmgiCisjaW5jbHVkZSAiV2ViRnJhbWUuaCIKKyNpbmNsdWRlICJXZWJQYWdlLmgiCisjaW5j
bHVkZSAiV2ViUGFnZVByb3h5TWVzc2FnZXMuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL0RvY3VtZW50
Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9GcmFtZS5oPgorI2luY2x1ZGUgPFdlYkNvcmUvRnJhbWVM
b2FkZXIuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1NlY3VyaXR5T3JpZ2luLmg+CisjaW5jbHVkZSA8
V2ViQ29yZS9TZWN1cml0eU9yaWdpbkRhdGEuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7Cit1c2lu
ZyBuYW1lc3BhY2UgV2ViQ29yZTsKKworTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdE1h
bmFnZXI6Ok1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyKFdlYlBhZ2UmIHBh
Z2UpCisgICAgOiBtX3BhZ2UocGFnZSkKK3sKK30KKwordm9pZCBNZWRpYUtleVN5c3RlbVBlcm1p
c3Npb25SZXF1ZXN0TWFuYWdlcjo6c3RhcnRNZWRpYUtleVN5c3RlbVJlcXVlc3QoTWVkaWFLZXlT
eXN0ZW1SZXF1ZXN0JiByZXF1ZXN0KQoreworICAgIERvY3VtZW50KiBkb2N1bWVudCA9IHJlcXVl
c3QuZG9jdW1lbnQoKTsKKyAgICBGcmFtZSogZnJhbWUgPSBkb2N1bWVudCA/IGRvY3VtZW50LT5m
cmFtZSgpIDogbnVsbHB0cjsKKworICAgIGlmICghZnJhbWUgfHwgIWRvY3VtZW50LT5wYWdlKCkp
IHsKKyAgICAgICAgcmVxdWVzdC5kZW55KGVtcHR5U3RyaW5nKCkpOworICAgICAgICByZXR1cm47
CisgICAgfQorCisgICAgaWYgKGRvY3VtZW50LT5wYWdlKCktPmNhblN0YXJ0TWVkaWEoKSkgewor
ICAgICAgICBzZW5kTWVkaWFLZXlTeXN0ZW1SZXF1ZXN0KHJlcXVlc3QpOworICAgICAgICByZXR1
cm47CisgICAgfQorCisgICAgYXV0byYgcGVuZGluZ1JlcXVlc3RzID0gbV9wZW5kaW5nTWVkaWFL
ZXlTeXN0ZW1SZXF1ZXN0cy5hZGQoZG9jdW1lbnQsIFZlY3RvcjxSZWY8TWVkaWFLZXlTeXN0ZW1S
ZXF1ZXN0Pj4oKSkuaXRlcmF0b3ItPnZhbHVlOworICAgIHBlbmRpbmdSZXF1ZXN0cy5hcHBlbmQo
cmVxdWVzdCk7Cit9CisKK3ZvaWQgTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdE1hbmFn
ZXI6OnNlbmRNZWRpYUtleVN5c3RlbVJlcXVlc3QoTWVkaWFLZXlTeXN0ZW1SZXF1ZXN0JiB1c2Vy
UmVxdWVzdCkKK3sKKyAgICBhdXRvKiBmcmFtZSA9IHVzZXJSZXF1ZXN0LmRvY3VtZW50KCkgPyB1
c2VyUmVxdWVzdC5kb2N1bWVudCgpLT5mcmFtZSgpIDogbnVsbHB0cjsKKyAgICBpZiAoIWZyYW1l
KSB7CisgICAgICAgIHVzZXJSZXF1ZXN0LmRlbnkoZW1wdHlTdHJpbmcoKSk7CisgICAgICAgIHJl
dHVybjsKKyAgICB9CisKKyAgICBtX29uZ29pbmdNZWRpYUtleVN5c3RlbVJlcXVlc3RzLmFkZCh1
c2VyUmVxdWVzdC5pZGVudGlmaWVyKCksIG1ha2VSZWYodXNlclJlcXVlc3QpKTsKKworICAgIFdl
YkZyYW1lKiB3ZWJGcmFtZSA9IFdlYkZyYW1lOjpmcm9tQ29yZUZyYW1lKCpmcmFtZSk7CisgICAg
QVNTRVJUKHdlYkZyYW1lKTsKKworICAgIGF1dG8qIHRvcExldmVsRG9jdW1lbnRPcmlnaW4gPSB1
c2VyUmVxdWVzdC50b3BMZXZlbERvY3VtZW50T3JpZ2luKCk7CisgICAgbV9wYWdlLnNlbmQoTWVz
c2FnZXM6OldlYlBhZ2VQcm94eTo6UmVxdWVzdE1lZGlhS2V5U3lzdGVtUGVybWlzc2lvbkZvckZy
YW1lKHVzZXJSZXF1ZXN0LmlkZW50aWZpZXIoKS50b1VJbnQ2NCgpLCB3ZWJGcmFtZS0+ZnJhbWVJ
RCgpLCB0b3BMZXZlbERvY3VtZW50T3JpZ2luLT5kYXRhKCksIHVzZXJSZXF1ZXN0LmtleVN5c3Rl
bSgpKSk7Cit9CisKK3ZvaWQgTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXI6
OmNhbmNlbE1lZGlhS2V5U3lzdGVtUmVxdWVzdChNZWRpYUtleVN5c3RlbVJlcXVlc3QmIHJlcXVl
c3QpCit7CisgICAgaWYgKGF1dG8gcmVtb3ZlZFJlcXVlc3QgPSBtX29uZ29pbmdNZWRpYUtleVN5
c3RlbVJlcXVlc3RzLnRha2UocmVxdWVzdC5pZGVudGlmaWVyKCkpKQorICAgICAgICByZXR1cm47
CisKKyAgICBhdXRvKiBkb2N1bWVudCA9IHJlcXVlc3QuZG9jdW1lbnQoKTsKKyAgICBpZiAoIWRv
Y3VtZW50KQorICAgICAgICByZXR1cm47CisKKyAgICBhdXRvIGl0ZXJhdG9yID0gbV9wZW5kaW5n
TWVkaWFLZXlTeXN0ZW1SZXF1ZXN0cy5maW5kKGRvY3VtZW50KTsKKyAgICBpZiAoaXRlcmF0b3Ig
PT0gbV9wZW5kaW5nTWVkaWFLZXlTeXN0ZW1SZXF1ZXN0cy5lbmQoKSkKKyAgICAgICAgcmV0dXJu
OworCisgICAgYXV0byYgcGVuZGluZ1JlcXVlc3RzID0gaXRlcmF0b3ItPnZhbHVlOworICAgIHBl
bmRpbmdSZXF1ZXN0cy5yZW1vdmVGaXJzdE1hdGNoaW5nKFsmcmVxdWVzdF0oYXV0byYgaXRlbSkg
eworICAgICAgICByZXR1cm4gJnJlcXVlc3QgPT0gaXRlbS5wdHIoKTsKKyAgICB9KTsKKworICAg
IGlmICghcGVuZGluZ1JlcXVlc3RzLmlzRW1wdHkoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAg
bV9wZW5kaW5nTWVkaWFLZXlTeXN0ZW1SZXF1ZXN0cy5yZW1vdmUoaXRlcmF0b3IpOworfQorCit2
b2lkIE1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyOjptZWRpYUtleVN5c3Rl
bVdhc0dyYW50ZWQodWludDY0X3QgcmVxdWVzdElELCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+
JiYgY29tcGxldGlvbkhhbmRsZXIpCit7CisgICAgYXV0byByZXF1ZXN0ID0gbV9vbmdvaW5nTWVk
aWFLZXlTeXN0ZW1SZXF1ZXN0cy50YWtlKG1ha2VPYmplY3RJZGVudGlmaWVyPE1lZGlhS2V5U3lz
dGVtUmVxdWVzdElkZW50aWZpZXJUeXBlPihyZXF1ZXN0SUQpKTsKKyAgICBpZiAoIXJlcXVlc3Qp
IHsKKyAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0K
KworICAgIHJlcXVlc3QtPmFsbG93KFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKK30KKwor
dm9pZCBNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcjo6bWVkaWFLZXlTeXN0
ZW1XYXNEZW5pZWQodWludDY0X3QgcmVxdWVzdElELCBTdHJpbmcmJiBtZXNzYWdlKQoreworICAg
IGF1dG8gcmVxdWVzdCA9IG1fb25nb2luZ01lZGlhS2V5U3lzdGVtUmVxdWVzdHMudGFrZShtYWtl
T2JqZWN0SWRlbnRpZmllcjxNZWRpYUtleVN5c3RlbVJlcXVlc3RJZGVudGlmaWVyVHlwZT4ocmVx
dWVzdElEKSk7CisgICAgaWYgKCFyZXF1ZXN0KQorICAgICAgICByZXR1cm47CisKKyAgICByZXF1
ZXN0LT5kZW55KFdURk1vdmUobWVzc2FnZSkpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQK
KworI2VuZGlmIC8vIEVOQUJMRShFTkNSWVBURURfTUVESUEpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvRW5jcnlwdGVkTWVkaWEvTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9u
UmVxdWVzdE1hbmFnZXIuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9FbmNyeXB0ZWRNZWRp
YS9NZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlci5oCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjg2
OTU1ZmI5ZGVkNzExNjFjYWRmNGEyMzY5MDJiMmM1NDIyNTY5YTYKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvRW5jcnlwdGVkTWVkaWEvTWVkaWFLZXlTeXN0ZW1Q
ZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIuaApAQCAtMCwwICsxLDYzIEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDIxIElnYWxpYSBTLkwuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwor
ICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAq
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYg
RU5BQkxFKEVOQ1JZUFRFRF9NRURJQSkKKworI2luY2x1ZGUgIlNhbmRib3hFeHRlbnNpb24uaCIK
KyNpbmNsdWRlIDxXZWJDb3JlL01lZGlhS2V5U3lzdGVtQ2xpZW50Lmg+CisjaW5jbHVkZSA8V2Vi
Q29yZS9NZWRpYUtleVN5c3RlbVJlcXVlc3QuaD4KKyNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgor
I2luY2x1ZGUgPHd0Zi9SZWYuaD4KKyNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CisKK25hbWVzcGFj
ZSBXZWJLaXQgeworCitjbGFzcyBXZWJQYWdlOworCitjbGFzcyBNZWRpYUtleVN5c3RlbVBlcm1p
c3Npb25SZXF1ZXN0TWFuYWdlciB7CisgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CitwdWJs
aWM6CisgICAgZXhwbGljaXQgTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIo
V2ViUGFnZSYpOworICAgIH5NZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcigp
ID0gZGVmYXVsdDsKKworICAgIHZvaWQgc3RhcnRNZWRpYUtleVN5c3RlbVJlcXVlc3QoV2ViQ29y
ZTo6TWVkaWFLZXlTeXN0ZW1SZXF1ZXN0Jik7CisgICAgdm9pZCBjYW5jZWxNZWRpYUtleVN5c3Rl
bVJlcXVlc3QoV2ViQ29yZTo6TWVkaWFLZXlTeXN0ZW1SZXF1ZXN0Jik7CisgICAgdm9pZCBtZWRp
YUtleVN5c3RlbVdhc0dyYW50ZWQodWludDY0X3QsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4m
Jik7CisgICAgdm9pZCBtZWRpYUtleVN5c3RlbVdhc0RlbmllZCh1aW50NjRfdCwgU3RyaW5nJiYp
OworCitwcml2YXRlOgorICAgIHZvaWQgc2VuZE1lZGlhS2V5U3lzdGVtUmVxdWVzdChXZWJDb3Jl
OjpNZWRpYUtleVN5c3RlbVJlcXVlc3QmKTsKKworICAgIFdlYlBhZ2UmIG1fcGFnZTsKKworICAg
IEhhc2hNYXA8V2ViQ29yZTo6TWVkaWFLZXlTeXN0ZW1SZXF1ZXN0SWRlbnRpZmllciwgUmVmPFdl
YkNvcmU6Ok1lZGlhS2V5U3lzdGVtUmVxdWVzdD4+IG1fb25nb2luZ01lZGlhS2V5U3lzdGVtUmVx
dWVzdHM7CisgICAgSGFzaE1hcDxSZWZQdHI8V2ViQ29yZTo6RG9jdW1lbnQ+LCBWZWN0b3I8UmVm
PFdlYkNvcmU6Ok1lZGlhS2V5U3lzdGVtUmVxdWVzdD4+PiBtX3BlbmRpbmdNZWRpYUtleVN5c3Rl
bVJlcXVlc3RzOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBFTkFC
TEUoTUVESUFfU1RSRUFNKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L1dlYk1lZGlhS2V5U3lzdGVtQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJNZWRpYUtleVN5c3RlbUNsaWVudC5jcHAKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uY2QyYjhhNWJkMzlkMDMxN2E0NmZhMzFiODQ2MTk2MzU3YzdiZjExOAotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJN
ZWRpYUtleVN5c3RlbUNsaWVudC5jcHAKQEAgLTAsMCArMSw2MSBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAyMSBJZ2FsaWEgUy5MLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAq
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisj
aW5jbHVkZSAiV2ViTWVkaWFLZXlTeXN0ZW1DbGllbnQuaCIKKworI2lmIEVOQUJMRShFTkNSWVBU
RURfTUVESUEpCisKKyNpbmNsdWRlICJNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0TWFu
YWdlci5oIgorI2luY2x1ZGUgIldlYlBhZ2UuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL01lZGlhS2V5
U3lzdGVtQ29udHJvbGxlci5oPgorI2luY2x1ZGUgPFdlYkNvcmUvTWVkaWFLZXlTeXN0ZW1SZXF1
ZXN0Lmg+CisKK25hbWVzcGFjZSBXZWJLaXQgewordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisK
K1dlYk1lZGlhS2V5U3lzdGVtQ2xpZW50OjpXZWJNZWRpYUtleVN5c3RlbUNsaWVudChXZWJQYWdl
JiBwYWdlKQorICAgIDogbV9wYWdlKHBhZ2UpCit7Cit9CisKK3ZvaWQgV2ViTWVkaWFLZXlTeXN0
ZW1DbGllbnQ6OnBhZ2VEZXN0cm95ZWQoKQoreworICAgIGRlbGV0ZSB0aGlzOworfQorCit2b2lk
IFdlYk1lZGlhS2V5U3lzdGVtQ2xpZW50OjpyZXF1ZXN0TWVkaWFLZXlTeXN0ZW0oTWVkaWFLZXlT
eXN0ZW1SZXF1ZXN0JiByZXF1ZXN0KQoreworICAgIG1fcGFnZS5tZWRpYUtleVN5c3RlbVBlcm1p
c3Npb25SZXF1ZXN0TWFuYWdlcigpLnN0YXJ0TWVkaWFLZXlTeXN0ZW1SZXF1ZXN0KHJlcXVlc3Qp
OworfQorCit2b2lkIFdlYk1lZGlhS2V5U3lzdGVtQ2xpZW50OjpjYW5jZWxNZWRpYUtleVN5c3Rl
bVJlcXVlc3QoTWVkaWFLZXlTeXN0ZW1SZXF1ZXN0JiByZXF1ZXN0KQoreworICAgIG1fcGFnZS5t
ZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcigpLmNhbmNlbE1lZGlhS2V5U3lz
dGVtUmVxdWVzdChyZXF1ZXN0KTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0OworCisjZW5k
aWYgLy8gRU5BQkxFKEVOQ1JZUFRFRF9NRURJQSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJNZWRpYUtleVN5c3RlbUNsaWVudC5oIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYk1lZGlhS2V5U3lzdGVtQ2xp
ZW50LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uZjQ4MDMyZjhiOWFhNjBhZmI5MThlMDQzZjU0ODExZmZiMzIyNzc4
NgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC9XZWJNZWRpYUtleVN5c3RlbUNsaWVudC5oCkBAIC0wLDAgKzEsNTMgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMjEgSWdhbGlhIFMuTC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJ
UycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9S
UworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwor
ICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisg
KiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisK
KyNpZiBFTkFCTEUoRU5DUllQVEVEX01FRElBKQorCisjaW5jbHVkZSA8V2ViQ29yZS9NZWRpYUtl
eVN5c3RlbUNsaWVudC5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3MgV2ViUGFnZTsK
KworY2xhc3MgV2ViTWVkaWFLZXlTeXN0ZW1DbGllbnQgOiBwdWJsaWMgV2ViQ29yZTo6TWVkaWFL
ZXlTeXN0ZW1DbGllbnQgeworICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOworcHVibGljOgor
ICAgIFdlYk1lZGlhS2V5U3lzdGVtQ2xpZW50KFdlYlBhZ2UmKTsKKyAgICB+V2ViTWVkaWFLZXlT
eXN0ZW1DbGllbnQoKSB7IH0KKworcHJpdmF0ZToKKyAgICB2b2lkIHBhZ2VEZXN0cm95ZWQoKSBv
dmVycmlkZTsKKworICAgIHZvaWQgcmVxdWVzdE1lZGlhS2V5U3lzdGVtKFdlYkNvcmU6Ok1lZGlh
S2V5U3lzdGVtUmVxdWVzdCYpIG92ZXJyaWRlOworICAgIHZvaWQgY2FuY2VsTWVkaWFLZXlTeXN0
ZW1SZXF1ZXN0KFdlYkNvcmU6Ok1lZGlhS2V5U3lzdGVtUmVxdWVzdCYpIG92ZXJyaWRlOworCisg
ICAgV2ViUGFnZSYgbV9wYWdlOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5k
aWYgLy8gRU5BQkxFKEVOQ1JZUFRFRF9NRURJQSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYlBhZ2UvV2ViUGFnZS5jcHAKaW5kZXggZTcwMjkyYzQ0ZGMzNzU0ZmYyZWNiNjk2M2Q2OGEw
NTNmZjAxOGY5Ny4uN2ZiZDhiMzhmOTYwMWFmNWQzYzU4MDllMTZiZmU0OWI0NmU1YzNkYSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKQEAgLTQ2LDYg
KzQ2LDcgQEAKICNpbmNsdWRlICJMaWJXZWJSVENQcm92aWRlci5oIgogI2luY2x1ZGUgIkxvYWRQ
YXJhbWV0ZXJzLmgiCiAjaW5jbHVkZSAiTG9nZ2luZy5oIgorI2luY2x1ZGUgIk1lZGlhS2V5U3lz
dGVtUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyLmgiCiAjaW5jbHVkZSAiTWVkaWFQbGF5YmFja1N0
YXRlLmgiCiAjaW5jbHVkZSAiTWVkaWFSZWNvcmRlclByb3ZpZGVyLmgiCiAjaW5jbHVkZSAiTmV0
c2NhcGVQbHVnaW4uaCIKQEAgLTEwNCw2ICsxMDUsNyBAQAogI2luY2x1ZGUgIldlYktleWJvYXJk
RXZlbnQuaCIKICNpbmNsdWRlICJXZWJMb2FkZXJTdHJhdGVneS5oIgogI2luY2x1ZGUgIldlYk1l
ZGlhS2V5U3RvcmFnZU1hbmFnZXIuaCIKKyNpbmNsdWRlICJXZWJNZWRpYUtleVN5c3RlbUNsaWVu
dC5oIgogI2luY2x1ZGUgIldlYk1lZGlhU3RyYXRlZ3kuaCIKICNpbmNsdWRlICJXZWJNb3VzZUV2
ZW50LmgiCiAjaW5jbHVkZSAiV2ViTm90aWZpY2F0aW9uQ2xpZW50LmgiCkBAIC00NjksNiArNDcx
LDkgQEAgV2ViUGFnZTo6V2ViUGFnZShQYWdlSWRlbnRpZmllciBwYWdlSUQsIFdlYlBhZ2VDcmVh
dGlvblBhcmFtZXRlcnMmJiBwYXJhbWV0ZXJzKQogI2VuZGlmCiAjaWYgRU5BQkxFKE1FRElBX1NU
UkVBTSkKICAgICAsIG1fdXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyIHsgbWFrZVVu
aXF1ZVJlZjxVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXI+KCp0aGlzKSB9CisjZW5k
aWYKKyNpZiBFTkFCTEUoRU5DUllQVEVEX01FRElBKQorICAgICwgbV9tZWRpYUtleVN5c3RlbVBl
cm1pc3Npb25SZXF1ZXN0TWFuYWdlciB7IG1ha2VVbmlxdWVSZWY8TWVkaWFLZXlTeXN0ZW1QZXJt
aXNzaW9uUmVxdWVzdE1hbmFnZXI+KCp0aGlzKSB9CiAjZW5kaWYKICAgICAsIG1fcGFnZVNjcm9s
bGVkSHlzdGVyZXNpcyhbdGhpc10oUEFMOjpIeXN0ZXJlc2lzU3RhdGUgc3RhdGUpIHsgaWYgKHN0
YXRlID09IFBBTDo6SHlzdGVyZXNpc1N0YXRlOjpTdG9wcGVkKSBwYWdlU3RvcHBlZFNjcm9sbGlu
ZygpOyB9LCBwYWdlU2Nyb2xsSHlzdGVyZXNpc0R1cmF0aW9uKQogICAgICwgbV9jYW5SdW5CZWZv
cmVVbmxvYWRDb25maXJtUGFuZWwocGFyYW1ldGVycy5jYW5SdW5CZWZvcmVVbmxvYWRDb25maXJt
UGFuZWwpCkBAIC02NTAsNiArNjU1LDkgQEAgV2ViUGFnZTo6V2ViUGFnZShQYWdlSWRlbnRpZmll
ciBwYWdlSUQsIFdlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMmJiBwYXJhbWV0ZXJzKQogI2lmIEVO
QUJMRShNRURJQV9TVFJFQU0pCiAgICAgV2ViQ29yZTo6cHJvdmlkZVVzZXJNZWRpYVRvKG1fcGFn
ZS5nZXQoKSwgbmV3IFdlYlVzZXJNZWRpYUNsaWVudCgqdGhpcykpOwogI2VuZGlmCisjaWYgRU5B
QkxFKEVOQ1JZUFRFRF9NRURJQSkKKyAgICBXZWJDb3JlOjpwcm92aWRlTWVkaWFLZXlTeXN0ZW1U
byhtX3BhZ2UuZ2V0KCksIG5ldyBXZWJNZWRpYUtleVN5c3RlbUNsaWVudCgqdGhpcykpOworI2Vu
ZGlmCiAKICAgICBtX3BhZ2UtPnNldENvbnRyb2xsZWRCeUF1dG9tYXRpb24ocGFyYW1ldGVycy5j
b250cm9sbGVkQnlBdXRvbWF0aW9uKTsKICAgICBtX3BhZ2UtPnNldEhhc1Jlc291cmNlTG9hZENs
aWVudChwYXJhbWV0ZXJzLmhhc1Jlc291cmNlTG9hZENsaWVudCk7CkBAIC00NTIzLDYgKzQ1MzEs
MTggQEAgdm9pZCBXZWJQYWdlOjpjYXB0dXJlRGV2aWNlc0NoYW5nZWQoKQogCiAjZW5kaWYKIAor
I2lmIEVOQUJMRShFTkNSWVBURURfTUVESUEpCit2b2lkIFdlYlBhZ2U6Om1lZGlhS2V5U3lzdGVt
V2FzR3JhbnRlZCh1aW50NjRfdCBtZWRpYUtleVN5c3RlbUlELCBDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCit7CisgICAgbV9tZWRpYUtleVN5c3RlbVBlcm1p
c3Npb25SZXF1ZXN0TWFuYWdlci0+bWVkaWFLZXlTeXN0ZW1XYXNHcmFudGVkKG1lZGlhS2V5U3lz
dGVtSUQsIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKK30KKwordm9pZCBXZWJQYWdlOjpt
ZWRpYUtleVN5c3RlbVdhc0RlbmllZCh1aW50NjRfdCBtZWRpYUtleVN5c3RlbUlELCBTdHJpbmcm
JiBtZXNzYWdlKQoreworICAgIG1fbWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdE1hbmFn
ZXItPm1lZGlhS2V5U3lzdGVtV2FzRGVuaWVkKG1lZGlhS2V5U3lzdGVtSUQsIFdURk1vdmUobWVz
c2FnZSkpOworfQorI2VuZGlmCisKICNpZiAhUExBVEZPUk0oSU9TX0ZBTUlMWSkKIHZvaWQgV2Vi
UGFnZTo6YWR2YW5jZVRvTmV4dE1pc3NwZWxsaW5nKGJvb2wgc3RhcnRCZWZvcmVTZWxlY3Rpb24p
CiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdl
LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKaW5kZXggY2Jm
NDllNjVkNzVlNWJmNmZiOWRiMDIxMThjMGY2YmQ0OGI0OWQyZS4uZWM5NDU5YmE4NGI4ZWFlZDY5
NjZiZWY1Mjc5ZjllZmI0MDMwN2Q3MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQ
YWdlL1dlYlBhZ2UuaApAQCAtMjQ3LDYgKzI0Nyw3IEBAIGNsYXNzIEdhbWVwYWREYXRhOwogY2xh
c3MgR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXI7CiBjbGFzcyBMYXllckhvc3Rp
bmdDb250ZXh0OwogY2xhc3MgTWVkaWFEZXZpY2VTYW5kYm94RXh0ZW5zaW9uczsKK2NsYXNzIE1l
ZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyOwogY2xhc3MgTm90aWZpY2F0aW9u
UGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyOwogY2xhc3MgUERGUGx1Z2luOwogY2xhc3MgUGFnZUJh
bm5lcjsKQEAgLTY3Myw2ICs2NzQsMTAgQEAgcHVibGljOgogICAgIHZvaWQgY2FwdHVyZURldmlj
ZXNDaGFuZ2VkKCk7CiAjZW5kaWYKIAorI2lmIEVOQUJMRShFTkNSWVBURURfTUVESUEpCisgICAg
TWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXImIG1lZGlhS2V5U3lzdGVtUGVy
bWlzc2lvblJlcXVlc3RNYW5hZ2VyKCkgeyByZXR1cm4gbV9tZWRpYUtleVN5c3RlbVBlcm1pc3Np
b25SZXF1ZXN0TWFuYWdlcjsgfQorI2VuZGlmCisKICAgICB2b2lkIGVsZW1lbnREaWRGb2N1cyhX
ZWJDb3JlOjpFbGVtZW50Jik7CiAgICAgdm9pZCBlbGVtZW50RGlkUmVmb2N1cyhXZWJDb3JlOjpF
bGVtZW50Jik7CiAgICAgdm9pZCBlbGVtZW50RGlkQmx1cihXZWJDb3JlOjpFbGVtZW50Jik7CkBA
IC0xNjcwLDcgKzE2NzUsMTEgQEAgcHJpdmF0ZToKICNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQog
ICAgIHZvaWQgdXNlck1lZGlhQWNjZXNzV2FzR3JhbnRlZCh1aW50NjRfdCB1c2VyTWVkaWFJRCwg
V2ViQ29yZTo6Q2FwdHVyZURldmljZSYmIGF1ZGlvRGV2aWNlVUlELCBXZWJDb3JlOjpDYXB0dXJl
RGV2aWNlJiYgdmlkZW9EZXZpY2VVSUQsIFN0cmluZyYmIG1lZGlhRGV2aWNlSWRlbnRpZmllckhh
c2hTYWx0LCBTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGUmJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZCgpPiYmKTsKICAgICB2b2lkIHVzZXJNZWRpYUFjY2Vzc1dhc0RlbmllZCh1aW50NjRfdCB1c2Vy
TWVkaWFJRCwgdWludDY0X3QgcmVhc29uLCBTdHJpbmcmJiBpbnZhbGlkQ29uc3RyYWludCk7Cisj
ZW5kaWYKIAorI2lmIEVOQUJMRShFTkNSWVBURURfTUVESUEpCisgICAgdm9pZCBtZWRpYUtleVN5
c3RlbVdhc0dyYW50ZWQodWludDY0X3QgbWVkaWFLZXlTeXN0ZW1JRCwgQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZCgpPiYmKTsKKyAgICB2b2lkIG1lZGlhS2V5U3lzdGVtV2FzRGVuaWVkKHVpbnQ2NF90
IG1lZGlhS2V5U3lzdGVtSUQsIFN0cmluZyYmIG1lc3NhZ2UpOwogI2VuZGlmCiAKICAgICB2b2lk
IHJlcXVlc3RNZWRpYVBsYXliYWNrU3RhdGUoQ29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJLaXQ6
Ok1lZGlhUGxheWJhY2tTdGF0ZSk+JiYpOwpAQCAtMTk4Miw2ICsxOTkxLDEwIEBAIHByaXZhdGU6
CiAgICAgVW5pcXVlUmVmPFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcj4gbV91c2Vy
TWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXI7CiAjZW5kaWYKIAorI2lmIEVOQUJMRShFTkNS
WVBURURfTUVESUEpCisgICAgVW5pcXVlUmVmPE1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVl
c3RNYW5hZ2VyPiBtX21lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyOworI2Vu
ZGlmCisKICAgICBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6UHJpbnRDb250ZXh0PiBtX3ByaW50
Q29udGV4dDsKICNpZiBQTEFURk9STShHVEspCiAgICAgUmVmUHRyPFdlYlByaW50T3BlcmF0aW9u
R3RrPiBtX3ByaW50T3BlcmF0aW9uOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4KaW5kZXggMmRhOTljZDM3MjM5MmU4MmM1MzBk
NDJjMDFhMTI4NzcwZmJkODcxNy4uMjNmY2EzNTcxZjA3NDc1MDkxZmYzZmMxNGJhYmM0NjVlMjE2
ZWQ0YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFn
ZS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQ
YWdlLm1lc3NhZ2VzLmluCkBAIC0zNzgsNiArMzc4LDExIEBAIEdlbmVyYXRlU3ludGhldGljRWRp
dGluZ0NvbW1hbmQoZW51bTp1aW50OF90IFdlYktpdDo6U3ludGhldGljRWRpdGluZ0NvbW1hbmRU
eXBlCiAgICAgQ2FwdHVyZURldmljZXNDaGFuZ2VkKCkKICNlbmRpZgogCisjaWYgRU5BQkxFKEVO
Q1JZUFRFRF9NRURJQSkKKyAgICBNZWRpYUtleVN5c3RlbVdhc0dyYW50ZWQodWludDY0X3QgbWVk
aWFLZXlTeXN0ZW1JRCkgLT4gKCkgQXN5bmMKKyAgICBNZWRpYUtleVN5c3RlbVdhc0RlbmllZCh1
aW50NjRfdCBtZWRpYUtleVN5c3RlbUlELCBTdHJpbmcgbWVzc2FnZSkKKyNlbmRpZgorCiAgICAg
UmVxdWVzdE1lZGlhUGxheWJhY2tTdGF0ZSgpIC0+IChlbnVtOnVpbnQ4X3QgV2ViS2l0OjpNZWRp
YVBsYXliYWNrU3RhdGUgc3RhdGUpIEFzeW5jCiAgICAgUGF1c2VBbGxNZWRpYVBsYXliYWNrKCkg
LT4gKCkgQXN5bmMKICAgICBTdXNwZW5kQWxsTWVkaWFQbGF5YmFjaygpIC0+ICgpIEFzeW5jCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L1dlYktpdExlZ2FjeS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qIGIvU291cmNlL1dlYktpdExlZ2FjeS9XZWJLaXRMZWdhY3kueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagppbmRleCA0MGQ3ZjA3OWQwYmFiN2IzOGM5NmYxMTkxMGU3YzczZDQy
OWM1NzM5Li43ZTFjNTBiZDM3ZjBkZjMxYTYyOTY1NzUwNzcwZWM1MTg2NGZlODk1IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L1dlYktpdExlZ2FjeS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvV2ViS2l0TGVnYWN5Lnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oKQEAgLTU4MSw2ICs1ODEsOCBAQAogCQk5M0UyQTFBNDEyM0IwQjNDMDA5
RkUxMkEgLyogV2ViRGFzaGJvYXJkUmVnaW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA5M0UyQTFBMjEyM0IwQjNDMDA5RkUxMkEgLyogV2ViRGFzaGJv
YXJkUmVnaW9uLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsg
fTsKIAkJOTNFMkExQTUxMjNCMEIzQzAwOUZFMTJBIC8qIFdlYkRhc2hib2FyZFJlZ2lvbi5tbSBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzRTJBMUEzMTIz
QjBCM0MwMDlGRTEyQSAvKiBXZWJEYXNoYm9hcmRSZWdpb24ubW0gKi87IH07CiAJCTkzRkRFOTMz
MEQ3OUNBRjMwMDc0RjAyOSAvKiBXZWJIaXN0b3J5SW50ZXJuYWwuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzRkRFOTMyMEQ3OUNBRjMwMDc0RjAyOSAv
KiBXZWJIaXN0b3J5SW50ZXJuYWwuaCAqLzsgfTsKKwkJOUFDQzA3QkMyNUM4NUE0NzAwREM2Mzg2
IC8qIFdlYk1lZGlhS2V5U3lzdGVtQ2xpZW50Lm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gOUFDQzA3QkIyNUM4NUE0NzAwREM2Mzg2IC8qIFdlYk1lZGlh
S2V5U3lzdGVtQ2xpZW50Lm1tICovOyB9OworCQk5QUNDMDdCRTI1Qzg1QTU5MDBEQzYzODYgLyog
V2ViTWVkaWFLZXlTeXN0ZW1DbGllbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDlBQ0MwN0JEMjVDODVBNTkwMERDNjM4NiAvKiBXZWJNZWRpYUtleVN5
c3RlbUNsaWVudC5oICovOyB9OwogCQlBMTBDMUQxODE4MjAyRjlDMDAzNjg4M0EgLyogV2ViRGVm
YXVsdEZvcm1EZWxlZ2F0ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gQTEwQzFEMTAxODIwMkY5QzAwMzY4ODNBIC8qIFdlYkRlZmF1bHRGb3JtRGVsZWdh
dGUuaCAqLzsgfTsKIAkJQTEwQzFEMTkxODIwMkY5QzAwMzY4ODNBIC8qIFdlYkRlZmF1bHRGb3Jt
RGVsZWdhdGUubSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEExMEMxRDExMTgyMDJGOUMwMDM2ODgzQSAvKiBXZWJEZWZhdWx0Rm9ybURlbGVnYXRlLm0gKi87
IH07CiAJCUExMEMxRDFBMTgyMDJGOUMwMDM2ODgzQSAvKiBXZWJEZWZhdWx0RnJhbWVMb2FkRGVs
ZWdhdGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEEx
MEMxRDEyMTgyMDJGOUMwMDM2ODgzQSAvKiBXZWJEZWZhdWx0RnJhbWVMb2FkRGVsZWdhdGUuaCAq
LzsgfTsKQEAgLTE0MTIsNiArMTQxNCw4IEBACiAJCTkzRTJBMUEyMTIzQjBCM0MwMDlGRTEyQSAv
KiBXZWJEYXNoYm9hcmRSZWdpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
V2ViRGFzaGJvYXJkUmVnaW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzRTJB
MUEzMTIzQjBCM0MwMDlGRTEyQSAvKiBXZWJEYXNoYm9hcmRSZWdpb24ubW0gKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBXZWJEYXNoYm9hcmRSZWdpb24ubW07IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzRkRFOTMyMEQ3OUNBRjMwMDc0RjAyOSAvKiBXZWJI
aXN0b3J5SW50ZXJuYWwuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViSGlz
dG9yeUludGVybmFsLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTlBQ0MwN0JCMjVD
ODVBNDcwMERDNjM4NiAvKiBXZWJNZWRpYUtleVN5c3RlbUNsaWVudC5tbSAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdlYk1lZGlhS2V5U3lzdGVtQ2xpZW50Lm1tOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5QUNDMDdCRDI1Qzg1QTU5MDBEQzYzODYgLyog
V2ViTWVkaWFLZXlTeXN0ZW1DbGllbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gV2ViTWVkaWFLZXlTeXN0ZW1DbGllbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJOUNBRTlEMDcwMjUyQTQxMzBFQ0ExNkVBIC8qIFdlYlByZWZlcmVuY2VzUHJpdmF0ZS5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGluZGVudFdpZHRo
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYlByZWZl
cmVuY2VzUHJpdmF0ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB0YWJXaWR0aCA9IDg7IHVz
ZXNUYWJzID0gMDsgfTsKIAkJOUNGMEUyNDkwMjEzNjFCMDBFQ0ExNkVBIC8qIFdlYkZyYW1lUHJp
dmF0ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGlu
ZGVudFdpZHRoID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFdlYkZyYW1lUHJpdmF0ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB0YWJXaWR0aCA9IDg7
IHVzZXNUYWJzID0gMDsgfTsKIAkJQTEwQzFEMTAxODIwMkY5QzAwMzY4ODNBIC8qIFdlYkRlZmF1
bHRGb3JtRGVsZWdhdGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gV2ViRGVm
YXVsdEZvcm1EZWxlZ2F0ZS5oOyBwYXRoID0gaW9zL0RlZmF1bHREZWxlZ2F0ZXMvV2ViRGVmYXVs
dEZvcm1EZWxlZ2F0ZS5oOyBzb3VyY2VUcmVlID0gU09VUkNFX1JPT1Q7IH07CkBAIC0yNjczLDYg
KzI2NzcsOCBAQAogCQkJCTkzNDVENEVCMDM2NUM1QjIwMDg2MzVDRSAvKiBXZWJKYXZhU2NyaXB0
VGV4dElucHV0UGFuZWwubSAqLywKIAkJCQlDRDhCRkNFNjE1NTMxMjI0MDA1QUZCMjUgLyogV2Vi
S2l0RnVsbFNjcmVlbkxpc3RlbmVyLmggKi8sCiAJCQkJQ0Q4QkZDRTUxNTUzMTIyNDAwNUFGQjI1
IC8qIFdlYktpdEZ1bGxTY3JlZW5MaXN0ZW5lci5tbSAqLywKKwkJCQk5QUNDMDdCRDI1Qzg1QTU5
MDBEQzYzODYgLyogV2ViTWVkaWFLZXlTeXN0ZW1DbGllbnQuaCAqLywKKwkJCQk5QUNDMDdCQjI1
Qzg1QTQ3MDBEQzYzODYgLyogV2ViTWVkaWFLZXlTeXN0ZW1DbGllbnQubW0gKi8sCiAJCQkJMzFD
MTFBNkMxNDc2NTUyRTAwNDlBNENDIC8qIFdlYk5vdGlmaWNhdGlvbkNsaWVudC5oICovLAogCQkJ
CTMxQzExQTZEMTQ3NjU1MkUwMDQ5QTRDQyAvKiBXZWJOb3RpZmljYXRpb25DbGllbnQubW0gKi8s
CiAJCQkJQTU4QTU3OTcxNDNFNzI3MDAwMTI1RjUwIC8qIFdlYk9wZW5QYW5lbFJlc3VsdExpc3Rl
bmVyLmggKi8sCkBAIC0zMTA4LDYgKzMxMTQsNyBAQAogCQkJCTkzOTgxMDc5MDgyNEJGMDEwMDhE
RjAzOCAvKiBXZWJMb2NhbGl6YWJsZVN0cmluZ3MuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDNDJE
MzI0MTMxRUQxRTAwMDc1RkE0QiAvKiBXZWJMb2NhbGl6YWJsZVN0cmluZ3NJbnRlcm5hbC5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJQTEwQzFEODAxODIwMzAzRDAwMzY4ODNBIC8qIFdlYk1haWxEZWxl
Z2F0ZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJOUFDQzA3QkUyNUM4NUE1OTAwREM2Mzg2IC8qIFdl
Yk1lZGlhS2V5U3lzdGVtQ2xpZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQkwNzJFNUY0NTFBQkY4
ODc1MDAwM0IxNjQgLyogV2ViTWVkaWFQbGF5YmFja1RhcmdldFBpY2tlci5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJQTEwQzFENzIxODIwMzAwRTAwMzY4ODNBIC8qIFdlYk1JTUVUeXBlUmVnaXN0cnku
aCBpbiBIZWFkZXJzICovLAogCQkJCTUxODVGNjI2MTA3MTJCODAwMDdBQTM5MyAvKiBXZWJOYXZp
Z2F0aW9uRGF0YS5oIGluIEhlYWRlcnMgKi8sCkBAIC0zNjUwLDYgKzM2NTcsNyBAQAogCQkJCTUx
MjBDODJDMUU1NENFOEEwMDI1QjI1MCAvKiBXZWJLaXRWZXJzaW9uQ2hlY2tzLm1tIGluIFNvdXJj
ZXMgKi8sCiAJCQkJRUQ1Qjk1MjQxMTFCNzI1QTAwNDcyMjk4IC8qIFdlYkxvY2FsaXphYmxlU3Ry
aW5ncy5tbSBpbiBTb3VyY2VzICovLAogCQkJCUJDNDJEMzREMTMxRUQzODgwMDc1RkE0QiAvKiBX
ZWJMb2NhbGl6YWJsZVN0cmluZ3NJbnRlcm5hbC5tbSBpbiBTb3VyY2VzICovLAorCQkJCTlBQ0Mw
N0JDMjVDODVBNDcwMERDNjM4NiAvKiBXZWJNZWRpYUtleVN5c3RlbUNsaWVudC5tbSBpbiBTb3Vy
Y2VzICovLAogCQkJCTA3MkU1RjQ2MUFCRjg4NzUwMDAzQjE2NCAvKiBXZWJNZWRpYVBsYXliYWNr
VGFyZ2V0UGlja2VyLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJQTEwQzFENzMxODIwMzAwRTAwMzY4
ODNBIC8qIFdlYk1JTUVUeXBlUmVnaXN0cnkubW0gaW4gU291cmNlcyAqLywKIAkJCQk1MTg1RjYy
ODEwNzEyQjk3MDA3QUEzOTMgLyogV2ViTmF2aWdhdGlvbkRhdGEubW0gaW4gU291cmNlcyAqLywK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYk1l
ZGlhS2V5U3lzdGVtQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3Vw
cG9ydC9XZWJNZWRpYUtleVN5c3RlbUNsaWVudC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmU1NTk5ZDU3ZWE1ODg5
YzJmNzEyN2EzNTk3OGI1MjdlZTQ2MGU3ZTYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2Vi
S2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJNZWRpYUtleVN5c3RlbUNsaWVudC5oCkBA
IC0wLDAgKzEsNDMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgSWdhbGlhIFMuTC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI2ltcG9ydCA8V2ViQ29yZS9NZWRpYUtleVN5c3RlbUNsaWVudC5oPgorCitAY2xh
c3MgV2ViVmlldzsKKworY2xhc3MgV2ViTWVkaWFLZXlTeXN0ZW1DbGllbnQgOiBwdWJsaWMgV2Vi
Q29yZTo6TWVkaWFLZXlTeXN0ZW1DbGllbnQgeworICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVE
OworcHVibGljOgorICAgIFdlYk1lZGlhS2V5U3lzdGVtQ2xpZW50KFdlYlZpZXcgKik7CisgICAg
V2ViVmlldyAqd2ViVmlldygpIHsgcmV0dXJuIG1fd2ViVmlldzsgfQorCisgICAgdm9pZCBwYWdl
RGVzdHJveWVkKCkgb3ZlcnJpZGU7CisKKyAgICB2b2lkIHJlcXVlc3RNZWRpYUtleVN5c3RlbShX
ZWJDb3JlOjpNZWRpYUtleVN5c3RlbVJlcXVlc3QmKSBvdmVycmlkZTsKKyAgICB2b2lkIGNhbmNl
bE1lZGlhS2V5U3lzdGVtUmVxdWVzdChXZWJDb3JlOjpNZWRpYUtleVN5c3RlbVJlcXVlc3QmKSBv
dmVycmlkZSB7IH07CisKK3ByaXZhdGU6CisgICAgV2ViVmlldyAqbV93ZWJWaWV3OworfTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYk1lZGlh
S2V5U3lzdGVtQ2xpZW50Lm1tIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBv
cnQvV2ViTWVkaWFLZXlTeXN0ZW1DbGllbnQubW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzMxNzM5Njk1ZDgyYWY2
YTk4ZDY3ZjAyYTc1NDI3OWE1OWIzNGRlYQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJL
aXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYk1lZGlhS2V5U3lzdGVtQ2xpZW50Lm1tCkBA
IC0wLDAgKzEsNTQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgSWdhbGlhIFMuTC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI2ltcG9ydCAiV2ViTWVkaWFLZXlTeXN0ZW1DbGllbnQuaCIKKworI2lmIEVOQUJM
RShFTkNSWVBURURfTUVESUEpCisKKyNpbXBvcnQgPFdlYkNvcmUvTWVkaWFLZXlTeXN0ZW1SZXF1
ZXN0Lmg+CisjaW1wb3J0IDx3dGYvQmxvY2tPYmpDRXhjZXB0aW9ucy5oPgorCit1c2luZyBuYW1l
c3BhY2UgV2ViQ29yZTsKKworV2ViTWVkaWFLZXlTeXN0ZW1DbGllbnQ6OldlYk1lZGlhS2V5U3lz
dGVtQ2xpZW50KFdlYlZpZXcgKndlYlZpZXcpCisgICAgOiBtX3dlYlZpZXcod2ViVmlldykKK3sK
K30KKwordm9pZCBXZWJNZWRpYUtleVN5c3RlbUNsaWVudDo6cGFnZURlc3Ryb3llZCgpCit7Cisg
ICAgZGVsZXRlIHRoaXM7Cit9CisKK3ZvaWQgV2ViTWVkaWFLZXlTeXN0ZW1DbGllbnQ6OnJlcXVl
c3RNZWRpYUtleVN5c3RlbShNZWRpYUtleVN5c3RlbVJlcXVlc3QmIHJlcXVlc3QpCit7CisgICAg
QkVHSU5fQkxPQ0tfT0JKQ19FWENFUFRJT05TCisKKyAgICByZXF1ZXN0LmFsbG93KFtdIHsgfSk7
CisKKyAgICBFTkRfQkxPQ0tfT0JKQ19FWENFUFRJT05TCit9CisKKyNlbmRpZiAvLyBFTkFCTEUo
RU5DUllQVEVEX01FRElBKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2Vi
Vmlldy9XZWJWaWV3Lm1tIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJWaWV3
Lm1tCmluZGV4IDY4NWFjYjFjZGJmMjNkMjY0ZmRiODY5ZjkxY2EwYjk0NzE5MTNkODYuLmU0MWU1
NWY0OTJmMDQzNTdlN2RhZDViMjlkZTM3MDE2YjM1ZmRkNDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0TGVn
YWN5L21hYy9XZWJWaWV3L1dlYlZpZXcubW0KQEAgLTg1LDYgKzg1LDcgQEAKICNpbXBvcnQgIldl
YktpdFN0YXRpc3RpY3NQcml2YXRlLmgiCiAjaW1wb3J0ICJXZWJLaXRWZXJzaW9uQ2hlY2tzLmgi
CiAjaW1wb3J0ICJXZWJMb2NhbGl6YWJsZVN0cmluZ3MuaCIKKyNpbXBvcnQgIldlYk1lZGlhS2V5
U3lzdGVtQ2xpZW50LmgiCiAjaW1wb3J0ICJXZWJOU0RhdGFFeHRyYXMuaCIKICNpbXBvcnQgIldl
Yk5TRGF0YUV4dHJhc1ByaXZhdGUuaCIKICNpbXBvcnQgIldlYk5TRGljdGlvbmFyeUV4dHJhcy5o
IgpAQCAtMTU2OCw2ICsxNTY5LDkgQEAgc3RhdGljIHZvaWQgV2ViS2l0SW5pdGlhbGl6ZUdhbWVw
YWRQcm92aWRlcklmTmVjZXNzYXJ5KCkKICNpZiBFTkFCTEUoREVWSUNFX09SSUVOVEFUSU9OKSAm
JiAhUExBVEZPUk0oSU9TX0ZBTUlMWSkKICAgICBXZWJDb3JlOjpwcm92aWRlRGV2aWNlT3JpZW50
YXRpb25UbygqX3ByaXZhdGUtPnBhZ2UsICpuZXcgV2ViRGV2aWNlT3JpZW50YXRpb25DbGllbnQo
c2VsZikpOwogI2VuZGlmCisjaWYgRU5BQkxFKEVOQ1JZUFRFRF9NRURJQSkKKyAgICBXZWJDb3Jl
Ojpwcm92aWRlTWVkaWFLZXlTeXN0ZW1UbyhfcHJpdmF0ZS0+cGFnZSwgbmV3IFdlYk1lZGlhS2V5
U3lzdGVtQ2xpZW50KHNlbGYpKTsKKyNlbmRpZgogCiAjaWYgRU5BQkxFKFJFTU9URV9JTlNQRUNU
T1IpCiAgICAgX3ByaXZhdGUtPnBhZ2UtPnNldFJlbW90ZUluc3BlY3Rpb25BbGxvd2VkKHRydWUp
OwpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IGQ1
YzBkMzI2MTJkYzgxYmVmYzhmNDA2ODEzNDkyYzcyZTU1NzdlNDAuLmUwNWEzYmZjOGYyYzFmMGMx
MDAyYjFiZWNkMWNjMjhmYTY3NzQ5YzEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysg
Yi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNSBAQAorMjAyMS0wMS0zMSAgUGhpbGlwcGUg
Tm9ybWFuZCAgPHBub3JtYW5kQGlnYWxpYS5jb20+CisKKyAgICAgICAgUGVybWlzc2lvbiByZXF1
ZXN0IEFQSSBmb3IgTWVkaWFLZXlTeXN0ZW0gYWNjZXNzIHN1cHBvcnQKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyMTE4NworCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBzdXBwb3J0IGZvciBzZXR0aW5n
IHRoZSBwZXJtaXNzaW9uIHJlcXVlc3QgcmVzcG9uc2UgZnJvbSB0aGUgVGVzdFJ1bm5lciwgZm9y
IHVzYWdlIHdpdGhpbiBsYXlvdXQgdGVzdHMuCisKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVy
L0luamVjdGVkQnVuZGxlL0JpbmRpbmdzL1Rlc3RSdW5uZXIuaWRsOgorICAgICAgICAqIFdlYktp
dFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5jcHA6CisgICAgICAgIChXVFI6
OlRlc3RSdW5uZXI6OnNldElzTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uR3JhbnRlZCk6CisgICAg
ICAgICogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmg6CisgICAg
ICAgICogV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHA6CisgICAgICAgIChXVFI6
OmRlY2lkZVBvbGljeUZvck1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3QpOgorICAgICAg
ICAoV1RSOjpUZXN0Q29udHJvbGxlcjo6Y29tcGxldGVNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25D
aGVjayk6CisgICAgICAgIChXVFI6OlRlc3RDb250cm9sbGVyOjpzZXRJc01lZGlhS2V5U3lzdGVt
UGVybWlzc2lvbkdyYW50ZWQpOgorICAgICAgICAoV1RSOjpUZXN0Q29udHJvbGxlcjo6Y3JlYXRl
V2ViVmlld1dpdGhPcHRpb25zKToKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250
cm9sbGVyLmg6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9UZXN0SW52b2NhdGlvbi5jcHA6
CisgICAgICAgIChXVFI6OlRlc3RJbnZvY2F0aW9uOjpkaWRSZWNlaXZlU3luY2hyb25vdXNNZXNz
YWdlRnJvbUluamVjdGVkQnVuZGxlKToKKwogMjAyMS0wMi0wMiAgQ2FybG9zIEdhcmNpYSBDYW1w
b3MgIDxjZ2FyY2lhQGlnYWxpYS5jb20+CiAKICAgICAgICAgW0dUS11bV1BFXSBNaWdyYXRlIFdl
YktpdFRlc3RTZXJ2ZXIgdG8gbGlic291cCAyLjQ4IEFQSQpkaWZmIC0tZ2l0IGEvVG9vbHMvV2Vi
S2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9UZXN0UnVubmVyLmlkbCBiL1Rv
b2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvVGVzdFJ1bm5lci5p
ZGwKaW5kZXggZGIxNTk5YTJjNTYwMmFlODFhYjJmMjRlMDhmOWY5NTUzOWMwNWI5YS4uYTA3MWVj
ZGRkOWU0MzQ4M2ZlNzcxOTY4NmMzNWE0ZjM3YjhiMWJjNyAxMDA2NDQKLS0tIGEvVG9vbHMvV2Vi
S2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9UZXN0UnVubmVyLmlkbAorKysg
Yi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0JpbmRpbmdzL1Rlc3RSdW5u
ZXIuaWRsCkBAIC00MDgsNCArNDA4LDcgQEAgaW50ZXJmYWNlIFRlc3RSdW5uZXIgewogCiAgICAg
Ly8gU3BlZWNoUmVjb2duaXRpb24KICAgICB1bmRlZmluZWQgc2V0SXNTcGVlY2hSZWNvZ25pdGlv
blBlcm1pc3Npb25HcmFudGVkKGJvb2xlYW4gdmFsdWUpOworCisgICAgLy8gTWVkaWFLZXlTeXN0
ZW0KKyAgICB1bmRlZmluZWQgc2V0SXNNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25HcmFudGVkKGJv
b2xlYW4gdmFsdWUpOwogfTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5q
ZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5jcHAgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVj
dGVkQnVuZGxlL1Rlc3RSdW5uZXIuY3BwCmluZGV4IDYzODA5ODkyNTE4Y2NlM2NmZDZiYTJkZmFj
ZGM2ZjVlZjkwM2JhYjYuLjg2NGNjZTI4NTk3YTQxOGQ4OWE1MzU3ZGM5MjAwY2NkMDE5NGM3ZDUg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1
bm5lci5jcHAKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0
UnVubmVyLmNwcApAQCAtMjA4NCw2ICsyMDg0LDExIEBAIHZvaWQgVGVzdFJ1bm5lcjo6c2V0SXNT
cGVlY2hSZWNvZ25pdGlvblBlcm1pc3Npb25HcmFudGVkKGJvb2wgZ3JhbnRlZCkKICAgICBwb3N0
U3luY2hyb25vdXNQYWdlTWVzc2FnZSgic2V0SXNTcGVlY2hSZWNvZ25pdGlvblBlcm1pc3Npb25H
cmFudGVkIiwgZ3JhbnRlZCk7CiB9CiAKK3ZvaWQgVGVzdFJ1bm5lcjo6c2V0SXNNZWRpYUtleVN5
c3RlbVBlcm1pc3Npb25HcmFudGVkKGJvb2wgZ3JhbnRlZCkKK3sKKyAgICBwb3N0U3luY2hyb25v
dXNQYWdlTWVzc2FnZSgic2V0SXNNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25HcmFudGVkIiwgZ3Jh
bnRlZCk7Cit9CisKIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAogCiB9IC8vIG5h
bWVzcGFjZSBXVFIKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRC
dW5kbGUvVGVzdFJ1bm5lci5oIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRs
ZS9UZXN0UnVubmVyLmgKaW5kZXggOTNhOTdjYmRkZTQ4NzVjYmQzMzVhNzBmY2I5ZmY1M2RiNGYy
OGI0NC4uYmNmNzEwYjdiODU0NjlmOWJjNjkyMDQxMjgyNzE0NmQyM2IzYmM5NyAxMDA2NDQKLS0t
IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmgKKysr
IGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmgKQEAg
LTUxOSw2ICs1MTksOCBAQCBwdWJsaWM6CiAKICAgICB2b2lkIHNldElzU3BlZWNoUmVjb2duaXRp
b25QZXJtaXNzaW9uR3JhbnRlZChib29sKTsKIAorICAgIHZvaWQgc2V0SXNNZWRpYUtleVN5c3Rl
bVBlcm1pc3Npb25HcmFudGVkKGJvb2wpOworCiBwcml2YXRlOgogICAgIFRlc3RSdW5uZXIoKTsK
IApkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAg
Yi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcAppbmRleCBkMmNiZWY0
MjUzZGZlNjUxMzI4NzIzZDU3OWRiMzQxNGJmMWRhNzhjLi5iM2YzYjkzM2Q5ZGFmMDA2ZTBmZjg3
MzI0NGU3NWE5MzZmNzIyOGQ4IDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rl
c3RDb250cm9sbGVyLmNwcAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9s
bGVyLmNwcApAQCAtNDYsNiArNDYsNyBAQAogI2luY2x1ZGUgPFdlYktpdC9XS0ZyYW1lSW5mb1Jl
Zi5oPgogI2luY2x1ZGUgPFdlYktpdC9XS0hUVFBDb29raWVTdG9yZVJlZi5oPgogI2luY2x1ZGUg
PFdlYktpdC9XS0ljb25EYXRhYmFzZS5oPgorI2luY2x1ZGUgPFdlYktpdC9XS01lZGlhS2V5U3lz
dGVtUGVybWlzc2lvbkNhbGxiYWNrLmg+CiAjaW5jbHVkZSA8V2ViS2l0L1dLTWVzc2FnZUxpc3Rl
bmVyLmg+CiAjaW5jbHVkZSA8V2ViS2l0L1dLTW9ja0Rpc3BsYXkuaD4KICNpbmNsdWRlIDxXZWJL
aXQvV0tNb2NrTWVkaWFEZXZpY2UuaD4KQEAgLTM0Myw2ICszNDQsMjEgQEAgdm9pZCBUZXN0Q29u
dHJvbGxlcjo6c2V0SXNTcGVlY2hSZWNvZ25pdGlvblBlcm1pc3Npb25HcmFudGVkKGJvb2wgZ3Jh
bnRlZCkKICAgICBtX2lzU3BlZWNoUmVjb2duaXRpb25QZXJtaXNzaW9uR3JhbnRlZCA9IGdyYW50
ZWQ7CiB9CiAKK3N0YXRpYyB2b2lkIGRlY2lkZVBvbGljeUZvck1lZGlhS2V5U3lzdGVtUGVybWlz
c2lvblJlcXVlc3QoV0tQYWdlUmVmLCBXS1NlY3VyaXR5T3JpZ2luUmVmLCBXS1N0cmluZ1JlZiwg
V0tNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25DYWxsYmFja1JlZiBjYWxsYmFjaykKK3sKKyAgICBU
ZXN0Q29udHJvbGxlcjo6c2luZ2xldG9uKCkuY29tcGxldGVNZWRpYUtleVN5c3RlbVBlcm1pc3Np
b25DaGVjayhjYWxsYmFjayk7Cit9CisKK3ZvaWQgVGVzdENvbnRyb2xsZXI6OmNvbXBsZXRlTWVk
aWFLZXlTeXN0ZW1QZXJtaXNzaW9uQ2hlY2soV0tNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25DYWxs
YmFja1JlZiBjYWxsYmFjaykKK3sKKyAgICBXS01lZGlhS2V5U3lzdGVtUGVybWlzc2lvbkNhbGxi
YWNrQ29tcGxldGUoY2FsbGJhY2ssIG1faXNNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25HcmFudGVk
KTsKK30KKwordm9pZCBUZXN0Q29udHJvbGxlcjo6c2V0SXNNZWRpYUtleVN5c3RlbVBlcm1pc3Np
b25HcmFudGVkKGJvb2wgZ3JhbnRlZCkKK3sKKyAgICBtX2lzTWVkaWFLZXlTeXN0ZW1QZXJtaXNz
aW9uR3JhbnRlZCA9IGdyYW50ZWQ7Cit9CisKIFdLUGFnZVJlZiBUZXN0Q29udHJvbGxlcjo6Y3Jl
YXRlT3RoZXJQYWdlKFdLUGFnZVJlZiwgV0tQYWdlQ29uZmlndXJhdGlvblJlZiBjb25maWd1cmF0
aW9uLCBXS05hdmlnYXRpb25BY3Rpb25SZWYgbmF2aWdhdGlvbkFjdGlvbiwgV0tXaW5kb3dGZWF0
dXJlc1JlZiB3aW5kb3dGZWF0dXJlcywgY29uc3Qgdm9pZCAqY2xpZW50SW5mbykKIHsKICAgICBQ
bGF0Zm9ybVdlYlZpZXcqIHBhcmVudFZpZXcgPSBzdGF0aWNfY2FzdDxQbGF0Zm9ybVdlYlZpZXcq
Pihjb25zdF9jYXN0PHZvaWQqPihjbGllbnRJbmZvKSk7CkBAIC02OTksOCArNzE1LDggQEAgdm9p
ZCBUZXN0Q29udHJvbGxlcjo6Y3JlYXRlV2ViVmlld1dpdGhPcHRpb25zKGNvbnN0IFRlc3RPcHRp
b25zJiBvcHRpb25zKQogICAgIFdLSFRUUENvb2tpZVN0b3JlRGVsZXRlQWxsQ29va2llcyhXS1dl
YnNpdGVEYXRhU3RvcmVHZXRIVFRQQ29va2llU3RvcmUod2Vic2l0ZURhdGFTdG9yZSgpKSwgbnVs
bHB0ciwgbnVsbHB0cik7CiAKICAgICBwbGF0Zm9ybUNyZWF0ZVdlYlZpZXcoY29uZmlndXJhdGlv
bi5nZXQoKSwgb3B0aW9ucyk7Ci0gICAgV0tQYWdlVUlDbGllbnRWMTUgcGFnZVVJQ2xpZW50ID0g
ewotICAgICAgICB7IDE1LCBtX21haW5XZWJWaWV3LmdldCgpIH0sCisgICAgV0tQYWdlVUlDbGll
bnRWMTYgcGFnZVVJQ2xpZW50ID0geworICAgICAgICB7IDE2LCBtX21haW5XZWJWaWV3LmdldCgp
IH0sCiAgICAgICAgIDAsIC8vIGNyZWF0ZU5ld1BhZ2VfZGVwcmVjYXRlZEZvclVzZVdpdGhWMAog
ICAgICAgICAwLCAvLyBzaG93UGFnZQogICAgICAgICAwLCAvLyBjbG9zZQpAQCAtNzc0LDcgKzc5
MCw4IEBAIHZvaWQgVGVzdENvbnRyb2xsZXI6OmNyZWF0ZVdlYlZpZXdXaXRoT3B0aW9ucyhjb25z
dCBUZXN0T3B0aW9ucyYgb3B0aW9ucykKICAgICAgICAgMCwgLy8gcmVxdWVzdFN0b3JhZ2VBY2Nl
c3NDb25maXJtCiAgICAgICAgIHNob3VsZEFsbG93RGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25B
Y2Nlc3MsCiAgICAgICAgIHJ1bldlYkF1dGhlbnRpY2F0aW9uUGFuZWwsCi0gICAgICAgIGRlY2lk
ZVBvbGljeUZvclNwZWVjaFJlY29nbml0aW9uUGVybWlzc2lvblJlcXVlc3QKKyAgICAgICAgZGVj
aWRlUG9saWN5Rm9yU3BlZWNoUmVjb2duaXRpb25QZXJtaXNzaW9uUmVxdWVzdCwKKyAgICAgICAg
ZGVjaWRlUG9saWN5Rm9yTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdAogICAgIH07CiAg
ICAgV0tQYWdlU2V0UGFnZVVJQ2xpZW50KG1fbWFpbldlYlZpZXctPnBhZ2UoKSwgJnBhZ2VVSUNs
aWVudC5iYXNlKTsKIApkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29u
dHJvbGxlci5oIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5oCmluZGV4
IGJiNzVkNTA3MDJjM2E1M2YzOWRlMTU4MWRjYzRkM2IzMzczOTY0Y2IuLjgxOGMyYjRlYzRhNTYy
YmMwNjdhNGYzZDVjZWJiY2RiZDA1YzA0N2MgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RS
dW5uZXIvVGVzdENvbnRyb2xsZXIuaAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RD
b250cm9sbGVyLmgKQEAgLTM1Niw2ICszNTYsOSBAQCBwdWJsaWM6CiAgICAgdm9pZCBjb21wbGV0
ZVNwZWVjaFJlY29nbml0aW9uUGVybWlzc2lvbkNoZWNrKFdLU3BlZWNoUmVjb2duaXRpb25QZXJt
aXNzaW9uQ2FsbGJhY2tSZWYpOwogICAgIHZvaWQgc2V0SXNTcGVlY2hSZWNvZ25pdGlvblBlcm1p
c3Npb25HcmFudGVkKGJvb2wpOwogCisgICAgdm9pZCBjb21wbGV0ZU1lZGlhS2V5U3lzdGVtUGVy
bWlzc2lvbkNoZWNrKFdLTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uQ2FsbGJhY2tSZWYpOworICAg
IHZvaWQgc2V0SXNNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25HcmFudGVkKGJvb2wpOworCiBwcml2
YXRlOgogICAgIFdLUmV0YWluUHRyPFdLUGFnZUNvbmZpZ3VyYXRpb25SZWY+IGdlbmVyYXRlUGFn
ZUNvbmZpZ3VyYXRpb24oY29uc3QgVGVzdE9wdGlvbnMmKTsKICAgICBXS1JldGFpblB0cjxXS0Nv
bnRleHRDb25maWd1cmF0aW9uUmVmPiBnZW5lcmF0ZUNvbnRleHRDb25maWd1cmF0aW9uKGNvbnN0
IFRlc3RPcHRpb25zJikgY29uc3Q7CkBAIC02NDcsNiArNjUwLDggQEAgcHJpdmF0ZToKICNlbmRp
ZgogCiAgICAgYm9vbCBtX2lzU3BlZWNoUmVjb2duaXRpb25QZXJtaXNzaW9uR3JhbnRlZCB7IGZh
bHNlIH07CisKKyAgICBib29sIG1faXNNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25HcmFudGVkIHsg
dHJ1ZSB9OwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV1RSCmRpZmYgLS1naXQgYS9Ub29scy9XZWJL
aXRUZXN0UnVubmVyL1Rlc3RJbnZvY2F0aW9uLmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIv
VGVzdEludm9jYXRpb24uY3BwCmluZGV4IDU5OGRmYzdkMWFjMGUzN2JiMjJmYjc4NGJhMTU0YWI3
NDc3YWVhMTUuLjU1MDM1NWM3YjhiOTg0ODRhN2QyOGNmNTU5NWY2Mzg3NTE3YmY0YmEgMTAwNjQ0
Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdEludm9jYXRpb24uY3BwCisrKyBiL1Rv
b2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdEludm9jYXRpb24uY3BwCkBAIC0xMzYwLDYgKzEzNjAs
MTEgQEAgV0tSZXRhaW5QdHI8V0tUeXBlUmVmPiBUZXN0SW52b2NhdGlvbjo6ZGlkUmVjZWl2ZVN5
bmNocm9ub3VzTWVzc2FnZUZyb21JbmplY3RlZEIKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAg
ICAgfQogCisgICAgaWYgKFdLU3RyaW5nSXNFcXVhbFRvVVRGOENTdHJpbmcobWVzc2FnZU5hbWUs
ICJzZXRJc01lZGlhS2V5U3lzdGVtUGVybWlzc2lvbkdyYW50ZWQiKSkgeworICAgICAgICBUZXN0
Q29udHJvbGxlcjo6c2luZ2xldG9uKCkuc2V0SXNNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25HcmFu
dGVkKGJvb2xlYW5WYWx1ZShtZXNzYWdlQm9keSkpOworICAgICAgICByZXR1cm4gbnVsbHB0cjsK
KyAgICB9CisKICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICByZXR1cm4gbnVsbHB0cjsK
IH0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5n
ZUxvZwppbmRleCA5OTE1NWQ1YzYwNGEwNjJjMTI5MjIxYTQ4ZjRmZjU4MTMyMzQ2NzlhLi45MmFl
MzE4MmY3YTk2YWY5YzAwNmExNGZkOGMwNGU5MDZhMWRjOTU0IDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYg
QEAKKzIwMjEtMDEtMzEgIFBoaWxpcHBlIE5vcm1hbmQgIDxwbm9ybWFuZEBpZ2FsaWEuY29tPgor
CisgICAgICAgIFBlcm1pc3Npb24gcmVxdWVzdCBBUEkgZm9yIE1lZGlhS2V5U3lzdGVtIGFjY2Vz
cyBzdXBwb3J0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0yMjExODcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBBZGQgYmFzaWMgY292ZXJhZ2Ugc3VwcG9ydCBmb3Igb3ZlcnJpZGluZyB0aGUgTWVkaWFLZXlT
eXN0ZW0gcGVybWlzc2lvbiBhbnN3ZXIgYW5kIHRodXMgaGF2ZQorICAgICAgICB0aGUgcHJvbWlz
ZSByZWplY3Rpb24gdGVzdGVkIGluIHRoaXMgY2FzZS4KKworICAgICAgICAqIG1lZGlhL2VuY3J5
cHRlZC1tZWRpYS9tb2NrLU1lZGlhS2V5U3lzdGVtQWNjZXNzLWV4cGVjdGVkLnR4dDoKKyAgICAg
ICAgKiBtZWRpYS9lbmNyeXB0ZWQtbWVkaWEvbW9jay1NZWRpYUtleVN5c3RlbUFjY2Vzcy5odG1s
OgorCiAyMDIxLTAyLTAyICBSb2IgQnVpcyAgPHJidWlzQGlnYWxpYS5jb20+CiAKICAgICAgICAg
UHJvdmlkZSBtb2NrIGR0bWYgc2VuZGVyCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9tZWRpYS9l
bmNyeXB0ZWQtbWVkaWEvbW9jay1NZWRpYUtleVN5c3RlbUFjY2Vzcy1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9tZWRpYS9lbmNyeXB0ZWQtbWVkaWEvbW9jay1NZWRpYUtleVN5c3RlbUFjY2Vz
cy1leHBlY3RlZC50eHQKaW5kZXggMjA5MjM0ZDUxMTk4ZjBjMTI0OGFlZDZlYzNiNzU2M2ExNzUw
ZGRjNC4uMTIwYmExZjJjMjg3Y2ViNzY4ZWYwYTZmNGEyZjhlNDkyZWVhNGFhMCAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvbWVkaWEvZW5jcnlwdGVkLW1lZGlhL21vY2stTWVkaWFLZXlTeXN0ZW1B
Y2Nlc3MtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL21lZGlhL2VuY3J5cHRlZC1tZWRp
YS9tb2NrLU1lZGlhS2V5U3lzdGVtQWNjZXNzLWV4cGVjdGVkLnR4dApAQCAtMzEsNiArMzEsMTAg
QEAgUlVOKGNhcGFiaWxpdGllcy5wZXJzaXN0ZW50U3RhdGUgPSAibm90LWFsbG93ZWQiKQogUlVO
KHByb21pc2UgPSBuYXZpZ2F0b3IucmVxdWVzdE1lZGlhS2V5U3lzdGVtQWNjZXNzKCJvcmcud2Vi
a2l0Lm1vY2siLCBbY2FwYWJpbGl0aWVzXSkpCiBQcm9taXNlIHJlc29sdmVkIE9LCiAKK1JVTih0
ZXN0UnVubmVyLnNldElzTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uR3JhbnRlZChmYWxzZSkpCitS
VU4ocHJvbWlzZSA9IG5hdmlnYXRvci5yZXF1ZXN0TWVkaWFLZXlTeXN0ZW1BY2Nlc3MoIm9yZy53
ZWJraXQubW9jayIsIFtjYXBhYmlsaXRpZXNdKSkKK1Byb21pc2UgcmVqZWN0ZWQgY29ycmVjdGx5
IE9LCisKIFJVTihwcm9taXNlID0gbWVkaWFLZXlTeXN0ZW1BY2Nlc3MuY3JlYXRlTWVkaWFLZXlz
KCkpCiBQcm9taXNlIHJlc29sdmVkIE9LCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL21lZGlh
L2VuY3J5cHRlZC1tZWRpYS9tb2NrLU1lZGlhS2V5U3lzdGVtQWNjZXNzLmh0bWwgYi9MYXlvdXRU
ZXN0cy9tZWRpYS9lbmNyeXB0ZWQtbWVkaWEvbW9jay1NZWRpYUtleVN5c3RlbUFjY2Vzcy5odG1s
CmluZGV4IDQ3OTZmMThjMjAxZjE3NDZkN2RmNDMyNzQyZDk3NWM3NWVlNGJhNzUuLjU1NWI5ZWU3
NjllZWJkMTZkOWE2NzY5MmI2MzcwM2Q0Y2EzMmM3MDkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L21lZGlhL2VuY3J5cHRlZC1tZWRpYS9tb2NrLU1lZGlhS2V5U3lzdGVtQWNjZXNzLmh0bWwKKysr
IGIvTGF5b3V0VGVzdHMvbWVkaWEvZW5jcnlwdGVkLW1lZGlhL21vY2stTWVkaWFLZXlTeXN0ZW1B
Y2Nlc3MuaHRtbApAQCAtODQsNiArODQsMTMgQEAKICAgICAgICAgfSwKIAogICAgICAgICBmdW5j
dGlvbigpIHsKKyAgICAgICAgICAgIHJ1bigndGVzdFJ1bm5lci5zZXRJc01lZGlhS2V5U3lzdGVt
UGVybWlzc2lvbkdyYW50ZWQoZmFsc2UpJyk7CisgICAgICAgICAgICBydW4oJ3Byb21pc2UgPSBu
YXZpZ2F0b3IucmVxdWVzdE1lZGlhS2V5U3lzdGVtQWNjZXNzKCJvcmcud2Via2l0Lm1vY2siLCBb
Y2FwYWJpbGl0aWVzXSknKTsKKyAgICAgICAgICAgIHNob3VsZFJlamVjdChwcm9taXNlKS50aGVu
KG5leHQsIG5leHQpOworICAgICAgICB9LAorCisgICAgICAgIGZ1bmN0aW9uKCkgeworICAgICAg
ICAgICAgdGVzdFJ1bm5lci5zZXRJc01lZGlhS2V5U3lzdGVtUGVybWlzc2lvbkdyYW50ZWQodHJ1
ZSk7CiAgICAgICAgICAgICBydW4oJ3Byb21pc2UgPSBtZWRpYUtleVN5c3RlbUFjY2Vzcy5jcmVh
dGVNZWRpYUtleXMoKScpOwogICAgICAgICAgICAgc2hvdWxkUmVzb2x2ZShwcm9taXNlKS50aGVu
KG5leHQsIG5leHQpOwogICAgICAgICB9LAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>419383</attachid>
            <date>2021-02-05 02:58:06 -0800</date>
            <delta_ts>2021-02-05 03:20:44 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-221187-20210205025804.patch</filename>
            <type>text/plain</type>
            <size>137462</size>
            <attacher name="Philippe Normand">pnormand</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcyNDA2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDY1NTU5N2Y2NWVlNjhi
MzU4NTk2MzFmZjU2MjljMzNiZmE0YTliOC4uNDBiOTA0OGU1ZDk1NWIxOTAzZGFjZGZmMWZhMTZh
NzQ1ODk3NDNkZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ4IEBACisyMDIxLTAxLTMxICBQaGls
aXBwZSBOb3JtYW5kICA8cG5vcm1hbmRAaWdhbGlhLmNvbT4KKworICAgICAgICBQZXJtaXNzaW9u
IHJlcXVlc3QgQVBJIGZvciBNZWRpYUtleVN5c3RlbSBhY2Nlc3Mgc3VwcG9ydAorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjIxMTg3CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgU3VwcG9ydCBmb3IgdXNlciBw
ZXJtaXNzaW9uIHJlcXVlc3Rpbmcgd2hlbiBhY2Nlc3MgdG8gYW4gRU1FIE1lZGlhS2V5U3lzdGVt
IGlzIGJlaW5nCisgICAgICAgIHJlcXVlc3RlZCBieSB0aGUgcGFnZS4gVGhpcyBpcyBzaW1pbGFy
IHRvIHRoZSBtZWRpYURldmljZXMgYWNjZXNzIGd1YXJkcy4KKworICAgICAgICBFeGlzdGluZyB0
ZXN0IG1lZGlhL2VuY3J5cHRlZC1tZWRpYS9tb2NrLU1lZGlhS2V5U3lzdGVtQWNjZXNzLmh0bWwg
d2FzIHVwZGF0ZWQgdG8gY292ZXIgdGhpcworICAgICAgICBuZXcgY29kZSBwYXRoIGFuZCBXUEUv
R1RLIEFQSSB0ZXN0cyBhcyB3ZWxsLgorCisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6CisgICAg
ICAgICogSGVhZGVycy5jbWFrZToKKyAgICAgICAgKiBNb2R1bGVzL2VuY3J5cHRlZG1lZGlhL01l
ZGlhS2V5U3lzdGVtQ2xpZW50Lmg6IEFkZGVkLgorICAgICAgICAqIE1vZHVsZXMvZW5jcnlwdGVk
bWVkaWEvTWVkaWFLZXlTeXN0ZW1Db250cm9sbGVyLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJD
b3JlOjpNZWRpYUtleVN5c3RlbUNvbnRyb2xsZXI6OnN1cHBsZW1lbnROYW1lKToKKyAgICAgICAg
KFdlYkNvcmU6Ok1lZGlhS2V5U3lzdGVtQ29udHJvbGxlcjo6TWVkaWFLZXlTeXN0ZW1Db250cm9s
bGVyKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhS2V5U3lzdGVtQ29udHJvbGxlcjo6fk1lZGlh
S2V5U3lzdGVtQ29udHJvbGxlcik6CisgICAgICAgIChXZWJDb3JlOjpwcm92aWRlTWVkaWFLZXlT
eXN0ZW1Ubyk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYUtleVN5c3RlbUNvbnRyb2xsZXI6Omxv
Z1JlcXVlc3RNZWRpYUtleVN5c3RlbURlbmlhbCk6CisgICAgICAgICogTW9kdWxlcy9lbmNyeXB0
ZWRtZWRpYS9NZWRpYUtleVN5c3RlbUNvbnRyb2xsZXIuaDogQWRkZWQuCisgICAgICAgIChXZWJD
b3JlOjpNZWRpYUtleVN5c3RlbUNvbnRyb2xsZXI6OmNsaWVudCBjb25zdCk6CisgICAgICAgIChX
ZWJDb3JlOjpNZWRpYUtleVN5c3RlbUNvbnRyb2xsZXI6OmZyb20pOgorICAgICAgICAoV2ViQ29y
ZTo6TWVkaWFLZXlTeXN0ZW1Db250cm9sbGVyOjpyZXF1ZXN0TWVkaWFLZXlTeXN0ZW0pOgorICAg
ICAgICAoV2ViQ29yZTo6TWVkaWFLZXlTeXN0ZW1Db250cm9sbGVyOjpjYW5jZWxNZWRpYUtleVN5
c3RlbVJlcXVlc3QpOgorICAgICAgICAqIE1vZHVsZXMvZW5jcnlwdGVkbWVkaWEvTWVkaWFLZXlT
eXN0ZW1SZXF1ZXN0LmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpNZWRpYUtleVN5c3Rl
bVJlcXVlc3Q6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYUtleVN5c3RlbVJlcXVl
c3Q6Ok1lZGlhS2V5U3lzdGVtUmVxdWVzdCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYUtleVN5
c3RlbVJlcXVlc3Q6On5NZWRpYUtleVN5c3RlbVJlcXVlc3QpOgorICAgICAgICAoV2ViQ29yZTo6
TWVkaWFLZXlTeXN0ZW1SZXF1ZXN0Ojp0b3BMZXZlbERvY3VtZW50T3JpZ2luIGNvbnN0KToKKyAg
ICAgICAgKFdlYkNvcmU6Ok1lZGlhS2V5U3lzdGVtUmVxdWVzdDo6c3RhcnQpOgorICAgICAgICAo
V2ViQ29yZTo6TWVkaWFLZXlTeXN0ZW1SZXF1ZXN0OjphbGxvdyk6CisgICAgICAgIChXZWJDb3Jl
OjpNZWRpYUtleVN5c3RlbVJlcXVlc3Q6OmRlbnkpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFL
ZXlTeXN0ZW1SZXF1ZXN0OjpzdG9wKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhS2V5U3lzdGVt
UmVxdWVzdDo6YWN0aXZlRE9NT2JqZWN0TmFtZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpN
ZWRpYUtleVN5c3RlbVJlcXVlc3Q6OmRvY3VtZW50IGNvbnN0KToKKyAgICAgICAgKiBNb2R1bGVz
L2VuY3J5cHRlZG1lZGlhL01lZGlhS2V5U3lzdGVtUmVxdWVzdC5oOiBBZGRlZC4KKyAgICAgICAg
KFdlYkNvcmU6Ok1lZGlhS2V5U3lzdGVtUmVxdWVzdDo6c2V0QWxsb3dDYWxsYmFjayk6CisgICAg
ICAgIChXZWJDb3JlOjpNZWRpYUtleVN5c3RlbVJlcXVlc3Q6OmlkZW50aWZpZXIgY29uc3QpOgor
ICAgICAgICAoV2ViQ29yZTo6TWVkaWFLZXlTeXN0ZW1SZXF1ZXN0OjprZXlTeXN0ZW0gY29uc3Qp
OgorICAgICAgICAqIE1vZHVsZXMvZW5jcnlwdGVkbWVkaWEvTmF2aWdhdG9yRU1FLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6Ok5hdmlnYXRvckVNRTo6cmVxdWVzdE1lZGlhS2V5U3lzdGVtQWNjZXNz
KToKKwogMjAyMS0wMi0wNCAgSnVsaWFuIEdvbnphbGV6ICA8anVsaWFuX2FfZ29uemFsZXpAYXBw
bGUuY29tPgogCiAgICAgICAgIE51bGwgZGVyZWZlcmVuY2UgaW4gRG9jdW1lbnRMb2FkZXI6OmNv
bW1pdERhdGEoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2Uv
V2ViS2l0L0NoYW5nZUxvZwppbmRleCAwZDgwMjEwODg5OTk2MTJmMzI1OTExNzM4YWE5YWRhZTU1
YzQ1ZmY0Li44ZjJmN2QxYjdjMDBlNTkzZTI5NzJiOGZlZDc2YTg0NWNkNjQyMDhiIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDk2IEBACisyMDIxLTAxLTMxICBQaGlsaXBwZSBOb3JtYW5kICA8cG5vcm1h
bmRAaWdhbGlhLmNvbT4KKworICAgICAgICBQZXJtaXNzaW9uIHJlcXVlc3QgQVBJIGZvciBNZWRp
YUtleVN5c3RlbSBhY2Nlc3Mgc3VwcG9ydAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MjIxMTg3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgQWRkIG5ldyBJUEMgYW5kIEMgQVBJIGV4cG9zaW5nIE1lZGlhS2V5
U3lzdGVtIGFjY2VzcyBwZXJtaXNzaW9ucyB0byB0aGUgVUlQcm9jZXNzLiBBdCBsZWFzdAorICAg
ICAgICBHVEsvV1BFIHdvdWxkIGxpa2UgdG8gaGF2ZSBBUEkgZm9yIGFza2luZyBwZXJtaXNzaW9u
IHRvIHRoZSB1c2VyIHdoZW4gRU1FJ3MgTWVkaWFLZXlBY2Nlc3MKKyAgICAgICAgaXMgYmVpbmcg
cmVxdWVzdGVkIGJ5IGEgcGFnZS4gT24gQXBwbGUgcGxhdGZvcm1zIHRoZSBwZXJtaXNzaW9uIGlz
IGdyYW50ZWQgYnkgZGVmYXVsdCB1bnRpbAorICAgICAgICBhIGRlY2lzaW9uIGlzIG1hZGUgYWJv
dXQgc3VwcG9ydGluZyB0aGlzIGluIHRoZWlyIEFQSVVJQ2xpZW50LgorCisgICAgICAgICogQ01h
a2VMaXN0cy50eHQ6CisgICAgICAgICogSGVhZGVycy5jbWFrZToKKyAgICAgICAgKiBQbGF0Zm9y
bS9Mb2dnaW5nLmg6CisgICAgICAgICogU2hhcmVkL0FQSS9BUElPYmplY3QuaDoKKyAgICAgICAg
KiBTaGFyZWQvQVBJL2MvV0tCYXNlLmg6CisgICAgICAgICogU291cmNlcy50eHQ6CisgICAgICAg
ICogVUlQcm9jZXNzL0FQSS9BUElVSUNsaWVudC5oOgorICAgICAgICAoQVBJOjpVSUNsaWVudDo6
ZGVjaWRlUG9saWN5Rm9yTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdCk6CisgICAgICAg
ICogVUlQcm9jZXNzL0FQSS9DL1dLQVBJQ2FzdC5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkv
Qy9XS01lZGlhS2V5U3lzdGVtUGVybWlzc2lvbkNhbGxiYWNrLmNwcDogQWRkZWQuCisgICAgICAg
IChXS01lZGlhS2V5U3lzdGVtUGVybWlzc2lvbkNhbGxiYWNrR2V0VHlwZUlEKToKKyAgICAgICAg
KFdLTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uQ2FsbGJhY2tDb21wbGV0ZSk6CisgICAgICAgICog
VUlQcm9jZXNzL0FQSS9DL1dLTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uQ2FsbGJhY2suaDogQWRk
ZWQuCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5jcHA6CisgICAgICAgIChXS1Bh
Z2VTZXRQYWdlVUlDbGllbnQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS1BhZ2VVSUNs
aWVudC5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9NZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1
ZXN0Lmg6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25S
ZXF1ZXN0OjpjcmVhdGUpOgorICAgICAgICAoV2ViS2l0OjpNZWRpYUtleVN5c3RlbVBlcm1pc3Np
b25SZXF1ZXN0Ojpjb21wbGV0ZSk6CisgICAgICAgIChXZWJLaXQ6Ok1lZGlhS2V5U3lzdGVtUGVy
bWlzc2lvblJlcXVlc3Q6OmtleVN5c3RlbSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6Ok1lZGlh
S2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3Q6Ok1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVl
c3QpOgorICAgICAgICAoV2ViS2l0OjpNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25DYWxsYmFjazo6
Y3JlYXRlKToKKyAgICAgICAgKFdlYktpdDo6TWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uQ2FsbGJh
Y2s6OmNvbXBsZXRlKToKKyAgICAgICAgKFdlYktpdDo6TWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9u
Q2FsbGJhY2s6Ok1lZGlhS2V5U3lzdGVtUGVybWlzc2lvbkNhbGxiYWNrKToKKyAgICAgICAgKiBV
SVByb2Nlc3MvTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5jcHA6
IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0
TWFuYWdlclByb3h5OjpNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5
KToKKyAgICAgICAgKFdlYktpdDo6TWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdE1hbmFn
ZXJQcm94eTo6fk1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkpOgor
ICAgICAgICAoV2ViS2l0OjpNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclBy
b3h5OjppbnZhbGlkYXRlUGVuZGluZ1JlcXVlc3RzKToKKyAgICAgICAgKFdlYktpdDo6TWVkaWFL
ZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6ZGVueVJlcXVlc3QpOgorICAg
ICAgICAoV2ViS2l0OjpNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5
OjpncmFudFJlcXVlc3QpOgorICAgICAgICAoV2ViS2l0OjpNZWRpYUtleVN5c3RlbVBlcm1pc3Np
b25SZXF1ZXN0TWFuYWdlclByb3h5OjpjcmVhdGVSZXF1ZXN0Rm9yRnJhbWUpOgorICAgICAgICAo
V2ViS2l0OjpNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5Ojpsb2dD
aGFubmVsIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6TWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9u
UmVxdWVzdE1hbmFnZXJQcm94eTo6bG9nZ2VyIGNvbnN0KToKKyAgICAgICAgKiBVSVByb2Nlc3Mv
TWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5oOiBBZGRlZC4KKyAg
ICAgICAgKFdlYktpdDo6TWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94
eTo6cGFnZSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6Ok1lZGlhS2V5U3lzdGVtUGVybWlzc2lv
blJlcXVlc3RNYW5hZ2VyUHJveHk6OmRlbnlSZXF1ZXN0KToKKyAgICAgICAgKiBVSVByb2Nlc3Mv
TWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdFByb3h5LmNwcDogQWRkZWQuCisgICAgICAg
IChXZWJLaXQ6Ok1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RQcm94eTo6TWVkaWFLZXlT
eXN0ZW1QZXJtaXNzaW9uUmVxdWVzdFByb3h5KToKKyAgICAgICAgKFdlYktpdDo6TWVkaWFLZXlT
eXN0ZW1QZXJtaXNzaW9uUmVxdWVzdFByb3h5OjphbGxvdyk6CisgICAgICAgIChXZWJLaXQ6Ok1l
ZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RQcm94eTo6ZGVueSk6CisgICAgICAgIChXZWJL
aXQ6Ok1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RQcm94eTo6aW52YWxpZGF0ZSk6Cisg
ICAgICAgIChXZWJLaXQ6Ok1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RQcm94eTo6ZG9E
ZWZhdWx0QWN0aW9uKToKKyAgICAgICAgKiBVSVByb2Nlc3MvTWVkaWFLZXlTeXN0ZW1QZXJtaXNz
aW9uUmVxdWVzdFByb3h5Lmg6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpNZWRpYUtleVN5c3Rl
bVBlcm1pc3Npb25SZXF1ZXN0UHJveHk6OmNyZWF0ZSk6CisgICAgICAgIChXZWJLaXQ6Ok1lZGlh
S2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RQcm94eTo6aXNQZW5kaW5nIGNvbnN0KToKKyAgICAg
ICAgKFdlYktpdDo6TWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdFByb3h5OjptZWRpYUtl
eVN5c3RlbUlEIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6TWVkaWFLZXlTeXN0ZW1QZXJtaXNz
aW9uUmVxdWVzdFByb3h5OjptYWluRnJhbWVJRCBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6Ok1l
ZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RQcm94eTo6ZnJhbWVJRCBjb25zdCk6CisgICAg
ICAgIChXZWJLaXQ6Ok1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RQcm94eTo6dG9wTGV2
ZWxEb2N1bWVudFNlY3VyaXR5T3JpZ2luKToKKyAgICAgICAgKFdlYktpdDo6TWVkaWFLZXlTeXN0
ZW1QZXJtaXNzaW9uUmVxdWVzdFByb3h5Ojp0b3BMZXZlbERvY3VtZW50U2VjdXJpdHlPcmlnaW4g
Y29uc3QpOgorICAgICAgICAoV2ViS2l0OjpNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0
UHJveHk6OmtleVN5c3RlbSBjb25zdCk6CisgICAgICAgICogVUlQcm9jZXNzL1NwZWVjaFJlY29n
bml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9X
ZWJQYWdlUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OnJlcXVlc3RN
ZWRpYUtleVN5c3RlbVBlcm1pc3Npb25Gb3JGcmFtZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBh
Z2VQcm94eTo6bWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIpOgorICAgICAg
ICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OnJlcXVlc3RNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25C
eURlZmF1bHRBY3Rpb24pOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaDoKKyAg
ICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluOgorICAgICAgICAqIFdl
YlByb2Nlc3MvRW5jcnlwdGVkTWVkaWEvTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdE1h
bmFnZXIuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6TWVkaWFLZXlTeXN0ZW1QZXJtaXNz
aW9uUmVxdWVzdE1hbmFnZXI6Ok1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RNYW5hZ2Vy
KToKKyAgICAgICAgKFdlYktpdDo6TWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdE1hbmFn
ZXI6OnN0YXJ0TWVkaWFLZXlTeXN0ZW1SZXF1ZXN0KToKKyAgICAgICAgKFdlYktpdDo6TWVkaWFL
ZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXI6OnNlbmRNZWRpYUtleVN5c3RlbVJlcXVl
c3QpOgorICAgICAgICAoV2ViS2l0OjpNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0TWFu
YWdlcjo6Y2FuY2VsTWVkaWFLZXlTeXN0ZW1SZXF1ZXN0KToKKyAgICAgICAgKFdlYktpdDo6TWVk
aWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXI6Om1lZGlhS2V5U3lzdGVtV2FzR3Jh
bnRlZCk6CisgICAgICAgIChXZWJLaXQ6Ok1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RN
YW5hZ2VyOjptZWRpYUtleVN5c3RlbVdhc0RlbmllZCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9F
bmNyeXB0ZWRNZWRpYS9NZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlci5oOiBB
ZGRlZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYk1lZGlhS2V5U3lz
dGVtQ2xpZW50LmNwcDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OldlYk1lZGlhS2V5U3lzdGVt
Q2xpZW50OjpXZWJNZWRpYUtleVN5c3RlbUNsaWVudCk6CisgICAgICAgIChXZWJLaXQ6OldlYk1l
ZGlhS2V5U3lzdGVtQ2xpZW50OjpwYWdlRGVzdHJveWVkKToKKyAgICAgICAgKFdlYktpdDo6V2Vi
TWVkaWFLZXlTeXN0ZW1DbGllbnQ6OnJlcXVlc3RNZWRpYUtleVN5c3RlbSk6CisgICAgICAgIChX
ZWJLaXQ6OldlYk1lZGlhS2V5U3lzdGVtQ2xpZW50OjpjYW5jZWxNZWRpYUtleVN5c3RlbVJlcXVl
c3QpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViTWVkaWFLZXlTeXN0
ZW1DbGllbnQuaDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OldlYk1lZGlhS2V5U3lzdGVtQ2xp
ZW50Ojp+V2ViTWVkaWFLZXlTeXN0ZW1DbGllbnQpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2Vi
UGFnZS9XZWJQYWdlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6bV9saW1pdHNOYXZpZ2F0aW9uc1Rv
QXBwQm91bmREb21haW5zKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6bWVkaWFLZXlTeXN0
ZW1XYXNHcmFudGVkKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6bWVkaWFLZXlTeXN0ZW1X
YXNEZW5pZWQpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmg6CisgICAg
ICAgIChXZWJLaXQ6OldlYlBhZ2U6Om1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RNYW5h
Z2VyKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbjoK
KwogMjAyMS0wMi0wNCAgQWRyaWFuIFBlcmV6IGRlIENhc3RybyAgPGFwZXJlekBpZ2FsaWEuY29t
PgogCiAgICAgICAgIFVucmV2aWV3ZWQuIFVwZGF0ZSBPcHRpb25zV1BFLmNtYWtlIGFuZCBORVdT
IGZvciB0aGUgMi4zMS4xIHJlbGVhc2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NNYWtl
TGlzdHMudHh0IGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKaW5kZXggYmFhNDUzZDZj
ZjFjMjJlNjU5MzExNTQ0YjAyNmI3OGFkNGI1OGQ2NC4uYjJmMTY3OTAxMmMwM2I4MGRmYzU0ZDI0
NzhmZjBiZTJlODI0ZTBiOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50
eHQKKysrIGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKQEAgLTE0OTcsNiArMTQ5Nyw4
IEBAIGlmIChFTkFCTEVfRU5DUllQVEVEX01FRElBKQogICAgICAgICBNb2R1bGVzL2VuY3J5cHRl
ZG1lZGlhL01lZGlhS2V5U2Vzc2lvbi5jcHAKICAgICAgICAgTW9kdWxlcy9lbmNyeXB0ZWRtZWRp
YS9NZWRpYUtleVN0YXR1c01hcC5jcHAKICAgICAgICAgTW9kdWxlcy9lbmNyeXB0ZWRtZWRpYS9N
ZWRpYUtleVN5c3RlbUFjY2Vzcy5jcHAKKyAgICAgICAgTW9kdWxlcy9lbmNyeXB0ZWRtZWRpYS9N
ZWRpYUtleVN5c3RlbUNvbnRyb2xsZXIuY3BwCisgICAgICAgIE1vZHVsZXMvZW5jcnlwdGVkbWVk
aWEvTWVkaWFLZXlTeXN0ZW1SZXF1ZXN0LmNwcAogICAgICAgICBNb2R1bGVzL2VuY3J5cHRlZG1l
ZGlhL01lZGlhS2V5cy5jcHAKICAgICAgICAgTW9kdWxlcy9lbmNyeXB0ZWRtZWRpYS9OYXZpZ2F0
b3JFTUUuY3BwCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UgYi9T
b3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCmluZGV4IGFhNTVmMGZhYTdkMDI5YTI4YmJiODVh
MWE0M2UwNTNhZDM2M2I4MWMuLjYzZWRiYjljOWI4ODBiMzE2OTA2ODAxOWI4MzM2MDRhMGVjNjMy
MjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKKysrIGIvU291cmNl
L1dlYkNvcmUvSGVhZGVycy5jbWFrZQpAQCAtMjQsNiArMjQsOSBAQCBzZXQoV2ViQ29yZV9QUklW
QVRFX0ZSQU1FV09SS19IRUFERVJTCiAgICAgTW9kdWxlcy9jb250YWN0LXBpY2tlci9Db250YWN0
c1JlcXVlc3REYXRhLmgKIAogICAgIE1vZHVsZXMvZW5jcnlwdGVkbWVkaWEvQ0RNQ2xpZW50LmgK
KyAgICBNb2R1bGVzL2VuY3J5cHRlZG1lZGlhL01lZGlhS2V5U3lzdGVtQ2xpZW50LmgKKyAgICBN
b2R1bGVzL2VuY3J5cHRlZG1lZGlhL01lZGlhS2V5U3lzdGVtQ29udHJvbGxlci5oCisgICAgTW9k
dWxlcy9lbmNyeXB0ZWRtZWRpYS9NZWRpYUtleVN5c3RlbVJlcXVlc3QuaAogCiAgICAgTW9kdWxl
cy9mZXRjaC9GZXRjaEJvZHlDb25zdW1lci5oCiAgICAgTW9kdWxlcy9mZXRjaC9GZXRjaEJvZHlT
b3VyY2UuaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9lbmNyeXB0ZWRtZWRp
YS9NZWRpYUtleVN5c3RlbUNsaWVudC5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9lbmNyeXB0
ZWRtZWRpYS9NZWRpYUtleVN5c3RlbUNsaWVudC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjA1YmUzZjM1Yjk0NzY0
ODM0OTMxN2VjY2E3Nzc5M2RiOThkOWVkOGIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2VuY3J5cHRlZG1lZGlhL01lZGlhS2V5U3lzdGVtQ2xpZW50LmgKQEAgLTAs
MCArMSw1MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBJZ2FsaWEgUy5MLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFO
RCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVE
CisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKKyAqIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElB
TCBEQU1BR0VTCisgKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7CisgKiBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04KKyAqIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUworICogU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoRU5DUllQVEVEX01FRElBKQorCisjaW5j
bHVkZSA8d3RmL1dlYWtQdHIuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBEb2N1
bWVudDsKK2NsYXNzIFBhZ2U7CitjbGFzcyBNZWRpYUtleVN5c3RlbVJlcXVlc3Q7CisKK2NsYXNz
IE1lZGlhS2V5U3lzdGVtQ2xpZW50IDogcHVibGljIENhbk1ha2VXZWFrUHRyPE1lZGlhS2V5U3lz
dGVtQ2xpZW50PiB7CitwdWJsaWM6CisgICAgdmlydHVhbCB2b2lkIHBhZ2VEZXN0cm95ZWQoKSA9
IDA7CisKKyAgICB2aXJ0dWFsIHZvaWQgcmVxdWVzdE1lZGlhS2V5U3lzdGVtKE1lZGlhS2V5U3lz
dGVtUmVxdWVzdCYpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgY2FuY2VsTWVkaWFLZXlTeXN0ZW1S
ZXF1ZXN0KE1lZGlhS2V5U3lzdGVtUmVxdWVzdCYpID0gMDsKKworcHJvdGVjdGVkOgorICAgIHZp
cnR1YWwgfk1lZGlhS2V5U3lzdGVtQ2xpZW50KCkgPSBkZWZhdWx0OworfTsKKworV0VCQ09SRV9F
WFBPUlQgdm9pZCBwcm92aWRlTWVkaWFLZXlTeXN0ZW1UbyhQYWdlJiwgTWVkaWFLZXlTeXN0ZW1D
bGllbnQmKTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKEVO
Q1JZUFRFRF9NRURJQSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZW5jcnlw
dGVkbWVkaWEvTWVkaWFLZXlTeXN0ZW1Db250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvZW5jcnlwdGVkbWVkaWEvTWVkaWFLZXlTeXN0ZW1Db250cm9sbGVyLmNwcApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi43MWUxZmJkY2ZiNTk5YmQwOThkY2MxZTg0ZjYxZjMxYTgyZmU5MjgyCi0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9lbmNyeXB0ZWRtZWRpYS9NZWRpYUtleVN5
c3RlbUNvbnRyb2xsZXIuY3BwCkBAIC0wLDAgKzEsNzMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMjEgSWdhbGlhIFMuTC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycgQU5E
IEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICogKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OworICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OCisgKiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFIE9GIFRISVMKKyAqIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNs
dWRlICJNZWRpYUtleVN5c3RlbUNvbnRyb2xsZXIuaCIKKworI2lmIEVOQUJMRShFTkNSWVBURURf
TUVESUEpCisKKyNpbmNsdWRlICJET01XaW5kb3cuaCIKKyNpbmNsdWRlICJEb2N1bWVudC5oIgor
I2luY2x1ZGUgIkZlYXR1cmVQb2xpY3kuaCIKKyNpbmNsdWRlICJGcmFtZS5oIgorI2luY2x1ZGUg
IkhUTUxJRnJhbWVFbGVtZW50LmgiCisjaW5jbHVkZSAiTWVkaWFLZXlTeXN0ZW1SZXF1ZXN0Lmgi
CisjaW5jbHVkZSAiUGFnZS5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NvbnN0IGNoYXIq
IE1lZGlhS2V5U3lzdGVtQ29udHJvbGxlcjo6c3VwcGxlbWVudE5hbWUoKQoreworICAgIHJldHVy
biAiTWVkaWFLZXlTeXN0ZW1Db250cm9sbGVyIjsKK30KKworTWVkaWFLZXlTeXN0ZW1Db250cm9s
bGVyKiBNZWRpYUtleVN5c3RlbUNvbnRyb2xsZXI6OmZyb20oUGFnZSogcGFnZSkKK3sKKyAgICBy
ZXR1cm4gc3RhdGljX2Nhc3Q8TWVkaWFLZXlTeXN0ZW1Db250cm9sbGVyKj4oU3VwcGxlbWVudDxQ
YWdlPjo6ZnJvbShwYWdlLCBNZWRpYUtleVN5c3RlbUNvbnRyb2xsZXI6OnN1cHBsZW1lbnROYW1l
KCkpKTsKK30KKworTWVkaWFLZXlTeXN0ZW1Db250cm9sbGVyOjpNZWRpYUtleVN5c3RlbUNvbnRy
b2xsZXIoTWVkaWFLZXlTeXN0ZW1DbGllbnQmIGNsaWVudCkKKyAgICA6IG1fY2xpZW50KG1ha2VX
ZWFrUHRyKGNsaWVudCkpCit7Cit9CisKK01lZGlhS2V5U3lzdGVtQ29udHJvbGxlcjo6fk1lZGlh
S2V5U3lzdGVtQ29udHJvbGxlcigpCit7CisgICAgbV9jbGllbnQtPnBhZ2VEZXN0cm95ZWQoKTsK
K30KKwordm9pZCBwcm92aWRlTWVkaWFLZXlTeXN0ZW1UbyhQYWdlJiBwYWdlLCBNZWRpYUtleVN5
c3RlbUNsaWVudCYgY2xpZW50KQoreworICAgIE1lZGlhS2V5U3lzdGVtQ29udHJvbGxlcjo6cHJv
dmlkZVRvKCZwYWdlLCBNZWRpYUtleVN5c3RlbUNvbnRyb2xsZXI6OnN1cHBsZW1lbnROYW1lKCks
IG1ha2VVbmlxdWU8TWVkaWFLZXlTeXN0ZW1Db250cm9sbGVyPihjbGllbnQpKTsKK30KKwordm9p
ZCBNZWRpYUtleVN5c3RlbUNvbnRyb2xsZXI6OmxvZ1JlcXVlc3RNZWRpYUtleVN5c3RlbURlbmlh
bChEb2N1bWVudCYgZG9jdW1lbnQpCit7CisgICAgaWYgKGF1dG8qIHdpbmRvdyA9IGRvY3VtZW50
LmRvbVdpbmRvdygpKQorICAgICAgICB3aW5kb3ctPnByaW50RXJyb3JNZXNzYWdlKG1ha2VTdHJp
bmcoIk5vdCBhbGxvd2VkIHRvIGFjY2VzcyBNZWRpYUtleVN5c3RlbS4iKSk7Cit9CisKK30gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShNRURJQV9TVFJFQU0pCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2VuY3J5cHRlZG1lZGlhL01lZGlhS2V5U3lz
dGVtQ29udHJvbGxlci5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9lbmNyeXB0ZWRtZWRpYS9N
ZWRpYUtleVN5c3RlbUNvbnRyb2xsZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iYWYwNWM1ZDk4MjY5OTUyMzZm
NmRiMWYwNjk3YmUyZTliYTZhZjcxCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9lbmNyeXB0ZWRtZWRpYS9NZWRpYUtleVN5c3RlbUNvbnRyb2xsZXIuaApAQCAtMCww
ICsxLDY4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIElnYWxpYSBTLkwuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiAgUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQK
KyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorICogRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFM
IERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TgorICogQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTCisgKiBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShFTkNSWVBURURfTUVESUEpCisKKyNpbmNs
dWRlICJNZWRpYUtleVN5c3RlbUNsaWVudC5oIgorI2luY2x1ZGUgIlN1cHBsZW1lbnRhYmxlLmgi
CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgTWVkaWFLZXlTeXN0ZW1SZXF1ZXN0Owor
CitjbGFzcyBNZWRpYUtleVN5c3RlbUNvbnRyb2xsZXIgOiBwdWJsaWMgU3VwcGxlbWVudDxQYWdl
PiB7CisgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CitwdWJsaWM6CisgICAgZXhwbGljaXQg
TWVkaWFLZXlTeXN0ZW1Db250cm9sbGVyKE1lZGlhS2V5U3lzdGVtQ2xpZW50Jik7CisgICAgfk1l
ZGlhS2V5U3lzdGVtQ29udHJvbGxlcigpOworCisgICAgdm9pZCByZXF1ZXN0TWVkaWFLZXlTeXN0
ZW0oTWVkaWFLZXlTeXN0ZW1SZXF1ZXN0Jik7CisgICAgdm9pZCBjYW5jZWxNZWRpYUtleVN5c3Rl
bVJlcXVlc3QoTWVkaWFLZXlTeXN0ZW1SZXF1ZXN0Jik7CisKKyAgICB2b2lkIGxvZ1JlcXVlc3RN
ZWRpYUtleVN5c3RlbURlbmlhbChEb2N1bWVudCYpOworCisgICAgV0VCQ09SRV9FWFBPUlQgc3Rh
dGljIGNvbnN0IGNoYXIqIHN1cHBsZW1lbnROYW1lKCk7CisgICAgc3RhdGljIE1lZGlhS2V5U3lz
dGVtQ29udHJvbGxlciogZnJvbShQYWdlKik7CisKK3ByaXZhdGU6CisgICAgV2Vha1B0cjxNZWRp
YUtleVN5c3RlbUNsaWVudD4gbV9jbGllbnQ7Cit9OworCitpbmxpbmUgdm9pZCBNZWRpYUtleVN5
c3RlbUNvbnRyb2xsZXI6OnJlcXVlc3RNZWRpYUtleVN5c3RlbShNZWRpYUtleVN5c3RlbVJlcXVl
c3QmIHJlcXVlc3QpCit7CisgICAgaWYgKG1fY2xpZW50KQorICAgICAgICBtX2NsaWVudC0+cmVx
dWVzdE1lZGlhS2V5U3lzdGVtKHJlcXVlc3QpOworfQorCitpbmxpbmUgdm9pZCBNZWRpYUtleVN5
c3RlbUNvbnRyb2xsZXI6OmNhbmNlbE1lZGlhS2V5U3lzdGVtUmVxdWVzdChNZWRpYUtleVN5c3Rl
bVJlcXVlc3QmIHJlcXVlc3QpCit7CisgICAgaWYgKG1fY2xpZW50KQorICAgICAgICBtX2NsaWVu
dC0+Y2FuY2VsTWVkaWFLZXlTeXN0ZW1SZXF1ZXN0KHJlcXVlc3QpOworfQorCit9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoRU5DUllQVEVEX01FRElBKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9lbmNyeXB0ZWRtZWRpYS9NZWRpYUtleVN5c3Rl
bVJlcXVlc3QuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9lbmNyeXB0ZWRtZWRpYS9NZWRp
YUtleVN5c3RlbVJlcXVlc3QuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmU2Njk3MTVlNWRlNzJmOTY0N2JjMGVj
OTNiZTU1ZWE4ZDhmMzVlM2UKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2VuY3J5cHRlZG1lZGlhL01lZGlhS2V5U3lzdGVtUmVxdWVzdC5jcHAKQEAgLTAsMCArMSwx
MjcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgSWdhbGlhIFMuTC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRT
IENPTlRSSUJVVE9SUyBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICog
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFN
QUdFUworICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OCisg
KiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkg
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMKKyAqIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisK
KyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJNZWRpYUtleVN5c3RlbVJlcXVlc3QuaCIK
KworI2lmIEVOQUJMRShFTkNSWVBURURfTUVESUEpCisKKyNpbmNsdWRlICJEb2N1bWVudC5oIgor
I2luY2x1ZGUgIkZyYW1lLmgiCisjaW5jbHVkZSAiSlNET01Qcm9taXNlRGVmZXJyZWQuaCIKKyNp
bmNsdWRlICJKU01lZGlhS2V5U3lzdGVtQWNjZXNzLmgiCisjaW5jbHVkZSAiTG9nZ2luZy5oIgor
I2luY2x1ZGUgIk1lZGlhS2V5U3lzdGVtQ29udHJvbGxlci5oIgorI2luY2x1ZGUgIlBsYXRmb3Jt
TWVkaWFTZXNzaW9uTWFuYWdlci5oIgorI2luY2x1ZGUgIlNldHRpbmdzLmgiCisjaW5jbHVkZSAi
V2luZG93RXZlbnRMb29wLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworUmVmPE1lZGlhS2V5
U3lzdGVtUmVxdWVzdD4gTWVkaWFLZXlTeXN0ZW1SZXF1ZXN0OjpjcmVhdGUoRG9jdW1lbnQmIGRv
Y3VtZW50LCBjb25zdCBTdHJpbmcmIGtleVN5c3RlbSwgUmVmPERlZmVycmVkUHJvbWlzZT4mJiBw
cm9taXNlKQoreworICAgIGF1dG8gcmVzdWx0ID0gYWRvcHRSZWYoKm5ldyBNZWRpYUtleVN5c3Rl
bVJlcXVlc3QoZG9jdW1lbnQsIGtleVN5c3RlbSwgV1RGTW92ZShwcm9taXNlKSkpOworICAgIHJl
c3VsdC0+c3VzcGVuZElmTmVlZGVkKCk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KKworTWVkaWFL
ZXlTeXN0ZW1SZXF1ZXN0OjpNZWRpYUtleVN5c3RlbVJlcXVlc3QoRG9jdW1lbnQmIGRvY3VtZW50
LCBjb25zdCBTdHJpbmcmIGtleVN5c3RlbSwgUmVmPERlZmVycmVkUHJvbWlzZT4mJiBwcm9taXNl
KQorICAgIDogQWN0aXZlRE9NT2JqZWN0KGRvY3VtZW50KQorICAgICwgbV9rZXlTeXN0ZW0oa2V5
U3lzdGVtKQorICAgICwgbV9wcm9taXNlKFdURk1vdmUocHJvbWlzZSkpCit7Cit9CisKK01lZGlh
S2V5U3lzdGVtUmVxdWVzdDo6fk1lZGlhS2V5U3lzdGVtUmVxdWVzdCgpCit7CisgICAgaWYgKG1f
YWxsb3dDb21wbGV0aW9uSGFuZGxlcikKKyAgICAgICAgbV9hbGxvd0NvbXBsZXRpb25IYW5kbGVy
KFdURk1vdmUobV9wcm9taXNlKSk7Cit9CisKK1NlY3VyaXR5T3JpZ2luKiBNZWRpYUtleVN5c3Rl
bVJlcXVlc3Q6OnRvcExldmVsRG9jdW1lbnRPcmlnaW4oKSBjb25zdAoreworICAgIGlmICghbV9z
Y3JpcHRFeGVjdXRpb25Db250ZXh0KQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICByZXR1
cm4gJm1fc2NyaXB0RXhlY3V0aW9uQ29udGV4dC0+dG9wT3JpZ2luKCk7Cit9CisKK3ZvaWQgTWVk
aWFLZXlTeXN0ZW1SZXF1ZXN0OjpzdGFydCgpCit7CisgICAgQVNTRVJUKG1fc2NyaXB0RXhlY3V0
aW9uQ29udGV4dCk7CisgICAgaWYgKCFtX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQpIHsKKyAgICAg
ICAgZGVueSgpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgYXV0byYgZG9jdW1lbnQg
PSBkb3duY2FzdDxEb2N1bWVudD4oKm1fc2NyaXB0RXhlY3V0aW9uQ29udGV4dCk7CisgICAgYXV0
byogY29udHJvbGxlciA9IE1lZGlhS2V5U3lzdGVtQ29udHJvbGxlcjo6ZnJvbShkb2N1bWVudC5w
YWdlKCkpOworICAgIGlmICghY29udHJvbGxlcikgeworICAgICAgICBkZW55KCk7CisgICAgICAg
IHJldHVybjsKKyAgICB9CisKKyAgICBjb250cm9sbGVyLT5yZXF1ZXN0TWVkaWFLZXlTeXN0ZW0o
KnRoaXMpOworfQorCit2b2lkIE1lZGlhS2V5U3lzdGVtUmVxdWVzdDo6YWxsb3coQ29tcGxldGlv
bkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQoreworICAgIHF1ZXVlVGFza0tl
ZXBpbmdPYmplY3RBbGl2ZSgqdGhpcywgVGFza1NvdXJjZTo6VXNlckludGVyYWN0aW9uLCBbdGhp
cywgaGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXSgpIG11dGFibGUgeworICAg
ICAgICBhdXRvIGNvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShtX2FsbG93Q29tcGxldGlvbkhh
bmRsZXIpOworICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihXVEZNb3ZlKG1fcHJvbWlzZSkpOwor
ICAgICAgICBoYW5kbGVyKCk7CisgICAgfSk7Cit9CisKK3ZvaWQgTWVkaWFLZXlTeXN0ZW1SZXF1
ZXN0OjpkZW55KGNvbnN0IFN0cmluZyYgbWVzc2FnZSkKK3sKKyAgICBpZiAoIW1fc2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCkKKyAgICAgICAgcmV0dXJuOworCisgICAgRXhjZXB0aW9uQ29kZSBjb2Rl
ID0gTm90U3VwcG9ydGVkRXJyb3I7CisgICAgaWYgKCFtZXNzYWdlLmlzRW1wdHkoKSkKKyAgICAg
ICAgbV9wcm9taXNlLT5yZWplY3QoY29kZSwgbWVzc2FnZSk7CisgICAgZWxzZQorICAgICAgICBt
X3Byb21pc2UtPnJlamVjdChjb2RlKTsKK30KKwordm9pZCBNZWRpYUtleVN5c3RlbVJlcXVlc3Q6
OnN0b3AoKQoreworICAgIGF1dG8mIGRvY3VtZW50ID0gZG93bmNhc3Q8RG9jdW1lbnQ+KCptX3Nj
cmlwdEV4ZWN1dGlvbkNvbnRleHQpOworICAgIGlmIChhdXRvKiBjb250cm9sbGVyID0gTWVkaWFL
ZXlTeXN0ZW1Db250cm9sbGVyOjpmcm9tKGRvY3VtZW50LnBhZ2UoKSkpCisgICAgICAgIGNvbnRy
b2xsZXItPmNhbmNlbE1lZGlhS2V5U3lzdGVtUmVxdWVzdCgqdGhpcyk7Cit9CisKK2NvbnN0IGNo
YXIqIE1lZGlhS2V5U3lzdGVtUmVxdWVzdDo6YWN0aXZlRE9NT2JqZWN0TmFtZSgpIGNvbnN0Cit7
CisgICAgcmV0dXJuICJNZWRpYUtleVN5c3RlbVJlcXVlc3QiOworfQorCitEb2N1bWVudCogTWVk
aWFLZXlTeXN0ZW1SZXF1ZXN0Ojpkb2N1bWVudCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIGRvd25j
YXN0PERvY3VtZW50PihtX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQpOworfQorCit9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoRU5DUllQVEVEX01FRElBKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9lbmNyeXB0ZWRtZWRpYS9NZWRpYUtleVN5c3Rl
bVJlcXVlc3QuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZW5jcnlwdGVkbWVkaWEvTWVkaWFL
ZXlTeXN0ZW1SZXF1ZXN0LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjMxM2MzOGIyYjZmYThhZDk1YmJhYjdlY2Yz
NWNjNDdiYmQ1NWU1MQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
ZW5jcnlwdGVkbWVkaWEvTWVkaWFLZXlTeXN0ZW1SZXF1ZXN0LmgKQEAgLTAsMCArMSw4MCBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBJZ2FsaWEgUy5MLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJ
QlVUT1JTIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBP
U0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElU
UyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKKyAqIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisg
KiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7CisgKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04KKyAqIEFOWSBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUworICogU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdt
YSBvbmNlCisKKyNpZiBFTkFCTEUoRU5DUllQVEVEX01FRElBKQorCisjaW5jbHVkZSAiQWN0aXZl
RE9NT2JqZWN0LmgiCisjaW5jbHVkZSAiSURMVHlwZXMuaCIKKyNpbmNsdWRlICJKU0RPTVByb21p
c2VEZWZlcnJlZC5oIgorI2luY2x1ZGUgPHd0Zi9Db21wbGV0aW9uSGFuZGxlci5oPgorI2luY2x1
ZGUgPHd0Zi9Gb3J3YXJkLmg+CisjaW5jbHVkZSA8d3RmL09iamVjdElkZW50aWZpZXIuaD4KKyNp
bmNsdWRlIDx3dGYvVW5pcXVlUmVmLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3Mg
U2VjdXJpdHlPcmlnaW47CitjbGFzcyBNZWRpYUtleVN5c3RlbTsKKwordGVtcGxhdGUgPHR5cGVu
YW1lIElETFR5cGU+IGNsYXNzIERPTVByb21pc2VEZWZlcnJlZDsKKworZW51bSBNZWRpYUtleVN5
c3RlbVJlcXVlc3RJZGVudGlmaWVyVHlwZSB7IH07Cit1c2luZyBNZWRpYUtleVN5c3RlbVJlcXVl
c3RJZGVudGlmaWVyID0gT2JqZWN0SWRlbnRpZmllcjxNZWRpYUtleVN5c3RlbVJlcXVlc3RJZGVu
dGlmaWVyVHlwZT47CisKK2NsYXNzIE1lZGlhS2V5U3lzdGVtUmVxdWVzdCA6IHB1YmxpYyBSZWZD
b3VudGVkPE1lZGlhS2V5U3lzdGVtUmVxdWVzdD4sIHB1YmxpYyBBY3RpdmVET01PYmplY3Qgewor
cHVibGljOgorICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBSZWY8TWVkaWFLZXlTeXN0ZW1SZXF1
ZXN0PiBjcmVhdGUoRG9jdW1lbnQmLCBjb25zdCBTdHJpbmcmIGtleVN5c3RlbSwgUmVmPERlZmVy
cmVkUHJvbWlzZT4mJik7CisgICAgdmlydHVhbCB+TWVkaWFLZXlTeXN0ZW1SZXF1ZXN0KCk7CisK
KyAgICB2b2lkIHNldEFsbG93Q2FsbGJhY2soQ29tcGxldGlvbkhhbmRsZXI8dm9pZChSZWY8RGVm
ZXJyZWRQcm9taXNlPiYmKT4mJiBjYWxsYmFjaykgeyBtX2FsbG93Q29tcGxldGlvbkhhbmRsZXIg
PSBXVEZNb3ZlKGNhbGxiYWNrKTsgfQorICAgIE1lZGlhS2V5U3lzdGVtUmVxdWVzdElkZW50aWZp
ZXIgaWRlbnRpZmllcigpIGNvbnN0IHsgcmV0dXJuIG1faWRlbnRpZmllcjsgfQorICAgIFdFQkNP
UkVfRVhQT1JUIHZvaWQgc3RhcnQoKTsKKworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgYWxsb3co
Q29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGRl
bnkoY29uc3QgU3RyaW5nJiBlcnJvck1lc3NhZ2UgPSBlbXB0eVN0cmluZygpKTsKKworICAgIFdF
QkNPUkVfRVhQT1JUIFNlY3VyaXR5T3JpZ2luKiB0b3BMZXZlbERvY3VtZW50T3JpZ2luKCkgY29u
c3Q7CisgICAgV0VCQ09SRV9FWFBPUlQgRG9jdW1lbnQqIGRvY3VtZW50KCkgY29uc3Q7CisKKyAg
ICBjb25zdCBTdHJpbmcga2V5U3lzdGVtKCkgY29uc3QgeyByZXR1cm4gbV9rZXlTeXN0ZW07IH0K
KworcHJpdmF0ZToKKyAgICBNZWRpYUtleVN5c3RlbVJlcXVlc3QoRG9jdW1lbnQmLCBjb25zdCBT
dHJpbmcmIGtleVN5c3RlbSwgUmVmPERlZmVycmVkUHJvbWlzZT4mJik7CisKKyAgICB2b2lkIHN0
b3AoKSBmaW5hbDsKKyAgICBjb25zdCBjaGFyKiBhY3RpdmVET01PYmplY3ROYW1lKCkgY29uc3Qg
ZmluYWw7CisKKyAgICBNZWRpYUtleVN5c3RlbVJlcXVlc3RJZGVudGlmaWVyIG1faWRlbnRpZmll
cjsKKworICAgIFN0cmluZyBtX2tleVN5c3RlbTsKKyAgICBSZWY8RGVmZXJyZWRQcm9taXNlPiBt
X3Byb21pc2U7CisKKyAgICBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFJlZjxEZWZlcnJlZFByb21p
c2U+JiYpPiBtX2FsbG93Q29tcGxldGlvbkhhbmRsZXI7Cit9OworCit9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoRU5DUllQVEVEX01FRElBKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9lbmNyeXB0ZWRtZWRpYS9OYXZpZ2F0b3JFTUUuY3BwIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9lbmNyeXB0ZWRtZWRpYS9OYXZpZ2F0b3JFTUUuY3BwCmlu
ZGV4IDY5NDU2NGFmM2U1OTNhNjk2MTc1OGZhZmQ3MmE3ZDUwNDdhNmFjMzYuLmZjNjEzNzRlMjE2
NDFjMTY3NDFkN2U1MWRkMGUzZTdhMmQ1MmI2NjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvZW5jcnlwdGVkbWVkaWEvTmF2aWdhdG9yRU1FLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2VuY3J5cHRlZG1lZGlhL05hdmlnYXRvckVNRS5jcHAKQEAgLTM3LDYgKzM3
LDcgQEAKICNpbmNsdWRlICJKU0RPTVByb21pc2VEZWZlcnJlZC5oIgogI2luY2x1ZGUgIkpTTWVk
aWFLZXlTeXN0ZW1BY2Nlc3MuaCIKICNpbmNsdWRlICJMb2dnaW5nLmgiCisjaW5jbHVkZSAiTWVk
aWFLZXlTeXN0ZW1SZXF1ZXN0LmgiCiAjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nQnVpbGRlci5o
PgogCiBuYW1lc3BhY2UgV1RGIHsKQEAgLTk5LDIzICsxMDAsMjcgQEAgdm9pZCBOYXZpZ2F0b3JF
TUU6OnJlcXVlc3RNZWRpYUtleVN5c3RlbUFjY2VzcyhOYXZpZ2F0b3ImIG5hdmlnYXRvciwgRG9j
dW1lbnQmIGQKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIGRvY3VtZW50LnBvc3RUYXNr
KFtrZXlTeXN0ZW0sIHN1cHBvcnRlZENvbmZpZ3VyYXRpb25zID0gV1RGTW92ZShzdXBwb3J0ZWRD
b25maWd1cmF0aW9ucyksIHByb21pc2UgPSBXVEZNb3ZlKHByb21pc2UpLCAmZG9jdW1lbnQsIGxv
Z2dlciA9IFdURk1vdmUobG9nZ2VyKSwgaWRlbnRpZmllciA9IFdURk1vdmUoaWRlbnRpZmllcild
IChTY3JpcHRFeGVjdXRpb25Db250ZXh0JikgbXV0YWJsZSB7Ci0gICAgICAgIC8vIDMuIExldCBk
b2N1bWVudCBiZSB0aGUgY2FsbGluZyBjb250ZXh0J3MgRG9jdW1lbnQuCi0gICAgICAgIC8vIDQu
IExldCBvcmlnaW4gYmUgdGhlIG9yaWdpbiBvZiBkb2N1bWVudC4KLSAgICAgICAgLy8gNS4gTGV0
IHByb21pc2UgYmUgYSBuZXcgcHJvbWlzZS4KLSAgICAgICAgLy8gNi4gUnVuIHRoZSBmb2xsb3dp
bmcgc3RlcHMgaW4gcGFyYWxsZWw6Ci0gICAgICAgIC8vIDYuMS4gSWYga2V5U3lzdGVtIGlzIG5v
dCBvbmUgb2YgdGhlIEtleSBTeXN0ZW1zIHN1cHBvcnRlZCBieSB0aGUgdXNlciBhZ2VudCwgcmVq
ZWN0IHByb21pc2Ugd2l0aCBhIE5vdFN1cHBvcnRlZEVycm9yLgotICAgICAgICAvLyAgICAgIFN0
cmluZyBjb21wYXJpc29uIGlzIGNhc2Utc2Vuc2l0aXZlLgotICAgICAgICBpZiAoIUNETTo6c3Vw
cG9ydHNLZXlTeXN0ZW0oa2V5U3lzdGVtKSkgewotICAgICAgICAgICAgaW5mb0xvZyhsb2dnZXIs
IGlkZW50aWZpZXIsICJSZWplY3RlZDoga2V5U3lzdGVtKCIsIGtleVN5c3RlbSwgIikgbm90IHN1
cHBvcnRlZCIpOwotICAgICAgICAgICAgcHJvbWlzZS0+cmVqZWN0KE5vdFN1cHBvcnRlZEVycm9y
KTsKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQotCi0gICAgICAgIC8vIDYuMi4gTGV0
IGltcGxlbWVudGF0aW9uIGJlIHRoZSBpbXBsZW1lbnRhdGlvbiBvZiBrZXlTeXN0ZW0uCi0gICAg
ICAgIGF1dG8gaW1wbGVtZW50YXRpb24gPSBDRE06OmNyZWF0ZShkb2N1bWVudCwga2V5U3lzdGVt
KTsKLSAgICAgICAgdHJ5TmV4dFN1cHBvcnRlZENvbmZpZ3VyYXRpb24oV1RGTW92ZShpbXBsZW1l
bnRhdGlvbiksIFdURk1vdmUoc3VwcG9ydGVkQ29uZmlndXJhdGlvbnMpLCBXVEZNb3ZlKHByb21p
c2UpLCBXVEZNb3ZlKGxvZ2dlciksIFdURk1vdmUoaWRlbnRpZmllcikpOworICAgIGF1dG8gcmVx
dWVzdCA9IE1lZGlhS2V5U3lzdGVtUmVxdWVzdDo6Y3JlYXRlKGRvY3VtZW50LCBrZXlTeXN0ZW0s
IFdURk1vdmUocHJvbWlzZSkpOworICAgIHJlcXVlc3QtPnNldEFsbG93Q2FsbGJhY2soW2tleVN5
c3RlbSwgc3VwcG9ydGVkQ29uZmlndXJhdGlvbnMgPSBXVEZNb3ZlKHN1cHBvcnRlZENvbmZpZ3Vy
YXRpb25zKSwgJmRvY3VtZW50LCBsb2dnZXIgPSBXVEZNb3ZlKGxvZ2dlciksIGlkZW50aWZpZXIg
PSBXVEZNb3ZlKGlkZW50aWZpZXIpXShSZWY8RGVmZXJyZWRQcm9taXNlPiYmIHByb21pc2UpIG11
dGFibGUgeworICAgICAgICBkb2N1bWVudC5wb3N0VGFzayhbcHJvbWlzZSA9IFdURk1vdmUocHJv
bWlzZSksICZkb2N1bWVudCwga2V5U3lzdGVtLCBsb2dnZXIgPSBXVEZNb3ZlKGxvZ2dlciksIGlk
ZW50aWZpZXIgPSBXVEZNb3ZlKGlkZW50aWZpZXIpLCBzdXBwb3J0ZWRDb25maWd1cmF0aW9ucyA9
IFdURk1vdmUoc3VwcG9ydGVkQ29uZmlndXJhdGlvbnMpXSAoU2NyaXB0RXhlY3V0aW9uQ29udGV4
dCYpIG11dGFibGUgeworICAgICAgICAgICAgLy8gMy4gTGV0IGRvY3VtZW50IGJlIHRoZSBjYWxs
aW5nIGNvbnRleHQncyBEb2N1bWVudC4KKyAgICAgICAgICAgIC8vIDQuIExldCBvcmlnaW4gYmUg
dGhlIG9yaWdpbiBvZiBkb2N1bWVudC4KKyAgICAgICAgICAgIC8vIDUuIExldCBwcm9taXNlIGJl
IGEgbmV3IHByb21pc2UuCisgICAgICAgICAgICAvLyA2LiBSdW4gdGhlIGZvbGxvd2luZyBzdGVw
cyBpbiBwYXJhbGxlbDoKKyAgICAgICAgICAgIC8vIDYuMS4gSWYga2V5U3lzdGVtIGlzIG5vdCBv
bmUgb2YgdGhlIEtleSBTeXN0ZW1zIHN1cHBvcnRlZCBieSB0aGUgdXNlciBhZ2VudCwgcmVqZWN0
IHByb21pc2Ugd2l0aCBhIE5vdFN1cHBvcnRlZEVycm9yLgorICAgICAgICAgICAgLy8gICAgICBT
dHJpbmcgY29tcGFyaXNvbiBpcyBjYXNlLXNlbnNpdGl2ZS4KKyAgICAgICAgICAgIGlmICghQ0RN
OjpzdXBwb3J0c0tleVN5c3RlbShrZXlTeXN0ZW0pKSB7CisgICAgICAgICAgICAgICAgaW5mb0xv
Zyhsb2dnZXIsIGlkZW50aWZpZXIsICJSZWplY3RlZDoga2V5U3lzdGVtKCIsIGtleVN5c3RlbSwg
Iikgbm90IHN1cHBvcnRlZCIpOworICAgICAgICAgICAgICAgIHByb21pc2UtPnJlamVjdChOb3RT
dXBwb3J0ZWRFcnJvcik7CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQor
CisgICAgICAgICAgICAvLyA2LjIuIExldCBpbXBsZW1lbnRhdGlvbiBiZSB0aGUgaW1wbGVtZW50
YXRpb24gb2Yga2V5U3lzdGVtLgorICAgICAgICAgICAgYXV0byBpbXBsZW1lbnRhdGlvbiA9IENE
TTo6Y3JlYXRlKGRvY3VtZW50LCBrZXlTeXN0ZW0pOworICAgICAgICAgICAgdHJ5TmV4dFN1cHBv
cnRlZENvbmZpZ3VyYXRpb24oV1RGTW92ZShpbXBsZW1lbnRhdGlvbiksIFdURk1vdmUoc3VwcG9y
dGVkQ29uZmlndXJhdGlvbnMpLCBXVEZNb3ZlKHByb21pc2UpLCBXVEZNb3ZlKGxvZ2dlciksIFdU
Rk1vdmUoaWRlbnRpZmllcikpOworICAgICAgICB9KTsKICAgICB9KTsKKyAgICByZXF1ZXN0LT5z
dGFydCgpOwogfQogCiBzdGF0aWMgdm9pZCB0cnlOZXh0U3VwcG9ydGVkQ29uZmlndXJhdGlvbihS
ZWZQdHI8Q0RNPiYmIGltcGxlbWVudGF0aW9uLCBWZWN0b3I8TWVkaWFLZXlTeXN0ZW1Db25maWd1
cmF0aW9uPiYmIHN1cHBvcnRlZENvbmZpZ3VyYXRpb25zLCBSZWZQdHI8RGVmZXJyZWRQcm9taXNl
PiYmIHByb21pc2UsIFJlZjxMb2dnZXI+JiYgbG9nZ2VyLCBXVEY6OkxvZ2dlcjo6TG9nU2l0ZUlk
ZW50aWZpZXImJiBpZGVudGlmaWVyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGZhNmMyOWY0YjRiYWZmNDFiNzA4ZjIyMGI3NjBm
YzkyZWU0MmQwYTEuLmUwNDExZDA1ZGVkNmE1ZTUwZWM0ODY1NzZkNDMxMmMxNDM5NGNhNDAgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oK
QEAgLTMwNDMsNiArMzA0MywxMSBAQAogCQk5OUQxQjJEMzIzQUMxNDMxMDA4MTFDRjAgLyogSW5z
cGVjdG9yRGVidWdnYWJsZVR5cGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDk5RDFCMkQxMjNBQzE0MzAwMDgxMUNGMCAvKiBJbnNwZWN0b3JEZWJ1Z2dh
YmxlVHlwZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CiAJCTlBNTI4RTg0MTdEN0Y1MkYwMEFBOTUxOCAvKiBGbG9hdGluZ09iamVjdHMuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDlBNTI4RTgyMTdEN0Y1MkYw
MEFBOTUxOCAvKiBGbG9hdGluZ09iamVjdHMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9
IChQcml2YXRlLCApOyB9OyB9OwogCQk5QUIxRjM4MDE4RTI0ODlBMDA1MzQ3NDMgLyogQ1NTVG9M
ZW5ndGhDb252ZXJzaW9uRGF0YS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gOUFCMUYzN0UxOEUyNDg5QTAwNTM0NzQzIC8qIENTU1RvTGVuZ3RoQ29udmVy
c2lvbkRhdGEuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OworCQk5QUNDMDc5NjI1QzcyNUVFMDBEQzYzODYgLyogTWVkaWFLZXlTeXN0ZW1SZXF1ZXN0LmNw
cCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDlBQ0MwNzk0
MjVDNzI1RUQwMERDNjM4NiAvKiBNZWRpYUtleVN5c3RlbVJlcXVlc3QuY3BwICovOyB9OworCQk5
QUNDMDc5ODI1QzcyNjc3MDBEQzYzODYgLyogTWVkaWFLZXlTeXN0ZW1Db250cm9sbGVyLmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDlBQ0MwNzk3MjVD
NzI2NzYwMERDNjM4NiAvKiBNZWRpYUtleVN5c3RlbUNvbnRyb2xsZXIuY3BwICovOyB9OworCQk5
QUNDMDdBNjI1QzgxMERGMDBEQzYzODYgLyogTWVkaWFLZXlTeXN0ZW1SZXF1ZXN0LmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5QUNDMDdBNTI1QzgxMERG
MDBEQzYzODYgLyogTWVkaWFLZXlTeXN0ZW1SZXF1ZXN0LmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJOUFDQzA3QTgyNUM4MTEwRDAwREM2Mzg2IC8q
IE1lZGlhS2V5U3lzdGVtQ2xpZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA5QUNDMDdBNzI1QzgxMTBEMDBEQzYzODYgLyogTWVkaWFLZXlTeXN0ZW1D
bGllbnQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9Owor
CQk5QUNDMDdBRjI1QzgxNDFEMDBEQzYzODYgLyogTWVkaWFLZXlTeXN0ZW1Db250cm9sbGVyLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5QUNDMDdBRTI1
QzgxNDFDMDBEQzYzODYgLyogTWVkaWFLZXlTeXN0ZW1Db250cm9sbGVyLmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJOUIwMkUwQzgyMzVFQUQyQTAw
NDA0NEIyIC8qIFRleHRNYW5pcHVsYXRpb25Db250cm9sbGVyLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5QjAyRTBDMzIzNUU3NkFBMDA0MDQ0QjIgLyog
VGV4dE1hbmlwdWxhdGlvbkNvbnRyb2xsZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9
IChQcml2YXRlLCApOyB9OyB9OwogCQk5QjBBQkNBRTIzNkJCNDMxMDBCNDUwODUgLyogVGFza1Nv
dXJjZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOUIw
QUJDQUMyMzZCQjQwQTAwQjQ1MDg1IC8qIFRhc2tTb3VyY2UuaCAqLzsgc2V0dGluZ3MgPSB7QVRU
UklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk5QjEyMjlDNDIzRkU0QkQyMDA4Q0E3NTEg
LyogQXVkaW9EZXN0aW5hdGlvbkNvY29hLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA0MTMxNTE4NjIzNTc3NDVFMDAxMTVFNkUgLyogQXVkaW9EZXN0aW5h
dGlvbkNvY29hLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsg
fTsKQEAgLTEyMDA0LDYgKzEyMDA5LDExIEBACiAJCTlBQzZGMDI1MjExNDhGNTQwMENCREEwNiAv
KiBNZWRpYUVuZ2luZUNvbmZpZ3VyYXRpb25GYWN0b3J5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgbmFtZSA9IE1lZGlhRW5naW5lQ29uZmlndXJhdGlvbkZhY3RvcnkuaDsgcGF0aCA9IG1l
ZGlhY2FwYWJpbGl0aWVzL01lZGlhRW5naW5lQ29uZmlndXJhdGlvbkZhY3RvcnkuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOUFDNkYwMkQyMTE0OEY5RjAwQ0JEQTA2IC8qIE1lZGlh
RW5naW5lQ29uZmlndXJhdGlvbkZhY3RvcnlNb2NrLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IE1lZGlhRW5naW5lQ29uZmlndXJhdGlvbkZhY3RvcnlNb2NrLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOUFDNkYwMkYyMTE0OEZBMjAwQ0JEQTA2IC8q
IE1lZGlhRW5naW5lQ29uZmlndXJhdGlvbkZhY3RvcnlNb2NrLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IE1lZGlhRW5naW5lQ29uZmlndXJhdGlvbkZhY3RvcnlNb2NrLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTlBQ0MwNzk0MjVDNzI1RUQwMERDNjM4NiAvKiBN
ZWRpYUtleVN5c3RlbVJlcXVlc3QuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gTWVkaWFLZXlTeXN0ZW1SZXF1ZXN0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJOUFDQzA3OTcyNUM3MjY3NjAwREM2Mzg2IC8qIE1lZGlhS2V5U3lzdGVtQ29udHJvbGxl
ci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBNZWRpYUtleVN5c3Rl
bUNvbnRyb2xsZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5QUNDMDdBNTI1
QzgxMERGMDBEQzYzODYgLyogTWVkaWFLZXlTeXN0ZW1SZXF1ZXN0LmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IE1lZGlhS2V5U3lzdGVtUmVxdWVzdC5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQk5QUNDMDdBNzI1QzgxMTBEMDBEQzYzODYgLyogTWVkaWFLZXlTeXN0
ZW1DbGllbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTWVkaWFLZXlTeXN0
ZW1DbGllbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOUFDQzA3QUUyNUM4MTQx
QzAwREM2Mzg2IC8qIE1lZGlhS2V5U3lzdGVtQ29udHJvbGxlci5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBNZWRpYUtleVN5c3RlbUNvbnRyb2xsZXIuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJOUIwMkUwQzMyMzVFNzZBQTAwNDA0NEIyIC8qIFRleHRNYW5pcHVs
YXRpb25Db250cm9sbGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFRleHRNYW5pcHVsYXRpb25Db250cm9s
bGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTlCMDJFMEM0MjM1RTc2QUEwMDQw
NDRCMiAvKiBUZXh0TWFuaXB1bGF0aW9uQ29udHJvbGxlci5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBUZXh0TWFuaXB1bGF0aW9uQ29udHJvbGxlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTlCMDNEODA2MUJCMzExMEQwMEI3M0Y2NCAvKiBSZWFkYWJsZUJ5dGVTdHJlYW1JbnRl
cm5hbHNCdWlsdGlucy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBSZWFkYWJs
ZUJ5dGVTdHJlYW1JbnRlcm5hbHNCdWlsdGlucy5oOyBwYXRoID0gRGVyaXZlZFNvdXJjZXMvV2Vi
Q29yZS9SZWFkYWJsZUJ5dGVTdHJlYW1JbnRlcm5hbHNCdWlsdGlucy5oOyBzb3VyY2VUcmVlID0g
QlVJTFRfUFJPRFVDVFNfRElSOyB9OwpAQCAtMjgwNTMsMTAgKzI4MDYzLDE1IEBACiAJCQkJMkQ5
QkY3M0MxREJGREMwRjAwN0E3RDk5IC8qIE1lZGlhS2V5U3lzdGVtQWNjZXNzLmNwcCAqLywKIAkJ
CQkyRDlCRjczRDFEQkZEQzBGMDA3QTdEOTkgLyogTWVkaWFLZXlTeXN0ZW1BY2Nlc3MuaCAqLywK
IAkJCQkyRDlCRjZGOTFEQkZCNzFGMDA3QTdEOTkgLyogTWVkaWFLZXlTeXN0ZW1BY2Nlc3MuaWRs
ICovLAorCQkJCTlBQ0MwN0E3MjVDODExMEQwMERDNjM4NiAvKiBNZWRpYUtleVN5c3RlbUNsaWVu
dC5oICovLAogCQkJCTJEOUJGNzNFMURCRkRDMEYwMDdBN0Q5OSAvKiBNZWRpYUtleVN5c3RlbUNv
bmZpZ3VyYXRpb24uaCAqLywKIAkJCQkyRDlCRjZGQTFEQkZCNzFGMDA3QTdEOTkgLyogTWVkaWFL
ZXlTeXN0ZW1Db25maWd1cmF0aW9uLmlkbCAqLywKKwkJCQk5QUNDMDc5NzI1QzcyNjc2MDBEQzYz
ODYgLyogTWVkaWFLZXlTeXN0ZW1Db250cm9sbGVyLmNwcCAqLywKKwkJCQk5QUNDMDdBRTI1Qzgx
NDFDMDBEQzYzODYgLyogTWVkaWFLZXlTeXN0ZW1Db250cm9sbGVyLmggKi8sCiAJCQkJMkQ5QkY3
M0YxREJGREMwRjAwN0E3RDk5IC8qIE1lZGlhS2V5U3lzdGVtTWVkaWFDYXBhYmlsaXR5LmggKi8s
CiAJCQkJMkQ5QkY2RkIxREJGQjcxRjAwN0E3RDk5IC8qIE1lZGlhS2V5U3lzdGVtTWVkaWFDYXBh
YmlsaXR5LmlkbCAqLywKKwkJCQk5QUNDMDc5NDI1QzcyNUVEMDBEQzYzODYgLyogTWVkaWFLZXlT
eXN0ZW1SZXF1ZXN0LmNwcCAqLywKKwkJCQk5QUNDMDdBNTI1QzgxMERGMDBEQzYzODYgLyogTWVk
aWFLZXlTeXN0ZW1SZXF1ZXN0LmggKi8sCiAJCQkJMkQ5QkY2RkMxREJGQjcxRjAwN0E3RDk5IC8q
IE5hdmlnYXRvcitFTUUuaWRsICovLAogCQkJCTJEOUJGNzQwMURCRkRDMEYwMDdBN0Q5OSAvKiBO
YXZpZ2F0b3JFTUUuY3BwICovLAogCQkJCTJEOUJGNzQxMURCRkRDMEYwMDdBN0Q5OSAvKiBOYXZp
Z2F0b3JFTUUuaCAqLywKQEAgLTMzNzA1LDYgKzMzNzIwLDkgQEAKIAkJCQlDREY0QjcxQTFFMDFE
M0QwMDBFMjM1QTIgLyogTWVkaWFLZXlTZXNzaW9uVHlwZS5pZGwgaW4gSGVhZGVycyAqLywKIAkJ
CQlDREY0QjcyODFFMDNDNTczMDBFMjM1QTIgLyogTWVkaWFLZXlzUmVxdWlyZW1lbnQuaWRsIGlu
IEhlYWRlcnMgKi8sCiAJCQkJQ0RGNEI3MTgxRTAxQ0I5MTAwRTIzNUEyIC8qIE1lZGlhS2V5c1Jl
c3RyaWN0aW9ucy5oIGluIEhlYWRlcnMgKi8sCisJCQkJOUFDQzA3QTgyNUM4MTEwRDAwREM2Mzg2
IC8qIE1lZGlhS2V5U3lzdGVtQ2xpZW50LmggaW4gSGVhZGVycyAqLywKKwkJCQk5QUNDMDdBRjI1
QzgxNDFEMDBEQzYzODYgLyogTWVkaWFLZXlTeXN0ZW1Db250cm9sbGVyLmggaW4gSGVhZGVycyAq
LywKKwkJCQk5QUNDMDdBNjI1QzgxMERGMDBEQzYzODYgLyogTWVkaWFLZXlTeXN0ZW1SZXF1ZXN0
LmggaW4gSGVhZGVycyAqLywKIAkJCQlBOEVBODAwRTBBMTk1MTZFMDBBOEVGNUYgLyogTWVkaWFM
aXN0LmggaW4gSGVhZGVycyAqLywKIAkJCQk1RUJCODkzMTFDNzc3N0ZGMDBDNjVENDEgLyogTWVk
aWFQYXlsb2FkLmggaW4gSGVhZGVycyAqLywKIAkJCQkwN0UzREZEMTFBOUU3ODY1MDA3NjRDQTgg
LyogTWVkaWFQbGF5YmFja1RhcmdldC5oIGluIEhlYWRlcnMgKi8sCkBAIC0zNjA1OSw2ICszNjA3
Nyw4IEBACiAJCQkJMkQ5QkY3NDUxREJGREM0NDAwN0E3RDk5IC8qIE1lZGlhS2V5U2Vzc2lvbi5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQkyRDlCRjc0NDFEQkZEQzQxMDA3QTdEOTkgLyogTWVkaWFL
ZXlTdGF0dXNNYXAuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMkQ5QkY3NDMxREJGREMzRTAwN0E3
RDk5IC8qIE1lZGlhS2V5U3lzdGVtQWNjZXNzLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTlBQ0Mw
Nzk4MjVDNzI2NzcwMERDNjM4NiAvKiBNZWRpYUtleVN5c3RlbUNvbnRyb2xsZXIuY3BwIGluIFNv
dXJjZXMgKi8sCisJCQkJOUFDQzA3OTYyNUM3MjVFRTAwREM2Mzg2IC8qIE1lZGlhS2V5U3lzdGVt
UmVxdWVzdC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwNzFFNDk2RTFBRDVBQTBEMDA4QTUwQjQg
LyogTWVkaWFQbGF5YmFja1RhcmdldENvY29hLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJMDc4RTQz
REUxQUJCNkY2RjAwMUMyRkE2IC8qIE1lZGlhUGxheWJhY2tUYXJnZXRQaWNrZXJNYWMubW0gaW4g
U291cmNlcyAqLywKIAkJCQkwNzJDOEIxMTEzMUM1MTg2MDBBNEZDRTkgLyogTWVkaWFQbGF5ZXJQ
cml2YXRlQVZGb3VuZGF0aW9uLmNwcCBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9XZWJLaXQvQ01ha2VMaXN0cy50eHQKaW5k
ZXggY2JjYThkMzM4OGM1ODI5Yjc0MjcyMmU3NDk5ZjkzNjlmYjNjMzA4NS4uNDZlYzBjNTRjYzQ0
ZDFiM2JiZGNlMDk2MmYyNzEzMDU4MDVhODcyOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9D
TWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvV2ViS2l0L0NNYWtlTGlzdHMudHh0CkBAIC03NSw2
ICs3NSw3IEBAIHNldChXZWJLaXRfSU5DTFVERV9ESVJFQ1RPUklFUwogICAgICIke1dFQktJVF9E
SVJ9L1dlYlByb2Nlc3MvQ2FjaGUiCiAgICAgIiR7V0VCS0lUX0RJUn0vV2ViUHJvY2Vzcy9EYXRh
YmFzZXMiCiAgICAgIiR7V0VCS0lUX0RJUn0vV2ViUHJvY2Vzcy9EYXRhYmFzZXMvSW5kZXhlZERC
IgorICAgICIke1dFQktJVF9ESVJ9L1dlYlByb2Nlc3MvRW5jcnlwdGVkTWVkaWEiCiAgICAgIiR7
V0VCS0lUX0RJUn0vV2ViUHJvY2Vzcy9GaWxlQVBJIgogICAgICIke1dFQktJVF9ESVJ9L1dlYlBy
b2Nlc3MvRnVsbFNjcmVlbiIKICAgICAiJHtXRUJLSVRfRElSfS9XZWJQcm9jZXNzL0dhbWVwYWQi
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0hlYWRlcnMuY21ha2UgYi9Tb3VyY2UvV2ViS2l0
L0hlYWRlcnMuY21ha2UKaW5kZXggMjEzMDRkYTMwZDc4ODI1NDM2NTIyN2FhNmIzNmYwZTc2ZjY5
MGVmNC4uMzQ2YzhhNjNhN2I3YWU0OTdhMWJlZTI0ZDdmODA4YjBmYThjZTRhMyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9IZWFkZXJzLmNtYWtlCisrKyBiL1NvdXJjZS9XZWJLaXQvSGVhZGVy
cy5jbWFrZQpAQCAtNjIsNiArNjIsNyBAQCBzZXQoV2ViS2l0X1BVQkxJQ19GUkFNRVdPUktfSEVB
REVSUwogICAgIFVJUHJvY2Vzcy9BUEkvQy9XS0ljb25EYXRhYmFzZS5oCiAgICAgVUlQcm9jZXNz
L0FQSS9DL1dLSW5zcGVjdG9yLmgKICAgICBVSVByb2Nlc3MvQVBJL0MvV0tMYXlvdXRNb2RlLmgK
KyAgICBVSVByb2Nlc3MvQVBJL0MvV0tNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25DYWxsYmFjay5o
CiAgICAgVUlQcm9jZXNzL0FQSS9DL1dLTWVzc2FnZUxpc3RlbmVyLmgKICAgICBVSVByb2Nlc3Mv
QVBJL0MvV0tNb2NrRGlzcGxheS5oCiAgICAgVUlQcm9jZXNzL0FQSS9DL1dLTW9ja01lZGlhRGV2
aWNlLmgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vTG9nZ2luZy5oIGIvU291
cmNlL1dlYktpdC9QbGF0Zm9ybS9Mb2dnaW5nLmgKaW5kZXggZjQ5ZjM4YjZhNWY5ZDNkNzA5NTJk
MmUxMjFjODk5NWRlY2U5OGVhYS4uMDY2ZjA2NWZlM2UzYWVjNGEwNzk4NjgxOTNkYWU4YTBiMDc3
NzViOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9Mb2dnaW5nLmgKKysrIGIv
U291cmNlL1dlYktpdC9QbGF0Zm9ybS9Mb2dnaW5nLmgKQEAgLTUyLDYgKzUyLDcgQEAgZXh0ZXJu
ICJDIiB7CiAgICAgTShDb250ZXh0TWVudSkgXAogICAgIE0oRGlza1BlcnNpc3RlbmN5KSBcCiAg
ICAgTShEcmFnQW5kRHJvcCkgXAorICAgIE0oRU1FKSBcCiAgICAgTShGdWxsc2NyZWVuKSBcCiAg
ICAgTShHYW1lcGFkKSBcCiAgICAgTShJUEMpIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
U2hhcmVkL0FQSS9BUElPYmplY3QuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0FQSS9BUElPYmpl
Y3QuaAppbmRleCAwNTU2OTM0M2EwZGMzYWFkNmMyZDMzNDAzZThlMjliYTg2ZmU0Y2FiLi40NmM3
NzNlZTM4Y2QzMDY3NWI2ZThiMTYyNWY5NzUzMDc5M2IxNmJiIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1NoYXJlZC9BUEkvQVBJT2JqZWN0LmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQv
QVBJL0FQSU9iamVjdC5oCkBAIC0xODksNiArMTg5LDggQEAgcHVibGljOgogICAgICAgICBXZWJB
dXRoZW50aWNhdGlvblBhbmVsLAogI2VuZGlmCiAKKyAgICAgICAgTWVkaWFLZXlTeXN0ZW1QZXJt
aXNzaW9uQ2FsbGJhY2ssCisKICAgICAgICAgLy8gQnVuZGxlIHR5cGVzCiAgICAgICAgIEJ1bmRs
ZSwKICAgICAgICAgQnVuZGxlQmFja0ZvcndhcmRMaXN0LApAQCAtNDM4LDYgKzQ0MCw4IEBAIHRl
bXBsYXRlPD4gc3RydWN0IEVudW1UcmFpdHM8QVBJOjpPYmplY3Q6OlR5cGU+IHsKICAgICAgICAg
QVBJOjpPYmplY3Q6OlR5cGU6OldlYkF1dGhlbnRpY2F0aW9uUGFuZWwsCiAjZW5kaWYKIAorICAg
ICAgICBBUEk6Ok9iamVjdDo6VHlwZTo6TWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uQ2FsbGJhY2ss
CisKICAgICAgICAgLy8gQnVuZGxlIHR5cGVzCiAgICAgICAgIEFQSTo6T2JqZWN0OjpUeXBlOjpC
dW5kbGUsCiAgICAgICAgIEFQSTo6T2JqZWN0OjpUeXBlOjpCdW5kbGVCYWNrRm9yd2FyZExpc3Qs
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BUEkvYy9XS0Jhc2UuaCBiL1NvdXJj
ZS9XZWJLaXQvU2hhcmVkL0FQSS9jL1dLQmFzZS5oCmluZGV4IDg0ZWU2YzI4OGY2ZDJlYmQ1MWZh
NzNlYTcyNzA4ZjMyOTQ2YmRkODUuLjdjOGJkMjM5MjRjNGFiNzExNTRmNWNhYzdlNzNjYzczZDM5
NDU4YzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0FQSS9jL1dLQmFzZS5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0FQSS9jL1dLQmFzZS5oCkBAIC0xNDIsNiArMTQyLDgg
QEAgdHlwZWRlZiBjb25zdCBzdHJ1Y3QgT3BhcXVlV0tXZWJzaXRlRGF0YVN0b3JlKiBXS1dlYnNp
dGVEYXRhU3RvcmVSZWY7CiB0eXBlZGVmIGNvbnN0IHN0cnVjdCBPcGFxdWVXS1dlYnNpdGVQb2xp
Y2llcyogV0tXZWJzaXRlUG9saWNpZXNSZWY7CiB0eXBlZGVmIGNvbnN0IHN0cnVjdCBPcGFxdWVX
S1dpbmRvd0ZlYXR1cmVzKiBXS1dpbmRvd0ZlYXR1cmVzUmVmOwogdHlwZWRlZiBjb25zdCBzdHJ1
Y3QgT3BhcXVlV0tTcGVlY2hSZWNvZ25pdGlvblBlcm1pc3Npb25DYWxsYmFjayogV0tTcGVlY2hS
ZWNvZ25pdGlvblBlcm1pc3Npb25DYWxsYmFja1JlZjsKK3R5cGVkZWYgY29uc3Qgc3RydWN0IE9w
YXF1ZVdLTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdCogV0tNZWRpYUtleVN5c3RlbVBl
cm1pc3Npb25SZXF1ZXN0UmVmOwordHlwZWRlZiBjb25zdCBzdHJ1Y3QgT3BhcXVlV0tNZWRpYUtl
eVN5c3RlbVBlcm1pc3Npb25DYWxsYmFjayogV0tNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25DYWxs
YmFja1JlZjsKIAogLyogV2ViS2l0MiBCdW5kbGUgdHlwZXMgKi8KIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9Tb3VyY2VzLnR4dCBiL1NvdXJjZS9XZWJLaXQvU291cmNlcy50eHQKaW5kZXgg
NmQ0ZWE1MzQ4YzdkYWVmNzUxMDM4OTBiNTA5YzA3MjA5OTMxYTMxNC4uMDBhYjE5ZDQ2ZGRlNGFk
YTIwZDI5M2ZlODNjMjc5MGFlY2M2MDM5MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9Tb3Vy
Y2VzLnR4dAorKysgYi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0CkBAIC0yODYsNiArMjg2LDgg
QEAgVUlQcm9jZXNzL0ZyYW1lTG9hZFN0YXRlLmNwcAogVUlQcm9jZXNzL0dlb2xvY2F0aW9uUGVy
bWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuY3BwCiBVSVByb2Nlc3MvR2VvbG9jYXRpb25QZXJt
aXNzaW9uUmVxdWVzdFByb3h5LmNwcAogVUlQcm9jZXNzL0xlZ2FjeUdsb2JhbFNldHRpbmdzLmNw
cAorVUlQcm9jZXNzL01lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHku
Y3BwCitVSVByb2Nlc3MvTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdFByb3h5LmNwcAog
VUlQcm9jZXNzL1BhZ2VMb2FkU3RhdGUuY3BwCiBVSVByb2Nlc3MvUHJvY2Vzc0Fzc2VydGlvbi5j
cHAKIFVJUHJvY2Vzcy9Qcm9jZXNzVGhyb3R0bGVyLmNwcApAQCAtMzkyLDYgKzM5NCw3IEBAIFVJ
UHJvY2Vzcy9BUEkvQy9XS0hpdFRlc3RSZXN1bHQuY3BwCiBVSVByb2Nlc3MvQVBJL0MvV0tJY29u
RGF0YWJhc2UuY3BwCiBVSVByb2Nlc3MvQVBJL0MvV0tJbnNwZWN0b3IuY3BwCiBVSVByb2Nlc3Mv
QVBJL0MvV0tLZXlWYWx1ZVN0b3JhZ2VNYW5hZ2VyLmNwcAorVUlQcm9jZXNzL0FQSS9DL1dLTWVk
aWFLZXlTeXN0ZW1QZXJtaXNzaW9uQ2FsbGJhY2suY3BwCiBVSVByb2Nlc3MvQVBJL0MvV0tNZXNz
YWdlTGlzdGVuZXIuY3BwCiBVSVByb2Nlc3MvQVBJL0MvV0tNb2NrRGlzcGxheS5jcHAKIFVJUHJv
Y2Vzcy9BUEkvQy9XS01vY2tNZWRpYURldmljZS5jcHAKQEAgLTUxMiw2ICs1MTUsOCBAQCBXZWJQ
cm9jZXNzL0RhdGFiYXNlcy9XZWJEYXRhYmFzZVByb3ZpZGVyLmNwcAogCiBXZWJQcm9jZXNzL0Rh
dGFiYXNlcy9JbmRleGVkREIvV2ViSURCQ29ubmVjdGlvblRvU2VydmVyLmNwcAogCitXZWJQcm9j
ZXNzL0VuY3J5cHRlZE1lZGlhL01lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RNYW5hZ2Vy
LmNwcAorCiBXZWJQcm9jZXNzL0ZpbGVBUEkvQmxvYlJlZ2lzdHJ5UHJveHkuY3BwCiAKIFdlYlBy
b2Nlc3MvRnVsbFNjcmVlbi9XZWJGdWxsU2NyZWVuTWFuYWdlci5jcHAKQEAgLTY2Niw2ICs2NzEs
NyBAQCBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkRyYWdDbGllbnQuY3BwCiBXZWJQcm9j
ZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5jcHAKIFdlYlByb2Nlc3MvV2ViQ29y
ZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwCiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L1dlYkdlb2xvY2F0aW9uQ2xpZW50LmNwcAorV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9X
ZWJNZWRpYUtleVN5c3RlbUNsaWVudC5jcHAKIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2Vi
TWVzc2FnZVBvcnRDaGFubmVsUHJvdmlkZXIuY3BwCiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0
L1dlYk5vdGlmaWNhdGlvbkNsaWVudC5jcHAKIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2Vi
UGVyZm9ybWFuY2VMb2dnaW5nQ2xpZW50LmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL0FQSVVJQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
QVBJVUlDbGllbnQuaAppbmRleCBiMTdiNWExOTYyYmM5ZmRlNmJmOGYwNTVkNGI0YWU5ZTE3ZWI4
NGRlLi4xNjM2N2U2Y2FjODI1YWE5Yzc0ZmI0YzQ4NDNkZDJmMWZmMWRhZDM4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJVUlDbGllbnQuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJVUlDbGllbnQuaApAQCAtMjA1LDYgKzIwNSw5IEBAIHB1
YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgZGlkRGlzYWJsZUluc3BlY3RvckJyb3dzZXJEb21haW4o
V2ViS2l0OjpXZWJQYWdlUHJveHkmKSB7IH0KIAogICAgIHZpcnR1YWwgdm9pZCBkZWNpZGVQb2xp
Y3lGb3JTcGVlY2hSZWNvZ25pdGlvblBlcm1pc3Npb25SZXF1ZXN0KFdlYktpdDo6V2ViUGFnZVBy
b3h5JiBwYWdlLCBBUEk6OlNlY3VyaXR5T3JpZ2luJiBvcmlnaW4sIENvbXBsZXRpb25IYW5kbGVy
PHZvaWQoYm9vbCk+JiYgY29tcGxldGlvbkhhbmRsZXIpIHsgcGFnZS5yZXF1ZXN0U3BlZWNoUmVj
b2duaXRpb25QZXJtaXNzaW9uQnlEZWZhdWx0QWN0aW9uKG9yaWdpbi5zZWN1cml0eU9yaWdpbigp
LCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7IH0KKworICAgIHZpcnR1YWwgdm9pZCBkZWNp
ZGVQb2xpY3lGb3JNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0KFdlYktpdDo6V2ViUGFn
ZVByb3h5JiBwYWdlLCBBUEk6OlNlY3VyaXR5T3JpZ2luJiBvcmlnaW4sIGNvbnN0IFdURjo6U3Ry
aW5nJiBrZXlTeXN0ZW0sIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYgY29tcGxldGlv
bkhhbmRsZXIpIHsgcGFnZS5yZXF1ZXN0TWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uQnlEZWZhdWx0
QWN0aW9uKG9yaWdpbi5zZWN1cml0eU9yaWdpbigpLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVy
KSk7IH0KKwogfTsKIAogfSAvLyBuYW1lc3BhY2UgQVBJCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvQy9XS0FQSUNhc3QuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9DL1dLQVBJQ2FzdC5oCmluZGV4IGNjOWNmNTk1N2VhMzBkNmFjZjA0NjhkZTcwMTc5OGE2
ZjQxODExNGEuLmM4YTE4OTVhNmQwZGU3MDlmOWFlMzk4YmU0NWJlYTY2YjllYmZhMGQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLQVBJQ2FzdC5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLQVBJQ2FzdC5oCkBAIC03OCw2ICs3OCw3IEBA
IGNsYXNzIEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlUHJveHk7CiBjbGFzcyBBdXRoZW50aWNhdGlv
bkRlY2lzaW9uTGlzdGVuZXI7CiBjbGFzcyBEb3dubG9hZFByb3h5OwogY2xhc3MgR2VvbG9jYXRp
b25QZXJtaXNzaW9uUmVxdWVzdDsKK2NsYXNzIE1lZGlhS2V5U3lzdGVtUGVybWlzc2lvbkNhbGxi
YWNrOwogY2xhc3MgTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3Q7CiBjbGFzcyBTcGVlY2hS
ZWNvZ25pdGlvblBlcm1pc3Npb25DYWxsYmFjazsKIGNsYXNzIFVzZXJNZWRpYVBlcm1pc3Npb25D
aGVja1Byb3h5OwpAQCAtMTM1LDYgKzEzNiw3IEBAIFdLX0FERF9BUElfTUFQUElORyhXS0hUVFBD
b29raWVTdG9yZVJlZiwgQVBJOjpIVFRQQ29va2llU3RvcmUpCiBXS19BRERfQVBJX01BUFBJTkco
V0tIaXRUZXN0UmVzdWx0UmVmLCBBUEk6OkhpdFRlc3RSZXN1bHQpCiBXS19BRERfQVBJX01BUFBJ
TkcoV0tJY29uRGF0YWJhc2VSZWYsIFdlYkljb25EYXRhYmFzZSkKIFdLX0FERF9BUElfTUFQUElO
RyhXS0luc3BlY3RvclJlZiwgV2ViSW5zcGVjdG9yUHJveHkpCitXS19BRERfQVBJX01BUFBJTkco
V0tNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25DYWxsYmFja1JlZiwgTWVkaWFLZXlTeXN0ZW1QZXJt
aXNzaW9uQ2FsbGJhY2spCiBXS19BRERfQVBJX01BUFBJTkcoV0tNZXNzYWdlTGlzdGVuZXJSZWYs
IEFQSTo6TWVzc2FnZUxpc3RlbmVyKQogV0tfQUREX0FQSV9NQVBQSU5HKFdLTmF2aWdhdGlvbkFj
dGlvblJlZiwgQVBJOjpOYXZpZ2F0aW9uQWN0aW9uKQogV0tfQUREX0FQSV9NQVBQSU5HKFdLTmF2
aWdhdGlvbkRhdGFSZWYsIEFQSTo6TmF2aWdhdGlvbkRhdGEpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS01lZGlhS2V5U3lzdGVtUGVybWlzc2lvbkNhbGxiYWNr
LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLTWVkaWFLZXlTeXN0ZW1QZXJt
aXNzaW9uQ2FsbGJhY2suY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmFhYTczMjRiYmMyYWIzNzI1N2RhODNhYmJj
MzQwNzE0YmE3ZTA1MzAKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvQy9XS01lZGlhS2V5U3lzdGVtUGVybWlzc2lvbkNhbGxiYWNrLmNwcApAQCAtMCwwICsx
LDQyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIElnYWxpYSBTLkwuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09O
VFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
IElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICog
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisK
KyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJXS01lZGlhS2V5U3lzdGVtUGVybWlzc2lv
bkNhbGxiYWNrLmgiCisKKyNpbmNsdWRlICJNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0
LmgiCisjaW5jbHVkZSAiV0tBUElDYXN0LmgiCisKK3VzaW5nIG5hbWVzcGFjZSBXZWJLaXQ7CisK
K1dLVHlwZUlEIFdLTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uQ2FsbGJhY2tHZXRUeXBlSUQoKQor
eworICAgIHJldHVybiB0b0FQSShNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25DYWxsYmFjazo6QVBJ
VHlwZSk7Cit9CisKK3ZvaWQgV0tNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25DYWxsYmFja0NvbXBs
ZXRlKFdLTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uQ2FsbGJhY2tSZWYgcGVybWlzc2lvbkNhbGxi
YWNrLCBib29sIGdyYW50ZWQpCit7CisgICAgcmV0dXJuIHRvSW1wbChwZXJtaXNzaW9uQ2FsbGJh
Y2spLT5jb21wbGV0ZShncmFudGVkKTsKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9DL1dLTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uQ2FsbGJhY2suaCBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uQ2FsbGJh
Y2suaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi5mNWQzNjgzN2VmYTY5YTRiMDZkZjEzMjEyMmZhZjZhMGExZjUyMDc4
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tNZWRp
YUtleVN5c3RlbVBlcm1pc3Npb25DYWxsYmFjay5oCkBAIC0wLDAgKzEsNDAgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMjEgSWdhbGlhIFMuTC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJ
UycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9S
UworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwor
ICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisg
KiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisK
KyNpbmNsdWRlIDxXZWJLaXQvV0tCYXNlLmg+CisKKyNpZmRlZiBfX2NwbHVzcGx1cworZXh0ZXJu
ICJDIiB7CisjZW5kaWYKKworV0tfRVhQT1JUIFdLVHlwZUlEIFdLTWVkaWFLZXlTeXN0ZW1QZXJt
aXNzaW9uQ2FsbGJhY2tHZXRUeXBlSUQodm9pZCk7CisKK1dLX0VYUE9SVCB2b2lkIFdLTWVkaWFL
ZXlTeXN0ZW1QZXJtaXNzaW9uQ2FsbGJhY2tDb21wbGV0ZShXS01lZGlhS2V5U3lzdGVtUGVybWlz
c2lvbkNhbGxiYWNrUmVmIHBlcm1pc3Npb25DYWxsYmFjaywgYm9vbCBncmFudGVkKTsKKworI2lm
ZGVmIF9fY3BsdXNwbHVzCit9CisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9DL1dLUGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9X
S1BhZ2UuY3BwCmluZGV4IDc0NDNmNzBmOTU3NTgzNmQ4NDNkYTU0Yzg0ODE1MDljOWQ4YzRkZWMu
LmMzOWU3MmYwNzEyY2JhYzBiZWJhZmYwYjAyZTg0NTczYWMxNmY5MTQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmNwcApAQCAtNTgsNiArNTgsNyBAQAogI2luY2x1ZGUg
IkRvd25sb2FkUHJveHkuaCIKICNpbmNsdWRlICJMZWdhY3lTZXNzaW9uU3RhdGVDb2RpbmcuaCIK
ICNpbmNsdWRlICJMb2dnaW5nLmgiCisjaW5jbHVkZSAiTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9u
UmVxdWVzdC5oIgogI2luY2x1ZGUgIk5hdGl2ZVdlYktleWJvYXJkRXZlbnQuaCIKICNpbmNsdWRl
ICJOYXRpdmVXZWJXaGVlbEV2ZW50LmgiCiAjaW5jbHVkZSAiTmF2aWdhdGlvbkFjdGlvbkRhdGEu
aCIKQEAgLTExNyw3ICsxMTgsNyBAQCB0ZW1wbGF0ZTw+IHN0cnVjdCBDbGllbnRUcmFpdHM8V0tQ
YWdlUG9saWN5Q2xpZW50QmFzZT4gewogfTsKIAogdGVtcGxhdGU8PiBzdHJ1Y3QgQ2xpZW50VHJh
aXRzPFdLUGFnZVVJQ2xpZW50QmFzZT4gewotICAgIHR5cGVkZWYgc3RkOjp0dXBsZTxXS1BhZ2VV
SUNsaWVudFYwLCBXS1BhZ2VVSUNsaWVudFYxLCBXS1BhZ2VVSUNsaWVudFYyLCBXS1BhZ2VVSUNs
aWVudFYzLCBXS1BhZ2VVSUNsaWVudFY0LCBXS1BhZ2VVSUNsaWVudFY1LCBXS1BhZ2VVSUNsaWVu
dFY2LCBXS1BhZ2VVSUNsaWVudFY3LCBXS1BhZ2VVSUNsaWVudFY4LCBXS1BhZ2VVSUNsaWVudFY5
LCBXS1BhZ2VVSUNsaWVudFYxMCwgV0tQYWdlVUlDbGllbnRWMTEsIFdLUGFnZVVJQ2xpZW50VjEy
LCBXS1BhZ2VVSUNsaWVudFYxMywgV0tQYWdlVUlDbGllbnRWMTQsIFdLUGFnZVVJQ2xpZW50VjE1
PiBWZXJzaW9uczsKKyAgICB0eXBlZGVmIHN0ZDo6dHVwbGU8V0tQYWdlVUlDbGllbnRWMCwgV0tQ
YWdlVUlDbGllbnRWMSwgV0tQYWdlVUlDbGllbnRWMiwgV0tQYWdlVUlDbGllbnRWMywgV0tQYWdl
VUlDbGllbnRWNCwgV0tQYWdlVUlDbGllbnRWNSwgV0tQYWdlVUlDbGllbnRWNiwgV0tQYWdlVUlD
bGllbnRWNywgV0tQYWdlVUlDbGllbnRWOCwgV0tQYWdlVUlDbGllbnRWOSwgV0tQYWdlVUlDbGll
bnRWMTAsIFdLUGFnZVVJQ2xpZW50VjExLCBXS1BhZ2VVSUNsaWVudFYxMiwgV0tQYWdlVUlDbGll
bnRWMTMsIFdLUGFnZVVJQ2xpZW50VjE0LCBXS1BhZ2VVSUNsaWVudFYxNSwgV0tQYWdlVUlDbGll
bnRWMTY+IFZlcnNpb25zOwogfTsKIAogI2lmIEVOQUJMRShDT05URVhUX01FTlVTKQpAQCAtMjEx
OSw2ICsyMTIwLDE2IEBAIHZvaWQgV0tQYWdlU2V0UGFnZVVJQ2xpZW50KFdLUGFnZVJlZiBwYWdl
UmVmLCBjb25zdCBXS1BhZ2VVSUNsaWVudEJhc2UqIHdrQ2xpZW50CiAKICAgICAgICAgICAgIG1f
Y2xpZW50LmRlY2lkZVBvbGljeUZvclNwZWVjaFJlY29nbml0aW9uUGVybWlzc2lvblJlcXVlc3Qo
dG9BUEkoJnBhZ2UpLCB0b0FQSSgmb3JpZ2luKSwgdG9BUEkoU3BlZWNoUmVjb2duaXRpb25QZXJt
aXNzaW9uQ2FsbGJhY2s6OmNyZWF0ZShXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSkucHRyKCkp
KTsKICAgICAgICAgfQorCisgICAgICAgIHZvaWQgZGVjaWRlUG9saWN5Rm9yTWVkaWFLZXlTeXN0
ZW1QZXJtaXNzaW9uUmVxdWVzdChXZWJQYWdlUHJveHkmIHBhZ2UsIEFQSTo6U2VjdXJpdHlPcmln
aW4mIG9yaWdpbiwgY29uc3QgU3RyaW5nJiBrZXlTeXN0ZW0sIENvbXBsZXRpb25IYW5kbGVyPHZv
aWQoYm9vbCk+JiYgY29tcGxldGlvbkhhbmRsZXIpIGZpbmFsCisgICAgICAgIHsKKyAgICAgICAg
ICAgIGlmICghbV9jbGllbnQuZGVjaWRlUG9saWN5Rm9yTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9u
UmVxdWVzdCkgeworICAgICAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKGZhbHNlKTsKKyAg
ICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIG1fY2xp
ZW50LmRlY2lkZVBvbGljeUZvck1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3QodG9BUEko
JnBhZ2UpLCB0b0FQSSgmb3JpZ2luKSwgdG9BUEkoQVBJOjpTdHJpbmc6OmNyZWF0ZShrZXlTeXN0
ZW0pLnB0cigpKSwgdG9BUEkoTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uQ2FsbGJhY2s6OmNyZWF0
ZShXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSkucHRyKCkpKTsKKyAgICAgICAgfQogICAgIH07
CiAKICAgICB0b0ltcGwocGFnZVJlZiktPnNldFVJQ2xpZW50KG1ha2VVbmlxdWU8VUlDbGllbnQ+
KHdrQ2xpZW50KSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9X
S1BhZ2VVSUNsaWVudC5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlVUlD
bGllbnQuaAppbmRleCA2MzYzNTU1NjRkMDBiMTEyMmE4N2UyMjlhMzBiOTRkN2U5OWU0ZWY5Li4z
ZDMxNWJlNjEzNDhkZDdkMjQ2N2JhYTk0ZGVhNGFlNzExYzI3ODAzIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2VVSUNsaWVudC5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZVVJQ2xpZW50LmgKQEAgLTEzOCw4ICsxMzgsMTAg
QEAgdHlwZWRlZiBib29sICgqV0tQYWdlU2hvdWxkQWxsb3dEZXZpY2VPcmllbnRhdGlvbkFuZE1v
dGlvbkFjY2Vzc0NhbGxiYWNrKShXS1BhZ2UKIHR5cGVkZWYgdm9pZCAoKldLUGFnZVJ1bldlYkF1
dGhlbnRpY2F0aW9uUGFuZWxDYWxsYmFjaykoKTsKIHR5cGVkZWYgdm9pZCAoKldLUGFnZURlY2lk
ZVBvbGljeUZvclNwZWVjaFJlY29nbml0aW9uUGVybWlzc2lvblJlcXVlc3RDYWxsYmFjaykoV0tQ
YWdlUmVmIHBhZ2UsIFdLU2VjdXJpdHlPcmlnaW5SZWYgdG9wT3JpZ2luLCBXS1NwZWVjaFJlY29n
bml0aW9uUGVybWlzc2lvbkNhbGxiYWNrUmVmIGNhbGxiYWNrKTsKIAordHlwZWRlZiB2b2lkICgq
V0tQYWdlRGVjaWRlUG9saWN5Rm9yTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdENhbGxi
YWNrKShXS1BhZ2VSZWYgcGFnZSwgV0tTZWN1cml0eU9yaWdpblJlZiB0b3BPcmlnaW4sIFdLU3Ry
aW5nUmVmIGtleVN5c3RlbSwgV0tNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25DYWxsYmFja1JlZiBj
YWxsYmFjayk7CisKIC8vIERlcHJlY2F0ZWQKLXR5cGVkZWYgV0tQYWdlUmVmICgqV0tQYWdlQ3Jl
YXRlTmV3UGFnZUNhbGxiYWNrX2RlcHJlY2F0ZWRGb3JVc2VXaXRoVjApKFdLUGFnZVJlZiBwYWdl
LCBXS0RpY3Rpb25hcnlSZWYgZmVhdHVyZXMsIFdLRXZlbnRNb2RpZmllcnMgbW9kaWZpZXJzLCBX
S0V2ZW50TW91c2VCdXR0b24gbW91c2VCdXR0b24sIGNvbnN0IHZvaWQgKmNsaWVudEluZm8pOwor
dHlwZWRlZiBXS1BhZ2VSZWYgKCpXS1BhZ2VDcmVhdGVOZXdQYWdlQ2FsbGJhY2tfZGVwcmVjYXRl
ZEZvclVzZVdpdGhWMCkoV0tQYWdlUmVmIHBhZ2UsIFdLRGljdGlvbmFyeVJlZiBmZWF0dXJlcywg
V0tFdmVudE1vZGlmaWVycyBtb2RpZmllcnMsIFdLRXZlbnRNb3VzZUJ1dHRvbiBtb3VzZUJ1dHRv
biwgY29uc3Qgdm9pZCogY2xpZW50SW5mbyk7CiB0eXBlZGVmIHZvaWQgICAgICAoKldLUGFnZU1v
dXNlRGlkTW92ZU92ZXJFbGVtZW50Q2FsbGJhY2tfZGVwcmVjYXRlZEZvclVzZVdpdGhWMCkoV0tQ
YWdlUmVmIHBhZ2UsIFdLRXZlbnRNb2RpZmllcnMgbW9kaWZpZXJzLCBXS1R5cGVSZWYgdXNlckRh
dGEsIGNvbnN0IHZvaWQgKmNsaWVudEluZm8pOwogdHlwZWRlZiB2b2lkICgqV0tQYWdlTWlzc2lu
Z1BsdWdpbkJ1dHRvbkNsaWNrZWRDYWxsYmFja19kZXByZWNhdGVkRm9yVXNlV2l0aFYwKShXS1Bh
Z2VSZWYgcGFnZSwgV0tTdHJpbmdSZWYgbWltZVR5cGUsIFdLU3RyaW5nUmVmIHVybCwgV0tTdHJp
bmdSZWYgcGx1Z2luc1BhZ2VVUkwsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pOwogdHlwZWRlZiB2
b2lkICgqV0tQYWdlVW5hdmFpbGFibGVQbHVnaW5CdXR0b25DbGlja2VkQ2FsbGJhY2tfZGVwcmVj
YXRlZEZvclVzZVdpdGhWMSkoV0tQYWdlUmVmIHBhZ2UsIFdLUGx1Z2luVW5hdmFpbGFiaWxpdHlS
ZWFzb24gcGx1Z2luVW5hdmFpbGFiaWxpdHlSZWFzb24sIFdLU3RyaW5nUmVmIG1pbWVUeXBlLCBX
S1N0cmluZ1JlZiB1cmwsIFdLU3RyaW5nUmVmIHBsdWdpbnNQYWdlVVJMLCBjb25zdCB2b2lkKiBj
bGllbnRJbmZvKTsKQEAgLTE0NjUsNiArMTQ2NywxMjEgQEAgdHlwZWRlZiBzdHJ1Y3QgV0tQYWdl
VUlDbGllbnRWMTUgewogICAgIAogfSBXS1BhZ2VVSUNsaWVudFYxNTsKIAordHlwZWRlZiBzdHJ1
Y3QgV0tQYWdlVUlDbGllbnRWMTYgeworICAgIFdLUGFnZVVJQ2xpZW50QmFzZSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmFzZTsKKworICAgIC8vIFZl
cnNpb24gMC4KKyAgICBXS1BhZ2VDcmVhdGVOZXdQYWdlQ2FsbGJhY2tfZGVwcmVjYXRlZEZvclVz
ZVdpdGhWMCAgICAgICAgICAgICAgICAgIGNyZWF0ZU5ld1BhZ2VfZGVwcmVjYXRlZEZvclVzZVdp
dGhWMDsKKyAgICBXS1BhZ2VVSUNsaWVudENhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHNob3dQYWdlOworICAgIFdLUGFnZVVJQ2xpZW50Q2FsbGJh
Y2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xvc2U7Cisg
ICAgV0tQYWdlVGFrZUZvY3VzQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB0YWtlRm9jdXM7CisgICAgV0tQYWdlRm9jdXNDYWxsYmFjayAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb2N1czsKKyAgICBXS1Bh
Z2VVbmZvY3VzQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHVuZm9jdXM7CisgICAgV0tQYWdlUnVuSmF2YVNjcmlwdEFsZXJ0Q2FsbGJhY2tfZGVw
cmVjYXRlZEZvclVzZVdpdGhWMCAgICAgICAgICAgICBydW5KYXZhU2NyaXB0QWxlcnRfZGVwcmVj
YXRlZEZvclVzZVdpdGhWMDsKKyAgICBXS1BhZ2VSdW5KYXZhU2NyaXB0Q29uZmlybUNhbGxiYWNr
X2RlcHJlY2F0ZWRGb3JVc2VXaXRoVjAgICAgICAgICAgIHJ1bkphdmFTY3JpcHRDb25maXJtX2Rl
cHJlY2F0ZWRGb3JVc2VXaXRoVjA7CisgICAgV0tQYWdlUnVuSmF2YVNjcmlwdFByb21wdENhbGxi
YWNrX2RlcHJlY2F0ZWRGb3JVc2VXaXRoVjAgICAgICAgICAgICBydW5KYXZhU2NyaXB0UHJvbXB0
X2RlcHJlY2F0ZWRGb3JVc2VXaXRoVjA7CisgICAgV0tQYWdlU2V0U3RhdHVzVGV4dENhbGxiYWNr
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRTdGF0dXNUZXh0Owor
ICAgIFdLUGFnZU1vdXNlRGlkTW92ZU92ZXJFbGVtZW50Q2FsbGJhY2tfZGVwcmVjYXRlZEZvclVz
ZVdpdGhWMCAgICAgICAgbW91c2VEaWRNb3ZlT3ZlckVsZW1lbnRfZGVwcmVjYXRlZEZvclVzZVdp
dGhWMDsKKyAgICBXS1BhZ2VNaXNzaW5nUGx1Z2luQnV0dG9uQ2xpY2tlZENhbGxiYWNrX2RlcHJl
Y2F0ZWRGb3JVc2VXaXRoVjAgICAgIG1pc3NpbmdQbHVnaW5CdXR0b25DbGlja2VkX2RlcHJlY2F0
ZWRGb3JVc2VXaXRoVjA7CisgICAgV0tQYWdlRGlkTm90SGFuZGxlS2V5RXZlbnRDYWxsYmFjayAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaWROb3RIYW5kbGVLZXlFdmVudDsKKyAg
ICBXS1BhZ2VEaWROb3RIYW5kbGVXaGVlbEV2ZW50Q2FsbGJhY2sgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGRpZE5vdEhhbmRsZVdoZWVsRXZlbnQ7CisgICAgV0tQYWdlR2V0VG9vbGJh
cnNBcmVWaXNpYmxlQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b29s
YmFyc0FyZVZpc2libGU7CisgICAgV0tQYWdlU2V0VG9vbGJhcnNBcmVWaXNpYmxlQ2FsbGJhY2sg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRUb29sYmFyc0FyZVZpc2libGU7Cisg
ICAgV0tQYWdlR2V0TWVudUJhcklzVmlzaWJsZUNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBtZW51QmFySXNWaXNpYmxlOworICAgIFdLUGFnZVNldE1lbnVCYXJJc1Zp
c2libGVDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0TWVudUJh
cklzVmlzaWJsZTsKKyAgICBXS1BhZ2VHZXRTdGF0dXNCYXJJc1Zpc2libGVDYWxsYmFjayAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXR1c0JhcklzVmlzaWJsZTsKKyAgICBXS1Bh
Z2VTZXRTdGF0dXNCYXJJc1Zpc2libGVDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHNldFN0YXR1c0JhcklzVmlzaWJsZTsKKyAgICBXS1BhZ2VHZXRJc1Jlc2l6YWJsZUNh
bGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlzUmVzaXphYmxl
OworICAgIFdLUGFnZVNldElzUmVzaXphYmxlQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgc2V0SXNSZXNpemFibGU7CisgICAgV0tQYWdlR2V0V2luZG93RnJh
bWVDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnZXRXaW5k
b3dGcmFtZTsKKyAgICBXS1BhZ2VTZXRXaW5kb3dGcmFtZUNhbGxiYWNrICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHNldFdpbmRvd0ZyYW1lOworICAgIFdLUGFnZVJ1bkJl
Zm9yZVVubG9hZENvbmZpcm1QYW5lbENhbGxiYWNrX2RlcHJlY2F0ZWRGb3JVc2VXaXRoVjYgICAg
cnVuQmVmb3JlVW5sb2FkQ29uZmlybVBhbmVsX2RlcHJlY2F0ZWRGb3JVc2VXaXRoVjY7CisgICAg
V0tQYWdlVUlDbGllbnRDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBkaWREcmF3OworICAgIFdLUGFnZVVJQ2xpZW50Q2FsbGJhY2sgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFnZURpZFNjcm9sbDsKKyAgICBX
S1BhZ2VFeGNlZWRlZERhdGFiYXNlUXVvdGFDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGV4Y2VlZGVkRGF0YWJhc2VRdW90YTsKKyAgICBXS1BhZ2VSdW5PcGVuUGFuZWxD
YWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJ1bk9wZW5Q
YW5lbDsKKyAgICBXS1BhZ2VEZWNpZGVQb2xpY3lGb3JHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1
ZXN0Q2FsbGJhY2sgICAgICAgICAgIGRlY2lkZVBvbGljeUZvckdlb2xvY2F0aW9uUGVybWlzc2lv
blJlcXVlc3Q7CisgICAgV0tQYWdlSGVhZGVySGVpZ2h0Q2FsbGJhY2sgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBoZWFkZXJIZWlnaHQ7CisgICAgV0tQYWdlRm9vdGVy
SGVpZ2h0Q2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBm
b290ZXJIZWlnaHQ7CisgICAgV0tQYWdlRHJhd0hlYWRlckNhbGxiYWNrICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkcmF3SGVhZGVyOworICAgIFdLUGFnZURyYXdG
b290ZXJDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ZHJhd0Zvb3RlcjsKKyAgICBXS1BhZ2VQcmludEZyYW1lQ2FsbGJhY2sgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByaW50RnJhbWU7CisgICAgV0tQYWdlVUlDbGll
bnRDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBy
dW5Nb2RhbDsKKyAgICB2b2lkKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHVudXNlZDE7IC8vIFVzZWQgdG8gYmUgZGlkQ29tcGxl
dGVSdWJiZXJCYW5kRm9yTWFpbkZyYW1lCisgICAgV0tQYWdlU2F2ZURhdGFUb0ZpbGVJbkRvd25s
b2Fkc0ZvbGRlckNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICBzYXZlRGF0YVRvRmlsZUlu
RG93bmxvYWRzRm9sZGVyOworICAgIHZvaWQqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2hvdWxkSW50ZXJydXB0SmF2YVNjcmlw
dF91bmF2YWlsYWJsZTsKKworICAgIC8vIFZlcnNpb24gMS4KKyAgICBXS1BhZ2VDcmVhdGVOZXdQ
YWdlQ2FsbGJhY2tfZGVwcmVjYXRlZEZvclVzZVdpdGhWMSAgICAgICAgICAgICAgICAgIGNyZWF0
ZU5ld1BhZ2VfZGVwcmVjYXRlZEZvclVzZVdpdGhWMTsKKyAgICBXS1BhZ2VNb3VzZURpZE1vdmVP
dmVyRWxlbWVudENhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1vdXNlRGlk
TW92ZU92ZXJFbGVtZW50OworICAgIFdLUGFnZURlY2lkZVBvbGljeUZvck5vdGlmaWNhdGlvblBl
cm1pc3Npb25SZXF1ZXN0Q2FsbGJhY2sgICAgICAgICAgZGVjaWRlUG9saWN5Rm9yTm90aWZpY2F0
aW9uUGVybWlzc2lvblJlcXVlc3Q7CisgICAgV0tQYWdlVW5hdmFpbGFibGVQbHVnaW5CdXR0b25D
bGlja2VkQ2FsbGJhY2tfZGVwcmVjYXRlZEZvclVzZVdpdGhWMSB1bmF2YWlsYWJsZVBsdWdpbkJ1
dHRvbkNsaWNrZWRfZGVwcmVjYXRlZEZvclVzZVdpdGhWMTsKKworICAgIC8vIFZlcnNpb24gMi4K
KyAgICBXS1BhZ2VTaG93Q29sb3JQaWNrZXJDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHNob3dDb2xvclBpY2tlcjsKKyAgICBXS1BhZ2VIaWRlQ29sb3JQaWNr
ZXJDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhpZGVDb2xv
clBpY2tlcjsKKyAgICBXS1BhZ2VVbmF2YWlsYWJsZVBsdWdpbkJ1dHRvbkNsaWNrZWRDYWxsYmFj
ayAgICAgICAgICAgICAgICAgICAgICAgIHVuYXZhaWxhYmxlUGx1Z2luQnV0dG9uQ2xpY2tlZDsK
KworICAgIC8vIFZlcnNpb24gMy4KKyAgICBXS1BhZ2VQaW5uZWRTdGF0ZURpZENoYW5nZUNhbGxi
YWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBpbm5lZFN0YXRlRGlkQ2hhbmdl
OworCisgICAgLy8gVmVyc2lvbiA0LgorICAgIHZvaWQqICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW51c2VkMjsgLy8gVXNlZCB0
byBiZSBkaWRCZWdpblRyYWNraW5nUG90ZW50aWFsTG9uZ01vdXNlUHJlc3MuCisgICAgdm9pZCog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB1bnVzZWQzOyAvLyBVc2VkIHRvIGJlIGRpZFJlY29nbml6ZUxvbmdNb3VzZVByZXNzLgor
ICAgIHZvaWQqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgdW51c2VkNDsgLy8gVXNlZCB0byBiZSBkaWRDYW5jZWxUcmFja2luZ1Bv
dGVudGlhbExvbmdNb3VzZVByZXNzLgorICAgIFdLUGFnZUlzUGxheWluZ0F1ZGlvRGlkQ2hhbmdl
Q2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXNQbGF5aW5nQXVkaW9EaWRD
aGFuZ2U7CisKKyAgICAvLyBWZXJzaW9uIDUuCisgICAgV0tQYWdlRGVjaWRlUG9saWN5Rm9yVXNl
ck1lZGlhUGVybWlzc2lvblJlcXVlc3RDYWxsYmFjayAgICAgICAgICAgICBkZWNpZGVQb2xpY3lG
b3JVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdDsKKyAgICBXS1BhZ2VEaWRDbGlja0F1dG9GaWxs
QnV0dG9uQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpZENsaWNrQXV0
b0ZpbGxCdXR0b247CisgICAgV0tQYWdlUnVuSmF2YVNjcmlwdEFsZXJ0Q2FsbGJhY2tfZGVwcmVj
YXRlZEZvclVzZVdpdGhWNSAgICAgICAgICAgICBydW5KYXZhU2NyaXB0QWxlcnRfZGVwcmVjYXRl
ZEZvclVzZVdpdGhWNTsKKyAgICBXS1BhZ2VSdW5KYXZhU2NyaXB0Q29uZmlybUNhbGxiYWNrX2Rl
cHJlY2F0ZWRGb3JVc2VXaXRoVjUgICAgICAgICAgIHJ1bkphdmFTY3JpcHRDb25maXJtX2RlcHJl
Y2F0ZWRGb3JVc2VXaXRoVjU7CisgICAgV0tQYWdlUnVuSmF2YVNjcmlwdFByb21wdENhbGxiYWNr
X2RlcHJlY2F0ZWRGb3JVc2VXaXRoVjUgICAgICAgICAgICBydW5KYXZhU2NyaXB0UHJvbXB0X2Rl
cHJlY2F0ZWRGb3JVc2VXaXRoVjU7CisgICAgdm9pZCogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnVzZWQ1OyAvLyBVc2VkIHRv
IGJlIG1lZGlhU2Vzc2lvbk1ldGFkYXRhRGlkQ2hhbmdlLgorCisgICAgLy8gVmVyc2lvbiA2Lgor
ICAgIFdLUGFnZUNyZWF0ZU5ld1BhZ2VDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgY3JlYXRlTmV3UGFnZTsKKyAgICBXS1BhZ2VSdW5KYXZhU2NyaXB0QWxl
cnRDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJ1bkphdmFTY3Jp
cHRBbGVydDsKKyAgICBXS1BhZ2VSdW5KYXZhU2NyaXB0Q29uZmlybUNhbGxiYWNrICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHJ1bkphdmFTY3JpcHRDb25maXJtOworICAgIFdLUGFn
ZVJ1bkphdmFTY3JpcHRQcm9tcHRDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgcnVuSmF2YVNjcmlwdFByb21wdDsKKyAgICBXS0NoZWNrVXNlck1lZGlhUGVybWlzc2lv
bkNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoZWNrVXNlck1lZGlh
UGVybWlzc2lvbkZvck9yaWdpbjsKKworICAgIC8vIFZlcnNpb24gNy4KKyAgICBXS1BhZ2VSdW5C
ZWZvcmVVbmxvYWRDb25maXJtUGFuZWxDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAg
IHJ1bkJlZm9yZVVubG9hZENvbmZpcm1QYW5lbDsKKyAgICBXS0Z1bGxzY3JlZW5NYXlSZXR1cm5U
b0lubGluZUNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZ1bGxzY3JlZW5N
YXlSZXR1cm5Ub0lubGluZTsKKworICAgIC8vIFZlcnNpb24gOC4KKyAgICBXS1JlcXVlc3RQb2lu
dGVyTG9ja0NhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJl
cXVlc3RQb2ludGVyTG9jazsKKyAgICBXS0RpZExvc2VQb2ludGVyTG9ja0NhbGxiYWNrICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpZExvc2VQb2ludGVyTG9jazsKKwor
ICAgIC8vIFZlcnNpb24gOS4KKyAgICBXS0hhbmRsZUF1dG9wbGF5RXZlbnRDYWxsYmFjayAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZUF1dG9wbGF5RXZlbnQ7CisK
KyAgICAvLyBWZXJzaW9uIDEwLgorICAgIFdLSGFzVmlkZW9JblBpY3R1cmVJblBpY3R1cmVEaWRD
aGFuZ2VDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgaGFzVmlkZW9JblBpY3R1cmVJblBp
Y3R1cmVEaWRDaGFuZ2U7CisgICAgV0tEaWRFeGNlZWRCYWNrZ3JvdW5kUmVzb3VyY2VMaW1pdFdo
aWxlSW5Gb3JlZ3JvdW5kQ2FsbGJhY2sgICAgICAgICBkaWRFeGNlZWRCYWNrZ3JvdW5kUmVzb3Vy
Y2VMaW1pdFdoaWxlSW5Gb3JlZ3JvdW5kOworCisgICAgLy8gVmVyc2lvbiAxMS4KKyAgICBXS1Bh
Z2VEaWRSZXNpZ25JbnB1dEVsZW1lbnRTdHJvbmdQYXNzd29yZEFwcGVhcmFuY2VDYWxsYmFjayAg
ICAgICAgIGRpZFJlc2lnbklucHV0RWxlbWVudFN0cm9uZ1Bhc3N3b3JkQXBwZWFyYW5jZTsKKwor
ICAgIC8vIFZlcnNpb24gMTIuCisgICAgV0tQYWdlUmVxdWVzdFN0b3JhZ2VBY2Nlc3NDb25maXJt
Q2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0U3RvcmFnZUFjY2Vzc0Nv
bmZpcm07CisKKyAgICAvLyBWZXJzaW9uIDEzLgorICAgIFdLUGFnZVNob3VsZEFsbG93RGV2aWNl
T3JpZW50YXRpb25BbmRNb3Rpb25BY2Nlc3NDYWxsYmFjayAgICAgICAgICAgc2hvdWxkQWxsb3dE
ZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvbkFjY2VzczsKKworICAgIC8vIFZlcnNpb24gMTQuCisg
ICAgV0tQYWdlUnVuV2ViQXV0aGVudGljYXRpb25QYW5lbENhbGxiYWNrICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBydW5XZWJBdXRoZW50aWNhdGlvblBhbmVsOworCisgICAgLy8gVmVyc2lv
biAxNS4KKyAgICBXS1BhZ2VEZWNpZGVQb2xpY3lGb3JTcGVlY2hSZWNvZ25pdGlvblBlcm1pc3Np
b25SZXF1ZXN0Q2FsbGJhY2sgICAgIGRlY2lkZVBvbGljeUZvclNwZWVjaFJlY29nbml0aW9uUGVy
bWlzc2lvblJlcXVlc3Q7CisKKyAgICAvLyBWZXJzaW9uIDE2LgorICAgIFdLUGFnZURlY2lkZVBv
bGljeUZvck1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RDYWxsYmFjayAgICAgICAgZGVj
aWRlUG9saWN5Rm9yTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdDsKKworfSBXS1BhZ2VV
SUNsaWVudFYxNjsKKworCiAjaWZkZWYgX19jcGx1c3BsdXMKIH0KICNlbmRpZgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVz
dC5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVx
dWVzdC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjRhZmMzNWQwMTc3MmQ1ODk3Yzc3ZWFjMDEwN2JjOWJlNzRiNDYy
OGEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9NZWRpYUtleVN5
c3RlbVBlcm1pc3Npb25SZXF1ZXN0LmgKQEAgLTAsMCArMSw3NiBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAyMSBJZ2FsaWEgUy5MLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAq
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1
ZGUgIkFQSU9iamVjdC5oIgorI2luY2x1ZGUgPFdlYkNvcmUvQ2xpZW50T3JpZ2luLmg+CisjaW5j
bHVkZSA8d3RmL0NvbXBsZXRpb25IYW5kbGVyLmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitj
bGFzcyBNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0IDogcHVibGljIFJlZkNvdW50ZWQ8
TWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdD4geworcHVibGljOgorICAgIHN0YXRpYyBS
ZWY8TWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdD4gY3JlYXRlKGNvbnN0IFN0cmluZyYg
a2V5U3lzdGVtLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmIGNvbXBsZXRpb25IYW5k
bGVyKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgTWVkaWFLZXlTeXN0ZW1Q
ZXJtaXNzaW9uUmVxdWVzdChrZXlTeXN0ZW0sIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKSk7
CisgICAgfQorCisgICAgdm9pZCBjb21wbGV0ZShib29sIHN1Y2Nlc3MpCisgICAgeworICAgICAg
ICBhdXRvIGNvbXBsZXRpb25IYW5kbGVyID0gc3RkOjpleGNoYW5nZShtX2NvbXBsZXRpb25IYW5k
bGVyLCB7IH0pOworICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihzdWNjZXNzKTsKKyAgICB9CisK
KyAgICBjb25zdCBTdHJpbmcmIGtleVN5c3RlbSgpIGNvbnN0IHsgcmV0dXJuIG1fa2V5U3lzdGVt
OyB9CisKK3ByaXZhdGU6CisgICAgTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdChjb25z
dCBTdHJpbmcmIGtleVN5c3RlbSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJiBjb21w
bGV0aW9uSGFuZGxlcikKKyAgICAgICAgOiBtX2tleVN5c3RlbShrZXlTeXN0ZW0pCisgICAgICAg
ICwgbV9jb21wbGV0aW9uSGFuZGxlcihXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSkKKyAgICB7
IH0KKworICAgIFN0cmluZyBtX2tleVN5c3RlbTsKKyAgICBDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KGJvb2wpPiBtX2NvbXBsZXRpb25IYW5kbGVyOworfTsKKworY2xhc3MgTWVkaWFLZXlTeXN0ZW1Q
ZXJtaXNzaW9uQ2FsbGJhY2sgOiBwdWJsaWMgQVBJOjpPYmplY3RJbXBsPEFQSTo6T2JqZWN0OjpU
eXBlOjpNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25DYWxsYmFjaz4geworcHVibGljOgorICAgIHN0
YXRpYyBSZWY8TWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uQ2FsbGJhY2s+IGNyZWF0ZShDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQorICAgIHsKKyAgICAg
ICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uQ2FsbGJhY2so
V1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpKTsKKyAgICB9CisKKyAgICB2b2lkIGNvbXBsZXRl
KGJvb2wgZ3JhbnRlZCkgeyBtX2NvbXBsZXRpb25IYW5kbGVyKGdyYW50ZWQpOyB9CisKK3ByaXZh
dGU6CisgICAgTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uQ2FsbGJhY2soQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZChib29sKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKKyAgICAgICAgOiBtX2NvbXBsZXRp
b25IYW5kbGVyKFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKQorICAgIHsgfQorCisgICAgQ29t
cGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4gbV9jb21wbGV0aW9uSGFuZGxlcjsKK307CisKK30g
Ly8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
TWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9NZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclBy
b3h5LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi40ZmJiNjY2NjRhNWRmOWY0NmNiN2Q5ZmNlNWY5YmNlZGFlZTVm
NDBhCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTWVkaWFLZXlT
eXN0ZW1QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5jcHAKQEAgLTAsMCArMSwxMjEgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgSWdhbGlhIFMuTC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRP
UlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENP
TlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1
ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIk1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RN
YW5hZ2VyUHJveHkuaCIKKworI2luY2x1ZGUgIkFQSVNlY3VyaXR5T3JpZ2luLmgiCisjaW5jbHVk
ZSAiQVBJVUlDbGllbnQuaCIKKyNpbmNsdWRlICJMb2dnaW5nLmgiCisjaW5jbHVkZSAiV2ViQXV0
b21hdGlvblNlc3Npb24uaCIKKyNpbmNsdWRlICJXZWJQYWdlTWVzc2FnZXMuaCIKKyNpbmNsdWRl
ICJXZWJQYWdlUHJveHkuaCIKKyNpbmNsdWRlICJXZWJQcm9jZXNzLmgiCisjaW5jbHVkZSAiV2Vi
UHJvY2Vzc1Bvb2wuaCIKKyNpbmNsdWRlICJXZWJQcm9jZXNzUHJveHkuaCIKKyNpbmNsdWRlICJX
ZWJzaXRlRGF0YVN0b3JlLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9NZWRpYUtleVN5c3RlbVJlcXVl
c3QuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1NlY3VyaXR5T3JpZ2luRGF0YS5oPgorI2luY2x1ZGUg
PHd0Zi9TY29wZS5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKK3VzaW5nIG5hbWVzcGFjZSBXZWJD
b3JlOworCisjaWYgIVJFTEVBU0VfTE9HX0RJU0FCTEVECitzdGF0aWMgY29uc3QgY2hhciogbG9n
Q2xhc3NOYW1lKCkKK3sKKyAgICByZXR1cm4gIk1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVl
c3RNYW5hZ2VyUHJveHkiOworfQorCitzdGF0aWMgV1RGTG9nQ2hhbm5lbCYgbG9nQ2hhbm5lbCgp
Cit7CisgICAgcmV0dXJuIFdlYktpdDJMb2dFTUU7Cit9CisKK2NvbnN0IExvZ2dlciYgTWVkaWFL
ZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6bG9nZ2VyKCkgY29uc3QKK3sK
KyAgICByZXR1cm4gbV9wYWdlLmxvZ2dlcigpOworfQorI2VuZGlmCisKK01lZGlhS2V5U3lzdGVt
UGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6Ok1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJl
cXVlc3RNYW5hZ2VyUHJveHkoV2ViUGFnZVByb3h5JiBwYWdlKQorICAgIDogbV9wYWdlKHBhZ2Up
CisjaWYgIVJFTEVBU0VfTE9HX0RJU0FCTEVECisgICAgLCBtX2xvZ0lkZW50aWZpZXIoTG9nZ2Vy
SGVscGVyOjp1bmlxdWVMb2dJZGVudGlmaWVyKCkpCisjZW5kaWYKK3sKK30KKworTWVkaWFLZXlT
eXN0ZW1QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6fk1lZGlhS2V5U3lzdGVtUGVybWlz
c2lvblJlcXVlc3RNYW5hZ2VyUHJveHkoKQoreworICAgIGludmFsaWRhdGVQZW5kaW5nUmVxdWVz
dHMoKTsKK30KKwordm9pZCBNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclBy
b3h5OjppbnZhbGlkYXRlUGVuZGluZ1JlcXVlc3RzKCkKK3sKKyAgICBmb3IgKGF1dG8mIHJlcXVl
c3QgOiBtX3BlbmRpbmdSZXF1ZXN0cy52YWx1ZXMoKSkKKyAgICAgICAgcmVxdWVzdC0+aW52YWxp
ZGF0ZSgpOworCisgICAgbV9wZW5kaW5nUmVxdWVzdHMuY2xlYXIoKTsKK30KKwordm9pZCBNZWRp
YUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5OjpkZW55UmVxdWVzdChNZWRp
YUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0UHJveHkmIHJlcXVlc3QsIGNvbnN0IFN0cmluZyYg
bWVzc2FnZSkKK3sKKyAgICBpZiAoIW1fcGFnZS5oYXNSdW5uaW5nUHJvY2VzcygpKQorICAgICAg
ICByZXR1cm47CisKKyAgICBBTFdBWVNfTE9HKExPR0lERU5USUZJRVIsIHJlcXVlc3QubWVkaWFL
ZXlTeXN0ZW1JRCgpLCAiLCByZWFzb246ICIsIG1lc3NhZ2UpOworCisjaWYgRU5BQkxFKEVOQ1JZ
UFRFRF9NRURJQSkKKyAgICBtX3BhZ2Uuc2VuZChNZXNzYWdlczo6V2ViUGFnZTo6TWVkaWFLZXlT
eXN0ZW1XYXNEZW5pZWQocmVxdWVzdC5tZWRpYUtleVN5c3RlbUlEKCksIG1lc3NhZ2UpKTsKKyNl
bHNlCisgICAgVU5VU0VEX1BBUkFNKG1lc3NhZ2UpOworI2VuZGlmCit9CisKK3ZvaWQgTWVkaWFL
ZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6Z3JhbnRSZXF1ZXN0KE1lZGlh
S2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RQcm94eSYgcmVxdWVzdCkKK3sKKyAgICBpZiAoIW1f
cGFnZS5oYXNSdW5uaW5nUHJvY2VzcygpKQorICAgICAgICByZXR1cm47CisKKyNpZiBFTkFCTEUo
RU5DUllQVEVEX01FRElBKQorICAgIEFMV0FZU19MT0coTE9HSURFTlRJRklFUiwgcmVxdWVzdC5t
ZWRpYUtleVN5c3RlbUlEKCksICIsIGtleVN5c3RlbTogIiwgcmVxdWVzdC5rZXlTeXN0ZW0oKSk7
CisKKyAgICBtX3BhZ2Uuc2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpXZWJQYWdlOjpNZWRp
YUtleVN5c3RlbVdhc0dyYW50ZWQgeyByZXF1ZXN0Lm1lZGlhS2V5U3lzdGVtSUQoKSB9LCBbXSB7
IH0pOworI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0ocmVxdWVzdCk7CisjZW5kaWYKK30KKworUmVm
PE1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RQcm94eT4gTWVkaWFLZXlTeXN0ZW1QZXJt
aXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6Y3JlYXRlUmVxdWVzdEZvckZyYW1lKHVpbnQ2NF90
IG1lZGlhS2V5U3lzdGVtSUQsIEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBSZWY8U2VjdXJpdHlP
cmlnaW4+JiYgdG9wTGV2ZWxEb2N1bWVudE9yaWdpbiwgY29uc3QgU3RyaW5nJiBrZXlTeXN0ZW0p
Cit7CisgICAgQUxXQVlTX0xPRyhMT0dJREVOVElGSUVSLCBtZWRpYUtleVN5c3RlbUlEKTsKKwor
ICAgIGF1dG8gcmVxdWVzdCA9IE1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RQcm94eTo6
Y3JlYXRlKCp0aGlzLCBtZWRpYUtleVN5c3RlbUlELCBtX3BhZ2UubWFpbkZyYW1lKCktPmZyYW1l
SUQoKSwgZnJhbWVJRCwgV1RGTW92ZSh0b3BMZXZlbERvY3VtZW50T3JpZ2luKSwga2V5U3lzdGVt
KTsKKyAgICBtX3BlbmRpbmdSZXF1ZXN0cy5hZGQobWVkaWFLZXlTeXN0ZW1JRCwgcmVxdWVzdC5w
dHIoKSk7CisgICAgcmV0dXJuIHJlcXVlc3Q7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTWVkaWFLZXlTeXN0ZW1QZXJtaXNz
aW9uUmVxdWVzdE1hbmFnZXJQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTWVkaWFL
ZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5oCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjM0YWIz
ODZlY2E1ZTQ3OWQxMDQxNzdhN2E5MTc2ZjAxZjRkZGNhYTkKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9NZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0TWFu
YWdlclByb3h5LmgKQEAgLTAsMCArMSw3NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBJ
Z2FsaWEgUy5MLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
CisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgor
ICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgIk1lZGlhS2V5
U3lzdGVtUGVybWlzc2lvblJlcXVlc3RQcm94eS5oIgorI2luY2x1ZGUgPFdlYkNvcmUvU2VjdXJp
dHlPcmlnaW4uaD4KKyNpbmNsdWRlIDx3dGYvQ29tcGxldGlvbkhhbmRsZXIuaD4KKyNpbmNsdWRl
IDx3dGYvSGFzaE1hcC5oPgorI2luY2x1ZGUgPHd0Zi9Mb2dnZXJIZWxwZXIuaD4KKyNpbmNsdWRl
IDx3dGYvUnVuTG9vcC5oPgorI2luY2x1ZGUgPHd0Zi9XZWFrUHRyLmg+CisKK25hbWVzcGFjZSBX
ZWJDb3JlIHsKK2NsYXNzIFNlY3VyaXR5T3JpZ2luOworfTsKKworbmFtZXNwYWNlIFdlYktpdCB7
CisKK2NsYXNzIFdlYlBhZ2VQcm94eTsKKworY2xhc3MgTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9u
UmVxdWVzdE1hbmFnZXJQcm94eSA6IHB1YmxpYyBDYW5NYWtlV2Vha1B0cjxNZWRpYUtleVN5c3Rl
bVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5PiB7CisgICAgV1RGX01BS0VfRkFTVF9BTExP
Q0FURUQ7CitwdWJsaWM6CisgICAgZXhwbGljaXQgTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVx
dWVzdE1hbmFnZXJQcm94eShXZWJQYWdlUHJveHkmKTsKKyAgICB+TWVkaWFLZXlTeXN0ZW1QZXJt
aXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eSgpOworCisgICAgV2ViUGFnZVByb3h5JiBwYWdlKCkg
Y29uc3QgeyByZXR1cm4gbV9wYWdlOyB9CisKKyAgICB2b2lkIGludmFsaWRhdGVQZW5kaW5nUmVx
dWVzdHMoKTsKKworICAgIFJlZjxNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0UHJveHk+
IGNyZWF0ZVJlcXVlc3RGb3JGcmFtZSh1aW50NjRfdCB1c2VyTWVkaWFJRCwgV2ViQ29yZTo6RnJh
bWVJZGVudGlmaWVyLCBSZWY8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4+JiYgdG9wTGV2ZWxEb2N1
bWVudE9yaWdpbiwgY29uc3QgU3RyaW5nJiBrZXlTeXN0ZW0pOworCisgICAgdm9pZCBncmFudFJl
cXVlc3QoTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdFByb3h5Jik7CisgICAgdm9pZCBk
ZW55UmVxdWVzdChNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0UHJveHkmLCBjb25zdCBT
dHJpbmcmIG1lc3NhZ2UgPSB7IH0pOworCitwcml2YXRlOgorI2lmICFSRUxFQVNFX0xPR19ESVNB
QkxFRAorICAgIGNvbnN0IExvZ2dlciYgbG9nZ2VyKCkgY29uc3Q7CisgICAgY29uc3Qgdm9pZCog
bG9nSWRlbnRpZmllcigpIGNvbnN0IHsgcmV0dXJuIG1fbG9nSWRlbnRpZmllcjsgfQorI2VuZGlm
CisKKyAgICBXZWJQYWdlUHJveHkmIG1fcGFnZTsKKworICAgIEhhc2hNYXA8dWludDY0X3QsIFJl
ZlB0cjxNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0UHJveHk+PiBtX3BlbmRpbmdSZXF1
ZXN0czsKKyAgICBIYXNoU2V0PFN0cmluZz4gbV92YWxpZEF1dGhvcml6YXRpb25Ub2tlbnM7CisK
KyNpZiAhUkVMRUFTRV9MT0dfRElTQUJMRUQKKyAgICBjb25zdCB2b2lkKiBtX2xvZ0lkZW50aWZp
ZXI7CisjZW5kaWYKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdFByb3h5
LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL01lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJl
cXVlc3RQcm94eS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uM2Q0N2FmODRjOTQ1ZGZjNGMyMGEyODM0ZTMzZjI4
MDgwYzliNGYxMwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL01l
ZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RQcm94eS5jcHAKQEAgLTAsMCArMSw4MiBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBJZ2FsaWEgUy5MLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9S
UyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09O
VFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVk
ZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdFBy
b3h5LmgiCisKKyNpbmNsdWRlICJNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdl
clByb3h5LmgiCisjaW5jbHVkZSA8V2ViQ29yZS9TZWN1cml0eU9yaWdpbi5oPgorI2luY2x1ZGUg
PFdlYkNvcmUvU2VjdXJpdHlPcmlnaW5EYXRhLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5n
SGFzaC5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwor
CitNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0UHJveHk6Ok1lZGlhS2V5U3lzdGVtUGVy
bWlzc2lvblJlcXVlc3RQcm94eShNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdl
clByb3h5JiBtYW5hZ2VyLCB1aW50NjRfdCBtZWRpYUtleVN5c3RlbUlELCBGcmFtZUlkZW50aWZp
ZXIgbWFpbkZyYW1lSUQsIEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBSZWY8V2ViQ29yZTo6U2Vj
dXJpdHlPcmlnaW4+JiYgdG9wTGV2ZWxEb2N1bWVudE9yaWdpbiwgY29uc3QgU3RyaW5nJiBrZXlT
eXN0ZW0pCisgICAgOiBtX21hbmFnZXIobWFrZVdlYWtQdHIobWFuYWdlcikpCisgICAgLCBtX21l
ZGlhS2V5U3lzdGVtSUQobWVkaWFLZXlTeXN0ZW1JRCkKKyAgICAsIG1fbWFpbkZyYW1lSUQobWFp
bkZyYW1lSUQpCisgICAgLCBtX2ZyYW1lSUQoZnJhbWVJRCkKKyAgICAsIG1fdG9wTGV2ZWxEb2N1
bWVudFNlY3VyaXR5T3JpZ2luKFdURk1vdmUodG9wTGV2ZWxEb2N1bWVudE9yaWdpbikpCisgICAg
LCBtX2tleVN5c3RlbShrZXlTeXN0ZW0pCit7Cit9CisKK3ZvaWQgTWVkaWFLZXlTeXN0ZW1QZXJt
aXNzaW9uUmVxdWVzdFByb3h5OjphbGxvdygpCit7CisgICAgQVNTRVJUKG1fbWFuYWdlcik7Cisg
ICAgaWYgKCFtX21hbmFnZXIpCisgICAgICAgIHJldHVybjsKKworICAgIG1fbWFuYWdlci0+Z3Jh
bnRSZXF1ZXN0KCp0aGlzKTsKKyAgICBpbnZhbGlkYXRlKCk7Cit9CisKK3ZvaWQgTWVkaWFLZXlT
eXN0ZW1QZXJtaXNzaW9uUmVxdWVzdFByb3h5OjpkZW55KCkKK3sKKyAgICBpZiAoIW1fbWFuYWdl
cikKKyAgICAgICAgcmV0dXJuOworCisgICAgbV9tYW5hZ2VyLT5kZW55UmVxdWVzdCgqdGhpcyk7
CisgICAgaW52YWxpZGF0ZSgpOworfQorCit2b2lkIE1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJl
cXVlc3RQcm94eTo6aW52YWxpZGF0ZSgpCit7CisgICAgbV9tYW5hZ2VyID0gbnVsbHB0cjsKK30K
Kwordm9pZCBNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0UHJveHk6OmRvRGVmYXVsdEFj
dGlvbigpCit7CisjaWYgUExBVEZPUk0oQ09DT0EpCisgICAgLy8gQmFja3dhcmQgY29tcGF0aWJp
bGl0eSBmb3IgcGxhdGZvcm1zIG5vdCB5ZXQgc3VwcG9ydGluZyB0aGUgTWVkaWFLZXlTeXN0ZW0g
cGVybWlzc2lvbiByZXF1ZXN0CisgICAgLy8gaW4gdGhlaXIgQVBJVUlDbGllbnQuCisgICAgYWxs
b3coKTsKKyNlbHNlCisgICAgZGVueSgpOworI2VuZGlmCit9CisKK30gLy8gbmFtZXNwYWNlIFdl
YktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTWVkaWFLZXlTeXN0ZW1Q
ZXJtaXNzaW9uUmVxdWVzdFByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9NZWRpYUtl
eVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0UHJveHkuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43OGZmOTQ1Y2Y0MDI4
MTFjYTBjZGZhMGU0NDYxYzYxZDI4NjkzM2EwCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdFByb3h5LmgKQEAg
LTAsMCArMSw3NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBJZ2FsaWEgUy5MLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQg
SVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgIkFQSU9iamVjdC5oIgorI2luY2x1ZGUg
PFdlYkNvcmUvRnJhbWVJZGVudGlmaWVyLmg+CisjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgorI2lu
Y2x1ZGUgPHd0Zi9XZWFrUHRyLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CisK
K25hbWVzcGFjZSBXZWJDb3JlIHsKK2NsYXNzIFNlY3VyaXR5T3JpZ2luOworfQorCituYW1lc3Bh
Y2UgV2ViS2l0IHsKKworY2xhc3MgTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdE1hbmFn
ZXJQcm94eTsKKworY2xhc3MgTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdFByb3h5IDog
cHVibGljIFJlZkNvdW50ZWQ8TWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdFByb3h5PiB7
CitwdWJsaWM6CisgICAgc3RhdGljIFJlZjxNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0
UHJveHk+IGNyZWF0ZShNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5
JiBtYW5hZ2VyLCB1aW50NjRfdCBtZWRpYUtleVN5c3RlbUlELCBXZWJDb3JlOjpGcmFtZUlkZW50
aWZpZXIgbWFpbkZyYW1lSUQsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBSZWY8
V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4+JiYgdG9wTGV2ZWxEb2N1bWVudE9yaWdpbiwgY29uc3Qg
U3RyaW5nJiBrZXlTeXN0ZW0pCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBN
ZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0UHJveHkobWFuYWdlciwgbWVkaWFLZXlTeXN0
ZW1JRCwgbWFpbkZyYW1lSUQsIGZyYW1lSUQsIFdURk1vdmUodG9wTGV2ZWxEb2N1bWVudE9yaWdp
biksIGtleVN5c3RlbSkpOworICAgIH0KKworICAgIHZvaWQgYWxsb3coKTsKKyAgICB2b2lkIGRl
bnkoKTsKKworICAgIHZvaWQgaW52YWxpZGF0ZSgpOworCisgICAgdWludDY0X3QgbWVkaWFLZXlT
eXN0ZW1JRCgpIGNvbnN0IHsgcmV0dXJuIG1fbWVkaWFLZXlTeXN0ZW1JRDsgfQorICAgIFdlYkNv
cmU6OkZyYW1lSWRlbnRpZmllciBtYWluRnJhbWVJRCgpIGNvbnN0IHsgcmV0dXJuIG1fbWFpbkZy
YW1lSUQ7IH0KKyAgICBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCgpIGNvbnN0IHsg
cmV0dXJuIG1fZnJhbWVJRDsgfQorCisgICAgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4mIHRvcExl
dmVsRG9jdW1lbnRTZWN1cml0eU9yaWdpbigpIHsgcmV0dXJuIG1fdG9wTGV2ZWxEb2N1bWVudFNl
Y3VyaXR5T3JpZ2luLmdldCgpOyB9CisgICAgY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4m
IHRvcExldmVsRG9jdW1lbnRTZWN1cml0eU9yaWdpbigpIGNvbnN0IHsgcmV0dXJuIG1fdG9wTGV2
ZWxEb2N1bWVudFNlY3VyaXR5T3JpZ2luLmdldCgpOyB9CisKKyAgICBjb25zdCBTdHJpbmcmIGtl
eVN5c3RlbSgpIGNvbnN0IHsgcmV0dXJuIG1fa2V5U3lzdGVtOyB9CisKKyAgICB2b2lkIGRvRGVm
YXVsdEFjdGlvbigpOworCitwcml2YXRlOgorICAgIE1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJl
cXVlc3RQcm94eShNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5Jiwg
dWludDY0X3QgbWVkaWFLZXlTeXN0ZW1JRCwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIG1haW5G
cmFtZUlELCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIFJlZjxXZWJDb3JlOjpTZWN1cml0eU9y
aWdpbj4mJiB0b3BMZXZlbERvY3VtZW50T3JpZ2luLCBjb25zdCBTdHJpbmcmIGtleVN5c3RlbSk7
CisKKyAgICBXZWFrUHRyPE1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJv
eHk+IG1fbWFuYWdlcjsKKyAgICB1aW50NjRfdCBtX21lZGlhS2V5U3lzdGVtSUQ7CisgICAgV2Vi
Q29yZTo6RnJhbWVJZGVudGlmaWVyIG1fbWFpbkZyYW1lSUQ7CisgICAgV2ViQ29yZTo6RnJhbWVJ
ZGVudGlmaWVyIG1fZnJhbWVJRDsKKyAgICBSZWY8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4+IG1f
dG9wTGV2ZWxEb2N1bWVudFNlY3VyaXR5T3JpZ2luOworICAgIFN0cmluZyBtX2tleVN5c3RlbTsK
K307CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlLmNwcCBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVN
ZWRpYVNvdXJjZS5jcHAKaW5kZXggYjlkOTMyMDk2MzlkZDNiZjhmMjc0ODM1MjRjZjQwNmQ2M2Vj
NjBhZC4uNDM4NGQ0OWExN2M5ZWYwM2MzMGI4OWY3MjRiNWI1Mzk3MjE0ZDk3YyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGlt
ZU1lZGlhU291cmNlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TcGVlY2hSZWNv
Z25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UuY3BwCkBAIC0zMyw2ICszMyw4IEBACiAK
ICNpZiBQTEFURk9STShDT0NPQSkKICNpbmNsdWRlICJTaGFyZWRSaW5nQnVmZmVyU3RvcmFnZS5o
IgorI2luY2x1ZGUgPFdlYkNvcmUvQ0FSaW5nQnVmZmVyLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9X
ZWJBdWRpb0J1ZmZlckxpc3QuaD4KICNlbmRpZgogCiBuYW1lc3BhY2UgV2ViS2l0IHsKQEAgLTQ3
LDcgKzQ5LDcgQEAgU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlOjpT
cGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWEKICAgICAsIG1faWRlbnRpZmllcihp
ZGVudGlmaWVyKQogICAgICwgbV9tYW5hZ2VyKG1ha2VXZWFrUHRyKG1hbmFnZXIpKQogI2lmIFBM
QVRGT1JNKENPQ09BKQotICAgICwgbV9yaW5nQnVmZmVyKG1ha2VVbmlxdWU8Q0FSaW5nQnVmZmVy
PigpKQorICAgICwgbV9yaW5nQnVmZmVyKG1ha2VVbmlxdWU8V2ViQ29yZTo6Q0FSaW5nQnVmZmVy
PigpKQogI2VuZGlmCiB7CiAgICAgbV9tYW5hZ2VyLT5hZGRTb3VyY2UoKnRoaXMsIGNhcHR1cmVE
ZXZpY2UpOwpAQCAtNzcsOCArNzksOCBAQCB2b2lkIFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVh
bHRpbWVNZWRpYVNvdXJjZTo6c2V0U3RvcmFnZShjb25zdCBTaGFyZWRNZW1vcnk6OgogewogICAg
IG1fZGVzY3JpcHRpb24gPSBkZXNjcmlwdGlvbjsKIAotICAgIG1fcmluZ0J1ZmZlciA9IG1ha2VV
bmlxdWU8Q0FSaW5nQnVmZmVyPihtYWtlVW5pcXVlUmVmPFJlYWRPbmx5U2hhcmVkUmluZ0J1ZmZl
clN0b3JhZ2U+KGhhbmRsZSksIGRlc2NyaXB0aW9uLCBudW1iZXJPZkZyYW1lcyk7Ci0gICAgbV9i
dWZmZXIgPSBtYWtlVW5pcXVlPFdlYkF1ZGlvQnVmZmVyTGlzdD4oZGVzY3JpcHRpb24sIG51bWJl
ck9mRnJhbWVzKTsKKyAgICBtX3JpbmdCdWZmZXIgPSBtYWtlVW5pcXVlPFdlYkNvcmU6OkNBUmlu
Z0J1ZmZlcj4obWFrZVVuaXF1ZVJlZjxSZWFkT25seVNoYXJlZFJpbmdCdWZmZXJTdG9yYWdlPiho
YW5kbGUpLCBkZXNjcmlwdGlvbiwgbnVtYmVyT2ZGcmFtZXMpOworICAgIG1fYnVmZmVyID0gbWFr
ZVVuaXF1ZTxXZWJDb3JlOjpXZWJBdWRpb0J1ZmZlckxpc3Q+KGRlc2NyaXB0aW9uLCBudW1iZXJP
ZkZyYW1lcyk7CiB9CiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlLmggYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3Vy
Y2UuaAppbmRleCA4YjUxMjUwZjVjYWQ3ZjNmNWNlNzhmNThkNjc2MzcxOTBjZjhiZjkxLi5hMWUy
N2FkNWZkNzAzOGVkMmVkZWViMzJjMTViNTA5MTBkYWQ1MWUwIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3Vy
Y2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblJlbW90
ZVJlYWx0aW1lTWVkaWFTb3VyY2UuaApAQCAtMjcsNiArMjcsNyBAQAogCiAjaWYgRU5BQkxFKE1F
RElBX1NUUkVBTSkKIAorI2luY2x1ZGUgIlNoYXJlZE1lbW9yeS5oIgogI2luY2x1ZGUgPFdlYkNv
cmUvUmVhbHRpbWVNZWRpYVNvdXJjZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUmVhbHRpbWVNZWRp
YVNvdXJjZUlkZW50aWZpZXIuaD4KIApAQCAtNDMsNyArNDQsOCBAQCBjbGFzcyBXZWJBdWRpb0J1
ZmZlckxpc3Q7CiB9CiAKIG5hbWVzcGFjZSBXZWJLaXQgewotCitjbGFzcyBTcGVlY2hSZWNvZ25p
dGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOworICAgIAogY2xhc3MgU3BlZWNo
UmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlIDogcHVibGljIFdlYkNvcmU6OlJl
YWx0aW1lTWVkaWFTb3VyY2UgewogcHVibGljOgogICAgIHN0YXRpYyBSZWY8V2ViQ29yZTo6UmVh
bHRpbWVNZWRpYVNvdXJjZT4gY3JlYXRlKFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVhbHRpbWVN
ZWRpYVNvdXJjZU1hbmFnZXImLCBjb25zdCBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlJik7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAppbmRleCAxNzhiZjkwNmZiMzM0MDJi
ZTZiYmY3M2Q0NDEzNGUzODE0YzQ2NTIzLi5mYTQxZWU3NmU1MGI1ZThkNGJhOWE0NDkzYzVmN2Nl
ZGUxMzcyZDcwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJv
eHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKQEAg
LTgyOTEsNiArODI5MSwyNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6Y2xlYXJVc2VyTWVkaWFTdGF0
ZSgpCiAjZW5kaWYKIH0KIAordm9pZCBXZWJQYWdlUHJveHk6OnJlcXVlc3RNZWRpYUtleVN5c3Rl
bVBlcm1pc3Npb25Gb3JGcmFtZSh1aW50NjRfdCBtZWRpYUtleVN5c3RlbUlELCBGcmFtZUlkZW50
aWZpZXIgZnJhbWVJRCwgY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiB0b3BMZXZl
bERvY3VtZW50T3JpZ2luRGF0YSwgY29uc3QgU3RyaW5nJiBrZXlTeXN0ZW0pCit7CisjaWYgRU5B
QkxFKE1FRElBX1NUUkVBTSkKKyAgICBNRVNTQUdFX0NIRUNLKG1fcHJvY2VzcywgbV9wcm9jZXNz
LT53ZWJGcmFtZShmcmFtZUlEKSk7CisKKyAgICBhdXRvIG9yaWdpbiA9IEFQSTo6U2VjdXJpdHlP
cmlnaW46OmNyZWF0ZSh0b3BMZXZlbERvY3VtZW50T3JpZ2luRGF0YS5zZWN1cml0eU9yaWdpbigp
KTsKKyAgICBhdXRvIHJlcXVlc3QgPSBtZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0TWFu
YWdlcigpLmNyZWF0ZVJlcXVlc3RGb3JGcmFtZShtZWRpYUtleVN5c3RlbUlELCBmcmFtZUlELCB0
b3BMZXZlbERvY3VtZW50T3JpZ2luRGF0YS5zZWN1cml0eU9yaWdpbigpLCBrZXlTeXN0ZW0pOwor
ICAgIG1fdWlDbGllbnQtPmRlY2lkZVBvbGljeUZvck1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJl
cXVlc3QoKnRoaXMsIG9yaWdpbiwga2V5U3lzdGVtLCBbcmVxdWVzdCA9IFdURk1vdmUocmVxdWVz
dCldKGJvb2wgYWxsb3dlZCkgeworICAgICAgICBpZiAoYWxsb3dlZCkKKyAgICAgICAgICAgIHJl
cXVlc3QtPmFsbG93KCk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHJlcXVlc3QtPmRlbnko
KTsKKyAgICB9KTsKKyNlbHNlCisgICAgVU5VU0VEX1BBUkFNKG1lZGlhS2V5U3lzdGVtSUQpOwor
ICAgIFVOVVNFRF9QQVJBTShmcmFtZUlEKTsKKyAgICBVTlVTRURfUEFSQU0odG9wTGV2ZWxEb2N1
bWVudE9yaWdpbkRhdGEpOworICAgIFVOVVNFRF9QQVJBTShrZXlTeXN0ZW0pOworI2VuZGlmCit9
CisKICNpZiBFTkFCTEUoREVWSUNFX09SSUVOVEFUSU9OKQogdm9pZCBXZWJQYWdlUHJveHk6OnNo
b3VsZEFsbG93RGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25BY2Nlc3MoRnJhbWVJZGVudGlmaWVy
IGZyYW1lSUQsIEZyYW1lSW5mb0RhdGEmJiBmcmFtZUluZm8sIGJvb2wgbWF5UHJvbXB0LCBDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKERldmljZU9yaWVudGF0aW9uT3JNb3Rpb25QZXJtaXNzaW9uU3Rh
dGUpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewpAQCAtODMwMSwxMyArODMyMiwyMyBAQCB2b2lk
IFdlYlBhZ2VQcm94eTo6c2hvdWxkQWxsb3dEZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvbkFjY2Vz
cyhGcmFtZUlkZW50aWZpZXIgZgogfQogI2VuZGlmCiAKLSNpZiBFTkFCTEUoSU1BR0VfRVhUUkFD
VElPTikKIAorI2lmIEVOQUJMRShJTUFHRV9FWFRSQUNUSU9OKQogdm9pZCBXZWJQYWdlUHJveHk6
OnJlcXVlc3RJbWFnZUV4dHJhY3Rpb24oY29uc3QgU2hhcmVhYmxlQml0bWFwOjpIYW5kbGUmIGlt
YWdlRGF0YSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJDb3JlOjpJbWFnZUV4dHJhY3Rpb25S
ZXN1bHQmJik+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgcGFnZUNsaWVudCgpLnJlcXVl
c3RJbWFnZUV4dHJhY3Rpb24oaW1hZ2VEYXRhLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7
CiB9CisjZW5kaWYKIAorI2lmIEVOQUJMRShFTkNSWVBURURfTUVESUEpCitNZWRpYUtleVN5c3Rl
bVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5JiBXZWJQYWdlUHJveHk6Om1lZGlhS2V5U3lz
dGVtUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyKCkKK3sKKyAgICBpZiAobV9tZWRpYUtleVN5c3Rl
bVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcikKKyAgICAgICAgcmV0dXJuICptX21lZGlhS2V5U3lz
dGVtUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyOworCisgICAgbV9tZWRpYUtleVN5c3RlbVBlcm1p
c3Npb25SZXF1ZXN0TWFuYWdlciA9IG1ha2VVbmlxdWU8TWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9u
UmVxdWVzdE1hbmFnZXJQcm94eT4oKnRoaXMpOworICAgIHJldHVybiAqbV9tZWRpYUtleVN5c3Rl
bVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcjsKK30KICNlbmRpZgogCiB2b2lkIFdlYlBhZ2VQcm94
eTo6cmVxdWVzdE5vdGlmaWNhdGlvblBlcm1pc3Npb24odWludDY0X3QgcmVxdWVzdElELCBjb25z
dCBTdHJpbmcmIG9yaWdpblN0cmluZykKQEAgLTEwNDM3LDYgKzEwNDY4LDExIEBAIHZvaWQgV2Vi
UGFnZVByb3h5OjpyZXF1ZXN0VXNlck1lZGlhUGVybWlzc2lvbkZvclNwZWVjaFJlY29nbml0aW9u
KEZyYW1lSWRlbnRpZmllCiAjZW5kaWYKIH0KIAordm9pZCBXZWJQYWdlUHJveHk6OnJlcXVlc3RN
ZWRpYUtleVN5c3RlbVBlcm1pc3Npb25CeURlZmF1bHRBY3Rpb24oY29uc3QgV2ViQ29yZTo6U2Vj
dXJpdHlPcmlnaW4mIG9yaWdpbiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJiBjb21w
bGV0aW9uSGFuZGxlcikKK3sKKyAgICBjb21wbGV0aW9uSGFuZGxlcih0cnVlKTsKK30KKwogI2lm
IEVOQUJMRShNRURJQV9TVFJFQU0pCiAKIFdlYkNvcmU6OkNhcHR1cmVTb3VyY2VPckVycm9yIFdl
YlBhZ2VQcm94eTo6Y3JlYXRlUmVhbHRpbWVNZWRpYVNvdXJjZUZvclNwZWVjaFJlY29nbml0aW9u
KCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKaW5kZXggNGQ1ZmRiZmUzNDA0
Yzg1MGZjYzFiODUyZWRiOTI5NDUyYjMzNmZiMS4uZjQ4ZWFkMzFiM2E2NTVmMDQ2MmRjMGU1N2Yw
M2YzZWI2NWEwMjUzMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFn
ZVByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKQEAg
LTQwLDYgKzQwLDcgQEAKICNpbmNsdWRlICJHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFu
YWdlclByb3h5LmgiCiAjaW5jbHVkZSAiSGlkZGVuUGFnZVRocm90dGxpbmdBdXRvSW5jcmVhc2Vz
Q291bnRlci5oIgogI2luY2x1ZGUgIkxheWVyVHJlZUNvbnRleHQuaCIKKyNpbmNsdWRlICJNZWRp
YUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmgiCiAjaW5jbHVkZSAiTWVk
aWFQbGF5YmFja1N0YXRlLmgiCiAjaW5jbHVkZSAiTWVzc2FnZVNlbmRlci5oIgogI2luY2x1ZGUg
Ik5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmgiCkBAIC03Myw4ICs3
NCw4IEBACiAjaW5jbHVkZSAiV2ViUGFnZVByb3h5SWRlbnRpZmllci5oIgogI2luY2x1ZGUgIldl
YlBhZ2VQcm94eU1lc3NhZ2VzUmVwbGllcy5oIgogI2luY2x1ZGUgIldlYlBheW1lbnRDb29yZGlu
YXRvclByb3h5LmgiCi0jaW5jbHVkZSAiV2ViUHJlZmVyZW5jZXMuaCIKICNpbmNsdWRlICJXZWJQ
b3B1cE1lbnVQcm94eS5oIgorI2luY2x1ZGUgIldlYlByZWZlcmVuY2VzLmgiCiAjaW5jbHVkZSAi
V2ViVW5kb1N0ZXBJRC5oIgogI2luY2x1ZGUgIldlYnNpdGVQb2xpY2llc0RhdGEuaCIKICNpbmNs
dWRlIDxXZWJDb3JlL0FjdGl2aXR5U3RhdGUuaD4KQEAgLTE4MjksNiArMTgzMCw4IEBAIHB1Ymxp
YzoKICAgICB2b2lkIHJlcXVlc3RTcGVlY2hSZWNvZ25pdGlvblBlcm1pc3Npb25CeURlZmF1bHRB
Y3Rpb24oY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4mLCBDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKGJvb2wpPiYmKTsKICAgICB2b2lkIHJlcXVlc3RVc2VyTWVkaWFQZXJtaXNzaW9uRm9yU3Bl
ZWNoUmVjb2duaXRpb24oV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpT
ZWN1cml0eU9yaWdpbiYsIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luJiwgQ29tcGxldGlv
bkhhbmRsZXI8dm9pZChib29sKT4mJik7CiAKKyAgICB2b2lkIHJlcXVlc3RNZWRpYUtleVN5c3Rl
bVBlcm1pc3Npb25CeURlZmF1bHRBY3Rpb24oY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4m
LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmKTsKKwogICAgIHZvaWQgc3luY0lmTW9j
a0RldmljZXNFbmFibGVkQ2hhbmdlZCgpOwogCiAjaWYgRU5BQkxFKEFQUF9ISUdITElHSFRTKQpA
QCAtMjAwNSw2ICsyMDA4LDExIEBAIHByaXZhdGU6CiAgICAgdm9pZCBlbnVtZXJhdGVNZWRpYURl
dmljZXNGb3JGcmFtZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OlNl
Y3VyaXR5T3JpZ2luRGF0YSYgdXNlck1lZGlhRG9jdW1lbnRPcmlnaW5EYXRhLCBjb25zdCBXZWJD
b3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmIHRvcExldmVsRG9jdW1lbnRPcmlnaW5EYXRhLCBDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKGNvbnN0IFZlY3RvcjxXZWJDb3JlOjpDYXB0dXJlRGV2aWNlPiYs
IGNvbnN0IFN0cmluZyYpPiYmKTsKICAgICB2b2lkIGJlZ2luTW9uaXRvcmluZ0NhcHR1cmVEZXZp
Y2VzKCk7CiAKKyNpZiBFTkFCTEUoRU5DUllQVEVEX01FRElBKQorICAgIE1lZGlhS2V5U3lzdGVt
UGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkmIG1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJl
cXVlc3RNYW5hZ2VyKCk7CisjZW5kaWYKKyAgICB2b2lkIHJlcXVlc3RNZWRpYUtleVN5c3RlbVBl
cm1pc3Npb25Gb3JGcmFtZSh1aW50NjRfdCBtZWRpYUtleVN5c3RlbUlELCBXZWJDb3JlOjpGcmFt
ZUlkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYgdG9wTGV2ZWxE
b2N1bWVudE9yaWdpbklkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYpOworCiAgICAgdm9pZCBydW5N
b2RhbCgpOwogICAgIHZvaWQgbm90aWZ5U2Nyb2xsZXJUaHVtYklzVmlzaWJsZUluUmVjdChjb25z
dCBXZWJDb3JlOjpJbnRSZWN0Jik7CiAgICAgdm9pZCByZWNvbW1lbmRlZFNjcm9sbGJhclN0eWxl
RGlkQ2hhbmdlKGludDMyX3QgbmV3U3R5bGUpOwpAQCAtMjUxNCw2ICsyNTIyLDEwIEBAIHByaXZh
dGU6CiAgICAgc3RkOjp1bmlxdWVfcHRyPFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdl
clByb3h5PiBtX3VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcjsKICNlbmRpZgogCisj
aWYgRU5BQkxFKEVOQ1JZUFRFRF9NRURJQSkKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8TWVkaWFLZXlT
eXN0ZW1QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eT4gbV9tZWRpYUtleVN5c3RlbVBlcm1p
c3Npb25SZXF1ZXN0TWFuYWdlcjsKKyNlbmRpZgorCiAgICAgT3B0aW9uU2V0PFdlYkNvcmU6OkFj
dGl2aXR5U3RhdGU6OkZsYWc+IG1fYWN0aXZpdHlTdGF0ZTsKICAgICBib29sIG1fdmlld1dhc0V2
ZXJJbldpbmRvdyB7IGZhbHNlIH07CiAjaWYgUExBVEZPUk0oTUFDQ0FUQUxZU1QpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4gYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4KaW5kZXggMjU4
Nzg3OGQwMjI4MDVhMmRjNTRmMzYxZjc4ZWE1MGY4YTMxNTJlOS4uZGRhNTNlMzE0NzU3NzE1MmI4
Mzc2YzU3OWY5ZjYzYmQ2N2U3MjkxZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbgpAQCAtMjg0LDYgKzI4NCwxMCBAQCBtZXNzYWdlcyAt
PiBXZWJQYWdlUHJveHkgewogICAgIEJlZ2luTW9uaXRvcmluZ0NhcHR1cmVEZXZpY2VzKCkKICNl
bmRpZgogCisjaWYgRU5BQkxFKEVOQ1JZUFRFRF9NRURJQSkKKyAgICBSZXF1ZXN0TWVkaWFLZXlT
eXN0ZW1QZXJtaXNzaW9uRm9yRnJhbWUodWludDY0X3QgdXNlck1lZGlhSUQsIFdlYkNvcmU6OkZy
YW1lSWRlbnRpZmllciBmcmFtZUlELCBzdHJ1Y3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRh
IHRvcExldmVsRG9jdW1lbnRPcmlnaW5JZGVudGlmaWVyLCBTdHJpbmcga2V5U3lzdGVtKQorI2Vu
ZGlmCisKICAgICAjIE5vdGlmaWNhdGlvbiBtZXNzYWdlcwogICAgIFJlcXVlc3ROb3RpZmljYXRp
b25QZXJtaXNzaW9uKHVpbnQ2NF90IHJlcXVlc3RJRCwgU3RyaW5nIG9yaWdpbklkZW50aWZpZXIp
CiAgICAgU2hvd05vdGlmaWNhdGlvbihTdHJpbmcgdGl0bGUsIFN0cmluZyBib2R5LCBTdHJpbmcg
aWNvblVSTCwgU3RyaW5nIHRhZywgU3RyaW5nIGxhbmcsIGVudW06dWludDhfdCBXZWJDb3JlOjpO
b3RpZmljYXRpb25EaXJlY3Rpb24gZGlyLCBTdHJpbmcgb3JpZ2luSWRlbnRpZmllciwgdWludDY0
X3Qgbm90aWZpY2F0aW9uSUQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagppbmRleCA3ZTAwNzJjM2I2ODA4NGQ2YmMyNjI2YjkwNWQzMDJkNzAwZWZl
MjE5Li5mMGRiY2I0YzAxODFiZmYxYjM5ODI2ZTU0YjAyNzE0YmNjNmIyMTdlIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1Nv
dXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTE1MjAsNiAr
MTUyMCwxMiBAQAogCQk5OUU3MTRDNTFDMTI0QTA0MDA2NjVCM0EgLyogX1dLQXV0b21hdGlvbkRl
bGVnYXRlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5
OUU3MTRDMTFDMTI0OUU2MDA2NjVCM0EgLyogX1dLQXV0b21hdGlvbkRlbGVnYXRlLmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJOTlFNzE4OUEyMUY3
OUQ5RTAwNTVFOTc1IC8qIF9XS1RvdWNoRXZlbnRHZW5lcmF0b3IubW0gaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5OUU3MTg5NjIxRjc5RDlEMDA1NUU5NzUg
LyogX1dLVG91Y2hFdmVudEdlbmVyYXRvci5tbSAqLzsgfTsKIAkJOTlFNzE4OUMyMUY3OUQ5RTAw
NTVFOTc1IC8qIF9XS1RvdWNoRXZlbnRHZW5lcmF0b3IuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk5RTcxODk4MjFGNzlEOUUwMDU1RTk3NSAvKiBfV0tU
b3VjaEV2ZW50R2VuZXJhdG9yLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0
ZSwgKTsgfTsgfTsKKwkJOUFDQzA3QUQyNUM4MTMyRDAwREM2Mzg2IC8qIE1lZGlhS2V5U3lzdGVt
UGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA5QUNDMDdBQzI1QzgxMzJEMDBEQzYzODYgLyogTWVkaWFLZXlTeXN0
ZW1QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIuaCAqLzsgfTsKKwkJOUFDQzA3QjEyNUM4MTVEODAw
REM2Mzg2IC8qIE1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3QuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDlBQ0MwN0IwMjVDODE1RDgwMERDNjM4
NiAvKiBNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0LmggKi87IH07CisJCTlBQ0MwN0Iz
MjVDODE1RjMwMERDNjM4NiAvKiBNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdl
clByb3h5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5
QUNDMDdCMjI1QzgxNUYzMDBEQzYzODYgLyogTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVz
dE1hbmFnZXJQcm94eS5oICovOyB9OworCQk5QUNDMDdCNTI1QzgxNjBDMDBEQzYzODYgLyogTWVk
aWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdFByb3h5LmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5QUNDMDdCNDI1QzgxNjBCMDBEQzYzODYgLyogTWVk
aWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdFByb3h5LmggKi87IH07CisJCTlBQ0MwN0I3MjVD
ODFEMzQwMERDNjM4NiAvKiBXZWJNZWRpYUtleVN5c3RlbUNsaWVudC5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOUFDQzA3QjYyNUM4MUQzMzAwREM2Mzg2
IC8qIFdlYk1lZGlhS2V5U3lzdGVtQ2xpZW50LmggKi87IH07CisJCTlBQ0MwN0I5MjVDODIxODQw
MERDNjM4NiAvKiBXS01lZGlhS2V5U3lzdGVtUGVybWlzc2lvbkNhbGxiYWNrLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5QUNDMDdCODI1QzgyMTgzMDBE
QzYzODYgLyogV0tNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25DYWxsYmFjay5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTlCMDJFMENCMjM1RUI5NTMw
MDQwNDRCMiAvKiBfV0tUZXh0TWFuaXB1bGF0aW9uRGVsZWdhdGUuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDlCMDJFMEM5MjM1RUI2MkQwMDQwNDRCMiAv
KiBfV0tUZXh0TWFuaXB1bGF0aW9uRGVsZWdhdGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRF
UyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk5QjAyRTBDQzIzNUVCOTU3MDA0MDQ0QjIgLyogX1dL
VGV4dE1hbmlwdWxhdGlvbkl0ZW0uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDlCMDJFMENBMjM1RUI4ODQwMDQwNDRCMiAvKiBfV0tUZXh0TWFuaXB1bGF0
aW9uSXRlbS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CiAJCTlCMDJFMEQ3MjM1RkM5NEYwMDQwNDRCMiAvKiBfV0tUZXh0TWFuaXB1bGF0aW9uVG9rZW4u
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDlCMDJFMENE
MjM1RUI5NjcwMDQwNDRCMiAvKiBfV0tUZXh0TWFuaXB1bGF0aW9uVG9rZW4uaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtNDg2OSw2ICs0ODc1LDEy
IEBACiAJCTk5RTcxODk2MjFGNzlEOUQwMDU1RTk3NSAvKiBfV0tUb3VjaEV2ZW50R2VuZXJhdG9y
Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gX1dLVG91Y2hFdmVu
dEdlbmVyYXRvci5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTlFNzE4OTgyMUY3
OUQ5RTAwNTVFOTc1IC8qIF9XS1RvdWNoRXZlbnRHZW5lcmF0b3IuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gX1dLVG91Y2hFdmVudEdlbmVyYXRvci5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk5OUY2NDJEMjFGQUJFMzc4MDA5NjIxRTkgLyogQ29vcmRpbmF0ZVN5
c3RlbS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDb29yZGluYXRlU3lzdGVt
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTlBQ0MwN0FDMjVDODEzMkQwMERDNjM4
NiAvKiBNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlci5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IG5hbWUgPSBNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0TWFu
YWdlci5oOyBwYXRoID0gRW5jcnlwdGVkTWVkaWEvTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVx
dWVzdE1hbmFnZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOUFDQzA3QjAyNUM4
MTVEODAwREM2Mzg2IC8qIE1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3QuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVz
dC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5QUNDMDdCMjI1QzgxNUYzMDBEQzYz
ODYgLyogTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1
ZXN0TWFuYWdlclByb3h5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTlBQ0MwN0I0
MjVDODE2MEIwMERDNjM4NiAvKiBNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0UHJveHku
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTWVkaWFLZXlTeXN0ZW1QZXJtaXNz
aW9uUmVxdWVzdFByb3h5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTlBQ0MwN0I2
MjVDODFEMzMwMERDNjM4NiAvKiBXZWJNZWRpYUtleVN5c3RlbUNsaWVudC5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJNZWRpYUtleVN5c3RlbUNsaWVudC5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQk5QUNDMDdCODI1QzgyMTgzMDBEQzYzODYgLyogV0tNZWRp
YUtleVN5c3RlbVBlcm1pc3Npb25DYWxsYmFjay5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBXS01lZGlhS2V5U3lzdGVtUGVybWlzc2lvbkNhbGxiYWNrLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTlCMDJFMEM5MjM1RUI2MkQwMDQwNDRCMiAvKiBfV0tUZXh0TWFu
aXB1bGF0aW9uRGVsZWdhdGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gX1dLVGV4dE1hbmlwdWxhdGlvbkRl
bGVnYXRlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTlCMDJFMENBMjM1RUI4ODQw
MDQwNDRCMiAvKiBfV0tUZXh0TWFuaXB1bGF0aW9uSXRlbS5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBfV0tU
ZXh0TWFuaXB1bGF0aW9uSXRlbS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5QjAy
RTBDRDIzNUVCOTY3MDA0MDQ0QjIgLyogX1dLVGV4dE1hbmlwdWxhdGlvblRva2VuLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IF9XS1RleHRNYW5pcHVsYXRpb25Ub2tlbi5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwpAQCAtOTM0Miw2ICs5MzU0LDE0IEBACiAJCQlwYXRoID0gY29jb2E7CiAJCQlzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOwogCQl9OworCQk5QUNDMDdBOTI1QzgxMkU3MDBEQzYzODYgLyog
RW5jcnlwdGVkTWVkaWEgKi8gPSB7CisJCQlpc2EgPSBQQlhHcm91cDsKKwkJCWNoaWxkcmVuID0g
KAorCQkJCTlBQ0MwN0FDMjVDODEzMkQwMERDNjM4NiAvKiBNZWRpYUtleVN5c3RlbVBlcm1pc3Np
b25SZXF1ZXN0TWFuYWdlci5oICovLAorCQkJKTsKKwkJCW5hbWUgPSBFbmNyeXB0ZWRNZWRpYTsK
KwkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CisJCX07CiAJCUExNTc5OUFDMjU4NDQzMzEwMDUy
ODIzNiAvKiBNZWRpYUZvcm1hdFJlYWRlciAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJ
Y2hpbGRyZW4gPSAoCkBAIC05NDU4LDYgKzk0NzgsNyBAQAogCQkJCTQxRDEyOUQ4MUYzRDEwMTQw
MEQxNUU0NyAvKiBDYWNoZSAqLywKIAkJCQk3QzZFNzBGODE4QjJENDdFMDBGMjRFMkUgLyogY29j
b2EgKi8sCiAJCQkJNTEyQTk3NTQxODBERjkyNzAwMzlBMTQ5IC8qIERhdGFiYXNlcyAqLywKKwkJ
CQk5QUNDMDdBOTI1QzgxMkU3MDBEQzYzODYgLyogRW5jcnlwdGVkTWVkaWEgKi8sCiAJCQkJQkNB
Q0M0M0IxNkIyNEM1RDAwQjZFMDkyIC8qIEVudHJ5UG9pbnQgKi8sCiAJCQkJRTE3MDg3NkQxNkQ2
Q0E3MjAwRjk5MjI2IC8qIEZpbGVBUEkgKi8sCiAJCQkJQ0Q3M0JBM0QxMzFBMkEyMTAwRUVERUQy
IC8qIEZ1bGxTY3JlZW4gKi8sCkBAIC05NTIzLDYgKzk1NDQsNyBAQAogCQkJCUJDMDMyRDZBMTBG
NDM3OEQwMDU4QzE1QSAvKiBXZWJGcmFtZUxvYWRlckNsaWVudC5oICovLAogCQkJCUJDMUJFMURG
MTJENTRBNDEwMDA0QTIyOCAvKiBXZWJHZW9sb2NhdGlvbkNsaWVudC5jcHAgKi8sCiAJCQkJQkMx
QkUxREUxMkQ1NEE0MTAwMDRBMjI4IC8qIFdlYkdlb2xvY2F0aW9uQ2xpZW50LmggKi8sCisJCQkJ
OUFDQzA3QjYyNUM4MUQzMzAwREM2Mzg2IC8qIFdlYk1lZGlhS2V5U3lzdGVtQ2xpZW50LmggKi8s
CiAJCQkJNTEzRkZCOEUyMDE0NTlDMjAwMjU5NkVBIC8qIFdlYk1lc3NhZ2VQb3J0Q2hhbm5lbFBy
b3ZpZGVyLmNwcCAqLywKIAkJCQk1MTNGRkI4RjIwMTQ1OUMyMDAyNTk2RUEgLyogV2ViTWVzc2Fn
ZVBvcnRDaGFubmVsUHJvdmlkZXIuaCAqLywKIAkJCQkzMTA5OTk3MTE0NkM3NTlCMDAyOURFQjkg
LyogV2ViTm90aWZpY2F0aW9uQ2xpZW50LmNwcCAqLywKQEAgLTk2NjIsNiArOTY4NCw5IEBACiAJ
CQkJNUNFQUJBMkIyMzMzMjUxNDAwNzk3Nzk3IC8qIExlZ2FjeUdsb2JhbFNldHRpbmdzLmNwcCAq
LywKIAkJCQk1Q0VBQkEyQTIzMzMyNDc3MDA3OTc3OTcgLyogTGVnYWN5R2xvYmFsU2V0dGluZ3Mu
aCAqLywKIAkJCQkzMTYwN0YzODE5NjI3MDAyMDA5Qjg3REEgLyogTGVnYWN5U2Vzc2lvblN0YXRl
Q29kaW5nLmggKi8sCisJCQkJOUFDQzA3QjAyNUM4MTVEODAwREM2Mzg2IC8qIE1lZGlhS2V5U3lz
dGVtUGVybWlzc2lvblJlcXVlc3QuaCAqLywKKwkJCQk5QUNDMDdCMjI1QzgxNUYzMDBEQzYzODYg
LyogTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5oICovLAorCQkJ
CTlBQ0MwN0I0MjVDODE2MEIwMERDNjM4NiAvKiBNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1
ZXN0UHJveHkuaCAqLywKIAkJCQk5MzQyNTg5ODI1NUI1MzRCMDA1OUVFREQgLyogTWVkaWFQZXJt
aXNzaW9uVXRpbGl0aWVzLmggKi8sCiAJCQkJQkM2RURBQTUxMTEyNzFDNjAwRTc2NzhCIC8qIFBh
Z2VDbGllbnQuaCAqLywKIAkJCQkxQUM3NTM3OTE4M0E5RkRBMDA3MkNCMTUgLyogUGFnZUxvYWRT
dGF0ZS5jcHAgKi8sCkBAIC05OTc0LDYgKzk5OTksNyBAQAogCQkJCTUxQTlFMTA4MTMxNUNEMTgw
MDlFNzAzMSAvKiBXS0tleVZhbHVlU3RvcmFnZU1hbmFnZXIuY3BwICovLAogCQkJCTUxQTlFMTA5
MTMxNUNEMTgwMDlFNzAzMSAvKiBXS0tleVZhbHVlU3RvcmFnZU1hbmFnZXIuaCAqLywKIAkJCQky
RDc5MEE5RTFBRDcxNjQ5MDBBQjkwQjMgLyogV0tMYXlvdXRNb2RlLmggKi8sCisJCQkJOUFDQzA3
QjgyNUM4MjE4MzAwREM2Mzg2IC8qIFdLTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uQ2FsbGJhY2su
aCAqLywKIAkJCQk1Q0FCREM4NDIyQzQwRkNDMDAxRURFOEUgLyogV0tNZXNzYWdlTGlzdGVuZXIu
Y3BwICovLAogCQkJCTVDQUJEQzg1MjJDNDBGQ0MwMDFFREU4RSAvKiBXS01lc3NhZ2VMaXN0ZW5l
ci5oICovLAogCQkJCUMxMUUxNjkzMjEyQjg3QzUwMDk4NUZGNiAvKiBXS01vY2tEaXNwbGF5LmNw
cCAqLywKQEAgLTExNjk2LDYgKzExNzIyLDEwIEBACiAJCQkJQkNDNTZGNzkxMTU5OTU3RDAwMUND
QUY5IC8qIE1hY2hQb3J0LmggaW4gSGVhZGVycyAqLywKIAkJCQkxQTI0QjVGMzExRjUzMUU4MDBD
MzgyNjkgLyogTWFjaFV0aWxpdGllcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTE1Nzk5QkUyNTg0
NDMzMjAwNTI4MjM2IC8qIE1lZGlhRm9ybWF0UmVhZGVyLmggaW4gSGVhZGVycyAqLywKKwkJCQk5
QUNDMDdCMTI1QzgxNUQ4MDBEQzYzODYgLyogTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVz
dC5oIGluIEhlYWRlcnMgKi8sCisJCQkJOUFDQzA3QUQyNUM4MTMyRDAwREM2Mzg2IC8qIE1lZGlh
S2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyLmggaW4gSGVhZGVycyAqLywKKwkJCQk5
QUNDMDdCMzI1QzgxNUYzMDBEQzYzODYgLyogTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVz
dE1hbmFnZXJQcm94eS5oIGluIEhlYWRlcnMgKi8sCisJCQkJOUFDQzA3QjUyNUM4MTYwQzAwREM2
Mzg2IC8qIE1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RQcm94eS5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJOTM0MjU4OUEyNTVCNTM1QTAwNTlFRUREIC8qIE1lZGlhUGVybWlzc2lvblV0aWxp
dGllcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMDdFMTlFRkMyM0Q0MDFGMTAwOTRGRkI0IC8qIE1l
ZGlhUGxheWVyUHJpdmF0ZVJlbW90ZU1lc3NhZ2VzLmggaW4gSGVhZGVycyAqLywKIAkJCQkwN0Ux
OUVGRDIzRDQwMUYxMDA5NEZGQjQgLyogTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlTWVzc2FnZXNS
ZXBsaWVzLmggaW4gSGVhZGVycyAqLywKQEAgLTEyMTM3LDYgKzEyMTY3LDcgQEAKIAkJCQlCQzlC
QTUwNTE2OTdDNDUzMDBFNDQ2MTYgLyogV2ViS2l0MkluaXRpYWxpemUuaCBpbiBIZWFkZXJzICov
LAogCQkJCTFBNjI4MEM3MTkxOTk1MEMwMDZBRDlGOSAvKiBXZWJLaXRQcml2YXRlLmggaW4gSGVh
ZGVycyAqLywKIAkJCQlDRDAwM0E1MzE5RDQ5QjVEMDA1QUJDRTAgLyogV2ViTWVkaWFLZXlTdG9y
YWdlTWFuYWdlci5oIGluIEhlYWRlcnMgKi8sCisJCQkJOUFDQzA3QjcyNUM4MUQzNDAwREM2Mzg2
IC8qIFdlYk1lZGlhS2V5U3lzdGVtQ2xpZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQk5QjVCRUMy
NjI0MDBGNEE5MDA3MEM2RUYgLyogV2ViTWVkaWFTdHJhdGVneS5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJMkQzRUY0NDMxOTE3NjQ2MzAwMDM0MTg0IC8qIFdlYk1lbW9yeVByZXNzdXJlSGFuZGxlci5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJOTA5ODU0RUQxMkJDNEUxODAwMEFEMDgwIC8qIFdlYk1lbW9y
eVNhbXBsZXIuaCBpbiBIZWFkZXJzICovLApAQCAtMTI0NDUsNiArMTI0NzYsNyBAQAogCQkJCTJE
NzkwQTlGMUFENzE2NDkwMEFCOTBCMyAvKiBXS0xheW91dE1vZGUuaCBpbiBIZWFkZXJzICovLAog
CQkJCTVDRTkxMjE0MjI5M0MyODAwMDVCRUM3OCAvKiBXS01haW4uaCBpbiBIZWFkZXJzICovLAog
CQkJCUExNTc5QjI4MjU4NDkwRTUwMDUyODIzNiAvKiBXS01lZGlhRm9ybWF0UmVhZGVyLmggaW4g
SGVhZGVycyAqLywKKwkJCQk5QUNDMDdCOTI1QzgyMTg0MDBEQzYzODYgLyogV0tNZWRpYUtleVN5
c3RlbVBlcm1pc3Npb25DYWxsYmFjay5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDk5MTdEQTcyNTJE
NjQ5RTAwNTAzMTNGIC8qIFdLTWVkaWFQbGF5YmFja1N0YXRlLmggaW4gSGVhZGVycyAqLywKIAkJ
CQkxQUI0MEVFNjFCRjY3N0UzMDBCQTgxQkUgLyogV0tNZW51SXRlbUlkZW50aWZpZXJzUHJpdmF0
ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNUNBQkRDODYyMkM0MEZERTAwMUVERThFIC8qIFdLTWVz
c2FnZUxpc3RlbmVyLmggaW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9FbmNyeXB0ZWRNZWRpYS9NZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0
TWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvRW5jcnlwdGVkTWVkaWEvTWVk
aWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIuY3BwCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmEyNDk4
ODJkMDdhOTllNzVkMDkxYmZiNzJhZWVjODMxNjQ4NTc3MzgKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvRW5jcnlwdGVkTWVkaWEvTWVkaWFLZXlTeXN0ZW1QZXJt
aXNzaW9uUmVxdWVzdE1hbmFnZXIuY3BwCkBAIC0wLDAgKzEsMTMyIEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDIxIElnYWxpYSBTLkwuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwor
ICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAq
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIK
KyNpbmNsdWRlICJNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlci5oIgorCisj
aWYgRU5BQkxFKEVOQ1JZUFRFRF9NRURJQSkKKworI2luY2x1ZGUgIkxvZ2dpbmcuaCIKKyNpbmNs
dWRlICJXZWJDb3JlQXJndW1lbnRDb2RlcnMuaCIKKyNpbmNsdWRlICJXZWJGcmFtZS5oIgorI2lu
Y2x1ZGUgIldlYlBhZ2UuaCIKKyNpbmNsdWRlICJXZWJQYWdlUHJveHlNZXNzYWdlcy5oIgorI2lu
Y2x1ZGUgPFdlYkNvcmUvRG9jdW1lbnQuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0ZyYW1lLmg+Cisj
aW5jbHVkZSA8V2ViQ29yZS9GcmFtZUxvYWRlci5oPgorI2luY2x1ZGUgPFdlYkNvcmUvU2VjdXJp
dHlPcmlnaW4uaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1NlY3VyaXR5T3JpZ2luRGF0YS5oPgorCitu
YW1lc3BhY2UgV2ViS2l0IHsKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOworCitNZWRpYUtleVN5
c3RlbVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcjo6TWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVx
dWVzdE1hbmFnZXIoV2ViUGFnZSYgcGFnZSkKKyAgICA6IG1fcGFnZShwYWdlKQoreworfQorCit2
b2lkIE1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyOjpzdGFydE1lZGlhS2V5
U3lzdGVtUmVxdWVzdChNZWRpYUtleVN5c3RlbVJlcXVlc3QmIHJlcXVlc3QpCit7CisgICAgRG9j
dW1lbnQqIGRvY3VtZW50ID0gcmVxdWVzdC5kb2N1bWVudCgpOworICAgIEZyYW1lKiBmcmFtZSA9
IGRvY3VtZW50ID8gZG9jdW1lbnQtPmZyYW1lKCkgOiBudWxscHRyOworCisgICAgaWYgKCFmcmFt
ZSB8fCAhZG9jdW1lbnQtPnBhZ2UoKSkgeworICAgICAgICByZXF1ZXN0LmRlbnkoZW1wdHlTdHJp
bmcoKSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBpZiAoZG9jdW1lbnQtPnBhZ2Uo
KS0+Y2FuU3RhcnRNZWRpYSgpKSB7CisgICAgICAgIHNlbmRNZWRpYUtleVN5c3RlbVJlcXVlc3Qo
cmVxdWVzdCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBhdXRvJiBwZW5kaW5nUmVx
dWVzdHMgPSBtX3BlbmRpbmdNZWRpYUtleVN5c3RlbVJlcXVlc3RzLmFkZChkb2N1bWVudCwgVmVj
dG9yPFJlZjxNZWRpYUtleVN5c3RlbVJlcXVlc3Q+PigpKS5pdGVyYXRvci0+dmFsdWU7CisgICAg
cGVuZGluZ1JlcXVlc3RzLmFwcGVuZChyZXF1ZXN0KTsKK30KKwordm9pZCBNZWRpYUtleVN5c3Rl
bVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcjo6c2VuZE1lZGlhS2V5U3lzdGVtUmVxdWVzdChNZWRp
YUtleVN5c3RlbVJlcXVlc3QmIHVzZXJSZXF1ZXN0KQoreworICAgIGF1dG8qIGZyYW1lID0gdXNl
clJlcXVlc3QuZG9jdW1lbnQoKSA/IHVzZXJSZXF1ZXN0LmRvY3VtZW50KCktPmZyYW1lKCkgOiBu
dWxscHRyOworICAgIGlmICghZnJhbWUpIHsKKyAgICAgICAgdXNlclJlcXVlc3QuZGVueShlbXB0
eVN0cmluZygpKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIG1fb25nb2luZ01lZGlh
S2V5U3lzdGVtUmVxdWVzdHMuYWRkKHVzZXJSZXF1ZXN0LmlkZW50aWZpZXIoKSwgbWFrZVJlZih1
c2VyUmVxdWVzdCkpOworCisgICAgV2ViRnJhbWUqIHdlYkZyYW1lID0gV2ViRnJhbWU6OmZyb21D
b3JlRnJhbWUoKmZyYW1lKTsKKyAgICBBU1NFUlQod2ViRnJhbWUpOworCisgICAgYXV0byogdG9w
TGV2ZWxEb2N1bWVudE9yaWdpbiA9IHVzZXJSZXF1ZXN0LnRvcExldmVsRG9jdW1lbnRPcmlnaW4o
KTsKKyAgICBtX3BhZ2Uuc2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpSZXF1ZXN0TWVkaWFL
ZXlTeXN0ZW1QZXJtaXNzaW9uRm9yRnJhbWUodXNlclJlcXVlc3QuaWRlbnRpZmllcigpLnRvVUlu
dDY0KCksIHdlYkZyYW1lLT5mcmFtZUlEKCksIHRvcExldmVsRG9jdW1lbnRPcmlnaW4tPmRhdGEo
KSwgdXNlclJlcXVlc3Qua2V5U3lzdGVtKCkpKTsKK30KKwordm9pZCBNZWRpYUtleVN5c3RlbVBl
cm1pc3Npb25SZXF1ZXN0TWFuYWdlcjo6Y2FuY2VsTWVkaWFLZXlTeXN0ZW1SZXF1ZXN0KE1lZGlh
S2V5U3lzdGVtUmVxdWVzdCYgcmVxdWVzdCkKK3sKKyAgICBpZiAoYXV0byByZW1vdmVkUmVxdWVz
dCA9IG1fb25nb2luZ01lZGlhS2V5U3lzdGVtUmVxdWVzdHMudGFrZShyZXF1ZXN0LmlkZW50aWZp
ZXIoKSkpCisgICAgICAgIHJldHVybjsKKworICAgIGF1dG8qIGRvY3VtZW50ID0gcmVxdWVzdC5k
b2N1bWVudCgpOworICAgIGlmICghZG9jdW1lbnQpCisgICAgICAgIHJldHVybjsKKworICAgIGF1
dG8gaXRlcmF0b3IgPSBtX3BlbmRpbmdNZWRpYUtleVN5c3RlbVJlcXVlc3RzLmZpbmQoZG9jdW1l
bnQpOworICAgIGlmIChpdGVyYXRvciA9PSBtX3BlbmRpbmdNZWRpYUtleVN5c3RlbVJlcXVlc3Rz
LmVuZCgpKQorICAgICAgICByZXR1cm47CisKKyAgICBhdXRvJiBwZW5kaW5nUmVxdWVzdHMgPSBp
dGVyYXRvci0+dmFsdWU7CisgICAgcGVuZGluZ1JlcXVlc3RzLnJlbW92ZUZpcnN0TWF0Y2hpbmco
WyZyZXF1ZXN0XShhdXRvJiBpdGVtKSB7CisgICAgICAgIHJldHVybiAmcmVxdWVzdCA9PSBpdGVt
LnB0cigpOworICAgIH0pOworCisgICAgaWYgKCFwZW5kaW5nUmVxdWVzdHMuaXNFbXB0eSgpKQor
ICAgICAgICByZXR1cm47CisKKyAgICBtX3BlbmRpbmdNZWRpYUtleVN5c3RlbVJlcXVlc3RzLnJl
bW92ZShpdGVyYXRvcik7Cit9CisKK3ZvaWQgTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVz
dE1hbmFnZXI6Om1lZGlhS2V5U3lzdGVtV2FzR3JhbnRlZCh1aW50NjRfdCByZXF1ZXN0SUQsIENv
bXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3sKKyAgICBhdXRv
IHJlcXVlc3QgPSBtX29uZ29pbmdNZWRpYUtleVN5c3RlbVJlcXVlc3RzLnRha2UobWFrZU9iamVj
dElkZW50aWZpZXI8TWVkaWFLZXlTeXN0ZW1SZXF1ZXN0SWRlbnRpZmllclR5cGU+KHJlcXVlc3RJ
RCkpOworICAgIGlmICghcmVxdWVzdCkgeworICAgICAgICBjb21wbGV0aW9uSGFuZGxlcigpOwor
ICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgcmVxdWVzdC0+YWxsb3coV1RGTW92ZShjb21w
bGV0aW9uSGFuZGxlcikpOworfQorCit2b2lkIE1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVl
c3RNYW5hZ2VyOjptZWRpYUtleVN5c3RlbVdhc0RlbmllZCh1aW50NjRfdCByZXF1ZXN0SUQsIFN0
cmluZyYmIG1lc3NhZ2UpCit7CisgICAgYXV0byByZXF1ZXN0ID0gbV9vbmdvaW5nTWVkaWFLZXlT
eXN0ZW1SZXF1ZXN0cy50YWtlKG1ha2VPYmplY3RJZGVudGlmaWVyPE1lZGlhS2V5U3lzdGVtUmVx
dWVzdElkZW50aWZpZXJUeXBlPihyZXF1ZXN0SUQpKTsKKyAgICBpZiAoIXJlcXVlc3QpCisgICAg
ICAgIHJldHVybjsKKworICAgIHJlcXVlc3QtPmRlbnkoV1RGTW92ZShtZXNzYWdlKSk7Cit9CisK
K30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gRU5BQkxFKEVOQ1JZUFRFRF9NRURJ
QSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9FbmNyeXB0ZWRNZWRpYS9N
ZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlci5oIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL0VuY3J5cHRlZE1lZGlhL01lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RN
YW5hZ2VyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uODY5NTVmYjlkZWQ3MTE2MWNhZGY0YTIzNjkwMmIyYzU0MjI1
NjlhNgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9FbmNyeXB0
ZWRNZWRpYS9NZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlci5oCkBAIC0wLDAg
KzEsNjMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgSWdhbGlhIFMuTC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAq
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisg
KiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoRU5DUllQVEVEX01FRElBKQorCisjaW5jbHVk
ZSAiU2FuZGJveEV4dGVuc2lvbi5oIgorI2luY2x1ZGUgPFdlYkNvcmUvTWVkaWFLZXlTeXN0ZW1D
bGllbnQuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL01lZGlhS2V5U3lzdGVtUmVxdWVzdC5oPgorI2lu
Y2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CisjaW5jbHVkZSA8d3RmL1JlZi5oPgorI2luY2x1ZGUgPHd0
Zi9SZWZQdHIuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIFdlYlBhZ2U7CisKK2Ns
YXNzIE1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyIHsKKyAgICBXVEZfTUFL
RV9GQVNUX0FMTE9DQVRFRDsKK3B1YmxpYzoKKyAgICBleHBsaWNpdCBNZWRpYUtleVN5c3RlbVBl
cm1pc3Npb25SZXF1ZXN0TWFuYWdlcihXZWJQYWdlJik7CisgICAgfk1lZGlhS2V5U3lzdGVtUGVy
bWlzc2lvblJlcXVlc3RNYW5hZ2VyKCkgPSBkZWZhdWx0OworCisgICAgdm9pZCBzdGFydE1lZGlh
S2V5U3lzdGVtUmVxdWVzdChXZWJDb3JlOjpNZWRpYUtleVN5c3RlbVJlcXVlc3QmKTsKKyAgICB2
b2lkIGNhbmNlbE1lZGlhS2V5U3lzdGVtUmVxdWVzdChXZWJDb3JlOjpNZWRpYUtleVN5c3RlbVJl
cXVlc3QmKTsKKyAgICB2b2lkIG1lZGlhS2V5U3lzdGVtV2FzR3JhbnRlZCh1aW50NjRfdCwgQ29t
cGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKKyAgICB2b2lkIG1lZGlhS2V5U3lzdGVtV2FzRGVu
aWVkKHVpbnQ2NF90LCBTdHJpbmcmJik7CisKK3ByaXZhdGU6CisgICAgdm9pZCBzZW5kTWVkaWFL
ZXlTeXN0ZW1SZXF1ZXN0KFdlYkNvcmU6Ok1lZGlhS2V5U3lzdGVtUmVxdWVzdCYpOworCisgICAg
V2ViUGFnZSYgbV9wYWdlOworCisgICAgSGFzaE1hcDxXZWJDb3JlOjpNZWRpYUtleVN5c3RlbVJl
cXVlc3RJZGVudGlmaWVyLCBSZWY8V2ViQ29yZTo6TWVkaWFLZXlTeXN0ZW1SZXF1ZXN0Pj4gbV9v
bmdvaW5nTWVkaWFLZXlTeXN0ZW1SZXF1ZXN0czsKKyAgICBIYXNoTWFwPFJlZlB0cjxXZWJDb3Jl
OjpEb2N1bWVudD4sIFZlY3RvcjxSZWY8V2ViQ29yZTo6TWVkaWFLZXlTeXN0ZW1SZXF1ZXN0Pj4+
IG1fcGVuZGluZ01lZGlhS2V5U3lzdGVtUmVxdWVzdHM7Cit9OworCit9IC8vIG5hbWVzcGFjZSBX
ZWJLaXQKKworI2VuZGlmIC8vIEVOQUJMRShNRURJQV9TVFJFQU0pCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViTWVkaWFLZXlTeXN0ZW1DbGll
bnQuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYk1lZGlh
S2V5U3lzdGVtQ2xpZW50LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45NjY4MTY3M2VhMGFkZTRjMzczYWE2ZGQw
YjA2ZTVmNmI4MjliYmY3Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYkNvcmVTdXBwb3J0L1dlYk1lZGlhS2V5U3lzdGVtQ2xpZW50LmNwcApAQCAtMCwwICsx
LDU2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIElnYWxpYSBTLkwuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09O
VFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
IElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICog
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisK
KyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJXZWJNZWRpYUtleVN5c3RlbUNsaWVudC5o
IgorCisjaWYgRU5BQkxFKEVOQ1JZUFRFRF9NRURJQSkKKworI2luY2x1ZGUgIk1lZGlhS2V5U3lz
dGVtUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyLmgiCisjaW5jbHVkZSAiV2ViUGFnZS5oIgorI2lu
Y2x1ZGUgPFdlYkNvcmUvTWVkaWFLZXlTeXN0ZW1Db250cm9sbGVyLmg+CisjaW5jbHVkZSA8V2Vi
Q29yZS9NZWRpYUtleVN5c3RlbVJlcXVlc3QuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7Cit1c2lu
ZyBuYW1lc3BhY2UgV2ViQ29yZTsKKworV2ViTWVkaWFLZXlTeXN0ZW1DbGllbnQ6OldlYk1lZGlh
S2V5U3lzdGVtQ2xpZW50KFdlYlBhZ2UmIHBhZ2UpCisgICAgOiBtX3BhZ2UocGFnZSkKK3sKK30K
Kwordm9pZCBXZWJNZWRpYUtleVN5c3RlbUNsaWVudDo6cmVxdWVzdE1lZGlhS2V5U3lzdGVtKE1l
ZGlhS2V5U3lzdGVtUmVxdWVzdCYgcmVxdWVzdCkKK3sKKyAgICBtX3BhZ2UubWVkaWFLZXlTeXN0
ZW1QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIoKS5zdGFydE1lZGlhS2V5U3lzdGVtUmVxdWVzdChy
ZXF1ZXN0KTsKK30KKwordm9pZCBXZWJNZWRpYUtleVN5c3RlbUNsaWVudDo6Y2FuY2VsTWVkaWFL
ZXlTeXN0ZW1SZXF1ZXN0KE1lZGlhS2V5U3lzdGVtUmVxdWVzdCYgcmVxdWVzdCkKK3sKKyAgICBt
X3BhZ2UubWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIoKS5jYW5jZWxNZWRp
YUtleVN5c3RlbVJlcXVlc3QocmVxdWVzdCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdDsK
KworI2VuZGlmIC8vIEVOQUJMRShFTkNSWVBURURfTUVESUEpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViTWVkaWFLZXlTeXN0ZW1DbGllbnQu
aCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJNZWRpYUtleVN5
c3RlbUNsaWVudC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmIzNzQzZjRkZjA1ZGQ5NmVhZGFjODY0Y2VlYTA3NGY2
MmE3NjdlMjYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvV2ViTWVkaWFLZXlTeXN0ZW1DbGllbnQuaApAQCAtMCwwICsxLDUzIEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDIxIElnYWxpYSBTLkwuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEg
b25jZQorCisjaWYgRU5BQkxFKEVOQ1JZUFRFRF9NRURJQSkKKworI2luY2x1ZGUgPFdlYkNvcmUv
TWVkaWFLZXlTeXN0ZW1DbGllbnQuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIFdl
YlBhZ2U7CisKK2NsYXNzIFdlYk1lZGlhS2V5U3lzdGVtQ2xpZW50IDogcHVibGljIFdlYkNvcmU6
Ok1lZGlhS2V5U3lzdGVtQ2xpZW50IHsKKyAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKK3B1
YmxpYzoKKyAgICBXZWJNZWRpYUtleVN5c3RlbUNsaWVudChXZWJQYWdlJik7CisgICAgfldlYk1l
ZGlhS2V5U3lzdGVtQ2xpZW50KCkgeyB9CisKK3ByaXZhdGU6CisgICAgdm9pZCBwYWdlRGVzdHJv
eWVkKCkgb3ZlcnJpZGUgeyB9CisKKyAgICB2b2lkIHJlcXVlc3RNZWRpYUtleVN5c3RlbShXZWJD
b3JlOjpNZWRpYUtleVN5c3RlbVJlcXVlc3QmKSBvdmVycmlkZTsKKyAgICB2b2lkIGNhbmNlbE1l
ZGlhS2V5U3lzdGVtUmVxdWVzdChXZWJDb3JlOjpNZWRpYUtleVN5c3RlbVJlcXVlc3QmKSBvdmVy
cmlkZTsKKworICAgIFdlYlBhZ2UmIG1fcGFnZTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKKworI2VuZGlmIC8vIEVOQUJMRShFTkNSWVBURURfTUVESUEpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCmluZGV4IGMyOWQ4NTBkMGRhMzUyY2RkNzBi
OTEzNmVmMjBlOTRiOGZkYjczZmQuLmE1MDBmMzUzY2U4ZmFiNGI5YzA3MDJjOGM3MDdiNjhjN2Vj
YmViZDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBh
Z2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3Bw
CkBAIC00Niw2ICs0Niw3IEBACiAjaW5jbHVkZSAiTGliV2ViUlRDUHJvdmlkZXIuaCIKICNpbmNs
dWRlICJMb2FkUGFyYW1ldGVycy5oIgogI2luY2x1ZGUgIkxvZ2dpbmcuaCIKKyNpbmNsdWRlICJN
ZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlci5oIgogI2luY2x1ZGUgIk1lZGlh
UGxheWJhY2tTdGF0ZS5oIgogI2luY2x1ZGUgIk1lZGlhUmVjb3JkZXJQcm92aWRlci5oIgogI2lu
Y2x1ZGUgIk5ldHNjYXBlUGx1Z2luLmgiCkBAIC0xMDQsNiArMTA1LDcgQEAKICNpbmNsdWRlICJX
ZWJLZXlib2FyZEV2ZW50LmgiCiAjaW5jbHVkZSAiV2ViTG9hZGVyU3RyYXRlZ3kuaCIKICNpbmNs
dWRlICJXZWJNZWRpYUtleVN0b3JhZ2VNYW5hZ2VyLmgiCisjaW5jbHVkZSAiV2ViTWVkaWFLZXlT
eXN0ZW1DbGllbnQuaCIKICNpbmNsdWRlICJXZWJNZWRpYVN0cmF0ZWd5LmgiCiAjaW5jbHVkZSAi
V2ViTW91c2VFdmVudC5oIgogI2luY2x1ZGUgIldlYk5vdGlmaWNhdGlvbkNsaWVudC5oIgpAQCAt
NDczLDYgKzQ3NSw5IEBAIFdlYlBhZ2U6OldlYlBhZ2UoUGFnZUlkZW50aWZpZXIgcGFnZUlELCBX
ZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzJiYgcGFyYW1ldGVycykKICNlbmRpZgogI2lmIEVOQUJM
RShNRURJQV9TVFJFQU0pCiAgICAgLCBtX3VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdl
ciB7IG1ha2VVbmlxdWVSZWY8VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyPigqdGhp
cykgfQorI2VuZGlmCisjaWYgRU5BQkxFKEVOQ1JZUFRFRF9NRURJQSkKKyAgICAsIG1fbWVkaWFL
ZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIgeyBtYWtlVW5pcXVlUmVmPE1lZGlhS2V5
U3lzdGVtUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyPigqdGhpcykgfQogI2VuZGlmCiAgICAgLCBt
X3BhZ2VTY3JvbGxlZEh5c3RlcmVzaXMoW3RoaXNdKFBBTDo6SHlzdGVyZXNpc1N0YXRlIHN0YXRl
KSB7IGlmIChzdGF0ZSA9PSBQQUw6Okh5c3RlcmVzaXNTdGF0ZTo6U3RvcHBlZCkgcGFnZVN0b3Bw
ZWRTY3JvbGxpbmcoKTsgfSwgcGFnZVNjcm9sbEh5c3RlcmVzaXNEdXJhdGlvbikKICAgICAsIG1f
Y2FuUnVuQmVmb3JlVW5sb2FkQ29uZmlybVBhbmVsKHBhcmFtZXRlcnMuY2FuUnVuQmVmb3JlVW5s
b2FkQ29uZmlybVBhbmVsKQpAQCAtNjU0LDYgKzY1OSw5IEBAIFdlYlBhZ2U6OldlYlBhZ2UoUGFn
ZUlkZW50aWZpZXIgcGFnZUlELCBXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzJiYgcGFyYW1ldGVy
cykKICNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQogICAgIFdlYkNvcmU6OnByb3ZpZGVVc2VyTWVk
aWFUbyhtX3BhZ2UuZ2V0KCksIG5ldyBXZWJVc2VyTWVkaWFDbGllbnQoKnRoaXMpKTsKICNlbmRp
ZgorI2lmIEVOQUJMRShFTkNSWVBURURfTUVESUEpCisgICAgV2ViQ29yZTo6cHJvdmlkZU1lZGlh
S2V5U3lzdGVtVG8oKm1fcGFnZS5nZXQoKSwgKm5ldyBXZWJNZWRpYUtleVN5c3RlbUNsaWVudCgq
dGhpcykpOworI2VuZGlmCiAKICAgICBtX3BhZ2UtPnNldENvbnRyb2xsZWRCeUF1dG9tYXRpb24o
cGFyYW1ldGVycy5jb250cm9sbGVkQnlBdXRvbWF0aW9uKTsKICAgICBtX3BhZ2UtPnNldEhhc1Jl
c291cmNlTG9hZENsaWVudChwYXJhbWV0ZXJzLmhhc1Jlc291cmNlTG9hZENsaWVudCk7CkBAIC00
NTI3LDYgKzQ1MzUsMTggQEAgdm9pZCBXZWJQYWdlOjpjYXB0dXJlRGV2aWNlc0NoYW5nZWQoKQog
CiAjZW5kaWYKIAorI2lmIEVOQUJMRShFTkNSWVBURURfTUVESUEpCit2b2lkIFdlYlBhZ2U6Om1l
ZGlhS2V5U3lzdGVtV2FzR3JhbnRlZCh1aW50NjRfdCBtZWRpYUtleVN5c3RlbUlELCBDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCit7CisgICAgbV9tZWRpYUtl
eVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlci0+bWVkaWFLZXlTeXN0ZW1XYXNHcmFudGVk
KG1lZGlhS2V5U3lzdGVtSUQsIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKK30KKwordm9p
ZCBXZWJQYWdlOjptZWRpYUtleVN5c3RlbVdhc0RlbmllZCh1aW50NjRfdCBtZWRpYUtleVN5c3Rl
bUlELCBTdHJpbmcmJiBtZXNzYWdlKQoreworICAgIG1fbWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9u
UmVxdWVzdE1hbmFnZXItPm1lZGlhS2V5U3lzdGVtV2FzRGVuaWVkKG1lZGlhS2V5U3lzdGVtSUQs
IFdURk1vdmUobWVzc2FnZSkpOworfQorI2VuZGlmCisKICNpZiAhUExBVEZPUk0oSU9TX0ZBTUlM
WSkKIHZvaWQgV2ViUGFnZTo6YWR2YW5jZVRvTmV4dE1pc3NwZWxsaW5nKGJvb2wgc3RhcnRCZWZv
cmVTZWxlY3Rpb24pCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
UGFnZS9XZWJQYWdlLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdl
LmgKaW5kZXggMzA5ZWRmNGJjMWJkYjc3YTFmYTcwZjJlMDIxZmZiNDkzODI2N2Q5Ny4uMWM5MDZl
MWFmMjc5MWE4NTc5MGE0MWM3MDM2NGE5OWY3YTEwMzU2MSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaApAQCAtMjQ3LDYgKzI0Nyw3IEBAIGNsYXNzIEdhbWVw
YWREYXRhOwogY2xhc3MgR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXI7CiBjbGFz
cyBMYXllckhvc3RpbmdDb250ZXh0OwogY2xhc3MgTWVkaWFEZXZpY2VTYW5kYm94RXh0ZW5zaW9u
czsKK2NsYXNzIE1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyOwogY2xhc3Mg
Tm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyOwogY2xhc3MgUERGUGx1Z2luOwog
Y2xhc3MgUGFnZUJhbm5lcjsKQEAgLTY3Myw2ICs2NzQsMTAgQEAgcHVibGljOgogICAgIHZvaWQg
Y2FwdHVyZURldmljZXNDaGFuZ2VkKCk7CiAjZW5kaWYKIAorI2lmIEVOQUJMRShFTkNSWVBURURf
TUVESUEpCisgICAgTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXImIG1lZGlh
S2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyKCkgeyByZXR1cm4gbV9tZWRpYUtleVN5
c3RlbVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcjsgfQorI2VuZGlmCisKICAgICB2b2lkIGVsZW1l
bnREaWRGb2N1cyhXZWJDb3JlOjpFbGVtZW50Jik7CiAgICAgdm9pZCBlbGVtZW50RGlkUmVmb2N1
cyhXZWJDb3JlOjpFbGVtZW50Jik7CiAgICAgdm9pZCBlbGVtZW50RGlkQmx1cihXZWJDb3JlOjpF
bGVtZW50Jik7CkBAIC0xNjc0LDcgKzE2NzksMTEgQEAgcHJpdmF0ZToKICNpZiBFTkFCTEUoTUVE
SUFfU1RSRUFNKQogICAgIHZvaWQgdXNlck1lZGlhQWNjZXNzV2FzR3JhbnRlZCh1aW50NjRfdCB1
c2VyTWVkaWFJRCwgV2ViQ29yZTo6Q2FwdHVyZURldmljZSYmIGF1ZGlvRGV2aWNlVUlELCBXZWJD
b3JlOjpDYXB0dXJlRGV2aWNlJiYgdmlkZW9EZXZpY2VVSUQsIFN0cmluZyYmIG1lZGlhRGV2aWNl
SWRlbnRpZmllckhhc2hTYWx0LCBTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGUmJiwgQ29tcGxldGlv
bkhhbmRsZXI8dm9pZCgpPiYmKTsKICAgICB2b2lkIHVzZXJNZWRpYUFjY2Vzc1dhc0RlbmllZCh1
aW50NjRfdCB1c2VyTWVkaWFJRCwgdWludDY0X3QgcmVhc29uLCBTdHJpbmcmJiBpbnZhbGlkQ29u
c3RyYWludCk7CisjZW5kaWYKIAorI2lmIEVOQUJMRShFTkNSWVBURURfTUVESUEpCisgICAgdm9p
ZCBtZWRpYUtleVN5c3RlbVdhc0dyYW50ZWQodWludDY0X3QgbWVkaWFLZXlTeXN0ZW1JRCwgQ29t
cGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKKyAgICB2b2lkIG1lZGlhS2V5U3lzdGVtV2FzRGVu
aWVkKHVpbnQ2NF90IG1lZGlhS2V5U3lzdGVtSUQsIFN0cmluZyYmIG1lc3NhZ2UpOwogI2VuZGlm
CiAKICAgICB2b2lkIHJlcXVlc3RNZWRpYVBsYXliYWNrU3RhdGUoQ29tcGxldGlvbkhhbmRsZXI8
dm9pZChXZWJLaXQ6Ok1lZGlhUGxheWJhY2tTdGF0ZSk+JiYpOwpAQCAtMTk4Niw2ICsxOTk1LDEw
IEBAIHByaXZhdGU6CiAgICAgVW5pcXVlUmVmPFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFu
YWdlcj4gbV91c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXI7CiAjZW5kaWYKIAorI2lm
IEVOQUJMRShFTkNSWVBURURfTUVESUEpCisgICAgVW5pcXVlUmVmPE1lZGlhS2V5U3lzdGVtUGVy
bWlzc2lvblJlcXVlc3RNYW5hZ2VyPiBtX21lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RN
YW5hZ2VyOworI2VuZGlmCisKICAgICBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6UHJpbnRDb250
ZXh0PiBtX3ByaW50Q29udGV4dDsKICNpZiBQTEFURk9STShHVEspCiAgICAgUmVmUHRyPFdlYlBy
aW50T3BlcmF0aW9uR3RrPiBtX3ByaW50T3BlcmF0aW9uOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4KaW5kZXggMmRhOTljZDM3
MjM5MmU4MmM1MzBkNDJjMDFhMTI4NzcwZmJkODcxNy4uMjNmY2EzNTcxZjA3NDc1MDkxZmYzZmMx
NGJhYmM0NjVlMjE2ZWQ0YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluCkBAIC0zNzgsNiArMzc4LDExIEBAIEdlbmVyYXRl
U3ludGhldGljRWRpdGluZ0NvbW1hbmQoZW51bTp1aW50OF90IFdlYktpdDo6U3ludGhldGljRWRp
dGluZ0NvbW1hbmRUeXBlCiAgICAgQ2FwdHVyZURldmljZXNDaGFuZ2VkKCkKICNlbmRpZgogCisj
aWYgRU5BQkxFKEVOQ1JZUFRFRF9NRURJQSkKKyAgICBNZWRpYUtleVN5c3RlbVdhc0dyYW50ZWQo
dWludDY0X3QgbWVkaWFLZXlTeXN0ZW1JRCkgLT4gKCkgQXN5bmMKKyAgICBNZWRpYUtleVN5c3Rl
bVdhc0RlbmllZCh1aW50NjRfdCBtZWRpYUtleVN5c3RlbUlELCBTdHJpbmcgbWVzc2FnZSkKKyNl
bmRpZgorCiAgICAgUmVxdWVzdE1lZGlhUGxheWJhY2tTdGF0ZSgpIC0+IChlbnVtOnVpbnQ4X3Qg
V2ViS2l0OjpNZWRpYVBsYXliYWNrU3RhdGUgc3RhdGUpIEFzeW5jCiAgICAgUGF1c2VBbGxNZWRp
YVBsYXliYWNrKCkgLT4gKCkgQXN5bmMKICAgICBTdXNwZW5kQWxsTWVkaWFQbGF5YmFjaygpIC0+
ICgpIEFzeW5jCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L1dlYktpdExlZ2FjeS54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYktpdExlZ2FjeS9XZWJLaXRMZWdh
Y3kueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA0MGQ3ZjA3OWQwYmFiN2IzOGM5NmYx
MTkxMGU3YzczZDQyOWM1NzM5Li43ZTFjNTBiZDM3ZjBkZjMxYTYyOTY1NzUwNzcwZWM1MTg2NGZl
ODk1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L1dlYktpdExlZ2FjeS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvV2ViS2l0TGVnYWN5
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTU4MSw2ICs1ODEsOCBAQAogCQk5M0UyQTFB
NDEyM0IwQjNDMDA5RkUxMkEgLyogV2ViRGFzaGJvYXJkUmVnaW9uLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0UyQTFBMjEyM0IwQjNDMDA5RkUxMkEg
LyogV2ViRGFzaGJvYXJkUmVnaW9uLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKIAkJOTNFMkExQTUxMjNCMEIzQzAwOUZFMTJBIC8qIFdlYkRhc2hib2Fy
ZFJlZ2lvbi5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDkzRTJBMUEzMTIzQjBCM0MwMDlGRTEyQSAvKiBXZWJEYXNoYm9hcmRSZWdpb24ubW0gKi87IH07
CiAJCTkzRkRFOTMzMEQ3OUNBRjMwMDc0RjAyOSAvKiBXZWJIaXN0b3J5SW50ZXJuYWwuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzRkRFOTMyMEQ3OUNB
RjMwMDc0RjAyOSAvKiBXZWJIaXN0b3J5SW50ZXJuYWwuaCAqLzsgfTsKKwkJOUFDQzA3QkMyNUM4
NUE0NzAwREM2Mzg2IC8qIFdlYk1lZGlhS2V5U3lzdGVtQ2xpZW50Lm1tIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOUFDQzA3QkIyNUM4NUE0NzAwREM2Mzg2
IC8qIFdlYk1lZGlhS2V5U3lzdGVtQ2xpZW50Lm1tICovOyB9OworCQk5QUNDMDdCRTI1Qzg1QTU5
MDBEQzYzODYgLyogV2ViTWVkaWFLZXlTeXN0ZW1DbGllbnQuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDlBQ0MwN0JEMjVDODVBNTkwMERDNjM4NiAvKiBX
ZWJNZWRpYUtleVN5c3RlbUNsaWVudC5oICovOyB9OwogCQlBMTBDMUQxODE4MjAyRjlDMDAzNjg4
M0EgLyogV2ViRGVmYXVsdEZvcm1EZWxlZ2F0ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gQTEwQzFEMTAxODIwMkY5QzAwMzY4ODNBIC8qIFdlYkRlZmF1
bHRGb3JtRGVsZWdhdGUuaCAqLzsgfTsKIAkJQTEwQzFEMTkxODIwMkY5QzAwMzY4ODNBIC8qIFdl
YkRlZmF1bHRGb3JtRGVsZWdhdGUubSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEExMEMxRDExMTgyMDJGOUMwMDM2ODgzQSAvKiBXZWJEZWZhdWx0Rm9ybURl
bGVnYXRlLm0gKi87IH07CiAJCUExMEMxRDFBMTgyMDJGOUMwMDM2ODgzQSAvKiBXZWJEZWZhdWx0
RnJhbWVMb2FkRGVsZWdhdGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEExMEMxRDEyMTgyMDJGOUMwMDM2ODgzQSAvKiBXZWJEZWZhdWx0RnJhbWVMb2Fk
RGVsZWdhdGUuaCAqLzsgfTsKQEAgLTE0MTIsNiArMTQxNCw4IEBACiAJCTkzRTJBMUEyMTIzQjBC
M0MwMDlGRTEyQSAvKiBXZWJEYXNoYm9hcmRSZWdpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gV2ViRGFzaGJvYXJkUmVnaW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTkzRTJBMUEzMTIzQjBCM0MwMDlGRTEyQSAvKiBXZWJEYXNoYm9hcmRSZWdpb24ubW0g
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBXZWJEYXNoYm9hcmRSZWdp
b24ubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzRkRFOTMyMEQ3OUNBRjMwMDc0
RjAyOSAvKiBXZWJIaXN0b3J5SW50ZXJuYWwuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gV2ViSGlzdG9yeUludGVybmFsLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CTlBQ0MwN0JCMjVDODVBNDcwMERDNjM4NiAvKiBXZWJNZWRpYUtleVN5c3RlbUNsaWVudC5tbSAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdlYk1lZGlhS2V5U3lzdGVt
Q2xpZW50Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5QUNDMDdCRDI1Qzg1QTU5
MDBEQzYzODYgLyogV2ViTWVkaWFLZXlTeXN0ZW1DbGllbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gV2ViTWVkaWFLZXlTeXN0ZW1DbGllbnQuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJOUNBRTlEMDcwMjUyQTQxMzBFQ0ExNkVBIC8qIFdlYlByZWZlcmVuY2Vz
UHJpdmF0ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGluZGVudFdpZHRoID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IFdlYlByZWZlcmVuY2VzUHJpdmF0ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB0YWJX
aWR0aCA9IDg7IHVzZXNUYWJzID0gMDsgfTsKIAkJOUNGMEUyNDkwMjEzNjFCMDBFQ0ExNkVBIC8q
IFdlYkZyYW1lUHJpdmF0ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGluZGVudFdpZHRoID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IFdlYkZyYW1lUHJpdmF0ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB0
YWJXaWR0aCA9IDg7IHVzZXNUYWJzID0gMDsgfTsKIAkJQTEwQzFEMTAxODIwMkY5QzAwMzY4ODNB
IC8qIFdlYkRlZmF1bHRGb3JtRGVsZWdhdGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBu
YW1lID0gV2ViRGVmYXVsdEZvcm1EZWxlZ2F0ZS5oOyBwYXRoID0gaW9zL0RlZmF1bHREZWxlZ2F0
ZXMvV2ViRGVmYXVsdEZvcm1EZWxlZ2F0ZS5oOyBzb3VyY2VUcmVlID0gU09VUkNFX1JPT1Q7IH07
CkBAIC0yNjczLDYgKzI2NzcsOCBAQAogCQkJCTkzNDVENEVCMDM2NUM1QjIwMDg2MzVDRSAvKiBX
ZWJKYXZhU2NyaXB0VGV4dElucHV0UGFuZWwubSAqLywKIAkJCQlDRDhCRkNFNjE1NTMxMjI0MDA1
QUZCMjUgLyogV2ViS2l0RnVsbFNjcmVlbkxpc3RlbmVyLmggKi8sCiAJCQkJQ0Q4QkZDRTUxNTUz
MTIyNDAwNUFGQjI1IC8qIFdlYktpdEZ1bGxTY3JlZW5MaXN0ZW5lci5tbSAqLywKKwkJCQk5QUND
MDdCRDI1Qzg1QTU5MDBEQzYzODYgLyogV2ViTWVkaWFLZXlTeXN0ZW1DbGllbnQuaCAqLywKKwkJ
CQk5QUNDMDdCQjI1Qzg1QTQ3MDBEQzYzODYgLyogV2ViTWVkaWFLZXlTeXN0ZW1DbGllbnQubW0g
Ki8sCiAJCQkJMzFDMTFBNkMxNDc2NTUyRTAwNDlBNENDIC8qIFdlYk5vdGlmaWNhdGlvbkNsaWVu
dC5oICovLAogCQkJCTMxQzExQTZEMTQ3NjU1MkUwMDQ5QTRDQyAvKiBXZWJOb3RpZmljYXRpb25D
bGllbnQubW0gKi8sCiAJCQkJQTU4QTU3OTcxNDNFNzI3MDAwMTI1RjUwIC8qIFdlYk9wZW5QYW5l
bFJlc3VsdExpc3RlbmVyLmggKi8sCkBAIC0zMTA4LDYgKzMxMTQsNyBAQAogCQkJCTkzOTgxMDc5
MDgyNEJGMDEwMDhERjAzOCAvKiBXZWJMb2NhbGl6YWJsZVN0cmluZ3MuaCBpbiBIZWFkZXJzICov
LAogCQkJCUJDNDJEMzI0MTMxRUQxRTAwMDc1RkE0QiAvKiBXZWJMb2NhbGl6YWJsZVN0cmluZ3NJ
bnRlcm5hbC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTEwQzFEODAxODIwMzAzRDAwMzY4ODNBIC8q
IFdlYk1haWxEZWxlZ2F0ZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJOUFDQzA3QkUyNUM4NUE1OTAw
REM2Mzg2IC8qIFdlYk1lZGlhS2V5U3lzdGVtQ2xpZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQkw
NzJFNUY0NTFBQkY4ODc1MDAwM0IxNjQgLyogV2ViTWVkaWFQbGF5YmFja1RhcmdldFBpY2tlci5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJQTEwQzFENzIxODIwMzAwRTAwMzY4ODNBIC8qIFdlYk1JTUVU
eXBlUmVnaXN0cnkuaCBpbiBIZWFkZXJzICovLAogCQkJCTUxODVGNjI2MTA3MTJCODAwMDdBQTM5
MyAvKiBXZWJOYXZpZ2F0aW9uRGF0YS5oIGluIEhlYWRlcnMgKi8sCkBAIC0zNjUwLDYgKzM2NTcs
NyBAQAogCQkJCTUxMjBDODJDMUU1NENFOEEwMDI1QjI1MCAvKiBXZWJLaXRWZXJzaW9uQ2hlY2tz
Lm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJRUQ1Qjk1MjQxMTFCNzI1QTAwNDcyMjk4IC8qIFdlYkxv
Y2FsaXphYmxlU3RyaW5ncy5tbSBpbiBTb3VyY2VzICovLAogCQkJCUJDNDJEMzREMTMxRUQzODgw
MDc1RkE0QiAvKiBXZWJMb2NhbGl6YWJsZVN0cmluZ3NJbnRlcm5hbC5tbSBpbiBTb3VyY2VzICov
LAorCQkJCTlBQ0MwN0JDMjVDODVBNDcwMERDNjM4NiAvKiBXZWJNZWRpYUtleVN5c3RlbUNsaWVu
dC5tbSBpbiBTb3VyY2VzICovLAogCQkJCTA3MkU1RjQ2MUFCRjg4NzUwMDAzQjE2NCAvKiBXZWJN
ZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJQTEwQzFENzMx
ODIwMzAwRTAwMzY4ODNBIC8qIFdlYk1JTUVUeXBlUmVnaXN0cnkubW0gaW4gU291cmNlcyAqLywK
IAkJCQk1MTg1RjYyODEwNzEyQjk3MDA3QUEzOTMgLyogV2ViTmF2aWdhdGlvbkRhdGEubW0gaW4g
U291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVT
dXBwb3J0L1dlYk1lZGlhS2V5U3lzdGVtQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21h
Yy9XZWJDb3JlU3VwcG9ydC9XZWJNZWRpYUtleVN5c3RlbUNsaWVudC5oCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmUz
YTMxYWUwOThiNjJkNGE5MjBmMjQ0ZjI3ZTM0ZjkyN2I3ZGY3N2YKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJNZWRpYUtleVN5c3Rl
bUNsaWVudC5oCkBAIC0wLDAgKzEsMzcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgSWdh
bGlhIFMuTC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgor
ICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAq
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI2ltcG9ydCA8V2ViQ29yZS9NZWRpYUtleVN5c3RlbUNsaWVu
dC5oPgorCitjbGFzcyBXZWJNZWRpYUtleVN5c3RlbUNsaWVudCA6IHB1YmxpYyBXZWJDb3JlOjpN
ZWRpYUtleVN5c3RlbUNsaWVudCB7CisgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CitwdWJs
aWM6CisgICAgV2ViTWVkaWFLZXlTeXN0ZW1DbGllbnQoKSA9IGRlZmF1bHQ7CisKKyAgICB2b2lk
IHBhZ2VEZXN0cm95ZWQoKSBvdmVycmlkZSB7IH0KKworICAgIHZvaWQgcmVxdWVzdE1lZGlhS2V5
U3lzdGVtKFdlYkNvcmU6Ok1lZGlhS2V5U3lzdGVtUmVxdWVzdCYpIG92ZXJyaWRlOworICAgIHZv
aWQgY2FuY2VsTWVkaWFLZXlTeXN0ZW1SZXF1ZXN0KFdlYkNvcmU6Ok1lZGlhS2V5U3lzdGVtUmVx
dWVzdCYpIG92ZXJyaWRlIHsgfQorfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kv
bWFjL1dlYkNvcmVTdXBwb3J0L1dlYk1lZGlhS2V5U3lzdGVtQ2xpZW50Lm1tIGIvU291cmNlL1dl
YktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViTWVkaWFLZXlTeXN0ZW1DbGllbnQubW0K
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uMGM0NGM1MTExM2RjZGE5NWY2NjJkYzdhOTAzZDc0ZTZkNmEyYTlkZAotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dl
Yk1lZGlhS2V5U3lzdGVtQ2xpZW50Lm1tCkBAIC0wLDAgKzEsNDQgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMjEgSWdhbGlhIFMuTC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisg
KiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICog
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2ltcG9ydCAiV2ViTWVkaWFLZXlT
eXN0ZW1DbGllbnQuaCIKKworI2lmIEVOQUJMRShFTkNSWVBURURfTUVESUEpCisKKyNpbXBvcnQg
PFdlYkNvcmUvTWVkaWFLZXlTeXN0ZW1SZXF1ZXN0Lmg+CisjaW1wb3J0IDx3dGYvQmxvY2tPYmpD
RXhjZXB0aW9ucy5oPgorCit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKKwordm9pZCBXZWJNZWRp
YUtleVN5c3RlbUNsaWVudDo6cmVxdWVzdE1lZGlhS2V5U3lzdGVtKE1lZGlhS2V5U3lzdGVtUmVx
dWVzdCYgcmVxdWVzdCkKK3sKKyAgICBCRUdJTl9CTE9DS19PQkpDX0VYQ0VQVElPTlMKKworICAg
IHJlcXVlc3QuYWxsb3coW10geyB9KTsKKworICAgIEVORF9CTE9DS19PQkpDX0VYQ0VQVElPTlMK
K30KKworI2VuZGlmIC8vIEVOQUJMRShFTkNSWVBURURfTUVESUEpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0TGVn
YWN5L21hYy9XZWJWaWV3L1dlYlZpZXcubW0KaW5kZXggNjg1YWNiMWNkYmYyM2QyNjRmZGI4Njlm
OTFjYTBiOTQ3MTkxM2Q4Ni4uY2RlNjA1NDNmYTY4MThjNTAyZmE5OGE5Mzc0MmQ0YzJkZmI2NzI3
MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJWaWV3Lm1t
CisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQpAQCAtODUs
NiArODUsNyBAQAogI2ltcG9ydCAiV2ViS2l0U3RhdGlzdGljc1ByaXZhdGUuaCIKICNpbXBvcnQg
IldlYktpdFZlcnNpb25DaGVja3MuaCIKICNpbXBvcnQgIldlYkxvY2FsaXphYmxlU3RyaW5ncy5o
IgorI2ltcG9ydCAiV2ViTWVkaWFLZXlTeXN0ZW1DbGllbnQuaCIKICNpbXBvcnQgIldlYk5TRGF0
YUV4dHJhcy5oIgogI2ltcG9ydCAiV2ViTlNEYXRhRXh0cmFzUHJpdmF0ZS5oIgogI2ltcG9ydCAi
V2ViTlNEaWN0aW9uYXJ5RXh0cmFzLmgiCkBAIC0xNTY4LDYgKzE1NjksOSBAQCBzdGF0aWMgdm9p
ZCBXZWJLaXRJbml0aWFsaXplR2FtZXBhZFByb3ZpZGVySWZOZWNlc3NhcnkoKQogI2lmIEVOQUJM
RShERVZJQ0VfT1JJRU5UQVRJT04pICYmICFQTEFURk9STShJT1NfRkFNSUxZKQogICAgIFdlYkNv
cmU6OnByb3ZpZGVEZXZpY2VPcmllbnRhdGlvblRvKCpfcHJpdmF0ZS0+cGFnZSwgKm5ldyBXZWJE
ZXZpY2VPcmllbnRhdGlvbkNsaWVudChzZWxmKSk7CiAjZW5kaWYKKyNpZiBFTkFCTEUoRU5DUllQ
VEVEX01FRElBKQorICAgIFdlYkNvcmU6OnByb3ZpZGVNZWRpYUtleVN5c3RlbVRvKCpfcHJpdmF0
ZS0+cGFnZSwgKm5ldyBXZWJNZWRpYUtleVN5c3RlbUNsaWVudCgpKTsKKyNlbmRpZgogCiAjaWYg
RU5BQkxFKFJFTU9URV9JTlNQRUNUT1IpCiAgICAgX3ByaXZhdGUtPnBhZ2UtPnNldFJlbW90ZUlu
c3BlY3Rpb25BbGxvd2VkKHRydWUpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9v
bHMvQ2hhbmdlTG9nCmluZGV4IDVlZTY4YmMwOWQwNTMxZjRiNmQ4MjZkNjBjNzRhYjRmNDdmYzZl
NWUuLjE1MjgyZjczNDE2OWZjYjFkOGQ5Y2M2NmE1YzMyMmIwN2ZkYzIzOWYgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNSBAQAor
MjAyMS0wMS0zMSAgUGhpbGlwcGUgTm9ybWFuZCAgPHBub3JtYW5kQGlnYWxpYS5jb20+CisKKyAg
ICAgICAgUGVybWlzc2lvbiByZXF1ZXN0IEFQSSBmb3IgTWVkaWFLZXlTeXN0ZW0gYWNjZXNzIHN1
cHBvcnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIy
MTE4NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFk
ZCBzdXBwb3J0IGZvciBzZXR0aW5nIHRoZSBwZXJtaXNzaW9uIHJlcXVlc3QgcmVzcG9uc2UgZnJv
bSB0aGUgVGVzdFJ1bm5lciwgZm9yIHVzYWdlIHdpdGhpbiBsYXlvdXQgdGVzdHMuCisKKyAgICAg
ICAgKiBXZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0JpbmRpbmdzL1Rlc3RSdW5uZXIu
aWRsOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5l
ci5jcHA6CisgICAgICAgIChXVFI6OlRlc3RSdW5uZXI6OnNldElzTWVkaWFLZXlTeXN0ZW1QZXJt
aXNzaW9uR3JhbnRlZCk6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRs
ZS9UZXN0UnVubmVyLmg6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxl
ci5jcHA6CisgICAgICAgIChXVFI6OmRlY2lkZVBvbGljeUZvck1lZGlhS2V5U3lzdGVtUGVybWlz
c2lvblJlcXVlc3QpOgorICAgICAgICAoV1RSOjpUZXN0Q29udHJvbGxlcjo6Y29tcGxldGVNZWRp
YUtleVN5c3RlbVBlcm1pc3Npb25DaGVjayk6CisgICAgICAgIChXVFI6OlRlc3RDb250cm9sbGVy
OjpzZXRJc01lZGlhS2V5U3lzdGVtUGVybWlzc2lvbkdyYW50ZWQpOgorICAgICAgICAoV1RSOjpU
ZXN0Q29udHJvbGxlcjo6Y3JlYXRlV2ViVmlld1dpdGhPcHRpb25zKToKKyAgICAgICAgKiBXZWJL
aXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmg6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5l
ci9UZXN0SW52b2NhdGlvbi5jcHA6CisgICAgICAgIChXVFI6OlRlc3RJbnZvY2F0aW9uOjpkaWRS
ZWNlaXZlU3luY2hyb25vdXNNZXNzYWdlRnJvbUluamVjdGVkQnVuZGxlKToKKwogMjAyMS0wMi0w
NCAgQWFrYXNoIEphaW4gIDxhYWthc2hfamFpbkBhcHBsZS5jb20+CiAKICAgICAgICAgW2J1aWxk
LndlYmtpdC5vcmddIFVwZGF0ZSBkYXNoYm9hcmQgbGlua3MgZm9yIGxheW91dCB0ZXN0IHJlc3Vs
dHMKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmlu
ZGluZ3MvVGVzdFJ1bm5lci5pZGwgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVu
ZGxlL0JpbmRpbmdzL1Rlc3RSdW5uZXIuaWRsCmluZGV4IGRiMTU5OWEyYzU2MDJhZTgxYWIyZjI0
ZTA4ZjlmOTU1MzljMDViOWEuLmEwNzFlY2RkZDllNDM0ODNmZTc3MTk2ODZjMzVhNGYzN2I4YjFi
YzcgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmlu
ZGluZ3MvVGVzdFJ1bm5lci5pZGwKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3Rl
ZEJ1bmRsZS9CaW5kaW5ncy9UZXN0UnVubmVyLmlkbApAQCAtNDA4LDQgKzQwOCw3IEBAIGludGVy
ZmFjZSBUZXN0UnVubmVyIHsKIAogICAgIC8vIFNwZWVjaFJlY29nbml0aW9uCiAgICAgdW5kZWZp
bmVkIHNldElzU3BlZWNoUmVjb2duaXRpb25QZXJtaXNzaW9uR3JhbnRlZChib29sZWFuIHZhbHVl
KTsKKworICAgIC8vIE1lZGlhS2V5U3lzdGVtCisgICAgdW5kZWZpbmVkIHNldElzTWVkaWFLZXlT
eXN0ZW1QZXJtaXNzaW9uR3JhbnRlZChib29sZWFuIHZhbHVlKTsKIH07CmRpZmYgLS1naXQgYS9U
b29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuY3BwIGIvVG9v
bHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmNwcAppbmRleCA2
MzgwOTg5MjUxOGNjZTNjZmQ2YmEyZGZhY2RjNmY1ZWY5MDNiYWI2Li44NjRjY2UyODU5N2E0MThk
ODlhNTM1N2RjOTIwMGNjZDAxOTRjN2Q1IDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVu
bmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuY3BwCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RS
dW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5jcHAKQEAgLTIwODQsNiArMjA4NCwxMSBA
QCB2b2lkIFRlc3RSdW5uZXI6OnNldElzU3BlZWNoUmVjb2duaXRpb25QZXJtaXNzaW9uR3JhbnRl
ZChib29sIGdyYW50ZWQpCiAgICAgcG9zdFN5bmNocm9ub3VzUGFnZU1lc3NhZ2UoInNldElzU3Bl
ZWNoUmVjb2duaXRpb25QZXJtaXNzaW9uR3JhbnRlZCIsIGdyYW50ZWQpOwogfQogCit2b2lkIFRl
c3RSdW5uZXI6OnNldElzTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uR3JhbnRlZChib29sIGdyYW50
ZWQpCit7CisgICAgcG9zdFN5bmNocm9ub3VzUGFnZU1lc3NhZ2UoInNldElzTWVkaWFLZXlTeXN0
ZW1QZXJtaXNzaW9uR3JhbnRlZCIsIGdyYW50ZWQpOworfQorCiBBTExPV19ERVBSRUNBVEVEX0RF
Q0xBUkFUSU9OU19FTkQKIAogfSAvLyBuYW1lc3BhY2UgV1RSCmRpZmYgLS1naXQgYS9Ub29scy9X
ZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuaCBiL1Rvb2xzL1dlYktp
dFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5oCmluZGV4IDkzYTk3Y2JkZGU0
ODc1Y2JkMzM1YTcwZmNiOWZmNTNkYjRmMjhiNDQuLmJjZjcxMGI3Yjg1NDY5ZjliYzY5MjA0MTI4
MjcxNDZkMjNiM2JjOTcgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0
ZWRCdW5kbGUvVGVzdFJ1bm5lci5oCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0
ZWRCdW5kbGUvVGVzdFJ1bm5lci5oCkBAIC01MTksNiArNTE5LDggQEAgcHVibGljOgogCiAgICAg
dm9pZCBzZXRJc1NwZWVjaFJlY29nbml0aW9uUGVybWlzc2lvbkdyYW50ZWQoYm9vbCk7CiAKKyAg
ICB2b2lkIHNldElzTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uR3JhbnRlZChib29sKTsKKwogcHJp
dmF0ZToKICAgICBUZXN0UnVubmVyKCk7CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RS
dW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29u
dHJvbGxlci5jcHAKaW5kZXggZDJjYmVmNDI1M2RmZTY1MTMyODcyM2Q1NzlkYjM0MTRiZjFkYTc4
Yy4uYjNmM2I5MzNkOWRhZjAwNmUwZmY4NzMyNDRlNzVhOTM2ZjcyMjhkOCAxMDA2NDQKLS0tIGEv
VG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAKKysrIGIvVG9vbHMvV2Vi
S2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAKQEAgLTQ2LDYgKzQ2LDcgQEAKICNpbmNs
dWRlIDxXZWJLaXQvV0tGcmFtZUluZm9SZWYuaD4KICNpbmNsdWRlIDxXZWJLaXQvV0tIVFRQQ29v
a2llU3RvcmVSZWYuaD4KICNpbmNsdWRlIDxXZWJLaXQvV0tJY29uRGF0YWJhc2UuaD4KKyNpbmNs
dWRlIDxXZWJLaXQvV0tNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25DYWxsYmFjay5oPgogI2luY2x1
ZGUgPFdlYktpdC9XS01lc3NhZ2VMaXN0ZW5lci5oPgogI2luY2x1ZGUgPFdlYktpdC9XS01vY2tE
aXNwbGF5Lmg+CiAjaW5jbHVkZSA8V2ViS2l0L1dLTW9ja01lZGlhRGV2aWNlLmg+CkBAIC0zNDMs
NiArMzQ0LDIxIEBAIHZvaWQgVGVzdENvbnRyb2xsZXI6OnNldElzU3BlZWNoUmVjb2duaXRpb25Q
ZXJtaXNzaW9uR3JhbnRlZChib29sIGdyYW50ZWQpCiAgICAgbV9pc1NwZWVjaFJlY29nbml0aW9u
UGVybWlzc2lvbkdyYW50ZWQgPSBncmFudGVkOwogfQogCitzdGF0aWMgdm9pZCBkZWNpZGVQb2xp
Y3lGb3JNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0KFdLUGFnZVJlZiwgV0tTZWN1cml0
eU9yaWdpblJlZiwgV0tTdHJpbmdSZWYsIFdLTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uQ2FsbGJh
Y2tSZWYgY2FsbGJhY2spCit7CisgICAgVGVzdENvbnRyb2xsZXI6OnNpbmdsZXRvbigpLmNvbXBs
ZXRlTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uQ2hlY2soY2FsbGJhY2spOworfQorCit2b2lkIFRl
c3RDb250cm9sbGVyOjpjb21wbGV0ZU1lZGlhS2V5U3lzdGVtUGVybWlzc2lvbkNoZWNrKFdLTWVk
aWFLZXlTeXN0ZW1QZXJtaXNzaW9uQ2FsbGJhY2tSZWYgY2FsbGJhY2spCit7CisgICAgV0tNZWRp
YUtleVN5c3RlbVBlcm1pc3Npb25DYWxsYmFja0NvbXBsZXRlKGNhbGxiYWNrLCBtX2lzTWVkaWFL
ZXlTeXN0ZW1QZXJtaXNzaW9uR3JhbnRlZCk7Cit9CisKK3ZvaWQgVGVzdENvbnRyb2xsZXI6OnNl
dElzTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uR3JhbnRlZChib29sIGdyYW50ZWQpCit7CisgICAg
bV9pc01lZGlhS2V5U3lzdGVtUGVybWlzc2lvbkdyYW50ZWQgPSBncmFudGVkOworfQorCiBXS1Bh
Z2VSZWYgVGVzdENvbnRyb2xsZXI6OmNyZWF0ZU90aGVyUGFnZShXS1BhZ2VSZWYsIFdLUGFnZUNv
bmZpZ3VyYXRpb25SZWYgY29uZmlndXJhdGlvbiwgV0tOYXZpZ2F0aW9uQWN0aW9uUmVmIG5hdmln
YXRpb25BY3Rpb24sIFdLV2luZG93RmVhdHVyZXNSZWYgd2luZG93RmVhdHVyZXMsIGNvbnN0IHZv
aWQgKmNsaWVudEluZm8pCiB7CiAgICAgUGxhdGZvcm1XZWJWaWV3KiBwYXJlbnRWaWV3ID0gc3Rh
dGljX2Nhc3Q8UGxhdGZvcm1XZWJWaWV3Kj4oY29uc3RfY2FzdDx2b2lkKj4oY2xpZW50SW5mbykp
OwpAQCAtNjk5LDggKzcxNSw4IEBAIHZvaWQgVGVzdENvbnRyb2xsZXI6OmNyZWF0ZVdlYlZpZXdX
aXRoT3B0aW9ucyhjb25zdCBUZXN0T3B0aW9ucyYgb3B0aW9ucykKICAgICBXS0hUVFBDb29raWVT
dG9yZURlbGV0ZUFsbENvb2tpZXMoV0tXZWJzaXRlRGF0YVN0b3JlR2V0SFRUUENvb2tpZVN0b3Jl
KHdlYnNpdGVEYXRhU3RvcmUoKSksIG51bGxwdHIsIG51bGxwdHIpOwogCiAgICAgcGxhdGZvcm1D
cmVhdGVXZWJWaWV3KGNvbmZpZ3VyYXRpb24uZ2V0KCksIG9wdGlvbnMpOwotICAgIFdLUGFnZVVJ
Q2xpZW50VjE1IHBhZ2VVSUNsaWVudCA9IHsKLSAgICAgICAgeyAxNSwgbV9tYWluV2ViVmlldy5n
ZXQoKSB9LAorICAgIFdLUGFnZVVJQ2xpZW50VjE2IHBhZ2VVSUNsaWVudCA9IHsKKyAgICAgICAg
eyAxNiwgbV9tYWluV2ViVmlldy5nZXQoKSB9LAogICAgICAgICAwLCAvLyBjcmVhdGVOZXdQYWdl
X2RlcHJlY2F0ZWRGb3JVc2VXaXRoVjAKICAgICAgICAgMCwgLy8gc2hvd1BhZ2UKICAgICAgICAg
MCwgLy8gY2xvc2UKQEAgLTc3NCw3ICs3OTAsOCBAQCB2b2lkIFRlc3RDb250cm9sbGVyOjpjcmVh
dGVXZWJWaWV3V2l0aE9wdGlvbnMoY29uc3QgVGVzdE9wdGlvbnMmIG9wdGlvbnMpCiAgICAgICAg
IDAsIC8vIHJlcXVlc3RTdG9yYWdlQWNjZXNzQ29uZmlybQogICAgICAgICBzaG91bGRBbGxvd0Rl
dmljZU9yaWVudGF0aW9uQW5kTW90aW9uQWNjZXNzLAogICAgICAgICBydW5XZWJBdXRoZW50aWNh
dGlvblBhbmVsLAotICAgICAgICBkZWNpZGVQb2xpY3lGb3JTcGVlY2hSZWNvZ25pdGlvblBlcm1p
c3Npb25SZXF1ZXN0CisgICAgICAgIGRlY2lkZVBvbGljeUZvclNwZWVjaFJlY29nbml0aW9uUGVy
bWlzc2lvblJlcXVlc3QsCisgICAgICAgIGRlY2lkZVBvbGljeUZvck1lZGlhS2V5U3lzdGVtUGVy
bWlzc2lvblJlcXVlc3QKICAgICB9OwogICAgIFdLUGFnZVNldFBhZ2VVSUNsaWVudChtX21haW5X
ZWJWaWV3LT5wYWdlKCksICZwYWdlVUlDbGllbnQuYmFzZSk7CiAKZGlmZiAtLWdpdCBhL1Rvb2xz
L1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuaCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5u
ZXIvVGVzdENvbnRyb2xsZXIuaAppbmRleCBiYjc1ZDUwNzAyYzNhNTNmMzlkZTE1ODFkY2M0ZDNi
MzM3Mzk2NGNiLi44MThjMmI0ZWM0YTU2MmJjMDY3YTRmM2Q1Y2ViYmNkYmQwNWMwNDdjIDEwMDY0
NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmgKKysrIGIvVG9v
bHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5oCkBAIC0zNTYsNiArMzU2LDkgQEAg
cHVibGljOgogICAgIHZvaWQgY29tcGxldGVTcGVlY2hSZWNvZ25pdGlvblBlcm1pc3Npb25DaGVj
ayhXS1NwZWVjaFJlY29nbml0aW9uUGVybWlzc2lvbkNhbGxiYWNrUmVmKTsKICAgICB2b2lkIHNl
dElzU3BlZWNoUmVjb2duaXRpb25QZXJtaXNzaW9uR3JhbnRlZChib29sKTsKIAorICAgIHZvaWQg
Y29tcGxldGVNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25DaGVjayhXS01lZGlhS2V5U3lzdGVtUGVy
bWlzc2lvbkNhbGxiYWNrUmVmKTsKKyAgICB2b2lkIHNldElzTWVkaWFLZXlTeXN0ZW1QZXJtaXNz
aW9uR3JhbnRlZChib29sKTsKKwogcHJpdmF0ZToKICAgICBXS1JldGFpblB0cjxXS1BhZ2VDb25m
aWd1cmF0aW9uUmVmPiBnZW5lcmF0ZVBhZ2VDb25maWd1cmF0aW9uKGNvbnN0IFRlc3RPcHRpb25z
Jik7CiAgICAgV0tSZXRhaW5QdHI8V0tDb250ZXh0Q29uZmlndXJhdGlvblJlZj4gZ2VuZXJhdGVD
b250ZXh0Q29uZmlndXJhdGlvbihjb25zdCBUZXN0T3B0aW9ucyYpIGNvbnN0OwpAQCAtNjQ3LDYg
KzY1MCw4IEBAIHByaXZhdGU6CiAjZW5kaWYKIAogICAgIGJvb2wgbV9pc1NwZWVjaFJlY29nbml0
aW9uUGVybWlzc2lvbkdyYW50ZWQgeyBmYWxzZSB9OworCisgICAgYm9vbCBtX2lzTWVkaWFLZXlT
eXN0ZW1QZXJtaXNzaW9uR3JhbnRlZCB7IHRydWUgfTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdU
UgpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0SW52b2NhdGlvbi5jcHAg
Yi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RJbnZvY2F0aW9uLmNwcAppbmRleCA1OThkZmM3
ZDFhYzBlMzdiYjIyZmI3ODRiYTE1NGFiNzQ3N2FlYTE1Li41NTAzNTVjN2I4Yjk4NDg0YTdkMjhj
ZjU1OTVmNjM4NzUxN2JmNGJhIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rl
c3RJbnZvY2F0aW9uLmNwcAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RJbnZvY2F0
aW9uLmNwcApAQCAtMTM2MCw2ICsxMzYwLDExIEBAIFdLUmV0YWluUHRyPFdLVHlwZVJlZj4gVGVz
dEludm9jYXRpb246OmRpZFJlY2VpdmVTeW5jaHJvbm91c01lc3NhZ2VGcm9tSW5qZWN0ZWRCCiAg
ICAgICAgIHJldHVybiBudWxscHRyOwogICAgIH0KIAorICAgIGlmIChXS1N0cmluZ0lzRXF1YWxU
b1VURjhDU3RyaW5nKG1lc3NhZ2VOYW1lLCAic2V0SXNNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25H
cmFudGVkIikpIHsKKyAgICAgICAgVGVzdENvbnRyb2xsZXI6OnNpbmdsZXRvbigpLnNldElzTWVk
aWFLZXlTeXN0ZW1QZXJtaXNzaW9uR3JhbnRlZChib29sZWFuVmFsdWUobWVzc2FnZUJvZHkpKTsK
KyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgfQorCiAgICAgQVNTRVJUX05PVF9SRUFDSEVE
KCk7CiAgICAgcmV0dXJuIG51bGxwdHI7CiB9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggNDJlMTA4NWI0OWM4YWJhZDcxZDBm
MzExN2RmNGY0MDAxYjA2MDY3NC4uYzgwZDY2NGVmNGVmZDEwNzZkN2RhOWZhMDc3M2Y2MDdiNjcx
Y2NlOCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDIxLTAxLTMxICBQaGlsaXBwZSBOb3JtYW5k
ICA8cG5vcm1hbmRAaWdhbGlhLmNvbT4KKworICAgICAgICBQZXJtaXNzaW9uIHJlcXVlc3QgQVBJ
IGZvciBNZWRpYUtleVN5c3RlbSBhY2Nlc3Mgc3VwcG9ydAorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjIxMTg3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIGJhc2ljIGNvdmVyYWdlIHN1cHBvcnQgZm9y
IG92ZXJyaWRpbmcgdGhlIE1lZGlhS2V5U3lzdGVtIHBlcm1pc3Npb24gYW5zd2VyIGFuZCB0aHVz
IGhhdmUKKyAgICAgICAgdGhlIHByb21pc2UgcmVqZWN0aW9uIHRlc3RlZCBpbiB0aGlzIGNhc2Uu
CisKKyAgICAgICAgKiBtZWRpYS9lbmNyeXB0ZWQtbWVkaWEvbW9jay1NZWRpYUtleVN5c3RlbUFj
Y2Vzcy1leHBlY3RlZC50eHQ6CisgICAgICAgICogbWVkaWEvZW5jcnlwdGVkLW1lZGlhL21vY2st
TWVkaWFLZXlTeXN0ZW1BY2Nlc3MuaHRtbDoKKwogMjAyMS0wMi0wNSAgRGV2aW4gUm91c3NvICA8
ZHJvdXNzb0BhcHBsZS5jb20+CiAKICAgICAgICAgQWRkIGludGVybWVkaWF0ZSB2b2x1bWUgaWNv
biBzdGF0ZXMgYmV0d2VlbiAibXV0ZSIgYW5kICJtYXgiCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9tZWRpYS9lbmNyeXB0ZWQtbWVkaWEvbW9jay1NZWRpYUtleVN5c3RlbUFjY2Vzcy1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9tZWRpYS9lbmNyeXB0ZWQtbWVkaWEvbW9jay1NZWRpYUtleVN5
c3RlbUFjY2Vzcy1leHBlY3RlZC50eHQKaW5kZXggMjA5MjM0ZDUxMTk4ZjBjMTI0OGFlZDZlYzNi
NzU2M2ExNzUwZGRjNC4uMTIwYmExZjJjMjg3Y2ViNzY4ZWYwYTZmNGEyZjhlNDkyZWVhNGFhMCAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvbWVkaWEvZW5jcnlwdGVkLW1lZGlhL21vY2stTWVkaWFL
ZXlTeXN0ZW1BY2Nlc3MtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL21lZGlhL2VuY3J5
cHRlZC1tZWRpYS9tb2NrLU1lZGlhS2V5U3lzdGVtQWNjZXNzLWV4cGVjdGVkLnR4dApAQCAtMzEs
NiArMzEsMTAgQEAgUlVOKGNhcGFiaWxpdGllcy5wZXJzaXN0ZW50U3RhdGUgPSAibm90LWFsbG93
ZWQiKQogUlVOKHByb21pc2UgPSBuYXZpZ2F0b3IucmVxdWVzdE1lZGlhS2V5U3lzdGVtQWNjZXNz
KCJvcmcud2Via2l0Lm1vY2siLCBbY2FwYWJpbGl0aWVzXSkpCiBQcm9taXNlIHJlc29sdmVkIE9L
CiAKK1JVTih0ZXN0UnVubmVyLnNldElzTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uR3JhbnRlZChm
YWxzZSkpCitSVU4ocHJvbWlzZSA9IG5hdmlnYXRvci5yZXF1ZXN0TWVkaWFLZXlTeXN0ZW1BY2Nl
c3MoIm9yZy53ZWJraXQubW9jayIsIFtjYXBhYmlsaXRpZXNdKSkKK1Byb21pc2UgcmVqZWN0ZWQg
Y29ycmVjdGx5IE9LCisKIFJVTihwcm9taXNlID0gbWVkaWFLZXlTeXN0ZW1BY2Nlc3MuY3JlYXRl
TWVkaWFLZXlzKCkpCiBQcm9taXNlIHJlc29sdmVkIE9LCiAKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL21lZGlhL2VuY3J5cHRlZC1tZWRpYS9tb2NrLU1lZGlhS2V5U3lzdGVtQWNjZXNzLmh0bWwg
Yi9MYXlvdXRUZXN0cy9tZWRpYS9lbmNyeXB0ZWQtbWVkaWEvbW9jay1NZWRpYUtleVN5c3RlbUFj
Y2Vzcy5odG1sCmluZGV4IDQ3OTZmMThjMjAxZjE3NDZkN2RmNDMyNzQyZDk3NWM3NWVlNGJhNzUu
LjU1NWI5ZWU3NjllZWJkMTZkOWE2NzY5MmI2MzcwM2Q0Y2EzMmM3MDkgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL21lZGlhL2VuY3J5cHRlZC1tZWRpYS9tb2NrLU1lZGlhS2V5U3lzdGVtQWNjZXNz
Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvbWVkaWEvZW5jcnlwdGVkLW1lZGlhL21vY2stTWVkaWFL
ZXlTeXN0ZW1BY2Nlc3MuaHRtbApAQCAtODQsNiArODQsMTMgQEAKICAgICAgICAgfSwKIAogICAg
ICAgICBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIHJ1bigndGVzdFJ1bm5lci5zZXRJc01lZGlh
S2V5U3lzdGVtUGVybWlzc2lvbkdyYW50ZWQoZmFsc2UpJyk7CisgICAgICAgICAgICBydW4oJ3By
b21pc2UgPSBuYXZpZ2F0b3IucmVxdWVzdE1lZGlhS2V5U3lzdGVtQWNjZXNzKCJvcmcud2Via2l0
Lm1vY2siLCBbY2FwYWJpbGl0aWVzXSknKTsKKyAgICAgICAgICAgIHNob3VsZFJlamVjdChwcm9t
aXNlKS50aGVuKG5leHQsIG5leHQpOworICAgICAgICB9LAorCisgICAgICAgIGZ1bmN0aW9uKCkg
eworICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRJc01lZGlhS2V5U3lzdGVtUGVybWlzc2lvbkdy
YW50ZWQodHJ1ZSk7CiAgICAgICAgICAgICBydW4oJ3Byb21pc2UgPSBtZWRpYUtleVN5c3RlbUFj
Y2Vzcy5jcmVhdGVNZWRpYUtleXMoKScpOwogICAgICAgICAgICAgc2hvdWxkUmVzb2x2ZShwcm9t
aXNlKS50aGVuKG5leHQsIG5leHQpOwogICAgICAgICB9LAo=
</data>
<flag name="commit-queue"
          id="437599"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>419384</attachid>
            <date>2021-02-05 03:12:50 -0800</date>
            <delta_ts>2021-02-06 15:58:30 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-221187-20210205031248.patch</filename>
            <type>text/plain</type>
            <size>137921</size>
            <attacher name="Philippe Normand">pnormand</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcyNDA4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDY1NTU5N2Y2NWVlNjhi
MzU4NTk2MzFmZjU2MjljMzNiZmE0YTliOC4uNDBiOTA0OGU1ZDk1NWIxOTAzZGFjZGZmMWZhMTZh
NzQ1ODk3NDNkZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ4IEBACisyMDIxLTAxLTMxICBQaGls
aXBwZSBOb3JtYW5kICA8cG5vcm1hbmRAaWdhbGlhLmNvbT4KKworICAgICAgICBQZXJtaXNzaW9u
IHJlcXVlc3QgQVBJIGZvciBNZWRpYUtleVN5c3RlbSBhY2Nlc3Mgc3VwcG9ydAorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjIxMTg3CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgU3VwcG9ydCBmb3IgdXNlciBw
ZXJtaXNzaW9uIHJlcXVlc3Rpbmcgd2hlbiBhY2Nlc3MgdG8gYW4gRU1FIE1lZGlhS2V5U3lzdGVt
IGlzIGJlaW5nCisgICAgICAgIHJlcXVlc3RlZCBieSB0aGUgcGFnZS4gVGhpcyBpcyBzaW1pbGFy
IHRvIHRoZSBtZWRpYURldmljZXMgYWNjZXNzIGd1YXJkcy4KKworICAgICAgICBFeGlzdGluZyB0
ZXN0IG1lZGlhL2VuY3J5cHRlZC1tZWRpYS9tb2NrLU1lZGlhS2V5U3lzdGVtQWNjZXNzLmh0bWwg
d2FzIHVwZGF0ZWQgdG8gY292ZXIgdGhpcworICAgICAgICBuZXcgY29kZSBwYXRoIGFuZCBXUEUv
R1RLIEFQSSB0ZXN0cyBhcyB3ZWxsLgorCisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6CisgICAg
ICAgICogSGVhZGVycy5jbWFrZToKKyAgICAgICAgKiBNb2R1bGVzL2VuY3J5cHRlZG1lZGlhL01l
ZGlhS2V5U3lzdGVtQ2xpZW50Lmg6IEFkZGVkLgorICAgICAgICAqIE1vZHVsZXMvZW5jcnlwdGVk
bWVkaWEvTWVkaWFLZXlTeXN0ZW1Db250cm9sbGVyLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJD
b3JlOjpNZWRpYUtleVN5c3RlbUNvbnRyb2xsZXI6OnN1cHBsZW1lbnROYW1lKToKKyAgICAgICAg
KFdlYkNvcmU6Ok1lZGlhS2V5U3lzdGVtQ29udHJvbGxlcjo6TWVkaWFLZXlTeXN0ZW1Db250cm9s
bGVyKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhS2V5U3lzdGVtQ29udHJvbGxlcjo6fk1lZGlh
S2V5U3lzdGVtQ29udHJvbGxlcik6CisgICAgICAgIChXZWJDb3JlOjpwcm92aWRlTWVkaWFLZXlT
eXN0ZW1Ubyk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYUtleVN5c3RlbUNvbnRyb2xsZXI6Omxv
Z1JlcXVlc3RNZWRpYUtleVN5c3RlbURlbmlhbCk6CisgICAgICAgICogTW9kdWxlcy9lbmNyeXB0
ZWRtZWRpYS9NZWRpYUtleVN5c3RlbUNvbnRyb2xsZXIuaDogQWRkZWQuCisgICAgICAgIChXZWJD
b3JlOjpNZWRpYUtleVN5c3RlbUNvbnRyb2xsZXI6OmNsaWVudCBjb25zdCk6CisgICAgICAgIChX
ZWJDb3JlOjpNZWRpYUtleVN5c3RlbUNvbnRyb2xsZXI6OmZyb20pOgorICAgICAgICAoV2ViQ29y
ZTo6TWVkaWFLZXlTeXN0ZW1Db250cm9sbGVyOjpyZXF1ZXN0TWVkaWFLZXlTeXN0ZW0pOgorICAg
ICAgICAoV2ViQ29yZTo6TWVkaWFLZXlTeXN0ZW1Db250cm9sbGVyOjpjYW5jZWxNZWRpYUtleVN5
c3RlbVJlcXVlc3QpOgorICAgICAgICAqIE1vZHVsZXMvZW5jcnlwdGVkbWVkaWEvTWVkaWFLZXlT
eXN0ZW1SZXF1ZXN0LmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpNZWRpYUtleVN5c3Rl
bVJlcXVlc3Q6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYUtleVN5c3RlbVJlcXVl
c3Q6Ok1lZGlhS2V5U3lzdGVtUmVxdWVzdCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYUtleVN5
c3RlbVJlcXVlc3Q6On5NZWRpYUtleVN5c3RlbVJlcXVlc3QpOgorICAgICAgICAoV2ViQ29yZTo6
TWVkaWFLZXlTeXN0ZW1SZXF1ZXN0Ojp0b3BMZXZlbERvY3VtZW50T3JpZ2luIGNvbnN0KToKKyAg
ICAgICAgKFdlYkNvcmU6Ok1lZGlhS2V5U3lzdGVtUmVxdWVzdDo6c3RhcnQpOgorICAgICAgICAo
V2ViQ29yZTo6TWVkaWFLZXlTeXN0ZW1SZXF1ZXN0OjphbGxvdyk6CisgICAgICAgIChXZWJDb3Jl
OjpNZWRpYUtleVN5c3RlbVJlcXVlc3Q6OmRlbnkpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFL
ZXlTeXN0ZW1SZXF1ZXN0OjpzdG9wKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhS2V5U3lzdGVt
UmVxdWVzdDo6YWN0aXZlRE9NT2JqZWN0TmFtZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpN
ZWRpYUtleVN5c3RlbVJlcXVlc3Q6OmRvY3VtZW50IGNvbnN0KToKKyAgICAgICAgKiBNb2R1bGVz
L2VuY3J5cHRlZG1lZGlhL01lZGlhS2V5U3lzdGVtUmVxdWVzdC5oOiBBZGRlZC4KKyAgICAgICAg
KFdlYkNvcmU6Ok1lZGlhS2V5U3lzdGVtUmVxdWVzdDo6c2V0QWxsb3dDYWxsYmFjayk6CisgICAg
ICAgIChXZWJDb3JlOjpNZWRpYUtleVN5c3RlbVJlcXVlc3Q6OmlkZW50aWZpZXIgY29uc3QpOgor
ICAgICAgICAoV2ViQ29yZTo6TWVkaWFLZXlTeXN0ZW1SZXF1ZXN0OjprZXlTeXN0ZW0gY29uc3Qp
OgorICAgICAgICAqIE1vZHVsZXMvZW5jcnlwdGVkbWVkaWEvTmF2aWdhdG9yRU1FLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6Ok5hdmlnYXRvckVNRTo6cmVxdWVzdE1lZGlhS2V5U3lzdGVtQWNjZXNz
KToKKwogMjAyMS0wMi0wNCAgSnVsaWFuIEdvbnphbGV6ICA8anVsaWFuX2FfZ29uemFsZXpAYXBw
bGUuY29tPgogCiAgICAgICAgIE51bGwgZGVyZWZlcmVuY2UgaW4gRG9jdW1lbnRMb2FkZXI6OmNv
bW1pdERhdGEoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2Uv
V2ViS2l0L0NoYW5nZUxvZwppbmRleCBlNGZiMzNlNjJhNWFlNjg4OTg1ODVlZjBiMjBkMmI5N2M4
MTNjMTY0Li4yODg1YWM5MzU2NjNjZjU0NDNjYjZhMGY1NzgxMzM2ZWZmODQ4MDJkIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDk2IEBACisyMDIxLTAxLTMxICBQaGlsaXBwZSBOb3JtYW5kICA8cG5vcm1h
bmRAaWdhbGlhLmNvbT4KKworICAgICAgICBQZXJtaXNzaW9uIHJlcXVlc3QgQVBJIGZvciBNZWRp
YUtleVN5c3RlbSBhY2Nlc3Mgc3VwcG9ydAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MjIxMTg3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgQWRkIG5ldyBJUEMgYW5kIEMgQVBJIGV4cG9zaW5nIE1lZGlhS2V5
U3lzdGVtIGFjY2VzcyBwZXJtaXNzaW9ucyB0byB0aGUgVUlQcm9jZXNzLiBBdCBsZWFzdAorICAg
ICAgICBHVEsvV1BFIHdvdWxkIGxpa2UgdG8gaGF2ZSBBUEkgZm9yIGFza2luZyBwZXJtaXNzaW9u
IHRvIHRoZSB1c2VyIHdoZW4gRU1FJ3MgTWVkaWFLZXlBY2Nlc3MKKyAgICAgICAgaXMgYmVpbmcg
cmVxdWVzdGVkIGJ5IGEgcGFnZS4gT24gQXBwbGUgcGxhdGZvcm1zIHRoZSBwZXJtaXNzaW9uIGlz
IGdyYW50ZWQgYnkgZGVmYXVsdCB1bnRpbAorICAgICAgICBhIGRlY2lzaW9uIGlzIG1hZGUgYWJv
dXQgc3VwcG9ydGluZyB0aGlzIGluIHRoZWlyIEFQSVVJQ2xpZW50LgorCisgICAgICAgICogQ01h
a2VMaXN0cy50eHQ6CisgICAgICAgICogSGVhZGVycy5jbWFrZToKKyAgICAgICAgKiBQbGF0Zm9y
bS9Mb2dnaW5nLmg6CisgICAgICAgICogU2hhcmVkL0FQSS9BUElPYmplY3QuaDoKKyAgICAgICAg
KiBTaGFyZWQvQVBJL2MvV0tCYXNlLmg6CisgICAgICAgICogU291cmNlcy50eHQ6CisgICAgICAg
ICogVUlQcm9jZXNzL0FQSS9BUElVSUNsaWVudC5oOgorICAgICAgICAoQVBJOjpVSUNsaWVudDo6
ZGVjaWRlUG9saWN5Rm9yTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdCk6CisgICAgICAg
ICogVUlQcm9jZXNzL0FQSS9DL1dLQVBJQ2FzdC5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkv
Qy9XS01lZGlhS2V5U3lzdGVtUGVybWlzc2lvbkNhbGxiYWNrLmNwcDogQWRkZWQuCisgICAgICAg
IChXS01lZGlhS2V5U3lzdGVtUGVybWlzc2lvbkNhbGxiYWNrR2V0VHlwZUlEKToKKyAgICAgICAg
KFdLTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uQ2FsbGJhY2tDb21wbGV0ZSk6CisgICAgICAgICog
VUlQcm9jZXNzL0FQSS9DL1dLTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uQ2FsbGJhY2suaDogQWRk
ZWQuCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5jcHA6CisgICAgICAgIChXS1Bh
Z2VTZXRQYWdlVUlDbGllbnQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS1BhZ2VVSUNs
aWVudC5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9NZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1
ZXN0Lmg6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25S
ZXF1ZXN0OjpjcmVhdGUpOgorICAgICAgICAoV2ViS2l0OjpNZWRpYUtleVN5c3RlbVBlcm1pc3Np
b25SZXF1ZXN0Ojpjb21wbGV0ZSk6CisgICAgICAgIChXZWJLaXQ6Ok1lZGlhS2V5U3lzdGVtUGVy
bWlzc2lvblJlcXVlc3Q6OmtleVN5c3RlbSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6Ok1lZGlh
S2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3Q6Ok1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVl
c3QpOgorICAgICAgICAoV2ViS2l0OjpNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25DYWxsYmFjazo6
Y3JlYXRlKToKKyAgICAgICAgKFdlYktpdDo6TWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uQ2FsbGJh
Y2s6OmNvbXBsZXRlKToKKyAgICAgICAgKFdlYktpdDo6TWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9u
Q2FsbGJhY2s6Ok1lZGlhS2V5U3lzdGVtUGVybWlzc2lvbkNhbGxiYWNrKToKKyAgICAgICAgKiBV
SVByb2Nlc3MvTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5jcHA6
IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0
TWFuYWdlclByb3h5OjpNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5
KToKKyAgICAgICAgKFdlYktpdDo6TWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdE1hbmFn
ZXJQcm94eTo6fk1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkpOgor
ICAgICAgICAoV2ViS2l0OjpNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclBy
b3h5OjppbnZhbGlkYXRlUGVuZGluZ1JlcXVlc3RzKToKKyAgICAgICAgKFdlYktpdDo6TWVkaWFL
ZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6ZGVueVJlcXVlc3QpOgorICAg
ICAgICAoV2ViS2l0OjpNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5
OjpncmFudFJlcXVlc3QpOgorICAgICAgICAoV2ViS2l0OjpNZWRpYUtleVN5c3RlbVBlcm1pc3Np
b25SZXF1ZXN0TWFuYWdlclByb3h5OjpjcmVhdGVSZXF1ZXN0Rm9yRnJhbWUpOgorICAgICAgICAo
V2ViS2l0OjpNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5Ojpsb2dD
aGFubmVsIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6TWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9u
UmVxdWVzdE1hbmFnZXJQcm94eTo6bG9nZ2VyIGNvbnN0KToKKyAgICAgICAgKiBVSVByb2Nlc3Mv
TWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5oOiBBZGRlZC4KKyAg
ICAgICAgKFdlYktpdDo6TWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94
eTo6cGFnZSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6Ok1lZGlhS2V5U3lzdGVtUGVybWlzc2lv
blJlcXVlc3RNYW5hZ2VyUHJveHk6OmRlbnlSZXF1ZXN0KToKKyAgICAgICAgKiBVSVByb2Nlc3Mv
TWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdFByb3h5LmNwcDogQWRkZWQuCisgICAgICAg
IChXZWJLaXQ6Ok1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RQcm94eTo6TWVkaWFLZXlT
eXN0ZW1QZXJtaXNzaW9uUmVxdWVzdFByb3h5KToKKyAgICAgICAgKFdlYktpdDo6TWVkaWFLZXlT
eXN0ZW1QZXJtaXNzaW9uUmVxdWVzdFByb3h5OjphbGxvdyk6CisgICAgICAgIChXZWJLaXQ6Ok1l
ZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RQcm94eTo6ZGVueSk6CisgICAgICAgIChXZWJL
aXQ6Ok1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RQcm94eTo6aW52YWxpZGF0ZSk6Cisg
ICAgICAgIChXZWJLaXQ6Ok1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RQcm94eTo6ZG9E
ZWZhdWx0QWN0aW9uKToKKyAgICAgICAgKiBVSVByb2Nlc3MvTWVkaWFLZXlTeXN0ZW1QZXJtaXNz
aW9uUmVxdWVzdFByb3h5Lmg6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpNZWRpYUtleVN5c3Rl
bVBlcm1pc3Npb25SZXF1ZXN0UHJveHk6OmNyZWF0ZSk6CisgICAgICAgIChXZWJLaXQ6Ok1lZGlh
S2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RQcm94eTo6aXNQZW5kaW5nIGNvbnN0KToKKyAgICAg
ICAgKFdlYktpdDo6TWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdFByb3h5OjptZWRpYUtl
eVN5c3RlbUlEIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6TWVkaWFLZXlTeXN0ZW1QZXJtaXNz
aW9uUmVxdWVzdFByb3h5OjptYWluRnJhbWVJRCBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6Ok1l
ZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RQcm94eTo6ZnJhbWVJRCBjb25zdCk6CisgICAg
ICAgIChXZWJLaXQ6Ok1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RQcm94eTo6dG9wTGV2
ZWxEb2N1bWVudFNlY3VyaXR5T3JpZ2luKToKKyAgICAgICAgKFdlYktpdDo6TWVkaWFLZXlTeXN0
ZW1QZXJtaXNzaW9uUmVxdWVzdFByb3h5Ojp0b3BMZXZlbERvY3VtZW50U2VjdXJpdHlPcmlnaW4g
Y29uc3QpOgorICAgICAgICAoV2ViS2l0OjpNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0
UHJveHk6OmtleVN5c3RlbSBjb25zdCk6CisgICAgICAgICogVUlQcm9jZXNzL1NwZWVjaFJlY29n
bml0aW9uUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9X
ZWJQYWdlUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OnJlcXVlc3RN
ZWRpYUtleVN5c3RlbVBlcm1pc3Npb25Gb3JGcmFtZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBh
Z2VQcm94eTo6bWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIpOgorICAgICAg
ICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OnJlcXVlc3RNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25C
eURlZmF1bHRBY3Rpb24pOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaDoKKyAg
ICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluOgorICAgICAgICAqIFdl
YlByb2Nlc3MvRW5jcnlwdGVkTWVkaWEvTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdE1h
bmFnZXIuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6TWVkaWFLZXlTeXN0ZW1QZXJtaXNz
aW9uUmVxdWVzdE1hbmFnZXI6Ok1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RNYW5hZ2Vy
KToKKyAgICAgICAgKFdlYktpdDo6TWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdE1hbmFn
ZXI6OnN0YXJ0TWVkaWFLZXlTeXN0ZW1SZXF1ZXN0KToKKyAgICAgICAgKFdlYktpdDo6TWVkaWFL
ZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXI6OnNlbmRNZWRpYUtleVN5c3RlbVJlcXVl
c3QpOgorICAgICAgICAoV2ViS2l0OjpNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0TWFu
YWdlcjo6Y2FuY2VsTWVkaWFLZXlTeXN0ZW1SZXF1ZXN0KToKKyAgICAgICAgKFdlYktpdDo6TWVk
aWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXI6Om1lZGlhS2V5U3lzdGVtV2FzR3Jh
bnRlZCk6CisgICAgICAgIChXZWJLaXQ6Ok1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RN
YW5hZ2VyOjptZWRpYUtleVN5c3RlbVdhc0RlbmllZCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9F
bmNyeXB0ZWRNZWRpYS9NZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlci5oOiBB
ZGRlZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYk1lZGlhS2V5U3lz
dGVtQ2xpZW50LmNwcDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OldlYk1lZGlhS2V5U3lzdGVt
Q2xpZW50OjpXZWJNZWRpYUtleVN5c3RlbUNsaWVudCk6CisgICAgICAgIChXZWJLaXQ6OldlYk1l
ZGlhS2V5U3lzdGVtQ2xpZW50OjpwYWdlRGVzdHJveWVkKToKKyAgICAgICAgKFdlYktpdDo6V2Vi
TWVkaWFLZXlTeXN0ZW1DbGllbnQ6OnJlcXVlc3RNZWRpYUtleVN5c3RlbSk6CisgICAgICAgIChX
ZWJLaXQ6OldlYk1lZGlhS2V5U3lzdGVtQ2xpZW50OjpjYW5jZWxNZWRpYUtleVN5c3RlbVJlcXVl
c3QpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViTWVkaWFLZXlTeXN0
ZW1DbGllbnQuaDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OldlYk1lZGlhS2V5U3lzdGVtQ2xp
ZW50Ojp+V2ViTWVkaWFLZXlTeXN0ZW1DbGllbnQpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2Vi
UGFnZS9XZWJQYWdlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6bV9saW1pdHNOYXZpZ2F0aW9uc1Rv
QXBwQm91bmREb21haW5zKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6bWVkaWFLZXlTeXN0
ZW1XYXNHcmFudGVkKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6bWVkaWFLZXlTeXN0ZW1X
YXNEZW5pZWQpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmg6CisgICAg
ICAgIChXZWJLaXQ6OldlYlBhZ2U6Om1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RNYW5h
Z2VyKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbjoK
KwogMjAyMS0wMi0wNSAgUGhpbGlwcGUgTm9ybWFuZCAgPHBub3JtYW5kQGlnYWxpYS5jb20+CiAK
ICAgICAgICAgW0dUS10gY2xhbmcgd2FybmluZ3MKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKaW5kZXggYmFh
NDUzZDZjZjFjMjJlNjU5MzExNTQ0YjAyNmI3OGFkNGI1OGQ2NC4uYjJmMTY3OTAxMmMwM2I4MGRm
YzU0ZDI0NzhmZjBiZTJlODI0ZTBiOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ01ha2VM
aXN0cy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKQEAgLTE0OTcsNiAr
MTQ5Nyw4IEBAIGlmIChFTkFCTEVfRU5DUllQVEVEX01FRElBKQogICAgICAgICBNb2R1bGVzL2Vu
Y3J5cHRlZG1lZGlhL01lZGlhS2V5U2Vzc2lvbi5jcHAKICAgICAgICAgTW9kdWxlcy9lbmNyeXB0
ZWRtZWRpYS9NZWRpYUtleVN0YXR1c01hcC5jcHAKICAgICAgICAgTW9kdWxlcy9lbmNyeXB0ZWRt
ZWRpYS9NZWRpYUtleVN5c3RlbUFjY2Vzcy5jcHAKKyAgICAgICAgTW9kdWxlcy9lbmNyeXB0ZWRt
ZWRpYS9NZWRpYUtleVN5c3RlbUNvbnRyb2xsZXIuY3BwCisgICAgICAgIE1vZHVsZXMvZW5jcnlw
dGVkbWVkaWEvTWVkaWFLZXlTeXN0ZW1SZXF1ZXN0LmNwcAogICAgICAgICBNb2R1bGVzL2VuY3J5
cHRlZG1lZGlhL01lZGlhS2V5cy5jcHAKICAgICAgICAgTW9kdWxlcy9lbmNyeXB0ZWRtZWRpYS9O
YXZpZ2F0b3JFTUUuY3BwCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21h
a2UgYi9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCmluZGV4IGFhNTVmMGZhYTdkMDI5YTI4
YmJiODVhMWE0M2UwNTNhZDM2M2I4MWMuLjYzZWRiYjljOWI4ODBiMzE2OTA2ODAxOWI4MzM2MDRh
MGVjNjMyMjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKKysrIGIv
U291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQpAQCAtMjQsNiArMjQsOSBAQCBzZXQoV2ViQ29y
ZV9QUklWQVRFX0ZSQU1FV09SS19IRUFERVJTCiAgICAgTW9kdWxlcy9jb250YWN0LXBpY2tlci9D
b250YWN0c1JlcXVlc3REYXRhLmgKIAogICAgIE1vZHVsZXMvZW5jcnlwdGVkbWVkaWEvQ0RNQ2xp
ZW50LmgKKyAgICBNb2R1bGVzL2VuY3J5cHRlZG1lZGlhL01lZGlhS2V5U3lzdGVtQ2xpZW50LmgK
KyAgICBNb2R1bGVzL2VuY3J5cHRlZG1lZGlhL01lZGlhS2V5U3lzdGVtQ29udHJvbGxlci5oCisg
ICAgTW9kdWxlcy9lbmNyeXB0ZWRtZWRpYS9NZWRpYUtleVN5c3RlbVJlcXVlc3QuaAogCiAgICAg
TW9kdWxlcy9mZXRjaC9GZXRjaEJvZHlDb25zdW1lci5oCiAgICAgTW9kdWxlcy9mZXRjaC9GZXRj
aEJvZHlTb3VyY2UuaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9lbmNyeXB0
ZWRtZWRpYS9NZWRpYUtleVN5c3RlbUNsaWVudC5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9l
bmNyeXB0ZWRtZWRpYS9NZWRpYUtleVN5c3RlbUNsaWVudC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjA1YmUzZjM1
Yjk0NzY0ODM0OTMxN2VjY2E3Nzc5M2RiOThkOWVkOGIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2VuY3J5cHRlZG1lZGlhL01lZGlhS2V5U3lzdGVtQ2xpZW50LmgK
QEAgLTAsMCArMSw1MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBJZ2FsaWEgUy5MLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJ
TVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKKyAqIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VR
VUVOVElBTCBEQU1BR0VTCisgKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7CisgKiBMT1NTIE9GIFVTRSwg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04KKyAqIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUworICog
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoRU5DUllQVEVEX01FRElBKQor
CisjaW5jbHVkZSA8d3RmL1dlYWtQdHIuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFz
cyBEb2N1bWVudDsKK2NsYXNzIFBhZ2U7CitjbGFzcyBNZWRpYUtleVN5c3RlbVJlcXVlc3Q7CisK
K2NsYXNzIE1lZGlhS2V5U3lzdGVtQ2xpZW50IDogcHVibGljIENhbk1ha2VXZWFrUHRyPE1lZGlh
S2V5U3lzdGVtQ2xpZW50PiB7CitwdWJsaWM6CisgICAgdmlydHVhbCB2b2lkIHBhZ2VEZXN0cm95
ZWQoKSA9IDA7CisKKyAgICB2aXJ0dWFsIHZvaWQgcmVxdWVzdE1lZGlhS2V5U3lzdGVtKE1lZGlh
S2V5U3lzdGVtUmVxdWVzdCYpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgY2FuY2VsTWVkaWFLZXlT
eXN0ZW1SZXF1ZXN0KE1lZGlhS2V5U3lzdGVtUmVxdWVzdCYpID0gMDsKKworcHJvdGVjdGVkOgor
ICAgIHZpcnR1YWwgfk1lZGlhS2V5U3lzdGVtQ2xpZW50KCkgPSBkZWZhdWx0OworfTsKKworV0VC
Q09SRV9FWFBPUlQgdm9pZCBwcm92aWRlTWVkaWFLZXlTeXN0ZW1UbyhQYWdlJiwgTWVkaWFLZXlT
eXN0ZW1DbGllbnQmKTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5B
QkxFKEVOQ1JZUFRFRF9NRURJQSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
ZW5jcnlwdGVkbWVkaWEvTWVkaWFLZXlTeXN0ZW1Db250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvZW5jcnlwdGVkbWVkaWEvTWVkaWFLZXlTeXN0ZW1Db250cm9sbGVyLmNwcApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi43MWUxZmJkY2ZiNTk5YmQwOThkY2MxZTg0ZjYxZjMxYTgyZmU5MjgyCi0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9lbmNyeXB0ZWRtZWRpYS9NZWRp
YUtleVN5c3RlbUNvbnRyb2xsZXIuY3BwCkBAIC0wLDAgKzEsNzMgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMjEgSWdhbGlhIFMuTC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElT
JycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICogRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JT
IEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICogKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OCisgKiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICog
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFIE9GIFRISVMKKyAqIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIK
KyNpbmNsdWRlICJNZWRpYUtleVN5c3RlbUNvbnRyb2xsZXIuaCIKKworI2lmIEVOQUJMRShFTkNS
WVBURURfTUVESUEpCisKKyNpbmNsdWRlICJET01XaW5kb3cuaCIKKyNpbmNsdWRlICJEb2N1bWVu
dC5oIgorI2luY2x1ZGUgIkZlYXR1cmVQb2xpY3kuaCIKKyNpbmNsdWRlICJGcmFtZS5oIgorI2lu
Y2x1ZGUgIkhUTUxJRnJhbWVFbGVtZW50LmgiCisjaW5jbHVkZSAiTWVkaWFLZXlTeXN0ZW1SZXF1
ZXN0LmgiCisjaW5jbHVkZSAiUGFnZS5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NvbnN0
IGNoYXIqIE1lZGlhS2V5U3lzdGVtQ29udHJvbGxlcjo6c3VwcGxlbWVudE5hbWUoKQoreworICAg
IHJldHVybiAiTWVkaWFLZXlTeXN0ZW1Db250cm9sbGVyIjsKK30KKworTWVkaWFLZXlTeXN0ZW1D
b250cm9sbGVyKiBNZWRpYUtleVN5c3RlbUNvbnRyb2xsZXI6OmZyb20oUGFnZSogcGFnZSkKK3sK
KyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8TWVkaWFLZXlTeXN0ZW1Db250cm9sbGVyKj4oU3VwcGxl
bWVudDxQYWdlPjo6ZnJvbShwYWdlLCBNZWRpYUtleVN5c3RlbUNvbnRyb2xsZXI6OnN1cHBsZW1l
bnROYW1lKCkpKTsKK30KKworTWVkaWFLZXlTeXN0ZW1Db250cm9sbGVyOjpNZWRpYUtleVN5c3Rl
bUNvbnRyb2xsZXIoTWVkaWFLZXlTeXN0ZW1DbGllbnQmIGNsaWVudCkKKyAgICA6IG1fY2xpZW50
KG1ha2VXZWFrUHRyKGNsaWVudCkpCit7Cit9CisKK01lZGlhS2V5U3lzdGVtQ29udHJvbGxlcjo6
fk1lZGlhS2V5U3lzdGVtQ29udHJvbGxlcigpCit7CisgICAgbV9jbGllbnQtPnBhZ2VEZXN0cm95
ZWQoKTsKK30KKwordm9pZCBwcm92aWRlTWVkaWFLZXlTeXN0ZW1UbyhQYWdlJiBwYWdlLCBNZWRp
YUtleVN5c3RlbUNsaWVudCYgY2xpZW50KQoreworICAgIE1lZGlhS2V5U3lzdGVtQ29udHJvbGxl
cjo6cHJvdmlkZVRvKCZwYWdlLCBNZWRpYUtleVN5c3RlbUNvbnRyb2xsZXI6OnN1cHBsZW1lbnRO
YW1lKCksIG1ha2VVbmlxdWU8TWVkaWFLZXlTeXN0ZW1Db250cm9sbGVyPihjbGllbnQpKTsKK30K
Kwordm9pZCBNZWRpYUtleVN5c3RlbUNvbnRyb2xsZXI6OmxvZ1JlcXVlc3RNZWRpYUtleVN5c3Rl
bURlbmlhbChEb2N1bWVudCYgZG9jdW1lbnQpCit7CisgICAgaWYgKGF1dG8qIHdpbmRvdyA9IGRv
Y3VtZW50LmRvbVdpbmRvdygpKQorICAgICAgICB3aW5kb3ctPnByaW50RXJyb3JNZXNzYWdlKG1h
a2VTdHJpbmcoIk5vdCBhbGxvd2VkIHRvIGFjY2VzcyBNZWRpYUtleVN5c3RlbS4iKSk7Cit9CisK
K30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShNRURJQV9TVFJFQU0p
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2VuY3J5cHRlZG1lZGlhL01lZGlh
S2V5U3lzdGVtQ29udHJvbGxlci5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9lbmNyeXB0ZWRt
ZWRpYS9NZWRpYUtleVN5c3RlbUNvbnRyb2xsZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iYWYwNWM1ZDk4MjY5
OTUyMzZmNmRiMWYwNjk3YmUyZTliYTZhZjcxCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9lbmNyeXB0ZWRtZWRpYS9NZWRpYUtleVN5c3RlbUNvbnRyb2xsZXIuaApA
QCAtMCwwICsxLDY4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIElnYWxpYSBTLkwuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiAgUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElN
UExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorICogRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFV
RU5USUFMIERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTgorICogQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTCisgKiBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShFTkNSWVBURURfTUVESUEpCisK
KyNpbmNsdWRlICJNZWRpYUtleVN5c3RlbUNsaWVudC5oIgorI2luY2x1ZGUgIlN1cHBsZW1lbnRh
YmxlLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgTWVkaWFLZXlTeXN0ZW1SZXF1
ZXN0OworCitjbGFzcyBNZWRpYUtleVN5c3RlbUNvbnRyb2xsZXIgOiBwdWJsaWMgU3VwcGxlbWVu
dDxQYWdlPiB7CisgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CitwdWJsaWM6CisgICAgZXhw
bGljaXQgTWVkaWFLZXlTeXN0ZW1Db250cm9sbGVyKE1lZGlhS2V5U3lzdGVtQ2xpZW50Jik7Cisg
ICAgfk1lZGlhS2V5U3lzdGVtQ29udHJvbGxlcigpOworCisgICAgdm9pZCByZXF1ZXN0TWVkaWFL
ZXlTeXN0ZW0oTWVkaWFLZXlTeXN0ZW1SZXF1ZXN0Jik7CisgICAgdm9pZCBjYW5jZWxNZWRpYUtl
eVN5c3RlbVJlcXVlc3QoTWVkaWFLZXlTeXN0ZW1SZXF1ZXN0Jik7CisKKyAgICB2b2lkIGxvZ1Jl
cXVlc3RNZWRpYUtleVN5c3RlbURlbmlhbChEb2N1bWVudCYpOworCisgICAgV0VCQ09SRV9FWFBP
UlQgc3RhdGljIGNvbnN0IGNoYXIqIHN1cHBsZW1lbnROYW1lKCk7CisgICAgc3RhdGljIE1lZGlh
S2V5U3lzdGVtQ29udHJvbGxlciogZnJvbShQYWdlKik7CisKK3ByaXZhdGU6CisgICAgV2Vha1B0
cjxNZWRpYUtleVN5c3RlbUNsaWVudD4gbV9jbGllbnQ7Cit9OworCitpbmxpbmUgdm9pZCBNZWRp
YUtleVN5c3RlbUNvbnRyb2xsZXI6OnJlcXVlc3RNZWRpYUtleVN5c3RlbShNZWRpYUtleVN5c3Rl
bVJlcXVlc3QmIHJlcXVlc3QpCit7CisgICAgaWYgKG1fY2xpZW50KQorICAgICAgICBtX2NsaWVu
dC0+cmVxdWVzdE1lZGlhS2V5U3lzdGVtKHJlcXVlc3QpOworfQorCitpbmxpbmUgdm9pZCBNZWRp
YUtleVN5c3RlbUNvbnRyb2xsZXI6OmNhbmNlbE1lZGlhS2V5U3lzdGVtUmVxdWVzdChNZWRpYUtl
eVN5c3RlbVJlcXVlc3QmIHJlcXVlc3QpCit7CisgICAgaWYgKG1fY2xpZW50KQorICAgICAgICBt
X2NsaWVudC0+Y2FuY2VsTWVkaWFLZXlTeXN0ZW1SZXF1ZXN0KHJlcXVlc3QpOworfQorCit9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoRU5DUllQVEVEX01FRElBKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9lbmNyeXB0ZWRtZWRpYS9NZWRpYUtl
eVN5c3RlbVJlcXVlc3QuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9lbmNyeXB0ZWRtZWRp
YS9NZWRpYUtleVN5c3RlbVJlcXVlc3QuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmU2Njk3MTVlNWRlNzJmOTY0
N2JjMGVjOTNiZTU1ZWE4ZDhmMzVlM2UKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2VuY3J5cHRlZG1lZGlhL01lZGlhS2V5U3lzdGVtUmVxdWVzdC5jcHAKQEAgLTAs
MCArMSwxMjcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgSWdhbGlhIFMuTC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuICBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElF
RAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJ
QUwgREFNQUdFUworICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OCisgKiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMKKyAqIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJNZWRpYUtleVN5c3RlbVJlcXVl
c3QuaCIKKworI2lmIEVOQUJMRShFTkNSWVBURURfTUVESUEpCisKKyNpbmNsdWRlICJEb2N1bWVu
dC5oIgorI2luY2x1ZGUgIkZyYW1lLmgiCisjaW5jbHVkZSAiSlNET01Qcm9taXNlRGVmZXJyZWQu
aCIKKyNpbmNsdWRlICJKU01lZGlhS2V5U3lzdGVtQWNjZXNzLmgiCisjaW5jbHVkZSAiTG9nZ2lu
Zy5oIgorI2luY2x1ZGUgIk1lZGlhS2V5U3lzdGVtQ29udHJvbGxlci5oIgorI2luY2x1ZGUgIlBs
YXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdlci5oIgorI2luY2x1ZGUgIlNldHRpbmdzLmgiCisjaW5j
bHVkZSAiV2luZG93RXZlbnRMb29wLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworUmVmPE1l
ZGlhS2V5U3lzdGVtUmVxdWVzdD4gTWVkaWFLZXlTeXN0ZW1SZXF1ZXN0OjpjcmVhdGUoRG9jdW1l
bnQmIGRvY3VtZW50LCBjb25zdCBTdHJpbmcmIGtleVN5c3RlbSwgUmVmPERlZmVycmVkUHJvbWlz
ZT4mJiBwcm9taXNlKQoreworICAgIGF1dG8gcmVzdWx0ID0gYWRvcHRSZWYoKm5ldyBNZWRpYUtl
eVN5c3RlbVJlcXVlc3QoZG9jdW1lbnQsIGtleVN5c3RlbSwgV1RGTW92ZShwcm9taXNlKSkpOwor
ICAgIHJlc3VsdC0+c3VzcGVuZElmTmVlZGVkKCk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KKwor
TWVkaWFLZXlTeXN0ZW1SZXF1ZXN0OjpNZWRpYUtleVN5c3RlbVJlcXVlc3QoRG9jdW1lbnQmIGRv
Y3VtZW50LCBjb25zdCBTdHJpbmcmIGtleVN5c3RlbSwgUmVmPERlZmVycmVkUHJvbWlzZT4mJiBw
cm9taXNlKQorICAgIDogQWN0aXZlRE9NT2JqZWN0KGRvY3VtZW50KQorICAgICwgbV9rZXlTeXN0
ZW0oa2V5U3lzdGVtKQorICAgICwgbV9wcm9taXNlKFdURk1vdmUocHJvbWlzZSkpCit7Cit9CisK
K01lZGlhS2V5U3lzdGVtUmVxdWVzdDo6fk1lZGlhS2V5U3lzdGVtUmVxdWVzdCgpCit7CisgICAg
aWYgKG1fYWxsb3dDb21wbGV0aW9uSGFuZGxlcikKKyAgICAgICAgbV9hbGxvd0NvbXBsZXRpb25I
YW5kbGVyKFdURk1vdmUobV9wcm9taXNlKSk7Cit9CisKK1NlY3VyaXR5T3JpZ2luKiBNZWRpYUtl
eVN5c3RlbVJlcXVlc3Q6OnRvcExldmVsRG9jdW1lbnRPcmlnaW4oKSBjb25zdAoreworICAgIGlm
ICghbV9zY3JpcHRFeGVjdXRpb25Db250ZXh0KQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAg
ICByZXR1cm4gJm1fc2NyaXB0RXhlY3V0aW9uQ29udGV4dC0+dG9wT3JpZ2luKCk7Cit9CisKK3Zv
aWQgTWVkaWFLZXlTeXN0ZW1SZXF1ZXN0OjpzdGFydCgpCit7CisgICAgQVNTRVJUKG1fc2NyaXB0
RXhlY3V0aW9uQ29udGV4dCk7CisgICAgaWYgKCFtX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQpIHsK
KyAgICAgICAgZGVueSgpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgYXV0byYgZG9j
dW1lbnQgPSBkb3duY2FzdDxEb2N1bWVudD4oKm1fc2NyaXB0RXhlY3V0aW9uQ29udGV4dCk7Cisg
ICAgYXV0byogY29udHJvbGxlciA9IE1lZGlhS2V5U3lzdGVtQ29udHJvbGxlcjo6ZnJvbShkb2N1
bWVudC5wYWdlKCkpOworICAgIGlmICghY29udHJvbGxlcikgeworICAgICAgICBkZW55KCk7Cisg
ICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBjb250cm9sbGVyLT5yZXF1ZXN0TWVkaWFLZXlT
eXN0ZW0oKnRoaXMpOworfQorCit2b2lkIE1lZGlhS2V5U3lzdGVtUmVxdWVzdDo6YWxsb3coQ29t
cGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQoreworICAgIHF1ZXVl
VGFza0tlZXBpbmdPYmplY3RBbGl2ZSgqdGhpcywgVGFza1NvdXJjZTo6VXNlckludGVyYWN0aW9u
LCBbdGhpcywgaGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXSgpIG11dGFibGUg
eworICAgICAgICBhdXRvIGNvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShtX2FsbG93Q29tcGxl
dGlvbkhhbmRsZXIpOworICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihXVEZNb3ZlKG1fcHJvbWlz
ZSkpOworICAgICAgICBoYW5kbGVyKCk7CisgICAgfSk7Cit9CisKK3ZvaWQgTWVkaWFLZXlTeXN0
ZW1SZXF1ZXN0OjpkZW55KGNvbnN0IFN0cmluZyYgbWVzc2FnZSkKK3sKKyAgICBpZiAoIW1fc2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCkKKyAgICAgICAgcmV0dXJuOworCisgICAgRXhjZXB0aW9uQ29k
ZSBjb2RlID0gTm90U3VwcG9ydGVkRXJyb3I7CisgICAgaWYgKCFtZXNzYWdlLmlzRW1wdHkoKSkK
KyAgICAgICAgbV9wcm9taXNlLT5yZWplY3QoY29kZSwgbWVzc2FnZSk7CisgICAgZWxzZQorICAg
ICAgICBtX3Byb21pc2UtPnJlamVjdChjb2RlKTsKK30KKwordm9pZCBNZWRpYUtleVN5c3RlbVJl
cXVlc3Q6OnN0b3AoKQoreworICAgIGF1dG8mIGRvY3VtZW50ID0gZG93bmNhc3Q8RG9jdW1lbnQ+
KCptX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQpOworICAgIGlmIChhdXRvKiBjb250cm9sbGVyID0g
TWVkaWFLZXlTeXN0ZW1Db250cm9sbGVyOjpmcm9tKGRvY3VtZW50LnBhZ2UoKSkpCisgICAgICAg
IGNvbnRyb2xsZXItPmNhbmNlbE1lZGlhS2V5U3lzdGVtUmVxdWVzdCgqdGhpcyk7Cit9CisKK2Nv
bnN0IGNoYXIqIE1lZGlhS2V5U3lzdGVtUmVxdWVzdDo6YWN0aXZlRE9NT2JqZWN0TmFtZSgpIGNv
bnN0Cit7CisgICAgcmV0dXJuICJNZWRpYUtleVN5c3RlbVJlcXVlc3QiOworfQorCitEb2N1bWVu
dCogTWVkaWFLZXlTeXN0ZW1SZXF1ZXN0Ojpkb2N1bWVudCgpIGNvbnN0Cit7CisgICAgcmV0dXJu
IGRvd25jYXN0PERvY3VtZW50PihtX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQpOworfQorCit9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoRU5DUllQVEVEX01FRElBKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9lbmNyeXB0ZWRtZWRpYS9NZWRpYUtl
eVN5c3RlbVJlcXVlc3QuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZW5jcnlwdGVkbWVkaWEv
TWVkaWFLZXlTeXN0ZW1SZXF1ZXN0LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjMxM2MzOGIyYjZmYThhZDk1YmJh
YjdlY2YzNWNjNDdiYmQ1NWU1MQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvZW5jcnlwdGVkbWVkaWEvTWVkaWFLZXlTeXN0ZW1SZXF1ZXN0LmgKQEAgLTAsMCArMSw4
MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBJZ2FsaWEgUy5MLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
IFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKKyAqIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1B
R0VTCisgKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7CisgKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04KKyAq
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUworICogU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwor
I3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoRU5DUllQVEVEX01FRElBKQorCisjaW5jbHVkZSAi
QWN0aXZlRE9NT2JqZWN0LmgiCisjaW5jbHVkZSAiSURMVHlwZXMuaCIKKyNpbmNsdWRlICJKU0RP
TVByb21pc2VEZWZlcnJlZC5oIgorI2luY2x1ZGUgPHd0Zi9Db21wbGV0aW9uSGFuZGxlci5oPgor
I2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CisjaW5jbHVkZSA8d3RmL09iamVjdElkZW50aWZpZXIu
aD4KKyNpbmNsdWRlIDx3dGYvVW5pcXVlUmVmLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwor
Y2xhc3MgU2VjdXJpdHlPcmlnaW47CitjbGFzcyBNZWRpYUtleVN5c3RlbTsKKwordGVtcGxhdGUg
PHR5cGVuYW1lIElETFR5cGU+IGNsYXNzIERPTVByb21pc2VEZWZlcnJlZDsKKworZW51bSBNZWRp
YUtleVN5c3RlbVJlcXVlc3RJZGVudGlmaWVyVHlwZSB7IH07Cit1c2luZyBNZWRpYUtleVN5c3Rl
bVJlcXVlc3RJZGVudGlmaWVyID0gT2JqZWN0SWRlbnRpZmllcjxNZWRpYUtleVN5c3RlbVJlcXVl
c3RJZGVudGlmaWVyVHlwZT47CisKK2NsYXNzIE1lZGlhS2V5U3lzdGVtUmVxdWVzdCA6IHB1Ymxp
YyBSZWZDb3VudGVkPE1lZGlhS2V5U3lzdGVtUmVxdWVzdD4sIHB1YmxpYyBBY3RpdmVET01PYmpl
Y3QgeworcHVibGljOgorICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBSZWY8TWVkaWFLZXlTeXN0
ZW1SZXF1ZXN0PiBjcmVhdGUoRG9jdW1lbnQmLCBjb25zdCBTdHJpbmcmIGtleVN5c3RlbSwgUmVm
PERlZmVycmVkUHJvbWlzZT4mJik7CisgICAgdmlydHVhbCB+TWVkaWFLZXlTeXN0ZW1SZXF1ZXN0
KCk7CisKKyAgICB2b2lkIHNldEFsbG93Q2FsbGJhY2soQ29tcGxldGlvbkhhbmRsZXI8dm9pZChS
ZWY8RGVmZXJyZWRQcm9taXNlPiYmKT4mJiBjYWxsYmFjaykgeyBtX2FsbG93Q29tcGxldGlvbkhh
bmRsZXIgPSBXVEZNb3ZlKGNhbGxiYWNrKTsgfQorICAgIE1lZGlhS2V5U3lzdGVtUmVxdWVzdElk
ZW50aWZpZXIgaWRlbnRpZmllcigpIGNvbnN0IHsgcmV0dXJuIG1faWRlbnRpZmllcjsgfQorICAg
IFdFQkNPUkVfRVhQT1JUIHZvaWQgc3RhcnQoKTsKKworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQg
YWxsb3coQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKKyAgICBXRUJDT1JFX0VYUE9SVCB2
b2lkIGRlbnkoY29uc3QgU3RyaW5nJiBlcnJvck1lc3NhZ2UgPSBlbXB0eVN0cmluZygpKTsKKwor
ICAgIFdFQkNPUkVfRVhQT1JUIFNlY3VyaXR5T3JpZ2luKiB0b3BMZXZlbERvY3VtZW50T3JpZ2lu
KCkgY29uc3Q7CisgICAgV0VCQ09SRV9FWFBPUlQgRG9jdW1lbnQqIGRvY3VtZW50KCkgY29uc3Q7
CisKKyAgICBjb25zdCBTdHJpbmcga2V5U3lzdGVtKCkgY29uc3QgeyByZXR1cm4gbV9rZXlTeXN0
ZW07IH0KKworcHJpdmF0ZToKKyAgICBNZWRpYUtleVN5c3RlbVJlcXVlc3QoRG9jdW1lbnQmLCBj
b25zdCBTdHJpbmcmIGtleVN5c3RlbSwgUmVmPERlZmVycmVkUHJvbWlzZT4mJik7CisKKyAgICB2
b2lkIHN0b3AoKSBmaW5hbDsKKyAgICBjb25zdCBjaGFyKiBhY3RpdmVET01PYmplY3ROYW1lKCkg
Y29uc3QgZmluYWw7CisKKyAgICBNZWRpYUtleVN5c3RlbVJlcXVlc3RJZGVudGlmaWVyIG1faWRl
bnRpZmllcjsKKworICAgIFN0cmluZyBtX2tleVN5c3RlbTsKKyAgICBSZWY8RGVmZXJyZWRQcm9t
aXNlPiBtX3Byb21pc2U7CisKKyAgICBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFJlZjxEZWZlcnJl
ZFByb21pc2U+JiYpPiBtX2FsbG93Q29tcGxldGlvbkhhbmRsZXI7Cit9OworCit9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoRU5DUllQVEVEX01FRElBKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9lbmNyeXB0ZWRtZWRpYS9OYXZpZ2F0b3JFTUUu
Y3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9lbmNyeXB0ZWRtZWRpYS9OYXZpZ2F0b3JFTUUu
Y3BwCmluZGV4IDY5NDU2NGFmM2U1OTNhNjk2MTc1OGZhZmQ3MmE3ZDUwNDdhNmFjMzYuLmZjNjEz
NzRlMjE2NDFjMTY3NDFkN2U1MWRkMGUzZTdhMmQ1MmI2NjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvZW5jcnlwdGVkbWVkaWEvTmF2aWdhdG9yRU1FLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2VuY3J5cHRlZG1lZGlhL05hdmlnYXRvckVNRS5jcHAKQEAgLTM3
LDYgKzM3LDcgQEAKICNpbmNsdWRlICJKU0RPTVByb21pc2VEZWZlcnJlZC5oIgogI2luY2x1ZGUg
IkpTTWVkaWFLZXlTeXN0ZW1BY2Nlc3MuaCIKICNpbmNsdWRlICJMb2dnaW5nLmgiCisjaW5jbHVk
ZSAiTWVkaWFLZXlTeXN0ZW1SZXF1ZXN0LmgiCiAjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nQnVp
bGRlci5oPgogCiBuYW1lc3BhY2UgV1RGIHsKQEAgLTk5LDIzICsxMDAsMjcgQEAgdm9pZCBOYXZp
Z2F0b3JFTUU6OnJlcXVlc3RNZWRpYUtleVN5c3RlbUFjY2VzcyhOYXZpZ2F0b3ImIG5hdmlnYXRv
ciwgRG9jdW1lbnQmIGQKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIGRvY3VtZW50LnBv
c3RUYXNrKFtrZXlTeXN0ZW0sIHN1cHBvcnRlZENvbmZpZ3VyYXRpb25zID0gV1RGTW92ZShzdXBw
b3J0ZWRDb25maWd1cmF0aW9ucyksIHByb21pc2UgPSBXVEZNb3ZlKHByb21pc2UpLCAmZG9jdW1l
bnQsIGxvZ2dlciA9IFdURk1vdmUobG9nZ2VyKSwgaWRlbnRpZmllciA9IFdURk1vdmUoaWRlbnRp
ZmllcildIChTY3JpcHRFeGVjdXRpb25Db250ZXh0JikgbXV0YWJsZSB7Ci0gICAgICAgIC8vIDMu
IExldCBkb2N1bWVudCBiZSB0aGUgY2FsbGluZyBjb250ZXh0J3MgRG9jdW1lbnQuCi0gICAgICAg
IC8vIDQuIExldCBvcmlnaW4gYmUgdGhlIG9yaWdpbiBvZiBkb2N1bWVudC4KLSAgICAgICAgLy8g
NS4gTGV0IHByb21pc2UgYmUgYSBuZXcgcHJvbWlzZS4KLSAgICAgICAgLy8gNi4gUnVuIHRoZSBm
b2xsb3dpbmcgc3RlcHMgaW4gcGFyYWxsZWw6Ci0gICAgICAgIC8vIDYuMS4gSWYga2V5U3lzdGVt
IGlzIG5vdCBvbmUgb2YgdGhlIEtleSBTeXN0ZW1zIHN1cHBvcnRlZCBieSB0aGUgdXNlciBhZ2Vu
dCwgcmVqZWN0IHByb21pc2Ugd2l0aCBhIE5vdFN1cHBvcnRlZEVycm9yLgotICAgICAgICAvLyAg
ICAgIFN0cmluZyBjb21wYXJpc29uIGlzIGNhc2Utc2Vuc2l0aXZlLgotICAgICAgICBpZiAoIUNE
TTo6c3VwcG9ydHNLZXlTeXN0ZW0oa2V5U3lzdGVtKSkgewotICAgICAgICAgICAgaW5mb0xvZyhs
b2dnZXIsIGlkZW50aWZpZXIsICJSZWplY3RlZDoga2V5U3lzdGVtKCIsIGtleVN5c3RlbSwgIikg
bm90IHN1cHBvcnRlZCIpOwotICAgICAgICAgICAgcHJvbWlzZS0+cmVqZWN0KE5vdFN1cHBvcnRl
ZEVycm9yKTsKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQotCi0gICAgICAgIC8vIDYu
Mi4gTGV0IGltcGxlbWVudGF0aW9uIGJlIHRoZSBpbXBsZW1lbnRhdGlvbiBvZiBrZXlTeXN0ZW0u
Ci0gICAgICAgIGF1dG8gaW1wbGVtZW50YXRpb24gPSBDRE06OmNyZWF0ZShkb2N1bWVudCwga2V5
U3lzdGVtKTsKLSAgICAgICAgdHJ5TmV4dFN1cHBvcnRlZENvbmZpZ3VyYXRpb24oV1RGTW92ZShp
bXBsZW1lbnRhdGlvbiksIFdURk1vdmUoc3VwcG9ydGVkQ29uZmlndXJhdGlvbnMpLCBXVEZNb3Zl
KHByb21pc2UpLCBXVEZNb3ZlKGxvZ2dlciksIFdURk1vdmUoaWRlbnRpZmllcikpOworICAgIGF1
dG8gcmVxdWVzdCA9IE1lZGlhS2V5U3lzdGVtUmVxdWVzdDo6Y3JlYXRlKGRvY3VtZW50LCBrZXlT
eXN0ZW0sIFdURk1vdmUocHJvbWlzZSkpOworICAgIHJlcXVlc3QtPnNldEFsbG93Q2FsbGJhY2so
W2tleVN5c3RlbSwgc3VwcG9ydGVkQ29uZmlndXJhdGlvbnMgPSBXVEZNb3ZlKHN1cHBvcnRlZENv
bmZpZ3VyYXRpb25zKSwgJmRvY3VtZW50LCBsb2dnZXIgPSBXVEZNb3ZlKGxvZ2dlciksIGlkZW50
aWZpZXIgPSBXVEZNb3ZlKGlkZW50aWZpZXIpXShSZWY8RGVmZXJyZWRQcm9taXNlPiYmIHByb21p
c2UpIG11dGFibGUgeworICAgICAgICBkb2N1bWVudC5wb3N0VGFzayhbcHJvbWlzZSA9IFdURk1v
dmUocHJvbWlzZSksICZkb2N1bWVudCwga2V5U3lzdGVtLCBsb2dnZXIgPSBXVEZNb3ZlKGxvZ2dl
ciksIGlkZW50aWZpZXIgPSBXVEZNb3ZlKGlkZW50aWZpZXIpLCBzdXBwb3J0ZWRDb25maWd1cmF0
aW9ucyA9IFdURk1vdmUoc3VwcG9ydGVkQ29uZmlndXJhdGlvbnMpXSAoU2NyaXB0RXhlY3V0aW9u
Q29udGV4dCYpIG11dGFibGUgeworICAgICAgICAgICAgLy8gMy4gTGV0IGRvY3VtZW50IGJlIHRo
ZSBjYWxsaW5nIGNvbnRleHQncyBEb2N1bWVudC4KKyAgICAgICAgICAgIC8vIDQuIExldCBvcmln
aW4gYmUgdGhlIG9yaWdpbiBvZiBkb2N1bWVudC4KKyAgICAgICAgICAgIC8vIDUuIExldCBwcm9t
aXNlIGJlIGEgbmV3IHByb21pc2UuCisgICAgICAgICAgICAvLyA2LiBSdW4gdGhlIGZvbGxvd2lu
ZyBzdGVwcyBpbiBwYXJhbGxlbDoKKyAgICAgICAgICAgIC8vIDYuMS4gSWYga2V5U3lzdGVtIGlz
IG5vdCBvbmUgb2YgdGhlIEtleSBTeXN0ZW1zIHN1cHBvcnRlZCBieSB0aGUgdXNlciBhZ2VudCwg
cmVqZWN0IHByb21pc2Ugd2l0aCBhIE5vdFN1cHBvcnRlZEVycm9yLgorICAgICAgICAgICAgLy8g
ICAgICBTdHJpbmcgY29tcGFyaXNvbiBpcyBjYXNlLXNlbnNpdGl2ZS4KKyAgICAgICAgICAgIGlm
ICghQ0RNOjpzdXBwb3J0c0tleVN5c3RlbShrZXlTeXN0ZW0pKSB7CisgICAgICAgICAgICAgICAg
aW5mb0xvZyhsb2dnZXIsIGlkZW50aWZpZXIsICJSZWplY3RlZDoga2V5U3lzdGVtKCIsIGtleVN5
c3RlbSwgIikgbm90IHN1cHBvcnRlZCIpOworICAgICAgICAgICAgICAgIHByb21pc2UtPnJlamVj
dChOb3RTdXBwb3J0ZWRFcnJvcik7CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAg
ICAgfQorCisgICAgICAgICAgICAvLyA2LjIuIExldCBpbXBsZW1lbnRhdGlvbiBiZSB0aGUgaW1w
bGVtZW50YXRpb24gb2Yga2V5U3lzdGVtLgorICAgICAgICAgICAgYXV0byBpbXBsZW1lbnRhdGlv
biA9IENETTo6Y3JlYXRlKGRvY3VtZW50LCBrZXlTeXN0ZW0pOworICAgICAgICAgICAgdHJ5TmV4
dFN1cHBvcnRlZENvbmZpZ3VyYXRpb24oV1RGTW92ZShpbXBsZW1lbnRhdGlvbiksIFdURk1vdmUo
c3VwcG9ydGVkQ29uZmlndXJhdGlvbnMpLCBXVEZNb3ZlKHByb21pc2UpLCBXVEZNb3ZlKGxvZ2dl
ciksIFdURk1vdmUoaWRlbnRpZmllcikpOworICAgICAgICB9KTsKICAgICB9KTsKKyAgICByZXF1
ZXN0LT5zdGFydCgpOwogfQogCiBzdGF0aWMgdm9pZCB0cnlOZXh0U3VwcG9ydGVkQ29uZmlndXJh
dGlvbihSZWZQdHI8Q0RNPiYmIGltcGxlbWVudGF0aW9uLCBWZWN0b3I8TWVkaWFLZXlTeXN0ZW1D
b25maWd1cmF0aW9uPiYmIHN1cHBvcnRlZENvbmZpZ3VyYXRpb25zLCBSZWZQdHI8RGVmZXJyZWRQ
cm9taXNlPiYmIHByb21pc2UsIFJlZjxMb2dnZXI+JiYgbG9nZ2VyLCBXVEY6OkxvZ2dlcjo6TG9n
U2l0ZUlkZW50aWZpZXImJiBpZGVudGlmaWVyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGZhNmMyOWY0YjRiYWZmNDFiNzA4ZjIy
MGI3NjBmYzkyZWU0MmQwYTEuLmUwNDExZDA1ZGVkNmE1ZTUwZWM0ODY1NzZkNDMxMmMxNDM5NGNh
NDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oKQEAgLTMwNDMsNiArMzA0MywxMSBAQAogCQk5OUQxQjJEMzIzQUMxNDMxMDA4MTFDRjAg
LyogSW5zcGVjdG9yRGVidWdnYWJsZVR5cGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDk5RDFCMkQxMjNBQzE0MzAwMDgxMUNGMCAvKiBJbnNwZWN0b3JE
ZWJ1Z2dhYmxlVHlwZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CiAJCTlBNTI4RTg0MTdEN0Y1MkYwMEFBOTUxOCAvKiBGbG9hdGluZ09iamVjdHMuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDlBNTI4RTgyMTdE
N0Y1MkYwMEFBOTUxOCAvKiBGbG9hdGluZ09iamVjdHMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk5QUIxRjM4MDE4RTI0ODlBMDA1MzQ3NDMgLyog
Q1NTVG9MZW5ndGhDb252ZXJzaW9uRGF0YS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gOUFCMUYzN0UxOEUyNDg5QTAwNTM0NzQzIC8qIENTU1RvTGVuZ3Ro
Q29udmVyc2lvbkRhdGEuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OworCQk5QUNDMDc5NjI1QzcyNUVFMDBEQzYzODYgLyogTWVkaWFLZXlTeXN0ZW1SZXF1
ZXN0LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDlB
Q0MwNzk0MjVDNzI1RUQwMERDNjM4NiAvKiBNZWRpYUtleVN5c3RlbVJlcXVlc3QuY3BwICovOyB9
OworCQk5QUNDMDc5ODI1QzcyNjc3MDBEQzYzODYgLyogTWVkaWFLZXlTeXN0ZW1Db250cm9sbGVy
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDlBQ0Mw
Nzk3MjVDNzI2NzYwMERDNjM4NiAvKiBNZWRpYUtleVN5c3RlbUNvbnRyb2xsZXIuY3BwICovOyB9
OworCQk5QUNDMDdBNjI1QzgxMERGMDBEQzYzODYgLyogTWVkaWFLZXlTeXN0ZW1SZXF1ZXN0Lmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5QUNDMDdBNTI1
QzgxMERGMDBEQzYzODYgLyogTWVkaWFLZXlTeXN0ZW1SZXF1ZXN0LmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJOUFDQzA3QTgyNUM4MTEwRDAwREM2
Mzg2IC8qIE1lZGlhS2V5U3lzdGVtQ2xpZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA5QUNDMDdBNzI1QzgxMTBEMDBEQzYzODYgLyogTWVkaWFLZXlT
eXN0ZW1DbGllbnQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OworCQk5QUNDMDdBRjI1QzgxNDFEMDBEQzYzODYgLyogTWVkaWFLZXlTeXN0ZW1Db250cm9s
bGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5QUND
MDdBRTI1QzgxNDFDMDBEQzYzODYgLyogTWVkaWFLZXlTeXN0ZW1Db250cm9sbGVyLmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJOUIwMkUwQzgyMzVF
QUQyQTAwNDA0NEIyIC8qIFRleHRNYW5pcHVsYXRpb25Db250cm9sbGVyLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5QjAyRTBDMzIzNUU3NkFBMDA0MDQ0
QjIgLyogVGV4dE1hbmlwdWxhdGlvbkNvbnRyb2xsZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk5QjBBQkNBRTIzNkJCNDMxMDBCNDUwODUgLyog
VGFza1NvdXJjZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gOUIwQUJDQUMyMzZCQjQwQTAwQjQ1MDg1IC8qIFRhc2tTb3VyY2UuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk5QjEyMjlDNDIzRkU0QkQyMDA4
Q0E3NTEgLyogQXVkaW9EZXN0aW5hdGlvbkNvY29hLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MTMxNTE4NjIzNTc3NDVFMDAxMTVFNkUgLyogQXVkaW9E
ZXN0aW5hdGlvbkNvY29hLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKQEAgLTEyMDA0LDYgKzEyMDA5LDExIEBACiAJCTlBQzZGMDI1MjExNDhGNTQwMENC
REEwNiAvKiBNZWRpYUVuZ2luZUNvbmZpZ3VyYXRpb25GYWN0b3J5LmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgbmFtZSA9IE1lZGlhRW5naW5lQ29uZmlndXJhdGlvbkZhY3RvcnkuaDsgcGF0
aCA9IG1lZGlhY2FwYWJpbGl0aWVzL01lZGlhRW5naW5lQ29uZmlndXJhdGlvbkZhY3RvcnkuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOUFDNkYwMkQyMTE0OEY5RjAwQ0JEQTA2IC8q
IE1lZGlhRW5naW5lQ29uZmlndXJhdGlvbkZhY3RvcnlNb2NrLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE1lZGlhRW5naW5lQ29uZmlndXJhdGlvbkZhY3RvcnlNb2Nr
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOUFDNkYwMkYyMTE0OEZBMjAwQ0JE
QTA2IC8qIE1lZGlhRW5naW5lQ29uZmlndXJhdGlvbkZhY3RvcnlNb2NrLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1lZGlhRW5naW5lQ29uZmlndXJhdGlvbkZhY3RvcnlNb2Nr
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTlBQ0MwNzk0MjVDNzI1RUQwMERDNjM4
NiAvKiBNZWRpYUtleVN5c3RlbVJlcXVlc3QuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gTWVkaWFLZXlTeXN0ZW1SZXF1ZXN0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJOUFDQzA3OTcyNUM3MjY3NjAwREM2Mzg2IC8qIE1lZGlhS2V5U3lzdGVtQ29u
dHJvbGxlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBNZWRpYUtl
eVN5c3RlbUNvbnRyb2xsZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5QUND
MDdBNTI1QzgxMERGMDBEQzYzODYgLyogTWVkaWFLZXlTeXN0ZW1SZXF1ZXN0LmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1lZGlhS2V5U3lzdGVtUmVxdWVzdC5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQk5QUNDMDdBNzI1QzgxMTBEMDBEQzYzODYgLyogTWVkaWFL
ZXlTeXN0ZW1DbGllbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTWVkaWFL
ZXlTeXN0ZW1DbGllbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOUFDQzA3QUUy
NUM4MTQxQzAwREM2Mzg2IC8qIE1lZGlhS2V5U3lzdGVtQ29udHJvbGxlci5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBNZWRpYUtleVN5c3RlbUNvbnRyb2xsZXIuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOUIwMkUwQzMyMzVFNzZBQTAwNDA0NEIyIC8qIFRleHRN
YW5pcHVsYXRpb25Db250cm9sbGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFRleHRNYW5pcHVsYXRpb25D
b250cm9sbGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTlCMDJFMEM0MjM1RTc2
QUEwMDQwNDRCMiAvKiBUZXh0TWFuaXB1bGF0aW9uQ29udHJvbGxlci5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBUZXh0TWFuaXB1bGF0aW9uQ29udHJvbGxlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTlCMDNEODA2MUJCMzExMEQwMEI3M0Y2NCAvKiBSZWFkYWJsZUJ5dGVTdHJl
YW1JbnRlcm5hbHNCdWlsdGlucy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBS
ZWFkYWJsZUJ5dGVTdHJlYW1JbnRlcm5hbHNCdWlsdGlucy5oOyBwYXRoID0gRGVyaXZlZFNvdXJj
ZXMvV2ViQ29yZS9SZWFkYWJsZUJ5dGVTdHJlYW1JbnRlcm5hbHNCdWlsdGlucy5oOyBzb3VyY2VU
cmVlID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9OwpAQCAtMjgwNTMsMTAgKzI4MDYzLDE1IEBACiAJ
CQkJMkQ5QkY3M0MxREJGREMwRjAwN0E3RDk5IC8qIE1lZGlhS2V5U3lzdGVtQWNjZXNzLmNwcCAq
LywKIAkJCQkyRDlCRjczRDFEQkZEQzBGMDA3QTdEOTkgLyogTWVkaWFLZXlTeXN0ZW1BY2Nlc3Mu
aCAqLywKIAkJCQkyRDlCRjZGOTFEQkZCNzFGMDA3QTdEOTkgLyogTWVkaWFLZXlTeXN0ZW1BY2Nl
c3MuaWRsICovLAorCQkJCTlBQ0MwN0E3MjVDODExMEQwMERDNjM4NiAvKiBNZWRpYUtleVN5c3Rl
bUNsaWVudC5oICovLAogCQkJCTJEOUJGNzNFMURCRkRDMEYwMDdBN0Q5OSAvKiBNZWRpYUtleVN5
c3RlbUNvbmZpZ3VyYXRpb24uaCAqLywKIAkJCQkyRDlCRjZGQTFEQkZCNzFGMDA3QTdEOTkgLyog
TWVkaWFLZXlTeXN0ZW1Db25maWd1cmF0aW9uLmlkbCAqLywKKwkJCQk5QUNDMDc5NzI1QzcyNjc2
MDBEQzYzODYgLyogTWVkaWFLZXlTeXN0ZW1Db250cm9sbGVyLmNwcCAqLywKKwkJCQk5QUNDMDdB
RTI1QzgxNDFDMDBEQzYzODYgLyogTWVkaWFLZXlTeXN0ZW1Db250cm9sbGVyLmggKi8sCiAJCQkJ
MkQ5QkY3M0YxREJGREMwRjAwN0E3RDk5IC8qIE1lZGlhS2V5U3lzdGVtTWVkaWFDYXBhYmlsaXR5
LmggKi8sCiAJCQkJMkQ5QkY2RkIxREJGQjcxRjAwN0E3RDk5IC8qIE1lZGlhS2V5U3lzdGVtTWVk
aWFDYXBhYmlsaXR5LmlkbCAqLywKKwkJCQk5QUNDMDc5NDI1QzcyNUVEMDBEQzYzODYgLyogTWVk
aWFLZXlTeXN0ZW1SZXF1ZXN0LmNwcCAqLywKKwkJCQk5QUNDMDdBNTI1QzgxMERGMDBEQzYzODYg
LyogTWVkaWFLZXlTeXN0ZW1SZXF1ZXN0LmggKi8sCiAJCQkJMkQ5QkY2RkMxREJGQjcxRjAwN0E3
RDk5IC8qIE5hdmlnYXRvcitFTUUuaWRsICovLAogCQkJCTJEOUJGNzQwMURCRkRDMEYwMDdBN0Q5
OSAvKiBOYXZpZ2F0b3JFTUUuY3BwICovLAogCQkJCTJEOUJGNzQxMURCRkRDMEYwMDdBN0Q5OSAv
KiBOYXZpZ2F0b3JFTUUuaCAqLywKQEAgLTMzNzA1LDYgKzMzNzIwLDkgQEAKIAkJCQlDREY0Qjcx
QTFFMDFEM0QwMDBFMjM1QTIgLyogTWVkaWFLZXlTZXNzaW9uVHlwZS5pZGwgaW4gSGVhZGVycyAq
LywKIAkJCQlDREY0QjcyODFFMDNDNTczMDBFMjM1QTIgLyogTWVkaWFLZXlzUmVxdWlyZW1lbnQu
aWRsIGluIEhlYWRlcnMgKi8sCiAJCQkJQ0RGNEI3MTgxRTAxQ0I5MTAwRTIzNUEyIC8qIE1lZGlh
S2V5c1Jlc3RyaWN0aW9ucy5oIGluIEhlYWRlcnMgKi8sCisJCQkJOUFDQzA3QTgyNUM4MTEwRDAw
REM2Mzg2IC8qIE1lZGlhS2V5U3lzdGVtQ2xpZW50LmggaW4gSGVhZGVycyAqLywKKwkJCQk5QUND
MDdBRjI1QzgxNDFEMDBEQzYzODYgLyogTWVkaWFLZXlTeXN0ZW1Db250cm9sbGVyLmggaW4gSGVh
ZGVycyAqLywKKwkJCQk5QUNDMDdBNjI1QzgxMERGMDBEQzYzODYgLyogTWVkaWFLZXlTeXN0ZW1S
ZXF1ZXN0LmggaW4gSGVhZGVycyAqLywKIAkJCQlBOEVBODAwRTBBMTk1MTZFMDBBOEVGNUYgLyog
TWVkaWFMaXN0LmggaW4gSGVhZGVycyAqLywKIAkJCQk1RUJCODkzMTFDNzc3N0ZGMDBDNjVENDEg
LyogTWVkaWFQYXlsb2FkLmggaW4gSGVhZGVycyAqLywKIAkJCQkwN0UzREZEMTFBOUU3ODY1MDA3
NjRDQTggLyogTWVkaWFQbGF5YmFja1RhcmdldC5oIGluIEhlYWRlcnMgKi8sCkBAIC0zNjA1OSw2
ICszNjA3Nyw4IEBACiAJCQkJMkQ5QkY3NDUxREJGREM0NDAwN0E3RDk5IC8qIE1lZGlhS2V5U2Vz
c2lvbi5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkyRDlCRjc0NDFEQkZEQzQxMDA3QTdEOTkgLyog
TWVkaWFLZXlTdGF0dXNNYXAuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMkQ5QkY3NDMxREJGREMz
RTAwN0E3RDk5IC8qIE1lZGlhS2V5U3lzdGVtQWNjZXNzLmNwcCBpbiBTb3VyY2VzICovLAorCQkJ
CTlBQ0MwNzk4MjVDNzI2NzcwMERDNjM4NiAvKiBNZWRpYUtleVN5c3RlbUNvbnRyb2xsZXIuY3Bw
IGluIFNvdXJjZXMgKi8sCisJCQkJOUFDQzA3OTYyNUM3MjVFRTAwREM2Mzg2IC8qIE1lZGlhS2V5
U3lzdGVtUmVxdWVzdC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwNzFFNDk2RTFBRDVBQTBEMDA4
QTUwQjQgLyogTWVkaWFQbGF5YmFja1RhcmdldENvY29hLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJ
MDc4RTQzREUxQUJCNkY2RjAwMUMyRkE2IC8qIE1lZGlhUGxheWJhY2tUYXJnZXRQaWNrZXJNYWMu
bW0gaW4gU291cmNlcyAqLywKIAkJCQkwNzJDOEIxMTEzMUM1MTg2MDBBNEZDRTkgLyogTWVkaWFQ
bGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uLmNwcCBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9XZWJLaXQvQ01ha2VMaXN0cy50
eHQKaW5kZXggY2JjYThkMzM4OGM1ODI5Yjc0MjcyMmU3NDk5ZjkzNjlmYjNjMzA4NS4uNDZlYzBj
NTRjYzQ0ZDFiM2JiZGNlMDk2MmYyNzEzMDU4MDVhODcyOSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvV2ViS2l0L0NNYWtlTGlzdHMudHh0CkBA
IC03NSw2ICs3NSw3IEBAIHNldChXZWJLaXRfSU5DTFVERV9ESVJFQ1RPUklFUwogICAgICIke1dF
QktJVF9ESVJ9L1dlYlByb2Nlc3MvQ2FjaGUiCiAgICAgIiR7V0VCS0lUX0RJUn0vV2ViUHJvY2Vz
cy9EYXRhYmFzZXMiCiAgICAgIiR7V0VCS0lUX0RJUn0vV2ViUHJvY2Vzcy9EYXRhYmFzZXMvSW5k
ZXhlZERCIgorICAgICIke1dFQktJVF9ESVJ9L1dlYlByb2Nlc3MvRW5jcnlwdGVkTWVkaWEiCiAg
ICAgIiR7V0VCS0lUX0RJUn0vV2ViUHJvY2Vzcy9GaWxlQVBJIgogICAgICIke1dFQktJVF9ESVJ9
L1dlYlByb2Nlc3MvRnVsbFNjcmVlbiIKICAgICAiJHtXRUJLSVRfRElSfS9XZWJQcm9jZXNzL0dh
bWVwYWQiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0hlYWRlcnMuY21ha2UgYi9Tb3VyY2Uv
V2ViS2l0L0hlYWRlcnMuY21ha2UKaW5kZXggMjEzMDRkYTMwZDc4ODI1NDM2NTIyN2FhNmIzNmYw
ZTc2ZjY5MGVmNC4uMzQ2YzhhNjNhN2I3YWU0OTdhMWJlZTI0ZDdmODA4YjBmYThjZTRhMyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9IZWFkZXJzLmNtYWtlCisrKyBiL1NvdXJjZS9XZWJLaXQv
SGVhZGVycy5jbWFrZQpAQCAtNjIsNiArNjIsNyBAQCBzZXQoV2ViS2l0X1BVQkxJQ19GUkFNRVdP
UktfSEVBREVSUwogICAgIFVJUHJvY2Vzcy9BUEkvQy9XS0ljb25EYXRhYmFzZS5oCiAgICAgVUlQ
cm9jZXNzL0FQSS9DL1dLSW5zcGVjdG9yLmgKICAgICBVSVByb2Nlc3MvQVBJL0MvV0tMYXlvdXRN
b2RlLmgKKyAgICBVSVByb2Nlc3MvQVBJL0MvV0tNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25DYWxs
YmFjay5oCiAgICAgVUlQcm9jZXNzL0FQSS9DL1dLTWVzc2FnZUxpc3RlbmVyLmgKICAgICBVSVBy
b2Nlc3MvQVBJL0MvV0tNb2NrRGlzcGxheS5oCiAgICAgVUlQcm9jZXNzL0FQSS9DL1dLTW9ja01l
ZGlhRGV2aWNlLmgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vTG9nZ2luZy5o
IGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9Mb2dnaW5nLmgKaW5kZXggZjQ5ZjM4YjZhNWY5ZDNk
NzA5NTJkMmUxMjFjODk5NWRlY2U5OGVhYS4uMDY2ZjA2NWZlM2UzYWVjNGEwNzk4NjgxOTNkYWU4
YTBiMDc3NzViOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9Mb2dnaW5nLmgK
KysrIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9Mb2dnaW5nLmgKQEAgLTUyLDYgKzUyLDcgQEAg
ZXh0ZXJuICJDIiB7CiAgICAgTShDb250ZXh0TWVudSkgXAogICAgIE0oRGlza1BlcnNpc3RlbmN5
KSBcCiAgICAgTShEcmFnQW5kRHJvcCkgXAorICAgIE0oRU1FKSBcCiAgICAgTShGdWxsc2NyZWVu
KSBcCiAgICAgTShHYW1lcGFkKSBcCiAgICAgTShJUEMpIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL0FQSS9BUElPYmplY3QuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0FQSS9B
UElPYmplY3QuaAppbmRleCAwNTU2OTM0M2EwZGMzYWFkNmMyZDMzNDAzZThlMjliYTg2ZmU0Y2Fi
Li40NmM3NzNlZTM4Y2QzMDY3NWI2ZThiMTYyNWY5NzUzMDc5M2IxNmJiIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1NoYXJlZC9BUEkvQVBJT2JqZWN0LmgKKysrIGIvU291cmNlL1dlYktpdC9T
aGFyZWQvQVBJL0FQSU9iamVjdC5oCkBAIC0xODksNiArMTg5LDggQEAgcHVibGljOgogICAgICAg
ICBXZWJBdXRoZW50aWNhdGlvblBhbmVsLAogI2VuZGlmCiAKKyAgICAgICAgTWVkaWFLZXlTeXN0
ZW1QZXJtaXNzaW9uQ2FsbGJhY2ssCisKICAgICAgICAgLy8gQnVuZGxlIHR5cGVzCiAgICAgICAg
IEJ1bmRsZSwKICAgICAgICAgQnVuZGxlQmFja0ZvcndhcmRMaXN0LApAQCAtNDM4LDYgKzQ0MCw4
IEBAIHRlbXBsYXRlPD4gc3RydWN0IEVudW1UcmFpdHM8QVBJOjpPYmplY3Q6OlR5cGU+IHsKICAg
ICAgICAgQVBJOjpPYmplY3Q6OlR5cGU6OldlYkF1dGhlbnRpY2F0aW9uUGFuZWwsCiAjZW5kaWYK
IAorICAgICAgICBBUEk6Ok9iamVjdDo6VHlwZTo6TWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uQ2Fs
bGJhY2ssCisKICAgICAgICAgLy8gQnVuZGxlIHR5cGVzCiAgICAgICAgIEFQSTo6T2JqZWN0OjpU
eXBlOjpCdW5kbGUsCiAgICAgICAgIEFQSTo6T2JqZWN0OjpUeXBlOjpCdW5kbGVCYWNrRm9yd2Fy
ZExpc3QsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BUEkvYy9XS0Jhc2UuaCBi
L1NvdXJjZS9XZWJLaXQvU2hhcmVkL0FQSS9jL1dLQmFzZS5oCmluZGV4IDg0ZWU2YzI4OGY2ZDJl
YmQ1MWZhNzNlYTcyNzA4ZjMyOTQ2YmRkODUuLjdjOGJkMjM5MjRjNGFiNzExNTRmNWNhYzdlNzNj
YzczZDM5NDU4YzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0FQSS9jL1dLQmFz
ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0FQSS9jL1dLQmFzZS5oCkBAIC0xNDIsNiAr
MTQyLDggQEAgdHlwZWRlZiBjb25zdCBzdHJ1Y3QgT3BhcXVlV0tXZWJzaXRlRGF0YVN0b3JlKiBX
S1dlYnNpdGVEYXRhU3RvcmVSZWY7CiB0eXBlZGVmIGNvbnN0IHN0cnVjdCBPcGFxdWVXS1dlYnNp
dGVQb2xpY2llcyogV0tXZWJzaXRlUG9saWNpZXNSZWY7CiB0eXBlZGVmIGNvbnN0IHN0cnVjdCBP
cGFxdWVXS1dpbmRvd0ZlYXR1cmVzKiBXS1dpbmRvd0ZlYXR1cmVzUmVmOwogdHlwZWRlZiBjb25z
dCBzdHJ1Y3QgT3BhcXVlV0tTcGVlY2hSZWNvZ25pdGlvblBlcm1pc3Npb25DYWxsYmFjayogV0tT
cGVlY2hSZWNvZ25pdGlvblBlcm1pc3Npb25DYWxsYmFja1JlZjsKK3R5cGVkZWYgY29uc3Qgc3Ry
dWN0IE9wYXF1ZVdLTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdCogV0tNZWRpYUtleVN5
c3RlbVBlcm1pc3Npb25SZXF1ZXN0UmVmOwordHlwZWRlZiBjb25zdCBzdHJ1Y3QgT3BhcXVlV0tN
ZWRpYUtleVN5c3RlbVBlcm1pc3Npb25DYWxsYmFjayogV0tNZWRpYUtleVN5c3RlbVBlcm1pc3Np
b25DYWxsYmFja1JlZjsKIAogLyogV2ViS2l0MiBCdW5kbGUgdHlwZXMgKi8KIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9Tb3VyY2VzLnR4dCBiL1NvdXJjZS9XZWJLaXQvU291cmNlcy50eHQK
aW5kZXggNmQ0ZWE1MzQ4YzdkYWVmNzUxMDM4OTBiNTA5YzA3MjA5OTMxYTMxNC4uMDBhYjE5ZDQ2
ZGRlNGFkYTIwZDI5M2ZlODNjMjc5MGFlY2M2MDM5MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9Tb3VyY2VzLnR4dAorKysgYi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0CkBAIC0yODYsNiAr
Mjg2LDggQEAgVUlQcm9jZXNzL0ZyYW1lTG9hZFN0YXRlLmNwcAogVUlQcm9jZXNzL0dlb2xvY2F0
aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuY3BwCiBVSVByb2Nlc3MvR2VvbG9jYXRp
b25QZXJtaXNzaW9uUmVxdWVzdFByb3h5LmNwcAogVUlQcm9jZXNzL0xlZ2FjeUdsb2JhbFNldHRp
bmdzLmNwcAorVUlQcm9jZXNzL01lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RNYW5hZ2Vy
UHJveHkuY3BwCitVSVByb2Nlc3MvTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdFByb3h5
LmNwcAogVUlQcm9jZXNzL1BhZ2VMb2FkU3RhdGUuY3BwCiBVSVByb2Nlc3MvUHJvY2Vzc0Fzc2Vy
dGlvbi5jcHAKIFVJUHJvY2Vzcy9Qcm9jZXNzVGhyb3R0bGVyLmNwcApAQCAtMzkyLDYgKzM5NCw3
IEBAIFVJUHJvY2Vzcy9BUEkvQy9XS0hpdFRlc3RSZXN1bHQuY3BwCiBVSVByb2Nlc3MvQVBJL0Mv
V0tJY29uRGF0YWJhc2UuY3BwCiBVSVByb2Nlc3MvQVBJL0MvV0tJbnNwZWN0b3IuY3BwCiBVSVBy
b2Nlc3MvQVBJL0MvV0tLZXlWYWx1ZVN0b3JhZ2VNYW5hZ2VyLmNwcAorVUlQcm9jZXNzL0FQSS9D
L1dLTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uQ2FsbGJhY2suY3BwCiBVSVByb2Nlc3MvQVBJL0Mv
V0tNZXNzYWdlTGlzdGVuZXIuY3BwCiBVSVByb2Nlc3MvQVBJL0MvV0tNb2NrRGlzcGxheS5jcHAK
IFVJUHJvY2Vzcy9BUEkvQy9XS01vY2tNZWRpYURldmljZS5jcHAKQEAgLTUxMiw2ICs1MTUsOCBA
QCBXZWJQcm9jZXNzL0RhdGFiYXNlcy9XZWJEYXRhYmFzZVByb3ZpZGVyLmNwcAogCiBXZWJQcm9j
ZXNzL0RhdGFiYXNlcy9JbmRleGVkREIvV2ViSURCQ29ubmVjdGlvblRvU2VydmVyLmNwcAogCitX
ZWJQcm9jZXNzL0VuY3J5cHRlZE1lZGlhL01lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RN
YW5hZ2VyLmNwcAorCiBXZWJQcm9jZXNzL0ZpbGVBUEkvQmxvYlJlZ2lzdHJ5UHJveHkuY3BwCiAK
IFdlYlByb2Nlc3MvRnVsbFNjcmVlbi9XZWJGdWxsU2NyZWVuTWFuYWdlci5jcHAKQEAgLTY2Niw2
ICs2NzEsNyBAQCBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkRyYWdDbGllbnQuY3BwCiBX
ZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5jcHAKIFdlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwCiBXZWJQcm9jZXNzL1dlYkNv
cmVTdXBwb3J0L1dlYkdlb2xvY2F0aW9uQ2xpZW50LmNwcAorV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC9XZWJNZWRpYUtleVN5c3RlbUNsaWVudC5jcHAKIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBv
cnQvV2ViTWVzc2FnZVBvcnRDaGFubmVsUHJvdmlkZXIuY3BwCiBXZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0L1dlYk5vdGlmaWNhdGlvbkNsaWVudC5jcHAKIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBv
cnQvV2ViUGVyZm9ybWFuY2VMb2dnaW5nQ2xpZW50LmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL0FQSVVJQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvQVBJVUlDbGllbnQuaAppbmRleCBiMTdiNWExOTYyYmM5ZmRlNmJmOGYwNTVkNGI0YWU5
ZTE3ZWI4NGRlLi4xNjM2N2U2Y2FjODI1YWE5Yzc0ZmI0YzQ4NDNkZDJmMWZmMWRhZDM4IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJVUlDbGllbnQuaAorKysgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJVUlDbGllbnQuaApAQCAtMjA1LDYgKzIwNSw5
IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgZGlkRGlzYWJsZUluc3BlY3RvckJyb3dzZXJE
b21haW4oV2ViS2l0OjpXZWJQYWdlUHJveHkmKSB7IH0KIAogICAgIHZpcnR1YWwgdm9pZCBkZWNp
ZGVQb2xpY3lGb3JTcGVlY2hSZWNvZ25pdGlvblBlcm1pc3Npb25SZXF1ZXN0KFdlYktpdDo6V2Vi
UGFnZVByb3h5JiBwYWdlLCBBUEk6OlNlY3VyaXR5T3JpZ2luJiBvcmlnaW4sIENvbXBsZXRpb25I
YW5kbGVyPHZvaWQoYm9vbCk+JiYgY29tcGxldGlvbkhhbmRsZXIpIHsgcGFnZS5yZXF1ZXN0U3Bl
ZWNoUmVjb2duaXRpb25QZXJtaXNzaW9uQnlEZWZhdWx0QWN0aW9uKG9yaWdpbi5zZWN1cml0eU9y
aWdpbigpLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7IH0KKworICAgIHZpcnR1YWwgdm9p
ZCBkZWNpZGVQb2xpY3lGb3JNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0KFdlYktpdDo6
V2ViUGFnZVByb3h5JiBwYWdlLCBBUEk6OlNlY3VyaXR5T3JpZ2luJiBvcmlnaW4sIGNvbnN0IFdU
Rjo6U3RyaW5nJiBrZXlTeXN0ZW0sIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYgY29t
cGxldGlvbkhhbmRsZXIpIHsgcGFnZS5yZXF1ZXN0TWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uQnlE
ZWZhdWx0QWN0aW9uKG9yaWdpbi5zZWN1cml0eU9yaWdpbigpLCBXVEZNb3ZlKGNvbXBsZXRpb25I
YW5kbGVyKSk7IH0KKwogfTsKIAogfSAvLyBuYW1lc3BhY2UgQVBJCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS0FQSUNhc3QuaCBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9DL1dLQVBJQ2FzdC5oCmluZGV4IGNjOWNmNTk1N2VhMzBkNmFjZjA0NjhkZTcw
MTc5OGE2ZjQxODExNGEuLmM4YTE4OTVhNmQwZGU3MDlmOWFlMzk4YmU0NWJlYTY2YjllYmZhMGQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLQVBJQ2FzdC5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLQVBJQ2FzdC5oCkBAIC03OCw2ICs3
OCw3IEBAIGNsYXNzIEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlUHJveHk7CiBjbGFzcyBBdXRoZW50
aWNhdGlvbkRlY2lzaW9uTGlzdGVuZXI7CiBjbGFzcyBEb3dubG9hZFByb3h5OwogY2xhc3MgR2Vv
bG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdDsKK2NsYXNzIE1lZGlhS2V5U3lzdGVtUGVybWlzc2lv
bkNhbGxiYWNrOwogY2xhc3MgTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3Q7CiBjbGFzcyBT
cGVlY2hSZWNvZ25pdGlvblBlcm1pc3Npb25DYWxsYmFjazsKIGNsYXNzIFVzZXJNZWRpYVBlcm1p
c3Npb25DaGVja1Byb3h5OwpAQCAtMTM1LDYgKzEzNiw3IEBAIFdLX0FERF9BUElfTUFQUElORyhX
S0hUVFBDb29raWVTdG9yZVJlZiwgQVBJOjpIVFRQQ29va2llU3RvcmUpCiBXS19BRERfQVBJX01B
UFBJTkcoV0tIaXRUZXN0UmVzdWx0UmVmLCBBUEk6OkhpdFRlc3RSZXN1bHQpCiBXS19BRERfQVBJ
X01BUFBJTkcoV0tJY29uRGF0YWJhc2VSZWYsIFdlYkljb25EYXRhYmFzZSkKIFdLX0FERF9BUElf
TUFQUElORyhXS0luc3BlY3RvclJlZiwgV2ViSW5zcGVjdG9yUHJveHkpCitXS19BRERfQVBJX01B
UFBJTkcoV0tNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25DYWxsYmFja1JlZiwgTWVkaWFLZXlTeXN0
ZW1QZXJtaXNzaW9uQ2FsbGJhY2spCiBXS19BRERfQVBJX01BUFBJTkcoV0tNZXNzYWdlTGlzdGVu
ZXJSZWYsIEFQSTo6TWVzc2FnZUxpc3RlbmVyKQogV0tfQUREX0FQSV9NQVBQSU5HKFdLTmF2aWdh
dGlvbkFjdGlvblJlZiwgQVBJOjpOYXZpZ2F0aW9uQWN0aW9uKQogV0tfQUREX0FQSV9NQVBQSU5H
KFdLTmF2aWdhdGlvbkRhdGFSZWYsIEFQSTo6TmF2aWdhdGlvbkRhdGEpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS01lZGlhS2V5U3lzdGVtUGVybWlzc2lvbkNh
bGxiYWNrLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLTWVkaWFLZXlTeXN0
ZW1QZXJtaXNzaW9uQ2FsbGJhY2suY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmFhYTczMjRiYmMyYWIzNzI1N2Rh
ODNhYmJjMzQwNzE0YmE3ZTA1MzAKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvQy9XS01lZGlhS2V5U3lzdGVtUGVybWlzc2lvbkNhbGxiYWNrLmNwcApAQCAt
MCwwICsxLDQyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIElnYWxpYSBTLkwuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
CisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJXS01lZGlhS2V5U3lzdGVtUGVy
bWlzc2lvbkNhbGxiYWNrLmgiCisKKyNpbmNsdWRlICJNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25S
ZXF1ZXN0LmgiCisjaW5jbHVkZSAiV0tBUElDYXN0LmgiCisKK3VzaW5nIG5hbWVzcGFjZSBXZWJL
aXQ7CisKK1dLVHlwZUlEIFdLTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uQ2FsbGJhY2tHZXRUeXBl
SUQoKQoreworICAgIHJldHVybiB0b0FQSShNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25DYWxsYmFj
azo6QVBJVHlwZSk7Cit9CisKK3ZvaWQgV0tNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25DYWxsYmFj
a0NvbXBsZXRlKFdLTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uQ2FsbGJhY2tSZWYgcGVybWlzc2lv
bkNhbGxiYWNrLCBib29sIGdyYW50ZWQpCit7CisgICAgcmV0dXJuIHRvSW1wbChwZXJtaXNzaW9u
Q2FsbGJhY2spLT5jb21wbGV0ZShncmFudGVkKTsKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9DL1dLTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uQ2FsbGJhY2suaCBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9u
Q2FsbGJhY2suaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mNWQzNjgzN2VmYTY5YTRiMDZkZjEzMjEyMmZhZjZhMGEx
ZjUyMDc4Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0Mv
V0tNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25DYWxsYmFjay5oCkBAIC0wLDAgKzEsNDAgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgSWdhbGlhIFMuTC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMg
YGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRS
SUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBv
bmNlCisKKyNpbmNsdWRlIDxXZWJLaXQvV0tCYXNlLmg+CisKKyNpZmRlZiBfX2NwbHVzcGx1cwor
ZXh0ZXJuICJDIiB7CisjZW5kaWYKKworV0tfRVhQT1JUIFdLVHlwZUlEIFdLTWVkaWFLZXlTeXN0
ZW1QZXJtaXNzaW9uQ2FsbGJhY2tHZXRUeXBlSUQodm9pZCk7CisKK1dLX0VYUE9SVCB2b2lkIFdL
TWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uQ2FsbGJhY2tDb21wbGV0ZShXS01lZGlhS2V5U3lzdGVt
UGVybWlzc2lvbkNhbGxiYWNrUmVmIHBlcm1pc3Npb25DYWxsYmFjaywgYm9vbCBncmFudGVkKTsK
KworI2lmZGVmIF9fY3BsdXNwbHVzCit9CisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvQy9XS1BhZ2UuY3BwCmluZGV4IDc0NDNmNzBmOTU3NTgzNmQ4NDNkYTU0Yzg0ODE1MDljOWQ4
YzRkZWMuLmMzOWU3MmYwNzEyY2JhYzBiZWJhZmYwYjAyZTg0NTczYWMxNmY5MTQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmNwcApAQCAtNTgsNiArNTgsNyBAQAogI2lu
Y2x1ZGUgIkRvd25sb2FkUHJveHkuaCIKICNpbmNsdWRlICJMZWdhY3lTZXNzaW9uU3RhdGVDb2Rp
bmcuaCIKICNpbmNsdWRlICJMb2dnaW5nLmgiCisjaW5jbHVkZSAiTWVkaWFLZXlTeXN0ZW1QZXJt
aXNzaW9uUmVxdWVzdC5oIgogI2luY2x1ZGUgIk5hdGl2ZVdlYktleWJvYXJkRXZlbnQuaCIKICNp
bmNsdWRlICJOYXRpdmVXZWJXaGVlbEV2ZW50LmgiCiAjaW5jbHVkZSAiTmF2aWdhdGlvbkFjdGlv
bkRhdGEuaCIKQEAgLTExNyw3ICsxMTgsNyBAQCB0ZW1wbGF0ZTw+IHN0cnVjdCBDbGllbnRUcmFp
dHM8V0tQYWdlUG9saWN5Q2xpZW50QmFzZT4gewogfTsKIAogdGVtcGxhdGU8PiBzdHJ1Y3QgQ2xp
ZW50VHJhaXRzPFdLUGFnZVVJQ2xpZW50QmFzZT4gewotICAgIHR5cGVkZWYgc3RkOjp0dXBsZTxX
S1BhZ2VVSUNsaWVudFYwLCBXS1BhZ2VVSUNsaWVudFYxLCBXS1BhZ2VVSUNsaWVudFYyLCBXS1Bh
Z2VVSUNsaWVudFYzLCBXS1BhZ2VVSUNsaWVudFY0LCBXS1BhZ2VVSUNsaWVudFY1LCBXS1BhZ2VV
SUNsaWVudFY2LCBXS1BhZ2VVSUNsaWVudFY3LCBXS1BhZ2VVSUNsaWVudFY4LCBXS1BhZ2VVSUNs
aWVudFY5LCBXS1BhZ2VVSUNsaWVudFYxMCwgV0tQYWdlVUlDbGllbnRWMTEsIFdLUGFnZVVJQ2xp
ZW50VjEyLCBXS1BhZ2VVSUNsaWVudFYxMywgV0tQYWdlVUlDbGllbnRWMTQsIFdLUGFnZVVJQ2xp
ZW50VjE1PiBWZXJzaW9uczsKKyAgICB0eXBlZGVmIHN0ZDo6dHVwbGU8V0tQYWdlVUlDbGllbnRW
MCwgV0tQYWdlVUlDbGllbnRWMSwgV0tQYWdlVUlDbGllbnRWMiwgV0tQYWdlVUlDbGllbnRWMywg
V0tQYWdlVUlDbGllbnRWNCwgV0tQYWdlVUlDbGllbnRWNSwgV0tQYWdlVUlDbGllbnRWNiwgV0tQ
YWdlVUlDbGllbnRWNywgV0tQYWdlVUlDbGllbnRWOCwgV0tQYWdlVUlDbGllbnRWOSwgV0tQYWdl
VUlDbGllbnRWMTAsIFdLUGFnZVVJQ2xpZW50VjExLCBXS1BhZ2VVSUNsaWVudFYxMiwgV0tQYWdl
VUlDbGllbnRWMTMsIFdLUGFnZVVJQ2xpZW50VjE0LCBXS1BhZ2VVSUNsaWVudFYxNSwgV0tQYWdl
VUlDbGllbnRWMTY+IFZlcnNpb25zOwogfTsKIAogI2lmIEVOQUJMRShDT05URVhUX01FTlVTKQpA
QCAtMjExOSw2ICsyMTIwLDE2IEBAIHZvaWQgV0tQYWdlU2V0UGFnZVVJQ2xpZW50KFdLUGFnZVJl
ZiBwYWdlUmVmLCBjb25zdCBXS1BhZ2VVSUNsaWVudEJhc2UqIHdrQ2xpZW50CiAKICAgICAgICAg
ICAgIG1fY2xpZW50LmRlY2lkZVBvbGljeUZvclNwZWVjaFJlY29nbml0aW9uUGVybWlzc2lvblJl
cXVlc3QodG9BUEkoJnBhZ2UpLCB0b0FQSSgmb3JpZ2luKSwgdG9BUEkoU3BlZWNoUmVjb2duaXRp
b25QZXJtaXNzaW9uQ2FsbGJhY2s6OmNyZWF0ZShXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSku
cHRyKCkpKTsKICAgICAgICAgfQorCisgICAgICAgIHZvaWQgZGVjaWRlUG9saWN5Rm9yTWVkaWFL
ZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdChXZWJQYWdlUHJveHkmIHBhZ2UsIEFQSTo6U2VjdXJp
dHlPcmlnaW4mIG9yaWdpbiwgY29uc3QgU3RyaW5nJiBrZXlTeXN0ZW0sIENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoYm9vbCk+JiYgY29tcGxldGlvbkhhbmRsZXIpIGZpbmFsCisgICAgICAgIHsKKyAg
ICAgICAgICAgIGlmICghbV9jbGllbnQuZGVjaWRlUG9saWN5Rm9yTWVkaWFLZXlTeXN0ZW1QZXJt
aXNzaW9uUmVxdWVzdCkgeworICAgICAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKGZhbHNl
KTsKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAg
IG1fY2xpZW50LmRlY2lkZVBvbGljeUZvck1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3Qo
dG9BUEkoJnBhZ2UpLCB0b0FQSSgmb3JpZ2luKSwgdG9BUEkoQVBJOjpTdHJpbmc6OmNyZWF0ZShr
ZXlTeXN0ZW0pLnB0cigpKSwgdG9BUEkoTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uQ2FsbGJhY2s6
OmNyZWF0ZShXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSkucHRyKCkpKTsKKyAgICAgICAgfQog
ICAgIH07CiAKICAgICB0b0ltcGwocGFnZVJlZiktPnNldFVJQ2xpZW50KG1ha2VVbmlxdWU8VUlD
bGllbnQ+KHdrQ2xpZW50KSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvQy9XS1BhZ2VVSUNsaWVudC5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQ
YWdlVUlDbGllbnQuaAppbmRleCA2MzYzNTU1NjRkMDBiMTEyMmE4N2UyMjlhMzBiOTRkN2U5OWU0
ZWY5Li4zZDMxNWJlNjEzNDhkZDdkMjQ2N2JhYTk0ZGVhNGFlNzExYzI3ODAzIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2VVSUNsaWVudC5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZVVJQ2xpZW50LmgKQEAgLTEzOCw4ICsx
MzgsMTAgQEAgdHlwZWRlZiBib29sICgqV0tQYWdlU2hvdWxkQWxsb3dEZXZpY2VPcmllbnRhdGlv
bkFuZE1vdGlvbkFjY2Vzc0NhbGxiYWNrKShXS1BhZ2UKIHR5cGVkZWYgdm9pZCAoKldLUGFnZVJ1
bldlYkF1dGhlbnRpY2F0aW9uUGFuZWxDYWxsYmFjaykoKTsKIHR5cGVkZWYgdm9pZCAoKldLUGFn
ZURlY2lkZVBvbGljeUZvclNwZWVjaFJlY29nbml0aW9uUGVybWlzc2lvblJlcXVlc3RDYWxsYmFj
aykoV0tQYWdlUmVmIHBhZ2UsIFdLU2VjdXJpdHlPcmlnaW5SZWYgdG9wT3JpZ2luLCBXS1NwZWVj
aFJlY29nbml0aW9uUGVybWlzc2lvbkNhbGxiYWNrUmVmIGNhbGxiYWNrKTsKIAordHlwZWRlZiB2
b2lkICgqV0tQYWdlRGVjaWRlUG9saWN5Rm9yTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVz
dENhbGxiYWNrKShXS1BhZ2VSZWYgcGFnZSwgV0tTZWN1cml0eU9yaWdpblJlZiB0b3BPcmlnaW4s
IFdLU3RyaW5nUmVmIGtleVN5c3RlbSwgV0tNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25DYWxsYmFj
a1JlZiBjYWxsYmFjayk7CisKIC8vIERlcHJlY2F0ZWQKLXR5cGVkZWYgV0tQYWdlUmVmICgqV0tQ
YWdlQ3JlYXRlTmV3UGFnZUNhbGxiYWNrX2RlcHJlY2F0ZWRGb3JVc2VXaXRoVjApKFdLUGFnZVJl
ZiBwYWdlLCBXS0RpY3Rpb25hcnlSZWYgZmVhdHVyZXMsIFdLRXZlbnRNb2RpZmllcnMgbW9kaWZp
ZXJzLCBXS0V2ZW50TW91c2VCdXR0b24gbW91c2VCdXR0b24sIGNvbnN0IHZvaWQgKmNsaWVudElu
Zm8pOwordHlwZWRlZiBXS1BhZ2VSZWYgKCpXS1BhZ2VDcmVhdGVOZXdQYWdlQ2FsbGJhY2tfZGVw
cmVjYXRlZEZvclVzZVdpdGhWMCkoV0tQYWdlUmVmIHBhZ2UsIFdLRGljdGlvbmFyeVJlZiBmZWF0
dXJlcywgV0tFdmVudE1vZGlmaWVycyBtb2RpZmllcnMsIFdLRXZlbnRNb3VzZUJ1dHRvbiBtb3Vz
ZUJ1dHRvbiwgY29uc3Qgdm9pZCogY2xpZW50SW5mbyk7CiB0eXBlZGVmIHZvaWQgICAgICAoKldL
UGFnZU1vdXNlRGlkTW92ZU92ZXJFbGVtZW50Q2FsbGJhY2tfZGVwcmVjYXRlZEZvclVzZVdpdGhW
MCkoV0tQYWdlUmVmIHBhZ2UsIFdLRXZlbnRNb2RpZmllcnMgbW9kaWZpZXJzLCBXS1R5cGVSZWYg
dXNlckRhdGEsIGNvbnN0IHZvaWQgKmNsaWVudEluZm8pOwogdHlwZWRlZiB2b2lkICgqV0tQYWdl
TWlzc2luZ1BsdWdpbkJ1dHRvbkNsaWNrZWRDYWxsYmFja19kZXByZWNhdGVkRm9yVXNlV2l0aFYw
KShXS1BhZ2VSZWYgcGFnZSwgV0tTdHJpbmdSZWYgbWltZVR5cGUsIFdLU3RyaW5nUmVmIHVybCwg
V0tTdHJpbmdSZWYgcGx1Z2luc1BhZ2VVUkwsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pOwogdHlw
ZWRlZiB2b2lkICgqV0tQYWdlVW5hdmFpbGFibGVQbHVnaW5CdXR0b25DbGlja2VkQ2FsbGJhY2tf
ZGVwcmVjYXRlZEZvclVzZVdpdGhWMSkoV0tQYWdlUmVmIHBhZ2UsIFdLUGx1Z2luVW5hdmFpbGFi
aWxpdHlSZWFzb24gcGx1Z2luVW5hdmFpbGFiaWxpdHlSZWFzb24sIFdLU3RyaW5nUmVmIG1pbWVU
eXBlLCBXS1N0cmluZ1JlZiB1cmwsIFdLU3RyaW5nUmVmIHBsdWdpbnNQYWdlVVJMLCBjb25zdCB2
b2lkKiBjbGllbnRJbmZvKTsKQEAgLTE0NjUsNiArMTQ2NywxMjEgQEAgdHlwZWRlZiBzdHJ1Y3Qg
V0tQYWdlVUlDbGllbnRWMTUgewogICAgIAogfSBXS1BhZ2VVSUNsaWVudFYxNTsKIAordHlwZWRl
ZiBzdHJ1Y3QgV0tQYWdlVUlDbGllbnRWMTYgeworICAgIFdLUGFnZVVJQ2xpZW50QmFzZSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmFzZTsKKworICAg
IC8vIFZlcnNpb24gMC4KKyAgICBXS1BhZ2VDcmVhdGVOZXdQYWdlQ2FsbGJhY2tfZGVwcmVjYXRl
ZEZvclVzZVdpdGhWMCAgICAgICAgICAgICAgICAgIGNyZWF0ZU5ld1BhZ2VfZGVwcmVjYXRlZEZv
clVzZVdpdGhWMDsKKyAgICBXS1BhZ2VVSUNsaWVudENhbGxiYWNrICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNob3dQYWdlOworICAgIFdLUGFnZVVJQ2xpZW50
Q2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xv
c2U7CisgICAgV0tQYWdlVGFrZUZvY3VzQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICB0YWtlRm9jdXM7CisgICAgV0tQYWdlRm9jdXNDYWxsYmFjayAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb2N1czsKKyAg
ICBXS1BhZ2VVbmZvY3VzQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHVuZm9jdXM7CisgICAgV0tQYWdlUnVuSmF2YVNjcmlwdEFsZXJ0Q2FsbGJh
Y2tfZGVwcmVjYXRlZEZvclVzZVdpdGhWMCAgICAgICAgICAgICBydW5KYXZhU2NyaXB0QWxlcnRf
ZGVwcmVjYXRlZEZvclVzZVdpdGhWMDsKKyAgICBXS1BhZ2VSdW5KYXZhU2NyaXB0Q29uZmlybUNh
bGxiYWNrX2RlcHJlY2F0ZWRGb3JVc2VXaXRoVjAgICAgICAgICAgIHJ1bkphdmFTY3JpcHRDb25m
aXJtX2RlcHJlY2F0ZWRGb3JVc2VXaXRoVjA7CisgICAgV0tQYWdlUnVuSmF2YVNjcmlwdFByb21w
dENhbGxiYWNrX2RlcHJlY2F0ZWRGb3JVc2VXaXRoVjAgICAgICAgICAgICBydW5KYXZhU2NyaXB0
UHJvbXB0X2RlcHJlY2F0ZWRGb3JVc2VXaXRoVjA7CisgICAgV0tQYWdlU2V0U3RhdHVzVGV4dENh
bGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRTdGF0dXNU
ZXh0OworICAgIFdLUGFnZU1vdXNlRGlkTW92ZU92ZXJFbGVtZW50Q2FsbGJhY2tfZGVwcmVjYXRl
ZEZvclVzZVdpdGhWMCAgICAgICAgbW91c2VEaWRNb3ZlT3ZlckVsZW1lbnRfZGVwcmVjYXRlZEZv
clVzZVdpdGhWMDsKKyAgICBXS1BhZ2VNaXNzaW5nUGx1Z2luQnV0dG9uQ2xpY2tlZENhbGxiYWNr
X2RlcHJlY2F0ZWRGb3JVc2VXaXRoVjAgICAgIG1pc3NpbmdQbHVnaW5CdXR0b25DbGlja2VkX2Rl
cHJlY2F0ZWRGb3JVc2VXaXRoVjA7CisgICAgV0tQYWdlRGlkTm90SGFuZGxlS2V5RXZlbnRDYWxs
YmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaWROb3RIYW5kbGVLZXlFdmVu
dDsKKyAgICBXS1BhZ2VEaWROb3RIYW5kbGVXaGVlbEV2ZW50Q2FsbGJhY2sgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGRpZE5vdEhhbmRsZVdoZWVsRXZlbnQ7CisgICAgV0tQYWdlR2V0
VG9vbGJhcnNBcmVWaXNpYmxlQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB0b29sYmFyc0FyZVZpc2libGU7CisgICAgV0tQYWdlU2V0VG9vbGJhcnNBcmVWaXNpYmxlQ2Fs
bGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRUb29sYmFyc0FyZVZpc2li
bGU7CisgICAgV0tQYWdlR2V0TWVudUJhcklzVmlzaWJsZUNhbGxiYWNrICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBtZW51QmFySXNWaXNpYmxlOworICAgIFdLUGFnZVNldE1lbnVC
YXJJc1Zpc2libGVDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0
TWVudUJhcklzVmlzaWJsZTsKKyAgICBXS1BhZ2VHZXRTdGF0dXNCYXJJc1Zpc2libGVDYWxsYmFj
ayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXR1c0JhcklzVmlzaWJsZTsKKyAg
ICBXS1BhZ2VTZXRTdGF0dXNCYXJJc1Zpc2libGVDYWxsYmFjayAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHNldFN0YXR1c0JhcklzVmlzaWJsZTsKKyAgICBXS1BhZ2VHZXRJc1Jlc2l6
YWJsZUNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlzUmVz
aXphYmxlOworICAgIFdLUGFnZVNldElzUmVzaXphYmxlQ2FsbGJhY2sgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgc2V0SXNSZXNpemFibGU7CisgICAgV0tQYWdlR2V0V2lu
ZG93RnJhbWVDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBn
ZXRXaW5kb3dGcmFtZTsKKyAgICBXS1BhZ2VTZXRXaW5kb3dGcmFtZUNhbGxiYWNrICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldFdpbmRvd0ZyYW1lOworICAgIFdLUGFn
ZVJ1bkJlZm9yZVVubG9hZENvbmZpcm1QYW5lbENhbGxiYWNrX2RlcHJlY2F0ZWRGb3JVc2VXaXRo
VjYgICAgcnVuQmVmb3JlVW5sb2FkQ29uZmlybVBhbmVsX2RlcHJlY2F0ZWRGb3JVc2VXaXRoVjY7
CisgICAgV0tQYWdlVUlDbGllbnRDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBkaWREcmF3OworICAgIFdLUGFnZVVJQ2xpZW50Q2FsbGJhY2sgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFnZURpZFNjcm9sbDsK
KyAgICBXS1BhZ2VFeGNlZWRlZERhdGFiYXNlUXVvdGFDYWxsYmFjayAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGV4Y2VlZGVkRGF0YWJhc2VRdW90YTsKKyAgICBXS1BhZ2VSdW5PcGVu
UGFuZWxDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJ1
bk9wZW5QYW5lbDsKKyAgICBXS1BhZ2VEZWNpZGVQb2xpY3lGb3JHZW9sb2NhdGlvblBlcm1pc3Np
b25SZXF1ZXN0Q2FsbGJhY2sgICAgICAgICAgIGRlY2lkZVBvbGljeUZvckdlb2xvY2F0aW9uUGVy
bWlzc2lvblJlcXVlc3Q7CisgICAgV0tQYWdlSGVhZGVySGVpZ2h0Q2FsbGJhY2sgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWFkZXJIZWlnaHQ7CisgICAgV0tQYWdl
Rm9vdGVySGVpZ2h0Q2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBmb290ZXJIZWlnaHQ7CisgICAgV0tQYWdlRHJhd0hlYWRlckNhbGxiYWNrICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkcmF3SGVhZGVyOworICAgIFdLUGFn
ZURyYXdGb290ZXJDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgZHJhd0Zvb3RlcjsKKyAgICBXS1BhZ2VQcmludEZyYW1lQ2FsbGJhY2sgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByaW50RnJhbWU7CisgICAgV0tQYWdl
VUlDbGllbnRDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBydW5Nb2RhbDsKKyAgICB2b2lkKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVudXNlZDE7IC8vIFVzZWQgdG8gYmUgZGlk
Q29tcGxldGVSdWJiZXJCYW5kRm9yTWFpbkZyYW1lCisgICAgV0tQYWdlU2F2ZURhdGFUb0ZpbGVJ
bkRvd25sb2Fkc0ZvbGRlckNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICBzYXZlRGF0YVRv
RmlsZUluRG93bmxvYWRzRm9sZGVyOworICAgIHZvaWQqICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2hvdWxkSW50ZXJydXB0SmF2
YVNjcmlwdF91bmF2YWlsYWJsZTsKKworICAgIC8vIFZlcnNpb24gMS4KKyAgICBXS1BhZ2VDcmVh
dGVOZXdQYWdlQ2FsbGJhY2tfZGVwcmVjYXRlZEZvclVzZVdpdGhWMSAgICAgICAgICAgICAgICAg
IGNyZWF0ZU5ld1BhZ2VfZGVwcmVjYXRlZEZvclVzZVdpdGhWMTsKKyAgICBXS1BhZ2VNb3VzZURp
ZE1vdmVPdmVyRWxlbWVudENhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1v
dXNlRGlkTW92ZU92ZXJFbGVtZW50OworICAgIFdLUGFnZURlY2lkZVBvbGljeUZvck5vdGlmaWNh
dGlvblBlcm1pc3Npb25SZXF1ZXN0Q2FsbGJhY2sgICAgICAgICAgZGVjaWRlUG9saWN5Rm9yTm90
aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3Q7CisgICAgV0tQYWdlVW5hdmFpbGFibGVQbHVnaW5C
dXR0b25DbGlja2VkQ2FsbGJhY2tfZGVwcmVjYXRlZEZvclVzZVdpdGhWMSB1bmF2YWlsYWJsZVBs
dWdpbkJ1dHRvbkNsaWNrZWRfZGVwcmVjYXRlZEZvclVzZVdpdGhWMTsKKworICAgIC8vIFZlcnNp
b24gMi4KKyAgICBXS1BhZ2VTaG93Q29sb3JQaWNrZXJDYWxsYmFjayAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHNob3dDb2xvclBpY2tlcjsKKyAgICBXS1BhZ2VIaWRlQ29s
b3JQaWNrZXJDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhp
ZGVDb2xvclBpY2tlcjsKKyAgICBXS1BhZ2VVbmF2YWlsYWJsZVBsdWdpbkJ1dHRvbkNsaWNrZWRD
YWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgIHVuYXZhaWxhYmxlUGx1Z2luQnV0dG9uQ2xp
Y2tlZDsKKworICAgIC8vIFZlcnNpb24gMy4KKyAgICBXS1BhZ2VQaW5uZWRTdGF0ZURpZENoYW5n
ZUNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBpbm5lZFN0YXRlRGlk
Q2hhbmdlOworCisgICAgLy8gVmVyc2lvbiA0LgorICAgIHZvaWQqICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW51c2VkMjsgLy8g
VXNlZCB0byBiZSBkaWRCZWdpblRyYWNraW5nUG90ZW50aWFsTG9uZ01vdXNlUHJlc3MuCisgICAg
dm9pZCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICB1bnVzZWQzOyAvLyBVc2VkIHRvIGJlIGRpZFJlY29nbml6ZUxvbmdNb3VzZVBy
ZXNzLgorICAgIHZvaWQqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgdW51c2VkNDsgLy8gVXNlZCB0byBiZSBkaWRDYW5jZWxUcmFj
a2luZ1BvdGVudGlhbExvbmdNb3VzZVByZXNzLgorICAgIFdLUGFnZUlzUGxheWluZ0F1ZGlvRGlk
Q2hhbmdlQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXNQbGF5aW5nQXVk
aW9EaWRDaGFuZ2U7CisKKyAgICAvLyBWZXJzaW9uIDUuCisgICAgV0tQYWdlRGVjaWRlUG9saWN5
Rm9yVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RDYWxsYmFjayAgICAgICAgICAgICBkZWNpZGVQ
b2xpY3lGb3JVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdDsKKyAgICBXS1BhZ2VEaWRDbGlja0F1
dG9GaWxsQnV0dG9uQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpZENs
aWNrQXV0b0ZpbGxCdXR0b247CisgICAgV0tQYWdlUnVuSmF2YVNjcmlwdEFsZXJ0Q2FsbGJhY2tf
ZGVwcmVjYXRlZEZvclVzZVdpdGhWNSAgICAgICAgICAgICBydW5KYXZhU2NyaXB0QWxlcnRfZGVw
cmVjYXRlZEZvclVzZVdpdGhWNTsKKyAgICBXS1BhZ2VSdW5KYXZhU2NyaXB0Q29uZmlybUNhbGxi
YWNrX2RlcHJlY2F0ZWRGb3JVc2VXaXRoVjUgICAgICAgICAgIHJ1bkphdmFTY3JpcHRDb25maXJt
X2RlcHJlY2F0ZWRGb3JVc2VXaXRoVjU7CisgICAgV0tQYWdlUnVuSmF2YVNjcmlwdFByb21wdENh
bGxiYWNrX2RlcHJlY2F0ZWRGb3JVc2VXaXRoVjUgICAgICAgICAgICBydW5KYXZhU2NyaXB0UHJv
bXB0X2RlcHJlY2F0ZWRGb3JVc2VXaXRoVjU7CisgICAgdm9pZCogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnVzZWQ1OyAvLyBV
c2VkIHRvIGJlIG1lZGlhU2Vzc2lvbk1ldGFkYXRhRGlkQ2hhbmdlLgorCisgICAgLy8gVmVyc2lv
biA2LgorICAgIFdLUGFnZUNyZWF0ZU5ld1BhZ2VDYWxsYmFjayAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgY3JlYXRlTmV3UGFnZTsKKyAgICBXS1BhZ2VSdW5KYXZhU2Ny
aXB0QWxlcnRDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJ1bkph
dmFTY3JpcHRBbGVydDsKKyAgICBXS1BhZ2VSdW5KYXZhU2NyaXB0Q29uZmlybUNhbGxiYWNrICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJ1bkphdmFTY3JpcHRDb25maXJtOworICAg
IFdLUGFnZVJ1bkphdmFTY3JpcHRQcm9tcHRDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgcnVuSmF2YVNjcmlwdFByb21wdDsKKyAgICBXS0NoZWNrVXNlck1lZGlhUGVy
bWlzc2lvbkNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoZWNrVXNl
ck1lZGlhUGVybWlzc2lvbkZvck9yaWdpbjsKKworICAgIC8vIFZlcnNpb24gNy4KKyAgICBXS1Bh
Z2VSdW5CZWZvcmVVbmxvYWRDb25maXJtUGFuZWxDYWxsYmFjayAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHJ1bkJlZm9yZVVubG9hZENvbmZpcm1QYW5lbDsKKyAgICBXS0Z1bGxzY3JlZW5NYXlS
ZXR1cm5Ub0lubGluZUNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZ1bGxz
Y3JlZW5NYXlSZXR1cm5Ub0lubGluZTsKKworICAgIC8vIFZlcnNpb24gOC4KKyAgICBXS1JlcXVl
c3RQb2ludGVyTG9ja0NhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHJlcXVlc3RQb2ludGVyTG9jazsKKyAgICBXS0RpZExvc2VQb2ludGVyTG9ja0NhbGxiYWNr
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpZExvc2VQb2ludGVyTG9j
azsKKworICAgIC8vIFZlcnNpb24gOS4KKyAgICBXS0hhbmRsZUF1dG9wbGF5RXZlbnRDYWxsYmFj
ayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZUF1dG9wbGF5RXZl
bnQ7CisKKyAgICAvLyBWZXJzaW9uIDEwLgorICAgIFdLSGFzVmlkZW9JblBpY3R1cmVJblBpY3R1
cmVEaWRDaGFuZ2VDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgaGFzVmlkZW9JblBpY3R1
cmVJblBpY3R1cmVEaWRDaGFuZ2U7CisgICAgV0tEaWRFeGNlZWRCYWNrZ3JvdW5kUmVzb3VyY2VM
aW1pdFdoaWxlSW5Gb3JlZ3JvdW5kQ2FsbGJhY2sgICAgICAgICBkaWRFeGNlZWRCYWNrZ3JvdW5k
UmVzb3VyY2VMaW1pdFdoaWxlSW5Gb3JlZ3JvdW5kOworCisgICAgLy8gVmVyc2lvbiAxMS4KKyAg
ICBXS1BhZ2VEaWRSZXNpZ25JbnB1dEVsZW1lbnRTdHJvbmdQYXNzd29yZEFwcGVhcmFuY2VDYWxs
YmFjayAgICAgICAgIGRpZFJlc2lnbklucHV0RWxlbWVudFN0cm9uZ1Bhc3N3b3JkQXBwZWFyYW5j
ZTsKKworICAgIC8vIFZlcnNpb24gMTIuCisgICAgV0tQYWdlUmVxdWVzdFN0b3JhZ2VBY2Nlc3ND
b25maXJtQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0U3RvcmFnZUFj
Y2Vzc0NvbmZpcm07CisKKyAgICAvLyBWZXJzaW9uIDEzLgorICAgIFdLUGFnZVNob3VsZEFsbG93
RGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25BY2Nlc3NDYWxsYmFjayAgICAgICAgICAgc2hvdWxk
QWxsb3dEZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlvbkFjY2VzczsKKworICAgIC8vIFZlcnNpb24g
MTQuCisgICAgV0tQYWdlUnVuV2ViQXV0aGVudGljYXRpb25QYW5lbENhbGxiYWNrICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBydW5XZWJBdXRoZW50aWNhdGlvblBhbmVsOworCisgICAgLy8g
VmVyc2lvbiAxNS4KKyAgICBXS1BhZ2VEZWNpZGVQb2xpY3lGb3JTcGVlY2hSZWNvZ25pdGlvblBl
cm1pc3Npb25SZXF1ZXN0Q2FsbGJhY2sgICAgIGRlY2lkZVBvbGljeUZvclNwZWVjaFJlY29nbml0
aW9uUGVybWlzc2lvblJlcXVlc3Q7CisKKyAgICAvLyBWZXJzaW9uIDE2LgorICAgIFdLUGFnZURl
Y2lkZVBvbGljeUZvck1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RDYWxsYmFjayAgICAg
ICAgZGVjaWRlUG9saWN5Rm9yTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdDsKKworfSBX
S1BhZ2VVSUNsaWVudFYxNjsKKworCiAjaWZkZWYgX19jcGx1c3BsdXMKIH0KICNlbmRpZgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9u
UmVxdWVzdC5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTWVkaWFLZXlTeXN0ZW1QZXJtaXNz
aW9uUmVxdWVzdC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjRhZmMzNWQwMTc3MmQ1ODk3Yzc3ZWFjMDEwN2JjOWJl
NzRiNDYyOGEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9NZWRp
YUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0LmgKQEAgLTAsMCArMSw3NiBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAyMSBJZ2FsaWEgUy5MLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElT
JycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JT
CisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisg
KiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAq
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKwor
I2luY2x1ZGUgIkFQSU9iamVjdC5oIgorI2luY2x1ZGUgPFdlYkNvcmUvQ2xpZW50T3JpZ2luLmg+
CisjaW5jbHVkZSA8d3RmL0NvbXBsZXRpb25IYW5kbGVyLmg+CisKK25hbWVzcGFjZSBXZWJLaXQg
eworCitjbGFzcyBNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0IDogcHVibGljIFJlZkNv
dW50ZWQ8TWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdD4geworcHVibGljOgorICAgIHN0
YXRpYyBSZWY8TWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdD4gY3JlYXRlKGNvbnN0IFN0
cmluZyYga2V5U3lzdGVtLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmIGNvbXBsZXRp
b25IYW5kbGVyKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgTWVkaWFLZXlT
eXN0ZW1QZXJtaXNzaW9uUmVxdWVzdChrZXlTeXN0ZW0sIFdURk1vdmUoY29tcGxldGlvbkhhbmRs
ZXIpKSk7CisgICAgfQorCisgICAgdm9pZCBjb21wbGV0ZShib29sIHN1Y2Nlc3MpCisgICAgewor
ICAgICAgICBhdXRvIGNvbXBsZXRpb25IYW5kbGVyID0gc3RkOjpleGNoYW5nZShtX2NvbXBsZXRp
b25IYW5kbGVyLCB7IH0pOworICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihzdWNjZXNzKTsKKyAg
ICB9CisKKyAgICBjb25zdCBTdHJpbmcmIGtleVN5c3RlbSgpIGNvbnN0IHsgcmV0dXJuIG1fa2V5
U3lzdGVtOyB9CisKK3ByaXZhdGU6CisgICAgTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVz
dChjb25zdCBTdHJpbmcmIGtleVN5c3RlbSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4m
JiBjb21wbGV0aW9uSGFuZGxlcikKKyAgICAgICAgOiBtX2tleVN5c3RlbShrZXlTeXN0ZW0pCisg
ICAgICAgICwgbV9jb21wbGV0aW9uSGFuZGxlcihXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSkK
KyAgICB7IH0KKworICAgIFN0cmluZyBtX2tleVN5c3RlbTsKKyAgICBDb21wbGV0aW9uSGFuZGxl
cjx2b2lkKGJvb2wpPiBtX2NvbXBsZXRpb25IYW5kbGVyOworfTsKKworY2xhc3MgTWVkaWFLZXlT
eXN0ZW1QZXJtaXNzaW9uQ2FsbGJhY2sgOiBwdWJsaWMgQVBJOjpPYmplY3RJbXBsPEFQSTo6T2Jq
ZWN0OjpUeXBlOjpNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25DYWxsYmFjaz4geworcHVibGljOgor
ICAgIHN0YXRpYyBSZWY8TWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uQ2FsbGJhY2s+IGNyZWF0ZShD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQorICAgIHsK
KyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uQ2Fs
bGJhY2soV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpKTsKKyAgICB9CisKKyAgICB2b2lkIGNv
bXBsZXRlKGJvb2wgZ3JhbnRlZCkgeyBtX2NvbXBsZXRpb25IYW5kbGVyKGdyYW50ZWQpOyB9CisK
K3ByaXZhdGU6CisgICAgTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uQ2FsbGJhY2soQ29tcGxldGlv
bkhhbmRsZXI8dm9pZChib29sKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKKyAgICAgICAgOiBtX2Nv
bXBsZXRpb25IYW5kbGVyKFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKQorICAgIHsgfQorCisg
ICAgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4gbV9jb21wbGV0aW9uSGFuZGxlcjsKK307
CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5jcHAgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9NZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0TWFu
YWdlclByb3h5LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40ZmJiNjY2NjRhNWRmOWY0NmNiN2Q5ZmNlNWY5YmNl
ZGFlZTVmNDBhCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTWVk
aWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5jcHAKQEAgLTAsMCArMSwx
MjEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgSWdhbGlhIFMuTC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05U
UklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1Ig
SVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwor
I2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIk1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJl
cXVlc3RNYW5hZ2VyUHJveHkuaCIKKworI2luY2x1ZGUgIkFQSVNlY3VyaXR5T3JpZ2luLmgiCisj
aW5jbHVkZSAiQVBJVUlDbGllbnQuaCIKKyNpbmNsdWRlICJMb2dnaW5nLmgiCisjaW5jbHVkZSAi
V2ViQXV0b21hdGlvblNlc3Npb24uaCIKKyNpbmNsdWRlICJXZWJQYWdlTWVzc2FnZXMuaCIKKyNp
bmNsdWRlICJXZWJQYWdlUHJveHkuaCIKKyNpbmNsdWRlICJXZWJQcm9jZXNzLmgiCisjaW5jbHVk
ZSAiV2ViUHJvY2Vzc1Bvb2wuaCIKKyNpbmNsdWRlICJXZWJQcm9jZXNzUHJveHkuaCIKKyNpbmNs
dWRlICJXZWJzaXRlRGF0YVN0b3JlLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9NZWRpYUtleVN5c3Rl
bVJlcXVlc3QuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1NlY3VyaXR5T3JpZ2luRGF0YS5oPgorI2lu
Y2x1ZGUgPHd0Zi9TY29wZS5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKK3VzaW5nIG5hbWVzcGFj
ZSBXZWJDb3JlOworCisjaWYgIVJFTEVBU0VfTE9HX0RJU0FCTEVECitzdGF0aWMgY29uc3QgY2hh
ciogbG9nQ2xhc3NOYW1lKCkKK3sKKyAgICByZXR1cm4gIk1lZGlhS2V5U3lzdGVtUGVybWlzc2lv
blJlcXVlc3RNYW5hZ2VyUHJveHkiOworfQorCitzdGF0aWMgV1RGTG9nQ2hhbm5lbCYgbG9nQ2hh
bm5lbCgpCit7CisgICAgcmV0dXJuIFdlYktpdDJMb2dFTUU7Cit9CisKK2NvbnN0IExvZ2dlciYg
TWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6bG9nZ2VyKCkgY29u
c3QKK3sKKyAgICByZXR1cm4gbV9wYWdlLmxvZ2dlcigpOworfQorI2VuZGlmCisKK01lZGlhS2V5
U3lzdGVtUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6Ok1lZGlhS2V5U3lzdGVtUGVybWlz
c2lvblJlcXVlc3RNYW5hZ2VyUHJveHkoV2ViUGFnZVByb3h5JiBwYWdlKQorICAgIDogbV9wYWdl
KHBhZ2UpCisjaWYgIVJFTEVBU0VfTE9HX0RJU0FCTEVECisgICAgLCBtX2xvZ0lkZW50aWZpZXIo
TG9nZ2VySGVscGVyOjp1bmlxdWVMb2dJZGVudGlmaWVyKCkpCisjZW5kaWYKK3sKK30KKworTWVk
aWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6fk1lZGlhS2V5U3lzdGVt
UGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkoKQoreworICAgIGludmFsaWRhdGVQZW5kaW5n
UmVxdWVzdHMoKTsKK30KKwordm9pZCBNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0TWFu
YWdlclByb3h5OjppbnZhbGlkYXRlUGVuZGluZ1JlcXVlc3RzKCkKK3sKKyAgICBmb3IgKGF1dG8m
IHJlcXVlc3QgOiBtX3BlbmRpbmdSZXF1ZXN0cy52YWx1ZXMoKSkKKyAgICAgICAgcmVxdWVzdC0+
aW52YWxpZGF0ZSgpOworCisgICAgbV9wZW5kaW5nUmVxdWVzdHMuY2xlYXIoKTsKK30KKwordm9p
ZCBNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5OjpkZW55UmVxdWVz
dChNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0UHJveHkmIHJlcXVlc3QsIGNvbnN0IFN0
cmluZyYgbWVzc2FnZSkKK3sKKyAgICBpZiAoIW1fcGFnZS5oYXNSdW5uaW5nUHJvY2VzcygpKQor
ICAgICAgICByZXR1cm47CisKKyAgICBBTFdBWVNfTE9HKExPR0lERU5USUZJRVIsIHJlcXVlc3Qu
bWVkaWFLZXlTeXN0ZW1JRCgpLCAiLCByZWFzb246ICIsIG1lc3NhZ2UpOworCisjaWYgRU5BQkxF
KEVOQ1JZUFRFRF9NRURJQSkKKyAgICBtX3BhZ2Uuc2VuZChNZXNzYWdlczo6V2ViUGFnZTo6TWVk
aWFLZXlTeXN0ZW1XYXNEZW5pZWQocmVxdWVzdC5tZWRpYUtleVN5c3RlbUlEKCksIG1lc3NhZ2Up
KTsKKyNlbHNlCisgICAgVU5VU0VEX1BBUkFNKG1lc3NhZ2UpOworI2VuZGlmCit9CisKK3ZvaWQg
TWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6Z3JhbnRSZXF1ZXN0
KE1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RQcm94eSYgcmVxdWVzdCkKK3sKKyAgICBp
ZiAoIW1fcGFnZS5oYXNSdW5uaW5nUHJvY2VzcygpKQorICAgICAgICByZXR1cm47CisKKyNpZiBF
TkFCTEUoRU5DUllQVEVEX01FRElBKQorICAgIEFMV0FZU19MT0coTE9HSURFTlRJRklFUiwgcmVx
dWVzdC5tZWRpYUtleVN5c3RlbUlEKCksICIsIGtleVN5c3RlbTogIiwgcmVxdWVzdC5rZXlTeXN0
ZW0oKSk7CisKKyAgICBtX3BhZ2Uuc2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpXZWJQYWdl
OjpNZWRpYUtleVN5c3RlbVdhc0dyYW50ZWQgeyByZXF1ZXN0Lm1lZGlhS2V5U3lzdGVtSUQoKSB9
LCBbXSB7IH0pOworI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0ocmVxdWVzdCk7CisjZW5kaWYKK30K
KworUmVmPE1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RQcm94eT4gTWVkaWFLZXlTeXN0
ZW1QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6Y3JlYXRlUmVxdWVzdEZvckZyYW1lKHVp
bnQ2NF90IG1lZGlhS2V5U3lzdGVtSUQsIEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBSZWY8U2Vj
dXJpdHlPcmlnaW4+JiYgdG9wTGV2ZWxEb2N1bWVudE9yaWdpbiwgY29uc3QgU3RyaW5nJiBrZXlT
eXN0ZW0pCit7CisgICAgQUxXQVlTX0xPRyhMT0dJREVOVElGSUVSLCBtZWRpYUtleVN5c3RlbUlE
KTsKKworICAgIGF1dG8gcmVxdWVzdCA9IE1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RQ
cm94eTo6Y3JlYXRlKCp0aGlzLCBtZWRpYUtleVN5c3RlbUlELCBtX3BhZ2UubWFpbkZyYW1lKCkt
PmZyYW1lSUQoKSwgZnJhbWVJRCwgV1RGTW92ZSh0b3BMZXZlbERvY3VtZW50T3JpZ2luKSwga2V5
U3lzdGVtKTsKKyAgICBtX3BlbmRpbmdSZXF1ZXN0cy5hZGQobWVkaWFLZXlTeXN0ZW1JRCwgcmVx
dWVzdC5wdHIoKSk7CisgICAgcmV0dXJuIHJlcXVlc3Q7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdl
YktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTWVkaWFLZXlTeXN0ZW1Q
ZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
TWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5oCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjM0YWIzODZlY2E1ZTQ3OWQxMDQxNzdhN2E5MTc2ZjAxZjRkZGNhYTkKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9NZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1
ZXN0TWFuYWdlclByb3h5LmgKQEAgLTAsMCArMSw3NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAyMSBJZ2FsaWEgUy5MLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgIk1l
ZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RQcm94eS5oIgorI2luY2x1ZGUgPFdlYkNvcmUv
U2VjdXJpdHlPcmlnaW4uaD4KKyNpbmNsdWRlIDx3dGYvQ29tcGxldGlvbkhhbmRsZXIuaD4KKyNp
bmNsdWRlIDx3dGYvSGFzaE1hcC5oPgorI2luY2x1ZGUgPHd0Zi9Mb2dnZXJIZWxwZXIuaD4KKyNp
bmNsdWRlIDx3dGYvUnVuTG9vcC5oPgorI2luY2x1ZGUgPHd0Zi9XZWFrUHRyLmg+CisKK25hbWVz
cGFjZSBXZWJDb3JlIHsKK2NsYXNzIFNlY3VyaXR5T3JpZ2luOworfTsKKworbmFtZXNwYWNlIFdl
YktpdCB7CisKK2NsYXNzIFdlYlBhZ2VQcm94eTsKKworY2xhc3MgTWVkaWFLZXlTeXN0ZW1QZXJt
aXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eSA6IHB1YmxpYyBDYW5NYWtlV2Vha1B0cjxNZWRpYUtl
eVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5PiB7CisgICAgV1RGX01BS0VfRkFT
VF9BTExPQ0FURUQ7CitwdWJsaWM6CisgICAgZXhwbGljaXQgTWVkaWFLZXlTeXN0ZW1QZXJtaXNz
aW9uUmVxdWVzdE1hbmFnZXJQcm94eShXZWJQYWdlUHJveHkmKTsKKyAgICB+TWVkaWFLZXlTeXN0
ZW1QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eSgpOworCisgICAgV2ViUGFnZVByb3h5JiBw
YWdlKCkgY29uc3QgeyByZXR1cm4gbV9wYWdlOyB9CisKKyAgICB2b2lkIGludmFsaWRhdGVQZW5k
aW5nUmVxdWVzdHMoKTsKKworICAgIFJlZjxNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0
UHJveHk+IGNyZWF0ZVJlcXVlc3RGb3JGcmFtZSh1aW50NjRfdCB1c2VyTWVkaWFJRCwgV2ViQ29y
ZTo6RnJhbWVJZGVudGlmaWVyLCBSZWY8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4+JiYgdG9wTGV2
ZWxEb2N1bWVudE9yaWdpbiwgY29uc3QgU3RyaW5nJiBrZXlTeXN0ZW0pOworCisgICAgdm9pZCBn
cmFudFJlcXVlc3QoTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdFByb3h5Jik7CisgICAg
dm9pZCBkZW55UmVxdWVzdChNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0UHJveHkmLCBj
b25zdCBTdHJpbmcmIG1lc3NhZ2UgPSB7IH0pOworCitwcml2YXRlOgorI2lmICFSRUxFQVNFX0xP
R19ESVNBQkxFRAorICAgIGNvbnN0IExvZ2dlciYgbG9nZ2VyKCkgY29uc3Q7CisgICAgY29uc3Qg
dm9pZCogbG9nSWRlbnRpZmllcigpIGNvbnN0IHsgcmV0dXJuIG1fbG9nSWRlbnRpZmllcjsgfQor
I2VuZGlmCisKKyAgICBXZWJQYWdlUHJveHkmIG1fcGFnZTsKKworICAgIEhhc2hNYXA8dWludDY0
X3QsIFJlZlB0cjxNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0UHJveHk+PiBtX3BlbmRp
bmdSZXF1ZXN0czsKKyAgICBIYXNoU2V0PFN0cmluZz4gbV92YWxpZEF1dGhvcml6YXRpb25Ub2tl
bnM7CisKKyNpZiAhUkVMRUFTRV9MT0dfRElTQUJMRUQKKyAgICBjb25zdCB2b2lkKiBtX2xvZ0lk
ZW50aWZpZXI7CisjZW5kaWYKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVz
dFByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL01lZGlhS2V5U3lzdGVtUGVybWlz
c2lvblJlcXVlc3RQcm94eS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uM2Q0N2FmODRjOTQ1ZGZjNGMyMGEyODM0
ZTMzZjI4MDgwYzliNGYxMwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL01lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RQcm94eS5jcHAKQEAgLTAsMCArMSw4
MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBJZ2FsaWEgUy5MLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRS
SUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJ
VFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisj
aW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVx
dWVzdFByb3h5LmgiCisKKyNpbmNsdWRlICJNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0
TWFuYWdlclByb3h5LmgiCisjaW5jbHVkZSA8V2ViQ29yZS9TZWN1cml0eU9yaWdpbi5oPgorI2lu
Y2x1ZGUgPFdlYkNvcmUvU2VjdXJpdHlPcmlnaW5EYXRhLmg+CisjaW5jbHVkZSA8d3RmL3RleHQv
U3RyaW5nSGFzaC5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKK3VzaW5nIG5hbWVzcGFjZSBXZWJD
b3JlOworCitNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0UHJveHk6Ok1lZGlhS2V5U3lz
dGVtUGVybWlzc2lvblJlcXVlc3RQcm94eShNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0
TWFuYWdlclByb3h5JiBtYW5hZ2VyLCB1aW50NjRfdCBtZWRpYUtleVN5c3RlbUlELCBGcmFtZUlk
ZW50aWZpZXIgbWFpbkZyYW1lSUQsIEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBSZWY8V2ViQ29y
ZTo6U2VjdXJpdHlPcmlnaW4+JiYgdG9wTGV2ZWxEb2N1bWVudE9yaWdpbiwgY29uc3QgU3RyaW5n
JiBrZXlTeXN0ZW0pCisgICAgOiBtX21hbmFnZXIobWFrZVdlYWtQdHIobWFuYWdlcikpCisgICAg
LCBtX21lZGlhS2V5U3lzdGVtSUQobWVkaWFLZXlTeXN0ZW1JRCkKKyAgICAsIG1fbWFpbkZyYW1l
SUQobWFpbkZyYW1lSUQpCisgICAgLCBtX2ZyYW1lSUQoZnJhbWVJRCkKKyAgICAsIG1fdG9wTGV2
ZWxEb2N1bWVudFNlY3VyaXR5T3JpZ2luKFdURk1vdmUodG9wTGV2ZWxEb2N1bWVudE9yaWdpbikp
CisgICAgLCBtX2tleVN5c3RlbShrZXlTeXN0ZW0pCit7Cit9CisKK3ZvaWQgTWVkaWFLZXlTeXN0
ZW1QZXJtaXNzaW9uUmVxdWVzdFByb3h5OjphbGxvdygpCit7CisgICAgQVNTRVJUKG1fbWFuYWdl
cik7CisgICAgaWYgKCFtX21hbmFnZXIpCisgICAgICAgIHJldHVybjsKKworICAgIG1fbWFuYWdl
ci0+Z3JhbnRSZXF1ZXN0KCp0aGlzKTsKKyAgICBpbnZhbGlkYXRlKCk7Cit9CisKK3ZvaWQgTWVk
aWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdFByb3h5OjpkZW55KCkKK3sKKyAgICBpZiAoIW1f
bWFuYWdlcikKKyAgICAgICAgcmV0dXJuOworCisgICAgbV9tYW5hZ2VyLT5kZW55UmVxdWVzdCgq
dGhpcyk7CisgICAgaW52YWxpZGF0ZSgpOworfQorCit2b2lkIE1lZGlhS2V5U3lzdGVtUGVybWlz
c2lvblJlcXVlc3RQcm94eTo6aW52YWxpZGF0ZSgpCit7CisgICAgbV9tYW5hZ2VyID0gbnVsbHB0
cjsKK30KKwordm9pZCBNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0UHJveHk6OmRvRGVm
YXVsdEFjdGlvbigpCit7CisjaWYgUExBVEZPUk0oQ09DT0EpCisgICAgLy8gQmFja3dhcmQgY29t
cGF0aWJpbGl0eSBmb3IgcGxhdGZvcm1zIG5vdCB5ZXQgc3VwcG9ydGluZyB0aGUgTWVkaWFLZXlT
eXN0ZW0gcGVybWlzc2lvbiByZXF1ZXN0CisgICAgLy8gaW4gdGhlaXIgQVBJVUlDbGllbnQuCisg
ICAgYWxsb3coKTsKKyNlbHNlCisgICAgZGVueSgpOworI2VuZGlmCit9CisKK30gLy8gbmFtZXNw
YWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTWVkaWFLZXlT
eXN0ZW1QZXJtaXNzaW9uUmVxdWVzdFByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9N
ZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0UHJveHkuaApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43OGZmOTQ1
Y2Y0MDI4MTFjYTBjZGZhMGU0NDYxYzYxZDI4NjkzM2EwCi0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdFByb3h5
LmgKQEAgLTAsMCArMSw3NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBJZ2FsaWEgUy5M
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgIkFQSU9iamVjdC5oIgorI2lu
Y2x1ZGUgPFdlYkNvcmUvRnJhbWVJZGVudGlmaWVyLmg+CisjaW5jbHVkZSA8d3RmL1ZlY3Rvci5o
PgorI2luY2x1ZGUgPHd0Zi9XZWFrUHRyLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5n
Lmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKK2NsYXNzIFNlY3VyaXR5T3JpZ2luOworfQorCitu
YW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3MgTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVz
dE1hbmFnZXJQcm94eTsKKworY2xhc3MgTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdFBy
b3h5IDogcHVibGljIFJlZkNvdW50ZWQ8TWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdFBy
b3h5PiB7CitwdWJsaWM6CisgICAgc3RhdGljIFJlZjxNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25S
ZXF1ZXN0UHJveHk+IGNyZWF0ZShNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdl
clByb3h5JiBtYW5hZ2VyLCB1aW50NjRfdCBtZWRpYUtleVN5c3RlbUlELCBXZWJDb3JlOjpGcmFt
ZUlkZW50aWZpZXIgbWFpbkZyYW1lSUQsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlE
LCBSZWY8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4+JiYgdG9wTGV2ZWxEb2N1bWVudE9yaWdpbiwg
Y29uc3QgU3RyaW5nJiBrZXlTeXN0ZW0pCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYo
Km5ldyBNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0UHJveHkobWFuYWdlciwgbWVkaWFL
ZXlTeXN0ZW1JRCwgbWFpbkZyYW1lSUQsIGZyYW1lSUQsIFdURk1vdmUodG9wTGV2ZWxEb2N1bWVu
dE9yaWdpbiksIGtleVN5c3RlbSkpOworICAgIH0KKworICAgIHZvaWQgYWxsb3coKTsKKyAgICB2
b2lkIGRlbnkoKTsKKworICAgIHZvaWQgaW52YWxpZGF0ZSgpOworCisgICAgdWludDY0X3QgbWVk
aWFLZXlTeXN0ZW1JRCgpIGNvbnN0IHsgcmV0dXJuIG1fbWVkaWFLZXlTeXN0ZW1JRDsgfQorICAg
IFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBtYWluRnJhbWVJRCgpIGNvbnN0IHsgcmV0dXJuIG1f
bWFpbkZyYW1lSUQ7IH0KKyAgICBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCgpIGNv
bnN0IHsgcmV0dXJuIG1fZnJhbWVJRDsgfQorCisgICAgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4m
IHRvcExldmVsRG9jdW1lbnRTZWN1cml0eU9yaWdpbigpIHsgcmV0dXJuIG1fdG9wTGV2ZWxEb2N1
bWVudFNlY3VyaXR5T3JpZ2luLmdldCgpOyB9CisgICAgY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlP
cmlnaW4mIHRvcExldmVsRG9jdW1lbnRTZWN1cml0eU9yaWdpbigpIGNvbnN0IHsgcmV0dXJuIG1f
dG9wTGV2ZWxEb2N1bWVudFNlY3VyaXR5T3JpZ2luLmdldCgpOyB9CisKKyAgICBjb25zdCBTdHJp
bmcmIGtleVN5c3RlbSgpIGNvbnN0IHsgcmV0dXJuIG1fa2V5U3lzdGVtOyB9CisKKyAgICB2b2lk
IGRvRGVmYXVsdEFjdGlvbigpOworCitwcml2YXRlOgorICAgIE1lZGlhS2V5U3lzdGVtUGVybWlz
c2lvblJlcXVlc3RQcm94eShNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclBy
b3h5JiwgdWludDY0X3QgbWVkaWFLZXlTeXN0ZW1JRCwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVy
IG1haW5GcmFtZUlELCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIFJlZjxXZWJDb3JlOjpTZWN1
cml0eU9yaWdpbj4mJiB0b3BMZXZlbERvY3VtZW50T3JpZ2luLCBjb25zdCBTdHJpbmcmIGtleVN5
c3RlbSk7CisKKyAgICBXZWFrUHRyPE1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RNYW5h
Z2VyUHJveHk+IG1fbWFuYWdlcjsKKyAgICB1aW50NjRfdCBtX21lZGlhS2V5U3lzdGVtSUQ7Cisg
ICAgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIG1fbWFpbkZyYW1lSUQ7CisgICAgV2ViQ29yZTo6
RnJhbWVJZGVudGlmaWVyIG1fZnJhbWVJRDsKKyAgICBSZWY8V2ViQ29yZTo6U2VjdXJpdHlPcmln
aW4+IG1fdG9wTGV2ZWxEb2N1bWVudFNlY3VyaXR5T3JpZ2luOworICAgIFN0cmluZyBtX2tleVN5
c3RlbTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNl
LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1NwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVh
bHRpbWVNZWRpYVNvdXJjZS5jcHAKaW5kZXggYjlkOTMyMDk2MzlkZDNiZjhmMjc0ODM1MjRjZjQw
NmQ2M2VjNjBhZC4uNDM4NGQ0OWExN2M5ZWYwM2MzMGI4OWY3MjRiNWI1Mzk3MjE0ZDk3YyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25SZW1vdGVS
ZWFsdGltZU1lZGlhU291cmNlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TcGVl
Y2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UuY3BwCkBAIC0zMyw2ICszMyw4
IEBACiAKICNpZiBQTEFURk9STShDT0NPQSkKICNpbmNsdWRlICJTaGFyZWRSaW5nQnVmZmVyU3Rv
cmFnZS5oIgorI2luY2x1ZGUgPFdlYkNvcmUvQ0FSaW5nQnVmZmVyLmg+CisjaW5jbHVkZSA8V2Vi
Q29yZS9XZWJBdWRpb0J1ZmZlckxpc3QuaD4KICNlbmRpZgogCiBuYW1lc3BhY2UgV2ViS2l0IHsK
QEAgLTQ3LDcgKzQ5LDcgQEAgU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291
cmNlOjpTcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWEKICAgICAsIG1faWRlbnRp
ZmllcihpZGVudGlmaWVyKQogICAgICwgbV9tYW5hZ2VyKG1ha2VXZWFrUHRyKG1hbmFnZXIpKQog
I2lmIFBMQVRGT1JNKENPQ09BKQotICAgICwgbV9yaW5nQnVmZmVyKG1ha2VVbmlxdWU8Q0FSaW5n
QnVmZmVyPigpKQorICAgICwgbV9yaW5nQnVmZmVyKG1ha2VVbmlxdWU8V2ViQ29yZTo6Q0FSaW5n
QnVmZmVyPigpKQogI2VuZGlmCiB7CiAgICAgbV9tYW5hZ2VyLT5hZGRTb3VyY2UoKnRoaXMsIGNh
cHR1cmVEZXZpY2UpOwpAQCAtNzcsOCArNzksOCBAQCB2b2lkIFNwZWVjaFJlY29nbml0aW9uUmVt
b3RlUmVhbHRpbWVNZWRpYVNvdXJjZTo6c2V0U3RvcmFnZShjb25zdCBTaGFyZWRNZW1vcnk6Ogog
ewogICAgIG1fZGVzY3JpcHRpb24gPSBkZXNjcmlwdGlvbjsKIAotICAgIG1fcmluZ0J1ZmZlciA9
IG1ha2VVbmlxdWU8Q0FSaW5nQnVmZmVyPihtYWtlVW5pcXVlUmVmPFJlYWRPbmx5U2hhcmVkUmlu
Z0J1ZmZlclN0b3JhZ2U+KGhhbmRsZSksIGRlc2NyaXB0aW9uLCBudW1iZXJPZkZyYW1lcyk7Ci0g
ICAgbV9idWZmZXIgPSBtYWtlVW5pcXVlPFdlYkF1ZGlvQnVmZmVyTGlzdD4oZGVzY3JpcHRpb24s
IG51bWJlck9mRnJhbWVzKTsKKyAgICBtX3JpbmdCdWZmZXIgPSBtYWtlVW5pcXVlPFdlYkNvcmU6
OkNBUmluZ0J1ZmZlcj4obWFrZVVuaXF1ZVJlZjxSZWFkT25seVNoYXJlZFJpbmdCdWZmZXJTdG9y
YWdlPihoYW5kbGUpLCBkZXNjcmlwdGlvbiwgbnVtYmVyT2ZGcmFtZXMpOworICAgIG1fYnVmZmVy
ID0gbWFrZVVuaXF1ZTxXZWJDb3JlOjpXZWJBdWRpb0J1ZmZlckxpc3Q+KGRlc2NyaXB0aW9uLCBu
dW1iZXJPZkZyYW1lcyk7CiB9CiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvU3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlLmggYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVk
aWFTb3VyY2UuaAppbmRleCA4YjUxMjUwZjVjYWQ3ZjNmNWNlNzhmNThkNjc2MzcxOTBjZjhiZjkx
Li5hMWUyN2FkNWZkNzAzOGVkMmVkZWViMzJjMTViNTA5MTBkYWQ1MWUwIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVk
aWFTb3VyY2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TcGVlY2hSZWNvZ25pdGlv
blJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UuaApAQCAtMjcsNiArMjcsNyBAQAogCiAjaWYgRU5B
QkxFKE1FRElBX1NUUkVBTSkKIAorI2luY2x1ZGUgIlNoYXJlZE1lbW9yeS5oIgogI2luY2x1ZGUg
PFdlYkNvcmUvUmVhbHRpbWVNZWRpYVNvdXJjZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUmVhbHRp
bWVNZWRpYVNvdXJjZUlkZW50aWZpZXIuaD4KIApAQCAtNDMsNyArNDQsOCBAQCBjbGFzcyBXZWJB
dWRpb0J1ZmZlckxpc3Q7CiB9CiAKIG5hbWVzcGFjZSBXZWJLaXQgewotCitjbGFzcyBTcGVlY2hS
ZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyOworICAgIAogY2xhc3Mg
U3BlZWNoUmVjb2duaXRpb25SZW1vdGVSZWFsdGltZU1lZGlhU291cmNlIDogcHVibGljIFdlYkNv
cmU6OlJlYWx0aW1lTWVkaWFTb3VyY2UgewogcHVibGljOgogICAgIHN0YXRpYyBSZWY8V2ViQ29y
ZTo6UmVhbHRpbWVNZWRpYVNvdXJjZT4gY3JlYXRlKFNwZWVjaFJlY29nbml0aW9uUmVtb3RlUmVh
bHRpbWVNZWRpYVNvdXJjZU1hbmFnZXImLCBjb25zdCBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlJik7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAppbmRleCAxNzhiZjkwNmZi
MzM0MDJiZTZiYmY3M2Q0NDEzNGUzODE0YzQ2NTIzLi5mYTQxZWU3NmU1MGI1ZThkNGJhOWE0NDkz
YzVmN2NlZGUxMzcyZDcwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQ
YWdlUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5j
cHAKQEAgLTgyOTEsNiArODI5MSwyNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6Y2xlYXJVc2VyTWVk
aWFTdGF0ZSgpCiAjZW5kaWYKIH0KIAordm9pZCBXZWJQYWdlUHJveHk6OnJlcXVlc3RNZWRpYUtl
eVN5c3RlbVBlcm1pc3Npb25Gb3JGcmFtZSh1aW50NjRfdCBtZWRpYUtleVN5c3RlbUlELCBGcmFt
ZUlkZW50aWZpZXIgZnJhbWVJRCwgY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiB0
b3BMZXZlbERvY3VtZW50T3JpZ2luRGF0YSwgY29uc3QgU3RyaW5nJiBrZXlTeXN0ZW0pCit7Cisj
aWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKyAgICBNRVNTQUdFX0NIRUNLKG1fcHJvY2VzcywgbV9w
cm9jZXNzLT53ZWJGcmFtZShmcmFtZUlEKSk7CisKKyAgICBhdXRvIG9yaWdpbiA9IEFQSTo6U2Vj
dXJpdHlPcmlnaW46OmNyZWF0ZSh0b3BMZXZlbERvY3VtZW50T3JpZ2luRGF0YS5zZWN1cml0eU9y
aWdpbigpKTsKKyAgICBhdXRvIHJlcXVlc3QgPSBtZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1
ZXN0TWFuYWdlcigpLmNyZWF0ZVJlcXVlc3RGb3JGcmFtZShtZWRpYUtleVN5c3RlbUlELCBmcmFt
ZUlELCB0b3BMZXZlbERvY3VtZW50T3JpZ2luRGF0YS5zZWN1cml0eU9yaWdpbigpLCBrZXlTeXN0
ZW0pOworICAgIG1fdWlDbGllbnQtPmRlY2lkZVBvbGljeUZvck1lZGlhS2V5U3lzdGVtUGVybWlz
c2lvblJlcXVlc3QoKnRoaXMsIG9yaWdpbiwga2V5U3lzdGVtLCBbcmVxdWVzdCA9IFdURk1vdmUo
cmVxdWVzdCldKGJvb2wgYWxsb3dlZCkgeworICAgICAgICBpZiAoYWxsb3dlZCkKKyAgICAgICAg
ICAgIHJlcXVlc3QtPmFsbG93KCk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHJlcXVlc3Qt
PmRlbnkoKTsKKyAgICB9KTsKKyNlbHNlCisgICAgVU5VU0VEX1BBUkFNKG1lZGlhS2V5U3lzdGVt
SUQpOworICAgIFVOVVNFRF9QQVJBTShmcmFtZUlEKTsKKyAgICBVTlVTRURfUEFSQU0odG9wTGV2
ZWxEb2N1bWVudE9yaWdpbkRhdGEpOworICAgIFVOVVNFRF9QQVJBTShrZXlTeXN0ZW0pOworI2Vu
ZGlmCit9CisKICNpZiBFTkFCTEUoREVWSUNFX09SSUVOVEFUSU9OKQogdm9pZCBXZWJQYWdlUHJv
eHk6OnNob3VsZEFsbG93RGV2aWNlT3JpZW50YXRpb25BbmRNb3Rpb25BY2Nlc3MoRnJhbWVJZGVu
dGlmaWVyIGZyYW1lSUQsIEZyYW1lSW5mb0RhdGEmJiBmcmFtZUluZm8sIGJvb2wgbWF5UHJvbXB0
LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKERldmljZU9yaWVudGF0aW9uT3JNb3Rpb25QZXJtaXNz
aW9uU3RhdGUpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewpAQCAtODMwMSwxMyArODMyMiwyMyBA
QCB2b2lkIFdlYlBhZ2VQcm94eTo6c2hvdWxkQWxsb3dEZXZpY2VPcmllbnRhdGlvbkFuZE1vdGlv
bkFjY2VzcyhGcmFtZUlkZW50aWZpZXIgZgogfQogI2VuZGlmCiAKLSNpZiBFTkFCTEUoSU1BR0Vf
RVhUUkFDVElPTikKIAorI2lmIEVOQUJMRShJTUFHRV9FWFRSQUNUSU9OKQogdm9pZCBXZWJQYWdl
UHJveHk6OnJlcXVlc3RJbWFnZUV4dHJhY3Rpb24oY29uc3QgU2hhcmVhYmxlQml0bWFwOjpIYW5k
bGUmIGltYWdlRGF0YSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJDb3JlOjpJbWFnZUV4dHJh
Y3Rpb25SZXN1bHQmJik+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgcGFnZUNsaWVudCgp
LnJlcXVlc3RJbWFnZUV4dHJhY3Rpb24oaW1hZ2VEYXRhLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5k
bGVyKSk7CiB9CisjZW5kaWYKIAorI2lmIEVOQUJMRShFTkNSWVBURURfTUVESUEpCitNZWRpYUtl
eVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5JiBXZWJQYWdlUHJveHk6Om1lZGlh
S2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyKCkKK3sKKyAgICBpZiAobV9tZWRpYUtl
eVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcikKKyAgICAgICAgcmV0dXJuICptX21lZGlh
S2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyOworCisgICAgbV9tZWRpYUtleVN5c3Rl
bVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlciA9IG1ha2VVbmlxdWU8TWVkaWFLZXlTeXN0ZW1QZXJt
aXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eT4oKnRoaXMpOworICAgIHJldHVybiAqbV9tZWRpYUtl
eVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcjsKK30KICNlbmRpZgogCiB2b2lkIFdlYlBh
Z2VQcm94eTo6cmVxdWVzdE5vdGlmaWNhdGlvblBlcm1pc3Npb24odWludDY0X3QgcmVxdWVzdElE
LCBjb25zdCBTdHJpbmcmIG9yaWdpblN0cmluZykKQEAgLTEwNDM3LDYgKzEwNDY4LDExIEBAIHZv
aWQgV2ViUGFnZVByb3h5OjpyZXF1ZXN0VXNlck1lZGlhUGVybWlzc2lvbkZvclNwZWVjaFJlY29n
bml0aW9uKEZyYW1lSWRlbnRpZmllCiAjZW5kaWYKIH0KIAordm9pZCBXZWJQYWdlUHJveHk6OnJl
cXVlc3RNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25CeURlZmF1bHRBY3Rpb24oY29uc3QgV2ViQ29y
ZTo6U2VjdXJpdHlPcmlnaW4mIG9yaWdpbiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4m
JiBjb21wbGV0aW9uSGFuZGxlcikKK3sKKyAgICBjb21wbGV0aW9uSGFuZGxlcih0cnVlKTsKK30K
KwogI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCiAKIFdlYkNvcmU6OkNhcHR1cmVTb3VyY2VPckVy
cm9yIFdlYlBhZ2VQcm94eTo6Y3JlYXRlUmVhbHRpbWVNZWRpYVNvdXJjZUZvclNwZWVjaFJlY29n
bml0aW9uKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94
eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKaW5kZXggNGQ1ZmRi
ZmUzNDA0Yzg1MGZjYzFiODUyZWRiOTI5NDUyYjMzNmZiMS4uZjQ4ZWFkMzFiM2E2NTVmMDQ2MmRj
MGU1N2YwM2YzZWI2NWEwMjUzMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2ViUGFnZVByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5
LmgKQEAgLTQwLDYgKzQwLDcgQEAKICNpbmNsdWRlICJHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1
ZXN0TWFuYWdlclByb3h5LmgiCiAjaW5jbHVkZSAiSGlkZGVuUGFnZVRocm90dGxpbmdBdXRvSW5j
cmVhc2VzQ291bnRlci5oIgogI2luY2x1ZGUgIkxheWVyVHJlZUNvbnRleHQuaCIKKyNpbmNsdWRl
ICJNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmgiCiAjaW5jbHVk
ZSAiTWVkaWFQbGF5YmFja1N0YXRlLmgiCiAjaW5jbHVkZSAiTWVzc2FnZVNlbmRlci5oIgogI2lu
Y2x1ZGUgIk5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmgiCkBAIC03
Myw4ICs3NCw4IEBACiAjaW5jbHVkZSAiV2ViUGFnZVByb3h5SWRlbnRpZmllci5oIgogI2luY2x1
ZGUgIldlYlBhZ2VQcm94eU1lc3NhZ2VzUmVwbGllcy5oIgogI2luY2x1ZGUgIldlYlBheW1lbnRD
b29yZGluYXRvclByb3h5LmgiCi0jaW5jbHVkZSAiV2ViUHJlZmVyZW5jZXMuaCIKICNpbmNsdWRl
ICJXZWJQb3B1cE1lbnVQcm94eS5oIgorI2luY2x1ZGUgIldlYlByZWZlcmVuY2VzLmgiCiAjaW5j
bHVkZSAiV2ViVW5kb1N0ZXBJRC5oIgogI2luY2x1ZGUgIldlYnNpdGVQb2xpY2llc0RhdGEuaCIK
ICNpbmNsdWRlIDxXZWJDb3JlL0FjdGl2aXR5U3RhdGUuaD4KQEAgLTE4MjksNiArMTgzMCw4IEBA
IHB1YmxpYzoKICAgICB2b2lkIHJlcXVlc3RTcGVlY2hSZWNvZ25pdGlvblBlcm1pc3Npb25CeURl
ZmF1bHRBY3Rpb24oY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4mLCBDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKGJvb2wpPiYmKTsKICAgICB2b2lkIHJlcXVlc3RVc2VyTWVkaWFQZXJtaXNzaW9u
Rm9yU3BlZWNoUmVjb2duaXRpb24oV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBjb25zdCBXZWJD
b3JlOjpTZWN1cml0eU9yaWdpbiYsIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luJiwgQ29t
cGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJik7CiAKKyAgICB2b2lkIHJlcXVlc3RNZWRpYUtl
eVN5c3RlbVBlcm1pc3Npb25CeURlZmF1bHRBY3Rpb24oY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlP
cmlnaW4mLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmKTsKKwogICAgIHZvaWQgc3lu
Y0lmTW9ja0RldmljZXNFbmFibGVkQ2hhbmdlZCgpOwogCiAjaWYgRU5BQkxFKEFQUF9ISUdITElH
SFRTKQpAQCAtMjAwNSw2ICsyMDA4LDExIEBAIHByaXZhdGU6CiAgICAgdm9pZCBlbnVtZXJhdGVN
ZWRpYURldmljZXNGb3JGcmFtZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIGNvbnN0IFdlYkNv
cmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYgdXNlck1lZGlhRG9jdW1lbnRPcmlnaW5EYXRhLCBjb25z
dCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmIHRvcExldmVsRG9jdW1lbnRPcmlnaW5EYXRh
LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGNvbnN0IFZlY3RvcjxXZWJDb3JlOjpDYXB0dXJlRGV2
aWNlPiYsIGNvbnN0IFN0cmluZyYpPiYmKTsKICAgICB2b2lkIGJlZ2luTW9uaXRvcmluZ0NhcHR1
cmVEZXZpY2VzKCk7CiAKKyNpZiBFTkFCTEUoRU5DUllQVEVEX01FRElBKQorICAgIE1lZGlhS2V5
U3lzdGVtUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkmIG1lZGlhS2V5U3lzdGVtUGVybWlz
c2lvblJlcXVlc3RNYW5hZ2VyKCk7CisjZW5kaWYKKyAgICB2b2lkIHJlcXVlc3RNZWRpYUtleVN5
c3RlbVBlcm1pc3Npb25Gb3JGcmFtZSh1aW50NjRfdCBtZWRpYUtleVN5c3RlbUlELCBXZWJDb3Jl
OjpGcmFtZUlkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYgdG9w
TGV2ZWxEb2N1bWVudE9yaWdpbklkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYpOworCiAgICAgdm9p
ZCBydW5Nb2RhbCgpOwogICAgIHZvaWQgbm90aWZ5U2Nyb2xsZXJUaHVtYklzVmlzaWJsZUluUmVj
dChjb25zdCBXZWJDb3JlOjpJbnRSZWN0Jik7CiAgICAgdm9pZCByZWNvbW1lbmRlZFNjcm9sbGJh
clN0eWxlRGlkQ2hhbmdlKGludDMyX3QgbmV3U3R5bGUpOwpAQCAtMjUxNCw2ICsyNTIyLDEwIEBA
IHByaXZhdGU6CiAgICAgc3RkOjp1bmlxdWVfcHRyPFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0
TWFuYWdlclByb3h5PiBtX3VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcjsKICNlbmRp
ZgogCisjaWYgRU5BQkxFKEVOQ1JZUFRFRF9NRURJQSkKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8TWVk
aWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eT4gbV9tZWRpYUtleVN5c3Rl
bVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcjsKKyNlbmRpZgorCiAgICAgT3B0aW9uU2V0PFdlYkNv
cmU6OkFjdGl2aXR5U3RhdGU6OkZsYWc+IG1fYWN0aXZpdHlTdGF0ZTsKICAgICBib29sIG1fdmll
d1dhc0V2ZXJJbldpbmRvdyB7IGZhbHNlIH07CiAjaWYgUExBVEZPUk0oTUFDQ0FUQUxZU1QpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMu
aW4gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4KaW5k
ZXggMjU4Nzg3OGQwMjI4MDVhMmRjNTRmMzYxZjc4ZWE1MGY4YTMxNTJlOS4uZGRhNTNlMzE0NzU3
NzE1MmI4Mzc2YzU3OWY5ZjYzYmQ2N2U3MjkxZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbgpAQCAtMjg0LDYgKzI4NCwxMCBAQCBtZXNz
YWdlcyAtPiBXZWJQYWdlUHJveHkgewogICAgIEJlZ2luTW9uaXRvcmluZ0NhcHR1cmVEZXZpY2Vz
KCkKICNlbmRpZgogCisjaWYgRU5BQkxFKEVOQ1JZUFRFRF9NRURJQSkKKyAgICBSZXF1ZXN0TWVk
aWFLZXlTeXN0ZW1QZXJtaXNzaW9uRm9yRnJhbWUodWludDY0X3QgdXNlck1lZGlhSUQsIFdlYkNv
cmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBzdHJ1Y3QgV2ViQ29yZTo6U2VjdXJpdHlPcmln
aW5EYXRhIHRvcExldmVsRG9jdW1lbnRPcmlnaW5JZGVudGlmaWVyLCBTdHJpbmcga2V5U3lzdGVt
KQorI2VuZGlmCisKICAgICAjIE5vdGlmaWNhdGlvbiBtZXNzYWdlcwogICAgIFJlcXVlc3ROb3Rp
ZmljYXRpb25QZXJtaXNzaW9uKHVpbnQ2NF90IHJlcXVlc3RJRCwgU3RyaW5nIG9yaWdpbklkZW50
aWZpZXIpCiAgICAgU2hvd05vdGlmaWNhdGlvbihTdHJpbmcgdGl0bGUsIFN0cmluZyBib2R5LCBT
dHJpbmcgaWNvblVSTCwgU3RyaW5nIHRhZywgU3RyaW5nIGxhbmcsIGVudW06dWludDhfdCBXZWJD
b3JlOjpOb3RpZmljYXRpb25EaXJlY3Rpb24gZGlyLCBTdHJpbmcgb3JpZ2luSWRlbnRpZmllciwg
dWludDY0X3Qgbm90aWZpY2F0aW9uSUQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYktp
dC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA3ZTAwNzJjM2I2ODA4NGQ2YmMyNjI2YjkwNWQzMDJk
NzAwZWZlMjE5Li5mMGRiY2I0YzAxODFiZmYxYjM5ODI2ZTU0YjAyNzE0YmNjNmIyMTdlIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisr
KyBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTE1
MjAsNiArMTUyMCwxMiBAQAogCQk5OUU3MTRDNTFDMTI0QTA0MDA2NjVCM0EgLyogX1dLQXV0b21h
dGlvbkRlbGVnYXRlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA5OUU3MTRDMTFDMTI0OUU2MDA2NjVCM0EgLyogX1dLQXV0b21hdGlvbkRlbGVnYXRlLmgg
Ki87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJOTlFNzE4
OUEyMUY3OUQ5RTAwNTVFOTc1IC8qIF9XS1RvdWNoRXZlbnRHZW5lcmF0b3IubW0gaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5OUU3MTg5NjIxRjc5RDlEMDA1
NUU5NzUgLyogX1dLVG91Y2hFdmVudEdlbmVyYXRvci5tbSAqLzsgfTsKIAkJOTlFNzE4OUMyMUY3
OUQ5RTAwNTVFOTc1IC8qIF9XS1RvdWNoRXZlbnRHZW5lcmF0b3IuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk5RTcxODk4MjFGNzlEOUUwMDU1RTk3NSAv
KiBfV0tUb3VjaEV2ZW50R2VuZXJhdG9yLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAo
UHJpdmF0ZSwgKTsgfTsgfTsKKwkJOUFDQzA3QUQyNUM4MTMyRDAwREM2Mzg2IC8qIE1lZGlhS2V5
U3lzdGVtUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5QUNDMDdBQzI1QzgxMzJEMDBEQzYzODYgLyogTWVkaWFL
ZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIuaCAqLzsgfTsKKwkJOUFDQzA3QjEyNUM4
MTVEODAwREM2Mzg2IC8qIE1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3QuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDlBQ0MwN0IwMjVDODE1RDgw
MERDNjM4NiAvKiBNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0LmggKi87IH07CisJCTlB
Q0MwN0IzMjVDODE1RjMwMERDNjM4NiAvKiBNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0
TWFuYWdlclByb3h5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA5QUNDMDdCMjI1QzgxNUYzMDBEQzYzODYgLyogTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9u
UmVxdWVzdE1hbmFnZXJQcm94eS5oICovOyB9OworCQk5QUNDMDdCNTI1QzgxNjBDMDBEQzYzODYg
LyogTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdFByb3h5LmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5QUNDMDdCNDI1QzgxNjBCMDBEQzYzODYg
LyogTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdFByb3h5LmggKi87IH07CisJCTlBQ0Mw
N0I3MjVDODFEMzQwMERDNjM4NiAvKiBXZWJNZWRpYUtleVN5c3RlbUNsaWVudC5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOUFDQzA3QjYyNUM4MUQzMzAw
REM2Mzg2IC8qIFdlYk1lZGlhS2V5U3lzdGVtQ2xpZW50LmggKi87IH07CisJCTlBQ0MwN0I5MjVD
ODIxODQwMERDNjM4NiAvKiBXS01lZGlhS2V5U3lzdGVtUGVybWlzc2lvbkNhbGxiYWNrLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5QUNDMDdCODI1Qzgy
MTgzMDBEQzYzODYgLyogV0tNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25DYWxsYmFjay5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTlCMDJFMENCMjM1
RUI5NTMwMDQwNDRCMiAvKiBfV0tUZXh0TWFuaXB1bGF0aW9uRGVsZWdhdGUuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDlCMDJFMEM5MjM1RUI2MkQwMDQw
NDRCMiAvKiBfV0tUZXh0TWFuaXB1bGF0aW9uRGVsZWdhdGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRU
UklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk5QjAyRTBDQzIzNUVCOTU3MDA0MDQ0QjIg
LyogX1dLVGV4dE1hbmlwdWxhdGlvbkl0ZW0uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDlCMDJFMENBMjM1RUI4ODQwMDQwNDRCMiAvKiBfV0tUZXh0TWFu
aXB1bGF0aW9uSXRlbS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CiAJCTlCMDJFMEQ3MjM1RkM5NEYwMDQwNDRCMiAvKiBfV0tUZXh0TWFuaXB1bGF0aW9u
VG9rZW4uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDlC
MDJFMENEMjM1RUI5NjcwMDQwNDRCMiAvKiBfV0tUZXh0TWFuaXB1bGF0aW9uVG9rZW4uaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtNDg2OSw2ICs0
ODc1LDEyIEBACiAJCTk5RTcxODk2MjFGNzlEOUQwMDU1RTk3NSAvKiBfV0tUb3VjaEV2ZW50R2Vu
ZXJhdG9yLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gX1dLVG91
Y2hFdmVudEdlbmVyYXRvci5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTlFNzE4
OTgyMUY3OUQ5RTAwNTVFOTc1IC8qIF9XS1RvdWNoRXZlbnRHZW5lcmF0b3IuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gX1dLVG91Y2hFdmVudEdlbmVyYXRvci5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk5OUY2NDJEMjFGQUJFMzc4MDA5NjIxRTkgLyogQ29vcmRp
bmF0ZVN5c3RlbS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDb29yZGluYXRl
U3lzdGVtLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTlBQ0MwN0FDMjVDODEzMkQw
MERDNjM4NiAvKiBNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlci5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1
ZXN0TWFuYWdlci5oOyBwYXRoID0gRW5jcnlwdGVkTWVkaWEvTWVkaWFLZXlTeXN0ZW1QZXJtaXNz
aW9uUmVxdWVzdE1hbmFnZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOUFDQzA3
QjAyNUM4MTVEODAwREM2Mzg2IC8qIE1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3QuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9u
UmVxdWVzdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5QUNDMDdCMjI1QzgxNUYz
MDBEQzYzODYgLyogTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBNZWRpYUtleVN5c3RlbVBlcm1pc3Np
b25SZXF1ZXN0TWFuYWdlclByb3h5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTlB
Q0MwN0I0MjVDODE2MEIwMERDNjM4NiAvKiBNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0
UHJveHkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTWVkaWFLZXlTeXN0ZW1Q
ZXJtaXNzaW9uUmVxdWVzdFByb3h5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTlB
Q0MwN0I2MjVDODFEMzMwMERDNjM4NiAvKiBXZWJNZWRpYUtleVN5c3RlbUNsaWVudC5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJNZWRpYUtleVN5c3RlbUNsaWVudC5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5QUNDMDdCODI1QzgyMTgzMDBEQzYzODYgLyog
V0tNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25DYWxsYmFjay5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBXS01lZGlhS2V5U3lzdGVtUGVybWlzc2lvbkNhbGxiYWNrLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTlCMDJFMEM5MjM1RUI2MkQwMDQwNDRCMiAvKiBfV0tU
ZXh0TWFuaXB1bGF0aW9uRGVsZWdhdGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gX1dLVGV4dE1hbmlwdWxh
dGlvbkRlbGVnYXRlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTlCMDJFMENBMjM1
RUI4ODQwMDQwNDRCMiAvKiBfV0tUZXh0TWFuaXB1bGF0aW9uSXRlbS5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBfV0tUZXh0TWFuaXB1bGF0aW9uSXRlbS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk5QjAyRTBDRDIzNUVCOTY3MDA0MDQ0QjIgLyogX1dLVGV4dE1hbmlwdWxhdGlvblRva2VuLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IF9XS1RleHRNYW5pcHVsYXRpb25Ub2tlbi5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwpAQCAtOTM0Miw2ICs5MzU0LDE0IEBACiAJCQlwYXRoID0gY29jb2E7CiAJ
CQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwogCQl9OworCQk5QUNDMDdBOTI1QzgxMkU3MDBEQzYz
ODYgLyogRW5jcnlwdGVkTWVkaWEgKi8gPSB7CisJCQlpc2EgPSBQQlhHcm91cDsKKwkJCWNoaWxk
cmVuID0gKAorCQkJCTlBQ0MwN0FDMjVDODEzMkQwMERDNjM4NiAvKiBNZWRpYUtleVN5c3RlbVBl
cm1pc3Npb25SZXF1ZXN0TWFuYWdlci5oICovLAorCQkJKTsKKwkJCW5hbWUgPSBFbmNyeXB0ZWRN
ZWRpYTsKKwkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CisJCX07CiAJCUExNTc5OUFDMjU4NDQz
MzEwMDUyODIzNiAvKiBNZWRpYUZvcm1hdFJlYWRlciAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3Vw
OwogCQkJY2hpbGRyZW4gPSAoCkBAIC05NDU4LDYgKzk0NzgsNyBAQAogCQkJCTQxRDEyOUQ4MUYz
RDEwMTQwMEQxNUU0NyAvKiBDYWNoZSAqLywKIAkJCQk3QzZFNzBGODE4QjJENDdFMDBGMjRFMkUg
LyogY29jb2EgKi8sCiAJCQkJNTEyQTk3NTQxODBERjkyNzAwMzlBMTQ5IC8qIERhdGFiYXNlcyAq
LywKKwkJCQk5QUNDMDdBOTI1QzgxMkU3MDBEQzYzODYgLyogRW5jcnlwdGVkTWVkaWEgKi8sCiAJ
CQkJQkNBQ0M0M0IxNkIyNEM1RDAwQjZFMDkyIC8qIEVudHJ5UG9pbnQgKi8sCiAJCQkJRTE3MDg3
NkQxNkQ2Q0E3MjAwRjk5MjI2IC8qIEZpbGVBUEkgKi8sCiAJCQkJQ0Q3M0JBM0QxMzFBMkEyMTAw
RUVERUQyIC8qIEZ1bGxTY3JlZW4gKi8sCkBAIC05NTIzLDYgKzk1NDQsNyBAQAogCQkJCUJDMDMy
RDZBMTBGNDM3OEQwMDU4QzE1QSAvKiBXZWJGcmFtZUxvYWRlckNsaWVudC5oICovLAogCQkJCUJD
MUJFMURGMTJENTRBNDEwMDA0QTIyOCAvKiBXZWJHZW9sb2NhdGlvbkNsaWVudC5jcHAgKi8sCiAJ
CQkJQkMxQkUxREUxMkQ1NEE0MTAwMDRBMjI4IC8qIFdlYkdlb2xvY2F0aW9uQ2xpZW50LmggKi8s
CisJCQkJOUFDQzA3QjYyNUM4MUQzMzAwREM2Mzg2IC8qIFdlYk1lZGlhS2V5U3lzdGVtQ2xpZW50
LmggKi8sCiAJCQkJNTEzRkZCOEUyMDE0NTlDMjAwMjU5NkVBIC8qIFdlYk1lc3NhZ2VQb3J0Q2hh
bm5lbFByb3ZpZGVyLmNwcCAqLywKIAkJCQk1MTNGRkI4RjIwMTQ1OUMyMDAyNTk2RUEgLyogV2Vi
TWVzc2FnZVBvcnRDaGFubmVsUHJvdmlkZXIuaCAqLywKIAkJCQkzMTA5OTk3MTE0NkM3NTlCMDAy
OURFQjkgLyogV2ViTm90aWZpY2F0aW9uQ2xpZW50LmNwcCAqLywKQEAgLTk2NjIsNiArOTY4NCw5
IEBACiAJCQkJNUNFQUJBMkIyMzMzMjUxNDAwNzk3Nzk3IC8qIExlZ2FjeUdsb2JhbFNldHRpbmdz
LmNwcCAqLywKIAkJCQk1Q0VBQkEyQTIzMzMyNDc3MDA3OTc3OTcgLyogTGVnYWN5R2xvYmFsU2V0
dGluZ3MuaCAqLywKIAkJCQkzMTYwN0YzODE5NjI3MDAyMDA5Qjg3REEgLyogTGVnYWN5U2Vzc2lv
blN0YXRlQ29kaW5nLmggKi8sCisJCQkJOUFDQzA3QjAyNUM4MTVEODAwREM2Mzg2IC8qIE1lZGlh
S2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3QuaCAqLywKKwkJCQk5QUNDMDdCMjI1QzgxNUYzMDBE
QzYzODYgLyogTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5oICov
LAorCQkJCTlBQ0MwN0I0MjVDODE2MEIwMERDNjM4NiAvKiBNZWRpYUtleVN5c3RlbVBlcm1pc3Np
b25SZXF1ZXN0UHJveHkuaCAqLywKIAkJCQk5MzQyNTg5ODI1NUI1MzRCMDA1OUVFREQgLyogTWVk
aWFQZXJtaXNzaW9uVXRpbGl0aWVzLmggKi8sCiAJCQkJQkM2RURBQTUxMTEyNzFDNjAwRTc2NzhC
IC8qIFBhZ2VDbGllbnQuaCAqLywKIAkJCQkxQUM3NTM3OTE4M0E5RkRBMDA3MkNCMTUgLyogUGFn
ZUxvYWRTdGF0ZS5jcHAgKi8sCkBAIC05OTc0LDYgKzk5OTksNyBAQAogCQkJCTUxQTlFMTA4MTMx
NUNEMTgwMDlFNzAzMSAvKiBXS0tleVZhbHVlU3RvcmFnZU1hbmFnZXIuY3BwICovLAogCQkJCTUx
QTlFMTA5MTMxNUNEMTgwMDlFNzAzMSAvKiBXS0tleVZhbHVlU3RvcmFnZU1hbmFnZXIuaCAqLywK
IAkJCQkyRDc5MEE5RTFBRDcxNjQ5MDBBQjkwQjMgLyogV0tMYXlvdXRNb2RlLmggKi8sCisJCQkJ
OUFDQzA3QjgyNUM4MjE4MzAwREM2Mzg2IC8qIFdLTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uQ2Fs
bGJhY2suaCAqLywKIAkJCQk1Q0FCREM4NDIyQzQwRkNDMDAxRURFOEUgLyogV0tNZXNzYWdlTGlz
dGVuZXIuY3BwICovLAogCQkJCTVDQUJEQzg1MjJDNDBGQ0MwMDFFREU4RSAvKiBXS01lc3NhZ2VM
aXN0ZW5lci5oICovLAogCQkJCUMxMUUxNjkzMjEyQjg3QzUwMDk4NUZGNiAvKiBXS01vY2tEaXNw
bGF5LmNwcCAqLywKQEAgLTExNjk2LDYgKzExNzIyLDEwIEBACiAJCQkJQkNDNTZGNzkxMTU5OTU3
RDAwMUNDQUY5IC8qIE1hY2hQb3J0LmggaW4gSGVhZGVycyAqLywKIAkJCQkxQTI0QjVGMzExRjUz
MUU4MDBDMzgyNjkgLyogTWFjaFV0aWxpdGllcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTE1Nzk5
QkUyNTg0NDMzMjAwNTI4MjM2IC8qIE1lZGlhRm9ybWF0UmVhZGVyLmggaW4gSGVhZGVycyAqLywK
KwkJCQk5QUNDMDdCMTI1QzgxNUQ4MDBEQzYzODYgLyogTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9u
UmVxdWVzdC5oIGluIEhlYWRlcnMgKi8sCisJCQkJOUFDQzA3QUQyNUM4MTMyRDAwREM2Mzg2IC8q
IE1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyLmggaW4gSGVhZGVycyAqLywK
KwkJCQk5QUNDMDdCMzI1QzgxNUYzMDBEQzYzODYgLyogTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9u
UmVxdWVzdE1hbmFnZXJQcm94eS5oIGluIEhlYWRlcnMgKi8sCisJCQkJOUFDQzA3QjUyNUM4MTYw
QzAwREM2Mzg2IC8qIE1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RQcm94eS5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJOTM0MjU4OUEyNTVCNTM1QTAwNTlFRUREIC8qIE1lZGlhUGVybWlzc2lv
blV0aWxpdGllcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMDdFMTlFRkMyM0Q0MDFGMTAwOTRGRkI0
IC8qIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZU1lc3NhZ2VzLmggaW4gSGVhZGVycyAqLywKIAkJ
CQkwN0UxOUVGRDIzRDQwMUYxMDA5NEZGQjQgLyogTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlTWVz
c2FnZXNSZXBsaWVzLmggaW4gSGVhZGVycyAqLywKQEAgLTEyMTM3LDYgKzEyMTY3LDcgQEAKIAkJ
CQlCQzlCQTUwNTE2OTdDNDUzMDBFNDQ2MTYgLyogV2ViS2l0MkluaXRpYWxpemUuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTFBNjI4MEM3MTkxOTk1MEMwMDZBRDlGOSAvKiBXZWJLaXRQcml2YXRlLmgg
aW4gSGVhZGVycyAqLywKIAkJCQlDRDAwM0E1MzE5RDQ5QjVEMDA1QUJDRTAgLyogV2ViTWVkaWFL
ZXlTdG9yYWdlTWFuYWdlci5oIGluIEhlYWRlcnMgKi8sCisJCQkJOUFDQzA3QjcyNUM4MUQzNDAw
REM2Mzg2IC8qIFdlYk1lZGlhS2V5U3lzdGVtQ2xpZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQk5
QjVCRUMyNjI0MDBGNEE5MDA3MEM2RUYgLyogV2ViTWVkaWFTdHJhdGVneS5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJMkQzRUY0NDMxOTE3NjQ2MzAwMDM0MTg0IC8qIFdlYk1lbW9yeVByZXNzdXJlSGFu
ZGxlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTA5ODU0RUQxMkJDNEUxODAwMEFEMDgwIC8qIFdl
Yk1lbW9yeVNhbXBsZXIuaCBpbiBIZWFkZXJzICovLApAQCAtMTI0NDUsNiArMTI0NzYsNyBAQAog
CQkJCTJENzkwQTlGMUFENzE2NDkwMEFCOTBCMyAvKiBXS0xheW91dE1vZGUuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTVDRTkxMjE0MjI5M0MyODAwMDVCRUM3OCAvKiBXS01haW4uaCBpbiBIZWFkZXJz
ICovLAogCQkJCUExNTc5QjI4MjU4NDkwRTUwMDUyODIzNiAvKiBXS01lZGlhRm9ybWF0UmVhZGVy
LmggaW4gSGVhZGVycyAqLywKKwkJCQk5QUNDMDdCOTI1QzgyMTg0MDBEQzYzODYgLyogV0tNZWRp
YUtleVN5c3RlbVBlcm1pc3Npb25DYWxsYmFjay5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDk5MTdE
QTcyNTJENjQ5RTAwNTAzMTNGIC8qIFdLTWVkaWFQbGF5YmFja1N0YXRlLmggaW4gSGVhZGVycyAq
LywKIAkJCQkxQUI0MEVFNjFCRjY3N0UzMDBCQTgxQkUgLyogV0tNZW51SXRlbUlkZW50aWZpZXJz
UHJpdmF0ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNUNBQkRDODYyMkM0MEZERTAwMUVERThFIC8q
IFdLTWVzc2FnZUxpc3RlbmVyLmggaW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9FbmNyeXB0ZWRNZWRpYS9NZWRpYUtleVN5c3RlbVBlcm1pc3Npb25S
ZXF1ZXN0TWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvRW5jcnlwdGVkTWVk
aWEvTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIuY3BwCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LmEyNDk4ODJkMDdhOTllNzVkMDkxYmZiNzJhZWVjODMxNjQ4NTc3MzgKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvRW5jcnlwdGVkTWVkaWEvTWVkaWFLZXlTeXN0
ZW1QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIuY3BwCkBAIC0wLDAgKzEsMTMyIEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDIxIElnYWxpYSBTLkwuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMg
SVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRP
UlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MK
KyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgor
ICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25m
aWcuaCIKKyNpbmNsdWRlICJNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlci5o
IgorCisjaWYgRU5BQkxFKEVOQ1JZUFRFRF9NRURJQSkKKworI2luY2x1ZGUgIkxvZ2dpbmcuaCIK
KyNpbmNsdWRlICJXZWJDb3JlQXJndW1lbnRDb2RlcnMuaCIKKyNpbmNsdWRlICJXZWJGcmFtZS5o
IgorI2luY2x1ZGUgIldlYlBhZ2UuaCIKKyNpbmNsdWRlICJXZWJQYWdlUHJveHlNZXNzYWdlcy5o
IgorI2luY2x1ZGUgPFdlYkNvcmUvRG9jdW1lbnQuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0ZyYW1l
Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9GcmFtZUxvYWRlci5oPgorI2luY2x1ZGUgPFdlYkNvcmUv
U2VjdXJpdHlPcmlnaW4uaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1NlY3VyaXR5T3JpZ2luRGF0YS5o
PgorCituYW1lc3BhY2UgV2ViS2l0IHsKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOworCitNZWRp
YUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcjo6TWVkaWFLZXlTeXN0ZW1QZXJtaXNz
aW9uUmVxdWVzdE1hbmFnZXIoV2ViUGFnZSYgcGFnZSkKKyAgICA6IG1fcGFnZShwYWdlKQorewor
fQorCit2b2lkIE1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyOjpzdGFydE1l
ZGlhS2V5U3lzdGVtUmVxdWVzdChNZWRpYUtleVN5c3RlbVJlcXVlc3QmIHJlcXVlc3QpCit7Cisg
ICAgRG9jdW1lbnQqIGRvY3VtZW50ID0gcmVxdWVzdC5kb2N1bWVudCgpOworICAgIEZyYW1lKiBm
cmFtZSA9IGRvY3VtZW50ID8gZG9jdW1lbnQtPmZyYW1lKCkgOiBudWxscHRyOworCisgICAgaWYg
KCFmcmFtZSB8fCAhZG9jdW1lbnQtPnBhZ2UoKSkgeworICAgICAgICByZXF1ZXN0LmRlbnkoZW1w
dHlTdHJpbmcoKSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBpZiAoZG9jdW1lbnQt
PnBhZ2UoKS0+Y2FuU3RhcnRNZWRpYSgpKSB7CisgICAgICAgIHNlbmRNZWRpYUtleVN5c3RlbVJl
cXVlc3QocmVxdWVzdCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBhdXRvJiBwZW5k
aW5nUmVxdWVzdHMgPSBtX3BlbmRpbmdNZWRpYUtleVN5c3RlbVJlcXVlc3RzLmFkZChkb2N1bWVu
dCwgVmVjdG9yPFJlZjxNZWRpYUtleVN5c3RlbVJlcXVlc3Q+PigpKS5pdGVyYXRvci0+dmFsdWU7
CisgICAgcGVuZGluZ1JlcXVlc3RzLmFwcGVuZChyZXF1ZXN0KTsKK30KKwordm9pZCBNZWRpYUtl
eVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcjo6c2VuZE1lZGlhS2V5U3lzdGVtUmVxdWVz
dChNZWRpYUtleVN5c3RlbVJlcXVlc3QmIHVzZXJSZXF1ZXN0KQoreworICAgIGF1dG8qIGZyYW1l
ID0gdXNlclJlcXVlc3QuZG9jdW1lbnQoKSA/IHVzZXJSZXF1ZXN0LmRvY3VtZW50KCktPmZyYW1l
KCkgOiBudWxscHRyOworICAgIGlmICghZnJhbWUpIHsKKyAgICAgICAgdXNlclJlcXVlc3QuZGVu
eShlbXB0eVN0cmluZygpKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIG1fb25nb2lu
Z01lZGlhS2V5U3lzdGVtUmVxdWVzdHMuYWRkKHVzZXJSZXF1ZXN0LmlkZW50aWZpZXIoKSwgbWFr
ZVJlZih1c2VyUmVxdWVzdCkpOworCisgICAgV2ViRnJhbWUqIHdlYkZyYW1lID0gV2ViRnJhbWU6
OmZyb21Db3JlRnJhbWUoKmZyYW1lKTsKKyAgICBBU1NFUlQod2ViRnJhbWUpOworCisgICAgYXV0
byogdG9wTGV2ZWxEb2N1bWVudE9yaWdpbiA9IHVzZXJSZXF1ZXN0LnRvcExldmVsRG9jdW1lbnRP
cmlnaW4oKTsKKyAgICBtX3BhZ2Uuc2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpSZXF1ZXN0
TWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uRm9yRnJhbWUodXNlclJlcXVlc3QuaWRlbnRpZmllcigp
LnRvVUludDY0KCksIHdlYkZyYW1lLT5mcmFtZUlEKCksIHRvcExldmVsRG9jdW1lbnRPcmlnaW4t
PmRhdGEoKSwgdXNlclJlcXVlc3Qua2V5U3lzdGVtKCkpKTsKK30KKwordm9pZCBNZWRpYUtleVN5
c3RlbVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcjo6Y2FuY2VsTWVkaWFLZXlTeXN0ZW1SZXF1ZXN0
KE1lZGlhS2V5U3lzdGVtUmVxdWVzdCYgcmVxdWVzdCkKK3sKKyAgICBpZiAoYXV0byByZW1vdmVk
UmVxdWVzdCA9IG1fb25nb2luZ01lZGlhS2V5U3lzdGVtUmVxdWVzdHMudGFrZShyZXF1ZXN0Lmlk
ZW50aWZpZXIoKSkpCisgICAgICAgIHJldHVybjsKKworICAgIGF1dG8qIGRvY3VtZW50ID0gcmVx
dWVzdC5kb2N1bWVudCgpOworICAgIGlmICghZG9jdW1lbnQpCisgICAgICAgIHJldHVybjsKKwor
ICAgIGF1dG8gaXRlcmF0b3IgPSBtX3BlbmRpbmdNZWRpYUtleVN5c3RlbVJlcXVlc3RzLmZpbmQo
ZG9jdW1lbnQpOworICAgIGlmIChpdGVyYXRvciA9PSBtX3BlbmRpbmdNZWRpYUtleVN5c3RlbVJl
cXVlc3RzLmVuZCgpKQorICAgICAgICByZXR1cm47CisKKyAgICBhdXRvJiBwZW5kaW5nUmVxdWVz
dHMgPSBpdGVyYXRvci0+dmFsdWU7CisgICAgcGVuZGluZ1JlcXVlc3RzLnJlbW92ZUZpcnN0TWF0
Y2hpbmcoWyZyZXF1ZXN0XShhdXRvJiBpdGVtKSB7CisgICAgICAgIHJldHVybiAmcmVxdWVzdCA9
PSBpdGVtLnB0cigpOworICAgIH0pOworCisgICAgaWYgKCFwZW5kaW5nUmVxdWVzdHMuaXNFbXB0
eSgpKQorICAgICAgICByZXR1cm47CisKKyAgICBtX3BlbmRpbmdNZWRpYUtleVN5c3RlbVJlcXVl
c3RzLnJlbW92ZShpdGVyYXRvcik7Cit9CisKK3ZvaWQgTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9u
UmVxdWVzdE1hbmFnZXI6Om1lZGlhS2V5U3lzdGVtV2FzR3JhbnRlZCh1aW50NjRfdCByZXF1ZXN0
SUQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3sKKyAg
ICBhdXRvIHJlcXVlc3QgPSBtX29uZ29pbmdNZWRpYUtleVN5c3RlbVJlcXVlc3RzLnRha2UobWFr
ZU9iamVjdElkZW50aWZpZXI8TWVkaWFLZXlTeXN0ZW1SZXF1ZXN0SWRlbnRpZmllclR5cGU+KHJl
cXVlc3RJRCkpOworICAgIGlmICghcmVxdWVzdCkgeworICAgICAgICBjb21wbGV0aW9uSGFuZGxl
cigpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgcmVxdWVzdC0+YWxsb3coV1RGTW92
ZShjb21wbGV0aW9uSGFuZGxlcikpOworfQorCit2b2lkIE1lZGlhS2V5U3lzdGVtUGVybWlzc2lv
blJlcXVlc3RNYW5hZ2VyOjptZWRpYUtleVN5c3RlbVdhc0RlbmllZCh1aW50NjRfdCByZXF1ZXN0
SUQsIFN0cmluZyYmIG1lc3NhZ2UpCit7CisgICAgYXV0byByZXF1ZXN0ID0gbV9vbmdvaW5nTWVk
aWFLZXlTeXN0ZW1SZXF1ZXN0cy50YWtlKG1ha2VPYmplY3RJZGVudGlmaWVyPE1lZGlhS2V5U3lz
dGVtUmVxdWVzdElkZW50aWZpZXJUeXBlPihyZXF1ZXN0SUQpKTsKKyAgICBpZiAoIXJlcXVlc3Qp
CisgICAgICAgIHJldHVybjsKKworICAgIHJlcXVlc3QtPmRlbnkoV1RGTW92ZShtZXNzYWdlKSk7
Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gRU5BQkxFKEVOQ1JZUFRF
RF9NRURJQSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9FbmNyeXB0ZWRN
ZWRpYS9NZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlci5oIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL0VuY3J5cHRlZE1lZGlhL01lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJl
cXVlc3RNYW5hZ2VyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODY5NTVmYjlkZWQ3MTE2MWNhZGY0YTIzNjkwMmIy
YzU0MjI1NjlhNgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9F
bmNyeXB0ZWRNZWRpYS9NZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlci5oCkBA
IC0wLDAgKzEsNjMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgSWdhbGlhIFMuTC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoRU5DUllQVEVEX01FRElBKQorCisj
aW5jbHVkZSAiU2FuZGJveEV4dGVuc2lvbi5oIgorI2luY2x1ZGUgPFdlYkNvcmUvTWVkaWFLZXlT
eXN0ZW1DbGllbnQuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL01lZGlhS2V5U3lzdGVtUmVxdWVzdC5o
PgorI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CisjaW5jbHVkZSA8d3RmL1JlZi5oPgorI2luY2x1
ZGUgPHd0Zi9SZWZQdHIuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIFdlYlBhZ2U7
CisKK2NsYXNzIE1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyIHsKKyAgICBX
VEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKK3B1YmxpYzoKKyAgICBleHBsaWNpdCBNZWRpYUtleVN5
c3RlbVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcihXZWJQYWdlJik7CisgICAgfk1lZGlhS2V5U3lz
dGVtUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyKCkgPSBkZWZhdWx0OworCisgICAgdm9pZCBzdGFy
dE1lZGlhS2V5U3lzdGVtUmVxdWVzdChXZWJDb3JlOjpNZWRpYUtleVN5c3RlbVJlcXVlc3QmKTsK
KyAgICB2b2lkIGNhbmNlbE1lZGlhS2V5U3lzdGVtUmVxdWVzdChXZWJDb3JlOjpNZWRpYUtleVN5
c3RlbVJlcXVlc3QmKTsKKyAgICB2b2lkIG1lZGlhS2V5U3lzdGVtV2FzR3JhbnRlZCh1aW50NjRf
dCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKKyAgICB2b2lkIG1lZGlhS2V5U3lzdGVt
V2FzRGVuaWVkKHVpbnQ2NF90LCBTdHJpbmcmJik7CisKK3ByaXZhdGU6CisgICAgdm9pZCBzZW5k
TWVkaWFLZXlTeXN0ZW1SZXF1ZXN0KFdlYkNvcmU6Ok1lZGlhS2V5U3lzdGVtUmVxdWVzdCYpOwor
CisgICAgV2ViUGFnZSYgbV9wYWdlOworCisgICAgSGFzaE1hcDxXZWJDb3JlOjpNZWRpYUtleVN5
c3RlbVJlcXVlc3RJZGVudGlmaWVyLCBSZWY8V2ViQ29yZTo6TWVkaWFLZXlTeXN0ZW1SZXF1ZXN0
Pj4gbV9vbmdvaW5nTWVkaWFLZXlTeXN0ZW1SZXF1ZXN0czsKKyAgICBIYXNoTWFwPFJlZlB0cjxX
ZWJDb3JlOjpEb2N1bWVudD4sIFZlY3RvcjxSZWY8V2ViQ29yZTo6TWVkaWFLZXlTeXN0ZW1SZXF1
ZXN0Pj4+IG1fcGVuZGluZ01lZGlhS2V5U3lzdGVtUmVxdWVzdHM7Cit9OworCit9IC8vIG5hbWVz
cGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIEVOQUJMRShNRURJQV9TVFJFQU0pCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9NZWRpYVJlY29yZGVyUHJpdmF0
ZS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJydGMvTWVkaWFSZWNvcmRlclBy
aXZhdGUuaAppbmRleCAwMmE3YjRjZGEzNmJhM2I1ZGIyMzUyYTRiM2JkZDBjZjJkZmViZDZhLi4y
N2ViODVlMGU1ZTBjNzMwZTExOThiODI1ZDIyOTFmYTM1MzUyM2IyIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9NZWRpYVJlY29yZGVyUHJpdmF0ZS5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvd2VicnRjL01lZGlhUmVjb3JkZXJQcml2
YXRlLmgKQEAgLTQxLDYgKzQxLDcgQEAgY2xhc3MgQ29ubmVjdGlvbjsKIAogbmFtZXNwYWNlIFdl
YkNvcmUgewogY2xhc3MgTWVkaWFTdHJlYW1Qcml2YXRlOworY2xhc3MgV2ViQXVkaW9CdWZmZXJM
aXN0OwogfQogCiBuYW1lc3BhY2UgV2ViS2l0IHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJNZWRpYUtleVN5c3RlbUNsaWVudC5jcHAgYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViTWVkaWFLZXlTeXN0ZW1D
bGllbnQuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjk2NjgxNjczZWEwYWRlNGMzNzNhYTZkZDBiMDZlNWY2Yjgy
OWJiZjcKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29y
ZVN1cHBvcnQvV2ViTWVkaWFLZXlTeXN0ZW1DbGllbnQuY3BwCkBAIC0wLDAgKzEsNTYgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgSWdhbGlhIFMuTC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMg
YGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRS
SUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUg
ImNvbmZpZy5oIgorI2luY2x1ZGUgIldlYk1lZGlhS2V5U3lzdGVtQ2xpZW50LmgiCisKKyNpZiBF
TkFCTEUoRU5DUllQVEVEX01FRElBKQorCisjaW5jbHVkZSAiTWVkaWFLZXlTeXN0ZW1QZXJtaXNz
aW9uUmVxdWVzdE1hbmFnZXIuaCIKKyNpbmNsdWRlICJXZWJQYWdlLmgiCisjaW5jbHVkZSA8V2Vi
Q29yZS9NZWRpYUtleVN5c3RlbUNvbnRyb2xsZXIuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL01lZGlh
S2V5U3lzdGVtUmVxdWVzdC5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKK3VzaW5nIG5hbWVzcGFj
ZSBXZWJDb3JlOworCitXZWJNZWRpYUtleVN5c3RlbUNsaWVudDo6V2ViTWVkaWFLZXlTeXN0ZW1D
bGllbnQoV2ViUGFnZSYgcGFnZSkKKyAgICA6IG1fcGFnZShwYWdlKQoreworfQorCit2b2lkIFdl
Yk1lZGlhS2V5U3lzdGVtQ2xpZW50OjpyZXF1ZXN0TWVkaWFLZXlTeXN0ZW0oTWVkaWFLZXlTeXN0
ZW1SZXF1ZXN0JiByZXF1ZXN0KQoreworICAgIG1fcGFnZS5tZWRpYUtleVN5c3RlbVBlcm1pc3Np
b25SZXF1ZXN0TWFuYWdlcigpLnN0YXJ0TWVkaWFLZXlTeXN0ZW1SZXF1ZXN0KHJlcXVlc3QpOwor
fQorCit2b2lkIFdlYk1lZGlhS2V5U3lzdGVtQ2xpZW50OjpjYW5jZWxNZWRpYUtleVN5c3RlbVJl
cXVlc3QoTWVkaWFLZXlTeXN0ZW1SZXF1ZXN0JiByZXF1ZXN0KQoreworICAgIG1fcGFnZS5tZWRp
YUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcigpLmNhbmNlbE1lZGlhS2V5U3lzdGVt
UmVxdWVzdChyZXF1ZXN0KTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0OworCisjZW5kaWYg
Ly8gRU5BQkxFKEVOQ1JZUFRFRF9NRURJQSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJNZWRpYUtleVN5c3RlbUNsaWVudC5oIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYk1lZGlhS2V5U3lzdGVtQ2xpZW50
LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uYjM3NDNmNGRmMDVkZDk2ZWFkYWM4NjRjZWVhMDc0ZjYyYTc2N2UyNgot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9y
dC9XZWJNZWRpYUtleVN5c3RlbUNsaWVudC5oCkBAIC0wLDAgKzEsNTMgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMjEgSWdhbGlhIFMuTC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycn
CisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwor
ICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICog
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNp
ZiBFTkFCTEUoRU5DUllQVEVEX01FRElBKQorCisjaW5jbHVkZSA8V2ViQ29yZS9NZWRpYUtleVN5
c3RlbUNsaWVudC5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3MgV2ViUGFnZTsKKwor
Y2xhc3MgV2ViTWVkaWFLZXlTeXN0ZW1DbGllbnQgOiBwdWJsaWMgV2ViQ29yZTo6TWVkaWFLZXlT
eXN0ZW1DbGllbnQgeworICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOworcHVibGljOgorICAg
IFdlYk1lZGlhS2V5U3lzdGVtQ2xpZW50KFdlYlBhZ2UmKTsKKyAgICB+V2ViTWVkaWFLZXlTeXN0
ZW1DbGllbnQoKSB7IH0KKworcHJpdmF0ZToKKyAgICB2b2lkIHBhZ2VEZXN0cm95ZWQoKSBvdmVy
cmlkZSB7IH0KKworICAgIHZvaWQgcmVxdWVzdE1lZGlhS2V5U3lzdGVtKFdlYkNvcmU6Ok1lZGlh
S2V5U3lzdGVtUmVxdWVzdCYpIG92ZXJyaWRlOworICAgIHZvaWQgY2FuY2VsTWVkaWFLZXlTeXN0
ZW1SZXF1ZXN0KFdlYkNvcmU6Ok1lZGlhS2V5U3lzdGVtUmVxdWVzdCYpIG92ZXJyaWRlOworCisg
ICAgV2ViUGFnZSYgbV9wYWdlOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5k
aWYgLy8gRU5BQkxFKEVOQ1JZUFRFRF9NRURJQSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYlBhZ2UvV2ViUGFnZS5jcHAKaW5kZXggYzI5ZDg1MGQwZGEzNTJjZGQ3MGI5MTM2ZWYyMGU5
NGI4ZmRiNzNmZC4uYTUwMGYzNTNjZThmYWI0YjljMDcwMmM4YzcwN2I2OGM3ZWNiZWJkOSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKQEAgLTQ2LDYg
KzQ2LDcgQEAKICNpbmNsdWRlICJMaWJXZWJSVENQcm92aWRlci5oIgogI2luY2x1ZGUgIkxvYWRQ
YXJhbWV0ZXJzLmgiCiAjaW5jbHVkZSAiTG9nZ2luZy5oIgorI2luY2x1ZGUgIk1lZGlhS2V5U3lz
dGVtUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyLmgiCiAjaW5jbHVkZSAiTWVkaWFQbGF5YmFja1N0
YXRlLmgiCiAjaW5jbHVkZSAiTWVkaWFSZWNvcmRlclByb3ZpZGVyLmgiCiAjaW5jbHVkZSAiTmV0
c2NhcGVQbHVnaW4uaCIKQEAgLTEwNCw2ICsxMDUsNyBAQAogI2luY2x1ZGUgIldlYktleWJvYXJk
RXZlbnQuaCIKICNpbmNsdWRlICJXZWJMb2FkZXJTdHJhdGVneS5oIgogI2luY2x1ZGUgIldlYk1l
ZGlhS2V5U3RvcmFnZU1hbmFnZXIuaCIKKyNpbmNsdWRlICJXZWJNZWRpYUtleVN5c3RlbUNsaWVu
dC5oIgogI2luY2x1ZGUgIldlYk1lZGlhU3RyYXRlZ3kuaCIKICNpbmNsdWRlICJXZWJNb3VzZUV2
ZW50LmgiCiAjaW5jbHVkZSAiV2ViTm90aWZpY2F0aW9uQ2xpZW50LmgiCkBAIC00NzMsNiArNDc1
LDkgQEAgV2ViUGFnZTo6V2ViUGFnZShQYWdlSWRlbnRpZmllciBwYWdlSUQsIFdlYlBhZ2VDcmVh
dGlvblBhcmFtZXRlcnMmJiBwYXJhbWV0ZXJzKQogI2VuZGlmCiAjaWYgRU5BQkxFKE1FRElBX1NU
UkVBTSkKICAgICAsIG1fdXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyIHsgbWFrZVVu
aXF1ZVJlZjxVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXI+KCp0aGlzKSB9CisjZW5k
aWYKKyNpZiBFTkFCTEUoRU5DUllQVEVEX01FRElBKQorICAgICwgbV9tZWRpYUtleVN5c3RlbVBl
cm1pc3Npb25SZXF1ZXN0TWFuYWdlciB7IG1ha2VVbmlxdWVSZWY8TWVkaWFLZXlTeXN0ZW1QZXJt
aXNzaW9uUmVxdWVzdE1hbmFnZXI+KCp0aGlzKSB9CiAjZW5kaWYKICAgICAsIG1fcGFnZVNjcm9s
bGVkSHlzdGVyZXNpcyhbdGhpc10oUEFMOjpIeXN0ZXJlc2lzU3RhdGUgc3RhdGUpIHsgaWYgKHN0
YXRlID09IFBBTDo6SHlzdGVyZXNpc1N0YXRlOjpTdG9wcGVkKSBwYWdlU3RvcHBlZFNjcm9sbGlu
ZygpOyB9LCBwYWdlU2Nyb2xsSHlzdGVyZXNpc0R1cmF0aW9uKQogICAgICwgbV9jYW5SdW5CZWZv
cmVVbmxvYWRDb25maXJtUGFuZWwocGFyYW1ldGVycy5jYW5SdW5CZWZvcmVVbmxvYWRDb25maXJt
UGFuZWwpCkBAIC02NTQsNiArNjU5LDkgQEAgV2ViUGFnZTo6V2ViUGFnZShQYWdlSWRlbnRpZmll
ciBwYWdlSUQsIFdlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMmJiBwYXJhbWV0ZXJzKQogI2lmIEVO
QUJMRShNRURJQV9TVFJFQU0pCiAgICAgV2ViQ29yZTo6cHJvdmlkZVVzZXJNZWRpYVRvKG1fcGFn
ZS5nZXQoKSwgbmV3IFdlYlVzZXJNZWRpYUNsaWVudCgqdGhpcykpOwogI2VuZGlmCisjaWYgRU5B
QkxFKEVOQ1JZUFRFRF9NRURJQSkKKyAgICBXZWJDb3JlOjpwcm92aWRlTWVkaWFLZXlTeXN0ZW1U
bygqbV9wYWdlLmdldCgpLCAqbmV3IFdlYk1lZGlhS2V5U3lzdGVtQ2xpZW50KCp0aGlzKSk7Cisj
ZW5kaWYKIAogICAgIG1fcGFnZS0+c2V0Q29udHJvbGxlZEJ5QXV0b21hdGlvbihwYXJhbWV0ZXJz
LmNvbnRyb2xsZWRCeUF1dG9tYXRpb24pOwogICAgIG1fcGFnZS0+c2V0SGFzUmVzb3VyY2VMb2Fk
Q2xpZW50KHBhcmFtZXRlcnMuaGFzUmVzb3VyY2VMb2FkQ2xpZW50KTsKQEAgLTQ1MjcsNiArNDUz
NSwxOCBAQCB2b2lkIFdlYlBhZ2U6OmNhcHR1cmVEZXZpY2VzQ2hhbmdlZCgpCiAKICNlbmRpZgog
CisjaWYgRU5BQkxFKEVOQ1JZUFRFRF9NRURJQSkKK3ZvaWQgV2ViUGFnZTo6bWVkaWFLZXlTeXN0
ZW1XYXNHcmFudGVkKHVpbnQ2NF90IG1lZGlhS2V5U3lzdGVtSUQsIENvbXBsZXRpb25IYW5kbGVy
PHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3sKKyAgICBtX21lZGlhS2V5U3lzdGVtUGVy
bWlzc2lvblJlcXVlc3RNYW5hZ2VyLT5tZWRpYUtleVN5c3RlbVdhc0dyYW50ZWQobWVkaWFLZXlT
eXN0ZW1JRCwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOworfQorCit2b2lkIFdlYlBhZ2U6
Om1lZGlhS2V5U3lzdGVtV2FzRGVuaWVkKHVpbnQ2NF90IG1lZGlhS2V5U3lzdGVtSUQsIFN0cmlu
ZyYmIG1lc3NhZ2UpCit7CisgICAgbV9tZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0TWFu
YWdlci0+bWVkaWFLZXlTeXN0ZW1XYXNEZW5pZWQobWVkaWFLZXlTeXN0ZW1JRCwgV1RGTW92ZSht
ZXNzYWdlKSk7Cit9CisjZW5kaWYKKwogI2lmICFQTEFURk9STShJT1NfRkFNSUxZKQogdm9pZCBX
ZWJQYWdlOjphZHZhbmNlVG9OZXh0TWlzc3BlbGxpbmcoYm9vbCBzdGFydEJlZm9yZVNlbGVjdGlv
bikKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBh
Z2UuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAppbmRleCAz
MDllZGY0YmMxYmRiNzdhMWZhNzBmMmUwMjFmZmI0OTM4MjY3ZDk3Li4xYzkwNmUxYWYyNzkxYTg1
NzkwYTQxYzcwMzY0YTk5ZjdhMTAzNTYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YlBhZ2UvV2ViUGFnZS5oCkBAIC0yNDcsNiArMjQ3LDcgQEAgY2xhc3MgR2FtZXBhZERhdGE7CiBj
bGFzcyBHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcjsKIGNsYXNzIExheWVySG9z
dGluZ0NvbnRleHQ7CiBjbGFzcyBNZWRpYURldmljZVNhbmRib3hFeHRlbnNpb25zOworY2xhc3Mg
TWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXI7CiBjbGFzcyBOb3RpZmljYXRp
b25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXI7CiBjbGFzcyBQREZQbHVnaW47CiBjbGFzcyBQYWdl
QmFubmVyOwpAQCAtNjczLDYgKzY3NCwxMCBAQCBwdWJsaWM6CiAgICAgdm9pZCBjYXB0dXJlRGV2
aWNlc0NoYW5nZWQoKTsKICNlbmRpZgogCisjaWYgRU5BQkxFKEVOQ1JZUFRFRF9NRURJQSkKKyAg
ICBNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlciYgbWVkaWFLZXlTeXN0ZW1Q
ZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIoKSB7IHJldHVybiBtX21lZGlhS2V5U3lzdGVtUGVybWlz
c2lvblJlcXVlc3RNYW5hZ2VyOyB9CisjZW5kaWYKKwogICAgIHZvaWQgZWxlbWVudERpZEZvY3Vz
KFdlYkNvcmU6OkVsZW1lbnQmKTsKICAgICB2b2lkIGVsZW1lbnREaWRSZWZvY3VzKFdlYkNvcmU6
OkVsZW1lbnQmKTsKICAgICB2b2lkIGVsZW1lbnREaWRCbHVyKFdlYkNvcmU6OkVsZW1lbnQmKTsK
QEAgLTE2NzQsNyArMTY3OSwxMSBAQCBwcml2YXRlOgogI2lmIEVOQUJMRShNRURJQV9TVFJFQU0p
CiAgICAgdm9pZCB1c2VyTWVkaWFBY2Nlc3NXYXNHcmFudGVkKHVpbnQ2NF90IHVzZXJNZWRpYUlE
LCBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlJiYgYXVkaW9EZXZpY2VVSUQsIFdlYkNvcmU6OkNhcHR1
cmVEZXZpY2UmJiB2aWRlb0RldmljZVVJRCwgU3RyaW5nJiYgbWVkaWFEZXZpY2VJZGVudGlmaWVy
SGFzaFNhbHQsIFNhbmRib3hFeHRlbnNpb246OkhhbmRsZSYmLCBDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKCk+JiYpOwogICAgIHZvaWQgdXNlck1lZGlhQWNjZXNzV2FzRGVuaWVkKHVpbnQ2NF90IHVz
ZXJNZWRpYUlELCB1aW50NjRfdCByZWFzb24sIFN0cmluZyYmIGludmFsaWRDb25zdHJhaW50KTsK
KyNlbmRpZgogCisjaWYgRU5BQkxFKEVOQ1JZUFRFRF9NRURJQSkKKyAgICB2b2lkIG1lZGlhS2V5
U3lzdGVtV2FzR3JhbnRlZCh1aW50NjRfdCBtZWRpYUtleVN5c3RlbUlELCBDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKCk+JiYpOworICAgIHZvaWQgbWVkaWFLZXlTeXN0ZW1XYXNEZW5pZWQodWludDY0
X3QgbWVkaWFLZXlTeXN0ZW1JRCwgU3RyaW5nJiYgbWVzc2FnZSk7CiAjZW5kaWYKIAogICAgIHZv
aWQgcmVxdWVzdE1lZGlhUGxheWJhY2tTdGF0ZShDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYktp
dDo6TWVkaWFQbGF5YmFja1N0YXRlKT4mJik7CkBAIC0xOTg2LDYgKzE5OTUsMTAgQEAgcHJpdmF0
ZToKICAgICBVbmlxdWVSZWY8VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyPiBtX3Vz
ZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcjsKICNlbmRpZgogCisjaWYgRU5BQkxFKEVO
Q1JZUFRFRF9NRURJQSkKKyAgICBVbmlxdWVSZWY8TWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVx
dWVzdE1hbmFnZXI+IG1fbWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXI7Cisj
ZW5kaWYKKwogICAgIHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpQcmludENvbnRleHQ+IG1fcHJp
bnRDb250ZXh0OwogI2lmIFBMQVRGT1JNKEdUSykKICAgICBSZWZQdHI8V2ViUHJpbnRPcGVyYXRp
b25HdGs+IG1fcHJpbnRPcGVyYXRpb247CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbgppbmRleCAyZGE5OWNkMzcyMzkyZTgyYzUz
MGQ0MmMwMWExMjg3NzBmYmQ4NzE3Li4yM2ZjYTM1NzFmMDc0NzUwOTFmZjNmYzE0YmFiYzQ2NWUy
MTZlZDRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQ
YWdlLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dl
YlBhZ2UubWVzc2FnZXMuaW4KQEAgLTM3OCw2ICszNzgsMTEgQEAgR2VuZXJhdGVTeW50aGV0aWNF
ZGl0aW5nQ29tbWFuZChlbnVtOnVpbnQ4X3QgV2ViS2l0OjpTeW50aGV0aWNFZGl0aW5nQ29tbWFu
ZFR5cGUKICAgICBDYXB0dXJlRGV2aWNlc0NoYW5nZWQoKQogI2VuZGlmCiAKKyNpZiBFTkFCTEUo
RU5DUllQVEVEX01FRElBKQorICAgIE1lZGlhS2V5U3lzdGVtV2FzR3JhbnRlZCh1aW50NjRfdCBt
ZWRpYUtleVN5c3RlbUlEKSAtPiAoKSBBc3luYworICAgIE1lZGlhS2V5U3lzdGVtV2FzRGVuaWVk
KHVpbnQ2NF90IG1lZGlhS2V5U3lzdGVtSUQsIFN0cmluZyBtZXNzYWdlKQorI2VuZGlmCisKICAg
ICBSZXF1ZXN0TWVkaWFQbGF5YmFja1N0YXRlKCkgLT4gKGVudW06dWludDhfdCBXZWJLaXQ6Ok1l
ZGlhUGxheWJhY2tTdGF0ZSBzdGF0ZSkgQXN5bmMKICAgICBQYXVzZUFsbE1lZGlhUGxheWJhY2so
KSAtPiAoKSBBc3luYwogICAgIFN1c3BlbmRBbGxNZWRpYVBsYXliYWNrKCkgLT4gKCkgQXN5bmMK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvV2ViS2l0TGVnYWN5Lnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L1dlYktpdExlZ2FjeS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDQwZDdmMDc5ZDBiYWI3YjM4Yzk2ZjExOTEwZTdjNzNk
NDI5YzU3MzkuLjdlMWM1MGJkMzdmMGRmMzFhNjI5NjU3NTA3NzBlYzUxODY0ZmU4OTUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvV2ViS2l0TGVnYWN5Lnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9XZWJLaXRMZWdhY3kueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagpAQCAtNTgxLDYgKzU4MSw4IEBACiAJCTkzRTJBMUE0MTIzQjBCM0Mw
MDlGRTEyQSAvKiBXZWJEYXNoYm9hcmRSZWdpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzRTJBMUEyMTIzQjBCM0MwMDlGRTEyQSAvKiBXZWJEYXNo
Ym9hcmRSZWdpb24uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OwogCQk5M0UyQTFBNTEyM0IwQjNDMDA5RkUxMkEgLyogV2ViRGFzaGJvYXJkUmVnaW9uLm1t
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNFMkExQTMx
MjNCMEIzQzAwOUZFMTJBIC8qIFdlYkRhc2hib2FyZFJlZ2lvbi5tbSAqLzsgfTsKIAkJOTNGREU5
MzMwRDc5Q0FGMzAwNzRGMDI5IC8qIFdlYkhpc3RvcnlJbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNGREU5MzIwRDc5Q0FGMzAwNzRGMDI5
IC8qIFdlYkhpc3RvcnlJbnRlcm5hbC5oICovOyB9OworCQk5QUNDMDdCQzI1Qzg1QTQ3MDBEQzYz
ODYgLyogV2ViTWVkaWFLZXlTeXN0ZW1DbGllbnQubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5QUNDMDdCQjI1Qzg1QTQ3MDBEQzYzODYgLyogV2ViTWVk
aWFLZXlTeXN0ZW1DbGllbnQubW0gKi87IH07CisJCTlBQ0MwN0JFMjVDODVBNTkwMERDNjM4NiAv
KiBXZWJNZWRpYUtleVN5c3RlbUNsaWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gOUFDQzA3QkQyNUM4NUE1OTAwREM2Mzg2IC8qIFdlYk1lZGlhS2V5
U3lzdGVtQ2xpZW50LmggKi87IH07CiAJCUExMEMxRDE4MTgyMDJGOUMwMDM2ODgzQSAvKiBXZWJE
ZWZhdWx0Rm9ybURlbGVnYXRlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBBMTBDMUQxMDE4MjAyRjlDMDAzNjg4M0EgLyogV2ViRGVmYXVsdEZvcm1EZWxl
Z2F0ZS5oICovOyB9OwogCQlBMTBDMUQxOTE4MjAyRjlDMDAzNjg4M0EgLyogV2ViRGVmYXVsdEZv
cm1EZWxlZ2F0ZS5tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gQTEwQzFEMTExODIwMkY5QzAwMzY4ODNBIC8qIFdlYkRlZmF1bHRGb3JtRGVsZWdhdGUubSAq
LzsgfTsKIAkJQTEwQzFEMUExODIwMkY5QzAwMzY4ODNBIC8qIFdlYkRlZmF1bHRGcmFtZUxvYWRE
ZWxlZ2F0ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
QTEwQzFEMTIxODIwMkY5QzAwMzY4ODNBIC8qIFdlYkRlZmF1bHRGcmFtZUxvYWREZWxlZ2F0ZS5o
ICovOyB9OwpAQCAtMTQxMiw2ICsxNDE0LDggQEAKIAkJOTNFMkExQTIxMjNCMEIzQzAwOUZFMTJB
IC8qIFdlYkRhc2hib2FyZFJlZ2lvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBXZWJEYXNoYm9hcmRSZWdpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTNF
MkExQTMxMjNCMEIzQzAwOUZFMTJBIC8qIFdlYkRhc2hib2FyZFJlZ2lvbi5tbSAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdlYkRhc2hib2FyZFJlZ2lvbi5tbTsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTNGREU5MzIwRDc5Q0FGMzAwNzRGMDI5IC8qIFdl
Ykhpc3RvcnlJbnRlcm5hbC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJI
aXN0b3J5SW50ZXJuYWwuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOUFDQzA3QkIy
NUM4NUE0NzAwREM2Mzg2IC8qIFdlYk1lZGlhS2V5U3lzdGVtQ2xpZW50Lm1tICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gV2ViTWVkaWFLZXlTeXN0ZW1DbGllbnQubW07
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTlBQ0MwN0JEMjVDODVBNTkwMERDNjM4NiAv
KiBXZWJNZWRpYUtleVN5c3RlbUNsaWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBXZWJNZWRpYUtleVN5c3RlbUNsaWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk5Q0FFOUQwNzAyNTJBNDEzMEVDQTE2RUEgLyogV2ViUHJlZmVyZW5jZXNQcml2YXRlLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgaW5kZW50V2lk
dGggPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViUHJl
ZmVyZW5jZXNQcml2YXRlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRoID0gODsg
dXNlc1RhYnMgPSAwOyB9OwogCQk5Q0YwRTI0OTAyMTM2MUIwMEVDQTE2RUEgLyogV2ViRnJhbWVQ
cml2YXRlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
aW5kZW50V2lkdGggPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gV2ViRnJhbWVQcml2YXRlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRoID0g
ODsgdXNlc1RhYnMgPSAwOyB9OwogCQlBMTBDMUQxMDE4MjAyRjlDMDAzNjg4M0EgLyogV2ViRGVm
YXVsdEZvcm1EZWxlZ2F0ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBXZWJE
ZWZhdWx0Rm9ybURlbGVnYXRlLmg7IHBhdGggPSBpb3MvRGVmYXVsdERlbGVnYXRlcy9XZWJEZWZh
dWx0Rm9ybURlbGVnYXRlLmg7IHNvdXJjZVRyZWUgPSBTT1VSQ0VfUk9PVDsgfTsKQEAgLTI2NzMs
NiArMjY3Nyw4IEBACiAJCQkJOTM0NUQ0RUIwMzY1QzVCMjAwODYzNUNFIC8qIFdlYkphdmFTY3Jp
cHRUZXh0SW5wdXRQYW5lbC5tICovLAogCQkJCUNEOEJGQ0U2MTU1MzEyMjQwMDVBRkIyNSAvKiBX
ZWJLaXRGdWxsU2NyZWVuTGlzdGVuZXIuaCAqLywKIAkJCQlDRDhCRkNFNTE1NTMxMjI0MDA1QUZC
MjUgLyogV2ViS2l0RnVsbFNjcmVlbkxpc3RlbmVyLm1tICovLAorCQkJCTlBQ0MwN0JEMjVDODVB
NTkwMERDNjM4NiAvKiBXZWJNZWRpYUtleVN5c3RlbUNsaWVudC5oICovLAorCQkJCTlBQ0MwN0JC
MjVDODVBNDcwMERDNjM4NiAvKiBXZWJNZWRpYUtleVN5c3RlbUNsaWVudC5tbSAqLywKIAkJCQkz
MUMxMUE2QzE0NzY1NTJFMDA0OUE0Q0MgLyogV2ViTm90aWZpY2F0aW9uQ2xpZW50LmggKi8sCiAJ
CQkJMzFDMTFBNkQxNDc2NTUyRTAwNDlBNENDIC8qIFdlYk5vdGlmaWNhdGlvbkNsaWVudC5tbSAq
LywKIAkJCQlBNThBNTc5NzE0M0U3MjcwMDAxMjVGNTAgLyogV2ViT3BlblBhbmVsUmVzdWx0TGlz
dGVuZXIuaCAqLywKQEAgLTMxMDgsNiArMzExNCw3IEBACiAJCQkJOTM5ODEwNzkwODI0QkYwMTAw
OERGMDM4IC8qIFdlYkxvY2FsaXphYmxlU3RyaW5ncy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkM0
MkQzMjQxMzFFRDFFMDAwNzVGQTRCIC8qIFdlYkxvY2FsaXphYmxlU3RyaW5nc0ludGVybmFsLmgg
aW4gSGVhZGVycyAqLywKIAkJCQlBMTBDMUQ4MDE4MjAzMDNEMDAzNjg4M0EgLyogV2ViTWFpbERl
bGVnYXRlLmggaW4gSGVhZGVycyAqLywKKwkJCQk5QUNDMDdCRTI1Qzg1QTU5MDBEQzYzODYgLyog
V2ViTWVkaWFLZXlTeXN0ZW1DbGllbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTA3MkU1RjQ1MUFC
Rjg4NzUwMDAzQjE2NCAvKiBXZWJNZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyLmggaW4gSGVhZGVy
cyAqLywKIAkJCQlBMTBDMUQ3MjE4MjAzMDBFMDAzNjg4M0EgLyogV2ViTUlNRVR5cGVSZWdpc3Ry
eS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTE4NUY2MjYxMDcxMkI4MDAwN0FBMzkzIC8qIFdlYk5h
dmlnYXRpb25EYXRhLmggaW4gSGVhZGVycyAqLywKQEAgLTM2NTAsNiArMzY1Nyw3IEBACiAJCQkJ
NTEyMEM4MkMxRTU0Q0U4QTAwMjVCMjUwIC8qIFdlYktpdFZlcnNpb25DaGVja3MubW0gaW4gU291
cmNlcyAqLywKIAkJCQlFRDVCOTUyNDExMUI3MjVBMDA0NzIyOTggLyogV2ViTG9jYWxpemFibGVT
dHJpbmdzLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJQkM0MkQzNEQxMzFFRDM4ODAwNzVGQTRCIC8q
IFdlYkxvY2FsaXphYmxlU3RyaW5nc0ludGVybmFsLm1tIGluIFNvdXJjZXMgKi8sCisJCQkJOUFD
QzA3QkMyNUM4NUE0NzAwREM2Mzg2IC8qIFdlYk1lZGlhS2V5U3lzdGVtQ2xpZW50Lm1tIGluIFNv
dXJjZXMgKi8sCiAJCQkJMDcyRTVGNDYxQUJGODg3NTAwMDNCMTY0IC8qIFdlYk1lZGlhUGxheWJh
Y2tUYXJnZXRQaWNrZXIubW0gaW4gU291cmNlcyAqLywKIAkJCQlBMTBDMUQ3MzE4MjAzMDBFMDAz
Njg4M0EgLyogV2ViTUlNRVR5cGVSZWdpc3RyeS5tbSBpbiBTb3VyY2VzICovLAogCQkJCTUxODVG
NjI4MTA3MTJCOTcwMDdBQTM5MyAvKiBXZWJOYXZpZ2F0aW9uRGF0YS5tbSBpbiBTb3VyY2VzICov
LApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2Vi
TWVkaWFLZXlTeXN0ZW1DbGllbnQuaCBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVT
dXBwb3J0L1dlYk1lZGlhS2V5U3lzdGVtQ2xpZW50LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTNhMzFhZTA5OGI2
MmQ0YTkyMGYyNDRmMjdlMzRmOTI3YjdkZjc3ZgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
ZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYk1lZGlhS2V5U3lzdGVtQ2xpZW50LmgK
QEAgLTAsMCArMSwzNyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBJZ2FsaWEgUy5MLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjaW1wb3J0IDxXZWJDb3JlL01lZGlhS2V5U3lzdGVtQ2xpZW50Lmg+CisKK2Ns
YXNzIFdlYk1lZGlhS2V5U3lzdGVtQ2xpZW50IDogcHVibGljIFdlYkNvcmU6Ok1lZGlhS2V5U3lz
dGVtQ2xpZW50IHsKKyAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKK3B1YmxpYzoKKyAgICBX
ZWJNZWRpYUtleVN5c3RlbUNsaWVudCgpID0gZGVmYXVsdDsKKworICAgIHZvaWQgcGFnZURlc3Ry
b3llZCgpIG92ZXJyaWRlIHsgfQorCisgICAgdm9pZCByZXF1ZXN0TWVkaWFLZXlTeXN0ZW0oV2Vi
Q29yZTo6TWVkaWFLZXlTeXN0ZW1SZXF1ZXN0Jikgb3ZlcnJpZGU7CisgICAgdm9pZCBjYW5jZWxN
ZWRpYUtleVN5c3RlbVJlcXVlc3QoV2ViQ29yZTo6TWVkaWFLZXlTeXN0ZW1SZXF1ZXN0Jikgb3Zl
cnJpZGUgeyB9Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29y
ZVN1cHBvcnQvV2ViTWVkaWFLZXlTeXN0ZW1DbGllbnQubW0gYi9Tb3VyY2UvV2ViS2l0TGVnYWN5
L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJNZWRpYUtleVN5c3RlbUNsaWVudC5tbQpuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li4wYzQ0YzUxMTEzZGNkYTk1ZjY2MmRjN2E5MDNkNzRlNmQ2YTJhOWRkCi0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViTWVkaWFLZXlT
eXN0ZW1DbGllbnQubW0KQEAgLTAsMCArMSw0NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAy
MSBJZ2FsaWEgUy5MLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW1wb3J0ICJXZWJNZWRpYUtleVN5c3RlbUNsaWVu
dC5oIgorCisjaWYgRU5BQkxFKEVOQ1JZUFRFRF9NRURJQSkKKworI2ltcG9ydCA8V2ViQ29yZS9N
ZWRpYUtleVN5c3RlbVJlcXVlc3QuaD4KKyNpbXBvcnQgPHd0Zi9CbG9ja09iakNFeGNlcHRpb25z
Lmg+CisKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOworCit2b2lkIFdlYk1lZGlhS2V5U3lzdGVt
Q2xpZW50OjpyZXF1ZXN0TWVkaWFLZXlTeXN0ZW0oTWVkaWFLZXlTeXN0ZW1SZXF1ZXN0JiByZXF1
ZXN0KQoreworICAgIEJFR0lOX0JMT0NLX09CSkNfRVhDRVBUSU9OUworCisgICAgcmVxdWVzdC5h
bGxvdyhbXSB7IH0pOworCisgICAgRU5EX0JMT0NLX09CSkNfRVhDRVBUSU9OUworfQorCisjZW5k
aWYgLy8gRU5BQkxFKEVOQ1JZUFRFRF9NRURJQSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRM
ZWdhY3kvbWFjL1dlYlZpZXcvV2ViVmlldy5tbSBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dl
YlZpZXcvV2ViVmlldy5tbQppbmRleCA2ODVhY2IxY2RiZjIzZDI2NGZkYjg2OWY5MWNhMGI5NDcx
OTEzZDg2Li5jZGU2MDU0M2ZhNjgxOGM1MDJmYTk4YTkzNzQyZDRjMmRmYjY3MjcwIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlZpZXcubW0KKysrIGIvU291
cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tCkBAIC04NSw2ICs4NSw3IEBA
CiAjaW1wb3J0ICJXZWJLaXRTdGF0aXN0aWNzUHJpdmF0ZS5oIgogI2ltcG9ydCAiV2ViS2l0VmVy
c2lvbkNoZWNrcy5oIgogI2ltcG9ydCAiV2ViTG9jYWxpemFibGVTdHJpbmdzLmgiCisjaW1wb3J0
ICJXZWJNZWRpYUtleVN5c3RlbUNsaWVudC5oIgogI2ltcG9ydCAiV2ViTlNEYXRhRXh0cmFzLmgi
CiAjaW1wb3J0ICJXZWJOU0RhdGFFeHRyYXNQcml2YXRlLmgiCiAjaW1wb3J0ICJXZWJOU0RpY3Rp
b25hcnlFeHRyYXMuaCIKQEAgLTE1NjgsNiArMTU2OSw5IEBAIHN0YXRpYyB2b2lkIFdlYktpdElu
aXRpYWxpemVHYW1lcGFkUHJvdmlkZXJJZk5lY2Vzc2FyeSgpCiAjaWYgRU5BQkxFKERFVklDRV9P
UklFTlRBVElPTikgJiYgIVBMQVRGT1JNKElPU19GQU1JTFkpCiAgICAgV2ViQ29yZTo6cHJvdmlk
ZURldmljZU9yaWVudGF0aW9uVG8oKl9wcml2YXRlLT5wYWdlLCAqbmV3IFdlYkRldmljZU9yaWVu
dGF0aW9uQ2xpZW50KHNlbGYpKTsKICNlbmRpZgorI2lmIEVOQUJMRShFTkNSWVBURURfTUVESUEp
CisgICAgV2ViQ29yZTo6cHJvdmlkZU1lZGlhS2V5U3lzdGVtVG8oKl9wcml2YXRlLT5wYWdlLCAq
bmV3IFdlYk1lZGlhS2V5U3lzdGVtQ2xpZW50KCkpOworI2VuZGlmCiAKICNpZiBFTkFCTEUoUkVN
T1RFX0lOU1BFQ1RPUikKICAgICBfcHJpdmF0ZS0+cGFnZS0+c2V0UmVtb3RlSW5zcGVjdGlvbkFs
bG93ZWQodHJ1ZSk7CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VM
b2cKaW5kZXggYTI2N2M5NWUzMjVhNTc2NGU0ZTVjODQ5ZDE1NmFjYmM1MTZhNTZmMy4uNDlmZTlh
OGUwMWI0MWZlMTdlZmE4Nzk2YWVkYzYzMDA1OGI5OTQwNSAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hh
bmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1IEBACisyMDIxLTAxLTMx
ICBQaGlsaXBwZSBOb3JtYW5kICA8cG5vcm1hbmRAaWdhbGlhLmNvbT4KKworICAgICAgICBQZXJt
aXNzaW9uIHJlcXVlc3QgQVBJIGZvciBNZWRpYUtleVN5c3RlbSBhY2Nlc3Mgc3VwcG9ydAorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjIxMTg3CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIHN1cHBvcnQg
Zm9yIHNldHRpbmcgdGhlIHBlcm1pc3Npb24gcmVxdWVzdCByZXNwb25zZSBmcm9tIHRoZSBUZXN0
UnVubmVyLCBmb3IgdXNhZ2Ugd2l0aGluIGxheW91dCB0ZXN0cy4KKworICAgICAgICAqIFdlYktp
dFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvVGVzdFJ1bm5lci5pZGw6CisgICAg
ICAgICogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmNwcDoKKyAg
ICAgICAgKFdUUjo6VGVzdFJ1bm5lcjo6c2V0SXNNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25HcmFu
dGVkKToKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5u
ZXIuaDoKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcDoKKyAg
ICAgICAgKFdUUjo6ZGVjaWRlUG9saWN5Rm9yTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVz
dCk6CisgICAgICAgIChXVFI6OlRlc3RDb250cm9sbGVyOjpjb21wbGV0ZU1lZGlhS2V5U3lzdGVt
UGVybWlzc2lvbkNoZWNrKToKKyAgICAgICAgKFdUUjo6VGVzdENvbnRyb2xsZXI6OnNldElzTWVk
aWFLZXlTeXN0ZW1QZXJtaXNzaW9uR3JhbnRlZCk6CisgICAgICAgIChXVFI6OlRlc3RDb250cm9s
bGVyOjpjcmVhdGVXZWJWaWV3V2l0aE9wdGlvbnMpOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5u
ZXIvVGVzdENvbnRyb2xsZXIuaDoKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL1Rlc3RJbnZv
Y2F0aW9uLmNwcDoKKyAgICAgICAgKFdUUjo6VGVzdEludm9jYXRpb246OmRpZFJlY2VpdmVTeW5j
aHJvbm91c01lc3NhZ2VGcm9tSW5qZWN0ZWRCdW5kbGUpOgorCiAyMDIxLTAyLTA1ICBBbGljaWEg
Qm95YSBHYXJjw61hICA8YWJveWFAaWdhbGlhLmNvbT4KIAogICAgICAgICBbR1RLXSBydW4tZ3Rr
LXRlc3RzOiBTdXBwb3J0IHJ1bm5pbmcgaW5kaXZpZHVhbCB0ZXN0cyBmb3IgR1Rlc3QgdGVzdCBz
dWl0ZXMKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUv
QmluZGluZ3MvVGVzdFJ1bm5lci5pZGwgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVk
QnVuZGxlL0JpbmRpbmdzL1Rlc3RSdW5uZXIuaWRsCmluZGV4IGRiMTU5OWEyYzU2MDJhZTgxYWIy
ZjI0ZTA4ZjlmOTU1MzljMDViOWEuLmEwNzFlY2RkZDllNDM0ODNmZTc3MTk2ODZjMzVhNGYzN2I4
YjFiYzcgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUv
QmluZGluZ3MvVGVzdFJ1bm5lci5pZGwKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9Jbmpl
Y3RlZEJ1bmRsZS9CaW5kaW5ncy9UZXN0UnVubmVyLmlkbApAQCAtNDA4LDQgKzQwOCw3IEBAIGlu
dGVyZmFjZSBUZXN0UnVubmVyIHsKIAogICAgIC8vIFNwZWVjaFJlY29nbml0aW9uCiAgICAgdW5k
ZWZpbmVkIHNldElzU3BlZWNoUmVjb2duaXRpb25QZXJtaXNzaW9uR3JhbnRlZChib29sZWFuIHZh
bHVlKTsKKworICAgIC8vIE1lZGlhS2V5U3lzdGVtCisgICAgdW5kZWZpbmVkIHNldElzTWVkaWFL
ZXlTeXN0ZW1QZXJtaXNzaW9uR3JhbnRlZChib29sZWFuIHZhbHVlKTsKIH07CmRpZmYgLS1naXQg
YS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuY3BwIGIv
VG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmNwcAppbmRl
eCA2MzgwOTg5MjUxOGNjZTNjZmQ2YmEyZGZhY2RjNmY1ZWY5MDNiYWI2Li44NjRjY2UyODU5N2E0
MThkODlhNTM1N2RjOTIwMGNjZDAxOTRjN2Q1IDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0
UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuY3BwCisrKyBiL1Rvb2xzL1dlYktpdFRl
c3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5jcHAKQEAgLTIwODQsNiArMjA4NCwx
MSBAQCB2b2lkIFRlc3RSdW5uZXI6OnNldElzU3BlZWNoUmVjb2duaXRpb25QZXJtaXNzaW9uR3Jh
bnRlZChib29sIGdyYW50ZWQpCiAgICAgcG9zdFN5bmNocm9ub3VzUGFnZU1lc3NhZ2UoInNldElz
U3BlZWNoUmVjb2duaXRpb25QZXJtaXNzaW9uR3JhbnRlZCIsIGdyYW50ZWQpOwogfQogCit2b2lk
IFRlc3RSdW5uZXI6OnNldElzTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uR3JhbnRlZChib29sIGdy
YW50ZWQpCit7CisgICAgcG9zdFN5bmNocm9ub3VzUGFnZU1lc3NhZ2UoInNldElzTWVkaWFLZXlT
eXN0ZW1QZXJtaXNzaW9uR3JhbnRlZCIsIGdyYW50ZWQpOworfQorCiBBTExPV19ERVBSRUNBVEVE
X0RFQ0xBUkFUSU9OU19FTkQKIAogfSAvLyBuYW1lc3BhY2UgV1RSCmRpZmYgLS1naXQgYS9Ub29s
cy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuaCBiL1Rvb2xzL1dl
YktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5oCmluZGV4IDkzYTk3Y2Jk
ZGU0ODc1Y2JkMzM1YTcwZmNiOWZmNTNkYjRmMjhiNDQuLmJjZjcxMGI3Yjg1NDY5ZjliYzY5MjA0
MTI4MjcxNDZkMjNiM2JjOTcgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5q
ZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5oCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5q
ZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5oCkBAIC01MTksNiArNTE5LDggQEAgcHVibGljOgogCiAg
ICAgdm9pZCBzZXRJc1NwZWVjaFJlY29nbml0aW9uUGVybWlzc2lvbkdyYW50ZWQoYm9vbCk7CiAK
KyAgICB2b2lkIHNldElzTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uR3JhbnRlZChib29sKTsKKwog
cHJpdmF0ZToKICAgICBUZXN0UnVubmVyKCk7CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRl
c3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0
Q29udHJvbGxlci5jcHAKaW5kZXggZDJjYmVmNDI1M2RmZTY1MTMyODcyM2Q1NzlkYjM0MTRiZjFk
YTc4Yy4uYjNmM2I5MzNkOWRhZjAwNmUwZmY4NzMyNDRlNzVhOTM2ZjcyMjhkOCAxMDA2NDQKLS0t
IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAKKysrIGIvVG9vbHMv
V2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAKQEAgLTQ2LDYgKzQ2LDcgQEAKICNp
bmNsdWRlIDxXZWJLaXQvV0tGcmFtZUluZm9SZWYuaD4KICNpbmNsdWRlIDxXZWJLaXQvV0tIVFRQ
Q29va2llU3RvcmVSZWYuaD4KICNpbmNsdWRlIDxXZWJLaXQvV0tJY29uRGF0YWJhc2UuaD4KKyNp
bmNsdWRlIDxXZWJLaXQvV0tNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25DYWxsYmFjay5oPgogI2lu
Y2x1ZGUgPFdlYktpdC9XS01lc3NhZ2VMaXN0ZW5lci5oPgogI2luY2x1ZGUgPFdlYktpdC9XS01v
Y2tEaXNwbGF5Lmg+CiAjaW5jbHVkZSA8V2ViS2l0L1dLTW9ja01lZGlhRGV2aWNlLmg+CkBAIC0z
NDMsNiArMzQ0LDIxIEBAIHZvaWQgVGVzdENvbnRyb2xsZXI6OnNldElzU3BlZWNoUmVjb2duaXRp
b25QZXJtaXNzaW9uR3JhbnRlZChib29sIGdyYW50ZWQpCiAgICAgbV9pc1NwZWVjaFJlY29nbml0
aW9uUGVybWlzc2lvbkdyYW50ZWQgPSBncmFudGVkOwogfQogCitzdGF0aWMgdm9pZCBkZWNpZGVQ
b2xpY3lGb3JNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0KFdLUGFnZVJlZiwgV0tTZWN1
cml0eU9yaWdpblJlZiwgV0tTdHJpbmdSZWYsIFdLTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uQ2Fs
bGJhY2tSZWYgY2FsbGJhY2spCit7CisgICAgVGVzdENvbnRyb2xsZXI6OnNpbmdsZXRvbigpLmNv
bXBsZXRlTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uQ2hlY2soY2FsbGJhY2spOworfQorCit2b2lk
IFRlc3RDb250cm9sbGVyOjpjb21wbGV0ZU1lZGlhS2V5U3lzdGVtUGVybWlzc2lvbkNoZWNrKFdL
TWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uQ2FsbGJhY2tSZWYgY2FsbGJhY2spCit7CisgICAgV0tN
ZWRpYUtleVN5c3RlbVBlcm1pc3Npb25DYWxsYmFja0NvbXBsZXRlKGNhbGxiYWNrLCBtX2lzTWVk
aWFLZXlTeXN0ZW1QZXJtaXNzaW9uR3JhbnRlZCk7Cit9CisKK3ZvaWQgVGVzdENvbnRyb2xsZXI6
OnNldElzTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uR3JhbnRlZChib29sIGdyYW50ZWQpCit7Cisg
ICAgbV9pc01lZGlhS2V5U3lzdGVtUGVybWlzc2lvbkdyYW50ZWQgPSBncmFudGVkOworfQorCiBX
S1BhZ2VSZWYgVGVzdENvbnRyb2xsZXI6OmNyZWF0ZU90aGVyUGFnZShXS1BhZ2VSZWYsIFdLUGFn
ZUNvbmZpZ3VyYXRpb25SZWYgY29uZmlndXJhdGlvbiwgV0tOYXZpZ2F0aW9uQWN0aW9uUmVmIG5h
dmlnYXRpb25BY3Rpb24sIFdLV2luZG93RmVhdHVyZXNSZWYgd2luZG93RmVhdHVyZXMsIGNvbnN0
IHZvaWQgKmNsaWVudEluZm8pCiB7CiAgICAgUGxhdGZvcm1XZWJWaWV3KiBwYXJlbnRWaWV3ID0g
c3RhdGljX2Nhc3Q8UGxhdGZvcm1XZWJWaWV3Kj4oY29uc3RfY2FzdDx2b2lkKj4oY2xpZW50SW5m
bykpOwpAQCAtNjk5LDggKzcxNSw4IEBAIHZvaWQgVGVzdENvbnRyb2xsZXI6OmNyZWF0ZVdlYlZp
ZXdXaXRoT3B0aW9ucyhjb25zdCBUZXN0T3B0aW9ucyYgb3B0aW9ucykKICAgICBXS0hUVFBDb29r
aWVTdG9yZURlbGV0ZUFsbENvb2tpZXMoV0tXZWJzaXRlRGF0YVN0b3JlR2V0SFRUUENvb2tpZVN0
b3JlKHdlYnNpdGVEYXRhU3RvcmUoKSksIG51bGxwdHIsIG51bGxwdHIpOwogCiAgICAgcGxhdGZv
cm1DcmVhdGVXZWJWaWV3KGNvbmZpZ3VyYXRpb24uZ2V0KCksIG9wdGlvbnMpOwotICAgIFdLUGFn
ZVVJQ2xpZW50VjE1IHBhZ2VVSUNsaWVudCA9IHsKLSAgICAgICAgeyAxNSwgbV9tYWluV2ViVmll
dy5nZXQoKSB9LAorICAgIFdLUGFnZVVJQ2xpZW50VjE2IHBhZ2VVSUNsaWVudCA9IHsKKyAgICAg
ICAgeyAxNiwgbV9tYWluV2ViVmlldy5nZXQoKSB9LAogICAgICAgICAwLCAvLyBjcmVhdGVOZXdQ
YWdlX2RlcHJlY2F0ZWRGb3JVc2VXaXRoVjAKICAgICAgICAgMCwgLy8gc2hvd1BhZ2UKICAgICAg
ICAgMCwgLy8gY2xvc2UKQEAgLTc3NCw3ICs3OTAsOCBAQCB2b2lkIFRlc3RDb250cm9sbGVyOjpj
cmVhdGVXZWJWaWV3V2l0aE9wdGlvbnMoY29uc3QgVGVzdE9wdGlvbnMmIG9wdGlvbnMpCiAgICAg
ICAgIDAsIC8vIHJlcXVlc3RTdG9yYWdlQWNjZXNzQ29uZmlybQogICAgICAgICBzaG91bGRBbGxv
d0RldmljZU9yaWVudGF0aW9uQW5kTW90aW9uQWNjZXNzLAogICAgICAgICBydW5XZWJBdXRoZW50
aWNhdGlvblBhbmVsLAotICAgICAgICBkZWNpZGVQb2xpY3lGb3JTcGVlY2hSZWNvZ25pdGlvblBl
cm1pc3Npb25SZXF1ZXN0CisgICAgICAgIGRlY2lkZVBvbGljeUZvclNwZWVjaFJlY29nbml0aW9u
UGVybWlzc2lvblJlcXVlc3QsCisgICAgICAgIGRlY2lkZVBvbGljeUZvck1lZGlhS2V5U3lzdGVt
UGVybWlzc2lvblJlcXVlc3QKICAgICB9OwogICAgIFdLUGFnZVNldFBhZ2VVSUNsaWVudChtX21h
aW5XZWJWaWV3LT5wYWdlKCksICZwYWdlVUlDbGllbnQuYmFzZSk7CiAKZGlmZiAtLWdpdCBhL1Rv
b2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuaCBiL1Rvb2xzL1dlYktpdFRlc3RS
dW5uZXIvVGVzdENvbnRyb2xsZXIuaAppbmRleCBiYjc1ZDUwNzAyYzNhNTNmMzlkZTE1ODFkY2M0
ZDNiMzM3Mzk2NGNiLi44MThjMmI0ZWM0YTU2MmJjMDY3YTRmM2Q1Y2ViYmNkYmQwNWMwNDdjIDEw
MDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmgKKysrIGIv
VG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5oCkBAIC0zNTYsNiArMzU2LDkg
QEAgcHVibGljOgogICAgIHZvaWQgY29tcGxldGVTcGVlY2hSZWNvZ25pdGlvblBlcm1pc3Npb25D
aGVjayhXS1NwZWVjaFJlY29nbml0aW9uUGVybWlzc2lvbkNhbGxiYWNrUmVmKTsKICAgICB2b2lk
IHNldElzU3BlZWNoUmVjb2duaXRpb25QZXJtaXNzaW9uR3JhbnRlZChib29sKTsKIAorICAgIHZv
aWQgY29tcGxldGVNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25DaGVjayhXS01lZGlhS2V5U3lzdGVt
UGVybWlzc2lvbkNhbGxiYWNrUmVmKTsKKyAgICB2b2lkIHNldElzTWVkaWFLZXlTeXN0ZW1QZXJt
aXNzaW9uR3JhbnRlZChib29sKTsKKwogcHJpdmF0ZToKICAgICBXS1JldGFpblB0cjxXS1BhZ2VD
b25maWd1cmF0aW9uUmVmPiBnZW5lcmF0ZVBhZ2VDb25maWd1cmF0aW9uKGNvbnN0IFRlc3RPcHRp
b25zJik7CiAgICAgV0tSZXRhaW5QdHI8V0tDb250ZXh0Q29uZmlndXJhdGlvblJlZj4gZ2VuZXJh
dGVDb250ZXh0Q29uZmlndXJhdGlvbihjb25zdCBUZXN0T3B0aW9ucyYpIGNvbnN0OwpAQCAtNjQ3
LDYgKzY1MCw4IEBAIHByaXZhdGU6CiAjZW5kaWYKIAogICAgIGJvb2wgbV9pc1NwZWVjaFJlY29n
bml0aW9uUGVybWlzc2lvbkdyYW50ZWQgeyBmYWxzZSB9OworCisgICAgYm9vbCBtX2lzTWVkaWFL
ZXlTeXN0ZW1QZXJtaXNzaW9uR3JhbnRlZCB7IHRydWUgfTsKIH07CiAKIH0gLy8gbmFtZXNwYWNl
IFdUUgpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0SW52b2NhdGlvbi5j
cHAgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RJbnZvY2F0aW9uLmNwcAppbmRleCA1OThk
ZmM3ZDFhYzBlMzdiYjIyZmI3ODRiYTE1NGFiNzQ3N2FlYTE1Li41NTAzNTVjN2I4Yjk4NDg0YTdk
MjhjZjU1OTVmNjM4NzUxN2JmNGJhIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVy
L1Rlc3RJbnZvY2F0aW9uLmNwcAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RJbnZv
Y2F0aW9uLmNwcApAQCAtMTM2MCw2ICsxMzYwLDExIEBAIFdLUmV0YWluUHRyPFdLVHlwZVJlZj4g
VGVzdEludm9jYXRpb246OmRpZFJlY2VpdmVTeW5jaHJvbm91c01lc3NhZ2VGcm9tSW5qZWN0ZWRC
CiAgICAgICAgIHJldHVybiBudWxscHRyOwogICAgIH0KIAorICAgIGlmIChXS1N0cmluZ0lzRXF1
YWxUb1VURjhDU3RyaW5nKG1lc3NhZ2VOYW1lLCAic2V0SXNNZWRpYUtleVN5c3RlbVBlcm1pc3Np
b25HcmFudGVkIikpIHsKKyAgICAgICAgVGVzdENvbnRyb2xsZXI6OnNpbmdsZXRvbigpLnNldElz
TWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uR3JhbnRlZChib29sZWFuVmFsdWUobWVzc2FnZUJvZHkp
KTsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgfQorCiAgICAgQVNTRVJUX05PVF9SRUFD
SEVEKCk7CiAgICAgcmV0dXJuIG51bGxwdHI7CiB9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggNDJlMTA4NWI0OWM4YWJhZDcx
ZDBmMzExN2RmNGY0MDAxYjA2MDY3NC4uYzgwZDY2NGVmNGVmZDEwNzZkN2RhOWZhMDc3M2Y2MDdi
NjcxY2NlOCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRl
c3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDIxLTAxLTMxICBQaGlsaXBwZSBOb3Jt
YW5kICA8cG5vcm1hbmRAaWdhbGlhLmNvbT4KKworICAgICAgICBQZXJtaXNzaW9uIHJlcXVlc3Qg
QVBJIGZvciBNZWRpYUtleVN5c3RlbSBhY2Nlc3Mgc3VwcG9ydAorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjIxMTg3CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIGJhc2ljIGNvdmVyYWdlIHN1cHBvcnQg
Zm9yIG92ZXJyaWRpbmcgdGhlIE1lZGlhS2V5U3lzdGVtIHBlcm1pc3Npb24gYW5zd2VyIGFuZCB0
aHVzIGhhdmUKKyAgICAgICAgdGhlIHByb21pc2UgcmVqZWN0aW9uIHRlc3RlZCBpbiB0aGlzIGNh
c2UuCisKKyAgICAgICAgKiBtZWRpYS9lbmNyeXB0ZWQtbWVkaWEvbW9jay1NZWRpYUtleVN5c3Rl
bUFjY2Vzcy1leHBlY3RlZC50eHQ6CisgICAgICAgICogbWVkaWEvZW5jcnlwdGVkLW1lZGlhL21v
Y2stTWVkaWFLZXlTeXN0ZW1BY2Nlc3MuaHRtbDoKKwogMjAyMS0wMi0wNSAgRGV2aW4gUm91c3Nv
ICA8ZHJvdXNzb0BhcHBsZS5jb20+CiAKICAgICAgICAgQWRkIGludGVybWVkaWF0ZSB2b2x1bWUg
aWNvbiBzdGF0ZXMgYmV0d2VlbiAibXV0ZSIgYW5kICJtYXgiCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9tZWRpYS9lbmNyeXB0ZWQtbWVkaWEvbW9jay1NZWRpYUtleVN5c3RlbUFjY2Vzcy1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9tZWRpYS9lbmNyeXB0ZWQtbWVkaWEvbW9jay1NZWRpYUtl
eVN5c3RlbUFjY2Vzcy1leHBlY3RlZC50eHQKaW5kZXggMjA5MjM0ZDUxMTk4ZjBjMTI0OGFlZDZl
YzNiNzU2M2ExNzUwZGRjNC4uMTIwYmExZjJjMjg3Y2ViNzY4ZWYwYTZmNGEyZjhlNDkyZWVhNGFh
MCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvbWVkaWEvZW5jcnlwdGVkLW1lZGlhL21vY2stTWVk
aWFLZXlTeXN0ZW1BY2Nlc3MtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL21lZGlhL2Vu
Y3J5cHRlZC1tZWRpYS9tb2NrLU1lZGlhS2V5U3lzdGVtQWNjZXNzLWV4cGVjdGVkLnR4dApAQCAt
MzEsNiArMzEsMTAgQEAgUlVOKGNhcGFiaWxpdGllcy5wZXJzaXN0ZW50U3RhdGUgPSAibm90LWFs
bG93ZWQiKQogUlVOKHByb21pc2UgPSBuYXZpZ2F0b3IucmVxdWVzdE1lZGlhS2V5U3lzdGVtQWNj
ZXNzKCJvcmcud2Via2l0Lm1vY2siLCBbY2FwYWJpbGl0aWVzXSkpCiBQcm9taXNlIHJlc29sdmVk
IE9LCiAKK1JVTih0ZXN0UnVubmVyLnNldElzTWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uR3JhbnRl
ZChmYWxzZSkpCitSVU4ocHJvbWlzZSA9IG5hdmlnYXRvci5yZXF1ZXN0TWVkaWFLZXlTeXN0ZW1B
Y2Nlc3MoIm9yZy53ZWJraXQubW9jayIsIFtjYXBhYmlsaXRpZXNdKSkKK1Byb21pc2UgcmVqZWN0
ZWQgY29ycmVjdGx5IE9LCisKIFJVTihwcm9taXNlID0gbWVkaWFLZXlTeXN0ZW1BY2Nlc3MuY3Jl
YXRlTWVkaWFLZXlzKCkpCiBQcm9taXNlIHJlc29sdmVkIE9LCiAKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL21lZGlhL2VuY3J5cHRlZC1tZWRpYS9tb2NrLU1lZGlhS2V5U3lzdGVtQWNjZXNzLmh0
bWwgYi9MYXlvdXRUZXN0cy9tZWRpYS9lbmNyeXB0ZWQtbWVkaWEvbW9jay1NZWRpYUtleVN5c3Rl
bUFjY2Vzcy5odG1sCmluZGV4IDQ3OTZmMThjMjAxZjE3NDZkN2RmNDMyNzQyZDk3NWM3NWVlNGJh
NzUuLjU1NWI5ZWU3NjllZWJkMTZkOWE2NzY5MmI2MzcwM2Q0Y2EzMmM3MDkgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL21lZGlhL2VuY3J5cHRlZC1tZWRpYS9tb2NrLU1lZGlhS2V5U3lzdGVtQWNj
ZXNzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvbWVkaWEvZW5jcnlwdGVkLW1lZGlhL21vY2stTWVk
aWFLZXlTeXN0ZW1BY2Nlc3MuaHRtbApAQCAtODQsNiArODQsMTMgQEAKICAgICAgICAgfSwKIAog
ICAgICAgICBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIHJ1bigndGVzdFJ1bm5lci5zZXRJc01l
ZGlhS2V5U3lzdGVtUGVybWlzc2lvbkdyYW50ZWQoZmFsc2UpJyk7CisgICAgICAgICAgICBydW4o
J3Byb21pc2UgPSBuYXZpZ2F0b3IucmVxdWVzdE1lZGlhS2V5U3lzdGVtQWNjZXNzKCJvcmcud2Vi
a2l0Lm1vY2siLCBbY2FwYWJpbGl0aWVzXSknKTsKKyAgICAgICAgICAgIHNob3VsZFJlamVjdChw
cm9taXNlKS50aGVuKG5leHQsIG5leHQpOworICAgICAgICB9LAorCisgICAgICAgIGZ1bmN0aW9u
KCkgeworICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRJc01lZGlhS2V5U3lzdGVtUGVybWlzc2lv
bkdyYW50ZWQodHJ1ZSk7CiAgICAgICAgICAgICBydW4oJ3Byb21pc2UgPSBtZWRpYUtleVN5c3Rl
bUFjY2Vzcy5jcmVhdGVNZWRpYUtleXMoKScpOwogICAgICAgICAgICAgc2hvdWxkUmVzb2x2ZShw
cm9taXNlKS50aGVuKG5leHQsIG5leHQpOwogICAgICAgICB9LAo=
</data>
<flag name="review"
          id="437597"
          type_id="1"
          status="+"
          setter="jer.noble"
    />
          </attachment>
      

    </bug>

</bugzilla>