<?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>232988</bug_id>
          
          <creation_ts>2021-11-11 02:23:59 -0800</creation_ts>
          <short_desc>IOSurface memory attribution is hard to use in constructors</short_desc>
          <delta_ts>2021-12-10 00:25:49 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>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>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Kimmo Kinnunen">kkinnunen</reporter>
          <assigned_to name="Kimmo Kinnunen">kkinnunen</assigned_to>
          <cc>annulen</cc>
    
    <cc>cdumez</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>dino</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>jer.noble</cc>
    
    <cc>johncunningham</cc>
    
    <cc>kkinnunen</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>luiz</cc>
    
    <cc>philipj</cc>
    
    <cc>ryuan.choi</cc>
    
    <cc>sergio</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1813960</commentid>
    <comment_count>0</comment_count>
    <who name="Kimmo Kinnunen">kkinnunen</who>
    <bug_when>2021-11-11 02:23:59 -0800</bug_when>
    <thetext>IOSurface memory attribution is hard to use in constructors because currently the feature is implemented always in ifdefs.
Constructor taking a memory attribution token would need to be duplicated once for Cocoa and once for no-cocoa (no ifdefs).

The concept probably is useful cross-platform, so maybe it could be first-class WebKit code.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1813968</commentid>
    <comment_count>1</comment_count>
      <attachid>443927</attachid>
    <who name="Kimmo Kinnunen">kkinnunen</who>
    <bug_when>2021-11-11 02:50:26 -0800</bug_when>
    <thetext>Created attachment 443927
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1813970</commentid>
    <comment_count>2</comment_count>
      <attachid>443928</attachid>
    <who name="Kimmo Kinnunen">kkinnunen</who>
    <bug_when>2021-11-11 03:05:42 -0800</bug_when>
    <thetext>Created attachment 443928
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1813971</commentid>
    <comment_count>3</comment_count>
      <attachid>443929</attachid>
    <who name="Kimmo Kinnunen">kkinnunen</who>
    <bug_when>2021-11-11 03:07:32 -0800</bug_when>
    <thetext>Created attachment 443929
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1813972</commentid>
    <comment_count>4</comment_count>
      <attachid>443930</attachid>
    <who name="Kimmo Kinnunen">kkinnunen</who>
    <bug_when>2021-11-11 03:11:05 -0800</bug_when>
    <thetext>Created attachment 443930
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1813973</commentid>
    <comment_count>5</comment_count>
      <attachid>443931</attachid>
    <who name="Kimmo Kinnunen">kkinnunen</who>
    <bug_when>2021-11-11 03:26:27 -0800</bug_when>
    <thetext>Created attachment 443931
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1813974</commentid>
    <comment_count>6</comment_count>
      <attachid>443932</attachid>
    <who name="Kimmo Kinnunen">kkinnunen</who>
    <bug_when>2021-11-11 03:32:10 -0800</bug_when>
    <thetext>Created attachment 443932
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1814150</commentid>
    <comment_count>7</comment_count>
      <attachid>443985</attachid>
    <who name="Kimmo Kinnunen">kkinnunen</who>
    <bug_when>2021-11-11 11:59:03 -0800</bug_when>
    <thetext>Created attachment 443985
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1814358</commentid>
    <comment_count>8</comment_count>
      <attachid>444050</attachid>
    <who name="Kimmo Kinnunen">kkinnunen</who>
    <bug_when>2021-11-11 22:51:24 -0800</bug_when>
    <thetext>Created attachment 444050
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1814359</commentid>
    <comment_count>9</comment_count>
      <attachid>444051</attachid>
    <who name="Kimmo Kinnunen">kkinnunen</who>
    <bug_when>2021-11-11 23:08:23 -0800</bug_when>
    <thetext>Created attachment 444051
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1814366</commentid>
    <comment_count>10</comment_count>
      <attachid>444052</attachid>
    <who name="Kimmo Kinnunen">kkinnunen</who>
    <bug_when>2021-11-12 00:53:51 -0800</bug_when>
    <thetext>Created attachment 444052
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1815039</commentid>
    <comment_count>11</comment_count>
      <attachid>444247</attachid>
    <who name="Kimmo Kinnunen">kkinnunen</who>
    <bug_when>2021-11-15 06:22:15 -0800</bug_when>
    <thetext>Created attachment 444247
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1816363</commentid>
    <comment_count>12</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-11-18 02:24:21 -0800</bug_when>
    <thetext>&lt;rdar://problem/85541918&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1820049</commentid>
    <comment_count>13</comment_count>
      <attachid>445820</attachid>
    <who name="Kimmo Kinnunen">kkinnunen</who>
    <bug_when>2021-12-03 00:39:09 -0800</bug_when>
    <thetext>Created attachment 445820
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1820062</commentid>
    <comment_count>14</comment_count>
      <attachid>445822</attachid>
    <who name="Kimmo Kinnunen">kkinnunen</who>
    <bug_when>2021-12-03 01:35:19 -0800</bug_when>
    <thetext>Created attachment 445822
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1820108</commentid>
    <comment_count>15</comment_count>
      <attachid>445844</attachid>
    <who name="Kimmo Kinnunen">kkinnunen</who>
    <bug_when>2021-12-03 05:11:43 -0800</bug_when>
    <thetext>Created attachment 445844
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1821028</commentid>
    <comment_count>16</comment_count>
      <attachid>445844</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-12-07 07:18:01 -0800</bug_when>
    <thetext>Comment on attachment 445844
Patch

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

&gt; Source/WebCore/platform/ProcessIdentity.h:41
&gt; +class WEBCORE_EXPORT ProcessIdentity final : public ThreadSafeRefCounted&lt;ProcessIdentity&gt; {

Wrapping an integer (task_id_token_t) into a thread-safe-refcounted pointer seems overkill to me
I can understanding wanting a cross-platform wrapper for the task_id_token_t but I have trouble understanding why a simple wrapper doesn&apos;t suffice and why we need a thread-safe-refcounted pointer.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1821031</commentid>
    <comment_count>17</comment_count>
      <attachid>445844</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-12-07 07:44:22 -0800</bug_when>
    <thetext>Comment on attachment 445844
Patch

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

&gt;&gt; Source/WebCore/platform/ProcessIdentity.h:41
&gt;&gt; +class WEBCORE_EXPORT ProcessIdentity final : public ThreadSafeRefCounted&lt;ProcessIdentity&gt; {
&gt; 
&gt; Wrapping an integer (task_id_token_t) into a thread-safe-refcounted pointer seems overkill to me
&gt; I can understanding wanting a cross-platform wrapper for the task_id_token_t but I have trouble understanding why a simple wrapper doesn&apos;t suffice and why we need a thread-safe-refcounted pointer.

Note that Mach send rights are already thread-safe refcounted AFAIK (see MachSendRight copy constructor).

&gt; Source/WebCore/platform/graphics/cocoa/IOSurface.mm:491
&gt; +    task_id_token_t ownerTaskIdToken = resourceOwner ? resourceOwner-&gt;taskIdToken() : 0;

I am not sure what it does to call IOSurfaceSetOwnershipIdentity() with 0. All in all, I think I&apos;d prefer it if IOSurface::setOwnershipIdentity() took in a C++ reference. Call sites can always pass their own handle if they want to &quot;reset&quot; ownership.

&gt; Source/WebKit/GPUProcess/graphics/RemoteRenderingBackend.cpp:271
&gt; +    WTFLogAlways(&quot;DATAURL:%s&quot;, urlString.utf8().data());

Probably shouldn&apos;t be here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1821520</commentid>
    <comment_count>18</comment_count>
      <attachid>446352</attachid>
    <who name="Kimmo Kinnunen">kkinnunen</who>
    <bug_when>2021-12-08 06:04:27 -0800</bug_when>
    <thetext>Created attachment 446352
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1821538</commentid>
    <comment_count>19</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-12-08 07:16:15 -0800</bug_when>
    <thetext>EWS bubbles are red.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1821581</commentid>
    <comment_count>20</comment_count>
      <attachid>446374</attachid>
    <who name="Kimmo Kinnunen">kkinnunen</who>
    <bug_when>2021-12-08 09:08:41 -0800</bug_when>
    <thetext>Created attachment 446374
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1821599</commentid>
    <comment_count>21</comment_count>
      <attachid>446374</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-12-08 09:53:16 -0800</bug_when>
    <thetext>Comment on attachment 446374
Patch

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

&gt; Source/WebCore/platform/ProcessIdentity.h:55
&gt; +    const Handle&amp; handle() const;

Why do we need a public Handle type?

Can we just define an IPC encoder / decoder for ProcessIdentity and have clients only deal with ProcessIdentity objects (never handles?)

&gt; Source/WebKit/GPUProcess/graphics/RemoteRenderingBackend.cpp:272
&gt; +    WTFLogAlways(&quot;DATAURL:%s&quot;, urlString.utf8().data());

You still haven&apos;t removed this extra logging.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1821698</commentid>
    <comment_count>22</comment_count>
      <attachid>446406</attachid>
    <who name="Kimmo Kinnunen">kkinnunen</who>
    <bug_when>2021-12-08 12:06:32 -0800</bug_when>
    <thetext>Created attachment 446406
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1821701</commentid>
    <comment_count>23</comment_count>
    <who name="Kimmo Kinnunen">kkinnunen</who>
    <bug_when>2021-12-08 12:09:35 -0800</bug_when>
    <thetext>(In reply to Chris Dumez from comment #21)
&gt; Why do we need a public Handle type?
&gt; Can we just define an IPC encoder / decoder for ProcessIdentity and have
&gt; clients only deal with ProcessIdentity objects (never handles?)

Done.

&gt; &gt; Source/WebKit/GPUProcess/graphics/RemoteRenderingBackend.cpp:272
&gt; &gt; +    WTFLogAlways(&quot;DATAURL:%s&quot;, urlString.utf8().data());
&gt; 
&gt; You still haven&apos;t removed this extra logging.

Sorry, have been rebasing this so many times on different computers, I thought I removed it already but re-uploaded a version with the removal removed..</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1821703</commentid>
    <comment_count>24</comment_count>
      <attachid>446406</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-12-08 12:11:43 -0800</bug_when>
    <thetext>Comment on attachment 446406
Patch

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

&gt; Source/WebKit/Shared/WebCoreArgumentCoders.cpp:3237
&gt; +void ArgumentCoder&lt;ProcessIdentity&gt;::encode(Encoder&amp; encoder, const ProcessIdentity&amp; identity)

As far as I know, we don&apos;t put coders in WebCoreArgumentCoders.cpp anymore. We now add the template specializations directly on the class. See ProcessQualified.h for e.g.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1821704</commentid>
    <comment_count>25</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-12-08 12:14:07 -0800</bug_when>
    <thetext>(In reply to Chris Dumez from comment #24)
&gt; Comment on attachment 446406 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=446406&amp;action=review
&gt; 
&gt; &gt; Source/WebKit/Shared/WebCoreArgumentCoders.cpp:3237
&gt; &gt; +void ArgumentCoder&lt;ProcessIdentity&gt;::encode(Encoder&amp; encoder, const ProcessIdentity&amp; identity)
&gt; 
&gt; As far as I know, we don&apos;t put coders in WebCoreArgumentCoders.cpp anymore.
&gt; We now add the template specializations directly on the class. See
&gt; ProcessQualified.h for e.g.

The reason is that it is just nicer and easier to maintain if the class and its coders and in the same header.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1821714</commentid>
    <comment_count>26</comment_count>
    <who name="Kimmo Kinnunen">kkinnunen</who>
    <bug_when>2021-12-08 12:29:41 -0800</bug_when>
    <thetext>Cannot put that there, it&apos;s an exported class. Exported classes are not allowed to have inline member functions because potential ODR reasons?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1821718</commentid>
    <comment_count>27</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-12-08 12:32:35 -0800</bug_when>
    <thetext>(In reply to Kimmo Kinnunen from comment #26)
&gt; Cannot put that there, it&apos;s an exported class. Exported classes are not
&gt; allowed to have inline member functions because potential ODR reasons?

Then don&apos;t export the class and only export the non inline functions?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1821730</commentid>
    <comment_count>28</comment_count>
      <attachid>446413</attachid>
    <who name="Kimmo Kinnunen">kkinnunen</who>
    <bug_when>2021-12-08 12:48:03 -0800</bug_when>
    <thetext>Created attachment 446413
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1821752</commentid>
    <comment_count>29</comment_count>
      <attachid>446413</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-12-08 13:16:40 -0800</bug_when>
    <thetext>Comment on attachment 446413
Patch

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

&gt; Source/WebCore/platform/ProcessIdentity.cpp:49
&gt; +ProcessIdentity::ProcessIdentity() = default;

Do we really still need to go out of our way to un-inline all of these? Can&apos;t we let the compiler generate all those and omit them here and in the header?

&gt; Source/WebCore/platform/ProcessIdentity.cpp:62
&gt; +task_id_token_t ProcessIdentity::taskIdToken() const

We can probably inline this too?

&gt; Source/WebCore/platform/ProcessIdentity.h:49
&gt; +    WEBCORE_EXPORT ProcessIdentity();

Same comment as above.

&gt; Source/WebCore/platform/graphics/RemoteVideoSample.h:53
&gt; +    void setOwnershipIdentity(const ProcessIdentity&amp; resourceOwner);

I think can omit the parameter name.

&gt; Source/WebCore/platform/graphics/cocoa/GraphicsContextGLCocoa.mm:210
&gt; +    m_resourceOwner = ProcessIdentity { WTFMove(resourceOwner) };

Doesn&apos;t `m_resourceOwner = WTFMove(resourceOwner);` work?

&gt; Source/WebCore/platform/graphics/cocoa/IOSurface.h:163
&gt; +    WEBCORE_EXPORT void setOwnershipIdentity(const ProcessIdentity&amp; resourceOwner);

We can probably omit the parameter name.

&gt; Source/WebCore/platform/graphics/cocoa/IOSurface.mm:490
&gt; +    ASSERT(resourceOwner);

Shouldn&apos;t the assertion be inside the #if check?

&gt; Source/WebKit/GPUProcess/webrtc/LibWebRTCCodecsProxy.mm:80
&gt; +        resourceOwner = gpuConnectionToWebProcess.webProcessIdentity(),

now that there is no longer any #if, we should probably put all the lambda captures on a single line.

&gt; Source/WebKit/WebProcess/GPU/graphics/cocoa/ImageBufferShareableMappedIOSurfaceBackend.h:53
&gt; +    void setOwnershipIdentity(const WebCore::ProcessIdentity&amp; resourceOwner);

We can probably omit the parameter name.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1821753</commentid>
    <comment_count>30</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-12-08 13:17:59 -0800</bug_when>
    <thetext>Also, some EWS bubbles seem to be red.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1822022</commentid>
    <comment_count>31</comment_count>
      <attachid>446505</attachid>
    <who name="Kimmo Kinnunen">kkinnunen</who>
    <bug_when>2021-12-09 00:35:58 -0800</bug_when>
    <thetext>Created attachment 446505
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1822045</commentid>
    <comment_count>32</comment_count>
      <attachid>446510</attachid>
    <who name="Kimmo Kinnunen">kkinnunen</who>
    <bug_when>2021-12-09 02:47:29 -0800</bug_when>
    <thetext>Created attachment 446510
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1822049</commentid>
    <comment_count>33</comment_count>
      <attachid>446512</attachid>
    <who name="Kimmo Kinnunen">kkinnunen</who>
    <bug_when>2021-12-09 03:08:40 -0800</bug_when>
    <thetext>Created attachment 446512
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1822118</commentid>
    <comment_count>34</comment_count>
      <attachid>446546</attachid>
    <who name="Kimmo Kinnunen">kkinnunen</who>
    <bug_when>2021-12-09 06:59:41 -0800</bug_when>
    <thetext>Created attachment 446546
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1822244</commentid>
    <comment_count>35</comment_count>
      <attachid>446581</attachid>
    <who name="Kimmo Kinnunen">kkinnunen</who>
    <bug_when>2021-12-09 11:56:42 -0800</bug_when>
    <thetext>Created attachment 446581
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1822534</commentid>
    <comment_count>36</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-12-09 23:15:35 -0800</bug_when>
    <thetext>ChangeLog entry in Tools/ChangeLog contains OOPS!.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1822535</commentid>
    <comment_count>37</comment_count>
      <attachid>446669</attachid>
    <who name="Kimmo Kinnunen">kkinnunen</who>
    <bug_when>2021-12-09 23:17:24 -0800</bug_when>
    <thetext>Created attachment 446669
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1822560</commentid>
    <comment_count>38</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-12-10 00:25:43 -0800</bug_when>
    <thetext>Committed r286838 (245071@main): &lt;https://commits.webkit.org/245071@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 446669.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>443927</attachid>
            <date>2021-11-11 02:50:26 -0800</date>
            <delta_ts>2021-11-11 03:08:34 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-232988-20211111125024.patch</filename>
            <type>text/plain</type>
            <size>54509</size>
            <attacher name="Kimmo Kinnunen">kkinnunen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg1NjIyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzEzMjQzOGVjMDliZTE4
MTE0NjI5NmIyYmYyMmViYWRlZWIxY2VkNi4uYmVlZmIyMDQ5MzlkYzI0ZGVhMzJjNzYyMmYyZDE2
NGNmYTUyYzRlZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU3IEBACisyMDIxLTExLTExICBLaW1t
byBLaW5udW5lbiAgPGtraW5udW5lbkBhcHBsZS5jb20+CisKKyAgICAgICAgSU9TdXJmYWNlIG1l
bW9yeSBhdHRyaWJ1dGlvbiBpcyBoYXJkIHRvIHVzZSBpbiBjb25zdHJ1Y3RvcnMKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMjk4OAorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBXZWJDb3JlOjpQcm9j
ZXNzSWRlbnRpdHkgdHlwZSB0aGF0IGNhbiBiZSB1c2VkIHRvIGNvbW11bmljYXRlIG1lbW9yeSBh
dHRyaWJ1dGlvbi4KKyAgICAgICAgRm9yIG5vbi1Db2NvYSBwb3J0cywgdGhpcyBpcyBudWxscHRy
LgorICAgICAgICBUaGlzIGlzIHVzZWQgaW4gV2ViQ29yZSB0byBzZXQgdGhlIG1lbW9yeSBhdHRy
aWJ1dGlvbiBvZiBJT1N1cmZhY2UgYW5kIG9iamVjdHMKKyAgICAgICAgdGhhdCBob2xkIElPU3Vy
ZmFjZXMuCisgICAgICAgIFRoaXMgaXMgaW5zdGFudGlhdGVkIGluIFdlYktpdC4KKyAgICAgICAg
Q3VycmVudGx5IHRoZSBvbmx5IHVzZWZ1bCB3YXkgdG8gaW5zdGFudGlhdGUgUHJvY2Vzc0lkZW50
aXR5IGlzIGJ5IHJlY2VpdmluZworICAgICAgICB0aGUgUHJvY2Vzc0lkZW50aXR5OjpIYW5kbGUg
YXMgYSBtZXNzYWdlIGFuZCBjcmVhdGUgaXQgdGhpcyB3YXkgZm9yIHRoZQorICAgICAgICBzZW5k
ZXIgcHJvY2Vzcy4KKworICAgICAgICBObyBuZXcgdGVzdHMsIHJlZmFjdG9yLgorCisgICAgICAg
ICogSGVhZGVycy5jbWFrZToKKyAgICAgICAgKiBTb3VyY2VzLnR4dDoKKyAgICAgICAgKiBXZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogcGxhdGZvcm0vTG9nZ2lu
Zy5oOgorICAgICAgICBBZGQgV2ViQ29yZSBQcm9jZXNzIGxvZyB0YWcgc2luY2UgdGhlIGNvZGUg
bW92ZWQgZnJvbSBXZWJLaXQgdG8gUHJvY2Vzc0lkZW50aXR5CisgICAgICAgIHVzZWQgdGhhdCB0
YWcgdG8gbG9nLgorICAgICAgICAqIHBsYXRmb3JtL1Byb2Nlc3NJZGVudGl0eS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpQcm9jZXNzSWRlbnRpdHk6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3Jl
OjpQcm9jZXNzSWRlbnRpdHk6OlByb2Nlc3NJZGVudGl0eSk6CisgICAgICAgIChXZWJDb3JlOjpQ
cm9jZXNzSWRlbnRpdHk6OmhhbmRsZUZvckN1cnJlbnRQcm9jZXNzKToKKyAgICAgICAgKFdlYkNv
cmU6OlByb2Nlc3NJZGVudGl0eTo6aGFuZGxlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlBy
b2Nlc3NJZGVudGl0eTo6dGFza0lkVG9rZW4gY29uc3QpOgorICAgICAgICAqIHBsYXRmb3JtL1By
b2Nlc3NJZGVudGl0eS5oOgorICAgICAgICBBZGQgdGhlIFByb2Nlc3NJZGVudGl0eSB0eXBlIHRo
YXQgY2FuIGJlIHVzZWQgdG8gY29tbXVuaWNhdGUgbWVtb3J5IGF0dHJpYnV0aW9uLgorCisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvUmVtb3RlVmlkZW9TYW1wbGUuaDoKKyAgICAgICAgKFdl
YkNvcmU6OlJlbW90ZVZpZGVvU2FtcGxlOjpzZXRPd25lcnNoaXBJZGVudGl0eSk6CisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvY2cvSW1hZ2VCdWZmZXJVdGlsaXRpZXNDRy5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjplbmNvZGUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NvY29h
L0dyYXBoaWNzQ29udGV4dEdMT3BlbkdMQ29jb2EubW06CisgICAgICAgIChXZWJDb3JlOjpHcmFw
aGljc0NvbnRleHRHTE9wZW5HTDo6R3JhcGhpY3NDb250ZXh0R0xPcGVuR0wpOgorICAgICAgICAo
V2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0R0xPcGVuR0w6OmFsbG9jYXRlQW5kQmluZERpc3BsYXlC
dWZmZXJCYWNraW5nKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9JT1N1cmZh
Y2UuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9JT1N1cmZhY2UubW06Cisg
ICAgICAgIChXZWJDb3JlOjpJT1N1cmZhY2U6OnNldE93bmVyc2hpcElkZW50aXR5KToKKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9XZWJQcm9jZXNzR3JhcGhpY3NDb250ZXh0R0xP
cGVuR0xDb2NvYS5tbToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR3JhcGhp
Y3NDb250ZXh0R0xPcGVuR0wuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAv
R3JhcGhpY3NDb250ZXh0R0xUZXh0dXJlTWFwcGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okdy
YXBoaWNzQ29udGV4dEdMT3BlbkdMOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhp
Y3NDb250ZXh0R0xPcGVuR0w6OkdyYXBoaWNzQ29udGV4dEdMT3BlbkdMKToKKyAgICAgICAgQWRk
IGFuIGV4YW1wbGUgdXNlIHdoZXJlIHRoZSBjb25zdHJ1Y3RvciB0YWtlcyB0aGUgbWVtb3J5IGF0
dHJpYnV0aW9uIHRva2VuLgorICAgICAgICBUaGlzIG1heSBiZSBuZWVkZWQgaW4gdGhlIGZ1dHVy
ZSB3aGVuIHRoZSB0b2tlbiBpcyB1c2VkIGFzIGEgcGFyYW1ldGVyIGluCisgICAgICAgIHRoZSBB
TkdMRSBjb250ZXh0IGNyZWF0aW9uLgorICAgICAgICBVc2UgdGhlIHRva2VuIGluIGNyZWF0aW5n
IHRoZSBJT1N1cmZhY2UuIFRoaXMgZml4ZXMgYSBidWcgd2hlcmUgV2ViR0wKKyAgICAgICAgYmFj
ayBidWZmZXJzIHdvdWxkIG5vdCBiZSBhdHRyaWJ1dGVkIHVudGlsIHRoZXkgd2VyZSBzZW50IHRv
IFdQLgorCiAyMDIxLTExLTExICBBbnR0aSBLb2l2aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KIAog
ICAgICAgICBVc2UgbmFycm93ZXIgdHlwZXMgZm9yIHN0eWxlIHNjb3BlIG9yZGluYWwgYW5kIGNh
c2NhZGUgbGF5ZXIgcHJpb3JpdHkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9n
IGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggNGUxNTE5NmQ4Y2ZkZDc0MDI0YmE3YWRm
NmNmZDU4N2VjZDVkZDQ4Mi4uNmEyODQwOWVkZjA2Zjk2ZDM0OTljMzA1NTNiZjViNmJlYjBlMGRj
MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktp
dC9DaGFuZ2VMb2cKQEAgLTEsMyArMSw1NCBAQAorMjAyMS0xMS0xMSAgS2ltbW8gS2lubnVuZW4g
IDxra2lubnVuZW5AYXBwbGUuY29tPgorCisgICAgICAgIElPU3VyZmFjZSBtZW1vcnkgYXR0cmli
dXRpb24gaXMgaGFyZCB0byB1c2UgaW4gY29uc3RydWN0b3JzCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzI5ODgKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZW1vdmUgaWZkZWZzIGFuZCBkaXJlY3QgdXNl
IG9mIHRhc2tfaWRfdG9rZW5fdC4KKyAgICAgICAgSW5zdGVhZCwgdXNlIFdlYkNvcmU6OlByb2Nl
c3NJZGVudGlmaWVyLiBUaGlzIHdheSB0aGUKKyAgICAgICAgY3Jvc3MtcGxhdGZvcm0gY29kZSBp
cyBlYXNpZXIgdG8gYXV0aG9yLgorCisgICAgICAgICogR1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9u
VG9XZWJQcm9jZXNzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6R1BVQ29ubmVjdGlvblRvV2ViUHJv
Y2Vzczo6R1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcyk6CisgICAgICAgICogR1BVUHJvY2Vzcy9H
UFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmg6CisgICAgICAgIChXZWJLaXQ6OkdQVUNvbm5lY3Rp
b25Ub1dlYlByb2Nlc3M6OndlYlByb2Nlc3NJZGVudGl0eSBjb25zdCk6CisgICAgICAgIChXZWJL
aXQ6OkdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OndlYlByb2Nlc3NJZGVudGl0eVRva2VuIGNv
bnN0KTogRGVsZXRlZC4KKyAgICAgICAgKiBHUFVQcm9jZXNzL2dyYXBoaWNzL0dQVVByb2Nlc3NH
cmFwaGljc0NvbnRleHRHTC5oOgorICAgICAgICAqIEdQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3Rl
R3JhcGhpY3NDb250ZXh0R0xDb2NvYS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUdyYXBo
aWNzQ29udGV4dEdMQ29jb2E6OlJlbW90ZUdyYXBoaWNzQ29udGV4dEdMQ29jb2EpOgorICAgICAg
ICAoV2ViS2l0OjpSZW1vdGVHcmFwaGljc0NvbnRleHRHTENvY29hOjpwbGF0Zm9ybVdvcmtRdWV1
ZUluaXRpYWxpemUpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVHcmFwaGljc0NvbnRleHRHTENv
Y29hOjpwcmVwYXJlRm9yRGlzcGxheSk6CisgICAgICAgICogR1BVUHJvY2Vzcy9ncmFwaGljcy9S
ZW1vdGVJbWFnZUJ1ZmZlci5oOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVJbWFnZUJ1ZmZlcjo6
c2V0T3duZXJzaGlwSWRlbnRpdHkpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVJbWFnZUJ1ZmZl
cjo6c2V0UHJvY2Vzc093bmVyc2hpcCk6IERlbGV0ZWQuCisgICAgICAgICogR1BVUHJvY2Vzcy9n
cmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmNwcDoKKyAgICAgICAgKFdlYktpdDo6UmVt
b3RlUmVuZGVyaW5nQmFja2VuZDo6UmVtb3RlUmVuZGVyaW5nQmFja2VuZCk6CisgICAgICAgIChX
ZWJLaXQ6OlJlbW90ZVJlbmRlcmluZ0JhY2tlbmQ6OmNyZWF0ZUltYWdlQnVmZmVyV2l0aFF1YWxp
ZmllZElkZW50aWZpZXIpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZW5kZXJpbmdCYWNrZW5k
OjpnZXREYXRhVVJMRm9ySW1hZ2VCdWZmZXJXaXRoUXVhbGlmaWVkSWRlbnRpZmllcik6CisgICAg
ICAgICogR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmg6CisgICAg
ICAgICogR1BVUHJvY2Vzcy93ZWJydGMvTGliV2ViUlRDQ29kZWNzUHJveHkubW06CisgICAgICAg
IChXZWJLaXQ6OkZ1bmN0aW9uPHZvaWQpOgorICAgICAgICAqIFNoYXJlZC9HUFVQcm9jZXNzQ29u
bmVjdGlvblBhcmFtZXRlcnMuaDoKKyAgICAgICAgKFdlYktpdDo6R1BVUHJvY2Vzc0Nvbm5lY3Rp
b25QYXJhbWV0ZXJzOjplbmNvZGUgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpHUFVQcm9jZXNz
Q29ubmVjdGlvblBhcmFtZXRlcnM6OmRlY29kZSk6CisgICAgICAgICogU2hhcmVkL1dlYkNvcmVB
cmd1bWVudENvZGVycy5jcHA6CisgICAgICAgICogU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVy
cy5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclBy
b3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6
U291cmNlUHJveHk6OlNvdXJjZVByb3h5KToKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhQ2Fw
dHVyZU1hbmFnZXJQcm94eTo6U291cmNlUHJveHk6OnNldFNob3VsZEFwcGx5Um90YXRpb24pOgor
ICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OjpjcmVhdGVNZWRp
YVNvdXJjZUZvckNhcHR1cmVEZXZpY2VXaXRoQ29uc3RyYWludHMpOgorICAgICAgICAoV2ViS2l0
OjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OjpjbG9uZSk6CisgICAgICAgIChXZWJLaXQ6
OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6OlNvdXJjZVByb3h5OjpzZXRXZWJQcm9jZXNz
SWRlbnRpdHlUb2tlbik6IERlbGV0ZWQuCisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL1VzZXJN
ZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkuaDoKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhQ2Fw
dHVyZU1hbmFnZXJQcm94eTo6Q29ubmVjdGlvblByb3h5OjpyZXNvdXJjZU93bmVyIGNvbnN0KToK
KyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6Q29ubmVjdGlv
blByb3h5Ojp3ZWJQcm9jZXNzSWRlbnRpdHlUb2tlbiBjb25zdCk6IERlbGV0ZWQuCisgICAgICAg
ICogV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvY29jb2EvSW1hZ2VCdWZmZXJTaGFyZWFibGVNYXBw
ZWRJT1N1cmZhY2VCYWNrZW5kLmNwcDoKKyAgICAgICAgKFdlYktpdDo6SW1hZ2VCdWZmZXJTaGFy
ZWFibGVNYXBwZWRJT1N1cmZhY2VCYWNrZW5kOjpzZXRPd25lcnNoaXBJZGVudGl0eSk6CisgICAg
ICAgIChXZWJLaXQ6OkltYWdlQnVmZmVyU2hhcmVhYmxlTWFwcGVkSU9TdXJmYWNlQmFja2VuZDo6
c2V0UHJvY2Vzc093bmVyc2hpcCk6IERlbGV0ZWQuCisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUv
Z3JhcGhpY3MvY29jb2EvSW1hZ2VCdWZmZXJTaGFyZWFibGVNYXBwZWRJT1N1cmZhY2VCYWNrZW5k
Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9jb2NvYS9XZWJQcm9jZXNzQ29jb2EubW06CisgICAg
ICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OnBsYXRmb3JtSW5pdGlhbGl6ZUdQVVByb2Nlc3NDb25u
ZWN0aW9uUGFyYW1ldGVycyk6CiAyMDIxLTExLTEwICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBs
ZS5jb20+CiAKICAgICAgICAgV2Ugc2hvdWxkIG5vdCBraWxsIGFsbCBXZWJDb250ZW50IHByb2Nl
c3NlcyB3aGVuZXZlciB0aGUgV2ViQXV0aG4gcHJvY2VzcyBjcmFzaGVzCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlIGIvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFr
ZQppbmRleCAzNjM1ZmM1YmNlOWVhZDQ5MGM4ZDk4NTRmZThlNWZkZTI5Njc0ZDIwLi44MWQ2ZjZh
YTMzMzk0NmIxN2M2YjJkYmQxZGZhMmQ1ZDgwMzYxMWJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9IZWFkZXJzLmNtYWtlCisrKyBiL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKQEAg
LTExNDAsNiArMTE0MCw3IEBAIHNldChXZWJDb3JlX1BSSVZBVEVfRlJBTUVXT1JLX0hFQURFUlMK
ICAgICBwbGF0Zm9ybS9Qb3B1cE1lbnVDbGllbnQuaAogICAgIHBsYXRmb3JtL1BvcHVwTWVudVN0
eWxlLmgKICAgICBwbGF0Zm9ybS9Qcm9jZXNzSWRlbnRpZmllci5oCisgICAgcGxhdGZvcm0vUHJv
Y2Vzc0lkZW50aXR5LmgKICAgICBwbGF0Zm9ybS9Qcm9jZXNzUXVhbGlmaWVkLmgKICAgICBwbGF0
Zm9ybS9Qcm9taXNlZEF0dGFjaG1lbnRJbmZvLmgKICAgICBwbGF0Zm9ybS9QdWJsaWNTdWZmaXgu
aApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQgYi9Tb3VyY2UvV2ViQ29y
ZS9Tb3VyY2VzLnR4dAppbmRleCA4YTExNGExMjM4ZDRmNjgxODg0NmYyMWMyZGIwYWMwMzAzYjFl
YjI5Li5hNWJiMjhjNmY3NTE2YWY2ZjhkM2VhYmRmZGEyYmVmZmE0ZTUyM2RlIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2Vz
LnR4dApAQCAtMTg3MCw2ICsxODcwLDcgQEAgcGxhdGZvcm0vUGxhdGZvcm1TdHJhdGVnaWVzLmNw
cAogcGxhdGZvcm0vUGxhdGZvcm1XaGVlbEV2ZW50LmNwcAogcGxhdGZvcm0vUHJldmlld0NvbnZl
cnRlci5jcHAKIHBsYXRmb3JtL1Byb2Nlc3NJZGVudGlmaWVyLmNwcAorcGxhdGZvcm0vUHJvY2Vz
c0lkZW50aXR5LmNwcAogcGxhdGZvcm0vUmVmZXJyZXJQb2xpY3kuY3BwCiBwbGF0Zm9ybS9SZW1v
dGVDb21tYW5kTGlzdGVuZXIuY3BwCiBwbGF0Zm9ybS9SdW50aW1lQXBwbGljYXRpb25DaGVja3Mu
Y3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2oKaW5kZXggMjk5YTg4NjYwZjFlYjAyMmNiZDhiNGVkYzIzMWIyMjkwOWJkYTE0NC4uMTIzZjg0
NjM4MzIxMTQ0ZDE2YzM5NTVmMmQ1MzgyNDQ3MGVhYzdhNSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMjM2Myw2ICsyMzYzLDcg
QEAKIAkJN0I3MzExRkIyNUMwOTJCNzAwM0IyNzk2IC8qIFNjb3BlZEhpZ2hQZXJmb3JtYW5jZUdQ
VVJlcXVlc3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDdCNzMxMUZBMjVDMDkyQjcwMDNCMjc5NiAvKiBTY29wZWRIaWdoUGVyZm9ybWFuY2VHUFVSZXF1
ZXN0LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJ
N0I4RUQ1RjAyNkYwQzEzRDAwOEFDMDIzIC8qIENWVXRpbGl0aWVzLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3QjhFRDVFRDI2RjBDMTIzMDA4QUMwMjMg
LyogQ1ZVdGlsaXRpZXMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OwogCQk3QjkwNDE3MDI1NTAxMTQyMDA2RUVCOEMgLyogUmVtb3RlR3JhcGhpY3NDb250
ZXh0R0xQcm94eUJhc2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDdCOTA0MTZFMjU1MDExMDkwMDZFRUI4QyAvKiBSZW1vdGVHcmFwaGljc0NvbnRleHRH
TFByb3h5QmFzZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CisJCTdCQTdDNkMzMjczQkY2MkMwMDI5REZCRSAvKiBQcm9jZXNzSWRlbnRpdHkuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdCQTdDNkMxMjczQkY2
MkIwMDI5REZCRSAvKiBQcm9jZXNzSWRlbnRpdHkuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRF
UyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk3QkIzNEE0ODI1Mzc3NkNBMDAwMjlEMDggLyogR3Jh
cGhpY3NDb250ZXh0R0xJbWFnZUV4dHJhY3Rvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gN0JCMzRBNDUyNTM3NzZDNjAwMDI5RDA4IC8qIEdyYXBoaWNz
Q29udGV4dEdMSW1hZ2VFeHRyYWN0b3IuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQ
cml2YXRlLCApOyB9OyB9OwogCQk3QkI2ODBCQTI1QkExQkU0MDAyQjg3MzggLyogR3JhcGhpY3ND
aGVja3NNYWMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDdCQjY4MEI4MjVCQTFCRTQwMDJCODczOCAvKiBHcmFwaGljc0NoZWNrc01hYy5oICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTdCRTc0MjczODFGQTkw
NkZCQjRGMEYyQyAvKiBKU1NWR0dyYXBoaWNzRWxlbWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTUwQzRDMDJCRUQ4OTM2RjgxOEUyRjk5IC8qIEpT
U1ZHR3JhcGhpY3NFbGVtZW50LmggKi87IH07CkBAIC0xMTAyMSw2ICsxMTAyMiw4IEBACiAJCTdC
OEVENUVEMjZGMEMxMjMwMDhBQzAyMyAvKiBDVlV0aWxpdGllcy5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBDVlV0aWxpdGllcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk3QjhFRDVFRjI2RjBDMTIzMDA4QUMwMjMgLyogQ1ZVdGlsaXRpZXMubW0gKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBDVlV0aWxpdGllcy5tbTsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0I5MDQxNkUyNTUwMTEwOTAwNkVFQjhDIC8qIFJlbW90ZUdy
YXBoaWNzQ29udGV4dEdMUHJveHlCYXNlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbW90ZUdyYXBoaWNz
Q29udGV4dEdMUHJveHlCYXNlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTdCQTdD
NkJGMjczQkY2MkIwMDI5REZCRSAvKiBQcm9jZXNzSWRlbnRpdHkuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUHJvY2Vzc0lkZW50aXR5LmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJN0JBN0M2QzEyNzNCRjYyQjAwMjlERkJFIC8qIFByb2Nlc3NJZGVu
dGl0eS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQcm9jZXNzSWRlbnRpdHku
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0JCMzRBMTYyNTM0NUNCMjAwMDI5RDA4
IC8qIEFOR0xFVXRpbGl0aWVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEFO
R0xFVXRpbGl0aWVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdCQjM0QTQ1MjUz
Nzc2QzYwMDAyOUQwOCAvKiBHcmFwaGljc0NvbnRleHRHTEltYWdlRXh0cmFjdG9yLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IEdyYXBoaWNzQ29udGV4dEdMSW1hZ2VFeHRyYWN0b3IuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJN0JCMzRBNDcyNTM3NzZDNzAwMDI5RDA4IC8qIEdyYXBoaWNzQ29u
dGV4dEdMSW1hZ2VFeHRyYWN0b3IuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gR3JhcGhpY3NDb250
ZXh0R0xJbWFnZUV4dHJhY3Rvci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0x
ODkyMCwxMSArMTg5MjMsMTEgQEAKIAkJMUE1NjlDQzQwRDdFMkI2MDAwN0MzOTgzIC8qIGJyaWRn
ZSAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCi0JCQkJNTlCNTk3
NzExMTA4NjU1NjAwNzE1OUU4IC8qIGpzYyAqLywKLQkJCQkxQTU2OUNFMjBEN0UyQjgyMDA3QzM5
ODMgLyogb2JqYyAqLywKIAkJCQk1OTlFNzU4RjExMDU1QTFGMDBEOTA0RkEgLyogQnJpZGdlLmgg
Ki8sCiAJCQkJMUE3MUQ1NzkwRjMzODE5MDAwRjlDRTRFIC8qIElkZW50aWZpZXJSZXAuY3BwICov
LAogCQkJCTFBNzFENTdBMEYzMzgxOTAwMEY5Q0U0RSAvKiBJZGVudGlmaWVyUmVwLmggKi8sCisJ
CQkJNTlCNTk3NzExMTA4NjU1NjAwNzE1OUU4IC8qIGpzYyAqLywKKwkJCQkxQTU2OUNFMjBEN0Uy
QjgyMDA3QzM5ODMgLyogb2JqYyAqLywKIAkJCQkxQTU2OUNFRjBEN0UyQjgyMDA3QzM5ODMgLyog
cnVudGltZV9hcnJheS5jcHAgKi8sCiAJCQkJMUE1NjlDRjAwRDdFMkI4MjAwN0MzOTgzIC8qIHJ1
bnRpbWVfYXJyYXkuaCAqLywKIAkJCQkxQTU2OUNGMTBEN0UyQjgyMDA3QzM5ODMgLyogcnVudGlt
ZV9tZXRob2QuY3BwICovLApAQCAtMjg5OTAsNiArMjg5OTMsOCBAQAogCQkJCUExQURBRjdDMjM2
MEZEM0UwMDlDQjc3NiAvKiBQcmV2aWV3Q29udmVydGVyUHJvdmlkZXIuaCAqLywKIAkJCQk1MUY2
NDVEMjFGRUNEQkM4MDBCNTRERUQgLyogUHJvY2Vzc0lkZW50aWZpZXIuY3BwICovLAogCQkJCTUx
RjY0NUQzMUZFQ0RCQzgwMEI1NERFRCAvKiBQcm9jZXNzSWRlbnRpZmllci5oICovLAorCQkJCTdC
QTdDNkJGMjczQkY2MkIwMDI5REZCRSAvKiBQcm9jZXNzSWRlbnRpdHkuY3BwICovLAorCQkJCTdC
QTdDNkMxMjczQkY2MkIwMDI5REZCRSAvKiBQcm9jZXNzSWRlbnRpdHkuaCAqLywKIAkJCQkxQ0M1
NEFGQjI3MEY5MkRBMDA1QkY4QkUgLyogUHJvY2Vzc1F1YWxpZmllZC5oICovLAogCQkJCUY0N0E2
MzNDMUZGNkZENTAwMDgxQjNDQyAvKiBQcm9taXNlZEF0dGFjaG1lbnRJbmZvLmggKi8sCiAJCQkJ
MDA4MUZFRkQxNkIwQTI0NDAwOEFBQTdBIC8qIFB1YmxpY1N1ZmZpeC5oICovLApAQCAtMzU0NzIs
NiArMzU0NzcsNyBAQAogCQkJCUI3MUZFNkRGMTEwOTFDQjMwMERBRUY3NyAvKiBQcmludENvbnRl
eHQuaCBpbiBIZWFkZXJzICovLAogCQkJCTZCMEEwN0YyMjFGQTRCNUMwMEQ1NzM5MSAvKiBQcml2
YXRlQ2xpY2tNZWFzdXJlbWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTFGNjQ1RDUxRkVDREJD
RTAwQjU0REVEIC8qIFByb2Nlc3NJZGVudGlmaWVyLmggaW4gSGVhZGVycyAqLywKKwkJCQk3QkE3
QzZDMzI3M0JGNjJDMDAyOURGQkUgLyogUHJvY2Vzc0lkZW50aXR5LmggaW4gSGVhZGVycyAqLywK
IAkJCQlBOEVBN0VCQzBBMTk0NUQwMDBBOEVGNUYgLyogUHJvY2Vzc2luZ0luc3RydWN0aW9uLmgg
aW4gSGVhZGVycyAqLywKIAkJCQkxQ0M1NEFGRTI3MEY5NkFFMDA1QkY4QkUgLyogUHJvY2Vzc1F1
YWxpZmllZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTQyMDUwMTcyMTQxOTAxQjAwNjZFRjNCIC8q
IFByb2Nlc3NXYXJtaW5nLmggaW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL0xvZ2dpbmcuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xvZ2dpbmcu
aAppbmRleCAzZmJlNDE3YmU5ODFiNzVlNzc5ZGUyMzhmYzRiZTA1YTZkNzMwZmFhLi5kYzBmNTA5
OGI4N2YxODQ1NTI1YmUzYzBiYTQxZjc2NzViMTQwNDdmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9Mb2dnaW5nLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTG9n
Z2luZy5oCkBAIC05NCw2ICs5NCw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICBNKFBsdWdp
bnMpIFwKICAgICBNKFBvcHVwQmxvY2tpbmcpIFwKICAgICBNKFByaXZhdGVDbGlja01lYXN1cmVt
ZW50KSBcCisgICAgTShQcm9jZXNzKSBcCiAgICAgTShQcm9ncmVzcykgXAogICAgIE0oUmVtb3Rl
SW5zcGVjdG9yKSBcCiAgICAgTShSZXF1ZXN0QW5pbWF0aW9uRnJhbWUpIFwKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Byb2Nlc3NJZGVudGl0eS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9Qcm9jZXNzSWRlbnRpdHkuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmFhNmM3ZWVhYjAx
ZDMyNDNiMmI0NWE2M2M1NjA0NGNmYzU4MTcxZGEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9Qcm9jZXNzSWRlbnRpdHkuY3BwCkBAIC0wLDAgKzEsNzMgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBg
YEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRS
SUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29u
ZmlnLmgiCisjaW5jbHVkZSAiUHJvY2Vzc0lkZW50aXR5LmgiCisKKyNpbmNsdWRlICJMb2dnaW5n
LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworUmVmUHRyPFByb2Nlc3NJZGVudGl0eT4gUHJv
Y2Vzc0lkZW50aXR5OjpjcmVhdGUoSGFuZGxlJiYgaGFuZGxlKQoreworI2lmIEhBVkUoVEFTS19J
REVOVElUWV9UT0tFTikKKyAgICByZXR1cm4gYWRvcHRSZWYobmV3IFByb2Nlc3NJZGVudGl0eShX
VEZNb3ZlKGhhbmRsZSkpKTsKKyNlbHNlCisgICAgcmV0dXJuIG51bGxwdHI7CisjZW5kaWYKK30K
KworUHJvY2Vzc0lkZW50aXR5OjpQcm9jZXNzSWRlbnRpdHkoSGFuZGxlJiYgaGFuZGxlKQorICAg
IDogbV9oYW5kbGUoV1RGTW92ZShoYW5kbGUpKQoreworfQorCitQcm9jZXNzSWRlbnRpdHk6Okhh
bmRsZSBQcm9jZXNzSWRlbnRpdHk6OmhhbmRsZUZvckN1cnJlbnRQcm9jZXNzKCkKK3sKKyAgICBQ
cm9jZXNzSWRlbnRpdHk6OkhhbmRsZSByZXN1bHQ7CisjaWYgSEFWRShUQVNLX0lERU5USVRZX1RP
S0VOKQorICAgIHRhc2tfaWRfdG9rZW5fdCBpZGVudGl0eVRva2VuOworICAgIGtlcm5fcmV0dXJu
X3Qga3IgPSB0YXNrX2NyZWF0ZV9pZGVudGl0eV90b2tlbihtYWNoX3Rhc2tfc2VsZigpLCAmaWRl
bnRpdHlUb2tlbik7CisgICAgaWYgKGtyID09IEtFUk5fU1VDQ0VTUykKKyAgICAgICAgcmVzdWx0
ID0gTWFjaFNlbmRSaWdodDo6YWRvcHQoaWRlbnRpdHlUb2tlbik7CisgICAgZWxzZQorICAgICAg
ICBSRUxFQVNFX0xPR19FUlJPUihQcm9jZXNzLCAidGFza19jcmVhdGVfaWRlbnRpdHlfdG9rZW4o
KSBmYWlsZWQ6ICV7cHJpdmF0ZX1zICgleCkiLCBtYWNoX2Vycm9yX3N0cmluZyhrciksIGtyKTsK
KyNlbmRpZgorICAgIHJldHVybiByZXN1bHQ7Cit9CisKK2NvbnN0IFByb2Nlc3NJZGVudGl0eTo6
SGFuZGxlJiBQcm9jZXNzSWRlbnRpdHk6OmhhbmRsZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1f
aGFuZGxlOworfQorCisjaWYgSEFWRShUQVNLX0lERU5USVRZX1RPS0VOKQordGFza19pZF90b2tl
bl90IFByb2Nlc3NJZGVudGl0eTo6dGFza0lkVG9rZW4oKSBjb25zdAoreworICAgIHJldHVybiBt
X2hhbmRsZS5zZW5kUmlnaHQoKTsKK30KKyNlbmRpZgorCit9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9Qcm9jZXNzSWRlbnRpdHkuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL1Byb2Nlc3NJZGVudGl0eS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmVjMjIxMTFkOWMxNDNjNGM4YTk3ZTA1
YWNlYTU1NzA1ODYwODM2ODgKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9Qcm9jZXNzSWRlbnRpdHkuaApAQCAtMCwwICsxLDYxIEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBB
TlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
ICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVY
RU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlIDx3
dGYvVGhyZWFkU2FmZVJlZkNvdW50ZWQuaD4KKworI2lmIEhBVkUoVEFTS19JREVOVElUWV9UT0tF
TikKKyNpbmNsdWRlIDx3dGYvTWFjaFNlbmRSaWdodC5oPgorI2Vsc2UKKyNpbmNsdWRlIDxtb25v
c3RhdGU+CisjZW5kaWYKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCisvLyBPYmplY3QgdG8gYWNj
ZXNzIHByb29mIG9mIHByb2Nlc3MgaWRlbnRpdHkuCisvLyBQcm9jZXNzSWRlbnRpZmllciBpZGVu
dGlmaWVzIGEgcHJvY2Vzcy4KKy8vIFByb2Nlc3NJZGVudGl0eSBncmFudHMgYWNjZXNzIHRvIHRo
ZSBpZGVudGl0eS4KK2NsYXNzIFdFQkNPUkVfRVhQT1JUIFByb2Nlc3NJZGVudGl0eSBmaW5hbCA6
IHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRlZDxQcm9jZXNzSWRlbnRpdHk+IHsKK3B1YmxpYzoK
KyNpZiBIQVZFKFRBU0tfSURFTlRJVFlfVE9LRU4pCisgICAgdXNpbmcgSGFuZGxlID0gTWFjaFNl
bmRSaWdodDsKKyNlbHNlCisgICAgdXNpbmcgSGFuZGxlID0gc3RkOjptb25vc3RhdGU7CisjZW5k
aWYKKyAgICBzdGF0aWMgUmVmUHRyPFByb2Nlc3NJZGVudGl0eT4gY3JlYXRlKEhhbmRsZSYmKTsK
KyAgICBzdGF0aWMgSGFuZGxlIGhhbmRsZUZvckN1cnJlbnRQcm9jZXNzKCk7CisgICAgY29uc3Qg
SGFuZGxlJiBoYW5kbGUoKSBjb25zdDsKKworI2lmIEhBVkUoVEFTS19JREVOVElUWV9UT0tFTikK
KyAgICB0YXNrX2lkX3Rva2VuX3QgdGFza0lkVG9rZW4oKSBjb25zdDsKKyNlbmRpZgorcHJpdmF0
ZToKKyAgICBQcm9jZXNzSWRlbnRpdHkoSGFuZGxlJiYpOworCisgICAgSGFuZGxlIG1faGFuZGxl
OworfTsKKworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
UmVtb3RlVmlkZW9TYW1wbGUuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1Jl
bW90ZVZpZGVvU2FtcGxlLmgKaW5kZXggYTYxNzBiMzI4ZmM0NGFjZTY5M2RjZGIzNWVlNGQzY2U2
ODczMzhhMS4uMGY1YmFlYTg1NmUzZjFhOGNlMTY1YjIwMzg2NWM5NjQ0MzU0MjU2MSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvUmVtb3RlVmlkZW9TYW1wbGUu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9SZW1vdGVWaWRlb1NhbXBs
ZS5oCkBAIC0zNyw2ICszNyw4IEBAIHR5cGVkZWYgc3RydWN0IF9fQ1ZCdWZmZXIqIENWUGl4ZWxC
dWZmZXJSZWY7CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAorY2xhc3MgUHJvY2Vzc0lkZW50aXR5
OworCiBjbGFzcyBSZW1vdGVWaWRlb1NhbXBsZSB7CiBwdWJsaWM6CiAgICAgUmVtb3RlVmlkZW9T
YW1wbGUoKSA9IGRlZmF1bHQ7CkBAIC00OCw5ICs1MCw3IEBAIHB1YmxpYzoKICAgICBXRUJDT1JF
X0VYUE9SVCBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPFJlbW90ZVZpZGVvU2FtcGxlPiBjcmVhdGUo
UmV0YWluUHRyPENWUGl4ZWxCdWZmZXJSZWY+JiYsIE1lZGlhVGltZSYmIHByZXNlbnRhdGlvblRp
bWUsIE1lZGlhU2FtcGxlOjpWaWRlb1JvdGF0aW9uID0gTWVkaWFTYW1wbGU6OlZpZGVvUm90YXRp
b246Ok5vbmUpOwogICAgIFdFQkNPUkVfRVhQT1JUIElPU3VyZmFjZVJlZiBzdXJmYWNlKCkgY29u
c3Q7CiAKLSNpZiBIQVZFKElPU1VSRkFDRV9TRVRfT1dORVJTSElQX0lERU5USVRZKQotICAgIHZv
aWQgc2V0T3duZXJzaGlwSWRlbnRpdHkodGFza19pZF90b2tlbl90IG5ld093bmVyKTsKLSNlbmRp
ZgorICAgIHZvaWQgc2V0T3duZXJzaGlwSWRlbnRpdHkoUHJvY2Vzc0lkZW50aXR5KiByZXNvdXJj
ZU93bmVyKTsKIAogICAgIGNvbnN0IE1lZGlhVGltZSYgdGltZSgpIGNvbnN0IHsgcmV0dXJuIG1f
dGltZTsgfQogICAgIHVpbnQzMl90IHZpZGVvRm9ybWF0KCkgY29uc3QgeyByZXR1cm4gbV92aWRl
b0Zvcm1hdDsgfQpAQCAtMTE5LDEzICsxMTksMTEgQEAgcHJpdmF0ZToKICAgICBib29sIG1fbWly
cm9yZWQgeyBmYWxzZSB9OwogfTsKIAotI2lmIEhBVkUoSU9TVVJGQUNFX1NFVF9PV05FUlNISVBf
SURFTlRJVFkpCi1pbmxpbmUgdm9pZCBSZW1vdGVWaWRlb1NhbXBsZTo6c2V0T3duZXJzaGlwSWRl
bnRpdHkodGFza19pZF90b2tlbl90IG5ld093bmVyKQoraW5saW5lIHZvaWQgUmVtb3RlVmlkZW9T
YW1wbGU6OnNldE93bmVyc2hpcElkZW50aXR5KFByb2Nlc3NJZGVudGl0eSogcmVzb3VyY2VPd25l
cikKIHsKICAgICBpZiAobV9pb1N1cmZhY2UpCi0gICAgICAgIG1faW9TdXJmYWNlLT5zZXRPd25l
cnNoaXBJZGVudGl0eShuZXdPd25lcik7CisgICAgICAgIG1faW9TdXJmYWNlLT5zZXRPd25lcnNo
aXBJZGVudGl0eShyZXNvdXJjZU93bmVyKTsKIH0KLSNlbmRpZgogCiB9CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0ltYWdlQnVmZmVyVXRpbGl0aWVz
Q0cuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvSW1hZ2VCdWZmZXJV
dGlsaXRpZXNDRy5jcHAKaW5kZXggYWVkZGRmMDlhMTEyNDM2N2Q1MWEwNGUwMzcwMmUxOTgyYmQw
OTA1Yi4uM2VhMzk5NDIzNzc5MjM1ODBkZWI3MWU1YmRlNmUwNDRlOGQzMjAyNCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvSW1hZ2VCdWZmZXJVdGlsaXRp
ZXNDRy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvSW1hZ2VC
dWZmZXJVdGlsaXRpZXNDRy5jcHAKQEAgLTk4LDYgKzk4LDcgQEAgQUxMT1dfREVQUkVDQVRFRF9E
RUNMQVJBVElPTlNfRU5ECiAKIHN0YXRpYyBib29sIGVuY29kZShDR0ltYWdlUmVmIGltYWdlLCBD
RlN0cmluZ1JlZiBkZXN0aW5hdGlvblVUSSwgc3RkOjpvcHRpb25hbDxkb3VibGU+IHF1YWxpdHks
IGNvbnN0IFNjb3BlZExhbWJkYTxQdXRCeXRlc0NhbGxiYWNrPiYgZnVuY3Rpb24pCiB7CisgICAg
V1RGTG9nQWx3YXlzKCJFTkNPREU6ICVzIiwgQ0ZTdHJpbmdHZXRDU3RyaW5nUHRyKGRlc3RpbmF0
aW9uVVRJLCBrQ0ZTdHJpbmdFbmNvZGluZ01hY1JvbWFuKSk7CiAgICAgaWYgKCFpbWFnZSB8fCAh
ZGVzdGluYXRpb25VVEkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvR3JhcGhpY3NDb250ZXh0R0xPcGVu
R0xDb2NvYS5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0dyYXBo
aWNzQ29udGV4dEdMT3BlbkdMQ29jb2EubW0KaW5kZXggZmI3MjNkZDQyMmRlOWI5ZGFkYTllNGNi
ODk3ZDA2MWNiZTZkNjAzZS4uMTk3OWRhNTY3MjRiYTBkMjVhZGE1ZDE0MWI2M2Y1YWI1ZjFlN2E5
NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvR3Jh
cGhpY3NDb250ZXh0R0xPcGVuR0xDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jb2NvYS9HcmFwaGljc0NvbnRleHRHTE9wZW5HTENvY29hLm1tCkBAIC0xOTMs
OCArMTkzLDkgQEAgc3RhdGljIGJvb2wgbmVlZHNFQUdMT25NYWMoKQogfQogI2VuZGlmCiAKLUdy
YXBoaWNzQ29udGV4dEdMT3BlbkdMOjpHcmFwaGljc0NvbnRleHRHTE9wZW5HTChHcmFwaGljc0Nv
bnRleHRHTEF0dHJpYnV0ZXMgYXR0cnMpCitHcmFwaGljc0NvbnRleHRHTE9wZW5HTDo6R3JhcGhp
Y3NDb250ZXh0R0xPcGVuR0woR3JhcGhpY3NDb250ZXh0R0xBdHRyaWJ1dGVzJiYgYXR0cnMsIFJl
ZlB0cjxQcm9jZXNzSWRlbnRpdHk+JiYgcmVzb3VyY2VPd25lcikKICAgICA6IEdyYXBoaWNzQ29u
dGV4dEdMKGF0dHJzKQorICAgICwgbV9yZXNvdXJjZU93bmVyKFdURk1vdmUocmVzb3VyY2VPd25l
cikpCiB7CiAgICAgbV9pc0ZvcldlYkdMMiA9IGF0dHJzLndlYkdMVmVyc2lvbiA9PSBHcmFwaGlj
c0NvbnRleHRHTFdlYkdMVmVyc2lvbjo6V2ViR0wyOwogICAgIGlmIChhdHRycy51c2VNZXRhbCAm
JiAhcGxhdGZvcm1TdXBwb3J0c01ldGFsKG1faXNGb3JXZWJHTDIpKSB7CkBAIC01NjUsNiArNTY2
LDggQEAgYm9vbCBHcmFwaGljc0NvbnRleHRHTE9wZW5HTDo6YWxsb2NhdGVBbmRCaW5kRGlzcGxh
eUJ1ZmZlckJhY2tpbmcoKQogICAgIGF1dG8gYmFja2luZyA9IElPU3VyZmFjZTo6Y3JlYXRlKGdl
dEludGVybmFsRnJhbWVidWZmZXJTaXplKCksIERlc3RpbmF0aW9uQ29sb3JTcGFjZTo6U1JHQigp
KTsKICAgICBpZiAoIWJhY2tpbmcpCiAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBpZiAobV9y
ZXNvdXJjZU93bmVyKQorICAgICAgICBiYWNraW5nLT5zZXRPd25lcnNoaXBJZGVudGl0eShtX3Jl
c291cmNlT3duZXIuZ2V0KCkpOwogCiAgICAgYmFja2luZy0+bWlncmF0ZUNvbG9yU3BhY2VUb1By
b3BlcnRpZXMoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY29jb2EvSU9TdXJmYWNlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
b2NvYS9JT1N1cmZhY2UuaAppbmRleCA1NjUyNDc4MjJkYmEyOWY3NjAwYjk0MDdlNmY0YWNiOGMx
YTA2YWFjLi4wYzQzY2E0ZjgwNGQyNjBjNjEwNWViOTJiNjExMDkxZTJjMjUzMmEyIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9JT1N1cmZhY2UuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9JT1N1cmZhY2UuaApA
QCAtNDYsNiArNDYsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBHcmFwaGljc0NvbnRl
eHQ7CiBjbGFzcyBIb3N0V2luZG93OwogY2xhc3MgSW1hZ2VCdWZmZXI7CitjbGFzcyBQcm9jZXNz
SWRlbnRpdHk7CiAKIGVudW0gY2xhc3MgUGl4ZWxGb3JtYXQgOiB1aW50OF90OwogZW51bSBjbGFz
cyBWb2xhdGlsaXR5U3RhdGUgOiB1aW50OF90OwpAQCAtMTU5LDkgKzE2MCw3IEBAIHB1YmxpYzoK
ICAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgdm9pZCBjb252ZXJ0VG9Gb3JtYXQoc3RkOjp1bmlx
dWVfcHRyPFdlYkNvcmU6OklPU3VyZmFjZT4mJiBpblN1cmZhY2UsIEZvcm1hdCwgRnVuY3Rpb248
dm9pZChzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6SU9TdXJmYWNlPik+JiYpOwogI2VuZGlmIC8v
IEhBVkUoSU9TVVJGQUNFX0FDQ0VMRVJBVE9SKQogCi0jaWYgSEFWRShJT1NVUkZBQ0VfU0VUX09X
TkVSU0hJUF9JREVOVElUWSkKLSAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldE93bmVyc2hpcElk
ZW50aXR5KHRhc2tfaWRfdG9rZW5fdCBuZXdPd25lcik7Ci0jZW5kaWYKKyAgICBXRUJDT1JFX0VY
UE9SVCB2b2lkIHNldE93bmVyc2hpcElkZW50aXR5KFByb2Nlc3NJZGVudGl0eSogcmVzb3VyY2VP
d25lcik7CiAKICAgICB2b2lkIG1pZ3JhdGVDb2xvclNwYWNlVG9Qcm9wZXJ0aWVzKCk7CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0lPU3VyZmFj
ZS5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0lPU3VyZmFjZS5t
bQppbmRleCAwMTExNjVjZTExYWJjZTY3NWM0YjQ3YmY5MTVkNGM4MWU2Y2VlOTk1Li5mYjliMjFm
MmEyZWZkZGMwNTA5ZDdhMWU3M2NmOGNlMTdhMzcyODczIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9JT1N1cmZhY2UubW0KKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvSU9TdXJmYWNlLm1tCkBAIC0zNCw2ICszNCw3
IEBACiAjaW1wb3J0ICJJbWFnZUJ1ZmZlci5oIgogI2ltcG9ydCAiTG9nZ2luZy5oIgogI2ltcG9y
dCAiUGxhdGZvcm1TY3JlZW4uaCIKKyNpbXBvcnQgIlByb2Nlc3NJZGVudGl0eS5oIgogI2ltcG9y
dCA8cGFsL3NwaS9jZy9Db3JlR3JhcGhpY3NTUEkuaD4KICNpbXBvcnQgPHd0Zi9Bc3NlcnRpb25z
Lmg+CiAjaW1wb3J0IDx3dGYvTWFjaFNlbmRSaWdodC5oPgpAQCAtNDg0LDE0ICs0ODUsMTUgQEAg
dm9pZCBJT1N1cmZhY2U6OmNvbnZlcnRUb0Zvcm1hdChzdGQ6OnVuaXF1ZV9wdHI8SU9TdXJmYWNl
PiYmIGluU3VyZmFjZSwgRm9ybWF0IGYKIAogI2VuZGlmIC8vIEhBVkUoSU9TVVJGQUNFX0FDQ0VM
RVJBVE9SKQogCi0jaWYgSEFWRShJT1NVUkZBQ0VfU0VUX09XTkVSU0hJUF9JREVOVElUWSkKLXZv
aWQgSU9TdXJmYWNlOjpzZXRPd25lcnNoaXBJZGVudGl0eSh0YXNrX2lkX3Rva2VuX3QgbmV3T3du
ZXIpCit2b2lkIElPU3VyZmFjZTo6c2V0T3duZXJzaGlwSWRlbnRpdHkoUHJvY2Vzc0lkZW50aXR5
KiByZXNvdXJjZU93bmVyKQogewotICAgIGF1dG8gcmVzdWx0ID0gSU9TdXJmYWNlU2V0T3duZXJz
aGlwSWRlbnRpdHkobV9zdXJmYWNlLmdldCgpLCBuZXdPd25lciwga0lPU3VyZmFjZU1lbW9yeUxl
ZGdlclRhZ0dyYXBoaWNzLCAwKTsKKyNpZiBIQVZFKElPU1VSRkFDRV9TRVRfT1dORVJTSElQX0lE
RU5USVRZKQorICAgIHRhc2tfaWRfdG9rZW5fdCBvd25lclRhc2tJZFRva2VuID0gcmVzb3VyY2VP
d25lciA/IHJlc291cmNlT3duZXItPnRhc2tJZFRva2VuKCkgOiAwOworICAgIGF1dG8gcmVzdWx0
ID0gSU9TdXJmYWNlU2V0T3duZXJzaGlwSWRlbnRpdHkobV9zdXJmYWNlLmdldCgpLCBvd25lclRh
c2tJZFRva2VuLCBrSU9TdXJmYWNlTWVtb3J5TGVkZ2VyVGFnR3JhcGhpY3MsIDApOwogICAgIGlm
IChyZXN1bHQgIT0ga0lPUmV0dXJuU3VjY2VzcykKLSAgICAgICAgUkVMRUFTRV9MT0dfRVJST1Io
SU9TdXJmYWNlLCAiSU9TdXJmYWNlOjpzZXRPd25lcnNoaXBJZGVudGl0eTogRmFpbGVkIHRvIGNs
YWltIG93bmVyc2hpcCBvZiBJT1N1cmZhY2UgJXAsIG5ld093bmVyOiAlZCwgZXJyb3I6ICVkIiwg
bV9zdXJmYWNlLmdldCgpLCAoaW50KW5ld093bmVyLCByZXN1bHQpOwotfQorICAgICAgICBSRUxF
QVNFX0xPR19FUlJPUihJT1N1cmZhY2UsICJJT1N1cmZhY2U6OnNldE93bmVyc2hpcElkZW50aXR5
OiBGYWlsZWQgdG8gY2xhaW0gb3duZXJzaGlwIG9mIElPU3VyZmFjZSAlcCwgdGFzayBpZCB0b2tl
bjogJWQsIGVycm9yOiAlZCIsIG1fc3VyZmFjZS5nZXQoKSwgKGludClvd25lclRhc2tJZFRva2Vu
LCByZXN1bHQpOwogI2VuZGlmCit9CiAKIHZvaWQgSU9TdXJmYWNlOjptaWdyYXRlQ29sb3JTcGFj
ZVRvUHJvcGVydGllcygpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jb2NvYS9XZWJQcm9jZXNzR3JhcGhpY3NDb250ZXh0R0xPcGVuR0xDb2NvYS5tbSBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1dlYlByb2Nlc3NHcmFwaGlj
c0NvbnRleHRHTE9wZW5HTENvY29hLm1tCmluZGV4IDI1NjI1ZWRiZmUyNTRlMzc1ZmVmMTY5ODE2
OWY1MmVmZDRhYTc3MjIuLmNhYzQ0YTFkYjRkZmMwZjcxNzA0Yzc0MTg0ZGE0NjM3MmIzMTIzYWYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1dlYlBy
b2Nlc3NHcmFwaGljc0NvbnRleHRHTE9wZW5HTENvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1dlYlByb2Nlc3NHcmFwaGljc0NvbnRleHRHTE9wZW5H
TENvY29hLm1tCkBAIC01Nyw3ICs1Nyw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHByZXBhcmVGb3JE
aXNwbGF5KCkgZmluYWw7CiBwcml2YXRlOgogICAgIFdlYlByb2Nlc3NHcmFwaGljc0NvbnRleHRH
TE9wZW5HTChHcmFwaGljc0NvbnRleHRHTEF0dHJpYnV0ZXMgYXR0cmlidXRlcykKLSAgICAgICAg
OiBHcmFwaGljc0NvbnRleHRHTE9wZW5HTChhdHRyaWJ1dGVzKQorICAgICAgICA6IEdyYXBoaWNz
Q29udGV4dEdMT3BlbkdMKFdURk1vdmUoYXR0cmlidXRlcyksIHsgfSkKICAgICAgICAgLCBtX3dl
YkdMTGF5ZXIoY3JlYXRlV2ViR0xMYXllcihhdHRyaWJ1dGVzKSkKICAgICB7CiAgICAgfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dyYXBoaWNz
Q29udGV4dEdMT3BlbkdMLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVu
Z2wvR3JhcGhpY3NDb250ZXh0R0xPcGVuR0wuaAppbmRleCAzODI3M2IwNzJiNTZkM2ZkYTJiY2Rl
MzQ4YjNlMGY3NDJjMjAwNWU1Li5mZTEzZWFmZjRkNzNmYTY3MDE2MzYwZThkMmI4Y2Y4ZDMzYWM4
ZTUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wv
R3JhcGhpY3NDb250ZXh0R0xPcGVuR0wuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9vcGVuZ2wvR3JhcGhpY3NDb250ZXh0R0xPcGVuR0wuaApAQCAtMjgsNiArMjgsNyBA
QAogI2lmIEVOQUJMRShXRUJHTCkKIAogI2luY2x1ZGUgIkdyYXBoaWNzQ29udGV4dEdMLmgiCisj
aW5jbHVkZSAiUHJvY2Vzc0lkZW50aXR5LmgiCiAjaW5jbHVkZSA8bWVtb3J5PgogI2luY2x1ZGUg
PHd0Zi9IYXNoQ291bnRlZFNldC5oPgogI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CkBAIC01NDMs
OCArNTQ0LDkgQEAgcHVibGljOgogI2VuZGlmCiAKIHByb3RlY3RlZDoKLSAgICBHcmFwaGljc0Nv
bnRleHRHTE9wZW5HTChHcmFwaGljc0NvbnRleHRHTEF0dHJpYnV0ZXMpOworICAgIEdyYXBoaWNz
Q29udGV4dEdMT3BlbkdMKEdyYXBoaWNzQ29udGV4dEdMQXR0cmlidXRlcyYmLCBSZWZQdHI8UHJv
Y2Vzc0lkZW50aXR5PiYmIHJlc291cmNlT3duZXIpOwogICAgIGJvb2wgaXNWYWxpZCgpIGNvbnN0
OworICAgIFJlZlB0cjxQcm9jZXNzSWRlbnRpdHk+IG1fcmVzb3VyY2VPd25lcjsKICNpZiBQTEFU
Rk9STShDT0NPQSkKICAgICBHcmFwaGljc0NvbnRleHRHTElPU3VyZmFjZVN3YXBDaGFpbiBtX3N3
YXBDaGFpbjsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvdGV4bWFwL0dyYXBoaWNzQ29udGV4dEdMVGV4dHVyZU1hcHBlci5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvR3JhcGhpY3NDb250ZXh0R0xUZXh0dXJl
TWFwcGVyLmNwcAppbmRleCBlMjg1MWMyZTNkMjIxNzcxNjk0YmRkNmYxMmYwZTVmNzg5OWM3NTVi
Li4zMDc3NzIyMGM5Y2VlZGY1ZGM0MjM1MGRhNDE2NDA0ZTJlYmU5YzBjIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvR3JhcGhpY3NDb250ZXh0R0xU
ZXh0dXJlTWFwcGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90
ZXhtYXAvR3JhcGhpY3NDb250ZXh0R0xUZXh0dXJlTWFwcGVyLmNwcApAQCAtODUsNyArODUsNyBA
QCBSZWZQdHI8R3JhcGhpY3NDb250ZXh0R0xPcGVuR0w+IEdyYXBoaWNzQ29udGV4dEdMT3BlbkdM
OjpjcmVhdGUoR3JhcGhpY3NDb250ZXh0RwogICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAogICAg
IC8vIENyZWF0ZSB0aGUgR3JhcGhpY3NDb250ZXh0R0xPcGVuR0wgb2JqZWN0IGZpcnN0IGluIG9y
ZGVyIHRvIGVzdGFibGlzdCBhIGN1cnJlbnQgY29udGV4dCBvbiB0aGlzIHRocmVhZC4KLSAgICBh
dXRvIGNvbnRleHQgPSBhZG9wdFJlZihuZXcgR3JhcGhpY3NDb250ZXh0R0xPcGVuR0woYXR0cmli
dXRlcykpOworICAgIGF1dG8gY29udGV4dCA9IGFkb3B0UmVmKG5ldyBHcmFwaGljc0NvbnRleHRH
TE9wZW5HTChXVEZNb3ZlKGF0dHJpYnV0ZXMsIHsgfSkpKTsKIAogI2lmIFVTRShMSUJFUE9YWSkg
JiYgVVNFKE9QRU5HTF9FUykgJiYgRU5BQkxFKFdFQkdMMikKICAgICAvLyBCYWlsIGlmIEdMRVMz
IHdhcyByZXF1ZXN0ZWQgYnV0IGNhbm5vdCBiZSBwcm92aWRlZC4KQEAgLTk5LDggKzk5LDkgQEAg
UmVmUHRyPEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMPiBHcmFwaGljc0NvbnRleHRHTE9wZW5HTDo6
Y3JlYXRlKEdyYXBoaWNzQ29udGV4dEcKIH0KIAogI2lmIFVTRShBTkdMRSkKLUdyYXBoaWNzQ29u
dGV4dEdMT3BlbkdMOjpHcmFwaGljc0NvbnRleHRHTE9wZW5HTChHcmFwaGljc0NvbnRleHRHTEF0
dHJpYnV0ZXMgYXR0cmlidXRlcykKK0dyYXBoaWNzQ29udGV4dEdMT3BlbkdMOjpHcmFwaGljc0Nv
bnRleHRHTE9wZW5HTChHcmFwaGljc0NvbnRleHRHTEF0dHJpYnV0ZXMmJiBhdHRyaWJ1dGVzLCBS
ZWZQdHI8UHJvY2Vzc0lkZW50aXR5PiYmIHJlc291cmNlT3duZXIpCiAgICAgOiBHcmFwaGljc0Nv
bnRleHRHTChhdHRyaWJ1dGVzKQorICAgICwgbV9yZXNvdXJjZU93bmVyKFdURk1vdmUocmVzb3Vy
Y2VPd25lcikpCiB7CiAjaWYgRU5BQkxFKFdFQkdMMikKICAgICBtX2lzRm9yV2ViR0wyID0gYXR0
cmlidXRlcy53ZWJHTFZlcnNpb24gPT0gR3JhcGhpY3NDb250ZXh0R0xXZWJHTFZlcnNpb246Oldl
YkdMMjsKQEAgLTE2OCw4ICsxNjksOSBAQCBHcmFwaGljc0NvbnRleHRHTE9wZW5HTDo6R3JhcGhp
Y3NDb250ZXh0R0xPcGVuR0woR3JhcGhpY3NDb250ZXh0R0xBdHRyaWJ1dGVzIGF0dAogICAgIGds
OjpDbGVhckNvbG9yKDAsIDAsIDAsIDApOwogfQogI2Vsc2UKLUdyYXBoaWNzQ29udGV4dEdMT3Bl
bkdMOjpHcmFwaGljc0NvbnRleHRHTE9wZW5HTChHcmFwaGljc0NvbnRleHRHTEF0dHJpYnV0ZXMg
YXR0cmlidXRlcykKK0dyYXBoaWNzQ29udGV4dEdMT3BlbkdMOjpHcmFwaGljc0NvbnRleHRHTE9w
ZW5HTChHcmFwaGljc0NvbnRleHRHTEF0dHJpYnV0ZXMmJiBhdHRyaWJ1dGVzLCBSZWZQdHI8UHJv
Y2Vzc0lkZW50aXR5PiYmIHJlc291cmNlT3duZXIpCiAgICAgOiBHcmFwaGljc0NvbnRleHRHTChh
dHRyaWJ1dGVzKQorICAgICwgbV9yZXNvdXJjZU93bmVyKFdURk1vdmUocmVzb3VyY2VPd25lcikp
CiB7CiAjaWYgVVNFKE5JQ09TSUEpCiAgICAgbV9uaWNvc2lhTGF5ZXIgPSBtYWtlVW5pcXVlPE5p
Y29zaWE6OkdDR0xMYXllcj4oKnRoaXMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQ
cm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwIGIvU291cmNlL1dlYktpdC9HUFVQ
cm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwCmluZGV4IDUyYWU4ODE5MzcxYTNl
ZGQ2MGNkNzIwY2QwODRiYjNjODU3ZmE3Y2QuLjFlZjlhNmIyNTgxNjMzN2YzOGQ5YmIwYjNjNzQ4
OWZjZDFjOTQ4NWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9HUFVDb25u
ZWN0aW9uVG9XZWJQcm9jZXNzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvR1BV
Q29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAKQEAgLTE5OSwxMiArMTk5LDEwIEBAIHByaXZhdGU6
CiAgICAgfQogI2VuZGlmCiAKLSNpZiBIQVZFKElPU1VSRkFDRV9TRVRfT1dORVJTSElQX0lERU5U
SVRZKQotICAgIHN0ZDo6b3B0aW9uYWw8dGFza19pZF90b2tlbl90PiB3ZWJQcm9jZXNzSWRlbnRp
dHlUb2tlbigpIGNvbnN0IGZpbmFsCisgICAgUmVmUHRyPFByb2Nlc3NJZGVudGl0eT4gcmVzb3Vy
Y2VPd25lcigpIGNvbnN0IGZpbmFsCiAgICAgewotICAgICAgICByZXR1cm4gbV9wcm9jZXNzLndl
YlByb2Nlc3NJZGVudGl0eVRva2VuKCk7CisgICAgICAgIHJldHVybiBtX3Byb2Nlc3Mud2ViUHJv
Y2Vzc0lkZW50aXR5KCk7CiAgICAgfQotI2VuZGlmCiAKICAgICBHUFVDb25uZWN0aW9uVG9XZWJQ
cm9jZXNzJiBtX3Byb2Nlc3M7CiB9OwpAQCAtMjIwLDkgKzIxOCw3IEBAIEdQVUNvbm5lY3Rpb25U
b1dlYlByb2Nlc3M6OkdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MoR1BVUHJvY2VzcyYgZ3B1UHJv
Y2VzcywgV2ViCiAgICAgOiBtX2Nvbm5lY3Rpb24oSVBDOjpDb25uZWN0aW9uOjpjcmVhdGVTZXJ2
ZXJDb25uZWN0aW9uKGNvbm5lY3Rpb25JZGVudGlmaWVyLCAqdGhpcykpCiAgICAgLCBtX2dwdVBy
b2Nlc3MoZ3B1UHJvY2VzcykKICAgICAsIG1fd2ViUHJvY2Vzc0lkZW50aWZpZXIod2ViUHJvY2Vz
c0lkZW50aWZpZXIpCi0jaWYgSEFWRShUQVNLX0lERU5USVRZX1RPS0VOKQotICAgICwgbV93ZWJQ
cm9jZXNzSWRlbnRpdHlUb2tlbihXVEZNb3ZlKHBhcmFtZXRlcnMud2ViUHJvY2Vzc0lkZW50aXR5
VG9rZW4pKQotI2VuZGlmCisgICAgLCBtX3dlYlByb2Nlc3NJZGVudGl0eShQcm9jZXNzSWRlbnRp
dHk6OmNyZWF0ZShXVEZNb3ZlKHBhcmFtZXRlcnMud2ViUHJvY2Vzc0lkZW50aXR5SGFuZGxlKSkp
CiAgICAgLCBtX3JlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5KG1ha2VVbmlxdWVSZWY8UmVt
b3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHk+KCp0aGlzKSkKICAgICAsIG1fc2Vzc2lvbklEKHNl
c3Npb25JRCkKICNpZiBQTEFURk9STShDT0NPQSkgJiYgVVNFKExJQldFQlJUQykKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmgg
Yi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oCmlu
ZGV4IGFlNzk1MDUyNTg2MGRlM2NmNmEyYjE3ODhmZTM1YTVlYWJkYTU2N2QuLmUwNDI4Yjg1ZTVj
ZmRhYzJjNDA2NWE5MTAzYjljNTVlNmI2Y2I1YTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
R1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmgKKysrIGIvU291cmNlL1dlYktp
dC9HUFVQcm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaApAQCAtMzksNiArMzksNyBA
QAogI2luY2x1ZGUgPFdlYkNvcmUvTm93UGxheWluZ01hbmFnZXIuaD4KICNpbmNsdWRlIDxXZWJD
b3JlL1BhZ2VJZGVudGlmaWVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Qcm9jZXNzSWRlbnRpZmll
ci5oPgorI2luY2x1ZGUgPFdlYkNvcmUvUHJvY2Vzc0lkZW50aXR5Lmg+CiAjaW5jbHVkZSA8cGFs
L1Nlc3Npb25JRC5oPgogI2luY2x1ZGUgPHd0Zi9Mb2dnZXIuaD4KICNpbmNsdWRlIDx3dGYvTWFj
aFNlbmRSaWdodC5oPgpAQCAtMTQ3LDEwICsxNDgsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBkaXNw
YXRjaERpc3BsYXlXYXNSZWNvbmZpZ3VyZWRGb3JUZXN0aW5nKCkgeyBkaXNwYXRjaERpc3BsYXlX
YXNSZWNvbmZpZ3VyZWQoKTsgfTsKICNlbmRpZgogCi0jaWYgSEFWRShUQVNLX0lERU5USVRZX1RP
S0VOKQotICAgIHRhc2tfaWRfdG9rZW5fdCB3ZWJQcm9jZXNzSWRlbnRpdHlUb2tlbigpIGNvbnN0
IHsgcmV0dXJuIHN0YXRpY19jYXN0PHRhc2tfaWRfdG9rZW5fdD4obV93ZWJQcm9jZXNzSWRlbnRp
dHlUb2tlbi5zZW5kUmlnaHQoKSk7IH0KLSNlbmRpZgotCisgICAgUmVmUHRyPFdlYkNvcmU6OlBy
b2Nlc3NJZGVudGl0eT4gd2ViUHJvY2Vzc0lkZW50aXR5KCkgY29uc3QgeyByZXR1cm4gbV93ZWJQ
cm9jZXNzSWRlbnRpdHk7IH0KICNpZiBFTkFCTEUoRU5DUllQVEVEX01FRElBKQogICAgIFJlbW90
ZUNETUZhY3RvcnlQcm94eSYgY2RtRmFjdG9yeVByb3h5KCk7CiAjZW5kaWYKQEAgLTI3Myw5ICsy
NzEsNyBAQCBwcml2YXRlOgogICAgIElQQzo6TWVzc2FnZVJlY2VpdmVyTWFwIG1fbWVzc2FnZVJl
Y2VpdmVyTWFwOwogICAgIFJlZjxHUFVQcm9jZXNzPiBtX2dwdVByb2Nlc3M7CiAgICAgY29uc3Qg
V2ViQ29yZTo6UHJvY2Vzc0lkZW50aWZpZXIgbV93ZWJQcm9jZXNzSWRlbnRpZmllcjsKLSNpZiBI
QVZFKFRBU0tfSURFTlRJVFlfVE9LRU4pCi0gICAgTWFjaFNlbmRSaWdodCBtX3dlYlByb2Nlc3NJ
ZGVudGl0eVRva2VuOwotI2VuZGlmCisgICAgUmVmUHRyPFdlYkNvcmU6OlByb2Nlc3NJZGVudGl0
eT4gbV93ZWJQcm9jZXNzSWRlbnRpdHk7CiAjaWYgRU5BQkxFKFdFQl9BVURJTykKICAgICBzdGQ6
OnVuaXF1ZV9wdHI8UmVtb3RlQXVkaW9EZXN0aW5hdGlvbk1hbmFnZXI+IG1fcmVtb3RlQXVkaW9E
ZXN0aW5hdGlvbk1hbmFnZXI7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BV
UHJvY2Vzcy9ncmFwaGljcy9HUFVQcm9jZXNzR3JhcGhpY3NDb250ZXh0R0wuaCBiL1NvdXJjZS9X
ZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9HUFVQcm9jZXNzR3JhcGhpY3NDb250ZXh0R0wuaApp
bmRleCAxZWVlMThkNjJmMDUwOWYwMDlmMzRjM2VkZTY4ZDM1ZTBkMDg5NjUzLi5lNzI5YTNhNzE1
NDUyYzNhZDQ2NGM3Y2M5ZWQ1YzBlY2IzYjExZTA4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L0dQVVByb2Nlc3MvZ3JhcGhpY3MvR1BVUHJvY2Vzc0dyYXBoaWNzQ29udGV4dEdMLmgKKysrIGIv
U291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL0dQVVByb2Nlc3NHcmFwaGljc0NvbnRl
eHRHTC5oCkBAIC0yOSwxMSArMjksMTMgQEAKICNpbmNsdWRlIDxXZWJDb3JlL0V4dGVuc2lvbnNH
TC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvR3JhcGhpY3NDb250ZXh0R0xPcGVuR0wuaD4KIAorbmFt
ZXNwYWNlIFdlYktpdCB7CisKIGNsYXNzIEdQVVByb2Nlc3NHcmFwaGljc0NvbnRleHRHTE9wZW5H
TCBmaW5hbCA6IHB1YmxpYyBXZWJDb3JlOjpHcmFwaGljc0NvbnRleHRHTE9wZW5HTCB7CiBwdWJs
aWM6Ci0gICAgc3RhdGljIFJlZlB0cjxHUFVQcm9jZXNzR3JhcGhpY3NDb250ZXh0R0xPcGVuR0w+
IGNyZWF0ZShXZWJDb3JlOjpHcmFwaGljc0NvbnRleHRHTEF0dHJpYnV0ZXMgYXR0cmlidXRlcykK
KyAgICBzdGF0aWMgUmVmUHRyPEdQVVByb2Nlc3NHcmFwaGljc0NvbnRleHRHTE9wZW5HTD4gY3Jl
YXRlKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dEdMQXR0cmlidXRlcyBhdHRyaWJ1dGVzLCBSZWZQ
dHI8V2ViQ29yZTo6UHJvY2Vzc0lkZW50aXR5PiByZXNvdXJjZU93bmVyKQogICAgIHsKLSAgICAg
ICAgYXV0byBjb250ZXh0ID0gYWRvcHRSZWYoKm5ldyBHUFVQcm9jZXNzR3JhcGhpY3NDb250ZXh0
R0xPcGVuR0woV1RGTW92ZShhdHRyaWJ1dGVzKSkpOworICAgICAgICBhdXRvIGNvbnRleHQgPSBh
ZG9wdFJlZigqbmV3IEdQVVByb2Nlc3NHcmFwaGljc0NvbnRleHRHTE9wZW5HTChXVEZNb3ZlKGF0
dHJpYnV0ZXMpLCBXVEZNb3ZlKHJlc291cmNlT3duZXIpKSk7CiAgICAgICAgIGlmICghY29udGV4
dC0+aXNWYWxpZCgpKQogICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgICAgIHJldHVy
biBjb250ZXh0OwpAQCAtNDQsMTAgKzQ2LDEyIEBAIHB1YmxpYzoKICAgICB2b2lkIG1hcmtEaXNw
bGF5QnVmZmVySW5Vc2UoKSB7IHJldHVybiBtX3N3YXBDaGFpbi5tYXJrRGlzcGxheUJ1ZmZlcklu
VXNlKCk7IH0KICNlbmRpZgogcHJpdmF0ZToKLSAgICBHUFVQcm9jZXNzR3JhcGhpY3NDb250ZXh0
R0xPcGVuR0woV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0R0xBdHRyaWJ1dGVzIGF0dHJpYnV0ZXMp
Ci0gICAgICAgIDogR3JhcGhpY3NDb250ZXh0R0xPcGVuR0woYXR0cmlidXRlcykKKyAgICBHUFVQ
cm9jZXNzR3JhcGhpY3NDb250ZXh0R0xPcGVuR0woV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0R0xB
dHRyaWJ1dGVzJiYgYXR0cmlidXRlcywgUmVmUHRyPFdlYkNvcmU6OlByb2Nlc3NJZGVudGl0eT4m
JiByZXNvdXJjZU93bmVyKQorICAgICAgICA6IEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMKFdURk1v
dmUoYXR0cmlidXRlcyksIFdURk1vdmUocmVzb3VyY2VPd25lcikpCiAgICAgewogICAgIH0KIH07
CiAKK30KKwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3Jh
cGhpY3MvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xDb2NvYS5jcHAgYi9Tb3VyY2UvV2ViS2l0L0dQ
VVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xDb2NvYS5jcHAKaW5kZXgg
YjQzN2E1YmVlY2Q1ZDZhYzU4M2NhNTk3YTk1ZTI3NzEyZmFkZDYyMy4uMGNjMjJiNDMzYTQ1ZTc0
ZDU0MGU0ZDU0ZTljYTY3YmIxMDk1ZTFkMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQ
cm9jZXNzL2dyYXBoaWNzL1JlbW90ZUdyYXBoaWNzQ29udGV4dEdMQ29jb2EuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVHcmFwaGljc0NvbnRleHRHTENv
Y29hLmNwcApAQCAtNDcsOSArNDcsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBwcmVwYXJlRm9yRGlz
cGxheShDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdURjo6TWFjaFNlbmRSaWdodCYmKT4mJikgZmlu
YWw7CiBwcml2YXRlOgogICAgIFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dEdMSU9TdXJmYWNlU3dh
cENoYWluIG1fc3dhcENoYWluIFdURl9HVUFSREVEX0JZX0xPQ0sobV9zdHJlYW1UaHJlYWQpOwot
I2lmIEhBVkUoSU9TVVJGQUNFX1NFVF9PV05FUlNISVBfSURFTlRJVFkpCi0gICAgdGFza19pZF90
b2tlbl90IG1fd2ViUHJvY2Vzc0lkZW50aXR5VG9rZW47Ci0jZW5kaWYKKyAgICBSZWZQdHI8UHJv
Y2Vzc0lkZW50aXR5PiBtX3Jlc291cmNlT3duZXI7CiB9OwogCiB9CkBAIC02Myw5ICs2MSw3IEBA
IFJlZjxSZW1vdGVHcmFwaGljc0NvbnRleHRHTD4gUmVtb3RlR3JhcGhpY3NDb250ZXh0R0w6OmNy
ZWF0ZShHUFVDb25uZWN0aW9uVG9XZWJQCiAKIFJlbW90ZUdyYXBoaWNzQ29udGV4dEdMQ29jb2E6
OlJlbW90ZUdyYXBoaWNzQ29udGV4dEdMQ29jb2EoR1BVQ29ubmVjdGlvblRvV2ViUHJvY2VzcyYg
Z3B1Q29ubmVjdGlvblRvV2ViUHJvY2VzcywgR3JhcGhpY3NDb250ZXh0R0xJZGVudGlmaWVyIGdy
YXBoaWNzQ29udGV4dEdMSWRlbnRpZmllciwgUmVtb3RlUmVuZGVyaW5nQmFja2VuZCYgcmVuZGVy
aW5nQmFja2VuZCwgSVBDOjpTdHJlYW1Db25uZWN0aW9uQnVmZmVyJiYgc3RyZWFtKQogICAgIDog
UmVtb3RlR3JhcGhpY3NDb250ZXh0R0woZ3B1Q29ubmVjdGlvblRvV2ViUHJvY2VzcywgZ3JhcGhp
Y3NDb250ZXh0R0xJZGVudGlmaWVyLCByZW5kZXJpbmdCYWNrZW5kLCBXVEZNb3ZlKHN0cmVhbSkp
Ci0jaWYgSEFWRShJT1NVUkZBQ0VfU0VUX09XTkVSU0hJUF9JREVOVElUWSkKLSAgICAsIG1fd2Vi
UHJvY2Vzc0lkZW50aXR5VG9rZW4oZ3B1Q29ubmVjdGlvblRvV2ViUHJvY2Vzcy53ZWJQcm9jZXNz
SWRlbnRpdHlUb2tlbigpKQotI2VuZGlmCisgICAgLCBtX3Jlc291cmNlT3duZXIoZ3B1Q29ubmVj
dGlvblRvV2ViUHJvY2Vzcy53ZWJQcm9jZXNzSWRlbnRpdHkoKSkKIHsKIAogfQpAQCAtNzMsNyAr
NjksNyBAQCBSZW1vdGVHcmFwaGljc0NvbnRleHRHTENvY29hOjpSZW1vdGVHcmFwaGljc0NvbnRl
eHRHTENvY29hKEdQVUNvbm5lY3Rpb25Ub1dlYlBybwogdm9pZCBSZW1vdGVHcmFwaGljc0NvbnRl
eHRHTENvY29hOjpwbGF0Zm9ybVdvcmtRdWV1ZUluaXRpYWxpemUoV2ViQ29yZTo6R3JhcGhpY3ND
b250ZXh0R0xBdHRyaWJ1dGVzJiYgYXR0cmlidXRlcykKIHsKICAgICBhc3NlcnRJc0N1cnJlbnQo
bV9zdHJlYW1UaHJlYWQpOwotICAgIG1fY29udGV4dCA9IEdQVVByb2Nlc3NHcmFwaGljc0NvbnRl
eHRHTE9wZW5HTDo6Y3JlYXRlKFdURk1vdmUoYXR0cmlidXRlcykpOworICAgIG1fY29udGV4dCA9
IEdQVVByb2Nlc3NHcmFwaGljc0NvbnRleHRHTE9wZW5HTDo6Y3JlYXRlKFdURk1vdmUoYXR0cmli
dXRlcyksIG1fcmVzb3VyY2VPd25lcik7CiB9CiAKIHZvaWQgUmVtb3RlR3JhcGhpY3NDb250ZXh0
R0xDb2NvYTo6cHJlcGFyZUZvckRpc3BsYXkoQ29tcGxldGlvbkhhbmRsZXI8dm9pZChXVEY6Ok1h
Y2hTZW5kUmlnaHQmJik+JiYgY29tcGxldGlvbkhhbmRsZXIpCkBAIC04NCwxMCArODAsNiBAQCB2
b2lkIFJlbW90ZUdyYXBoaWNzQ29udGV4dEdMQ29jb2E6OnByZXBhcmVGb3JEaXNwbGF5KENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoV1RGOgogICAgIE1hY2hTZW5kUmlnaHQgc2VuZFJpZ2h0OwogICAg
IGlmIChkaXNwbGF5QnVmZmVyKSB7CiAgICAgICAgIG1fY29udGV4dC0+bWFya0Rpc3BsYXlCdWZm
ZXJJblVzZSgpOwotI2lmIEhBVkUoSU9TVVJGQUNFX1NFVF9PV05FUlNISVBfSURFTlRJVFkpCi0g
ICAgICAgIC8vIE1hcmsgdGhlIElPU3VyZmFjZSBhcyBiZWluZyBvd25lZCBieSB0aGUgV2ViUHJv
Y2VzcyBldmVuIHRob3VnaCBpdCB3YXMgY29uc3RydWN0ZWQgYnkgdGhlIEdQVVByb2Nlc3Mgc28g
dGhhdCBKZXRzYW0ga25vd3Mgd2hpY2ggcHJvY2VzcyB0byBraWxsLgotICAgICAgICBkaXNwbGF5
QnVmZmVyLT5zZXRPd25lcnNoaXBJZGVudGl0eShtX3dlYlByb2Nlc3NJZGVudGl0eVRva2VuKTsK
LSNlbmRpZgogICAgICAgICBzZW5kUmlnaHQgPSBkaXNwbGF5QnVmZmVyLT5jcmVhdGVTZW5kUmln
aHQoKTsKICAgICB9CiAgICAgY29tcGxldGlvbkhhbmRsZXIoV1RGTW92ZShzZW5kUmlnaHQpKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVJbWFn
ZUJ1ZmZlci5oIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZUltYWdl
QnVmZmVyLmgKaW5kZXggYTNkNDk0ZmU4YmY2YTE5NjQ3ZWYxOTBjOWRiNDA0MmFlY2U2NzIyMC4u
MTk5MjU4YjYzZDY4ZTg4YmNhNGE5MDIzNmZlZDQwNDgwNDFiNjIwYyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZUltYWdlQnVmZmVyLmgKKysrIGIv
U291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZUltYWdlQnVmZmVyLmgKQEAg
LTY5LDEzICs2OSwxMSBAQCBwdWJsaWM6CiAgICAgICAgICAgICBjb250ZXh0KCkucmVzdG9yZSgp
OwogICAgIH0KIAotI2lmIEhBVkUoSU9TVVJGQUNFX1NFVF9PV05FUlNISVBfSURFTlRJVFkpCi0g
ICAgdm9pZCBzZXRQcm9jZXNzT3duZXJzaGlwKHRhc2tfaWRfdG9rZW5fdCBuZXdPd25lcikKKyAg
ICB2b2lkIHNldE93bmVyc2hpcElkZW50aXR5KFdlYkNvcmU6OlByb2Nlc3NJZGVudGl0eSogcmVz
b3VyY2VPd25lcikKICAgICB7CiAgICAgICAgIGlmIChtX2JhY2tlbmQpCi0gICAgICAgICAgICBt
X2JhY2tlbmQtPnNldFByb2Nlc3NPd25lcnNoaXAobmV3T3duZXIpOworICAgICAgICAgICAgbV9i
YWNrZW5kLT5zZXRPd25lcnNoaXBJZGVudGl0eShyZXNvdXJjZU93bmVyKTsKICAgICB9Ci0jZW5k
aWYKIAogcHJpdmF0ZToKICAgICBmcmllbmQgY2xhc3MgUmVtb3RlUmVuZGVyaW5nQmFja2VuZDsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5k
ZXJpbmdCYWNrZW5kLmNwcCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1v
dGVSZW5kZXJpbmdCYWNrZW5kLmNwcAppbmRleCBkYjRlMTM3YjJmNmFkZmI5Y2QxNDc4YTFkODcy
ZTY2NGQxYTk2ZGViLi4yYzhmNGJlMmIwNzBkZTYxMzA0YTAyZmJhNjAyMDZjYzdhZGI3NjgzIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVy
aW5nQmFja2VuZC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1Jl
bW90ZVJlbmRlcmluZ0JhY2tlbmQuY3BwCkBAIC04NCw2ICs4NCw3IEBAIFJlbW90ZVJlbmRlcmlu
Z0JhY2tlbmQ6OlJlbW90ZVJlbmRlcmluZ0JhY2tlbmQoR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vz
cyYgZ3B1Q29uCiAgICAgLCBtX3N0cmVhbUNvbm5lY3Rpb24oSVBDOjpTdHJlYW1TZXJ2ZXJDb25u
ZWN0aW9uOjpjcmVhdGUoZ3B1Q29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jb25uZWN0aW9uKCksIFdU
Rk1vdmUoc3RyZWFtQnVmZmVyKSwgbV93b3JrUXVldWUuZ2V0KCkpKQogICAgICwgbV9yZW1vdGVS
ZXNvdXJjZUNhY2hlKGdwdUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3Mud2ViUHJvY2Vzc0lkZW50aWZp
ZXIoKSkKICAgICAsIG1fZ3B1Q29ubmVjdGlvblRvV2ViUHJvY2VzcyhncHVDb25uZWN0aW9uVG9X
ZWJQcm9jZXNzKQorICAgICwgbV9yZXNvdXJjZU93bmVyKGdwdUNvbm5lY3Rpb25Ub1dlYlByb2Nl
c3Mud2ViUHJvY2Vzc0lkZW50aXR5KCkpCiAgICAgLCBtX3JlbmRlcmluZ0JhY2tlbmRJZGVudGlm
aWVyKGNyZWF0aW9uUGFyYW1ldGVycy5pZGVudGlmaWVyKQogewogICAgIEFTU0VSVChSdW5Mb29w
Ojppc01haW4oKSk7CkBAIC0xNzMsMTAgKzE3NCw5IEBAIHZvaWQgUmVtb3RlUmVuZGVyaW5nQmFj
a2VuZDo6Y3JlYXRlSW1hZ2VCdWZmZXJXaXRoUXVhbGlmaWVkSWRlbnRpZmllcihjb25zdCBGbG9h
CiAKICAgICBpZiAocmVuZGVyaW5nTW9kZSA9PSBSZW5kZXJpbmdNb2RlOjpBY2NlbGVyYXRlZCkg
ewogICAgICAgICBpZiAoYXV0byBhY2NlbGVyYXRlZEltYWdlQnVmZmVyID0gQWNjZWxlcmF0ZWRS
ZW1vdGVJbWFnZUJ1ZmZlcjo6Y3JlYXRlKGxvZ2ljYWxTaXplLCByZXNvbHV0aW9uU2NhbGUsIGNv
bG9yU3BhY2UsIHBpeGVsRm9ybWF0LCAqdGhpcywgaW1hZ2VCdWZmZXJSZXNvdXJjZUlkZW50aWZp
ZXIpKSB7Ci0jaWYgSEFWRShJT1NVUkZBQ0VfU0VUX09XTkVSU0hJUF9JREVOVElUWSkKICAgICAg
ICAgICAgIC8vIE1hcmsgdGhlIElPU3VyZmFjZSBhcyBiZWluZyBvd25lZCBieSB0aGUgV2ViUHJv
Y2VzcyBldmVuIHRob3VnaCBpdCB3YXMgY29uc3RydWN0ZWQgYnkgdGhlIEdQVVByb2Nlc3Mgc28g
dGhhdCBKZXRzYW0ga25vd3Mgd2hpY2ggcHJvY2VzcyB0byBraWxsLgotICAgICAgICAgICAgYWNj
ZWxlcmF0ZWRJbWFnZUJ1ZmZlci0+c2V0UHJvY2Vzc093bmVyc2hpcChtX2dwdUNvbm5lY3Rpb25U
b1dlYlByb2Nlc3MtPndlYlByb2Nlc3NJZGVudGl0eVRva2VuKCkpOwotI2VuZGlmCisgICAgICAg
ICAgICBpZiAobV9yZXNvdXJjZU93bmVyKQorICAgICAgICAgICAgICAgIGFjY2VsZXJhdGVkSW1h
Z2VCdWZmZXItPnNldE93bmVyc2hpcElkZW50aXR5KG1fcmVzb3VyY2VPd25lci5nZXQoKSk7CiAg
ICAgICAgICAgICBpbWFnZUJ1ZmZlciA9IFdURk1vdmUoYWNjZWxlcmF0ZWRJbWFnZUJ1ZmZlcik7
CiAgICAgICAgIH0KICAgICB9CkBAIC0yNjgsNiArMjY4LDcgQEAgdm9pZCBSZW1vdGVSZW5kZXJp
bmdCYWNrZW5kOjpnZXREYXRhVVJMRm9ySW1hZ2VCdWZmZXJXaXRoUXVhbGlmaWVkSWRlbnRpZmll
cihjb24KICAgICBTdHJpbmcgdXJsU3RyaW5nOwogICAgIGlmIChhdXRvIGltYWdlQnVmZmVyID0g
bV9yZW1vdGVSZXNvdXJjZUNhY2hlLmNhY2hlZEltYWdlQnVmZmVyKHJlbmRlcmluZ1Jlc291cmNl
SWRlbnRpZmllcikpCiAgICAgICAgIHVybFN0cmluZyA9IGltYWdlQnVmZmVyLT50b0RhdGFVUkwo
bWltZVR5cGUsIHF1YWxpdHksIHByZXNlcnZlUmVzb2x1dGlvbik7CisgICAgV1RGTG9nQWx3YXlz
KCJEQVRBVVJMOiVzIiwgdXJsU3RyaW5nLnV0ZjgoKS5kYXRhKCkpOwogICAgIGNvbXBsZXRpb25I
YW5kbGVyKFdURk1vdmUodXJsU3RyaW5nKSk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmggYi9Tb3VyY2Uv
V2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5oCmluZGV4
IDE5ZmIxN2YwMjVmYjJjNjVmMWRkZTI3MmMzMGJiMGRlOTQ1Y2FmOWYuLjllYzk2MmIzMGZmNjY3
YTkxN2ZmODZmZGIyZjUzZmEwODJhYjc2MzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BV
UHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmgKKysrIGIvU291cmNlL1dl
YktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQuaApAQCAtNTQs
NiArNTQsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBEZXN0aW5hdGlvbkNvbG9yU3Bh
Y2U7CiBjbGFzcyBGbG9hdFNpemU7CiBjbGFzcyBOYXRpdmVJbWFnZTsKK2NsYXNzIFByb2Nlc3NJ
ZGVudGl0eTsKIAogZW51bSBjbGFzcyBSZW5kZXJpbmdNb2RlIDogYm9vbDsKIApAQCAtMTI5LDYg
KzEzMCw3IEBAIHByaXZhdGU6CiAgICAgUmVmPElQQzo6U3RyZWFtU2VydmVyQ29ubmVjdGlvbj4g
bV9zdHJlYW1Db25uZWN0aW9uOwogICAgIFJlbW90ZVJlc291cmNlQ2FjaGUgbV9yZW1vdGVSZXNv
dXJjZUNhY2hlOwogICAgIFJlZjxHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzPiBtX2dwdUNvbm5l
Y3Rpb25Ub1dlYlByb2Nlc3M7CisgICAgUmVmUHRyPFdlYkNvcmU6OlByb2Nlc3NJZGVudGl0eT4g
bV9yZXNvdXJjZU93bmVyOwogICAgIFJlbmRlcmluZ0JhY2tlbmRJZGVudGlmaWVyIG1fcmVuZGVy
aW5nQmFja2VuZElkZW50aWZpZXI7CiAgICAgSVBDOjpTZW1hcGhvcmUgbV9nZXRQaXhlbEJ1ZmZl
clNlbWFwaG9yZTsKICAgICBSZWZQdHI8U2hhcmVkTWVtb3J5PiBtX2dldFBpeGVsQnVmZmVyU2hh
cmVkTWVtb3J5OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL3dlYnJ0Yy9M
aWJXZWJSVENDb2RlY3NQcm94eS5tbSBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy93ZWJydGMv
TGliV2ViUlRDQ29kZWNzUHJveHkubW0KaW5kZXggMTMzZTI2ZTQ3NGUxZDMxOTE2M2U1NTcxOTky
ZDBjMGM3MTlkZGUxNC4uNzA3YTY1ZTJlMjI0YzlhZDdjZjE3NDY1ZjRkYzBhNDIxMzcwMmE1OCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL3dlYnJ0Yy9MaWJXZWJSVENDb2Rl
Y3NQcm94eS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mvd2VicnRjL0xpYldlYlJU
Q0NvZGVjc1Byb3h5Lm1tCkBAIC03NywxNCArNzcsMTEgQEAgdm9pZCBMaWJXZWJSVENDb2RlY3NQ
cm94eTo6Y2xvc2UoKQogc3RhdGljIEZ1bmN0aW9uPHZvaWQoQ1ZQaXhlbEJ1ZmZlclJlZiBwaXhl
bEJ1ZmZlciwgdWludDMyX3QgdGltZVN0YW1wTnMsIHVpbnQzMl90IHRpbWVTdGFtcCk+IGNyZWF0
ZURlY29kZXJDYWxsYmFjayhSVENEZWNvZGVySWRlbnRpZmllciBpZGVudGlmaWVyLCBHUFVDb25u
ZWN0aW9uVG9XZWJQcm9jZXNzJiBncHVDb25uZWN0aW9uVG9XZWJQcm9jZXNzKQogewogICAgIHJl
dHVybiBbY29ubmVjdGlvbiA9IFJlZiB7IGdwdUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY29ubmVj
dGlvbigpIH0sCi0jaWYgSEFWRShJT1NVUkZBQ0VfU0VUX09XTkVSU0hJUF9JREVOVElUWSkKLSAg
ICAgICAgdG9rZW4gPSBncHVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLndlYlByb2Nlc3NJZGVudGl0
eVRva2VuKCksCi0jZW5kaWYKKyAgICAgICAgcmVzb3VyY2VPd25lciA9IGdwdUNvbm5lY3Rpb25U
b1dlYlByb2Nlc3Mud2ViUHJvY2Vzc0lkZW50aXR5KCksCiAgICAgICAgIGlkZW50aWZpZXJdKENW
UGl4ZWxCdWZmZXJSZWYgcGl4ZWxCdWZmZXIsIHVpbnQzMl90IHRpbWVTdGFtcE5zLCB1aW50MzJf
dCB0aW1lU3RhbXApIHsKICAgICAgICAgaWYgKGF1dG8gc2FtcGxlID0gV2ViQ29yZTo6UmVtb3Rl
VmlkZW9TYW1wbGU6OmNyZWF0ZShwaXhlbEJ1ZmZlciwgTWVkaWFUaW1lKHRpbWVTdGFtcE5zLCAx
KSkpIHsKLSNpZiBIQVZFKElPU1VSRkFDRV9TRVRfT1dORVJTSElQX0lERU5USVRZKQotICAgICAg
ICAgICAgc2FtcGxlLT5zZXRPd25lcnNoaXBJZGVudGl0eSh0b2tlbik7Ci0jZW5kaWYKKyAgICAg
ICAgICAgIGlmIChyZXNvdXJjZU93bmVyKQorICAgICAgICAgICAgICAgIHNhbXBsZS0+c2V0T3du
ZXJzaGlwSWRlbnRpdHkocmVzb3VyY2VPd25lci5nZXQoKSk7CiAgICAgICAgICAgICBjb25uZWN0
aW9uLT5zZW5kKE1lc3NhZ2VzOjpMaWJXZWJSVENDb2RlY3M6OkNvbXBsZXRlZERlY29kaW5nIHsg
aWRlbnRpZmllciwgdGltZVN0YW1wLCAqc2FtcGxlIH0sIDApOwogICAgICAgICB9CiAgICAgfTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0dQVVByb2Nlc3NDb25uZWN0aW9uUGFy
YW1ldGVycy5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvR1BVUHJvY2Vzc0Nvbm5lY3Rpb25QYXJh
bWV0ZXJzLmgKaW5kZXggNDE1OWRjNmVkNDdkNmRjMTczZTkxYjY4MzJhMWJiMWJhNTVmNWUxNC4u
ZGRmYTI5ZjU2MWFhZGQ4MDg5YmRhNjUzYjQ4YWYyMDk3ODQzMDBkMiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9TaGFyZWQvR1BVUHJvY2Vzc0Nvbm5lY3Rpb25QYXJhbWV0ZXJzLmgKKysrIGIv
U291cmNlL1dlYktpdC9TaGFyZWQvR1BVUHJvY2Vzc0Nvbm5lY3Rpb25QYXJhbWV0ZXJzLmgKQEAg
LTI3LDE0ICsyNywxMiBAQAogCiAjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQogCi0jaW5jbHVkZSA8
d3RmL01hY2hTZW5kUmlnaHQuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1Byb2Nlc3NJZGVudGl0eS5o
PgogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogc3RydWN0IEdQVVByb2Nlc3NDb25uZWN0aW9uUGFy
YW1ldGVycyB7Ci0jaWYgSEFWRShUQVNLX0lERU5USVRZX1RPS0VOKQotICAgIE1hY2hTZW5kUmln
aHQgd2ViUHJvY2Vzc0lkZW50aXR5VG9rZW47Ci0jZW5kaWYKKyAgICBXZWJDb3JlOjpQcm9jZXNz
SWRlbnRpdHk6OkhhbmRsZSB3ZWJQcm9jZXNzSWRlbnRpdHlIYW5kbGU7CiAgICAgVmVjdG9yPFN0
cmluZz4gb3ZlcnJpZGVMYW5ndWFnZXM7CiAjaWYgRU5BQkxFKElQQ19URVNUSU5HX0FQSSkKICAg
ICBib29sIGlnbm9yZUludmFsaWRNZXNzYWdlRm9yVGVzdGluZyB7IGZhbHNlIH07CkBAIC00NSw5
ICs0Myw3IEBAIHN0cnVjdCBHUFVQcm9jZXNzQ29ubmVjdGlvblBhcmFtZXRlcnMgewogCiAgICAg
dm9pZCBlbmNvZGUoSVBDOjpFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogICAgIHsKLSNpZiBIQVZF
KFRBU0tfSURFTlRJVFlfVE9LRU4pCi0gICAgICAgIGVuY29kZXIgPDwgd2ViUHJvY2Vzc0lkZW50
aXR5VG9rZW47Ci0jZW5kaWYKKyAgICAgICAgZW5jb2RlciA8PCB3ZWJQcm9jZXNzSWRlbnRpdHlI
YW5kbGU7CiAgICAgICAgIGVuY29kZXIgPDwgb3ZlcnJpZGVMYW5ndWFnZXM7CiAjaWYgRU5BQkxF
KElQQ19URVNUSU5HX0FQSSkKICAgICAgICAgZW5jb2RlciA8PCBpZ25vcmVJbnZhbGlkTWVzc2Fn
ZUZvclRlc3Rpbmc7CkBAIC01OSwxMiArNTUsMTAgQEAgc3RydWN0IEdQVVByb2Nlc3NDb25uZWN0
aW9uUGFyYW1ldGVycyB7CiAKICAgICBzdGF0aWMgc3RkOjpvcHRpb25hbDxHUFVQcm9jZXNzQ29u
bmVjdGlvblBhcmFtZXRlcnM+IGRlY29kZShJUEM6OkRlY29kZXImIGRlY29kZXIpCiAgICAgewot
I2lmIEhBVkUoVEFTS19JREVOVElUWV9UT0tFTikKLSAgICAgICAgc3RkOjpvcHRpb25hbDxNYWNo
U2VuZFJpZ2h0PiB3ZWJQcm9jZXNzSWRlbnRpdHlUb2tlbjsKLSAgICAgICAgZGVjb2RlciA+PiB3
ZWJQcm9jZXNzSWRlbnRpdHlUb2tlbjsKLSAgICAgICAgaWYgKCF3ZWJQcm9jZXNzSWRlbnRpdHlU
b2tlbikKKyAgICAgICAgc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpQcm9jZXNzSWRlbnRpdHk6Okhh
bmRsZT4gd2ViUHJvY2Vzc0lkZW50aXR5SGFuZGxlOworICAgICAgICBkZWNvZGVyID4+IHdlYlBy
b2Nlc3NJZGVudGl0eUhhbmRsZTsKKyAgICAgICAgaWYgKCF3ZWJQcm9jZXNzSWRlbnRpdHlIYW5k
bGUpCiAgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwotI2VuZGlmCiAKICAgICAgICAg
c3RkOjpvcHRpb25hbDxWZWN0b3I8U3RyaW5nPj4gb3ZlcnJpZGVMYW5ndWFnZXM7CiAgICAgICAg
IGRlY29kZXIgPj4gb3ZlcnJpZGVMYW5ndWFnZXM7CkBAIC04NSw5ICs3OSw3IEBAIHN0cnVjdCBH
UFVQcm9jZXNzQ29ubmVjdGlvblBhcmFtZXRlcnMgewogI2VuZGlmCiAKICAgICAgICAgcmV0dXJu
IEdQVVByb2Nlc3NDb25uZWN0aW9uUGFyYW1ldGVycyB7Ci0jaWYgSEFWRShUQVNLX0lERU5USVRZ
X1RPS0VOKQotICAgICAgICAgICAgV1RGTW92ZSgqd2ViUHJvY2Vzc0lkZW50aXR5VG9rZW4pLAot
I2VuZGlmCisgICAgICAgICAgICBXVEZNb3ZlKCp3ZWJQcm9jZXNzSWRlbnRpdHlIYW5kbGUpLAog
ICAgICAgICAgICAgV1RGTW92ZSgqb3ZlcnJpZGVMYW5ndWFnZXMpLAogI2lmIEVOQUJMRShJUENf
VEVTVElOR19BUEkpCiAgICAgICAgICAgICAqaWdub3JlSW52YWxpZE1lc3NhZ2VGb3JUZXN0aW5n
LApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJz
LmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5jcHAKaW5k
ZXggMzJiNDIyOWUxMjI5MmM1NGI2ZDFjYWVkYWFhNjA3ZWM4YTA3Y2NjNi4uMTdlM2UzZGY5MzRi
NmNjMDYwMDc5Y2NkNmI1YTdhZmY0MjBlNTZmYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9T
aGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuY3BwCkBAIC0zMjI0LDQgKzMyMjQsNSBAQCBzdGQ6Om9w
dGlvbmFsPFRleHRSZWNvZ25pdGlvbkRhdGFEZXRlY3Rvcj4gQXJndW1lbnRDb2RlcjxUZXh0UmVj
b2duaXRpb25EYXRhRGV0ZQogCiAjZW5kaWYgLy8gRU5BQkxFKElNQUdFX0FOQUxZU0lTKSAmJiBF
TkFCTEUoREFUQV9ERVRFQ1RJT04pCiAKKwogfSAvLyBuYW1lc3BhY2UgSVBDCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuaCBiL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5oCmluZGV4IGQwNDhlYWUxYzBhMDE3
N2MzODQzNDEyMzJmOTI1NTNiMjBhOTlkYWMuLjIyMDUyMGM4OGIyZDA1OWE5Y2EwYmRlMzRhYTVh
MmM0YzkwMDk3ZjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1
bWVudENvZGVycy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENv
ZGVycy5oCkBAIC04MjIsNiArODIyLDcgQEAgdGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2Rl
cjxSZXRhaW5QdHI8Q1ZQaXhlbEJ1ZmZlclJlZj4+IHsKIAogI2VuZGlmCiAKKwogfSAvLyBuYW1l
c3BhY2UgSVBDCiAKIG5hbWVzcGFjZSBXVEYgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5LmNwcApp
bmRleCA5OTYyNjg5OTA3YzY3YjVjN2E1NjRkODE1MzI1MWNmNTUzNDdlNWJkLi44YjFmM2EyNjY1
NmFiMDVmMDE3MGRjZTZiZTJjMmUzZWZkZTUzOTU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5LmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5
LmNwcApAQCAtNTcsOSArNTcsMTAgQEAgY2xhc3MgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94
eTo6U291cmNlUHJveHkKICAgICAsIHByaXZhdGUgUmVhbHRpbWVNZWRpYVNvdXJjZTo6VmlkZW9T
YW1wbGVPYnNlcnZlciB7CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6Ci0g
ICAgU291cmNlUHJveHkoUmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgaWQsIFJlZjxJUEM6
OkNvbm5lY3Rpb24+JiYgY29ubmVjdGlvbiwgUmVmPFJlYWx0aW1lTWVkaWFTb3VyY2U+JiYgc291
cmNlKQorICAgIFNvdXJjZVByb3h5KFJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIGlkLCBS
ZWY8SVBDOjpDb25uZWN0aW9uPiYmIGNvbm5lY3Rpb24sIFJlZlB0cjxQcm9jZXNzSWRlbnRpdHk+
JiYgcmVzb3VyY2VPd25lciwgUmVmPFJlYWx0aW1lTWVkaWFTb3VyY2U+JiYgc291cmNlKQogICAg
ICAgICA6IG1faWQoaWQpCiAgICAgICAgICwgbV9jb25uZWN0aW9uKFdURk1vdmUoY29ubmVjdGlv
bikpCisgICAgICAgICwgbV9yZXNvdXJjZU93bmVyKFdURk1vdmUocmVzb3VyY2VPd25lcikpCiAg
ICAgICAgICwgbV9zb3VyY2UoV1RGTW92ZShzb3VyY2UpKQogICAgIHsKICAgICAgICAgbV9zb3Vy
Y2UtPmFkZE9ic2VydmVyKCp0aGlzKTsKQEAgLTEyNSw5ICsxMjYsNiBAQCBwdWJsaWM6CiAgICAg
fQogCiAgICAgdm9pZCBzZXRTaG91bGRBcHBseVJvdGF0aW9uKGJvb2wgc2hvdWxkQXBwbHlSb3Rh
dGlvbikgeyBtX3Nob3VsZEFwcGx5Um90YXRpb24gPSB0cnVlOyB9Ci0jaWYgSEFWRShJT1NVUkZB
Q0VfU0VUX09XTkVSU0hJUF9JREVOVElUWSkKLSAgICB2b2lkIHNldFdlYlByb2Nlc3NJZGVudGl0
eVRva2VuKHN0ZDo6b3B0aW9uYWw8dGFza19pZF90b2tlbl90PiB0b2tlbikgeyBtX3dlYlByb2Nl
c3NJZGVudGl0eVRva2VuID0gdG9rZW47fQotI2VuZGlmCiAKIHByaXZhdGU6CiAgICAgdm9pZCBz
b3VyY2VTdG9wcGVkKCkgZmluYWwgewpAQCAtMTg4LDEwICsxODYsOCBAQCBwcml2YXRlOgogICAg
ICAgICB9IGVsc2UKICAgICAgICAgICAgIHJlbW90ZVNhbXBsZSA9IFJlbW90ZVZpZGVvU2FtcGxl
OjpjcmVhdGUoc2FtcGxlKTsKICAgICAgICAgaWYgKHJlbW90ZVNhbXBsZSkgewotI2lmIEhBVkUo
SU9TVVJGQUNFX1NFVF9PV05FUlNISVBfSURFTlRJVFkpCi0gICAgICAgICAgICBpZiAobV93ZWJQ
cm9jZXNzSWRlbnRpdHlUb2tlbikKLSAgICAgICAgICAgICAgICByZW1vdGVTYW1wbGUtPnNldE93
bmVyc2hpcElkZW50aXR5KCptX3dlYlByb2Nlc3NJZGVudGl0eVRva2VuKTsKLSNlbmRpZgorICAg
ICAgICAgICAgaWYgKG1fcmVzb3VyY2VPd25lcikKKyAgICAgICAgICAgICAgICByZW1vdGVTYW1w
bGUtPnNldE93bmVyc2hpcElkZW50aXR5KG1fcmVzb3VyY2VPd25lci5nZXQoKSk7CiAgICAgICAg
ICAgICBtX2Nvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6OlJlbW90ZUNhcHR1cmVTYW1wbGVNYW5h
Z2VyOjpWaWRlb1NhbXBsZUF2YWlsYWJsZShtX2lkLCBXVEZNb3ZlKCpyZW1vdGVTYW1wbGUpKSwg
MCk7CiAgICAgICAgIH0KICAgICB9CkBAIC0yNDQsNiArMjQwLDcgQEAgcHJpdmF0ZToKICAgICBS
ZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciBtX2lkOwogICAgIFdlYWtQdHI8UGxhdGZvcm1N
ZWRpYVNlc3Npb25NYW5hZ2VyPiBtX3Nlc3Npb25NYW5hZ2VyOwogICAgIFJlZjxJUEM6OkNvbm5l
Y3Rpb24+IG1fY29ubmVjdGlvbjsKKyAgICBSZWZQdHI8UHJvY2Vzc0lkZW50aXR5PiBtX3Jlc291
cmNlT3duZXI7CiAgICAgUmVmPFJlYWx0aW1lTWVkaWFTb3VyY2U+IG1fc291cmNlOwogICAgIHN0
ZDo6dW5pcXVlX3B0cjxDQVJpbmdCdWZmZXI+IG1fcmluZ0J1ZmZlcjsKICAgICBDQUF1ZGlvU3Ry
ZWFtRGVzY3JpcHRpb24gbV9kZXNjcmlwdGlvbiB7IH07CkBAIC0yNTcsOSArMjU0LDYgQEAgcHJp
dmF0ZToKICAgICBzaXplX3QgbV9mcmFtZUNodW5rU2l6ZSB7IDAgfTsKICAgICBNZWRpYVRpbWUg
bV9zdGFydFRpbWU7CiAgICAgYm9vbCBtX3Nob3VsZFJlc2V0IHsgZmFsc2UgfTsKLSNpZiBIQVZF
KFRBU0tfSURFTlRJVFlfVE9LRU4pCi0gICAgc3RkOjpvcHRpb25hbDx0YXNrX2lkX3Rva2VuX3Q+
IG1fd2ViUHJvY2Vzc0lkZW50aXR5VG9rZW47Ci0jZW5kaWYKIH07CiAKIFVzZXJNZWRpYUNhcHR1
cmVNYW5hZ2VyUHJveHk6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkoVW5pcXVlUmVmPENv
bm5lY3Rpb25Qcm94eT4mJiBjb25uZWN0aW9uUHJveHkpCkBAIC0zMjMsMTIgKzMxNyw3IEBAIHZv
aWQgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6Y3JlYXRlTWVkaWFTb3VyY2VGb3JDYXB0
dXJlRGV2aWNlV2l0aENvbnN0cmFpCiAgICAgICAgIH0KIAogICAgICAgICBBU1NFUlQoIW1fcHJv
eGllcy5jb250YWlucyhpZCkpOwotICAgICAgICBhdXRvIHByb3h5ID0gbWFrZVVuaXF1ZTxTb3Vy
Y2VQcm94eT4oaWQsIG1fY29ubmVjdGlvblByb3h5LT5jb25uZWN0aW9uKCksIFdURk1vdmUoc291
cmNlKSk7Ci0jaWYgSEFWRShJT1NVUkZBQ0VfU0VUX09XTkVSU0hJUF9JREVOVElUWSkKLSAgICAg
ICAgaWYgKGRldmljZS50eXBlKCkgIT0gV2ViQ29yZTo6Q2FwdHVyZURldmljZTo6RGV2aWNlVHlw
ZTo6TWljcm9waG9uZSkKLSAgICAgICAgICAgIHByb3h5LT5zZXRXZWJQcm9jZXNzSWRlbnRpdHlU
b2tlbihtX2Nvbm5lY3Rpb25Qcm94eS0+d2ViUHJvY2Vzc0lkZW50aXR5VG9rZW4oKSk7Ci0jZW5k
aWYKLQorICAgICAgICBhdXRvIHByb3h5ID0gbWFrZVVuaXF1ZTxTb3VyY2VQcm94eT4oaWQsIG1f
Y29ubmVjdGlvblByb3h5LT5jb25uZWN0aW9uKCksIG1fY29ubmVjdGlvblByb3h5LT5yZXNvdXJj
ZU93bmVyKCksIFdURk1vdmUoc291cmNlKSk7CiAgICAgICAgIG1fcHJveGllcy5hZGQoaWQsIFdU
Rk1vdmUocHJveHkpKTsKICAgICB9IGVsc2UKICAgICAgICAgaW52YWxpZENvbnN0cmFpbnRzID0g
V1RGTW92ZShzb3VyY2VPckVycm9yLmVycm9yTWVzc2FnZSk7CkBAIC0zOTMsNyArMzgyLDcgQEAg
dm9pZCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OjpjbG9uZShSZWFsdGltZU1lZGlhU291
cmNlSWRlbnRpZmllciBjbG9uZWRJRCwKICAgICBNRVNTQUdFX0NIRUNLKG1fcHJveGllcy5jb250
YWlucyhjbG9uZWRJRCkpOwogICAgIE1FU1NBR0VfQ0hFQ0soIW1fcHJveGllcy5jb250YWlucyhu
ZXdTb3VyY2VJRCkpOwogICAgIGlmIChhdXRvKiBwcm94eSA9IG1fcHJveGllcy5nZXQoY2xvbmVk
SUQpKQotICAgICAgICBtX3Byb3hpZXMuYWRkKG5ld1NvdXJjZUlELCBtYWtlVW5pcXVlPFNvdXJj
ZVByb3h5PihuZXdTb3VyY2VJRCwgbV9jb25uZWN0aW9uUHJveHktPmNvbm5lY3Rpb24oKSwgcHJv
eHktPnNvdXJjZSgpLmNsb25lKCkpKTsKKyAgICAgICAgbV9wcm94aWVzLmFkZChuZXdTb3VyY2VJ
RCwgbWFrZVVuaXF1ZTxTb3VyY2VQcm94eT4obmV3U291cmNlSUQsIG1fY29ubmVjdGlvblByb3h5
LT5jb25uZWN0aW9uKCksIG1fY29ubmVjdGlvblByb3h5LT5yZXNvdXJjZU93bmVyKCksIHByb3h5
LT5zb3VyY2UoKS5jbG9uZSgpKSk7CiB9CiAKIHZvaWQgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQ
cm94eTo6cmVxdWVzdFRvRW5kKFJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIHNvdXJjZUlE
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2Fw
dHVyZU1hbmFnZXJQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVXNlck1l
ZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5oCmluZGV4IDdhZmY0MjRkNTQwZDNiMWZkZWNkYWJjODY1
NWMzYzU2YzUwYTEwZTUuLmM1ODZjZTNmM2QxMmU3OGUyMzczMmFlMTBjYzg5YjIzODA0YjJiY2Qg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1
cmVNYW5hZ2VyUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9Vc2Vy
TWVkaWFDYXB0dXJlTWFuYWdlclByb3h5LmgKQEAgLTMyLDYgKzMyLDcgQEAKICNpbmNsdWRlICJV
c2VyTWVkaWFDYXB0dXJlTWFuYWdlci5oIgogI2luY2x1ZGUgPFdlYkNvcmUvQ2FwdHVyZURldmlj
ZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvT3JpZW50YXRpb25Ob3RpZmllci5oPgorI2luY2x1ZGUg
PFdlYkNvcmUvUHJvY2Vzc0lkZW50aXR5Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9SZWFsdGltZU1l
ZGlhU291cmNlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9SZWFsdGltZU1lZGlhU291cmNlSWRlbnRp
Zmllci5oPgogI2luY2x1ZGUgPHBhbC9zcGkvY29jb2EvVENDU1BJLmg+CkBAIC01OSw5ICs2MCw3
IEBAIHB1YmxpYzoKICAgICAgICAgdmlydHVhbCBib29sIHdpbGxTdGFydENhcHR1cmUoV2ViQ29y
ZTo6Q2FwdHVyZURldmljZTo6RGV2aWNlVHlwZSkgY29uc3QgPSAwOwogICAgICAgICB2aXJ0dWFs
IExvZ2dlciYgbG9nZ2VyKCkgPSAwOwogICAgICAgICB2aXJ0dWFsIGJvb2wgc2V0Q2FwdHVyZUF0
dHJpYnV0aW9uU3RyaW5nKCkgeyByZXR1cm4gdHJ1ZTsgfQotI2lmIEhBVkUoSU9TVVJGQUNFX1NF
VF9PV05FUlNISVBfSURFTlRJVFkpCi0gICAgICAgIHZpcnR1YWwgc3RkOjpvcHRpb25hbDx0YXNr
X2lkX3Rva2VuX3Q+IHdlYlByb2Nlc3NJZGVudGl0eVRva2VuKCkgY29uc3QgeyByZXR1cm4geyB9
OyB9OwotI2VuZGlmCisgICAgICAgIHZpcnR1YWwgUmVmUHRyPFdlYkNvcmU6OlByb2Nlc3NJZGVu
dGl0eT4gcmVzb3VyY2VPd25lcigpIGNvbnN0IHsgcmV0dXJuIG51bGxwdHI7IH07CiAjaWYgRU5B
QkxFKEFQUF9QUklWQUNZX1JFUE9SVCkKICAgICAgICAgdmlydHVhbCB2b2lkIHNldFRDQ0lkZW50
aXR5KCkgeyB9CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9H
UFUvZ3JhcGhpY3MvY29jb2EvSW1hZ2VCdWZmZXJTaGFyZWFibGVNYXBwZWRJT1N1cmZhY2VCYWNr
ZW5kLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvY29jb2EvSW1h
Z2VCdWZmZXJTaGFyZWFibGVNYXBwZWRJT1N1cmZhY2VCYWNrZW5kLmNwcAppbmRleCBhZmQyYzdj
MDVjZmFmZDEzOTkzNDRmNWM2YTc2NGU0ODgwZDI4YmRhLi4xMTNlYWY5MmY4MGY1Mzg2NjBkZmJi
NDA2MGMzYTdjODg4ZjY5MjVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
R1BVL2dyYXBoaWNzL2NvY29hL0ltYWdlQnVmZmVyU2hhcmVhYmxlTWFwcGVkSU9TdXJmYWNlQmFj
a2VuZC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9jb2Nv
YS9JbWFnZUJ1ZmZlclNoYXJlYWJsZU1hcHBlZElPU3VyZmFjZUJhY2tlbmQuY3BwCkBAIC03Nywx
MyArNzcsMTEgQEAgSW1hZ2VCdWZmZXJCYWNrZW5kSGFuZGxlIEltYWdlQnVmZmVyU2hhcmVhYmxl
TWFwcGVkSU9TdXJmYWNlQmFja2VuZDo6Y3JlYXRlSW1hZ2UKICAgICByZXR1cm4gSW1hZ2VCdWZm
ZXJCYWNrZW5kSGFuZGxlKG1fc3VyZmFjZS0+Y3JlYXRlU2VuZFJpZ2h0KCkpOwogfQogCi0jaWYg
SEFWRShJT1NVUkZBQ0VfU0VUX09XTkVSU0hJUF9JREVOVElUWSkKLXZvaWQgSW1hZ2VCdWZmZXJT
aGFyZWFibGVNYXBwZWRJT1N1cmZhY2VCYWNrZW5kOjpzZXRQcm9jZXNzT3duZXJzaGlwKHRhc2tf
aWRfdG9rZW5fdCBwcm9jZXNzSWRlbnRpdHlUb2tlbikKK3ZvaWQgSW1hZ2VCdWZmZXJTaGFyZWFi
bGVNYXBwZWRJT1N1cmZhY2VCYWNrZW5kOjpzZXRPd25lcnNoaXBJZGVudGl0eShXZWJDb3JlOjpQ
cm9jZXNzSWRlbnRpdHkqIHJlc291cmNlT3duZXIpCiB7CiAgICAgQVNTRVJUKHN1cmZhY2UoKSk7
Ci0gICAgc3VyZmFjZSgpLT5zZXRPd25lcnNoaXBJZGVudGl0eShwcm9jZXNzSWRlbnRpdHlUb2tl
bik7CisgICAgc3VyZmFjZSgpLT5zZXRPd25lcnNoaXBJZGVudGl0eShyZXNvdXJjZU93bmVyKTsK
IH0KLSNlbmRpZgogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9jb2NvYS9JbWFnZUJ1ZmZlclNoYXJlYWJs
ZU1hcHBlZElPU3VyZmFjZUJhY2tlbmQuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUv
Z3JhcGhpY3MvY29jb2EvSW1hZ2VCdWZmZXJTaGFyZWFibGVNYXBwZWRJT1N1cmZhY2VCYWNrZW5k
LmgKaW5kZXggZTE0YTU0MGVjZGRkNDcxMTkwOGE3YzE3MWMzYTI1ZWJmZDgwOGRiZS4uYjk3NjMy
MjAzMmU2ZmQxYTMwYjlhMjQ0ZmY4Mzg5NjYwOTU2NDdjMSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9jb2NvYS9JbWFnZUJ1ZmZlclNoYXJlYWJsZU1h
cHBlZElPU3VyZmFjZUJhY2tlbmQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BV
L2dyYXBoaWNzL2NvY29hL0ltYWdlQnVmZmVyU2hhcmVhYmxlTWFwcGVkSU9TdXJmYWNlQmFja2Vu
ZC5oCkBAIC0zMSw2ICszMSwxMCBAQAogI2luY2x1ZGUgPFdlYkNvcmUvSW1hZ2VCdWZmZXJJT1N1
cmZhY2VCYWNrZW5kLmg+CiAjaW5jbHVkZSA8d3RmL0lzb01hbGxvYy5oPgogCituYW1lc3BhY2Ug
V2ViQ29yZSB7CitjbGFzcyBQcm9jZXNzSWRlbnRpdHk7Cit9CisKIG5hbWVzcGFjZSBXZWJLaXQg
ewogCiBjbGFzcyBTaGFyZWFibGVCaXRtYXA7CkBAIC00Niw5ICs1MCw3IEBAIHB1YmxpYzoKIAog
ICAgIEltYWdlQnVmZmVyQmFja2VuZEhhbmRsZSBjcmVhdGVJbWFnZUJ1ZmZlckJhY2tlbmRIYW5k
bGUoKSBjb25zdDsKIAotI2lmIEhBVkUoSU9TVVJGQUNFX1NFVF9PV05FUlNISVBfSURFTlRJVFkp
Ci0gICAgdm9pZCBzZXRQcm9jZXNzT3duZXJzaGlwKHRhc2tfaWRfdG9rZW5fdCk7Ci0jZW5kaWYK
KyAgICB2b2lkIHNldE93bmVyc2hpcElkZW50aXR5KFdlYkNvcmU6OlByb2Nlc3NJZGVudGl0eSog
cmVzb3VyY2VPd25lcik7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9XZWJQcm9jZXNzQ29jb2EubW0gYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvV2ViUHJvY2Vzc0NvY29hLm1tCmluZGV4IDAzNGUy
YjQ4YWEwMTVhZjdjZWQ3NjZkZTlhY2U4MjhkZWQxMjI2NDkuLjY0MjVmMzk5NjU3ZDAwM2IwZmFl
MjdkNmE1YTMyNGQxZTRjYTFmZjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9jb2NvYS9XZWJQcm9jZXNzQ29jb2EubW0KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L2NvY29hL1dlYlByb2Nlc3NDb2NvYS5tbQpAQCAtMTI0MiwxNCArMTI0Miw3IEBAIHZvaWQgV2Vi
UHJvY2Vzczo6d2FpdEZvclBlbmRpbmdQYXN0ZWJvYXJkV3JpdGVzVG9GaW5pc2goY29uc3QgU3Ry
aW5nJiBwYXN0ZWJvYXJkCiAjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQogdm9pZCBXZWJQcm9jZXNz
OjpwbGF0Zm9ybUluaXRpYWxpemVHUFVQcm9jZXNzQ29ubmVjdGlvblBhcmFtZXRlcnMoR1BVUHJv
Y2Vzc0Nvbm5lY3Rpb25QYXJhbWV0ZXJzJiBwYXJhbWV0ZXJzKQogewotI2lmIEhBVkUoVEFTS19J
REVOVElUWV9UT0tFTikKLSAgICB0YXNrX2lkX3Rva2VuX3QgaWRlbnRpdHlUb2tlbjsKLSAgICBr
ZXJuX3JldHVybl90IGtyID0gdGFza19jcmVhdGVfaWRlbnRpdHlfdG9rZW4obWFjaF90YXNrX3Nl
bGYoKSwgJmlkZW50aXR5VG9rZW4pOwotICAgIGlmIChrciA9PSBLRVJOX1NVQ0NFU1MpCi0gICAg
ICAgIHBhcmFtZXRlcnMud2ViUHJvY2Vzc0lkZW50aXR5VG9rZW4gPSBNYWNoU2VuZFJpZ2h0Ojph
ZG9wdChpZGVudGl0eVRva2VuKTsKLSAgICBlbHNlCi0gICAgICAgIFJFTEVBU0VfTE9HX0VSUk9S
KFByb2Nlc3MsICJDYWxsIHRvIHRhc2tfY3JlYXRlX2lkZW50aXR5X3Rva2VuKCkgZmFpbGVkOiAl
e3ByaXZhdGV9cyAoJXgpIiwgbWFjaF9lcnJvcl9zdHJpbmcoa3IpLCBrcik7Ci0jZW5kaWYKKyAg
ICBwYXJhbWV0ZXJzLndlYlByb2Nlc3NJZGVudGl0eUhhbmRsZSA9IFByb2Nlc3NJZGVudGl0eTo6
aGFuZGxlRm9yQ3VycmVudFByb2Nlc3MoKTsKIAogICAgIHBhcmFtZXRlcnMub3ZlcnJpZGVMYW5n
dWFnZXMgPSB1c2VyUHJlZmVycmVkTGFuZ3VhZ2VzT3ZlcnJpZGUoKTsKIH0KZGlmZiAtLWdpdCBh
L1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCBhMDQwOGUzMDFmMDA3ZjI2
YTUwNmNiOTI0ZjQ1NjA4NThiZjgxOTkwLi5kNjcxNGQ4MDVkZTNlMWRiZjhlOTEwYWZiNzMxMWQ2
MTg0OTJiYTNiIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMjEtMTEtMTEgIEtpbW1vIEtpbm51bmVuICA8a2tpbm51
bmVuQGFwcGxlLmNvbT4KKworICAgICAgICBJT1N1cmZhY2UgbWVtb3J5IGF0dHJpYnV0aW9uIGlz
IGhhcmQgdG8gdXNlIGluIGNvbnN0cnVjdG9ycworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMyOTg4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgVXBkYXRlIGNvbnN0cnVjdG9yIGNhbGxpbmcgYmFzZSBjbGFz
cyBjb25zdHJ1Y3Rvci4KKworICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9j
b2NvYS9UZXN0R3JhcGhpY3NDb250ZXh0R0xPcGVuR0xDb2NvYS5tbToKKyAgICAgICAgKFRlc3RX
ZWJLaXRBUEk6OldlYkNvcmU6OlRlc3RlZEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMOjpjcmVhdGUp
OgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6V2ViQ29yZTo6VGVzdGVkR3JhcGhpY3NDb250ZXh0
R0xPcGVuR0w6OlRlc3RlZEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMKToKKwogMjAyMS0xMS0xMCAg
Q2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIFdlIHNob3VsZCBub3Qg
a2lsbCBhbGwgV2ViQ29udGVudCBwcm9jZXNzZXMgd2hlbmV2ZXIgdGhlIFdlYkF1dGhuIHByb2Nl
c3MgY3Jhc2hlcwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3Jl
L2NvY29hL1Rlc3RHcmFwaGljc0NvbnRleHRHTE9wZW5HTENvY29hLm1tIGIvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJDb3JlL2NvY29hL1Rlc3RHcmFwaGljc0NvbnRleHRHTE9wZW5HTENv
Y29hLm1tCmluZGV4IDkxN2QyZTgxNjBhNTMyYmY2Njc0YTQyMDU1N2UyNGQ1YWJhNzgzZjYuLjhj
OGVhOGZkOGJlMzFiMGRmY2E4MDdlYjY1ZDBlMjcxODFiOGRkOWMgMTAwNjQ0Ci0tLSBhL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9jb2NvYS9UZXN0R3JhcGhpY3NDb250ZXh0R0xP
cGVuR0xDb2NvYS5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvY29j
b2EvVGVzdEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMQ29jb2EubW0KQEAgLTM5LDEyICszOSwxMiBA
QCBjbGFzcyBUZXN0ZWRHcmFwaGljc0NvbnRleHRHTE9wZW5HTCA6IHB1YmxpYyBHcmFwaGljc0Nv
bnRleHRHTE9wZW5HTCB7CiBwdWJsaWM6CiAgICAgc3RhdGljIFJlZlB0cjxUZXN0ZWRHcmFwaGlj
c0NvbnRleHRHTE9wZW5HTD4gY3JlYXRlKEdyYXBoaWNzQ29udGV4dEdMQXR0cmlidXRlcyBhdHRy
aWJ1dGVzKQogICAgIHsKLSAgICAgICAgYXV0byBjb250ZXh0ID0gYWRvcHRSZWYoKm5ldyBUZXN0
ZWRHcmFwaGljc0NvbnRleHRHTE9wZW5HTChXVEZNb3ZlKGF0dHJpYnV0ZXMpKSk7CisgICAgICAg
IGF1dG8gY29udGV4dCA9IGFkb3B0UmVmKCpuZXcgVGVzdGVkR3JhcGhpY3NDb250ZXh0R0xPcGVu
R0woV1RGTW92ZShhdHRyaWJ1dGVzKSwgeyB9KSk7CiAgICAgICAgIHJldHVybiBjb250ZXh0Owog
ICAgIH0KIHByaXZhdGU6Ci0gICAgVGVzdGVkR3JhcGhpY3NDb250ZXh0R0xPcGVuR0woR3JhcGhp
Y3NDb250ZXh0R0xBdHRyaWJ1dGVzIGF0dHJpYnV0ZXMpCi0gICAgICAgIDogR3JhcGhpY3NDb250
ZXh0R0xPcGVuR0woV1RGTW92ZShhdHRyaWJ1dGVzKSkKKyAgICBUZXN0ZWRHcmFwaGljc0NvbnRl
eHRHTE9wZW5HTChHcmFwaGljc0NvbnRleHRHTEF0dHJpYnV0ZXMgYXR0cmlidXRlcywgUmVmUHRy
PFByb2Nlc3NJZGVudGl0eT4gcmVzb3VyY2VPd25lcikKKyAgICAgICAgOiBHcmFwaGljc0NvbnRl
eHRHTE9wZW5HTChXVEZNb3ZlKGF0dHJpYnV0ZXMpLCBXVEZNb3ZlKHJlc291cmNlT3duZXIpKQog
ICAgIHsKICAgICB9CiB9Owo=
</data>
<flag name="commit-queue"
          id="468765"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>443928</attachid>
            <date>2021-11-11 03:05:42 -0800</date>
            <delta_ts>2021-11-11 03:24:20 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-232988-20211111130540.patch</filename>
            <type>text/plain</type>
            <size>52791</size>
            <attacher name="Kimmo Kinnunen">kkinnunen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg1NjIyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzEzMjQzOGVjMDliZTE4
MTE0NjI5NmIyYmYyMmViYWRlZWIxY2VkNi4uYmVlZmIyMDQ5MzlkYzI0ZGVhMzJjNzYyMmYyZDE2
NGNmYTUyYzRlZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU3IEBACisyMDIxLTExLTExICBLaW1t
byBLaW5udW5lbiAgPGtraW5udW5lbkBhcHBsZS5jb20+CisKKyAgICAgICAgSU9TdXJmYWNlIG1l
bW9yeSBhdHRyaWJ1dGlvbiBpcyBoYXJkIHRvIHVzZSBpbiBjb25zdHJ1Y3RvcnMKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMjk4OAorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBXZWJDb3JlOjpQcm9j
ZXNzSWRlbnRpdHkgdHlwZSB0aGF0IGNhbiBiZSB1c2VkIHRvIGNvbW11bmljYXRlIG1lbW9yeSBh
dHRyaWJ1dGlvbi4KKyAgICAgICAgRm9yIG5vbi1Db2NvYSBwb3J0cywgdGhpcyBpcyBudWxscHRy
LgorICAgICAgICBUaGlzIGlzIHVzZWQgaW4gV2ViQ29yZSB0byBzZXQgdGhlIG1lbW9yeSBhdHRy
aWJ1dGlvbiBvZiBJT1N1cmZhY2UgYW5kIG9iamVjdHMKKyAgICAgICAgdGhhdCBob2xkIElPU3Vy
ZmFjZXMuCisgICAgICAgIFRoaXMgaXMgaW5zdGFudGlhdGVkIGluIFdlYktpdC4KKyAgICAgICAg
Q3VycmVudGx5IHRoZSBvbmx5IHVzZWZ1bCB3YXkgdG8gaW5zdGFudGlhdGUgUHJvY2Vzc0lkZW50
aXR5IGlzIGJ5IHJlY2VpdmluZworICAgICAgICB0aGUgUHJvY2Vzc0lkZW50aXR5OjpIYW5kbGUg
YXMgYSBtZXNzYWdlIGFuZCBjcmVhdGUgaXQgdGhpcyB3YXkgZm9yIHRoZQorICAgICAgICBzZW5k
ZXIgcHJvY2Vzcy4KKworICAgICAgICBObyBuZXcgdGVzdHMsIHJlZmFjdG9yLgorCisgICAgICAg
ICogSGVhZGVycy5jbWFrZToKKyAgICAgICAgKiBTb3VyY2VzLnR4dDoKKyAgICAgICAgKiBXZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogcGxhdGZvcm0vTG9nZ2lu
Zy5oOgorICAgICAgICBBZGQgV2ViQ29yZSBQcm9jZXNzIGxvZyB0YWcgc2luY2UgdGhlIGNvZGUg
bW92ZWQgZnJvbSBXZWJLaXQgdG8gUHJvY2Vzc0lkZW50aXR5CisgICAgICAgIHVzZWQgdGhhdCB0
YWcgdG8gbG9nLgorICAgICAgICAqIHBsYXRmb3JtL1Byb2Nlc3NJZGVudGl0eS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpQcm9jZXNzSWRlbnRpdHk6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3Jl
OjpQcm9jZXNzSWRlbnRpdHk6OlByb2Nlc3NJZGVudGl0eSk6CisgICAgICAgIChXZWJDb3JlOjpQ
cm9jZXNzSWRlbnRpdHk6OmhhbmRsZUZvckN1cnJlbnRQcm9jZXNzKToKKyAgICAgICAgKFdlYkNv
cmU6OlByb2Nlc3NJZGVudGl0eTo6aGFuZGxlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlBy
b2Nlc3NJZGVudGl0eTo6dGFza0lkVG9rZW4gY29uc3QpOgorICAgICAgICAqIHBsYXRmb3JtL1By
b2Nlc3NJZGVudGl0eS5oOgorICAgICAgICBBZGQgdGhlIFByb2Nlc3NJZGVudGl0eSB0eXBlIHRo
YXQgY2FuIGJlIHVzZWQgdG8gY29tbXVuaWNhdGUgbWVtb3J5IGF0dHJpYnV0aW9uLgorCisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvUmVtb3RlVmlkZW9TYW1wbGUuaDoKKyAgICAgICAgKFdl
YkNvcmU6OlJlbW90ZVZpZGVvU2FtcGxlOjpzZXRPd25lcnNoaXBJZGVudGl0eSk6CisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvY2cvSW1hZ2VCdWZmZXJVdGlsaXRpZXNDRy5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjplbmNvZGUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NvY29h
L0dyYXBoaWNzQ29udGV4dEdMT3BlbkdMQ29jb2EubW06CisgICAgICAgIChXZWJDb3JlOjpHcmFw
aGljc0NvbnRleHRHTE9wZW5HTDo6R3JhcGhpY3NDb250ZXh0R0xPcGVuR0wpOgorICAgICAgICAo
V2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0R0xPcGVuR0w6OmFsbG9jYXRlQW5kQmluZERpc3BsYXlC
dWZmZXJCYWNraW5nKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9JT1N1cmZh
Y2UuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9JT1N1cmZhY2UubW06Cisg
ICAgICAgIChXZWJDb3JlOjpJT1N1cmZhY2U6OnNldE93bmVyc2hpcElkZW50aXR5KToKKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9XZWJQcm9jZXNzR3JhcGhpY3NDb250ZXh0R0xP
cGVuR0xDb2NvYS5tbToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR3JhcGhp
Y3NDb250ZXh0R0xPcGVuR0wuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAv
R3JhcGhpY3NDb250ZXh0R0xUZXh0dXJlTWFwcGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okdy
YXBoaWNzQ29udGV4dEdMT3BlbkdMOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhp
Y3NDb250ZXh0R0xPcGVuR0w6OkdyYXBoaWNzQ29udGV4dEdMT3BlbkdMKToKKyAgICAgICAgQWRk
IGFuIGV4YW1wbGUgdXNlIHdoZXJlIHRoZSBjb25zdHJ1Y3RvciB0YWtlcyB0aGUgbWVtb3J5IGF0
dHJpYnV0aW9uIHRva2VuLgorICAgICAgICBUaGlzIG1heSBiZSBuZWVkZWQgaW4gdGhlIGZ1dHVy
ZSB3aGVuIHRoZSB0b2tlbiBpcyB1c2VkIGFzIGEgcGFyYW1ldGVyIGluCisgICAgICAgIHRoZSBB
TkdMRSBjb250ZXh0IGNyZWF0aW9uLgorICAgICAgICBVc2UgdGhlIHRva2VuIGluIGNyZWF0aW5n
IHRoZSBJT1N1cmZhY2UuIFRoaXMgZml4ZXMgYSBidWcgd2hlcmUgV2ViR0wKKyAgICAgICAgYmFj
ayBidWZmZXJzIHdvdWxkIG5vdCBiZSBhdHRyaWJ1dGVkIHVudGlsIHRoZXkgd2VyZSBzZW50IHRv
IFdQLgorCiAyMDIxLTExLTExICBBbnR0aSBLb2l2aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KIAog
ICAgICAgICBVc2UgbmFycm93ZXIgdHlwZXMgZm9yIHN0eWxlIHNjb3BlIG9yZGluYWwgYW5kIGNh
c2NhZGUgbGF5ZXIgcHJpb3JpdHkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9n
IGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggNGUxNTE5NmQ4Y2ZkZDc0MDI0YmE3YWRm
NmNmZDU4N2VjZDVkZDQ4Mi4uNmEyODQwOWVkZjA2Zjk2ZDM0OTljMzA1NTNiZjViNmJlYjBlMGRj
MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktp
dC9DaGFuZ2VMb2cKQEAgLTEsMyArMSw1NCBAQAorMjAyMS0xMS0xMSAgS2ltbW8gS2lubnVuZW4g
IDxra2lubnVuZW5AYXBwbGUuY29tPgorCisgICAgICAgIElPU3VyZmFjZSBtZW1vcnkgYXR0cmli
dXRpb24gaXMgaGFyZCB0byB1c2UgaW4gY29uc3RydWN0b3JzCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzI5ODgKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZW1vdmUgaWZkZWZzIGFuZCBkaXJlY3QgdXNl
IG9mIHRhc2tfaWRfdG9rZW5fdC4KKyAgICAgICAgSW5zdGVhZCwgdXNlIFdlYkNvcmU6OlByb2Nl
c3NJZGVudGlmaWVyLiBUaGlzIHdheSB0aGUKKyAgICAgICAgY3Jvc3MtcGxhdGZvcm0gY29kZSBp
cyBlYXNpZXIgdG8gYXV0aG9yLgorCisgICAgICAgICogR1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9u
VG9XZWJQcm9jZXNzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6R1BVQ29ubmVjdGlvblRvV2ViUHJv
Y2Vzczo6R1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcyk6CisgICAgICAgICogR1BVUHJvY2Vzcy9H
UFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmg6CisgICAgICAgIChXZWJLaXQ6OkdQVUNvbm5lY3Rp
b25Ub1dlYlByb2Nlc3M6OndlYlByb2Nlc3NJZGVudGl0eSBjb25zdCk6CisgICAgICAgIChXZWJL
aXQ6OkdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OndlYlByb2Nlc3NJZGVudGl0eVRva2VuIGNv
bnN0KTogRGVsZXRlZC4KKyAgICAgICAgKiBHUFVQcm9jZXNzL2dyYXBoaWNzL0dQVVByb2Nlc3NH
cmFwaGljc0NvbnRleHRHTC5oOgorICAgICAgICAqIEdQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3Rl
R3JhcGhpY3NDb250ZXh0R0xDb2NvYS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUdyYXBo
aWNzQ29udGV4dEdMQ29jb2E6OlJlbW90ZUdyYXBoaWNzQ29udGV4dEdMQ29jb2EpOgorICAgICAg
ICAoV2ViS2l0OjpSZW1vdGVHcmFwaGljc0NvbnRleHRHTENvY29hOjpwbGF0Zm9ybVdvcmtRdWV1
ZUluaXRpYWxpemUpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVHcmFwaGljc0NvbnRleHRHTENv
Y29hOjpwcmVwYXJlRm9yRGlzcGxheSk6CisgICAgICAgICogR1BVUHJvY2Vzcy9ncmFwaGljcy9S
ZW1vdGVJbWFnZUJ1ZmZlci5oOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVJbWFnZUJ1ZmZlcjo6
c2V0T3duZXJzaGlwSWRlbnRpdHkpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVJbWFnZUJ1ZmZl
cjo6c2V0UHJvY2Vzc093bmVyc2hpcCk6IERlbGV0ZWQuCisgICAgICAgICogR1BVUHJvY2Vzcy9n
cmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmNwcDoKKyAgICAgICAgKFdlYktpdDo6UmVt
b3RlUmVuZGVyaW5nQmFja2VuZDo6UmVtb3RlUmVuZGVyaW5nQmFja2VuZCk6CisgICAgICAgIChX
ZWJLaXQ6OlJlbW90ZVJlbmRlcmluZ0JhY2tlbmQ6OmNyZWF0ZUltYWdlQnVmZmVyV2l0aFF1YWxp
ZmllZElkZW50aWZpZXIpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZW5kZXJpbmdCYWNrZW5k
OjpnZXREYXRhVVJMRm9ySW1hZ2VCdWZmZXJXaXRoUXVhbGlmaWVkSWRlbnRpZmllcik6CisgICAg
ICAgICogR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmg6CisgICAg
ICAgICogR1BVUHJvY2Vzcy93ZWJydGMvTGliV2ViUlRDQ29kZWNzUHJveHkubW06CisgICAgICAg
IChXZWJLaXQ6OkZ1bmN0aW9uPHZvaWQpOgorICAgICAgICAqIFNoYXJlZC9HUFVQcm9jZXNzQ29u
bmVjdGlvblBhcmFtZXRlcnMuaDoKKyAgICAgICAgKFdlYktpdDo6R1BVUHJvY2Vzc0Nvbm5lY3Rp
b25QYXJhbWV0ZXJzOjplbmNvZGUgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpHUFVQcm9jZXNz
Q29ubmVjdGlvblBhcmFtZXRlcnM6OmRlY29kZSk6CisgICAgICAgICogU2hhcmVkL1dlYkNvcmVB
cmd1bWVudENvZGVycy5jcHA6CisgICAgICAgICogU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVy
cy5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclBy
b3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6
U291cmNlUHJveHk6OlNvdXJjZVByb3h5KToKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhQ2Fw
dHVyZU1hbmFnZXJQcm94eTo6U291cmNlUHJveHk6OnNldFNob3VsZEFwcGx5Um90YXRpb24pOgor
ICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OjpjcmVhdGVNZWRp
YVNvdXJjZUZvckNhcHR1cmVEZXZpY2VXaXRoQ29uc3RyYWludHMpOgorICAgICAgICAoV2ViS2l0
OjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OjpjbG9uZSk6CisgICAgICAgIChXZWJLaXQ6
OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6OlNvdXJjZVByb3h5OjpzZXRXZWJQcm9jZXNz
SWRlbnRpdHlUb2tlbik6IERlbGV0ZWQuCisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL1VzZXJN
ZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkuaDoKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhQ2Fw
dHVyZU1hbmFnZXJQcm94eTo6Q29ubmVjdGlvblByb3h5OjpyZXNvdXJjZU93bmVyIGNvbnN0KToK
KyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6Q29ubmVjdGlv
blByb3h5Ojp3ZWJQcm9jZXNzSWRlbnRpdHlUb2tlbiBjb25zdCk6IERlbGV0ZWQuCisgICAgICAg
ICogV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvY29jb2EvSW1hZ2VCdWZmZXJTaGFyZWFibGVNYXBw
ZWRJT1N1cmZhY2VCYWNrZW5kLmNwcDoKKyAgICAgICAgKFdlYktpdDo6SW1hZ2VCdWZmZXJTaGFy
ZWFibGVNYXBwZWRJT1N1cmZhY2VCYWNrZW5kOjpzZXRPd25lcnNoaXBJZGVudGl0eSk6CisgICAg
ICAgIChXZWJLaXQ6OkltYWdlQnVmZmVyU2hhcmVhYmxlTWFwcGVkSU9TdXJmYWNlQmFja2VuZDo6
c2V0UHJvY2Vzc093bmVyc2hpcCk6IERlbGV0ZWQuCisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUv
Z3JhcGhpY3MvY29jb2EvSW1hZ2VCdWZmZXJTaGFyZWFibGVNYXBwZWRJT1N1cmZhY2VCYWNrZW5k
Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9jb2NvYS9XZWJQcm9jZXNzQ29jb2EubW06CisgICAg
ICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OnBsYXRmb3JtSW5pdGlhbGl6ZUdQVVByb2Nlc3NDb25u
ZWN0aW9uUGFyYW1ldGVycyk6CiAyMDIxLTExLTEwICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBs
ZS5jb20+CiAKICAgICAgICAgV2Ugc2hvdWxkIG5vdCBraWxsIGFsbCBXZWJDb250ZW50IHByb2Nl
c3NlcyB3aGVuZXZlciB0aGUgV2ViQXV0aG4gcHJvY2VzcyBjcmFzaGVzCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlIGIvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFr
ZQppbmRleCAzNjM1ZmM1YmNlOWVhZDQ5MGM4ZDk4NTRmZThlNWZkZTI5Njc0ZDIwLi44MWQ2ZjZh
YTMzMzk0NmIxN2M2YjJkYmQxZGZhMmQ1ZDgwMzYxMWJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9IZWFkZXJzLmNtYWtlCisrKyBiL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKQEAg
LTExNDAsNiArMTE0MCw3IEBAIHNldChXZWJDb3JlX1BSSVZBVEVfRlJBTUVXT1JLX0hFQURFUlMK
ICAgICBwbGF0Zm9ybS9Qb3B1cE1lbnVDbGllbnQuaAogICAgIHBsYXRmb3JtL1BvcHVwTWVudVN0
eWxlLmgKICAgICBwbGF0Zm9ybS9Qcm9jZXNzSWRlbnRpZmllci5oCisgICAgcGxhdGZvcm0vUHJv
Y2Vzc0lkZW50aXR5LmgKICAgICBwbGF0Zm9ybS9Qcm9jZXNzUXVhbGlmaWVkLmgKICAgICBwbGF0
Zm9ybS9Qcm9taXNlZEF0dGFjaG1lbnRJbmZvLmgKICAgICBwbGF0Zm9ybS9QdWJsaWNTdWZmaXgu
aApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQgYi9Tb3VyY2UvV2ViQ29y
ZS9Tb3VyY2VzLnR4dAppbmRleCA4YTExNGExMjM4ZDRmNjgxODg0NmYyMWMyZGIwYWMwMzAzYjFl
YjI5Li5hNWJiMjhjNmY3NTE2YWY2ZjhkM2VhYmRmZGEyYmVmZmE0ZTUyM2RlIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2Vz
LnR4dApAQCAtMTg3MCw2ICsxODcwLDcgQEAgcGxhdGZvcm0vUGxhdGZvcm1TdHJhdGVnaWVzLmNw
cAogcGxhdGZvcm0vUGxhdGZvcm1XaGVlbEV2ZW50LmNwcAogcGxhdGZvcm0vUHJldmlld0NvbnZl
cnRlci5jcHAKIHBsYXRmb3JtL1Byb2Nlc3NJZGVudGlmaWVyLmNwcAorcGxhdGZvcm0vUHJvY2Vz
c0lkZW50aXR5LmNwcAogcGxhdGZvcm0vUmVmZXJyZXJQb2xpY3kuY3BwCiBwbGF0Zm9ybS9SZW1v
dGVDb21tYW5kTGlzdGVuZXIuY3BwCiBwbGF0Zm9ybS9SdW50aW1lQXBwbGljYXRpb25DaGVja3Mu
Y3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2oKaW5kZXggMjk5YTg4NjYwZjFlYjAyMmNiZDhiNGVkYzIzMWIyMjkwOWJkYTE0NC4uYmNiYTNm
ZWM5OWVhYTFjYTg3ZTg3Y2M4YWNkMzljMWJmNWEyODE5YSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMjM2Myw2ICsyMzYzLDcg
QEAKIAkJN0I3MzExRkIyNUMwOTJCNzAwM0IyNzk2IC8qIFNjb3BlZEhpZ2hQZXJmb3JtYW5jZUdQ
VVJlcXVlc3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDdCNzMxMUZBMjVDMDkyQjcwMDNCMjc5NiAvKiBTY29wZWRIaWdoUGVyZm9ybWFuY2VHUFVSZXF1
ZXN0LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJ
N0I4RUQ1RjAyNkYwQzEzRDAwOEFDMDIzIC8qIENWVXRpbGl0aWVzLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3QjhFRDVFRDI2RjBDMTIzMDA4QUMwMjMg
LyogQ1ZVdGlsaXRpZXMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OwogCQk3QjkwNDE3MDI1NTAxMTQyMDA2RUVCOEMgLyogUmVtb3RlR3JhcGhpY3NDb250
ZXh0R0xQcm94eUJhc2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDdCOTA0MTZFMjU1MDExMDkwMDZFRUI4QyAvKiBSZW1vdGVHcmFwaGljc0NvbnRleHRH
TFByb3h5QmFzZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CisJCTdCQTdDNkMzMjczQkY2MkMwMDI5REZCRSAvKiBQcm9jZXNzSWRlbnRpdHkuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdCQTdDNkMxMjczQkY2
MkIwMDI5REZCRSAvKiBQcm9jZXNzSWRlbnRpdHkuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRF
UyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk3QkIzNEE0ODI1Mzc3NkNBMDAwMjlEMDggLyogR3Jh
cGhpY3NDb250ZXh0R0xJbWFnZUV4dHJhY3Rvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gN0JCMzRBNDUyNTM3NzZDNjAwMDI5RDA4IC8qIEdyYXBoaWNz
Q29udGV4dEdMSW1hZ2VFeHRyYWN0b3IuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQ
cml2YXRlLCApOyB9OyB9OwogCQk3QkI2ODBCQTI1QkExQkU0MDAyQjg3MzggLyogR3JhcGhpY3ND
aGVja3NNYWMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDdCQjY4MEI4MjVCQTFCRTQwMDJCODczOCAvKiBHcmFwaGljc0NoZWNrc01hYy5oICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTdCRTc0MjczODFGQTkw
NkZCQjRGMEYyQyAvKiBKU1NWR0dyYXBoaWNzRWxlbWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTUwQzRDMDJCRUQ4OTM2RjgxOEUyRjk5IC8qIEpT
U1ZHR3JhcGhpY3NFbGVtZW50LmggKi87IH07CkBAIC0xMTAyMSw2ICsxMTAyMiw4IEBACiAJCTdC
OEVENUVEMjZGMEMxMjMwMDhBQzAyMyAvKiBDVlV0aWxpdGllcy5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBDVlV0aWxpdGllcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk3QjhFRDVFRjI2RjBDMTIzMDA4QUMwMjMgLyogQ1ZVdGlsaXRpZXMubW0gKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBDVlV0aWxpdGllcy5tbTsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0I5MDQxNkUyNTUwMTEwOTAwNkVFQjhDIC8qIFJlbW90ZUdy
YXBoaWNzQ29udGV4dEdMUHJveHlCYXNlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbW90ZUdyYXBoaWNz
Q29udGV4dEdMUHJveHlCYXNlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTdCQTdD
NkJGMjczQkY2MkIwMDI5REZCRSAvKiBQcm9jZXNzSWRlbnRpdHkuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUHJvY2Vzc0lkZW50aXR5LmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJN0JBN0M2QzEyNzNCRjYyQjAwMjlERkJFIC8qIFByb2Nlc3NJZGVu
dGl0eS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQcm9jZXNzSWRlbnRpdHku
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0JCMzRBMTYyNTM0NUNCMjAwMDI5RDA4
IC8qIEFOR0xFVXRpbGl0aWVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEFO
R0xFVXRpbGl0aWVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdCQjM0QTQ1MjUz
Nzc2QzYwMDAyOUQwOCAvKiBHcmFwaGljc0NvbnRleHRHTEltYWdlRXh0cmFjdG9yLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IEdyYXBoaWNzQ29udGV4dEdMSW1hZ2VFeHRyYWN0b3IuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJN0JCMzRBNDcyNTM3NzZDNzAwMDI5RDA4IC8qIEdyYXBoaWNzQ29u
dGV4dEdMSW1hZ2VFeHRyYWN0b3IuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gR3JhcGhpY3NDb250
ZXh0R0xJbWFnZUV4dHJhY3Rvci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0x
ODkyMCwxMSArMTg5MjMsMTEgQEAKIAkJMUE1NjlDQzQwRDdFMkI2MDAwN0MzOTgzIC8qIGJyaWRn
ZSAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCi0JCQkJNTlCNTk3
NzExMTA4NjU1NjAwNzE1OUU4IC8qIGpzYyAqLywKIAkJCQkxQTU2OUNFMjBEN0UyQjgyMDA3QzM5
ODMgLyogb2JqYyAqLywKIAkJCQk1OTlFNzU4RjExMDU1QTFGMDBEOTA0RkEgLyogQnJpZGdlLmgg
Ki8sCiAJCQkJMUE3MUQ1NzkwRjMzODE5MDAwRjlDRTRFIC8qIElkZW50aWZpZXJSZXAuY3BwICov
LAogCQkJCTFBNzFENTdBMEYzMzgxOTAwMEY5Q0U0RSAvKiBJZGVudGlmaWVyUmVwLmggKi8sCisJ
CQkJNTlCNTk3NzExMTA4NjU1NjAwNzE1OUU4IC8qIGpzYyAqLywKIAkJCQkxQTU2OUNFRjBEN0Uy
QjgyMDA3QzM5ODMgLyogcnVudGltZV9hcnJheS5jcHAgKi8sCiAJCQkJMUE1NjlDRjAwRDdFMkI4
MjAwN0MzOTgzIC8qIHJ1bnRpbWVfYXJyYXkuaCAqLywKIAkJCQkxQTU2OUNGMTBEN0UyQjgyMDA3
QzM5ODMgLyogcnVudGltZV9tZXRob2QuY3BwICovLApAQCAtMjg5OTAsNiArMjg5OTMsOCBAQAog
CQkJCUExQURBRjdDMjM2MEZEM0UwMDlDQjc3NiAvKiBQcmV2aWV3Q29udmVydGVyUHJvdmlkZXIu
aCAqLywKIAkJCQk1MUY2NDVEMjFGRUNEQkM4MDBCNTRERUQgLyogUHJvY2Vzc0lkZW50aWZpZXIu
Y3BwICovLAogCQkJCTUxRjY0NUQzMUZFQ0RCQzgwMEI1NERFRCAvKiBQcm9jZXNzSWRlbnRpZmll
ci5oICovLAorCQkJCTdCQTdDNkJGMjczQkY2MkIwMDI5REZCRSAvKiBQcm9jZXNzSWRlbnRpdHku
Y3BwICovLAorCQkJCTdCQTdDNkMxMjczQkY2MkIwMDI5REZCRSAvKiBQcm9jZXNzSWRlbnRpdHku
aCAqLywKIAkJCQkxQ0M1NEFGQjI3MEY5MkRBMDA1QkY4QkUgLyogUHJvY2Vzc1F1YWxpZmllZC5o
ICovLAogCQkJCUY0N0E2MzNDMUZGNkZENTAwMDgxQjNDQyAvKiBQcm9taXNlZEF0dGFjaG1lbnRJ
bmZvLmggKi8sCiAJCQkJMDA4MUZFRkQxNkIwQTI0NDAwOEFBQTdBIC8qIFB1YmxpY1N1ZmZpeC5o
ICovLApAQCAtMzU0NzIsNiArMzU0NzcsNyBAQAogCQkJCUI3MUZFNkRGMTEwOTFDQjMwMERBRUY3
NyAvKiBQcmludENvbnRleHQuaCBpbiBIZWFkZXJzICovLAogCQkJCTZCMEEwN0YyMjFGQTRCNUMw
MEQ1NzM5MSAvKiBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
NTFGNjQ1RDUxRkVDREJDRTAwQjU0REVEIC8qIFByb2Nlc3NJZGVudGlmaWVyLmggaW4gSGVhZGVy
cyAqLywKKwkJCQk3QkE3QzZDMzI3M0JGNjJDMDAyOURGQkUgLyogUHJvY2Vzc0lkZW50aXR5Lmgg
aW4gSGVhZGVycyAqLywKIAkJCQlBOEVBN0VCQzBBMTk0NUQwMDBBOEVGNUYgLyogUHJvY2Vzc2lu
Z0luc3RydWN0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQ0M1NEFGRTI3MEY5NkFFMDA1QkY4
QkUgLyogUHJvY2Vzc1F1YWxpZmllZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTQyMDUwMTcyMTQx
OTAxQjAwNjZFRjNCIC8qIFByb2Nlc3NXYXJtaW5nLmggaW4gSGVhZGVycyAqLywKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xvZ2dpbmcuaCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL0xvZ2dpbmcuaAppbmRleCAzZmJlNDE3YmU5ODFiNzVlNzc5ZGUyMzhmYzRiZTA1YTZk
NzMwZmFhLi5kYzBmNTA5OGI4N2YxODQ1NTI1YmUzYzBiYTQxZjc2NzViMTQwNDdmIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Mb2dnaW5nLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vTG9nZ2luZy5oCkBAIC05NCw2ICs5NCw3IEBAIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKICAgICBNKFBsdWdpbnMpIFwKICAgICBNKFBvcHVwQmxvY2tpbmcpIFwKICAgICBNKFByaXZh
dGVDbGlja01lYXN1cmVtZW50KSBcCisgICAgTShQcm9jZXNzKSBcCiAgICAgTShQcm9ncmVzcykg
XAogICAgIE0oUmVtb3RlSW5zcGVjdG9yKSBcCiAgICAgTShSZXF1ZXN0QW5pbWF0aW9uRnJhbWUp
IFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Byb2Nlc3NJZGVudGl0eS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Qcm9jZXNzSWRlbnRpdHkuY3BwCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmFhNmM3ZWVhYjAxZDMyNDNiMmI0NWE2M2M1NjA0NGNmYzU4MTcxZGEKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Qcm9jZXNzSWRlbnRpdHkuY3BwCkBAIC0w
LDAgKzEsNzMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0Yg
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLwor
CisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiUHJvY2Vzc0lkZW50aXR5LmgiCisKKyNp
bmNsdWRlICJMb2dnaW5nLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworUmVmUHRyPFByb2Nl
c3NJZGVudGl0eT4gUHJvY2Vzc0lkZW50aXR5OjpjcmVhdGUoSGFuZGxlJiYgaGFuZGxlKQorewor
I2lmIEhBVkUoVEFTS19JREVOVElUWV9UT0tFTikKKyAgICByZXR1cm4gYWRvcHRSZWYobmV3IFBy
b2Nlc3NJZGVudGl0eShXVEZNb3ZlKGhhbmRsZSkpKTsKKyNlbHNlCisgICAgcmV0dXJuIG51bGxw
dHI7CisjZW5kaWYKK30KKworUHJvY2Vzc0lkZW50aXR5OjpQcm9jZXNzSWRlbnRpdHkoSGFuZGxl
JiYgaGFuZGxlKQorICAgIDogbV9oYW5kbGUoV1RGTW92ZShoYW5kbGUpKQoreworfQorCitQcm9j
ZXNzSWRlbnRpdHk6OkhhbmRsZSBQcm9jZXNzSWRlbnRpdHk6OmhhbmRsZUZvckN1cnJlbnRQcm9j
ZXNzKCkKK3sKKyAgICBQcm9jZXNzSWRlbnRpdHk6OkhhbmRsZSByZXN1bHQ7CisjaWYgSEFWRShU
QVNLX0lERU5USVRZX1RPS0VOKQorICAgIHRhc2tfaWRfdG9rZW5fdCBpZGVudGl0eVRva2VuOwor
ICAgIGtlcm5fcmV0dXJuX3Qga3IgPSB0YXNrX2NyZWF0ZV9pZGVudGl0eV90b2tlbihtYWNoX3Rh
c2tfc2VsZigpLCAmaWRlbnRpdHlUb2tlbik7CisgICAgaWYgKGtyID09IEtFUk5fU1VDQ0VTUykK
KyAgICAgICAgcmVzdWx0ID0gTWFjaFNlbmRSaWdodDo6YWRvcHQoaWRlbnRpdHlUb2tlbik7Cisg
ICAgZWxzZQorICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihQcm9jZXNzLCAidGFza19jcmVhdGVf
aWRlbnRpdHlfdG9rZW4oKSBmYWlsZWQ6ICV7cHJpdmF0ZX1zICgleCkiLCBtYWNoX2Vycm9yX3N0
cmluZyhrciksIGtyKTsKKyNlbmRpZgorICAgIHJldHVybiByZXN1bHQ7Cit9CisKK2NvbnN0IFBy
b2Nlc3NJZGVudGl0eTo6SGFuZGxlJiBQcm9jZXNzSWRlbnRpdHk6OmhhbmRsZSgpIGNvbnN0Cit7
CisgICAgcmV0dXJuIG1faGFuZGxlOworfQorCisjaWYgSEFWRShUQVNLX0lERU5USVRZX1RPS0VO
KQordGFza19pZF90b2tlbl90IFByb2Nlc3NJZGVudGl0eTo6dGFza0lkVG9rZW4oKSBjb25zdAor
eworICAgIHJldHVybiBtX2hhbmRsZS5zZW5kUmlnaHQoKTsKK30KKyNlbmRpZgorCit9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Qcm9jZXNzSWRlbnRpdHkuaCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL1Byb2Nlc3NJZGVudGl0eS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmVjMjIxMTFk
OWMxNDNjNGM4YTk3ZTA1YWNlYTU1NzA1ODYwODM2ODgKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9Qcm9jZXNzSWRlbnRpdHkuaApAQCAtMCwwICsxLDYxIEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
YGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05U
UklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVT
SU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICog
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNl
CisKKyNpbmNsdWRlIDx3dGYvVGhyZWFkU2FmZVJlZkNvdW50ZWQuaD4KKworI2lmIEhBVkUoVEFT
S19JREVOVElUWV9UT0tFTikKKyNpbmNsdWRlIDx3dGYvTWFjaFNlbmRSaWdodC5oPgorI2Vsc2UK
KyNpbmNsdWRlIDxtb25vc3RhdGU+CisjZW5kaWYKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCisv
LyBPYmplY3QgdG8gYWNjZXNzIHByb29mIG9mIHByb2Nlc3MgaWRlbnRpdHkuCisvLyBQcm9jZXNz
SWRlbnRpZmllciBpZGVudGlmaWVzIGEgcHJvY2Vzcy4KKy8vIFByb2Nlc3NJZGVudGl0eSBncmFu
dHMgYWNjZXNzIHRvIHRoZSBpZGVudGl0eS4KK2NsYXNzIFdFQkNPUkVfRVhQT1JUIFByb2Nlc3NJ
ZGVudGl0eSBmaW5hbCA6IHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRlZDxQcm9jZXNzSWRlbnRp
dHk+IHsKK3B1YmxpYzoKKyNpZiBIQVZFKFRBU0tfSURFTlRJVFlfVE9LRU4pCisgICAgdXNpbmcg
SGFuZGxlID0gTWFjaFNlbmRSaWdodDsKKyNlbHNlCisgICAgdXNpbmcgSGFuZGxlID0gc3RkOjpt
b25vc3RhdGU7CisjZW5kaWYKKyAgICBzdGF0aWMgUmVmUHRyPFByb2Nlc3NJZGVudGl0eT4gY3Jl
YXRlKEhhbmRsZSYmKTsKKyAgICBzdGF0aWMgSGFuZGxlIGhhbmRsZUZvckN1cnJlbnRQcm9jZXNz
KCk7CisgICAgY29uc3QgSGFuZGxlJiBoYW5kbGUoKSBjb25zdDsKKworI2lmIEhBVkUoVEFTS19J
REVOVElUWV9UT0tFTikKKyAgICB0YXNrX2lkX3Rva2VuX3QgdGFza0lkVG9rZW4oKSBjb25zdDsK
KyNlbmRpZgorcHJpdmF0ZToKKyAgICBQcm9jZXNzSWRlbnRpdHkoSGFuZGxlJiYpOworCisgICAg
SGFuZGxlIG1faGFuZGxlOworfTsKKworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvUmVtb3RlVmlkZW9TYW1wbGUuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL1JlbW90ZVZpZGVvU2FtcGxlLmgKaW5kZXggYTYxNzBiMzI4ZmM0NGFjZTY5
M2RjZGIzNWVlNGQzY2U2ODczMzhhMS4uMGY1YmFlYTg1NmUzZjFhOGNlMTY1YjIwMzg2NWM5NjQ0
MzU0MjU2MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvUmVt
b3RlVmlkZW9TYW1wbGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9S
ZW1vdGVWaWRlb1NhbXBsZS5oCkBAIC0zNyw2ICszNyw4IEBAIHR5cGVkZWYgc3RydWN0IF9fQ1ZC
dWZmZXIqIENWUGl4ZWxCdWZmZXJSZWY7CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAorY2xhc3Mg
UHJvY2Vzc0lkZW50aXR5OworCiBjbGFzcyBSZW1vdGVWaWRlb1NhbXBsZSB7CiBwdWJsaWM6CiAg
ICAgUmVtb3RlVmlkZW9TYW1wbGUoKSA9IGRlZmF1bHQ7CkBAIC00OCw5ICs1MCw3IEBAIHB1Ymxp
YzoKICAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPFJlbW90ZVZpZGVv
U2FtcGxlPiBjcmVhdGUoUmV0YWluUHRyPENWUGl4ZWxCdWZmZXJSZWY+JiYsIE1lZGlhVGltZSYm
IHByZXNlbnRhdGlvblRpbWUsIE1lZGlhU2FtcGxlOjpWaWRlb1JvdGF0aW9uID0gTWVkaWFTYW1w
bGU6OlZpZGVvUm90YXRpb246Ok5vbmUpOwogICAgIFdFQkNPUkVfRVhQT1JUIElPU3VyZmFjZVJl
ZiBzdXJmYWNlKCkgY29uc3Q7CiAKLSNpZiBIQVZFKElPU1VSRkFDRV9TRVRfT1dORVJTSElQX0lE
RU5USVRZKQotICAgIHZvaWQgc2V0T3duZXJzaGlwSWRlbnRpdHkodGFza19pZF90b2tlbl90IG5l
d093bmVyKTsKLSNlbmRpZgorICAgIHZvaWQgc2V0T3duZXJzaGlwSWRlbnRpdHkoUHJvY2Vzc0lk
ZW50aXR5KiByZXNvdXJjZU93bmVyKTsKIAogICAgIGNvbnN0IE1lZGlhVGltZSYgdGltZSgpIGNv
bnN0IHsgcmV0dXJuIG1fdGltZTsgfQogICAgIHVpbnQzMl90IHZpZGVvRm9ybWF0KCkgY29uc3Qg
eyByZXR1cm4gbV92aWRlb0Zvcm1hdDsgfQpAQCAtMTE5LDEzICsxMTksMTEgQEAgcHJpdmF0ZToK
ICAgICBib29sIG1fbWlycm9yZWQgeyBmYWxzZSB9OwogfTsKIAotI2lmIEhBVkUoSU9TVVJGQUNF
X1NFVF9PV05FUlNISVBfSURFTlRJVFkpCi1pbmxpbmUgdm9pZCBSZW1vdGVWaWRlb1NhbXBsZTo6
c2V0T3duZXJzaGlwSWRlbnRpdHkodGFza19pZF90b2tlbl90IG5ld093bmVyKQoraW5saW5lIHZv
aWQgUmVtb3RlVmlkZW9TYW1wbGU6OnNldE93bmVyc2hpcElkZW50aXR5KFByb2Nlc3NJZGVudGl0
eSogcmVzb3VyY2VPd25lcikKIHsKICAgICBpZiAobV9pb1N1cmZhY2UpCi0gICAgICAgIG1faW9T
dXJmYWNlLT5zZXRPd25lcnNoaXBJZGVudGl0eShuZXdPd25lcik7CisgICAgICAgIG1faW9TdXJm
YWNlLT5zZXRPd25lcnNoaXBJZGVudGl0eShyZXNvdXJjZU93bmVyKTsKIH0KLSNlbmRpZgogCiB9
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0dy
YXBoaWNzQ29udGV4dEdMT3BlbkdMQ29jb2EubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jb2NvYS9HcmFwaGljc0NvbnRleHRHTE9wZW5HTENvY29hLm1tCmluZGV4IGZiNzIz
ZGQ0MjJkZTliOWRhZGE5ZTRjYjg5N2QwNjFjYmU2ZDYwM2UuLjE5NzlkYTU2NzI0YmEwZDI1YWRh
NWQxNDFiNjNmNWFiNWYxZTdhOTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2NvY29hL0dyYXBoaWNzQ29udGV4dEdMT3BlbkdMQ29jb2EubW0KKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvR3JhcGhpY3NDb250ZXh0R0xPcGVu
R0xDb2NvYS5tbQpAQCAtMTkzLDggKzE5Myw5IEBAIHN0YXRpYyBib29sIG5lZWRzRUFHTE9uTWFj
KCkKIH0KICNlbmRpZgogCi1HcmFwaGljc0NvbnRleHRHTE9wZW5HTDo6R3JhcGhpY3NDb250ZXh0
R0xPcGVuR0woR3JhcGhpY3NDb250ZXh0R0xBdHRyaWJ1dGVzIGF0dHJzKQorR3JhcGhpY3NDb250
ZXh0R0xPcGVuR0w6OkdyYXBoaWNzQ29udGV4dEdMT3BlbkdMKEdyYXBoaWNzQ29udGV4dEdMQXR0
cmlidXRlcyYmIGF0dHJzLCBSZWZQdHI8UHJvY2Vzc0lkZW50aXR5PiYmIHJlc291cmNlT3duZXIp
CiAgICAgOiBHcmFwaGljc0NvbnRleHRHTChhdHRycykKKyAgICAsIG1fcmVzb3VyY2VPd25lcihX
VEZNb3ZlKHJlc291cmNlT3duZXIpKQogewogICAgIG1faXNGb3JXZWJHTDIgPSBhdHRycy53ZWJH
TFZlcnNpb24gPT0gR3JhcGhpY3NDb250ZXh0R0xXZWJHTFZlcnNpb246OldlYkdMMjsKICAgICBp
ZiAoYXR0cnMudXNlTWV0YWwgJiYgIXBsYXRmb3JtU3VwcG9ydHNNZXRhbChtX2lzRm9yV2ViR0wy
KSkgewpAQCAtNTY1LDYgKzU2Niw4IEBAIGJvb2wgR3JhcGhpY3NDb250ZXh0R0xPcGVuR0w6OmFs
bG9jYXRlQW5kQmluZERpc3BsYXlCdWZmZXJCYWNraW5nKCkKICAgICBhdXRvIGJhY2tpbmcgPSBJ
T1N1cmZhY2U6OmNyZWF0ZShnZXRJbnRlcm5hbEZyYW1lYnVmZmVyU2l6ZSgpLCBEZXN0aW5hdGlv
bkNvbG9yU3BhY2U6OlNSR0IoKSk7CiAgICAgaWYgKCFiYWNraW5nKQogICAgICAgICByZXR1cm4g
ZmFsc2U7CisgICAgaWYgKG1fcmVzb3VyY2VPd25lcikKKyAgICAgICAgYmFja2luZy0+c2V0T3du
ZXJzaGlwSWRlbnRpdHkobV9yZXNvdXJjZU93bmVyLmdldCgpKTsKIAogICAgIGJhY2tpbmctPm1p
Z3JhdGVDb2xvclNwYWNlVG9Qcm9wZXJ0aWVzKCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0lPU3VyZmFjZS5oIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvSU9TdXJmYWNlLmgKaW5kZXggNTY1MjQ3ODIyZGJhMjlm
NzYwMGI5NDA3ZTZmNGFjYjhjMWEwNmFhYy4uMGM0M2NhNGY4MDRkMjYwYzYxMDVlYjkyYjYxMTA5
MWUyYzI1MzJhMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y29jb2EvSU9TdXJmYWNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y29jb2EvSU9TdXJmYWNlLmgKQEAgLTQ2LDYgKzQ2LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewog
Y2xhc3MgR3JhcGhpY3NDb250ZXh0OwogY2xhc3MgSG9zdFdpbmRvdzsKIGNsYXNzIEltYWdlQnVm
ZmVyOworY2xhc3MgUHJvY2Vzc0lkZW50aXR5OwogCiBlbnVtIGNsYXNzIFBpeGVsRm9ybWF0IDog
dWludDhfdDsKIGVudW0gY2xhc3MgVm9sYXRpbGl0eVN0YXRlIDogdWludDhfdDsKQEAgLTE1OSw5
ICsxNjAsNyBAQCBwdWJsaWM6CiAgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIHZvaWQgY29udmVy
dFRvRm9ybWF0KHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpJT1N1cmZhY2U+JiYgaW5TdXJmYWNl
LCBGb3JtYXQsIEZ1bmN0aW9uPHZvaWQoc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OklPU3VyZmFj
ZT4pPiYmKTsKICNlbmRpZiAvLyBIQVZFKElPU1VSRkFDRV9BQ0NFTEVSQVRPUikKIAotI2lmIEhB
VkUoSU9TVVJGQUNFX1NFVF9PV05FUlNISVBfSURFTlRJVFkpCi0gICAgV0VCQ09SRV9FWFBPUlQg
dm9pZCBzZXRPd25lcnNoaXBJZGVudGl0eSh0YXNrX2lkX3Rva2VuX3QgbmV3T3duZXIpOwotI2Vu
ZGlmCisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRPd25lcnNoaXBJZGVudGl0eShQcm9jZXNz
SWRlbnRpdHkqIHJlc291cmNlT3duZXIpOwogCiAgICAgdm9pZCBtaWdyYXRlQ29sb3JTcGFjZVRv
UHJvcGVydGllcygpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jb2NvYS9JT1N1cmZhY2UubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jb2NvYS9JT1N1cmZhY2UubW0KaW5kZXggMDExMTY1Y2UxMWFiY2U2NzVjNGI0N2JmOTE1ZDRj
ODFlNmNlZTk5NS4uZmI5YjIxZjJhMmVmZGRjMDUwOWQ3YTFlNzNjZjhjZTE3YTM3Mjg3MyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvSU9TdXJmYWNl
Lm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0lPU3VyZmFj
ZS5tbQpAQCAtMzQsNiArMzQsNyBAQAogI2ltcG9ydCAiSW1hZ2VCdWZmZXIuaCIKICNpbXBvcnQg
IkxvZ2dpbmcuaCIKICNpbXBvcnQgIlBsYXRmb3JtU2NyZWVuLmgiCisjaW1wb3J0ICJQcm9jZXNz
SWRlbnRpdHkuaCIKICNpbXBvcnQgPHBhbC9zcGkvY2cvQ29yZUdyYXBoaWNzU1BJLmg+CiAjaW1w
b3J0IDx3dGYvQXNzZXJ0aW9ucy5oPgogI2ltcG9ydCA8d3RmL01hY2hTZW5kUmlnaHQuaD4KQEAg
LTQ4NCwxNCArNDg1LDE1IEBAIHZvaWQgSU9TdXJmYWNlOjpjb252ZXJ0VG9Gb3JtYXQoc3RkOjp1
bmlxdWVfcHRyPElPU3VyZmFjZT4mJiBpblN1cmZhY2UsIEZvcm1hdCBmCiAKICNlbmRpZiAvLyBI
QVZFKElPU1VSRkFDRV9BQ0NFTEVSQVRPUikKIAotI2lmIEhBVkUoSU9TVVJGQUNFX1NFVF9PV05F
UlNISVBfSURFTlRJVFkpCi12b2lkIElPU3VyZmFjZTo6c2V0T3duZXJzaGlwSWRlbnRpdHkodGFz
a19pZF90b2tlbl90IG5ld093bmVyKQordm9pZCBJT1N1cmZhY2U6OnNldE93bmVyc2hpcElkZW50
aXR5KFByb2Nlc3NJZGVudGl0eSogcmVzb3VyY2VPd25lcikKIHsKLSAgICBhdXRvIHJlc3VsdCA9
IElPU3VyZmFjZVNldE93bmVyc2hpcElkZW50aXR5KG1fc3VyZmFjZS5nZXQoKSwgbmV3T3duZXIs
IGtJT1N1cmZhY2VNZW1vcnlMZWRnZXJUYWdHcmFwaGljcywgMCk7CisjaWYgSEFWRShJT1NVUkZB
Q0VfU0VUX09XTkVSU0hJUF9JREVOVElUWSkKKyAgICB0YXNrX2lkX3Rva2VuX3Qgb3duZXJUYXNr
SWRUb2tlbiA9IHJlc291cmNlT3duZXIgPyByZXNvdXJjZU93bmVyLT50YXNrSWRUb2tlbigpIDog
MDsKKyAgICBhdXRvIHJlc3VsdCA9IElPU3VyZmFjZVNldE93bmVyc2hpcElkZW50aXR5KG1fc3Vy
ZmFjZS5nZXQoKSwgb3duZXJUYXNrSWRUb2tlbiwga0lPU3VyZmFjZU1lbW9yeUxlZGdlclRhZ0dy
YXBoaWNzLCAwKTsKICAgICBpZiAocmVzdWx0ICE9IGtJT1JldHVyblN1Y2Nlc3MpCi0gICAgICAg
IFJFTEVBU0VfTE9HX0VSUk9SKElPU3VyZmFjZSwgIklPU3VyZmFjZTo6c2V0T3duZXJzaGlwSWRl
bnRpdHk6IEZhaWxlZCB0byBjbGFpbSBvd25lcnNoaXAgb2YgSU9TdXJmYWNlICVwLCBuZXdPd25l
cjogJWQsIGVycm9yOiAlZCIsIG1fc3VyZmFjZS5nZXQoKSwgKGludCluZXdPd25lciwgcmVzdWx0
KTsKLX0KKyAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoSU9TdXJmYWNlLCAiSU9TdXJmYWNlOjpz
ZXRPd25lcnNoaXBJZGVudGl0eTogRmFpbGVkIHRvIGNsYWltIG93bmVyc2hpcCBvZiBJT1N1cmZh
Y2UgJXAsIHRhc2sgaWQgdG9rZW46ICVkLCBlcnJvcjogJWQiLCBtX3N1cmZhY2UuZ2V0KCksIChp
bnQpb3duZXJUYXNrSWRUb2tlbiwgcmVzdWx0KTsKICNlbmRpZgorfQogCiB2b2lkIElPU3VyZmFj
ZTo6bWlncmF0ZUNvbG9yU3BhY2VUb1Byb3BlcnRpZXMoKQogewpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvV2ViUHJvY2Vzc0dyYXBoaWNzQ29udGV4
dEdMT3BlbkdMQ29jb2EubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2Nv
YS9XZWJQcm9jZXNzR3JhcGhpY3NDb250ZXh0R0xPcGVuR0xDb2NvYS5tbQppbmRleCAyNTYyNWVk
YmZlMjU0ZTM3NWZlZjE2OTgxNjlmNTJlZmQ0YWE3NzIyLi5jYWM0NGExZGI0ZGZjMGY3MTcwNGM3
NDE4NGRhNDYzNzJiMzEyM2FmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jb2NvYS9XZWJQcm9jZXNzR3JhcGhpY3NDb250ZXh0R0xPcGVuR0xDb2NvYS5tbQor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9XZWJQcm9jZXNzR3Jh
cGhpY3NDb250ZXh0R0xPcGVuR0xDb2NvYS5tbQpAQCAtNTcsNyArNTcsNyBAQCBwdWJsaWM6CiAg
ICAgdm9pZCBwcmVwYXJlRm9yRGlzcGxheSgpIGZpbmFsOwogcHJpdmF0ZToKICAgICBXZWJQcm9j
ZXNzR3JhcGhpY3NDb250ZXh0R0xPcGVuR0woR3JhcGhpY3NDb250ZXh0R0xBdHRyaWJ1dGVzIGF0
dHJpYnV0ZXMpCi0gICAgICAgIDogR3JhcGhpY3NDb250ZXh0R0xPcGVuR0woYXR0cmlidXRlcykK
KyAgICAgICAgOiBHcmFwaGljc0NvbnRleHRHTE9wZW5HTChXVEZNb3ZlKGF0dHJpYnV0ZXMpLCB7
IH0pCiAgICAgICAgICwgbV93ZWJHTExheWVyKGNyZWF0ZVdlYkdMTGF5ZXIoYXR0cmlidXRlcykp
CiAgICAgewogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL29wZW5nbC9HcmFwaGljc0NvbnRleHRHTE9wZW5HTC5oIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dyYXBoaWNzQ29udGV4dEdMT3BlbkdMLmgKaW5kZXggMzgy
NzNiMDcyYjU2ZDNmZGEyYmNkZTM0OGIzZTBmNzQyYzIwMDVlNS4uZmUxM2VhZmY0ZDczZmE2NzAx
NjM2MGU4ZDJiOGNmOGQzM2FjOGU1MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3Mvb3BlbmdsL0dyYXBoaWNzQ29udGV4dEdMT3BlbkdMLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dyYXBoaWNzQ29udGV4dEdMT3BlbkdM
LmgKQEAgLTI4LDYgKzI4LDcgQEAKICNpZiBFTkFCTEUoV0VCR0wpCiAKICNpbmNsdWRlICJHcmFw
aGljc0NvbnRleHRHTC5oIgorI2luY2x1ZGUgIlByb2Nlc3NJZGVudGl0eS5oIgogI2luY2x1ZGUg
PG1lbW9yeT4KICNpbmNsdWRlIDx3dGYvSGFzaENvdW50ZWRTZXQuaD4KICNpbmNsdWRlIDx3dGYv
SGFzaE1hcC5oPgpAQCAtNTQzLDggKzU0NCw5IEBAIHB1YmxpYzoKICNlbmRpZgogCiBwcm90ZWN0
ZWQ6Ci0gICAgR3JhcGhpY3NDb250ZXh0R0xPcGVuR0woR3JhcGhpY3NDb250ZXh0R0xBdHRyaWJ1
dGVzKTsKKyAgICBHcmFwaGljc0NvbnRleHRHTE9wZW5HTChHcmFwaGljc0NvbnRleHRHTEF0dHJp
YnV0ZXMmJiwgUmVmUHRyPFByb2Nlc3NJZGVudGl0eT4mJiByZXNvdXJjZU93bmVyKTsKICAgICBi
b29sIGlzVmFsaWQoKSBjb25zdDsKKyAgICBSZWZQdHI8UHJvY2Vzc0lkZW50aXR5PiBtX3Jlc291
cmNlT3duZXI7CiAjaWYgUExBVEZPUk0oQ09DT0EpCiAgICAgR3JhcGhpY3NDb250ZXh0R0xJT1N1
cmZhY2VTd2FwQ2hhaW4gbV9zd2FwQ2hhaW47CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9HcmFwaGljc0NvbnRleHRHTFRleHR1cmVN
YXBwZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL0dyYXBo
aWNzQ29udGV4dEdMVGV4dHVyZU1hcHBlci5jcHAKaW5kZXggZTI4NTFjMmUzZDIyMTc3MTY5NGJk
ZDZmMTJmMGU1Zjc4OTljNzU1Yi4uMzA3NzcyMjBjOWNlZWRmNWRjNDIzNTBkYTQxNjQwNGUyZWJl
OWMwYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFw
L0dyYXBoaWNzQ29udGV4dEdMVGV4dHVyZU1hcHBlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL0dyYXBoaWNzQ29udGV4dEdMVGV4dHVyZU1hcHBlci5j
cHAKQEAgLTg1LDcgKzg1LDcgQEAgUmVmUHRyPEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMPiBHcmFw
aGljc0NvbnRleHRHTE9wZW5HTDo6Y3JlYXRlKEdyYXBoaWNzQ29udGV4dEcKICAgICAgICAgcmV0
dXJuIG51bGxwdHI7CiAKICAgICAvLyBDcmVhdGUgdGhlIEdyYXBoaWNzQ29udGV4dEdMT3BlbkdM
IG9iamVjdCBmaXJzdCBpbiBvcmRlciB0byBlc3RhYmxpc3QgYSBjdXJyZW50IGNvbnRleHQgb24g
dGhpcyB0aHJlYWQuCi0gICAgYXV0byBjb250ZXh0ID0gYWRvcHRSZWYobmV3IEdyYXBoaWNzQ29u
dGV4dEdMT3BlbkdMKGF0dHJpYnV0ZXMpKTsKKyAgICBhdXRvIGNvbnRleHQgPSBhZG9wdFJlZihu
ZXcgR3JhcGhpY3NDb250ZXh0R0xPcGVuR0woV1RGTW92ZShhdHRyaWJ1dGVzLCB7IH0pKSk7CiAK
ICNpZiBVU0UoTElCRVBPWFkpICYmIFVTRShPUEVOR0xfRVMpICYmIEVOQUJMRShXRUJHTDIpCiAg
ICAgLy8gQmFpbCBpZiBHTEVTMyB3YXMgcmVxdWVzdGVkIGJ1dCBjYW5ub3QgYmUgcHJvdmlkZWQu
CkBAIC05OSw4ICs5OSw5IEBAIFJlZlB0cjxHcmFwaGljc0NvbnRleHRHTE9wZW5HTD4gR3JhcGhp
Y3NDb250ZXh0R0xPcGVuR0w6OmNyZWF0ZShHcmFwaGljc0NvbnRleHRHCiB9CiAKICNpZiBVU0Uo
QU5HTEUpCi1HcmFwaGljc0NvbnRleHRHTE9wZW5HTDo6R3JhcGhpY3NDb250ZXh0R0xPcGVuR0wo
R3JhcGhpY3NDb250ZXh0R0xBdHRyaWJ1dGVzIGF0dHJpYnV0ZXMpCitHcmFwaGljc0NvbnRleHRH
TE9wZW5HTDo6R3JhcGhpY3NDb250ZXh0R0xPcGVuR0woR3JhcGhpY3NDb250ZXh0R0xBdHRyaWJ1
dGVzJiYgYXR0cmlidXRlcywgUmVmUHRyPFByb2Nlc3NJZGVudGl0eT4mJiByZXNvdXJjZU93bmVy
KQogICAgIDogR3JhcGhpY3NDb250ZXh0R0woYXR0cmlidXRlcykKKyAgICAsIG1fcmVzb3VyY2VP
d25lcihXVEZNb3ZlKHJlc291cmNlT3duZXIpKQogewogI2lmIEVOQUJMRShXRUJHTDIpCiAgICAg
bV9pc0ZvcldlYkdMMiA9IGF0dHJpYnV0ZXMud2ViR0xWZXJzaW9uID09IEdyYXBoaWNzQ29udGV4
dEdMV2ViR0xWZXJzaW9uOjpXZWJHTDI7CkBAIC0xNjgsOCArMTY5LDkgQEAgR3JhcGhpY3NDb250
ZXh0R0xPcGVuR0w6OkdyYXBoaWNzQ29udGV4dEdMT3BlbkdMKEdyYXBoaWNzQ29udGV4dEdMQXR0
cmlidXRlcyBhdHQKICAgICBnbDo6Q2xlYXJDb2xvcigwLCAwLCAwLCAwKTsKIH0KICNlbHNlCi1H
cmFwaGljc0NvbnRleHRHTE9wZW5HTDo6R3JhcGhpY3NDb250ZXh0R0xPcGVuR0woR3JhcGhpY3ND
b250ZXh0R0xBdHRyaWJ1dGVzIGF0dHJpYnV0ZXMpCitHcmFwaGljc0NvbnRleHRHTE9wZW5HTDo6
R3JhcGhpY3NDb250ZXh0R0xPcGVuR0woR3JhcGhpY3NDb250ZXh0R0xBdHRyaWJ1dGVzJiYgYXR0
cmlidXRlcywgUmVmUHRyPFByb2Nlc3NJZGVudGl0eT4mJiByZXNvdXJjZU93bmVyKQogICAgIDog
R3JhcGhpY3NDb250ZXh0R0woYXR0cmlidXRlcykKKyAgICAsIG1fcmVzb3VyY2VPd25lcihXVEZN
b3ZlKHJlc291cmNlT3duZXIpKQogewogI2lmIFVTRShOSUNPU0lBKQogICAgIG1fbmljb3NpYUxh
eWVyID0gbWFrZVVuaXF1ZTxOaWNvc2lhOjpHQ0dMTGF5ZXI+KCp0aGlzKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcCBi
L1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcApp
bmRleCA1MmFlODgxOTM3MWEzZWRkNjBjZDcyMGNkMDg0YmIzYzg1N2ZhN2NkLi4xZWY5YTZiMjU4
MTYzMzdmMzhkOWJiMGIzYzc0ODlmY2QxYzk0ODVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L0dQVVByb2Nlc3MvR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9HUFVQcm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwCkBAIC0xOTksMTIg
KzE5OSwxMCBAQCBwcml2YXRlOgogICAgIH0KICNlbmRpZgogCi0jaWYgSEFWRShJT1NVUkZBQ0Vf
U0VUX09XTkVSU0hJUF9JREVOVElUWSkKLSAgICBzdGQ6Om9wdGlvbmFsPHRhc2tfaWRfdG9rZW5f
dD4gd2ViUHJvY2Vzc0lkZW50aXR5VG9rZW4oKSBjb25zdCBmaW5hbAorICAgIFJlZlB0cjxQcm9j
ZXNzSWRlbnRpdHk+IHJlc291cmNlT3duZXIoKSBjb25zdCBmaW5hbAogICAgIHsKLSAgICAgICAg
cmV0dXJuIG1fcHJvY2Vzcy53ZWJQcm9jZXNzSWRlbnRpdHlUb2tlbigpOworICAgICAgICByZXR1
cm4gbV9wcm9jZXNzLndlYlByb2Nlc3NJZGVudGl0eSgpOwogICAgIH0KLSNlbmRpZgogCiAgICAg
R1BVQ29ubmVjdGlvblRvV2ViUHJvY2VzcyYgbV9wcm9jZXNzOwogfTsKQEAgLTIyMCw5ICsyMTgs
NyBAQCBHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNz
KEdQVVByb2Nlc3MmIGdwdVByb2Nlc3MsIFdlYgogICAgIDogbV9jb25uZWN0aW9uKElQQzo6Q29u
bmVjdGlvbjo6Y3JlYXRlU2VydmVyQ29ubmVjdGlvbihjb25uZWN0aW9uSWRlbnRpZmllciwgKnRo
aXMpKQogICAgICwgbV9ncHVQcm9jZXNzKGdwdVByb2Nlc3MpCiAgICAgLCBtX3dlYlByb2Nlc3NJ
ZGVudGlmaWVyKHdlYlByb2Nlc3NJZGVudGlmaWVyKQotI2lmIEhBVkUoVEFTS19JREVOVElUWV9U
T0tFTikKLSAgICAsIG1fd2ViUHJvY2Vzc0lkZW50aXR5VG9rZW4oV1RGTW92ZShwYXJhbWV0ZXJz
LndlYlByb2Nlc3NJZGVudGl0eVRva2VuKSkKLSNlbmRpZgorICAgICwgbV93ZWJQcm9jZXNzSWRl
bnRpdHkoUHJvY2Vzc0lkZW50aXR5OjpjcmVhdGUoV1RGTW92ZShwYXJhbWV0ZXJzLndlYlByb2Nl
c3NJZGVudGl0eUhhbmRsZSkpKQogICAgICwgbV9yZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94
eShtYWtlVW5pcXVlUmVmPFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5PigqdGhpcykpCiAg
ICAgLCBtX3Nlc3Npb25JRChzZXNzaW9uSUQpCiAjaWYgUExBVEZPUk0oQ09DT0EpICYmIFVTRShM
SUJXRUJSVEMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvR1BVQ29ubmVj
dGlvblRvV2ViUHJvY2Vzcy5oIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVUNvbm5lY3Rp
b25Ub1dlYlByb2Nlc3MuaAppbmRleCBhZTc5NTA1MjU4NjBkZTNjZjZhMmIxNzg4ZmUzNWE1ZWFi
ZGE1NjdkLi5lMDQyOGI4NWU1Y2ZkYWMyYzQwNjVhOTEwM2I5YzU1ZTZiNmNiNWE4IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNz
LmgKQEAgLTM5LDYgKzM5LDcgQEAKICNpbmNsdWRlIDxXZWJDb3JlL05vd1BsYXlpbmdNYW5hZ2Vy
Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9QYWdlSWRlbnRpZmllci5oPgogI2luY2x1ZGUgPFdlYkNv
cmUvUHJvY2Vzc0lkZW50aWZpZXIuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1Byb2Nlc3NJZGVudGl0
eS5oPgogI2luY2x1ZGUgPHBhbC9TZXNzaW9uSUQuaD4KICNpbmNsdWRlIDx3dGYvTG9nZ2VyLmg+
CiAjaW5jbHVkZSA8d3RmL01hY2hTZW5kUmlnaHQuaD4KQEAgLTE0NywxMCArMTQ4LDcgQEAgcHVi
bGljOgogICAgIHZvaWQgZGlzcGF0Y2hEaXNwbGF5V2FzUmVjb25maWd1cmVkRm9yVGVzdGluZygp
IHsgZGlzcGF0Y2hEaXNwbGF5V2FzUmVjb25maWd1cmVkKCk7IH07CiAjZW5kaWYKIAotI2lmIEhB
VkUoVEFTS19JREVOVElUWV9UT0tFTikKLSAgICB0YXNrX2lkX3Rva2VuX3Qgd2ViUHJvY2Vzc0lk
ZW50aXR5VG9rZW4oKSBjb25zdCB7IHJldHVybiBzdGF0aWNfY2FzdDx0YXNrX2lkX3Rva2VuX3Q+
KG1fd2ViUHJvY2Vzc0lkZW50aXR5VG9rZW4uc2VuZFJpZ2h0KCkpOyB9Ci0jZW5kaWYKLQorICAg
IFJlZlB0cjxXZWJDb3JlOjpQcm9jZXNzSWRlbnRpdHk+IHdlYlByb2Nlc3NJZGVudGl0eSgpIGNv
bnN0IHsgcmV0dXJuIG1fd2ViUHJvY2Vzc0lkZW50aXR5OyB9CiAjaWYgRU5BQkxFKEVOQ1JZUFRF
RF9NRURJQSkKICAgICBSZW1vdGVDRE1GYWN0b3J5UHJveHkmIGNkbUZhY3RvcnlQcm94eSgpOwog
I2VuZGlmCkBAIC0yNzMsOSArMjcxLDcgQEAgcHJpdmF0ZToKICAgICBJUEM6Ok1lc3NhZ2VSZWNl
aXZlck1hcCBtX21lc3NhZ2VSZWNlaXZlck1hcDsKICAgICBSZWY8R1BVUHJvY2Vzcz4gbV9ncHVQ
cm9jZXNzOwogICAgIGNvbnN0IFdlYkNvcmU6OlByb2Nlc3NJZGVudGlmaWVyIG1fd2ViUHJvY2Vz
c0lkZW50aWZpZXI7Ci0jaWYgSEFWRShUQVNLX0lERU5USVRZX1RPS0VOKQotICAgIE1hY2hTZW5k
UmlnaHQgbV93ZWJQcm9jZXNzSWRlbnRpdHlUb2tlbjsKLSNlbmRpZgorICAgIFJlZlB0cjxXZWJD
b3JlOjpQcm9jZXNzSWRlbnRpdHk+IG1fd2ViUHJvY2Vzc0lkZW50aXR5OwogI2lmIEVOQUJMRShX
RUJfQVVESU8pCiAgICAgc3RkOjp1bmlxdWVfcHRyPFJlbW90ZUF1ZGlvRGVzdGluYXRpb25NYW5h
Z2VyPiBtX3JlbW90ZUF1ZGlvRGVzdGluYXRpb25NYW5hZ2VyOwogI2VuZGlmCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvR1BVUHJvY2Vzc0dyYXBoaWNzQ29u
dGV4dEdMLmggYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvR1BVUHJvY2Vzc0dy
YXBoaWNzQ29udGV4dEdMLmgKaW5kZXggMWVlZTE4ZDYyZjA1MDlmMDA5ZjM0YzNlZGU2OGQzNWUw
ZDA4OTY1My4uZTcyOWEzYTcxNTQ1MmMzYWQ0NjRjN2NjOWVkNWMwZWNiM2IxMWUwOCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL0dQVVByb2Nlc3NHcmFwaGlj
c0NvbnRleHRHTC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9HUFVQ
cm9jZXNzR3JhcGhpY3NDb250ZXh0R0wuaApAQCAtMjksMTEgKzI5LDEzIEBACiAjaW5jbHVkZSA8
V2ViQ29yZS9FeHRlbnNpb25zR0wuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0dyYXBoaWNzQ29udGV4
dEdMT3BlbkdMLmg+CiAKK25hbWVzcGFjZSBXZWJLaXQgeworCiBjbGFzcyBHUFVQcm9jZXNzR3Jh
cGhpY3NDb250ZXh0R0xPcGVuR0wgZmluYWwgOiBwdWJsaWMgV2ViQ29yZTo6R3JhcGhpY3NDb250
ZXh0R0xPcGVuR0wgewogcHVibGljOgotICAgIHN0YXRpYyBSZWZQdHI8R1BVUHJvY2Vzc0dyYXBo
aWNzQ29udGV4dEdMT3BlbkdMPiBjcmVhdGUoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0R0xBdHRy
aWJ1dGVzIGF0dHJpYnV0ZXMpCisgICAgc3RhdGljIFJlZlB0cjxHUFVQcm9jZXNzR3JhcGhpY3ND
b250ZXh0R0xPcGVuR0w+IGNyZWF0ZShXZWJDb3JlOjpHcmFwaGljc0NvbnRleHRHTEF0dHJpYnV0
ZXMgYXR0cmlidXRlcywgUmVmUHRyPFdlYkNvcmU6OlByb2Nlc3NJZGVudGl0eT4gcmVzb3VyY2VP
d25lcikKICAgICB7Ci0gICAgICAgIGF1dG8gY29udGV4dCA9IGFkb3B0UmVmKCpuZXcgR1BVUHJv
Y2Vzc0dyYXBoaWNzQ29udGV4dEdMT3BlbkdMKFdURk1vdmUoYXR0cmlidXRlcykpKTsKKyAgICAg
ICAgYXV0byBjb250ZXh0ID0gYWRvcHRSZWYoKm5ldyBHUFVQcm9jZXNzR3JhcGhpY3NDb250ZXh0
R0xPcGVuR0woV1RGTW92ZShhdHRyaWJ1dGVzKSwgV1RGTW92ZShyZXNvdXJjZU93bmVyKSkpOwog
ICAgICAgICBpZiAoIWNvbnRleHQtPmlzVmFsaWQoKSkKICAgICAgICAgICAgIHJldHVybiBudWxs
cHRyOwogICAgICAgICByZXR1cm4gY29udGV4dDsKQEAgLTQ0LDEwICs0NiwxMiBAQCBwdWJsaWM6
CiAgICAgdm9pZCBtYXJrRGlzcGxheUJ1ZmZlckluVXNlKCkgeyByZXR1cm4gbV9zd2FwQ2hhaW4u
bWFya0Rpc3BsYXlCdWZmZXJJblVzZSgpOyB9CiAjZW5kaWYKIHByaXZhdGU6Ci0gICAgR1BVUHJv
Y2Vzc0dyYXBoaWNzQ29udGV4dEdMT3BlbkdMKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dEdMQXR0
cmlidXRlcyBhdHRyaWJ1dGVzKQotICAgICAgICA6IEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMKGF0
dHJpYnV0ZXMpCisgICAgR1BVUHJvY2Vzc0dyYXBoaWNzQ29udGV4dEdMT3BlbkdMKFdlYkNvcmU6
OkdyYXBoaWNzQ29udGV4dEdMQXR0cmlidXRlcyYmIGF0dHJpYnV0ZXMsIFJlZlB0cjxXZWJDb3Jl
OjpQcm9jZXNzSWRlbnRpdHk+JiYgcmVzb3VyY2VPd25lcikKKyAgICAgICAgOiBHcmFwaGljc0Nv
bnRleHRHTE9wZW5HTChXVEZNb3ZlKGF0dHJpYnV0ZXMpLCBXVEZNb3ZlKHJlc291cmNlT3duZXIp
KQogICAgIHsKICAgICB9CiB9OwogCit9CisKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZUdyYXBoaWNzQ29udGV4dEdMQ29jb2EuY3Bw
IGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZUdyYXBoaWNzQ29udGV4
dEdMQ29jb2EuY3BwCmluZGV4IGI0MzdhNWJlZWNkNWQ2YWM1ODNjYTU5N2E5NWUyNzcxMmZhZGQ2
MjMuLjBjYzIyYjQzM2E0NWU3NGQ1NDBlNGQ1NGU5Y2E2N2JiMTA5NWUxZDMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVHcmFwaGljc0NvbnRleHRH
TENvY29hLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3Rl
R3JhcGhpY3NDb250ZXh0R0xDb2NvYS5jcHAKQEAgLTQ3LDkgKzQ3LDcgQEAgcHVibGljOgogICAg
IHZvaWQgcHJlcGFyZUZvckRpc3BsYXkoQ29tcGxldGlvbkhhbmRsZXI8dm9pZChXVEY6Ok1hY2hT
ZW5kUmlnaHQmJik+JiYpIGZpbmFsOwogcHJpdmF0ZToKICAgICBXZWJDb3JlOjpHcmFwaGljc0Nv
bnRleHRHTElPU3VyZmFjZVN3YXBDaGFpbiBtX3N3YXBDaGFpbiBXVEZfR1VBUkRFRF9CWV9MT0NL
KG1fc3RyZWFtVGhyZWFkKTsKLSNpZiBIQVZFKElPU1VSRkFDRV9TRVRfT1dORVJTSElQX0lERU5U
SVRZKQotICAgIHRhc2tfaWRfdG9rZW5fdCBtX3dlYlByb2Nlc3NJZGVudGl0eVRva2VuOwotI2Vu
ZGlmCisgICAgUmVmUHRyPFByb2Nlc3NJZGVudGl0eT4gbV9yZXNvdXJjZU93bmVyOwogfTsKIAog
fQpAQCAtNjMsOSArNjEsNyBAQCBSZWY8UmVtb3RlR3JhcGhpY3NDb250ZXh0R0w+IFJlbW90ZUdy
YXBoaWNzQ29udGV4dEdMOjpjcmVhdGUoR1BVQ29ubmVjdGlvblRvV2ViUAogCiBSZW1vdGVHcmFw
aGljc0NvbnRleHRHTENvY29hOjpSZW1vdGVHcmFwaGljc0NvbnRleHRHTENvY29hKEdQVUNvbm5l
Y3Rpb25Ub1dlYlByb2Nlc3MmIGdwdUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MsIEdyYXBoaWNzQ29u
dGV4dEdMSWRlbnRpZmllciBncmFwaGljc0NvbnRleHRHTElkZW50aWZpZXIsIFJlbW90ZVJlbmRl
cmluZ0JhY2tlbmQmIHJlbmRlcmluZ0JhY2tlbmQsIElQQzo6U3RyZWFtQ29ubmVjdGlvbkJ1ZmZl
ciYmIHN0cmVhbSkKICAgICA6IFJlbW90ZUdyYXBoaWNzQ29udGV4dEdMKGdwdUNvbm5lY3Rpb25U
b1dlYlByb2Nlc3MsIGdyYXBoaWNzQ29udGV4dEdMSWRlbnRpZmllciwgcmVuZGVyaW5nQmFja2Vu
ZCwgV1RGTW92ZShzdHJlYW0pKQotI2lmIEhBVkUoSU9TVVJGQUNFX1NFVF9PV05FUlNISVBfSURF
TlRJVFkpCi0gICAgLCBtX3dlYlByb2Nlc3NJZGVudGl0eVRva2VuKGdwdUNvbm5lY3Rpb25Ub1dl
YlByb2Nlc3Mud2ViUHJvY2Vzc0lkZW50aXR5VG9rZW4oKSkKLSNlbmRpZgorICAgICwgbV9yZXNv
dXJjZU93bmVyKGdwdUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3Mud2ViUHJvY2Vzc0lkZW50aXR5KCkp
CiB7CiAKIH0KQEAgLTczLDcgKzY5LDcgQEAgUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xDb2NvYTo6
UmVtb3RlR3JhcGhpY3NDb250ZXh0R0xDb2NvYShHUFVDb25uZWN0aW9uVG9XZWJQcm8KIHZvaWQg
UmVtb3RlR3JhcGhpY3NDb250ZXh0R0xDb2NvYTo6cGxhdGZvcm1Xb3JrUXVldWVJbml0aWFsaXpl
KFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dEdMQXR0cmlidXRlcyYmIGF0dHJpYnV0ZXMpCiB7CiAg
ICAgYXNzZXJ0SXNDdXJyZW50KG1fc3RyZWFtVGhyZWFkKTsKLSAgICBtX2NvbnRleHQgPSBHUFVQ
cm9jZXNzR3JhcGhpY3NDb250ZXh0R0xPcGVuR0w6OmNyZWF0ZShXVEZNb3ZlKGF0dHJpYnV0ZXMp
KTsKKyAgICBtX2NvbnRleHQgPSBHUFVQcm9jZXNzR3JhcGhpY3NDb250ZXh0R0xPcGVuR0w6OmNy
ZWF0ZShXVEZNb3ZlKGF0dHJpYnV0ZXMpLCBtX3Jlc291cmNlT3duZXIpOwogfQogCiB2b2lkIFJl
bW90ZUdyYXBoaWNzQ29udGV4dEdMQ29jb2E6OnByZXBhcmVGb3JEaXNwbGF5KENvbXBsZXRpb25I
YW5kbGVyPHZvaWQoV1RGOjpNYWNoU2VuZFJpZ2h0JiYpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQpA
QCAtODQsMTAgKzgwLDYgQEAgdm9pZCBSZW1vdGVHcmFwaGljc0NvbnRleHRHTENvY29hOjpwcmVw
YXJlRm9yRGlzcGxheShDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdURjoKICAgICBNYWNoU2VuZFJp
Z2h0IHNlbmRSaWdodDsKICAgICBpZiAoZGlzcGxheUJ1ZmZlcikgewogICAgICAgICBtX2NvbnRl
eHQtPm1hcmtEaXNwbGF5QnVmZmVySW5Vc2UoKTsKLSNpZiBIQVZFKElPU1VSRkFDRV9TRVRfT1dO
RVJTSElQX0lERU5USVRZKQotICAgICAgICAvLyBNYXJrIHRoZSBJT1N1cmZhY2UgYXMgYmVpbmcg
b3duZWQgYnkgdGhlIFdlYlByb2Nlc3MgZXZlbiB0aG91Z2ggaXQgd2FzIGNvbnN0cnVjdGVkIGJ5
IHRoZSBHUFVQcm9jZXNzIHNvIHRoYXQgSmV0c2FtIGtub3dzIHdoaWNoIHByb2Nlc3MgdG8ga2ls
bC4KLSAgICAgICAgZGlzcGxheUJ1ZmZlci0+c2V0T3duZXJzaGlwSWRlbnRpdHkobV93ZWJQcm9j
ZXNzSWRlbnRpdHlUb2tlbik7Ci0jZW5kaWYKICAgICAgICAgc2VuZFJpZ2h0ID0gZGlzcGxheUJ1
ZmZlci0+Y3JlYXRlU2VuZFJpZ2h0KCk7CiAgICAgfQogICAgIGNvbXBsZXRpb25IYW5kbGVyKFdU
Rk1vdmUoc2VuZFJpZ2h0KSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mv
Z3JhcGhpY3MvUmVtb3RlSW1hZ2VCdWZmZXIuaCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9n
cmFwaGljcy9SZW1vdGVJbWFnZUJ1ZmZlci5oCmluZGV4IGEzZDQ5NGZlOGJmNmExOTY0N2VmMTkw
YzlkYjQwNDJhZWNlNjcyMjAuLjE5OTI1OGI2M2Q2OGU4OGJjYTRhOTAyMzZmZWQ0MDQ4MDQxYjYy
MGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVJ
bWFnZUJ1ZmZlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1v
dGVJbWFnZUJ1ZmZlci5oCkBAIC02OSwxMyArNjksMTEgQEAgcHVibGljOgogICAgICAgICAgICAg
Y29udGV4dCgpLnJlc3RvcmUoKTsKICAgICB9CiAKLSNpZiBIQVZFKElPU1VSRkFDRV9TRVRfT1dO
RVJTSElQX0lERU5USVRZKQotICAgIHZvaWQgc2V0UHJvY2Vzc093bmVyc2hpcCh0YXNrX2lkX3Rv
a2VuX3QgbmV3T3duZXIpCisgICAgdm9pZCBzZXRPd25lcnNoaXBJZGVudGl0eShXZWJDb3JlOjpQ
cm9jZXNzSWRlbnRpdHkqIHJlc291cmNlT3duZXIpCiAgICAgewogICAgICAgICBpZiAobV9iYWNr
ZW5kKQotICAgICAgICAgICAgbV9iYWNrZW5kLT5zZXRQcm9jZXNzT3duZXJzaGlwKG5ld093bmVy
KTsKKyAgICAgICAgICAgIG1fYmFja2VuZC0+c2V0T3duZXJzaGlwSWRlbnRpdHkocmVzb3VyY2VP
d25lcik7CiAgICAgfQotI2VuZGlmCiAKIHByaXZhdGU6CiAgICAgZnJpZW5kIGNsYXNzIFJlbW90
ZVJlbmRlcmluZ0JhY2tlbmQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mv
Z3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5jcHAgYi9Tb3VyY2UvV2ViS2l0L0dQVVBy
b2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5jcHAKaW5kZXggZGI0ZTEzN2Iy
ZjZhZGZiOWNkMTQ3OGExZDg3MmU2NjRkMWE5NmRlYi4uMmM4ZjRiZTJiMDcwZGU2MTMwNGEwMmZi
YTYwMjA2Y2M3YWRiNzY4MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dy
YXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BV
UHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmNwcApAQCAtODQsNiArODQs
NyBAQCBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kOjpSZW1vdGVSZW5kZXJpbmdCYWNrZW5kKEdQVUNv
bm5lY3Rpb25Ub1dlYlByb2Nlc3MmIGdwdUNvbgogICAgICwgbV9zdHJlYW1Db25uZWN0aW9uKElQ
Qzo6U3RyZWFtU2VydmVyQ29ubmVjdGlvbjo6Y3JlYXRlKGdwdUNvbm5lY3Rpb25Ub1dlYlByb2Nl
c3MuY29ubmVjdGlvbigpLCBXVEZNb3ZlKHN0cmVhbUJ1ZmZlciksIG1fd29ya1F1ZXVlLmdldCgp
KSkKICAgICAsIG1fcmVtb3RlUmVzb3VyY2VDYWNoZShncHVDb25uZWN0aW9uVG9XZWJQcm9jZXNz
LndlYlByb2Nlc3NJZGVudGlmaWVyKCkpCiAgICAgLCBtX2dwdUNvbm5lY3Rpb25Ub1dlYlByb2Nl
c3MoZ3B1Q29ubmVjdGlvblRvV2ViUHJvY2VzcykKKyAgICAsIG1fcmVzb3VyY2VPd25lcihncHVD
b25uZWN0aW9uVG9XZWJQcm9jZXNzLndlYlByb2Nlc3NJZGVudGl0eSgpKQogICAgICwgbV9yZW5k
ZXJpbmdCYWNrZW5kSWRlbnRpZmllcihjcmVhdGlvblBhcmFtZXRlcnMuaWRlbnRpZmllcikKIHsK
ICAgICBBU1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOwpAQCAtMTczLDEwICsxNzQsOSBAQCB2b2lk
IFJlbW90ZVJlbmRlcmluZ0JhY2tlbmQ6OmNyZWF0ZUltYWdlQnVmZmVyV2l0aFF1YWxpZmllZElk
ZW50aWZpZXIoY29uc3QgRmxvYQogCiAgICAgaWYgKHJlbmRlcmluZ01vZGUgPT0gUmVuZGVyaW5n
TW9kZTo6QWNjZWxlcmF0ZWQpIHsKICAgICAgICAgaWYgKGF1dG8gYWNjZWxlcmF0ZWRJbWFnZUJ1
ZmZlciA9IEFjY2VsZXJhdGVkUmVtb3RlSW1hZ2VCdWZmZXI6OmNyZWF0ZShsb2dpY2FsU2l6ZSwg
cmVzb2x1dGlvblNjYWxlLCBjb2xvclNwYWNlLCBwaXhlbEZvcm1hdCwgKnRoaXMsIGltYWdlQnVm
ZmVyUmVzb3VyY2VJZGVudGlmaWVyKSkgewotI2lmIEhBVkUoSU9TVVJGQUNFX1NFVF9PV05FUlNI
SVBfSURFTlRJVFkpCiAgICAgICAgICAgICAvLyBNYXJrIHRoZSBJT1N1cmZhY2UgYXMgYmVpbmcg
b3duZWQgYnkgdGhlIFdlYlByb2Nlc3MgZXZlbiB0aG91Z2ggaXQgd2FzIGNvbnN0cnVjdGVkIGJ5
IHRoZSBHUFVQcm9jZXNzIHNvIHRoYXQgSmV0c2FtIGtub3dzIHdoaWNoIHByb2Nlc3MgdG8ga2ls
bC4KLSAgICAgICAgICAgIGFjY2VsZXJhdGVkSW1hZ2VCdWZmZXItPnNldFByb2Nlc3NPd25lcnNo
aXAobV9ncHVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLT53ZWJQcm9jZXNzSWRlbnRpdHlUb2tlbigp
KTsKLSNlbmRpZgorICAgICAgICAgICAgaWYgKG1fcmVzb3VyY2VPd25lcikKKyAgICAgICAgICAg
ICAgICBhY2NlbGVyYXRlZEltYWdlQnVmZmVyLT5zZXRPd25lcnNoaXBJZGVudGl0eShtX3Jlc291
cmNlT3duZXIuZ2V0KCkpOwogICAgICAgICAgICAgaW1hZ2VCdWZmZXIgPSBXVEZNb3ZlKGFjY2Vs
ZXJhdGVkSW1hZ2VCdWZmZXIpOwogICAgICAgICB9CiAgICAgfQpAQCAtMjY4LDYgKzI2OCw3IEBA
IHZvaWQgUmVtb3RlUmVuZGVyaW5nQmFja2VuZDo6Z2V0RGF0YVVSTEZvckltYWdlQnVmZmVyV2l0
aFF1YWxpZmllZElkZW50aWZpZXIoY29uCiAgICAgU3RyaW5nIHVybFN0cmluZzsKICAgICBpZiAo
YXV0byBpbWFnZUJ1ZmZlciA9IG1fcmVtb3RlUmVzb3VyY2VDYWNoZS5jYWNoZWRJbWFnZUJ1ZmZl
cihyZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIpKQogICAgICAgICB1cmxTdHJpbmcgPSBpbWFn
ZUJ1ZmZlci0+dG9EYXRhVVJMKG1pbWVUeXBlLCBxdWFsaXR5LCBwcmVzZXJ2ZVJlc29sdXRpb24p
OworICAgIFdURkxvZ0Fsd2F5cygiREFUQVVSTDolcyIsIHVybFN0cmluZy51dGY4KCkuZGF0YSgp
KTsKICAgICBjb21wbGV0aW9uSGFuZGxlcihXVEZNb3ZlKHVybFN0cmluZykpOwogfQogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5n
QmFja2VuZC5oIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRl
cmluZ0JhY2tlbmQuaAppbmRleCAxOWZiMTdmMDI1ZmIyYzY1ZjFkZGUyNzJjMzBiYjBkZTk0NWNh
ZjlmLi45ZWM5NjJiMzBmZjY2N2E5MTdmZjg2ZmRiMmY1M2ZhMDgyYWI3NjMzIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2Vu
ZC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJp
bmdCYWNrZW5kLmgKQEAgLTU0LDYgKzU0LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogY2xhc3Mg
RGVzdGluYXRpb25Db2xvclNwYWNlOwogY2xhc3MgRmxvYXRTaXplOwogY2xhc3MgTmF0aXZlSW1h
Z2U7CitjbGFzcyBQcm9jZXNzSWRlbnRpdHk7CiAKIGVudW0gY2xhc3MgUmVuZGVyaW5nTW9kZSA6
IGJvb2w7CiAKQEAgLTEyOSw2ICsxMzAsNyBAQCBwcml2YXRlOgogICAgIFJlZjxJUEM6OlN0cmVh
bVNlcnZlckNvbm5lY3Rpb24+IG1fc3RyZWFtQ29ubmVjdGlvbjsKICAgICBSZW1vdGVSZXNvdXJj
ZUNhY2hlIG1fcmVtb3RlUmVzb3VyY2VDYWNoZTsKICAgICBSZWY8R1BVQ29ubmVjdGlvblRvV2Vi
UHJvY2Vzcz4gbV9ncHVDb25uZWN0aW9uVG9XZWJQcm9jZXNzOworICAgIFJlZlB0cjxXZWJDb3Jl
OjpQcm9jZXNzSWRlbnRpdHk+IG1fcmVzb3VyY2VPd25lcjsKICAgICBSZW5kZXJpbmdCYWNrZW5k
SWRlbnRpZmllciBtX3JlbmRlcmluZ0JhY2tlbmRJZGVudGlmaWVyOwogICAgIElQQzo6U2VtYXBo
b3JlIG1fZ2V0UGl4ZWxCdWZmZXJTZW1hcGhvcmU7CiAgICAgUmVmUHRyPFNoYXJlZE1lbW9yeT4g
bV9nZXRQaXhlbEJ1ZmZlclNoYXJlZE1lbW9yeTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
R1BVUHJvY2Vzcy93ZWJydGMvTGliV2ViUlRDQ29kZWNzUHJveHkubW0gYi9Tb3VyY2UvV2ViS2l0
L0dQVVByb2Nlc3Mvd2VicnRjL0xpYldlYlJUQ0NvZGVjc1Byb3h5Lm1tCmluZGV4IDEzM2UyNmU0
NzRlMWQzMTkxNjNlNTU3MTk5MmQwYzBjNzE5ZGRlMTQuLjcwN2E2NWUyZTIyNGM5YWQ3Y2YxNzQ2
NWY0ZGMwYTQyMTM3MDJhNTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy93
ZWJydGMvTGliV2ViUlRDQ29kZWNzUHJveHkubW0KKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9j
ZXNzL3dlYnJ0Yy9MaWJXZWJSVENDb2RlY3NQcm94eS5tbQpAQCAtNzcsMTQgKzc3LDExIEBAIHZv
aWQgTGliV2ViUlRDQ29kZWNzUHJveHk6OmNsb3NlKCkKIHN0YXRpYyBGdW5jdGlvbjx2b2lkKENW
UGl4ZWxCdWZmZXJSZWYgcGl4ZWxCdWZmZXIsIHVpbnQzMl90IHRpbWVTdGFtcE5zLCB1aW50MzJf
dCB0aW1lU3RhbXApPiBjcmVhdGVEZWNvZGVyQ2FsbGJhY2soUlRDRGVjb2RlcklkZW50aWZpZXIg
aWRlbnRpZmllciwgR1BVQ29ubmVjdGlvblRvV2ViUHJvY2VzcyYgZ3B1Q29ubmVjdGlvblRvV2Vi
UHJvY2VzcykKIHsKICAgICByZXR1cm4gW2Nvbm5lY3Rpb24gPSBSZWYgeyBncHVDb25uZWN0aW9u
VG9XZWJQcm9jZXNzLmNvbm5lY3Rpb24oKSB9LAotI2lmIEhBVkUoSU9TVVJGQUNFX1NFVF9PV05F
UlNISVBfSURFTlRJVFkpCi0gICAgICAgIHRva2VuID0gZ3B1Q29ubmVjdGlvblRvV2ViUHJvY2Vz
cy53ZWJQcm9jZXNzSWRlbnRpdHlUb2tlbigpLAotI2VuZGlmCisgICAgICAgIHJlc291cmNlT3du
ZXIgPSBncHVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLndlYlByb2Nlc3NJZGVudGl0eSgpLAogICAg
ICAgICBpZGVudGlmaWVyXShDVlBpeGVsQnVmZmVyUmVmIHBpeGVsQnVmZmVyLCB1aW50MzJfdCB0
aW1lU3RhbXBOcywgdWludDMyX3QgdGltZVN0YW1wKSB7CiAgICAgICAgIGlmIChhdXRvIHNhbXBs
ZSA9IFdlYkNvcmU6OlJlbW90ZVZpZGVvU2FtcGxlOjpjcmVhdGUocGl4ZWxCdWZmZXIsIE1lZGlh
VGltZSh0aW1lU3RhbXBOcywgMSkpKSB7Ci0jaWYgSEFWRShJT1NVUkZBQ0VfU0VUX09XTkVSU0hJ
UF9JREVOVElUWSkKLSAgICAgICAgICAgIHNhbXBsZS0+c2V0T3duZXJzaGlwSWRlbnRpdHkodG9r
ZW4pOwotI2VuZGlmCisgICAgICAgICAgICBpZiAocmVzb3VyY2VPd25lcikKKyAgICAgICAgICAg
ICAgICBzYW1wbGUtPnNldE93bmVyc2hpcElkZW50aXR5KHJlc291cmNlT3duZXIuZ2V0KCkpOwog
ICAgICAgICAgICAgY29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6TGliV2ViUlRDQ29kZWNzOjpD
b21wbGV0ZWREZWNvZGluZyB7IGlkZW50aWZpZXIsIHRpbWVTdGFtcCwgKnNhbXBsZSB9LCAwKTsK
ICAgICAgICAgfQogICAgIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9HUFVQ
cm9jZXNzQ29ubmVjdGlvblBhcmFtZXRlcnMuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0dQVVBy
b2Nlc3NDb25uZWN0aW9uUGFyYW1ldGVycy5oCmluZGV4IDQxNTlkYzZlZDQ3ZDZkYzE3M2U5MWI2
ODMyYTFiYjFiYTU1ZjVlMTQuLmRkZmEyOWY1NjFhYWRkODA4OWJkYTY1M2I0OGFmMjA5Nzg0MzAw
ZDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0dQVVByb2Nlc3NDb25uZWN0aW9u
UGFyYW1ldGVycy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0dQVVByb2Nlc3NDb25uZWN0
aW9uUGFyYW1ldGVycy5oCkBAIC0yNywxNCArMjcsMTIgQEAKIAogI2lmIEVOQUJMRShHUFVfUFJP
Q0VTUykKIAotI2luY2x1ZGUgPHd0Zi9NYWNoU2VuZFJpZ2h0Lmg+CisjaW5jbHVkZSA8V2ViQ29y
ZS9Qcm9jZXNzSWRlbnRpdHkuaD4KIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKIHN0cnVjdCBHUFVQ
cm9jZXNzQ29ubmVjdGlvblBhcmFtZXRlcnMgewotI2lmIEhBVkUoVEFTS19JREVOVElUWV9UT0tF
TikKLSAgICBNYWNoU2VuZFJpZ2h0IHdlYlByb2Nlc3NJZGVudGl0eVRva2VuOwotI2VuZGlmCisg
ICAgV2ViQ29yZTo6UHJvY2Vzc0lkZW50aXR5OjpIYW5kbGUgd2ViUHJvY2Vzc0lkZW50aXR5SGFu
ZGxlOwogICAgIFZlY3RvcjxTdHJpbmc+IG92ZXJyaWRlTGFuZ3VhZ2VzOwogI2lmIEVOQUJMRShJ
UENfVEVTVElOR19BUEkpCiAgICAgYm9vbCBpZ25vcmVJbnZhbGlkTWVzc2FnZUZvclRlc3Rpbmcg
eyBmYWxzZSB9OwpAQCAtNDUsOSArNDMsNyBAQCBzdHJ1Y3QgR1BVUHJvY2Vzc0Nvbm5lY3Rpb25Q
YXJhbWV0ZXJzIHsKIAogICAgIHZvaWQgZW5jb2RlKElQQzo6RW5jb2RlciYgZW5jb2RlcikgY29u
c3QKICAgICB7Ci0jaWYgSEFWRShUQVNLX0lERU5USVRZX1RPS0VOKQotICAgICAgICBlbmNvZGVy
IDw8IHdlYlByb2Nlc3NJZGVudGl0eVRva2VuOwotI2VuZGlmCisgICAgICAgIGVuY29kZXIgPDwg
d2ViUHJvY2Vzc0lkZW50aXR5SGFuZGxlOwogICAgICAgICBlbmNvZGVyIDw8IG92ZXJyaWRlTGFu
Z3VhZ2VzOwogI2lmIEVOQUJMRShJUENfVEVTVElOR19BUEkpCiAgICAgICAgIGVuY29kZXIgPDwg
aWdub3JlSW52YWxpZE1lc3NhZ2VGb3JUZXN0aW5nOwpAQCAtNTksMTIgKzU1LDEwIEBAIHN0cnVj
dCBHUFVQcm9jZXNzQ29ubmVjdGlvblBhcmFtZXRlcnMgewogCiAgICAgc3RhdGljIHN0ZDo6b3B0
aW9uYWw8R1BVUHJvY2Vzc0Nvbm5lY3Rpb25QYXJhbWV0ZXJzPiBkZWNvZGUoSVBDOjpEZWNvZGVy
JiBkZWNvZGVyKQogICAgIHsKLSNpZiBIQVZFKFRBU0tfSURFTlRJVFlfVE9LRU4pCi0gICAgICAg
IHN0ZDo6b3B0aW9uYWw8TWFjaFNlbmRSaWdodD4gd2ViUHJvY2Vzc0lkZW50aXR5VG9rZW47Ci0g
ICAgICAgIGRlY29kZXIgPj4gd2ViUHJvY2Vzc0lkZW50aXR5VG9rZW47Ci0gICAgICAgIGlmICgh
d2ViUHJvY2Vzc0lkZW50aXR5VG9rZW4pCisgICAgICAgIHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6
UHJvY2Vzc0lkZW50aXR5OjpIYW5kbGU+IHdlYlByb2Nlc3NJZGVudGl0eUhhbmRsZTsKKyAgICAg
ICAgZGVjb2RlciA+PiB3ZWJQcm9jZXNzSWRlbnRpdHlIYW5kbGU7CisgICAgICAgIGlmICghd2Vi
UHJvY2Vzc0lkZW50aXR5SGFuZGxlKQogICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsK
LSNlbmRpZgogCiAgICAgICAgIHN0ZDo6b3B0aW9uYWw8VmVjdG9yPFN0cmluZz4+IG92ZXJyaWRl
TGFuZ3VhZ2VzOwogICAgICAgICBkZWNvZGVyID4+IG92ZXJyaWRlTGFuZ3VhZ2VzOwpAQCAtODUs
OSArNzksNyBAQCBzdHJ1Y3QgR1BVUHJvY2Vzc0Nvbm5lY3Rpb25QYXJhbWV0ZXJzIHsKICNlbmRp
ZgogCiAgICAgICAgIHJldHVybiBHUFVQcm9jZXNzQ29ubmVjdGlvblBhcmFtZXRlcnMgewotI2lm
IEhBVkUoVEFTS19JREVOVElUWV9UT0tFTikKLSAgICAgICAgICAgIFdURk1vdmUoKndlYlByb2Nl
c3NJZGVudGl0eVRva2VuKSwKLSNlbmRpZgorICAgICAgICAgICAgV1RGTW92ZSgqd2ViUHJvY2Vz
c0lkZW50aXR5SGFuZGxlKSwKICAgICAgICAgICAgIFdURk1vdmUoKm92ZXJyaWRlTGFuZ3VhZ2Vz
KSwKICNpZiBFTkFCTEUoSVBDX1RFU1RJTkdfQVBJKQogICAgICAgICAgICAgKmlnbm9yZUludmFs
aWRNZXNzYWdlRm9yVGVzdGluZywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5jcHAKaW5kZXggOTk2
MjY4OTkwN2M2N2I1YzdhNTY0ZDgxNTMyNTFjZjU1MzQ3ZTViZC4uOGIxZjNhMjY2NTZhYjA1ZjAx
NzBkY2U2YmUyYzJlM2VmZGU1Mzk1OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5jcHAKQEAg
LTU3LDkgKzU3LDEwIEBAIGNsYXNzIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6OlNvdXJj
ZVByb3h5CiAgICAgLCBwcml2YXRlIFJlYWx0aW1lTWVkaWFTb3VyY2U6OlZpZGVvU2FtcGxlT2Jz
ZXJ2ZXIgewogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgotICAgIFNvdXJj
ZVByb3h5KFJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIGlkLCBSZWY8SVBDOjpDb25uZWN0
aW9uPiYmIGNvbm5lY3Rpb24sIFJlZjxSZWFsdGltZU1lZGlhU291cmNlPiYmIHNvdXJjZSkKKyAg
ICBTb3VyY2VQcm94eShSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciBpZCwgUmVmPElQQzo6
Q29ubmVjdGlvbj4mJiBjb25uZWN0aW9uLCBSZWZQdHI8UHJvY2Vzc0lkZW50aXR5PiYmIHJlc291
cmNlT3duZXIsIFJlZjxSZWFsdGltZU1lZGlhU291cmNlPiYmIHNvdXJjZSkKICAgICAgICAgOiBt
X2lkKGlkKQogICAgICAgICAsIG1fY29ubmVjdGlvbihXVEZNb3ZlKGNvbm5lY3Rpb24pKQorICAg
ICAgICAsIG1fcmVzb3VyY2VPd25lcihXVEZNb3ZlKHJlc291cmNlT3duZXIpKQogICAgICAgICAs
IG1fc291cmNlKFdURk1vdmUoc291cmNlKSkKICAgICB7CiAgICAgICAgIG1fc291cmNlLT5hZGRP
YnNlcnZlcigqdGhpcyk7CkBAIC0xMjUsOSArMTI2LDYgQEAgcHVibGljOgogICAgIH0KIAogICAg
IHZvaWQgc2V0U2hvdWxkQXBwbHlSb3RhdGlvbihib29sIHNob3VsZEFwcGx5Um90YXRpb24pIHsg
bV9zaG91bGRBcHBseVJvdGF0aW9uID0gdHJ1ZTsgfQotI2lmIEhBVkUoSU9TVVJGQUNFX1NFVF9P
V05FUlNISVBfSURFTlRJVFkpCi0gICAgdm9pZCBzZXRXZWJQcm9jZXNzSWRlbnRpdHlUb2tlbihz
dGQ6Om9wdGlvbmFsPHRhc2tfaWRfdG9rZW5fdD4gdG9rZW4pIHsgbV93ZWJQcm9jZXNzSWRlbnRp
dHlUb2tlbiA9IHRva2VuO30KLSNlbmRpZgogCiBwcml2YXRlOgogICAgIHZvaWQgc291cmNlU3Rv
cHBlZCgpIGZpbmFsIHsKQEAgLTE4OCwxMCArMTg2LDggQEAgcHJpdmF0ZToKICAgICAgICAgfSBl
bHNlCiAgICAgICAgICAgICByZW1vdGVTYW1wbGUgPSBSZW1vdGVWaWRlb1NhbXBsZTo6Y3JlYXRl
KHNhbXBsZSk7CiAgICAgICAgIGlmIChyZW1vdGVTYW1wbGUpIHsKLSNpZiBIQVZFKElPU1VSRkFD
RV9TRVRfT1dORVJTSElQX0lERU5USVRZKQotICAgICAgICAgICAgaWYgKG1fd2ViUHJvY2Vzc0lk
ZW50aXR5VG9rZW4pCi0gICAgICAgICAgICAgICAgcmVtb3RlU2FtcGxlLT5zZXRPd25lcnNoaXBJ
ZGVudGl0eSgqbV93ZWJQcm9jZXNzSWRlbnRpdHlUb2tlbik7Ci0jZW5kaWYKKyAgICAgICAgICAg
IGlmIChtX3Jlc291cmNlT3duZXIpCisgICAgICAgICAgICAgICAgcmVtb3RlU2FtcGxlLT5zZXRP
d25lcnNoaXBJZGVudGl0eShtX3Jlc291cmNlT3duZXIuZ2V0KCkpOwogICAgICAgICAgICAgbV9j
b25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpSZW1vdGVDYXB0dXJlU2FtcGxlTWFuYWdlcjo6Vmlk
ZW9TYW1wbGVBdmFpbGFibGUobV9pZCwgV1RGTW92ZSgqcmVtb3RlU2FtcGxlKSksIDApOwogICAg
ICAgICB9CiAgICAgfQpAQCAtMjQ0LDYgKzI0MCw3IEBAIHByaXZhdGU6CiAgICAgUmVhbHRpbWVN
ZWRpYVNvdXJjZUlkZW50aWZpZXIgbV9pZDsKICAgICBXZWFrUHRyPFBsYXRmb3JtTWVkaWFTZXNz
aW9uTWFuYWdlcj4gbV9zZXNzaW9uTWFuYWdlcjsKICAgICBSZWY8SVBDOjpDb25uZWN0aW9uPiBt
X2Nvbm5lY3Rpb247CisgICAgUmVmUHRyPFByb2Nlc3NJZGVudGl0eT4gbV9yZXNvdXJjZU93bmVy
OwogICAgIFJlZjxSZWFsdGltZU1lZGlhU291cmNlPiBtX3NvdXJjZTsKICAgICBzdGQ6OnVuaXF1
ZV9wdHI8Q0FSaW5nQnVmZmVyPiBtX3JpbmdCdWZmZXI7CiAgICAgQ0FBdWRpb1N0cmVhbURlc2Ny
aXB0aW9uIG1fZGVzY3JpcHRpb24geyB9OwpAQCAtMjU3LDkgKzI1NCw2IEBAIHByaXZhdGU6CiAg
ICAgc2l6ZV90IG1fZnJhbWVDaHVua1NpemUgeyAwIH07CiAgICAgTWVkaWFUaW1lIG1fc3RhcnRU
aW1lOwogICAgIGJvb2wgbV9zaG91bGRSZXNldCB7IGZhbHNlIH07Ci0jaWYgSEFWRShUQVNLX0lE
RU5USVRZX1RPS0VOKQotICAgIHN0ZDo6b3B0aW9uYWw8dGFza19pZF90b2tlbl90PiBtX3dlYlBy
b2Nlc3NJZGVudGl0eVRva2VuOwotI2VuZGlmCiB9OwogCiBVc2VyTWVkaWFDYXB0dXJlTWFuYWdl
clByb3h5OjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5KFVuaXF1ZVJlZjxDb25uZWN0aW9u
UHJveHk+JiYgY29ubmVjdGlvblByb3h5KQpAQCAtMzIzLDEyICszMTcsNyBAQCB2b2lkIFVzZXJN
ZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6OmNyZWF0ZU1lZGlhU291cmNlRm9yQ2FwdHVyZURldmlj
ZVdpdGhDb25zdHJhaQogICAgICAgICB9CiAKICAgICAgICAgQVNTRVJUKCFtX3Byb3hpZXMuY29u
dGFpbnMoaWQpKTsKLSAgICAgICAgYXV0byBwcm94eSA9IG1ha2VVbmlxdWU8U291cmNlUHJveHk+
KGlkLCBtX2Nvbm5lY3Rpb25Qcm94eS0+Y29ubmVjdGlvbigpLCBXVEZNb3ZlKHNvdXJjZSkpOwot
I2lmIEhBVkUoSU9TVVJGQUNFX1NFVF9PV05FUlNISVBfSURFTlRJVFkpCi0gICAgICAgIGlmIChk
ZXZpY2UudHlwZSgpICE9IFdlYkNvcmU6OkNhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6Ok1pY3Jv
cGhvbmUpCi0gICAgICAgICAgICBwcm94eS0+c2V0V2ViUHJvY2Vzc0lkZW50aXR5VG9rZW4obV9j
b25uZWN0aW9uUHJveHktPndlYlByb2Nlc3NJZGVudGl0eVRva2VuKCkpOwotI2VuZGlmCi0KKyAg
ICAgICAgYXV0byBwcm94eSA9IG1ha2VVbmlxdWU8U291cmNlUHJveHk+KGlkLCBtX2Nvbm5lY3Rp
b25Qcm94eS0+Y29ubmVjdGlvbigpLCBtX2Nvbm5lY3Rpb25Qcm94eS0+cmVzb3VyY2VPd25lcigp
LCBXVEZNb3ZlKHNvdXJjZSkpOwogICAgICAgICBtX3Byb3hpZXMuYWRkKGlkLCBXVEZNb3ZlKHBy
b3h5KSk7CiAgICAgfSBlbHNlCiAgICAgICAgIGludmFsaWRDb25zdHJhaW50cyA9IFdURk1vdmUo
c291cmNlT3JFcnJvci5lcnJvck1lc3NhZ2UpOwpAQCAtMzkzLDcgKzM4Miw3IEBAIHZvaWQgVXNl
ck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6Y2xvbmUoUmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50
aWZpZXIgY2xvbmVkSUQsCiAgICAgTUVTU0FHRV9DSEVDSyhtX3Byb3hpZXMuY29udGFpbnMoY2xv
bmVkSUQpKTsKICAgICBNRVNTQUdFX0NIRUNLKCFtX3Byb3hpZXMuY29udGFpbnMobmV3U291cmNl
SUQpKTsKICAgICBpZiAoYXV0byogcHJveHkgPSBtX3Byb3hpZXMuZ2V0KGNsb25lZElEKSkKLSAg
ICAgICAgbV9wcm94aWVzLmFkZChuZXdTb3VyY2VJRCwgbWFrZVVuaXF1ZTxTb3VyY2VQcm94eT4o
bmV3U291cmNlSUQsIG1fY29ubmVjdGlvblByb3h5LT5jb25uZWN0aW9uKCksIHByb3h5LT5zb3Vy
Y2UoKS5jbG9uZSgpKSk7CisgICAgICAgIG1fcHJveGllcy5hZGQobmV3U291cmNlSUQsIG1ha2VV
bmlxdWU8U291cmNlUHJveHk+KG5ld1NvdXJjZUlELCBtX2Nvbm5lY3Rpb25Qcm94eS0+Y29ubmVj
dGlvbigpLCBtX2Nvbm5lY3Rpb25Qcm94eS0+cmVzb3VyY2VPd25lcigpLCBwcm94eS0+c291cmNl
KCkuY2xvbmUoKSkpOwogfQogCiB2b2lkIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6OnJl
cXVlc3RUb0VuZChSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciBzb3VyY2VJRCkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5h
Z2VyUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1
cmVNYW5hZ2VyUHJveHkuaAppbmRleCA3YWZmNDI0ZDU0MGQzYjFmZGVjZGFiYzg2NTVjM2M1NmM1
MGExMGU1Li5jNTg2Y2UzZjNkMTJlNzhlMjM3MzJhZTEwY2M4OWIyMzgwNGIyYmNkIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdl
clByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2Fw
dHVyZU1hbmFnZXJQcm94eS5oCkBAIC0zMiw2ICszMiw3IEBACiAjaW5jbHVkZSAiVXNlck1lZGlh
Q2FwdHVyZU1hbmFnZXIuaCIKICNpbmNsdWRlIDxXZWJDb3JlL0NhcHR1cmVEZXZpY2UuaD4KICNp
bmNsdWRlIDxXZWJDb3JlL09yaWVudGF0aW9uTm90aWZpZXIuaD4KKyNpbmNsdWRlIDxXZWJDb3Jl
L1Byb2Nlc3NJZGVudGl0eS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUmVhbHRpbWVNZWRpYVNvdXJj
ZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIuaD4K
ICNpbmNsdWRlIDxwYWwvc3BpL2NvY29hL1RDQ1NQSS5oPgpAQCAtNTksOSArNjAsNyBAQCBwdWJs
aWM6CiAgICAgICAgIHZpcnR1YWwgYm9vbCB3aWxsU3RhcnRDYXB0dXJlKFdlYkNvcmU6OkNhcHR1
cmVEZXZpY2U6OkRldmljZVR5cGUpIGNvbnN0ID0gMDsKICAgICAgICAgdmlydHVhbCBMb2dnZXIm
IGxvZ2dlcigpID0gMDsKICAgICAgICAgdmlydHVhbCBib29sIHNldENhcHR1cmVBdHRyaWJ1dGlv
blN0cmluZygpIHsgcmV0dXJuIHRydWU7IH0KLSNpZiBIQVZFKElPU1VSRkFDRV9TRVRfT1dORVJT
SElQX0lERU5USVRZKQotICAgICAgICB2aXJ0dWFsIHN0ZDo6b3B0aW9uYWw8dGFza19pZF90b2tl
bl90PiB3ZWJQcm9jZXNzSWRlbnRpdHlUb2tlbigpIGNvbnN0IHsgcmV0dXJuIHsgfTsgfTsKLSNl
bmRpZgorICAgICAgICB2aXJ0dWFsIFJlZlB0cjxXZWJDb3JlOjpQcm9jZXNzSWRlbnRpdHk+IHJl
c291cmNlT3duZXIoKSBjb25zdCB7IHJldHVybiBudWxscHRyOyB9OwogI2lmIEVOQUJMRShBUFBf
UFJJVkFDWV9SRVBPUlQpCiAgICAgICAgIHZpcnR1YWwgdm9pZCBzZXRUQ0NJZGVudGl0eSgpIHsg
fQogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBo
aWNzL2NvY29hL0ltYWdlQnVmZmVyU2hhcmVhYmxlTWFwcGVkSU9TdXJmYWNlQmFja2VuZC5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL2NvY29hL0ltYWdlQnVmZmVy
U2hhcmVhYmxlTWFwcGVkSU9TdXJmYWNlQmFja2VuZC5jcHAKaW5kZXggYWZkMmM3YzA1Y2ZhZmQx
Mzk5MzQ0ZjVjNmE3NjRlNDg4MGQyOGJkYS4uMTEzZWFmOTJmODBmNTM4NjYwZGZiYjQwNjBjM2E3
Yzg4OGY2OTI1YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFw
aGljcy9jb2NvYS9JbWFnZUJ1ZmZlclNoYXJlYWJsZU1hcHBlZElPU3VyZmFjZUJhY2tlbmQuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvY29jb2EvSW1hZ2VC
dWZmZXJTaGFyZWFibGVNYXBwZWRJT1N1cmZhY2VCYWNrZW5kLmNwcApAQCAtNzcsMTMgKzc3LDEx
IEBAIEltYWdlQnVmZmVyQmFja2VuZEhhbmRsZSBJbWFnZUJ1ZmZlclNoYXJlYWJsZU1hcHBlZElP
U3VyZmFjZUJhY2tlbmQ6OmNyZWF0ZUltYWdlCiAgICAgcmV0dXJuIEltYWdlQnVmZmVyQmFja2Vu
ZEhhbmRsZShtX3N1cmZhY2UtPmNyZWF0ZVNlbmRSaWdodCgpKTsKIH0KIAotI2lmIEhBVkUoSU9T
VVJGQUNFX1NFVF9PV05FUlNISVBfSURFTlRJVFkpCi12b2lkIEltYWdlQnVmZmVyU2hhcmVhYmxl
TWFwcGVkSU9TdXJmYWNlQmFja2VuZDo6c2V0UHJvY2Vzc093bmVyc2hpcCh0YXNrX2lkX3Rva2Vu
X3QgcHJvY2Vzc0lkZW50aXR5VG9rZW4pCit2b2lkIEltYWdlQnVmZmVyU2hhcmVhYmxlTWFwcGVk
SU9TdXJmYWNlQmFja2VuZDo6c2V0T3duZXJzaGlwSWRlbnRpdHkoV2ViQ29yZTo6UHJvY2Vzc0lk
ZW50aXR5KiByZXNvdXJjZU93bmVyKQogewogICAgIEFTU0VSVChzdXJmYWNlKCkpOwotICAgIHN1
cmZhY2UoKS0+c2V0T3duZXJzaGlwSWRlbnRpdHkocHJvY2Vzc0lkZW50aXR5VG9rZW4pOworICAg
IHN1cmZhY2UoKS0+c2V0T3duZXJzaGlwSWRlbnRpdHkocmVzb3VyY2VPd25lcik7CiB9Ci0jZW5k
aWYKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvY29jb2EvSW1hZ2VCdWZmZXJTaGFyZWFibGVNYXBwZWRJ
T1N1cmZhY2VCYWNrZW5kLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNz
L2NvY29hL0ltYWdlQnVmZmVyU2hhcmVhYmxlTWFwcGVkSU9TdXJmYWNlQmFja2VuZC5oCmluZGV4
IGUxNGE1NDBlY2RkZDQ3MTE5MDhhN2MxNzFjM2EyNWViZmQ4MDhkYmUuLmI5NzYzMjIwMzJlNmZk
MWEzMGI5YTI0NGZmODM4OTY2MDk1NjQ3YzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9HUFUvZ3JhcGhpY3MvY29jb2EvSW1hZ2VCdWZmZXJTaGFyZWFibGVNYXBwZWRJT1N1
cmZhY2VCYWNrZW5kLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGlj
cy9jb2NvYS9JbWFnZUJ1ZmZlclNoYXJlYWJsZU1hcHBlZElPU3VyZmFjZUJhY2tlbmQuaApAQCAt
MzEsNiArMzEsMTAgQEAKICNpbmNsdWRlIDxXZWJDb3JlL0ltYWdlQnVmZmVySU9TdXJmYWNlQmFj
a2VuZC5oPgogI2luY2x1ZGUgPHd0Zi9Jc29NYWxsb2MuaD4KIAorbmFtZXNwYWNlIFdlYkNvcmUg
eworY2xhc3MgUHJvY2Vzc0lkZW50aXR5OworfQorCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogY2xh
c3MgU2hhcmVhYmxlQml0bWFwOwpAQCAtNDYsOSArNTAsNyBAQCBwdWJsaWM6CiAKICAgICBJbWFn
ZUJ1ZmZlckJhY2tlbmRIYW5kbGUgY3JlYXRlSW1hZ2VCdWZmZXJCYWNrZW5kSGFuZGxlKCkgY29u
c3Q7CiAKLSNpZiBIQVZFKElPU1VSRkFDRV9TRVRfT1dORVJTSElQX0lERU5USVRZKQotICAgIHZv
aWQgc2V0UHJvY2Vzc093bmVyc2hpcCh0YXNrX2lkX3Rva2VuX3QpOwotI2VuZGlmCisgICAgdm9p
ZCBzZXRPd25lcnNoaXBJZGVudGl0eShXZWJDb3JlOjpQcm9jZXNzSWRlbnRpdHkqIHJlc291cmNl
T3duZXIpOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvV2ViUHJvY2Vzc0NvY29hLm1tIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL2NvY29hL1dlYlByb2Nlc3NDb2NvYS5tbQppbmRleCAwMzRlMmI0OGFhMDE1
YWY3Y2VkNzY2ZGU5YWNlODI4ZGVkMTIyNjQ5Li42NDI1ZjM5OTY1N2QwMDNiMGZhZTI3ZDZhNWEz
MjRkMWU0Y2ExZmY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2Ev
V2ViUHJvY2Vzc0NvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9X
ZWJQcm9jZXNzQ29jb2EubW0KQEAgLTEyNDIsMTQgKzEyNDIsNyBAQCB2b2lkIFdlYlByb2Nlc3M6
OndhaXRGb3JQZW5kaW5nUGFzdGVib2FyZFdyaXRlc1RvRmluaXNoKGNvbnN0IFN0cmluZyYgcGFz
dGVib2FyZAogI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKIHZvaWQgV2ViUHJvY2Vzczo6cGxhdGZv
cm1Jbml0aWFsaXplR1BVUHJvY2Vzc0Nvbm5lY3Rpb25QYXJhbWV0ZXJzKEdQVVByb2Nlc3NDb25u
ZWN0aW9uUGFyYW1ldGVycyYgcGFyYW1ldGVycykKIHsKLSNpZiBIQVZFKFRBU0tfSURFTlRJVFlf
VE9LRU4pCi0gICAgdGFza19pZF90b2tlbl90IGlkZW50aXR5VG9rZW47Ci0gICAga2Vybl9yZXR1
cm5fdCBrciA9IHRhc2tfY3JlYXRlX2lkZW50aXR5X3Rva2VuKG1hY2hfdGFza19zZWxmKCksICZp
ZGVudGl0eVRva2VuKTsKLSAgICBpZiAoa3IgPT0gS0VSTl9TVUNDRVNTKQotICAgICAgICBwYXJh
bWV0ZXJzLndlYlByb2Nlc3NJZGVudGl0eVRva2VuID0gTWFjaFNlbmRSaWdodDo6YWRvcHQoaWRl
bnRpdHlUb2tlbik7Ci0gICAgZWxzZQotICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihQcm9jZXNz
LCAiQ2FsbCB0byB0YXNrX2NyZWF0ZV9pZGVudGl0eV90b2tlbigpIGZhaWxlZDogJXtwcml2YXRl
fXMgKCV4KSIsIG1hY2hfZXJyb3Jfc3RyaW5nKGtyKSwga3IpOwotI2VuZGlmCisgICAgcGFyYW1l
dGVycy53ZWJQcm9jZXNzSWRlbnRpdHlIYW5kbGUgPSBQcm9jZXNzSWRlbnRpdHk6OmhhbmRsZUZv
ckN1cnJlbnRQcm9jZXNzKCk7CiAKICAgICBwYXJhbWV0ZXJzLm92ZXJyaWRlTGFuZ3VhZ2VzID0g
dXNlclByZWZlcnJlZExhbmd1YWdlc092ZXJyaWRlKCk7CiB9CmRpZmYgLS1naXQgYS9Ub29scy9D
aGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggYTA0MDhlMzAxZjAwN2YyNmE1MDZjYjky
NGY0NTYwODU4YmY4MTk5MC4uZDY3MTRkODA1ZGUzZTFkYmY4ZTkxMGFmYjczMTFkNjE4NDkyYmEz
YiAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDE2IEBACisyMDIxLTExLTExICBLaW1tbyBLaW5udW5lbiAgPGtraW5udW5lbkBhcHBs
ZS5jb20+CisKKyAgICAgICAgSU9TdXJmYWNlIG1lbW9yeSBhdHRyaWJ1dGlvbiBpcyBoYXJkIHRv
IHVzZSBpbiBjb25zdHJ1Y3RvcnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTIzMjk4OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIFVwZGF0ZSBjb25zdHJ1Y3RvciBjYWxsaW5nIGJhc2UgY2xhc3MgY29uc3Ry
dWN0b3IuCisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvY29jb2EvVGVz
dEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMQ29jb2EubW06CisgICAgICAgIChUZXN0V2ViS2l0QVBJ
OjpXZWJDb3JlOjpUZXN0ZWRHcmFwaGljc0NvbnRleHRHTE9wZW5HTDo6Y3JlYXRlKToKKyAgICAg
ICAgKFRlc3RXZWJLaXRBUEk6OldlYkNvcmU6OlRlc3RlZEdyYXBoaWNzQ29udGV4dEdMT3BlbkdM
OjpUZXN0ZWRHcmFwaGljc0NvbnRleHRHTE9wZW5HTCk6CisKIDIwMjEtMTEtMTAgIENocmlzIER1
bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBXZSBzaG91bGQgbm90IGtpbGwgYWxs
IFdlYkNvbnRlbnQgcHJvY2Vzc2VzIHdoZW5ldmVyIHRoZSBXZWJBdXRobiBwcm9jZXNzIGNyYXNo
ZXMKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9jb2NvYS9U
ZXN0R3JhcGhpY3NDb250ZXh0R0xPcGVuR0xDb2NvYS5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV2ViQ29yZS9jb2NvYS9UZXN0R3JhcGhpY3NDb250ZXh0R0xPcGVuR0xDb2NvYS5tbQpp
bmRleCA5MTdkMmU4MTYwYTUzMmJmNjY3NGE0MjA1NTdlMjRkNWFiYTc4M2Y2Li44YzhlYThmZDhi
ZTMxYjBkZmNhODA3ZWI2NWQwZTI3MTgxYjhkZDljIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYkNvcmUvY29jb2EvVGVzdEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMQ29j
b2EubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL2NvY29hL1Rlc3RH
cmFwaGljc0NvbnRleHRHTE9wZW5HTENvY29hLm1tCkBAIC0zOSwxMiArMzksMTIgQEAgY2xhc3Mg
VGVzdGVkR3JhcGhpY3NDb250ZXh0R0xPcGVuR0wgOiBwdWJsaWMgR3JhcGhpY3NDb250ZXh0R0xP
cGVuR0wgewogcHVibGljOgogICAgIHN0YXRpYyBSZWZQdHI8VGVzdGVkR3JhcGhpY3NDb250ZXh0
R0xPcGVuR0w+IGNyZWF0ZShHcmFwaGljc0NvbnRleHRHTEF0dHJpYnV0ZXMgYXR0cmlidXRlcykK
ICAgICB7Ci0gICAgICAgIGF1dG8gY29udGV4dCA9IGFkb3B0UmVmKCpuZXcgVGVzdGVkR3JhcGhp
Y3NDb250ZXh0R0xPcGVuR0woV1RGTW92ZShhdHRyaWJ1dGVzKSkpOworICAgICAgICBhdXRvIGNv
bnRleHQgPSBhZG9wdFJlZigqbmV3IFRlc3RlZEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMKFdURk1v
dmUoYXR0cmlidXRlcyksIHsgfSkpOwogICAgICAgICByZXR1cm4gY29udGV4dDsKICAgICB9CiBw
cml2YXRlOgotICAgIFRlc3RlZEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMKEdyYXBoaWNzQ29udGV4
dEdMQXR0cmlidXRlcyBhdHRyaWJ1dGVzKQotICAgICAgICA6IEdyYXBoaWNzQ29udGV4dEdMT3Bl
bkdMKFdURk1vdmUoYXR0cmlidXRlcykpCisgICAgVGVzdGVkR3JhcGhpY3NDb250ZXh0R0xPcGVu
R0woR3JhcGhpY3NDb250ZXh0R0xBdHRyaWJ1dGVzIGF0dHJpYnV0ZXMsIFJlZlB0cjxQcm9jZXNz
SWRlbnRpdHk+IHJlc291cmNlT3duZXIpCisgICAgICAgIDogR3JhcGhpY3NDb250ZXh0R0xPcGVu
R0woV1RGTW92ZShhdHRyaWJ1dGVzKSwgV1RGTW92ZShyZXNvdXJjZU93bmVyKSkKICAgICB7CiAg
ICAgfQogfTsK
</data>
<flag name="commit-queue"
          id="468767"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>443929</attachid>
            <date>2021-11-11 03:07:32 -0800</date>
            <delta_ts>2021-11-11 03:26:14 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-232988-20211111130730.patch</filename>
            <type>text/plain</type>
            <size>52270</size>
            <attacher name="Kimmo Kinnunen">kkinnunen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg1NjIyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzEzMjQzOGVjMDliZTE4
MTE0NjI5NmIyYmYyMmViYWRlZWIxY2VkNi4uYmVlZmIyMDQ5MzlkYzI0ZGVhMzJjNzYyMmYyZDE2
NGNmYTUyYzRlZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU3IEBACisyMDIxLTExLTExICBLaW1t
byBLaW5udW5lbiAgPGtraW5udW5lbkBhcHBsZS5jb20+CisKKyAgICAgICAgSU9TdXJmYWNlIG1l
bW9yeSBhdHRyaWJ1dGlvbiBpcyBoYXJkIHRvIHVzZSBpbiBjb25zdHJ1Y3RvcnMKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMjk4OAorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBXZWJDb3JlOjpQcm9j
ZXNzSWRlbnRpdHkgdHlwZSB0aGF0IGNhbiBiZSB1c2VkIHRvIGNvbW11bmljYXRlIG1lbW9yeSBh
dHRyaWJ1dGlvbi4KKyAgICAgICAgRm9yIG5vbi1Db2NvYSBwb3J0cywgdGhpcyBpcyBudWxscHRy
LgorICAgICAgICBUaGlzIGlzIHVzZWQgaW4gV2ViQ29yZSB0byBzZXQgdGhlIG1lbW9yeSBhdHRy
aWJ1dGlvbiBvZiBJT1N1cmZhY2UgYW5kIG9iamVjdHMKKyAgICAgICAgdGhhdCBob2xkIElPU3Vy
ZmFjZXMuCisgICAgICAgIFRoaXMgaXMgaW5zdGFudGlhdGVkIGluIFdlYktpdC4KKyAgICAgICAg
Q3VycmVudGx5IHRoZSBvbmx5IHVzZWZ1bCB3YXkgdG8gaW5zdGFudGlhdGUgUHJvY2Vzc0lkZW50
aXR5IGlzIGJ5IHJlY2VpdmluZworICAgICAgICB0aGUgUHJvY2Vzc0lkZW50aXR5OjpIYW5kbGUg
YXMgYSBtZXNzYWdlIGFuZCBjcmVhdGUgaXQgdGhpcyB3YXkgZm9yIHRoZQorICAgICAgICBzZW5k
ZXIgcHJvY2Vzcy4KKworICAgICAgICBObyBuZXcgdGVzdHMsIHJlZmFjdG9yLgorCisgICAgICAg
ICogSGVhZGVycy5jbWFrZToKKyAgICAgICAgKiBTb3VyY2VzLnR4dDoKKyAgICAgICAgKiBXZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogcGxhdGZvcm0vTG9nZ2lu
Zy5oOgorICAgICAgICBBZGQgV2ViQ29yZSBQcm9jZXNzIGxvZyB0YWcgc2luY2UgdGhlIGNvZGUg
bW92ZWQgZnJvbSBXZWJLaXQgdG8gUHJvY2Vzc0lkZW50aXR5CisgICAgICAgIHVzZWQgdGhhdCB0
YWcgdG8gbG9nLgorICAgICAgICAqIHBsYXRmb3JtL1Byb2Nlc3NJZGVudGl0eS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpQcm9jZXNzSWRlbnRpdHk6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3Jl
OjpQcm9jZXNzSWRlbnRpdHk6OlByb2Nlc3NJZGVudGl0eSk6CisgICAgICAgIChXZWJDb3JlOjpQ
cm9jZXNzSWRlbnRpdHk6OmhhbmRsZUZvckN1cnJlbnRQcm9jZXNzKToKKyAgICAgICAgKFdlYkNv
cmU6OlByb2Nlc3NJZGVudGl0eTo6aGFuZGxlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlBy
b2Nlc3NJZGVudGl0eTo6dGFza0lkVG9rZW4gY29uc3QpOgorICAgICAgICAqIHBsYXRmb3JtL1By
b2Nlc3NJZGVudGl0eS5oOgorICAgICAgICBBZGQgdGhlIFByb2Nlc3NJZGVudGl0eSB0eXBlIHRo
YXQgY2FuIGJlIHVzZWQgdG8gY29tbXVuaWNhdGUgbWVtb3J5IGF0dHJpYnV0aW9uLgorCisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvUmVtb3RlVmlkZW9TYW1wbGUuaDoKKyAgICAgICAgKFdl
YkNvcmU6OlJlbW90ZVZpZGVvU2FtcGxlOjpzZXRPd25lcnNoaXBJZGVudGl0eSk6CisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvY2cvSW1hZ2VCdWZmZXJVdGlsaXRpZXNDRy5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjplbmNvZGUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NvY29h
L0dyYXBoaWNzQ29udGV4dEdMT3BlbkdMQ29jb2EubW06CisgICAgICAgIChXZWJDb3JlOjpHcmFw
aGljc0NvbnRleHRHTE9wZW5HTDo6R3JhcGhpY3NDb250ZXh0R0xPcGVuR0wpOgorICAgICAgICAo
V2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0R0xPcGVuR0w6OmFsbG9jYXRlQW5kQmluZERpc3BsYXlC
dWZmZXJCYWNraW5nKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9JT1N1cmZh
Y2UuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9JT1N1cmZhY2UubW06Cisg
ICAgICAgIChXZWJDb3JlOjpJT1N1cmZhY2U6OnNldE93bmVyc2hpcElkZW50aXR5KToKKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9XZWJQcm9jZXNzR3JhcGhpY3NDb250ZXh0R0xP
cGVuR0xDb2NvYS5tbToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR3JhcGhp
Y3NDb250ZXh0R0xPcGVuR0wuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAv
R3JhcGhpY3NDb250ZXh0R0xUZXh0dXJlTWFwcGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okdy
YXBoaWNzQ29udGV4dEdMT3BlbkdMOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhp
Y3NDb250ZXh0R0xPcGVuR0w6OkdyYXBoaWNzQ29udGV4dEdMT3BlbkdMKToKKyAgICAgICAgQWRk
IGFuIGV4YW1wbGUgdXNlIHdoZXJlIHRoZSBjb25zdHJ1Y3RvciB0YWtlcyB0aGUgbWVtb3J5IGF0
dHJpYnV0aW9uIHRva2VuLgorICAgICAgICBUaGlzIG1heSBiZSBuZWVkZWQgaW4gdGhlIGZ1dHVy
ZSB3aGVuIHRoZSB0b2tlbiBpcyB1c2VkIGFzIGEgcGFyYW1ldGVyIGluCisgICAgICAgIHRoZSBB
TkdMRSBjb250ZXh0IGNyZWF0aW9uLgorICAgICAgICBVc2UgdGhlIHRva2VuIGluIGNyZWF0aW5n
IHRoZSBJT1N1cmZhY2UuIFRoaXMgZml4ZXMgYSBidWcgd2hlcmUgV2ViR0wKKyAgICAgICAgYmFj
ayBidWZmZXJzIHdvdWxkIG5vdCBiZSBhdHRyaWJ1dGVkIHVudGlsIHRoZXkgd2VyZSBzZW50IHRv
IFdQLgorCiAyMDIxLTExLTExICBBbnR0aSBLb2l2aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KIAog
ICAgICAgICBVc2UgbmFycm93ZXIgdHlwZXMgZm9yIHN0eWxlIHNjb3BlIG9yZGluYWwgYW5kIGNh
c2NhZGUgbGF5ZXIgcHJpb3JpdHkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9n
IGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggNGUxNTE5NmQ4Y2ZkZDc0MDI0YmE3YWRm
NmNmZDU4N2VjZDVkZDQ4Mi4uNmEyODQwOWVkZjA2Zjk2ZDM0OTljMzA1NTNiZjViNmJlYjBlMGRj
MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktp
dC9DaGFuZ2VMb2cKQEAgLTEsMyArMSw1NCBAQAorMjAyMS0xMS0xMSAgS2ltbW8gS2lubnVuZW4g
IDxra2lubnVuZW5AYXBwbGUuY29tPgorCisgICAgICAgIElPU3VyZmFjZSBtZW1vcnkgYXR0cmli
dXRpb24gaXMgaGFyZCB0byB1c2UgaW4gY29uc3RydWN0b3JzCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzI5ODgKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZW1vdmUgaWZkZWZzIGFuZCBkaXJlY3QgdXNl
IG9mIHRhc2tfaWRfdG9rZW5fdC4KKyAgICAgICAgSW5zdGVhZCwgdXNlIFdlYkNvcmU6OlByb2Nl
c3NJZGVudGlmaWVyLiBUaGlzIHdheSB0aGUKKyAgICAgICAgY3Jvc3MtcGxhdGZvcm0gY29kZSBp
cyBlYXNpZXIgdG8gYXV0aG9yLgorCisgICAgICAgICogR1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9u
VG9XZWJQcm9jZXNzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6R1BVQ29ubmVjdGlvblRvV2ViUHJv
Y2Vzczo6R1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcyk6CisgICAgICAgICogR1BVUHJvY2Vzcy9H
UFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmg6CisgICAgICAgIChXZWJLaXQ6OkdQVUNvbm5lY3Rp
b25Ub1dlYlByb2Nlc3M6OndlYlByb2Nlc3NJZGVudGl0eSBjb25zdCk6CisgICAgICAgIChXZWJL
aXQ6OkdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OndlYlByb2Nlc3NJZGVudGl0eVRva2VuIGNv
bnN0KTogRGVsZXRlZC4KKyAgICAgICAgKiBHUFVQcm9jZXNzL2dyYXBoaWNzL0dQVVByb2Nlc3NH
cmFwaGljc0NvbnRleHRHTC5oOgorICAgICAgICAqIEdQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3Rl
R3JhcGhpY3NDb250ZXh0R0xDb2NvYS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUdyYXBo
aWNzQ29udGV4dEdMQ29jb2E6OlJlbW90ZUdyYXBoaWNzQ29udGV4dEdMQ29jb2EpOgorICAgICAg
ICAoV2ViS2l0OjpSZW1vdGVHcmFwaGljc0NvbnRleHRHTENvY29hOjpwbGF0Zm9ybVdvcmtRdWV1
ZUluaXRpYWxpemUpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVHcmFwaGljc0NvbnRleHRHTENv
Y29hOjpwcmVwYXJlRm9yRGlzcGxheSk6CisgICAgICAgICogR1BVUHJvY2Vzcy9ncmFwaGljcy9S
ZW1vdGVJbWFnZUJ1ZmZlci5oOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVJbWFnZUJ1ZmZlcjo6
c2V0T3duZXJzaGlwSWRlbnRpdHkpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVJbWFnZUJ1ZmZl
cjo6c2V0UHJvY2Vzc093bmVyc2hpcCk6IERlbGV0ZWQuCisgICAgICAgICogR1BVUHJvY2Vzcy9n
cmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmNwcDoKKyAgICAgICAgKFdlYktpdDo6UmVt
b3RlUmVuZGVyaW5nQmFja2VuZDo6UmVtb3RlUmVuZGVyaW5nQmFja2VuZCk6CisgICAgICAgIChX
ZWJLaXQ6OlJlbW90ZVJlbmRlcmluZ0JhY2tlbmQ6OmNyZWF0ZUltYWdlQnVmZmVyV2l0aFF1YWxp
ZmllZElkZW50aWZpZXIpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZW5kZXJpbmdCYWNrZW5k
OjpnZXREYXRhVVJMRm9ySW1hZ2VCdWZmZXJXaXRoUXVhbGlmaWVkSWRlbnRpZmllcik6CisgICAg
ICAgICogR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmg6CisgICAg
ICAgICogR1BVUHJvY2Vzcy93ZWJydGMvTGliV2ViUlRDQ29kZWNzUHJveHkubW06CisgICAgICAg
IChXZWJLaXQ6OkZ1bmN0aW9uPHZvaWQpOgorICAgICAgICAqIFNoYXJlZC9HUFVQcm9jZXNzQ29u
bmVjdGlvblBhcmFtZXRlcnMuaDoKKyAgICAgICAgKFdlYktpdDo6R1BVUHJvY2Vzc0Nvbm5lY3Rp
b25QYXJhbWV0ZXJzOjplbmNvZGUgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpHUFVQcm9jZXNz
Q29ubmVjdGlvblBhcmFtZXRlcnM6OmRlY29kZSk6CisgICAgICAgICogU2hhcmVkL1dlYkNvcmVB
cmd1bWVudENvZGVycy5jcHA6CisgICAgICAgICogU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVy
cy5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclBy
b3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6
U291cmNlUHJveHk6OlNvdXJjZVByb3h5KToKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhQ2Fw
dHVyZU1hbmFnZXJQcm94eTo6U291cmNlUHJveHk6OnNldFNob3VsZEFwcGx5Um90YXRpb24pOgor
ICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OjpjcmVhdGVNZWRp
YVNvdXJjZUZvckNhcHR1cmVEZXZpY2VXaXRoQ29uc3RyYWludHMpOgorICAgICAgICAoV2ViS2l0
OjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OjpjbG9uZSk6CisgICAgICAgIChXZWJLaXQ6
OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6OlNvdXJjZVByb3h5OjpzZXRXZWJQcm9jZXNz
SWRlbnRpdHlUb2tlbik6IERlbGV0ZWQuCisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL1VzZXJN
ZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkuaDoKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhQ2Fw
dHVyZU1hbmFnZXJQcm94eTo6Q29ubmVjdGlvblByb3h5OjpyZXNvdXJjZU93bmVyIGNvbnN0KToK
KyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6Q29ubmVjdGlv
blByb3h5Ojp3ZWJQcm9jZXNzSWRlbnRpdHlUb2tlbiBjb25zdCk6IERlbGV0ZWQuCisgICAgICAg
ICogV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvY29jb2EvSW1hZ2VCdWZmZXJTaGFyZWFibGVNYXBw
ZWRJT1N1cmZhY2VCYWNrZW5kLmNwcDoKKyAgICAgICAgKFdlYktpdDo6SW1hZ2VCdWZmZXJTaGFy
ZWFibGVNYXBwZWRJT1N1cmZhY2VCYWNrZW5kOjpzZXRPd25lcnNoaXBJZGVudGl0eSk6CisgICAg
ICAgIChXZWJLaXQ6OkltYWdlQnVmZmVyU2hhcmVhYmxlTWFwcGVkSU9TdXJmYWNlQmFja2VuZDo6
c2V0UHJvY2Vzc093bmVyc2hpcCk6IERlbGV0ZWQuCisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUv
Z3JhcGhpY3MvY29jb2EvSW1hZ2VCdWZmZXJTaGFyZWFibGVNYXBwZWRJT1N1cmZhY2VCYWNrZW5k
Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9jb2NvYS9XZWJQcm9jZXNzQ29jb2EubW06CisgICAg
ICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OnBsYXRmb3JtSW5pdGlhbGl6ZUdQVVByb2Nlc3NDb25u
ZWN0aW9uUGFyYW1ldGVycyk6CiAyMDIxLTExLTEwICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBs
ZS5jb20+CiAKICAgICAgICAgV2Ugc2hvdWxkIG5vdCBraWxsIGFsbCBXZWJDb250ZW50IHByb2Nl
c3NlcyB3aGVuZXZlciB0aGUgV2ViQXV0aG4gcHJvY2VzcyBjcmFzaGVzCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlIGIvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFr
ZQppbmRleCAzNjM1ZmM1YmNlOWVhZDQ5MGM4ZDk4NTRmZThlNWZkZTI5Njc0ZDIwLi44MWQ2ZjZh
YTMzMzk0NmIxN2M2YjJkYmQxZGZhMmQ1ZDgwMzYxMWJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9IZWFkZXJzLmNtYWtlCisrKyBiL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKQEAg
LTExNDAsNiArMTE0MCw3IEBAIHNldChXZWJDb3JlX1BSSVZBVEVfRlJBTUVXT1JLX0hFQURFUlMK
ICAgICBwbGF0Zm9ybS9Qb3B1cE1lbnVDbGllbnQuaAogICAgIHBsYXRmb3JtL1BvcHVwTWVudVN0
eWxlLmgKICAgICBwbGF0Zm9ybS9Qcm9jZXNzSWRlbnRpZmllci5oCisgICAgcGxhdGZvcm0vUHJv
Y2Vzc0lkZW50aXR5LmgKICAgICBwbGF0Zm9ybS9Qcm9jZXNzUXVhbGlmaWVkLmgKICAgICBwbGF0
Zm9ybS9Qcm9taXNlZEF0dGFjaG1lbnRJbmZvLmgKICAgICBwbGF0Zm9ybS9QdWJsaWNTdWZmaXgu
aApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQgYi9Tb3VyY2UvV2ViQ29y
ZS9Tb3VyY2VzLnR4dAppbmRleCA4YTExNGExMjM4ZDRmNjgxODg0NmYyMWMyZGIwYWMwMzAzYjFl
YjI5Li5hNWJiMjhjNmY3NTE2YWY2ZjhkM2VhYmRmZGEyYmVmZmE0ZTUyM2RlIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2Vz
LnR4dApAQCAtMTg3MCw2ICsxODcwLDcgQEAgcGxhdGZvcm0vUGxhdGZvcm1TdHJhdGVnaWVzLmNw
cAogcGxhdGZvcm0vUGxhdGZvcm1XaGVlbEV2ZW50LmNwcAogcGxhdGZvcm0vUHJldmlld0NvbnZl
cnRlci5jcHAKIHBsYXRmb3JtL1Byb2Nlc3NJZGVudGlmaWVyLmNwcAorcGxhdGZvcm0vUHJvY2Vz
c0lkZW50aXR5LmNwcAogcGxhdGZvcm0vUmVmZXJyZXJQb2xpY3kuY3BwCiBwbGF0Zm9ybS9SZW1v
dGVDb21tYW5kTGlzdGVuZXIuY3BwCiBwbGF0Zm9ybS9SdW50aW1lQXBwbGljYXRpb25DaGVja3Mu
Y3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2oKaW5kZXggMjk5YTg4NjYwZjFlYjAyMmNiZDhiNGVkYzIzMWIyMjkwOWJkYTE0NC4uMzc2NTMx
Mzk2OWI3Mjk4NDE2NGEzODBlYWE0MzU2ZjViYTY0ODNlMCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMjM2Myw2ICsyMzYzLDcg
QEAKIAkJN0I3MzExRkIyNUMwOTJCNzAwM0IyNzk2IC8qIFNjb3BlZEhpZ2hQZXJmb3JtYW5jZUdQ
VVJlcXVlc3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDdCNzMxMUZBMjVDMDkyQjcwMDNCMjc5NiAvKiBTY29wZWRIaWdoUGVyZm9ybWFuY2VHUFVSZXF1
ZXN0LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJ
N0I4RUQ1RjAyNkYwQzEzRDAwOEFDMDIzIC8qIENWVXRpbGl0aWVzLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3QjhFRDVFRDI2RjBDMTIzMDA4QUMwMjMg
LyogQ1ZVdGlsaXRpZXMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OwogCQk3QjkwNDE3MDI1NTAxMTQyMDA2RUVCOEMgLyogUmVtb3RlR3JhcGhpY3NDb250
ZXh0R0xQcm94eUJhc2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDdCOTA0MTZFMjU1MDExMDkwMDZFRUI4QyAvKiBSZW1vdGVHcmFwaGljc0NvbnRleHRH
TFByb3h5QmFzZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CisJCTdCQTdDNkMzMjczQkY2MkMwMDI5REZCRSAvKiBQcm9jZXNzSWRlbnRpdHkuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdCQTdDNkMxMjczQkY2
MkIwMDI5REZCRSAvKiBQcm9jZXNzSWRlbnRpdHkuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRF
UyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk3QkIzNEE0ODI1Mzc3NkNBMDAwMjlEMDggLyogR3Jh
cGhpY3NDb250ZXh0R0xJbWFnZUV4dHJhY3Rvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gN0JCMzRBNDUyNTM3NzZDNjAwMDI5RDA4IC8qIEdyYXBoaWNz
Q29udGV4dEdMSW1hZ2VFeHRyYWN0b3IuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQ
cml2YXRlLCApOyB9OyB9OwogCQk3QkI2ODBCQTI1QkExQkU0MDAyQjg3MzggLyogR3JhcGhpY3ND
aGVja3NNYWMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDdCQjY4MEI4MjVCQTFCRTQwMDJCODczOCAvKiBHcmFwaGljc0NoZWNrc01hYy5oICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTdCRTc0MjczODFGQTkw
NkZCQjRGMEYyQyAvKiBKU1NWR0dyYXBoaWNzRWxlbWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTUwQzRDMDJCRUQ4OTM2RjgxOEUyRjk5IC8qIEpT
U1ZHR3JhcGhpY3NFbGVtZW50LmggKi87IH07CkBAIC0xMTAyMSw2ICsxMTAyMiw4IEBACiAJCTdC
OEVENUVEMjZGMEMxMjMwMDhBQzAyMyAvKiBDVlV0aWxpdGllcy5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBDVlV0aWxpdGllcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk3QjhFRDVFRjI2RjBDMTIzMDA4QUMwMjMgLyogQ1ZVdGlsaXRpZXMubW0gKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBDVlV0aWxpdGllcy5tbTsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0I5MDQxNkUyNTUwMTEwOTAwNkVFQjhDIC8qIFJlbW90ZUdy
YXBoaWNzQ29udGV4dEdMUHJveHlCYXNlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbW90ZUdyYXBoaWNz
Q29udGV4dEdMUHJveHlCYXNlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTdCQTdD
NkJGMjczQkY2MkIwMDI5REZCRSAvKiBQcm9jZXNzSWRlbnRpdHkuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUHJvY2Vzc0lkZW50aXR5LmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJN0JBN0M2QzEyNzNCRjYyQjAwMjlERkJFIC8qIFByb2Nlc3NJZGVu
dGl0eS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQcm9jZXNzSWRlbnRpdHku
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0JCMzRBMTYyNTM0NUNCMjAwMDI5RDA4
IC8qIEFOR0xFVXRpbGl0aWVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEFO
R0xFVXRpbGl0aWVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdCQjM0QTQ1MjUz
Nzc2QzYwMDAyOUQwOCAvKiBHcmFwaGljc0NvbnRleHRHTEltYWdlRXh0cmFjdG9yLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IEdyYXBoaWNzQ29udGV4dEdMSW1hZ2VFeHRyYWN0b3IuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJN0JCMzRBNDcyNTM3NzZDNzAwMDI5RDA4IC8qIEdyYXBoaWNzQ29u
dGV4dEdMSW1hZ2VFeHRyYWN0b3IuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gR3JhcGhpY3NDb250
ZXh0R0xJbWFnZUV4dHJhY3Rvci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0y
ODk5MCw2ICsyODk5Myw4IEBACiAJCQkJQTFBREFGN0MyMzYwRkQzRTAwOUNCNzc2IC8qIFByZXZp
ZXdDb252ZXJ0ZXJQcm92aWRlci5oICovLAogCQkJCTUxRjY0NUQyMUZFQ0RCQzgwMEI1NERFRCAv
KiBQcm9jZXNzSWRlbnRpZmllci5jcHAgKi8sCiAJCQkJNTFGNjQ1RDMxRkVDREJDODAwQjU0REVE
IC8qIFByb2Nlc3NJZGVudGlmaWVyLmggKi8sCisJCQkJN0JBN0M2QkYyNzNCRjYyQjAwMjlERkJF
IC8qIFByb2Nlc3NJZGVudGl0eS5jcHAgKi8sCisJCQkJN0JBN0M2QzEyNzNCRjYyQjAwMjlERkJF
IC8qIFByb2Nlc3NJZGVudGl0eS5oICovLAogCQkJCTFDQzU0QUZCMjcwRjkyREEwMDVCRjhCRSAv
KiBQcm9jZXNzUXVhbGlmaWVkLmggKi8sCiAJCQkJRjQ3QTYzM0MxRkY2RkQ1MDAwODFCM0NDIC8q
IFByb21pc2VkQXR0YWNobWVudEluZm8uaCAqLywKIAkJCQkwMDgxRkVGRDE2QjBBMjQ0MDA4QUFB
N0EgLyogUHVibGljU3VmZml4LmggKi8sCkBAIC0zNTQ3Miw2ICszNTQ3Nyw3IEBACiAJCQkJQjcx
RkU2REYxMTA5MUNCMzAwREFFRjc3IC8qIFByaW50Q29udGV4dC5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJNkIwQTA3RjIyMUZBNEI1QzAwRDU3MzkxIC8qIFByaXZhdGVDbGlja01lYXN1cmVtZW50Lmgg
aW4gSGVhZGVycyAqLywKIAkJCQk1MUY2NDVENTFGRUNEQkNFMDBCNTRERUQgLyogUHJvY2Vzc0lk
ZW50aWZpZXIuaCBpbiBIZWFkZXJzICovLAorCQkJCTdCQTdDNkMzMjczQkY2MkMwMDI5REZCRSAv
KiBQcm9jZXNzSWRlbnRpdHkuaCBpbiBIZWFkZXJzICovLAogCQkJCUE4RUE3RUJDMEExOTQ1RDAw
MEE4RUY1RiAvKiBQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCTFD
QzU0QUZFMjcwRjk2QUUwMDVCRjhCRSAvKiBQcm9jZXNzUXVhbGlmaWVkLmggaW4gSGVhZGVycyAq
LywKIAkJCQlFNDIwNTAxNzIxNDE5MDFCMDA2NkVGM0IgLyogUHJvY2Vzc1dhcm1pbmcuaCBpbiBI
ZWFkZXJzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTG9nZ2luZy5o
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTG9nZ2luZy5oCmluZGV4IDNmYmU0MTdiZTk4MWI3
NWU3NzlkZTIzOGZjNGJlMDVhNmQ3MzBmYWEuLmRjMGY1MDk4Yjg3ZjE4NDU1MjViZTNjMGJhNDFm
NzY3NWIxNDA0N2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xvZ2dpbmcu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Mb2dnaW5nLmgKQEAgLTk0LDYgKzk0LDcg
QEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgIE0oUGx1Z2lucykgXAogICAgIE0oUG9wdXBCbG9j
a2luZykgXAogICAgIE0oUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQpIFwKKyAgICBNKFByb2Nlc3Mp
IFwKICAgICBNKFByb2dyZXNzKSBcCiAgICAgTShSZW1vdGVJbnNwZWN0b3IpIFwKICAgICBNKFJl
cXVlc3RBbmltYXRpb25GcmFtZSkgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vUHJvY2Vzc0lkZW50aXR5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Byb2Nlc3NJ
ZGVudGl0eS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYWE2YzdlZWFiMDFkMzI0M2IyYjQ1YTYzYzU2MDQ0Y2Zj
NTgxNzFkYQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Byb2Nl
c3NJZGVudGl0eS5jcHAKQEAgLTAsMCArMSw3MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAy
MSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlks
IE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisg
KiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJQcm9j
ZXNzSWRlbnRpdHkuaCIKKworI2luY2x1ZGUgIkxvZ2dpbmcuaCIKKworbmFtZXNwYWNlIFdlYkNv
cmUgeworCitSZWZQdHI8UHJvY2Vzc0lkZW50aXR5PiBQcm9jZXNzSWRlbnRpdHk6OmNyZWF0ZShI
YW5kbGUmJiBoYW5kbGUpCit7CisjaWYgSEFWRShUQVNLX0lERU5USVRZX1RPS0VOKQorICAgIHJl
dHVybiBhZG9wdFJlZihuZXcgUHJvY2Vzc0lkZW50aXR5KFdURk1vdmUoaGFuZGxlKSkpOworI2Vs
c2UKKyAgICByZXR1cm4gbnVsbHB0cjsKKyNlbmRpZgorfQorCitQcm9jZXNzSWRlbnRpdHk6OlBy
b2Nlc3NJZGVudGl0eShIYW5kbGUmJiBoYW5kbGUpCisgICAgOiBtX2hhbmRsZShXVEZNb3ZlKGhh
bmRsZSkpCit7Cit9CisKK1Byb2Nlc3NJZGVudGl0eTo6SGFuZGxlIFByb2Nlc3NJZGVudGl0eTo6
aGFuZGxlRm9yQ3VycmVudFByb2Nlc3MoKQoreworICAgIFByb2Nlc3NJZGVudGl0eTo6SGFuZGxl
IHJlc3VsdDsKKyNpZiBIQVZFKFRBU0tfSURFTlRJVFlfVE9LRU4pCisgICAgdGFza19pZF90b2tl
bl90IGlkZW50aXR5VG9rZW47CisgICAga2Vybl9yZXR1cm5fdCBrciA9IHRhc2tfY3JlYXRlX2lk
ZW50aXR5X3Rva2VuKG1hY2hfdGFza19zZWxmKCksICZpZGVudGl0eVRva2VuKTsKKyAgICBpZiAo
a3IgPT0gS0VSTl9TVUNDRVNTKQorICAgICAgICByZXN1bHQgPSBNYWNoU2VuZFJpZ2h0OjphZG9w
dChpZGVudGl0eVRva2VuKTsKKyAgICBlbHNlCisgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKFBy
b2Nlc3MsICJ0YXNrX2NyZWF0ZV9pZGVudGl0eV90b2tlbigpIGZhaWxlZDogJXtwcml2YXRlfXMg
KCV4KSIsIG1hY2hfZXJyb3Jfc3RyaW5nKGtyKSwga3IpOworI2VuZGlmCisgICAgcmV0dXJuIHJl
c3VsdDsKK30KKworY29uc3QgUHJvY2Vzc0lkZW50aXR5OjpIYW5kbGUmIFByb2Nlc3NJZGVudGl0
eTo6aGFuZGxlKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9oYW5kbGU7Cit9CisKKyNpZiBIQVZF
KFRBU0tfSURFTlRJVFlfVE9LRU4pCit0YXNrX2lkX3Rva2VuX3QgUHJvY2Vzc0lkZW50aXR5Ojp0
YXNrSWRUb2tlbigpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1faGFuZGxlLnNlbmRSaWdodCgpOwor
fQorI2VuZGlmCisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Byb2Nl
c3NJZGVudGl0eS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUHJvY2Vzc0lkZW50aXR5LmgK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uZWMyMjExMWQ5YzE0M2M0YzhhOTdlMDVhY2VhNTU3MDU4NjA4MzY4OAotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Byb2Nlc3NJZGVudGl0eS5o
CkBAIC0wLDAgKzEsNjEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1F
TlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
CisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgPHd0Zi9UaHJlYWRTYWZlUmVmQ291bnRl
ZC5oPgorCisjaWYgSEFWRShUQVNLX0lERU5USVRZX1RPS0VOKQorI2luY2x1ZGUgPHd0Zi9NYWNo
U2VuZFJpZ2h0Lmg+CisjZWxzZQorI2luY2x1ZGUgPG1vbm9zdGF0ZT4KKyNlbmRpZgorCituYW1l
c3BhY2UgV2ViQ29yZSB7CisKKy8vIE9iamVjdCB0byBhY2Nlc3MgcHJvb2Ygb2YgcHJvY2VzcyBp
ZGVudGl0eS4KKy8vIFByb2Nlc3NJZGVudGlmaWVyIGlkZW50aWZpZXMgYSBwcm9jZXNzLgorLy8g
UHJvY2Vzc0lkZW50aXR5IGdyYW50cyBhY2Nlc3MgdG8gdGhlIGlkZW50aXR5LgorY2xhc3MgV0VC
Q09SRV9FWFBPUlQgUHJvY2Vzc0lkZW50aXR5IGZpbmFsIDogcHVibGljIFRocmVhZFNhZmVSZWZD
b3VudGVkPFByb2Nlc3NJZGVudGl0eT4geworcHVibGljOgorI2lmIEhBVkUoVEFTS19JREVOVElU
WV9UT0tFTikKKyAgICB1c2luZyBIYW5kbGUgPSBNYWNoU2VuZFJpZ2h0OworI2Vsc2UKKyAgICB1
c2luZyBIYW5kbGUgPSBzdGQ6Om1vbm9zdGF0ZTsKKyNlbmRpZgorICAgIHN0YXRpYyBSZWZQdHI8
UHJvY2Vzc0lkZW50aXR5PiBjcmVhdGUoSGFuZGxlJiYpOworICAgIHN0YXRpYyBIYW5kbGUgaGFu
ZGxlRm9yQ3VycmVudFByb2Nlc3MoKTsKKyAgICBjb25zdCBIYW5kbGUmIGhhbmRsZSgpIGNvbnN0
OworCisjaWYgSEFWRShUQVNLX0lERU5USVRZX1RPS0VOKQorICAgIHRhc2tfaWRfdG9rZW5fdCB0
YXNrSWRUb2tlbigpIGNvbnN0OworI2VuZGlmCitwcml2YXRlOgorICAgIFByb2Nlc3NJZGVudGl0
eShIYW5kbGUmJik7CisKKyAgICBIYW5kbGUgbV9oYW5kbGU7Cit9OworCit9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9SZW1vdGVWaWRlb1NhbXBsZS5oIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvUmVtb3RlVmlkZW9TYW1wbGUuaAppbmRl
eCBhNjE3MGIzMjhmYzQ0YWNlNjkzZGNkYjM1ZWU0ZDNjZTY4NzMzOGExLi4wZjViYWVhODU2ZTNm
MWE4Y2UxNjViMjAzODY1Yzk2NDQzNTQyNTYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9SZW1vdGVWaWRlb1NhbXBsZS5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL1JlbW90ZVZpZGVvU2FtcGxlLmgKQEAgLTM3LDYgKzM3LDggQEAg
dHlwZWRlZiBzdHJ1Y3QgX19DVkJ1ZmZlciogQ1ZQaXhlbEJ1ZmZlclJlZjsKIAogbmFtZXNwYWNl
IFdlYkNvcmUgewogCitjbGFzcyBQcm9jZXNzSWRlbnRpdHk7CisKIGNsYXNzIFJlbW90ZVZpZGVv
U2FtcGxlIHsKIHB1YmxpYzoKICAgICBSZW1vdGVWaWRlb1NhbXBsZSgpID0gZGVmYXVsdDsKQEAg
LTQ4LDkgKzUwLDcgQEAgcHVibGljOgogICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBzdGQ6OnVu
aXF1ZV9wdHI8UmVtb3RlVmlkZW9TYW1wbGU+IGNyZWF0ZShSZXRhaW5QdHI8Q1ZQaXhlbEJ1ZmZl
clJlZj4mJiwgTWVkaWFUaW1lJiYgcHJlc2VudGF0aW9uVGltZSwgTWVkaWFTYW1wbGU6OlZpZGVv
Um90YXRpb24gPSBNZWRpYVNhbXBsZTo6VmlkZW9Sb3RhdGlvbjo6Tm9uZSk7CiAgICAgV0VCQ09S
RV9FWFBPUlQgSU9TdXJmYWNlUmVmIHN1cmZhY2UoKSBjb25zdDsKIAotI2lmIEhBVkUoSU9TVVJG
QUNFX1NFVF9PV05FUlNISVBfSURFTlRJVFkpCi0gICAgdm9pZCBzZXRPd25lcnNoaXBJZGVudGl0
eSh0YXNrX2lkX3Rva2VuX3QgbmV3T3duZXIpOwotI2VuZGlmCisgICAgdm9pZCBzZXRPd25lcnNo
aXBJZGVudGl0eShQcm9jZXNzSWRlbnRpdHkqIHJlc291cmNlT3duZXIpOwogCiAgICAgY29uc3Qg
TWVkaWFUaW1lJiB0aW1lKCkgY29uc3QgeyByZXR1cm4gbV90aW1lOyB9CiAgICAgdWludDMyX3Qg
dmlkZW9Gb3JtYXQoKSBjb25zdCB7IHJldHVybiBtX3ZpZGVvRm9ybWF0OyB9CkBAIC0xMTksMTMg
KzExOSwxMSBAQCBwcml2YXRlOgogICAgIGJvb2wgbV9taXJyb3JlZCB7IGZhbHNlIH07CiB9Owog
Ci0jaWYgSEFWRShJT1NVUkZBQ0VfU0VUX09XTkVSU0hJUF9JREVOVElUWSkKLWlubGluZSB2b2lk
IFJlbW90ZVZpZGVvU2FtcGxlOjpzZXRPd25lcnNoaXBJZGVudGl0eSh0YXNrX2lkX3Rva2VuX3Qg
bmV3T3duZXIpCitpbmxpbmUgdm9pZCBSZW1vdGVWaWRlb1NhbXBsZTo6c2V0T3duZXJzaGlwSWRl
bnRpdHkoUHJvY2Vzc0lkZW50aXR5KiByZXNvdXJjZU93bmVyKQogewogICAgIGlmIChtX2lvU3Vy
ZmFjZSkKLSAgICAgICAgbV9pb1N1cmZhY2UtPnNldE93bmVyc2hpcElkZW50aXR5KG5ld093bmVy
KTsKKyAgICAgICAgbV9pb1N1cmZhY2UtPnNldE93bmVyc2hpcElkZW50aXR5KHJlc291cmNlT3du
ZXIpOwogfQotI2VuZGlmCiAKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY29jb2EvR3JhcGhpY3NDb250ZXh0R0xPcGVuR0xDb2NvYS5tbSBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0dyYXBoaWNzQ29udGV4dEdMT3BlbkdM
Q29jb2EubW0KaW5kZXggZmI3MjNkZDQyMmRlOWI5ZGFkYTllNGNiODk3ZDA2MWNiZTZkNjAzZS4u
MTk3OWRhNTY3MjRiYTBkMjVhZGE1ZDE0MWI2M2Y1YWI1ZjFlN2E5NCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvR3JhcGhpY3NDb250ZXh0R0xPcGVu
R0xDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9H
cmFwaGljc0NvbnRleHRHTE9wZW5HTENvY29hLm1tCkBAIC0xOTMsOCArMTkzLDkgQEAgc3RhdGlj
IGJvb2wgbmVlZHNFQUdMT25NYWMoKQogfQogI2VuZGlmCiAKLUdyYXBoaWNzQ29udGV4dEdMT3Bl
bkdMOjpHcmFwaGljc0NvbnRleHRHTE9wZW5HTChHcmFwaGljc0NvbnRleHRHTEF0dHJpYnV0ZXMg
YXR0cnMpCitHcmFwaGljc0NvbnRleHRHTE9wZW5HTDo6R3JhcGhpY3NDb250ZXh0R0xPcGVuR0wo
R3JhcGhpY3NDb250ZXh0R0xBdHRyaWJ1dGVzJiYgYXR0cnMsIFJlZlB0cjxQcm9jZXNzSWRlbnRp
dHk+JiYgcmVzb3VyY2VPd25lcikKICAgICA6IEdyYXBoaWNzQ29udGV4dEdMKGF0dHJzKQorICAg
ICwgbV9yZXNvdXJjZU93bmVyKFdURk1vdmUocmVzb3VyY2VPd25lcikpCiB7CiAgICAgbV9pc0Zv
cldlYkdMMiA9IGF0dHJzLndlYkdMVmVyc2lvbiA9PSBHcmFwaGljc0NvbnRleHRHTFdlYkdMVmVy
c2lvbjo6V2ViR0wyOwogICAgIGlmIChhdHRycy51c2VNZXRhbCAmJiAhcGxhdGZvcm1TdXBwb3J0
c01ldGFsKG1faXNGb3JXZWJHTDIpKSB7CkBAIC01NjUsNiArNTY2LDggQEAgYm9vbCBHcmFwaGlj
c0NvbnRleHRHTE9wZW5HTDo6YWxsb2NhdGVBbmRCaW5kRGlzcGxheUJ1ZmZlckJhY2tpbmcoKQog
ICAgIGF1dG8gYmFja2luZyA9IElPU3VyZmFjZTo6Y3JlYXRlKGdldEludGVybmFsRnJhbWVidWZm
ZXJTaXplKCksIERlc3RpbmF0aW9uQ29sb3JTcGFjZTo6U1JHQigpKTsKICAgICBpZiAoIWJhY2tp
bmcpCiAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBpZiAobV9yZXNvdXJjZU93bmVyKQorICAg
ICAgICBiYWNraW5nLT5zZXRPd25lcnNoaXBJZGVudGl0eShtX3Jlc291cmNlT3duZXIuZ2V0KCkp
OwogCiAgICAgYmFja2luZy0+bWlncmF0ZUNvbG9yU3BhY2VUb1Byb3BlcnRpZXMoKTsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvSU9TdXJmYWNl
LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9JT1N1cmZhY2UuaApp
bmRleCA1NjUyNDc4MjJkYmEyOWY3NjAwYjk0MDdlNmY0YWNiOGMxYTA2YWFjLi4wYzQzY2E0Zjgw
NGQyNjBjNjEwNWViOTJiNjExMDkxZTJjMjUzMmEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9JT1N1cmZhY2UuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9JT1N1cmZhY2UuaApAQCAtNDYsNiArNDYsNyBAQCBu
YW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBHcmFwaGljc0NvbnRleHQ7CiBjbGFzcyBIb3N0V2lu
ZG93OwogY2xhc3MgSW1hZ2VCdWZmZXI7CitjbGFzcyBQcm9jZXNzSWRlbnRpdHk7CiAKIGVudW0g
Y2xhc3MgUGl4ZWxGb3JtYXQgOiB1aW50OF90OwogZW51bSBjbGFzcyBWb2xhdGlsaXR5U3RhdGUg
OiB1aW50OF90OwpAQCAtMTU5LDkgKzE2MCw3IEBAIHB1YmxpYzoKICAgICBXRUJDT1JFX0VYUE9S
VCBzdGF0aWMgdm9pZCBjb252ZXJ0VG9Gb3JtYXQoc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OklP
U3VyZmFjZT4mJiBpblN1cmZhY2UsIEZvcm1hdCwgRnVuY3Rpb248dm9pZChzdGQ6OnVuaXF1ZV9w
dHI8V2ViQ29yZTo6SU9TdXJmYWNlPik+JiYpOwogI2VuZGlmIC8vIEhBVkUoSU9TVVJGQUNFX0FD
Q0VMRVJBVE9SKQogCi0jaWYgSEFWRShJT1NVUkZBQ0VfU0VUX09XTkVSU0hJUF9JREVOVElUWSkK
LSAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldE93bmVyc2hpcElkZW50aXR5KHRhc2tfaWRfdG9r
ZW5fdCBuZXdPd25lcik7Ci0jZW5kaWYKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldE93bmVy
c2hpcElkZW50aXR5KFByb2Nlc3NJZGVudGl0eSogcmVzb3VyY2VPd25lcik7CiAKICAgICB2b2lk
IG1pZ3JhdGVDb2xvclNwYWNlVG9Qcm9wZXJ0aWVzKCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0lPU3VyZmFjZS5tbSBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0lPU3VyZmFjZS5tbQppbmRleCAwMTExNjVjZTEx
YWJjZTY3NWM0YjQ3YmY5MTVkNGM4MWU2Y2VlOTk1Li4yMmZlYjU3ODM0ZTYyM2ZmMjY0ZThkNzAy
NjA2Njg2ODBjMTcwYzExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jb2NvYS9JT1N1cmZhY2UubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY29jb2EvSU9TdXJmYWNlLm1tCkBAIC0zNCw2ICszNCw3IEBACiAjaW1wb3J0ICJJbWFn
ZUJ1ZmZlci5oIgogI2ltcG9ydCAiTG9nZ2luZy5oIgogI2ltcG9ydCAiUGxhdGZvcm1TY3JlZW4u
aCIKKyNpbXBvcnQgIlByb2Nlc3NJZGVudGl0eS5oIgogI2ltcG9ydCA8cGFsL3NwaS9jZy9Db3Jl
R3JhcGhpY3NTUEkuaD4KICNpbXBvcnQgPHd0Zi9Bc3NlcnRpb25zLmg+CiAjaW1wb3J0IDx3dGYv
TWFjaFNlbmRSaWdodC5oPgpAQCAtNDg0LDE0ICs0ODUsMTUgQEAgdm9pZCBJT1N1cmZhY2U6OmNv
bnZlcnRUb0Zvcm1hdChzdGQ6OnVuaXF1ZV9wdHI8SU9TdXJmYWNlPiYmIGluU3VyZmFjZSwgRm9y
bWF0IGYKIAogI2VuZGlmIC8vIEhBVkUoSU9TVVJGQUNFX0FDQ0VMRVJBVE9SKQogCi0jaWYgSEFW
RShJT1NVUkZBQ0VfU0VUX09XTkVSU0hJUF9JREVOVElUWSkKLXZvaWQgSU9TdXJmYWNlOjpzZXRP
d25lcnNoaXBJZGVudGl0eSh0YXNrX2lkX3Rva2VuX3QgbmV3T3duZXIpCit2b2lkIElPU3VyZmFj
ZTo6c2V0T3duZXJzaGlwSWRlbnRpdHkoUHJvY2Vzc0lkZW50aXR5KiByZXNvdXJjZU93bmVyKQog
ewotICAgIGF1dG8gcmVzdWx0ID0gSU9TdXJmYWNlU2V0T3duZXJzaGlwSWRlbnRpdHkobV9zdXJm
YWNlLmdldCgpLCBuZXdPd25lciwga0lPU3VyZmFjZU1lbW9yeUxlZGdlclRhZ0dyYXBoaWNzLCAw
KTsKKyNpZiBIQVZFKElPU1VSRkFDRV9TRVRfT1dORVJTSElQX0lERU5USVRZKSAmJiBIQVZFKFRB
U0tfSURFTlRJVFlfVE9LRU4pCisgICAgdGFza19pZF90b2tlbl90IG93bmVyVGFza0lkVG9rZW4g
PSByZXNvdXJjZU93bmVyID8gcmVzb3VyY2VPd25lci0+dGFza0lkVG9rZW4oKSA6IDA7CisgICAg
YXV0byByZXN1bHQgPSBJT1N1cmZhY2VTZXRPd25lcnNoaXBJZGVudGl0eShtX3N1cmZhY2UuZ2V0
KCksIG93bmVyVGFza0lkVG9rZW4sIGtJT1N1cmZhY2VNZW1vcnlMZWRnZXJUYWdHcmFwaGljcywg
MCk7CiAgICAgaWYgKHJlc3VsdCAhPSBrSU9SZXR1cm5TdWNjZXNzKQotICAgICAgICBSRUxFQVNF
X0xPR19FUlJPUihJT1N1cmZhY2UsICJJT1N1cmZhY2U6OnNldE93bmVyc2hpcElkZW50aXR5OiBG
YWlsZWQgdG8gY2xhaW0gb3duZXJzaGlwIG9mIElPU3VyZmFjZSAlcCwgbmV3T3duZXI6ICVkLCBl
cnJvcjogJWQiLCBtX3N1cmZhY2UuZ2V0KCksIChpbnQpbmV3T3duZXIsIHJlc3VsdCk7Ci19Cisg
ICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKElPU3VyZmFjZSwgIklPU3VyZmFjZTo6c2V0T3duZXJz
aGlwSWRlbnRpdHk6IEZhaWxlZCB0byBjbGFpbSBvd25lcnNoaXAgb2YgSU9TdXJmYWNlICVwLCB0
YXNrIGlkIHRva2VuOiAlZCwgZXJyb3I6ICVkIiwgbV9zdXJmYWNlLmdldCgpLCAoaW50KW93bmVy
VGFza0lkVG9rZW4sIHJlc3VsdCk7CiAjZW5kaWYKK30KIAogdm9pZCBJT1N1cmZhY2U6Om1pZ3Jh
dGVDb2xvclNwYWNlVG9Qcm9wZXJ0aWVzKCkKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1dlYlByb2Nlc3NHcmFwaGljc0NvbnRleHRHTE9wZW5H
TENvY29hLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvV2ViUHJv
Y2Vzc0dyYXBoaWNzQ29udGV4dEdMT3BlbkdMQ29jb2EubW0KaW5kZXggMjU2MjVlZGJmZTI1NGUz
NzVmZWYxNjk4MTY5ZjUyZWZkNGFhNzcyMi4uY2FjNDRhMWRiNGRmYzBmNzE3MDRjNzQxODRkYTQ2
MzcyYjMxMjNhZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y29jb2EvV2ViUHJvY2Vzc0dyYXBoaWNzQ29udGV4dEdMT3BlbkdMQ29jb2EubW0KKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvV2ViUHJvY2Vzc0dyYXBoaWNzQ29u
dGV4dEdMT3BlbkdMQ29jb2EubW0KQEAgLTU3LDcgKzU3LDcgQEAgcHVibGljOgogICAgIHZvaWQg
cHJlcGFyZUZvckRpc3BsYXkoKSBmaW5hbDsKIHByaXZhdGU6CiAgICAgV2ViUHJvY2Vzc0dyYXBo
aWNzQ29udGV4dEdMT3BlbkdMKEdyYXBoaWNzQ29udGV4dEdMQXR0cmlidXRlcyBhdHRyaWJ1dGVz
KQotICAgICAgICA6IEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMKGF0dHJpYnV0ZXMpCisgICAgICAg
IDogR3JhcGhpY3NDb250ZXh0R0xPcGVuR0woV1RGTW92ZShhdHRyaWJ1dGVzKSwgeyB9KQogICAg
ICAgICAsIG1fd2ViR0xMYXllcihjcmVhdGVXZWJHTExheWVyKGF0dHJpYnV0ZXMpKQogICAgIHsK
ICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVu
Z2wvR3JhcGhpY3NDb250ZXh0R0xPcGVuR0wuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL29wZW5nbC9HcmFwaGljc0NvbnRleHRHTE9wZW5HTC5oCmluZGV4IDM4MjczYjA3MmI1
NmQzZmRhMmJjZGUzNDhiM2UwZjc0MmMyMDA1ZTUuLmZlMTNlYWZmNGQ3M2ZhNjcwMTYzNjBlOGQy
YjhjZjhkMzNhYzhlNTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL29wZW5nbC9HcmFwaGljc0NvbnRleHRHTE9wZW5HTC5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HcmFwaGljc0NvbnRleHRHTE9wZW5HTC5oCkBAIC0y
OCw2ICsyOCw3IEBACiAjaWYgRU5BQkxFKFdFQkdMKQogCiAjaW5jbHVkZSAiR3JhcGhpY3NDb250
ZXh0R0wuaCIKKyNpbmNsdWRlICJQcm9jZXNzSWRlbnRpdHkuaCIKICNpbmNsdWRlIDxtZW1vcnk+
CiAjaW5jbHVkZSA8d3RmL0hhc2hDb3VudGVkU2V0Lmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAu
aD4KQEAgLTU0Myw4ICs1NDQsOSBAQCBwdWJsaWM6CiAjZW5kaWYKIAogcHJvdGVjdGVkOgotICAg
IEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMKEdyYXBoaWNzQ29udGV4dEdMQXR0cmlidXRlcyk7Cisg
ICAgR3JhcGhpY3NDb250ZXh0R0xPcGVuR0woR3JhcGhpY3NDb250ZXh0R0xBdHRyaWJ1dGVzJiYs
IFJlZlB0cjxQcm9jZXNzSWRlbnRpdHk+JiYgcmVzb3VyY2VPd25lcik7CiAgICAgYm9vbCBpc1Zh
bGlkKCkgY29uc3Q7CisgICAgUmVmUHRyPFByb2Nlc3NJZGVudGl0eT4gbV9yZXNvdXJjZU93bmVy
OwogI2lmIFBMQVRGT1JNKENPQ09BKQogICAgIEdyYXBoaWNzQ29udGV4dEdMSU9TdXJmYWNlU3dh
cENoYWluIG1fc3dhcENoYWluOwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvR3JhcGhpY3NDb250ZXh0R0xUZXh0dXJlTWFwcGVyLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9HcmFwaGljc0NvbnRl
eHRHTFRleHR1cmVNYXBwZXIuY3BwCmluZGV4IGUyODUxYzJlM2QyMjE3NzE2OTRiZGQ2ZjEyZjBl
NWY3ODk5Yzc1NWIuLjMwNzc3MjIwYzljZWVkZjVkYzQyMzUwZGE0MTY0MDRlMmViZTljMGMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9HcmFwaGlj
c0NvbnRleHRHTFRleHR1cmVNYXBwZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL3RleG1hcC9HcmFwaGljc0NvbnRleHRHTFRleHR1cmVNYXBwZXIuY3BwCkBAIC04
NSw3ICs4NSw3IEBAIFJlZlB0cjxHcmFwaGljc0NvbnRleHRHTE9wZW5HTD4gR3JhcGhpY3NDb250
ZXh0R0xPcGVuR0w6OmNyZWF0ZShHcmFwaGljc0NvbnRleHRHCiAgICAgICAgIHJldHVybiBudWxs
cHRyOwogCiAgICAgLy8gQ3JlYXRlIHRoZSBHcmFwaGljc0NvbnRleHRHTE9wZW5HTCBvYmplY3Qg
Zmlyc3QgaW4gb3JkZXIgdG8gZXN0YWJsaXN0IGEgY3VycmVudCBjb250ZXh0IG9uIHRoaXMgdGhy
ZWFkLgotICAgIGF1dG8gY29udGV4dCA9IGFkb3B0UmVmKG5ldyBHcmFwaGljc0NvbnRleHRHTE9w
ZW5HTChhdHRyaWJ1dGVzKSk7CisgICAgYXV0byBjb250ZXh0ID0gYWRvcHRSZWYobmV3IEdyYXBo
aWNzQ29udGV4dEdMT3BlbkdMKFdURk1vdmUoYXR0cmlidXRlcywgeyB9KSkpOwogCiAjaWYgVVNF
KExJQkVQT1hZKSAmJiBVU0UoT1BFTkdMX0VTKSAmJiBFTkFCTEUoV0VCR0wyKQogICAgIC8vIEJh
aWwgaWYgR0xFUzMgd2FzIHJlcXVlc3RlZCBidXQgY2Fubm90IGJlIHByb3ZpZGVkLgpAQCAtOTks
OCArOTksOSBAQCBSZWZQdHI8R3JhcGhpY3NDb250ZXh0R0xPcGVuR0w+IEdyYXBoaWNzQ29udGV4
dEdMT3BlbkdMOjpjcmVhdGUoR3JhcGhpY3NDb250ZXh0RwogfQogCiAjaWYgVVNFKEFOR0xFKQot
R3JhcGhpY3NDb250ZXh0R0xPcGVuR0w6OkdyYXBoaWNzQ29udGV4dEdMT3BlbkdMKEdyYXBoaWNz
Q29udGV4dEdMQXR0cmlidXRlcyBhdHRyaWJ1dGVzKQorR3JhcGhpY3NDb250ZXh0R0xPcGVuR0w6
OkdyYXBoaWNzQ29udGV4dEdMT3BlbkdMKEdyYXBoaWNzQ29udGV4dEdMQXR0cmlidXRlcyYmIGF0
dHJpYnV0ZXMsIFJlZlB0cjxQcm9jZXNzSWRlbnRpdHk+JiYgcmVzb3VyY2VPd25lcikKICAgICA6
IEdyYXBoaWNzQ29udGV4dEdMKGF0dHJpYnV0ZXMpCisgICAgLCBtX3Jlc291cmNlT3duZXIoV1RG
TW92ZShyZXNvdXJjZU93bmVyKSkKIHsKICNpZiBFTkFCTEUoV0VCR0wyKQogICAgIG1faXNGb3JX
ZWJHTDIgPSBhdHRyaWJ1dGVzLndlYkdMVmVyc2lvbiA9PSBHcmFwaGljc0NvbnRleHRHTFdlYkdM
VmVyc2lvbjo6V2ViR0wyOwpAQCAtMTY4LDggKzE2OSw5IEBAIEdyYXBoaWNzQ29udGV4dEdMT3Bl
bkdMOjpHcmFwaGljc0NvbnRleHRHTE9wZW5HTChHcmFwaGljc0NvbnRleHRHTEF0dHJpYnV0ZXMg
YXR0CiAgICAgZ2w6OkNsZWFyQ29sb3IoMCwgMCwgMCwgMCk7CiB9CiAjZWxzZQotR3JhcGhpY3ND
b250ZXh0R0xPcGVuR0w6OkdyYXBoaWNzQ29udGV4dEdMT3BlbkdMKEdyYXBoaWNzQ29udGV4dEdM
QXR0cmlidXRlcyBhdHRyaWJ1dGVzKQorR3JhcGhpY3NDb250ZXh0R0xPcGVuR0w6OkdyYXBoaWNz
Q29udGV4dEdMT3BlbkdMKEdyYXBoaWNzQ29udGV4dEdMQXR0cmlidXRlcyYmIGF0dHJpYnV0ZXMs
IFJlZlB0cjxQcm9jZXNzSWRlbnRpdHk+JiYgcmVzb3VyY2VPd25lcikKICAgICA6IEdyYXBoaWNz
Q29udGV4dEdMKGF0dHJpYnV0ZXMpCisgICAgLCBtX3Jlc291cmNlT3duZXIoV1RGTW92ZShyZXNv
dXJjZU93bmVyKSkKIHsKICNpZiBVU0UoTklDT1NJQSkKICAgICBtX25pY29zaWFMYXllciA9IG1h
a2VVbmlxdWU8Tmljb3NpYTo6R0NHTExheWVyPigqdGhpcyk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L0dQVVByb2Nlc3MvR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L0dQVVByb2Nlc3MvR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAKaW5kZXggNTJh
ZTg4MTkzNzFhM2VkZDYwY2Q3MjBjZDA4NGJiM2M4NTdmYTdjZC4uMWVmOWE2YjI1ODE2MzM3ZjM4
ZDliYjBiM2M3NDg5ZmNkMWM5NDg1YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9j
ZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BV
UHJvY2Vzcy9HUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcApAQCAtMTk5LDEyICsxOTksMTAg
QEAgcHJpdmF0ZToKICAgICB9CiAjZW5kaWYKIAotI2lmIEhBVkUoSU9TVVJGQUNFX1NFVF9PV05F
UlNISVBfSURFTlRJVFkpCi0gICAgc3RkOjpvcHRpb25hbDx0YXNrX2lkX3Rva2VuX3Q+IHdlYlBy
b2Nlc3NJZGVudGl0eVRva2VuKCkgY29uc3QgZmluYWwKKyAgICBSZWZQdHI8UHJvY2Vzc0lkZW50
aXR5PiByZXNvdXJjZU93bmVyKCkgY29uc3QgZmluYWwKICAgICB7Ci0gICAgICAgIHJldHVybiBt
X3Byb2Nlc3Mud2ViUHJvY2Vzc0lkZW50aXR5VG9rZW4oKTsKKyAgICAgICAgcmV0dXJuIG1fcHJv
Y2Vzcy53ZWJQcm9jZXNzSWRlbnRpdHkoKTsKICAgICB9Ci0jZW5kaWYKIAogICAgIEdQVUNvbm5l
Y3Rpb25Ub1dlYlByb2Nlc3MmIG1fcHJvY2VzczsKIH07CkBAIC0yMjAsOSArMjE4LDcgQEAgR1BV
Q29ubmVjdGlvblRvV2ViUHJvY2Vzczo6R1BVQ29ubmVjdGlvblRvV2ViUHJvY2VzcyhHUFVQcm9j
ZXNzJiBncHVQcm9jZXNzLCBXZWIKICAgICA6IG1fY29ubmVjdGlvbihJUEM6OkNvbm5lY3Rpb246
OmNyZWF0ZVNlcnZlckNvbm5lY3Rpb24oY29ubmVjdGlvbklkZW50aWZpZXIsICp0aGlzKSkKICAg
ICAsIG1fZ3B1UHJvY2VzcyhncHVQcm9jZXNzKQogICAgICwgbV93ZWJQcm9jZXNzSWRlbnRpZmll
cih3ZWJQcm9jZXNzSWRlbnRpZmllcikKLSNpZiBIQVZFKFRBU0tfSURFTlRJVFlfVE9LRU4pCi0g
ICAgLCBtX3dlYlByb2Nlc3NJZGVudGl0eVRva2VuKFdURk1vdmUocGFyYW1ldGVycy53ZWJQcm9j
ZXNzSWRlbnRpdHlUb2tlbikpCi0jZW5kaWYKKyAgICAsIG1fd2ViUHJvY2Vzc0lkZW50aXR5KFBy
b2Nlc3NJZGVudGl0eTo6Y3JlYXRlKFdURk1vdmUocGFyYW1ldGVycy53ZWJQcm9jZXNzSWRlbnRp
dHlIYW5kbGUpKSkKICAgICAsIG1fcmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHkobWFrZVVu
aXF1ZVJlZjxSZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eT4oKnRoaXMpKQogICAgICwgbV9z
ZXNzaW9uSUQoc2Vzc2lvbklEKQogI2lmIFBMQVRGT1JNKENPQ09BKSAmJiBVU0UoTElCV0VCUlRD
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dl
YlByb2Nlc3MuaCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9uVG9XZWJQ
cm9jZXNzLmgKaW5kZXggYWU3OTUwNTI1ODYwZGUzY2Y2YTJiMTc4OGZlMzVhNWVhYmRhNTY3ZC4u
ZTA0MjhiODVlNWNmZGFjMmM0MDY1YTkxMDNiOWM1NWU2YjZjYjVhOCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaAorKysgYi9T
b3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oCkBAIC0z
OSw2ICszOSw3IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9Ob3dQbGF5aW5nTWFuYWdlci5oPgogI2lu
Y2x1ZGUgPFdlYkNvcmUvUGFnZUlkZW50aWZpZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Byb2Nl
c3NJZGVudGlmaWVyLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9Qcm9jZXNzSWRlbnRpdHkuaD4KICNp
bmNsdWRlIDxwYWwvU2Vzc2lvbklELmg+CiAjaW5jbHVkZSA8d3RmL0xvZ2dlci5oPgogI2luY2x1
ZGUgPHd0Zi9NYWNoU2VuZFJpZ2h0Lmg+CkBAIC0xNDcsMTAgKzE0OCw3IEBAIHB1YmxpYzoKICAg
ICB2b2lkIGRpc3BhdGNoRGlzcGxheVdhc1JlY29uZmlndXJlZEZvclRlc3RpbmcoKSB7IGRpc3Bh
dGNoRGlzcGxheVdhc1JlY29uZmlndXJlZCgpOyB9OwogI2VuZGlmCiAKLSNpZiBIQVZFKFRBU0tf
SURFTlRJVFlfVE9LRU4pCi0gICAgdGFza19pZF90b2tlbl90IHdlYlByb2Nlc3NJZGVudGl0eVRv
a2VuKCkgY29uc3QgeyByZXR1cm4gc3RhdGljX2Nhc3Q8dGFza19pZF90b2tlbl90PihtX3dlYlBy
b2Nlc3NJZGVudGl0eVRva2VuLnNlbmRSaWdodCgpKTsgfQotI2VuZGlmCi0KKyAgICBSZWZQdHI8
V2ViQ29yZTo6UHJvY2Vzc0lkZW50aXR5PiB3ZWJQcm9jZXNzSWRlbnRpdHkoKSBjb25zdCB7IHJl
dHVybiBtX3dlYlByb2Nlc3NJZGVudGl0eTsgfQogI2lmIEVOQUJMRShFTkNSWVBURURfTUVESUEp
CiAgICAgUmVtb3RlQ0RNRmFjdG9yeVByb3h5JiBjZG1GYWN0b3J5UHJveHkoKTsKICNlbmRpZgpA
QCAtMjczLDkgKzI3MSw3IEBAIHByaXZhdGU6CiAgICAgSVBDOjpNZXNzYWdlUmVjZWl2ZXJNYXAg
bV9tZXNzYWdlUmVjZWl2ZXJNYXA7CiAgICAgUmVmPEdQVVByb2Nlc3M+IG1fZ3B1UHJvY2VzczsK
ICAgICBjb25zdCBXZWJDb3JlOjpQcm9jZXNzSWRlbnRpZmllciBtX3dlYlByb2Nlc3NJZGVudGlm
aWVyOwotI2lmIEhBVkUoVEFTS19JREVOVElUWV9UT0tFTikKLSAgICBNYWNoU2VuZFJpZ2h0IG1f
d2ViUHJvY2Vzc0lkZW50aXR5VG9rZW47Ci0jZW5kaWYKKyAgICBSZWZQdHI8V2ViQ29yZTo6UHJv
Y2Vzc0lkZW50aXR5PiBtX3dlYlByb2Nlc3NJZGVudGl0eTsKICNpZiBFTkFCTEUoV0VCX0FVRElP
KQogICAgIHN0ZDo6dW5pcXVlX3B0cjxSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uTWFuYWdlcj4gbV9y
ZW1vdGVBdWRpb0Rlc3RpbmF0aW9uTWFuYWdlcjsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL0dQVVByb2Nlc3NHcmFwaGljc0NvbnRleHRHTC5o
IGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL0dQVVByb2Nlc3NHcmFwaGljc0Nv
bnRleHRHTC5oCmluZGV4IDFlZWUxOGQ2MmYwNTA5ZjAwOWYzNGMzZWRlNjhkMzVlMGQwODk2NTMu
LmU3MjlhM2E3MTU0NTJjM2FkNDY0YzdjYzllZDVjMGVjYjNiMTFlMDggMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9HUFVQcm9jZXNzR3JhcGhpY3NDb250ZXh0
R0wuaAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvR1BVUHJvY2Vzc0dy
YXBoaWNzQ29udGV4dEdMLmgKQEAgLTI5LDExICsyOSwxMyBAQAogI2luY2x1ZGUgPFdlYkNvcmUv
RXh0ZW5zaW9uc0dMLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9HcmFwaGljc0NvbnRleHRHTE9wZW5H
TC5oPgogCituYW1lc3BhY2UgV2ViS2l0IHsKKwogY2xhc3MgR1BVUHJvY2Vzc0dyYXBoaWNzQ29u
dGV4dEdMT3BlbkdMIGZpbmFsIDogcHVibGljIFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dEdMT3Bl
bkdMIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmUHRyPEdQVVByb2Nlc3NHcmFwaGljc0NvbnRl
eHRHTE9wZW5HTD4gY3JlYXRlKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dEdMQXR0cmlidXRlcyBh
dHRyaWJ1dGVzKQorICAgIHN0YXRpYyBSZWZQdHI8R1BVUHJvY2Vzc0dyYXBoaWNzQ29udGV4dEdM
T3BlbkdMPiBjcmVhdGUoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0R0xBdHRyaWJ1dGVzIGF0dHJp
YnV0ZXMsIFJlZlB0cjxXZWJDb3JlOjpQcm9jZXNzSWRlbnRpdHk+IHJlc291cmNlT3duZXIpCiAg
ICAgewotICAgICAgICBhdXRvIGNvbnRleHQgPSBhZG9wdFJlZigqbmV3IEdQVVByb2Nlc3NHcmFw
aGljc0NvbnRleHRHTE9wZW5HTChXVEZNb3ZlKGF0dHJpYnV0ZXMpKSk7CisgICAgICAgIGF1dG8g
Y29udGV4dCA9IGFkb3B0UmVmKCpuZXcgR1BVUHJvY2Vzc0dyYXBoaWNzQ29udGV4dEdMT3BlbkdM
KFdURk1vdmUoYXR0cmlidXRlcyksIFdURk1vdmUocmVzb3VyY2VPd25lcikpKTsKICAgICAgICAg
aWYgKCFjb250ZXh0LT5pc1ZhbGlkKCkpCiAgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAg
ICAgICAgcmV0dXJuIGNvbnRleHQ7CkBAIC00NCwxMCArNDYsMTIgQEAgcHVibGljOgogICAgIHZv
aWQgbWFya0Rpc3BsYXlCdWZmZXJJblVzZSgpIHsgcmV0dXJuIG1fc3dhcENoYWluLm1hcmtEaXNw
bGF5QnVmZmVySW5Vc2UoKTsgfQogI2VuZGlmCiBwcml2YXRlOgotICAgIEdQVVByb2Nlc3NHcmFw
aGljc0NvbnRleHRHTE9wZW5HTChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHRHTEF0dHJpYnV0ZXMg
YXR0cmlidXRlcykKLSAgICAgICAgOiBHcmFwaGljc0NvbnRleHRHTE9wZW5HTChhdHRyaWJ1dGVz
KQorICAgIEdQVVByb2Nlc3NHcmFwaGljc0NvbnRleHRHTE9wZW5HTChXZWJDb3JlOjpHcmFwaGlj
c0NvbnRleHRHTEF0dHJpYnV0ZXMmJiBhdHRyaWJ1dGVzLCBSZWZQdHI8V2ViQ29yZTo6UHJvY2Vz
c0lkZW50aXR5PiYmIHJlc291cmNlT3duZXIpCisgICAgICAgIDogR3JhcGhpY3NDb250ZXh0R0xP
cGVuR0woV1RGTW92ZShhdHRyaWJ1dGVzKSwgV1RGTW92ZShyZXNvdXJjZU93bmVyKSkKICAgICB7
CiAgICAgfQogfTsKIAorfQorCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BV
UHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVHcmFwaGljc0NvbnRleHRHTENvY29hLmNwcCBiL1NvdXJj
ZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVHcmFwaGljc0NvbnRleHRHTENvY29h
LmNwcAppbmRleCBiNDM3YTViZWVjZDVkNmFjNTgzY2E1OTdhOTVlMjc3MTJmYWRkNjIzLi4wY2My
MmI0MzNhNDVlNzRkNTQwZTRkNTRlOWNhNjdiYjEwOTVlMWQzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xDb2NvYS5j
cHAKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZUdyYXBoaWNz
Q29udGV4dEdMQ29jb2EuY3BwCkBAIC00Nyw5ICs0Nyw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHBy
ZXBhcmVGb3JEaXNwbGF5KENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV1RGOjpNYWNoU2VuZFJpZ2h0
JiYpPiYmKSBmaW5hbDsKIHByaXZhdGU6CiAgICAgV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0R0xJ
T1N1cmZhY2VTd2FwQ2hhaW4gbV9zd2FwQ2hhaW4gV1RGX0dVQVJERURfQllfTE9DSyhtX3N0cmVh
bVRocmVhZCk7Ci0jaWYgSEFWRShJT1NVUkZBQ0VfU0VUX09XTkVSU0hJUF9JREVOVElUWSkKLSAg
ICB0YXNrX2lkX3Rva2VuX3QgbV93ZWJQcm9jZXNzSWRlbnRpdHlUb2tlbjsKLSNlbmRpZgorICAg
IFJlZlB0cjxQcm9jZXNzSWRlbnRpdHk+IG1fcmVzb3VyY2VPd25lcjsKIH07CiAKIH0KQEAgLTYz
LDkgKzYxLDcgQEAgUmVmPFJlbW90ZUdyYXBoaWNzQ29udGV4dEdMPiBSZW1vdGVHcmFwaGljc0Nv
bnRleHRHTDo6Y3JlYXRlKEdQVUNvbm5lY3Rpb25Ub1dlYlAKIAogUmVtb3RlR3JhcGhpY3NDb250
ZXh0R0xDb2NvYTo6UmVtb3RlR3JhcGhpY3NDb250ZXh0R0xDb2NvYShHUFVDb25uZWN0aW9uVG9X
ZWJQcm9jZXNzJiBncHVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLCBHcmFwaGljc0NvbnRleHRHTElk
ZW50aWZpZXIgZ3JhcGhpY3NDb250ZXh0R0xJZGVudGlmaWVyLCBSZW1vdGVSZW5kZXJpbmdCYWNr
ZW5kJiByZW5kZXJpbmdCYWNrZW5kLCBJUEM6OlN0cmVhbUNvbm5lY3Rpb25CdWZmZXImJiBzdHJl
YW0pCiAgICAgOiBSZW1vdGVHcmFwaGljc0NvbnRleHRHTChncHVDb25uZWN0aW9uVG9XZWJQcm9j
ZXNzLCBncmFwaGljc0NvbnRleHRHTElkZW50aWZpZXIsIHJlbmRlcmluZ0JhY2tlbmQsIFdURk1v
dmUoc3RyZWFtKSkKLSNpZiBIQVZFKElPU1VSRkFDRV9TRVRfT1dORVJTSElQX0lERU5USVRZKQot
ICAgICwgbV93ZWJQcm9jZXNzSWRlbnRpdHlUb2tlbihncHVDb25uZWN0aW9uVG9XZWJQcm9jZXNz
LndlYlByb2Nlc3NJZGVudGl0eVRva2VuKCkpCi0jZW5kaWYKKyAgICAsIG1fcmVzb3VyY2VPd25l
cihncHVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLndlYlByb2Nlc3NJZGVudGl0eSgpKQogewogCiB9
CkBAIC03Myw3ICs2OSw3IEBAIFJlbW90ZUdyYXBoaWNzQ29udGV4dEdMQ29jb2E6OlJlbW90ZUdy
YXBoaWNzQ29udGV4dEdMQ29jb2EoR1BVQ29ubmVjdGlvblRvV2ViUHJvCiB2b2lkIFJlbW90ZUdy
YXBoaWNzQ29udGV4dEdMQ29jb2E6OnBsYXRmb3JtV29ya1F1ZXVlSW5pdGlhbGl6ZShXZWJDb3Jl
OjpHcmFwaGljc0NvbnRleHRHTEF0dHJpYnV0ZXMmJiBhdHRyaWJ1dGVzKQogewogICAgIGFzc2Vy
dElzQ3VycmVudChtX3N0cmVhbVRocmVhZCk7Ci0gICAgbV9jb250ZXh0ID0gR1BVUHJvY2Vzc0dy
YXBoaWNzQ29udGV4dEdMT3BlbkdMOjpjcmVhdGUoV1RGTW92ZShhdHRyaWJ1dGVzKSk7CisgICAg
bV9jb250ZXh0ID0gR1BVUHJvY2Vzc0dyYXBoaWNzQ29udGV4dEdMT3BlbkdMOjpjcmVhdGUoV1RG
TW92ZShhdHRyaWJ1dGVzKSwgbV9yZXNvdXJjZU93bmVyKTsKIH0KIAogdm9pZCBSZW1vdGVHcmFw
aGljc0NvbnRleHRHTENvY29hOjpwcmVwYXJlRm9yRGlzcGxheShDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKFdURjo6TWFjaFNlbmRSaWdodCYmKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKQEAgLTg0LDEw
ICs4MCw2IEBAIHZvaWQgUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xDb2NvYTo6cHJlcGFyZUZvckRp
c3BsYXkoQ29tcGxldGlvbkhhbmRsZXI8dm9pZChXVEY6CiAgICAgTWFjaFNlbmRSaWdodCBzZW5k
UmlnaHQ7CiAgICAgaWYgKGRpc3BsYXlCdWZmZXIpIHsKICAgICAgICAgbV9jb250ZXh0LT5tYXJr
RGlzcGxheUJ1ZmZlckluVXNlKCk7Ci0jaWYgSEFWRShJT1NVUkZBQ0VfU0VUX09XTkVSU0hJUF9J
REVOVElUWSkKLSAgICAgICAgLy8gTWFyayB0aGUgSU9TdXJmYWNlIGFzIGJlaW5nIG93bmVkIGJ5
IHRoZSBXZWJQcm9jZXNzIGV2ZW4gdGhvdWdoIGl0IHdhcyBjb25zdHJ1Y3RlZCBieSB0aGUgR1BV
UHJvY2VzcyBzbyB0aGF0IEpldHNhbSBrbm93cyB3aGljaCBwcm9jZXNzIHRvIGtpbGwuCi0gICAg
ICAgIGRpc3BsYXlCdWZmZXItPnNldE93bmVyc2hpcElkZW50aXR5KG1fd2ViUHJvY2Vzc0lkZW50
aXR5VG9rZW4pOwotI2VuZGlmCiAgICAgICAgIHNlbmRSaWdodCA9IGRpc3BsYXlCdWZmZXItPmNy
ZWF0ZVNlbmRSaWdodCgpOwogICAgIH0KICAgICBjb21wbGV0aW9uSGFuZGxlcihXVEZNb3ZlKHNl
bmRSaWdodCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNz
L1JlbW90ZUltYWdlQnVmZmVyLmggYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3Mv
UmVtb3RlSW1hZ2VCdWZmZXIuaAppbmRleCBhM2Q0OTRmZThiZjZhMTk2NDdlZjE5MGM5ZGI0MDQy
YWVjZTY3MjIwLi4xOTkyNThiNjNkNjhlODhiY2E0YTkwMjM2ZmVkNDA0ODA0MWI2MjBjIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlSW1hZ2VCdWZm
ZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlSW1hZ2VC
dWZmZXIuaApAQCAtNjksMTMgKzY5LDExIEBAIHB1YmxpYzoKICAgICAgICAgICAgIGNvbnRleHQo
KS5yZXN0b3JlKCk7CiAgICAgfQogCi0jaWYgSEFWRShJT1NVUkZBQ0VfU0VUX09XTkVSU0hJUF9J
REVOVElUWSkKLSAgICB2b2lkIHNldFByb2Nlc3NPd25lcnNoaXAodGFza19pZF90b2tlbl90IG5l
d093bmVyKQorICAgIHZvaWQgc2V0T3duZXJzaGlwSWRlbnRpdHkoV2ViQ29yZTo6UHJvY2Vzc0lk
ZW50aXR5KiByZXNvdXJjZU93bmVyKQogICAgIHsKICAgICAgICAgaWYgKG1fYmFja2VuZCkKLSAg
ICAgICAgICAgIG1fYmFja2VuZC0+c2V0UHJvY2Vzc093bmVyc2hpcChuZXdPd25lcik7CisgICAg
ICAgICAgICBtX2JhY2tlbmQtPnNldE93bmVyc2hpcElkZW50aXR5KHJlc291cmNlT3duZXIpOwog
ICAgIH0KLSNlbmRpZgogCiBwcml2YXRlOgogICAgIGZyaWVuZCBjbGFzcyBSZW1vdGVSZW5kZXJp
bmdCYWNrZW5kOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNz
L1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQuY3BwIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dy
YXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQuY3BwCmluZGV4IGRiNGUxMzdiMmY2YWRmYjlj
ZDE0NzhhMWQ4NzJlNjY0ZDFhOTZkZWIuLjJjOGY0YmUyYjA3MGRlNjEzMDRhMDJmYmE2MDIwNmNj
N2FkYjc2ODMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9S
ZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mv
Z3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5jcHAKQEAgLTg0LDYgKzg0LDcgQEAgUmVt
b3RlUmVuZGVyaW5nQmFja2VuZDo6UmVtb3RlUmVuZGVyaW5nQmFja2VuZChHUFVDb25uZWN0aW9u
VG9XZWJQcm9jZXNzJiBncHVDb24KICAgICAsIG1fc3RyZWFtQ29ubmVjdGlvbihJUEM6OlN0cmVh
bVNlcnZlckNvbm5lY3Rpb246OmNyZWF0ZShncHVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNvbm5l
Y3Rpb24oKSwgV1RGTW92ZShzdHJlYW1CdWZmZXIpLCBtX3dvcmtRdWV1ZS5nZXQoKSkpCiAgICAg
LCBtX3JlbW90ZVJlc291cmNlQ2FjaGUoZ3B1Q29ubmVjdGlvblRvV2ViUHJvY2Vzcy53ZWJQcm9j
ZXNzSWRlbnRpZmllcigpKQogICAgICwgbV9ncHVDb25uZWN0aW9uVG9XZWJQcm9jZXNzKGdwdUNv
bm5lY3Rpb25Ub1dlYlByb2Nlc3MpCisgICAgLCBtX3Jlc291cmNlT3duZXIoZ3B1Q29ubmVjdGlv
blRvV2ViUHJvY2Vzcy53ZWJQcm9jZXNzSWRlbnRpdHkoKSkKICAgICAsIG1fcmVuZGVyaW5nQmFj
a2VuZElkZW50aWZpZXIoY3JlYXRpb25QYXJhbWV0ZXJzLmlkZW50aWZpZXIpCiB7CiAgICAgQVNT
RVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsKQEAgLTE3MywxMCArMTc0LDkgQEAgdm9pZCBSZW1vdGVS
ZW5kZXJpbmdCYWNrZW5kOjpjcmVhdGVJbWFnZUJ1ZmZlcldpdGhRdWFsaWZpZWRJZGVudGlmaWVy
KGNvbnN0IEZsb2EKIAogICAgIGlmIChyZW5kZXJpbmdNb2RlID09IFJlbmRlcmluZ01vZGU6OkFj
Y2VsZXJhdGVkKSB7CiAgICAgICAgIGlmIChhdXRvIGFjY2VsZXJhdGVkSW1hZ2VCdWZmZXIgPSBB
Y2NlbGVyYXRlZFJlbW90ZUltYWdlQnVmZmVyOjpjcmVhdGUobG9naWNhbFNpemUsIHJlc29sdXRp
b25TY2FsZSwgY29sb3JTcGFjZSwgcGl4ZWxGb3JtYXQsICp0aGlzLCBpbWFnZUJ1ZmZlclJlc291
cmNlSWRlbnRpZmllcikpIHsKLSNpZiBIQVZFKElPU1VSRkFDRV9TRVRfT1dORVJTSElQX0lERU5U
SVRZKQogICAgICAgICAgICAgLy8gTWFyayB0aGUgSU9TdXJmYWNlIGFzIGJlaW5nIG93bmVkIGJ5
IHRoZSBXZWJQcm9jZXNzIGV2ZW4gdGhvdWdoIGl0IHdhcyBjb25zdHJ1Y3RlZCBieSB0aGUgR1BV
UHJvY2VzcyBzbyB0aGF0IEpldHNhbSBrbm93cyB3aGljaCBwcm9jZXNzIHRvIGtpbGwuCi0gICAg
ICAgICAgICBhY2NlbGVyYXRlZEltYWdlQnVmZmVyLT5zZXRQcm9jZXNzT3duZXJzaGlwKG1fZ3B1
Q29ubmVjdGlvblRvV2ViUHJvY2Vzcy0+d2ViUHJvY2Vzc0lkZW50aXR5VG9rZW4oKSk7Ci0jZW5k
aWYKKyAgICAgICAgICAgIGlmIChtX3Jlc291cmNlT3duZXIpCisgICAgICAgICAgICAgICAgYWNj
ZWxlcmF0ZWRJbWFnZUJ1ZmZlci0+c2V0T3duZXJzaGlwSWRlbnRpdHkobV9yZXNvdXJjZU93bmVy
LmdldCgpKTsKICAgICAgICAgICAgIGltYWdlQnVmZmVyID0gV1RGTW92ZShhY2NlbGVyYXRlZElt
YWdlQnVmZmVyKTsKICAgICAgICAgfQogICAgIH0KQEAgLTI2OCw2ICsyNjgsNyBAQCB2b2lkIFJl
bW90ZVJlbmRlcmluZ0JhY2tlbmQ6OmdldERhdGFVUkxGb3JJbWFnZUJ1ZmZlcldpdGhRdWFsaWZp
ZWRJZGVudGlmaWVyKGNvbgogICAgIFN0cmluZyB1cmxTdHJpbmc7CiAgICAgaWYgKGF1dG8gaW1h
Z2VCdWZmZXIgPSBtX3JlbW90ZVJlc291cmNlQ2FjaGUuY2FjaGVkSW1hZ2VCdWZmZXIocmVuZGVy
aW5nUmVzb3VyY2VJZGVudGlmaWVyKSkKICAgICAgICAgdXJsU3RyaW5nID0gaW1hZ2VCdWZmZXIt
PnRvRGF0YVVSTChtaW1lVHlwZSwgcXVhbGl0eSwgcHJlc2VydmVSZXNvbHV0aW9uKTsKKyAgICBX
VEZMb2dBbHdheXMoIkRBVEFVUkw6JXMiLCB1cmxTdHJpbmcudXRmOCgpLmRhdGEoKSk7CiAgICAg
Y29tcGxldGlvbkhhbmRsZXIoV1RGTW92ZSh1cmxTdHJpbmcpKTsKIH0KIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQu
aCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNr
ZW5kLmgKaW5kZXggMTlmYjE3ZjAyNWZiMmM2NWYxZGRlMjcyYzMwYmIwZGU5NDVjYWY5Zi4uOWVj
OTYyYjMwZmY2NjdhOTE3ZmY4NmZkYjJmNTNmYTA4MmFiNzYzMyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2Vu
ZC5oCkBAIC01NCw2ICs1NCw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIERlc3RpbmF0
aW9uQ29sb3JTcGFjZTsKIGNsYXNzIEZsb2F0U2l6ZTsKIGNsYXNzIE5hdGl2ZUltYWdlOworY2xh
c3MgUHJvY2Vzc0lkZW50aXR5OwogCiBlbnVtIGNsYXNzIFJlbmRlcmluZ01vZGUgOiBib29sOwog
CkBAIC0xMjksNiArMTMwLDcgQEAgcHJpdmF0ZToKICAgICBSZWY8SVBDOjpTdHJlYW1TZXJ2ZXJD
b25uZWN0aW9uPiBtX3N0cmVhbUNvbm5lY3Rpb247CiAgICAgUmVtb3RlUmVzb3VyY2VDYWNoZSBt
X3JlbW90ZVJlc291cmNlQ2FjaGU7CiAgICAgUmVmPEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M+
IG1fZ3B1Q29ubmVjdGlvblRvV2ViUHJvY2VzczsKKyAgICBSZWZQdHI8V2ViQ29yZTo6UHJvY2Vz
c0lkZW50aXR5PiBtX3Jlc291cmNlT3duZXI7CiAgICAgUmVuZGVyaW5nQmFja2VuZElkZW50aWZp
ZXIgbV9yZW5kZXJpbmdCYWNrZW5kSWRlbnRpZmllcjsKICAgICBJUEM6OlNlbWFwaG9yZSBtX2dl
dFBpeGVsQnVmZmVyU2VtYXBob3JlOwogICAgIFJlZlB0cjxTaGFyZWRNZW1vcnk+IG1fZ2V0UGl4
ZWxCdWZmZXJTaGFyZWRNZW1vcnk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nl
c3Mvd2VicnRjL0xpYldlYlJUQ0NvZGVjc1Byb3h5Lm1tIGIvU291cmNlL1dlYktpdC9HUFVQcm9j
ZXNzL3dlYnJ0Yy9MaWJXZWJSVENDb2RlY3NQcm94eS5tbQppbmRleCAxMzNlMjZlNDc0ZTFkMzE5
MTYzZTU1NzE5OTJkMGMwYzcxOWRkZTE0Li43MDdhNjVlMmUyMjRjOWFkN2NmMTc0NjVmNGRjMGE0
MjEzNzAyYTU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mvd2VicnRjL0xp
YldlYlJUQ0NvZGVjc1Byb3h5Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy93ZWJy
dGMvTGliV2ViUlRDQ29kZWNzUHJveHkubW0KQEAgLTc3LDE0ICs3NywxMSBAQCB2b2lkIExpYldl
YlJUQ0NvZGVjc1Byb3h5OjpjbG9zZSgpCiBzdGF0aWMgRnVuY3Rpb248dm9pZChDVlBpeGVsQnVm
ZmVyUmVmIHBpeGVsQnVmZmVyLCB1aW50MzJfdCB0aW1lU3RhbXBOcywgdWludDMyX3QgdGltZVN0
YW1wKT4gY3JlYXRlRGVjb2RlckNhbGxiYWNrKFJUQ0RlY29kZXJJZGVudGlmaWVyIGlkZW50aWZp
ZXIsIEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MmIGdwdUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3Mp
CiB7CiAgICAgcmV0dXJuIFtjb25uZWN0aW9uID0gUmVmIHsgZ3B1Q29ubmVjdGlvblRvV2ViUHJv
Y2Vzcy5jb25uZWN0aW9uKCkgfSwKLSNpZiBIQVZFKElPU1VSRkFDRV9TRVRfT1dORVJTSElQX0lE
RU5USVRZKQotICAgICAgICB0b2tlbiA9IGdwdUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3Mud2ViUHJv
Y2Vzc0lkZW50aXR5VG9rZW4oKSwKLSNlbmRpZgorICAgICAgICByZXNvdXJjZU93bmVyID0gZ3B1
Q29ubmVjdGlvblRvV2ViUHJvY2Vzcy53ZWJQcm9jZXNzSWRlbnRpdHkoKSwKICAgICAgICAgaWRl
bnRpZmllcl0oQ1ZQaXhlbEJ1ZmZlclJlZiBwaXhlbEJ1ZmZlciwgdWludDMyX3QgdGltZVN0YW1w
TnMsIHVpbnQzMl90IHRpbWVTdGFtcCkgewogICAgICAgICBpZiAoYXV0byBzYW1wbGUgPSBXZWJD
b3JlOjpSZW1vdGVWaWRlb1NhbXBsZTo6Y3JlYXRlKHBpeGVsQnVmZmVyLCBNZWRpYVRpbWUodGlt
ZVN0YW1wTnMsIDEpKSkgewotI2lmIEhBVkUoSU9TVVJGQUNFX1NFVF9PV05FUlNISVBfSURFTlRJ
VFkpCi0gICAgICAgICAgICBzYW1wbGUtPnNldE93bmVyc2hpcElkZW50aXR5KHRva2VuKTsKLSNl
bmRpZgorICAgICAgICAgICAgaWYgKHJlc291cmNlT3duZXIpCisgICAgICAgICAgICAgICAgc2Ft
cGxlLT5zZXRPd25lcnNoaXBJZGVudGl0eShyZXNvdXJjZU93bmVyLmdldCgpKTsKICAgICAgICAg
ICAgIGNvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6OkxpYldlYlJUQ0NvZGVjczo6Q29tcGxldGVk
RGVjb2RpbmcgeyBpZGVudGlmaWVyLCB0aW1lU3RhbXAsICpzYW1wbGUgfSwgMCk7CiAgICAgICAg
IH0KICAgICB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvR1BVUHJvY2Vzc0Nv
bm5lY3Rpb25QYXJhbWV0ZXJzLmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9HUFVQcm9jZXNzQ29u
bmVjdGlvblBhcmFtZXRlcnMuaAppbmRleCA0MTU5ZGM2ZWQ0N2Q2ZGMxNzNlOTFiNjgzMmExYmIx
YmE1NWY1ZTE0Li5kZGZhMjlmNTYxYWFkZDgwODliZGE2NTNiNDhhZjIwOTc4NDMwMGQyIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9HUFVQcm9jZXNzQ29ubmVjdGlvblBhcmFtZXRl
cnMuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9HUFVQcm9jZXNzQ29ubmVjdGlvblBhcmFt
ZXRlcnMuaApAQCAtMjcsMTQgKzI3LDEyIEBACiAKICNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCiAK
LSNpbmNsdWRlIDx3dGYvTWFjaFNlbmRSaWdodC5oPgorI2luY2x1ZGUgPFdlYkNvcmUvUHJvY2Vz
c0lkZW50aXR5Lmg+CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCiBzdHJ1Y3QgR1BVUHJvY2Vzc0Nv
bm5lY3Rpb25QYXJhbWV0ZXJzIHsKLSNpZiBIQVZFKFRBU0tfSURFTlRJVFlfVE9LRU4pCi0gICAg
TWFjaFNlbmRSaWdodCB3ZWJQcm9jZXNzSWRlbnRpdHlUb2tlbjsKLSNlbmRpZgorICAgIFdlYkNv
cmU6OlByb2Nlc3NJZGVudGl0eTo6SGFuZGxlIHdlYlByb2Nlc3NJZGVudGl0eUhhbmRsZTsKICAg
ICBWZWN0b3I8U3RyaW5nPiBvdmVycmlkZUxhbmd1YWdlczsKICNpZiBFTkFCTEUoSVBDX1RFU1RJ
TkdfQVBJKQogICAgIGJvb2wgaWdub3JlSW52YWxpZE1lc3NhZ2VGb3JUZXN0aW5nIHsgZmFsc2Ug
fTsKQEAgLTQ1LDkgKzQzLDcgQEAgc3RydWN0IEdQVVByb2Nlc3NDb25uZWN0aW9uUGFyYW1ldGVy
cyB7CiAKICAgICB2b2lkIGVuY29kZShJUEM6OkVuY29kZXImIGVuY29kZXIpIGNvbnN0CiAgICAg
ewotI2lmIEhBVkUoVEFTS19JREVOVElUWV9UT0tFTikKLSAgICAgICAgZW5jb2RlciA8PCB3ZWJQ
cm9jZXNzSWRlbnRpdHlUb2tlbjsKLSNlbmRpZgorICAgICAgICBlbmNvZGVyIDw8IHdlYlByb2Nl
c3NJZGVudGl0eUhhbmRsZTsKICAgICAgICAgZW5jb2RlciA8PCBvdmVycmlkZUxhbmd1YWdlczsK
ICNpZiBFTkFCTEUoSVBDX1RFU1RJTkdfQVBJKQogICAgICAgICBlbmNvZGVyIDw8IGlnbm9yZUlu
dmFsaWRNZXNzYWdlRm9yVGVzdGluZzsKQEAgLTU5LDEyICs1NSwxMCBAQCBzdHJ1Y3QgR1BVUHJv
Y2Vzc0Nvbm5lY3Rpb25QYXJhbWV0ZXJzIHsKIAogICAgIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPEdQ
VVByb2Nlc3NDb25uZWN0aW9uUGFyYW1ldGVycz4gZGVjb2RlKElQQzo6RGVjb2RlciYgZGVjb2Rl
cikKICAgICB7Ci0jaWYgSEFWRShUQVNLX0lERU5USVRZX1RPS0VOKQotICAgICAgICBzdGQ6Om9w
dGlvbmFsPE1hY2hTZW5kUmlnaHQ+IHdlYlByb2Nlc3NJZGVudGl0eVRva2VuOwotICAgICAgICBk
ZWNvZGVyID4+IHdlYlByb2Nlc3NJZGVudGl0eVRva2VuOwotICAgICAgICBpZiAoIXdlYlByb2Nl
c3NJZGVudGl0eVRva2VuKQorICAgICAgICBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OlByb2Nlc3NJ
ZGVudGl0eTo6SGFuZGxlPiB3ZWJQcm9jZXNzSWRlbnRpdHlIYW5kbGU7CisgICAgICAgIGRlY29k
ZXIgPj4gd2ViUHJvY2Vzc0lkZW50aXR5SGFuZGxlOworICAgICAgICBpZiAoIXdlYlByb2Nlc3NJ
ZGVudGl0eUhhbmRsZSkKICAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7Ci0jZW5kaWYK
IAogICAgICAgICBzdGQ6Om9wdGlvbmFsPFZlY3RvcjxTdHJpbmc+PiBvdmVycmlkZUxhbmd1YWdl
czsKICAgICAgICAgZGVjb2RlciA+PiBvdmVycmlkZUxhbmd1YWdlczsKQEAgLTg1LDkgKzc5LDcg
QEAgc3RydWN0IEdQVVByb2Nlc3NDb25uZWN0aW9uUGFyYW1ldGVycyB7CiAjZW5kaWYKIAogICAg
ICAgICByZXR1cm4gR1BVUHJvY2Vzc0Nvbm5lY3Rpb25QYXJhbWV0ZXJzIHsKLSNpZiBIQVZFKFRB
U0tfSURFTlRJVFlfVE9LRU4pCi0gICAgICAgICAgICBXVEZNb3ZlKCp3ZWJQcm9jZXNzSWRlbnRp
dHlUb2tlbiksCi0jZW5kaWYKKyAgICAgICAgICAgIFdURk1vdmUoKndlYlByb2Nlc3NJZGVudGl0
eUhhbmRsZSksCiAgICAgICAgICAgICBXVEZNb3ZlKCpvdmVycmlkZUxhbmd1YWdlcyksCiAjaWYg
RU5BQkxFKElQQ19URVNUSU5HX0FQSSkKICAgICAgICAgICAgICppZ25vcmVJbnZhbGlkTWVzc2Fn
ZUZvclRlc3RpbmcsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9V
c2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkuY3BwCmluZGV4IDk5NjI2ODk5MDdj
NjdiNWM3YTU2NGQ4MTUzMjUxY2Y1NTM0N2U1YmQuLjhiMWYzYTI2NjU2YWIwNWYwMTcwZGNlNmJl
MmMyZTNlZmRlNTM5NTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29h
L1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkuY3BwCkBAIC01Nyw5ICs1
NywxMCBAQCBjbGFzcyBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OjpTb3VyY2VQcm94eQog
ICAgICwgcHJpdmF0ZSBSZWFsdGltZU1lZGlhU291cmNlOjpWaWRlb1NhbXBsZU9ic2VydmVyIHsK
ICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKLSAgICBTb3VyY2VQcm94eShS
ZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciBpZCwgUmVmPElQQzo6Q29ubmVjdGlvbj4mJiBj
b25uZWN0aW9uLCBSZWY8UmVhbHRpbWVNZWRpYVNvdXJjZT4mJiBzb3VyY2UpCisgICAgU291cmNl
UHJveHkoUmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgaWQsIFJlZjxJUEM6OkNvbm5lY3Rp
b24+JiYgY29ubmVjdGlvbiwgUmVmUHRyPFByb2Nlc3NJZGVudGl0eT4mJiByZXNvdXJjZU93bmVy
LCBSZWY8UmVhbHRpbWVNZWRpYVNvdXJjZT4mJiBzb3VyY2UpCiAgICAgICAgIDogbV9pZChpZCkK
ICAgICAgICAgLCBtX2Nvbm5lY3Rpb24oV1RGTW92ZShjb25uZWN0aW9uKSkKKyAgICAgICAgLCBt
X3Jlc291cmNlT3duZXIoV1RGTW92ZShyZXNvdXJjZU93bmVyKSkKICAgICAgICAgLCBtX3NvdXJj
ZShXVEZNb3ZlKHNvdXJjZSkpCiAgICAgewogICAgICAgICBtX3NvdXJjZS0+YWRkT2JzZXJ2ZXIo
KnRoaXMpOwpAQCAtMTI1LDkgKzEyNiw2IEBAIHB1YmxpYzoKICAgICB9CiAKICAgICB2b2lkIHNl
dFNob3VsZEFwcGx5Um90YXRpb24oYm9vbCBzaG91bGRBcHBseVJvdGF0aW9uKSB7IG1fc2hvdWxk
QXBwbHlSb3RhdGlvbiA9IHRydWU7IH0KLSNpZiBIQVZFKElPU1VSRkFDRV9TRVRfT1dORVJTSElQ
X0lERU5USVRZKQotICAgIHZvaWQgc2V0V2ViUHJvY2Vzc0lkZW50aXR5VG9rZW4oc3RkOjpvcHRp
b25hbDx0YXNrX2lkX3Rva2VuX3Q+IHRva2VuKSB7IG1fd2ViUHJvY2Vzc0lkZW50aXR5VG9rZW4g
PSB0b2tlbjt9Ci0jZW5kaWYKIAogcHJpdmF0ZToKICAgICB2b2lkIHNvdXJjZVN0b3BwZWQoKSBm
aW5hbCB7CkBAIC0xODgsMTAgKzE4Niw4IEBAIHByaXZhdGU6CiAgICAgICAgIH0gZWxzZQogICAg
ICAgICAgICAgcmVtb3RlU2FtcGxlID0gUmVtb3RlVmlkZW9TYW1wbGU6OmNyZWF0ZShzYW1wbGUp
OwogICAgICAgICBpZiAocmVtb3RlU2FtcGxlKSB7Ci0jaWYgSEFWRShJT1NVUkZBQ0VfU0VUX09X
TkVSU0hJUF9JREVOVElUWSkKLSAgICAgICAgICAgIGlmIChtX3dlYlByb2Nlc3NJZGVudGl0eVRv
a2VuKQotICAgICAgICAgICAgICAgIHJlbW90ZVNhbXBsZS0+c2V0T3duZXJzaGlwSWRlbnRpdHko
Km1fd2ViUHJvY2Vzc0lkZW50aXR5VG9rZW4pOwotI2VuZGlmCisgICAgICAgICAgICBpZiAobV9y
ZXNvdXJjZU93bmVyKQorICAgICAgICAgICAgICAgIHJlbW90ZVNhbXBsZS0+c2V0T3duZXJzaGlw
SWRlbnRpdHkobV9yZXNvdXJjZU93bmVyLmdldCgpKTsKICAgICAgICAgICAgIG1fY29ubmVjdGlv
bi0+c2VuZChNZXNzYWdlczo6UmVtb3RlQ2FwdHVyZVNhbXBsZU1hbmFnZXI6OlZpZGVvU2FtcGxl
QXZhaWxhYmxlKG1faWQsIFdURk1vdmUoKnJlbW90ZVNhbXBsZSkpLCAwKTsKICAgICAgICAgfQog
ICAgIH0KQEAgLTI0NCw2ICsyNDAsNyBAQCBwcml2YXRlOgogICAgIFJlYWx0aW1lTWVkaWFTb3Vy
Y2VJZGVudGlmaWVyIG1faWQ7CiAgICAgV2Vha1B0cjxQbGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFn
ZXI+IG1fc2Vzc2lvbk1hbmFnZXI7CiAgICAgUmVmPElQQzo6Q29ubmVjdGlvbj4gbV9jb25uZWN0
aW9uOworICAgIFJlZlB0cjxQcm9jZXNzSWRlbnRpdHk+IG1fcmVzb3VyY2VPd25lcjsKICAgICBS
ZWY8UmVhbHRpbWVNZWRpYVNvdXJjZT4gbV9zb3VyY2U7CiAgICAgc3RkOjp1bmlxdWVfcHRyPENB
UmluZ0J1ZmZlcj4gbV9yaW5nQnVmZmVyOwogICAgIENBQXVkaW9TdHJlYW1EZXNjcmlwdGlvbiBt
X2Rlc2NyaXB0aW9uIHsgfTsKQEAgLTI1Nyw5ICsyNTQsNiBAQCBwcml2YXRlOgogICAgIHNpemVf
dCBtX2ZyYW1lQ2h1bmtTaXplIHsgMCB9OwogICAgIE1lZGlhVGltZSBtX3N0YXJ0VGltZTsKICAg
ICBib29sIG1fc2hvdWxkUmVzZXQgeyBmYWxzZSB9OwotI2lmIEhBVkUoVEFTS19JREVOVElUWV9U
T0tFTikKLSAgICBzdGQ6Om9wdGlvbmFsPHRhc2tfaWRfdG9rZW5fdD4gbV93ZWJQcm9jZXNzSWRl
bnRpdHlUb2tlbjsKLSNlbmRpZgogfTsKIAogVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6
VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eShVbmlxdWVSZWY8Q29ubmVjdGlvblByb3h5PiYm
IGNvbm5lY3Rpb25Qcm94eSkKQEAgLTMyMywxMiArMzE3LDcgQEAgdm9pZCBVc2VyTWVkaWFDYXB0
dXJlTWFuYWdlclByb3h5OjpjcmVhdGVNZWRpYVNvdXJjZUZvckNhcHR1cmVEZXZpY2VXaXRoQ29u
c3RyYWkKICAgICAgICAgfQogCiAgICAgICAgIEFTU0VSVCghbV9wcm94aWVzLmNvbnRhaW5zKGlk
KSk7Ci0gICAgICAgIGF1dG8gcHJveHkgPSBtYWtlVW5pcXVlPFNvdXJjZVByb3h5PihpZCwgbV9j
b25uZWN0aW9uUHJveHktPmNvbm5lY3Rpb24oKSwgV1RGTW92ZShzb3VyY2UpKTsKLSNpZiBIQVZF
KElPU1VSRkFDRV9TRVRfT1dORVJTSElQX0lERU5USVRZKQotICAgICAgICBpZiAoZGV2aWNlLnR5
cGUoKSAhPSBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpNaWNyb3Bob25lKQot
ICAgICAgICAgICAgcHJveHktPnNldFdlYlByb2Nlc3NJZGVudGl0eVRva2VuKG1fY29ubmVjdGlv
blByb3h5LT53ZWJQcm9jZXNzSWRlbnRpdHlUb2tlbigpKTsKLSNlbmRpZgotCisgICAgICAgIGF1
dG8gcHJveHkgPSBtYWtlVW5pcXVlPFNvdXJjZVByb3h5PihpZCwgbV9jb25uZWN0aW9uUHJveHkt
PmNvbm5lY3Rpb24oKSwgbV9jb25uZWN0aW9uUHJveHktPnJlc291cmNlT3duZXIoKSwgV1RGTW92
ZShzb3VyY2UpKTsKICAgICAgICAgbV9wcm94aWVzLmFkZChpZCwgV1RGTW92ZShwcm94eSkpOwog
ICAgIH0gZWxzZQogICAgICAgICBpbnZhbGlkQ29uc3RyYWludHMgPSBXVEZNb3ZlKHNvdXJjZU9y
RXJyb3IuZXJyb3JNZXNzYWdlKTsKQEAgLTM5Myw3ICszODIsNyBAQCB2b2lkIFVzZXJNZWRpYUNh
cHR1cmVNYW5hZ2VyUHJveHk6OmNsb25lKFJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIGNs
b25lZElELAogICAgIE1FU1NBR0VfQ0hFQ0sobV9wcm94aWVzLmNvbnRhaW5zKGNsb25lZElEKSk7
CiAgICAgTUVTU0FHRV9DSEVDSyghbV9wcm94aWVzLmNvbnRhaW5zKG5ld1NvdXJjZUlEKSk7CiAg
ICAgaWYgKGF1dG8qIHByb3h5ID0gbV9wcm94aWVzLmdldChjbG9uZWRJRCkpCi0gICAgICAgIG1f
cHJveGllcy5hZGQobmV3U291cmNlSUQsIG1ha2VVbmlxdWU8U291cmNlUHJveHk+KG5ld1NvdXJj
ZUlELCBtX2Nvbm5lY3Rpb25Qcm94eS0+Y29ubmVjdGlvbigpLCBwcm94eS0+c291cmNlKCkuY2xv
bmUoKSkpOworICAgICAgICBtX3Byb3hpZXMuYWRkKG5ld1NvdXJjZUlELCBtYWtlVW5pcXVlPFNv
dXJjZVByb3h5PihuZXdTb3VyY2VJRCwgbV9jb25uZWN0aW9uUHJveHktPmNvbm5lY3Rpb24oKSwg
bV9jb25uZWN0aW9uUHJveHktPnJlc291cmNlT3duZXIoKSwgcHJveHktPnNvdXJjZSgpLmNsb25l
KCkpKTsKIH0KIAogdm9pZCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OjpyZXF1ZXN0VG9F
bmQoUmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgc291cmNlSUQpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5
LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdl
clByb3h5LmgKaW5kZXggN2FmZjQyNGQ1NDBkM2IxZmRlY2RhYmM4NjU1YzNjNTZjNTBhMTBlNS4u
YzU4NmNlM2YzZDEyZTc4ZTIzNzMyYWUxMGNjODliMjM4MDRiMmJjZCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5h
Z2VyUHJveHkuaApAQCAtMzIsNiArMzIsNyBAQAogI2luY2x1ZGUgIlVzZXJNZWRpYUNhcHR1cmVN
YW5hZ2VyLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9DYXB0dXJlRGV2aWNlLmg+CiAjaW5jbHVkZSA8
V2ViQ29yZS9PcmllbnRhdGlvbk5vdGlmaWVyLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9Qcm9jZXNz
SWRlbnRpdHkuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1JlYWx0aW1lTWVkaWFTb3VyY2UuaD4KICNp
bmNsdWRlIDxXZWJDb3JlL1JlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyLmg+CiAjaW5jbHVk
ZSA8cGFsL3NwaS9jb2NvYS9UQ0NTUEkuaD4KQEAgLTU5LDkgKzYwLDcgQEAgcHVibGljOgogICAg
ICAgICB2aXJ0dWFsIGJvb2wgd2lsbFN0YXJ0Q2FwdHVyZShXZWJDb3JlOjpDYXB0dXJlRGV2aWNl
OjpEZXZpY2VUeXBlKSBjb25zdCA9IDA7CiAgICAgICAgIHZpcnR1YWwgTG9nZ2VyJiBsb2dnZXIo
KSA9IDA7CiAgICAgICAgIHZpcnR1YWwgYm9vbCBzZXRDYXB0dXJlQXR0cmlidXRpb25TdHJpbmco
KSB7IHJldHVybiB0cnVlOyB9Ci0jaWYgSEFWRShJT1NVUkZBQ0VfU0VUX09XTkVSU0hJUF9JREVO
VElUWSkKLSAgICAgICAgdmlydHVhbCBzdGQ6Om9wdGlvbmFsPHRhc2tfaWRfdG9rZW5fdD4gd2Vi
UHJvY2Vzc0lkZW50aXR5VG9rZW4oKSBjb25zdCB7IHJldHVybiB7IH07IH07Ci0jZW5kaWYKKyAg
ICAgICAgdmlydHVhbCBSZWZQdHI8V2ViQ29yZTo6UHJvY2Vzc0lkZW50aXR5PiByZXNvdXJjZU93
bmVyKCkgY29uc3QgeyByZXR1cm4gbnVsbHB0cjsgfTsKICNpZiBFTkFCTEUoQVBQX1BSSVZBQ1lf
UkVQT1JUKQogICAgICAgICB2aXJ0dWFsIHZvaWQgc2V0VENDSWRlbnRpdHkoKSB7IH0KICNlbmRp
ZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9jb2Nv
YS9JbWFnZUJ1ZmZlclNoYXJlYWJsZU1hcHBlZElPU3VyZmFjZUJhY2tlbmQuY3BwIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9jb2NvYS9JbWFnZUJ1ZmZlclNoYXJlYWJs
ZU1hcHBlZElPU3VyZmFjZUJhY2tlbmQuY3BwCmluZGV4IGFmZDJjN2MwNWNmYWZkMTM5OTM0NGY1
YzZhNzY0ZTQ4ODBkMjhiZGEuLjExM2VhZjkyZjgwZjUzODY2MGRmYmI0MDYwYzNhN2M4ODhmNjky
NWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvY29j
b2EvSW1hZ2VCdWZmZXJTaGFyZWFibGVNYXBwZWRJT1N1cmZhY2VCYWNrZW5kLmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL2NvY29hL0ltYWdlQnVmZmVyU2hh
cmVhYmxlTWFwcGVkSU9TdXJmYWNlQmFja2VuZC5jcHAKQEAgLTc3LDEzICs3NywxMSBAQCBJbWFn
ZUJ1ZmZlckJhY2tlbmRIYW5kbGUgSW1hZ2VCdWZmZXJTaGFyZWFibGVNYXBwZWRJT1N1cmZhY2VC
YWNrZW5kOjpjcmVhdGVJbWFnZQogICAgIHJldHVybiBJbWFnZUJ1ZmZlckJhY2tlbmRIYW5kbGUo
bV9zdXJmYWNlLT5jcmVhdGVTZW5kUmlnaHQoKSk7CiB9CiAKLSNpZiBIQVZFKElPU1VSRkFDRV9T
RVRfT1dORVJTSElQX0lERU5USVRZKQotdm9pZCBJbWFnZUJ1ZmZlclNoYXJlYWJsZU1hcHBlZElP
U3VyZmFjZUJhY2tlbmQ6OnNldFByb2Nlc3NPd25lcnNoaXAodGFza19pZF90b2tlbl90IHByb2Nl
c3NJZGVudGl0eVRva2VuKQordm9pZCBJbWFnZUJ1ZmZlclNoYXJlYWJsZU1hcHBlZElPU3VyZmFj
ZUJhY2tlbmQ6OnNldE93bmVyc2hpcElkZW50aXR5KFdlYkNvcmU6OlByb2Nlc3NJZGVudGl0eSog
cmVzb3VyY2VPd25lcikKIHsKICAgICBBU1NFUlQoc3VyZmFjZSgpKTsKLSAgICBzdXJmYWNlKCkt
PnNldE93bmVyc2hpcElkZW50aXR5KHByb2Nlc3NJZGVudGl0eVRva2VuKTsKKyAgICBzdXJmYWNl
KCktPnNldE93bmVyc2hpcElkZW50aXR5KHJlc291cmNlT3duZXIpOwogfQotI2VuZGlmCiAKIH0g
Ly8gbmFtZXNwYWNlIFdlYktpdAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvR1BVL2dyYXBoaWNzL2NvY29hL0ltYWdlQnVmZmVyU2hhcmVhYmxlTWFwcGVkSU9TdXJmYWNl
QmFja2VuZC5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9jb2NvYS9J
bWFnZUJ1ZmZlclNoYXJlYWJsZU1hcHBlZElPU3VyZmFjZUJhY2tlbmQuaAppbmRleCBlMTRhNTQw
ZWNkZGQ0NzExOTA4YTdjMTcxYzNhMjVlYmZkODA4ZGJlLi5iOTc2MzIyMDMyZTZmZDFhMzBiOWEy
NDRmZjgzODk2NjA5NTY0N2MxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
R1BVL2dyYXBoaWNzL2NvY29hL0ltYWdlQnVmZmVyU2hhcmVhYmxlTWFwcGVkSU9TdXJmYWNlQmFj
a2VuZC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvY29jb2Ev
SW1hZ2VCdWZmZXJTaGFyZWFibGVNYXBwZWRJT1N1cmZhY2VCYWNrZW5kLmgKQEAgLTMxLDYgKzMx
LDEwIEBACiAjaW5jbHVkZSA8V2ViQ29yZS9JbWFnZUJ1ZmZlcklPU3VyZmFjZUJhY2tlbmQuaD4K
ICNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jLmg+CiAKK25hbWVzcGFjZSBXZWJDb3JlIHsKK2NsYXNz
IFByb2Nlc3NJZGVudGl0eTsKK30KKwogbmFtZXNwYWNlIFdlYktpdCB7CiAKIGNsYXNzIFNoYXJl
YWJsZUJpdG1hcDsKQEAgLTQ2LDkgKzUwLDcgQEAgcHVibGljOgogCiAgICAgSW1hZ2VCdWZmZXJC
YWNrZW5kSGFuZGxlIGNyZWF0ZUltYWdlQnVmZmVyQmFja2VuZEhhbmRsZSgpIGNvbnN0OwogCi0j
aWYgSEFWRShJT1NVUkZBQ0VfU0VUX09XTkVSU0hJUF9JREVOVElUWSkKLSAgICB2b2lkIHNldFBy
b2Nlc3NPd25lcnNoaXAodGFza19pZF90b2tlbl90KTsKLSNlbmRpZgorICAgIHZvaWQgc2V0T3du
ZXJzaGlwSWRlbnRpdHkoV2ViQ29yZTo6UHJvY2Vzc0lkZW50aXR5KiByZXNvdXJjZU93bmVyKTsK
IH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL2NvY29hL1dlYlByb2Nlc3NDb2NvYS5tbSBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9jb2NvYS9XZWJQcm9jZXNzQ29jb2EubW0KaW5kZXggMDM0ZTJiNDhhYTAxNWFmN2NlZDc2
NmRlOWFjZTgyOGRlZDEyMjY0OS4uNjQyNWYzOTk2NTdkMDAzYjBmYWUyN2Q2YTVhMzI0ZDFlNGNh
MWZmOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1dlYlByb2Nl
c3NDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvV2ViUHJvY2Vz
c0NvY29hLm1tCkBAIC0xMjQyLDE0ICsxMjQyLDcgQEAgdm9pZCBXZWJQcm9jZXNzOjp3YWl0Rm9y
UGVuZGluZ1Bhc3RlYm9hcmRXcml0ZXNUb0ZpbmlzaChjb25zdCBTdHJpbmcmIHBhc3RlYm9hcmQK
ICNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCiB2b2lkIFdlYlByb2Nlc3M6OnBsYXRmb3JtSW5pdGlh
bGl6ZUdQVVByb2Nlc3NDb25uZWN0aW9uUGFyYW1ldGVycyhHUFVQcm9jZXNzQ29ubmVjdGlvblBh
cmFtZXRlcnMmIHBhcmFtZXRlcnMpCiB7Ci0jaWYgSEFWRShUQVNLX0lERU5USVRZX1RPS0VOKQot
ICAgIHRhc2tfaWRfdG9rZW5fdCBpZGVudGl0eVRva2VuOwotICAgIGtlcm5fcmV0dXJuX3Qga3Ig
PSB0YXNrX2NyZWF0ZV9pZGVudGl0eV90b2tlbihtYWNoX3Rhc2tfc2VsZigpLCAmaWRlbnRpdHlU
b2tlbik7Ci0gICAgaWYgKGtyID09IEtFUk5fU1VDQ0VTUykKLSAgICAgICAgcGFyYW1ldGVycy53
ZWJQcm9jZXNzSWRlbnRpdHlUb2tlbiA9IE1hY2hTZW5kUmlnaHQ6OmFkb3B0KGlkZW50aXR5VG9r
ZW4pOwotICAgIGVsc2UKLSAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoUHJvY2VzcywgIkNhbGwg
dG8gdGFza19jcmVhdGVfaWRlbnRpdHlfdG9rZW4oKSBmYWlsZWQ6ICV7cHJpdmF0ZX1zICgleCki
LCBtYWNoX2Vycm9yX3N0cmluZyhrciksIGtyKTsKLSNlbmRpZgorICAgIHBhcmFtZXRlcnMud2Vi
UHJvY2Vzc0lkZW50aXR5SGFuZGxlID0gUHJvY2Vzc0lkZW50aXR5OjpoYW5kbGVGb3JDdXJyZW50
UHJvY2VzcygpOwogCiAgICAgcGFyYW1ldGVycy5vdmVycmlkZUxhbmd1YWdlcyA9IHVzZXJQcmVm
ZXJyZWRMYW5ndWFnZXNPdmVycmlkZSgpOwogfQpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9n
IGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IGEwNDA4ZTMwMWYwMDdmMjZhNTA2Y2I5MjRmNDU2MDg1
OGJmODE5OTAuLmQ2NzE0ZDgwNWRlM2UxZGJmOGU5MTBhZmI3MzExZDYxODQ5MmJhM2IgMTAwNjQ0
Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwx
NiBAQAorMjAyMS0xMS0xMSAgS2ltbW8gS2lubnVuZW4gIDxra2lubnVuZW5AYXBwbGUuY29tPgor
CisgICAgICAgIElPU3VyZmFjZSBtZW1vcnkgYXR0cmlidXRpb24gaXMgaGFyZCB0byB1c2UgaW4g
Y29uc3RydWN0b3JzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yMzI5ODgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBVcGRhdGUgY29uc3RydWN0b3IgY2FsbGluZyBiYXNlIGNsYXNzIGNvbnN0cnVjdG9yLgor
CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL2NvY29hL1Rlc3RHcmFwaGlj
c0NvbnRleHRHTE9wZW5HTENvY29hLm1tOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6V2ViQ29y
ZTo6VGVzdGVkR3JhcGhpY3NDb250ZXh0R0xPcGVuR0w6OmNyZWF0ZSk6CisgICAgICAgIChUZXN0
V2ViS2l0QVBJOjpXZWJDb3JlOjpUZXN0ZWRHcmFwaGljc0NvbnRleHRHTE9wZW5HTDo6VGVzdGVk
R3JhcGhpY3NDb250ZXh0R0xPcGVuR0wpOgorCiAyMDIxLTExLTEwICBDaHJpcyBEdW1leiAgPGNk
dW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgV2Ugc2hvdWxkIG5vdCBraWxsIGFsbCBXZWJDb250
ZW50IHByb2Nlc3NlcyB3aGVuZXZlciB0aGUgV2ViQXV0aG4gcHJvY2VzcyBjcmFzaGVzCmRpZmYg
LS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvY29jb2EvVGVzdEdyYXBo
aWNzQ29udGV4dEdMT3BlbkdMQ29jb2EubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YkNvcmUvY29jb2EvVGVzdEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMQ29jb2EubW0KaW5kZXggOTE3
ZDJlODE2MGE1MzJiZjY2NzRhNDIwNTU3ZTI0ZDVhYmE3ODNmNi4uOGM4ZWE4ZmQ4YmUzMWIwZGZj
YTgwN2ViNjVkMGUyNzE4MWI4ZGQ5YyAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJDb3JlL2NvY29hL1Rlc3RHcmFwaGljc0NvbnRleHRHTE9wZW5HTENvY29hLm1tCisr
KyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9jb2NvYS9UZXN0R3JhcGhpY3ND
b250ZXh0R0xPcGVuR0xDb2NvYS5tbQpAQCAtMzksMTIgKzM5LDEyIEBAIGNsYXNzIFRlc3RlZEdy
YXBoaWNzQ29udGV4dEdMT3BlbkdMIDogcHVibGljIEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMIHsK
IHB1YmxpYzoKICAgICBzdGF0aWMgUmVmUHRyPFRlc3RlZEdyYXBoaWNzQ29udGV4dEdMT3BlbkdM
PiBjcmVhdGUoR3JhcGhpY3NDb250ZXh0R0xBdHRyaWJ1dGVzIGF0dHJpYnV0ZXMpCiAgICAgewot
ICAgICAgICBhdXRvIGNvbnRleHQgPSBhZG9wdFJlZigqbmV3IFRlc3RlZEdyYXBoaWNzQ29udGV4
dEdMT3BlbkdMKFdURk1vdmUoYXR0cmlidXRlcykpKTsKKyAgICAgICAgYXV0byBjb250ZXh0ID0g
YWRvcHRSZWYoKm5ldyBUZXN0ZWRHcmFwaGljc0NvbnRleHRHTE9wZW5HTChXVEZNb3ZlKGF0dHJp
YnV0ZXMpLCB7IH0pKTsKICAgICAgICAgcmV0dXJuIGNvbnRleHQ7CiAgICAgfQogcHJpdmF0ZToK
LSAgICBUZXN0ZWRHcmFwaGljc0NvbnRleHRHTE9wZW5HTChHcmFwaGljc0NvbnRleHRHTEF0dHJp
YnV0ZXMgYXR0cmlidXRlcykKLSAgICAgICAgOiBHcmFwaGljc0NvbnRleHRHTE9wZW5HTChXVEZN
b3ZlKGF0dHJpYnV0ZXMpKQorICAgIFRlc3RlZEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMKEdyYXBo
aWNzQ29udGV4dEdMQXR0cmlidXRlcyBhdHRyaWJ1dGVzLCBSZWZQdHI8UHJvY2Vzc0lkZW50aXR5
PiByZXNvdXJjZU93bmVyKQorICAgICAgICA6IEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMKFdURk1v
dmUoYXR0cmlidXRlcyksIFdURk1vdmUocmVzb3VyY2VPd25lcikpCiAgICAgewogICAgIH0KIH07
Cg==
</data>
<flag name="commit-queue"
          id="468768"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>443930</attachid>
            <date>2021-11-11 03:11:05 -0800</date>
            <delta_ts>2021-11-11 03:30:00 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-232988-20211111131103.patch</filename>
            <type>text/plain</type>
            <size>52860</size>
            <attacher name="Kimmo Kinnunen">kkinnunen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg1NjIyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzEzMjQzOGVjMDliZTE4
MTE0NjI5NmIyYmYyMmViYWRlZWIxY2VkNi4uYmVlZmIyMDQ5MzlkYzI0ZGVhMzJjNzYyMmYyZDE2
NGNmYTUyYzRlZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU3IEBACisyMDIxLTExLTExICBLaW1t
byBLaW5udW5lbiAgPGtraW5udW5lbkBhcHBsZS5jb20+CisKKyAgICAgICAgSU9TdXJmYWNlIG1l
bW9yeSBhdHRyaWJ1dGlvbiBpcyBoYXJkIHRvIHVzZSBpbiBjb25zdHJ1Y3RvcnMKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMjk4OAorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBXZWJDb3JlOjpQcm9j
ZXNzSWRlbnRpdHkgdHlwZSB0aGF0IGNhbiBiZSB1c2VkIHRvIGNvbW11bmljYXRlIG1lbW9yeSBh
dHRyaWJ1dGlvbi4KKyAgICAgICAgRm9yIG5vbi1Db2NvYSBwb3J0cywgdGhpcyBpcyBudWxscHRy
LgorICAgICAgICBUaGlzIGlzIHVzZWQgaW4gV2ViQ29yZSB0byBzZXQgdGhlIG1lbW9yeSBhdHRy
aWJ1dGlvbiBvZiBJT1N1cmZhY2UgYW5kIG9iamVjdHMKKyAgICAgICAgdGhhdCBob2xkIElPU3Vy
ZmFjZXMuCisgICAgICAgIFRoaXMgaXMgaW5zdGFudGlhdGVkIGluIFdlYktpdC4KKyAgICAgICAg
Q3VycmVudGx5IHRoZSBvbmx5IHVzZWZ1bCB3YXkgdG8gaW5zdGFudGlhdGUgUHJvY2Vzc0lkZW50
aXR5IGlzIGJ5IHJlY2VpdmluZworICAgICAgICB0aGUgUHJvY2Vzc0lkZW50aXR5OjpIYW5kbGUg
YXMgYSBtZXNzYWdlIGFuZCBjcmVhdGUgaXQgdGhpcyB3YXkgZm9yIHRoZQorICAgICAgICBzZW5k
ZXIgcHJvY2Vzcy4KKworICAgICAgICBObyBuZXcgdGVzdHMsIHJlZmFjdG9yLgorCisgICAgICAg
ICogSGVhZGVycy5jbWFrZToKKyAgICAgICAgKiBTb3VyY2VzLnR4dDoKKyAgICAgICAgKiBXZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogcGxhdGZvcm0vTG9nZ2lu
Zy5oOgorICAgICAgICBBZGQgV2ViQ29yZSBQcm9jZXNzIGxvZyB0YWcgc2luY2UgdGhlIGNvZGUg
bW92ZWQgZnJvbSBXZWJLaXQgdG8gUHJvY2Vzc0lkZW50aXR5CisgICAgICAgIHVzZWQgdGhhdCB0
YWcgdG8gbG9nLgorICAgICAgICAqIHBsYXRmb3JtL1Byb2Nlc3NJZGVudGl0eS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpQcm9jZXNzSWRlbnRpdHk6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3Jl
OjpQcm9jZXNzSWRlbnRpdHk6OlByb2Nlc3NJZGVudGl0eSk6CisgICAgICAgIChXZWJDb3JlOjpQ
cm9jZXNzSWRlbnRpdHk6OmhhbmRsZUZvckN1cnJlbnRQcm9jZXNzKToKKyAgICAgICAgKFdlYkNv
cmU6OlByb2Nlc3NJZGVudGl0eTo6aGFuZGxlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlBy
b2Nlc3NJZGVudGl0eTo6dGFza0lkVG9rZW4gY29uc3QpOgorICAgICAgICAqIHBsYXRmb3JtL1By
b2Nlc3NJZGVudGl0eS5oOgorICAgICAgICBBZGQgdGhlIFByb2Nlc3NJZGVudGl0eSB0eXBlIHRo
YXQgY2FuIGJlIHVzZWQgdG8gY29tbXVuaWNhdGUgbWVtb3J5IGF0dHJpYnV0aW9uLgorCisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvUmVtb3RlVmlkZW9TYW1wbGUuaDoKKyAgICAgICAgKFdl
YkNvcmU6OlJlbW90ZVZpZGVvU2FtcGxlOjpzZXRPd25lcnNoaXBJZGVudGl0eSk6CisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvY2cvSW1hZ2VCdWZmZXJVdGlsaXRpZXNDRy5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjplbmNvZGUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NvY29h
L0dyYXBoaWNzQ29udGV4dEdMT3BlbkdMQ29jb2EubW06CisgICAgICAgIChXZWJDb3JlOjpHcmFw
aGljc0NvbnRleHRHTE9wZW5HTDo6R3JhcGhpY3NDb250ZXh0R0xPcGVuR0wpOgorICAgICAgICAo
V2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0R0xPcGVuR0w6OmFsbG9jYXRlQW5kQmluZERpc3BsYXlC
dWZmZXJCYWNraW5nKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9JT1N1cmZh
Y2UuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9JT1N1cmZhY2UubW06Cisg
ICAgICAgIChXZWJDb3JlOjpJT1N1cmZhY2U6OnNldE93bmVyc2hpcElkZW50aXR5KToKKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9XZWJQcm9jZXNzR3JhcGhpY3NDb250ZXh0R0xP
cGVuR0xDb2NvYS5tbToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR3JhcGhp
Y3NDb250ZXh0R0xPcGVuR0wuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAv
R3JhcGhpY3NDb250ZXh0R0xUZXh0dXJlTWFwcGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okdy
YXBoaWNzQ29udGV4dEdMT3BlbkdMOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhp
Y3NDb250ZXh0R0xPcGVuR0w6OkdyYXBoaWNzQ29udGV4dEdMT3BlbkdMKToKKyAgICAgICAgQWRk
IGFuIGV4YW1wbGUgdXNlIHdoZXJlIHRoZSBjb25zdHJ1Y3RvciB0YWtlcyB0aGUgbWVtb3J5IGF0
dHJpYnV0aW9uIHRva2VuLgorICAgICAgICBUaGlzIG1heSBiZSBuZWVkZWQgaW4gdGhlIGZ1dHVy
ZSB3aGVuIHRoZSB0b2tlbiBpcyB1c2VkIGFzIGEgcGFyYW1ldGVyIGluCisgICAgICAgIHRoZSBB
TkdMRSBjb250ZXh0IGNyZWF0aW9uLgorICAgICAgICBVc2UgdGhlIHRva2VuIGluIGNyZWF0aW5n
IHRoZSBJT1N1cmZhY2UuIFRoaXMgZml4ZXMgYSBidWcgd2hlcmUgV2ViR0wKKyAgICAgICAgYmFj
ayBidWZmZXJzIHdvdWxkIG5vdCBiZSBhdHRyaWJ1dGVkIHVudGlsIHRoZXkgd2VyZSBzZW50IHRv
IFdQLgorCiAyMDIxLTExLTExICBBbnR0aSBLb2l2aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KIAog
ICAgICAgICBVc2UgbmFycm93ZXIgdHlwZXMgZm9yIHN0eWxlIHNjb3BlIG9yZGluYWwgYW5kIGNh
c2NhZGUgbGF5ZXIgcHJpb3JpdHkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9n
IGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggNGUxNTE5NmQ4Y2ZkZDc0MDI0YmE3YWRm
NmNmZDU4N2VjZDVkZDQ4Mi4uNmEyODQwOWVkZjA2Zjk2ZDM0OTljMzA1NTNiZjViNmJlYjBlMGRj
MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktp
dC9DaGFuZ2VMb2cKQEAgLTEsMyArMSw1NCBAQAorMjAyMS0xMS0xMSAgS2ltbW8gS2lubnVuZW4g
IDxra2lubnVuZW5AYXBwbGUuY29tPgorCisgICAgICAgIElPU3VyZmFjZSBtZW1vcnkgYXR0cmli
dXRpb24gaXMgaGFyZCB0byB1c2UgaW4gY29uc3RydWN0b3JzCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzI5ODgKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZW1vdmUgaWZkZWZzIGFuZCBkaXJlY3QgdXNl
IG9mIHRhc2tfaWRfdG9rZW5fdC4KKyAgICAgICAgSW5zdGVhZCwgdXNlIFdlYkNvcmU6OlByb2Nl
c3NJZGVudGlmaWVyLiBUaGlzIHdheSB0aGUKKyAgICAgICAgY3Jvc3MtcGxhdGZvcm0gY29kZSBp
cyBlYXNpZXIgdG8gYXV0aG9yLgorCisgICAgICAgICogR1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9u
VG9XZWJQcm9jZXNzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6R1BVQ29ubmVjdGlvblRvV2ViUHJv
Y2Vzczo6R1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcyk6CisgICAgICAgICogR1BVUHJvY2Vzcy9H
UFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmg6CisgICAgICAgIChXZWJLaXQ6OkdQVUNvbm5lY3Rp
b25Ub1dlYlByb2Nlc3M6OndlYlByb2Nlc3NJZGVudGl0eSBjb25zdCk6CisgICAgICAgIChXZWJL
aXQ6OkdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OndlYlByb2Nlc3NJZGVudGl0eVRva2VuIGNv
bnN0KTogRGVsZXRlZC4KKyAgICAgICAgKiBHUFVQcm9jZXNzL2dyYXBoaWNzL0dQVVByb2Nlc3NH
cmFwaGljc0NvbnRleHRHTC5oOgorICAgICAgICAqIEdQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3Rl
R3JhcGhpY3NDb250ZXh0R0xDb2NvYS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUdyYXBo
aWNzQ29udGV4dEdMQ29jb2E6OlJlbW90ZUdyYXBoaWNzQ29udGV4dEdMQ29jb2EpOgorICAgICAg
ICAoV2ViS2l0OjpSZW1vdGVHcmFwaGljc0NvbnRleHRHTENvY29hOjpwbGF0Zm9ybVdvcmtRdWV1
ZUluaXRpYWxpemUpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVHcmFwaGljc0NvbnRleHRHTENv
Y29hOjpwcmVwYXJlRm9yRGlzcGxheSk6CisgICAgICAgICogR1BVUHJvY2Vzcy9ncmFwaGljcy9S
ZW1vdGVJbWFnZUJ1ZmZlci5oOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVJbWFnZUJ1ZmZlcjo6
c2V0T3duZXJzaGlwSWRlbnRpdHkpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVJbWFnZUJ1ZmZl
cjo6c2V0UHJvY2Vzc093bmVyc2hpcCk6IERlbGV0ZWQuCisgICAgICAgICogR1BVUHJvY2Vzcy9n
cmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmNwcDoKKyAgICAgICAgKFdlYktpdDo6UmVt
b3RlUmVuZGVyaW5nQmFja2VuZDo6UmVtb3RlUmVuZGVyaW5nQmFja2VuZCk6CisgICAgICAgIChX
ZWJLaXQ6OlJlbW90ZVJlbmRlcmluZ0JhY2tlbmQ6OmNyZWF0ZUltYWdlQnVmZmVyV2l0aFF1YWxp
ZmllZElkZW50aWZpZXIpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZW5kZXJpbmdCYWNrZW5k
OjpnZXREYXRhVVJMRm9ySW1hZ2VCdWZmZXJXaXRoUXVhbGlmaWVkSWRlbnRpZmllcik6CisgICAg
ICAgICogR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmg6CisgICAg
ICAgICogR1BVUHJvY2Vzcy93ZWJydGMvTGliV2ViUlRDQ29kZWNzUHJveHkubW06CisgICAgICAg
IChXZWJLaXQ6OkZ1bmN0aW9uPHZvaWQpOgorICAgICAgICAqIFNoYXJlZC9HUFVQcm9jZXNzQ29u
bmVjdGlvblBhcmFtZXRlcnMuaDoKKyAgICAgICAgKFdlYktpdDo6R1BVUHJvY2Vzc0Nvbm5lY3Rp
b25QYXJhbWV0ZXJzOjplbmNvZGUgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpHUFVQcm9jZXNz
Q29ubmVjdGlvblBhcmFtZXRlcnM6OmRlY29kZSk6CisgICAgICAgICogU2hhcmVkL1dlYkNvcmVB
cmd1bWVudENvZGVycy5jcHA6CisgICAgICAgICogU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVy
cy5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclBy
b3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6
U291cmNlUHJveHk6OlNvdXJjZVByb3h5KToKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhQ2Fw
dHVyZU1hbmFnZXJQcm94eTo6U291cmNlUHJveHk6OnNldFNob3VsZEFwcGx5Um90YXRpb24pOgor
ICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OjpjcmVhdGVNZWRp
YVNvdXJjZUZvckNhcHR1cmVEZXZpY2VXaXRoQ29uc3RyYWludHMpOgorICAgICAgICAoV2ViS2l0
OjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OjpjbG9uZSk6CisgICAgICAgIChXZWJLaXQ6
OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6OlNvdXJjZVByb3h5OjpzZXRXZWJQcm9jZXNz
SWRlbnRpdHlUb2tlbik6IERlbGV0ZWQuCisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL1VzZXJN
ZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkuaDoKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhQ2Fw
dHVyZU1hbmFnZXJQcm94eTo6Q29ubmVjdGlvblByb3h5OjpyZXNvdXJjZU93bmVyIGNvbnN0KToK
KyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6Q29ubmVjdGlv
blByb3h5Ojp3ZWJQcm9jZXNzSWRlbnRpdHlUb2tlbiBjb25zdCk6IERlbGV0ZWQuCisgICAgICAg
ICogV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvY29jb2EvSW1hZ2VCdWZmZXJTaGFyZWFibGVNYXBw
ZWRJT1N1cmZhY2VCYWNrZW5kLmNwcDoKKyAgICAgICAgKFdlYktpdDo6SW1hZ2VCdWZmZXJTaGFy
ZWFibGVNYXBwZWRJT1N1cmZhY2VCYWNrZW5kOjpzZXRPd25lcnNoaXBJZGVudGl0eSk6CisgICAg
ICAgIChXZWJLaXQ6OkltYWdlQnVmZmVyU2hhcmVhYmxlTWFwcGVkSU9TdXJmYWNlQmFja2VuZDo6
c2V0UHJvY2Vzc093bmVyc2hpcCk6IERlbGV0ZWQuCisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUv
Z3JhcGhpY3MvY29jb2EvSW1hZ2VCdWZmZXJTaGFyZWFibGVNYXBwZWRJT1N1cmZhY2VCYWNrZW5k
Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9jb2NvYS9XZWJQcm9jZXNzQ29jb2EubW06CisgICAg
ICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OnBsYXRmb3JtSW5pdGlhbGl6ZUdQVVByb2Nlc3NDb25u
ZWN0aW9uUGFyYW1ldGVycyk6CiAyMDIxLTExLTEwICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBs
ZS5jb20+CiAKICAgICAgICAgV2Ugc2hvdWxkIG5vdCBraWxsIGFsbCBXZWJDb250ZW50IHByb2Nl
c3NlcyB3aGVuZXZlciB0aGUgV2ViQXV0aG4gcHJvY2VzcyBjcmFzaGVzCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlIGIvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFr
ZQppbmRleCAzNjM1ZmM1YmNlOWVhZDQ5MGM4ZDk4NTRmZThlNWZkZTI5Njc0ZDIwLi44MWQ2ZjZh
YTMzMzk0NmIxN2M2YjJkYmQxZGZhMmQ1ZDgwMzYxMWJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9IZWFkZXJzLmNtYWtlCisrKyBiL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKQEAg
LTExNDAsNiArMTE0MCw3IEBAIHNldChXZWJDb3JlX1BSSVZBVEVfRlJBTUVXT1JLX0hFQURFUlMK
ICAgICBwbGF0Zm9ybS9Qb3B1cE1lbnVDbGllbnQuaAogICAgIHBsYXRmb3JtL1BvcHVwTWVudVN0
eWxlLmgKICAgICBwbGF0Zm9ybS9Qcm9jZXNzSWRlbnRpZmllci5oCisgICAgcGxhdGZvcm0vUHJv
Y2Vzc0lkZW50aXR5LmgKICAgICBwbGF0Zm9ybS9Qcm9jZXNzUXVhbGlmaWVkLmgKICAgICBwbGF0
Zm9ybS9Qcm9taXNlZEF0dGFjaG1lbnRJbmZvLmgKICAgICBwbGF0Zm9ybS9QdWJsaWNTdWZmaXgu
aApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQgYi9Tb3VyY2UvV2ViQ29y
ZS9Tb3VyY2VzLnR4dAppbmRleCA4YTExNGExMjM4ZDRmNjgxODg0NmYyMWMyZGIwYWMwMzAzYjFl
YjI5Li5hNWJiMjhjNmY3NTE2YWY2ZjhkM2VhYmRmZGEyYmVmZmE0ZTUyM2RlIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2Vz
LnR4dApAQCAtMTg3MCw2ICsxODcwLDcgQEAgcGxhdGZvcm0vUGxhdGZvcm1TdHJhdGVnaWVzLmNw
cAogcGxhdGZvcm0vUGxhdGZvcm1XaGVlbEV2ZW50LmNwcAogcGxhdGZvcm0vUHJldmlld0NvbnZl
cnRlci5jcHAKIHBsYXRmb3JtL1Byb2Nlc3NJZGVudGlmaWVyLmNwcAorcGxhdGZvcm0vUHJvY2Vz
c0lkZW50aXR5LmNwcAogcGxhdGZvcm0vUmVmZXJyZXJQb2xpY3kuY3BwCiBwbGF0Zm9ybS9SZW1v
dGVDb21tYW5kTGlzdGVuZXIuY3BwCiBwbGF0Zm9ybS9SdW50aW1lQXBwbGljYXRpb25DaGVja3Mu
Y3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2oKaW5kZXggMjk5YTg4NjYwZjFlYjAyMmNiZDhiNGVkYzIzMWIyMjkwOWJkYTE0NC4uMTIzZjg0
NjM4MzIxMTQ0ZDE2YzM5NTVmMmQ1MzgyNDQ3MGVhYzdhNSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMjM2Myw2ICsyMzYzLDcg
QEAKIAkJN0I3MzExRkIyNUMwOTJCNzAwM0IyNzk2IC8qIFNjb3BlZEhpZ2hQZXJmb3JtYW5jZUdQ
VVJlcXVlc3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDdCNzMxMUZBMjVDMDkyQjcwMDNCMjc5NiAvKiBTY29wZWRIaWdoUGVyZm9ybWFuY2VHUFVSZXF1
ZXN0LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJ
N0I4RUQ1RjAyNkYwQzEzRDAwOEFDMDIzIC8qIENWVXRpbGl0aWVzLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3QjhFRDVFRDI2RjBDMTIzMDA4QUMwMjMg
LyogQ1ZVdGlsaXRpZXMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OwogCQk3QjkwNDE3MDI1NTAxMTQyMDA2RUVCOEMgLyogUmVtb3RlR3JhcGhpY3NDb250
ZXh0R0xQcm94eUJhc2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDdCOTA0MTZFMjU1MDExMDkwMDZFRUI4QyAvKiBSZW1vdGVHcmFwaGljc0NvbnRleHRH
TFByb3h5QmFzZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CisJCTdCQTdDNkMzMjczQkY2MkMwMDI5REZCRSAvKiBQcm9jZXNzSWRlbnRpdHkuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdCQTdDNkMxMjczQkY2
MkIwMDI5REZCRSAvKiBQcm9jZXNzSWRlbnRpdHkuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRF
UyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk3QkIzNEE0ODI1Mzc3NkNBMDAwMjlEMDggLyogR3Jh
cGhpY3NDb250ZXh0R0xJbWFnZUV4dHJhY3Rvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gN0JCMzRBNDUyNTM3NzZDNjAwMDI5RDA4IC8qIEdyYXBoaWNz
Q29udGV4dEdMSW1hZ2VFeHRyYWN0b3IuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQ
cml2YXRlLCApOyB9OyB9OwogCQk3QkI2ODBCQTI1QkExQkU0MDAyQjg3MzggLyogR3JhcGhpY3ND
aGVja3NNYWMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDdCQjY4MEI4MjVCQTFCRTQwMDJCODczOCAvKiBHcmFwaGljc0NoZWNrc01hYy5oICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTdCRTc0MjczODFGQTkw
NkZCQjRGMEYyQyAvKiBKU1NWR0dyYXBoaWNzRWxlbWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTUwQzRDMDJCRUQ4OTM2RjgxOEUyRjk5IC8qIEpT
U1ZHR3JhcGhpY3NFbGVtZW50LmggKi87IH07CkBAIC0xMTAyMSw2ICsxMTAyMiw4IEBACiAJCTdC
OEVENUVEMjZGMEMxMjMwMDhBQzAyMyAvKiBDVlV0aWxpdGllcy5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBDVlV0aWxpdGllcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk3QjhFRDVFRjI2RjBDMTIzMDA4QUMwMjMgLyogQ1ZVdGlsaXRpZXMubW0gKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBDVlV0aWxpdGllcy5tbTsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0I5MDQxNkUyNTUwMTEwOTAwNkVFQjhDIC8qIFJlbW90ZUdy
YXBoaWNzQ29udGV4dEdMUHJveHlCYXNlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbW90ZUdyYXBoaWNz
Q29udGV4dEdMUHJveHlCYXNlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTdCQTdD
NkJGMjczQkY2MkIwMDI5REZCRSAvKiBQcm9jZXNzSWRlbnRpdHkuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUHJvY2Vzc0lkZW50aXR5LmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJN0JBN0M2QzEyNzNCRjYyQjAwMjlERkJFIC8qIFByb2Nlc3NJZGVu
dGl0eS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQcm9jZXNzSWRlbnRpdHku
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0JCMzRBMTYyNTM0NUNCMjAwMDI5RDA4
IC8qIEFOR0xFVXRpbGl0aWVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEFO
R0xFVXRpbGl0aWVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdCQjM0QTQ1MjUz
Nzc2QzYwMDAyOUQwOCAvKiBHcmFwaGljc0NvbnRleHRHTEltYWdlRXh0cmFjdG9yLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IEdyYXBoaWNzQ29udGV4dEdMSW1hZ2VFeHRyYWN0b3IuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJN0JCMzRBNDcyNTM3NzZDNzAwMDI5RDA4IC8qIEdyYXBoaWNzQ29u
dGV4dEdMSW1hZ2VFeHRyYWN0b3IuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gR3JhcGhpY3NDb250
ZXh0R0xJbWFnZUV4dHJhY3Rvci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0x
ODkyMCwxMSArMTg5MjMsMTEgQEAKIAkJMUE1NjlDQzQwRDdFMkI2MDAwN0MzOTgzIC8qIGJyaWRn
ZSAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCi0JCQkJNTlCNTk3
NzExMTA4NjU1NjAwNzE1OUU4IC8qIGpzYyAqLywKLQkJCQkxQTU2OUNFMjBEN0UyQjgyMDA3QzM5
ODMgLyogb2JqYyAqLywKIAkJCQk1OTlFNzU4RjExMDU1QTFGMDBEOTA0RkEgLyogQnJpZGdlLmgg
Ki8sCiAJCQkJMUE3MUQ1NzkwRjMzODE5MDAwRjlDRTRFIC8qIElkZW50aWZpZXJSZXAuY3BwICov
LAogCQkJCTFBNzFENTdBMEYzMzgxOTAwMEY5Q0U0RSAvKiBJZGVudGlmaWVyUmVwLmggKi8sCisJ
CQkJNTlCNTk3NzExMTA4NjU1NjAwNzE1OUU4IC8qIGpzYyAqLywKKwkJCQkxQTU2OUNFMjBEN0Uy
QjgyMDA3QzM5ODMgLyogb2JqYyAqLywKIAkJCQkxQTU2OUNFRjBEN0UyQjgyMDA3QzM5ODMgLyog
cnVudGltZV9hcnJheS5jcHAgKi8sCiAJCQkJMUE1NjlDRjAwRDdFMkI4MjAwN0MzOTgzIC8qIHJ1
bnRpbWVfYXJyYXkuaCAqLywKIAkJCQkxQTU2OUNGMTBEN0UyQjgyMDA3QzM5ODMgLyogcnVudGlt
ZV9tZXRob2QuY3BwICovLApAQCAtMjg5OTAsNiArMjg5OTMsOCBAQAogCQkJCUExQURBRjdDMjM2
MEZEM0UwMDlDQjc3NiAvKiBQcmV2aWV3Q29udmVydGVyUHJvdmlkZXIuaCAqLywKIAkJCQk1MUY2
NDVEMjFGRUNEQkM4MDBCNTRERUQgLyogUHJvY2Vzc0lkZW50aWZpZXIuY3BwICovLAogCQkJCTUx
RjY0NUQzMUZFQ0RCQzgwMEI1NERFRCAvKiBQcm9jZXNzSWRlbnRpZmllci5oICovLAorCQkJCTdC
QTdDNkJGMjczQkY2MkIwMDI5REZCRSAvKiBQcm9jZXNzSWRlbnRpdHkuY3BwICovLAorCQkJCTdC
QTdDNkMxMjczQkY2MkIwMDI5REZCRSAvKiBQcm9jZXNzSWRlbnRpdHkuaCAqLywKIAkJCQkxQ0M1
NEFGQjI3MEY5MkRBMDA1QkY4QkUgLyogUHJvY2Vzc1F1YWxpZmllZC5oICovLAogCQkJCUY0N0E2
MzNDMUZGNkZENTAwMDgxQjNDQyAvKiBQcm9taXNlZEF0dGFjaG1lbnRJbmZvLmggKi8sCiAJCQkJ
MDA4MUZFRkQxNkIwQTI0NDAwOEFBQTdBIC8qIFB1YmxpY1N1ZmZpeC5oICovLApAQCAtMzU0NzIs
NiArMzU0NzcsNyBAQAogCQkJCUI3MUZFNkRGMTEwOTFDQjMwMERBRUY3NyAvKiBQcmludENvbnRl
eHQuaCBpbiBIZWFkZXJzICovLAogCQkJCTZCMEEwN0YyMjFGQTRCNUMwMEQ1NzM5MSAvKiBQcml2
YXRlQ2xpY2tNZWFzdXJlbWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTFGNjQ1RDUxRkVDREJD
RTAwQjU0REVEIC8qIFByb2Nlc3NJZGVudGlmaWVyLmggaW4gSGVhZGVycyAqLywKKwkJCQk3QkE3
QzZDMzI3M0JGNjJDMDAyOURGQkUgLyogUHJvY2Vzc0lkZW50aXR5LmggaW4gSGVhZGVycyAqLywK
IAkJCQlBOEVBN0VCQzBBMTk0NUQwMDBBOEVGNUYgLyogUHJvY2Vzc2luZ0luc3RydWN0aW9uLmgg
aW4gSGVhZGVycyAqLywKIAkJCQkxQ0M1NEFGRTI3MEY5NkFFMDA1QkY4QkUgLyogUHJvY2Vzc1F1
YWxpZmllZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTQyMDUwMTcyMTQxOTAxQjAwNjZFRjNCIC8q
IFByb2Nlc3NXYXJtaW5nLmggaW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL0xvZ2dpbmcuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xvZ2dpbmcu
aAppbmRleCAzZmJlNDE3YmU5ODFiNzVlNzc5ZGUyMzhmYzRiZTA1YTZkNzMwZmFhLi5kYzBmNTA5
OGI4N2YxODQ1NTI1YmUzYzBiYTQxZjc2NzViMTQwNDdmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9Mb2dnaW5nLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTG9n
Z2luZy5oCkBAIC05NCw2ICs5NCw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICBNKFBsdWdp
bnMpIFwKICAgICBNKFBvcHVwQmxvY2tpbmcpIFwKICAgICBNKFByaXZhdGVDbGlja01lYXN1cmVt
ZW50KSBcCisgICAgTShQcm9jZXNzKSBcCiAgICAgTShQcm9ncmVzcykgXAogICAgIE0oUmVtb3Rl
SW5zcGVjdG9yKSBcCiAgICAgTShSZXF1ZXN0QW5pbWF0aW9uRnJhbWUpIFwKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Byb2Nlc3NJZGVudGl0eS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9Qcm9jZXNzSWRlbnRpdHkuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmFhNmM3ZWVhYjAx
ZDMyNDNiMmI0NWE2M2M1NjA0NGNmYzU4MTcxZGEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9Qcm9jZXNzSWRlbnRpdHkuY3BwCkBAIC0wLDAgKzEsNzMgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBg
YEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRS
SUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29u
ZmlnLmgiCisjaW5jbHVkZSAiUHJvY2Vzc0lkZW50aXR5LmgiCisKKyNpbmNsdWRlICJMb2dnaW5n
LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworUmVmUHRyPFByb2Nlc3NJZGVudGl0eT4gUHJv
Y2Vzc0lkZW50aXR5OjpjcmVhdGUoSGFuZGxlJiYgaGFuZGxlKQoreworI2lmIEhBVkUoVEFTS19J
REVOVElUWV9UT0tFTikKKyAgICByZXR1cm4gYWRvcHRSZWYobmV3IFByb2Nlc3NJZGVudGl0eShX
VEZNb3ZlKGhhbmRsZSkpKTsKKyNlbHNlCisgICAgcmV0dXJuIG51bGxwdHI7CisjZW5kaWYKK30K
KworUHJvY2Vzc0lkZW50aXR5OjpQcm9jZXNzSWRlbnRpdHkoSGFuZGxlJiYgaGFuZGxlKQorICAg
IDogbV9oYW5kbGUoV1RGTW92ZShoYW5kbGUpKQoreworfQorCitQcm9jZXNzSWRlbnRpdHk6Okhh
bmRsZSBQcm9jZXNzSWRlbnRpdHk6OmhhbmRsZUZvckN1cnJlbnRQcm9jZXNzKCkKK3sKKyAgICBQ
cm9jZXNzSWRlbnRpdHk6OkhhbmRsZSByZXN1bHQ7CisjaWYgSEFWRShUQVNLX0lERU5USVRZX1RP
S0VOKQorICAgIHRhc2tfaWRfdG9rZW5fdCBpZGVudGl0eVRva2VuOworICAgIGtlcm5fcmV0dXJu
X3Qga3IgPSB0YXNrX2NyZWF0ZV9pZGVudGl0eV90b2tlbihtYWNoX3Rhc2tfc2VsZigpLCAmaWRl
bnRpdHlUb2tlbik7CisgICAgaWYgKGtyID09IEtFUk5fU1VDQ0VTUykKKyAgICAgICAgcmVzdWx0
ID0gTWFjaFNlbmRSaWdodDo6YWRvcHQoaWRlbnRpdHlUb2tlbik7CisgICAgZWxzZQorICAgICAg
ICBSRUxFQVNFX0xPR19FUlJPUihQcm9jZXNzLCAidGFza19jcmVhdGVfaWRlbnRpdHlfdG9rZW4o
KSBmYWlsZWQ6ICV7cHJpdmF0ZX1zICgleCkiLCBtYWNoX2Vycm9yX3N0cmluZyhrciksIGtyKTsK
KyNlbmRpZgorICAgIHJldHVybiByZXN1bHQ7Cit9CisKK2NvbnN0IFByb2Nlc3NJZGVudGl0eTo6
SGFuZGxlJiBQcm9jZXNzSWRlbnRpdHk6OmhhbmRsZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1f
aGFuZGxlOworfQorCisjaWYgSEFWRShUQVNLX0lERU5USVRZX1RPS0VOKQordGFza19pZF90b2tl
bl90IFByb2Nlc3NJZGVudGl0eTo6dGFza0lkVG9rZW4oKSBjb25zdAoreworICAgIHJldHVybiBt
X2hhbmRsZS5zZW5kUmlnaHQoKTsKK30KKyNlbmRpZgorCit9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9Qcm9jZXNzSWRlbnRpdHkuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL1Byb2Nlc3NJZGVudGl0eS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjBjYTAxOTNiMTJlNTQ0MzZjNmZlYmJj
NmViZTM0ZTAxNjM3NjBmYTAKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9Qcm9jZXNzSWRlbnRpdHkuaApAQCAtMCwwICsxLDYxIEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBB
TlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
ICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVY
RU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlIDx3
dGYvVGhyZWFkU2FmZVJlZkNvdW50ZWQuaD4KKworI2lmIEhBVkUoVEFTS19JREVOVElUWV9UT0tF
TikKKyNpbmNsdWRlIDx3dGYvTWFjaFNlbmRSaWdodC5oPgorI2Vsc2UKKyNpbmNsdWRlIDx2YXJp
YW50PgorI2VuZGlmCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworLy8gT2JqZWN0IHRvIGFjY2Vz
cyBwcm9vZiBvZiBwcm9jZXNzIGlkZW50aXR5LgorLy8gUHJvY2Vzc0lkZW50aWZpZXIgaWRlbnRp
ZmllcyBhIHByb2Nlc3MuCisvLyBQcm9jZXNzSWRlbnRpdHkgZ3JhbnRzIGFjY2VzcyB0byB0aGUg
aWRlbnRpdHkuCitjbGFzcyBXRUJDT1JFX0VYUE9SVCBQcm9jZXNzSWRlbnRpdHkgZmluYWwgOiBw
dWJsaWMgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8UHJvY2Vzc0lkZW50aXR5PiB7CitwdWJsaWM6Cisj
aWYgSEFWRShUQVNLX0lERU5USVRZX1RPS0VOKQorICAgIHVzaW5nIEhhbmRsZSA9IE1hY2hTZW5k
UmlnaHQ7CisjZWxzZQorICAgIHVzaW5nIEhhbmRsZSA9IHN0ZDo6bW9ub3N0YXRlOworI2VuZGlm
CisgICAgc3RhdGljIFJlZlB0cjxQcm9jZXNzSWRlbnRpdHk+IGNyZWF0ZShIYW5kbGUmJik7Cisg
ICAgc3RhdGljIEhhbmRsZSBoYW5kbGVGb3JDdXJyZW50UHJvY2VzcygpOworICAgIGNvbnN0IEhh
bmRsZSYgaGFuZGxlKCkgY29uc3Q7CisKKyNpZiBIQVZFKFRBU0tfSURFTlRJVFlfVE9LRU4pCisg
ICAgdGFza19pZF90b2tlbl90IHRhc2tJZFRva2VuKCkgY29uc3Q7CisjZW5kaWYKK3ByaXZhdGU6
CisgICAgUHJvY2Vzc0lkZW50aXR5KEhhbmRsZSYmKTsKKworICAgIEhhbmRsZSBtX2hhbmRsZTsK
K307CisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1Jl
bW90ZVZpZGVvU2FtcGxlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9SZW1v
dGVWaWRlb1NhbXBsZS5oCmluZGV4IGE2MTcwYjMyOGZjNDRhY2U2OTNkY2RiMzVlZTRkM2NlNjg3
MzM4YTEuLjBmNWJhZWE4NTZlM2YxYThjZTE2NWIyMDM4NjVjOTY0NDM1NDI1NjEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1JlbW90ZVZpZGVvU2FtcGxlLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvUmVtb3RlVmlkZW9TYW1wbGUu
aApAQCAtMzcsNiArMzcsOCBAQCB0eXBlZGVmIHN0cnVjdCBfX0NWQnVmZmVyKiBDVlBpeGVsQnVm
ZmVyUmVmOwogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK2NsYXNzIFByb2Nlc3NJZGVudGl0eTsK
KwogY2xhc3MgUmVtb3RlVmlkZW9TYW1wbGUgewogcHVibGljOgogICAgIFJlbW90ZVZpZGVvU2Ft
cGxlKCkgPSBkZWZhdWx0OwpAQCAtNDgsOSArNTAsNyBAQCBwdWJsaWM6CiAgICAgV0VCQ09SRV9F
WFBPUlQgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxSZW1vdGVWaWRlb1NhbXBsZT4gY3JlYXRlKFJl
dGFpblB0cjxDVlBpeGVsQnVmZmVyUmVmPiYmLCBNZWRpYVRpbWUmJiBwcmVzZW50YXRpb25UaW1l
LCBNZWRpYVNhbXBsZTo6VmlkZW9Sb3RhdGlvbiA9IE1lZGlhU2FtcGxlOjpWaWRlb1JvdGF0aW9u
OjpOb25lKTsKICAgICBXRUJDT1JFX0VYUE9SVCBJT1N1cmZhY2VSZWYgc3VyZmFjZSgpIGNvbnN0
OwogCi0jaWYgSEFWRShJT1NVUkZBQ0VfU0VUX09XTkVSU0hJUF9JREVOVElUWSkKLSAgICB2b2lk
IHNldE93bmVyc2hpcElkZW50aXR5KHRhc2tfaWRfdG9rZW5fdCBuZXdPd25lcik7Ci0jZW5kaWYK
KyAgICB2b2lkIHNldE93bmVyc2hpcElkZW50aXR5KFByb2Nlc3NJZGVudGl0eSogcmVzb3VyY2VP
d25lcik7CiAKICAgICBjb25zdCBNZWRpYVRpbWUmIHRpbWUoKSBjb25zdCB7IHJldHVybiBtX3Rp
bWU7IH0KICAgICB1aW50MzJfdCB2aWRlb0Zvcm1hdCgpIGNvbnN0IHsgcmV0dXJuIG1fdmlkZW9G
b3JtYXQ7IH0KQEAgLTExOSwxMyArMTE5LDExIEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX21pcnJv
cmVkIHsgZmFsc2UgfTsKIH07CiAKLSNpZiBIQVZFKElPU1VSRkFDRV9TRVRfT1dORVJTSElQX0lE
RU5USVRZKQotaW5saW5lIHZvaWQgUmVtb3RlVmlkZW9TYW1wbGU6OnNldE93bmVyc2hpcElkZW50
aXR5KHRhc2tfaWRfdG9rZW5fdCBuZXdPd25lcikKK2lubGluZSB2b2lkIFJlbW90ZVZpZGVvU2Ft
cGxlOjpzZXRPd25lcnNoaXBJZGVudGl0eShQcm9jZXNzSWRlbnRpdHkqIHJlc291cmNlT3duZXIp
CiB7CiAgICAgaWYgKG1faW9TdXJmYWNlKQotICAgICAgICBtX2lvU3VyZmFjZS0+c2V0T3duZXJz
aGlwSWRlbnRpdHkobmV3T3duZXIpOworICAgICAgICBtX2lvU3VyZmFjZS0+c2V0T3duZXJzaGlw
SWRlbnRpdHkocmVzb3VyY2VPd25lcik7CiB9Ci0jZW5kaWYKIAogfQogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9HcmFwaGljc0NvbnRleHRHTE9w
ZW5HTENvY29hLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvR3Jh
cGhpY3NDb250ZXh0R0xPcGVuR0xDb2NvYS5tbQppbmRleCBmYjcyM2RkNDIyZGU5YjlkYWRhOWU0
Y2I4OTdkMDYxY2JlNmQ2MDNlLi4xOTc5ZGE1NjcyNGJhMGQyNWFkYTVkMTQxYjYzZjVhYjVmMWU3
YTk0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9H
cmFwaGljc0NvbnRleHRHTE9wZW5HTENvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2NvY29hL0dyYXBoaWNzQ29udGV4dEdMT3BlbkdMQ29jb2EubW0KQEAgLTE5
Myw4ICsxOTMsOSBAQCBzdGF0aWMgYm9vbCBuZWVkc0VBR0xPbk1hYygpCiB9CiAjZW5kaWYKIAot
R3JhcGhpY3NDb250ZXh0R0xPcGVuR0w6OkdyYXBoaWNzQ29udGV4dEdMT3BlbkdMKEdyYXBoaWNz
Q29udGV4dEdMQXR0cmlidXRlcyBhdHRycykKK0dyYXBoaWNzQ29udGV4dEdMT3BlbkdMOjpHcmFw
aGljc0NvbnRleHRHTE9wZW5HTChHcmFwaGljc0NvbnRleHRHTEF0dHJpYnV0ZXMmJiBhdHRycywg
UmVmUHRyPFByb2Nlc3NJZGVudGl0eT4mJiByZXNvdXJjZU93bmVyKQogICAgIDogR3JhcGhpY3ND
b250ZXh0R0woYXR0cnMpCisgICAgLCBtX3Jlc291cmNlT3duZXIoV1RGTW92ZShyZXNvdXJjZU93
bmVyKSkKIHsKICAgICBtX2lzRm9yV2ViR0wyID0gYXR0cnMud2ViR0xWZXJzaW9uID09IEdyYXBo
aWNzQ29udGV4dEdMV2ViR0xWZXJzaW9uOjpXZWJHTDI7CiAgICAgaWYgKGF0dHJzLnVzZU1ldGFs
ICYmICFwbGF0Zm9ybVN1cHBvcnRzTWV0YWwobV9pc0ZvcldlYkdMMikpIHsKQEAgLTU2NSw2ICs1
NjYsOCBAQCBib29sIEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMOjphbGxvY2F0ZUFuZEJpbmREaXNw
bGF5QnVmZmVyQmFja2luZygpCiAgICAgYXV0byBiYWNraW5nID0gSU9TdXJmYWNlOjpjcmVhdGUo
Z2V0SW50ZXJuYWxGcmFtZWJ1ZmZlclNpemUoKSwgRGVzdGluYXRpb25Db2xvclNwYWNlOjpTUkdC
KCkpOwogICAgIGlmICghYmFja2luZykKICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIGlmICht
X3Jlc291cmNlT3duZXIpCisgICAgICAgIGJhY2tpbmctPnNldE93bmVyc2hpcElkZW50aXR5KG1f
cmVzb3VyY2VPd25lci5nZXQoKSk7CiAKICAgICBiYWNraW5nLT5taWdyYXRlQ29sb3JTcGFjZVRv
UHJvcGVydGllcygpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jb2NvYS9JT1N1cmZhY2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2NvY29hL0lPU3VyZmFjZS5oCmluZGV4IDU2NTI0NzgyMmRiYTI5Zjc2MDBiOTQwN2U2ZjRhY2I4
YzFhMDZhYWMuLjBjNDNjYTRmODA0ZDI2MGM2MTA1ZWI5MmI2MTEwOTFlMmMyNTMyYTIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0lPU3VyZmFjZS5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0lPU3VyZmFjZS5o
CkBAIC00Niw2ICs0Niw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIEdyYXBoaWNzQ29u
dGV4dDsKIGNsYXNzIEhvc3RXaW5kb3c7CiBjbGFzcyBJbWFnZUJ1ZmZlcjsKK2NsYXNzIFByb2Nl
c3NJZGVudGl0eTsKIAogZW51bSBjbGFzcyBQaXhlbEZvcm1hdCA6IHVpbnQ4X3Q7CiBlbnVtIGNs
YXNzIFZvbGF0aWxpdHlTdGF0ZSA6IHVpbnQ4X3Q7CkBAIC0xNTksOSArMTYwLDcgQEAgcHVibGlj
OgogICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyB2b2lkIGNvbnZlcnRUb0Zvcm1hdChzdGQ6OnVu
aXF1ZV9wdHI8V2ViQ29yZTo6SU9TdXJmYWNlPiYmIGluU3VyZmFjZSwgRm9ybWF0LCBGdW5jdGlv
bjx2b2lkKHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpJT1N1cmZhY2U+KT4mJik7CiAjZW5kaWYg
Ly8gSEFWRShJT1NVUkZBQ0VfQUNDRUxFUkFUT1IpCiAKLSNpZiBIQVZFKElPU1VSRkFDRV9TRVRf
T1dORVJTSElQX0lERU5USVRZKQotICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0T3duZXJzaGlw
SWRlbnRpdHkodGFza19pZF90b2tlbl90IG5ld093bmVyKTsKLSNlbmRpZgorICAgIFdFQkNPUkVf
RVhQT1JUIHZvaWQgc2V0T3duZXJzaGlwSWRlbnRpdHkoUHJvY2Vzc0lkZW50aXR5KiByZXNvdXJj
ZU93bmVyKTsKIAogICAgIHZvaWQgbWlncmF0ZUNvbG9yU3BhY2VUb1Byb3BlcnRpZXMoKTsKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvSU9TdXJm
YWNlLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvSU9TdXJmYWNl
Lm1tCmluZGV4IDAxMTE2NWNlMTFhYmNlNjc1YzRiNDdiZjkxNWQ0YzgxZTZjZWU5OTUuLjIyZmVi
NTc4MzRlNjIzZmYyNjRlOGQ3MDI2MDY2ODY4MGMxNzBjMTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0lPU3VyZmFjZS5tbQorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9JT1N1cmZhY2UubW0KQEAgLTM0LDYgKzM0
LDcgQEAKICNpbXBvcnQgIkltYWdlQnVmZmVyLmgiCiAjaW1wb3J0ICJMb2dnaW5nLmgiCiAjaW1w
b3J0ICJQbGF0Zm9ybVNjcmVlbi5oIgorI2ltcG9ydCAiUHJvY2Vzc0lkZW50aXR5LmgiCiAjaW1w
b3J0IDxwYWwvc3BpL2NnL0NvcmVHcmFwaGljc1NQSS5oPgogI2ltcG9ydCA8d3RmL0Fzc2VydGlv
bnMuaD4KICNpbXBvcnQgPHd0Zi9NYWNoU2VuZFJpZ2h0Lmg+CkBAIC00ODQsMTQgKzQ4NSwxNSBA
QCB2b2lkIElPU3VyZmFjZTo6Y29udmVydFRvRm9ybWF0KHN0ZDo6dW5pcXVlX3B0cjxJT1N1cmZh
Y2U+JiYgaW5TdXJmYWNlLCBGb3JtYXQgZgogCiAjZW5kaWYgLy8gSEFWRShJT1NVUkZBQ0VfQUND
RUxFUkFUT1IpCiAKLSNpZiBIQVZFKElPU1VSRkFDRV9TRVRfT1dORVJTSElQX0lERU5USVRZKQot
dm9pZCBJT1N1cmZhY2U6OnNldE93bmVyc2hpcElkZW50aXR5KHRhc2tfaWRfdG9rZW5fdCBuZXdP
d25lcikKK3ZvaWQgSU9TdXJmYWNlOjpzZXRPd25lcnNoaXBJZGVudGl0eShQcm9jZXNzSWRlbnRp
dHkqIHJlc291cmNlT3duZXIpCiB7Ci0gICAgYXV0byByZXN1bHQgPSBJT1N1cmZhY2VTZXRPd25l
cnNoaXBJZGVudGl0eShtX3N1cmZhY2UuZ2V0KCksIG5ld093bmVyLCBrSU9TdXJmYWNlTWVtb3J5
TGVkZ2VyVGFnR3JhcGhpY3MsIDApOworI2lmIEhBVkUoSU9TVVJGQUNFX1NFVF9PV05FUlNISVBf
SURFTlRJVFkpICYmIEhBVkUoVEFTS19JREVOVElUWV9UT0tFTikKKyAgICB0YXNrX2lkX3Rva2Vu
X3Qgb3duZXJUYXNrSWRUb2tlbiA9IHJlc291cmNlT3duZXIgPyByZXNvdXJjZU93bmVyLT50YXNr
SWRUb2tlbigpIDogMDsKKyAgICBhdXRvIHJlc3VsdCA9IElPU3VyZmFjZVNldE93bmVyc2hpcElk
ZW50aXR5KG1fc3VyZmFjZS5nZXQoKSwgb3duZXJUYXNrSWRUb2tlbiwga0lPU3VyZmFjZU1lbW9y
eUxlZGdlclRhZ0dyYXBoaWNzLCAwKTsKICAgICBpZiAocmVzdWx0ICE9IGtJT1JldHVyblN1Y2Nl
c3MpCi0gICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKElPU3VyZmFjZSwgIklPU3VyZmFjZTo6c2V0
T3duZXJzaGlwSWRlbnRpdHk6IEZhaWxlZCB0byBjbGFpbSBvd25lcnNoaXAgb2YgSU9TdXJmYWNl
ICVwLCBuZXdPd25lcjogJWQsIGVycm9yOiAlZCIsIG1fc3VyZmFjZS5nZXQoKSwgKGludCluZXdP
d25lciwgcmVzdWx0KTsKLX0KKyAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoSU9TdXJmYWNlLCAi
SU9TdXJmYWNlOjpzZXRPd25lcnNoaXBJZGVudGl0eTogRmFpbGVkIHRvIGNsYWltIG93bmVyc2hp
cCBvZiBJT1N1cmZhY2UgJXAsIHRhc2sgaWQgdG9rZW46ICVkLCBlcnJvcjogJWQiLCBtX3N1cmZh
Y2UuZ2V0KCksIChpbnQpb3duZXJUYXNrSWRUb2tlbiwgcmVzdWx0KTsKICNlbmRpZgorfQogCiB2
b2lkIElPU3VyZmFjZTo6bWlncmF0ZUNvbG9yU3BhY2VUb1Byb3BlcnRpZXMoKQogewpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvV2ViUHJvY2Vzc0dy
YXBoaWNzQ29udGV4dEdMT3BlbkdMQ29jb2EubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jb2NvYS9XZWJQcm9jZXNzR3JhcGhpY3NDb250ZXh0R0xPcGVuR0xDb2NvYS5tbQpp
bmRleCAyNTYyNWVkYmZlMjU0ZTM3NWZlZjE2OTgxNjlmNTJlZmQ0YWE3NzIyLi5jYWM0NGExZGI0
ZGZjMGY3MTcwNGM3NDE4NGRhNDYzNzJiMzEyM2FmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9XZWJQcm9jZXNzR3JhcGhpY3NDb250ZXh0R0xPcGVu
R0xDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9X
ZWJQcm9jZXNzR3JhcGhpY3NDb250ZXh0R0xPcGVuR0xDb2NvYS5tbQpAQCAtNTcsNyArNTcsNyBA
QCBwdWJsaWM6CiAgICAgdm9pZCBwcmVwYXJlRm9yRGlzcGxheSgpIGZpbmFsOwogcHJpdmF0ZToK
ICAgICBXZWJQcm9jZXNzR3JhcGhpY3NDb250ZXh0R0xPcGVuR0woR3JhcGhpY3NDb250ZXh0R0xB
dHRyaWJ1dGVzIGF0dHJpYnV0ZXMpCi0gICAgICAgIDogR3JhcGhpY3NDb250ZXh0R0xPcGVuR0wo
YXR0cmlidXRlcykKKyAgICAgICAgOiBHcmFwaGljc0NvbnRleHRHTE9wZW5HTChXVEZNb3ZlKGF0
dHJpYnV0ZXMpLCB7IH0pCiAgICAgICAgICwgbV93ZWJHTExheWVyKGNyZWF0ZVdlYkdMTGF5ZXIo
YXR0cmlidXRlcykpCiAgICAgewogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HcmFwaGljc0NvbnRleHRHTE9wZW5HTC5oIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dyYXBoaWNzQ29udGV4dEdMT3BlbkdM
LmgKaW5kZXggMzgyNzNiMDcyYjU2ZDNmZGEyYmNkZTM0OGIzZTBmNzQyYzIwMDVlNS4uZmUxM2Vh
ZmY0ZDczZmE2NzAxNjM2MGU4ZDJiOGNmOGQzM2FjOGU1MyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dyYXBoaWNzQ29udGV4dEdMT3BlbkdMLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dyYXBoaWNzQ29u
dGV4dEdMT3BlbkdMLmgKQEAgLTI4LDYgKzI4LDcgQEAKICNpZiBFTkFCTEUoV0VCR0wpCiAKICNp
bmNsdWRlICJHcmFwaGljc0NvbnRleHRHTC5oIgorI2luY2x1ZGUgIlByb2Nlc3NJZGVudGl0eS5o
IgogI2luY2x1ZGUgPG1lbW9yeT4KICNpbmNsdWRlIDx3dGYvSGFzaENvdW50ZWRTZXQuaD4KICNp
bmNsdWRlIDx3dGYvSGFzaE1hcC5oPgpAQCAtNTQzLDggKzU0NCw5IEBAIHB1YmxpYzoKICNlbmRp
ZgogCiBwcm90ZWN0ZWQ6Ci0gICAgR3JhcGhpY3NDb250ZXh0R0xPcGVuR0woR3JhcGhpY3NDb250
ZXh0R0xBdHRyaWJ1dGVzKTsKKyAgICBHcmFwaGljc0NvbnRleHRHTE9wZW5HTChHcmFwaGljc0Nv
bnRleHRHTEF0dHJpYnV0ZXMmJiwgUmVmUHRyPFByb2Nlc3NJZGVudGl0eT4mJiByZXNvdXJjZU93
bmVyKTsKICAgICBib29sIGlzVmFsaWQoKSBjb25zdDsKKyAgICBSZWZQdHI8UHJvY2Vzc0lkZW50
aXR5PiBtX3Jlc291cmNlT3duZXI7CiAjaWYgUExBVEZPUk0oQ09DT0EpCiAgICAgR3JhcGhpY3ND
b250ZXh0R0xJT1N1cmZhY2VTd2FwQ2hhaW4gbV9zd2FwQ2hhaW47CiAjZW5kaWYKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9HcmFwaGljc0NvbnRl
eHRHTFRleHR1cmVNYXBwZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
dGV4bWFwL0dyYXBoaWNzQ29udGV4dEdMVGV4dHVyZU1hcHBlci5jcHAKaW5kZXggZTI4NTFjMmUz
ZDIyMTc3MTY5NGJkZDZmMTJmMGU1Zjc4OTljNzU1Yi4uMzA3NzcyMjBjOWNlZWRmNWRjNDIzNTBk
YTQxNjQwNGUyZWJlOWMwYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvdGV4bWFwL0dyYXBoaWNzQ29udGV4dEdMVGV4dHVyZU1hcHBlci5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL0dyYXBoaWNzQ29udGV4dEdMVGV4
dHVyZU1hcHBlci5jcHAKQEAgLTg1LDcgKzg1LDcgQEAgUmVmUHRyPEdyYXBoaWNzQ29udGV4dEdM
T3BlbkdMPiBHcmFwaGljc0NvbnRleHRHTE9wZW5HTDo6Y3JlYXRlKEdyYXBoaWNzQ29udGV4dEcK
ICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKICAgICAvLyBDcmVhdGUgdGhlIEdyYXBoaWNzQ29u
dGV4dEdMT3BlbkdMIG9iamVjdCBmaXJzdCBpbiBvcmRlciB0byBlc3RhYmxpc3QgYSBjdXJyZW50
IGNvbnRleHQgb24gdGhpcyB0aHJlYWQuCi0gICAgYXV0byBjb250ZXh0ID0gYWRvcHRSZWYobmV3
IEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMKGF0dHJpYnV0ZXMpKTsKKyAgICBhdXRvIGNvbnRleHQg
PSBhZG9wdFJlZihuZXcgR3JhcGhpY3NDb250ZXh0R0xPcGVuR0woV1RGTW92ZShhdHRyaWJ1dGVz
LCB7IH0pKSk7CiAKICNpZiBVU0UoTElCRVBPWFkpICYmIFVTRShPUEVOR0xfRVMpICYmIEVOQUJM
RShXRUJHTDIpCiAgICAgLy8gQmFpbCBpZiBHTEVTMyB3YXMgcmVxdWVzdGVkIGJ1dCBjYW5ub3Qg
YmUgcHJvdmlkZWQuCkBAIC05OSw4ICs5OSw5IEBAIFJlZlB0cjxHcmFwaGljc0NvbnRleHRHTE9w
ZW5HTD4gR3JhcGhpY3NDb250ZXh0R0xPcGVuR0w6OmNyZWF0ZShHcmFwaGljc0NvbnRleHRHCiB9
CiAKICNpZiBVU0UoQU5HTEUpCi1HcmFwaGljc0NvbnRleHRHTE9wZW5HTDo6R3JhcGhpY3NDb250
ZXh0R0xPcGVuR0woR3JhcGhpY3NDb250ZXh0R0xBdHRyaWJ1dGVzIGF0dHJpYnV0ZXMpCitHcmFw
aGljc0NvbnRleHRHTE9wZW5HTDo6R3JhcGhpY3NDb250ZXh0R0xPcGVuR0woR3JhcGhpY3NDb250
ZXh0R0xBdHRyaWJ1dGVzJiYgYXR0cmlidXRlcywgUmVmUHRyPFByb2Nlc3NJZGVudGl0eT4mJiBy
ZXNvdXJjZU93bmVyKQogICAgIDogR3JhcGhpY3NDb250ZXh0R0woYXR0cmlidXRlcykKKyAgICAs
IG1fcmVzb3VyY2VPd25lcihXVEZNb3ZlKHJlc291cmNlT3duZXIpKQogewogI2lmIEVOQUJMRShX
RUJHTDIpCiAgICAgbV9pc0ZvcldlYkdMMiA9IGF0dHJpYnV0ZXMud2ViR0xWZXJzaW9uID09IEdy
YXBoaWNzQ29udGV4dEdMV2ViR0xWZXJzaW9uOjpXZWJHTDI7CkBAIC0xNjgsOCArMTY5LDkgQEAg
R3JhcGhpY3NDb250ZXh0R0xPcGVuR0w6OkdyYXBoaWNzQ29udGV4dEdMT3BlbkdMKEdyYXBoaWNz
Q29udGV4dEdMQXR0cmlidXRlcyBhdHQKICAgICBnbDo6Q2xlYXJDb2xvcigwLCAwLCAwLCAwKTsK
IH0KICNlbHNlCi1HcmFwaGljc0NvbnRleHRHTE9wZW5HTDo6R3JhcGhpY3NDb250ZXh0R0xPcGVu
R0woR3JhcGhpY3NDb250ZXh0R0xBdHRyaWJ1dGVzIGF0dHJpYnV0ZXMpCitHcmFwaGljc0NvbnRl
eHRHTE9wZW5HTDo6R3JhcGhpY3NDb250ZXh0R0xPcGVuR0woR3JhcGhpY3NDb250ZXh0R0xBdHRy
aWJ1dGVzJiYgYXR0cmlidXRlcywgUmVmUHRyPFByb2Nlc3NJZGVudGl0eT4mJiByZXNvdXJjZU93
bmVyKQogICAgIDogR3JhcGhpY3NDb250ZXh0R0woYXR0cmlidXRlcykKKyAgICAsIG1fcmVzb3Vy
Y2VPd25lcihXVEZNb3ZlKHJlc291cmNlT3duZXIpKQogewogI2lmIFVTRShOSUNPU0lBKQogICAg
IG1fbmljb3NpYUxheWVyID0gbWFrZVVuaXF1ZTxOaWNvc2lhOjpHQ0dMTGF5ZXI+KCp0aGlzKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9uVG9XZWJQ
cm9jZXNzLmNwcCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9uVG9XZWJQ
cm9jZXNzLmNwcAppbmRleCA1MmFlODgxOTM3MWEzZWRkNjBjZDcyMGNkMDg0YmIzYzg1N2ZhN2Nk
Li4xZWY5YTZiMjU4MTYzMzdmMzhkOWJiMGIzYzc0ODlmY2QxYzk0ODVjIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3Bw
CkBAIC0xOTksMTIgKzE5OSwxMCBAQCBwcml2YXRlOgogICAgIH0KICNlbmRpZgogCi0jaWYgSEFW
RShJT1NVUkZBQ0VfU0VUX09XTkVSU0hJUF9JREVOVElUWSkKLSAgICBzdGQ6Om9wdGlvbmFsPHRh
c2tfaWRfdG9rZW5fdD4gd2ViUHJvY2Vzc0lkZW50aXR5VG9rZW4oKSBjb25zdCBmaW5hbAorICAg
IFJlZlB0cjxQcm9jZXNzSWRlbnRpdHk+IHJlc291cmNlT3duZXIoKSBjb25zdCBmaW5hbAogICAg
IHsKLSAgICAgICAgcmV0dXJuIG1fcHJvY2Vzcy53ZWJQcm9jZXNzSWRlbnRpdHlUb2tlbigpOwor
ICAgICAgICByZXR1cm4gbV9wcm9jZXNzLndlYlByb2Nlc3NJZGVudGl0eSgpOwogICAgIH0KLSNl
bmRpZgogCiAgICAgR1BVQ29ubmVjdGlvblRvV2ViUHJvY2VzcyYgbV9wcm9jZXNzOwogfTsKQEAg
LTIyMCw5ICsyMTgsNyBAQCBHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpHUFVDb25uZWN0aW9u
VG9XZWJQcm9jZXNzKEdQVVByb2Nlc3MmIGdwdVByb2Nlc3MsIFdlYgogICAgIDogbV9jb25uZWN0
aW9uKElQQzo6Q29ubmVjdGlvbjo6Y3JlYXRlU2VydmVyQ29ubmVjdGlvbihjb25uZWN0aW9uSWRl
bnRpZmllciwgKnRoaXMpKQogICAgICwgbV9ncHVQcm9jZXNzKGdwdVByb2Nlc3MpCiAgICAgLCBt
X3dlYlByb2Nlc3NJZGVudGlmaWVyKHdlYlByb2Nlc3NJZGVudGlmaWVyKQotI2lmIEhBVkUoVEFT
S19JREVOVElUWV9UT0tFTikKLSAgICAsIG1fd2ViUHJvY2Vzc0lkZW50aXR5VG9rZW4oV1RGTW92
ZShwYXJhbWV0ZXJzLndlYlByb2Nlc3NJZGVudGl0eVRva2VuKSkKLSNlbmRpZgorICAgICwgbV93
ZWJQcm9jZXNzSWRlbnRpdHkoUHJvY2Vzc0lkZW50aXR5OjpjcmVhdGUoV1RGTW92ZShwYXJhbWV0
ZXJzLndlYlByb2Nlc3NJZGVudGl0eUhhbmRsZSkpKQogICAgICwgbV9yZW1vdGVNZWRpYVBsYXll
ck1hbmFnZXJQcm94eShtYWtlVW5pcXVlUmVmPFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5
PigqdGhpcykpCiAgICAgLCBtX3Nlc3Npb25JRChzZXNzaW9uSUQpCiAjaWYgUExBVEZPUk0oQ09D
T0EpICYmIFVTRShMSUJXRUJSVEMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nl
c3MvR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNz
L0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaAppbmRleCBhZTc5NTA1MjU4NjBkZTNjZjZhMmIx
Nzg4ZmUzNWE1ZWFiZGE1NjdkLi5lMDQyOGI4NWU1Y2ZkYWMyYzQwNjVhOTEwM2I5YzU1ZTZiNmNi
NWE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvR1BVQ29ubmVjdGlvblRv
V2ViUHJvY2Vzcy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9u
VG9XZWJQcm9jZXNzLmgKQEAgLTM5LDYgKzM5LDcgQEAKICNpbmNsdWRlIDxXZWJDb3JlL05vd1Bs
YXlpbmdNYW5hZ2VyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9QYWdlSWRlbnRpZmllci5oPgogI2lu
Y2x1ZGUgPFdlYkNvcmUvUHJvY2Vzc0lkZW50aWZpZXIuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1By
b2Nlc3NJZGVudGl0eS5oPgogI2luY2x1ZGUgPHBhbC9TZXNzaW9uSUQuaD4KICNpbmNsdWRlIDx3
dGYvTG9nZ2VyLmg+CiAjaW5jbHVkZSA8d3RmL01hY2hTZW5kUmlnaHQuaD4KQEAgLTE0NywxMCAr
MTQ4LDcgQEAgcHVibGljOgogICAgIHZvaWQgZGlzcGF0Y2hEaXNwbGF5V2FzUmVjb25maWd1cmVk
Rm9yVGVzdGluZygpIHsgZGlzcGF0Y2hEaXNwbGF5V2FzUmVjb25maWd1cmVkKCk7IH07CiAjZW5k
aWYKIAotI2lmIEhBVkUoVEFTS19JREVOVElUWV9UT0tFTikKLSAgICB0YXNrX2lkX3Rva2VuX3Qg
d2ViUHJvY2Vzc0lkZW50aXR5VG9rZW4oKSBjb25zdCB7IHJldHVybiBzdGF0aWNfY2FzdDx0YXNr
X2lkX3Rva2VuX3Q+KG1fd2ViUHJvY2Vzc0lkZW50aXR5VG9rZW4uc2VuZFJpZ2h0KCkpOyB9Ci0j
ZW5kaWYKLQorICAgIFJlZlB0cjxXZWJDb3JlOjpQcm9jZXNzSWRlbnRpdHk+IHdlYlByb2Nlc3NJ
ZGVudGl0eSgpIGNvbnN0IHsgcmV0dXJuIG1fd2ViUHJvY2Vzc0lkZW50aXR5OyB9CiAjaWYgRU5B
QkxFKEVOQ1JZUFRFRF9NRURJQSkKICAgICBSZW1vdGVDRE1GYWN0b3J5UHJveHkmIGNkbUZhY3Rv
cnlQcm94eSgpOwogI2VuZGlmCkBAIC0yNzMsOSArMjcxLDcgQEAgcHJpdmF0ZToKICAgICBJUEM6
Ok1lc3NhZ2VSZWNlaXZlck1hcCBtX21lc3NhZ2VSZWNlaXZlck1hcDsKICAgICBSZWY8R1BVUHJv
Y2Vzcz4gbV9ncHVQcm9jZXNzOwogICAgIGNvbnN0IFdlYkNvcmU6OlByb2Nlc3NJZGVudGlmaWVy
IG1fd2ViUHJvY2Vzc0lkZW50aWZpZXI7Ci0jaWYgSEFWRShUQVNLX0lERU5USVRZX1RPS0VOKQot
ICAgIE1hY2hTZW5kUmlnaHQgbV93ZWJQcm9jZXNzSWRlbnRpdHlUb2tlbjsKLSNlbmRpZgorICAg
IFJlZlB0cjxXZWJDb3JlOjpQcm9jZXNzSWRlbnRpdHk+IG1fd2ViUHJvY2Vzc0lkZW50aXR5Owog
I2lmIEVOQUJMRShXRUJfQVVESU8pCiAgICAgc3RkOjp1bmlxdWVfcHRyPFJlbW90ZUF1ZGlvRGVz
dGluYXRpb25NYW5hZ2VyPiBtX3JlbW90ZUF1ZGlvRGVzdGluYXRpb25NYW5hZ2VyOwogI2VuZGlm
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvR1BVUHJvY2Vz
c0dyYXBoaWNzQ29udGV4dEdMLmggYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3Mv
R1BVUHJvY2Vzc0dyYXBoaWNzQ29udGV4dEdMLmgKaW5kZXggMWVlZTE4ZDYyZjA1MDlmMDA5ZjM0
YzNlZGU2OGQzNWUwZDA4OTY1My4uZTcyOWEzYTcxNTQ1MmMzYWQ0NjRjN2NjOWVkNWMwZWNiM2Ix
MWUwOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL0dQVVBy
b2Nlc3NHcmFwaGljc0NvbnRleHRHTC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9n
cmFwaGljcy9HUFVQcm9jZXNzR3JhcGhpY3NDb250ZXh0R0wuaApAQCAtMjksMTEgKzI5LDEzIEBA
CiAjaW5jbHVkZSA8V2ViQ29yZS9FeHRlbnNpb25zR0wuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0dy
YXBoaWNzQ29udGV4dEdMT3BlbkdMLmg+CiAKK25hbWVzcGFjZSBXZWJLaXQgeworCiBjbGFzcyBH
UFVQcm9jZXNzR3JhcGhpY3NDb250ZXh0R0xPcGVuR0wgZmluYWwgOiBwdWJsaWMgV2ViQ29yZTo6
R3JhcGhpY3NDb250ZXh0R0xPcGVuR0wgewogcHVibGljOgotICAgIHN0YXRpYyBSZWZQdHI8R1BV
UHJvY2Vzc0dyYXBoaWNzQ29udGV4dEdMT3BlbkdMPiBjcmVhdGUoV2ViQ29yZTo6R3JhcGhpY3ND
b250ZXh0R0xBdHRyaWJ1dGVzIGF0dHJpYnV0ZXMpCisgICAgc3RhdGljIFJlZlB0cjxHUFVQcm9j
ZXNzR3JhcGhpY3NDb250ZXh0R0xPcGVuR0w+IGNyZWF0ZShXZWJDb3JlOjpHcmFwaGljc0NvbnRl
eHRHTEF0dHJpYnV0ZXMgYXR0cmlidXRlcywgUmVmUHRyPFdlYkNvcmU6OlByb2Nlc3NJZGVudGl0
eT4gcmVzb3VyY2VPd25lcikKICAgICB7Ci0gICAgICAgIGF1dG8gY29udGV4dCA9IGFkb3B0UmVm
KCpuZXcgR1BVUHJvY2Vzc0dyYXBoaWNzQ29udGV4dEdMT3BlbkdMKFdURk1vdmUoYXR0cmlidXRl
cykpKTsKKyAgICAgICAgYXV0byBjb250ZXh0ID0gYWRvcHRSZWYoKm5ldyBHUFVQcm9jZXNzR3Jh
cGhpY3NDb250ZXh0R0xPcGVuR0woV1RGTW92ZShhdHRyaWJ1dGVzKSwgV1RGTW92ZShyZXNvdXJj
ZU93bmVyKSkpOwogICAgICAgICBpZiAoIWNvbnRleHQtPmlzVmFsaWQoKSkKICAgICAgICAgICAg
IHJldHVybiBudWxscHRyOwogICAgICAgICByZXR1cm4gY29udGV4dDsKQEAgLTQ0LDEwICs0Niwx
MiBAQCBwdWJsaWM6CiAgICAgdm9pZCBtYXJrRGlzcGxheUJ1ZmZlckluVXNlKCkgeyByZXR1cm4g
bV9zd2FwQ2hhaW4ubWFya0Rpc3BsYXlCdWZmZXJJblVzZSgpOyB9CiAjZW5kaWYKIHByaXZhdGU6
Ci0gICAgR1BVUHJvY2Vzc0dyYXBoaWNzQ29udGV4dEdMT3BlbkdMKFdlYkNvcmU6OkdyYXBoaWNz
Q29udGV4dEdMQXR0cmlidXRlcyBhdHRyaWJ1dGVzKQotICAgICAgICA6IEdyYXBoaWNzQ29udGV4
dEdMT3BlbkdMKGF0dHJpYnV0ZXMpCisgICAgR1BVUHJvY2Vzc0dyYXBoaWNzQ29udGV4dEdMT3Bl
bkdMKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dEdMQXR0cmlidXRlcyYmIGF0dHJpYnV0ZXMsIFJl
ZlB0cjxXZWJDb3JlOjpQcm9jZXNzSWRlbnRpdHk+JiYgcmVzb3VyY2VPd25lcikKKyAgICAgICAg
OiBHcmFwaGljc0NvbnRleHRHTE9wZW5HTChXVEZNb3ZlKGF0dHJpYnV0ZXMpLCBXVEZNb3ZlKHJl
c291cmNlT3duZXIpKQogICAgIHsKICAgICB9CiB9OwogCit9CisKICNlbmRpZgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZUdyYXBoaWNzQ29udGV4
dEdMQ29jb2EuY3BwIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZUdy
YXBoaWNzQ29udGV4dEdMQ29jb2EuY3BwCmluZGV4IGI0MzdhNWJlZWNkNWQ2YWM1ODNjYTU5N2E5
NWUyNzcxMmZhZGQ2MjMuLjBjYzIyYjQzM2E0NWU3NGQ1NDBlNGQ1NGU5Y2E2N2JiMTA5NWUxZDMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVHcmFw
aGljc0NvbnRleHRHTENvY29hLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3Jh
cGhpY3MvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xDb2NvYS5jcHAKQEAgLTQ3LDkgKzQ3LDcgQEAg
cHVibGljOgogICAgIHZvaWQgcHJlcGFyZUZvckRpc3BsYXkoQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZChXVEY6Ok1hY2hTZW5kUmlnaHQmJik+JiYpIGZpbmFsOwogcHJpdmF0ZToKICAgICBXZWJDb3Jl
OjpHcmFwaGljc0NvbnRleHRHTElPU3VyZmFjZVN3YXBDaGFpbiBtX3N3YXBDaGFpbiBXVEZfR1VB
UkRFRF9CWV9MT0NLKG1fc3RyZWFtVGhyZWFkKTsKLSNpZiBIQVZFKElPU1VSRkFDRV9TRVRfT1dO
RVJTSElQX0lERU5USVRZKQotICAgIHRhc2tfaWRfdG9rZW5fdCBtX3dlYlByb2Nlc3NJZGVudGl0
eVRva2VuOwotI2VuZGlmCisgICAgUmVmUHRyPFByb2Nlc3NJZGVudGl0eT4gbV9yZXNvdXJjZU93
bmVyOwogfTsKIAogfQpAQCAtNjMsOSArNjEsNyBAQCBSZWY8UmVtb3RlR3JhcGhpY3NDb250ZXh0
R0w+IFJlbW90ZUdyYXBoaWNzQ29udGV4dEdMOjpjcmVhdGUoR1BVQ29ubmVjdGlvblRvV2ViUAog
CiBSZW1vdGVHcmFwaGljc0NvbnRleHRHTENvY29hOjpSZW1vdGVHcmFwaGljc0NvbnRleHRHTENv
Y29hKEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MmIGdwdUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3Ms
IEdyYXBoaWNzQ29udGV4dEdMSWRlbnRpZmllciBncmFwaGljc0NvbnRleHRHTElkZW50aWZpZXIs
IFJlbW90ZVJlbmRlcmluZ0JhY2tlbmQmIHJlbmRlcmluZ0JhY2tlbmQsIElQQzo6U3RyZWFtQ29u
bmVjdGlvbkJ1ZmZlciYmIHN0cmVhbSkKICAgICA6IFJlbW90ZUdyYXBoaWNzQ29udGV4dEdMKGdw
dUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MsIGdyYXBoaWNzQ29udGV4dEdMSWRlbnRpZmllciwgcmVu
ZGVyaW5nQmFja2VuZCwgV1RGTW92ZShzdHJlYW0pKQotI2lmIEhBVkUoSU9TVVJGQUNFX1NFVF9P
V05FUlNISVBfSURFTlRJVFkpCi0gICAgLCBtX3dlYlByb2Nlc3NJZGVudGl0eVRva2VuKGdwdUNv
bm5lY3Rpb25Ub1dlYlByb2Nlc3Mud2ViUHJvY2Vzc0lkZW50aXR5VG9rZW4oKSkKLSNlbmRpZgor
ICAgICwgbV9yZXNvdXJjZU93bmVyKGdwdUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3Mud2ViUHJvY2Vz
c0lkZW50aXR5KCkpCiB7CiAKIH0KQEAgLTczLDcgKzY5LDcgQEAgUmVtb3RlR3JhcGhpY3NDb250
ZXh0R0xDb2NvYTo6UmVtb3RlR3JhcGhpY3NDb250ZXh0R0xDb2NvYShHUFVDb25uZWN0aW9uVG9X
ZWJQcm8KIHZvaWQgUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xDb2NvYTo6cGxhdGZvcm1Xb3JrUXVl
dWVJbml0aWFsaXplKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dEdMQXR0cmlidXRlcyYmIGF0dHJp
YnV0ZXMpCiB7CiAgICAgYXNzZXJ0SXNDdXJyZW50KG1fc3RyZWFtVGhyZWFkKTsKLSAgICBtX2Nv
bnRleHQgPSBHUFVQcm9jZXNzR3JhcGhpY3NDb250ZXh0R0xPcGVuR0w6OmNyZWF0ZShXVEZNb3Zl
KGF0dHJpYnV0ZXMpKTsKKyAgICBtX2NvbnRleHQgPSBHUFVQcm9jZXNzR3JhcGhpY3NDb250ZXh0
R0xPcGVuR0w6OmNyZWF0ZShXVEZNb3ZlKGF0dHJpYnV0ZXMpLCBtX3Jlc291cmNlT3duZXIpOwog
fQogCiB2b2lkIFJlbW90ZUdyYXBoaWNzQ29udGV4dEdMQ29jb2E6OnByZXBhcmVGb3JEaXNwbGF5
KENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV1RGOjpNYWNoU2VuZFJpZ2h0JiYpPiYmIGNvbXBsZXRp
b25IYW5kbGVyKQpAQCAtODQsMTAgKzgwLDYgQEAgdm9pZCBSZW1vdGVHcmFwaGljc0NvbnRleHRH
TENvY29hOjpwcmVwYXJlRm9yRGlzcGxheShDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdURjoKICAg
ICBNYWNoU2VuZFJpZ2h0IHNlbmRSaWdodDsKICAgICBpZiAoZGlzcGxheUJ1ZmZlcikgewogICAg
ICAgICBtX2NvbnRleHQtPm1hcmtEaXNwbGF5QnVmZmVySW5Vc2UoKTsKLSNpZiBIQVZFKElPU1VS
RkFDRV9TRVRfT1dORVJTSElQX0lERU5USVRZKQotICAgICAgICAvLyBNYXJrIHRoZSBJT1N1cmZh
Y2UgYXMgYmVpbmcgb3duZWQgYnkgdGhlIFdlYlByb2Nlc3MgZXZlbiB0aG91Z2ggaXQgd2FzIGNv
bnN0cnVjdGVkIGJ5IHRoZSBHUFVQcm9jZXNzIHNvIHRoYXQgSmV0c2FtIGtub3dzIHdoaWNoIHBy
b2Nlc3MgdG8ga2lsbC4KLSAgICAgICAgZGlzcGxheUJ1ZmZlci0+c2V0T3duZXJzaGlwSWRlbnRp
dHkobV93ZWJQcm9jZXNzSWRlbnRpdHlUb2tlbik7Ci0jZW5kaWYKICAgICAgICAgc2VuZFJpZ2h0
ID0gZGlzcGxheUJ1ZmZlci0+Y3JlYXRlU2VuZFJpZ2h0KCk7CiAgICAgfQogICAgIGNvbXBsZXRp
b25IYW5kbGVyKFdURk1vdmUoc2VuZFJpZ2h0KSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlSW1hZ2VCdWZmZXIuaCBiL1NvdXJjZS9XZWJLaXQv
R1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVJbWFnZUJ1ZmZlci5oCmluZGV4IGEzZDQ5NGZlOGJm
NmExOTY0N2VmMTkwYzlkYjQwNDJhZWNlNjcyMjAuLjE5OTI1OGI2M2Q2OGU4OGJjYTRhOTAyMzZm
ZWQ0MDQ4MDQxYjYyMGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFw
aGljcy9SZW1vdGVJbWFnZUJ1ZmZlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9n
cmFwaGljcy9SZW1vdGVJbWFnZUJ1ZmZlci5oCkBAIC02OSwxMyArNjksMTEgQEAgcHVibGljOgog
ICAgICAgICAgICAgY29udGV4dCgpLnJlc3RvcmUoKTsKICAgICB9CiAKLSNpZiBIQVZFKElPU1VS
RkFDRV9TRVRfT1dORVJTSElQX0lERU5USVRZKQotICAgIHZvaWQgc2V0UHJvY2Vzc093bmVyc2hp
cCh0YXNrX2lkX3Rva2VuX3QgbmV3T3duZXIpCisgICAgdm9pZCBzZXRPd25lcnNoaXBJZGVudGl0
eShXZWJDb3JlOjpQcm9jZXNzSWRlbnRpdHkqIHJlc291cmNlT3duZXIpCiAgICAgewogICAgICAg
ICBpZiAobV9iYWNrZW5kKQotICAgICAgICAgICAgbV9iYWNrZW5kLT5zZXRQcm9jZXNzT3duZXJz
aGlwKG5ld093bmVyKTsKKyAgICAgICAgICAgIG1fYmFja2VuZC0+c2V0T3duZXJzaGlwSWRlbnRp
dHkocmVzb3VyY2VPd25lcik7CiAgICAgfQotI2VuZGlmCiAKIHByaXZhdGU6CiAgICAgZnJpZW5k
IGNsYXNzIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5jcHAKaW5k
ZXggZGI0ZTEzN2IyZjZhZGZiOWNkMTQ3OGExZDg3MmU2NjRkMWE5NmRlYi4uMmM4ZjRiZTJiMDcw
ZGU2MTMwNGEwMmZiYTYwMjA2Y2M3YWRiNzY4MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9H
UFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmNwcApA
QCAtODQsNiArODQsNyBAQCBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kOjpSZW1vdGVSZW5kZXJpbmdC
YWNrZW5kKEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MmIGdwdUNvbgogICAgICwgbV9zdHJlYW1D
b25uZWN0aW9uKElQQzo6U3RyZWFtU2VydmVyQ29ubmVjdGlvbjo6Y3JlYXRlKGdwdUNvbm5lY3Rp
b25Ub1dlYlByb2Nlc3MuY29ubmVjdGlvbigpLCBXVEZNb3ZlKHN0cmVhbUJ1ZmZlciksIG1fd29y
a1F1ZXVlLmdldCgpKSkKICAgICAsIG1fcmVtb3RlUmVzb3VyY2VDYWNoZShncHVDb25uZWN0aW9u
VG9XZWJQcm9jZXNzLndlYlByb2Nlc3NJZGVudGlmaWVyKCkpCiAgICAgLCBtX2dwdUNvbm5lY3Rp
b25Ub1dlYlByb2Nlc3MoZ3B1Q29ubmVjdGlvblRvV2ViUHJvY2VzcykKKyAgICAsIG1fcmVzb3Vy
Y2VPd25lcihncHVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLndlYlByb2Nlc3NJZGVudGl0eSgpKQog
ICAgICwgbV9yZW5kZXJpbmdCYWNrZW5kSWRlbnRpZmllcihjcmVhdGlvblBhcmFtZXRlcnMuaWRl
bnRpZmllcikKIHsKICAgICBBU1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOwpAQCAtMTczLDEwICsx
NzQsOSBAQCB2b2lkIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmQ6OmNyZWF0ZUltYWdlQnVmZmVyV2l0
aFF1YWxpZmllZElkZW50aWZpZXIoY29uc3QgRmxvYQogCiAgICAgaWYgKHJlbmRlcmluZ01vZGUg
PT0gUmVuZGVyaW5nTW9kZTo6QWNjZWxlcmF0ZWQpIHsKICAgICAgICAgaWYgKGF1dG8gYWNjZWxl
cmF0ZWRJbWFnZUJ1ZmZlciA9IEFjY2VsZXJhdGVkUmVtb3RlSW1hZ2VCdWZmZXI6OmNyZWF0ZShs
b2dpY2FsU2l6ZSwgcmVzb2x1dGlvblNjYWxlLCBjb2xvclNwYWNlLCBwaXhlbEZvcm1hdCwgKnRo
aXMsIGltYWdlQnVmZmVyUmVzb3VyY2VJZGVudGlmaWVyKSkgewotI2lmIEhBVkUoSU9TVVJGQUNF
X1NFVF9PV05FUlNISVBfSURFTlRJVFkpCiAgICAgICAgICAgICAvLyBNYXJrIHRoZSBJT1N1cmZh
Y2UgYXMgYmVpbmcgb3duZWQgYnkgdGhlIFdlYlByb2Nlc3MgZXZlbiB0aG91Z2ggaXQgd2FzIGNv
bnN0cnVjdGVkIGJ5IHRoZSBHUFVQcm9jZXNzIHNvIHRoYXQgSmV0c2FtIGtub3dzIHdoaWNoIHBy
b2Nlc3MgdG8ga2lsbC4KLSAgICAgICAgICAgIGFjY2VsZXJhdGVkSW1hZ2VCdWZmZXItPnNldFBy
b2Nlc3NPd25lcnNoaXAobV9ncHVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLT53ZWJQcm9jZXNzSWRl
bnRpdHlUb2tlbigpKTsKLSNlbmRpZgorICAgICAgICAgICAgaWYgKG1fcmVzb3VyY2VPd25lcikK
KyAgICAgICAgICAgICAgICBhY2NlbGVyYXRlZEltYWdlQnVmZmVyLT5zZXRPd25lcnNoaXBJZGVu
dGl0eShtX3Jlc291cmNlT3duZXIuZ2V0KCkpOwogICAgICAgICAgICAgaW1hZ2VCdWZmZXIgPSBX
VEZNb3ZlKGFjY2VsZXJhdGVkSW1hZ2VCdWZmZXIpOwogICAgICAgICB9CiAgICAgfQpAQCAtMjY4
LDYgKzI2OCw3IEBAIHZvaWQgUmVtb3RlUmVuZGVyaW5nQmFja2VuZDo6Z2V0RGF0YVVSTEZvcklt
YWdlQnVmZmVyV2l0aFF1YWxpZmllZElkZW50aWZpZXIoY29uCiAgICAgU3RyaW5nIHVybFN0cmlu
ZzsKICAgICBpZiAoYXV0byBpbWFnZUJ1ZmZlciA9IG1fcmVtb3RlUmVzb3VyY2VDYWNoZS5jYWNo
ZWRJbWFnZUJ1ZmZlcihyZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIpKQogICAgICAgICB1cmxT
dHJpbmcgPSBpbWFnZUJ1ZmZlci0+dG9EYXRhVVJMKG1pbWVUeXBlLCBxdWFsaXR5LCBwcmVzZXJ2
ZVJlc29sdXRpb24pOworICAgIFdURkxvZ0Fsd2F5cygiREFUQVVSTDolcyIsIHVybFN0cmluZy51
dGY4KCkuZGF0YSgpKTsKICAgICBjb21wbGV0aW9uSGFuZGxlcihXVEZNb3ZlKHVybFN0cmluZykp
OwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVt
b3RlUmVuZGVyaW5nQmFja2VuZC5oIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNz
L1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQuaAppbmRleCAxOWZiMTdmMDI1ZmIyYzY1ZjFkZGUyNzJj
MzBiYjBkZTk0NWNhZjlmLi45ZWM5NjJiMzBmZjY2N2E5MTdmZjg2ZmRiMmY1M2ZhMDgyYWI3NjMz
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVu
ZGVyaW5nQmFja2VuZC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9S
ZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmgKQEAgLTU0LDYgKzU0LDcgQEAgbmFtZXNwYWNlIFdlYkNv
cmUgewogY2xhc3MgRGVzdGluYXRpb25Db2xvclNwYWNlOwogY2xhc3MgRmxvYXRTaXplOwogY2xh
c3MgTmF0aXZlSW1hZ2U7CitjbGFzcyBQcm9jZXNzSWRlbnRpdHk7CiAKIGVudW0gY2xhc3MgUmVu
ZGVyaW5nTW9kZSA6IGJvb2w7CiAKQEAgLTEyOSw2ICsxMzAsNyBAQCBwcml2YXRlOgogICAgIFJl
ZjxJUEM6OlN0cmVhbVNlcnZlckNvbm5lY3Rpb24+IG1fc3RyZWFtQ29ubmVjdGlvbjsKICAgICBS
ZW1vdGVSZXNvdXJjZUNhY2hlIG1fcmVtb3RlUmVzb3VyY2VDYWNoZTsKICAgICBSZWY8R1BVQ29u
bmVjdGlvblRvV2ViUHJvY2Vzcz4gbV9ncHVDb25uZWN0aW9uVG9XZWJQcm9jZXNzOworICAgIFJl
ZlB0cjxXZWJDb3JlOjpQcm9jZXNzSWRlbnRpdHk+IG1fcmVzb3VyY2VPd25lcjsKICAgICBSZW5k
ZXJpbmdCYWNrZW5kSWRlbnRpZmllciBtX3JlbmRlcmluZ0JhY2tlbmRJZGVudGlmaWVyOwogICAg
IElQQzo6U2VtYXBob3JlIG1fZ2V0UGl4ZWxCdWZmZXJTZW1hcGhvcmU7CiAgICAgUmVmUHRyPFNo
YXJlZE1lbW9yeT4gbV9nZXRQaXhlbEJ1ZmZlclNoYXJlZE1lbW9yeTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy93ZWJydGMvTGliV2ViUlRDQ29kZWNzUHJveHkubW0gYi9T
b3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mvd2VicnRjL0xpYldlYlJUQ0NvZGVjc1Byb3h5Lm1tCmlu
ZGV4IDEzM2UyNmU0NzRlMWQzMTkxNjNlNTU3MTk5MmQwYzBjNzE5ZGRlMTQuLjcwN2E2NWUyZTIy
NGM5YWQ3Y2YxNzQ2NWY0ZGMwYTQyMTM3MDJhNTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
R1BVUHJvY2Vzcy93ZWJydGMvTGliV2ViUlRDQ29kZWNzUHJveHkubW0KKysrIGIvU291cmNlL1dl
YktpdC9HUFVQcm9jZXNzL3dlYnJ0Yy9MaWJXZWJSVENDb2RlY3NQcm94eS5tbQpAQCAtNzcsMTQg
Kzc3LDExIEBAIHZvaWQgTGliV2ViUlRDQ29kZWNzUHJveHk6OmNsb3NlKCkKIHN0YXRpYyBGdW5j
dGlvbjx2b2lkKENWUGl4ZWxCdWZmZXJSZWYgcGl4ZWxCdWZmZXIsIHVpbnQzMl90IHRpbWVTdGFt
cE5zLCB1aW50MzJfdCB0aW1lU3RhbXApPiBjcmVhdGVEZWNvZGVyQ2FsbGJhY2soUlRDRGVjb2Rl
cklkZW50aWZpZXIgaWRlbnRpZmllciwgR1BVQ29ubmVjdGlvblRvV2ViUHJvY2VzcyYgZ3B1Q29u
bmVjdGlvblRvV2ViUHJvY2VzcykKIHsKICAgICByZXR1cm4gW2Nvbm5lY3Rpb24gPSBSZWYgeyBn
cHVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNvbm5lY3Rpb24oKSB9LAotI2lmIEhBVkUoSU9TVVJG
QUNFX1NFVF9PV05FUlNISVBfSURFTlRJVFkpCi0gICAgICAgIHRva2VuID0gZ3B1Q29ubmVjdGlv
blRvV2ViUHJvY2Vzcy53ZWJQcm9jZXNzSWRlbnRpdHlUb2tlbigpLAotI2VuZGlmCisgICAgICAg
IHJlc291cmNlT3duZXIgPSBncHVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLndlYlByb2Nlc3NJZGVu
dGl0eSgpLAogICAgICAgICBpZGVudGlmaWVyXShDVlBpeGVsQnVmZmVyUmVmIHBpeGVsQnVmZmVy
LCB1aW50MzJfdCB0aW1lU3RhbXBOcywgdWludDMyX3QgdGltZVN0YW1wKSB7CiAgICAgICAgIGlm
IChhdXRvIHNhbXBsZSA9IFdlYkNvcmU6OlJlbW90ZVZpZGVvU2FtcGxlOjpjcmVhdGUocGl4ZWxC
dWZmZXIsIE1lZGlhVGltZSh0aW1lU3RhbXBOcywgMSkpKSB7Ci0jaWYgSEFWRShJT1NVUkZBQ0Vf
U0VUX09XTkVSU0hJUF9JREVOVElUWSkKLSAgICAgICAgICAgIHNhbXBsZS0+c2V0T3duZXJzaGlw
SWRlbnRpdHkodG9rZW4pOwotI2VuZGlmCisgICAgICAgICAgICBpZiAocmVzb3VyY2VPd25lcikK
KyAgICAgICAgICAgICAgICBzYW1wbGUtPnNldE93bmVyc2hpcElkZW50aXR5KHJlc291cmNlT3du
ZXIuZ2V0KCkpOwogICAgICAgICAgICAgY29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6TGliV2Vi
UlRDQ29kZWNzOjpDb21wbGV0ZWREZWNvZGluZyB7IGlkZW50aWZpZXIsIHRpbWVTdGFtcCwgKnNh
bXBsZSB9LCAwKTsKICAgICAgICAgfQogICAgIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1NoYXJlZC9HUFVQcm9jZXNzQ29ubmVjdGlvblBhcmFtZXRlcnMuaCBiL1NvdXJjZS9XZWJLaXQv
U2hhcmVkL0dQVVByb2Nlc3NDb25uZWN0aW9uUGFyYW1ldGVycy5oCmluZGV4IDQxNTlkYzZlZDQ3
ZDZkYzE3M2U5MWI2ODMyYTFiYjFiYTU1ZjVlMTQuLmRkZmEyOWY1NjFhYWRkODA4OWJkYTY1M2I0
OGFmMjA5Nzg0MzAwZDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0dQVVByb2Nl
c3NDb25uZWN0aW9uUGFyYW1ldGVycy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0dQVVBy
b2Nlc3NDb25uZWN0aW9uUGFyYW1ldGVycy5oCkBAIC0yNywxNCArMjcsMTIgQEAKIAogI2lmIEVO
QUJMRShHUFVfUFJPQ0VTUykKIAotI2luY2x1ZGUgPHd0Zi9NYWNoU2VuZFJpZ2h0Lmg+CisjaW5j
bHVkZSA8V2ViQ29yZS9Qcm9jZXNzSWRlbnRpdHkuaD4KIAogbmFtZXNwYWNlIFdlYktpdCB7CiAK
IHN0cnVjdCBHUFVQcm9jZXNzQ29ubmVjdGlvblBhcmFtZXRlcnMgewotI2lmIEhBVkUoVEFTS19J
REVOVElUWV9UT0tFTikKLSAgICBNYWNoU2VuZFJpZ2h0IHdlYlByb2Nlc3NJZGVudGl0eVRva2Vu
OwotI2VuZGlmCisgICAgV2ViQ29yZTo6UHJvY2Vzc0lkZW50aXR5OjpIYW5kbGUgd2ViUHJvY2Vz
c0lkZW50aXR5SGFuZGxlOwogICAgIFZlY3RvcjxTdHJpbmc+IG92ZXJyaWRlTGFuZ3VhZ2VzOwog
I2lmIEVOQUJMRShJUENfVEVTVElOR19BUEkpCiAgICAgYm9vbCBpZ25vcmVJbnZhbGlkTWVzc2Fn
ZUZvclRlc3RpbmcgeyBmYWxzZSB9OwpAQCAtNDUsOSArNDMsNyBAQCBzdHJ1Y3QgR1BVUHJvY2Vz
c0Nvbm5lY3Rpb25QYXJhbWV0ZXJzIHsKIAogICAgIHZvaWQgZW5jb2RlKElQQzo6RW5jb2RlciYg
ZW5jb2RlcikgY29uc3QKICAgICB7Ci0jaWYgSEFWRShUQVNLX0lERU5USVRZX1RPS0VOKQotICAg
ICAgICBlbmNvZGVyIDw8IHdlYlByb2Nlc3NJZGVudGl0eVRva2VuOwotI2VuZGlmCisgICAgICAg
IGVuY29kZXIgPDwgd2ViUHJvY2Vzc0lkZW50aXR5SGFuZGxlOwogICAgICAgICBlbmNvZGVyIDw8
IG92ZXJyaWRlTGFuZ3VhZ2VzOwogI2lmIEVOQUJMRShJUENfVEVTVElOR19BUEkpCiAgICAgICAg
IGVuY29kZXIgPDwgaWdub3JlSW52YWxpZE1lc3NhZ2VGb3JUZXN0aW5nOwpAQCAtNTksMTIgKzU1
LDEwIEBAIHN0cnVjdCBHUFVQcm9jZXNzQ29ubmVjdGlvblBhcmFtZXRlcnMgewogCiAgICAgc3Rh
dGljIHN0ZDo6b3B0aW9uYWw8R1BVUHJvY2Vzc0Nvbm5lY3Rpb25QYXJhbWV0ZXJzPiBkZWNvZGUo
SVBDOjpEZWNvZGVyJiBkZWNvZGVyKQogICAgIHsKLSNpZiBIQVZFKFRBU0tfSURFTlRJVFlfVE9L
RU4pCi0gICAgICAgIHN0ZDo6b3B0aW9uYWw8TWFjaFNlbmRSaWdodD4gd2ViUHJvY2Vzc0lkZW50
aXR5VG9rZW47Ci0gICAgICAgIGRlY29kZXIgPj4gd2ViUHJvY2Vzc0lkZW50aXR5VG9rZW47Ci0g
ICAgICAgIGlmICghd2ViUHJvY2Vzc0lkZW50aXR5VG9rZW4pCisgICAgICAgIHN0ZDo6b3B0aW9u
YWw8V2ViQ29yZTo6UHJvY2Vzc0lkZW50aXR5OjpIYW5kbGU+IHdlYlByb2Nlc3NJZGVudGl0eUhh
bmRsZTsKKyAgICAgICAgZGVjb2RlciA+PiB3ZWJQcm9jZXNzSWRlbnRpdHlIYW5kbGU7CisgICAg
ICAgIGlmICghd2ViUHJvY2Vzc0lkZW50aXR5SGFuZGxlKQogICAgICAgICAgICAgcmV0dXJuIHN0
ZDo6bnVsbG9wdDsKLSNlbmRpZgogCiAgICAgICAgIHN0ZDo6b3B0aW9uYWw8VmVjdG9yPFN0cmlu
Zz4+IG92ZXJyaWRlTGFuZ3VhZ2VzOwogICAgICAgICBkZWNvZGVyID4+IG92ZXJyaWRlTGFuZ3Vh
Z2VzOwpAQCAtODUsOSArNzksNyBAQCBzdHJ1Y3QgR1BVUHJvY2Vzc0Nvbm5lY3Rpb25QYXJhbWV0
ZXJzIHsKICNlbmRpZgogCiAgICAgICAgIHJldHVybiBHUFVQcm9jZXNzQ29ubmVjdGlvblBhcmFt
ZXRlcnMgewotI2lmIEhBVkUoVEFTS19JREVOVElUWV9UT0tFTikKLSAgICAgICAgICAgIFdURk1v
dmUoKndlYlByb2Nlc3NJZGVudGl0eVRva2VuKSwKLSNlbmRpZgorICAgICAgICAgICAgV1RGTW92
ZSgqd2ViUHJvY2Vzc0lkZW50aXR5SGFuZGxlKSwKICAgICAgICAgICAgIFdURk1vdmUoKm92ZXJy
aWRlTGFuZ3VhZ2VzKSwKICNpZiBFTkFCTEUoSVBDX1RFU1RJTkdfQVBJKQogICAgICAgICAgICAg
Kmlnbm9yZUludmFsaWRNZXNzYWdlRm9yVGVzdGluZywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkuY3BwIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5j
cHAKaW5kZXggOTk2MjY4OTkwN2M2N2I1YzdhNTY0ZDgxNTMyNTFjZjU1MzQ3ZTViZC4uOGIxZjNh
MjY2NTZhYjA1ZjAxNzBkY2U2YmUyYzJlM2VmZGU1Mzk1OSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQ
cm94eS5jcHAKQEAgLTU3LDkgKzU3LDEwIEBAIGNsYXNzIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2Vy
UHJveHk6OlNvdXJjZVByb3h5CiAgICAgLCBwcml2YXRlIFJlYWx0aW1lTWVkaWFTb3VyY2U6OlZp
ZGVvU2FtcGxlT2JzZXJ2ZXIgewogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGlj
OgotICAgIFNvdXJjZVByb3h5KFJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIGlkLCBSZWY8
SVBDOjpDb25uZWN0aW9uPiYmIGNvbm5lY3Rpb24sIFJlZjxSZWFsdGltZU1lZGlhU291cmNlPiYm
IHNvdXJjZSkKKyAgICBTb3VyY2VQcm94eShSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciBp
ZCwgUmVmPElQQzo6Q29ubmVjdGlvbj4mJiBjb25uZWN0aW9uLCBSZWZQdHI8UHJvY2Vzc0lkZW50
aXR5PiYmIHJlc291cmNlT3duZXIsIFJlZjxSZWFsdGltZU1lZGlhU291cmNlPiYmIHNvdXJjZSkK
ICAgICAgICAgOiBtX2lkKGlkKQogICAgICAgICAsIG1fY29ubmVjdGlvbihXVEZNb3ZlKGNvbm5l
Y3Rpb24pKQorICAgICAgICAsIG1fcmVzb3VyY2VPd25lcihXVEZNb3ZlKHJlc291cmNlT3duZXIp
KQogICAgICAgICAsIG1fc291cmNlKFdURk1vdmUoc291cmNlKSkKICAgICB7CiAgICAgICAgIG1f
c291cmNlLT5hZGRPYnNlcnZlcigqdGhpcyk7CkBAIC0xMjUsOSArMTI2LDYgQEAgcHVibGljOgog
ICAgIH0KIAogICAgIHZvaWQgc2V0U2hvdWxkQXBwbHlSb3RhdGlvbihib29sIHNob3VsZEFwcGx5
Um90YXRpb24pIHsgbV9zaG91bGRBcHBseVJvdGF0aW9uID0gdHJ1ZTsgfQotI2lmIEhBVkUoSU9T
VVJGQUNFX1NFVF9PV05FUlNISVBfSURFTlRJVFkpCi0gICAgdm9pZCBzZXRXZWJQcm9jZXNzSWRl
bnRpdHlUb2tlbihzdGQ6Om9wdGlvbmFsPHRhc2tfaWRfdG9rZW5fdD4gdG9rZW4pIHsgbV93ZWJQ
cm9jZXNzSWRlbnRpdHlUb2tlbiA9IHRva2VuO30KLSNlbmRpZgogCiBwcml2YXRlOgogICAgIHZv
aWQgc291cmNlU3RvcHBlZCgpIGZpbmFsIHsKQEAgLTE4OCwxMCArMTg2LDggQEAgcHJpdmF0ZToK
ICAgICAgICAgfSBlbHNlCiAgICAgICAgICAgICByZW1vdGVTYW1wbGUgPSBSZW1vdGVWaWRlb1Nh
bXBsZTo6Y3JlYXRlKHNhbXBsZSk7CiAgICAgICAgIGlmIChyZW1vdGVTYW1wbGUpIHsKLSNpZiBI
QVZFKElPU1VSRkFDRV9TRVRfT1dORVJTSElQX0lERU5USVRZKQotICAgICAgICAgICAgaWYgKG1f
d2ViUHJvY2Vzc0lkZW50aXR5VG9rZW4pCi0gICAgICAgICAgICAgICAgcmVtb3RlU2FtcGxlLT5z
ZXRPd25lcnNoaXBJZGVudGl0eSgqbV93ZWJQcm9jZXNzSWRlbnRpdHlUb2tlbik7Ci0jZW5kaWYK
KyAgICAgICAgICAgIGlmIChtX3Jlc291cmNlT3duZXIpCisgICAgICAgICAgICAgICAgcmVtb3Rl
U2FtcGxlLT5zZXRPd25lcnNoaXBJZGVudGl0eShtX3Jlc291cmNlT3duZXIuZ2V0KCkpOwogICAg
ICAgICAgICAgbV9jb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpSZW1vdGVDYXB0dXJlU2FtcGxl
TWFuYWdlcjo6VmlkZW9TYW1wbGVBdmFpbGFibGUobV9pZCwgV1RGTW92ZSgqcmVtb3RlU2FtcGxl
KSksIDApOwogICAgICAgICB9CiAgICAgfQpAQCAtMjQ0LDYgKzI0MCw3IEBAIHByaXZhdGU6CiAg
ICAgUmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgbV9pZDsKICAgICBXZWFrUHRyPFBsYXRm
b3JtTWVkaWFTZXNzaW9uTWFuYWdlcj4gbV9zZXNzaW9uTWFuYWdlcjsKICAgICBSZWY8SVBDOjpD
b25uZWN0aW9uPiBtX2Nvbm5lY3Rpb247CisgICAgUmVmUHRyPFByb2Nlc3NJZGVudGl0eT4gbV9y
ZXNvdXJjZU93bmVyOwogICAgIFJlZjxSZWFsdGltZU1lZGlhU291cmNlPiBtX3NvdXJjZTsKICAg
ICBzdGQ6OnVuaXF1ZV9wdHI8Q0FSaW5nQnVmZmVyPiBtX3JpbmdCdWZmZXI7CiAgICAgQ0FBdWRp
b1N0cmVhbURlc2NyaXB0aW9uIG1fZGVzY3JpcHRpb24geyB9OwpAQCAtMjU3LDkgKzI1NCw2IEBA
IHByaXZhdGU6CiAgICAgc2l6ZV90IG1fZnJhbWVDaHVua1NpemUgeyAwIH07CiAgICAgTWVkaWFU
aW1lIG1fc3RhcnRUaW1lOwogICAgIGJvb2wgbV9zaG91bGRSZXNldCB7IGZhbHNlIH07Ci0jaWYg
SEFWRShUQVNLX0lERU5USVRZX1RPS0VOKQotICAgIHN0ZDo6b3B0aW9uYWw8dGFza19pZF90b2tl
bl90PiBtX3dlYlByb2Nlc3NJZGVudGl0eVRva2VuOwotI2VuZGlmCiB9OwogCiBVc2VyTWVkaWFD
YXB0dXJlTWFuYWdlclByb3h5OjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5KFVuaXF1ZVJl
ZjxDb25uZWN0aW9uUHJveHk+JiYgY29ubmVjdGlvblByb3h5KQpAQCAtMzIzLDEyICszMTcsNyBA
QCB2b2lkIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6OmNyZWF0ZU1lZGlhU291cmNlRm9y
Q2FwdHVyZURldmljZVdpdGhDb25zdHJhaQogICAgICAgICB9CiAKICAgICAgICAgQVNTRVJUKCFt
X3Byb3hpZXMuY29udGFpbnMoaWQpKTsKLSAgICAgICAgYXV0byBwcm94eSA9IG1ha2VVbmlxdWU8
U291cmNlUHJveHk+KGlkLCBtX2Nvbm5lY3Rpb25Qcm94eS0+Y29ubmVjdGlvbigpLCBXVEZNb3Zl
KHNvdXJjZSkpOwotI2lmIEhBVkUoSU9TVVJGQUNFX1NFVF9PV05FUlNISVBfSURFTlRJVFkpCi0g
ICAgICAgIGlmIChkZXZpY2UudHlwZSgpICE9IFdlYkNvcmU6OkNhcHR1cmVEZXZpY2U6OkRldmlj
ZVR5cGU6Ok1pY3JvcGhvbmUpCi0gICAgICAgICAgICBwcm94eS0+c2V0V2ViUHJvY2Vzc0lkZW50
aXR5VG9rZW4obV9jb25uZWN0aW9uUHJveHktPndlYlByb2Nlc3NJZGVudGl0eVRva2VuKCkpOwot
I2VuZGlmCi0KKyAgICAgICAgYXV0byBwcm94eSA9IG1ha2VVbmlxdWU8U291cmNlUHJveHk+KGlk
LCBtX2Nvbm5lY3Rpb25Qcm94eS0+Y29ubmVjdGlvbigpLCBtX2Nvbm5lY3Rpb25Qcm94eS0+cmVz
b3VyY2VPd25lcigpLCBXVEZNb3ZlKHNvdXJjZSkpOwogICAgICAgICBtX3Byb3hpZXMuYWRkKGlk
LCBXVEZNb3ZlKHByb3h5KSk7CiAgICAgfSBlbHNlCiAgICAgICAgIGludmFsaWRDb25zdHJhaW50
cyA9IFdURk1vdmUoc291cmNlT3JFcnJvci5lcnJvck1lc3NhZ2UpOwpAQCAtMzkzLDcgKzM4Miw3
IEBAIHZvaWQgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6Y2xvbmUoUmVhbHRpbWVNZWRp
YVNvdXJjZUlkZW50aWZpZXIgY2xvbmVkSUQsCiAgICAgTUVTU0FHRV9DSEVDSyhtX3Byb3hpZXMu
Y29udGFpbnMoY2xvbmVkSUQpKTsKICAgICBNRVNTQUdFX0NIRUNLKCFtX3Byb3hpZXMuY29udGFp
bnMobmV3U291cmNlSUQpKTsKICAgICBpZiAoYXV0byogcHJveHkgPSBtX3Byb3hpZXMuZ2V0KGNs
b25lZElEKSkKLSAgICAgICAgbV9wcm94aWVzLmFkZChuZXdTb3VyY2VJRCwgbWFrZVVuaXF1ZTxT
b3VyY2VQcm94eT4obmV3U291cmNlSUQsIG1fY29ubmVjdGlvblByb3h5LT5jb25uZWN0aW9uKCks
IHByb3h5LT5zb3VyY2UoKS5jbG9uZSgpKSk7CisgICAgICAgIG1fcHJveGllcy5hZGQobmV3U291
cmNlSUQsIG1ha2VVbmlxdWU8U291cmNlUHJveHk+KG5ld1NvdXJjZUlELCBtX2Nvbm5lY3Rpb25Q
cm94eS0+Y29ubmVjdGlvbigpLCBtX2Nvbm5lY3Rpb25Qcm94eS0+cmVzb3VyY2VPd25lcigpLCBw
cm94eS0+c291cmNlKCkuY2xvbmUoKSkpOwogfQogCiB2b2lkIFVzZXJNZWRpYUNhcHR1cmVNYW5h
Z2VyUHJveHk6OnJlcXVlc3RUb0VuZChSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciBzb3Vy
Y2VJRCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRp
YUNhcHR1cmVNYW5hZ2VyUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1Vz
ZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkuaAppbmRleCA3YWZmNDI0ZDU0MGQzYjFmZGVjZGFi
Yzg2NTVjM2M1NmM1MGExMGU1Li5jNTg2Y2UzZjNkMTJlNzhlMjM3MzJhZTEwY2M4OWIyMzgwNGIy
YmNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFD
YXB0dXJlTWFuYWdlclByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2Ev
VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5oCkBAIC0zMiw2ICszMiw3IEBACiAjaW5jbHVk
ZSAiVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIuaCIKICNpbmNsdWRlIDxXZWJDb3JlL0NhcHR1cmVE
ZXZpY2UuaD4KICNpbmNsdWRlIDxXZWJDb3JlL09yaWVudGF0aW9uTm90aWZpZXIuaD4KKyNpbmNs
dWRlIDxXZWJDb3JlL1Byb2Nlc3NJZGVudGl0eS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUmVhbHRp
bWVNZWRpYVNvdXJjZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUmVhbHRpbWVNZWRpYVNvdXJjZUlk
ZW50aWZpZXIuaD4KICNpbmNsdWRlIDxwYWwvc3BpL2NvY29hL1RDQ1NQSS5oPgpAQCAtNTksOSAr
NjAsNyBAQCBwdWJsaWM6CiAgICAgICAgIHZpcnR1YWwgYm9vbCB3aWxsU3RhcnRDYXB0dXJlKFdl
YkNvcmU6OkNhcHR1cmVEZXZpY2U6OkRldmljZVR5cGUpIGNvbnN0ID0gMDsKICAgICAgICAgdmly
dHVhbCBMb2dnZXImIGxvZ2dlcigpID0gMDsKICAgICAgICAgdmlydHVhbCBib29sIHNldENhcHR1
cmVBdHRyaWJ1dGlvblN0cmluZygpIHsgcmV0dXJuIHRydWU7IH0KLSNpZiBIQVZFKElPU1VSRkFD
RV9TRVRfT1dORVJTSElQX0lERU5USVRZKQotICAgICAgICB2aXJ0dWFsIHN0ZDo6b3B0aW9uYWw8
dGFza19pZF90b2tlbl90PiB3ZWJQcm9jZXNzSWRlbnRpdHlUb2tlbigpIGNvbnN0IHsgcmV0dXJu
IHsgfTsgfTsKLSNlbmRpZgorICAgICAgICB2aXJ0dWFsIFJlZlB0cjxXZWJDb3JlOjpQcm9jZXNz
SWRlbnRpdHk+IHJlc291cmNlT3duZXIoKSBjb25zdCB7IHJldHVybiBudWxscHRyOyB9OwogI2lm
IEVOQUJMRShBUFBfUFJJVkFDWV9SRVBPUlQpCiAgICAgICAgIHZpcnR1YWwgdm9pZCBzZXRUQ0NJ
ZGVudGl0eSgpIHsgfQogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvR1BVL2dyYXBoaWNzL2NvY29hL0ltYWdlQnVmZmVyU2hhcmVhYmxlTWFwcGVkSU9TdXJmYWNl
QmFja2VuZC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL2NvY29h
L0ltYWdlQnVmZmVyU2hhcmVhYmxlTWFwcGVkSU9TdXJmYWNlQmFja2VuZC5jcHAKaW5kZXggYWZk
MmM3YzA1Y2ZhZmQxMzk5MzQ0ZjVjNmE3NjRlNDg4MGQyOGJkYS4uMTEzZWFmOTJmODBmNTM4NjYw
ZGZiYjQwNjBjM2E3Yzg4OGY2OTI1YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL0dQVS9ncmFwaGljcy9jb2NvYS9JbWFnZUJ1ZmZlclNoYXJlYWJsZU1hcHBlZElPU3VyZmFj
ZUJhY2tlbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3Mv
Y29jb2EvSW1hZ2VCdWZmZXJTaGFyZWFibGVNYXBwZWRJT1N1cmZhY2VCYWNrZW5kLmNwcApAQCAt
NzcsMTMgKzc3LDExIEBAIEltYWdlQnVmZmVyQmFja2VuZEhhbmRsZSBJbWFnZUJ1ZmZlclNoYXJl
YWJsZU1hcHBlZElPU3VyZmFjZUJhY2tlbmQ6OmNyZWF0ZUltYWdlCiAgICAgcmV0dXJuIEltYWdl
QnVmZmVyQmFja2VuZEhhbmRsZShtX3N1cmZhY2UtPmNyZWF0ZVNlbmRSaWdodCgpKTsKIH0KIAot
I2lmIEhBVkUoSU9TVVJGQUNFX1NFVF9PV05FUlNISVBfSURFTlRJVFkpCi12b2lkIEltYWdlQnVm
ZmVyU2hhcmVhYmxlTWFwcGVkSU9TdXJmYWNlQmFja2VuZDo6c2V0UHJvY2Vzc093bmVyc2hpcCh0
YXNrX2lkX3Rva2VuX3QgcHJvY2Vzc0lkZW50aXR5VG9rZW4pCit2b2lkIEltYWdlQnVmZmVyU2hh
cmVhYmxlTWFwcGVkSU9TdXJmYWNlQmFja2VuZDo6c2V0T3duZXJzaGlwSWRlbnRpdHkoV2ViQ29y
ZTo6UHJvY2Vzc0lkZW50aXR5KiByZXNvdXJjZU93bmVyKQogewogICAgIEFTU0VSVChzdXJmYWNl
KCkpOwotICAgIHN1cmZhY2UoKS0+c2V0T3duZXJzaGlwSWRlbnRpdHkocHJvY2Vzc0lkZW50aXR5
VG9rZW4pOworICAgIHN1cmZhY2UoKS0+c2V0T3duZXJzaGlwSWRlbnRpdHkocmVzb3VyY2VPd25l
cik7CiB9Ci0jZW5kaWYKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvY29jb2EvSW1hZ2VCdWZmZXJTaGFy
ZWFibGVNYXBwZWRJT1N1cmZhY2VCYWNrZW5kLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
R1BVL2dyYXBoaWNzL2NvY29hL0ltYWdlQnVmZmVyU2hhcmVhYmxlTWFwcGVkSU9TdXJmYWNlQmFj
a2VuZC5oCmluZGV4IGUxNGE1NDBlY2RkZDQ3MTE5MDhhN2MxNzFjM2EyNWViZmQ4MDhkYmUuLmI5
NzYzMjIwMzJlNmZkMWEzMGI5YTI0NGZmODM4OTY2MDk1NjQ3YzEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvY29jb2EvSW1hZ2VCdWZmZXJTaGFyZWFi
bGVNYXBwZWRJT1N1cmZhY2VCYWNrZW5kLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L0dQVS9ncmFwaGljcy9jb2NvYS9JbWFnZUJ1ZmZlclNoYXJlYWJsZU1hcHBlZElPU3VyZmFjZUJh
Y2tlbmQuaApAQCAtMzEsNiArMzEsMTAgQEAKICNpbmNsdWRlIDxXZWJDb3JlL0ltYWdlQnVmZmVy
SU9TdXJmYWNlQmFja2VuZC5oPgogI2luY2x1ZGUgPHd0Zi9Jc29NYWxsb2MuaD4KIAorbmFtZXNw
YWNlIFdlYkNvcmUgeworY2xhc3MgUHJvY2Vzc0lkZW50aXR5OworfQorCiBuYW1lc3BhY2UgV2Vi
S2l0IHsKIAogY2xhc3MgU2hhcmVhYmxlQml0bWFwOwpAQCAtNDYsOSArNTAsNyBAQCBwdWJsaWM6
CiAKICAgICBJbWFnZUJ1ZmZlckJhY2tlbmRIYW5kbGUgY3JlYXRlSW1hZ2VCdWZmZXJCYWNrZW5k
SGFuZGxlKCkgY29uc3Q7CiAKLSNpZiBIQVZFKElPU1VSRkFDRV9TRVRfT1dORVJTSElQX0lERU5U
SVRZKQotICAgIHZvaWQgc2V0UHJvY2Vzc093bmVyc2hpcCh0YXNrX2lkX3Rva2VuX3QpOwotI2Vu
ZGlmCisgICAgdm9pZCBzZXRPd25lcnNoaXBJZGVudGl0eShXZWJDb3JlOjpQcm9jZXNzSWRlbnRp
dHkqIHJlc291cmNlT3duZXIpOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvV2ViUHJvY2Vzc0NvY29hLm1tIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1dlYlByb2Nlc3NDb2NvYS5tbQppbmRleCAw
MzRlMmI0OGFhMDE1YWY3Y2VkNzY2ZGU5YWNlODI4ZGVkMTIyNjQ5Li42NDI1ZjM5OTY1N2QwMDNi
MGZhZTI3ZDZhNWEzMjRkMWU0Y2ExZmY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvY29jb2EvV2ViUHJvY2Vzc0NvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9jb2NvYS9XZWJQcm9jZXNzQ29jb2EubW0KQEAgLTEyNDIsMTQgKzEyNDIsNyBAQCB2b2lk
IFdlYlByb2Nlc3M6OndhaXRGb3JQZW5kaW5nUGFzdGVib2FyZFdyaXRlc1RvRmluaXNoKGNvbnN0
IFN0cmluZyYgcGFzdGVib2FyZAogI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKIHZvaWQgV2ViUHJv
Y2Vzczo6cGxhdGZvcm1Jbml0aWFsaXplR1BVUHJvY2Vzc0Nvbm5lY3Rpb25QYXJhbWV0ZXJzKEdQ
VVByb2Nlc3NDb25uZWN0aW9uUGFyYW1ldGVycyYgcGFyYW1ldGVycykKIHsKLSNpZiBIQVZFKFRB
U0tfSURFTlRJVFlfVE9LRU4pCi0gICAgdGFza19pZF90b2tlbl90IGlkZW50aXR5VG9rZW47Ci0g
ICAga2Vybl9yZXR1cm5fdCBrciA9IHRhc2tfY3JlYXRlX2lkZW50aXR5X3Rva2VuKG1hY2hfdGFz
a19zZWxmKCksICZpZGVudGl0eVRva2VuKTsKLSAgICBpZiAoa3IgPT0gS0VSTl9TVUNDRVNTKQot
ICAgICAgICBwYXJhbWV0ZXJzLndlYlByb2Nlc3NJZGVudGl0eVRva2VuID0gTWFjaFNlbmRSaWdo
dDo6YWRvcHQoaWRlbnRpdHlUb2tlbik7Ci0gICAgZWxzZQotICAgICAgICBSRUxFQVNFX0xPR19F
UlJPUihQcm9jZXNzLCAiQ2FsbCB0byB0YXNrX2NyZWF0ZV9pZGVudGl0eV90b2tlbigpIGZhaWxl
ZDogJXtwcml2YXRlfXMgKCV4KSIsIG1hY2hfZXJyb3Jfc3RyaW5nKGtyKSwga3IpOwotI2VuZGlm
CisgICAgcGFyYW1ldGVycy53ZWJQcm9jZXNzSWRlbnRpdHlIYW5kbGUgPSBQcm9jZXNzSWRlbnRp
dHk6OmhhbmRsZUZvckN1cnJlbnRQcm9jZXNzKCk7CiAKICAgICBwYXJhbWV0ZXJzLm92ZXJyaWRl
TGFuZ3VhZ2VzID0gdXNlclByZWZlcnJlZExhbmd1YWdlc092ZXJyaWRlKCk7CiB9CmRpZmYgLS1n
aXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggYTA0MDhlMzAxZjAw
N2YyNmE1MDZjYjkyNGY0NTYwODU4YmY4MTk5MC4uZDY3MTRkODA1ZGUzZTFkYmY4ZTkxMGFmYjcz
MTFkNjE4NDkyYmEzYiAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0No
YW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDIxLTExLTExICBLaW1tbyBLaW5udW5lbiAgPGtr
aW5udW5lbkBhcHBsZS5jb20+CisKKyAgICAgICAgSU9TdXJmYWNlIG1lbW9yeSBhdHRyaWJ1dGlv
biBpcyBoYXJkIHRvIHVzZSBpbiBjb25zdHJ1Y3RvcnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMjk4OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIFVwZGF0ZSBjb25zdHJ1Y3RvciBjYWxsaW5nIGJhc2Ug
Y2xhc3MgY29uc3RydWN0b3IuCisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNv
cmUvY29jb2EvVGVzdEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMQ29jb2EubW06CisgICAgICAgIChU
ZXN0V2ViS2l0QVBJOjpXZWJDb3JlOjpUZXN0ZWRHcmFwaGljc0NvbnRleHRHTE9wZW5HTDo6Y3Jl
YXRlKToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OldlYkNvcmU6OlRlc3RlZEdyYXBoaWNzQ29u
dGV4dEdMT3BlbkdMOjpUZXN0ZWRHcmFwaGljc0NvbnRleHRHTE9wZW5HTCk6CisKIDIwMjEtMTEt
MTAgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBXZSBzaG91bGQg
bm90IGtpbGwgYWxsIFdlYkNvbnRlbnQgcHJvY2Vzc2VzIHdoZW5ldmVyIHRoZSBXZWJBdXRobiBw
cm9jZXNzIGNyYXNoZXMKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
Q29yZS9jb2NvYS9UZXN0R3JhcGhpY3NDb250ZXh0R0xPcGVuR0xDb2NvYS5tbSBiL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9jb2NvYS9UZXN0R3JhcGhpY3NDb250ZXh0R0xPcGVu
R0xDb2NvYS5tbQppbmRleCA5MTdkMmU4MTYwYTUzMmJmNjY3NGE0MjA1NTdlMjRkNWFiYTc4M2Y2
Li44YzhlYThmZDhiZTMxYjBkZmNhODA3ZWI2NWQwZTI3MTgxYjhkZDljIDEwMDY0NAotLS0gYS9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvY29jb2EvVGVzdEdyYXBoaWNzQ29udGV4
dEdMT3BlbkdMQ29jb2EubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3Jl
L2NvY29hL1Rlc3RHcmFwaGljc0NvbnRleHRHTE9wZW5HTENvY29hLm1tCkBAIC0zOSwxMiArMzks
MTIgQEAgY2xhc3MgVGVzdGVkR3JhcGhpY3NDb250ZXh0R0xPcGVuR0wgOiBwdWJsaWMgR3JhcGhp
Y3NDb250ZXh0R0xPcGVuR0wgewogcHVibGljOgogICAgIHN0YXRpYyBSZWZQdHI8VGVzdGVkR3Jh
cGhpY3NDb250ZXh0R0xPcGVuR0w+IGNyZWF0ZShHcmFwaGljc0NvbnRleHRHTEF0dHJpYnV0ZXMg
YXR0cmlidXRlcykKICAgICB7Ci0gICAgICAgIGF1dG8gY29udGV4dCA9IGFkb3B0UmVmKCpuZXcg
VGVzdGVkR3JhcGhpY3NDb250ZXh0R0xPcGVuR0woV1RGTW92ZShhdHRyaWJ1dGVzKSkpOworICAg
ICAgICBhdXRvIGNvbnRleHQgPSBhZG9wdFJlZigqbmV3IFRlc3RlZEdyYXBoaWNzQ29udGV4dEdM
T3BlbkdMKFdURk1vdmUoYXR0cmlidXRlcyksIHsgfSkpOwogICAgICAgICByZXR1cm4gY29udGV4
dDsKICAgICB9CiBwcml2YXRlOgotICAgIFRlc3RlZEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMKEdy
YXBoaWNzQ29udGV4dEdMQXR0cmlidXRlcyBhdHRyaWJ1dGVzKQotICAgICAgICA6IEdyYXBoaWNz
Q29udGV4dEdMT3BlbkdMKFdURk1vdmUoYXR0cmlidXRlcykpCisgICAgVGVzdGVkR3JhcGhpY3ND
b250ZXh0R0xPcGVuR0woR3JhcGhpY3NDb250ZXh0R0xBdHRyaWJ1dGVzIGF0dHJpYnV0ZXMsIFJl
ZlB0cjxQcm9jZXNzSWRlbnRpdHk+IHJlc291cmNlT3duZXIpCisgICAgICAgIDogR3JhcGhpY3ND
b250ZXh0R0xPcGVuR0woV1RGTW92ZShhdHRyaWJ1dGVzKSwgV1RGTW92ZShyZXNvdXJjZU93bmVy
KSkKICAgICB7CiAgICAgfQogfTsK
</data>
<flag name="commit-queue"
          id="468770"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>443931</attachid>
            <date>2021-11-11 03:26:27 -0800</date>
            <delta_ts>2021-11-11 03:44:48 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-232988-20211111132625.patch</filename>
            <type>text/plain</type>
            <size>52853</size>
            <attacher name="Kimmo Kinnunen">kkinnunen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg1NjIyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzEzMjQzOGVjMDliZTE4
MTE0NjI5NmIyYmYyMmViYWRlZWIxY2VkNi4uYmVlZmIyMDQ5MzlkYzI0ZGVhMzJjNzYyMmYyZDE2
NGNmYTUyYzRlZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU3IEBACisyMDIxLTExLTExICBLaW1t
byBLaW5udW5lbiAgPGtraW5udW5lbkBhcHBsZS5jb20+CisKKyAgICAgICAgSU9TdXJmYWNlIG1l
bW9yeSBhdHRyaWJ1dGlvbiBpcyBoYXJkIHRvIHVzZSBpbiBjb25zdHJ1Y3RvcnMKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMjk4OAorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBXZWJDb3JlOjpQcm9j
ZXNzSWRlbnRpdHkgdHlwZSB0aGF0IGNhbiBiZSB1c2VkIHRvIGNvbW11bmljYXRlIG1lbW9yeSBh
dHRyaWJ1dGlvbi4KKyAgICAgICAgRm9yIG5vbi1Db2NvYSBwb3J0cywgdGhpcyBpcyBudWxscHRy
LgorICAgICAgICBUaGlzIGlzIHVzZWQgaW4gV2ViQ29yZSB0byBzZXQgdGhlIG1lbW9yeSBhdHRy
aWJ1dGlvbiBvZiBJT1N1cmZhY2UgYW5kIG9iamVjdHMKKyAgICAgICAgdGhhdCBob2xkIElPU3Vy
ZmFjZXMuCisgICAgICAgIFRoaXMgaXMgaW5zdGFudGlhdGVkIGluIFdlYktpdC4KKyAgICAgICAg
Q3VycmVudGx5IHRoZSBvbmx5IHVzZWZ1bCB3YXkgdG8gaW5zdGFudGlhdGUgUHJvY2Vzc0lkZW50
aXR5IGlzIGJ5IHJlY2VpdmluZworICAgICAgICB0aGUgUHJvY2Vzc0lkZW50aXR5OjpIYW5kbGUg
YXMgYSBtZXNzYWdlIGFuZCBjcmVhdGUgaXQgdGhpcyB3YXkgZm9yIHRoZQorICAgICAgICBzZW5k
ZXIgcHJvY2Vzcy4KKworICAgICAgICBObyBuZXcgdGVzdHMsIHJlZmFjdG9yLgorCisgICAgICAg
ICogSGVhZGVycy5jbWFrZToKKyAgICAgICAgKiBTb3VyY2VzLnR4dDoKKyAgICAgICAgKiBXZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogcGxhdGZvcm0vTG9nZ2lu
Zy5oOgorICAgICAgICBBZGQgV2ViQ29yZSBQcm9jZXNzIGxvZyB0YWcgc2luY2UgdGhlIGNvZGUg
bW92ZWQgZnJvbSBXZWJLaXQgdG8gUHJvY2Vzc0lkZW50aXR5CisgICAgICAgIHVzZWQgdGhhdCB0
YWcgdG8gbG9nLgorICAgICAgICAqIHBsYXRmb3JtL1Byb2Nlc3NJZGVudGl0eS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpQcm9jZXNzSWRlbnRpdHk6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3Jl
OjpQcm9jZXNzSWRlbnRpdHk6OlByb2Nlc3NJZGVudGl0eSk6CisgICAgICAgIChXZWJDb3JlOjpQ
cm9jZXNzSWRlbnRpdHk6OmhhbmRsZUZvckN1cnJlbnRQcm9jZXNzKToKKyAgICAgICAgKFdlYkNv
cmU6OlByb2Nlc3NJZGVudGl0eTo6aGFuZGxlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlBy
b2Nlc3NJZGVudGl0eTo6dGFza0lkVG9rZW4gY29uc3QpOgorICAgICAgICAqIHBsYXRmb3JtL1By
b2Nlc3NJZGVudGl0eS5oOgorICAgICAgICBBZGQgdGhlIFByb2Nlc3NJZGVudGl0eSB0eXBlIHRo
YXQgY2FuIGJlIHVzZWQgdG8gY29tbXVuaWNhdGUgbWVtb3J5IGF0dHJpYnV0aW9uLgorCisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvUmVtb3RlVmlkZW9TYW1wbGUuaDoKKyAgICAgICAgKFdl
YkNvcmU6OlJlbW90ZVZpZGVvU2FtcGxlOjpzZXRPd25lcnNoaXBJZGVudGl0eSk6CisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvY2cvSW1hZ2VCdWZmZXJVdGlsaXRpZXNDRy5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjplbmNvZGUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NvY29h
L0dyYXBoaWNzQ29udGV4dEdMT3BlbkdMQ29jb2EubW06CisgICAgICAgIChXZWJDb3JlOjpHcmFw
aGljc0NvbnRleHRHTE9wZW5HTDo6R3JhcGhpY3NDb250ZXh0R0xPcGVuR0wpOgorICAgICAgICAo
V2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0R0xPcGVuR0w6OmFsbG9jYXRlQW5kQmluZERpc3BsYXlC
dWZmZXJCYWNraW5nKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9JT1N1cmZh
Y2UuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9JT1N1cmZhY2UubW06Cisg
ICAgICAgIChXZWJDb3JlOjpJT1N1cmZhY2U6OnNldE93bmVyc2hpcElkZW50aXR5KToKKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9XZWJQcm9jZXNzR3JhcGhpY3NDb250ZXh0R0xP
cGVuR0xDb2NvYS5tbToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR3JhcGhp
Y3NDb250ZXh0R0xPcGVuR0wuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAv
R3JhcGhpY3NDb250ZXh0R0xUZXh0dXJlTWFwcGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okdy
YXBoaWNzQ29udGV4dEdMT3BlbkdMOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhp
Y3NDb250ZXh0R0xPcGVuR0w6OkdyYXBoaWNzQ29udGV4dEdMT3BlbkdMKToKKyAgICAgICAgQWRk
IGFuIGV4YW1wbGUgdXNlIHdoZXJlIHRoZSBjb25zdHJ1Y3RvciB0YWtlcyB0aGUgbWVtb3J5IGF0
dHJpYnV0aW9uIHRva2VuLgorICAgICAgICBUaGlzIG1heSBiZSBuZWVkZWQgaW4gdGhlIGZ1dHVy
ZSB3aGVuIHRoZSB0b2tlbiBpcyB1c2VkIGFzIGEgcGFyYW1ldGVyIGluCisgICAgICAgIHRoZSBB
TkdMRSBjb250ZXh0IGNyZWF0aW9uLgorICAgICAgICBVc2UgdGhlIHRva2VuIGluIGNyZWF0aW5n
IHRoZSBJT1N1cmZhY2UuIFRoaXMgZml4ZXMgYSBidWcgd2hlcmUgV2ViR0wKKyAgICAgICAgYmFj
ayBidWZmZXJzIHdvdWxkIG5vdCBiZSBhdHRyaWJ1dGVkIHVudGlsIHRoZXkgd2VyZSBzZW50IHRv
IFdQLgorCiAyMDIxLTExLTExICBBbnR0aSBLb2l2aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KIAog
ICAgICAgICBVc2UgbmFycm93ZXIgdHlwZXMgZm9yIHN0eWxlIHNjb3BlIG9yZGluYWwgYW5kIGNh
c2NhZGUgbGF5ZXIgcHJpb3JpdHkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9n
IGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggNGUxNTE5NmQ4Y2ZkZDc0MDI0YmE3YWRm
NmNmZDU4N2VjZDVkZDQ4Mi4uNmEyODQwOWVkZjA2Zjk2ZDM0OTljMzA1NTNiZjViNmJlYjBlMGRj
MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktp
dC9DaGFuZ2VMb2cKQEAgLTEsMyArMSw1NCBAQAorMjAyMS0xMS0xMSAgS2ltbW8gS2lubnVuZW4g
IDxra2lubnVuZW5AYXBwbGUuY29tPgorCisgICAgICAgIElPU3VyZmFjZSBtZW1vcnkgYXR0cmli
dXRpb24gaXMgaGFyZCB0byB1c2UgaW4gY29uc3RydWN0b3JzCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzI5ODgKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZW1vdmUgaWZkZWZzIGFuZCBkaXJlY3QgdXNl
IG9mIHRhc2tfaWRfdG9rZW5fdC4KKyAgICAgICAgSW5zdGVhZCwgdXNlIFdlYkNvcmU6OlByb2Nl
c3NJZGVudGlmaWVyLiBUaGlzIHdheSB0aGUKKyAgICAgICAgY3Jvc3MtcGxhdGZvcm0gY29kZSBp
cyBlYXNpZXIgdG8gYXV0aG9yLgorCisgICAgICAgICogR1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9u
VG9XZWJQcm9jZXNzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6R1BVQ29ubmVjdGlvblRvV2ViUHJv
Y2Vzczo6R1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcyk6CisgICAgICAgICogR1BVUHJvY2Vzcy9H
UFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmg6CisgICAgICAgIChXZWJLaXQ6OkdQVUNvbm5lY3Rp
b25Ub1dlYlByb2Nlc3M6OndlYlByb2Nlc3NJZGVudGl0eSBjb25zdCk6CisgICAgICAgIChXZWJL
aXQ6OkdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OndlYlByb2Nlc3NJZGVudGl0eVRva2VuIGNv
bnN0KTogRGVsZXRlZC4KKyAgICAgICAgKiBHUFVQcm9jZXNzL2dyYXBoaWNzL0dQVVByb2Nlc3NH
cmFwaGljc0NvbnRleHRHTC5oOgorICAgICAgICAqIEdQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3Rl
R3JhcGhpY3NDb250ZXh0R0xDb2NvYS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUdyYXBo
aWNzQ29udGV4dEdMQ29jb2E6OlJlbW90ZUdyYXBoaWNzQ29udGV4dEdMQ29jb2EpOgorICAgICAg
ICAoV2ViS2l0OjpSZW1vdGVHcmFwaGljc0NvbnRleHRHTENvY29hOjpwbGF0Zm9ybVdvcmtRdWV1
ZUluaXRpYWxpemUpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVHcmFwaGljc0NvbnRleHRHTENv
Y29hOjpwcmVwYXJlRm9yRGlzcGxheSk6CisgICAgICAgICogR1BVUHJvY2Vzcy9ncmFwaGljcy9S
ZW1vdGVJbWFnZUJ1ZmZlci5oOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVJbWFnZUJ1ZmZlcjo6
c2V0T3duZXJzaGlwSWRlbnRpdHkpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVJbWFnZUJ1ZmZl
cjo6c2V0UHJvY2Vzc093bmVyc2hpcCk6IERlbGV0ZWQuCisgICAgICAgICogR1BVUHJvY2Vzcy9n
cmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmNwcDoKKyAgICAgICAgKFdlYktpdDo6UmVt
b3RlUmVuZGVyaW5nQmFja2VuZDo6UmVtb3RlUmVuZGVyaW5nQmFja2VuZCk6CisgICAgICAgIChX
ZWJLaXQ6OlJlbW90ZVJlbmRlcmluZ0JhY2tlbmQ6OmNyZWF0ZUltYWdlQnVmZmVyV2l0aFF1YWxp
ZmllZElkZW50aWZpZXIpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZW5kZXJpbmdCYWNrZW5k
OjpnZXREYXRhVVJMRm9ySW1hZ2VCdWZmZXJXaXRoUXVhbGlmaWVkSWRlbnRpZmllcik6CisgICAg
ICAgICogR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmg6CisgICAg
ICAgICogR1BVUHJvY2Vzcy93ZWJydGMvTGliV2ViUlRDQ29kZWNzUHJveHkubW06CisgICAgICAg
IChXZWJLaXQ6OkZ1bmN0aW9uPHZvaWQpOgorICAgICAgICAqIFNoYXJlZC9HUFVQcm9jZXNzQ29u
bmVjdGlvblBhcmFtZXRlcnMuaDoKKyAgICAgICAgKFdlYktpdDo6R1BVUHJvY2Vzc0Nvbm5lY3Rp
b25QYXJhbWV0ZXJzOjplbmNvZGUgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpHUFVQcm9jZXNz
Q29ubmVjdGlvblBhcmFtZXRlcnM6OmRlY29kZSk6CisgICAgICAgICogU2hhcmVkL1dlYkNvcmVB
cmd1bWVudENvZGVycy5jcHA6CisgICAgICAgICogU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVy
cy5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclBy
b3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6
U291cmNlUHJveHk6OlNvdXJjZVByb3h5KToKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhQ2Fw
dHVyZU1hbmFnZXJQcm94eTo6U291cmNlUHJveHk6OnNldFNob3VsZEFwcGx5Um90YXRpb24pOgor
ICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OjpjcmVhdGVNZWRp
YVNvdXJjZUZvckNhcHR1cmVEZXZpY2VXaXRoQ29uc3RyYWludHMpOgorICAgICAgICAoV2ViS2l0
OjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OjpjbG9uZSk6CisgICAgICAgIChXZWJLaXQ6
OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6OlNvdXJjZVByb3h5OjpzZXRXZWJQcm9jZXNz
SWRlbnRpdHlUb2tlbik6IERlbGV0ZWQuCisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL1VzZXJN
ZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkuaDoKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhQ2Fw
dHVyZU1hbmFnZXJQcm94eTo6Q29ubmVjdGlvblByb3h5OjpyZXNvdXJjZU93bmVyIGNvbnN0KToK
KyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6Q29ubmVjdGlv
blByb3h5Ojp3ZWJQcm9jZXNzSWRlbnRpdHlUb2tlbiBjb25zdCk6IERlbGV0ZWQuCisgICAgICAg
ICogV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvY29jb2EvSW1hZ2VCdWZmZXJTaGFyZWFibGVNYXBw
ZWRJT1N1cmZhY2VCYWNrZW5kLmNwcDoKKyAgICAgICAgKFdlYktpdDo6SW1hZ2VCdWZmZXJTaGFy
ZWFibGVNYXBwZWRJT1N1cmZhY2VCYWNrZW5kOjpzZXRPd25lcnNoaXBJZGVudGl0eSk6CisgICAg
ICAgIChXZWJLaXQ6OkltYWdlQnVmZmVyU2hhcmVhYmxlTWFwcGVkSU9TdXJmYWNlQmFja2VuZDo6
c2V0UHJvY2Vzc093bmVyc2hpcCk6IERlbGV0ZWQuCisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUv
Z3JhcGhpY3MvY29jb2EvSW1hZ2VCdWZmZXJTaGFyZWFibGVNYXBwZWRJT1N1cmZhY2VCYWNrZW5k
Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9jb2NvYS9XZWJQcm9jZXNzQ29jb2EubW06CisgICAg
ICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OnBsYXRmb3JtSW5pdGlhbGl6ZUdQVVByb2Nlc3NDb25u
ZWN0aW9uUGFyYW1ldGVycyk6CiAyMDIxLTExLTEwICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBs
ZS5jb20+CiAKICAgICAgICAgV2Ugc2hvdWxkIG5vdCBraWxsIGFsbCBXZWJDb250ZW50IHByb2Nl
c3NlcyB3aGVuZXZlciB0aGUgV2ViQXV0aG4gcHJvY2VzcyBjcmFzaGVzCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlIGIvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFr
ZQppbmRleCAzNjM1ZmM1YmNlOWVhZDQ5MGM4ZDk4NTRmZThlNWZkZTI5Njc0ZDIwLi44MWQ2ZjZh
YTMzMzk0NmIxN2M2YjJkYmQxZGZhMmQ1ZDgwMzYxMWJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9IZWFkZXJzLmNtYWtlCisrKyBiL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKQEAg
LTExNDAsNiArMTE0MCw3IEBAIHNldChXZWJDb3JlX1BSSVZBVEVfRlJBTUVXT1JLX0hFQURFUlMK
ICAgICBwbGF0Zm9ybS9Qb3B1cE1lbnVDbGllbnQuaAogICAgIHBsYXRmb3JtL1BvcHVwTWVudVN0
eWxlLmgKICAgICBwbGF0Zm9ybS9Qcm9jZXNzSWRlbnRpZmllci5oCisgICAgcGxhdGZvcm0vUHJv
Y2Vzc0lkZW50aXR5LmgKICAgICBwbGF0Zm9ybS9Qcm9jZXNzUXVhbGlmaWVkLmgKICAgICBwbGF0
Zm9ybS9Qcm9taXNlZEF0dGFjaG1lbnRJbmZvLmgKICAgICBwbGF0Zm9ybS9QdWJsaWNTdWZmaXgu
aApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQgYi9Tb3VyY2UvV2ViQ29y
ZS9Tb3VyY2VzLnR4dAppbmRleCA4YTExNGExMjM4ZDRmNjgxODg0NmYyMWMyZGIwYWMwMzAzYjFl
YjI5Li5hNWJiMjhjNmY3NTE2YWY2ZjhkM2VhYmRmZGEyYmVmZmE0ZTUyM2RlIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2Vz
LnR4dApAQCAtMTg3MCw2ICsxODcwLDcgQEAgcGxhdGZvcm0vUGxhdGZvcm1TdHJhdGVnaWVzLmNw
cAogcGxhdGZvcm0vUGxhdGZvcm1XaGVlbEV2ZW50LmNwcAogcGxhdGZvcm0vUHJldmlld0NvbnZl
cnRlci5jcHAKIHBsYXRmb3JtL1Byb2Nlc3NJZGVudGlmaWVyLmNwcAorcGxhdGZvcm0vUHJvY2Vz
c0lkZW50aXR5LmNwcAogcGxhdGZvcm0vUmVmZXJyZXJQb2xpY3kuY3BwCiBwbGF0Zm9ybS9SZW1v
dGVDb21tYW5kTGlzdGVuZXIuY3BwCiBwbGF0Zm9ybS9SdW50aW1lQXBwbGljYXRpb25DaGVja3Mu
Y3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2oKaW5kZXggMjk5YTg4NjYwZjFlYjAyMmNiZDhiNGVkYzIzMWIyMjkwOWJkYTE0NC4uYmNiYTNm
ZWM5OWVhYTFjYTg3ZTg3Y2M4YWNkMzljMWJmNWEyODE5YSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMjM2Myw2ICsyMzYzLDcg
QEAKIAkJN0I3MzExRkIyNUMwOTJCNzAwM0IyNzk2IC8qIFNjb3BlZEhpZ2hQZXJmb3JtYW5jZUdQ
VVJlcXVlc3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDdCNzMxMUZBMjVDMDkyQjcwMDNCMjc5NiAvKiBTY29wZWRIaWdoUGVyZm9ybWFuY2VHUFVSZXF1
ZXN0LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJ
N0I4RUQ1RjAyNkYwQzEzRDAwOEFDMDIzIC8qIENWVXRpbGl0aWVzLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3QjhFRDVFRDI2RjBDMTIzMDA4QUMwMjMg
LyogQ1ZVdGlsaXRpZXMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OwogCQk3QjkwNDE3MDI1NTAxMTQyMDA2RUVCOEMgLyogUmVtb3RlR3JhcGhpY3NDb250
ZXh0R0xQcm94eUJhc2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDdCOTA0MTZFMjU1MDExMDkwMDZFRUI4QyAvKiBSZW1vdGVHcmFwaGljc0NvbnRleHRH
TFByb3h5QmFzZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CisJCTdCQTdDNkMzMjczQkY2MkMwMDI5REZCRSAvKiBQcm9jZXNzSWRlbnRpdHkuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdCQTdDNkMxMjczQkY2
MkIwMDI5REZCRSAvKiBQcm9jZXNzSWRlbnRpdHkuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRF
UyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk3QkIzNEE0ODI1Mzc3NkNBMDAwMjlEMDggLyogR3Jh
cGhpY3NDb250ZXh0R0xJbWFnZUV4dHJhY3Rvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gN0JCMzRBNDUyNTM3NzZDNjAwMDI5RDA4IC8qIEdyYXBoaWNz
Q29udGV4dEdMSW1hZ2VFeHRyYWN0b3IuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQ
cml2YXRlLCApOyB9OyB9OwogCQk3QkI2ODBCQTI1QkExQkU0MDAyQjg3MzggLyogR3JhcGhpY3ND
aGVja3NNYWMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDdCQjY4MEI4MjVCQTFCRTQwMDJCODczOCAvKiBHcmFwaGljc0NoZWNrc01hYy5oICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTdCRTc0MjczODFGQTkw
NkZCQjRGMEYyQyAvKiBKU1NWR0dyYXBoaWNzRWxlbWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTUwQzRDMDJCRUQ4OTM2RjgxOEUyRjk5IC8qIEpT
U1ZHR3JhcGhpY3NFbGVtZW50LmggKi87IH07CkBAIC0xMTAyMSw2ICsxMTAyMiw4IEBACiAJCTdC
OEVENUVEMjZGMEMxMjMwMDhBQzAyMyAvKiBDVlV0aWxpdGllcy5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBDVlV0aWxpdGllcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk3QjhFRDVFRjI2RjBDMTIzMDA4QUMwMjMgLyogQ1ZVdGlsaXRpZXMubW0gKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBDVlV0aWxpdGllcy5tbTsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0I5MDQxNkUyNTUwMTEwOTAwNkVFQjhDIC8qIFJlbW90ZUdy
YXBoaWNzQ29udGV4dEdMUHJveHlCYXNlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbW90ZUdyYXBoaWNz
Q29udGV4dEdMUHJveHlCYXNlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTdCQTdD
NkJGMjczQkY2MkIwMDI5REZCRSAvKiBQcm9jZXNzSWRlbnRpdHkuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUHJvY2Vzc0lkZW50aXR5LmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJN0JBN0M2QzEyNzNCRjYyQjAwMjlERkJFIC8qIFByb2Nlc3NJZGVu
dGl0eS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQcm9jZXNzSWRlbnRpdHku
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0JCMzRBMTYyNTM0NUNCMjAwMDI5RDA4
IC8qIEFOR0xFVXRpbGl0aWVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEFO
R0xFVXRpbGl0aWVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdCQjM0QTQ1MjUz
Nzc2QzYwMDAyOUQwOCAvKiBHcmFwaGljc0NvbnRleHRHTEltYWdlRXh0cmFjdG9yLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IEdyYXBoaWNzQ29udGV4dEdMSW1hZ2VFeHRyYWN0b3IuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJN0JCMzRBNDcyNTM3NzZDNzAwMDI5RDA4IC8qIEdyYXBoaWNzQ29u
dGV4dEdMSW1hZ2VFeHRyYWN0b3IuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gR3JhcGhpY3NDb250
ZXh0R0xJbWFnZUV4dHJhY3Rvci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0x
ODkyMCwxMSArMTg5MjMsMTEgQEAKIAkJMUE1NjlDQzQwRDdFMkI2MDAwN0MzOTgzIC8qIGJyaWRn
ZSAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCi0JCQkJNTlCNTk3
NzExMTA4NjU1NjAwNzE1OUU4IC8qIGpzYyAqLywKIAkJCQkxQTU2OUNFMjBEN0UyQjgyMDA3QzM5
ODMgLyogb2JqYyAqLywKIAkJCQk1OTlFNzU4RjExMDU1QTFGMDBEOTA0RkEgLyogQnJpZGdlLmgg
Ki8sCiAJCQkJMUE3MUQ1NzkwRjMzODE5MDAwRjlDRTRFIC8qIElkZW50aWZpZXJSZXAuY3BwICov
LAogCQkJCTFBNzFENTdBMEYzMzgxOTAwMEY5Q0U0RSAvKiBJZGVudGlmaWVyUmVwLmggKi8sCisJ
CQkJNTlCNTk3NzExMTA4NjU1NjAwNzE1OUU4IC8qIGpzYyAqLywKIAkJCQkxQTU2OUNFRjBEN0Uy
QjgyMDA3QzM5ODMgLyogcnVudGltZV9hcnJheS5jcHAgKi8sCiAJCQkJMUE1NjlDRjAwRDdFMkI4
MjAwN0MzOTgzIC8qIHJ1bnRpbWVfYXJyYXkuaCAqLywKIAkJCQkxQTU2OUNGMTBEN0UyQjgyMDA3
QzM5ODMgLyogcnVudGltZV9tZXRob2QuY3BwICovLApAQCAtMjg5OTAsNiArMjg5OTMsOCBAQAog
CQkJCUExQURBRjdDMjM2MEZEM0UwMDlDQjc3NiAvKiBQcmV2aWV3Q29udmVydGVyUHJvdmlkZXIu
aCAqLywKIAkJCQk1MUY2NDVEMjFGRUNEQkM4MDBCNTRERUQgLyogUHJvY2Vzc0lkZW50aWZpZXIu
Y3BwICovLAogCQkJCTUxRjY0NUQzMUZFQ0RCQzgwMEI1NERFRCAvKiBQcm9jZXNzSWRlbnRpZmll
ci5oICovLAorCQkJCTdCQTdDNkJGMjczQkY2MkIwMDI5REZCRSAvKiBQcm9jZXNzSWRlbnRpdHku
Y3BwICovLAorCQkJCTdCQTdDNkMxMjczQkY2MkIwMDI5REZCRSAvKiBQcm9jZXNzSWRlbnRpdHku
aCAqLywKIAkJCQkxQ0M1NEFGQjI3MEY5MkRBMDA1QkY4QkUgLyogUHJvY2Vzc1F1YWxpZmllZC5o
ICovLAogCQkJCUY0N0E2MzNDMUZGNkZENTAwMDgxQjNDQyAvKiBQcm9taXNlZEF0dGFjaG1lbnRJ
bmZvLmggKi8sCiAJCQkJMDA4MUZFRkQxNkIwQTI0NDAwOEFBQTdBIC8qIFB1YmxpY1N1ZmZpeC5o
ICovLApAQCAtMzU0NzIsNiArMzU0NzcsNyBAQAogCQkJCUI3MUZFNkRGMTEwOTFDQjMwMERBRUY3
NyAvKiBQcmludENvbnRleHQuaCBpbiBIZWFkZXJzICovLAogCQkJCTZCMEEwN0YyMjFGQTRCNUMw
MEQ1NzM5MSAvKiBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
NTFGNjQ1RDUxRkVDREJDRTAwQjU0REVEIC8qIFByb2Nlc3NJZGVudGlmaWVyLmggaW4gSGVhZGVy
cyAqLywKKwkJCQk3QkE3QzZDMzI3M0JGNjJDMDAyOURGQkUgLyogUHJvY2Vzc0lkZW50aXR5Lmgg
aW4gSGVhZGVycyAqLywKIAkJCQlBOEVBN0VCQzBBMTk0NUQwMDBBOEVGNUYgLyogUHJvY2Vzc2lu
Z0luc3RydWN0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQ0M1NEFGRTI3MEY5NkFFMDA1QkY4
QkUgLyogUHJvY2Vzc1F1YWxpZmllZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTQyMDUwMTcyMTQx
OTAxQjAwNjZFRjNCIC8qIFByb2Nlc3NXYXJtaW5nLmggaW4gSGVhZGVycyAqLywKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xvZ2dpbmcuaCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL0xvZ2dpbmcuaAppbmRleCAzZmJlNDE3YmU5ODFiNzVlNzc5ZGUyMzhmYzRiZTA1YTZk
NzMwZmFhLi5kYzBmNTA5OGI4N2YxODQ1NTI1YmUzYzBiYTQxZjc2NzViMTQwNDdmIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Mb2dnaW5nLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vTG9nZ2luZy5oCkBAIC05NCw2ICs5NCw3IEBAIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKICAgICBNKFBsdWdpbnMpIFwKICAgICBNKFBvcHVwQmxvY2tpbmcpIFwKICAgICBNKFByaXZh
dGVDbGlja01lYXN1cmVtZW50KSBcCisgICAgTShQcm9jZXNzKSBcCiAgICAgTShQcm9ncmVzcykg
XAogICAgIE0oUmVtb3RlSW5zcGVjdG9yKSBcCiAgICAgTShSZXF1ZXN0QW5pbWF0aW9uRnJhbWUp
IFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Byb2Nlc3NJZGVudGl0eS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Qcm9jZXNzSWRlbnRpdHkuY3BwCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmFhNmM3ZWVhYjAxZDMyNDNiMmI0NWE2M2M1NjA0NGNmYzU4MTcxZGEKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Qcm9jZXNzSWRlbnRpdHkuY3BwCkBAIC0w
LDAgKzEsNzMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0Yg
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLwor
CisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiUHJvY2Vzc0lkZW50aXR5LmgiCisKKyNp
bmNsdWRlICJMb2dnaW5nLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworUmVmUHRyPFByb2Nl
c3NJZGVudGl0eT4gUHJvY2Vzc0lkZW50aXR5OjpjcmVhdGUoSGFuZGxlJiYgaGFuZGxlKQorewor
I2lmIEhBVkUoVEFTS19JREVOVElUWV9UT0tFTikKKyAgICByZXR1cm4gYWRvcHRSZWYobmV3IFBy
b2Nlc3NJZGVudGl0eShXVEZNb3ZlKGhhbmRsZSkpKTsKKyNlbHNlCisgICAgcmV0dXJuIG51bGxw
dHI7CisjZW5kaWYKK30KKworUHJvY2Vzc0lkZW50aXR5OjpQcm9jZXNzSWRlbnRpdHkoSGFuZGxl
JiYgaGFuZGxlKQorICAgIDogbV9oYW5kbGUoV1RGTW92ZShoYW5kbGUpKQoreworfQorCitQcm9j
ZXNzSWRlbnRpdHk6OkhhbmRsZSBQcm9jZXNzSWRlbnRpdHk6OmhhbmRsZUZvckN1cnJlbnRQcm9j
ZXNzKCkKK3sKKyAgICBQcm9jZXNzSWRlbnRpdHk6OkhhbmRsZSByZXN1bHQ7CisjaWYgSEFWRShU
QVNLX0lERU5USVRZX1RPS0VOKQorICAgIHRhc2tfaWRfdG9rZW5fdCBpZGVudGl0eVRva2VuOwor
ICAgIGtlcm5fcmV0dXJuX3Qga3IgPSB0YXNrX2NyZWF0ZV9pZGVudGl0eV90b2tlbihtYWNoX3Rh
c2tfc2VsZigpLCAmaWRlbnRpdHlUb2tlbik7CisgICAgaWYgKGtyID09IEtFUk5fU1VDQ0VTUykK
KyAgICAgICAgcmVzdWx0ID0gTWFjaFNlbmRSaWdodDo6YWRvcHQoaWRlbnRpdHlUb2tlbik7Cisg
ICAgZWxzZQorICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihQcm9jZXNzLCAidGFza19jcmVhdGVf
aWRlbnRpdHlfdG9rZW4oKSBmYWlsZWQ6ICV7cHJpdmF0ZX1zICgleCkiLCBtYWNoX2Vycm9yX3N0
cmluZyhrciksIGtyKTsKKyNlbmRpZgorICAgIHJldHVybiByZXN1bHQ7Cit9CisKK2NvbnN0IFBy
b2Nlc3NJZGVudGl0eTo6SGFuZGxlJiBQcm9jZXNzSWRlbnRpdHk6OmhhbmRsZSgpIGNvbnN0Cit7
CisgICAgcmV0dXJuIG1faGFuZGxlOworfQorCisjaWYgSEFWRShUQVNLX0lERU5USVRZX1RPS0VO
KQordGFza19pZF90b2tlbl90IFByb2Nlc3NJZGVudGl0eTo6dGFza0lkVG9rZW4oKSBjb25zdAor
eworICAgIHJldHVybiBtX2hhbmRsZS5zZW5kUmlnaHQoKTsKK30KKyNlbmRpZgorCit9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Qcm9jZXNzSWRlbnRpdHkuaCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL1Byb2Nlc3NJZGVudGl0eS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjBjYTAxOTNi
MTJlNTQ0MzZjNmZlYmJjNmViZTM0ZTAxNjM3NjBmYTAKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9Qcm9jZXNzSWRlbnRpdHkuaApAQCAtMCwwICsxLDYxIEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
YGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05U
UklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVT
SU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICog
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNl
CisKKyNpbmNsdWRlIDx3dGYvVGhyZWFkU2FmZVJlZkNvdW50ZWQuaD4KKworI2lmIEhBVkUoVEFT
S19JREVOVElUWV9UT0tFTikKKyNpbmNsdWRlIDx3dGYvTWFjaFNlbmRSaWdodC5oPgorI2Vsc2UK
KyNpbmNsdWRlIDx2YXJpYW50PgorI2VuZGlmCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworLy8g
T2JqZWN0IHRvIGFjY2VzcyBwcm9vZiBvZiBwcm9jZXNzIGlkZW50aXR5LgorLy8gUHJvY2Vzc0lk
ZW50aWZpZXIgaWRlbnRpZmllcyBhIHByb2Nlc3MuCisvLyBQcm9jZXNzSWRlbnRpdHkgZ3JhbnRz
IGFjY2VzcyB0byB0aGUgaWRlbnRpdHkuCitjbGFzcyBXRUJDT1JFX0VYUE9SVCBQcm9jZXNzSWRl
bnRpdHkgZmluYWwgOiBwdWJsaWMgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8UHJvY2Vzc0lkZW50aXR5
PiB7CitwdWJsaWM6CisjaWYgSEFWRShUQVNLX0lERU5USVRZX1RPS0VOKQorICAgIHVzaW5nIEhh
bmRsZSA9IE1hY2hTZW5kUmlnaHQ7CisjZWxzZQorICAgIHVzaW5nIEhhbmRsZSA9IHN0ZDo6bW9u
b3N0YXRlOworI2VuZGlmCisgICAgc3RhdGljIFJlZlB0cjxQcm9jZXNzSWRlbnRpdHk+IGNyZWF0
ZShIYW5kbGUmJik7CisgICAgc3RhdGljIEhhbmRsZSBoYW5kbGVGb3JDdXJyZW50UHJvY2Vzcygp
OworICAgIGNvbnN0IEhhbmRsZSYgaGFuZGxlKCkgY29uc3Q7CisKKyNpZiBIQVZFKFRBU0tfSURF
TlRJVFlfVE9LRU4pCisgICAgdGFza19pZF90b2tlbl90IHRhc2tJZFRva2VuKCkgY29uc3Q7Cisj
ZW5kaWYKK3ByaXZhdGU6CisgICAgUHJvY2Vzc0lkZW50aXR5KEhhbmRsZSYmKTsKKworICAgIEhh
bmRsZSBtX2hhbmRsZTsKK307CisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL1JlbW90ZVZpZGVvU2FtcGxlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9SZW1vdGVWaWRlb1NhbXBsZS5oCmluZGV4IGE2MTcwYjMyOGZjNDRhY2U2OTNk
Y2RiMzVlZTRkM2NlNjg3MzM4YTEuLjBmNWJhZWE4NTZlM2YxYThjZTE2NWIyMDM4NjVjOTY0NDM1
NDI1NjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1JlbW90
ZVZpZGVvU2FtcGxlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvUmVt
b3RlVmlkZW9TYW1wbGUuaApAQCAtMzcsNiArMzcsOCBAQCB0eXBlZGVmIHN0cnVjdCBfX0NWQnVm
ZmVyKiBDVlBpeGVsQnVmZmVyUmVmOwogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK2NsYXNzIFBy
b2Nlc3NJZGVudGl0eTsKKwogY2xhc3MgUmVtb3RlVmlkZW9TYW1wbGUgewogcHVibGljOgogICAg
IFJlbW90ZVZpZGVvU2FtcGxlKCkgPSBkZWZhdWx0OwpAQCAtNDgsOSArNTAsNyBAQCBwdWJsaWM6
CiAgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxSZW1vdGVWaWRlb1Nh
bXBsZT4gY3JlYXRlKFJldGFpblB0cjxDVlBpeGVsQnVmZmVyUmVmPiYmLCBNZWRpYVRpbWUmJiBw
cmVzZW50YXRpb25UaW1lLCBNZWRpYVNhbXBsZTo6VmlkZW9Sb3RhdGlvbiA9IE1lZGlhU2FtcGxl
OjpWaWRlb1JvdGF0aW9uOjpOb25lKTsKICAgICBXRUJDT1JFX0VYUE9SVCBJT1N1cmZhY2VSZWYg
c3VyZmFjZSgpIGNvbnN0OwogCi0jaWYgSEFWRShJT1NVUkZBQ0VfU0VUX09XTkVSU0hJUF9JREVO
VElUWSkKLSAgICB2b2lkIHNldE93bmVyc2hpcElkZW50aXR5KHRhc2tfaWRfdG9rZW5fdCBuZXdP
d25lcik7Ci0jZW5kaWYKKyAgICB2b2lkIHNldE93bmVyc2hpcElkZW50aXR5KFByb2Nlc3NJZGVu
dGl0eSogcmVzb3VyY2VPd25lcik7CiAKICAgICBjb25zdCBNZWRpYVRpbWUmIHRpbWUoKSBjb25z
dCB7IHJldHVybiBtX3RpbWU7IH0KICAgICB1aW50MzJfdCB2aWRlb0Zvcm1hdCgpIGNvbnN0IHsg
cmV0dXJuIG1fdmlkZW9Gb3JtYXQ7IH0KQEAgLTExOSwxMyArMTE5LDExIEBAIHByaXZhdGU6CiAg
ICAgYm9vbCBtX21pcnJvcmVkIHsgZmFsc2UgfTsKIH07CiAKLSNpZiBIQVZFKElPU1VSRkFDRV9T
RVRfT1dORVJTSElQX0lERU5USVRZKQotaW5saW5lIHZvaWQgUmVtb3RlVmlkZW9TYW1wbGU6OnNl
dE93bmVyc2hpcElkZW50aXR5KHRhc2tfaWRfdG9rZW5fdCBuZXdPd25lcikKK2lubGluZSB2b2lk
IFJlbW90ZVZpZGVvU2FtcGxlOjpzZXRPd25lcnNoaXBJZGVudGl0eShQcm9jZXNzSWRlbnRpdHkq
IHJlc291cmNlT3duZXIpCiB7CiAgICAgaWYgKG1faW9TdXJmYWNlKQotICAgICAgICBtX2lvU3Vy
ZmFjZS0+c2V0T3duZXJzaGlwSWRlbnRpdHkobmV3T3duZXIpOworICAgICAgICBtX2lvU3VyZmFj
ZS0+c2V0T3duZXJzaGlwSWRlbnRpdHkocmVzb3VyY2VPd25lcik7CiB9Ci0jZW5kaWYKIAogfQog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9HcmFw
aGljc0NvbnRleHRHTE9wZW5HTENvY29hLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY29jb2EvR3JhcGhpY3NDb250ZXh0R0xPcGVuR0xDb2NvYS5tbQppbmRleCBmYjcyM2Rk
NDIyZGU5YjlkYWRhOWU0Y2I4OTdkMDYxY2JlNmQ2MDNlLi4xOTc5ZGE1NjcyNGJhMGQyNWFkYTVk
MTQxYjYzZjVhYjVmMWU3YTk0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jb2NvYS9HcmFwaGljc0NvbnRleHRHTE9wZW5HTENvY29hLm1tCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0dyYXBoaWNzQ29udGV4dEdMT3BlbkdM
Q29jb2EubW0KQEAgLTE5Myw4ICsxOTMsOSBAQCBzdGF0aWMgYm9vbCBuZWVkc0VBR0xPbk1hYygp
CiB9CiAjZW5kaWYKIAotR3JhcGhpY3NDb250ZXh0R0xPcGVuR0w6OkdyYXBoaWNzQ29udGV4dEdM
T3BlbkdMKEdyYXBoaWNzQ29udGV4dEdMQXR0cmlidXRlcyBhdHRycykKK0dyYXBoaWNzQ29udGV4
dEdMT3BlbkdMOjpHcmFwaGljc0NvbnRleHRHTE9wZW5HTChHcmFwaGljc0NvbnRleHRHTEF0dHJp
YnV0ZXMmJiBhdHRycywgUmVmUHRyPFByb2Nlc3NJZGVudGl0eT4mJiByZXNvdXJjZU93bmVyKQog
ICAgIDogR3JhcGhpY3NDb250ZXh0R0woYXR0cnMpCisgICAgLCBtX3Jlc291cmNlT3duZXIoV1RG
TW92ZShyZXNvdXJjZU93bmVyKSkKIHsKICAgICBtX2lzRm9yV2ViR0wyID0gYXR0cnMud2ViR0xW
ZXJzaW9uID09IEdyYXBoaWNzQ29udGV4dEdMV2ViR0xWZXJzaW9uOjpXZWJHTDI7CiAgICAgaWYg
KGF0dHJzLnVzZU1ldGFsICYmICFwbGF0Zm9ybVN1cHBvcnRzTWV0YWwobV9pc0ZvcldlYkdMMikp
IHsKQEAgLTU2NSw2ICs1NjYsOCBAQCBib29sIEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMOjphbGxv
Y2F0ZUFuZEJpbmREaXNwbGF5QnVmZmVyQmFja2luZygpCiAgICAgYXV0byBiYWNraW5nID0gSU9T
dXJmYWNlOjpjcmVhdGUoZ2V0SW50ZXJuYWxGcmFtZWJ1ZmZlclNpemUoKSwgRGVzdGluYXRpb25D
b2xvclNwYWNlOjpTUkdCKCkpOwogICAgIGlmICghYmFja2luZykKICAgICAgICAgcmV0dXJuIGZh
bHNlOworICAgIGlmIChtX3Jlc291cmNlT3duZXIpCisgICAgICAgIGJhY2tpbmctPnNldE93bmVy
c2hpcElkZW50aXR5KG1fcmVzb3VyY2VPd25lci5nZXQoKSk7CiAKICAgICBiYWNraW5nLT5taWdy
YXRlQ29sb3JTcGFjZVRvUHJvcGVydGllcygpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9JT1N1cmZhY2UuaCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2NvY29hL0lPU3VyZmFjZS5oCmluZGV4IDU2NTI0NzgyMmRiYTI5Zjc2
MDBiOTQwN2U2ZjRhY2I4YzFhMDZhYWMuLjBjNDNjYTRmODA0ZDI2MGM2MTA1ZWI5MmI2MTEwOTFl
MmMyNTMyYTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nv
Y29hL0lPU3VyZmFjZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nv
Y29hL0lPU3VyZmFjZS5oCkBAIC00Niw2ICs0Niw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNs
YXNzIEdyYXBoaWNzQ29udGV4dDsKIGNsYXNzIEhvc3RXaW5kb3c7CiBjbGFzcyBJbWFnZUJ1ZmZl
cjsKK2NsYXNzIFByb2Nlc3NJZGVudGl0eTsKIAogZW51bSBjbGFzcyBQaXhlbEZvcm1hdCA6IHVp
bnQ4X3Q7CiBlbnVtIGNsYXNzIFZvbGF0aWxpdHlTdGF0ZSA6IHVpbnQ4X3Q7CkBAIC0xNTksOSAr
MTYwLDcgQEAgcHVibGljOgogICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyB2b2lkIGNvbnZlcnRU
b0Zvcm1hdChzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6SU9TdXJmYWNlPiYmIGluU3VyZmFjZSwg
Rm9ybWF0LCBGdW5jdGlvbjx2b2lkKHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpJT1N1cmZhY2U+
KT4mJik7CiAjZW5kaWYgLy8gSEFWRShJT1NVUkZBQ0VfQUNDRUxFUkFUT1IpCiAKLSNpZiBIQVZF
KElPU1VSRkFDRV9TRVRfT1dORVJTSElQX0lERU5USVRZKQotICAgIFdFQkNPUkVfRVhQT1JUIHZv
aWQgc2V0T3duZXJzaGlwSWRlbnRpdHkodGFza19pZF90b2tlbl90IG5ld093bmVyKTsKLSNlbmRp
ZgorICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0T3duZXJzaGlwSWRlbnRpdHkoUHJvY2Vzc0lk
ZW50aXR5KiByZXNvdXJjZU93bmVyKTsKIAogICAgIHZvaWQgbWlncmF0ZUNvbG9yU3BhY2VUb1By
b3BlcnRpZXMoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY29jb2EvSU9TdXJmYWNlLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y29jb2EvSU9TdXJmYWNlLm1tCmluZGV4IDAxMTE2NWNlMTFhYmNlNjc1YzRiNDdiZjkxNWQ0Yzgx
ZTZjZWU5OTUuLjBhZTcwY2Q2MjZhMzhkZDEyNTFjM2I0MGRiZDZmNjZhN2Y4MjBhMWQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0lPU3VyZmFjZS5t
bQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9JT1N1cmZhY2Uu
bW0KQEAgLTM0LDYgKzM0LDcgQEAKICNpbXBvcnQgIkltYWdlQnVmZmVyLmgiCiAjaW1wb3J0ICJM
b2dnaW5nLmgiCiAjaW1wb3J0ICJQbGF0Zm9ybVNjcmVlbi5oIgorI2ltcG9ydCAiUHJvY2Vzc0lk
ZW50aXR5LmgiCiAjaW1wb3J0IDxwYWwvc3BpL2NnL0NvcmVHcmFwaGljc1NQSS5oPgogI2ltcG9y
dCA8d3RmL0Fzc2VydGlvbnMuaD4KICNpbXBvcnQgPHd0Zi9NYWNoU2VuZFJpZ2h0Lmg+CkBAIC00
ODQsMTQgKzQ4NSwxNyBAQCB2b2lkIElPU3VyZmFjZTo6Y29udmVydFRvRm9ybWF0KHN0ZDo6dW5p
cXVlX3B0cjxJT1N1cmZhY2U+JiYgaW5TdXJmYWNlLCBGb3JtYXQgZgogCiAjZW5kaWYgLy8gSEFW
RShJT1NVUkZBQ0VfQUNDRUxFUkFUT1IpCiAKLSNpZiBIQVZFKElPU1VSRkFDRV9TRVRfT1dORVJT
SElQX0lERU5USVRZKQotdm9pZCBJT1N1cmZhY2U6OnNldE93bmVyc2hpcElkZW50aXR5KHRhc2tf
aWRfdG9rZW5fdCBuZXdPd25lcikKK3ZvaWQgSU9TdXJmYWNlOjpzZXRPd25lcnNoaXBJZGVudGl0
eShQcm9jZXNzSWRlbnRpdHkqIHJlc291cmNlT3duZXIpCiB7Ci0gICAgYXV0byByZXN1bHQgPSBJ
T1N1cmZhY2VTZXRPd25lcnNoaXBJZGVudGl0eShtX3N1cmZhY2UuZ2V0KCksIG5ld093bmVyLCBr
SU9TdXJmYWNlTWVtb3J5TGVkZ2VyVGFnR3JhcGhpY3MsIDApOworI2lmIEhBVkUoSU9TVVJGQUNF
X1NFVF9PV05FUlNISVBfSURFTlRJVFkpICYmIEhBVkUoVEFTS19JREVOVElUWV9UT0tFTikKKyAg
ICB0YXNrX2lkX3Rva2VuX3Qgb3duZXJUYXNrSWRUb2tlbiA9IHJlc291cmNlT3duZXIgPyByZXNv
dXJjZU93bmVyLT50YXNrSWRUb2tlbigpIDogMDsKKyAgICBhdXRvIHJlc3VsdCA9IElPU3VyZmFj
ZVNldE93bmVyc2hpcElkZW50aXR5KG1fc3VyZmFjZS5nZXQoKSwgb3duZXJUYXNrSWRUb2tlbiwg
a0lPU3VyZmFjZU1lbW9yeUxlZGdlclRhZ0dyYXBoaWNzLCAwKTsKICAgICBpZiAocmVzdWx0ICE9
IGtJT1JldHVyblN1Y2Nlc3MpCi0gICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKElPU3VyZmFjZSwg
IklPU3VyZmFjZTo6c2V0T3duZXJzaGlwSWRlbnRpdHk6IEZhaWxlZCB0byBjbGFpbSBvd25lcnNo
aXAgb2YgSU9TdXJmYWNlICVwLCBuZXdPd25lcjogJWQsIGVycm9yOiAlZCIsIG1fc3VyZmFjZS5n
ZXQoKSwgKGludCluZXdPd25lciwgcmVzdWx0KTsKLX0KKyAgICAgICAgUkVMRUFTRV9MT0dfRVJS
T1IoSU9TdXJmYWNlLCAiSU9TdXJmYWNlOjpzZXRPd25lcnNoaXBJZGVudGl0eTogRmFpbGVkIHRv
IGNsYWltIG93bmVyc2hpcCBvZiBJT1N1cmZhY2UgJXAsIHRhc2sgaWQgdG9rZW46ICVkLCBlcnJv
cjogJWQiLCBtX3N1cmZhY2UuZ2V0KCksIChpbnQpb3duZXJUYXNrSWRUb2tlbiwgcmVzdWx0KTsK
KyNlbHNlCisgICAgVU5VU0VEKHJlc291cmNlT3duZXIpOwogI2VuZGlmCit9CiAKIHZvaWQgSU9T
dXJmYWNlOjptaWdyYXRlQ29sb3JTcGFjZVRvUHJvcGVydGllcygpCiB7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9XZWJQcm9jZXNzR3JhcGhpY3ND
b250ZXh0R0xPcGVuR0xDb2NvYS5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2NvY29hL1dlYlByb2Nlc3NHcmFwaGljc0NvbnRleHRHTE9wZW5HTENvY29hLm1tCmluZGV4IDI1
NjI1ZWRiZmUyNTRlMzc1ZmVmMTY5ODE2OWY1MmVmZDRhYTc3MjIuLmNhYzQ0YTFkYjRkZmMwZjcx
NzA0Yzc0MTg0ZGE0NjM3MmIzMTIzYWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2NvY29hL1dlYlByb2Nlc3NHcmFwaGljc0NvbnRleHRHTE9wZW5HTENvY29h
Lm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1dlYlByb2Nl
c3NHcmFwaGljc0NvbnRleHRHTE9wZW5HTENvY29hLm1tCkBAIC01Nyw3ICs1Nyw3IEBAIHB1Ymxp
YzoKICAgICB2b2lkIHByZXBhcmVGb3JEaXNwbGF5KCkgZmluYWw7CiBwcml2YXRlOgogICAgIFdl
YlByb2Nlc3NHcmFwaGljc0NvbnRleHRHTE9wZW5HTChHcmFwaGljc0NvbnRleHRHTEF0dHJpYnV0
ZXMgYXR0cmlidXRlcykKLSAgICAgICAgOiBHcmFwaGljc0NvbnRleHRHTE9wZW5HTChhdHRyaWJ1
dGVzKQorICAgICAgICA6IEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMKFdURk1vdmUoYXR0cmlidXRl
cyksIHsgfSkKICAgICAgICAgLCBtX3dlYkdMTGF5ZXIoY3JlYXRlV2ViR0xMYXllcihhdHRyaWJ1
dGVzKSkKICAgICB7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3Mvb3BlbmdsL0dyYXBoaWNzQ29udGV4dEdMT3BlbkdMLmggYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR3JhcGhpY3NDb250ZXh0R0xPcGVuR0wuaAppbmRl
eCAzODI3M2IwNzJiNTZkM2ZkYTJiY2RlMzQ4YjNlMGY3NDJjMjAwNWU1Li5mZTEzZWFmZjRkNzNm
YTY3MDE2MzYwZThkMmI4Y2Y4ZDMzYWM4ZTUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR3JhcGhpY3NDb250ZXh0R0xPcGVuR0wuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR3JhcGhpY3NDb250ZXh0R0xP
cGVuR0wuaApAQCAtMjgsNiArMjgsNyBAQAogI2lmIEVOQUJMRShXRUJHTCkKIAogI2luY2x1ZGUg
IkdyYXBoaWNzQ29udGV4dEdMLmgiCisjaW5jbHVkZSAiUHJvY2Vzc0lkZW50aXR5LmgiCiAjaW5j
bHVkZSA8bWVtb3J5PgogI2luY2x1ZGUgPHd0Zi9IYXNoQ291bnRlZFNldC5oPgogI2luY2x1ZGUg
PHd0Zi9IYXNoTWFwLmg+CkBAIC01NDMsOCArNTQ0LDkgQEAgcHVibGljOgogI2VuZGlmCiAKIHBy
b3RlY3RlZDoKLSAgICBHcmFwaGljc0NvbnRleHRHTE9wZW5HTChHcmFwaGljc0NvbnRleHRHTEF0
dHJpYnV0ZXMpOworICAgIEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMKEdyYXBoaWNzQ29udGV4dEdM
QXR0cmlidXRlcyYmLCBSZWZQdHI8UHJvY2Vzc0lkZW50aXR5PiYmIHJlc291cmNlT3duZXIpOwog
ICAgIGJvb2wgaXNWYWxpZCgpIGNvbnN0OworICAgIFJlZlB0cjxQcm9jZXNzSWRlbnRpdHk+IG1f
cmVzb3VyY2VPd25lcjsKICNpZiBQTEFURk9STShDT0NPQSkKICAgICBHcmFwaGljc0NvbnRleHRH
TElPU3VyZmFjZVN3YXBDaGFpbiBtX3N3YXBDaGFpbjsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL0dyYXBoaWNzQ29udGV4dEdMVGV4
dHVyZU1hcHBlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAv
R3JhcGhpY3NDb250ZXh0R0xUZXh0dXJlTWFwcGVyLmNwcAppbmRleCBlMjg1MWMyZTNkMjIxNzcx
Njk0YmRkNmYxMmYwZTVmNzg5OWM3NTViLi4zMDc3NzIyMGM5Y2VlZGY1ZGM0MjM1MGRhNDE2NDA0
ZTJlYmU5YzBjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90
ZXhtYXAvR3JhcGhpY3NDb250ZXh0R0xUZXh0dXJlTWFwcGVyLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvR3JhcGhpY3NDb250ZXh0R0xUZXh0dXJlTWFw
cGVyLmNwcApAQCAtODUsNyArODUsNyBAQCBSZWZQdHI8R3JhcGhpY3NDb250ZXh0R0xPcGVuR0w+
IEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMOjpjcmVhdGUoR3JhcGhpY3NDb250ZXh0RwogICAgICAg
ICByZXR1cm4gbnVsbHB0cjsKIAogICAgIC8vIENyZWF0ZSB0aGUgR3JhcGhpY3NDb250ZXh0R0xP
cGVuR0wgb2JqZWN0IGZpcnN0IGluIG9yZGVyIHRvIGVzdGFibGlzdCBhIGN1cnJlbnQgY29udGV4
dCBvbiB0aGlzIHRocmVhZC4KLSAgICBhdXRvIGNvbnRleHQgPSBhZG9wdFJlZihuZXcgR3JhcGhp
Y3NDb250ZXh0R0xPcGVuR0woYXR0cmlidXRlcykpOworICAgIGF1dG8gY29udGV4dCA9IGFkb3B0
UmVmKG5ldyBHcmFwaGljc0NvbnRleHRHTE9wZW5HTChXVEZNb3ZlKGF0dHJpYnV0ZXMsIHsgfSkp
KTsKIAogI2lmIFVTRShMSUJFUE9YWSkgJiYgVVNFKE9QRU5HTF9FUykgJiYgRU5BQkxFKFdFQkdM
MikKICAgICAvLyBCYWlsIGlmIEdMRVMzIHdhcyByZXF1ZXN0ZWQgYnV0IGNhbm5vdCBiZSBwcm92
aWRlZC4KQEAgLTk5LDggKzk5LDkgQEAgUmVmUHRyPEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMPiBH
cmFwaGljc0NvbnRleHRHTE9wZW5HTDo6Y3JlYXRlKEdyYXBoaWNzQ29udGV4dEcKIH0KIAogI2lm
IFVTRShBTkdMRSkKLUdyYXBoaWNzQ29udGV4dEdMT3BlbkdMOjpHcmFwaGljc0NvbnRleHRHTE9w
ZW5HTChHcmFwaGljc0NvbnRleHRHTEF0dHJpYnV0ZXMgYXR0cmlidXRlcykKK0dyYXBoaWNzQ29u
dGV4dEdMT3BlbkdMOjpHcmFwaGljc0NvbnRleHRHTE9wZW5HTChHcmFwaGljc0NvbnRleHRHTEF0
dHJpYnV0ZXMmJiBhdHRyaWJ1dGVzLCBSZWZQdHI8UHJvY2Vzc0lkZW50aXR5PiYmIHJlc291cmNl
T3duZXIpCiAgICAgOiBHcmFwaGljc0NvbnRleHRHTChhdHRyaWJ1dGVzKQorICAgICwgbV9yZXNv
dXJjZU93bmVyKFdURk1vdmUocmVzb3VyY2VPd25lcikpCiB7CiAjaWYgRU5BQkxFKFdFQkdMMikK
ICAgICBtX2lzRm9yV2ViR0wyID0gYXR0cmlidXRlcy53ZWJHTFZlcnNpb24gPT0gR3JhcGhpY3ND
b250ZXh0R0xXZWJHTFZlcnNpb246OldlYkdMMjsKQEAgLTE2OCw4ICsxNjksOSBAQCBHcmFwaGlj
c0NvbnRleHRHTE9wZW5HTDo6R3JhcGhpY3NDb250ZXh0R0xPcGVuR0woR3JhcGhpY3NDb250ZXh0
R0xBdHRyaWJ1dGVzIGF0dAogICAgIGdsOjpDbGVhckNvbG9yKDAsIDAsIDAsIDApOwogfQogI2Vs
c2UKLUdyYXBoaWNzQ29udGV4dEdMT3BlbkdMOjpHcmFwaGljc0NvbnRleHRHTE9wZW5HTChHcmFw
aGljc0NvbnRleHRHTEF0dHJpYnV0ZXMgYXR0cmlidXRlcykKK0dyYXBoaWNzQ29udGV4dEdMT3Bl
bkdMOjpHcmFwaGljc0NvbnRleHRHTE9wZW5HTChHcmFwaGljc0NvbnRleHRHTEF0dHJpYnV0ZXMm
JiBhdHRyaWJ1dGVzLCBSZWZQdHI8UHJvY2Vzc0lkZW50aXR5PiYmIHJlc291cmNlT3duZXIpCiAg
ICAgOiBHcmFwaGljc0NvbnRleHRHTChhdHRyaWJ1dGVzKQorICAgICwgbV9yZXNvdXJjZU93bmVy
KFdURk1vdmUocmVzb3VyY2VPd25lcikpCiB7CiAjaWYgVVNFKE5JQ09TSUEpCiAgICAgbV9uaWNv
c2lhTGF5ZXIgPSBtYWtlVW5pcXVlPE5pY29zaWE6OkdDR0xMYXllcj4oKnRoaXMpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3Mu
Y3BwIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3Mu
Y3BwCmluZGV4IDUyYWU4ODE5MzcxYTNlZGQ2MGNkNzIwY2QwODRiYjNjODU3ZmE3Y2QuLjFlZjlh
NmIyNTgxNjMzN2YzOGQ5YmIwYjNjNzQ4OWZjZDFjOTQ4NWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvR1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L0dQVVByb2Nlc3MvR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAKQEAgLTE5
OSwxMiArMTk5LDEwIEBAIHByaXZhdGU6CiAgICAgfQogI2VuZGlmCiAKLSNpZiBIQVZFKElPU1VS
RkFDRV9TRVRfT1dORVJTSElQX0lERU5USVRZKQotICAgIHN0ZDo6b3B0aW9uYWw8dGFza19pZF90
b2tlbl90PiB3ZWJQcm9jZXNzSWRlbnRpdHlUb2tlbigpIGNvbnN0IGZpbmFsCisgICAgUmVmUHRy
PFByb2Nlc3NJZGVudGl0eT4gcmVzb3VyY2VPd25lcigpIGNvbnN0IGZpbmFsCiAgICAgewotICAg
ICAgICByZXR1cm4gbV9wcm9jZXNzLndlYlByb2Nlc3NJZGVudGl0eVRva2VuKCk7CisgICAgICAg
IHJldHVybiBtX3Byb2Nlc3Mud2ViUHJvY2Vzc0lkZW50aXR5KCk7CiAgICAgfQotI2VuZGlmCiAK
ICAgICBHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzJiBtX3Byb2Nlc3M7CiB9OwpAQCAtMjIwLDkg
KzIxOCw3IEBAIEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OkdQVUNvbm5lY3Rpb25Ub1dlYlBy
b2Nlc3MoR1BVUHJvY2VzcyYgZ3B1UHJvY2VzcywgV2ViCiAgICAgOiBtX2Nvbm5lY3Rpb24oSVBD
OjpDb25uZWN0aW9uOjpjcmVhdGVTZXJ2ZXJDb25uZWN0aW9uKGNvbm5lY3Rpb25JZGVudGlmaWVy
LCAqdGhpcykpCiAgICAgLCBtX2dwdVByb2Nlc3MoZ3B1UHJvY2VzcykKICAgICAsIG1fd2ViUHJv
Y2Vzc0lkZW50aWZpZXIod2ViUHJvY2Vzc0lkZW50aWZpZXIpCi0jaWYgSEFWRShUQVNLX0lERU5U
SVRZX1RPS0VOKQotICAgICwgbV93ZWJQcm9jZXNzSWRlbnRpdHlUb2tlbihXVEZNb3ZlKHBhcmFt
ZXRlcnMud2ViUHJvY2Vzc0lkZW50aXR5VG9rZW4pKQotI2VuZGlmCisgICAgLCBtX3dlYlByb2Nl
c3NJZGVudGl0eShQcm9jZXNzSWRlbnRpdHk6OmNyZWF0ZShXVEZNb3ZlKHBhcmFtZXRlcnMud2Vi
UHJvY2Vzc0lkZW50aXR5SGFuZGxlKSkpCiAgICAgLCBtX3JlbW90ZU1lZGlhUGxheWVyTWFuYWdl
clByb3h5KG1ha2VVbmlxdWVSZWY8UmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHk+KCp0aGlz
KSkKICAgICAsIG1fc2Vzc2lvbklEKHNlc3Npb25JRCkKICNpZiBQTEFURk9STShDT0NPQSkgJiYg
VVNFKExJQldFQlJUQykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9HUFVD
b25uZWN0aW9uVG9XZWJQcm9jZXNzLmggYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvR1BVQ29u
bmVjdGlvblRvV2ViUHJvY2Vzcy5oCmluZGV4IGFlNzk1MDUyNTg2MGRlM2NmNmEyYjE3ODhmZTM1
YTVlYWJkYTU2N2QuLmUwNDI4Yjg1ZTVjZmRhYzJjNDA2NWE5MTAzYjljNTVlNmI2Y2I1YTggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9uVG9XZWJQcm9j
ZXNzLmgKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlBy
b2Nlc3MuaApAQCAtMzksNiArMzksNyBAQAogI2luY2x1ZGUgPFdlYkNvcmUvTm93UGxheWluZ01h
bmFnZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1BhZ2VJZGVudGlmaWVyLmg+CiAjaW5jbHVkZSA8
V2ViQ29yZS9Qcm9jZXNzSWRlbnRpZmllci5oPgorI2luY2x1ZGUgPFdlYkNvcmUvUHJvY2Vzc0lk
ZW50aXR5Lmg+CiAjaW5jbHVkZSA8cGFsL1Nlc3Npb25JRC5oPgogI2luY2x1ZGUgPHd0Zi9Mb2dn
ZXIuaD4KICNpbmNsdWRlIDx3dGYvTWFjaFNlbmRSaWdodC5oPgpAQCAtMTQ3LDEwICsxNDgsNyBA
QCBwdWJsaWM6CiAgICAgdm9pZCBkaXNwYXRjaERpc3BsYXlXYXNSZWNvbmZpZ3VyZWRGb3JUZXN0
aW5nKCkgeyBkaXNwYXRjaERpc3BsYXlXYXNSZWNvbmZpZ3VyZWQoKTsgfTsKICNlbmRpZgogCi0j
aWYgSEFWRShUQVNLX0lERU5USVRZX1RPS0VOKQotICAgIHRhc2tfaWRfdG9rZW5fdCB3ZWJQcm9j
ZXNzSWRlbnRpdHlUb2tlbigpIGNvbnN0IHsgcmV0dXJuIHN0YXRpY19jYXN0PHRhc2tfaWRfdG9r
ZW5fdD4obV93ZWJQcm9jZXNzSWRlbnRpdHlUb2tlbi5zZW5kUmlnaHQoKSk7IH0KLSNlbmRpZgot
CisgICAgUmVmUHRyPFdlYkNvcmU6OlByb2Nlc3NJZGVudGl0eT4gd2ViUHJvY2Vzc0lkZW50aXR5
KCkgY29uc3QgeyByZXR1cm4gbV93ZWJQcm9jZXNzSWRlbnRpdHk7IH0KICNpZiBFTkFCTEUoRU5D
UllQVEVEX01FRElBKQogICAgIFJlbW90ZUNETUZhY3RvcnlQcm94eSYgY2RtRmFjdG9yeVByb3h5
KCk7CiAjZW5kaWYKQEAgLTI3Myw5ICsyNzEsNyBAQCBwcml2YXRlOgogICAgIElQQzo6TWVzc2Fn
ZVJlY2VpdmVyTWFwIG1fbWVzc2FnZVJlY2VpdmVyTWFwOwogICAgIFJlZjxHUFVQcm9jZXNzPiBt
X2dwdVByb2Nlc3M7CiAgICAgY29uc3QgV2ViQ29yZTo6UHJvY2Vzc0lkZW50aWZpZXIgbV93ZWJQ
cm9jZXNzSWRlbnRpZmllcjsKLSNpZiBIQVZFKFRBU0tfSURFTlRJVFlfVE9LRU4pCi0gICAgTWFj
aFNlbmRSaWdodCBtX3dlYlByb2Nlc3NJZGVudGl0eVRva2VuOwotI2VuZGlmCisgICAgUmVmUHRy
PFdlYkNvcmU6OlByb2Nlc3NJZGVudGl0eT4gbV93ZWJQcm9jZXNzSWRlbnRpdHk7CiAjaWYgRU5B
QkxFKFdFQl9BVURJTykKICAgICBzdGQ6OnVuaXF1ZV9wdHI8UmVtb3RlQXVkaW9EZXN0aW5hdGlv
bk1hbmFnZXI+IG1fcmVtb3RlQXVkaW9EZXN0aW5hdGlvbk1hbmFnZXI7CiAjZW5kaWYKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9HUFVQcm9jZXNzR3JhcGhp
Y3NDb250ZXh0R0wuaCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9HUFVQcm9j
ZXNzR3JhcGhpY3NDb250ZXh0R0wuaAppbmRleCAxZWVlMThkNjJmMDUwOWYwMDlmMzRjM2VkZTY4
ZDM1ZTBkMDg5NjUzLi5lNzI5YTNhNzE1NDUyYzNhZDQ2NGM3Y2M5ZWQ1YzBlY2IzYjExZTA4IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvR1BVUHJvY2Vzc0dy
YXBoaWNzQ29udGV4dEdMLmgKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNz
L0dQVVByb2Nlc3NHcmFwaGljc0NvbnRleHRHTC5oCkBAIC0yOSwxMSArMjksMTMgQEAKICNpbmNs
dWRlIDxXZWJDb3JlL0V4dGVuc2lvbnNHTC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvR3JhcGhpY3ND
b250ZXh0R0xPcGVuR0wuaD4KIAorbmFtZXNwYWNlIFdlYktpdCB7CisKIGNsYXNzIEdQVVByb2Nl
c3NHcmFwaGljc0NvbnRleHRHTE9wZW5HTCBmaW5hbCA6IHB1YmxpYyBXZWJDb3JlOjpHcmFwaGlj
c0NvbnRleHRHTE9wZW5HTCB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZlB0cjxHUFVQcm9jZXNz
R3JhcGhpY3NDb250ZXh0R0xPcGVuR0w+IGNyZWF0ZShXZWJDb3JlOjpHcmFwaGljc0NvbnRleHRH
TEF0dHJpYnV0ZXMgYXR0cmlidXRlcykKKyAgICBzdGF0aWMgUmVmUHRyPEdQVVByb2Nlc3NHcmFw
aGljc0NvbnRleHRHTE9wZW5HTD4gY3JlYXRlKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dEdMQXR0
cmlidXRlcyBhdHRyaWJ1dGVzLCBSZWZQdHI8V2ViQ29yZTo6UHJvY2Vzc0lkZW50aXR5PiByZXNv
dXJjZU93bmVyKQogICAgIHsKLSAgICAgICAgYXV0byBjb250ZXh0ID0gYWRvcHRSZWYoKm5ldyBH
UFVQcm9jZXNzR3JhcGhpY3NDb250ZXh0R0xPcGVuR0woV1RGTW92ZShhdHRyaWJ1dGVzKSkpOwor
ICAgICAgICBhdXRvIGNvbnRleHQgPSBhZG9wdFJlZigqbmV3IEdQVVByb2Nlc3NHcmFwaGljc0Nv
bnRleHRHTE9wZW5HTChXVEZNb3ZlKGF0dHJpYnV0ZXMpLCBXVEZNb3ZlKHJlc291cmNlT3duZXIp
KSk7CiAgICAgICAgIGlmICghY29udGV4dC0+aXNWYWxpZCgpKQogICAgICAgICAgICAgcmV0dXJu
IG51bGxwdHI7CiAgICAgICAgIHJldHVybiBjb250ZXh0OwpAQCAtNDQsMTAgKzQ2LDEyIEBAIHB1
YmxpYzoKICAgICB2b2lkIG1hcmtEaXNwbGF5QnVmZmVySW5Vc2UoKSB7IHJldHVybiBtX3N3YXBD
aGFpbi5tYXJrRGlzcGxheUJ1ZmZlckluVXNlKCk7IH0KICNlbmRpZgogcHJpdmF0ZToKLSAgICBH
UFVQcm9jZXNzR3JhcGhpY3NDb250ZXh0R0xPcGVuR0woV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0
R0xBdHRyaWJ1dGVzIGF0dHJpYnV0ZXMpCi0gICAgICAgIDogR3JhcGhpY3NDb250ZXh0R0xPcGVu
R0woYXR0cmlidXRlcykKKyAgICBHUFVQcm9jZXNzR3JhcGhpY3NDb250ZXh0R0xPcGVuR0woV2Vi
Q29yZTo6R3JhcGhpY3NDb250ZXh0R0xBdHRyaWJ1dGVzJiYgYXR0cmlidXRlcywgUmVmUHRyPFdl
YkNvcmU6OlByb2Nlc3NJZGVudGl0eT4mJiByZXNvdXJjZU93bmVyKQorICAgICAgICA6IEdyYXBo
aWNzQ29udGV4dEdMT3BlbkdMKFdURk1vdmUoYXR0cmlidXRlcyksIFdURk1vdmUocmVzb3VyY2VP
d25lcikpCiAgICAgewogICAgIH0KIH07CiAKK30KKwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xDb2Nv
YS5jcHAgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlR3JhcGhpY3ND
b250ZXh0R0xDb2NvYS5jcHAKaW5kZXggYjQzN2E1YmVlY2Q1ZDZhYzU4M2NhNTk3YTk1ZTI3NzEy
ZmFkZDYyMy4uMGNjMjJiNDMzYTQ1ZTc0ZDU0MGU0ZDU0ZTljYTY3YmIxMDk1ZTFkMyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZUdyYXBoaWNzQ29u
dGV4dEdMQ29jb2EuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9S
ZW1vdGVHcmFwaGljc0NvbnRleHRHTENvY29hLmNwcApAQCAtNDcsOSArNDcsNyBAQCBwdWJsaWM6
CiAgICAgdm9pZCBwcmVwYXJlRm9yRGlzcGxheShDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdURjo6
TWFjaFNlbmRSaWdodCYmKT4mJikgZmluYWw7CiBwcml2YXRlOgogICAgIFdlYkNvcmU6OkdyYXBo
aWNzQ29udGV4dEdMSU9TdXJmYWNlU3dhcENoYWluIG1fc3dhcENoYWluIFdURl9HVUFSREVEX0JZ
X0xPQ0sobV9zdHJlYW1UaHJlYWQpOwotI2lmIEhBVkUoSU9TVVJGQUNFX1NFVF9PV05FUlNISVBf
SURFTlRJVFkpCi0gICAgdGFza19pZF90b2tlbl90IG1fd2ViUHJvY2Vzc0lkZW50aXR5VG9rZW47
Ci0jZW5kaWYKKyAgICBSZWZQdHI8UHJvY2Vzc0lkZW50aXR5PiBtX3Jlc291cmNlT3duZXI7CiB9
OwogCiB9CkBAIC02Myw5ICs2MSw3IEBAIFJlZjxSZW1vdGVHcmFwaGljc0NvbnRleHRHTD4gUmVt
b3RlR3JhcGhpY3NDb250ZXh0R0w6OmNyZWF0ZShHUFVDb25uZWN0aW9uVG9XZWJQCiAKIFJlbW90
ZUdyYXBoaWNzQ29udGV4dEdMQ29jb2E6OlJlbW90ZUdyYXBoaWNzQ29udGV4dEdMQ29jb2EoR1BV
Q29ubmVjdGlvblRvV2ViUHJvY2VzcyYgZ3B1Q29ubmVjdGlvblRvV2ViUHJvY2VzcywgR3JhcGhp
Y3NDb250ZXh0R0xJZGVudGlmaWVyIGdyYXBoaWNzQ29udGV4dEdMSWRlbnRpZmllciwgUmVtb3Rl
UmVuZGVyaW5nQmFja2VuZCYgcmVuZGVyaW5nQmFja2VuZCwgSVBDOjpTdHJlYW1Db25uZWN0aW9u
QnVmZmVyJiYgc3RyZWFtKQogICAgIDogUmVtb3RlR3JhcGhpY3NDb250ZXh0R0woZ3B1Q29ubmVj
dGlvblRvV2ViUHJvY2VzcywgZ3JhcGhpY3NDb250ZXh0R0xJZGVudGlmaWVyLCByZW5kZXJpbmdC
YWNrZW5kLCBXVEZNb3ZlKHN0cmVhbSkpCi0jaWYgSEFWRShJT1NVUkZBQ0VfU0VUX09XTkVSU0hJ
UF9JREVOVElUWSkKLSAgICAsIG1fd2ViUHJvY2Vzc0lkZW50aXR5VG9rZW4oZ3B1Q29ubmVjdGlv
blRvV2ViUHJvY2Vzcy53ZWJQcm9jZXNzSWRlbnRpdHlUb2tlbigpKQotI2VuZGlmCisgICAgLCBt
X3Jlc291cmNlT3duZXIoZ3B1Q29ubmVjdGlvblRvV2ViUHJvY2Vzcy53ZWJQcm9jZXNzSWRlbnRp
dHkoKSkKIHsKIAogfQpAQCAtNzMsNyArNjksNyBAQCBSZW1vdGVHcmFwaGljc0NvbnRleHRHTENv
Y29hOjpSZW1vdGVHcmFwaGljc0NvbnRleHRHTENvY29hKEdQVUNvbm5lY3Rpb25Ub1dlYlBybwog
dm9pZCBSZW1vdGVHcmFwaGljc0NvbnRleHRHTENvY29hOjpwbGF0Zm9ybVdvcmtRdWV1ZUluaXRp
YWxpemUoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0R0xBdHRyaWJ1dGVzJiYgYXR0cmlidXRlcykK
IHsKICAgICBhc3NlcnRJc0N1cnJlbnQobV9zdHJlYW1UaHJlYWQpOwotICAgIG1fY29udGV4dCA9
IEdQVVByb2Nlc3NHcmFwaGljc0NvbnRleHRHTE9wZW5HTDo6Y3JlYXRlKFdURk1vdmUoYXR0cmli
dXRlcykpOworICAgIG1fY29udGV4dCA9IEdQVVByb2Nlc3NHcmFwaGljc0NvbnRleHRHTE9wZW5H
TDo6Y3JlYXRlKFdURk1vdmUoYXR0cmlidXRlcyksIG1fcmVzb3VyY2VPd25lcik7CiB9CiAKIHZv
aWQgUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xDb2NvYTo6cHJlcGFyZUZvckRpc3BsYXkoQ29tcGxl
dGlvbkhhbmRsZXI8dm9pZChXVEY6Ok1hY2hTZW5kUmlnaHQmJik+JiYgY29tcGxldGlvbkhhbmRs
ZXIpCkBAIC04NCwxMCArODAsNiBAQCB2b2lkIFJlbW90ZUdyYXBoaWNzQ29udGV4dEdMQ29jb2E6
OnByZXBhcmVGb3JEaXNwbGF5KENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV1RGOgogICAgIE1hY2hT
ZW5kUmlnaHQgc2VuZFJpZ2h0OwogICAgIGlmIChkaXNwbGF5QnVmZmVyKSB7CiAgICAgICAgIG1f
Y29udGV4dC0+bWFya0Rpc3BsYXlCdWZmZXJJblVzZSgpOwotI2lmIEhBVkUoSU9TVVJGQUNFX1NF
VF9PV05FUlNISVBfSURFTlRJVFkpCi0gICAgICAgIC8vIE1hcmsgdGhlIElPU3VyZmFjZSBhcyBi
ZWluZyBvd25lZCBieSB0aGUgV2ViUHJvY2VzcyBldmVuIHRob3VnaCBpdCB3YXMgY29uc3RydWN0
ZWQgYnkgdGhlIEdQVVByb2Nlc3Mgc28gdGhhdCBKZXRzYW0ga25vd3Mgd2hpY2ggcHJvY2VzcyB0
byBraWxsLgotICAgICAgICBkaXNwbGF5QnVmZmVyLT5zZXRPd25lcnNoaXBJZGVudGl0eShtX3dl
YlByb2Nlc3NJZGVudGl0eVRva2VuKTsKLSNlbmRpZgogICAgICAgICBzZW5kUmlnaHQgPSBkaXNw
bGF5QnVmZmVyLT5jcmVhdGVTZW5kUmlnaHQoKTsKICAgICB9CiAgICAgY29tcGxldGlvbkhhbmRs
ZXIoV1RGTW92ZShzZW5kUmlnaHQpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJv
Y2Vzcy9ncmFwaGljcy9SZW1vdGVJbWFnZUJ1ZmZlci5oIGIvU291cmNlL1dlYktpdC9HUFVQcm9j
ZXNzL2dyYXBoaWNzL1JlbW90ZUltYWdlQnVmZmVyLmgKaW5kZXggYTNkNDk0ZmU4YmY2YTE5NjQ3
ZWYxOTBjOWRiNDA0MmFlY2U2NzIyMC4uMTk5MjU4YjYzZDY4ZTg4YmNhNGE5MDIzNmZlZDQwNDgw
NDFiNjIwYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1Jl
bW90ZUltYWdlQnVmZmVyLmgKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNz
L1JlbW90ZUltYWdlQnVmZmVyLmgKQEAgLTY5LDEzICs2OSwxMSBAQCBwdWJsaWM6CiAgICAgICAg
ICAgICBjb250ZXh0KCkucmVzdG9yZSgpOwogICAgIH0KIAotI2lmIEhBVkUoSU9TVVJGQUNFX1NF
VF9PV05FUlNISVBfSURFTlRJVFkpCi0gICAgdm9pZCBzZXRQcm9jZXNzT3duZXJzaGlwKHRhc2tf
aWRfdG9rZW5fdCBuZXdPd25lcikKKyAgICB2b2lkIHNldE93bmVyc2hpcElkZW50aXR5KFdlYkNv
cmU6OlByb2Nlc3NJZGVudGl0eSogcmVzb3VyY2VPd25lcikKICAgICB7CiAgICAgICAgIGlmICht
X2JhY2tlbmQpCi0gICAgICAgICAgICBtX2JhY2tlbmQtPnNldFByb2Nlc3NPd25lcnNoaXAobmV3
T3duZXIpOworICAgICAgICAgICAgbV9iYWNrZW5kLT5zZXRPd25lcnNoaXBJZGVudGl0eShyZXNv
dXJjZU93bmVyKTsKICAgICB9Ci0jZW5kaWYKIAogcHJpdmF0ZToKICAgICBmcmllbmQgY2xhc3Mg
UmVtb3RlUmVuZGVyaW5nQmFja2VuZDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJv
Y2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmNwcCBiL1NvdXJjZS9XZWJLaXQv
R1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmNwcAppbmRleCBkYjRl
MTM3YjJmNmFkZmI5Y2QxNDc4YTFkODcyZTY2NGQxYTk2ZGViLi4yYzhmNGJlMmIwNzBkZTYxMzA0
YTAyZmJhNjAyMDZjYzdhZGI3NjgzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nl
c3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQuY3BwCkBAIC04NCw2
ICs4NCw3IEBAIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmQ6OlJlbW90ZVJlbmRlcmluZ0JhY2tlbmQo
R1BVQ29ubmVjdGlvblRvV2ViUHJvY2VzcyYgZ3B1Q29uCiAgICAgLCBtX3N0cmVhbUNvbm5lY3Rp
b24oSVBDOjpTdHJlYW1TZXJ2ZXJDb25uZWN0aW9uOjpjcmVhdGUoZ3B1Q29ubmVjdGlvblRvV2Vi
UHJvY2Vzcy5jb25uZWN0aW9uKCksIFdURk1vdmUoc3RyZWFtQnVmZmVyKSwgbV93b3JrUXVldWUu
Z2V0KCkpKQogICAgICwgbV9yZW1vdGVSZXNvdXJjZUNhY2hlKGdwdUNvbm5lY3Rpb25Ub1dlYlBy
b2Nlc3Mud2ViUHJvY2Vzc0lkZW50aWZpZXIoKSkKICAgICAsIG1fZ3B1Q29ubmVjdGlvblRvV2Vi
UHJvY2VzcyhncHVDb25uZWN0aW9uVG9XZWJQcm9jZXNzKQorICAgICwgbV9yZXNvdXJjZU93bmVy
KGdwdUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3Mud2ViUHJvY2Vzc0lkZW50aXR5KCkpCiAgICAgLCBt
X3JlbmRlcmluZ0JhY2tlbmRJZGVudGlmaWVyKGNyZWF0aW9uUGFyYW1ldGVycy5pZGVudGlmaWVy
KQogewogICAgIEFTU0VSVChSdW5Mb29wOjppc01haW4oKSk7CkBAIC0xNzMsMTAgKzE3NCw5IEBA
IHZvaWQgUmVtb3RlUmVuZGVyaW5nQmFja2VuZDo6Y3JlYXRlSW1hZ2VCdWZmZXJXaXRoUXVhbGlm
aWVkSWRlbnRpZmllcihjb25zdCBGbG9hCiAKICAgICBpZiAocmVuZGVyaW5nTW9kZSA9PSBSZW5k
ZXJpbmdNb2RlOjpBY2NlbGVyYXRlZCkgewogICAgICAgICBpZiAoYXV0byBhY2NlbGVyYXRlZElt
YWdlQnVmZmVyID0gQWNjZWxlcmF0ZWRSZW1vdGVJbWFnZUJ1ZmZlcjo6Y3JlYXRlKGxvZ2ljYWxT
aXplLCByZXNvbHV0aW9uU2NhbGUsIGNvbG9yU3BhY2UsIHBpeGVsRm9ybWF0LCAqdGhpcywgaW1h
Z2VCdWZmZXJSZXNvdXJjZUlkZW50aWZpZXIpKSB7Ci0jaWYgSEFWRShJT1NVUkZBQ0VfU0VUX09X
TkVSU0hJUF9JREVOVElUWSkKICAgICAgICAgICAgIC8vIE1hcmsgdGhlIElPU3VyZmFjZSBhcyBi
ZWluZyBvd25lZCBieSB0aGUgV2ViUHJvY2VzcyBldmVuIHRob3VnaCBpdCB3YXMgY29uc3RydWN0
ZWQgYnkgdGhlIEdQVVByb2Nlc3Mgc28gdGhhdCBKZXRzYW0ga25vd3Mgd2hpY2ggcHJvY2VzcyB0
byBraWxsLgotICAgICAgICAgICAgYWNjZWxlcmF0ZWRJbWFnZUJ1ZmZlci0+c2V0UHJvY2Vzc093
bmVyc2hpcChtX2dwdUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MtPndlYlByb2Nlc3NJZGVudGl0eVRv
a2VuKCkpOwotI2VuZGlmCisgICAgICAgICAgICBpZiAobV9yZXNvdXJjZU93bmVyKQorICAgICAg
ICAgICAgICAgIGFjY2VsZXJhdGVkSW1hZ2VCdWZmZXItPnNldE93bmVyc2hpcElkZW50aXR5KG1f
cmVzb3VyY2VPd25lci5nZXQoKSk7CiAgICAgICAgICAgICBpbWFnZUJ1ZmZlciA9IFdURk1vdmUo
YWNjZWxlcmF0ZWRJbWFnZUJ1ZmZlcik7CiAgICAgICAgIH0KICAgICB9CkBAIC0yNjgsNiArMjY4
LDcgQEAgdm9pZCBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kOjpnZXREYXRhVVJMRm9ySW1hZ2VCdWZm
ZXJXaXRoUXVhbGlmaWVkSWRlbnRpZmllcihjb24KICAgICBTdHJpbmcgdXJsU3RyaW5nOwogICAg
IGlmIChhdXRvIGltYWdlQnVmZmVyID0gbV9yZW1vdGVSZXNvdXJjZUNhY2hlLmNhY2hlZEltYWdl
QnVmZmVyKHJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcikpCiAgICAgICAgIHVybFN0cmluZyA9
IGltYWdlQnVmZmVyLT50b0RhdGFVUkwobWltZVR5cGUsIHF1YWxpdHksIHByZXNlcnZlUmVzb2x1
dGlvbik7CisgICAgV1RGTG9nQWx3YXlzKCJEQVRBVVJMOiVzIiwgdXJsU3RyaW5nLnV0ZjgoKS5k
YXRhKCkpOwogICAgIGNvbXBsZXRpb25IYW5kbGVyKFdURk1vdmUodXJsU3RyaW5nKSk7CiB9CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5k
ZXJpbmdCYWNrZW5kLmggYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3Rl
UmVuZGVyaW5nQmFja2VuZC5oCmluZGV4IDE5ZmIxN2YwMjVmYjJjNjVmMWRkZTI3MmMzMGJiMGRl
OTQ1Y2FmOWYuLjllYzk2MmIzMGZmNjY3YTkxN2ZmODZmZGIyZjUzZmEwODJhYjc2MzMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdC
YWNrZW5kLmgKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJl
bmRlcmluZ0JhY2tlbmQuaApAQCAtNTQsNiArNTQsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBj
bGFzcyBEZXN0aW5hdGlvbkNvbG9yU3BhY2U7CiBjbGFzcyBGbG9hdFNpemU7CiBjbGFzcyBOYXRp
dmVJbWFnZTsKK2NsYXNzIFByb2Nlc3NJZGVudGl0eTsKIAogZW51bSBjbGFzcyBSZW5kZXJpbmdN
b2RlIDogYm9vbDsKIApAQCAtMTI5LDYgKzEzMCw3IEBAIHByaXZhdGU6CiAgICAgUmVmPElQQzo6
U3RyZWFtU2VydmVyQ29ubmVjdGlvbj4gbV9zdHJlYW1Db25uZWN0aW9uOwogICAgIFJlbW90ZVJl
c291cmNlQ2FjaGUgbV9yZW1vdGVSZXNvdXJjZUNhY2hlOwogICAgIFJlZjxHUFVDb25uZWN0aW9u
VG9XZWJQcm9jZXNzPiBtX2dwdUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M7CisgICAgUmVmUHRyPFdl
YkNvcmU6OlByb2Nlc3NJZGVudGl0eT4gbV9yZXNvdXJjZU93bmVyOwogICAgIFJlbmRlcmluZ0Jh
Y2tlbmRJZGVudGlmaWVyIG1fcmVuZGVyaW5nQmFja2VuZElkZW50aWZpZXI7CiAgICAgSVBDOjpT
ZW1hcGhvcmUgbV9nZXRQaXhlbEJ1ZmZlclNlbWFwaG9yZTsKICAgICBSZWZQdHI8U2hhcmVkTWVt
b3J5PiBtX2dldFBpeGVsQnVmZmVyU2hhcmVkTWVtb3J5OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9HUFVQcm9jZXNzL3dlYnJ0Yy9MaWJXZWJSVENDb2RlY3NQcm94eS5tbSBiL1NvdXJjZS9X
ZWJLaXQvR1BVUHJvY2Vzcy93ZWJydGMvTGliV2ViUlRDQ29kZWNzUHJveHkubW0KaW5kZXggMTMz
ZTI2ZTQ3NGUxZDMxOTE2M2U1NTcxOTkyZDBjMGM3MTlkZGUxNC4uNzA3YTY1ZTJlMjI0YzlhZDdj
ZjE3NDY1ZjRkYzBhNDIxMzcwMmE1OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9j
ZXNzL3dlYnJ0Yy9MaWJXZWJSVENDb2RlY3NQcm94eS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L0dQ
VVByb2Nlc3Mvd2VicnRjL0xpYldlYlJUQ0NvZGVjc1Byb3h5Lm1tCkBAIC03NywxNCArNzcsMTEg
QEAgdm9pZCBMaWJXZWJSVENDb2RlY3NQcm94eTo6Y2xvc2UoKQogc3RhdGljIEZ1bmN0aW9uPHZv
aWQoQ1ZQaXhlbEJ1ZmZlclJlZiBwaXhlbEJ1ZmZlciwgdWludDMyX3QgdGltZVN0YW1wTnMsIHVp
bnQzMl90IHRpbWVTdGFtcCk+IGNyZWF0ZURlY29kZXJDYWxsYmFjayhSVENEZWNvZGVySWRlbnRp
ZmllciBpZGVudGlmaWVyLCBHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzJiBncHVDb25uZWN0aW9u
VG9XZWJQcm9jZXNzKQogewogICAgIHJldHVybiBbY29ubmVjdGlvbiA9IFJlZiB7IGdwdUNvbm5l
Y3Rpb25Ub1dlYlByb2Nlc3MuY29ubmVjdGlvbigpIH0sCi0jaWYgSEFWRShJT1NVUkZBQ0VfU0VU
X09XTkVSU0hJUF9JREVOVElUWSkKLSAgICAgICAgdG9rZW4gPSBncHVDb25uZWN0aW9uVG9XZWJQ
cm9jZXNzLndlYlByb2Nlc3NJZGVudGl0eVRva2VuKCksCi0jZW5kaWYKKyAgICAgICAgcmVzb3Vy
Y2VPd25lciA9IGdwdUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3Mud2ViUHJvY2Vzc0lkZW50aXR5KCks
CiAgICAgICAgIGlkZW50aWZpZXJdKENWUGl4ZWxCdWZmZXJSZWYgcGl4ZWxCdWZmZXIsIHVpbnQz
Ml90IHRpbWVTdGFtcE5zLCB1aW50MzJfdCB0aW1lU3RhbXApIHsKICAgICAgICAgaWYgKGF1dG8g
c2FtcGxlID0gV2ViQ29yZTo6UmVtb3RlVmlkZW9TYW1wbGU6OmNyZWF0ZShwaXhlbEJ1ZmZlciwg
TWVkaWFUaW1lKHRpbWVTdGFtcE5zLCAxKSkpIHsKLSNpZiBIQVZFKElPU1VSRkFDRV9TRVRfT1dO
RVJTSElQX0lERU5USVRZKQotICAgICAgICAgICAgc2FtcGxlLT5zZXRPd25lcnNoaXBJZGVudGl0
eSh0b2tlbik7Ci0jZW5kaWYKKyAgICAgICAgICAgIGlmIChyZXNvdXJjZU93bmVyKQorICAgICAg
ICAgICAgICAgIHNhbXBsZS0+c2V0T3duZXJzaGlwSWRlbnRpdHkocmVzb3VyY2VPd25lci5nZXQo
KSk7CiAgICAgICAgICAgICBjb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpMaWJXZWJSVENDb2Rl
Y3M6OkNvbXBsZXRlZERlY29kaW5nIHsgaWRlbnRpZmllciwgdGltZVN0YW1wLCAqc2FtcGxlIH0s
IDApOwogICAgICAgICB9CiAgICAgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVk
L0dQVVByb2Nlc3NDb25uZWN0aW9uUGFyYW1ldGVycy5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQv
R1BVUHJvY2Vzc0Nvbm5lY3Rpb25QYXJhbWV0ZXJzLmgKaW5kZXggNDE1OWRjNmVkNDdkNmRjMTcz
ZTkxYjY4MzJhMWJiMWJhNTVmNWUxNC4uZGRmYTI5ZjU2MWFhZGQ4MDg5YmRhNjUzYjQ4YWYyMDk3
ODQzMDBkMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvR1BVUHJvY2Vzc0Nvbm5l
Y3Rpb25QYXJhbWV0ZXJzLmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvR1BVUHJvY2Vzc0Nv
bm5lY3Rpb25QYXJhbWV0ZXJzLmgKQEAgLTI3LDE0ICsyNywxMiBAQAogCiAjaWYgRU5BQkxFKEdQ
VV9QUk9DRVNTKQogCi0jaW5jbHVkZSA8d3RmL01hY2hTZW5kUmlnaHQuaD4KKyNpbmNsdWRlIDxX
ZWJDb3JlL1Byb2Nlc3NJZGVudGl0eS5oPgogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogc3RydWN0
IEdQVVByb2Nlc3NDb25uZWN0aW9uUGFyYW1ldGVycyB7Ci0jaWYgSEFWRShUQVNLX0lERU5USVRZ
X1RPS0VOKQotICAgIE1hY2hTZW5kUmlnaHQgd2ViUHJvY2Vzc0lkZW50aXR5VG9rZW47Ci0jZW5k
aWYKKyAgICBXZWJDb3JlOjpQcm9jZXNzSWRlbnRpdHk6OkhhbmRsZSB3ZWJQcm9jZXNzSWRlbnRp
dHlIYW5kbGU7CiAgICAgVmVjdG9yPFN0cmluZz4gb3ZlcnJpZGVMYW5ndWFnZXM7CiAjaWYgRU5B
QkxFKElQQ19URVNUSU5HX0FQSSkKICAgICBib29sIGlnbm9yZUludmFsaWRNZXNzYWdlRm9yVGVz
dGluZyB7IGZhbHNlIH07CkBAIC00NSw5ICs0Myw3IEBAIHN0cnVjdCBHUFVQcm9jZXNzQ29ubmVj
dGlvblBhcmFtZXRlcnMgewogCiAgICAgdm9pZCBlbmNvZGUoSVBDOjpFbmNvZGVyJiBlbmNvZGVy
KSBjb25zdAogICAgIHsKLSNpZiBIQVZFKFRBU0tfSURFTlRJVFlfVE9LRU4pCi0gICAgICAgIGVu
Y29kZXIgPDwgd2ViUHJvY2Vzc0lkZW50aXR5VG9rZW47Ci0jZW5kaWYKKyAgICAgICAgZW5jb2Rl
ciA8PCB3ZWJQcm9jZXNzSWRlbnRpdHlIYW5kbGU7CiAgICAgICAgIGVuY29kZXIgPDwgb3ZlcnJp
ZGVMYW5ndWFnZXM7CiAjaWYgRU5BQkxFKElQQ19URVNUSU5HX0FQSSkKICAgICAgICAgZW5jb2Rl
ciA8PCBpZ25vcmVJbnZhbGlkTWVzc2FnZUZvclRlc3Rpbmc7CkBAIC01OSwxMiArNTUsMTAgQEAg
c3RydWN0IEdQVVByb2Nlc3NDb25uZWN0aW9uUGFyYW1ldGVycyB7CiAKICAgICBzdGF0aWMgc3Rk
OjpvcHRpb25hbDxHUFVQcm9jZXNzQ29ubmVjdGlvblBhcmFtZXRlcnM+IGRlY29kZShJUEM6OkRl
Y29kZXImIGRlY29kZXIpCiAgICAgewotI2lmIEhBVkUoVEFTS19JREVOVElUWV9UT0tFTikKLSAg
ICAgICAgc3RkOjpvcHRpb25hbDxNYWNoU2VuZFJpZ2h0PiB3ZWJQcm9jZXNzSWRlbnRpdHlUb2tl
bjsKLSAgICAgICAgZGVjb2RlciA+PiB3ZWJQcm9jZXNzSWRlbnRpdHlUb2tlbjsKLSAgICAgICAg
aWYgKCF3ZWJQcm9jZXNzSWRlbnRpdHlUb2tlbikKKyAgICAgICAgc3RkOjpvcHRpb25hbDxXZWJD
b3JlOjpQcm9jZXNzSWRlbnRpdHk6OkhhbmRsZT4gd2ViUHJvY2Vzc0lkZW50aXR5SGFuZGxlOwor
ICAgICAgICBkZWNvZGVyID4+IHdlYlByb2Nlc3NJZGVudGl0eUhhbmRsZTsKKyAgICAgICAgaWYg
KCF3ZWJQcm9jZXNzSWRlbnRpdHlIYW5kbGUpCiAgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxs
b3B0OwotI2VuZGlmCiAKICAgICAgICAgc3RkOjpvcHRpb25hbDxWZWN0b3I8U3RyaW5nPj4gb3Zl
cnJpZGVMYW5ndWFnZXM7CiAgICAgICAgIGRlY29kZXIgPj4gb3ZlcnJpZGVMYW5ndWFnZXM7CkBA
IC04NSw5ICs3OSw3IEBAIHN0cnVjdCBHUFVQcm9jZXNzQ29ubmVjdGlvblBhcmFtZXRlcnMgewog
I2VuZGlmCiAKICAgICAgICAgcmV0dXJuIEdQVVByb2Nlc3NDb25uZWN0aW9uUGFyYW1ldGVycyB7
Ci0jaWYgSEFWRShUQVNLX0lERU5USVRZX1RPS0VOKQotICAgICAgICAgICAgV1RGTW92ZSgqd2Vi
UHJvY2Vzc0lkZW50aXR5VG9rZW4pLAotI2VuZGlmCisgICAgICAgICAgICBXVEZNb3ZlKCp3ZWJQ
cm9jZXNzSWRlbnRpdHlIYW5kbGUpLAogICAgICAgICAgICAgV1RGTW92ZSgqb3ZlcnJpZGVMYW5n
dWFnZXMpLAogI2lmIEVOQUJMRShJUENfVEVTVElOR19BUEkpCiAgICAgICAgICAgICAqaWdub3Jl
SW52YWxpZE1lc3NhZ2VGb3JUZXN0aW5nLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5LmNwcAppbmRl
eCA5OTYyNjg5OTA3YzY3YjVjN2E1NjRkODE1MzI1MWNmNTUzNDdlNWJkLi44YjFmM2EyNjY1NmFi
MDVmMDE3MGRjZTZiZTJjMmUzZWZkZTUzOTU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5LmNw
cApAQCAtNTcsOSArNTcsMTAgQEAgY2xhc3MgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6
U291cmNlUHJveHkKICAgICAsIHByaXZhdGUgUmVhbHRpbWVNZWRpYVNvdXJjZTo6VmlkZW9TYW1w
bGVPYnNlcnZlciB7CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6Ci0gICAg
U291cmNlUHJveHkoUmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgaWQsIFJlZjxJUEM6OkNv
bm5lY3Rpb24+JiYgY29ubmVjdGlvbiwgUmVmPFJlYWx0aW1lTWVkaWFTb3VyY2U+JiYgc291cmNl
KQorICAgIFNvdXJjZVByb3h5KFJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIGlkLCBSZWY8
SVBDOjpDb25uZWN0aW9uPiYmIGNvbm5lY3Rpb24sIFJlZlB0cjxQcm9jZXNzSWRlbnRpdHk+JiYg
cmVzb3VyY2VPd25lciwgUmVmPFJlYWx0aW1lTWVkaWFTb3VyY2U+JiYgc291cmNlKQogICAgICAg
ICA6IG1faWQoaWQpCiAgICAgICAgICwgbV9jb25uZWN0aW9uKFdURk1vdmUoY29ubmVjdGlvbikp
CisgICAgICAgICwgbV9yZXNvdXJjZU93bmVyKFdURk1vdmUocmVzb3VyY2VPd25lcikpCiAgICAg
ICAgICwgbV9zb3VyY2UoV1RGTW92ZShzb3VyY2UpKQogICAgIHsKICAgICAgICAgbV9zb3VyY2Ut
PmFkZE9ic2VydmVyKCp0aGlzKTsKQEAgLTEyNSw5ICsxMjYsNiBAQCBwdWJsaWM6CiAgICAgfQog
CiAgICAgdm9pZCBzZXRTaG91bGRBcHBseVJvdGF0aW9uKGJvb2wgc2hvdWxkQXBwbHlSb3RhdGlv
bikgeyBtX3Nob3VsZEFwcGx5Um90YXRpb24gPSB0cnVlOyB9Ci0jaWYgSEFWRShJT1NVUkZBQ0Vf
U0VUX09XTkVSU0hJUF9JREVOVElUWSkKLSAgICB2b2lkIHNldFdlYlByb2Nlc3NJZGVudGl0eVRv
a2VuKHN0ZDo6b3B0aW9uYWw8dGFza19pZF90b2tlbl90PiB0b2tlbikgeyBtX3dlYlByb2Nlc3NJ
ZGVudGl0eVRva2VuID0gdG9rZW47fQotI2VuZGlmCiAKIHByaXZhdGU6CiAgICAgdm9pZCBzb3Vy
Y2VTdG9wcGVkKCkgZmluYWwgewpAQCAtMTg4LDEwICsxODYsOCBAQCBwcml2YXRlOgogICAgICAg
ICB9IGVsc2UKICAgICAgICAgICAgIHJlbW90ZVNhbXBsZSA9IFJlbW90ZVZpZGVvU2FtcGxlOjpj
cmVhdGUoc2FtcGxlKTsKICAgICAgICAgaWYgKHJlbW90ZVNhbXBsZSkgewotI2lmIEhBVkUoSU9T
VVJGQUNFX1NFVF9PV05FUlNISVBfSURFTlRJVFkpCi0gICAgICAgICAgICBpZiAobV93ZWJQcm9j
ZXNzSWRlbnRpdHlUb2tlbikKLSAgICAgICAgICAgICAgICByZW1vdGVTYW1wbGUtPnNldE93bmVy
c2hpcElkZW50aXR5KCptX3dlYlByb2Nlc3NJZGVudGl0eVRva2VuKTsKLSNlbmRpZgorICAgICAg
ICAgICAgaWYgKG1fcmVzb3VyY2VPd25lcikKKyAgICAgICAgICAgICAgICByZW1vdGVTYW1wbGUt
PnNldE93bmVyc2hpcElkZW50aXR5KG1fcmVzb3VyY2VPd25lci5nZXQoKSk7CiAgICAgICAgICAg
ICBtX2Nvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6OlJlbW90ZUNhcHR1cmVTYW1wbGVNYW5hZ2Vy
OjpWaWRlb1NhbXBsZUF2YWlsYWJsZShtX2lkLCBXVEZNb3ZlKCpyZW1vdGVTYW1wbGUpKSwgMCk7
CiAgICAgICAgIH0KICAgICB9CkBAIC0yNDQsNiArMjQwLDcgQEAgcHJpdmF0ZToKICAgICBSZWFs
dGltZU1lZGlhU291cmNlSWRlbnRpZmllciBtX2lkOwogICAgIFdlYWtQdHI8UGxhdGZvcm1NZWRp
YVNlc3Npb25NYW5hZ2VyPiBtX3Nlc3Npb25NYW5hZ2VyOwogICAgIFJlZjxJUEM6OkNvbm5lY3Rp
b24+IG1fY29ubmVjdGlvbjsKKyAgICBSZWZQdHI8UHJvY2Vzc0lkZW50aXR5PiBtX3Jlc291cmNl
T3duZXI7CiAgICAgUmVmPFJlYWx0aW1lTWVkaWFTb3VyY2U+IG1fc291cmNlOwogICAgIHN0ZDo6
dW5pcXVlX3B0cjxDQVJpbmdCdWZmZXI+IG1fcmluZ0J1ZmZlcjsKICAgICBDQUF1ZGlvU3RyZWFt
RGVzY3JpcHRpb24gbV9kZXNjcmlwdGlvbiB7IH07CkBAIC0yNTcsOSArMjU0LDYgQEAgcHJpdmF0
ZToKICAgICBzaXplX3QgbV9mcmFtZUNodW5rU2l6ZSB7IDAgfTsKICAgICBNZWRpYVRpbWUgbV9z
dGFydFRpbWU7CiAgICAgYm9vbCBtX3Nob3VsZFJlc2V0IHsgZmFsc2UgfTsKLSNpZiBIQVZFKFRB
U0tfSURFTlRJVFlfVE9LRU4pCi0gICAgc3RkOjpvcHRpb25hbDx0YXNrX2lkX3Rva2VuX3Q+IG1f
d2ViUHJvY2Vzc0lkZW50aXR5VG9rZW47Ci0jZW5kaWYKIH07CiAKIFVzZXJNZWRpYUNhcHR1cmVN
YW5hZ2VyUHJveHk6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkoVW5pcXVlUmVmPENvbm5l
Y3Rpb25Qcm94eT4mJiBjb25uZWN0aW9uUHJveHkpCkBAIC0zMjMsMTIgKzMxNyw3IEBAIHZvaWQg
VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6Y3JlYXRlTWVkaWFTb3VyY2VGb3JDYXB0dXJl
RGV2aWNlV2l0aENvbnN0cmFpCiAgICAgICAgIH0KIAogICAgICAgICBBU1NFUlQoIW1fcHJveGll
cy5jb250YWlucyhpZCkpOwotICAgICAgICBhdXRvIHByb3h5ID0gbWFrZVVuaXF1ZTxTb3VyY2VQ
cm94eT4oaWQsIG1fY29ubmVjdGlvblByb3h5LT5jb25uZWN0aW9uKCksIFdURk1vdmUoc291cmNl
KSk7Ci0jaWYgSEFWRShJT1NVUkZBQ0VfU0VUX09XTkVSU0hJUF9JREVOVElUWSkKLSAgICAgICAg
aWYgKGRldmljZS50eXBlKCkgIT0gV2ViQ29yZTo6Q2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6
TWljcm9waG9uZSkKLSAgICAgICAgICAgIHByb3h5LT5zZXRXZWJQcm9jZXNzSWRlbnRpdHlUb2tl
bihtX2Nvbm5lY3Rpb25Qcm94eS0+d2ViUHJvY2Vzc0lkZW50aXR5VG9rZW4oKSk7Ci0jZW5kaWYK
LQorICAgICAgICBhdXRvIHByb3h5ID0gbWFrZVVuaXF1ZTxTb3VyY2VQcm94eT4oaWQsIG1fY29u
bmVjdGlvblByb3h5LT5jb25uZWN0aW9uKCksIG1fY29ubmVjdGlvblByb3h5LT5yZXNvdXJjZU93
bmVyKCksIFdURk1vdmUoc291cmNlKSk7CiAgICAgICAgIG1fcHJveGllcy5hZGQoaWQsIFdURk1v
dmUocHJveHkpKTsKICAgICB9IGVsc2UKICAgICAgICAgaW52YWxpZENvbnN0cmFpbnRzID0gV1RG
TW92ZShzb3VyY2VPckVycm9yLmVycm9yTWVzc2FnZSk7CkBAIC0zOTMsNyArMzgyLDcgQEAgdm9p
ZCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OjpjbG9uZShSZWFsdGltZU1lZGlhU291cmNl
SWRlbnRpZmllciBjbG9uZWRJRCwKICAgICBNRVNTQUdFX0NIRUNLKG1fcHJveGllcy5jb250YWlu
cyhjbG9uZWRJRCkpOwogICAgIE1FU1NBR0VfQ0hFQ0soIW1fcHJveGllcy5jb250YWlucyhuZXdT
b3VyY2VJRCkpOwogICAgIGlmIChhdXRvKiBwcm94eSA9IG1fcHJveGllcy5nZXQoY2xvbmVkSUQp
KQotICAgICAgICBtX3Byb3hpZXMuYWRkKG5ld1NvdXJjZUlELCBtYWtlVW5pcXVlPFNvdXJjZVBy
b3h5PihuZXdTb3VyY2VJRCwgbV9jb25uZWN0aW9uUHJveHktPmNvbm5lY3Rpb24oKSwgcHJveHkt
PnNvdXJjZSgpLmNsb25lKCkpKTsKKyAgICAgICAgbV9wcm94aWVzLmFkZChuZXdTb3VyY2VJRCwg
bWFrZVVuaXF1ZTxTb3VyY2VQcm94eT4obmV3U291cmNlSUQsIG1fY29ubmVjdGlvblByb3h5LT5j
b25uZWN0aW9uKCksIG1fY29ubmVjdGlvblByb3h5LT5yZXNvdXJjZU93bmVyKCksIHByb3h5LT5z
b3VyY2UoKS5jbG9uZSgpKSk7CiB9CiAKIHZvaWQgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94
eTo6cmVxdWVzdFRvRW5kKFJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIHNvdXJjZUlEKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVy
ZU1hbmFnZXJQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlh
Q2FwdHVyZU1hbmFnZXJQcm94eS5oCmluZGV4IDdhZmY0MjRkNTQwZDNiMWZkZWNkYWJjODY1NWMz
YzU2YzUwYTEwZTUuLmM1ODZjZTNmM2QxMmU3OGUyMzczMmFlMTBjYzg5YjIzODA0YjJiY2QgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVN
YW5hZ2VyUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVk
aWFDYXB0dXJlTWFuYWdlclByb3h5LmgKQEAgLTMyLDYgKzMyLDcgQEAKICNpbmNsdWRlICJVc2Vy
TWVkaWFDYXB0dXJlTWFuYWdlci5oIgogI2luY2x1ZGUgPFdlYkNvcmUvQ2FwdHVyZURldmljZS5o
PgogI2luY2x1ZGUgPFdlYkNvcmUvT3JpZW50YXRpb25Ob3RpZmllci5oPgorI2luY2x1ZGUgPFdl
YkNvcmUvUHJvY2Vzc0lkZW50aXR5Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9SZWFsdGltZU1lZGlh
U291cmNlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9SZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmll
ci5oPgogI2luY2x1ZGUgPHBhbC9zcGkvY29jb2EvVENDU1BJLmg+CkBAIC01OSw5ICs2MCw3IEBA
IHB1YmxpYzoKICAgICAgICAgdmlydHVhbCBib29sIHdpbGxTdGFydENhcHR1cmUoV2ViQ29yZTo6
Q2FwdHVyZURldmljZTo6RGV2aWNlVHlwZSkgY29uc3QgPSAwOwogICAgICAgICB2aXJ0dWFsIExv
Z2dlciYgbG9nZ2VyKCkgPSAwOwogICAgICAgICB2aXJ0dWFsIGJvb2wgc2V0Q2FwdHVyZUF0dHJp
YnV0aW9uU3RyaW5nKCkgeyByZXR1cm4gdHJ1ZTsgfQotI2lmIEhBVkUoSU9TVVJGQUNFX1NFVF9P
V05FUlNISVBfSURFTlRJVFkpCi0gICAgICAgIHZpcnR1YWwgc3RkOjpvcHRpb25hbDx0YXNrX2lk
X3Rva2VuX3Q+IHdlYlByb2Nlc3NJZGVudGl0eVRva2VuKCkgY29uc3QgeyByZXR1cm4geyB9OyB9
OwotI2VuZGlmCisgICAgICAgIHZpcnR1YWwgUmVmUHRyPFdlYkNvcmU6OlByb2Nlc3NJZGVudGl0
eT4gcmVzb3VyY2VPd25lcigpIGNvbnN0IHsgcmV0dXJuIG51bGxwdHI7IH07CiAjaWYgRU5BQkxF
KEFQUF9QUklWQUNZX1JFUE9SVCkKICAgICAgICAgdmlydHVhbCB2b2lkIHNldFRDQ0lkZW50aXR5
KCkgeyB9CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUv
Z3JhcGhpY3MvY29jb2EvSW1hZ2VCdWZmZXJTaGFyZWFibGVNYXBwZWRJT1N1cmZhY2VCYWNrZW5k
LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvY29jb2EvSW1hZ2VC
dWZmZXJTaGFyZWFibGVNYXBwZWRJT1N1cmZhY2VCYWNrZW5kLmNwcAppbmRleCBhZmQyYzdjMDVj
ZmFmZDEzOTkzNDRmNWM2YTc2NGU0ODgwZDI4YmRhLi4xMTNlYWY5MmY4MGY1Mzg2NjBkZmJiNDA2
MGMzYTdjODg4ZjY5MjVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BV
L2dyYXBoaWNzL2NvY29hL0ltYWdlQnVmZmVyU2hhcmVhYmxlTWFwcGVkSU9TdXJmYWNlQmFja2Vu
ZC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9jb2NvYS9J
bWFnZUJ1ZmZlclNoYXJlYWJsZU1hcHBlZElPU3VyZmFjZUJhY2tlbmQuY3BwCkBAIC03NywxMyAr
NzcsMTEgQEAgSW1hZ2VCdWZmZXJCYWNrZW5kSGFuZGxlIEltYWdlQnVmZmVyU2hhcmVhYmxlTWFw
cGVkSU9TdXJmYWNlQmFja2VuZDo6Y3JlYXRlSW1hZ2UKICAgICByZXR1cm4gSW1hZ2VCdWZmZXJC
YWNrZW5kSGFuZGxlKG1fc3VyZmFjZS0+Y3JlYXRlU2VuZFJpZ2h0KCkpOwogfQogCi0jaWYgSEFW
RShJT1NVUkZBQ0VfU0VUX09XTkVSU0hJUF9JREVOVElUWSkKLXZvaWQgSW1hZ2VCdWZmZXJTaGFy
ZWFibGVNYXBwZWRJT1N1cmZhY2VCYWNrZW5kOjpzZXRQcm9jZXNzT3duZXJzaGlwKHRhc2tfaWRf
dG9rZW5fdCBwcm9jZXNzSWRlbnRpdHlUb2tlbikKK3ZvaWQgSW1hZ2VCdWZmZXJTaGFyZWFibGVN
YXBwZWRJT1N1cmZhY2VCYWNrZW5kOjpzZXRPd25lcnNoaXBJZGVudGl0eShXZWJDb3JlOjpQcm9j
ZXNzSWRlbnRpdHkqIHJlc291cmNlT3duZXIpCiB7CiAgICAgQVNTRVJUKHN1cmZhY2UoKSk7Ci0g
ICAgc3VyZmFjZSgpLT5zZXRPd25lcnNoaXBJZGVudGl0eShwcm9jZXNzSWRlbnRpdHlUb2tlbik7
CisgICAgc3VyZmFjZSgpLT5zZXRPd25lcnNoaXBJZGVudGl0eShyZXNvdXJjZU93bmVyKTsKIH0K
LSNlbmRpZgogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9jb2NvYS9JbWFnZUJ1ZmZlclNoYXJlYWJsZU1h
cHBlZElPU3VyZmFjZUJhY2tlbmQuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3Jh
cGhpY3MvY29jb2EvSW1hZ2VCdWZmZXJTaGFyZWFibGVNYXBwZWRJT1N1cmZhY2VCYWNrZW5kLmgK
aW5kZXggZTE0YTU0MGVjZGRkNDcxMTkwOGE3YzE3MWMzYTI1ZWJmZDgwOGRiZS4uYjk3NjMyMjAz
MmU2ZmQxYTMwYjlhMjQ0ZmY4Mzg5NjYwOTU2NDdjMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9jb2NvYS9JbWFnZUJ1ZmZlclNoYXJlYWJsZU1hcHBl
ZElPU3VyZmFjZUJhY2tlbmQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dy
YXBoaWNzL2NvY29hL0ltYWdlQnVmZmVyU2hhcmVhYmxlTWFwcGVkSU9TdXJmYWNlQmFja2VuZC5o
CkBAIC0zMSw2ICszMSwxMCBAQAogI2luY2x1ZGUgPFdlYkNvcmUvSW1hZ2VCdWZmZXJJT1N1cmZh
Y2VCYWNrZW5kLmg+CiAjaW5jbHVkZSA8d3RmL0lzb01hbGxvYy5oPgogCituYW1lc3BhY2UgV2Vi
Q29yZSB7CitjbGFzcyBQcm9jZXNzSWRlbnRpdHk7Cit9CisKIG5hbWVzcGFjZSBXZWJLaXQgewog
CiBjbGFzcyBTaGFyZWFibGVCaXRtYXA7CkBAIC00Niw5ICs1MCw3IEBAIHB1YmxpYzoKIAogICAg
IEltYWdlQnVmZmVyQmFja2VuZEhhbmRsZSBjcmVhdGVJbWFnZUJ1ZmZlckJhY2tlbmRIYW5kbGUo
KSBjb25zdDsKIAotI2lmIEhBVkUoSU9TVVJGQUNFX1NFVF9PV05FUlNISVBfSURFTlRJVFkpCi0g
ICAgdm9pZCBzZXRQcm9jZXNzT3duZXJzaGlwKHRhc2tfaWRfdG9rZW5fdCk7Ci0jZW5kaWYKKyAg
ICB2b2lkIHNldE93bmVyc2hpcElkZW50aXR5KFdlYkNvcmU6OlByb2Nlc3NJZGVudGl0eSogcmVz
b3VyY2VPd25lcik7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9XZWJQcm9jZXNzQ29jb2EubW0gYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvV2ViUHJvY2Vzc0NvY29hLm1tCmluZGV4IDAzNGUyYjQ4
YWEwMTVhZjdjZWQ3NjZkZTlhY2U4MjhkZWQxMjI2NDkuLjY0MjVmMzk5NjU3ZDAwM2IwZmFlMjdk
NmE1YTMyNGQxZTRjYTFmZjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9j
b2NvYS9XZWJQcm9jZXNzQ29jb2EubW0KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2Nv
Y29hL1dlYlByb2Nlc3NDb2NvYS5tbQpAQCAtMTI0MiwxNCArMTI0Miw3IEBAIHZvaWQgV2ViUHJv
Y2Vzczo6d2FpdEZvclBlbmRpbmdQYXN0ZWJvYXJkV3JpdGVzVG9GaW5pc2goY29uc3QgU3RyaW5n
JiBwYXN0ZWJvYXJkCiAjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQogdm9pZCBXZWJQcm9jZXNzOjpw
bGF0Zm9ybUluaXRpYWxpemVHUFVQcm9jZXNzQ29ubmVjdGlvblBhcmFtZXRlcnMoR1BVUHJvY2Vz
c0Nvbm5lY3Rpb25QYXJhbWV0ZXJzJiBwYXJhbWV0ZXJzKQogewotI2lmIEhBVkUoVEFTS19JREVO
VElUWV9UT0tFTikKLSAgICB0YXNrX2lkX3Rva2VuX3QgaWRlbnRpdHlUb2tlbjsKLSAgICBrZXJu
X3JldHVybl90IGtyID0gdGFza19jcmVhdGVfaWRlbnRpdHlfdG9rZW4obWFjaF90YXNrX3NlbGYo
KSwgJmlkZW50aXR5VG9rZW4pOwotICAgIGlmIChrciA9PSBLRVJOX1NVQ0NFU1MpCi0gICAgICAg
IHBhcmFtZXRlcnMud2ViUHJvY2Vzc0lkZW50aXR5VG9rZW4gPSBNYWNoU2VuZFJpZ2h0OjphZG9w
dChpZGVudGl0eVRva2VuKTsKLSAgICBlbHNlCi0gICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKFBy
b2Nlc3MsICJDYWxsIHRvIHRhc2tfY3JlYXRlX2lkZW50aXR5X3Rva2VuKCkgZmFpbGVkOiAle3By
aXZhdGV9cyAoJXgpIiwgbWFjaF9lcnJvcl9zdHJpbmcoa3IpLCBrcik7Ci0jZW5kaWYKKyAgICBw
YXJhbWV0ZXJzLndlYlByb2Nlc3NJZGVudGl0eUhhbmRsZSA9IFByb2Nlc3NJZGVudGl0eTo6aGFu
ZGxlRm9yQ3VycmVudFByb2Nlc3MoKTsKIAogICAgIHBhcmFtZXRlcnMub3ZlcnJpZGVMYW5ndWFn
ZXMgPSB1c2VyUHJlZmVycmVkTGFuZ3VhZ2VzT3ZlcnJpZGUoKTsKIH0KZGlmZiAtLWdpdCBhL1Rv
b2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCBhMDQwOGUzMDFmMDA3ZjI2YTUw
NmNiOTI0ZjQ1NjA4NThiZjgxOTkwLi5kNjcxNGQ4MDVkZTNlMWRiZjhlOTEwYWZiNzMxMWQ2MTg0
OTJiYTNiIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMTYgQEAKKzIwMjEtMTEtMTEgIEtpbW1vIEtpbm51bmVuICA8a2tpbm51bmVu
QGFwcGxlLmNvbT4KKworICAgICAgICBJT1N1cmZhY2UgbWVtb3J5IGF0dHJpYnV0aW9uIGlzIGhh
cmQgdG8gdXNlIGluIGNvbnN0cnVjdG9ycworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MjMyOTg4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgVXBkYXRlIGNvbnN0cnVjdG9yIGNhbGxpbmcgYmFzZSBjbGFzcyBj
b25zdHJ1Y3Rvci4KKworICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9jb2Nv
YS9UZXN0R3JhcGhpY3NDb250ZXh0R0xPcGVuR0xDb2NvYS5tbToKKyAgICAgICAgKFRlc3RXZWJL
aXRBUEk6OldlYkNvcmU6OlRlc3RlZEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMOjpjcmVhdGUpOgor
ICAgICAgICAoVGVzdFdlYktpdEFQSTo6V2ViQ29yZTo6VGVzdGVkR3JhcGhpY3NDb250ZXh0R0xP
cGVuR0w6OlRlc3RlZEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMKToKKwogMjAyMS0xMS0xMCAgQ2hy
aXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIFdlIHNob3VsZCBub3Qga2ls
bCBhbGwgV2ViQ29udGVudCBwcm9jZXNzZXMgd2hlbmV2ZXIgdGhlIFdlYkF1dGhuIHByb2Nlc3Mg
Y3Jhc2hlcwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL2Nv
Y29hL1Rlc3RHcmFwaGljc0NvbnRleHRHTE9wZW5HTENvY29hLm1tIGIvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJDb3JlL2NvY29hL1Rlc3RHcmFwaGljc0NvbnRleHRHTE9wZW5HTENvY29h
Lm1tCmluZGV4IDkxN2QyZTgxNjBhNTMyYmY2Njc0YTQyMDU1N2UyNGQ1YWJhNzgzZjYuLjhjOGVh
OGZkOGJlMzFiMGRmY2E4MDdlYjY1ZDBlMjcxODFiOGRkOWMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9jb2NvYS9UZXN0R3JhcGhpY3NDb250ZXh0R0xPcGVu
R0xDb2NvYS5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvY29jb2Ev
VGVzdEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMQ29jb2EubW0KQEAgLTM5LDEyICszOSwxMiBAQCBj
bGFzcyBUZXN0ZWRHcmFwaGljc0NvbnRleHRHTE9wZW5HTCA6IHB1YmxpYyBHcmFwaGljc0NvbnRl
eHRHTE9wZW5HTCB7CiBwdWJsaWM6CiAgICAgc3RhdGljIFJlZlB0cjxUZXN0ZWRHcmFwaGljc0Nv
bnRleHRHTE9wZW5HTD4gY3JlYXRlKEdyYXBoaWNzQ29udGV4dEdMQXR0cmlidXRlcyBhdHRyaWJ1
dGVzKQogICAgIHsKLSAgICAgICAgYXV0byBjb250ZXh0ID0gYWRvcHRSZWYoKm5ldyBUZXN0ZWRH
cmFwaGljc0NvbnRleHRHTE9wZW5HTChXVEZNb3ZlKGF0dHJpYnV0ZXMpKSk7CisgICAgICAgIGF1
dG8gY29udGV4dCA9IGFkb3B0UmVmKCpuZXcgVGVzdGVkR3JhcGhpY3NDb250ZXh0R0xPcGVuR0wo
V1RGTW92ZShhdHRyaWJ1dGVzKSwgeyB9KSk7CiAgICAgICAgIHJldHVybiBjb250ZXh0OwogICAg
IH0KIHByaXZhdGU6Ci0gICAgVGVzdGVkR3JhcGhpY3NDb250ZXh0R0xPcGVuR0woR3JhcGhpY3ND
b250ZXh0R0xBdHRyaWJ1dGVzIGF0dHJpYnV0ZXMpCi0gICAgICAgIDogR3JhcGhpY3NDb250ZXh0
R0xPcGVuR0woV1RGTW92ZShhdHRyaWJ1dGVzKSkKKyAgICBUZXN0ZWRHcmFwaGljc0NvbnRleHRH
TE9wZW5HTChHcmFwaGljc0NvbnRleHRHTEF0dHJpYnV0ZXMgYXR0cmlidXRlcywgUmVmUHRyPFBy
b2Nlc3NJZGVudGl0eT4gcmVzb3VyY2VPd25lcikKKyAgICAgICAgOiBHcmFwaGljc0NvbnRleHRH
TE9wZW5HTChXVEZNb3ZlKGF0dHJpYnV0ZXMpLCBXVEZNb3ZlKHJlc291cmNlT3duZXIpKQogICAg
IHsKICAgICB9CiB9Owo=
</data>
<flag name="commit-queue"
          id="468772"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>443932</attachid>
            <date>2021-11-11 03:32:10 -0800</date>
            <delta_ts>2021-11-11 11:58:57 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-232988-20211111133208.patch</filename>
            <type>text/plain</type>
            <size>52309</size>
            <attacher name="Kimmo Kinnunen">kkinnunen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg1NjIyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzEzMjQzOGVjMDliZTE4
MTE0NjI5NmIyYmYyMmViYWRlZWIxY2VkNi4uYmVlZmIyMDQ5MzlkYzI0ZGVhMzJjNzYyMmYyZDE2
NGNmYTUyYzRlZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU3IEBACisyMDIxLTExLTExICBLaW1t
byBLaW5udW5lbiAgPGtraW5udW5lbkBhcHBsZS5jb20+CisKKyAgICAgICAgSU9TdXJmYWNlIG1l
bW9yeSBhdHRyaWJ1dGlvbiBpcyBoYXJkIHRvIHVzZSBpbiBjb25zdHJ1Y3RvcnMKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMjk4OAorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBXZWJDb3JlOjpQcm9j
ZXNzSWRlbnRpdHkgdHlwZSB0aGF0IGNhbiBiZSB1c2VkIHRvIGNvbW11bmljYXRlIG1lbW9yeSBh
dHRyaWJ1dGlvbi4KKyAgICAgICAgRm9yIG5vbi1Db2NvYSBwb3J0cywgdGhpcyBpcyBudWxscHRy
LgorICAgICAgICBUaGlzIGlzIHVzZWQgaW4gV2ViQ29yZSB0byBzZXQgdGhlIG1lbW9yeSBhdHRy
aWJ1dGlvbiBvZiBJT1N1cmZhY2UgYW5kIG9iamVjdHMKKyAgICAgICAgdGhhdCBob2xkIElPU3Vy
ZmFjZXMuCisgICAgICAgIFRoaXMgaXMgaW5zdGFudGlhdGVkIGluIFdlYktpdC4KKyAgICAgICAg
Q3VycmVudGx5IHRoZSBvbmx5IHVzZWZ1bCB3YXkgdG8gaW5zdGFudGlhdGUgUHJvY2Vzc0lkZW50
aXR5IGlzIGJ5IHJlY2VpdmluZworICAgICAgICB0aGUgUHJvY2Vzc0lkZW50aXR5OjpIYW5kbGUg
YXMgYSBtZXNzYWdlIGFuZCBjcmVhdGUgaXQgdGhpcyB3YXkgZm9yIHRoZQorICAgICAgICBzZW5k
ZXIgcHJvY2Vzcy4KKworICAgICAgICBObyBuZXcgdGVzdHMsIHJlZmFjdG9yLgorCisgICAgICAg
ICogSGVhZGVycy5jbWFrZToKKyAgICAgICAgKiBTb3VyY2VzLnR4dDoKKyAgICAgICAgKiBXZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogcGxhdGZvcm0vTG9nZ2lu
Zy5oOgorICAgICAgICBBZGQgV2ViQ29yZSBQcm9jZXNzIGxvZyB0YWcgc2luY2UgdGhlIGNvZGUg
bW92ZWQgZnJvbSBXZWJLaXQgdG8gUHJvY2Vzc0lkZW50aXR5CisgICAgICAgIHVzZWQgdGhhdCB0
YWcgdG8gbG9nLgorICAgICAgICAqIHBsYXRmb3JtL1Byb2Nlc3NJZGVudGl0eS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpQcm9jZXNzSWRlbnRpdHk6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3Jl
OjpQcm9jZXNzSWRlbnRpdHk6OlByb2Nlc3NJZGVudGl0eSk6CisgICAgICAgIChXZWJDb3JlOjpQ
cm9jZXNzSWRlbnRpdHk6OmhhbmRsZUZvckN1cnJlbnRQcm9jZXNzKToKKyAgICAgICAgKFdlYkNv
cmU6OlByb2Nlc3NJZGVudGl0eTo6aGFuZGxlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlBy
b2Nlc3NJZGVudGl0eTo6dGFza0lkVG9rZW4gY29uc3QpOgorICAgICAgICAqIHBsYXRmb3JtL1By
b2Nlc3NJZGVudGl0eS5oOgorICAgICAgICBBZGQgdGhlIFByb2Nlc3NJZGVudGl0eSB0eXBlIHRo
YXQgY2FuIGJlIHVzZWQgdG8gY29tbXVuaWNhdGUgbWVtb3J5IGF0dHJpYnV0aW9uLgorCisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvUmVtb3RlVmlkZW9TYW1wbGUuaDoKKyAgICAgICAgKFdl
YkNvcmU6OlJlbW90ZVZpZGVvU2FtcGxlOjpzZXRPd25lcnNoaXBJZGVudGl0eSk6CisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvY2cvSW1hZ2VCdWZmZXJVdGlsaXRpZXNDRy5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjplbmNvZGUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NvY29h
L0dyYXBoaWNzQ29udGV4dEdMT3BlbkdMQ29jb2EubW06CisgICAgICAgIChXZWJDb3JlOjpHcmFw
aGljc0NvbnRleHRHTE9wZW5HTDo6R3JhcGhpY3NDb250ZXh0R0xPcGVuR0wpOgorICAgICAgICAo
V2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0R0xPcGVuR0w6OmFsbG9jYXRlQW5kQmluZERpc3BsYXlC
dWZmZXJCYWNraW5nKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9JT1N1cmZh
Y2UuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9JT1N1cmZhY2UubW06Cisg
ICAgICAgIChXZWJDb3JlOjpJT1N1cmZhY2U6OnNldE93bmVyc2hpcElkZW50aXR5KToKKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9XZWJQcm9jZXNzR3JhcGhpY3NDb250ZXh0R0xP
cGVuR0xDb2NvYS5tbToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR3JhcGhp
Y3NDb250ZXh0R0xPcGVuR0wuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAv
R3JhcGhpY3NDb250ZXh0R0xUZXh0dXJlTWFwcGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okdy
YXBoaWNzQ29udGV4dEdMT3BlbkdMOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhp
Y3NDb250ZXh0R0xPcGVuR0w6OkdyYXBoaWNzQ29udGV4dEdMT3BlbkdMKToKKyAgICAgICAgQWRk
IGFuIGV4YW1wbGUgdXNlIHdoZXJlIHRoZSBjb25zdHJ1Y3RvciB0YWtlcyB0aGUgbWVtb3J5IGF0
dHJpYnV0aW9uIHRva2VuLgorICAgICAgICBUaGlzIG1heSBiZSBuZWVkZWQgaW4gdGhlIGZ1dHVy
ZSB3aGVuIHRoZSB0b2tlbiBpcyB1c2VkIGFzIGEgcGFyYW1ldGVyIGluCisgICAgICAgIHRoZSBB
TkdMRSBjb250ZXh0IGNyZWF0aW9uLgorICAgICAgICBVc2UgdGhlIHRva2VuIGluIGNyZWF0aW5n
IHRoZSBJT1N1cmZhY2UuIFRoaXMgZml4ZXMgYSBidWcgd2hlcmUgV2ViR0wKKyAgICAgICAgYmFj
ayBidWZmZXJzIHdvdWxkIG5vdCBiZSBhdHRyaWJ1dGVkIHVudGlsIHRoZXkgd2VyZSBzZW50IHRv
IFdQLgorCiAyMDIxLTExLTExICBBbnR0aSBLb2l2aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KIAog
ICAgICAgICBVc2UgbmFycm93ZXIgdHlwZXMgZm9yIHN0eWxlIHNjb3BlIG9yZGluYWwgYW5kIGNh
c2NhZGUgbGF5ZXIgcHJpb3JpdHkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9n
IGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggNGUxNTE5NmQ4Y2ZkZDc0MDI0YmE3YWRm
NmNmZDU4N2VjZDVkZDQ4Mi4uNmEyODQwOWVkZjA2Zjk2ZDM0OTljMzA1NTNiZjViNmJlYjBlMGRj
MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktp
dC9DaGFuZ2VMb2cKQEAgLTEsMyArMSw1NCBAQAorMjAyMS0xMS0xMSAgS2ltbW8gS2lubnVuZW4g
IDxra2lubnVuZW5AYXBwbGUuY29tPgorCisgICAgICAgIElPU3VyZmFjZSBtZW1vcnkgYXR0cmli
dXRpb24gaXMgaGFyZCB0byB1c2UgaW4gY29uc3RydWN0b3JzCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzI5ODgKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZW1vdmUgaWZkZWZzIGFuZCBkaXJlY3QgdXNl
IG9mIHRhc2tfaWRfdG9rZW5fdC4KKyAgICAgICAgSW5zdGVhZCwgdXNlIFdlYkNvcmU6OlByb2Nl
c3NJZGVudGlmaWVyLiBUaGlzIHdheSB0aGUKKyAgICAgICAgY3Jvc3MtcGxhdGZvcm0gY29kZSBp
cyBlYXNpZXIgdG8gYXV0aG9yLgorCisgICAgICAgICogR1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9u
VG9XZWJQcm9jZXNzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6R1BVQ29ubmVjdGlvblRvV2ViUHJv
Y2Vzczo6R1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcyk6CisgICAgICAgICogR1BVUHJvY2Vzcy9H
UFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmg6CisgICAgICAgIChXZWJLaXQ6OkdQVUNvbm5lY3Rp
b25Ub1dlYlByb2Nlc3M6OndlYlByb2Nlc3NJZGVudGl0eSBjb25zdCk6CisgICAgICAgIChXZWJL
aXQ6OkdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OndlYlByb2Nlc3NJZGVudGl0eVRva2VuIGNv
bnN0KTogRGVsZXRlZC4KKyAgICAgICAgKiBHUFVQcm9jZXNzL2dyYXBoaWNzL0dQVVByb2Nlc3NH
cmFwaGljc0NvbnRleHRHTC5oOgorICAgICAgICAqIEdQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3Rl
R3JhcGhpY3NDb250ZXh0R0xDb2NvYS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUdyYXBo
aWNzQ29udGV4dEdMQ29jb2E6OlJlbW90ZUdyYXBoaWNzQ29udGV4dEdMQ29jb2EpOgorICAgICAg
ICAoV2ViS2l0OjpSZW1vdGVHcmFwaGljc0NvbnRleHRHTENvY29hOjpwbGF0Zm9ybVdvcmtRdWV1
ZUluaXRpYWxpemUpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVHcmFwaGljc0NvbnRleHRHTENv
Y29hOjpwcmVwYXJlRm9yRGlzcGxheSk6CisgICAgICAgICogR1BVUHJvY2Vzcy9ncmFwaGljcy9S
ZW1vdGVJbWFnZUJ1ZmZlci5oOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVJbWFnZUJ1ZmZlcjo6
c2V0T3duZXJzaGlwSWRlbnRpdHkpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVJbWFnZUJ1ZmZl
cjo6c2V0UHJvY2Vzc093bmVyc2hpcCk6IERlbGV0ZWQuCisgICAgICAgICogR1BVUHJvY2Vzcy9n
cmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmNwcDoKKyAgICAgICAgKFdlYktpdDo6UmVt
b3RlUmVuZGVyaW5nQmFja2VuZDo6UmVtb3RlUmVuZGVyaW5nQmFja2VuZCk6CisgICAgICAgIChX
ZWJLaXQ6OlJlbW90ZVJlbmRlcmluZ0JhY2tlbmQ6OmNyZWF0ZUltYWdlQnVmZmVyV2l0aFF1YWxp
ZmllZElkZW50aWZpZXIpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZW5kZXJpbmdCYWNrZW5k
OjpnZXREYXRhVVJMRm9ySW1hZ2VCdWZmZXJXaXRoUXVhbGlmaWVkSWRlbnRpZmllcik6CisgICAg
ICAgICogR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmg6CisgICAg
ICAgICogR1BVUHJvY2Vzcy93ZWJydGMvTGliV2ViUlRDQ29kZWNzUHJveHkubW06CisgICAgICAg
IChXZWJLaXQ6OkZ1bmN0aW9uPHZvaWQpOgorICAgICAgICAqIFNoYXJlZC9HUFVQcm9jZXNzQ29u
bmVjdGlvblBhcmFtZXRlcnMuaDoKKyAgICAgICAgKFdlYktpdDo6R1BVUHJvY2Vzc0Nvbm5lY3Rp
b25QYXJhbWV0ZXJzOjplbmNvZGUgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpHUFVQcm9jZXNz
Q29ubmVjdGlvblBhcmFtZXRlcnM6OmRlY29kZSk6CisgICAgICAgICogU2hhcmVkL1dlYkNvcmVB
cmd1bWVudENvZGVycy5jcHA6CisgICAgICAgICogU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVy
cy5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclBy
b3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6
U291cmNlUHJveHk6OlNvdXJjZVByb3h5KToKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhQ2Fw
dHVyZU1hbmFnZXJQcm94eTo6U291cmNlUHJveHk6OnNldFNob3VsZEFwcGx5Um90YXRpb24pOgor
ICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OjpjcmVhdGVNZWRp
YVNvdXJjZUZvckNhcHR1cmVEZXZpY2VXaXRoQ29uc3RyYWludHMpOgorICAgICAgICAoV2ViS2l0
OjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OjpjbG9uZSk6CisgICAgICAgIChXZWJLaXQ6
OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6OlNvdXJjZVByb3h5OjpzZXRXZWJQcm9jZXNz
SWRlbnRpdHlUb2tlbik6IERlbGV0ZWQuCisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL1VzZXJN
ZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkuaDoKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhQ2Fw
dHVyZU1hbmFnZXJQcm94eTo6Q29ubmVjdGlvblByb3h5OjpyZXNvdXJjZU93bmVyIGNvbnN0KToK
KyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6Q29ubmVjdGlv
blByb3h5Ojp3ZWJQcm9jZXNzSWRlbnRpdHlUb2tlbiBjb25zdCk6IERlbGV0ZWQuCisgICAgICAg
ICogV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvY29jb2EvSW1hZ2VCdWZmZXJTaGFyZWFibGVNYXBw
ZWRJT1N1cmZhY2VCYWNrZW5kLmNwcDoKKyAgICAgICAgKFdlYktpdDo6SW1hZ2VCdWZmZXJTaGFy
ZWFibGVNYXBwZWRJT1N1cmZhY2VCYWNrZW5kOjpzZXRPd25lcnNoaXBJZGVudGl0eSk6CisgICAg
ICAgIChXZWJLaXQ6OkltYWdlQnVmZmVyU2hhcmVhYmxlTWFwcGVkSU9TdXJmYWNlQmFja2VuZDo6
c2V0UHJvY2Vzc093bmVyc2hpcCk6IERlbGV0ZWQuCisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUv
Z3JhcGhpY3MvY29jb2EvSW1hZ2VCdWZmZXJTaGFyZWFibGVNYXBwZWRJT1N1cmZhY2VCYWNrZW5k
Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9jb2NvYS9XZWJQcm9jZXNzQ29jb2EubW06CisgICAg
ICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OnBsYXRmb3JtSW5pdGlhbGl6ZUdQVVByb2Nlc3NDb25u
ZWN0aW9uUGFyYW1ldGVycyk6CiAyMDIxLTExLTEwICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBs
ZS5jb20+CiAKICAgICAgICAgV2Ugc2hvdWxkIG5vdCBraWxsIGFsbCBXZWJDb250ZW50IHByb2Nl
c3NlcyB3aGVuZXZlciB0aGUgV2ViQXV0aG4gcHJvY2VzcyBjcmFzaGVzCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlIGIvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFr
ZQppbmRleCAzNjM1ZmM1YmNlOWVhZDQ5MGM4ZDk4NTRmZThlNWZkZTI5Njc0ZDIwLi44MWQ2ZjZh
YTMzMzk0NmIxN2M2YjJkYmQxZGZhMmQ1ZDgwMzYxMWJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9IZWFkZXJzLmNtYWtlCisrKyBiL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKQEAg
LTExNDAsNiArMTE0MCw3IEBAIHNldChXZWJDb3JlX1BSSVZBVEVfRlJBTUVXT1JLX0hFQURFUlMK
ICAgICBwbGF0Zm9ybS9Qb3B1cE1lbnVDbGllbnQuaAogICAgIHBsYXRmb3JtL1BvcHVwTWVudVN0
eWxlLmgKICAgICBwbGF0Zm9ybS9Qcm9jZXNzSWRlbnRpZmllci5oCisgICAgcGxhdGZvcm0vUHJv
Y2Vzc0lkZW50aXR5LmgKICAgICBwbGF0Zm9ybS9Qcm9jZXNzUXVhbGlmaWVkLmgKICAgICBwbGF0
Zm9ybS9Qcm9taXNlZEF0dGFjaG1lbnRJbmZvLmgKICAgICBwbGF0Zm9ybS9QdWJsaWNTdWZmaXgu
aApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQgYi9Tb3VyY2UvV2ViQ29y
ZS9Tb3VyY2VzLnR4dAppbmRleCA4YTExNGExMjM4ZDRmNjgxODg0NmYyMWMyZGIwYWMwMzAzYjFl
YjI5Li5hNWJiMjhjNmY3NTE2YWY2ZjhkM2VhYmRmZGEyYmVmZmE0ZTUyM2RlIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2Vz
LnR4dApAQCAtMTg3MCw2ICsxODcwLDcgQEAgcGxhdGZvcm0vUGxhdGZvcm1TdHJhdGVnaWVzLmNw
cAogcGxhdGZvcm0vUGxhdGZvcm1XaGVlbEV2ZW50LmNwcAogcGxhdGZvcm0vUHJldmlld0NvbnZl
cnRlci5jcHAKIHBsYXRmb3JtL1Byb2Nlc3NJZGVudGlmaWVyLmNwcAorcGxhdGZvcm0vUHJvY2Vz
c0lkZW50aXR5LmNwcAogcGxhdGZvcm0vUmVmZXJyZXJQb2xpY3kuY3BwCiBwbGF0Zm9ybS9SZW1v
dGVDb21tYW5kTGlzdGVuZXIuY3BwCiBwbGF0Zm9ybS9SdW50aW1lQXBwbGljYXRpb25DaGVja3Mu
Y3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2oKaW5kZXggMjk5YTg4NjYwZjFlYjAyMmNiZDhiNGVkYzIzMWIyMjkwOWJkYTE0NC4uMzc2NTMx
Mzk2OWI3Mjk4NDE2NGEzODBlYWE0MzU2ZjViYTY0ODNlMCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMjM2Myw2ICsyMzYzLDcg
QEAKIAkJN0I3MzExRkIyNUMwOTJCNzAwM0IyNzk2IC8qIFNjb3BlZEhpZ2hQZXJmb3JtYW5jZUdQ
VVJlcXVlc3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDdCNzMxMUZBMjVDMDkyQjcwMDNCMjc5NiAvKiBTY29wZWRIaWdoUGVyZm9ybWFuY2VHUFVSZXF1
ZXN0LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJ
N0I4RUQ1RjAyNkYwQzEzRDAwOEFDMDIzIC8qIENWVXRpbGl0aWVzLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3QjhFRDVFRDI2RjBDMTIzMDA4QUMwMjMg
LyogQ1ZVdGlsaXRpZXMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OwogCQk3QjkwNDE3MDI1NTAxMTQyMDA2RUVCOEMgLyogUmVtb3RlR3JhcGhpY3NDb250
ZXh0R0xQcm94eUJhc2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDdCOTA0MTZFMjU1MDExMDkwMDZFRUI4QyAvKiBSZW1vdGVHcmFwaGljc0NvbnRleHRH
TFByb3h5QmFzZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CisJCTdCQTdDNkMzMjczQkY2MkMwMDI5REZCRSAvKiBQcm9jZXNzSWRlbnRpdHkuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdCQTdDNkMxMjczQkY2
MkIwMDI5REZCRSAvKiBQcm9jZXNzSWRlbnRpdHkuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRF
UyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk3QkIzNEE0ODI1Mzc3NkNBMDAwMjlEMDggLyogR3Jh
cGhpY3NDb250ZXh0R0xJbWFnZUV4dHJhY3Rvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gN0JCMzRBNDUyNTM3NzZDNjAwMDI5RDA4IC8qIEdyYXBoaWNz
Q29udGV4dEdMSW1hZ2VFeHRyYWN0b3IuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQ
cml2YXRlLCApOyB9OyB9OwogCQk3QkI2ODBCQTI1QkExQkU0MDAyQjg3MzggLyogR3JhcGhpY3ND
aGVja3NNYWMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDdCQjY4MEI4MjVCQTFCRTQwMDJCODczOCAvKiBHcmFwaGljc0NoZWNrc01hYy5oICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTdCRTc0MjczODFGQTkw
NkZCQjRGMEYyQyAvKiBKU1NWR0dyYXBoaWNzRWxlbWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTUwQzRDMDJCRUQ4OTM2RjgxOEUyRjk5IC8qIEpT
U1ZHR3JhcGhpY3NFbGVtZW50LmggKi87IH07CkBAIC0xMTAyMSw2ICsxMTAyMiw4IEBACiAJCTdC
OEVENUVEMjZGMEMxMjMwMDhBQzAyMyAvKiBDVlV0aWxpdGllcy5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBDVlV0aWxpdGllcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk3QjhFRDVFRjI2RjBDMTIzMDA4QUMwMjMgLyogQ1ZVdGlsaXRpZXMubW0gKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBDVlV0aWxpdGllcy5tbTsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0I5MDQxNkUyNTUwMTEwOTAwNkVFQjhDIC8qIFJlbW90ZUdy
YXBoaWNzQ29udGV4dEdMUHJveHlCYXNlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbW90ZUdyYXBoaWNz
Q29udGV4dEdMUHJveHlCYXNlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTdCQTdD
NkJGMjczQkY2MkIwMDI5REZCRSAvKiBQcm9jZXNzSWRlbnRpdHkuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUHJvY2Vzc0lkZW50aXR5LmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJN0JBN0M2QzEyNzNCRjYyQjAwMjlERkJFIC8qIFByb2Nlc3NJZGVu
dGl0eS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQcm9jZXNzSWRlbnRpdHku
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0JCMzRBMTYyNTM0NUNCMjAwMDI5RDA4
IC8qIEFOR0xFVXRpbGl0aWVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEFO
R0xFVXRpbGl0aWVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdCQjM0QTQ1MjUz
Nzc2QzYwMDAyOUQwOCAvKiBHcmFwaGljc0NvbnRleHRHTEltYWdlRXh0cmFjdG9yLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IEdyYXBoaWNzQ29udGV4dEdMSW1hZ2VFeHRyYWN0b3IuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJN0JCMzRBNDcyNTM3NzZDNzAwMDI5RDA4IC8qIEdyYXBoaWNzQ29u
dGV4dEdMSW1hZ2VFeHRyYWN0b3IuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gR3JhcGhpY3NDb250
ZXh0R0xJbWFnZUV4dHJhY3Rvci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0y
ODk5MCw2ICsyODk5Myw4IEBACiAJCQkJQTFBREFGN0MyMzYwRkQzRTAwOUNCNzc2IC8qIFByZXZp
ZXdDb252ZXJ0ZXJQcm92aWRlci5oICovLAogCQkJCTUxRjY0NUQyMUZFQ0RCQzgwMEI1NERFRCAv
KiBQcm9jZXNzSWRlbnRpZmllci5jcHAgKi8sCiAJCQkJNTFGNjQ1RDMxRkVDREJDODAwQjU0REVE
IC8qIFByb2Nlc3NJZGVudGlmaWVyLmggKi8sCisJCQkJN0JBN0M2QkYyNzNCRjYyQjAwMjlERkJF
IC8qIFByb2Nlc3NJZGVudGl0eS5jcHAgKi8sCisJCQkJN0JBN0M2QzEyNzNCRjYyQjAwMjlERkJF
IC8qIFByb2Nlc3NJZGVudGl0eS5oICovLAogCQkJCTFDQzU0QUZCMjcwRjkyREEwMDVCRjhCRSAv
KiBQcm9jZXNzUXVhbGlmaWVkLmggKi8sCiAJCQkJRjQ3QTYzM0MxRkY2RkQ1MDAwODFCM0NDIC8q
IFByb21pc2VkQXR0YWNobWVudEluZm8uaCAqLywKIAkJCQkwMDgxRkVGRDE2QjBBMjQ0MDA4QUFB
N0EgLyogUHVibGljU3VmZml4LmggKi8sCkBAIC0zNTQ3Miw2ICszNTQ3Nyw3IEBACiAJCQkJQjcx
RkU2REYxMTA5MUNCMzAwREFFRjc3IC8qIFByaW50Q29udGV4dC5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJNkIwQTA3RjIyMUZBNEI1QzAwRDU3MzkxIC8qIFByaXZhdGVDbGlja01lYXN1cmVtZW50Lmgg
aW4gSGVhZGVycyAqLywKIAkJCQk1MUY2NDVENTFGRUNEQkNFMDBCNTRERUQgLyogUHJvY2Vzc0lk
ZW50aWZpZXIuaCBpbiBIZWFkZXJzICovLAorCQkJCTdCQTdDNkMzMjczQkY2MkMwMDI5REZCRSAv
KiBQcm9jZXNzSWRlbnRpdHkuaCBpbiBIZWFkZXJzICovLAogCQkJCUE4RUE3RUJDMEExOTQ1RDAw
MEE4RUY1RiAvKiBQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCTFD
QzU0QUZFMjcwRjk2QUUwMDVCRjhCRSAvKiBQcm9jZXNzUXVhbGlmaWVkLmggaW4gSGVhZGVycyAq
LywKIAkJCQlFNDIwNTAxNzIxNDE5MDFCMDA2NkVGM0IgLyogUHJvY2Vzc1dhcm1pbmcuaCBpbiBI
ZWFkZXJzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTG9nZ2luZy5o
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTG9nZ2luZy5oCmluZGV4IDNmYmU0MTdiZTk4MWI3
NWU3NzlkZTIzOGZjNGJlMDVhNmQ3MzBmYWEuLmRjMGY1MDk4Yjg3ZjE4NDU1MjViZTNjMGJhNDFm
NzY3NWIxNDA0N2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xvZ2dpbmcu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Mb2dnaW5nLmgKQEAgLTk0LDYgKzk0LDcg
QEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgIE0oUGx1Z2lucykgXAogICAgIE0oUG9wdXBCbG9j
a2luZykgXAogICAgIE0oUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQpIFwKKyAgICBNKFByb2Nlc3Mp
IFwKICAgICBNKFByb2dyZXNzKSBcCiAgICAgTShSZW1vdGVJbnNwZWN0b3IpIFwKICAgICBNKFJl
cXVlc3RBbmltYXRpb25GcmFtZSkgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vUHJvY2Vzc0lkZW50aXR5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Byb2Nlc3NJ
ZGVudGl0eS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYWE2YzdlZWFiMDFkMzI0M2IyYjQ1YTYzYzU2MDQ0Y2Zj
NTgxNzFkYQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Byb2Nl
c3NJZGVudGl0eS5jcHAKQEAgLTAsMCArMSw3MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAy
MSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlks
IE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisg
KiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJQcm9j
ZXNzSWRlbnRpdHkuaCIKKworI2luY2x1ZGUgIkxvZ2dpbmcuaCIKKworbmFtZXNwYWNlIFdlYkNv
cmUgeworCitSZWZQdHI8UHJvY2Vzc0lkZW50aXR5PiBQcm9jZXNzSWRlbnRpdHk6OmNyZWF0ZShI
YW5kbGUmJiBoYW5kbGUpCit7CisjaWYgSEFWRShUQVNLX0lERU5USVRZX1RPS0VOKQorICAgIHJl
dHVybiBhZG9wdFJlZihuZXcgUHJvY2Vzc0lkZW50aXR5KFdURk1vdmUoaGFuZGxlKSkpOworI2Vs
c2UKKyAgICByZXR1cm4gbnVsbHB0cjsKKyNlbmRpZgorfQorCitQcm9jZXNzSWRlbnRpdHk6OlBy
b2Nlc3NJZGVudGl0eShIYW5kbGUmJiBoYW5kbGUpCisgICAgOiBtX2hhbmRsZShXVEZNb3ZlKGhh
bmRsZSkpCit7Cit9CisKK1Byb2Nlc3NJZGVudGl0eTo6SGFuZGxlIFByb2Nlc3NJZGVudGl0eTo6
aGFuZGxlRm9yQ3VycmVudFByb2Nlc3MoKQoreworICAgIFByb2Nlc3NJZGVudGl0eTo6SGFuZGxl
IHJlc3VsdDsKKyNpZiBIQVZFKFRBU0tfSURFTlRJVFlfVE9LRU4pCisgICAgdGFza19pZF90b2tl
bl90IGlkZW50aXR5VG9rZW47CisgICAga2Vybl9yZXR1cm5fdCBrciA9IHRhc2tfY3JlYXRlX2lk
ZW50aXR5X3Rva2VuKG1hY2hfdGFza19zZWxmKCksICZpZGVudGl0eVRva2VuKTsKKyAgICBpZiAo
a3IgPT0gS0VSTl9TVUNDRVNTKQorICAgICAgICByZXN1bHQgPSBNYWNoU2VuZFJpZ2h0OjphZG9w
dChpZGVudGl0eVRva2VuKTsKKyAgICBlbHNlCisgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKFBy
b2Nlc3MsICJ0YXNrX2NyZWF0ZV9pZGVudGl0eV90b2tlbigpIGZhaWxlZDogJXtwcml2YXRlfXMg
KCV4KSIsIG1hY2hfZXJyb3Jfc3RyaW5nKGtyKSwga3IpOworI2VuZGlmCisgICAgcmV0dXJuIHJl
c3VsdDsKK30KKworY29uc3QgUHJvY2Vzc0lkZW50aXR5OjpIYW5kbGUmIFByb2Nlc3NJZGVudGl0
eTo6aGFuZGxlKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9oYW5kbGU7Cit9CisKKyNpZiBIQVZF
KFRBU0tfSURFTlRJVFlfVE9LRU4pCit0YXNrX2lkX3Rva2VuX3QgUHJvY2Vzc0lkZW50aXR5Ojp0
YXNrSWRUb2tlbigpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1faGFuZGxlLnNlbmRSaWdodCgpOwor
fQorI2VuZGlmCisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Byb2Nl
c3NJZGVudGl0eS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUHJvY2Vzc0lkZW50aXR5LmgK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uMGNhMDE5M2IxMmU1NDQzNmM2ZmViYmM2ZWJlMzRlMDE2Mzc2MGZhMAotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Byb2Nlc3NJZGVudGl0eS5o
CkBAIC0wLDAgKzEsNjEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1F
TlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
CisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgPHd0Zi9UaHJlYWRTYWZlUmVmQ291bnRl
ZC5oPgorCisjaWYgSEFWRShUQVNLX0lERU5USVRZX1RPS0VOKQorI2luY2x1ZGUgPHd0Zi9NYWNo
U2VuZFJpZ2h0Lmg+CisjZWxzZQorI2luY2x1ZGUgPHZhcmlhbnQ+CisjZW5kaWYKKworbmFtZXNw
YWNlIFdlYkNvcmUgeworCisvLyBPYmplY3QgdG8gYWNjZXNzIHByb29mIG9mIHByb2Nlc3MgaWRl
bnRpdHkuCisvLyBQcm9jZXNzSWRlbnRpZmllciBpZGVudGlmaWVzIGEgcHJvY2Vzcy4KKy8vIFBy
b2Nlc3NJZGVudGl0eSBncmFudHMgYWNjZXNzIHRvIHRoZSBpZGVudGl0eS4KK2NsYXNzIFdFQkNP
UkVfRVhQT1JUIFByb2Nlc3NJZGVudGl0eSBmaW5hbCA6IHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291
bnRlZDxQcm9jZXNzSWRlbnRpdHk+IHsKK3B1YmxpYzoKKyNpZiBIQVZFKFRBU0tfSURFTlRJVFlf
VE9LRU4pCisgICAgdXNpbmcgSGFuZGxlID0gTWFjaFNlbmRSaWdodDsKKyNlbHNlCisgICAgdXNp
bmcgSGFuZGxlID0gc3RkOjptb25vc3RhdGU7CisjZW5kaWYKKyAgICBzdGF0aWMgUmVmUHRyPFBy
b2Nlc3NJZGVudGl0eT4gY3JlYXRlKEhhbmRsZSYmKTsKKyAgICBzdGF0aWMgSGFuZGxlIGhhbmRs
ZUZvckN1cnJlbnRQcm9jZXNzKCk7CisgICAgY29uc3QgSGFuZGxlJiBoYW5kbGUoKSBjb25zdDsK
KworI2lmIEhBVkUoVEFTS19JREVOVElUWV9UT0tFTikKKyAgICB0YXNrX2lkX3Rva2VuX3QgdGFz
a0lkVG9rZW4oKSBjb25zdDsKKyNlbmRpZgorcHJpdmF0ZToKKyAgICBQcm9jZXNzSWRlbnRpdHko
SGFuZGxlJiYpOworCisgICAgSGFuZGxlIG1faGFuZGxlOworfTsKKworfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvUmVtb3RlVmlkZW9TYW1wbGUuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1JlbW90ZVZpZGVvU2FtcGxlLmgKaW5kZXgg
YTYxNzBiMzI4ZmM0NGFjZTY5M2RjZGIzNWVlNGQzY2U2ODczMzhhMS4uMGY1YmFlYTg1NmUzZjFh
OGNlMTY1YjIwMzg2NWM5NjQ0MzU0MjU2MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvUmVtb3RlVmlkZW9TYW1wbGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9SZW1vdGVWaWRlb1NhbXBsZS5oCkBAIC0zNyw2ICszNyw4IEBAIHR5
cGVkZWYgc3RydWN0IF9fQ1ZCdWZmZXIqIENWUGl4ZWxCdWZmZXJSZWY7CiAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIAorY2xhc3MgUHJvY2Vzc0lkZW50aXR5OworCiBjbGFzcyBSZW1vdGVWaWRlb1Nh
bXBsZSB7CiBwdWJsaWM6CiAgICAgUmVtb3RlVmlkZW9TYW1wbGUoKSA9IGRlZmF1bHQ7CkBAIC00
OCw5ICs1MCw3IEBAIHB1YmxpYzoKICAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgc3RkOjp1bmlx
dWVfcHRyPFJlbW90ZVZpZGVvU2FtcGxlPiBjcmVhdGUoUmV0YWluUHRyPENWUGl4ZWxCdWZmZXJS
ZWY+JiYsIE1lZGlhVGltZSYmIHByZXNlbnRhdGlvblRpbWUsIE1lZGlhU2FtcGxlOjpWaWRlb1Jv
dGF0aW9uID0gTWVkaWFTYW1wbGU6OlZpZGVvUm90YXRpb246Ok5vbmUpOwogICAgIFdFQkNPUkVf
RVhQT1JUIElPU3VyZmFjZVJlZiBzdXJmYWNlKCkgY29uc3Q7CiAKLSNpZiBIQVZFKElPU1VSRkFD
RV9TRVRfT1dORVJTSElQX0lERU5USVRZKQotICAgIHZvaWQgc2V0T3duZXJzaGlwSWRlbnRpdHko
dGFza19pZF90b2tlbl90IG5ld093bmVyKTsKLSNlbmRpZgorICAgIHZvaWQgc2V0T3duZXJzaGlw
SWRlbnRpdHkoUHJvY2Vzc0lkZW50aXR5KiByZXNvdXJjZU93bmVyKTsKIAogICAgIGNvbnN0IE1l
ZGlhVGltZSYgdGltZSgpIGNvbnN0IHsgcmV0dXJuIG1fdGltZTsgfQogICAgIHVpbnQzMl90IHZp
ZGVvRm9ybWF0KCkgY29uc3QgeyByZXR1cm4gbV92aWRlb0Zvcm1hdDsgfQpAQCAtMTE5LDEzICsx
MTksMTEgQEAgcHJpdmF0ZToKICAgICBib29sIG1fbWlycm9yZWQgeyBmYWxzZSB9OwogfTsKIAot
I2lmIEhBVkUoSU9TVVJGQUNFX1NFVF9PV05FUlNISVBfSURFTlRJVFkpCi1pbmxpbmUgdm9pZCBS
ZW1vdGVWaWRlb1NhbXBsZTo6c2V0T3duZXJzaGlwSWRlbnRpdHkodGFza19pZF90b2tlbl90IG5l
d093bmVyKQoraW5saW5lIHZvaWQgUmVtb3RlVmlkZW9TYW1wbGU6OnNldE93bmVyc2hpcElkZW50
aXR5KFByb2Nlc3NJZGVudGl0eSogcmVzb3VyY2VPd25lcikKIHsKICAgICBpZiAobV9pb1N1cmZh
Y2UpCi0gICAgICAgIG1faW9TdXJmYWNlLT5zZXRPd25lcnNoaXBJZGVudGl0eShuZXdPd25lcik7
CisgICAgICAgIG1faW9TdXJmYWNlLT5zZXRPd25lcnNoaXBJZGVudGl0eShyZXNvdXJjZU93bmVy
KTsKIH0KLSNlbmRpZgogCiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2NvY29hL0dyYXBoaWNzQ29udGV4dEdMT3BlbkdMQ29jb2EubW0gYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9HcmFwaGljc0NvbnRleHRHTE9wZW5HTENv
Y29hLm1tCmluZGV4IGZiNzIzZGQ0MjJkZTliOWRhZGE5ZTRjYjg5N2QwNjFjYmU2ZDYwM2UuLjE5
NzlkYTU2NzI0YmEwZDI1YWRhNWQxNDFiNjNmNWFiNWYxZTdhOTQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0dyYXBoaWNzQ29udGV4dEdMT3BlbkdM
Q29jb2EubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvR3Jh
cGhpY3NDb250ZXh0R0xPcGVuR0xDb2NvYS5tbQpAQCAtMTkzLDggKzE5Myw5IEBAIHN0YXRpYyBi
b29sIG5lZWRzRUFHTE9uTWFjKCkKIH0KICNlbmRpZgogCi1HcmFwaGljc0NvbnRleHRHTE9wZW5H
TDo6R3JhcGhpY3NDb250ZXh0R0xPcGVuR0woR3JhcGhpY3NDb250ZXh0R0xBdHRyaWJ1dGVzIGF0
dHJzKQorR3JhcGhpY3NDb250ZXh0R0xPcGVuR0w6OkdyYXBoaWNzQ29udGV4dEdMT3BlbkdMKEdy
YXBoaWNzQ29udGV4dEdMQXR0cmlidXRlcyYmIGF0dHJzLCBSZWZQdHI8UHJvY2Vzc0lkZW50aXR5
PiYmIHJlc291cmNlT3duZXIpCiAgICAgOiBHcmFwaGljc0NvbnRleHRHTChhdHRycykKKyAgICAs
IG1fcmVzb3VyY2VPd25lcihXVEZNb3ZlKHJlc291cmNlT3duZXIpKQogewogICAgIG1faXNGb3JX
ZWJHTDIgPSBhdHRycy53ZWJHTFZlcnNpb24gPT0gR3JhcGhpY3NDb250ZXh0R0xXZWJHTFZlcnNp
b246OldlYkdMMjsKICAgICBpZiAoYXR0cnMudXNlTWV0YWwgJiYgIXBsYXRmb3JtU3VwcG9ydHNN
ZXRhbChtX2lzRm9yV2ViR0wyKSkgewpAQCAtNTY1LDYgKzU2Niw4IEBAIGJvb2wgR3JhcGhpY3ND
b250ZXh0R0xPcGVuR0w6OmFsbG9jYXRlQW5kQmluZERpc3BsYXlCdWZmZXJCYWNraW5nKCkKICAg
ICBhdXRvIGJhY2tpbmcgPSBJT1N1cmZhY2U6OmNyZWF0ZShnZXRJbnRlcm5hbEZyYW1lYnVmZmVy
U2l6ZSgpLCBEZXN0aW5hdGlvbkNvbG9yU3BhY2U6OlNSR0IoKSk7CiAgICAgaWYgKCFiYWNraW5n
KQogICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgaWYgKG1fcmVzb3VyY2VPd25lcikKKyAgICAg
ICAgYmFja2luZy0+c2V0T3duZXJzaGlwSWRlbnRpdHkobV9yZXNvdXJjZU93bmVyLmdldCgpKTsK
IAogICAgIGJhY2tpbmctPm1pZ3JhdGVDb2xvclNwYWNlVG9Qcm9wZXJ0aWVzKCk7CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0lPU3VyZmFjZS5o
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvSU9TdXJmYWNlLmgKaW5k
ZXggNTY1MjQ3ODIyZGJhMjlmNzYwMGI5NDA3ZTZmNGFjYjhjMWEwNmFhYy4uMGM0M2NhNGY4MDRk
MjYwYzYxMDVlYjkyYjYxMTA5MWUyYzI1MzJhMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvSU9TdXJmYWNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvSU9TdXJmYWNlLmgKQEAgLTQ2LDYgKzQ2LDcgQEAgbmFt
ZXNwYWNlIFdlYkNvcmUgewogY2xhc3MgR3JhcGhpY3NDb250ZXh0OwogY2xhc3MgSG9zdFdpbmRv
dzsKIGNsYXNzIEltYWdlQnVmZmVyOworY2xhc3MgUHJvY2Vzc0lkZW50aXR5OwogCiBlbnVtIGNs
YXNzIFBpeGVsRm9ybWF0IDogdWludDhfdDsKIGVudW0gY2xhc3MgVm9sYXRpbGl0eVN0YXRlIDog
dWludDhfdDsKQEAgLTE1OSw5ICsxNjAsNyBAQCBwdWJsaWM6CiAgICAgV0VCQ09SRV9FWFBPUlQg
c3RhdGljIHZvaWQgY29udmVydFRvRm9ybWF0KHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpJT1N1
cmZhY2U+JiYgaW5TdXJmYWNlLCBGb3JtYXQsIEZ1bmN0aW9uPHZvaWQoc3RkOjp1bmlxdWVfcHRy
PFdlYkNvcmU6OklPU3VyZmFjZT4pPiYmKTsKICNlbmRpZiAvLyBIQVZFKElPU1VSRkFDRV9BQ0NF
TEVSQVRPUikKIAotI2lmIEhBVkUoSU9TVVJGQUNFX1NFVF9PV05FUlNISVBfSURFTlRJVFkpCi0g
ICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRPd25lcnNoaXBJZGVudGl0eSh0YXNrX2lkX3Rva2Vu
X3QgbmV3T3duZXIpOwotI2VuZGlmCisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRPd25lcnNo
aXBJZGVudGl0eShQcm9jZXNzSWRlbnRpdHkqIHJlc291cmNlT3duZXIpOwogCiAgICAgdm9pZCBt
aWdyYXRlQ29sb3JTcGFjZVRvUHJvcGVydGllcygpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9JT1N1cmZhY2UubW0gYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9JT1N1cmZhY2UubW0KaW5kZXggMDExMTY1Y2UxMWFi
Y2U2NzVjNGI0N2JmOTE1ZDRjODFlNmNlZTk5NS4uMTViZjY4ZjdmZTVhNjk4NjdmY2M5ZDU2YTZl
NWJkNGY2YmMzZDMwMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY29jb2EvSU9TdXJmYWNlLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2NvY29hL0lPU3VyZmFjZS5tbQpAQCAtMzQsNiArMzQsNyBAQAogI2ltcG9ydCAiSW1hZ2VC
dWZmZXIuaCIKICNpbXBvcnQgIkxvZ2dpbmcuaCIKICNpbXBvcnQgIlBsYXRmb3JtU2NyZWVuLmgi
CisjaW1wb3J0ICJQcm9jZXNzSWRlbnRpdHkuaCIKICNpbXBvcnQgPHBhbC9zcGkvY2cvQ29yZUdy
YXBoaWNzU1BJLmg+CiAjaW1wb3J0IDx3dGYvQXNzZXJ0aW9ucy5oPgogI2ltcG9ydCA8d3RmL01h
Y2hTZW5kUmlnaHQuaD4KQEAgLTQ4NCwxNCArNDg1LDE3IEBAIHZvaWQgSU9TdXJmYWNlOjpjb252
ZXJ0VG9Gb3JtYXQoc3RkOjp1bmlxdWVfcHRyPElPU3VyZmFjZT4mJiBpblN1cmZhY2UsIEZvcm1h
dCBmCiAKICNlbmRpZiAvLyBIQVZFKElPU1VSRkFDRV9BQ0NFTEVSQVRPUikKIAotI2lmIEhBVkUo
SU9TVVJGQUNFX1NFVF9PV05FUlNISVBfSURFTlRJVFkpCi12b2lkIElPU3VyZmFjZTo6c2V0T3du
ZXJzaGlwSWRlbnRpdHkodGFza19pZF90b2tlbl90IG5ld093bmVyKQordm9pZCBJT1N1cmZhY2U6
OnNldE93bmVyc2hpcElkZW50aXR5KFByb2Nlc3NJZGVudGl0eSogcmVzb3VyY2VPd25lcikKIHsK
LSAgICBhdXRvIHJlc3VsdCA9IElPU3VyZmFjZVNldE93bmVyc2hpcElkZW50aXR5KG1fc3VyZmFj
ZS5nZXQoKSwgbmV3T3duZXIsIGtJT1N1cmZhY2VNZW1vcnlMZWRnZXJUYWdHcmFwaGljcywgMCk7
CisjaWYgSEFWRShJT1NVUkZBQ0VfU0VUX09XTkVSU0hJUF9JREVOVElUWSkgJiYgSEFWRShUQVNL
X0lERU5USVRZX1RPS0VOKQorICAgIHRhc2tfaWRfdG9rZW5fdCBvd25lclRhc2tJZFRva2VuID0g
cmVzb3VyY2VPd25lciA/IHJlc291cmNlT3duZXItPnRhc2tJZFRva2VuKCkgOiAwOworICAgIGF1
dG8gcmVzdWx0ID0gSU9TdXJmYWNlU2V0T3duZXJzaGlwSWRlbnRpdHkobV9zdXJmYWNlLmdldCgp
LCBvd25lclRhc2tJZFRva2VuLCBrSU9TdXJmYWNlTWVtb3J5TGVkZ2VyVGFnR3JhcGhpY3MsIDAp
OwogICAgIGlmIChyZXN1bHQgIT0ga0lPUmV0dXJuU3VjY2VzcykKLSAgICAgICAgUkVMRUFTRV9M
T0dfRVJST1IoSU9TdXJmYWNlLCAiSU9TdXJmYWNlOjpzZXRPd25lcnNoaXBJZGVudGl0eTogRmFp
bGVkIHRvIGNsYWltIG93bmVyc2hpcCBvZiBJT1N1cmZhY2UgJXAsIG5ld093bmVyOiAlZCwgZXJy
b3I6ICVkIiwgbV9zdXJmYWNlLmdldCgpLCAoaW50KW5ld093bmVyLCByZXN1bHQpOwotfQorICAg
ICAgICBSRUxFQVNFX0xPR19FUlJPUihJT1N1cmZhY2UsICJJT1N1cmZhY2U6OnNldE93bmVyc2hp
cElkZW50aXR5OiBGYWlsZWQgdG8gY2xhaW0gb3duZXJzaGlwIG9mIElPU3VyZmFjZSAlcCwgdGFz
ayBpZCB0b2tlbjogJWQsIGVycm9yOiAlZCIsIG1fc3VyZmFjZS5nZXQoKSwgKGludClvd25lclRh
c2tJZFRva2VuLCByZXN1bHQpOworI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0ocmVzb3VyY2VPd25l
cik7CiAjZW5kaWYKK30KIAogdm9pZCBJT1N1cmZhY2U6Om1pZ3JhdGVDb2xvclNwYWNlVG9Qcm9w
ZXJ0aWVzKCkKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2NvY29hL1dlYlByb2Nlc3NHcmFwaGljc0NvbnRleHRHTE9wZW5HTENvY29hLm1tIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvV2ViUHJvY2Vzc0dyYXBoaWNzQ29udGV4
dEdMT3BlbkdMQ29jb2EubW0KaW5kZXggMjU2MjVlZGJmZTI1NGUzNzVmZWYxNjk4MTY5ZjUyZWZk
NGFhNzcyMi4uY2FjNDRhMWRiNGRmYzBmNzE3MDRjNzQxODRkYTQ2MzcyYjMxMjNhZiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvV2ViUHJvY2Vzc0dy
YXBoaWNzQ29udGV4dEdMT3BlbkdMQ29jb2EubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY29jb2EvV2ViUHJvY2Vzc0dyYXBoaWNzQ29udGV4dEdMT3BlbkdMQ29jb2Eu
bW0KQEAgLTU3LDcgKzU3LDcgQEAgcHVibGljOgogICAgIHZvaWQgcHJlcGFyZUZvckRpc3BsYXko
KSBmaW5hbDsKIHByaXZhdGU6CiAgICAgV2ViUHJvY2Vzc0dyYXBoaWNzQ29udGV4dEdMT3BlbkdM
KEdyYXBoaWNzQ29udGV4dEdMQXR0cmlidXRlcyBhdHRyaWJ1dGVzKQotICAgICAgICA6IEdyYXBo
aWNzQ29udGV4dEdMT3BlbkdMKGF0dHJpYnV0ZXMpCisgICAgICAgIDogR3JhcGhpY3NDb250ZXh0
R0xPcGVuR0woV1RGTW92ZShhdHRyaWJ1dGVzKSwgeyB9KQogICAgICAgICAsIG1fd2ViR0xMYXll
cihjcmVhdGVXZWJHTExheWVyKGF0dHJpYnV0ZXMpKQogICAgIHsKICAgICB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR3JhcGhpY3NDb250ZXh0
R0xPcGVuR0wuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HcmFw
aGljc0NvbnRleHRHTE9wZW5HTC5oCmluZGV4IDM4MjczYjA3MmI1NmQzZmRhMmJjZGUzNDhiM2Uw
Zjc0MmMyMDA1ZTUuLmZlMTNlYWZmNGQ3M2ZhNjcwMTYzNjBlOGQyYjhjZjhkMzNhYzhlNTMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HcmFwaGlj
c0NvbnRleHRHTE9wZW5HTC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L29wZW5nbC9HcmFwaGljc0NvbnRleHRHTE9wZW5HTC5oCkBAIC0yOCw2ICsyOCw3IEBACiAjaWYg
RU5BQkxFKFdFQkdMKQogCiAjaW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0R0wuaCIKKyNpbmNsdWRl
ICJQcm9jZXNzSWRlbnRpdHkuaCIKICNpbmNsdWRlIDxtZW1vcnk+CiAjaW5jbHVkZSA8d3RmL0hh
c2hDb3VudGVkU2V0Lmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KQEAgLTU0Myw4ICs1NDQs
OSBAQCBwdWJsaWM6CiAjZW5kaWYKIAogcHJvdGVjdGVkOgotICAgIEdyYXBoaWNzQ29udGV4dEdM
T3BlbkdMKEdyYXBoaWNzQ29udGV4dEdMQXR0cmlidXRlcyk7CisgICAgR3JhcGhpY3NDb250ZXh0
R0xPcGVuR0woR3JhcGhpY3NDb250ZXh0R0xBdHRyaWJ1dGVzJiYsIFJlZlB0cjxQcm9jZXNzSWRl
bnRpdHk+JiYgcmVzb3VyY2VPd25lcik7CiAgICAgYm9vbCBpc1ZhbGlkKCkgY29uc3Q7CisgICAg
UmVmUHRyPFByb2Nlc3NJZGVudGl0eT4gbV9yZXNvdXJjZU93bmVyOwogI2lmIFBMQVRGT1JNKENP
Q09BKQogICAgIEdyYXBoaWNzQ29udGV4dEdMSU9TdXJmYWNlU3dhcENoYWluIG1fc3dhcENoYWlu
OwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90
ZXhtYXAvR3JhcGhpY3NDb250ZXh0R0xUZXh0dXJlTWFwcGVyLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9HcmFwaGljc0NvbnRleHRHTFRleHR1cmVNYXBwZXIu
Y3BwCmluZGV4IGUyODUxYzJlM2QyMjE3NzE2OTRiZGQ2ZjEyZjBlNWY3ODk5Yzc1NWIuLjMwNzc3
MjIwYzljZWVkZjVkYzQyMzUwZGE0MTY0MDRlMmViZTljMGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9HcmFwaGljc0NvbnRleHRHTFRleHR1cmVN
YXBwZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9H
cmFwaGljc0NvbnRleHRHTFRleHR1cmVNYXBwZXIuY3BwCkBAIC04NSw3ICs4NSw3IEBAIFJlZlB0
cjxHcmFwaGljc0NvbnRleHRHTE9wZW5HTD4gR3JhcGhpY3NDb250ZXh0R0xPcGVuR0w6OmNyZWF0
ZShHcmFwaGljc0NvbnRleHRHCiAgICAgICAgIHJldHVybiBudWxscHRyOwogCiAgICAgLy8gQ3Jl
YXRlIHRoZSBHcmFwaGljc0NvbnRleHRHTE9wZW5HTCBvYmplY3QgZmlyc3QgaW4gb3JkZXIgdG8g
ZXN0YWJsaXN0IGEgY3VycmVudCBjb250ZXh0IG9uIHRoaXMgdGhyZWFkLgotICAgIGF1dG8gY29u
dGV4dCA9IGFkb3B0UmVmKG5ldyBHcmFwaGljc0NvbnRleHRHTE9wZW5HTChhdHRyaWJ1dGVzKSk7
CisgICAgYXV0byBjb250ZXh0ID0gYWRvcHRSZWYobmV3IEdyYXBoaWNzQ29udGV4dEdMT3BlbkdM
KFdURk1vdmUoYXR0cmlidXRlcywgeyB9KSkpOwogCiAjaWYgVVNFKExJQkVQT1hZKSAmJiBVU0Uo
T1BFTkdMX0VTKSAmJiBFTkFCTEUoV0VCR0wyKQogICAgIC8vIEJhaWwgaWYgR0xFUzMgd2FzIHJl
cXVlc3RlZCBidXQgY2Fubm90IGJlIHByb3ZpZGVkLgpAQCAtOTksOCArOTksOSBAQCBSZWZQdHI8
R3JhcGhpY3NDb250ZXh0R0xPcGVuR0w+IEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMOjpjcmVhdGUo
R3JhcGhpY3NDb250ZXh0RwogfQogCiAjaWYgVVNFKEFOR0xFKQotR3JhcGhpY3NDb250ZXh0R0xP
cGVuR0w6OkdyYXBoaWNzQ29udGV4dEdMT3BlbkdMKEdyYXBoaWNzQ29udGV4dEdMQXR0cmlidXRl
cyBhdHRyaWJ1dGVzKQorR3JhcGhpY3NDb250ZXh0R0xPcGVuR0w6OkdyYXBoaWNzQ29udGV4dEdM
T3BlbkdMKEdyYXBoaWNzQ29udGV4dEdMQXR0cmlidXRlcyYmIGF0dHJpYnV0ZXMsIFJlZlB0cjxQ
cm9jZXNzSWRlbnRpdHk+JiYgcmVzb3VyY2VPd25lcikKICAgICA6IEdyYXBoaWNzQ29udGV4dEdM
KGF0dHJpYnV0ZXMpCisgICAgLCBtX3Jlc291cmNlT3duZXIoV1RGTW92ZShyZXNvdXJjZU93bmVy
KSkKIHsKICNpZiBFTkFCTEUoV0VCR0wyKQogICAgIG1faXNGb3JXZWJHTDIgPSBhdHRyaWJ1dGVz
LndlYkdMVmVyc2lvbiA9PSBHcmFwaGljc0NvbnRleHRHTFdlYkdMVmVyc2lvbjo6V2ViR0wyOwpA
QCAtMTY4LDggKzE2OSw5IEBAIEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMOjpHcmFwaGljc0NvbnRl
eHRHTE9wZW5HTChHcmFwaGljc0NvbnRleHRHTEF0dHJpYnV0ZXMgYXR0CiAgICAgZ2w6OkNsZWFy
Q29sb3IoMCwgMCwgMCwgMCk7CiB9CiAjZWxzZQotR3JhcGhpY3NDb250ZXh0R0xPcGVuR0w6Okdy
YXBoaWNzQ29udGV4dEdMT3BlbkdMKEdyYXBoaWNzQ29udGV4dEdMQXR0cmlidXRlcyBhdHRyaWJ1
dGVzKQorR3JhcGhpY3NDb250ZXh0R0xPcGVuR0w6OkdyYXBoaWNzQ29udGV4dEdMT3BlbkdMKEdy
YXBoaWNzQ29udGV4dEdMQXR0cmlidXRlcyYmIGF0dHJpYnV0ZXMsIFJlZlB0cjxQcm9jZXNzSWRl
bnRpdHk+JiYgcmVzb3VyY2VPd25lcikKICAgICA6IEdyYXBoaWNzQ29udGV4dEdMKGF0dHJpYnV0
ZXMpCisgICAgLCBtX3Jlc291cmNlT3duZXIoV1RGTW92ZShyZXNvdXJjZU93bmVyKSkKIHsKICNp
ZiBVU0UoTklDT1NJQSkKICAgICBtX25pY29zaWFMYXllciA9IG1ha2VVbmlxdWU8Tmljb3NpYTo6
R0NHTExheWVyPigqdGhpcyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mv
R1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mv
R1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAKaW5kZXggNTJhZTg4MTkzNzFhM2VkZDYwY2Q3
MjBjZDA4NGJiM2M4NTdmYTdjZC4uMWVmOWE2YjI1ODE2MzM3ZjM4ZDliYjBiM2M3NDg5ZmNkMWM5
NDg1YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVUNvbm5lY3Rpb25U
b1dlYlByb2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9HUFVDb25uZWN0
aW9uVG9XZWJQcm9jZXNzLmNwcApAQCAtMTk5LDEyICsxOTksMTAgQEAgcHJpdmF0ZToKICAgICB9
CiAjZW5kaWYKIAotI2lmIEhBVkUoSU9TVVJGQUNFX1NFVF9PV05FUlNISVBfSURFTlRJVFkpCi0g
ICAgc3RkOjpvcHRpb25hbDx0YXNrX2lkX3Rva2VuX3Q+IHdlYlByb2Nlc3NJZGVudGl0eVRva2Vu
KCkgY29uc3QgZmluYWwKKyAgICBSZWZQdHI8UHJvY2Vzc0lkZW50aXR5PiByZXNvdXJjZU93bmVy
KCkgY29uc3QgZmluYWwKICAgICB7Ci0gICAgICAgIHJldHVybiBtX3Byb2Nlc3Mud2ViUHJvY2Vz
c0lkZW50aXR5VG9rZW4oKTsKKyAgICAgICAgcmV0dXJuIG1fcHJvY2Vzcy53ZWJQcm9jZXNzSWRl
bnRpdHkoKTsKICAgICB9Ci0jZW5kaWYKIAogICAgIEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3Mm
IG1fcHJvY2VzczsKIH07CkBAIC0yMjAsOSArMjE4LDcgQEAgR1BVQ29ubmVjdGlvblRvV2ViUHJv
Y2Vzczo6R1BVQ29ubmVjdGlvblRvV2ViUHJvY2VzcyhHUFVQcm9jZXNzJiBncHVQcm9jZXNzLCBX
ZWIKICAgICA6IG1fY29ubmVjdGlvbihJUEM6OkNvbm5lY3Rpb246OmNyZWF0ZVNlcnZlckNvbm5l
Y3Rpb24oY29ubmVjdGlvbklkZW50aWZpZXIsICp0aGlzKSkKICAgICAsIG1fZ3B1UHJvY2Vzcyhn
cHVQcm9jZXNzKQogICAgICwgbV93ZWJQcm9jZXNzSWRlbnRpZmllcih3ZWJQcm9jZXNzSWRlbnRp
ZmllcikKLSNpZiBIQVZFKFRBU0tfSURFTlRJVFlfVE9LRU4pCi0gICAgLCBtX3dlYlByb2Nlc3NJ
ZGVudGl0eVRva2VuKFdURk1vdmUocGFyYW1ldGVycy53ZWJQcm9jZXNzSWRlbnRpdHlUb2tlbikp
Ci0jZW5kaWYKKyAgICAsIG1fd2ViUHJvY2Vzc0lkZW50aXR5KFByb2Nlc3NJZGVudGl0eTo6Y3Jl
YXRlKFdURk1vdmUocGFyYW1ldGVycy53ZWJQcm9jZXNzSWRlbnRpdHlIYW5kbGUpKSkKICAgICAs
IG1fcmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHkobWFrZVVuaXF1ZVJlZjxSZW1vdGVNZWRp
YVBsYXllck1hbmFnZXJQcm94eT4oKnRoaXMpKQogICAgICwgbV9zZXNzaW9uSUQoc2Vzc2lvbklE
KQogI2lmIFBMQVRGT1JNKENPQ09BKSAmJiBVU0UoTElCV0VCUlRDKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaCBiL1NvdXJj
ZS9XZWJLaXQvR1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmgKaW5kZXggYWU3
OTUwNTI1ODYwZGUzY2Y2YTJiMTc4OGZlMzVhNWVhYmRhNTY3ZC4uZTA0MjhiODVlNWNmZGFjMmM0
MDY1YTkxMDNiOWM1NWU2YjZjYjVhOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9j
ZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVBy
b2Nlc3MvR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oCkBAIC0zOSw2ICszOSw3IEBACiAjaW5j
bHVkZSA8V2ViQ29yZS9Ob3dQbGF5aW5nTWFuYWdlci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUGFn
ZUlkZW50aWZpZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Byb2Nlc3NJZGVudGlmaWVyLmg+Cisj
aW5jbHVkZSA8V2ViQ29yZS9Qcm9jZXNzSWRlbnRpdHkuaD4KICNpbmNsdWRlIDxwYWwvU2Vzc2lv
bklELmg+CiAjaW5jbHVkZSA8d3RmL0xvZ2dlci5oPgogI2luY2x1ZGUgPHd0Zi9NYWNoU2VuZFJp
Z2h0Lmg+CkBAIC0xNDcsMTAgKzE0OCw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGRpc3BhdGNoRGlz
cGxheVdhc1JlY29uZmlndXJlZEZvclRlc3RpbmcoKSB7IGRpc3BhdGNoRGlzcGxheVdhc1JlY29u
ZmlndXJlZCgpOyB9OwogI2VuZGlmCiAKLSNpZiBIQVZFKFRBU0tfSURFTlRJVFlfVE9LRU4pCi0g
ICAgdGFza19pZF90b2tlbl90IHdlYlByb2Nlc3NJZGVudGl0eVRva2VuKCkgY29uc3QgeyByZXR1
cm4gc3RhdGljX2Nhc3Q8dGFza19pZF90b2tlbl90PihtX3dlYlByb2Nlc3NJZGVudGl0eVRva2Vu
LnNlbmRSaWdodCgpKTsgfQotI2VuZGlmCi0KKyAgICBSZWZQdHI8V2ViQ29yZTo6UHJvY2Vzc0lk
ZW50aXR5PiB3ZWJQcm9jZXNzSWRlbnRpdHkoKSBjb25zdCB7IHJldHVybiBtX3dlYlByb2Nlc3NJ
ZGVudGl0eTsgfQogI2lmIEVOQUJMRShFTkNSWVBURURfTUVESUEpCiAgICAgUmVtb3RlQ0RNRmFj
dG9yeVByb3h5JiBjZG1GYWN0b3J5UHJveHkoKTsKICNlbmRpZgpAQCAtMjczLDkgKzI3MSw3IEBA
IHByaXZhdGU6CiAgICAgSVBDOjpNZXNzYWdlUmVjZWl2ZXJNYXAgbV9tZXNzYWdlUmVjZWl2ZXJN
YXA7CiAgICAgUmVmPEdQVVByb2Nlc3M+IG1fZ3B1UHJvY2VzczsKICAgICBjb25zdCBXZWJDb3Jl
OjpQcm9jZXNzSWRlbnRpZmllciBtX3dlYlByb2Nlc3NJZGVudGlmaWVyOwotI2lmIEhBVkUoVEFT
S19JREVOVElUWV9UT0tFTikKLSAgICBNYWNoU2VuZFJpZ2h0IG1fd2ViUHJvY2Vzc0lkZW50aXR5
VG9rZW47Ci0jZW5kaWYKKyAgICBSZWZQdHI8V2ViQ29yZTo6UHJvY2Vzc0lkZW50aXR5PiBtX3dl
YlByb2Nlc3NJZGVudGl0eTsKICNpZiBFTkFCTEUoV0VCX0FVRElPKQogICAgIHN0ZDo6dW5pcXVl
X3B0cjxSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uTWFuYWdlcj4gbV9yZW1vdGVBdWRpb0Rlc3RpbmF0
aW9uTWFuYWdlcjsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNz
L2dyYXBoaWNzL0dQVVByb2Nlc3NHcmFwaGljc0NvbnRleHRHTC5oIGIvU291cmNlL1dlYktpdC9H
UFVQcm9jZXNzL2dyYXBoaWNzL0dQVVByb2Nlc3NHcmFwaGljc0NvbnRleHRHTC5oCmluZGV4IDFl
ZWUxOGQ2MmYwNTA5ZjAwOWYzNGMzZWRlNjhkMzVlMGQwODk2NTMuLmU3MjlhM2E3MTU0NTJjM2Fk
NDY0YzdjYzllZDVjMGVjYjNiMTFlMDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJv
Y2Vzcy9ncmFwaGljcy9HUFVQcm9jZXNzR3JhcGhpY3NDb250ZXh0R0wuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvR1BVUHJvY2Vzc0dyYXBoaWNzQ29udGV4dEdMLmgK
QEAgLTI5LDExICsyOSwxMyBAQAogI2luY2x1ZGUgPFdlYkNvcmUvRXh0ZW5zaW9uc0dMLmg+CiAj
aW5jbHVkZSA8V2ViQ29yZS9HcmFwaGljc0NvbnRleHRHTE9wZW5HTC5oPgogCituYW1lc3BhY2Ug
V2ViS2l0IHsKKwogY2xhc3MgR1BVUHJvY2Vzc0dyYXBoaWNzQ29udGV4dEdMT3BlbkdMIGZpbmFs
IDogcHVibGljIFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dEdMT3BlbkdMIHsKIHB1YmxpYzoKLSAg
ICBzdGF0aWMgUmVmUHRyPEdQVVByb2Nlc3NHcmFwaGljc0NvbnRleHRHTE9wZW5HTD4gY3JlYXRl
KFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dEdMQXR0cmlidXRlcyBhdHRyaWJ1dGVzKQorICAgIHN0
YXRpYyBSZWZQdHI8R1BVUHJvY2Vzc0dyYXBoaWNzQ29udGV4dEdMT3BlbkdMPiBjcmVhdGUoV2Vi
Q29yZTo6R3JhcGhpY3NDb250ZXh0R0xBdHRyaWJ1dGVzIGF0dHJpYnV0ZXMsIFJlZlB0cjxXZWJD
b3JlOjpQcm9jZXNzSWRlbnRpdHk+IHJlc291cmNlT3duZXIpCiAgICAgewotICAgICAgICBhdXRv
IGNvbnRleHQgPSBhZG9wdFJlZigqbmV3IEdQVVByb2Nlc3NHcmFwaGljc0NvbnRleHRHTE9wZW5H
TChXVEZNb3ZlKGF0dHJpYnV0ZXMpKSk7CisgICAgICAgIGF1dG8gY29udGV4dCA9IGFkb3B0UmVm
KCpuZXcgR1BVUHJvY2Vzc0dyYXBoaWNzQ29udGV4dEdMT3BlbkdMKFdURk1vdmUoYXR0cmlidXRl
cyksIFdURk1vdmUocmVzb3VyY2VPd25lcikpKTsKICAgICAgICAgaWYgKCFjb250ZXh0LT5pc1Zh
bGlkKCkpCiAgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICAgICAgcmV0dXJuIGNvbnRl
eHQ7CkBAIC00NCwxMCArNDYsMTIgQEAgcHVibGljOgogICAgIHZvaWQgbWFya0Rpc3BsYXlCdWZm
ZXJJblVzZSgpIHsgcmV0dXJuIG1fc3dhcENoYWluLm1hcmtEaXNwbGF5QnVmZmVySW5Vc2UoKTsg
fQogI2VuZGlmCiBwcml2YXRlOgotICAgIEdQVVByb2Nlc3NHcmFwaGljc0NvbnRleHRHTE9wZW5H
TChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHRHTEF0dHJpYnV0ZXMgYXR0cmlidXRlcykKLSAgICAg
ICAgOiBHcmFwaGljc0NvbnRleHRHTE9wZW5HTChhdHRyaWJ1dGVzKQorICAgIEdQVVByb2Nlc3NH
cmFwaGljc0NvbnRleHRHTE9wZW5HTChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHRHTEF0dHJpYnV0
ZXMmJiBhdHRyaWJ1dGVzLCBSZWZQdHI8V2ViQ29yZTo6UHJvY2Vzc0lkZW50aXR5PiYmIHJlc291
cmNlT3duZXIpCisgICAgICAgIDogR3JhcGhpY3NDb250ZXh0R0xPcGVuR0woV1RGTW92ZShhdHRy
aWJ1dGVzKSwgV1RGTW92ZShyZXNvdXJjZU93bmVyKSkKICAgICB7CiAgICAgfQogfTsKIAorfQor
CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9S
ZW1vdGVHcmFwaGljc0NvbnRleHRHTENvY29hLmNwcCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vz
cy9ncmFwaGljcy9SZW1vdGVHcmFwaGljc0NvbnRleHRHTENvY29hLmNwcAppbmRleCBiNDM3YTVi
ZWVjZDVkNmFjNTgzY2E1OTdhOTVlMjc3MTJmYWRkNjIzLi4wY2MyMmI0MzNhNDVlNzRkNTQwZTRk
NTRlOWNhNjdiYjEwOTVlMWQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mv
Z3JhcGhpY3MvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xDb2NvYS5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZUdyYXBoaWNzQ29udGV4dEdMQ29jb2EuY3Bw
CkBAIC00Nyw5ICs0Nyw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHByZXBhcmVGb3JEaXNwbGF5KENv
bXBsZXRpb25IYW5kbGVyPHZvaWQoV1RGOjpNYWNoU2VuZFJpZ2h0JiYpPiYmKSBmaW5hbDsKIHBy
aXZhdGU6CiAgICAgV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0R0xJT1N1cmZhY2VTd2FwQ2hhaW4g
bV9zd2FwQ2hhaW4gV1RGX0dVQVJERURfQllfTE9DSyhtX3N0cmVhbVRocmVhZCk7Ci0jaWYgSEFW
RShJT1NVUkZBQ0VfU0VUX09XTkVSU0hJUF9JREVOVElUWSkKLSAgICB0YXNrX2lkX3Rva2VuX3Qg
bV93ZWJQcm9jZXNzSWRlbnRpdHlUb2tlbjsKLSNlbmRpZgorICAgIFJlZlB0cjxQcm9jZXNzSWRl
bnRpdHk+IG1fcmVzb3VyY2VPd25lcjsKIH07CiAKIH0KQEAgLTYzLDkgKzYxLDcgQEAgUmVmPFJl
bW90ZUdyYXBoaWNzQ29udGV4dEdMPiBSZW1vdGVHcmFwaGljc0NvbnRleHRHTDo6Y3JlYXRlKEdQ
VUNvbm5lY3Rpb25Ub1dlYlAKIAogUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xDb2NvYTo6UmVtb3Rl
R3JhcGhpY3NDb250ZXh0R0xDb2NvYShHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzJiBncHVDb25u
ZWN0aW9uVG9XZWJQcm9jZXNzLCBHcmFwaGljc0NvbnRleHRHTElkZW50aWZpZXIgZ3JhcGhpY3ND
b250ZXh0R0xJZGVudGlmaWVyLCBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kJiByZW5kZXJpbmdCYWNr
ZW5kLCBJUEM6OlN0cmVhbUNvbm5lY3Rpb25CdWZmZXImJiBzdHJlYW0pCiAgICAgOiBSZW1vdGVH
cmFwaGljc0NvbnRleHRHTChncHVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLCBncmFwaGljc0NvbnRl
eHRHTElkZW50aWZpZXIsIHJlbmRlcmluZ0JhY2tlbmQsIFdURk1vdmUoc3RyZWFtKSkKLSNpZiBI
QVZFKElPU1VSRkFDRV9TRVRfT1dORVJTSElQX0lERU5USVRZKQotICAgICwgbV93ZWJQcm9jZXNz
SWRlbnRpdHlUb2tlbihncHVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLndlYlByb2Nlc3NJZGVudGl0
eVRva2VuKCkpCi0jZW5kaWYKKyAgICAsIG1fcmVzb3VyY2VPd25lcihncHVDb25uZWN0aW9uVG9X
ZWJQcm9jZXNzLndlYlByb2Nlc3NJZGVudGl0eSgpKQogewogCiB9CkBAIC03Myw3ICs2OSw3IEBA
IFJlbW90ZUdyYXBoaWNzQ29udGV4dEdMQ29jb2E6OlJlbW90ZUdyYXBoaWNzQ29udGV4dEdMQ29j
b2EoR1BVQ29ubmVjdGlvblRvV2ViUHJvCiB2b2lkIFJlbW90ZUdyYXBoaWNzQ29udGV4dEdMQ29j
b2E6OnBsYXRmb3JtV29ya1F1ZXVlSW5pdGlhbGl6ZShXZWJDb3JlOjpHcmFwaGljc0NvbnRleHRH
TEF0dHJpYnV0ZXMmJiBhdHRyaWJ1dGVzKQogewogICAgIGFzc2VydElzQ3VycmVudChtX3N0cmVh
bVRocmVhZCk7Ci0gICAgbV9jb250ZXh0ID0gR1BVUHJvY2Vzc0dyYXBoaWNzQ29udGV4dEdMT3Bl
bkdMOjpjcmVhdGUoV1RGTW92ZShhdHRyaWJ1dGVzKSk7CisgICAgbV9jb250ZXh0ID0gR1BVUHJv
Y2Vzc0dyYXBoaWNzQ29udGV4dEdMT3BlbkdMOjpjcmVhdGUoV1RGTW92ZShhdHRyaWJ1dGVzKSwg
bV9yZXNvdXJjZU93bmVyKTsKIH0KIAogdm9pZCBSZW1vdGVHcmFwaGljc0NvbnRleHRHTENvY29h
OjpwcmVwYXJlRm9yRGlzcGxheShDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdURjo6TWFjaFNlbmRS
aWdodCYmKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKQEAgLTg0LDEwICs4MCw2IEBAIHZvaWQgUmVt
b3RlR3JhcGhpY3NDb250ZXh0R0xDb2NvYTo6cHJlcGFyZUZvckRpc3BsYXkoQ29tcGxldGlvbkhh
bmRsZXI8dm9pZChXVEY6CiAgICAgTWFjaFNlbmRSaWdodCBzZW5kUmlnaHQ7CiAgICAgaWYgKGRp
c3BsYXlCdWZmZXIpIHsKICAgICAgICAgbV9jb250ZXh0LT5tYXJrRGlzcGxheUJ1ZmZlckluVXNl
KCk7Ci0jaWYgSEFWRShJT1NVUkZBQ0VfU0VUX09XTkVSU0hJUF9JREVOVElUWSkKLSAgICAgICAg
Ly8gTWFyayB0aGUgSU9TdXJmYWNlIGFzIGJlaW5nIG93bmVkIGJ5IHRoZSBXZWJQcm9jZXNzIGV2
ZW4gdGhvdWdoIGl0IHdhcyBjb25zdHJ1Y3RlZCBieSB0aGUgR1BVUHJvY2VzcyBzbyB0aGF0IEpl
dHNhbSBrbm93cyB3aGljaCBwcm9jZXNzIHRvIGtpbGwuCi0gICAgICAgIGRpc3BsYXlCdWZmZXIt
PnNldE93bmVyc2hpcElkZW50aXR5KG1fd2ViUHJvY2Vzc0lkZW50aXR5VG9rZW4pOwotI2VuZGlm
CiAgICAgICAgIHNlbmRSaWdodCA9IGRpc3BsYXlCdWZmZXItPmNyZWF0ZVNlbmRSaWdodCgpOwog
ICAgIH0KICAgICBjb21wbGV0aW9uSGFuZGxlcihXVEZNb3ZlKHNlbmRSaWdodCkpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZUltYWdlQnVmZmVy
LmggYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlSW1hZ2VCdWZmZXIu
aAppbmRleCBhM2Q0OTRmZThiZjZhMTk2NDdlZjE5MGM5ZGI0MDQyYWVjZTY3MjIwLi4xOTkyNThi
NjNkNjhlODhiY2E0YTkwMjM2ZmVkNDA0ODA0MWI2MjBjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlSW1hZ2VCdWZmZXIuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlSW1hZ2VCdWZmZXIuaApAQCAtNjksMTMg
KzY5LDExIEBAIHB1YmxpYzoKICAgICAgICAgICAgIGNvbnRleHQoKS5yZXN0b3JlKCk7CiAgICAg
fQogCi0jaWYgSEFWRShJT1NVUkZBQ0VfU0VUX09XTkVSU0hJUF9JREVOVElUWSkKLSAgICB2b2lk
IHNldFByb2Nlc3NPd25lcnNoaXAodGFza19pZF90b2tlbl90IG5ld093bmVyKQorICAgIHZvaWQg
c2V0T3duZXJzaGlwSWRlbnRpdHkoV2ViQ29yZTo6UHJvY2Vzc0lkZW50aXR5KiByZXNvdXJjZU93
bmVyKQogICAgIHsKICAgICAgICAgaWYgKG1fYmFja2VuZCkKLSAgICAgICAgICAgIG1fYmFja2Vu
ZC0+c2V0UHJvY2Vzc093bmVyc2hpcChuZXdPd25lcik7CisgICAgICAgICAgICBtX2JhY2tlbmQt
PnNldE93bmVyc2hpcElkZW50aXR5KHJlc291cmNlT3duZXIpOwogICAgIH0KLSNlbmRpZgogCiBw
cml2YXRlOgogICAgIGZyaWVuZCBjbGFzcyBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0Jh
Y2tlbmQuY3BwIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRl
cmluZ0JhY2tlbmQuY3BwCmluZGV4IGRiNGUxMzdiMmY2YWRmYjljZDE0NzhhMWQ4NzJlNjY0ZDFh
OTZkZWIuLjJjOGY0YmUyYjA3MGRlNjEzMDRhMDJmYmE2MDIwNmNjN2FkYjc2ODMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNr
ZW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVu
ZGVyaW5nQmFja2VuZC5jcHAKQEAgLTg0LDYgKzg0LDcgQEAgUmVtb3RlUmVuZGVyaW5nQmFja2Vu
ZDo6UmVtb3RlUmVuZGVyaW5nQmFja2VuZChHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzJiBncHVD
b24KICAgICAsIG1fc3RyZWFtQ29ubmVjdGlvbihJUEM6OlN0cmVhbVNlcnZlckNvbm5lY3Rpb246
OmNyZWF0ZShncHVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNvbm5lY3Rpb24oKSwgV1RGTW92ZShz
dHJlYW1CdWZmZXIpLCBtX3dvcmtRdWV1ZS5nZXQoKSkpCiAgICAgLCBtX3JlbW90ZVJlc291cmNl
Q2FjaGUoZ3B1Q29ubmVjdGlvblRvV2ViUHJvY2Vzcy53ZWJQcm9jZXNzSWRlbnRpZmllcigpKQog
ICAgICwgbV9ncHVDb25uZWN0aW9uVG9XZWJQcm9jZXNzKGdwdUNvbm5lY3Rpb25Ub1dlYlByb2Nl
c3MpCisgICAgLCBtX3Jlc291cmNlT3duZXIoZ3B1Q29ubmVjdGlvblRvV2ViUHJvY2Vzcy53ZWJQ
cm9jZXNzSWRlbnRpdHkoKSkKICAgICAsIG1fcmVuZGVyaW5nQmFja2VuZElkZW50aWZpZXIoY3Jl
YXRpb25QYXJhbWV0ZXJzLmlkZW50aWZpZXIpCiB7CiAgICAgQVNTRVJUKFJ1bkxvb3A6OmlzTWFp
bigpKTsKQEAgLTE3MywxMCArMTc0LDkgQEAgdm9pZCBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kOjpj
cmVhdGVJbWFnZUJ1ZmZlcldpdGhRdWFsaWZpZWRJZGVudGlmaWVyKGNvbnN0IEZsb2EKIAogICAg
IGlmIChyZW5kZXJpbmdNb2RlID09IFJlbmRlcmluZ01vZGU6OkFjY2VsZXJhdGVkKSB7CiAgICAg
ICAgIGlmIChhdXRvIGFjY2VsZXJhdGVkSW1hZ2VCdWZmZXIgPSBBY2NlbGVyYXRlZFJlbW90ZUlt
YWdlQnVmZmVyOjpjcmVhdGUobG9naWNhbFNpemUsIHJlc29sdXRpb25TY2FsZSwgY29sb3JTcGFj
ZSwgcGl4ZWxGb3JtYXQsICp0aGlzLCBpbWFnZUJ1ZmZlclJlc291cmNlSWRlbnRpZmllcikpIHsK
LSNpZiBIQVZFKElPU1VSRkFDRV9TRVRfT1dORVJTSElQX0lERU5USVRZKQogICAgICAgICAgICAg
Ly8gTWFyayB0aGUgSU9TdXJmYWNlIGFzIGJlaW5nIG93bmVkIGJ5IHRoZSBXZWJQcm9jZXNzIGV2
ZW4gdGhvdWdoIGl0IHdhcyBjb25zdHJ1Y3RlZCBieSB0aGUgR1BVUHJvY2VzcyBzbyB0aGF0IEpl
dHNhbSBrbm93cyB3aGljaCBwcm9jZXNzIHRvIGtpbGwuCi0gICAgICAgICAgICBhY2NlbGVyYXRl
ZEltYWdlQnVmZmVyLT5zZXRQcm9jZXNzT3duZXJzaGlwKG1fZ3B1Q29ubmVjdGlvblRvV2ViUHJv
Y2Vzcy0+d2ViUHJvY2Vzc0lkZW50aXR5VG9rZW4oKSk7Ci0jZW5kaWYKKyAgICAgICAgICAgIGlm
IChtX3Jlc291cmNlT3duZXIpCisgICAgICAgICAgICAgICAgYWNjZWxlcmF0ZWRJbWFnZUJ1ZmZl
ci0+c2V0T3duZXJzaGlwSWRlbnRpdHkobV9yZXNvdXJjZU93bmVyLmdldCgpKTsKICAgICAgICAg
ICAgIGltYWdlQnVmZmVyID0gV1RGTW92ZShhY2NlbGVyYXRlZEltYWdlQnVmZmVyKTsKICAgICAg
ICAgfQogICAgIH0KQEAgLTI2OCw2ICsyNjgsNyBAQCB2b2lkIFJlbW90ZVJlbmRlcmluZ0JhY2tl
bmQ6OmdldERhdGFVUkxGb3JJbWFnZUJ1ZmZlcldpdGhRdWFsaWZpZWRJZGVudGlmaWVyKGNvbgog
ICAgIFN0cmluZyB1cmxTdHJpbmc7CiAgICAgaWYgKGF1dG8gaW1hZ2VCdWZmZXIgPSBtX3JlbW90
ZVJlc291cmNlQ2FjaGUuY2FjaGVkSW1hZ2VCdWZmZXIocmVuZGVyaW5nUmVzb3VyY2VJZGVudGlm
aWVyKSkKICAgICAgICAgdXJsU3RyaW5nID0gaW1hZ2VCdWZmZXItPnRvRGF0YVVSTChtaW1lVHlw
ZSwgcXVhbGl0eSwgcHJlc2VydmVSZXNvbHV0aW9uKTsKKyAgICBXVEZMb2dBbHdheXMoIkRBVEFV
Ukw6JXMiLCB1cmxTdHJpbmcudXRmOCgpLmRhdGEoKSk7CiAgICAgY29tcGxldGlvbkhhbmRsZXIo
V1RGTW92ZSh1cmxTdHJpbmcpKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQ
cm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQuaCBiL1NvdXJjZS9XZWJLaXQv
R1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmgKaW5kZXggMTlmYjE3
ZjAyNWZiMmM2NWYxZGRlMjcyYzMwYmIwZGU5NDVjYWY5Zi4uOWVjOTYyYjMwZmY2NjdhOTE3ZmY4
NmZkYjJmNTNmYTA4MmFiNzYzMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNz
L2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQ
VVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5oCkBAIC01NCw2ICs1NCw3
IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIERlc3RpbmF0aW9uQ29sb3JTcGFjZTsKIGNs
YXNzIEZsb2F0U2l6ZTsKIGNsYXNzIE5hdGl2ZUltYWdlOworY2xhc3MgUHJvY2Vzc0lkZW50aXR5
OwogCiBlbnVtIGNsYXNzIFJlbmRlcmluZ01vZGUgOiBib29sOwogCkBAIC0xMjksNiArMTMwLDcg
QEAgcHJpdmF0ZToKICAgICBSZWY8SVBDOjpTdHJlYW1TZXJ2ZXJDb25uZWN0aW9uPiBtX3N0cmVh
bUNvbm5lY3Rpb247CiAgICAgUmVtb3RlUmVzb3VyY2VDYWNoZSBtX3JlbW90ZVJlc291cmNlQ2Fj
aGU7CiAgICAgUmVmPEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M+IG1fZ3B1Q29ubmVjdGlvblRv
V2ViUHJvY2VzczsKKyAgICBSZWZQdHI8V2ViQ29yZTo6UHJvY2Vzc0lkZW50aXR5PiBtX3Jlc291
cmNlT3duZXI7CiAgICAgUmVuZGVyaW5nQmFja2VuZElkZW50aWZpZXIgbV9yZW5kZXJpbmdCYWNr
ZW5kSWRlbnRpZmllcjsKICAgICBJUEM6OlNlbWFwaG9yZSBtX2dldFBpeGVsQnVmZmVyU2VtYXBo
b3JlOwogICAgIFJlZlB0cjxTaGFyZWRNZW1vcnk+IG1fZ2V0UGl4ZWxCdWZmZXJTaGFyZWRNZW1v
cnk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mvd2VicnRjL0xpYldlYlJU
Q0NvZGVjc1Byb3h5Lm1tIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL3dlYnJ0Yy9MaWJXZWJS
VENDb2RlY3NQcm94eS5tbQppbmRleCAxMzNlMjZlNDc0ZTFkMzE5MTYzZTU1NzE5OTJkMGMwYzcx
OWRkZTE0Li43MDdhNjVlMmUyMjRjOWFkN2NmMTc0NjVmNGRjMGE0MjEzNzAyYTU4IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mvd2VicnRjL0xpYldlYlJUQ0NvZGVjc1Byb3h5
Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy93ZWJydGMvTGliV2ViUlRDQ29kZWNz
UHJveHkubW0KQEAgLTc3LDE0ICs3NywxMSBAQCB2b2lkIExpYldlYlJUQ0NvZGVjc1Byb3h5Ojpj
bG9zZSgpCiBzdGF0aWMgRnVuY3Rpb248dm9pZChDVlBpeGVsQnVmZmVyUmVmIHBpeGVsQnVmZmVy
LCB1aW50MzJfdCB0aW1lU3RhbXBOcywgdWludDMyX3QgdGltZVN0YW1wKT4gY3JlYXRlRGVjb2Rl
ckNhbGxiYWNrKFJUQ0RlY29kZXJJZGVudGlmaWVyIGlkZW50aWZpZXIsIEdQVUNvbm5lY3Rpb25U
b1dlYlByb2Nlc3MmIGdwdUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MpCiB7CiAgICAgcmV0dXJuIFtj
b25uZWN0aW9uID0gUmVmIHsgZ3B1Q29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jb25uZWN0aW9uKCkg
fSwKLSNpZiBIQVZFKElPU1VSRkFDRV9TRVRfT1dORVJTSElQX0lERU5USVRZKQotICAgICAgICB0
b2tlbiA9IGdwdUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3Mud2ViUHJvY2Vzc0lkZW50aXR5VG9rZW4o
KSwKLSNlbmRpZgorICAgICAgICByZXNvdXJjZU93bmVyID0gZ3B1Q29ubmVjdGlvblRvV2ViUHJv
Y2Vzcy53ZWJQcm9jZXNzSWRlbnRpdHkoKSwKICAgICAgICAgaWRlbnRpZmllcl0oQ1ZQaXhlbEJ1
ZmZlclJlZiBwaXhlbEJ1ZmZlciwgdWludDMyX3QgdGltZVN0YW1wTnMsIHVpbnQzMl90IHRpbWVT
dGFtcCkgewogICAgICAgICBpZiAoYXV0byBzYW1wbGUgPSBXZWJDb3JlOjpSZW1vdGVWaWRlb1Nh
bXBsZTo6Y3JlYXRlKHBpeGVsQnVmZmVyLCBNZWRpYVRpbWUodGltZVN0YW1wTnMsIDEpKSkgewot
I2lmIEhBVkUoSU9TVVJGQUNFX1NFVF9PV05FUlNISVBfSURFTlRJVFkpCi0gICAgICAgICAgICBz
YW1wbGUtPnNldE93bmVyc2hpcElkZW50aXR5KHRva2VuKTsKLSNlbmRpZgorICAgICAgICAgICAg
aWYgKHJlc291cmNlT3duZXIpCisgICAgICAgICAgICAgICAgc2FtcGxlLT5zZXRPd25lcnNoaXBJ
ZGVudGl0eShyZXNvdXJjZU93bmVyLmdldCgpKTsKICAgICAgICAgICAgIGNvbm5lY3Rpb24tPnNl
bmQoTWVzc2FnZXM6OkxpYldlYlJUQ0NvZGVjczo6Q29tcGxldGVkRGVjb2RpbmcgeyBpZGVudGlm
aWVyLCB0aW1lU3RhbXAsICpzYW1wbGUgfSwgMCk7CiAgICAgICAgIH0KICAgICB9OwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvR1BVUHJvY2Vzc0Nvbm5lY3Rpb25QYXJhbWV0ZXJz
LmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9HUFVQcm9jZXNzQ29ubmVjdGlvblBhcmFtZXRlcnMu
aAppbmRleCA0MTU5ZGM2ZWQ0N2Q2ZGMxNzNlOTFiNjgzMmExYmIxYmE1NWY1ZTE0Li5kZGZhMjlm
NTYxYWFkZDgwODliZGE2NTNiNDhhZjIwOTc4NDMwMGQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1NoYXJlZC9HUFVQcm9jZXNzQ29ubmVjdGlvblBhcmFtZXRlcnMuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1NoYXJlZC9HUFVQcm9jZXNzQ29ubmVjdGlvblBhcmFtZXRlcnMuaApAQCAtMjcsMTQg
KzI3LDEyIEBACiAKICNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCiAKLSNpbmNsdWRlIDx3dGYvTWFj
aFNlbmRSaWdodC5oPgorI2luY2x1ZGUgPFdlYkNvcmUvUHJvY2Vzc0lkZW50aXR5Lmg+CiAKIG5h
bWVzcGFjZSBXZWJLaXQgewogCiBzdHJ1Y3QgR1BVUHJvY2Vzc0Nvbm5lY3Rpb25QYXJhbWV0ZXJz
IHsKLSNpZiBIQVZFKFRBU0tfSURFTlRJVFlfVE9LRU4pCi0gICAgTWFjaFNlbmRSaWdodCB3ZWJQ
cm9jZXNzSWRlbnRpdHlUb2tlbjsKLSNlbmRpZgorICAgIFdlYkNvcmU6OlByb2Nlc3NJZGVudGl0
eTo6SGFuZGxlIHdlYlByb2Nlc3NJZGVudGl0eUhhbmRsZTsKICAgICBWZWN0b3I8U3RyaW5nPiBv
dmVycmlkZUxhbmd1YWdlczsKICNpZiBFTkFCTEUoSVBDX1RFU1RJTkdfQVBJKQogICAgIGJvb2wg
aWdub3JlSW52YWxpZE1lc3NhZ2VGb3JUZXN0aW5nIHsgZmFsc2UgfTsKQEAgLTQ1LDkgKzQzLDcg
QEAgc3RydWN0IEdQVVByb2Nlc3NDb25uZWN0aW9uUGFyYW1ldGVycyB7CiAKICAgICB2b2lkIGVu
Y29kZShJUEM6OkVuY29kZXImIGVuY29kZXIpIGNvbnN0CiAgICAgewotI2lmIEhBVkUoVEFTS19J
REVOVElUWV9UT0tFTikKLSAgICAgICAgZW5jb2RlciA8PCB3ZWJQcm9jZXNzSWRlbnRpdHlUb2tl
bjsKLSNlbmRpZgorICAgICAgICBlbmNvZGVyIDw8IHdlYlByb2Nlc3NJZGVudGl0eUhhbmRsZTsK
ICAgICAgICAgZW5jb2RlciA8PCBvdmVycmlkZUxhbmd1YWdlczsKICNpZiBFTkFCTEUoSVBDX1RF
U1RJTkdfQVBJKQogICAgICAgICBlbmNvZGVyIDw8IGlnbm9yZUludmFsaWRNZXNzYWdlRm9yVGVz
dGluZzsKQEAgLTU5LDEyICs1NSwxMCBAQCBzdHJ1Y3QgR1BVUHJvY2Vzc0Nvbm5lY3Rpb25QYXJh
bWV0ZXJzIHsKIAogICAgIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPEdQVVByb2Nlc3NDb25uZWN0aW9u
UGFyYW1ldGVycz4gZGVjb2RlKElQQzo6RGVjb2RlciYgZGVjb2RlcikKICAgICB7Ci0jaWYgSEFW
RShUQVNLX0lERU5USVRZX1RPS0VOKQotICAgICAgICBzdGQ6Om9wdGlvbmFsPE1hY2hTZW5kUmln
aHQ+IHdlYlByb2Nlc3NJZGVudGl0eVRva2VuOwotICAgICAgICBkZWNvZGVyID4+IHdlYlByb2Nl
c3NJZGVudGl0eVRva2VuOwotICAgICAgICBpZiAoIXdlYlByb2Nlc3NJZGVudGl0eVRva2VuKQor
ICAgICAgICBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OlByb2Nlc3NJZGVudGl0eTo6SGFuZGxlPiB3
ZWJQcm9jZXNzSWRlbnRpdHlIYW5kbGU7CisgICAgICAgIGRlY29kZXIgPj4gd2ViUHJvY2Vzc0lk
ZW50aXR5SGFuZGxlOworICAgICAgICBpZiAoIXdlYlByb2Nlc3NJZGVudGl0eUhhbmRsZSkKICAg
ICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7Ci0jZW5kaWYKIAogICAgICAgICBzdGQ6Om9w
dGlvbmFsPFZlY3RvcjxTdHJpbmc+PiBvdmVycmlkZUxhbmd1YWdlczsKICAgICAgICAgZGVjb2Rl
ciA+PiBvdmVycmlkZUxhbmd1YWdlczsKQEAgLTg1LDkgKzc5LDcgQEAgc3RydWN0IEdQVVByb2Nl
c3NDb25uZWN0aW9uUGFyYW1ldGVycyB7CiAjZW5kaWYKIAogICAgICAgICByZXR1cm4gR1BVUHJv
Y2Vzc0Nvbm5lY3Rpb25QYXJhbWV0ZXJzIHsKLSNpZiBIQVZFKFRBU0tfSURFTlRJVFlfVE9LRU4p
Ci0gICAgICAgICAgICBXVEZNb3ZlKCp3ZWJQcm9jZXNzSWRlbnRpdHlUb2tlbiksCi0jZW5kaWYK
KyAgICAgICAgICAgIFdURk1vdmUoKndlYlByb2Nlc3NJZGVudGl0eUhhbmRsZSksCiAgICAgICAg
ICAgICBXVEZNb3ZlKCpvdmVycmlkZUxhbmd1YWdlcyksCiAjaWYgRU5BQkxFKElQQ19URVNUSU5H
X0FQSSkKICAgICAgICAgICAgICppZ25vcmVJbnZhbGlkTWVzc2FnZUZvclRlc3RpbmcsCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFu
YWdlclByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNh
cHR1cmVNYW5hZ2VyUHJveHkuY3BwCmluZGV4IDk5NjI2ODk5MDdjNjdiNWM3YTU2NGQ4MTUzMjUx
Y2Y1NTM0N2U1YmQuLjhiMWYzYTI2NjU2YWIwNWYwMTcwZGNlNmJlMmMyZTNlZmRlNTM5NTkgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVN
YW5hZ2VyUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VzZXJN
ZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkuY3BwCkBAIC01Nyw5ICs1NywxMCBAQCBjbGFzcyBVc2Vy
TWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OjpTb3VyY2VQcm94eQogICAgICwgcHJpdmF0ZSBSZWFs
dGltZU1lZGlhU291cmNlOjpWaWRlb1NhbXBsZU9ic2VydmVyIHsKICAgICBXVEZfTUFLRV9GQVNU
X0FMTE9DQVRFRDsKIHB1YmxpYzoKLSAgICBTb3VyY2VQcm94eShSZWFsdGltZU1lZGlhU291cmNl
SWRlbnRpZmllciBpZCwgUmVmPElQQzo6Q29ubmVjdGlvbj4mJiBjb25uZWN0aW9uLCBSZWY8UmVh
bHRpbWVNZWRpYVNvdXJjZT4mJiBzb3VyY2UpCisgICAgU291cmNlUHJveHkoUmVhbHRpbWVNZWRp
YVNvdXJjZUlkZW50aWZpZXIgaWQsIFJlZjxJUEM6OkNvbm5lY3Rpb24+JiYgY29ubmVjdGlvbiwg
UmVmUHRyPFByb2Nlc3NJZGVudGl0eT4mJiByZXNvdXJjZU93bmVyLCBSZWY8UmVhbHRpbWVNZWRp
YVNvdXJjZT4mJiBzb3VyY2UpCiAgICAgICAgIDogbV9pZChpZCkKICAgICAgICAgLCBtX2Nvbm5l
Y3Rpb24oV1RGTW92ZShjb25uZWN0aW9uKSkKKyAgICAgICAgLCBtX3Jlc291cmNlT3duZXIoV1RG
TW92ZShyZXNvdXJjZU93bmVyKSkKICAgICAgICAgLCBtX3NvdXJjZShXVEZNb3ZlKHNvdXJjZSkp
CiAgICAgewogICAgICAgICBtX3NvdXJjZS0+YWRkT2JzZXJ2ZXIoKnRoaXMpOwpAQCAtMTI1LDkg
KzEyNiw2IEBAIHB1YmxpYzoKICAgICB9CiAKICAgICB2b2lkIHNldFNob3VsZEFwcGx5Um90YXRp
b24oYm9vbCBzaG91bGRBcHBseVJvdGF0aW9uKSB7IG1fc2hvdWxkQXBwbHlSb3RhdGlvbiA9IHRy
dWU7IH0KLSNpZiBIQVZFKElPU1VSRkFDRV9TRVRfT1dORVJTSElQX0lERU5USVRZKQotICAgIHZv
aWQgc2V0V2ViUHJvY2Vzc0lkZW50aXR5VG9rZW4oc3RkOjpvcHRpb25hbDx0YXNrX2lkX3Rva2Vu
X3Q+IHRva2VuKSB7IG1fd2ViUHJvY2Vzc0lkZW50aXR5VG9rZW4gPSB0b2tlbjt9Ci0jZW5kaWYK
IAogcHJpdmF0ZToKICAgICB2b2lkIHNvdXJjZVN0b3BwZWQoKSBmaW5hbCB7CkBAIC0xODgsMTAg
KzE4Niw4IEBAIHByaXZhdGU6CiAgICAgICAgIH0gZWxzZQogICAgICAgICAgICAgcmVtb3RlU2Ft
cGxlID0gUmVtb3RlVmlkZW9TYW1wbGU6OmNyZWF0ZShzYW1wbGUpOwogICAgICAgICBpZiAocmVt
b3RlU2FtcGxlKSB7Ci0jaWYgSEFWRShJT1NVUkZBQ0VfU0VUX09XTkVSU0hJUF9JREVOVElUWSkK
LSAgICAgICAgICAgIGlmIChtX3dlYlByb2Nlc3NJZGVudGl0eVRva2VuKQotICAgICAgICAgICAg
ICAgIHJlbW90ZVNhbXBsZS0+c2V0T3duZXJzaGlwSWRlbnRpdHkoKm1fd2ViUHJvY2Vzc0lkZW50
aXR5VG9rZW4pOwotI2VuZGlmCisgICAgICAgICAgICBpZiAobV9yZXNvdXJjZU93bmVyKQorICAg
ICAgICAgICAgICAgIHJlbW90ZVNhbXBsZS0+c2V0T3duZXJzaGlwSWRlbnRpdHkobV9yZXNvdXJj
ZU93bmVyLmdldCgpKTsKICAgICAgICAgICAgIG1fY29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6
UmVtb3RlQ2FwdHVyZVNhbXBsZU1hbmFnZXI6OlZpZGVvU2FtcGxlQXZhaWxhYmxlKG1faWQsIFdU
Rk1vdmUoKnJlbW90ZVNhbXBsZSkpLCAwKTsKICAgICAgICAgfQogICAgIH0KQEAgLTI0NCw2ICsy
NDAsNyBAQCBwcml2YXRlOgogICAgIFJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIG1faWQ7
CiAgICAgV2Vha1B0cjxQbGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXI+IG1fc2Vzc2lvbk1hbmFn
ZXI7CiAgICAgUmVmPElQQzo6Q29ubmVjdGlvbj4gbV9jb25uZWN0aW9uOworICAgIFJlZlB0cjxQ
cm9jZXNzSWRlbnRpdHk+IG1fcmVzb3VyY2VPd25lcjsKICAgICBSZWY8UmVhbHRpbWVNZWRpYVNv
dXJjZT4gbV9zb3VyY2U7CiAgICAgc3RkOjp1bmlxdWVfcHRyPENBUmluZ0J1ZmZlcj4gbV9yaW5n
QnVmZmVyOwogICAgIENBQXVkaW9TdHJlYW1EZXNjcmlwdGlvbiBtX2Rlc2NyaXB0aW9uIHsgfTsK
QEAgLTI1Nyw5ICsyNTQsNiBAQCBwcml2YXRlOgogICAgIHNpemVfdCBtX2ZyYW1lQ2h1bmtTaXpl
IHsgMCB9OwogICAgIE1lZGlhVGltZSBtX3N0YXJ0VGltZTsKICAgICBib29sIG1fc2hvdWxkUmVz
ZXQgeyBmYWxzZSB9OwotI2lmIEhBVkUoVEFTS19JREVOVElUWV9UT0tFTikKLSAgICBzdGQ6Om9w
dGlvbmFsPHRhc2tfaWRfdG9rZW5fdD4gbV93ZWJQcm9jZXNzSWRlbnRpdHlUb2tlbjsKLSNlbmRp
ZgogfTsKIAogVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6VXNlck1lZGlhQ2FwdHVyZU1h
bmFnZXJQcm94eShVbmlxdWVSZWY8Q29ubmVjdGlvblByb3h5PiYmIGNvbm5lY3Rpb25Qcm94eSkK
QEAgLTMyMywxMiArMzE3LDcgQEAgdm9pZCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5Ojpj
cmVhdGVNZWRpYVNvdXJjZUZvckNhcHR1cmVEZXZpY2VXaXRoQ29uc3RyYWkKICAgICAgICAgfQog
CiAgICAgICAgIEFTU0VSVCghbV9wcm94aWVzLmNvbnRhaW5zKGlkKSk7Ci0gICAgICAgIGF1dG8g
cHJveHkgPSBtYWtlVW5pcXVlPFNvdXJjZVByb3h5PihpZCwgbV9jb25uZWN0aW9uUHJveHktPmNv
bm5lY3Rpb24oKSwgV1RGTW92ZShzb3VyY2UpKTsKLSNpZiBIQVZFKElPU1VSRkFDRV9TRVRfT1dO
RVJTSElQX0lERU5USVRZKQotICAgICAgICBpZiAoZGV2aWNlLnR5cGUoKSAhPSBXZWJDb3JlOjpD
YXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpNaWNyb3Bob25lKQotICAgICAgICAgICAgcHJveHkt
PnNldFdlYlByb2Nlc3NJZGVudGl0eVRva2VuKG1fY29ubmVjdGlvblByb3h5LT53ZWJQcm9jZXNz
SWRlbnRpdHlUb2tlbigpKTsKLSNlbmRpZgotCisgICAgICAgIGF1dG8gcHJveHkgPSBtYWtlVW5p
cXVlPFNvdXJjZVByb3h5PihpZCwgbV9jb25uZWN0aW9uUHJveHktPmNvbm5lY3Rpb24oKSwgbV9j
b25uZWN0aW9uUHJveHktPnJlc291cmNlT3duZXIoKSwgV1RGTW92ZShzb3VyY2UpKTsKICAgICAg
ICAgbV9wcm94aWVzLmFkZChpZCwgV1RGTW92ZShwcm94eSkpOwogICAgIH0gZWxzZQogICAgICAg
ICBpbnZhbGlkQ29uc3RyYWludHMgPSBXVEZNb3ZlKHNvdXJjZU9yRXJyb3IuZXJyb3JNZXNzYWdl
KTsKQEAgLTM5Myw3ICszODIsNyBAQCB2b2lkIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6
OmNsb25lKFJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIGNsb25lZElELAogICAgIE1FU1NB
R0VfQ0hFQ0sobV9wcm94aWVzLmNvbnRhaW5zKGNsb25lZElEKSk7CiAgICAgTUVTU0FHRV9DSEVD
SyghbV9wcm94aWVzLmNvbnRhaW5zKG5ld1NvdXJjZUlEKSk7CiAgICAgaWYgKGF1dG8qIHByb3h5
ID0gbV9wcm94aWVzLmdldChjbG9uZWRJRCkpCi0gICAgICAgIG1fcHJveGllcy5hZGQobmV3U291
cmNlSUQsIG1ha2VVbmlxdWU8U291cmNlUHJveHk+KG5ld1NvdXJjZUlELCBtX2Nvbm5lY3Rpb25Q
cm94eS0+Y29ubmVjdGlvbigpLCBwcm94eS0+c291cmNlKCkuY2xvbmUoKSkpOworICAgICAgICBt
X3Byb3hpZXMuYWRkKG5ld1NvdXJjZUlELCBtYWtlVW5pcXVlPFNvdXJjZVByb3h5PihuZXdTb3Vy
Y2VJRCwgbV9jb25uZWN0aW9uUHJveHktPmNvbm5lY3Rpb24oKSwgbV9jb25uZWN0aW9uUHJveHkt
PnJlc291cmNlT3duZXIoKSwgcHJveHktPnNvdXJjZSgpLmNsb25lKCkpKTsKIH0KIAogdm9pZCBV
c2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OjpyZXF1ZXN0VG9FbmQoUmVhbHRpbWVNZWRpYVNv
dXJjZUlkZW50aWZpZXIgc291cmNlSUQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5LmggYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5LmgKaW5kZXggN2Fm
ZjQyNGQ1NDBkM2IxZmRlY2RhYmM4NjU1YzNjNTZjNTBhMTBlNS4uYzU4NmNlM2YzZDEyZTc4ZTIz
NzMyYWUxMGNjODliMjM4MDRiMmJjZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkuaApAQCAtMzIs
NiArMzIsNyBAQAogI2luY2x1ZGUgIlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmgiCiAjaW5jbHVk
ZSA8V2ViQ29yZS9DYXB0dXJlRGV2aWNlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9PcmllbnRhdGlv
bk5vdGlmaWVyLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9Qcm9jZXNzSWRlbnRpdHkuaD4KICNpbmNs
dWRlIDxXZWJDb3JlL1JlYWx0aW1lTWVkaWFTb3VyY2UuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Jl
YWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyLmg+CiAjaW5jbHVkZSA8cGFsL3NwaS9jb2NvYS9U
Q0NTUEkuaD4KQEAgLTU5LDkgKzYwLDcgQEAgcHVibGljOgogICAgICAgICB2aXJ0dWFsIGJvb2wg
d2lsbFN0YXJ0Q2FwdHVyZShXZWJDb3JlOjpDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlKSBjb25z
dCA9IDA7CiAgICAgICAgIHZpcnR1YWwgTG9nZ2VyJiBsb2dnZXIoKSA9IDA7CiAgICAgICAgIHZp
cnR1YWwgYm9vbCBzZXRDYXB0dXJlQXR0cmlidXRpb25TdHJpbmcoKSB7IHJldHVybiB0cnVlOyB9
Ci0jaWYgSEFWRShJT1NVUkZBQ0VfU0VUX09XTkVSU0hJUF9JREVOVElUWSkKLSAgICAgICAgdmly
dHVhbCBzdGQ6Om9wdGlvbmFsPHRhc2tfaWRfdG9rZW5fdD4gd2ViUHJvY2Vzc0lkZW50aXR5VG9r
ZW4oKSBjb25zdCB7IHJldHVybiB7IH07IH07Ci0jZW5kaWYKKyAgICAgICAgdmlydHVhbCBSZWZQ
dHI8V2ViQ29yZTo6UHJvY2Vzc0lkZW50aXR5PiByZXNvdXJjZU93bmVyKCkgY29uc3QgeyByZXR1
cm4gbnVsbHB0cjsgfTsKICNpZiBFTkFCTEUoQVBQX1BSSVZBQ1lfUkVQT1JUKQogICAgICAgICB2
aXJ0dWFsIHZvaWQgc2V0VENDSWRlbnRpdHkoKSB7IH0KICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9jb2NvYS9JbWFnZUJ1ZmZlclNoYXJl
YWJsZU1hcHBlZElPU3VyZmFjZUJhY2tlbmQuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L0dQVS9ncmFwaGljcy9jb2NvYS9JbWFnZUJ1ZmZlclNoYXJlYWJsZU1hcHBlZElPU3VyZmFjZUJh
Y2tlbmQuY3BwCmluZGV4IGFmZDJjN2MwNWNmYWZkMTM5OTM0NGY1YzZhNzY0ZTQ4ODBkMjhiZGEu
LjExM2VhZjkyZjgwZjUzODY2MGRmYmI0MDYwYzNhN2M4ODhmNjkyNWEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvY29jb2EvSW1hZ2VCdWZmZXJTaGFy
ZWFibGVNYXBwZWRJT1N1cmZhY2VCYWNrZW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvR1BVL2dyYXBoaWNzL2NvY29hL0ltYWdlQnVmZmVyU2hhcmVhYmxlTWFwcGVkSU9TdXJm
YWNlQmFja2VuZC5jcHAKQEAgLTc3LDEzICs3NywxMSBAQCBJbWFnZUJ1ZmZlckJhY2tlbmRIYW5k
bGUgSW1hZ2VCdWZmZXJTaGFyZWFibGVNYXBwZWRJT1N1cmZhY2VCYWNrZW5kOjpjcmVhdGVJbWFn
ZQogICAgIHJldHVybiBJbWFnZUJ1ZmZlckJhY2tlbmRIYW5kbGUobV9zdXJmYWNlLT5jcmVhdGVT
ZW5kUmlnaHQoKSk7CiB9CiAKLSNpZiBIQVZFKElPU1VSRkFDRV9TRVRfT1dORVJTSElQX0lERU5U
SVRZKQotdm9pZCBJbWFnZUJ1ZmZlclNoYXJlYWJsZU1hcHBlZElPU3VyZmFjZUJhY2tlbmQ6OnNl
dFByb2Nlc3NPd25lcnNoaXAodGFza19pZF90b2tlbl90IHByb2Nlc3NJZGVudGl0eVRva2VuKQor
dm9pZCBJbWFnZUJ1ZmZlclNoYXJlYWJsZU1hcHBlZElPU3VyZmFjZUJhY2tlbmQ6OnNldE93bmVy
c2hpcElkZW50aXR5KFdlYkNvcmU6OlByb2Nlc3NJZGVudGl0eSogcmVzb3VyY2VPd25lcikKIHsK
ICAgICBBU1NFUlQoc3VyZmFjZSgpKTsKLSAgICBzdXJmYWNlKCktPnNldE93bmVyc2hpcElkZW50
aXR5KHByb2Nlc3NJZGVudGl0eVRva2VuKTsKKyAgICBzdXJmYWNlKCktPnNldE93bmVyc2hpcElk
ZW50aXR5KHJlc291cmNlT3duZXIpOwogfQotI2VuZGlmCiAKIH0gLy8gbmFtZXNwYWNlIFdlYktp
dAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL2Nv
Y29hL0ltYWdlQnVmZmVyU2hhcmVhYmxlTWFwcGVkSU9TdXJmYWNlQmFja2VuZC5oIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9jb2NvYS9JbWFnZUJ1ZmZlclNoYXJlYWJs
ZU1hcHBlZElPU3VyZmFjZUJhY2tlbmQuaAppbmRleCBlMTRhNTQwZWNkZGQ0NzExOTA4YTdjMTcx
YzNhMjVlYmZkODA4ZGJlLi5iOTc2MzIyMDMyZTZmZDFhMzBiOWEyNDRmZjgzODk2NjA5NTY0N2Mx
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL2NvY29h
L0ltYWdlQnVmZmVyU2hhcmVhYmxlTWFwcGVkSU9TdXJmYWNlQmFja2VuZC5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvY29jb2EvSW1hZ2VCdWZmZXJTaGFyZWFi
bGVNYXBwZWRJT1N1cmZhY2VCYWNrZW5kLmgKQEAgLTMxLDYgKzMxLDEwIEBACiAjaW5jbHVkZSA8
V2ViQ29yZS9JbWFnZUJ1ZmZlcklPU3VyZmFjZUJhY2tlbmQuaD4KICNpbmNsdWRlIDx3dGYvSXNv
TWFsbG9jLmg+CiAKK25hbWVzcGFjZSBXZWJDb3JlIHsKK2NsYXNzIFByb2Nlc3NJZGVudGl0eTsK
K30KKwogbmFtZXNwYWNlIFdlYktpdCB7CiAKIGNsYXNzIFNoYXJlYWJsZUJpdG1hcDsKQEAgLTQ2
LDkgKzUwLDcgQEAgcHVibGljOgogCiAgICAgSW1hZ2VCdWZmZXJCYWNrZW5kSGFuZGxlIGNyZWF0
ZUltYWdlQnVmZmVyQmFja2VuZEhhbmRsZSgpIGNvbnN0OwogCi0jaWYgSEFWRShJT1NVUkZBQ0Vf
U0VUX09XTkVSU0hJUF9JREVOVElUWSkKLSAgICB2b2lkIHNldFByb2Nlc3NPd25lcnNoaXAodGFz
a19pZF90b2tlbl90KTsKLSNlbmRpZgorICAgIHZvaWQgc2V0T3duZXJzaGlwSWRlbnRpdHkoV2Vi
Q29yZTo6UHJvY2Vzc0lkZW50aXR5KiByZXNvdXJjZU93bmVyKTsKIH07CiAKIH0gLy8gbmFtZXNw
YWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1dl
YlByb2Nlc3NDb2NvYS5tbSBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9XZWJQcm9j
ZXNzQ29jb2EubW0KaW5kZXggMDM0ZTJiNDhhYTAxNWFmN2NlZDc2NmRlOWFjZTgyOGRlZDEyMjY0
OS4uNjQyNWYzOTk2NTdkMDAzYjBmYWUyN2Q2YTVhMzI0ZDFlNGNhMWZmOSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1dlYlByb2Nlc3NDb2NvYS5tbQorKysgYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvV2ViUHJvY2Vzc0NvY29hLm1tCkBAIC0xMjQy
LDE0ICsxMjQyLDcgQEAgdm9pZCBXZWJQcm9jZXNzOjp3YWl0Rm9yUGVuZGluZ1Bhc3RlYm9hcmRX
cml0ZXNUb0ZpbmlzaChjb25zdCBTdHJpbmcmIHBhc3RlYm9hcmQKICNpZiBFTkFCTEUoR1BVX1BS
T0NFU1MpCiB2b2lkIFdlYlByb2Nlc3M6OnBsYXRmb3JtSW5pdGlhbGl6ZUdQVVByb2Nlc3NDb25u
ZWN0aW9uUGFyYW1ldGVycyhHUFVQcm9jZXNzQ29ubmVjdGlvblBhcmFtZXRlcnMmIHBhcmFtZXRl
cnMpCiB7Ci0jaWYgSEFWRShUQVNLX0lERU5USVRZX1RPS0VOKQotICAgIHRhc2tfaWRfdG9rZW5f
dCBpZGVudGl0eVRva2VuOwotICAgIGtlcm5fcmV0dXJuX3Qga3IgPSB0YXNrX2NyZWF0ZV9pZGVu
dGl0eV90b2tlbihtYWNoX3Rhc2tfc2VsZigpLCAmaWRlbnRpdHlUb2tlbik7Ci0gICAgaWYgKGty
ID09IEtFUk5fU1VDQ0VTUykKLSAgICAgICAgcGFyYW1ldGVycy53ZWJQcm9jZXNzSWRlbnRpdHlU
b2tlbiA9IE1hY2hTZW5kUmlnaHQ6OmFkb3B0KGlkZW50aXR5VG9rZW4pOwotICAgIGVsc2UKLSAg
ICAgICAgUkVMRUFTRV9MT0dfRVJST1IoUHJvY2VzcywgIkNhbGwgdG8gdGFza19jcmVhdGVfaWRl
bnRpdHlfdG9rZW4oKSBmYWlsZWQ6ICV7cHJpdmF0ZX1zICgleCkiLCBtYWNoX2Vycm9yX3N0cmlu
ZyhrciksIGtyKTsKLSNlbmRpZgorICAgIHBhcmFtZXRlcnMud2ViUHJvY2Vzc0lkZW50aXR5SGFu
ZGxlID0gUHJvY2Vzc0lkZW50aXR5OjpoYW5kbGVGb3JDdXJyZW50UHJvY2VzcygpOwogCiAgICAg
cGFyYW1ldGVycy5vdmVycmlkZUxhbmd1YWdlcyA9IHVzZXJQcmVmZXJyZWRMYW5ndWFnZXNPdmVy
cmlkZSgpOwogfQpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9n
CmluZGV4IGEwNDA4ZTMwMWYwMDdmMjZhNTA2Y2I5MjRmNDU2MDg1OGJmODE5OTAuLmQ2NzE0ZDgw
NWRlM2UxZGJmOGU5MTBhZmI3MzExZDYxODQ5MmJhM2IgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5n
ZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAyMS0xMS0xMSAg
S2ltbW8gS2lubnVuZW4gIDxra2lubnVuZW5AYXBwbGUuY29tPgorCisgICAgICAgIElPU3VyZmFj
ZSBtZW1vcnkgYXR0cmlidXRpb24gaXMgaGFyZCB0byB1c2UgaW4gY29uc3RydWN0b3JzCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzI5ODgKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBVcGRhdGUgY29uc3Ry
dWN0b3IgY2FsbGluZyBiYXNlIGNsYXNzIGNvbnN0cnVjdG9yLgorCisgICAgICAgICogVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJDb3JlL2NvY29hL1Rlc3RHcmFwaGljc0NvbnRleHRHTE9wZW5HTENv
Y29hLm1tOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6V2ViQ29yZTo6VGVzdGVkR3JhcGhpY3ND
b250ZXh0R0xPcGVuR0w6OmNyZWF0ZSk6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpXZWJDb3Jl
OjpUZXN0ZWRHcmFwaGljc0NvbnRleHRHTE9wZW5HTDo6VGVzdGVkR3JhcGhpY3NDb250ZXh0R0xP
cGVuR0wpOgorCiAyMDIxLTExLTEwICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAK
ICAgICAgICAgV2Ugc2hvdWxkIG5vdCBraWxsIGFsbCBXZWJDb250ZW50IHByb2Nlc3NlcyB3aGVu
ZXZlciB0aGUgV2ViQXV0aG4gcHJvY2VzcyBjcmFzaGVzCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvY29jb2EvVGVzdEdyYXBoaWNzQ29udGV4dEdMT3BlbkdM
Q29jb2EubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvY29jb2EvVGVzdEdy
YXBoaWNzQ29udGV4dEdMT3BlbkdMQ29jb2EubW0KaW5kZXggOTE3ZDJlODE2MGE1MzJiZjY2NzRh
NDIwNTU3ZTI0ZDVhYmE3ODNmNi4uOGM4ZWE4ZmQ4YmUzMWIwZGZjYTgwN2ViNjVkMGUyNzE4MWI4
ZGQ5YyAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL2NvY29h
L1Rlc3RHcmFwaGljc0NvbnRleHRHTE9wZW5HTENvY29hLm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvV2ViQ29yZS9jb2NvYS9UZXN0R3JhcGhpY3NDb250ZXh0R0xPcGVuR0xDb2Nv
YS5tbQpAQCAtMzksMTIgKzM5LDEyIEBAIGNsYXNzIFRlc3RlZEdyYXBoaWNzQ29udGV4dEdMT3Bl
bkdMIDogcHVibGljIEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMIHsKIHB1YmxpYzoKICAgICBzdGF0
aWMgUmVmUHRyPFRlc3RlZEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMPiBjcmVhdGUoR3JhcGhpY3ND
b250ZXh0R0xBdHRyaWJ1dGVzIGF0dHJpYnV0ZXMpCiAgICAgewotICAgICAgICBhdXRvIGNvbnRl
eHQgPSBhZG9wdFJlZigqbmV3IFRlc3RlZEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMKFdURk1vdmUo
YXR0cmlidXRlcykpKTsKKyAgICAgICAgYXV0byBjb250ZXh0ID0gYWRvcHRSZWYoKm5ldyBUZXN0
ZWRHcmFwaGljc0NvbnRleHRHTE9wZW5HTChXVEZNb3ZlKGF0dHJpYnV0ZXMpLCB7IH0pKTsKICAg
ICAgICAgcmV0dXJuIGNvbnRleHQ7CiAgICAgfQogcHJpdmF0ZToKLSAgICBUZXN0ZWRHcmFwaGlj
c0NvbnRleHRHTE9wZW5HTChHcmFwaGljc0NvbnRleHRHTEF0dHJpYnV0ZXMgYXR0cmlidXRlcykK
LSAgICAgICAgOiBHcmFwaGljc0NvbnRleHRHTE9wZW5HTChXVEZNb3ZlKGF0dHJpYnV0ZXMpKQor
ICAgIFRlc3RlZEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMKEdyYXBoaWNzQ29udGV4dEdMQXR0cmli
dXRlcyBhdHRyaWJ1dGVzLCBSZWZQdHI8UHJvY2Vzc0lkZW50aXR5PiByZXNvdXJjZU93bmVyKQor
ICAgICAgICA6IEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMKFdURk1vdmUoYXR0cmlidXRlcyksIFdU
Rk1vdmUocmVzb3VyY2VPd25lcikpCiAgICAgewogICAgIH0KIH07Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>443985</attachid>
            <date>2021-11-11 11:59:03 -0800</date>
            <delta_ts>2021-11-11 22:51:17 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-232988-20211111215901.patch</filename>
            <type>text/plain</type>
            <size>52952</size>
            <attacher name="Kimmo Kinnunen">kkinnunen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg1NjIyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzEzMjQzOGVjMDliZTE4
MTE0NjI5NmIyYmYyMmViYWRlZWIxY2VkNi4uYmVlZmIyMDQ5MzlkYzI0ZGVhMzJjNzYyMmYyZDE2
NGNmYTUyYzRlZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU3IEBACisyMDIxLTExLTExICBLaW1t
byBLaW5udW5lbiAgPGtraW5udW5lbkBhcHBsZS5jb20+CisKKyAgICAgICAgSU9TdXJmYWNlIG1l
bW9yeSBhdHRyaWJ1dGlvbiBpcyBoYXJkIHRvIHVzZSBpbiBjb25zdHJ1Y3RvcnMKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMjk4OAorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBXZWJDb3JlOjpQcm9j
ZXNzSWRlbnRpdHkgdHlwZSB0aGF0IGNhbiBiZSB1c2VkIHRvIGNvbW11bmljYXRlIG1lbW9yeSBh
dHRyaWJ1dGlvbi4KKyAgICAgICAgRm9yIG5vbi1Db2NvYSBwb3J0cywgdGhpcyBpcyBudWxscHRy
LgorICAgICAgICBUaGlzIGlzIHVzZWQgaW4gV2ViQ29yZSB0byBzZXQgdGhlIG1lbW9yeSBhdHRy
aWJ1dGlvbiBvZiBJT1N1cmZhY2UgYW5kIG9iamVjdHMKKyAgICAgICAgdGhhdCBob2xkIElPU3Vy
ZmFjZXMuCisgICAgICAgIFRoaXMgaXMgaW5zdGFudGlhdGVkIGluIFdlYktpdC4KKyAgICAgICAg
Q3VycmVudGx5IHRoZSBvbmx5IHVzZWZ1bCB3YXkgdG8gaW5zdGFudGlhdGUgUHJvY2Vzc0lkZW50
aXR5IGlzIGJ5IHJlY2VpdmluZworICAgICAgICB0aGUgUHJvY2Vzc0lkZW50aXR5OjpIYW5kbGUg
YXMgYSBtZXNzYWdlIGFuZCBjcmVhdGUgaXQgdGhpcyB3YXkgZm9yIHRoZQorICAgICAgICBzZW5k
ZXIgcHJvY2Vzcy4KKworICAgICAgICBObyBuZXcgdGVzdHMsIHJlZmFjdG9yLgorCisgICAgICAg
ICogSGVhZGVycy5jbWFrZToKKyAgICAgICAgKiBTb3VyY2VzLnR4dDoKKyAgICAgICAgKiBXZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogcGxhdGZvcm0vTG9nZ2lu
Zy5oOgorICAgICAgICBBZGQgV2ViQ29yZSBQcm9jZXNzIGxvZyB0YWcgc2luY2UgdGhlIGNvZGUg
bW92ZWQgZnJvbSBXZWJLaXQgdG8gUHJvY2Vzc0lkZW50aXR5CisgICAgICAgIHVzZWQgdGhhdCB0
YWcgdG8gbG9nLgorICAgICAgICAqIHBsYXRmb3JtL1Byb2Nlc3NJZGVudGl0eS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpQcm9jZXNzSWRlbnRpdHk6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3Jl
OjpQcm9jZXNzSWRlbnRpdHk6OlByb2Nlc3NJZGVudGl0eSk6CisgICAgICAgIChXZWJDb3JlOjpQ
cm9jZXNzSWRlbnRpdHk6OmhhbmRsZUZvckN1cnJlbnRQcm9jZXNzKToKKyAgICAgICAgKFdlYkNv
cmU6OlByb2Nlc3NJZGVudGl0eTo6aGFuZGxlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlBy
b2Nlc3NJZGVudGl0eTo6dGFza0lkVG9rZW4gY29uc3QpOgorICAgICAgICAqIHBsYXRmb3JtL1By
b2Nlc3NJZGVudGl0eS5oOgorICAgICAgICBBZGQgdGhlIFByb2Nlc3NJZGVudGl0eSB0eXBlIHRo
YXQgY2FuIGJlIHVzZWQgdG8gY29tbXVuaWNhdGUgbWVtb3J5IGF0dHJpYnV0aW9uLgorCisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvUmVtb3RlVmlkZW9TYW1wbGUuaDoKKyAgICAgICAgKFdl
YkNvcmU6OlJlbW90ZVZpZGVvU2FtcGxlOjpzZXRPd25lcnNoaXBJZGVudGl0eSk6CisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvY2cvSW1hZ2VCdWZmZXJVdGlsaXRpZXNDRy5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjplbmNvZGUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NvY29h
L0dyYXBoaWNzQ29udGV4dEdMT3BlbkdMQ29jb2EubW06CisgICAgICAgIChXZWJDb3JlOjpHcmFw
aGljc0NvbnRleHRHTE9wZW5HTDo6R3JhcGhpY3NDb250ZXh0R0xPcGVuR0wpOgorICAgICAgICAo
V2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0R0xPcGVuR0w6OmFsbG9jYXRlQW5kQmluZERpc3BsYXlC
dWZmZXJCYWNraW5nKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9JT1N1cmZh
Y2UuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9JT1N1cmZhY2UubW06Cisg
ICAgICAgIChXZWJDb3JlOjpJT1N1cmZhY2U6OnNldE93bmVyc2hpcElkZW50aXR5KToKKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9XZWJQcm9jZXNzR3JhcGhpY3NDb250ZXh0R0xP
cGVuR0xDb2NvYS5tbToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR3JhcGhp
Y3NDb250ZXh0R0xPcGVuR0wuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAv
R3JhcGhpY3NDb250ZXh0R0xUZXh0dXJlTWFwcGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okdy
YXBoaWNzQ29udGV4dEdMT3BlbkdMOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhp
Y3NDb250ZXh0R0xPcGVuR0w6OkdyYXBoaWNzQ29udGV4dEdMT3BlbkdMKToKKyAgICAgICAgQWRk
IGFuIGV4YW1wbGUgdXNlIHdoZXJlIHRoZSBjb25zdHJ1Y3RvciB0YWtlcyB0aGUgbWVtb3J5IGF0
dHJpYnV0aW9uIHRva2VuLgorICAgICAgICBUaGlzIG1heSBiZSBuZWVkZWQgaW4gdGhlIGZ1dHVy
ZSB3aGVuIHRoZSB0b2tlbiBpcyB1c2VkIGFzIGEgcGFyYW1ldGVyIGluCisgICAgICAgIHRoZSBB
TkdMRSBjb250ZXh0IGNyZWF0aW9uLgorICAgICAgICBVc2UgdGhlIHRva2VuIGluIGNyZWF0aW5n
IHRoZSBJT1N1cmZhY2UuIFRoaXMgZml4ZXMgYSBidWcgd2hlcmUgV2ViR0wKKyAgICAgICAgYmFj
ayBidWZmZXJzIHdvdWxkIG5vdCBiZSBhdHRyaWJ1dGVkIHVudGlsIHRoZXkgd2VyZSBzZW50IHRv
IFdQLgorCiAyMDIxLTExLTExICBBbnR0aSBLb2l2aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KIAog
ICAgICAgICBVc2UgbmFycm93ZXIgdHlwZXMgZm9yIHN0eWxlIHNjb3BlIG9yZGluYWwgYW5kIGNh
c2NhZGUgbGF5ZXIgcHJpb3JpdHkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9n
IGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggNGUxNTE5NmQ4Y2ZkZDc0MDI0YmE3YWRm
NmNmZDU4N2VjZDVkZDQ4Mi4uNmEyODQwOWVkZjA2Zjk2ZDM0OTljMzA1NTNiZjViNmJlYjBlMGRj
MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktp
dC9DaGFuZ2VMb2cKQEAgLTEsMyArMSw1NCBAQAorMjAyMS0xMS0xMSAgS2ltbW8gS2lubnVuZW4g
IDxra2lubnVuZW5AYXBwbGUuY29tPgorCisgICAgICAgIElPU3VyZmFjZSBtZW1vcnkgYXR0cmli
dXRpb24gaXMgaGFyZCB0byB1c2UgaW4gY29uc3RydWN0b3JzCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzI5ODgKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZW1vdmUgaWZkZWZzIGFuZCBkaXJlY3QgdXNl
IG9mIHRhc2tfaWRfdG9rZW5fdC4KKyAgICAgICAgSW5zdGVhZCwgdXNlIFdlYkNvcmU6OlByb2Nl
c3NJZGVudGlmaWVyLiBUaGlzIHdheSB0aGUKKyAgICAgICAgY3Jvc3MtcGxhdGZvcm0gY29kZSBp
cyBlYXNpZXIgdG8gYXV0aG9yLgorCisgICAgICAgICogR1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9u
VG9XZWJQcm9jZXNzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6R1BVQ29ubmVjdGlvblRvV2ViUHJv
Y2Vzczo6R1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcyk6CisgICAgICAgICogR1BVUHJvY2Vzcy9H
UFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmg6CisgICAgICAgIChXZWJLaXQ6OkdQVUNvbm5lY3Rp
b25Ub1dlYlByb2Nlc3M6OndlYlByb2Nlc3NJZGVudGl0eSBjb25zdCk6CisgICAgICAgIChXZWJL
aXQ6OkdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OndlYlByb2Nlc3NJZGVudGl0eVRva2VuIGNv
bnN0KTogRGVsZXRlZC4KKyAgICAgICAgKiBHUFVQcm9jZXNzL2dyYXBoaWNzL0dQVVByb2Nlc3NH
cmFwaGljc0NvbnRleHRHTC5oOgorICAgICAgICAqIEdQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3Rl
R3JhcGhpY3NDb250ZXh0R0xDb2NvYS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUdyYXBo
aWNzQ29udGV4dEdMQ29jb2E6OlJlbW90ZUdyYXBoaWNzQ29udGV4dEdMQ29jb2EpOgorICAgICAg
ICAoV2ViS2l0OjpSZW1vdGVHcmFwaGljc0NvbnRleHRHTENvY29hOjpwbGF0Zm9ybVdvcmtRdWV1
ZUluaXRpYWxpemUpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVHcmFwaGljc0NvbnRleHRHTENv
Y29hOjpwcmVwYXJlRm9yRGlzcGxheSk6CisgICAgICAgICogR1BVUHJvY2Vzcy9ncmFwaGljcy9S
ZW1vdGVJbWFnZUJ1ZmZlci5oOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVJbWFnZUJ1ZmZlcjo6
c2V0T3duZXJzaGlwSWRlbnRpdHkpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVJbWFnZUJ1ZmZl
cjo6c2V0UHJvY2Vzc093bmVyc2hpcCk6IERlbGV0ZWQuCisgICAgICAgICogR1BVUHJvY2Vzcy9n
cmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmNwcDoKKyAgICAgICAgKFdlYktpdDo6UmVt
b3RlUmVuZGVyaW5nQmFja2VuZDo6UmVtb3RlUmVuZGVyaW5nQmFja2VuZCk6CisgICAgICAgIChX
ZWJLaXQ6OlJlbW90ZVJlbmRlcmluZ0JhY2tlbmQ6OmNyZWF0ZUltYWdlQnVmZmVyV2l0aFF1YWxp
ZmllZElkZW50aWZpZXIpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZW5kZXJpbmdCYWNrZW5k
OjpnZXREYXRhVVJMRm9ySW1hZ2VCdWZmZXJXaXRoUXVhbGlmaWVkSWRlbnRpZmllcik6CisgICAg
ICAgICogR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmg6CisgICAg
ICAgICogR1BVUHJvY2Vzcy93ZWJydGMvTGliV2ViUlRDQ29kZWNzUHJveHkubW06CisgICAgICAg
IChXZWJLaXQ6OkZ1bmN0aW9uPHZvaWQpOgorICAgICAgICAqIFNoYXJlZC9HUFVQcm9jZXNzQ29u
bmVjdGlvblBhcmFtZXRlcnMuaDoKKyAgICAgICAgKFdlYktpdDo6R1BVUHJvY2Vzc0Nvbm5lY3Rp
b25QYXJhbWV0ZXJzOjplbmNvZGUgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpHUFVQcm9jZXNz
Q29ubmVjdGlvblBhcmFtZXRlcnM6OmRlY29kZSk6CisgICAgICAgICogU2hhcmVkL1dlYkNvcmVB
cmd1bWVudENvZGVycy5jcHA6CisgICAgICAgICogU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVy
cy5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclBy
b3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6
U291cmNlUHJveHk6OlNvdXJjZVByb3h5KToKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhQ2Fw
dHVyZU1hbmFnZXJQcm94eTo6U291cmNlUHJveHk6OnNldFNob3VsZEFwcGx5Um90YXRpb24pOgor
ICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OjpjcmVhdGVNZWRp
YVNvdXJjZUZvckNhcHR1cmVEZXZpY2VXaXRoQ29uc3RyYWludHMpOgorICAgICAgICAoV2ViS2l0
OjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OjpjbG9uZSk6CisgICAgICAgIChXZWJLaXQ6
OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6OlNvdXJjZVByb3h5OjpzZXRXZWJQcm9jZXNz
SWRlbnRpdHlUb2tlbik6IERlbGV0ZWQuCisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL1VzZXJN
ZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkuaDoKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhQ2Fw
dHVyZU1hbmFnZXJQcm94eTo6Q29ubmVjdGlvblByb3h5OjpyZXNvdXJjZU93bmVyIGNvbnN0KToK
KyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6Q29ubmVjdGlv
blByb3h5Ojp3ZWJQcm9jZXNzSWRlbnRpdHlUb2tlbiBjb25zdCk6IERlbGV0ZWQuCisgICAgICAg
ICogV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvY29jb2EvSW1hZ2VCdWZmZXJTaGFyZWFibGVNYXBw
ZWRJT1N1cmZhY2VCYWNrZW5kLmNwcDoKKyAgICAgICAgKFdlYktpdDo6SW1hZ2VCdWZmZXJTaGFy
ZWFibGVNYXBwZWRJT1N1cmZhY2VCYWNrZW5kOjpzZXRPd25lcnNoaXBJZGVudGl0eSk6CisgICAg
ICAgIChXZWJLaXQ6OkltYWdlQnVmZmVyU2hhcmVhYmxlTWFwcGVkSU9TdXJmYWNlQmFja2VuZDo6
c2V0UHJvY2Vzc093bmVyc2hpcCk6IERlbGV0ZWQuCisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUv
Z3JhcGhpY3MvY29jb2EvSW1hZ2VCdWZmZXJTaGFyZWFibGVNYXBwZWRJT1N1cmZhY2VCYWNrZW5k
Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9jb2NvYS9XZWJQcm9jZXNzQ29jb2EubW06CisgICAg
ICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OnBsYXRmb3JtSW5pdGlhbGl6ZUdQVVByb2Nlc3NDb25u
ZWN0aW9uUGFyYW1ldGVycyk6CiAyMDIxLTExLTEwICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBs
ZS5jb20+CiAKICAgICAgICAgV2Ugc2hvdWxkIG5vdCBraWxsIGFsbCBXZWJDb250ZW50IHByb2Nl
c3NlcyB3aGVuZXZlciB0aGUgV2ViQXV0aG4gcHJvY2VzcyBjcmFzaGVzCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlIGIvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFr
ZQppbmRleCAzNjM1ZmM1YmNlOWVhZDQ5MGM4ZDk4NTRmZThlNWZkZTI5Njc0ZDIwLi44MWQ2ZjZh
YTMzMzk0NmIxN2M2YjJkYmQxZGZhMmQ1ZDgwMzYxMWJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9IZWFkZXJzLmNtYWtlCisrKyBiL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKQEAg
LTExNDAsNiArMTE0MCw3IEBAIHNldChXZWJDb3JlX1BSSVZBVEVfRlJBTUVXT1JLX0hFQURFUlMK
ICAgICBwbGF0Zm9ybS9Qb3B1cE1lbnVDbGllbnQuaAogICAgIHBsYXRmb3JtL1BvcHVwTWVudVN0
eWxlLmgKICAgICBwbGF0Zm9ybS9Qcm9jZXNzSWRlbnRpZmllci5oCisgICAgcGxhdGZvcm0vUHJv
Y2Vzc0lkZW50aXR5LmgKICAgICBwbGF0Zm9ybS9Qcm9jZXNzUXVhbGlmaWVkLmgKICAgICBwbGF0
Zm9ybS9Qcm9taXNlZEF0dGFjaG1lbnRJbmZvLmgKICAgICBwbGF0Zm9ybS9QdWJsaWNTdWZmaXgu
aApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQgYi9Tb3VyY2UvV2ViQ29y
ZS9Tb3VyY2VzLnR4dAppbmRleCA4YTExNGExMjM4ZDRmNjgxODg0NmYyMWMyZGIwYWMwMzAzYjFl
YjI5Li5hNWJiMjhjNmY3NTE2YWY2ZjhkM2VhYmRmZGEyYmVmZmE0ZTUyM2RlIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2Vz
LnR4dApAQCAtMTg3MCw2ICsxODcwLDcgQEAgcGxhdGZvcm0vUGxhdGZvcm1TdHJhdGVnaWVzLmNw
cAogcGxhdGZvcm0vUGxhdGZvcm1XaGVlbEV2ZW50LmNwcAogcGxhdGZvcm0vUHJldmlld0NvbnZl
cnRlci5jcHAKIHBsYXRmb3JtL1Byb2Nlc3NJZGVudGlmaWVyLmNwcAorcGxhdGZvcm0vUHJvY2Vz
c0lkZW50aXR5LmNwcAogcGxhdGZvcm0vUmVmZXJyZXJQb2xpY3kuY3BwCiBwbGF0Zm9ybS9SZW1v
dGVDb21tYW5kTGlzdGVuZXIuY3BwCiBwbGF0Zm9ybS9SdW50aW1lQXBwbGljYXRpb25DaGVja3Mu
Y3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2oKaW5kZXggMjk5YTg4NjYwZjFlYjAyMmNiZDhiNGVkYzIzMWIyMjkwOWJkYTE0NC4uMTIzZjg0
NjM4MzIxMTQ0ZDE2YzM5NTVmMmQ1MzgyNDQ3MGVhYzdhNSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMjM2Myw2ICsyMzYzLDcg
QEAKIAkJN0I3MzExRkIyNUMwOTJCNzAwM0IyNzk2IC8qIFNjb3BlZEhpZ2hQZXJmb3JtYW5jZUdQ
VVJlcXVlc3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDdCNzMxMUZBMjVDMDkyQjcwMDNCMjc5NiAvKiBTY29wZWRIaWdoUGVyZm9ybWFuY2VHUFVSZXF1
ZXN0LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJ
N0I4RUQ1RjAyNkYwQzEzRDAwOEFDMDIzIC8qIENWVXRpbGl0aWVzLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3QjhFRDVFRDI2RjBDMTIzMDA4QUMwMjMg
LyogQ1ZVdGlsaXRpZXMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OwogCQk3QjkwNDE3MDI1NTAxMTQyMDA2RUVCOEMgLyogUmVtb3RlR3JhcGhpY3NDb250
ZXh0R0xQcm94eUJhc2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDdCOTA0MTZFMjU1MDExMDkwMDZFRUI4QyAvKiBSZW1vdGVHcmFwaGljc0NvbnRleHRH
TFByb3h5QmFzZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CisJCTdCQTdDNkMzMjczQkY2MkMwMDI5REZCRSAvKiBQcm9jZXNzSWRlbnRpdHkuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdCQTdDNkMxMjczQkY2
MkIwMDI5REZCRSAvKiBQcm9jZXNzSWRlbnRpdHkuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRF
UyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk3QkIzNEE0ODI1Mzc3NkNBMDAwMjlEMDggLyogR3Jh
cGhpY3NDb250ZXh0R0xJbWFnZUV4dHJhY3Rvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gN0JCMzRBNDUyNTM3NzZDNjAwMDI5RDA4IC8qIEdyYXBoaWNz
Q29udGV4dEdMSW1hZ2VFeHRyYWN0b3IuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQ
cml2YXRlLCApOyB9OyB9OwogCQk3QkI2ODBCQTI1QkExQkU0MDAyQjg3MzggLyogR3JhcGhpY3ND
aGVja3NNYWMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDdCQjY4MEI4MjVCQTFCRTQwMDJCODczOCAvKiBHcmFwaGljc0NoZWNrc01hYy5oICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTdCRTc0MjczODFGQTkw
NkZCQjRGMEYyQyAvKiBKU1NWR0dyYXBoaWNzRWxlbWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTUwQzRDMDJCRUQ4OTM2RjgxOEUyRjk5IC8qIEpT
U1ZHR3JhcGhpY3NFbGVtZW50LmggKi87IH07CkBAIC0xMTAyMSw2ICsxMTAyMiw4IEBACiAJCTdC
OEVENUVEMjZGMEMxMjMwMDhBQzAyMyAvKiBDVlV0aWxpdGllcy5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBDVlV0aWxpdGllcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk3QjhFRDVFRjI2RjBDMTIzMDA4QUMwMjMgLyogQ1ZVdGlsaXRpZXMubW0gKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBDVlV0aWxpdGllcy5tbTsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0I5MDQxNkUyNTUwMTEwOTAwNkVFQjhDIC8qIFJlbW90ZUdy
YXBoaWNzQ29udGV4dEdMUHJveHlCYXNlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbW90ZUdyYXBoaWNz
Q29udGV4dEdMUHJveHlCYXNlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTdCQTdD
NkJGMjczQkY2MkIwMDI5REZCRSAvKiBQcm9jZXNzSWRlbnRpdHkuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUHJvY2Vzc0lkZW50aXR5LmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJN0JBN0M2QzEyNzNCRjYyQjAwMjlERkJFIC8qIFByb2Nlc3NJZGVu
dGl0eS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQcm9jZXNzSWRlbnRpdHku
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0JCMzRBMTYyNTM0NUNCMjAwMDI5RDA4
IC8qIEFOR0xFVXRpbGl0aWVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEFO
R0xFVXRpbGl0aWVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdCQjM0QTQ1MjUz
Nzc2QzYwMDAyOUQwOCAvKiBHcmFwaGljc0NvbnRleHRHTEltYWdlRXh0cmFjdG9yLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IEdyYXBoaWNzQ29udGV4dEdMSW1hZ2VFeHRyYWN0b3IuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJN0JCMzRBNDcyNTM3NzZDNzAwMDI5RDA4IC8qIEdyYXBoaWNzQ29u
dGV4dEdMSW1hZ2VFeHRyYWN0b3IuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gR3JhcGhpY3NDb250
ZXh0R0xJbWFnZUV4dHJhY3Rvci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0x
ODkyMCwxMSArMTg5MjMsMTEgQEAKIAkJMUE1NjlDQzQwRDdFMkI2MDAwN0MzOTgzIC8qIGJyaWRn
ZSAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCi0JCQkJNTlCNTk3
NzExMTA4NjU1NjAwNzE1OUU4IC8qIGpzYyAqLywKLQkJCQkxQTU2OUNFMjBEN0UyQjgyMDA3QzM5
ODMgLyogb2JqYyAqLywKIAkJCQk1OTlFNzU4RjExMDU1QTFGMDBEOTA0RkEgLyogQnJpZGdlLmgg
Ki8sCiAJCQkJMUE3MUQ1NzkwRjMzODE5MDAwRjlDRTRFIC8qIElkZW50aWZpZXJSZXAuY3BwICov
LAogCQkJCTFBNzFENTdBMEYzMzgxOTAwMEY5Q0U0RSAvKiBJZGVudGlmaWVyUmVwLmggKi8sCisJ
CQkJNTlCNTk3NzExMTA4NjU1NjAwNzE1OUU4IC8qIGpzYyAqLywKKwkJCQkxQTU2OUNFMjBEN0Uy
QjgyMDA3QzM5ODMgLyogb2JqYyAqLywKIAkJCQkxQTU2OUNFRjBEN0UyQjgyMDA3QzM5ODMgLyog
cnVudGltZV9hcnJheS5jcHAgKi8sCiAJCQkJMUE1NjlDRjAwRDdFMkI4MjAwN0MzOTgzIC8qIHJ1
bnRpbWVfYXJyYXkuaCAqLywKIAkJCQkxQTU2OUNGMTBEN0UyQjgyMDA3QzM5ODMgLyogcnVudGlt
ZV9tZXRob2QuY3BwICovLApAQCAtMjg5OTAsNiArMjg5OTMsOCBAQAogCQkJCUExQURBRjdDMjM2
MEZEM0UwMDlDQjc3NiAvKiBQcmV2aWV3Q29udmVydGVyUHJvdmlkZXIuaCAqLywKIAkJCQk1MUY2
NDVEMjFGRUNEQkM4MDBCNTRERUQgLyogUHJvY2Vzc0lkZW50aWZpZXIuY3BwICovLAogCQkJCTUx
RjY0NUQzMUZFQ0RCQzgwMEI1NERFRCAvKiBQcm9jZXNzSWRlbnRpZmllci5oICovLAorCQkJCTdC
QTdDNkJGMjczQkY2MkIwMDI5REZCRSAvKiBQcm9jZXNzSWRlbnRpdHkuY3BwICovLAorCQkJCTdC
QTdDNkMxMjczQkY2MkIwMDI5REZCRSAvKiBQcm9jZXNzSWRlbnRpdHkuaCAqLywKIAkJCQkxQ0M1
NEFGQjI3MEY5MkRBMDA1QkY4QkUgLyogUHJvY2Vzc1F1YWxpZmllZC5oICovLAogCQkJCUY0N0E2
MzNDMUZGNkZENTAwMDgxQjNDQyAvKiBQcm9taXNlZEF0dGFjaG1lbnRJbmZvLmggKi8sCiAJCQkJ
MDA4MUZFRkQxNkIwQTI0NDAwOEFBQTdBIC8qIFB1YmxpY1N1ZmZpeC5oICovLApAQCAtMzU0NzIs
NiArMzU0NzcsNyBAQAogCQkJCUI3MUZFNkRGMTEwOTFDQjMwMERBRUY3NyAvKiBQcmludENvbnRl
eHQuaCBpbiBIZWFkZXJzICovLAogCQkJCTZCMEEwN0YyMjFGQTRCNUMwMEQ1NzM5MSAvKiBQcml2
YXRlQ2xpY2tNZWFzdXJlbWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTFGNjQ1RDUxRkVDREJD
RTAwQjU0REVEIC8qIFByb2Nlc3NJZGVudGlmaWVyLmggaW4gSGVhZGVycyAqLywKKwkJCQk3QkE3
QzZDMzI3M0JGNjJDMDAyOURGQkUgLyogUHJvY2Vzc0lkZW50aXR5LmggaW4gSGVhZGVycyAqLywK
IAkJCQlBOEVBN0VCQzBBMTk0NUQwMDBBOEVGNUYgLyogUHJvY2Vzc2luZ0luc3RydWN0aW9uLmgg
aW4gSGVhZGVycyAqLywKIAkJCQkxQ0M1NEFGRTI3MEY5NkFFMDA1QkY4QkUgLyogUHJvY2Vzc1F1
YWxpZmllZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTQyMDUwMTcyMTQxOTAxQjAwNjZFRjNCIC8q
IFByb2Nlc3NXYXJtaW5nLmggaW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL0xvZ2dpbmcuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xvZ2dpbmcu
aAppbmRleCAzZmJlNDE3YmU5ODFiNzVlNzc5ZGUyMzhmYzRiZTA1YTZkNzMwZmFhLi5kYzBmNTA5
OGI4N2YxODQ1NTI1YmUzYzBiYTQxZjc2NzViMTQwNDdmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9Mb2dnaW5nLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTG9n
Z2luZy5oCkBAIC05NCw2ICs5NCw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICBNKFBsdWdp
bnMpIFwKICAgICBNKFBvcHVwQmxvY2tpbmcpIFwKICAgICBNKFByaXZhdGVDbGlja01lYXN1cmVt
ZW50KSBcCisgICAgTShQcm9jZXNzKSBcCiAgICAgTShQcm9ncmVzcykgXAogICAgIE0oUmVtb3Rl
SW5zcGVjdG9yKSBcCiAgICAgTShSZXF1ZXN0QW5pbWF0aW9uRnJhbWUpIFwKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Byb2Nlc3NJZGVudGl0eS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9Qcm9jZXNzSWRlbnRpdHkuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjEyZTA0Zjc5M2I4
ODQ3OTg1OWRlMGU5NmU1MmNmNjhjMTY0OGMxMTYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9Qcm9jZXNzSWRlbnRpdHkuY3BwCkBAIC0wLDAgKzEsNzUgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBg
YEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRS
SUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29u
ZmlnLmgiCisjaW5jbHVkZSAiUHJvY2Vzc0lkZW50aXR5LmgiCisKKyNpbmNsdWRlICJMb2dnaW5n
LmgiCisjaW5jbHVkZSA8bWFjaC9tYWNoLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworUmVm
UHRyPFByb2Nlc3NJZGVudGl0eT4gUHJvY2Vzc0lkZW50aXR5OjpjcmVhdGUoSGFuZGxlJiYgaGFu
ZGxlKQoreworI2lmIEhBVkUoVEFTS19JREVOVElUWV9UT0tFTikKKyAgICByZXR1cm4gYWRvcHRS
ZWYobmV3IFByb2Nlc3NJZGVudGl0eShXVEZNb3ZlKGhhbmRsZSkpKTsKKyNlbHNlCisgICAgVU5V
U0VEX1BBUkFNKGhhbmRsZSk7CisgICAgcmV0dXJuIG51bGxwdHI7CisjZW5kaWYKK30KKworUHJv
Y2Vzc0lkZW50aXR5OjpQcm9jZXNzSWRlbnRpdHkoSGFuZGxlJiYgaGFuZGxlKQorICAgIDogbV9o
YW5kbGUoV1RGTW92ZShoYW5kbGUpKQoreworfQorCitQcm9jZXNzSWRlbnRpdHk6OkhhbmRsZSBQ
cm9jZXNzSWRlbnRpdHk6OmhhbmRsZUZvckN1cnJlbnRQcm9jZXNzKCkKK3sKKyAgICBQcm9jZXNz
SWRlbnRpdHk6OkhhbmRsZSByZXN1bHQ7CisjaWYgSEFWRShUQVNLX0lERU5USVRZX1RPS0VOKQor
ICAgIHRhc2tfaWRfdG9rZW5fdCBpZGVudGl0eVRva2VuOworICAgIGtlcm5fcmV0dXJuX3Qga3Ig
PSB0YXNrX2NyZWF0ZV9pZGVudGl0eV90b2tlbihtYWNoX3Rhc2tfc2VsZigpLCAmaWRlbnRpdHlU
b2tlbik7CisgICAgaWYgKGtyID09IEtFUk5fU1VDQ0VTUykKKyAgICAgICAgcmVzdWx0ID0gTWFj
aFNlbmRSaWdodDo6YWRvcHQoaWRlbnRpdHlUb2tlbik7CisgICAgZWxzZQorICAgICAgICBSRUxF
QVNFX0xPR19FUlJPUihQcm9jZXNzLCAidGFza19jcmVhdGVfaWRlbnRpdHlfdG9rZW4oKSBmYWls
ZWQ6ICV7cHJpdmF0ZX1zICgleCkiLCBtYWNoX2Vycm9yX3N0cmluZyhrciksIGtyKTsKKyNlbmRp
ZgorICAgIHJldHVybiByZXN1bHQ7Cit9CisKK2NvbnN0IFByb2Nlc3NJZGVudGl0eTo6SGFuZGxl
JiBQcm9jZXNzSWRlbnRpdHk6OmhhbmRsZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1faGFuZGxl
OworfQorCisjaWYgSEFWRShUQVNLX0lERU5USVRZX1RPS0VOKQordGFza19pZF90b2tlbl90IFBy
b2Nlc3NJZGVudGl0eTo6dGFza0lkVG9rZW4oKSBjb25zdAoreworICAgIHJldHVybiBtX2hhbmRs
ZS5zZW5kUmlnaHQoKTsKK30KKyNlbmRpZgorCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9Qcm9jZXNzSWRlbnRpdHkuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1By
b2Nlc3NJZGVudGl0eS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjBjYTAxOTNiMTJlNTQ0MzZjNmZlYmJjNmViZTM0
ZTAxNjM3NjBmYTAKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Q
cm9jZXNzSWRlbnRpdHkuaApAQCAtMCwwICsxLDYxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAq
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFS
WSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UK
KyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlIDx3dGYvVGhy
ZWFkU2FmZVJlZkNvdW50ZWQuaD4KKworI2lmIEhBVkUoVEFTS19JREVOVElUWV9UT0tFTikKKyNp
bmNsdWRlIDx3dGYvTWFjaFNlbmRSaWdodC5oPgorI2Vsc2UKKyNpbmNsdWRlIDx2YXJpYW50Pgor
I2VuZGlmCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworLy8gT2JqZWN0IHRvIGFjY2VzcyBwcm9v
ZiBvZiBwcm9jZXNzIGlkZW50aXR5LgorLy8gUHJvY2Vzc0lkZW50aWZpZXIgaWRlbnRpZmllcyBh
IHByb2Nlc3MuCisvLyBQcm9jZXNzSWRlbnRpdHkgZ3JhbnRzIGFjY2VzcyB0byB0aGUgaWRlbnRp
dHkuCitjbGFzcyBXRUJDT1JFX0VYUE9SVCBQcm9jZXNzSWRlbnRpdHkgZmluYWwgOiBwdWJsaWMg
VGhyZWFkU2FmZVJlZkNvdW50ZWQ8UHJvY2Vzc0lkZW50aXR5PiB7CitwdWJsaWM6CisjaWYgSEFW
RShUQVNLX0lERU5USVRZX1RPS0VOKQorICAgIHVzaW5nIEhhbmRsZSA9IE1hY2hTZW5kUmlnaHQ7
CisjZWxzZQorICAgIHVzaW5nIEhhbmRsZSA9IHN0ZDo6bW9ub3N0YXRlOworI2VuZGlmCisgICAg
c3RhdGljIFJlZlB0cjxQcm9jZXNzSWRlbnRpdHk+IGNyZWF0ZShIYW5kbGUmJik7CisgICAgc3Rh
dGljIEhhbmRsZSBoYW5kbGVGb3JDdXJyZW50UHJvY2VzcygpOworICAgIGNvbnN0IEhhbmRsZSYg
aGFuZGxlKCkgY29uc3Q7CisKKyNpZiBIQVZFKFRBU0tfSURFTlRJVFlfVE9LRU4pCisgICAgdGFz
a19pZF90b2tlbl90IHRhc2tJZFRva2VuKCkgY29uc3Q7CisjZW5kaWYKK3ByaXZhdGU6CisgICAg
UHJvY2Vzc0lkZW50aXR5KEhhbmRsZSYmKTsKKworICAgIEhhbmRsZSBtX2hhbmRsZTsKK307CisK
K30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1JlbW90ZVZp
ZGVvU2FtcGxlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9SZW1vdGVWaWRl
b1NhbXBsZS5oCmluZGV4IGE2MTcwYjMyOGZjNDRhY2U2OTNkY2RiMzVlZTRkM2NlNjg3MzM4YTEu
LjBmNWJhZWE4NTZlM2YxYThjZTE2NWIyMDM4NjVjOTY0NDM1NDI1NjEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1JlbW90ZVZpZGVvU2FtcGxlLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvUmVtb3RlVmlkZW9TYW1wbGUuaApAQCAt
MzcsNiArMzcsOCBAQCB0eXBlZGVmIHN0cnVjdCBfX0NWQnVmZmVyKiBDVlBpeGVsQnVmZmVyUmVm
OwogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK2NsYXNzIFByb2Nlc3NJZGVudGl0eTsKKwogY2xh
c3MgUmVtb3RlVmlkZW9TYW1wbGUgewogcHVibGljOgogICAgIFJlbW90ZVZpZGVvU2FtcGxlKCkg
PSBkZWZhdWx0OwpAQCAtNDgsOSArNTAsNyBAQCBwdWJsaWM6CiAgICAgV0VCQ09SRV9FWFBPUlQg
c3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxSZW1vdGVWaWRlb1NhbXBsZT4gY3JlYXRlKFJldGFpblB0
cjxDVlBpeGVsQnVmZmVyUmVmPiYmLCBNZWRpYVRpbWUmJiBwcmVzZW50YXRpb25UaW1lLCBNZWRp
YVNhbXBsZTo6VmlkZW9Sb3RhdGlvbiA9IE1lZGlhU2FtcGxlOjpWaWRlb1JvdGF0aW9uOjpOb25l
KTsKICAgICBXRUJDT1JFX0VYUE9SVCBJT1N1cmZhY2VSZWYgc3VyZmFjZSgpIGNvbnN0OwogCi0j
aWYgSEFWRShJT1NVUkZBQ0VfU0VUX09XTkVSU0hJUF9JREVOVElUWSkKLSAgICB2b2lkIHNldE93
bmVyc2hpcElkZW50aXR5KHRhc2tfaWRfdG9rZW5fdCBuZXdPd25lcik7Ci0jZW5kaWYKKyAgICB2
b2lkIHNldE93bmVyc2hpcElkZW50aXR5KFByb2Nlc3NJZGVudGl0eSogcmVzb3VyY2VPd25lcik7
CiAKICAgICBjb25zdCBNZWRpYVRpbWUmIHRpbWUoKSBjb25zdCB7IHJldHVybiBtX3RpbWU7IH0K
ICAgICB1aW50MzJfdCB2aWRlb0Zvcm1hdCgpIGNvbnN0IHsgcmV0dXJuIG1fdmlkZW9Gb3JtYXQ7
IH0KQEAgLTExOSwxMyArMTE5LDExIEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX21pcnJvcmVkIHsg
ZmFsc2UgfTsKIH07CiAKLSNpZiBIQVZFKElPU1VSRkFDRV9TRVRfT1dORVJTSElQX0lERU5USVRZ
KQotaW5saW5lIHZvaWQgUmVtb3RlVmlkZW9TYW1wbGU6OnNldE93bmVyc2hpcElkZW50aXR5KHRh
c2tfaWRfdG9rZW5fdCBuZXdPd25lcikKK2lubGluZSB2b2lkIFJlbW90ZVZpZGVvU2FtcGxlOjpz
ZXRPd25lcnNoaXBJZGVudGl0eShQcm9jZXNzSWRlbnRpdHkqIHJlc291cmNlT3duZXIpCiB7CiAg
ICAgaWYgKG1faW9TdXJmYWNlKQotICAgICAgICBtX2lvU3VyZmFjZS0+c2V0T3duZXJzaGlwSWRl
bnRpdHkobmV3T3duZXIpOworICAgICAgICBtX2lvU3VyZmFjZS0+c2V0T3duZXJzaGlwSWRlbnRp
dHkocmVzb3VyY2VPd25lcik7CiB9Ci0jZW5kaWYKIAogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9HcmFwaGljc0NvbnRleHRHTE9wZW5HTENv
Y29hLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvR3JhcGhpY3ND
b250ZXh0R0xPcGVuR0xDb2NvYS5tbQppbmRleCBmYjcyM2RkNDIyZGU5YjlkYWRhOWU0Y2I4OTdk
MDYxY2JlNmQ2MDNlLi4xOTc5ZGE1NjcyNGJhMGQyNWFkYTVkMTQxYjYzZjVhYjVmMWU3YTk0IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9HcmFwaGlj
c0NvbnRleHRHTE9wZW5HTENvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2NvY29hL0dyYXBoaWNzQ29udGV4dEdMT3BlbkdMQ29jb2EubW0KQEAgLTE5Myw4ICsx
OTMsOSBAQCBzdGF0aWMgYm9vbCBuZWVkc0VBR0xPbk1hYygpCiB9CiAjZW5kaWYKIAotR3JhcGhp
Y3NDb250ZXh0R0xPcGVuR0w6OkdyYXBoaWNzQ29udGV4dEdMT3BlbkdMKEdyYXBoaWNzQ29udGV4
dEdMQXR0cmlidXRlcyBhdHRycykKK0dyYXBoaWNzQ29udGV4dEdMT3BlbkdMOjpHcmFwaGljc0Nv
bnRleHRHTE9wZW5HTChHcmFwaGljc0NvbnRleHRHTEF0dHJpYnV0ZXMmJiBhdHRycywgUmVmUHRy
PFByb2Nlc3NJZGVudGl0eT4mJiByZXNvdXJjZU93bmVyKQogICAgIDogR3JhcGhpY3NDb250ZXh0
R0woYXR0cnMpCisgICAgLCBtX3Jlc291cmNlT3duZXIoV1RGTW92ZShyZXNvdXJjZU93bmVyKSkK
IHsKICAgICBtX2lzRm9yV2ViR0wyID0gYXR0cnMud2ViR0xWZXJzaW9uID09IEdyYXBoaWNzQ29u
dGV4dEdMV2ViR0xWZXJzaW9uOjpXZWJHTDI7CiAgICAgaWYgKGF0dHJzLnVzZU1ldGFsICYmICFw
bGF0Zm9ybVN1cHBvcnRzTWV0YWwobV9pc0ZvcldlYkdMMikpIHsKQEAgLTU2NSw2ICs1NjYsOCBA
QCBib29sIEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMOjphbGxvY2F0ZUFuZEJpbmREaXNwbGF5QnVm
ZmVyQmFja2luZygpCiAgICAgYXV0byBiYWNraW5nID0gSU9TdXJmYWNlOjpjcmVhdGUoZ2V0SW50
ZXJuYWxGcmFtZWJ1ZmZlclNpemUoKSwgRGVzdGluYXRpb25Db2xvclNwYWNlOjpTUkdCKCkpOwog
ICAgIGlmICghYmFja2luZykKICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIGlmIChtX3Jlc291
cmNlT3duZXIpCisgICAgICAgIGJhY2tpbmctPnNldE93bmVyc2hpcElkZW50aXR5KG1fcmVzb3Vy
Y2VPd25lci5nZXQoKSk7CiAKICAgICBiYWNraW5nLT5taWdyYXRlQ29sb3JTcGFjZVRvUHJvcGVy
dGllcygpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
b2NvYS9JT1N1cmZhY2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29h
L0lPU3VyZmFjZS5oCmluZGV4IDU2NTI0NzgyMmRiYTI5Zjc2MDBiOTQwN2U2ZjRhY2I4YzFhMDZh
YWMuLjBjNDNjYTRmODA0ZDI2MGM2MTA1ZWI5MmI2MTEwOTFlMmMyNTMyYTIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0lPU3VyZmFjZS5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0lPU3VyZmFjZS5oCkBAIC00
Niw2ICs0Niw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIEdyYXBoaWNzQ29udGV4dDsK
IGNsYXNzIEhvc3RXaW5kb3c7CiBjbGFzcyBJbWFnZUJ1ZmZlcjsKK2NsYXNzIFByb2Nlc3NJZGVu
dGl0eTsKIAogZW51bSBjbGFzcyBQaXhlbEZvcm1hdCA6IHVpbnQ4X3Q7CiBlbnVtIGNsYXNzIFZv
bGF0aWxpdHlTdGF0ZSA6IHVpbnQ4X3Q7CkBAIC0xNTksOSArMTYwLDcgQEAgcHVibGljOgogICAg
IFdFQkNPUkVfRVhQT1JUIHN0YXRpYyB2b2lkIGNvbnZlcnRUb0Zvcm1hdChzdGQ6OnVuaXF1ZV9w
dHI8V2ViQ29yZTo6SU9TdXJmYWNlPiYmIGluU3VyZmFjZSwgRm9ybWF0LCBGdW5jdGlvbjx2b2lk
KHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpJT1N1cmZhY2U+KT4mJik7CiAjZW5kaWYgLy8gSEFW
RShJT1NVUkZBQ0VfQUNDRUxFUkFUT1IpCiAKLSNpZiBIQVZFKElPU1VSRkFDRV9TRVRfT1dORVJT
SElQX0lERU5USVRZKQotICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0T3duZXJzaGlwSWRlbnRp
dHkodGFza19pZF90b2tlbl90IG5ld093bmVyKTsKLSNlbmRpZgorICAgIFdFQkNPUkVfRVhQT1JU
IHZvaWQgc2V0T3duZXJzaGlwSWRlbnRpdHkoUHJvY2Vzc0lkZW50aXR5KiByZXNvdXJjZU93bmVy
KTsKIAogICAgIHZvaWQgbWlncmF0ZUNvbG9yU3BhY2VUb1Byb3BlcnRpZXMoKTsKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvSU9TdXJmYWNlLm1t
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvSU9TdXJmYWNlLm1tCmlu
ZGV4IDAxMTE2NWNlMTFhYmNlNjc1YzRiNDdiZjkxNWQ0YzgxZTZjZWU5OTUuLjE1YmY2OGY3ZmU1
YTY5ODY3ZmNjOWQ1NmE2ZTViZDRmNmJjM2QzMDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0lPU3VyZmFjZS5tbQorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9JT1N1cmZhY2UubW0KQEAgLTM0LDYgKzM0LDcgQEAK
ICNpbXBvcnQgIkltYWdlQnVmZmVyLmgiCiAjaW1wb3J0ICJMb2dnaW5nLmgiCiAjaW1wb3J0ICJQ
bGF0Zm9ybVNjcmVlbi5oIgorI2ltcG9ydCAiUHJvY2Vzc0lkZW50aXR5LmgiCiAjaW1wb3J0IDxw
YWwvc3BpL2NnL0NvcmVHcmFwaGljc1NQSS5oPgogI2ltcG9ydCA8d3RmL0Fzc2VydGlvbnMuaD4K
ICNpbXBvcnQgPHd0Zi9NYWNoU2VuZFJpZ2h0Lmg+CkBAIC00ODQsMTQgKzQ4NSwxNyBAQCB2b2lk
IElPU3VyZmFjZTo6Y29udmVydFRvRm9ybWF0KHN0ZDo6dW5pcXVlX3B0cjxJT1N1cmZhY2U+JiYg
aW5TdXJmYWNlLCBGb3JtYXQgZgogCiAjZW5kaWYgLy8gSEFWRShJT1NVUkZBQ0VfQUNDRUxFUkFU
T1IpCiAKLSNpZiBIQVZFKElPU1VSRkFDRV9TRVRfT1dORVJTSElQX0lERU5USVRZKQotdm9pZCBJ
T1N1cmZhY2U6OnNldE93bmVyc2hpcElkZW50aXR5KHRhc2tfaWRfdG9rZW5fdCBuZXdPd25lcikK
K3ZvaWQgSU9TdXJmYWNlOjpzZXRPd25lcnNoaXBJZGVudGl0eShQcm9jZXNzSWRlbnRpdHkqIHJl
c291cmNlT3duZXIpCiB7Ci0gICAgYXV0byByZXN1bHQgPSBJT1N1cmZhY2VTZXRPd25lcnNoaXBJ
ZGVudGl0eShtX3N1cmZhY2UuZ2V0KCksIG5ld093bmVyLCBrSU9TdXJmYWNlTWVtb3J5TGVkZ2Vy
VGFnR3JhcGhpY3MsIDApOworI2lmIEhBVkUoSU9TVVJGQUNFX1NFVF9PV05FUlNISVBfSURFTlRJ
VFkpICYmIEhBVkUoVEFTS19JREVOVElUWV9UT0tFTikKKyAgICB0YXNrX2lkX3Rva2VuX3Qgb3du
ZXJUYXNrSWRUb2tlbiA9IHJlc291cmNlT3duZXIgPyByZXNvdXJjZU93bmVyLT50YXNrSWRUb2tl
bigpIDogMDsKKyAgICBhdXRvIHJlc3VsdCA9IElPU3VyZmFjZVNldE93bmVyc2hpcElkZW50aXR5
KG1fc3VyZmFjZS5nZXQoKSwgb3duZXJUYXNrSWRUb2tlbiwga0lPU3VyZmFjZU1lbW9yeUxlZGdl
clRhZ0dyYXBoaWNzLCAwKTsKICAgICBpZiAocmVzdWx0ICE9IGtJT1JldHVyblN1Y2Nlc3MpCi0g
ICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKElPU3VyZmFjZSwgIklPU3VyZmFjZTo6c2V0T3duZXJz
aGlwSWRlbnRpdHk6IEZhaWxlZCB0byBjbGFpbSBvd25lcnNoaXAgb2YgSU9TdXJmYWNlICVwLCBu
ZXdPd25lcjogJWQsIGVycm9yOiAlZCIsIG1fc3VyZmFjZS5nZXQoKSwgKGludCluZXdPd25lciwg
cmVzdWx0KTsKLX0KKyAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoSU9TdXJmYWNlLCAiSU9TdXJm
YWNlOjpzZXRPd25lcnNoaXBJZGVudGl0eTogRmFpbGVkIHRvIGNsYWltIG93bmVyc2hpcCBvZiBJ
T1N1cmZhY2UgJXAsIHRhc2sgaWQgdG9rZW46ICVkLCBlcnJvcjogJWQiLCBtX3N1cmZhY2UuZ2V0
KCksIChpbnQpb3duZXJUYXNrSWRUb2tlbiwgcmVzdWx0KTsKKyNlbHNlCisgICAgVU5VU0VEX1BB
UkFNKHJlc291cmNlT3duZXIpOwogI2VuZGlmCit9CiAKIHZvaWQgSU9TdXJmYWNlOjptaWdyYXRl
Q29sb3JTcGFjZVRvUHJvcGVydGllcygpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9XZWJQcm9jZXNzR3JhcGhpY3NDb250ZXh0R0xPcGVuR0xD
b2NvYS5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1dlYlByb2Nl
c3NHcmFwaGljc0NvbnRleHRHTE9wZW5HTENvY29hLm1tCmluZGV4IDI1NjI1ZWRiZmUyNTRlMzc1
ZmVmMTY5ODE2OWY1MmVmZDRhYTc3MjIuLmNhYzQ0YTFkYjRkZmMwZjcxNzA0Yzc0MTg0ZGE0NjM3
MmIzMTIzYWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nv
Y29hL1dlYlByb2Nlc3NHcmFwaGljc0NvbnRleHRHTE9wZW5HTENvY29hLm1tCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1dlYlByb2Nlc3NHcmFwaGljc0NvbnRl
eHRHTE9wZW5HTENvY29hLm1tCkBAIC01Nyw3ICs1Nyw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHBy
ZXBhcmVGb3JEaXNwbGF5KCkgZmluYWw7CiBwcml2YXRlOgogICAgIFdlYlByb2Nlc3NHcmFwaGlj
c0NvbnRleHRHTE9wZW5HTChHcmFwaGljc0NvbnRleHRHTEF0dHJpYnV0ZXMgYXR0cmlidXRlcykK
LSAgICAgICAgOiBHcmFwaGljc0NvbnRleHRHTE9wZW5HTChhdHRyaWJ1dGVzKQorICAgICAgICA6
IEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMKFdURk1vdmUoYXR0cmlidXRlcyksIHsgfSkKICAgICAg
ICAgLCBtX3dlYkdMTGF5ZXIoY3JlYXRlV2ViR0xMYXllcihhdHRyaWJ1dGVzKSkKICAgICB7CiAg
ICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3Blbmds
L0dyYXBoaWNzQ29udGV4dEdMT3BlbkdMLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9vcGVuZ2wvR3JhcGhpY3NDb250ZXh0R0xPcGVuR0wuaAppbmRleCAzODI3M2IwNzJiNTZk
M2ZkYTJiY2RlMzQ4YjNlMGY3NDJjMjAwNWU1Li5mZTEzZWFmZjRkNzNmYTY3MDE2MzYwZThkMmI4
Y2Y4ZDMzYWM4ZTUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9vcGVuZ2wvR3JhcGhpY3NDb250ZXh0R0xPcGVuR0wuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR3JhcGhpY3NDb250ZXh0R0xPcGVuR0wuaApAQCAtMjgs
NiArMjgsNyBAQAogI2lmIEVOQUJMRShXRUJHTCkKIAogI2luY2x1ZGUgIkdyYXBoaWNzQ29udGV4
dEdMLmgiCisjaW5jbHVkZSAiUHJvY2Vzc0lkZW50aXR5LmgiCiAjaW5jbHVkZSA8bWVtb3J5Pgog
I2luY2x1ZGUgPHd0Zi9IYXNoQ291bnRlZFNldC5oPgogI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+
CkBAIC01NDMsOCArNTQ0LDkgQEAgcHVibGljOgogI2VuZGlmCiAKIHByb3RlY3RlZDoKLSAgICBH
cmFwaGljc0NvbnRleHRHTE9wZW5HTChHcmFwaGljc0NvbnRleHRHTEF0dHJpYnV0ZXMpOworICAg
IEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMKEdyYXBoaWNzQ29udGV4dEdMQXR0cmlidXRlcyYmLCBS
ZWZQdHI8UHJvY2Vzc0lkZW50aXR5PiYmIHJlc291cmNlT3duZXIpOwogICAgIGJvb2wgaXNWYWxp
ZCgpIGNvbnN0OworICAgIFJlZlB0cjxQcm9jZXNzSWRlbnRpdHk+IG1fcmVzb3VyY2VPd25lcjsK
ICNpZiBQTEFURk9STShDT0NPQSkKICAgICBHcmFwaGljc0NvbnRleHRHTElPU3VyZmFjZVN3YXBD
aGFpbiBtX3N3YXBDaGFpbjsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvdGV4bWFwL0dyYXBoaWNzQ29udGV4dEdMVGV4dHVyZU1hcHBlci5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvR3JhcGhpY3NDb250ZXh0
R0xUZXh0dXJlTWFwcGVyLmNwcAppbmRleCBlMjg1MWMyZTNkMjIxNzcxNjk0YmRkNmYxMmYwZTVm
Nzg5OWM3NTViLi44MzA2MzdjMTJhN2RhY2I5MzIzNzRjZTQ5ZjEyNDg5NzU4YTExYWY1IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvR3JhcGhpY3ND
b250ZXh0R0xUZXh0dXJlTWFwcGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy90ZXhtYXAvR3JhcGhpY3NDb250ZXh0R0xUZXh0dXJlTWFwcGVyLmNwcApAQCAtODUs
NyArODUsNyBAQCBSZWZQdHI8R3JhcGhpY3NDb250ZXh0R0xPcGVuR0w+IEdyYXBoaWNzQ29udGV4
dEdMT3BlbkdMOjpjcmVhdGUoR3JhcGhpY3NDb250ZXh0RwogICAgICAgICByZXR1cm4gbnVsbHB0
cjsKIAogICAgIC8vIENyZWF0ZSB0aGUgR3JhcGhpY3NDb250ZXh0R0xPcGVuR0wgb2JqZWN0IGZp
cnN0IGluIG9yZGVyIHRvIGVzdGFibGlzdCBhIGN1cnJlbnQgY29udGV4dCBvbiB0aGlzIHRocmVh
ZC4KLSAgICBhdXRvIGNvbnRleHQgPSBhZG9wdFJlZihuZXcgR3JhcGhpY3NDb250ZXh0R0xPcGVu
R0woYXR0cmlidXRlcykpOworICAgIGF1dG8gY29udGV4dCA9IGFkb3B0UmVmKG5ldyBHcmFwaGlj
c0NvbnRleHRHTE9wZW5HTChXVEZNb3ZlKGF0dHJpYnV0ZXMpLCB7IH0pKTsKIAogI2lmIFVTRShM
SUJFUE9YWSkgJiYgVVNFKE9QRU5HTF9FUykgJiYgRU5BQkxFKFdFQkdMMikKICAgICAvLyBCYWls
IGlmIEdMRVMzIHdhcyByZXF1ZXN0ZWQgYnV0IGNhbm5vdCBiZSBwcm92aWRlZC4KQEAgLTk5LDgg
Kzk5LDkgQEAgUmVmUHRyPEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMPiBHcmFwaGljc0NvbnRleHRH
TE9wZW5HTDo6Y3JlYXRlKEdyYXBoaWNzQ29udGV4dEcKIH0KIAogI2lmIFVTRShBTkdMRSkKLUdy
YXBoaWNzQ29udGV4dEdMT3BlbkdMOjpHcmFwaGljc0NvbnRleHRHTE9wZW5HTChHcmFwaGljc0Nv
bnRleHRHTEF0dHJpYnV0ZXMgYXR0cmlidXRlcykKK0dyYXBoaWNzQ29udGV4dEdMT3BlbkdMOjpH
cmFwaGljc0NvbnRleHRHTE9wZW5HTChHcmFwaGljc0NvbnRleHRHTEF0dHJpYnV0ZXMmJiBhdHRy
aWJ1dGVzLCBSZWZQdHI8UHJvY2Vzc0lkZW50aXR5PiYmIHJlc291cmNlT3duZXIpCiAgICAgOiBH
cmFwaGljc0NvbnRleHRHTChhdHRyaWJ1dGVzKQorICAgICwgbV9yZXNvdXJjZU93bmVyKFdURk1v
dmUocmVzb3VyY2VPd25lcikpCiB7CiAjaWYgRU5BQkxFKFdFQkdMMikKICAgICBtX2lzRm9yV2Vi
R0wyID0gYXR0cmlidXRlcy53ZWJHTFZlcnNpb24gPT0gR3JhcGhpY3NDb250ZXh0R0xXZWJHTFZl
cnNpb246OldlYkdMMjsKQEAgLTE2OCw4ICsxNjksOSBAQCBHcmFwaGljc0NvbnRleHRHTE9wZW5H
TDo6R3JhcGhpY3NDb250ZXh0R0xPcGVuR0woR3JhcGhpY3NDb250ZXh0R0xBdHRyaWJ1dGVzIGF0
dAogICAgIGdsOjpDbGVhckNvbG9yKDAsIDAsIDAsIDApOwogfQogI2Vsc2UKLUdyYXBoaWNzQ29u
dGV4dEdMT3BlbkdMOjpHcmFwaGljc0NvbnRleHRHTE9wZW5HTChHcmFwaGljc0NvbnRleHRHTEF0
dHJpYnV0ZXMgYXR0cmlidXRlcykKK0dyYXBoaWNzQ29udGV4dEdMT3BlbkdMOjpHcmFwaGljc0Nv
bnRleHRHTE9wZW5HTChHcmFwaGljc0NvbnRleHRHTEF0dHJpYnV0ZXMmJiBhdHRyaWJ1dGVzLCBS
ZWZQdHI8UHJvY2Vzc0lkZW50aXR5PiYmIHJlc291cmNlT3duZXIpCiAgICAgOiBHcmFwaGljc0Nv
bnRleHRHTChhdHRyaWJ1dGVzKQorICAgICwgbV9yZXNvdXJjZU93bmVyKFdURk1vdmUocmVzb3Vy
Y2VPd25lcikpCiB7CiAjaWYgVVNFKE5JQ09TSUEpCiAgICAgbV9uaWNvc2lhTGF5ZXIgPSBtYWtl
VW5pcXVlPE5pY29zaWE6OkdDR0xMYXllcj4oKnRoaXMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9HUFVQcm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwIGIvU291cmNlL1dl
YktpdC9HUFVQcm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwCmluZGV4IDUyYWU4
ODE5MzcxYTNlZGQ2MGNkNzIwY2QwODRiYjNjODU3ZmE3Y2QuLjFlZjlhNmIyNTgxNjMzN2YzOGQ5
YmIwYjNjNzQ4OWZjZDFjOTQ4NWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vz
cy9HUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVBy
b2Nlc3MvR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAKQEAgLTE5OSwxMiArMTk5LDEwIEBA
IHByaXZhdGU6CiAgICAgfQogI2VuZGlmCiAKLSNpZiBIQVZFKElPU1VSRkFDRV9TRVRfT1dORVJT
SElQX0lERU5USVRZKQotICAgIHN0ZDo6b3B0aW9uYWw8dGFza19pZF90b2tlbl90PiB3ZWJQcm9j
ZXNzSWRlbnRpdHlUb2tlbigpIGNvbnN0IGZpbmFsCisgICAgUmVmUHRyPFByb2Nlc3NJZGVudGl0
eT4gcmVzb3VyY2VPd25lcigpIGNvbnN0IGZpbmFsCiAgICAgewotICAgICAgICByZXR1cm4gbV9w
cm9jZXNzLndlYlByb2Nlc3NJZGVudGl0eVRva2VuKCk7CisgICAgICAgIHJldHVybiBtX3Byb2Nl
c3Mud2ViUHJvY2Vzc0lkZW50aXR5KCk7CiAgICAgfQotI2VuZGlmCiAKICAgICBHUFVDb25uZWN0
aW9uVG9XZWJQcm9jZXNzJiBtX3Byb2Nlc3M7CiB9OwpAQCAtMjIwLDkgKzIxOCw3IEBAIEdQVUNv
bm5lY3Rpb25Ub1dlYlByb2Nlc3M6OkdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MoR1BVUHJvY2Vz
cyYgZ3B1UHJvY2VzcywgV2ViCiAgICAgOiBtX2Nvbm5lY3Rpb24oSVBDOjpDb25uZWN0aW9uOjpj
cmVhdGVTZXJ2ZXJDb25uZWN0aW9uKGNvbm5lY3Rpb25JZGVudGlmaWVyLCAqdGhpcykpCiAgICAg
LCBtX2dwdVByb2Nlc3MoZ3B1UHJvY2VzcykKICAgICAsIG1fd2ViUHJvY2Vzc0lkZW50aWZpZXIo
d2ViUHJvY2Vzc0lkZW50aWZpZXIpCi0jaWYgSEFWRShUQVNLX0lERU5USVRZX1RPS0VOKQotICAg
ICwgbV93ZWJQcm9jZXNzSWRlbnRpdHlUb2tlbihXVEZNb3ZlKHBhcmFtZXRlcnMud2ViUHJvY2Vz
c0lkZW50aXR5VG9rZW4pKQotI2VuZGlmCisgICAgLCBtX3dlYlByb2Nlc3NJZGVudGl0eShQcm9j
ZXNzSWRlbnRpdHk6OmNyZWF0ZShXVEZNb3ZlKHBhcmFtZXRlcnMud2ViUHJvY2Vzc0lkZW50aXR5
SGFuZGxlKSkpCiAgICAgLCBtX3JlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5KG1ha2VVbmlx
dWVSZWY8UmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHk+KCp0aGlzKSkKICAgICAsIG1fc2Vz
c2lvbklEKHNlc3Npb25JRCkKICNpZiBQTEFURk9STShDT0NPQSkgJiYgVVNFKExJQldFQlJUQykK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9uVG9XZWJQ
cm9jZXNzLmggYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvR1BVQ29ubmVjdGlvblRvV2ViUHJv
Y2Vzcy5oCmluZGV4IGFlNzk1MDUyNTg2MGRlM2NmNmEyYjE3ODhmZTM1YTVlYWJkYTU2N2QuLmUw
NDI4Yjg1ZTVjZmRhYzJjNDA2NWE5MTAzYjljNTVlNmI2Y2I1YTggMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvR1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmgKKysrIGIvU291
cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaApAQCAtMzks
NiArMzksNyBAQAogI2luY2x1ZGUgPFdlYkNvcmUvTm93UGxheWluZ01hbmFnZXIuaD4KICNpbmNs
dWRlIDxXZWJDb3JlL1BhZ2VJZGVudGlmaWVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Qcm9jZXNz
SWRlbnRpZmllci5oPgorI2luY2x1ZGUgPFdlYkNvcmUvUHJvY2Vzc0lkZW50aXR5Lmg+CiAjaW5j
bHVkZSA8cGFsL1Nlc3Npb25JRC5oPgogI2luY2x1ZGUgPHd0Zi9Mb2dnZXIuaD4KICNpbmNsdWRl
IDx3dGYvTWFjaFNlbmRSaWdodC5oPgpAQCAtMTQ3LDEwICsxNDgsNyBAQCBwdWJsaWM6CiAgICAg
dm9pZCBkaXNwYXRjaERpc3BsYXlXYXNSZWNvbmZpZ3VyZWRGb3JUZXN0aW5nKCkgeyBkaXNwYXRj
aERpc3BsYXlXYXNSZWNvbmZpZ3VyZWQoKTsgfTsKICNlbmRpZgogCi0jaWYgSEFWRShUQVNLX0lE
RU5USVRZX1RPS0VOKQotICAgIHRhc2tfaWRfdG9rZW5fdCB3ZWJQcm9jZXNzSWRlbnRpdHlUb2tl
bigpIGNvbnN0IHsgcmV0dXJuIHN0YXRpY19jYXN0PHRhc2tfaWRfdG9rZW5fdD4obV93ZWJQcm9j
ZXNzSWRlbnRpdHlUb2tlbi5zZW5kUmlnaHQoKSk7IH0KLSNlbmRpZgotCisgICAgUmVmUHRyPFdl
YkNvcmU6OlByb2Nlc3NJZGVudGl0eT4gd2ViUHJvY2Vzc0lkZW50aXR5KCkgY29uc3QgeyByZXR1
cm4gbV93ZWJQcm9jZXNzSWRlbnRpdHk7IH0KICNpZiBFTkFCTEUoRU5DUllQVEVEX01FRElBKQog
ICAgIFJlbW90ZUNETUZhY3RvcnlQcm94eSYgY2RtRmFjdG9yeVByb3h5KCk7CiAjZW5kaWYKQEAg
LTI3Myw5ICsyNzEsNyBAQCBwcml2YXRlOgogICAgIElQQzo6TWVzc2FnZVJlY2VpdmVyTWFwIG1f
bWVzc2FnZVJlY2VpdmVyTWFwOwogICAgIFJlZjxHUFVQcm9jZXNzPiBtX2dwdVByb2Nlc3M7CiAg
ICAgY29uc3QgV2ViQ29yZTo6UHJvY2Vzc0lkZW50aWZpZXIgbV93ZWJQcm9jZXNzSWRlbnRpZmll
cjsKLSNpZiBIQVZFKFRBU0tfSURFTlRJVFlfVE9LRU4pCi0gICAgTWFjaFNlbmRSaWdodCBtX3dl
YlByb2Nlc3NJZGVudGl0eVRva2VuOwotI2VuZGlmCisgICAgUmVmUHRyPFdlYkNvcmU6OlByb2Nl
c3NJZGVudGl0eT4gbV93ZWJQcm9jZXNzSWRlbnRpdHk7CiAjaWYgRU5BQkxFKFdFQl9BVURJTykK
ICAgICBzdGQ6OnVuaXF1ZV9wdHI8UmVtb3RlQXVkaW9EZXN0aW5hdGlvbk1hbmFnZXI+IG1fcmVt
b3RlQXVkaW9EZXN0aW5hdGlvbk1hbmFnZXI7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9HUFVQcm9jZXNzR3JhcGhpY3NDb250ZXh0R0wuaCBi
L1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9HUFVQcm9jZXNzR3JhcGhpY3NDb250
ZXh0R0wuaAppbmRleCAxZWVlMThkNjJmMDUwOWYwMDlmMzRjM2VkZTY4ZDM1ZTBkMDg5NjUzLi5l
NzI5YTNhNzE1NDUyYzNhZDQ2NGM3Y2M5ZWQ1YzBlY2IzYjExZTA4IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvR1BVUHJvY2Vzc0dyYXBoaWNzQ29udGV4dEdM
LmgKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL0dQVVByb2Nlc3NHcmFw
aGljc0NvbnRleHRHTC5oCkBAIC0yOSwxMSArMjksMTMgQEAKICNpbmNsdWRlIDxXZWJDb3JlL0V4
dGVuc2lvbnNHTC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvR3JhcGhpY3NDb250ZXh0R0xPcGVuR0wu
aD4KIAorbmFtZXNwYWNlIFdlYktpdCB7CisKIGNsYXNzIEdQVVByb2Nlc3NHcmFwaGljc0NvbnRl
eHRHTE9wZW5HTCBmaW5hbCA6IHB1YmxpYyBXZWJDb3JlOjpHcmFwaGljc0NvbnRleHRHTE9wZW5H
TCB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZlB0cjxHUFVQcm9jZXNzR3JhcGhpY3NDb250ZXh0
R0xPcGVuR0w+IGNyZWF0ZShXZWJDb3JlOjpHcmFwaGljc0NvbnRleHRHTEF0dHJpYnV0ZXMgYXR0
cmlidXRlcykKKyAgICBzdGF0aWMgUmVmUHRyPEdQVVByb2Nlc3NHcmFwaGljc0NvbnRleHRHTE9w
ZW5HTD4gY3JlYXRlKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dEdMQXR0cmlidXRlcyBhdHRyaWJ1
dGVzLCBSZWZQdHI8V2ViQ29yZTo6UHJvY2Vzc0lkZW50aXR5PiByZXNvdXJjZU93bmVyKQogICAg
IHsKLSAgICAgICAgYXV0byBjb250ZXh0ID0gYWRvcHRSZWYoKm5ldyBHUFVQcm9jZXNzR3JhcGhp
Y3NDb250ZXh0R0xPcGVuR0woV1RGTW92ZShhdHRyaWJ1dGVzKSkpOworICAgICAgICBhdXRvIGNv
bnRleHQgPSBhZG9wdFJlZigqbmV3IEdQVVByb2Nlc3NHcmFwaGljc0NvbnRleHRHTE9wZW5HTChX
VEZNb3ZlKGF0dHJpYnV0ZXMpLCBXVEZNb3ZlKHJlc291cmNlT3duZXIpKSk7CiAgICAgICAgIGlm
ICghY29udGV4dC0+aXNWYWxpZCgpKQogICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAg
ICAgIHJldHVybiBjb250ZXh0OwpAQCAtNDQsMTAgKzQ2LDEyIEBAIHB1YmxpYzoKICAgICB2b2lk
IG1hcmtEaXNwbGF5QnVmZmVySW5Vc2UoKSB7IHJldHVybiBtX3N3YXBDaGFpbi5tYXJrRGlzcGxh
eUJ1ZmZlckluVXNlKCk7IH0KICNlbmRpZgogcHJpdmF0ZToKLSAgICBHUFVQcm9jZXNzR3JhcGhp
Y3NDb250ZXh0R0xPcGVuR0woV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0R0xBdHRyaWJ1dGVzIGF0
dHJpYnV0ZXMpCi0gICAgICAgIDogR3JhcGhpY3NDb250ZXh0R0xPcGVuR0woYXR0cmlidXRlcykK
KyAgICBHUFVQcm9jZXNzR3JhcGhpY3NDb250ZXh0R0xPcGVuR0woV2ViQ29yZTo6R3JhcGhpY3ND
b250ZXh0R0xBdHRyaWJ1dGVzJiYgYXR0cmlidXRlcywgUmVmUHRyPFdlYkNvcmU6OlByb2Nlc3NJ
ZGVudGl0eT4mJiByZXNvdXJjZU93bmVyKQorICAgICAgICA6IEdyYXBoaWNzQ29udGV4dEdMT3Bl
bkdMKFdURk1vdmUoYXR0cmlidXRlcyksIFdURk1vdmUocmVzb3VyY2VPd25lcikpCiAgICAgewog
ICAgIH0KIH07CiAKK30KKwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVBy
b2Nlc3MvZ3JhcGhpY3MvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xDb2NvYS5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xDb2NvYS5j
cHAKaW5kZXggYjQzN2E1YmVlY2Q1ZDZhYzU4M2NhNTk3YTk1ZTI3NzEyZmFkZDYyMy4uMGNjMjJi
NDMzYTQ1ZTc0ZDU0MGU0ZDU0ZTljYTY3YmIxMDk1ZTFkMyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZUdyYXBoaWNzQ29udGV4dEdMQ29jb2EuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVHcmFwaGljc0Nv
bnRleHRHTENvY29hLmNwcApAQCAtNDcsOSArNDcsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBwcmVw
YXJlRm9yRGlzcGxheShDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdURjo6TWFjaFNlbmRSaWdodCYm
KT4mJikgZmluYWw7CiBwcml2YXRlOgogICAgIFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dEdMSU9T
dXJmYWNlU3dhcENoYWluIG1fc3dhcENoYWluIFdURl9HVUFSREVEX0JZX0xPQ0sobV9zdHJlYW1U
aHJlYWQpOwotI2lmIEhBVkUoSU9TVVJGQUNFX1NFVF9PV05FUlNISVBfSURFTlRJVFkpCi0gICAg
dGFza19pZF90b2tlbl90IG1fd2ViUHJvY2Vzc0lkZW50aXR5VG9rZW47Ci0jZW5kaWYKKyAgICBS
ZWZQdHI8UHJvY2Vzc0lkZW50aXR5PiBtX3Jlc291cmNlT3duZXI7CiB9OwogCiB9CkBAIC02Myw5
ICs2MSw3IEBAIFJlZjxSZW1vdGVHcmFwaGljc0NvbnRleHRHTD4gUmVtb3RlR3JhcGhpY3NDb250
ZXh0R0w6OmNyZWF0ZShHUFVDb25uZWN0aW9uVG9XZWJQCiAKIFJlbW90ZUdyYXBoaWNzQ29udGV4
dEdMQ29jb2E6OlJlbW90ZUdyYXBoaWNzQ29udGV4dEdMQ29jb2EoR1BVQ29ubmVjdGlvblRvV2Vi
UHJvY2VzcyYgZ3B1Q29ubmVjdGlvblRvV2ViUHJvY2VzcywgR3JhcGhpY3NDb250ZXh0R0xJZGVu
dGlmaWVyIGdyYXBoaWNzQ29udGV4dEdMSWRlbnRpZmllciwgUmVtb3RlUmVuZGVyaW5nQmFja2Vu
ZCYgcmVuZGVyaW5nQmFja2VuZCwgSVBDOjpTdHJlYW1Db25uZWN0aW9uQnVmZmVyJiYgc3RyZWFt
KQogICAgIDogUmVtb3RlR3JhcGhpY3NDb250ZXh0R0woZ3B1Q29ubmVjdGlvblRvV2ViUHJvY2Vz
cywgZ3JhcGhpY3NDb250ZXh0R0xJZGVudGlmaWVyLCByZW5kZXJpbmdCYWNrZW5kLCBXVEZNb3Zl
KHN0cmVhbSkpCi0jaWYgSEFWRShJT1NVUkZBQ0VfU0VUX09XTkVSU0hJUF9JREVOVElUWSkKLSAg
ICAsIG1fd2ViUHJvY2Vzc0lkZW50aXR5VG9rZW4oZ3B1Q29ubmVjdGlvblRvV2ViUHJvY2Vzcy53
ZWJQcm9jZXNzSWRlbnRpdHlUb2tlbigpKQotI2VuZGlmCisgICAgLCBtX3Jlc291cmNlT3duZXIo
Z3B1Q29ubmVjdGlvblRvV2ViUHJvY2Vzcy53ZWJQcm9jZXNzSWRlbnRpdHkoKSkKIHsKIAogfQpA
QCAtNzMsNyArNjksNyBAQCBSZW1vdGVHcmFwaGljc0NvbnRleHRHTENvY29hOjpSZW1vdGVHcmFw
aGljc0NvbnRleHRHTENvY29hKEdQVUNvbm5lY3Rpb25Ub1dlYlBybwogdm9pZCBSZW1vdGVHcmFw
aGljc0NvbnRleHRHTENvY29hOjpwbGF0Zm9ybVdvcmtRdWV1ZUluaXRpYWxpemUoV2ViQ29yZTo6
R3JhcGhpY3NDb250ZXh0R0xBdHRyaWJ1dGVzJiYgYXR0cmlidXRlcykKIHsKICAgICBhc3NlcnRJ
c0N1cnJlbnQobV9zdHJlYW1UaHJlYWQpOwotICAgIG1fY29udGV4dCA9IEdQVVByb2Nlc3NHcmFw
aGljc0NvbnRleHRHTE9wZW5HTDo6Y3JlYXRlKFdURk1vdmUoYXR0cmlidXRlcykpOworICAgIG1f
Y29udGV4dCA9IEdQVVByb2Nlc3NHcmFwaGljc0NvbnRleHRHTE9wZW5HTDo6Y3JlYXRlKFdURk1v
dmUoYXR0cmlidXRlcyksIG1fcmVzb3VyY2VPd25lcik7CiB9CiAKIHZvaWQgUmVtb3RlR3JhcGhp
Y3NDb250ZXh0R0xDb2NvYTo6cHJlcGFyZUZvckRpc3BsYXkoQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZChXVEY6Ok1hY2hTZW5kUmlnaHQmJik+JiYgY29tcGxldGlvbkhhbmRsZXIpCkBAIC04NCwxMCAr
ODAsNiBAQCB2b2lkIFJlbW90ZUdyYXBoaWNzQ29udGV4dEdMQ29jb2E6OnByZXBhcmVGb3JEaXNw
bGF5KENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV1RGOgogICAgIE1hY2hTZW5kUmlnaHQgc2VuZFJp
Z2h0OwogICAgIGlmIChkaXNwbGF5QnVmZmVyKSB7CiAgICAgICAgIG1fY29udGV4dC0+bWFya0Rp
c3BsYXlCdWZmZXJJblVzZSgpOwotI2lmIEhBVkUoSU9TVVJGQUNFX1NFVF9PV05FUlNISVBfSURF
TlRJVFkpCi0gICAgICAgIC8vIE1hcmsgdGhlIElPU3VyZmFjZSBhcyBiZWluZyBvd25lZCBieSB0
aGUgV2ViUHJvY2VzcyBldmVuIHRob3VnaCBpdCB3YXMgY29uc3RydWN0ZWQgYnkgdGhlIEdQVVBy
b2Nlc3Mgc28gdGhhdCBKZXRzYW0ga25vd3Mgd2hpY2ggcHJvY2VzcyB0byBraWxsLgotICAgICAg
ICBkaXNwbGF5QnVmZmVyLT5zZXRPd25lcnNoaXBJZGVudGl0eShtX3dlYlByb2Nlc3NJZGVudGl0
eVRva2VuKTsKLSNlbmRpZgogICAgICAgICBzZW5kUmlnaHQgPSBkaXNwbGF5QnVmZmVyLT5jcmVh
dGVTZW5kUmlnaHQoKTsKICAgICB9CiAgICAgY29tcGxldGlvbkhhbmRsZXIoV1RGTW92ZShzZW5k
UmlnaHQpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9S
ZW1vdGVJbWFnZUJ1ZmZlci5oIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1Jl
bW90ZUltYWdlQnVmZmVyLmgKaW5kZXggYTNkNDk0ZmU4YmY2YTE5NjQ3ZWYxOTBjOWRiNDA0MmFl
Y2U2NzIyMC4uMTk5MjU4YjYzZDY4ZTg4YmNhNGE5MDIzNmZlZDQwNDgwNDFiNjIwYyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZUltYWdlQnVmZmVy
LmgKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZUltYWdlQnVm
ZmVyLmgKQEAgLTY5LDEzICs2OSwxMSBAQCBwdWJsaWM6CiAgICAgICAgICAgICBjb250ZXh0KCku
cmVzdG9yZSgpOwogICAgIH0KIAotI2lmIEhBVkUoSU9TVVJGQUNFX1NFVF9PV05FUlNISVBfSURF
TlRJVFkpCi0gICAgdm9pZCBzZXRQcm9jZXNzT3duZXJzaGlwKHRhc2tfaWRfdG9rZW5fdCBuZXdP
d25lcikKKyAgICB2b2lkIHNldE93bmVyc2hpcElkZW50aXR5KFdlYkNvcmU6OlByb2Nlc3NJZGVu
dGl0eSogcmVzb3VyY2VPd25lcikKICAgICB7CiAgICAgICAgIGlmIChtX2JhY2tlbmQpCi0gICAg
ICAgICAgICBtX2JhY2tlbmQtPnNldFByb2Nlc3NPd25lcnNoaXAobmV3T3duZXIpOworICAgICAg
ICAgICAgbV9iYWNrZW5kLT5zZXRPd25lcnNoaXBJZGVudGl0eShyZXNvdXJjZU93bmVyKTsKICAg
ICB9Ci0jZW5kaWYKIAogcHJpdmF0ZToKICAgICBmcmllbmQgY2xhc3MgUmVtb3RlUmVuZGVyaW5n
QmFja2VuZDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9S
ZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmNwcCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFw
aGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmNwcAppbmRleCBkYjRlMTM3YjJmNmFkZmI5Y2Qx
NDc4YTFkODcyZTY2NGQxYTk2ZGViLi4yYzhmNGJlMmIwNzBkZTYxMzA0YTAyZmJhNjAyMDZjYzdh
ZGI3NjgzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVt
b3RlUmVuZGVyaW5nQmFja2VuZC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dy
YXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQuY3BwCkBAIC04NCw2ICs4NCw3IEBAIFJlbW90
ZVJlbmRlcmluZ0JhY2tlbmQ6OlJlbW90ZVJlbmRlcmluZ0JhY2tlbmQoR1BVQ29ubmVjdGlvblRv
V2ViUHJvY2VzcyYgZ3B1Q29uCiAgICAgLCBtX3N0cmVhbUNvbm5lY3Rpb24oSVBDOjpTdHJlYW1T
ZXJ2ZXJDb25uZWN0aW9uOjpjcmVhdGUoZ3B1Q29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jb25uZWN0
aW9uKCksIFdURk1vdmUoc3RyZWFtQnVmZmVyKSwgbV93b3JrUXVldWUuZ2V0KCkpKQogICAgICwg
bV9yZW1vdGVSZXNvdXJjZUNhY2hlKGdwdUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3Mud2ViUHJvY2Vz
c0lkZW50aWZpZXIoKSkKICAgICAsIG1fZ3B1Q29ubmVjdGlvblRvV2ViUHJvY2VzcyhncHVDb25u
ZWN0aW9uVG9XZWJQcm9jZXNzKQorICAgICwgbV9yZXNvdXJjZU93bmVyKGdwdUNvbm5lY3Rpb25U
b1dlYlByb2Nlc3Mud2ViUHJvY2Vzc0lkZW50aXR5KCkpCiAgICAgLCBtX3JlbmRlcmluZ0JhY2tl
bmRJZGVudGlmaWVyKGNyZWF0aW9uUGFyYW1ldGVycy5pZGVudGlmaWVyKQogewogICAgIEFTU0VS
VChSdW5Mb29wOjppc01haW4oKSk7CkBAIC0xNzMsMTAgKzE3NCw5IEBAIHZvaWQgUmVtb3RlUmVu
ZGVyaW5nQmFja2VuZDo6Y3JlYXRlSW1hZ2VCdWZmZXJXaXRoUXVhbGlmaWVkSWRlbnRpZmllcihj
b25zdCBGbG9hCiAKICAgICBpZiAocmVuZGVyaW5nTW9kZSA9PSBSZW5kZXJpbmdNb2RlOjpBY2Nl
bGVyYXRlZCkgewogICAgICAgICBpZiAoYXV0byBhY2NlbGVyYXRlZEltYWdlQnVmZmVyID0gQWNj
ZWxlcmF0ZWRSZW1vdGVJbWFnZUJ1ZmZlcjo6Y3JlYXRlKGxvZ2ljYWxTaXplLCByZXNvbHV0aW9u
U2NhbGUsIGNvbG9yU3BhY2UsIHBpeGVsRm9ybWF0LCAqdGhpcywgaW1hZ2VCdWZmZXJSZXNvdXJj
ZUlkZW50aWZpZXIpKSB7Ci0jaWYgSEFWRShJT1NVUkZBQ0VfU0VUX09XTkVSU0hJUF9JREVOVElU
WSkKICAgICAgICAgICAgIC8vIE1hcmsgdGhlIElPU3VyZmFjZSBhcyBiZWluZyBvd25lZCBieSB0
aGUgV2ViUHJvY2VzcyBldmVuIHRob3VnaCBpdCB3YXMgY29uc3RydWN0ZWQgYnkgdGhlIEdQVVBy
b2Nlc3Mgc28gdGhhdCBKZXRzYW0ga25vd3Mgd2hpY2ggcHJvY2VzcyB0byBraWxsLgotICAgICAg
ICAgICAgYWNjZWxlcmF0ZWRJbWFnZUJ1ZmZlci0+c2V0UHJvY2Vzc093bmVyc2hpcChtX2dwdUNv
bm5lY3Rpb25Ub1dlYlByb2Nlc3MtPndlYlByb2Nlc3NJZGVudGl0eVRva2VuKCkpOwotI2VuZGlm
CisgICAgICAgICAgICBpZiAobV9yZXNvdXJjZU93bmVyKQorICAgICAgICAgICAgICAgIGFjY2Vs
ZXJhdGVkSW1hZ2VCdWZmZXItPnNldE93bmVyc2hpcElkZW50aXR5KG1fcmVzb3VyY2VPd25lci5n
ZXQoKSk7CiAgICAgICAgICAgICBpbWFnZUJ1ZmZlciA9IFdURk1vdmUoYWNjZWxlcmF0ZWRJbWFn
ZUJ1ZmZlcik7CiAgICAgICAgIH0KICAgICB9CkBAIC0yNjgsNiArMjY4LDcgQEAgdm9pZCBSZW1v
dGVSZW5kZXJpbmdCYWNrZW5kOjpnZXREYXRhVVJMRm9ySW1hZ2VCdWZmZXJXaXRoUXVhbGlmaWVk
SWRlbnRpZmllcihjb24KICAgICBTdHJpbmcgdXJsU3RyaW5nOwogICAgIGlmIChhdXRvIGltYWdl
QnVmZmVyID0gbV9yZW1vdGVSZXNvdXJjZUNhY2hlLmNhY2hlZEltYWdlQnVmZmVyKHJlbmRlcmlu
Z1Jlc291cmNlSWRlbnRpZmllcikpCiAgICAgICAgIHVybFN0cmluZyA9IGltYWdlQnVmZmVyLT50
b0RhdGFVUkwobWltZVR5cGUsIHF1YWxpdHksIHByZXNlcnZlUmVzb2x1dGlvbik7CisgICAgV1RG
TG9nQWx3YXlzKCJEQVRBVVJMOiVzIiwgdXJsU3RyaW5nLnV0ZjgoKS5kYXRhKCkpOwogICAgIGNv
bXBsZXRpb25IYW5kbGVyKFdURk1vdmUodXJsU3RyaW5nKSk7CiB9CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmgg
Yi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2Vu
ZC5oCmluZGV4IDE5ZmIxN2YwMjVmYjJjNjVmMWRkZTI3MmMzMGJiMGRlOTQ1Y2FmOWYuLjllYzk2
MmIzMGZmNjY3YTkxN2ZmODZmZGIyZjUzZmEwODJhYjc2MzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmgKKysrIGIv
U291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQu
aApAQCAtNTQsNiArNTQsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBEZXN0aW5hdGlv
bkNvbG9yU3BhY2U7CiBjbGFzcyBGbG9hdFNpemU7CiBjbGFzcyBOYXRpdmVJbWFnZTsKK2NsYXNz
IFByb2Nlc3NJZGVudGl0eTsKIAogZW51bSBjbGFzcyBSZW5kZXJpbmdNb2RlIDogYm9vbDsKIApA
QCAtMTI5LDYgKzEzMCw3IEBAIHByaXZhdGU6CiAgICAgUmVmPElQQzo6U3RyZWFtU2VydmVyQ29u
bmVjdGlvbj4gbV9zdHJlYW1Db25uZWN0aW9uOwogICAgIFJlbW90ZVJlc291cmNlQ2FjaGUgbV9y
ZW1vdGVSZXNvdXJjZUNhY2hlOwogICAgIFJlZjxHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzPiBt
X2dwdUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M7CisgICAgUmVmUHRyPFdlYkNvcmU6OlByb2Nlc3NJ
ZGVudGl0eT4gbV9yZXNvdXJjZU93bmVyOwogICAgIFJlbmRlcmluZ0JhY2tlbmRJZGVudGlmaWVy
IG1fcmVuZGVyaW5nQmFja2VuZElkZW50aWZpZXI7CiAgICAgSVBDOjpTZW1hcGhvcmUgbV9nZXRQ
aXhlbEJ1ZmZlclNlbWFwaG9yZTsKICAgICBSZWZQdHI8U2hhcmVkTWVtb3J5PiBtX2dldFBpeGVs
QnVmZmVyU2hhcmVkTWVtb3J5OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNz
L3dlYnJ0Yy9MaWJXZWJSVENDb2RlY3NQcm94eS5tbSBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vz
cy93ZWJydGMvTGliV2ViUlRDQ29kZWNzUHJveHkubW0KaW5kZXggMTMzZTI2ZTQ3NGUxZDMxOTE2
M2U1NTcxOTkyZDBjMGM3MTlkZGUxNC4uNzA3YTY1ZTJlMjI0YzlhZDdjZjE3NDY1ZjRkYzBhNDIx
MzcwMmE1OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL3dlYnJ0Yy9MaWJX
ZWJSVENDb2RlY3NQcm94eS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mvd2VicnRj
L0xpYldlYlJUQ0NvZGVjc1Byb3h5Lm1tCkBAIC03NywxNCArNzcsMTEgQEAgdm9pZCBMaWJXZWJS
VENDb2RlY3NQcm94eTo6Y2xvc2UoKQogc3RhdGljIEZ1bmN0aW9uPHZvaWQoQ1ZQaXhlbEJ1ZmZl
clJlZiBwaXhlbEJ1ZmZlciwgdWludDMyX3QgdGltZVN0YW1wTnMsIHVpbnQzMl90IHRpbWVTdGFt
cCk+IGNyZWF0ZURlY29kZXJDYWxsYmFjayhSVENEZWNvZGVySWRlbnRpZmllciBpZGVudGlmaWVy
LCBHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzJiBncHVDb25uZWN0aW9uVG9XZWJQcm9jZXNzKQog
ewogICAgIHJldHVybiBbY29ubmVjdGlvbiA9IFJlZiB7IGdwdUNvbm5lY3Rpb25Ub1dlYlByb2Nl
c3MuY29ubmVjdGlvbigpIH0sCi0jaWYgSEFWRShJT1NVUkZBQ0VfU0VUX09XTkVSU0hJUF9JREVO
VElUWSkKLSAgICAgICAgdG9rZW4gPSBncHVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLndlYlByb2Nl
c3NJZGVudGl0eVRva2VuKCksCi0jZW5kaWYKKyAgICAgICAgcmVzb3VyY2VPd25lciA9IGdwdUNv
bm5lY3Rpb25Ub1dlYlByb2Nlc3Mud2ViUHJvY2Vzc0lkZW50aXR5KCksCiAgICAgICAgIGlkZW50
aWZpZXJdKENWUGl4ZWxCdWZmZXJSZWYgcGl4ZWxCdWZmZXIsIHVpbnQzMl90IHRpbWVTdGFtcE5z
LCB1aW50MzJfdCB0aW1lU3RhbXApIHsKICAgICAgICAgaWYgKGF1dG8gc2FtcGxlID0gV2ViQ29y
ZTo6UmVtb3RlVmlkZW9TYW1wbGU6OmNyZWF0ZShwaXhlbEJ1ZmZlciwgTWVkaWFUaW1lKHRpbWVT
dGFtcE5zLCAxKSkpIHsKLSNpZiBIQVZFKElPU1VSRkFDRV9TRVRfT1dORVJTSElQX0lERU5USVRZ
KQotICAgICAgICAgICAgc2FtcGxlLT5zZXRPd25lcnNoaXBJZGVudGl0eSh0b2tlbik7Ci0jZW5k
aWYKKyAgICAgICAgICAgIGlmIChyZXNvdXJjZU93bmVyKQorICAgICAgICAgICAgICAgIHNhbXBs
ZS0+c2V0T3duZXJzaGlwSWRlbnRpdHkocmVzb3VyY2VPd25lci5nZXQoKSk7CiAgICAgICAgICAg
ICBjb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpMaWJXZWJSVENDb2RlY3M6OkNvbXBsZXRlZERl
Y29kaW5nIHsgaWRlbnRpZmllciwgdGltZVN0YW1wLCAqc2FtcGxlIH0sIDApOwogICAgICAgICB9
CiAgICAgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0dQVVByb2Nlc3NDb25u
ZWN0aW9uUGFyYW1ldGVycy5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvR1BVUHJvY2Vzc0Nvbm5l
Y3Rpb25QYXJhbWV0ZXJzLmgKaW5kZXggNDE1OWRjNmVkNDdkNmRjMTczZTkxYjY4MzJhMWJiMWJh
NTVmNWUxNC4uZGRmYTI5ZjU2MWFhZGQ4MDg5YmRhNjUzYjQ4YWYyMDk3ODQzMDBkMiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvR1BVUHJvY2Vzc0Nvbm5lY3Rpb25QYXJhbWV0ZXJz
LmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvR1BVUHJvY2Vzc0Nvbm5lY3Rpb25QYXJhbWV0
ZXJzLmgKQEAgLTI3LDE0ICsyNywxMiBAQAogCiAjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQogCi0j
aW5jbHVkZSA8d3RmL01hY2hTZW5kUmlnaHQuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1Byb2Nlc3NJ
ZGVudGl0eS5oPgogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogc3RydWN0IEdQVVByb2Nlc3NDb25u
ZWN0aW9uUGFyYW1ldGVycyB7Ci0jaWYgSEFWRShUQVNLX0lERU5USVRZX1RPS0VOKQotICAgIE1h
Y2hTZW5kUmlnaHQgd2ViUHJvY2Vzc0lkZW50aXR5VG9rZW47Ci0jZW5kaWYKKyAgICBXZWJDb3Jl
OjpQcm9jZXNzSWRlbnRpdHk6OkhhbmRsZSB3ZWJQcm9jZXNzSWRlbnRpdHlIYW5kbGU7CiAgICAg
VmVjdG9yPFN0cmluZz4gb3ZlcnJpZGVMYW5ndWFnZXM7CiAjaWYgRU5BQkxFKElQQ19URVNUSU5H
X0FQSSkKICAgICBib29sIGlnbm9yZUludmFsaWRNZXNzYWdlRm9yVGVzdGluZyB7IGZhbHNlIH07
CkBAIC00NSw5ICs0Myw3IEBAIHN0cnVjdCBHUFVQcm9jZXNzQ29ubmVjdGlvblBhcmFtZXRlcnMg
ewogCiAgICAgdm9pZCBlbmNvZGUoSVBDOjpFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogICAgIHsK
LSNpZiBIQVZFKFRBU0tfSURFTlRJVFlfVE9LRU4pCi0gICAgICAgIGVuY29kZXIgPDwgd2ViUHJv
Y2Vzc0lkZW50aXR5VG9rZW47Ci0jZW5kaWYKKyAgICAgICAgZW5jb2RlciA8PCB3ZWJQcm9jZXNz
SWRlbnRpdHlIYW5kbGU7CiAgICAgICAgIGVuY29kZXIgPDwgb3ZlcnJpZGVMYW5ndWFnZXM7CiAj
aWYgRU5BQkxFKElQQ19URVNUSU5HX0FQSSkKICAgICAgICAgZW5jb2RlciA8PCBpZ25vcmVJbnZh
bGlkTWVzc2FnZUZvclRlc3Rpbmc7CkBAIC01OSwxMiArNTUsMTAgQEAgc3RydWN0IEdQVVByb2Nl
c3NDb25uZWN0aW9uUGFyYW1ldGVycyB7CiAKICAgICBzdGF0aWMgc3RkOjpvcHRpb25hbDxHUFVQ
cm9jZXNzQ29ubmVjdGlvblBhcmFtZXRlcnM+IGRlY29kZShJUEM6OkRlY29kZXImIGRlY29kZXIp
CiAgICAgewotI2lmIEhBVkUoVEFTS19JREVOVElUWV9UT0tFTikKLSAgICAgICAgc3RkOjpvcHRp
b25hbDxNYWNoU2VuZFJpZ2h0PiB3ZWJQcm9jZXNzSWRlbnRpdHlUb2tlbjsKLSAgICAgICAgZGVj
b2RlciA+PiB3ZWJQcm9jZXNzSWRlbnRpdHlUb2tlbjsKLSAgICAgICAgaWYgKCF3ZWJQcm9jZXNz
SWRlbnRpdHlUb2tlbikKKyAgICAgICAgc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpQcm9jZXNzSWRl
bnRpdHk6OkhhbmRsZT4gd2ViUHJvY2Vzc0lkZW50aXR5SGFuZGxlOworICAgICAgICBkZWNvZGVy
ID4+IHdlYlByb2Nlc3NJZGVudGl0eUhhbmRsZTsKKyAgICAgICAgaWYgKCF3ZWJQcm9jZXNzSWRl
bnRpdHlIYW5kbGUpCiAgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwotI2VuZGlmCiAK
ICAgICAgICAgc3RkOjpvcHRpb25hbDxWZWN0b3I8U3RyaW5nPj4gb3ZlcnJpZGVMYW5ndWFnZXM7
CiAgICAgICAgIGRlY29kZXIgPj4gb3ZlcnJpZGVMYW5ndWFnZXM7CkBAIC04NSw5ICs3OSw3IEBA
IHN0cnVjdCBHUFVQcm9jZXNzQ29ubmVjdGlvblBhcmFtZXRlcnMgewogI2VuZGlmCiAKICAgICAg
ICAgcmV0dXJuIEdQVVByb2Nlc3NDb25uZWN0aW9uUGFyYW1ldGVycyB7Ci0jaWYgSEFWRShUQVNL
X0lERU5USVRZX1RPS0VOKQotICAgICAgICAgICAgV1RGTW92ZSgqd2ViUHJvY2Vzc0lkZW50aXR5
VG9rZW4pLAotI2VuZGlmCisgICAgICAgICAgICBXVEZNb3ZlKCp3ZWJQcm9jZXNzSWRlbnRpdHlI
YW5kbGUpLAogICAgICAgICAgICAgV1RGTW92ZSgqb3ZlcnJpZGVMYW5ndWFnZXMpLAogI2lmIEVO
QUJMRShJUENfVEVTVElOR19BUEkpCiAgICAgICAgICAgICAqaWdub3JlSW52YWxpZE1lc3NhZ2VG
b3JUZXN0aW5nLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVXNl
ck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9D
b2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5LmNwcAppbmRleCA5OTYyNjg5OTA3YzY3
YjVjN2E1NjRkODE1MzI1MWNmNTUzNDdlNWJkLi44YjFmM2EyNjY1NmFiMDVmMDE3MGRjZTZiZTJj
MmUzZWZkZTUzOTU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9V
c2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5LmNwcApAQCAtNTcsOSArNTcs
MTAgQEAgY2xhc3MgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6U291cmNlUHJveHkKICAg
ICAsIHByaXZhdGUgUmVhbHRpbWVNZWRpYVNvdXJjZTo6VmlkZW9TYW1wbGVPYnNlcnZlciB7CiAg
ICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6Ci0gICAgU291cmNlUHJveHkoUmVh
bHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgaWQsIFJlZjxJUEM6OkNvbm5lY3Rpb24+JiYgY29u
bmVjdGlvbiwgUmVmPFJlYWx0aW1lTWVkaWFTb3VyY2U+JiYgc291cmNlKQorICAgIFNvdXJjZVBy
b3h5KFJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIGlkLCBSZWY8SVBDOjpDb25uZWN0aW9u
PiYmIGNvbm5lY3Rpb24sIFJlZlB0cjxQcm9jZXNzSWRlbnRpdHk+JiYgcmVzb3VyY2VPd25lciwg
UmVmPFJlYWx0aW1lTWVkaWFTb3VyY2U+JiYgc291cmNlKQogICAgICAgICA6IG1faWQoaWQpCiAg
ICAgICAgICwgbV9jb25uZWN0aW9uKFdURk1vdmUoY29ubmVjdGlvbikpCisgICAgICAgICwgbV9y
ZXNvdXJjZU93bmVyKFdURk1vdmUocmVzb3VyY2VPd25lcikpCiAgICAgICAgICwgbV9zb3VyY2Uo
V1RGTW92ZShzb3VyY2UpKQogICAgIHsKICAgICAgICAgbV9zb3VyY2UtPmFkZE9ic2VydmVyKCp0
aGlzKTsKQEAgLTEyNSw5ICsxMjYsNiBAQCBwdWJsaWM6CiAgICAgfQogCiAgICAgdm9pZCBzZXRT
aG91bGRBcHBseVJvdGF0aW9uKGJvb2wgc2hvdWxkQXBwbHlSb3RhdGlvbikgeyBtX3Nob3VsZEFw
cGx5Um90YXRpb24gPSB0cnVlOyB9Ci0jaWYgSEFWRShJT1NVUkZBQ0VfU0VUX09XTkVSU0hJUF9J
REVOVElUWSkKLSAgICB2b2lkIHNldFdlYlByb2Nlc3NJZGVudGl0eVRva2VuKHN0ZDo6b3B0aW9u
YWw8dGFza19pZF90b2tlbl90PiB0b2tlbikgeyBtX3dlYlByb2Nlc3NJZGVudGl0eVRva2VuID0g
dG9rZW47fQotI2VuZGlmCiAKIHByaXZhdGU6CiAgICAgdm9pZCBzb3VyY2VTdG9wcGVkKCkgZmlu
YWwgewpAQCAtMTg4LDEwICsxODYsOCBAQCBwcml2YXRlOgogICAgICAgICB9IGVsc2UKICAgICAg
ICAgICAgIHJlbW90ZVNhbXBsZSA9IFJlbW90ZVZpZGVvU2FtcGxlOjpjcmVhdGUoc2FtcGxlKTsK
ICAgICAgICAgaWYgKHJlbW90ZVNhbXBsZSkgewotI2lmIEhBVkUoSU9TVVJGQUNFX1NFVF9PV05F
UlNISVBfSURFTlRJVFkpCi0gICAgICAgICAgICBpZiAobV93ZWJQcm9jZXNzSWRlbnRpdHlUb2tl
bikKLSAgICAgICAgICAgICAgICByZW1vdGVTYW1wbGUtPnNldE93bmVyc2hpcElkZW50aXR5KCpt
X3dlYlByb2Nlc3NJZGVudGl0eVRva2VuKTsKLSNlbmRpZgorICAgICAgICAgICAgaWYgKG1fcmVz
b3VyY2VPd25lcikKKyAgICAgICAgICAgICAgICByZW1vdGVTYW1wbGUtPnNldE93bmVyc2hpcElk
ZW50aXR5KG1fcmVzb3VyY2VPd25lci5nZXQoKSk7CiAgICAgICAgICAgICBtX2Nvbm5lY3Rpb24t
PnNlbmQoTWVzc2FnZXM6OlJlbW90ZUNhcHR1cmVTYW1wbGVNYW5hZ2VyOjpWaWRlb1NhbXBsZUF2
YWlsYWJsZShtX2lkLCBXVEZNb3ZlKCpyZW1vdGVTYW1wbGUpKSwgMCk7CiAgICAgICAgIH0KICAg
ICB9CkBAIC0yNDQsNiArMjQwLDcgQEAgcHJpdmF0ZToKICAgICBSZWFsdGltZU1lZGlhU291cmNl
SWRlbnRpZmllciBtX2lkOwogICAgIFdlYWtQdHI8UGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2Vy
PiBtX3Nlc3Npb25NYW5hZ2VyOwogICAgIFJlZjxJUEM6OkNvbm5lY3Rpb24+IG1fY29ubmVjdGlv
bjsKKyAgICBSZWZQdHI8UHJvY2Vzc0lkZW50aXR5PiBtX3Jlc291cmNlT3duZXI7CiAgICAgUmVm
PFJlYWx0aW1lTWVkaWFTb3VyY2U+IG1fc291cmNlOwogICAgIHN0ZDo6dW5pcXVlX3B0cjxDQVJp
bmdCdWZmZXI+IG1fcmluZ0J1ZmZlcjsKICAgICBDQUF1ZGlvU3RyZWFtRGVzY3JpcHRpb24gbV9k
ZXNjcmlwdGlvbiB7IH07CkBAIC0yNTcsOSArMjU0LDYgQEAgcHJpdmF0ZToKICAgICBzaXplX3Qg
bV9mcmFtZUNodW5rU2l6ZSB7IDAgfTsKICAgICBNZWRpYVRpbWUgbV9zdGFydFRpbWU7CiAgICAg
Ym9vbCBtX3Nob3VsZFJlc2V0IHsgZmFsc2UgfTsKLSNpZiBIQVZFKFRBU0tfSURFTlRJVFlfVE9L
RU4pCi0gICAgc3RkOjpvcHRpb25hbDx0YXNrX2lkX3Rva2VuX3Q+IG1fd2ViUHJvY2Vzc0lkZW50
aXR5VG9rZW47Ci0jZW5kaWYKIH07CiAKIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6OlVz
ZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkoVW5pcXVlUmVmPENvbm5lY3Rpb25Qcm94eT4mJiBj
b25uZWN0aW9uUHJveHkpCkBAIC0zMjMsMTIgKzMxNyw3IEBAIHZvaWQgVXNlck1lZGlhQ2FwdHVy
ZU1hbmFnZXJQcm94eTo6Y3JlYXRlTWVkaWFTb3VyY2VGb3JDYXB0dXJlRGV2aWNlV2l0aENvbnN0
cmFpCiAgICAgICAgIH0KIAogICAgICAgICBBU1NFUlQoIW1fcHJveGllcy5jb250YWlucyhpZCkp
OwotICAgICAgICBhdXRvIHByb3h5ID0gbWFrZVVuaXF1ZTxTb3VyY2VQcm94eT4oaWQsIG1fY29u
bmVjdGlvblByb3h5LT5jb25uZWN0aW9uKCksIFdURk1vdmUoc291cmNlKSk7Ci0jaWYgSEFWRShJ
T1NVUkZBQ0VfU0VUX09XTkVSU0hJUF9JREVOVElUWSkKLSAgICAgICAgaWYgKGRldmljZS50eXBl
KCkgIT0gV2ViQ29yZTo6Q2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6TWljcm9waG9uZSkKLSAg
ICAgICAgICAgIHByb3h5LT5zZXRXZWJQcm9jZXNzSWRlbnRpdHlUb2tlbihtX2Nvbm5lY3Rpb25Q
cm94eS0+d2ViUHJvY2Vzc0lkZW50aXR5VG9rZW4oKSk7Ci0jZW5kaWYKLQorICAgICAgICBhdXRv
IHByb3h5ID0gbWFrZVVuaXF1ZTxTb3VyY2VQcm94eT4oaWQsIG1fY29ubmVjdGlvblByb3h5LT5j
b25uZWN0aW9uKCksIG1fY29ubmVjdGlvblByb3h5LT5yZXNvdXJjZU93bmVyKCksIFdURk1vdmUo
c291cmNlKSk7CiAgICAgICAgIG1fcHJveGllcy5hZGQoaWQsIFdURk1vdmUocHJveHkpKTsKICAg
ICB9IGVsc2UKICAgICAgICAgaW52YWxpZENvbnN0cmFpbnRzID0gV1RGTW92ZShzb3VyY2VPckVy
cm9yLmVycm9yTWVzc2FnZSk7CkBAIC0zOTMsNyArMzgyLDcgQEAgdm9pZCBVc2VyTWVkaWFDYXB0
dXJlTWFuYWdlclByb3h5OjpjbG9uZShSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciBjbG9u
ZWRJRCwKICAgICBNRVNTQUdFX0NIRUNLKG1fcHJveGllcy5jb250YWlucyhjbG9uZWRJRCkpOwog
ICAgIE1FU1NBR0VfQ0hFQ0soIW1fcHJveGllcy5jb250YWlucyhuZXdTb3VyY2VJRCkpOwogICAg
IGlmIChhdXRvKiBwcm94eSA9IG1fcHJveGllcy5nZXQoY2xvbmVkSUQpKQotICAgICAgICBtX3By
b3hpZXMuYWRkKG5ld1NvdXJjZUlELCBtYWtlVW5pcXVlPFNvdXJjZVByb3h5PihuZXdTb3VyY2VJ
RCwgbV9jb25uZWN0aW9uUHJveHktPmNvbm5lY3Rpb24oKSwgcHJveHktPnNvdXJjZSgpLmNsb25l
KCkpKTsKKyAgICAgICAgbV9wcm94aWVzLmFkZChuZXdTb3VyY2VJRCwgbWFrZVVuaXF1ZTxTb3Vy
Y2VQcm94eT4obmV3U291cmNlSUQsIG1fY29ubmVjdGlvblByb3h5LT5jb25uZWN0aW9uKCksIG1f
Y29ubmVjdGlvblByb3h5LT5yZXNvdXJjZU93bmVyKCksIHByb3h5LT5zb3VyY2UoKS5jbG9uZSgp
KSk7CiB9CiAKIHZvaWQgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6cmVxdWVzdFRvRW5k
KFJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIHNvdXJjZUlEKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5o
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQ
cm94eS5oCmluZGV4IDdhZmY0MjRkNTQwZDNiMWZkZWNkYWJjODY1NWMzYzU2YzUwYTEwZTUuLmM1
ODZjZTNmM2QxMmU3OGUyMzczMmFlMTBjYzg5YjIzODA0YjJiY2QgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkuaAor
KysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdl
clByb3h5LmgKQEAgLTMyLDYgKzMyLDcgQEAKICNpbmNsdWRlICJVc2VyTWVkaWFDYXB0dXJlTWFu
YWdlci5oIgogI2luY2x1ZGUgPFdlYkNvcmUvQ2FwdHVyZURldmljZS5oPgogI2luY2x1ZGUgPFdl
YkNvcmUvT3JpZW50YXRpb25Ob3RpZmllci5oPgorI2luY2x1ZGUgPFdlYkNvcmUvUHJvY2Vzc0lk
ZW50aXR5Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9SZWFsdGltZU1lZGlhU291cmNlLmg+CiAjaW5j
bHVkZSA8V2ViQ29yZS9SZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllci5oPgogI2luY2x1ZGUg
PHBhbC9zcGkvY29jb2EvVENDU1BJLmg+CkBAIC01OSw5ICs2MCw3IEBAIHB1YmxpYzoKICAgICAg
ICAgdmlydHVhbCBib29sIHdpbGxTdGFydENhcHR1cmUoV2ViQ29yZTo6Q2FwdHVyZURldmljZTo6
RGV2aWNlVHlwZSkgY29uc3QgPSAwOwogICAgICAgICB2aXJ0dWFsIExvZ2dlciYgbG9nZ2VyKCkg
PSAwOwogICAgICAgICB2aXJ0dWFsIGJvb2wgc2V0Q2FwdHVyZUF0dHJpYnV0aW9uU3RyaW5nKCkg
eyByZXR1cm4gdHJ1ZTsgfQotI2lmIEhBVkUoSU9TVVJGQUNFX1NFVF9PV05FUlNISVBfSURFTlRJ
VFkpCi0gICAgICAgIHZpcnR1YWwgc3RkOjpvcHRpb25hbDx0YXNrX2lkX3Rva2VuX3Q+IHdlYlBy
b2Nlc3NJZGVudGl0eVRva2VuKCkgY29uc3QgeyByZXR1cm4geyB9OyB9OwotI2VuZGlmCisgICAg
ICAgIHZpcnR1YWwgUmVmUHRyPFdlYkNvcmU6OlByb2Nlc3NJZGVudGl0eT4gcmVzb3VyY2VPd25l
cigpIGNvbnN0IHsgcmV0dXJuIG51bGxwdHI7IH07CiAjaWYgRU5BQkxFKEFQUF9QUklWQUNZX1JF
UE9SVCkKICAgICAgICAgdmlydHVhbCB2b2lkIHNldFRDQ0lkZW50aXR5KCkgeyB9CiAjZW5kaWYK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvY29jb2Ev
SW1hZ2VCdWZmZXJTaGFyZWFibGVNYXBwZWRJT1N1cmZhY2VCYWNrZW5kLmNwcCBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvY29jb2EvSW1hZ2VCdWZmZXJTaGFyZWFibGVN
YXBwZWRJT1N1cmZhY2VCYWNrZW5kLmNwcAppbmRleCBhZmQyYzdjMDVjZmFmZDEzOTkzNDRmNWM2
YTc2NGU0ODgwZDI4YmRhLi4xMTNlYWY5MmY4MGY1Mzg2NjBkZmJiNDA2MGMzYTdjODg4ZjY5MjVh
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL2NvY29h
L0ltYWdlQnVmZmVyU2hhcmVhYmxlTWFwcGVkSU9TdXJmYWNlQmFja2VuZC5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9jb2NvYS9JbWFnZUJ1ZmZlclNoYXJl
YWJsZU1hcHBlZElPU3VyZmFjZUJhY2tlbmQuY3BwCkBAIC03NywxMyArNzcsMTEgQEAgSW1hZ2VC
dWZmZXJCYWNrZW5kSGFuZGxlIEltYWdlQnVmZmVyU2hhcmVhYmxlTWFwcGVkSU9TdXJmYWNlQmFj
a2VuZDo6Y3JlYXRlSW1hZ2UKICAgICByZXR1cm4gSW1hZ2VCdWZmZXJCYWNrZW5kSGFuZGxlKG1f
c3VyZmFjZS0+Y3JlYXRlU2VuZFJpZ2h0KCkpOwogfQogCi0jaWYgSEFWRShJT1NVUkZBQ0VfU0VU
X09XTkVSU0hJUF9JREVOVElUWSkKLXZvaWQgSW1hZ2VCdWZmZXJTaGFyZWFibGVNYXBwZWRJT1N1
cmZhY2VCYWNrZW5kOjpzZXRQcm9jZXNzT3duZXJzaGlwKHRhc2tfaWRfdG9rZW5fdCBwcm9jZXNz
SWRlbnRpdHlUb2tlbikKK3ZvaWQgSW1hZ2VCdWZmZXJTaGFyZWFibGVNYXBwZWRJT1N1cmZhY2VC
YWNrZW5kOjpzZXRPd25lcnNoaXBJZGVudGl0eShXZWJDb3JlOjpQcm9jZXNzSWRlbnRpdHkqIHJl
c291cmNlT3duZXIpCiB7CiAgICAgQVNTRVJUKHN1cmZhY2UoKSk7Ci0gICAgc3VyZmFjZSgpLT5z
ZXRPd25lcnNoaXBJZGVudGl0eShwcm9jZXNzSWRlbnRpdHlUb2tlbik7CisgICAgc3VyZmFjZSgp
LT5zZXRPd25lcnNoaXBJZGVudGl0eShyZXNvdXJjZU93bmVyKTsKIH0KLSNlbmRpZgogCiB9IC8v
IG5hbWVzcGFjZSBXZWJLaXQKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L0dQVS9ncmFwaGljcy9jb2NvYS9JbWFnZUJ1ZmZlclNoYXJlYWJsZU1hcHBlZElPU3VyZmFjZUJh
Y2tlbmQuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvY29jb2EvSW1h
Z2VCdWZmZXJTaGFyZWFibGVNYXBwZWRJT1N1cmZhY2VCYWNrZW5kLmgKaW5kZXggZTE0YTU0MGVj
ZGRkNDcxMTkwOGE3YzE3MWMzYTI1ZWJmZDgwOGRiZS4uYjk3NjMyMjAzMmU2ZmQxYTMwYjlhMjQ0
ZmY4Mzg5NjYwOTU2NDdjMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQ
VS9ncmFwaGljcy9jb2NvYS9JbWFnZUJ1ZmZlclNoYXJlYWJsZU1hcHBlZElPU3VyZmFjZUJhY2tl
bmQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL2NvY29hL0lt
YWdlQnVmZmVyU2hhcmVhYmxlTWFwcGVkSU9TdXJmYWNlQmFja2VuZC5oCkBAIC0zMSw2ICszMSwx
MCBAQAogI2luY2x1ZGUgPFdlYkNvcmUvSW1hZ2VCdWZmZXJJT1N1cmZhY2VCYWNrZW5kLmg+CiAj
aW5jbHVkZSA8d3RmL0lzb01hbGxvYy5oPgogCituYW1lc3BhY2UgV2ViQ29yZSB7CitjbGFzcyBQ
cm9jZXNzSWRlbnRpdHk7Cit9CisKIG5hbWVzcGFjZSBXZWJLaXQgewogCiBjbGFzcyBTaGFyZWFi
bGVCaXRtYXA7CkBAIC00Niw5ICs1MCw3IEBAIHB1YmxpYzoKIAogICAgIEltYWdlQnVmZmVyQmFj
a2VuZEhhbmRsZSBjcmVhdGVJbWFnZUJ1ZmZlckJhY2tlbmRIYW5kbGUoKSBjb25zdDsKIAotI2lm
IEhBVkUoSU9TVVJGQUNFX1NFVF9PV05FUlNISVBfSURFTlRJVFkpCi0gICAgdm9pZCBzZXRQcm9j
ZXNzT3duZXJzaGlwKHRhc2tfaWRfdG9rZW5fdCk7Ci0jZW5kaWYKKyAgICB2b2lkIHNldE93bmVy
c2hpcElkZW50aXR5KFdlYkNvcmU6OlByb2Nlc3NJZGVudGl0eSogcmVzb3VyY2VPd25lcik7CiB9
OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9jb2NvYS9XZWJQcm9jZXNzQ29jb2EubW0gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvY29jb2EvV2ViUHJvY2Vzc0NvY29hLm1tCmluZGV4IDAzNGUyYjQ4YWEwMTVhZjdjZWQ3NjZk
ZTlhY2U4MjhkZWQxMjI2NDkuLjY0MjVmMzk5NjU3ZDAwM2IwZmFlMjdkNmE1YTMyNGQxZTRjYTFm
ZjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9XZWJQcm9jZXNz
Q29jb2EubW0KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1dlYlByb2Nlc3ND
b2NvYS5tbQpAQCAtMTI0MiwxNCArMTI0Miw3IEBAIHZvaWQgV2ViUHJvY2Vzczo6d2FpdEZvclBl
bmRpbmdQYXN0ZWJvYXJkV3JpdGVzVG9GaW5pc2goY29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJkCiAj
aWYgRU5BQkxFKEdQVV9QUk9DRVNTKQogdm9pZCBXZWJQcm9jZXNzOjpwbGF0Zm9ybUluaXRpYWxp
emVHUFVQcm9jZXNzQ29ubmVjdGlvblBhcmFtZXRlcnMoR1BVUHJvY2Vzc0Nvbm5lY3Rpb25QYXJh
bWV0ZXJzJiBwYXJhbWV0ZXJzKQogewotI2lmIEhBVkUoVEFTS19JREVOVElUWV9UT0tFTikKLSAg
ICB0YXNrX2lkX3Rva2VuX3QgaWRlbnRpdHlUb2tlbjsKLSAgICBrZXJuX3JldHVybl90IGtyID0g
dGFza19jcmVhdGVfaWRlbnRpdHlfdG9rZW4obWFjaF90YXNrX3NlbGYoKSwgJmlkZW50aXR5VG9r
ZW4pOwotICAgIGlmIChrciA9PSBLRVJOX1NVQ0NFU1MpCi0gICAgICAgIHBhcmFtZXRlcnMud2Vi
UHJvY2Vzc0lkZW50aXR5VG9rZW4gPSBNYWNoU2VuZFJpZ2h0OjphZG9wdChpZGVudGl0eVRva2Vu
KTsKLSAgICBlbHNlCi0gICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKFByb2Nlc3MsICJDYWxsIHRv
IHRhc2tfY3JlYXRlX2lkZW50aXR5X3Rva2VuKCkgZmFpbGVkOiAle3ByaXZhdGV9cyAoJXgpIiwg
bWFjaF9lcnJvcl9zdHJpbmcoa3IpLCBrcik7Ci0jZW5kaWYKKyAgICBwYXJhbWV0ZXJzLndlYlBy
b2Nlc3NJZGVudGl0eUhhbmRsZSA9IFByb2Nlc3NJZGVudGl0eTo6aGFuZGxlRm9yQ3VycmVudFBy
b2Nlc3MoKTsKIAogICAgIHBhcmFtZXRlcnMub3ZlcnJpZGVMYW5ndWFnZXMgPSB1c2VyUHJlZmVy
cmVkTGFuZ3VhZ2VzT3ZlcnJpZGUoKTsKIH0KZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBi
L1Rvb2xzL0NoYW5nZUxvZwppbmRleCBhMDQwOGUzMDFmMDA3ZjI2YTUwNmNiOTI0ZjQ1NjA4NThi
ZjgxOTkwLi5kNjcxNGQ4MDVkZTNlMWRiZjhlOTEwYWZiNzMxMWQ2MTg0OTJiYTNiIDEwMDY0NAot
LS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYg
QEAKKzIwMjEtMTEtMTEgIEtpbW1vIEtpbm51bmVuICA8a2tpbm51bmVuQGFwcGxlLmNvbT4KKwor
ICAgICAgICBJT1N1cmZhY2UgbWVtb3J5IGF0dHJpYnV0aW9uIGlzIGhhcmQgdG8gdXNlIGluIGNv
bnN0cnVjdG9ycworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MjMyOTg4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgVXBkYXRlIGNvbnN0cnVjdG9yIGNhbGxpbmcgYmFzZSBjbGFzcyBjb25zdHJ1Y3Rvci4KKwor
ICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9jb2NvYS9UZXN0R3JhcGhpY3ND
b250ZXh0R0xPcGVuR0xDb2NvYS5tbToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OldlYkNvcmU6
OlRlc3RlZEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMOjpjcmVhdGUpOgorICAgICAgICAoVGVzdFdl
YktpdEFQSTo6V2ViQ29yZTo6VGVzdGVkR3JhcGhpY3NDb250ZXh0R0xPcGVuR0w6OlRlc3RlZEdy
YXBoaWNzQ29udGV4dEdMT3BlbkdMKToKKwogMjAyMS0xMS0xMCAgQ2hyaXMgRHVtZXogIDxjZHVt
ZXpAYXBwbGUuY29tPgogCiAgICAgICAgIFdlIHNob3VsZCBub3Qga2lsbCBhbGwgV2ViQ29udGVu
dCBwcm9jZXNzZXMgd2hlbmV2ZXIgdGhlIFdlYkF1dGhuIHByb2Nlc3MgY3Jhc2hlcwpkaWZmIC0t
Z2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL2NvY29hL1Rlc3RHcmFwaGlj
c0NvbnRleHRHTE9wZW5HTENvY29hLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJD
b3JlL2NvY29hL1Rlc3RHcmFwaGljc0NvbnRleHRHTE9wZW5HTENvY29hLm1tCmluZGV4IDkxN2Qy
ZTgxNjBhNTMyYmY2Njc0YTQyMDU1N2UyNGQ1YWJhNzgzZjYuLjhjOGVhOGZkOGJlMzFiMGRmY2E4
MDdlYjY1ZDBlMjcxODFiOGRkOWMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViQ29yZS9jb2NvYS9UZXN0R3JhcGhpY3NDb250ZXh0R0xPcGVuR0xDb2NvYS5tbQorKysg
Yi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvY29jb2EvVGVzdEdyYXBoaWNzQ29u
dGV4dEdMT3BlbkdMQ29jb2EubW0KQEAgLTM5LDEyICszOSwxMiBAQCBjbGFzcyBUZXN0ZWRHcmFw
aGljc0NvbnRleHRHTE9wZW5HTCA6IHB1YmxpYyBHcmFwaGljc0NvbnRleHRHTE9wZW5HTCB7CiBw
dWJsaWM6CiAgICAgc3RhdGljIFJlZlB0cjxUZXN0ZWRHcmFwaGljc0NvbnRleHRHTE9wZW5HTD4g
Y3JlYXRlKEdyYXBoaWNzQ29udGV4dEdMQXR0cmlidXRlcyBhdHRyaWJ1dGVzKQogICAgIHsKLSAg
ICAgICAgYXV0byBjb250ZXh0ID0gYWRvcHRSZWYoKm5ldyBUZXN0ZWRHcmFwaGljc0NvbnRleHRH
TE9wZW5HTChXVEZNb3ZlKGF0dHJpYnV0ZXMpKSk7CisgICAgICAgIGF1dG8gY29udGV4dCA9IGFk
b3B0UmVmKCpuZXcgVGVzdGVkR3JhcGhpY3NDb250ZXh0R0xPcGVuR0woV1RGTW92ZShhdHRyaWJ1
dGVzKSwgeyB9KSk7CiAgICAgICAgIHJldHVybiBjb250ZXh0OwogICAgIH0KIHByaXZhdGU6Ci0g
ICAgVGVzdGVkR3JhcGhpY3NDb250ZXh0R0xPcGVuR0woR3JhcGhpY3NDb250ZXh0R0xBdHRyaWJ1
dGVzIGF0dHJpYnV0ZXMpCi0gICAgICAgIDogR3JhcGhpY3NDb250ZXh0R0xPcGVuR0woV1RGTW92
ZShhdHRyaWJ1dGVzKSkKKyAgICBUZXN0ZWRHcmFwaGljc0NvbnRleHRHTE9wZW5HTChHcmFwaGlj
c0NvbnRleHRHTEF0dHJpYnV0ZXMgYXR0cmlidXRlcywgUmVmUHRyPFByb2Nlc3NJZGVudGl0eT4g
cmVzb3VyY2VPd25lcikKKyAgICAgICAgOiBHcmFwaGljc0NvbnRleHRHTE9wZW5HTChXVEZNb3Zl
KGF0dHJpYnV0ZXMpLCBXVEZNb3ZlKHJlc291cmNlT3duZXIpKQogICAgIHsKICAgICB9CiB9Owo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>444050</attachid>
            <date>2021-11-11 22:51:24 -0800</date>
            <delta_ts>2021-11-11 23:08:17 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-232988-20211112085122.patch</filename>
            <type>text/plain</type>
            <size>52951</size>
            <attacher name="Kimmo Kinnunen">kkinnunen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg1NjIyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzEzMjQzOGVjMDliZTE4
MTE0NjI5NmIyYmYyMmViYWRlZWIxY2VkNi4uYmVlZmIyMDQ5MzlkYzI0ZGVhMzJjNzYyMmYyZDE2
NGNmYTUyYzRlZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU3IEBACisyMDIxLTExLTExICBLaW1t
byBLaW5udW5lbiAgPGtraW5udW5lbkBhcHBsZS5jb20+CisKKyAgICAgICAgSU9TdXJmYWNlIG1l
bW9yeSBhdHRyaWJ1dGlvbiBpcyBoYXJkIHRvIHVzZSBpbiBjb25zdHJ1Y3RvcnMKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMjk4OAorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBXZWJDb3JlOjpQcm9j
ZXNzSWRlbnRpdHkgdHlwZSB0aGF0IGNhbiBiZSB1c2VkIHRvIGNvbW11bmljYXRlIG1lbW9yeSBh
dHRyaWJ1dGlvbi4KKyAgICAgICAgRm9yIG5vbi1Db2NvYSBwb3J0cywgdGhpcyBpcyBudWxscHRy
LgorICAgICAgICBUaGlzIGlzIHVzZWQgaW4gV2ViQ29yZSB0byBzZXQgdGhlIG1lbW9yeSBhdHRy
aWJ1dGlvbiBvZiBJT1N1cmZhY2UgYW5kIG9iamVjdHMKKyAgICAgICAgdGhhdCBob2xkIElPU3Vy
ZmFjZXMuCisgICAgICAgIFRoaXMgaXMgaW5zdGFudGlhdGVkIGluIFdlYktpdC4KKyAgICAgICAg
Q3VycmVudGx5IHRoZSBvbmx5IHVzZWZ1bCB3YXkgdG8gaW5zdGFudGlhdGUgUHJvY2Vzc0lkZW50
aXR5IGlzIGJ5IHJlY2VpdmluZworICAgICAgICB0aGUgUHJvY2Vzc0lkZW50aXR5OjpIYW5kbGUg
YXMgYSBtZXNzYWdlIGFuZCBjcmVhdGUgaXQgdGhpcyB3YXkgZm9yIHRoZQorICAgICAgICBzZW5k
ZXIgcHJvY2Vzcy4KKworICAgICAgICBObyBuZXcgdGVzdHMsIHJlZmFjdG9yLgorCisgICAgICAg
ICogSGVhZGVycy5jbWFrZToKKyAgICAgICAgKiBTb3VyY2VzLnR4dDoKKyAgICAgICAgKiBXZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogcGxhdGZvcm0vTG9nZ2lu
Zy5oOgorICAgICAgICBBZGQgV2ViQ29yZSBQcm9jZXNzIGxvZyB0YWcgc2luY2UgdGhlIGNvZGUg
bW92ZWQgZnJvbSBXZWJLaXQgdG8gUHJvY2Vzc0lkZW50aXR5CisgICAgICAgIHVzZWQgdGhhdCB0
YWcgdG8gbG9nLgorICAgICAgICAqIHBsYXRmb3JtL1Byb2Nlc3NJZGVudGl0eS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpQcm9jZXNzSWRlbnRpdHk6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3Jl
OjpQcm9jZXNzSWRlbnRpdHk6OlByb2Nlc3NJZGVudGl0eSk6CisgICAgICAgIChXZWJDb3JlOjpQ
cm9jZXNzSWRlbnRpdHk6OmhhbmRsZUZvckN1cnJlbnRQcm9jZXNzKToKKyAgICAgICAgKFdlYkNv
cmU6OlByb2Nlc3NJZGVudGl0eTo6aGFuZGxlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlBy
b2Nlc3NJZGVudGl0eTo6dGFza0lkVG9rZW4gY29uc3QpOgorICAgICAgICAqIHBsYXRmb3JtL1By
b2Nlc3NJZGVudGl0eS5oOgorICAgICAgICBBZGQgdGhlIFByb2Nlc3NJZGVudGl0eSB0eXBlIHRo
YXQgY2FuIGJlIHVzZWQgdG8gY29tbXVuaWNhdGUgbWVtb3J5IGF0dHJpYnV0aW9uLgorCisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvUmVtb3RlVmlkZW9TYW1wbGUuaDoKKyAgICAgICAgKFdl
YkNvcmU6OlJlbW90ZVZpZGVvU2FtcGxlOjpzZXRPd25lcnNoaXBJZGVudGl0eSk6CisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvY2cvSW1hZ2VCdWZmZXJVdGlsaXRpZXNDRy5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjplbmNvZGUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NvY29h
L0dyYXBoaWNzQ29udGV4dEdMT3BlbkdMQ29jb2EubW06CisgICAgICAgIChXZWJDb3JlOjpHcmFw
aGljc0NvbnRleHRHTE9wZW5HTDo6R3JhcGhpY3NDb250ZXh0R0xPcGVuR0wpOgorICAgICAgICAo
V2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0R0xPcGVuR0w6OmFsbG9jYXRlQW5kQmluZERpc3BsYXlC
dWZmZXJCYWNraW5nKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9JT1N1cmZh
Y2UuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9JT1N1cmZhY2UubW06Cisg
ICAgICAgIChXZWJDb3JlOjpJT1N1cmZhY2U6OnNldE93bmVyc2hpcElkZW50aXR5KToKKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9XZWJQcm9jZXNzR3JhcGhpY3NDb250ZXh0R0xP
cGVuR0xDb2NvYS5tbToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR3JhcGhp
Y3NDb250ZXh0R0xPcGVuR0wuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAv
R3JhcGhpY3NDb250ZXh0R0xUZXh0dXJlTWFwcGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okdy
YXBoaWNzQ29udGV4dEdMT3BlbkdMOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhp
Y3NDb250ZXh0R0xPcGVuR0w6OkdyYXBoaWNzQ29udGV4dEdMT3BlbkdMKToKKyAgICAgICAgQWRk
IGFuIGV4YW1wbGUgdXNlIHdoZXJlIHRoZSBjb25zdHJ1Y3RvciB0YWtlcyB0aGUgbWVtb3J5IGF0
dHJpYnV0aW9uIHRva2VuLgorICAgICAgICBUaGlzIG1heSBiZSBuZWVkZWQgaW4gdGhlIGZ1dHVy
ZSB3aGVuIHRoZSB0b2tlbiBpcyB1c2VkIGFzIGEgcGFyYW1ldGVyIGluCisgICAgICAgIHRoZSBB
TkdMRSBjb250ZXh0IGNyZWF0aW9uLgorICAgICAgICBVc2UgdGhlIHRva2VuIGluIGNyZWF0aW5n
IHRoZSBJT1N1cmZhY2UuIFRoaXMgZml4ZXMgYSBidWcgd2hlcmUgV2ViR0wKKyAgICAgICAgYmFj
ayBidWZmZXJzIHdvdWxkIG5vdCBiZSBhdHRyaWJ1dGVkIHVudGlsIHRoZXkgd2VyZSBzZW50IHRv
IFdQLgorCiAyMDIxLTExLTExICBBbnR0aSBLb2l2aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KIAog
ICAgICAgICBVc2UgbmFycm93ZXIgdHlwZXMgZm9yIHN0eWxlIHNjb3BlIG9yZGluYWwgYW5kIGNh
c2NhZGUgbGF5ZXIgcHJpb3JpdHkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9n
IGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggNGUxNTE5NmQ4Y2ZkZDc0MDI0YmE3YWRm
NmNmZDU4N2VjZDVkZDQ4Mi4uNmEyODQwOWVkZjA2Zjk2ZDM0OTljMzA1NTNiZjViNmJlYjBlMGRj
MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktp
dC9DaGFuZ2VMb2cKQEAgLTEsMyArMSw1NCBAQAorMjAyMS0xMS0xMSAgS2ltbW8gS2lubnVuZW4g
IDxra2lubnVuZW5AYXBwbGUuY29tPgorCisgICAgICAgIElPU3VyZmFjZSBtZW1vcnkgYXR0cmli
dXRpb24gaXMgaGFyZCB0byB1c2UgaW4gY29uc3RydWN0b3JzCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzI5ODgKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZW1vdmUgaWZkZWZzIGFuZCBkaXJlY3QgdXNl
IG9mIHRhc2tfaWRfdG9rZW5fdC4KKyAgICAgICAgSW5zdGVhZCwgdXNlIFdlYkNvcmU6OlByb2Nl
c3NJZGVudGlmaWVyLiBUaGlzIHdheSB0aGUKKyAgICAgICAgY3Jvc3MtcGxhdGZvcm0gY29kZSBp
cyBlYXNpZXIgdG8gYXV0aG9yLgorCisgICAgICAgICogR1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9u
VG9XZWJQcm9jZXNzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6R1BVQ29ubmVjdGlvblRvV2ViUHJv
Y2Vzczo6R1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcyk6CisgICAgICAgICogR1BVUHJvY2Vzcy9H
UFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmg6CisgICAgICAgIChXZWJLaXQ6OkdQVUNvbm5lY3Rp
b25Ub1dlYlByb2Nlc3M6OndlYlByb2Nlc3NJZGVudGl0eSBjb25zdCk6CisgICAgICAgIChXZWJL
aXQ6OkdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OndlYlByb2Nlc3NJZGVudGl0eVRva2VuIGNv
bnN0KTogRGVsZXRlZC4KKyAgICAgICAgKiBHUFVQcm9jZXNzL2dyYXBoaWNzL0dQVVByb2Nlc3NH
cmFwaGljc0NvbnRleHRHTC5oOgorICAgICAgICAqIEdQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3Rl
R3JhcGhpY3NDb250ZXh0R0xDb2NvYS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUdyYXBo
aWNzQ29udGV4dEdMQ29jb2E6OlJlbW90ZUdyYXBoaWNzQ29udGV4dEdMQ29jb2EpOgorICAgICAg
ICAoV2ViS2l0OjpSZW1vdGVHcmFwaGljc0NvbnRleHRHTENvY29hOjpwbGF0Zm9ybVdvcmtRdWV1
ZUluaXRpYWxpemUpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVHcmFwaGljc0NvbnRleHRHTENv
Y29hOjpwcmVwYXJlRm9yRGlzcGxheSk6CisgICAgICAgICogR1BVUHJvY2Vzcy9ncmFwaGljcy9S
ZW1vdGVJbWFnZUJ1ZmZlci5oOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVJbWFnZUJ1ZmZlcjo6
c2V0T3duZXJzaGlwSWRlbnRpdHkpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVJbWFnZUJ1ZmZl
cjo6c2V0UHJvY2Vzc093bmVyc2hpcCk6IERlbGV0ZWQuCisgICAgICAgICogR1BVUHJvY2Vzcy9n
cmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmNwcDoKKyAgICAgICAgKFdlYktpdDo6UmVt
b3RlUmVuZGVyaW5nQmFja2VuZDo6UmVtb3RlUmVuZGVyaW5nQmFja2VuZCk6CisgICAgICAgIChX
ZWJLaXQ6OlJlbW90ZVJlbmRlcmluZ0JhY2tlbmQ6OmNyZWF0ZUltYWdlQnVmZmVyV2l0aFF1YWxp
ZmllZElkZW50aWZpZXIpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZW5kZXJpbmdCYWNrZW5k
OjpnZXREYXRhVVJMRm9ySW1hZ2VCdWZmZXJXaXRoUXVhbGlmaWVkSWRlbnRpZmllcik6CisgICAg
ICAgICogR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmg6CisgICAg
ICAgICogR1BVUHJvY2Vzcy93ZWJydGMvTGliV2ViUlRDQ29kZWNzUHJveHkubW06CisgICAgICAg
IChXZWJLaXQ6OkZ1bmN0aW9uPHZvaWQpOgorICAgICAgICAqIFNoYXJlZC9HUFVQcm9jZXNzQ29u
bmVjdGlvblBhcmFtZXRlcnMuaDoKKyAgICAgICAgKFdlYktpdDo6R1BVUHJvY2Vzc0Nvbm5lY3Rp
b25QYXJhbWV0ZXJzOjplbmNvZGUgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpHUFVQcm9jZXNz
Q29ubmVjdGlvblBhcmFtZXRlcnM6OmRlY29kZSk6CisgICAgICAgICogU2hhcmVkL1dlYkNvcmVB
cmd1bWVudENvZGVycy5jcHA6CisgICAgICAgICogU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVy
cy5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclBy
b3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6
U291cmNlUHJveHk6OlNvdXJjZVByb3h5KToKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhQ2Fw
dHVyZU1hbmFnZXJQcm94eTo6U291cmNlUHJveHk6OnNldFNob3VsZEFwcGx5Um90YXRpb24pOgor
ICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OjpjcmVhdGVNZWRp
YVNvdXJjZUZvckNhcHR1cmVEZXZpY2VXaXRoQ29uc3RyYWludHMpOgorICAgICAgICAoV2ViS2l0
OjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OjpjbG9uZSk6CisgICAgICAgIChXZWJLaXQ6
OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6OlNvdXJjZVByb3h5OjpzZXRXZWJQcm9jZXNz
SWRlbnRpdHlUb2tlbik6IERlbGV0ZWQuCisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL1VzZXJN
ZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkuaDoKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhQ2Fw
dHVyZU1hbmFnZXJQcm94eTo6Q29ubmVjdGlvblByb3h5OjpyZXNvdXJjZU93bmVyIGNvbnN0KToK
KyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6Q29ubmVjdGlv
blByb3h5Ojp3ZWJQcm9jZXNzSWRlbnRpdHlUb2tlbiBjb25zdCk6IERlbGV0ZWQuCisgICAgICAg
ICogV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvY29jb2EvSW1hZ2VCdWZmZXJTaGFyZWFibGVNYXBw
ZWRJT1N1cmZhY2VCYWNrZW5kLmNwcDoKKyAgICAgICAgKFdlYktpdDo6SW1hZ2VCdWZmZXJTaGFy
ZWFibGVNYXBwZWRJT1N1cmZhY2VCYWNrZW5kOjpzZXRPd25lcnNoaXBJZGVudGl0eSk6CisgICAg
ICAgIChXZWJLaXQ6OkltYWdlQnVmZmVyU2hhcmVhYmxlTWFwcGVkSU9TdXJmYWNlQmFja2VuZDo6
c2V0UHJvY2Vzc093bmVyc2hpcCk6IERlbGV0ZWQuCisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUv
Z3JhcGhpY3MvY29jb2EvSW1hZ2VCdWZmZXJTaGFyZWFibGVNYXBwZWRJT1N1cmZhY2VCYWNrZW5k
Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9jb2NvYS9XZWJQcm9jZXNzQ29jb2EubW06CisgICAg
ICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OnBsYXRmb3JtSW5pdGlhbGl6ZUdQVVByb2Nlc3NDb25u
ZWN0aW9uUGFyYW1ldGVycyk6CiAyMDIxLTExLTEwICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBs
ZS5jb20+CiAKICAgICAgICAgV2Ugc2hvdWxkIG5vdCBraWxsIGFsbCBXZWJDb250ZW50IHByb2Nl
c3NlcyB3aGVuZXZlciB0aGUgV2ViQXV0aG4gcHJvY2VzcyBjcmFzaGVzCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlIGIvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFr
ZQppbmRleCAzNjM1ZmM1YmNlOWVhZDQ5MGM4ZDk4NTRmZThlNWZkZTI5Njc0ZDIwLi44MWQ2ZjZh
YTMzMzk0NmIxN2M2YjJkYmQxZGZhMmQ1ZDgwMzYxMWJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9IZWFkZXJzLmNtYWtlCisrKyBiL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKQEAg
LTExNDAsNiArMTE0MCw3IEBAIHNldChXZWJDb3JlX1BSSVZBVEVfRlJBTUVXT1JLX0hFQURFUlMK
ICAgICBwbGF0Zm9ybS9Qb3B1cE1lbnVDbGllbnQuaAogICAgIHBsYXRmb3JtL1BvcHVwTWVudVN0
eWxlLmgKICAgICBwbGF0Zm9ybS9Qcm9jZXNzSWRlbnRpZmllci5oCisgICAgcGxhdGZvcm0vUHJv
Y2Vzc0lkZW50aXR5LmgKICAgICBwbGF0Zm9ybS9Qcm9jZXNzUXVhbGlmaWVkLmgKICAgICBwbGF0
Zm9ybS9Qcm9taXNlZEF0dGFjaG1lbnRJbmZvLmgKICAgICBwbGF0Zm9ybS9QdWJsaWNTdWZmaXgu
aApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQgYi9Tb3VyY2UvV2ViQ29y
ZS9Tb3VyY2VzLnR4dAppbmRleCA4YTExNGExMjM4ZDRmNjgxODg0NmYyMWMyZGIwYWMwMzAzYjFl
YjI5Li5hNWJiMjhjNmY3NTE2YWY2ZjhkM2VhYmRmZGEyYmVmZmE0ZTUyM2RlIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2Vz
LnR4dApAQCAtMTg3MCw2ICsxODcwLDcgQEAgcGxhdGZvcm0vUGxhdGZvcm1TdHJhdGVnaWVzLmNw
cAogcGxhdGZvcm0vUGxhdGZvcm1XaGVlbEV2ZW50LmNwcAogcGxhdGZvcm0vUHJldmlld0NvbnZl
cnRlci5jcHAKIHBsYXRmb3JtL1Byb2Nlc3NJZGVudGlmaWVyLmNwcAorcGxhdGZvcm0vUHJvY2Vz
c0lkZW50aXR5LmNwcAogcGxhdGZvcm0vUmVmZXJyZXJQb2xpY3kuY3BwCiBwbGF0Zm9ybS9SZW1v
dGVDb21tYW5kTGlzdGVuZXIuY3BwCiBwbGF0Zm9ybS9SdW50aW1lQXBwbGljYXRpb25DaGVja3Mu
Y3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2oKaW5kZXggMjk5YTg4NjYwZjFlYjAyMmNiZDhiNGVkYzIzMWIyMjkwOWJkYTE0NC4uYmNiYTNm
ZWM5OWVhYTFjYTg3ZTg3Y2M4YWNkMzljMWJmNWEyODE5YSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMjM2Myw2ICsyMzYzLDcg
QEAKIAkJN0I3MzExRkIyNUMwOTJCNzAwM0IyNzk2IC8qIFNjb3BlZEhpZ2hQZXJmb3JtYW5jZUdQ
VVJlcXVlc3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDdCNzMxMUZBMjVDMDkyQjcwMDNCMjc5NiAvKiBTY29wZWRIaWdoUGVyZm9ybWFuY2VHUFVSZXF1
ZXN0LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJ
N0I4RUQ1RjAyNkYwQzEzRDAwOEFDMDIzIC8qIENWVXRpbGl0aWVzLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3QjhFRDVFRDI2RjBDMTIzMDA4QUMwMjMg
LyogQ1ZVdGlsaXRpZXMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OwogCQk3QjkwNDE3MDI1NTAxMTQyMDA2RUVCOEMgLyogUmVtb3RlR3JhcGhpY3NDb250
ZXh0R0xQcm94eUJhc2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDdCOTA0MTZFMjU1MDExMDkwMDZFRUI4QyAvKiBSZW1vdGVHcmFwaGljc0NvbnRleHRH
TFByb3h5QmFzZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CisJCTdCQTdDNkMzMjczQkY2MkMwMDI5REZCRSAvKiBQcm9jZXNzSWRlbnRpdHkuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdCQTdDNkMxMjczQkY2
MkIwMDI5REZCRSAvKiBQcm9jZXNzSWRlbnRpdHkuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRF
UyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk3QkIzNEE0ODI1Mzc3NkNBMDAwMjlEMDggLyogR3Jh
cGhpY3NDb250ZXh0R0xJbWFnZUV4dHJhY3Rvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gN0JCMzRBNDUyNTM3NzZDNjAwMDI5RDA4IC8qIEdyYXBoaWNz
Q29udGV4dEdMSW1hZ2VFeHRyYWN0b3IuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQ
cml2YXRlLCApOyB9OyB9OwogCQk3QkI2ODBCQTI1QkExQkU0MDAyQjg3MzggLyogR3JhcGhpY3ND
aGVja3NNYWMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDdCQjY4MEI4MjVCQTFCRTQwMDJCODczOCAvKiBHcmFwaGljc0NoZWNrc01hYy5oICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTdCRTc0MjczODFGQTkw
NkZCQjRGMEYyQyAvKiBKU1NWR0dyYXBoaWNzRWxlbWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTUwQzRDMDJCRUQ4OTM2RjgxOEUyRjk5IC8qIEpT
U1ZHR3JhcGhpY3NFbGVtZW50LmggKi87IH07CkBAIC0xMTAyMSw2ICsxMTAyMiw4IEBACiAJCTdC
OEVENUVEMjZGMEMxMjMwMDhBQzAyMyAvKiBDVlV0aWxpdGllcy5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBDVlV0aWxpdGllcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk3QjhFRDVFRjI2RjBDMTIzMDA4QUMwMjMgLyogQ1ZVdGlsaXRpZXMubW0gKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBDVlV0aWxpdGllcy5tbTsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0I5MDQxNkUyNTUwMTEwOTAwNkVFQjhDIC8qIFJlbW90ZUdy
YXBoaWNzQ29udGV4dEdMUHJveHlCYXNlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbW90ZUdyYXBoaWNz
Q29udGV4dEdMUHJveHlCYXNlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTdCQTdD
NkJGMjczQkY2MkIwMDI5REZCRSAvKiBQcm9jZXNzSWRlbnRpdHkuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUHJvY2Vzc0lkZW50aXR5LmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJN0JBN0M2QzEyNzNCRjYyQjAwMjlERkJFIC8qIFByb2Nlc3NJZGVu
dGl0eS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQcm9jZXNzSWRlbnRpdHku
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0JCMzRBMTYyNTM0NUNCMjAwMDI5RDA4
IC8qIEFOR0xFVXRpbGl0aWVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEFO
R0xFVXRpbGl0aWVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdCQjM0QTQ1MjUz
Nzc2QzYwMDAyOUQwOCAvKiBHcmFwaGljc0NvbnRleHRHTEltYWdlRXh0cmFjdG9yLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IEdyYXBoaWNzQ29udGV4dEdMSW1hZ2VFeHRyYWN0b3IuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJN0JCMzRBNDcyNTM3NzZDNzAwMDI5RDA4IC8qIEdyYXBoaWNzQ29u
dGV4dEdMSW1hZ2VFeHRyYWN0b3IuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gR3JhcGhpY3NDb250
ZXh0R0xJbWFnZUV4dHJhY3Rvci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0x
ODkyMCwxMSArMTg5MjMsMTEgQEAKIAkJMUE1NjlDQzQwRDdFMkI2MDAwN0MzOTgzIC8qIGJyaWRn
ZSAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCi0JCQkJNTlCNTk3
NzExMTA4NjU1NjAwNzE1OUU4IC8qIGpzYyAqLywKIAkJCQkxQTU2OUNFMjBEN0UyQjgyMDA3QzM5
ODMgLyogb2JqYyAqLywKIAkJCQk1OTlFNzU4RjExMDU1QTFGMDBEOTA0RkEgLyogQnJpZGdlLmgg
Ki8sCiAJCQkJMUE3MUQ1NzkwRjMzODE5MDAwRjlDRTRFIC8qIElkZW50aWZpZXJSZXAuY3BwICov
LAogCQkJCTFBNzFENTdBMEYzMzgxOTAwMEY5Q0U0RSAvKiBJZGVudGlmaWVyUmVwLmggKi8sCisJ
CQkJNTlCNTk3NzExMTA4NjU1NjAwNzE1OUU4IC8qIGpzYyAqLywKIAkJCQkxQTU2OUNFRjBEN0Uy
QjgyMDA3QzM5ODMgLyogcnVudGltZV9hcnJheS5jcHAgKi8sCiAJCQkJMUE1NjlDRjAwRDdFMkI4
MjAwN0MzOTgzIC8qIHJ1bnRpbWVfYXJyYXkuaCAqLywKIAkJCQkxQTU2OUNGMTBEN0UyQjgyMDA3
QzM5ODMgLyogcnVudGltZV9tZXRob2QuY3BwICovLApAQCAtMjg5OTAsNiArMjg5OTMsOCBAQAog
CQkJCUExQURBRjdDMjM2MEZEM0UwMDlDQjc3NiAvKiBQcmV2aWV3Q29udmVydGVyUHJvdmlkZXIu
aCAqLywKIAkJCQk1MUY2NDVEMjFGRUNEQkM4MDBCNTRERUQgLyogUHJvY2Vzc0lkZW50aWZpZXIu
Y3BwICovLAogCQkJCTUxRjY0NUQzMUZFQ0RCQzgwMEI1NERFRCAvKiBQcm9jZXNzSWRlbnRpZmll
ci5oICovLAorCQkJCTdCQTdDNkJGMjczQkY2MkIwMDI5REZCRSAvKiBQcm9jZXNzSWRlbnRpdHku
Y3BwICovLAorCQkJCTdCQTdDNkMxMjczQkY2MkIwMDI5REZCRSAvKiBQcm9jZXNzSWRlbnRpdHku
aCAqLywKIAkJCQkxQ0M1NEFGQjI3MEY5MkRBMDA1QkY4QkUgLyogUHJvY2Vzc1F1YWxpZmllZC5o
ICovLAogCQkJCUY0N0E2MzNDMUZGNkZENTAwMDgxQjNDQyAvKiBQcm9taXNlZEF0dGFjaG1lbnRJ
bmZvLmggKi8sCiAJCQkJMDA4MUZFRkQxNkIwQTI0NDAwOEFBQTdBIC8qIFB1YmxpY1N1ZmZpeC5o
ICovLApAQCAtMzU0NzIsNiArMzU0NzcsNyBAQAogCQkJCUI3MUZFNkRGMTEwOTFDQjMwMERBRUY3
NyAvKiBQcmludENvbnRleHQuaCBpbiBIZWFkZXJzICovLAogCQkJCTZCMEEwN0YyMjFGQTRCNUMw
MEQ1NzM5MSAvKiBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
NTFGNjQ1RDUxRkVDREJDRTAwQjU0REVEIC8qIFByb2Nlc3NJZGVudGlmaWVyLmggaW4gSGVhZGVy
cyAqLywKKwkJCQk3QkE3QzZDMzI3M0JGNjJDMDAyOURGQkUgLyogUHJvY2Vzc0lkZW50aXR5Lmgg
aW4gSGVhZGVycyAqLywKIAkJCQlBOEVBN0VCQzBBMTk0NUQwMDBBOEVGNUYgLyogUHJvY2Vzc2lu
Z0luc3RydWN0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQ0M1NEFGRTI3MEY5NkFFMDA1QkY4
QkUgLyogUHJvY2Vzc1F1YWxpZmllZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTQyMDUwMTcyMTQx
OTAxQjAwNjZFRjNCIC8qIFByb2Nlc3NXYXJtaW5nLmggaW4gSGVhZGVycyAqLywKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xvZ2dpbmcuaCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL0xvZ2dpbmcuaAppbmRleCAzZmJlNDE3YmU5ODFiNzVlNzc5ZGUyMzhmYzRiZTA1YTZk
NzMwZmFhLi5kYzBmNTA5OGI4N2YxODQ1NTI1YmUzYzBiYTQxZjc2NzViMTQwNDdmIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Mb2dnaW5nLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vTG9nZ2luZy5oCkBAIC05NCw2ICs5NCw3IEBAIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKICAgICBNKFBsdWdpbnMpIFwKICAgICBNKFBvcHVwQmxvY2tpbmcpIFwKICAgICBNKFByaXZh
dGVDbGlja01lYXN1cmVtZW50KSBcCisgICAgTShQcm9jZXNzKSBcCiAgICAgTShQcm9ncmVzcykg
XAogICAgIE0oUmVtb3RlSW5zcGVjdG9yKSBcCiAgICAgTShSZXF1ZXN0QW5pbWF0aW9uRnJhbWUp
IFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Byb2Nlc3NJZGVudGl0eS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Qcm9jZXNzSWRlbnRpdHkuY3BwCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjkzYWI4OTI4ZTI1MzFiN2IzMDdlYzg4YmE1NDcwMWQ1M2Q3MjlkZTYKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Qcm9jZXNzSWRlbnRpdHkuY3BwCkBAIC0w
LDAgKzEsNzggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0Yg
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLwor
CisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiUHJvY2Vzc0lkZW50aXR5LmgiCisKKyNp
bmNsdWRlICJMb2dnaW5nLmgiCisKKyNpZiBIQVZFKFRBU0tfSURFTlRJVFlfVE9LRU4pCisjaW5j
bHVkZSA8bWFjaC9tYWNoLmg+CisjZW5kaWYKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitSZWZQ
dHI8UHJvY2Vzc0lkZW50aXR5PiBQcm9jZXNzSWRlbnRpdHk6OmNyZWF0ZShIYW5kbGUmJiBoYW5k
bGUpCit7CisjaWYgSEFWRShUQVNLX0lERU5USVRZX1RPS0VOKQorICAgIHJldHVybiBhZG9wdFJl
ZihuZXcgUHJvY2Vzc0lkZW50aXR5KFdURk1vdmUoaGFuZGxlKSkpOworI2Vsc2UKKyAgICBVTlVT
RURfUEFSQU0oaGFuZGxlKTsKKyAgICByZXR1cm4gbnVsbHB0cjsKKyNlbmRpZgorfQorCitQcm9j
ZXNzSWRlbnRpdHk6OlByb2Nlc3NJZGVudGl0eShIYW5kbGUmJiBoYW5kbGUpCisgICAgOiBtX2hh
bmRsZShXVEZNb3ZlKGhhbmRsZSkpCit7Cit9CisKK1Byb2Nlc3NJZGVudGl0eTo6SGFuZGxlIFBy
b2Nlc3NJZGVudGl0eTo6aGFuZGxlRm9yQ3VycmVudFByb2Nlc3MoKQoreworICAgIFByb2Nlc3NJ
ZGVudGl0eTo6SGFuZGxlIHJlc3VsdDsKKyNpZiBIQVZFKFRBU0tfSURFTlRJVFlfVE9LRU4pCisg
ICAgdGFza19pZF90b2tlbl90IGlkZW50aXR5VG9rZW47CisgICAga2Vybl9yZXR1cm5fdCBrciA9
IHRhc2tfY3JlYXRlX2lkZW50aXR5X3Rva2VuKG1hY2hfdGFza19zZWxmKCksICZpZGVudGl0eVRv
a2VuKTsKKyAgICBpZiAoa3IgPT0gS0VSTl9TVUNDRVNTKQorICAgICAgICByZXN1bHQgPSBNYWNo
U2VuZFJpZ2h0OjphZG9wdChpZGVudGl0eVRva2VuKTsKKyAgICBlbHNlCisgICAgICAgIFJFTEVB
U0VfTE9HX0VSUk9SKFByb2Nlc3MsICJ0YXNrX2NyZWF0ZV9pZGVudGl0eV90b2tlbigpIGZhaWxl
ZDogJXtwcml2YXRlfXMgKCV4KSIsIG1hY2hfZXJyb3Jfc3RyaW5nKGtyKSwga3IpOworI2VuZGlm
CisgICAgcmV0dXJuIHJlc3VsdDsKK30KKworY29uc3QgUHJvY2Vzc0lkZW50aXR5OjpIYW5kbGUm
IFByb2Nlc3NJZGVudGl0eTo6aGFuZGxlKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9oYW5kbGU7
Cit9CisKKyNpZiBIQVZFKFRBU0tfSURFTlRJVFlfVE9LRU4pCit0YXNrX2lkX3Rva2VuX3QgUHJv
Y2Vzc0lkZW50aXR5Ojp0YXNrSWRUb2tlbigpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1faGFuZGxl
LnNlbmRSaWdodCgpOworfQorI2VuZGlmCisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL1Byb2Nlc3NJZGVudGl0eS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUHJv
Y2Vzc0lkZW50aXR5LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMGNhMDE5M2IxMmU1NDQzNmM2ZmViYmM2ZWJlMzRl
MDE2Mzc2MGZhMAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1By
b2Nlc3NJZGVudGl0eS5oCkBAIC0wLDAgKzEsNjEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICog
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZ
LCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQor
ICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgPHd0Zi9UaHJl
YWRTYWZlUmVmQ291bnRlZC5oPgorCisjaWYgSEFWRShUQVNLX0lERU5USVRZX1RPS0VOKQorI2lu
Y2x1ZGUgPHd0Zi9NYWNoU2VuZFJpZ2h0Lmg+CisjZWxzZQorI2luY2x1ZGUgPHZhcmlhbnQ+Cisj
ZW5kaWYKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCisvLyBPYmplY3QgdG8gYWNjZXNzIHByb29m
IG9mIHByb2Nlc3MgaWRlbnRpdHkuCisvLyBQcm9jZXNzSWRlbnRpZmllciBpZGVudGlmaWVzIGEg
cHJvY2Vzcy4KKy8vIFByb2Nlc3NJZGVudGl0eSBncmFudHMgYWNjZXNzIHRvIHRoZSBpZGVudGl0
eS4KK2NsYXNzIFdFQkNPUkVfRVhQT1JUIFByb2Nlc3NJZGVudGl0eSBmaW5hbCA6IHB1YmxpYyBU
aHJlYWRTYWZlUmVmQ291bnRlZDxQcm9jZXNzSWRlbnRpdHk+IHsKK3B1YmxpYzoKKyNpZiBIQVZF
KFRBU0tfSURFTlRJVFlfVE9LRU4pCisgICAgdXNpbmcgSGFuZGxlID0gTWFjaFNlbmRSaWdodDsK
KyNlbHNlCisgICAgdXNpbmcgSGFuZGxlID0gc3RkOjptb25vc3RhdGU7CisjZW5kaWYKKyAgICBz
dGF0aWMgUmVmUHRyPFByb2Nlc3NJZGVudGl0eT4gY3JlYXRlKEhhbmRsZSYmKTsKKyAgICBzdGF0
aWMgSGFuZGxlIGhhbmRsZUZvckN1cnJlbnRQcm9jZXNzKCk7CisgICAgY29uc3QgSGFuZGxlJiBo
YW5kbGUoKSBjb25zdDsKKworI2lmIEhBVkUoVEFTS19JREVOVElUWV9UT0tFTikKKyAgICB0YXNr
X2lkX3Rva2VuX3QgdGFza0lkVG9rZW4oKSBjb25zdDsKKyNlbmRpZgorcHJpdmF0ZToKKyAgICBQ
cm9jZXNzSWRlbnRpdHkoSGFuZGxlJiYpOworCisgICAgSGFuZGxlIG1faGFuZGxlOworfTsKKwor
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvUmVtb3RlVmlk
ZW9TYW1wbGUuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1JlbW90ZVZpZGVv
U2FtcGxlLmgKaW5kZXggYTYxNzBiMzI4ZmM0NGFjZTY5M2RjZGIzNWVlNGQzY2U2ODczMzhhMS4u
MGY1YmFlYTg1NmUzZjFhOGNlMTY1YjIwMzg2NWM5NjQ0MzU0MjU2MSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvUmVtb3RlVmlkZW9TYW1wbGUuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9SZW1vdGVWaWRlb1NhbXBsZS5oCkBAIC0z
Nyw2ICszNyw4IEBAIHR5cGVkZWYgc3RydWN0IF9fQ1ZCdWZmZXIqIENWUGl4ZWxCdWZmZXJSZWY7
CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAorY2xhc3MgUHJvY2Vzc0lkZW50aXR5OworCiBjbGFz
cyBSZW1vdGVWaWRlb1NhbXBsZSB7CiBwdWJsaWM6CiAgICAgUmVtb3RlVmlkZW9TYW1wbGUoKSA9
IGRlZmF1bHQ7CkBAIC00OCw5ICs1MCw3IEBAIHB1YmxpYzoKICAgICBXRUJDT1JFX0VYUE9SVCBz
dGF0aWMgc3RkOjp1bmlxdWVfcHRyPFJlbW90ZVZpZGVvU2FtcGxlPiBjcmVhdGUoUmV0YWluUHRy
PENWUGl4ZWxCdWZmZXJSZWY+JiYsIE1lZGlhVGltZSYmIHByZXNlbnRhdGlvblRpbWUsIE1lZGlh
U2FtcGxlOjpWaWRlb1JvdGF0aW9uID0gTWVkaWFTYW1wbGU6OlZpZGVvUm90YXRpb246Ok5vbmUp
OwogICAgIFdFQkNPUkVfRVhQT1JUIElPU3VyZmFjZVJlZiBzdXJmYWNlKCkgY29uc3Q7CiAKLSNp
ZiBIQVZFKElPU1VSRkFDRV9TRVRfT1dORVJTSElQX0lERU5USVRZKQotICAgIHZvaWQgc2V0T3du
ZXJzaGlwSWRlbnRpdHkodGFza19pZF90b2tlbl90IG5ld093bmVyKTsKLSNlbmRpZgorICAgIHZv
aWQgc2V0T3duZXJzaGlwSWRlbnRpdHkoUHJvY2Vzc0lkZW50aXR5KiByZXNvdXJjZU93bmVyKTsK
IAogICAgIGNvbnN0IE1lZGlhVGltZSYgdGltZSgpIGNvbnN0IHsgcmV0dXJuIG1fdGltZTsgfQog
ICAgIHVpbnQzMl90IHZpZGVvRm9ybWF0KCkgY29uc3QgeyByZXR1cm4gbV92aWRlb0Zvcm1hdDsg
fQpAQCAtMTE5LDEzICsxMTksMTEgQEAgcHJpdmF0ZToKICAgICBib29sIG1fbWlycm9yZWQgeyBm
YWxzZSB9OwogfTsKIAotI2lmIEhBVkUoSU9TVVJGQUNFX1NFVF9PV05FUlNISVBfSURFTlRJVFkp
Ci1pbmxpbmUgdm9pZCBSZW1vdGVWaWRlb1NhbXBsZTo6c2V0T3duZXJzaGlwSWRlbnRpdHkodGFz
a19pZF90b2tlbl90IG5ld093bmVyKQoraW5saW5lIHZvaWQgUmVtb3RlVmlkZW9TYW1wbGU6OnNl
dE93bmVyc2hpcElkZW50aXR5KFByb2Nlc3NJZGVudGl0eSogcmVzb3VyY2VPd25lcikKIHsKICAg
ICBpZiAobV9pb1N1cmZhY2UpCi0gICAgICAgIG1faW9TdXJmYWNlLT5zZXRPd25lcnNoaXBJZGVu
dGl0eShuZXdPd25lcik7CisgICAgICAgIG1faW9TdXJmYWNlLT5zZXRPd25lcnNoaXBJZGVudGl0
eShyZXNvdXJjZU93bmVyKTsKIH0KLSNlbmRpZgogCiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0dyYXBoaWNzQ29udGV4dEdMT3BlbkdMQ29j
b2EubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9HcmFwaGljc0Nv
bnRleHRHTE9wZW5HTENvY29hLm1tCmluZGV4IGZiNzIzZGQ0MjJkZTliOWRhZGE5ZTRjYjg5N2Qw
NjFjYmU2ZDYwM2UuLjE5NzlkYTU2NzI0YmEwZDI1YWRhNWQxNDFiNjNmNWFiNWYxZTdhOTQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0dyYXBoaWNz
Q29udGV4dEdMT3BlbkdMQ29jb2EubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY29jb2EvR3JhcGhpY3NDb250ZXh0R0xPcGVuR0xDb2NvYS5tbQpAQCAtMTkzLDggKzE5
Myw5IEBAIHN0YXRpYyBib29sIG5lZWRzRUFHTE9uTWFjKCkKIH0KICNlbmRpZgogCi1HcmFwaGlj
c0NvbnRleHRHTE9wZW5HTDo6R3JhcGhpY3NDb250ZXh0R0xPcGVuR0woR3JhcGhpY3NDb250ZXh0
R0xBdHRyaWJ1dGVzIGF0dHJzKQorR3JhcGhpY3NDb250ZXh0R0xPcGVuR0w6OkdyYXBoaWNzQ29u
dGV4dEdMT3BlbkdMKEdyYXBoaWNzQ29udGV4dEdMQXR0cmlidXRlcyYmIGF0dHJzLCBSZWZQdHI8
UHJvY2Vzc0lkZW50aXR5PiYmIHJlc291cmNlT3duZXIpCiAgICAgOiBHcmFwaGljc0NvbnRleHRH
TChhdHRycykKKyAgICAsIG1fcmVzb3VyY2VPd25lcihXVEZNb3ZlKHJlc291cmNlT3duZXIpKQog
ewogICAgIG1faXNGb3JXZWJHTDIgPSBhdHRycy53ZWJHTFZlcnNpb24gPT0gR3JhcGhpY3NDb250
ZXh0R0xXZWJHTFZlcnNpb246OldlYkdMMjsKICAgICBpZiAoYXR0cnMudXNlTWV0YWwgJiYgIXBs
YXRmb3JtU3VwcG9ydHNNZXRhbChtX2lzRm9yV2ViR0wyKSkgewpAQCAtNTY1LDYgKzU2Niw4IEBA
IGJvb2wgR3JhcGhpY3NDb250ZXh0R0xPcGVuR0w6OmFsbG9jYXRlQW5kQmluZERpc3BsYXlCdWZm
ZXJCYWNraW5nKCkKICAgICBhdXRvIGJhY2tpbmcgPSBJT1N1cmZhY2U6OmNyZWF0ZShnZXRJbnRl
cm5hbEZyYW1lYnVmZmVyU2l6ZSgpLCBEZXN0aW5hdGlvbkNvbG9yU3BhY2U6OlNSR0IoKSk7CiAg
ICAgaWYgKCFiYWNraW5nKQogICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgaWYgKG1fcmVzb3Vy
Y2VPd25lcikKKyAgICAgICAgYmFja2luZy0+c2V0T3duZXJzaGlwSWRlbnRpdHkobV9yZXNvdXJj
ZU93bmVyLmdldCgpKTsKIAogICAgIGJhY2tpbmctPm1pZ3JhdGVDb2xvclNwYWNlVG9Qcm9wZXJ0
aWVzKCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nv
Y29hL0lPU3VyZmFjZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2Ev
SU9TdXJmYWNlLmgKaW5kZXggNTY1MjQ3ODIyZGJhMjlmNzYwMGI5NDA3ZTZmNGFjYjhjMWEwNmFh
Yy4uMGM0M2NhNGY4MDRkMjYwYzYxMDVlYjkyYjYxMTA5MWUyYzI1MzJhMiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvSU9TdXJmYWNlLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvSU9TdXJmYWNlLmgKQEAgLTQ2
LDYgKzQ2LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogY2xhc3MgR3JhcGhpY3NDb250ZXh0Owog
Y2xhc3MgSG9zdFdpbmRvdzsKIGNsYXNzIEltYWdlQnVmZmVyOworY2xhc3MgUHJvY2Vzc0lkZW50
aXR5OwogCiBlbnVtIGNsYXNzIFBpeGVsRm9ybWF0IDogdWludDhfdDsKIGVudW0gY2xhc3MgVm9s
YXRpbGl0eVN0YXRlIDogdWludDhfdDsKQEAgLTE1OSw5ICsxNjAsNyBAQCBwdWJsaWM6CiAgICAg
V0VCQ09SRV9FWFBPUlQgc3RhdGljIHZvaWQgY29udmVydFRvRm9ybWF0KHN0ZDo6dW5pcXVlX3B0
cjxXZWJDb3JlOjpJT1N1cmZhY2U+JiYgaW5TdXJmYWNlLCBGb3JtYXQsIEZ1bmN0aW9uPHZvaWQo
c3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OklPU3VyZmFjZT4pPiYmKTsKICNlbmRpZiAvLyBIQVZF
KElPU1VSRkFDRV9BQ0NFTEVSQVRPUikKIAotI2lmIEhBVkUoSU9TVVJGQUNFX1NFVF9PV05FUlNI
SVBfSURFTlRJVFkpCi0gICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRPd25lcnNoaXBJZGVudGl0
eSh0YXNrX2lkX3Rva2VuX3QgbmV3T3duZXIpOwotI2VuZGlmCisgICAgV0VCQ09SRV9FWFBPUlQg
dm9pZCBzZXRPd25lcnNoaXBJZGVudGl0eShQcm9jZXNzSWRlbnRpdHkqIHJlc291cmNlT3duZXIp
OwogCiAgICAgdm9pZCBtaWdyYXRlQ29sb3JTcGFjZVRvUHJvcGVydGllcygpOwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9JT1N1cmZhY2UubW0g
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9JT1N1cmZhY2UubW0KaW5k
ZXggMDExMTY1Y2UxMWFiY2U2NzVjNGI0N2JmOTE1ZDRjODFlNmNlZTk5NS4uMTViZjY4ZjdmZTVh
Njk4NjdmY2M5ZDU2YTZlNWJkNGY2YmMzZDMwMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvSU9TdXJmYWNlLm1tCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0lPU3VyZmFjZS5tbQpAQCAtMzQsNiArMzQsNyBAQAog
I2ltcG9ydCAiSW1hZ2VCdWZmZXIuaCIKICNpbXBvcnQgIkxvZ2dpbmcuaCIKICNpbXBvcnQgIlBs
YXRmb3JtU2NyZWVuLmgiCisjaW1wb3J0ICJQcm9jZXNzSWRlbnRpdHkuaCIKICNpbXBvcnQgPHBh
bC9zcGkvY2cvQ29yZUdyYXBoaWNzU1BJLmg+CiAjaW1wb3J0IDx3dGYvQXNzZXJ0aW9ucy5oPgog
I2ltcG9ydCA8d3RmL01hY2hTZW5kUmlnaHQuaD4KQEAgLTQ4NCwxNCArNDg1LDE3IEBAIHZvaWQg
SU9TdXJmYWNlOjpjb252ZXJ0VG9Gb3JtYXQoc3RkOjp1bmlxdWVfcHRyPElPU3VyZmFjZT4mJiBp
blN1cmZhY2UsIEZvcm1hdCBmCiAKICNlbmRpZiAvLyBIQVZFKElPU1VSRkFDRV9BQ0NFTEVSQVRP
UikKIAotI2lmIEhBVkUoSU9TVVJGQUNFX1NFVF9PV05FUlNISVBfSURFTlRJVFkpCi12b2lkIElP
U3VyZmFjZTo6c2V0T3duZXJzaGlwSWRlbnRpdHkodGFza19pZF90b2tlbl90IG5ld093bmVyKQor
dm9pZCBJT1N1cmZhY2U6OnNldE93bmVyc2hpcElkZW50aXR5KFByb2Nlc3NJZGVudGl0eSogcmVz
b3VyY2VPd25lcikKIHsKLSAgICBhdXRvIHJlc3VsdCA9IElPU3VyZmFjZVNldE93bmVyc2hpcElk
ZW50aXR5KG1fc3VyZmFjZS5nZXQoKSwgbmV3T3duZXIsIGtJT1N1cmZhY2VNZW1vcnlMZWRnZXJU
YWdHcmFwaGljcywgMCk7CisjaWYgSEFWRShJT1NVUkZBQ0VfU0VUX09XTkVSU0hJUF9JREVOVElU
WSkgJiYgSEFWRShUQVNLX0lERU5USVRZX1RPS0VOKQorICAgIHRhc2tfaWRfdG9rZW5fdCBvd25l
clRhc2tJZFRva2VuID0gcmVzb3VyY2VPd25lciA/IHJlc291cmNlT3duZXItPnRhc2tJZFRva2Vu
KCkgOiAwOworICAgIGF1dG8gcmVzdWx0ID0gSU9TdXJmYWNlU2V0T3duZXJzaGlwSWRlbnRpdHko
bV9zdXJmYWNlLmdldCgpLCBvd25lclRhc2tJZFRva2VuLCBrSU9TdXJmYWNlTWVtb3J5TGVkZ2Vy
VGFnR3JhcGhpY3MsIDApOwogICAgIGlmIChyZXN1bHQgIT0ga0lPUmV0dXJuU3VjY2VzcykKLSAg
ICAgICAgUkVMRUFTRV9MT0dfRVJST1IoSU9TdXJmYWNlLCAiSU9TdXJmYWNlOjpzZXRPd25lcnNo
aXBJZGVudGl0eTogRmFpbGVkIHRvIGNsYWltIG93bmVyc2hpcCBvZiBJT1N1cmZhY2UgJXAsIG5l
d093bmVyOiAlZCwgZXJyb3I6ICVkIiwgbV9zdXJmYWNlLmdldCgpLCAoaW50KW5ld093bmVyLCBy
ZXN1bHQpOwotfQorICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihJT1N1cmZhY2UsICJJT1N1cmZh
Y2U6OnNldE93bmVyc2hpcElkZW50aXR5OiBGYWlsZWQgdG8gY2xhaW0gb3duZXJzaGlwIG9mIElP
U3VyZmFjZSAlcCwgdGFzayBpZCB0b2tlbjogJWQsIGVycm9yOiAlZCIsIG1fc3VyZmFjZS5nZXQo
KSwgKGludClvd25lclRhc2tJZFRva2VuLCByZXN1bHQpOworI2Vsc2UKKyAgICBVTlVTRURfUEFS
QU0ocmVzb3VyY2VPd25lcik7CiAjZW5kaWYKK30KIAogdm9pZCBJT1N1cmZhY2U6Om1pZ3JhdGVD
b2xvclNwYWNlVG9Qcm9wZXJ0aWVzKCkKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2NvY29hL1dlYlByb2Nlc3NHcmFwaGljc0NvbnRleHRHTE9wZW5HTENv
Y29hLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvV2ViUHJvY2Vz
c0dyYXBoaWNzQ29udGV4dEdMT3BlbkdMQ29jb2EubW0KaW5kZXggMjU2MjVlZGJmZTI1NGUzNzVm
ZWYxNjk4MTY5ZjUyZWZkNGFhNzcyMi4uY2FjNDRhMWRiNGRmYzBmNzE3MDRjNzQxODRkYTQ2Mzcy
YjMxMjNhZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29j
b2EvV2ViUHJvY2Vzc0dyYXBoaWNzQ29udGV4dEdMT3BlbkdMQ29jb2EubW0KKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvV2ViUHJvY2Vzc0dyYXBoaWNzQ29udGV4
dEdMT3BlbkdMQ29jb2EubW0KQEAgLTU3LDcgKzU3LDcgQEAgcHVibGljOgogICAgIHZvaWQgcHJl
cGFyZUZvckRpc3BsYXkoKSBmaW5hbDsKIHByaXZhdGU6CiAgICAgV2ViUHJvY2Vzc0dyYXBoaWNz
Q29udGV4dEdMT3BlbkdMKEdyYXBoaWNzQ29udGV4dEdMQXR0cmlidXRlcyBhdHRyaWJ1dGVzKQot
ICAgICAgICA6IEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMKGF0dHJpYnV0ZXMpCisgICAgICAgIDog
R3JhcGhpY3NDb250ZXh0R0xPcGVuR0woV1RGTW92ZShhdHRyaWJ1dGVzKSwgeyB9KQogICAgICAg
ICAsIG1fd2ViR0xMYXllcihjcmVhdGVXZWJHTExheWVyKGF0dHJpYnV0ZXMpKQogICAgIHsKICAg
ICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wv
R3JhcGhpY3NDb250ZXh0R0xPcGVuR0wuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL29wZW5nbC9HcmFwaGljc0NvbnRleHRHTE9wZW5HTC5oCmluZGV4IDM4MjczYjA3MmI1NmQz
ZmRhMmJjZGUzNDhiM2UwZjc0MmMyMDA1ZTUuLmZlMTNlYWZmNGQ3M2ZhNjcwMTYzNjBlOGQyYjhj
ZjhkMzNhYzhlNTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L29wZW5nbC9HcmFwaGljc0NvbnRleHRHTE9wZW5HTC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HcmFwaGljc0NvbnRleHRHTE9wZW5HTC5oCkBAIC0yOCw2
ICsyOCw3IEBACiAjaWYgRU5BQkxFKFdFQkdMKQogCiAjaW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0
R0wuaCIKKyNpbmNsdWRlICJQcm9jZXNzSWRlbnRpdHkuaCIKICNpbmNsdWRlIDxtZW1vcnk+CiAj
aW5jbHVkZSA8d3RmL0hhc2hDb3VudGVkU2V0Lmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4K
QEAgLTU0Myw4ICs1NDQsOSBAQCBwdWJsaWM6CiAjZW5kaWYKIAogcHJvdGVjdGVkOgotICAgIEdy
YXBoaWNzQ29udGV4dEdMT3BlbkdMKEdyYXBoaWNzQ29udGV4dEdMQXR0cmlidXRlcyk7CisgICAg
R3JhcGhpY3NDb250ZXh0R0xPcGVuR0woR3JhcGhpY3NDb250ZXh0R0xBdHRyaWJ1dGVzJiYsIFJl
ZlB0cjxQcm9jZXNzSWRlbnRpdHk+JiYgcmVzb3VyY2VPd25lcik7CiAgICAgYm9vbCBpc1ZhbGlk
KCkgY29uc3Q7CisgICAgUmVmUHRyPFByb2Nlc3NJZGVudGl0eT4gbV9yZXNvdXJjZU93bmVyOwog
I2lmIFBMQVRGT1JNKENPQ09BKQogICAgIEdyYXBoaWNzQ29udGV4dEdMSU9TdXJmYWNlU3dhcENo
YWluIG1fc3dhcENoYWluOwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy90ZXhtYXAvR3JhcGhpY3NDb250ZXh0R0xUZXh0dXJlTWFwcGVyLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9HcmFwaGljc0NvbnRleHRH
TFRleHR1cmVNYXBwZXIuY3BwCmluZGV4IGUyODUxYzJlM2QyMjE3NzE2OTRiZGQ2ZjEyZjBlNWY3
ODk5Yzc1NWIuLjgzMDYzN2MxMmE3ZGFjYjkzMjM3NGNlNDlmMTI0ODk3NThhMTFhZjUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9HcmFwaGljc0Nv
bnRleHRHTFRleHR1cmVNYXBwZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL3RleG1hcC9HcmFwaGljc0NvbnRleHRHTFRleHR1cmVNYXBwZXIuY3BwCkBAIC04NSw3
ICs4NSw3IEBAIFJlZlB0cjxHcmFwaGljc0NvbnRleHRHTE9wZW5HTD4gR3JhcGhpY3NDb250ZXh0
R0xPcGVuR0w6OmNyZWF0ZShHcmFwaGljc0NvbnRleHRHCiAgICAgICAgIHJldHVybiBudWxscHRy
OwogCiAgICAgLy8gQ3JlYXRlIHRoZSBHcmFwaGljc0NvbnRleHRHTE9wZW5HTCBvYmplY3QgZmly
c3QgaW4gb3JkZXIgdG8gZXN0YWJsaXN0IGEgY3VycmVudCBjb250ZXh0IG9uIHRoaXMgdGhyZWFk
LgotICAgIGF1dG8gY29udGV4dCA9IGFkb3B0UmVmKG5ldyBHcmFwaGljc0NvbnRleHRHTE9wZW5H
TChhdHRyaWJ1dGVzKSk7CisgICAgYXV0byBjb250ZXh0ID0gYWRvcHRSZWYobmV3IEdyYXBoaWNz
Q29udGV4dEdMT3BlbkdMKFdURk1vdmUoYXR0cmlidXRlcyksIHsgfSkpOwogCiAjaWYgVVNFKExJ
QkVQT1hZKSAmJiBVU0UoT1BFTkdMX0VTKSAmJiBFTkFCTEUoV0VCR0wyKQogICAgIC8vIEJhaWwg
aWYgR0xFUzMgd2FzIHJlcXVlc3RlZCBidXQgY2Fubm90IGJlIHByb3ZpZGVkLgpAQCAtOTksOCAr
OTksOSBAQCBSZWZQdHI8R3JhcGhpY3NDb250ZXh0R0xPcGVuR0w+IEdyYXBoaWNzQ29udGV4dEdM
T3BlbkdMOjpjcmVhdGUoR3JhcGhpY3NDb250ZXh0RwogfQogCiAjaWYgVVNFKEFOR0xFKQotR3Jh
cGhpY3NDb250ZXh0R0xPcGVuR0w6OkdyYXBoaWNzQ29udGV4dEdMT3BlbkdMKEdyYXBoaWNzQ29u
dGV4dEdMQXR0cmlidXRlcyBhdHRyaWJ1dGVzKQorR3JhcGhpY3NDb250ZXh0R0xPcGVuR0w6Okdy
YXBoaWNzQ29udGV4dEdMT3BlbkdMKEdyYXBoaWNzQ29udGV4dEdMQXR0cmlidXRlcyYmIGF0dHJp
YnV0ZXMsIFJlZlB0cjxQcm9jZXNzSWRlbnRpdHk+JiYgcmVzb3VyY2VPd25lcikKICAgICA6IEdy
YXBoaWNzQ29udGV4dEdMKGF0dHJpYnV0ZXMpCisgICAgLCBtX3Jlc291cmNlT3duZXIoV1RGTW92
ZShyZXNvdXJjZU93bmVyKSkKIHsKICNpZiBFTkFCTEUoV0VCR0wyKQogICAgIG1faXNGb3JXZWJH
TDIgPSBhdHRyaWJ1dGVzLndlYkdMVmVyc2lvbiA9PSBHcmFwaGljc0NvbnRleHRHTFdlYkdMVmVy
c2lvbjo6V2ViR0wyOwpAQCAtMTY4LDggKzE2OSw5IEBAIEdyYXBoaWNzQ29udGV4dEdMT3BlbkdM
OjpHcmFwaGljc0NvbnRleHRHTE9wZW5HTChHcmFwaGljc0NvbnRleHRHTEF0dHJpYnV0ZXMgYXR0
CiAgICAgZ2w6OkNsZWFyQ29sb3IoMCwgMCwgMCwgMCk7CiB9CiAjZWxzZQotR3JhcGhpY3NDb250
ZXh0R0xPcGVuR0w6OkdyYXBoaWNzQ29udGV4dEdMT3BlbkdMKEdyYXBoaWNzQ29udGV4dEdMQXR0
cmlidXRlcyBhdHRyaWJ1dGVzKQorR3JhcGhpY3NDb250ZXh0R0xPcGVuR0w6OkdyYXBoaWNzQ29u
dGV4dEdMT3BlbkdMKEdyYXBoaWNzQ29udGV4dEdMQXR0cmlidXRlcyYmIGF0dHJpYnV0ZXMsIFJl
ZlB0cjxQcm9jZXNzSWRlbnRpdHk+JiYgcmVzb3VyY2VPd25lcikKICAgICA6IEdyYXBoaWNzQ29u
dGV4dEdMKGF0dHJpYnV0ZXMpCisgICAgLCBtX3Jlc291cmNlT3duZXIoV1RGTW92ZShyZXNvdXJj
ZU93bmVyKSkKIHsKICNpZiBVU0UoTklDT1NJQSkKICAgICBtX25pY29zaWFMYXllciA9IG1ha2VV
bmlxdWU8Tmljb3NpYTo6R0NHTExheWVyPigqdGhpcyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L0dQVVByb2Nlc3MvR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L0dQVVByb2Nlc3MvR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAKaW5kZXggNTJhZTg4
MTkzNzFhM2VkZDYwY2Q3MjBjZDA4NGJiM2M4NTdmYTdjZC4uMWVmOWE2YjI1ODE2MzM3ZjM4ZDli
YjBiM2M3NDg5ZmNkMWM5NDg1YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNz
L0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJv
Y2Vzcy9HUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcApAQCAtMTk5LDEyICsxOTksMTAgQEAg
cHJpdmF0ZToKICAgICB9CiAjZW5kaWYKIAotI2lmIEhBVkUoSU9TVVJGQUNFX1NFVF9PV05FUlNI
SVBfSURFTlRJVFkpCi0gICAgc3RkOjpvcHRpb25hbDx0YXNrX2lkX3Rva2VuX3Q+IHdlYlByb2Nl
c3NJZGVudGl0eVRva2VuKCkgY29uc3QgZmluYWwKKyAgICBSZWZQdHI8UHJvY2Vzc0lkZW50aXR5
PiByZXNvdXJjZU93bmVyKCkgY29uc3QgZmluYWwKICAgICB7Ci0gICAgICAgIHJldHVybiBtX3By
b2Nlc3Mud2ViUHJvY2Vzc0lkZW50aXR5VG9rZW4oKTsKKyAgICAgICAgcmV0dXJuIG1fcHJvY2Vz
cy53ZWJQcm9jZXNzSWRlbnRpdHkoKTsKICAgICB9Ci0jZW5kaWYKIAogICAgIEdQVUNvbm5lY3Rp
b25Ub1dlYlByb2Nlc3MmIG1fcHJvY2VzczsKIH07CkBAIC0yMjAsOSArMjE4LDcgQEAgR1BVQ29u
bmVjdGlvblRvV2ViUHJvY2Vzczo6R1BVQ29ubmVjdGlvblRvV2ViUHJvY2VzcyhHUFVQcm9jZXNz
JiBncHVQcm9jZXNzLCBXZWIKICAgICA6IG1fY29ubmVjdGlvbihJUEM6OkNvbm5lY3Rpb246OmNy
ZWF0ZVNlcnZlckNvbm5lY3Rpb24oY29ubmVjdGlvbklkZW50aWZpZXIsICp0aGlzKSkKICAgICAs
IG1fZ3B1UHJvY2VzcyhncHVQcm9jZXNzKQogICAgICwgbV93ZWJQcm9jZXNzSWRlbnRpZmllcih3
ZWJQcm9jZXNzSWRlbnRpZmllcikKLSNpZiBIQVZFKFRBU0tfSURFTlRJVFlfVE9LRU4pCi0gICAg
LCBtX3dlYlByb2Nlc3NJZGVudGl0eVRva2VuKFdURk1vdmUocGFyYW1ldGVycy53ZWJQcm9jZXNz
SWRlbnRpdHlUb2tlbikpCi0jZW5kaWYKKyAgICAsIG1fd2ViUHJvY2Vzc0lkZW50aXR5KFByb2Nl
c3NJZGVudGl0eTo6Y3JlYXRlKFdURk1vdmUocGFyYW1ldGVycy53ZWJQcm9jZXNzSWRlbnRpdHlI
YW5kbGUpKSkKICAgICAsIG1fcmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHkobWFrZVVuaXF1
ZVJlZjxSZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eT4oKnRoaXMpKQogICAgICwgbV9zZXNz
aW9uSUQoc2Vzc2lvbklEKQogI2lmIFBMQVRGT1JNKENPQ09BKSAmJiBVU0UoTElCV0VCUlRDKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlBy
b2Nlc3MuaCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9uVG9XZWJQcm9j
ZXNzLmgKaW5kZXggYWU3OTUwNTI1ODYwZGUzY2Y2YTJiMTc4OGZlMzVhNWVhYmRhNTY3ZC4uZTA0
MjhiODVlNWNmZGFjMmM0MDY1YTkxMDNiOWM1NWU2YjZjYjVhOCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9HUFVQcm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L0dQVVByb2Nlc3MvR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oCkBAIC0zOSw2
ICszOSw3IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9Ob3dQbGF5aW5nTWFuYWdlci5oPgogI2luY2x1
ZGUgPFdlYkNvcmUvUGFnZUlkZW50aWZpZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Byb2Nlc3NJ
ZGVudGlmaWVyLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9Qcm9jZXNzSWRlbnRpdHkuaD4KICNpbmNs
dWRlIDxwYWwvU2Vzc2lvbklELmg+CiAjaW5jbHVkZSA8d3RmL0xvZ2dlci5oPgogI2luY2x1ZGUg
PHd0Zi9NYWNoU2VuZFJpZ2h0Lmg+CkBAIC0xNDcsMTAgKzE0OCw3IEBAIHB1YmxpYzoKICAgICB2
b2lkIGRpc3BhdGNoRGlzcGxheVdhc1JlY29uZmlndXJlZEZvclRlc3RpbmcoKSB7IGRpc3BhdGNo
RGlzcGxheVdhc1JlY29uZmlndXJlZCgpOyB9OwogI2VuZGlmCiAKLSNpZiBIQVZFKFRBU0tfSURF
TlRJVFlfVE9LRU4pCi0gICAgdGFza19pZF90b2tlbl90IHdlYlByb2Nlc3NJZGVudGl0eVRva2Vu
KCkgY29uc3QgeyByZXR1cm4gc3RhdGljX2Nhc3Q8dGFza19pZF90b2tlbl90PihtX3dlYlByb2Nl
c3NJZGVudGl0eVRva2VuLnNlbmRSaWdodCgpKTsgfQotI2VuZGlmCi0KKyAgICBSZWZQdHI8V2Vi
Q29yZTo6UHJvY2Vzc0lkZW50aXR5PiB3ZWJQcm9jZXNzSWRlbnRpdHkoKSBjb25zdCB7IHJldHVy
biBtX3dlYlByb2Nlc3NJZGVudGl0eTsgfQogI2lmIEVOQUJMRShFTkNSWVBURURfTUVESUEpCiAg
ICAgUmVtb3RlQ0RNRmFjdG9yeVByb3h5JiBjZG1GYWN0b3J5UHJveHkoKTsKICNlbmRpZgpAQCAt
MjczLDkgKzI3MSw3IEBAIHByaXZhdGU6CiAgICAgSVBDOjpNZXNzYWdlUmVjZWl2ZXJNYXAgbV9t
ZXNzYWdlUmVjZWl2ZXJNYXA7CiAgICAgUmVmPEdQVVByb2Nlc3M+IG1fZ3B1UHJvY2VzczsKICAg
ICBjb25zdCBXZWJDb3JlOjpQcm9jZXNzSWRlbnRpZmllciBtX3dlYlByb2Nlc3NJZGVudGlmaWVy
OwotI2lmIEhBVkUoVEFTS19JREVOVElUWV9UT0tFTikKLSAgICBNYWNoU2VuZFJpZ2h0IG1fd2Vi
UHJvY2Vzc0lkZW50aXR5VG9rZW47Ci0jZW5kaWYKKyAgICBSZWZQdHI8V2ViQ29yZTo6UHJvY2Vz
c0lkZW50aXR5PiBtX3dlYlByb2Nlc3NJZGVudGl0eTsKICNpZiBFTkFCTEUoV0VCX0FVRElPKQog
ICAgIHN0ZDo6dW5pcXVlX3B0cjxSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uTWFuYWdlcj4gbV9yZW1v
dGVBdWRpb0Rlc3RpbmF0aW9uTWFuYWdlcjsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL0dQVVByb2Nlc3NHcmFwaGljc0NvbnRleHRHTC5oIGIv
U291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL0dQVVByb2Nlc3NHcmFwaGljc0NvbnRl
eHRHTC5oCmluZGV4IDFlZWUxOGQ2MmYwNTA5ZjAwOWYzNGMzZWRlNjhkMzVlMGQwODk2NTMuLmU3
MjlhM2E3MTU0NTJjM2FkNDY0YzdjYzllZDVjMGVjYjNiMTFlMDggMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9HUFVQcm9jZXNzR3JhcGhpY3NDb250ZXh0R0wu
aAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvR1BVUHJvY2Vzc0dyYXBo
aWNzQ29udGV4dEdMLmgKQEAgLTI5LDExICsyOSwxMyBAQAogI2luY2x1ZGUgPFdlYkNvcmUvRXh0
ZW5zaW9uc0dMLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9HcmFwaGljc0NvbnRleHRHTE9wZW5HTC5o
PgogCituYW1lc3BhY2UgV2ViS2l0IHsKKwogY2xhc3MgR1BVUHJvY2Vzc0dyYXBoaWNzQ29udGV4
dEdMT3BlbkdMIGZpbmFsIDogcHVibGljIFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dEdMT3BlbkdM
IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmUHRyPEdQVVByb2Nlc3NHcmFwaGljc0NvbnRleHRH
TE9wZW5HTD4gY3JlYXRlKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dEdMQXR0cmlidXRlcyBhdHRy
aWJ1dGVzKQorICAgIHN0YXRpYyBSZWZQdHI8R1BVUHJvY2Vzc0dyYXBoaWNzQ29udGV4dEdMT3Bl
bkdMPiBjcmVhdGUoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0R0xBdHRyaWJ1dGVzIGF0dHJpYnV0
ZXMsIFJlZlB0cjxXZWJDb3JlOjpQcm9jZXNzSWRlbnRpdHk+IHJlc291cmNlT3duZXIpCiAgICAg
ewotICAgICAgICBhdXRvIGNvbnRleHQgPSBhZG9wdFJlZigqbmV3IEdQVVByb2Nlc3NHcmFwaGlj
c0NvbnRleHRHTE9wZW5HTChXVEZNb3ZlKGF0dHJpYnV0ZXMpKSk7CisgICAgICAgIGF1dG8gY29u
dGV4dCA9IGFkb3B0UmVmKCpuZXcgR1BVUHJvY2Vzc0dyYXBoaWNzQ29udGV4dEdMT3BlbkdMKFdU
Rk1vdmUoYXR0cmlidXRlcyksIFdURk1vdmUocmVzb3VyY2VPd25lcikpKTsKICAgICAgICAgaWYg
KCFjb250ZXh0LT5pc1ZhbGlkKCkpCiAgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICAg
ICAgcmV0dXJuIGNvbnRleHQ7CkBAIC00NCwxMCArNDYsMTIgQEAgcHVibGljOgogICAgIHZvaWQg
bWFya0Rpc3BsYXlCdWZmZXJJblVzZSgpIHsgcmV0dXJuIG1fc3dhcENoYWluLm1hcmtEaXNwbGF5
QnVmZmVySW5Vc2UoKTsgfQogI2VuZGlmCiBwcml2YXRlOgotICAgIEdQVVByb2Nlc3NHcmFwaGlj
c0NvbnRleHRHTE9wZW5HTChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHRHTEF0dHJpYnV0ZXMgYXR0
cmlidXRlcykKLSAgICAgICAgOiBHcmFwaGljc0NvbnRleHRHTE9wZW5HTChhdHRyaWJ1dGVzKQor
ICAgIEdQVVByb2Nlc3NHcmFwaGljc0NvbnRleHRHTE9wZW5HTChXZWJDb3JlOjpHcmFwaGljc0Nv
bnRleHRHTEF0dHJpYnV0ZXMmJiBhdHRyaWJ1dGVzLCBSZWZQdHI8V2ViQ29yZTo6UHJvY2Vzc0lk
ZW50aXR5PiYmIHJlc291cmNlT3duZXIpCisgICAgICAgIDogR3JhcGhpY3NDb250ZXh0R0xPcGVu
R0woV1RGTW92ZShhdHRyaWJ1dGVzKSwgV1RGTW92ZShyZXNvdXJjZU93bmVyKSkKICAgICB7CiAg
ICAgfQogfTsKIAorfQorCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJv
Y2Vzcy9ncmFwaGljcy9SZW1vdGVHcmFwaGljc0NvbnRleHRHTENvY29hLmNwcCBiL1NvdXJjZS9X
ZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVHcmFwaGljc0NvbnRleHRHTENvY29hLmNw
cAppbmRleCBiNDM3YTViZWVjZDVkNmFjNTgzY2E1OTdhOTVlMjc3MTJmYWRkNjIzLi4wY2MyMmI0
MzNhNDVlNzRkNTQwZTRkNTRlOWNhNjdiYjEwOTVlMWQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xDb2NvYS5jcHAK
KysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZUdyYXBoaWNzQ29u
dGV4dEdMQ29jb2EuY3BwCkBAIC00Nyw5ICs0Nyw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHByZXBh
cmVGb3JEaXNwbGF5KENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV1RGOjpNYWNoU2VuZFJpZ2h0JiYp
PiYmKSBmaW5hbDsKIHByaXZhdGU6CiAgICAgV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0R0xJT1N1
cmZhY2VTd2FwQ2hhaW4gbV9zd2FwQ2hhaW4gV1RGX0dVQVJERURfQllfTE9DSyhtX3N0cmVhbVRo
cmVhZCk7Ci0jaWYgSEFWRShJT1NVUkZBQ0VfU0VUX09XTkVSU0hJUF9JREVOVElUWSkKLSAgICB0
YXNrX2lkX3Rva2VuX3QgbV93ZWJQcm9jZXNzSWRlbnRpdHlUb2tlbjsKLSNlbmRpZgorICAgIFJl
ZlB0cjxQcm9jZXNzSWRlbnRpdHk+IG1fcmVzb3VyY2VPd25lcjsKIH07CiAKIH0KQEAgLTYzLDkg
KzYxLDcgQEAgUmVmPFJlbW90ZUdyYXBoaWNzQ29udGV4dEdMPiBSZW1vdGVHcmFwaGljc0NvbnRl
eHRHTDo6Y3JlYXRlKEdQVUNvbm5lY3Rpb25Ub1dlYlAKIAogUmVtb3RlR3JhcGhpY3NDb250ZXh0
R0xDb2NvYTo6UmVtb3RlR3JhcGhpY3NDb250ZXh0R0xDb2NvYShHUFVDb25uZWN0aW9uVG9XZWJQ
cm9jZXNzJiBncHVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLCBHcmFwaGljc0NvbnRleHRHTElkZW50
aWZpZXIgZ3JhcGhpY3NDb250ZXh0R0xJZGVudGlmaWVyLCBSZW1vdGVSZW5kZXJpbmdCYWNrZW5k
JiByZW5kZXJpbmdCYWNrZW5kLCBJUEM6OlN0cmVhbUNvbm5lY3Rpb25CdWZmZXImJiBzdHJlYW0p
CiAgICAgOiBSZW1vdGVHcmFwaGljc0NvbnRleHRHTChncHVDb25uZWN0aW9uVG9XZWJQcm9jZXNz
LCBncmFwaGljc0NvbnRleHRHTElkZW50aWZpZXIsIHJlbmRlcmluZ0JhY2tlbmQsIFdURk1vdmUo
c3RyZWFtKSkKLSNpZiBIQVZFKElPU1VSRkFDRV9TRVRfT1dORVJTSElQX0lERU5USVRZKQotICAg
ICwgbV93ZWJQcm9jZXNzSWRlbnRpdHlUb2tlbihncHVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLndl
YlByb2Nlc3NJZGVudGl0eVRva2VuKCkpCi0jZW5kaWYKKyAgICAsIG1fcmVzb3VyY2VPd25lcihn
cHVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLndlYlByb2Nlc3NJZGVudGl0eSgpKQogewogCiB9CkBA
IC03Myw3ICs2OSw3IEBAIFJlbW90ZUdyYXBoaWNzQ29udGV4dEdMQ29jb2E6OlJlbW90ZUdyYXBo
aWNzQ29udGV4dEdMQ29jb2EoR1BVQ29ubmVjdGlvblRvV2ViUHJvCiB2b2lkIFJlbW90ZUdyYXBo
aWNzQ29udGV4dEdMQ29jb2E6OnBsYXRmb3JtV29ya1F1ZXVlSW5pdGlhbGl6ZShXZWJDb3JlOjpH
cmFwaGljc0NvbnRleHRHTEF0dHJpYnV0ZXMmJiBhdHRyaWJ1dGVzKQogewogICAgIGFzc2VydElz
Q3VycmVudChtX3N0cmVhbVRocmVhZCk7Ci0gICAgbV9jb250ZXh0ID0gR1BVUHJvY2Vzc0dyYXBo
aWNzQ29udGV4dEdMT3BlbkdMOjpjcmVhdGUoV1RGTW92ZShhdHRyaWJ1dGVzKSk7CisgICAgbV9j
b250ZXh0ID0gR1BVUHJvY2Vzc0dyYXBoaWNzQ29udGV4dEdMT3BlbkdMOjpjcmVhdGUoV1RGTW92
ZShhdHRyaWJ1dGVzKSwgbV9yZXNvdXJjZU93bmVyKTsKIH0KIAogdm9pZCBSZW1vdGVHcmFwaGlj
c0NvbnRleHRHTENvY29hOjpwcmVwYXJlRm9yRGlzcGxheShDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KFdURjo6TWFjaFNlbmRSaWdodCYmKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKQEAgLTg0LDEwICs4
MCw2IEBAIHZvaWQgUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xDb2NvYTo6cHJlcGFyZUZvckRpc3Bs
YXkoQ29tcGxldGlvbkhhbmRsZXI8dm9pZChXVEY6CiAgICAgTWFjaFNlbmRSaWdodCBzZW5kUmln
aHQ7CiAgICAgaWYgKGRpc3BsYXlCdWZmZXIpIHsKICAgICAgICAgbV9jb250ZXh0LT5tYXJrRGlz
cGxheUJ1ZmZlckluVXNlKCk7Ci0jaWYgSEFWRShJT1NVUkZBQ0VfU0VUX09XTkVSU0hJUF9JREVO
VElUWSkKLSAgICAgICAgLy8gTWFyayB0aGUgSU9TdXJmYWNlIGFzIGJlaW5nIG93bmVkIGJ5IHRo
ZSBXZWJQcm9jZXNzIGV2ZW4gdGhvdWdoIGl0IHdhcyBjb25zdHJ1Y3RlZCBieSB0aGUgR1BVUHJv
Y2VzcyBzbyB0aGF0IEpldHNhbSBrbm93cyB3aGljaCBwcm9jZXNzIHRvIGtpbGwuCi0gICAgICAg
IGRpc3BsYXlCdWZmZXItPnNldE93bmVyc2hpcElkZW50aXR5KG1fd2ViUHJvY2Vzc0lkZW50aXR5
VG9rZW4pOwotI2VuZGlmCiAgICAgICAgIHNlbmRSaWdodCA9IGRpc3BsYXlCdWZmZXItPmNyZWF0
ZVNlbmRSaWdodCgpOwogICAgIH0KICAgICBjb21wbGV0aW9uSGFuZGxlcihXVEZNb3ZlKHNlbmRS
aWdodCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1Jl
bW90ZUltYWdlQnVmZmVyLmggYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVt
b3RlSW1hZ2VCdWZmZXIuaAppbmRleCBhM2Q0OTRmZThiZjZhMTk2NDdlZjE5MGM5ZGI0MDQyYWVj
ZTY3MjIwLi4xOTkyNThiNjNkNjhlODhiY2E0YTkwMjM2ZmVkNDA0ODA0MWI2MjBjIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlSW1hZ2VCdWZmZXIu
aAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlSW1hZ2VCdWZm
ZXIuaApAQCAtNjksMTMgKzY5LDExIEBAIHB1YmxpYzoKICAgICAgICAgICAgIGNvbnRleHQoKS5y
ZXN0b3JlKCk7CiAgICAgfQogCi0jaWYgSEFWRShJT1NVUkZBQ0VfU0VUX09XTkVSU0hJUF9JREVO
VElUWSkKLSAgICB2b2lkIHNldFByb2Nlc3NPd25lcnNoaXAodGFza19pZF90b2tlbl90IG5ld093
bmVyKQorICAgIHZvaWQgc2V0T3duZXJzaGlwSWRlbnRpdHkoV2ViQ29yZTo6UHJvY2Vzc0lkZW50
aXR5KiByZXNvdXJjZU93bmVyKQogICAgIHsKICAgICAgICAgaWYgKG1fYmFja2VuZCkKLSAgICAg
ICAgICAgIG1fYmFja2VuZC0+c2V0UHJvY2Vzc093bmVyc2hpcChuZXdPd25lcik7CisgICAgICAg
ICAgICBtX2JhY2tlbmQtPnNldE93bmVyc2hpcElkZW50aXR5KHJlc291cmNlT3duZXIpOwogICAg
IH0KLSNlbmRpZgogCiBwcml2YXRlOgogICAgIGZyaWVuZCBjbGFzcyBSZW1vdGVSZW5kZXJpbmdC
YWNrZW5kOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1Jl
bW90ZVJlbmRlcmluZ0JhY2tlbmQuY3BwIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBo
aWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQuY3BwCmluZGV4IGRiNGUxMzdiMmY2YWRmYjljZDE0
NzhhMWQ4NzJlNjY0ZDFhOTZkZWIuLjJjOGY0YmUyYjA3MGRlNjEzMDRhMDJmYmE2MDIwNmNjN2Fk
Yjc2ODMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1v
dGVSZW5kZXJpbmdCYWNrZW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3Jh
cGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5jcHAKQEAgLTg0LDYgKzg0LDcgQEAgUmVtb3Rl
UmVuZGVyaW5nQmFja2VuZDo6UmVtb3RlUmVuZGVyaW5nQmFja2VuZChHUFVDb25uZWN0aW9uVG9X
ZWJQcm9jZXNzJiBncHVDb24KICAgICAsIG1fc3RyZWFtQ29ubmVjdGlvbihJUEM6OlN0cmVhbVNl
cnZlckNvbm5lY3Rpb246OmNyZWF0ZShncHVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNvbm5lY3Rp
b24oKSwgV1RGTW92ZShzdHJlYW1CdWZmZXIpLCBtX3dvcmtRdWV1ZS5nZXQoKSkpCiAgICAgLCBt
X3JlbW90ZVJlc291cmNlQ2FjaGUoZ3B1Q29ubmVjdGlvblRvV2ViUHJvY2Vzcy53ZWJQcm9jZXNz
SWRlbnRpZmllcigpKQogICAgICwgbV9ncHVDb25uZWN0aW9uVG9XZWJQcm9jZXNzKGdwdUNvbm5l
Y3Rpb25Ub1dlYlByb2Nlc3MpCisgICAgLCBtX3Jlc291cmNlT3duZXIoZ3B1Q29ubmVjdGlvblRv
V2ViUHJvY2Vzcy53ZWJQcm9jZXNzSWRlbnRpdHkoKSkKICAgICAsIG1fcmVuZGVyaW5nQmFja2Vu
ZElkZW50aWZpZXIoY3JlYXRpb25QYXJhbWV0ZXJzLmlkZW50aWZpZXIpCiB7CiAgICAgQVNTRVJU
KFJ1bkxvb3A6OmlzTWFpbigpKTsKQEAgLTE3MywxMCArMTc0LDkgQEAgdm9pZCBSZW1vdGVSZW5k
ZXJpbmdCYWNrZW5kOjpjcmVhdGVJbWFnZUJ1ZmZlcldpdGhRdWFsaWZpZWRJZGVudGlmaWVyKGNv
bnN0IEZsb2EKIAogICAgIGlmIChyZW5kZXJpbmdNb2RlID09IFJlbmRlcmluZ01vZGU6OkFjY2Vs
ZXJhdGVkKSB7CiAgICAgICAgIGlmIChhdXRvIGFjY2VsZXJhdGVkSW1hZ2VCdWZmZXIgPSBBY2Nl
bGVyYXRlZFJlbW90ZUltYWdlQnVmZmVyOjpjcmVhdGUobG9naWNhbFNpemUsIHJlc29sdXRpb25T
Y2FsZSwgY29sb3JTcGFjZSwgcGl4ZWxGb3JtYXQsICp0aGlzLCBpbWFnZUJ1ZmZlclJlc291cmNl
SWRlbnRpZmllcikpIHsKLSNpZiBIQVZFKElPU1VSRkFDRV9TRVRfT1dORVJTSElQX0lERU5USVRZ
KQogICAgICAgICAgICAgLy8gTWFyayB0aGUgSU9TdXJmYWNlIGFzIGJlaW5nIG93bmVkIGJ5IHRo
ZSBXZWJQcm9jZXNzIGV2ZW4gdGhvdWdoIGl0IHdhcyBjb25zdHJ1Y3RlZCBieSB0aGUgR1BVUHJv
Y2VzcyBzbyB0aGF0IEpldHNhbSBrbm93cyB3aGljaCBwcm9jZXNzIHRvIGtpbGwuCi0gICAgICAg
ICAgICBhY2NlbGVyYXRlZEltYWdlQnVmZmVyLT5zZXRQcm9jZXNzT3duZXJzaGlwKG1fZ3B1Q29u
bmVjdGlvblRvV2ViUHJvY2Vzcy0+d2ViUHJvY2Vzc0lkZW50aXR5VG9rZW4oKSk7Ci0jZW5kaWYK
KyAgICAgICAgICAgIGlmIChtX3Jlc291cmNlT3duZXIpCisgICAgICAgICAgICAgICAgYWNjZWxl
cmF0ZWRJbWFnZUJ1ZmZlci0+c2V0T3duZXJzaGlwSWRlbnRpdHkobV9yZXNvdXJjZU93bmVyLmdl
dCgpKTsKICAgICAgICAgICAgIGltYWdlQnVmZmVyID0gV1RGTW92ZShhY2NlbGVyYXRlZEltYWdl
QnVmZmVyKTsKICAgICAgICAgfQogICAgIH0KQEAgLTI2OCw2ICsyNjgsNyBAQCB2b2lkIFJlbW90
ZVJlbmRlcmluZ0JhY2tlbmQ6OmdldERhdGFVUkxGb3JJbWFnZUJ1ZmZlcldpdGhRdWFsaWZpZWRJ
ZGVudGlmaWVyKGNvbgogICAgIFN0cmluZyB1cmxTdHJpbmc7CiAgICAgaWYgKGF1dG8gaW1hZ2VC
dWZmZXIgPSBtX3JlbW90ZVJlc291cmNlQ2FjaGUuY2FjaGVkSW1hZ2VCdWZmZXIocmVuZGVyaW5n
UmVzb3VyY2VJZGVudGlmaWVyKSkKICAgICAgICAgdXJsU3RyaW5nID0gaW1hZ2VCdWZmZXItPnRv
RGF0YVVSTChtaW1lVHlwZSwgcXVhbGl0eSwgcHJlc2VydmVSZXNvbHV0aW9uKTsKKyAgICBXVEZM
b2dBbHdheXMoIkRBVEFVUkw6JXMiLCB1cmxTdHJpbmcudXRmOCgpLmRhdGEoKSk7CiAgICAgY29t
cGxldGlvbkhhbmRsZXIoV1RGTW92ZSh1cmxTdHJpbmcpKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQuaCBi
L1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5k
LmgKaW5kZXggMTlmYjE3ZjAyNWZiMmM2NWYxZGRlMjcyYzMwYmIwZGU5NDVjYWY5Zi4uOWVjOTYy
YjMwZmY2NjdhOTE3ZmY4NmZkYjJmNTNmYTA4MmFiNzYzMyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQuaAorKysgYi9T
b3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5o
CkBAIC01NCw2ICs1NCw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIERlc3RpbmF0aW9u
Q29sb3JTcGFjZTsKIGNsYXNzIEZsb2F0U2l6ZTsKIGNsYXNzIE5hdGl2ZUltYWdlOworY2xhc3Mg
UHJvY2Vzc0lkZW50aXR5OwogCiBlbnVtIGNsYXNzIFJlbmRlcmluZ01vZGUgOiBib29sOwogCkBA
IC0xMjksNiArMTMwLDcgQEAgcHJpdmF0ZToKICAgICBSZWY8SVBDOjpTdHJlYW1TZXJ2ZXJDb25u
ZWN0aW9uPiBtX3N0cmVhbUNvbm5lY3Rpb247CiAgICAgUmVtb3RlUmVzb3VyY2VDYWNoZSBtX3Jl
bW90ZVJlc291cmNlQ2FjaGU7CiAgICAgUmVmPEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M+IG1f
Z3B1Q29ubmVjdGlvblRvV2ViUHJvY2VzczsKKyAgICBSZWZQdHI8V2ViQ29yZTo6UHJvY2Vzc0lk
ZW50aXR5PiBtX3Jlc291cmNlT3duZXI7CiAgICAgUmVuZGVyaW5nQmFja2VuZElkZW50aWZpZXIg
bV9yZW5kZXJpbmdCYWNrZW5kSWRlbnRpZmllcjsKICAgICBJUEM6OlNlbWFwaG9yZSBtX2dldFBp
eGVsQnVmZmVyU2VtYXBob3JlOwogICAgIFJlZlB0cjxTaGFyZWRNZW1vcnk+IG1fZ2V0UGl4ZWxC
dWZmZXJTaGFyZWRNZW1vcnk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mv
d2VicnRjL0xpYldlYlJUQ0NvZGVjc1Byb3h5Lm1tIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNz
L3dlYnJ0Yy9MaWJXZWJSVENDb2RlY3NQcm94eS5tbQppbmRleCAxMzNlMjZlNDc0ZTFkMzE5MTYz
ZTU1NzE5OTJkMGMwYzcxOWRkZTE0Li43MDdhNjVlMmUyMjRjOWFkN2NmMTc0NjVmNGRjMGE0MjEz
NzAyYTU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mvd2VicnRjL0xpYldl
YlJUQ0NvZGVjc1Byb3h5Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy93ZWJydGMv
TGliV2ViUlRDQ29kZWNzUHJveHkubW0KQEAgLTc3LDE0ICs3NywxMSBAQCB2b2lkIExpYldlYlJU
Q0NvZGVjc1Byb3h5OjpjbG9zZSgpCiBzdGF0aWMgRnVuY3Rpb248dm9pZChDVlBpeGVsQnVmZmVy
UmVmIHBpeGVsQnVmZmVyLCB1aW50MzJfdCB0aW1lU3RhbXBOcywgdWludDMyX3QgdGltZVN0YW1w
KT4gY3JlYXRlRGVjb2RlckNhbGxiYWNrKFJUQ0RlY29kZXJJZGVudGlmaWVyIGlkZW50aWZpZXIs
IEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MmIGdwdUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MpCiB7
CiAgICAgcmV0dXJuIFtjb25uZWN0aW9uID0gUmVmIHsgZ3B1Q29ubmVjdGlvblRvV2ViUHJvY2Vz
cy5jb25uZWN0aW9uKCkgfSwKLSNpZiBIQVZFKElPU1VSRkFDRV9TRVRfT1dORVJTSElQX0lERU5U
SVRZKQotICAgICAgICB0b2tlbiA9IGdwdUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3Mud2ViUHJvY2Vz
c0lkZW50aXR5VG9rZW4oKSwKLSNlbmRpZgorICAgICAgICByZXNvdXJjZU93bmVyID0gZ3B1Q29u
bmVjdGlvblRvV2ViUHJvY2Vzcy53ZWJQcm9jZXNzSWRlbnRpdHkoKSwKICAgICAgICAgaWRlbnRp
Zmllcl0oQ1ZQaXhlbEJ1ZmZlclJlZiBwaXhlbEJ1ZmZlciwgdWludDMyX3QgdGltZVN0YW1wTnMs
IHVpbnQzMl90IHRpbWVTdGFtcCkgewogICAgICAgICBpZiAoYXV0byBzYW1wbGUgPSBXZWJDb3Jl
OjpSZW1vdGVWaWRlb1NhbXBsZTo6Y3JlYXRlKHBpeGVsQnVmZmVyLCBNZWRpYVRpbWUodGltZVN0
YW1wTnMsIDEpKSkgewotI2lmIEhBVkUoSU9TVVJGQUNFX1NFVF9PV05FUlNISVBfSURFTlRJVFkp
Ci0gICAgICAgICAgICBzYW1wbGUtPnNldE93bmVyc2hpcElkZW50aXR5KHRva2VuKTsKLSNlbmRp
ZgorICAgICAgICAgICAgaWYgKHJlc291cmNlT3duZXIpCisgICAgICAgICAgICAgICAgc2FtcGxl
LT5zZXRPd25lcnNoaXBJZGVudGl0eShyZXNvdXJjZU93bmVyLmdldCgpKTsKICAgICAgICAgICAg
IGNvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6OkxpYldlYlJUQ0NvZGVjczo6Q29tcGxldGVkRGVj
b2RpbmcgeyBpZGVudGlmaWVyLCB0aW1lU3RhbXAsICpzYW1wbGUgfSwgMCk7CiAgICAgICAgIH0K
ICAgICB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvR1BVUHJvY2Vzc0Nvbm5l
Y3Rpb25QYXJhbWV0ZXJzLmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9HUFVQcm9jZXNzQ29ubmVj
dGlvblBhcmFtZXRlcnMuaAppbmRleCA0MTU5ZGM2ZWQ0N2Q2ZGMxNzNlOTFiNjgzMmExYmIxYmE1
NWY1ZTE0Li5kZGZhMjlmNTYxYWFkZDgwODliZGE2NTNiNDhhZjIwOTc4NDMwMGQyIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9HUFVQcm9jZXNzQ29ubmVjdGlvblBhcmFtZXRlcnMu
aAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9HUFVQcm9jZXNzQ29ubmVjdGlvblBhcmFtZXRl
cnMuaApAQCAtMjcsMTQgKzI3LDEyIEBACiAKICNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCiAKLSNp
bmNsdWRlIDx3dGYvTWFjaFNlbmRSaWdodC5oPgorI2luY2x1ZGUgPFdlYkNvcmUvUHJvY2Vzc0lk
ZW50aXR5Lmg+CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCiBzdHJ1Y3QgR1BVUHJvY2Vzc0Nvbm5l
Y3Rpb25QYXJhbWV0ZXJzIHsKLSNpZiBIQVZFKFRBU0tfSURFTlRJVFlfVE9LRU4pCi0gICAgTWFj
aFNlbmRSaWdodCB3ZWJQcm9jZXNzSWRlbnRpdHlUb2tlbjsKLSNlbmRpZgorICAgIFdlYkNvcmU6
OlByb2Nlc3NJZGVudGl0eTo6SGFuZGxlIHdlYlByb2Nlc3NJZGVudGl0eUhhbmRsZTsKICAgICBW
ZWN0b3I8U3RyaW5nPiBvdmVycmlkZUxhbmd1YWdlczsKICNpZiBFTkFCTEUoSVBDX1RFU1RJTkdf
QVBJKQogICAgIGJvb2wgaWdub3JlSW52YWxpZE1lc3NhZ2VGb3JUZXN0aW5nIHsgZmFsc2UgfTsK
QEAgLTQ1LDkgKzQzLDcgQEAgc3RydWN0IEdQVVByb2Nlc3NDb25uZWN0aW9uUGFyYW1ldGVycyB7
CiAKICAgICB2b2lkIGVuY29kZShJUEM6OkVuY29kZXImIGVuY29kZXIpIGNvbnN0CiAgICAgewot
I2lmIEhBVkUoVEFTS19JREVOVElUWV9UT0tFTikKLSAgICAgICAgZW5jb2RlciA8PCB3ZWJQcm9j
ZXNzSWRlbnRpdHlUb2tlbjsKLSNlbmRpZgorICAgICAgICBlbmNvZGVyIDw8IHdlYlByb2Nlc3NJ
ZGVudGl0eUhhbmRsZTsKICAgICAgICAgZW5jb2RlciA8PCBvdmVycmlkZUxhbmd1YWdlczsKICNp
ZiBFTkFCTEUoSVBDX1RFU1RJTkdfQVBJKQogICAgICAgICBlbmNvZGVyIDw8IGlnbm9yZUludmFs
aWRNZXNzYWdlRm9yVGVzdGluZzsKQEAgLTU5LDEyICs1NSwxMCBAQCBzdHJ1Y3QgR1BVUHJvY2Vz
c0Nvbm5lY3Rpb25QYXJhbWV0ZXJzIHsKIAogICAgIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPEdQVVBy
b2Nlc3NDb25uZWN0aW9uUGFyYW1ldGVycz4gZGVjb2RlKElQQzo6RGVjb2RlciYgZGVjb2RlcikK
ICAgICB7Ci0jaWYgSEFWRShUQVNLX0lERU5USVRZX1RPS0VOKQotICAgICAgICBzdGQ6Om9wdGlv
bmFsPE1hY2hTZW5kUmlnaHQ+IHdlYlByb2Nlc3NJZGVudGl0eVRva2VuOwotICAgICAgICBkZWNv
ZGVyID4+IHdlYlByb2Nlc3NJZGVudGl0eVRva2VuOwotICAgICAgICBpZiAoIXdlYlByb2Nlc3NJ
ZGVudGl0eVRva2VuKQorICAgICAgICBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OlByb2Nlc3NJZGVu
dGl0eTo6SGFuZGxlPiB3ZWJQcm9jZXNzSWRlbnRpdHlIYW5kbGU7CisgICAgICAgIGRlY29kZXIg
Pj4gd2ViUHJvY2Vzc0lkZW50aXR5SGFuZGxlOworICAgICAgICBpZiAoIXdlYlByb2Nlc3NJZGVu
dGl0eUhhbmRsZSkKICAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7Ci0jZW5kaWYKIAog
ICAgICAgICBzdGQ6Om9wdGlvbmFsPFZlY3RvcjxTdHJpbmc+PiBvdmVycmlkZUxhbmd1YWdlczsK
ICAgICAgICAgZGVjb2RlciA+PiBvdmVycmlkZUxhbmd1YWdlczsKQEAgLTg1LDkgKzc5LDcgQEAg
c3RydWN0IEdQVVByb2Nlc3NDb25uZWN0aW9uUGFyYW1ldGVycyB7CiAjZW5kaWYKIAogICAgICAg
ICByZXR1cm4gR1BVUHJvY2Vzc0Nvbm5lY3Rpb25QYXJhbWV0ZXJzIHsKLSNpZiBIQVZFKFRBU0tf
SURFTlRJVFlfVE9LRU4pCi0gICAgICAgICAgICBXVEZNb3ZlKCp3ZWJQcm9jZXNzSWRlbnRpdHlU
b2tlbiksCi0jZW5kaWYKKyAgICAgICAgICAgIFdURk1vdmUoKndlYlByb2Nlc3NJZGVudGl0eUhh
bmRsZSksCiAgICAgICAgICAgICBXVEZNb3ZlKCpvdmVycmlkZUxhbmd1YWdlcyksCiAjaWYgRU5B
QkxFKElQQ19URVNUSU5HX0FQSSkKICAgICAgICAgICAgICppZ25vcmVJbnZhbGlkTWVzc2FnZUZv
clRlc3RpbmcsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9Vc2Vy
TWVkaWFDYXB0dXJlTWFuYWdlclByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0Nv
Y29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkuY3BwCmluZGV4IDk5NjI2ODk5MDdjNjdi
NWM3YTU2NGQ4MTUzMjUxY2Y1NTM0N2U1YmQuLjhiMWYzYTI2NjU2YWIwNWYwMTcwZGNlNmJlMmMy
ZTNlZmRlNTM5NTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1Vz
ZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkuY3BwCkBAIC01Nyw5ICs1Nywx
MCBAQCBjbGFzcyBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OjpTb3VyY2VQcm94eQogICAg
ICwgcHJpdmF0ZSBSZWFsdGltZU1lZGlhU291cmNlOjpWaWRlb1NhbXBsZU9ic2VydmVyIHsKICAg
ICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKLSAgICBTb3VyY2VQcm94eShSZWFs
dGltZU1lZGlhU291cmNlSWRlbnRpZmllciBpZCwgUmVmPElQQzo6Q29ubmVjdGlvbj4mJiBjb25u
ZWN0aW9uLCBSZWY8UmVhbHRpbWVNZWRpYVNvdXJjZT4mJiBzb3VyY2UpCisgICAgU291cmNlUHJv
eHkoUmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgaWQsIFJlZjxJUEM6OkNvbm5lY3Rpb24+
JiYgY29ubmVjdGlvbiwgUmVmUHRyPFByb2Nlc3NJZGVudGl0eT4mJiByZXNvdXJjZU93bmVyLCBS
ZWY8UmVhbHRpbWVNZWRpYVNvdXJjZT4mJiBzb3VyY2UpCiAgICAgICAgIDogbV9pZChpZCkKICAg
ICAgICAgLCBtX2Nvbm5lY3Rpb24oV1RGTW92ZShjb25uZWN0aW9uKSkKKyAgICAgICAgLCBtX3Jl
c291cmNlT3duZXIoV1RGTW92ZShyZXNvdXJjZU93bmVyKSkKICAgICAgICAgLCBtX3NvdXJjZShX
VEZNb3ZlKHNvdXJjZSkpCiAgICAgewogICAgICAgICBtX3NvdXJjZS0+YWRkT2JzZXJ2ZXIoKnRo
aXMpOwpAQCAtMTI1LDkgKzEyNiw2IEBAIHB1YmxpYzoKICAgICB9CiAKICAgICB2b2lkIHNldFNo
b3VsZEFwcGx5Um90YXRpb24oYm9vbCBzaG91bGRBcHBseVJvdGF0aW9uKSB7IG1fc2hvdWxkQXBw
bHlSb3RhdGlvbiA9IHRydWU7IH0KLSNpZiBIQVZFKElPU1VSRkFDRV9TRVRfT1dORVJTSElQX0lE
RU5USVRZKQotICAgIHZvaWQgc2V0V2ViUHJvY2Vzc0lkZW50aXR5VG9rZW4oc3RkOjpvcHRpb25h
bDx0YXNrX2lkX3Rva2VuX3Q+IHRva2VuKSB7IG1fd2ViUHJvY2Vzc0lkZW50aXR5VG9rZW4gPSB0
b2tlbjt9Ci0jZW5kaWYKIAogcHJpdmF0ZToKICAgICB2b2lkIHNvdXJjZVN0b3BwZWQoKSBmaW5h
bCB7CkBAIC0xODgsMTAgKzE4Niw4IEBAIHByaXZhdGU6CiAgICAgICAgIH0gZWxzZQogICAgICAg
ICAgICAgcmVtb3RlU2FtcGxlID0gUmVtb3RlVmlkZW9TYW1wbGU6OmNyZWF0ZShzYW1wbGUpOwog
ICAgICAgICBpZiAocmVtb3RlU2FtcGxlKSB7Ci0jaWYgSEFWRShJT1NVUkZBQ0VfU0VUX09XTkVS
U0hJUF9JREVOVElUWSkKLSAgICAgICAgICAgIGlmIChtX3dlYlByb2Nlc3NJZGVudGl0eVRva2Vu
KQotICAgICAgICAgICAgICAgIHJlbW90ZVNhbXBsZS0+c2V0T3duZXJzaGlwSWRlbnRpdHkoKm1f
d2ViUHJvY2Vzc0lkZW50aXR5VG9rZW4pOwotI2VuZGlmCisgICAgICAgICAgICBpZiAobV9yZXNv
dXJjZU93bmVyKQorICAgICAgICAgICAgICAgIHJlbW90ZVNhbXBsZS0+c2V0T3duZXJzaGlwSWRl
bnRpdHkobV9yZXNvdXJjZU93bmVyLmdldCgpKTsKICAgICAgICAgICAgIG1fY29ubmVjdGlvbi0+
c2VuZChNZXNzYWdlczo6UmVtb3RlQ2FwdHVyZVNhbXBsZU1hbmFnZXI6OlZpZGVvU2FtcGxlQXZh
aWxhYmxlKG1faWQsIFdURk1vdmUoKnJlbW90ZVNhbXBsZSkpLCAwKTsKICAgICAgICAgfQogICAg
IH0KQEAgLTI0NCw2ICsyNDAsNyBAQCBwcml2YXRlOgogICAgIFJlYWx0aW1lTWVkaWFTb3VyY2VJ
ZGVudGlmaWVyIG1faWQ7CiAgICAgV2Vha1B0cjxQbGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXI+
IG1fc2Vzc2lvbk1hbmFnZXI7CiAgICAgUmVmPElQQzo6Q29ubmVjdGlvbj4gbV9jb25uZWN0aW9u
OworICAgIFJlZlB0cjxQcm9jZXNzSWRlbnRpdHk+IG1fcmVzb3VyY2VPd25lcjsKICAgICBSZWY8
UmVhbHRpbWVNZWRpYVNvdXJjZT4gbV9zb3VyY2U7CiAgICAgc3RkOjp1bmlxdWVfcHRyPENBUmlu
Z0J1ZmZlcj4gbV9yaW5nQnVmZmVyOwogICAgIENBQXVkaW9TdHJlYW1EZXNjcmlwdGlvbiBtX2Rl
c2NyaXB0aW9uIHsgfTsKQEAgLTI1Nyw5ICsyNTQsNiBAQCBwcml2YXRlOgogICAgIHNpemVfdCBt
X2ZyYW1lQ2h1bmtTaXplIHsgMCB9OwogICAgIE1lZGlhVGltZSBtX3N0YXJ0VGltZTsKICAgICBi
b29sIG1fc2hvdWxkUmVzZXQgeyBmYWxzZSB9OwotI2lmIEhBVkUoVEFTS19JREVOVElUWV9UT0tF
TikKLSAgICBzdGQ6Om9wdGlvbmFsPHRhc2tfaWRfdG9rZW5fdD4gbV93ZWJQcm9jZXNzSWRlbnRp
dHlUb2tlbjsKLSNlbmRpZgogfTsKIAogVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6VXNl
ck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eShVbmlxdWVSZWY8Q29ubmVjdGlvblByb3h5PiYmIGNv
bm5lY3Rpb25Qcm94eSkKQEAgLTMyMywxMiArMzE3LDcgQEAgdm9pZCBVc2VyTWVkaWFDYXB0dXJl
TWFuYWdlclByb3h5OjpjcmVhdGVNZWRpYVNvdXJjZUZvckNhcHR1cmVEZXZpY2VXaXRoQ29uc3Ry
YWkKICAgICAgICAgfQogCiAgICAgICAgIEFTU0VSVCghbV9wcm94aWVzLmNvbnRhaW5zKGlkKSk7
Ci0gICAgICAgIGF1dG8gcHJveHkgPSBtYWtlVW5pcXVlPFNvdXJjZVByb3h5PihpZCwgbV9jb25u
ZWN0aW9uUHJveHktPmNvbm5lY3Rpb24oKSwgV1RGTW92ZShzb3VyY2UpKTsKLSNpZiBIQVZFKElP
U1VSRkFDRV9TRVRfT1dORVJTSElQX0lERU5USVRZKQotICAgICAgICBpZiAoZGV2aWNlLnR5cGUo
KSAhPSBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpNaWNyb3Bob25lKQotICAg
ICAgICAgICAgcHJveHktPnNldFdlYlByb2Nlc3NJZGVudGl0eVRva2VuKG1fY29ubmVjdGlvblBy
b3h5LT53ZWJQcm9jZXNzSWRlbnRpdHlUb2tlbigpKTsKLSNlbmRpZgotCisgICAgICAgIGF1dG8g
cHJveHkgPSBtYWtlVW5pcXVlPFNvdXJjZVByb3h5PihpZCwgbV9jb25uZWN0aW9uUHJveHktPmNv
bm5lY3Rpb24oKSwgbV9jb25uZWN0aW9uUHJveHktPnJlc291cmNlT3duZXIoKSwgV1RGTW92ZShz
b3VyY2UpKTsKICAgICAgICAgbV9wcm94aWVzLmFkZChpZCwgV1RGTW92ZShwcm94eSkpOwogICAg
IH0gZWxzZQogICAgICAgICBpbnZhbGlkQ29uc3RyYWludHMgPSBXVEZNb3ZlKHNvdXJjZU9yRXJy
b3IuZXJyb3JNZXNzYWdlKTsKQEAgLTM5Myw3ICszODIsNyBAQCB2b2lkIFVzZXJNZWRpYUNhcHR1
cmVNYW5hZ2VyUHJveHk6OmNsb25lKFJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIGNsb25l
ZElELAogICAgIE1FU1NBR0VfQ0hFQ0sobV9wcm94aWVzLmNvbnRhaW5zKGNsb25lZElEKSk7CiAg
ICAgTUVTU0FHRV9DSEVDSyghbV9wcm94aWVzLmNvbnRhaW5zKG5ld1NvdXJjZUlEKSk7CiAgICAg
aWYgKGF1dG8qIHByb3h5ID0gbV9wcm94aWVzLmdldChjbG9uZWRJRCkpCi0gICAgICAgIG1fcHJv
eGllcy5hZGQobmV3U291cmNlSUQsIG1ha2VVbmlxdWU8U291cmNlUHJveHk+KG5ld1NvdXJjZUlE
LCBtX2Nvbm5lY3Rpb25Qcm94eS0+Y29ubmVjdGlvbigpLCBwcm94eS0+c291cmNlKCkuY2xvbmUo
KSkpOworICAgICAgICBtX3Byb3hpZXMuYWRkKG5ld1NvdXJjZUlELCBtYWtlVW5pcXVlPFNvdXJj
ZVByb3h5PihuZXdTb3VyY2VJRCwgbV9jb25uZWN0aW9uUHJveHktPmNvbm5lY3Rpb24oKSwgbV9j
b25uZWN0aW9uUHJveHktPnJlc291cmNlT3duZXIoKSwgcHJveHktPnNvdXJjZSgpLmNsb25lKCkp
KTsKIH0KIAogdm9pZCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OjpyZXF1ZXN0VG9FbmQo
UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgc291cmNlSUQpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5Lmgg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclBy
b3h5LmgKaW5kZXggN2FmZjQyNGQ1NDBkM2IxZmRlY2RhYmM4NjU1YzNjNTZjNTBhMTBlNS4uYzU4
NmNlM2YzZDEyZTc4ZTIzNzMyYWUxMGNjODliMjM4MDRiMmJjZCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2Vy
UHJveHkuaApAQCAtMzIsNiArMzIsNyBAQAogI2luY2x1ZGUgIlVzZXJNZWRpYUNhcHR1cmVNYW5h
Z2VyLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9DYXB0dXJlRGV2aWNlLmg+CiAjaW5jbHVkZSA8V2Vi
Q29yZS9PcmllbnRhdGlvbk5vdGlmaWVyLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9Qcm9jZXNzSWRl
bnRpdHkuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1JlYWx0aW1lTWVkaWFTb3VyY2UuaD4KICNpbmNs
dWRlIDxXZWJDb3JlL1JlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyLmg+CiAjaW5jbHVkZSA8
cGFsL3NwaS9jb2NvYS9UQ0NTUEkuaD4KQEAgLTU5LDkgKzYwLDcgQEAgcHVibGljOgogICAgICAg
ICB2aXJ0dWFsIGJvb2wgd2lsbFN0YXJ0Q2FwdHVyZShXZWJDb3JlOjpDYXB0dXJlRGV2aWNlOjpE
ZXZpY2VUeXBlKSBjb25zdCA9IDA7CiAgICAgICAgIHZpcnR1YWwgTG9nZ2VyJiBsb2dnZXIoKSA9
IDA7CiAgICAgICAgIHZpcnR1YWwgYm9vbCBzZXRDYXB0dXJlQXR0cmlidXRpb25TdHJpbmcoKSB7
IHJldHVybiB0cnVlOyB9Ci0jaWYgSEFWRShJT1NVUkZBQ0VfU0VUX09XTkVSU0hJUF9JREVOVElU
WSkKLSAgICAgICAgdmlydHVhbCBzdGQ6Om9wdGlvbmFsPHRhc2tfaWRfdG9rZW5fdD4gd2ViUHJv
Y2Vzc0lkZW50aXR5VG9rZW4oKSBjb25zdCB7IHJldHVybiB7IH07IH07Ci0jZW5kaWYKKyAgICAg
ICAgdmlydHVhbCBSZWZQdHI8V2ViQ29yZTo6UHJvY2Vzc0lkZW50aXR5PiByZXNvdXJjZU93bmVy
KCkgY29uc3QgeyByZXR1cm4gbnVsbHB0cjsgfTsKICNpZiBFTkFCTEUoQVBQX1BSSVZBQ1lfUkVQ
T1JUKQogICAgICAgICB2aXJ0dWFsIHZvaWQgc2V0VENDSWRlbnRpdHkoKSB7IH0KICNlbmRpZgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9jb2NvYS9J
bWFnZUJ1ZmZlclNoYXJlYWJsZU1hcHBlZElPU3VyZmFjZUJhY2tlbmQuY3BwIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9jb2NvYS9JbWFnZUJ1ZmZlclNoYXJlYWJsZU1h
cHBlZElPU3VyZmFjZUJhY2tlbmQuY3BwCmluZGV4IGFmZDJjN2MwNWNmYWZkMTM5OTM0NGY1YzZh
NzY0ZTQ4ODBkMjhiZGEuLjExM2VhZjkyZjgwZjUzODY2MGRmYmI0MDYwYzNhN2M4ODhmNjkyNWEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvY29jb2Ev
SW1hZ2VCdWZmZXJTaGFyZWFibGVNYXBwZWRJT1N1cmZhY2VCYWNrZW5kLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL2NvY29hL0ltYWdlQnVmZmVyU2hhcmVh
YmxlTWFwcGVkSU9TdXJmYWNlQmFja2VuZC5jcHAKQEAgLTc3LDEzICs3NywxMSBAQCBJbWFnZUJ1
ZmZlckJhY2tlbmRIYW5kbGUgSW1hZ2VCdWZmZXJTaGFyZWFibGVNYXBwZWRJT1N1cmZhY2VCYWNr
ZW5kOjpjcmVhdGVJbWFnZQogICAgIHJldHVybiBJbWFnZUJ1ZmZlckJhY2tlbmRIYW5kbGUobV9z
dXJmYWNlLT5jcmVhdGVTZW5kUmlnaHQoKSk7CiB9CiAKLSNpZiBIQVZFKElPU1VSRkFDRV9TRVRf
T1dORVJTSElQX0lERU5USVRZKQotdm9pZCBJbWFnZUJ1ZmZlclNoYXJlYWJsZU1hcHBlZElPU3Vy
ZmFjZUJhY2tlbmQ6OnNldFByb2Nlc3NPd25lcnNoaXAodGFza19pZF90b2tlbl90IHByb2Nlc3NJ
ZGVudGl0eVRva2VuKQordm9pZCBJbWFnZUJ1ZmZlclNoYXJlYWJsZU1hcHBlZElPU3VyZmFjZUJh
Y2tlbmQ6OnNldE93bmVyc2hpcElkZW50aXR5KFdlYkNvcmU6OlByb2Nlc3NJZGVudGl0eSogcmVz
b3VyY2VPd25lcikKIHsKICAgICBBU1NFUlQoc3VyZmFjZSgpKTsKLSAgICBzdXJmYWNlKCktPnNl
dE93bmVyc2hpcElkZW50aXR5KHByb2Nlc3NJZGVudGl0eVRva2VuKTsKKyAgICBzdXJmYWNlKCkt
PnNldE93bmVyc2hpcElkZW50aXR5KHJlc291cmNlT3duZXIpOwogfQotI2VuZGlmCiAKIH0gLy8g
bmFtZXNwYWNlIFdlYktpdAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
R1BVL2dyYXBoaWNzL2NvY29hL0ltYWdlQnVmZmVyU2hhcmVhYmxlTWFwcGVkSU9TdXJmYWNlQmFj
a2VuZC5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9jb2NvYS9JbWFn
ZUJ1ZmZlclNoYXJlYWJsZU1hcHBlZElPU3VyZmFjZUJhY2tlbmQuaAppbmRleCBlMTRhNTQwZWNk
ZGQ0NzExOTA4YTdjMTcxYzNhMjVlYmZkODA4ZGJlLi5iOTc2MzIyMDMyZTZmZDFhMzBiOWEyNDRm
ZjgzODk2NjA5NTY0N2MxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BV
L2dyYXBoaWNzL2NvY29hL0ltYWdlQnVmZmVyU2hhcmVhYmxlTWFwcGVkSU9TdXJmYWNlQmFja2Vu
ZC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvY29jb2EvSW1h
Z2VCdWZmZXJTaGFyZWFibGVNYXBwZWRJT1N1cmZhY2VCYWNrZW5kLmgKQEAgLTMxLDYgKzMxLDEw
IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9JbWFnZUJ1ZmZlcklPU3VyZmFjZUJhY2tlbmQuaD4KICNp
bmNsdWRlIDx3dGYvSXNvTWFsbG9jLmg+CiAKK25hbWVzcGFjZSBXZWJDb3JlIHsKK2NsYXNzIFBy
b2Nlc3NJZGVudGl0eTsKK30KKwogbmFtZXNwYWNlIFdlYktpdCB7CiAKIGNsYXNzIFNoYXJlYWJs
ZUJpdG1hcDsKQEAgLTQ2LDkgKzUwLDcgQEAgcHVibGljOgogCiAgICAgSW1hZ2VCdWZmZXJCYWNr
ZW5kSGFuZGxlIGNyZWF0ZUltYWdlQnVmZmVyQmFja2VuZEhhbmRsZSgpIGNvbnN0OwogCi0jaWYg
SEFWRShJT1NVUkZBQ0VfU0VUX09XTkVSU0hJUF9JREVOVElUWSkKLSAgICB2b2lkIHNldFByb2Nl
c3NPd25lcnNoaXAodGFza19pZF90b2tlbl90KTsKLSNlbmRpZgorICAgIHZvaWQgc2V0T3duZXJz
aGlwSWRlbnRpdHkoV2ViQ29yZTo6UHJvY2Vzc0lkZW50aXR5KiByZXNvdXJjZU93bmVyKTsKIH07
CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL2NvY29hL1dlYlByb2Nlc3NDb2NvYS5tbSBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9jb2NvYS9XZWJQcm9jZXNzQ29jb2EubW0KaW5kZXggMDM0ZTJiNDhhYTAxNWFmN2NlZDc2NmRl
OWFjZTgyOGRlZDEyMjY0OS4uNjQyNWYzOTk2NTdkMDAzYjBmYWUyN2Q2YTVhMzI0ZDFlNGNhMWZm
OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1dlYlByb2Nlc3ND
b2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvV2ViUHJvY2Vzc0Nv
Y29hLm1tCkBAIC0xMjQyLDE0ICsxMjQyLDcgQEAgdm9pZCBXZWJQcm9jZXNzOjp3YWl0Rm9yUGVu
ZGluZ1Bhc3RlYm9hcmRXcml0ZXNUb0ZpbmlzaChjb25zdCBTdHJpbmcmIHBhc3RlYm9hcmQKICNp
ZiBFTkFCTEUoR1BVX1BST0NFU1MpCiB2b2lkIFdlYlByb2Nlc3M6OnBsYXRmb3JtSW5pdGlhbGl6
ZUdQVVByb2Nlc3NDb25uZWN0aW9uUGFyYW1ldGVycyhHUFVQcm9jZXNzQ29ubmVjdGlvblBhcmFt
ZXRlcnMmIHBhcmFtZXRlcnMpCiB7Ci0jaWYgSEFWRShUQVNLX0lERU5USVRZX1RPS0VOKQotICAg
IHRhc2tfaWRfdG9rZW5fdCBpZGVudGl0eVRva2VuOwotICAgIGtlcm5fcmV0dXJuX3Qga3IgPSB0
YXNrX2NyZWF0ZV9pZGVudGl0eV90b2tlbihtYWNoX3Rhc2tfc2VsZigpLCAmaWRlbnRpdHlUb2tl
bik7Ci0gICAgaWYgKGtyID09IEtFUk5fU1VDQ0VTUykKLSAgICAgICAgcGFyYW1ldGVycy53ZWJQ
cm9jZXNzSWRlbnRpdHlUb2tlbiA9IE1hY2hTZW5kUmlnaHQ6OmFkb3B0KGlkZW50aXR5VG9rZW4p
OwotICAgIGVsc2UKLSAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoUHJvY2VzcywgIkNhbGwgdG8g
dGFza19jcmVhdGVfaWRlbnRpdHlfdG9rZW4oKSBmYWlsZWQ6ICV7cHJpdmF0ZX1zICgleCkiLCBt
YWNoX2Vycm9yX3N0cmluZyhrciksIGtyKTsKLSNlbmRpZgorICAgIHBhcmFtZXRlcnMud2ViUHJv
Y2Vzc0lkZW50aXR5SGFuZGxlID0gUHJvY2Vzc0lkZW50aXR5OjpoYW5kbGVGb3JDdXJyZW50UHJv
Y2VzcygpOwogCiAgICAgcGFyYW1ldGVycy5vdmVycmlkZUxhbmd1YWdlcyA9IHVzZXJQcmVmZXJy
ZWRMYW5ndWFnZXNPdmVycmlkZSgpOwogfQpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIv
VG9vbHMvQ2hhbmdlTG9nCmluZGV4IGEwNDA4ZTMwMWYwMDdmMjZhNTA2Y2I5MjRmNDU2MDg1OGJm
ODE5OTAuLmQ2NzE0ZDgwNWRlM2UxZGJmOGU5MTBhZmI3MzExZDYxODQ5MmJhM2IgMTAwNjQ0Ci0t
LSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBA
QAorMjAyMS0xMS0xMSAgS2ltbW8gS2lubnVuZW4gIDxra2lubnVuZW5AYXBwbGUuY29tPgorCisg
ICAgICAgIElPU3VyZmFjZSBtZW1vcnkgYXR0cmlidXRpb24gaXMgaGFyZCB0byB1c2UgaW4gY29u
c3RydWN0b3JzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0yMzI5ODgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBVcGRhdGUgY29uc3RydWN0b3IgY2FsbGluZyBiYXNlIGNsYXNzIGNvbnN0cnVjdG9yLgorCisg
ICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL2NvY29hL1Rlc3RHcmFwaGljc0Nv
bnRleHRHTE9wZW5HTENvY29hLm1tOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6V2ViQ29yZTo6
VGVzdGVkR3JhcGhpY3NDb250ZXh0R0xPcGVuR0w6OmNyZWF0ZSk6CisgICAgICAgIChUZXN0V2Vi
S2l0QVBJOjpXZWJDb3JlOjpUZXN0ZWRHcmFwaGljc0NvbnRleHRHTE9wZW5HTDo6VGVzdGVkR3Jh
cGhpY3NDb250ZXh0R0xPcGVuR0wpOgorCiAyMDIxLTExLTEwICBDaHJpcyBEdW1leiAgPGNkdW1l
ekBhcHBsZS5jb20+CiAKICAgICAgICAgV2Ugc2hvdWxkIG5vdCBraWxsIGFsbCBXZWJDb250ZW50
IHByb2Nlc3NlcyB3aGVuZXZlciB0aGUgV2ViQXV0aG4gcHJvY2VzcyBjcmFzaGVzCmRpZmYgLS1n
aXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvY29jb2EvVGVzdEdyYXBoaWNz
Q29udGV4dEdMT3BlbkdMQ29jb2EubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNv
cmUvY29jb2EvVGVzdEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMQ29jb2EubW0KaW5kZXggOTE3ZDJl
ODE2MGE1MzJiZjY2NzRhNDIwNTU3ZTI0ZDVhYmE3ODNmNi4uOGM4ZWE4ZmQ4YmUzMWIwZGZjYTgw
N2ViNjVkMGUyNzE4MWI4ZGQ5YyAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9XZWJDb3JlL2NvY29hL1Rlc3RHcmFwaGljc0NvbnRleHRHTE9wZW5HTENvY29hLm1tCisrKyBi
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9jb2NvYS9UZXN0R3JhcGhpY3NDb250
ZXh0R0xPcGVuR0xDb2NvYS5tbQpAQCAtMzksMTIgKzM5LDEyIEBAIGNsYXNzIFRlc3RlZEdyYXBo
aWNzQ29udGV4dEdMT3BlbkdMIDogcHVibGljIEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMIHsKIHB1
YmxpYzoKICAgICBzdGF0aWMgUmVmUHRyPFRlc3RlZEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMPiBj
cmVhdGUoR3JhcGhpY3NDb250ZXh0R0xBdHRyaWJ1dGVzIGF0dHJpYnV0ZXMpCiAgICAgewotICAg
ICAgICBhdXRvIGNvbnRleHQgPSBhZG9wdFJlZigqbmV3IFRlc3RlZEdyYXBoaWNzQ29udGV4dEdM
T3BlbkdMKFdURk1vdmUoYXR0cmlidXRlcykpKTsKKyAgICAgICAgYXV0byBjb250ZXh0ID0gYWRv
cHRSZWYoKm5ldyBUZXN0ZWRHcmFwaGljc0NvbnRleHRHTE9wZW5HTChXVEZNb3ZlKGF0dHJpYnV0
ZXMpLCB7IH0pKTsKICAgICAgICAgcmV0dXJuIGNvbnRleHQ7CiAgICAgfQogcHJpdmF0ZToKLSAg
ICBUZXN0ZWRHcmFwaGljc0NvbnRleHRHTE9wZW5HTChHcmFwaGljc0NvbnRleHRHTEF0dHJpYnV0
ZXMgYXR0cmlidXRlcykKLSAgICAgICAgOiBHcmFwaGljc0NvbnRleHRHTE9wZW5HTChXVEZNb3Zl
KGF0dHJpYnV0ZXMpKQorICAgIFRlc3RlZEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMKEdyYXBoaWNz
Q29udGV4dEdMQXR0cmlidXRlcyBhdHRyaWJ1dGVzLCBSZWZQdHI8UHJvY2Vzc0lkZW50aXR5PiBy
ZXNvdXJjZU93bmVyKQorICAgICAgICA6IEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMKFdURk1vdmUo
YXR0cmlidXRlcyksIFdURk1vdmUocmVzb3VyY2VPd25lcikpCiAgICAgewogICAgIH0KIH07Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>444051</attachid>
            <date>2021-11-11 23:08:23 -0800</date>
            <delta_ts>2021-11-12 00:53:44 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-232988-20211112090821.patch</filename>
            <type>text/plain</type>
            <size>52422</size>
            <attacher name="Kimmo Kinnunen">kkinnunen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg1NjIyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzEzMjQzOGVjMDliZTE4
MTE0NjI5NmIyYmYyMmViYWRlZWIxY2VkNi4uYmVlZmIyMDQ5MzlkYzI0ZGVhMzJjNzYyMmYyZDE2
NGNmYTUyYzRlZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU3IEBACisyMDIxLTExLTExICBLaW1t
byBLaW5udW5lbiAgPGtraW5udW5lbkBhcHBsZS5jb20+CisKKyAgICAgICAgSU9TdXJmYWNlIG1l
bW9yeSBhdHRyaWJ1dGlvbiBpcyBoYXJkIHRvIHVzZSBpbiBjb25zdHJ1Y3RvcnMKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMjk4OAorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBXZWJDb3JlOjpQcm9j
ZXNzSWRlbnRpdHkgdHlwZSB0aGF0IGNhbiBiZSB1c2VkIHRvIGNvbW11bmljYXRlIG1lbW9yeSBh
dHRyaWJ1dGlvbi4KKyAgICAgICAgRm9yIG5vbi1Db2NvYSBwb3J0cywgdGhpcyBpcyBudWxscHRy
LgorICAgICAgICBUaGlzIGlzIHVzZWQgaW4gV2ViQ29yZSB0byBzZXQgdGhlIG1lbW9yeSBhdHRy
aWJ1dGlvbiBvZiBJT1N1cmZhY2UgYW5kIG9iamVjdHMKKyAgICAgICAgdGhhdCBob2xkIElPU3Vy
ZmFjZXMuCisgICAgICAgIFRoaXMgaXMgaW5zdGFudGlhdGVkIGluIFdlYktpdC4KKyAgICAgICAg
Q3VycmVudGx5IHRoZSBvbmx5IHVzZWZ1bCB3YXkgdG8gaW5zdGFudGlhdGUgUHJvY2Vzc0lkZW50
aXR5IGlzIGJ5IHJlY2VpdmluZworICAgICAgICB0aGUgUHJvY2Vzc0lkZW50aXR5OjpIYW5kbGUg
YXMgYSBtZXNzYWdlIGFuZCBjcmVhdGUgaXQgdGhpcyB3YXkgZm9yIHRoZQorICAgICAgICBzZW5k
ZXIgcHJvY2Vzcy4KKworICAgICAgICBObyBuZXcgdGVzdHMsIHJlZmFjdG9yLgorCisgICAgICAg
ICogSGVhZGVycy5jbWFrZToKKyAgICAgICAgKiBTb3VyY2VzLnR4dDoKKyAgICAgICAgKiBXZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogcGxhdGZvcm0vTG9nZ2lu
Zy5oOgorICAgICAgICBBZGQgV2ViQ29yZSBQcm9jZXNzIGxvZyB0YWcgc2luY2UgdGhlIGNvZGUg
bW92ZWQgZnJvbSBXZWJLaXQgdG8gUHJvY2Vzc0lkZW50aXR5CisgICAgICAgIHVzZWQgdGhhdCB0
YWcgdG8gbG9nLgorICAgICAgICAqIHBsYXRmb3JtL1Byb2Nlc3NJZGVudGl0eS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpQcm9jZXNzSWRlbnRpdHk6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3Jl
OjpQcm9jZXNzSWRlbnRpdHk6OlByb2Nlc3NJZGVudGl0eSk6CisgICAgICAgIChXZWJDb3JlOjpQ
cm9jZXNzSWRlbnRpdHk6OmhhbmRsZUZvckN1cnJlbnRQcm9jZXNzKToKKyAgICAgICAgKFdlYkNv
cmU6OlByb2Nlc3NJZGVudGl0eTo6aGFuZGxlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlBy
b2Nlc3NJZGVudGl0eTo6dGFza0lkVG9rZW4gY29uc3QpOgorICAgICAgICAqIHBsYXRmb3JtL1By
b2Nlc3NJZGVudGl0eS5oOgorICAgICAgICBBZGQgdGhlIFByb2Nlc3NJZGVudGl0eSB0eXBlIHRo
YXQgY2FuIGJlIHVzZWQgdG8gY29tbXVuaWNhdGUgbWVtb3J5IGF0dHJpYnV0aW9uLgorCisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvUmVtb3RlVmlkZW9TYW1wbGUuaDoKKyAgICAgICAgKFdl
YkNvcmU6OlJlbW90ZVZpZGVvU2FtcGxlOjpzZXRPd25lcnNoaXBJZGVudGl0eSk6CisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvY2cvSW1hZ2VCdWZmZXJVdGlsaXRpZXNDRy5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjplbmNvZGUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NvY29h
L0dyYXBoaWNzQ29udGV4dEdMT3BlbkdMQ29jb2EubW06CisgICAgICAgIChXZWJDb3JlOjpHcmFw
aGljc0NvbnRleHRHTE9wZW5HTDo6R3JhcGhpY3NDb250ZXh0R0xPcGVuR0wpOgorICAgICAgICAo
V2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0R0xPcGVuR0w6OmFsbG9jYXRlQW5kQmluZERpc3BsYXlC
dWZmZXJCYWNraW5nKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9JT1N1cmZh
Y2UuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9JT1N1cmZhY2UubW06Cisg
ICAgICAgIChXZWJDb3JlOjpJT1N1cmZhY2U6OnNldE93bmVyc2hpcElkZW50aXR5KToKKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9XZWJQcm9jZXNzR3JhcGhpY3NDb250ZXh0R0xP
cGVuR0xDb2NvYS5tbToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR3JhcGhp
Y3NDb250ZXh0R0xPcGVuR0wuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAv
R3JhcGhpY3NDb250ZXh0R0xUZXh0dXJlTWFwcGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okdy
YXBoaWNzQ29udGV4dEdMT3BlbkdMOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhp
Y3NDb250ZXh0R0xPcGVuR0w6OkdyYXBoaWNzQ29udGV4dEdMT3BlbkdMKToKKyAgICAgICAgQWRk
IGFuIGV4YW1wbGUgdXNlIHdoZXJlIHRoZSBjb25zdHJ1Y3RvciB0YWtlcyB0aGUgbWVtb3J5IGF0
dHJpYnV0aW9uIHRva2VuLgorICAgICAgICBUaGlzIG1heSBiZSBuZWVkZWQgaW4gdGhlIGZ1dHVy
ZSB3aGVuIHRoZSB0b2tlbiBpcyB1c2VkIGFzIGEgcGFyYW1ldGVyIGluCisgICAgICAgIHRoZSBB
TkdMRSBjb250ZXh0IGNyZWF0aW9uLgorICAgICAgICBVc2UgdGhlIHRva2VuIGluIGNyZWF0aW5n
IHRoZSBJT1N1cmZhY2UuIFRoaXMgZml4ZXMgYSBidWcgd2hlcmUgV2ViR0wKKyAgICAgICAgYmFj
ayBidWZmZXJzIHdvdWxkIG5vdCBiZSBhdHRyaWJ1dGVkIHVudGlsIHRoZXkgd2VyZSBzZW50IHRv
IFdQLgorCiAyMDIxLTExLTExICBBbnR0aSBLb2l2aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KIAog
ICAgICAgICBVc2UgbmFycm93ZXIgdHlwZXMgZm9yIHN0eWxlIHNjb3BlIG9yZGluYWwgYW5kIGNh
c2NhZGUgbGF5ZXIgcHJpb3JpdHkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9n
IGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggNGUxNTE5NmQ4Y2ZkZDc0MDI0YmE3YWRm
NmNmZDU4N2VjZDVkZDQ4Mi4uNmEyODQwOWVkZjA2Zjk2ZDM0OTljMzA1NTNiZjViNmJlYjBlMGRj
MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktp
dC9DaGFuZ2VMb2cKQEAgLTEsMyArMSw1NCBAQAorMjAyMS0xMS0xMSAgS2ltbW8gS2lubnVuZW4g
IDxra2lubnVuZW5AYXBwbGUuY29tPgorCisgICAgICAgIElPU3VyZmFjZSBtZW1vcnkgYXR0cmli
dXRpb24gaXMgaGFyZCB0byB1c2UgaW4gY29uc3RydWN0b3JzCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzI5ODgKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZW1vdmUgaWZkZWZzIGFuZCBkaXJlY3QgdXNl
IG9mIHRhc2tfaWRfdG9rZW5fdC4KKyAgICAgICAgSW5zdGVhZCwgdXNlIFdlYkNvcmU6OlByb2Nl
c3NJZGVudGlmaWVyLiBUaGlzIHdheSB0aGUKKyAgICAgICAgY3Jvc3MtcGxhdGZvcm0gY29kZSBp
cyBlYXNpZXIgdG8gYXV0aG9yLgorCisgICAgICAgICogR1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9u
VG9XZWJQcm9jZXNzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6R1BVQ29ubmVjdGlvblRvV2ViUHJv
Y2Vzczo6R1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcyk6CisgICAgICAgICogR1BVUHJvY2Vzcy9H
UFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmg6CisgICAgICAgIChXZWJLaXQ6OkdQVUNvbm5lY3Rp
b25Ub1dlYlByb2Nlc3M6OndlYlByb2Nlc3NJZGVudGl0eSBjb25zdCk6CisgICAgICAgIChXZWJL
aXQ6OkdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OndlYlByb2Nlc3NJZGVudGl0eVRva2VuIGNv
bnN0KTogRGVsZXRlZC4KKyAgICAgICAgKiBHUFVQcm9jZXNzL2dyYXBoaWNzL0dQVVByb2Nlc3NH
cmFwaGljc0NvbnRleHRHTC5oOgorICAgICAgICAqIEdQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3Rl
R3JhcGhpY3NDb250ZXh0R0xDb2NvYS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUdyYXBo
aWNzQ29udGV4dEdMQ29jb2E6OlJlbW90ZUdyYXBoaWNzQ29udGV4dEdMQ29jb2EpOgorICAgICAg
ICAoV2ViS2l0OjpSZW1vdGVHcmFwaGljc0NvbnRleHRHTENvY29hOjpwbGF0Zm9ybVdvcmtRdWV1
ZUluaXRpYWxpemUpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVHcmFwaGljc0NvbnRleHRHTENv
Y29hOjpwcmVwYXJlRm9yRGlzcGxheSk6CisgICAgICAgICogR1BVUHJvY2Vzcy9ncmFwaGljcy9S
ZW1vdGVJbWFnZUJ1ZmZlci5oOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVJbWFnZUJ1ZmZlcjo6
c2V0T3duZXJzaGlwSWRlbnRpdHkpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVJbWFnZUJ1ZmZl
cjo6c2V0UHJvY2Vzc093bmVyc2hpcCk6IERlbGV0ZWQuCisgICAgICAgICogR1BVUHJvY2Vzcy9n
cmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmNwcDoKKyAgICAgICAgKFdlYktpdDo6UmVt
b3RlUmVuZGVyaW5nQmFja2VuZDo6UmVtb3RlUmVuZGVyaW5nQmFja2VuZCk6CisgICAgICAgIChX
ZWJLaXQ6OlJlbW90ZVJlbmRlcmluZ0JhY2tlbmQ6OmNyZWF0ZUltYWdlQnVmZmVyV2l0aFF1YWxp
ZmllZElkZW50aWZpZXIpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZW5kZXJpbmdCYWNrZW5k
OjpnZXREYXRhVVJMRm9ySW1hZ2VCdWZmZXJXaXRoUXVhbGlmaWVkSWRlbnRpZmllcik6CisgICAg
ICAgICogR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmg6CisgICAg
ICAgICogR1BVUHJvY2Vzcy93ZWJydGMvTGliV2ViUlRDQ29kZWNzUHJveHkubW06CisgICAgICAg
IChXZWJLaXQ6OkZ1bmN0aW9uPHZvaWQpOgorICAgICAgICAqIFNoYXJlZC9HUFVQcm9jZXNzQ29u
bmVjdGlvblBhcmFtZXRlcnMuaDoKKyAgICAgICAgKFdlYktpdDo6R1BVUHJvY2Vzc0Nvbm5lY3Rp
b25QYXJhbWV0ZXJzOjplbmNvZGUgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpHUFVQcm9jZXNz
Q29ubmVjdGlvblBhcmFtZXRlcnM6OmRlY29kZSk6CisgICAgICAgICogU2hhcmVkL1dlYkNvcmVB
cmd1bWVudENvZGVycy5jcHA6CisgICAgICAgICogU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVy
cy5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclBy
b3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6
U291cmNlUHJveHk6OlNvdXJjZVByb3h5KToKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhQ2Fw
dHVyZU1hbmFnZXJQcm94eTo6U291cmNlUHJveHk6OnNldFNob3VsZEFwcGx5Um90YXRpb24pOgor
ICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OjpjcmVhdGVNZWRp
YVNvdXJjZUZvckNhcHR1cmVEZXZpY2VXaXRoQ29uc3RyYWludHMpOgorICAgICAgICAoV2ViS2l0
OjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OjpjbG9uZSk6CisgICAgICAgIChXZWJLaXQ6
OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6OlNvdXJjZVByb3h5OjpzZXRXZWJQcm9jZXNz
SWRlbnRpdHlUb2tlbik6IERlbGV0ZWQuCisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL1VzZXJN
ZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkuaDoKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhQ2Fw
dHVyZU1hbmFnZXJQcm94eTo6Q29ubmVjdGlvblByb3h5OjpyZXNvdXJjZU93bmVyIGNvbnN0KToK
KyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6Q29ubmVjdGlv
blByb3h5Ojp3ZWJQcm9jZXNzSWRlbnRpdHlUb2tlbiBjb25zdCk6IERlbGV0ZWQuCisgICAgICAg
ICogV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvY29jb2EvSW1hZ2VCdWZmZXJTaGFyZWFibGVNYXBw
ZWRJT1N1cmZhY2VCYWNrZW5kLmNwcDoKKyAgICAgICAgKFdlYktpdDo6SW1hZ2VCdWZmZXJTaGFy
ZWFibGVNYXBwZWRJT1N1cmZhY2VCYWNrZW5kOjpzZXRPd25lcnNoaXBJZGVudGl0eSk6CisgICAg
ICAgIChXZWJLaXQ6OkltYWdlQnVmZmVyU2hhcmVhYmxlTWFwcGVkSU9TdXJmYWNlQmFja2VuZDo6
c2V0UHJvY2Vzc093bmVyc2hpcCk6IERlbGV0ZWQuCisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUv
Z3JhcGhpY3MvY29jb2EvSW1hZ2VCdWZmZXJTaGFyZWFibGVNYXBwZWRJT1N1cmZhY2VCYWNrZW5k
Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9jb2NvYS9XZWJQcm9jZXNzQ29jb2EubW06CisgICAg
ICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OnBsYXRmb3JtSW5pdGlhbGl6ZUdQVVByb2Nlc3NDb25u
ZWN0aW9uUGFyYW1ldGVycyk6CiAyMDIxLTExLTEwICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBs
ZS5jb20+CiAKICAgICAgICAgV2Ugc2hvdWxkIG5vdCBraWxsIGFsbCBXZWJDb250ZW50IHByb2Nl
c3NlcyB3aGVuZXZlciB0aGUgV2ViQXV0aG4gcHJvY2VzcyBjcmFzaGVzCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlIGIvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFr
ZQppbmRleCAzNjM1ZmM1YmNlOWVhZDQ5MGM4ZDk4NTRmZThlNWZkZTI5Njc0ZDIwLi44MWQ2ZjZh
YTMzMzk0NmIxN2M2YjJkYmQxZGZhMmQ1ZDgwMzYxMWJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9IZWFkZXJzLmNtYWtlCisrKyBiL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKQEAg
LTExNDAsNiArMTE0MCw3IEBAIHNldChXZWJDb3JlX1BSSVZBVEVfRlJBTUVXT1JLX0hFQURFUlMK
ICAgICBwbGF0Zm9ybS9Qb3B1cE1lbnVDbGllbnQuaAogICAgIHBsYXRmb3JtL1BvcHVwTWVudVN0
eWxlLmgKICAgICBwbGF0Zm9ybS9Qcm9jZXNzSWRlbnRpZmllci5oCisgICAgcGxhdGZvcm0vUHJv
Y2Vzc0lkZW50aXR5LmgKICAgICBwbGF0Zm9ybS9Qcm9jZXNzUXVhbGlmaWVkLmgKICAgICBwbGF0
Zm9ybS9Qcm9taXNlZEF0dGFjaG1lbnRJbmZvLmgKICAgICBwbGF0Zm9ybS9QdWJsaWNTdWZmaXgu
aApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQgYi9Tb3VyY2UvV2ViQ29y
ZS9Tb3VyY2VzLnR4dAppbmRleCA4YTExNGExMjM4ZDRmNjgxODg0NmYyMWMyZGIwYWMwMzAzYjFl
YjI5Li5hNWJiMjhjNmY3NTE2YWY2ZjhkM2VhYmRmZGEyYmVmZmE0ZTUyM2RlIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2Vz
LnR4dApAQCAtMTg3MCw2ICsxODcwLDcgQEAgcGxhdGZvcm0vUGxhdGZvcm1TdHJhdGVnaWVzLmNw
cAogcGxhdGZvcm0vUGxhdGZvcm1XaGVlbEV2ZW50LmNwcAogcGxhdGZvcm0vUHJldmlld0NvbnZl
cnRlci5jcHAKIHBsYXRmb3JtL1Byb2Nlc3NJZGVudGlmaWVyLmNwcAorcGxhdGZvcm0vUHJvY2Vz
c0lkZW50aXR5LmNwcAogcGxhdGZvcm0vUmVmZXJyZXJQb2xpY3kuY3BwCiBwbGF0Zm9ybS9SZW1v
dGVDb21tYW5kTGlzdGVuZXIuY3BwCiBwbGF0Zm9ybS9SdW50aW1lQXBwbGljYXRpb25DaGVja3Mu
Y3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2oKaW5kZXggMjk5YTg4NjYwZjFlYjAyMmNiZDhiNGVkYzIzMWIyMjkwOWJkYTE0NC4uMzc2NTMx
Mzk2OWI3Mjk4NDE2NGEzODBlYWE0MzU2ZjViYTY0ODNlMCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMjM2Myw2ICsyMzYzLDcg
QEAKIAkJN0I3MzExRkIyNUMwOTJCNzAwM0IyNzk2IC8qIFNjb3BlZEhpZ2hQZXJmb3JtYW5jZUdQ
VVJlcXVlc3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDdCNzMxMUZBMjVDMDkyQjcwMDNCMjc5NiAvKiBTY29wZWRIaWdoUGVyZm9ybWFuY2VHUFVSZXF1
ZXN0LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJ
N0I4RUQ1RjAyNkYwQzEzRDAwOEFDMDIzIC8qIENWVXRpbGl0aWVzLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3QjhFRDVFRDI2RjBDMTIzMDA4QUMwMjMg
LyogQ1ZVdGlsaXRpZXMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OwogCQk3QjkwNDE3MDI1NTAxMTQyMDA2RUVCOEMgLyogUmVtb3RlR3JhcGhpY3NDb250
ZXh0R0xQcm94eUJhc2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDdCOTA0MTZFMjU1MDExMDkwMDZFRUI4QyAvKiBSZW1vdGVHcmFwaGljc0NvbnRleHRH
TFByb3h5QmFzZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CisJCTdCQTdDNkMzMjczQkY2MkMwMDI5REZCRSAvKiBQcm9jZXNzSWRlbnRpdHkuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdCQTdDNkMxMjczQkY2
MkIwMDI5REZCRSAvKiBQcm9jZXNzSWRlbnRpdHkuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRF
UyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk3QkIzNEE0ODI1Mzc3NkNBMDAwMjlEMDggLyogR3Jh
cGhpY3NDb250ZXh0R0xJbWFnZUV4dHJhY3Rvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gN0JCMzRBNDUyNTM3NzZDNjAwMDI5RDA4IC8qIEdyYXBoaWNz
Q29udGV4dEdMSW1hZ2VFeHRyYWN0b3IuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQ
cml2YXRlLCApOyB9OyB9OwogCQk3QkI2ODBCQTI1QkExQkU0MDAyQjg3MzggLyogR3JhcGhpY3ND
aGVja3NNYWMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDdCQjY4MEI4MjVCQTFCRTQwMDJCODczOCAvKiBHcmFwaGljc0NoZWNrc01hYy5oICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTdCRTc0MjczODFGQTkw
NkZCQjRGMEYyQyAvKiBKU1NWR0dyYXBoaWNzRWxlbWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTUwQzRDMDJCRUQ4OTM2RjgxOEUyRjk5IC8qIEpT
U1ZHR3JhcGhpY3NFbGVtZW50LmggKi87IH07CkBAIC0xMTAyMSw2ICsxMTAyMiw4IEBACiAJCTdC
OEVENUVEMjZGMEMxMjMwMDhBQzAyMyAvKiBDVlV0aWxpdGllcy5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBDVlV0aWxpdGllcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk3QjhFRDVFRjI2RjBDMTIzMDA4QUMwMjMgLyogQ1ZVdGlsaXRpZXMubW0gKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBDVlV0aWxpdGllcy5tbTsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0I5MDQxNkUyNTUwMTEwOTAwNkVFQjhDIC8qIFJlbW90ZUdy
YXBoaWNzQ29udGV4dEdMUHJveHlCYXNlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbW90ZUdyYXBoaWNz
Q29udGV4dEdMUHJveHlCYXNlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTdCQTdD
NkJGMjczQkY2MkIwMDI5REZCRSAvKiBQcm9jZXNzSWRlbnRpdHkuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUHJvY2Vzc0lkZW50aXR5LmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJN0JBN0M2QzEyNzNCRjYyQjAwMjlERkJFIC8qIFByb2Nlc3NJZGVu
dGl0eS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQcm9jZXNzSWRlbnRpdHku
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0JCMzRBMTYyNTM0NUNCMjAwMDI5RDA4
IC8qIEFOR0xFVXRpbGl0aWVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEFO
R0xFVXRpbGl0aWVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdCQjM0QTQ1MjUz
Nzc2QzYwMDAyOUQwOCAvKiBHcmFwaGljc0NvbnRleHRHTEltYWdlRXh0cmFjdG9yLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IEdyYXBoaWNzQ29udGV4dEdMSW1hZ2VFeHRyYWN0b3IuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJN0JCMzRBNDcyNTM3NzZDNzAwMDI5RDA4IC8qIEdyYXBoaWNzQ29u
dGV4dEdMSW1hZ2VFeHRyYWN0b3IuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gR3JhcGhpY3NDb250
ZXh0R0xJbWFnZUV4dHJhY3Rvci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0y
ODk5MCw2ICsyODk5Myw4IEBACiAJCQkJQTFBREFGN0MyMzYwRkQzRTAwOUNCNzc2IC8qIFByZXZp
ZXdDb252ZXJ0ZXJQcm92aWRlci5oICovLAogCQkJCTUxRjY0NUQyMUZFQ0RCQzgwMEI1NERFRCAv
KiBQcm9jZXNzSWRlbnRpZmllci5jcHAgKi8sCiAJCQkJNTFGNjQ1RDMxRkVDREJDODAwQjU0REVE
IC8qIFByb2Nlc3NJZGVudGlmaWVyLmggKi8sCisJCQkJN0JBN0M2QkYyNzNCRjYyQjAwMjlERkJF
IC8qIFByb2Nlc3NJZGVudGl0eS5jcHAgKi8sCisJCQkJN0JBN0M2QzEyNzNCRjYyQjAwMjlERkJF
IC8qIFByb2Nlc3NJZGVudGl0eS5oICovLAogCQkJCTFDQzU0QUZCMjcwRjkyREEwMDVCRjhCRSAv
KiBQcm9jZXNzUXVhbGlmaWVkLmggKi8sCiAJCQkJRjQ3QTYzM0MxRkY2RkQ1MDAwODFCM0NDIC8q
IFByb21pc2VkQXR0YWNobWVudEluZm8uaCAqLywKIAkJCQkwMDgxRkVGRDE2QjBBMjQ0MDA4QUFB
N0EgLyogUHVibGljU3VmZml4LmggKi8sCkBAIC0zNTQ3Miw2ICszNTQ3Nyw3IEBACiAJCQkJQjcx
RkU2REYxMTA5MUNCMzAwREFFRjc3IC8qIFByaW50Q29udGV4dC5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJNkIwQTA3RjIyMUZBNEI1QzAwRDU3MzkxIC8qIFByaXZhdGVDbGlja01lYXN1cmVtZW50Lmgg
aW4gSGVhZGVycyAqLywKIAkJCQk1MUY2NDVENTFGRUNEQkNFMDBCNTRERUQgLyogUHJvY2Vzc0lk
ZW50aWZpZXIuaCBpbiBIZWFkZXJzICovLAorCQkJCTdCQTdDNkMzMjczQkY2MkMwMDI5REZCRSAv
KiBQcm9jZXNzSWRlbnRpdHkuaCBpbiBIZWFkZXJzICovLAogCQkJCUE4RUE3RUJDMEExOTQ1RDAw
MEE4RUY1RiAvKiBQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCTFD
QzU0QUZFMjcwRjk2QUUwMDVCRjhCRSAvKiBQcm9jZXNzUXVhbGlmaWVkLmggaW4gSGVhZGVycyAq
LywKIAkJCQlFNDIwNTAxNzIxNDE5MDFCMDA2NkVGM0IgLyogUHJvY2Vzc1dhcm1pbmcuaCBpbiBI
ZWFkZXJzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTG9nZ2luZy5o
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTG9nZ2luZy5oCmluZGV4IDNmYmU0MTdiZTk4MWI3
NWU3NzlkZTIzOGZjNGJlMDVhNmQ3MzBmYWEuLmRjMGY1MDk4Yjg3ZjE4NDU1MjViZTNjMGJhNDFm
NzY3NWIxNDA0N2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xvZ2dpbmcu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Mb2dnaW5nLmgKQEAgLTk0LDYgKzk0LDcg
QEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgIE0oUGx1Z2lucykgXAogICAgIE0oUG9wdXBCbG9j
a2luZykgXAogICAgIE0oUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQpIFwKKyAgICBNKFByb2Nlc3Mp
IFwKICAgICBNKFByb2dyZXNzKSBcCiAgICAgTShSZW1vdGVJbnNwZWN0b3IpIFwKICAgICBNKFJl
cXVlc3RBbmltYXRpb25GcmFtZSkgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vUHJvY2Vzc0lkZW50aXR5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Byb2Nlc3NJ
ZGVudGl0eS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzE5ZDAzNjg5MTMxNjgwMTg3NGRkMzcwZmIyYmIzMjEw
ZjM1NjY4OQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Byb2Nl
c3NJZGVudGl0eS5jcHAKQEAgLTAsMCArMSw3OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAy
MSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlks
IE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisg
KiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJQcm9j
ZXNzSWRlbnRpdHkuaCIKKworI2luY2x1ZGUgIkxvZ2dpbmcuaCIKKworI2lmIEhBVkUoVEFTS19J
REVOVElUWV9UT0tFTikKKyNpbmNsdWRlIDxtYWNoL21hY2guaD4KKyNlbmRpZgorCituYW1lc3Bh
Y2UgV2ViQ29yZSB7CisKK1JlZlB0cjxQcm9jZXNzSWRlbnRpdHk+IFByb2Nlc3NJZGVudGl0eTo6
Y3JlYXRlKEhhbmRsZSYmIGhhbmRsZSkKK3sKKyNpZiBIQVZFKFRBU0tfSURFTlRJVFlfVE9LRU4p
CisgICAgaWYgKGhhbmRsZSkKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBQcm9jZXNzSWRl
bnRpdHkoV1RGTW92ZShoYW5kbGUpKSk7CisjZWxzZQorICAgIFVOVVNFRF9QQVJBTShoYW5kbGUp
OworI2VuZGlmCisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKK1Byb2Nlc3NJZGVudGl0eTo6UHJv
Y2Vzc0lkZW50aXR5KEhhbmRsZSYmIGhhbmRsZSkKKyAgICA6IG1faGFuZGxlKFdURk1vdmUoaGFu
ZGxlKSkKK3sKK30KKworUHJvY2Vzc0lkZW50aXR5OjpIYW5kbGUgUHJvY2Vzc0lkZW50aXR5Ojpo
YW5kbGVGb3JDdXJyZW50UHJvY2VzcygpCit7CisgICAgUHJvY2Vzc0lkZW50aXR5OjpIYW5kbGUg
cmVzdWx0OworI2lmIEhBVkUoVEFTS19JREVOVElUWV9UT0tFTikKKyAgICB0YXNrX2lkX3Rva2Vu
X3QgaWRlbnRpdHlUb2tlbjsKKyAgICBrZXJuX3JldHVybl90IGtyID0gdGFza19jcmVhdGVfaWRl
bnRpdHlfdG9rZW4obWFjaF90YXNrX3NlbGYoKSwgJmlkZW50aXR5VG9rZW4pOworICAgIGlmIChr
ciA9PSBLRVJOX1NVQ0NFU1MpCisgICAgICAgIHJlc3VsdCA9IE1hY2hTZW5kUmlnaHQ6OmFkb3B0
KGlkZW50aXR5VG9rZW4pOworICAgIGVsc2UKKyAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoUHJv
Y2VzcywgInRhc2tfY3JlYXRlX2lkZW50aXR5X3Rva2VuKCkgZmFpbGVkOiAle3ByaXZhdGV9cyAo
JXgpIiwgbWFjaF9lcnJvcl9zdHJpbmcoa3IpLCBrcik7CisjZW5kaWYKKyAgICByZXR1cm4gcmVz
dWx0OworfQorCitjb25zdCBQcm9jZXNzSWRlbnRpdHk6OkhhbmRsZSYgUHJvY2Vzc0lkZW50aXR5
OjpoYW5kbGUoKSBjb25zdAoreworICAgIHJldHVybiBtX2hhbmRsZTsKK30KKworI2lmIEhBVkUo
VEFTS19JREVOVElUWV9UT0tFTikKK3Rhc2tfaWRfdG9rZW5fdCBQcm9jZXNzSWRlbnRpdHk6OnRh
c2tJZFRva2VuKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9oYW5kbGUuc2VuZFJpZ2h0KCk7Cit9
CisjZW5kaWYKKworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUHJvY2Vz
c0lkZW50aXR5LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Qcm9jZXNzSWRlbnRpdHkuaApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi4wY2EwMTkzYjEyZTU0NDM2YzZmZWJiYzZlYmUzNGUwMTYzNzYwZmEwCi0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUHJvY2Vzc0lkZW50aXR5LmgK
QEAgLTAsMCArMSw2MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVO
VCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IK
KyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSA8d3RmL1RocmVhZFNhZmVSZWZDb3VudGVk
Lmg+CisKKyNpZiBIQVZFKFRBU0tfSURFTlRJVFlfVE9LRU4pCisjaW5jbHVkZSA8d3RmL01hY2hT
ZW5kUmlnaHQuaD4KKyNlbHNlCisjaW5jbHVkZSA8dmFyaWFudD4KKyNlbmRpZgorCituYW1lc3Bh
Y2UgV2ViQ29yZSB7CisKKy8vIE9iamVjdCB0byBhY2Nlc3MgcHJvb2Ygb2YgcHJvY2VzcyBpZGVu
dGl0eS4KKy8vIFByb2Nlc3NJZGVudGlmaWVyIGlkZW50aWZpZXMgYSBwcm9jZXNzLgorLy8gUHJv
Y2Vzc0lkZW50aXR5IGdyYW50cyBhY2Nlc3MgdG8gdGhlIGlkZW50aXR5LgorY2xhc3MgV0VCQ09S
RV9FWFBPUlQgUHJvY2Vzc0lkZW50aXR5IGZpbmFsIDogcHVibGljIFRocmVhZFNhZmVSZWZDb3Vu
dGVkPFByb2Nlc3NJZGVudGl0eT4geworcHVibGljOgorI2lmIEhBVkUoVEFTS19JREVOVElUWV9U
T0tFTikKKyAgICB1c2luZyBIYW5kbGUgPSBNYWNoU2VuZFJpZ2h0OworI2Vsc2UKKyAgICB1c2lu
ZyBIYW5kbGUgPSBzdGQ6Om1vbm9zdGF0ZTsKKyNlbmRpZgorICAgIHN0YXRpYyBSZWZQdHI8UHJv
Y2Vzc0lkZW50aXR5PiBjcmVhdGUoSGFuZGxlJiYpOworICAgIHN0YXRpYyBIYW5kbGUgaGFuZGxl
Rm9yQ3VycmVudFByb2Nlc3MoKTsKKyAgICBjb25zdCBIYW5kbGUmIGhhbmRsZSgpIGNvbnN0Owor
CisjaWYgSEFWRShUQVNLX0lERU5USVRZX1RPS0VOKQorICAgIHRhc2tfaWRfdG9rZW5fdCB0YXNr
SWRUb2tlbigpIGNvbnN0OworI2VuZGlmCitwcml2YXRlOgorICAgIFByb2Nlc3NJZGVudGl0eShI
YW5kbGUmJik7CisKKyAgICBIYW5kbGUgbV9oYW5kbGU7Cit9OworCit9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9SZW1vdGVWaWRlb1NhbXBsZS5oIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvUmVtb3RlVmlkZW9TYW1wbGUuaAppbmRleCBh
NjE3MGIzMjhmYzQ0YWNlNjkzZGNkYjM1ZWU0ZDNjZTY4NzMzOGExLi4wZjViYWVhODU2ZTNmMWE4
Y2UxNjViMjAzODY1Yzk2NDQzNTQyNTYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9SZW1vdGVWaWRlb1NhbXBsZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL1JlbW90ZVZpZGVvU2FtcGxlLmgKQEAgLTM3LDYgKzM3LDggQEAgdHlw
ZWRlZiBzdHJ1Y3QgX19DVkJ1ZmZlciogQ1ZQaXhlbEJ1ZmZlclJlZjsKIAogbmFtZXNwYWNlIFdl
YkNvcmUgewogCitjbGFzcyBQcm9jZXNzSWRlbnRpdHk7CisKIGNsYXNzIFJlbW90ZVZpZGVvU2Ft
cGxlIHsKIHB1YmxpYzoKICAgICBSZW1vdGVWaWRlb1NhbXBsZSgpID0gZGVmYXVsdDsKQEAgLTQ4
LDkgKzUwLDcgQEAgcHVibGljOgogICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBzdGQ6OnVuaXF1
ZV9wdHI8UmVtb3RlVmlkZW9TYW1wbGU+IGNyZWF0ZShSZXRhaW5QdHI8Q1ZQaXhlbEJ1ZmZlclJl
Zj4mJiwgTWVkaWFUaW1lJiYgcHJlc2VudGF0aW9uVGltZSwgTWVkaWFTYW1wbGU6OlZpZGVvUm90
YXRpb24gPSBNZWRpYVNhbXBsZTo6VmlkZW9Sb3RhdGlvbjo6Tm9uZSk7CiAgICAgV0VCQ09SRV9F
WFBPUlQgSU9TdXJmYWNlUmVmIHN1cmZhY2UoKSBjb25zdDsKIAotI2lmIEhBVkUoSU9TVVJGQUNF
X1NFVF9PV05FUlNISVBfSURFTlRJVFkpCi0gICAgdm9pZCBzZXRPd25lcnNoaXBJZGVudGl0eSh0
YXNrX2lkX3Rva2VuX3QgbmV3T3duZXIpOwotI2VuZGlmCisgICAgdm9pZCBzZXRPd25lcnNoaXBJ
ZGVudGl0eShQcm9jZXNzSWRlbnRpdHkqIHJlc291cmNlT3duZXIpOwogCiAgICAgY29uc3QgTWVk
aWFUaW1lJiB0aW1lKCkgY29uc3QgeyByZXR1cm4gbV90aW1lOyB9CiAgICAgdWludDMyX3Qgdmlk
ZW9Gb3JtYXQoKSBjb25zdCB7IHJldHVybiBtX3ZpZGVvRm9ybWF0OyB9CkBAIC0xMTksMTMgKzEx
OSwxMSBAQCBwcml2YXRlOgogICAgIGJvb2wgbV9taXJyb3JlZCB7IGZhbHNlIH07CiB9OwogCi0j
aWYgSEFWRShJT1NVUkZBQ0VfU0VUX09XTkVSU0hJUF9JREVOVElUWSkKLWlubGluZSB2b2lkIFJl
bW90ZVZpZGVvU2FtcGxlOjpzZXRPd25lcnNoaXBJZGVudGl0eSh0YXNrX2lkX3Rva2VuX3QgbmV3
T3duZXIpCitpbmxpbmUgdm9pZCBSZW1vdGVWaWRlb1NhbXBsZTo6c2V0T3duZXJzaGlwSWRlbnRp
dHkoUHJvY2Vzc0lkZW50aXR5KiByZXNvdXJjZU93bmVyKQogewogICAgIGlmIChtX2lvU3VyZmFj
ZSkKLSAgICAgICAgbV9pb1N1cmZhY2UtPnNldE93bmVyc2hpcElkZW50aXR5KG5ld093bmVyKTsK
KyAgICAgICAgbV9pb1N1cmZhY2UtPnNldE93bmVyc2hpcElkZW50aXR5KHJlc291cmNlT3duZXIp
OwogfQotI2VuZGlmCiAKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY29jb2EvR3JhcGhpY3NDb250ZXh0R0xPcGVuR0xDb2NvYS5tbSBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0dyYXBoaWNzQ29udGV4dEdMT3BlbkdMQ29j
b2EubW0KaW5kZXggZmI3MjNkZDQyMmRlOWI5ZGFkYTllNGNiODk3ZDA2MWNiZTZkNjAzZS4uMTk3
OWRhNTY3MjRiYTBkMjVhZGE1ZDE0MWI2M2Y1YWI1ZjFlN2E5NCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvR3JhcGhpY3NDb250ZXh0R0xPcGVuR0xD
b2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9HcmFw
aGljc0NvbnRleHRHTE9wZW5HTENvY29hLm1tCkBAIC0xOTMsOCArMTkzLDkgQEAgc3RhdGljIGJv
b2wgbmVlZHNFQUdMT25NYWMoKQogfQogI2VuZGlmCiAKLUdyYXBoaWNzQ29udGV4dEdMT3BlbkdM
OjpHcmFwaGljc0NvbnRleHRHTE9wZW5HTChHcmFwaGljc0NvbnRleHRHTEF0dHJpYnV0ZXMgYXR0
cnMpCitHcmFwaGljc0NvbnRleHRHTE9wZW5HTDo6R3JhcGhpY3NDb250ZXh0R0xPcGVuR0woR3Jh
cGhpY3NDb250ZXh0R0xBdHRyaWJ1dGVzJiYgYXR0cnMsIFJlZlB0cjxQcm9jZXNzSWRlbnRpdHk+
JiYgcmVzb3VyY2VPd25lcikKICAgICA6IEdyYXBoaWNzQ29udGV4dEdMKGF0dHJzKQorICAgICwg
bV9yZXNvdXJjZU93bmVyKFdURk1vdmUocmVzb3VyY2VPd25lcikpCiB7CiAgICAgbV9pc0Zvcldl
YkdMMiA9IGF0dHJzLndlYkdMVmVyc2lvbiA9PSBHcmFwaGljc0NvbnRleHRHTFdlYkdMVmVyc2lv
bjo6V2ViR0wyOwogICAgIGlmIChhdHRycy51c2VNZXRhbCAmJiAhcGxhdGZvcm1TdXBwb3J0c01l
dGFsKG1faXNGb3JXZWJHTDIpKSB7CkBAIC01NjUsNiArNTY2LDggQEAgYm9vbCBHcmFwaGljc0Nv
bnRleHRHTE9wZW5HTDo6YWxsb2NhdGVBbmRCaW5kRGlzcGxheUJ1ZmZlckJhY2tpbmcoKQogICAg
IGF1dG8gYmFja2luZyA9IElPU3VyZmFjZTo6Y3JlYXRlKGdldEludGVybmFsRnJhbWVidWZmZXJT
aXplKCksIERlc3RpbmF0aW9uQ29sb3JTcGFjZTo6U1JHQigpKTsKICAgICBpZiAoIWJhY2tpbmcp
CiAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBpZiAobV9yZXNvdXJjZU93bmVyKQorICAgICAg
ICBiYWNraW5nLT5zZXRPd25lcnNoaXBJZGVudGl0eShtX3Jlc291cmNlT3duZXIuZ2V0KCkpOwog
CiAgICAgYmFja2luZy0+bWlncmF0ZUNvbG9yU3BhY2VUb1Byb3BlcnRpZXMoKTsKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvSU9TdXJmYWNlLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9JT1N1cmZhY2UuaAppbmRl
eCA1NjUyNDc4MjJkYmEyOWY3NjAwYjk0MDdlNmY0YWNiOGMxYTA2YWFjLi4wYzQzY2E0ZjgwNGQy
NjBjNjEwNWViOTJiNjExMDkxZTJjMjUzMmEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9JT1N1cmZhY2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9JT1N1cmZhY2UuaApAQCAtNDYsNiArNDYsNyBAQCBuYW1l
c3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBHcmFwaGljc0NvbnRleHQ7CiBjbGFzcyBIb3N0V2luZG93
OwogY2xhc3MgSW1hZ2VCdWZmZXI7CitjbGFzcyBQcm9jZXNzSWRlbnRpdHk7CiAKIGVudW0gY2xh
c3MgUGl4ZWxGb3JtYXQgOiB1aW50OF90OwogZW51bSBjbGFzcyBWb2xhdGlsaXR5U3RhdGUgOiB1
aW50OF90OwpAQCAtMTU5LDkgKzE2MCw3IEBAIHB1YmxpYzoKICAgICBXRUJDT1JFX0VYUE9SVCBz
dGF0aWMgdm9pZCBjb252ZXJ0VG9Gb3JtYXQoc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OklPU3Vy
ZmFjZT4mJiBpblN1cmZhY2UsIEZvcm1hdCwgRnVuY3Rpb248dm9pZChzdGQ6OnVuaXF1ZV9wdHI8
V2ViQ29yZTo6SU9TdXJmYWNlPik+JiYpOwogI2VuZGlmIC8vIEhBVkUoSU9TVVJGQUNFX0FDQ0VM
RVJBVE9SKQogCi0jaWYgSEFWRShJT1NVUkZBQ0VfU0VUX09XTkVSU0hJUF9JREVOVElUWSkKLSAg
ICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldE93bmVyc2hpcElkZW50aXR5KHRhc2tfaWRfdG9rZW5f
dCBuZXdPd25lcik7Ci0jZW5kaWYKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldE93bmVyc2hp
cElkZW50aXR5KFByb2Nlc3NJZGVudGl0eSogcmVzb3VyY2VPd25lcik7CiAKICAgICB2b2lkIG1p
Z3JhdGVDb2xvclNwYWNlVG9Qcm9wZXJ0aWVzKCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0lPU3VyZmFjZS5tbSBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0lPU3VyZmFjZS5tbQppbmRleCAwMTExNjVjZTExYWJj
ZTY3NWM0YjQ3YmY5MTVkNGM4MWU2Y2VlOTk1Li4xNWJmNjhmN2ZlNWE2OTg2N2ZjYzlkNTZhNmU1
YmQ0ZjZiYzNkMzAyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jb2NvYS9JT1N1cmZhY2UubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY29jb2EvSU9TdXJmYWNlLm1tCkBAIC0zNCw2ICszNCw3IEBACiAjaW1wb3J0ICJJbWFnZUJ1
ZmZlci5oIgogI2ltcG9ydCAiTG9nZ2luZy5oIgogI2ltcG9ydCAiUGxhdGZvcm1TY3JlZW4uaCIK
KyNpbXBvcnQgIlByb2Nlc3NJZGVudGl0eS5oIgogI2ltcG9ydCA8cGFsL3NwaS9jZy9Db3JlR3Jh
cGhpY3NTUEkuaD4KICNpbXBvcnQgPHd0Zi9Bc3NlcnRpb25zLmg+CiAjaW1wb3J0IDx3dGYvTWFj
aFNlbmRSaWdodC5oPgpAQCAtNDg0LDE0ICs0ODUsMTcgQEAgdm9pZCBJT1N1cmZhY2U6OmNvbnZl
cnRUb0Zvcm1hdChzdGQ6OnVuaXF1ZV9wdHI8SU9TdXJmYWNlPiYmIGluU3VyZmFjZSwgRm9ybWF0
IGYKIAogI2VuZGlmIC8vIEhBVkUoSU9TVVJGQUNFX0FDQ0VMRVJBVE9SKQogCi0jaWYgSEFWRShJ
T1NVUkZBQ0VfU0VUX09XTkVSU0hJUF9JREVOVElUWSkKLXZvaWQgSU9TdXJmYWNlOjpzZXRPd25l
cnNoaXBJZGVudGl0eSh0YXNrX2lkX3Rva2VuX3QgbmV3T3duZXIpCit2b2lkIElPU3VyZmFjZTo6
c2V0T3duZXJzaGlwSWRlbnRpdHkoUHJvY2Vzc0lkZW50aXR5KiByZXNvdXJjZU93bmVyKQogewot
ICAgIGF1dG8gcmVzdWx0ID0gSU9TdXJmYWNlU2V0T3duZXJzaGlwSWRlbnRpdHkobV9zdXJmYWNl
LmdldCgpLCBuZXdPd25lciwga0lPU3VyZmFjZU1lbW9yeUxlZGdlclRhZ0dyYXBoaWNzLCAwKTsK
KyNpZiBIQVZFKElPU1VSRkFDRV9TRVRfT1dORVJTSElQX0lERU5USVRZKSAmJiBIQVZFKFRBU0tf
SURFTlRJVFlfVE9LRU4pCisgICAgdGFza19pZF90b2tlbl90IG93bmVyVGFza0lkVG9rZW4gPSBy
ZXNvdXJjZU93bmVyID8gcmVzb3VyY2VPd25lci0+dGFza0lkVG9rZW4oKSA6IDA7CisgICAgYXV0
byByZXN1bHQgPSBJT1N1cmZhY2VTZXRPd25lcnNoaXBJZGVudGl0eShtX3N1cmZhY2UuZ2V0KCks
IG93bmVyVGFza0lkVG9rZW4sIGtJT1N1cmZhY2VNZW1vcnlMZWRnZXJUYWdHcmFwaGljcywgMCk7
CiAgICAgaWYgKHJlc3VsdCAhPSBrSU9SZXR1cm5TdWNjZXNzKQotICAgICAgICBSRUxFQVNFX0xP
R19FUlJPUihJT1N1cmZhY2UsICJJT1N1cmZhY2U6OnNldE93bmVyc2hpcElkZW50aXR5OiBGYWls
ZWQgdG8gY2xhaW0gb3duZXJzaGlwIG9mIElPU3VyZmFjZSAlcCwgbmV3T3duZXI6ICVkLCBlcnJv
cjogJWQiLCBtX3N1cmZhY2UuZ2V0KCksIChpbnQpbmV3T3duZXIsIHJlc3VsdCk7Ci19CisgICAg
ICAgIFJFTEVBU0VfTE9HX0VSUk9SKElPU3VyZmFjZSwgIklPU3VyZmFjZTo6c2V0T3duZXJzaGlw
SWRlbnRpdHk6IEZhaWxlZCB0byBjbGFpbSBvd25lcnNoaXAgb2YgSU9TdXJmYWNlICVwLCB0YXNr
IGlkIHRva2VuOiAlZCwgZXJyb3I6ICVkIiwgbV9zdXJmYWNlLmdldCgpLCAoaW50KW93bmVyVGFz
a0lkVG9rZW4sIHJlc3VsdCk7CisjZWxzZQorICAgIFVOVVNFRF9QQVJBTShyZXNvdXJjZU93bmVy
KTsKICNlbmRpZgorfQogCiB2b2lkIElPU3VyZmFjZTo6bWlncmF0ZUNvbG9yU3BhY2VUb1Byb3Bl
cnRpZXMoKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y29jb2EvV2ViUHJvY2Vzc0dyYXBoaWNzQ29udGV4dEdMT3BlbkdMQ29jb2EubW0gYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9XZWJQcm9jZXNzR3JhcGhpY3NDb250ZXh0
R0xPcGVuR0xDb2NvYS5tbQppbmRleCAyNTYyNWVkYmZlMjU0ZTM3NWZlZjE2OTgxNjlmNTJlZmQ0
YWE3NzIyLi5jYWM0NGExZGI0ZGZjMGY3MTcwNGM3NDE4NGRhNDYzNzJiMzEyM2FmIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9XZWJQcm9jZXNzR3Jh
cGhpY3NDb250ZXh0R0xPcGVuR0xDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jb2NvYS9XZWJQcm9jZXNzR3JhcGhpY3NDb250ZXh0R0xPcGVuR0xDb2NvYS5t
bQpAQCAtNTcsNyArNTcsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBwcmVwYXJlRm9yRGlzcGxheSgp
IGZpbmFsOwogcHJpdmF0ZToKICAgICBXZWJQcm9jZXNzR3JhcGhpY3NDb250ZXh0R0xPcGVuR0wo
R3JhcGhpY3NDb250ZXh0R0xBdHRyaWJ1dGVzIGF0dHJpYnV0ZXMpCi0gICAgICAgIDogR3JhcGhp
Y3NDb250ZXh0R0xPcGVuR0woYXR0cmlidXRlcykKKyAgICAgICAgOiBHcmFwaGljc0NvbnRleHRH
TE9wZW5HTChXVEZNb3ZlKGF0dHJpYnV0ZXMpLCB7IH0pCiAgICAgICAgICwgbV93ZWJHTExheWVy
KGNyZWF0ZVdlYkdMTGF5ZXIoYXR0cmlidXRlcykpCiAgICAgewogICAgIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HcmFwaGljc0NvbnRleHRH
TE9wZW5HTC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dyYXBo
aWNzQ29udGV4dEdMT3BlbkdMLmgKaW5kZXggMzgyNzNiMDcyYjU2ZDNmZGEyYmNkZTM0OGIzZTBm
NzQyYzIwMDVlNS4uZmUxM2VhZmY0ZDczZmE2NzAxNjM2MGU4ZDJiOGNmOGQzM2FjOGU1MyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dyYXBoaWNz
Q29udGV4dEdMT3BlbkdMLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
b3BlbmdsL0dyYXBoaWNzQ29udGV4dEdMT3BlbkdMLmgKQEAgLTI4LDYgKzI4LDcgQEAKICNpZiBF
TkFCTEUoV0VCR0wpCiAKICNpbmNsdWRlICJHcmFwaGljc0NvbnRleHRHTC5oIgorI2luY2x1ZGUg
IlByb2Nlc3NJZGVudGl0eS5oIgogI2luY2x1ZGUgPG1lbW9yeT4KICNpbmNsdWRlIDx3dGYvSGFz
aENvdW50ZWRTZXQuaD4KICNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgpAQCAtNTQzLDggKzU0NCw5
IEBAIHB1YmxpYzoKICNlbmRpZgogCiBwcm90ZWN0ZWQ6Ci0gICAgR3JhcGhpY3NDb250ZXh0R0xP
cGVuR0woR3JhcGhpY3NDb250ZXh0R0xBdHRyaWJ1dGVzKTsKKyAgICBHcmFwaGljc0NvbnRleHRH
TE9wZW5HTChHcmFwaGljc0NvbnRleHRHTEF0dHJpYnV0ZXMmJiwgUmVmUHRyPFByb2Nlc3NJZGVu
dGl0eT4mJiByZXNvdXJjZU93bmVyKTsKICAgICBib29sIGlzVmFsaWQoKSBjb25zdDsKKyAgICBS
ZWZQdHI8UHJvY2Vzc0lkZW50aXR5PiBtX3Jlc291cmNlT3duZXI7CiAjaWYgUExBVEZPUk0oQ09D
T0EpCiAgICAgR3JhcGhpY3NDb250ZXh0R0xJT1N1cmZhY2VTd2FwQ2hhaW4gbV9zd2FwQ2hhaW47
CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3Rl
eG1hcC9HcmFwaGljc0NvbnRleHRHTFRleHR1cmVNYXBwZXIuY3BwIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL0dyYXBoaWNzQ29udGV4dEdMVGV4dHVyZU1hcHBlci5j
cHAKaW5kZXggZTI4NTFjMmUzZDIyMTc3MTY5NGJkZDZmMTJmMGU1Zjc4OTljNzU1Yi4uODMwNjM3
YzEyYTdkYWNiOTMyMzc0Y2U0OWYxMjQ4OTc1OGExMWFmNSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL0dyYXBoaWNzQ29udGV4dEdMVGV4dHVyZU1h
cHBlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL0dy
YXBoaWNzQ29udGV4dEdMVGV4dHVyZU1hcHBlci5jcHAKQEAgLTg1LDcgKzg1LDcgQEAgUmVmUHRy
PEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMPiBHcmFwaGljc0NvbnRleHRHTE9wZW5HTDo6Y3JlYXRl
KEdyYXBoaWNzQ29udGV4dEcKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKICAgICAvLyBDcmVh
dGUgdGhlIEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMIG9iamVjdCBmaXJzdCBpbiBvcmRlciB0byBl
c3RhYmxpc3QgYSBjdXJyZW50IGNvbnRleHQgb24gdGhpcyB0aHJlYWQuCi0gICAgYXV0byBjb250
ZXh0ID0gYWRvcHRSZWYobmV3IEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMKGF0dHJpYnV0ZXMpKTsK
KyAgICBhdXRvIGNvbnRleHQgPSBhZG9wdFJlZihuZXcgR3JhcGhpY3NDb250ZXh0R0xPcGVuR0wo
V1RGTW92ZShhdHRyaWJ1dGVzKSwgeyB9KSk7CiAKICNpZiBVU0UoTElCRVBPWFkpICYmIFVTRShP
UEVOR0xfRVMpICYmIEVOQUJMRShXRUJHTDIpCiAgICAgLy8gQmFpbCBpZiBHTEVTMyB3YXMgcmVx
dWVzdGVkIGJ1dCBjYW5ub3QgYmUgcHJvdmlkZWQuCkBAIC05OSw4ICs5OSw5IEBAIFJlZlB0cjxH
cmFwaGljc0NvbnRleHRHTE9wZW5HTD4gR3JhcGhpY3NDb250ZXh0R0xPcGVuR0w6OmNyZWF0ZShH
cmFwaGljc0NvbnRleHRHCiB9CiAKICNpZiBVU0UoQU5HTEUpCi1HcmFwaGljc0NvbnRleHRHTE9w
ZW5HTDo6R3JhcGhpY3NDb250ZXh0R0xPcGVuR0woR3JhcGhpY3NDb250ZXh0R0xBdHRyaWJ1dGVz
IGF0dHJpYnV0ZXMpCitHcmFwaGljc0NvbnRleHRHTE9wZW5HTDo6R3JhcGhpY3NDb250ZXh0R0xP
cGVuR0woR3JhcGhpY3NDb250ZXh0R0xBdHRyaWJ1dGVzJiYgYXR0cmlidXRlcywgUmVmUHRyPFBy
b2Nlc3NJZGVudGl0eT4mJiByZXNvdXJjZU93bmVyKQogICAgIDogR3JhcGhpY3NDb250ZXh0R0wo
YXR0cmlidXRlcykKKyAgICAsIG1fcmVzb3VyY2VPd25lcihXVEZNb3ZlKHJlc291cmNlT3duZXIp
KQogewogI2lmIEVOQUJMRShXRUJHTDIpCiAgICAgbV9pc0ZvcldlYkdMMiA9IGF0dHJpYnV0ZXMu
d2ViR0xWZXJzaW9uID09IEdyYXBoaWNzQ29udGV4dEdMV2ViR0xWZXJzaW9uOjpXZWJHTDI7CkBA
IC0xNjgsOCArMTY5LDkgQEAgR3JhcGhpY3NDb250ZXh0R0xPcGVuR0w6OkdyYXBoaWNzQ29udGV4
dEdMT3BlbkdMKEdyYXBoaWNzQ29udGV4dEdMQXR0cmlidXRlcyBhdHQKICAgICBnbDo6Q2xlYXJD
b2xvcigwLCAwLCAwLCAwKTsKIH0KICNlbHNlCi1HcmFwaGljc0NvbnRleHRHTE9wZW5HTDo6R3Jh
cGhpY3NDb250ZXh0R0xPcGVuR0woR3JhcGhpY3NDb250ZXh0R0xBdHRyaWJ1dGVzIGF0dHJpYnV0
ZXMpCitHcmFwaGljc0NvbnRleHRHTE9wZW5HTDo6R3JhcGhpY3NDb250ZXh0R0xPcGVuR0woR3Jh
cGhpY3NDb250ZXh0R0xBdHRyaWJ1dGVzJiYgYXR0cmlidXRlcywgUmVmUHRyPFByb2Nlc3NJZGVu
dGl0eT4mJiByZXNvdXJjZU93bmVyKQogICAgIDogR3JhcGhpY3NDb250ZXh0R0woYXR0cmlidXRl
cykKKyAgICAsIG1fcmVzb3VyY2VPd25lcihXVEZNb3ZlKHJlc291cmNlT3duZXIpKQogewogI2lm
IFVTRShOSUNPU0lBKQogICAgIG1fbmljb3NpYUxheWVyID0gbWFrZVVuaXF1ZTxOaWNvc2lhOjpH
Q0dMTGF5ZXI+KCp0aGlzKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9H
UFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9H
UFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcAppbmRleCA1MmFlODgxOTM3MWEzZWRkNjBjZDcy
MGNkMDg0YmIzYzg1N2ZhN2NkLi4xZWY5YTZiMjU4MTYzMzdmMzhkOWJiMGIzYzc0ODlmY2QxYzk0
ODVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvR1BVQ29ubmVjdGlvblRv
V2ViUHJvY2Vzcy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVUNvbm5lY3Rp
b25Ub1dlYlByb2Nlc3MuY3BwCkBAIC0xOTksMTIgKzE5OSwxMCBAQCBwcml2YXRlOgogICAgIH0K
ICNlbmRpZgogCi0jaWYgSEFWRShJT1NVUkZBQ0VfU0VUX09XTkVSU0hJUF9JREVOVElUWSkKLSAg
ICBzdGQ6Om9wdGlvbmFsPHRhc2tfaWRfdG9rZW5fdD4gd2ViUHJvY2Vzc0lkZW50aXR5VG9rZW4o
KSBjb25zdCBmaW5hbAorICAgIFJlZlB0cjxQcm9jZXNzSWRlbnRpdHk+IHJlc291cmNlT3duZXIo
KSBjb25zdCBmaW5hbAogICAgIHsKLSAgICAgICAgcmV0dXJuIG1fcHJvY2Vzcy53ZWJQcm9jZXNz
SWRlbnRpdHlUb2tlbigpOworICAgICAgICByZXR1cm4gbV9wcm9jZXNzLndlYlByb2Nlc3NJZGVu
dGl0eSgpOwogICAgIH0KLSNlbmRpZgogCiAgICAgR1BVQ29ubmVjdGlvblRvV2ViUHJvY2VzcyYg
bV9wcm9jZXNzOwogfTsKQEAgLTIyMCw5ICsyMTgsNyBAQCBHUFVDb25uZWN0aW9uVG9XZWJQcm9j
ZXNzOjpHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzKEdQVVByb2Nlc3MmIGdwdVByb2Nlc3MsIFdl
YgogICAgIDogbV9jb25uZWN0aW9uKElQQzo6Q29ubmVjdGlvbjo6Y3JlYXRlU2VydmVyQ29ubmVj
dGlvbihjb25uZWN0aW9uSWRlbnRpZmllciwgKnRoaXMpKQogICAgICwgbV9ncHVQcm9jZXNzKGdw
dVByb2Nlc3MpCiAgICAgLCBtX3dlYlByb2Nlc3NJZGVudGlmaWVyKHdlYlByb2Nlc3NJZGVudGlm
aWVyKQotI2lmIEhBVkUoVEFTS19JREVOVElUWV9UT0tFTikKLSAgICAsIG1fd2ViUHJvY2Vzc0lk
ZW50aXR5VG9rZW4oV1RGTW92ZShwYXJhbWV0ZXJzLndlYlByb2Nlc3NJZGVudGl0eVRva2VuKSkK
LSNlbmRpZgorICAgICwgbV93ZWJQcm9jZXNzSWRlbnRpdHkoUHJvY2Vzc0lkZW50aXR5OjpjcmVh
dGUoV1RGTW92ZShwYXJhbWV0ZXJzLndlYlByb2Nlc3NJZGVudGl0eUhhbmRsZSkpKQogICAgICwg
bV9yZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eShtYWtlVW5pcXVlUmVmPFJlbW90ZU1lZGlh
UGxheWVyTWFuYWdlclByb3h5PigqdGhpcykpCiAgICAgLCBtX3Nlc3Npb25JRChzZXNzaW9uSUQp
CiAjaWYgUExBVEZPUk0oQ09DT0EpICYmIFVTRShMSUJXRUJSVEMpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L0dQVVByb2Nlc3MvR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oIGIvU291cmNl
L1dlYktpdC9HUFVQcm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaAppbmRleCBhZTc5
NTA1MjU4NjBkZTNjZjZhMmIxNzg4ZmUzNWE1ZWFiZGE1NjdkLi5lMDQyOGI4NWU1Y2ZkYWMyYzQw
NjVhOTEwM2I5YzU1ZTZiNmNiNWE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nl
c3MvR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJv
Y2Vzcy9HUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmgKQEAgLTM5LDYgKzM5LDcgQEAKICNpbmNs
dWRlIDxXZWJDb3JlL05vd1BsYXlpbmdNYW5hZ2VyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9QYWdl
SWRlbnRpZmllci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUHJvY2Vzc0lkZW50aWZpZXIuaD4KKyNp
bmNsdWRlIDxXZWJDb3JlL1Byb2Nlc3NJZGVudGl0eS5oPgogI2luY2x1ZGUgPHBhbC9TZXNzaW9u
SUQuaD4KICNpbmNsdWRlIDx3dGYvTG9nZ2VyLmg+CiAjaW5jbHVkZSA8d3RmL01hY2hTZW5kUmln
aHQuaD4KQEAgLTE0NywxMCArMTQ4LDcgQEAgcHVibGljOgogICAgIHZvaWQgZGlzcGF0Y2hEaXNw
bGF5V2FzUmVjb25maWd1cmVkRm9yVGVzdGluZygpIHsgZGlzcGF0Y2hEaXNwbGF5V2FzUmVjb25m
aWd1cmVkKCk7IH07CiAjZW5kaWYKIAotI2lmIEhBVkUoVEFTS19JREVOVElUWV9UT0tFTikKLSAg
ICB0YXNrX2lkX3Rva2VuX3Qgd2ViUHJvY2Vzc0lkZW50aXR5VG9rZW4oKSBjb25zdCB7IHJldHVy
biBzdGF0aWNfY2FzdDx0YXNrX2lkX3Rva2VuX3Q+KG1fd2ViUHJvY2Vzc0lkZW50aXR5VG9rZW4u
c2VuZFJpZ2h0KCkpOyB9Ci0jZW5kaWYKLQorICAgIFJlZlB0cjxXZWJDb3JlOjpQcm9jZXNzSWRl
bnRpdHk+IHdlYlByb2Nlc3NJZGVudGl0eSgpIGNvbnN0IHsgcmV0dXJuIG1fd2ViUHJvY2Vzc0lk
ZW50aXR5OyB9CiAjaWYgRU5BQkxFKEVOQ1JZUFRFRF9NRURJQSkKICAgICBSZW1vdGVDRE1GYWN0
b3J5UHJveHkmIGNkbUZhY3RvcnlQcm94eSgpOwogI2VuZGlmCkBAIC0yNzMsOSArMjcxLDcgQEAg
cHJpdmF0ZToKICAgICBJUEM6Ok1lc3NhZ2VSZWNlaXZlck1hcCBtX21lc3NhZ2VSZWNlaXZlck1h
cDsKICAgICBSZWY8R1BVUHJvY2Vzcz4gbV9ncHVQcm9jZXNzOwogICAgIGNvbnN0IFdlYkNvcmU6
OlByb2Nlc3NJZGVudGlmaWVyIG1fd2ViUHJvY2Vzc0lkZW50aWZpZXI7Ci0jaWYgSEFWRShUQVNL
X0lERU5USVRZX1RPS0VOKQotICAgIE1hY2hTZW5kUmlnaHQgbV93ZWJQcm9jZXNzSWRlbnRpdHlU
b2tlbjsKLSNlbmRpZgorICAgIFJlZlB0cjxXZWJDb3JlOjpQcm9jZXNzSWRlbnRpdHk+IG1fd2Vi
UHJvY2Vzc0lkZW50aXR5OwogI2lmIEVOQUJMRShXRUJfQVVESU8pCiAgICAgc3RkOjp1bmlxdWVf
cHRyPFJlbW90ZUF1ZGlvRGVzdGluYXRpb25NYW5hZ2VyPiBtX3JlbW90ZUF1ZGlvRGVzdGluYXRp
b25NYW5hZ2VyOwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mv
Z3JhcGhpY3MvR1BVUHJvY2Vzc0dyYXBoaWNzQ29udGV4dEdMLmggYi9Tb3VyY2UvV2ViS2l0L0dQ
VVByb2Nlc3MvZ3JhcGhpY3MvR1BVUHJvY2Vzc0dyYXBoaWNzQ29udGV4dEdMLmgKaW5kZXggMWVl
ZTE4ZDYyZjA1MDlmMDA5ZjM0YzNlZGU2OGQzNWUwZDA4OTY1My4uZTcyOWEzYTcxNTQ1MmMzYWQ0
NjRjN2NjOWVkNWMwZWNiM2IxMWUwOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9j
ZXNzL2dyYXBoaWNzL0dQVVByb2Nlc3NHcmFwaGljc0NvbnRleHRHTC5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9HUFVQcm9jZXNzR3JhcGhpY3NDb250ZXh0R0wuaApA
QCAtMjksMTEgKzI5LDEzIEBACiAjaW5jbHVkZSA8V2ViQ29yZS9FeHRlbnNpb25zR0wuaD4KICNp
bmNsdWRlIDxXZWJDb3JlL0dyYXBoaWNzQ29udGV4dEdMT3BlbkdMLmg+CiAKK25hbWVzcGFjZSBX
ZWJLaXQgeworCiBjbGFzcyBHUFVQcm9jZXNzR3JhcGhpY3NDb250ZXh0R0xPcGVuR0wgZmluYWwg
OiBwdWJsaWMgV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0R0xPcGVuR0wgewogcHVibGljOgotICAg
IHN0YXRpYyBSZWZQdHI8R1BVUHJvY2Vzc0dyYXBoaWNzQ29udGV4dEdMT3BlbkdMPiBjcmVhdGUo
V2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0R0xBdHRyaWJ1dGVzIGF0dHJpYnV0ZXMpCisgICAgc3Rh
dGljIFJlZlB0cjxHUFVQcm9jZXNzR3JhcGhpY3NDb250ZXh0R0xPcGVuR0w+IGNyZWF0ZShXZWJD
b3JlOjpHcmFwaGljc0NvbnRleHRHTEF0dHJpYnV0ZXMgYXR0cmlidXRlcywgUmVmUHRyPFdlYkNv
cmU6OlByb2Nlc3NJZGVudGl0eT4gcmVzb3VyY2VPd25lcikKICAgICB7Ci0gICAgICAgIGF1dG8g
Y29udGV4dCA9IGFkb3B0UmVmKCpuZXcgR1BVUHJvY2Vzc0dyYXBoaWNzQ29udGV4dEdMT3BlbkdM
KFdURk1vdmUoYXR0cmlidXRlcykpKTsKKyAgICAgICAgYXV0byBjb250ZXh0ID0gYWRvcHRSZWYo
Km5ldyBHUFVQcm9jZXNzR3JhcGhpY3NDb250ZXh0R0xPcGVuR0woV1RGTW92ZShhdHRyaWJ1dGVz
KSwgV1RGTW92ZShyZXNvdXJjZU93bmVyKSkpOwogICAgICAgICBpZiAoIWNvbnRleHQtPmlzVmFs
aWQoKSkKICAgICAgICAgICAgIHJldHVybiBudWxscHRyOwogICAgICAgICByZXR1cm4gY29udGV4
dDsKQEAgLTQ0LDEwICs0NiwxMiBAQCBwdWJsaWM6CiAgICAgdm9pZCBtYXJrRGlzcGxheUJ1ZmZl
ckluVXNlKCkgeyByZXR1cm4gbV9zd2FwQ2hhaW4ubWFya0Rpc3BsYXlCdWZmZXJJblVzZSgpOyB9
CiAjZW5kaWYKIHByaXZhdGU6Ci0gICAgR1BVUHJvY2Vzc0dyYXBoaWNzQ29udGV4dEdMT3BlbkdM
KFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dEdMQXR0cmlidXRlcyBhdHRyaWJ1dGVzKQotICAgICAg
ICA6IEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMKGF0dHJpYnV0ZXMpCisgICAgR1BVUHJvY2Vzc0dy
YXBoaWNzQ29udGV4dEdMT3BlbkdMKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dEdMQXR0cmlidXRl
cyYmIGF0dHJpYnV0ZXMsIFJlZlB0cjxXZWJDb3JlOjpQcm9jZXNzSWRlbnRpdHk+JiYgcmVzb3Vy
Y2VPd25lcikKKyAgICAgICAgOiBHcmFwaGljc0NvbnRleHRHTE9wZW5HTChXVEZNb3ZlKGF0dHJp
YnV0ZXMpLCBXVEZNb3ZlKHJlc291cmNlT3duZXIpKQogICAgIHsKICAgICB9CiB9OwogCit9CisK
ICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1Jl
bW90ZUdyYXBoaWNzQ29udGV4dEdMQ29jb2EuY3BwIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNz
L2dyYXBoaWNzL1JlbW90ZUdyYXBoaWNzQ29udGV4dEdMQ29jb2EuY3BwCmluZGV4IGI0MzdhNWJl
ZWNkNWQ2YWM1ODNjYTU5N2E5NWUyNzcxMmZhZGQ2MjMuLjBjYzIyYjQzM2E0NWU3NGQ1NDBlNGQ1
NGU5Y2E2N2JiMTA5NWUxZDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9n
cmFwaGljcy9SZW1vdGVHcmFwaGljc0NvbnRleHRHTENvY29hLmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xDb2NvYS5jcHAK
QEAgLTQ3LDkgKzQ3LDcgQEAgcHVibGljOgogICAgIHZvaWQgcHJlcGFyZUZvckRpc3BsYXkoQ29t
cGxldGlvbkhhbmRsZXI8dm9pZChXVEY6Ok1hY2hTZW5kUmlnaHQmJik+JiYpIGZpbmFsOwogcHJp
dmF0ZToKICAgICBXZWJDb3JlOjpHcmFwaGljc0NvbnRleHRHTElPU3VyZmFjZVN3YXBDaGFpbiBt
X3N3YXBDaGFpbiBXVEZfR1VBUkRFRF9CWV9MT0NLKG1fc3RyZWFtVGhyZWFkKTsKLSNpZiBIQVZF
KElPU1VSRkFDRV9TRVRfT1dORVJTSElQX0lERU5USVRZKQotICAgIHRhc2tfaWRfdG9rZW5fdCBt
X3dlYlByb2Nlc3NJZGVudGl0eVRva2VuOwotI2VuZGlmCisgICAgUmVmUHRyPFByb2Nlc3NJZGVu
dGl0eT4gbV9yZXNvdXJjZU93bmVyOwogfTsKIAogfQpAQCAtNjMsOSArNjEsNyBAQCBSZWY8UmVt
b3RlR3JhcGhpY3NDb250ZXh0R0w+IFJlbW90ZUdyYXBoaWNzQ29udGV4dEdMOjpjcmVhdGUoR1BV
Q29ubmVjdGlvblRvV2ViUAogCiBSZW1vdGVHcmFwaGljc0NvbnRleHRHTENvY29hOjpSZW1vdGVH
cmFwaGljc0NvbnRleHRHTENvY29hKEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MmIGdwdUNvbm5l
Y3Rpb25Ub1dlYlByb2Nlc3MsIEdyYXBoaWNzQ29udGV4dEdMSWRlbnRpZmllciBncmFwaGljc0Nv
bnRleHRHTElkZW50aWZpZXIsIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmQmIHJlbmRlcmluZ0JhY2tl
bmQsIElQQzo6U3RyZWFtQ29ubmVjdGlvbkJ1ZmZlciYmIHN0cmVhbSkKICAgICA6IFJlbW90ZUdy
YXBoaWNzQ29udGV4dEdMKGdwdUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MsIGdyYXBoaWNzQ29udGV4
dEdMSWRlbnRpZmllciwgcmVuZGVyaW5nQmFja2VuZCwgV1RGTW92ZShzdHJlYW0pKQotI2lmIEhB
VkUoSU9TVVJGQUNFX1NFVF9PV05FUlNISVBfSURFTlRJVFkpCi0gICAgLCBtX3dlYlByb2Nlc3NJ
ZGVudGl0eVRva2VuKGdwdUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3Mud2ViUHJvY2Vzc0lkZW50aXR5
VG9rZW4oKSkKLSNlbmRpZgorICAgICwgbV9yZXNvdXJjZU93bmVyKGdwdUNvbm5lY3Rpb25Ub1dl
YlByb2Nlc3Mud2ViUHJvY2Vzc0lkZW50aXR5KCkpCiB7CiAKIH0KQEAgLTczLDcgKzY5LDcgQEAg
UmVtb3RlR3JhcGhpY3NDb250ZXh0R0xDb2NvYTo6UmVtb3RlR3JhcGhpY3NDb250ZXh0R0xDb2Nv
YShHUFVDb25uZWN0aW9uVG9XZWJQcm8KIHZvaWQgUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xDb2Nv
YTo6cGxhdGZvcm1Xb3JrUXVldWVJbml0aWFsaXplKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dEdM
QXR0cmlidXRlcyYmIGF0dHJpYnV0ZXMpCiB7CiAgICAgYXNzZXJ0SXNDdXJyZW50KG1fc3RyZWFt
VGhyZWFkKTsKLSAgICBtX2NvbnRleHQgPSBHUFVQcm9jZXNzR3JhcGhpY3NDb250ZXh0R0xPcGVu
R0w6OmNyZWF0ZShXVEZNb3ZlKGF0dHJpYnV0ZXMpKTsKKyAgICBtX2NvbnRleHQgPSBHUFVQcm9j
ZXNzR3JhcGhpY3NDb250ZXh0R0xPcGVuR0w6OmNyZWF0ZShXVEZNb3ZlKGF0dHJpYnV0ZXMpLCBt
X3Jlc291cmNlT3duZXIpOwogfQogCiB2b2lkIFJlbW90ZUdyYXBoaWNzQ29udGV4dEdMQ29jb2E6
OnByZXBhcmVGb3JEaXNwbGF5KENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV1RGOjpNYWNoU2VuZFJp
Z2h0JiYpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQpAQCAtODQsMTAgKzgwLDYgQEAgdm9pZCBSZW1v
dGVHcmFwaGljc0NvbnRleHRHTENvY29hOjpwcmVwYXJlRm9yRGlzcGxheShDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKFdURjoKICAgICBNYWNoU2VuZFJpZ2h0IHNlbmRSaWdodDsKICAgICBpZiAoZGlz
cGxheUJ1ZmZlcikgewogICAgICAgICBtX2NvbnRleHQtPm1hcmtEaXNwbGF5QnVmZmVySW5Vc2Uo
KTsKLSNpZiBIQVZFKElPU1VSRkFDRV9TRVRfT1dORVJTSElQX0lERU5USVRZKQotICAgICAgICAv
LyBNYXJrIHRoZSBJT1N1cmZhY2UgYXMgYmVpbmcgb3duZWQgYnkgdGhlIFdlYlByb2Nlc3MgZXZl
biB0aG91Z2ggaXQgd2FzIGNvbnN0cnVjdGVkIGJ5IHRoZSBHUFVQcm9jZXNzIHNvIHRoYXQgSmV0
c2FtIGtub3dzIHdoaWNoIHByb2Nlc3MgdG8ga2lsbC4KLSAgICAgICAgZGlzcGxheUJ1ZmZlci0+
c2V0T3duZXJzaGlwSWRlbnRpdHkobV93ZWJQcm9jZXNzSWRlbnRpdHlUb2tlbik7Ci0jZW5kaWYK
ICAgICAgICAgc2VuZFJpZ2h0ID0gZGlzcGxheUJ1ZmZlci0+Y3JlYXRlU2VuZFJpZ2h0KCk7CiAg
ICAgfQogICAgIGNvbXBsZXRpb25IYW5kbGVyKFdURk1vdmUoc2VuZFJpZ2h0KSk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlSW1hZ2VCdWZmZXIu
aCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVJbWFnZUJ1ZmZlci5o
CmluZGV4IGEzZDQ5NGZlOGJmNmExOTY0N2VmMTkwYzlkYjQwNDJhZWNlNjcyMjAuLjE5OTI1OGI2
M2Q2OGU4OGJjYTRhOTAyMzZmZWQ0MDQ4MDQxYjYyMGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVJbWFnZUJ1ZmZlci5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVJbWFnZUJ1ZmZlci5oCkBAIC02OSwxMyAr
NjksMTEgQEAgcHVibGljOgogICAgICAgICAgICAgY29udGV4dCgpLnJlc3RvcmUoKTsKICAgICB9
CiAKLSNpZiBIQVZFKElPU1VSRkFDRV9TRVRfT1dORVJTSElQX0lERU5USVRZKQotICAgIHZvaWQg
c2V0UHJvY2Vzc093bmVyc2hpcCh0YXNrX2lkX3Rva2VuX3QgbmV3T3duZXIpCisgICAgdm9pZCBz
ZXRPd25lcnNoaXBJZGVudGl0eShXZWJDb3JlOjpQcm9jZXNzSWRlbnRpdHkqIHJlc291cmNlT3du
ZXIpCiAgICAgewogICAgICAgICBpZiAobV9iYWNrZW5kKQotICAgICAgICAgICAgbV9iYWNrZW5k
LT5zZXRQcm9jZXNzT3duZXJzaGlwKG5ld093bmVyKTsKKyAgICAgICAgICAgIG1fYmFja2VuZC0+
c2V0T3duZXJzaGlwSWRlbnRpdHkocmVzb3VyY2VPd25lcik7CiAgICAgfQotI2VuZGlmCiAKIHBy
aXZhdGU6CiAgICAgZnJpZW5kIGNsYXNzIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmQ7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFj
a2VuZC5jcHAgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVy
aW5nQmFja2VuZC5jcHAKaW5kZXggZGI0ZTEzN2IyZjZhZGZiOWNkMTQ3OGExZDg3MmU2NjRkMWE5
NmRlYi4uMmM4ZjRiZTJiMDcwZGU2MTMwNGEwMmZiYTYwMjA2Y2M3YWRiNzY4MyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tl
bmQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5k
ZXJpbmdCYWNrZW5kLmNwcApAQCAtODQsNiArODQsNyBAQCBSZW1vdGVSZW5kZXJpbmdCYWNrZW5k
OjpSZW1vdGVSZW5kZXJpbmdCYWNrZW5kKEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MmIGdwdUNv
bgogICAgICwgbV9zdHJlYW1Db25uZWN0aW9uKElQQzo6U3RyZWFtU2VydmVyQ29ubmVjdGlvbjo6
Y3JlYXRlKGdwdUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY29ubmVjdGlvbigpLCBXVEZNb3ZlKHN0
cmVhbUJ1ZmZlciksIG1fd29ya1F1ZXVlLmdldCgpKSkKICAgICAsIG1fcmVtb3RlUmVzb3VyY2VD
YWNoZShncHVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLndlYlByb2Nlc3NJZGVudGlmaWVyKCkpCiAg
ICAgLCBtX2dwdUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MoZ3B1Q29ubmVjdGlvblRvV2ViUHJvY2Vz
cykKKyAgICAsIG1fcmVzb3VyY2VPd25lcihncHVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLndlYlBy
b2Nlc3NJZGVudGl0eSgpKQogICAgICwgbV9yZW5kZXJpbmdCYWNrZW5kSWRlbnRpZmllcihjcmVh
dGlvblBhcmFtZXRlcnMuaWRlbnRpZmllcikKIHsKICAgICBBU1NFUlQoUnVuTG9vcDo6aXNNYWlu
KCkpOwpAQCAtMTczLDEwICsxNzQsOSBAQCB2b2lkIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmQ6OmNy
ZWF0ZUltYWdlQnVmZmVyV2l0aFF1YWxpZmllZElkZW50aWZpZXIoY29uc3QgRmxvYQogCiAgICAg
aWYgKHJlbmRlcmluZ01vZGUgPT0gUmVuZGVyaW5nTW9kZTo6QWNjZWxlcmF0ZWQpIHsKICAgICAg
ICAgaWYgKGF1dG8gYWNjZWxlcmF0ZWRJbWFnZUJ1ZmZlciA9IEFjY2VsZXJhdGVkUmVtb3RlSW1h
Z2VCdWZmZXI6OmNyZWF0ZShsb2dpY2FsU2l6ZSwgcmVzb2x1dGlvblNjYWxlLCBjb2xvclNwYWNl
LCBwaXhlbEZvcm1hdCwgKnRoaXMsIGltYWdlQnVmZmVyUmVzb3VyY2VJZGVudGlmaWVyKSkgewot
I2lmIEhBVkUoSU9TVVJGQUNFX1NFVF9PV05FUlNISVBfSURFTlRJVFkpCiAgICAgICAgICAgICAv
LyBNYXJrIHRoZSBJT1N1cmZhY2UgYXMgYmVpbmcgb3duZWQgYnkgdGhlIFdlYlByb2Nlc3MgZXZl
biB0aG91Z2ggaXQgd2FzIGNvbnN0cnVjdGVkIGJ5IHRoZSBHUFVQcm9jZXNzIHNvIHRoYXQgSmV0
c2FtIGtub3dzIHdoaWNoIHByb2Nlc3MgdG8ga2lsbC4KLSAgICAgICAgICAgIGFjY2VsZXJhdGVk
SW1hZ2VCdWZmZXItPnNldFByb2Nlc3NPd25lcnNoaXAobV9ncHVDb25uZWN0aW9uVG9XZWJQcm9j
ZXNzLT53ZWJQcm9jZXNzSWRlbnRpdHlUb2tlbigpKTsKLSNlbmRpZgorICAgICAgICAgICAgaWYg
KG1fcmVzb3VyY2VPd25lcikKKyAgICAgICAgICAgICAgICBhY2NlbGVyYXRlZEltYWdlQnVmZmVy
LT5zZXRPd25lcnNoaXBJZGVudGl0eShtX3Jlc291cmNlT3duZXIuZ2V0KCkpOwogICAgICAgICAg
ICAgaW1hZ2VCdWZmZXIgPSBXVEZNb3ZlKGFjY2VsZXJhdGVkSW1hZ2VCdWZmZXIpOwogICAgICAg
ICB9CiAgICAgfQpAQCAtMjY4LDYgKzI2OCw3IEBAIHZvaWQgUmVtb3RlUmVuZGVyaW5nQmFja2Vu
ZDo6Z2V0RGF0YVVSTEZvckltYWdlQnVmZmVyV2l0aFF1YWxpZmllZElkZW50aWZpZXIoY29uCiAg
ICAgU3RyaW5nIHVybFN0cmluZzsKICAgICBpZiAoYXV0byBpbWFnZUJ1ZmZlciA9IG1fcmVtb3Rl
UmVzb3VyY2VDYWNoZS5jYWNoZWRJbWFnZUJ1ZmZlcihyZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZp
ZXIpKQogICAgICAgICB1cmxTdHJpbmcgPSBpbWFnZUJ1ZmZlci0+dG9EYXRhVVJMKG1pbWVUeXBl
LCBxdWFsaXR5LCBwcmVzZXJ2ZVJlc29sdXRpb24pOworICAgIFdURkxvZ0Fsd2F5cygiREFUQVVS
TDolcyIsIHVybFN0cmluZy51dGY4KCkuZGF0YSgpKTsKICAgICBjb21wbGV0aW9uSGFuZGxlcihX
VEZNb3ZlKHVybFN0cmluZykpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVBy
b2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5oIGIvU291cmNlL1dlYktpdC9H
UFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQuaAppbmRleCAxOWZiMTdm
MDI1ZmIyYzY1ZjFkZGUyNzJjMzBiYjBkZTk0NWNhZjlmLi45ZWM5NjJiMzBmZjY2N2E5MTdmZjg2
ZmRiMmY1M2ZhMDgyYWI3NjMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mv
Z3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BV
UHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmgKQEAgLTU0LDYgKzU0LDcg
QEAgbmFtZXNwYWNlIFdlYkNvcmUgewogY2xhc3MgRGVzdGluYXRpb25Db2xvclNwYWNlOwogY2xh
c3MgRmxvYXRTaXplOwogY2xhc3MgTmF0aXZlSW1hZ2U7CitjbGFzcyBQcm9jZXNzSWRlbnRpdHk7
CiAKIGVudW0gY2xhc3MgUmVuZGVyaW5nTW9kZSA6IGJvb2w7CiAKQEAgLTEyOSw2ICsxMzAsNyBA
QCBwcml2YXRlOgogICAgIFJlZjxJUEM6OlN0cmVhbVNlcnZlckNvbm5lY3Rpb24+IG1fc3RyZWFt
Q29ubmVjdGlvbjsKICAgICBSZW1vdGVSZXNvdXJjZUNhY2hlIG1fcmVtb3RlUmVzb3VyY2VDYWNo
ZTsKICAgICBSZWY8R1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcz4gbV9ncHVDb25uZWN0aW9uVG9X
ZWJQcm9jZXNzOworICAgIFJlZlB0cjxXZWJDb3JlOjpQcm9jZXNzSWRlbnRpdHk+IG1fcmVzb3Vy
Y2VPd25lcjsKICAgICBSZW5kZXJpbmdCYWNrZW5kSWRlbnRpZmllciBtX3JlbmRlcmluZ0JhY2tl
bmRJZGVudGlmaWVyOwogICAgIElQQzo6U2VtYXBob3JlIG1fZ2V0UGl4ZWxCdWZmZXJTZW1hcGhv
cmU7CiAgICAgUmVmUHRyPFNoYXJlZE1lbW9yeT4gbV9nZXRQaXhlbEJ1ZmZlclNoYXJlZE1lbW9y
eTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy93ZWJydGMvTGliV2ViUlRD
Q29kZWNzUHJveHkubW0gYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mvd2VicnRjL0xpYldlYlJU
Q0NvZGVjc1Byb3h5Lm1tCmluZGV4IDEzM2UyNmU0NzRlMWQzMTkxNjNlNTU3MTk5MmQwYzBjNzE5
ZGRlMTQuLjcwN2E2NWUyZTIyNGM5YWQ3Y2YxNzQ2NWY0ZGMwYTQyMTM3MDJhNTggMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy93ZWJydGMvTGliV2ViUlRDQ29kZWNzUHJveHku
bW0KKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL3dlYnJ0Yy9MaWJXZWJSVENDb2RlY3NQ
cm94eS5tbQpAQCAtNzcsMTQgKzc3LDExIEBAIHZvaWQgTGliV2ViUlRDQ29kZWNzUHJveHk6OmNs
b3NlKCkKIHN0YXRpYyBGdW5jdGlvbjx2b2lkKENWUGl4ZWxCdWZmZXJSZWYgcGl4ZWxCdWZmZXIs
IHVpbnQzMl90IHRpbWVTdGFtcE5zLCB1aW50MzJfdCB0aW1lU3RhbXApPiBjcmVhdGVEZWNvZGVy
Q2FsbGJhY2soUlRDRGVjb2RlcklkZW50aWZpZXIgaWRlbnRpZmllciwgR1BVQ29ubmVjdGlvblRv
V2ViUHJvY2VzcyYgZ3B1Q29ubmVjdGlvblRvV2ViUHJvY2VzcykKIHsKICAgICByZXR1cm4gW2Nv
bm5lY3Rpb24gPSBSZWYgeyBncHVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNvbm5lY3Rpb24oKSB9
LAotI2lmIEhBVkUoSU9TVVJGQUNFX1NFVF9PV05FUlNISVBfSURFTlRJVFkpCi0gICAgICAgIHRv
a2VuID0gZ3B1Q29ubmVjdGlvblRvV2ViUHJvY2Vzcy53ZWJQcm9jZXNzSWRlbnRpdHlUb2tlbigp
LAotI2VuZGlmCisgICAgICAgIHJlc291cmNlT3duZXIgPSBncHVDb25uZWN0aW9uVG9XZWJQcm9j
ZXNzLndlYlByb2Nlc3NJZGVudGl0eSgpLAogICAgICAgICBpZGVudGlmaWVyXShDVlBpeGVsQnVm
ZmVyUmVmIHBpeGVsQnVmZmVyLCB1aW50MzJfdCB0aW1lU3RhbXBOcywgdWludDMyX3QgdGltZVN0
YW1wKSB7CiAgICAgICAgIGlmIChhdXRvIHNhbXBsZSA9IFdlYkNvcmU6OlJlbW90ZVZpZGVvU2Ft
cGxlOjpjcmVhdGUocGl4ZWxCdWZmZXIsIE1lZGlhVGltZSh0aW1lU3RhbXBOcywgMSkpKSB7Ci0j
aWYgSEFWRShJT1NVUkZBQ0VfU0VUX09XTkVSU0hJUF9JREVOVElUWSkKLSAgICAgICAgICAgIHNh
bXBsZS0+c2V0T3duZXJzaGlwSWRlbnRpdHkodG9rZW4pOwotI2VuZGlmCisgICAgICAgICAgICBp
ZiAocmVzb3VyY2VPd25lcikKKyAgICAgICAgICAgICAgICBzYW1wbGUtPnNldE93bmVyc2hpcElk
ZW50aXR5KHJlc291cmNlT3duZXIuZ2V0KCkpOwogICAgICAgICAgICAgY29ubmVjdGlvbi0+c2Vu
ZChNZXNzYWdlczo6TGliV2ViUlRDQ29kZWNzOjpDb21wbGV0ZWREZWNvZGluZyB7IGlkZW50aWZp
ZXIsIHRpbWVTdGFtcCwgKnNhbXBsZSB9LCAwKTsKICAgICAgICAgfQogICAgIH07CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9HUFVQcm9jZXNzQ29ubmVjdGlvblBhcmFtZXRlcnMu
aCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0dQVVByb2Nlc3NDb25uZWN0aW9uUGFyYW1ldGVycy5o
CmluZGV4IDQxNTlkYzZlZDQ3ZDZkYzE3M2U5MWI2ODMyYTFiYjFiYTU1ZjVlMTQuLmRkZmEyOWY1
NjFhYWRkODA4OWJkYTY1M2I0OGFmMjA5Nzg0MzAwZDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvU2hhcmVkL0dQVVByb2Nlc3NDb25uZWN0aW9uUGFyYW1ldGVycy5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL0dQVVByb2Nlc3NDb25uZWN0aW9uUGFyYW1ldGVycy5oCkBAIC0yNywxNCAr
MjcsMTIgQEAKIAogI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKIAotI2luY2x1ZGUgPHd0Zi9NYWNo
U2VuZFJpZ2h0Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9Qcm9jZXNzSWRlbnRpdHkuaD4KIAogbmFt
ZXNwYWNlIFdlYktpdCB7CiAKIHN0cnVjdCBHUFVQcm9jZXNzQ29ubmVjdGlvblBhcmFtZXRlcnMg
ewotI2lmIEhBVkUoVEFTS19JREVOVElUWV9UT0tFTikKLSAgICBNYWNoU2VuZFJpZ2h0IHdlYlBy
b2Nlc3NJZGVudGl0eVRva2VuOwotI2VuZGlmCisgICAgV2ViQ29yZTo6UHJvY2Vzc0lkZW50aXR5
OjpIYW5kbGUgd2ViUHJvY2Vzc0lkZW50aXR5SGFuZGxlOwogICAgIFZlY3RvcjxTdHJpbmc+IG92
ZXJyaWRlTGFuZ3VhZ2VzOwogI2lmIEVOQUJMRShJUENfVEVTVElOR19BUEkpCiAgICAgYm9vbCBp
Z25vcmVJbnZhbGlkTWVzc2FnZUZvclRlc3RpbmcgeyBmYWxzZSB9OwpAQCAtNDUsOSArNDMsNyBA
QCBzdHJ1Y3QgR1BVUHJvY2Vzc0Nvbm5lY3Rpb25QYXJhbWV0ZXJzIHsKIAogICAgIHZvaWQgZW5j
b2RlKElQQzo6RW5jb2RlciYgZW5jb2RlcikgY29uc3QKICAgICB7Ci0jaWYgSEFWRShUQVNLX0lE
RU5USVRZX1RPS0VOKQotICAgICAgICBlbmNvZGVyIDw8IHdlYlByb2Nlc3NJZGVudGl0eVRva2Vu
OwotI2VuZGlmCisgICAgICAgIGVuY29kZXIgPDwgd2ViUHJvY2Vzc0lkZW50aXR5SGFuZGxlOwog
ICAgICAgICBlbmNvZGVyIDw8IG92ZXJyaWRlTGFuZ3VhZ2VzOwogI2lmIEVOQUJMRShJUENfVEVT
VElOR19BUEkpCiAgICAgICAgIGVuY29kZXIgPDwgaWdub3JlSW52YWxpZE1lc3NhZ2VGb3JUZXN0
aW5nOwpAQCAtNTksMTIgKzU1LDEwIEBAIHN0cnVjdCBHUFVQcm9jZXNzQ29ubmVjdGlvblBhcmFt
ZXRlcnMgewogCiAgICAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8R1BVUHJvY2Vzc0Nvbm5lY3Rpb25Q
YXJhbWV0ZXJzPiBkZWNvZGUoSVBDOjpEZWNvZGVyJiBkZWNvZGVyKQogICAgIHsKLSNpZiBIQVZF
KFRBU0tfSURFTlRJVFlfVE9LRU4pCi0gICAgICAgIHN0ZDo6b3B0aW9uYWw8TWFjaFNlbmRSaWdo
dD4gd2ViUHJvY2Vzc0lkZW50aXR5VG9rZW47Ci0gICAgICAgIGRlY29kZXIgPj4gd2ViUHJvY2Vz
c0lkZW50aXR5VG9rZW47Ci0gICAgICAgIGlmICghd2ViUHJvY2Vzc0lkZW50aXR5VG9rZW4pCisg
ICAgICAgIHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6UHJvY2Vzc0lkZW50aXR5OjpIYW5kbGU+IHdl
YlByb2Nlc3NJZGVudGl0eUhhbmRsZTsKKyAgICAgICAgZGVjb2RlciA+PiB3ZWJQcm9jZXNzSWRl
bnRpdHlIYW5kbGU7CisgICAgICAgIGlmICghd2ViUHJvY2Vzc0lkZW50aXR5SGFuZGxlKQogICAg
ICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKLSNlbmRpZgogCiAgICAgICAgIHN0ZDo6b3B0
aW9uYWw8VmVjdG9yPFN0cmluZz4+IG92ZXJyaWRlTGFuZ3VhZ2VzOwogICAgICAgICBkZWNvZGVy
ID4+IG92ZXJyaWRlTGFuZ3VhZ2VzOwpAQCAtODUsOSArNzksNyBAQCBzdHJ1Y3QgR1BVUHJvY2Vz
c0Nvbm5lY3Rpb25QYXJhbWV0ZXJzIHsKICNlbmRpZgogCiAgICAgICAgIHJldHVybiBHUFVQcm9j
ZXNzQ29ubmVjdGlvblBhcmFtZXRlcnMgewotI2lmIEhBVkUoVEFTS19JREVOVElUWV9UT0tFTikK
LSAgICAgICAgICAgIFdURk1vdmUoKndlYlByb2Nlc3NJZGVudGl0eVRva2VuKSwKLSNlbmRpZgor
ICAgICAgICAgICAgV1RGTW92ZSgqd2ViUHJvY2Vzc0lkZW50aXR5SGFuZGxlKSwKICAgICAgICAg
ICAgIFdURk1vdmUoKm92ZXJyaWRlTGFuZ3VhZ2VzKSwKICNpZiBFTkFCTEUoSVBDX1RFU1RJTkdf
QVBJKQogICAgICAgICAgICAgKmlnbm9yZUludmFsaWRNZXNzYWdlRm9yVGVzdGluZywKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5h
Z2VyUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2Fw
dHVyZU1hbmFnZXJQcm94eS5jcHAKaW5kZXggOTk2MjY4OTkwN2M2N2I1YzdhNTY0ZDgxNTMyNTFj
ZjU1MzQ3ZTViZC4uOGIxZjNhMjY2NTZhYjA1ZjAxNzBkY2U2YmUyYzJlM2VmZGU1Mzk1OSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVyZU1h
bmFnZXJQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVXNlck1l
ZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5jcHAKQEAgLTU3LDkgKzU3LDEwIEBAIGNsYXNzIFVzZXJN
ZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6OlNvdXJjZVByb3h5CiAgICAgLCBwcml2YXRlIFJlYWx0
aW1lTWVkaWFTb3VyY2U6OlZpZGVvU2FtcGxlT2JzZXJ2ZXIgewogICAgIFdURl9NQUtFX0ZBU1Rf
QUxMT0NBVEVEOwogcHVibGljOgotICAgIFNvdXJjZVByb3h5KFJlYWx0aW1lTWVkaWFTb3VyY2VJ
ZGVudGlmaWVyIGlkLCBSZWY8SVBDOjpDb25uZWN0aW9uPiYmIGNvbm5lY3Rpb24sIFJlZjxSZWFs
dGltZU1lZGlhU291cmNlPiYmIHNvdXJjZSkKKyAgICBTb3VyY2VQcm94eShSZWFsdGltZU1lZGlh
U291cmNlSWRlbnRpZmllciBpZCwgUmVmPElQQzo6Q29ubmVjdGlvbj4mJiBjb25uZWN0aW9uLCBS
ZWZQdHI8UHJvY2Vzc0lkZW50aXR5PiYmIHJlc291cmNlT3duZXIsIFJlZjxSZWFsdGltZU1lZGlh
U291cmNlPiYmIHNvdXJjZSkKICAgICAgICAgOiBtX2lkKGlkKQogICAgICAgICAsIG1fY29ubmVj
dGlvbihXVEZNb3ZlKGNvbm5lY3Rpb24pKQorICAgICAgICAsIG1fcmVzb3VyY2VPd25lcihXVEZN
b3ZlKHJlc291cmNlT3duZXIpKQogICAgICAgICAsIG1fc291cmNlKFdURk1vdmUoc291cmNlKSkK
ICAgICB7CiAgICAgICAgIG1fc291cmNlLT5hZGRPYnNlcnZlcigqdGhpcyk7CkBAIC0xMjUsOSAr
MTI2LDYgQEAgcHVibGljOgogICAgIH0KIAogICAgIHZvaWQgc2V0U2hvdWxkQXBwbHlSb3RhdGlv
bihib29sIHNob3VsZEFwcGx5Um90YXRpb24pIHsgbV9zaG91bGRBcHBseVJvdGF0aW9uID0gdHJ1
ZTsgfQotI2lmIEhBVkUoSU9TVVJGQUNFX1NFVF9PV05FUlNISVBfSURFTlRJVFkpCi0gICAgdm9p
ZCBzZXRXZWJQcm9jZXNzSWRlbnRpdHlUb2tlbihzdGQ6Om9wdGlvbmFsPHRhc2tfaWRfdG9rZW5f
dD4gdG9rZW4pIHsgbV93ZWJQcm9jZXNzSWRlbnRpdHlUb2tlbiA9IHRva2VuO30KLSNlbmRpZgog
CiBwcml2YXRlOgogICAgIHZvaWQgc291cmNlU3RvcHBlZCgpIGZpbmFsIHsKQEAgLTE4OCwxMCAr
MTg2LDggQEAgcHJpdmF0ZToKICAgICAgICAgfSBlbHNlCiAgICAgICAgICAgICByZW1vdGVTYW1w
bGUgPSBSZW1vdGVWaWRlb1NhbXBsZTo6Y3JlYXRlKHNhbXBsZSk7CiAgICAgICAgIGlmIChyZW1v
dGVTYW1wbGUpIHsKLSNpZiBIQVZFKElPU1VSRkFDRV9TRVRfT1dORVJTSElQX0lERU5USVRZKQot
ICAgICAgICAgICAgaWYgKG1fd2ViUHJvY2Vzc0lkZW50aXR5VG9rZW4pCi0gICAgICAgICAgICAg
ICAgcmVtb3RlU2FtcGxlLT5zZXRPd25lcnNoaXBJZGVudGl0eSgqbV93ZWJQcm9jZXNzSWRlbnRp
dHlUb2tlbik7Ci0jZW5kaWYKKyAgICAgICAgICAgIGlmIChtX3Jlc291cmNlT3duZXIpCisgICAg
ICAgICAgICAgICAgcmVtb3RlU2FtcGxlLT5zZXRPd25lcnNoaXBJZGVudGl0eShtX3Jlc291cmNl
T3duZXIuZ2V0KCkpOwogICAgICAgICAgICAgbV9jb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpS
ZW1vdGVDYXB0dXJlU2FtcGxlTWFuYWdlcjo6VmlkZW9TYW1wbGVBdmFpbGFibGUobV9pZCwgV1RG
TW92ZSgqcmVtb3RlU2FtcGxlKSksIDApOwogICAgICAgICB9CiAgICAgfQpAQCAtMjQ0LDYgKzI0
MCw3IEBAIHByaXZhdGU6CiAgICAgUmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgbV9pZDsK
ICAgICBXZWFrUHRyPFBsYXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdlcj4gbV9zZXNzaW9uTWFuYWdl
cjsKICAgICBSZWY8SVBDOjpDb25uZWN0aW9uPiBtX2Nvbm5lY3Rpb247CisgICAgUmVmUHRyPFBy
b2Nlc3NJZGVudGl0eT4gbV9yZXNvdXJjZU93bmVyOwogICAgIFJlZjxSZWFsdGltZU1lZGlhU291
cmNlPiBtX3NvdXJjZTsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8Q0FSaW5nQnVmZmVyPiBtX3JpbmdC
dWZmZXI7CiAgICAgQ0FBdWRpb1N0cmVhbURlc2NyaXB0aW9uIG1fZGVzY3JpcHRpb24geyB9OwpA
QCAtMjU3LDkgKzI1NCw2IEBAIHByaXZhdGU6CiAgICAgc2l6ZV90IG1fZnJhbWVDaHVua1NpemUg
eyAwIH07CiAgICAgTWVkaWFUaW1lIG1fc3RhcnRUaW1lOwogICAgIGJvb2wgbV9zaG91bGRSZXNl
dCB7IGZhbHNlIH07Ci0jaWYgSEFWRShUQVNLX0lERU5USVRZX1RPS0VOKQotICAgIHN0ZDo6b3B0
aW9uYWw8dGFza19pZF90b2tlbl90PiBtX3dlYlByb2Nlc3NJZGVudGl0eVRva2VuOwotI2VuZGlm
CiB9OwogCiBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OjpVc2VyTWVkaWFDYXB0dXJlTWFu
YWdlclByb3h5KFVuaXF1ZVJlZjxDb25uZWN0aW9uUHJveHk+JiYgY29ubmVjdGlvblByb3h5KQpA
QCAtMzIzLDEyICszMTcsNyBAQCB2b2lkIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6OmNy
ZWF0ZU1lZGlhU291cmNlRm9yQ2FwdHVyZURldmljZVdpdGhDb25zdHJhaQogICAgICAgICB9CiAK
ICAgICAgICAgQVNTRVJUKCFtX3Byb3hpZXMuY29udGFpbnMoaWQpKTsKLSAgICAgICAgYXV0byBw
cm94eSA9IG1ha2VVbmlxdWU8U291cmNlUHJveHk+KGlkLCBtX2Nvbm5lY3Rpb25Qcm94eS0+Y29u
bmVjdGlvbigpLCBXVEZNb3ZlKHNvdXJjZSkpOwotI2lmIEhBVkUoSU9TVVJGQUNFX1NFVF9PV05F
UlNISVBfSURFTlRJVFkpCi0gICAgICAgIGlmIChkZXZpY2UudHlwZSgpICE9IFdlYkNvcmU6OkNh
cHR1cmVEZXZpY2U6OkRldmljZVR5cGU6Ok1pY3JvcGhvbmUpCi0gICAgICAgICAgICBwcm94eS0+
c2V0V2ViUHJvY2Vzc0lkZW50aXR5VG9rZW4obV9jb25uZWN0aW9uUHJveHktPndlYlByb2Nlc3NJ
ZGVudGl0eVRva2VuKCkpOwotI2VuZGlmCi0KKyAgICAgICAgYXV0byBwcm94eSA9IG1ha2VVbmlx
dWU8U291cmNlUHJveHk+KGlkLCBtX2Nvbm5lY3Rpb25Qcm94eS0+Y29ubmVjdGlvbigpLCBtX2Nv
bm5lY3Rpb25Qcm94eS0+cmVzb3VyY2VPd25lcigpLCBXVEZNb3ZlKHNvdXJjZSkpOwogICAgICAg
ICBtX3Byb3hpZXMuYWRkKGlkLCBXVEZNb3ZlKHByb3h5KSk7CiAgICAgfSBlbHNlCiAgICAgICAg
IGludmFsaWRDb25zdHJhaW50cyA9IFdURk1vdmUoc291cmNlT3JFcnJvci5lcnJvck1lc3NhZ2Up
OwpAQCAtMzkzLDcgKzM4Miw3IEBAIHZvaWQgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6
Y2xvbmUoUmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgY2xvbmVkSUQsCiAgICAgTUVTU0FH
RV9DSEVDSyhtX3Byb3hpZXMuY29udGFpbnMoY2xvbmVkSUQpKTsKICAgICBNRVNTQUdFX0NIRUNL
KCFtX3Byb3hpZXMuY29udGFpbnMobmV3U291cmNlSUQpKTsKICAgICBpZiAoYXV0byogcHJveHkg
PSBtX3Byb3hpZXMuZ2V0KGNsb25lZElEKSkKLSAgICAgICAgbV9wcm94aWVzLmFkZChuZXdTb3Vy
Y2VJRCwgbWFrZVVuaXF1ZTxTb3VyY2VQcm94eT4obmV3U291cmNlSUQsIG1fY29ubmVjdGlvblBy
b3h5LT5jb25uZWN0aW9uKCksIHByb3h5LT5zb3VyY2UoKS5jbG9uZSgpKSk7CisgICAgICAgIG1f
cHJveGllcy5hZGQobmV3U291cmNlSUQsIG1ha2VVbmlxdWU8U291cmNlUHJveHk+KG5ld1NvdXJj
ZUlELCBtX2Nvbm5lY3Rpb25Qcm94eS0+Y29ubmVjdGlvbigpLCBtX2Nvbm5lY3Rpb25Qcm94eS0+
cmVzb3VyY2VPd25lcigpLCBwcm94eS0+c291cmNlKCkuY2xvbmUoKSkpOwogfQogCiB2b2lkIFVz
ZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6OnJlcXVlc3RUb0VuZChSZWFsdGltZU1lZGlhU291
cmNlSWRlbnRpZmllciBzb3VyY2VJRCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkuaAppbmRleCA3YWZm
NDI0ZDU0MGQzYjFmZGVjZGFiYzg2NTVjM2M1NmM1MGExMGU1Li5jNTg2Y2UzZjNkMTJlNzhlMjM3
MzJhZTEwY2M4OWIyMzgwNGIyYmNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5LmgKKysrIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5oCkBAIC0zMiw2
ICszMiw3IEBACiAjaW5jbHVkZSAiVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIuaCIKICNpbmNsdWRl
IDxXZWJDb3JlL0NhcHR1cmVEZXZpY2UuaD4KICNpbmNsdWRlIDxXZWJDb3JlL09yaWVudGF0aW9u
Tm90aWZpZXIuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1Byb2Nlc3NJZGVudGl0eS5oPgogI2luY2x1
ZGUgPFdlYkNvcmUvUmVhbHRpbWVNZWRpYVNvdXJjZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUmVh
bHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIuaD4KICNpbmNsdWRlIDxwYWwvc3BpL2NvY29hL1RD
Q1NQSS5oPgpAQCAtNTksOSArNjAsNyBAQCBwdWJsaWM6CiAgICAgICAgIHZpcnR1YWwgYm9vbCB3
aWxsU3RhcnRDYXB0dXJlKFdlYkNvcmU6OkNhcHR1cmVEZXZpY2U6OkRldmljZVR5cGUpIGNvbnN0
ID0gMDsKICAgICAgICAgdmlydHVhbCBMb2dnZXImIGxvZ2dlcigpID0gMDsKICAgICAgICAgdmly
dHVhbCBib29sIHNldENhcHR1cmVBdHRyaWJ1dGlvblN0cmluZygpIHsgcmV0dXJuIHRydWU7IH0K
LSNpZiBIQVZFKElPU1VSRkFDRV9TRVRfT1dORVJTSElQX0lERU5USVRZKQotICAgICAgICB2aXJ0
dWFsIHN0ZDo6b3B0aW9uYWw8dGFza19pZF90b2tlbl90PiB3ZWJQcm9jZXNzSWRlbnRpdHlUb2tl
bigpIGNvbnN0IHsgcmV0dXJuIHsgfTsgfTsKLSNlbmRpZgorICAgICAgICB2aXJ0dWFsIFJlZlB0
cjxXZWJDb3JlOjpQcm9jZXNzSWRlbnRpdHk+IHJlc291cmNlT3duZXIoKSBjb25zdCB7IHJldHVy
biBudWxscHRyOyB9OwogI2lmIEVOQUJMRShBUFBfUFJJVkFDWV9SRVBPUlQpCiAgICAgICAgIHZp
cnR1YWwgdm9pZCBzZXRUQ0NJZGVudGl0eSgpIHsgfQogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL2NvY29hL0ltYWdlQnVmZmVyU2hhcmVh
YmxlTWFwcGVkSU9TdXJmYWNlQmFja2VuZC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
R1BVL2dyYXBoaWNzL2NvY29hL0ltYWdlQnVmZmVyU2hhcmVhYmxlTWFwcGVkSU9TdXJmYWNlQmFj
a2VuZC5jcHAKaW5kZXggYWZkMmM3YzA1Y2ZhZmQxMzk5MzQ0ZjVjNmE3NjRlNDg4MGQyOGJkYS4u
MTEzZWFmOTJmODBmNTM4NjYwZGZiYjQwNjBjM2E3Yzg4OGY2OTI1YSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9jb2NvYS9JbWFnZUJ1ZmZlclNoYXJl
YWJsZU1hcHBlZElPU3VyZmFjZUJhY2tlbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9HUFUvZ3JhcGhpY3MvY29jb2EvSW1hZ2VCdWZmZXJTaGFyZWFibGVNYXBwZWRJT1N1cmZh
Y2VCYWNrZW5kLmNwcApAQCAtNzcsMTMgKzc3LDExIEBAIEltYWdlQnVmZmVyQmFja2VuZEhhbmRs
ZSBJbWFnZUJ1ZmZlclNoYXJlYWJsZU1hcHBlZElPU3VyZmFjZUJhY2tlbmQ6OmNyZWF0ZUltYWdl
CiAgICAgcmV0dXJuIEltYWdlQnVmZmVyQmFja2VuZEhhbmRsZShtX3N1cmZhY2UtPmNyZWF0ZVNl
bmRSaWdodCgpKTsKIH0KIAotI2lmIEhBVkUoSU9TVVJGQUNFX1NFVF9PV05FUlNISVBfSURFTlRJ
VFkpCi12b2lkIEltYWdlQnVmZmVyU2hhcmVhYmxlTWFwcGVkSU9TdXJmYWNlQmFja2VuZDo6c2V0
UHJvY2Vzc093bmVyc2hpcCh0YXNrX2lkX3Rva2VuX3QgcHJvY2Vzc0lkZW50aXR5VG9rZW4pCit2
b2lkIEltYWdlQnVmZmVyU2hhcmVhYmxlTWFwcGVkSU9TdXJmYWNlQmFja2VuZDo6c2V0T3duZXJz
aGlwSWRlbnRpdHkoV2ViQ29yZTo6UHJvY2Vzc0lkZW50aXR5KiByZXNvdXJjZU93bmVyKQogewog
ICAgIEFTU0VSVChzdXJmYWNlKCkpOwotICAgIHN1cmZhY2UoKS0+c2V0T3duZXJzaGlwSWRlbnRp
dHkocHJvY2Vzc0lkZW50aXR5VG9rZW4pOworICAgIHN1cmZhY2UoKS0+c2V0T3duZXJzaGlwSWRl
bnRpdHkocmVzb3VyY2VPd25lcik7CiB9Ci0jZW5kaWYKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvY29j
b2EvSW1hZ2VCdWZmZXJTaGFyZWFibGVNYXBwZWRJT1N1cmZhY2VCYWNrZW5kLmggYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL2NvY29hL0ltYWdlQnVmZmVyU2hhcmVhYmxl
TWFwcGVkSU9TdXJmYWNlQmFja2VuZC5oCmluZGV4IGUxNGE1NDBlY2RkZDQ3MTE5MDhhN2MxNzFj
M2EyNWViZmQ4MDhkYmUuLmI5NzYzMjIwMzJlNmZkMWEzMGI5YTI0NGZmODM4OTY2MDk1NjQ3YzEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvY29jb2Ev
SW1hZ2VCdWZmZXJTaGFyZWFibGVNYXBwZWRJT1N1cmZhY2VCYWNrZW5kLmgKKysrIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9jb2NvYS9JbWFnZUJ1ZmZlclNoYXJlYWJs
ZU1hcHBlZElPU3VyZmFjZUJhY2tlbmQuaApAQCAtMzEsNiArMzEsMTAgQEAKICNpbmNsdWRlIDxX
ZWJDb3JlL0ltYWdlQnVmZmVySU9TdXJmYWNlQmFja2VuZC5oPgogI2luY2x1ZGUgPHd0Zi9Jc29N
YWxsb2MuaD4KIAorbmFtZXNwYWNlIFdlYkNvcmUgeworY2xhc3MgUHJvY2Vzc0lkZW50aXR5Owor
fQorCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogY2xhc3MgU2hhcmVhYmxlQml0bWFwOwpAQCAtNDYs
OSArNTAsNyBAQCBwdWJsaWM6CiAKICAgICBJbWFnZUJ1ZmZlckJhY2tlbmRIYW5kbGUgY3JlYXRl
SW1hZ2VCdWZmZXJCYWNrZW5kSGFuZGxlKCkgY29uc3Q7CiAKLSNpZiBIQVZFKElPU1VSRkFDRV9T
RVRfT1dORVJTSElQX0lERU5USVRZKQotICAgIHZvaWQgc2V0UHJvY2Vzc093bmVyc2hpcCh0YXNr
X2lkX3Rva2VuX3QpOwotI2VuZGlmCisgICAgdm9pZCBzZXRPd25lcnNoaXBJZGVudGl0eShXZWJD
b3JlOjpQcm9jZXNzSWRlbnRpdHkqIHJlc291cmNlT3duZXIpOwogfTsKIAogfSAvLyBuYW1lc3Bh
Y2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvV2Vi
UHJvY2Vzc0NvY29hLm1tIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1dlYlByb2Nl
c3NDb2NvYS5tbQppbmRleCAwMzRlMmI0OGFhMDE1YWY3Y2VkNzY2ZGU5YWNlODI4ZGVkMTIyNjQ5
Li42NDI1ZjM5OTY1N2QwMDNiMGZhZTI3ZDZhNWEzMjRkMWU0Y2ExZmY5IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvV2ViUHJvY2Vzc0NvY29hLm1tCisrKyBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9XZWJQcm9jZXNzQ29jb2EubW0KQEAgLTEyNDIs
MTQgKzEyNDIsNyBAQCB2b2lkIFdlYlByb2Nlc3M6OndhaXRGb3JQZW5kaW5nUGFzdGVib2FyZFdy
aXRlc1RvRmluaXNoKGNvbnN0IFN0cmluZyYgcGFzdGVib2FyZAogI2lmIEVOQUJMRShHUFVfUFJP
Q0VTUykKIHZvaWQgV2ViUHJvY2Vzczo6cGxhdGZvcm1Jbml0aWFsaXplR1BVUHJvY2Vzc0Nvbm5l
Y3Rpb25QYXJhbWV0ZXJzKEdQVVByb2Nlc3NDb25uZWN0aW9uUGFyYW1ldGVycyYgcGFyYW1ldGVy
cykKIHsKLSNpZiBIQVZFKFRBU0tfSURFTlRJVFlfVE9LRU4pCi0gICAgdGFza19pZF90b2tlbl90
IGlkZW50aXR5VG9rZW47Ci0gICAga2Vybl9yZXR1cm5fdCBrciA9IHRhc2tfY3JlYXRlX2lkZW50
aXR5X3Rva2VuKG1hY2hfdGFza19zZWxmKCksICZpZGVudGl0eVRva2VuKTsKLSAgICBpZiAoa3Ig
PT0gS0VSTl9TVUNDRVNTKQotICAgICAgICBwYXJhbWV0ZXJzLndlYlByb2Nlc3NJZGVudGl0eVRv
a2VuID0gTWFjaFNlbmRSaWdodDo6YWRvcHQoaWRlbnRpdHlUb2tlbik7Ci0gICAgZWxzZQotICAg
ICAgICBSRUxFQVNFX0xPR19FUlJPUihQcm9jZXNzLCAiQ2FsbCB0byB0YXNrX2NyZWF0ZV9pZGVu
dGl0eV90b2tlbigpIGZhaWxlZDogJXtwcml2YXRlfXMgKCV4KSIsIG1hY2hfZXJyb3Jfc3RyaW5n
KGtyKSwga3IpOwotI2VuZGlmCisgICAgcGFyYW1ldGVycy53ZWJQcm9jZXNzSWRlbnRpdHlIYW5k
bGUgPSBQcm9jZXNzSWRlbnRpdHk6OmhhbmRsZUZvckN1cnJlbnRQcm9jZXNzKCk7CiAKICAgICBw
YXJhbWV0ZXJzLm92ZXJyaWRlTGFuZ3VhZ2VzID0gdXNlclByZWZlcnJlZExhbmd1YWdlc092ZXJy
aWRlKCk7CiB9CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cK
aW5kZXggYTA0MDhlMzAxZjAwN2YyNmE1MDZjYjkyNGY0NTYwODU4YmY4MTk5MC4uZDY3MTRkODA1
ZGUzZTFkYmY4ZTkxMGFmYjczMTFkNjE4NDkyYmEzYiAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdl
TG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDIxLTExLTExICBL
aW1tbyBLaW5udW5lbiAgPGtraW5udW5lbkBhcHBsZS5jb20+CisKKyAgICAgICAgSU9TdXJmYWNl
IG1lbW9yeSBhdHRyaWJ1dGlvbiBpcyBoYXJkIHRvIHVzZSBpbiBjb25zdHJ1Y3RvcnMKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMjk4OAorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFVwZGF0ZSBjb25zdHJ1
Y3RvciBjYWxsaW5nIGJhc2UgY2xhc3MgY29uc3RydWN0b3IuCisKKyAgICAgICAgKiBUZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYkNvcmUvY29jb2EvVGVzdEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMQ29j
b2EubW06CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpXZWJDb3JlOjpUZXN0ZWRHcmFwaGljc0Nv
bnRleHRHTE9wZW5HTDo6Y3JlYXRlKToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OldlYkNvcmU6
OlRlc3RlZEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMOjpUZXN0ZWRHcmFwaGljc0NvbnRleHRHTE9w
ZW5HTCk6CisKIDIwMjEtMTEtMTAgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAog
ICAgICAgICBXZSBzaG91bGQgbm90IGtpbGwgYWxsIFdlYkNvbnRlbnQgcHJvY2Vzc2VzIHdoZW5l
dmVyIHRoZSBXZWJBdXRobiBwcm9jZXNzIGNyYXNoZXMKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9jb2NvYS9UZXN0R3JhcGhpY3NDb250ZXh0R0xPcGVuR0xD
b2NvYS5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9jb2NvYS9UZXN0R3Jh
cGhpY3NDb250ZXh0R0xPcGVuR0xDb2NvYS5tbQppbmRleCA5MTdkMmU4MTYwYTUzMmJmNjY3NGE0
MjA1NTdlMjRkNWFiYTc4M2Y2Li44YzhlYThmZDhiZTMxYjBkZmNhODA3ZWI2NWQwZTI3MTgxYjhk
ZDljIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvY29jb2Ev
VGVzdEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMQ29jb2EubW0KKysrIGIvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJDb3JlL2NvY29hL1Rlc3RHcmFwaGljc0NvbnRleHRHTE9wZW5HTENvY29h
Lm1tCkBAIC0zOSwxMiArMzksMTIgQEAgY2xhc3MgVGVzdGVkR3JhcGhpY3NDb250ZXh0R0xPcGVu
R0wgOiBwdWJsaWMgR3JhcGhpY3NDb250ZXh0R0xPcGVuR0wgewogcHVibGljOgogICAgIHN0YXRp
YyBSZWZQdHI8VGVzdGVkR3JhcGhpY3NDb250ZXh0R0xPcGVuR0w+IGNyZWF0ZShHcmFwaGljc0Nv
bnRleHRHTEF0dHJpYnV0ZXMgYXR0cmlidXRlcykKICAgICB7Ci0gICAgICAgIGF1dG8gY29udGV4
dCA9IGFkb3B0UmVmKCpuZXcgVGVzdGVkR3JhcGhpY3NDb250ZXh0R0xPcGVuR0woV1RGTW92ZShh
dHRyaWJ1dGVzKSkpOworICAgICAgICBhdXRvIGNvbnRleHQgPSBhZG9wdFJlZigqbmV3IFRlc3Rl
ZEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMKFdURk1vdmUoYXR0cmlidXRlcyksIHsgfSkpOwogICAg
ICAgICByZXR1cm4gY29udGV4dDsKICAgICB9CiBwcml2YXRlOgotICAgIFRlc3RlZEdyYXBoaWNz
Q29udGV4dEdMT3BlbkdMKEdyYXBoaWNzQ29udGV4dEdMQXR0cmlidXRlcyBhdHRyaWJ1dGVzKQot
ICAgICAgICA6IEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMKFdURk1vdmUoYXR0cmlidXRlcykpCisg
ICAgVGVzdGVkR3JhcGhpY3NDb250ZXh0R0xPcGVuR0woR3JhcGhpY3NDb250ZXh0R0xBdHRyaWJ1
dGVzIGF0dHJpYnV0ZXMsIFJlZlB0cjxQcm9jZXNzSWRlbnRpdHk+IHJlc291cmNlT3duZXIpCisg
ICAgICAgIDogR3JhcGhpY3NDb250ZXh0R0xPcGVuR0woV1RGTW92ZShhdHRyaWJ1dGVzKSwgV1RG
TW92ZShyZXNvdXJjZU93bmVyKSkKICAgICB7CiAgICAgfQogfTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>444052</attachid>
            <date>2021-11-12 00:53:51 -0800</date>
            <delta_ts>2021-11-15 06:22:09 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-232988-20211112105349.patch</filename>
            <type>text/plain</type>
            <size>54863</size>
            <attacher name="Kimmo Kinnunen">kkinnunen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg1NzA3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYmIxMDkzNTY5NDUxYmZm
ZjA0Y2IxNWZmYjQ4ZTExOTllMzA2ZjAzYy4uNWUxOTc2MGNhZjJlZGZmZWY5ZWFiMWQ3Zjc3Yzdl
ZTdhZjZkMWI5OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU3IEBACisyMDIxLTExLTExICBLaW1t
byBLaW5udW5lbiAgPGtraW5udW5lbkBhcHBsZS5jb20+CisKKyAgICAgICAgSU9TdXJmYWNlIG1l
bW9yeSBhdHRyaWJ1dGlvbiBpcyBoYXJkIHRvIHVzZSBpbiBjb25zdHJ1Y3RvcnMKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMjk4OAorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBXZWJDb3JlOjpQcm9j
ZXNzSWRlbnRpdHkgdHlwZSB0aGF0IGNhbiBiZSB1c2VkIHRvIGNvbW11bmljYXRlIG1lbW9yeSBh
dHRyaWJ1dGlvbi4KKyAgICAgICAgRm9yIG5vbi1Db2NvYSBwb3J0cywgdGhpcyBpcyBudWxscHRy
LgorICAgICAgICBUaGlzIGlzIHVzZWQgaW4gV2ViQ29yZSB0byBzZXQgdGhlIG1lbW9yeSBhdHRy
aWJ1dGlvbiBvZiBJT1N1cmZhY2UgYW5kIG9iamVjdHMKKyAgICAgICAgdGhhdCBob2xkIElPU3Vy
ZmFjZXMuCisgICAgICAgIFRoaXMgaXMgaW5zdGFudGlhdGVkIGluIFdlYktpdC4KKyAgICAgICAg
Q3VycmVudGx5IHRoZSBvbmx5IHVzZWZ1bCB3YXkgdG8gaW5zdGFudGlhdGUgUHJvY2Vzc0lkZW50
aXR5IGlzIGJ5IHJlY2VpdmluZworICAgICAgICB0aGUgUHJvY2Vzc0lkZW50aXR5OjpIYW5kbGUg
YXMgYSBtZXNzYWdlIGFuZCBjcmVhdGUgaXQgdGhpcyB3YXkgZm9yIHRoZQorICAgICAgICBzZW5k
ZXIgcHJvY2Vzcy4KKworICAgICAgICBObyBuZXcgdGVzdHMsIHJlZmFjdG9yLgorCisgICAgICAg
ICogSGVhZGVycy5jbWFrZToKKyAgICAgICAgKiBTb3VyY2VzLnR4dDoKKyAgICAgICAgKiBXZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogcGxhdGZvcm0vTG9nZ2lu
Zy5oOgorICAgICAgICBBZGQgV2ViQ29yZSBQcm9jZXNzIGxvZyB0YWcgc2luY2UgdGhlIGNvZGUg
bW92ZWQgZnJvbSBXZWJLaXQgdG8gUHJvY2Vzc0lkZW50aXR5CisgICAgICAgIHVzZWQgdGhhdCB0
YWcgdG8gbG9nLgorICAgICAgICAqIHBsYXRmb3JtL1Byb2Nlc3NJZGVudGl0eS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpQcm9jZXNzSWRlbnRpdHk6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3Jl
OjpQcm9jZXNzSWRlbnRpdHk6OlByb2Nlc3NJZGVudGl0eSk6CisgICAgICAgIChXZWJDb3JlOjpQ
cm9jZXNzSWRlbnRpdHk6OmhhbmRsZUZvckN1cnJlbnRQcm9jZXNzKToKKyAgICAgICAgKFdlYkNv
cmU6OlByb2Nlc3NJZGVudGl0eTo6aGFuZGxlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlBy
b2Nlc3NJZGVudGl0eTo6dGFza0lkVG9rZW4gY29uc3QpOgorICAgICAgICAqIHBsYXRmb3JtL1By
b2Nlc3NJZGVudGl0eS5oOgorICAgICAgICBBZGQgdGhlIFByb2Nlc3NJZGVudGl0eSB0eXBlIHRo
YXQgY2FuIGJlIHVzZWQgdG8gY29tbXVuaWNhdGUgbWVtb3J5IGF0dHJpYnV0aW9uLgorCisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvUmVtb3RlVmlkZW9TYW1wbGUuaDoKKyAgICAgICAgKFdl
YkNvcmU6OlJlbW90ZVZpZGVvU2FtcGxlOjpzZXRPd25lcnNoaXBJZGVudGl0eSk6CisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvY2cvSW1hZ2VCdWZmZXJVdGlsaXRpZXNDRy5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjplbmNvZGUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NvY29h
L0dyYXBoaWNzQ29udGV4dEdMT3BlbkdMQ29jb2EubW06CisgICAgICAgIChXZWJDb3JlOjpHcmFw
aGljc0NvbnRleHRHTE9wZW5HTDo6R3JhcGhpY3NDb250ZXh0R0xPcGVuR0wpOgorICAgICAgICAo
V2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0R0xPcGVuR0w6OmFsbG9jYXRlQW5kQmluZERpc3BsYXlC
dWZmZXJCYWNraW5nKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9JT1N1cmZh
Y2UuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9JT1N1cmZhY2UubW06Cisg
ICAgICAgIChXZWJDb3JlOjpJT1N1cmZhY2U6OnNldE93bmVyc2hpcElkZW50aXR5KToKKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9XZWJQcm9jZXNzR3JhcGhpY3NDb250ZXh0R0xP
cGVuR0xDb2NvYS5tbToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR3JhcGhp
Y3NDb250ZXh0R0xPcGVuR0wuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAv
R3JhcGhpY3NDb250ZXh0R0xUZXh0dXJlTWFwcGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okdy
YXBoaWNzQ29udGV4dEdMT3BlbkdMOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhp
Y3NDb250ZXh0R0xPcGVuR0w6OkdyYXBoaWNzQ29udGV4dEdMT3BlbkdMKToKKyAgICAgICAgQWRk
IGFuIGV4YW1wbGUgdXNlIHdoZXJlIHRoZSBjb25zdHJ1Y3RvciB0YWtlcyB0aGUgbWVtb3J5IGF0
dHJpYnV0aW9uIHRva2VuLgorICAgICAgICBUaGlzIG1heSBiZSBuZWVkZWQgaW4gdGhlIGZ1dHVy
ZSB3aGVuIHRoZSB0b2tlbiBpcyB1c2VkIGFzIGEgcGFyYW1ldGVyIGluCisgICAgICAgIHRoZSBB
TkdMRSBjb250ZXh0IGNyZWF0aW9uLgorICAgICAgICBVc2UgdGhlIHRva2VuIGluIGNyZWF0aW5n
IHRoZSBJT1N1cmZhY2UuIFRoaXMgZml4ZXMgYSBidWcgd2hlcmUgV2ViR0wKKyAgICAgICAgYmFj
ayBidWZmZXJzIHdvdWxkIG5vdCBiZSBhdHRyaWJ1dGVkIHVudGlsIHRoZXkgd2VyZSBzZW50IHRv
IFdQLgorCiAyMDIxLTExLTExICBCcmVudCBGdWxnaGFtICA8YmZ1bGdoYW1AYXBwbGUuY29tPgog
CiAgICAgICAgIFtXZWJBdXRobl0gU3RvcCBzZXJpYWxpemluZyBCdWZmZXJTb3VyY2UgYW5kIFZl
Y3Rvcjx1aW50OF90PiBkdXBsaWNhdGVzIG9mIGlkZW50aWZpZXJzCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDNlMWNj
NmVkOWQxZDk0ZmQ2YzdmN2Y4ZmFhZDRiNjY3YzYyZDA4NzYuLjgzNmQyYWY4NmFmMzE2YjU0ZGQ2
NmY5ODhlZTkxMzAwMmE2OTYwNDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9n
CisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTQgQEAKKzIwMjEtMTEt
MTEgIEtpbW1vIEtpbm51bmVuICA8a2tpbm51bmVuQGFwcGxlLmNvbT4KKworICAgICAgICBJT1N1
cmZhY2UgbWVtb3J5IGF0dHJpYnV0aW9uIGlzIGhhcmQgdG8gdXNlIGluIGNvbnN0cnVjdG9ycwor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMyOTg4CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVtb3ZlIGlm
ZGVmcyBhbmQgZGlyZWN0IHVzZSBvZiB0YXNrX2lkX3Rva2VuX3QuCisgICAgICAgIEluc3RlYWQs
IHVzZSBXZWJDb3JlOjpQcm9jZXNzSWRlbnRpZmllci4gVGhpcyB3YXkgdGhlCisgICAgICAgIGNy
b3NzLXBsYXRmb3JtIGNvZGUgaXMgZWFzaWVyIHRvIGF1dGhvci4KKworICAgICAgICAqIEdQVVBy
b2Nlc3MvR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHA6CisgICAgICAgIChXZWJLaXQ6OkdQ
VUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OkdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MpOgorICAg
ICAgICAqIEdQVVByb2Nlc3MvR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oOgorICAgICAgICAo
V2ViS2l0OjpHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjp3ZWJQcm9jZXNzSWRlbnRpdHkgY29u
c3QpOgorICAgICAgICAoV2ViS2l0OjpHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjp3ZWJQcm9j
ZXNzSWRlbnRpdHlUb2tlbiBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgICogR1BVUHJvY2Vzcy9n
cmFwaGljcy9HUFVQcm9jZXNzR3JhcGhpY3NDb250ZXh0R0wuaDoKKyAgICAgICAgKiBHUFVQcm9j
ZXNzL2dyYXBoaWNzL1JlbW90ZUdyYXBoaWNzQ29udGV4dEdMQ29jb2EuY3BwOgorICAgICAgICAo
V2ViS2l0OjpSZW1vdGVHcmFwaGljc0NvbnRleHRHTENvY29hOjpSZW1vdGVHcmFwaGljc0NvbnRl
eHRHTENvY29hKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlR3JhcGhpY3NDb250ZXh0R0xDb2Nv
YTo6cGxhdGZvcm1Xb3JrUXVldWVJbml0aWFsaXplKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3Rl
R3JhcGhpY3NDb250ZXh0R0xDb2NvYTo6cHJlcGFyZUZvckRpc3BsYXkpOgorICAgICAgICAqIEdQ
VVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlSW1hZ2VCdWZmZXIuaDoKKyAgICAgICAgKFdlYktpdDo6
UmVtb3RlSW1hZ2VCdWZmZXI6OnNldE93bmVyc2hpcElkZW50aXR5KToKKyAgICAgICAgKFdlYktp
dDo6UmVtb3RlSW1hZ2VCdWZmZXI6OnNldFByb2Nlc3NPd25lcnNoaXApOiBEZWxldGVkLgorICAg
ICAgICAqIEdQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlbmRlcmluZ0JhY2tlbmQ6OlJlbW90ZVJlbmRlcmluZ0Jh
Y2tlbmQpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZW5kZXJpbmdCYWNrZW5kOjpjcmVhdGVJ
bWFnZUJ1ZmZlcldpdGhRdWFsaWZpZWRJZGVudGlmaWVyKToKKyAgICAgICAgKFdlYktpdDo6UmVt
b3RlUmVuZGVyaW5nQmFja2VuZDo6Z2V0RGF0YVVSTEZvckltYWdlQnVmZmVyV2l0aFF1YWxpZmll
ZElkZW50aWZpZXIpOgorICAgICAgICAqIEdQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVy
aW5nQmFja2VuZC5oOgorICAgICAgICAqIEdQVVByb2Nlc3Mvd2VicnRjL0xpYldlYlJUQ0NvZGVj
c1Byb3h5Lm1tOgorICAgICAgICAoV2ViS2l0OjpGdW5jdGlvbjx2b2lkKToKKyAgICAgICAgKiBT
aGFyZWQvR1BVUHJvY2Vzc0Nvbm5lY3Rpb25QYXJhbWV0ZXJzLmg6CisgICAgICAgIChXZWJLaXQ6
OkdQVVByb2Nlc3NDb25uZWN0aW9uUGFyYW1ldGVyczo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAg
KFdlYktpdDo6R1BVUHJvY2Vzc0Nvbm5lY3Rpb25QYXJhbWV0ZXJzOjpkZWNvZGUpOgorICAgICAg
ICAqIFNoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuY3BwOgorICAgICAgICAqIFNoYXJlZC9X
ZWJDb3JlQXJndW1lbnRDb2RlcnMuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvVXNlck1l
ZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYUNh
cHR1cmVNYW5hZ2VyUHJveHk6OlNvdXJjZVByb3h5OjpTb3VyY2VQcm94eSk6CisgICAgICAgIChX
ZWJLaXQ6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6OlNvdXJjZVByb3h5OjpzZXRTaG91
bGRBcHBseVJvdGF0aW9uKToKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhQ2FwdHVyZU1hbmFn
ZXJQcm94eTo6Y3JlYXRlTWVkaWFTb3VyY2VGb3JDYXB0dXJlRGV2aWNlV2l0aENvbnN0cmFpbnRz
KToKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6Y2xvbmUp
OgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OjpTb3VyY2VQ
cm94eTo6c2V0V2ViUHJvY2Vzc0lkZW50aXR5VG9rZW4pOiBEZWxldGVkLgorICAgICAgICAqIFVJ
UHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5Lmg6CisgICAgICAgIChX
ZWJLaXQ6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6OkNvbm5lY3Rpb25Qcm94eTo6cmVz
b3VyY2VPd25lciBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYUNhcHR1cmVNYW5h
Z2VyUHJveHk6OkNvbm5lY3Rpb25Qcm94eTo6d2ViUHJvY2Vzc0lkZW50aXR5VG9rZW4gY29uc3Qp
OiBEZWxldGVkLgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL2NvY29hL0ltYWdl
QnVmZmVyU2hhcmVhYmxlTWFwcGVkSU9TdXJmYWNlQmFja2VuZC5jcHA6CisgICAgICAgIChXZWJL
aXQ6OkltYWdlQnVmZmVyU2hhcmVhYmxlTWFwcGVkSU9TdXJmYWNlQmFja2VuZDo6c2V0T3duZXJz
aGlwSWRlbnRpdHkpOgorICAgICAgICAoV2ViS2l0OjpJbWFnZUJ1ZmZlclNoYXJlYWJsZU1hcHBl
ZElPU3VyZmFjZUJhY2tlbmQ6OnNldFByb2Nlc3NPd25lcnNoaXApOiBEZWxldGVkLgorICAgICAg
ICAqIFdlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL2NvY29hL0ltYWdlQnVmZmVyU2hhcmVhYmxlTWFw
cGVkSU9TdXJmYWNlQmFja2VuZC5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvY29jb2EvV2ViUHJv
Y2Vzc0NvY29hLm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjpwbGF0Zm9ybUluaXRp
YWxpemVHUFVQcm9jZXNzQ29ubmVjdGlvblBhcmFtZXRlcnMpOgogMjAyMS0xMS0xMSAgUGVyIEFy
bmUgVm9sbGFuIDxwdm9sbGFuQGFwcGxlLmNvbT4KIAogICAgICAgICBbbWFjT1NdW0dQVVBdIFJl
bW92ZSBhY2Nlc3MgdG8gbWFjaCBzZXJ2aWNlcyBpbiBzYW5kYm94CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlIGIvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQpp
bmRleCAzOTE1NzNmMDgyNGNjZDM0ODJkZmQ2MTdmOTdkNmFhNWIwYjdjZWRjLi5kM2EyZmJiYjg2
ODJkMTZkMGMzNWM3MTgyM2E1ZDM0ZGYxYzUyYjY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9IZWFkZXJzLmNtYWtlCisrKyBiL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKQEAgLTEx
NDcsNiArMTE0Nyw3IEBAIHNldChXZWJDb3JlX1BSSVZBVEVfRlJBTUVXT1JLX0hFQURFUlMKICAg
ICBwbGF0Zm9ybS9Qb3B1cE1lbnVDbGllbnQuaAogICAgIHBsYXRmb3JtL1BvcHVwTWVudVN0eWxl
LmgKICAgICBwbGF0Zm9ybS9Qcm9jZXNzSWRlbnRpZmllci5oCisgICAgcGxhdGZvcm0vUHJvY2Vz
c0lkZW50aXR5LmgKICAgICBwbGF0Zm9ybS9Qcm9jZXNzUXVhbGlmaWVkLmgKICAgICBwbGF0Zm9y
bS9Qcm9taXNlZEF0dGFjaG1lbnRJbmZvLmgKICAgICBwbGF0Zm9ybS9QdWJsaWNTdWZmaXguaApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9T
b3VyY2VzLnR4dAppbmRleCA1NGQ4ZDNiZDk4MGU4YjliNmI4MjFmOWNjYjRmYTUyMmUxYmYxZTAy
Li44NDMwNDE1ZjFjNDcyNzI4N2Y0NzdkMzVmOTBlNDI1MzU3MTRhZmI5IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4
dApAQCAtMTg3Niw2ICsxODc2LDcgQEAgcGxhdGZvcm0vUGxhdGZvcm1TdHJhdGVnaWVzLmNwcAog
cGxhdGZvcm0vUGxhdGZvcm1XaGVlbEV2ZW50LmNwcAogcGxhdGZvcm0vUHJldmlld0NvbnZlcnRl
ci5jcHAKIHBsYXRmb3JtL1Byb2Nlc3NJZGVudGlmaWVyLmNwcAorcGxhdGZvcm0vUHJvY2Vzc0lk
ZW50aXR5LmNwcAogcGxhdGZvcm0vUmVmZXJyZXJQb2xpY3kuY3BwCiBwbGF0Zm9ybS9SZW1vdGVD
b21tYW5kTGlzdGVuZXIuY3BwCiBwbGF0Zm9ybS9SdW50aW1lQXBwbGljYXRpb25DaGVja3MuY3Bw
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oK
aW5kZXggOTljODZkOWRiZTdiNWYwOTg0ZWVmNTk2MDNlNWZiYjc4ZTMyYmRmNS4uZTFhYTkxN2I4
MGZiNzE5Yjc5NWVlYTEwM2YyYzJhNGIzODllZWQ5MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMjM2Myw2ICsyMzYzLDcgQEAK
IAkJN0I3MzExRkIyNUMwOTJCNzAwM0IyNzk2IC8qIFNjb3BlZEhpZ2hQZXJmb3JtYW5jZUdQVVJl
cXVlc3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdC
NzMxMUZBMjVDMDkyQjcwMDNCMjc5NiAvKiBTY29wZWRIaWdoUGVyZm9ybWFuY2VHUFVSZXF1ZXN0
LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJN0I4
RUQ1RjAyNkYwQzEzRDAwOEFDMDIzIC8qIENWVXRpbGl0aWVzLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3QjhFRDVFRDI2RjBDMTIzMDA4QUMwMjMgLyog
Q1ZVdGlsaXRpZXMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OwogCQk3QjkwNDE3MDI1NTAxMTQyMDA2RUVCOEMgLyogUmVtb3RlR3JhcGhpY3NDb250ZXh0
R0xQcm94eUJhc2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDdCOTA0MTZFMjU1MDExMDkwMDZFRUI4QyAvKiBSZW1vdGVHcmFwaGljc0NvbnRleHRHTFBy
b3h5QmFzZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CisJCTdCQTdDNkMzMjczQkY2MkMwMDI5REZCRSAvKiBQcm9jZXNzSWRlbnRpdHkuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdCQTdDNkMxMjczQkY2MkIw
MDI5REZCRSAvKiBQcm9jZXNzSWRlbnRpdHkuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9
IChQcml2YXRlLCApOyB9OyB9OwogCQk3QkIzNEE0ODI1Mzc3NkNBMDAwMjlEMDggLyogR3JhcGhp
Y3NDb250ZXh0R0xJbWFnZUV4dHJhY3Rvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gN0JCMzRBNDUyNTM3NzZDNjAwMDI5RDA4IC8qIEdyYXBoaWNzQ29u
dGV4dEdMSW1hZ2VFeHRyYWN0b3IuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2
YXRlLCApOyB9OyB9OwogCQk3QkI2ODBCQTI1QkExQkU0MDAyQjg3MzggLyogR3JhcGhpY3NDaGVj
a3NNYWMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdC
QjY4MEI4MjVCQTFCRTQwMDJCODczOCAvKiBHcmFwaGljc0NoZWNrc01hYy5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTdCRTc0MjczODFGQTkwNkZC
QjRGMEYyQyAvKiBKU1NWR0dyYXBoaWNzRWxlbWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTUwQzRDMDJCRUQ4OTM2RjgxOEUyRjk5IC8qIEpTU1ZH
R3JhcGhpY3NFbGVtZW50LmggKi87IH07CkBAIC0xMTAyNiw2ICsxMTAyNyw4IEBACiAJCTdCOEVE
NUVEMjZGMEMxMjMwMDhBQzAyMyAvKiBDVlV0aWxpdGllcy5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBDVlV0aWxpdGllcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk3QjhFRDVFRjI2RjBDMTIzMDA4QUMwMjMgLyogQ1ZVdGlsaXRpZXMubW0gKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBDVlV0aWxpdGllcy5tbTsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJN0I5MDQxNkUyNTUwMTEwOTAwNkVFQjhDIC8qIFJlbW90ZUdyYXBo
aWNzQ29udGV4dEdMUHJveHlCYXNlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbW90ZUdyYXBoaWNzQ29u
dGV4dEdMUHJveHlCYXNlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTdCQTdDNkJG
MjczQkY2MkIwMDI5REZCRSAvKiBQcm9jZXNzSWRlbnRpdHkuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gUHJvY2Vzc0lkZW50aXR5LmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJN0JBN0M2QzEyNzNCRjYyQjAwMjlERkJFIC8qIFByb2Nlc3NJZGVudGl0
eS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQcm9jZXNzSWRlbnRpdHkuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0JCMzRBMTYyNTM0NUNCMjAwMDI5RDA4IC8q
IEFOR0xFVXRpbGl0aWVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEFOR0xF
VXRpbGl0aWVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdCQjM0QTQ1MjUzNzc2
QzYwMDAyOUQwOCAvKiBHcmFwaGljc0NvbnRleHRHTEltYWdlRXh0cmFjdG9yLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IEdyYXBoaWNzQ29udGV4dEdMSW1hZ2VFeHRyYWN0b3IuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJN0JCMzRBNDcyNTM3NzZDNzAwMDI5RDA4IC8qIEdyYXBoaWNzQ29udGV4
dEdMSW1hZ2VFeHRyYWN0b3IuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gR3JhcGhpY3NDb250ZXh0
R0xJbWFnZUV4dHJhY3Rvci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xODkz
OCwxMSArMTg5NDEsMTEgQEAKIAkJMUE1NjlDQzQwRDdFMkI2MDAwN0MzOTgzIC8qIGJyaWRnZSAq
LyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCi0JCQkJNTlCNTk3NzEx
MTA4NjU1NjAwNzE1OUU4IC8qIGpzYyAqLywKLQkJCQkxQTU2OUNFMjBEN0UyQjgyMDA3QzM5ODMg
Lyogb2JqYyAqLywKIAkJCQk1OTlFNzU4RjExMDU1QTFGMDBEOTA0RkEgLyogQnJpZGdlLmggKi8s
CiAJCQkJMUE3MUQ1NzkwRjMzODE5MDAwRjlDRTRFIC8qIElkZW50aWZpZXJSZXAuY3BwICovLAog
CQkJCTFBNzFENTdBMEYzMzgxOTAwMEY5Q0U0RSAvKiBJZGVudGlmaWVyUmVwLmggKi8sCisJCQkJ
NTlCNTk3NzExMTA4NjU1NjAwNzE1OUU4IC8qIGpzYyAqLywKKwkJCQkxQTU2OUNFMjBEN0UyQjgy
MDA3QzM5ODMgLyogb2JqYyAqLywKIAkJCQkxQTU2OUNFRjBEN0UyQjgyMDA3QzM5ODMgLyogcnVu
dGltZV9hcnJheS5jcHAgKi8sCiAJCQkJMUE1NjlDRjAwRDdFMkI4MjAwN0MzOTgzIC8qIHJ1bnRp
bWVfYXJyYXkuaCAqLywKIAkJCQkxQTU2OUNGMTBEN0UyQjgyMDA3QzM5ODMgLyogcnVudGltZV9t
ZXRob2QuY3BwICovLApAQCAtMjkwMjUsNiArMjkwMjgsOCBAQAogCQkJCUExQURBRjdDMjM2MEZE
M0UwMDlDQjc3NiAvKiBQcmV2aWV3Q29udmVydGVyUHJvdmlkZXIuaCAqLywKIAkJCQk1MUY2NDVE
MjFGRUNEQkM4MDBCNTRERUQgLyogUHJvY2Vzc0lkZW50aWZpZXIuY3BwICovLAogCQkJCTUxRjY0
NUQzMUZFQ0RCQzgwMEI1NERFRCAvKiBQcm9jZXNzSWRlbnRpZmllci5oICovLAorCQkJCTdCQTdD
NkJGMjczQkY2MkIwMDI5REZCRSAvKiBQcm9jZXNzSWRlbnRpdHkuY3BwICovLAorCQkJCTdCQTdD
NkMxMjczQkY2MkIwMDI5REZCRSAvKiBQcm9jZXNzSWRlbnRpdHkuaCAqLywKIAkJCQkxQ0M1NEFG
QjI3MEY5MkRBMDA1QkY4QkUgLyogUHJvY2Vzc1F1YWxpZmllZC5oICovLAogCQkJCUY0N0E2MzND
MUZGNkZENTAwMDgxQjNDQyAvKiBQcm9taXNlZEF0dGFjaG1lbnRJbmZvLmggKi8sCiAJCQkJMDA4
MUZFRkQxNkIwQTI0NDAwOEFBQTdBIC8qIFB1YmxpY1N1ZmZpeC5oICovLApAQCAtMzU1MTYsNiAr
MzU1MjEsNyBAQAogCQkJCUI3MUZFNkRGMTEwOTFDQjMwMERBRUY3NyAvKiBQcmludENvbnRleHQu
aCBpbiBIZWFkZXJzICovLAogCQkJCTZCMEEwN0YyMjFGQTRCNUMwMEQ1NzM5MSAvKiBQcml2YXRl
Q2xpY2tNZWFzdXJlbWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTFGNjQ1RDUxRkVDREJDRTAw
QjU0REVEIC8qIFByb2Nlc3NJZGVudGlmaWVyLmggaW4gSGVhZGVycyAqLywKKwkJCQk3QkE3QzZD
MzI3M0JGNjJDMDAyOURGQkUgLyogUHJvY2Vzc0lkZW50aXR5LmggaW4gSGVhZGVycyAqLywKIAkJ
CQlBOEVBN0VCQzBBMTk0NUQwMDBBOEVGNUYgLyogUHJvY2Vzc2luZ0luc3RydWN0aW9uLmggaW4g
SGVhZGVycyAqLywKIAkJCQkxQ0M1NEFGRTI3MEY5NkFFMDA1QkY4QkUgLyogUHJvY2Vzc1F1YWxp
ZmllZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTQyMDUwMTcyMTQxOTAxQjAwNjZFRjNCIC8qIFBy
b2Nlc3NXYXJtaW5nLmggaW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL0xvZ2dpbmcuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xvZ2dpbmcuaApp
bmRleCAzZmJlNDE3YmU5ODFiNzVlNzc5ZGUyMzhmYzRiZTA1YTZkNzMwZmFhLi5kYzBmNTA5OGI4
N2YxODQ1NTI1YmUzYzBiYTQxZjc2NzViMTQwNDdmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9Mb2dnaW5nLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTG9nZ2lu
Zy5oCkBAIC05NCw2ICs5NCw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICBNKFBsdWdpbnMp
IFwKICAgICBNKFBvcHVwQmxvY2tpbmcpIFwKICAgICBNKFByaXZhdGVDbGlja01lYXN1cmVtZW50
KSBcCisgICAgTShQcm9jZXNzKSBcCiAgICAgTShQcm9ncmVzcykgXAogICAgIE0oUmVtb3RlSW5z
cGVjdG9yKSBcCiAgICAgTShSZXF1ZXN0QW5pbWF0aW9uRnJhbWUpIFwKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Byb2Nlc3NJZGVudGl0eS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9Qcm9jZXNzSWRlbnRpdHkuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjcxOWQwMzY4OTEzMTY4
MDE4NzRkZDM3MGZiMmJiMzIxMGYzNTY2ODkKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9Qcm9jZXNzSWRlbnRpdHkuY3BwCkBAIC0wLDAgKzEsNzkgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFT
IElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJV
VE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVT
UyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQK
KyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmln
LmgiCisjaW5jbHVkZSAiUHJvY2Vzc0lkZW50aXR5LmgiCisKKyNpbmNsdWRlICJMb2dnaW5nLmgi
CisKKyNpZiBIQVZFKFRBU0tfSURFTlRJVFlfVE9LRU4pCisjaW5jbHVkZSA8bWFjaC9tYWNoLmg+
CisjZW5kaWYKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitSZWZQdHI8UHJvY2Vzc0lkZW50aXR5
PiBQcm9jZXNzSWRlbnRpdHk6OmNyZWF0ZShIYW5kbGUmJiBoYW5kbGUpCit7CisjaWYgSEFWRShU
QVNLX0lERU5USVRZX1RPS0VOKQorICAgIGlmIChoYW5kbGUpCisgICAgICAgIHJldHVybiBhZG9w
dFJlZihuZXcgUHJvY2Vzc0lkZW50aXR5KFdURk1vdmUoaGFuZGxlKSkpOworI2Vsc2UKKyAgICBV
TlVTRURfUEFSQU0oaGFuZGxlKTsKKyNlbmRpZgorICAgIHJldHVybiBudWxscHRyOworfQorCitQ
cm9jZXNzSWRlbnRpdHk6OlByb2Nlc3NJZGVudGl0eShIYW5kbGUmJiBoYW5kbGUpCisgICAgOiBt
X2hhbmRsZShXVEZNb3ZlKGhhbmRsZSkpCit7Cit9CisKK1Byb2Nlc3NJZGVudGl0eTo6SGFuZGxl
IFByb2Nlc3NJZGVudGl0eTo6aGFuZGxlRm9yQ3VycmVudFByb2Nlc3MoKQoreworICAgIFByb2Nl
c3NJZGVudGl0eTo6SGFuZGxlIHJlc3VsdDsKKyNpZiBIQVZFKFRBU0tfSURFTlRJVFlfVE9LRU4p
CisgICAgdGFza19pZF90b2tlbl90IGlkZW50aXR5VG9rZW47CisgICAga2Vybl9yZXR1cm5fdCBr
ciA9IHRhc2tfY3JlYXRlX2lkZW50aXR5X3Rva2VuKG1hY2hfdGFza19zZWxmKCksICZpZGVudGl0
eVRva2VuKTsKKyAgICBpZiAoa3IgPT0gS0VSTl9TVUNDRVNTKQorICAgICAgICByZXN1bHQgPSBN
YWNoU2VuZFJpZ2h0OjphZG9wdChpZGVudGl0eVRva2VuKTsKKyAgICBlbHNlCisgICAgICAgIFJF
TEVBU0VfTE9HX0VSUk9SKFByb2Nlc3MsICJ0YXNrX2NyZWF0ZV9pZGVudGl0eV90b2tlbigpIGZh
aWxlZDogJXtwcml2YXRlfXMgKCV4KSIsIG1hY2hfZXJyb3Jfc3RyaW5nKGtyKSwga3IpOworI2Vu
ZGlmCisgICAgcmV0dXJuIHJlc3VsdDsKK30KKworY29uc3QgUHJvY2Vzc0lkZW50aXR5OjpIYW5k
bGUmIFByb2Nlc3NJZGVudGl0eTo6aGFuZGxlKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9oYW5k
bGU7Cit9CisKKyNpZiBIQVZFKFRBU0tfSURFTlRJVFlfVE9LRU4pCit0YXNrX2lkX3Rva2VuX3Qg
UHJvY2Vzc0lkZW50aXR5Ojp0YXNrSWRUb2tlbigpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1faGFu
ZGxlLnNlbmRSaWdodCgpOworfQorI2VuZGlmCisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL1Byb2Nlc3NJZGVudGl0eS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
UHJvY2Vzc0lkZW50aXR5LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMGNhMDE5M2IxMmU1NDQzNmM2ZmViYmM2ZWJl
MzRlMDE2Mzc2MGZhMAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L1Byb2Nlc3NJZGVudGl0eS5oCkBAIC0wLDAgKzEsNjEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQor
ICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBM
QVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgPHd0Zi9U
aHJlYWRTYWZlUmVmQ291bnRlZC5oPgorCisjaWYgSEFWRShUQVNLX0lERU5USVRZX1RPS0VOKQor
I2luY2x1ZGUgPHd0Zi9NYWNoU2VuZFJpZ2h0Lmg+CisjZWxzZQorI2luY2x1ZGUgPHZhcmlhbnQ+
CisjZW5kaWYKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCisvLyBPYmplY3QgdG8gYWNjZXNzIHBy
b29mIG9mIHByb2Nlc3MgaWRlbnRpdHkuCisvLyBQcm9jZXNzSWRlbnRpZmllciBpZGVudGlmaWVz
IGEgcHJvY2Vzcy4KKy8vIFByb2Nlc3NJZGVudGl0eSBncmFudHMgYWNjZXNzIHRvIHRoZSBpZGVu
dGl0eS4KK2NsYXNzIFdFQkNPUkVfRVhQT1JUIFByb2Nlc3NJZGVudGl0eSBmaW5hbCA6IHB1Ymxp
YyBUaHJlYWRTYWZlUmVmQ291bnRlZDxQcm9jZXNzSWRlbnRpdHk+IHsKK3B1YmxpYzoKKyNpZiBI
QVZFKFRBU0tfSURFTlRJVFlfVE9LRU4pCisgICAgdXNpbmcgSGFuZGxlID0gTWFjaFNlbmRSaWdo
dDsKKyNlbHNlCisgICAgdXNpbmcgSGFuZGxlID0gc3RkOjptb25vc3RhdGU7CisjZW5kaWYKKyAg
ICBzdGF0aWMgUmVmUHRyPFByb2Nlc3NJZGVudGl0eT4gY3JlYXRlKEhhbmRsZSYmKTsKKyAgICBz
dGF0aWMgSGFuZGxlIGhhbmRsZUZvckN1cnJlbnRQcm9jZXNzKCk7CisgICAgY29uc3QgSGFuZGxl
JiBoYW5kbGUoKSBjb25zdDsKKworI2lmIEhBVkUoVEFTS19JREVOVElUWV9UT0tFTikKKyAgICB0
YXNrX2lkX3Rva2VuX3QgdGFza0lkVG9rZW4oKSBjb25zdDsKKyNlbmRpZgorcHJpdmF0ZToKKyAg
ICBQcm9jZXNzSWRlbnRpdHkoSGFuZGxlJiYpOworCisgICAgSGFuZGxlIG1faGFuZGxlOworfTsK
KworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvUmVtb3Rl
VmlkZW9TYW1wbGUuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1JlbW90ZVZp
ZGVvU2FtcGxlLmgKaW5kZXggYTYxNzBiMzI4ZmM0NGFjZTY5M2RjZGIzNWVlNGQzY2U2ODczMzhh
MS4uMGY1YmFlYTg1NmUzZjFhOGNlMTY1YjIwMzg2NWM5NjQ0MzU0MjU2MSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvUmVtb3RlVmlkZW9TYW1wbGUuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9SZW1vdGVWaWRlb1NhbXBsZS5oCkBA
IC0zNyw2ICszNyw4IEBAIHR5cGVkZWYgc3RydWN0IF9fQ1ZCdWZmZXIqIENWUGl4ZWxCdWZmZXJS
ZWY7CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAorY2xhc3MgUHJvY2Vzc0lkZW50aXR5OworCiBj
bGFzcyBSZW1vdGVWaWRlb1NhbXBsZSB7CiBwdWJsaWM6CiAgICAgUmVtb3RlVmlkZW9TYW1wbGUo
KSA9IGRlZmF1bHQ7CkBAIC00OCw5ICs1MCw3IEBAIHB1YmxpYzoKICAgICBXRUJDT1JFX0VYUE9S
VCBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPFJlbW90ZVZpZGVvU2FtcGxlPiBjcmVhdGUoUmV0YWlu
UHRyPENWUGl4ZWxCdWZmZXJSZWY+JiYsIE1lZGlhVGltZSYmIHByZXNlbnRhdGlvblRpbWUsIE1l
ZGlhU2FtcGxlOjpWaWRlb1JvdGF0aW9uID0gTWVkaWFTYW1wbGU6OlZpZGVvUm90YXRpb246Ok5v
bmUpOwogICAgIFdFQkNPUkVfRVhQT1JUIElPU3VyZmFjZVJlZiBzdXJmYWNlKCkgY29uc3Q7CiAK
LSNpZiBIQVZFKElPU1VSRkFDRV9TRVRfT1dORVJTSElQX0lERU5USVRZKQotICAgIHZvaWQgc2V0
T3duZXJzaGlwSWRlbnRpdHkodGFza19pZF90b2tlbl90IG5ld093bmVyKTsKLSNlbmRpZgorICAg
IHZvaWQgc2V0T3duZXJzaGlwSWRlbnRpdHkoUHJvY2Vzc0lkZW50aXR5KiByZXNvdXJjZU93bmVy
KTsKIAogICAgIGNvbnN0IE1lZGlhVGltZSYgdGltZSgpIGNvbnN0IHsgcmV0dXJuIG1fdGltZTsg
fQogICAgIHVpbnQzMl90IHZpZGVvRm9ybWF0KCkgY29uc3QgeyByZXR1cm4gbV92aWRlb0Zvcm1h
dDsgfQpAQCAtMTE5LDEzICsxMTksMTEgQEAgcHJpdmF0ZToKICAgICBib29sIG1fbWlycm9yZWQg
eyBmYWxzZSB9OwogfTsKIAotI2lmIEhBVkUoSU9TVVJGQUNFX1NFVF9PV05FUlNISVBfSURFTlRJ
VFkpCi1pbmxpbmUgdm9pZCBSZW1vdGVWaWRlb1NhbXBsZTo6c2V0T3duZXJzaGlwSWRlbnRpdHko
dGFza19pZF90b2tlbl90IG5ld093bmVyKQoraW5saW5lIHZvaWQgUmVtb3RlVmlkZW9TYW1wbGU6
OnNldE93bmVyc2hpcElkZW50aXR5KFByb2Nlc3NJZGVudGl0eSogcmVzb3VyY2VPd25lcikKIHsK
ICAgICBpZiAobV9pb1N1cmZhY2UpCi0gICAgICAgIG1faW9TdXJmYWNlLT5zZXRPd25lcnNoaXBJ
ZGVudGl0eShuZXdPd25lcik7CisgICAgICAgIG1faW9TdXJmYWNlLT5zZXRPd25lcnNoaXBJZGVu
dGl0eShyZXNvdXJjZU93bmVyKTsKIH0KLSNlbmRpZgogCiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0dyYXBoaWNzQ29udGV4dEdMT3BlbkdM
Q29jb2EubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9HcmFwaGlj
c0NvbnRleHRHTE9wZW5HTENvY29hLm1tCmluZGV4IGZiNzIzZGQ0MjJkZTliOWRhZGE5ZTRjYjg5
N2QwNjFjYmU2ZDYwM2UuLjE5NzlkYTU2NzI0YmEwZDI1YWRhNWQxNDFiNjNmNWFiNWYxZTdhOTQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0dyYXBo
aWNzQ29udGV4dEdMT3BlbkdMQ29jb2EubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY29jb2EvR3JhcGhpY3NDb250ZXh0R0xPcGVuR0xDb2NvYS5tbQpAQCAtMTkzLDgg
KzE5Myw5IEBAIHN0YXRpYyBib29sIG5lZWRzRUFHTE9uTWFjKCkKIH0KICNlbmRpZgogCi1HcmFw
aGljc0NvbnRleHRHTE9wZW5HTDo6R3JhcGhpY3NDb250ZXh0R0xPcGVuR0woR3JhcGhpY3NDb250
ZXh0R0xBdHRyaWJ1dGVzIGF0dHJzKQorR3JhcGhpY3NDb250ZXh0R0xPcGVuR0w6OkdyYXBoaWNz
Q29udGV4dEdMT3BlbkdMKEdyYXBoaWNzQ29udGV4dEdMQXR0cmlidXRlcyYmIGF0dHJzLCBSZWZQ
dHI8UHJvY2Vzc0lkZW50aXR5PiYmIHJlc291cmNlT3duZXIpCiAgICAgOiBHcmFwaGljc0NvbnRl
eHRHTChhdHRycykKKyAgICAsIG1fcmVzb3VyY2VPd25lcihXVEZNb3ZlKHJlc291cmNlT3duZXIp
KQogewogICAgIG1faXNGb3JXZWJHTDIgPSBhdHRycy53ZWJHTFZlcnNpb24gPT0gR3JhcGhpY3ND
b250ZXh0R0xXZWJHTFZlcnNpb246OldlYkdMMjsKICAgICBpZiAoYXR0cnMudXNlTWV0YWwgJiYg
IXBsYXRmb3JtU3VwcG9ydHNNZXRhbChtX2lzRm9yV2ViR0wyKSkgewpAQCAtNTY1LDYgKzU2Niw4
IEBAIGJvb2wgR3JhcGhpY3NDb250ZXh0R0xPcGVuR0w6OmFsbG9jYXRlQW5kQmluZERpc3BsYXlC
dWZmZXJCYWNraW5nKCkKICAgICBhdXRvIGJhY2tpbmcgPSBJT1N1cmZhY2U6OmNyZWF0ZShnZXRJ
bnRlcm5hbEZyYW1lYnVmZmVyU2l6ZSgpLCBEZXN0aW5hdGlvbkNvbG9yU3BhY2U6OlNSR0IoKSk7
CiAgICAgaWYgKCFiYWNraW5nKQogICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgaWYgKG1fcmVz
b3VyY2VPd25lcikKKyAgICAgICAgYmFja2luZy0+c2V0T3duZXJzaGlwSWRlbnRpdHkobV9yZXNv
dXJjZU93bmVyLmdldCgpKTsKIAogICAgIGJhY2tpbmctPm1pZ3JhdGVDb2xvclNwYWNlVG9Qcm9w
ZXJ0aWVzKCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2NvY29hL0lPU3VyZmFjZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29j
b2EvSU9TdXJmYWNlLmgKaW5kZXggNTY1MjQ3ODIyZGJhMjlmNzYwMGI5NDA3ZTZmNGFjYjhjMWEw
NmFhYy4uMGM0M2NhNGY4MDRkMjYwYzYxMDVlYjkyYjYxMTA5MWUyYzI1MzJhMiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvSU9TdXJmYWNlLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvSU9TdXJmYWNlLmgKQEAg
LTQ2LDYgKzQ2LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogY2xhc3MgR3JhcGhpY3NDb250ZXh0
OwogY2xhc3MgSG9zdFdpbmRvdzsKIGNsYXNzIEltYWdlQnVmZmVyOworY2xhc3MgUHJvY2Vzc0lk
ZW50aXR5OwogCiBlbnVtIGNsYXNzIFBpeGVsRm9ybWF0IDogdWludDhfdDsKIGVudW0gY2xhc3Mg
Vm9sYXRpbGl0eVN0YXRlIDogdWludDhfdDsKQEAgLTE1OSw5ICsxNjAsNyBAQCBwdWJsaWM6CiAg
ICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIHZvaWQgY29udmVydFRvRm9ybWF0KHN0ZDo6dW5pcXVl
X3B0cjxXZWJDb3JlOjpJT1N1cmZhY2U+JiYgaW5TdXJmYWNlLCBGb3JtYXQsIEZ1bmN0aW9uPHZv
aWQoc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OklPU3VyZmFjZT4pPiYmKTsKICNlbmRpZiAvLyBI
QVZFKElPU1VSRkFDRV9BQ0NFTEVSQVRPUikKIAotI2lmIEhBVkUoSU9TVVJGQUNFX1NFVF9PV05F
UlNISVBfSURFTlRJVFkpCi0gICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRPd25lcnNoaXBJZGVu
dGl0eSh0YXNrX2lkX3Rva2VuX3QgbmV3T3duZXIpOwotI2VuZGlmCisgICAgV0VCQ09SRV9FWFBP
UlQgdm9pZCBzZXRPd25lcnNoaXBJZGVudGl0eShQcm9jZXNzSWRlbnRpdHkqIHJlc291cmNlT3du
ZXIpOwogCiAgICAgdm9pZCBtaWdyYXRlQ29sb3JTcGFjZVRvUHJvcGVydGllcygpOwogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9JT1N1cmZhY2Uu
bW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9JT1N1cmZhY2UubW0K
aW5kZXggMDExMTY1Y2UxMWFiY2U2NzVjNGI0N2JmOTE1ZDRjODFlNmNlZTk5NS4uMTViZjY4Zjdm
ZTVhNjk4NjdmY2M5ZDU2YTZlNWJkNGY2YmMzZDMwMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvSU9TdXJmYWNlLm1tCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0lPU3VyZmFjZS5tbQpAQCAtMzQsNiArMzQsNyBA
QAogI2ltcG9ydCAiSW1hZ2VCdWZmZXIuaCIKICNpbXBvcnQgIkxvZ2dpbmcuaCIKICNpbXBvcnQg
IlBsYXRmb3JtU2NyZWVuLmgiCisjaW1wb3J0ICJQcm9jZXNzSWRlbnRpdHkuaCIKICNpbXBvcnQg
PHBhbC9zcGkvY2cvQ29yZUdyYXBoaWNzU1BJLmg+CiAjaW1wb3J0IDx3dGYvQXNzZXJ0aW9ucy5o
PgogI2ltcG9ydCA8d3RmL01hY2hTZW5kUmlnaHQuaD4KQEAgLTQ4NCwxNCArNDg1LDE3IEBAIHZv
aWQgSU9TdXJmYWNlOjpjb252ZXJ0VG9Gb3JtYXQoc3RkOjp1bmlxdWVfcHRyPElPU3VyZmFjZT4m
JiBpblN1cmZhY2UsIEZvcm1hdCBmCiAKICNlbmRpZiAvLyBIQVZFKElPU1VSRkFDRV9BQ0NFTEVS
QVRPUikKIAotI2lmIEhBVkUoSU9TVVJGQUNFX1NFVF9PV05FUlNISVBfSURFTlRJVFkpCi12b2lk
IElPU3VyZmFjZTo6c2V0T3duZXJzaGlwSWRlbnRpdHkodGFza19pZF90b2tlbl90IG5ld093bmVy
KQordm9pZCBJT1N1cmZhY2U6OnNldE93bmVyc2hpcElkZW50aXR5KFByb2Nlc3NJZGVudGl0eSog
cmVzb3VyY2VPd25lcikKIHsKLSAgICBhdXRvIHJlc3VsdCA9IElPU3VyZmFjZVNldE93bmVyc2hp
cElkZW50aXR5KG1fc3VyZmFjZS5nZXQoKSwgbmV3T3duZXIsIGtJT1N1cmZhY2VNZW1vcnlMZWRn
ZXJUYWdHcmFwaGljcywgMCk7CisjaWYgSEFWRShJT1NVUkZBQ0VfU0VUX09XTkVSU0hJUF9JREVO
VElUWSkgJiYgSEFWRShUQVNLX0lERU5USVRZX1RPS0VOKQorICAgIHRhc2tfaWRfdG9rZW5fdCBv
d25lclRhc2tJZFRva2VuID0gcmVzb3VyY2VPd25lciA/IHJlc291cmNlT3duZXItPnRhc2tJZFRv
a2VuKCkgOiAwOworICAgIGF1dG8gcmVzdWx0ID0gSU9TdXJmYWNlU2V0T3duZXJzaGlwSWRlbnRp
dHkobV9zdXJmYWNlLmdldCgpLCBvd25lclRhc2tJZFRva2VuLCBrSU9TdXJmYWNlTWVtb3J5TGVk
Z2VyVGFnR3JhcGhpY3MsIDApOwogICAgIGlmIChyZXN1bHQgIT0ga0lPUmV0dXJuU3VjY2VzcykK
LSAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoSU9TdXJmYWNlLCAiSU9TdXJmYWNlOjpzZXRPd25l
cnNoaXBJZGVudGl0eTogRmFpbGVkIHRvIGNsYWltIG93bmVyc2hpcCBvZiBJT1N1cmZhY2UgJXAs
IG5ld093bmVyOiAlZCwgZXJyb3I6ICVkIiwgbV9zdXJmYWNlLmdldCgpLCAoaW50KW5ld093bmVy
LCByZXN1bHQpOwotfQorICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihJT1N1cmZhY2UsICJJT1N1
cmZhY2U6OnNldE93bmVyc2hpcElkZW50aXR5OiBGYWlsZWQgdG8gY2xhaW0gb3duZXJzaGlwIG9m
IElPU3VyZmFjZSAlcCwgdGFzayBpZCB0b2tlbjogJWQsIGVycm9yOiAlZCIsIG1fc3VyZmFjZS5n
ZXQoKSwgKGludClvd25lclRhc2tJZFRva2VuLCByZXN1bHQpOworI2Vsc2UKKyAgICBVTlVTRURf
UEFSQU0ocmVzb3VyY2VPd25lcik7CiAjZW5kaWYKK30KIAogdm9pZCBJT1N1cmZhY2U6Om1pZ3Jh
dGVDb2xvclNwYWNlVG9Qcm9wZXJ0aWVzKCkKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1dlYlByb2Nlc3NHcmFwaGljc0NvbnRleHRHTE9wZW5H
TENvY29hLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvV2ViUHJv
Y2Vzc0dyYXBoaWNzQ29udGV4dEdMT3BlbkdMQ29jb2EubW0KaW5kZXggMjU2MjVlZGJmZTI1NGUz
NzVmZWYxNjk4MTY5ZjUyZWZkNGFhNzcyMi4uY2FjNDRhMWRiNGRmYzBmNzE3MDRjNzQxODRkYTQ2
MzcyYjMxMjNhZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y29jb2EvV2ViUHJvY2Vzc0dyYXBoaWNzQ29udGV4dEdMT3BlbkdMQ29jb2EubW0KKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvV2ViUHJvY2Vzc0dyYXBoaWNzQ29u
dGV4dEdMT3BlbkdMQ29jb2EubW0KQEAgLTU3LDcgKzU3LDcgQEAgcHVibGljOgogICAgIHZvaWQg
cHJlcGFyZUZvckRpc3BsYXkoKSBmaW5hbDsKIHByaXZhdGU6CiAgICAgV2ViUHJvY2Vzc0dyYXBo
aWNzQ29udGV4dEdMT3BlbkdMKEdyYXBoaWNzQ29udGV4dEdMQXR0cmlidXRlcyBhdHRyaWJ1dGVz
KQotICAgICAgICA6IEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMKGF0dHJpYnV0ZXMpCisgICAgICAg
IDogR3JhcGhpY3NDb250ZXh0R0xPcGVuR0woV1RGTW92ZShhdHRyaWJ1dGVzKSwgeyB9KQogICAg
ICAgICAsIG1fd2ViR0xMYXllcihjcmVhdGVXZWJHTExheWVyKGF0dHJpYnV0ZXMpKQogICAgIHsK
ICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVu
Z2wvR3JhcGhpY3NDb250ZXh0R0xPcGVuR0wuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL29wZW5nbC9HcmFwaGljc0NvbnRleHRHTE9wZW5HTC5oCmluZGV4IDM4MjczYjA3MmI1
NmQzZmRhMmJjZGUzNDhiM2UwZjc0MmMyMDA1ZTUuLmZlMTNlYWZmNGQ3M2ZhNjcwMTYzNjBlOGQy
YjhjZjhkMzNhYzhlNTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL29wZW5nbC9HcmFwaGljc0NvbnRleHRHTE9wZW5HTC5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HcmFwaGljc0NvbnRleHRHTE9wZW5HTC5oCkBAIC0y
OCw2ICsyOCw3IEBACiAjaWYgRU5BQkxFKFdFQkdMKQogCiAjaW5jbHVkZSAiR3JhcGhpY3NDb250
ZXh0R0wuaCIKKyNpbmNsdWRlICJQcm9jZXNzSWRlbnRpdHkuaCIKICNpbmNsdWRlIDxtZW1vcnk+
CiAjaW5jbHVkZSA8d3RmL0hhc2hDb3VudGVkU2V0Lmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAu
aD4KQEAgLTU0Myw4ICs1NDQsOSBAQCBwdWJsaWM6CiAjZW5kaWYKIAogcHJvdGVjdGVkOgotICAg
IEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMKEdyYXBoaWNzQ29udGV4dEdMQXR0cmlidXRlcyk7Cisg
ICAgR3JhcGhpY3NDb250ZXh0R0xPcGVuR0woR3JhcGhpY3NDb250ZXh0R0xBdHRyaWJ1dGVzJiYs
IFJlZlB0cjxQcm9jZXNzSWRlbnRpdHk+JiYgcmVzb3VyY2VPd25lcik7CiAgICAgYm9vbCBpc1Zh
bGlkKCkgY29uc3Q7CisgICAgUmVmUHRyPFByb2Nlc3NJZGVudGl0eT4gbV9yZXNvdXJjZU93bmVy
OwogI2lmIFBMQVRGT1JNKENPQ09BKQogICAgIEdyYXBoaWNzQ29udGV4dEdMSU9TdXJmYWNlU3dh
cENoYWluIG1fc3dhcENoYWluOwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvR3JhcGhpY3NDb250ZXh0R0xUZXh0dXJlTWFwcGVyLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9HcmFwaGljc0NvbnRl
eHRHTFRleHR1cmVNYXBwZXIuY3BwCmluZGV4IGUyODUxYzJlM2QyMjE3NzE2OTRiZGQ2ZjEyZjBl
NWY3ODk5Yzc1NWIuLjgzMDYzN2MxMmE3ZGFjYjkzMjM3NGNlNDlmMTI0ODk3NThhMTFhZjUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9HcmFwaGlj
c0NvbnRleHRHTFRleHR1cmVNYXBwZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL3RleG1hcC9HcmFwaGljc0NvbnRleHRHTFRleHR1cmVNYXBwZXIuY3BwCkBAIC04
NSw3ICs4NSw3IEBAIFJlZlB0cjxHcmFwaGljc0NvbnRleHRHTE9wZW5HTD4gR3JhcGhpY3NDb250
ZXh0R0xPcGVuR0w6OmNyZWF0ZShHcmFwaGljc0NvbnRleHRHCiAgICAgICAgIHJldHVybiBudWxs
cHRyOwogCiAgICAgLy8gQ3JlYXRlIHRoZSBHcmFwaGljc0NvbnRleHRHTE9wZW5HTCBvYmplY3Qg
Zmlyc3QgaW4gb3JkZXIgdG8gZXN0YWJsaXN0IGEgY3VycmVudCBjb250ZXh0IG9uIHRoaXMgdGhy
ZWFkLgotICAgIGF1dG8gY29udGV4dCA9IGFkb3B0UmVmKG5ldyBHcmFwaGljc0NvbnRleHRHTE9w
ZW5HTChhdHRyaWJ1dGVzKSk7CisgICAgYXV0byBjb250ZXh0ID0gYWRvcHRSZWYobmV3IEdyYXBo
aWNzQ29udGV4dEdMT3BlbkdMKFdURk1vdmUoYXR0cmlidXRlcyksIHsgfSkpOwogCiAjaWYgVVNF
KExJQkVQT1hZKSAmJiBVU0UoT1BFTkdMX0VTKSAmJiBFTkFCTEUoV0VCR0wyKQogICAgIC8vIEJh
aWwgaWYgR0xFUzMgd2FzIHJlcXVlc3RlZCBidXQgY2Fubm90IGJlIHByb3ZpZGVkLgpAQCAtOTks
OCArOTksOSBAQCBSZWZQdHI8R3JhcGhpY3NDb250ZXh0R0xPcGVuR0w+IEdyYXBoaWNzQ29udGV4
dEdMT3BlbkdMOjpjcmVhdGUoR3JhcGhpY3NDb250ZXh0RwogfQogCiAjaWYgVVNFKEFOR0xFKQot
R3JhcGhpY3NDb250ZXh0R0xPcGVuR0w6OkdyYXBoaWNzQ29udGV4dEdMT3BlbkdMKEdyYXBoaWNz
Q29udGV4dEdMQXR0cmlidXRlcyBhdHRyaWJ1dGVzKQorR3JhcGhpY3NDb250ZXh0R0xPcGVuR0w6
OkdyYXBoaWNzQ29udGV4dEdMT3BlbkdMKEdyYXBoaWNzQ29udGV4dEdMQXR0cmlidXRlcyYmIGF0
dHJpYnV0ZXMsIFJlZlB0cjxQcm9jZXNzSWRlbnRpdHk+JiYgcmVzb3VyY2VPd25lcikKICAgICA6
IEdyYXBoaWNzQ29udGV4dEdMKGF0dHJpYnV0ZXMpCisgICAgLCBtX3Jlc291cmNlT3duZXIoV1RG
TW92ZShyZXNvdXJjZU93bmVyKSkKIHsKICNpZiBFTkFCTEUoV0VCR0wyKQogICAgIG1faXNGb3JX
ZWJHTDIgPSBhdHRyaWJ1dGVzLndlYkdMVmVyc2lvbiA9PSBHcmFwaGljc0NvbnRleHRHTFdlYkdM
VmVyc2lvbjo6V2ViR0wyOwpAQCAtMTY4LDggKzE2OSw5IEBAIEdyYXBoaWNzQ29udGV4dEdMT3Bl
bkdMOjpHcmFwaGljc0NvbnRleHRHTE9wZW5HTChHcmFwaGljc0NvbnRleHRHTEF0dHJpYnV0ZXMg
YXR0CiAgICAgZ2w6OkNsZWFyQ29sb3IoMCwgMCwgMCwgMCk7CiB9CiAjZWxzZQotR3JhcGhpY3ND
b250ZXh0R0xPcGVuR0w6OkdyYXBoaWNzQ29udGV4dEdMT3BlbkdMKEdyYXBoaWNzQ29udGV4dEdM
QXR0cmlidXRlcyBhdHRyaWJ1dGVzKQorR3JhcGhpY3NDb250ZXh0R0xPcGVuR0w6OkdyYXBoaWNz
Q29udGV4dEdMT3BlbkdMKEdyYXBoaWNzQ29udGV4dEdMQXR0cmlidXRlcyYmIGF0dHJpYnV0ZXMs
IFJlZlB0cjxQcm9jZXNzSWRlbnRpdHk+JiYgcmVzb3VyY2VPd25lcikKICAgICA6IEdyYXBoaWNz
Q29udGV4dEdMKGF0dHJpYnV0ZXMpCisgICAgLCBtX3Jlc291cmNlT3duZXIoV1RGTW92ZShyZXNv
dXJjZU93bmVyKSkKIHsKICNpZiBVU0UoTklDT1NJQSkKICAgICBtX25pY29zaWFMYXllciA9IG1h
a2VVbmlxdWU8Tmljb3NpYTo6R0NHTExheWVyPigqdGhpcyk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L0dQVVByb2Nlc3MvR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L0dQVVByb2Nlc3MvR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAKaW5kZXggNTJh
ZTg4MTkzNzFhM2VkZDYwY2Q3MjBjZDA4NGJiM2M4NTdmYTdjZC4uMWVmOWE2YjI1ODE2MzM3ZjM4
ZDliYjBiM2M3NDg5ZmNkMWM5NDg1YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9j
ZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BV
UHJvY2Vzcy9HUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcApAQCAtMTk5LDEyICsxOTksMTAg
QEAgcHJpdmF0ZToKICAgICB9CiAjZW5kaWYKIAotI2lmIEhBVkUoSU9TVVJGQUNFX1NFVF9PV05F
UlNISVBfSURFTlRJVFkpCi0gICAgc3RkOjpvcHRpb25hbDx0YXNrX2lkX3Rva2VuX3Q+IHdlYlBy
b2Nlc3NJZGVudGl0eVRva2VuKCkgY29uc3QgZmluYWwKKyAgICBSZWZQdHI8UHJvY2Vzc0lkZW50
aXR5PiByZXNvdXJjZU93bmVyKCkgY29uc3QgZmluYWwKICAgICB7Ci0gICAgICAgIHJldHVybiBt
X3Byb2Nlc3Mud2ViUHJvY2Vzc0lkZW50aXR5VG9rZW4oKTsKKyAgICAgICAgcmV0dXJuIG1fcHJv
Y2Vzcy53ZWJQcm9jZXNzSWRlbnRpdHkoKTsKICAgICB9Ci0jZW5kaWYKIAogICAgIEdQVUNvbm5l
Y3Rpb25Ub1dlYlByb2Nlc3MmIG1fcHJvY2VzczsKIH07CkBAIC0yMjAsOSArMjE4LDcgQEAgR1BV
Q29ubmVjdGlvblRvV2ViUHJvY2Vzczo6R1BVQ29ubmVjdGlvblRvV2ViUHJvY2VzcyhHUFVQcm9j
ZXNzJiBncHVQcm9jZXNzLCBXZWIKICAgICA6IG1fY29ubmVjdGlvbihJUEM6OkNvbm5lY3Rpb246
OmNyZWF0ZVNlcnZlckNvbm5lY3Rpb24oY29ubmVjdGlvbklkZW50aWZpZXIsICp0aGlzKSkKICAg
ICAsIG1fZ3B1UHJvY2VzcyhncHVQcm9jZXNzKQogICAgICwgbV93ZWJQcm9jZXNzSWRlbnRpZmll
cih3ZWJQcm9jZXNzSWRlbnRpZmllcikKLSNpZiBIQVZFKFRBU0tfSURFTlRJVFlfVE9LRU4pCi0g
ICAgLCBtX3dlYlByb2Nlc3NJZGVudGl0eVRva2VuKFdURk1vdmUocGFyYW1ldGVycy53ZWJQcm9j
ZXNzSWRlbnRpdHlUb2tlbikpCi0jZW5kaWYKKyAgICAsIG1fd2ViUHJvY2Vzc0lkZW50aXR5KFBy
b2Nlc3NJZGVudGl0eTo6Y3JlYXRlKFdURk1vdmUocGFyYW1ldGVycy53ZWJQcm9jZXNzSWRlbnRp
dHlIYW5kbGUpKSkKICAgICAsIG1fcmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHkobWFrZVVu
aXF1ZVJlZjxSZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eT4oKnRoaXMpKQogICAgICwgbV9z
ZXNzaW9uSUQoc2Vzc2lvbklEKQogI2lmIFBMQVRGT1JNKENPQ09BKSAmJiBVU0UoTElCV0VCUlRD
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dl
YlByb2Nlc3MuaCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9uVG9XZWJQ
cm9jZXNzLmgKaW5kZXggYWU3OTUwNTI1ODYwZGUzY2Y2YTJiMTc4OGZlMzVhNWVhYmRhNTY3ZC4u
ZTA0MjhiODVlNWNmZGFjMmM0MDY1YTkxMDNiOWM1NWU2YjZjYjVhOCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaAorKysgYi9T
b3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oCkBAIC0z
OSw2ICszOSw3IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9Ob3dQbGF5aW5nTWFuYWdlci5oPgogI2lu
Y2x1ZGUgPFdlYkNvcmUvUGFnZUlkZW50aWZpZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Byb2Nl
c3NJZGVudGlmaWVyLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9Qcm9jZXNzSWRlbnRpdHkuaD4KICNp
bmNsdWRlIDxwYWwvU2Vzc2lvbklELmg+CiAjaW5jbHVkZSA8d3RmL0xvZ2dlci5oPgogI2luY2x1
ZGUgPHd0Zi9NYWNoU2VuZFJpZ2h0Lmg+CkBAIC0xNDcsMTAgKzE0OCw3IEBAIHB1YmxpYzoKICAg
ICB2b2lkIGRpc3BhdGNoRGlzcGxheVdhc1JlY29uZmlndXJlZEZvclRlc3RpbmcoKSB7IGRpc3Bh
dGNoRGlzcGxheVdhc1JlY29uZmlndXJlZCgpOyB9OwogI2VuZGlmCiAKLSNpZiBIQVZFKFRBU0tf
SURFTlRJVFlfVE9LRU4pCi0gICAgdGFza19pZF90b2tlbl90IHdlYlByb2Nlc3NJZGVudGl0eVRv
a2VuKCkgY29uc3QgeyByZXR1cm4gc3RhdGljX2Nhc3Q8dGFza19pZF90b2tlbl90PihtX3dlYlBy
b2Nlc3NJZGVudGl0eVRva2VuLnNlbmRSaWdodCgpKTsgfQotI2VuZGlmCi0KKyAgICBSZWZQdHI8
V2ViQ29yZTo6UHJvY2Vzc0lkZW50aXR5PiB3ZWJQcm9jZXNzSWRlbnRpdHkoKSBjb25zdCB7IHJl
dHVybiBtX3dlYlByb2Nlc3NJZGVudGl0eTsgfQogI2lmIEVOQUJMRShFTkNSWVBURURfTUVESUEp
CiAgICAgUmVtb3RlQ0RNRmFjdG9yeVByb3h5JiBjZG1GYWN0b3J5UHJveHkoKTsKICNlbmRpZgpA
QCAtMjczLDkgKzI3MSw3IEBAIHByaXZhdGU6CiAgICAgSVBDOjpNZXNzYWdlUmVjZWl2ZXJNYXAg
bV9tZXNzYWdlUmVjZWl2ZXJNYXA7CiAgICAgUmVmPEdQVVByb2Nlc3M+IG1fZ3B1UHJvY2VzczsK
ICAgICBjb25zdCBXZWJDb3JlOjpQcm9jZXNzSWRlbnRpZmllciBtX3dlYlByb2Nlc3NJZGVudGlm
aWVyOwotI2lmIEhBVkUoVEFTS19JREVOVElUWV9UT0tFTikKLSAgICBNYWNoU2VuZFJpZ2h0IG1f
d2ViUHJvY2Vzc0lkZW50aXR5VG9rZW47Ci0jZW5kaWYKKyAgICBSZWZQdHI8V2ViQ29yZTo6UHJv
Y2Vzc0lkZW50aXR5PiBtX3dlYlByb2Nlc3NJZGVudGl0eTsKICNpZiBFTkFCTEUoV0VCX0FVRElP
KQogICAgIHN0ZDo6dW5pcXVlX3B0cjxSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uTWFuYWdlcj4gbV9y
ZW1vdGVBdWRpb0Rlc3RpbmF0aW9uTWFuYWdlcjsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL0dQVVByb2Nlc3NHcmFwaGljc0NvbnRleHRHTC5o
IGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL0dQVVByb2Nlc3NHcmFwaGljc0Nv
bnRleHRHTC5oCmluZGV4IDFlZWUxOGQ2MmYwNTA5ZjAwOWYzNGMzZWRlNjhkMzVlMGQwODk2NTMu
LmU3MjlhM2E3MTU0NTJjM2FkNDY0YzdjYzllZDVjMGVjYjNiMTFlMDggMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9HUFVQcm9jZXNzR3JhcGhpY3NDb250ZXh0
R0wuaAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvR1BVUHJvY2Vzc0dy
YXBoaWNzQ29udGV4dEdMLmgKQEAgLTI5LDExICsyOSwxMyBAQAogI2luY2x1ZGUgPFdlYkNvcmUv
RXh0ZW5zaW9uc0dMLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9HcmFwaGljc0NvbnRleHRHTE9wZW5H
TC5oPgogCituYW1lc3BhY2UgV2ViS2l0IHsKKwogY2xhc3MgR1BVUHJvY2Vzc0dyYXBoaWNzQ29u
dGV4dEdMT3BlbkdMIGZpbmFsIDogcHVibGljIFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dEdMT3Bl
bkdMIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmUHRyPEdQVVByb2Nlc3NHcmFwaGljc0NvbnRl
eHRHTE9wZW5HTD4gY3JlYXRlKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dEdMQXR0cmlidXRlcyBh
dHRyaWJ1dGVzKQorICAgIHN0YXRpYyBSZWZQdHI8R1BVUHJvY2Vzc0dyYXBoaWNzQ29udGV4dEdM
T3BlbkdMPiBjcmVhdGUoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0R0xBdHRyaWJ1dGVzIGF0dHJp
YnV0ZXMsIFJlZlB0cjxXZWJDb3JlOjpQcm9jZXNzSWRlbnRpdHk+IHJlc291cmNlT3duZXIpCiAg
ICAgewotICAgICAgICBhdXRvIGNvbnRleHQgPSBhZG9wdFJlZigqbmV3IEdQVVByb2Nlc3NHcmFw
aGljc0NvbnRleHRHTE9wZW5HTChXVEZNb3ZlKGF0dHJpYnV0ZXMpKSk7CisgICAgICAgIGF1dG8g
Y29udGV4dCA9IGFkb3B0UmVmKCpuZXcgR1BVUHJvY2Vzc0dyYXBoaWNzQ29udGV4dEdMT3BlbkdM
KFdURk1vdmUoYXR0cmlidXRlcyksIFdURk1vdmUocmVzb3VyY2VPd25lcikpKTsKICAgICAgICAg
aWYgKCFjb250ZXh0LT5pc1ZhbGlkKCkpCiAgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAg
ICAgICAgcmV0dXJuIGNvbnRleHQ7CkBAIC00NCwxMCArNDYsMTIgQEAgcHVibGljOgogICAgIHZv
aWQgbWFya0Rpc3BsYXlCdWZmZXJJblVzZSgpIHsgcmV0dXJuIG1fc3dhcENoYWluLm1hcmtEaXNw
bGF5QnVmZmVySW5Vc2UoKTsgfQogI2VuZGlmCiBwcml2YXRlOgotICAgIEdQVVByb2Nlc3NHcmFw
aGljc0NvbnRleHRHTE9wZW5HTChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHRHTEF0dHJpYnV0ZXMg
YXR0cmlidXRlcykKLSAgICAgICAgOiBHcmFwaGljc0NvbnRleHRHTE9wZW5HTChhdHRyaWJ1dGVz
KQorICAgIEdQVVByb2Nlc3NHcmFwaGljc0NvbnRleHRHTE9wZW5HTChXZWJDb3JlOjpHcmFwaGlj
c0NvbnRleHRHTEF0dHJpYnV0ZXMmJiBhdHRyaWJ1dGVzLCBSZWZQdHI8V2ViQ29yZTo6UHJvY2Vz
c0lkZW50aXR5PiYmIHJlc291cmNlT3duZXIpCisgICAgICAgIDogR3JhcGhpY3NDb250ZXh0R0xP
cGVuR0woV1RGTW92ZShhdHRyaWJ1dGVzKSwgV1RGTW92ZShyZXNvdXJjZU93bmVyKSkKICAgICB7
CiAgICAgfQogfTsKIAorfQorCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BV
UHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVHcmFwaGljc0NvbnRleHRHTENvY29hLmNwcCBiL1NvdXJj
ZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVHcmFwaGljc0NvbnRleHRHTENvY29h
LmNwcAppbmRleCBiNDM3YTViZWVjZDVkNmFjNTgzY2E1OTdhOTVlMjc3MTJmYWRkNjIzLi4wY2My
MmI0MzNhNDVlNzRkNTQwZTRkNTRlOWNhNjdiYjEwOTVlMWQzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xDb2NvYS5j
cHAKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZUdyYXBoaWNz
Q29udGV4dEdMQ29jb2EuY3BwCkBAIC00Nyw5ICs0Nyw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHBy
ZXBhcmVGb3JEaXNwbGF5KENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV1RGOjpNYWNoU2VuZFJpZ2h0
JiYpPiYmKSBmaW5hbDsKIHByaXZhdGU6CiAgICAgV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0R0xJ
T1N1cmZhY2VTd2FwQ2hhaW4gbV9zd2FwQ2hhaW4gV1RGX0dVQVJERURfQllfTE9DSyhtX3N0cmVh
bVRocmVhZCk7Ci0jaWYgSEFWRShJT1NVUkZBQ0VfU0VUX09XTkVSU0hJUF9JREVOVElUWSkKLSAg
ICB0YXNrX2lkX3Rva2VuX3QgbV93ZWJQcm9jZXNzSWRlbnRpdHlUb2tlbjsKLSNlbmRpZgorICAg
IFJlZlB0cjxQcm9jZXNzSWRlbnRpdHk+IG1fcmVzb3VyY2VPd25lcjsKIH07CiAKIH0KQEAgLTYz
LDkgKzYxLDcgQEAgUmVmPFJlbW90ZUdyYXBoaWNzQ29udGV4dEdMPiBSZW1vdGVHcmFwaGljc0Nv
bnRleHRHTDo6Y3JlYXRlKEdQVUNvbm5lY3Rpb25Ub1dlYlAKIAogUmVtb3RlR3JhcGhpY3NDb250
ZXh0R0xDb2NvYTo6UmVtb3RlR3JhcGhpY3NDb250ZXh0R0xDb2NvYShHUFVDb25uZWN0aW9uVG9X
ZWJQcm9jZXNzJiBncHVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLCBHcmFwaGljc0NvbnRleHRHTElk
ZW50aWZpZXIgZ3JhcGhpY3NDb250ZXh0R0xJZGVudGlmaWVyLCBSZW1vdGVSZW5kZXJpbmdCYWNr
ZW5kJiByZW5kZXJpbmdCYWNrZW5kLCBJUEM6OlN0cmVhbUNvbm5lY3Rpb25CdWZmZXImJiBzdHJl
YW0pCiAgICAgOiBSZW1vdGVHcmFwaGljc0NvbnRleHRHTChncHVDb25uZWN0aW9uVG9XZWJQcm9j
ZXNzLCBncmFwaGljc0NvbnRleHRHTElkZW50aWZpZXIsIHJlbmRlcmluZ0JhY2tlbmQsIFdURk1v
dmUoc3RyZWFtKSkKLSNpZiBIQVZFKElPU1VSRkFDRV9TRVRfT1dORVJTSElQX0lERU5USVRZKQot
ICAgICwgbV93ZWJQcm9jZXNzSWRlbnRpdHlUb2tlbihncHVDb25uZWN0aW9uVG9XZWJQcm9jZXNz
LndlYlByb2Nlc3NJZGVudGl0eVRva2VuKCkpCi0jZW5kaWYKKyAgICAsIG1fcmVzb3VyY2VPd25l
cihncHVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLndlYlByb2Nlc3NJZGVudGl0eSgpKQogewogCiB9
CkBAIC03Myw3ICs2OSw3IEBAIFJlbW90ZUdyYXBoaWNzQ29udGV4dEdMQ29jb2E6OlJlbW90ZUdy
YXBoaWNzQ29udGV4dEdMQ29jb2EoR1BVQ29ubmVjdGlvblRvV2ViUHJvCiB2b2lkIFJlbW90ZUdy
YXBoaWNzQ29udGV4dEdMQ29jb2E6OnBsYXRmb3JtV29ya1F1ZXVlSW5pdGlhbGl6ZShXZWJDb3Jl
OjpHcmFwaGljc0NvbnRleHRHTEF0dHJpYnV0ZXMmJiBhdHRyaWJ1dGVzKQogewogICAgIGFzc2Vy
dElzQ3VycmVudChtX3N0cmVhbVRocmVhZCk7Ci0gICAgbV9jb250ZXh0ID0gR1BVUHJvY2Vzc0dy
YXBoaWNzQ29udGV4dEdMT3BlbkdMOjpjcmVhdGUoV1RGTW92ZShhdHRyaWJ1dGVzKSk7CisgICAg
bV9jb250ZXh0ID0gR1BVUHJvY2Vzc0dyYXBoaWNzQ29udGV4dEdMT3BlbkdMOjpjcmVhdGUoV1RG
TW92ZShhdHRyaWJ1dGVzKSwgbV9yZXNvdXJjZU93bmVyKTsKIH0KIAogdm9pZCBSZW1vdGVHcmFw
aGljc0NvbnRleHRHTENvY29hOjpwcmVwYXJlRm9yRGlzcGxheShDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKFdURjo6TWFjaFNlbmRSaWdodCYmKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKQEAgLTg0LDEw
ICs4MCw2IEBAIHZvaWQgUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xDb2NvYTo6cHJlcGFyZUZvckRp
c3BsYXkoQ29tcGxldGlvbkhhbmRsZXI8dm9pZChXVEY6CiAgICAgTWFjaFNlbmRSaWdodCBzZW5k
UmlnaHQ7CiAgICAgaWYgKGRpc3BsYXlCdWZmZXIpIHsKICAgICAgICAgbV9jb250ZXh0LT5tYXJr
RGlzcGxheUJ1ZmZlckluVXNlKCk7Ci0jaWYgSEFWRShJT1NVUkZBQ0VfU0VUX09XTkVSU0hJUF9J
REVOVElUWSkKLSAgICAgICAgLy8gTWFyayB0aGUgSU9TdXJmYWNlIGFzIGJlaW5nIG93bmVkIGJ5
IHRoZSBXZWJQcm9jZXNzIGV2ZW4gdGhvdWdoIGl0IHdhcyBjb25zdHJ1Y3RlZCBieSB0aGUgR1BV
UHJvY2VzcyBzbyB0aGF0IEpldHNhbSBrbm93cyB3aGljaCBwcm9jZXNzIHRvIGtpbGwuCi0gICAg
ICAgIGRpc3BsYXlCdWZmZXItPnNldE93bmVyc2hpcElkZW50aXR5KG1fd2ViUHJvY2Vzc0lkZW50
aXR5VG9rZW4pOwotI2VuZGlmCiAgICAgICAgIHNlbmRSaWdodCA9IGRpc3BsYXlCdWZmZXItPmNy
ZWF0ZVNlbmRSaWdodCgpOwogICAgIH0KICAgICBjb21wbGV0aW9uSGFuZGxlcihXVEZNb3ZlKHNl
bmRSaWdodCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNz
L1JlbW90ZUdyYXBoaWNzQ29udGV4dEdMV2luLmNwcCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vz
cy9ncmFwaGljcy9SZW1vdGVHcmFwaGljc0NvbnRleHRHTFdpbi5jcHAKaW5kZXggNzBmMGM0NjQw
MzJiOTMzYzhmNDU5MTljODY4YWM2NzZkYzE3MWQ2Zi4uMDZkNGEzMjg4MTY2MjRiYzRjMTU5NDJh
MDcyNGRiMzQ5MGYzZjQ1NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dy
YXBoaWNzL1JlbW90ZUdyYXBoaWNzQ29udGV4dEdMV2luLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xXaW4uY3BwCkBAIC00
MSw2ICs0MSw4IEBAIHB1YmxpYzoKIAogICAgIC8vIFJlbW90ZUdyYXBoaWNzQ29udGV4dEdMIG92
ZXJyaWRlcy4KICAgICB2b2lkIHBsYXRmb3JtV29ya1F1ZXVlSW5pdGlhbGl6ZShXZWJDb3JlOjpH
cmFwaGljc0NvbnRleHRHTEF0dHJpYnV0ZXMmJikgZmluYWw7Citwcml2YXRlOgorICAgIFJlZlB0
cjxQcm9jZXNzSWRlbnRpdHk+IG1fcmVzb3VyY2VPd25lcjsKIH07CiAKIFJlZjxSZW1vdGVHcmFw
aGljc0NvbnRleHRHTD4gUmVtb3RlR3JhcGhpY3NDb250ZXh0R0w6OmNyZWF0ZShHUFVDb25uZWN0
aW9uVG9XZWJQcm9jZXNzJiBncHVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLCBHcmFwaGljc0NvbnRl
eHRHTEF0dHJpYnV0ZXMmJiBhdHRyaWJ1dGVzLCBHcmFwaGljc0NvbnRleHRHTElkZW50aWZpZXIg
Z3JhcGhpY3NDb250ZXh0R0xJZGVudGlmaWVyLCBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kJiByZW5k
ZXJpbmdCYWNrZW5kLCBJUEM6OlN0cmVhbUNvbm5lY3Rpb25CdWZmZXImJiBzdHJlYW0pCkBAIC01
MiwxMiArNTQsMTMgQEAgUmVmPFJlbW90ZUdyYXBoaWNzQ29udGV4dEdMPiBSZW1vdGVHcmFwaGlj
c0NvbnRleHRHTDo6Y3JlYXRlKEdQVUNvbm5lY3Rpb25Ub1dlYlAKIAogUmVtb3RlR3JhcGhpY3ND
b250ZXh0R0xXaW46OlJlbW90ZUdyYXBoaWNzQ29udGV4dEdMV2luKEdQVUNvbm5lY3Rpb25Ub1dl
YlByb2Nlc3MmIGdwdUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MsIEdyYXBoaWNzQ29udGV4dEdMSWRl
bnRpZmllciBncmFwaGljc0NvbnRleHRHTElkZW50aWZpZXIsIFJlbW90ZVJlbmRlcmluZ0JhY2tl
bmQmIHJlbmRlcmluZ0JhY2tlbmQsIElQQzo6U3RyZWFtQ29ubmVjdGlvbkJ1ZmZlciYmIHN0cmVh
bSkKICAgICA6IFJlbW90ZUdyYXBoaWNzQ29udGV4dEdMKGdwdUNvbm5lY3Rpb25Ub1dlYlByb2Nl
c3MsIGdyYXBoaWNzQ29udGV4dEdMSWRlbnRpZmllciwgcmVuZGVyaW5nQmFja2VuZCwgV1RGTW92
ZShzdHJlYW0pKQorICAgICwgbV9yZXNvdXJjZU93bmVyKGdwdUNvbm5lY3Rpb25Ub1dlYlByb2Nl
c3Mud2ViUHJvY2Vzc0lkZW50aXR5KCkpCiB7CiB9CiAKIHZvaWQgUmVtb3RlR3JhcGhpY3NDb250
ZXh0R0xXaW46OnBsYXRmb3JtV29ya1F1ZXVlSW5pdGlhbGl6ZShXZWJDb3JlOjpHcmFwaGljc0Nv
bnRleHRHTEF0dHJpYnV0ZXMmJiBhdHRyaWJ1dGVzKQogewotICAgIG1fY29udGV4dCA9IEdQVVBy
b2Nlc3NHcmFwaGljc0NvbnRleHRHTE9wZW5HTDo6Y3JlYXRlKFdURk1vdmUoYXR0cmlidXRlcykp
OworICAgIG1fY29udGV4dCA9IEdQVVByb2Nlc3NHcmFwaGljc0NvbnRleHRHTE9wZW5HTDo6Y3Jl
YXRlKFdURk1vdmUoYXR0cmlidXRlcyksIG1fcmVzb3VyY2VPd25lcik7CiB9CiAKIHZvaWQgUmVt
b3RlR3JhcGhpY3NDb250ZXh0R0w6OnByZXBhcmVGb3JEaXNwbGF5KENvbXBsZXRpb25IYW5kbGVy
PHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
R1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVJbWFnZUJ1ZmZlci5oIGIvU291cmNlL1dlYktpdC9H
UFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZUltYWdlQnVmZmVyLmgKaW5kZXggYTNkNDk0ZmU4YmY2
YTE5NjQ3ZWYxOTBjOWRiNDA0MmFlY2U2NzIyMC4uMTk5MjU4YjYzZDY4ZTg4YmNhNGE5MDIzNmZl
ZDQwNDgwNDFiNjIwYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBo
aWNzL1JlbW90ZUltYWdlQnVmZmVyLmgKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dy
YXBoaWNzL1JlbW90ZUltYWdlQnVmZmVyLmgKQEAgLTY5LDEzICs2OSwxMSBAQCBwdWJsaWM6CiAg
ICAgICAgICAgICBjb250ZXh0KCkucmVzdG9yZSgpOwogICAgIH0KIAotI2lmIEhBVkUoSU9TVVJG
QUNFX1NFVF9PV05FUlNISVBfSURFTlRJVFkpCi0gICAgdm9pZCBzZXRQcm9jZXNzT3duZXJzaGlw
KHRhc2tfaWRfdG9rZW5fdCBuZXdPd25lcikKKyAgICB2b2lkIHNldE93bmVyc2hpcElkZW50aXR5
KFdlYkNvcmU6OlByb2Nlc3NJZGVudGl0eSogcmVzb3VyY2VPd25lcikKICAgICB7CiAgICAgICAg
IGlmIChtX2JhY2tlbmQpCi0gICAgICAgICAgICBtX2JhY2tlbmQtPnNldFByb2Nlc3NPd25lcnNo
aXAobmV3T3duZXIpOworICAgICAgICAgICAgbV9iYWNrZW5kLT5zZXRPd25lcnNoaXBJZGVudGl0
eShyZXNvdXJjZU93bmVyKTsKICAgICB9Ci0jZW5kaWYKIAogcHJpdmF0ZToKICAgICBmcmllbmQg
Y2xhc3MgUmVtb3RlUmVuZGVyaW5nQmFja2VuZDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
R1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmNwcCBiL1NvdXJjZS9X
ZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmNwcAppbmRl
eCBmY2M3MmJmMjBhMmZiMmM2Yjk5YmEwZWU2ZjgyMDZhNGNhYjZmZmMwLi4xNjBmZWMyYTU1MmU2
Njk0MTI4ODY2MjFhNTJkZGRkZmUzZDc2OGU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQ
VVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQuY3BwCkBA
IC04NCw2ICs4NCw3IEBAIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmQ6OlJlbW90ZVJlbmRlcmluZ0Jh
Y2tlbmQoR1BVQ29ubmVjdGlvblRvV2ViUHJvY2VzcyYgZ3B1Q29uCiAgICAgLCBtX3N0cmVhbUNv
bm5lY3Rpb24oSVBDOjpTdHJlYW1TZXJ2ZXJDb25uZWN0aW9uOjpjcmVhdGUoZ3B1Q29ubmVjdGlv
blRvV2ViUHJvY2Vzcy5jb25uZWN0aW9uKCksIFdURk1vdmUoc3RyZWFtQnVmZmVyKSwgbV93b3Jr
UXVldWUuZ2V0KCkpKQogICAgICwgbV9yZW1vdGVSZXNvdXJjZUNhY2hlKGdwdUNvbm5lY3Rpb25U
b1dlYlByb2Nlc3Mud2ViUHJvY2Vzc0lkZW50aWZpZXIoKSkKICAgICAsIG1fZ3B1Q29ubmVjdGlv
blRvV2ViUHJvY2VzcyhncHVDb25uZWN0aW9uVG9XZWJQcm9jZXNzKQorICAgICwgbV9yZXNvdXJj
ZU93bmVyKGdwdUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3Mud2ViUHJvY2Vzc0lkZW50aXR5KCkpCiAg
ICAgLCBtX3JlbmRlcmluZ0JhY2tlbmRJZGVudGlmaWVyKGNyZWF0aW9uUGFyYW1ldGVycy5pZGVu
dGlmaWVyKQogewogICAgIEFTU0VSVChSdW5Mb29wOjppc01haW4oKSk7CkBAIC0xNzMsMTAgKzE3
NCw5IEBAIHZvaWQgUmVtb3RlUmVuZGVyaW5nQmFja2VuZDo6Y3JlYXRlSW1hZ2VCdWZmZXJXaXRo
UXVhbGlmaWVkSWRlbnRpZmllcihjb25zdCBGbG9hCiAKICAgICBpZiAocmVuZGVyaW5nTW9kZSA9
PSBSZW5kZXJpbmdNb2RlOjpBY2NlbGVyYXRlZCkgewogICAgICAgICBpZiAoYXV0byBhY2NlbGVy
YXRlZEltYWdlQnVmZmVyID0gQWNjZWxlcmF0ZWRSZW1vdGVJbWFnZUJ1ZmZlcjo6Y3JlYXRlKGxv
Z2ljYWxTaXplLCByZXNvbHV0aW9uU2NhbGUsIGNvbG9yU3BhY2UsIHBpeGVsRm9ybWF0LCAqdGhp
cywgaW1hZ2VCdWZmZXJSZXNvdXJjZUlkZW50aWZpZXIpKSB7Ci0jaWYgSEFWRShJT1NVUkZBQ0Vf
U0VUX09XTkVSU0hJUF9JREVOVElUWSkKICAgICAgICAgICAgIC8vIE1hcmsgdGhlIElPU3VyZmFj
ZSBhcyBiZWluZyBvd25lZCBieSB0aGUgV2ViUHJvY2VzcyBldmVuIHRob3VnaCBpdCB3YXMgY29u
c3RydWN0ZWQgYnkgdGhlIEdQVVByb2Nlc3Mgc28gdGhhdCBKZXRzYW0ga25vd3Mgd2hpY2ggcHJv
Y2VzcyB0byBraWxsLgotICAgICAgICAgICAgYWNjZWxlcmF0ZWRJbWFnZUJ1ZmZlci0+c2V0UHJv
Y2Vzc093bmVyc2hpcChtX2dwdUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MtPndlYlByb2Nlc3NJZGVu
dGl0eVRva2VuKCkpOwotI2VuZGlmCisgICAgICAgICAgICBpZiAobV9yZXNvdXJjZU93bmVyKQor
ICAgICAgICAgICAgICAgIGFjY2VsZXJhdGVkSW1hZ2VCdWZmZXItPnNldE93bmVyc2hpcElkZW50
aXR5KG1fcmVzb3VyY2VPd25lci5nZXQoKSk7CiAgICAgICAgICAgICBpbWFnZUJ1ZmZlciA9IFdU
Rk1vdmUoYWNjZWxlcmF0ZWRJbWFnZUJ1ZmZlcik7CiAgICAgICAgIH0KICAgICB9CkBAIC0yNjgs
NiArMjY4LDcgQEAgdm9pZCBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kOjpnZXREYXRhVVJMRm9ySW1h
Z2VCdWZmZXJXaXRoUXVhbGlmaWVkSWRlbnRpZmllcihjb24KICAgICBTdHJpbmcgdXJsU3RyaW5n
OwogICAgIGlmIChhdXRvIGltYWdlQnVmZmVyID0gbV9yZW1vdGVSZXNvdXJjZUNhY2hlLmNhY2hl
ZEltYWdlQnVmZmVyKHJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcikpCiAgICAgICAgIHVybFN0
cmluZyA9IGltYWdlQnVmZmVyLT50b0RhdGFVUkwobWltZVR5cGUsIHF1YWxpdHksIHByZXNlcnZl
UmVzb2x1dGlvbik7CisgICAgV1RGTG9nQWx3YXlzKCJEQVRBVVJMOiVzIiwgdXJsU3RyaW5nLnV0
ZjgoKS5kYXRhKCkpOwogICAgIGNvbXBsZXRpb25IYW5kbGVyKFdURk1vdmUodXJsU3RyaW5nKSk7
CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1v
dGVSZW5kZXJpbmdCYWNrZW5kLmggYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3Mv
UmVtb3RlUmVuZGVyaW5nQmFja2VuZC5oCmluZGV4IDE5ZmIxN2YwMjVmYjJjNjVmMWRkZTI3MmMz
MGJiMGRlOTQ1Y2FmOWYuLjllYzk2MmIzMGZmNjY3YTkxN2ZmODZmZGIyZjUzZmEwODJhYjc2MzMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5k
ZXJpbmdCYWNrZW5kLmgKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1Jl
bW90ZVJlbmRlcmluZ0JhY2tlbmQuaApAQCAtNTQsNiArNTQsNyBAQCBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiBjbGFzcyBEZXN0aW5hdGlvbkNvbG9yU3BhY2U7CiBjbGFzcyBGbG9hdFNpemU7CiBjbGFz
cyBOYXRpdmVJbWFnZTsKK2NsYXNzIFByb2Nlc3NJZGVudGl0eTsKIAogZW51bSBjbGFzcyBSZW5k
ZXJpbmdNb2RlIDogYm9vbDsKIApAQCAtMTI5LDYgKzEzMCw3IEBAIHByaXZhdGU6CiAgICAgUmVm
PElQQzo6U3RyZWFtU2VydmVyQ29ubmVjdGlvbj4gbV9zdHJlYW1Db25uZWN0aW9uOwogICAgIFJl
bW90ZVJlc291cmNlQ2FjaGUgbV9yZW1vdGVSZXNvdXJjZUNhY2hlOwogICAgIFJlZjxHUFVDb25u
ZWN0aW9uVG9XZWJQcm9jZXNzPiBtX2dwdUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M7CisgICAgUmVm
UHRyPFdlYkNvcmU6OlByb2Nlc3NJZGVudGl0eT4gbV9yZXNvdXJjZU93bmVyOwogICAgIFJlbmRl
cmluZ0JhY2tlbmRJZGVudGlmaWVyIG1fcmVuZGVyaW5nQmFja2VuZElkZW50aWZpZXI7CiAgICAg
SVBDOjpTZW1hcGhvcmUgbV9nZXRQaXhlbEJ1ZmZlclNlbWFwaG9yZTsKICAgICBSZWZQdHI8U2hh
cmVkTWVtb3J5PiBtX2dldFBpeGVsQnVmZmVyU2hhcmVkTWVtb3J5OwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9HUFVQcm9jZXNzL3dlYnJ0Yy9MaWJXZWJSVENDb2RlY3NQcm94eS5tbSBiL1Nv
dXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy93ZWJydGMvTGliV2ViUlRDQ29kZWNzUHJveHkubW0KaW5k
ZXggMTMzZTI2ZTQ3NGUxZDMxOTE2M2U1NTcxOTkyZDBjMGM3MTlkZGUxNC4uNzA3YTY1ZTJlMjI0
YzlhZDdjZjE3NDY1ZjRkYzBhNDIxMzcwMmE1OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9H
UFVQcm9jZXNzL3dlYnJ0Yy9MaWJXZWJSVENDb2RlY3NQcm94eS5tbQorKysgYi9Tb3VyY2UvV2Vi
S2l0L0dQVVByb2Nlc3Mvd2VicnRjL0xpYldlYlJUQ0NvZGVjc1Byb3h5Lm1tCkBAIC03NywxNCAr
NzcsMTEgQEAgdm9pZCBMaWJXZWJSVENDb2RlY3NQcm94eTo6Y2xvc2UoKQogc3RhdGljIEZ1bmN0
aW9uPHZvaWQoQ1ZQaXhlbEJ1ZmZlclJlZiBwaXhlbEJ1ZmZlciwgdWludDMyX3QgdGltZVN0YW1w
TnMsIHVpbnQzMl90IHRpbWVTdGFtcCk+IGNyZWF0ZURlY29kZXJDYWxsYmFjayhSVENEZWNvZGVy
SWRlbnRpZmllciBpZGVudGlmaWVyLCBHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzJiBncHVDb25u
ZWN0aW9uVG9XZWJQcm9jZXNzKQogewogICAgIHJldHVybiBbY29ubmVjdGlvbiA9IFJlZiB7IGdw
dUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY29ubmVjdGlvbigpIH0sCi0jaWYgSEFWRShJT1NVUkZB
Q0VfU0VUX09XTkVSU0hJUF9JREVOVElUWSkKLSAgICAgICAgdG9rZW4gPSBncHVDb25uZWN0aW9u
VG9XZWJQcm9jZXNzLndlYlByb2Nlc3NJZGVudGl0eVRva2VuKCksCi0jZW5kaWYKKyAgICAgICAg
cmVzb3VyY2VPd25lciA9IGdwdUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3Mud2ViUHJvY2Vzc0lkZW50
aXR5KCksCiAgICAgICAgIGlkZW50aWZpZXJdKENWUGl4ZWxCdWZmZXJSZWYgcGl4ZWxCdWZmZXIs
IHVpbnQzMl90IHRpbWVTdGFtcE5zLCB1aW50MzJfdCB0aW1lU3RhbXApIHsKICAgICAgICAgaWYg
KGF1dG8gc2FtcGxlID0gV2ViQ29yZTo6UmVtb3RlVmlkZW9TYW1wbGU6OmNyZWF0ZShwaXhlbEJ1
ZmZlciwgTWVkaWFUaW1lKHRpbWVTdGFtcE5zLCAxKSkpIHsKLSNpZiBIQVZFKElPU1VSRkFDRV9T
RVRfT1dORVJTSElQX0lERU5USVRZKQotICAgICAgICAgICAgc2FtcGxlLT5zZXRPd25lcnNoaXBJ
ZGVudGl0eSh0b2tlbik7Ci0jZW5kaWYKKyAgICAgICAgICAgIGlmIChyZXNvdXJjZU93bmVyKQor
ICAgICAgICAgICAgICAgIHNhbXBsZS0+c2V0T3duZXJzaGlwSWRlbnRpdHkocmVzb3VyY2VPd25l
ci5nZXQoKSk7CiAgICAgICAgICAgICBjb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpMaWJXZWJS
VENDb2RlY3M6OkNvbXBsZXRlZERlY29kaW5nIHsgaWRlbnRpZmllciwgdGltZVN0YW1wLCAqc2Ft
cGxlIH0sIDApOwogICAgICAgICB9CiAgICAgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
U2hhcmVkL0dQVVByb2Nlc3NDb25uZWN0aW9uUGFyYW1ldGVycy5oIGIvU291cmNlL1dlYktpdC9T
aGFyZWQvR1BVUHJvY2Vzc0Nvbm5lY3Rpb25QYXJhbWV0ZXJzLmgKaW5kZXggNDE1OWRjNmVkNDdk
NmRjMTczZTkxYjY4MzJhMWJiMWJhNTVmNWUxNC4uZGRmYTI5ZjU2MWFhZGQ4MDg5YmRhNjUzYjQ4
YWYyMDk3ODQzMDBkMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvR1BVUHJvY2Vz
c0Nvbm5lY3Rpb25QYXJhbWV0ZXJzLmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvR1BVUHJv
Y2Vzc0Nvbm5lY3Rpb25QYXJhbWV0ZXJzLmgKQEAgLTI3LDE0ICsyNywxMiBAQAogCiAjaWYgRU5B
QkxFKEdQVV9QUk9DRVNTKQogCi0jaW5jbHVkZSA8d3RmL01hY2hTZW5kUmlnaHQuaD4KKyNpbmNs
dWRlIDxXZWJDb3JlL1Byb2Nlc3NJZGVudGl0eS5oPgogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAog
c3RydWN0IEdQVVByb2Nlc3NDb25uZWN0aW9uUGFyYW1ldGVycyB7Ci0jaWYgSEFWRShUQVNLX0lE
RU5USVRZX1RPS0VOKQotICAgIE1hY2hTZW5kUmlnaHQgd2ViUHJvY2Vzc0lkZW50aXR5VG9rZW47
Ci0jZW5kaWYKKyAgICBXZWJDb3JlOjpQcm9jZXNzSWRlbnRpdHk6OkhhbmRsZSB3ZWJQcm9jZXNz
SWRlbnRpdHlIYW5kbGU7CiAgICAgVmVjdG9yPFN0cmluZz4gb3ZlcnJpZGVMYW5ndWFnZXM7CiAj
aWYgRU5BQkxFKElQQ19URVNUSU5HX0FQSSkKICAgICBib29sIGlnbm9yZUludmFsaWRNZXNzYWdl
Rm9yVGVzdGluZyB7IGZhbHNlIH07CkBAIC00NSw5ICs0Myw3IEBAIHN0cnVjdCBHUFVQcm9jZXNz
Q29ubmVjdGlvblBhcmFtZXRlcnMgewogCiAgICAgdm9pZCBlbmNvZGUoSVBDOjpFbmNvZGVyJiBl
bmNvZGVyKSBjb25zdAogICAgIHsKLSNpZiBIQVZFKFRBU0tfSURFTlRJVFlfVE9LRU4pCi0gICAg
ICAgIGVuY29kZXIgPDwgd2ViUHJvY2Vzc0lkZW50aXR5VG9rZW47Ci0jZW5kaWYKKyAgICAgICAg
ZW5jb2RlciA8PCB3ZWJQcm9jZXNzSWRlbnRpdHlIYW5kbGU7CiAgICAgICAgIGVuY29kZXIgPDwg
b3ZlcnJpZGVMYW5ndWFnZXM7CiAjaWYgRU5BQkxFKElQQ19URVNUSU5HX0FQSSkKICAgICAgICAg
ZW5jb2RlciA8PCBpZ25vcmVJbnZhbGlkTWVzc2FnZUZvclRlc3Rpbmc7CkBAIC01OSwxMiArNTUs
MTAgQEAgc3RydWN0IEdQVVByb2Nlc3NDb25uZWN0aW9uUGFyYW1ldGVycyB7CiAKICAgICBzdGF0
aWMgc3RkOjpvcHRpb25hbDxHUFVQcm9jZXNzQ29ubmVjdGlvblBhcmFtZXRlcnM+IGRlY29kZShJ
UEM6OkRlY29kZXImIGRlY29kZXIpCiAgICAgewotI2lmIEhBVkUoVEFTS19JREVOVElUWV9UT0tF
TikKLSAgICAgICAgc3RkOjpvcHRpb25hbDxNYWNoU2VuZFJpZ2h0PiB3ZWJQcm9jZXNzSWRlbnRp
dHlUb2tlbjsKLSAgICAgICAgZGVjb2RlciA+PiB3ZWJQcm9jZXNzSWRlbnRpdHlUb2tlbjsKLSAg
ICAgICAgaWYgKCF3ZWJQcm9jZXNzSWRlbnRpdHlUb2tlbikKKyAgICAgICAgc3RkOjpvcHRpb25h
bDxXZWJDb3JlOjpQcm9jZXNzSWRlbnRpdHk6OkhhbmRsZT4gd2ViUHJvY2Vzc0lkZW50aXR5SGFu
ZGxlOworICAgICAgICBkZWNvZGVyID4+IHdlYlByb2Nlc3NJZGVudGl0eUhhbmRsZTsKKyAgICAg
ICAgaWYgKCF3ZWJQcm9jZXNzSWRlbnRpdHlIYW5kbGUpCiAgICAgICAgICAgICByZXR1cm4gc3Rk
OjpudWxsb3B0OwotI2VuZGlmCiAKICAgICAgICAgc3RkOjpvcHRpb25hbDxWZWN0b3I8U3RyaW5n
Pj4gb3ZlcnJpZGVMYW5ndWFnZXM7CiAgICAgICAgIGRlY29kZXIgPj4gb3ZlcnJpZGVMYW5ndWFn
ZXM7CkBAIC04NSw5ICs3OSw3IEBAIHN0cnVjdCBHUFVQcm9jZXNzQ29ubmVjdGlvblBhcmFtZXRl
cnMgewogI2VuZGlmCiAKICAgICAgICAgcmV0dXJuIEdQVVByb2Nlc3NDb25uZWN0aW9uUGFyYW1l
dGVycyB7Ci0jaWYgSEFWRShUQVNLX0lERU5USVRZX1RPS0VOKQotICAgICAgICAgICAgV1RGTW92
ZSgqd2ViUHJvY2Vzc0lkZW50aXR5VG9rZW4pLAotI2VuZGlmCisgICAgICAgICAgICBXVEZNb3Zl
KCp3ZWJQcm9jZXNzSWRlbnRpdHlIYW5kbGUpLAogICAgICAgICAgICAgV1RGTW92ZSgqb3ZlcnJp
ZGVMYW5ndWFnZXMpLAogI2lmIEVOQUJMRShJUENfVEVTVElOR19BUEkpCiAgICAgICAgICAgICAq
aWdub3JlSW52YWxpZE1lc3NhZ2VGb3JUZXN0aW5nLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5LmNw
cAppbmRleCA5OTYyNjg5OTA3YzY3YjVjN2E1NjRkODE1MzI1MWNmNTUzNDdlNWJkLi44YjFmM2Ey
NjY1NmFiMDVmMDE3MGRjZTZiZTJjMmUzZWZkZTUzOTU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5LmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclBy
b3h5LmNwcApAQCAtNTcsOSArNTcsMTAgQEAgY2xhc3MgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQ
cm94eTo6U291cmNlUHJveHkKICAgICAsIHByaXZhdGUgUmVhbHRpbWVNZWRpYVNvdXJjZTo6Vmlk
ZW9TYW1wbGVPYnNlcnZlciB7CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6
Ci0gICAgU291cmNlUHJveHkoUmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgaWQsIFJlZjxJ
UEM6OkNvbm5lY3Rpb24+JiYgY29ubmVjdGlvbiwgUmVmPFJlYWx0aW1lTWVkaWFTb3VyY2U+JiYg
c291cmNlKQorICAgIFNvdXJjZVByb3h5KFJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIGlk
LCBSZWY8SVBDOjpDb25uZWN0aW9uPiYmIGNvbm5lY3Rpb24sIFJlZlB0cjxQcm9jZXNzSWRlbnRp
dHk+JiYgcmVzb3VyY2VPd25lciwgUmVmPFJlYWx0aW1lTWVkaWFTb3VyY2U+JiYgc291cmNlKQog
ICAgICAgICA6IG1faWQoaWQpCiAgICAgICAgICwgbV9jb25uZWN0aW9uKFdURk1vdmUoY29ubmVj
dGlvbikpCisgICAgICAgICwgbV9yZXNvdXJjZU93bmVyKFdURk1vdmUocmVzb3VyY2VPd25lcikp
CiAgICAgICAgICwgbV9zb3VyY2UoV1RGTW92ZShzb3VyY2UpKQogICAgIHsKICAgICAgICAgbV9z
b3VyY2UtPmFkZE9ic2VydmVyKCp0aGlzKTsKQEAgLTEyNSw5ICsxMjYsNiBAQCBwdWJsaWM6CiAg
ICAgfQogCiAgICAgdm9pZCBzZXRTaG91bGRBcHBseVJvdGF0aW9uKGJvb2wgc2hvdWxkQXBwbHlS
b3RhdGlvbikgeyBtX3Nob3VsZEFwcGx5Um90YXRpb24gPSB0cnVlOyB9Ci0jaWYgSEFWRShJT1NV
UkZBQ0VfU0VUX09XTkVSU0hJUF9JREVOVElUWSkKLSAgICB2b2lkIHNldFdlYlByb2Nlc3NJZGVu
dGl0eVRva2VuKHN0ZDo6b3B0aW9uYWw8dGFza19pZF90b2tlbl90PiB0b2tlbikgeyBtX3dlYlBy
b2Nlc3NJZGVudGl0eVRva2VuID0gdG9rZW47fQotI2VuZGlmCiAKIHByaXZhdGU6CiAgICAgdm9p
ZCBzb3VyY2VTdG9wcGVkKCkgZmluYWwgewpAQCAtMTg4LDEwICsxODYsOCBAQCBwcml2YXRlOgog
ICAgICAgICB9IGVsc2UKICAgICAgICAgICAgIHJlbW90ZVNhbXBsZSA9IFJlbW90ZVZpZGVvU2Ft
cGxlOjpjcmVhdGUoc2FtcGxlKTsKICAgICAgICAgaWYgKHJlbW90ZVNhbXBsZSkgewotI2lmIEhB
VkUoSU9TVVJGQUNFX1NFVF9PV05FUlNISVBfSURFTlRJVFkpCi0gICAgICAgICAgICBpZiAobV93
ZWJQcm9jZXNzSWRlbnRpdHlUb2tlbikKLSAgICAgICAgICAgICAgICByZW1vdGVTYW1wbGUtPnNl
dE93bmVyc2hpcElkZW50aXR5KCptX3dlYlByb2Nlc3NJZGVudGl0eVRva2VuKTsKLSNlbmRpZgor
ICAgICAgICAgICAgaWYgKG1fcmVzb3VyY2VPd25lcikKKyAgICAgICAgICAgICAgICByZW1vdGVT
YW1wbGUtPnNldE93bmVyc2hpcElkZW50aXR5KG1fcmVzb3VyY2VPd25lci5nZXQoKSk7CiAgICAg
ICAgICAgICBtX2Nvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6OlJlbW90ZUNhcHR1cmVTYW1wbGVN
YW5hZ2VyOjpWaWRlb1NhbXBsZUF2YWlsYWJsZShtX2lkLCBXVEZNb3ZlKCpyZW1vdGVTYW1wbGUp
KSwgMCk7CiAgICAgICAgIH0KICAgICB9CkBAIC0yNDQsNiArMjQwLDcgQEAgcHJpdmF0ZToKICAg
ICBSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciBtX2lkOwogICAgIFdlYWtQdHI8UGxhdGZv
cm1NZWRpYVNlc3Npb25NYW5hZ2VyPiBtX3Nlc3Npb25NYW5hZ2VyOwogICAgIFJlZjxJUEM6OkNv
bm5lY3Rpb24+IG1fY29ubmVjdGlvbjsKKyAgICBSZWZQdHI8UHJvY2Vzc0lkZW50aXR5PiBtX3Jl
c291cmNlT3duZXI7CiAgICAgUmVmPFJlYWx0aW1lTWVkaWFTb3VyY2U+IG1fc291cmNlOwogICAg
IHN0ZDo6dW5pcXVlX3B0cjxDQVJpbmdCdWZmZXI+IG1fcmluZ0J1ZmZlcjsKICAgICBDQUF1ZGlv
U3RyZWFtRGVzY3JpcHRpb24gbV9kZXNjcmlwdGlvbiB7IH07CkBAIC0yNTcsOSArMjU0LDYgQEAg
cHJpdmF0ZToKICAgICBzaXplX3QgbV9mcmFtZUNodW5rU2l6ZSB7IDAgfTsKICAgICBNZWRpYVRp
bWUgbV9zdGFydFRpbWU7CiAgICAgYm9vbCBtX3Nob3VsZFJlc2V0IHsgZmFsc2UgfTsKLSNpZiBI
QVZFKFRBU0tfSURFTlRJVFlfVE9LRU4pCi0gICAgc3RkOjpvcHRpb25hbDx0YXNrX2lkX3Rva2Vu
X3Q+IG1fd2ViUHJvY2Vzc0lkZW50aXR5VG9rZW47Ci0jZW5kaWYKIH07CiAKIFVzZXJNZWRpYUNh
cHR1cmVNYW5hZ2VyUHJveHk6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkoVW5pcXVlUmVm
PENvbm5lY3Rpb25Qcm94eT4mJiBjb25uZWN0aW9uUHJveHkpCkBAIC0zMjMsMTIgKzMxNyw3IEBA
IHZvaWQgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6Y3JlYXRlTWVkaWFTb3VyY2VGb3JD
YXB0dXJlRGV2aWNlV2l0aENvbnN0cmFpCiAgICAgICAgIH0KIAogICAgICAgICBBU1NFUlQoIW1f
cHJveGllcy5jb250YWlucyhpZCkpOwotICAgICAgICBhdXRvIHByb3h5ID0gbWFrZVVuaXF1ZTxT
b3VyY2VQcm94eT4oaWQsIG1fY29ubmVjdGlvblByb3h5LT5jb25uZWN0aW9uKCksIFdURk1vdmUo
c291cmNlKSk7Ci0jaWYgSEFWRShJT1NVUkZBQ0VfU0VUX09XTkVSU0hJUF9JREVOVElUWSkKLSAg
ICAgICAgaWYgKGRldmljZS50eXBlKCkgIT0gV2ViQ29yZTo6Q2FwdHVyZURldmljZTo6RGV2aWNl
VHlwZTo6TWljcm9waG9uZSkKLSAgICAgICAgICAgIHByb3h5LT5zZXRXZWJQcm9jZXNzSWRlbnRp
dHlUb2tlbihtX2Nvbm5lY3Rpb25Qcm94eS0+d2ViUHJvY2Vzc0lkZW50aXR5VG9rZW4oKSk7Ci0j
ZW5kaWYKLQorICAgICAgICBhdXRvIHByb3h5ID0gbWFrZVVuaXF1ZTxTb3VyY2VQcm94eT4oaWQs
IG1fY29ubmVjdGlvblByb3h5LT5jb25uZWN0aW9uKCksIG1fY29ubmVjdGlvblByb3h5LT5yZXNv
dXJjZU93bmVyKCksIFdURk1vdmUoc291cmNlKSk7CiAgICAgICAgIG1fcHJveGllcy5hZGQoaWQs
IFdURk1vdmUocHJveHkpKTsKICAgICB9IGVsc2UKICAgICAgICAgaW52YWxpZENvbnN0cmFpbnRz
ID0gV1RGTW92ZShzb3VyY2VPckVycm9yLmVycm9yTWVzc2FnZSk7CkBAIC0zOTMsNyArMzgyLDcg
QEAgdm9pZCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OjpjbG9uZShSZWFsdGltZU1lZGlh
U291cmNlSWRlbnRpZmllciBjbG9uZWRJRCwKICAgICBNRVNTQUdFX0NIRUNLKG1fcHJveGllcy5j
b250YWlucyhjbG9uZWRJRCkpOwogICAgIE1FU1NBR0VfQ0hFQ0soIW1fcHJveGllcy5jb250YWlu
cyhuZXdTb3VyY2VJRCkpOwogICAgIGlmIChhdXRvKiBwcm94eSA9IG1fcHJveGllcy5nZXQoY2xv
bmVkSUQpKQotICAgICAgICBtX3Byb3hpZXMuYWRkKG5ld1NvdXJjZUlELCBtYWtlVW5pcXVlPFNv
dXJjZVByb3h5PihuZXdTb3VyY2VJRCwgbV9jb25uZWN0aW9uUHJveHktPmNvbm5lY3Rpb24oKSwg
cHJveHktPnNvdXJjZSgpLmNsb25lKCkpKTsKKyAgICAgICAgbV9wcm94aWVzLmFkZChuZXdTb3Vy
Y2VJRCwgbWFrZVVuaXF1ZTxTb3VyY2VQcm94eT4obmV3U291cmNlSUQsIG1fY29ubmVjdGlvblBy
b3h5LT5jb25uZWN0aW9uKCksIG1fY29ubmVjdGlvblByb3h5LT5yZXNvdXJjZU93bmVyKCksIHBy
b3h5LT5zb3VyY2UoKS5jbG9uZSgpKSk7CiB9CiAKIHZvaWQgVXNlck1lZGlhQ2FwdHVyZU1hbmFn
ZXJQcm94eTo6cmVxdWVzdFRvRW5kKFJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIHNvdXJj
ZUlEKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlh
Q2FwdHVyZU1hbmFnZXJQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVXNl
ck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5oCmluZGV4IDdhZmY0MjRkNTQwZDNiMWZkZWNkYWJj
ODY1NWMzYzU2YzUwYTEwZTUuLmM1ODZjZTNmM2QxMmU3OGUyMzczMmFlMTBjYzg5YjIzODA0YjJi
Y2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNh
cHR1cmVNYW5hZ2VyUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9V
c2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5LmgKQEAgLTMyLDYgKzMyLDcgQEAKICNpbmNsdWRl
ICJVc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5oIgogI2luY2x1ZGUgPFdlYkNvcmUvQ2FwdHVyZURl
dmljZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvT3JpZW50YXRpb25Ob3RpZmllci5oPgorI2luY2x1
ZGUgPFdlYkNvcmUvUHJvY2Vzc0lkZW50aXR5Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9SZWFsdGlt
ZU1lZGlhU291cmNlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9SZWFsdGltZU1lZGlhU291cmNlSWRl
bnRpZmllci5oPgogI2luY2x1ZGUgPHBhbC9zcGkvY29jb2EvVENDU1BJLmg+CkBAIC01OSw5ICs2
MCw3IEBAIHB1YmxpYzoKICAgICAgICAgdmlydHVhbCBib29sIHdpbGxTdGFydENhcHR1cmUoV2Vi
Q29yZTo6Q2FwdHVyZURldmljZTo6RGV2aWNlVHlwZSkgY29uc3QgPSAwOwogICAgICAgICB2aXJ0
dWFsIExvZ2dlciYgbG9nZ2VyKCkgPSAwOwogICAgICAgICB2aXJ0dWFsIGJvb2wgc2V0Q2FwdHVy
ZUF0dHJpYnV0aW9uU3RyaW5nKCkgeyByZXR1cm4gdHJ1ZTsgfQotI2lmIEhBVkUoSU9TVVJGQUNF
X1NFVF9PV05FUlNISVBfSURFTlRJVFkpCi0gICAgICAgIHZpcnR1YWwgc3RkOjpvcHRpb25hbDx0
YXNrX2lkX3Rva2VuX3Q+IHdlYlByb2Nlc3NJZGVudGl0eVRva2VuKCkgY29uc3QgeyByZXR1cm4g
eyB9OyB9OwotI2VuZGlmCisgICAgICAgIHZpcnR1YWwgUmVmUHRyPFdlYkNvcmU6OlByb2Nlc3NJ
ZGVudGl0eT4gcmVzb3VyY2VPd25lcigpIGNvbnN0IHsgcmV0dXJuIG51bGxwdHI7IH07CiAjaWYg
RU5BQkxFKEFQUF9QUklWQUNZX1JFUE9SVCkKICAgICAgICAgdmlydHVhbCB2b2lkIHNldFRDQ0lk
ZW50aXR5KCkgeyB9CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9HUFUvZ3JhcGhpY3MvY29jb2EvSW1hZ2VCdWZmZXJTaGFyZWFibGVNYXBwZWRJT1N1cmZhY2VC
YWNrZW5kLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvY29jb2Ev
SW1hZ2VCdWZmZXJTaGFyZWFibGVNYXBwZWRJT1N1cmZhY2VCYWNrZW5kLmNwcAppbmRleCBhZmQy
YzdjMDVjZmFmZDEzOTkzNDRmNWM2YTc2NGU0ODgwZDI4YmRhLi4xMTNlYWY5MmY4MGY1Mzg2NjBk
ZmJiNDA2MGMzYTdjODg4ZjY5MjVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvR1BVL2dyYXBoaWNzL2NvY29hL0ltYWdlQnVmZmVyU2hhcmVhYmxlTWFwcGVkSU9TdXJmYWNl
QmFja2VuZC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9j
b2NvYS9JbWFnZUJ1ZmZlclNoYXJlYWJsZU1hcHBlZElPU3VyZmFjZUJhY2tlbmQuY3BwCkBAIC03
NywxMyArNzcsMTEgQEAgSW1hZ2VCdWZmZXJCYWNrZW5kSGFuZGxlIEltYWdlQnVmZmVyU2hhcmVh
YmxlTWFwcGVkSU9TdXJmYWNlQmFja2VuZDo6Y3JlYXRlSW1hZ2UKICAgICByZXR1cm4gSW1hZ2VC
dWZmZXJCYWNrZW5kSGFuZGxlKG1fc3VyZmFjZS0+Y3JlYXRlU2VuZFJpZ2h0KCkpOwogfQogCi0j
aWYgSEFWRShJT1NVUkZBQ0VfU0VUX09XTkVSU0hJUF9JREVOVElUWSkKLXZvaWQgSW1hZ2VCdWZm
ZXJTaGFyZWFibGVNYXBwZWRJT1N1cmZhY2VCYWNrZW5kOjpzZXRQcm9jZXNzT3duZXJzaGlwKHRh
c2tfaWRfdG9rZW5fdCBwcm9jZXNzSWRlbnRpdHlUb2tlbikKK3ZvaWQgSW1hZ2VCdWZmZXJTaGFy
ZWFibGVNYXBwZWRJT1N1cmZhY2VCYWNrZW5kOjpzZXRPd25lcnNoaXBJZGVudGl0eShXZWJDb3Jl
OjpQcm9jZXNzSWRlbnRpdHkqIHJlc291cmNlT3duZXIpCiB7CiAgICAgQVNTRVJUKHN1cmZhY2Uo
KSk7Ci0gICAgc3VyZmFjZSgpLT5zZXRPd25lcnNoaXBJZGVudGl0eShwcm9jZXNzSWRlbnRpdHlU
b2tlbik7CisgICAgc3VyZmFjZSgpLT5zZXRPd25lcnNoaXBJZGVudGl0eShyZXNvdXJjZU93bmVy
KTsKIH0KLSNlbmRpZgogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9jb2NvYS9JbWFnZUJ1ZmZlclNoYXJl
YWJsZU1hcHBlZElPU3VyZmFjZUJhY2tlbmQuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9H
UFUvZ3JhcGhpY3MvY29jb2EvSW1hZ2VCdWZmZXJTaGFyZWFibGVNYXBwZWRJT1N1cmZhY2VCYWNr
ZW5kLmgKaW5kZXggZTE0YTU0MGVjZGRkNDcxMTkwOGE3YzE3MWMzYTI1ZWJmZDgwOGRiZS4uYjk3
NjMyMjAzMmU2ZmQxYTMwYjlhMjQ0ZmY4Mzg5NjYwOTU2NDdjMSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9jb2NvYS9JbWFnZUJ1ZmZlclNoYXJlYWJs
ZU1hcHBlZElPU3VyZmFjZUJhY2tlbmQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
R1BVL2dyYXBoaWNzL2NvY29hL0ltYWdlQnVmZmVyU2hhcmVhYmxlTWFwcGVkSU9TdXJmYWNlQmFj
a2VuZC5oCkBAIC0zMSw2ICszMSwxMCBAQAogI2luY2x1ZGUgPFdlYkNvcmUvSW1hZ2VCdWZmZXJJ
T1N1cmZhY2VCYWNrZW5kLmg+CiAjaW5jbHVkZSA8d3RmL0lzb01hbGxvYy5oPgogCituYW1lc3Bh
Y2UgV2ViQ29yZSB7CitjbGFzcyBQcm9jZXNzSWRlbnRpdHk7Cit9CisKIG5hbWVzcGFjZSBXZWJL
aXQgewogCiBjbGFzcyBTaGFyZWFibGVCaXRtYXA7CkBAIC00Niw5ICs1MCw3IEBAIHB1YmxpYzoK
IAogICAgIEltYWdlQnVmZmVyQmFja2VuZEhhbmRsZSBjcmVhdGVJbWFnZUJ1ZmZlckJhY2tlbmRI
YW5kbGUoKSBjb25zdDsKIAotI2lmIEhBVkUoSU9TVVJGQUNFX1NFVF9PV05FUlNISVBfSURFTlRJ
VFkpCi0gICAgdm9pZCBzZXRQcm9jZXNzT3duZXJzaGlwKHRhc2tfaWRfdG9rZW5fdCk7Ci0jZW5k
aWYKKyAgICB2b2lkIHNldE93bmVyc2hpcElkZW50aXR5KFdlYkNvcmU6OlByb2Nlc3NJZGVudGl0
eSogcmVzb3VyY2VPd25lcik7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9XZWJQcm9jZXNzQ29jb2EubW0gYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvV2ViUHJvY2Vzc0NvY29hLm1tCmluZGV4IDAz
NGUyYjQ4YWEwMTVhZjdjZWQ3NjZkZTlhY2U4MjhkZWQxMjI2NDkuLjY0MjVmMzk5NjU3ZDAwM2Iw
ZmFlMjdkNmE1YTMyNGQxZTRjYTFmZjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9jb2NvYS9XZWJQcm9jZXNzQ29jb2EubW0KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL2NvY29hL1dlYlByb2Nlc3NDb2NvYS5tbQpAQCAtMTI0MiwxNCArMTI0Miw3IEBAIHZvaWQg
V2ViUHJvY2Vzczo6d2FpdEZvclBlbmRpbmdQYXN0ZWJvYXJkV3JpdGVzVG9GaW5pc2goY29uc3Qg
U3RyaW5nJiBwYXN0ZWJvYXJkCiAjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQogdm9pZCBXZWJQcm9j
ZXNzOjpwbGF0Zm9ybUluaXRpYWxpemVHUFVQcm9jZXNzQ29ubmVjdGlvblBhcmFtZXRlcnMoR1BV
UHJvY2Vzc0Nvbm5lY3Rpb25QYXJhbWV0ZXJzJiBwYXJhbWV0ZXJzKQogewotI2lmIEhBVkUoVEFT
S19JREVOVElUWV9UT0tFTikKLSAgICB0YXNrX2lkX3Rva2VuX3QgaWRlbnRpdHlUb2tlbjsKLSAg
ICBrZXJuX3JldHVybl90IGtyID0gdGFza19jcmVhdGVfaWRlbnRpdHlfdG9rZW4obWFjaF90YXNr
X3NlbGYoKSwgJmlkZW50aXR5VG9rZW4pOwotICAgIGlmIChrciA9PSBLRVJOX1NVQ0NFU1MpCi0g
ICAgICAgIHBhcmFtZXRlcnMud2ViUHJvY2Vzc0lkZW50aXR5VG9rZW4gPSBNYWNoU2VuZFJpZ2h0
OjphZG9wdChpZGVudGl0eVRva2VuKTsKLSAgICBlbHNlCi0gICAgICAgIFJFTEVBU0VfTE9HX0VS
Uk9SKFByb2Nlc3MsICJDYWxsIHRvIHRhc2tfY3JlYXRlX2lkZW50aXR5X3Rva2VuKCkgZmFpbGVk
OiAle3ByaXZhdGV9cyAoJXgpIiwgbWFjaF9lcnJvcl9zdHJpbmcoa3IpLCBrcik7Ci0jZW5kaWYK
KyAgICBwYXJhbWV0ZXJzLndlYlByb2Nlc3NJZGVudGl0eUhhbmRsZSA9IFByb2Nlc3NJZGVudGl0
eTo6aGFuZGxlRm9yQ3VycmVudFByb2Nlc3MoKTsKIAogICAgIHBhcmFtZXRlcnMub3ZlcnJpZGVM
YW5ndWFnZXMgPSB1c2VyUHJlZmVycmVkTGFuZ3VhZ2VzT3ZlcnJpZGUoKTsKIH0KZGlmZiAtLWdp
dCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCA0YTU5MGY4M2YxMjE1
MmE5NTRjN2E0NWE3ZjZiYTM5M2Y4OWJmMjhjLi5lZjhhN2FjNTc5YWY2NGRlZTBmNWI4OTg3MWM2
MjJiZGQ3ZDU0ODExIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMjEtMTEtMTEgIEtpbW1vIEtpbm51bmVuICA8a2tp
bm51bmVuQGFwcGxlLmNvbT4KKworICAgICAgICBJT1N1cmZhY2UgbWVtb3J5IGF0dHJpYnV0aW9u
IGlzIGhhcmQgdG8gdXNlIGluIGNvbnN0cnVjdG9ycworICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMyOTg4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgVXBkYXRlIGNvbnN0cnVjdG9yIGNhbGxpbmcgYmFzZSBj
bGFzcyBjb25zdHJ1Y3Rvci4KKworICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29y
ZS9jb2NvYS9UZXN0R3JhcGhpY3NDb250ZXh0R0xPcGVuR0xDb2NvYS5tbToKKyAgICAgICAgKFRl
c3RXZWJLaXRBUEk6OldlYkNvcmU6OlRlc3RlZEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMOjpjcmVh
dGUpOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6V2ViQ29yZTo6VGVzdGVkR3JhcGhpY3NDb250
ZXh0R0xPcGVuR0w6OlRlc3RlZEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMKToKKwogMjAyMS0xMS0x
MSAgQnJlbnQgRnVsZ2hhbSAgPGJmdWxnaGFtQGFwcGxlLmNvbT4KIAogICAgICAgICBbV2ViQXV0
aG5dIFN0b3Agc2VyaWFsaXppbmcgQnVmZmVyU291cmNlIGFuZCBWZWN0b3I8dWludDhfdD4gZHVw
bGljYXRlcyBvZiBpZGVudGlmaWVycwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJDb3JlL2NvY29hL1Rlc3RHcmFwaGljc0NvbnRleHRHTE9wZW5HTENvY29hLm1tIGIv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL2NvY29hL1Rlc3RHcmFwaGljc0NvbnRl
eHRHTE9wZW5HTENvY29hLm1tCmluZGV4IDkxN2QyZTgxNjBhNTMyYmY2Njc0YTQyMDU1N2UyNGQ1
YWJhNzgzZjYuLjhjOGVhOGZkOGJlMzFiMGRmY2E4MDdlYjY1ZDBlMjcxODFiOGRkOWMgMTAwNjQ0
Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9jb2NvYS9UZXN0R3JhcGhp
Y3NDb250ZXh0R0xPcGVuR0xDb2NvYS5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYkNvcmUvY29jb2EvVGVzdEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMQ29jb2EubW0KQEAgLTM5
LDEyICszOSwxMiBAQCBjbGFzcyBUZXN0ZWRHcmFwaGljc0NvbnRleHRHTE9wZW5HTCA6IHB1Ymxp
YyBHcmFwaGljc0NvbnRleHRHTE9wZW5HTCB7CiBwdWJsaWM6CiAgICAgc3RhdGljIFJlZlB0cjxU
ZXN0ZWRHcmFwaGljc0NvbnRleHRHTE9wZW5HTD4gY3JlYXRlKEdyYXBoaWNzQ29udGV4dEdMQXR0
cmlidXRlcyBhdHRyaWJ1dGVzKQogICAgIHsKLSAgICAgICAgYXV0byBjb250ZXh0ID0gYWRvcHRS
ZWYoKm5ldyBUZXN0ZWRHcmFwaGljc0NvbnRleHRHTE9wZW5HTChXVEZNb3ZlKGF0dHJpYnV0ZXMp
KSk7CisgICAgICAgIGF1dG8gY29udGV4dCA9IGFkb3B0UmVmKCpuZXcgVGVzdGVkR3JhcGhpY3ND
b250ZXh0R0xPcGVuR0woV1RGTW92ZShhdHRyaWJ1dGVzKSwgeyB9KSk7CiAgICAgICAgIHJldHVy
biBjb250ZXh0OwogICAgIH0KIHByaXZhdGU6Ci0gICAgVGVzdGVkR3JhcGhpY3NDb250ZXh0R0xP
cGVuR0woR3JhcGhpY3NDb250ZXh0R0xBdHRyaWJ1dGVzIGF0dHJpYnV0ZXMpCi0gICAgICAgIDog
R3JhcGhpY3NDb250ZXh0R0xPcGVuR0woV1RGTW92ZShhdHRyaWJ1dGVzKSkKKyAgICBUZXN0ZWRH
cmFwaGljc0NvbnRleHRHTE9wZW5HTChHcmFwaGljc0NvbnRleHRHTEF0dHJpYnV0ZXMgYXR0cmli
dXRlcywgUmVmUHRyPFByb2Nlc3NJZGVudGl0eT4gcmVzb3VyY2VPd25lcikKKyAgICAgICAgOiBH
cmFwaGljc0NvbnRleHRHTE9wZW5HTChXVEZNb3ZlKGF0dHJpYnV0ZXMpLCBXVEZNb3ZlKHJlc291
cmNlT3duZXIpKQogICAgIHsKICAgICB9CiB9Owo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>444247</attachid>
            <date>2021-11-15 06:22:15 -0800</date>
            <delta_ts>2021-12-03 00:39:02 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-232988-20211115162213.patch</filename>
            <type>text/plain</type>
            <size>55907</size>
            <attacher name="Kimmo Kinnunen">kkinnunen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg1ODAzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTYwNTJkNDcwZjc2NzBk
ZTVjNTFkOGMwMjljYWE0YzdlODc5YjNhNS4uYWNlMTkwYTQwYmRiZWVhNWFkN2NkMmU1MjcwM2Ri
ZDQ0NWNiYTFmYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU3IEBACisyMDIxLTExLTExICBLaW1t
byBLaW5udW5lbiAgPGtraW5udW5lbkBhcHBsZS5jb20+CisKKyAgICAgICAgSU9TdXJmYWNlIG1l
bW9yeSBhdHRyaWJ1dGlvbiBpcyBoYXJkIHRvIHVzZSBpbiBjb25zdHJ1Y3RvcnMKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMjk4OAorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBXZWJDb3JlOjpQcm9j
ZXNzSWRlbnRpdHkgdHlwZSB0aGF0IGNhbiBiZSB1c2VkIHRvIGNvbW11bmljYXRlIG1lbW9yeSBh
dHRyaWJ1dGlvbi4KKyAgICAgICAgRm9yIG5vbi1Db2NvYSBwb3J0cywgdGhpcyBpcyBudWxscHRy
LgorICAgICAgICBUaGlzIGlzIHVzZWQgaW4gV2ViQ29yZSB0byBzZXQgdGhlIG1lbW9yeSBhdHRy
aWJ1dGlvbiBvZiBJT1N1cmZhY2UgYW5kIG9iamVjdHMKKyAgICAgICAgdGhhdCBob2xkIElPU3Vy
ZmFjZXMuCisgICAgICAgIFRoaXMgaXMgaW5zdGFudGlhdGVkIGluIFdlYktpdC4KKyAgICAgICAg
Q3VycmVudGx5IHRoZSBvbmx5IHVzZWZ1bCB3YXkgdG8gaW5zdGFudGlhdGUgUHJvY2Vzc0lkZW50
aXR5IGlzIGJ5IHJlY2VpdmluZworICAgICAgICB0aGUgUHJvY2Vzc0lkZW50aXR5OjpIYW5kbGUg
YXMgYSBtZXNzYWdlIGFuZCBjcmVhdGUgaXQgdGhpcyB3YXkgZm9yIHRoZQorICAgICAgICBzZW5k
ZXIgcHJvY2Vzcy4KKworICAgICAgICBObyBuZXcgdGVzdHMsIHJlZmFjdG9yLgorCisgICAgICAg
ICogSGVhZGVycy5jbWFrZToKKyAgICAgICAgKiBTb3VyY2VzLnR4dDoKKyAgICAgICAgKiBXZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogcGxhdGZvcm0vTG9nZ2lu
Zy5oOgorICAgICAgICBBZGQgV2ViQ29yZSBQcm9jZXNzIGxvZyB0YWcgc2luY2UgdGhlIGNvZGUg
bW92ZWQgZnJvbSBXZWJLaXQgdG8gUHJvY2Vzc0lkZW50aXR5CisgICAgICAgIHVzZWQgdGhhdCB0
YWcgdG8gbG9nLgorICAgICAgICAqIHBsYXRmb3JtL1Byb2Nlc3NJZGVudGl0eS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpQcm9jZXNzSWRlbnRpdHk6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3Jl
OjpQcm9jZXNzSWRlbnRpdHk6OlByb2Nlc3NJZGVudGl0eSk6CisgICAgICAgIChXZWJDb3JlOjpQ
cm9jZXNzSWRlbnRpdHk6OmhhbmRsZUZvckN1cnJlbnRQcm9jZXNzKToKKyAgICAgICAgKFdlYkNv
cmU6OlByb2Nlc3NJZGVudGl0eTo6aGFuZGxlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlBy
b2Nlc3NJZGVudGl0eTo6dGFza0lkVG9rZW4gY29uc3QpOgorICAgICAgICAqIHBsYXRmb3JtL1By
b2Nlc3NJZGVudGl0eS5oOgorICAgICAgICBBZGQgdGhlIFByb2Nlc3NJZGVudGl0eSB0eXBlIHRo
YXQgY2FuIGJlIHVzZWQgdG8gY29tbXVuaWNhdGUgbWVtb3J5IGF0dHJpYnV0aW9uLgorCisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvUmVtb3RlVmlkZW9TYW1wbGUuaDoKKyAgICAgICAgKFdl
YkNvcmU6OlJlbW90ZVZpZGVvU2FtcGxlOjpzZXRPd25lcnNoaXBJZGVudGl0eSk6CisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvY2cvSW1hZ2VCdWZmZXJVdGlsaXRpZXNDRy5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjplbmNvZGUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NvY29h
L0dyYXBoaWNzQ29udGV4dEdMT3BlbkdMQ29jb2EubW06CisgICAgICAgIChXZWJDb3JlOjpHcmFw
aGljc0NvbnRleHRHTE9wZW5HTDo6R3JhcGhpY3NDb250ZXh0R0xPcGVuR0wpOgorICAgICAgICAo
V2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0R0xPcGVuR0w6OmFsbG9jYXRlQW5kQmluZERpc3BsYXlC
dWZmZXJCYWNraW5nKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9JT1N1cmZh
Y2UuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9JT1N1cmZhY2UubW06Cisg
ICAgICAgIChXZWJDb3JlOjpJT1N1cmZhY2U6OnNldE93bmVyc2hpcElkZW50aXR5KToKKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9XZWJQcm9jZXNzR3JhcGhpY3NDb250ZXh0R0xP
cGVuR0xDb2NvYS5tbToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR3JhcGhp
Y3NDb250ZXh0R0xPcGVuR0wuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAv
R3JhcGhpY3NDb250ZXh0R0xUZXh0dXJlTWFwcGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okdy
YXBoaWNzQ29udGV4dEdMT3BlbkdMOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhp
Y3NDb250ZXh0R0xPcGVuR0w6OkdyYXBoaWNzQ29udGV4dEdMT3BlbkdMKToKKyAgICAgICAgQWRk
IGFuIGV4YW1wbGUgdXNlIHdoZXJlIHRoZSBjb25zdHJ1Y3RvciB0YWtlcyB0aGUgbWVtb3J5IGF0
dHJpYnV0aW9uIHRva2VuLgorICAgICAgICBUaGlzIG1heSBiZSBuZWVkZWQgaW4gdGhlIGZ1dHVy
ZSB3aGVuIHRoZSB0b2tlbiBpcyB1c2VkIGFzIGEgcGFyYW1ldGVyIGluCisgICAgICAgIHRoZSBB
TkdMRSBjb250ZXh0IGNyZWF0aW9uLgorICAgICAgICBVc2UgdGhlIHRva2VuIGluIGNyZWF0aW5n
IHRoZSBJT1N1cmZhY2UuIFRoaXMgZml4ZXMgYSBidWcgd2hlcmUgV2ViR0wKKyAgICAgICAgYmFj
ayBidWZmZXJzIHdvdWxkIG5vdCBiZSBhdHRyaWJ1dGVkIHVudGlsIHRoZXkgd2VyZSBzZW50IHRv
IFdQLgorCiAyMDIxLTExLTE1ICBFbnJpcXVlIE9jYcOxYSBHb256w6FsZXogIDxlb2NhbmhhQGln
YWxpYS5jb20+CiAKICAgICAgICAgW0dUS10gd2ViYXVkaW8vc2lsZW50LWF1ZGlvLWludGVycnVw
dGVkLWluLWJhY2tncm91bmQuaHRtbCBpcyBhIGZsYWt5IHRpbWVvdXQKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggNDU4
ZGYzOWY1YTNhZTBmZjBhZTIyMjc3ZjFhYTI0ZWJkZGEzY2VkZC4uNTQzMmY1MWE4N2I5YTRiZjg5
YTEzNmFjOWI0ZTk3OGE0NWZlOWMyYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VM
b2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSw1NCBAQAorMjAyMS0x
MS0xMSAgS2ltbW8gS2lubnVuZW4gIDxra2lubnVuZW5AYXBwbGUuY29tPgorCisgICAgICAgIElP
U3VyZmFjZSBtZW1vcnkgYXR0cmlidXRpb24gaXMgaGFyZCB0byB1c2UgaW4gY29uc3RydWN0b3Jz
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzI5ODgK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZW1vdmUg
aWZkZWZzIGFuZCBkaXJlY3QgdXNlIG9mIHRhc2tfaWRfdG9rZW5fdC4KKyAgICAgICAgSW5zdGVh
ZCwgdXNlIFdlYkNvcmU6OlByb2Nlc3NJZGVudGlmaWVyLiBUaGlzIHdheSB0aGUKKyAgICAgICAg
Y3Jvc3MtcGxhdGZvcm0gY29kZSBpcyBlYXNpZXIgdG8gYXV0aG9yLgorCisgICAgICAgICogR1BV
UHJvY2Vzcy9HUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6
R1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6R1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcyk6Cisg
ICAgICAgICogR1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmg6CisgICAgICAg
IChXZWJLaXQ6OkdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OndlYlByb2Nlc3NJZGVudGl0eSBj
b25zdCk6CisgICAgICAgIChXZWJLaXQ6OkdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OndlYlBy
b2Nlc3NJZGVudGl0eVRva2VuIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKiBHUFVQcm9jZXNz
L2dyYXBoaWNzL0dQVVByb2Nlc3NHcmFwaGljc0NvbnRleHRHTC5oOgorICAgICAgICAqIEdQVVBy
b2Nlc3MvZ3JhcGhpY3MvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xDb2NvYS5jcHA6CisgICAgICAg
IChXZWJLaXQ6OlJlbW90ZUdyYXBoaWNzQ29udGV4dEdMQ29jb2E6OlJlbW90ZUdyYXBoaWNzQ29u
dGV4dEdMQ29jb2EpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVHcmFwaGljc0NvbnRleHRHTENv
Y29hOjpwbGF0Zm9ybVdvcmtRdWV1ZUluaXRpYWxpemUpOgorICAgICAgICAoV2ViS2l0OjpSZW1v
dGVHcmFwaGljc0NvbnRleHRHTENvY29hOjpwcmVwYXJlRm9yRGlzcGxheSk6CisgICAgICAgICog
R1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVJbWFnZUJ1ZmZlci5oOgorICAgICAgICAoV2ViS2l0
OjpSZW1vdGVJbWFnZUJ1ZmZlcjo6c2V0T3duZXJzaGlwSWRlbnRpdHkpOgorICAgICAgICAoV2Vi
S2l0OjpSZW1vdGVJbWFnZUJ1ZmZlcjo6c2V0UHJvY2Vzc093bmVyc2hpcCk6IERlbGV0ZWQuCisg
ICAgICAgICogR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmNwcDoK
KyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVuZGVyaW5nQmFja2VuZDo6UmVtb3RlUmVuZGVyaW5n
QmFja2VuZCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlbmRlcmluZ0JhY2tlbmQ6OmNyZWF0
ZUltYWdlQnVmZmVyV2l0aFF1YWxpZmllZElkZW50aWZpZXIpOgorICAgICAgICAoV2ViS2l0OjpS
ZW1vdGVSZW5kZXJpbmdCYWNrZW5kOjpnZXREYXRhVVJMRm9ySW1hZ2VCdWZmZXJXaXRoUXVhbGlm
aWVkSWRlbnRpZmllcik6CisgICAgICAgICogR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5k
ZXJpbmdCYWNrZW5kLmg6CisgICAgICAgICogR1BVUHJvY2Vzcy93ZWJydGMvTGliV2ViUlRDQ29k
ZWNzUHJveHkubW06CisgICAgICAgIChXZWJLaXQ6OkZ1bmN0aW9uPHZvaWQpOgorICAgICAgICAq
IFNoYXJlZC9HUFVQcm9jZXNzQ29ubmVjdGlvblBhcmFtZXRlcnMuaDoKKyAgICAgICAgKFdlYktp
dDo6R1BVUHJvY2Vzc0Nvbm5lY3Rpb25QYXJhbWV0ZXJzOjplbmNvZGUgY29uc3QpOgorICAgICAg
ICAoV2ViS2l0OjpHUFVQcm9jZXNzQ29ubmVjdGlvblBhcmFtZXRlcnM6OmRlY29kZSk6CisgICAg
ICAgICogU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5jcHA6CisgICAgICAgICogU2hhcmVk
L1dlYkNvcmVBcmd1bWVudENvZGVycy5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9Vc2Vy
TWVkaWFDYXB0dXJlTWFuYWdlclByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlh
Q2FwdHVyZU1hbmFnZXJQcm94eTo6U291cmNlUHJveHk6OlNvdXJjZVByb3h5KToKKyAgICAgICAg
KFdlYktpdDo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6U291cmNlUHJveHk6OnNldFNo
b3VsZEFwcGx5Um90YXRpb24pOgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFDYXB0dXJlTWFu
YWdlclByb3h5OjpjcmVhdGVNZWRpYVNvdXJjZUZvckNhcHR1cmVEZXZpY2VXaXRoQ29uc3RyYWlu
dHMpOgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OjpjbG9u
ZSk6CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6OlNvdXJj
ZVByb3h5OjpzZXRXZWJQcm9jZXNzSWRlbnRpdHlUb2tlbik6IERlbGV0ZWQuCisgICAgICAgICog
VUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkuaDoKKyAgICAgICAg
KFdlYktpdDo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6Q29ubmVjdGlvblByb3h5Ojpy
ZXNvdXJjZU93bmVyIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhQ2FwdHVyZU1h
bmFnZXJQcm94eTo6Q29ubmVjdGlvblByb3h5Ojp3ZWJQcm9jZXNzSWRlbnRpdHlUb2tlbiBjb25z
dCk6IERlbGV0ZWQuCisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvY29jb2EvSW1h
Z2VCdWZmZXJTaGFyZWFibGVNYXBwZWRJT1N1cmZhY2VCYWNrZW5kLmNwcDoKKyAgICAgICAgKFdl
YktpdDo6SW1hZ2VCdWZmZXJTaGFyZWFibGVNYXBwZWRJT1N1cmZhY2VCYWNrZW5kOjpzZXRPd25l
cnNoaXBJZGVudGl0eSk6CisgICAgICAgIChXZWJLaXQ6OkltYWdlQnVmZmVyU2hhcmVhYmxlTWFw
cGVkSU9TdXJmYWNlQmFja2VuZDo6c2V0UHJvY2Vzc093bmVyc2hpcCk6IERlbGV0ZWQuCisgICAg
ICAgICogV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvY29jb2EvSW1hZ2VCdWZmZXJTaGFyZWFibGVN
YXBwZWRJT1N1cmZhY2VCYWNrZW5kLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9jb2NvYS9XZWJQ
cm9jZXNzQ29jb2EubW06CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OnBsYXRmb3JtSW5p
dGlhbGl6ZUdQVVByb2Nlc3NDb25uZWN0aW9uUGFyYW1ldGVycyk6CiAyMDIxLTExLTE0ICBCcmFk
eSBFaWRzb24gIDxiZWlkc29uQGFwcGxlLmNvbT4KIAogICAgICAgICBHZXQgZGFlbW9uIEFQSSBy
ZWFkeSB0byB3b3JrIGluIHRoZSBpT1Mgc2ltdWxhdG9yIChzdGFydGluZyB3aXRoIFdlYlB1c2hE
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZSBiL1NvdXJjZS9XZWJD
b3JlL0hlYWRlcnMuY21ha2UKaW5kZXggMzkxNTczZjA4MjRjY2QzNDgyZGZkNjE3Zjk3ZDZhYTVi
MGI3Y2VkYy4uZDNhMmZiYmI4NjgyZDE2ZDBjMzVjNzE4MjNhNWQzNGRmMWM1MmI2NCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQorKysgYi9Tb3VyY2UvV2ViQ29yZS9I
ZWFkZXJzLmNtYWtlCkBAIC0xMTQ3LDYgKzExNDcsNyBAQCBzZXQoV2ViQ29yZV9QUklWQVRFX0ZS
QU1FV09SS19IRUFERVJTCiAgICAgcGxhdGZvcm0vUG9wdXBNZW51Q2xpZW50LmgKICAgICBwbGF0
Zm9ybS9Qb3B1cE1lbnVTdHlsZS5oCiAgICAgcGxhdGZvcm0vUHJvY2Vzc0lkZW50aWZpZXIuaAor
ICAgIHBsYXRmb3JtL1Byb2Nlc3NJZGVudGl0eS5oCiAgICAgcGxhdGZvcm0vUHJvY2Vzc1F1YWxp
ZmllZC5oCiAgICAgcGxhdGZvcm0vUHJvbWlzZWRBdHRhY2htZW50SW5mby5oCiAgICAgcGxhdGZv
cm0vUHVibGljU3VmZml4LmgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0
IGIvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKaW5kZXggNTRkOGQzYmQ5ODBlOGI5YjZiODIx
ZjljY2I0ZmE1MjJlMWJmMWUwMi4uODQzMDQxNWYxYzQ3MjcyODdmNDc3ZDM1ZjkwZTQyNTM1NzE0
YWZiOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKKysrIGIvU291cmNl
L1dlYkNvcmUvU291cmNlcy50eHQKQEAgLTE4NzYsNiArMTg3Niw3IEBAIHBsYXRmb3JtL1BsYXRm
b3JtU3RyYXRlZ2llcy5jcHAKIHBsYXRmb3JtL1BsYXRmb3JtV2hlZWxFdmVudC5jcHAKIHBsYXRm
b3JtL1ByZXZpZXdDb252ZXJ0ZXIuY3BwCiBwbGF0Zm9ybS9Qcm9jZXNzSWRlbnRpZmllci5jcHAK
K3BsYXRmb3JtL1Byb2Nlc3NJZGVudGl0eS5jcHAKIHBsYXRmb3JtL1JlZmVycmVyUG9saWN5LmNw
cAogcGxhdGZvcm0vUmVtb3RlQ29tbWFuZExpc3RlbmVyLmNwcAogcGxhdGZvcm0vUnVudGltZUFw
cGxpY2F0aW9uQ2hlY2tzLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDk5ODEwZWI4MjAzY2NkYTZiNWM5ZTM4MTYxNGI2MmJl
NmVmMmExY2MuLjg4ZWZiNTNmOWE3NGExYzFjMjA5ZDRmMTQ5Y2MwOTY1OWFlY2IyODUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagor
KysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAg
LTIzNjMsNiArMjM2Myw3IEBACiAJCTdCNzMxMUZCMjVDMDkyQjcwMDNCMjc5NiAvKiBTY29wZWRI
aWdoUGVyZm9ybWFuY2VHUFVSZXF1ZXN0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA3QjczMTFGQTI1QzA5MkI3MDAzQjI3OTYgLyogU2NvcGVkSGlnaFBl
cmZvcm1hbmNlR1BVUmVxdWVzdC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07CiAJCTdCOEVENUYwMjZGMEMxM0QwMDhBQzAyMyAvKiBDVlV0aWxpdGllcy5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0I4RUQ1RUQy
NkYwQzEyMzAwOEFDMDIzIC8qIENWVXRpbGl0aWVzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVU
RVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJN0I5MDQxNzAyNTUwMTE0MjAwNkVFQjhDIC8qIFJl
bW90ZUdyYXBoaWNzQ29udGV4dEdMUHJveHlCYXNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3QjkwNDE2RTI1NTAxMTA5MDA2RUVCOEMgLyogUmVtb3Rl
R3JhcGhpY3NDb250ZXh0R0xQcm94eUJhc2UuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9
IChQcml2YXRlLCApOyB9OyB9OworCQk3QkE3QzZDMzI3M0JGNjJDMDAyOURGQkUgLyogUHJvY2Vz
c0lkZW50aXR5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA3QkE3QzZDMTI3M0JGNjJCMDAyOURGQkUgLyogUHJvY2Vzc0lkZW50aXR5LmggKi87IHNldHRp
bmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJN0JCMzRBNDgyNTM3NzZD
QTAwMDI5RDA4IC8qIEdyYXBoaWNzQ29udGV4dEdMSW1hZ2VFeHRyYWN0b3IuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdCQjM0QTQ1MjUzNzc2QzYwMDAy
OUQwOCAvKiBHcmFwaGljc0NvbnRleHRHTEltYWdlRXh0cmFjdG9yLmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJN0JCNjgwQkEyNUJBMUJFNDAwMkI4
NzM4IC8qIEdyYXBoaWNzQ2hlY2tzTWFjLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA3QkI2ODBCODI1QkExQkU0MDAyQjg3MzggLyogR3JhcGhpY3NDaGVj
a3NNYWMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9Owog
CQk3QkU3NDI3MzgxRkE5MDZGQkI0RjBGMkMgLyogSlNTVkdHcmFwaGljc0VsZW1lbnQuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk1MEM0QzAyQkVEODkz
NkY4MThFMkY5OSAvKiBKU1NWR0dyYXBoaWNzRWxlbWVudC5oICovOyB9OwpAQCAtMTEwMjYsNiAr
MTEwMjcsOCBAQAogCQk3QjhFRDVFRDI2RjBDMTIzMDA4QUMwMjMgLyogQ1ZVdGlsaXRpZXMuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ1ZVdGlsaXRpZXMuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0I4RUQ1RUYyNkYwQzEyMzAwOEFDMDIzIC8qIENWVXRpbGl0
aWVzLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gQ1ZVdGlsaXRp
ZXMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdCOTA0MTZFMjU1MDExMDkwMDZF
RUI4QyAvKiBSZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5QmFzZS5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBSZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5QmFzZS5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQk3QkE3QzZCRjI3M0JGNjJCMDAyOURGQkUgLyogUHJvY2Vzc0lkZW50aXR5LmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFByb2Nlc3NJZGVudGl0eS5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTdCQTdDNkMxMjczQkY2MkIwMDI5REZC
RSAvKiBQcm9jZXNzSWRlbnRpdHkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
UHJvY2Vzc0lkZW50aXR5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdCQjM0QTE2
MjUzNDVDQjIwMDAyOUQwOCAvKiBBTkdMRVV0aWxpdGllcy5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBBTkdMRVV0aWxpdGllcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk3QkIzNEE0NTI1Mzc3NkM2MDAwMjlEMDggLyogR3JhcGhpY3NDb250ZXh0R0xJbWFnZUV4
dHJhY3Rvci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBHcmFwaGljc0NvbnRleHRHTEltYWdlRXh0cmFjdG9y
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdCQjM0QTQ3MjUzNzc2QzcwMDAyOUQw
OCAvKiBHcmFwaGljc0NvbnRleHRHTEltYWdlRXh0cmFjdG9yLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IEdyYXBoaWNzQ29udGV4dEdMSW1hZ2VFeHRyYWN0b3IuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwpAQCAtMTg5MzgsMTEgKzE4OTQxLDExIEBACiAJCTFBNTY5Q0M0MEQ3RTJCNjAw
MDdDMzk4MyAvKiBicmlkZ2UgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVu
ID0gKAotCQkJCTU5QjU5NzcxMTEwODY1NTYwMDcxNTlFOCAvKiBqc2MgKi8sCiAJCQkJMUE1NjlD
RTIwRDdFMkI4MjAwN0MzOTgzIC8qIG9iamMgKi8sCiAJCQkJNTk5RTc1OEYxMTA1NUExRjAwRDkw
NEZBIC8qIEJyaWRnZS5oICovLAogCQkJCTFBNzFENTc5MEYzMzgxOTAwMEY5Q0U0RSAvKiBJZGVu
dGlmaWVyUmVwLmNwcCAqLywKIAkJCQkxQTcxRDU3QTBGMzM4MTkwMDBGOUNFNEUgLyogSWRlbnRp
ZmllclJlcC5oICovLAorCQkJCTU5QjU5NzcxMTEwODY1NTYwMDcxNTlFOCAvKiBqc2MgKi8sCiAJ
CQkJMUE1NjlDRUYwRDdFMkI4MjAwN0MzOTgzIC8qIHJ1bnRpbWVfYXJyYXkuY3BwICovLAogCQkJ
CTFBNTY5Q0YwMEQ3RTJCODIwMDdDMzk4MyAvKiBydW50aW1lX2FycmF5LmggKi8sCiAJCQkJMUE1
NjlDRjEwRDdFMkI4MjAwN0MzOTgzIC8qIHJ1bnRpbWVfbWV0aG9kLmNwcCAqLywKQEAgLTI5MDI1
LDYgKzI5MDI4LDggQEAKIAkJCQlBMUFEQUY3QzIzNjBGRDNFMDA5Q0I3NzYgLyogUHJldmlld0Nv
bnZlcnRlclByb3ZpZGVyLmggKi8sCiAJCQkJNTFGNjQ1RDIxRkVDREJDODAwQjU0REVEIC8qIFBy
b2Nlc3NJZGVudGlmaWVyLmNwcCAqLywKIAkJCQk1MUY2NDVEMzFGRUNEQkM4MDBCNTRERUQgLyog
UHJvY2Vzc0lkZW50aWZpZXIuaCAqLywKKwkJCQk3QkE3QzZCRjI3M0JGNjJCMDAyOURGQkUgLyog
UHJvY2Vzc0lkZW50aXR5LmNwcCAqLywKKwkJCQk3QkE3QzZDMTI3M0JGNjJCMDAyOURGQkUgLyog
UHJvY2Vzc0lkZW50aXR5LmggKi8sCiAJCQkJMUNDNTRBRkIyNzBGOTJEQTAwNUJGOEJFIC8qIFBy
b2Nlc3NRdWFsaWZpZWQuaCAqLywKIAkJCQlGNDdBNjMzQzFGRjZGRDUwMDA4MUIzQ0MgLyogUHJv
bWlzZWRBdHRhY2htZW50SW5mby5oICovLAogCQkJCTAwODFGRUZEMTZCMEEyNDQwMDhBQUE3QSAv
KiBQdWJsaWNTdWZmaXguaCAqLywKQEAgLTM1NTE2LDYgKzM1NTIxLDcgQEAKIAkJCQlCNzFGRTZE
RjExMDkxQ0IzMDBEQUVGNzcgLyogUHJpbnRDb250ZXh0LmggaW4gSGVhZGVycyAqLywKIAkJCQk2
QjBBMDdGMjIxRkE0QjVDMDBENTczOTEgLyogUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTUxRjY0NUQ1MUZFQ0RCQ0UwMEI1NERFRCAvKiBQcm9jZXNzSWRlbnRp
Zmllci5oIGluIEhlYWRlcnMgKi8sCisJCQkJN0JBN0M2QzMyNzNCRjYyQzAwMjlERkJFIC8qIFBy
b2Nlc3NJZGVudGl0eS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQThFQTdFQkMwQTE5NDVEMDAwQThF
RjVGIC8qIFByb2Nlc3NpbmdJbnN0cnVjdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUNDNTRB
RkUyNzBGOTZBRTAwNUJGOEJFIC8qIFByb2Nlc3NRdWFsaWZpZWQuaCBpbiBIZWFkZXJzICovLAog
CQkJCUU0MjA1MDE3MjE0MTkwMUIwMDY2RUYzQiAvKiBQcm9jZXNzV2FybWluZy5oIGluIEhlYWRl
cnMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Mb2dnaW5nLmggYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Mb2dnaW5nLmgKaW5kZXggM2ZiZTQxN2JlOTgxYjc1ZTc3
OWRlMjM4ZmM0YmUwNWE2ZDczMGZhYS4uZGMwZjUwOThiODdmMTg0NTUyNWJlM2MwYmE0MWY3Njc1
YjE0MDQ3ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTG9nZ2luZy5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xvZ2dpbmcuaApAQCAtOTQsNiArOTQsNyBAQCBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgTShQbHVnaW5zKSBcCiAgICAgTShQb3B1cEJsb2NraW5n
KSBcCiAgICAgTShQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCkgXAorICAgIE0oUHJvY2VzcykgXAog
ICAgIE0oUHJvZ3Jlc3MpIFwKICAgICBNKFJlbW90ZUluc3BlY3RvcikgXAogICAgIE0oUmVxdWVz
dEFuaW1hdGlvbkZyYW1lKSBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Q
cm9jZXNzSWRlbnRpdHkuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUHJvY2Vzc0lkZW50
aXR5LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi43MTlkMDM2ODkxMzE2ODAxODc0ZGQzNzBmYjJiYjMyMTBmMzU2
Njg5Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUHJvY2Vzc0lk
ZW50aXR5LmNwcApAQCAtMCwwICsxLDc5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
VEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1Ig
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAq
IFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlByb2Nlc3NJ
ZGVudGl0eS5oIgorCisjaW5jbHVkZSAiTG9nZ2luZy5oIgorCisjaWYgSEFWRShUQVNLX0lERU5U
SVRZX1RPS0VOKQorI2luY2x1ZGUgPG1hY2gvbWFjaC5oPgorI2VuZGlmCisKK25hbWVzcGFjZSBX
ZWJDb3JlIHsKKworUmVmUHRyPFByb2Nlc3NJZGVudGl0eT4gUHJvY2Vzc0lkZW50aXR5OjpjcmVh
dGUoSGFuZGxlJiYgaGFuZGxlKQoreworI2lmIEhBVkUoVEFTS19JREVOVElUWV9UT0tFTikKKyAg
ICBpZiAoaGFuZGxlKQorICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IFByb2Nlc3NJZGVudGl0
eShXVEZNb3ZlKGhhbmRsZSkpKTsKKyNlbHNlCisgICAgVU5VU0VEX1BBUkFNKGhhbmRsZSk7Cisj
ZW5kaWYKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKworUHJvY2Vzc0lkZW50aXR5OjpQcm9jZXNz
SWRlbnRpdHkoSGFuZGxlJiYgaGFuZGxlKQorICAgIDogbV9oYW5kbGUoV1RGTW92ZShoYW5kbGUp
KQoreworfQorCitQcm9jZXNzSWRlbnRpdHk6OkhhbmRsZSBQcm9jZXNzSWRlbnRpdHk6OmhhbmRs
ZUZvckN1cnJlbnRQcm9jZXNzKCkKK3sKKyAgICBQcm9jZXNzSWRlbnRpdHk6OkhhbmRsZSByZXN1
bHQ7CisjaWYgSEFWRShUQVNLX0lERU5USVRZX1RPS0VOKQorICAgIHRhc2tfaWRfdG9rZW5fdCBp
ZGVudGl0eVRva2VuOworICAgIGtlcm5fcmV0dXJuX3Qga3IgPSB0YXNrX2NyZWF0ZV9pZGVudGl0
eV90b2tlbihtYWNoX3Rhc2tfc2VsZigpLCAmaWRlbnRpdHlUb2tlbik7CisgICAgaWYgKGtyID09
IEtFUk5fU1VDQ0VTUykKKyAgICAgICAgcmVzdWx0ID0gTWFjaFNlbmRSaWdodDo6YWRvcHQoaWRl
bnRpdHlUb2tlbik7CisgICAgZWxzZQorICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihQcm9jZXNz
LCAidGFza19jcmVhdGVfaWRlbnRpdHlfdG9rZW4oKSBmYWlsZWQ6ICV7cHJpdmF0ZX1zICgleCki
LCBtYWNoX2Vycm9yX3N0cmluZyhrciksIGtyKTsKKyNlbmRpZgorICAgIHJldHVybiByZXN1bHQ7
Cit9CisKK2NvbnN0IFByb2Nlc3NJZGVudGl0eTo6SGFuZGxlJiBQcm9jZXNzSWRlbnRpdHk6Omhh
bmRsZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1faGFuZGxlOworfQorCisjaWYgSEFWRShUQVNL
X0lERU5USVRZX1RPS0VOKQordGFza19pZF90b2tlbl90IFByb2Nlc3NJZGVudGl0eTo6dGFza0lk
VG9rZW4oKSBjb25zdAoreworICAgIHJldHVybiBtX2hhbmRsZS5zZW5kUmlnaHQoKTsKK30KKyNl
bmRpZgorCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Qcm9jZXNzSWRl
bnRpdHkuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Byb2Nlc3NJZGVudGl0eS5oCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjBjYTAxOTNiMTJlNTQ0MzZjNmZlYmJjNmViZTM0ZTAxNjM3NjBmYTAKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Qcm9jZXNzSWRlbnRpdHkuaApAQCAt
MCwwICsxLDYxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9G
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICog
UFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlIDx3dGYvVGhyZWFkU2FmZVJlZkNvdW50ZWQuaD4K
KworI2lmIEhBVkUoVEFTS19JREVOVElUWV9UT0tFTikKKyNpbmNsdWRlIDx3dGYvTWFjaFNlbmRS
aWdodC5oPgorI2Vsc2UKKyNpbmNsdWRlIDx2YXJpYW50PgorI2VuZGlmCisKK25hbWVzcGFjZSBX
ZWJDb3JlIHsKKworLy8gT2JqZWN0IHRvIGFjY2VzcyBwcm9vZiBvZiBwcm9jZXNzIGlkZW50aXR5
LgorLy8gUHJvY2Vzc0lkZW50aWZpZXIgaWRlbnRpZmllcyBhIHByb2Nlc3MuCisvLyBQcm9jZXNz
SWRlbnRpdHkgZ3JhbnRzIGFjY2VzcyB0byB0aGUgaWRlbnRpdHkuCitjbGFzcyBXRUJDT1JFX0VY
UE9SVCBQcm9jZXNzSWRlbnRpdHkgZmluYWwgOiBwdWJsaWMgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8
UHJvY2Vzc0lkZW50aXR5PiB7CitwdWJsaWM6CisjaWYgSEFWRShUQVNLX0lERU5USVRZX1RPS0VO
KQorICAgIHVzaW5nIEhhbmRsZSA9IE1hY2hTZW5kUmlnaHQ7CisjZWxzZQorICAgIHVzaW5nIEhh
bmRsZSA9IHN0ZDo6bW9ub3N0YXRlOworI2VuZGlmCisgICAgc3RhdGljIFJlZlB0cjxQcm9jZXNz
SWRlbnRpdHk+IGNyZWF0ZShIYW5kbGUmJik7CisgICAgc3RhdGljIEhhbmRsZSBoYW5kbGVGb3JD
dXJyZW50UHJvY2VzcygpOworICAgIGNvbnN0IEhhbmRsZSYgaGFuZGxlKCkgY29uc3Q7CisKKyNp
ZiBIQVZFKFRBU0tfSURFTlRJVFlfVE9LRU4pCisgICAgdGFza19pZF90b2tlbl90IHRhc2tJZFRv
a2VuKCkgY29uc3Q7CisjZW5kaWYKK3ByaXZhdGU6CisgICAgUHJvY2Vzc0lkZW50aXR5KEhhbmRs
ZSYmKTsKKworICAgIEhhbmRsZSBtX2hhbmRsZTsKK307CisKK30KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1JlbW90ZVZpZGVvU2FtcGxlLmggYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9SZW1vdGVWaWRlb1NhbXBsZS5oCmluZGV4IGE2MTcw
YjMyOGZjNDRhY2U2OTNkY2RiMzVlZTRkM2NlNjg3MzM4YTEuLjBmNWJhZWE4NTZlM2YxYThjZTE2
NWIyMDM4NjVjOTY0NDM1NDI1NjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL1JlbW90ZVZpZGVvU2FtcGxlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvUmVtb3RlVmlkZW9TYW1wbGUuaApAQCAtMzcsNiArMzcsOCBAQCB0eXBlZGVm
IHN0cnVjdCBfX0NWQnVmZmVyKiBDVlBpeGVsQnVmZmVyUmVmOwogCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKK2NsYXNzIFByb2Nlc3NJZGVudGl0eTsKKwogY2xhc3MgUmVtb3RlVmlkZW9TYW1wbGUg
ewogcHVibGljOgogICAgIFJlbW90ZVZpZGVvU2FtcGxlKCkgPSBkZWZhdWx0OwpAQCAtNDgsOSAr
NTAsNyBAQCBwdWJsaWM6CiAgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIHN0ZDo6dW5pcXVlX3B0
cjxSZW1vdGVWaWRlb1NhbXBsZT4gY3JlYXRlKFJldGFpblB0cjxDVlBpeGVsQnVmZmVyUmVmPiYm
LCBNZWRpYVRpbWUmJiBwcmVzZW50YXRpb25UaW1lLCBNZWRpYVNhbXBsZTo6VmlkZW9Sb3RhdGlv
biA9IE1lZGlhU2FtcGxlOjpWaWRlb1JvdGF0aW9uOjpOb25lKTsKICAgICBXRUJDT1JFX0VYUE9S
VCBJT1N1cmZhY2VSZWYgc3VyZmFjZSgpIGNvbnN0OwogCi0jaWYgSEFWRShJT1NVUkZBQ0VfU0VU
X09XTkVSU0hJUF9JREVOVElUWSkKLSAgICB2b2lkIHNldE93bmVyc2hpcElkZW50aXR5KHRhc2tf
aWRfdG9rZW5fdCBuZXdPd25lcik7Ci0jZW5kaWYKKyAgICB2b2lkIHNldE93bmVyc2hpcElkZW50
aXR5KFByb2Nlc3NJZGVudGl0eSogcmVzb3VyY2VPd25lcik7CiAKICAgICBjb25zdCBNZWRpYVRp
bWUmIHRpbWUoKSBjb25zdCB7IHJldHVybiBtX3RpbWU7IH0KICAgICB1aW50MzJfdCB2aWRlb0Zv
cm1hdCgpIGNvbnN0IHsgcmV0dXJuIG1fdmlkZW9Gb3JtYXQ7IH0KQEAgLTExOSwxMyArMTE5LDEx
IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX21pcnJvcmVkIHsgZmFsc2UgfTsKIH07CiAKLSNpZiBI
QVZFKElPU1VSRkFDRV9TRVRfT1dORVJTSElQX0lERU5USVRZKQotaW5saW5lIHZvaWQgUmVtb3Rl
VmlkZW9TYW1wbGU6OnNldE93bmVyc2hpcElkZW50aXR5KHRhc2tfaWRfdG9rZW5fdCBuZXdPd25l
cikKK2lubGluZSB2b2lkIFJlbW90ZVZpZGVvU2FtcGxlOjpzZXRPd25lcnNoaXBJZGVudGl0eShQ
cm9jZXNzSWRlbnRpdHkqIHJlc291cmNlT3duZXIpCiB7CiAgICAgaWYgKG1faW9TdXJmYWNlKQot
ICAgICAgICBtX2lvU3VyZmFjZS0+c2V0T3duZXJzaGlwSWRlbnRpdHkobmV3T3duZXIpOworICAg
ICAgICBtX2lvU3VyZmFjZS0+c2V0T3duZXJzaGlwSWRlbnRpdHkocmVzb3VyY2VPd25lcik7CiB9
Ci0jZW5kaWYKIAogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jb2NvYS9HcmFwaGljc0NvbnRleHRHTE9wZW5HTENvY29hLm1tIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvR3JhcGhpY3NDb250ZXh0R0xPcGVuR0xDb2NvYS5t
bQppbmRleCBmYjcyM2RkNDIyZGU5YjlkYWRhOWU0Y2I4OTdkMDYxY2JlNmQ2MDNlLi4xOTc5ZGE1
NjcyNGJhMGQyNWFkYTVkMTQxYjYzZjVhYjVmMWU3YTk0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9HcmFwaGljc0NvbnRleHRHTE9wZW5HTENvY29h
Lm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0dyYXBoaWNz
Q29udGV4dEdMT3BlbkdMQ29jb2EubW0KQEAgLTE5Myw4ICsxOTMsOSBAQCBzdGF0aWMgYm9vbCBu
ZWVkc0VBR0xPbk1hYygpCiB9CiAjZW5kaWYKIAotR3JhcGhpY3NDb250ZXh0R0xPcGVuR0w6Okdy
YXBoaWNzQ29udGV4dEdMT3BlbkdMKEdyYXBoaWNzQ29udGV4dEdMQXR0cmlidXRlcyBhdHRycykK
K0dyYXBoaWNzQ29udGV4dEdMT3BlbkdMOjpHcmFwaGljc0NvbnRleHRHTE9wZW5HTChHcmFwaGlj
c0NvbnRleHRHTEF0dHJpYnV0ZXMmJiBhdHRycywgUmVmUHRyPFByb2Nlc3NJZGVudGl0eT4mJiBy
ZXNvdXJjZU93bmVyKQogICAgIDogR3JhcGhpY3NDb250ZXh0R0woYXR0cnMpCisgICAgLCBtX3Jl
c291cmNlT3duZXIoV1RGTW92ZShyZXNvdXJjZU93bmVyKSkKIHsKICAgICBtX2lzRm9yV2ViR0wy
ID0gYXR0cnMud2ViR0xWZXJzaW9uID09IEdyYXBoaWNzQ29udGV4dEdMV2ViR0xWZXJzaW9uOjpX
ZWJHTDI7CiAgICAgaWYgKGF0dHJzLnVzZU1ldGFsICYmICFwbGF0Zm9ybVN1cHBvcnRzTWV0YWwo
bV9pc0ZvcldlYkdMMikpIHsKQEAgLTU2NSw2ICs1NjYsOCBAQCBib29sIEdyYXBoaWNzQ29udGV4
dEdMT3BlbkdMOjphbGxvY2F0ZUFuZEJpbmREaXNwbGF5QnVmZmVyQmFja2luZygpCiAgICAgYXV0
byBiYWNraW5nID0gSU9TdXJmYWNlOjpjcmVhdGUoZ2V0SW50ZXJuYWxGcmFtZWJ1ZmZlclNpemUo
KSwgRGVzdGluYXRpb25Db2xvclNwYWNlOjpTUkdCKCkpOwogICAgIGlmICghYmFja2luZykKICAg
ICAgICAgcmV0dXJuIGZhbHNlOworICAgIGlmIChtX3Jlc291cmNlT3duZXIpCisgICAgICAgIGJh
Y2tpbmctPnNldE93bmVyc2hpcElkZW50aXR5KG1fcmVzb3VyY2VPd25lci5nZXQoKSk7CiAKICAg
ICBiYWNraW5nLT5taWdyYXRlQ29sb3JTcGFjZVRvUHJvcGVydGllcygpOwogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9JT1N1cmZhY2UuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0lPU3VyZmFjZS5oCmluZGV4IDU2
NTI0NzgyMmRiYTI5Zjc2MDBiOTQwN2U2ZjRhY2I4YzFhMDZhYWMuLjBjNDNjYTRmODA0ZDI2MGM2
MTA1ZWI5MmI2MTEwOTFlMmMyNTMyYTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2NvY29hL0lPU3VyZmFjZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2NvY29hL0lPU3VyZmFjZS5oCkBAIC00Niw2ICs0Niw3IEBAIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIGNsYXNzIEdyYXBoaWNzQ29udGV4dDsKIGNsYXNzIEhvc3RXaW5kb3c7CiBj
bGFzcyBJbWFnZUJ1ZmZlcjsKK2NsYXNzIFByb2Nlc3NJZGVudGl0eTsKIAogZW51bSBjbGFzcyBQ
aXhlbEZvcm1hdCA6IHVpbnQ4X3Q7CiBlbnVtIGNsYXNzIFZvbGF0aWxpdHlTdGF0ZSA6IHVpbnQ4
X3Q7CkBAIC0xNTksOSArMTYwLDcgQEAgcHVibGljOgogICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRp
YyB2b2lkIGNvbnZlcnRUb0Zvcm1hdChzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6SU9TdXJmYWNl
PiYmIGluU3VyZmFjZSwgRm9ybWF0LCBGdW5jdGlvbjx2b2lkKHN0ZDo6dW5pcXVlX3B0cjxXZWJD
b3JlOjpJT1N1cmZhY2U+KT4mJik7CiAjZW5kaWYgLy8gSEFWRShJT1NVUkZBQ0VfQUNDRUxFUkFU
T1IpCiAKLSNpZiBIQVZFKElPU1VSRkFDRV9TRVRfT1dORVJTSElQX0lERU5USVRZKQotICAgIFdF
QkNPUkVfRVhQT1JUIHZvaWQgc2V0T3duZXJzaGlwSWRlbnRpdHkodGFza19pZF90b2tlbl90IG5l
d093bmVyKTsKLSNlbmRpZgorICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0T3duZXJzaGlwSWRl
bnRpdHkoUHJvY2Vzc0lkZW50aXR5KiByZXNvdXJjZU93bmVyKTsKIAogICAgIHZvaWQgbWlncmF0
ZUNvbG9yU3BhY2VUb1Byb3BlcnRpZXMoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvSU9TdXJmYWNlLm1tIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY29jb2EvSU9TdXJmYWNlLm1tCmluZGV4IDAxMTE2NWNlMTFhYmNlNjc1
YzRiNDdiZjkxNWQ0YzgxZTZjZWU5OTUuLjE1YmY2OGY3ZmU1YTY5ODY3ZmNjOWQ1NmE2ZTViZDRm
NmJjM2QzMDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nv
Y29hL0lPU3VyZmFjZS5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
b2NvYS9JT1N1cmZhY2UubW0KQEAgLTM0LDYgKzM0LDcgQEAKICNpbXBvcnQgIkltYWdlQnVmZmVy
LmgiCiAjaW1wb3J0ICJMb2dnaW5nLmgiCiAjaW1wb3J0ICJQbGF0Zm9ybVNjcmVlbi5oIgorI2lt
cG9ydCAiUHJvY2Vzc0lkZW50aXR5LmgiCiAjaW1wb3J0IDxwYWwvc3BpL2NnL0NvcmVHcmFwaGlj
c1NQSS5oPgogI2ltcG9ydCA8d3RmL0Fzc2VydGlvbnMuaD4KICNpbXBvcnQgPHd0Zi9NYWNoU2Vu
ZFJpZ2h0Lmg+CkBAIC00ODQsMTQgKzQ4NSwxNyBAQCB2b2lkIElPU3VyZmFjZTo6Y29udmVydFRv
Rm9ybWF0KHN0ZDo6dW5pcXVlX3B0cjxJT1N1cmZhY2U+JiYgaW5TdXJmYWNlLCBGb3JtYXQgZgog
CiAjZW5kaWYgLy8gSEFWRShJT1NVUkZBQ0VfQUNDRUxFUkFUT1IpCiAKLSNpZiBIQVZFKElPU1VS
RkFDRV9TRVRfT1dORVJTSElQX0lERU5USVRZKQotdm9pZCBJT1N1cmZhY2U6OnNldE93bmVyc2hp
cElkZW50aXR5KHRhc2tfaWRfdG9rZW5fdCBuZXdPd25lcikKK3ZvaWQgSU9TdXJmYWNlOjpzZXRP
d25lcnNoaXBJZGVudGl0eShQcm9jZXNzSWRlbnRpdHkqIHJlc291cmNlT3duZXIpCiB7Ci0gICAg
YXV0byByZXN1bHQgPSBJT1N1cmZhY2VTZXRPd25lcnNoaXBJZGVudGl0eShtX3N1cmZhY2UuZ2V0
KCksIG5ld093bmVyLCBrSU9TdXJmYWNlTWVtb3J5TGVkZ2VyVGFnR3JhcGhpY3MsIDApOworI2lm
IEhBVkUoSU9TVVJGQUNFX1NFVF9PV05FUlNISVBfSURFTlRJVFkpICYmIEhBVkUoVEFTS19JREVO
VElUWV9UT0tFTikKKyAgICB0YXNrX2lkX3Rva2VuX3Qgb3duZXJUYXNrSWRUb2tlbiA9IHJlc291
cmNlT3duZXIgPyByZXNvdXJjZU93bmVyLT50YXNrSWRUb2tlbigpIDogMDsKKyAgICBhdXRvIHJl
c3VsdCA9IElPU3VyZmFjZVNldE93bmVyc2hpcElkZW50aXR5KG1fc3VyZmFjZS5nZXQoKSwgb3du
ZXJUYXNrSWRUb2tlbiwga0lPU3VyZmFjZU1lbW9yeUxlZGdlclRhZ0dyYXBoaWNzLCAwKTsKICAg
ICBpZiAocmVzdWx0ICE9IGtJT1JldHVyblN1Y2Nlc3MpCi0gICAgICAgIFJFTEVBU0VfTE9HX0VS
Uk9SKElPU3VyZmFjZSwgIklPU3VyZmFjZTo6c2V0T3duZXJzaGlwSWRlbnRpdHk6IEZhaWxlZCB0
byBjbGFpbSBvd25lcnNoaXAgb2YgSU9TdXJmYWNlICVwLCBuZXdPd25lcjogJWQsIGVycm9yOiAl
ZCIsIG1fc3VyZmFjZS5nZXQoKSwgKGludCluZXdPd25lciwgcmVzdWx0KTsKLX0KKyAgICAgICAg
UkVMRUFTRV9MT0dfRVJST1IoSU9TdXJmYWNlLCAiSU9TdXJmYWNlOjpzZXRPd25lcnNoaXBJZGVu
dGl0eTogRmFpbGVkIHRvIGNsYWltIG93bmVyc2hpcCBvZiBJT1N1cmZhY2UgJXAsIHRhc2sgaWQg
dG9rZW46ICVkLCBlcnJvcjogJWQiLCBtX3N1cmZhY2UuZ2V0KCksIChpbnQpb3duZXJUYXNrSWRU
b2tlbiwgcmVzdWx0KTsKKyNlbHNlCisgICAgVU5VU0VEX1BBUkFNKHJlc291cmNlT3duZXIpOwog
I2VuZGlmCit9CiAKIHZvaWQgSU9TdXJmYWNlOjptaWdyYXRlQ29sb3JTcGFjZVRvUHJvcGVydGll
cygpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2Nv
YS9XZWJQcm9jZXNzR3JhcGhpY3NDb250ZXh0R0xPcGVuR0xDb2NvYS5tbSBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1dlYlByb2Nlc3NHcmFwaGljc0NvbnRleHRHTE9w
ZW5HTENvY29hLm1tCmluZGV4IDI1NjI1ZWRiZmUyNTRlMzc1ZmVmMTY5ODE2OWY1MmVmZDRhYTc3
MjIuLmNhYzQ0YTFkYjRkZmMwZjcxNzA0Yzc0MTg0ZGE0NjM3MmIzMTIzYWYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1dlYlByb2Nlc3NHcmFwaGlj
c0NvbnRleHRHTE9wZW5HTENvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2NvY29hL1dlYlByb2Nlc3NHcmFwaGljc0NvbnRleHRHTE9wZW5HTENvY29hLm1tCkBA
IC01Nyw3ICs1Nyw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHByZXBhcmVGb3JEaXNwbGF5KCkgZmlu
YWw7CiBwcml2YXRlOgogICAgIFdlYlByb2Nlc3NHcmFwaGljc0NvbnRleHRHTE9wZW5HTChHcmFw
aGljc0NvbnRleHRHTEF0dHJpYnV0ZXMgYXR0cmlidXRlcykKLSAgICAgICAgOiBHcmFwaGljc0Nv
bnRleHRHTE9wZW5HTChhdHRyaWJ1dGVzKQorICAgICAgICA6IEdyYXBoaWNzQ29udGV4dEdMT3Bl
bkdMKFdURk1vdmUoYXR0cmlidXRlcyksIHsgfSkKICAgICAgICAgLCBtX3dlYkdMTGF5ZXIoY3Jl
YXRlV2ViR0xMYXllcihhdHRyaWJ1dGVzKSkKICAgICB7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dyYXBoaWNzQ29udGV4dEdMT3Bl
bkdMLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR3JhcGhpY3ND
b250ZXh0R0xPcGVuR0wuaAppbmRleCAzODI3M2IwNzJiNTZkM2ZkYTJiY2RlMzQ4YjNlMGY3NDJj
MjAwNWU1Li5mZTEzZWFmZjRkNzNmYTY3MDE2MzYwZThkMmI4Y2Y4ZDMzYWM4ZTUzIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR3JhcGhpY3NDb250
ZXh0R0xPcGVuR0wuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVu
Z2wvR3JhcGhpY3NDb250ZXh0R0xPcGVuR0wuaApAQCAtMjgsNiArMjgsNyBAQAogI2lmIEVOQUJM
RShXRUJHTCkKIAogI2luY2x1ZGUgIkdyYXBoaWNzQ29udGV4dEdMLmgiCisjaW5jbHVkZSAiUHJv
Y2Vzc0lkZW50aXR5LmgiCiAjaW5jbHVkZSA8bWVtb3J5PgogI2luY2x1ZGUgPHd0Zi9IYXNoQ291
bnRlZFNldC5oPgogI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CkBAIC01NDMsOCArNTQ0LDkgQEAg
cHVibGljOgogI2VuZGlmCiAKIHByb3RlY3RlZDoKLSAgICBHcmFwaGljc0NvbnRleHRHTE9wZW5H
TChHcmFwaGljc0NvbnRleHRHTEF0dHJpYnV0ZXMpOworICAgIEdyYXBoaWNzQ29udGV4dEdMT3Bl
bkdMKEdyYXBoaWNzQ29udGV4dEdMQXR0cmlidXRlcyYmLCBSZWZQdHI8UHJvY2Vzc0lkZW50aXR5
PiYmIHJlc291cmNlT3duZXIpOwogICAgIGJvb2wgaXNWYWxpZCgpIGNvbnN0OworICAgIFJlZlB0
cjxQcm9jZXNzSWRlbnRpdHk+IG1fcmVzb3VyY2VPd25lcjsKICNpZiBQTEFURk9STShDT0NPQSkK
ICAgICBHcmFwaGljc0NvbnRleHRHTElPU3VyZmFjZVN3YXBDaGFpbiBtX3N3YXBDaGFpbjsKICNl
bmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFw
L0dyYXBoaWNzQ29udGV4dEdMVGV4dHVyZU1hcHBlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy90ZXhtYXAvR3JhcGhpY3NDb250ZXh0R0xUZXh0dXJlTWFwcGVyLmNwcApp
bmRleCBlMjg1MWMyZTNkMjIxNzcxNjk0YmRkNmYxMmYwZTVmNzg5OWM3NTViLi44MzA2MzdjMTJh
N2RhY2I5MzIzNzRjZTQ5ZjEyNDg5NzU4YTExYWY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvR3JhcGhpY3NDb250ZXh0R0xUZXh0dXJlTWFwcGVy
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvR3JhcGhp
Y3NDb250ZXh0R0xUZXh0dXJlTWFwcGVyLmNwcApAQCAtODUsNyArODUsNyBAQCBSZWZQdHI8R3Jh
cGhpY3NDb250ZXh0R0xPcGVuR0w+IEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMOjpjcmVhdGUoR3Jh
cGhpY3NDb250ZXh0RwogICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAogICAgIC8vIENyZWF0ZSB0
aGUgR3JhcGhpY3NDb250ZXh0R0xPcGVuR0wgb2JqZWN0IGZpcnN0IGluIG9yZGVyIHRvIGVzdGFi
bGlzdCBhIGN1cnJlbnQgY29udGV4dCBvbiB0aGlzIHRocmVhZC4KLSAgICBhdXRvIGNvbnRleHQg
PSBhZG9wdFJlZihuZXcgR3JhcGhpY3NDb250ZXh0R0xPcGVuR0woYXR0cmlidXRlcykpOworICAg
IGF1dG8gY29udGV4dCA9IGFkb3B0UmVmKG5ldyBHcmFwaGljc0NvbnRleHRHTE9wZW5HTChXVEZN
b3ZlKGF0dHJpYnV0ZXMpLCB7IH0pKTsKIAogI2lmIFVTRShMSUJFUE9YWSkgJiYgVVNFKE9QRU5H
TF9FUykgJiYgRU5BQkxFKFdFQkdMMikKICAgICAvLyBCYWlsIGlmIEdMRVMzIHdhcyByZXF1ZXN0
ZWQgYnV0IGNhbm5vdCBiZSBwcm92aWRlZC4KQEAgLTk5LDggKzk5LDkgQEAgUmVmUHRyPEdyYXBo
aWNzQ29udGV4dEdMT3BlbkdMPiBHcmFwaGljc0NvbnRleHRHTE9wZW5HTDo6Y3JlYXRlKEdyYXBo
aWNzQ29udGV4dEcKIH0KIAogI2lmIFVTRShBTkdMRSkKLUdyYXBoaWNzQ29udGV4dEdMT3BlbkdM
OjpHcmFwaGljc0NvbnRleHRHTE9wZW5HTChHcmFwaGljc0NvbnRleHRHTEF0dHJpYnV0ZXMgYXR0
cmlidXRlcykKK0dyYXBoaWNzQ29udGV4dEdMT3BlbkdMOjpHcmFwaGljc0NvbnRleHRHTE9wZW5H
TChHcmFwaGljc0NvbnRleHRHTEF0dHJpYnV0ZXMmJiBhdHRyaWJ1dGVzLCBSZWZQdHI8UHJvY2Vz
c0lkZW50aXR5PiYmIHJlc291cmNlT3duZXIpCiAgICAgOiBHcmFwaGljc0NvbnRleHRHTChhdHRy
aWJ1dGVzKQorICAgICwgbV9yZXNvdXJjZU93bmVyKFdURk1vdmUocmVzb3VyY2VPd25lcikpCiB7
CiAjaWYgRU5BQkxFKFdFQkdMMikKICAgICBtX2lzRm9yV2ViR0wyID0gYXR0cmlidXRlcy53ZWJH
TFZlcnNpb24gPT0gR3JhcGhpY3NDb250ZXh0R0xXZWJHTFZlcnNpb246OldlYkdMMjsKQEAgLTE2
OCw4ICsxNjksOSBAQCBHcmFwaGljc0NvbnRleHRHTE9wZW5HTDo6R3JhcGhpY3NDb250ZXh0R0xP
cGVuR0woR3JhcGhpY3NDb250ZXh0R0xBdHRyaWJ1dGVzIGF0dAogICAgIGdsOjpDbGVhckNvbG9y
KDAsIDAsIDAsIDApOwogfQogI2Vsc2UKLUdyYXBoaWNzQ29udGV4dEdMT3BlbkdMOjpHcmFwaGlj
c0NvbnRleHRHTE9wZW5HTChHcmFwaGljc0NvbnRleHRHTEF0dHJpYnV0ZXMgYXR0cmlidXRlcykK
K0dyYXBoaWNzQ29udGV4dEdMT3BlbkdMOjpHcmFwaGljc0NvbnRleHRHTE9wZW5HTChHcmFwaGlj
c0NvbnRleHRHTEF0dHJpYnV0ZXMmJiBhdHRyaWJ1dGVzLCBSZWZQdHI8UHJvY2Vzc0lkZW50aXR5
PiYmIHJlc291cmNlT3duZXIpCiAgICAgOiBHcmFwaGljc0NvbnRleHRHTChhdHRyaWJ1dGVzKQor
ICAgICwgbV9yZXNvdXJjZU93bmVyKFdURk1vdmUocmVzb3VyY2VPd25lcikpCiB7CiAjaWYgVVNF
KE5JQ09TSUEpCiAgICAgbV9uaWNvc2lhTGF5ZXIgPSBtYWtlVW5pcXVlPE5pY29zaWE6OkdDR0xM
YXllcj4oKnRoaXMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVUNv
bm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVUNv
bm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwCmluZGV4IDUyYWU4ODE5MzcxYTNlZGQ2MGNkNzIwY2Qw
ODRiYjNjODU3ZmE3Y2QuLjFlZjlhNmIyNTgxNjMzN2YzOGQ5YmIwYjNjNzQ4OWZjZDFjOTQ4NWMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9uVG9XZWJQ
cm9jZXNzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvR1BVQ29ubmVjdGlvblRv
V2ViUHJvY2Vzcy5jcHAKQEAgLTE5OSwxMiArMTk5LDEwIEBAIHByaXZhdGU6CiAgICAgfQogI2Vu
ZGlmCiAKLSNpZiBIQVZFKElPU1VSRkFDRV9TRVRfT1dORVJTSElQX0lERU5USVRZKQotICAgIHN0
ZDo6b3B0aW9uYWw8dGFza19pZF90b2tlbl90PiB3ZWJQcm9jZXNzSWRlbnRpdHlUb2tlbigpIGNv
bnN0IGZpbmFsCisgICAgUmVmUHRyPFByb2Nlc3NJZGVudGl0eT4gcmVzb3VyY2VPd25lcigpIGNv
bnN0IGZpbmFsCiAgICAgewotICAgICAgICByZXR1cm4gbV9wcm9jZXNzLndlYlByb2Nlc3NJZGVu
dGl0eVRva2VuKCk7CisgICAgICAgIHJldHVybiBtX3Byb2Nlc3Mud2ViUHJvY2Vzc0lkZW50aXR5
KCk7CiAgICAgfQotI2VuZGlmCiAKICAgICBHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzJiBtX3By
b2Nlc3M7CiB9OwpAQCAtMjIwLDkgKzIxOCw3IEBAIEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6
OkdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MoR1BVUHJvY2VzcyYgZ3B1UHJvY2VzcywgV2ViCiAg
ICAgOiBtX2Nvbm5lY3Rpb24oSVBDOjpDb25uZWN0aW9uOjpjcmVhdGVTZXJ2ZXJDb25uZWN0aW9u
KGNvbm5lY3Rpb25JZGVudGlmaWVyLCAqdGhpcykpCiAgICAgLCBtX2dwdVByb2Nlc3MoZ3B1UHJv
Y2VzcykKICAgICAsIG1fd2ViUHJvY2Vzc0lkZW50aWZpZXIod2ViUHJvY2Vzc0lkZW50aWZpZXIp
Ci0jaWYgSEFWRShUQVNLX0lERU5USVRZX1RPS0VOKQotICAgICwgbV93ZWJQcm9jZXNzSWRlbnRp
dHlUb2tlbihXVEZNb3ZlKHBhcmFtZXRlcnMud2ViUHJvY2Vzc0lkZW50aXR5VG9rZW4pKQotI2Vu
ZGlmCisgICAgLCBtX3dlYlByb2Nlc3NJZGVudGl0eShQcm9jZXNzSWRlbnRpdHk6OmNyZWF0ZShX
VEZNb3ZlKHBhcmFtZXRlcnMud2ViUHJvY2Vzc0lkZW50aXR5SGFuZGxlKSkpCiAgICAgLCBtX3Jl
bW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5KG1ha2VVbmlxdWVSZWY8UmVtb3RlTWVkaWFQbGF5
ZXJNYW5hZ2VyUHJveHk+KCp0aGlzKSkKICAgICAsIG1fc2Vzc2lvbklEKHNlc3Npb25JRCkKICNp
ZiBQTEFURk9STShDT0NPQSkgJiYgVVNFKExJQldFQlJUQykKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvR1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmggYi9Tb3VyY2UvV2Vi
S2l0L0dQVVByb2Nlc3MvR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oCmluZGV4IGFlNzk1MDUy
NTg2MGRlM2NmNmEyYjE3ODhmZTM1YTVlYWJkYTU2N2QuLmUwNDI4Yjg1ZTVjZmRhYzJjNDA2NWE5
MTAzYjljNTVlNmI2Y2I1YTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9H
UFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmgKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNz
L0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaApAQCAtMzksNiArMzksNyBAQAogI2luY2x1ZGUg
PFdlYkNvcmUvTm93UGxheWluZ01hbmFnZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1BhZ2VJZGVu
dGlmaWVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Qcm9jZXNzSWRlbnRpZmllci5oPgorI2luY2x1
ZGUgPFdlYkNvcmUvUHJvY2Vzc0lkZW50aXR5Lmg+CiAjaW5jbHVkZSA8cGFsL1Nlc3Npb25JRC5o
PgogI2luY2x1ZGUgPHd0Zi9Mb2dnZXIuaD4KICNpbmNsdWRlIDx3dGYvTWFjaFNlbmRSaWdodC5o
PgpAQCAtMTQ3LDEwICsxNDgsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBkaXNwYXRjaERpc3BsYXlX
YXNSZWNvbmZpZ3VyZWRGb3JUZXN0aW5nKCkgeyBkaXNwYXRjaERpc3BsYXlXYXNSZWNvbmZpZ3Vy
ZWQoKTsgfTsKICNlbmRpZgogCi0jaWYgSEFWRShUQVNLX0lERU5USVRZX1RPS0VOKQotICAgIHRh
c2tfaWRfdG9rZW5fdCB3ZWJQcm9jZXNzSWRlbnRpdHlUb2tlbigpIGNvbnN0IHsgcmV0dXJuIHN0
YXRpY19jYXN0PHRhc2tfaWRfdG9rZW5fdD4obV93ZWJQcm9jZXNzSWRlbnRpdHlUb2tlbi5zZW5k
UmlnaHQoKSk7IH0KLSNlbmRpZgotCisgICAgUmVmUHRyPFdlYkNvcmU6OlByb2Nlc3NJZGVudGl0
eT4gd2ViUHJvY2Vzc0lkZW50aXR5KCkgY29uc3QgeyByZXR1cm4gbV93ZWJQcm9jZXNzSWRlbnRp
dHk7IH0KICNpZiBFTkFCTEUoRU5DUllQVEVEX01FRElBKQogICAgIFJlbW90ZUNETUZhY3RvcnlQ
cm94eSYgY2RtRmFjdG9yeVByb3h5KCk7CiAjZW5kaWYKQEAgLTI3Myw5ICsyNzEsNyBAQCBwcml2
YXRlOgogICAgIElQQzo6TWVzc2FnZVJlY2VpdmVyTWFwIG1fbWVzc2FnZVJlY2VpdmVyTWFwOwog
ICAgIFJlZjxHUFVQcm9jZXNzPiBtX2dwdVByb2Nlc3M7CiAgICAgY29uc3QgV2ViQ29yZTo6UHJv
Y2Vzc0lkZW50aWZpZXIgbV93ZWJQcm9jZXNzSWRlbnRpZmllcjsKLSNpZiBIQVZFKFRBU0tfSURF
TlRJVFlfVE9LRU4pCi0gICAgTWFjaFNlbmRSaWdodCBtX3dlYlByb2Nlc3NJZGVudGl0eVRva2Vu
OwotI2VuZGlmCisgICAgUmVmUHRyPFdlYkNvcmU6OlByb2Nlc3NJZGVudGl0eT4gbV93ZWJQcm9j
ZXNzSWRlbnRpdHk7CiAjaWYgRU5BQkxFKFdFQl9BVURJTykKICAgICBzdGQ6OnVuaXF1ZV9wdHI8
UmVtb3RlQXVkaW9EZXN0aW5hdGlvbk1hbmFnZXI+IG1fcmVtb3RlQXVkaW9EZXN0aW5hdGlvbk1h
bmFnZXI7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFw
aGljcy9HUFVQcm9jZXNzR3JhcGhpY3NDb250ZXh0R0wuaCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJv
Y2Vzcy9ncmFwaGljcy9HUFVQcm9jZXNzR3JhcGhpY3NDb250ZXh0R0wuaAppbmRleCAxZWVlMThk
NjJmMDUwOWYwMDlmMzRjM2VkZTY4ZDM1ZTBkMDg5NjUzLi5lNzI5YTNhNzE1NDUyYzNhZDQ2NGM3
Y2M5ZWQ1YzBlY2IzYjExZTA4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mv
Z3JhcGhpY3MvR1BVUHJvY2Vzc0dyYXBoaWNzQ29udGV4dEdMLmgKKysrIGIvU291cmNlL1dlYktp
dC9HUFVQcm9jZXNzL2dyYXBoaWNzL0dQVVByb2Nlc3NHcmFwaGljc0NvbnRleHRHTC5oCkBAIC0y
OSwxMSArMjksMTMgQEAKICNpbmNsdWRlIDxXZWJDb3JlL0V4dGVuc2lvbnNHTC5oPgogI2luY2x1
ZGUgPFdlYkNvcmUvR3JhcGhpY3NDb250ZXh0R0xPcGVuR0wuaD4KIAorbmFtZXNwYWNlIFdlYktp
dCB7CisKIGNsYXNzIEdQVVByb2Nlc3NHcmFwaGljc0NvbnRleHRHTE9wZW5HTCBmaW5hbCA6IHB1
YmxpYyBXZWJDb3JlOjpHcmFwaGljc0NvbnRleHRHTE9wZW5HTCB7CiBwdWJsaWM6Ci0gICAgc3Rh
dGljIFJlZlB0cjxHUFVQcm9jZXNzR3JhcGhpY3NDb250ZXh0R0xPcGVuR0w+IGNyZWF0ZShXZWJD
b3JlOjpHcmFwaGljc0NvbnRleHRHTEF0dHJpYnV0ZXMgYXR0cmlidXRlcykKKyAgICBzdGF0aWMg
UmVmUHRyPEdQVVByb2Nlc3NHcmFwaGljc0NvbnRleHRHTE9wZW5HTD4gY3JlYXRlKFdlYkNvcmU6
OkdyYXBoaWNzQ29udGV4dEdMQXR0cmlidXRlcyBhdHRyaWJ1dGVzLCBSZWZQdHI8V2ViQ29yZTo6
UHJvY2Vzc0lkZW50aXR5PiByZXNvdXJjZU93bmVyKQogICAgIHsKLSAgICAgICAgYXV0byBjb250
ZXh0ID0gYWRvcHRSZWYoKm5ldyBHUFVQcm9jZXNzR3JhcGhpY3NDb250ZXh0R0xPcGVuR0woV1RG
TW92ZShhdHRyaWJ1dGVzKSkpOworICAgICAgICBhdXRvIGNvbnRleHQgPSBhZG9wdFJlZigqbmV3
IEdQVVByb2Nlc3NHcmFwaGljc0NvbnRleHRHTE9wZW5HTChXVEZNb3ZlKGF0dHJpYnV0ZXMpLCBX
VEZNb3ZlKHJlc291cmNlT3duZXIpKSk7CiAgICAgICAgIGlmICghY29udGV4dC0+aXNWYWxpZCgp
KQogICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgICAgIHJldHVybiBjb250ZXh0OwpA
QCAtNDQsMTAgKzQ2LDEyIEBAIHB1YmxpYzoKICAgICB2b2lkIG1hcmtEaXNwbGF5QnVmZmVySW5V
c2UoKSB7IHJldHVybiBtX3N3YXBDaGFpbi5tYXJrRGlzcGxheUJ1ZmZlckluVXNlKCk7IH0KICNl
bmRpZgogcHJpdmF0ZToKLSAgICBHUFVQcm9jZXNzR3JhcGhpY3NDb250ZXh0R0xPcGVuR0woV2Vi
Q29yZTo6R3JhcGhpY3NDb250ZXh0R0xBdHRyaWJ1dGVzIGF0dHJpYnV0ZXMpCi0gICAgICAgIDog
R3JhcGhpY3NDb250ZXh0R0xPcGVuR0woYXR0cmlidXRlcykKKyAgICBHUFVQcm9jZXNzR3JhcGhp
Y3NDb250ZXh0R0xPcGVuR0woV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0R0xBdHRyaWJ1dGVzJiYg
YXR0cmlidXRlcywgUmVmUHRyPFdlYkNvcmU6OlByb2Nlc3NJZGVudGl0eT4mJiByZXNvdXJjZU93
bmVyKQorICAgICAgICA6IEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMKFdURk1vdmUoYXR0cmlidXRl
cyksIFdURk1vdmUocmVzb3VyY2VPd25lcikpCiAgICAgewogICAgIH0KIH07CiAKK30KKwogI2Vu
ZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3Rl
R3JhcGhpY3NDb250ZXh0R0xDb2NvYS5jcHAgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3Jh
cGhpY3MvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xDb2NvYS5jcHAKaW5kZXggYjQzN2E1YmVlY2Q1
ZDZhYzU4M2NhNTk3YTk1ZTI3NzEyZmFkZDYyMy4uMGNjMjJiNDMzYTQ1ZTc0ZDU0MGU0ZDU0ZTlj
YTY3YmIxMDk1ZTFkMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBo
aWNzL1JlbW90ZUdyYXBoaWNzQ29udGV4dEdMQ29jb2EuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
R1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVHcmFwaGljc0NvbnRleHRHTENvY29hLmNwcApAQCAt
NDcsOSArNDcsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBwcmVwYXJlRm9yRGlzcGxheShDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKFdURjo6TWFjaFNlbmRSaWdodCYmKT4mJikgZmluYWw7CiBwcml2YXRl
OgogICAgIFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dEdMSU9TdXJmYWNlU3dhcENoYWluIG1fc3dh
cENoYWluIFdURl9HVUFSREVEX0JZX0xPQ0sobV9zdHJlYW1UaHJlYWQpOwotI2lmIEhBVkUoSU9T
VVJGQUNFX1NFVF9PV05FUlNISVBfSURFTlRJVFkpCi0gICAgdGFza19pZF90b2tlbl90IG1fd2Vi
UHJvY2Vzc0lkZW50aXR5VG9rZW47Ci0jZW5kaWYKKyAgICBSZWZQdHI8UHJvY2Vzc0lkZW50aXR5
PiBtX3Jlc291cmNlT3duZXI7CiB9OwogCiB9CkBAIC02Myw5ICs2MSw3IEBAIFJlZjxSZW1vdGVH
cmFwaGljc0NvbnRleHRHTD4gUmVtb3RlR3JhcGhpY3NDb250ZXh0R0w6OmNyZWF0ZShHUFVDb25u
ZWN0aW9uVG9XZWJQCiAKIFJlbW90ZUdyYXBoaWNzQ29udGV4dEdMQ29jb2E6OlJlbW90ZUdyYXBo
aWNzQ29udGV4dEdMQ29jb2EoR1BVQ29ubmVjdGlvblRvV2ViUHJvY2VzcyYgZ3B1Q29ubmVjdGlv
blRvV2ViUHJvY2VzcywgR3JhcGhpY3NDb250ZXh0R0xJZGVudGlmaWVyIGdyYXBoaWNzQ29udGV4
dEdMSWRlbnRpZmllciwgUmVtb3RlUmVuZGVyaW5nQmFja2VuZCYgcmVuZGVyaW5nQmFja2VuZCwg
SVBDOjpTdHJlYW1Db25uZWN0aW9uQnVmZmVyJiYgc3RyZWFtKQogICAgIDogUmVtb3RlR3JhcGhp
Y3NDb250ZXh0R0woZ3B1Q29ubmVjdGlvblRvV2ViUHJvY2VzcywgZ3JhcGhpY3NDb250ZXh0R0xJ
ZGVudGlmaWVyLCByZW5kZXJpbmdCYWNrZW5kLCBXVEZNb3ZlKHN0cmVhbSkpCi0jaWYgSEFWRShJ
T1NVUkZBQ0VfU0VUX09XTkVSU0hJUF9JREVOVElUWSkKLSAgICAsIG1fd2ViUHJvY2Vzc0lkZW50
aXR5VG9rZW4oZ3B1Q29ubmVjdGlvblRvV2ViUHJvY2Vzcy53ZWJQcm9jZXNzSWRlbnRpdHlUb2tl
bigpKQotI2VuZGlmCisgICAgLCBtX3Jlc291cmNlT3duZXIoZ3B1Q29ubmVjdGlvblRvV2ViUHJv
Y2Vzcy53ZWJQcm9jZXNzSWRlbnRpdHkoKSkKIHsKIAogfQpAQCAtNzMsNyArNjksNyBAQCBSZW1v
dGVHcmFwaGljc0NvbnRleHRHTENvY29hOjpSZW1vdGVHcmFwaGljc0NvbnRleHRHTENvY29hKEdQ
VUNvbm5lY3Rpb25Ub1dlYlBybwogdm9pZCBSZW1vdGVHcmFwaGljc0NvbnRleHRHTENvY29hOjpw
bGF0Zm9ybVdvcmtRdWV1ZUluaXRpYWxpemUoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0R0xBdHRy
aWJ1dGVzJiYgYXR0cmlidXRlcykKIHsKICAgICBhc3NlcnRJc0N1cnJlbnQobV9zdHJlYW1UaHJl
YWQpOwotICAgIG1fY29udGV4dCA9IEdQVVByb2Nlc3NHcmFwaGljc0NvbnRleHRHTE9wZW5HTDo6
Y3JlYXRlKFdURk1vdmUoYXR0cmlidXRlcykpOworICAgIG1fY29udGV4dCA9IEdQVVByb2Nlc3NH
cmFwaGljc0NvbnRleHRHTE9wZW5HTDo6Y3JlYXRlKFdURk1vdmUoYXR0cmlidXRlcyksIG1fcmVz
b3VyY2VPd25lcik7CiB9CiAKIHZvaWQgUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xDb2NvYTo6cHJl
cGFyZUZvckRpc3BsYXkoQ29tcGxldGlvbkhhbmRsZXI8dm9pZChXVEY6Ok1hY2hTZW5kUmlnaHQm
Jik+JiYgY29tcGxldGlvbkhhbmRsZXIpCkBAIC04NCwxMCArODAsNiBAQCB2b2lkIFJlbW90ZUdy
YXBoaWNzQ29udGV4dEdMQ29jb2E6OnByZXBhcmVGb3JEaXNwbGF5KENvbXBsZXRpb25IYW5kbGVy
PHZvaWQoV1RGOgogICAgIE1hY2hTZW5kUmlnaHQgc2VuZFJpZ2h0OwogICAgIGlmIChkaXNwbGF5
QnVmZmVyKSB7CiAgICAgICAgIG1fY29udGV4dC0+bWFya0Rpc3BsYXlCdWZmZXJJblVzZSgpOwot
I2lmIEhBVkUoSU9TVVJGQUNFX1NFVF9PV05FUlNISVBfSURFTlRJVFkpCi0gICAgICAgIC8vIE1h
cmsgdGhlIElPU3VyZmFjZSBhcyBiZWluZyBvd25lZCBieSB0aGUgV2ViUHJvY2VzcyBldmVuIHRo
b3VnaCBpdCB3YXMgY29uc3RydWN0ZWQgYnkgdGhlIEdQVVByb2Nlc3Mgc28gdGhhdCBKZXRzYW0g
a25vd3Mgd2hpY2ggcHJvY2VzcyB0byBraWxsLgotICAgICAgICBkaXNwbGF5QnVmZmVyLT5zZXRP
d25lcnNoaXBJZGVudGl0eShtX3dlYlByb2Nlc3NJZGVudGl0eVRva2VuKTsKLSNlbmRpZgogICAg
ICAgICBzZW5kUmlnaHQgPSBkaXNwbGF5QnVmZmVyLT5jcmVhdGVTZW5kUmlnaHQoKTsKICAgICB9
CiAgICAgY29tcGxldGlvbkhhbmRsZXIoV1RGTW92ZShzZW5kUmlnaHQpKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVHcmFwaGljc0NvbnRleHRH
TFdpbi5jcHAgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlR3JhcGhp
Y3NDb250ZXh0R0xXaW4uY3BwCmluZGV4IDcwZjBjNDY0MDMyYjkzM2M4ZjQ1OTE5Yzg2OGFjNjc2
ZGMxNzFkNmYuLjA2ZDRhMzI4ODE2NjI0YmM0YzE1OTQyYTA3MjRkYjM0OTBmM2Y0NTQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVHcmFwaGljc0Nv
bnRleHRHTFdpbi5jcHAKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1Jl
bW90ZUdyYXBoaWNzQ29udGV4dEdMV2luLmNwcApAQCAtNDEsNiArNDEsOCBAQCBwdWJsaWM6CiAK
ICAgICAvLyBSZW1vdGVHcmFwaGljc0NvbnRleHRHTCBvdmVycmlkZXMuCiAgICAgdm9pZCBwbGF0
Zm9ybVdvcmtRdWV1ZUluaXRpYWxpemUoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0R0xBdHRyaWJ1
dGVzJiYpIGZpbmFsOworcHJpdmF0ZToKKyAgICBSZWZQdHI8UHJvY2Vzc0lkZW50aXR5PiBtX3Jl
c291cmNlT3duZXI7CiB9OwogCiBSZWY8UmVtb3RlR3JhcGhpY3NDb250ZXh0R0w+IFJlbW90ZUdy
YXBoaWNzQ29udGV4dEdMOjpjcmVhdGUoR1BVQ29ubmVjdGlvblRvV2ViUHJvY2VzcyYgZ3B1Q29u
bmVjdGlvblRvV2ViUHJvY2VzcywgR3JhcGhpY3NDb250ZXh0R0xBdHRyaWJ1dGVzJiYgYXR0cmli
dXRlcywgR3JhcGhpY3NDb250ZXh0R0xJZGVudGlmaWVyIGdyYXBoaWNzQ29udGV4dEdMSWRlbnRp
ZmllciwgUmVtb3RlUmVuZGVyaW5nQmFja2VuZCYgcmVuZGVyaW5nQmFja2VuZCwgSVBDOjpTdHJl
YW1Db25uZWN0aW9uQnVmZmVyJiYgc3RyZWFtKQpAQCAtNTIsMTIgKzU0LDEzIEBAIFJlZjxSZW1v
dGVHcmFwaGljc0NvbnRleHRHTD4gUmVtb3RlR3JhcGhpY3NDb250ZXh0R0w6OmNyZWF0ZShHUFVD
b25uZWN0aW9uVG9XZWJQCiAKIFJlbW90ZUdyYXBoaWNzQ29udGV4dEdMV2luOjpSZW1vdGVHcmFw
aGljc0NvbnRleHRHTFdpbihHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzJiBncHVDb25uZWN0aW9u
VG9XZWJQcm9jZXNzLCBHcmFwaGljc0NvbnRleHRHTElkZW50aWZpZXIgZ3JhcGhpY3NDb250ZXh0
R0xJZGVudGlmaWVyLCBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kJiByZW5kZXJpbmdCYWNrZW5kLCBJ
UEM6OlN0cmVhbUNvbm5lY3Rpb25CdWZmZXImJiBzdHJlYW0pCiAgICAgOiBSZW1vdGVHcmFwaGlj
c0NvbnRleHRHTChncHVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLCBncmFwaGljc0NvbnRleHRHTElk
ZW50aWZpZXIsIHJlbmRlcmluZ0JhY2tlbmQsIFdURk1vdmUoc3RyZWFtKSkKKyAgICAsIG1fcmVz
b3VyY2VPd25lcihncHVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLndlYlByb2Nlc3NJZGVudGl0eSgp
KQogewogfQogCiB2b2lkIFJlbW90ZUdyYXBoaWNzQ29udGV4dEdMV2luOjpwbGF0Zm9ybVdvcmtR
dWV1ZUluaXRpYWxpemUoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0R0xBdHRyaWJ1dGVzJiYgYXR0
cmlidXRlcykKIHsKLSAgICBtX2NvbnRleHQgPSBHUFVQcm9jZXNzR3JhcGhpY3NDb250ZXh0R0xP
cGVuR0w6OmNyZWF0ZShXVEZNb3ZlKGF0dHJpYnV0ZXMpKTsKKyAgICBtX2NvbnRleHQgPSBHUFVQ
cm9jZXNzR3JhcGhpY3NDb250ZXh0R0xPcGVuR0w6OmNyZWF0ZShXVEZNb3ZlKGF0dHJpYnV0ZXMp
LCBtX3Jlc291cmNlT3duZXIpOwogfQogCiB2b2lkIFJlbW90ZUdyYXBoaWNzQ29udGV4dEdMOjpw
cmVwYXJlRm9yRGlzcGxheShDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhh
bmRsZXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVt
b3RlSW1hZ2VCdWZmZXIuaCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1v
dGVJbWFnZUJ1ZmZlci5oCmluZGV4IGEzZDQ5NGZlOGJmNmExOTY0N2VmMTkwYzlkYjQwNDJhZWNl
NjcyMjAuLjE5OTI1OGI2M2Q2OGU4OGJjYTRhOTAyMzZmZWQ0MDQ4MDQxYjYyMGMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVJbWFnZUJ1ZmZlci5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVJbWFnZUJ1ZmZl
ci5oCkBAIC02OSwxMyArNjksMTEgQEAgcHVibGljOgogICAgICAgICAgICAgY29udGV4dCgpLnJl
c3RvcmUoKTsKICAgICB9CiAKLSNpZiBIQVZFKElPU1VSRkFDRV9TRVRfT1dORVJTSElQX0lERU5U
SVRZKQotICAgIHZvaWQgc2V0UHJvY2Vzc093bmVyc2hpcCh0YXNrX2lkX3Rva2VuX3QgbmV3T3du
ZXIpCisgICAgdm9pZCBzZXRPd25lcnNoaXBJZGVudGl0eShXZWJDb3JlOjpQcm9jZXNzSWRlbnRp
dHkqIHJlc291cmNlT3duZXIpCiAgICAgewogICAgICAgICBpZiAobV9iYWNrZW5kKQotICAgICAg
ICAgICAgbV9iYWNrZW5kLT5zZXRQcm9jZXNzT3duZXJzaGlwKG5ld093bmVyKTsKKyAgICAgICAg
ICAgIG1fYmFja2VuZC0+c2V0T3duZXJzaGlwSWRlbnRpdHkocmVzb3VyY2VPd25lcik7CiAgICAg
fQotI2VuZGlmCiAKIHByaXZhdGU6CiAgICAgZnJpZW5kIGNsYXNzIFJlbW90ZVJlbmRlcmluZ0Jh
Y2tlbmQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVt
b3RlUmVuZGVyaW5nQmFja2VuZC5jcHAgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhp
Y3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5jcHAKaW5kZXggZmNjNzJiZjIwYTJmYjJjNmI5OWJh
MGVlNmY4MjA2YTRjYWI2ZmZjMC4uMTYwZmVjMmE1NTJlNjY5NDEyODg2NjIxYTUyZGRkZGZlM2Q3
NjhlNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90
ZVJlbmRlcmluZ0JhY2tlbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFw
aGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmNwcApAQCAtODQsNiArODQsNyBAQCBSZW1vdGVS
ZW5kZXJpbmdCYWNrZW5kOjpSZW1vdGVSZW5kZXJpbmdCYWNrZW5kKEdQVUNvbm5lY3Rpb25Ub1dl
YlByb2Nlc3MmIGdwdUNvbgogICAgICwgbV9zdHJlYW1Db25uZWN0aW9uKElQQzo6U3RyZWFtU2Vy
dmVyQ29ubmVjdGlvbjo6Y3JlYXRlKGdwdUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY29ubmVjdGlv
bigpLCBXVEZNb3ZlKHN0cmVhbUJ1ZmZlciksIG1fd29ya1F1ZXVlLmdldCgpKSkKICAgICAsIG1f
cmVtb3RlUmVzb3VyY2VDYWNoZShncHVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLndlYlByb2Nlc3NJ
ZGVudGlmaWVyKCkpCiAgICAgLCBtX2dwdUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MoZ3B1Q29ubmVj
dGlvblRvV2ViUHJvY2VzcykKKyAgICAsIG1fcmVzb3VyY2VPd25lcihncHVDb25uZWN0aW9uVG9X
ZWJQcm9jZXNzLndlYlByb2Nlc3NJZGVudGl0eSgpKQogICAgICwgbV9yZW5kZXJpbmdCYWNrZW5k
SWRlbnRpZmllcihjcmVhdGlvblBhcmFtZXRlcnMuaWRlbnRpZmllcikKIHsKICAgICBBU1NFUlQo
UnVuTG9vcDo6aXNNYWluKCkpOwpAQCAtMTczLDEwICsxNzQsOSBAQCB2b2lkIFJlbW90ZVJlbmRl
cmluZ0JhY2tlbmQ6OmNyZWF0ZUltYWdlQnVmZmVyV2l0aFF1YWxpZmllZElkZW50aWZpZXIoY29u
c3QgRmxvYQogCiAgICAgaWYgKHJlbmRlcmluZ01vZGUgPT0gUmVuZGVyaW5nTW9kZTo6QWNjZWxl
cmF0ZWQpIHsKICAgICAgICAgaWYgKGF1dG8gYWNjZWxlcmF0ZWRJbWFnZUJ1ZmZlciA9IEFjY2Vs
ZXJhdGVkUmVtb3RlSW1hZ2VCdWZmZXI6OmNyZWF0ZShsb2dpY2FsU2l6ZSwgcmVzb2x1dGlvblNj
YWxlLCBjb2xvclNwYWNlLCBwaXhlbEZvcm1hdCwgKnRoaXMsIGltYWdlQnVmZmVyUmVzb3VyY2VJ
ZGVudGlmaWVyKSkgewotI2lmIEhBVkUoSU9TVVJGQUNFX1NFVF9PV05FUlNISVBfSURFTlRJVFkp
CiAgICAgICAgICAgICAvLyBNYXJrIHRoZSBJT1N1cmZhY2UgYXMgYmVpbmcgb3duZWQgYnkgdGhl
IFdlYlByb2Nlc3MgZXZlbiB0aG91Z2ggaXQgd2FzIGNvbnN0cnVjdGVkIGJ5IHRoZSBHUFVQcm9j
ZXNzIHNvIHRoYXQgSmV0c2FtIGtub3dzIHdoaWNoIHByb2Nlc3MgdG8ga2lsbC4KLSAgICAgICAg
ICAgIGFjY2VsZXJhdGVkSW1hZ2VCdWZmZXItPnNldFByb2Nlc3NPd25lcnNoaXAobV9ncHVDb25u
ZWN0aW9uVG9XZWJQcm9jZXNzLT53ZWJQcm9jZXNzSWRlbnRpdHlUb2tlbigpKTsKLSNlbmRpZgor
ICAgICAgICAgICAgaWYgKG1fcmVzb3VyY2VPd25lcikKKyAgICAgICAgICAgICAgICBhY2NlbGVy
YXRlZEltYWdlQnVmZmVyLT5zZXRPd25lcnNoaXBJZGVudGl0eShtX3Jlc291cmNlT3duZXIuZ2V0
KCkpOwogICAgICAgICAgICAgaW1hZ2VCdWZmZXIgPSBXVEZNb3ZlKGFjY2VsZXJhdGVkSW1hZ2VC
dWZmZXIpOwogICAgICAgICB9CiAgICAgfQpAQCAtMjY4LDYgKzI2OCw3IEBAIHZvaWQgUmVtb3Rl
UmVuZGVyaW5nQmFja2VuZDo6Z2V0RGF0YVVSTEZvckltYWdlQnVmZmVyV2l0aFF1YWxpZmllZElk
ZW50aWZpZXIoY29uCiAgICAgU3RyaW5nIHVybFN0cmluZzsKICAgICBpZiAoYXV0byBpbWFnZUJ1
ZmZlciA9IG1fcmVtb3RlUmVzb3VyY2VDYWNoZS5jYWNoZWRJbWFnZUJ1ZmZlcihyZW5kZXJpbmdS
ZXNvdXJjZUlkZW50aWZpZXIpKQogICAgICAgICB1cmxTdHJpbmcgPSBpbWFnZUJ1ZmZlci0+dG9E
YXRhVVJMKG1pbWVUeXBlLCBxdWFsaXR5LCBwcmVzZXJ2ZVJlc29sdXRpb24pOworICAgIFdURkxv
Z0Fsd2F5cygiREFUQVVSTDolcyIsIHVybFN0cmluZy51dGY4KCkuZGF0YSgpKTsKICAgICBjb21w
bGV0aW9uSGFuZGxlcihXVEZNb3ZlKHVybFN0cmluZykpOwogfQogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5oIGIv
U291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQu
aAppbmRleCAxOWZiMTdmMDI1ZmIyYzY1ZjFkZGUyNzJjMzBiYjBkZTk0NWNhZjlmLi45ZWM5NjJi
MzBmZjY2N2E5MTdmZjg2ZmRiMmY1M2ZhMDgyYWI3NjMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmgK
QEAgLTU0LDYgKzU0LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogY2xhc3MgRGVzdGluYXRpb25D
b2xvclNwYWNlOwogY2xhc3MgRmxvYXRTaXplOwogY2xhc3MgTmF0aXZlSW1hZ2U7CitjbGFzcyBQ
cm9jZXNzSWRlbnRpdHk7CiAKIGVudW0gY2xhc3MgUmVuZGVyaW5nTW9kZSA6IGJvb2w7CiAKQEAg
LTEyOSw2ICsxMzAsNyBAQCBwcml2YXRlOgogICAgIFJlZjxJUEM6OlN0cmVhbVNlcnZlckNvbm5l
Y3Rpb24+IG1fc3RyZWFtQ29ubmVjdGlvbjsKICAgICBSZW1vdGVSZXNvdXJjZUNhY2hlIG1fcmVt
b3RlUmVzb3VyY2VDYWNoZTsKICAgICBSZWY8R1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcz4gbV9n
cHVDb25uZWN0aW9uVG9XZWJQcm9jZXNzOworICAgIFJlZlB0cjxXZWJDb3JlOjpQcm9jZXNzSWRl
bnRpdHk+IG1fcmVzb3VyY2VPd25lcjsKICAgICBSZW5kZXJpbmdCYWNrZW5kSWRlbnRpZmllciBt
X3JlbmRlcmluZ0JhY2tlbmRJZGVudGlmaWVyOwogICAgIElQQzo6U2VtYXBob3JlIG1fZ2V0UGl4
ZWxCdWZmZXJTZW1hcGhvcmU7CiAgICAgUmVmUHRyPFNoYXJlZE1lbW9yeT4gbV9nZXRQaXhlbEJ1
ZmZlclNoYXJlZE1lbW9yeTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy93
ZWJydGMvTGliV2ViUlRDQ29kZWNzUHJveHkubW0gYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mv
d2VicnRjL0xpYldlYlJUQ0NvZGVjc1Byb3h5Lm1tCmluZGV4IDEzM2UyNmU0NzRlMWQzMTkxNjNl
NTU3MTk5MmQwYzBjNzE5ZGRlMTQuLjcwN2E2NWUyZTIyNGM5YWQ3Y2YxNzQ2NWY0ZGMwYTQyMTM3
MDJhNTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy93ZWJydGMvTGliV2Vi
UlRDQ29kZWNzUHJveHkubW0KKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL3dlYnJ0Yy9M
aWJXZWJSVENDb2RlY3NQcm94eS5tbQpAQCAtNzcsMTQgKzc3LDExIEBAIHZvaWQgTGliV2ViUlRD
Q29kZWNzUHJveHk6OmNsb3NlKCkKIHN0YXRpYyBGdW5jdGlvbjx2b2lkKENWUGl4ZWxCdWZmZXJS
ZWYgcGl4ZWxCdWZmZXIsIHVpbnQzMl90IHRpbWVTdGFtcE5zLCB1aW50MzJfdCB0aW1lU3RhbXAp
PiBjcmVhdGVEZWNvZGVyQ2FsbGJhY2soUlRDRGVjb2RlcklkZW50aWZpZXIgaWRlbnRpZmllciwg
R1BVQ29ubmVjdGlvblRvV2ViUHJvY2VzcyYgZ3B1Q29ubmVjdGlvblRvV2ViUHJvY2VzcykKIHsK
ICAgICByZXR1cm4gW2Nvbm5lY3Rpb24gPSBSZWYgeyBncHVDb25uZWN0aW9uVG9XZWJQcm9jZXNz
LmNvbm5lY3Rpb24oKSB9LAotI2lmIEhBVkUoSU9TVVJGQUNFX1NFVF9PV05FUlNISVBfSURFTlRJ
VFkpCi0gICAgICAgIHRva2VuID0gZ3B1Q29ubmVjdGlvblRvV2ViUHJvY2Vzcy53ZWJQcm9jZXNz
SWRlbnRpdHlUb2tlbigpLAotI2VuZGlmCisgICAgICAgIHJlc291cmNlT3duZXIgPSBncHVDb25u
ZWN0aW9uVG9XZWJQcm9jZXNzLndlYlByb2Nlc3NJZGVudGl0eSgpLAogICAgICAgICBpZGVudGlm
aWVyXShDVlBpeGVsQnVmZmVyUmVmIHBpeGVsQnVmZmVyLCB1aW50MzJfdCB0aW1lU3RhbXBOcywg
dWludDMyX3QgdGltZVN0YW1wKSB7CiAgICAgICAgIGlmIChhdXRvIHNhbXBsZSA9IFdlYkNvcmU6
OlJlbW90ZVZpZGVvU2FtcGxlOjpjcmVhdGUocGl4ZWxCdWZmZXIsIE1lZGlhVGltZSh0aW1lU3Rh
bXBOcywgMSkpKSB7Ci0jaWYgSEFWRShJT1NVUkZBQ0VfU0VUX09XTkVSU0hJUF9JREVOVElUWSkK
LSAgICAgICAgICAgIHNhbXBsZS0+c2V0T3duZXJzaGlwSWRlbnRpdHkodG9rZW4pOwotI2VuZGlm
CisgICAgICAgICAgICBpZiAocmVzb3VyY2VPd25lcikKKyAgICAgICAgICAgICAgICBzYW1wbGUt
PnNldE93bmVyc2hpcElkZW50aXR5KHJlc291cmNlT3duZXIuZ2V0KCkpOwogICAgICAgICAgICAg
Y29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6TGliV2ViUlRDQ29kZWNzOjpDb21wbGV0ZWREZWNv
ZGluZyB7IGlkZW50aWZpZXIsIHRpbWVTdGFtcCwgKnNhbXBsZSB9LCAwKTsKICAgICAgICAgfQog
ICAgIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9HUFVQcm9jZXNzQ29ubmVj
dGlvblBhcmFtZXRlcnMuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0dQVVByb2Nlc3NDb25uZWN0
aW9uUGFyYW1ldGVycy5oCmluZGV4IDQxNTlkYzZlZDQ3ZDZkYzE3M2U5MWI2ODMyYTFiYjFiYTU1
ZjVlMTQuLmRkZmEyOWY1NjFhYWRkODA4OWJkYTY1M2I0OGFmMjA5Nzg0MzAwZDIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0dQVVByb2Nlc3NDb25uZWN0aW9uUGFyYW1ldGVycy5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0dQVVByb2Nlc3NDb25uZWN0aW9uUGFyYW1ldGVy
cy5oCkBAIC0yNywxNCArMjcsMTIgQEAKIAogI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKIAotI2lu
Y2x1ZGUgPHd0Zi9NYWNoU2VuZFJpZ2h0Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9Qcm9jZXNzSWRl
bnRpdHkuaD4KIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKIHN0cnVjdCBHUFVQcm9jZXNzQ29ubmVj
dGlvblBhcmFtZXRlcnMgewotI2lmIEhBVkUoVEFTS19JREVOVElUWV9UT0tFTikKLSAgICBNYWNo
U2VuZFJpZ2h0IHdlYlByb2Nlc3NJZGVudGl0eVRva2VuOwotI2VuZGlmCisgICAgV2ViQ29yZTo6
UHJvY2Vzc0lkZW50aXR5OjpIYW5kbGUgd2ViUHJvY2Vzc0lkZW50aXR5SGFuZGxlOwogICAgIFZl
Y3RvcjxTdHJpbmc+IG92ZXJyaWRlTGFuZ3VhZ2VzOwogI2lmIEVOQUJMRShJUENfVEVTVElOR19B
UEkpCiAgICAgYm9vbCBpZ25vcmVJbnZhbGlkTWVzc2FnZUZvclRlc3RpbmcgeyBmYWxzZSB9OwpA
QCAtNDUsOSArNDMsNyBAQCBzdHJ1Y3QgR1BVUHJvY2Vzc0Nvbm5lY3Rpb25QYXJhbWV0ZXJzIHsK
IAogICAgIHZvaWQgZW5jb2RlKElQQzo6RW5jb2RlciYgZW5jb2RlcikgY29uc3QKICAgICB7Ci0j
aWYgSEFWRShUQVNLX0lERU5USVRZX1RPS0VOKQotICAgICAgICBlbmNvZGVyIDw8IHdlYlByb2Nl
c3NJZGVudGl0eVRva2VuOwotI2VuZGlmCisgICAgICAgIGVuY29kZXIgPDwgd2ViUHJvY2Vzc0lk
ZW50aXR5SGFuZGxlOwogICAgICAgICBlbmNvZGVyIDw8IG92ZXJyaWRlTGFuZ3VhZ2VzOwogI2lm
IEVOQUJMRShJUENfVEVTVElOR19BUEkpCiAgICAgICAgIGVuY29kZXIgPDwgaWdub3JlSW52YWxp
ZE1lc3NhZ2VGb3JUZXN0aW5nOwpAQCAtNTksMTIgKzU1LDEwIEBAIHN0cnVjdCBHUFVQcm9jZXNz
Q29ubmVjdGlvblBhcmFtZXRlcnMgewogCiAgICAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8R1BVUHJv
Y2Vzc0Nvbm5lY3Rpb25QYXJhbWV0ZXJzPiBkZWNvZGUoSVBDOjpEZWNvZGVyJiBkZWNvZGVyKQog
ICAgIHsKLSNpZiBIQVZFKFRBU0tfSURFTlRJVFlfVE9LRU4pCi0gICAgICAgIHN0ZDo6b3B0aW9u
YWw8TWFjaFNlbmRSaWdodD4gd2ViUHJvY2Vzc0lkZW50aXR5VG9rZW47Ci0gICAgICAgIGRlY29k
ZXIgPj4gd2ViUHJvY2Vzc0lkZW50aXR5VG9rZW47Ci0gICAgICAgIGlmICghd2ViUHJvY2Vzc0lk
ZW50aXR5VG9rZW4pCisgICAgICAgIHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6UHJvY2Vzc0lkZW50
aXR5OjpIYW5kbGU+IHdlYlByb2Nlc3NJZGVudGl0eUhhbmRsZTsKKyAgICAgICAgZGVjb2RlciA+
PiB3ZWJQcm9jZXNzSWRlbnRpdHlIYW5kbGU7CisgICAgICAgIGlmICghd2ViUHJvY2Vzc0lkZW50
aXR5SGFuZGxlKQogICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKLSNlbmRpZgogCiAg
ICAgICAgIHN0ZDo6b3B0aW9uYWw8VmVjdG9yPFN0cmluZz4+IG92ZXJyaWRlTGFuZ3VhZ2VzOwog
ICAgICAgICBkZWNvZGVyID4+IG92ZXJyaWRlTGFuZ3VhZ2VzOwpAQCAtODUsOSArNzksNyBAQCBz
dHJ1Y3QgR1BVUHJvY2Vzc0Nvbm5lY3Rpb25QYXJhbWV0ZXJzIHsKICNlbmRpZgogCiAgICAgICAg
IHJldHVybiBHUFVQcm9jZXNzQ29ubmVjdGlvblBhcmFtZXRlcnMgewotI2lmIEhBVkUoVEFTS19J
REVOVElUWV9UT0tFTikKLSAgICAgICAgICAgIFdURk1vdmUoKndlYlByb2Nlc3NJZGVudGl0eVRv
a2VuKSwKLSNlbmRpZgorICAgICAgICAgICAgV1RGTW92ZSgqd2ViUHJvY2Vzc0lkZW50aXR5SGFu
ZGxlKSwKICAgICAgICAgICAgIFdURk1vdmUoKm92ZXJyaWRlTGFuZ3VhZ2VzKSwKICNpZiBFTkFC
TEUoSVBDX1RFU1RJTkdfQVBJKQogICAgICAgICAgICAgKmlnbm9yZUludmFsaWRNZXNzYWdlRm9y
VGVzdGluZywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VzZXJN
ZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29j
b2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5jcHAKaW5kZXggOTk2MjY4OTkwN2M2N2I1
YzdhNTY0ZDgxNTMyNTFjZjU1MzQ3ZTViZC4uOGIxZjNhMjY2NTZhYjA1ZjAxNzBkY2U2YmUyYzJl
M2VmZGU1Mzk1OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVXNl
ck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5jcHAKQEAgLTU3LDkgKzU3LDEw
IEBAIGNsYXNzIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6OlNvdXJjZVByb3h5CiAgICAg
LCBwcml2YXRlIFJlYWx0aW1lTWVkaWFTb3VyY2U6OlZpZGVvU2FtcGxlT2JzZXJ2ZXIgewogICAg
IFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgotICAgIFNvdXJjZVByb3h5KFJlYWx0
aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIGlkLCBSZWY8SVBDOjpDb25uZWN0aW9uPiYmIGNvbm5l
Y3Rpb24sIFJlZjxSZWFsdGltZU1lZGlhU291cmNlPiYmIHNvdXJjZSkKKyAgICBTb3VyY2VQcm94
eShSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciBpZCwgUmVmPElQQzo6Q29ubmVjdGlvbj4m
JiBjb25uZWN0aW9uLCBSZWZQdHI8UHJvY2Vzc0lkZW50aXR5PiYmIHJlc291cmNlT3duZXIsIFJl
ZjxSZWFsdGltZU1lZGlhU291cmNlPiYmIHNvdXJjZSkKICAgICAgICAgOiBtX2lkKGlkKQogICAg
ICAgICAsIG1fY29ubmVjdGlvbihXVEZNb3ZlKGNvbm5lY3Rpb24pKQorICAgICAgICAsIG1fcmVz
b3VyY2VPd25lcihXVEZNb3ZlKHJlc291cmNlT3duZXIpKQogICAgICAgICAsIG1fc291cmNlKFdU
Rk1vdmUoc291cmNlKSkKICAgICB7CiAgICAgICAgIG1fc291cmNlLT5hZGRPYnNlcnZlcigqdGhp
cyk7CkBAIC0xMjUsOSArMTI2LDYgQEAgcHVibGljOgogICAgIH0KIAogICAgIHZvaWQgc2V0U2hv
dWxkQXBwbHlSb3RhdGlvbihib29sIHNob3VsZEFwcGx5Um90YXRpb24pIHsgbV9zaG91bGRBcHBs
eVJvdGF0aW9uID0gdHJ1ZTsgfQotI2lmIEhBVkUoSU9TVVJGQUNFX1NFVF9PV05FUlNISVBfSURF
TlRJVFkpCi0gICAgdm9pZCBzZXRXZWJQcm9jZXNzSWRlbnRpdHlUb2tlbihzdGQ6Om9wdGlvbmFs
PHRhc2tfaWRfdG9rZW5fdD4gdG9rZW4pIHsgbV93ZWJQcm9jZXNzSWRlbnRpdHlUb2tlbiA9IHRv
a2VuO30KLSNlbmRpZgogCiBwcml2YXRlOgogICAgIHZvaWQgc291cmNlU3RvcHBlZCgpIGZpbmFs
IHsKQEAgLTE4OCwxMCArMTg2LDggQEAgcHJpdmF0ZToKICAgICAgICAgfSBlbHNlCiAgICAgICAg
ICAgICByZW1vdGVTYW1wbGUgPSBSZW1vdGVWaWRlb1NhbXBsZTo6Y3JlYXRlKHNhbXBsZSk7CiAg
ICAgICAgIGlmIChyZW1vdGVTYW1wbGUpIHsKLSNpZiBIQVZFKElPU1VSRkFDRV9TRVRfT1dORVJT
SElQX0lERU5USVRZKQotICAgICAgICAgICAgaWYgKG1fd2ViUHJvY2Vzc0lkZW50aXR5VG9rZW4p
Ci0gICAgICAgICAgICAgICAgcmVtb3RlU2FtcGxlLT5zZXRPd25lcnNoaXBJZGVudGl0eSgqbV93
ZWJQcm9jZXNzSWRlbnRpdHlUb2tlbik7Ci0jZW5kaWYKKyAgICAgICAgICAgIGlmIChtX3Jlc291
cmNlT3duZXIpCisgICAgICAgICAgICAgICAgcmVtb3RlU2FtcGxlLT5zZXRPd25lcnNoaXBJZGVu
dGl0eShtX3Jlc291cmNlT3duZXIuZ2V0KCkpOwogICAgICAgICAgICAgbV9jb25uZWN0aW9uLT5z
ZW5kKE1lc3NhZ2VzOjpSZW1vdGVDYXB0dXJlU2FtcGxlTWFuYWdlcjo6VmlkZW9TYW1wbGVBdmFp
bGFibGUobV9pZCwgV1RGTW92ZSgqcmVtb3RlU2FtcGxlKSksIDApOwogICAgICAgICB9CiAgICAg
fQpAQCAtMjQ0LDYgKzI0MCw3IEBAIHByaXZhdGU6CiAgICAgUmVhbHRpbWVNZWRpYVNvdXJjZUlk
ZW50aWZpZXIgbV9pZDsKICAgICBXZWFrUHRyPFBsYXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdlcj4g
bV9zZXNzaW9uTWFuYWdlcjsKICAgICBSZWY8SVBDOjpDb25uZWN0aW9uPiBtX2Nvbm5lY3Rpb247
CisgICAgUmVmUHRyPFByb2Nlc3NJZGVudGl0eT4gbV9yZXNvdXJjZU93bmVyOwogICAgIFJlZjxS
ZWFsdGltZU1lZGlhU291cmNlPiBtX3NvdXJjZTsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8Q0FSaW5n
QnVmZmVyPiBtX3JpbmdCdWZmZXI7CiAgICAgQ0FBdWRpb1N0cmVhbURlc2NyaXB0aW9uIG1fZGVz
Y3JpcHRpb24geyB9OwpAQCAtMjU3LDkgKzI1NCw2IEBAIHByaXZhdGU6CiAgICAgc2l6ZV90IG1f
ZnJhbWVDaHVua1NpemUgeyAwIH07CiAgICAgTWVkaWFUaW1lIG1fc3RhcnRUaW1lOwogICAgIGJv
b2wgbV9zaG91bGRSZXNldCB7IGZhbHNlIH07Ci0jaWYgSEFWRShUQVNLX0lERU5USVRZX1RPS0VO
KQotICAgIHN0ZDo6b3B0aW9uYWw8dGFza19pZF90b2tlbl90PiBtX3dlYlByb2Nlc3NJZGVudGl0
eVRva2VuOwotI2VuZGlmCiB9OwogCiBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OjpVc2Vy
TWVkaWFDYXB0dXJlTWFuYWdlclByb3h5KFVuaXF1ZVJlZjxDb25uZWN0aW9uUHJveHk+JiYgY29u
bmVjdGlvblByb3h5KQpAQCAtMzIzLDEyICszMTcsNyBAQCB2b2lkIFVzZXJNZWRpYUNhcHR1cmVN
YW5hZ2VyUHJveHk6OmNyZWF0ZU1lZGlhU291cmNlRm9yQ2FwdHVyZURldmljZVdpdGhDb25zdHJh
aQogICAgICAgICB9CiAKICAgICAgICAgQVNTRVJUKCFtX3Byb3hpZXMuY29udGFpbnMoaWQpKTsK
LSAgICAgICAgYXV0byBwcm94eSA9IG1ha2VVbmlxdWU8U291cmNlUHJveHk+KGlkLCBtX2Nvbm5l
Y3Rpb25Qcm94eS0+Y29ubmVjdGlvbigpLCBXVEZNb3ZlKHNvdXJjZSkpOwotI2lmIEhBVkUoSU9T
VVJGQUNFX1NFVF9PV05FUlNISVBfSURFTlRJVFkpCi0gICAgICAgIGlmIChkZXZpY2UudHlwZSgp
ICE9IFdlYkNvcmU6OkNhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6Ok1pY3JvcGhvbmUpCi0gICAg
ICAgICAgICBwcm94eS0+c2V0V2ViUHJvY2Vzc0lkZW50aXR5VG9rZW4obV9jb25uZWN0aW9uUHJv
eHktPndlYlByb2Nlc3NJZGVudGl0eVRva2VuKCkpOwotI2VuZGlmCi0KKyAgICAgICAgYXV0byBw
cm94eSA9IG1ha2VVbmlxdWU8U291cmNlUHJveHk+KGlkLCBtX2Nvbm5lY3Rpb25Qcm94eS0+Y29u
bmVjdGlvbigpLCBtX2Nvbm5lY3Rpb25Qcm94eS0+cmVzb3VyY2VPd25lcigpLCBXVEZNb3ZlKHNv
dXJjZSkpOwogICAgICAgICBtX3Byb3hpZXMuYWRkKGlkLCBXVEZNb3ZlKHByb3h5KSk7CiAgICAg
fSBlbHNlCiAgICAgICAgIGludmFsaWRDb25zdHJhaW50cyA9IFdURk1vdmUoc291cmNlT3JFcnJv
ci5lcnJvck1lc3NhZ2UpOwpAQCAtMzkzLDcgKzM4Miw3IEBAIHZvaWQgVXNlck1lZGlhQ2FwdHVy
ZU1hbmFnZXJQcm94eTo6Y2xvbmUoUmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgY2xvbmVk
SUQsCiAgICAgTUVTU0FHRV9DSEVDSyhtX3Byb3hpZXMuY29udGFpbnMoY2xvbmVkSUQpKTsKICAg
ICBNRVNTQUdFX0NIRUNLKCFtX3Byb3hpZXMuY29udGFpbnMobmV3U291cmNlSUQpKTsKICAgICBp
ZiAoYXV0byogcHJveHkgPSBtX3Byb3hpZXMuZ2V0KGNsb25lZElEKSkKLSAgICAgICAgbV9wcm94
aWVzLmFkZChuZXdTb3VyY2VJRCwgbWFrZVVuaXF1ZTxTb3VyY2VQcm94eT4obmV3U291cmNlSUQs
IG1fY29ubmVjdGlvblByb3h5LT5jb25uZWN0aW9uKCksIHByb3h5LT5zb3VyY2UoKS5jbG9uZSgp
KSk7CisgICAgICAgIG1fcHJveGllcy5hZGQobmV3U291cmNlSUQsIG1ha2VVbmlxdWU8U291cmNl
UHJveHk+KG5ld1NvdXJjZUlELCBtX2Nvbm5lY3Rpb25Qcm94eS0+Y29ubmVjdGlvbigpLCBtX2Nv
bm5lY3Rpb25Qcm94eS0+cmVzb3VyY2VPd25lcigpLCBwcm94eS0+c291cmNlKCkuY2xvbmUoKSkp
OwogfQogCiB2b2lkIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6OnJlcXVlc3RUb0VuZChS
ZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciBzb3VyY2VJRCkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkuaCBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJv
eHkuaAppbmRleCA3YWZmNDI0ZDU0MGQzYjFmZGVjZGFiYzg2NTVjM2M1NmM1MGExMGU1Li5jNTg2
Y2UzZjNkMTJlNzhlMjM3MzJhZTEwY2M4OWIyMzgwNGIyYmNkIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5LmgKKysr
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQ
cm94eS5oCkBAIC0zMiw2ICszMiw3IEBACiAjaW5jbHVkZSAiVXNlck1lZGlhQ2FwdHVyZU1hbmFn
ZXIuaCIKICNpbmNsdWRlIDxXZWJDb3JlL0NhcHR1cmVEZXZpY2UuaD4KICNpbmNsdWRlIDxXZWJD
b3JlL09yaWVudGF0aW9uTm90aWZpZXIuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1Byb2Nlc3NJZGVu
dGl0eS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUmVhbHRpbWVNZWRpYVNvdXJjZS5oPgogI2luY2x1
ZGUgPFdlYkNvcmUvUmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIuaD4KICNpbmNsdWRlIDxw
YWwvc3BpL2NvY29hL1RDQ1NQSS5oPgpAQCAtNTksOSArNjAsNyBAQCBwdWJsaWM6CiAgICAgICAg
IHZpcnR1YWwgYm9vbCB3aWxsU3RhcnRDYXB0dXJlKFdlYkNvcmU6OkNhcHR1cmVEZXZpY2U6OkRl
dmljZVR5cGUpIGNvbnN0ID0gMDsKICAgICAgICAgdmlydHVhbCBMb2dnZXImIGxvZ2dlcigpID0g
MDsKICAgICAgICAgdmlydHVhbCBib29sIHNldENhcHR1cmVBdHRyaWJ1dGlvblN0cmluZygpIHsg
cmV0dXJuIHRydWU7IH0KLSNpZiBIQVZFKElPU1VSRkFDRV9TRVRfT1dORVJTSElQX0lERU5USVRZ
KQotICAgICAgICB2aXJ0dWFsIHN0ZDo6b3B0aW9uYWw8dGFza19pZF90b2tlbl90PiB3ZWJQcm9j
ZXNzSWRlbnRpdHlUb2tlbigpIGNvbnN0IHsgcmV0dXJuIHsgfTsgfTsKLSNlbmRpZgorICAgICAg
ICB2aXJ0dWFsIFJlZlB0cjxXZWJDb3JlOjpQcm9jZXNzSWRlbnRpdHk+IHJlc291cmNlT3duZXIo
KSBjb25zdCB7IHJldHVybiBudWxscHRyOyB9OwogI2lmIEVOQUJMRShBUFBfUFJJVkFDWV9SRVBP
UlQpCiAgICAgICAgIHZpcnR1YWwgdm9pZCBzZXRUQ0NJZGVudGl0eSgpIHsgfQogI2VuZGlmCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL0ltYWdlQnVm
ZmVyU2hhcmVhYmxlQml0bWFwQmFja2VuZC5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQ
VS9ncmFwaGljcy9JbWFnZUJ1ZmZlclNoYXJlYWJsZUJpdG1hcEJhY2tlbmQuaAppbmRleCAxODQ3
ZmE2ZmJkZTQwNmVkNmE2YWQwNjA0OThiODg1YzVlMzZiYjNkLi5lYTM3NzUyOWMyMmY1MzdmZTM2
OTdiNDgwMTNjZTA0OWU5MWM3MWRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvR1BVL2dyYXBoaWNzL0ltYWdlQnVmZmVyU2hhcmVhYmxlQml0bWFwQmFja2VuZC5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvSW1hZ2VCdWZmZXJTaGFyZWFi
bGVCaXRtYXBCYWNrZW5kLmgKQEAgLTMxLDYgKzMxLDEwIEBACiAjaW5jbHVkZSA8V2ViQ29yZS9Q
bGF0Zm9ybUltYWdlQnVmZmVyQmFja2VuZC5oPgogI2luY2x1ZGUgPHd0Zi9Jc29NYWxsb2MuaD4K
IAorbmFtZXNwYWNlIFdlYkNvcmUgeworY2xhc3MgUHJvY2Vzc0lkZW50aXR5OworfQorCiBuYW1l
c3BhY2UgV2ViS2l0IHsKIAogY2xhc3MgU2hhcmVhYmxlQml0bWFwOwpAQCAtNjEsNiArNjUsNyBA
QCBwdWJsaWM6CiAgICAgc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpQaXhlbEJ1ZmZlcj4gZ2V0UGl4
ZWxCdWZmZXIoY29uc3QgV2ViQ29yZTo6UGl4ZWxCdWZmZXJGb3JtYXQmIG91dHB1dEZvcm1hdCwg
Y29uc3QgV2ViQ29yZTo6SW50UmVjdCYpIGNvbnN0IG92ZXJyaWRlOwogICAgIHZvaWQgcHV0UGl4
ZWxCdWZmZXIoY29uc3QgV2ViQ29yZTo6UGl4ZWxCdWZmZXImLCBjb25zdCBXZWJDb3JlOjpJbnRS
ZWN0JiBzcmNSZWN0LCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgZGVzdFBvaW50LCBXZWJDb3Jl
OjpBbHBoYVByZW11bHRpcGxpY2F0aW9uIGRlc3RGb3JtYXQpIG92ZXJyaWRlOwogCisgICAgdm9p
ZCBzZXRPd25lcnNoaXBJZGVudGl0eShXZWJDb3JlOjpQcm9jZXNzSWRlbnRpdHkqKSB7IH0KIHBy
aXZhdGU6CiAgICAgdW5zaWduZWQgYnl0ZXNQZXJSb3coKSBjb25zdCBvdmVycmlkZTsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9jb2NvYS9JbWFn
ZUJ1ZmZlclNoYXJlYWJsZU1hcHBlZElPU3VyZmFjZUJhY2tlbmQuY3BwIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9jb2NvYS9JbWFnZUJ1ZmZlclNoYXJlYWJsZU1hcHBl
ZElPU3VyZmFjZUJhY2tlbmQuY3BwCmluZGV4IGFmZDJjN2MwNWNmYWZkMTM5OTM0NGY1YzZhNzY0
ZTQ4ODBkMjhiZGEuLjExM2VhZjkyZjgwZjUzODY2MGRmYmI0MDYwYzNhN2M4ODhmNjkyNWEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvY29jb2EvSW1h
Z2VCdWZmZXJTaGFyZWFibGVNYXBwZWRJT1N1cmZhY2VCYWNrZW5kLmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL2NvY29hL0ltYWdlQnVmZmVyU2hhcmVhYmxl
TWFwcGVkSU9TdXJmYWNlQmFja2VuZC5jcHAKQEAgLTc3LDEzICs3NywxMSBAQCBJbWFnZUJ1ZmZl
ckJhY2tlbmRIYW5kbGUgSW1hZ2VCdWZmZXJTaGFyZWFibGVNYXBwZWRJT1N1cmZhY2VCYWNrZW5k
OjpjcmVhdGVJbWFnZQogICAgIHJldHVybiBJbWFnZUJ1ZmZlckJhY2tlbmRIYW5kbGUobV9zdXJm
YWNlLT5jcmVhdGVTZW5kUmlnaHQoKSk7CiB9CiAKLSNpZiBIQVZFKElPU1VSRkFDRV9TRVRfT1dO
RVJTSElQX0lERU5USVRZKQotdm9pZCBJbWFnZUJ1ZmZlclNoYXJlYWJsZU1hcHBlZElPU3VyZmFj
ZUJhY2tlbmQ6OnNldFByb2Nlc3NPd25lcnNoaXAodGFza19pZF90b2tlbl90IHByb2Nlc3NJZGVu
dGl0eVRva2VuKQordm9pZCBJbWFnZUJ1ZmZlclNoYXJlYWJsZU1hcHBlZElPU3VyZmFjZUJhY2tl
bmQ6OnNldE93bmVyc2hpcElkZW50aXR5KFdlYkNvcmU6OlByb2Nlc3NJZGVudGl0eSogcmVzb3Vy
Y2VPd25lcikKIHsKICAgICBBU1NFUlQoc3VyZmFjZSgpKTsKLSAgICBzdXJmYWNlKCktPnNldE93
bmVyc2hpcElkZW50aXR5KHByb2Nlc3NJZGVudGl0eVRva2VuKTsKKyAgICBzdXJmYWNlKCktPnNl
dE93bmVyc2hpcElkZW50aXR5KHJlc291cmNlT3duZXIpOwogfQotI2VuZGlmCiAKIH0gLy8gbmFt
ZXNwYWNlIFdlYktpdAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BV
L2dyYXBoaWNzL2NvY29hL0ltYWdlQnVmZmVyU2hhcmVhYmxlTWFwcGVkSU9TdXJmYWNlQmFja2Vu
ZC5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9jb2NvYS9JbWFnZUJ1
ZmZlclNoYXJlYWJsZU1hcHBlZElPU3VyZmFjZUJhY2tlbmQuaAppbmRleCBlMTRhNTQwZWNkZGQ0
NzExOTA4YTdjMTcxYzNhMjVlYmZkODA4ZGJlLi5iOTc2MzIyMDMyZTZmZDFhMzBiOWEyNDRmZjgz
ODk2NjA5NTY0N2MxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dy
YXBoaWNzL2NvY29hL0ltYWdlQnVmZmVyU2hhcmVhYmxlTWFwcGVkSU9TdXJmYWNlQmFja2VuZC5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvY29jb2EvSW1hZ2VC
dWZmZXJTaGFyZWFibGVNYXBwZWRJT1N1cmZhY2VCYWNrZW5kLmgKQEAgLTMxLDYgKzMxLDEwIEBA
CiAjaW5jbHVkZSA8V2ViQ29yZS9JbWFnZUJ1ZmZlcklPU3VyZmFjZUJhY2tlbmQuaD4KICNpbmNs
dWRlIDx3dGYvSXNvTWFsbG9jLmg+CiAKK25hbWVzcGFjZSBXZWJDb3JlIHsKK2NsYXNzIFByb2Nl
c3NJZGVudGl0eTsKK30KKwogbmFtZXNwYWNlIFdlYktpdCB7CiAKIGNsYXNzIFNoYXJlYWJsZUJp
dG1hcDsKQEAgLTQ2LDkgKzUwLDcgQEAgcHVibGljOgogCiAgICAgSW1hZ2VCdWZmZXJCYWNrZW5k
SGFuZGxlIGNyZWF0ZUltYWdlQnVmZmVyQmFja2VuZEhhbmRsZSgpIGNvbnN0OwogCi0jaWYgSEFW
RShJT1NVUkZBQ0VfU0VUX09XTkVSU0hJUF9JREVOVElUWSkKLSAgICB2b2lkIHNldFByb2Nlc3NP
d25lcnNoaXAodGFza19pZF90b2tlbl90KTsKLSNlbmRpZgorICAgIHZvaWQgc2V0T3duZXJzaGlw
SWRlbnRpdHkoV2ViQ29yZTo6UHJvY2Vzc0lkZW50aXR5KiByZXNvdXJjZU93bmVyKTsKIH07CiAK
IH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL2NvY29hL1dlYlByb2Nlc3NDb2NvYS5tbSBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9j
b2NvYS9XZWJQcm9jZXNzQ29jb2EubW0KaW5kZXggMDM0ZTJiNDhhYTAxNWFmN2NlZDc2NmRlOWFj
ZTgyOGRlZDEyMjY0OS4uNjQyNWYzOTk2NTdkMDAzYjBmYWUyN2Q2YTVhMzI0ZDFlNGNhMWZmOSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1dlYlByb2Nlc3NDb2Nv
YS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvV2ViUHJvY2Vzc0NvY29h
Lm1tCkBAIC0xMjQyLDE0ICsxMjQyLDcgQEAgdm9pZCBXZWJQcm9jZXNzOjp3YWl0Rm9yUGVuZGlu
Z1Bhc3RlYm9hcmRXcml0ZXNUb0ZpbmlzaChjb25zdCBTdHJpbmcmIHBhc3RlYm9hcmQKICNpZiBF
TkFCTEUoR1BVX1BST0NFU1MpCiB2b2lkIFdlYlByb2Nlc3M6OnBsYXRmb3JtSW5pdGlhbGl6ZUdQ
VVByb2Nlc3NDb25uZWN0aW9uUGFyYW1ldGVycyhHUFVQcm9jZXNzQ29ubmVjdGlvblBhcmFtZXRl
cnMmIHBhcmFtZXRlcnMpCiB7Ci0jaWYgSEFWRShUQVNLX0lERU5USVRZX1RPS0VOKQotICAgIHRh
c2tfaWRfdG9rZW5fdCBpZGVudGl0eVRva2VuOwotICAgIGtlcm5fcmV0dXJuX3Qga3IgPSB0YXNr
X2NyZWF0ZV9pZGVudGl0eV90b2tlbihtYWNoX3Rhc2tfc2VsZigpLCAmaWRlbnRpdHlUb2tlbik7
Ci0gICAgaWYgKGtyID09IEtFUk5fU1VDQ0VTUykKLSAgICAgICAgcGFyYW1ldGVycy53ZWJQcm9j
ZXNzSWRlbnRpdHlUb2tlbiA9IE1hY2hTZW5kUmlnaHQ6OmFkb3B0KGlkZW50aXR5VG9rZW4pOwot
ICAgIGVsc2UKLSAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoUHJvY2VzcywgIkNhbGwgdG8gdGFz
a19jcmVhdGVfaWRlbnRpdHlfdG9rZW4oKSBmYWlsZWQ6ICV7cHJpdmF0ZX1zICgleCkiLCBtYWNo
X2Vycm9yX3N0cmluZyhrciksIGtyKTsKLSNlbmRpZgorICAgIHBhcmFtZXRlcnMud2ViUHJvY2Vz
c0lkZW50aXR5SGFuZGxlID0gUHJvY2Vzc0lkZW50aXR5OjpoYW5kbGVGb3JDdXJyZW50UHJvY2Vz
cygpOwogCiAgICAgcGFyYW1ldGVycy5vdmVycmlkZUxhbmd1YWdlcyA9IHVzZXJQcmVmZXJyZWRM
YW5ndWFnZXNPdmVycmlkZSgpOwogfQpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9v
bHMvQ2hhbmdlTG9nCmluZGV4IDhkZTlhMjViNjBmYjQ1ZTJkZTBhMDIyZWVkNWJiZjI3NWE4Y2U3
OTYuLmQxMzc5YTliZjdjZjY1OWJlNGUzYWEzMTM3MjllMzc3NDA0ZTYzY2MgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAor
MjAyMS0xMS0xMSAgS2ltbW8gS2lubnVuZW4gIDxra2lubnVuZW5AYXBwbGUuY29tPgorCisgICAg
ICAgIElPU3VyZmFjZSBtZW1vcnkgYXR0cmlidXRpb24gaXMgaGFyZCB0byB1c2UgaW4gY29uc3Ry
dWN0b3JzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0y
MzI5ODgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBV
cGRhdGUgY29uc3RydWN0b3IgY2FsbGluZyBiYXNlIGNsYXNzIGNvbnN0cnVjdG9yLgorCisgICAg
ICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL2NvY29hL1Rlc3RHcmFwaGljc0NvbnRl
eHRHTE9wZW5HTENvY29hLm1tOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6V2ViQ29yZTo6VGVz
dGVkR3JhcGhpY3NDb250ZXh0R0xPcGVuR0w6OmNyZWF0ZSk6CisgICAgICAgIChUZXN0V2ViS2l0
QVBJOjpXZWJDb3JlOjpUZXN0ZWRHcmFwaGljc0NvbnRleHRHTE9wZW5HTDo6VGVzdGVkR3JhcGhp
Y3NDb250ZXh0R0xPcGVuR0wpOgorCiAyMDIxLTExLTE0ICBCcmFkeSBFaWRzb24gIDxiZWlkc29u
QGFwcGxlLmNvbT4KIAogICAgICAgICBHZXQgZGFlbW9uIEFQSSByZWFkeSB0byB3b3JrIGluIHRo
ZSBpT1Mgc2ltdWxhdG9yIChzdGFydGluZyB3aXRoIFdlYlB1c2hEKQpkaWZmIC0tZ2l0IGEvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL2NvY29hL1Rlc3RHcmFwaGljc0NvbnRleHRH
TE9wZW5HTENvY29hLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL2NvY29h
L1Rlc3RHcmFwaGljc0NvbnRleHRHTE9wZW5HTENvY29hLm1tCmluZGV4IDkxN2QyZTgxNjBhNTMy
YmY2Njc0YTQyMDU1N2UyNGQ1YWJhNzgzZjYuLjhjOGVhOGZkOGJlMzFiMGRmY2E4MDdlYjY1ZDBl
MjcxODFiOGRkOWMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29y
ZS9jb2NvYS9UZXN0R3JhcGhpY3NDb250ZXh0R0xPcGVuR0xDb2NvYS5tbQorKysgYi9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvY29jb2EvVGVzdEdyYXBoaWNzQ29udGV4dEdMT3Bl
bkdMQ29jb2EubW0KQEAgLTM5LDEyICszOSwxMiBAQCBjbGFzcyBUZXN0ZWRHcmFwaGljc0NvbnRl
eHRHTE9wZW5HTCA6IHB1YmxpYyBHcmFwaGljc0NvbnRleHRHTE9wZW5HTCB7CiBwdWJsaWM6CiAg
ICAgc3RhdGljIFJlZlB0cjxUZXN0ZWRHcmFwaGljc0NvbnRleHRHTE9wZW5HTD4gY3JlYXRlKEdy
YXBoaWNzQ29udGV4dEdMQXR0cmlidXRlcyBhdHRyaWJ1dGVzKQogICAgIHsKLSAgICAgICAgYXV0
byBjb250ZXh0ID0gYWRvcHRSZWYoKm5ldyBUZXN0ZWRHcmFwaGljc0NvbnRleHRHTE9wZW5HTChX
VEZNb3ZlKGF0dHJpYnV0ZXMpKSk7CisgICAgICAgIGF1dG8gY29udGV4dCA9IGFkb3B0UmVmKCpu
ZXcgVGVzdGVkR3JhcGhpY3NDb250ZXh0R0xPcGVuR0woV1RGTW92ZShhdHRyaWJ1dGVzKSwgeyB9
KSk7CiAgICAgICAgIHJldHVybiBjb250ZXh0OwogICAgIH0KIHByaXZhdGU6Ci0gICAgVGVzdGVk
R3JhcGhpY3NDb250ZXh0R0xPcGVuR0woR3JhcGhpY3NDb250ZXh0R0xBdHRyaWJ1dGVzIGF0dHJp
YnV0ZXMpCi0gICAgICAgIDogR3JhcGhpY3NDb250ZXh0R0xPcGVuR0woV1RGTW92ZShhdHRyaWJ1
dGVzKSkKKyAgICBUZXN0ZWRHcmFwaGljc0NvbnRleHRHTE9wZW5HTChHcmFwaGljc0NvbnRleHRH
TEF0dHJpYnV0ZXMgYXR0cmlidXRlcywgUmVmUHRyPFByb2Nlc3NJZGVudGl0eT4gcmVzb3VyY2VP
d25lcikKKyAgICAgICAgOiBHcmFwaGljc0NvbnRleHRHTE9wZW5HTChXVEZNb3ZlKGF0dHJpYnV0
ZXMpLCBXVEZNb3ZlKHJlc291cmNlT3duZXIpKQogICAgIHsKICAgICB9CiB9Owo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>445820</attachid>
            <date>2021-12-03 00:39:09 -0800</date>
            <delta_ts>2021-12-03 01:39:42 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-232988-20211203103907.patch</filename>
            <type>text/plain</type>
            <size>50911</size>
            <attacher name="Kimmo Kinnunen">kkinnunen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg2NDM3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTMwNmFkNGYyNGY1YmZl
MTRlNmU2M2Y5OTVjMWNkNmUyNzRkYzdjMi4uNGZjOWZlNzgyMWVjZGZlNzRjN2M0YTMxNzE5MTUx
MjQ2NzQzZTZjMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU3IEBACisyMDIxLTEyLTAyICBLaW1t
byBLaW5udW5lbiAgPGtraW5udW5lbkBhcHBsZS5jb20+CisKKyAgICAgICAgSU9TdXJmYWNlIG1l
bW9yeSBhdHRyaWJ1dGlvbiBpcyBoYXJkIHRvIHVzZSBpbiBjb25zdHJ1Y3RvcnMKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMjk4OAorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBXZWJDb3JlOjpQcm9j
ZXNzSWRlbnRpdHkgdHlwZSB0aGF0IGNhbiBiZSB1c2VkIHRvIGNvbW11bmljYXRlIG1lbW9yeSBh
dHRyaWJ1dGlvbi4KKyAgICAgICAgRm9yIG5vbi1Db2NvYSBwb3J0cywgdGhpcyBpcyBudWxscHRy
LgorICAgICAgICBUaGlzIGlzIHVzZWQgaW4gV2ViQ29yZSB0byBzZXQgdGhlIG1lbW9yeSBhdHRy
aWJ1dGlvbiBvZiBJT1N1cmZhY2UgYW5kIG9iamVjdHMKKyAgICAgICAgdGhhdCBob2xkIElPU3Vy
ZmFjZXMuCisgICAgICAgIFRoaXMgaXMgaW5zdGFudGlhdGVkIGluIFdlYktpdC4KKyAgICAgICAg
Q3VycmVudGx5IHRoZSBvbmx5IHVzZWZ1bCB3YXkgdG8gaW5zdGFudGlhdGUgUHJvY2Vzc0lkZW50
aXR5IGlzIGJ5IHJlY2VpdmluZworICAgICAgICB0aGUgUHJvY2Vzc0lkZW50aXR5OjpIYW5kbGUg
YXMgYSBtZXNzYWdlIGFuZCBjcmVhdGUgaXQgdGhpcyB3YXkgZm9yIHRoZQorICAgICAgICBzZW5k
ZXIgcHJvY2Vzcy4KKworICAgICAgICBObyBuZXcgdGVzdHMsIHJlZmFjdG9yLgorCisgICAgICAg
ICogSGVhZGVycy5jbWFrZToKKyAgICAgICAgKiBTb3VyY2VzLnR4dDoKKyAgICAgICAgKiBXZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogcGxhdGZvcm0vTG9nZ2lu
Zy5oOgorICAgICAgICBBZGQgV2ViQ29yZSBQcm9jZXNzIGxvZyB0YWcgc2luY2UgdGhlIGNvZGUg
bW92ZWQgZnJvbSBXZWJLaXQgdG8gUHJvY2Vzc0lkZW50aXR5CisgICAgICAgIHVzZWQgdGhhdCB0
YWcgdG8gbG9nLgorICAgICAgICAqIHBsYXRmb3JtL1Byb2Nlc3NJZGVudGl0eS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpQcm9jZXNzSWRlbnRpdHk6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3Jl
OjpQcm9jZXNzSWRlbnRpdHk6OlByb2Nlc3NJZGVudGl0eSk6CisgICAgICAgIChXZWJDb3JlOjpQ
cm9jZXNzSWRlbnRpdHk6OmhhbmRsZUZvckN1cnJlbnRQcm9jZXNzKToKKyAgICAgICAgKFdlYkNv
cmU6OlByb2Nlc3NJZGVudGl0eTo6aGFuZGxlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlBy
b2Nlc3NJZGVudGl0eTo6dGFza0lkVG9rZW4gY29uc3QpOgorICAgICAgICAqIHBsYXRmb3JtL1By
b2Nlc3NJZGVudGl0eS5oOgorICAgICAgICBBZGQgdGhlIFByb2Nlc3NJZGVudGl0eSB0eXBlIHRo
YXQgY2FuIGJlIHVzZWQgdG8gY29tbXVuaWNhdGUgbWVtb3J5IGF0dHJpYnV0aW9uLgorCisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvUmVtb3RlVmlkZW9TYW1wbGUuaDoKKyAgICAgICAgKFdl
YkNvcmU6OlJlbW90ZVZpZGVvU2FtcGxlOjpzZXRPd25lcnNoaXBJZGVudGl0eSk6CisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvY2cvSW1hZ2VCdWZmZXJVdGlsaXRpZXNDRy5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjplbmNvZGUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NvY29h
L0dyYXBoaWNzQ29udGV4dEdMT3BlbkdMQ29jb2EubW06CisgICAgICAgIChXZWJDb3JlOjpHcmFw
aGljc0NvbnRleHRHTE9wZW5HTDo6R3JhcGhpY3NDb250ZXh0R0xPcGVuR0wpOgorICAgICAgICAo
V2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0R0xPcGVuR0w6OmFsbG9jYXRlQW5kQmluZERpc3BsYXlC
dWZmZXJCYWNraW5nKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9JT1N1cmZh
Y2UuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9JT1N1cmZhY2UubW06Cisg
ICAgICAgIChXZWJDb3JlOjpJT1N1cmZhY2U6OnNldE93bmVyc2hpcElkZW50aXR5KToKKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9XZWJQcm9jZXNzR3JhcGhpY3NDb250ZXh0R0xP
cGVuR0xDb2NvYS5tbToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR3JhcGhp
Y3NDb250ZXh0R0xPcGVuR0wuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAv
R3JhcGhpY3NDb250ZXh0R0xUZXh0dXJlTWFwcGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okdy
YXBoaWNzQ29udGV4dEdMT3BlbkdMOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhp
Y3NDb250ZXh0R0xPcGVuR0w6OkdyYXBoaWNzQ29udGV4dEdMT3BlbkdMKToKKyAgICAgICAgQWRk
IGFuIGV4YW1wbGUgdXNlIHdoZXJlIHRoZSBjb25zdHJ1Y3RvciB0YWtlcyB0aGUgbWVtb3J5IGF0
dHJpYnV0aW9uIHRva2VuLgorICAgICAgICBUaGlzIG1heSBiZSBuZWVkZWQgaW4gdGhlIGZ1dHVy
ZSB3aGVuIHRoZSB0b2tlbiBpcyB1c2VkIGFzIGEgcGFyYW1ldGVyIGluCisgICAgICAgIHRoZSBB
TkdMRSBjb250ZXh0IGNyZWF0aW9uLgorICAgICAgICBVc2UgdGhlIHRva2VuIGluIGNyZWF0aW5n
IHRoZSBJT1N1cmZhY2UuIFRoaXMgZml4ZXMgYSBidWcgd2hlcmUgV2ViR0wKKyAgICAgICAgYmFj
ayBidWZmZXJzIHdvdWxkIG5vdCBiZSBhdHRyaWJ1dGVkIHVudGlsIHRoZXkgd2VyZSBzZW50IHRv
IFdQLgorCiAyMDIxLTEyLTAyICBBbnR0aSBLb2l2aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KIAog
ICAgICAgICBbOmhhcygpIHBzZXVkby1jbGFzc10gSW52YWxpZGF0aW9uIGluIG5vbi1zdWJqZWN0
IHBvc2l0aW9uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9X
ZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDI1OTMyMzhiNmMwNzdjODc4M2NiOGFkOTI4MGVhOGM0NzNj
MDYxMjEuLjEwYTYwMmZkOTEzMDBkMDI3ZDUxM2EwYWYzNzA2YWE2ODcyMzQ5MmYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsNTQgQEAKKzIwMjEtMTItMDIgIEtpbW1vIEtpbm51bmVuICA8a2tpbm51bmVu
QGFwcGxlLmNvbT4KKworICAgICAgICBJT1N1cmZhY2UgbWVtb3J5IGF0dHJpYnV0aW9uIGlzIGhh
cmQgdG8gdXNlIGluIGNvbnN0cnVjdG9ycworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MjMyOTg4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgUmVtb3ZlIGlmZGVmcyBhbmQgZGlyZWN0IHVzZSBvZiB0YXNrX2lk
X3Rva2VuX3QuCisgICAgICAgIEluc3RlYWQsIHVzZSBXZWJDb3JlOjpQcm9jZXNzSWRlbnRpZmll
ci4gVGhpcyB3YXkgdGhlCisgICAgICAgIGNyb3NzLXBsYXRmb3JtIGNvZGUgaXMgZWFzaWVyIHRv
IGF1dGhvci4KKworICAgICAgICAqIEdQVVByb2Nlc3MvR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vz
cy5jcHA6CisgICAgICAgIChXZWJLaXQ6OkdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OkdQVUNv
bm5lY3Rpb25Ub1dlYlByb2Nlc3MpOgorICAgICAgICAqIEdQVVByb2Nlc3MvR1BVQ29ubmVjdGlv
blRvV2ViUHJvY2Vzcy5oOgorICAgICAgICAoV2ViS2l0OjpHUFVDb25uZWN0aW9uVG9XZWJQcm9j
ZXNzOjp3ZWJQcm9jZXNzSWRlbnRpdHkgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpHUFVDb25u
ZWN0aW9uVG9XZWJQcm9jZXNzOjp3ZWJQcm9jZXNzSWRlbnRpdHlUb2tlbiBjb25zdCk6IERlbGV0
ZWQuCisgICAgICAgICogR1BVUHJvY2Vzcy9ncmFwaGljcy9HUFVQcm9jZXNzR3JhcGhpY3NDb250
ZXh0R0wuaDoKKyAgICAgICAgKiBHUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZUdyYXBoaWNzQ29u
dGV4dEdMQ29jb2EuY3BwOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVHcmFwaGljc0NvbnRleHRH
TENvY29hOjpSZW1vdGVHcmFwaGljc0NvbnRleHRHTENvY29hKToKKyAgICAgICAgKFdlYktpdDo6
UmVtb3RlR3JhcGhpY3NDb250ZXh0R0xDb2NvYTo6cGxhdGZvcm1Xb3JrUXVldWVJbml0aWFsaXpl
KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlR3JhcGhpY3NDb250ZXh0R0xDb2NvYTo6cHJlcGFy
ZUZvckRpc3BsYXkpOgorICAgICAgICAqIEdQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlSW1hZ2VC
dWZmZXIuaDoKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlSW1hZ2VCdWZmZXI6OnNldE93bmVyc2hp
cElkZW50aXR5KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlSW1hZ2VCdWZmZXI6OnNldFByb2Nl
c3NPd25lcnNoaXApOiBEZWxldGVkLgorICAgICAgICAqIEdQVVByb2Nlc3MvZ3JhcGhpY3MvUmVt
b3RlUmVuZGVyaW5nQmFja2VuZC5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlbmRlcmlu
Z0JhY2tlbmQ6OlJlbW90ZVJlbmRlcmluZ0JhY2tlbmQpOgorICAgICAgICAoV2ViS2l0OjpSZW1v
dGVSZW5kZXJpbmdCYWNrZW5kOjpjcmVhdGVJbWFnZUJ1ZmZlcldpdGhRdWFsaWZpZWRJZGVudGlm
aWVyKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVuZGVyaW5nQmFja2VuZDo6Z2V0RGF0YVVS
TEZvckltYWdlQnVmZmVyV2l0aFF1YWxpZmllZElkZW50aWZpZXIpOgorICAgICAgICAqIEdQVVBy
b2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5oOgorICAgICAgICAqIEdQVVBy
b2Nlc3Mvd2VicnRjL0xpYldlYlJUQ0NvZGVjc1Byb3h5Lm1tOgorICAgICAgICAoV2ViS2l0OjpG
dW5jdGlvbjx2b2lkKToKKyAgICAgICAgKiBTaGFyZWQvR1BVUHJvY2Vzc0Nvbm5lY3Rpb25QYXJh
bWV0ZXJzLmg6CisgICAgICAgIChXZWJLaXQ6OkdQVVByb2Nlc3NDb25uZWN0aW9uUGFyYW1ldGVy
czo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6R1BVUHJvY2Vzc0Nvbm5lY3Rpb25Q
YXJhbWV0ZXJzOjpkZWNvZGUpOgorICAgICAgICAqIFNoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2Rl
cnMuY3BwOgorICAgICAgICAqIFNoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuaDoKKyAgICAg
ICAgKiBVSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6OlNvdXJjZVByb3h5
OjpTb3VyY2VQcm94eSk6CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2Vy
UHJveHk6OlNvdXJjZVByb3h5OjpzZXRTaG91bGRBcHBseVJvdGF0aW9uKToKKyAgICAgICAgKFdl
YktpdDo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6Y3JlYXRlTWVkaWFTb3VyY2VGb3JD
YXB0dXJlRGV2aWNlV2l0aENvbnN0cmFpbnRzKToKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlh
Q2FwdHVyZU1hbmFnZXJQcm94eTo6Y2xvbmUpOgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFD
YXB0dXJlTWFuYWdlclByb3h5OjpTb3VyY2VQcm94eTo6c2V0V2ViUHJvY2Vzc0lkZW50aXR5VG9r
ZW4pOiBEZWxldGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJl
TWFuYWdlclByb3h5Lmg6CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2Vy
UHJveHk6OkNvbm5lY3Rpb25Qcm94eTo6cmVzb3VyY2VPd25lciBjb25zdCk6CisgICAgICAgIChX
ZWJLaXQ6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6OkNvbm5lY3Rpb25Qcm94eTo6d2Vi
UHJvY2Vzc0lkZW50aXR5VG9rZW4gY29uc3QpOiBEZWxldGVkLgorICAgICAgICAqIFdlYlByb2Nl
c3MvR1BVL2dyYXBoaWNzL2NvY29hL0ltYWdlQnVmZmVyU2hhcmVhYmxlTWFwcGVkSU9TdXJmYWNl
QmFja2VuZC5jcHA6CisgICAgICAgIChXZWJLaXQ6OkltYWdlQnVmZmVyU2hhcmVhYmxlTWFwcGVk
SU9TdXJmYWNlQmFja2VuZDo6c2V0T3duZXJzaGlwSWRlbnRpdHkpOgorICAgICAgICAoV2ViS2l0
OjpJbWFnZUJ1ZmZlclNoYXJlYWJsZU1hcHBlZElPU3VyZmFjZUJhY2tlbmQ6OnNldFByb2Nlc3NP
d25lcnNoaXApOiBEZWxldGVkLgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL2Nv
Y29hL0ltYWdlQnVmZmVyU2hhcmVhYmxlTWFwcGVkSU9TdXJmYWNlQmFja2VuZC5oOgorICAgICAg
ICAqIFdlYlByb2Nlc3MvY29jb2EvV2ViUHJvY2Vzc0NvY29hLm1tOgorICAgICAgICAoV2ViS2l0
OjpXZWJQcm9jZXNzOjpwbGF0Zm9ybUluaXRpYWxpemVHUFVQcm9jZXNzQ29ubmVjdGlvblBhcmFt
ZXRlcnMpOgogMjAyMS0xMi0wMiAgUGVyIEFybmUgVm9sbGFuICA8cHZvbGxhbkBhcHBsZS5jb20+
CiAKICAgICAgICAgW1dQXSBTdHJlbmd0aGVuIHNhbmRib3ggd2hlbiBBcHBDYWNoZSBpcyBkaXNh
YmxlZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZSBiL1NvdXJjZS9X
ZWJDb3JlL0hlYWRlcnMuY21ha2UKaW5kZXggOTUxOTljY2Q4MzY4NmYxYjlkOWJmZWFjNmI2MDk1
M2I0MGMxYjc5ZS4uY2M4NDJiMjgyOTkxOTZjMGY1ODg2ZjU1NThmMGRmMzAyZjVkMDA4ZCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9IZWFkZXJzLmNtYWtlCkBAIC0xMjc4LDYgKzEyNzgsNyBAQCBzZXQoV2ViQ29yZV9QUklWQVRF
X0ZSQU1FV09SS19IRUFERVJTCiAgICAgcGxhdGZvcm0vUG9wdXBNZW51Q2xpZW50LmgKICAgICBw
bGF0Zm9ybS9Qb3B1cE1lbnVTdHlsZS5oCiAgICAgcGxhdGZvcm0vUHJvY2Vzc0lkZW50aWZpZXIu
aAorICAgIHBsYXRmb3JtL1Byb2Nlc3NJZGVudGl0eS5oCiAgICAgcGxhdGZvcm0vUHJvY2Vzc1F1
YWxpZmllZC5oCiAgICAgcGxhdGZvcm0vUHJvbWlzZWRBdHRhY2htZW50SW5mby5oCiAgICAgcGxh
dGZvcm0vUHVibGljU3VmZml4LmgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMu
dHh0IGIvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKaW5kZXggZmU0OTVlMWZmMmM1ZGY0Mzk4
MmMyNWViN2Y2ZTViNjQxZjhlMTI2Yy4uNGMzNmNjNzRlNmMzMTA5YTY4MTUxMGUzMDE3M2M1OTQ0
YTllZTdhMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKKysrIGIvU291
cmNlL1dlYkNvcmUvU291cmNlcy50eHQKQEAgLTE4ODEsNiArMTg4MSw3IEBAIHBsYXRmb3JtL1Bs
YXRmb3JtU3RyYXRlZ2llcy5jcHAKIHBsYXRmb3JtL1BsYXRmb3JtV2hlZWxFdmVudC5jcHAKIHBs
YXRmb3JtL1ByZXZpZXdDb252ZXJ0ZXIuY3BwCiBwbGF0Zm9ybS9Qcm9jZXNzSWRlbnRpZmllci5j
cHAKK3BsYXRmb3JtL1Byb2Nlc3NJZGVudGl0eS5jcHAKIHBsYXRmb3JtL1JlZmVycmVyUG9saWN5
LmNwcAogcGxhdGZvcm0vUmVtb3RlQ29tbWFuZExpc3RlbmVyLmNwcAogcGxhdGZvcm0vUnVudGlt
ZUFwcGxpY2F0aW9uQ2hlY2tzLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGM4YzFlMzdmZDQ0NWJhZGI1NGU0Y2VjMzg2NDdh
YTY5Mjg4ZTRlYWUuLjkxZjgwOWIyZjk0MDg1N2EyYjUyYWM5ZmRiZjZiOWE3NjAyOTQyY2IgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oK
QEAgLTIzNzUsNiArMjM3NSw3IEBACiAJCTdCQjM0QTQ4MjUzNzc2Q0EwMDAyOUQwOCAvKiBHcmFw
aGljc0NvbnRleHRHTEltYWdlRXh0cmFjdG9yLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA3QkIzNEE0NTI1Mzc3NkM2MDAwMjlEMDggLyogR3JhcGhpY3ND
b250ZXh0R0xJbWFnZUV4dHJhY3Rvci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFBy
aXZhdGUsICk7IH07IH07CiAJCTdCQjY4MEJBMjVCQTFCRTQwMDJCODczOCAvKiBHcmFwaGljc0No
ZWNrc01hYy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
N0JCNjgwQjgyNUJBMUJFNDAwMkI4NzM4IC8qIEdyYXBoaWNzQ2hlY2tzTWFjLmggKi87IHNldHRp
bmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJN0JEREEzMUYyNzRGQTAy
MTAwMzg2NTlFIC8qIEdyYXBoaWNzQ29udGV4dEdMQ29jb2EuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdCRERBMzFEMjc0RjlEQTUwMDM4NjU5RSAvKiBH
cmFwaGljc0NvbnRleHRHTENvY29hLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKKwkJN0JEREEzNEMyNzVBMDEzMTAwMzg2NTlFIC8qIFByb2Nlc3NJZGVu
dGl0eS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0JE
REEzNDkyNzVBMDEzMDAwMzg2NTlFIC8qIFByb2Nlc3NJZGVudGl0eS5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTdCRTc0MjczODFGQTkwNkZCQjRG
MEYyQyAvKiBKU1NWR0dyYXBoaWNzRWxlbWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gOTUwQzRDMDJCRUQ4OTM2RjgxOEUyRjk5IC8qIEpTU1ZHR3Jh
cGhpY3NFbGVtZW50LmggKi87IH07CiAJCTdCRkY1OUY0Mjc1NzcyNjcwMDc3M0QzOSAvKiBEaXNw
bGF5Q29uZmlndXJhdGlvbk1vbml0b3IuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDdCRkY1OUVGMjc1NzcxRTgwMDc3M0QzOSAvKiBEaXNwbGF5Q29uZmln
dXJhdGlvbk1vbml0b3IuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OwogCQk3QzAyOUM2RTI0OTNDOEY4MDAyNjgyMDQgLyogQ29sb3JUeXBlcy5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0MwMjlDNkQyNDkzQzhG
ODAwMjY4MjA0IC8qIENvbG9yVHlwZXMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQ
cml2YXRlLCApOyB9OyB9OwpAQCAtMTEzODIsNiArMTEzODMsOCBAQAogCQk3QkNENDJEQzI3MDVD
OTQ5MDBFQjIxMjcgLyogQU5HTEVVdGlsaXRpZXNDb2NvYS5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBBTkdM
RVV0aWxpdGllc0NvY29hLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdCRERBMzFD
Mjc0RjlEQTQwMDM4NjU5RSAvKiBHcmFwaGljc0NvbnRleHRHTENvY29hLm1tICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gR3JhcGhpY3NDb250ZXh0R0xDb2NvYS5tbTsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0JEREEzMUQyNzRGOURBNTAwMzg2NTlFIC8q
IEdyYXBoaWNzQ29udGV4dEdMQ29jb2EuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gR3JhcGhpY3NDb250ZXh0R0xDb2NvYS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQk3QkREQTM0OTI3NUEwMTMwMDAzODY1OUUgLyogUHJvY2Vzc0lkZW50aXR5LmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFByb2Nlc3NJZGVudGl0eS5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQk3QkREQTM0QjI3NUEwMTMwMDAzODY1OUUgLyogUHJvY2Vzc0lkZW50
aXR5LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFByb2Nlc3NJZGVu
dGl0eS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdCRTcyNjVCMjU3NjNCOEQw
MEU4NUQ5OCAvKiBSZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5QmFzZS5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBSZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5QmFzZS5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdCRkY1OUVGMjc1NzcxRTgwMDc3M0QzOSAvKiBEaXNwbGF5
Q29uZmlndXJhdGlvbk1vbml0b3IuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBleHBs
aWNpdEZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuaDsgZmlsZUVuY29kaW5nID0gNDsgcGF0aCA9
IERpc3BsYXlDb25maWd1cmF0aW9uTW9uaXRvci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk3QkZGNTlGMTI3NTc3MUU4MDA3NzNEMzkgLyogRGlzcGxheUNvbmZpZ3VyYXRpb25Nb25p
dG9yLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IERpc3BsYXlDb25m
aWd1cmF0aW9uTW9uaXRvci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0yOTYx
OSw2ICsyOTYyMiw4IEBACiAJCQkJMUFCNDBFREYxQkY0MjcxRTAwQkE4MUJFIC8qIENvbnRleHRN
ZW51LmNwcCAqLywKIAkJCQk5M0I2QTBFNTBCMEJDQTVDMDBGNTAyN0EgLyogQ29udGV4dE1lbnUu
aCAqLywKIAkJCQkxQUI0MEVFMDFCRjQyNzFFMDBCQTgxQkUgLyogQ29udGV4dE1lbnVJdGVtLmNw
cCAqLywKKwkJCQk3QkREQTM0QjI3NUEwMTMwMDAzODY1OUUgLyogUHJvY2Vzc0lkZW50aXR5LmNw
cCAqLywKKwkJCQk3QkREQTM0OTI3NUEwMTMwMDAzODY1OUUgLyogUHJvY2Vzc0lkZW50aXR5Lmgg
Ki8sCiAJCQkJMDYwMjdDQUMwQjFDQkZDMDAwODg0QjJEIC8qIENvbnRleHRNZW51SXRlbS5oICov
LAogCQkJCTMxMUMwOEJDMThFMzVENjgwMEI2NTYxNSAvKiBDb250cm9sU3RhdGVzLmggKi8sCiAJ
CQkJRDhCNjE1MkUxMDMyNDk1MTAwQzg1NTRBIC8qIENvb2tpZS5oICovLApAQCAtMzQ0MDAsNiAr
MzQ0MDUsNyBAQAogCQkJCUE4MTM2OUU0MDk3Mzc0RjYwMEQ3NDQ2MyAvKiBIVE1MS2V5Z2VuRWxl
bWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTgxMzY5RTIwOTczNzRGNjAwRDc0NDYzIC8qIEhU
TUxMYWJlbEVsZW1lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUE4MTM2OUUwMDk3Mzc0RjYwMEQ3
NDQ2MyAvKiBIVE1MTGVnZW5kRWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCisJCQkJN0JEREEzNEMy
NzVBMDEzMTAwMzg2NTlFIC8qIFByb2Nlc3NJZGVudGl0eS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
QThFQTc5RjYwQTE5MTZERjAwQThFRjVGIC8qIEhUTUxMSUVsZW1lbnQuaCBpbiBIZWFkZXJzICov
LAogCQkJCUE4NzFEQzIwMEExNTIwNTcwMEIxMkE2OCAvKiBIVE1MTGlua0VsZW1lbnQuaCBpbiBI
ZWFkZXJzICovLAogCQkJCUE4RUE3RDJDMEExOTM4NTUwMEE4RUY1RiAvKiBIVE1MTWFwRWxlbWVu
dC5oIGluIEhlYWRlcnMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9M
b2dnaW5nLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Mb2dnaW5nLmgKaW5kZXggM2ZiZTQx
N2JlOTgxYjc1ZTc3OWRlMjM4ZmM0YmUwNWE2ZDczMGZhYS4uZGMwZjUwOThiODdmMTg0NTUyNWJl
M2MwYmE0MWY3Njc1YjE0MDQ3ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
TG9nZ2luZy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xvZ2dpbmcuaApAQCAtOTQs
NiArOTQsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgTShQbHVnaW5zKSBcCiAgICAgTShQ
b3B1cEJsb2NraW5nKSBcCiAgICAgTShQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCkgXAorICAgIE0o
UHJvY2VzcykgXAogICAgIE0oUHJvZ3Jlc3MpIFwKICAgICBNKFJlbW90ZUluc3BlY3RvcikgXAog
ICAgIE0oUmVxdWVzdEFuaW1hdGlvbkZyYW1lKSBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9Qcm9jZXNzSWRlbnRpdHkuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
UHJvY2Vzc0lkZW50aXR5LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43MTlkMDM2ODkxMzE2ODAxODc0ZGQzNzBm
YjJiYjMyMTBmMzU2Njg5Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vUHJvY2Vzc0lkZW50aXR5LmNwcApAQCAtMCwwICsxLDc5IEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBB
TlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
ICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVY
RU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1
ZGUgIlByb2Nlc3NJZGVudGl0eS5oIgorCisjaW5jbHVkZSAiTG9nZ2luZy5oIgorCisjaWYgSEFW
RShUQVNLX0lERU5USVRZX1RPS0VOKQorI2luY2x1ZGUgPG1hY2gvbWFjaC5oPgorI2VuZGlmCisK
K25hbWVzcGFjZSBXZWJDb3JlIHsKKworUmVmUHRyPFByb2Nlc3NJZGVudGl0eT4gUHJvY2Vzc0lk
ZW50aXR5OjpjcmVhdGUoSGFuZGxlJiYgaGFuZGxlKQoreworI2lmIEhBVkUoVEFTS19JREVOVElU
WV9UT0tFTikKKyAgICBpZiAoaGFuZGxlKQorICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IFBy
b2Nlc3NJZGVudGl0eShXVEZNb3ZlKGhhbmRsZSkpKTsKKyNlbHNlCisgICAgVU5VU0VEX1BBUkFN
KGhhbmRsZSk7CisjZW5kaWYKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKworUHJvY2Vzc0lkZW50
aXR5OjpQcm9jZXNzSWRlbnRpdHkoSGFuZGxlJiYgaGFuZGxlKQorICAgIDogbV9oYW5kbGUoV1RG
TW92ZShoYW5kbGUpKQoreworfQorCitQcm9jZXNzSWRlbnRpdHk6OkhhbmRsZSBQcm9jZXNzSWRl
bnRpdHk6OmhhbmRsZUZvckN1cnJlbnRQcm9jZXNzKCkKK3sKKyAgICBQcm9jZXNzSWRlbnRpdHk6
OkhhbmRsZSByZXN1bHQ7CisjaWYgSEFWRShUQVNLX0lERU5USVRZX1RPS0VOKQorICAgIHRhc2tf
aWRfdG9rZW5fdCBpZGVudGl0eVRva2VuOworICAgIGtlcm5fcmV0dXJuX3Qga3IgPSB0YXNrX2Ny
ZWF0ZV9pZGVudGl0eV90b2tlbihtYWNoX3Rhc2tfc2VsZigpLCAmaWRlbnRpdHlUb2tlbik7Cisg
ICAgaWYgKGtyID09IEtFUk5fU1VDQ0VTUykKKyAgICAgICAgcmVzdWx0ID0gTWFjaFNlbmRSaWdo
dDo6YWRvcHQoaWRlbnRpdHlUb2tlbik7CisgICAgZWxzZQorICAgICAgICBSRUxFQVNFX0xPR19F
UlJPUihQcm9jZXNzLCAidGFza19jcmVhdGVfaWRlbnRpdHlfdG9rZW4oKSBmYWlsZWQ6ICV7cHJp
dmF0ZX1zICgleCkiLCBtYWNoX2Vycm9yX3N0cmluZyhrciksIGtyKTsKKyNlbmRpZgorICAgIHJl
dHVybiByZXN1bHQ7Cit9CisKK2NvbnN0IFByb2Nlc3NJZGVudGl0eTo6SGFuZGxlJiBQcm9jZXNz
SWRlbnRpdHk6OmhhbmRsZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1faGFuZGxlOworfQorCisj
aWYgSEFWRShUQVNLX0lERU5USVRZX1RPS0VOKQordGFza19pZF90b2tlbl90IFByb2Nlc3NJZGVu
dGl0eTo6dGFza0lkVG9rZW4oKSBjb25zdAoreworICAgIHJldHVybiBtX2hhbmRsZS5zZW5kUmln
aHQoKTsKK30KKyNlbmRpZgorCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9Qcm9jZXNzSWRlbnRpdHkuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Byb2Nlc3NJZGVu
dGl0eS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjBjYTAxOTNiMTJlNTQ0MzZjNmZlYmJjNmViZTM0ZTAxNjM3NjBm
YTAKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Qcm9jZXNzSWRl
bnRpdHkuaApAQCAtMCwwICsxLDYxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhF
CisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBS
T0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlIDx3dGYvVGhyZWFkU2FmZVJl
ZkNvdW50ZWQuaD4KKworI2lmIEhBVkUoVEFTS19JREVOVElUWV9UT0tFTikKKyNpbmNsdWRlIDx3
dGYvTWFjaFNlbmRSaWdodC5oPgorI2Vsc2UKKyNpbmNsdWRlIDx2YXJpYW50PgorI2VuZGlmCisK
K25hbWVzcGFjZSBXZWJDb3JlIHsKKworLy8gT2JqZWN0IHRvIGFjY2VzcyBwcm9vZiBvZiBwcm9j
ZXNzIGlkZW50aXR5LgorLy8gUHJvY2Vzc0lkZW50aWZpZXIgaWRlbnRpZmllcyBhIHByb2Nlc3Mu
CisvLyBQcm9jZXNzSWRlbnRpdHkgZ3JhbnRzIGFjY2VzcyB0byB0aGUgaWRlbnRpdHkuCitjbGFz
cyBXRUJDT1JFX0VYUE9SVCBQcm9jZXNzSWRlbnRpdHkgZmluYWwgOiBwdWJsaWMgVGhyZWFkU2Fm
ZVJlZkNvdW50ZWQ8UHJvY2Vzc0lkZW50aXR5PiB7CitwdWJsaWM6CisjaWYgSEFWRShUQVNLX0lE
RU5USVRZX1RPS0VOKQorICAgIHVzaW5nIEhhbmRsZSA9IE1hY2hTZW5kUmlnaHQ7CisjZWxzZQor
ICAgIHVzaW5nIEhhbmRsZSA9IHN0ZDo6bW9ub3N0YXRlOworI2VuZGlmCisgICAgc3RhdGljIFJl
ZlB0cjxQcm9jZXNzSWRlbnRpdHk+IGNyZWF0ZShIYW5kbGUmJik7CisgICAgc3RhdGljIEhhbmRs
ZSBoYW5kbGVGb3JDdXJyZW50UHJvY2VzcygpOworICAgIGNvbnN0IEhhbmRsZSYgaGFuZGxlKCkg
Y29uc3Q7CisKKyNpZiBIQVZFKFRBU0tfSURFTlRJVFlfVE9LRU4pCisgICAgdGFza19pZF90b2tl
bl90IHRhc2tJZFRva2VuKCkgY29uc3Q7CisjZW5kaWYKK3ByaXZhdGU6CisgICAgUHJvY2Vzc0lk
ZW50aXR5KEhhbmRsZSYmKTsKKworICAgIEhhbmRsZSBtX2hhbmRsZTsKK307CisKK30KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1JlbW90ZVZpZGVvU2FtcGxl
LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9SZW1vdGVWaWRlb1NhbXBsZS5o
CmluZGV4IGE2MTcwYjMyOGZjNDRhY2U2OTNkY2RiMzVlZTRkM2NlNjg3MzM4YTEuLjBmNWJhZWE4
NTZlM2YxYThjZTE2NWIyMDM4NjVjOTY0NDM1NDI1NjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL1JlbW90ZVZpZGVvU2FtcGxlLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvUmVtb3RlVmlkZW9TYW1wbGUuaApAQCAtMzcsNiArMzcs
OCBAQCB0eXBlZGVmIHN0cnVjdCBfX0NWQnVmZmVyKiBDVlBpeGVsQnVmZmVyUmVmOwogCiBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAKK2NsYXNzIFByb2Nlc3NJZGVudGl0eTsKKwogY2xhc3MgUmVtb3Rl
VmlkZW9TYW1wbGUgewogcHVibGljOgogICAgIFJlbW90ZVZpZGVvU2FtcGxlKCkgPSBkZWZhdWx0
OwpAQCAtNDgsOSArNTAsNyBAQCBwdWJsaWM6CiAgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIHN0
ZDo6dW5pcXVlX3B0cjxSZW1vdGVWaWRlb1NhbXBsZT4gY3JlYXRlKFJldGFpblB0cjxDVlBpeGVs
QnVmZmVyUmVmPiYmLCBNZWRpYVRpbWUmJiBwcmVzZW50YXRpb25UaW1lLCBNZWRpYVNhbXBsZTo6
VmlkZW9Sb3RhdGlvbiA9IE1lZGlhU2FtcGxlOjpWaWRlb1JvdGF0aW9uOjpOb25lKTsKICAgICBX
RUJDT1JFX0VYUE9SVCBJT1N1cmZhY2VSZWYgc3VyZmFjZSgpIGNvbnN0OwogCi0jaWYgSEFWRShJ
T1NVUkZBQ0VfU0VUX09XTkVSU0hJUF9JREVOVElUWSkKLSAgICB2b2lkIHNldE93bmVyc2hpcElk
ZW50aXR5KHRhc2tfaWRfdG9rZW5fdCBuZXdPd25lcik7Ci0jZW5kaWYKKyAgICB2b2lkIHNldE93
bmVyc2hpcElkZW50aXR5KFByb2Nlc3NJZGVudGl0eSogcmVzb3VyY2VPd25lcik7CiAKICAgICBj
b25zdCBNZWRpYVRpbWUmIHRpbWUoKSBjb25zdCB7IHJldHVybiBtX3RpbWU7IH0KICAgICB1aW50
MzJfdCB2aWRlb0Zvcm1hdCgpIGNvbnN0IHsgcmV0dXJuIG1fdmlkZW9Gb3JtYXQ7IH0KQEAgLTEx
OSwxMyArMTE5LDExIEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX21pcnJvcmVkIHsgZmFsc2UgfTsK
IH07CiAKLSNpZiBIQVZFKElPU1VSRkFDRV9TRVRfT1dORVJTSElQX0lERU5USVRZKQotaW5saW5l
IHZvaWQgUmVtb3RlVmlkZW9TYW1wbGU6OnNldE93bmVyc2hpcElkZW50aXR5KHRhc2tfaWRfdG9r
ZW5fdCBuZXdPd25lcikKK2lubGluZSB2b2lkIFJlbW90ZVZpZGVvU2FtcGxlOjpzZXRPd25lcnNo
aXBJZGVudGl0eShQcm9jZXNzSWRlbnRpdHkqIHJlc291cmNlT3duZXIpCiB7CiAgICAgaWYgKG1f
aW9TdXJmYWNlKQotICAgICAgICBtX2lvU3VyZmFjZS0+c2V0T3duZXJzaGlwSWRlbnRpdHkobmV3
T3duZXIpOworICAgICAgICBtX2lvU3VyZmFjZS0+c2V0T3duZXJzaGlwSWRlbnRpdHkocmVzb3Vy
Y2VPd25lcik7CiB9Ci0jZW5kaWYKIAogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9hbmdsZS9HcmFwaGljc0NvbnRleHRHTEFOR0xFLmggYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hbmdsZS9HcmFwaGljc0NvbnRleHRHTEFOR0xFLmgK
aW5kZXggNDNkNWQyOTBkZDY4MmNhNTk2NTYwMTEwYTY2YTVhN2RhOGY4NTJhMC4uMWUzNjQ2NzFk
MzVlYjU1MDUzNjVlYmE5Yzg3ZjdjYWNkZmVmOTUzNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvYW5nbGUvR3JhcGhpY3NDb250ZXh0R0xBTkdMRS5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2FuZ2xlL0dyYXBoaWNzQ29udGV4dEdM
QU5HTEUuaApAQCAtNDI3LDYgKzQyNyw3IEBAIHByb3RlY3RlZDoKICAgICBzdGQ6OnVuaXF1ZV9w
dHI8RXh0ZW5zaW9uc0dMQU5HTEU+IG1fZXh0ZW5zaW9uczsKIAogI2lmIFBMQVRGT1JNKENPQ09B
KQorICAgIC8vIEZJWE1FOiBNb3ZlIHRoZXNlIHRvIEdyYXBoaWNzQ29udGV4dEdMQ29jb2EuCiAg
ICAgR3JhcGhpY3NDb250ZXh0R0xJT1N1cmZhY2VTd2FwQ2hhaW4gbV9zd2FwQ2hhaW47CiAgICAg
RUdMRGlzcGxheSBtX2Rpc3BsYXlPYmogeyBudWxscHRyIH07CiAgICAgUGxhdGZvcm1HcmFwaGlj
c0NvbnRleHRHTCBtX2NvbnRleHRPYmogeyBudWxscHRyIH07CkBAIC00MzYsNiArNDM3LDcgQEAg
cHJvdGVjdGVkOgogICAgIC8vIFdoZW4gcHJlc2VydmVEcmF3aW5nQnVmZmVyID09IHRydWUsIHRo
aXMgaXMgYmxpdHRlZCB0byBkdXJpbmcgZGlzcGxheSBwcmVwYXJlLgogICAgIHN0ZDo6dW5pcXVl
X3B0cjxJT1N1cmZhY2U+IG1fZGlzcGxheUJ1ZmZlckJhY2tpbmc7CiAgICAgdm9pZCogbV9kaXNw
bGF5QnVmZmVyUGJ1ZmZlciB7IG51bGxwdHIgfTsKKyAgICBSZWZQdHI8UHJvY2Vzc0lkZW50aXR5
PiBtX3Jlc291cmNlT3duZXI7CiAjZW5kaWYKICNpZiBVU0UoQ09PUkRJTkFURURfR1JBUEhJQ1Mp
CiAgICAgR0NHTHVpbnQgbV9jb21wb3NpdG9yVGV4dHVyZSB7IDAgfTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0dyYXBoaWNzQ29udGV4dEdMQ29j
b2EuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0dyYXBoaWNzQ29u
dGV4dEdMQ29jb2EuaAppbmRleCBhNjQ4ZmNkMmVjNGYwYjliNTFlMzAyMzY5ZTAxMjQ5YjUyZDli
NGU0Li5kYjQxYTA1ZGM4ZTE3MTAzMDYxNTg3MDdmYjJmZjE3OTgwYzgzNzQ1IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9HcmFwaGljc0NvbnRleHRH
TENvY29hLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvR3Jh
cGhpY3NDb250ZXh0R0xDb2NvYS5oCkBAIC00Miw5ICs0MiwxMSBAQCBjbGFzcyBHcmFwaGljc0Nv
bnRleHRHTENWQ29jb2E7CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAorY2xhc3MgUHJvY2Vzc0lk
ZW50aXR5OworCiBjbGFzcyBXRUJDT1JFX0VYUE9SVCBHcmFwaGljc0NvbnRleHRHTENvY29hIDog
cHVibGljIEdyYXBoaWNzQ29udGV4dEdMQU5HTEUgewogcHVibGljOgotICAgIHN0YXRpYyBSZWZQ
dHI8R3JhcGhpY3NDb250ZXh0R0xDb2NvYT4gY3JlYXRlKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4
dEdMQXR0cmlidXRlcyYmKTsKKyAgICBzdGF0aWMgUmVmUHRyPEdyYXBoaWNzQ29udGV4dEdMQ29j
b2E+IGNyZWF0ZShXZWJDb3JlOjpHcmFwaGljc0NvbnRleHRHTEF0dHJpYnV0ZXMmJiwgUmVmUHRy
PFByb2Nlc3NJZGVudGl0eT4mJiByZXNvdXJjZU93bmVyKTsKICAgICB+R3JhcGhpY3NDb250ZXh0
R0xDb2NvYSgpOwogICAgIElPU3VyZmFjZSogZGlzcGxheUJ1ZmZlcigpOwogICAgIHZvaWQgbWFy
a0Rpc3BsYXlCdWZmZXJJblVzZSgpOwpAQCAtNzYsOSArNzgsOCBAQCBwdWJsaWM6CiAgICAgdm9p
ZCB1cGRhdGVDb250ZXh0T25EaXNwbGF5UmVjb25maWd1cmF0aW9uKCk7CiAjZW5kaWYKIHByb3Rl
Y3RlZDoKLSAgICBHcmFwaGljc0NvbnRleHRHTENvY29hKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4
dEdMQXR0cmlidXRlcyYmKTsKKyAgICBHcmFwaGljc0NvbnRleHRHTENvY29hKFdlYkNvcmU6Okdy
YXBoaWNzQ29udGV4dEdMQXR0cmlidXRlcyYmLCBSZWZQdHI8UHJvY2Vzc0lkZW50aXR5PiYmIHJl
c291cmNlT3duZXIpOwogICAgIGJvb2wgaXNWYWxpZCgpIGNvbnN0OwotCiAjaWYgRU5BQkxFKFZJ
REVPKQogICAgIHN0ZDo6dW5pcXVlX3B0cjxHcmFwaGljc0NvbnRleHRHTENWQ29jb2E+IG1fY3Y7
CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nv
Y29hL0dyYXBoaWNzQ29udGV4dEdMQ29jb2EubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jb2NvYS9HcmFwaGljc0NvbnRleHRHTENvY29hLm1tCmluZGV4IGE0YWVlM2RmYWIw
Zjc3YTJmZWM1YjVjZGZkY2ZiODJlNDBlNDExZTYuLjU3NDFjMGQ4NWExZWIwZDMyNTNhMzZlMjE4
ZDU2YTQxOWVjZTU2YjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2NvY29hL0dyYXBoaWNzQ29udGV4dEdMQ29jb2EubW0KKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvR3JhcGhpY3NDb250ZXh0R0xDb2NvYS5tbQpAQCAtMzUs
NiArMzUsNyBAQAogI2ltcG9ydCAiR3JhcGhpY3NDb250ZXh0R0xJT1N1cmZhY2VTd2FwQ2hhaW4u
aCIKICNpbXBvcnQgIkdyYXBoaWNzQ29udGV4dEdMT3BlbkdMTWFuYWdlci5oIgogI2ltcG9ydCAi
TG9nZ2luZy5oIgorI2ltcG9ydCAiUHJvY2Vzc0lkZW50aXR5LmgiCiAjaW1wb3J0ICJSdW50aW1l
QXBwbGljYXRpb25DaGVja3MuaCIKICNpbXBvcnQgPENvcmVHcmFwaGljcy9DR0JpdG1hcENvbnRl
eHQuaD4KICNpbXBvcnQgPE1ldGFsL01ldGFsLmg+CkBAIC0xOTQsMTkgKzE5NSwyMiBAQCBzdGF0
aWMgYm9vbCBuZWVkc0VBR0xPbk1hYygpCiB9CiAjZW5kaWYKIAotUmVmUHRyPEdyYXBoaWNzQ29u
dGV4dEdMQ29jb2E+IEdyYXBoaWNzQ29udGV4dEdMQ29jb2E6OmNyZWF0ZShHcmFwaGljc0NvbnRl
eHRHTEF0dHJpYnV0ZXMmJiBhdHRyaWJ1dGVzKQorUmVmUHRyPEdyYXBoaWNzQ29udGV4dEdMQ29j
b2E+IEdyYXBoaWNzQ29udGV4dEdMQ29jb2E6OmNyZWF0ZShHcmFwaGljc0NvbnRleHRHTEF0dHJp
YnV0ZXMmJiBhdHRyaWJ1dGVzLCBSZWZQdHI8UHJvY2Vzc0lkZW50aXR5PiYmIHJlc291cmNlT3du
ZXIpCiB7Ci0gICAgYXV0byBjb250ZXh0ID0gYWRvcHRSZWYoKm5ldyBHcmFwaGljc0NvbnRleHRH
TENvY29hKFdURk1vdmUoYXR0cmlidXRlcykpKTsKKyAgICBhdXRvIGNvbnRleHQgPSBhZG9wdFJl
ZigqbmV3IEdyYXBoaWNzQ29udGV4dEdMQ29jb2EoV1RGTW92ZShhdHRyaWJ1dGVzKSwgV1RGTW92
ZShyZXNvdXJjZU93bmVyKSkpOwogICAgIGlmICghY29udGV4dC0+aXNWYWxpZCgpKQogICAgICAg
ICByZXR1cm4gbnVsbHB0cjsKICAgICByZXR1cm4gY29udGV4dDsKIH0KIAotR3JhcGhpY3NDb250
ZXh0R0xDb2NvYTo6R3JhcGhpY3NDb250ZXh0R0xDb2NvYShHcmFwaGljc0NvbnRleHRHTEF0dHJp
YnV0ZXMmJiBjcmVhdGlvbkF0dHJpYnV0ZXMpCitHcmFwaGljc0NvbnRleHRHTENvY29hOjpHcmFw
aGljc0NvbnRleHRHTENvY29hKEdyYXBoaWNzQ29udGV4dEdMQXR0cmlidXRlcyYmIGNyZWF0aW9u
QXR0cmlidXRlcywgUmVmUHRyPFByb2Nlc3NJZGVudGl0eT4mJiByZXNvdXJjZU93bmVyKQogICAg
IDogR3JhcGhpY3NDb250ZXh0R0xBTkdMRShXVEZNb3ZlKGNyZWF0aW9uQXR0cmlidXRlcykpCiB7
CiAgICAgaWYgKCFpc1ZhbGlkKCkpCiAgICAgICAgIHJldHVybjsKKyAgICAvLyBGSVhNRTogTW92
ZSB0aGlzIHRvIGluaXRpYWxpemVyIGxpc3Qgb25jZSBtX3Jlc291cmNlT3duZXIgbW92ZXMgdG8g
R3JhcGhpY3NDb250ZXh0R0xDb2NvYS4KKyAgICBtX3Jlc291cmNlT3duZXIgPSBXVEZNb3ZlKHJl
c291cmNlT3duZXIpOworCiAjaWYgUExBVEZPUk0oTUFDKQogICAgIGF1dG8gYXR0cmlidXRlcyA9
IGNvbnRleHRBdHRyaWJ1dGVzKCk7CiAgICAgaWYgKCFhdHRyaWJ1dGVzLnVzZU1ldGFsICYmIGF0
dHJpYnV0ZXMuZWZmZWN0aXZlUG93ZXJQcmVmZXJlbmNlKCkgPT0gR3JhcGhpY3NDb250ZXh0R0xQ
b3dlclByZWZlcmVuY2U6OkhpZ2hQZXJmb3JtYW5jZSkKQEAgLTU1OCw3ICs1NjIsOCBAQCBib29s
IEdyYXBoaWNzQ29udGV4dEdMQU5HTEU6OmFsbG9jYXRlQW5kQmluZERpc3BsYXlCdWZmZXJCYWNr
aW5nKCkKICAgICBhdXRvIGJhY2tpbmcgPSBJT1N1cmZhY2U6OmNyZWF0ZShnZXRJbnRlcm5hbEZy
YW1lYnVmZmVyU2l6ZSgpLCBEZXN0aW5hdGlvbkNvbG9yU3BhY2U6OlNSR0IoKSk7CiAgICAgaWYg
KCFiYWNraW5nKQogICAgICAgICByZXR1cm4gZmFsc2U7Ci0KKyAgICBpZiAobV9yZXNvdXJjZU93
bmVyKQorICAgICAgICBiYWNraW5nLT5zZXRPd25lcnNoaXBJZGVudGl0eShtX3Jlc291cmNlT3du
ZXIuZ2V0KCkpOwogICAgIGJhY2tpbmctPm1pZ3JhdGVDb2xvclNwYWNlVG9Qcm9wZXJ0aWVzKCk7
CiAKICAgICBjb25zdCBib29sIHVzaW5nQWxwaGEgPSBjb250ZXh0QXR0cmlidXRlcygpLmFscGhh
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvSU9T
dXJmYWNlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9JT1N1cmZh
Y2UuaAppbmRleCA1NjUyNDc4MjJkYmEyOWY3NjAwYjk0MDdlNmY0YWNiOGMxYTA2YWFjLi4wYzQz
Y2E0ZjgwNGQyNjBjNjEwNWViOTJiNjExMDkxZTJjMjUzMmEyIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9JT1N1cmZhY2UuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9JT1N1cmZhY2UuaApAQCAtNDYsNiArNDYs
NyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBHcmFwaGljc0NvbnRleHQ7CiBjbGFzcyBI
b3N0V2luZG93OwogY2xhc3MgSW1hZ2VCdWZmZXI7CitjbGFzcyBQcm9jZXNzSWRlbnRpdHk7CiAK
IGVudW0gY2xhc3MgUGl4ZWxGb3JtYXQgOiB1aW50OF90OwogZW51bSBjbGFzcyBWb2xhdGlsaXR5
U3RhdGUgOiB1aW50OF90OwpAQCAtMTU5LDkgKzE2MCw3IEBAIHB1YmxpYzoKICAgICBXRUJDT1JF
X0VYUE9SVCBzdGF0aWMgdm9pZCBjb252ZXJ0VG9Gb3JtYXQoc3RkOjp1bmlxdWVfcHRyPFdlYkNv
cmU6OklPU3VyZmFjZT4mJiBpblN1cmZhY2UsIEZvcm1hdCwgRnVuY3Rpb248dm9pZChzdGQ6OnVu
aXF1ZV9wdHI8V2ViQ29yZTo6SU9TdXJmYWNlPik+JiYpOwogI2VuZGlmIC8vIEhBVkUoSU9TVVJG
QUNFX0FDQ0VMRVJBVE9SKQogCi0jaWYgSEFWRShJT1NVUkZBQ0VfU0VUX09XTkVSU0hJUF9JREVO
VElUWSkKLSAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldE93bmVyc2hpcElkZW50aXR5KHRhc2tf
aWRfdG9rZW5fdCBuZXdPd25lcik7Ci0jZW5kaWYKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNl
dE93bmVyc2hpcElkZW50aXR5KFByb2Nlc3NJZGVudGl0eSogcmVzb3VyY2VPd25lcik7CiAKICAg
ICB2b2lkIG1pZ3JhdGVDb2xvclNwYWNlVG9Qcm9wZXJ0aWVzKCk7CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0lPU3VyZmFjZS5tbSBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0lPU3VyZmFjZS5tbQppbmRleCAwMTEx
NjVjZTExYWJjZTY3NWM0YjQ3YmY5MTVkNGM4MWU2Y2VlOTk1Li4xNWJmNjhmN2ZlNWE2OTg2N2Zj
YzlkNTZhNmU1YmQ0ZjZiYzNkMzAyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jb2NvYS9JT1N1cmZhY2UubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY29jb2EvSU9TdXJmYWNlLm1tCkBAIC0zNCw2ICszNCw3IEBACiAjaW1wb3J0
ICJJbWFnZUJ1ZmZlci5oIgogI2ltcG9ydCAiTG9nZ2luZy5oIgogI2ltcG9ydCAiUGxhdGZvcm1T
Y3JlZW4uaCIKKyNpbXBvcnQgIlByb2Nlc3NJZGVudGl0eS5oIgogI2ltcG9ydCA8cGFsL3NwaS9j
Zy9Db3JlR3JhcGhpY3NTUEkuaD4KICNpbXBvcnQgPHd0Zi9Bc3NlcnRpb25zLmg+CiAjaW1wb3J0
IDx3dGYvTWFjaFNlbmRSaWdodC5oPgpAQCAtNDg0LDE0ICs0ODUsMTcgQEAgdm9pZCBJT1N1cmZh
Y2U6OmNvbnZlcnRUb0Zvcm1hdChzdGQ6OnVuaXF1ZV9wdHI8SU9TdXJmYWNlPiYmIGluU3VyZmFj
ZSwgRm9ybWF0IGYKIAogI2VuZGlmIC8vIEhBVkUoSU9TVVJGQUNFX0FDQ0VMRVJBVE9SKQogCi0j
aWYgSEFWRShJT1NVUkZBQ0VfU0VUX09XTkVSU0hJUF9JREVOVElUWSkKLXZvaWQgSU9TdXJmYWNl
OjpzZXRPd25lcnNoaXBJZGVudGl0eSh0YXNrX2lkX3Rva2VuX3QgbmV3T3duZXIpCit2b2lkIElP
U3VyZmFjZTo6c2V0T3duZXJzaGlwSWRlbnRpdHkoUHJvY2Vzc0lkZW50aXR5KiByZXNvdXJjZU93
bmVyKQogewotICAgIGF1dG8gcmVzdWx0ID0gSU9TdXJmYWNlU2V0T3duZXJzaGlwSWRlbnRpdHko
bV9zdXJmYWNlLmdldCgpLCBuZXdPd25lciwga0lPU3VyZmFjZU1lbW9yeUxlZGdlclRhZ0dyYXBo
aWNzLCAwKTsKKyNpZiBIQVZFKElPU1VSRkFDRV9TRVRfT1dORVJTSElQX0lERU5USVRZKSAmJiBI
QVZFKFRBU0tfSURFTlRJVFlfVE9LRU4pCisgICAgdGFza19pZF90b2tlbl90IG93bmVyVGFza0lk
VG9rZW4gPSByZXNvdXJjZU93bmVyID8gcmVzb3VyY2VPd25lci0+dGFza0lkVG9rZW4oKSA6IDA7
CisgICAgYXV0byByZXN1bHQgPSBJT1N1cmZhY2VTZXRPd25lcnNoaXBJZGVudGl0eShtX3N1cmZh
Y2UuZ2V0KCksIG93bmVyVGFza0lkVG9rZW4sIGtJT1N1cmZhY2VNZW1vcnlMZWRnZXJUYWdHcmFw
aGljcywgMCk7CiAgICAgaWYgKHJlc3VsdCAhPSBrSU9SZXR1cm5TdWNjZXNzKQotICAgICAgICBS
RUxFQVNFX0xPR19FUlJPUihJT1N1cmZhY2UsICJJT1N1cmZhY2U6OnNldE93bmVyc2hpcElkZW50
aXR5OiBGYWlsZWQgdG8gY2xhaW0gb3duZXJzaGlwIG9mIElPU3VyZmFjZSAlcCwgbmV3T3duZXI6
ICVkLCBlcnJvcjogJWQiLCBtX3N1cmZhY2UuZ2V0KCksIChpbnQpbmV3T3duZXIsIHJlc3VsdCk7
Ci19CisgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKElPU3VyZmFjZSwgIklPU3VyZmFjZTo6c2V0
T3duZXJzaGlwSWRlbnRpdHk6IEZhaWxlZCB0byBjbGFpbSBvd25lcnNoaXAgb2YgSU9TdXJmYWNl
ICVwLCB0YXNrIGlkIHRva2VuOiAlZCwgZXJyb3I6ICVkIiwgbV9zdXJmYWNlLmdldCgpLCAoaW50
KW93bmVyVGFza0lkVG9rZW4sIHJlc3VsdCk7CisjZWxzZQorICAgIFVOVVNFRF9QQVJBTShyZXNv
dXJjZU93bmVyKTsKICNlbmRpZgorfQogCiB2b2lkIElPU3VyZmFjZTo6bWlncmF0ZUNvbG9yU3Bh
Y2VUb1Byb3BlcnRpZXMoKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY29jb2EvV2ViUHJvY2Vzc0dyYXBoaWNzQ29udGV4dEdMQ29jb2EubW0gYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9XZWJQcm9jZXNzR3JhcGhpY3NDb250
ZXh0R0xDb2NvYS5tbQppbmRleCAyNTQyNjIzMGRmZWRhZDJjNWViOTEwNDI0YTA4YTcyZTM3MTdi
MmQ3Li44ZDVkMjVhYjEwYjQ1ZTNmOWE2ZTgzOGFlMTA5NDFlNmZjMGU1ZTM4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9XZWJQcm9jZXNzR3JhcGhp
Y3NDb250ZXh0R0xDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jb2NvYS9XZWJQcm9jZXNzR3JhcGhpY3NDb250ZXh0R0xDb2NvYS5tbQpAQCAtMjksNiArMjks
NyBAQAogI2lmIEVOQUJMRShXRUJHTCkKICNpbXBvcnQgIkdyYXBoaWNzQ29udGV4dEdMQ29jb2Eu
aCIgLy8gTk9MSU5UCiAjaW1wb3J0ICJHcmFwaGljc0NvbnRleHRHTE9wZW5HTE1hbmFnZXIuaCIK
KyNpbXBvcnQgIlByb2Nlc3NJZGVudGl0eS5oIgogI2ltcG9ydCAiV2ViR0xMYXllci5oIgogI2lt
cG9ydCA8d3RmL0Jsb2NrT2JqQ0V4Y2VwdGlvbnMuaD4KIApAQCAtNzcsNyArNzgsNyBAQCBwcml2
YXRlOgogfTsKIAogV2ViUHJvY2Vzc0dyYXBoaWNzQ29udGV4dEdMQ29jb2E6OldlYlByb2Nlc3NH
cmFwaGljc0NvbnRleHRHTENvY29hKEdyYXBoaWNzQ29udGV4dEdMQXR0cmlidXRlcyYmIGF0dHJp
YnV0ZXMpCi0gICAgOiBHcmFwaGljc0NvbnRleHRHTENvY29hKFdURk1vdmUoYXR0cmlidXRlcykp
CisgICAgOiBHcmFwaGljc0NvbnRleHRHTENvY29hKFdURk1vdmUoYXR0cmlidXRlcyksIHsgfSkK
ICAgICAsIG1fd2ViR0xMYXllcihjcmVhdGVXZWJHTExheWVyKGNvbnRleHRBdHRyaWJ1dGVzKCkp
KQogewogI2lmIFBMQVRGT1JNKE1BQykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJv
Y2Vzcy9HUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJv
Y2Vzcy9HUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcAppbmRleCA1MmFlODgxOTM3MWEzZWRk
NjBjZDcyMGNkMDg0YmIzYzg1N2ZhN2NkLi4xZWY5YTZiMjU4MTYzMzdmMzhkOWJiMGIzYzc0ODlm
Y2QxYzk0ODVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvR1BVQ29ubmVj
dGlvblRvV2ViUHJvY2Vzcy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVUNv
bm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwCkBAIC0xOTksMTIgKzE5OSwxMCBAQCBwcml2YXRlOgog
ICAgIH0KICNlbmRpZgogCi0jaWYgSEFWRShJT1NVUkZBQ0VfU0VUX09XTkVSU0hJUF9JREVOVElU
WSkKLSAgICBzdGQ6Om9wdGlvbmFsPHRhc2tfaWRfdG9rZW5fdD4gd2ViUHJvY2Vzc0lkZW50aXR5
VG9rZW4oKSBjb25zdCBmaW5hbAorICAgIFJlZlB0cjxQcm9jZXNzSWRlbnRpdHk+IHJlc291cmNl
T3duZXIoKSBjb25zdCBmaW5hbAogICAgIHsKLSAgICAgICAgcmV0dXJuIG1fcHJvY2Vzcy53ZWJQ
cm9jZXNzSWRlbnRpdHlUb2tlbigpOworICAgICAgICByZXR1cm4gbV9wcm9jZXNzLndlYlByb2Nl
c3NJZGVudGl0eSgpOwogICAgIH0KLSNlbmRpZgogCiAgICAgR1BVQ29ubmVjdGlvblRvV2ViUHJv
Y2VzcyYgbV9wcm9jZXNzOwogfTsKQEAgLTIyMCw5ICsyMTgsNyBAQCBHUFVDb25uZWN0aW9uVG9X
ZWJQcm9jZXNzOjpHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzKEdQVVByb2Nlc3MmIGdwdVByb2Nl
c3MsIFdlYgogICAgIDogbV9jb25uZWN0aW9uKElQQzo6Q29ubmVjdGlvbjo6Y3JlYXRlU2VydmVy
Q29ubmVjdGlvbihjb25uZWN0aW9uSWRlbnRpZmllciwgKnRoaXMpKQogICAgICwgbV9ncHVQcm9j
ZXNzKGdwdVByb2Nlc3MpCiAgICAgLCBtX3dlYlByb2Nlc3NJZGVudGlmaWVyKHdlYlByb2Nlc3NJ
ZGVudGlmaWVyKQotI2lmIEhBVkUoVEFTS19JREVOVElUWV9UT0tFTikKLSAgICAsIG1fd2ViUHJv
Y2Vzc0lkZW50aXR5VG9rZW4oV1RGTW92ZShwYXJhbWV0ZXJzLndlYlByb2Nlc3NJZGVudGl0eVRv
a2VuKSkKLSNlbmRpZgorICAgICwgbV93ZWJQcm9jZXNzSWRlbnRpdHkoUHJvY2Vzc0lkZW50aXR5
OjpjcmVhdGUoV1RGTW92ZShwYXJhbWV0ZXJzLndlYlByb2Nlc3NJZGVudGl0eUhhbmRsZSkpKQog
ICAgICwgbV9yZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eShtYWtlVW5pcXVlUmVmPFJlbW90
ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5PigqdGhpcykpCiAgICAgLCBtX3Nlc3Npb25JRChzZXNz
aW9uSUQpCiAjaWYgUExBVEZPUk0oQ09DT0EpICYmIFVTRShMSUJXRUJSVEMpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oIGIv
U291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaAppbmRl
eCBhZTc5NTA1MjU4NjBkZTNjZjZhMmIxNzg4ZmUzNWE1ZWFiZGE1NjdkLi5lMDQyOGI4NWU1Y2Zk
YWMyYzQwNjVhOTEwM2I5YzU1ZTZiNmNiNWE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQ
VVByb2Nlc3MvR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
R1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmgKQEAgLTM5LDYgKzM5LDcgQEAK
ICNpbmNsdWRlIDxXZWJDb3JlL05vd1BsYXlpbmdNYW5hZ2VyLmg+CiAjaW5jbHVkZSA8V2ViQ29y
ZS9QYWdlSWRlbnRpZmllci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUHJvY2Vzc0lkZW50aWZpZXIu
aD4KKyNpbmNsdWRlIDxXZWJDb3JlL1Byb2Nlc3NJZGVudGl0eS5oPgogI2luY2x1ZGUgPHBhbC9T
ZXNzaW9uSUQuaD4KICNpbmNsdWRlIDx3dGYvTG9nZ2VyLmg+CiAjaW5jbHVkZSA8d3RmL01hY2hT
ZW5kUmlnaHQuaD4KQEAgLTE0NywxMCArMTQ4LDcgQEAgcHVibGljOgogICAgIHZvaWQgZGlzcGF0
Y2hEaXNwbGF5V2FzUmVjb25maWd1cmVkRm9yVGVzdGluZygpIHsgZGlzcGF0Y2hEaXNwbGF5V2Fz
UmVjb25maWd1cmVkKCk7IH07CiAjZW5kaWYKIAotI2lmIEhBVkUoVEFTS19JREVOVElUWV9UT0tF
TikKLSAgICB0YXNrX2lkX3Rva2VuX3Qgd2ViUHJvY2Vzc0lkZW50aXR5VG9rZW4oKSBjb25zdCB7
IHJldHVybiBzdGF0aWNfY2FzdDx0YXNrX2lkX3Rva2VuX3Q+KG1fd2ViUHJvY2Vzc0lkZW50aXR5
VG9rZW4uc2VuZFJpZ2h0KCkpOyB9Ci0jZW5kaWYKLQorICAgIFJlZlB0cjxXZWJDb3JlOjpQcm9j
ZXNzSWRlbnRpdHk+IHdlYlByb2Nlc3NJZGVudGl0eSgpIGNvbnN0IHsgcmV0dXJuIG1fd2ViUHJv
Y2Vzc0lkZW50aXR5OyB9CiAjaWYgRU5BQkxFKEVOQ1JZUFRFRF9NRURJQSkKICAgICBSZW1vdGVD
RE1GYWN0b3J5UHJveHkmIGNkbUZhY3RvcnlQcm94eSgpOwogI2VuZGlmCkBAIC0yNzMsOSArMjcx
LDcgQEAgcHJpdmF0ZToKICAgICBJUEM6Ok1lc3NhZ2VSZWNlaXZlck1hcCBtX21lc3NhZ2VSZWNl
aXZlck1hcDsKICAgICBSZWY8R1BVUHJvY2Vzcz4gbV9ncHVQcm9jZXNzOwogICAgIGNvbnN0IFdl
YkNvcmU6OlByb2Nlc3NJZGVudGlmaWVyIG1fd2ViUHJvY2Vzc0lkZW50aWZpZXI7Ci0jaWYgSEFW
RShUQVNLX0lERU5USVRZX1RPS0VOKQotICAgIE1hY2hTZW5kUmlnaHQgbV93ZWJQcm9jZXNzSWRl
bnRpdHlUb2tlbjsKLSNlbmRpZgorICAgIFJlZlB0cjxXZWJDb3JlOjpQcm9jZXNzSWRlbnRpdHk+
IG1fd2ViUHJvY2Vzc0lkZW50aXR5OwogI2lmIEVOQUJMRShXRUJfQVVESU8pCiAgICAgc3RkOjp1
bmlxdWVfcHRyPFJlbW90ZUF1ZGlvRGVzdGluYXRpb25NYW5hZ2VyPiBtX3JlbW90ZUF1ZGlvRGVz
dGluYXRpb25NYW5hZ2VyOwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVBy
b2Nlc3MvZ3JhcGhpY3MvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xDb2NvYS5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xDb2NvYS5j
cHAKaW5kZXggMTBhNTM2Mjk5Y2YyM2ViOWY4NmY1NzI3ZTg1MjM4M2NlOGEwNDAwOC4uZWM2NWEz
ZjJjYjVjOWNmZGYyZmQ3YzgyODUxMzFlYjZkZjI5ZDUwYyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZUdyYXBoaWNzQ29udGV4dEdMQ29jb2EuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVHcmFwaGljc0Nv
bnRleHRHTENvY29hLmNwcApAQCAtMjksNiArMjksNyBAQAogI2lmIEVOQUJMRShHUFVfUFJPQ0VT
UykgJiYgRU5BQkxFKFdFQkdMKSAmJiBQTEFURk9STShDT0NPQSkKIAogI2luY2x1ZGUgIkdQVUNv
bm5lY3Rpb25Ub1dlYlByb2Nlc3MuaCIKKyNpbmNsdWRlICJQcm9jZXNzSWRlbnRpdHkuaCIKICNp
bmNsdWRlIDx3dGYvTWFjaFNlbmRSaWdodC5oPgogCiBuYW1lc3BhY2UgV2ViS2l0IHsKQEAgLTQ1
LDkgKzQ2LDcgQEAgcHVibGljOgogICAgIHZvaWQgcGxhdGZvcm1Xb3JrUXVldWVJbml0aWFsaXpl
KFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dEdMQXR0cmlidXRlcyYmKSBmaW5hbDsKICAgICB2b2lk
IHByZXBhcmVGb3JEaXNwbGF5KENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV1RGOjpNYWNoU2VuZFJp
Z2h0JiYpPiYmKSBmaW5hbDsKIHByaXZhdGU6Ci0jaWYgSEFWRShJT1NVUkZBQ0VfU0VUX09XTkVS
U0hJUF9JREVOVElUWSkKLSAgICB0YXNrX2lkX3Rva2VuX3QgbV93ZWJQcm9jZXNzSWRlbnRpdHlU
b2tlbjsKLSNlbmRpZgorICAgIFJlZlB0cjxQcm9jZXNzSWRlbnRpdHk+IG1fcmVzb3VyY2VPd25l
cjsKIH07CiAKIH0KQEAgLTYxLDkgKzYwLDcgQEAgUmVmPFJlbW90ZUdyYXBoaWNzQ29udGV4dEdM
PiBSZW1vdGVHcmFwaGljc0NvbnRleHRHTDo6Y3JlYXRlKEdQVUNvbm5lY3Rpb25Ub1dlYlAKIAog
UmVtb3RlR3JhcGhpY3NDb250ZXh0R0xDb2NvYTo6UmVtb3RlR3JhcGhpY3NDb250ZXh0R0xDb2Nv
YShHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzJiBncHVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLCBH
cmFwaGljc0NvbnRleHRHTElkZW50aWZpZXIgZ3JhcGhpY3NDb250ZXh0R0xJZGVudGlmaWVyLCBS
ZW1vdGVSZW5kZXJpbmdCYWNrZW5kJiByZW5kZXJpbmdCYWNrZW5kLCBJUEM6OlN0cmVhbUNvbm5l
Y3Rpb25CdWZmZXImJiBzdHJlYW0pCiAgICAgOiBSZW1vdGVHcmFwaGljc0NvbnRleHRHTChncHVD
b25uZWN0aW9uVG9XZWJQcm9jZXNzLCBncmFwaGljc0NvbnRleHRHTElkZW50aWZpZXIsIHJlbmRl
cmluZ0JhY2tlbmQsIFdURk1vdmUoc3RyZWFtKSkKLSNpZiBIQVZFKElPU1VSRkFDRV9TRVRfT1dO
RVJTSElQX0lERU5USVRZKQotICAgICwgbV93ZWJQcm9jZXNzSWRlbnRpdHlUb2tlbihncHVDb25u
ZWN0aW9uVG9XZWJQcm9jZXNzLndlYlByb2Nlc3NJZGVudGl0eVRva2VuKCkpCi0jZW5kaWYKKyAg
ICAsIG1fcmVzb3VyY2VPd25lcihncHVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLndlYlByb2Nlc3NJ
ZGVudGl0eSgpKQogewogCiB9CkBAIC03MSw3ICs2OCw3IEBAIFJlbW90ZUdyYXBoaWNzQ29udGV4
dEdMQ29jb2E6OlJlbW90ZUdyYXBoaWNzQ29udGV4dEdMQ29jb2EoR1BVQ29ubmVjdGlvblRvV2Vi
UHJvCiB2b2lkIFJlbW90ZUdyYXBoaWNzQ29udGV4dEdMQ29jb2E6OnBsYXRmb3JtV29ya1F1ZXVl
SW5pdGlhbGl6ZShXZWJDb3JlOjpHcmFwaGljc0NvbnRleHRHTEF0dHJpYnV0ZXMmJiBhdHRyaWJ1
dGVzKQogewogICAgIGFzc2VydElzQ3VycmVudChtX3N0cmVhbVRocmVhZCk7Ci0gICAgbV9jb250
ZXh0ID0gR3JhcGhpY3NDb250ZXh0R0xDb2NvYTo6Y3JlYXRlKFdURk1vdmUoYXR0cmlidXRlcykp
OworICAgIG1fY29udGV4dCA9IEdyYXBoaWNzQ29udGV4dEdMQ29jb2E6OmNyZWF0ZShXVEZNb3Zl
KGF0dHJpYnV0ZXMpLCBtX3Jlc291cmNlT3duZXIpOwogfQogCiB2b2lkIFJlbW90ZUdyYXBoaWNz
Q29udGV4dEdMQ29jb2E6OnByZXBhcmVGb3JEaXNwbGF5KENvbXBsZXRpb25IYW5kbGVyPHZvaWQo
V1RGOjpNYWNoU2VuZFJpZ2h0JiYpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQpAQCAtODIsMTAgKzc5
LDYgQEAgdm9pZCBSZW1vdGVHcmFwaGljc0NvbnRleHRHTENvY29hOjpwcmVwYXJlRm9yRGlzcGxh
eShDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdURjoKICAgICBNYWNoU2VuZFJpZ2h0IHNlbmRSaWdo
dDsKICAgICBpZiAoZGlzcGxheUJ1ZmZlcikgewogICAgICAgICBtX2NvbnRleHQtPm1hcmtEaXNw
bGF5QnVmZmVySW5Vc2UoKTsKLSNpZiBIQVZFKElPU1VSRkFDRV9TRVRfT1dORVJTSElQX0lERU5U
SVRZKQotICAgICAgICAvLyBNYXJrIHRoZSBJT1N1cmZhY2UgYXMgYmVpbmcgb3duZWQgYnkgdGhl
IFdlYlByb2Nlc3MgZXZlbiB0aG91Z2ggaXQgd2FzIGNvbnN0cnVjdGVkIGJ5IHRoZSBHUFVQcm9j
ZXNzIHNvIHRoYXQgSmV0c2FtIGtub3dzIHdoaWNoIHByb2Nlc3MgdG8ga2lsbC4KLSAgICAgICAg
ZGlzcGxheUJ1ZmZlci0+c2V0T3duZXJzaGlwSWRlbnRpdHkobV93ZWJQcm9jZXNzSWRlbnRpdHlU
b2tlbik7Ci0jZW5kaWYKICAgICAgICAgc2VuZFJpZ2h0ID0gZGlzcGxheUJ1ZmZlci0+Y3JlYXRl
U2VuZFJpZ2h0KCk7CiAgICAgfQogICAgIGNvbXBsZXRpb25IYW5kbGVyKFdURk1vdmUoc2VuZFJp
Z2h0KSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVt
b3RlSW1hZ2VCdWZmZXIuaCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1v
dGVJbWFnZUJ1ZmZlci5oCmluZGV4IGEzZDQ5NGZlOGJmNmExOTY0N2VmMTkwYzlkYjQwNDJhZWNl
NjcyMjAuLjE5OTI1OGI2M2Q2OGU4OGJjYTRhOTAyMzZmZWQ0MDQ4MDQxYjYyMGMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVJbWFnZUJ1ZmZlci5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVJbWFnZUJ1ZmZl
ci5oCkBAIC02OSwxMyArNjksMTEgQEAgcHVibGljOgogICAgICAgICAgICAgY29udGV4dCgpLnJl
c3RvcmUoKTsKICAgICB9CiAKLSNpZiBIQVZFKElPU1VSRkFDRV9TRVRfT1dORVJTSElQX0lERU5U
SVRZKQotICAgIHZvaWQgc2V0UHJvY2Vzc093bmVyc2hpcCh0YXNrX2lkX3Rva2VuX3QgbmV3T3du
ZXIpCisgICAgdm9pZCBzZXRPd25lcnNoaXBJZGVudGl0eShXZWJDb3JlOjpQcm9jZXNzSWRlbnRp
dHkqIHJlc291cmNlT3duZXIpCiAgICAgewogICAgICAgICBpZiAobV9iYWNrZW5kKQotICAgICAg
ICAgICAgbV9iYWNrZW5kLT5zZXRQcm9jZXNzT3duZXJzaGlwKG5ld093bmVyKTsKKyAgICAgICAg
ICAgIG1fYmFja2VuZC0+c2V0T3duZXJzaGlwSWRlbnRpdHkocmVzb3VyY2VPd25lcik7CiAgICAg
fQotI2VuZGlmCiAKIHByaXZhdGU6CiAgICAgZnJpZW5kIGNsYXNzIFJlbW90ZVJlbmRlcmluZ0Jh
Y2tlbmQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVt
b3RlUmVuZGVyaW5nQmFja2VuZC5jcHAgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhp
Y3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5jcHAKaW5kZXggZmNjNzJiZjIwYTJmYjJjNmI5OWJh
MGVlNmY4MjA2YTRjYWI2ZmZjMC4uMTYwZmVjMmE1NTJlNjY5NDEyODg2NjIxYTUyZGRkZGZlM2Q3
NjhlNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90
ZVJlbmRlcmluZ0JhY2tlbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFw
aGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmNwcApAQCAtODQsNiArODQsNyBAQCBSZW1vdGVS
ZW5kZXJpbmdCYWNrZW5kOjpSZW1vdGVSZW5kZXJpbmdCYWNrZW5kKEdQVUNvbm5lY3Rpb25Ub1dl
YlByb2Nlc3MmIGdwdUNvbgogICAgICwgbV9zdHJlYW1Db25uZWN0aW9uKElQQzo6U3RyZWFtU2Vy
dmVyQ29ubmVjdGlvbjo6Y3JlYXRlKGdwdUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY29ubmVjdGlv
bigpLCBXVEZNb3ZlKHN0cmVhbUJ1ZmZlciksIG1fd29ya1F1ZXVlLmdldCgpKSkKICAgICAsIG1f
cmVtb3RlUmVzb3VyY2VDYWNoZShncHVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLndlYlByb2Nlc3NJ
ZGVudGlmaWVyKCkpCiAgICAgLCBtX2dwdUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MoZ3B1Q29ubmVj
dGlvblRvV2ViUHJvY2VzcykKKyAgICAsIG1fcmVzb3VyY2VPd25lcihncHVDb25uZWN0aW9uVG9X
ZWJQcm9jZXNzLndlYlByb2Nlc3NJZGVudGl0eSgpKQogICAgICwgbV9yZW5kZXJpbmdCYWNrZW5k
SWRlbnRpZmllcihjcmVhdGlvblBhcmFtZXRlcnMuaWRlbnRpZmllcikKIHsKICAgICBBU1NFUlQo
UnVuTG9vcDo6aXNNYWluKCkpOwpAQCAtMTczLDEwICsxNzQsOSBAQCB2b2lkIFJlbW90ZVJlbmRl
cmluZ0JhY2tlbmQ6OmNyZWF0ZUltYWdlQnVmZmVyV2l0aFF1YWxpZmllZElkZW50aWZpZXIoY29u
c3QgRmxvYQogCiAgICAgaWYgKHJlbmRlcmluZ01vZGUgPT0gUmVuZGVyaW5nTW9kZTo6QWNjZWxl
cmF0ZWQpIHsKICAgICAgICAgaWYgKGF1dG8gYWNjZWxlcmF0ZWRJbWFnZUJ1ZmZlciA9IEFjY2Vs
ZXJhdGVkUmVtb3RlSW1hZ2VCdWZmZXI6OmNyZWF0ZShsb2dpY2FsU2l6ZSwgcmVzb2x1dGlvblNj
YWxlLCBjb2xvclNwYWNlLCBwaXhlbEZvcm1hdCwgKnRoaXMsIGltYWdlQnVmZmVyUmVzb3VyY2VJ
ZGVudGlmaWVyKSkgewotI2lmIEhBVkUoSU9TVVJGQUNFX1NFVF9PV05FUlNISVBfSURFTlRJVFkp
CiAgICAgICAgICAgICAvLyBNYXJrIHRoZSBJT1N1cmZhY2UgYXMgYmVpbmcgb3duZWQgYnkgdGhl
IFdlYlByb2Nlc3MgZXZlbiB0aG91Z2ggaXQgd2FzIGNvbnN0cnVjdGVkIGJ5IHRoZSBHUFVQcm9j
ZXNzIHNvIHRoYXQgSmV0c2FtIGtub3dzIHdoaWNoIHByb2Nlc3MgdG8ga2lsbC4KLSAgICAgICAg
ICAgIGFjY2VsZXJhdGVkSW1hZ2VCdWZmZXItPnNldFByb2Nlc3NPd25lcnNoaXAobV9ncHVDb25u
ZWN0aW9uVG9XZWJQcm9jZXNzLT53ZWJQcm9jZXNzSWRlbnRpdHlUb2tlbigpKTsKLSNlbmRpZgor
ICAgICAgICAgICAgaWYgKG1fcmVzb3VyY2VPd25lcikKKyAgICAgICAgICAgICAgICBhY2NlbGVy
YXRlZEltYWdlQnVmZmVyLT5zZXRPd25lcnNoaXBJZGVudGl0eShtX3Jlc291cmNlT3duZXIuZ2V0
KCkpOwogICAgICAgICAgICAgaW1hZ2VCdWZmZXIgPSBXVEZNb3ZlKGFjY2VsZXJhdGVkSW1hZ2VC
dWZmZXIpOwogICAgICAgICB9CiAgICAgfQpAQCAtMjY4LDYgKzI2OCw3IEBAIHZvaWQgUmVtb3Rl
UmVuZGVyaW5nQmFja2VuZDo6Z2V0RGF0YVVSTEZvckltYWdlQnVmZmVyV2l0aFF1YWxpZmllZElk
ZW50aWZpZXIoY29uCiAgICAgU3RyaW5nIHVybFN0cmluZzsKICAgICBpZiAoYXV0byBpbWFnZUJ1
ZmZlciA9IG1fcmVtb3RlUmVzb3VyY2VDYWNoZS5jYWNoZWRJbWFnZUJ1ZmZlcihyZW5kZXJpbmdS
ZXNvdXJjZUlkZW50aWZpZXIpKQogICAgICAgICB1cmxTdHJpbmcgPSBpbWFnZUJ1ZmZlci0+dG9E
YXRhVVJMKG1pbWVUeXBlLCBxdWFsaXR5LCBwcmVzZXJ2ZVJlc29sdXRpb24pOworICAgIFdURkxv
Z0Fsd2F5cygiREFUQVVSTDolcyIsIHVybFN0cmluZy51dGY4KCkuZGF0YSgpKTsKICAgICBjb21w
bGV0aW9uSGFuZGxlcihXVEZNb3ZlKHVybFN0cmluZykpOwogfQogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5oIGIv
U291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQu
aAppbmRleCA5ODliYzkzMGY0ODZlMWM2ZGU3ZDE2NmE0MzRhYjVlZTA2YWM5ZWY1Li45ODk4YzY2
ZmMzNWQwZDExOWFmMzMyNGNmMDA3MzRiNjU0ZDRkOWJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmgK
QEAgLTUzLDYgKzUzLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogY2xhc3MgRGVzdGluYXRpb25D
b2xvclNwYWNlOwogY2xhc3MgRmxvYXRTaXplOwogY2xhc3MgTmF0aXZlSW1hZ2U7CitjbGFzcyBQ
cm9jZXNzSWRlbnRpdHk7CiAKIGVudW0gY2xhc3MgUmVuZGVyaW5nTW9kZSA6IGJvb2w7CiAKQEAg
LTEyOCw2ICsxMjksNyBAQCBwcml2YXRlOgogICAgIFJlZjxJUEM6OlN0cmVhbVNlcnZlckNvbm5l
Y3Rpb24+IG1fc3RyZWFtQ29ubmVjdGlvbjsKICAgICBSZW1vdGVSZXNvdXJjZUNhY2hlIG1fcmVt
b3RlUmVzb3VyY2VDYWNoZTsKICAgICBSZWY8R1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcz4gbV9n
cHVDb25uZWN0aW9uVG9XZWJQcm9jZXNzOworICAgIFJlZlB0cjxXZWJDb3JlOjpQcm9jZXNzSWRl
bnRpdHk+IG1fcmVzb3VyY2VPd25lcjsKICAgICBSZW5kZXJpbmdCYWNrZW5kSWRlbnRpZmllciBt
X3JlbmRlcmluZ0JhY2tlbmRJZGVudGlmaWVyOwogICAgIElQQzo6U2VtYXBob3JlIG1fZ2V0UGl4
ZWxCdWZmZXJTZW1hcGhvcmU7CiAgICAgUmVmUHRyPFNoYXJlZE1lbW9yeT4gbV9nZXRQaXhlbEJ1
ZmZlclNoYXJlZE1lbW9yeTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy93
ZWJydGMvTGliV2ViUlRDQ29kZWNzUHJveHkubW0gYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mv
d2VicnRjL0xpYldlYlJUQ0NvZGVjc1Byb3h5Lm1tCmluZGV4IDEzM2UyNmU0NzRlMWQzMTkxNjNl
NTU3MTk5MmQwYzBjNzE5ZGRlMTQuLjcwN2E2NWUyZTIyNGM5YWQ3Y2YxNzQ2NWY0ZGMwYTQyMTM3
MDJhNTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy93ZWJydGMvTGliV2Vi
UlRDQ29kZWNzUHJveHkubW0KKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL3dlYnJ0Yy9M
aWJXZWJSVENDb2RlY3NQcm94eS5tbQpAQCAtNzcsMTQgKzc3LDExIEBAIHZvaWQgTGliV2ViUlRD
Q29kZWNzUHJveHk6OmNsb3NlKCkKIHN0YXRpYyBGdW5jdGlvbjx2b2lkKENWUGl4ZWxCdWZmZXJS
ZWYgcGl4ZWxCdWZmZXIsIHVpbnQzMl90IHRpbWVTdGFtcE5zLCB1aW50MzJfdCB0aW1lU3RhbXAp
PiBjcmVhdGVEZWNvZGVyQ2FsbGJhY2soUlRDRGVjb2RlcklkZW50aWZpZXIgaWRlbnRpZmllciwg
R1BVQ29ubmVjdGlvblRvV2ViUHJvY2VzcyYgZ3B1Q29ubmVjdGlvblRvV2ViUHJvY2VzcykKIHsK
ICAgICByZXR1cm4gW2Nvbm5lY3Rpb24gPSBSZWYgeyBncHVDb25uZWN0aW9uVG9XZWJQcm9jZXNz
LmNvbm5lY3Rpb24oKSB9LAotI2lmIEhBVkUoSU9TVVJGQUNFX1NFVF9PV05FUlNISVBfSURFTlRJ
VFkpCi0gICAgICAgIHRva2VuID0gZ3B1Q29ubmVjdGlvblRvV2ViUHJvY2Vzcy53ZWJQcm9jZXNz
SWRlbnRpdHlUb2tlbigpLAotI2VuZGlmCisgICAgICAgIHJlc291cmNlT3duZXIgPSBncHVDb25u
ZWN0aW9uVG9XZWJQcm9jZXNzLndlYlByb2Nlc3NJZGVudGl0eSgpLAogICAgICAgICBpZGVudGlm
aWVyXShDVlBpeGVsQnVmZmVyUmVmIHBpeGVsQnVmZmVyLCB1aW50MzJfdCB0aW1lU3RhbXBOcywg
dWludDMyX3QgdGltZVN0YW1wKSB7CiAgICAgICAgIGlmIChhdXRvIHNhbXBsZSA9IFdlYkNvcmU6
OlJlbW90ZVZpZGVvU2FtcGxlOjpjcmVhdGUocGl4ZWxCdWZmZXIsIE1lZGlhVGltZSh0aW1lU3Rh
bXBOcywgMSkpKSB7Ci0jaWYgSEFWRShJT1NVUkZBQ0VfU0VUX09XTkVSU0hJUF9JREVOVElUWSkK
LSAgICAgICAgICAgIHNhbXBsZS0+c2V0T3duZXJzaGlwSWRlbnRpdHkodG9rZW4pOwotI2VuZGlm
CisgICAgICAgICAgICBpZiAocmVzb3VyY2VPd25lcikKKyAgICAgICAgICAgICAgICBzYW1wbGUt
PnNldE93bmVyc2hpcElkZW50aXR5KHJlc291cmNlT3duZXIuZ2V0KCkpOwogICAgICAgICAgICAg
Y29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6TGliV2ViUlRDQ29kZWNzOjpDb21wbGV0ZWREZWNv
ZGluZyB7IGlkZW50aWZpZXIsIHRpbWVTdGFtcCwgKnNhbXBsZSB9LCAwKTsKICAgICAgICAgfQog
ICAgIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9HUFVQcm9jZXNzQ29ubmVj
dGlvblBhcmFtZXRlcnMuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0dQVVByb2Nlc3NDb25uZWN0
aW9uUGFyYW1ldGVycy5oCmluZGV4IDA5NmZkMGUzYmE2YzdlYzExNzc4Zjk5NGZmZDVlODY3N2Uy
MGZjNTYuLjhhM2ViMTEwNDIzMWFkMDlhMWQ2YWYxMmM4ZmY1NDJkZWUwMzRiMTQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0dQVVByb2Nlc3NDb25uZWN0aW9uUGFyYW1ldGVycy5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0dQVVByb2Nlc3NDb25uZWN0aW9uUGFyYW1ldGVy
cy5oCkBAIC00Niw5ICs0Niw3IEBAIHN0cnVjdCBHUFVQcm9jZXNzQ29ubmVjdGlvblBhcmFtZXRl
cnMgewogCiAgICAgdm9pZCBlbmNvZGUoSVBDOjpFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogICAg
IHsKLSNpZiBIQVZFKFRBU0tfSURFTlRJVFlfVE9LRU4pCi0gICAgICAgIGVuY29kZXIgPDwgd2Vi
UHJvY2Vzc0lkZW50aXR5VG9rZW47Ci0jZW5kaWYKKyAgICAgICAgZW5jb2RlciA8PCB3ZWJQcm9j
ZXNzSWRlbnRpdHlIYW5kbGU7CiAgICAgICAgIGVuY29kZXIgPDwgb3ZlcnJpZGVMYW5ndWFnZXM7
CiAjaWYgRU5BQkxFKElQQ19URVNUSU5HX0FQSSkKICAgICAgICAgZW5jb2RlciA8PCBpZ25vcmVJ
bnZhbGlkTWVzc2FnZUZvclRlc3Rpbmc7CkBAIC02MCwxMiArNTgsMTAgQEAgc3RydWN0IEdQVVBy
b2Nlc3NDb25uZWN0aW9uUGFyYW1ldGVycyB7CiAKICAgICBzdGF0aWMgc3RkOjpvcHRpb25hbDxH
UFVQcm9jZXNzQ29ubmVjdGlvblBhcmFtZXRlcnM+IGRlY29kZShJUEM6OkRlY29kZXImIGRlY29k
ZXIpCiAgICAgewotI2lmIEhBVkUoVEFTS19JREVOVElUWV9UT0tFTikKLSAgICAgICAgc3RkOjpv
cHRpb25hbDxNYWNoU2VuZFJpZ2h0PiB3ZWJQcm9jZXNzSWRlbnRpdHlUb2tlbjsKLSAgICAgICAg
ZGVjb2RlciA+PiB3ZWJQcm9jZXNzSWRlbnRpdHlUb2tlbjsKLSAgICAgICAgaWYgKCF3ZWJQcm9j
ZXNzSWRlbnRpdHlUb2tlbikKKyAgICAgICAgc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpQcm9jZXNz
SWRlbnRpdHk6OkhhbmRsZT4gd2ViUHJvY2Vzc0lkZW50aXR5SGFuZGxlOworICAgICAgICBkZWNv
ZGVyID4+IHdlYlByb2Nlc3NJZGVudGl0eUhhbmRsZTsKKyAgICAgICAgaWYgKCF3ZWJQcm9jZXNz
SWRlbnRpdHlIYW5kbGUpCiAgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwotI2VuZGlm
CiAKICAgICAgICAgc3RkOjpvcHRpb25hbDxWZWN0b3I8U3RyaW5nPj4gb3ZlcnJpZGVMYW5ndWFn
ZXM7CiAgICAgICAgIGRlY29kZXIgPj4gb3ZlcnJpZGVMYW5ndWFnZXM7CkBAIC04Niw5ICs4Miw3
IEBAIHN0cnVjdCBHUFVQcm9jZXNzQ29ubmVjdGlvblBhcmFtZXRlcnMgewogI2VuZGlmCiAKICAg
ICAgICAgcmV0dXJuIEdQVVByb2Nlc3NDb25uZWN0aW9uUGFyYW1ldGVycyB7Ci0jaWYgSEFWRShU
QVNLX0lERU5USVRZX1RPS0VOKQotICAgICAgICAgICAgV1RGTW92ZSgqd2ViUHJvY2Vzc0lkZW50
aXR5VG9rZW4pLAotI2VuZGlmCisgICAgICAgICAgICBXVEZNb3ZlKCp3ZWJQcm9jZXNzSWRlbnRp
dHlIYW5kbGUpLAogICAgICAgICAgICAgV1RGTW92ZSgqb3ZlcnJpZGVMYW5ndWFnZXMpLAogI2lm
IEVOQUJMRShJUENfVEVTVElOR19BUEkpCiAgICAgICAgICAgICAqaWdub3JlSW52YWxpZE1lc3Nh
Z2VGb3JUZXN0aW5nLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2Ev
VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5LmNwcAppbmRleCA4MWMwYWNjYmVi
NmI3ODk1YTcxMmRkMmI0NDhiODhiY2RlNDNlMDQwLi40NDI0NTUyN2Y3ZTRlNDVlNGQ2MTU2ZmJi
YTFlOTk2NDM4YjRlNzEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2Nv
YS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5LmNwcApAQCAtNTcsOSAr
NTcsMTAgQEAgY2xhc3MgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6U291cmNlUHJveHkK
ICAgICAsIHByaXZhdGUgUmVhbHRpbWVNZWRpYVNvdXJjZTo6VmlkZW9TYW1wbGVPYnNlcnZlciB7
CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6Ci0gICAgU291cmNlUHJveHko
UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgaWQsIFJlZjxJUEM6OkNvbm5lY3Rpb24+JiYg
Y29ubmVjdGlvbiwgUmVmPFJlYWx0aW1lTWVkaWFTb3VyY2U+JiYgc291cmNlKQorICAgIFNvdXJj
ZVByb3h5KFJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIGlkLCBSZWY8SVBDOjpDb25uZWN0
aW9uPiYmIGNvbm5lY3Rpb24sIFJlZlB0cjxQcm9jZXNzSWRlbnRpdHk+JiYgcmVzb3VyY2VPd25l
ciwgUmVmPFJlYWx0aW1lTWVkaWFTb3VyY2U+JiYgc291cmNlKQogICAgICAgICA6IG1faWQoaWQp
CiAgICAgICAgICwgbV9jb25uZWN0aW9uKFdURk1vdmUoY29ubmVjdGlvbikpCisgICAgICAgICwg
bV9yZXNvdXJjZU93bmVyKFdURk1vdmUocmVzb3VyY2VPd25lcikpCiAgICAgICAgICwgbV9zb3Vy
Y2UoV1RGTW92ZShzb3VyY2UpKQogICAgIHsKICAgICAgICAgbV9zb3VyY2UtPmFkZE9ic2VydmVy
KCp0aGlzKTsKQEAgLTEyNSw5ICsxMjYsNiBAQCBwdWJsaWM6CiAgICAgfQogCiAgICAgdm9pZCBz
ZXRTaG91bGRBcHBseVJvdGF0aW9uKGJvb2wgc2hvdWxkQXBwbHlSb3RhdGlvbikgeyBtX3Nob3Vs
ZEFwcGx5Um90YXRpb24gPSB0cnVlOyB9Ci0jaWYgSEFWRShJT1NVUkZBQ0VfU0VUX09XTkVSU0hJ
UF9JREVOVElUWSkKLSAgICB2b2lkIHNldFdlYlByb2Nlc3NJZGVudGl0eVRva2VuKHN0ZDo6b3B0
aW9uYWw8dGFza19pZF90b2tlbl90PiB0b2tlbikgeyBtX3dlYlByb2Nlc3NJZGVudGl0eVRva2Vu
ID0gdG9rZW47fQotI2VuZGlmCiAKIHByaXZhdGU6CiAgICAgdm9pZCBzb3VyY2VTdG9wcGVkKCkg
ZmluYWwgewpAQCAtMTg4LDEwICsxODYsOCBAQCBwcml2YXRlOgogICAgICAgICB9IGVsc2UKICAg
ICAgICAgICAgIHJlbW90ZVNhbXBsZSA9IFJlbW90ZVZpZGVvU2FtcGxlOjpjcmVhdGUoc2FtcGxl
KTsKICAgICAgICAgaWYgKHJlbW90ZVNhbXBsZSkgewotI2lmIEhBVkUoSU9TVVJGQUNFX1NFVF9P
V05FUlNISVBfSURFTlRJVFkpCi0gICAgICAgICAgICBpZiAobV93ZWJQcm9jZXNzSWRlbnRpdHlU
b2tlbikKLSAgICAgICAgICAgICAgICByZW1vdGVTYW1wbGUtPnNldE93bmVyc2hpcElkZW50aXR5
KCptX3dlYlByb2Nlc3NJZGVudGl0eVRva2VuKTsKLSNlbmRpZgorICAgICAgICAgICAgaWYgKG1f
cmVzb3VyY2VPd25lcikKKyAgICAgICAgICAgICAgICByZW1vdGVTYW1wbGUtPnNldE93bmVyc2hp
cElkZW50aXR5KG1fcmVzb3VyY2VPd25lci5nZXQoKSk7CiAgICAgICAgICAgICBtX2Nvbm5lY3Rp
b24tPnNlbmQoTWVzc2FnZXM6OlJlbW90ZUNhcHR1cmVTYW1wbGVNYW5hZ2VyOjpWaWRlb1NhbXBs
ZUF2YWlsYWJsZShtX2lkLCBXVEZNb3ZlKCpyZW1vdGVTYW1wbGUpLCBtZXRhZGF0YSksIDApOwog
ICAgICAgICB9CiAgICAgfQpAQCAtMjQ0LDYgKzI0MCw3IEBAIHByaXZhdGU6CiAgICAgUmVhbHRp
bWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgbV9pZDsKICAgICBXZWFrUHRyPFBsYXRmb3JtTWVkaWFT
ZXNzaW9uTWFuYWdlcj4gbV9zZXNzaW9uTWFuYWdlcjsKICAgICBSZWY8SVBDOjpDb25uZWN0aW9u
PiBtX2Nvbm5lY3Rpb247CisgICAgUmVmUHRyPFByb2Nlc3NJZGVudGl0eT4gbV9yZXNvdXJjZU93
bmVyOwogICAgIFJlZjxSZWFsdGltZU1lZGlhU291cmNlPiBtX3NvdXJjZTsKICAgICBzdGQ6OnVu
aXF1ZV9wdHI8Q0FSaW5nQnVmZmVyPiBtX3JpbmdCdWZmZXI7CiAgICAgQ0FBdWRpb1N0cmVhbURl
c2NyaXB0aW9uIG1fZGVzY3JpcHRpb24geyB9OwpAQCAtMjU3LDkgKzI1NCw2IEBAIHByaXZhdGU6
CiAgICAgc2l6ZV90IG1fZnJhbWVDaHVua1NpemUgeyAwIH07CiAgICAgTWVkaWFUaW1lIG1fc3Rh
cnRUaW1lOwogICAgIGJvb2wgbV9zaG91bGRSZXNldCB7IGZhbHNlIH07Ci0jaWYgSEFWRShUQVNL
X0lERU5USVRZX1RPS0VOKQotICAgIHN0ZDo6b3B0aW9uYWw8dGFza19pZF90b2tlbl90PiBtX3dl
YlByb2Nlc3NJZGVudGl0eVRva2VuOwotI2VuZGlmCiB9OwogCiBVc2VyTWVkaWFDYXB0dXJlTWFu
YWdlclByb3h5OjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5KFVuaXF1ZVJlZjxDb25uZWN0
aW9uUHJveHk+JiYgY29ubmVjdGlvblByb3h5KQpAQCAtMzIzLDEyICszMTcsNyBAQCB2b2lkIFVz
ZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6OmNyZWF0ZU1lZGlhU291cmNlRm9yQ2FwdHVyZURl
dmljZVdpdGhDb25zdHJhaQogICAgICAgICB9CiAKICAgICAgICAgQVNTRVJUKCFtX3Byb3hpZXMu
Y29udGFpbnMoaWQpKTsKLSAgICAgICAgYXV0byBwcm94eSA9IG1ha2VVbmlxdWU8U291cmNlUHJv
eHk+KGlkLCBtX2Nvbm5lY3Rpb25Qcm94eS0+Y29ubmVjdGlvbigpLCBXVEZNb3ZlKHNvdXJjZSkp
OwotI2lmIEhBVkUoSU9TVVJGQUNFX1NFVF9PV05FUlNISVBfSURFTlRJVFkpCi0gICAgICAgIGlm
IChkZXZpY2UudHlwZSgpICE9IFdlYkNvcmU6OkNhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6Ok1p
Y3JvcGhvbmUpCi0gICAgICAgICAgICBwcm94eS0+c2V0V2ViUHJvY2Vzc0lkZW50aXR5VG9rZW4o
bV9jb25uZWN0aW9uUHJveHktPndlYlByb2Nlc3NJZGVudGl0eVRva2VuKCkpOwotI2VuZGlmCi0K
KyAgICAgICAgYXV0byBwcm94eSA9IG1ha2VVbmlxdWU8U291cmNlUHJveHk+KGlkLCBtX2Nvbm5l
Y3Rpb25Qcm94eS0+Y29ubmVjdGlvbigpLCBtX2Nvbm5lY3Rpb25Qcm94eS0+cmVzb3VyY2VPd25l
cigpLCBXVEZNb3ZlKHNvdXJjZSkpOwogICAgICAgICBtX3Byb3hpZXMuYWRkKGlkLCBXVEZNb3Zl
KHByb3h5KSk7CiAgICAgfSBlbHNlCiAgICAgICAgIGludmFsaWRDb25zdHJhaW50cyA9IFdURk1v
dmUoc291cmNlT3JFcnJvci5lcnJvck1lc3NhZ2UpOwpAQCAtMzkzLDcgKzM4Miw3IEBAIHZvaWQg
VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6Y2xvbmUoUmVhbHRpbWVNZWRpYVNvdXJjZUlk
ZW50aWZpZXIgY2xvbmVkSUQsCiAgICAgTUVTU0FHRV9DSEVDSyhtX3Byb3hpZXMuY29udGFpbnMo
Y2xvbmVkSUQpKTsKICAgICBNRVNTQUdFX0NIRUNLKCFtX3Byb3hpZXMuY29udGFpbnMobmV3U291
cmNlSUQpKTsKICAgICBpZiAoYXV0byogcHJveHkgPSBtX3Byb3hpZXMuZ2V0KGNsb25lZElEKSkK
LSAgICAgICAgbV9wcm94aWVzLmFkZChuZXdTb3VyY2VJRCwgbWFrZVVuaXF1ZTxTb3VyY2VQcm94
eT4obmV3U291cmNlSUQsIG1fY29ubmVjdGlvblByb3h5LT5jb25uZWN0aW9uKCksIHByb3h5LT5z
b3VyY2UoKS5jbG9uZSgpKSk7CisgICAgICAgIG1fcHJveGllcy5hZGQobmV3U291cmNlSUQsIG1h
a2VVbmlxdWU8U291cmNlUHJveHk+KG5ld1NvdXJjZUlELCBtX2Nvbm5lY3Rpb25Qcm94eS0+Y29u
bmVjdGlvbigpLCBtX2Nvbm5lY3Rpb25Qcm94eS0+cmVzb3VyY2VPd25lcigpLCBwcm94eS0+c291
cmNlKCkuY2xvbmUoKSkpOwogfQogCiB2b2lkIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6
OnJlcXVlc3RUb0VuZChSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciBzb3VyY2VJRCkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVN
YW5hZ2VyUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNh
cHR1cmVNYW5hZ2VyUHJveHkuaAppbmRleCA3YWZmNDI0ZDU0MGQzYjFmZGVjZGFiYzg2NTVjM2M1
NmM1MGExMGU1Li5jNTg2Y2UzZjNkMTJlNzhlMjM3MzJhZTEwY2M4OWIyMzgwNGIyYmNkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFu
YWdlclByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlh
Q2FwdHVyZU1hbmFnZXJQcm94eS5oCkBAIC0zMiw2ICszMiw3IEBACiAjaW5jbHVkZSAiVXNlck1l
ZGlhQ2FwdHVyZU1hbmFnZXIuaCIKICNpbmNsdWRlIDxXZWJDb3JlL0NhcHR1cmVEZXZpY2UuaD4K
ICNpbmNsdWRlIDxXZWJDb3JlL09yaWVudGF0aW9uTm90aWZpZXIuaD4KKyNpbmNsdWRlIDxXZWJD
b3JlL1Byb2Nlc3NJZGVudGl0eS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUmVhbHRpbWVNZWRpYVNv
dXJjZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIu
aD4KICNpbmNsdWRlIDxwYWwvc3BpL2NvY29hL1RDQ1NQSS5oPgpAQCAtNTksOSArNjAsNyBAQCBw
dWJsaWM6CiAgICAgICAgIHZpcnR1YWwgYm9vbCB3aWxsU3RhcnRDYXB0dXJlKFdlYkNvcmU6OkNh
cHR1cmVEZXZpY2U6OkRldmljZVR5cGUpIGNvbnN0ID0gMDsKICAgICAgICAgdmlydHVhbCBMb2dn
ZXImIGxvZ2dlcigpID0gMDsKICAgICAgICAgdmlydHVhbCBib29sIHNldENhcHR1cmVBdHRyaWJ1
dGlvblN0cmluZygpIHsgcmV0dXJuIHRydWU7IH0KLSNpZiBIQVZFKElPU1VSRkFDRV9TRVRfT1dO
RVJTSElQX0lERU5USVRZKQotICAgICAgICB2aXJ0dWFsIHN0ZDo6b3B0aW9uYWw8dGFza19pZF90
b2tlbl90PiB3ZWJQcm9jZXNzSWRlbnRpdHlUb2tlbigpIGNvbnN0IHsgcmV0dXJuIHsgfTsgfTsK
LSNlbmRpZgorICAgICAgICB2aXJ0dWFsIFJlZlB0cjxXZWJDb3JlOjpQcm9jZXNzSWRlbnRpdHk+
IHJlc291cmNlT3duZXIoKSBjb25zdCB7IHJldHVybiBudWxscHRyOyB9OwogI2lmIEVOQUJMRShB
UFBfUFJJVkFDWV9SRVBPUlQpCiAgICAgICAgIHZpcnR1YWwgdm9pZCBzZXRUQ0NJZGVudGl0eSgp
IHsgfQogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dy
YXBoaWNzL0ltYWdlQnVmZmVyU2hhcmVhYmxlQml0bWFwQmFja2VuZC5oIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9JbWFnZUJ1ZmZlclNoYXJlYWJsZUJpdG1hcEJhY2tl
bmQuaAppbmRleCAxODQ3ZmE2ZmJkZTQwNmVkNmE2YWQwNjA0OThiODg1YzVlMzZiYjNkLi5lYTM3
NzUyOWMyMmY1MzdmZTM2OTdiNDgwMTNjZTA0OWU5MWM3MWRmIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL0ltYWdlQnVmZmVyU2hhcmVhYmxlQml0bWFw
QmFja2VuZC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvSW1h
Z2VCdWZmZXJTaGFyZWFibGVCaXRtYXBCYWNrZW5kLmgKQEAgLTMxLDYgKzMxLDEwIEBACiAjaW5j
bHVkZSA8V2ViQ29yZS9QbGF0Zm9ybUltYWdlQnVmZmVyQmFja2VuZC5oPgogI2luY2x1ZGUgPHd0
Zi9Jc29NYWxsb2MuaD4KIAorbmFtZXNwYWNlIFdlYkNvcmUgeworY2xhc3MgUHJvY2Vzc0lkZW50
aXR5OworfQorCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogY2xhc3MgU2hhcmVhYmxlQml0bWFwOwpA
QCAtNjEsNiArNjUsNyBAQCBwdWJsaWM6CiAgICAgc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpQaXhl
bEJ1ZmZlcj4gZ2V0UGl4ZWxCdWZmZXIoY29uc3QgV2ViQ29yZTo6UGl4ZWxCdWZmZXJGb3JtYXQm
IG91dHB1dEZvcm1hdCwgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYpIGNvbnN0IG92ZXJyaWRlOwog
ICAgIHZvaWQgcHV0UGl4ZWxCdWZmZXIoY29uc3QgV2ViQ29yZTo6UGl4ZWxCdWZmZXImLCBjb25z
dCBXZWJDb3JlOjpJbnRSZWN0JiBzcmNSZWN0LCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgZGVz
dFBvaW50LCBXZWJDb3JlOjpBbHBoYVByZW11bHRpcGxpY2F0aW9uIGRlc3RGb3JtYXQpIG92ZXJy
aWRlOwogCisgICAgdm9pZCBzZXRPd25lcnNoaXBJZGVudGl0eShXZWJDb3JlOjpQcm9jZXNzSWRl
bnRpdHkqKSB7IH0KIHByaXZhdGU6CiAgICAgdW5zaWduZWQgYnl0ZXNQZXJSb3coKSBjb25zdCBv
dmVycmlkZTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFw
aGljcy9jb2NvYS9JbWFnZUJ1ZmZlclNoYXJlYWJsZU1hcHBlZElPU3VyZmFjZUJhY2tlbmQuY3Bw
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9jb2NvYS9JbWFnZUJ1ZmZl
clNoYXJlYWJsZU1hcHBlZElPU3VyZmFjZUJhY2tlbmQuY3BwCmluZGV4IGFmZDJjN2MwNWNmYWZk
MTM5OTM0NGY1YzZhNzY0ZTQ4ODBkMjhiZGEuLjExM2VhZjkyZjgwZjUzODY2MGRmYmI0MDYwYzNh
N2M4ODhmNjkyNWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3Jh
cGhpY3MvY29jb2EvSW1hZ2VCdWZmZXJTaGFyZWFibGVNYXBwZWRJT1N1cmZhY2VCYWNrZW5kLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL2NvY29hL0ltYWdl
QnVmZmVyU2hhcmVhYmxlTWFwcGVkSU9TdXJmYWNlQmFja2VuZC5jcHAKQEAgLTc3LDEzICs3Nywx
MSBAQCBJbWFnZUJ1ZmZlckJhY2tlbmRIYW5kbGUgSW1hZ2VCdWZmZXJTaGFyZWFibGVNYXBwZWRJ
T1N1cmZhY2VCYWNrZW5kOjpjcmVhdGVJbWFnZQogICAgIHJldHVybiBJbWFnZUJ1ZmZlckJhY2tl
bmRIYW5kbGUobV9zdXJmYWNlLT5jcmVhdGVTZW5kUmlnaHQoKSk7CiB9CiAKLSNpZiBIQVZFKElP
U1VSRkFDRV9TRVRfT1dORVJTSElQX0lERU5USVRZKQotdm9pZCBJbWFnZUJ1ZmZlclNoYXJlYWJs
ZU1hcHBlZElPU3VyZmFjZUJhY2tlbmQ6OnNldFByb2Nlc3NPd25lcnNoaXAodGFza19pZF90b2tl
bl90IHByb2Nlc3NJZGVudGl0eVRva2VuKQordm9pZCBJbWFnZUJ1ZmZlclNoYXJlYWJsZU1hcHBl
ZElPU3VyZmFjZUJhY2tlbmQ6OnNldE93bmVyc2hpcElkZW50aXR5KFdlYkNvcmU6OlByb2Nlc3NJ
ZGVudGl0eSogcmVzb3VyY2VPd25lcikKIHsKICAgICBBU1NFUlQoc3VyZmFjZSgpKTsKLSAgICBz
dXJmYWNlKCktPnNldE93bmVyc2hpcElkZW50aXR5KHByb2Nlc3NJZGVudGl0eVRva2VuKTsKKyAg
ICBzdXJmYWNlKCktPnNldE93bmVyc2hpcElkZW50aXR5KHJlc291cmNlT3duZXIpOwogfQotI2Vu
ZGlmCiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL2NvY29hL0ltYWdlQnVmZmVyU2hhcmVhYmxlTWFwcGVk
SU9TdXJmYWNlQmFja2VuZC5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGlj
cy9jb2NvYS9JbWFnZUJ1ZmZlclNoYXJlYWJsZU1hcHBlZElPU3VyZmFjZUJhY2tlbmQuaAppbmRl
eCBlMTRhNTQwZWNkZGQ0NzExOTA4YTdjMTcxYzNhMjVlYmZkODA4ZGJlLi5iOTc2MzIyMDMyZTZm
ZDFhMzBiOWEyNDRmZjgzODk2NjA5NTY0N2MxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvR1BVL2dyYXBoaWNzL2NvY29hL0ltYWdlQnVmZmVyU2hhcmVhYmxlTWFwcGVkSU9T
dXJmYWNlQmFja2VuZC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhp
Y3MvY29jb2EvSW1hZ2VCdWZmZXJTaGFyZWFibGVNYXBwZWRJT1N1cmZhY2VCYWNrZW5kLmgKQEAg
LTMxLDYgKzMxLDEwIEBACiAjaW5jbHVkZSA8V2ViQ29yZS9JbWFnZUJ1ZmZlcklPU3VyZmFjZUJh
Y2tlbmQuaD4KICNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jLmg+CiAKK25hbWVzcGFjZSBXZWJDb3Jl
IHsKK2NsYXNzIFByb2Nlc3NJZGVudGl0eTsKK30KKwogbmFtZXNwYWNlIFdlYktpdCB7CiAKIGNs
YXNzIFNoYXJlYWJsZUJpdG1hcDsKQEAgLTQ2LDkgKzUwLDcgQEAgcHVibGljOgogCiAgICAgSW1h
Z2VCdWZmZXJCYWNrZW5kSGFuZGxlIGNyZWF0ZUltYWdlQnVmZmVyQmFja2VuZEhhbmRsZSgpIGNv
bnN0OwogCi0jaWYgSEFWRShJT1NVUkZBQ0VfU0VUX09XTkVSU0hJUF9JREVOVElUWSkKLSAgICB2
b2lkIHNldFByb2Nlc3NPd25lcnNoaXAodGFza19pZF90b2tlbl90KTsKLSNlbmRpZgorICAgIHZv
aWQgc2V0T3duZXJzaGlwSWRlbnRpdHkoV2ViQ29yZTo6UHJvY2Vzc0lkZW50aXR5KiByZXNvdXJj
ZU93bmVyKTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1dlYlByb2Nlc3NDb2NvYS5tbSBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9jb2NvYS9XZWJQcm9jZXNzQ29jb2EubW0KaW5kZXggMWViOTBlZjM2ZWI1
NzIwMjM2MjBmYWFmNjgxMjMxMTIyZTA2MDE2Yy4uNjNiMzliMWUxNjU0OTE2NzNjY2M0MWEwMzg4
MTQ4ZDgzZTdkNDExMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29h
L1dlYlByb2Nlc3NDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2Ev
V2ViUHJvY2Vzc0NvY29hLm1tCkBAIC0xMjMxLDE0ICsxMjMxLDcgQEAgdm9pZCBXZWJQcm9jZXNz
Ojp3YWl0Rm9yUGVuZGluZ1Bhc3RlYm9hcmRXcml0ZXNUb0ZpbmlzaChjb25zdCBTdHJpbmcmIHBh
c3RlYm9hcmQKICNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCiB2b2lkIFdlYlByb2Nlc3M6OnBsYXRm
b3JtSW5pdGlhbGl6ZUdQVVByb2Nlc3NDb25uZWN0aW9uUGFyYW1ldGVycyhHUFVQcm9jZXNzQ29u
bmVjdGlvblBhcmFtZXRlcnMmIHBhcmFtZXRlcnMpCiB7Ci0jaWYgSEFWRShUQVNLX0lERU5USVRZ
X1RPS0VOKQotICAgIHRhc2tfaWRfdG9rZW5fdCBpZGVudGl0eVRva2VuOwotICAgIGtlcm5fcmV0
dXJuX3Qga3IgPSB0YXNrX2NyZWF0ZV9pZGVudGl0eV90b2tlbihtYWNoX3Rhc2tfc2VsZigpLCAm
aWRlbnRpdHlUb2tlbik7Ci0gICAgaWYgKGtyID09IEtFUk5fU1VDQ0VTUykKLSAgICAgICAgcGFy
YW1ldGVycy53ZWJQcm9jZXNzSWRlbnRpdHlUb2tlbiA9IE1hY2hTZW5kUmlnaHQ6OmFkb3B0KGlk
ZW50aXR5VG9rZW4pOwotICAgIGVsc2UKLSAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoUHJvY2Vz
cywgIkNhbGwgdG8gdGFza19jcmVhdGVfaWRlbnRpdHlfdG9rZW4oKSBmYWlsZWQ6ICV7cHJpdmF0
ZX1zICgleCkiLCBtYWNoX2Vycm9yX3N0cmluZyhrciksIGtyKTsKLSNlbmRpZgorICAgIHBhcmFt
ZXRlcnMud2ViUHJvY2Vzc0lkZW50aXR5SGFuZGxlID0gUHJvY2Vzc0lkZW50aXR5OjpoYW5kbGVG
b3JDdXJyZW50UHJvY2VzcygpOwogCiAgICAgcGFyYW1ldGVycy5vdmVycmlkZUxhbmd1YWdlcyA9
IHVzZXJQcmVmZXJyZWRMYW5ndWFnZXNPdmVycmlkZSgpOwogfQpkaWZmIC0tZ2l0IGEvVG9vbHMv
Q2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IDk0NWVhZWI4MjMzMTk4ODczYzI2NDA0
MTVhNzgwNjEyYTZiZDg3NDkuLjczNWFhNzBiZWM3OTQ4MWQ2MWRmZmI3NWNlNWEyZDBmZTQxMmZl
NmMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwxNiBAQAorMjAyMS0xMi0wMiAgS2ltbW8gS2lubnVuZW4gIDxra2lubnVuZW5AYXBw
bGUuY29tPgorCisgICAgICAgIElPU3VyZmFjZSBtZW1vcnkgYXR0cmlidXRpb24gaXMgaGFyZCB0
byB1c2UgaW4gY29uc3RydWN0b3JzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yMzI5ODgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBVcGRhdGUgY29uc3RydWN0b3IgY2FsbGluZyBiYXNlIGNsYXNzIGNvbnN0
cnVjdG9yLgorCisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL2NvY29hL1Rl
c3RHcmFwaGljc0NvbnRleHRHTE9wZW5HTENvY29hLm1tOgorICAgICAgICAoVGVzdFdlYktpdEFQ
STo6V2ViQ29yZTo6VGVzdGVkR3JhcGhpY3NDb250ZXh0R0xPcGVuR0w6OmNyZWF0ZSk6CisgICAg
ICAgIChUZXN0V2ViS2l0QVBJOjpXZWJDb3JlOjpUZXN0ZWRHcmFwaGljc0NvbnRleHRHTE9wZW5H
TDo6VGVzdGVkR3JhcGhpY3NDb250ZXh0R0xPcGVuR0wpOgorCiAyMDIxLTEyLTAyICBDYXJsb3Mg
R2FyY2lhIENhbXBvcyAgPGNnYXJjaWFAaWdhbGlhLmNvbT4KIAogICAgICAgICBVbnJldmlld2Vk
LiBbR1RLXSBVc2UgbnVsbHB0ciBpbnN0ZWFkIG9mIDAgaW4gSlNTdHJpbmdDcmVhdGVXaXRoQ2hh
cmFjdGVycygpCg==
</data>
<flag name="commit-queue"
          id="471106"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>445822</attachid>
            <date>2021-12-03 01:35:19 -0800</date>
            <delta_ts>2021-12-03 05:11:35 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-232988-20211203113517.patch</filename>
            <type>text/plain</type>
            <size>51462</size>
            <attacher name="Kimmo Kinnunen">kkinnunen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg2NDM3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTMwNmFkNGYyNGY1YmZl
MTRlNmU2M2Y5OTVjMWNkNmUyNzRkYzdjMi4uNGZjOWZlNzgyMWVjZGZlNzRjN2M0YTMxNzE5MTUx
MjQ2NzQzZTZjMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU3IEBACisyMDIxLTEyLTAyICBLaW1t
byBLaW5udW5lbiAgPGtraW5udW5lbkBhcHBsZS5jb20+CisKKyAgICAgICAgSU9TdXJmYWNlIG1l
bW9yeSBhdHRyaWJ1dGlvbiBpcyBoYXJkIHRvIHVzZSBpbiBjb25zdHJ1Y3RvcnMKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMjk4OAorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBXZWJDb3JlOjpQcm9j
ZXNzSWRlbnRpdHkgdHlwZSB0aGF0IGNhbiBiZSB1c2VkIHRvIGNvbW11bmljYXRlIG1lbW9yeSBh
dHRyaWJ1dGlvbi4KKyAgICAgICAgRm9yIG5vbi1Db2NvYSBwb3J0cywgdGhpcyBpcyBudWxscHRy
LgorICAgICAgICBUaGlzIGlzIHVzZWQgaW4gV2ViQ29yZSB0byBzZXQgdGhlIG1lbW9yeSBhdHRy
aWJ1dGlvbiBvZiBJT1N1cmZhY2UgYW5kIG9iamVjdHMKKyAgICAgICAgdGhhdCBob2xkIElPU3Vy
ZmFjZXMuCisgICAgICAgIFRoaXMgaXMgaW5zdGFudGlhdGVkIGluIFdlYktpdC4KKyAgICAgICAg
Q3VycmVudGx5IHRoZSBvbmx5IHVzZWZ1bCB3YXkgdG8gaW5zdGFudGlhdGUgUHJvY2Vzc0lkZW50
aXR5IGlzIGJ5IHJlY2VpdmluZworICAgICAgICB0aGUgUHJvY2Vzc0lkZW50aXR5OjpIYW5kbGUg
YXMgYSBtZXNzYWdlIGFuZCBjcmVhdGUgaXQgdGhpcyB3YXkgZm9yIHRoZQorICAgICAgICBzZW5k
ZXIgcHJvY2Vzcy4KKworICAgICAgICBObyBuZXcgdGVzdHMsIHJlZmFjdG9yLgorCisgICAgICAg
ICogSGVhZGVycy5jbWFrZToKKyAgICAgICAgKiBTb3VyY2VzLnR4dDoKKyAgICAgICAgKiBXZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogcGxhdGZvcm0vTG9nZ2lu
Zy5oOgorICAgICAgICBBZGQgV2ViQ29yZSBQcm9jZXNzIGxvZyB0YWcgc2luY2UgdGhlIGNvZGUg
bW92ZWQgZnJvbSBXZWJLaXQgdG8gUHJvY2Vzc0lkZW50aXR5CisgICAgICAgIHVzZWQgdGhhdCB0
YWcgdG8gbG9nLgorICAgICAgICAqIHBsYXRmb3JtL1Byb2Nlc3NJZGVudGl0eS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpQcm9jZXNzSWRlbnRpdHk6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3Jl
OjpQcm9jZXNzSWRlbnRpdHk6OlByb2Nlc3NJZGVudGl0eSk6CisgICAgICAgIChXZWJDb3JlOjpQ
cm9jZXNzSWRlbnRpdHk6OmhhbmRsZUZvckN1cnJlbnRQcm9jZXNzKToKKyAgICAgICAgKFdlYkNv
cmU6OlByb2Nlc3NJZGVudGl0eTo6aGFuZGxlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlBy
b2Nlc3NJZGVudGl0eTo6dGFza0lkVG9rZW4gY29uc3QpOgorICAgICAgICAqIHBsYXRmb3JtL1By
b2Nlc3NJZGVudGl0eS5oOgorICAgICAgICBBZGQgdGhlIFByb2Nlc3NJZGVudGl0eSB0eXBlIHRo
YXQgY2FuIGJlIHVzZWQgdG8gY29tbXVuaWNhdGUgbWVtb3J5IGF0dHJpYnV0aW9uLgorCisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvUmVtb3RlVmlkZW9TYW1wbGUuaDoKKyAgICAgICAgKFdl
YkNvcmU6OlJlbW90ZVZpZGVvU2FtcGxlOjpzZXRPd25lcnNoaXBJZGVudGl0eSk6CisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvY2cvSW1hZ2VCdWZmZXJVdGlsaXRpZXNDRy5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjplbmNvZGUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NvY29h
L0dyYXBoaWNzQ29udGV4dEdMT3BlbkdMQ29jb2EubW06CisgICAgICAgIChXZWJDb3JlOjpHcmFw
aGljc0NvbnRleHRHTE9wZW5HTDo6R3JhcGhpY3NDb250ZXh0R0xPcGVuR0wpOgorICAgICAgICAo
V2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0R0xPcGVuR0w6OmFsbG9jYXRlQW5kQmluZERpc3BsYXlC
dWZmZXJCYWNraW5nKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9JT1N1cmZh
Y2UuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9JT1N1cmZhY2UubW06Cisg
ICAgICAgIChXZWJDb3JlOjpJT1N1cmZhY2U6OnNldE93bmVyc2hpcElkZW50aXR5KToKKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9XZWJQcm9jZXNzR3JhcGhpY3NDb250ZXh0R0xP
cGVuR0xDb2NvYS5tbToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR3JhcGhp
Y3NDb250ZXh0R0xPcGVuR0wuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAv
R3JhcGhpY3NDb250ZXh0R0xUZXh0dXJlTWFwcGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okdy
YXBoaWNzQ29udGV4dEdMT3BlbkdMOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhp
Y3NDb250ZXh0R0xPcGVuR0w6OkdyYXBoaWNzQ29udGV4dEdMT3BlbkdMKToKKyAgICAgICAgQWRk
IGFuIGV4YW1wbGUgdXNlIHdoZXJlIHRoZSBjb25zdHJ1Y3RvciB0YWtlcyB0aGUgbWVtb3J5IGF0
dHJpYnV0aW9uIHRva2VuLgorICAgICAgICBUaGlzIG1heSBiZSBuZWVkZWQgaW4gdGhlIGZ1dHVy
ZSB3aGVuIHRoZSB0b2tlbiBpcyB1c2VkIGFzIGEgcGFyYW1ldGVyIGluCisgICAgICAgIHRoZSBB
TkdMRSBjb250ZXh0IGNyZWF0aW9uLgorICAgICAgICBVc2UgdGhlIHRva2VuIGluIGNyZWF0aW5n
IHRoZSBJT1N1cmZhY2UuIFRoaXMgZml4ZXMgYSBidWcgd2hlcmUgV2ViR0wKKyAgICAgICAgYmFj
ayBidWZmZXJzIHdvdWxkIG5vdCBiZSBhdHRyaWJ1dGVkIHVudGlsIHRoZXkgd2VyZSBzZW50IHRv
IFdQLgorCiAyMDIxLTEyLTAyICBBbnR0aSBLb2l2aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KIAog
ICAgICAgICBbOmhhcygpIHBzZXVkby1jbGFzc10gSW52YWxpZGF0aW9uIGluIG5vbi1zdWJqZWN0
IHBvc2l0aW9uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9X
ZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDI1OTMyMzhiNmMwNzdjODc4M2NiOGFkOTI4MGVhOGM0NzNj
MDYxMjEuLjEwYTYwMmZkOTEzMDBkMDI3ZDUxM2EwYWYzNzA2YWE2ODcyMzQ5MmYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsNTQgQEAKKzIwMjEtMTItMDIgIEtpbW1vIEtpbm51bmVuICA8a2tpbm51bmVu
QGFwcGxlLmNvbT4KKworICAgICAgICBJT1N1cmZhY2UgbWVtb3J5IGF0dHJpYnV0aW9uIGlzIGhh
cmQgdG8gdXNlIGluIGNvbnN0cnVjdG9ycworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MjMyOTg4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgUmVtb3ZlIGlmZGVmcyBhbmQgZGlyZWN0IHVzZSBvZiB0YXNrX2lk
X3Rva2VuX3QuCisgICAgICAgIEluc3RlYWQsIHVzZSBXZWJDb3JlOjpQcm9jZXNzSWRlbnRpZmll
ci4gVGhpcyB3YXkgdGhlCisgICAgICAgIGNyb3NzLXBsYXRmb3JtIGNvZGUgaXMgZWFzaWVyIHRv
IGF1dGhvci4KKworICAgICAgICAqIEdQVVByb2Nlc3MvR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vz
cy5jcHA6CisgICAgICAgIChXZWJLaXQ6OkdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OkdQVUNv
bm5lY3Rpb25Ub1dlYlByb2Nlc3MpOgorICAgICAgICAqIEdQVVByb2Nlc3MvR1BVQ29ubmVjdGlv
blRvV2ViUHJvY2Vzcy5oOgorICAgICAgICAoV2ViS2l0OjpHUFVDb25uZWN0aW9uVG9XZWJQcm9j
ZXNzOjp3ZWJQcm9jZXNzSWRlbnRpdHkgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpHUFVDb25u
ZWN0aW9uVG9XZWJQcm9jZXNzOjp3ZWJQcm9jZXNzSWRlbnRpdHlUb2tlbiBjb25zdCk6IERlbGV0
ZWQuCisgICAgICAgICogR1BVUHJvY2Vzcy9ncmFwaGljcy9HUFVQcm9jZXNzR3JhcGhpY3NDb250
ZXh0R0wuaDoKKyAgICAgICAgKiBHUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZUdyYXBoaWNzQ29u
dGV4dEdMQ29jb2EuY3BwOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVHcmFwaGljc0NvbnRleHRH
TENvY29hOjpSZW1vdGVHcmFwaGljc0NvbnRleHRHTENvY29hKToKKyAgICAgICAgKFdlYktpdDo6
UmVtb3RlR3JhcGhpY3NDb250ZXh0R0xDb2NvYTo6cGxhdGZvcm1Xb3JrUXVldWVJbml0aWFsaXpl
KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlR3JhcGhpY3NDb250ZXh0R0xDb2NvYTo6cHJlcGFy
ZUZvckRpc3BsYXkpOgorICAgICAgICAqIEdQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlSW1hZ2VC
dWZmZXIuaDoKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlSW1hZ2VCdWZmZXI6OnNldE93bmVyc2hp
cElkZW50aXR5KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlSW1hZ2VCdWZmZXI6OnNldFByb2Nl
c3NPd25lcnNoaXApOiBEZWxldGVkLgorICAgICAgICAqIEdQVVByb2Nlc3MvZ3JhcGhpY3MvUmVt
b3RlUmVuZGVyaW5nQmFja2VuZC5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlbmRlcmlu
Z0JhY2tlbmQ6OlJlbW90ZVJlbmRlcmluZ0JhY2tlbmQpOgorICAgICAgICAoV2ViS2l0OjpSZW1v
dGVSZW5kZXJpbmdCYWNrZW5kOjpjcmVhdGVJbWFnZUJ1ZmZlcldpdGhRdWFsaWZpZWRJZGVudGlm
aWVyKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVuZGVyaW5nQmFja2VuZDo6Z2V0RGF0YVVS
TEZvckltYWdlQnVmZmVyV2l0aFF1YWxpZmllZElkZW50aWZpZXIpOgorICAgICAgICAqIEdQVVBy
b2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5oOgorICAgICAgICAqIEdQVVBy
b2Nlc3Mvd2VicnRjL0xpYldlYlJUQ0NvZGVjc1Byb3h5Lm1tOgorICAgICAgICAoV2ViS2l0OjpG
dW5jdGlvbjx2b2lkKToKKyAgICAgICAgKiBTaGFyZWQvR1BVUHJvY2Vzc0Nvbm5lY3Rpb25QYXJh
bWV0ZXJzLmg6CisgICAgICAgIChXZWJLaXQ6OkdQVVByb2Nlc3NDb25uZWN0aW9uUGFyYW1ldGVy
czo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6R1BVUHJvY2Vzc0Nvbm5lY3Rpb25Q
YXJhbWV0ZXJzOjpkZWNvZGUpOgorICAgICAgICAqIFNoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2Rl
cnMuY3BwOgorICAgICAgICAqIFNoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuaDoKKyAgICAg
ICAgKiBVSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6OlNvdXJjZVByb3h5
OjpTb3VyY2VQcm94eSk6CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2Vy
UHJveHk6OlNvdXJjZVByb3h5OjpzZXRTaG91bGRBcHBseVJvdGF0aW9uKToKKyAgICAgICAgKFdl
YktpdDo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6Y3JlYXRlTWVkaWFTb3VyY2VGb3JD
YXB0dXJlRGV2aWNlV2l0aENvbnN0cmFpbnRzKToKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlh
Q2FwdHVyZU1hbmFnZXJQcm94eTo6Y2xvbmUpOgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFD
YXB0dXJlTWFuYWdlclByb3h5OjpTb3VyY2VQcm94eTo6c2V0V2ViUHJvY2Vzc0lkZW50aXR5VG9r
ZW4pOiBEZWxldGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJl
TWFuYWdlclByb3h5Lmg6CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2Vy
UHJveHk6OkNvbm5lY3Rpb25Qcm94eTo6cmVzb3VyY2VPd25lciBjb25zdCk6CisgICAgICAgIChX
ZWJLaXQ6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6OkNvbm5lY3Rpb25Qcm94eTo6d2Vi
UHJvY2Vzc0lkZW50aXR5VG9rZW4gY29uc3QpOiBEZWxldGVkLgorICAgICAgICAqIFdlYlByb2Nl
c3MvR1BVL2dyYXBoaWNzL2NvY29hL0ltYWdlQnVmZmVyU2hhcmVhYmxlTWFwcGVkSU9TdXJmYWNl
QmFja2VuZC5jcHA6CisgICAgICAgIChXZWJLaXQ6OkltYWdlQnVmZmVyU2hhcmVhYmxlTWFwcGVk
SU9TdXJmYWNlQmFja2VuZDo6c2V0T3duZXJzaGlwSWRlbnRpdHkpOgorICAgICAgICAoV2ViS2l0
OjpJbWFnZUJ1ZmZlclNoYXJlYWJsZU1hcHBlZElPU3VyZmFjZUJhY2tlbmQ6OnNldFByb2Nlc3NP
d25lcnNoaXApOiBEZWxldGVkLgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL2Nv
Y29hL0ltYWdlQnVmZmVyU2hhcmVhYmxlTWFwcGVkSU9TdXJmYWNlQmFja2VuZC5oOgorICAgICAg
ICAqIFdlYlByb2Nlc3MvY29jb2EvV2ViUHJvY2Vzc0NvY29hLm1tOgorICAgICAgICAoV2ViS2l0
OjpXZWJQcm9jZXNzOjpwbGF0Zm9ybUluaXRpYWxpemVHUFVQcm9jZXNzQ29ubmVjdGlvblBhcmFt
ZXRlcnMpOgogMjAyMS0xMi0wMiAgUGVyIEFybmUgVm9sbGFuICA8cHZvbGxhbkBhcHBsZS5jb20+
CiAKICAgICAgICAgW1dQXSBTdHJlbmd0aGVuIHNhbmRib3ggd2hlbiBBcHBDYWNoZSBpcyBkaXNh
YmxlZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZSBiL1NvdXJjZS9X
ZWJDb3JlL0hlYWRlcnMuY21ha2UKaW5kZXggOTUxOTljY2Q4MzY4NmYxYjlkOWJmZWFjNmI2MDk1
M2I0MGMxYjc5ZS4uY2M4NDJiMjgyOTkxOTZjMGY1ODg2ZjU1NThmMGRmMzAyZjVkMDA4ZCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9IZWFkZXJzLmNtYWtlCkBAIC0xMjc4LDYgKzEyNzgsNyBAQCBzZXQoV2ViQ29yZV9QUklWQVRF
X0ZSQU1FV09SS19IRUFERVJTCiAgICAgcGxhdGZvcm0vUG9wdXBNZW51Q2xpZW50LmgKICAgICBw
bGF0Zm9ybS9Qb3B1cE1lbnVTdHlsZS5oCiAgICAgcGxhdGZvcm0vUHJvY2Vzc0lkZW50aWZpZXIu
aAorICAgIHBsYXRmb3JtL1Byb2Nlc3NJZGVudGl0eS5oCiAgICAgcGxhdGZvcm0vUHJvY2Vzc1F1
YWxpZmllZC5oCiAgICAgcGxhdGZvcm0vUHJvbWlzZWRBdHRhY2htZW50SW5mby5oCiAgICAgcGxh
dGZvcm0vUHVibGljU3VmZml4LmgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMu
dHh0IGIvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKaW5kZXggZmU0OTVlMWZmMmM1ZGY0Mzk4
MmMyNWViN2Y2ZTViNjQxZjhlMTI2Yy4uNGMzNmNjNzRlNmMzMTA5YTY4MTUxMGUzMDE3M2M1OTQ0
YTllZTdhMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKKysrIGIvU291
cmNlL1dlYkNvcmUvU291cmNlcy50eHQKQEAgLTE4ODEsNiArMTg4MSw3IEBAIHBsYXRmb3JtL1Bs
YXRmb3JtU3RyYXRlZ2llcy5jcHAKIHBsYXRmb3JtL1BsYXRmb3JtV2hlZWxFdmVudC5jcHAKIHBs
YXRmb3JtL1ByZXZpZXdDb252ZXJ0ZXIuY3BwCiBwbGF0Zm9ybS9Qcm9jZXNzSWRlbnRpZmllci5j
cHAKK3BsYXRmb3JtL1Byb2Nlc3NJZGVudGl0eS5jcHAKIHBsYXRmb3JtL1JlZmVycmVyUG9saWN5
LmNwcAogcGxhdGZvcm0vUmVtb3RlQ29tbWFuZExpc3RlbmVyLmNwcAogcGxhdGZvcm0vUnVudGlt
ZUFwcGxpY2F0aW9uQ2hlY2tzLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGM4YzFlMzdmZDQ0NWJhZGI1NGU0Y2VjMzg2NDdh
YTY5Mjg4ZTRlYWUuLjhkNzc1NTEzYzkxY2MxOTZlYTZlODY1NTRhZDhmNWU5ZTk3NDQxM2IgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oK
QEAgLTIzNzUsNiArMjM3NSw3IEBACiAJCTdCQjM0QTQ4MjUzNzc2Q0EwMDAyOUQwOCAvKiBHcmFw
aGljc0NvbnRleHRHTEltYWdlRXh0cmFjdG9yLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA3QkIzNEE0NTI1Mzc3NkM2MDAwMjlEMDggLyogR3JhcGhpY3ND
b250ZXh0R0xJbWFnZUV4dHJhY3Rvci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFBy
aXZhdGUsICk7IH07IH07CiAJCTdCQjY4MEJBMjVCQTFCRTQwMDJCODczOCAvKiBHcmFwaGljc0No
ZWNrc01hYy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
N0JCNjgwQjgyNUJBMUJFNDAwMkI4NzM4IC8qIEdyYXBoaWNzQ2hlY2tzTWFjLmggKi87IHNldHRp
bmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJN0JEREEzMUYyNzRGQTAy
MTAwMzg2NTlFIC8qIEdyYXBoaWNzQ29udGV4dEdMQ29jb2EuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdCRERBMzFEMjc0RjlEQTUwMDM4NjU5RSAvKiBH
cmFwaGljc0NvbnRleHRHTENvY29hLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKKwkJN0JEREEzNEMyNzVBMDEzMTAwMzg2NTlFIC8qIFByb2Nlc3NJZGVu
dGl0eS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0JE
REEzNDkyNzVBMDEzMDAwMzg2NTlFIC8qIFByb2Nlc3NJZGVudGl0eS5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTdCRTc0MjczODFGQTkwNkZCQjRG
MEYyQyAvKiBKU1NWR0dyYXBoaWNzRWxlbWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gOTUwQzRDMDJCRUQ4OTM2RjgxOEUyRjk5IC8qIEpTU1ZHR3Jh
cGhpY3NFbGVtZW50LmggKi87IH07CiAJCTdCRkY1OUY0Mjc1NzcyNjcwMDc3M0QzOSAvKiBEaXNw
bGF5Q29uZmlndXJhdGlvbk1vbml0b3IuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDdCRkY1OUVGMjc1NzcxRTgwMDc3M0QzOSAvKiBEaXNwbGF5Q29uZmln
dXJhdGlvbk1vbml0b3IuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OwogCQk3QzAyOUM2RTI0OTNDOEY4MDAyNjgyMDQgLyogQ29sb3JUeXBlcy5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0MwMjlDNkQyNDkzQzhG
ODAwMjY4MjA0IC8qIENvbG9yVHlwZXMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQ
cml2YXRlLCApOyB9OyB9OwpAQCAtMTEzODIsNiArMTEzODMsOCBAQAogCQk3QkNENDJEQzI3MDVD
OTQ5MDBFQjIxMjcgLyogQU5HTEVVdGlsaXRpZXNDb2NvYS5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBBTkdM
RVV0aWxpdGllc0NvY29hLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdCRERBMzFD
Mjc0RjlEQTQwMDM4NjU5RSAvKiBHcmFwaGljc0NvbnRleHRHTENvY29hLm1tICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gR3JhcGhpY3NDb250ZXh0R0xDb2NvYS5tbTsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0JEREEzMUQyNzRGOURBNTAwMzg2NTlFIC8q
IEdyYXBoaWNzQ29udGV4dEdMQ29jb2EuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gR3JhcGhpY3NDb250ZXh0R0xDb2NvYS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQk3QkREQTM0OTI3NUEwMTMwMDAzODY1OUUgLyogUHJvY2Vzc0lkZW50aXR5LmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFByb2Nlc3NJZGVudGl0eS5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQk3QkREQTM0QjI3NUEwMTMwMDAzODY1OUUgLyogUHJvY2Vzc0lkZW50
aXR5LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFByb2Nlc3NJZGVu
dGl0eS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdCRTcyNjVCMjU3NjNCOEQw
MEU4NUQ5OCAvKiBSZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5QmFzZS5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBSZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5QmFzZS5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdCRkY1OUVGMjc1NzcxRTgwMDc3M0QzOSAvKiBEaXNwbGF5
Q29uZmlndXJhdGlvbk1vbml0b3IuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBleHBs
aWNpdEZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuaDsgZmlsZUVuY29kaW5nID0gNDsgcGF0aCA9
IERpc3BsYXlDb25maWd1cmF0aW9uTW9uaXRvci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk3QkZGNTlGMTI3NTc3MUU4MDA3NzNEMzkgLyogRGlzcGxheUNvbmZpZ3VyYXRpb25Nb25p
dG9yLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IERpc3BsYXlDb25m
aWd1cmF0aW9uTW9uaXRvci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0yOTc0
Niw2ICsyOTc0OSw4IEBACiAJCQkJQTFBREFGN0MyMzYwRkQzRTAwOUNCNzc2IC8qIFByZXZpZXdD
b252ZXJ0ZXJQcm92aWRlci5oICovLAogCQkJCTUxRjY0NUQyMUZFQ0RCQzgwMEI1NERFRCAvKiBQ
cm9jZXNzSWRlbnRpZmllci5jcHAgKi8sCiAJCQkJNTFGNjQ1RDMxRkVDREJDODAwQjU0REVEIC8q
IFByb2Nlc3NJZGVudGlmaWVyLmggKi8sCisJCQkJN0JEREEzNEIyNzVBMDEzMDAwMzg2NTlFIC8q
IFByb2Nlc3NJZGVudGl0eS5jcHAgKi8sCisJCQkJN0JEREEzNDkyNzVBMDEzMDAwMzg2NTlFIC8q
IFByb2Nlc3NJZGVudGl0eS5oICovLAogCQkJCTFDQzU0QUZCMjcwRjkyREEwMDVCRjhCRSAvKiBQ
cm9jZXNzUXVhbGlmaWVkLmggKi8sCiAJCQkJRjQ3QTYzM0MxRkY2RkQ1MDAwODFCM0NDIC8qIFBy
b21pc2VkQXR0YWNobWVudEluZm8uaCAqLywKIAkJCQkwMDgxRkVGRDE2QjBBMjQ0MDA4QUFBN0Eg
LyogUHVibGljU3VmZml4LmggKi8sCkBAIC0zNjI1Nyw2ICszNjI2Miw3IEBACiAJCQkJQjcxRkU2
REYxMTA5MUNCMzAwREFFRjc3IC8qIFByaW50Q29udGV4dC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
NkIwQTA3RjIyMUZBNEI1QzAwRDU3MzkxIC8qIFByaXZhdGVDbGlja01lYXN1cmVtZW50LmggaW4g
SGVhZGVycyAqLywKIAkJCQk1MUY2NDVENTFGRUNEQkNFMDBCNTRERUQgLyogUHJvY2Vzc0lkZW50
aWZpZXIuaCBpbiBIZWFkZXJzICovLAorCQkJCTdCRERBMzRDMjc1QTAxMzEwMDM4NjU5RSAvKiBQ
cm9jZXNzSWRlbnRpdHkuaCBpbiBIZWFkZXJzICovLAogCQkJCUE4RUE3RUJDMEExOTQ1RDAwMEE4
RUY1RiAvKiBQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCTFDQzU0
QUZFMjcwRjk2QUUwMDVCRjhCRSAvKiBQcm9jZXNzUXVhbGlmaWVkLmggaW4gSGVhZGVycyAqLywK
IAkJCQlFNDIwNTAxNzIxNDE5MDFCMDA2NkVGM0IgLyogUHJvY2Vzc1dhcm1pbmcuaCBpbiBIZWFk
ZXJzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTG9nZ2luZy5oIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTG9nZ2luZy5oCmluZGV4IDNmYmU0MTdiZTk4MWI3NWU3
NzlkZTIzOGZjNGJlMDVhNmQ3MzBmYWEuLmRjMGY1MDk4Yjg3ZjE4NDU1MjViZTNjMGJhNDFmNzY3
NWIxNDA0N2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xvZ2dpbmcuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Mb2dnaW5nLmgKQEAgLTk0LDYgKzk0LDcgQEAg
bmFtZXNwYWNlIFdlYkNvcmUgewogICAgIE0oUGx1Z2lucykgXAogICAgIE0oUG9wdXBCbG9ja2lu
ZykgXAogICAgIE0oUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQpIFwKKyAgICBNKFByb2Nlc3MpIFwK
ICAgICBNKFByb2dyZXNzKSBcCiAgICAgTShSZW1vdGVJbnNwZWN0b3IpIFwKICAgICBNKFJlcXVl
c3RBbmltYXRpb25GcmFtZSkgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
UHJvY2Vzc0lkZW50aXR5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Byb2Nlc3NJZGVu
dGl0eS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uNzE5ZDAzNjg5MTMxNjgwMTg3NGRkMzcwZmIyYmIzMjEwZjM1
NjY4OQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Byb2Nlc3NJ
ZGVudGl0eS5jcHAKQEAgLTAsMCArMSw3OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9S
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJQcm9jZXNz
SWRlbnRpdHkuaCIKKworI2luY2x1ZGUgIkxvZ2dpbmcuaCIKKworI2lmIEhBVkUoVEFTS19JREVO
VElUWV9UT0tFTikKKyNpbmNsdWRlIDxtYWNoL21hY2guaD4KKyNlbmRpZgorCituYW1lc3BhY2Ug
V2ViQ29yZSB7CisKK1JlZlB0cjxQcm9jZXNzSWRlbnRpdHk+IFByb2Nlc3NJZGVudGl0eTo6Y3Jl
YXRlKEhhbmRsZSYmIGhhbmRsZSkKK3sKKyNpZiBIQVZFKFRBU0tfSURFTlRJVFlfVE9LRU4pCisg
ICAgaWYgKGhhbmRsZSkKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBQcm9jZXNzSWRlbnRp
dHkoV1RGTW92ZShoYW5kbGUpKSk7CisjZWxzZQorICAgIFVOVVNFRF9QQVJBTShoYW5kbGUpOwor
I2VuZGlmCisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKK1Byb2Nlc3NJZGVudGl0eTo6UHJvY2Vz
c0lkZW50aXR5KEhhbmRsZSYmIGhhbmRsZSkKKyAgICA6IG1faGFuZGxlKFdURk1vdmUoaGFuZGxl
KSkKK3sKK30KKworUHJvY2Vzc0lkZW50aXR5OjpIYW5kbGUgUHJvY2Vzc0lkZW50aXR5OjpoYW5k
bGVGb3JDdXJyZW50UHJvY2VzcygpCit7CisgICAgUHJvY2Vzc0lkZW50aXR5OjpIYW5kbGUgcmVz
dWx0OworI2lmIEhBVkUoVEFTS19JREVOVElUWV9UT0tFTikKKyAgICB0YXNrX2lkX3Rva2VuX3Qg
aWRlbnRpdHlUb2tlbjsKKyAgICBrZXJuX3JldHVybl90IGtyID0gdGFza19jcmVhdGVfaWRlbnRp
dHlfdG9rZW4obWFjaF90YXNrX3NlbGYoKSwgJmlkZW50aXR5VG9rZW4pOworICAgIGlmIChrciA9
PSBLRVJOX1NVQ0NFU1MpCisgICAgICAgIHJlc3VsdCA9IE1hY2hTZW5kUmlnaHQ6OmFkb3B0KGlk
ZW50aXR5VG9rZW4pOworICAgIGVsc2UKKyAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoUHJvY2Vz
cywgInRhc2tfY3JlYXRlX2lkZW50aXR5X3Rva2VuKCkgZmFpbGVkOiAle3ByaXZhdGV9cyAoJXgp
IiwgbWFjaF9lcnJvcl9zdHJpbmcoa3IpLCBrcik7CisjZW5kaWYKKyAgICByZXR1cm4gcmVzdWx0
OworfQorCitjb25zdCBQcm9jZXNzSWRlbnRpdHk6OkhhbmRsZSYgUHJvY2Vzc0lkZW50aXR5Ojpo
YW5kbGUoKSBjb25zdAoreworICAgIHJldHVybiBtX2hhbmRsZTsKK30KKworI2lmIEhBVkUoVEFT
S19JREVOVElUWV9UT0tFTikKK3Rhc2tfaWRfdG9rZW5fdCBQcm9jZXNzSWRlbnRpdHk6OnRhc2tJ
ZFRva2VuKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9oYW5kbGUuc2VuZFJpZ2h0KCk7Cit9Cisj
ZW5kaWYKKworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUHJvY2Vzc0lk
ZW50aXR5LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Qcm9jZXNzSWRlbnRpdHkuaApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi4wY2EwMTkzYjEyZTU0NDM2YzZmZWJiYzZlYmUzNGUwMTYzNzYwZmEwCi0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUHJvY2Vzc0lkZW50aXR5LmgKQEAg
LTAsMCArMSw2MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBP
RiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAq
IFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSA8d3RmL1RocmVhZFNhZmVSZWZDb3VudGVkLmg+
CisKKyNpZiBIQVZFKFRBU0tfSURFTlRJVFlfVE9LRU4pCisjaW5jbHVkZSA8d3RmL01hY2hTZW5k
UmlnaHQuaD4KKyNlbHNlCisjaW5jbHVkZSA8dmFyaWFudD4KKyNlbmRpZgorCituYW1lc3BhY2Ug
V2ViQ29yZSB7CisKKy8vIE9iamVjdCB0byBhY2Nlc3MgcHJvb2Ygb2YgcHJvY2VzcyBpZGVudGl0
eS4KKy8vIFByb2Nlc3NJZGVudGlmaWVyIGlkZW50aWZpZXMgYSBwcm9jZXNzLgorLy8gUHJvY2Vz
c0lkZW50aXR5IGdyYW50cyBhY2Nlc3MgdG8gdGhlIGlkZW50aXR5LgorY2xhc3MgV0VCQ09SRV9F
WFBPUlQgUHJvY2Vzc0lkZW50aXR5IGZpbmFsIDogcHVibGljIFRocmVhZFNhZmVSZWZDb3VudGVk
PFByb2Nlc3NJZGVudGl0eT4geworcHVibGljOgorI2lmIEhBVkUoVEFTS19JREVOVElUWV9UT0tF
TikKKyAgICB1c2luZyBIYW5kbGUgPSBNYWNoU2VuZFJpZ2h0OworI2Vsc2UKKyAgICB1c2luZyBI
YW5kbGUgPSBzdGQ6Om1vbm9zdGF0ZTsKKyNlbmRpZgorICAgIHN0YXRpYyBSZWZQdHI8UHJvY2Vz
c0lkZW50aXR5PiBjcmVhdGUoSGFuZGxlJiYpOworICAgIHN0YXRpYyBIYW5kbGUgaGFuZGxlRm9y
Q3VycmVudFByb2Nlc3MoKTsKKyAgICBjb25zdCBIYW5kbGUmIGhhbmRsZSgpIGNvbnN0OworCisj
aWYgSEFWRShUQVNLX0lERU5USVRZX1RPS0VOKQorICAgIHRhc2tfaWRfdG9rZW5fdCB0YXNrSWRU
b2tlbigpIGNvbnN0OworI2VuZGlmCitwcml2YXRlOgorICAgIFByb2Nlc3NJZGVudGl0eShIYW5k
bGUmJik7CisKKyAgICBIYW5kbGUgbV9oYW5kbGU7Cit9OworCit9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9SZW1vdGVWaWRlb1NhbXBsZS5oIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvUmVtb3RlVmlkZW9TYW1wbGUuaAppbmRleCBhNjE3
MGIzMjhmYzQ0YWNlNjkzZGNkYjM1ZWU0ZDNjZTY4NzMzOGExLi4wZjViYWVhODU2ZTNmMWE4Y2Ux
NjViMjAzODY1Yzk2NDQzNTQyNTYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9SZW1vdGVWaWRlb1NhbXBsZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL1JlbW90ZVZpZGVvU2FtcGxlLmgKQEAgLTM3LDYgKzM3LDggQEAgdHlwZWRl
ZiBzdHJ1Y3QgX19DVkJ1ZmZlciogQ1ZQaXhlbEJ1ZmZlclJlZjsKIAogbmFtZXNwYWNlIFdlYkNv
cmUgewogCitjbGFzcyBQcm9jZXNzSWRlbnRpdHk7CisKIGNsYXNzIFJlbW90ZVZpZGVvU2FtcGxl
IHsKIHB1YmxpYzoKICAgICBSZW1vdGVWaWRlb1NhbXBsZSgpID0gZGVmYXVsdDsKQEAgLTQ4LDkg
KzUwLDcgQEAgcHVibGljOgogICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBzdGQ6OnVuaXF1ZV9w
dHI8UmVtb3RlVmlkZW9TYW1wbGU+IGNyZWF0ZShSZXRhaW5QdHI8Q1ZQaXhlbEJ1ZmZlclJlZj4m
JiwgTWVkaWFUaW1lJiYgcHJlc2VudGF0aW9uVGltZSwgTWVkaWFTYW1wbGU6OlZpZGVvUm90YXRp
b24gPSBNZWRpYVNhbXBsZTo6VmlkZW9Sb3RhdGlvbjo6Tm9uZSk7CiAgICAgV0VCQ09SRV9FWFBP
UlQgSU9TdXJmYWNlUmVmIHN1cmZhY2UoKSBjb25zdDsKIAotI2lmIEhBVkUoSU9TVVJGQUNFX1NF
VF9PV05FUlNISVBfSURFTlRJVFkpCi0gICAgdm9pZCBzZXRPd25lcnNoaXBJZGVudGl0eSh0YXNr
X2lkX3Rva2VuX3QgbmV3T3duZXIpOwotI2VuZGlmCisgICAgdm9pZCBzZXRPd25lcnNoaXBJZGVu
dGl0eShQcm9jZXNzSWRlbnRpdHkqIHJlc291cmNlT3duZXIpOwogCiAgICAgY29uc3QgTWVkaWFU
aW1lJiB0aW1lKCkgY29uc3QgeyByZXR1cm4gbV90aW1lOyB9CiAgICAgdWludDMyX3QgdmlkZW9G
b3JtYXQoKSBjb25zdCB7IHJldHVybiBtX3ZpZGVvRm9ybWF0OyB9CkBAIC0xMTksMTMgKzExOSwx
MSBAQCBwcml2YXRlOgogICAgIGJvb2wgbV9taXJyb3JlZCB7IGZhbHNlIH07CiB9OwogCi0jaWYg
SEFWRShJT1NVUkZBQ0VfU0VUX09XTkVSU0hJUF9JREVOVElUWSkKLWlubGluZSB2b2lkIFJlbW90
ZVZpZGVvU2FtcGxlOjpzZXRPd25lcnNoaXBJZGVudGl0eSh0YXNrX2lkX3Rva2VuX3QgbmV3T3du
ZXIpCitpbmxpbmUgdm9pZCBSZW1vdGVWaWRlb1NhbXBsZTo6c2V0T3duZXJzaGlwSWRlbnRpdHko
UHJvY2Vzc0lkZW50aXR5KiByZXNvdXJjZU93bmVyKQogewogICAgIGlmIChtX2lvU3VyZmFjZSkK
LSAgICAgICAgbV9pb1N1cmZhY2UtPnNldE93bmVyc2hpcElkZW50aXR5KG5ld093bmVyKTsKKyAg
ICAgICAgbV9pb1N1cmZhY2UtPnNldE93bmVyc2hpcElkZW50aXR5KHJlc291cmNlT3duZXIpOwog
fQotI2VuZGlmCiAKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvYW5nbGUvR3JhcGhpY3NDb250ZXh0R0xBTkdMRS5oIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvYW5nbGUvR3JhcGhpY3NDb250ZXh0R0xBTkdMRS5oCmluZGV4IDQzZDVk
MjkwZGQ2ODJjYTU5NjU2MDExMGE2NmE1YTdkYThmODUyYTAuLjFlMzY0NjcxZDM1ZWI1NTA1MzY1
ZWJhOWM4N2Y3Y2FjZGZlZjk1MzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2FuZ2xlL0dyYXBoaWNzQ29udGV4dEdMQU5HTEUuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hbmdsZS9HcmFwaGljc0NvbnRleHRHTEFOR0xFLmgKQEAg
LTQyNyw2ICs0MjcsNyBAQCBwcm90ZWN0ZWQ6CiAgICAgc3RkOjp1bmlxdWVfcHRyPEV4dGVuc2lv
bnNHTEFOR0xFPiBtX2V4dGVuc2lvbnM7CiAKICNpZiBQTEFURk9STShDT0NPQSkKKyAgICAvLyBG
SVhNRTogTW92ZSB0aGVzZSB0byBHcmFwaGljc0NvbnRleHRHTENvY29hLgogICAgIEdyYXBoaWNz
Q29udGV4dEdMSU9TdXJmYWNlU3dhcENoYWluIG1fc3dhcENoYWluOwogICAgIEVHTERpc3BsYXkg
bV9kaXNwbGF5T2JqIHsgbnVsbHB0ciB9OwogICAgIFBsYXRmb3JtR3JhcGhpY3NDb250ZXh0R0wg
bV9jb250ZXh0T2JqIHsgbnVsbHB0ciB9OwpAQCAtNDM2LDYgKzQzNyw3IEBAIHByb3RlY3RlZDoK
ICAgICAvLyBXaGVuIHByZXNlcnZlRHJhd2luZ0J1ZmZlciA9PSB0cnVlLCB0aGlzIGlzIGJsaXR0
ZWQgdG8gZHVyaW5nIGRpc3BsYXkgcHJlcGFyZS4KICAgICBzdGQ6OnVuaXF1ZV9wdHI8SU9TdXJm
YWNlPiBtX2Rpc3BsYXlCdWZmZXJCYWNraW5nOwogICAgIHZvaWQqIG1fZGlzcGxheUJ1ZmZlclBi
dWZmZXIgeyBudWxscHRyIH07CisgICAgUmVmUHRyPFByb2Nlc3NJZGVudGl0eT4gbV9yZXNvdXJj
ZU93bmVyOwogI2VuZGlmCiAjaWYgVVNFKENPT1JESU5BVEVEX0dSQVBISUNTKQogICAgIEdDR0x1
aW50IG1fY29tcG9zaXRvclRleHR1cmUgeyAwIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9HcmFwaGljc0NvbnRleHRHTENvY29hLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9HcmFwaGljc0NvbnRleHRHTENvY29h
LmgKaW5kZXggYTY0OGZjZDJlYzRmMGI5YjUxZTMwMjM2OWUwMTI0OWI1MmQ5YjRlNC4uZGI0MWEw
NWRjOGUxNzEwMzA2MTU4NzA3ZmIyZmYxNzk4MGM4Mzc0NSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvR3JhcGhpY3NDb250ZXh0R0xDb2NvYS5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0dyYXBoaWNzQ29udGV4
dEdMQ29jb2EuaApAQCAtNDIsOSArNDIsMTEgQEAgY2xhc3MgR3JhcGhpY3NDb250ZXh0R0xDVkNv
Y29hOwogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK2NsYXNzIFByb2Nlc3NJZGVudGl0eTsKKwog
Y2xhc3MgV0VCQ09SRV9FWFBPUlQgR3JhcGhpY3NDb250ZXh0R0xDb2NvYSA6IHB1YmxpYyBHcmFw
aGljc0NvbnRleHRHTEFOR0xFIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmUHRyPEdyYXBoaWNz
Q29udGV4dEdMQ29jb2E+IGNyZWF0ZShXZWJDb3JlOjpHcmFwaGljc0NvbnRleHRHTEF0dHJpYnV0
ZXMmJik7CisgICAgc3RhdGljIFJlZlB0cjxHcmFwaGljc0NvbnRleHRHTENvY29hPiBjcmVhdGUo
V2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0R0xBdHRyaWJ1dGVzJiYsIFJlZlB0cjxQcm9jZXNzSWRl
bnRpdHk+JiYgcmVzb3VyY2VPd25lcik7CiAgICAgfkdyYXBoaWNzQ29udGV4dEdMQ29jb2EoKTsK
ICAgICBJT1N1cmZhY2UqIGRpc3BsYXlCdWZmZXIoKTsKICAgICB2b2lkIG1hcmtEaXNwbGF5QnVm
ZmVySW5Vc2UoKTsKQEAgLTc2LDkgKzc4LDggQEAgcHVibGljOgogICAgIHZvaWQgdXBkYXRlQ29u
dGV4dE9uRGlzcGxheVJlY29uZmlndXJhdGlvbigpOwogI2VuZGlmCiBwcm90ZWN0ZWQ6Ci0gICAg
R3JhcGhpY3NDb250ZXh0R0xDb2NvYShXZWJDb3JlOjpHcmFwaGljc0NvbnRleHRHTEF0dHJpYnV0
ZXMmJik7CisgICAgR3JhcGhpY3NDb250ZXh0R0xDb2NvYShXZWJDb3JlOjpHcmFwaGljc0NvbnRl
eHRHTEF0dHJpYnV0ZXMmJiwgUmVmUHRyPFByb2Nlc3NJZGVudGl0eT4mJiByZXNvdXJjZU93bmVy
KTsKICAgICBib29sIGlzVmFsaWQoKSBjb25zdDsKLQogI2lmIEVOQUJMRShWSURFTykKICAgICBz
dGQ6OnVuaXF1ZV9wdHI8R3JhcGhpY3NDb250ZXh0R0xDVkNvY29hPiBtX2N2OwogI2VuZGlmCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9HcmFwaGlj
c0NvbnRleHRHTENvY29hLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29j
b2EvR3JhcGhpY3NDb250ZXh0R0xDb2NvYS5tbQppbmRleCBhNGFlZTNkZmFiMGY3N2EyZmVjNWI1
Y2RmZGNmYjgyZTQwZTQxMWU2Li41NzQxYzBkODVhMWViMGQzMjUzYTM2ZTIxOGQ1NmE0MTllY2U1
NmIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9H
cmFwaGljc0NvbnRleHRHTENvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2NvY29hL0dyYXBoaWNzQ29udGV4dEdMQ29jb2EubW0KQEAgLTM1LDYgKzM1LDcgQEAK
ICNpbXBvcnQgIkdyYXBoaWNzQ29udGV4dEdMSU9TdXJmYWNlU3dhcENoYWluLmgiCiAjaW1wb3J0
ICJHcmFwaGljc0NvbnRleHRHTE9wZW5HTE1hbmFnZXIuaCIKICNpbXBvcnQgIkxvZ2dpbmcuaCIK
KyNpbXBvcnQgIlByb2Nlc3NJZGVudGl0eS5oIgogI2ltcG9ydCAiUnVudGltZUFwcGxpY2F0aW9u
Q2hlY2tzLmgiCiAjaW1wb3J0IDxDb3JlR3JhcGhpY3MvQ0dCaXRtYXBDb250ZXh0Lmg+CiAjaW1w
b3J0IDxNZXRhbC9NZXRhbC5oPgpAQCAtMTk0LDE5ICsxOTUsMjIgQEAgc3RhdGljIGJvb2wgbmVl
ZHNFQUdMT25NYWMoKQogfQogI2VuZGlmCiAKLVJlZlB0cjxHcmFwaGljc0NvbnRleHRHTENvY29h
PiBHcmFwaGljc0NvbnRleHRHTENvY29hOjpjcmVhdGUoR3JhcGhpY3NDb250ZXh0R0xBdHRyaWJ1
dGVzJiYgYXR0cmlidXRlcykKK1JlZlB0cjxHcmFwaGljc0NvbnRleHRHTENvY29hPiBHcmFwaGlj
c0NvbnRleHRHTENvY29hOjpjcmVhdGUoR3JhcGhpY3NDb250ZXh0R0xBdHRyaWJ1dGVzJiYgYXR0
cmlidXRlcywgUmVmUHRyPFByb2Nlc3NJZGVudGl0eT4mJiByZXNvdXJjZU93bmVyKQogewotICAg
IGF1dG8gY29udGV4dCA9IGFkb3B0UmVmKCpuZXcgR3JhcGhpY3NDb250ZXh0R0xDb2NvYShXVEZN
b3ZlKGF0dHJpYnV0ZXMpKSk7CisgICAgYXV0byBjb250ZXh0ID0gYWRvcHRSZWYoKm5ldyBHcmFw
aGljc0NvbnRleHRHTENvY29hKFdURk1vdmUoYXR0cmlidXRlcyksIFdURk1vdmUocmVzb3VyY2VP
d25lcikpKTsKICAgICBpZiAoIWNvbnRleHQtPmlzVmFsaWQoKSkKICAgICAgICAgcmV0dXJuIG51
bGxwdHI7CiAgICAgcmV0dXJuIGNvbnRleHQ7CiB9CiAKLUdyYXBoaWNzQ29udGV4dEdMQ29jb2E6
OkdyYXBoaWNzQ29udGV4dEdMQ29jb2EoR3JhcGhpY3NDb250ZXh0R0xBdHRyaWJ1dGVzJiYgY3Jl
YXRpb25BdHRyaWJ1dGVzKQorR3JhcGhpY3NDb250ZXh0R0xDb2NvYTo6R3JhcGhpY3NDb250ZXh0
R0xDb2NvYShHcmFwaGljc0NvbnRleHRHTEF0dHJpYnV0ZXMmJiBjcmVhdGlvbkF0dHJpYnV0ZXMs
IFJlZlB0cjxQcm9jZXNzSWRlbnRpdHk+JiYgcmVzb3VyY2VPd25lcikKICAgICA6IEdyYXBoaWNz
Q29udGV4dEdMQU5HTEUoV1RGTW92ZShjcmVhdGlvbkF0dHJpYnV0ZXMpKQogewogICAgIGlmICgh
aXNWYWxpZCgpKQogICAgICAgICByZXR1cm47CisgICAgLy8gRklYTUU6IE1vdmUgdGhpcyB0byBp
bml0aWFsaXplciBsaXN0IG9uY2UgbV9yZXNvdXJjZU93bmVyIG1vdmVzIHRvIEdyYXBoaWNzQ29u
dGV4dEdMQ29jb2EuCisgICAgbV9yZXNvdXJjZU93bmVyID0gV1RGTW92ZShyZXNvdXJjZU93bmVy
KTsKKwogI2lmIFBMQVRGT1JNKE1BQykKICAgICBhdXRvIGF0dHJpYnV0ZXMgPSBjb250ZXh0QXR0
cmlidXRlcygpOwogICAgIGlmICghYXR0cmlidXRlcy51c2VNZXRhbCAmJiBhdHRyaWJ1dGVzLmVm
ZmVjdGl2ZVBvd2VyUHJlZmVyZW5jZSgpID09IEdyYXBoaWNzQ29udGV4dEdMUG93ZXJQcmVmZXJl
bmNlOjpIaWdoUGVyZm9ybWFuY2UpCkBAIC01NTgsNyArNTYyLDggQEAgYm9vbCBHcmFwaGljc0Nv
bnRleHRHTEFOR0xFOjphbGxvY2F0ZUFuZEJpbmREaXNwbGF5QnVmZmVyQmFja2luZygpCiAgICAg
YXV0byBiYWNraW5nID0gSU9TdXJmYWNlOjpjcmVhdGUoZ2V0SW50ZXJuYWxGcmFtZWJ1ZmZlclNp
emUoKSwgRGVzdGluYXRpb25Db2xvclNwYWNlOjpTUkdCKCkpOwogICAgIGlmICghYmFja2luZykK
ICAgICAgICAgcmV0dXJuIGZhbHNlOwotCisgICAgaWYgKG1fcmVzb3VyY2VPd25lcikKKyAgICAg
ICAgYmFja2luZy0+c2V0T3duZXJzaGlwSWRlbnRpdHkobV9yZXNvdXJjZU93bmVyLmdldCgpKTsK
ICAgICBiYWNraW5nLT5taWdyYXRlQ29sb3JTcGFjZVRvUHJvcGVydGllcygpOwogCiAgICAgY29u
c3QgYm9vbCB1c2luZ0FscGhhID0gY29udGV4dEF0dHJpYnV0ZXMoKS5hbHBoYTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0lPU3VyZmFjZS5oIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvSU9TdXJmYWNlLmgKaW5kZXgg
NTY1MjQ3ODIyZGJhMjlmNzYwMGI5NDA3ZTZmNGFjYjhjMWEwNmFhYy4uMGM0M2NhNGY4MDRkMjYw
YzYxMDVlYjkyYjYxMTA5MWUyYzI1MzJhMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY29jb2EvSU9TdXJmYWNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY29jb2EvSU9TdXJmYWNlLmgKQEAgLTQ2LDYgKzQ2LDcgQEAgbmFtZXNw
YWNlIFdlYkNvcmUgewogY2xhc3MgR3JhcGhpY3NDb250ZXh0OwogY2xhc3MgSG9zdFdpbmRvdzsK
IGNsYXNzIEltYWdlQnVmZmVyOworY2xhc3MgUHJvY2Vzc0lkZW50aXR5OwogCiBlbnVtIGNsYXNz
IFBpeGVsRm9ybWF0IDogdWludDhfdDsKIGVudW0gY2xhc3MgVm9sYXRpbGl0eVN0YXRlIDogdWlu
dDhfdDsKQEAgLTE1OSw5ICsxNjAsNyBAQCBwdWJsaWM6CiAgICAgV0VCQ09SRV9FWFBPUlQgc3Rh
dGljIHZvaWQgY29udmVydFRvRm9ybWF0KHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpJT1N1cmZh
Y2U+JiYgaW5TdXJmYWNlLCBGb3JtYXQsIEZ1bmN0aW9uPHZvaWQoc3RkOjp1bmlxdWVfcHRyPFdl
YkNvcmU6OklPU3VyZmFjZT4pPiYmKTsKICNlbmRpZiAvLyBIQVZFKElPU1VSRkFDRV9BQ0NFTEVS
QVRPUikKIAotI2lmIEhBVkUoSU9TVVJGQUNFX1NFVF9PV05FUlNISVBfSURFTlRJVFkpCi0gICAg
V0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRPd25lcnNoaXBJZGVudGl0eSh0YXNrX2lkX3Rva2VuX3Qg
bmV3T3duZXIpOwotI2VuZGlmCisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRPd25lcnNoaXBJ
ZGVudGl0eShQcm9jZXNzSWRlbnRpdHkqIHJlc291cmNlT3duZXIpOwogCiAgICAgdm9pZCBtaWdy
YXRlQ29sb3JTcGFjZVRvUHJvcGVydGllcygpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9JT1N1cmZhY2UubW0gYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9JT1N1cmZhY2UubW0KaW5kZXggMDExMTY1Y2UxMWFiY2U2
NzVjNGI0N2JmOTE1ZDRjODFlNmNlZTk5NS4uMTViZjY4ZjdmZTVhNjk4NjdmY2M5ZDU2YTZlNWJk
NGY2YmMzZDMwMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y29jb2EvSU9TdXJmYWNlLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2NvY29hL0lPU3VyZmFjZS5tbQpAQCAtMzQsNiArMzQsNyBAQAogI2ltcG9ydCAiSW1hZ2VCdWZm
ZXIuaCIKICNpbXBvcnQgIkxvZ2dpbmcuaCIKICNpbXBvcnQgIlBsYXRmb3JtU2NyZWVuLmgiCisj
aW1wb3J0ICJQcm9jZXNzSWRlbnRpdHkuaCIKICNpbXBvcnQgPHBhbC9zcGkvY2cvQ29yZUdyYXBo
aWNzU1BJLmg+CiAjaW1wb3J0IDx3dGYvQXNzZXJ0aW9ucy5oPgogI2ltcG9ydCA8d3RmL01hY2hT
ZW5kUmlnaHQuaD4KQEAgLTQ4NCwxNCArNDg1LDE3IEBAIHZvaWQgSU9TdXJmYWNlOjpjb252ZXJ0
VG9Gb3JtYXQoc3RkOjp1bmlxdWVfcHRyPElPU3VyZmFjZT4mJiBpblN1cmZhY2UsIEZvcm1hdCBm
CiAKICNlbmRpZiAvLyBIQVZFKElPU1VSRkFDRV9BQ0NFTEVSQVRPUikKIAotI2lmIEhBVkUoSU9T
VVJGQUNFX1NFVF9PV05FUlNISVBfSURFTlRJVFkpCi12b2lkIElPU3VyZmFjZTo6c2V0T3duZXJz
aGlwSWRlbnRpdHkodGFza19pZF90b2tlbl90IG5ld093bmVyKQordm9pZCBJT1N1cmZhY2U6OnNl
dE93bmVyc2hpcElkZW50aXR5KFByb2Nlc3NJZGVudGl0eSogcmVzb3VyY2VPd25lcikKIHsKLSAg
ICBhdXRvIHJlc3VsdCA9IElPU3VyZmFjZVNldE93bmVyc2hpcElkZW50aXR5KG1fc3VyZmFjZS5n
ZXQoKSwgbmV3T3duZXIsIGtJT1N1cmZhY2VNZW1vcnlMZWRnZXJUYWdHcmFwaGljcywgMCk7Cisj
aWYgSEFWRShJT1NVUkZBQ0VfU0VUX09XTkVSU0hJUF9JREVOVElUWSkgJiYgSEFWRShUQVNLX0lE
RU5USVRZX1RPS0VOKQorICAgIHRhc2tfaWRfdG9rZW5fdCBvd25lclRhc2tJZFRva2VuID0gcmVz
b3VyY2VPd25lciA/IHJlc291cmNlT3duZXItPnRhc2tJZFRva2VuKCkgOiAwOworICAgIGF1dG8g
cmVzdWx0ID0gSU9TdXJmYWNlU2V0T3duZXJzaGlwSWRlbnRpdHkobV9zdXJmYWNlLmdldCgpLCBv
d25lclRhc2tJZFRva2VuLCBrSU9TdXJmYWNlTWVtb3J5TGVkZ2VyVGFnR3JhcGhpY3MsIDApOwog
ICAgIGlmIChyZXN1bHQgIT0ga0lPUmV0dXJuU3VjY2VzcykKLSAgICAgICAgUkVMRUFTRV9MT0df
RVJST1IoSU9TdXJmYWNlLCAiSU9TdXJmYWNlOjpzZXRPd25lcnNoaXBJZGVudGl0eTogRmFpbGVk
IHRvIGNsYWltIG93bmVyc2hpcCBvZiBJT1N1cmZhY2UgJXAsIG5ld093bmVyOiAlZCwgZXJyb3I6
ICVkIiwgbV9zdXJmYWNlLmdldCgpLCAoaW50KW5ld093bmVyLCByZXN1bHQpOwotfQorICAgICAg
ICBSRUxFQVNFX0xPR19FUlJPUihJT1N1cmZhY2UsICJJT1N1cmZhY2U6OnNldE93bmVyc2hpcElk
ZW50aXR5OiBGYWlsZWQgdG8gY2xhaW0gb3duZXJzaGlwIG9mIElPU3VyZmFjZSAlcCwgdGFzayBp
ZCB0b2tlbjogJWQsIGVycm9yOiAlZCIsIG1fc3VyZmFjZS5nZXQoKSwgKGludClvd25lclRhc2tJ
ZFRva2VuLCByZXN1bHQpOworI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0ocmVzb3VyY2VPd25lcik7
CiAjZW5kaWYKK30KIAogdm9pZCBJT1N1cmZhY2U6Om1pZ3JhdGVDb2xvclNwYWNlVG9Qcm9wZXJ0
aWVzKCkKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nv
Y29hL1dlYlByb2Nlc3NHcmFwaGljc0NvbnRleHRHTENvY29hLm1tIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvV2ViUHJvY2Vzc0dyYXBoaWNzQ29udGV4dEdMQ29jb2Eu
bW0KaW5kZXggMjU0MjYyMzBkZmVkYWQyYzVlYjkxMDQyNGEwOGE3MmUzNzE3YjJkNy4uOGQ1ZDI1
YWIxMGI0NWUzZjlhNmU4MzhhZTEwOTQxZTZmYzBlNWUzOCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvV2ViUHJvY2Vzc0dyYXBoaWNzQ29udGV4dEdM
Q29jb2EubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvV2Vi
UHJvY2Vzc0dyYXBoaWNzQ29udGV4dEdMQ29jb2EubW0KQEAgLTI5LDYgKzI5LDcgQEAKICNpZiBF
TkFCTEUoV0VCR0wpCiAjaW1wb3J0ICJHcmFwaGljc0NvbnRleHRHTENvY29hLmgiIC8vIE5PTElO
VAogI2ltcG9ydCAiR3JhcGhpY3NDb250ZXh0R0xPcGVuR0xNYW5hZ2VyLmgiCisjaW1wb3J0ICJQ
cm9jZXNzSWRlbnRpdHkuaCIKICNpbXBvcnQgIldlYkdMTGF5ZXIuaCIKICNpbXBvcnQgPHd0Zi9C
bG9ja09iakNFeGNlcHRpb25zLmg+CiAKQEAgLTc3LDcgKzc4LDcgQEAgcHJpdmF0ZToKIH07CiAK
IFdlYlByb2Nlc3NHcmFwaGljc0NvbnRleHRHTENvY29hOjpXZWJQcm9jZXNzR3JhcGhpY3NDb250
ZXh0R0xDb2NvYShHcmFwaGljc0NvbnRleHRHTEF0dHJpYnV0ZXMmJiBhdHRyaWJ1dGVzKQotICAg
IDogR3JhcGhpY3NDb250ZXh0R0xDb2NvYShXVEZNb3ZlKGF0dHJpYnV0ZXMpKQorICAgIDogR3Jh
cGhpY3NDb250ZXh0R0xDb2NvYShXVEZNb3ZlKGF0dHJpYnV0ZXMpLCB7IH0pCiAgICAgLCBtX3dl
YkdMTGF5ZXIoY3JlYXRlV2ViR0xMYXllcihjb250ZXh0QXR0cmlidXRlcygpKSkKIHsKICNpZiBQ
TEFURk9STShNQUMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvR1BVQ29u
bmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvR1BVQ29u
bmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAKaW5kZXggNTJhZTg4MTkzNzFhM2VkZDYwY2Q3MjBjZDA4
NGJiM2M4NTdmYTdjZC4uMWVmOWE2YjI1ODE2MzM3ZjM4ZDliYjBiM2M3NDg5ZmNkMWM5NDg1YyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlBy
b2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9uVG9X
ZWJQcm9jZXNzLmNwcApAQCAtMTk5LDEyICsxOTksMTAgQEAgcHJpdmF0ZToKICAgICB9CiAjZW5k
aWYKIAotI2lmIEhBVkUoSU9TVVJGQUNFX1NFVF9PV05FUlNISVBfSURFTlRJVFkpCi0gICAgc3Rk
OjpvcHRpb25hbDx0YXNrX2lkX3Rva2VuX3Q+IHdlYlByb2Nlc3NJZGVudGl0eVRva2VuKCkgY29u
c3QgZmluYWwKKyAgICBSZWZQdHI8UHJvY2Vzc0lkZW50aXR5PiByZXNvdXJjZU93bmVyKCkgY29u
c3QgZmluYWwKICAgICB7Ci0gICAgICAgIHJldHVybiBtX3Byb2Nlc3Mud2ViUHJvY2Vzc0lkZW50
aXR5VG9rZW4oKTsKKyAgICAgICAgcmV0dXJuIG1fcHJvY2Vzcy53ZWJQcm9jZXNzSWRlbnRpdHko
KTsKICAgICB9Ci0jZW5kaWYKIAogICAgIEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MmIG1fcHJv
Y2VzczsKIH07CkBAIC0yMjAsOSArMjE4LDcgQEAgR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6
R1BVQ29ubmVjdGlvblRvV2ViUHJvY2VzcyhHUFVQcm9jZXNzJiBncHVQcm9jZXNzLCBXZWIKICAg
ICA6IG1fY29ubmVjdGlvbihJUEM6OkNvbm5lY3Rpb246OmNyZWF0ZVNlcnZlckNvbm5lY3Rpb24o
Y29ubmVjdGlvbklkZW50aWZpZXIsICp0aGlzKSkKICAgICAsIG1fZ3B1UHJvY2VzcyhncHVQcm9j
ZXNzKQogICAgICwgbV93ZWJQcm9jZXNzSWRlbnRpZmllcih3ZWJQcm9jZXNzSWRlbnRpZmllcikK
LSNpZiBIQVZFKFRBU0tfSURFTlRJVFlfVE9LRU4pCi0gICAgLCBtX3dlYlByb2Nlc3NJZGVudGl0
eVRva2VuKFdURk1vdmUocGFyYW1ldGVycy53ZWJQcm9jZXNzSWRlbnRpdHlUb2tlbikpCi0jZW5k
aWYKKyAgICAsIG1fd2ViUHJvY2Vzc0lkZW50aXR5KFByb2Nlc3NJZGVudGl0eTo6Y3JlYXRlKFdU
Rk1vdmUocGFyYW1ldGVycy53ZWJQcm9jZXNzSWRlbnRpdHlIYW5kbGUpKSkKICAgICAsIG1fcmVt
b3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHkobWFrZVVuaXF1ZVJlZjxSZW1vdGVNZWRpYVBsYXll
ck1hbmFnZXJQcm94eT4oKnRoaXMpKQogICAgICwgbV9zZXNzaW9uSUQoc2Vzc2lvbklEKQogI2lm
IFBMQVRGT1JNKENPQ09BKSAmJiBVU0UoTElCV0VCUlRDKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9HUFVQcm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaCBiL1NvdXJjZS9XZWJL
aXQvR1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmgKaW5kZXggYWU3OTUwNTI1
ODYwZGUzY2Y2YTJiMTc4OGZlMzVhNWVhYmRhNTY3ZC4uZTA0MjhiODVlNWNmZGFjMmM0MDY1YTkx
MDNiOWM1NWU2YjZjYjVhOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQ
VUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mv
R1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oCkBAIC0zOSw2ICszOSw3IEBACiAjaW5jbHVkZSA8
V2ViQ29yZS9Ob3dQbGF5aW5nTWFuYWdlci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUGFnZUlkZW50
aWZpZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Byb2Nlc3NJZGVudGlmaWVyLmg+CisjaW5jbHVk
ZSA8V2ViQ29yZS9Qcm9jZXNzSWRlbnRpdHkuaD4KICNpbmNsdWRlIDxwYWwvU2Vzc2lvbklELmg+
CiAjaW5jbHVkZSA8d3RmL0xvZ2dlci5oPgogI2luY2x1ZGUgPHd0Zi9NYWNoU2VuZFJpZ2h0Lmg+
CkBAIC0xNDcsMTAgKzE0OCw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGRpc3BhdGNoRGlzcGxheVdh
c1JlY29uZmlndXJlZEZvclRlc3RpbmcoKSB7IGRpc3BhdGNoRGlzcGxheVdhc1JlY29uZmlndXJl
ZCgpOyB9OwogI2VuZGlmCiAKLSNpZiBIQVZFKFRBU0tfSURFTlRJVFlfVE9LRU4pCi0gICAgdGFz
a19pZF90b2tlbl90IHdlYlByb2Nlc3NJZGVudGl0eVRva2VuKCkgY29uc3QgeyByZXR1cm4gc3Rh
dGljX2Nhc3Q8dGFza19pZF90b2tlbl90PihtX3dlYlByb2Nlc3NJZGVudGl0eVRva2VuLnNlbmRS
aWdodCgpKTsgfQotI2VuZGlmCi0KKyAgICBSZWZQdHI8V2ViQ29yZTo6UHJvY2Vzc0lkZW50aXR5
PiB3ZWJQcm9jZXNzSWRlbnRpdHkoKSBjb25zdCB7IHJldHVybiBtX3dlYlByb2Nlc3NJZGVudGl0
eTsgfQogI2lmIEVOQUJMRShFTkNSWVBURURfTUVESUEpCiAgICAgUmVtb3RlQ0RNRmFjdG9yeVBy
b3h5JiBjZG1GYWN0b3J5UHJveHkoKTsKICNlbmRpZgpAQCAtMjczLDkgKzI3MSw3IEBAIHByaXZh
dGU6CiAgICAgSVBDOjpNZXNzYWdlUmVjZWl2ZXJNYXAgbV9tZXNzYWdlUmVjZWl2ZXJNYXA7CiAg
ICAgUmVmPEdQVVByb2Nlc3M+IG1fZ3B1UHJvY2VzczsKICAgICBjb25zdCBXZWJDb3JlOjpQcm9j
ZXNzSWRlbnRpZmllciBtX3dlYlByb2Nlc3NJZGVudGlmaWVyOwotI2lmIEhBVkUoVEFTS19JREVO
VElUWV9UT0tFTikKLSAgICBNYWNoU2VuZFJpZ2h0IG1fd2ViUHJvY2Vzc0lkZW50aXR5VG9rZW47
Ci0jZW5kaWYKKyAgICBSZWZQdHI8V2ViQ29yZTo6UHJvY2Vzc0lkZW50aXR5PiBtX3dlYlByb2Nl
c3NJZGVudGl0eTsKICNpZiBFTkFCTEUoV0VCX0FVRElPKQogICAgIHN0ZDo6dW5pcXVlX3B0cjxS
ZW1vdGVBdWRpb0Rlc3RpbmF0aW9uTWFuYWdlcj4gbV9yZW1vdGVBdWRpb0Rlc3RpbmF0aW9uTWFu
YWdlcjsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBo
aWNzL1JlbW90ZUdyYXBoaWNzQ29udGV4dEdMQ29jb2EuY3BwIGIvU291cmNlL1dlYktpdC9HUFVQ
cm9jZXNzL2dyYXBoaWNzL1JlbW90ZUdyYXBoaWNzQ29udGV4dEdMQ29jb2EuY3BwCmluZGV4IDEw
YTUzNjI5OWNmMjNlYjlmODZmNTcyN2U4NTIzODNjZThhMDQwMDguLmE1MDMzZWY2ZTg5NTY0NTc0
NGVjZmMxMmU1YWY2ZGZlNmQ3ZTkyYjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJv
Y2Vzcy9ncmFwaGljcy9SZW1vdGVHcmFwaGljc0NvbnRleHRHTENvY29hLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xDb2Nv
YS5jcHAKQEAgLTI5LDYgKzI5LDcgQEAKICNpZiBFTkFCTEUoR1BVX1BST0NFU1MpICYmIEVOQUJM
RShXRUJHTCkgJiYgUExBVEZPUk0oQ09DT0EpCiAKICNpbmNsdWRlICJHUFVDb25uZWN0aW9uVG9X
ZWJQcm9jZXNzLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9Qcm9jZXNzSWRlbnRpdHkuaD4KICNpbmNs
dWRlIDx3dGYvTWFjaFNlbmRSaWdodC5oPgogCiBuYW1lc3BhY2UgV2ViS2l0IHsKQEAgLTQ1LDkg
KzQ2LDcgQEAgcHVibGljOgogICAgIHZvaWQgcGxhdGZvcm1Xb3JrUXVldWVJbml0aWFsaXplKFdl
YkNvcmU6OkdyYXBoaWNzQ29udGV4dEdMQXR0cmlidXRlcyYmKSBmaW5hbDsKICAgICB2b2lkIHBy
ZXBhcmVGb3JEaXNwbGF5KENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV1RGOjpNYWNoU2VuZFJpZ2h0
JiYpPiYmKSBmaW5hbDsKIHByaXZhdGU6Ci0jaWYgSEFWRShJT1NVUkZBQ0VfU0VUX09XTkVSU0hJ
UF9JREVOVElUWSkKLSAgICB0YXNrX2lkX3Rva2VuX3QgbV93ZWJQcm9jZXNzSWRlbnRpdHlUb2tl
bjsKLSNlbmRpZgorICAgIFJlZlB0cjxQcm9jZXNzSWRlbnRpdHk+IG1fcmVzb3VyY2VPd25lcjsK
IH07CiAKIH0KQEAgLTYxLDkgKzYwLDcgQEAgUmVmPFJlbW90ZUdyYXBoaWNzQ29udGV4dEdMPiBS
ZW1vdGVHcmFwaGljc0NvbnRleHRHTDo6Y3JlYXRlKEdQVUNvbm5lY3Rpb25Ub1dlYlAKIAogUmVt
b3RlR3JhcGhpY3NDb250ZXh0R0xDb2NvYTo6UmVtb3RlR3JhcGhpY3NDb250ZXh0R0xDb2NvYShH
UFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzJiBncHVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLCBHcmFw
aGljc0NvbnRleHRHTElkZW50aWZpZXIgZ3JhcGhpY3NDb250ZXh0R0xJZGVudGlmaWVyLCBSZW1v
dGVSZW5kZXJpbmdCYWNrZW5kJiByZW5kZXJpbmdCYWNrZW5kLCBJUEM6OlN0cmVhbUNvbm5lY3Rp
b25CdWZmZXImJiBzdHJlYW0pCiAgICAgOiBSZW1vdGVHcmFwaGljc0NvbnRleHRHTChncHVDb25u
ZWN0aW9uVG9XZWJQcm9jZXNzLCBncmFwaGljc0NvbnRleHRHTElkZW50aWZpZXIsIHJlbmRlcmlu
Z0JhY2tlbmQsIFdURk1vdmUoc3RyZWFtKSkKLSNpZiBIQVZFKElPU1VSRkFDRV9TRVRfT1dORVJT
SElQX0lERU5USVRZKQotICAgICwgbV93ZWJQcm9jZXNzSWRlbnRpdHlUb2tlbihncHVDb25uZWN0
aW9uVG9XZWJQcm9jZXNzLndlYlByb2Nlc3NJZGVudGl0eVRva2VuKCkpCi0jZW5kaWYKKyAgICAs
IG1fcmVzb3VyY2VPd25lcihncHVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLndlYlByb2Nlc3NJZGVu
dGl0eSgpKQogewogCiB9CkBAIC03MSw3ICs2OCw3IEBAIFJlbW90ZUdyYXBoaWNzQ29udGV4dEdM
Q29jb2E6OlJlbW90ZUdyYXBoaWNzQ29udGV4dEdMQ29jb2EoR1BVQ29ubmVjdGlvblRvV2ViUHJv
CiB2b2lkIFJlbW90ZUdyYXBoaWNzQ29udGV4dEdMQ29jb2E6OnBsYXRmb3JtV29ya1F1ZXVlSW5p
dGlhbGl6ZShXZWJDb3JlOjpHcmFwaGljc0NvbnRleHRHTEF0dHJpYnV0ZXMmJiBhdHRyaWJ1dGVz
KQogewogICAgIGFzc2VydElzQ3VycmVudChtX3N0cmVhbVRocmVhZCk7Ci0gICAgbV9jb250ZXh0
ID0gR3JhcGhpY3NDb250ZXh0R0xDb2NvYTo6Y3JlYXRlKFdURk1vdmUoYXR0cmlidXRlcykpOwor
ICAgIG1fY29udGV4dCA9IEdyYXBoaWNzQ29udGV4dEdMQ29jb2E6OmNyZWF0ZShXVEZNb3ZlKGF0
dHJpYnV0ZXMpLCBSZWZQdHIgeyBtX3Jlc291cmNlT3duZXIgfSApOwogfQogCiB2b2lkIFJlbW90
ZUdyYXBoaWNzQ29udGV4dEdMQ29jb2E6OnByZXBhcmVGb3JEaXNwbGF5KENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoV1RGOjpNYWNoU2VuZFJpZ2h0JiYpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQpAQCAt
ODIsMTAgKzc5LDYgQEAgdm9pZCBSZW1vdGVHcmFwaGljc0NvbnRleHRHTENvY29hOjpwcmVwYXJl
Rm9yRGlzcGxheShDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdURjoKICAgICBNYWNoU2VuZFJpZ2h0
IHNlbmRSaWdodDsKICAgICBpZiAoZGlzcGxheUJ1ZmZlcikgewogICAgICAgICBtX2NvbnRleHQt
Pm1hcmtEaXNwbGF5QnVmZmVySW5Vc2UoKTsKLSNpZiBIQVZFKElPU1VSRkFDRV9TRVRfT1dORVJT
SElQX0lERU5USVRZKQotICAgICAgICAvLyBNYXJrIHRoZSBJT1N1cmZhY2UgYXMgYmVpbmcgb3du
ZWQgYnkgdGhlIFdlYlByb2Nlc3MgZXZlbiB0aG91Z2ggaXQgd2FzIGNvbnN0cnVjdGVkIGJ5IHRo
ZSBHUFVQcm9jZXNzIHNvIHRoYXQgSmV0c2FtIGtub3dzIHdoaWNoIHByb2Nlc3MgdG8ga2lsbC4K
LSAgICAgICAgZGlzcGxheUJ1ZmZlci0+c2V0T3duZXJzaGlwSWRlbnRpdHkobV93ZWJQcm9jZXNz
SWRlbnRpdHlUb2tlbik7Ci0jZW5kaWYKICAgICAgICAgc2VuZFJpZ2h0ID0gZGlzcGxheUJ1ZmZl
ci0+Y3JlYXRlU2VuZFJpZ2h0KCk7CiAgICAgfQogICAgIGNvbXBsZXRpb25IYW5kbGVyKFdURk1v
dmUoc2VuZFJpZ2h0KSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3Jh
cGhpY3MvUmVtb3RlSW1hZ2VCdWZmZXIuaCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFw
aGljcy9SZW1vdGVJbWFnZUJ1ZmZlci5oCmluZGV4IGEzZDQ5NGZlOGJmNmExOTY0N2VmMTkwYzlk
YjQwNDJhZWNlNjcyMjAuLjE5OTI1OGI2M2Q2OGU4OGJjYTRhOTAyMzZmZWQ0MDQ4MDQxYjYyMGMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVJbWFn
ZUJ1ZmZlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVJ
bWFnZUJ1ZmZlci5oCkBAIC02OSwxMyArNjksMTEgQEAgcHVibGljOgogICAgICAgICAgICAgY29u
dGV4dCgpLnJlc3RvcmUoKTsKICAgICB9CiAKLSNpZiBIQVZFKElPU1VSRkFDRV9TRVRfT1dORVJT
SElQX0lERU5USVRZKQotICAgIHZvaWQgc2V0UHJvY2Vzc093bmVyc2hpcCh0YXNrX2lkX3Rva2Vu
X3QgbmV3T3duZXIpCisgICAgdm9pZCBzZXRPd25lcnNoaXBJZGVudGl0eShXZWJDb3JlOjpQcm9j
ZXNzSWRlbnRpdHkqIHJlc291cmNlT3duZXIpCiAgICAgewogICAgICAgICBpZiAobV9iYWNrZW5k
KQotICAgICAgICAgICAgbV9iYWNrZW5kLT5zZXRQcm9jZXNzT3duZXJzaGlwKG5ld093bmVyKTsK
KyAgICAgICAgICAgIG1fYmFja2VuZC0+c2V0T3duZXJzaGlwSWRlbnRpdHkocmVzb3VyY2VPd25l
cik7CiAgICAgfQotI2VuZGlmCiAKIHByaXZhdGU6CiAgICAgZnJpZW5kIGNsYXNzIFJlbW90ZVJl
bmRlcmluZ0JhY2tlbmQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3Jh
cGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5jcHAgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nl
c3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5jcHAKaW5kZXggZmNjNzJiZjIwYTJm
YjJjNmI5OWJhMGVlNmY4MjA2YTRjYWI2ZmZjMC4uMTYwZmVjMmE1NTJlNjY5NDEyODg2NjIxYTUy
ZGRkZGZlM2Q3NjhlNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBo
aWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJv
Y2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmNwcApAQCAtODQsNiArODQsNyBA
QCBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kOjpSZW1vdGVSZW5kZXJpbmdCYWNrZW5kKEdQVUNvbm5l
Y3Rpb25Ub1dlYlByb2Nlc3MmIGdwdUNvbgogICAgICwgbV9zdHJlYW1Db25uZWN0aW9uKElQQzo6
U3RyZWFtU2VydmVyQ29ubmVjdGlvbjo6Y3JlYXRlKGdwdUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3Mu
Y29ubmVjdGlvbigpLCBXVEZNb3ZlKHN0cmVhbUJ1ZmZlciksIG1fd29ya1F1ZXVlLmdldCgpKSkK
ICAgICAsIG1fcmVtb3RlUmVzb3VyY2VDYWNoZShncHVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLndl
YlByb2Nlc3NJZGVudGlmaWVyKCkpCiAgICAgLCBtX2dwdUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3Mo
Z3B1Q29ubmVjdGlvblRvV2ViUHJvY2VzcykKKyAgICAsIG1fcmVzb3VyY2VPd25lcihncHVDb25u
ZWN0aW9uVG9XZWJQcm9jZXNzLndlYlByb2Nlc3NJZGVudGl0eSgpKQogICAgICwgbV9yZW5kZXJp
bmdCYWNrZW5kSWRlbnRpZmllcihjcmVhdGlvblBhcmFtZXRlcnMuaWRlbnRpZmllcikKIHsKICAg
ICBBU1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOwpAQCAtMTczLDEwICsxNzQsOSBAQCB2b2lkIFJl
bW90ZVJlbmRlcmluZ0JhY2tlbmQ6OmNyZWF0ZUltYWdlQnVmZmVyV2l0aFF1YWxpZmllZElkZW50
aWZpZXIoY29uc3QgRmxvYQogCiAgICAgaWYgKHJlbmRlcmluZ01vZGUgPT0gUmVuZGVyaW5nTW9k
ZTo6QWNjZWxlcmF0ZWQpIHsKICAgICAgICAgaWYgKGF1dG8gYWNjZWxlcmF0ZWRJbWFnZUJ1ZmZl
ciA9IEFjY2VsZXJhdGVkUmVtb3RlSW1hZ2VCdWZmZXI6OmNyZWF0ZShsb2dpY2FsU2l6ZSwgcmVz
b2x1dGlvblNjYWxlLCBjb2xvclNwYWNlLCBwaXhlbEZvcm1hdCwgKnRoaXMsIGltYWdlQnVmZmVy
UmVzb3VyY2VJZGVudGlmaWVyKSkgewotI2lmIEhBVkUoSU9TVVJGQUNFX1NFVF9PV05FUlNISVBf
SURFTlRJVFkpCiAgICAgICAgICAgICAvLyBNYXJrIHRoZSBJT1N1cmZhY2UgYXMgYmVpbmcgb3du
ZWQgYnkgdGhlIFdlYlByb2Nlc3MgZXZlbiB0aG91Z2ggaXQgd2FzIGNvbnN0cnVjdGVkIGJ5IHRo
ZSBHUFVQcm9jZXNzIHNvIHRoYXQgSmV0c2FtIGtub3dzIHdoaWNoIHByb2Nlc3MgdG8ga2lsbC4K
LSAgICAgICAgICAgIGFjY2VsZXJhdGVkSW1hZ2VCdWZmZXItPnNldFByb2Nlc3NPd25lcnNoaXAo
bV9ncHVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLT53ZWJQcm9jZXNzSWRlbnRpdHlUb2tlbigpKTsK
LSNlbmRpZgorICAgICAgICAgICAgaWYgKG1fcmVzb3VyY2VPd25lcikKKyAgICAgICAgICAgICAg
ICBhY2NlbGVyYXRlZEltYWdlQnVmZmVyLT5zZXRPd25lcnNoaXBJZGVudGl0eShtX3Jlc291cmNl
T3duZXIuZ2V0KCkpOwogICAgICAgICAgICAgaW1hZ2VCdWZmZXIgPSBXVEZNb3ZlKGFjY2VsZXJh
dGVkSW1hZ2VCdWZmZXIpOwogICAgICAgICB9CiAgICAgfQpAQCAtMjY4LDYgKzI2OCw3IEBAIHZv
aWQgUmVtb3RlUmVuZGVyaW5nQmFja2VuZDo6Z2V0RGF0YVVSTEZvckltYWdlQnVmZmVyV2l0aFF1
YWxpZmllZElkZW50aWZpZXIoY29uCiAgICAgU3RyaW5nIHVybFN0cmluZzsKICAgICBpZiAoYXV0
byBpbWFnZUJ1ZmZlciA9IG1fcmVtb3RlUmVzb3VyY2VDYWNoZS5jYWNoZWRJbWFnZUJ1ZmZlcihy
ZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIpKQogICAgICAgICB1cmxTdHJpbmcgPSBpbWFnZUJ1
ZmZlci0+dG9EYXRhVVJMKG1pbWVUeXBlLCBxdWFsaXR5LCBwcmVzZXJ2ZVJlc29sdXRpb24pOwor
ICAgIFdURkxvZ0Fsd2F5cygiREFUQVVSTDolcyIsIHVybFN0cmluZy51dGY4KCkuZGF0YSgpKTsK
ICAgICBjb21wbGV0aW9uSGFuZGxlcihXVEZNb3ZlKHVybFN0cmluZykpOwogfQogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFj
a2VuZC5oIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmlu
Z0JhY2tlbmQuaAppbmRleCA5ODliYzkzMGY0ODZlMWM2ZGU3ZDE2NmE0MzRhYjVlZTA2YWM5ZWY1
Li45ODk4YzY2ZmMzNWQwZDExOWFmMzMyNGNmMDA3MzRiNjU0ZDRkOWJiIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdC
YWNrZW5kLmgKQEAgLTUzLDYgKzUzLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogY2xhc3MgRGVz
dGluYXRpb25Db2xvclNwYWNlOwogY2xhc3MgRmxvYXRTaXplOwogY2xhc3MgTmF0aXZlSW1hZ2U7
CitjbGFzcyBQcm9jZXNzSWRlbnRpdHk7CiAKIGVudW0gY2xhc3MgUmVuZGVyaW5nTW9kZSA6IGJv
b2w7CiAKQEAgLTEyOCw2ICsxMjksNyBAQCBwcml2YXRlOgogICAgIFJlZjxJUEM6OlN0cmVhbVNl
cnZlckNvbm5lY3Rpb24+IG1fc3RyZWFtQ29ubmVjdGlvbjsKICAgICBSZW1vdGVSZXNvdXJjZUNh
Y2hlIG1fcmVtb3RlUmVzb3VyY2VDYWNoZTsKICAgICBSZWY8R1BVQ29ubmVjdGlvblRvV2ViUHJv
Y2Vzcz4gbV9ncHVDb25uZWN0aW9uVG9XZWJQcm9jZXNzOworICAgIFJlZlB0cjxXZWJDb3JlOjpQ
cm9jZXNzSWRlbnRpdHk+IG1fcmVzb3VyY2VPd25lcjsKICAgICBSZW5kZXJpbmdCYWNrZW5kSWRl
bnRpZmllciBtX3JlbmRlcmluZ0JhY2tlbmRJZGVudGlmaWVyOwogICAgIElQQzo6U2VtYXBob3Jl
IG1fZ2V0UGl4ZWxCdWZmZXJTZW1hcGhvcmU7CiAgICAgUmVmUHRyPFNoYXJlZE1lbW9yeT4gbV9n
ZXRQaXhlbEJ1ZmZlclNoYXJlZE1lbW9yeTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BV
UHJvY2Vzcy93ZWJydGMvTGliV2ViUlRDQ29kZWNzUHJveHkubW0gYi9Tb3VyY2UvV2ViS2l0L0dQ
VVByb2Nlc3Mvd2VicnRjL0xpYldlYlJUQ0NvZGVjc1Byb3h5Lm1tCmluZGV4IDEzM2UyNmU0NzRl
MWQzMTkxNjNlNTU3MTk5MmQwYzBjNzE5ZGRlMTQuLjcwN2E2NWUyZTIyNGM5YWQ3Y2YxNzQ2NWY0
ZGMwYTQyMTM3MDJhNTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy93ZWJy
dGMvTGliV2ViUlRDQ29kZWNzUHJveHkubW0KKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNz
L3dlYnJ0Yy9MaWJXZWJSVENDb2RlY3NQcm94eS5tbQpAQCAtNzcsMTQgKzc3LDExIEBAIHZvaWQg
TGliV2ViUlRDQ29kZWNzUHJveHk6OmNsb3NlKCkKIHN0YXRpYyBGdW5jdGlvbjx2b2lkKENWUGl4
ZWxCdWZmZXJSZWYgcGl4ZWxCdWZmZXIsIHVpbnQzMl90IHRpbWVTdGFtcE5zLCB1aW50MzJfdCB0
aW1lU3RhbXApPiBjcmVhdGVEZWNvZGVyQ2FsbGJhY2soUlRDRGVjb2RlcklkZW50aWZpZXIgaWRl
bnRpZmllciwgR1BVQ29ubmVjdGlvblRvV2ViUHJvY2VzcyYgZ3B1Q29ubmVjdGlvblRvV2ViUHJv
Y2VzcykKIHsKICAgICByZXR1cm4gW2Nvbm5lY3Rpb24gPSBSZWYgeyBncHVDb25uZWN0aW9uVG9X
ZWJQcm9jZXNzLmNvbm5lY3Rpb24oKSB9LAotI2lmIEhBVkUoSU9TVVJGQUNFX1NFVF9PV05FUlNI
SVBfSURFTlRJVFkpCi0gICAgICAgIHRva2VuID0gZ3B1Q29ubmVjdGlvblRvV2ViUHJvY2Vzcy53
ZWJQcm9jZXNzSWRlbnRpdHlUb2tlbigpLAotI2VuZGlmCisgICAgICAgIHJlc291cmNlT3duZXIg
PSBncHVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLndlYlByb2Nlc3NJZGVudGl0eSgpLAogICAgICAg
ICBpZGVudGlmaWVyXShDVlBpeGVsQnVmZmVyUmVmIHBpeGVsQnVmZmVyLCB1aW50MzJfdCB0aW1l
U3RhbXBOcywgdWludDMyX3QgdGltZVN0YW1wKSB7CiAgICAgICAgIGlmIChhdXRvIHNhbXBsZSA9
IFdlYkNvcmU6OlJlbW90ZVZpZGVvU2FtcGxlOjpjcmVhdGUocGl4ZWxCdWZmZXIsIE1lZGlhVGlt
ZSh0aW1lU3RhbXBOcywgMSkpKSB7Ci0jaWYgSEFWRShJT1NVUkZBQ0VfU0VUX09XTkVSU0hJUF9J
REVOVElUWSkKLSAgICAgICAgICAgIHNhbXBsZS0+c2V0T3duZXJzaGlwSWRlbnRpdHkodG9rZW4p
OwotI2VuZGlmCisgICAgICAgICAgICBpZiAocmVzb3VyY2VPd25lcikKKyAgICAgICAgICAgICAg
ICBzYW1wbGUtPnNldE93bmVyc2hpcElkZW50aXR5KHJlc291cmNlT3duZXIuZ2V0KCkpOwogICAg
ICAgICAgICAgY29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6TGliV2ViUlRDQ29kZWNzOjpDb21w
bGV0ZWREZWNvZGluZyB7IGlkZW50aWZpZXIsIHRpbWVTdGFtcCwgKnNhbXBsZSB9LCAwKTsKICAg
ICAgICAgfQogICAgIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9HUFVQcm9j
ZXNzQ29ubmVjdGlvblBhcmFtZXRlcnMuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0dQVVByb2Nl
c3NDb25uZWN0aW9uUGFyYW1ldGVycy5oCmluZGV4IDA5NmZkMGUzYmE2YzdlYzExNzc4Zjk5NGZm
ZDVlODY3N2UyMGZjNTYuLjdkM2VmYWNkNjU3NDM5NTVhMTE2MDYzYTg3ZjBmZDc5NzA2ZGM2ZjQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0dQVVByb2Nlc3NDb25uZWN0aW9uUGFy
YW1ldGVycy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0dQVVByb2Nlc3NDb25uZWN0aW9u
UGFyYW1ldGVycy5oCkBAIC0yOCwxNCArMjgsMTMgQEAKICNpZiBFTkFCTEUoR1BVX1BST0NFU1Mp
CiAKICNpbmNsdWRlICJXZWJDb3JlQXJndW1lbnRDb2RlcnMuaCIKKyNpbmNsdWRlIDxXZWJDb3Jl
L1Byb2Nlc3NJZGVudGl0eS5oPgogI2luY2x1ZGUgPHd0Zi9NYWNoU2VuZFJpZ2h0Lmg+CiAKIG5h
bWVzcGFjZSBXZWJLaXQgewogCiBzdHJ1Y3QgR1BVUHJvY2Vzc0Nvbm5lY3Rpb25QYXJhbWV0ZXJz
IHsKLSNpZiBIQVZFKFRBU0tfSURFTlRJVFlfVE9LRU4pCi0gICAgTWFjaFNlbmRSaWdodCB3ZWJQ
cm9jZXNzSWRlbnRpdHlUb2tlbjsKLSNlbmRpZgorICAgIFdlYkNvcmU6OlByb2Nlc3NJZGVudGl0
eTo6SGFuZGxlIHdlYlByb2Nlc3NJZGVudGl0eUhhbmRsZTsKICAgICBWZWN0b3I8U3RyaW5nPiBv
dmVycmlkZUxhbmd1YWdlczsKICNpZiBFTkFCTEUoSVBDX1RFU1RJTkdfQVBJKQogICAgIGJvb2wg
aWdub3JlSW52YWxpZE1lc3NhZ2VGb3JUZXN0aW5nIHsgZmFsc2UgfTsKQEAgLTQ2LDkgKzQ1LDcg
QEAgc3RydWN0IEdQVVByb2Nlc3NDb25uZWN0aW9uUGFyYW1ldGVycyB7CiAKICAgICB2b2lkIGVu
Y29kZShJUEM6OkVuY29kZXImIGVuY29kZXIpIGNvbnN0CiAgICAgewotI2lmIEhBVkUoVEFTS19J
REVOVElUWV9UT0tFTikKLSAgICAgICAgZW5jb2RlciA8PCB3ZWJQcm9jZXNzSWRlbnRpdHlUb2tl
bjsKLSNlbmRpZgorICAgICAgICBlbmNvZGVyIDw8IHdlYlByb2Nlc3NJZGVudGl0eUhhbmRsZTsK
ICAgICAgICAgZW5jb2RlciA8PCBvdmVycmlkZUxhbmd1YWdlczsKICNpZiBFTkFCTEUoSVBDX1RF
U1RJTkdfQVBJKQogICAgICAgICBlbmNvZGVyIDw8IGlnbm9yZUludmFsaWRNZXNzYWdlRm9yVGVz
dGluZzsKQEAgLTYwLDEyICs1NywxMCBAQCBzdHJ1Y3QgR1BVUHJvY2Vzc0Nvbm5lY3Rpb25QYXJh
bWV0ZXJzIHsKIAogICAgIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPEdQVVByb2Nlc3NDb25uZWN0aW9u
UGFyYW1ldGVycz4gZGVjb2RlKElQQzo6RGVjb2RlciYgZGVjb2RlcikKICAgICB7Ci0jaWYgSEFW
RShUQVNLX0lERU5USVRZX1RPS0VOKQotICAgICAgICBzdGQ6Om9wdGlvbmFsPE1hY2hTZW5kUmln
aHQ+IHdlYlByb2Nlc3NJZGVudGl0eVRva2VuOwotICAgICAgICBkZWNvZGVyID4+IHdlYlByb2Nl
c3NJZGVudGl0eVRva2VuOwotICAgICAgICBpZiAoIXdlYlByb2Nlc3NJZGVudGl0eVRva2VuKQor
ICAgICAgICBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OlByb2Nlc3NJZGVudGl0eTo6SGFuZGxlPiB3
ZWJQcm9jZXNzSWRlbnRpdHlIYW5kbGU7CisgICAgICAgIGRlY29kZXIgPj4gd2ViUHJvY2Vzc0lk
ZW50aXR5SGFuZGxlOworICAgICAgICBpZiAoIXdlYlByb2Nlc3NJZGVudGl0eUhhbmRsZSkKICAg
ICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7Ci0jZW5kaWYKIAogICAgICAgICBzdGQ6Om9w
dGlvbmFsPFZlY3RvcjxTdHJpbmc+PiBvdmVycmlkZUxhbmd1YWdlczsKICAgICAgICAgZGVjb2Rl
ciA+PiBvdmVycmlkZUxhbmd1YWdlczsKQEAgLTg2LDkgKzgxLDcgQEAgc3RydWN0IEdQVVByb2Nl
c3NDb25uZWN0aW9uUGFyYW1ldGVycyB7CiAjZW5kaWYKIAogICAgICAgICByZXR1cm4gR1BVUHJv
Y2Vzc0Nvbm5lY3Rpb25QYXJhbWV0ZXJzIHsKLSNpZiBIQVZFKFRBU0tfSURFTlRJVFlfVE9LRU4p
Ci0gICAgICAgICAgICBXVEZNb3ZlKCp3ZWJQcm9jZXNzSWRlbnRpdHlUb2tlbiksCi0jZW5kaWYK
KyAgICAgICAgICAgIFdURk1vdmUoKndlYlByb2Nlc3NJZGVudGl0eUhhbmRsZSksCiAgICAgICAg
ICAgICBXVEZNb3ZlKCpvdmVycmlkZUxhbmd1YWdlcyksCiAjaWYgRU5BQkxFKElQQ19URVNUSU5H
X0FQSSkKICAgICAgICAgICAgICppZ25vcmVJbnZhbGlkTWVzc2FnZUZvclRlc3RpbmcsCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFu
YWdlclByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNh
cHR1cmVNYW5hZ2VyUHJveHkuY3BwCmluZGV4IDgxYzBhY2NiZWI2Yjc4OTVhNzEyZGQyYjQ0OGI4
OGJjZGU0M2UwNDAuLjQ0MjQ1NTI3ZjdlNGU0NWU0ZDYxNTZmYmJhMWU5OTY0MzhiNGU3MTIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVN
YW5hZ2VyUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VzZXJN
ZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkuY3BwCkBAIC01Nyw5ICs1NywxMCBAQCBjbGFzcyBVc2Vy
TWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OjpTb3VyY2VQcm94eQogICAgICwgcHJpdmF0ZSBSZWFs
dGltZU1lZGlhU291cmNlOjpWaWRlb1NhbXBsZU9ic2VydmVyIHsKICAgICBXVEZfTUFLRV9GQVNU
X0FMTE9DQVRFRDsKIHB1YmxpYzoKLSAgICBTb3VyY2VQcm94eShSZWFsdGltZU1lZGlhU291cmNl
SWRlbnRpZmllciBpZCwgUmVmPElQQzo6Q29ubmVjdGlvbj4mJiBjb25uZWN0aW9uLCBSZWY8UmVh
bHRpbWVNZWRpYVNvdXJjZT4mJiBzb3VyY2UpCisgICAgU291cmNlUHJveHkoUmVhbHRpbWVNZWRp
YVNvdXJjZUlkZW50aWZpZXIgaWQsIFJlZjxJUEM6OkNvbm5lY3Rpb24+JiYgY29ubmVjdGlvbiwg
UmVmUHRyPFByb2Nlc3NJZGVudGl0eT4mJiByZXNvdXJjZU93bmVyLCBSZWY8UmVhbHRpbWVNZWRp
YVNvdXJjZT4mJiBzb3VyY2UpCiAgICAgICAgIDogbV9pZChpZCkKICAgICAgICAgLCBtX2Nvbm5l
Y3Rpb24oV1RGTW92ZShjb25uZWN0aW9uKSkKKyAgICAgICAgLCBtX3Jlc291cmNlT3duZXIoV1RG
TW92ZShyZXNvdXJjZU93bmVyKSkKICAgICAgICAgLCBtX3NvdXJjZShXVEZNb3ZlKHNvdXJjZSkp
CiAgICAgewogICAgICAgICBtX3NvdXJjZS0+YWRkT2JzZXJ2ZXIoKnRoaXMpOwpAQCAtMTI1LDkg
KzEyNiw2IEBAIHB1YmxpYzoKICAgICB9CiAKICAgICB2b2lkIHNldFNob3VsZEFwcGx5Um90YXRp
b24oYm9vbCBzaG91bGRBcHBseVJvdGF0aW9uKSB7IG1fc2hvdWxkQXBwbHlSb3RhdGlvbiA9IHRy
dWU7IH0KLSNpZiBIQVZFKElPU1VSRkFDRV9TRVRfT1dORVJTSElQX0lERU5USVRZKQotICAgIHZv
aWQgc2V0V2ViUHJvY2Vzc0lkZW50aXR5VG9rZW4oc3RkOjpvcHRpb25hbDx0YXNrX2lkX3Rva2Vu
X3Q+IHRva2VuKSB7IG1fd2ViUHJvY2Vzc0lkZW50aXR5VG9rZW4gPSB0b2tlbjt9Ci0jZW5kaWYK
IAogcHJpdmF0ZToKICAgICB2b2lkIHNvdXJjZVN0b3BwZWQoKSBmaW5hbCB7CkBAIC0xODgsMTAg
KzE4Niw4IEBAIHByaXZhdGU6CiAgICAgICAgIH0gZWxzZQogICAgICAgICAgICAgcmVtb3RlU2Ft
cGxlID0gUmVtb3RlVmlkZW9TYW1wbGU6OmNyZWF0ZShzYW1wbGUpOwogICAgICAgICBpZiAocmVt
b3RlU2FtcGxlKSB7Ci0jaWYgSEFWRShJT1NVUkZBQ0VfU0VUX09XTkVSU0hJUF9JREVOVElUWSkK
LSAgICAgICAgICAgIGlmIChtX3dlYlByb2Nlc3NJZGVudGl0eVRva2VuKQotICAgICAgICAgICAg
ICAgIHJlbW90ZVNhbXBsZS0+c2V0T3duZXJzaGlwSWRlbnRpdHkoKm1fd2ViUHJvY2Vzc0lkZW50
aXR5VG9rZW4pOwotI2VuZGlmCisgICAgICAgICAgICBpZiAobV9yZXNvdXJjZU93bmVyKQorICAg
ICAgICAgICAgICAgIHJlbW90ZVNhbXBsZS0+c2V0T3duZXJzaGlwSWRlbnRpdHkobV9yZXNvdXJj
ZU93bmVyLmdldCgpKTsKICAgICAgICAgICAgIG1fY29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6
UmVtb3RlQ2FwdHVyZVNhbXBsZU1hbmFnZXI6OlZpZGVvU2FtcGxlQXZhaWxhYmxlKG1faWQsIFdU
Rk1vdmUoKnJlbW90ZVNhbXBsZSksIG1ldGFkYXRhKSwgMCk7CiAgICAgICAgIH0KICAgICB9CkBA
IC0yNDQsNiArMjQwLDcgQEAgcHJpdmF0ZToKICAgICBSZWFsdGltZU1lZGlhU291cmNlSWRlbnRp
ZmllciBtX2lkOwogICAgIFdlYWtQdHI8UGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyPiBtX3Nl
c3Npb25NYW5hZ2VyOwogICAgIFJlZjxJUEM6OkNvbm5lY3Rpb24+IG1fY29ubmVjdGlvbjsKKyAg
ICBSZWZQdHI8UHJvY2Vzc0lkZW50aXR5PiBtX3Jlc291cmNlT3duZXI7CiAgICAgUmVmPFJlYWx0
aW1lTWVkaWFTb3VyY2U+IG1fc291cmNlOwogICAgIHN0ZDo6dW5pcXVlX3B0cjxDQVJpbmdCdWZm
ZXI+IG1fcmluZ0J1ZmZlcjsKICAgICBDQUF1ZGlvU3RyZWFtRGVzY3JpcHRpb24gbV9kZXNjcmlw
dGlvbiB7IH07CkBAIC0yNTcsOSArMjU0LDYgQEAgcHJpdmF0ZToKICAgICBzaXplX3QgbV9mcmFt
ZUNodW5rU2l6ZSB7IDAgfTsKICAgICBNZWRpYVRpbWUgbV9zdGFydFRpbWU7CiAgICAgYm9vbCBt
X3Nob3VsZFJlc2V0IHsgZmFsc2UgfTsKLSNpZiBIQVZFKFRBU0tfSURFTlRJVFlfVE9LRU4pCi0g
ICAgc3RkOjpvcHRpb25hbDx0YXNrX2lkX3Rva2VuX3Q+IG1fd2ViUHJvY2Vzc0lkZW50aXR5VG9r
ZW47Ci0jZW5kaWYKIH07CiAKIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6OlVzZXJNZWRp
YUNhcHR1cmVNYW5hZ2VyUHJveHkoVW5pcXVlUmVmPENvbm5lY3Rpb25Qcm94eT4mJiBjb25uZWN0
aW9uUHJveHkpCkBAIC0zMjMsMTIgKzMxNyw3IEBAIHZvaWQgVXNlck1lZGlhQ2FwdHVyZU1hbmFn
ZXJQcm94eTo6Y3JlYXRlTWVkaWFTb3VyY2VGb3JDYXB0dXJlRGV2aWNlV2l0aENvbnN0cmFpCiAg
ICAgICAgIH0KIAogICAgICAgICBBU1NFUlQoIW1fcHJveGllcy5jb250YWlucyhpZCkpOwotICAg
ICAgICBhdXRvIHByb3h5ID0gbWFrZVVuaXF1ZTxTb3VyY2VQcm94eT4oaWQsIG1fY29ubmVjdGlv
blByb3h5LT5jb25uZWN0aW9uKCksIFdURk1vdmUoc291cmNlKSk7Ci0jaWYgSEFWRShJT1NVUkZB
Q0VfU0VUX09XTkVSU0hJUF9JREVOVElUWSkKLSAgICAgICAgaWYgKGRldmljZS50eXBlKCkgIT0g
V2ViQ29yZTo6Q2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6TWljcm9waG9uZSkKLSAgICAgICAg
ICAgIHByb3h5LT5zZXRXZWJQcm9jZXNzSWRlbnRpdHlUb2tlbihtX2Nvbm5lY3Rpb25Qcm94eS0+
d2ViUHJvY2Vzc0lkZW50aXR5VG9rZW4oKSk7Ci0jZW5kaWYKLQorICAgICAgICBhdXRvIHByb3h5
ID0gbWFrZVVuaXF1ZTxTb3VyY2VQcm94eT4oaWQsIG1fY29ubmVjdGlvblByb3h5LT5jb25uZWN0
aW9uKCksIG1fY29ubmVjdGlvblByb3h5LT5yZXNvdXJjZU93bmVyKCksIFdURk1vdmUoc291cmNl
KSk7CiAgICAgICAgIG1fcHJveGllcy5hZGQoaWQsIFdURk1vdmUocHJveHkpKTsKICAgICB9IGVs
c2UKICAgICAgICAgaW52YWxpZENvbnN0cmFpbnRzID0gV1RGTW92ZShzb3VyY2VPckVycm9yLmVy
cm9yTWVzc2FnZSk7CkBAIC0zOTMsNyArMzgyLDcgQEAgdm9pZCBVc2VyTWVkaWFDYXB0dXJlTWFu
YWdlclByb3h5OjpjbG9uZShSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciBjbG9uZWRJRCwK
ICAgICBNRVNTQUdFX0NIRUNLKG1fcHJveGllcy5jb250YWlucyhjbG9uZWRJRCkpOwogICAgIE1F
U1NBR0VfQ0hFQ0soIW1fcHJveGllcy5jb250YWlucyhuZXdTb3VyY2VJRCkpOwogICAgIGlmIChh
dXRvKiBwcm94eSA9IG1fcHJveGllcy5nZXQoY2xvbmVkSUQpKQotICAgICAgICBtX3Byb3hpZXMu
YWRkKG5ld1NvdXJjZUlELCBtYWtlVW5pcXVlPFNvdXJjZVByb3h5PihuZXdTb3VyY2VJRCwgbV9j
b25uZWN0aW9uUHJveHktPmNvbm5lY3Rpb24oKSwgcHJveHktPnNvdXJjZSgpLmNsb25lKCkpKTsK
KyAgICAgICAgbV9wcm94aWVzLmFkZChuZXdTb3VyY2VJRCwgbWFrZVVuaXF1ZTxTb3VyY2VQcm94
eT4obmV3U291cmNlSUQsIG1fY29ubmVjdGlvblByb3h5LT5jb25uZWN0aW9uKCksIG1fY29ubmVj
dGlvblByb3h5LT5yZXNvdXJjZU93bmVyKCksIHByb3h5LT5zb3VyY2UoKS5jbG9uZSgpKSk7CiB9
CiAKIHZvaWQgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6cmVxdWVzdFRvRW5kKFJlYWx0
aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIHNvdXJjZUlEKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5oIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5o
CmluZGV4IDdhZmY0MjRkNTQwZDNiMWZkZWNkYWJjODY1NWMzYzU2YzUwYTEwZTUuLmM1ODZjZTNm
M2QxMmU3OGUyMzczMmFlMTBjYzg5YjIzODA0YjJiY2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkuaAorKysgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5
LmgKQEAgLTMyLDYgKzMyLDcgQEAKICNpbmNsdWRlICJVc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5o
IgogI2luY2x1ZGUgPFdlYkNvcmUvQ2FwdHVyZURldmljZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUv
T3JpZW50YXRpb25Ob3RpZmllci5oPgorI2luY2x1ZGUgPFdlYkNvcmUvUHJvY2Vzc0lkZW50aXR5
Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9SZWFsdGltZU1lZGlhU291cmNlLmg+CiAjaW5jbHVkZSA8
V2ViQ29yZS9SZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllci5oPgogI2luY2x1ZGUgPHBhbC9z
cGkvY29jb2EvVENDU1BJLmg+CkBAIC01OSw5ICs2MCw3IEBAIHB1YmxpYzoKICAgICAgICAgdmly
dHVhbCBib29sIHdpbGxTdGFydENhcHR1cmUoV2ViQ29yZTo6Q2FwdHVyZURldmljZTo6RGV2aWNl
VHlwZSkgY29uc3QgPSAwOwogICAgICAgICB2aXJ0dWFsIExvZ2dlciYgbG9nZ2VyKCkgPSAwOwog
ICAgICAgICB2aXJ0dWFsIGJvb2wgc2V0Q2FwdHVyZUF0dHJpYnV0aW9uU3RyaW5nKCkgeyByZXR1
cm4gdHJ1ZTsgfQotI2lmIEhBVkUoSU9TVVJGQUNFX1NFVF9PV05FUlNISVBfSURFTlRJVFkpCi0g
ICAgICAgIHZpcnR1YWwgc3RkOjpvcHRpb25hbDx0YXNrX2lkX3Rva2VuX3Q+IHdlYlByb2Nlc3NJ
ZGVudGl0eVRva2VuKCkgY29uc3QgeyByZXR1cm4geyB9OyB9OwotI2VuZGlmCisgICAgICAgIHZp
cnR1YWwgUmVmUHRyPFdlYkNvcmU6OlByb2Nlc3NJZGVudGl0eT4gcmVzb3VyY2VPd25lcigpIGNv
bnN0IHsgcmV0dXJuIG51bGxwdHI7IH07CiAjaWYgRU5BQkxFKEFQUF9QUklWQUNZX1JFUE9SVCkK
ICAgICAgICAgdmlydHVhbCB2b2lkIHNldFRDQ0lkZW50aXR5KCkgeyB9CiAjZW5kaWYKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvSW1hZ2VCdWZmZXJT
aGFyZWFibGVCaXRtYXBCYWNrZW5kLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dy
YXBoaWNzL0ltYWdlQnVmZmVyU2hhcmVhYmxlQml0bWFwQmFja2VuZC5oCmluZGV4IDE4NDdmYTZm
YmRlNDA2ZWQ2YTZhZDA2MDQ5OGI4ODVjNWUzNmJiM2QuLmVhMzc3NTI5YzIyZjUzN2ZlMzY5N2I0
ODAxM2NlMDQ5ZTkxYzcxZGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9H
UFUvZ3JhcGhpY3MvSW1hZ2VCdWZmZXJTaGFyZWFibGVCaXRtYXBCYWNrZW5kLmgKKysrIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9JbWFnZUJ1ZmZlclNoYXJlYWJsZUJp
dG1hcEJhY2tlbmQuaApAQCAtMzEsNiArMzEsMTAgQEAKICNpbmNsdWRlIDxXZWJDb3JlL1BsYXRm
b3JtSW1hZ2VCdWZmZXJCYWNrZW5kLmg+CiAjaW5jbHVkZSA8d3RmL0lzb01hbGxvYy5oPgogCitu
YW1lc3BhY2UgV2ViQ29yZSB7CitjbGFzcyBQcm9jZXNzSWRlbnRpdHk7Cit9CisKIG5hbWVzcGFj
ZSBXZWJLaXQgewogCiBjbGFzcyBTaGFyZWFibGVCaXRtYXA7CkBAIC02MSw2ICs2NSw3IEBAIHB1
YmxpYzoKICAgICBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OlBpeGVsQnVmZmVyPiBnZXRQaXhlbEJ1
ZmZlcihjb25zdCBXZWJDb3JlOjpQaXhlbEJ1ZmZlckZvcm1hdCYgb3V0cHV0Rm9ybWF0LCBjb25z
dCBXZWJDb3JlOjpJbnRSZWN0JikgY29uc3Qgb3ZlcnJpZGU7CiAgICAgdm9pZCBwdXRQaXhlbEJ1
ZmZlcihjb25zdCBXZWJDb3JlOjpQaXhlbEJ1ZmZlciYsIGNvbnN0IFdlYkNvcmU6OkludFJlY3Qm
IHNyY1JlY3QsIGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBkZXN0UG9pbnQsIFdlYkNvcmU6OkFs
cGhhUHJlbXVsdGlwbGljYXRpb24gZGVzdEZvcm1hdCkgb3ZlcnJpZGU7CiAKKyAgICB2b2lkIHNl
dE93bmVyc2hpcElkZW50aXR5KFdlYkNvcmU6OlByb2Nlc3NJZGVudGl0eSopIHsgfQogcHJpdmF0
ZToKICAgICB1bnNpZ25lZCBieXRlc1BlclJvdygpIGNvbnN0IG92ZXJyaWRlOwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL2NvY29hL0ltYWdlQnVm
ZmVyU2hhcmVhYmxlTWFwcGVkSU9TdXJmYWNlQmFja2VuZC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvR1BVL2dyYXBoaWNzL2NvY29hL0ltYWdlQnVmZmVyU2hhcmVhYmxlTWFwcGVkSU9T
dXJmYWNlQmFja2VuZC5jcHAKaW5kZXggYWZkMmM3YzA1Y2ZhZmQxMzk5MzQ0ZjVjNmE3NjRlNDg4
MGQyOGJkYS4uMTEzZWFmOTJmODBmNTM4NjYwZGZiYjQwNjBjM2E3Yzg4OGY2OTI1YSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9jb2NvYS9JbWFnZUJ1
ZmZlclNoYXJlYWJsZU1hcHBlZElPU3VyZmFjZUJhY2tlbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvY29jb2EvSW1hZ2VCdWZmZXJTaGFyZWFibGVNYXBw
ZWRJT1N1cmZhY2VCYWNrZW5kLmNwcApAQCAtNzcsMTMgKzc3LDExIEBAIEltYWdlQnVmZmVyQmFj
a2VuZEhhbmRsZSBJbWFnZUJ1ZmZlclNoYXJlYWJsZU1hcHBlZElPU3VyZmFjZUJhY2tlbmQ6OmNy
ZWF0ZUltYWdlCiAgICAgcmV0dXJuIEltYWdlQnVmZmVyQmFja2VuZEhhbmRsZShtX3N1cmZhY2Ut
PmNyZWF0ZVNlbmRSaWdodCgpKTsKIH0KIAotI2lmIEhBVkUoSU9TVVJGQUNFX1NFVF9PV05FUlNI
SVBfSURFTlRJVFkpCi12b2lkIEltYWdlQnVmZmVyU2hhcmVhYmxlTWFwcGVkSU9TdXJmYWNlQmFj
a2VuZDo6c2V0UHJvY2Vzc093bmVyc2hpcCh0YXNrX2lkX3Rva2VuX3QgcHJvY2Vzc0lkZW50aXR5
VG9rZW4pCit2b2lkIEltYWdlQnVmZmVyU2hhcmVhYmxlTWFwcGVkSU9TdXJmYWNlQmFja2VuZDo6
c2V0T3duZXJzaGlwSWRlbnRpdHkoV2ViQ29yZTo6UHJvY2Vzc0lkZW50aXR5KiByZXNvdXJjZU93
bmVyKQogewogICAgIEFTU0VSVChzdXJmYWNlKCkpOwotICAgIHN1cmZhY2UoKS0+c2V0T3duZXJz
aGlwSWRlbnRpdHkocHJvY2Vzc0lkZW50aXR5VG9rZW4pOworICAgIHN1cmZhY2UoKS0+c2V0T3du
ZXJzaGlwSWRlbnRpdHkocmVzb3VyY2VPd25lcik7CiB9Ci0jZW5kaWYKIAogfSAvLyBuYW1lc3Bh
Y2UgV2ViS2l0CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3Jh
cGhpY3MvY29jb2EvSW1hZ2VCdWZmZXJTaGFyZWFibGVNYXBwZWRJT1N1cmZhY2VCYWNrZW5kLmgg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL2NvY29hL0ltYWdlQnVmZmVy
U2hhcmVhYmxlTWFwcGVkSU9TdXJmYWNlQmFja2VuZC5oCmluZGV4IGUxNGE1NDBlY2RkZDQ3MTE5
MDhhN2MxNzFjM2EyNWViZmQ4MDhkYmUuLmI5NzYzMjIwMzJlNmZkMWEzMGI5YTI0NGZmODM4OTY2
MDk1NjQ3YzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhp
Y3MvY29jb2EvSW1hZ2VCdWZmZXJTaGFyZWFibGVNYXBwZWRJT1N1cmZhY2VCYWNrZW5kLmgKKysr
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9jb2NvYS9JbWFnZUJ1ZmZl
clNoYXJlYWJsZU1hcHBlZElPU3VyZmFjZUJhY2tlbmQuaApAQCAtMzEsNiArMzEsMTAgQEAKICNp
bmNsdWRlIDxXZWJDb3JlL0ltYWdlQnVmZmVySU9TdXJmYWNlQmFja2VuZC5oPgogI2luY2x1ZGUg
PHd0Zi9Jc29NYWxsb2MuaD4KIAorbmFtZXNwYWNlIFdlYkNvcmUgeworY2xhc3MgUHJvY2Vzc0lk
ZW50aXR5OworfQorCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogY2xhc3MgU2hhcmVhYmxlQml0bWFw
OwpAQCAtNDYsOSArNTAsNyBAQCBwdWJsaWM6CiAKICAgICBJbWFnZUJ1ZmZlckJhY2tlbmRIYW5k
bGUgY3JlYXRlSW1hZ2VCdWZmZXJCYWNrZW5kSGFuZGxlKCkgY29uc3Q7CiAKLSNpZiBIQVZFKElP
U1VSRkFDRV9TRVRfT1dORVJTSElQX0lERU5USVRZKQotICAgIHZvaWQgc2V0UHJvY2Vzc093bmVy
c2hpcCh0YXNrX2lkX3Rva2VuX3QpOwotI2VuZGlmCisgICAgdm9pZCBzZXRPd25lcnNoaXBJZGVu
dGl0eShXZWJDb3JlOjpQcm9jZXNzSWRlbnRpdHkqIHJlc291cmNlT3duZXIpOwogfTsKIAogfSAv
LyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
Y29jb2EvV2ViUHJvY2Vzc0NvY29hLm1tIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29h
L1dlYlByb2Nlc3NDb2NvYS5tbQppbmRleCAxZWI5MGVmMzZlYjU3MjAyMzYyMGZhYWY2ODEyMzEx
MjJlMDYwMTZjLi42M2IzOWIxZTE2NTQ5MTY3M2NjYzQxYTAzODgxNDhkODNlN2Q0MTEwIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvV2ViUHJvY2Vzc0NvY29hLm1t
CisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9XZWJQcm9jZXNzQ29jb2EubW0K
QEAgLTEyMzEsMTQgKzEyMzEsNyBAQCB2b2lkIFdlYlByb2Nlc3M6OndhaXRGb3JQZW5kaW5nUGFz
dGVib2FyZFdyaXRlc1RvRmluaXNoKGNvbnN0IFN0cmluZyYgcGFzdGVib2FyZAogI2lmIEVOQUJM
RShHUFVfUFJPQ0VTUykKIHZvaWQgV2ViUHJvY2Vzczo6cGxhdGZvcm1Jbml0aWFsaXplR1BVUHJv
Y2Vzc0Nvbm5lY3Rpb25QYXJhbWV0ZXJzKEdQVVByb2Nlc3NDb25uZWN0aW9uUGFyYW1ldGVycyYg
cGFyYW1ldGVycykKIHsKLSNpZiBIQVZFKFRBU0tfSURFTlRJVFlfVE9LRU4pCi0gICAgdGFza19p
ZF90b2tlbl90IGlkZW50aXR5VG9rZW47Ci0gICAga2Vybl9yZXR1cm5fdCBrciA9IHRhc2tfY3Jl
YXRlX2lkZW50aXR5X3Rva2VuKG1hY2hfdGFza19zZWxmKCksICZpZGVudGl0eVRva2VuKTsKLSAg
ICBpZiAoa3IgPT0gS0VSTl9TVUNDRVNTKQotICAgICAgICBwYXJhbWV0ZXJzLndlYlByb2Nlc3NJ
ZGVudGl0eVRva2VuID0gTWFjaFNlbmRSaWdodDo6YWRvcHQoaWRlbnRpdHlUb2tlbik7Ci0gICAg
ZWxzZQotICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihQcm9jZXNzLCAiQ2FsbCB0byB0YXNrX2Ny
ZWF0ZV9pZGVudGl0eV90b2tlbigpIGZhaWxlZDogJXtwcml2YXRlfXMgKCV4KSIsIG1hY2hfZXJy
b3Jfc3RyaW5nKGtyKSwga3IpOwotI2VuZGlmCisgICAgcGFyYW1ldGVycy53ZWJQcm9jZXNzSWRl
bnRpdHlIYW5kbGUgPSBQcm9jZXNzSWRlbnRpdHk6OmhhbmRsZUZvckN1cnJlbnRQcm9jZXNzKCk7
CiAKICAgICBwYXJhbWV0ZXJzLm92ZXJyaWRlTGFuZ3VhZ2VzID0gdXNlclByZWZlcnJlZExhbmd1
YWdlc092ZXJyaWRlKCk7CiB9CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9D
aGFuZ2VMb2cKaW5kZXggOTQ1ZWFlYjgyMzMxOTg4NzNjMjY0MDQxNWE3ODA2MTJhNmJkODc0OS4u
NzM1YWE3MGJlYzc5NDgxZDYxZGZmYjc1Y2U1YTJkMGZlNDEyZmU2YyAxMDA2NDQKLS0tIGEvVG9v
bHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDIx
LTEyLTAyICBLaW1tbyBLaW5udW5lbiAgPGtraW5udW5lbkBhcHBsZS5jb20+CisKKyAgICAgICAg
SU9TdXJmYWNlIG1lbW9yeSBhdHRyaWJ1dGlvbiBpcyBoYXJkIHRvIHVzZSBpbiBjb25zdHJ1Y3Rv
cnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMjk4
OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFVwZGF0
ZSBjb25zdHJ1Y3RvciBjYWxsaW5nIGJhc2UgY2xhc3MgY29uc3RydWN0b3IuCisKKyAgICAgICAg
KiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvY29jb2EvVGVzdEdyYXBoaWNzQ29udGV4dEdM
T3BlbkdMQ29jb2EubW06CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpXZWJDb3JlOjpUZXN0ZWRH
cmFwaGljc0NvbnRleHRHTE9wZW5HTDo6Y3JlYXRlKToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6
OldlYkNvcmU6OlRlc3RlZEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMOjpUZXN0ZWRHcmFwaGljc0Nv
bnRleHRHTE9wZW5HTCk6CisKIDIwMjEtMTItMDIgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dh
cmNpYUBpZ2FsaWEuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQuIFtHVEtdIFVzZSBudWxscHRy
IGluc3RlYWQgb2YgMCBpbiBKU1N0cmluZ0NyZWF0ZVdpdGhDaGFyYWN0ZXJzKCkK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>445844</attachid>
            <date>2021-12-03 05:11:43 -0800</date>
            <delta_ts>2021-12-08 06:04:19 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-232988-20211203151141.patch</filename>
            <type>text/plain</type>
            <size>54100</size>
            <attacher name="Kimmo Kinnunen">kkinnunen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg2NDM3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTMwNmFkNGYyNGY1YmZl
MTRlNmU2M2Y5OTVjMWNkNmUyNzRkYzdjMi4uNGZjOWZlNzgyMWVjZGZlNzRjN2M0YTMxNzE5MTUx
MjQ2NzQzZTZjMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU3IEBACisyMDIxLTEyLTAyICBLaW1t
byBLaW5udW5lbiAgPGtraW5udW5lbkBhcHBsZS5jb20+CisKKyAgICAgICAgSU9TdXJmYWNlIG1l
bW9yeSBhdHRyaWJ1dGlvbiBpcyBoYXJkIHRvIHVzZSBpbiBjb25zdHJ1Y3RvcnMKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMjk4OAorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBXZWJDb3JlOjpQcm9j
ZXNzSWRlbnRpdHkgdHlwZSB0aGF0IGNhbiBiZSB1c2VkIHRvIGNvbW11bmljYXRlIG1lbW9yeSBh
dHRyaWJ1dGlvbi4KKyAgICAgICAgRm9yIG5vbi1Db2NvYSBwb3J0cywgdGhpcyBpcyBudWxscHRy
LgorICAgICAgICBUaGlzIGlzIHVzZWQgaW4gV2ViQ29yZSB0byBzZXQgdGhlIG1lbW9yeSBhdHRy
aWJ1dGlvbiBvZiBJT1N1cmZhY2UgYW5kIG9iamVjdHMKKyAgICAgICAgdGhhdCBob2xkIElPU3Vy
ZmFjZXMuCisgICAgICAgIFRoaXMgaXMgaW5zdGFudGlhdGVkIGluIFdlYktpdC4KKyAgICAgICAg
Q3VycmVudGx5IHRoZSBvbmx5IHVzZWZ1bCB3YXkgdG8gaW5zdGFudGlhdGUgUHJvY2Vzc0lkZW50
aXR5IGlzIGJ5IHJlY2VpdmluZworICAgICAgICB0aGUgUHJvY2Vzc0lkZW50aXR5OjpIYW5kbGUg
YXMgYSBtZXNzYWdlIGFuZCBjcmVhdGUgaXQgdGhpcyB3YXkgZm9yIHRoZQorICAgICAgICBzZW5k
ZXIgcHJvY2Vzcy4KKworICAgICAgICBObyBuZXcgdGVzdHMsIHJlZmFjdG9yLgorCisgICAgICAg
ICogSGVhZGVycy5jbWFrZToKKyAgICAgICAgKiBTb3VyY2VzLnR4dDoKKyAgICAgICAgKiBXZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogcGxhdGZvcm0vTG9nZ2lu
Zy5oOgorICAgICAgICBBZGQgV2ViQ29yZSBQcm9jZXNzIGxvZyB0YWcgc2luY2UgdGhlIGNvZGUg
bW92ZWQgZnJvbSBXZWJLaXQgdG8gUHJvY2Vzc0lkZW50aXR5CisgICAgICAgIHVzZWQgdGhhdCB0
YWcgdG8gbG9nLgorICAgICAgICAqIHBsYXRmb3JtL1Byb2Nlc3NJZGVudGl0eS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpQcm9jZXNzSWRlbnRpdHk6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3Jl
OjpQcm9jZXNzSWRlbnRpdHk6OlByb2Nlc3NJZGVudGl0eSk6CisgICAgICAgIChXZWJDb3JlOjpQ
cm9jZXNzSWRlbnRpdHk6OmhhbmRsZUZvckN1cnJlbnRQcm9jZXNzKToKKyAgICAgICAgKFdlYkNv
cmU6OlByb2Nlc3NJZGVudGl0eTo6aGFuZGxlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlBy
b2Nlc3NJZGVudGl0eTo6dGFza0lkVG9rZW4gY29uc3QpOgorICAgICAgICAqIHBsYXRmb3JtL1By
b2Nlc3NJZGVudGl0eS5oOgorICAgICAgICBBZGQgdGhlIFByb2Nlc3NJZGVudGl0eSB0eXBlIHRo
YXQgY2FuIGJlIHVzZWQgdG8gY29tbXVuaWNhdGUgbWVtb3J5IGF0dHJpYnV0aW9uLgorCisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvUmVtb3RlVmlkZW9TYW1wbGUuaDoKKyAgICAgICAgKFdl
YkNvcmU6OlJlbW90ZVZpZGVvU2FtcGxlOjpzZXRPd25lcnNoaXBJZGVudGl0eSk6CisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvY2cvSW1hZ2VCdWZmZXJVdGlsaXRpZXNDRy5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjplbmNvZGUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NvY29h
L0dyYXBoaWNzQ29udGV4dEdMT3BlbkdMQ29jb2EubW06CisgICAgICAgIChXZWJDb3JlOjpHcmFw
aGljc0NvbnRleHRHTE9wZW5HTDo6R3JhcGhpY3NDb250ZXh0R0xPcGVuR0wpOgorICAgICAgICAo
V2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0R0xPcGVuR0w6OmFsbG9jYXRlQW5kQmluZERpc3BsYXlC
dWZmZXJCYWNraW5nKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9JT1N1cmZh
Y2UuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9JT1N1cmZhY2UubW06Cisg
ICAgICAgIChXZWJDb3JlOjpJT1N1cmZhY2U6OnNldE93bmVyc2hpcElkZW50aXR5KToKKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9XZWJQcm9jZXNzR3JhcGhpY3NDb250ZXh0R0xP
cGVuR0xDb2NvYS5tbToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR3JhcGhp
Y3NDb250ZXh0R0xPcGVuR0wuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAv
R3JhcGhpY3NDb250ZXh0R0xUZXh0dXJlTWFwcGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okdy
YXBoaWNzQ29udGV4dEdMT3BlbkdMOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhp
Y3NDb250ZXh0R0xPcGVuR0w6OkdyYXBoaWNzQ29udGV4dEdMT3BlbkdMKToKKyAgICAgICAgQWRk
IGFuIGV4YW1wbGUgdXNlIHdoZXJlIHRoZSBjb25zdHJ1Y3RvciB0YWtlcyB0aGUgbWVtb3J5IGF0
dHJpYnV0aW9uIHRva2VuLgorICAgICAgICBUaGlzIG1heSBiZSBuZWVkZWQgaW4gdGhlIGZ1dHVy
ZSB3aGVuIHRoZSB0b2tlbiBpcyB1c2VkIGFzIGEgcGFyYW1ldGVyIGluCisgICAgICAgIHRoZSBB
TkdMRSBjb250ZXh0IGNyZWF0aW9uLgorICAgICAgICBVc2UgdGhlIHRva2VuIGluIGNyZWF0aW5n
IHRoZSBJT1N1cmZhY2UuIFRoaXMgZml4ZXMgYSBidWcgd2hlcmUgV2ViR0wKKyAgICAgICAgYmFj
ayBidWZmZXJzIHdvdWxkIG5vdCBiZSBhdHRyaWJ1dGVkIHVudGlsIHRoZXkgd2VyZSBzZW50IHRv
IFdQLgorCiAyMDIxLTEyLTAyICBBbnR0aSBLb2l2aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KIAog
ICAgICAgICBbOmhhcygpIHBzZXVkby1jbGFzc10gSW52YWxpZGF0aW9uIGluIG5vbi1zdWJqZWN0
IHBvc2l0aW9uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9X
ZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDI1OTMyMzhiNmMwNzdjODc4M2NiOGFkOTI4MGVhOGM0NzNj
MDYxMjEuLjEwYTYwMmZkOTEzMDBkMDI3ZDUxM2EwYWYzNzA2YWE2ODcyMzQ5MmYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsNTQgQEAKKzIwMjEtMTItMDIgIEtpbW1vIEtpbm51bmVuICA8a2tpbm51bmVu
QGFwcGxlLmNvbT4KKworICAgICAgICBJT1N1cmZhY2UgbWVtb3J5IGF0dHJpYnV0aW9uIGlzIGhh
cmQgdG8gdXNlIGluIGNvbnN0cnVjdG9ycworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MjMyOTg4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgUmVtb3ZlIGlmZGVmcyBhbmQgZGlyZWN0IHVzZSBvZiB0YXNrX2lk
X3Rva2VuX3QuCisgICAgICAgIEluc3RlYWQsIHVzZSBXZWJDb3JlOjpQcm9jZXNzSWRlbnRpZmll
ci4gVGhpcyB3YXkgdGhlCisgICAgICAgIGNyb3NzLXBsYXRmb3JtIGNvZGUgaXMgZWFzaWVyIHRv
IGF1dGhvci4KKworICAgICAgICAqIEdQVVByb2Nlc3MvR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vz
cy5jcHA6CisgICAgICAgIChXZWJLaXQ6OkdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OkdQVUNv
bm5lY3Rpb25Ub1dlYlByb2Nlc3MpOgorICAgICAgICAqIEdQVVByb2Nlc3MvR1BVQ29ubmVjdGlv
blRvV2ViUHJvY2Vzcy5oOgorICAgICAgICAoV2ViS2l0OjpHUFVDb25uZWN0aW9uVG9XZWJQcm9j
ZXNzOjp3ZWJQcm9jZXNzSWRlbnRpdHkgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpHUFVDb25u
ZWN0aW9uVG9XZWJQcm9jZXNzOjp3ZWJQcm9jZXNzSWRlbnRpdHlUb2tlbiBjb25zdCk6IERlbGV0
ZWQuCisgICAgICAgICogR1BVUHJvY2Vzcy9ncmFwaGljcy9HUFVQcm9jZXNzR3JhcGhpY3NDb250
ZXh0R0wuaDoKKyAgICAgICAgKiBHUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZUdyYXBoaWNzQ29u
dGV4dEdMQ29jb2EuY3BwOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVHcmFwaGljc0NvbnRleHRH
TENvY29hOjpSZW1vdGVHcmFwaGljc0NvbnRleHRHTENvY29hKToKKyAgICAgICAgKFdlYktpdDo6
UmVtb3RlR3JhcGhpY3NDb250ZXh0R0xDb2NvYTo6cGxhdGZvcm1Xb3JrUXVldWVJbml0aWFsaXpl
KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlR3JhcGhpY3NDb250ZXh0R0xDb2NvYTo6cHJlcGFy
ZUZvckRpc3BsYXkpOgorICAgICAgICAqIEdQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlSW1hZ2VC
dWZmZXIuaDoKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlSW1hZ2VCdWZmZXI6OnNldE93bmVyc2hp
cElkZW50aXR5KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlSW1hZ2VCdWZmZXI6OnNldFByb2Nl
c3NPd25lcnNoaXApOiBEZWxldGVkLgorICAgICAgICAqIEdQVVByb2Nlc3MvZ3JhcGhpY3MvUmVt
b3RlUmVuZGVyaW5nQmFja2VuZC5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlbmRlcmlu
Z0JhY2tlbmQ6OlJlbW90ZVJlbmRlcmluZ0JhY2tlbmQpOgorICAgICAgICAoV2ViS2l0OjpSZW1v
dGVSZW5kZXJpbmdCYWNrZW5kOjpjcmVhdGVJbWFnZUJ1ZmZlcldpdGhRdWFsaWZpZWRJZGVudGlm
aWVyKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVuZGVyaW5nQmFja2VuZDo6Z2V0RGF0YVVS
TEZvckltYWdlQnVmZmVyV2l0aFF1YWxpZmllZElkZW50aWZpZXIpOgorICAgICAgICAqIEdQVVBy
b2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5oOgorICAgICAgICAqIEdQVVBy
b2Nlc3Mvd2VicnRjL0xpYldlYlJUQ0NvZGVjc1Byb3h5Lm1tOgorICAgICAgICAoV2ViS2l0OjpG
dW5jdGlvbjx2b2lkKToKKyAgICAgICAgKiBTaGFyZWQvR1BVUHJvY2Vzc0Nvbm5lY3Rpb25QYXJh
bWV0ZXJzLmg6CisgICAgICAgIChXZWJLaXQ6OkdQVVByb2Nlc3NDb25uZWN0aW9uUGFyYW1ldGVy
czo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6R1BVUHJvY2Vzc0Nvbm5lY3Rpb25Q
YXJhbWV0ZXJzOjpkZWNvZGUpOgorICAgICAgICAqIFNoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2Rl
cnMuY3BwOgorICAgICAgICAqIFNoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuaDoKKyAgICAg
ICAgKiBVSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6OlNvdXJjZVByb3h5
OjpTb3VyY2VQcm94eSk6CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2Vy
UHJveHk6OlNvdXJjZVByb3h5OjpzZXRTaG91bGRBcHBseVJvdGF0aW9uKToKKyAgICAgICAgKFdl
YktpdDo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6Y3JlYXRlTWVkaWFTb3VyY2VGb3JD
YXB0dXJlRGV2aWNlV2l0aENvbnN0cmFpbnRzKToKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlh
Q2FwdHVyZU1hbmFnZXJQcm94eTo6Y2xvbmUpOgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFD
YXB0dXJlTWFuYWdlclByb3h5OjpTb3VyY2VQcm94eTo6c2V0V2ViUHJvY2Vzc0lkZW50aXR5VG9r
ZW4pOiBEZWxldGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJl
TWFuYWdlclByb3h5Lmg6CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2Vy
UHJveHk6OkNvbm5lY3Rpb25Qcm94eTo6cmVzb3VyY2VPd25lciBjb25zdCk6CisgICAgICAgIChX
ZWJLaXQ6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6OkNvbm5lY3Rpb25Qcm94eTo6d2Vi
UHJvY2Vzc0lkZW50aXR5VG9rZW4gY29uc3QpOiBEZWxldGVkLgorICAgICAgICAqIFdlYlByb2Nl
c3MvR1BVL2dyYXBoaWNzL2NvY29hL0ltYWdlQnVmZmVyU2hhcmVhYmxlTWFwcGVkSU9TdXJmYWNl
QmFja2VuZC5jcHA6CisgICAgICAgIChXZWJLaXQ6OkltYWdlQnVmZmVyU2hhcmVhYmxlTWFwcGVk
SU9TdXJmYWNlQmFja2VuZDo6c2V0T3duZXJzaGlwSWRlbnRpdHkpOgorICAgICAgICAoV2ViS2l0
OjpJbWFnZUJ1ZmZlclNoYXJlYWJsZU1hcHBlZElPU3VyZmFjZUJhY2tlbmQ6OnNldFByb2Nlc3NP
d25lcnNoaXApOiBEZWxldGVkLgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL2Nv
Y29hL0ltYWdlQnVmZmVyU2hhcmVhYmxlTWFwcGVkSU9TdXJmYWNlQmFja2VuZC5oOgorICAgICAg
ICAqIFdlYlByb2Nlc3MvY29jb2EvV2ViUHJvY2Vzc0NvY29hLm1tOgorICAgICAgICAoV2ViS2l0
OjpXZWJQcm9jZXNzOjpwbGF0Zm9ybUluaXRpYWxpemVHUFVQcm9jZXNzQ29ubmVjdGlvblBhcmFt
ZXRlcnMpOgogMjAyMS0xMi0wMiAgUGVyIEFybmUgVm9sbGFuICA8cHZvbGxhbkBhcHBsZS5jb20+
CiAKICAgICAgICAgW1dQXSBTdHJlbmd0aGVuIHNhbmRib3ggd2hlbiBBcHBDYWNoZSBpcyBkaXNh
YmxlZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZSBiL1NvdXJjZS9X
ZWJDb3JlL0hlYWRlcnMuY21ha2UKaW5kZXggOTUxOTljY2Q4MzY4NmYxYjlkOWJmZWFjNmI2MDk1
M2I0MGMxYjc5ZS4uY2M4NDJiMjgyOTkxOTZjMGY1ODg2ZjU1NThmMGRmMzAyZjVkMDA4ZCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9IZWFkZXJzLmNtYWtlCkBAIC0xMjc4LDYgKzEyNzgsNyBAQCBzZXQoV2ViQ29yZV9QUklWQVRF
X0ZSQU1FV09SS19IRUFERVJTCiAgICAgcGxhdGZvcm0vUG9wdXBNZW51Q2xpZW50LmgKICAgICBw
bGF0Zm9ybS9Qb3B1cE1lbnVTdHlsZS5oCiAgICAgcGxhdGZvcm0vUHJvY2Vzc0lkZW50aWZpZXIu
aAorICAgIHBsYXRmb3JtL1Byb2Nlc3NJZGVudGl0eS5oCiAgICAgcGxhdGZvcm0vUHJvY2Vzc1F1
YWxpZmllZC5oCiAgICAgcGxhdGZvcm0vUHJvbWlzZWRBdHRhY2htZW50SW5mby5oCiAgICAgcGxh
dGZvcm0vUHVibGljU3VmZml4LmgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMu
dHh0IGIvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKaW5kZXggZmU0OTVlMWZmMmM1ZGY0Mzk4
MmMyNWViN2Y2ZTViNjQxZjhlMTI2Yy4uNGMzNmNjNzRlNmMzMTA5YTY4MTUxMGUzMDE3M2M1OTQ0
YTllZTdhMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKKysrIGIvU291
cmNlL1dlYkNvcmUvU291cmNlcy50eHQKQEAgLTE4ODEsNiArMTg4MSw3IEBAIHBsYXRmb3JtL1Bs
YXRmb3JtU3RyYXRlZ2llcy5jcHAKIHBsYXRmb3JtL1BsYXRmb3JtV2hlZWxFdmVudC5jcHAKIHBs
YXRmb3JtL1ByZXZpZXdDb252ZXJ0ZXIuY3BwCiBwbGF0Zm9ybS9Qcm9jZXNzSWRlbnRpZmllci5j
cHAKK3BsYXRmb3JtL1Byb2Nlc3NJZGVudGl0eS5jcHAKIHBsYXRmb3JtL1JlZmVycmVyUG9saWN5
LmNwcAogcGxhdGZvcm0vUmVtb3RlQ29tbWFuZExpc3RlbmVyLmNwcAogcGxhdGZvcm0vUnVudGlt
ZUFwcGxpY2F0aW9uQ2hlY2tzLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGM4YzFlMzdmZDQ0NWJhZGI1NGU0Y2VjMzg2NDdh
YTY5Mjg4ZTRlYWUuLjhkNzc1NTEzYzkxY2MxOTZlYTZlODY1NTRhZDhmNWU5ZTk3NDQxM2IgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oK
QEAgLTIzNzUsNiArMjM3NSw3IEBACiAJCTdCQjM0QTQ4MjUzNzc2Q0EwMDAyOUQwOCAvKiBHcmFw
aGljc0NvbnRleHRHTEltYWdlRXh0cmFjdG9yLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA3QkIzNEE0NTI1Mzc3NkM2MDAwMjlEMDggLyogR3JhcGhpY3ND
b250ZXh0R0xJbWFnZUV4dHJhY3Rvci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFBy
aXZhdGUsICk7IH07IH07CiAJCTdCQjY4MEJBMjVCQTFCRTQwMDJCODczOCAvKiBHcmFwaGljc0No
ZWNrc01hYy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
N0JCNjgwQjgyNUJBMUJFNDAwMkI4NzM4IC8qIEdyYXBoaWNzQ2hlY2tzTWFjLmggKi87IHNldHRp
bmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJN0JEREEzMUYyNzRGQTAy
MTAwMzg2NTlFIC8qIEdyYXBoaWNzQ29udGV4dEdMQ29jb2EuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdCRERBMzFEMjc0RjlEQTUwMDM4NjU5RSAvKiBH
cmFwaGljc0NvbnRleHRHTENvY29hLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKKwkJN0JEREEzNEMyNzVBMDEzMTAwMzg2NTlFIC8qIFByb2Nlc3NJZGVu
dGl0eS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0JE
REEzNDkyNzVBMDEzMDAwMzg2NTlFIC8qIFByb2Nlc3NJZGVudGl0eS5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTdCRTc0MjczODFGQTkwNkZCQjRG
MEYyQyAvKiBKU1NWR0dyYXBoaWNzRWxlbWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gOTUwQzRDMDJCRUQ4OTM2RjgxOEUyRjk5IC8qIEpTU1ZHR3Jh
cGhpY3NFbGVtZW50LmggKi87IH07CiAJCTdCRkY1OUY0Mjc1NzcyNjcwMDc3M0QzOSAvKiBEaXNw
bGF5Q29uZmlndXJhdGlvbk1vbml0b3IuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDdCRkY1OUVGMjc1NzcxRTgwMDc3M0QzOSAvKiBEaXNwbGF5Q29uZmln
dXJhdGlvbk1vbml0b3IuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OwogCQk3QzAyOUM2RTI0OTNDOEY4MDAyNjgyMDQgLyogQ29sb3JUeXBlcy5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0MwMjlDNkQyNDkzQzhG
ODAwMjY4MjA0IC8qIENvbG9yVHlwZXMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQ
cml2YXRlLCApOyB9OyB9OwpAQCAtMTEzODIsNiArMTEzODMsOCBAQAogCQk3QkNENDJEQzI3MDVD
OTQ5MDBFQjIxMjcgLyogQU5HTEVVdGlsaXRpZXNDb2NvYS5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBBTkdM
RVV0aWxpdGllc0NvY29hLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdCRERBMzFD
Mjc0RjlEQTQwMDM4NjU5RSAvKiBHcmFwaGljc0NvbnRleHRHTENvY29hLm1tICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gR3JhcGhpY3NDb250ZXh0R0xDb2NvYS5tbTsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0JEREEzMUQyNzRGOURBNTAwMzg2NTlFIC8q
IEdyYXBoaWNzQ29udGV4dEdMQ29jb2EuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gR3JhcGhpY3NDb250ZXh0R0xDb2NvYS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQk3QkREQTM0OTI3NUEwMTMwMDAzODY1OUUgLyogUHJvY2Vzc0lkZW50aXR5LmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFByb2Nlc3NJZGVudGl0eS5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQk3QkREQTM0QjI3NUEwMTMwMDAzODY1OUUgLyogUHJvY2Vzc0lkZW50
aXR5LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFByb2Nlc3NJZGVu
dGl0eS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdCRTcyNjVCMjU3NjNCOEQw
MEU4NUQ5OCAvKiBSZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5QmFzZS5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBSZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5QmFzZS5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdCRkY1OUVGMjc1NzcxRTgwMDc3M0QzOSAvKiBEaXNwbGF5
Q29uZmlndXJhdGlvbk1vbml0b3IuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBleHBs
aWNpdEZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuaDsgZmlsZUVuY29kaW5nID0gNDsgcGF0aCA9
IERpc3BsYXlDb25maWd1cmF0aW9uTW9uaXRvci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk3QkZGNTlGMTI3NTc3MUU4MDA3NzNEMzkgLyogRGlzcGxheUNvbmZpZ3VyYXRpb25Nb25p
dG9yLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IERpc3BsYXlDb25m
aWd1cmF0aW9uTW9uaXRvci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0yOTc0
Niw2ICsyOTc0OSw4IEBACiAJCQkJQTFBREFGN0MyMzYwRkQzRTAwOUNCNzc2IC8qIFByZXZpZXdD
b252ZXJ0ZXJQcm92aWRlci5oICovLAogCQkJCTUxRjY0NUQyMUZFQ0RCQzgwMEI1NERFRCAvKiBQ
cm9jZXNzSWRlbnRpZmllci5jcHAgKi8sCiAJCQkJNTFGNjQ1RDMxRkVDREJDODAwQjU0REVEIC8q
IFByb2Nlc3NJZGVudGlmaWVyLmggKi8sCisJCQkJN0JEREEzNEIyNzVBMDEzMDAwMzg2NTlFIC8q
IFByb2Nlc3NJZGVudGl0eS5jcHAgKi8sCisJCQkJN0JEREEzNDkyNzVBMDEzMDAwMzg2NTlFIC8q
IFByb2Nlc3NJZGVudGl0eS5oICovLAogCQkJCTFDQzU0QUZCMjcwRjkyREEwMDVCRjhCRSAvKiBQ
cm9jZXNzUXVhbGlmaWVkLmggKi8sCiAJCQkJRjQ3QTYzM0MxRkY2RkQ1MDAwODFCM0NDIC8qIFBy
b21pc2VkQXR0YWNobWVudEluZm8uaCAqLywKIAkJCQkwMDgxRkVGRDE2QjBBMjQ0MDA4QUFBN0Eg
LyogUHVibGljU3VmZml4LmggKi8sCkBAIC0zNjI1Nyw2ICszNjI2Miw3IEBACiAJCQkJQjcxRkU2
REYxMTA5MUNCMzAwREFFRjc3IC8qIFByaW50Q29udGV4dC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
NkIwQTA3RjIyMUZBNEI1QzAwRDU3MzkxIC8qIFByaXZhdGVDbGlja01lYXN1cmVtZW50LmggaW4g
SGVhZGVycyAqLywKIAkJCQk1MUY2NDVENTFGRUNEQkNFMDBCNTRERUQgLyogUHJvY2Vzc0lkZW50
aWZpZXIuaCBpbiBIZWFkZXJzICovLAorCQkJCTdCRERBMzRDMjc1QTAxMzEwMDM4NjU5RSAvKiBQ
cm9jZXNzSWRlbnRpdHkuaCBpbiBIZWFkZXJzICovLAogCQkJCUE4RUE3RUJDMEExOTQ1RDAwMEE4
RUY1RiAvKiBQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCTFDQzU0
QUZFMjcwRjk2QUUwMDVCRjhCRSAvKiBQcm9jZXNzUXVhbGlmaWVkLmggaW4gSGVhZGVycyAqLywK
IAkJCQlFNDIwNTAxNzIxNDE5MDFCMDA2NkVGM0IgLyogUHJvY2Vzc1dhcm1pbmcuaCBpbiBIZWFk
ZXJzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTG9nZ2luZy5oIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTG9nZ2luZy5oCmluZGV4IDNmYmU0MTdiZTk4MWI3NWU3
NzlkZTIzOGZjNGJlMDVhNmQ3MzBmYWEuLmRjMGY1MDk4Yjg3ZjE4NDU1MjViZTNjMGJhNDFmNzY3
NWIxNDA0N2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xvZ2dpbmcuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Mb2dnaW5nLmgKQEAgLTk0LDYgKzk0LDcgQEAg
bmFtZXNwYWNlIFdlYkNvcmUgewogICAgIE0oUGx1Z2lucykgXAogICAgIE0oUG9wdXBCbG9ja2lu
ZykgXAogICAgIE0oUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQpIFwKKyAgICBNKFByb2Nlc3MpIFwK
ICAgICBNKFByb2dyZXNzKSBcCiAgICAgTShSZW1vdGVJbnNwZWN0b3IpIFwKICAgICBNKFJlcXVl
c3RBbmltYXRpb25GcmFtZSkgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
UHJvY2Vzc0lkZW50aXR5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Byb2Nlc3NJZGVu
dGl0eS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uNzE5ZDAzNjg5MTMxNjgwMTg3NGRkMzcwZmIyYmIzMjEwZjM1
NjY4OQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Byb2Nlc3NJ
ZGVudGl0eS5jcHAKQEAgLTAsMCArMSw3OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9S
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJQcm9jZXNz
SWRlbnRpdHkuaCIKKworI2luY2x1ZGUgIkxvZ2dpbmcuaCIKKworI2lmIEhBVkUoVEFTS19JREVO
VElUWV9UT0tFTikKKyNpbmNsdWRlIDxtYWNoL21hY2guaD4KKyNlbmRpZgorCituYW1lc3BhY2Ug
V2ViQ29yZSB7CisKK1JlZlB0cjxQcm9jZXNzSWRlbnRpdHk+IFByb2Nlc3NJZGVudGl0eTo6Y3Jl
YXRlKEhhbmRsZSYmIGhhbmRsZSkKK3sKKyNpZiBIQVZFKFRBU0tfSURFTlRJVFlfVE9LRU4pCisg
ICAgaWYgKGhhbmRsZSkKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBQcm9jZXNzSWRlbnRp
dHkoV1RGTW92ZShoYW5kbGUpKSk7CisjZWxzZQorICAgIFVOVVNFRF9QQVJBTShoYW5kbGUpOwor
I2VuZGlmCisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKK1Byb2Nlc3NJZGVudGl0eTo6UHJvY2Vz
c0lkZW50aXR5KEhhbmRsZSYmIGhhbmRsZSkKKyAgICA6IG1faGFuZGxlKFdURk1vdmUoaGFuZGxl
KSkKK3sKK30KKworUHJvY2Vzc0lkZW50aXR5OjpIYW5kbGUgUHJvY2Vzc0lkZW50aXR5OjpoYW5k
bGVGb3JDdXJyZW50UHJvY2VzcygpCit7CisgICAgUHJvY2Vzc0lkZW50aXR5OjpIYW5kbGUgcmVz
dWx0OworI2lmIEhBVkUoVEFTS19JREVOVElUWV9UT0tFTikKKyAgICB0YXNrX2lkX3Rva2VuX3Qg
aWRlbnRpdHlUb2tlbjsKKyAgICBrZXJuX3JldHVybl90IGtyID0gdGFza19jcmVhdGVfaWRlbnRp
dHlfdG9rZW4obWFjaF90YXNrX3NlbGYoKSwgJmlkZW50aXR5VG9rZW4pOworICAgIGlmIChrciA9
PSBLRVJOX1NVQ0NFU1MpCisgICAgICAgIHJlc3VsdCA9IE1hY2hTZW5kUmlnaHQ6OmFkb3B0KGlk
ZW50aXR5VG9rZW4pOworICAgIGVsc2UKKyAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoUHJvY2Vz
cywgInRhc2tfY3JlYXRlX2lkZW50aXR5X3Rva2VuKCkgZmFpbGVkOiAle3ByaXZhdGV9cyAoJXgp
IiwgbWFjaF9lcnJvcl9zdHJpbmcoa3IpLCBrcik7CisjZW5kaWYKKyAgICByZXR1cm4gcmVzdWx0
OworfQorCitjb25zdCBQcm9jZXNzSWRlbnRpdHk6OkhhbmRsZSYgUHJvY2Vzc0lkZW50aXR5Ojpo
YW5kbGUoKSBjb25zdAoreworICAgIHJldHVybiBtX2hhbmRsZTsKK30KKworI2lmIEhBVkUoVEFT
S19JREVOVElUWV9UT0tFTikKK3Rhc2tfaWRfdG9rZW5fdCBQcm9jZXNzSWRlbnRpdHk6OnRhc2tJ
ZFRva2VuKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9oYW5kbGUuc2VuZFJpZ2h0KCk7Cit9Cisj
ZW5kaWYKKworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUHJvY2Vzc0lk
ZW50aXR5LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Qcm9jZXNzSWRlbnRpdHkuaApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi4wY2EwMTkzYjEyZTU0NDM2YzZmZWJiYzZlYmUzNGUwMTYzNzYwZmEwCi0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUHJvY2Vzc0lkZW50aXR5LmgKQEAg
LTAsMCArMSw2MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBP
RiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAq
IFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSA8d3RmL1RocmVhZFNhZmVSZWZDb3VudGVkLmg+
CisKKyNpZiBIQVZFKFRBU0tfSURFTlRJVFlfVE9LRU4pCisjaW5jbHVkZSA8d3RmL01hY2hTZW5k
UmlnaHQuaD4KKyNlbHNlCisjaW5jbHVkZSA8dmFyaWFudD4KKyNlbmRpZgorCituYW1lc3BhY2Ug
V2ViQ29yZSB7CisKKy8vIE9iamVjdCB0byBhY2Nlc3MgcHJvb2Ygb2YgcHJvY2VzcyBpZGVudGl0
eS4KKy8vIFByb2Nlc3NJZGVudGlmaWVyIGlkZW50aWZpZXMgYSBwcm9jZXNzLgorLy8gUHJvY2Vz
c0lkZW50aXR5IGdyYW50cyBhY2Nlc3MgdG8gdGhlIGlkZW50aXR5LgorY2xhc3MgV0VCQ09SRV9F
WFBPUlQgUHJvY2Vzc0lkZW50aXR5IGZpbmFsIDogcHVibGljIFRocmVhZFNhZmVSZWZDb3VudGVk
PFByb2Nlc3NJZGVudGl0eT4geworcHVibGljOgorI2lmIEhBVkUoVEFTS19JREVOVElUWV9UT0tF
TikKKyAgICB1c2luZyBIYW5kbGUgPSBNYWNoU2VuZFJpZ2h0OworI2Vsc2UKKyAgICB1c2luZyBI
YW5kbGUgPSBzdGQ6Om1vbm9zdGF0ZTsKKyNlbmRpZgorICAgIHN0YXRpYyBSZWZQdHI8UHJvY2Vz
c0lkZW50aXR5PiBjcmVhdGUoSGFuZGxlJiYpOworICAgIHN0YXRpYyBIYW5kbGUgaGFuZGxlRm9y
Q3VycmVudFByb2Nlc3MoKTsKKyAgICBjb25zdCBIYW5kbGUmIGhhbmRsZSgpIGNvbnN0OworCisj
aWYgSEFWRShUQVNLX0lERU5USVRZX1RPS0VOKQorICAgIHRhc2tfaWRfdG9rZW5fdCB0YXNrSWRU
b2tlbigpIGNvbnN0OworI2VuZGlmCitwcml2YXRlOgorICAgIFByb2Nlc3NJZGVudGl0eShIYW5k
bGUmJik7CisKKyAgICBIYW5kbGUgbV9oYW5kbGU7Cit9OworCit9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9SZW1vdGVWaWRlb1NhbXBsZS5oIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvUmVtb3RlVmlkZW9TYW1wbGUuaAppbmRleCBhNjE3
MGIzMjhmYzQ0YWNlNjkzZGNkYjM1ZWU0ZDNjZTY4NzMzOGExLi4wZjViYWVhODU2ZTNmMWE4Y2Ux
NjViMjAzODY1Yzk2NDQzNTQyNTYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9SZW1vdGVWaWRlb1NhbXBsZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL1JlbW90ZVZpZGVvU2FtcGxlLmgKQEAgLTM3LDYgKzM3LDggQEAgdHlwZWRl
ZiBzdHJ1Y3QgX19DVkJ1ZmZlciogQ1ZQaXhlbEJ1ZmZlclJlZjsKIAogbmFtZXNwYWNlIFdlYkNv
cmUgewogCitjbGFzcyBQcm9jZXNzSWRlbnRpdHk7CisKIGNsYXNzIFJlbW90ZVZpZGVvU2FtcGxl
IHsKIHB1YmxpYzoKICAgICBSZW1vdGVWaWRlb1NhbXBsZSgpID0gZGVmYXVsdDsKQEAgLTQ4LDkg
KzUwLDcgQEAgcHVibGljOgogICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBzdGQ6OnVuaXF1ZV9w
dHI8UmVtb3RlVmlkZW9TYW1wbGU+IGNyZWF0ZShSZXRhaW5QdHI8Q1ZQaXhlbEJ1ZmZlclJlZj4m
JiwgTWVkaWFUaW1lJiYgcHJlc2VudGF0aW9uVGltZSwgTWVkaWFTYW1wbGU6OlZpZGVvUm90YXRp
b24gPSBNZWRpYVNhbXBsZTo6VmlkZW9Sb3RhdGlvbjo6Tm9uZSk7CiAgICAgV0VCQ09SRV9FWFBP
UlQgSU9TdXJmYWNlUmVmIHN1cmZhY2UoKSBjb25zdDsKIAotI2lmIEhBVkUoSU9TVVJGQUNFX1NF
VF9PV05FUlNISVBfSURFTlRJVFkpCi0gICAgdm9pZCBzZXRPd25lcnNoaXBJZGVudGl0eSh0YXNr
X2lkX3Rva2VuX3QgbmV3T3duZXIpOwotI2VuZGlmCisgICAgdm9pZCBzZXRPd25lcnNoaXBJZGVu
dGl0eShQcm9jZXNzSWRlbnRpdHkqIHJlc291cmNlT3duZXIpOwogCiAgICAgY29uc3QgTWVkaWFU
aW1lJiB0aW1lKCkgY29uc3QgeyByZXR1cm4gbV90aW1lOyB9CiAgICAgdWludDMyX3QgdmlkZW9G
b3JtYXQoKSBjb25zdCB7IHJldHVybiBtX3ZpZGVvRm9ybWF0OyB9CkBAIC0xMTksMTMgKzExOSwx
MSBAQCBwcml2YXRlOgogICAgIGJvb2wgbV9taXJyb3JlZCB7IGZhbHNlIH07CiB9OwogCi0jaWYg
SEFWRShJT1NVUkZBQ0VfU0VUX09XTkVSU0hJUF9JREVOVElUWSkKLWlubGluZSB2b2lkIFJlbW90
ZVZpZGVvU2FtcGxlOjpzZXRPd25lcnNoaXBJZGVudGl0eSh0YXNrX2lkX3Rva2VuX3QgbmV3T3du
ZXIpCitpbmxpbmUgdm9pZCBSZW1vdGVWaWRlb1NhbXBsZTo6c2V0T3duZXJzaGlwSWRlbnRpdHko
UHJvY2Vzc0lkZW50aXR5KiByZXNvdXJjZU93bmVyKQogewogICAgIGlmIChtX2lvU3VyZmFjZSkK
LSAgICAgICAgbV9pb1N1cmZhY2UtPnNldE93bmVyc2hpcElkZW50aXR5KG5ld093bmVyKTsKKyAg
ICAgICAgbV9pb1N1cmZhY2UtPnNldE93bmVyc2hpcElkZW50aXR5KHJlc291cmNlT3duZXIpOwog
fQotI2VuZGlmCiAKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvYW5nbGUvR3JhcGhpY3NDb250ZXh0R0xBTkdMRS5oIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvYW5nbGUvR3JhcGhpY3NDb250ZXh0R0xBTkdMRS5oCmluZGV4IDQzZDVk
MjkwZGQ2ODJjYTU5NjU2MDExMGE2NmE1YTdkYThmODUyYTAuLjFlMzY0NjcxZDM1ZWI1NTA1MzY1
ZWJhOWM4N2Y3Y2FjZGZlZjk1MzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2FuZ2xlL0dyYXBoaWNzQ29udGV4dEdMQU5HTEUuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hbmdsZS9HcmFwaGljc0NvbnRleHRHTEFOR0xFLmgKQEAg
LTQyNyw2ICs0MjcsNyBAQCBwcm90ZWN0ZWQ6CiAgICAgc3RkOjp1bmlxdWVfcHRyPEV4dGVuc2lv
bnNHTEFOR0xFPiBtX2V4dGVuc2lvbnM7CiAKICNpZiBQTEFURk9STShDT0NPQSkKKyAgICAvLyBG
SVhNRTogTW92ZSB0aGVzZSB0byBHcmFwaGljc0NvbnRleHRHTENvY29hLgogICAgIEdyYXBoaWNz
Q29udGV4dEdMSU9TdXJmYWNlU3dhcENoYWluIG1fc3dhcENoYWluOwogICAgIEVHTERpc3BsYXkg
bV9kaXNwbGF5T2JqIHsgbnVsbHB0ciB9OwogICAgIFBsYXRmb3JtR3JhcGhpY3NDb250ZXh0R0wg
bV9jb250ZXh0T2JqIHsgbnVsbHB0ciB9OwpAQCAtNDM2LDYgKzQzNyw3IEBAIHByb3RlY3RlZDoK
ICAgICAvLyBXaGVuIHByZXNlcnZlRHJhd2luZ0J1ZmZlciA9PSB0cnVlLCB0aGlzIGlzIGJsaXR0
ZWQgdG8gZHVyaW5nIGRpc3BsYXkgcHJlcGFyZS4KICAgICBzdGQ6OnVuaXF1ZV9wdHI8SU9TdXJm
YWNlPiBtX2Rpc3BsYXlCdWZmZXJCYWNraW5nOwogICAgIHZvaWQqIG1fZGlzcGxheUJ1ZmZlclBi
dWZmZXIgeyBudWxscHRyIH07CisgICAgUmVmUHRyPFByb2Nlc3NJZGVudGl0eT4gbV9yZXNvdXJj
ZU93bmVyOwogI2VuZGlmCiAjaWYgVVNFKENPT1JESU5BVEVEX0dSQVBISUNTKQogICAgIEdDR0x1
aW50IG1fY29tcG9zaXRvclRleHR1cmUgeyAwIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9HcmFwaGljc0NvbnRleHRHTENvY29hLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9HcmFwaGljc0NvbnRleHRHTENvY29h
LmgKaW5kZXggYTY0OGZjZDJlYzRmMGI5YjUxZTMwMjM2OWUwMTI0OWI1MmQ5YjRlNC4uZGI0MWEw
NWRjOGUxNzEwMzA2MTU4NzA3ZmIyZmYxNzk4MGM4Mzc0NSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvR3JhcGhpY3NDb250ZXh0R0xDb2NvYS5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0dyYXBoaWNzQ29udGV4
dEdMQ29jb2EuaApAQCAtNDIsOSArNDIsMTEgQEAgY2xhc3MgR3JhcGhpY3NDb250ZXh0R0xDVkNv
Y29hOwogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK2NsYXNzIFByb2Nlc3NJZGVudGl0eTsKKwog
Y2xhc3MgV0VCQ09SRV9FWFBPUlQgR3JhcGhpY3NDb250ZXh0R0xDb2NvYSA6IHB1YmxpYyBHcmFw
aGljc0NvbnRleHRHTEFOR0xFIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmUHRyPEdyYXBoaWNz
Q29udGV4dEdMQ29jb2E+IGNyZWF0ZShXZWJDb3JlOjpHcmFwaGljc0NvbnRleHRHTEF0dHJpYnV0
ZXMmJik7CisgICAgc3RhdGljIFJlZlB0cjxHcmFwaGljc0NvbnRleHRHTENvY29hPiBjcmVhdGUo
V2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0R0xBdHRyaWJ1dGVzJiYsIFJlZlB0cjxQcm9jZXNzSWRl
bnRpdHk+JiYgcmVzb3VyY2VPd25lcik7CiAgICAgfkdyYXBoaWNzQ29udGV4dEdMQ29jb2EoKTsK
ICAgICBJT1N1cmZhY2UqIGRpc3BsYXlCdWZmZXIoKTsKICAgICB2b2lkIG1hcmtEaXNwbGF5QnVm
ZmVySW5Vc2UoKTsKQEAgLTc2LDkgKzc4LDggQEAgcHVibGljOgogICAgIHZvaWQgdXBkYXRlQ29u
dGV4dE9uRGlzcGxheVJlY29uZmlndXJhdGlvbigpOwogI2VuZGlmCiBwcm90ZWN0ZWQ6Ci0gICAg
R3JhcGhpY3NDb250ZXh0R0xDb2NvYShXZWJDb3JlOjpHcmFwaGljc0NvbnRleHRHTEF0dHJpYnV0
ZXMmJik7CisgICAgR3JhcGhpY3NDb250ZXh0R0xDb2NvYShXZWJDb3JlOjpHcmFwaGljc0NvbnRl
eHRHTEF0dHJpYnV0ZXMmJiwgUmVmUHRyPFByb2Nlc3NJZGVudGl0eT4mJiByZXNvdXJjZU93bmVy
KTsKICAgICBib29sIGlzVmFsaWQoKSBjb25zdDsKLQogI2lmIEVOQUJMRShWSURFTykKICAgICBz
dGQ6OnVuaXF1ZV9wdHI8R3JhcGhpY3NDb250ZXh0R0xDVkNvY29hPiBtX2N2OwogI2VuZGlmCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9HcmFwaGlj
c0NvbnRleHRHTENvY29hLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29j
b2EvR3JhcGhpY3NDb250ZXh0R0xDb2NvYS5tbQppbmRleCBhNGFlZTNkZmFiMGY3N2EyZmVjNWI1
Y2RmZGNmYjgyZTQwZTQxMWU2Li41NzQxYzBkODVhMWViMGQzMjUzYTM2ZTIxOGQ1NmE0MTllY2U1
NmIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9H
cmFwaGljc0NvbnRleHRHTENvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2NvY29hL0dyYXBoaWNzQ29udGV4dEdMQ29jb2EubW0KQEAgLTM1LDYgKzM1LDcgQEAK
ICNpbXBvcnQgIkdyYXBoaWNzQ29udGV4dEdMSU9TdXJmYWNlU3dhcENoYWluLmgiCiAjaW1wb3J0
ICJHcmFwaGljc0NvbnRleHRHTE9wZW5HTE1hbmFnZXIuaCIKICNpbXBvcnQgIkxvZ2dpbmcuaCIK
KyNpbXBvcnQgIlByb2Nlc3NJZGVudGl0eS5oIgogI2ltcG9ydCAiUnVudGltZUFwcGxpY2F0aW9u
Q2hlY2tzLmgiCiAjaW1wb3J0IDxDb3JlR3JhcGhpY3MvQ0dCaXRtYXBDb250ZXh0Lmg+CiAjaW1w
b3J0IDxNZXRhbC9NZXRhbC5oPgpAQCAtMTk0LDE5ICsxOTUsMjIgQEAgc3RhdGljIGJvb2wgbmVl
ZHNFQUdMT25NYWMoKQogfQogI2VuZGlmCiAKLVJlZlB0cjxHcmFwaGljc0NvbnRleHRHTENvY29h
PiBHcmFwaGljc0NvbnRleHRHTENvY29hOjpjcmVhdGUoR3JhcGhpY3NDb250ZXh0R0xBdHRyaWJ1
dGVzJiYgYXR0cmlidXRlcykKK1JlZlB0cjxHcmFwaGljc0NvbnRleHRHTENvY29hPiBHcmFwaGlj
c0NvbnRleHRHTENvY29hOjpjcmVhdGUoR3JhcGhpY3NDb250ZXh0R0xBdHRyaWJ1dGVzJiYgYXR0
cmlidXRlcywgUmVmUHRyPFByb2Nlc3NJZGVudGl0eT4mJiByZXNvdXJjZU93bmVyKQogewotICAg
IGF1dG8gY29udGV4dCA9IGFkb3B0UmVmKCpuZXcgR3JhcGhpY3NDb250ZXh0R0xDb2NvYShXVEZN
b3ZlKGF0dHJpYnV0ZXMpKSk7CisgICAgYXV0byBjb250ZXh0ID0gYWRvcHRSZWYoKm5ldyBHcmFw
aGljc0NvbnRleHRHTENvY29hKFdURk1vdmUoYXR0cmlidXRlcyksIFdURk1vdmUocmVzb3VyY2VP
d25lcikpKTsKICAgICBpZiAoIWNvbnRleHQtPmlzVmFsaWQoKSkKICAgICAgICAgcmV0dXJuIG51
bGxwdHI7CiAgICAgcmV0dXJuIGNvbnRleHQ7CiB9CiAKLUdyYXBoaWNzQ29udGV4dEdMQ29jb2E6
OkdyYXBoaWNzQ29udGV4dEdMQ29jb2EoR3JhcGhpY3NDb250ZXh0R0xBdHRyaWJ1dGVzJiYgY3Jl
YXRpb25BdHRyaWJ1dGVzKQorR3JhcGhpY3NDb250ZXh0R0xDb2NvYTo6R3JhcGhpY3NDb250ZXh0
R0xDb2NvYShHcmFwaGljc0NvbnRleHRHTEF0dHJpYnV0ZXMmJiBjcmVhdGlvbkF0dHJpYnV0ZXMs
IFJlZlB0cjxQcm9jZXNzSWRlbnRpdHk+JiYgcmVzb3VyY2VPd25lcikKICAgICA6IEdyYXBoaWNz
Q29udGV4dEdMQU5HTEUoV1RGTW92ZShjcmVhdGlvbkF0dHJpYnV0ZXMpKQogewogICAgIGlmICgh
aXNWYWxpZCgpKQogICAgICAgICByZXR1cm47CisgICAgLy8gRklYTUU6IE1vdmUgdGhpcyB0byBp
bml0aWFsaXplciBsaXN0IG9uY2UgbV9yZXNvdXJjZU93bmVyIG1vdmVzIHRvIEdyYXBoaWNzQ29u
dGV4dEdMQ29jb2EuCisgICAgbV9yZXNvdXJjZU93bmVyID0gV1RGTW92ZShyZXNvdXJjZU93bmVy
KTsKKwogI2lmIFBMQVRGT1JNKE1BQykKICAgICBhdXRvIGF0dHJpYnV0ZXMgPSBjb250ZXh0QXR0
cmlidXRlcygpOwogICAgIGlmICghYXR0cmlidXRlcy51c2VNZXRhbCAmJiBhdHRyaWJ1dGVzLmVm
ZmVjdGl2ZVBvd2VyUHJlZmVyZW5jZSgpID09IEdyYXBoaWNzQ29udGV4dEdMUG93ZXJQcmVmZXJl
bmNlOjpIaWdoUGVyZm9ybWFuY2UpCkBAIC01NTgsNyArNTYyLDggQEAgYm9vbCBHcmFwaGljc0Nv
bnRleHRHTEFOR0xFOjphbGxvY2F0ZUFuZEJpbmREaXNwbGF5QnVmZmVyQmFja2luZygpCiAgICAg
YXV0byBiYWNraW5nID0gSU9TdXJmYWNlOjpjcmVhdGUoZ2V0SW50ZXJuYWxGcmFtZWJ1ZmZlclNp
emUoKSwgRGVzdGluYXRpb25Db2xvclNwYWNlOjpTUkdCKCkpOwogICAgIGlmICghYmFja2luZykK
ICAgICAgICAgcmV0dXJuIGZhbHNlOwotCisgICAgaWYgKG1fcmVzb3VyY2VPd25lcikKKyAgICAg
ICAgYmFja2luZy0+c2V0T3duZXJzaGlwSWRlbnRpdHkobV9yZXNvdXJjZU93bmVyLmdldCgpKTsK
ICAgICBiYWNraW5nLT5taWdyYXRlQ29sb3JTcGFjZVRvUHJvcGVydGllcygpOwogCiAgICAgY29u
c3QgYm9vbCB1c2luZ0FscGhhID0gY29udGV4dEF0dHJpYnV0ZXMoKS5hbHBoYTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0lPU3VyZmFjZS5oIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvSU9TdXJmYWNlLmgKaW5kZXgg
NTY1MjQ3ODIyZGJhMjlmNzYwMGI5NDA3ZTZmNGFjYjhjMWEwNmFhYy4uMGM0M2NhNGY4MDRkMjYw
YzYxMDVlYjkyYjYxMTA5MWUyYzI1MzJhMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY29jb2EvSU9TdXJmYWNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY29jb2EvSU9TdXJmYWNlLmgKQEAgLTQ2LDYgKzQ2LDcgQEAgbmFtZXNw
YWNlIFdlYkNvcmUgewogY2xhc3MgR3JhcGhpY3NDb250ZXh0OwogY2xhc3MgSG9zdFdpbmRvdzsK
IGNsYXNzIEltYWdlQnVmZmVyOworY2xhc3MgUHJvY2Vzc0lkZW50aXR5OwogCiBlbnVtIGNsYXNz
IFBpeGVsRm9ybWF0IDogdWludDhfdDsKIGVudW0gY2xhc3MgVm9sYXRpbGl0eVN0YXRlIDogdWlu
dDhfdDsKQEAgLTE1OSw5ICsxNjAsNyBAQCBwdWJsaWM6CiAgICAgV0VCQ09SRV9FWFBPUlQgc3Rh
dGljIHZvaWQgY29udmVydFRvRm9ybWF0KHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpJT1N1cmZh
Y2U+JiYgaW5TdXJmYWNlLCBGb3JtYXQsIEZ1bmN0aW9uPHZvaWQoc3RkOjp1bmlxdWVfcHRyPFdl
YkNvcmU6OklPU3VyZmFjZT4pPiYmKTsKICNlbmRpZiAvLyBIQVZFKElPU1VSRkFDRV9BQ0NFTEVS
QVRPUikKIAotI2lmIEhBVkUoSU9TVVJGQUNFX1NFVF9PV05FUlNISVBfSURFTlRJVFkpCi0gICAg
V0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRPd25lcnNoaXBJZGVudGl0eSh0YXNrX2lkX3Rva2VuX3Qg
bmV3T3duZXIpOwotI2VuZGlmCisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRPd25lcnNoaXBJ
ZGVudGl0eShQcm9jZXNzSWRlbnRpdHkqIHJlc291cmNlT3duZXIpOwogCiAgICAgdm9pZCBtaWdy
YXRlQ29sb3JTcGFjZVRvUHJvcGVydGllcygpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9JT1N1cmZhY2UubW0gYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9JT1N1cmZhY2UubW0KaW5kZXggMDExMTY1Y2UxMWFiY2U2
NzVjNGI0N2JmOTE1ZDRjODFlNmNlZTk5NS4uMTViZjY4ZjdmZTVhNjk4NjdmY2M5ZDU2YTZlNWJk
NGY2YmMzZDMwMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y29jb2EvSU9TdXJmYWNlLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2NvY29hL0lPU3VyZmFjZS5tbQpAQCAtMzQsNiArMzQsNyBAQAogI2ltcG9ydCAiSW1hZ2VCdWZm
ZXIuaCIKICNpbXBvcnQgIkxvZ2dpbmcuaCIKICNpbXBvcnQgIlBsYXRmb3JtU2NyZWVuLmgiCisj
aW1wb3J0ICJQcm9jZXNzSWRlbnRpdHkuaCIKICNpbXBvcnQgPHBhbC9zcGkvY2cvQ29yZUdyYXBo
aWNzU1BJLmg+CiAjaW1wb3J0IDx3dGYvQXNzZXJ0aW9ucy5oPgogI2ltcG9ydCA8d3RmL01hY2hT
ZW5kUmlnaHQuaD4KQEAgLTQ4NCwxNCArNDg1LDE3IEBAIHZvaWQgSU9TdXJmYWNlOjpjb252ZXJ0
VG9Gb3JtYXQoc3RkOjp1bmlxdWVfcHRyPElPU3VyZmFjZT4mJiBpblN1cmZhY2UsIEZvcm1hdCBm
CiAKICNlbmRpZiAvLyBIQVZFKElPU1VSRkFDRV9BQ0NFTEVSQVRPUikKIAotI2lmIEhBVkUoSU9T
VVJGQUNFX1NFVF9PV05FUlNISVBfSURFTlRJVFkpCi12b2lkIElPU3VyZmFjZTo6c2V0T3duZXJz
aGlwSWRlbnRpdHkodGFza19pZF90b2tlbl90IG5ld093bmVyKQordm9pZCBJT1N1cmZhY2U6OnNl
dE93bmVyc2hpcElkZW50aXR5KFByb2Nlc3NJZGVudGl0eSogcmVzb3VyY2VPd25lcikKIHsKLSAg
ICBhdXRvIHJlc3VsdCA9IElPU3VyZmFjZVNldE93bmVyc2hpcElkZW50aXR5KG1fc3VyZmFjZS5n
ZXQoKSwgbmV3T3duZXIsIGtJT1N1cmZhY2VNZW1vcnlMZWRnZXJUYWdHcmFwaGljcywgMCk7Cisj
aWYgSEFWRShJT1NVUkZBQ0VfU0VUX09XTkVSU0hJUF9JREVOVElUWSkgJiYgSEFWRShUQVNLX0lE
RU5USVRZX1RPS0VOKQorICAgIHRhc2tfaWRfdG9rZW5fdCBvd25lclRhc2tJZFRva2VuID0gcmVz
b3VyY2VPd25lciA/IHJlc291cmNlT3duZXItPnRhc2tJZFRva2VuKCkgOiAwOworICAgIGF1dG8g
cmVzdWx0ID0gSU9TdXJmYWNlU2V0T3duZXJzaGlwSWRlbnRpdHkobV9zdXJmYWNlLmdldCgpLCBv
d25lclRhc2tJZFRva2VuLCBrSU9TdXJmYWNlTWVtb3J5TGVkZ2VyVGFnR3JhcGhpY3MsIDApOwog
ICAgIGlmIChyZXN1bHQgIT0ga0lPUmV0dXJuU3VjY2VzcykKLSAgICAgICAgUkVMRUFTRV9MT0df
RVJST1IoSU9TdXJmYWNlLCAiSU9TdXJmYWNlOjpzZXRPd25lcnNoaXBJZGVudGl0eTogRmFpbGVk
IHRvIGNsYWltIG93bmVyc2hpcCBvZiBJT1N1cmZhY2UgJXAsIG5ld093bmVyOiAlZCwgZXJyb3I6
ICVkIiwgbV9zdXJmYWNlLmdldCgpLCAoaW50KW5ld093bmVyLCByZXN1bHQpOwotfQorICAgICAg
ICBSRUxFQVNFX0xPR19FUlJPUihJT1N1cmZhY2UsICJJT1N1cmZhY2U6OnNldE93bmVyc2hpcElk
ZW50aXR5OiBGYWlsZWQgdG8gY2xhaW0gb3duZXJzaGlwIG9mIElPU3VyZmFjZSAlcCwgdGFzayBp
ZCB0b2tlbjogJWQsIGVycm9yOiAlZCIsIG1fc3VyZmFjZS5nZXQoKSwgKGludClvd25lclRhc2tJ
ZFRva2VuLCByZXN1bHQpOworI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0ocmVzb3VyY2VPd25lcik7
CiAjZW5kaWYKK30KIAogdm9pZCBJT1N1cmZhY2U6Om1pZ3JhdGVDb2xvclNwYWNlVG9Qcm9wZXJ0
aWVzKCkKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nv
Y29hL1dlYlByb2Nlc3NHcmFwaGljc0NvbnRleHRHTENvY29hLm1tIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvV2ViUHJvY2Vzc0dyYXBoaWNzQ29udGV4dEdMQ29jb2Eu
bW0KaW5kZXggMjU0MjYyMzBkZmVkYWQyYzVlYjkxMDQyNGEwOGE3MmUzNzE3YjJkNy4uOGQ1ZDI1
YWIxMGI0NWUzZjlhNmU4MzhhZTEwOTQxZTZmYzBlNWUzOCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvV2ViUHJvY2Vzc0dyYXBoaWNzQ29udGV4dEdM
Q29jb2EubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvV2Vi
UHJvY2Vzc0dyYXBoaWNzQ29udGV4dEdMQ29jb2EubW0KQEAgLTI5LDYgKzI5LDcgQEAKICNpZiBF
TkFCTEUoV0VCR0wpCiAjaW1wb3J0ICJHcmFwaGljc0NvbnRleHRHTENvY29hLmgiIC8vIE5PTElO
VAogI2ltcG9ydCAiR3JhcGhpY3NDb250ZXh0R0xPcGVuR0xNYW5hZ2VyLmgiCisjaW1wb3J0ICJQ
cm9jZXNzSWRlbnRpdHkuaCIKICNpbXBvcnQgIldlYkdMTGF5ZXIuaCIKICNpbXBvcnQgPHd0Zi9C
bG9ja09iakNFeGNlcHRpb25zLmg+CiAKQEAgLTc3LDcgKzc4LDcgQEAgcHJpdmF0ZToKIH07CiAK
IFdlYlByb2Nlc3NHcmFwaGljc0NvbnRleHRHTENvY29hOjpXZWJQcm9jZXNzR3JhcGhpY3NDb250
ZXh0R0xDb2NvYShHcmFwaGljc0NvbnRleHRHTEF0dHJpYnV0ZXMmJiBhdHRyaWJ1dGVzKQotICAg
IDogR3JhcGhpY3NDb250ZXh0R0xDb2NvYShXVEZNb3ZlKGF0dHJpYnV0ZXMpKQorICAgIDogR3Jh
cGhpY3NDb250ZXh0R0xDb2NvYShXVEZNb3ZlKGF0dHJpYnV0ZXMpLCB7IH0pCiAgICAgLCBtX3dl
YkdMTGF5ZXIoY3JlYXRlV2ViR0xMYXllcihjb250ZXh0QXR0cmlidXRlcygpKSkKIHsKICNpZiBQ
TEFURk9STShNQUMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvR1BVQ29u
bmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvR1BVQ29u
bmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAKaW5kZXggNTJhZTg4MTkzNzFhM2VkZDYwY2Q3MjBjZDA4
NGJiM2M4NTdmYTdjZC4uMWVmOWE2YjI1ODE2MzM3ZjM4ZDliYjBiM2M3NDg5ZmNkMWM5NDg1YyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlBy
b2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9uVG9X
ZWJQcm9jZXNzLmNwcApAQCAtMTk5LDEyICsxOTksMTAgQEAgcHJpdmF0ZToKICAgICB9CiAjZW5k
aWYKIAotI2lmIEhBVkUoSU9TVVJGQUNFX1NFVF9PV05FUlNISVBfSURFTlRJVFkpCi0gICAgc3Rk
OjpvcHRpb25hbDx0YXNrX2lkX3Rva2VuX3Q+IHdlYlByb2Nlc3NJZGVudGl0eVRva2VuKCkgY29u
c3QgZmluYWwKKyAgICBSZWZQdHI8UHJvY2Vzc0lkZW50aXR5PiByZXNvdXJjZU93bmVyKCkgY29u
c3QgZmluYWwKICAgICB7Ci0gICAgICAgIHJldHVybiBtX3Byb2Nlc3Mud2ViUHJvY2Vzc0lkZW50
aXR5VG9rZW4oKTsKKyAgICAgICAgcmV0dXJuIG1fcHJvY2Vzcy53ZWJQcm9jZXNzSWRlbnRpdHko
KTsKICAgICB9Ci0jZW5kaWYKIAogICAgIEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MmIG1fcHJv
Y2VzczsKIH07CkBAIC0yMjAsOSArMjE4LDcgQEAgR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6
R1BVQ29ubmVjdGlvblRvV2ViUHJvY2VzcyhHUFVQcm9jZXNzJiBncHVQcm9jZXNzLCBXZWIKICAg
ICA6IG1fY29ubmVjdGlvbihJUEM6OkNvbm5lY3Rpb246OmNyZWF0ZVNlcnZlckNvbm5lY3Rpb24o
Y29ubmVjdGlvbklkZW50aWZpZXIsICp0aGlzKSkKICAgICAsIG1fZ3B1UHJvY2VzcyhncHVQcm9j
ZXNzKQogICAgICwgbV93ZWJQcm9jZXNzSWRlbnRpZmllcih3ZWJQcm9jZXNzSWRlbnRpZmllcikK
LSNpZiBIQVZFKFRBU0tfSURFTlRJVFlfVE9LRU4pCi0gICAgLCBtX3dlYlByb2Nlc3NJZGVudGl0
eVRva2VuKFdURk1vdmUocGFyYW1ldGVycy53ZWJQcm9jZXNzSWRlbnRpdHlUb2tlbikpCi0jZW5k
aWYKKyAgICAsIG1fd2ViUHJvY2Vzc0lkZW50aXR5KFByb2Nlc3NJZGVudGl0eTo6Y3JlYXRlKFdU
Rk1vdmUocGFyYW1ldGVycy53ZWJQcm9jZXNzSWRlbnRpdHlIYW5kbGUpKSkKICAgICAsIG1fcmVt
b3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHkobWFrZVVuaXF1ZVJlZjxSZW1vdGVNZWRpYVBsYXll
ck1hbmFnZXJQcm94eT4oKnRoaXMpKQogICAgICwgbV9zZXNzaW9uSUQoc2Vzc2lvbklEKQogI2lm
IFBMQVRGT1JNKENPQ09BKSAmJiBVU0UoTElCV0VCUlRDKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9HUFVQcm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaCBiL1NvdXJjZS9XZWJL
aXQvR1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmgKaW5kZXggYWU3OTUwNTI1
ODYwZGUzY2Y2YTJiMTc4OGZlMzVhNWVhYmRhNTY3ZC4uZTA0MjhiODVlNWNmZGFjMmM0MDY1YTkx
MDNiOWM1NWU2YjZjYjVhOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQ
VUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mv
R1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oCkBAIC0zOSw2ICszOSw3IEBACiAjaW5jbHVkZSA8
V2ViQ29yZS9Ob3dQbGF5aW5nTWFuYWdlci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUGFnZUlkZW50
aWZpZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Byb2Nlc3NJZGVudGlmaWVyLmg+CisjaW5jbHVk
ZSA8V2ViQ29yZS9Qcm9jZXNzSWRlbnRpdHkuaD4KICNpbmNsdWRlIDxwYWwvU2Vzc2lvbklELmg+
CiAjaW5jbHVkZSA8d3RmL0xvZ2dlci5oPgogI2luY2x1ZGUgPHd0Zi9NYWNoU2VuZFJpZ2h0Lmg+
CkBAIC0xNDcsMTAgKzE0OCw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGRpc3BhdGNoRGlzcGxheVdh
c1JlY29uZmlndXJlZEZvclRlc3RpbmcoKSB7IGRpc3BhdGNoRGlzcGxheVdhc1JlY29uZmlndXJl
ZCgpOyB9OwogI2VuZGlmCiAKLSNpZiBIQVZFKFRBU0tfSURFTlRJVFlfVE9LRU4pCi0gICAgdGFz
a19pZF90b2tlbl90IHdlYlByb2Nlc3NJZGVudGl0eVRva2VuKCkgY29uc3QgeyByZXR1cm4gc3Rh
dGljX2Nhc3Q8dGFza19pZF90b2tlbl90PihtX3dlYlByb2Nlc3NJZGVudGl0eVRva2VuLnNlbmRS
aWdodCgpKTsgfQotI2VuZGlmCi0KKyAgICBSZWZQdHI8V2ViQ29yZTo6UHJvY2Vzc0lkZW50aXR5
PiB3ZWJQcm9jZXNzSWRlbnRpdHkoKSBjb25zdCB7IHJldHVybiBtX3dlYlByb2Nlc3NJZGVudGl0
eTsgfQogI2lmIEVOQUJMRShFTkNSWVBURURfTUVESUEpCiAgICAgUmVtb3RlQ0RNRmFjdG9yeVBy
b3h5JiBjZG1GYWN0b3J5UHJveHkoKTsKICNlbmRpZgpAQCAtMjczLDkgKzI3MSw3IEBAIHByaXZh
dGU6CiAgICAgSVBDOjpNZXNzYWdlUmVjZWl2ZXJNYXAgbV9tZXNzYWdlUmVjZWl2ZXJNYXA7CiAg
ICAgUmVmPEdQVVByb2Nlc3M+IG1fZ3B1UHJvY2VzczsKICAgICBjb25zdCBXZWJDb3JlOjpQcm9j
ZXNzSWRlbnRpZmllciBtX3dlYlByb2Nlc3NJZGVudGlmaWVyOwotI2lmIEhBVkUoVEFTS19JREVO
VElUWV9UT0tFTikKLSAgICBNYWNoU2VuZFJpZ2h0IG1fd2ViUHJvY2Vzc0lkZW50aXR5VG9rZW47
Ci0jZW5kaWYKKyAgICBSZWZQdHI8V2ViQ29yZTo6UHJvY2Vzc0lkZW50aXR5PiBtX3dlYlByb2Nl
c3NJZGVudGl0eTsKICNpZiBFTkFCTEUoV0VCX0FVRElPKQogICAgIHN0ZDo6dW5pcXVlX3B0cjxS
ZW1vdGVBdWRpb0Rlc3RpbmF0aW9uTWFuYWdlcj4gbV9yZW1vdGVBdWRpb0Rlc3RpbmF0aW9uTWFu
YWdlcjsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBo
aWNzL1JlbW90ZUdyYXBoaWNzQ29udGV4dEdMQ29jb2EuY3BwIGIvU291cmNlL1dlYktpdC9HUFVQ
cm9jZXNzL2dyYXBoaWNzL1JlbW90ZUdyYXBoaWNzQ29udGV4dEdMQ29jb2EuY3BwCmluZGV4IDEw
YTUzNjI5OWNmMjNlYjlmODZmNTcyN2U4NTIzODNjZThhMDQwMDguLmExNTg5NmZmMTQ5ZmNjOGY2
NmUzMTkzODNiNTA4MmJjNjlmOTk0NWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJv
Y2Vzcy9ncmFwaGljcy9SZW1vdGVHcmFwaGljc0NvbnRleHRHTENvY29hLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xDb2Nv
YS5jcHAKQEAgLTI5LDYgKzI5LDcgQEAKICNpZiBFTkFCTEUoR1BVX1BST0NFU1MpICYmIEVOQUJM
RShXRUJHTCkgJiYgUExBVEZPUk0oQ09DT0EpCiAKICNpbmNsdWRlICJHUFVDb25uZWN0aW9uVG9X
ZWJQcm9jZXNzLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9Qcm9jZXNzSWRlbnRpdHkuaD4KICNpbmNs
dWRlIDx3dGYvTWFjaFNlbmRSaWdodC5oPgogCiBuYW1lc3BhY2UgV2ViS2l0IHsKQEAgLTQ1LDkg
KzQ2LDcgQEAgcHVibGljOgogICAgIHZvaWQgcGxhdGZvcm1Xb3JrUXVldWVJbml0aWFsaXplKFdl
YkNvcmU6OkdyYXBoaWNzQ29udGV4dEdMQXR0cmlidXRlcyYmKSBmaW5hbDsKICAgICB2b2lkIHBy
ZXBhcmVGb3JEaXNwbGF5KENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV1RGOjpNYWNoU2VuZFJpZ2h0
JiYpPiYmKSBmaW5hbDsKIHByaXZhdGU6Ci0jaWYgSEFWRShJT1NVUkZBQ0VfU0VUX09XTkVSU0hJ
UF9JREVOVElUWSkKLSAgICB0YXNrX2lkX3Rva2VuX3QgbV93ZWJQcm9jZXNzSWRlbnRpdHlUb2tl
bjsKLSNlbmRpZgorICAgIFJlZlB0cjxQcm9jZXNzSWRlbnRpdHk+IG1fcmVzb3VyY2VPd25lcjsK
IH07CiAKIH0KQEAgLTYxLDkgKzYwLDcgQEAgUmVmPFJlbW90ZUdyYXBoaWNzQ29udGV4dEdMPiBS
ZW1vdGVHcmFwaGljc0NvbnRleHRHTDo6Y3JlYXRlKEdQVUNvbm5lY3Rpb25Ub1dlYlAKIAogUmVt
b3RlR3JhcGhpY3NDb250ZXh0R0xDb2NvYTo6UmVtb3RlR3JhcGhpY3NDb250ZXh0R0xDb2NvYShH
UFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzJiBncHVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLCBHcmFw
aGljc0NvbnRleHRHTElkZW50aWZpZXIgZ3JhcGhpY3NDb250ZXh0R0xJZGVudGlmaWVyLCBSZW1v
dGVSZW5kZXJpbmdCYWNrZW5kJiByZW5kZXJpbmdCYWNrZW5kLCBJUEM6OlN0cmVhbUNvbm5lY3Rp
b25CdWZmZXImJiBzdHJlYW0pCiAgICAgOiBSZW1vdGVHcmFwaGljc0NvbnRleHRHTChncHVDb25u
ZWN0aW9uVG9XZWJQcm9jZXNzLCBncmFwaGljc0NvbnRleHRHTElkZW50aWZpZXIsIHJlbmRlcmlu
Z0JhY2tlbmQsIFdURk1vdmUoc3RyZWFtKSkKLSNpZiBIQVZFKElPU1VSRkFDRV9TRVRfT1dORVJT
SElQX0lERU5USVRZKQotICAgICwgbV93ZWJQcm9jZXNzSWRlbnRpdHlUb2tlbihncHVDb25uZWN0
aW9uVG9XZWJQcm9jZXNzLndlYlByb2Nlc3NJZGVudGl0eVRva2VuKCkpCi0jZW5kaWYKKyAgICAs
IG1fcmVzb3VyY2VPd25lcihncHVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLndlYlByb2Nlc3NJZGVu
dGl0eSgpKQogewogCiB9CkBAIC03MSw3ICs2OCw3IEBAIFJlbW90ZUdyYXBoaWNzQ29udGV4dEdM
Q29jb2E6OlJlbW90ZUdyYXBoaWNzQ29udGV4dEdMQ29jb2EoR1BVQ29ubmVjdGlvblRvV2ViUHJv
CiB2b2lkIFJlbW90ZUdyYXBoaWNzQ29udGV4dEdMQ29jb2E6OnBsYXRmb3JtV29ya1F1ZXVlSW5p
dGlhbGl6ZShXZWJDb3JlOjpHcmFwaGljc0NvbnRleHRHTEF0dHJpYnV0ZXMmJiBhdHRyaWJ1dGVz
KQogewogICAgIGFzc2VydElzQ3VycmVudChtX3N0cmVhbVRocmVhZCk7Ci0gICAgbV9jb250ZXh0
ID0gR3JhcGhpY3NDb250ZXh0R0xDb2NvYTo6Y3JlYXRlKFdURk1vdmUoYXR0cmlidXRlcykpOwor
ICAgIG1fY29udGV4dCA9IEdyYXBoaWNzQ29udGV4dEdMQ29jb2E6OmNyZWF0ZShXVEZNb3ZlKGF0
dHJpYnV0ZXMpLCBSZWZQdHIgeyBtX3Jlc291cmNlT3duZXIgfSk7CiB9CiAKIHZvaWQgUmVtb3Rl
R3JhcGhpY3NDb250ZXh0R0xDb2NvYTo6cHJlcGFyZUZvckRpc3BsYXkoQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZChXVEY6Ok1hY2hTZW5kUmlnaHQmJik+JiYgY29tcGxldGlvbkhhbmRsZXIpCkBAIC04
MiwxMCArNzksNiBAQCB2b2lkIFJlbW90ZUdyYXBoaWNzQ29udGV4dEdMQ29jb2E6OnByZXBhcmVG
b3JEaXNwbGF5KENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV1RGOgogICAgIE1hY2hTZW5kUmlnaHQg
c2VuZFJpZ2h0OwogICAgIGlmIChkaXNwbGF5QnVmZmVyKSB7CiAgICAgICAgIG1fY29udGV4dC0+
bWFya0Rpc3BsYXlCdWZmZXJJblVzZSgpOwotI2lmIEhBVkUoSU9TVVJGQUNFX1NFVF9PV05FUlNI
SVBfSURFTlRJVFkpCi0gICAgICAgIC8vIE1hcmsgdGhlIElPU3VyZmFjZSBhcyBiZWluZyBvd25l
ZCBieSB0aGUgV2ViUHJvY2VzcyBldmVuIHRob3VnaCBpdCB3YXMgY29uc3RydWN0ZWQgYnkgdGhl
IEdQVVByb2Nlc3Mgc28gdGhhdCBKZXRzYW0ga25vd3Mgd2hpY2ggcHJvY2VzcyB0byBraWxsLgot
ICAgICAgICBkaXNwbGF5QnVmZmVyLT5zZXRPd25lcnNoaXBJZGVudGl0eShtX3dlYlByb2Nlc3NJ
ZGVudGl0eVRva2VuKTsKLSNlbmRpZgogICAgICAgICBzZW5kUmlnaHQgPSBkaXNwbGF5QnVmZmVy
LT5jcmVhdGVTZW5kUmlnaHQoKTsKICAgICB9CiAgICAgY29tcGxldGlvbkhhbmRsZXIoV1RGTW92
ZShzZW5kUmlnaHQpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFw
aGljcy9SZW1vdGVJbWFnZUJ1ZmZlci5oIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBo
aWNzL1JlbW90ZUltYWdlQnVmZmVyLmgKaW5kZXggYTNkNDk0ZmU4YmY2YTE5NjQ3ZWYxOTBjOWRi
NDA0MmFlY2U2NzIyMC4uMTk5MjU4YjYzZDY4ZTg4YmNhNGE5MDIzNmZlZDQwNDgwNDFiNjIwYyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZUltYWdl
QnVmZmVyLmgKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZUlt
YWdlQnVmZmVyLmgKQEAgLTY5LDEzICs2OSwxMSBAQCBwdWJsaWM6CiAgICAgICAgICAgICBjb250
ZXh0KCkucmVzdG9yZSgpOwogICAgIH0KIAotI2lmIEhBVkUoSU9TVVJGQUNFX1NFVF9PV05FUlNI
SVBfSURFTlRJVFkpCi0gICAgdm9pZCBzZXRQcm9jZXNzT3duZXJzaGlwKHRhc2tfaWRfdG9rZW5f
dCBuZXdPd25lcikKKyAgICB2b2lkIHNldE93bmVyc2hpcElkZW50aXR5KFdlYkNvcmU6OlByb2Nl
c3NJZGVudGl0eSogcmVzb3VyY2VPd25lcikKICAgICB7CiAgICAgICAgIGlmIChtX2JhY2tlbmQp
Ci0gICAgICAgICAgICBtX2JhY2tlbmQtPnNldFByb2Nlc3NPd25lcnNoaXAobmV3T3duZXIpOwor
ICAgICAgICAgICAgbV9iYWNrZW5kLT5zZXRPd25lcnNoaXBJZGVudGl0eShyZXNvdXJjZU93bmVy
KTsKICAgICB9Ci0jZW5kaWYKIAogcHJpdmF0ZToKICAgICBmcmllbmQgY2xhc3MgUmVtb3RlUmVu
ZGVyaW5nQmFja2VuZDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFw
aGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmNwcCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vz
cy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmNwcAppbmRleCBmY2M3MmJmMjBhMmZi
MmM2Yjk5YmEwZWU2ZjgyMDZhNGNhYjZmZmMwLi4xNjBmZWMyYTU1MmU2Njk0MTI4ODY2MjFhNTJk
ZGRkZmUzZDc2OGU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhp
Y3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9j
ZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQuY3BwCkBAIC04NCw2ICs4NCw3IEBA
IFJlbW90ZVJlbmRlcmluZ0JhY2tlbmQ6OlJlbW90ZVJlbmRlcmluZ0JhY2tlbmQoR1BVQ29ubmVj
dGlvblRvV2ViUHJvY2VzcyYgZ3B1Q29uCiAgICAgLCBtX3N0cmVhbUNvbm5lY3Rpb24oSVBDOjpT
dHJlYW1TZXJ2ZXJDb25uZWN0aW9uOjpjcmVhdGUoZ3B1Q29ubmVjdGlvblRvV2ViUHJvY2Vzcy5j
b25uZWN0aW9uKCksIFdURk1vdmUoc3RyZWFtQnVmZmVyKSwgbV93b3JrUXVldWUuZ2V0KCkpKQog
ICAgICwgbV9yZW1vdGVSZXNvdXJjZUNhY2hlKGdwdUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3Mud2Vi
UHJvY2Vzc0lkZW50aWZpZXIoKSkKICAgICAsIG1fZ3B1Q29ubmVjdGlvblRvV2ViUHJvY2Vzcyhn
cHVDb25uZWN0aW9uVG9XZWJQcm9jZXNzKQorICAgICwgbV9yZXNvdXJjZU93bmVyKGdwdUNvbm5l
Y3Rpb25Ub1dlYlByb2Nlc3Mud2ViUHJvY2Vzc0lkZW50aXR5KCkpCiAgICAgLCBtX3JlbmRlcmlu
Z0JhY2tlbmRJZGVudGlmaWVyKGNyZWF0aW9uUGFyYW1ldGVycy5pZGVudGlmaWVyKQogewogICAg
IEFTU0VSVChSdW5Mb29wOjppc01haW4oKSk7CkBAIC0xNzMsMTAgKzE3NCw5IEBAIHZvaWQgUmVt
b3RlUmVuZGVyaW5nQmFja2VuZDo6Y3JlYXRlSW1hZ2VCdWZmZXJXaXRoUXVhbGlmaWVkSWRlbnRp
Zmllcihjb25zdCBGbG9hCiAKICAgICBpZiAocmVuZGVyaW5nTW9kZSA9PSBSZW5kZXJpbmdNb2Rl
OjpBY2NlbGVyYXRlZCkgewogICAgICAgICBpZiAoYXV0byBhY2NlbGVyYXRlZEltYWdlQnVmZmVy
ID0gQWNjZWxlcmF0ZWRSZW1vdGVJbWFnZUJ1ZmZlcjo6Y3JlYXRlKGxvZ2ljYWxTaXplLCByZXNv
bHV0aW9uU2NhbGUsIGNvbG9yU3BhY2UsIHBpeGVsRm9ybWF0LCAqdGhpcywgaW1hZ2VCdWZmZXJS
ZXNvdXJjZUlkZW50aWZpZXIpKSB7Ci0jaWYgSEFWRShJT1NVUkZBQ0VfU0VUX09XTkVSU0hJUF9J
REVOVElUWSkKICAgICAgICAgICAgIC8vIE1hcmsgdGhlIElPU3VyZmFjZSBhcyBiZWluZyBvd25l
ZCBieSB0aGUgV2ViUHJvY2VzcyBldmVuIHRob3VnaCBpdCB3YXMgY29uc3RydWN0ZWQgYnkgdGhl
IEdQVVByb2Nlc3Mgc28gdGhhdCBKZXRzYW0ga25vd3Mgd2hpY2ggcHJvY2VzcyB0byBraWxsLgot
ICAgICAgICAgICAgYWNjZWxlcmF0ZWRJbWFnZUJ1ZmZlci0+c2V0UHJvY2Vzc093bmVyc2hpcCht
X2dwdUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MtPndlYlByb2Nlc3NJZGVudGl0eVRva2VuKCkpOwot
I2VuZGlmCisgICAgICAgICAgICBpZiAobV9yZXNvdXJjZU93bmVyKQorICAgICAgICAgICAgICAg
IGFjY2VsZXJhdGVkSW1hZ2VCdWZmZXItPnNldE93bmVyc2hpcElkZW50aXR5KG1fcmVzb3VyY2VP
d25lci5nZXQoKSk7CiAgICAgICAgICAgICBpbWFnZUJ1ZmZlciA9IFdURk1vdmUoYWNjZWxlcmF0
ZWRJbWFnZUJ1ZmZlcik7CiAgICAgICAgIH0KICAgICB9CkBAIC0yNjgsNiArMjY4LDcgQEAgdm9p
ZCBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kOjpnZXREYXRhVVJMRm9ySW1hZ2VCdWZmZXJXaXRoUXVh
bGlmaWVkSWRlbnRpZmllcihjb24KICAgICBTdHJpbmcgdXJsU3RyaW5nOwogICAgIGlmIChhdXRv
IGltYWdlQnVmZmVyID0gbV9yZW1vdGVSZXNvdXJjZUNhY2hlLmNhY2hlZEltYWdlQnVmZmVyKHJl
bmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcikpCiAgICAgICAgIHVybFN0cmluZyA9IGltYWdlQnVm
ZmVyLT50b0RhdGFVUkwobWltZVR5cGUsIHF1YWxpdHksIHByZXNlcnZlUmVzb2x1dGlvbik7Cisg
ICAgV1RGTG9nQWx3YXlzKCJEQVRBVVJMOiVzIiwgdXJsU3RyaW5nLnV0ZjgoKS5kYXRhKCkpOwog
ICAgIGNvbXBsZXRpb25IYW5kbGVyKFdURk1vdmUodXJsU3RyaW5nKSk7CiB9CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNr
ZW5kLmggYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5n
QmFja2VuZC5oCmluZGV4IDk4OWJjOTMwZjQ4NmUxYzZkZTdkMTY2YTQzNGFiNWVlMDZhYzllZjUu
Ljk4OThjNjZmYzM1ZDBkMTE5YWYzMzI0Y2YwMDczNGI2NTRkNGQ5YmIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmgK
KysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0Jh
Y2tlbmQuaApAQCAtNTMsNiArNTMsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBEZXN0
aW5hdGlvbkNvbG9yU3BhY2U7CiBjbGFzcyBGbG9hdFNpemU7CiBjbGFzcyBOYXRpdmVJbWFnZTsK
K2NsYXNzIFByb2Nlc3NJZGVudGl0eTsKIAogZW51bSBjbGFzcyBSZW5kZXJpbmdNb2RlIDogYm9v
bDsKIApAQCAtMTI4LDYgKzEyOSw3IEBAIHByaXZhdGU6CiAgICAgUmVmPElQQzo6U3RyZWFtU2Vy
dmVyQ29ubmVjdGlvbj4gbV9zdHJlYW1Db25uZWN0aW9uOwogICAgIFJlbW90ZVJlc291cmNlQ2Fj
aGUgbV9yZW1vdGVSZXNvdXJjZUNhY2hlOwogICAgIFJlZjxHUFVDb25uZWN0aW9uVG9XZWJQcm9j
ZXNzPiBtX2dwdUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M7CisgICAgUmVmUHRyPFdlYkNvcmU6OlBy
b2Nlc3NJZGVudGl0eT4gbV9yZXNvdXJjZU93bmVyOwogICAgIFJlbmRlcmluZ0JhY2tlbmRJZGVu
dGlmaWVyIG1fcmVuZGVyaW5nQmFja2VuZElkZW50aWZpZXI7CiAgICAgSVBDOjpTZW1hcGhvcmUg
bV9nZXRQaXhlbEJ1ZmZlclNlbWFwaG9yZTsKICAgICBSZWZQdHI8U2hhcmVkTWVtb3J5PiBtX2dl
dFBpeGVsQnVmZmVyU2hhcmVkTWVtb3J5OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQ
cm9jZXNzL3dlYnJ0Yy9MaWJXZWJSVENDb2RlY3NQcm94eS5tbSBiL1NvdXJjZS9XZWJLaXQvR1BV
UHJvY2Vzcy93ZWJydGMvTGliV2ViUlRDQ29kZWNzUHJveHkubW0KaW5kZXggMTMzZTI2ZTQ3NGUx
ZDMxOTE2M2U1NTcxOTkyZDBjMGM3MTlkZGUxNC4uNzA3YTY1ZTJlMjI0YzlhZDdjZjE3NDY1ZjRk
YzBhNDIxMzcwMmE1OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL3dlYnJ0
Yy9MaWJXZWJSVENDb2RlY3NQcm94eS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mv
d2VicnRjL0xpYldlYlJUQ0NvZGVjc1Byb3h5Lm1tCkBAIC03NywxNCArNzcsMTEgQEAgdm9pZCBM
aWJXZWJSVENDb2RlY3NQcm94eTo6Y2xvc2UoKQogc3RhdGljIEZ1bmN0aW9uPHZvaWQoQ1ZQaXhl
bEJ1ZmZlclJlZiBwaXhlbEJ1ZmZlciwgdWludDMyX3QgdGltZVN0YW1wTnMsIHVpbnQzMl90IHRp
bWVTdGFtcCk+IGNyZWF0ZURlY29kZXJDYWxsYmFjayhSVENEZWNvZGVySWRlbnRpZmllciBpZGVu
dGlmaWVyLCBHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzJiBncHVDb25uZWN0aW9uVG9XZWJQcm9j
ZXNzKQogewogICAgIHJldHVybiBbY29ubmVjdGlvbiA9IFJlZiB7IGdwdUNvbm5lY3Rpb25Ub1dl
YlByb2Nlc3MuY29ubmVjdGlvbigpIH0sCi0jaWYgSEFWRShJT1NVUkZBQ0VfU0VUX09XTkVSU0hJ
UF9JREVOVElUWSkKLSAgICAgICAgdG9rZW4gPSBncHVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLndl
YlByb2Nlc3NJZGVudGl0eVRva2VuKCksCi0jZW5kaWYKKyAgICAgICAgcmVzb3VyY2VPd25lciA9
IGdwdUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3Mud2ViUHJvY2Vzc0lkZW50aXR5KCksCiAgICAgICAg
IGlkZW50aWZpZXJdKENWUGl4ZWxCdWZmZXJSZWYgcGl4ZWxCdWZmZXIsIHVpbnQzMl90IHRpbWVT
dGFtcE5zLCB1aW50MzJfdCB0aW1lU3RhbXApIHsKICAgICAgICAgaWYgKGF1dG8gc2FtcGxlID0g
V2ViQ29yZTo6UmVtb3RlVmlkZW9TYW1wbGU6OmNyZWF0ZShwaXhlbEJ1ZmZlciwgTWVkaWFUaW1l
KHRpbWVTdGFtcE5zLCAxKSkpIHsKLSNpZiBIQVZFKElPU1VSRkFDRV9TRVRfT1dORVJTSElQX0lE
RU5USVRZKQotICAgICAgICAgICAgc2FtcGxlLT5zZXRPd25lcnNoaXBJZGVudGl0eSh0b2tlbik7
Ci0jZW5kaWYKKyAgICAgICAgICAgIGlmIChyZXNvdXJjZU93bmVyKQorICAgICAgICAgICAgICAg
IHNhbXBsZS0+c2V0T3duZXJzaGlwSWRlbnRpdHkocmVzb3VyY2VPd25lci5nZXQoKSk7CiAgICAg
ICAgICAgICBjb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpMaWJXZWJSVENDb2RlY3M6OkNvbXBs
ZXRlZERlY29kaW5nIHsgaWRlbnRpZmllciwgdGltZVN0YW1wLCAqc2FtcGxlIH0sIDApOwogICAg
ICAgICB9CiAgICAgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0dQVVByb2Nl
c3NDb25uZWN0aW9uUGFyYW1ldGVycy5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvR1BVUHJvY2Vz
c0Nvbm5lY3Rpb25QYXJhbWV0ZXJzLmgKaW5kZXggMDk2ZmQwZTNiYTZjN2VjMTE3NzhmOTk0ZmZk
NWU4Njc3ZTIwZmM1Ni4uN2QzZWZhY2Q2NTc0Mzk1NWExMTYwNjNhODdmMGZkNzk3MDZkYzZmNCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvR1BVUHJvY2Vzc0Nvbm5lY3Rpb25QYXJh
bWV0ZXJzLmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvR1BVUHJvY2Vzc0Nvbm5lY3Rpb25Q
YXJhbWV0ZXJzLmgKQEAgLTI4LDE0ICsyOCwxMyBAQAogI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykK
IAogI2luY2x1ZGUgIldlYkNvcmVBcmd1bWVudENvZGVycy5oIgorI2luY2x1ZGUgPFdlYkNvcmUv
UHJvY2Vzc0lkZW50aXR5Lmg+CiAjaW5jbHVkZSA8d3RmL01hY2hTZW5kUmlnaHQuaD4KIAogbmFt
ZXNwYWNlIFdlYktpdCB7CiAKIHN0cnVjdCBHUFVQcm9jZXNzQ29ubmVjdGlvblBhcmFtZXRlcnMg
ewotI2lmIEhBVkUoVEFTS19JREVOVElUWV9UT0tFTikKLSAgICBNYWNoU2VuZFJpZ2h0IHdlYlBy
b2Nlc3NJZGVudGl0eVRva2VuOwotI2VuZGlmCisgICAgV2ViQ29yZTo6UHJvY2Vzc0lkZW50aXR5
OjpIYW5kbGUgd2ViUHJvY2Vzc0lkZW50aXR5SGFuZGxlOwogICAgIFZlY3RvcjxTdHJpbmc+IG92
ZXJyaWRlTGFuZ3VhZ2VzOwogI2lmIEVOQUJMRShJUENfVEVTVElOR19BUEkpCiAgICAgYm9vbCBp
Z25vcmVJbnZhbGlkTWVzc2FnZUZvclRlc3RpbmcgeyBmYWxzZSB9OwpAQCAtNDYsOSArNDUsNyBA
QCBzdHJ1Y3QgR1BVUHJvY2Vzc0Nvbm5lY3Rpb25QYXJhbWV0ZXJzIHsKIAogICAgIHZvaWQgZW5j
b2RlKElQQzo6RW5jb2RlciYgZW5jb2RlcikgY29uc3QKICAgICB7Ci0jaWYgSEFWRShUQVNLX0lE
RU5USVRZX1RPS0VOKQotICAgICAgICBlbmNvZGVyIDw8IHdlYlByb2Nlc3NJZGVudGl0eVRva2Vu
OwotI2VuZGlmCisgICAgICAgIGVuY29kZXIgPDwgd2ViUHJvY2Vzc0lkZW50aXR5SGFuZGxlOwog
ICAgICAgICBlbmNvZGVyIDw8IG92ZXJyaWRlTGFuZ3VhZ2VzOwogI2lmIEVOQUJMRShJUENfVEVT
VElOR19BUEkpCiAgICAgICAgIGVuY29kZXIgPDwgaWdub3JlSW52YWxpZE1lc3NhZ2VGb3JUZXN0
aW5nOwpAQCAtNjAsMTIgKzU3LDEwIEBAIHN0cnVjdCBHUFVQcm9jZXNzQ29ubmVjdGlvblBhcmFt
ZXRlcnMgewogCiAgICAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8R1BVUHJvY2Vzc0Nvbm5lY3Rpb25Q
YXJhbWV0ZXJzPiBkZWNvZGUoSVBDOjpEZWNvZGVyJiBkZWNvZGVyKQogICAgIHsKLSNpZiBIQVZF
KFRBU0tfSURFTlRJVFlfVE9LRU4pCi0gICAgICAgIHN0ZDo6b3B0aW9uYWw8TWFjaFNlbmRSaWdo
dD4gd2ViUHJvY2Vzc0lkZW50aXR5VG9rZW47Ci0gICAgICAgIGRlY29kZXIgPj4gd2ViUHJvY2Vz
c0lkZW50aXR5VG9rZW47Ci0gICAgICAgIGlmICghd2ViUHJvY2Vzc0lkZW50aXR5VG9rZW4pCisg
ICAgICAgIHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6UHJvY2Vzc0lkZW50aXR5OjpIYW5kbGU+IHdl
YlByb2Nlc3NJZGVudGl0eUhhbmRsZTsKKyAgICAgICAgZGVjb2RlciA+PiB3ZWJQcm9jZXNzSWRl
bnRpdHlIYW5kbGU7CisgICAgICAgIGlmICghd2ViUHJvY2Vzc0lkZW50aXR5SGFuZGxlKQogICAg
ICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKLSNlbmRpZgogCiAgICAgICAgIHN0ZDo6b3B0
aW9uYWw8VmVjdG9yPFN0cmluZz4+IG92ZXJyaWRlTGFuZ3VhZ2VzOwogICAgICAgICBkZWNvZGVy
ID4+IG92ZXJyaWRlTGFuZ3VhZ2VzOwpAQCAtODYsOSArODEsNyBAQCBzdHJ1Y3QgR1BVUHJvY2Vz
c0Nvbm5lY3Rpb25QYXJhbWV0ZXJzIHsKICNlbmRpZgogCiAgICAgICAgIHJldHVybiBHUFVQcm9j
ZXNzQ29ubmVjdGlvblBhcmFtZXRlcnMgewotI2lmIEhBVkUoVEFTS19JREVOVElUWV9UT0tFTikK
LSAgICAgICAgICAgIFdURk1vdmUoKndlYlByb2Nlc3NJZGVudGl0eVRva2VuKSwKLSNlbmRpZgor
ICAgICAgICAgICAgV1RGTW92ZSgqd2ViUHJvY2Vzc0lkZW50aXR5SGFuZGxlKSwKICAgICAgICAg
ICAgIFdURk1vdmUoKm92ZXJyaWRlTGFuZ3VhZ2VzKSwKICNpZiBFTkFCTEUoSVBDX1RFU1RJTkdf
QVBJKQogICAgICAgICAgICAgKmlnbm9yZUludmFsaWRNZXNzYWdlRm9yVGVzdGluZywKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5h
Z2VyUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2Fw
dHVyZU1hbmFnZXJQcm94eS5jcHAKaW5kZXggODFjMGFjY2JlYjZiNzg5NWE3MTJkZDJiNDQ4Yjg4
YmNkZTQzZTA0MC4uNDQyNDU1MjdmN2U0ZTQ1ZTRkNjE1NmZiYmExZTk5NjQzOGI0ZTcxMiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVyZU1h
bmFnZXJQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVXNlck1l
ZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5jcHAKQEAgLTU3LDkgKzU3LDEwIEBAIGNsYXNzIFVzZXJN
ZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6OlNvdXJjZVByb3h5CiAgICAgLCBwcml2YXRlIFJlYWx0
aW1lTWVkaWFTb3VyY2U6OlZpZGVvU2FtcGxlT2JzZXJ2ZXIgewogICAgIFdURl9NQUtFX0ZBU1Rf
QUxMT0NBVEVEOwogcHVibGljOgotICAgIFNvdXJjZVByb3h5KFJlYWx0aW1lTWVkaWFTb3VyY2VJ
ZGVudGlmaWVyIGlkLCBSZWY8SVBDOjpDb25uZWN0aW9uPiYmIGNvbm5lY3Rpb24sIFJlZjxSZWFs
dGltZU1lZGlhU291cmNlPiYmIHNvdXJjZSkKKyAgICBTb3VyY2VQcm94eShSZWFsdGltZU1lZGlh
U291cmNlSWRlbnRpZmllciBpZCwgUmVmPElQQzo6Q29ubmVjdGlvbj4mJiBjb25uZWN0aW9uLCBS
ZWZQdHI8UHJvY2Vzc0lkZW50aXR5PiYmIHJlc291cmNlT3duZXIsIFJlZjxSZWFsdGltZU1lZGlh
U291cmNlPiYmIHNvdXJjZSkKICAgICAgICAgOiBtX2lkKGlkKQogICAgICAgICAsIG1fY29ubmVj
dGlvbihXVEZNb3ZlKGNvbm5lY3Rpb24pKQorICAgICAgICAsIG1fcmVzb3VyY2VPd25lcihXVEZN
b3ZlKHJlc291cmNlT3duZXIpKQogICAgICAgICAsIG1fc291cmNlKFdURk1vdmUoc291cmNlKSkK
ICAgICB7CiAgICAgICAgIG1fc291cmNlLT5hZGRPYnNlcnZlcigqdGhpcyk7CkBAIC0xMjUsOSAr
MTI2LDYgQEAgcHVibGljOgogICAgIH0KIAogICAgIHZvaWQgc2V0U2hvdWxkQXBwbHlSb3RhdGlv
bihib29sIHNob3VsZEFwcGx5Um90YXRpb24pIHsgbV9zaG91bGRBcHBseVJvdGF0aW9uID0gdHJ1
ZTsgfQotI2lmIEhBVkUoSU9TVVJGQUNFX1NFVF9PV05FUlNISVBfSURFTlRJVFkpCi0gICAgdm9p
ZCBzZXRXZWJQcm9jZXNzSWRlbnRpdHlUb2tlbihzdGQ6Om9wdGlvbmFsPHRhc2tfaWRfdG9rZW5f
dD4gdG9rZW4pIHsgbV93ZWJQcm9jZXNzSWRlbnRpdHlUb2tlbiA9IHRva2VuO30KLSNlbmRpZgog
CiBwcml2YXRlOgogICAgIHZvaWQgc291cmNlU3RvcHBlZCgpIGZpbmFsIHsKQEAgLTE4OCwxMCAr
MTg2LDggQEAgcHJpdmF0ZToKICAgICAgICAgfSBlbHNlCiAgICAgICAgICAgICByZW1vdGVTYW1w
bGUgPSBSZW1vdGVWaWRlb1NhbXBsZTo6Y3JlYXRlKHNhbXBsZSk7CiAgICAgICAgIGlmIChyZW1v
dGVTYW1wbGUpIHsKLSNpZiBIQVZFKElPU1VSRkFDRV9TRVRfT1dORVJTSElQX0lERU5USVRZKQot
ICAgICAgICAgICAgaWYgKG1fd2ViUHJvY2Vzc0lkZW50aXR5VG9rZW4pCi0gICAgICAgICAgICAg
ICAgcmVtb3RlU2FtcGxlLT5zZXRPd25lcnNoaXBJZGVudGl0eSgqbV93ZWJQcm9jZXNzSWRlbnRp
dHlUb2tlbik7Ci0jZW5kaWYKKyAgICAgICAgICAgIGlmIChtX3Jlc291cmNlT3duZXIpCisgICAg
ICAgICAgICAgICAgcmVtb3RlU2FtcGxlLT5zZXRPd25lcnNoaXBJZGVudGl0eShtX3Jlc291cmNl
T3duZXIuZ2V0KCkpOwogICAgICAgICAgICAgbV9jb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpS
ZW1vdGVDYXB0dXJlU2FtcGxlTWFuYWdlcjo6VmlkZW9TYW1wbGVBdmFpbGFibGUobV9pZCwgV1RG
TW92ZSgqcmVtb3RlU2FtcGxlKSwgbWV0YWRhdGEpLCAwKTsKICAgICAgICAgfQogICAgIH0KQEAg
LTI0NCw2ICsyNDAsNyBAQCBwcml2YXRlOgogICAgIFJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlm
aWVyIG1faWQ7CiAgICAgV2Vha1B0cjxQbGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXI+IG1fc2Vz
c2lvbk1hbmFnZXI7CiAgICAgUmVmPElQQzo6Q29ubmVjdGlvbj4gbV9jb25uZWN0aW9uOworICAg
IFJlZlB0cjxQcm9jZXNzSWRlbnRpdHk+IG1fcmVzb3VyY2VPd25lcjsKICAgICBSZWY8UmVhbHRp
bWVNZWRpYVNvdXJjZT4gbV9zb3VyY2U7CiAgICAgc3RkOjp1bmlxdWVfcHRyPENBUmluZ0J1ZmZl
cj4gbV9yaW5nQnVmZmVyOwogICAgIENBQXVkaW9TdHJlYW1EZXNjcmlwdGlvbiBtX2Rlc2NyaXB0
aW9uIHsgfTsKQEAgLTI1Nyw5ICsyNTQsNiBAQCBwcml2YXRlOgogICAgIHNpemVfdCBtX2ZyYW1l
Q2h1bmtTaXplIHsgMCB9OwogICAgIE1lZGlhVGltZSBtX3N0YXJ0VGltZTsKICAgICBib29sIG1f
c2hvdWxkUmVzZXQgeyBmYWxzZSB9OwotI2lmIEhBVkUoVEFTS19JREVOVElUWV9UT0tFTikKLSAg
ICBzdGQ6Om9wdGlvbmFsPHRhc2tfaWRfdG9rZW5fdD4gbV93ZWJQcm9jZXNzSWRlbnRpdHlUb2tl
bjsKLSNlbmRpZgogfTsKIAogVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6VXNlck1lZGlh
Q2FwdHVyZU1hbmFnZXJQcm94eShVbmlxdWVSZWY8Q29ubmVjdGlvblByb3h5PiYmIGNvbm5lY3Rp
b25Qcm94eSkKQEAgLTMyMywxMiArMzE3LDcgQEAgdm9pZCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdl
clByb3h5OjpjcmVhdGVNZWRpYVNvdXJjZUZvckNhcHR1cmVEZXZpY2VXaXRoQ29uc3RyYWkKICAg
ICAgICAgfQogCiAgICAgICAgIEFTU0VSVCghbV9wcm94aWVzLmNvbnRhaW5zKGlkKSk7Ci0gICAg
ICAgIGF1dG8gcHJveHkgPSBtYWtlVW5pcXVlPFNvdXJjZVByb3h5PihpZCwgbV9jb25uZWN0aW9u
UHJveHktPmNvbm5lY3Rpb24oKSwgV1RGTW92ZShzb3VyY2UpKTsKLSNpZiBIQVZFKElPU1VSRkFD
RV9TRVRfT1dORVJTSElQX0lERU5USVRZKQotICAgICAgICBpZiAoZGV2aWNlLnR5cGUoKSAhPSBX
ZWJDb3JlOjpDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpNaWNyb3Bob25lKQotICAgICAgICAg
ICAgcHJveHktPnNldFdlYlByb2Nlc3NJZGVudGl0eVRva2VuKG1fY29ubmVjdGlvblByb3h5LT53
ZWJQcm9jZXNzSWRlbnRpdHlUb2tlbigpKTsKLSNlbmRpZgotCisgICAgICAgIGF1dG8gcHJveHkg
PSBtYWtlVW5pcXVlPFNvdXJjZVByb3h5PihpZCwgbV9jb25uZWN0aW9uUHJveHktPmNvbm5lY3Rp
b24oKSwgbV9jb25uZWN0aW9uUHJveHktPnJlc291cmNlT3duZXIoKSwgV1RGTW92ZShzb3VyY2Up
KTsKICAgICAgICAgbV9wcm94aWVzLmFkZChpZCwgV1RGTW92ZShwcm94eSkpOwogICAgIH0gZWxz
ZQogICAgICAgICBpbnZhbGlkQ29uc3RyYWludHMgPSBXVEZNb3ZlKHNvdXJjZU9yRXJyb3IuZXJy
b3JNZXNzYWdlKTsKQEAgLTM5Myw3ICszODIsNyBAQCB2b2lkIFVzZXJNZWRpYUNhcHR1cmVNYW5h
Z2VyUHJveHk6OmNsb25lKFJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIGNsb25lZElELAog
ICAgIE1FU1NBR0VfQ0hFQ0sobV9wcm94aWVzLmNvbnRhaW5zKGNsb25lZElEKSk7CiAgICAgTUVT
U0FHRV9DSEVDSyghbV9wcm94aWVzLmNvbnRhaW5zKG5ld1NvdXJjZUlEKSk7CiAgICAgaWYgKGF1
dG8qIHByb3h5ID0gbV9wcm94aWVzLmdldChjbG9uZWRJRCkpCi0gICAgICAgIG1fcHJveGllcy5h
ZGQobmV3U291cmNlSUQsIG1ha2VVbmlxdWU8U291cmNlUHJveHk+KG5ld1NvdXJjZUlELCBtX2Nv
bm5lY3Rpb25Qcm94eS0+Y29ubmVjdGlvbigpLCBwcm94eS0+c291cmNlKCkuY2xvbmUoKSkpOwor
ICAgICAgICBtX3Byb3hpZXMuYWRkKG5ld1NvdXJjZUlELCBtYWtlVW5pcXVlPFNvdXJjZVByb3h5
PihuZXdTb3VyY2VJRCwgbV9jb25uZWN0aW9uUHJveHktPmNvbm5lY3Rpb24oKSwgbV9jb25uZWN0
aW9uUHJveHktPnJlc291cmNlT3duZXIoKSwgcHJveHktPnNvdXJjZSgpLmNsb25lKCkpKTsKIH0K
IAogdm9pZCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OjpyZXF1ZXN0VG9FbmQoUmVhbHRp
bWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgc291cmNlSUQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5LmggYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5LmgK
aW5kZXggN2FmZjQyNGQ1NDBkM2IxZmRlY2RhYmM4NjU1YzNjNTZjNTBhMTBlNS4uYzU4NmNlM2Yz
ZDEyZTc4ZTIzNzMyYWUxMGNjODliMjM4MDRiMmJjZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHku
aApAQCAtMzIsNiArMzIsNyBAQAogI2luY2x1ZGUgIlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmgi
CiAjaW5jbHVkZSA8V2ViQ29yZS9DYXB0dXJlRGV2aWNlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9P
cmllbnRhdGlvbk5vdGlmaWVyLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9Qcm9jZXNzSWRlbnRpdHku
aD4KICNpbmNsdWRlIDxXZWJDb3JlL1JlYWx0aW1lTWVkaWFTb3VyY2UuaD4KICNpbmNsdWRlIDxX
ZWJDb3JlL1JlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyLmg+CiAjaW5jbHVkZSA8cGFsL3Nw
aS9jb2NvYS9UQ0NTUEkuaD4KQEAgLTU5LDkgKzYwLDcgQEAgcHVibGljOgogICAgICAgICB2aXJ0
dWFsIGJvb2wgd2lsbFN0YXJ0Q2FwdHVyZShXZWJDb3JlOjpDYXB0dXJlRGV2aWNlOjpEZXZpY2VU
eXBlKSBjb25zdCA9IDA7CiAgICAgICAgIHZpcnR1YWwgTG9nZ2VyJiBsb2dnZXIoKSA9IDA7CiAg
ICAgICAgIHZpcnR1YWwgYm9vbCBzZXRDYXB0dXJlQXR0cmlidXRpb25TdHJpbmcoKSB7IHJldHVy
biB0cnVlOyB9Ci0jaWYgSEFWRShJT1NVUkZBQ0VfU0VUX09XTkVSU0hJUF9JREVOVElUWSkKLSAg
ICAgICAgdmlydHVhbCBzdGQ6Om9wdGlvbmFsPHRhc2tfaWRfdG9rZW5fdD4gd2ViUHJvY2Vzc0lk
ZW50aXR5VG9rZW4oKSBjb25zdCB7IHJldHVybiB7IH07IH07Ci0jZW5kaWYKKyAgICAgICAgdmly
dHVhbCBSZWZQdHI8V2ViQ29yZTo6UHJvY2Vzc0lkZW50aXR5PiByZXNvdXJjZU93bmVyKCkgY29u
c3QgeyByZXR1cm4gbnVsbHB0cjsgfTsKICNpZiBFTkFCTEUoQVBQX1BSSVZBQ1lfUkVQT1JUKQog
ICAgICAgICB2aXJ0dWFsIHZvaWQgc2V0VENDSWRlbnRpdHkoKSB7IH0KICNlbmRpZgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9JbWFnZUJ1ZmZlclNo
YXJlYWJsZUJpdG1hcEJhY2tlbmQuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3Jh
cGhpY3MvSW1hZ2VCdWZmZXJTaGFyZWFibGVCaXRtYXBCYWNrZW5kLmgKaW5kZXggMTg0N2ZhNmZi
ZGU0MDZlZDZhNmFkMDYwNDk4Yjg4NWM1ZTM2YmIzZC4uZWEzNzc1MjljMjJmNTM3ZmUzNjk3YjQ4
MDEzY2UwNDllOTFjNzFkZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQ
VS9ncmFwaGljcy9JbWFnZUJ1ZmZlclNoYXJlYWJsZUJpdG1hcEJhY2tlbmQuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL0ltYWdlQnVmZmVyU2hhcmVhYmxlQml0
bWFwQmFja2VuZC5oCkBAIC0zMSw2ICszMSwxMCBAQAogI2luY2x1ZGUgPFdlYkNvcmUvUGxhdGZv
cm1JbWFnZUJ1ZmZlckJhY2tlbmQuaD4KICNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jLmg+CiAKK25h
bWVzcGFjZSBXZWJDb3JlIHsKK2NsYXNzIFByb2Nlc3NJZGVudGl0eTsKK30KKwogbmFtZXNwYWNl
IFdlYktpdCB7CiAKIGNsYXNzIFNoYXJlYWJsZUJpdG1hcDsKQEAgLTYxLDYgKzY1LDcgQEAgcHVi
bGljOgogICAgIHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6UGl4ZWxCdWZmZXI+IGdldFBpeGVsQnVm
ZmVyKGNvbnN0IFdlYkNvcmU6OlBpeGVsQnVmZmVyRm9ybWF0JiBvdXRwdXRGb3JtYXQsIGNvbnN0
IFdlYkNvcmU6OkludFJlY3QmKSBjb25zdCBvdmVycmlkZTsKICAgICB2b2lkIHB1dFBpeGVsQnVm
ZmVyKGNvbnN0IFdlYkNvcmU6OlBpeGVsQnVmZmVyJiwgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYg
c3JjUmVjdCwgY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIGRlc3RQb2ludCwgV2ViQ29yZTo6QWxw
aGFQcmVtdWx0aXBsaWNhdGlvbiBkZXN0Rm9ybWF0KSBvdmVycmlkZTsKIAorICAgIHZvaWQgc2V0
T3duZXJzaGlwSWRlbnRpdHkoV2ViQ29yZTo6UHJvY2Vzc0lkZW50aXR5KikgeyB9CiBwcml2YXRl
OgogICAgIHVuc2lnbmVkIGJ5dGVzUGVyUm93KCkgY29uc3Qgb3ZlcnJpZGU7CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvY29jb2EvSW1hZ2VCdWZm
ZXJTaGFyZWFibGVNYXBwZWRJT1N1cmZhY2VCYWNrZW5kLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9HUFUvZ3JhcGhpY3MvY29jb2EvSW1hZ2VCdWZmZXJTaGFyZWFibGVNYXBwZWRJT1N1
cmZhY2VCYWNrZW5kLmNwcAppbmRleCBhZmQyYzdjMDVjZmFmZDEzOTkzNDRmNWM2YTc2NGU0ODgw
ZDI4YmRhLi4xMTNlYWY5MmY4MGY1Mzg2NjBkZmJiNDA2MGMzYTdjODg4ZjY5MjVhIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL2NvY29hL0ltYWdlQnVm
ZmVyU2hhcmVhYmxlTWFwcGVkSU9TdXJmYWNlQmFja2VuZC5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9jb2NvYS9JbWFnZUJ1ZmZlclNoYXJlYWJsZU1hcHBl
ZElPU3VyZmFjZUJhY2tlbmQuY3BwCkBAIC03NywxMyArNzcsMTEgQEAgSW1hZ2VCdWZmZXJCYWNr
ZW5kSGFuZGxlIEltYWdlQnVmZmVyU2hhcmVhYmxlTWFwcGVkSU9TdXJmYWNlQmFja2VuZDo6Y3Jl
YXRlSW1hZ2UKICAgICByZXR1cm4gSW1hZ2VCdWZmZXJCYWNrZW5kSGFuZGxlKG1fc3VyZmFjZS0+
Y3JlYXRlU2VuZFJpZ2h0KCkpOwogfQogCi0jaWYgSEFWRShJT1NVUkZBQ0VfU0VUX09XTkVSU0hJ
UF9JREVOVElUWSkKLXZvaWQgSW1hZ2VCdWZmZXJTaGFyZWFibGVNYXBwZWRJT1N1cmZhY2VCYWNr
ZW5kOjpzZXRQcm9jZXNzT3duZXJzaGlwKHRhc2tfaWRfdG9rZW5fdCBwcm9jZXNzSWRlbnRpdHlU
b2tlbikKK3ZvaWQgSW1hZ2VCdWZmZXJTaGFyZWFibGVNYXBwZWRJT1N1cmZhY2VCYWNrZW5kOjpz
ZXRPd25lcnNoaXBJZGVudGl0eShXZWJDb3JlOjpQcm9jZXNzSWRlbnRpdHkqIHJlc291cmNlT3du
ZXIpCiB7CiAgICAgQVNTRVJUKHN1cmZhY2UoKSk7Ci0gICAgc3VyZmFjZSgpLT5zZXRPd25lcnNo
aXBJZGVudGl0eShwcm9jZXNzSWRlbnRpdHlUb2tlbik7CisgICAgc3VyZmFjZSgpLT5zZXRPd25l
cnNoaXBJZGVudGl0eShyZXNvdXJjZU93bmVyKTsKIH0KLSNlbmRpZgogCiB9IC8vIG5hbWVzcGFj
ZSBXZWJLaXQKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFw
aGljcy9jb2NvYS9JbWFnZUJ1ZmZlclNoYXJlYWJsZU1hcHBlZElPU3VyZmFjZUJhY2tlbmQuaCBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvY29jb2EvSW1hZ2VCdWZmZXJT
aGFyZWFibGVNYXBwZWRJT1N1cmZhY2VCYWNrZW5kLmgKaW5kZXggZTE0YTU0MGVjZGRkNDcxMTkw
OGE3YzE3MWMzYTI1ZWJmZDgwOGRiZS4uYjk3NjMyMjAzMmU2ZmQxYTMwYjlhMjQ0ZmY4Mzg5NjYw
OTU2NDdjMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGlj
cy9jb2NvYS9JbWFnZUJ1ZmZlclNoYXJlYWJsZU1hcHBlZElPU3VyZmFjZUJhY2tlbmQuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL2NvY29hL0ltYWdlQnVmZmVy
U2hhcmVhYmxlTWFwcGVkSU9TdXJmYWNlQmFja2VuZC5oCkBAIC0zMSw2ICszMSwxMCBAQAogI2lu
Y2x1ZGUgPFdlYkNvcmUvSW1hZ2VCdWZmZXJJT1N1cmZhY2VCYWNrZW5kLmg+CiAjaW5jbHVkZSA8
d3RmL0lzb01hbGxvYy5oPgogCituYW1lc3BhY2UgV2ViQ29yZSB7CitjbGFzcyBQcm9jZXNzSWRl
bnRpdHk7Cit9CisKIG5hbWVzcGFjZSBXZWJLaXQgewogCiBjbGFzcyBTaGFyZWFibGVCaXRtYXA7
CkBAIC00Niw5ICs1MCw3IEBAIHB1YmxpYzoKIAogICAgIEltYWdlQnVmZmVyQmFja2VuZEhhbmRs
ZSBjcmVhdGVJbWFnZUJ1ZmZlckJhY2tlbmRIYW5kbGUoKSBjb25zdDsKIAotI2lmIEhBVkUoSU9T
VVJGQUNFX1NFVF9PV05FUlNISVBfSURFTlRJVFkpCi0gICAgdm9pZCBzZXRQcm9jZXNzT3duZXJz
aGlwKHRhc2tfaWRfdG9rZW5fdCk7Ci0jZW5kaWYKKyAgICB2b2lkIHNldE93bmVyc2hpcElkZW50
aXR5KFdlYkNvcmU6OlByb2Nlc3NJZGVudGl0eSogcmVzb3VyY2VPd25lcik7CiB9OwogCiB9IC8v
IG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9j
b2NvYS9XZWJQcm9jZXNzQ29jb2EubW0gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2Ev
V2ViUHJvY2Vzc0NvY29hLm1tCmluZGV4IDFlYjkwZWYzNmViNTcyMDIzNjIwZmFhZjY4MTIzMTEy
MmUwNjAxNmMuLjYzYjM5YjFlMTY1NDkxNjczY2NjNDFhMDM4ODE0OGQ4M2U3ZDQxMTAgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9XZWJQcm9jZXNzQ29jb2EubW0K
KysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1dlYlByb2Nlc3NDb2NvYS5tbQpA
QCAtMTIzMSwxNCArMTIzMSw3IEBAIHZvaWQgV2ViUHJvY2Vzczo6d2FpdEZvclBlbmRpbmdQYXN0
ZWJvYXJkV3JpdGVzVG9GaW5pc2goY29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJkCiAjaWYgRU5BQkxF
KEdQVV9QUk9DRVNTKQogdm9pZCBXZWJQcm9jZXNzOjpwbGF0Zm9ybUluaXRpYWxpemVHUFVQcm9j
ZXNzQ29ubmVjdGlvblBhcmFtZXRlcnMoR1BVUHJvY2Vzc0Nvbm5lY3Rpb25QYXJhbWV0ZXJzJiBw
YXJhbWV0ZXJzKQogewotI2lmIEhBVkUoVEFTS19JREVOVElUWV9UT0tFTikKLSAgICB0YXNrX2lk
X3Rva2VuX3QgaWRlbnRpdHlUb2tlbjsKLSAgICBrZXJuX3JldHVybl90IGtyID0gdGFza19jcmVh
dGVfaWRlbnRpdHlfdG9rZW4obWFjaF90YXNrX3NlbGYoKSwgJmlkZW50aXR5VG9rZW4pOwotICAg
IGlmIChrciA9PSBLRVJOX1NVQ0NFU1MpCi0gICAgICAgIHBhcmFtZXRlcnMud2ViUHJvY2Vzc0lk
ZW50aXR5VG9rZW4gPSBNYWNoU2VuZFJpZ2h0OjphZG9wdChpZGVudGl0eVRva2VuKTsKLSAgICBl
bHNlCi0gICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKFByb2Nlc3MsICJDYWxsIHRvIHRhc2tfY3Jl
YXRlX2lkZW50aXR5X3Rva2VuKCkgZmFpbGVkOiAle3ByaXZhdGV9cyAoJXgpIiwgbWFjaF9lcnJv
cl9zdHJpbmcoa3IpLCBrcik7Ci0jZW5kaWYKKyAgICBwYXJhbWV0ZXJzLndlYlByb2Nlc3NJZGVu
dGl0eUhhbmRsZSA9IFByb2Nlc3NJZGVudGl0eTo6aGFuZGxlRm9yQ3VycmVudFByb2Nlc3MoKTsK
IAogICAgIHBhcmFtZXRlcnMub3ZlcnJpZGVMYW5ndWFnZXMgPSB1c2VyUHJlZmVycmVkTGFuZ3Vh
Z2VzT3ZlcnJpZGUoKTsKIH0KZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0No
YW5nZUxvZwppbmRleCA5NDVlYWViODIzMzE5ODg3M2MyNjQwNDE1YTc4MDYxMmE2YmQ4NzQ5Li43
MzVhYTcwYmVjNzk0ODFkNjFkZmZiNzVjZTVhMmQwZmU0MTJmZTZjIDEwMDY0NAotLS0gYS9Ub29s
cy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMjEt
MTItMDIgIEtpbW1vIEtpbm51bmVuICA8a2tpbm51bmVuQGFwcGxlLmNvbT4KKworICAgICAgICBJ
T1N1cmZhY2UgbWVtb3J5IGF0dHJpYnV0aW9uIGlzIGhhcmQgdG8gdXNlIGluIGNvbnN0cnVjdG9y
cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMyOTg4
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVXBkYXRl
IGNvbnN0cnVjdG9yIGNhbGxpbmcgYmFzZSBjbGFzcyBjb25zdHJ1Y3Rvci4KKworICAgICAgICAq
IFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9jb2NvYS9UZXN0R3JhcGhpY3NDb250ZXh0R0xP
cGVuR0xDb2NvYS5tbToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OldlYkNvcmU6OlRlc3RlZEdy
YXBoaWNzQ29udGV4dEdMT3BlbkdMOjpjcmVhdGUpOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6
V2ViQ29yZTo6VGVzdGVkR3JhcGhpY3NDb250ZXh0R0xPcGVuR0w6OlRlc3RlZEdyYXBoaWNzQ29u
dGV4dEdMT3BlbkdMKToKKwogMjAyMS0xMi0wMiAgQ2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2Fy
Y2lhQGlnYWxpYS5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZC4gW0dUS10gVXNlIG51bGxwdHIg
aW5zdGVhZCBvZiAwIGluIEpTU3RyaW5nQ3JlYXRlV2l0aENoYXJhY3RlcnMoKQpkaWZmIC0tZ2l0
IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL2NvY29hL1Rlc3RHcmFwaGljc0Nv
bnRleHRHTENvY29hLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL2NvY29h
L1Rlc3RHcmFwaGljc0NvbnRleHRHTENvY29hLm1tCmluZGV4IDg3NmM3NDQ4MDhmNDM2MWUzY2Q1
MmY1M2ZmZDZmNjAwM2E4YTBmODcuLmE5MTYyNzk4ZTZmMDdmNDc4YmMxMmJiZDgzZmMwNDViNDMy
MzczNzQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9jb2Nv
YS9UZXN0R3JhcGhpY3NDb250ZXh0R0xDb2NvYS5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYkNvcmUvY29jb2EvVGVzdEdyYXBoaWNzQ29udGV4dEdMQ29jb2EubW0KQEAgLTMy
LDYgKzMyLDcgQEAKICNpbXBvcnQgPE1ldGFsL01ldGFsLmg+CiAjaW1wb3J0IDxXZWJDb3JlL0Nv
bG9yLmg+CiAjaW1wb3J0IDxXZWJDb3JlL0dyYXBoaWNzQ29udGV4dEdMQ29jb2EuaD4KKyNpbXBv
cnQgPFdlYkNvcmUvUHJvY2Vzc0lkZW50aXR5Lmg+CiAjaW1wb3J0IDxvcHRpb25hbD4KICNpbXBv
cnQgPHd0Zi9IYXNoU2V0Lmg+CiAjaW1wb3J0IDx3dGYvTWVtb3J5Rm9vdHByaW50Lmg+CkBAIC02
Nyw3ICs2OCw3IEBAIHN0YXRpYyBSZWZQdHI8V2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0R0xDb2Nv
YT4gY3JlYXRlRGVmYXVsdFRlc3RDb250ZXh0KFdlYkNvcmU6CiAgICAgYXR0cmlidXRlcy5zdGVu
Y2lsID0gZmFsc2U7CiAgICAgYXR0cmlidXRlcy5hbHBoYSA9IHRydWU7CiAgICAgYXR0cmlidXRl
cy5wcmVzZXJ2ZURyYXdpbmdCdWZmZXIgPSBmYWxzZTsKLSAgICBhdXRvIGNvbnRleHQgPSBXZWJD
b3JlOjpHcmFwaGljc0NvbnRleHRHTENvY29hOjpjcmVhdGUoV1RGTW92ZShhdHRyaWJ1dGVzKSk7
CisgICAgYXV0byBjb250ZXh0ID0gV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0R0xDb2NvYTo6Y3Jl
YXRlKFdURk1vdmUoYXR0cmlidXRlcyksIHsgfSk7CiAgICAgaWYgKCFjb250ZXh0KQogICAgICAg
ICByZXR1cm4gbnVsbHB0cjsKICAgICBjb250ZXh0LT5yZXNoYXBlKGNvbnRleHRTaXplLndpZHRo
KCksIGNvbnRleHRTaXplLmhlaWdodCgpKTsKQEAgLTExOSwxNSArMTIwLDE1IEBAIFRFU1RfRihH
cmFwaGljc0NvbnRleHRHTENvY29hVGVzdCwgTUFZQkVfTXVsdGlwbGVHUFVzRGlmZmVyZW50UG93
ZXJQcmVmZXJlbmNlTWV0CiAgICAgV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0R0xBdHRyaWJ1dGVz
IGF0dHJpYnV0ZXM7CiAgICAgYXR0cmlidXRlcy51c2VNZXRhbCA9IHRydWU7CiAgICAgRVhQRUNU
X0VRKGF0dHJpYnV0ZXMucG93ZXJQcmVmZXJlbmNlLCBXZWJDb3JlOjpHcmFwaGljc0NvbnRleHRH
TFBvd2VyUHJlZmVyZW5jZTo6RGVmYXVsdCk7Ci0gICAgYXV0byBkZWZhdWx0Q29udGV4dCA9IFdl
YkNvcmU6OkdyYXBoaWNzQ29udGV4dEdMQ29jb2E6OmNyZWF0ZShXZWJDb3JlOjpHcmFwaGljc0Nv
bnRleHRHTEF0dHJpYnV0ZXMgeyBhdHRyaWJ1dGVzIH0pOworICAgIGF1dG8gZGVmYXVsdENvbnRl
eHQgPSBXZWJDb3JlOjpHcmFwaGljc0NvbnRleHRHTENvY29hOjpjcmVhdGUoV2ViQ29yZTo6R3Jh
cGhpY3NDb250ZXh0R0xBdHRyaWJ1dGVzIHsgYXR0cmlidXRlcyB9LCB7IH0pOwogICAgIEFTU0VS
VF9ORShkZWZhdWx0Q29udGV4dCwgbnVsbHB0cik7CiAKICAgICBhdHRyaWJ1dGVzLnBvd2VyUHJl
ZmVyZW5jZSA9IFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dEdMUG93ZXJQcmVmZXJlbmNlOjpMb3dQ
b3dlcjsKLSAgICBhdXRvIGxvd1Bvd2VyQ29udGV4dCA9IFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4
dEdMQ29jb2E6OmNyZWF0ZShXZWJDb3JlOjpHcmFwaGljc0NvbnRleHRHTEF0dHJpYnV0ZXMgeyBh
dHRyaWJ1dGVzIH0pOworICAgIGF1dG8gbG93UG93ZXJDb250ZXh0ID0gV2ViQ29yZTo6R3JhcGhp
Y3NDb250ZXh0R0xDb2NvYTo6Y3JlYXRlKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dEdMQXR0cmli
dXRlcyB7IGF0dHJpYnV0ZXMgfSwgeyB9KTsKICAgICBBU1NFUlRfTkUobG93UG93ZXJDb250ZXh0
LCBudWxscHRyKTsKIAogICAgIGF0dHJpYnV0ZXMucG93ZXJQcmVmZXJlbmNlID0gV2ViQ29yZTo6
R3JhcGhpY3NDb250ZXh0R0xQb3dlclByZWZlcmVuY2U6OkhpZ2hQZXJmb3JtYW5jZTsKLSAgICBh
dXRvIGhpZ2hQZXJmb3JtYW5jZUNvbnRleHQgPSBXZWJDb3JlOjpHcmFwaGljc0NvbnRleHRHTENv
Y29hOjpjcmVhdGUoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0R0xBdHRyaWJ1dGVzIHsgYXR0cmli
dXRlcyB9KTsKKyAgICBhdXRvIGhpZ2hQZXJmb3JtYW5jZUNvbnRleHQgPSBXZWJDb3JlOjpHcmFw
aGljc0NvbnRleHRHTENvY29hOjpjcmVhdGUoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0R0xBdHRy
aWJ1dGVzIHsgYXR0cmlidXRlcyB9LCB7IH0pOwogICAgIEFTU0VSVF9ORShoaWdoUGVyZm9ybWFu
Y2VDb250ZXh0LCBudWxscHRyKTsKIAogICAgIEVYUEVDVF9ORShsb3dQb3dlckNvbnRleHQtPmdl
dFN0cmluZyhXZWJDb3JlOjpHcmFwaGljc0NvbnRleHRHTDo6UkVOREVSRVIpLCBoaWdoUGVyZm9y
bWFuY2VDb250ZXh0LT5nZXRTdHJpbmcoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0R0w6OlJFTkRF
UkVSKSk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>446352</attachid>
            <date>2021-12-08 06:04:27 -0800</date>
            <delta_ts>2021-12-08 09:08:33 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-232988-20211208160424.patch</filename>
            <type>text/plain</type>
            <size>53864</size>
            <attacher name="Kimmo Kinnunen">kkinnunen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg2NjQ2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjc1NzhjN2UxNWI3Y2Rm
YjA0NzViYjg2NmYyMzYyNTFmYzA5YTBiNy4uODgwY2IxYjVhNjkxMzkxYjZkYmIwNTA2ZDVhMDAz
MmJjM2Q5OWIxMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU3IEBACisyMDIxLTEyLTA4ICBLaW1t
byBLaW5udW5lbiAgPGtraW5udW5lbkBhcHBsZS5jb20+CisKKyAgICAgICAgSU9TdXJmYWNlIG1l
bW9yeSBhdHRyaWJ1dGlvbiBpcyBoYXJkIHRvIHVzZSBpbiBjb25zdHJ1Y3RvcnMKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMjk4OAorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBXZWJDb3JlOjpQcm9j
ZXNzSWRlbnRpdHkgdHlwZSB0aGF0IGNhbiBiZSB1c2VkIHRvIGNvbW11bmljYXRlIG1lbW9yeSBh
dHRyaWJ1dGlvbi4KKyAgICAgICAgRm9yIG5vbi1Db2NvYSBwb3J0cywgdGhpcyBpcyBudWxscHRy
LgorICAgICAgICBUaGlzIGlzIHVzZWQgaW4gV2ViQ29yZSB0byBzZXQgdGhlIG1lbW9yeSBhdHRy
aWJ1dGlvbiBvZiBJT1N1cmZhY2UgYW5kIG9iamVjdHMKKyAgICAgICAgdGhhdCBob2xkIElPU3Vy
ZmFjZXMuCisgICAgICAgIFRoaXMgaXMgaW5zdGFudGlhdGVkIGluIFdlYktpdC4KKyAgICAgICAg
Q3VycmVudGx5IHRoZSBvbmx5IHVzZWZ1bCB3YXkgdG8gaW5zdGFudGlhdGUgUHJvY2Vzc0lkZW50
aXR5IGlzIGJ5IHJlY2VpdmluZworICAgICAgICB0aGUgUHJvY2Vzc0lkZW50aXR5OjpIYW5kbGUg
YXMgYSBtZXNzYWdlIGFuZCBjcmVhdGUgaXQgdGhpcyB3YXkgZm9yIHRoZQorICAgICAgICBzZW5k
ZXIgcHJvY2Vzcy4KKworICAgICAgICBObyBuZXcgdGVzdHMsIHJlZmFjdG9yLgorCisgICAgICAg
ICogSGVhZGVycy5jbWFrZToKKyAgICAgICAgKiBTb3VyY2VzLnR4dDoKKyAgICAgICAgKiBXZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogcGxhdGZvcm0vTG9nZ2lu
Zy5oOgorICAgICAgICBBZGQgV2ViQ29yZSBQcm9jZXNzIGxvZyB0YWcgc2luY2UgdGhlIGNvZGUg
bW92ZWQgZnJvbSBXZWJLaXQgdG8gUHJvY2Vzc0lkZW50aXR5CisgICAgICAgIHVzZWQgdGhhdCB0
YWcgdG8gbG9nLgorICAgICAgICAqIHBsYXRmb3JtL1Byb2Nlc3NJZGVudGl0eS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpQcm9jZXNzSWRlbnRpdHk6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3Jl
OjpQcm9jZXNzSWRlbnRpdHk6OlByb2Nlc3NJZGVudGl0eSk6CisgICAgICAgIChXZWJDb3JlOjpQ
cm9jZXNzSWRlbnRpdHk6OmhhbmRsZUZvckN1cnJlbnRQcm9jZXNzKToKKyAgICAgICAgKFdlYkNv
cmU6OlByb2Nlc3NJZGVudGl0eTo6aGFuZGxlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlBy
b2Nlc3NJZGVudGl0eTo6dGFza0lkVG9rZW4gY29uc3QpOgorICAgICAgICAqIHBsYXRmb3JtL1By
b2Nlc3NJZGVudGl0eS5oOgorICAgICAgICBBZGQgdGhlIFByb2Nlc3NJZGVudGl0eSB0eXBlIHRo
YXQgY2FuIGJlIHVzZWQgdG8gY29tbXVuaWNhdGUgbWVtb3J5IGF0dHJpYnV0aW9uLgorCisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvUmVtb3RlVmlkZW9TYW1wbGUuaDoKKyAgICAgICAgKFdl
YkNvcmU6OlJlbW90ZVZpZGVvU2FtcGxlOjpzZXRPd25lcnNoaXBJZGVudGl0eSk6CisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvY2cvSW1hZ2VCdWZmZXJVdGlsaXRpZXNDRy5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjplbmNvZGUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NvY29h
L0dyYXBoaWNzQ29udGV4dEdMT3BlbkdMQ29jb2EubW06CisgICAgICAgIChXZWJDb3JlOjpHcmFw
aGljc0NvbnRleHRHTE9wZW5HTDo6R3JhcGhpY3NDb250ZXh0R0xPcGVuR0wpOgorICAgICAgICAo
V2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0R0xPcGVuR0w6OmFsbG9jYXRlQW5kQmluZERpc3BsYXlC
dWZmZXJCYWNraW5nKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9JT1N1cmZh
Y2UuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9JT1N1cmZhY2UubW06Cisg
ICAgICAgIChXZWJDb3JlOjpJT1N1cmZhY2U6OnNldE93bmVyc2hpcElkZW50aXR5KToKKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9XZWJQcm9jZXNzR3JhcGhpY3NDb250ZXh0R0xP
cGVuR0xDb2NvYS5tbToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR3JhcGhp
Y3NDb250ZXh0R0xPcGVuR0wuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAv
R3JhcGhpY3NDb250ZXh0R0xUZXh0dXJlTWFwcGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okdy
YXBoaWNzQ29udGV4dEdMT3BlbkdMOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhp
Y3NDb250ZXh0R0xPcGVuR0w6OkdyYXBoaWNzQ29udGV4dEdMT3BlbkdMKToKKyAgICAgICAgQWRk
IGFuIGV4YW1wbGUgdXNlIHdoZXJlIHRoZSBjb25zdHJ1Y3RvciB0YWtlcyB0aGUgbWVtb3J5IGF0
dHJpYnV0aW9uIHRva2VuLgorICAgICAgICBUaGlzIG1heSBiZSBuZWVkZWQgaW4gdGhlIGZ1dHVy
ZSB3aGVuIHRoZSB0b2tlbiBpcyB1c2VkIGFzIGEgcGFyYW1ldGVyIGluCisgICAgICAgIHRoZSBB
TkdMRSBjb250ZXh0IGNyZWF0aW9uLgorICAgICAgICBVc2UgdGhlIHRva2VuIGluIGNyZWF0aW5n
IHRoZSBJT1N1cmZhY2UuIFRoaXMgZml4ZXMgYSBidWcgd2hlcmUgV2ViR0wKKyAgICAgICAgYmFj
ayBidWZmZXJzIHdvdWxkIG5vdCBiZSBhdHRyaWJ1dGVkIHVudGlsIHRoZXkgd2VyZSBzZW50IHRv
IFdQLgorCiAyMDIxLTEyLTA4ICBEaWVnbyBQaW5vIEdhcmNpYSAgPGRwaW5vQGlnYWxpYS5jb20+
CiAKICAgICAgICAgUkVHUkVTU0lPTihyMjg2NTU2KTogRGV2aWNlT3JpZW50YXRpb25VcGRhdGVQ
cm92aWRlci5oIGlzIG9ubHkgYXZhaWxhYmxlIGluIGlPUwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCBjMzY1NTZjOTlk
ZDE3NTFmZDhmMDNlYmYyNTYyYTFlNjBiZmExZDM3Li4yZjljNmIzY2M1MWYzZjFiOGVjYmU2ZDAy
NGQ2OGZmZjFjNzI4NjNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysg
Yi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDU0IEBACisyMDIxLTEyLTA4ICBL
aW1tbyBLaW5udW5lbiAgPGtraW5udW5lbkBhcHBsZS5jb20+CisKKyAgICAgICAgSU9TdXJmYWNl
IG1lbW9yeSBhdHRyaWJ1dGlvbiBpcyBoYXJkIHRvIHVzZSBpbiBjb25zdHJ1Y3RvcnMKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMjk4OAorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlbW92ZSBpZmRlZnMg
YW5kIGRpcmVjdCB1c2Ugb2YgdGFza19pZF90b2tlbl90LgorICAgICAgICBJbnN0ZWFkLCB1c2Ug
V2ViQ29yZTo6UHJvY2Vzc0lkZW50aWZpZXIuIFRoaXMgd2F5IHRoZQorICAgICAgICBjcm9zcy1w
bGF0Zm9ybSBjb2RlIGlzIGVhc2llciB0byBhdXRob3IuCisKKyAgICAgICAgKiBHUFVQcm9jZXNz
L0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwOgorICAgICAgICAoV2ViS2l0OjpHUFVDb25u
ZWN0aW9uVG9XZWJQcm9jZXNzOjpHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzKToKKyAgICAgICAg
KiBHUFVQcm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaDoKKyAgICAgICAgKFdlYktp
dDo6R1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6d2ViUHJvY2Vzc0lkZW50aXR5IGNvbnN0KToK
KyAgICAgICAgKFdlYktpdDo6R1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6d2ViUHJvY2Vzc0lk
ZW50aXR5VG9rZW4gY29uc3QpOiBEZWxldGVkLgorICAgICAgICAqIEdQVVByb2Nlc3MvZ3JhcGhp
Y3MvR1BVUHJvY2Vzc0dyYXBoaWNzQ29udGV4dEdMLmg6CisgICAgICAgICogR1BVUHJvY2Vzcy9n
cmFwaGljcy9SZW1vdGVHcmFwaGljc0NvbnRleHRHTENvY29hLmNwcDoKKyAgICAgICAgKFdlYktp
dDo6UmVtb3RlR3JhcGhpY3NDb250ZXh0R0xDb2NvYTo6UmVtb3RlR3JhcGhpY3NDb250ZXh0R0xD
b2NvYSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUdyYXBoaWNzQ29udGV4dEdMQ29jb2E6OnBs
YXRmb3JtV29ya1F1ZXVlSW5pdGlhbGl6ZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUdyYXBo
aWNzQ29udGV4dEdMQ29jb2E6OnByZXBhcmVGb3JEaXNwbGF5KToKKyAgICAgICAgKiBHUFVQcm9j
ZXNzL2dyYXBoaWNzL1JlbW90ZUltYWdlQnVmZmVyLmg6CisgICAgICAgIChXZWJLaXQ6OlJlbW90
ZUltYWdlQnVmZmVyOjpzZXRPd25lcnNoaXBJZGVudGl0eSk6CisgICAgICAgIChXZWJLaXQ6OlJl
bW90ZUltYWdlQnVmZmVyOjpzZXRQcm9jZXNzT3duZXJzaGlwKTogRGVsZXRlZC4KKyAgICAgICAg
KiBHUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpSZW1vdGVSZW5kZXJpbmdCYWNrZW5kOjpSZW1vdGVSZW5kZXJpbmdCYWNrZW5k
KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVuZGVyaW5nQmFja2VuZDo6Y3JlYXRlSW1hZ2VC
dWZmZXJXaXRoUXVhbGlmaWVkSWRlbnRpZmllcik6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJl
bmRlcmluZ0JhY2tlbmQ6OmdldERhdGFVUkxGb3JJbWFnZUJ1ZmZlcldpdGhRdWFsaWZpZWRJZGVu
dGlmaWVyKToKKyAgICAgICAgKiBHUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0Jh
Y2tlbmQuaDoKKyAgICAgICAgKiBHUFVQcm9jZXNzL3dlYnJ0Yy9MaWJXZWJSVENDb2RlY3NQcm94
eS5tbToKKyAgICAgICAgKFdlYktpdDo6RnVuY3Rpb248dm9pZCk6CisgICAgICAgICogU2hhcmVk
L0dQVVByb2Nlc3NDb25uZWN0aW9uUGFyYW1ldGVycy5oOgorICAgICAgICAoV2ViS2l0OjpHUFVQ
cm9jZXNzQ29ubmVjdGlvblBhcmFtZXRlcnM6OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJL
aXQ6OkdQVVByb2Nlc3NDb25uZWN0aW9uUGFyYW1ldGVyczo6ZGVjb2RlKToKKyAgICAgICAgKiBT
aGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNwcDoKKyAgICAgICAgKiBTaGFyZWQvV2ViQ29y
ZUFyZ3VtZW50Q29kZXJzLmg6CisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNh
cHR1cmVNYW5hZ2VyUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFDYXB0dXJl
TWFuYWdlclByb3h5OjpTb3VyY2VQcm94eTo6U291cmNlUHJveHkpOgorICAgICAgICAoV2ViS2l0
OjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OjpTb3VyY2VQcm94eTo6c2V0U2hvdWxkQXBw
bHlSb3RhdGlvbik6CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJv
eHk6OmNyZWF0ZU1lZGlhU291cmNlRm9yQ2FwdHVyZURldmljZVdpdGhDb25zdHJhaW50cyk6Cisg
ICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6OmNsb25lKToKKyAg
ICAgICAgKFdlYktpdDo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6U291cmNlUHJveHk6
OnNldFdlYlByb2Nlc3NJZGVudGl0eVRva2VuKTogRGVsZXRlZC4KKyAgICAgICAgKiBVSVByb2Nl
c3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5oOgorICAgICAgICAoV2ViS2l0
OjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OjpDb25uZWN0aW9uUHJveHk6OnJlc291cmNl
T3duZXIgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclBy
b3h5OjpDb25uZWN0aW9uUHJveHk6OndlYlByb2Nlc3NJZGVudGl0eVRva2VuIGNvbnN0KTogRGVs
ZXRlZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9jb2NvYS9JbWFnZUJ1ZmZl
clNoYXJlYWJsZU1hcHBlZElPU3VyZmFjZUJhY2tlbmQuY3BwOgorICAgICAgICAoV2ViS2l0OjpJ
bWFnZUJ1ZmZlclNoYXJlYWJsZU1hcHBlZElPU3VyZmFjZUJhY2tlbmQ6OnNldE93bmVyc2hpcElk
ZW50aXR5KToKKyAgICAgICAgKFdlYktpdDo6SW1hZ2VCdWZmZXJTaGFyZWFibGVNYXBwZWRJT1N1
cmZhY2VCYWNrZW5kOjpzZXRQcm9jZXNzT3duZXJzaGlwKTogRGVsZXRlZC4KKyAgICAgICAgKiBX
ZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9jb2NvYS9JbWFnZUJ1ZmZlclNoYXJlYWJsZU1hcHBlZElP
U3VyZmFjZUJhY2tlbmQuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL2NvY29hL1dlYlByb2Nlc3ND
b2NvYS5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6cGxhdGZvcm1Jbml0aWFsaXpl
R1BVUHJvY2Vzc0Nvbm5lY3Rpb25QYXJhbWV0ZXJzKToKIDIwMjEtMTItMDcgIEFkaXR5YSBLZWVy
dGhpICA8YWtlZXJ0aGlAYXBwbGUuY29tPgogCiAgICAgICAgIFtpT1NdIEFkZCBpbml0aWFsIHN1
cHBvcnQgZm9yIGZpbmQtaW4tcGFnZSBTUEkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0hl
YWRlcnMuY21ha2UgYi9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCmluZGV4IDc5NjM2YmRk
ODg2NThlNmFjYWZhOTBlMzE1NWE2OTk2OWRlZjc0NTQuLmM2YWUwNmIzYTI0ZWNiNzI3MGJiN2My
NWVhOWFhNjg5NmRkOWFlMmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21h
a2UKKysrIGIvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQpAQCAtMTI5MSw2ICsxMjkxLDcg
QEAgc2V0KFdlYkNvcmVfUFJJVkFURV9GUkFNRVdPUktfSEVBREVSUwogICAgIHBsYXRmb3JtL1Bv
cHVwTWVudUNsaWVudC5oCiAgICAgcGxhdGZvcm0vUG9wdXBNZW51U3R5bGUuaAogICAgIHBsYXRm
b3JtL1Byb2Nlc3NJZGVudGlmaWVyLmgKKyAgICBwbGF0Zm9ybS9Qcm9jZXNzSWRlbnRpdHkuaAog
ICAgIHBsYXRmb3JtL1Byb2Nlc3NRdWFsaWZpZWQuaAogICAgIHBsYXRmb3JtL1Byb21pc2VkQXR0
YWNobWVudEluZm8uaAogICAgIHBsYXRmb3JtL1B1YmxpY1N1ZmZpeC5oCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0Cmlu
ZGV4IGRlOTM0M2E0N2Q5YzUzYzk4MjFkOTFmMjJjMWJjM2MxOTllYjk1ZWQuLjBkZDUwOGZhNmYy
YTYzYWU4NzA4MGRhYmM4NTcxMWUwNjQyNWUwM2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L1NvdXJjZXMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CkBAIC0xODg1LDYg
KzE4ODUsNyBAQCBwbGF0Zm9ybS9QbGF0Zm9ybVN0cmF0ZWdpZXMuY3BwCiBwbGF0Zm9ybS9QbGF0
Zm9ybVdoZWVsRXZlbnQuY3BwCiBwbGF0Zm9ybS9QcmV2aWV3Q29udmVydGVyLmNwcAogcGxhdGZv
cm0vUHJvY2Vzc0lkZW50aWZpZXIuY3BwCitwbGF0Zm9ybS9Qcm9jZXNzSWRlbnRpdHkuY3BwCiBw
bGF0Zm9ybS9SZWZlcnJlclBvbGljeS5jcHAKIHBsYXRmb3JtL1JlbW90ZUNvbW1hbmRMaXN0ZW5l
ci5jcHAKIHBsYXRmb3JtL1J1bnRpbWVBcHBsaWNhdGlvbkNoZWNrcy5jcHAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCAzZmRmMjFm
M2Y2MjJiZTkyZjNiNTAzMTdmZWM4ZjMxMDI5NGMzNjUzLi5mYTkyMDhlNzNiODM2NjQ3ZWMzMDZk
ZWYxM2E0ODAyYTMzODg1ODdkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0yMzg3LDYgKzIzODcsNyBAQAogCQk3QkIzNEE0ODI1
Mzc3NkNBMDAwMjlEMDggLyogR3JhcGhpY3NDb250ZXh0R0xJbWFnZUV4dHJhY3Rvci5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0JCMzRBNDUyNTM3NzZD
NjAwMDI5RDA4IC8qIEdyYXBoaWNzQ29udGV4dEdMSW1hZ2VFeHRyYWN0b3IuaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk3QkI2ODBCQTI1QkExQkU0
MDAyQjg3MzggLyogR3JhcGhpY3NDaGVja3NNYWMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdCQjY4MEI4MjVCQTFCRTQwMDJCODczOCAvKiBHcmFwaGlj
c0NoZWNrc01hYy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CiAJCTdCRERBMzFGMjc0RkEwMjEwMDM4NjU5RSAvKiBHcmFwaGljc0NvbnRleHRHTENvY29h
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3QkREQTMx
RDI3NEY5REE1MDAzODY1OUUgLyogR3JhcGhpY3NDb250ZXh0R0xDb2NvYS5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTdCRERBMzRDMjc1QTAxMzEw
MDM4NjU5RSAvKiBQcm9jZXNzSWRlbnRpdHkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDdCRERBMzQ5Mjc1QTAxMzAwMDM4NjU5RSAvKiBQcm9jZXNzSWRl
bnRpdHkuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9Owog
CQk3QkU3NDI3MzgxRkE5MDZGQkI0RjBGMkMgLyogSlNTVkdHcmFwaGljc0VsZW1lbnQuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk1MEM0QzAyQkVEODkz
NkY4MThFMkY5OSAvKiBKU1NWR0dyYXBoaWNzRWxlbWVudC5oICovOyB9OwogCQk3QkZGNTlGNDI3
NTc3MjY3MDA3NzNEMzkgLyogRGlzcGxheUNvbmZpZ3VyYXRpb25Nb25pdG9yLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3QkZGNTlFRjI3NTc3MUU4MDA3
NzNEMzkgLyogRGlzcGxheUNvbmZpZ3VyYXRpb25Nb25pdG9yLmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJN0MwMjlDNkUyNDkzQzhGODAwMjY4MjA0
IC8qIENvbG9yVHlwZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDdDMDI5QzZEMjQ5M0M4RjgwMDI2ODIwNCAvKiBDb2xvclR5cGVzLmggKi87IHNldHRp
bmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTExNDE3LDYgKzExNDE4
LDggQEAKIAkJN0JDRDQyREMyNzA1Qzk0OTAwRUIyMTI3IC8qIEFOR0xFVXRpbGl0aWVzQ29jb2Eu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gQU5HTEVVdGlsaXRpZXNDb2NvYS5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk3QkREQTMxQzI3NEY5REE0MDAzODY1OUUgLyogR3JhcGhpY3NDb250ZXh0
R0xDb2NvYS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IEdyYXBo
aWNzQ29udGV4dEdMQ29jb2EubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdCRERB
MzFEMjc0RjlEQTUwMDM4NjU5RSAvKiBHcmFwaGljc0NvbnRleHRHTENvY29hLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEdyYXBoaWNzQ29udGV4dEdMQ29jb2EuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJN0JEREEzNDkyNzVBMDEzMDAwMzg2NTlFIC8qIFByb2Nl
c3NJZGVudGl0eS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQcm9jZXNzSWRl
bnRpdHkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJN0JEREEzNEIyNzVBMDEzMDAw
Mzg2NTlFIC8qIFByb2Nlc3NJZGVudGl0eS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBQcm9jZXNzSWRlbnRpdHkuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk3QkU3MjY1QjI1NzYzQjhEMDBFODVEOTggLyogUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQ
cm94eUJhc2UuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQ
cm94eUJhc2UuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3QkZGNTlFRjI3NTc3
MUU4MDA3NzNEMzkgLyogRGlzcGxheUNvbmZpZ3VyYXRpb25Nb25pdG9yLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZXhwbGljaXRGaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmg7IGZp
bGVFbmNvZGluZyA9IDQ7IHBhdGggPSBEaXNwbGF5Q29uZmlndXJhdGlvbk1vbml0b3IuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0JGRjU5RjEyNzU3NzFFODAwNzczRDM5IC8qIERp
c3BsYXlDb25maWd1cmF0aW9uTW9uaXRvci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBEaXNwbGF5Q29uZmlndXJhdGlvbk1vbml0b3IuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwpAQCAtMjk4MjYsNiArMjk4MjksOCBAQAogCQkJCUExQURBRjdDMjM2MEZE
M0UwMDlDQjc3NiAvKiBQcmV2aWV3Q29udmVydGVyUHJvdmlkZXIuaCAqLywKIAkJCQk1MUY2NDVE
MjFGRUNEQkM4MDBCNTRERUQgLyogUHJvY2Vzc0lkZW50aWZpZXIuY3BwICovLAogCQkJCTUxRjY0
NUQzMUZFQ0RCQzgwMEI1NERFRCAvKiBQcm9jZXNzSWRlbnRpZmllci5oICovLAorCQkJCTdCRERB
MzRCMjc1QTAxMzAwMDM4NjU5RSAvKiBQcm9jZXNzSWRlbnRpdHkuY3BwICovLAorCQkJCTdCRERB
MzQ5Mjc1QTAxMzAwMDM4NjU5RSAvKiBQcm9jZXNzSWRlbnRpdHkuaCAqLywKIAkJCQkxQ0M1NEFG
QjI3MEY5MkRBMDA1QkY4QkUgLyogUHJvY2Vzc1F1YWxpZmllZC5oICovLAogCQkJCUY0N0E2MzND
MUZGNkZENTAwMDgxQjNDQyAvKiBQcm9taXNlZEF0dGFjaG1lbnRJbmZvLmggKi8sCiAJCQkJMDA4
MUZFRkQxNkIwQTI0NDAwOEFBQTdBIC8qIFB1YmxpY1N1ZmZpeC5oICovLApAQCAtMzYzNjQsNiAr
MzYzNjksNyBAQAogCQkJCUI3MUZFNkRGMTEwOTFDQjMwMERBRUY3NyAvKiBQcmludENvbnRleHQu
aCBpbiBIZWFkZXJzICovLAogCQkJCTZCMEEwN0YyMjFGQTRCNUMwMEQ1NzM5MSAvKiBQcml2YXRl
Q2xpY2tNZWFzdXJlbWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTFGNjQ1RDUxRkVDREJDRTAw
QjU0REVEIC8qIFByb2Nlc3NJZGVudGlmaWVyLmggaW4gSGVhZGVycyAqLywKKwkJCQk3QkREQTM0
QzI3NUEwMTMxMDAzODY1OUUgLyogUHJvY2Vzc0lkZW50aXR5LmggaW4gSGVhZGVycyAqLywKIAkJ
CQlBOEVBN0VCQzBBMTk0NUQwMDBBOEVGNUYgLyogUHJvY2Vzc2luZ0luc3RydWN0aW9uLmggaW4g
SGVhZGVycyAqLywKIAkJCQkxQ0M1NEFGRTI3MEY5NkFFMDA1QkY4QkUgLyogUHJvY2Vzc1F1YWxp
ZmllZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTQyMDUwMTcyMTQxOTAxQjAwNjZFRjNCIC8qIFBy
b2Nlc3NXYXJtaW5nLmggaW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL0xvZ2dpbmcuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xvZ2dpbmcuaApp
bmRleCAzZmJlNDE3YmU5ODFiNzVlNzc5ZGUyMzhmYzRiZTA1YTZkNzMwZmFhLi5kYzBmNTA5OGI4
N2YxODQ1NTI1YmUzYzBiYTQxZjc2NzViMTQwNDdmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9Mb2dnaW5nLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTG9nZ2lu
Zy5oCkBAIC05NCw2ICs5NCw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICBNKFBsdWdpbnMp
IFwKICAgICBNKFBvcHVwQmxvY2tpbmcpIFwKICAgICBNKFByaXZhdGVDbGlja01lYXN1cmVtZW50
KSBcCisgICAgTShQcm9jZXNzKSBcCiAgICAgTShQcm9ncmVzcykgXAogICAgIE0oUmVtb3RlSW5z
cGVjdG9yKSBcCiAgICAgTShSZXF1ZXN0QW5pbWF0aW9uRnJhbWUpIFwKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Byb2Nlc3NJZGVudGl0eS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9Qcm9jZXNzSWRlbnRpdHkuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmZiYzFhZTE5NTNhOWJl
YTI3Y2Y1NzZhMmQ0ZjExMTdiMDg0OWI2MzQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9Qcm9jZXNzSWRlbnRpdHkuY3BwCkBAIC0wLDAgKzEsODkgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFT
IElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJV
VE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVT
UyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQK
KyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmln
LmgiCisjaW5jbHVkZSAiUHJvY2Vzc0lkZW50aXR5LmgiCisKKyNpbmNsdWRlICJMb2dnaW5nLmgi
CisKKyNpZiBIQVZFKFRBU0tfSURFTlRJVFlfVE9LRU4pCisjaW5jbHVkZSA8bWFjaC9tYWNoLmg+
CisjZW5kaWYKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitQcm9jZXNzSWRlbnRpdHk6OkhhbmRs
ZSBQcm9jZXNzSWRlbnRpdHk6OmhhbmRsZUZvckN1cnJlbnRQcm9jZXNzKCkKK3sKKyAgICBQcm9j
ZXNzSWRlbnRpdHk6OkhhbmRsZSByZXN1bHQ7CisjaWYgSEFWRShUQVNLX0lERU5USVRZX1RPS0VO
KQorICAgIHRhc2tfaWRfdG9rZW5fdCBpZGVudGl0eVRva2VuOworICAgIGtlcm5fcmV0dXJuX3Qg
a3IgPSB0YXNrX2NyZWF0ZV9pZGVudGl0eV90b2tlbihtYWNoX3Rhc2tfc2VsZigpLCAmaWRlbnRp
dHlUb2tlbik7CisgICAgaWYgKGtyID09IEtFUk5fU1VDQ0VTUykKKyAgICAgICAgcmVzdWx0ID0g
TWFjaFNlbmRSaWdodDo6YWRvcHQoaWRlbnRpdHlUb2tlbik7CisgICAgZWxzZQorICAgICAgICBS
RUxFQVNFX0xPR19FUlJPUihQcm9jZXNzLCAidGFza19jcmVhdGVfaWRlbnRpdHlfdG9rZW4oKSBm
YWlsZWQ6ICV7cHJpdmF0ZX1zICgleCkiLCBtYWNoX2Vycm9yX3N0cmluZyhrciksIGtyKTsKKyNl
bmRpZgorICAgIHJldHVybiByZXN1bHQ7Cit9CisKK1Byb2Nlc3NJZGVudGl0eTo6UHJvY2Vzc0lk
ZW50aXR5KCkgPSBkZWZhdWx0OworCitQcm9jZXNzSWRlbnRpdHk6OlByb2Nlc3NJZGVudGl0eShI
YW5kbGUmJiBoYW5kbGUpCisgICAgOiBtX2hhbmRsZShXVEZNb3ZlKGhhbmRsZSkpCit7Cit9CisK
K1Byb2Nlc3NJZGVudGl0eTo6UHJvY2Vzc0lkZW50aXR5KFByb2Nlc3NJZGVudGl0eSYmKSA9IGRl
ZmF1bHQ7CisKK1Byb2Nlc3NJZGVudGl0eTo6UHJvY2Vzc0lkZW50aXR5KGNvbnN0IFByb2Nlc3NJ
ZGVudGl0eSYpID0gZGVmYXVsdDsKKworUHJvY2Vzc0lkZW50aXR5Ojp+UHJvY2Vzc0lkZW50aXR5
KCkgPSBkZWZhdWx0OworCitQcm9jZXNzSWRlbnRpdHkmIFByb2Nlc3NJZGVudGl0eTo6b3BlcmF0
b3I9KFByb2Nlc3NJZGVudGl0eSYmKSA9IGRlZmF1bHQ7CisKK1Byb2Nlc3NJZGVudGl0eSYgUHJv
Y2Vzc0lkZW50aXR5OjpvcGVyYXRvcj0oY29uc3QgUHJvY2Vzc0lkZW50aXR5JikgPSBkZWZhdWx0
OworCitjb25zdCBQcm9jZXNzSWRlbnRpdHk6OkhhbmRsZSYgUHJvY2Vzc0lkZW50aXR5OjpoYW5k
bGUoKSBjb25zdAoreworICAgIHJldHVybiBtX2hhbmRsZTsKK30KKworI2lmIEhBVkUoVEFTS19J
REVOVElUWV9UT0tFTikKK3Rhc2tfaWRfdG9rZW5fdCBQcm9jZXNzSWRlbnRpdHk6OnRhc2tJZFRv
a2VuKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9oYW5kbGUuc2VuZFJpZ2h0KCk7Cit9CisjZW5k
aWYKKworUHJvY2Vzc0lkZW50aXR5OjpvcGVyYXRvciBib29sKCkgY29uc3QKK3sKKyNpZiBIQVZF
KFRBU0tfSURFTlRJVFlfVE9LRU4pCisgICAgcmV0dXJuIHN0YXRpY19jYXN0PGJvb2w+KG1faGFu
ZGxlKTsKKyNlbHNlCisgICAgcmV0dXJuIGZhbHNlOworI2VuZGlmCit9CisKK30KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Byb2Nlc3NJZGVudGl0eS5oIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vUHJvY2Vzc0lkZW50aXR5LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNmNkOWY2ZTE4NGNl
MWQ4YTc2ZDRhNjMwYWIwOGUxMjQzMGIzMDhjNwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL1Byb2Nlc3NJZGVudGl0eS5oCkBAIC0wLDAgKzEsNjUgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFT
IElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJV
VE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVT
UyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQK
KyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKwor
I2lmIEhBVkUoVEFTS19JREVOVElUWV9UT0tFTikKKyNpbmNsdWRlIDx3dGYvTWFjaFNlbmRSaWdo
dC5oPgorI2Vsc2UKKyNpbmNsdWRlIDx2YXJpYW50PgorI2VuZGlmCisKK25hbWVzcGFjZSBXZWJD
b3JlIHsKKworLy8gT2JqZWN0IHRvIGFjY2VzcyBwcm9vZiBvZiBwcm9jZXNzIGlkZW50aXR5Lgor
Ly8gUHJvY2Vzc0lkZW50aWZpZXIgaWRlbnRpZmllcyBhIHByb2Nlc3MuCisvLyBQcm9jZXNzSWRl
bnRpdHkgZ3JhbnRzIGFjY2VzcyB0byB0aGUgaWRlbnRpdHkuCitjbGFzcyBXRUJDT1JFX0VYUE9S
VCBQcm9jZXNzSWRlbnRpdHkgeworcHVibGljOgorI2lmIEhBVkUoVEFTS19JREVOVElUWV9UT0tF
TikKKyAgICB1c2luZyBIYW5kbGUgPSBNYWNoU2VuZFJpZ2h0OworI2Vsc2UKKyAgICB1c2luZyBI
YW5kbGUgPSBzdGQ6Om1vbm9zdGF0ZTsKKyNlbmRpZgorICAgIHN0YXRpYyBIYW5kbGUgaGFuZGxl
Rm9yQ3VycmVudFByb2Nlc3MoKTsKKworICAgIFByb2Nlc3NJZGVudGl0eSgpOworICAgIFByb2Nl
c3NJZGVudGl0eShIYW5kbGUmJik7CisgICAgUHJvY2Vzc0lkZW50aXR5KFByb2Nlc3NJZGVudGl0
eSYmKTsKKyAgICBQcm9jZXNzSWRlbnRpdHkoY29uc3QgUHJvY2Vzc0lkZW50aXR5Jik7CisgICAg
flByb2Nlc3NJZGVudGl0eSgpOworICAgIFByb2Nlc3NJZGVudGl0eSYgb3BlcmF0b3I9KFByb2Nl
c3NJZGVudGl0eSYmKTsKKyAgICBQcm9jZXNzSWRlbnRpdHkmIG9wZXJhdG9yPShjb25zdCBQcm9j
ZXNzSWRlbnRpdHkmKTsKKyAgICBjb25zdCBIYW5kbGUmIGhhbmRsZSgpIGNvbnN0OworICAgIG9w
ZXJhdG9yIGJvb2woKSBjb25zdDsKKworI2lmIEhBVkUoVEFTS19JREVOVElUWV9UT0tFTikKKyAg
ICB0YXNrX2lkX3Rva2VuX3QgdGFza0lkVG9rZW4oKSBjb25zdDsKKyNlbmRpZgorcHJpdmF0ZToK
KyAgICBIYW5kbGUgbV9oYW5kbGU7Cit9OworCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9SZW1vdGVWaWRlb1NhbXBsZS5oIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvUmVtb3RlVmlkZW9TYW1wbGUuaAppbmRleCBhNjE3MGIzMjhmYzQ0
YWNlNjkzZGNkYjM1ZWU0ZDNjZTY4NzMzOGExLi5mYmVlN2U4MTMzNmY3ZDM5ZDM2MmQ5NjA3OWUz
Njc5ZjMwOTBmYzMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9SZW1vdGVWaWRlb1NhbXBsZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL1JlbW90ZVZpZGVvU2FtcGxlLmgKQEAgLTM3LDYgKzM3LDggQEAgdHlwZWRlZiBzdHJ1Y3Qg
X19DVkJ1ZmZlciogQ1ZQaXhlbEJ1ZmZlclJlZjsKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCitj
bGFzcyBQcm9jZXNzSWRlbnRpdHk7CisKIGNsYXNzIFJlbW90ZVZpZGVvU2FtcGxlIHsKIHB1Ymxp
YzoKICAgICBSZW1vdGVWaWRlb1NhbXBsZSgpID0gZGVmYXVsdDsKQEAgLTQ4LDkgKzUwLDcgQEAg
cHVibGljOgogICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8UmVtb3Rl
VmlkZW9TYW1wbGU+IGNyZWF0ZShSZXRhaW5QdHI8Q1ZQaXhlbEJ1ZmZlclJlZj4mJiwgTWVkaWFU
aW1lJiYgcHJlc2VudGF0aW9uVGltZSwgTWVkaWFTYW1wbGU6OlZpZGVvUm90YXRpb24gPSBNZWRp
YVNhbXBsZTo6VmlkZW9Sb3RhdGlvbjo6Tm9uZSk7CiAgICAgV0VCQ09SRV9FWFBPUlQgSU9TdXJm
YWNlUmVmIHN1cmZhY2UoKSBjb25zdDsKIAotI2lmIEhBVkUoSU9TVVJGQUNFX1NFVF9PV05FUlNI
SVBfSURFTlRJVFkpCi0gICAgdm9pZCBzZXRPd25lcnNoaXBJZGVudGl0eSh0YXNrX2lkX3Rva2Vu
X3QgbmV3T3duZXIpOwotI2VuZGlmCisgICAgdm9pZCBzZXRPd25lcnNoaXBJZGVudGl0eShjb25z
dCBQcm9jZXNzSWRlbnRpdHkmIHJlc291cmNlT3duZXIpOwogCiAgICAgY29uc3QgTWVkaWFUaW1l
JiB0aW1lKCkgY29uc3QgeyByZXR1cm4gbV90aW1lOyB9CiAgICAgdWludDMyX3QgdmlkZW9Gb3Jt
YXQoKSBjb25zdCB7IHJldHVybiBtX3ZpZGVvRm9ybWF0OyB9CkBAIC0xMTksMTMgKzExOSwxMSBA
QCBwcml2YXRlOgogICAgIGJvb2wgbV9taXJyb3JlZCB7IGZhbHNlIH07CiB9OwogCi0jaWYgSEFW
RShJT1NVUkZBQ0VfU0VUX09XTkVSU0hJUF9JREVOVElUWSkKLWlubGluZSB2b2lkIFJlbW90ZVZp
ZGVvU2FtcGxlOjpzZXRPd25lcnNoaXBJZGVudGl0eSh0YXNrX2lkX3Rva2VuX3QgbmV3T3duZXIp
CitpbmxpbmUgdm9pZCBSZW1vdGVWaWRlb1NhbXBsZTo6c2V0T3duZXJzaGlwSWRlbnRpdHkoY29u
c3QgUHJvY2Vzc0lkZW50aXR5JiByZXNvdXJjZU93bmVyKQogewogICAgIGlmIChtX2lvU3VyZmFj
ZSkKLSAgICAgICAgbV9pb1N1cmZhY2UtPnNldE93bmVyc2hpcElkZW50aXR5KG5ld093bmVyKTsK
KyAgICAgICAgbV9pb1N1cmZhY2UtPnNldE93bmVyc2hpcElkZW50aXR5KHJlc291cmNlT3duZXIp
OwogfQotI2VuZGlmCiAKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvYW5nbGUvR3JhcGhpY3NDb250ZXh0R0xBTkdMRS5oIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvYW5nbGUvR3JhcGhpY3NDb250ZXh0R0xBTkdMRS5oCmluZGV4IDQz
ZDVkMjkwZGQ2ODJjYTU5NjU2MDExMGE2NmE1YTdkYThmODUyYTAuLjk3NGViYjM1MWZjNjNkMzg0
ZmQ0YTdjOTk3OWFmMGQyNjQ1ODM5YzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2FuZ2xlL0dyYXBoaWNzQ29udGV4dEdMQU5HTEUuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hbmdsZS9HcmFwaGljc0NvbnRleHRHTEFOR0xFLmgK
QEAgLTM2LDYgKzM2LDcgQEAKICNpZiBQTEFURk9STShDT0NPQSkKICNpbmNsdWRlICJHcmFwaGlj
c0NvbnRleHRHTElPU3VyZmFjZVN3YXBDaGFpbi5oIgogI2luY2x1ZGUgIklPU3VyZmFjZS5oIgor
I2luY2x1ZGUgIlByb2Nlc3NJZGVudGl0eS5oIgogI2VuZGlmCiAKIApAQCAtNDI3LDYgKzQyOCw3
IEBAIHByb3RlY3RlZDoKICAgICBzdGQ6OnVuaXF1ZV9wdHI8RXh0ZW5zaW9uc0dMQU5HTEU+IG1f
ZXh0ZW5zaW9uczsKIAogI2lmIFBMQVRGT1JNKENPQ09BKQorICAgIC8vIEZJWE1FOiBNb3ZlIHRo
ZXNlIHRvIEdyYXBoaWNzQ29udGV4dEdMQ29jb2EuCiAgICAgR3JhcGhpY3NDb250ZXh0R0xJT1N1
cmZhY2VTd2FwQ2hhaW4gbV9zd2FwQ2hhaW47CiAgICAgRUdMRGlzcGxheSBtX2Rpc3BsYXlPYmog
eyBudWxscHRyIH07CiAgICAgUGxhdGZvcm1HcmFwaGljc0NvbnRleHRHTCBtX2NvbnRleHRPYmog
eyBudWxscHRyIH07CkBAIC00MzYsNiArNDM4LDcgQEAgcHJvdGVjdGVkOgogICAgIC8vIFdoZW4g
cHJlc2VydmVEcmF3aW5nQnVmZmVyID09IHRydWUsIHRoaXMgaXMgYmxpdHRlZCB0byBkdXJpbmcg
ZGlzcGxheSBwcmVwYXJlLgogICAgIHN0ZDo6dW5pcXVlX3B0cjxJT1N1cmZhY2U+IG1fZGlzcGxh
eUJ1ZmZlckJhY2tpbmc7CiAgICAgdm9pZCogbV9kaXNwbGF5QnVmZmVyUGJ1ZmZlciB7IG51bGxw
dHIgfTsKKyAgICBQcm9jZXNzSWRlbnRpdHkgbV9yZXNvdXJjZU93bmVyOwogI2VuZGlmCiAjaWYg
VVNFKENPT1JESU5BVEVEX0dSQVBISUNTKQogICAgIEdDR0x1aW50IG1fY29tcG9zaXRvclRleHR1
cmUgeyAwIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
b2NvYS9HcmFwaGljc0NvbnRleHRHTENvY29hLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jb2NvYS9HcmFwaGljc0NvbnRleHRHTENvY29hLmgKaW5kZXggOTEzYzBmNGE1MmQw
ZDFhZTAzOWJkOGUzMjY2ODc4ZmE1MTJmYWYzZS4uMzA4OTgwMDdlZjJmZjY2OTI2OWFmNjRmNjkx
MmM5MDk2OGY3OTRkZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY29jb2EvR3JhcGhpY3NDb250ZXh0R0xDb2NvYS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2NvY29hL0dyYXBoaWNzQ29udGV4dEdMQ29jb2EuaApAQCAtNDIsOSAr
NDIsMTEgQEAgY2xhc3MgR3JhcGhpY3NDb250ZXh0R0xDVkNvY29hOwogCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKK2NsYXNzIFByb2Nlc3NJZGVudGl0eTsKKwogY2xhc3MgV0VCQ09SRV9FWFBPUlQg
R3JhcGhpY3NDb250ZXh0R0xDb2NvYSA6IHB1YmxpYyBHcmFwaGljc0NvbnRleHRHTEFOR0xFIHsK
IHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmUHRyPEdyYXBoaWNzQ29udGV4dEdMQ29jb2E+IGNyZWF0
ZShXZWJDb3JlOjpHcmFwaGljc0NvbnRleHRHTEF0dHJpYnV0ZXMmJik7CisgICAgc3RhdGljIFJl
ZlB0cjxHcmFwaGljc0NvbnRleHRHTENvY29hPiBjcmVhdGUoV2ViQ29yZTo6R3JhcGhpY3NDb250
ZXh0R0xBdHRyaWJ1dGVzJiYsIFByb2Nlc3NJZGVudGl0eSYmIHJlc291cmNlT3duZXIpOwogICAg
IH5HcmFwaGljc0NvbnRleHRHTENvY29hKCk7CiAgICAgSU9TdXJmYWNlKiBkaXNwbGF5QnVmZmVy
KCk7CiAgICAgdm9pZCBtYXJrRGlzcGxheUJ1ZmZlckluVXNlKCk7CkBAIC03Niw5ICs3OCw4IEBA
IHB1YmxpYzoKICAgICB2b2lkIHVwZGF0ZUNvbnRleHRPbkRpc3BsYXlSZWNvbmZpZ3VyYXRpb24o
KTsKICNlbmRpZgogcHJvdGVjdGVkOgotICAgIEdyYXBoaWNzQ29udGV4dEdMQ29jb2EoV2ViQ29y
ZTo6R3JhcGhpY3NDb250ZXh0R0xBdHRyaWJ1dGVzJiYpOworICAgIEdyYXBoaWNzQ29udGV4dEdM
Q29jb2EoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0R0xBdHRyaWJ1dGVzJiYsIFByb2Nlc3NJZGVu
dGl0eSYmIHJlc291cmNlT3duZXIpOwogICAgIGJvb2wgaXNWYWxpZCgpIGNvbnN0OwotCiAjaWYg
RU5BQkxFKFZJREVPKQogICAgIHN0ZDo6dW5pcXVlX3B0cjxHcmFwaGljc0NvbnRleHRHTENWQ29j
b2E+IG1fY3Y7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2NvY29hL0dyYXBoaWNzQ29udGV4dEdMQ29jb2EubW0gYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9HcmFwaGljc0NvbnRleHRHTENvY29hLm1tCmluZGV4IDRk
MDFlZjM4ZTkzYzRiNjEwYjc1Yjk1ZTBmMmRiMjU1M2UxNTVhOWQuLmIzNDVkODY0MDA3ZWMwNWY5
ZDQ4MDM3YmMzNGRkZmMyNmYzZjBlMGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2NvY29hL0dyYXBoaWNzQ29udGV4dEdMQ29jb2EubW0KKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvR3JhcGhpY3NDb250ZXh0R0xDb2NvYS5t
bQpAQCAtMzUsNiArMzUsNyBAQAogI2ltcG9ydCAiR3JhcGhpY3NDb250ZXh0R0xJT1N1cmZhY2VT
d2FwQ2hhaW4uaCIKICNpbXBvcnQgIkdyYXBoaWNzQ29udGV4dEdMT3BlbkdMTWFuYWdlci5oIgog
I2ltcG9ydCAiTG9nZ2luZy5oIgorI2ltcG9ydCAiUHJvY2Vzc0lkZW50aXR5LmgiCiAjaW1wb3J0
ICJSdW50aW1lQXBwbGljYXRpb25DaGVja3MuaCIKICNpbXBvcnQgPENvcmVHcmFwaGljcy9DR0Jp
dG1hcENvbnRleHQuaD4KICNpbXBvcnQgPE1ldGFsL01ldGFsLmg+CkBAIC0xOTIsMTkgKzE5Mywy
MiBAQCBzdGF0aWMgYm9vbCBuZWVkc0VBR0xPbk1hYygpCiB9CiAjZW5kaWYKIAotUmVmUHRyPEdy
YXBoaWNzQ29udGV4dEdMQ29jb2E+IEdyYXBoaWNzQ29udGV4dEdMQ29jb2E6OmNyZWF0ZShHcmFw
aGljc0NvbnRleHRHTEF0dHJpYnV0ZXMmJiBhdHRyaWJ1dGVzKQorUmVmUHRyPEdyYXBoaWNzQ29u
dGV4dEdMQ29jb2E+IEdyYXBoaWNzQ29udGV4dEdMQ29jb2E6OmNyZWF0ZShHcmFwaGljc0NvbnRl
eHRHTEF0dHJpYnV0ZXMmJiBhdHRyaWJ1dGVzLCBQcm9jZXNzSWRlbnRpdHkmJiByZXNvdXJjZU93
bmVyKQogewotICAgIGF1dG8gY29udGV4dCA9IGFkb3B0UmVmKCpuZXcgR3JhcGhpY3NDb250ZXh0
R0xDb2NvYShXVEZNb3ZlKGF0dHJpYnV0ZXMpKSk7CisgICAgYXV0byBjb250ZXh0ID0gYWRvcHRS
ZWYoKm5ldyBHcmFwaGljc0NvbnRleHRHTENvY29hKFdURk1vdmUoYXR0cmlidXRlcyksIFdURk1v
dmUocmVzb3VyY2VPd25lcikpKTsKICAgICBpZiAoIWNvbnRleHQtPmlzVmFsaWQoKSkKICAgICAg
ICAgcmV0dXJuIG51bGxwdHI7CiAgICAgcmV0dXJuIGNvbnRleHQ7CiB9CiAKLUdyYXBoaWNzQ29u
dGV4dEdMQ29jb2E6OkdyYXBoaWNzQ29udGV4dEdMQ29jb2EoR3JhcGhpY3NDb250ZXh0R0xBdHRy
aWJ1dGVzJiYgY3JlYXRpb25BdHRyaWJ1dGVzKQorR3JhcGhpY3NDb250ZXh0R0xDb2NvYTo6R3Jh
cGhpY3NDb250ZXh0R0xDb2NvYShHcmFwaGljc0NvbnRleHRHTEF0dHJpYnV0ZXMmJiBjcmVhdGlv
bkF0dHJpYnV0ZXMsIFByb2Nlc3NJZGVudGl0eSYmIHJlc291cmNlT3duZXIpCiAgICAgOiBHcmFw
aGljc0NvbnRleHRHTEFOR0xFKFdURk1vdmUoY3JlYXRpb25BdHRyaWJ1dGVzKSkKIHsKICAgICBp
ZiAoIWlzVmFsaWQoKSkKICAgICAgICAgcmV0dXJuOworICAgIC8vIEZJWE1FOiBNb3ZlIHRoaXMg
dG8gaW5pdGlhbGl6ZXIgbGlzdCBvbmNlIG1fcmVzb3VyY2VPd25lciBtb3ZlcyB0byBHcmFwaGlj
c0NvbnRleHRHTENvY29hLgorICAgIG1fcmVzb3VyY2VPd25lciA9IFByb2Nlc3NJZGVudGl0eSB7
IFdURk1vdmUocmVzb3VyY2VPd25lcikgfTsKKwogI2lmIFBMQVRGT1JNKE1BQykKICAgICBhdXRv
IGF0dHJpYnV0ZXMgPSBjb250ZXh0QXR0cmlidXRlcygpOwogICAgIGlmICghYXR0cmlidXRlcy51
c2VNZXRhbCAmJiBhdHRyaWJ1dGVzLmVmZmVjdGl2ZVBvd2VyUHJlZmVyZW5jZSgpID09IEdyYXBo
aWNzQ29udGV4dEdMUG93ZXJQcmVmZXJlbmNlOjpIaWdoUGVyZm9ybWFuY2UpCkBAIC01NTIsNyAr
NTU2LDggQEAgYm9vbCBHcmFwaGljc0NvbnRleHRHTEFOR0xFOjphbGxvY2F0ZUFuZEJpbmREaXNw
bGF5QnVmZmVyQmFja2luZygpCiAgICAgYXV0byBiYWNraW5nID0gSU9TdXJmYWNlOjpjcmVhdGUo
Z2V0SW50ZXJuYWxGcmFtZWJ1ZmZlclNpemUoKSwgRGVzdGluYXRpb25Db2xvclNwYWNlOjpTUkdC
KCkpOwogICAgIGlmICghYmFja2luZykKICAgICAgICAgcmV0dXJuIGZhbHNlOwotCisgICAgaWYg
KG1fcmVzb3VyY2VPd25lcikKKyAgICAgICAgYmFja2luZy0+c2V0T3duZXJzaGlwSWRlbnRpdHko
bV9yZXNvdXJjZU93bmVyKTsKICAgICBiYWNraW5nLT5taWdyYXRlQ29sb3JTcGFjZVRvUHJvcGVy
dGllcygpOwogCiAgICAgY29uc3QgYm9vbCB1c2luZ0FscGhhID0gY29udGV4dEF0dHJpYnV0ZXMo
KS5hbHBoYTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nv
Y29hL0lPU3VyZmFjZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2Ev
SU9TdXJmYWNlLmgKaW5kZXggNTY1MjQ3ODIyZGJhMjlmNzYwMGI5NDA3ZTZmNGFjYjhjMWEwNmFh
Yy4uNTY1MDkyZGUwMDY4ZTU4N2I4YjI1OTM3YzMzZTMxZDcyMmY3NGJjNSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvSU9TdXJmYWNlLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvSU9TdXJmYWNlLmgKQEAgLTQ2
LDYgKzQ2LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogY2xhc3MgR3JhcGhpY3NDb250ZXh0Owog
Y2xhc3MgSG9zdFdpbmRvdzsKIGNsYXNzIEltYWdlQnVmZmVyOworY2xhc3MgUHJvY2Vzc0lkZW50
aXR5OwogCiBlbnVtIGNsYXNzIFBpeGVsRm9ybWF0IDogdWludDhfdDsKIGVudW0gY2xhc3MgVm9s
YXRpbGl0eVN0YXRlIDogdWludDhfdDsKQEAgLTE1OSw5ICsxNjAsNyBAQCBwdWJsaWM6CiAgICAg
V0VCQ09SRV9FWFBPUlQgc3RhdGljIHZvaWQgY29udmVydFRvRm9ybWF0KHN0ZDo6dW5pcXVlX3B0
cjxXZWJDb3JlOjpJT1N1cmZhY2U+JiYgaW5TdXJmYWNlLCBGb3JtYXQsIEZ1bmN0aW9uPHZvaWQo
c3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OklPU3VyZmFjZT4pPiYmKTsKICNlbmRpZiAvLyBIQVZF
KElPU1VSRkFDRV9BQ0NFTEVSQVRPUikKIAotI2lmIEhBVkUoSU9TVVJGQUNFX1NFVF9PV05FUlNI
SVBfSURFTlRJVFkpCi0gICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRPd25lcnNoaXBJZGVudGl0
eSh0YXNrX2lkX3Rva2VuX3QgbmV3T3duZXIpOwotI2VuZGlmCisgICAgV0VCQ09SRV9FWFBPUlQg
dm9pZCBzZXRPd25lcnNoaXBJZGVudGl0eShjb25zdCBQcm9jZXNzSWRlbnRpdHkmIHJlc291cmNl
T3duZXIpOwogCiAgICAgdm9pZCBtaWdyYXRlQ29sb3JTcGFjZVRvUHJvcGVydGllcygpOwogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9JT1N1cmZh
Y2UubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9JT1N1cmZhY2Uu
bW0KaW5kZXggMDExMTY1Y2UxMWFiY2U2NzVjNGI0N2JmOTE1ZDRjODFlNmNlZTk5NS4uODFjNDg0
NjVhMDU1MDNhNDEyOTU2ZTg5YmZkMzMxOTMyZDY1MzQ2MiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvSU9TdXJmYWNlLm1tCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0lPU3VyZmFjZS5tbQpAQCAtMzQsNiArMzQs
NyBAQAogI2ltcG9ydCAiSW1hZ2VCdWZmZXIuaCIKICNpbXBvcnQgIkxvZ2dpbmcuaCIKICNpbXBv
cnQgIlBsYXRmb3JtU2NyZWVuLmgiCisjaW1wb3J0ICJQcm9jZXNzSWRlbnRpdHkuaCIKICNpbXBv
cnQgPHBhbC9zcGkvY2cvQ29yZUdyYXBoaWNzU1BJLmg+CiAjaW1wb3J0IDx3dGYvQXNzZXJ0aW9u
cy5oPgogI2ltcG9ydCA8d3RmL01hY2hTZW5kUmlnaHQuaD4KQEAgLTQ4NCwxNCArNDg1LDE3IEBA
IHZvaWQgSU9TdXJmYWNlOjpjb252ZXJ0VG9Gb3JtYXQoc3RkOjp1bmlxdWVfcHRyPElPU3VyZmFj
ZT4mJiBpblN1cmZhY2UsIEZvcm1hdCBmCiAKICNlbmRpZiAvLyBIQVZFKElPU1VSRkFDRV9BQ0NF
TEVSQVRPUikKIAotI2lmIEhBVkUoSU9TVVJGQUNFX1NFVF9PV05FUlNISVBfSURFTlRJVFkpCi12
b2lkIElPU3VyZmFjZTo6c2V0T3duZXJzaGlwSWRlbnRpdHkodGFza19pZF90b2tlbl90IG5ld093
bmVyKQordm9pZCBJT1N1cmZhY2U6OnNldE93bmVyc2hpcElkZW50aXR5KGNvbnN0IFByb2Nlc3NJ
ZGVudGl0eSYgcmVzb3VyY2VPd25lcikKIHsKLSAgICBhdXRvIHJlc3VsdCA9IElPU3VyZmFjZVNl
dE93bmVyc2hpcElkZW50aXR5KG1fc3VyZmFjZS5nZXQoKSwgbmV3T3duZXIsIGtJT1N1cmZhY2VN
ZW1vcnlMZWRnZXJUYWdHcmFwaGljcywgMCk7CisjaWYgSEFWRShJT1NVUkZBQ0VfU0VUX09XTkVS
U0hJUF9JREVOVElUWSkgJiYgSEFWRShUQVNLX0lERU5USVRZX1RPS0VOKQorICAgIHRhc2tfaWRf
dG9rZW5fdCBvd25lclRhc2tJZFRva2VuID0gcmVzb3VyY2VPd25lci50YXNrSWRUb2tlbigpOwor
ICAgIGF1dG8gcmVzdWx0ID0gSU9TdXJmYWNlU2V0T3duZXJzaGlwSWRlbnRpdHkobV9zdXJmYWNl
LmdldCgpLCBvd25lclRhc2tJZFRva2VuLCBrSU9TdXJmYWNlTWVtb3J5TGVkZ2VyVGFnR3JhcGhp
Y3MsIDApOwogICAgIGlmIChyZXN1bHQgIT0ga0lPUmV0dXJuU3VjY2VzcykKLSAgICAgICAgUkVM
RUFTRV9MT0dfRVJST1IoSU9TdXJmYWNlLCAiSU9TdXJmYWNlOjpzZXRPd25lcnNoaXBJZGVudGl0
eTogRmFpbGVkIHRvIGNsYWltIG93bmVyc2hpcCBvZiBJT1N1cmZhY2UgJXAsIG5ld093bmVyOiAl
ZCwgZXJyb3I6ICVkIiwgbV9zdXJmYWNlLmdldCgpLCAoaW50KW5ld093bmVyLCByZXN1bHQpOwot
fQorICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihJT1N1cmZhY2UsICJJT1N1cmZhY2U6OnNldE93
bmVyc2hpcElkZW50aXR5OiBGYWlsZWQgdG8gY2xhaW0gb3duZXJzaGlwIG9mIElPU3VyZmFjZSAl
cCwgdGFzayBpZCB0b2tlbjogJWQsIGVycm9yOiAlZCIsIG1fc3VyZmFjZS5nZXQoKSwgKGludClv
d25lclRhc2tJZFRva2VuLCByZXN1bHQpOworI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0ocmVzb3Vy
Y2VPd25lcik7CiAjZW5kaWYKK30KIAogdm9pZCBJT1N1cmZhY2U6Om1pZ3JhdGVDb2xvclNwYWNl
VG9Qcm9wZXJ0aWVzKCkKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2NvY29hL1dlYlByb2Nlc3NHcmFwaGljc0NvbnRleHRHTENvY29hLm1tIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvV2ViUHJvY2Vzc0dyYXBoaWNzQ29udGV4
dEdMQ29jb2EubW0KaW5kZXggMzEzODU4YjhmNTdkYWI4ZDEwYTZhYjYyODE3ZTg3NTQwZWYzODA4
My4uN2VlNGQyZThkYTM2NDVhMDEzYmMyYzRhYTA5YTVjODk1NjllNGQ1ZCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvV2ViUHJvY2Vzc0dyYXBoaWNz
Q29udGV4dEdMQ29jb2EubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y29jb2EvV2ViUHJvY2Vzc0dyYXBoaWNzQ29udGV4dEdMQ29jb2EubW0KQEAgLTMwLDYgKzMwLDcg
QEAKICNpbXBvcnQgIkdyYXBoaWNzQ29udGV4dEdMQ29jb2EuaCIgLy8gTk9MSU5UCiAjaW1wb3J0
ICJHcmFwaGljc0NvbnRleHRHTE9wZW5HTE1hbmFnZXIuaCIKICNpbXBvcnQgIlBsYXRmb3JtQ0FM
YXllci5oIgorI2ltcG9ydCAiUHJvY2Vzc0lkZW50aXR5LmgiCiAKICNpZiBQTEFURk9STShNQUMp
CiAjaW1wb3J0ICJEaXNwbGF5Q29uZmlndXJhdGlvbk1vbml0b3IuaCIKQEAgLTExMyw3ICsxMTQs
NyBAQCBwcml2YXRlOgogfTsKIAogV2ViUHJvY2Vzc0dyYXBoaWNzQ29udGV4dEdMQ29jb2E6Oldl
YlByb2Nlc3NHcmFwaGljc0NvbnRleHRHTENvY29hKEdyYXBoaWNzQ29udGV4dEdMQXR0cmlidXRl
cyYmIGF0dHJpYnV0ZXMpCi0gICAgOiBHcmFwaGljc0NvbnRleHRHTENvY29hKFdURk1vdmUoYXR0
cmlidXRlcykpCisgICAgOiBHcmFwaGljc0NvbnRleHRHTENvY29hKFdURk1vdmUoYXR0cmlidXRl
cyksIFByb2Nlc3NJZGVudGl0eSB7IH0pCiAgICAgLCBtX2xheWVyQ29udGVudHNEaXNwbGF5RGVs
ZWdhdGUoRGlzcGxheUJ1ZmZlckRpc3BsYXlEZWxlZ2F0ZTo6Y3JlYXRlKCFhdHRyaWJ1dGVzLmFs
cGhhLCBhdHRyaWJ1dGVzLmRldmljZVBpeGVsUmF0aW8pKQogewogI2lmIFBMQVRGT1JNKE1BQykK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9uVG9XZWJQ
cm9jZXNzLmNwcCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9uVG9XZWJQ
cm9jZXNzLmNwcAppbmRleCA1ZDY0ZGVjZjQxY2MyMTYyMmJlZjNmMjdhZDg4NmZmMWNlZWUxZGNj
Li4xZGEyZTY0OWEwNTVjZGVkMTQ5ZWIwYjJhY2ViN2U5NGM1MTQyMjgyIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3Bw
CkBAIC0yMDAsMTIgKzIwMCwxMCBAQCBwcml2YXRlOgogICAgIH0KICNlbmRpZgogCi0jaWYgSEFW
RShJT1NVUkZBQ0VfU0VUX09XTkVSU0hJUF9JREVOVElUWSkKLSAgICBzdGQ6Om9wdGlvbmFsPHRh
c2tfaWRfdG9rZW5fdD4gd2ViUHJvY2Vzc0lkZW50aXR5VG9rZW4oKSBjb25zdCBmaW5hbAorICAg
IGNvbnN0IFByb2Nlc3NJZGVudGl0eSYgcmVzb3VyY2VPd25lcigpIGNvbnN0IGZpbmFsCiAgICAg
ewotICAgICAgICByZXR1cm4gbV9wcm9jZXNzLndlYlByb2Nlc3NJZGVudGl0eVRva2VuKCk7Cisg
ICAgICAgIHJldHVybiBtX3Byb2Nlc3Mud2ViUHJvY2Vzc0lkZW50aXR5KCk7CiAgICAgfQotI2Vu
ZGlmCiAKICAgICBHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzJiBtX3Byb2Nlc3M7CiB9OwpAQCAt
MjIxLDkgKzIxOSw3IEBAIEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OkdQVUNvbm5lY3Rpb25U
b1dlYlByb2Nlc3MoR1BVUHJvY2VzcyYgZ3B1UHJvY2VzcywgV2ViCiAgICAgOiBtX2Nvbm5lY3Rp
b24oSVBDOjpDb25uZWN0aW9uOjpjcmVhdGVTZXJ2ZXJDb25uZWN0aW9uKGNvbm5lY3Rpb25JZGVu
dGlmaWVyLCAqdGhpcykpCiAgICAgLCBtX2dwdVByb2Nlc3MoZ3B1UHJvY2VzcykKICAgICAsIG1f
d2ViUHJvY2Vzc0lkZW50aWZpZXIod2ViUHJvY2Vzc0lkZW50aWZpZXIpCi0jaWYgSEFWRShUQVNL
X0lERU5USVRZX1RPS0VOKQotICAgICwgbV93ZWJQcm9jZXNzSWRlbnRpdHlUb2tlbihXVEZNb3Zl
KHBhcmFtZXRlcnMud2ViUHJvY2Vzc0lkZW50aXR5VG9rZW4pKQotI2VuZGlmCisgICAgLCBtX3dl
YlByb2Nlc3NJZGVudGl0eShXVEZNb3ZlKHBhcmFtZXRlcnMud2ViUHJvY2Vzc0lkZW50aXR5SGFu
ZGxlKSkKICAgICAsIG1fcmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHkobWFrZVVuaXF1ZVJl
ZjxSZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eT4oKnRoaXMpKQogICAgICwgbV9zZXNzaW9u
SUQoc2Vzc2lvbklEKQogI2lmIFBMQVRGT1JNKENPQ09BKSAmJiBVU0UoTElCV0VCUlRDKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nl
c3MuaCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNz
LmgKaW5kZXggZmFiNjcwZmI5MDljYzdmZTlhMTBmOTQ3ZWM2YTBmMDZhYTVlZTRmZS4uMDNiOTRi
MTU2ZjA5ZDc1MTViM2Q1NmNhZjVhMzQwZDhiYzQxY2U5NSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9HUFVQcm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L0dQVVByb2Nlc3MvR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oCkBAIC00MSw2ICs0
MSw3IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9Ob3dQbGF5aW5nTWFuYWdlci5oPgogI2luY2x1ZGUg
PFdlYkNvcmUvUGFnZUlkZW50aWZpZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Byb2Nlc3NJZGVu
dGlmaWVyLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9Qcm9jZXNzSWRlbnRpdHkuaD4KICNpbmNsdWRl
IDxwYWwvU2Vzc2lvbklELmg+CiAjaW5jbHVkZSA8d3RmL0xvZ2dlci5oPgogI2luY2x1ZGUgPHd0
Zi9NYWNoU2VuZFJpZ2h0Lmg+CkBAIC0xNDksMTAgKzE1MCw3IEBAIHB1YmxpYzoKICAgICB2b2lk
IGRpc3BhdGNoRGlzcGxheVdhc1JlY29uZmlndXJlZEZvclRlc3RpbmcoKSB7IGRpc3BhdGNoRGlz
cGxheVdhc1JlY29uZmlndXJlZCgpOyB9OwogI2VuZGlmCiAKLSNpZiBIQVZFKFRBU0tfSURFTlRJ
VFlfVE9LRU4pCi0gICAgdGFza19pZF90b2tlbl90IHdlYlByb2Nlc3NJZGVudGl0eVRva2VuKCkg
Y29uc3QgeyByZXR1cm4gc3RhdGljX2Nhc3Q8dGFza19pZF90b2tlbl90PihtX3dlYlByb2Nlc3NJ
ZGVudGl0eVRva2VuLnNlbmRSaWdodCgpKTsgfQotI2VuZGlmCi0KKyAgICBjb25zdCBXZWJDb3Jl
OjpQcm9jZXNzSWRlbnRpdHkmIHdlYlByb2Nlc3NJZGVudGl0eSgpIGNvbnN0IHsgcmV0dXJuIG1f
d2ViUHJvY2Vzc0lkZW50aXR5OyB9CiAjaWYgRU5BQkxFKEVOQ1JZUFRFRF9NRURJQSkKICAgICBS
ZW1vdGVDRE1GYWN0b3J5UHJveHkmIGNkbUZhY3RvcnlQcm94eSgpOwogI2VuZGlmCkBAIC0yNzcs
OSArMjc1LDcgQEAgcHJpdmF0ZToKICAgICBJUEM6Ok1lc3NhZ2VSZWNlaXZlck1hcCBtX21lc3Nh
Z2VSZWNlaXZlck1hcDsKICAgICBSZWY8R1BVUHJvY2Vzcz4gbV9ncHVQcm9jZXNzOwogICAgIGNv
bnN0IFdlYkNvcmU6OlByb2Nlc3NJZGVudGlmaWVyIG1fd2ViUHJvY2Vzc0lkZW50aWZpZXI7Ci0j
aWYgSEFWRShUQVNLX0lERU5USVRZX1RPS0VOKQotICAgIE1hY2hTZW5kUmlnaHQgbV93ZWJQcm9j
ZXNzSWRlbnRpdHlUb2tlbjsKLSNlbmRpZgorICAgIGNvbnN0IFdlYkNvcmU6OlByb2Nlc3NJZGVu
dGl0eSBtX3dlYlByb2Nlc3NJZGVudGl0eTsKICNpZiBFTkFCTEUoV0VCX0FVRElPKQogICAgIHN0
ZDo6dW5pcXVlX3B0cjxSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uTWFuYWdlcj4gbV9yZW1vdGVBdWRp
b0Rlc3RpbmF0aW9uTWFuYWdlcjsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9H
UFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZUdyYXBoaWNzQ29udGV4dEdMQ29jb2EuY3BwIGIvU291
cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZUdyYXBoaWNzQ29udGV4dEdMQ29j
b2EuY3BwCmluZGV4IGI4YWE5ZmQ1NTFhODhhNmMzYzBhNjJhNzI5NDBmYTNkMmM0NDE2NzMuLjZj
OTA2MWI1ZTJlZmU1YjJmY2RjMGY4NTAxOGZjYzFiOTY0N2VlMDYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVHcmFwaGljc0NvbnRleHRHTENvY29h
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlR3JhcGhp
Y3NDb250ZXh0R0xDb2NvYS5jcHAKQEAgLTI5LDYgKzI5LDcgQEAKICNpZiBFTkFCTEUoR1BVX1BS
T0NFU1MpICYmIEVOQUJMRShXRUJHTCkgJiYgUExBVEZPUk0oQ09DT0EpCiAKICNpbmNsdWRlICJH
UFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9Qcm9jZXNzSWRl
bnRpdHkuaD4KICNpbmNsdWRlIDx3dGYvTWFjaFNlbmRSaWdodC5oPgogCiBuYW1lc3BhY2UgV2Vi
S2l0IHsKQEAgLTQ1LDkgKzQ2LDcgQEAgcHVibGljOgogICAgIHZvaWQgcGxhdGZvcm1Xb3JrUXVl
dWVJbml0aWFsaXplKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dEdMQXR0cmlidXRlcyYmKSBmaW5h
bDsKICAgICB2b2lkIHByZXBhcmVGb3JEaXNwbGF5KENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV1RG
OjpNYWNoU2VuZFJpZ2h0JiYpPiYmKSBmaW5hbDsKIHByaXZhdGU6Ci0jaWYgSEFWRShJT1NVUkZB
Q0VfU0VUX09XTkVSU0hJUF9JREVOVElUWSkKLSAgICB0YXNrX2lkX3Rva2VuX3QgbV93ZWJQcm9j
ZXNzSWRlbnRpdHlUb2tlbjsKLSNlbmRpZgorICAgIGNvbnN0IFByb2Nlc3NJZGVudGl0eSBtX3Jl
c291cmNlT3duZXI7CiB9OwogCiB9CkBAIC02MSw5ICs2MCw3IEBAIFJlZjxSZW1vdGVHcmFwaGlj
c0NvbnRleHRHTD4gUmVtb3RlR3JhcGhpY3NDb250ZXh0R0w6OmNyZWF0ZShHUFVDb25uZWN0aW9u
VG9XZWJQCiAKIFJlbW90ZUdyYXBoaWNzQ29udGV4dEdMQ29jb2E6OlJlbW90ZUdyYXBoaWNzQ29u
dGV4dEdMQ29jb2EoR1BVQ29ubmVjdGlvblRvV2ViUHJvY2VzcyYgZ3B1Q29ubmVjdGlvblRvV2Vi
UHJvY2VzcywgR3JhcGhpY3NDb250ZXh0R0xJZGVudGlmaWVyIGdyYXBoaWNzQ29udGV4dEdMSWRl
bnRpZmllciwgUmVtb3RlUmVuZGVyaW5nQmFja2VuZCYgcmVuZGVyaW5nQmFja2VuZCwgSVBDOjpT
dHJlYW1Db25uZWN0aW9uQnVmZmVyJiYgc3RyZWFtKQogICAgIDogUmVtb3RlR3JhcGhpY3NDb250
ZXh0R0woZ3B1Q29ubmVjdGlvblRvV2ViUHJvY2VzcywgZ3JhcGhpY3NDb250ZXh0R0xJZGVudGlm
aWVyLCByZW5kZXJpbmdCYWNrZW5kLCBXVEZNb3ZlKHN0cmVhbSkpCi0jaWYgSEFWRShJT1NVUkZB
Q0VfU0VUX09XTkVSU0hJUF9JREVOVElUWSkKLSAgICAsIG1fd2ViUHJvY2Vzc0lkZW50aXR5VG9r
ZW4oZ3B1Q29ubmVjdGlvblRvV2ViUHJvY2Vzcy53ZWJQcm9jZXNzSWRlbnRpdHlUb2tlbigpKQot
I2VuZGlmCisgICAgLCBtX3Jlc291cmNlT3duZXIoZ3B1Q29ubmVjdGlvblRvV2ViUHJvY2Vzcy53
ZWJQcm9jZXNzSWRlbnRpdHkoKSkKIHsKIAogfQpAQCAtNzEsNyArNjgsNyBAQCBSZW1vdGVHcmFw
aGljc0NvbnRleHRHTENvY29hOjpSZW1vdGVHcmFwaGljc0NvbnRleHRHTENvY29hKEdQVUNvbm5l
Y3Rpb25Ub1dlYlBybwogdm9pZCBSZW1vdGVHcmFwaGljc0NvbnRleHRHTENvY29hOjpwbGF0Zm9y
bVdvcmtRdWV1ZUluaXRpYWxpemUoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0R0xBdHRyaWJ1dGVz
JiYgYXR0cmlidXRlcykKIHsKICAgICBhc3NlcnRJc0N1cnJlbnQobV9zdHJlYW1UaHJlYWQpOwot
ICAgIG1fY29udGV4dCA9IEdyYXBoaWNzQ29udGV4dEdMQ29jb2E6OmNyZWF0ZShXVEZNb3ZlKGF0
dHJpYnV0ZXMpKTsKKyAgICBtX2NvbnRleHQgPSBHcmFwaGljc0NvbnRleHRHTENvY29hOjpjcmVh
dGUoV1RGTW92ZShhdHRyaWJ1dGVzKSwgUHJvY2Vzc0lkZW50aXR5IHsgbV9yZXNvdXJjZU93bmVy
IH0pOwogfQogCiB2b2lkIFJlbW90ZUdyYXBoaWNzQ29udGV4dEdMQ29jb2E6OnByZXBhcmVGb3JE
aXNwbGF5KENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV1RGOjpNYWNoU2VuZFJpZ2h0JiYpPiYmIGNv
bXBsZXRpb25IYW5kbGVyKQpAQCAtODIsMTAgKzc5LDYgQEAgdm9pZCBSZW1vdGVHcmFwaGljc0Nv
bnRleHRHTENvY29hOjpwcmVwYXJlRm9yRGlzcGxheShDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdU
RjoKICAgICBJT1N1cmZhY2UqIGRpc3BsYXlCdWZmZXIgPSBtX2NvbnRleHQtPmRpc3BsYXlCdWZm
ZXIoKTsKICAgICBpZiAoZGlzcGxheUJ1ZmZlcikgewogICAgICAgICBtX2NvbnRleHQtPm1hcmtE
aXNwbGF5QnVmZmVySW5Vc2UoKTsKLSNpZiBIQVZFKElPU1VSRkFDRV9TRVRfT1dORVJTSElQX0lE
RU5USVRZKQotICAgICAgICAvLyBNYXJrIHRoZSBJT1N1cmZhY2UgYXMgYmVpbmcgb3duZWQgYnkg
dGhlIFdlYlByb2Nlc3MgZXZlbiB0aG91Z2ggaXQgd2FzIGNvbnN0cnVjdGVkIGJ5IHRoZSBHUFVQ
cm9jZXNzIHNvIHRoYXQgSmV0c2FtIGtub3dzIHdoaWNoIHByb2Nlc3MgdG8ga2lsbC4KLSAgICAg
ICAgZGlzcGxheUJ1ZmZlci0+c2V0T3duZXJzaGlwSWRlbnRpdHkobV93ZWJQcm9jZXNzSWRlbnRp
dHlUb2tlbik7Ci0jZW5kaWYKICAgICAgICAgc2VuZFJpZ2h0ID0gZGlzcGxheUJ1ZmZlci0+Y3Jl
YXRlU2VuZFJpZ2h0KCk7CiAgICAgfQogICAgIGNvbXBsZXRpb25IYW5kbGVyKFdURk1vdmUoc2Vu
ZFJpZ2h0KSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3Mv
UmVtb3RlSW1hZ2VCdWZmZXIuaCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9S
ZW1vdGVJbWFnZUJ1ZmZlci5oCmluZGV4IGEzZDQ5NGZlOGJmNmExOTY0N2VmMTkwYzlkYjQwNDJh
ZWNlNjcyMjAuLjM1YjQ1MjcwYjQ1ODQyNDgwOTgxMDQyZGM3NTUzNGZiYWJhZWJmMmQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVJbWFnZUJ1ZmZl
ci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVJbWFnZUJ1
ZmZlci5oCkBAIC02OSwxMyArNjksMTEgQEAgcHVibGljOgogICAgICAgICAgICAgY29udGV4dCgp
LnJlc3RvcmUoKTsKICAgICB9CiAKLSNpZiBIQVZFKElPU1VSRkFDRV9TRVRfT1dORVJTSElQX0lE
RU5USVRZKQotICAgIHZvaWQgc2V0UHJvY2Vzc093bmVyc2hpcCh0YXNrX2lkX3Rva2VuX3QgbmV3
T3duZXIpCisgICAgdm9pZCBzZXRPd25lcnNoaXBJZGVudGl0eShjb25zdCBXZWJDb3JlOjpQcm9j
ZXNzSWRlbnRpdHkmIHJlc291cmNlT3duZXIpCiAgICAgewogICAgICAgICBpZiAobV9iYWNrZW5k
KQotICAgICAgICAgICAgbV9iYWNrZW5kLT5zZXRQcm9jZXNzT3duZXJzaGlwKG5ld093bmVyKTsK
KyAgICAgICAgICAgIG1fYmFja2VuZC0+c2V0T3duZXJzaGlwSWRlbnRpdHkocmVzb3VyY2VPd25l
cik7CiAgICAgfQotI2VuZGlmCiAKIHByaXZhdGU6CiAgICAgZnJpZW5kIGNsYXNzIFJlbW90ZVJl
bmRlcmluZ0JhY2tlbmQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3Jh
cGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5jcHAgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nl
c3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5jcHAKaW5kZXggYjBkZjUzNDM0NDk3
ODJmYTRjZTMxYmNmMzMyZDhmYzViY2M4YjEwMi4uN2NhNGRlNzI4MTljMzEzN2I4Y2FiZjAzOWE4
OWVmYTJiYTBmNzViNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBo
aWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJv
Y2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmNwcApAQCAtODUsNiArODUsNyBA
QCBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kOjpSZW1vdGVSZW5kZXJpbmdCYWNrZW5kKEdQVUNvbm5l
Y3Rpb25Ub1dlYlByb2Nlc3MmIGdwdUNvbgogICAgICwgbV9zdHJlYW1Db25uZWN0aW9uKElQQzo6
U3RyZWFtU2VydmVyQ29ubmVjdGlvbjo6Y3JlYXRlKGdwdUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3Mu
Y29ubmVjdGlvbigpLCBXVEZNb3ZlKHN0cmVhbUJ1ZmZlciksIG1fd29ya1F1ZXVlLmdldCgpKSkK
ICAgICAsIG1fcmVtb3RlUmVzb3VyY2VDYWNoZShncHVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLndl
YlByb2Nlc3NJZGVudGlmaWVyKCkpCiAgICAgLCBtX2dwdUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3Mo
Z3B1Q29ubmVjdGlvblRvV2ViUHJvY2VzcykKKyAgICAsIG1fcmVzb3VyY2VPd25lcihncHVDb25u
ZWN0aW9uVG9XZWJQcm9jZXNzLndlYlByb2Nlc3NJZGVudGl0eSgpKQogICAgICwgbV9yZW5kZXJp
bmdCYWNrZW5kSWRlbnRpZmllcihjcmVhdGlvblBhcmFtZXRlcnMuaWRlbnRpZmllcikKIHsKICAg
ICBBU1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOwpAQCAtMTc0LDEwICsxNzUsOSBAQCB2b2lkIFJl
bW90ZVJlbmRlcmluZ0JhY2tlbmQ6OmNyZWF0ZUltYWdlQnVmZmVyV2l0aFF1YWxpZmllZElkZW50
aWZpZXIoY29uc3QgRmxvYQogCiAgICAgaWYgKHJlbmRlcmluZ01vZGUgPT0gUmVuZGVyaW5nTW9k
ZTo6QWNjZWxlcmF0ZWQpIHsKICAgICAgICAgaWYgKGF1dG8gYWNjZWxlcmF0ZWRJbWFnZUJ1ZmZl
ciA9IEFjY2VsZXJhdGVkUmVtb3RlSW1hZ2VCdWZmZXI6OmNyZWF0ZShsb2dpY2FsU2l6ZSwgcmVz
b2x1dGlvblNjYWxlLCBjb2xvclNwYWNlLCBwaXhlbEZvcm1hdCwgKnRoaXMsIGltYWdlQnVmZmVy
UmVzb3VyY2VJZGVudGlmaWVyKSkgewotI2lmIEhBVkUoSU9TVVJGQUNFX1NFVF9PV05FUlNISVBf
SURFTlRJVFkpCiAgICAgICAgICAgICAvLyBNYXJrIHRoZSBJT1N1cmZhY2UgYXMgYmVpbmcgb3du
ZWQgYnkgdGhlIFdlYlByb2Nlc3MgZXZlbiB0aG91Z2ggaXQgd2FzIGNvbnN0cnVjdGVkIGJ5IHRo
ZSBHUFVQcm9jZXNzIHNvIHRoYXQgSmV0c2FtIGtub3dzIHdoaWNoIHByb2Nlc3MgdG8ga2lsbC4K
LSAgICAgICAgICAgIGFjY2VsZXJhdGVkSW1hZ2VCdWZmZXItPnNldFByb2Nlc3NPd25lcnNoaXAo
bV9ncHVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLT53ZWJQcm9jZXNzSWRlbnRpdHlUb2tlbigpKTsK
LSNlbmRpZgorICAgICAgICAgICAgaWYgKG1fcmVzb3VyY2VPd25lcikKKyAgICAgICAgICAgICAg
ICBhY2NlbGVyYXRlZEltYWdlQnVmZmVyLT5zZXRPd25lcnNoaXBJZGVudGl0eShtX3Jlc291cmNl
T3duZXIpOwogICAgICAgICAgICAgaW1hZ2VCdWZmZXIgPSBXVEZNb3ZlKGFjY2VsZXJhdGVkSW1h
Z2VCdWZmZXIpOwogICAgICAgICB9CiAgICAgfQpAQCAtMjY5LDYgKzI2OSw3IEBAIHZvaWQgUmVt
b3RlUmVuZGVyaW5nQmFja2VuZDo6Z2V0RGF0YVVSTEZvckltYWdlQnVmZmVyV2l0aFF1YWxpZmll
ZElkZW50aWZpZXIoY29uCiAgICAgU3RyaW5nIHVybFN0cmluZzsKICAgICBpZiAoYXV0byBpbWFn
ZUJ1ZmZlciA9IG1fcmVtb3RlUmVzb3VyY2VDYWNoZS5jYWNoZWRJbWFnZUJ1ZmZlcihyZW5kZXJp
bmdSZXNvdXJjZUlkZW50aWZpZXIpKQogICAgICAgICB1cmxTdHJpbmcgPSBpbWFnZUJ1ZmZlci0+
dG9EYXRhVVJMKG1pbWVUeXBlLCBxdWFsaXR5LCBwcmVzZXJ2ZVJlc29sdXRpb24pOworICAgIFdU
RkxvZ0Fsd2F5cygiREFUQVVSTDolcyIsIHVybFN0cmluZy51dGY4KCkuZGF0YSgpKTsKICAgICBj
b21wbGV0aW9uSGFuZGxlcihXVEZNb3ZlKHVybFN0cmluZykpOwogfQogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5o
IGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tl
bmQuaAppbmRleCBlMzU3MTVkZDE3ZmVlNjQzNDViMjI2MmQ2OGNlYmVhNGQ3NGFiOTk2Li45YTI2
YzQyNGI5MTIxMTAxMThiNDM2MTg0ZGUzMGI4ZDI4ZGQxNTIzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5k
LmgKQEAgLTQ2LDYgKzQ2LDcgQEAKICNpbmNsdWRlIDxXZWJDb3JlL0Rpc3BsYXlMaXN0SXRlbXMu
aD4KICNpbmNsdWRlIDxXZWJDb3JlL0Rpc3BsYXlMaXN0UmVwbGF5ZXIuaD4KICNpbmNsdWRlIDxX
ZWJDb3JlL1Byb2Nlc3NJZGVudGlmaWVyLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9Qcm9jZXNzSWRl
bnRpdHkuaD4KICNpbmNsdWRlIDx3dGYvV2Vha1B0ci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7
CkBAIC0xMzMsNiArMTM0LDcgQEAgcHJpdmF0ZToKICAgICBSZWY8SVBDOjpTdHJlYW1TZXJ2ZXJD
b25uZWN0aW9uPiBtX3N0cmVhbUNvbm5lY3Rpb247CiAgICAgUmVtb3RlUmVzb3VyY2VDYWNoZSBt
X3JlbW90ZVJlc291cmNlQ2FjaGU7CiAgICAgUmVmPEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M+
IG1fZ3B1Q29ubmVjdGlvblRvV2ViUHJvY2VzczsKKyAgICBXZWJDb3JlOjpQcm9jZXNzSWRlbnRp
dHkgbV9yZXNvdXJjZU93bmVyOwogICAgIFJlbmRlcmluZ0JhY2tlbmRJZGVudGlmaWVyIG1fcmVu
ZGVyaW5nQmFja2VuZElkZW50aWZpZXI7CiAgICAgSVBDOjpTZW1hcGhvcmUgbV9nZXRQaXhlbEJ1
ZmZlclNlbWFwaG9yZTsKICAgICBSZWZQdHI8U2hhcmVkTWVtb3J5PiBtX2dldFBpeGVsQnVmZmVy
U2hhcmVkTWVtb3J5OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL3dlYnJ0
Yy9MaWJXZWJSVENDb2RlY3NQcm94eS5tbSBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy93ZWJy
dGMvTGliV2ViUlRDQ29kZWNzUHJveHkubW0KaW5kZXggMTMzZTI2ZTQ3NGUxZDMxOTE2M2U1NTcx
OTkyZDBjMGM3MTlkZGUxNC4uN2Q1NzkyMjEwMDMxOWMwMDEzMTM3ZDhhMmRlMzk1NDc0Yzg1Mzhl
MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL3dlYnJ0Yy9MaWJXZWJSVEND
b2RlY3NQcm94eS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mvd2VicnRjL0xpYldl
YlJUQ0NvZGVjc1Byb3h5Lm1tCkBAIC03NywxNCArNzcsMTEgQEAgdm9pZCBMaWJXZWJSVENDb2Rl
Y3NQcm94eTo6Y2xvc2UoKQogc3RhdGljIEZ1bmN0aW9uPHZvaWQoQ1ZQaXhlbEJ1ZmZlclJlZiBw
aXhlbEJ1ZmZlciwgdWludDMyX3QgdGltZVN0YW1wTnMsIHVpbnQzMl90IHRpbWVTdGFtcCk+IGNy
ZWF0ZURlY29kZXJDYWxsYmFjayhSVENEZWNvZGVySWRlbnRpZmllciBpZGVudGlmaWVyLCBHUFVD
b25uZWN0aW9uVG9XZWJQcm9jZXNzJiBncHVDb25uZWN0aW9uVG9XZWJQcm9jZXNzKQogewogICAg
IHJldHVybiBbY29ubmVjdGlvbiA9IFJlZiB7IGdwdUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY29u
bmVjdGlvbigpIH0sCi0jaWYgSEFWRShJT1NVUkZBQ0VfU0VUX09XTkVSU0hJUF9JREVOVElUWSkK
LSAgICAgICAgdG9rZW4gPSBncHVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLndlYlByb2Nlc3NJZGVu
dGl0eVRva2VuKCksCi0jZW5kaWYKKyAgICAgICAgcmVzb3VyY2VPd25lciA9IGdwdUNvbm5lY3Rp
b25Ub1dlYlByb2Nlc3Mud2ViUHJvY2Vzc0lkZW50aXR5KCksCiAgICAgICAgIGlkZW50aWZpZXJd
KENWUGl4ZWxCdWZmZXJSZWYgcGl4ZWxCdWZmZXIsIHVpbnQzMl90IHRpbWVTdGFtcE5zLCB1aW50
MzJfdCB0aW1lU3RhbXApIHsKICAgICAgICAgaWYgKGF1dG8gc2FtcGxlID0gV2ViQ29yZTo6UmVt
b3RlVmlkZW9TYW1wbGU6OmNyZWF0ZShwaXhlbEJ1ZmZlciwgTWVkaWFUaW1lKHRpbWVTdGFtcE5z
LCAxKSkpIHsKLSNpZiBIQVZFKElPU1VSRkFDRV9TRVRfT1dORVJTSElQX0lERU5USVRZKQotICAg
ICAgICAgICAgc2FtcGxlLT5zZXRPd25lcnNoaXBJZGVudGl0eSh0b2tlbik7Ci0jZW5kaWYKKyAg
ICAgICAgICAgIGlmIChyZXNvdXJjZU93bmVyKQorICAgICAgICAgICAgICAgIHNhbXBsZS0+c2V0
T3duZXJzaGlwSWRlbnRpdHkocmVzb3VyY2VPd25lcik7CiAgICAgICAgICAgICBjb25uZWN0aW9u
LT5zZW5kKE1lc3NhZ2VzOjpMaWJXZWJSVENDb2RlY3M6OkNvbXBsZXRlZERlY29kaW5nIHsgaWRl
bnRpZmllciwgdGltZVN0YW1wLCAqc2FtcGxlIH0sIDApOwogICAgICAgICB9CiAgICAgfTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0dQVVByb2Nlc3NDb25uZWN0aW9uUGFyYW1l
dGVycy5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvR1BVUHJvY2Vzc0Nvbm5lY3Rpb25QYXJhbWV0
ZXJzLmgKaW5kZXggMDk2ZmQwZTNiYTZjN2VjMTE3NzhmOTk0ZmZkNWU4Njc3ZTIwZmM1Ni4uN2Qz
ZWZhY2Q2NTc0Mzk1NWExMTYwNjNhODdmMGZkNzk3MDZkYzZmNCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9TaGFyZWQvR1BVUHJvY2Vzc0Nvbm5lY3Rpb25QYXJhbWV0ZXJzLmgKKysrIGIvU291
cmNlL1dlYktpdC9TaGFyZWQvR1BVUHJvY2Vzc0Nvbm5lY3Rpb25QYXJhbWV0ZXJzLmgKQEAgLTI4
LDE0ICsyOCwxMyBAQAogI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKIAogI2luY2x1ZGUgIldlYkNv
cmVBcmd1bWVudENvZGVycy5oIgorI2luY2x1ZGUgPFdlYkNvcmUvUHJvY2Vzc0lkZW50aXR5Lmg+
CiAjaW5jbHVkZSA8d3RmL01hY2hTZW5kUmlnaHQuaD4KIAogbmFtZXNwYWNlIFdlYktpdCB7CiAK
IHN0cnVjdCBHUFVQcm9jZXNzQ29ubmVjdGlvblBhcmFtZXRlcnMgewotI2lmIEhBVkUoVEFTS19J
REVOVElUWV9UT0tFTikKLSAgICBNYWNoU2VuZFJpZ2h0IHdlYlByb2Nlc3NJZGVudGl0eVRva2Vu
OwotI2VuZGlmCisgICAgV2ViQ29yZTo6UHJvY2Vzc0lkZW50aXR5OjpIYW5kbGUgd2ViUHJvY2Vz
c0lkZW50aXR5SGFuZGxlOwogICAgIFZlY3RvcjxTdHJpbmc+IG92ZXJyaWRlTGFuZ3VhZ2VzOwog
I2lmIEVOQUJMRShJUENfVEVTVElOR19BUEkpCiAgICAgYm9vbCBpZ25vcmVJbnZhbGlkTWVzc2Fn
ZUZvclRlc3RpbmcgeyBmYWxzZSB9OwpAQCAtNDYsOSArNDUsNyBAQCBzdHJ1Y3QgR1BVUHJvY2Vz
c0Nvbm5lY3Rpb25QYXJhbWV0ZXJzIHsKIAogICAgIHZvaWQgZW5jb2RlKElQQzo6RW5jb2RlciYg
ZW5jb2RlcikgY29uc3QKICAgICB7Ci0jaWYgSEFWRShUQVNLX0lERU5USVRZX1RPS0VOKQotICAg
ICAgICBlbmNvZGVyIDw8IHdlYlByb2Nlc3NJZGVudGl0eVRva2VuOwotI2VuZGlmCisgICAgICAg
IGVuY29kZXIgPDwgd2ViUHJvY2Vzc0lkZW50aXR5SGFuZGxlOwogICAgICAgICBlbmNvZGVyIDw8
IG92ZXJyaWRlTGFuZ3VhZ2VzOwogI2lmIEVOQUJMRShJUENfVEVTVElOR19BUEkpCiAgICAgICAg
IGVuY29kZXIgPDwgaWdub3JlSW52YWxpZE1lc3NhZ2VGb3JUZXN0aW5nOwpAQCAtNjAsMTIgKzU3
LDEwIEBAIHN0cnVjdCBHUFVQcm9jZXNzQ29ubmVjdGlvblBhcmFtZXRlcnMgewogCiAgICAgc3Rh
dGljIHN0ZDo6b3B0aW9uYWw8R1BVUHJvY2Vzc0Nvbm5lY3Rpb25QYXJhbWV0ZXJzPiBkZWNvZGUo
SVBDOjpEZWNvZGVyJiBkZWNvZGVyKQogICAgIHsKLSNpZiBIQVZFKFRBU0tfSURFTlRJVFlfVE9L
RU4pCi0gICAgICAgIHN0ZDo6b3B0aW9uYWw8TWFjaFNlbmRSaWdodD4gd2ViUHJvY2Vzc0lkZW50
aXR5VG9rZW47Ci0gICAgICAgIGRlY29kZXIgPj4gd2ViUHJvY2Vzc0lkZW50aXR5VG9rZW47Ci0g
ICAgICAgIGlmICghd2ViUHJvY2Vzc0lkZW50aXR5VG9rZW4pCisgICAgICAgIHN0ZDo6b3B0aW9u
YWw8V2ViQ29yZTo6UHJvY2Vzc0lkZW50aXR5OjpIYW5kbGU+IHdlYlByb2Nlc3NJZGVudGl0eUhh
bmRsZTsKKyAgICAgICAgZGVjb2RlciA+PiB3ZWJQcm9jZXNzSWRlbnRpdHlIYW5kbGU7CisgICAg
ICAgIGlmICghd2ViUHJvY2Vzc0lkZW50aXR5SGFuZGxlKQogICAgICAgICAgICAgcmV0dXJuIHN0
ZDo6bnVsbG9wdDsKLSNlbmRpZgogCiAgICAgICAgIHN0ZDo6b3B0aW9uYWw8VmVjdG9yPFN0cmlu
Zz4+IG92ZXJyaWRlTGFuZ3VhZ2VzOwogICAgICAgICBkZWNvZGVyID4+IG92ZXJyaWRlTGFuZ3Vh
Z2VzOwpAQCAtODYsOSArODEsNyBAQCBzdHJ1Y3QgR1BVUHJvY2Vzc0Nvbm5lY3Rpb25QYXJhbWV0
ZXJzIHsKICNlbmRpZgogCiAgICAgICAgIHJldHVybiBHUFVQcm9jZXNzQ29ubmVjdGlvblBhcmFt
ZXRlcnMgewotI2lmIEhBVkUoVEFTS19JREVOVElUWV9UT0tFTikKLSAgICAgICAgICAgIFdURk1v
dmUoKndlYlByb2Nlc3NJZGVudGl0eVRva2VuKSwKLSNlbmRpZgorICAgICAgICAgICAgV1RGTW92
ZSgqd2ViUHJvY2Vzc0lkZW50aXR5SGFuZGxlKSwKICAgICAgICAgICAgIFdURk1vdmUoKm92ZXJy
aWRlTGFuZ3VhZ2VzKSwKICNpZiBFTkFCTEUoSVBDX1RFU1RJTkdfQVBJKQogICAgICAgICAgICAg
Kmlnbm9yZUludmFsaWRNZXNzYWdlRm9yVGVzdGluZywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkuY3BwIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5j
cHAKaW5kZXggYTdjMGY3ODg1ZGQwNGU1Y2FkMjgwNzg3OGI3NTRmYmIzYzk0M2ExNi4uYTA1Y2E1
M2ZhNTFhN2EwNGM1OGM3NzE3YWExN2NmNDUxNDY5NTc5ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQ
cm94eS5jcHAKQEAgLTU3LDkgKzU3LDEwIEBAIGNsYXNzIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2Vy
UHJveHk6OlNvdXJjZVByb3h5CiAgICAgLCBwcml2YXRlIFJlYWx0aW1lTWVkaWFTb3VyY2U6OlZp
ZGVvU2FtcGxlT2JzZXJ2ZXIgewogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGlj
OgotICAgIFNvdXJjZVByb3h5KFJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIGlkLCBSZWY8
SVBDOjpDb25uZWN0aW9uPiYmIGNvbm5lY3Rpb24sIFJlZjxSZWFsdGltZU1lZGlhU291cmNlPiYm
IHNvdXJjZSkKKyAgICBTb3VyY2VQcm94eShSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciBp
ZCwgUmVmPElQQzo6Q29ubmVjdGlvbj4mJiBjb25uZWN0aW9uLCBQcm9jZXNzSWRlbnRpdHkmJiBy
ZXNvdXJjZU93bmVyLCBSZWY8UmVhbHRpbWVNZWRpYVNvdXJjZT4mJiBzb3VyY2UpCiAgICAgICAg
IDogbV9pZChpZCkKICAgICAgICAgLCBtX2Nvbm5lY3Rpb24oV1RGTW92ZShjb25uZWN0aW9uKSkK
KyAgICAgICAgLCBtX3Jlc291cmNlT3duZXIoV1RGTW92ZShyZXNvdXJjZU93bmVyKSkKICAgICAg
ICAgLCBtX3NvdXJjZShXVEZNb3ZlKHNvdXJjZSkpCiAgICAgewogICAgICAgICBtX3NvdXJjZS0+
YWRkT2JzZXJ2ZXIoKnRoaXMpOwpAQCAtMTI1LDkgKzEyNiw2IEBAIHB1YmxpYzoKICAgICB9CiAK
ICAgICB2b2lkIHNldFNob3VsZEFwcGx5Um90YXRpb24oYm9vbCBzaG91bGRBcHBseVJvdGF0aW9u
KSB7IG1fc2hvdWxkQXBwbHlSb3RhdGlvbiA9IHRydWU7IH0KLSNpZiBIQVZFKElPU1VSRkFDRV9T
RVRfT1dORVJTSElQX0lERU5USVRZKQotICAgIHZvaWQgc2V0V2ViUHJvY2Vzc0lkZW50aXR5VG9r
ZW4oc3RkOjpvcHRpb25hbDx0YXNrX2lkX3Rva2VuX3Q+IHRva2VuKSB7IG1fd2ViUHJvY2Vzc0lk
ZW50aXR5VG9rZW4gPSB0b2tlbjt9Ci0jZW5kaWYKIAogcHJpdmF0ZToKICAgICB2b2lkIHNvdXJj
ZVN0b3BwZWQoKSBmaW5hbCB7CkBAIC0xODgsMTAgKzE4Niw4IEBAIHByaXZhdGU6CiAgICAgICAg
IH0gZWxzZQogICAgICAgICAgICAgcmVtb3RlU2FtcGxlID0gUmVtb3RlVmlkZW9TYW1wbGU6OmNy
ZWF0ZShzYW1wbGUpOwogICAgICAgICBpZiAocmVtb3RlU2FtcGxlKSB7Ci0jaWYgSEFWRShJT1NV
UkZBQ0VfU0VUX09XTkVSU0hJUF9JREVOVElUWSkKLSAgICAgICAgICAgIGlmIChtX3dlYlByb2Nl
c3NJZGVudGl0eVRva2VuKQotICAgICAgICAgICAgICAgIHJlbW90ZVNhbXBsZS0+c2V0T3duZXJz
aGlwSWRlbnRpdHkoKm1fd2ViUHJvY2Vzc0lkZW50aXR5VG9rZW4pOwotI2VuZGlmCisgICAgICAg
ICAgICBpZiAobV9yZXNvdXJjZU93bmVyKQorICAgICAgICAgICAgICAgIHJlbW90ZVNhbXBsZS0+
c2V0T3duZXJzaGlwSWRlbnRpdHkobV9yZXNvdXJjZU93bmVyKTsKICAgICAgICAgICAgIG1fY29u
bmVjdGlvbi0+c2VuZChNZXNzYWdlczo6UmVtb3RlQ2FwdHVyZVNhbXBsZU1hbmFnZXI6OlZpZGVv
U2FtcGxlQXZhaWxhYmxlKG1faWQsIFdURk1vdmUoKnJlbW90ZVNhbXBsZSksIG1ldGFkYXRhKSwg
MCk7CiAgICAgICAgIH0KICAgICB9CkBAIC0yNDQsNiArMjQwLDcgQEAgcHJpdmF0ZToKICAgICBS
ZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciBtX2lkOwogICAgIFdlYWtQdHI8UGxhdGZvcm1N
ZWRpYVNlc3Npb25NYW5hZ2VyPiBtX3Nlc3Npb25NYW5hZ2VyOwogICAgIFJlZjxJUEM6OkNvbm5l
Y3Rpb24+IG1fY29ubmVjdGlvbjsKKyAgICBQcm9jZXNzSWRlbnRpdHkgbV9yZXNvdXJjZU93bmVy
OwogICAgIFJlZjxSZWFsdGltZU1lZGlhU291cmNlPiBtX3NvdXJjZTsKICAgICBzdGQ6OnVuaXF1
ZV9wdHI8Q0FSaW5nQnVmZmVyPiBtX3JpbmdCdWZmZXI7CiAgICAgQ0FBdWRpb1N0cmVhbURlc2Ny
aXB0aW9uIG1fZGVzY3JpcHRpb24geyB9OwpAQCAtMjU3LDkgKzI1NCw2IEBAIHByaXZhdGU6CiAg
ICAgc2l6ZV90IG1fZnJhbWVDaHVua1NpemUgeyAwIH07CiAgICAgTWVkaWFUaW1lIG1fc3RhcnRU
aW1lOwogICAgIGJvb2wgbV9zaG91bGRSZXNldCB7IGZhbHNlIH07Ci0jaWYgSEFWRShUQVNLX0lE
RU5USVRZX1RPS0VOKQotICAgIHN0ZDo6b3B0aW9uYWw8dGFza19pZF90b2tlbl90PiBtX3dlYlBy
b2Nlc3NJZGVudGl0eVRva2VuOwotI2VuZGlmCiB9OwogCiBVc2VyTWVkaWFDYXB0dXJlTWFuYWdl
clByb3h5OjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5KFVuaXF1ZVJlZjxDb25uZWN0aW9u
UHJveHk+JiYgY29ubmVjdGlvblByb3h5KQpAQCAtMzIzLDEyICszMTcsNyBAQCB2b2lkIFVzZXJN
ZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6OmNyZWF0ZU1lZGlhU291cmNlRm9yQ2FwdHVyZURldmlj
ZVdpdGhDb25zdHJhaQogICAgICAgICB9CiAKICAgICAgICAgQVNTRVJUKCFtX3Byb3hpZXMuY29u
dGFpbnMoaWQpKTsKLSAgICAgICAgYXV0byBwcm94eSA9IG1ha2VVbmlxdWU8U291cmNlUHJveHk+
KGlkLCBtX2Nvbm5lY3Rpb25Qcm94eS0+Y29ubmVjdGlvbigpLCBXVEZNb3ZlKHNvdXJjZSkpOwot
I2lmIEhBVkUoSU9TVVJGQUNFX1NFVF9PV05FUlNISVBfSURFTlRJVFkpCi0gICAgICAgIGlmIChk
ZXZpY2UudHlwZSgpICE9IFdlYkNvcmU6OkNhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6Ok1pY3Jv
cGhvbmUpCi0gICAgICAgICAgICBwcm94eS0+c2V0V2ViUHJvY2Vzc0lkZW50aXR5VG9rZW4obV9j
b25uZWN0aW9uUHJveHktPndlYlByb2Nlc3NJZGVudGl0eVRva2VuKCkpOwotI2VuZGlmCi0KKyAg
ICAgICAgYXV0byBwcm94eSA9IG1ha2VVbmlxdWU8U291cmNlUHJveHk+KGlkLCBtX2Nvbm5lY3Rp
b25Qcm94eS0+Y29ubmVjdGlvbigpLCBQcm9jZXNzSWRlbnRpdHkgeyBtX2Nvbm5lY3Rpb25Qcm94
eS0+cmVzb3VyY2VPd25lcigpIH0sIFdURk1vdmUoc291cmNlKSk7CiAgICAgICAgIG1fcHJveGll
cy5hZGQoaWQsIFdURk1vdmUocHJveHkpKTsKICAgICB9IGVsc2UKICAgICAgICAgaW52YWxpZENv
bnN0cmFpbnRzID0gV1RGTW92ZShzb3VyY2VPckVycm9yLmVycm9yTWVzc2FnZSk7CkBAIC0zOTMs
NyArMzgyLDcgQEAgdm9pZCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OjpjbG9uZShSZWFs
dGltZU1lZGlhU291cmNlSWRlbnRpZmllciBjbG9uZWRJRCwKICAgICBNRVNTQUdFX0NIRUNLKG1f
cHJveGllcy5jb250YWlucyhjbG9uZWRJRCkpOwogICAgIE1FU1NBR0VfQ0hFQ0soIW1fcHJveGll
cy5jb250YWlucyhuZXdTb3VyY2VJRCkpOwogICAgIGlmIChhdXRvKiBwcm94eSA9IG1fcHJveGll
cy5nZXQoY2xvbmVkSUQpKQotICAgICAgICBtX3Byb3hpZXMuYWRkKG5ld1NvdXJjZUlELCBtYWtl
VW5pcXVlPFNvdXJjZVByb3h5PihuZXdTb3VyY2VJRCwgbV9jb25uZWN0aW9uUHJveHktPmNvbm5l
Y3Rpb24oKSwgcHJveHktPnNvdXJjZSgpLmNsb25lKCkpKTsKKyAgICAgICAgbV9wcm94aWVzLmFk
ZChuZXdTb3VyY2VJRCwgbWFrZVVuaXF1ZTxTb3VyY2VQcm94eT4obmV3U291cmNlSUQsIG1fY29u
bmVjdGlvblByb3h5LT5jb25uZWN0aW9uKCksIFByb2Nlc3NJZGVudGl0eSB7IG1fY29ubmVjdGlv
blByb3h5LT5yZXNvdXJjZU93bmVyKCkgfSwgcHJveHktPnNvdXJjZSgpLmNsb25lKCkpKTsKIH0K
IAogdm9pZCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OjpyZXF1ZXN0VG9FbmQoUmVhbHRp
bWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgc291cmNlSUQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5LmggYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5LmgK
aW5kZXggN2FmZjQyNGQ1NDBkM2IxZmRlY2RhYmM4NjU1YzNjNTZjNTBhMTBlNS4uMTI2MmUwZjgy
MWZmMzc3MzkxMTg2NzhlMDQwMThkZGM2OTk1N2UzNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHku
aApAQCAtMzIsNiArMzIsNyBAQAogI2luY2x1ZGUgIlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmgi
CiAjaW5jbHVkZSA8V2ViQ29yZS9DYXB0dXJlRGV2aWNlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9P
cmllbnRhdGlvbk5vdGlmaWVyLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9Qcm9jZXNzSWRlbnRpdHku
aD4KICNpbmNsdWRlIDxXZWJDb3JlL1JlYWx0aW1lTWVkaWFTb3VyY2UuaD4KICNpbmNsdWRlIDxX
ZWJDb3JlL1JlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyLmg+CiAjaW5jbHVkZSA8cGFsL3Nw
aS9jb2NvYS9UQ0NTUEkuaD4KQEAgLTU5LDkgKzYwLDcgQEAgcHVibGljOgogICAgICAgICB2aXJ0
dWFsIGJvb2wgd2lsbFN0YXJ0Q2FwdHVyZShXZWJDb3JlOjpDYXB0dXJlRGV2aWNlOjpEZXZpY2VU
eXBlKSBjb25zdCA9IDA7CiAgICAgICAgIHZpcnR1YWwgTG9nZ2VyJiBsb2dnZXIoKSA9IDA7CiAg
ICAgICAgIHZpcnR1YWwgYm9vbCBzZXRDYXB0dXJlQXR0cmlidXRpb25TdHJpbmcoKSB7IHJldHVy
biB0cnVlOyB9Ci0jaWYgSEFWRShJT1NVUkZBQ0VfU0VUX09XTkVSU0hJUF9JREVOVElUWSkKLSAg
ICAgICAgdmlydHVhbCBzdGQ6Om9wdGlvbmFsPHRhc2tfaWRfdG9rZW5fdD4gd2ViUHJvY2Vzc0lk
ZW50aXR5VG9rZW4oKSBjb25zdCB7IHJldHVybiB7IH07IH07Ci0jZW5kaWYKKyAgICAgICAgdmly
dHVhbCBjb25zdCBXZWJDb3JlOjpQcm9jZXNzSWRlbnRpdHkmIHJlc291cmNlT3duZXIoKSBjb25z
dCA9IDA7CiAjaWYgRU5BQkxFKEFQUF9QUklWQUNZX1JFUE9SVCkKICAgICAgICAgdmlydHVhbCB2
b2lkIHNldFRDQ0lkZW50aXR5KCkgeyB9CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJQcm9jZXNzUHJveHkuY3BwCmluZGV4IDY2NTZlMmRkZGQzYjQyY2M3MDdlOGEyOGI1ZGE5
YWRhNzA4MDk5ZmIuLjYzZTZlMTM3ZmZhYzBhMjg5MTEwNWM4OWUwNzZhMTAxZTRhZmU2ZTEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcApAQCAtMjE2LDYg
KzIxNiwxMyBAQCBwcml2YXRlOgogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAKKyAgICBj
b25zdCBXZWJDb3JlOjpQcm9jZXNzSWRlbnRpdHkmIHJlc291cmNlT3duZXIoKSBjb25zdCBmaW5h
bAorICAgIHsKKyAgICAgICAgLy8gRklYTUU6IHNob3VsZCBvYnRhaW4gV2ViQ29udGVudCBwcm9j
ZXNzIGlkZW50aXR5IGZyb20gV2ViQ29udGVudC4KKyAgICAgICAgc3RhdGljIE5ldmVyRGVzdHJv
eWVkPFdlYkNvcmU6OlByb2Nlc3NJZGVudGl0eT4gZHVtbXk7CisgICAgICAgIHJldHVybiBkdW1t
eS5nZXQoKTsKKyAgICB9CisKICAgICBSZWZQdHI8TG9nZ2VyPiBtX2xvZ2dlcjsKICAgICBXZWJQ
cm9jZXNzUHJveHkmIG1fcHJvY2VzczsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvR1BVL2dyYXBoaWNzL0ltYWdlQnVmZmVyU2hhcmVhYmxlQml0bWFwQmFja2VuZC5o
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9JbWFnZUJ1ZmZlclNoYXJl
YWJsZUJpdG1hcEJhY2tlbmQuaAppbmRleCAxODQ3ZmE2ZmJkZTQwNmVkNmE2YWQwNjA0OThiODg1
YzVlMzZiYjNkLi5jNWIyNmM0MGU3NDYwMzIyZGZhZmUyOWIwY2U2ZTM2NDE2N2U3MmFjIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL0ltYWdlQnVmZmVy
U2hhcmVhYmxlQml0bWFwQmFja2VuZC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9H
UFUvZ3JhcGhpY3MvSW1hZ2VCdWZmZXJTaGFyZWFibGVCaXRtYXBCYWNrZW5kLmgKQEAgLTMxLDYg
KzMxLDEwIEBACiAjaW5jbHVkZSA8V2ViQ29yZS9QbGF0Zm9ybUltYWdlQnVmZmVyQmFja2VuZC5o
PgogI2luY2x1ZGUgPHd0Zi9Jc29NYWxsb2MuaD4KIAorbmFtZXNwYWNlIFdlYkNvcmUgeworY2xh
c3MgUHJvY2Vzc0lkZW50aXR5OworfQorCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogY2xhc3MgU2hh
cmVhYmxlQml0bWFwOwpAQCAtNjEsNiArNjUsNyBAQCBwdWJsaWM6CiAgICAgc3RkOjpvcHRpb25h
bDxXZWJDb3JlOjpQaXhlbEJ1ZmZlcj4gZ2V0UGl4ZWxCdWZmZXIoY29uc3QgV2ViQ29yZTo6UGl4
ZWxCdWZmZXJGb3JtYXQmIG91dHB1dEZvcm1hdCwgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYpIGNv
bnN0IG92ZXJyaWRlOwogICAgIHZvaWQgcHV0UGl4ZWxCdWZmZXIoY29uc3QgV2ViQ29yZTo6UGl4
ZWxCdWZmZXImLCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiBzcmNSZWN0LCBjb25zdCBXZWJDb3Jl
OjpJbnRQb2ludCYgZGVzdFBvaW50LCBXZWJDb3JlOjpBbHBoYVByZW11bHRpcGxpY2F0aW9uIGRl
c3RGb3JtYXQpIG92ZXJyaWRlOwogCisgICAgdm9pZCBzZXRPd25lcnNoaXBJZGVudGl0eShjb25z
dCBXZWJDb3JlOjpQcm9jZXNzSWRlbnRpdHkmKSB7IH0KIHByaXZhdGU6CiAgICAgdW5zaWduZWQg
Ynl0ZXNQZXJSb3coKSBjb25zdCBvdmVycmlkZTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9jb2NvYS9JbWFnZUJ1ZmZlclNoYXJlYWJsZU1hcHBl
ZElPU3VyZmFjZUJhY2tlbmQuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFw
aGljcy9jb2NvYS9JbWFnZUJ1ZmZlclNoYXJlYWJsZU1hcHBlZElPU3VyZmFjZUJhY2tlbmQuY3Bw
CmluZGV4IGFmZDJjN2MwNWNmYWZkMTM5OTM0NGY1YzZhNzY0ZTQ4ODBkMjhiZGEuLmIyOWZjNTcy
Nzg5NTAzMGQ0MmZkYjQyN2IxNTg0NDdmMGQ3MTA2M2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvY29jb2EvSW1hZ2VCdWZmZXJTaGFyZWFibGVNYXBw
ZWRJT1N1cmZhY2VCYWNrZW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BV
L2dyYXBoaWNzL2NvY29hL0ltYWdlQnVmZmVyU2hhcmVhYmxlTWFwcGVkSU9TdXJmYWNlQmFja2Vu
ZC5jcHAKQEAgLTc3LDEzICs3NywxMSBAQCBJbWFnZUJ1ZmZlckJhY2tlbmRIYW5kbGUgSW1hZ2VC
dWZmZXJTaGFyZWFibGVNYXBwZWRJT1N1cmZhY2VCYWNrZW5kOjpjcmVhdGVJbWFnZQogICAgIHJl
dHVybiBJbWFnZUJ1ZmZlckJhY2tlbmRIYW5kbGUobV9zdXJmYWNlLT5jcmVhdGVTZW5kUmlnaHQo
KSk7CiB9CiAKLSNpZiBIQVZFKElPU1VSRkFDRV9TRVRfT1dORVJTSElQX0lERU5USVRZKQotdm9p
ZCBJbWFnZUJ1ZmZlclNoYXJlYWJsZU1hcHBlZElPU3VyZmFjZUJhY2tlbmQ6OnNldFByb2Nlc3NP
d25lcnNoaXAodGFza19pZF90b2tlbl90IHByb2Nlc3NJZGVudGl0eVRva2VuKQordm9pZCBJbWFn
ZUJ1ZmZlclNoYXJlYWJsZU1hcHBlZElPU3VyZmFjZUJhY2tlbmQ6OnNldE93bmVyc2hpcElkZW50
aXR5KGNvbnN0IFdlYkNvcmU6OlByb2Nlc3NJZGVudGl0eSYgcmVzb3VyY2VPd25lcikKIHsKICAg
ICBBU1NFUlQoc3VyZmFjZSgpKTsKLSAgICBzdXJmYWNlKCktPnNldE93bmVyc2hpcElkZW50aXR5
KHByb2Nlc3NJZGVudGl0eVRva2VuKTsKKyAgICBzdXJmYWNlKCktPnNldE93bmVyc2hpcElkZW50
aXR5KHJlc291cmNlT3duZXIpOwogfQotI2VuZGlmCiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL2NvY29h
L0ltYWdlQnVmZmVyU2hhcmVhYmxlTWFwcGVkSU9TdXJmYWNlQmFja2VuZC5oIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9jb2NvYS9JbWFnZUJ1ZmZlclNoYXJlYWJsZU1h
cHBlZElPU3VyZmFjZUJhY2tlbmQuaAppbmRleCBlMTRhNTQwZWNkZGQ0NzExOTA4YTdjMTcxYzNh
MjVlYmZkODA4ZGJlLi4zYTUxZmI3MzM4Y2ExZDIyY2RiZGIzMzAwNjg2MmI4YWY4ZGZmMTlmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL2NvY29hL0lt
YWdlQnVmZmVyU2hhcmVhYmxlTWFwcGVkSU9TdXJmYWNlQmFja2VuZC5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvY29jb2EvSW1hZ2VCdWZmZXJTaGFyZWFibGVN
YXBwZWRJT1N1cmZhY2VCYWNrZW5kLmgKQEAgLTMxLDYgKzMxLDEwIEBACiAjaW5jbHVkZSA8V2Vi
Q29yZS9JbWFnZUJ1ZmZlcklPU3VyZmFjZUJhY2tlbmQuaD4KICNpbmNsdWRlIDx3dGYvSXNvTWFs
bG9jLmg+CiAKK25hbWVzcGFjZSBXZWJDb3JlIHsKK2NsYXNzIFByb2Nlc3NJZGVudGl0eTsKK30K
KwogbmFtZXNwYWNlIFdlYktpdCB7CiAKIGNsYXNzIFNoYXJlYWJsZUJpdG1hcDsKQEAgLTQ2LDkg
KzUwLDcgQEAgcHVibGljOgogCiAgICAgSW1hZ2VCdWZmZXJCYWNrZW5kSGFuZGxlIGNyZWF0ZUlt
YWdlQnVmZmVyQmFja2VuZEhhbmRsZSgpIGNvbnN0OwogCi0jaWYgSEFWRShJT1NVUkZBQ0VfU0VU
X09XTkVSU0hJUF9JREVOVElUWSkKLSAgICB2b2lkIHNldFByb2Nlc3NPd25lcnNoaXAodGFza19p
ZF90b2tlbl90KTsKLSNlbmRpZgorICAgIHZvaWQgc2V0T3duZXJzaGlwSWRlbnRpdHkoY29uc3Qg
V2ViQ29yZTo6UHJvY2Vzc0lkZW50aXR5JiByZXNvdXJjZU93bmVyKTsKIH07CiAKIH0gLy8gbmFt
ZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29h
L1dlYlByb2Nlc3NDb2NvYS5tbSBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9XZWJQ
cm9jZXNzQ29jb2EubW0KaW5kZXggNmE3ZmM3M2U5YTFjMDFlZGU4OGNhYzU5MjYxMzliMzkxNjRi
ZjdiOC4uNWRiZGUzNzAwZTMwMGRlOWY4ODNmN2M2ODk4NzM2M2M4MWViN2Y0MSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1dlYlByb2Nlc3NDb2NvYS5tbQorKysg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvV2ViUHJvY2Vzc0NvY29hLm1tCkBAIC0x
MjI2LDE0ICsxMjI2LDcgQEAgdm9pZCBXZWJQcm9jZXNzOjp3YWl0Rm9yUGVuZGluZ1Bhc3RlYm9h
cmRXcml0ZXNUb0ZpbmlzaChjb25zdCBTdHJpbmcmIHBhc3RlYm9hcmQKICNpZiBFTkFCTEUoR1BV
X1BST0NFU1MpCiB2b2lkIFdlYlByb2Nlc3M6OnBsYXRmb3JtSW5pdGlhbGl6ZUdQVVByb2Nlc3ND
b25uZWN0aW9uUGFyYW1ldGVycyhHUFVQcm9jZXNzQ29ubmVjdGlvblBhcmFtZXRlcnMmIHBhcmFt
ZXRlcnMpCiB7Ci0jaWYgSEFWRShUQVNLX0lERU5USVRZX1RPS0VOKQotICAgIHRhc2tfaWRfdG9r
ZW5fdCBpZGVudGl0eVRva2VuOwotICAgIGtlcm5fcmV0dXJuX3Qga3IgPSB0YXNrX2NyZWF0ZV9p
ZGVudGl0eV90b2tlbihtYWNoX3Rhc2tfc2VsZigpLCAmaWRlbnRpdHlUb2tlbik7Ci0gICAgaWYg
KGtyID09IEtFUk5fU1VDQ0VTUykKLSAgICAgICAgcGFyYW1ldGVycy53ZWJQcm9jZXNzSWRlbnRp
dHlUb2tlbiA9IE1hY2hTZW5kUmlnaHQ6OmFkb3B0KGlkZW50aXR5VG9rZW4pOwotICAgIGVsc2UK
LSAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoUHJvY2VzcywgIkNhbGwgdG8gdGFza19jcmVhdGVf
aWRlbnRpdHlfdG9rZW4oKSBmYWlsZWQ6ICV7cHJpdmF0ZX1zICgleCkiLCBtYWNoX2Vycm9yX3N0
cmluZyhrciksIGtyKTsKLSNlbmRpZgorICAgIHBhcmFtZXRlcnMud2ViUHJvY2Vzc0lkZW50aXR5
SGFuZGxlID0gUHJvY2Vzc0lkZW50aXR5OjpoYW5kbGVGb3JDdXJyZW50UHJvY2VzcygpOwogCiAg
ICAgcGFyYW1ldGVycy5vdmVycmlkZUxhbmd1YWdlcyA9IHVzZXJQcmVmZXJyZWRMYW5ndWFnZXNP
dmVycmlkZSgpOwogfQpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdl
TG9nCmluZGV4IGEzZGZkM2QwZWMxMTg0MDY1ZTg4Y2Q3MDMyZjI2MTkwYTdhNmI0YWUuLmI0MDFi
YmU2ZGQyMzg2NTA1OTY1YjMxOGYxYTE0NjBkMTJlNTgwZTUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0No
YW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAyMS0xMi0w
OCAgS2ltbW8gS2lubnVuZW4gIDxra2lubnVuZW5AYXBwbGUuY29tPgorCisgICAgICAgIElPU3Vy
ZmFjZSBtZW1vcnkgYXR0cmlidXRpb24gaXMgaGFyZCB0byB1c2UgaW4gY29uc3RydWN0b3JzCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzI5ODgKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBVcGRhdGUgY29u
c3RydWN0b3IgY2FsbGluZyBiYXNlIGNsYXNzIGNvbnN0cnVjdG9yLgorCisgICAgICAgICogVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL2NvY29hL1Rlc3RHcmFwaGljc0NvbnRleHRHTE9wZW5H
TENvY29hLm1tOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6V2ViQ29yZTo6VGVzdGVkR3JhcGhp
Y3NDb250ZXh0R0xPcGVuR0w6OmNyZWF0ZSk6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpXZWJD
b3JlOjpUZXN0ZWRHcmFwaGljc0NvbnRleHRHTE9wZW5HTDo6VGVzdGVkR3JhcGhpY3NDb250ZXh0
R0xPcGVuR0wpOgorCiAyMDIxLTEyLTA3ICBBZGl0eWEgS2VlcnRoaSAgPGFrZWVydGhpQGFwcGxl
LmNvbT4KIAogICAgICAgICBbaU9TXSBBZGQgaW5pdGlhbCBzdXBwb3J0IGZvciBmaW5kLWluLXBh
Z2UgU1BJCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvY29j
b2EvVGVzdEdyYXBoaWNzQ29udGV4dEdMQ29jb2EubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYkNvcmUvY29jb2EvVGVzdEdyYXBoaWNzQ29udGV4dEdMQ29jb2EubW0KaW5kZXggZTE5
MTFkZjZjMDkzZTM4YzhkNDJmYTE3OWVmZDVlNzcyZWE2NWRjNC4uZDBmMGE2MjMxZGJjMTJlNjkx
OTAwMTNhODljZjczZDY4NTkxZWE1NiAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJDb3JlL2NvY29hL1Rlc3RHcmFwaGljc0NvbnRleHRHTENvY29hLm1tCisrKyBiL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9jb2NvYS9UZXN0R3JhcGhpY3NDb250ZXh0
R0xDb2NvYS5tbQpAQCAtMzIsNiArMzIsNyBAQAogI2ltcG9ydCA8TWV0YWwvTWV0YWwuaD4KICNp
bXBvcnQgPFdlYkNvcmUvQ29sb3IuaD4KICNpbXBvcnQgPFdlYkNvcmUvR3JhcGhpY3NDb250ZXh0
R0xDb2NvYS5oPgorI2ltcG9ydCA8V2ViQ29yZS9Qcm9jZXNzSWRlbnRpdHkuaD4KICNpbXBvcnQg
PG9wdGlvbmFsPgogI2ltcG9ydCA8d3RmL0hhc2hTZXQuaD4KICNpbXBvcnQgPHd0Zi9NZW1vcnlG
b290cHJpbnQuaD4KQEAgLTUwLDcgKzUxLDcgQEAgcHVibGljOgogICAgIFJlZlB0cjxXZWJDb3Jl
OjpHcmFwaGljc0xheWVyQ29udGVudHNEaXNwbGF5RGVsZWdhdGU+IGxheWVyQ29udGVudHNEaXNw
bGF5RGVsZWdhdGUoKSBmaW5hbCB7IHJldHVybiBudWxscHRyOyB9CiBwcml2YXRlOgogICAgIFRl
c3RlZEdyYXBoaWNzQ29udGV4dEdMQ29jb2EoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0R0xBdHRy
aWJ1dGVzIGF0dHJpYnV0ZXMpCi0gICAgICAgIDogV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0R0xD
b2NvYShXVEZNb3ZlKGF0dHJpYnV0ZXMpKQorICAgICAgICA6IFdlYkNvcmU6OkdyYXBoaWNzQ29u
dGV4dEdMQ29jb2EoV1RGTW92ZShhdHRyaWJ1dGVzKSwgeyB9KQogICAgIHsKICAgICB9CiB9Owo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>446374</attachid>
            <date>2021-12-08 09:08:41 -0800</date>
            <delta_ts>2021-12-08 12:06:25 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-232988-20211208190839.patch</filename>
            <type>text/plain</type>
            <size>53913</size>
            <attacher name="Kimmo Kinnunen">kkinnunen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg2NjU4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMmNlZDhkZmUyNDIyODg1
ZWEyMjUwZGUzM2ZmMmY0NGJjM2FkYTYwOS4uM2I4MTEyMDAwNWNkMGVlYjJjY2NmZjY1NTVlZjdm
M2EwNjY0MDVkMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU3IEBACisyMDIxLTEyLTA4ICBLaW1t
byBLaW5udW5lbiAgPGtraW5udW5lbkBhcHBsZS5jb20+CisKKyAgICAgICAgSU9TdXJmYWNlIG1l
bW9yeSBhdHRyaWJ1dGlvbiBpcyBoYXJkIHRvIHVzZSBpbiBjb25zdHJ1Y3RvcnMKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMjk4OAorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBXZWJDb3JlOjpQcm9j
ZXNzSWRlbnRpdHkgdHlwZSB0aGF0IGNhbiBiZSB1c2VkIHRvIGNvbW11bmljYXRlIG1lbW9yeSBh
dHRyaWJ1dGlvbi4KKyAgICAgICAgRm9yIG5vbi1Db2NvYSBwb3J0cywgdGhpcyBpcyBudWxscHRy
LgorICAgICAgICBUaGlzIGlzIHVzZWQgaW4gV2ViQ29yZSB0byBzZXQgdGhlIG1lbW9yeSBhdHRy
aWJ1dGlvbiBvZiBJT1N1cmZhY2UgYW5kIG9iamVjdHMKKyAgICAgICAgdGhhdCBob2xkIElPU3Vy
ZmFjZXMuCisgICAgICAgIFRoaXMgaXMgaW5zdGFudGlhdGVkIGluIFdlYktpdC4KKyAgICAgICAg
Q3VycmVudGx5IHRoZSBvbmx5IHVzZWZ1bCB3YXkgdG8gaW5zdGFudGlhdGUgUHJvY2Vzc0lkZW50
aXR5IGlzIGJ5IHJlY2VpdmluZworICAgICAgICB0aGUgUHJvY2Vzc0lkZW50aXR5OjpIYW5kbGUg
YXMgYSBtZXNzYWdlIGFuZCBjcmVhdGUgaXQgdGhpcyB3YXkgZm9yIHRoZQorICAgICAgICBzZW5k
ZXIgcHJvY2Vzcy4KKworICAgICAgICBObyBuZXcgdGVzdHMsIHJlZmFjdG9yLgorCisgICAgICAg
ICogSGVhZGVycy5jbWFrZToKKyAgICAgICAgKiBTb3VyY2VzLnR4dDoKKyAgICAgICAgKiBXZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogcGxhdGZvcm0vTG9nZ2lu
Zy5oOgorICAgICAgICBBZGQgV2ViQ29yZSBQcm9jZXNzIGxvZyB0YWcgc2luY2UgdGhlIGNvZGUg
bW92ZWQgZnJvbSBXZWJLaXQgdG8gUHJvY2Vzc0lkZW50aXR5CisgICAgICAgIHVzZWQgdGhhdCB0
YWcgdG8gbG9nLgorICAgICAgICAqIHBsYXRmb3JtL1Byb2Nlc3NJZGVudGl0eS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpQcm9jZXNzSWRlbnRpdHk6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3Jl
OjpQcm9jZXNzSWRlbnRpdHk6OlByb2Nlc3NJZGVudGl0eSk6CisgICAgICAgIChXZWJDb3JlOjpQ
cm9jZXNzSWRlbnRpdHk6OmhhbmRsZUZvckN1cnJlbnRQcm9jZXNzKToKKyAgICAgICAgKFdlYkNv
cmU6OlByb2Nlc3NJZGVudGl0eTo6aGFuZGxlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlBy
b2Nlc3NJZGVudGl0eTo6dGFza0lkVG9rZW4gY29uc3QpOgorICAgICAgICAqIHBsYXRmb3JtL1By
b2Nlc3NJZGVudGl0eS5oOgorICAgICAgICBBZGQgdGhlIFByb2Nlc3NJZGVudGl0eSB0eXBlIHRo
YXQgY2FuIGJlIHVzZWQgdG8gY29tbXVuaWNhdGUgbWVtb3J5IGF0dHJpYnV0aW9uLgorCisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvUmVtb3RlVmlkZW9TYW1wbGUuaDoKKyAgICAgICAgKFdl
YkNvcmU6OlJlbW90ZVZpZGVvU2FtcGxlOjpzZXRPd25lcnNoaXBJZGVudGl0eSk6CisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvY2cvSW1hZ2VCdWZmZXJVdGlsaXRpZXNDRy5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjplbmNvZGUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NvY29h
L0dyYXBoaWNzQ29udGV4dEdMT3BlbkdMQ29jb2EubW06CisgICAgICAgIChXZWJDb3JlOjpHcmFw
aGljc0NvbnRleHRHTE9wZW5HTDo6R3JhcGhpY3NDb250ZXh0R0xPcGVuR0wpOgorICAgICAgICAo
V2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0R0xPcGVuR0w6OmFsbG9jYXRlQW5kQmluZERpc3BsYXlC
dWZmZXJCYWNraW5nKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9JT1N1cmZh
Y2UuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9JT1N1cmZhY2UubW06Cisg
ICAgICAgIChXZWJDb3JlOjpJT1N1cmZhY2U6OnNldE93bmVyc2hpcElkZW50aXR5KToKKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9XZWJQcm9jZXNzR3JhcGhpY3NDb250ZXh0R0xP
cGVuR0xDb2NvYS5tbToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR3JhcGhp
Y3NDb250ZXh0R0xPcGVuR0wuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAv
R3JhcGhpY3NDb250ZXh0R0xUZXh0dXJlTWFwcGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okdy
YXBoaWNzQ29udGV4dEdMT3BlbkdMOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhp
Y3NDb250ZXh0R0xPcGVuR0w6OkdyYXBoaWNzQ29udGV4dEdMT3BlbkdMKToKKyAgICAgICAgQWRk
IGFuIGV4YW1wbGUgdXNlIHdoZXJlIHRoZSBjb25zdHJ1Y3RvciB0YWtlcyB0aGUgbWVtb3J5IGF0
dHJpYnV0aW9uIHRva2VuLgorICAgICAgICBUaGlzIG1heSBiZSBuZWVkZWQgaW4gdGhlIGZ1dHVy
ZSB3aGVuIHRoZSB0b2tlbiBpcyB1c2VkIGFzIGEgcGFyYW1ldGVyIGluCisgICAgICAgIHRoZSBB
TkdMRSBjb250ZXh0IGNyZWF0aW9uLgorICAgICAgICBVc2UgdGhlIHRva2VuIGluIGNyZWF0aW5n
IHRoZSBJT1N1cmZhY2UuIFRoaXMgZml4ZXMgYSBidWcgd2hlcmUgV2ViR0wKKyAgICAgICAgYmFj
ayBidWZmZXJzIHdvdWxkIG5vdCBiZSBhdHRyaWJ1dGVkIHVudGlsIHRoZXkgd2VyZSBzZW50IHRv
IFdQLgorCiAyMDIxLTEyLTA4ICBBbnR0aSBLb2l2aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KIAog
ICAgICAgICBbQ1NTIENhc2NhZGUgTGF5ZXJzXSBVcGRhdGUgQ1NTT00gdG8gdGhlIHNwZWMKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VM
b2cKaW5kZXggZDhjZmE0ZWY4YTU0YmFlYzk5YjZhMjc5ZmIxN2U1YzI1NWNhMjBiMC4uYjMwYmUw
ZTg0NTFmMGQyMDA5Yzk2NDc0Mzc3ZjE4ODBhMWI4ZDAxZCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSw1
NCBAQAorMjAyMS0xMi0wOCAgS2ltbW8gS2lubnVuZW4gIDxra2lubnVuZW5AYXBwbGUuY29tPgor
CisgICAgICAgIElPU3VyZmFjZSBtZW1vcnkgYXR0cmlidXRpb24gaXMgaGFyZCB0byB1c2UgaW4g
Y29uc3RydWN0b3JzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yMzI5ODgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBSZW1vdmUgaWZkZWZzIGFuZCBkaXJlY3QgdXNlIG9mIHRhc2tfaWRfdG9rZW5fdC4KKyAg
ICAgICAgSW5zdGVhZCwgdXNlIFdlYkNvcmU6OlByb2Nlc3NJZGVudGlmaWVyLiBUaGlzIHdheSB0
aGUKKyAgICAgICAgY3Jvc3MtcGxhdGZvcm0gY29kZSBpcyBlYXNpZXIgdG8gYXV0aG9yLgorCisg
ICAgICAgICogR1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6R1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6R1BVQ29ubmVjdGlvblRvV2Vi
UHJvY2Vzcyk6CisgICAgICAgICogR1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNz
Lmg6CisgICAgICAgIChXZWJLaXQ6OkdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OndlYlByb2Nl
c3NJZGVudGl0eSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OkdQVUNvbm5lY3Rpb25Ub1dlYlBy
b2Nlc3M6OndlYlByb2Nlc3NJZGVudGl0eVRva2VuIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAg
KiBHUFVQcm9jZXNzL2dyYXBoaWNzL0dQVVByb2Nlc3NHcmFwaGljc0NvbnRleHRHTC5oOgorICAg
ICAgICAqIEdQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xDb2NvYS5j
cHA6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUdyYXBoaWNzQ29udGV4dEdMQ29jb2E6OlJlbW90
ZUdyYXBoaWNzQ29udGV4dEdMQ29jb2EpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVHcmFwaGlj
c0NvbnRleHRHTENvY29hOjpwbGF0Zm9ybVdvcmtRdWV1ZUluaXRpYWxpemUpOgorICAgICAgICAo
V2ViS2l0OjpSZW1vdGVHcmFwaGljc0NvbnRleHRHTENvY29hOjpwcmVwYXJlRm9yRGlzcGxheSk6
CisgICAgICAgICogR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVJbWFnZUJ1ZmZlci5oOgorICAg
ICAgICAoV2ViS2l0OjpSZW1vdGVJbWFnZUJ1ZmZlcjo6c2V0T3duZXJzaGlwSWRlbnRpdHkpOgor
ICAgICAgICAoV2ViS2l0OjpSZW1vdGVJbWFnZUJ1ZmZlcjo6c2V0UHJvY2Vzc093bmVyc2hpcCk6
IERlbGV0ZWQuCisgICAgICAgICogR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdC
YWNrZW5kLmNwcDoKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVuZGVyaW5nQmFja2VuZDo6UmVt
b3RlUmVuZGVyaW5nQmFja2VuZCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlbmRlcmluZ0Jh
Y2tlbmQ6OmNyZWF0ZUltYWdlQnVmZmVyV2l0aFF1YWxpZmllZElkZW50aWZpZXIpOgorICAgICAg
ICAoV2ViS2l0OjpSZW1vdGVSZW5kZXJpbmdCYWNrZW5kOjpnZXREYXRhVVJMRm9ySW1hZ2VCdWZm
ZXJXaXRoUXVhbGlmaWVkSWRlbnRpZmllcik6CisgICAgICAgICogR1BVUHJvY2Vzcy9ncmFwaGlj
cy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmg6CisgICAgICAgICogR1BVUHJvY2Vzcy93ZWJydGMv
TGliV2ViUlRDQ29kZWNzUHJveHkubW06CisgICAgICAgIChXZWJLaXQ6OkZ1bmN0aW9uPHZvaWQp
OgorICAgICAgICAqIFNoYXJlZC9HUFVQcm9jZXNzQ29ubmVjdGlvblBhcmFtZXRlcnMuaDoKKyAg
ICAgICAgKFdlYktpdDo6R1BVUHJvY2Vzc0Nvbm5lY3Rpb25QYXJhbWV0ZXJzOjplbmNvZGUgY29u
c3QpOgorICAgICAgICAoV2ViS2l0OjpHUFVQcm9jZXNzQ29ubmVjdGlvblBhcmFtZXRlcnM6OmRl
Y29kZSk6CisgICAgICAgICogU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5jcHA6CisgICAg
ICAgICogU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5oOgorICAgICAgICAqIFVJUHJvY2Vz
cy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5LmNwcDoKKyAgICAgICAgKFdlYktp
dDo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6U291cmNlUHJveHk6OlNvdXJjZVByb3h5
KToKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6U291cmNl
UHJveHk6OnNldFNob3VsZEFwcGx5Um90YXRpb24pOgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVk
aWFDYXB0dXJlTWFuYWdlclByb3h5OjpjcmVhdGVNZWRpYVNvdXJjZUZvckNhcHR1cmVEZXZpY2VX
aXRoQ29uc3RyYWludHMpOgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdl
clByb3h5OjpjbG9uZSk6CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2Vy
UHJveHk6OlNvdXJjZVByb3h5OjpzZXRXZWJQcm9jZXNzSWRlbnRpdHlUb2tlbik6IERlbGV0ZWQu
CisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHku
aDoKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6Q29ubmVj
dGlvblByb3h5OjpyZXNvdXJjZU93bmVyIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6VXNlck1l
ZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6Q29ubmVjdGlvblByb3h5Ojp3ZWJQcm9jZXNzSWRlbnRp
dHlUb2tlbiBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvZ3JhcGhp
Y3MvY29jb2EvSW1hZ2VCdWZmZXJTaGFyZWFibGVNYXBwZWRJT1N1cmZhY2VCYWNrZW5kLmNwcDoK
KyAgICAgICAgKFdlYktpdDo6SW1hZ2VCdWZmZXJTaGFyZWFibGVNYXBwZWRJT1N1cmZhY2VCYWNr
ZW5kOjpzZXRPd25lcnNoaXBJZGVudGl0eSk6CisgICAgICAgIChXZWJLaXQ6OkltYWdlQnVmZmVy
U2hhcmVhYmxlTWFwcGVkSU9TdXJmYWNlQmFja2VuZDo6c2V0UHJvY2Vzc093bmVyc2hpcCk6IERl
bGV0ZWQuCisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvY29jb2EvSW1hZ2VCdWZm
ZXJTaGFyZWFibGVNYXBwZWRJT1N1cmZhY2VCYWNrZW5kLmg6CisgICAgICAgICogV2ViUHJvY2Vz
cy9jb2NvYS9XZWJQcm9jZXNzQ29jb2EubW06CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6
OnBsYXRmb3JtSW5pdGlhbGl6ZUdQVVByb2Nlc3NDb25uZWN0aW9uUGFyYW1ldGVycyk6CiAyMDIx
LTEyLTA4ICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgogCiAgICAgICAg
IEFkZCBhIG1pc3NpbmcgQ29tcGxldGlvbkhhbmRsZXJDYWxsQ2hlY2tlciBhcm91bmQgYSBVSSBk
ZWxlZ2F0ZSBtZXRob2QgY2FsbCBhZnRlciByMjg2NjQwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9IZWFkZXJzLmNtYWtlIGIvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQppbmRleCA3
OTYzNmJkZDg4NjU4ZTZhY2FmYTkwZTMxNTVhNjk5NjlkZWY3NDU0Li5jNmFlMDZiM2EyNGVjYjcy
NzBiYjdjMjVlYTlhYTY4OTZkZDlhZTJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9IZWFk
ZXJzLmNtYWtlCisrKyBiL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKQEAgLTEyOTEsNiAr
MTI5MSw3IEBAIHNldChXZWJDb3JlX1BSSVZBVEVfRlJBTUVXT1JLX0hFQURFUlMKICAgICBwbGF0
Zm9ybS9Qb3B1cE1lbnVDbGllbnQuaAogICAgIHBsYXRmb3JtL1BvcHVwTWVudVN0eWxlLmgKICAg
ICBwbGF0Zm9ybS9Qcm9jZXNzSWRlbnRpZmllci5oCisgICAgcGxhdGZvcm0vUHJvY2Vzc0lkZW50
aXR5LmgKICAgICBwbGF0Zm9ybS9Qcm9jZXNzUXVhbGlmaWVkLmgKICAgICBwbGF0Zm9ybS9Qcm9t
aXNlZEF0dGFjaG1lbnRJbmZvLmgKICAgICBwbGF0Zm9ybS9QdWJsaWNTdWZmaXguaApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2Vz
LnR4dAppbmRleCA5MmUwZjRiMGM4NTZlNjg3Nzg2ZmFmZDRiMjNlYWE2YjlmNTUzMGY3Li5jYzdh
ODFmYzYwNzQ2NjRiNWU1NGJkMmNmNTdjNjYwY2Y2NjM2ZjM4IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9Tb3VyY2VzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dApAQCAt
MTg4Niw2ICsxODg2LDcgQEAgcGxhdGZvcm0vUGxhdGZvcm1TdHJhdGVnaWVzLmNwcAogcGxhdGZv
cm0vUGxhdGZvcm1XaGVlbEV2ZW50LmNwcAogcGxhdGZvcm0vUHJldmlld0NvbnZlcnRlci5jcHAK
IHBsYXRmb3JtL1Byb2Nlc3NJZGVudGlmaWVyLmNwcAorcGxhdGZvcm0vUHJvY2Vzc0lkZW50aXR5
LmNwcAogcGxhdGZvcm0vUmVmZXJyZXJQb2xpY3kuY3BwCiBwbGF0Zm9ybS9SZW1vdGVDb21tYW5k
TGlzdGVuZXIuY3BwCiBwbGF0Zm9ybS9SdW50aW1lQXBwbGljYXRpb25DaGVja3MuY3BwCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2og
Yi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXgg
YzdiNWVmMDBkNGVmNWRmYTVhODMwNjYwNzFkMmZiM2UwOWZjMjk0YS4uMzQyODVkNmJiOTU3ZmRj
ZTMyYmQzMDEyZDRiODE3ZTdkOGU2NzdjYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMjM4OCw2ICsyMzg4LDcgQEAKIAkJN0JC
MzRBNDgyNTM3NzZDQTAwMDI5RDA4IC8qIEdyYXBoaWNzQ29udGV4dEdMSW1hZ2VFeHRyYWN0b3Iu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdCQjM0QTQ1
MjUzNzc2QzYwMDAyOUQwOCAvKiBHcmFwaGljc0NvbnRleHRHTEltYWdlRXh0cmFjdG9yLmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJN0JCNjgwQkEy
NUJBMUJFNDAwMkI4NzM4IC8qIEdyYXBoaWNzQ2hlY2tzTWFjLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3QkI2ODBCODI1QkExQkU0MDAyQjg3MzggLyog
R3JhcGhpY3NDaGVja3NNYWMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRl
LCApOyB9OyB9OwogCQk3QkREQTMxRjI3NEZBMDIxMDAzODY1OUUgLyogR3JhcGhpY3NDb250ZXh0
R0xDb2NvYS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
N0JEREEzMUQyNzRGOURBNTAwMzg2NTlFIC8qIEdyYXBoaWNzQ29udGV4dEdMQ29jb2EuaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk3QkREQTM0QzI3
NUEwMTMxMDAzODY1OUUgLyogUHJvY2Vzc0lkZW50aXR5LmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3QkREQTM0OTI3NUEwMTMwMDAzODY1OUUgLyogUHJv
Y2Vzc0lkZW50aXR5LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsg
fTsgfTsKIAkJN0JFNzQyNzM4MUZBOTA2RkJCNEYwRjJDIC8qIEpTU1ZHR3JhcGhpY3NFbGVtZW50
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5NTBDNEMw
MkJFRDg5MzZGODE4RTJGOTkgLyogSlNTVkdHcmFwaGljc0VsZW1lbnQuaCAqLzsgfTsKIAkJN0JG
RjU5RjQyNzU3NzI2NzAwNzczRDM5IC8qIERpc3BsYXlDb25maWd1cmF0aW9uTW9uaXRvci5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0JGRjU5RUYyNzU3
NzFFODAwNzczRDM5IC8qIERpc3BsYXlDb25maWd1cmF0aW9uTW9uaXRvci5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTdDMDI5QzZFMjQ5M0M4Rjgw
MDI2ODIwNCAvKiBDb2xvclR5cGVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA3QzAyOUM2RDI0OTNDOEY4MDAyNjgyMDQgLyogQ29sb3JUeXBlcy5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CkBAIC0xMTQyMCw2
ICsxMTQyMSw4IEBACiAJCTdCQ0Q0MkRDMjcwNUM5NDkwMEVCMjEyNyAvKiBBTkdMRVV0aWxpdGll
c0NvY29hLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEFOR0xFVXRpbGl0aWVzQ29jb2EuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0JEREEzMUMyNzRGOURBNDAwMzg2NTlFIC8qIEdyYXBoaWNz
Q29udGV4dEdMQ29jb2EubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGgg
PSBHcmFwaGljc0NvbnRleHRHTENvY29hLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk3QkREQTMxRDI3NEY5REE1MDAzODY1OUUgLyogR3JhcGhpY3NDb250ZXh0R0xDb2NvYS5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBHcmFwaGljc0NvbnRleHRHTENvY29hLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTdCRERBMzQ5Mjc1QTAxMzAwMDM4NjU5RSAv
KiBQcm9jZXNzSWRlbnRpdHkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUHJv
Y2Vzc0lkZW50aXR5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTdCRERBMzRCMjc1
QTAxMzAwMDM4NjU5RSAvKiBQcm9jZXNzSWRlbnRpdHkuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gUHJvY2Vzc0lkZW50aXR5LmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJN0JFNzI2NUIyNTc2M0I4RDAwRTg1RDk4IC8qIFJlbW90ZUdyYXBoaWNzQ29u
dGV4dEdMUHJveHlCYXNlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlbW90ZUdyYXBoaWNzQ29u
dGV4dEdMUHJveHlCYXNlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0JGRjU5
RUYyNzU3NzFFODAwNzczRDM5IC8qIERpc3BsYXlDb25maWd1cmF0aW9uTW9uaXRvci5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGV4cGxpY2l0RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5oOyBmaWxlRW5jb2RpbmcgPSA0OyBwYXRoID0gRGlzcGxheUNvbmZpZ3VyYXRpb25Nb25pdG9y
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdCRkY1OUYxMjc1NzcxRTgwMDc3M0Qz
OSAvKiBEaXNwbGF5Q29uZmlndXJhdGlvbk1vbml0b3IuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gRGlzcGxheUNvbmZpZ3VyYXRpb25Nb25pdG9yLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTI5ODMzLDYgKzI5ODM2LDggQEAKIAkJCQlBMUFEQUY3
QzIzNjBGRDNFMDA5Q0I3NzYgLyogUHJldmlld0NvbnZlcnRlclByb3ZpZGVyLmggKi8sCiAJCQkJ
NTFGNjQ1RDIxRkVDREJDODAwQjU0REVEIC8qIFByb2Nlc3NJZGVudGlmaWVyLmNwcCAqLywKIAkJ
CQk1MUY2NDVEMzFGRUNEQkM4MDBCNTRERUQgLyogUHJvY2Vzc0lkZW50aWZpZXIuaCAqLywKKwkJ
CQk3QkREQTM0QjI3NUEwMTMwMDAzODY1OUUgLyogUHJvY2Vzc0lkZW50aXR5LmNwcCAqLywKKwkJ
CQk3QkREQTM0OTI3NUEwMTMwMDAzODY1OUUgLyogUHJvY2Vzc0lkZW50aXR5LmggKi8sCiAJCQkJ
MUNDNTRBRkIyNzBGOTJEQTAwNUJGOEJFIC8qIFByb2Nlc3NRdWFsaWZpZWQuaCAqLywKIAkJCQlG
NDdBNjMzQzFGRjZGRDUwMDA4MUIzQ0MgLyogUHJvbWlzZWRBdHRhY2htZW50SW5mby5oICovLAog
CQkJCTAwODFGRUZEMTZCMEEyNDQwMDhBQUE3QSAvKiBQdWJsaWNTdWZmaXguaCAqLywKQEAgLTM2
Mzc4LDYgKzM2MzgzLDcgQEAKIAkJCQlCNzFGRTZERjExMDkxQ0IzMDBEQUVGNzcgLyogUHJpbnRD
b250ZXh0LmggaW4gSGVhZGVycyAqLywKIAkJCQk2QjBBMDdGMjIxRkE0QjVDMDBENTczOTEgLyog
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTUxRjY0NUQ1MUZF
Q0RCQ0UwMEI1NERFRCAvKiBQcm9jZXNzSWRlbnRpZmllci5oIGluIEhlYWRlcnMgKi8sCisJCQkJ
N0JEREEzNEMyNzVBMDEzMTAwMzg2NTlFIC8qIFByb2Nlc3NJZGVudGl0eS5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJQThFQTdFQkMwQTE5NDVEMDAwQThFRjVGIC8qIFByb2Nlc3NpbmdJbnN0cnVjdGlv
bi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUNDNTRBRkUyNzBGOTZBRTAwNUJGOEJFIC8qIFByb2Nl
c3NRdWFsaWZpZWQuaCBpbiBIZWFkZXJzICovLAogCQkJCUU0MjA1MDE3MjE0MTkwMUIwMDY2RUYz
QiAvKiBQcm9jZXNzV2FybWluZy5oIGluIEhlYWRlcnMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9Mb2dnaW5nLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Mb2dn
aW5nLmgKaW5kZXggM2ZiZTQxN2JlOTgxYjc1ZTc3OWRlMjM4ZmM0YmUwNWE2ZDczMGZhYS4uZGMw
ZjUwOThiODdmMTg0NTUyNWJlM2MwYmE0MWY3Njc1YjE0MDQ3ZiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vTG9nZ2luZy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L0xvZ2dpbmcuaApAQCAtOTQsNiArOTQsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgTShQ
bHVnaW5zKSBcCiAgICAgTShQb3B1cEJsb2NraW5nKSBcCiAgICAgTShQcml2YXRlQ2xpY2tNZWFz
dXJlbWVudCkgXAorICAgIE0oUHJvY2VzcykgXAogICAgIE0oUHJvZ3Jlc3MpIFwKICAgICBNKFJl
bW90ZUluc3BlY3RvcikgXAogICAgIE0oUmVxdWVzdEFuaW1hdGlvbkZyYW1lKSBcCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Qcm9jZXNzSWRlbnRpdHkuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vUHJvY2Vzc0lkZW50aXR5LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mYmMxYWUx
OTUzYTliZWEyN2NmNTc2YTJkNGYxMTE3YjA4NDliNjM0Ci0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vUHJvY2Vzc0lkZW50aXR5LmNwcApAQCAtMCwwICsxLDg5IEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBD
T05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1Ig
QlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQor
ICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUg
ImNvbmZpZy5oIgorI2luY2x1ZGUgIlByb2Nlc3NJZGVudGl0eS5oIgorCisjaW5jbHVkZSAiTG9n
Z2luZy5oIgorCisjaWYgSEFWRShUQVNLX0lERU5USVRZX1RPS0VOKQorI2luY2x1ZGUgPG1hY2gv
bWFjaC5oPgorI2VuZGlmCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworUHJvY2Vzc0lkZW50aXR5
OjpIYW5kbGUgUHJvY2Vzc0lkZW50aXR5OjpoYW5kbGVGb3JDdXJyZW50UHJvY2VzcygpCit7Cisg
ICAgUHJvY2Vzc0lkZW50aXR5OjpIYW5kbGUgcmVzdWx0OworI2lmIEhBVkUoVEFTS19JREVOVElU
WV9UT0tFTikKKyAgICB0YXNrX2lkX3Rva2VuX3QgaWRlbnRpdHlUb2tlbjsKKyAgICBrZXJuX3Jl
dHVybl90IGtyID0gdGFza19jcmVhdGVfaWRlbnRpdHlfdG9rZW4obWFjaF90YXNrX3NlbGYoKSwg
JmlkZW50aXR5VG9rZW4pOworICAgIGlmIChrciA9PSBLRVJOX1NVQ0NFU1MpCisgICAgICAgIHJl
c3VsdCA9IE1hY2hTZW5kUmlnaHQ6OmFkb3B0KGlkZW50aXR5VG9rZW4pOworICAgIGVsc2UKKyAg
ICAgICAgUkVMRUFTRV9MT0dfRVJST1IoUHJvY2VzcywgInRhc2tfY3JlYXRlX2lkZW50aXR5X3Rv
a2VuKCkgZmFpbGVkOiAle3ByaXZhdGV9cyAoJXgpIiwgbWFjaF9lcnJvcl9zdHJpbmcoa3IpLCBr
cik7CisjZW5kaWYKKyAgICByZXR1cm4gcmVzdWx0OworfQorCitQcm9jZXNzSWRlbnRpdHk6OlBy
b2Nlc3NJZGVudGl0eSgpID0gZGVmYXVsdDsKKworUHJvY2Vzc0lkZW50aXR5OjpQcm9jZXNzSWRl
bnRpdHkoSGFuZGxlJiYgaGFuZGxlKQorICAgIDogbV9oYW5kbGUoV1RGTW92ZShoYW5kbGUpKQor
eworfQorCitQcm9jZXNzSWRlbnRpdHk6OlByb2Nlc3NJZGVudGl0eShQcm9jZXNzSWRlbnRpdHkm
JikgPSBkZWZhdWx0OworCitQcm9jZXNzSWRlbnRpdHk6OlByb2Nlc3NJZGVudGl0eShjb25zdCBQ
cm9jZXNzSWRlbnRpdHkmKSA9IGRlZmF1bHQ7CisKK1Byb2Nlc3NJZGVudGl0eTo6flByb2Nlc3NJ
ZGVudGl0eSgpID0gZGVmYXVsdDsKKworUHJvY2Vzc0lkZW50aXR5JiBQcm9jZXNzSWRlbnRpdHk6
Om9wZXJhdG9yPShQcm9jZXNzSWRlbnRpdHkmJikgPSBkZWZhdWx0OworCitQcm9jZXNzSWRlbnRp
dHkmIFByb2Nlc3NJZGVudGl0eTo6b3BlcmF0b3I9KGNvbnN0IFByb2Nlc3NJZGVudGl0eSYpID0g
ZGVmYXVsdDsKKworY29uc3QgUHJvY2Vzc0lkZW50aXR5OjpIYW5kbGUmIFByb2Nlc3NJZGVudGl0
eTo6aGFuZGxlKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9oYW5kbGU7Cit9CisKKyNpZiBIQVZF
KFRBU0tfSURFTlRJVFlfVE9LRU4pCit0YXNrX2lkX3Rva2VuX3QgUHJvY2Vzc0lkZW50aXR5Ojp0
YXNrSWRUb2tlbigpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1faGFuZGxlLnNlbmRSaWdodCgpOwor
fQorI2VuZGlmCisKK1Byb2Nlc3NJZGVudGl0eTo6b3BlcmF0b3IgYm9vbCgpIGNvbnN0Cit7Cisj
aWYgSEFWRShUQVNLX0lERU5USVRZX1RPS0VOKQorICAgIHJldHVybiBzdGF0aWNfY2FzdDxib29s
PihtX2hhbmRsZSk7CisjZWxzZQorICAgIHJldHVybiBmYWxzZTsKKyNlbmRpZgorfQorCit9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Qcm9jZXNzSWRlbnRpdHkuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Byb2Nlc3NJZGVudGl0eS5oCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjZjZDlm
NmUxODRjZTFkOGE3NmQ0YTYzMGFiMDhlMTI0MzBiMzA4YzcKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Qcm9jZXNzSWRlbnRpdHkuaApAQCAtMCwwICsxLDY1IEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBD
T05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1Ig
QlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQor
ICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBv
bmNlCisKKyNpZiBIQVZFKFRBU0tfSURFTlRJVFlfVE9LRU4pCisjaW5jbHVkZSA8d3RmL01hY2hT
ZW5kUmlnaHQuaD4KKyNlbHNlCisjaW5jbHVkZSA8dmFyaWFudD4KKyNlbmRpZgorCituYW1lc3Bh
Y2UgV2ViQ29yZSB7CisKKy8vIE9iamVjdCB0byBhY2Nlc3MgcHJvb2Ygb2YgcHJvY2VzcyBpZGVu
dGl0eS4KKy8vIFByb2Nlc3NJZGVudGlmaWVyIGlkZW50aWZpZXMgYSBwcm9jZXNzLgorLy8gUHJv
Y2Vzc0lkZW50aXR5IGdyYW50cyBhY2Nlc3MgdG8gdGhlIGlkZW50aXR5LgorY2xhc3MgV0VCQ09S
RV9FWFBPUlQgUHJvY2Vzc0lkZW50aXR5IHsKK3B1YmxpYzoKKyNpZiBIQVZFKFRBU0tfSURFTlRJ
VFlfVE9LRU4pCisgICAgdXNpbmcgSGFuZGxlID0gTWFjaFNlbmRSaWdodDsKKyNlbHNlCisgICAg
dXNpbmcgSGFuZGxlID0gc3RkOjptb25vc3RhdGU7CisjZW5kaWYKKyAgICBzdGF0aWMgSGFuZGxl
IGhhbmRsZUZvckN1cnJlbnRQcm9jZXNzKCk7CisKKyAgICBQcm9jZXNzSWRlbnRpdHkoKTsKKyAg
ICBQcm9jZXNzSWRlbnRpdHkoSGFuZGxlJiYpOworICAgIFByb2Nlc3NJZGVudGl0eShQcm9jZXNz
SWRlbnRpdHkmJik7CisgICAgUHJvY2Vzc0lkZW50aXR5KGNvbnN0IFByb2Nlc3NJZGVudGl0eSYp
OworICAgIH5Qcm9jZXNzSWRlbnRpdHkoKTsKKyAgICBQcm9jZXNzSWRlbnRpdHkmIG9wZXJhdG9y
PShQcm9jZXNzSWRlbnRpdHkmJik7CisgICAgUHJvY2Vzc0lkZW50aXR5JiBvcGVyYXRvcj0oY29u
c3QgUHJvY2Vzc0lkZW50aXR5Jik7CisgICAgY29uc3QgSGFuZGxlJiBoYW5kbGUoKSBjb25zdDsK
KyAgICBvcGVyYXRvciBib29sKCkgY29uc3Q7CisKKyNpZiBIQVZFKFRBU0tfSURFTlRJVFlfVE9L
RU4pCisgICAgdGFza19pZF90b2tlbl90IHRhc2tJZFRva2VuKCkgY29uc3Q7CisjZW5kaWYKK3By
aXZhdGU6CisgICAgSGFuZGxlIG1faGFuZGxlOworfTsKKworfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvUmVtb3RlVmlkZW9TYW1wbGUuaCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1JlbW90ZVZpZGVvU2FtcGxlLmgKaW5kZXggYTYxNzBi
MzI4ZmM0NGFjZTY5M2RjZGIzNWVlNGQzY2U2ODczMzhhMS4uZmJlZTdlODEzMzZmN2QzOWQzNjJk
OTYwNzllMzY3OWYzMDkwZmMzMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvUmVtb3RlVmlkZW9TYW1wbGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9SZW1vdGVWaWRlb1NhbXBsZS5oCkBAIC0zNyw2ICszNyw4IEBAIHR5cGVkZWYg
c3RydWN0IF9fQ1ZCdWZmZXIqIENWUGl4ZWxCdWZmZXJSZWY7CiAKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIAorY2xhc3MgUHJvY2Vzc0lkZW50aXR5OworCiBjbGFzcyBSZW1vdGVWaWRlb1NhbXBsZSB7
CiBwdWJsaWM6CiAgICAgUmVtb3RlVmlkZW9TYW1wbGUoKSA9IGRlZmF1bHQ7CkBAIC00OCw5ICs1
MCw3IEBAIHB1YmxpYzoKICAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgc3RkOjp1bmlxdWVfcHRy
PFJlbW90ZVZpZGVvU2FtcGxlPiBjcmVhdGUoUmV0YWluUHRyPENWUGl4ZWxCdWZmZXJSZWY+JiYs
IE1lZGlhVGltZSYmIHByZXNlbnRhdGlvblRpbWUsIE1lZGlhU2FtcGxlOjpWaWRlb1JvdGF0aW9u
ID0gTWVkaWFTYW1wbGU6OlZpZGVvUm90YXRpb246Ok5vbmUpOwogICAgIFdFQkNPUkVfRVhQT1JU
IElPU3VyZmFjZVJlZiBzdXJmYWNlKCkgY29uc3Q7CiAKLSNpZiBIQVZFKElPU1VSRkFDRV9TRVRf
T1dORVJTSElQX0lERU5USVRZKQotICAgIHZvaWQgc2V0T3duZXJzaGlwSWRlbnRpdHkodGFza19p
ZF90b2tlbl90IG5ld093bmVyKTsKLSNlbmRpZgorICAgIHZvaWQgc2V0T3duZXJzaGlwSWRlbnRp
dHkoY29uc3QgUHJvY2Vzc0lkZW50aXR5JiByZXNvdXJjZU93bmVyKTsKIAogICAgIGNvbnN0IE1l
ZGlhVGltZSYgdGltZSgpIGNvbnN0IHsgcmV0dXJuIG1fdGltZTsgfQogICAgIHVpbnQzMl90IHZp
ZGVvRm9ybWF0KCkgY29uc3QgeyByZXR1cm4gbV92aWRlb0Zvcm1hdDsgfQpAQCAtMTE5LDEzICsx
MTksMTEgQEAgcHJpdmF0ZToKICAgICBib29sIG1fbWlycm9yZWQgeyBmYWxzZSB9OwogfTsKIAot
I2lmIEhBVkUoSU9TVVJGQUNFX1NFVF9PV05FUlNISVBfSURFTlRJVFkpCi1pbmxpbmUgdm9pZCBS
ZW1vdGVWaWRlb1NhbXBsZTo6c2V0T3duZXJzaGlwSWRlbnRpdHkodGFza19pZF90b2tlbl90IG5l
d093bmVyKQoraW5saW5lIHZvaWQgUmVtb3RlVmlkZW9TYW1wbGU6OnNldE93bmVyc2hpcElkZW50
aXR5KGNvbnN0IFByb2Nlc3NJZGVudGl0eSYgcmVzb3VyY2VPd25lcikKIHsKICAgICBpZiAobV9p
b1N1cmZhY2UpCi0gICAgICAgIG1faW9TdXJmYWNlLT5zZXRPd25lcnNoaXBJZGVudGl0eShuZXdP
d25lcik7CisgICAgICAgIG1faW9TdXJmYWNlLT5zZXRPd25lcnNoaXBJZGVudGl0eShyZXNvdXJj
ZU93bmVyKTsKIH0KLSNlbmRpZgogCiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2FuZ2xlL0dyYXBoaWNzQ29udGV4dEdMQU5HTEUuaCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2FuZ2xlL0dyYXBoaWNzQ29udGV4dEdMQU5HTEUuaApp
bmRleCA0M2Q1ZDI5MGRkNjgyY2E1OTY1NjAxMTBhNjZhNWE3ZGE4Zjg1MmEwLi45NzRlYmIzNTFm
YzYzZDM4NGZkNGE3Yzk5NzlhZjBkMjY0NTgzOWMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9hbmdsZS9HcmFwaGljc0NvbnRleHRHTEFOR0xFLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYW5nbGUvR3JhcGhpY3NDb250ZXh0R0xB
TkdMRS5oCkBAIC0zNiw2ICszNiw3IEBACiAjaWYgUExBVEZPUk0oQ09DT0EpCiAjaW5jbHVkZSAi
R3JhcGhpY3NDb250ZXh0R0xJT1N1cmZhY2VTd2FwQ2hhaW4uaCIKICNpbmNsdWRlICJJT1N1cmZh
Y2UuaCIKKyNpbmNsdWRlICJQcm9jZXNzSWRlbnRpdHkuaCIKICNlbmRpZgogCiAKQEAgLTQyNyw2
ICs0MjgsNyBAQCBwcm90ZWN0ZWQ6CiAgICAgc3RkOjp1bmlxdWVfcHRyPEV4dGVuc2lvbnNHTEFO
R0xFPiBtX2V4dGVuc2lvbnM7CiAKICNpZiBQTEFURk9STShDT0NPQSkKKyAgICAvLyBGSVhNRTog
TW92ZSB0aGVzZSB0byBHcmFwaGljc0NvbnRleHRHTENvY29hLgogICAgIEdyYXBoaWNzQ29udGV4
dEdMSU9TdXJmYWNlU3dhcENoYWluIG1fc3dhcENoYWluOwogICAgIEVHTERpc3BsYXkgbV9kaXNw
bGF5T2JqIHsgbnVsbHB0ciB9OwogICAgIFBsYXRmb3JtR3JhcGhpY3NDb250ZXh0R0wgbV9jb250
ZXh0T2JqIHsgbnVsbHB0ciB9OwpAQCAtNDM2LDYgKzQzOCw3IEBAIHByb3RlY3RlZDoKICAgICAv
LyBXaGVuIHByZXNlcnZlRHJhd2luZ0J1ZmZlciA9PSB0cnVlLCB0aGlzIGlzIGJsaXR0ZWQgdG8g
ZHVyaW5nIGRpc3BsYXkgcHJlcGFyZS4KICAgICBzdGQ6OnVuaXF1ZV9wdHI8SU9TdXJmYWNlPiBt
X2Rpc3BsYXlCdWZmZXJCYWNraW5nOwogICAgIHZvaWQqIG1fZGlzcGxheUJ1ZmZlclBidWZmZXIg
eyBudWxscHRyIH07CisgICAgUHJvY2Vzc0lkZW50aXR5IG1fcmVzb3VyY2VPd25lcjsKICNlbmRp
ZgogI2lmIFVTRShDT09SRElOQVRFRF9HUkFQSElDUykKICAgICBHQ0dMdWludCBtX2NvbXBvc2l0
b3JUZXh0dXJlIHsgMCB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY29jb2EvR3JhcGhpY3NDb250ZXh0R0xDb2NvYS5oIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY29jb2EvR3JhcGhpY3NDb250ZXh0R0xDb2NvYS5oCmluZGV4IDkxM2Mw
ZjRhNTJkMGQxYWUwMzliZDhlMzI2Njg3OGZhNTEyZmFmM2UuLjMwODk4MDA3ZWYyZmY2NjkyNjlh
ZjY0ZjY5MTJjOTA5NjhmNzk0ZGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2NvY29hL0dyYXBoaWNzQ29udGV4dEdMQ29jb2EuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9HcmFwaGljc0NvbnRleHRHTENvY29hLmgKQEAg
LTQyLDkgKzQyLDExIEBAIGNsYXNzIEdyYXBoaWNzQ29udGV4dEdMQ1ZDb2NvYTsKIAogbmFtZXNw
YWNlIFdlYkNvcmUgewogCitjbGFzcyBQcm9jZXNzSWRlbnRpdHk7CisKIGNsYXNzIFdFQkNPUkVf
RVhQT1JUIEdyYXBoaWNzQ29udGV4dEdMQ29jb2EgOiBwdWJsaWMgR3JhcGhpY3NDb250ZXh0R0xB
TkdMRSB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZlB0cjxHcmFwaGljc0NvbnRleHRHTENvY29h
PiBjcmVhdGUoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0R0xBdHRyaWJ1dGVzJiYpOworICAgIHN0
YXRpYyBSZWZQdHI8R3JhcGhpY3NDb250ZXh0R0xDb2NvYT4gY3JlYXRlKFdlYkNvcmU6OkdyYXBo
aWNzQ29udGV4dEdMQXR0cmlidXRlcyYmLCBQcm9jZXNzSWRlbnRpdHkmJiByZXNvdXJjZU93bmVy
KTsKICAgICB+R3JhcGhpY3NDb250ZXh0R0xDb2NvYSgpOwogICAgIElPU3VyZmFjZSogZGlzcGxh
eUJ1ZmZlcigpOwogICAgIHZvaWQgbWFya0Rpc3BsYXlCdWZmZXJJblVzZSgpOwpAQCAtNzYsOSAr
NzgsOCBAQCBwdWJsaWM6CiAgICAgdm9pZCB1cGRhdGVDb250ZXh0T25EaXNwbGF5UmVjb25maWd1
cmF0aW9uKCk7CiAjZW5kaWYKIHByb3RlY3RlZDoKLSAgICBHcmFwaGljc0NvbnRleHRHTENvY29h
KFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dEdMQXR0cmlidXRlcyYmKTsKKyAgICBHcmFwaGljc0Nv
bnRleHRHTENvY29hKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dEdMQXR0cmlidXRlcyYmLCBQcm9j
ZXNzSWRlbnRpdHkmJiByZXNvdXJjZU93bmVyKTsKICAgICBib29sIGlzVmFsaWQoKSBjb25zdDsK
LQogI2lmIEVOQUJMRShWSURFTykKICAgICBzdGQ6OnVuaXF1ZV9wdHI8R3JhcGhpY3NDb250ZXh0
R0xDVkNvY29hPiBtX2N2OwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jb2NvYS9HcmFwaGljc0NvbnRleHRHTENvY29hLm1tIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvR3JhcGhpY3NDb250ZXh0R0xDb2NvYS5tbQpp
bmRleCA0ZDAxZWYzOGU5M2M0YjYxMGI3NWI5NWUwZjJkYjI1NTNlMTU1YTlkLi5iMzQ1ZDg2NDAw
N2VjMDVmOWQ0ODAzN2JjMzRkZGZjMjZmM2YwZTBkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9HcmFwaGljc0NvbnRleHRHTENvY29hLm1tCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0dyYXBoaWNzQ29udGV4dEdM
Q29jb2EubW0KQEAgLTM1LDYgKzM1LDcgQEAKICNpbXBvcnQgIkdyYXBoaWNzQ29udGV4dEdMSU9T
dXJmYWNlU3dhcENoYWluLmgiCiAjaW1wb3J0ICJHcmFwaGljc0NvbnRleHRHTE9wZW5HTE1hbmFn
ZXIuaCIKICNpbXBvcnQgIkxvZ2dpbmcuaCIKKyNpbXBvcnQgIlByb2Nlc3NJZGVudGl0eS5oIgog
I2ltcG9ydCAiUnVudGltZUFwcGxpY2F0aW9uQ2hlY2tzLmgiCiAjaW1wb3J0IDxDb3JlR3JhcGhp
Y3MvQ0dCaXRtYXBDb250ZXh0Lmg+CiAjaW1wb3J0IDxNZXRhbC9NZXRhbC5oPgpAQCAtMTkyLDE5
ICsxOTMsMjIgQEAgc3RhdGljIGJvb2wgbmVlZHNFQUdMT25NYWMoKQogfQogI2VuZGlmCiAKLVJl
ZlB0cjxHcmFwaGljc0NvbnRleHRHTENvY29hPiBHcmFwaGljc0NvbnRleHRHTENvY29hOjpjcmVh
dGUoR3JhcGhpY3NDb250ZXh0R0xBdHRyaWJ1dGVzJiYgYXR0cmlidXRlcykKK1JlZlB0cjxHcmFw
aGljc0NvbnRleHRHTENvY29hPiBHcmFwaGljc0NvbnRleHRHTENvY29hOjpjcmVhdGUoR3JhcGhp
Y3NDb250ZXh0R0xBdHRyaWJ1dGVzJiYgYXR0cmlidXRlcywgUHJvY2Vzc0lkZW50aXR5JiYgcmVz
b3VyY2VPd25lcikKIHsKLSAgICBhdXRvIGNvbnRleHQgPSBhZG9wdFJlZigqbmV3IEdyYXBoaWNz
Q29udGV4dEdMQ29jb2EoV1RGTW92ZShhdHRyaWJ1dGVzKSkpOworICAgIGF1dG8gY29udGV4dCA9
IGFkb3B0UmVmKCpuZXcgR3JhcGhpY3NDb250ZXh0R0xDb2NvYShXVEZNb3ZlKGF0dHJpYnV0ZXMp
LCBXVEZNb3ZlKHJlc291cmNlT3duZXIpKSk7CiAgICAgaWYgKCFjb250ZXh0LT5pc1ZhbGlkKCkp
CiAgICAgICAgIHJldHVybiBudWxscHRyOwogICAgIHJldHVybiBjb250ZXh0OwogfQogCi1HcmFw
aGljc0NvbnRleHRHTENvY29hOjpHcmFwaGljc0NvbnRleHRHTENvY29hKEdyYXBoaWNzQ29udGV4
dEdMQXR0cmlidXRlcyYmIGNyZWF0aW9uQXR0cmlidXRlcykKK0dyYXBoaWNzQ29udGV4dEdMQ29j
b2E6OkdyYXBoaWNzQ29udGV4dEdMQ29jb2EoR3JhcGhpY3NDb250ZXh0R0xBdHRyaWJ1dGVzJiYg
Y3JlYXRpb25BdHRyaWJ1dGVzLCBQcm9jZXNzSWRlbnRpdHkmJiByZXNvdXJjZU93bmVyKQogICAg
IDogR3JhcGhpY3NDb250ZXh0R0xBTkdMRShXVEZNb3ZlKGNyZWF0aW9uQXR0cmlidXRlcykpCiB7
CiAgICAgaWYgKCFpc1ZhbGlkKCkpCiAgICAgICAgIHJldHVybjsKKyAgICAvLyBGSVhNRTogTW92
ZSB0aGlzIHRvIGluaXRpYWxpemVyIGxpc3Qgb25jZSBtX3Jlc291cmNlT3duZXIgbW92ZXMgdG8g
R3JhcGhpY3NDb250ZXh0R0xDb2NvYS4KKyAgICBtX3Jlc291cmNlT3duZXIgPSBQcm9jZXNzSWRl
bnRpdHkgeyBXVEZNb3ZlKHJlc291cmNlT3duZXIpIH07CisKICNpZiBQTEFURk9STShNQUMpCiAg
ICAgYXV0byBhdHRyaWJ1dGVzID0gY29udGV4dEF0dHJpYnV0ZXMoKTsKICAgICBpZiAoIWF0dHJp
YnV0ZXMudXNlTWV0YWwgJiYgYXR0cmlidXRlcy5lZmZlY3RpdmVQb3dlclByZWZlcmVuY2UoKSA9
PSBHcmFwaGljc0NvbnRleHRHTFBvd2VyUHJlZmVyZW5jZTo6SGlnaFBlcmZvcm1hbmNlKQpAQCAt
NTUyLDcgKzU1Niw4IEBAIGJvb2wgR3JhcGhpY3NDb250ZXh0R0xBTkdMRTo6YWxsb2NhdGVBbmRC
aW5kRGlzcGxheUJ1ZmZlckJhY2tpbmcoKQogICAgIGF1dG8gYmFja2luZyA9IElPU3VyZmFjZTo6
Y3JlYXRlKGdldEludGVybmFsRnJhbWVidWZmZXJTaXplKCksIERlc3RpbmF0aW9uQ29sb3JTcGFj
ZTo6U1JHQigpKTsKICAgICBpZiAoIWJhY2tpbmcpCiAgICAgICAgIHJldHVybiBmYWxzZTsKLQor
ICAgIGlmIChtX3Jlc291cmNlT3duZXIpCisgICAgICAgIGJhY2tpbmctPnNldE93bmVyc2hpcElk
ZW50aXR5KG1fcmVzb3VyY2VPd25lcik7CiAgICAgYmFja2luZy0+bWlncmF0ZUNvbG9yU3BhY2VU
b1Byb3BlcnRpZXMoKTsKIAogICAgIGNvbnN0IGJvb2wgdXNpbmdBbHBoYSA9IGNvbnRleHRBdHRy
aWJ1dGVzKCkuYWxwaGE7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jb2NvYS9JT1N1cmZhY2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2NvY29hL0lPU3VyZmFjZS5oCmluZGV4IDU2NTI0NzgyMmRiYTI5Zjc2MDBiOTQwN2U2ZjRhY2I4
YzFhMDZhYWMuLjU2NTA5MmRlMDA2OGU1ODdiOGIyNTkzN2MzM2UzMWQ3MjJmNzRiYzUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0lPU3VyZmFjZS5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0lPU3VyZmFjZS5o
CkBAIC00Niw2ICs0Niw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIEdyYXBoaWNzQ29u
dGV4dDsKIGNsYXNzIEhvc3RXaW5kb3c7CiBjbGFzcyBJbWFnZUJ1ZmZlcjsKK2NsYXNzIFByb2Nl
c3NJZGVudGl0eTsKIAogZW51bSBjbGFzcyBQaXhlbEZvcm1hdCA6IHVpbnQ4X3Q7CiBlbnVtIGNs
YXNzIFZvbGF0aWxpdHlTdGF0ZSA6IHVpbnQ4X3Q7CkBAIC0xNTksOSArMTYwLDcgQEAgcHVibGlj
OgogICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyB2b2lkIGNvbnZlcnRUb0Zvcm1hdChzdGQ6OnVu
aXF1ZV9wdHI8V2ViQ29yZTo6SU9TdXJmYWNlPiYmIGluU3VyZmFjZSwgRm9ybWF0LCBGdW5jdGlv
bjx2b2lkKHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpJT1N1cmZhY2U+KT4mJik7CiAjZW5kaWYg
Ly8gSEFWRShJT1NVUkZBQ0VfQUNDRUxFUkFUT1IpCiAKLSNpZiBIQVZFKElPU1VSRkFDRV9TRVRf
T1dORVJTSElQX0lERU5USVRZKQotICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0T3duZXJzaGlw
SWRlbnRpdHkodGFza19pZF90b2tlbl90IG5ld093bmVyKTsKLSNlbmRpZgorICAgIFdFQkNPUkVf
RVhQT1JUIHZvaWQgc2V0T3duZXJzaGlwSWRlbnRpdHkoY29uc3QgUHJvY2Vzc0lkZW50aXR5JiBy
ZXNvdXJjZU93bmVyKTsKIAogICAgIHZvaWQgbWlncmF0ZUNvbG9yU3BhY2VUb1Byb3BlcnRpZXMo
KTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2Ev
SU9TdXJmYWNlLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvSU9T
dXJmYWNlLm1tCmluZGV4IDAxMTE2NWNlMTFhYmNlNjc1YzRiNDdiZjkxNWQ0YzgxZTZjZWU5OTUu
LjgxYzQ4NDY1YTA1NTAzYTQxMjk1NmU4OWJmZDMzMTkzMmQ2NTM0NjIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0lPU3VyZmFjZS5tbQorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9JT1N1cmZhY2UubW0KQEAgLTM0
LDYgKzM0LDcgQEAKICNpbXBvcnQgIkltYWdlQnVmZmVyLmgiCiAjaW1wb3J0ICJMb2dnaW5nLmgi
CiAjaW1wb3J0ICJQbGF0Zm9ybVNjcmVlbi5oIgorI2ltcG9ydCAiUHJvY2Vzc0lkZW50aXR5Lmgi
CiAjaW1wb3J0IDxwYWwvc3BpL2NnL0NvcmVHcmFwaGljc1NQSS5oPgogI2ltcG9ydCA8d3RmL0Fz
c2VydGlvbnMuaD4KICNpbXBvcnQgPHd0Zi9NYWNoU2VuZFJpZ2h0Lmg+CkBAIC00ODQsMTQgKzQ4
NSwxNyBAQCB2b2lkIElPU3VyZmFjZTo6Y29udmVydFRvRm9ybWF0KHN0ZDo6dW5pcXVlX3B0cjxJ
T1N1cmZhY2U+JiYgaW5TdXJmYWNlLCBGb3JtYXQgZgogCiAjZW5kaWYgLy8gSEFWRShJT1NVUkZB
Q0VfQUNDRUxFUkFUT1IpCiAKLSNpZiBIQVZFKElPU1VSRkFDRV9TRVRfT1dORVJTSElQX0lERU5U
SVRZKQotdm9pZCBJT1N1cmZhY2U6OnNldE93bmVyc2hpcElkZW50aXR5KHRhc2tfaWRfdG9rZW5f
dCBuZXdPd25lcikKK3ZvaWQgSU9TdXJmYWNlOjpzZXRPd25lcnNoaXBJZGVudGl0eShjb25zdCBQ
cm9jZXNzSWRlbnRpdHkmIHJlc291cmNlT3duZXIpCiB7Ci0gICAgYXV0byByZXN1bHQgPSBJT1N1
cmZhY2VTZXRPd25lcnNoaXBJZGVudGl0eShtX3N1cmZhY2UuZ2V0KCksIG5ld093bmVyLCBrSU9T
dXJmYWNlTWVtb3J5TGVkZ2VyVGFnR3JhcGhpY3MsIDApOworI2lmIEhBVkUoSU9TVVJGQUNFX1NF
VF9PV05FUlNISVBfSURFTlRJVFkpICYmIEhBVkUoVEFTS19JREVOVElUWV9UT0tFTikKKyAgICB0
YXNrX2lkX3Rva2VuX3Qgb3duZXJUYXNrSWRUb2tlbiA9IHJlc291cmNlT3duZXIudGFza0lkVG9r
ZW4oKTsKKyAgICBhdXRvIHJlc3VsdCA9IElPU3VyZmFjZVNldE93bmVyc2hpcElkZW50aXR5KG1f
c3VyZmFjZS5nZXQoKSwgb3duZXJUYXNrSWRUb2tlbiwga0lPU3VyZmFjZU1lbW9yeUxlZGdlclRh
Z0dyYXBoaWNzLCAwKTsKICAgICBpZiAocmVzdWx0ICE9IGtJT1JldHVyblN1Y2Nlc3MpCi0gICAg
ICAgIFJFTEVBU0VfTE9HX0VSUk9SKElPU3VyZmFjZSwgIklPU3VyZmFjZTo6c2V0T3duZXJzaGlw
SWRlbnRpdHk6IEZhaWxlZCB0byBjbGFpbSBvd25lcnNoaXAgb2YgSU9TdXJmYWNlICVwLCBuZXdP
d25lcjogJWQsIGVycm9yOiAlZCIsIG1fc3VyZmFjZS5nZXQoKSwgKGludCluZXdPd25lciwgcmVz
dWx0KTsKLX0KKyAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoSU9TdXJmYWNlLCAiSU9TdXJmYWNl
OjpzZXRPd25lcnNoaXBJZGVudGl0eTogRmFpbGVkIHRvIGNsYWltIG93bmVyc2hpcCBvZiBJT1N1
cmZhY2UgJXAsIHRhc2sgaWQgdG9rZW46ICVkLCBlcnJvcjogJWQiLCBtX3N1cmZhY2UuZ2V0KCks
IChpbnQpb3duZXJUYXNrSWRUb2tlbiwgcmVzdWx0KTsKKyNlbHNlCisgICAgVU5VU0VEX1BBUkFN
KHJlc291cmNlT3duZXIpOwogI2VuZGlmCit9CiAKIHZvaWQgSU9TdXJmYWNlOjptaWdyYXRlQ29s
b3JTcGFjZVRvUHJvcGVydGllcygpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jb2NvYS9XZWJQcm9jZXNzR3JhcGhpY3NDb250ZXh0R0xDb2NvYS5tbSBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1dlYlByb2Nlc3NHcmFwaGlj
c0NvbnRleHRHTENvY29hLm1tCmluZGV4IDMxMzg1OGI4ZjU3ZGFiOGQxMGE2YWI2MjgxN2U4NzU0
MGVmMzgwODMuLjdlZTRkMmU4ZGEzNjQ1YTAxM2JjMmM0YWEwOWE1Yzg5NTY5ZTRkNWQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1dlYlByb2Nlc3NH
cmFwaGljc0NvbnRleHRHTENvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2NvY29hL1dlYlByb2Nlc3NHcmFwaGljc0NvbnRleHRHTENvY29hLm1tCkBAIC0zMCw2
ICszMCw3IEBACiAjaW1wb3J0ICJHcmFwaGljc0NvbnRleHRHTENvY29hLmgiIC8vIE5PTElOVAog
I2ltcG9ydCAiR3JhcGhpY3NDb250ZXh0R0xPcGVuR0xNYW5hZ2VyLmgiCiAjaW1wb3J0ICJQbGF0
Zm9ybUNBTGF5ZXIuaCIKKyNpbXBvcnQgIlByb2Nlc3NJZGVudGl0eS5oIgogCiAjaWYgUExBVEZP
Uk0oTUFDKQogI2ltcG9ydCAiRGlzcGxheUNvbmZpZ3VyYXRpb25Nb25pdG9yLmgiCkBAIC0xMTMs
NyArMTE0LDcgQEAgcHJpdmF0ZToKIH07CiAKIFdlYlByb2Nlc3NHcmFwaGljc0NvbnRleHRHTENv
Y29hOjpXZWJQcm9jZXNzR3JhcGhpY3NDb250ZXh0R0xDb2NvYShHcmFwaGljc0NvbnRleHRHTEF0
dHJpYnV0ZXMmJiBhdHRyaWJ1dGVzKQotICAgIDogR3JhcGhpY3NDb250ZXh0R0xDb2NvYShXVEZN
b3ZlKGF0dHJpYnV0ZXMpKQorICAgIDogR3JhcGhpY3NDb250ZXh0R0xDb2NvYShXVEZNb3ZlKGF0
dHJpYnV0ZXMpLCBQcm9jZXNzSWRlbnRpdHkgeyB9KQogICAgICwgbV9sYXllckNvbnRlbnRzRGlz
cGxheURlbGVnYXRlKERpc3BsYXlCdWZmZXJEaXNwbGF5RGVsZWdhdGU6OmNyZWF0ZSghYXR0cmli
dXRlcy5hbHBoYSwgYXR0cmlidXRlcy5kZXZpY2VQaXhlbFJhdGlvKSkKIHsKICNpZiBQTEFURk9S
TShNQUMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvR1BVQ29ubmVjdGlv
blRvV2ViUHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvR1BVQ29ubmVjdGlv
blRvV2ViUHJvY2Vzcy5jcHAKaW5kZXggOTJjM2NjOTdiNzY2NjQ2ZTA2ODQwMjgyYjEwZThkZjA1
MjZiNjBjZS4uOGQ1YWRlMzdiZDNkMTFhZGY5ZTBiYmRkMjRjMjM0ZDFlYzRlZjc0MSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3Mu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9uVG9XZWJQcm9j
ZXNzLmNwcApAQCAtMjA3LDEyICsyMDcsMTEgQEAgcHJpdmF0ZToKICAgICAgICAgbV9wcm9jZXNz
LnN0YXJ0Q2FwdHVyaW5nQXVkaW8oKTsKICAgICB9CiAjZW5kaWYKLSNpZiBIQVZFKElPU1VSRkFD
RV9TRVRfT1dORVJTSElQX0lERU5USVRZKQotICAgIHN0ZDo6b3B0aW9uYWw8dGFza19pZF90b2tl
bl90PiB3ZWJQcm9jZXNzSWRlbnRpdHlUb2tlbigpIGNvbnN0IGZpbmFsCisKKyAgICBjb25zdCBQ
cm9jZXNzSWRlbnRpdHkmIHJlc291cmNlT3duZXIoKSBjb25zdCBmaW5hbAogICAgIHsKLSAgICAg
ICAgcmV0dXJuIG1fcHJvY2Vzcy53ZWJQcm9jZXNzSWRlbnRpdHlUb2tlbigpOworICAgICAgICBy
ZXR1cm4gbV9wcm9jZXNzLndlYlByb2Nlc3NJZGVudGl0eSgpOwogICAgIH0KLSNlbmRpZgogCiAg
ICAgR1BVQ29ubmVjdGlvblRvV2ViUHJvY2VzcyYgbV9wcm9jZXNzOwogfTsKQEAgLTIyOCw5ICsy
MjcsNyBAQCBHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpHUFVDb25uZWN0aW9uVG9XZWJQcm9j
ZXNzKEdQVVByb2Nlc3MmIGdwdVByb2Nlc3MsIFdlYgogICAgIDogbV9jb25uZWN0aW9uKElQQzo6
Q29ubmVjdGlvbjo6Y3JlYXRlU2VydmVyQ29ubmVjdGlvbihjb25uZWN0aW9uSWRlbnRpZmllciwg
KnRoaXMpKQogICAgICwgbV9ncHVQcm9jZXNzKGdwdVByb2Nlc3MpCiAgICAgLCBtX3dlYlByb2Nl
c3NJZGVudGlmaWVyKHdlYlByb2Nlc3NJZGVudGlmaWVyKQotI2lmIEhBVkUoVEFTS19JREVOVElU
WV9UT0tFTikKLSAgICAsIG1fd2ViUHJvY2Vzc0lkZW50aXR5VG9rZW4oV1RGTW92ZShwYXJhbWV0
ZXJzLndlYlByb2Nlc3NJZGVudGl0eVRva2VuKSkKLSNlbmRpZgorICAgICwgbV93ZWJQcm9jZXNz
SWRlbnRpdHkoV1RGTW92ZShwYXJhbWV0ZXJzLndlYlByb2Nlc3NJZGVudGl0eUhhbmRsZSkpCiAg
ICAgLCBtX3JlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5KG1ha2VVbmlxdWVSZWY8UmVtb3Rl
TWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHk+KCp0aGlzKSkKICAgICAsIG1fc2Vzc2lvbklEKHNlc3Np
b25JRCkKICNpZiBQTEFURk9STShDT0NPQSkgJiYgVVNFKExJQldFQlJUQykKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmggYi9T
b3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oCmluZGV4
IGUzOTIzZGI1NzM0ODFjOGU2OWE5YTc2MTI2MzI3Mzc3MDlkZDk3ZmEuLmI0NTkwN2YyNTQzOGUz
ZDdiODhmNDc0NmNjNDgwOGVmNGY0MjdjZmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BV
UHJvY2Vzcy9HUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmgKKysrIGIvU291cmNlL1dlYktpdC9H
UFVQcm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaApAQCAtNDEsNiArNDEsNyBAQAog
I2luY2x1ZGUgPFdlYkNvcmUvTm93UGxheWluZ01hbmFnZXIuaD4KICNpbmNsdWRlIDxXZWJDb3Jl
L1BhZ2VJZGVudGlmaWVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Qcm9jZXNzSWRlbnRpZmllci5o
PgorI2luY2x1ZGUgPFdlYkNvcmUvUHJvY2Vzc0lkZW50aXR5Lmg+CiAjaW5jbHVkZSA8cGFsL1Nl
c3Npb25JRC5oPgogI2luY2x1ZGUgPHd0Zi9Mb2dnZXIuaD4KICNpbmNsdWRlIDx3dGYvTWFjaFNl
bmRSaWdodC5oPgpAQCAtMTU1LDEwICsxNTYsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBkaXNwYXRj
aERpc3BsYXlXYXNSZWNvbmZpZ3VyZWRGb3JUZXN0aW5nKCkgeyBkaXNwYXRjaERpc3BsYXlXYXNS
ZWNvbmZpZ3VyZWQoKTsgfTsKICNlbmRpZgogCi0jaWYgSEFWRShUQVNLX0lERU5USVRZX1RPS0VO
KQotICAgIHRhc2tfaWRfdG9rZW5fdCB3ZWJQcm9jZXNzSWRlbnRpdHlUb2tlbigpIGNvbnN0IHsg
cmV0dXJuIHN0YXRpY19jYXN0PHRhc2tfaWRfdG9rZW5fdD4obV93ZWJQcm9jZXNzSWRlbnRpdHlU
b2tlbi5zZW5kUmlnaHQoKSk7IH0KLSNlbmRpZgotCisgICAgY29uc3QgV2ViQ29yZTo6UHJvY2Vz
c0lkZW50aXR5JiB3ZWJQcm9jZXNzSWRlbnRpdHkoKSBjb25zdCB7IHJldHVybiBtX3dlYlByb2Nl
c3NJZGVudGl0eTsgfQogI2lmIEVOQUJMRShFTkNSWVBURURfTUVESUEpCiAgICAgUmVtb3RlQ0RN
RmFjdG9yeVByb3h5JiBjZG1GYWN0b3J5UHJveHkoKTsKICNlbmRpZgpAQCAtMjgzLDkgKzI4MSw3
IEBAIHByaXZhdGU6CiAgICAgSVBDOjpNZXNzYWdlUmVjZWl2ZXJNYXAgbV9tZXNzYWdlUmVjZWl2
ZXJNYXA7CiAgICAgUmVmPEdQVVByb2Nlc3M+IG1fZ3B1UHJvY2VzczsKICAgICBjb25zdCBXZWJD
b3JlOjpQcm9jZXNzSWRlbnRpZmllciBtX3dlYlByb2Nlc3NJZGVudGlmaWVyOwotI2lmIEhBVkUo
VEFTS19JREVOVElUWV9UT0tFTikKLSAgICBNYWNoU2VuZFJpZ2h0IG1fd2ViUHJvY2Vzc0lkZW50
aXR5VG9rZW47Ci0jZW5kaWYKKyAgICBjb25zdCBXZWJDb3JlOjpQcm9jZXNzSWRlbnRpdHkgbV93
ZWJQcm9jZXNzSWRlbnRpdHk7CiAjaWYgRU5BQkxFKFdFQl9BVURJTykKICAgICBzdGQ6OnVuaXF1
ZV9wdHI8UmVtb3RlQXVkaW9EZXN0aW5hdGlvbk1hbmFnZXI+IG1fcmVtb3RlQXVkaW9EZXN0aW5h
dGlvbk1hbmFnZXI7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vz
cy9ncmFwaGljcy9SZW1vdGVHcmFwaGljc0NvbnRleHRHTENvY29hLmNwcCBiL1NvdXJjZS9XZWJL
aXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVHcmFwaGljc0NvbnRleHRHTENvY29hLmNwcApp
bmRleCBiOGFhOWZkNTUxYTg4YTZjM2MwYTYyYTcyOTQwZmEzZDJjNDQxNjczLi42YzkwNjFiNWUy
ZWZlNWIyZmNkYzBmODUwMThmY2MxYjk2NDdlZTA2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xDb2NvYS5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZUdyYXBoaWNzQ29udGV4
dEdMQ29jb2EuY3BwCkBAIC0yOSw2ICsyOSw3IEBACiAjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKSAm
JiBFTkFCTEUoV0VCR0wpICYmIFBMQVRGT1JNKENPQ09BKQogCiAjaW5jbHVkZSAiR1BVQ29ubmVj
dGlvblRvV2ViUHJvY2Vzcy5oIgorI2luY2x1ZGUgPFdlYkNvcmUvUHJvY2Vzc0lkZW50aXR5Lmg+
CiAjaW5jbHVkZSA8d3RmL01hY2hTZW5kUmlnaHQuaD4KIAogbmFtZXNwYWNlIFdlYktpdCB7CkBA
IC00NSw5ICs0Niw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHBsYXRmb3JtV29ya1F1ZXVlSW5pdGlh
bGl6ZShXZWJDb3JlOjpHcmFwaGljc0NvbnRleHRHTEF0dHJpYnV0ZXMmJikgZmluYWw7CiAgICAg
dm9pZCBwcmVwYXJlRm9yRGlzcGxheShDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdURjo6TWFjaFNl
bmRSaWdodCYmKT4mJikgZmluYWw7CiBwcml2YXRlOgotI2lmIEhBVkUoSU9TVVJGQUNFX1NFVF9P
V05FUlNISVBfSURFTlRJVFkpCi0gICAgdGFza19pZF90b2tlbl90IG1fd2ViUHJvY2Vzc0lkZW50
aXR5VG9rZW47Ci0jZW5kaWYKKyAgICBjb25zdCBQcm9jZXNzSWRlbnRpdHkgbV9yZXNvdXJjZU93
bmVyOwogfTsKIAogfQpAQCAtNjEsOSArNjAsNyBAQCBSZWY8UmVtb3RlR3JhcGhpY3NDb250ZXh0
R0w+IFJlbW90ZUdyYXBoaWNzQ29udGV4dEdMOjpjcmVhdGUoR1BVQ29ubmVjdGlvblRvV2ViUAog
CiBSZW1vdGVHcmFwaGljc0NvbnRleHRHTENvY29hOjpSZW1vdGVHcmFwaGljc0NvbnRleHRHTENv
Y29hKEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MmIGdwdUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3Ms
IEdyYXBoaWNzQ29udGV4dEdMSWRlbnRpZmllciBncmFwaGljc0NvbnRleHRHTElkZW50aWZpZXIs
IFJlbW90ZVJlbmRlcmluZ0JhY2tlbmQmIHJlbmRlcmluZ0JhY2tlbmQsIElQQzo6U3RyZWFtQ29u
bmVjdGlvbkJ1ZmZlciYmIHN0cmVhbSkKICAgICA6IFJlbW90ZUdyYXBoaWNzQ29udGV4dEdMKGdw
dUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MsIGdyYXBoaWNzQ29udGV4dEdMSWRlbnRpZmllciwgcmVu
ZGVyaW5nQmFja2VuZCwgV1RGTW92ZShzdHJlYW0pKQotI2lmIEhBVkUoSU9TVVJGQUNFX1NFVF9P
V05FUlNISVBfSURFTlRJVFkpCi0gICAgLCBtX3dlYlByb2Nlc3NJZGVudGl0eVRva2VuKGdwdUNv
bm5lY3Rpb25Ub1dlYlByb2Nlc3Mud2ViUHJvY2Vzc0lkZW50aXR5VG9rZW4oKSkKLSNlbmRpZgor
ICAgICwgbV9yZXNvdXJjZU93bmVyKGdwdUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3Mud2ViUHJvY2Vz
c0lkZW50aXR5KCkpCiB7CiAKIH0KQEAgLTcxLDcgKzY4LDcgQEAgUmVtb3RlR3JhcGhpY3NDb250
ZXh0R0xDb2NvYTo6UmVtb3RlR3JhcGhpY3NDb250ZXh0R0xDb2NvYShHUFVDb25uZWN0aW9uVG9X
ZWJQcm8KIHZvaWQgUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xDb2NvYTo6cGxhdGZvcm1Xb3JrUXVl
dWVJbml0aWFsaXplKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dEdMQXR0cmlidXRlcyYmIGF0dHJp
YnV0ZXMpCiB7CiAgICAgYXNzZXJ0SXNDdXJyZW50KG1fc3RyZWFtVGhyZWFkKTsKLSAgICBtX2Nv
bnRleHQgPSBHcmFwaGljc0NvbnRleHRHTENvY29hOjpjcmVhdGUoV1RGTW92ZShhdHRyaWJ1dGVz
KSk7CisgICAgbV9jb250ZXh0ID0gR3JhcGhpY3NDb250ZXh0R0xDb2NvYTo6Y3JlYXRlKFdURk1v
dmUoYXR0cmlidXRlcyksIFByb2Nlc3NJZGVudGl0eSB7IG1fcmVzb3VyY2VPd25lciB9KTsKIH0K
IAogdm9pZCBSZW1vdGVHcmFwaGljc0NvbnRleHRHTENvY29hOjpwcmVwYXJlRm9yRGlzcGxheShD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKFdURjo6TWFjaFNlbmRSaWdodCYmKT4mJiBjb21wbGV0aW9u
SGFuZGxlcikKQEAgLTgyLDEwICs3OSw2IEBAIHZvaWQgUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xD
b2NvYTo6cHJlcGFyZUZvckRpc3BsYXkoQ29tcGxldGlvbkhhbmRsZXI8dm9pZChXVEY6CiAgICAg
SU9TdXJmYWNlKiBkaXNwbGF5QnVmZmVyID0gbV9jb250ZXh0LT5kaXNwbGF5QnVmZmVyKCk7CiAg
ICAgaWYgKGRpc3BsYXlCdWZmZXIpIHsKICAgICAgICAgbV9jb250ZXh0LT5tYXJrRGlzcGxheUJ1
ZmZlckluVXNlKCk7Ci0jaWYgSEFWRShJT1NVUkZBQ0VfU0VUX09XTkVSU0hJUF9JREVOVElUWSkK
LSAgICAgICAgLy8gTWFyayB0aGUgSU9TdXJmYWNlIGFzIGJlaW5nIG93bmVkIGJ5IHRoZSBXZWJQ
cm9jZXNzIGV2ZW4gdGhvdWdoIGl0IHdhcyBjb25zdHJ1Y3RlZCBieSB0aGUgR1BVUHJvY2VzcyBz
byB0aGF0IEpldHNhbSBrbm93cyB3aGljaCBwcm9jZXNzIHRvIGtpbGwuCi0gICAgICAgIGRpc3Bs
YXlCdWZmZXItPnNldE93bmVyc2hpcElkZW50aXR5KG1fd2ViUHJvY2Vzc0lkZW50aXR5VG9rZW4p
OwotI2VuZGlmCiAgICAgICAgIHNlbmRSaWdodCA9IGRpc3BsYXlCdWZmZXItPmNyZWF0ZVNlbmRS
aWdodCgpOwogICAgIH0KICAgICBjb21wbGV0aW9uSGFuZGxlcihXVEZNb3ZlKHNlbmRSaWdodCkp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZUlt
YWdlQnVmZmVyLmggYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlSW1h
Z2VCdWZmZXIuaAppbmRleCBhM2Q0OTRmZThiZjZhMTk2NDdlZjE5MGM5ZGI0MDQyYWVjZTY3MjIw
Li4zNWI0NTI3MGI0NTg0MjQ4MDk4MTA0MmRjNzU1MzRmYmFiYWViZjJkIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlSW1hZ2VCdWZmZXIuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlSW1hZ2VCdWZmZXIuaApA
QCAtNjksMTMgKzY5LDExIEBAIHB1YmxpYzoKICAgICAgICAgICAgIGNvbnRleHQoKS5yZXN0b3Jl
KCk7CiAgICAgfQogCi0jaWYgSEFWRShJT1NVUkZBQ0VfU0VUX09XTkVSU0hJUF9JREVOVElUWSkK
LSAgICB2b2lkIHNldFByb2Nlc3NPd25lcnNoaXAodGFza19pZF90b2tlbl90IG5ld093bmVyKQor
ICAgIHZvaWQgc2V0T3duZXJzaGlwSWRlbnRpdHkoY29uc3QgV2ViQ29yZTo6UHJvY2Vzc0lkZW50
aXR5JiByZXNvdXJjZU93bmVyKQogICAgIHsKICAgICAgICAgaWYgKG1fYmFja2VuZCkKLSAgICAg
ICAgICAgIG1fYmFja2VuZC0+c2V0UHJvY2Vzc093bmVyc2hpcChuZXdPd25lcik7CisgICAgICAg
ICAgICBtX2JhY2tlbmQtPnNldE93bmVyc2hpcElkZW50aXR5KHJlc291cmNlT3duZXIpOwogICAg
IH0KLSNlbmRpZgogCiBwcml2YXRlOgogICAgIGZyaWVuZCBjbGFzcyBSZW1vdGVSZW5kZXJpbmdC
YWNrZW5kOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1Jl
bW90ZVJlbmRlcmluZ0JhY2tlbmQuY3BwIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBo
aWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQuY3BwCmluZGV4IGIwZGY1MzQzNDQ5NzgyZmE0Y2Uz
MWJjZjMzMmQ4ZmM1YmNjOGIxMDIuLjdjYTRkZTcyODE5YzMxMzdiOGNhYmYwMzlhODllZmEyYmEw
Zjc1YjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1v
dGVSZW5kZXJpbmdCYWNrZW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3Jh
cGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5jcHAKQEAgLTg1LDYgKzg1LDcgQEAgUmVtb3Rl
UmVuZGVyaW5nQmFja2VuZDo6UmVtb3RlUmVuZGVyaW5nQmFja2VuZChHUFVDb25uZWN0aW9uVG9X
ZWJQcm9jZXNzJiBncHVDb24KICAgICAsIG1fc3RyZWFtQ29ubmVjdGlvbihJUEM6OlN0cmVhbVNl
cnZlckNvbm5lY3Rpb246OmNyZWF0ZShncHVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNvbm5lY3Rp
b24oKSwgV1RGTW92ZShzdHJlYW1CdWZmZXIpLCBtX3dvcmtRdWV1ZS5nZXQoKSkpCiAgICAgLCBt
X3JlbW90ZVJlc291cmNlQ2FjaGUoZ3B1Q29ubmVjdGlvblRvV2ViUHJvY2Vzcy53ZWJQcm9jZXNz
SWRlbnRpZmllcigpKQogICAgICwgbV9ncHVDb25uZWN0aW9uVG9XZWJQcm9jZXNzKGdwdUNvbm5l
Y3Rpb25Ub1dlYlByb2Nlc3MpCisgICAgLCBtX3Jlc291cmNlT3duZXIoZ3B1Q29ubmVjdGlvblRv
V2ViUHJvY2Vzcy53ZWJQcm9jZXNzSWRlbnRpdHkoKSkKICAgICAsIG1fcmVuZGVyaW5nQmFja2Vu
ZElkZW50aWZpZXIoY3JlYXRpb25QYXJhbWV0ZXJzLmlkZW50aWZpZXIpCiB7CiAgICAgQVNTRVJU
KFJ1bkxvb3A6OmlzTWFpbigpKTsKQEAgLTE3NCwxMCArMTc1LDkgQEAgdm9pZCBSZW1vdGVSZW5k
ZXJpbmdCYWNrZW5kOjpjcmVhdGVJbWFnZUJ1ZmZlcldpdGhRdWFsaWZpZWRJZGVudGlmaWVyKGNv
bnN0IEZsb2EKIAogICAgIGlmIChyZW5kZXJpbmdNb2RlID09IFJlbmRlcmluZ01vZGU6OkFjY2Vs
ZXJhdGVkKSB7CiAgICAgICAgIGlmIChhdXRvIGFjY2VsZXJhdGVkSW1hZ2VCdWZmZXIgPSBBY2Nl
bGVyYXRlZFJlbW90ZUltYWdlQnVmZmVyOjpjcmVhdGUobG9naWNhbFNpemUsIHJlc29sdXRpb25T
Y2FsZSwgY29sb3JTcGFjZSwgcGl4ZWxGb3JtYXQsICp0aGlzLCBpbWFnZUJ1ZmZlclJlc291cmNl
SWRlbnRpZmllcikpIHsKLSNpZiBIQVZFKElPU1VSRkFDRV9TRVRfT1dORVJTSElQX0lERU5USVRZ
KQogICAgICAgICAgICAgLy8gTWFyayB0aGUgSU9TdXJmYWNlIGFzIGJlaW5nIG93bmVkIGJ5IHRo
ZSBXZWJQcm9jZXNzIGV2ZW4gdGhvdWdoIGl0IHdhcyBjb25zdHJ1Y3RlZCBieSB0aGUgR1BVUHJv
Y2VzcyBzbyB0aGF0IEpldHNhbSBrbm93cyB3aGljaCBwcm9jZXNzIHRvIGtpbGwuCi0gICAgICAg
ICAgICBhY2NlbGVyYXRlZEltYWdlQnVmZmVyLT5zZXRQcm9jZXNzT3duZXJzaGlwKG1fZ3B1Q29u
bmVjdGlvblRvV2ViUHJvY2Vzcy0+d2ViUHJvY2Vzc0lkZW50aXR5VG9rZW4oKSk7Ci0jZW5kaWYK
KyAgICAgICAgICAgIGlmIChtX3Jlc291cmNlT3duZXIpCisgICAgICAgICAgICAgICAgYWNjZWxl
cmF0ZWRJbWFnZUJ1ZmZlci0+c2V0T3duZXJzaGlwSWRlbnRpdHkobV9yZXNvdXJjZU93bmVyKTsK
ICAgICAgICAgICAgIGltYWdlQnVmZmVyID0gV1RGTW92ZShhY2NlbGVyYXRlZEltYWdlQnVmZmVy
KTsKICAgICAgICAgfQogICAgIH0KQEAgLTI2OSw2ICsyNjksNyBAQCB2b2lkIFJlbW90ZVJlbmRl
cmluZ0JhY2tlbmQ6OmdldERhdGFVUkxGb3JJbWFnZUJ1ZmZlcldpdGhRdWFsaWZpZWRJZGVudGlm
aWVyKGNvbgogICAgIFN0cmluZyB1cmxTdHJpbmc7CiAgICAgaWYgKGF1dG8gaW1hZ2VCdWZmZXIg
PSBtX3JlbW90ZVJlc291cmNlQ2FjaGUuY2FjaGVkSW1hZ2VCdWZmZXIocmVuZGVyaW5nUmVzb3Vy
Y2VJZGVudGlmaWVyKSkKICAgICAgICAgdXJsU3RyaW5nID0gaW1hZ2VCdWZmZXItPnRvRGF0YVVS
TChtaW1lVHlwZSwgcXVhbGl0eSwgcHJlc2VydmVSZXNvbHV0aW9uKTsKKyAgICBXVEZMb2dBbHdh
eXMoIkRBVEFVUkw6JXMiLCB1cmxTdHJpbmcudXRmOCgpLmRhdGEoKSk7CiAgICAgY29tcGxldGlv
bkhhbmRsZXIoV1RGTW92ZSh1cmxTdHJpbmcpKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQuaCBiL1NvdXJj
ZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmgKaW5k
ZXggZTM1NzE1ZGQxN2ZlZTY0MzQ1YjIyNjJkNjhjZWJlYTRkNzRhYjk5Ni4uOWEyNmM0MjRiOTEy
MTEwMTE4YjQzNjE4NGRlMzBiOGQyOGRkMTUyMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9H
UFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5oCkBAIC00
Niw2ICs0Niw3IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9EaXNwbGF5TGlzdEl0ZW1zLmg+CiAjaW5j
bHVkZSA8V2ViQ29yZS9EaXNwbGF5TGlzdFJlcGxheWVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Q
cm9jZXNzSWRlbnRpZmllci5oPgorI2luY2x1ZGUgPFdlYkNvcmUvUHJvY2Vzc0lkZW50aXR5Lmg+
CiAjaW5jbHVkZSA8d3RmL1dlYWtQdHIuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtMTMz
LDYgKzEzNCw3IEBAIHByaXZhdGU6CiAgICAgUmVmPElQQzo6U3RyZWFtU2VydmVyQ29ubmVjdGlv
bj4gbV9zdHJlYW1Db25uZWN0aW9uOwogICAgIFJlbW90ZVJlc291cmNlQ2FjaGUgbV9yZW1vdGVS
ZXNvdXJjZUNhY2hlOwogICAgIFJlZjxHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzPiBtX2dwdUNv
bm5lY3Rpb25Ub1dlYlByb2Nlc3M7CisgICAgV2ViQ29yZTo6UHJvY2Vzc0lkZW50aXR5IG1fcmVz
b3VyY2VPd25lcjsKICAgICBSZW5kZXJpbmdCYWNrZW5kSWRlbnRpZmllciBtX3JlbmRlcmluZ0Jh
Y2tlbmRJZGVudGlmaWVyOwogICAgIElQQzo6U2VtYXBob3JlIG1fZ2V0UGl4ZWxCdWZmZXJTZW1h
cGhvcmU7CiAgICAgUmVmUHRyPFNoYXJlZE1lbW9yeT4gbV9nZXRQaXhlbEJ1ZmZlclNoYXJlZE1l
bW9yeTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy93ZWJydGMvTGliV2Vi
UlRDQ29kZWNzUHJveHkubW0gYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mvd2VicnRjL0xpYldl
YlJUQ0NvZGVjc1Byb3h5Lm1tCmluZGV4IDEzM2UyNmU0NzRlMWQzMTkxNjNlNTU3MTk5MmQwYzBj
NzE5ZGRlMTQuLjdkNTc5MjIxMDAzMTljMDAxMzEzN2Q4YTJkZTM5NTQ3NGM4NTM4ZTAgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy93ZWJydGMvTGliV2ViUlRDQ29kZWNzUHJv
eHkubW0KKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL3dlYnJ0Yy9MaWJXZWJSVENDb2Rl
Y3NQcm94eS5tbQpAQCAtNzcsMTQgKzc3LDExIEBAIHZvaWQgTGliV2ViUlRDQ29kZWNzUHJveHk6
OmNsb3NlKCkKIHN0YXRpYyBGdW5jdGlvbjx2b2lkKENWUGl4ZWxCdWZmZXJSZWYgcGl4ZWxCdWZm
ZXIsIHVpbnQzMl90IHRpbWVTdGFtcE5zLCB1aW50MzJfdCB0aW1lU3RhbXApPiBjcmVhdGVEZWNv
ZGVyQ2FsbGJhY2soUlRDRGVjb2RlcklkZW50aWZpZXIgaWRlbnRpZmllciwgR1BVQ29ubmVjdGlv
blRvV2ViUHJvY2VzcyYgZ3B1Q29ubmVjdGlvblRvV2ViUHJvY2VzcykKIHsKICAgICByZXR1cm4g
W2Nvbm5lY3Rpb24gPSBSZWYgeyBncHVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNvbm5lY3Rpb24o
KSB9LAotI2lmIEhBVkUoSU9TVVJGQUNFX1NFVF9PV05FUlNISVBfSURFTlRJVFkpCi0gICAgICAg
IHRva2VuID0gZ3B1Q29ubmVjdGlvblRvV2ViUHJvY2Vzcy53ZWJQcm9jZXNzSWRlbnRpdHlUb2tl
bigpLAotI2VuZGlmCisgICAgICAgIHJlc291cmNlT3duZXIgPSBncHVDb25uZWN0aW9uVG9XZWJQ
cm9jZXNzLndlYlByb2Nlc3NJZGVudGl0eSgpLAogICAgICAgICBpZGVudGlmaWVyXShDVlBpeGVs
QnVmZmVyUmVmIHBpeGVsQnVmZmVyLCB1aW50MzJfdCB0aW1lU3RhbXBOcywgdWludDMyX3QgdGlt
ZVN0YW1wKSB7CiAgICAgICAgIGlmIChhdXRvIHNhbXBsZSA9IFdlYkNvcmU6OlJlbW90ZVZpZGVv
U2FtcGxlOjpjcmVhdGUocGl4ZWxCdWZmZXIsIE1lZGlhVGltZSh0aW1lU3RhbXBOcywgMSkpKSB7
Ci0jaWYgSEFWRShJT1NVUkZBQ0VfU0VUX09XTkVSU0hJUF9JREVOVElUWSkKLSAgICAgICAgICAg
IHNhbXBsZS0+c2V0T3duZXJzaGlwSWRlbnRpdHkodG9rZW4pOwotI2VuZGlmCisgICAgICAgICAg
ICBpZiAocmVzb3VyY2VPd25lcikKKyAgICAgICAgICAgICAgICBzYW1wbGUtPnNldE93bmVyc2hp
cElkZW50aXR5KHJlc291cmNlT3duZXIpOwogICAgICAgICAgICAgY29ubmVjdGlvbi0+c2VuZChN
ZXNzYWdlczo6TGliV2ViUlRDQ29kZWNzOjpDb21wbGV0ZWREZWNvZGluZyB7IGlkZW50aWZpZXIs
IHRpbWVTdGFtcCwgKnNhbXBsZSB9LCAwKTsKICAgICAgICAgfQogICAgIH07CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9HUFVQcm9jZXNzQ29ubmVjdGlvblBhcmFtZXRlcnMuaCBi
L1NvdXJjZS9XZWJLaXQvU2hhcmVkL0dQVVByb2Nlc3NDb25uZWN0aW9uUGFyYW1ldGVycy5oCmlu
ZGV4IDA5NmZkMGUzYmE2YzdlYzExNzc4Zjk5NGZmZDVlODY3N2UyMGZjNTYuLjdkM2VmYWNkNjU3
NDM5NTVhMTE2MDYzYTg3ZjBmZDc5NzA2ZGM2ZjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
U2hhcmVkL0dQVVByb2Nlc3NDb25uZWN0aW9uUGFyYW1ldGVycy5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvU2hhcmVkL0dQVVByb2Nlc3NDb25uZWN0aW9uUGFyYW1ldGVycy5oCkBAIC0yOCwxNCArMjgs
MTMgQEAKICNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCiAKICNpbmNsdWRlICJXZWJDb3JlQXJndW1l
bnRDb2RlcnMuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL1Byb2Nlc3NJZGVudGl0eS5oPgogI2luY2x1
ZGUgPHd0Zi9NYWNoU2VuZFJpZ2h0Lmg+CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCiBzdHJ1Y3Qg
R1BVUHJvY2Vzc0Nvbm5lY3Rpb25QYXJhbWV0ZXJzIHsKLSNpZiBIQVZFKFRBU0tfSURFTlRJVFlf
VE9LRU4pCi0gICAgTWFjaFNlbmRSaWdodCB3ZWJQcm9jZXNzSWRlbnRpdHlUb2tlbjsKLSNlbmRp
ZgorICAgIFdlYkNvcmU6OlByb2Nlc3NJZGVudGl0eTo6SGFuZGxlIHdlYlByb2Nlc3NJZGVudGl0
eUhhbmRsZTsKICAgICBWZWN0b3I8U3RyaW5nPiBvdmVycmlkZUxhbmd1YWdlczsKICNpZiBFTkFC
TEUoSVBDX1RFU1RJTkdfQVBJKQogICAgIGJvb2wgaWdub3JlSW52YWxpZE1lc3NhZ2VGb3JUZXN0
aW5nIHsgZmFsc2UgfTsKQEAgLTQ2LDkgKzQ1LDcgQEAgc3RydWN0IEdQVVByb2Nlc3NDb25uZWN0
aW9uUGFyYW1ldGVycyB7CiAKICAgICB2b2lkIGVuY29kZShJUEM6OkVuY29kZXImIGVuY29kZXIp
IGNvbnN0CiAgICAgewotI2lmIEhBVkUoVEFTS19JREVOVElUWV9UT0tFTikKLSAgICAgICAgZW5j
b2RlciA8PCB3ZWJQcm9jZXNzSWRlbnRpdHlUb2tlbjsKLSNlbmRpZgorICAgICAgICBlbmNvZGVy
IDw8IHdlYlByb2Nlc3NJZGVudGl0eUhhbmRsZTsKICAgICAgICAgZW5jb2RlciA8PCBvdmVycmlk
ZUxhbmd1YWdlczsKICNpZiBFTkFCTEUoSVBDX1RFU1RJTkdfQVBJKQogICAgICAgICBlbmNvZGVy
IDw8IGlnbm9yZUludmFsaWRNZXNzYWdlRm9yVGVzdGluZzsKQEAgLTYwLDEyICs1NywxMCBAQCBz
dHJ1Y3QgR1BVUHJvY2Vzc0Nvbm5lY3Rpb25QYXJhbWV0ZXJzIHsKIAogICAgIHN0YXRpYyBzdGQ6
Om9wdGlvbmFsPEdQVVByb2Nlc3NDb25uZWN0aW9uUGFyYW1ldGVycz4gZGVjb2RlKElQQzo6RGVj
b2RlciYgZGVjb2RlcikKICAgICB7Ci0jaWYgSEFWRShUQVNLX0lERU5USVRZX1RPS0VOKQotICAg
ICAgICBzdGQ6Om9wdGlvbmFsPE1hY2hTZW5kUmlnaHQ+IHdlYlByb2Nlc3NJZGVudGl0eVRva2Vu
OwotICAgICAgICBkZWNvZGVyID4+IHdlYlByb2Nlc3NJZGVudGl0eVRva2VuOwotICAgICAgICBp
ZiAoIXdlYlByb2Nlc3NJZGVudGl0eVRva2VuKQorICAgICAgICBzdGQ6Om9wdGlvbmFsPFdlYkNv
cmU6OlByb2Nlc3NJZGVudGl0eTo6SGFuZGxlPiB3ZWJQcm9jZXNzSWRlbnRpdHlIYW5kbGU7Cisg
ICAgICAgIGRlY29kZXIgPj4gd2ViUHJvY2Vzc0lkZW50aXR5SGFuZGxlOworICAgICAgICBpZiAo
IXdlYlByb2Nlc3NJZGVudGl0eUhhbmRsZSkKICAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxv
cHQ7Ci0jZW5kaWYKIAogICAgICAgICBzdGQ6Om9wdGlvbmFsPFZlY3RvcjxTdHJpbmc+PiBvdmVy
cmlkZUxhbmd1YWdlczsKICAgICAgICAgZGVjb2RlciA+PiBvdmVycmlkZUxhbmd1YWdlczsKQEAg
LTg2LDkgKzgxLDcgQEAgc3RydWN0IEdQVVByb2Nlc3NDb25uZWN0aW9uUGFyYW1ldGVycyB7CiAj
ZW5kaWYKIAogICAgICAgICByZXR1cm4gR1BVUHJvY2Vzc0Nvbm5lY3Rpb25QYXJhbWV0ZXJzIHsK
LSNpZiBIQVZFKFRBU0tfSURFTlRJVFlfVE9LRU4pCi0gICAgICAgICAgICBXVEZNb3ZlKCp3ZWJQ
cm9jZXNzSWRlbnRpdHlUb2tlbiksCi0jZW5kaWYKKyAgICAgICAgICAgIFdURk1vdmUoKndlYlBy
b2Nlc3NJZGVudGl0eUhhbmRsZSksCiAgICAgICAgICAgICBXVEZNb3ZlKCpvdmVycmlkZUxhbmd1
YWdlcyksCiAjaWYgRU5BQkxFKElQQ19URVNUSU5HX0FQSSkKICAgICAgICAgICAgICppZ25vcmVJ
bnZhbGlkTWVzc2FnZUZvclRlc3RpbmcsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5LmNwcCBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkuY3BwCmluZGV4
IDJiYjNiY2RiNTgyZGM4NTNmMjA4M2VjZTQ0NzE5M2M0NDE5M2VjOTIuLmJkYWY5OGQxMGRkMzU4
YmRkN2JmNzkzM2FiZDE0ODY1MDdjY2VkODYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkuY3Bw
CkBAIC01Nyw5ICs1NywxMCBAQCBjbGFzcyBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OjpT
b3VyY2VQcm94eQogICAgICwgcHJpdmF0ZSBSZWFsdGltZU1lZGlhU291cmNlOjpWaWRlb1NhbXBs
ZU9ic2VydmVyIHsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKLSAgICBT
b3VyY2VQcm94eShSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciBpZCwgUmVmPElQQzo6Q29u
bmVjdGlvbj4mJiBjb25uZWN0aW9uLCBSZWY8UmVhbHRpbWVNZWRpYVNvdXJjZT4mJiBzb3VyY2Up
CisgICAgU291cmNlUHJveHkoUmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgaWQsIFJlZjxJ
UEM6OkNvbm5lY3Rpb24+JiYgY29ubmVjdGlvbiwgUHJvY2Vzc0lkZW50aXR5JiYgcmVzb3VyY2VP
d25lciwgUmVmPFJlYWx0aW1lTWVkaWFTb3VyY2U+JiYgc291cmNlKQogICAgICAgICA6IG1faWQo
aWQpCiAgICAgICAgICwgbV9jb25uZWN0aW9uKFdURk1vdmUoY29ubmVjdGlvbikpCisgICAgICAg
ICwgbV9yZXNvdXJjZU93bmVyKFdURk1vdmUocmVzb3VyY2VPd25lcikpCiAgICAgICAgICwgbV9z
b3VyY2UoV1RGTW92ZShzb3VyY2UpKQogICAgIHsKICAgICAgICAgbV9zb3VyY2UtPmFkZE9ic2Vy
dmVyKCp0aGlzKTsKQEAgLTEyNSw5ICsxMjYsNiBAQCBwdWJsaWM6CiAgICAgfQogCiAgICAgdm9p
ZCBzZXRTaG91bGRBcHBseVJvdGF0aW9uKGJvb2wgc2hvdWxkQXBwbHlSb3RhdGlvbikgeyBtX3No
b3VsZEFwcGx5Um90YXRpb24gPSB0cnVlOyB9Ci0jaWYgSEFWRShJT1NVUkZBQ0VfU0VUX09XTkVS
U0hJUF9JREVOVElUWSkKLSAgICB2b2lkIHNldFdlYlByb2Nlc3NJZGVudGl0eVRva2VuKHN0ZDo6
b3B0aW9uYWw8dGFza19pZF90b2tlbl90PiB0b2tlbikgeyBtX3dlYlByb2Nlc3NJZGVudGl0eVRv
a2VuID0gdG9rZW47fQotI2VuZGlmCiAKIHByaXZhdGU6CiAgICAgdm9pZCBzb3VyY2VTdG9wcGVk
KCkgZmluYWwgewpAQCAtMTg4LDEwICsxODYsOCBAQCBwcml2YXRlOgogICAgICAgICB9IGVsc2UK
ICAgICAgICAgICAgIHJlbW90ZVNhbXBsZSA9IFJlbW90ZVZpZGVvU2FtcGxlOjpjcmVhdGUoc2Ft
cGxlKTsKICAgICAgICAgaWYgKHJlbW90ZVNhbXBsZSkgewotI2lmIEhBVkUoSU9TVVJGQUNFX1NF
VF9PV05FUlNISVBfSURFTlRJVFkpCi0gICAgICAgICAgICBpZiAobV93ZWJQcm9jZXNzSWRlbnRp
dHlUb2tlbikKLSAgICAgICAgICAgICAgICByZW1vdGVTYW1wbGUtPnNldE93bmVyc2hpcElkZW50
aXR5KCptX3dlYlByb2Nlc3NJZGVudGl0eVRva2VuKTsKLSNlbmRpZgorICAgICAgICAgICAgaWYg
KG1fcmVzb3VyY2VPd25lcikKKyAgICAgICAgICAgICAgICByZW1vdGVTYW1wbGUtPnNldE93bmVy
c2hpcElkZW50aXR5KG1fcmVzb3VyY2VPd25lcik7CiAgICAgICAgICAgICBtX2Nvbm5lY3Rpb24t
PnNlbmQoTWVzc2FnZXM6OlJlbW90ZUNhcHR1cmVTYW1wbGVNYW5hZ2VyOjpWaWRlb1NhbXBsZUF2
YWlsYWJsZShtX2lkLCBXVEZNb3ZlKCpyZW1vdGVTYW1wbGUpLCBtZXRhZGF0YSksIDApOwogICAg
ICAgICB9CiAgICAgfQpAQCAtMjQ0LDYgKzI0MCw3IEBAIHByaXZhdGU6CiAgICAgUmVhbHRpbWVN
ZWRpYVNvdXJjZUlkZW50aWZpZXIgbV9pZDsKICAgICBXZWFrUHRyPFBsYXRmb3JtTWVkaWFTZXNz
aW9uTWFuYWdlcj4gbV9zZXNzaW9uTWFuYWdlcjsKICAgICBSZWY8SVBDOjpDb25uZWN0aW9uPiBt
X2Nvbm5lY3Rpb247CisgICAgUHJvY2Vzc0lkZW50aXR5IG1fcmVzb3VyY2VPd25lcjsKICAgICBS
ZWY8UmVhbHRpbWVNZWRpYVNvdXJjZT4gbV9zb3VyY2U7CiAgICAgc3RkOjp1bmlxdWVfcHRyPENB
UmluZ0J1ZmZlcj4gbV9yaW5nQnVmZmVyOwogICAgIENBQXVkaW9TdHJlYW1EZXNjcmlwdGlvbiBt
X2Rlc2NyaXB0aW9uIHsgfTsKQEAgLTI1Nyw5ICsyNTQsNiBAQCBwcml2YXRlOgogICAgIHNpemVf
dCBtX2ZyYW1lQ2h1bmtTaXplIHsgMCB9OwogICAgIE1lZGlhVGltZSBtX3N0YXJ0VGltZTsKICAg
ICBib29sIG1fc2hvdWxkUmVzZXQgeyBmYWxzZSB9OwotI2lmIEhBVkUoVEFTS19JREVOVElUWV9U
T0tFTikKLSAgICBzdGQ6Om9wdGlvbmFsPHRhc2tfaWRfdG9rZW5fdD4gbV93ZWJQcm9jZXNzSWRl
bnRpdHlUb2tlbjsKLSNlbmRpZgogfTsKIAogVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6
VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eShVbmlxdWVSZWY8Q29ubmVjdGlvblByb3h5PiYm
IGNvbm5lY3Rpb25Qcm94eSkKQEAgLTMyMywxMiArMzE3LDcgQEAgdm9pZCBVc2VyTWVkaWFDYXB0
dXJlTWFuYWdlclByb3h5OjpjcmVhdGVNZWRpYVNvdXJjZUZvckNhcHR1cmVEZXZpY2VXaXRoQ29u
c3RyYWkKICAgICAgICAgfQogCiAgICAgICAgIEFTU0VSVCghbV9wcm94aWVzLmNvbnRhaW5zKGlk
KSk7Ci0gICAgICAgIGF1dG8gcHJveHkgPSBtYWtlVW5pcXVlPFNvdXJjZVByb3h5PihpZCwgbV9j
b25uZWN0aW9uUHJveHktPmNvbm5lY3Rpb24oKSwgV1RGTW92ZShzb3VyY2UpKTsKLSNpZiBIQVZF
KElPU1VSRkFDRV9TRVRfT1dORVJTSElQX0lERU5USVRZKQotICAgICAgICBpZiAoZGV2aWNlLnR5
cGUoKSAhPSBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpNaWNyb3Bob25lKQot
ICAgICAgICAgICAgcHJveHktPnNldFdlYlByb2Nlc3NJZGVudGl0eVRva2VuKG1fY29ubmVjdGlv
blByb3h5LT53ZWJQcm9jZXNzSWRlbnRpdHlUb2tlbigpKTsKLSNlbmRpZgotCisgICAgICAgIGF1
dG8gcHJveHkgPSBtYWtlVW5pcXVlPFNvdXJjZVByb3h5PihpZCwgbV9jb25uZWN0aW9uUHJveHkt
PmNvbm5lY3Rpb24oKSwgUHJvY2Vzc0lkZW50aXR5IHsgbV9jb25uZWN0aW9uUHJveHktPnJlc291
cmNlT3duZXIoKSB9LCBXVEZNb3ZlKHNvdXJjZSkpOwogICAgICAgICBtX3Byb3hpZXMuYWRkKGlk
LCBXVEZNb3ZlKHByb3h5KSk7CiAgICAgfSBlbHNlCiAgICAgICAgIGludmFsaWRDb25zdHJhaW50
cyA9IFdURk1vdmUoc291cmNlT3JFcnJvci5lcnJvck1lc3NhZ2UpOwpAQCAtMzk0LDcgKzM4Myw3
IEBAIHZvaWQgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6Y2xvbmUoUmVhbHRpbWVNZWRp
YVNvdXJjZUlkZW50aWZpZXIgY2xvbmVkSUQsCiAgICAgTUVTU0FHRV9DSEVDSyhtX3Byb3hpZXMu
Y29udGFpbnMoY2xvbmVkSUQpKTsKICAgICBNRVNTQUdFX0NIRUNLKCFtX3Byb3hpZXMuY29udGFp
bnMobmV3U291cmNlSUQpKTsKICAgICBpZiAoYXV0byogcHJveHkgPSBtX3Byb3hpZXMuZ2V0KGNs
b25lZElEKSkKLSAgICAgICAgbV9wcm94aWVzLmFkZChuZXdTb3VyY2VJRCwgbWFrZVVuaXF1ZTxT
b3VyY2VQcm94eT4obmV3U291cmNlSUQsIG1fY29ubmVjdGlvblByb3h5LT5jb25uZWN0aW9uKCks
IHByb3h5LT5zb3VyY2UoKS5jbG9uZSgpKSk7CisgICAgICAgIG1fcHJveGllcy5hZGQobmV3U291
cmNlSUQsIG1ha2VVbmlxdWU8U291cmNlUHJveHk+KG5ld1NvdXJjZUlELCBtX2Nvbm5lY3Rpb25Q
cm94eS0+Y29ubmVjdGlvbigpLCBQcm9jZXNzSWRlbnRpdHkgeyBtX2Nvbm5lY3Rpb25Qcm94eS0+
cmVzb3VyY2VPd25lcigpIH0sIHByb3h5LT5zb3VyY2UoKS5jbG9uZSgpKSk7CiB9CiAKIHZvaWQg
VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6cmVxdWVzdFRvRW5kKFJlYWx0aW1lTWVkaWFT
b3VyY2VJZGVudGlmaWVyIHNvdXJjZUlEKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5oIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5oCmluZGV4IGEw
OTQyOWRmNjc5MWU5MGY4NGE5MzQ5NWZiMGVkMjg1Y2NlZDBkMmMuLmZhODI5YzdjNDkwM2Q1MWI1
N2E3ODk3MTc4NDczZjgwY2JmMjg2ZGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5LmgKQEAgLTMy
LDYgKzMyLDcgQEAKICNpbmNsdWRlICJVc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5oIgogI2luY2x1
ZGUgPFdlYkNvcmUvQ2FwdHVyZURldmljZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvT3JpZW50YXRp
b25Ob3RpZmllci5oPgorI2luY2x1ZGUgPFdlYkNvcmUvUHJvY2Vzc0lkZW50aXR5Lmg+CiAjaW5j
bHVkZSA8V2ViQ29yZS9SZWFsdGltZU1lZGlhU291cmNlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9S
ZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllci5oPgogI2luY2x1ZGUgPHBhbC9zcGkvY29jb2Ev
VENDU1BJLmg+CkBAIC01OSw5ICs2MCw3IEBAIHB1YmxpYzoKICAgICAgICAgdmlydHVhbCBib29s
IHdpbGxTdGFydENhcHR1cmUoV2ViQ29yZTo6Q2FwdHVyZURldmljZTo6RGV2aWNlVHlwZSkgY29u
c3QgPSAwOwogICAgICAgICB2aXJ0dWFsIExvZ2dlciYgbG9nZ2VyKCkgPSAwOwogICAgICAgICB2
aXJ0dWFsIGJvb2wgc2V0Q2FwdHVyZUF0dHJpYnV0aW9uU3RyaW5nKCkgeyByZXR1cm4gdHJ1ZTsg
fQotI2lmIEhBVkUoSU9TVVJGQUNFX1NFVF9PV05FUlNISVBfSURFTlRJVFkpCi0gICAgICAgIHZp
cnR1YWwgc3RkOjpvcHRpb25hbDx0YXNrX2lkX3Rva2VuX3Q+IHdlYlByb2Nlc3NJZGVudGl0eVRv
a2VuKCkgY29uc3QgeyByZXR1cm4geyB9OyB9OwotI2VuZGlmCisgICAgICAgIHZpcnR1YWwgY29u
c3QgV2ViQ29yZTo6UHJvY2Vzc0lkZW50aXR5JiByZXNvdXJjZU93bmVyKCkgY29uc3QgPSAwOwog
I2lmIEVOQUJMRShBUFBfUFJJVkFDWV9SRVBPUlQpCiAgICAgICAgIHZpcnR1YWwgdm9pZCBzZXRU
Q0NJZGVudGl0eSgpIHsgfQogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJv
Y2Vzc1Byb3h5LmNwcAppbmRleCA2NjU2ZTJkZGRkM2I0MmNjNzA3ZThhMjhiNWRhOWFkYTcwODA5
OWZiLi42M2U2ZTEzN2ZmYWMwYTI4OTExMDVjODllMDc2YTEwMWU0YWZlNmUxIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAKQEAgLTIxNiw2ICsyMTYsMTMg
QEAgcHJpdmF0ZToKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQogCisgICAgY29uc3QgV2Vi
Q29yZTo6UHJvY2Vzc0lkZW50aXR5JiByZXNvdXJjZU93bmVyKCkgY29uc3QgZmluYWwKKyAgICB7
CisgICAgICAgIC8vIEZJWE1FOiBzaG91bGQgb2J0YWluIFdlYkNvbnRlbnQgcHJvY2VzcyBpZGVu
dGl0eSBmcm9tIFdlYkNvbnRlbnQuCisgICAgICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxXZWJD
b3JlOjpQcm9jZXNzSWRlbnRpdHk+IGR1bW15OworICAgICAgICByZXR1cm4gZHVtbXkuZ2V0KCk7
CisgICAgfQorCiAgICAgUmVmUHRyPExvZ2dlcj4gbV9sb2dnZXI7CiAgICAgV2ViUHJvY2Vzc1By
b3h5JiBtX3Byb2Nlc3M7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L0dQVS9ncmFwaGljcy9JbWFnZUJ1ZmZlclNoYXJlYWJsZUJpdG1hcEJhY2tlbmQuaCBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvSW1hZ2VCdWZmZXJTaGFyZWFibGVCaXRt
YXBCYWNrZW5kLmgKaW5kZXggMTg0N2ZhNmZiZGU0MDZlZDZhNmFkMDYwNDk4Yjg4NWM1ZTM2YmIz
ZC4uYzViMjZjNDBlNzQ2MDMyMmRmYWZlMjliMGNlNmUzNjQxNjdlNzJhYyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9JbWFnZUJ1ZmZlclNoYXJlYWJs
ZUJpdG1hcEJhY2tlbmQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBo
aWNzL0ltYWdlQnVmZmVyU2hhcmVhYmxlQml0bWFwQmFja2VuZC5oCkBAIC0zMSw2ICszMSwxMCBA
QAogI2luY2x1ZGUgPFdlYkNvcmUvUGxhdGZvcm1JbWFnZUJ1ZmZlckJhY2tlbmQuaD4KICNpbmNs
dWRlIDx3dGYvSXNvTWFsbG9jLmg+CiAKK25hbWVzcGFjZSBXZWJDb3JlIHsKK2NsYXNzIFByb2Nl
c3NJZGVudGl0eTsKK30KKwogbmFtZXNwYWNlIFdlYktpdCB7CiAKIGNsYXNzIFNoYXJlYWJsZUJp
dG1hcDsKQEAgLTYxLDYgKzY1LDcgQEAgcHVibGljOgogICAgIHN0ZDo6b3B0aW9uYWw8V2ViQ29y
ZTo6UGl4ZWxCdWZmZXI+IGdldFBpeGVsQnVmZmVyKGNvbnN0IFdlYkNvcmU6OlBpeGVsQnVmZmVy
Rm9ybWF0JiBvdXRwdXRGb3JtYXQsIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmKSBjb25zdCBvdmVy
cmlkZTsKICAgICB2b2lkIHB1dFBpeGVsQnVmZmVyKGNvbnN0IFdlYkNvcmU6OlBpeGVsQnVmZmVy
JiwgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYgc3JjUmVjdCwgY29uc3QgV2ViQ29yZTo6SW50UG9p
bnQmIGRlc3RQb2ludCwgV2ViQ29yZTo6QWxwaGFQcmVtdWx0aXBsaWNhdGlvbiBkZXN0Rm9ybWF0
KSBvdmVycmlkZTsKIAorICAgIHZvaWQgc2V0T3duZXJzaGlwSWRlbnRpdHkoY29uc3QgV2ViQ29y
ZTo6UHJvY2Vzc0lkZW50aXR5JikgeyB9CiBwcml2YXRlOgogICAgIHVuc2lnbmVkIGJ5dGVzUGVy
Um93KCkgY29uc3Qgb3ZlcnJpZGU7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9HUFUvZ3JhcGhpY3MvY29jb2EvSW1hZ2VCdWZmZXJTaGFyZWFibGVNYXBwZWRJT1N1cmZh
Y2VCYWNrZW5kLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvY29j
b2EvSW1hZ2VCdWZmZXJTaGFyZWFibGVNYXBwZWRJT1N1cmZhY2VCYWNrZW5kLmNwcAppbmRleCBh
ZmQyYzdjMDVjZmFmZDEzOTkzNDRmNWM2YTc2NGU0ODgwZDI4YmRhLi5iMjlmYzU3Mjc4OTUwMzBk
NDJmZGI0MjdiMTU4NDQ3ZjBkNzEwNjNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvR1BVL2dyYXBoaWNzL2NvY29hL0ltYWdlQnVmZmVyU2hhcmVhYmxlTWFwcGVkSU9TdXJm
YWNlQmFja2VuZC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGlj
cy9jb2NvYS9JbWFnZUJ1ZmZlclNoYXJlYWJsZU1hcHBlZElPU3VyZmFjZUJhY2tlbmQuY3BwCkBA
IC03NywxMyArNzcsMTEgQEAgSW1hZ2VCdWZmZXJCYWNrZW5kSGFuZGxlIEltYWdlQnVmZmVyU2hh
cmVhYmxlTWFwcGVkSU9TdXJmYWNlQmFja2VuZDo6Y3JlYXRlSW1hZ2UKICAgICByZXR1cm4gSW1h
Z2VCdWZmZXJCYWNrZW5kSGFuZGxlKG1fc3VyZmFjZS0+Y3JlYXRlU2VuZFJpZ2h0KCkpOwogfQog
Ci0jaWYgSEFWRShJT1NVUkZBQ0VfU0VUX09XTkVSU0hJUF9JREVOVElUWSkKLXZvaWQgSW1hZ2VC
dWZmZXJTaGFyZWFibGVNYXBwZWRJT1N1cmZhY2VCYWNrZW5kOjpzZXRQcm9jZXNzT3duZXJzaGlw
KHRhc2tfaWRfdG9rZW5fdCBwcm9jZXNzSWRlbnRpdHlUb2tlbikKK3ZvaWQgSW1hZ2VCdWZmZXJT
aGFyZWFibGVNYXBwZWRJT1N1cmZhY2VCYWNrZW5kOjpzZXRPd25lcnNoaXBJZGVudGl0eShjb25z
dCBXZWJDb3JlOjpQcm9jZXNzSWRlbnRpdHkmIHJlc291cmNlT3duZXIpCiB7CiAgICAgQVNTRVJU
KHN1cmZhY2UoKSk7Ci0gICAgc3VyZmFjZSgpLT5zZXRPd25lcnNoaXBJZGVudGl0eShwcm9jZXNz
SWRlbnRpdHlUb2tlbik7CisgICAgc3VyZmFjZSgpLT5zZXRPd25lcnNoaXBJZGVudGl0eShyZXNv
dXJjZU93bmVyKTsKIH0KLSNlbmRpZgogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9jb2NvYS9JbWFnZUJ1
ZmZlclNoYXJlYWJsZU1hcHBlZElPU3VyZmFjZUJhY2tlbmQuaCBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9HUFUvZ3JhcGhpY3MvY29jb2EvSW1hZ2VCdWZmZXJTaGFyZWFibGVNYXBwZWRJT1N1
cmZhY2VCYWNrZW5kLmgKaW5kZXggZTE0YTU0MGVjZGRkNDcxMTkwOGE3YzE3MWMzYTI1ZWJmZDgw
OGRiZS4uM2E1MWZiNzMzOGNhMWQyMmNkYmRiMzMwMDY4NjJiOGFmOGRmZjE5ZiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9jb2NvYS9JbWFnZUJ1ZmZl
clNoYXJlYWJsZU1hcHBlZElPU3VyZmFjZUJhY2tlbmQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvR1BVL2dyYXBoaWNzL2NvY29hL0ltYWdlQnVmZmVyU2hhcmVhYmxlTWFwcGVkSU9T
dXJmYWNlQmFja2VuZC5oCkBAIC0zMSw2ICszMSwxMCBAQAogI2luY2x1ZGUgPFdlYkNvcmUvSW1h
Z2VCdWZmZXJJT1N1cmZhY2VCYWNrZW5kLmg+CiAjaW5jbHVkZSA8d3RmL0lzb01hbGxvYy5oPgog
CituYW1lc3BhY2UgV2ViQ29yZSB7CitjbGFzcyBQcm9jZXNzSWRlbnRpdHk7Cit9CisKIG5hbWVz
cGFjZSBXZWJLaXQgewogCiBjbGFzcyBTaGFyZWFibGVCaXRtYXA7CkBAIC00Niw5ICs1MCw3IEBA
IHB1YmxpYzoKIAogICAgIEltYWdlQnVmZmVyQmFja2VuZEhhbmRsZSBjcmVhdGVJbWFnZUJ1ZmZl
ckJhY2tlbmRIYW5kbGUoKSBjb25zdDsKIAotI2lmIEhBVkUoSU9TVVJGQUNFX1NFVF9PV05FUlNI
SVBfSURFTlRJVFkpCi0gICAgdm9pZCBzZXRQcm9jZXNzT3duZXJzaGlwKHRhc2tfaWRfdG9rZW5f
dCk7Ci0jZW5kaWYKKyAgICB2b2lkIHNldE93bmVyc2hpcElkZW50aXR5KGNvbnN0IFdlYkNvcmU6
OlByb2Nlc3NJZGVudGl0eSYgcmVzb3VyY2VPd25lcik7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBX
ZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9XZWJQcm9j
ZXNzQ29jb2EubW0gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvV2ViUHJvY2Vzc0Nv
Y29hLm1tCmluZGV4IDZhN2ZjNzNlOWExYzAxZWRlODhjYWM1OTI2MTM5YjM5MTY0YmY3YjguLjVk
YmRlMzcwMGUzMDBkZTlmODgzZjdjNjg5ODczNjNjODFlYjdmNDEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9XZWJQcm9jZXNzQ29jb2EubW0KKysrIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1dlYlByb2Nlc3NDb2NvYS5tbQpAQCAtMTIyNiwxNCAr
MTIyNiw3IEBAIHZvaWQgV2ViUHJvY2Vzczo6d2FpdEZvclBlbmRpbmdQYXN0ZWJvYXJkV3JpdGVz
VG9GaW5pc2goY29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJkCiAjaWYgRU5BQkxFKEdQVV9QUk9DRVNT
KQogdm9pZCBXZWJQcm9jZXNzOjpwbGF0Zm9ybUluaXRpYWxpemVHUFVQcm9jZXNzQ29ubmVjdGlv
blBhcmFtZXRlcnMoR1BVUHJvY2Vzc0Nvbm5lY3Rpb25QYXJhbWV0ZXJzJiBwYXJhbWV0ZXJzKQog
ewotI2lmIEhBVkUoVEFTS19JREVOVElUWV9UT0tFTikKLSAgICB0YXNrX2lkX3Rva2VuX3QgaWRl
bnRpdHlUb2tlbjsKLSAgICBrZXJuX3JldHVybl90IGtyID0gdGFza19jcmVhdGVfaWRlbnRpdHlf
dG9rZW4obWFjaF90YXNrX3NlbGYoKSwgJmlkZW50aXR5VG9rZW4pOwotICAgIGlmIChrciA9PSBL
RVJOX1NVQ0NFU1MpCi0gICAgICAgIHBhcmFtZXRlcnMud2ViUHJvY2Vzc0lkZW50aXR5VG9rZW4g
PSBNYWNoU2VuZFJpZ2h0OjphZG9wdChpZGVudGl0eVRva2VuKTsKLSAgICBlbHNlCi0gICAgICAg
IFJFTEVBU0VfTE9HX0VSUk9SKFByb2Nlc3MsICJDYWxsIHRvIHRhc2tfY3JlYXRlX2lkZW50aXR5
X3Rva2VuKCkgZmFpbGVkOiAle3ByaXZhdGV9cyAoJXgpIiwgbWFjaF9lcnJvcl9zdHJpbmcoa3Ip
LCBrcik7Ci0jZW5kaWYKKyAgICBwYXJhbWV0ZXJzLndlYlByb2Nlc3NJZGVudGl0eUhhbmRsZSA9
IFByb2Nlc3NJZGVudGl0eTo6aGFuZGxlRm9yQ3VycmVudFByb2Nlc3MoKTsKIAogICAgIHBhcmFt
ZXRlcnMub3ZlcnJpZGVMYW5ndWFnZXMgPSB1c2VyUHJlZmVycmVkTGFuZ3VhZ2VzT3ZlcnJpZGUo
KTsKIH0KZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRl
eCBhM2RmZDNkMGVjMTE4NDA2NWU4OGNkNzAzMmYyNjE5MGE3YTZiNGFlLi5iNDAxYmJlNmRkMjM4
NjUwNTk2NWIzMThmMWExNDYwZDEyZTU4MGU1IDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cK
KysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMjEtMTItMDggIEtpbW1v
IEtpbm51bmVuICA8a2tpbm51bmVuQGFwcGxlLmNvbT4KKworICAgICAgICBJT1N1cmZhY2UgbWVt
b3J5IGF0dHJpYnV0aW9uIGlzIGhhcmQgdG8gdXNlIGluIGNvbnN0cnVjdG9ycworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMyOTg4CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVXBkYXRlIGNvbnN0cnVjdG9y
IGNhbGxpbmcgYmFzZSBjbGFzcyBjb25zdHJ1Y3Rvci4KKworICAgICAgICAqIFRlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViQ29yZS9jb2NvYS9UZXN0R3JhcGhpY3NDb250ZXh0R0xPcGVuR0xDb2NvYS5t
bToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OldlYkNvcmU6OlRlc3RlZEdyYXBoaWNzQ29udGV4
dEdMT3BlbkdMOjpjcmVhdGUpOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6V2ViQ29yZTo6VGVz
dGVkR3JhcGhpY3NDb250ZXh0R0xPcGVuR0w6OlRlc3RlZEdyYXBoaWNzQ29udGV4dEdMT3BlbkdM
KToKKwogMjAyMS0xMi0wNyAgQWRpdHlhIEtlZXJ0aGkgIDxha2VlcnRoaUBhcHBsZS5jb20+CiAK
ICAgICAgICAgW2lPU10gQWRkIGluaXRpYWwgc3VwcG9ydCBmb3IgZmluZC1pbi1wYWdlIFNQSQpk
aWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL2NvY29hL1Rlc3RH
cmFwaGljc0NvbnRleHRHTENvY29hLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJD
b3JlL2NvY29hL1Rlc3RHcmFwaGljc0NvbnRleHRHTENvY29hLm1tCmluZGV4IGUxOTExZGY2YzA5
M2UzOGM4ZDQyZmExNzllZmQ1ZTc3MmVhNjVkYzQuLmQwZjBhNjIzMWRiYzEyZTY5MTkwMDEzYTg5
Y2Y3M2Q2ODU5MWVhNTYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
Q29yZS9jb2NvYS9UZXN0R3JhcGhpY3NDb250ZXh0R0xDb2NvYS5tbQorKysgYi9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvY29jb2EvVGVzdEdyYXBoaWNzQ29udGV4dEdMQ29jb2Eu
bW0KQEAgLTMyLDYgKzMyLDcgQEAKICNpbXBvcnQgPE1ldGFsL01ldGFsLmg+CiAjaW1wb3J0IDxX
ZWJDb3JlL0NvbG9yLmg+CiAjaW1wb3J0IDxXZWJDb3JlL0dyYXBoaWNzQ29udGV4dEdMQ29jb2Eu
aD4KKyNpbXBvcnQgPFdlYkNvcmUvUHJvY2Vzc0lkZW50aXR5Lmg+CiAjaW1wb3J0IDxvcHRpb25h
bD4KICNpbXBvcnQgPHd0Zi9IYXNoU2V0Lmg+CiAjaW1wb3J0IDx3dGYvTWVtb3J5Rm9vdHByaW50
Lmg+CkBAIC01MCw3ICs1MSw3IEBAIHB1YmxpYzoKICAgICBSZWZQdHI8V2ViQ29yZTo6R3JhcGhp
Y3NMYXllckNvbnRlbnRzRGlzcGxheURlbGVnYXRlPiBsYXllckNvbnRlbnRzRGlzcGxheURlbGVn
YXRlKCkgZmluYWwgeyByZXR1cm4gbnVsbHB0cjsgfQogcHJpdmF0ZToKICAgICBUZXN0ZWRHcmFw
aGljc0NvbnRleHRHTENvY29hKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dEdMQXR0cmlidXRlcyBh
dHRyaWJ1dGVzKQotICAgICAgICA6IFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dEdMQ29jb2EoV1RG
TW92ZShhdHRyaWJ1dGVzKSkKKyAgICAgICAgOiBXZWJDb3JlOjpHcmFwaGljc0NvbnRleHRHTENv
Y29hKFdURk1vdmUoYXR0cmlidXRlcyksIHsgfSkKICAgICB7CiAgICAgfQogfTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>446406</attachid>
            <date>2021-12-08 12:06:32 -0800</date>
            <delta_ts>2021-12-08 12:47:55 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-232988-20211208220630.patch</filename>
            <type>text/plain</type>
            <size>55710</size>
            <attacher name="Kimmo Kinnunen">kkinnunen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg2NjU4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMmNlZDhkZmUyNDIyODg1
ZWEyMjUwZGUzM2ZmMmY0NGJjM2FkYTYwOS4uYjE0NzQ0OTVmN2I4OGNhNDEyMzYxMmMwMmM1NmNi
MjRhZTkzMzMzMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUzIEBACisyMDIxLTEyLTA4ICBLaW1t
byBLaW5udW5lbiAgPGtraW5udW5lbkBhcHBsZS5jb20+CisKKyAgICAgICAgSU9TdXJmYWNlIG1l
bW9yeSBhdHRyaWJ1dGlvbiBpcyBoYXJkIHRvIHVzZSBpbiBjb25zdHJ1Y3RvcnMKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMjk4OAorICAgICAgICA8
cmRhcjovL3Byb2JsZW0vODU1NDE5MTg+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgQWRkIFdlYkNvcmU6OlByb2Nlc3NJZGVudGl0eSB0eXBlIHRoYXQg
Y2FuIGJlIHVzZWQgdG8gY29tbXVuaWNhdGUgbWVtb3J5IGF0dHJpYnV0aW9uLgorICAgICAgICBG
b3Igbm9uLUNvY29hIHBvcnRzLCB0aGlzIGlzIG51bGxwdHIuCisgICAgICAgIFRoaXMgaXMgdXNl
ZCBpbiBXZWJDb3JlIHRvIHNldCB0aGUgbWVtb3J5IGF0dHJpYnV0aW9uIG9mIElPU3VyZmFjZSBh
bmQgb2JqZWN0cworICAgICAgICB0aGF0IGhvbGQgSU9TdXJmYWNlcy4KKyAgICAgICAgVGhpcyBp
cyBpbnN0YW50aWF0ZWQgaW4gV2ViS2l0LgorICAgICAgICBDdXJyZW50bHkgdGhlIG9ubHkgdXNl
ZnVsIHdheSB0byBpbnN0YW50aWF0ZSBQcm9jZXNzSWRlbnRpdHkgaXMgYnkgcmVjZWl2aW5nCisg
ICAgICAgIHRoZSBQcm9jZXNzSWRlbnRpdHkgYXMgYSBtZXNzYWdlIGFuZCBjcmVhdGUgaXQgdGhp
cyB3YXkgZm9yIHRoZQorICAgICAgICBzZW5kZXIgcHJvY2Vzcy4KKworICAgICAgICBObyBuZXcg
dGVzdHMsIHJlZmFjdG9yLgorCisgICAgICAgICogSGVhZGVycy5jbWFrZToKKyAgICAgICAgKiBT
b3VyY2VzLnR4dDoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6
CisgICAgICAgICogcGxhdGZvcm0vTG9nZ2luZy5oOgorICAgICAgICBBZGQgV2ViQ29yZSBQcm9j
ZXNzIGxvZyB0YWcgc2luY2UgdGhlIGNvZGUgbW92ZWQgZnJvbSBXZWJLaXQgdG8gUHJvY2Vzc0lk
ZW50aXR5CisgICAgICAgIHVzZWQgdGhhdCB0YWcgdG8gbG9nLgorICAgICAgICAqIHBsYXRmb3Jt
L1Byb2Nlc3NJZGVudGl0eS5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6UHJvY2Vzc0lk
ZW50aXR5OjpQcm9jZXNzSWRlbnRpdHkpOgorICAgICAgICAoV2ViQ29yZTo6UHJvY2Vzc0lkZW50
aXR5Ojp0YXNrSWRUb2tlbiBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpQcm9jZXNzSWRlbnRp
dHk6OnNlbmRSaWdodCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpQcm9jZXNzSWRlbnRpdHk6
Om9wZXJhdG9yIGJvb2wgY29uc3QpOgorICAgICAgICAqIHBsYXRmb3JtL1Byb2Nlc3NJZGVudGl0
eS5oOiBBZGRlZC4KKyAgICAgICAgQWRkIHRoZSBQcm9jZXNzSWRlbnRpdHkgdHlwZSB0aGF0IGNh
biBiZSB1c2VkIHRvIGNvbW11bmljYXRlIG1lbW9yeSBhdHRyaWJ1dGlvbi4KKyAgICAgICAgKiBw
bGF0Zm9ybS9ncmFwaGljcy9SZW1vdGVWaWRlb1NhbXBsZS5oOgorICAgICAgICAoV2ViQ29yZTo6
UmVtb3RlVmlkZW9TYW1wbGU6OnNldE93bmVyc2hpcElkZW50aXR5KToKKyAgICAgICAgKiBwbGF0
Zm9ybS9ncmFwaGljcy9hbmdsZS9HcmFwaGljc0NvbnRleHRHTEFOR0xFLmg6CisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvR3JhcGhpY3NDb250ZXh0R0xDb2NvYS5oOgorICAgICAg
ICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0dyYXBoaWNzQ29udGV4dEdMQ29jb2EubW06Cisg
ICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHRHTENvY29hOjpjcmVhdGUpOgorICAgICAg
ICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0R0xDb2NvYTo6R3JhcGhpY3NDb250ZXh0R0xDb2Nv
YSk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHRHTEFOR0xFOjphbGxvY2F0ZUFu
ZEJpbmREaXNwbGF5QnVmZmVyQmFja2luZyk6CisgICAgICAgIEFkZCBhbiBleGFtcGxlIHVzZSB3
aGVyZSB0aGUgY29uc3RydWN0b3IgdGFrZXMgdGhlIG1lbW9yeSBhdHRyaWJ1dGlvbiB0b2tlbi4K
KyAgICAgICAgVGhpcyBtYXkgYmUgbmVlZGVkIGluIHRoZSBmdXR1cmUgd2hlbiB0aGUgdG9rZW4g
aXMgdXNlZCBhcyBhIHBhcmFtZXRlciBpbgorICAgICAgICB0aGUgQU5HTEUgY29udGV4dCBjcmVh
dGlvbi4KKyAgICAgICAgVXNlIHRoZSB0b2tlbiBpbiBjcmVhdGluZyB0aGUgSU9TdXJmYWNlLiBU
aGlzIGZpeGVzIGEgYnVnIHdoZXJlIFdlYkdMCisgICAgICAgIGJhY2sgYnVmZmVycyB3b3VsZCBu
b3QgYmUgYXR0cmlidXRlZCB1bnRpbCB0aGV5IHdlcmUgc2VudCB0byBXUC4KKyAgICAgICAgKiBw
bGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9JT1N1cmZhY2UuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9jb2NvYS9JT1N1cmZhY2UubW06CisgICAgICAgIChXZWJDb3JlOjpJT1N1cmZhY2U6
OnNldE93bmVyc2hpcElkZW50aXR5KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jb2Nv
YS9XZWJQcm9jZXNzR3JhcGhpY3NDb250ZXh0R0xDb2NvYS5tbToKKwogMjAyMS0xMi0wOCAgQW50
dGkgS29pdmlzdG8gIDxhbnR0aUBhcHBsZS5jb20+CiAKICAgICAgICAgW0NTUyBDYXNjYWRlIExh
eWVyc10gVXBkYXRlIENTU09NIHRvIHRoZSBzcGVjCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGQ4Y2ZhNGVmOGE1NGJh
ZWM5OWI2YTI3OWZiMTdlNWMyNTVjYTIwYjAuLmYxZDUyZGM0YTkwZDVmMGFhNDg2Y2U2ZjNiMGJk
N2I2YWY5ZWQ0ZTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTggQEAKKzIwMjEtMTItMDggIEtpbW1v
IEtpbm51bmVuICA8a2tpbm51bmVuQGFwcGxlLmNvbT4KKworICAgICAgICBJT1N1cmZhY2UgbWVt
b3J5IGF0dHJpYnV0aW9uIGlzIGhhcmQgdG8gdXNlIGluIGNvbnN0cnVjdG9ycworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMyOTg4CisgICAgICAgIDxy
ZGFyOi8vcHJvYmxlbS84NTU0MTkxOD4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBSZW1vdmUgaWZkZWZzIGFuZCBkaXJlY3QgdXNlIG9mIHRhc2tfaWRf
dG9rZW5fdC4KKyAgICAgICAgSW5zdGVhZCwgdXNlIFdlYkNvcmU6OlByb2Nlc3NJZGVudGlmaWVy
LiBUaGlzIHdheSB0aGUKKyAgICAgICAgY3Jvc3MtcGxhdGZvcm0gY29kZSBpcyBlYXNpZXIgdG8g
YXV0aG9yLgorCisgICAgICAgICogR1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNz
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6R1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6R1BVQ29u
bmVjdGlvblRvV2ViUHJvY2Vzcyk6CisgICAgICAgICogR1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9u
VG9XZWJQcm9jZXNzLmg6CisgICAgICAgIChXZWJLaXQ6OkdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nl
c3M6OndlYlByb2Nlc3NJZGVudGl0eSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OkdQVUNvbm5l
Y3Rpb25Ub1dlYlByb2Nlc3M6OndlYlByb2Nlc3NJZGVudGl0eVRva2VuIGNvbnN0KTogRGVsZXRl
ZC4KKyAgICAgICAgKiBHUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZUdyYXBoaWNzQ29udGV4dEdM
Q29jb2EuY3BwOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVHcmFwaGljc0NvbnRleHRHTENvY29h
OjpSZW1vdGVHcmFwaGljc0NvbnRleHRHTENvY29hKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3Rl
R3JhcGhpY3NDb250ZXh0R0xDb2NvYTo6cGxhdGZvcm1Xb3JrUXVldWVJbml0aWFsaXplKToKKyAg
ICAgICAgKFdlYktpdDo6UmVtb3RlR3JhcGhpY3NDb250ZXh0R0xDb2NvYTo6cHJlcGFyZUZvckRp
c3BsYXkpOgorICAgICAgICAqIEdQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlSW1hZ2VCdWZmZXIu
aDoKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlSW1hZ2VCdWZmZXI6OnNldE93bmVyc2hpcElkZW50
aXR5KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlSW1hZ2VCdWZmZXI6OnNldFByb2Nlc3NPd25l
cnNoaXApOiBEZWxldGVkLgorICAgICAgICAqIEdQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVu
ZGVyaW5nQmFja2VuZC5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlbmRlcmluZ0JhY2tl
bmQ6OlJlbW90ZVJlbmRlcmluZ0JhY2tlbmQpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZW5k
ZXJpbmdCYWNrZW5kOjpjcmVhdGVJbWFnZUJ1ZmZlcldpdGhRdWFsaWZpZWRJZGVudGlmaWVyKToK
KyAgICAgICAgKiBHUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQuaDoK
KyAgICAgICAgKiBHUFVQcm9jZXNzL3dlYnJ0Yy9MaWJXZWJSVENDb2RlY3NQcm94eS5tbToKKyAg
ICAgICAgKFdlYktpdDo6RnVuY3Rpb248dm9pZCk6CisgICAgICAgICogU2hhcmVkL0dQVVByb2Nl
c3NDb25uZWN0aW9uUGFyYW1ldGVycy5oOgorICAgICAgICAoV2ViS2l0OjpHUFVQcm9jZXNzQ29u
bmVjdGlvblBhcmFtZXRlcnM6OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OkdQVVBy
b2Nlc3NDb25uZWN0aW9uUGFyYW1ldGVyczo6ZGVjb2RlKToKKyAgICAgICAgKiBTaGFyZWQvV2Vi
Q29yZUFyZ3VtZW50Q29kZXJzLmNwcDoKKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxQcm9j
ZXNzSWRlbnRpdHk+OjplbmNvZGUpOgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPFByb2Nl
c3NJZGVudGl0eT46OmRlY29kZSk6CisgICAgICAgICogU2hhcmVkL1dlYkNvcmVBcmd1bWVudENv
ZGVycy5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdl
clByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94
eTo6U291cmNlUHJveHk6OlNvdXJjZVByb3h5KToKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlh
Q2FwdHVyZU1hbmFnZXJQcm94eTo6U291cmNlUHJveHk6OnNldFNob3VsZEFwcGx5Um90YXRpb24p
OgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OjpjcmVhdGVN
ZWRpYVNvdXJjZUZvckNhcHR1cmVEZXZpY2VXaXRoQ29uc3RyYWludHMpOgorICAgICAgICAoV2Vi
S2l0OjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OjpjbG9uZSk6CisgICAgICAgIChXZWJL
aXQ6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6OlNvdXJjZVByb3h5OjpzZXRXZWJQcm9j
ZXNzSWRlbnRpdHlUb2tlbik6IERlbGV0ZWQuCisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL1Vz
ZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkuaDoKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlh
Q2FwdHVyZU1hbmFnZXJQcm94eTo6Q29ubmVjdGlvblByb3h5Ojp3ZWJQcm9jZXNzSWRlbnRpdHlU
b2tlbiBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgICogVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94
eS5jcHA6CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvSW1hZ2VCdWZmZXJTaGFy
ZWFibGVCaXRtYXBCYWNrZW5kLmg6CisgICAgICAgIChXZWJLaXQ6OkltYWdlQnVmZmVyU2hhcmVh
YmxlQml0bWFwQmFja2VuZDo6c2V0T3duZXJzaGlwSWRlbnRpdHkpOgorICAgICAgICAqIFdlYlBy
b2Nlc3MvR1BVL2dyYXBoaWNzL2NvY29hL0ltYWdlQnVmZmVyU2hhcmVhYmxlTWFwcGVkSU9TdXJm
YWNlQmFja2VuZC5jcHA6CisgICAgICAgIChXZWJLaXQ6OkltYWdlQnVmZmVyU2hhcmVhYmxlTWFw
cGVkSU9TdXJmYWNlQmFja2VuZDo6c2V0T3duZXJzaGlwSWRlbnRpdHkpOgorICAgICAgICAoV2Vi
S2l0OjpJbWFnZUJ1ZmZlclNoYXJlYWJsZU1hcHBlZElPU3VyZmFjZUJhY2tlbmQ6OnNldFByb2Nl
c3NPd25lcnNoaXApOiBEZWxldGVkLgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL2dyYXBoaWNz
L2NvY29hL0ltYWdlQnVmZmVyU2hhcmVhYmxlTWFwcGVkSU9TdXJmYWNlQmFja2VuZC5oOgorICAg
ICAgICAqIFdlYlByb2Nlc3MvY29jb2EvV2ViUHJvY2Vzc0NvY29hLm1tOgorICAgICAgICAoV2Vi
S2l0OjpXZWJQcm9jZXNzOjpwbGF0Zm9ybUluaXRpYWxpemVHUFVQcm9jZXNzQ29ubmVjdGlvblBh
cmFtZXRlcnMpOgorCiAyMDIxLTEyLTA4ICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBw
bGUuY29tPgogCiAgICAgICAgIEFkZCBhIG1pc3NpbmcgQ29tcGxldGlvbkhhbmRsZXJDYWxsQ2hl
Y2tlciBhcm91bmQgYSBVSSBkZWxlZ2F0ZSBtZXRob2QgY2FsbCBhZnRlciByMjg2NjQwCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlIGIvU291cmNlL1dlYkNvcmUvSGVh
ZGVycy5jbWFrZQppbmRleCA3OTYzNmJkZDg4NjU4ZTZhY2FmYTkwZTMxNTVhNjk5NjlkZWY3NDU0
Li5jNmFlMDZiM2EyNGVjYjcyNzBiYjdjMjVlYTlhYTY4OTZkZDlhZTJkIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCisrKyBiL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMu
Y21ha2UKQEAgLTEyOTEsNiArMTI5MSw3IEBAIHNldChXZWJDb3JlX1BSSVZBVEVfRlJBTUVXT1JL
X0hFQURFUlMKICAgICBwbGF0Zm9ybS9Qb3B1cE1lbnVDbGllbnQuaAogICAgIHBsYXRmb3JtL1Bv
cHVwTWVudVN0eWxlLmgKICAgICBwbGF0Zm9ybS9Qcm9jZXNzSWRlbnRpZmllci5oCisgICAgcGxh
dGZvcm0vUHJvY2Vzc0lkZW50aXR5LmgKICAgICBwbGF0Zm9ybS9Qcm9jZXNzUXVhbGlmaWVkLmgK
ICAgICBwbGF0Zm9ybS9Qcm9taXNlZEF0dGFjaG1lbnRJbmZvLmgKICAgICBwbGF0Zm9ybS9QdWJs
aWNTdWZmaXguaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQgYi9Tb3Vy
Y2UvV2ViQ29yZS9Tb3VyY2VzLnR4dAppbmRleCA5MmUwZjRiMGM4NTZlNjg3Nzg2ZmFmZDRiMjNl
YWE2YjlmNTUzMGY3Li5jYzdhODFmYzYwNzQ2NjRiNWU1NGJkMmNmNTdjNjYwY2Y2NjM2ZjM4IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9Tb3VyY2VzLnR4dApAQCAtMTg4Niw2ICsxODg2LDcgQEAgcGxhdGZvcm0vUGxhdGZvcm1TdHJh
dGVnaWVzLmNwcAogcGxhdGZvcm0vUGxhdGZvcm1XaGVlbEV2ZW50LmNwcAogcGxhdGZvcm0vUHJl
dmlld0NvbnZlcnRlci5jcHAKIHBsYXRmb3JtL1Byb2Nlc3NJZGVudGlmaWVyLmNwcAorcGxhdGZv
cm0vUHJvY2Vzc0lkZW50aXR5LmNwcAogcGxhdGZvcm0vUmVmZXJyZXJQb2xpY3kuY3BwCiBwbGF0
Zm9ybS9SZW1vdGVDb21tYW5kTGlzdGVuZXIuY3BwCiBwbGF0Zm9ybS9SdW50aW1lQXBwbGljYXRp
b25DaGVja3MuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oKaW5kZXggYzdiNWVmMDBkNGVmNWRmYTVhODMwNjYwNzFkMmZiM2UwOWZjMjk0
YS4uMzQyODVkNmJiOTU3ZmRjZTMyYmQzMDEyZDRiODE3ZTdkOGU2NzdjYiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMjM4OCw2
ICsyMzg4LDcgQEAKIAkJN0JCMzRBNDgyNTM3NzZDQTAwMDI5RDA4IC8qIEdyYXBoaWNzQ29udGV4
dEdMSW1hZ2VFeHRyYWN0b3IuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDdCQjM0QTQ1MjUzNzc2QzYwMDAyOUQwOCAvKiBHcmFwaGljc0NvbnRleHRHTElt
YWdlRXh0cmFjdG9yLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsg
fTsgfTsKIAkJN0JCNjgwQkEyNUJBMUJFNDAwMkI4NzM4IC8qIEdyYXBoaWNzQ2hlY2tzTWFjLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3QkI2ODBCODI1
QkExQkU0MDAyQjg3MzggLyogR3JhcGhpY3NDaGVja3NNYWMuaCAqLzsgc2V0dGluZ3MgPSB7QVRU
UklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk3QkREQTMxRjI3NEZBMDIxMDAzODY1OUUg
LyogR3JhcGhpY3NDb250ZXh0R0xDb2NvYS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gN0JEREEzMUQyNzRGOURBNTAwMzg2NTlFIC8qIEdyYXBoaWNzQ29u
dGV4dEdMQ29jb2EuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OworCQk3QkREQTM0QzI3NUEwMTMxMDAzODY1OUUgLyogUHJvY2Vzc0lkZW50aXR5LmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3QkREQTM0OTI3NUEw
MTMwMDAzODY1OUUgLyogUHJvY2Vzc0lkZW50aXR5LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVU
RVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJN0JFNzQyNzM4MUZBOTA2RkJCNEYwRjJDIC8qIEpT
U1ZHR3JhcGhpY3NFbGVtZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA5NTBDNEMwMkJFRDg5MzZGODE4RTJGOTkgLyogSlNTVkdHcmFwaGljc0VsZW1l
bnQuaCAqLzsgfTsKIAkJN0JGRjU5RjQyNzU3NzI2NzAwNzczRDM5IC8qIERpc3BsYXlDb25maWd1
cmF0aW9uTW9uaXRvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gN0JGRjU5RUYyNzU3NzFFODAwNzczRDM5IC8qIERpc3BsYXlDb25maWd1cmF0aW9uTW9u
aXRvci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJ
CTdDMDI5QzZFMjQ5M0M4RjgwMDI2ODIwNCAvKiBDb2xvclR5cGVzLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3QzAyOUM2RDI0OTNDOEY4MDAyNjgyMDQg
LyogQ29sb3JUeXBlcy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CkBAIC0xMTQyMCw2ICsxMTQyMSw4IEBACiAJCTdCQ0Q0MkRDMjcwNUM5NDkwMEVCMjEy
NyAvKiBBTkdMRVV0aWxpdGllc0NvY29hLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEFOR0xFVXRpbGl0aWVz
Q29jb2EuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0JEREEzMUMyNzRGOURBNDAw
Mzg2NTlFIC8qIEdyYXBoaWNzQ29udGV4dEdMQ29jb2EubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5vYmpjcHA7IHBhdGggPSBHcmFwaGljc0NvbnRleHRHTENvY29hLm1tOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk3QkREQTMxRDI3NEY5REE1MDAzODY1OUUgLyogR3JhcGhpY3ND
b250ZXh0R0xDb2NvYS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBHcmFwaGlj
c0NvbnRleHRHTENvY29hLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTdCRERBMzQ5
Mjc1QTAxMzAwMDM4NjU5RSAvKiBQcm9jZXNzSWRlbnRpdHkuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gUHJvY2Vzc0lkZW50aXR5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCTdCRERBMzRCMjc1QTAxMzAwMDM4NjU5RSAvKiBQcm9jZXNzSWRlbnRpdHkuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUHJvY2Vzc0lkZW50aXR5LmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0JFNzI2NUIyNTc2M0I4RDAwRTg1RDk4IC8q
IFJlbW90ZUdyYXBoaWNzQ29udGV4dEdMUHJveHlCYXNlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IFJlbW90ZUdyYXBoaWNzQ29udGV4dEdMUHJveHlCYXNlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJN0JGRjU5RUYyNzU3NzFFODAwNzczRDM5IC8qIERpc3BsYXlDb25maWd1cmF0
aW9uTW9uaXRvci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGV4cGxpY2l0RmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5oOyBmaWxlRW5jb2RpbmcgPSA0OyBwYXRoID0gRGlzcGxheUNv
bmZpZ3VyYXRpb25Nb25pdG9yLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdCRkY1
OUYxMjc1NzcxRTgwMDc3M0QzOSAvKiBEaXNwbGF5Q29uZmlndXJhdGlvbk1vbml0b3IuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRGlzcGxheUNvbmZpZ3VyYXRpb25N
b25pdG9yLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTI5ODMzLDYgKzI5ODM2
LDggQEAKIAkJCQlBMUFEQUY3QzIzNjBGRDNFMDA5Q0I3NzYgLyogUHJldmlld0NvbnZlcnRlclBy
b3ZpZGVyLmggKi8sCiAJCQkJNTFGNjQ1RDIxRkVDREJDODAwQjU0REVEIC8qIFByb2Nlc3NJZGVu
dGlmaWVyLmNwcCAqLywKIAkJCQk1MUY2NDVEMzFGRUNEQkM4MDBCNTRERUQgLyogUHJvY2Vzc0lk
ZW50aWZpZXIuaCAqLywKKwkJCQk3QkREQTM0QjI3NUEwMTMwMDAzODY1OUUgLyogUHJvY2Vzc0lk
ZW50aXR5LmNwcCAqLywKKwkJCQk3QkREQTM0OTI3NUEwMTMwMDAzODY1OUUgLyogUHJvY2Vzc0lk
ZW50aXR5LmggKi8sCiAJCQkJMUNDNTRBRkIyNzBGOTJEQTAwNUJGOEJFIC8qIFByb2Nlc3NRdWFs
aWZpZWQuaCAqLywKIAkJCQlGNDdBNjMzQzFGRjZGRDUwMDA4MUIzQ0MgLyogUHJvbWlzZWRBdHRh
Y2htZW50SW5mby5oICovLAogCQkJCTAwODFGRUZEMTZCMEEyNDQwMDhBQUE3QSAvKiBQdWJsaWNT
dWZmaXguaCAqLywKQEAgLTM2Mzc4LDYgKzM2MzgzLDcgQEAKIAkJCQlCNzFGRTZERjExMDkxQ0Iz
MDBEQUVGNzcgLyogUHJpbnRDb250ZXh0LmggaW4gSGVhZGVycyAqLywKIAkJCQk2QjBBMDdGMjIx
RkE0QjVDMDBENTczOTEgLyogUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQuaCBpbiBIZWFkZXJzICov
LAogCQkJCTUxRjY0NUQ1MUZFQ0RCQ0UwMEI1NERFRCAvKiBQcm9jZXNzSWRlbnRpZmllci5oIGlu
IEhlYWRlcnMgKi8sCisJCQkJN0JEREEzNEMyNzVBMDEzMTAwMzg2NTlFIC8qIFByb2Nlc3NJZGVu
dGl0eS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQThFQTdFQkMwQTE5NDVEMDAwQThFRjVGIC8qIFBy
b2Nlc3NpbmdJbnN0cnVjdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUNDNTRBRkUyNzBGOTZB
RTAwNUJGOEJFIC8qIFByb2Nlc3NRdWFsaWZpZWQuaCBpbiBIZWFkZXJzICovLAogCQkJCUU0MjA1
MDE3MjE0MTkwMUIwMDY2RUYzQiAvKiBQcm9jZXNzV2FybWluZy5oIGluIEhlYWRlcnMgKi8sCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Mb2dnaW5nLmggYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9Mb2dnaW5nLmgKaW5kZXggM2ZiZTQxN2JlOTgxYjc1ZTc3OWRlMjM4ZmM0
YmUwNWE2ZDczMGZhYS4uZGMwZjUwOThiODdmMTg0NTUyNWJlM2MwYmE0MWY3Njc1YjE0MDQ3ZiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTG9nZ2luZy5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL0xvZ2dpbmcuaApAQCAtOTQsNiArOTQsNyBAQCBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAgICAgTShQbHVnaW5zKSBcCiAgICAgTShQb3B1cEJsb2NraW5nKSBcCiAgICAg
TShQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCkgXAorICAgIE0oUHJvY2VzcykgXAogICAgIE0oUHJv
Z3Jlc3MpIFwKICAgICBNKFJlbW90ZUluc3BlY3RvcikgXAogICAgIE0oUmVxdWVzdEFuaW1hdGlv
bkZyYW1lKSBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Qcm9jZXNzSWRl
bnRpdHkuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUHJvY2Vzc0lkZW50aXR5LmNwcApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi5hMTk1MjMxYzU0Y2JkOTNmOGNlODM0ODAwMmJjYWM1ZjY0OTAyMGY2Ci0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUHJvY2Vzc0lkZW50aXR5LmNw
cApAQCAtMCwwICsxLDg3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVN
RU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlByb2Nlc3NJZGVudGl0eS5o
IgorCisjaW5jbHVkZSAiTG9nZ2luZy5oIgorCisjaWYgSEFWRShUQVNLX0lERU5USVRZX1RPS0VO
KQorI2luY2x1ZGUgPG1hY2gvbWFjaC5oPgorI2VuZGlmCisKK25hbWVzcGFjZSBXZWJDb3JlIHsK
KworUHJvY2Vzc0lkZW50aXR5OjpQcm9jZXNzSWRlbnRpdHkoQ3VycmVudFByb2Nlc3NUYWcpCit7
CisjaWYgSEFWRShUQVNLX0lERU5USVRZX1RPS0VOKQorICAgIHRhc2tfaWRfdG9rZW5fdCBpZGVu
dGl0eVRva2VuOworICAgIGtlcm5fcmV0dXJuX3Qga3IgPSB0YXNrX2NyZWF0ZV9pZGVudGl0eV90
b2tlbihtYWNoX3Rhc2tfc2VsZigpLCAmaWRlbnRpdHlUb2tlbik7CisgICAgaWYgKGtyID09IEtF
Uk5fU1VDQ0VTUykKKyAgICAgICAgbV90YXNrSWRUb2tlbiA9IE1hY2hTZW5kUmlnaHQ6OmFkb3B0
KGlkZW50aXR5VG9rZW4pOworICAgIGVsc2UKKyAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoUHJv
Y2VzcywgInRhc2tfY3JlYXRlX2lkZW50aXR5X3Rva2VuKCkgZmFpbGVkOiAle3ByaXZhdGV9cyAo
JXgpIiwgbWFjaF9lcnJvcl9zdHJpbmcoa3IpLCBrcik7CisjZW5kaWYKK30KKworUHJvY2Vzc0lk
ZW50aXR5OjpQcm9jZXNzSWRlbnRpdHkoKSA9IGRlZmF1bHQ7CisKK1Byb2Nlc3NJZGVudGl0eTo6
UHJvY2Vzc0lkZW50aXR5KFByb2Nlc3NJZGVudGl0eSYmKSA9IGRlZmF1bHQ7CisKK1Byb2Nlc3NJ
ZGVudGl0eTo6UHJvY2Vzc0lkZW50aXR5KGNvbnN0IFByb2Nlc3NJZGVudGl0eSYpID0gZGVmYXVs
dDsKKworUHJvY2Vzc0lkZW50aXR5Ojp+UHJvY2Vzc0lkZW50aXR5KCkgPSBkZWZhdWx0OworCitQ
cm9jZXNzSWRlbnRpdHkmIFByb2Nlc3NJZGVudGl0eTo6b3BlcmF0b3I9KFByb2Nlc3NJZGVudGl0
eSYmKSA9IGRlZmF1bHQ7CisKK1Byb2Nlc3NJZGVudGl0eSYgUHJvY2Vzc0lkZW50aXR5OjpvcGVy
YXRvcj0oY29uc3QgUHJvY2Vzc0lkZW50aXR5JikgPSBkZWZhdWx0OworCisjaWYgSEFWRShUQVNL
X0lERU5USVRZX1RPS0VOKQorUHJvY2Vzc0lkZW50aXR5OjpQcm9jZXNzSWRlbnRpdHkoTWFjaFNl
bmRSaWdodCYmIHRhc2tJZFRva2VuKQorICAgIDogbV90YXNrSWRUb2tlbihXVEZNb3ZlKHRhc2tJ
ZFRva2VuKSkKK3sKK30KKwordGFza19pZF90b2tlbl90IFByb2Nlc3NJZGVudGl0eTo6dGFza0lk
VG9rZW4oKSBjb25zdAoreworICAgIHJldHVybiBtX3Rhc2tJZFRva2VuLnNlbmRSaWdodCgpOwor
fQorCitjb25zdCBNYWNoU2VuZFJpZ2h0JiBQcm9jZXNzSWRlbnRpdHk6OnNlbmRSaWdodCgpIGNv
bnN0Cit7CisgICAgcmV0dXJuIG1fdGFza0lkVG9rZW47Cit9CisjZW5kaWYKKworUHJvY2Vzc0lk
ZW50aXR5OjpvcGVyYXRvciBib29sKCkgY29uc3QKK3sKKyNpZiBIQVZFKFRBU0tfSURFTlRJVFlf
VE9LRU4pCisgICAgcmV0dXJuIHN0YXRpY19jYXN0PGJvb2w+KG1fdGFza0lkVG9rZW4pOworI2Vs
c2UKKyAgICByZXR1cm4gZmFsc2U7CisjZW5kaWYKK30KKworfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vUHJvY2Vzc0lkZW50aXR5LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9Qcm9jZXNzSWRlbnRpdHkuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42MTYxZWFjNGRiZmMzMjI4YmQxN2Yx
MGJhYzZmMDE0ZTFiMzA3NTY0Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vUHJvY2Vzc0lkZW50aXR5LmgKQEAgLTAsMCArMSw2OCBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQg
QU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBF
WEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgSEFWRShU
QVNLX0lERU5USVRZX1RPS0VOKQorI2luY2x1ZGUgPHd0Zi9NYWNoU2VuZFJpZ2h0Lmg+CisjZWxz
ZQorI2luY2x1ZGUgPHZhcmlhbnQ+CisjZW5kaWYKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCisv
LyBPYmplY3QgdG8gYWNjZXNzIHByb29mIG9mIHByb2Nlc3MgaWRlbnRpdHkuCisvLyBQcm9jZXNz
SWRlbnRpZmllciBpZGVudGlmaWVzIGEgcHJvY2Vzcy4KKy8vIFByb2Nlc3NJZGVudGl0eSBncmFu
dHMgYWNjZXNzIHRvIHRoZSBpZGVudGl0eS4KKy8vIEVtcHR5IFByb2Nlc3NJZGVudGl0eSBkb2Vz
IG5vdCBkbyBhbnl0aGluZy4KK2NsYXNzIFdFQkNPUkVfRVhQT1JUIFByb2Nlc3NJZGVudGl0eSB7
CitwdWJsaWM6CisgICAgLy8gQ3JlYXRlcyBhbiBwcm9jZXNzIGlkZW50aXR5IGZvciBjdXJyZW50
IHByb2Nlc3Mgb3IgZW1wdHkgb24gZXJyb3IuCisgICAgZW51bSBDdXJyZW50UHJvY2Vzc1RhZyB7
IEN1cnJlbnRQcm9jZXNzIH07CisgICAgZXhwbGljaXQgUHJvY2Vzc0lkZW50aXR5KEN1cnJlbnRQ
cm9jZXNzVGFnKTsKKworICAgIC8vIENyZWF0ZXMgYW4gZW1wdHkgcHJvY2VzcyBpZGVudGl0eSB0
aGF0IGRvZXMgbm90IGdyYW50IGFueSBhY2Nlc3MuCisgICAgUHJvY2Vzc0lkZW50aXR5KCk7Cisg
ICAgUHJvY2Vzc0lkZW50aXR5KFByb2Nlc3NJZGVudGl0eSYmKTsKKyAgICBQcm9jZXNzSWRlbnRp
dHkoY29uc3QgUHJvY2Vzc0lkZW50aXR5Jik7CisgICAgflByb2Nlc3NJZGVudGl0eSgpOworICAg
IFByb2Nlc3NJZGVudGl0eSYgb3BlcmF0b3I9KFByb2Nlc3NJZGVudGl0eSYmKTsKKyAgICBQcm9j
ZXNzSWRlbnRpdHkmIG9wZXJhdG9yPShjb25zdCBQcm9jZXNzSWRlbnRpdHkmKTsKKworICAgIC8v
IFJldHVybnMgdHJ1ZSBmb3IgYSBwcm9jZXNzIGlkZW50aXR5IG9yIGZhbHNlIG9uIGVtcHR5IGlk
ZW50aXR5LgorICAgIG9wZXJhdG9yIGJvb2woKSBjb25zdDsKKworI2lmIEhBVkUoVEFTS19JREVO
VElUWV9UT0tFTikKKyAgICBQcm9jZXNzSWRlbnRpdHkoTWFjaFNlbmRSaWdodCYmIHRhc2tJZFRv
a2VuKTsKKyAgICB0YXNrX2lkX3Rva2VuX3QgdGFza0lkVG9rZW4oKSBjb25zdDsKKyAgICBjb25z
dCBNYWNoU2VuZFJpZ2h0JiBzZW5kUmlnaHQoKSBjb25zdDsKKyNlbmRpZgorcHJpdmF0ZToKKyNp
ZiBIQVZFKFRBU0tfSURFTlRJVFlfVE9LRU4pCisgICAgTWFjaFNlbmRSaWdodCBtX3Rhc2tJZFRv
a2VuOworI2VuZGlmCit9OworCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9SZW1vdGVWaWRlb1NhbXBsZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvUmVtb3RlVmlkZW9TYW1wbGUuaAppbmRleCBhNjE3MGIzMjhmYzQ0YWNlNjkzZGNk
YjM1ZWU0ZDNjZTY4NzMzOGExLi5mYmVlN2U4MTMzNmY3ZDM5ZDM2MmQ5NjA3OWUzNjc5ZjMwOTBm
YzMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9SZW1vdGVW
aWRlb1NhbXBsZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1JlbW90
ZVZpZGVvU2FtcGxlLmgKQEAgLTM3LDYgKzM3LDggQEAgdHlwZWRlZiBzdHJ1Y3QgX19DVkJ1ZmZl
ciogQ1ZQaXhlbEJ1ZmZlclJlZjsKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCitjbGFzcyBQcm9j
ZXNzSWRlbnRpdHk7CisKIGNsYXNzIFJlbW90ZVZpZGVvU2FtcGxlIHsKIHB1YmxpYzoKICAgICBS
ZW1vdGVWaWRlb1NhbXBsZSgpID0gZGVmYXVsdDsKQEAgLTQ4LDkgKzUwLDcgQEAgcHVibGljOgog
ICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8UmVtb3RlVmlkZW9TYW1w
bGU+IGNyZWF0ZShSZXRhaW5QdHI8Q1ZQaXhlbEJ1ZmZlclJlZj4mJiwgTWVkaWFUaW1lJiYgcHJl
c2VudGF0aW9uVGltZSwgTWVkaWFTYW1wbGU6OlZpZGVvUm90YXRpb24gPSBNZWRpYVNhbXBsZTo6
VmlkZW9Sb3RhdGlvbjo6Tm9uZSk7CiAgICAgV0VCQ09SRV9FWFBPUlQgSU9TdXJmYWNlUmVmIHN1
cmZhY2UoKSBjb25zdDsKIAotI2lmIEhBVkUoSU9TVVJGQUNFX1NFVF9PV05FUlNISVBfSURFTlRJ
VFkpCi0gICAgdm9pZCBzZXRPd25lcnNoaXBJZGVudGl0eSh0YXNrX2lkX3Rva2VuX3QgbmV3T3du
ZXIpOwotI2VuZGlmCisgICAgdm9pZCBzZXRPd25lcnNoaXBJZGVudGl0eShjb25zdCBQcm9jZXNz
SWRlbnRpdHkmIHJlc291cmNlT3duZXIpOwogCiAgICAgY29uc3QgTWVkaWFUaW1lJiB0aW1lKCkg
Y29uc3QgeyByZXR1cm4gbV90aW1lOyB9CiAgICAgdWludDMyX3QgdmlkZW9Gb3JtYXQoKSBjb25z
dCB7IHJldHVybiBtX3ZpZGVvRm9ybWF0OyB9CkBAIC0xMTksMTMgKzExOSwxMSBAQCBwcml2YXRl
OgogICAgIGJvb2wgbV9taXJyb3JlZCB7IGZhbHNlIH07CiB9OwogCi0jaWYgSEFWRShJT1NVUkZB
Q0VfU0VUX09XTkVSU0hJUF9JREVOVElUWSkKLWlubGluZSB2b2lkIFJlbW90ZVZpZGVvU2FtcGxl
OjpzZXRPd25lcnNoaXBJZGVudGl0eSh0YXNrX2lkX3Rva2VuX3QgbmV3T3duZXIpCitpbmxpbmUg
dm9pZCBSZW1vdGVWaWRlb1NhbXBsZTo6c2V0T3duZXJzaGlwSWRlbnRpdHkoY29uc3QgUHJvY2Vz
c0lkZW50aXR5JiByZXNvdXJjZU93bmVyKQogewogICAgIGlmIChtX2lvU3VyZmFjZSkKLSAgICAg
ICAgbV9pb1N1cmZhY2UtPnNldE93bmVyc2hpcElkZW50aXR5KG5ld093bmVyKTsKKyAgICAgICAg
bV9pb1N1cmZhY2UtPnNldE93bmVyc2hpcElkZW50aXR5KHJlc291cmNlT3duZXIpOwogfQotI2Vu
ZGlmCiAKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
YW5nbGUvR3JhcGhpY3NDb250ZXh0R0xBTkdMRS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvYW5nbGUvR3JhcGhpY3NDb250ZXh0R0xBTkdMRS5oCmluZGV4IDQzZDVkMjkwZGQ2
ODJjYTU5NjU2MDExMGE2NmE1YTdkYThmODUyYTAuLjk3NGViYjM1MWZjNjNkMzg0ZmQ0YTdjOTk3
OWFmMGQyNjQ1ODM5YzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2FuZ2xlL0dyYXBoaWNzQ29udGV4dEdMQU5HTEUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9hbmdsZS9HcmFwaGljc0NvbnRleHRHTEFOR0xFLmgKQEAgLTM2LDYg
KzM2LDcgQEAKICNpZiBQTEFURk9STShDT0NPQSkKICNpbmNsdWRlICJHcmFwaGljc0NvbnRleHRH
TElPU3VyZmFjZVN3YXBDaGFpbi5oIgogI2luY2x1ZGUgIklPU3VyZmFjZS5oIgorI2luY2x1ZGUg
IlByb2Nlc3NJZGVudGl0eS5oIgogI2VuZGlmCiAKIApAQCAtNDI3LDYgKzQyOCw3IEBAIHByb3Rl
Y3RlZDoKICAgICBzdGQ6OnVuaXF1ZV9wdHI8RXh0ZW5zaW9uc0dMQU5HTEU+IG1fZXh0ZW5zaW9u
czsKIAogI2lmIFBMQVRGT1JNKENPQ09BKQorICAgIC8vIEZJWE1FOiBNb3ZlIHRoZXNlIHRvIEdy
YXBoaWNzQ29udGV4dEdMQ29jb2EuCiAgICAgR3JhcGhpY3NDb250ZXh0R0xJT1N1cmZhY2VTd2Fw
Q2hhaW4gbV9zd2FwQ2hhaW47CiAgICAgRUdMRGlzcGxheSBtX2Rpc3BsYXlPYmogeyBudWxscHRy
IH07CiAgICAgUGxhdGZvcm1HcmFwaGljc0NvbnRleHRHTCBtX2NvbnRleHRPYmogeyBudWxscHRy
IH07CkBAIC00MzYsNiArNDM4LDcgQEAgcHJvdGVjdGVkOgogICAgIC8vIFdoZW4gcHJlc2VydmVE
cmF3aW5nQnVmZmVyID09IHRydWUsIHRoaXMgaXMgYmxpdHRlZCB0byBkdXJpbmcgZGlzcGxheSBw
cmVwYXJlLgogICAgIHN0ZDo6dW5pcXVlX3B0cjxJT1N1cmZhY2U+IG1fZGlzcGxheUJ1ZmZlckJh
Y2tpbmc7CiAgICAgdm9pZCogbV9kaXNwbGF5QnVmZmVyUGJ1ZmZlciB7IG51bGxwdHIgfTsKKyAg
ICBQcm9jZXNzSWRlbnRpdHkgbV9yZXNvdXJjZU93bmVyOwogI2VuZGlmCiAjaWYgVVNFKENPT1JE
SU5BVEVEX0dSQVBISUNTKQogICAgIEdDR0x1aW50IG1fY29tcG9zaXRvclRleHR1cmUgeyAwIH07
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9HcmFw
aGljc0NvbnRleHRHTENvY29hLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
b2NvYS9HcmFwaGljc0NvbnRleHRHTENvY29hLmgKaW5kZXggOTEzYzBmNGE1MmQwZDFhZTAzOWJk
OGUzMjY2ODc4ZmE1MTJmYWYzZS4uMzA4OTgwMDdlZjJmZjY2OTI2OWFmNjRmNjkxMmM5MDk2OGY3
OTRkZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2Ev
R3JhcGhpY3NDb250ZXh0R0xDb2NvYS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2NvY29hL0dyYXBoaWNzQ29udGV4dEdMQ29jb2EuaApAQCAtNDIsOSArNDIsMTEgQEAg
Y2xhc3MgR3JhcGhpY3NDb250ZXh0R0xDVkNvY29hOwogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
K2NsYXNzIFByb2Nlc3NJZGVudGl0eTsKKwogY2xhc3MgV0VCQ09SRV9FWFBPUlQgR3JhcGhpY3ND
b250ZXh0R0xDb2NvYSA6IHB1YmxpYyBHcmFwaGljc0NvbnRleHRHTEFOR0xFIHsKIHB1YmxpYzoK
LSAgICBzdGF0aWMgUmVmUHRyPEdyYXBoaWNzQ29udGV4dEdMQ29jb2E+IGNyZWF0ZShXZWJDb3Jl
OjpHcmFwaGljc0NvbnRleHRHTEF0dHJpYnV0ZXMmJik7CisgICAgc3RhdGljIFJlZlB0cjxHcmFw
aGljc0NvbnRleHRHTENvY29hPiBjcmVhdGUoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0R0xBdHRy
aWJ1dGVzJiYsIFByb2Nlc3NJZGVudGl0eSYmIHJlc291cmNlT3duZXIpOwogICAgIH5HcmFwaGlj
c0NvbnRleHRHTENvY29hKCk7CiAgICAgSU9TdXJmYWNlKiBkaXNwbGF5QnVmZmVyKCk7CiAgICAg
dm9pZCBtYXJrRGlzcGxheUJ1ZmZlckluVXNlKCk7CkBAIC03Niw5ICs3OCw4IEBAIHB1YmxpYzoK
ICAgICB2b2lkIHVwZGF0ZUNvbnRleHRPbkRpc3BsYXlSZWNvbmZpZ3VyYXRpb24oKTsKICNlbmRp
ZgogcHJvdGVjdGVkOgotICAgIEdyYXBoaWNzQ29udGV4dEdMQ29jb2EoV2ViQ29yZTo6R3JhcGhp
Y3NDb250ZXh0R0xBdHRyaWJ1dGVzJiYpOworICAgIEdyYXBoaWNzQ29udGV4dEdMQ29jb2EoV2Vi
Q29yZTo6R3JhcGhpY3NDb250ZXh0R0xBdHRyaWJ1dGVzJiYsIFByb2Nlc3NJZGVudGl0eSYmIHJl
c291cmNlT3duZXIpOwogICAgIGJvb2wgaXNWYWxpZCgpIGNvbnN0OwotCiAjaWYgRU5BQkxFKFZJ
REVPKQogICAgIHN0ZDo6dW5pcXVlX3B0cjxHcmFwaGljc0NvbnRleHRHTENWQ29jb2E+IG1fY3Y7
CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nv
Y29hL0dyYXBoaWNzQ29udGV4dEdMQ29jb2EubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jb2NvYS9HcmFwaGljc0NvbnRleHRHTENvY29hLm1tCmluZGV4IDRkMDFlZjM4ZTkz
YzRiNjEwYjc1Yjk1ZTBmMmRiMjU1M2UxNTVhOWQuLmIzNDVkODY0MDA3ZWMwNWY5ZDQ4MDM3YmMz
NGRkZmMyNmYzZjBlMGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2NvY29hL0dyYXBoaWNzQ29udGV4dEdMQ29jb2EubW0KKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvR3JhcGhpY3NDb250ZXh0R0xDb2NvYS5tbQpAQCAtMzUs
NiArMzUsNyBAQAogI2ltcG9ydCAiR3JhcGhpY3NDb250ZXh0R0xJT1N1cmZhY2VTd2FwQ2hhaW4u
aCIKICNpbXBvcnQgIkdyYXBoaWNzQ29udGV4dEdMT3BlbkdMTWFuYWdlci5oIgogI2ltcG9ydCAi
TG9nZ2luZy5oIgorI2ltcG9ydCAiUHJvY2Vzc0lkZW50aXR5LmgiCiAjaW1wb3J0ICJSdW50aW1l
QXBwbGljYXRpb25DaGVja3MuaCIKICNpbXBvcnQgPENvcmVHcmFwaGljcy9DR0JpdG1hcENvbnRl
eHQuaD4KICNpbXBvcnQgPE1ldGFsL01ldGFsLmg+CkBAIC0xOTIsMTkgKzE5MywyMiBAQCBzdGF0
aWMgYm9vbCBuZWVkc0VBR0xPbk1hYygpCiB9CiAjZW5kaWYKIAotUmVmUHRyPEdyYXBoaWNzQ29u
dGV4dEdMQ29jb2E+IEdyYXBoaWNzQ29udGV4dEdMQ29jb2E6OmNyZWF0ZShHcmFwaGljc0NvbnRl
eHRHTEF0dHJpYnV0ZXMmJiBhdHRyaWJ1dGVzKQorUmVmUHRyPEdyYXBoaWNzQ29udGV4dEdMQ29j
b2E+IEdyYXBoaWNzQ29udGV4dEdMQ29jb2E6OmNyZWF0ZShHcmFwaGljc0NvbnRleHRHTEF0dHJp
YnV0ZXMmJiBhdHRyaWJ1dGVzLCBQcm9jZXNzSWRlbnRpdHkmJiByZXNvdXJjZU93bmVyKQogewot
ICAgIGF1dG8gY29udGV4dCA9IGFkb3B0UmVmKCpuZXcgR3JhcGhpY3NDb250ZXh0R0xDb2NvYShX
VEZNb3ZlKGF0dHJpYnV0ZXMpKSk7CisgICAgYXV0byBjb250ZXh0ID0gYWRvcHRSZWYoKm5ldyBH
cmFwaGljc0NvbnRleHRHTENvY29hKFdURk1vdmUoYXR0cmlidXRlcyksIFdURk1vdmUocmVzb3Vy
Y2VPd25lcikpKTsKICAgICBpZiAoIWNvbnRleHQtPmlzVmFsaWQoKSkKICAgICAgICAgcmV0dXJu
IG51bGxwdHI7CiAgICAgcmV0dXJuIGNvbnRleHQ7CiB9CiAKLUdyYXBoaWNzQ29udGV4dEdMQ29j
b2E6OkdyYXBoaWNzQ29udGV4dEdMQ29jb2EoR3JhcGhpY3NDb250ZXh0R0xBdHRyaWJ1dGVzJiYg
Y3JlYXRpb25BdHRyaWJ1dGVzKQorR3JhcGhpY3NDb250ZXh0R0xDb2NvYTo6R3JhcGhpY3NDb250
ZXh0R0xDb2NvYShHcmFwaGljc0NvbnRleHRHTEF0dHJpYnV0ZXMmJiBjcmVhdGlvbkF0dHJpYnV0
ZXMsIFByb2Nlc3NJZGVudGl0eSYmIHJlc291cmNlT3duZXIpCiAgICAgOiBHcmFwaGljc0NvbnRl
eHRHTEFOR0xFKFdURk1vdmUoY3JlYXRpb25BdHRyaWJ1dGVzKSkKIHsKICAgICBpZiAoIWlzVmFs
aWQoKSkKICAgICAgICAgcmV0dXJuOworICAgIC8vIEZJWE1FOiBNb3ZlIHRoaXMgdG8gaW5pdGlh
bGl6ZXIgbGlzdCBvbmNlIG1fcmVzb3VyY2VPd25lciBtb3ZlcyB0byBHcmFwaGljc0NvbnRleHRH
TENvY29hLgorICAgIG1fcmVzb3VyY2VPd25lciA9IFByb2Nlc3NJZGVudGl0eSB7IFdURk1vdmUo
cmVzb3VyY2VPd25lcikgfTsKKwogI2lmIFBMQVRGT1JNKE1BQykKICAgICBhdXRvIGF0dHJpYnV0
ZXMgPSBjb250ZXh0QXR0cmlidXRlcygpOwogICAgIGlmICghYXR0cmlidXRlcy51c2VNZXRhbCAm
JiBhdHRyaWJ1dGVzLmVmZmVjdGl2ZVBvd2VyUHJlZmVyZW5jZSgpID09IEdyYXBoaWNzQ29udGV4
dEdMUG93ZXJQcmVmZXJlbmNlOjpIaWdoUGVyZm9ybWFuY2UpCkBAIC01NTIsNyArNTU2LDggQEAg
Ym9vbCBHcmFwaGljc0NvbnRleHRHTEFOR0xFOjphbGxvY2F0ZUFuZEJpbmREaXNwbGF5QnVmZmVy
QmFja2luZygpCiAgICAgYXV0byBiYWNraW5nID0gSU9TdXJmYWNlOjpjcmVhdGUoZ2V0SW50ZXJu
YWxGcmFtZWJ1ZmZlclNpemUoKSwgRGVzdGluYXRpb25Db2xvclNwYWNlOjpTUkdCKCkpOwogICAg
IGlmICghYmFja2luZykKICAgICAgICAgcmV0dXJuIGZhbHNlOwotCisgICAgaWYgKG1fcmVzb3Vy
Y2VPd25lcikKKyAgICAgICAgYmFja2luZy0+c2V0T3duZXJzaGlwSWRlbnRpdHkobV9yZXNvdXJj
ZU93bmVyKTsKICAgICBiYWNraW5nLT5taWdyYXRlQ29sb3JTcGFjZVRvUHJvcGVydGllcygpOwog
CiAgICAgY29uc3QgYm9vbCB1c2luZ0FscGhhID0gY29udGV4dEF0dHJpYnV0ZXMoKS5hbHBoYTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0lPU3Vy
ZmFjZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvSU9TdXJmYWNl
LmgKaW5kZXggNTY1MjQ3ODIyZGJhMjlmNzYwMGI5NDA3ZTZmNGFjYjhjMWEwNmFhYy4uNTY1MDky
ZGUwMDY4ZTU4N2I4YjI1OTM3YzMzZTMxZDcyMmY3NGJjNSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvSU9TdXJmYWNlLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvSU9TdXJmYWNlLmgKQEAgLTQ2LDYgKzQ2LDcg
QEAgbmFtZXNwYWNlIFdlYkNvcmUgewogY2xhc3MgR3JhcGhpY3NDb250ZXh0OwogY2xhc3MgSG9z
dFdpbmRvdzsKIGNsYXNzIEltYWdlQnVmZmVyOworY2xhc3MgUHJvY2Vzc0lkZW50aXR5OwogCiBl
bnVtIGNsYXNzIFBpeGVsRm9ybWF0IDogdWludDhfdDsKIGVudW0gY2xhc3MgVm9sYXRpbGl0eVN0
YXRlIDogdWludDhfdDsKQEAgLTE1OSw5ICsxNjAsNyBAQCBwdWJsaWM6CiAgICAgV0VCQ09SRV9F
WFBPUlQgc3RhdGljIHZvaWQgY29udmVydFRvRm9ybWF0KHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3Jl
OjpJT1N1cmZhY2U+JiYgaW5TdXJmYWNlLCBGb3JtYXQsIEZ1bmN0aW9uPHZvaWQoc3RkOjp1bmlx
dWVfcHRyPFdlYkNvcmU6OklPU3VyZmFjZT4pPiYmKTsKICNlbmRpZiAvLyBIQVZFKElPU1VSRkFD
RV9BQ0NFTEVSQVRPUikKIAotI2lmIEhBVkUoSU9TVVJGQUNFX1NFVF9PV05FUlNISVBfSURFTlRJ
VFkpCi0gICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRPd25lcnNoaXBJZGVudGl0eSh0YXNrX2lk
X3Rva2VuX3QgbmV3T3duZXIpOwotI2VuZGlmCisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRP
d25lcnNoaXBJZGVudGl0eShjb25zdCBQcm9jZXNzSWRlbnRpdHkmIHJlc291cmNlT3duZXIpOwog
CiAgICAgdm9pZCBtaWdyYXRlQ29sb3JTcGFjZVRvUHJvcGVydGllcygpOwogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9JT1N1cmZhY2UubW0gYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9JT1N1cmZhY2UubW0KaW5kZXgg
MDExMTY1Y2UxMWFiY2U2NzVjNGI0N2JmOTE1ZDRjODFlNmNlZTk5NS4uY2JiM2YyYmRkNGMzY2Ni
NGZkYzk4ZjZkY2U5ZjE0NjkwYmRlZTAxMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY29jb2EvSU9TdXJmYWNlLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2NvY29hL0lPU3VyZmFjZS5tbQpAQCAtMzQsNiArMzQsNyBAQAogI2lt
cG9ydCAiSW1hZ2VCdWZmZXIuaCIKICNpbXBvcnQgIkxvZ2dpbmcuaCIKICNpbXBvcnQgIlBsYXRm
b3JtU2NyZWVuLmgiCisjaW1wb3J0ICJQcm9jZXNzSWRlbnRpdHkuaCIKICNpbXBvcnQgPHBhbC9z
cGkvY2cvQ29yZUdyYXBoaWNzU1BJLmg+CiAjaW1wb3J0IDx3dGYvQXNzZXJ0aW9ucy5oPgogI2lt
cG9ydCA8d3RmL01hY2hTZW5kUmlnaHQuaD4KQEAgLTQ4NCwxNCArNDg1LDE4IEBAIHZvaWQgSU9T
dXJmYWNlOjpjb252ZXJ0VG9Gb3JtYXQoc3RkOjp1bmlxdWVfcHRyPElPU3VyZmFjZT4mJiBpblN1
cmZhY2UsIEZvcm1hdCBmCiAKICNlbmRpZiAvLyBIQVZFKElPU1VSRkFDRV9BQ0NFTEVSQVRPUikK
IAotI2lmIEhBVkUoSU9TVVJGQUNFX1NFVF9PV05FUlNISVBfSURFTlRJVFkpCi12b2lkIElPU3Vy
ZmFjZTo6c2V0T3duZXJzaGlwSWRlbnRpdHkodGFza19pZF90b2tlbl90IG5ld093bmVyKQordm9p
ZCBJT1N1cmZhY2U6OnNldE93bmVyc2hpcElkZW50aXR5KGNvbnN0IFByb2Nlc3NJZGVudGl0eSYg
cmVzb3VyY2VPd25lcikKIHsKLSAgICBhdXRvIHJlc3VsdCA9IElPU3VyZmFjZVNldE93bmVyc2hp
cElkZW50aXR5KG1fc3VyZmFjZS5nZXQoKSwgbmV3T3duZXIsIGtJT1N1cmZhY2VNZW1vcnlMZWRn
ZXJUYWdHcmFwaGljcywgMCk7CisgICAgQVNTRVJUKHJlc291cmNlT3duZXIpOworI2lmIEhBVkUo
SU9TVVJGQUNFX1NFVF9PV05FUlNISVBfSURFTlRJVFkpICYmIEhBVkUoVEFTS19JREVOVElUWV9U
T0tFTikKKyAgICB0YXNrX2lkX3Rva2VuX3Qgb3duZXJUYXNrSWRUb2tlbiA9IHJlc291cmNlT3du
ZXIudGFza0lkVG9rZW4oKTsKKyAgICBhdXRvIHJlc3VsdCA9IElPU3VyZmFjZVNldE93bmVyc2hp
cElkZW50aXR5KG1fc3VyZmFjZS5nZXQoKSwgb3duZXJUYXNrSWRUb2tlbiwga0lPU3VyZmFjZU1l
bW9yeUxlZGdlclRhZ0dyYXBoaWNzLCAwKTsKICAgICBpZiAocmVzdWx0ICE9IGtJT1JldHVyblN1
Y2Nlc3MpCi0gICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKElPU3VyZmFjZSwgIklPU3VyZmFjZTo6
c2V0T3duZXJzaGlwSWRlbnRpdHk6IEZhaWxlZCB0byBjbGFpbSBvd25lcnNoaXAgb2YgSU9TdXJm
YWNlICVwLCBuZXdPd25lcjogJWQsIGVycm9yOiAlZCIsIG1fc3VyZmFjZS5nZXQoKSwgKGludClu
ZXdPd25lciwgcmVzdWx0KTsKLX0KKyAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoSU9TdXJmYWNl
LCAiSU9TdXJmYWNlOjpzZXRPd25lcnNoaXBJZGVudGl0eTogRmFpbGVkIHRvIGNsYWltIG93bmVy
c2hpcCBvZiBJT1N1cmZhY2UgJXAsIHRhc2sgaWQgdG9rZW46ICVkLCBlcnJvcjogJWQiLCBtX3N1
cmZhY2UuZ2V0KCksIChpbnQpb3duZXJUYXNrSWRUb2tlbiwgcmVzdWx0KTsKKyNlbHNlCisgICAg
VU5VU0VEX1BBUkFNKHJlc291cmNlT3duZXIpOwogI2VuZGlmCit9CiAKIHZvaWQgSU9TdXJmYWNl
OjptaWdyYXRlQ29sb3JTcGFjZVRvUHJvcGVydGllcygpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9XZWJQcm9jZXNzR3JhcGhpY3NDb250ZXh0
R0xDb2NvYS5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1dlYlBy
b2Nlc3NHcmFwaGljc0NvbnRleHRHTENvY29hLm1tCmluZGV4IDMxMzg1OGI4ZjU3ZGFiOGQxMGE2
YWI2MjgxN2U4NzU0MGVmMzgwODMuLjdlZTRkMmU4ZGEzNjQ1YTAxM2JjMmM0YWEwOWE1Yzg5NTY5
ZTRkNWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29h
L1dlYlByb2Nlc3NHcmFwaGljc0NvbnRleHRHTENvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1dlYlByb2Nlc3NHcmFwaGljc0NvbnRleHRHTENvY29h
Lm1tCkBAIC0zMCw2ICszMCw3IEBACiAjaW1wb3J0ICJHcmFwaGljc0NvbnRleHRHTENvY29hLmgi
IC8vIE5PTElOVAogI2ltcG9ydCAiR3JhcGhpY3NDb250ZXh0R0xPcGVuR0xNYW5hZ2VyLmgiCiAj
aW1wb3J0ICJQbGF0Zm9ybUNBTGF5ZXIuaCIKKyNpbXBvcnQgIlByb2Nlc3NJZGVudGl0eS5oIgog
CiAjaWYgUExBVEZPUk0oTUFDKQogI2ltcG9ydCAiRGlzcGxheUNvbmZpZ3VyYXRpb25Nb25pdG9y
LmgiCkBAIC0xMTMsNyArMTE0LDcgQEAgcHJpdmF0ZToKIH07CiAKIFdlYlByb2Nlc3NHcmFwaGlj
c0NvbnRleHRHTENvY29hOjpXZWJQcm9jZXNzR3JhcGhpY3NDb250ZXh0R0xDb2NvYShHcmFwaGlj
c0NvbnRleHRHTEF0dHJpYnV0ZXMmJiBhdHRyaWJ1dGVzKQotICAgIDogR3JhcGhpY3NDb250ZXh0
R0xDb2NvYShXVEZNb3ZlKGF0dHJpYnV0ZXMpKQorICAgIDogR3JhcGhpY3NDb250ZXh0R0xDb2Nv
YShXVEZNb3ZlKGF0dHJpYnV0ZXMpLCBQcm9jZXNzSWRlbnRpdHkgeyB9KQogICAgICwgbV9sYXll
ckNvbnRlbnRzRGlzcGxheURlbGVnYXRlKERpc3BsYXlCdWZmZXJEaXNwbGF5RGVsZWdhdGU6OmNy
ZWF0ZSghYXR0cmlidXRlcy5hbHBoYSwgYXR0cmlidXRlcy5kZXZpY2VQaXhlbFJhdGlvKSkKIHsK
ICNpZiBQTEFURk9STShNQUMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mv
R1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mv
R1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAKaW5kZXggOTJjM2NjOTdiNzY2NjQ2ZTA2ODQw
MjgyYjEwZThkZjA1MjZiNjBjZS4uMmNhOTBmNTBjM2IxZTlhNjFhZjcxZTc1NGM1ODBlM2M3Y2M1
NjRjZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVUNvbm5lY3Rpb25U
b1dlYlByb2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9HUFVDb25uZWN0
aW9uVG9XZWJQcm9jZXNzLmNwcApAQCAtMjA3LDEyICsyMDcsMTEgQEAgcHJpdmF0ZToKICAgICAg
ICAgbV9wcm9jZXNzLnN0YXJ0Q2FwdHVyaW5nQXVkaW8oKTsKICAgICB9CiAjZW5kaWYKLSNpZiBI
QVZFKElPU1VSRkFDRV9TRVRfT1dORVJTSElQX0lERU5USVRZKQotICAgIHN0ZDo6b3B0aW9uYWw8
dGFza19pZF90b2tlbl90PiB3ZWJQcm9jZXNzSWRlbnRpdHlUb2tlbigpIGNvbnN0IGZpbmFsCisK
KyAgICBjb25zdCBQcm9jZXNzSWRlbnRpdHkmIHJlc291cmNlT3duZXIoKSBjb25zdCBmaW5hbAog
ICAgIHsKLSAgICAgICAgcmV0dXJuIG1fcHJvY2Vzcy53ZWJQcm9jZXNzSWRlbnRpdHlUb2tlbigp
OworICAgICAgICByZXR1cm4gbV9wcm9jZXNzLndlYlByb2Nlc3NJZGVudGl0eSgpOwogICAgIH0K
LSNlbmRpZgogCiAgICAgR1BVQ29ubmVjdGlvblRvV2ViUHJvY2VzcyYgbV9wcm9jZXNzOwogfTsK
QEAgLTIyOCw5ICsyMjcsNyBAQCBHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpHUFVDb25uZWN0
aW9uVG9XZWJQcm9jZXNzKEdQVVByb2Nlc3MmIGdwdVByb2Nlc3MsIFdlYgogICAgIDogbV9jb25u
ZWN0aW9uKElQQzo6Q29ubmVjdGlvbjo6Y3JlYXRlU2VydmVyQ29ubmVjdGlvbihjb25uZWN0aW9u
SWRlbnRpZmllciwgKnRoaXMpKQogICAgICwgbV9ncHVQcm9jZXNzKGdwdVByb2Nlc3MpCiAgICAg
LCBtX3dlYlByb2Nlc3NJZGVudGlmaWVyKHdlYlByb2Nlc3NJZGVudGlmaWVyKQotI2lmIEhBVkUo
VEFTS19JREVOVElUWV9UT0tFTikKLSAgICAsIG1fd2ViUHJvY2Vzc0lkZW50aXR5VG9rZW4oV1RG
TW92ZShwYXJhbWV0ZXJzLndlYlByb2Nlc3NJZGVudGl0eVRva2VuKSkKLSNlbmRpZgorICAgICwg
bV93ZWJQcm9jZXNzSWRlbnRpdHkoV1RGTW92ZShwYXJhbWV0ZXJzLndlYlByb2Nlc3NJZGVudGl0
eSkpCiAgICAgLCBtX3JlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5KG1ha2VVbmlxdWVSZWY8
UmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHk+KCp0aGlzKSkKICAgICAsIG1fc2Vzc2lvbklE
KHNlc3Npb25JRCkKICNpZiBQTEFURk9STShDT0NPQSkgJiYgVVNFKExJQldFQlJUQykKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNz
LmggYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5o
CmluZGV4IGUzOTIzZGI1NzM0ODFjOGU2OWE5YTc2MTI2MzI3Mzc3MDlkZDk3ZmEuLmI0NTkwN2Yy
NTQzOGUzZDdiODhmNDc0NmNjNDgwOGVmNGY0MjdjZmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvR1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmgKKysrIGIvU291cmNlL1dl
YktpdC9HUFVQcm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaApAQCAtNDEsNiArNDEs
NyBAQAogI2luY2x1ZGUgPFdlYkNvcmUvTm93UGxheWluZ01hbmFnZXIuaD4KICNpbmNsdWRlIDxX
ZWJDb3JlL1BhZ2VJZGVudGlmaWVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Qcm9jZXNzSWRlbnRp
Zmllci5oPgorI2luY2x1ZGUgPFdlYkNvcmUvUHJvY2Vzc0lkZW50aXR5Lmg+CiAjaW5jbHVkZSA8
cGFsL1Nlc3Npb25JRC5oPgogI2luY2x1ZGUgPHd0Zi9Mb2dnZXIuaD4KICNpbmNsdWRlIDx3dGYv
TWFjaFNlbmRSaWdodC5oPgpAQCAtMTU1LDEwICsxNTYsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBk
aXNwYXRjaERpc3BsYXlXYXNSZWNvbmZpZ3VyZWRGb3JUZXN0aW5nKCkgeyBkaXNwYXRjaERpc3Bs
YXlXYXNSZWNvbmZpZ3VyZWQoKTsgfTsKICNlbmRpZgogCi0jaWYgSEFWRShUQVNLX0lERU5USVRZ
X1RPS0VOKQotICAgIHRhc2tfaWRfdG9rZW5fdCB3ZWJQcm9jZXNzSWRlbnRpdHlUb2tlbigpIGNv
bnN0IHsgcmV0dXJuIHN0YXRpY19jYXN0PHRhc2tfaWRfdG9rZW5fdD4obV93ZWJQcm9jZXNzSWRl
bnRpdHlUb2tlbi5zZW5kUmlnaHQoKSk7IH0KLSNlbmRpZgotCisgICAgY29uc3QgV2ViQ29yZTo6
UHJvY2Vzc0lkZW50aXR5JiB3ZWJQcm9jZXNzSWRlbnRpdHkoKSBjb25zdCB7IHJldHVybiBtX3dl
YlByb2Nlc3NJZGVudGl0eTsgfQogI2lmIEVOQUJMRShFTkNSWVBURURfTUVESUEpCiAgICAgUmVt
b3RlQ0RNRmFjdG9yeVByb3h5JiBjZG1GYWN0b3J5UHJveHkoKTsKICNlbmRpZgpAQCAtMjgzLDkg
KzI4MSw3IEBAIHByaXZhdGU6CiAgICAgSVBDOjpNZXNzYWdlUmVjZWl2ZXJNYXAgbV9tZXNzYWdl
UmVjZWl2ZXJNYXA7CiAgICAgUmVmPEdQVVByb2Nlc3M+IG1fZ3B1UHJvY2VzczsKICAgICBjb25z
dCBXZWJDb3JlOjpQcm9jZXNzSWRlbnRpZmllciBtX3dlYlByb2Nlc3NJZGVudGlmaWVyOwotI2lm
IEhBVkUoVEFTS19JREVOVElUWV9UT0tFTikKLSAgICBNYWNoU2VuZFJpZ2h0IG1fd2ViUHJvY2Vz
c0lkZW50aXR5VG9rZW47Ci0jZW5kaWYKKyAgICBjb25zdCBXZWJDb3JlOjpQcm9jZXNzSWRlbnRp
dHkgbV93ZWJQcm9jZXNzSWRlbnRpdHk7CiAjaWYgRU5BQkxFKFdFQl9BVURJTykKICAgICBzdGQ6
OnVuaXF1ZV9wdHI8UmVtb3RlQXVkaW9EZXN0aW5hdGlvbk1hbmFnZXI+IG1fcmVtb3RlQXVkaW9E
ZXN0aW5hdGlvbk1hbmFnZXI7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BV
UHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVHcmFwaGljc0NvbnRleHRHTENvY29hLmNwcCBiL1NvdXJj
ZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVHcmFwaGljc0NvbnRleHRHTENvY29h
LmNwcAppbmRleCBiOGFhOWZkNTUxYTg4YTZjM2MwYTYyYTcyOTQwZmEzZDJjNDQxNjczLi42Yzkw
NjFiNWUyZWZlNWIyZmNkYzBmODUwMThmY2MxYjk2NDdlZTA2IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xDb2NvYS5j
cHAKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZUdyYXBoaWNz
Q29udGV4dEdMQ29jb2EuY3BwCkBAIC0yOSw2ICsyOSw3IEBACiAjaWYgRU5BQkxFKEdQVV9QUk9D
RVNTKSAmJiBFTkFCTEUoV0VCR0wpICYmIFBMQVRGT1JNKENPQ09BKQogCiAjaW5jbHVkZSAiR1BV
Q29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oIgorI2luY2x1ZGUgPFdlYkNvcmUvUHJvY2Vzc0lkZW50
aXR5Lmg+CiAjaW5jbHVkZSA8d3RmL01hY2hTZW5kUmlnaHQuaD4KIAogbmFtZXNwYWNlIFdlYktp
dCB7CkBAIC00NSw5ICs0Niw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHBsYXRmb3JtV29ya1F1ZXVl
SW5pdGlhbGl6ZShXZWJDb3JlOjpHcmFwaGljc0NvbnRleHRHTEF0dHJpYnV0ZXMmJikgZmluYWw7
CiAgICAgdm9pZCBwcmVwYXJlRm9yRGlzcGxheShDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdURjo6
TWFjaFNlbmRSaWdodCYmKT4mJikgZmluYWw7CiBwcml2YXRlOgotI2lmIEhBVkUoSU9TVVJGQUNF
X1NFVF9PV05FUlNISVBfSURFTlRJVFkpCi0gICAgdGFza19pZF90b2tlbl90IG1fd2ViUHJvY2Vz
c0lkZW50aXR5VG9rZW47Ci0jZW5kaWYKKyAgICBjb25zdCBQcm9jZXNzSWRlbnRpdHkgbV9yZXNv
dXJjZU93bmVyOwogfTsKIAogfQpAQCAtNjEsOSArNjAsNyBAQCBSZWY8UmVtb3RlR3JhcGhpY3ND
b250ZXh0R0w+IFJlbW90ZUdyYXBoaWNzQ29udGV4dEdMOjpjcmVhdGUoR1BVQ29ubmVjdGlvblRv
V2ViUAogCiBSZW1vdGVHcmFwaGljc0NvbnRleHRHTENvY29hOjpSZW1vdGVHcmFwaGljc0NvbnRl
eHRHTENvY29hKEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MmIGdwdUNvbm5lY3Rpb25Ub1dlYlBy
b2Nlc3MsIEdyYXBoaWNzQ29udGV4dEdMSWRlbnRpZmllciBncmFwaGljc0NvbnRleHRHTElkZW50
aWZpZXIsIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmQmIHJlbmRlcmluZ0JhY2tlbmQsIElQQzo6U3Ry
ZWFtQ29ubmVjdGlvbkJ1ZmZlciYmIHN0cmVhbSkKICAgICA6IFJlbW90ZUdyYXBoaWNzQ29udGV4
dEdMKGdwdUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MsIGdyYXBoaWNzQ29udGV4dEdMSWRlbnRpZmll
ciwgcmVuZGVyaW5nQmFja2VuZCwgV1RGTW92ZShzdHJlYW0pKQotI2lmIEhBVkUoSU9TVVJGQUNF
X1NFVF9PV05FUlNISVBfSURFTlRJVFkpCi0gICAgLCBtX3dlYlByb2Nlc3NJZGVudGl0eVRva2Vu
KGdwdUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3Mud2ViUHJvY2Vzc0lkZW50aXR5VG9rZW4oKSkKLSNl
bmRpZgorICAgICwgbV9yZXNvdXJjZU93bmVyKGdwdUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3Mud2Vi
UHJvY2Vzc0lkZW50aXR5KCkpCiB7CiAKIH0KQEAgLTcxLDcgKzY4LDcgQEAgUmVtb3RlR3JhcGhp
Y3NDb250ZXh0R0xDb2NvYTo6UmVtb3RlR3JhcGhpY3NDb250ZXh0R0xDb2NvYShHUFVDb25uZWN0
aW9uVG9XZWJQcm8KIHZvaWQgUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xDb2NvYTo6cGxhdGZvcm1X
b3JrUXVldWVJbml0aWFsaXplKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dEdMQXR0cmlidXRlcyYm
IGF0dHJpYnV0ZXMpCiB7CiAgICAgYXNzZXJ0SXNDdXJyZW50KG1fc3RyZWFtVGhyZWFkKTsKLSAg
ICBtX2NvbnRleHQgPSBHcmFwaGljc0NvbnRleHRHTENvY29hOjpjcmVhdGUoV1RGTW92ZShhdHRy
aWJ1dGVzKSk7CisgICAgbV9jb250ZXh0ID0gR3JhcGhpY3NDb250ZXh0R0xDb2NvYTo6Y3JlYXRl
KFdURk1vdmUoYXR0cmlidXRlcyksIFByb2Nlc3NJZGVudGl0eSB7IG1fcmVzb3VyY2VPd25lciB9
KTsKIH0KIAogdm9pZCBSZW1vdGVHcmFwaGljc0NvbnRleHRHTENvY29hOjpwcmVwYXJlRm9yRGlz
cGxheShDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdURjo6TWFjaFNlbmRSaWdodCYmKT4mJiBjb21w
bGV0aW9uSGFuZGxlcikKQEAgLTgyLDEwICs3OSw2IEBAIHZvaWQgUmVtb3RlR3JhcGhpY3NDb250
ZXh0R0xDb2NvYTo6cHJlcGFyZUZvckRpc3BsYXkoQ29tcGxldGlvbkhhbmRsZXI8dm9pZChXVEY6
CiAgICAgSU9TdXJmYWNlKiBkaXNwbGF5QnVmZmVyID0gbV9jb250ZXh0LT5kaXNwbGF5QnVmZmVy
KCk7CiAgICAgaWYgKGRpc3BsYXlCdWZmZXIpIHsKICAgICAgICAgbV9jb250ZXh0LT5tYXJrRGlz
cGxheUJ1ZmZlckluVXNlKCk7Ci0jaWYgSEFWRShJT1NVUkZBQ0VfU0VUX09XTkVSU0hJUF9JREVO
VElUWSkKLSAgICAgICAgLy8gTWFyayB0aGUgSU9TdXJmYWNlIGFzIGJlaW5nIG93bmVkIGJ5IHRo
ZSBXZWJQcm9jZXNzIGV2ZW4gdGhvdWdoIGl0IHdhcyBjb25zdHJ1Y3RlZCBieSB0aGUgR1BVUHJv
Y2VzcyBzbyB0aGF0IEpldHNhbSBrbm93cyB3aGljaCBwcm9jZXNzIHRvIGtpbGwuCi0gICAgICAg
IGRpc3BsYXlCdWZmZXItPnNldE93bmVyc2hpcElkZW50aXR5KG1fd2ViUHJvY2Vzc0lkZW50aXR5
VG9rZW4pOwotI2VuZGlmCiAgICAgICAgIHNlbmRSaWdodCA9IGRpc3BsYXlCdWZmZXItPmNyZWF0
ZVNlbmRSaWdodCgpOwogICAgIH0KICAgICBjb21wbGV0aW9uSGFuZGxlcihXVEZNb3ZlKHNlbmRS
aWdodCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1Jl
bW90ZUltYWdlQnVmZmVyLmggYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVt
b3RlSW1hZ2VCdWZmZXIuaAppbmRleCBhM2Q0OTRmZThiZjZhMTk2NDdlZjE5MGM5ZGI0MDQyYWVj
ZTY3MjIwLi4zNWI0NTI3MGI0NTg0MjQ4MDk4MTA0MmRjNzU1MzRmYmFiYWViZjJkIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlSW1hZ2VCdWZmZXIu
aAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlSW1hZ2VCdWZm
ZXIuaApAQCAtNjksMTMgKzY5LDExIEBAIHB1YmxpYzoKICAgICAgICAgICAgIGNvbnRleHQoKS5y
ZXN0b3JlKCk7CiAgICAgfQogCi0jaWYgSEFWRShJT1NVUkZBQ0VfU0VUX09XTkVSU0hJUF9JREVO
VElUWSkKLSAgICB2b2lkIHNldFByb2Nlc3NPd25lcnNoaXAodGFza19pZF90b2tlbl90IG5ld093
bmVyKQorICAgIHZvaWQgc2V0T3duZXJzaGlwSWRlbnRpdHkoY29uc3QgV2ViQ29yZTo6UHJvY2Vz
c0lkZW50aXR5JiByZXNvdXJjZU93bmVyKQogICAgIHsKICAgICAgICAgaWYgKG1fYmFja2VuZCkK
LSAgICAgICAgICAgIG1fYmFja2VuZC0+c2V0UHJvY2Vzc093bmVyc2hpcChuZXdPd25lcik7Cisg
ICAgICAgICAgICBtX2JhY2tlbmQtPnNldE93bmVyc2hpcElkZW50aXR5KHJlc291cmNlT3duZXIp
OwogICAgIH0KLSNlbmRpZgogCiBwcml2YXRlOgogICAgIGZyaWVuZCBjbGFzcyBSZW1vdGVSZW5k
ZXJpbmdCYWNrZW5kOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBo
aWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQuY3BwIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNz
L2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQuY3BwCmluZGV4IGIwZGY1MzQzNDQ5Nzgy
ZmE0Y2UzMWJjZjMzMmQ4ZmM1YmNjOGIxMDIuLjhkZmIyNWQ4MjkyNjk0YTJkODEyZGFjYWI5ODdh
MGM5ZWJlMzhlYmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGlj
cy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nl
c3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5jcHAKQEAgLTg1LDYgKzg1LDcgQEAg
UmVtb3RlUmVuZGVyaW5nQmFja2VuZDo6UmVtb3RlUmVuZGVyaW5nQmFja2VuZChHUFVDb25uZWN0
aW9uVG9XZWJQcm9jZXNzJiBncHVDb24KICAgICAsIG1fc3RyZWFtQ29ubmVjdGlvbihJUEM6OlN0
cmVhbVNlcnZlckNvbm5lY3Rpb246OmNyZWF0ZShncHVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNv
bm5lY3Rpb24oKSwgV1RGTW92ZShzdHJlYW1CdWZmZXIpLCBtX3dvcmtRdWV1ZS5nZXQoKSkpCiAg
ICAgLCBtX3JlbW90ZVJlc291cmNlQ2FjaGUoZ3B1Q29ubmVjdGlvblRvV2ViUHJvY2Vzcy53ZWJQ
cm9jZXNzSWRlbnRpZmllcigpKQogICAgICwgbV9ncHVDb25uZWN0aW9uVG9XZWJQcm9jZXNzKGdw
dUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MpCisgICAgLCBtX3Jlc291cmNlT3duZXIoZ3B1Q29ubmVj
dGlvblRvV2ViUHJvY2Vzcy53ZWJQcm9jZXNzSWRlbnRpdHkoKSkKICAgICAsIG1fcmVuZGVyaW5n
QmFja2VuZElkZW50aWZpZXIoY3JlYXRpb25QYXJhbWV0ZXJzLmlkZW50aWZpZXIpCiB7CiAgICAg
QVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsKQEAgLTE3NCwxMCArMTc1LDkgQEAgdm9pZCBSZW1v
dGVSZW5kZXJpbmdCYWNrZW5kOjpjcmVhdGVJbWFnZUJ1ZmZlcldpdGhRdWFsaWZpZWRJZGVudGlm
aWVyKGNvbnN0IEZsb2EKIAogICAgIGlmIChyZW5kZXJpbmdNb2RlID09IFJlbmRlcmluZ01vZGU6
OkFjY2VsZXJhdGVkKSB7CiAgICAgICAgIGlmIChhdXRvIGFjY2VsZXJhdGVkSW1hZ2VCdWZmZXIg
PSBBY2NlbGVyYXRlZFJlbW90ZUltYWdlQnVmZmVyOjpjcmVhdGUobG9naWNhbFNpemUsIHJlc29s
dXRpb25TY2FsZSwgY29sb3JTcGFjZSwgcGl4ZWxGb3JtYXQsICp0aGlzLCBpbWFnZUJ1ZmZlclJl
c291cmNlSWRlbnRpZmllcikpIHsKLSNpZiBIQVZFKElPU1VSRkFDRV9TRVRfT1dORVJTSElQX0lE
RU5USVRZKQogICAgICAgICAgICAgLy8gTWFyayB0aGUgSU9TdXJmYWNlIGFzIGJlaW5nIG93bmVk
IGJ5IHRoZSBXZWJQcm9jZXNzIGV2ZW4gdGhvdWdoIGl0IHdhcyBjb25zdHJ1Y3RlZCBieSB0aGUg
R1BVUHJvY2VzcyBzbyB0aGF0IEpldHNhbSBrbm93cyB3aGljaCBwcm9jZXNzIHRvIGtpbGwuCi0g
ICAgICAgICAgICBhY2NlbGVyYXRlZEltYWdlQnVmZmVyLT5zZXRQcm9jZXNzT3duZXJzaGlwKG1f
Z3B1Q29ubmVjdGlvblRvV2ViUHJvY2Vzcy0+d2ViUHJvY2Vzc0lkZW50aXR5VG9rZW4oKSk7Ci0j
ZW5kaWYKKyAgICAgICAgICAgIGlmIChtX3Jlc291cmNlT3duZXIpCisgICAgICAgICAgICAgICAg
YWNjZWxlcmF0ZWRJbWFnZUJ1ZmZlci0+c2V0T3duZXJzaGlwSWRlbnRpdHkobV9yZXNvdXJjZU93
bmVyKTsKICAgICAgICAgICAgIGltYWdlQnVmZmVyID0gV1RGTW92ZShhY2NlbGVyYXRlZEltYWdl
QnVmZmVyKTsKICAgICAgICAgfQogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BV
UHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmggYi9Tb3VyY2UvV2ViS2l0
L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5oCmluZGV4IGUzNTcx
NWRkMTdmZWU2NDM0NWIyMjYyZDY4Y2ViZWE0ZDc0YWI5OTYuLjlhMjZjNDI0YjkxMjExMDExOGI0
MzYxODRkZTMwYjhkMjhkZDE1MjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vz
cy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmgKKysrIGIvU291cmNlL1dlYktpdC9H
UFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQuaApAQCAtNDYsNiArNDYs
NyBAQAogI2luY2x1ZGUgPFdlYkNvcmUvRGlzcGxheUxpc3RJdGVtcy5oPgogI2luY2x1ZGUgPFdl
YkNvcmUvRGlzcGxheUxpc3RSZXBsYXllci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUHJvY2Vzc0lk
ZW50aWZpZXIuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1Byb2Nlc3NJZGVudGl0eS5oPgogI2luY2x1
ZGUgPHd0Zi9XZWFrUHRyLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTEzMyw2ICsxMzQs
NyBAQCBwcml2YXRlOgogICAgIFJlZjxJUEM6OlN0cmVhbVNlcnZlckNvbm5lY3Rpb24+IG1fc3Ry
ZWFtQ29ubmVjdGlvbjsKICAgICBSZW1vdGVSZXNvdXJjZUNhY2hlIG1fcmVtb3RlUmVzb3VyY2VD
YWNoZTsKICAgICBSZWY8R1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcz4gbV9ncHVDb25uZWN0aW9u
VG9XZWJQcm9jZXNzOworICAgIFdlYkNvcmU6OlByb2Nlc3NJZGVudGl0eSBtX3Jlc291cmNlT3du
ZXI7CiAgICAgUmVuZGVyaW5nQmFja2VuZElkZW50aWZpZXIgbV9yZW5kZXJpbmdCYWNrZW5kSWRl
bnRpZmllcjsKICAgICBJUEM6OlNlbWFwaG9yZSBtX2dldFBpeGVsQnVmZmVyU2VtYXBob3JlOwog
ICAgIFJlZlB0cjxTaGFyZWRNZW1vcnk+IG1fZ2V0UGl4ZWxCdWZmZXJTaGFyZWRNZW1vcnk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mvd2VicnRjL0xpYldlYlJUQ0NvZGVj
c1Byb3h5Lm1tIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL3dlYnJ0Yy9MaWJXZWJSVENDb2Rl
Y3NQcm94eS5tbQppbmRleCAxMzNlMjZlNDc0ZTFkMzE5MTYzZTU1NzE5OTJkMGMwYzcxOWRkZTE0
Li43ZDU3OTIyMTAwMzE5YzAwMTMxMzdkOGEyZGUzOTU0NzRjODUzOGUwIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mvd2VicnRjL0xpYldlYlJUQ0NvZGVjc1Byb3h5Lm1tCisr
KyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy93ZWJydGMvTGliV2ViUlRDQ29kZWNzUHJveHku
bW0KQEAgLTc3LDE0ICs3NywxMSBAQCB2b2lkIExpYldlYlJUQ0NvZGVjc1Byb3h5OjpjbG9zZSgp
CiBzdGF0aWMgRnVuY3Rpb248dm9pZChDVlBpeGVsQnVmZmVyUmVmIHBpeGVsQnVmZmVyLCB1aW50
MzJfdCB0aW1lU3RhbXBOcywgdWludDMyX3QgdGltZVN0YW1wKT4gY3JlYXRlRGVjb2RlckNhbGxi
YWNrKFJUQ0RlY29kZXJJZGVudGlmaWVyIGlkZW50aWZpZXIsIEdQVUNvbm5lY3Rpb25Ub1dlYlBy
b2Nlc3MmIGdwdUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MpCiB7CiAgICAgcmV0dXJuIFtjb25uZWN0
aW9uID0gUmVmIHsgZ3B1Q29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jb25uZWN0aW9uKCkgfSwKLSNp
ZiBIQVZFKElPU1VSRkFDRV9TRVRfT1dORVJTSElQX0lERU5USVRZKQotICAgICAgICB0b2tlbiA9
IGdwdUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3Mud2ViUHJvY2Vzc0lkZW50aXR5VG9rZW4oKSwKLSNl
bmRpZgorICAgICAgICByZXNvdXJjZU93bmVyID0gZ3B1Q29ubmVjdGlvblRvV2ViUHJvY2Vzcy53
ZWJQcm9jZXNzSWRlbnRpdHkoKSwKICAgICAgICAgaWRlbnRpZmllcl0oQ1ZQaXhlbEJ1ZmZlclJl
ZiBwaXhlbEJ1ZmZlciwgdWludDMyX3QgdGltZVN0YW1wTnMsIHVpbnQzMl90IHRpbWVTdGFtcCkg
ewogICAgICAgICBpZiAoYXV0byBzYW1wbGUgPSBXZWJDb3JlOjpSZW1vdGVWaWRlb1NhbXBsZTo6
Y3JlYXRlKHBpeGVsQnVmZmVyLCBNZWRpYVRpbWUodGltZVN0YW1wTnMsIDEpKSkgewotI2lmIEhB
VkUoSU9TVVJGQUNFX1NFVF9PV05FUlNISVBfSURFTlRJVFkpCi0gICAgICAgICAgICBzYW1wbGUt
PnNldE93bmVyc2hpcElkZW50aXR5KHRva2VuKTsKLSNlbmRpZgorICAgICAgICAgICAgaWYgKHJl
c291cmNlT3duZXIpCisgICAgICAgICAgICAgICAgc2FtcGxlLT5zZXRPd25lcnNoaXBJZGVudGl0
eShyZXNvdXJjZU93bmVyKTsKICAgICAgICAgICAgIGNvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6
OkxpYldlYlJUQ0NvZGVjczo6Q29tcGxldGVkRGVjb2RpbmcgeyBpZGVudGlmaWVyLCB0aW1lU3Rh
bXAsICpzYW1wbGUgfSwgMCk7CiAgICAgICAgIH0KICAgICB9OwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9TaGFyZWQvR1BVUHJvY2Vzc0Nvbm5lY3Rpb25QYXJhbWV0ZXJzLmggYi9Tb3VyY2Uv
V2ViS2l0L1NoYXJlZC9HUFVQcm9jZXNzQ29ubmVjdGlvblBhcmFtZXRlcnMuaAppbmRleCAwOTZm
ZDBlM2JhNmM3ZWMxMTc3OGY5OTRmZmQ1ZTg2NzdlMjBmYzU2Li5lZDMwNDk1YjI1MjI4NjFmNzQ2
NDUyZmU5MDkxYjk2NTYxMTA2NzcwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9H
UFVQcm9jZXNzQ29ubmVjdGlvblBhcmFtZXRlcnMuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC9HUFVQcm9jZXNzQ29ubmVjdGlvblBhcmFtZXRlcnMuaApAQCAtMjgsMTQgKzI4LDEzIEBACiAj
aWYgRU5BQkxFKEdQVV9QUk9DRVNTKQogCiAjaW5jbHVkZSAiV2ViQ29yZUFyZ3VtZW50Q29kZXJz
LmgiCisjaW5jbHVkZSA8V2ViQ29yZS9Qcm9jZXNzSWRlbnRpdHkuaD4KICNpbmNsdWRlIDx3dGYv
TWFjaFNlbmRSaWdodC5oPgogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogc3RydWN0IEdQVVByb2Nl
c3NDb25uZWN0aW9uUGFyYW1ldGVycyB7Ci0jaWYgSEFWRShUQVNLX0lERU5USVRZX1RPS0VOKQot
ICAgIE1hY2hTZW5kUmlnaHQgd2ViUHJvY2Vzc0lkZW50aXR5VG9rZW47Ci0jZW5kaWYKKyAgICBX
ZWJDb3JlOjpQcm9jZXNzSWRlbnRpdHkgd2ViUHJvY2Vzc0lkZW50aXR5OwogICAgIFZlY3RvcjxT
dHJpbmc+IG92ZXJyaWRlTGFuZ3VhZ2VzOwogI2lmIEVOQUJMRShJUENfVEVTVElOR19BUEkpCiAg
ICAgYm9vbCBpZ25vcmVJbnZhbGlkTWVzc2FnZUZvclRlc3RpbmcgeyBmYWxzZSB9OwpAQCAtNDYs
OSArNDUsNyBAQCBzdHJ1Y3QgR1BVUHJvY2Vzc0Nvbm5lY3Rpb25QYXJhbWV0ZXJzIHsKIAogICAg
IHZvaWQgZW5jb2RlKElQQzo6RW5jb2RlciYgZW5jb2RlcikgY29uc3QKICAgICB7Ci0jaWYgSEFW
RShUQVNLX0lERU5USVRZX1RPS0VOKQotICAgICAgICBlbmNvZGVyIDw8IHdlYlByb2Nlc3NJZGVu
dGl0eVRva2VuOwotI2VuZGlmCisgICAgICAgIGVuY29kZXIgPDwgd2ViUHJvY2Vzc0lkZW50aXR5
OwogICAgICAgICBlbmNvZGVyIDw8IG92ZXJyaWRlTGFuZ3VhZ2VzOwogI2lmIEVOQUJMRShJUENf
VEVTVElOR19BUEkpCiAgICAgICAgIGVuY29kZXIgPDwgaWdub3JlSW52YWxpZE1lc3NhZ2VGb3JU
ZXN0aW5nOwpAQCAtNjAsMTIgKzU3LDEwIEBAIHN0cnVjdCBHUFVQcm9jZXNzQ29ubmVjdGlvblBh
cmFtZXRlcnMgewogCiAgICAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8R1BVUHJvY2Vzc0Nvbm5lY3Rp
b25QYXJhbWV0ZXJzPiBkZWNvZGUoSVBDOjpEZWNvZGVyJiBkZWNvZGVyKQogICAgIHsKLSNpZiBI
QVZFKFRBU0tfSURFTlRJVFlfVE9LRU4pCi0gICAgICAgIHN0ZDo6b3B0aW9uYWw8TWFjaFNlbmRS
aWdodD4gd2ViUHJvY2Vzc0lkZW50aXR5VG9rZW47Ci0gICAgICAgIGRlY29kZXIgPj4gd2ViUHJv
Y2Vzc0lkZW50aXR5VG9rZW47Ci0gICAgICAgIGlmICghd2ViUHJvY2Vzc0lkZW50aXR5VG9rZW4p
CisgICAgICAgIHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6UHJvY2Vzc0lkZW50aXR5PiB3ZWJQcm9j
ZXNzSWRlbnRpdHk7CisgICAgICAgIGRlY29kZXIgPj4gd2ViUHJvY2Vzc0lkZW50aXR5OworICAg
ICAgICBpZiAoIXdlYlByb2Nlc3NJZGVudGl0eSkKICAgICAgICAgICAgIHJldHVybiBzdGQ6Om51
bGxvcHQ7Ci0jZW5kaWYKIAogICAgICAgICBzdGQ6Om9wdGlvbmFsPFZlY3RvcjxTdHJpbmc+PiBv
dmVycmlkZUxhbmd1YWdlczsKICAgICAgICAgZGVjb2RlciA+PiBvdmVycmlkZUxhbmd1YWdlczsK
QEAgLTg2LDkgKzgxLDcgQEAgc3RydWN0IEdQVVByb2Nlc3NDb25uZWN0aW9uUGFyYW1ldGVycyB7
CiAjZW5kaWYKIAogICAgICAgICByZXR1cm4gR1BVUHJvY2Vzc0Nvbm5lY3Rpb25QYXJhbWV0ZXJz
IHsKLSNpZiBIQVZFKFRBU0tfSURFTlRJVFlfVE9LRU4pCi0gICAgICAgICAgICBXVEZNb3ZlKCp3
ZWJQcm9jZXNzSWRlbnRpdHlUb2tlbiksCi0jZW5kaWYKKyAgICAgICAgICAgIFdURk1vdmUoKndl
YlByb2Nlc3NJZGVudGl0eSksCiAgICAgICAgICAgICBXVEZNb3ZlKCpvdmVycmlkZUxhbmd1YWdl
cyksCiAjaWYgRU5BQkxFKElQQ19URVNUSU5HX0FQSSkKICAgICAgICAgICAgICppZ25vcmVJbnZh
bGlkTWVzc2FnZUZvclRlc3RpbmcsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9X
ZWJDb3JlQXJndW1lbnRDb2RlcnMuY3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29yZUFy
Z3VtZW50Q29kZXJzLmNwcAppbmRleCA2NDk4MmJjNDgxMDJhNGFkYjIwYTdlNjBlMjFiZDQ5MmQ2
NTMzNzRjLi43ZTlkZjk0MTYyYjNhZmFhMjdmMTQ1NWY1YThjNjI2OTg5N2NlN2NiIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5jcHAKQEAgLTMyMzQs
NCArMzIzNCwyMiBAQCBzdGQ6Om9wdGlvbmFsPFRleHRSZWNvZ25pdGlvbkRhdGFEZXRlY3Rvcj4g
QXJndW1lbnRDb2RlcjxUZXh0UmVjb2duaXRpb25EYXRhRGV0ZQogCiAjZW5kaWYgLy8gRU5BQkxF
KElNQUdFX0FOQUxZU0lTKSAmJiBFTkFCTEUoREFUQV9ERVRFQ1RJT04pCiAKK3ZvaWQgQXJndW1l
bnRDb2RlcjxQcm9jZXNzSWRlbnRpdHk+OjplbmNvZGUoRW5jb2RlciYgZW5jb2RlciwgY29uc3Qg
UHJvY2Vzc0lkZW50aXR5JiBpZGVudGl0eSkKK3sKKyNpZiBIQVZFKFRBU0tfSURFTlRJVFlfVE9L
RU4pCisgICAgZW5jb2RlciA8PCBpZGVudGl0eS5zZW5kUmlnaHQoKTsKKyNlbmRpZgorfQorCitz
dGQ6Om9wdGlvbmFsPFByb2Nlc3NJZGVudGl0eT4gQXJndW1lbnRDb2RlcjxQcm9jZXNzSWRlbnRp
dHk+OjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKK3sKKyNpZiBIQVZFKFRBU0tfSURFTlRJVFlf
VE9LRU4pCisgICAgc3RkOjpvcHRpb25hbDxNYWNoU2VuZFJpZ2h0PiBpZGVudGl0eVNlbmRSaWdo
dDsKKyAgICBkZWNvZGVyID4+IGlkZW50aXR5U2VuZFJpZ2h0OworICAgIGlmIChpZGVudGl0eVNl
bmRSaWdodCkKKyAgICAgICAgcmV0dXJuIFByb2Nlc3NJZGVudGl0eSB7IFdURk1vdmUoKmlkZW50
aXR5U2VuZFJpZ2h0KSB9OworI2VuZGlmCisgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKK30KKwog
fSAvLyBuYW1lc3BhY2UgSVBDCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJD
b3JlQXJndW1lbnRDb2RlcnMuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVu
dENvZGVycy5oCmluZGV4IDI1ZjAxYzAyOTJhMDE5ZjA2NzYyNGJiYjU1MzQwMmRmMWEzM2M1YjYu
LjkzYjYzNWRjZmU3NDBmMTI4NTkwYmFkOWVmNWFiOWNjNzY0Njg4ZTggMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5oCkBAIC00OSw2ICs0OSw3IEBACiAj
aW5jbHVkZSA8V2ViQ29yZS9OYXRpdmVJbWFnZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvTmV0d29y
a0xvYWRNZXRyaWNzLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Ob3RpZmljYXRpb25EaXJlY3Rpb24u
aD4KKyNpbmNsdWRlIDxXZWJDb3JlL1Byb2Nlc3NJZGVudGl0eS5oPgogI2luY2x1ZGUgPFdlYkNv
cmUvUmVhbHRpbWVNZWRpYVNvdXJjZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUmVuZGVyaW5nTW9k
ZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU2Nyb2xsU25hcE9mZnNldHNJbmZvLmg+CkBAIC01Niw2
ICs1Nyw3IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9TZXJpYWxpemVkUGxhdGZvcm1EYXRhQ3VlVmFs
dWUuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1NlcnZpY2VXb3JrZXJUeXBlcy5oPgogI2luY2x1ZGUg
PFdlYkNvcmUvU3RvcmVkQ3JlZGVudGlhbHNQb2xpY3kuaD4KKwogI2luY2x1ZGUgPFdlYkNvcmUv
V29ya2VyVHlwZS5oPgogI2luY2x1ZGUgPHd0Zi9FbnVtVHJhaXRzLmg+CiAKQEAgLTgyMyw2ICs4
MjUsMTEgQEAgdGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxSZXRhaW5QdHI8Q1ZQaXhl
bEJ1ZmZlclJlZj4+IHsKIAogI2VuZGlmCiAKK3RlbXBsYXRlPD4gc3RydWN0IEFyZ3VtZW50Q29k
ZXI8V2ViQ29yZTo6UHJvY2Vzc0lkZW50aXR5PiB7CisgICAgc3RhdGljIHZvaWQgZW5jb2RlKEVu
Y29kZXImLCBjb25zdCBXZWJDb3JlOjpQcm9jZXNzSWRlbnRpdHkmKTsKKyAgICBzdGF0aWMgc3Rk
OjpvcHRpb25hbDxXZWJDb3JlOjpQcm9jZXNzSWRlbnRpdHk+IGRlY29kZShEZWNvZGVyJik7Cit9
OworCiB9IC8vIG5hbWVzcGFjZSBJUEMKIAogbmFtZXNwYWNlIFdURiB7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5
LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5h
Z2VyUHJveHkuY3BwCmluZGV4IDJiYjNiY2RiNTgyZGM4NTNmMjA4M2VjZTQ0NzE5M2M0NDE5M2Vj
OTIuLmJkYWY5OGQxMGRkMzU4YmRkN2JmNzkzM2FiZDE0ODY1MDdjY2VkODYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJv
eHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1
cmVNYW5hZ2VyUHJveHkuY3BwCkBAIC01Nyw5ICs1NywxMCBAQCBjbGFzcyBVc2VyTWVkaWFDYXB0
dXJlTWFuYWdlclByb3h5OjpTb3VyY2VQcm94eQogICAgICwgcHJpdmF0ZSBSZWFsdGltZU1lZGlh
U291cmNlOjpWaWRlb1NhbXBsZU9ic2VydmVyIHsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRF
RDsKIHB1YmxpYzoKLSAgICBTb3VyY2VQcm94eShSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmll
ciBpZCwgUmVmPElQQzo6Q29ubmVjdGlvbj4mJiBjb25uZWN0aW9uLCBSZWY8UmVhbHRpbWVNZWRp
YVNvdXJjZT4mJiBzb3VyY2UpCisgICAgU291cmNlUHJveHkoUmVhbHRpbWVNZWRpYVNvdXJjZUlk
ZW50aWZpZXIgaWQsIFJlZjxJUEM6OkNvbm5lY3Rpb24+JiYgY29ubmVjdGlvbiwgUHJvY2Vzc0lk
ZW50aXR5JiYgcmVzb3VyY2VPd25lciwgUmVmPFJlYWx0aW1lTWVkaWFTb3VyY2U+JiYgc291cmNl
KQogICAgICAgICA6IG1faWQoaWQpCiAgICAgICAgICwgbV9jb25uZWN0aW9uKFdURk1vdmUoY29u
bmVjdGlvbikpCisgICAgICAgICwgbV9yZXNvdXJjZU93bmVyKFdURk1vdmUocmVzb3VyY2VPd25l
cikpCiAgICAgICAgICwgbV9zb3VyY2UoV1RGTW92ZShzb3VyY2UpKQogICAgIHsKICAgICAgICAg
bV9zb3VyY2UtPmFkZE9ic2VydmVyKCp0aGlzKTsKQEAgLTEyNSw5ICsxMjYsNiBAQCBwdWJsaWM6
CiAgICAgfQogCiAgICAgdm9pZCBzZXRTaG91bGRBcHBseVJvdGF0aW9uKGJvb2wgc2hvdWxkQXBw
bHlSb3RhdGlvbikgeyBtX3Nob3VsZEFwcGx5Um90YXRpb24gPSB0cnVlOyB9Ci0jaWYgSEFWRShJ
T1NVUkZBQ0VfU0VUX09XTkVSU0hJUF9JREVOVElUWSkKLSAgICB2b2lkIHNldFdlYlByb2Nlc3NJ
ZGVudGl0eVRva2VuKHN0ZDo6b3B0aW9uYWw8dGFza19pZF90b2tlbl90PiB0b2tlbikgeyBtX3dl
YlByb2Nlc3NJZGVudGl0eVRva2VuID0gdG9rZW47fQotI2VuZGlmCiAKIHByaXZhdGU6CiAgICAg
dm9pZCBzb3VyY2VTdG9wcGVkKCkgZmluYWwgewpAQCAtMTg4LDEwICsxODYsOCBAQCBwcml2YXRl
OgogICAgICAgICB9IGVsc2UKICAgICAgICAgICAgIHJlbW90ZVNhbXBsZSA9IFJlbW90ZVZpZGVv
U2FtcGxlOjpjcmVhdGUoc2FtcGxlKTsKICAgICAgICAgaWYgKHJlbW90ZVNhbXBsZSkgewotI2lm
IEhBVkUoSU9TVVJGQUNFX1NFVF9PV05FUlNISVBfSURFTlRJVFkpCi0gICAgICAgICAgICBpZiAo
bV93ZWJQcm9jZXNzSWRlbnRpdHlUb2tlbikKLSAgICAgICAgICAgICAgICByZW1vdGVTYW1wbGUt
PnNldE93bmVyc2hpcElkZW50aXR5KCptX3dlYlByb2Nlc3NJZGVudGl0eVRva2VuKTsKLSNlbmRp
ZgorICAgICAgICAgICAgaWYgKG1fcmVzb3VyY2VPd25lcikKKyAgICAgICAgICAgICAgICByZW1v
dGVTYW1wbGUtPnNldE93bmVyc2hpcElkZW50aXR5KG1fcmVzb3VyY2VPd25lcik7CiAgICAgICAg
ICAgICBtX2Nvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6OlJlbW90ZUNhcHR1cmVTYW1wbGVNYW5h
Z2VyOjpWaWRlb1NhbXBsZUF2YWlsYWJsZShtX2lkLCBXVEZNb3ZlKCpyZW1vdGVTYW1wbGUpLCBt
ZXRhZGF0YSksIDApOwogICAgICAgICB9CiAgICAgfQpAQCAtMjQ0LDYgKzI0MCw3IEBAIHByaXZh
dGU6CiAgICAgUmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgbV9pZDsKICAgICBXZWFrUHRy
PFBsYXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdlcj4gbV9zZXNzaW9uTWFuYWdlcjsKICAgICBSZWY8
SVBDOjpDb25uZWN0aW9uPiBtX2Nvbm5lY3Rpb247CisgICAgUHJvY2Vzc0lkZW50aXR5IG1fcmVz
b3VyY2VPd25lcjsKICAgICBSZWY8UmVhbHRpbWVNZWRpYVNvdXJjZT4gbV9zb3VyY2U7CiAgICAg
c3RkOjp1bmlxdWVfcHRyPENBUmluZ0J1ZmZlcj4gbV9yaW5nQnVmZmVyOwogICAgIENBQXVkaW9T
dHJlYW1EZXNjcmlwdGlvbiBtX2Rlc2NyaXB0aW9uIHsgfTsKQEAgLTI1Nyw5ICsyNTQsNiBAQCBw
cml2YXRlOgogICAgIHNpemVfdCBtX2ZyYW1lQ2h1bmtTaXplIHsgMCB9OwogICAgIE1lZGlhVGlt
ZSBtX3N0YXJ0VGltZTsKICAgICBib29sIG1fc2hvdWxkUmVzZXQgeyBmYWxzZSB9OwotI2lmIEhB
VkUoVEFTS19JREVOVElUWV9UT0tFTikKLSAgICBzdGQ6Om9wdGlvbmFsPHRhc2tfaWRfdG9rZW5f
dD4gbV93ZWJQcm9jZXNzSWRlbnRpdHlUb2tlbjsKLSNlbmRpZgogfTsKIAogVXNlck1lZGlhQ2Fw
dHVyZU1hbmFnZXJQcm94eTo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eShVbmlxdWVSZWY8
Q29ubmVjdGlvblByb3h5PiYmIGNvbm5lY3Rpb25Qcm94eSkKQEAgLTMyMywxMiArMzE3LDcgQEAg
dm9pZCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OjpjcmVhdGVNZWRpYVNvdXJjZUZvckNh
cHR1cmVEZXZpY2VXaXRoQ29uc3RyYWkKICAgICAgICAgfQogCiAgICAgICAgIEFTU0VSVCghbV9w
cm94aWVzLmNvbnRhaW5zKGlkKSk7Ci0gICAgICAgIGF1dG8gcHJveHkgPSBtYWtlVW5pcXVlPFNv
dXJjZVByb3h5PihpZCwgbV9jb25uZWN0aW9uUHJveHktPmNvbm5lY3Rpb24oKSwgV1RGTW92ZShz
b3VyY2UpKTsKLSNpZiBIQVZFKElPU1VSRkFDRV9TRVRfT1dORVJTSElQX0lERU5USVRZKQotICAg
ICAgICBpZiAoZGV2aWNlLnR5cGUoKSAhPSBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlOjpEZXZpY2VU
eXBlOjpNaWNyb3Bob25lKQotICAgICAgICAgICAgcHJveHktPnNldFdlYlByb2Nlc3NJZGVudGl0
eVRva2VuKG1fY29ubmVjdGlvblByb3h5LT53ZWJQcm9jZXNzSWRlbnRpdHlUb2tlbigpKTsKLSNl
bmRpZgotCisgICAgICAgIGF1dG8gcHJveHkgPSBtYWtlVW5pcXVlPFNvdXJjZVByb3h5PihpZCwg
bV9jb25uZWN0aW9uUHJveHktPmNvbm5lY3Rpb24oKSwgUHJvY2Vzc0lkZW50aXR5IHsgbV9jb25u
ZWN0aW9uUHJveHktPnJlc291cmNlT3duZXIoKSB9LCBXVEZNb3ZlKHNvdXJjZSkpOwogICAgICAg
ICBtX3Byb3hpZXMuYWRkKGlkLCBXVEZNb3ZlKHByb3h5KSk7CiAgICAgfSBlbHNlCiAgICAgICAg
IGludmFsaWRDb25zdHJhaW50cyA9IFdURk1vdmUoc291cmNlT3JFcnJvci5lcnJvck1lc3NhZ2Up
OwpAQCAtMzk0LDcgKzM4Myw3IEBAIHZvaWQgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6
Y2xvbmUoUmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgY2xvbmVkSUQsCiAgICAgTUVTU0FH
RV9DSEVDSyhtX3Byb3hpZXMuY29udGFpbnMoY2xvbmVkSUQpKTsKICAgICBNRVNTQUdFX0NIRUNL
KCFtX3Byb3hpZXMuY29udGFpbnMobmV3U291cmNlSUQpKTsKICAgICBpZiAoYXV0byogcHJveHkg
PSBtX3Byb3hpZXMuZ2V0KGNsb25lZElEKSkKLSAgICAgICAgbV9wcm94aWVzLmFkZChuZXdTb3Vy
Y2VJRCwgbWFrZVVuaXF1ZTxTb3VyY2VQcm94eT4obmV3U291cmNlSUQsIG1fY29ubmVjdGlvblBy
b3h5LT5jb25uZWN0aW9uKCksIHByb3h5LT5zb3VyY2UoKS5jbG9uZSgpKSk7CisgICAgICAgIG1f
cHJveGllcy5hZGQobmV3U291cmNlSUQsIG1ha2VVbmlxdWU8U291cmNlUHJveHk+KG5ld1NvdXJj
ZUlELCBtX2Nvbm5lY3Rpb25Qcm94eS0+Y29ubmVjdGlvbigpLCBQcm9jZXNzSWRlbnRpdHkgeyBt
X2Nvbm5lY3Rpb25Qcm94eS0+cmVzb3VyY2VPd25lcigpIH0sIHByb3h5LT5zb3VyY2UoKS5jbG9u
ZSgpKSk7CiB9CiAKIHZvaWQgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6cmVxdWVzdFRv
RW5kKFJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIHNvdXJjZUlEKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94
eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFn
ZXJQcm94eS5oCmluZGV4IGEwOTQyOWRmNjc5MWU5MGY4NGE5MzQ5NWZiMGVkMjg1Y2NlZDBkMmMu
LmZhODI5YzdjNDkwM2Q1MWI1N2E3ODk3MTc4NDczZjgwY2JmMjg2ZGUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHku
aAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFu
YWdlclByb3h5LmgKQEAgLTMyLDYgKzMyLDcgQEAKICNpbmNsdWRlICJVc2VyTWVkaWFDYXB0dXJl
TWFuYWdlci5oIgogI2luY2x1ZGUgPFdlYkNvcmUvQ2FwdHVyZURldmljZS5oPgogI2luY2x1ZGUg
PFdlYkNvcmUvT3JpZW50YXRpb25Ob3RpZmllci5oPgorI2luY2x1ZGUgPFdlYkNvcmUvUHJvY2Vz
c0lkZW50aXR5Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9SZWFsdGltZU1lZGlhU291cmNlLmg+CiAj
aW5jbHVkZSA8V2ViQ29yZS9SZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllci5oPgogI2luY2x1
ZGUgPHBhbC9zcGkvY29jb2EvVENDU1BJLmg+CkBAIC01OSw5ICs2MCw3IEBAIHB1YmxpYzoKICAg
ICAgICAgdmlydHVhbCBib29sIHdpbGxTdGFydENhcHR1cmUoV2ViQ29yZTo6Q2FwdHVyZURldmlj
ZTo6RGV2aWNlVHlwZSkgY29uc3QgPSAwOwogICAgICAgICB2aXJ0dWFsIExvZ2dlciYgbG9nZ2Vy
KCkgPSAwOwogICAgICAgICB2aXJ0dWFsIGJvb2wgc2V0Q2FwdHVyZUF0dHJpYnV0aW9uU3RyaW5n
KCkgeyByZXR1cm4gdHJ1ZTsgfQotI2lmIEhBVkUoSU9TVVJGQUNFX1NFVF9PV05FUlNISVBfSURF
TlRJVFkpCi0gICAgICAgIHZpcnR1YWwgc3RkOjpvcHRpb25hbDx0YXNrX2lkX3Rva2VuX3Q+IHdl
YlByb2Nlc3NJZGVudGl0eVRva2VuKCkgY29uc3QgeyByZXR1cm4geyB9OyB9OwotI2VuZGlmCisg
ICAgICAgIHZpcnR1YWwgY29uc3QgV2ViQ29yZTo6UHJvY2Vzc0lkZW50aXR5JiByZXNvdXJjZU93
bmVyKCkgY29uc3QgPSAwOwogI2lmIEVOQUJMRShBUFBfUFJJVkFDWV9SRVBPUlQpCiAgICAgICAg
IHZpcnR1YWwgdm9pZCBzZXRUQ0NJZGVudGl0eSgpIHsgfQogI2VuZGlmCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcAppbmRleCA2NjU2ZTJkZGRkM2I0MmNjNzA3
ZThhMjhiNWRhOWFkYTcwODA5OWZiLi42M2U2ZTEzN2ZmYWMwYTI4OTExMDVjODllMDc2YTEwMWU0
YWZlNmUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJv
eHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAK
QEAgLTIxNiw2ICsyMTYsMTMgQEAgcHJpdmF0ZToKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAg
fQogCisgICAgY29uc3QgV2ViQ29yZTo6UHJvY2Vzc0lkZW50aXR5JiByZXNvdXJjZU93bmVyKCkg
Y29uc3QgZmluYWwKKyAgICB7CisgICAgICAgIC8vIEZJWE1FOiBzaG91bGQgb2J0YWluIFdlYkNv
bnRlbnQgcHJvY2VzcyBpZGVudGl0eSBmcm9tIFdlYkNvbnRlbnQuCisgICAgICAgIHN0YXRpYyBO
ZXZlckRlc3Ryb3llZDxXZWJDb3JlOjpQcm9jZXNzSWRlbnRpdHk+IGR1bW15OworICAgICAgICBy
ZXR1cm4gZHVtbXkuZ2V0KCk7CisgICAgfQorCiAgICAgUmVmUHRyPExvZ2dlcj4gbV9sb2dnZXI7
CiAgICAgV2ViUHJvY2Vzc1Byb3h5JiBtX3Byb2Nlc3M7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9JbWFnZUJ1ZmZlclNoYXJlYWJsZUJpdG1h
cEJhY2tlbmQuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvSW1hZ2VC
dWZmZXJTaGFyZWFibGVCaXRtYXBCYWNrZW5kLmgKaW5kZXggMTg0N2ZhNmZiZGU0MDZlZDZhNmFk
MDYwNDk4Yjg4NWM1ZTM2YmIzZC4uYzViMjZjNDBlNzQ2MDMyMmRmYWZlMjliMGNlNmUzNjQxNjdl
NzJhYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9J
bWFnZUJ1ZmZlclNoYXJlYWJsZUJpdG1hcEJhY2tlbmQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvR1BVL2dyYXBoaWNzL0ltYWdlQnVmZmVyU2hhcmVhYmxlQml0bWFwQmFja2VuZC5o
CkBAIC0zMSw2ICszMSwxMCBAQAogI2luY2x1ZGUgPFdlYkNvcmUvUGxhdGZvcm1JbWFnZUJ1ZmZl
ckJhY2tlbmQuaD4KICNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jLmg+CiAKK25hbWVzcGFjZSBXZWJD
b3JlIHsKK2NsYXNzIFByb2Nlc3NJZGVudGl0eTsKK30KKwogbmFtZXNwYWNlIFdlYktpdCB7CiAK
IGNsYXNzIFNoYXJlYWJsZUJpdG1hcDsKQEAgLTYxLDYgKzY1LDcgQEAgcHVibGljOgogICAgIHN0
ZDo6b3B0aW9uYWw8V2ViQ29yZTo6UGl4ZWxCdWZmZXI+IGdldFBpeGVsQnVmZmVyKGNvbnN0IFdl
YkNvcmU6OlBpeGVsQnVmZmVyRm9ybWF0JiBvdXRwdXRGb3JtYXQsIGNvbnN0IFdlYkNvcmU6Oklu
dFJlY3QmKSBjb25zdCBvdmVycmlkZTsKICAgICB2b2lkIHB1dFBpeGVsQnVmZmVyKGNvbnN0IFdl
YkNvcmU6OlBpeGVsQnVmZmVyJiwgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYgc3JjUmVjdCwgY29u
c3QgV2ViQ29yZTo6SW50UG9pbnQmIGRlc3RQb2ludCwgV2ViQ29yZTo6QWxwaGFQcmVtdWx0aXBs
aWNhdGlvbiBkZXN0Rm9ybWF0KSBvdmVycmlkZTsKIAorICAgIHZvaWQgc2V0T3duZXJzaGlwSWRl
bnRpdHkoY29uc3QgV2ViQ29yZTo6UHJvY2Vzc0lkZW50aXR5JikgeyB9CiBwcml2YXRlOgogICAg
IHVuc2lnbmVkIGJ5dGVzUGVyUm93KCkgY29uc3Qgb3ZlcnJpZGU7CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvY29jb2EvSW1hZ2VCdWZmZXJTaGFy
ZWFibGVNYXBwZWRJT1N1cmZhY2VCYWNrZW5kLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9HUFUvZ3JhcGhpY3MvY29jb2EvSW1hZ2VCdWZmZXJTaGFyZWFibGVNYXBwZWRJT1N1cmZhY2VC
YWNrZW5kLmNwcAppbmRleCBhZmQyYzdjMDVjZmFmZDEzOTkzNDRmNWM2YTc2NGU0ODgwZDI4YmRh
Li5iMjlmYzU3Mjc4OTUwMzBkNDJmZGI0MjdiMTU4NDQ3ZjBkNzEwNjNiIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL2NvY29hL0ltYWdlQnVmZmVyU2hh
cmVhYmxlTWFwcGVkSU9TdXJmYWNlQmFja2VuZC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL0dQVS9ncmFwaGljcy9jb2NvYS9JbWFnZUJ1ZmZlclNoYXJlYWJsZU1hcHBlZElPU3Vy
ZmFjZUJhY2tlbmQuY3BwCkBAIC03NywxMyArNzcsMTEgQEAgSW1hZ2VCdWZmZXJCYWNrZW5kSGFu
ZGxlIEltYWdlQnVmZmVyU2hhcmVhYmxlTWFwcGVkSU9TdXJmYWNlQmFja2VuZDo6Y3JlYXRlSW1h
Z2UKICAgICByZXR1cm4gSW1hZ2VCdWZmZXJCYWNrZW5kSGFuZGxlKG1fc3VyZmFjZS0+Y3JlYXRl
U2VuZFJpZ2h0KCkpOwogfQogCi0jaWYgSEFWRShJT1NVUkZBQ0VfU0VUX09XTkVSU0hJUF9JREVO
VElUWSkKLXZvaWQgSW1hZ2VCdWZmZXJTaGFyZWFibGVNYXBwZWRJT1N1cmZhY2VCYWNrZW5kOjpz
ZXRQcm9jZXNzT3duZXJzaGlwKHRhc2tfaWRfdG9rZW5fdCBwcm9jZXNzSWRlbnRpdHlUb2tlbikK
K3ZvaWQgSW1hZ2VCdWZmZXJTaGFyZWFibGVNYXBwZWRJT1N1cmZhY2VCYWNrZW5kOjpzZXRPd25l
cnNoaXBJZGVudGl0eShjb25zdCBXZWJDb3JlOjpQcm9jZXNzSWRlbnRpdHkmIHJlc291cmNlT3du
ZXIpCiB7CiAgICAgQVNTRVJUKHN1cmZhY2UoKSk7Ci0gICAgc3VyZmFjZSgpLT5zZXRPd25lcnNo
aXBJZGVudGl0eShwcm9jZXNzSWRlbnRpdHlUb2tlbik7CisgICAgc3VyZmFjZSgpLT5zZXRPd25l
cnNoaXBJZGVudGl0eShyZXNvdXJjZU93bmVyKTsKIH0KLSNlbmRpZgogCiB9IC8vIG5hbWVzcGFj
ZSBXZWJLaXQKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFw
aGljcy9jb2NvYS9JbWFnZUJ1ZmZlclNoYXJlYWJsZU1hcHBlZElPU3VyZmFjZUJhY2tlbmQuaCBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvY29jb2EvSW1hZ2VCdWZmZXJT
aGFyZWFibGVNYXBwZWRJT1N1cmZhY2VCYWNrZW5kLmgKaW5kZXggZTE0YTU0MGVjZGRkNDcxMTkw
OGE3YzE3MWMzYTI1ZWJmZDgwOGRiZS4uM2E1MWZiNzMzOGNhMWQyMmNkYmRiMzMwMDY4NjJiOGFm
OGRmZjE5ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGlj
cy9jb2NvYS9JbWFnZUJ1ZmZlclNoYXJlYWJsZU1hcHBlZElPU3VyZmFjZUJhY2tlbmQuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL2NvY29hL0ltYWdlQnVmZmVy
U2hhcmVhYmxlTWFwcGVkSU9TdXJmYWNlQmFja2VuZC5oCkBAIC0zMSw2ICszMSwxMCBAQAogI2lu
Y2x1ZGUgPFdlYkNvcmUvSW1hZ2VCdWZmZXJJT1N1cmZhY2VCYWNrZW5kLmg+CiAjaW5jbHVkZSA8
d3RmL0lzb01hbGxvYy5oPgogCituYW1lc3BhY2UgV2ViQ29yZSB7CitjbGFzcyBQcm9jZXNzSWRl
bnRpdHk7Cit9CisKIG5hbWVzcGFjZSBXZWJLaXQgewogCiBjbGFzcyBTaGFyZWFibGVCaXRtYXA7
CkBAIC00Niw5ICs1MCw3IEBAIHB1YmxpYzoKIAogICAgIEltYWdlQnVmZmVyQmFja2VuZEhhbmRs
ZSBjcmVhdGVJbWFnZUJ1ZmZlckJhY2tlbmRIYW5kbGUoKSBjb25zdDsKIAotI2lmIEhBVkUoSU9T
VVJGQUNFX1NFVF9PV05FUlNISVBfSURFTlRJVFkpCi0gICAgdm9pZCBzZXRQcm9jZXNzT3duZXJz
aGlwKHRhc2tfaWRfdG9rZW5fdCk7Ci0jZW5kaWYKKyAgICB2b2lkIHNldE93bmVyc2hpcElkZW50
aXR5KGNvbnN0IFdlYkNvcmU6OlByb2Nlc3NJZGVudGl0eSYgcmVzb3VyY2VPd25lcik7CiB9Owog
CiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9jb2NvYS9XZWJQcm9jZXNzQ29jb2EubW0gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
Y29jb2EvV2ViUHJvY2Vzc0NvY29hLm1tCmluZGV4IDZhN2ZjNzNlOWExYzAxZWRlODhjYWM1OTI2
MTM5YjM5MTY0YmY3YjguLjEwNTI2YTEwYzUwMzkzMWI4NjcyMmQ4MGI1ZWQ5N2Y1ZDM4MzBhNGEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9XZWJQcm9jZXNzQ29j
b2EubW0KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1dlYlByb2Nlc3NDb2Nv
YS5tbQpAQCAtMTIyNiwxNCArMTIyNiw3IEBAIHZvaWQgV2ViUHJvY2Vzczo6d2FpdEZvclBlbmRp
bmdQYXN0ZWJvYXJkV3JpdGVzVG9GaW5pc2goY29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJkCiAjaWYg
RU5BQkxFKEdQVV9QUk9DRVNTKQogdm9pZCBXZWJQcm9jZXNzOjpwbGF0Zm9ybUluaXRpYWxpemVH
UFVQcm9jZXNzQ29ubmVjdGlvblBhcmFtZXRlcnMoR1BVUHJvY2Vzc0Nvbm5lY3Rpb25QYXJhbWV0
ZXJzJiBwYXJhbWV0ZXJzKQogewotI2lmIEhBVkUoVEFTS19JREVOVElUWV9UT0tFTikKLSAgICB0
YXNrX2lkX3Rva2VuX3QgaWRlbnRpdHlUb2tlbjsKLSAgICBrZXJuX3JldHVybl90IGtyID0gdGFz
a19jcmVhdGVfaWRlbnRpdHlfdG9rZW4obWFjaF90YXNrX3NlbGYoKSwgJmlkZW50aXR5VG9rZW4p
OwotICAgIGlmIChrciA9PSBLRVJOX1NVQ0NFU1MpCi0gICAgICAgIHBhcmFtZXRlcnMud2ViUHJv
Y2Vzc0lkZW50aXR5VG9rZW4gPSBNYWNoU2VuZFJpZ2h0OjphZG9wdChpZGVudGl0eVRva2VuKTsK
LSAgICBlbHNlCi0gICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKFByb2Nlc3MsICJDYWxsIHRvIHRh
c2tfY3JlYXRlX2lkZW50aXR5X3Rva2VuKCkgZmFpbGVkOiAle3ByaXZhdGV9cyAoJXgpIiwgbWFj
aF9lcnJvcl9zdHJpbmcoa3IpLCBrcik7Ci0jZW5kaWYKKyAgICBwYXJhbWV0ZXJzLndlYlByb2Nl
c3NJZGVudGl0eSA9IFByb2Nlc3NJZGVudGl0eSB7IFByb2Nlc3NJZGVudGl0eTo6Q3VycmVudFBy
b2Nlc3MgfTsKIAogICAgIHBhcmFtZXRlcnMub3ZlcnJpZGVMYW5ndWFnZXMgPSB1c2VyUHJlZmVy
cmVkTGFuZ3VhZ2VzT3ZlcnJpZGUoKTsKIH0KZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBi
L1Rvb2xzL0NoYW5nZUxvZwppbmRleCBhM2RmZDNkMGVjMTE4NDA2NWU4OGNkNzAzMmYyNjE5MGE3
YTZiNGFlLi4zY2Y1MzdjNGRjYjdiMjY5OTg4M2M0MzliYTNlY2UyODYzMmIwMWJiIDEwMDY0NAot
LS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYg
QEAKKzIwMjEtMTItMDggIEtpbW1vIEtpbm51bmVuICA8a2tpbm51bmVuQGFwcGxlLmNvbT4KKwor
ICAgICAgICBJT1N1cmZhY2UgbWVtb3J5IGF0dHJpYnV0aW9uIGlzIGhhcmQgdG8gdXNlIGluIGNv
bnN0cnVjdG9ycworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MjMyOTg4CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS84NTU0MTkxOD4KKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBVcGRhdGUgY29uc3RydWN0b3Ig
Y2FsbGluZyBiYXNlIGNsYXNzIGNvbnN0cnVjdG9yLCBhZGQgZW1wdHkKKyAgICAgICAgUHJvY2Vz
c2VJZGVudGl0eS4KKworICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9jb2Nv
YS9UZXN0R3JhcGhpY3NDb250ZXh0R0xDb2NvYS5tbToKKwogMjAyMS0xMi0wNyAgQWRpdHlhIEtl
ZXJ0aGkgIDxha2VlcnRoaUBhcHBsZS5jb20+CiAKICAgICAgICAgW2lPU10gQWRkIGluaXRpYWwg
c3VwcG9ydCBmb3IgZmluZC1pbi1wYWdlIFNQSQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJDb3JlL2NvY29hL1Rlc3RHcmFwaGljc0NvbnRleHRHTENvY29hLm1tIGIv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL2NvY29hL1Rlc3RHcmFwaGljc0NvbnRl
eHRHTENvY29hLm1tCmluZGV4IGUxOTExZGY2YzA5M2UzOGM4ZDQyZmExNzllZmQ1ZTc3MmVhNjVk
YzQuLmQwZjBhNjIzMWRiYzEyZTY5MTkwMDEzYTg5Y2Y3M2Q2ODU5MWVhNTYgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9jb2NvYS9UZXN0R3JhcGhpY3NDb250
ZXh0R0xDb2NvYS5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvY29j
b2EvVGVzdEdyYXBoaWNzQ29udGV4dEdMQ29jb2EubW0KQEAgLTMyLDYgKzMyLDcgQEAKICNpbXBv
cnQgPE1ldGFsL01ldGFsLmg+CiAjaW1wb3J0IDxXZWJDb3JlL0NvbG9yLmg+CiAjaW1wb3J0IDxX
ZWJDb3JlL0dyYXBoaWNzQ29udGV4dEdMQ29jb2EuaD4KKyNpbXBvcnQgPFdlYkNvcmUvUHJvY2Vz
c0lkZW50aXR5Lmg+CiAjaW1wb3J0IDxvcHRpb25hbD4KICNpbXBvcnQgPHd0Zi9IYXNoU2V0Lmg+
CiAjaW1wb3J0IDx3dGYvTWVtb3J5Rm9vdHByaW50Lmg+CkBAIC01MCw3ICs1MSw3IEBAIHB1Ymxp
YzoKICAgICBSZWZQdHI8V2ViQ29yZTo6R3JhcGhpY3NMYXllckNvbnRlbnRzRGlzcGxheURlbGVn
YXRlPiBsYXllckNvbnRlbnRzRGlzcGxheURlbGVnYXRlKCkgZmluYWwgeyByZXR1cm4gbnVsbHB0
cjsgfQogcHJpdmF0ZToKICAgICBUZXN0ZWRHcmFwaGljc0NvbnRleHRHTENvY29hKFdlYkNvcmU6
OkdyYXBoaWNzQ29udGV4dEdMQXR0cmlidXRlcyBhdHRyaWJ1dGVzKQotICAgICAgICA6IFdlYkNv
cmU6OkdyYXBoaWNzQ29udGV4dEdMQ29jb2EoV1RGTW92ZShhdHRyaWJ1dGVzKSkKKyAgICAgICAg
OiBXZWJDb3JlOjpHcmFwaGljc0NvbnRleHRHTENvY29hKFdURk1vdmUoYXR0cmlidXRlcyksIHsg
fSkKICAgICB7CiAgICAgfQogfTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>446413</attachid>
            <date>2021-12-08 12:48:03 -0800</date>
            <delta_ts>2021-12-09 00:35:49 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-232988-20211208224801.patch</filename>
            <type>text/plain</type>
            <size>54052</size>
            <attacher name="Kimmo Kinnunen">kkinnunen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg2NjU4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMmNlZDhkZmUyNDIyODg1
ZWEyMjUwZGUzM2ZmMmY0NGJjM2FkYTYwOS4uYjE0NzQ0OTVmN2I4OGNhNDEyMzYxMmMwMmM1NmNi
MjRhZTkzMzMzMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUzIEBACisyMDIxLTEyLTA4ICBLaW1t
byBLaW5udW5lbiAgPGtraW5udW5lbkBhcHBsZS5jb20+CisKKyAgICAgICAgSU9TdXJmYWNlIG1l
bW9yeSBhdHRyaWJ1dGlvbiBpcyBoYXJkIHRvIHVzZSBpbiBjb25zdHJ1Y3RvcnMKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMjk4OAorICAgICAgICA8
cmRhcjovL3Byb2JsZW0vODU1NDE5MTg+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgQWRkIFdlYkNvcmU6OlByb2Nlc3NJZGVudGl0eSB0eXBlIHRoYXQg
Y2FuIGJlIHVzZWQgdG8gY29tbXVuaWNhdGUgbWVtb3J5IGF0dHJpYnV0aW9uLgorICAgICAgICBG
b3Igbm9uLUNvY29hIHBvcnRzLCB0aGlzIGlzIG51bGxwdHIuCisgICAgICAgIFRoaXMgaXMgdXNl
ZCBpbiBXZWJDb3JlIHRvIHNldCB0aGUgbWVtb3J5IGF0dHJpYnV0aW9uIG9mIElPU3VyZmFjZSBh
bmQgb2JqZWN0cworICAgICAgICB0aGF0IGhvbGQgSU9TdXJmYWNlcy4KKyAgICAgICAgVGhpcyBp
cyBpbnN0YW50aWF0ZWQgaW4gV2ViS2l0LgorICAgICAgICBDdXJyZW50bHkgdGhlIG9ubHkgdXNl
ZnVsIHdheSB0byBpbnN0YW50aWF0ZSBQcm9jZXNzSWRlbnRpdHkgaXMgYnkgcmVjZWl2aW5nCisg
ICAgICAgIHRoZSBQcm9jZXNzSWRlbnRpdHkgYXMgYSBtZXNzYWdlIGFuZCBjcmVhdGUgaXQgdGhp
cyB3YXkgZm9yIHRoZQorICAgICAgICBzZW5kZXIgcHJvY2Vzcy4KKworICAgICAgICBObyBuZXcg
dGVzdHMsIHJlZmFjdG9yLgorCisgICAgICAgICogSGVhZGVycy5jbWFrZToKKyAgICAgICAgKiBT
b3VyY2VzLnR4dDoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6
CisgICAgICAgICogcGxhdGZvcm0vTG9nZ2luZy5oOgorICAgICAgICBBZGQgV2ViQ29yZSBQcm9j
ZXNzIGxvZyB0YWcgc2luY2UgdGhlIGNvZGUgbW92ZWQgZnJvbSBXZWJLaXQgdG8gUHJvY2Vzc0lk
ZW50aXR5CisgICAgICAgIHVzZWQgdGhhdCB0YWcgdG8gbG9nLgorICAgICAgICAqIHBsYXRmb3Jt
L1Byb2Nlc3NJZGVudGl0eS5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6UHJvY2Vzc0lk
ZW50aXR5OjpQcm9jZXNzSWRlbnRpdHkpOgorICAgICAgICAoV2ViQ29yZTo6UHJvY2Vzc0lkZW50
aXR5Ojp0YXNrSWRUb2tlbiBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpQcm9jZXNzSWRlbnRp
dHk6OnNlbmRSaWdodCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpQcm9jZXNzSWRlbnRpdHk6
Om9wZXJhdG9yIGJvb2wgY29uc3QpOgorICAgICAgICAqIHBsYXRmb3JtL1Byb2Nlc3NJZGVudGl0
eS5oOiBBZGRlZC4KKyAgICAgICAgQWRkIHRoZSBQcm9jZXNzSWRlbnRpdHkgdHlwZSB0aGF0IGNh
biBiZSB1c2VkIHRvIGNvbW11bmljYXRlIG1lbW9yeSBhdHRyaWJ1dGlvbi4KKyAgICAgICAgKiBw
bGF0Zm9ybS9ncmFwaGljcy9SZW1vdGVWaWRlb1NhbXBsZS5oOgorICAgICAgICAoV2ViQ29yZTo6
UmVtb3RlVmlkZW9TYW1wbGU6OnNldE93bmVyc2hpcElkZW50aXR5KToKKyAgICAgICAgKiBwbGF0
Zm9ybS9ncmFwaGljcy9hbmdsZS9HcmFwaGljc0NvbnRleHRHTEFOR0xFLmg6CisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvR3JhcGhpY3NDb250ZXh0R0xDb2NvYS5oOgorICAgICAg
ICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0dyYXBoaWNzQ29udGV4dEdMQ29jb2EubW06Cisg
ICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHRHTENvY29hOjpjcmVhdGUpOgorICAgICAg
ICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0R0xDb2NvYTo6R3JhcGhpY3NDb250ZXh0R0xDb2Nv
YSk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHRHTEFOR0xFOjphbGxvY2F0ZUFu
ZEJpbmREaXNwbGF5QnVmZmVyQmFja2luZyk6CisgICAgICAgIEFkZCBhbiBleGFtcGxlIHVzZSB3
aGVyZSB0aGUgY29uc3RydWN0b3IgdGFrZXMgdGhlIG1lbW9yeSBhdHRyaWJ1dGlvbiB0b2tlbi4K
KyAgICAgICAgVGhpcyBtYXkgYmUgbmVlZGVkIGluIHRoZSBmdXR1cmUgd2hlbiB0aGUgdG9rZW4g
aXMgdXNlZCBhcyBhIHBhcmFtZXRlciBpbgorICAgICAgICB0aGUgQU5HTEUgY29udGV4dCBjcmVh
dGlvbi4KKyAgICAgICAgVXNlIHRoZSB0b2tlbiBpbiBjcmVhdGluZyB0aGUgSU9TdXJmYWNlLiBU
aGlzIGZpeGVzIGEgYnVnIHdoZXJlIFdlYkdMCisgICAgICAgIGJhY2sgYnVmZmVycyB3b3VsZCBu
b3QgYmUgYXR0cmlidXRlZCB1bnRpbCB0aGV5IHdlcmUgc2VudCB0byBXUC4KKyAgICAgICAgKiBw
bGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9JT1N1cmZhY2UuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9jb2NvYS9JT1N1cmZhY2UubW06CisgICAgICAgIChXZWJDb3JlOjpJT1N1cmZhY2U6
OnNldE93bmVyc2hpcElkZW50aXR5KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jb2Nv
YS9XZWJQcm9jZXNzR3JhcGhpY3NDb250ZXh0R0xDb2NvYS5tbToKKwogMjAyMS0xMi0wOCAgQW50
dGkgS29pdmlzdG8gIDxhbnR0aUBhcHBsZS5jb20+CiAKICAgICAgICAgW0NTUyBDYXNjYWRlIExh
eWVyc10gVXBkYXRlIENTU09NIHRvIHRoZSBzcGVjCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGQ4Y2ZhNGVmOGE1NGJh
ZWM5OWI2YTI3OWZiMTdlNWMyNTVjYTIwYjAuLmY1NGUzMWIxYzkyNzc4ZGViMjUxZDNhNjM0OGRm
YTZkOWY0NzQyNzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTQgQEAKKzIwMjEtMTItMDggIEtpbW1v
IEtpbm51bmVuICA8a2tpbm51bmVuQGFwcGxlLmNvbT4KKworICAgICAgICBJT1N1cmZhY2UgbWVt
b3J5IGF0dHJpYnV0aW9uIGlzIGhhcmQgdG8gdXNlIGluIGNvbnN0cnVjdG9ycworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMyOTg4CisgICAgICAgIDxy
ZGFyOi8vcHJvYmxlbS84NTU0MTkxOD4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBSZW1vdmUgaWZkZWZzIGFuZCBkaXJlY3QgdXNlIG9mIHRhc2tfaWRf
dG9rZW5fdC4KKyAgICAgICAgSW5zdGVhZCwgdXNlIFdlYkNvcmU6OlByb2Nlc3NJZGVudGlmaWVy
LiBUaGlzIHdheSB0aGUKKyAgICAgICAgY3Jvc3MtcGxhdGZvcm0gY29kZSBpcyBlYXNpZXIgdG8g
YXV0aG9yLgorCisgICAgICAgICogR1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNz
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6R1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6R1BVQ29u
bmVjdGlvblRvV2ViUHJvY2Vzcyk6CisgICAgICAgICogR1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9u
VG9XZWJQcm9jZXNzLmg6CisgICAgICAgIChXZWJLaXQ6OkdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nl
c3M6OndlYlByb2Nlc3NJZGVudGl0eSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OkdQVUNvbm5l
Y3Rpb25Ub1dlYlByb2Nlc3M6OndlYlByb2Nlc3NJZGVudGl0eVRva2VuIGNvbnN0KTogRGVsZXRl
ZC4KKyAgICAgICAgKiBHUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZUdyYXBoaWNzQ29udGV4dEdM
Q29jb2EuY3BwOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVHcmFwaGljc0NvbnRleHRHTENvY29h
OjpSZW1vdGVHcmFwaGljc0NvbnRleHRHTENvY29hKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3Rl
R3JhcGhpY3NDb250ZXh0R0xDb2NvYTo6cGxhdGZvcm1Xb3JrUXVldWVJbml0aWFsaXplKToKKyAg
ICAgICAgKFdlYktpdDo6UmVtb3RlR3JhcGhpY3NDb250ZXh0R0xDb2NvYTo6cHJlcGFyZUZvckRp
c3BsYXkpOgorICAgICAgICAqIEdQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlSW1hZ2VCdWZmZXIu
aDoKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlSW1hZ2VCdWZmZXI6OnNldE93bmVyc2hpcElkZW50
aXR5KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlSW1hZ2VCdWZmZXI6OnNldFByb2Nlc3NPd25l
cnNoaXApOiBEZWxldGVkLgorICAgICAgICAqIEdQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVu
ZGVyaW5nQmFja2VuZC5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlbmRlcmluZ0JhY2tl
bmQ6OlJlbW90ZVJlbmRlcmluZ0JhY2tlbmQpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZW5k
ZXJpbmdCYWNrZW5kOjpjcmVhdGVJbWFnZUJ1ZmZlcldpdGhRdWFsaWZpZWRJZGVudGlmaWVyKToK
KyAgICAgICAgKiBHUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQuaDoK
KyAgICAgICAgKiBHUFVQcm9jZXNzL3dlYnJ0Yy9MaWJXZWJSVENDb2RlY3NQcm94eS5tbToKKyAg
ICAgICAgKFdlYktpdDo6RnVuY3Rpb248dm9pZCk6CisgICAgICAgICogU2hhcmVkL0dQVVByb2Nl
c3NDb25uZWN0aW9uUGFyYW1ldGVycy5oOgorICAgICAgICAoV2ViS2l0OjpHUFVQcm9jZXNzQ29u
bmVjdGlvblBhcmFtZXRlcnM6OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OkdQVVBy
b2Nlc3NDb25uZWN0aW9uUGFyYW1ldGVyczo6ZGVjb2RlKToKKyAgICAgICAgKiBVSVByb2Nlc3Mv
Q29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6
OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6OlNvdXJjZVByb3h5OjpTb3VyY2VQcm94eSk6
CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6OlNvdXJjZVBy
b3h5OjpzZXRTaG91bGRBcHBseVJvdGF0aW9uKToKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlh
Q2FwdHVyZU1hbmFnZXJQcm94eTo6Y3JlYXRlTWVkaWFTb3VyY2VGb3JDYXB0dXJlRGV2aWNlV2l0
aENvbnN0cmFpbnRzKToKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQ
cm94eTo6Y2xvbmUpOgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclBy
b3h5OjpTb3VyY2VQcm94eTo6c2V0V2ViUHJvY2Vzc0lkZW50aXR5VG9rZW4pOiBEZWxldGVkLgor
ICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5Lmg6
CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6OkNvbm5lY3Rp
b25Qcm94eTo6d2ViUHJvY2Vzc0lkZW50aXR5VG9rZW4gY29uc3QpOiBEZWxldGVkLgorICAgICAg
ICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwOgorICAgICAgICAqIFdlYlByb2Nlc3Mv
R1BVL2dyYXBoaWNzL0ltYWdlQnVmZmVyU2hhcmVhYmxlQml0bWFwQmFja2VuZC5oOgorICAgICAg
ICAoV2ViS2l0OjpJbWFnZUJ1ZmZlclNoYXJlYWJsZUJpdG1hcEJhY2tlbmQ6OnNldE93bmVyc2hp
cElkZW50aXR5KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9jb2NvYS9JbWFn
ZUJ1ZmZlclNoYXJlYWJsZU1hcHBlZElPU3VyZmFjZUJhY2tlbmQuY3BwOgorICAgICAgICAoV2Vi
S2l0OjpJbWFnZUJ1ZmZlclNoYXJlYWJsZU1hcHBlZElPU3VyZmFjZUJhY2tlbmQ6OnNldE93bmVy
c2hpcElkZW50aXR5KToKKyAgICAgICAgKFdlYktpdDo6SW1hZ2VCdWZmZXJTaGFyZWFibGVNYXBw
ZWRJT1N1cmZhY2VCYWNrZW5kOjpzZXRQcm9jZXNzT3duZXJzaGlwKTogRGVsZXRlZC4KKyAgICAg
ICAgKiBXZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9jb2NvYS9JbWFnZUJ1ZmZlclNoYXJlYWJsZU1h
cHBlZElPU3VyZmFjZUJhY2tlbmQuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL2NvY29hL1dlYlBy
b2Nlc3NDb2NvYS5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6cGxhdGZvcm1Jbml0
aWFsaXplR1BVUHJvY2Vzc0Nvbm5lY3Rpb25QYXJhbWV0ZXJzKToKKwogMjAyMS0xMi0wOCAgV2Vu
c29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4KIAogICAgICAgICBBZGQgYSBtaXNz
aW5nIENvbXBsZXRpb25IYW5kbGVyQ2FsbENoZWNrZXIgYXJvdW5kIGEgVUkgZGVsZWdhdGUgbWV0
aG9kIGNhbGwgYWZ0ZXIgcjI4NjY0MApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvSGVhZGVy
cy5jbWFrZSBiL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKaW5kZXggNzk2MzZiZGQ4ODY1
OGU2YWNhZmE5MGUzMTU1YTY5OTY5ZGVmNzQ1NC4uYzZhZTA2YjNhMjRlY2I3MjcwYmI3YzI1ZWE5
YWE2ODk2ZGQ5YWUyZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQor
KysgYi9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCkBAIC0xMjkxLDYgKzEyOTEsNyBAQCBz
ZXQoV2ViQ29yZV9QUklWQVRFX0ZSQU1FV09SS19IRUFERVJTCiAgICAgcGxhdGZvcm0vUG9wdXBN
ZW51Q2xpZW50LmgKICAgICBwbGF0Zm9ybS9Qb3B1cE1lbnVTdHlsZS5oCiAgICAgcGxhdGZvcm0v
UHJvY2Vzc0lkZW50aWZpZXIuaAorICAgIHBsYXRmb3JtL1Byb2Nlc3NJZGVudGl0eS5oCiAgICAg
cGxhdGZvcm0vUHJvY2Vzc1F1YWxpZmllZC5oCiAgICAgcGxhdGZvcm0vUHJvbWlzZWRBdHRhY2ht
ZW50SW5mby5oCiAgICAgcGxhdGZvcm0vUHVibGljU3VmZml4LmgKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL1NvdXJjZXMudHh0IGIvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKaW5kZXgg
OTJlMGY0YjBjODU2ZTY4Nzc4NmZhZmQ0YjIzZWFhNmI5ZjU1MzBmNy4uY2M3YTgxZmM2MDc0NjY0
YjVlNTRiZDJjZjU3YzY2MGNmNjYzNmYzOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvU291
cmNlcy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKQEAgLTE4ODYsNiArMTg4
Niw3IEBAIHBsYXRmb3JtL1BsYXRmb3JtU3RyYXRlZ2llcy5jcHAKIHBsYXRmb3JtL1BsYXRmb3Jt
V2hlZWxFdmVudC5jcHAKIHBsYXRmb3JtL1ByZXZpZXdDb252ZXJ0ZXIuY3BwCiBwbGF0Zm9ybS9Q
cm9jZXNzSWRlbnRpZmllci5jcHAKK3BsYXRmb3JtL1Byb2Nlc3NJZGVudGl0eS5jcHAKIHBsYXRm
b3JtL1JlZmVycmVyUG9saWN5LmNwcAogcGxhdGZvcm0vUmVtb3RlQ29tbWFuZExpc3RlbmVyLmNw
cAogcGxhdGZvcm0vUnVudGltZUFwcGxpY2F0aW9uQ2hlY2tzLmNwcApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGM3YjVlZjAwZDRl
ZjVkZmE1YTgzMDY2MDcxZDJmYjNlMDlmYzI5NGEuLjM0Mjg1ZDZiYjk1N2ZkY2UzMmJkMzAxMmQ0
YjgxN2U3ZDhlNjc3Y2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oKQEAgLTIzODgsNiArMjM4OCw3IEBACiAJCTdCQjM0QTQ4MjUzNzc2
Q0EwMDAyOUQwOCAvKiBHcmFwaGljc0NvbnRleHRHTEltYWdlRXh0cmFjdG9yLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3QkIzNEE0NTI1Mzc3NkM2MDAw
MjlEMDggLyogR3JhcGhpY3NDb250ZXh0R0xJbWFnZUV4dHJhY3Rvci5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTdCQjY4MEJBMjVCQTFCRTQwMDJC
ODczOCAvKiBHcmFwaGljc0NoZWNrc01hYy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gN0JCNjgwQjgyNUJBMUJFNDAwMkI4NzM4IC8qIEdyYXBoaWNzQ2hl
Y2tzTWFjLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
IAkJN0JEREEzMUYyNzRGQTAyMTAwMzg2NTlFIC8qIEdyYXBoaWNzQ29udGV4dEdMQ29jb2EuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdCRERBMzFEMjc0
RjlEQTUwMDM4NjU5RSAvKiBHcmFwaGljc0NvbnRleHRHTENvY29hLmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJN0JEREEzNEMyNzVBMDEzMTAwMzg2
NTlFIC8qIFByb2Nlc3NJZGVudGl0eS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gN0JEREEzNDkyNzVBMDEzMDAwMzg2NTlFIC8qIFByb2Nlc3NJZGVudGl0
eS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTdC
RTc0MjczODFGQTkwNkZCQjRGMEYyQyAvKiBKU1NWR0dyYXBoaWNzRWxlbWVudC5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTUwQzRDMDJCRUQ4OTM2Rjgx
OEUyRjk5IC8qIEpTU1ZHR3JhcGhpY3NFbGVtZW50LmggKi87IH07CiAJCTdCRkY1OUY0Mjc1Nzcy
NjcwMDc3M0QzOSAvKiBEaXNwbGF5Q29uZmlndXJhdGlvbk1vbml0b3IuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdCRkY1OUVGMjc1NzcxRTgwMDc3M0Qz
OSAvKiBEaXNwbGF5Q29uZmlndXJhdGlvbk1vbml0b3IuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk3QzAyOUM2RTI0OTNDOEY4MDAyNjgyMDQgLyog
Q29sb3JUeXBlcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gN0MwMjlDNkQyNDkzQzhGODAwMjY4MjA0IC8qIENvbG9yVHlwZXMuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtMTE0MjAsNiArMTE0MjEsOCBA
QAogCQk3QkNENDJEQzI3MDVDOTQ5MDBFQjIxMjcgLyogQU5HTEVVdGlsaXRpZXNDb2NvYS5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBBTkdMRVV0aWxpdGllc0NvY29hLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTdCRERBMzFDMjc0RjlEQTQwMDM4NjU5RSAvKiBHcmFwaGljc0NvbnRleHRHTENv
Y29hLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gR3JhcGhpY3ND
b250ZXh0R0xDb2NvYS5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0JEREEzMUQy
NzRGOURBNTAwMzg2NTlFIC8qIEdyYXBoaWNzQ29udGV4dEdMQ29jb2EuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gR3JhcGhpY3NDb250ZXh0R0xDb2NvYS5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQk3QkREQTM0OTI3NUEwMTMwMDAzODY1OUUgLyogUHJvY2Vzc0lk
ZW50aXR5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFByb2Nlc3NJZGVudGl0
eS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk3QkREQTM0QjI3NUEwMTMwMDAzODY1
OUUgLyogUHJvY2Vzc0lkZW50aXR5LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IFByb2Nlc3NJZGVudGl0eS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTdCRTcyNjVCMjU3NjNCOEQwMEU4NUQ5OCAvKiBSZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5
QmFzZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5
QmFzZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdCRkY1OUVGMjc1NzcxRTgw
MDc3M0QzOSAvKiBEaXNwbGF5Q29uZmlndXJhdGlvbk1vbml0b3IuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBleHBsaWNpdEZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuaDsgZmlsZUVu
Y29kaW5nID0gNDsgcGF0aCA9IERpc3BsYXlDb25maWd1cmF0aW9uTW9uaXRvci5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk3QkZGNTlGMTI3NTc3MUU4MDA3NzNEMzkgLyogRGlzcGxh
eUNvbmZpZ3VyYXRpb25Nb25pdG9yLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IERpc3BsYXlDb25maWd1cmF0aW9uTW9uaXRvci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CkBAIC0yOTgzMyw2ICsyOTgzNiw4IEBACiAJCQkJQTFBREFGN0MyMzYwRkQzRTAw
OUNCNzc2IC8qIFByZXZpZXdDb252ZXJ0ZXJQcm92aWRlci5oICovLAogCQkJCTUxRjY0NUQyMUZF
Q0RCQzgwMEI1NERFRCAvKiBQcm9jZXNzSWRlbnRpZmllci5jcHAgKi8sCiAJCQkJNTFGNjQ1RDMx
RkVDREJDODAwQjU0REVEIC8qIFByb2Nlc3NJZGVudGlmaWVyLmggKi8sCisJCQkJN0JEREEzNEIy
NzVBMDEzMDAwMzg2NTlFIC8qIFByb2Nlc3NJZGVudGl0eS5jcHAgKi8sCisJCQkJN0JEREEzNDky
NzVBMDEzMDAwMzg2NTlFIC8qIFByb2Nlc3NJZGVudGl0eS5oICovLAogCQkJCTFDQzU0QUZCMjcw
RjkyREEwMDVCRjhCRSAvKiBQcm9jZXNzUXVhbGlmaWVkLmggKi8sCiAJCQkJRjQ3QTYzM0MxRkY2
RkQ1MDAwODFCM0NDIC8qIFByb21pc2VkQXR0YWNobWVudEluZm8uaCAqLywKIAkJCQkwMDgxRkVG
RDE2QjBBMjQ0MDA4QUFBN0EgLyogUHVibGljU3VmZml4LmggKi8sCkBAIC0zNjM3OCw2ICszNjM4
Myw3IEBACiAJCQkJQjcxRkU2REYxMTA5MUNCMzAwREFFRjc3IC8qIFByaW50Q29udGV4dC5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJNkIwQTA3RjIyMUZBNEI1QzAwRDU3MzkxIC8qIFByaXZhdGVDbGlj
a01lYXN1cmVtZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQk1MUY2NDVENTFGRUNEQkNFMDBCNTRE
RUQgLyogUHJvY2Vzc0lkZW50aWZpZXIuaCBpbiBIZWFkZXJzICovLAorCQkJCTdCRERBMzRDMjc1
QTAxMzEwMDM4NjU5RSAvKiBQcm9jZXNzSWRlbnRpdHkuaCBpbiBIZWFkZXJzICovLAogCQkJCUE4
RUE3RUJDMEExOTQ1RDAwMEE4RUY1RiAvKiBQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24uaCBpbiBIZWFk
ZXJzICovLAogCQkJCTFDQzU0QUZFMjcwRjk2QUUwMDVCRjhCRSAvKiBQcm9jZXNzUXVhbGlmaWVk
LmggaW4gSGVhZGVycyAqLywKIAkJCQlFNDIwNTAxNzIxNDE5MDFCMDA2NkVGM0IgLyogUHJvY2Vz
c1dhcm1pbmcuaCBpbiBIZWFkZXJzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vTG9nZ2luZy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTG9nZ2luZy5oCmluZGV4
IDNmYmU0MTdiZTk4MWI3NWU3NzlkZTIzOGZjNGJlMDVhNmQ3MzBmYWEuLmRjMGY1MDk4Yjg3ZjE4
NDU1MjViZTNjMGJhNDFmNzY3NWIxNDA0N2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL0xvZ2dpbmcuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Mb2dnaW5nLmgK
QEAgLTk0LDYgKzk0LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgIE0oUGx1Z2lucykgXAog
ICAgIE0oUG9wdXBCbG9ja2luZykgXAogICAgIE0oUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQpIFwK
KyAgICBNKFByb2Nlc3MpIFwKICAgICBNKFByb2dyZXNzKSBcCiAgICAgTShSZW1vdGVJbnNwZWN0
b3IpIFwKICAgICBNKFJlcXVlc3RBbmltYXRpb25GcmFtZSkgXApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vUHJvY2Vzc0lkZW50aXR5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL1Byb2Nlc3NJZGVudGl0eS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODlkMzZjNDRlNWE0YzI4OWYx
NGVkNGZlODQ0MTEzYzU4NDE4ZDM4ZAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL1Byb2Nlc3NJZGVudGl0eS5jcHAKQEAgLTAsMCArMSw4NSBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMn
JyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JT
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
CisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICog
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIK
KyNpbmNsdWRlICJQcm9jZXNzSWRlbnRpdHkuaCIKKworI2luY2x1ZGUgIkxvZ2dpbmcuaCIKKwor
I2lmIEhBVkUoVEFTS19JREVOVElUWV9UT0tFTikKKyNpbmNsdWRlIDxtYWNoL21hY2guaD4KKyNl
bmRpZgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1Byb2Nlc3NJZGVudGl0eTo6UHJvY2Vzc0lk
ZW50aXR5KEN1cnJlbnRQcm9jZXNzVGFnKQoreworI2lmIEhBVkUoVEFTS19JREVOVElUWV9UT0tF
TikKKyAgICB0YXNrX2lkX3Rva2VuX3QgaWRlbnRpdHlUb2tlbjsKKyAgICBrZXJuX3JldHVybl90
IGtyID0gdGFza19jcmVhdGVfaWRlbnRpdHlfdG9rZW4obWFjaF90YXNrX3NlbGYoKSwgJmlkZW50
aXR5VG9rZW4pOworICAgIGlmIChrciA9PSBLRVJOX1NVQ0NFU1MpCisgICAgICAgIG1fdGFza0lk
VG9rZW4gPSBNYWNoU2VuZFJpZ2h0OjphZG9wdChpZGVudGl0eVRva2VuKTsKKyAgICBlbHNlCisg
ICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKFByb2Nlc3MsICJ0YXNrX2NyZWF0ZV9pZGVudGl0eV90
b2tlbigpIGZhaWxlZDogJXtwcml2YXRlfXMgKCV4KSIsIG1hY2hfZXJyb3Jfc3RyaW5nKGtyKSwg
a3IpOworI2VuZGlmCit9CisKK1Byb2Nlc3NJZGVudGl0eTo6UHJvY2Vzc0lkZW50aXR5KCkgPSBk
ZWZhdWx0OworCitQcm9jZXNzSWRlbnRpdHk6OlByb2Nlc3NJZGVudGl0eShQcm9jZXNzSWRlbnRp
dHkmJikgPSBkZWZhdWx0OworCitQcm9jZXNzSWRlbnRpdHk6OlByb2Nlc3NJZGVudGl0eShjb25z
dCBQcm9jZXNzSWRlbnRpdHkmKSA9IGRlZmF1bHQ7CisKK1Byb2Nlc3NJZGVudGl0eTo6flByb2Nl
c3NJZGVudGl0eSgpID0gZGVmYXVsdDsKKworUHJvY2Vzc0lkZW50aXR5JiBQcm9jZXNzSWRlbnRp
dHk6Om9wZXJhdG9yPShQcm9jZXNzSWRlbnRpdHkmJikgPSBkZWZhdWx0OworCitQcm9jZXNzSWRl
bnRpdHkmIFByb2Nlc3NJZGVudGl0eTo6b3BlcmF0b3I9KGNvbnN0IFByb2Nlc3NJZGVudGl0eSYp
ID0gZGVmYXVsdDsKKworI2lmIEhBVkUoVEFTS19JREVOVElUWV9UT0tFTikKK3Rhc2tfaWRfdG9r
ZW5fdCBQcm9jZXNzSWRlbnRpdHk6OnRhc2tJZFRva2VuKCkgY29uc3QKK3sKKyAgICByZXR1cm4g
bV90YXNrSWRUb2tlbi5zZW5kUmlnaHQoKTsKK30KKyNlbmRpZgorCitQcm9jZXNzSWRlbnRpdHk6
Om9wZXJhdG9yIGJvb2woKSBjb25zdAoreworI2lmIEhBVkUoVEFTS19JREVOVElUWV9UT0tFTikK
KyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8Ym9vbD4obV90YXNrSWRUb2tlbik7CisjZWxzZQorICAg
IHJldHVybiBmYWxzZTsKKyNlbmRpZgorfQorCisKKyNpZiBIQVZFKFRBU0tfSURFTlRJVFlfVE9L
RU4pCitQcm9jZXNzSWRlbnRpdHk6OlByb2Nlc3NJZGVudGl0eShNYWNoU2VuZFJpZ2h0JiYgdGFz
a0lkVG9rZW4pCisgICAgOiBtX3Rhc2tJZFRva2VuKFdURk1vdmUodGFza0lkVG9rZW4pKQorewor
fQorI2VuZGlmCisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Byb2Nl
c3NJZGVudGl0eS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUHJvY2Vzc0lkZW50aXR5LmgK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uOTI3M2E5NzdjZGY5ZjViNWI1NjBiMjE0MDBjYmY4NGM2MjU2YjFmYQotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Byb2Nlc3NJZGVudGl0eS5o
CkBAIC0wLDAgKzEsOTEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1F
TlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
CisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgPG9wdGlvbmFsPgorCisjaWYgSEFWRShU
QVNLX0lERU5USVRZX1RPS0VOKQorI2luY2x1ZGUgPHd0Zi9NYWNoU2VuZFJpZ2h0Lmg+CisjZWxz
ZQorI2luY2x1ZGUgPHZhcmlhbnQ+CisjZW5kaWYKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCisv
LyBPYmplY3QgdG8gYWNjZXNzIHByb29mIG9mIHByb2Nlc3MgaWRlbnRpdHkuCisvLyBQcm9jZXNz
SWRlbnRpZmllciBpZGVudGlmaWVzIGEgcHJvY2Vzcy4KKy8vIFByb2Nlc3NJZGVudGl0eSBncmFu
dHMgYWNjZXNzIHRvIHRoZSBpZGVudGl0eS4KKy8vIEVtcHR5IFByb2Nlc3NJZGVudGl0eSBkb2Vz
IG5vdCBkbyBhbnl0aGluZy4KK2NsYXNzIFByb2Nlc3NJZGVudGl0eSB7CitwdWJsaWM6CisgICAg
Ly8gQ3JlYXRlcyBhbiBwcm9jZXNzIGlkZW50aXR5IGZvciBjdXJyZW50IHByb2Nlc3Mgb3IgZW1w
dHkgb24gZXJyb3IuCisgICAgZW51bSBDdXJyZW50UHJvY2Vzc1RhZyB7IEN1cnJlbnRQcm9jZXNz
IH07CisgICAgV0VCQ09SRV9FWFBPUlQgZXhwbGljaXQgUHJvY2Vzc0lkZW50aXR5KEN1cnJlbnRQ
cm9jZXNzVGFnKTsKKworICAgIC8vIENyZWF0ZXMgYW4gZW1wdHkgcHJvY2VzcyBpZGVudGl0eSB0
aGF0IGRvZXMgbm90IGdyYW50IGFueSBhY2Nlc3MuCisgICAgV0VCQ09SRV9FWFBPUlQgUHJvY2Vz
c0lkZW50aXR5KCk7CisgICAgV0VCQ09SRV9FWFBPUlQgUHJvY2Vzc0lkZW50aXR5KFByb2Nlc3NJ
ZGVudGl0eSYmKTsKKyAgICBXRUJDT1JFX0VYUE9SVCBQcm9jZXNzSWRlbnRpdHkoY29uc3QgUHJv
Y2Vzc0lkZW50aXR5Jik7CisgICAgV0VCQ09SRV9FWFBPUlQgflByb2Nlc3NJZGVudGl0eSgpOwor
ICAgIFdFQkNPUkVfRVhQT1JUIFByb2Nlc3NJZGVudGl0eSYgb3BlcmF0b3I9KFByb2Nlc3NJZGVu
dGl0eSYmKTsKKyAgICBXRUJDT1JFX0VYUE9SVCBQcm9jZXNzSWRlbnRpdHkmIG9wZXJhdG9yPShj
b25zdCBQcm9jZXNzSWRlbnRpdHkmKTsKKworICAgIC8vIFJldHVybnMgdHJ1ZSBmb3IgYSBwcm9j
ZXNzIGlkZW50aXR5IG9yIGZhbHNlIG9uIGVtcHR5IGlkZW50aXR5LgorICAgIFdFQkNPUkVfRVhQ
T1JUIG9wZXJhdG9yIGJvb2woKSBjb25zdDsKKworI2lmIEhBVkUoVEFTS19JREVOVElUWV9UT0tF
TikKKyAgICBXRUJDT1JFX0VYUE9SVCB0YXNrX2lkX3Rva2VuX3QgdGFza0lkVG9rZW4oKSBjb25z
dDsKKyNlbmRpZgorCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgRW5jb2Rlcj4gdm9pZCBlbmNvZGUo
RW5jb2RlciYpIGNvbnN0OworICAgIHRlbXBsYXRlPHR5cGVuYW1lIERlY29kZXI+IHN0YXRpYyBz
dGQ6Om9wdGlvbmFsPFByb2Nlc3NJZGVudGl0eT4gZGVjb2RlKERlY29kZXImKTsKKworcHJpdmF0
ZToKKyNpZiBIQVZFKFRBU0tfSURFTlRJVFlfVE9LRU4pCisgICAgV0VCQ09SRV9FWFBPUlQgUHJv
Y2Vzc0lkZW50aXR5KE1hY2hTZW5kUmlnaHQmJiB0YXNrSWRUb2tlbik7CisgICAgTWFjaFNlbmRS
aWdodCBtX3Rhc2tJZFRva2VuOworI2VuZGlmCit9OworCit0ZW1wbGF0ZTx0eXBlbmFtZSBFbmNv
ZGVyPiB2b2lkIFByb2Nlc3NJZGVudGl0eTo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIpIGNvbnN0
Cit7CisjaWYgSEFWRShUQVNLX0lERU5USVRZX1RPS0VOKQorICAgIGVuY29kZXIgPDwgbV90YXNr
SWRUb2tlbjsKKyNlbmRpZgorfQorCit0ZW1wbGF0ZTx0eXBlbmFtZSBEZWNvZGVyPiBzdGQ6Om9w
dGlvbmFsPFByb2Nlc3NJZGVudGl0eT4gUHJvY2Vzc0lkZW50aXR5OjpkZWNvZGUoRGVjb2RlciYg
ZGVjb2RlcikKK3sKKyNpZiBIQVZFKFRBU0tfSURFTlRJVFlfVE9LRU4pCisgICAgc3RkOjpvcHRp
b25hbDxNYWNoU2VuZFJpZ2h0PiBpZGVudGl0eVNlbmRSaWdodDsKKyAgICBkZWNvZGVyID4+IGlk
ZW50aXR5U2VuZFJpZ2h0OworICAgIGlmIChpZGVudGl0eVNlbmRSaWdodCkKKyAgICAgICAgcmV0
dXJuIFByb2Nlc3NJZGVudGl0eSB7IFdURk1vdmUoKmlkZW50aXR5U2VuZFJpZ2h0KSB9OworI2Vu
ZGlmCisgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKK30KKworfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvUmVtb3RlVmlkZW9TYW1wbGUuaCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1JlbW90ZVZpZGVvU2FtcGxlLmgKaW5kZXggYTYxNzBi
MzI4ZmM0NGFjZTY5M2RjZGIzNWVlNGQzY2U2ODczMzhhMS4uZmJlZTdlODEzMzZmN2QzOWQzNjJk
OTYwNzllMzY3OWYzMDkwZmMzMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvUmVtb3RlVmlkZW9TYW1wbGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9SZW1vdGVWaWRlb1NhbXBsZS5oCkBAIC0zNyw2ICszNyw4IEBAIHR5cGVkZWYg
c3RydWN0IF9fQ1ZCdWZmZXIqIENWUGl4ZWxCdWZmZXJSZWY7CiAKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIAorY2xhc3MgUHJvY2Vzc0lkZW50aXR5OworCiBjbGFzcyBSZW1vdGVWaWRlb1NhbXBsZSB7
CiBwdWJsaWM6CiAgICAgUmVtb3RlVmlkZW9TYW1wbGUoKSA9IGRlZmF1bHQ7CkBAIC00OCw5ICs1
MCw3IEBAIHB1YmxpYzoKICAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgc3RkOjp1bmlxdWVfcHRy
PFJlbW90ZVZpZGVvU2FtcGxlPiBjcmVhdGUoUmV0YWluUHRyPENWUGl4ZWxCdWZmZXJSZWY+JiYs
IE1lZGlhVGltZSYmIHByZXNlbnRhdGlvblRpbWUsIE1lZGlhU2FtcGxlOjpWaWRlb1JvdGF0aW9u
ID0gTWVkaWFTYW1wbGU6OlZpZGVvUm90YXRpb246Ok5vbmUpOwogICAgIFdFQkNPUkVfRVhQT1JU
IElPU3VyZmFjZVJlZiBzdXJmYWNlKCkgY29uc3Q7CiAKLSNpZiBIQVZFKElPU1VSRkFDRV9TRVRf
T1dORVJTSElQX0lERU5USVRZKQotICAgIHZvaWQgc2V0T3duZXJzaGlwSWRlbnRpdHkodGFza19p
ZF90b2tlbl90IG5ld093bmVyKTsKLSNlbmRpZgorICAgIHZvaWQgc2V0T3duZXJzaGlwSWRlbnRp
dHkoY29uc3QgUHJvY2Vzc0lkZW50aXR5JiByZXNvdXJjZU93bmVyKTsKIAogICAgIGNvbnN0IE1l
ZGlhVGltZSYgdGltZSgpIGNvbnN0IHsgcmV0dXJuIG1fdGltZTsgfQogICAgIHVpbnQzMl90IHZp
ZGVvRm9ybWF0KCkgY29uc3QgeyByZXR1cm4gbV92aWRlb0Zvcm1hdDsgfQpAQCAtMTE5LDEzICsx
MTksMTEgQEAgcHJpdmF0ZToKICAgICBib29sIG1fbWlycm9yZWQgeyBmYWxzZSB9OwogfTsKIAot
I2lmIEhBVkUoSU9TVVJGQUNFX1NFVF9PV05FUlNISVBfSURFTlRJVFkpCi1pbmxpbmUgdm9pZCBS
ZW1vdGVWaWRlb1NhbXBsZTo6c2V0T3duZXJzaGlwSWRlbnRpdHkodGFza19pZF90b2tlbl90IG5l
d093bmVyKQoraW5saW5lIHZvaWQgUmVtb3RlVmlkZW9TYW1wbGU6OnNldE93bmVyc2hpcElkZW50
aXR5KGNvbnN0IFByb2Nlc3NJZGVudGl0eSYgcmVzb3VyY2VPd25lcikKIHsKICAgICBpZiAobV9p
b1N1cmZhY2UpCi0gICAgICAgIG1faW9TdXJmYWNlLT5zZXRPd25lcnNoaXBJZGVudGl0eShuZXdP
d25lcik7CisgICAgICAgIG1faW9TdXJmYWNlLT5zZXRPd25lcnNoaXBJZGVudGl0eShyZXNvdXJj
ZU93bmVyKTsKIH0KLSNlbmRpZgogCiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2FuZ2xlL0dyYXBoaWNzQ29udGV4dEdMQU5HTEUuaCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2FuZ2xlL0dyYXBoaWNzQ29udGV4dEdMQU5HTEUuaApp
bmRleCA0M2Q1ZDI5MGRkNjgyY2E1OTY1NjAxMTBhNjZhNWE3ZGE4Zjg1MmEwLi45NzRlYmIzNTFm
YzYzZDM4NGZkNGE3Yzk5NzlhZjBkMjY0NTgzOWMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9hbmdsZS9HcmFwaGljc0NvbnRleHRHTEFOR0xFLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYW5nbGUvR3JhcGhpY3NDb250ZXh0R0xB
TkdMRS5oCkBAIC0zNiw2ICszNiw3IEBACiAjaWYgUExBVEZPUk0oQ09DT0EpCiAjaW5jbHVkZSAi
R3JhcGhpY3NDb250ZXh0R0xJT1N1cmZhY2VTd2FwQ2hhaW4uaCIKICNpbmNsdWRlICJJT1N1cmZh
Y2UuaCIKKyNpbmNsdWRlICJQcm9jZXNzSWRlbnRpdHkuaCIKICNlbmRpZgogCiAKQEAgLTQyNyw2
ICs0MjgsNyBAQCBwcm90ZWN0ZWQ6CiAgICAgc3RkOjp1bmlxdWVfcHRyPEV4dGVuc2lvbnNHTEFO
R0xFPiBtX2V4dGVuc2lvbnM7CiAKICNpZiBQTEFURk9STShDT0NPQSkKKyAgICAvLyBGSVhNRTog
TW92ZSB0aGVzZSB0byBHcmFwaGljc0NvbnRleHRHTENvY29hLgogICAgIEdyYXBoaWNzQ29udGV4
dEdMSU9TdXJmYWNlU3dhcENoYWluIG1fc3dhcENoYWluOwogICAgIEVHTERpc3BsYXkgbV9kaXNw
bGF5T2JqIHsgbnVsbHB0ciB9OwogICAgIFBsYXRmb3JtR3JhcGhpY3NDb250ZXh0R0wgbV9jb250
ZXh0T2JqIHsgbnVsbHB0ciB9OwpAQCAtNDM2LDYgKzQzOCw3IEBAIHByb3RlY3RlZDoKICAgICAv
LyBXaGVuIHByZXNlcnZlRHJhd2luZ0J1ZmZlciA9PSB0cnVlLCB0aGlzIGlzIGJsaXR0ZWQgdG8g
ZHVyaW5nIGRpc3BsYXkgcHJlcGFyZS4KICAgICBzdGQ6OnVuaXF1ZV9wdHI8SU9TdXJmYWNlPiBt
X2Rpc3BsYXlCdWZmZXJCYWNraW5nOwogICAgIHZvaWQqIG1fZGlzcGxheUJ1ZmZlclBidWZmZXIg
eyBudWxscHRyIH07CisgICAgUHJvY2Vzc0lkZW50aXR5IG1fcmVzb3VyY2VPd25lcjsKICNlbmRp
ZgogI2lmIFVTRShDT09SRElOQVRFRF9HUkFQSElDUykKICAgICBHQ0dMdWludCBtX2NvbXBvc2l0
b3JUZXh0dXJlIHsgMCB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY29jb2EvR3JhcGhpY3NDb250ZXh0R0xDb2NvYS5oIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY29jb2EvR3JhcGhpY3NDb250ZXh0R0xDb2NvYS5oCmluZGV4IDkxM2Mw
ZjRhNTJkMGQxYWUwMzliZDhlMzI2Njg3OGZhNTEyZmFmM2UuLjMwODk4MDA3ZWYyZmY2NjkyNjlh
ZjY0ZjY5MTJjOTA5NjhmNzk0ZGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2NvY29hL0dyYXBoaWNzQ29udGV4dEdMQ29jb2EuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9HcmFwaGljc0NvbnRleHRHTENvY29hLmgKQEAg
LTQyLDkgKzQyLDExIEBAIGNsYXNzIEdyYXBoaWNzQ29udGV4dEdMQ1ZDb2NvYTsKIAogbmFtZXNw
YWNlIFdlYkNvcmUgewogCitjbGFzcyBQcm9jZXNzSWRlbnRpdHk7CisKIGNsYXNzIFdFQkNPUkVf
RVhQT1JUIEdyYXBoaWNzQ29udGV4dEdMQ29jb2EgOiBwdWJsaWMgR3JhcGhpY3NDb250ZXh0R0xB
TkdMRSB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZlB0cjxHcmFwaGljc0NvbnRleHRHTENvY29h
PiBjcmVhdGUoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0R0xBdHRyaWJ1dGVzJiYpOworICAgIHN0
YXRpYyBSZWZQdHI8R3JhcGhpY3NDb250ZXh0R0xDb2NvYT4gY3JlYXRlKFdlYkNvcmU6OkdyYXBo
aWNzQ29udGV4dEdMQXR0cmlidXRlcyYmLCBQcm9jZXNzSWRlbnRpdHkmJiByZXNvdXJjZU93bmVy
KTsKICAgICB+R3JhcGhpY3NDb250ZXh0R0xDb2NvYSgpOwogICAgIElPU3VyZmFjZSogZGlzcGxh
eUJ1ZmZlcigpOwogICAgIHZvaWQgbWFya0Rpc3BsYXlCdWZmZXJJblVzZSgpOwpAQCAtNzYsOSAr
NzgsOCBAQCBwdWJsaWM6CiAgICAgdm9pZCB1cGRhdGVDb250ZXh0T25EaXNwbGF5UmVjb25maWd1
cmF0aW9uKCk7CiAjZW5kaWYKIHByb3RlY3RlZDoKLSAgICBHcmFwaGljc0NvbnRleHRHTENvY29h
KFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dEdMQXR0cmlidXRlcyYmKTsKKyAgICBHcmFwaGljc0Nv
bnRleHRHTENvY29hKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dEdMQXR0cmlidXRlcyYmLCBQcm9j
ZXNzSWRlbnRpdHkmJiByZXNvdXJjZU93bmVyKTsKICAgICBib29sIGlzVmFsaWQoKSBjb25zdDsK
LQogI2lmIEVOQUJMRShWSURFTykKICAgICBzdGQ6OnVuaXF1ZV9wdHI8R3JhcGhpY3NDb250ZXh0
R0xDVkNvY29hPiBtX2N2OwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jb2NvYS9HcmFwaGljc0NvbnRleHRHTENvY29hLm1tIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvR3JhcGhpY3NDb250ZXh0R0xDb2NvYS5tbQpp
bmRleCA0ZDAxZWYzOGU5M2M0YjYxMGI3NWI5NWUwZjJkYjI1NTNlMTU1YTlkLi5iMzQ1ZDg2NDAw
N2VjMDVmOWQ0ODAzN2JjMzRkZGZjMjZmM2YwZTBkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9HcmFwaGljc0NvbnRleHRHTENvY29hLm1tCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0dyYXBoaWNzQ29udGV4dEdM
Q29jb2EubW0KQEAgLTM1LDYgKzM1LDcgQEAKICNpbXBvcnQgIkdyYXBoaWNzQ29udGV4dEdMSU9T
dXJmYWNlU3dhcENoYWluLmgiCiAjaW1wb3J0ICJHcmFwaGljc0NvbnRleHRHTE9wZW5HTE1hbmFn
ZXIuaCIKICNpbXBvcnQgIkxvZ2dpbmcuaCIKKyNpbXBvcnQgIlByb2Nlc3NJZGVudGl0eS5oIgog
I2ltcG9ydCAiUnVudGltZUFwcGxpY2F0aW9uQ2hlY2tzLmgiCiAjaW1wb3J0IDxDb3JlR3JhcGhp
Y3MvQ0dCaXRtYXBDb250ZXh0Lmg+CiAjaW1wb3J0IDxNZXRhbC9NZXRhbC5oPgpAQCAtMTkyLDE5
ICsxOTMsMjIgQEAgc3RhdGljIGJvb2wgbmVlZHNFQUdMT25NYWMoKQogfQogI2VuZGlmCiAKLVJl
ZlB0cjxHcmFwaGljc0NvbnRleHRHTENvY29hPiBHcmFwaGljc0NvbnRleHRHTENvY29hOjpjcmVh
dGUoR3JhcGhpY3NDb250ZXh0R0xBdHRyaWJ1dGVzJiYgYXR0cmlidXRlcykKK1JlZlB0cjxHcmFw
aGljc0NvbnRleHRHTENvY29hPiBHcmFwaGljc0NvbnRleHRHTENvY29hOjpjcmVhdGUoR3JhcGhp
Y3NDb250ZXh0R0xBdHRyaWJ1dGVzJiYgYXR0cmlidXRlcywgUHJvY2Vzc0lkZW50aXR5JiYgcmVz
b3VyY2VPd25lcikKIHsKLSAgICBhdXRvIGNvbnRleHQgPSBhZG9wdFJlZigqbmV3IEdyYXBoaWNz
Q29udGV4dEdMQ29jb2EoV1RGTW92ZShhdHRyaWJ1dGVzKSkpOworICAgIGF1dG8gY29udGV4dCA9
IGFkb3B0UmVmKCpuZXcgR3JhcGhpY3NDb250ZXh0R0xDb2NvYShXVEZNb3ZlKGF0dHJpYnV0ZXMp
LCBXVEZNb3ZlKHJlc291cmNlT3duZXIpKSk7CiAgICAgaWYgKCFjb250ZXh0LT5pc1ZhbGlkKCkp
CiAgICAgICAgIHJldHVybiBudWxscHRyOwogICAgIHJldHVybiBjb250ZXh0OwogfQogCi1HcmFw
aGljc0NvbnRleHRHTENvY29hOjpHcmFwaGljc0NvbnRleHRHTENvY29hKEdyYXBoaWNzQ29udGV4
dEdMQXR0cmlidXRlcyYmIGNyZWF0aW9uQXR0cmlidXRlcykKK0dyYXBoaWNzQ29udGV4dEdMQ29j
b2E6OkdyYXBoaWNzQ29udGV4dEdMQ29jb2EoR3JhcGhpY3NDb250ZXh0R0xBdHRyaWJ1dGVzJiYg
Y3JlYXRpb25BdHRyaWJ1dGVzLCBQcm9jZXNzSWRlbnRpdHkmJiByZXNvdXJjZU93bmVyKQogICAg
IDogR3JhcGhpY3NDb250ZXh0R0xBTkdMRShXVEZNb3ZlKGNyZWF0aW9uQXR0cmlidXRlcykpCiB7
CiAgICAgaWYgKCFpc1ZhbGlkKCkpCiAgICAgICAgIHJldHVybjsKKyAgICAvLyBGSVhNRTogTW92
ZSB0aGlzIHRvIGluaXRpYWxpemVyIGxpc3Qgb25jZSBtX3Jlc291cmNlT3duZXIgbW92ZXMgdG8g
R3JhcGhpY3NDb250ZXh0R0xDb2NvYS4KKyAgICBtX3Jlc291cmNlT3duZXIgPSBQcm9jZXNzSWRl
bnRpdHkgeyBXVEZNb3ZlKHJlc291cmNlT3duZXIpIH07CisKICNpZiBQTEFURk9STShNQUMpCiAg
ICAgYXV0byBhdHRyaWJ1dGVzID0gY29udGV4dEF0dHJpYnV0ZXMoKTsKICAgICBpZiAoIWF0dHJp
YnV0ZXMudXNlTWV0YWwgJiYgYXR0cmlidXRlcy5lZmZlY3RpdmVQb3dlclByZWZlcmVuY2UoKSA9
PSBHcmFwaGljc0NvbnRleHRHTFBvd2VyUHJlZmVyZW5jZTo6SGlnaFBlcmZvcm1hbmNlKQpAQCAt
NTUyLDcgKzU1Niw4IEBAIGJvb2wgR3JhcGhpY3NDb250ZXh0R0xBTkdMRTo6YWxsb2NhdGVBbmRC
aW5kRGlzcGxheUJ1ZmZlckJhY2tpbmcoKQogICAgIGF1dG8gYmFja2luZyA9IElPU3VyZmFjZTo6
Y3JlYXRlKGdldEludGVybmFsRnJhbWVidWZmZXJTaXplKCksIERlc3RpbmF0aW9uQ29sb3JTcGFj
ZTo6U1JHQigpKTsKICAgICBpZiAoIWJhY2tpbmcpCiAgICAgICAgIHJldHVybiBmYWxzZTsKLQor
ICAgIGlmIChtX3Jlc291cmNlT3duZXIpCisgICAgICAgIGJhY2tpbmctPnNldE93bmVyc2hpcElk
ZW50aXR5KG1fcmVzb3VyY2VPd25lcik7CiAgICAgYmFja2luZy0+bWlncmF0ZUNvbG9yU3BhY2VU
b1Byb3BlcnRpZXMoKTsKIAogICAgIGNvbnN0IGJvb2wgdXNpbmdBbHBoYSA9IGNvbnRleHRBdHRy
aWJ1dGVzKCkuYWxwaGE7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jb2NvYS9JT1N1cmZhY2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2NvY29hL0lPU3VyZmFjZS5oCmluZGV4IDU2NTI0NzgyMmRiYTI5Zjc2MDBiOTQwN2U2ZjRhY2I4
YzFhMDZhYWMuLjU2NTA5MmRlMDA2OGU1ODdiOGIyNTkzN2MzM2UzMWQ3MjJmNzRiYzUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0lPU3VyZmFjZS5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0lPU3VyZmFjZS5o
CkBAIC00Niw2ICs0Niw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIEdyYXBoaWNzQ29u
dGV4dDsKIGNsYXNzIEhvc3RXaW5kb3c7CiBjbGFzcyBJbWFnZUJ1ZmZlcjsKK2NsYXNzIFByb2Nl
c3NJZGVudGl0eTsKIAogZW51bSBjbGFzcyBQaXhlbEZvcm1hdCA6IHVpbnQ4X3Q7CiBlbnVtIGNs
YXNzIFZvbGF0aWxpdHlTdGF0ZSA6IHVpbnQ4X3Q7CkBAIC0xNTksOSArMTYwLDcgQEAgcHVibGlj
OgogICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyB2b2lkIGNvbnZlcnRUb0Zvcm1hdChzdGQ6OnVu
aXF1ZV9wdHI8V2ViQ29yZTo6SU9TdXJmYWNlPiYmIGluU3VyZmFjZSwgRm9ybWF0LCBGdW5jdGlv
bjx2b2lkKHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpJT1N1cmZhY2U+KT4mJik7CiAjZW5kaWYg
Ly8gSEFWRShJT1NVUkZBQ0VfQUNDRUxFUkFUT1IpCiAKLSNpZiBIQVZFKElPU1VSRkFDRV9TRVRf
T1dORVJTSElQX0lERU5USVRZKQotICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0T3duZXJzaGlw
SWRlbnRpdHkodGFza19pZF90b2tlbl90IG5ld093bmVyKTsKLSNlbmRpZgorICAgIFdFQkNPUkVf
RVhQT1JUIHZvaWQgc2V0T3duZXJzaGlwSWRlbnRpdHkoY29uc3QgUHJvY2Vzc0lkZW50aXR5JiBy
ZXNvdXJjZU93bmVyKTsKIAogICAgIHZvaWQgbWlncmF0ZUNvbG9yU3BhY2VUb1Byb3BlcnRpZXMo
KTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2Ev
SU9TdXJmYWNlLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvSU9T
dXJmYWNlLm1tCmluZGV4IDAxMTE2NWNlMTFhYmNlNjc1YzRiNDdiZjkxNWQ0YzgxZTZjZWU5OTUu
LmNiYjNmMmJkZDRjM2NjYjRmZGM5OGY2ZGNlOWYxNDY5MGJkZWUwMTMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0lPU3VyZmFjZS5tbQorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9JT1N1cmZhY2UubW0KQEAgLTM0
LDYgKzM0LDcgQEAKICNpbXBvcnQgIkltYWdlQnVmZmVyLmgiCiAjaW1wb3J0ICJMb2dnaW5nLmgi
CiAjaW1wb3J0ICJQbGF0Zm9ybVNjcmVlbi5oIgorI2ltcG9ydCAiUHJvY2Vzc0lkZW50aXR5Lmgi
CiAjaW1wb3J0IDxwYWwvc3BpL2NnL0NvcmVHcmFwaGljc1NQSS5oPgogI2ltcG9ydCA8d3RmL0Fz
c2VydGlvbnMuaD4KICNpbXBvcnQgPHd0Zi9NYWNoU2VuZFJpZ2h0Lmg+CkBAIC00ODQsMTQgKzQ4
NSwxOCBAQCB2b2lkIElPU3VyZmFjZTo6Y29udmVydFRvRm9ybWF0KHN0ZDo6dW5pcXVlX3B0cjxJ
T1N1cmZhY2U+JiYgaW5TdXJmYWNlLCBGb3JtYXQgZgogCiAjZW5kaWYgLy8gSEFWRShJT1NVUkZB
Q0VfQUNDRUxFUkFUT1IpCiAKLSNpZiBIQVZFKElPU1VSRkFDRV9TRVRfT1dORVJTSElQX0lERU5U
SVRZKQotdm9pZCBJT1N1cmZhY2U6OnNldE93bmVyc2hpcElkZW50aXR5KHRhc2tfaWRfdG9rZW5f
dCBuZXdPd25lcikKK3ZvaWQgSU9TdXJmYWNlOjpzZXRPd25lcnNoaXBJZGVudGl0eShjb25zdCBQ
cm9jZXNzSWRlbnRpdHkmIHJlc291cmNlT3duZXIpCiB7Ci0gICAgYXV0byByZXN1bHQgPSBJT1N1
cmZhY2VTZXRPd25lcnNoaXBJZGVudGl0eShtX3N1cmZhY2UuZ2V0KCksIG5ld093bmVyLCBrSU9T
dXJmYWNlTWVtb3J5TGVkZ2VyVGFnR3JhcGhpY3MsIDApOworICAgIEFTU0VSVChyZXNvdXJjZU93
bmVyKTsKKyNpZiBIQVZFKElPU1VSRkFDRV9TRVRfT1dORVJTSElQX0lERU5USVRZKSAmJiBIQVZF
KFRBU0tfSURFTlRJVFlfVE9LRU4pCisgICAgdGFza19pZF90b2tlbl90IG93bmVyVGFza0lkVG9r
ZW4gPSByZXNvdXJjZU93bmVyLnRhc2tJZFRva2VuKCk7CisgICAgYXV0byByZXN1bHQgPSBJT1N1
cmZhY2VTZXRPd25lcnNoaXBJZGVudGl0eShtX3N1cmZhY2UuZ2V0KCksIG93bmVyVGFza0lkVG9r
ZW4sIGtJT1N1cmZhY2VNZW1vcnlMZWRnZXJUYWdHcmFwaGljcywgMCk7CiAgICAgaWYgKHJlc3Vs
dCAhPSBrSU9SZXR1cm5TdWNjZXNzKQotICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihJT1N1cmZh
Y2UsICJJT1N1cmZhY2U6OnNldE93bmVyc2hpcElkZW50aXR5OiBGYWlsZWQgdG8gY2xhaW0gb3du
ZXJzaGlwIG9mIElPU3VyZmFjZSAlcCwgbmV3T3duZXI6ICVkLCBlcnJvcjogJWQiLCBtX3N1cmZh
Y2UuZ2V0KCksIChpbnQpbmV3T3duZXIsIHJlc3VsdCk7Ci19CisgICAgICAgIFJFTEVBU0VfTE9H
X0VSUk9SKElPU3VyZmFjZSwgIklPU3VyZmFjZTo6c2V0T3duZXJzaGlwSWRlbnRpdHk6IEZhaWxl
ZCB0byBjbGFpbSBvd25lcnNoaXAgb2YgSU9TdXJmYWNlICVwLCB0YXNrIGlkIHRva2VuOiAlZCwg
ZXJyb3I6ICVkIiwgbV9zdXJmYWNlLmdldCgpLCAoaW50KW93bmVyVGFza0lkVG9rZW4sIHJlc3Vs
dCk7CisjZWxzZQorICAgIFVOVVNFRF9QQVJBTShyZXNvdXJjZU93bmVyKTsKICNlbmRpZgorfQog
CiB2b2lkIElPU3VyZmFjZTo6bWlncmF0ZUNvbG9yU3BhY2VUb1Byb3BlcnRpZXMoKQogewpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvV2ViUHJvY2Vz
c0dyYXBoaWNzQ29udGV4dEdMQ29jb2EubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jb2NvYS9XZWJQcm9jZXNzR3JhcGhpY3NDb250ZXh0R0xDb2NvYS5tbQppbmRleCAzMTM4
NThiOGY1N2RhYjhkMTBhNmFiNjI4MTdlODc1NDBlZjM4MDgzLi43ZWU0ZDJlOGRhMzY0NWEwMTNi
YzJjNGFhMDlhNWM4OTU2OWU0ZDVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jb2NvYS9XZWJQcm9jZXNzR3JhcGhpY3NDb250ZXh0R0xDb2NvYS5tbQorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9XZWJQcm9jZXNzR3JhcGhp
Y3NDb250ZXh0R0xDb2NvYS5tbQpAQCAtMzAsNiArMzAsNyBAQAogI2ltcG9ydCAiR3JhcGhpY3ND
b250ZXh0R0xDb2NvYS5oIiAvLyBOT0xJTlQKICNpbXBvcnQgIkdyYXBoaWNzQ29udGV4dEdMT3Bl
bkdMTWFuYWdlci5oIgogI2ltcG9ydCAiUGxhdGZvcm1DQUxheWVyLmgiCisjaW1wb3J0ICJQcm9j
ZXNzSWRlbnRpdHkuaCIKIAogI2lmIFBMQVRGT1JNKE1BQykKICNpbXBvcnQgIkRpc3BsYXlDb25m
aWd1cmF0aW9uTW9uaXRvci5oIgpAQCAtMTEzLDcgKzExNCw3IEBAIHByaXZhdGU6CiB9OwogCiBX
ZWJQcm9jZXNzR3JhcGhpY3NDb250ZXh0R0xDb2NvYTo6V2ViUHJvY2Vzc0dyYXBoaWNzQ29udGV4
dEdMQ29jb2EoR3JhcGhpY3NDb250ZXh0R0xBdHRyaWJ1dGVzJiYgYXR0cmlidXRlcykKLSAgICA6
IEdyYXBoaWNzQ29udGV4dEdMQ29jb2EoV1RGTW92ZShhdHRyaWJ1dGVzKSkKKyAgICA6IEdyYXBo
aWNzQ29udGV4dEdMQ29jb2EoV1RGTW92ZShhdHRyaWJ1dGVzKSwgUHJvY2Vzc0lkZW50aXR5IHsg
fSkKICAgICAsIG1fbGF5ZXJDb250ZW50c0Rpc3BsYXlEZWxlZ2F0ZShEaXNwbGF5QnVmZmVyRGlz
cGxheURlbGVnYXRlOjpjcmVhdGUoIWF0dHJpYnV0ZXMuYWxwaGEsIGF0dHJpYnV0ZXMuZGV2aWNl
UGl4ZWxSYXRpbykpCiB7CiAjaWYgUExBVEZPUk0oTUFDKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9HUFVQcm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwIGIvU291cmNlL1dl
YktpdC9HUFVQcm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwCmluZGV4IDkyYzNj
Yzk3Yjc2NjY0NmUwNjg0MDI4MmIxMGU4ZGYwNTI2YjYwY2UuLjJjYTkwZjUwYzNiMWU5YTYxYWY3
MWU3NTRjNTgwZTNjN2NjNTY0Y2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vz
cy9HUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVBy
b2Nlc3MvR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAKQEAgLTIwNywxMiArMjA3LDExIEBA
IHByaXZhdGU6CiAgICAgICAgIG1fcHJvY2Vzcy5zdGFydENhcHR1cmluZ0F1ZGlvKCk7CiAgICAg
fQogI2VuZGlmCi0jaWYgSEFWRShJT1NVUkZBQ0VfU0VUX09XTkVSU0hJUF9JREVOVElUWSkKLSAg
ICBzdGQ6Om9wdGlvbmFsPHRhc2tfaWRfdG9rZW5fdD4gd2ViUHJvY2Vzc0lkZW50aXR5VG9rZW4o
KSBjb25zdCBmaW5hbAorCisgICAgY29uc3QgUHJvY2Vzc0lkZW50aXR5JiByZXNvdXJjZU93bmVy
KCkgY29uc3QgZmluYWwKICAgICB7Ci0gICAgICAgIHJldHVybiBtX3Byb2Nlc3Mud2ViUHJvY2Vz
c0lkZW50aXR5VG9rZW4oKTsKKyAgICAgICAgcmV0dXJuIG1fcHJvY2Vzcy53ZWJQcm9jZXNzSWRl
bnRpdHkoKTsKICAgICB9Ci0jZW5kaWYKIAogICAgIEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3Mm
IG1fcHJvY2VzczsKIH07CkBAIC0yMjgsOSArMjI3LDcgQEAgR1BVQ29ubmVjdGlvblRvV2ViUHJv
Y2Vzczo6R1BVQ29ubmVjdGlvblRvV2ViUHJvY2VzcyhHUFVQcm9jZXNzJiBncHVQcm9jZXNzLCBX
ZWIKICAgICA6IG1fY29ubmVjdGlvbihJUEM6OkNvbm5lY3Rpb246OmNyZWF0ZVNlcnZlckNvbm5l
Y3Rpb24oY29ubmVjdGlvbklkZW50aWZpZXIsICp0aGlzKSkKICAgICAsIG1fZ3B1UHJvY2Vzcyhn
cHVQcm9jZXNzKQogICAgICwgbV93ZWJQcm9jZXNzSWRlbnRpZmllcih3ZWJQcm9jZXNzSWRlbnRp
ZmllcikKLSNpZiBIQVZFKFRBU0tfSURFTlRJVFlfVE9LRU4pCi0gICAgLCBtX3dlYlByb2Nlc3NJ
ZGVudGl0eVRva2VuKFdURk1vdmUocGFyYW1ldGVycy53ZWJQcm9jZXNzSWRlbnRpdHlUb2tlbikp
Ci0jZW5kaWYKKyAgICAsIG1fd2ViUHJvY2Vzc0lkZW50aXR5KFdURk1vdmUocGFyYW1ldGVycy53
ZWJQcm9jZXNzSWRlbnRpdHkpKQogICAgICwgbV9yZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94
eShtYWtlVW5pcXVlUmVmPFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5PigqdGhpcykpCiAg
ICAgLCBtX3Nlc3Npb25JRChzZXNzaW9uSUQpCiAjaWYgUExBVEZPUk0oQ09DT0EpICYmIFVTRShM
SUJXRUJSVEMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvR1BVQ29ubmVj
dGlvblRvV2ViUHJvY2Vzcy5oIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVUNvbm5lY3Rp
b25Ub1dlYlByb2Nlc3MuaAppbmRleCBlMzkyM2RiNTczNDgxYzhlNjlhOWE3NjEyNjMyNzM3NzA5
ZGQ5N2ZhLi5iNDU5MDdmMjU0MzhlM2Q3Yjg4ZjQ3NDZjYzQ4MDhlZjRmNDI3Y2ZlIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNz
LmgKQEAgLTQxLDYgKzQxLDcgQEAKICNpbmNsdWRlIDxXZWJDb3JlL05vd1BsYXlpbmdNYW5hZ2Vy
Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9QYWdlSWRlbnRpZmllci5oPgogI2luY2x1ZGUgPFdlYkNv
cmUvUHJvY2Vzc0lkZW50aWZpZXIuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1Byb2Nlc3NJZGVudGl0
eS5oPgogI2luY2x1ZGUgPHBhbC9TZXNzaW9uSUQuaD4KICNpbmNsdWRlIDx3dGYvTG9nZ2VyLmg+
CiAjaW5jbHVkZSA8d3RmL01hY2hTZW5kUmlnaHQuaD4KQEAgLTE1NSwxMCArMTU2LDcgQEAgcHVi
bGljOgogICAgIHZvaWQgZGlzcGF0Y2hEaXNwbGF5V2FzUmVjb25maWd1cmVkRm9yVGVzdGluZygp
IHsgZGlzcGF0Y2hEaXNwbGF5V2FzUmVjb25maWd1cmVkKCk7IH07CiAjZW5kaWYKIAotI2lmIEhB
VkUoVEFTS19JREVOVElUWV9UT0tFTikKLSAgICB0YXNrX2lkX3Rva2VuX3Qgd2ViUHJvY2Vzc0lk
ZW50aXR5VG9rZW4oKSBjb25zdCB7IHJldHVybiBzdGF0aWNfY2FzdDx0YXNrX2lkX3Rva2VuX3Q+
KG1fd2ViUHJvY2Vzc0lkZW50aXR5VG9rZW4uc2VuZFJpZ2h0KCkpOyB9Ci0jZW5kaWYKLQorICAg
IGNvbnN0IFdlYkNvcmU6OlByb2Nlc3NJZGVudGl0eSYgd2ViUHJvY2Vzc0lkZW50aXR5KCkgY29u
c3QgeyByZXR1cm4gbV93ZWJQcm9jZXNzSWRlbnRpdHk7IH0KICNpZiBFTkFCTEUoRU5DUllQVEVE
X01FRElBKQogICAgIFJlbW90ZUNETUZhY3RvcnlQcm94eSYgY2RtRmFjdG9yeVByb3h5KCk7CiAj
ZW5kaWYKQEAgLTI4Myw5ICsyODEsNyBAQCBwcml2YXRlOgogICAgIElQQzo6TWVzc2FnZVJlY2Vp
dmVyTWFwIG1fbWVzc2FnZVJlY2VpdmVyTWFwOwogICAgIFJlZjxHUFVQcm9jZXNzPiBtX2dwdVBy
b2Nlc3M7CiAgICAgY29uc3QgV2ViQ29yZTo6UHJvY2Vzc0lkZW50aWZpZXIgbV93ZWJQcm9jZXNz
SWRlbnRpZmllcjsKLSNpZiBIQVZFKFRBU0tfSURFTlRJVFlfVE9LRU4pCi0gICAgTWFjaFNlbmRS
aWdodCBtX3dlYlByb2Nlc3NJZGVudGl0eVRva2VuOwotI2VuZGlmCisgICAgY29uc3QgV2ViQ29y
ZTo6UHJvY2Vzc0lkZW50aXR5IG1fd2ViUHJvY2Vzc0lkZW50aXR5OwogI2lmIEVOQUJMRShXRUJf
QVVESU8pCiAgICAgc3RkOjp1bmlxdWVfcHRyPFJlbW90ZUF1ZGlvRGVzdGluYXRpb25NYW5hZ2Vy
PiBtX3JlbW90ZUF1ZGlvRGVzdGluYXRpb25NYW5hZ2VyOwogI2VuZGlmCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xD
b2NvYS5jcHAgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlR3JhcGhp
Y3NDb250ZXh0R0xDb2NvYS5jcHAKaW5kZXggYjhhYTlmZDU1MWE4OGE2YzNjMGE2MmE3Mjk0MGZh
M2QyYzQ0MTY3My4uNmM5MDYxYjVlMmVmZTViMmZjZGMwZjg1MDE4ZmNjMWI5NjQ3ZWUwNiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZUdyYXBoaWNz
Q29udGV4dEdMQ29jb2EuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGlj
cy9SZW1vdGVHcmFwaGljc0NvbnRleHRHTENvY29hLmNwcApAQCAtMjksNiArMjksNyBAQAogI2lm
IEVOQUJMRShHUFVfUFJPQ0VTUykgJiYgRU5BQkxFKFdFQkdMKSAmJiBQTEFURk9STShDT0NPQSkK
IAogI2luY2x1ZGUgIkdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaCIKKyNpbmNsdWRlIDxXZWJD
b3JlL1Byb2Nlc3NJZGVudGl0eS5oPgogI2luY2x1ZGUgPHd0Zi9NYWNoU2VuZFJpZ2h0Lmg+CiAK
IG5hbWVzcGFjZSBXZWJLaXQgewpAQCAtNDUsOSArNDYsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBw
bGF0Zm9ybVdvcmtRdWV1ZUluaXRpYWxpemUoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0R0xBdHRy
aWJ1dGVzJiYpIGZpbmFsOwogICAgIHZvaWQgcHJlcGFyZUZvckRpc3BsYXkoQ29tcGxldGlvbkhh
bmRsZXI8dm9pZChXVEY6Ok1hY2hTZW5kUmlnaHQmJik+JiYpIGZpbmFsOwogcHJpdmF0ZToKLSNp
ZiBIQVZFKElPU1VSRkFDRV9TRVRfT1dORVJTSElQX0lERU5USVRZKQotICAgIHRhc2tfaWRfdG9r
ZW5fdCBtX3dlYlByb2Nlc3NJZGVudGl0eVRva2VuOwotI2VuZGlmCisgICAgY29uc3QgUHJvY2Vz
c0lkZW50aXR5IG1fcmVzb3VyY2VPd25lcjsKIH07CiAKIH0KQEAgLTYxLDkgKzYwLDcgQEAgUmVm
PFJlbW90ZUdyYXBoaWNzQ29udGV4dEdMPiBSZW1vdGVHcmFwaGljc0NvbnRleHRHTDo6Y3JlYXRl
KEdQVUNvbm5lY3Rpb25Ub1dlYlAKIAogUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xDb2NvYTo6UmVt
b3RlR3JhcGhpY3NDb250ZXh0R0xDb2NvYShHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzJiBncHVD
b25uZWN0aW9uVG9XZWJQcm9jZXNzLCBHcmFwaGljc0NvbnRleHRHTElkZW50aWZpZXIgZ3JhcGhp
Y3NDb250ZXh0R0xJZGVudGlmaWVyLCBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kJiByZW5kZXJpbmdC
YWNrZW5kLCBJUEM6OlN0cmVhbUNvbm5lY3Rpb25CdWZmZXImJiBzdHJlYW0pCiAgICAgOiBSZW1v
dGVHcmFwaGljc0NvbnRleHRHTChncHVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLCBncmFwaGljc0Nv
bnRleHRHTElkZW50aWZpZXIsIHJlbmRlcmluZ0JhY2tlbmQsIFdURk1vdmUoc3RyZWFtKSkKLSNp
ZiBIQVZFKElPU1VSRkFDRV9TRVRfT1dORVJTSElQX0lERU5USVRZKQotICAgICwgbV93ZWJQcm9j
ZXNzSWRlbnRpdHlUb2tlbihncHVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLndlYlByb2Nlc3NJZGVu
dGl0eVRva2VuKCkpCi0jZW5kaWYKKyAgICAsIG1fcmVzb3VyY2VPd25lcihncHVDb25uZWN0aW9u
VG9XZWJQcm9jZXNzLndlYlByb2Nlc3NJZGVudGl0eSgpKQogewogCiB9CkBAIC03MSw3ICs2OCw3
IEBAIFJlbW90ZUdyYXBoaWNzQ29udGV4dEdMQ29jb2E6OlJlbW90ZUdyYXBoaWNzQ29udGV4dEdM
Q29jb2EoR1BVQ29ubmVjdGlvblRvV2ViUHJvCiB2b2lkIFJlbW90ZUdyYXBoaWNzQ29udGV4dEdM
Q29jb2E6OnBsYXRmb3JtV29ya1F1ZXVlSW5pdGlhbGl6ZShXZWJDb3JlOjpHcmFwaGljc0NvbnRl
eHRHTEF0dHJpYnV0ZXMmJiBhdHRyaWJ1dGVzKQogewogICAgIGFzc2VydElzQ3VycmVudChtX3N0
cmVhbVRocmVhZCk7Ci0gICAgbV9jb250ZXh0ID0gR3JhcGhpY3NDb250ZXh0R0xDb2NvYTo6Y3Jl
YXRlKFdURk1vdmUoYXR0cmlidXRlcykpOworICAgIG1fY29udGV4dCA9IEdyYXBoaWNzQ29udGV4
dEdMQ29jb2E6OmNyZWF0ZShXVEZNb3ZlKGF0dHJpYnV0ZXMpLCBQcm9jZXNzSWRlbnRpdHkgeyBt
X3Jlc291cmNlT3duZXIgfSk7CiB9CiAKIHZvaWQgUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xDb2Nv
YTo6cHJlcGFyZUZvckRpc3BsYXkoQ29tcGxldGlvbkhhbmRsZXI8dm9pZChXVEY6Ok1hY2hTZW5k
UmlnaHQmJik+JiYgY29tcGxldGlvbkhhbmRsZXIpCkBAIC04MiwxMCArNzksNiBAQCB2b2lkIFJl
bW90ZUdyYXBoaWNzQ29udGV4dEdMQ29jb2E6OnByZXBhcmVGb3JEaXNwbGF5KENvbXBsZXRpb25I
YW5kbGVyPHZvaWQoV1RGOgogICAgIElPU3VyZmFjZSogZGlzcGxheUJ1ZmZlciA9IG1fY29udGV4
dC0+ZGlzcGxheUJ1ZmZlcigpOwogICAgIGlmIChkaXNwbGF5QnVmZmVyKSB7CiAgICAgICAgIG1f
Y29udGV4dC0+bWFya0Rpc3BsYXlCdWZmZXJJblVzZSgpOwotI2lmIEhBVkUoSU9TVVJGQUNFX1NF
VF9PV05FUlNISVBfSURFTlRJVFkpCi0gICAgICAgIC8vIE1hcmsgdGhlIElPU3VyZmFjZSBhcyBi
ZWluZyBvd25lZCBieSB0aGUgV2ViUHJvY2VzcyBldmVuIHRob3VnaCBpdCB3YXMgY29uc3RydWN0
ZWQgYnkgdGhlIEdQVVByb2Nlc3Mgc28gdGhhdCBKZXRzYW0ga25vd3Mgd2hpY2ggcHJvY2VzcyB0
byBraWxsLgotICAgICAgICBkaXNwbGF5QnVmZmVyLT5zZXRPd25lcnNoaXBJZGVudGl0eShtX3dl
YlByb2Nlc3NJZGVudGl0eVRva2VuKTsKLSNlbmRpZgogICAgICAgICBzZW5kUmlnaHQgPSBkaXNw
bGF5QnVmZmVyLT5jcmVhdGVTZW5kUmlnaHQoKTsKICAgICB9CiAgICAgY29tcGxldGlvbkhhbmRs
ZXIoV1RGTW92ZShzZW5kUmlnaHQpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJv
Y2Vzcy9ncmFwaGljcy9SZW1vdGVJbWFnZUJ1ZmZlci5oIGIvU291cmNlL1dlYktpdC9HUFVQcm9j
ZXNzL2dyYXBoaWNzL1JlbW90ZUltYWdlQnVmZmVyLmgKaW5kZXggYTNkNDk0ZmU4YmY2YTE5NjQ3
ZWYxOTBjOWRiNDA0MmFlY2U2NzIyMC4uMzViNDUyNzBiNDU4NDI0ODA5ODEwNDJkYzc1NTM0ZmJh
YmFlYmYyZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1Jl
bW90ZUltYWdlQnVmZmVyLmgKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNz
L1JlbW90ZUltYWdlQnVmZmVyLmgKQEAgLTY5LDEzICs2OSwxMSBAQCBwdWJsaWM6CiAgICAgICAg
ICAgICBjb250ZXh0KCkucmVzdG9yZSgpOwogICAgIH0KIAotI2lmIEhBVkUoSU9TVVJGQUNFX1NF
VF9PV05FUlNISVBfSURFTlRJVFkpCi0gICAgdm9pZCBzZXRQcm9jZXNzT3duZXJzaGlwKHRhc2tf
aWRfdG9rZW5fdCBuZXdPd25lcikKKyAgICB2b2lkIHNldE93bmVyc2hpcElkZW50aXR5KGNvbnN0
IFdlYkNvcmU6OlByb2Nlc3NJZGVudGl0eSYgcmVzb3VyY2VPd25lcikKICAgICB7CiAgICAgICAg
IGlmIChtX2JhY2tlbmQpCi0gICAgICAgICAgICBtX2JhY2tlbmQtPnNldFByb2Nlc3NPd25lcnNo
aXAobmV3T3duZXIpOworICAgICAgICAgICAgbV9iYWNrZW5kLT5zZXRPd25lcnNoaXBJZGVudGl0
eShyZXNvdXJjZU93bmVyKTsKICAgICB9Ci0jZW5kaWYKIAogcHJpdmF0ZToKICAgICBmcmllbmQg
Y2xhc3MgUmVtb3RlUmVuZGVyaW5nQmFja2VuZDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
R1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmNwcCBiL1NvdXJjZS9X
ZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmNwcAppbmRl
eCBiMGRmNTM0MzQ0OTc4MmZhNGNlMzFiY2YzMzJkOGZjNWJjYzhiMTAyLi44ZGZiMjVkODI5MjY5
NGEyZDgxMmRhY2FiOTg3YTBjOWViZTM4ZWJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQ
VVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQuY3BwCkBA
IC04NSw2ICs4NSw3IEBAIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmQ6OlJlbW90ZVJlbmRlcmluZ0Jh
Y2tlbmQoR1BVQ29ubmVjdGlvblRvV2ViUHJvY2VzcyYgZ3B1Q29uCiAgICAgLCBtX3N0cmVhbUNv
bm5lY3Rpb24oSVBDOjpTdHJlYW1TZXJ2ZXJDb25uZWN0aW9uOjpjcmVhdGUoZ3B1Q29ubmVjdGlv
blRvV2ViUHJvY2Vzcy5jb25uZWN0aW9uKCksIFdURk1vdmUoc3RyZWFtQnVmZmVyKSwgbV93b3Jr
UXVldWUuZ2V0KCkpKQogICAgICwgbV9yZW1vdGVSZXNvdXJjZUNhY2hlKGdwdUNvbm5lY3Rpb25U
b1dlYlByb2Nlc3Mud2ViUHJvY2Vzc0lkZW50aWZpZXIoKSkKICAgICAsIG1fZ3B1Q29ubmVjdGlv
blRvV2ViUHJvY2VzcyhncHVDb25uZWN0aW9uVG9XZWJQcm9jZXNzKQorICAgICwgbV9yZXNvdXJj
ZU93bmVyKGdwdUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3Mud2ViUHJvY2Vzc0lkZW50aXR5KCkpCiAg
ICAgLCBtX3JlbmRlcmluZ0JhY2tlbmRJZGVudGlmaWVyKGNyZWF0aW9uUGFyYW1ldGVycy5pZGVu
dGlmaWVyKQogewogICAgIEFTU0VSVChSdW5Mb29wOjppc01haW4oKSk7CkBAIC0xNzQsMTAgKzE3
NSw5IEBAIHZvaWQgUmVtb3RlUmVuZGVyaW5nQmFja2VuZDo6Y3JlYXRlSW1hZ2VCdWZmZXJXaXRo
UXVhbGlmaWVkSWRlbnRpZmllcihjb25zdCBGbG9hCiAKICAgICBpZiAocmVuZGVyaW5nTW9kZSA9
PSBSZW5kZXJpbmdNb2RlOjpBY2NlbGVyYXRlZCkgewogICAgICAgICBpZiAoYXV0byBhY2NlbGVy
YXRlZEltYWdlQnVmZmVyID0gQWNjZWxlcmF0ZWRSZW1vdGVJbWFnZUJ1ZmZlcjo6Y3JlYXRlKGxv
Z2ljYWxTaXplLCByZXNvbHV0aW9uU2NhbGUsIGNvbG9yU3BhY2UsIHBpeGVsRm9ybWF0LCAqdGhp
cywgaW1hZ2VCdWZmZXJSZXNvdXJjZUlkZW50aWZpZXIpKSB7Ci0jaWYgSEFWRShJT1NVUkZBQ0Vf
U0VUX09XTkVSU0hJUF9JREVOVElUWSkKICAgICAgICAgICAgIC8vIE1hcmsgdGhlIElPU3VyZmFj
ZSBhcyBiZWluZyBvd25lZCBieSB0aGUgV2ViUHJvY2VzcyBldmVuIHRob3VnaCBpdCB3YXMgY29u
c3RydWN0ZWQgYnkgdGhlIEdQVVByb2Nlc3Mgc28gdGhhdCBKZXRzYW0ga25vd3Mgd2hpY2ggcHJv
Y2VzcyB0byBraWxsLgotICAgICAgICAgICAgYWNjZWxlcmF0ZWRJbWFnZUJ1ZmZlci0+c2V0UHJv
Y2Vzc093bmVyc2hpcChtX2dwdUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MtPndlYlByb2Nlc3NJZGVu
dGl0eVRva2VuKCkpOwotI2VuZGlmCisgICAgICAgICAgICBpZiAobV9yZXNvdXJjZU93bmVyKQor
ICAgICAgICAgICAgICAgIGFjY2VsZXJhdGVkSW1hZ2VCdWZmZXItPnNldE93bmVyc2hpcElkZW50
aXR5KG1fcmVzb3VyY2VPd25lcik7CiAgICAgICAgICAgICBpbWFnZUJ1ZmZlciA9IFdURk1vdmUo
YWNjZWxlcmF0ZWRJbWFnZUJ1ZmZlcik7CiAgICAgICAgIH0KICAgICB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5o
IGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tl
bmQuaAppbmRleCBlMzU3MTVkZDE3ZmVlNjQzNDViMjI2MmQ2OGNlYmVhNGQ3NGFiOTk2Li45YTI2
YzQyNGI5MTIxMTAxMThiNDM2MTg0ZGUzMGI4ZDI4ZGQxNTIzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5k
LmgKQEAgLTQ2LDYgKzQ2LDcgQEAKICNpbmNsdWRlIDxXZWJDb3JlL0Rpc3BsYXlMaXN0SXRlbXMu
aD4KICNpbmNsdWRlIDxXZWJDb3JlL0Rpc3BsYXlMaXN0UmVwbGF5ZXIuaD4KICNpbmNsdWRlIDxX
ZWJDb3JlL1Byb2Nlc3NJZGVudGlmaWVyLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9Qcm9jZXNzSWRl
bnRpdHkuaD4KICNpbmNsdWRlIDx3dGYvV2Vha1B0ci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7
CkBAIC0xMzMsNiArMTM0LDcgQEAgcHJpdmF0ZToKICAgICBSZWY8SVBDOjpTdHJlYW1TZXJ2ZXJD
b25uZWN0aW9uPiBtX3N0cmVhbUNvbm5lY3Rpb247CiAgICAgUmVtb3RlUmVzb3VyY2VDYWNoZSBt
X3JlbW90ZVJlc291cmNlQ2FjaGU7CiAgICAgUmVmPEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M+
IG1fZ3B1Q29ubmVjdGlvblRvV2ViUHJvY2VzczsKKyAgICBXZWJDb3JlOjpQcm9jZXNzSWRlbnRp
dHkgbV9yZXNvdXJjZU93bmVyOwogICAgIFJlbmRlcmluZ0JhY2tlbmRJZGVudGlmaWVyIG1fcmVu
ZGVyaW5nQmFja2VuZElkZW50aWZpZXI7CiAgICAgSVBDOjpTZW1hcGhvcmUgbV9nZXRQaXhlbEJ1
ZmZlclNlbWFwaG9yZTsKICAgICBSZWZQdHI8U2hhcmVkTWVtb3J5PiBtX2dldFBpeGVsQnVmZmVy
U2hhcmVkTWVtb3J5OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL3dlYnJ0
Yy9MaWJXZWJSVENDb2RlY3NQcm94eS5tbSBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy93ZWJy
dGMvTGliV2ViUlRDQ29kZWNzUHJveHkubW0KaW5kZXggMTMzZTI2ZTQ3NGUxZDMxOTE2M2U1NTcx
OTkyZDBjMGM3MTlkZGUxNC4uN2Q1NzkyMjEwMDMxOWMwMDEzMTM3ZDhhMmRlMzk1NDc0Yzg1Mzhl
MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL3dlYnJ0Yy9MaWJXZWJSVEND
b2RlY3NQcm94eS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mvd2VicnRjL0xpYldl
YlJUQ0NvZGVjc1Byb3h5Lm1tCkBAIC03NywxNCArNzcsMTEgQEAgdm9pZCBMaWJXZWJSVENDb2Rl
Y3NQcm94eTo6Y2xvc2UoKQogc3RhdGljIEZ1bmN0aW9uPHZvaWQoQ1ZQaXhlbEJ1ZmZlclJlZiBw
aXhlbEJ1ZmZlciwgdWludDMyX3QgdGltZVN0YW1wTnMsIHVpbnQzMl90IHRpbWVTdGFtcCk+IGNy
ZWF0ZURlY29kZXJDYWxsYmFjayhSVENEZWNvZGVySWRlbnRpZmllciBpZGVudGlmaWVyLCBHUFVD
b25uZWN0aW9uVG9XZWJQcm9jZXNzJiBncHVDb25uZWN0aW9uVG9XZWJQcm9jZXNzKQogewogICAg
IHJldHVybiBbY29ubmVjdGlvbiA9IFJlZiB7IGdwdUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY29u
bmVjdGlvbigpIH0sCi0jaWYgSEFWRShJT1NVUkZBQ0VfU0VUX09XTkVSU0hJUF9JREVOVElUWSkK
LSAgICAgICAgdG9rZW4gPSBncHVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLndlYlByb2Nlc3NJZGVu
dGl0eVRva2VuKCksCi0jZW5kaWYKKyAgICAgICAgcmVzb3VyY2VPd25lciA9IGdwdUNvbm5lY3Rp
b25Ub1dlYlByb2Nlc3Mud2ViUHJvY2Vzc0lkZW50aXR5KCksCiAgICAgICAgIGlkZW50aWZpZXJd
KENWUGl4ZWxCdWZmZXJSZWYgcGl4ZWxCdWZmZXIsIHVpbnQzMl90IHRpbWVTdGFtcE5zLCB1aW50
MzJfdCB0aW1lU3RhbXApIHsKICAgICAgICAgaWYgKGF1dG8gc2FtcGxlID0gV2ViQ29yZTo6UmVt
b3RlVmlkZW9TYW1wbGU6OmNyZWF0ZShwaXhlbEJ1ZmZlciwgTWVkaWFUaW1lKHRpbWVTdGFtcE5z
LCAxKSkpIHsKLSNpZiBIQVZFKElPU1VSRkFDRV9TRVRfT1dORVJTSElQX0lERU5USVRZKQotICAg
ICAgICAgICAgc2FtcGxlLT5zZXRPd25lcnNoaXBJZGVudGl0eSh0b2tlbik7Ci0jZW5kaWYKKyAg
ICAgICAgICAgIGlmIChyZXNvdXJjZU93bmVyKQorICAgICAgICAgICAgICAgIHNhbXBsZS0+c2V0
T3duZXJzaGlwSWRlbnRpdHkocmVzb3VyY2VPd25lcik7CiAgICAgICAgICAgICBjb25uZWN0aW9u
LT5zZW5kKE1lc3NhZ2VzOjpMaWJXZWJSVENDb2RlY3M6OkNvbXBsZXRlZERlY29kaW5nIHsgaWRl
bnRpZmllciwgdGltZVN0YW1wLCAqc2FtcGxlIH0sIDApOwogICAgICAgICB9CiAgICAgfTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0dQVVByb2Nlc3NDb25uZWN0aW9uUGFyYW1l
dGVycy5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvR1BVUHJvY2Vzc0Nvbm5lY3Rpb25QYXJhbWV0
ZXJzLmgKaW5kZXggMDk2ZmQwZTNiYTZjN2VjMTE3NzhmOTk0ZmZkNWU4Njc3ZTIwZmM1Ni4uZWQz
MDQ5NWIyNTIyODYxZjc0NjQ1MmZlOTA5MWI5NjU2MTEwNjc3MCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9TaGFyZWQvR1BVUHJvY2Vzc0Nvbm5lY3Rpb25QYXJhbWV0ZXJzLmgKKysrIGIvU291
cmNlL1dlYktpdC9TaGFyZWQvR1BVUHJvY2Vzc0Nvbm5lY3Rpb25QYXJhbWV0ZXJzLmgKQEAgLTI4
LDE0ICsyOCwxMyBAQAogI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKIAogI2luY2x1ZGUgIldlYkNv
cmVBcmd1bWVudENvZGVycy5oIgorI2luY2x1ZGUgPFdlYkNvcmUvUHJvY2Vzc0lkZW50aXR5Lmg+
CiAjaW5jbHVkZSA8d3RmL01hY2hTZW5kUmlnaHQuaD4KIAogbmFtZXNwYWNlIFdlYktpdCB7CiAK
IHN0cnVjdCBHUFVQcm9jZXNzQ29ubmVjdGlvblBhcmFtZXRlcnMgewotI2lmIEhBVkUoVEFTS19J
REVOVElUWV9UT0tFTikKLSAgICBNYWNoU2VuZFJpZ2h0IHdlYlByb2Nlc3NJZGVudGl0eVRva2Vu
OwotI2VuZGlmCisgICAgV2ViQ29yZTo6UHJvY2Vzc0lkZW50aXR5IHdlYlByb2Nlc3NJZGVudGl0
eTsKICAgICBWZWN0b3I8U3RyaW5nPiBvdmVycmlkZUxhbmd1YWdlczsKICNpZiBFTkFCTEUoSVBD
X1RFU1RJTkdfQVBJKQogICAgIGJvb2wgaWdub3JlSW52YWxpZE1lc3NhZ2VGb3JUZXN0aW5nIHsg
ZmFsc2UgfTsKQEAgLTQ2LDkgKzQ1LDcgQEAgc3RydWN0IEdQVVByb2Nlc3NDb25uZWN0aW9uUGFy
YW1ldGVycyB7CiAKICAgICB2b2lkIGVuY29kZShJUEM6OkVuY29kZXImIGVuY29kZXIpIGNvbnN0
CiAgICAgewotI2lmIEhBVkUoVEFTS19JREVOVElUWV9UT0tFTikKLSAgICAgICAgZW5jb2RlciA8
PCB3ZWJQcm9jZXNzSWRlbnRpdHlUb2tlbjsKLSNlbmRpZgorICAgICAgICBlbmNvZGVyIDw8IHdl
YlByb2Nlc3NJZGVudGl0eTsKICAgICAgICAgZW5jb2RlciA8PCBvdmVycmlkZUxhbmd1YWdlczsK
ICNpZiBFTkFCTEUoSVBDX1RFU1RJTkdfQVBJKQogICAgICAgICBlbmNvZGVyIDw8IGlnbm9yZUlu
dmFsaWRNZXNzYWdlRm9yVGVzdGluZzsKQEAgLTYwLDEyICs1NywxMCBAQCBzdHJ1Y3QgR1BVUHJv
Y2Vzc0Nvbm5lY3Rpb25QYXJhbWV0ZXJzIHsKIAogICAgIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPEdQ
VVByb2Nlc3NDb25uZWN0aW9uUGFyYW1ldGVycz4gZGVjb2RlKElQQzo6RGVjb2RlciYgZGVjb2Rl
cikKICAgICB7Ci0jaWYgSEFWRShUQVNLX0lERU5USVRZX1RPS0VOKQotICAgICAgICBzdGQ6Om9w
dGlvbmFsPE1hY2hTZW5kUmlnaHQ+IHdlYlByb2Nlc3NJZGVudGl0eVRva2VuOwotICAgICAgICBk
ZWNvZGVyID4+IHdlYlByb2Nlc3NJZGVudGl0eVRva2VuOwotICAgICAgICBpZiAoIXdlYlByb2Nl
c3NJZGVudGl0eVRva2VuKQorICAgICAgICBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OlByb2Nlc3NJ
ZGVudGl0eT4gd2ViUHJvY2Vzc0lkZW50aXR5OworICAgICAgICBkZWNvZGVyID4+IHdlYlByb2Nl
c3NJZGVudGl0eTsKKyAgICAgICAgaWYgKCF3ZWJQcm9jZXNzSWRlbnRpdHkpCiAgICAgICAgICAg
ICByZXR1cm4gc3RkOjpudWxsb3B0OwotI2VuZGlmCiAKICAgICAgICAgc3RkOjpvcHRpb25hbDxW
ZWN0b3I8U3RyaW5nPj4gb3ZlcnJpZGVMYW5ndWFnZXM7CiAgICAgICAgIGRlY29kZXIgPj4gb3Zl
cnJpZGVMYW5ndWFnZXM7CkBAIC04Niw5ICs4MSw3IEBAIHN0cnVjdCBHUFVQcm9jZXNzQ29ubmVj
dGlvblBhcmFtZXRlcnMgewogI2VuZGlmCiAKICAgICAgICAgcmV0dXJuIEdQVVByb2Nlc3NDb25u
ZWN0aW9uUGFyYW1ldGVycyB7Ci0jaWYgSEFWRShUQVNLX0lERU5USVRZX1RPS0VOKQotICAgICAg
ICAgICAgV1RGTW92ZSgqd2ViUHJvY2Vzc0lkZW50aXR5VG9rZW4pLAotI2VuZGlmCisgICAgICAg
ICAgICBXVEZNb3ZlKCp3ZWJQcm9jZXNzSWRlbnRpdHkpLAogICAgICAgICAgICAgV1RGTW92ZSgq
b3ZlcnJpZGVMYW5ndWFnZXMpLAogI2lmIEVOQUJMRShJUENfVEVTVElOR19BUEkpCiAgICAgICAg
ICAgICAqaWdub3JlSW52YWxpZE1lc3NhZ2VGb3JUZXN0aW5nLApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclBy
b3h5LmNwcAppbmRleCAyYmIzYmNkYjU4MmRjODUzZjIwODNlY2U0NDcxOTNjNDQxOTNlYzkyLi5i
ZGFmOThkMTBkZDM1OGJkZDdiZjc5MzNhYmQxNDg2NTA3Y2NlZDg2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5LmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFu
YWdlclByb3h5LmNwcApAQCAtNTcsOSArNTcsMTAgQEAgY2xhc3MgVXNlck1lZGlhQ2FwdHVyZU1h
bmFnZXJQcm94eTo6U291cmNlUHJveHkKICAgICAsIHByaXZhdGUgUmVhbHRpbWVNZWRpYVNvdXJj
ZTo6VmlkZW9TYW1wbGVPYnNlcnZlciB7CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBw
dWJsaWM6Ci0gICAgU291cmNlUHJveHkoUmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgaWQs
IFJlZjxJUEM6OkNvbm5lY3Rpb24+JiYgY29ubmVjdGlvbiwgUmVmPFJlYWx0aW1lTWVkaWFTb3Vy
Y2U+JiYgc291cmNlKQorICAgIFNvdXJjZVByb3h5KFJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlm
aWVyIGlkLCBSZWY8SVBDOjpDb25uZWN0aW9uPiYmIGNvbm5lY3Rpb24sIFByb2Nlc3NJZGVudGl0
eSYmIHJlc291cmNlT3duZXIsIFJlZjxSZWFsdGltZU1lZGlhU291cmNlPiYmIHNvdXJjZSkKICAg
ICAgICAgOiBtX2lkKGlkKQogICAgICAgICAsIG1fY29ubmVjdGlvbihXVEZNb3ZlKGNvbm5lY3Rp
b24pKQorICAgICAgICAsIG1fcmVzb3VyY2VPd25lcihXVEZNb3ZlKHJlc291cmNlT3duZXIpKQog
ICAgICAgICAsIG1fc291cmNlKFdURk1vdmUoc291cmNlKSkKICAgICB7CiAgICAgICAgIG1fc291
cmNlLT5hZGRPYnNlcnZlcigqdGhpcyk7CkBAIC0xMjUsOSArMTI2LDYgQEAgcHVibGljOgogICAg
IH0KIAogICAgIHZvaWQgc2V0U2hvdWxkQXBwbHlSb3RhdGlvbihib29sIHNob3VsZEFwcGx5Um90
YXRpb24pIHsgbV9zaG91bGRBcHBseVJvdGF0aW9uID0gdHJ1ZTsgfQotI2lmIEhBVkUoSU9TVVJG
QUNFX1NFVF9PV05FUlNISVBfSURFTlRJVFkpCi0gICAgdm9pZCBzZXRXZWJQcm9jZXNzSWRlbnRp
dHlUb2tlbihzdGQ6Om9wdGlvbmFsPHRhc2tfaWRfdG9rZW5fdD4gdG9rZW4pIHsgbV93ZWJQcm9j
ZXNzSWRlbnRpdHlUb2tlbiA9IHRva2VuO30KLSNlbmRpZgogCiBwcml2YXRlOgogICAgIHZvaWQg
c291cmNlU3RvcHBlZCgpIGZpbmFsIHsKQEAgLTE4OCwxMCArMTg2LDggQEAgcHJpdmF0ZToKICAg
ICAgICAgfSBlbHNlCiAgICAgICAgICAgICByZW1vdGVTYW1wbGUgPSBSZW1vdGVWaWRlb1NhbXBs
ZTo6Y3JlYXRlKHNhbXBsZSk7CiAgICAgICAgIGlmIChyZW1vdGVTYW1wbGUpIHsKLSNpZiBIQVZF
KElPU1VSRkFDRV9TRVRfT1dORVJTSElQX0lERU5USVRZKQotICAgICAgICAgICAgaWYgKG1fd2Vi
UHJvY2Vzc0lkZW50aXR5VG9rZW4pCi0gICAgICAgICAgICAgICAgcmVtb3RlU2FtcGxlLT5zZXRP
d25lcnNoaXBJZGVudGl0eSgqbV93ZWJQcm9jZXNzSWRlbnRpdHlUb2tlbik7Ci0jZW5kaWYKKyAg
ICAgICAgICAgIGlmIChtX3Jlc291cmNlT3duZXIpCisgICAgICAgICAgICAgICAgcmVtb3RlU2Ft
cGxlLT5zZXRPd25lcnNoaXBJZGVudGl0eShtX3Jlc291cmNlT3duZXIpOwogICAgICAgICAgICAg
bV9jb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpSZW1vdGVDYXB0dXJlU2FtcGxlTWFuYWdlcjo6
VmlkZW9TYW1wbGVBdmFpbGFibGUobV9pZCwgV1RGTW92ZSgqcmVtb3RlU2FtcGxlKSwgbWV0YWRh
dGEpLCAwKTsKICAgICAgICAgfQogICAgIH0KQEAgLTI0NCw2ICsyNDAsNyBAQCBwcml2YXRlOgog
ICAgIFJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIG1faWQ7CiAgICAgV2Vha1B0cjxQbGF0
Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXI+IG1fc2Vzc2lvbk1hbmFnZXI7CiAgICAgUmVmPElQQzo6
Q29ubmVjdGlvbj4gbV9jb25uZWN0aW9uOworICAgIFByb2Nlc3NJZGVudGl0eSBtX3Jlc291cmNl
T3duZXI7CiAgICAgUmVmPFJlYWx0aW1lTWVkaWFTb3VyY2U+IG1fc291cmNlOwogICAgIHN0ZDo6
dW5pcXVlX3B0cjxDQVJpbmdCdWZmZXI+IG1fcmluZ0J1ZmZlcjsKICAgICBDQUF1ZGlvU3RyZWFt
RGVzY3JpcHRpb24gbV9kZXNjcmlwdGlvbiB7IH07CkBAIC0yNTcsOSArMjU0LDYgQEAgcHJpdmF0
ZToKICAgICBzaXplX3QgbV9mcmFtZUNodW5rU2l6ZSB7IDAgfTsKICAgICBNZWRpYVRpbWUgbV9z
dGFydFRpbWU7CiAgICAgYm9vbCBtX3Nob3VsZFJlc2V0IHsgZmFsc2UgfTsKLSNpZiBIQVZFKFRB
U0tfSURFTlRJVFlfVE9LRU4pCi0gICAgc3RkOjpvcHRpb25hbDx0YXNrX2lkX3Rva2VuX3Q+IG1f
d2ViUHJvY2Vzc0lkZW50aXR5VG9rZW47Ci0jZW5kaWYKIH07CiAKIFVzZXJNZWRpYUNhcHR1cmVN
YW5hZ2VyUHJveHk6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkoVW5pcXVlUmVmPENvbm5l
Y3Rpb25Qcm94eT4mJiBjb25uZWN0aW9uUHJveHkpCkBAIC0zMjMsMTIgKzMxNyw3IEBAIHZvaWQg
VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6Y3JlYXRlTWVkaWFTb3VyY2VGb3JDYXB0dXJl
RGV2aWNlV2l0aENvbnN0cmFpCiAgICAgICAgIH0KIAogICAgICAgICBBU1NFUlQoIW1fcHJveGll
cy5jb250YWlucyhpZCkpOwotICAgICAgICBhdXRvIHByb3h5ID0gbWFrZVVuaXF1ZTxTb3VyY2VQ
cm94eT4oaWQsIG1fY29ubmVjdGlvblByb3h5LT5jb25uZWN0aW9uKCksIFdURk1vdmUoc291cmNl
KSk7Ci0jaWYgSEFWRShJT1NVUkZBQ0VfU0VUX09XTkVSU0hJUF9JREVOVElUWSkKLSAgICAgICAg
aWYgKGRldmljZS50eXBlKCkgIT0gV2ViQ29yZTo6Q2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6
TWljcm9waG9uZSkKLSAgICAgICAgICAgIHByb3h5LT5zZXRXZWJQcm9jZXNzSWRlbnRpdHlUb2tl
bihtX2Nvbm5lY3Rpb25Qcm94eS0+d2ViUHJvY2Vzc0lkZW50aXR5VG9rZW4oKSk7Ci0jZW5kaWYK
LQorICAgICAgICBhdXRvIHByb3h5ID0gbWFrZVVuaXF1ZTxTb3VyY2VQcm94eT4oaWQsIG1fY29u
bmVjdGlvblByb3h5LT5jb25uZWN0aW9uKCksIFByb2Nlc3NJZGVudGl0eSB7IG1fY29ubmVjdGlv
blByb3h5LT5yZXNvdXJjZU93bmVyKCkgfSwgV1RGTW92ZShzb3VyY2UpKTsKICAgICAgICAgbV9w
cm94aWVzLmFkZChpZCwgV1RGTW92ZShwcm94eSkpOwogICAgIH0gZWxzZQogICAgICAgICBpbnZh
bGlkQ29uc3RyYWludHMgPSBXVEZNb3ZlKHNvdXJjZU9yRXJyb3IuZXJyb3JNZXNzYWdlKTsKQEAg
LTM5NCw3ICszODMsNyBAQCB2b2lkIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6OmNsb25l
KFJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIGNsb25lZElELAogICAgIE1FU1NBR0VfQ0hF
Q0sobV9wcm94aWVzLmNvbnRhaW5zKGNsb25lZElEKSk7CiAgICAgTUVTU0FHRV9DSEVDSyghbV9w
cm94aWVzLmNvbnRhaW5zKG5ld1NvdXJjZUlEKSk7CiAgICAgaWYgKGF1dG8qIHByb3h5ID0gbV9w
cm94aWVzLmdldChjbG9uZWRJRCkpCi0gICAgICAgIG1fcHJveGllcy5hZGQobmV3U291cmNlSUQs
IG1ha2VVbmlxdWU8U291cmNlUHJveHk+KG5ld1NvdXJjZUlELCBtX2Nvbm5lY3Rpb25Qcm94eS0+
Y29ubmVjdGlvbigpLCBwcm94eS0+c291cmNlKCkuY2xvbmUoKSkpOworICAgICAgICBtX3Byb3hp
ZXMuYWRkKG5ld1NvdXJjZUlELCBtYWtlVW5pcXVlPFNvdXJjZVByb3h5PihuZXdTb3VyY2VJRCwg
bV9jb25uZWN0aW9uUHJveHktPmNvbm5lY3Rpb24oKSwgUHJvY2Vzc0lkZW50aXR5IHsgbV9jb25u
ZWN0aW9uUHJveHktPnJlc291cmNlT3duZXIoKSB9LCBwcm94eS0+c291cmNlKCkuY2xvbmUoKSkp
OwogfQogCiB2b2lkIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6OnJlcXVlc3RUb0VuZChS
ZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciBzb3VyY2VJRCkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkuaCBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJv
eHkuaAppbmRleCBhMDk0MjlkZjY3OTFlOTBmODRhOTM0OTVmYjBlZDI4NWNjZWQwZDJjLi5mYTgy
OWM3YzQ5MDNkNTFiNTdhNzg5NzE3ODQ3M2Y4MGNiZjI4NmRlIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5LmgKKysr
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQ
cm94eS5oCkBAIC0zMiw2ICszMiw3IEBACiAjaW5jbHVkZSAiVXNlck1lZGlhQ2FwdHVyZU1hbmFn
ZXIuaCIKICNpbmNsdWRlIDxXZWJDb3JlL0NhcHR1cmVEZXZpY2UuaD4KICNpbmNsdWRlIDxXZWJD
b3JlL09yaWVudGF0aW9uTm90aWZpZXIuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1Byb2Nlc3NJZGVu
dGl0eS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUmVhbHRpbWVNZWRpYVNvdXJjZS5oPgogI2luY2x1
ZGUgPFdlYkNvcmUvUmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIuaD4KICNpbmNsdWRlIDxw
YWwvc3BpL2NvY29hL1RDQ1NQSS5oPgpAQCAtNTksOSArNjAsNyBAQCBwdWJsaWM6CiAgICAgICAg
IHZpcnR1YWwgYm9vbCB3aWxsU3RhcnRDYXB0dXJlKFdlYkNvcmU6OkNhcHR1cmVEZXZpY2U6OkRl
dmljZVR5cGUpIGNvbnN0ID0gMDsKICAgICAgICAgdmlydHVhbCBMb2dnZXImIGxvZ2dlcigpID0g
MDsKICAgICAgICAgdmlydHVhbCBib29sIHNldENhcHR1cmVBdHRyaWJ1dGlvblN0cmluZygpIHsg
cmV0dXJuIHRydWU7IH0KLSNpZiBIQVZFKElPU1VSRkFDRV9TRVRfT1dORVJTSElQX0lERU5USVRZ
KQotICAgICAgICB2aXJ0dWFsIHN0ZDo6b3B0aW9uYWw8dGFza19pZF90b2tlbl90PiB3ZWJQcm9j
ZXNzSWRlbnRpdHlUb2tlbigpIGNvbnN0IHsgcmV0dXJuIHsgfTsgfTsKLSNlbmRpZgorICAgICAg
ICB2aXJ0dWFsIGNvbnN0IFdlYkNvcmU6OlByb2Nlc3NJZGVudGl0eSYgcmVzb3VyY2VPd25lcigp
IGNvbnN0ID0gMDsKICNpZiBFTkFCTEUoQVBQX1BSSVZBQ1lfUkVQT1JUKQogICAgICAgICB2aXJ0
dWFsIHZvaWQgc2V0VENDSWRlbnRpdHkoKSB7IH0KICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAKaW5kZXggNjY1NmUyZGRkZDNiNDJjYzcwN2U4YTI4
YjVkYTlhZGE3MDgwOTlmYi4uNjNlNmUxMzdmZmFjMGEyODkxMTA1Yzg5ZTA3NmExMDFlNGFmZTZl
MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwCkBAIC0y
MTYsNiArMjE2LDEzIEBAIHByaXZhdGU6CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KIAor
ICAgIGNvbnN0IFdlYkNvcmU6OlByb2Nlc3NJZGVudGl0eSYgcmVzb3VyY2VPd25lcigpIGNvbnN0
IGZpbmFsCisgICAgeworICAgICAgICAvLyBGSVhNRTogc2hvdWxkIG9idGFpbiBXZWJDb250ZW50
IHByb2Nlc3MgaWRlbnRpdHkgZnJvbSBXZWJDb250ZW50LgorICAgICAgICBzdGF0aWMgTmV2ZXJE
ZXN0cm95ZWQ8V2ViQ29yZTo6UHJvY2Vzc0lkZW50aXR5PiBkdW1teTsKKyAgICAgICAgcmV0dXJu
IGR1bW15LmdldCgpOworICAgIH0KKwogICAgIFJlZlB0cjxMb2dnZXI+IG1fbG9nZ2VyOwogICAg
IFdlYlByb2Nlc3NQcm94eSYgbV9wcm9jZXNzOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvSW1hZ2VCdWZmZXJTaGFyZWFibGVCaXRtYXBCYWNr
ZW5kLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL0ltYWdlQnVmZmVy
U2hhcmVhYmxlQml0bWFwQmFja2VuZC5oCmluZGV4IDE4NDdmYTZmYmRlNDA2ZWQ2YTZhZDA2MDQ5
OGI4ODVjNWUzNmJiM2QuLmM1YjI2YzQwZTc0NjAzMjJkZmFmZTI5YjBjZTZlMzY0MTY3ZTcyYWMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvSW1hZ2VC
dWZmZXJTaGFyZWFibGVCaXRtYXBCYWNrZW5kLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL0dQVS9ncmFwaGljcy9JbWFnZUJ1ZmZlclNoYXJlYWJsZUJpdG1hcEJhY2tlbmQuaApAQCAt
MzEsNiArMzEsMTAgQEAKICNpbmNsdWRlIDxXZWJDb3JlL1BsYXRmb3JtSW1hZ2VCdWZmZXJCYWNr
ZW5kLmg+CiAjaW5jbHVkZSA8d3RmL0lzb01hbGxvYy5oPgogCituYW1lc3BhY2UgV2ViQ29yZSB7
CitjbGFzcyBQcm9jZXNzSWRlbnRpdHk7Cit9CisKIG5hbWVzcGFjZSBXZWJLaXQgewogCiBjbGFz
cyBTaGFyZWFibGVCaXRtYXA7CkBAIC02MSw2ICs2NSw3IEBAIHB1YmxpYzoKICAgICBzdGQ6Om9w
dGlvbmFsPFdlYkNvcmU6OlBpeGVsQnVmZmVyPiBnZXRQaXhlbEJ1ZmZlcihjb25zdCBXZWJDb3Jl
OjpQaXhlbEJ1ZmZlckZvcm1hdCYgb3V0cHV0Rm9ybWF0LCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0
JikgY29uc3Qgb3ZlcnJpZGU7CiAgICAgdm9pZCBwdXRQaXhlbEJ1ZmZlcihjb25zdCBXZWJDb3Jl
OjpQaXhlbEJ1ZmZlciYsIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmIHNyY1JlY3QsIGNvbnN0IFdl
YkNvcmU6OkludFBvaW50JiBkZXN0UG9pbnQsIFdlYkNvcmU6OkFscGhhUHJlbXVsdGlwbGljYXRp
b24gZGVzdEZvcm1hdCkgb3ZlcnJpZGU7CiAKKyAgICB2b2lkIHNldE93bmVyc2hpcElkZW50aXR5
KGNvbnN0IFdlYkNvcmU6OlByb2Nlc3NJZGVudGl0eSYpIHsgfQogcHJpdmF0ZToKICAgICB1bnNp
Z25lZCBieXRlc1BlclJvdygpIGNvbnN0IG92ZXJyaWRlOwogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL2NvY29hL0ltYWdlQnVmZmVyU2hhcmVhYmxl
TWFwcGVkSU9TdXJmYWNlQmFja2VuZC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BV
L2dyYXBoaWNzL2NvY29hL0ltYWdlQnVmZmVyU2hhcmVhYmxlTWFwcGVkSU9TdXJmYWNlQmFja2Vu
ZC5jcHAKaW5kZXggYWZkMmM3YzA1Y2ZhZmQxMzk5MzQ0ZjVjNmE3NjRlNDg4MGQyOGJkYS4uYjI5
ZmM1NzI3ODk1MDMwZDQyZmRiNDI3YjE1ODQ0N2YwZDcxMDYzYiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9jb2NvYS9JbWFnZUJ1ZmZlclNoYXJlYWJs
ZU1hcHBlZElPU3VyZmFjZUJhY2tlbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9HUFUvZ3JhcGhpY3MvY29jb2EvSW1hZ2VCdWZmZXJTaGFyZWFibGVNYXBwZWRJT1N1cmZhY2VC
YWNrZW5kLmNwcApAQCAtNzcsMTMgKzc3LDExIEBAIEltYWdlQnVmZmVyQmFja2VuZEhhbmRsZSBJ
bWFnZUJ1ZmZlclNoYXJlYWJsZU1hcHBlZElPU3VyZmFjZUJhY2tlbmQ6OmNyZWF0ZUltYWdlCiAg
ICAgcmV0dXJuIEltYWdlQnVmZmVyQmFja2VuZEhhbmRsZShtX3N1cmZhY2UtPmNyZWF0ZVNlbmRS
aWdodCgpKTsKIH0KIAotI2lmIEhBVkUoSU9TVVJGQUNFX1NFVF9PV05FUlNISVBfSURFTlRJVFkp
Ci12b2lkIEltYWdlQnVmZmVyU2hhcmVhYmxlTWFwcGVkSU9TdXJmYWNlQmFja2VuZDo6c2V0UHJv
Y2Vzc093bmVyc2hpcCh0YXNrX2lkX3Rva2VuX3QgcHJvY2Vzc0lkZW50aXR5VG9rZW4pCit2b2lk
IEltYWdlQnVmZmVyU2hhcmVhYmxlTWFwcGVkSU9TdXJmYWNlQmFja2VuZDo6c2V0T3duZXJzaGlw
SWRlbnRpdHkoY29uc3QgV2ViQ29yZTo6UHJvY2Vzc0lkZW50aXR5JiByZXNvdXJjZU93bmVyKQog
ewogICAgIEFTU0VSVChzdXJmYWNlKCkpOwotICAgIHN1cmZhY2UoKS0+c2V0T3duZXJzaGlwSWRl
bnRpdHkocHJvY2Vzc0lkZW50aXR5VG9rZW4pOworICAgIHN1cmZhY2UoKS0+c2V0T3duZXJzaGlw
SWRlbnRpdHkocmVzb3VyY2VPd25lcik7CiB9Ci0jZW5kaWYKIAogfSAvLyBuYW1lc3BhY2UgV2Vi
S2l0CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3Mv
Y29jb2EvSW1hZ2VCdWZmZXJTaGFyZWFibGVNYXBwZWRJT1N1cmZhY2VCYWNrZW5kLmggYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL2NvY29hL0ltYWdlQnVmZmVyU2hhcmVh
YmxlTWFwcGVkSU9TdXJmYWNlQmFja2VuZC5oCmluZGV4IGUxNGE1NDBlY2RkZDQ3MTE5MDhhN2Mx
NzFjM2EyNWViZmQ4MDhkYmUuLjNhNTFmYjczMzhjYTFkMjJjZGJkYjMzMDA2ODYyYjhhZjhkZmYx
OWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvY29j
b2EvSW1hZ2VCdWZmZXJTaGFyZWFibGVNYXBwZWRJT1N1cmZhY2VCYWNrZW5kLmgKKysrIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9jb2NvYS9JbWFnZUJ1ZmZlclNoYXJl
YWJsZU1hcHBlZElPU3VyZmFjZUJhY2tlbmQuaApAQCAtMzEsNiArMzEsMTAgQEAKICNpbmNsdWRl
IDxXZWJDb3JlL0ltYWdlQnVmZmVySU9TdXJmYWNlQmFja2VuZC5oPgogI2luY2x1ZGUgPHd0Zi9J
c29NYWxsb2MuaD4KIAorbmFtZXNwYWNlIFdlYkNvcmUgeworY2xhc3MgUHJvY2Vzc0lkZW50aXR5
OworfQorCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogY2xhc3MgU2hhcmVhYmxlQml0bWFwOwpAQCAt
NDYsOSArNTAsNyBAQCBwdWJsaWM6CiAKICAgICBJbWFnZUJ1ZmZlckJhY2tlbmRIYW5kbGUgY3Jl
YXRlSW1hZ2VCdWZmZXJCYWNrZW5kSGFuZGxlKCkgY29uc3Q7CiAKLSNpZiBIQVZFKElPU1VSRkFD
RV9TRVRfT1dORVJTSElQX0lERU5USVRZKQotICAgIHZvaWQgc2V0UHJvY2Vzc093bmVyc2hpcCh0
YXNrX2lkX3Rva2VuX3QpOwotI2VuZGlmCisgICAgdm9pZCBzZXRPd25lcnNoaXBJZGVudGl0eShj
b25zdCBXZWJDb3JlOjpQcm9jZXNzSWRlbnRpdHkmIHJlc291cmNlT3duZXIpOwogfTsKIAogfSAv
LyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
Y29jb2EvV2ViUHJvY2Vzc0NvY29hLm1tIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29h
L1dlYlByb2Nlc3NDb2NvYS5tbQppbmRleCA2YTdmYzczZTlhMWMwMWVkZTg4Y2FjNTkyNjEzOWIz
OTE2NGJmN2I4Li4xMDUyNmExMGM1MDM5MzFiODY3MjJkODBiNWVkOTdmNWQzODMwYTRhIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvV2ViUHJvY2Vzc0NvY29hLm1t
CisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9XZWJQcm9jZXNzQ29jb2EubW0K
QEAgLTEyMjYsMTQgKzEyMjYsNyBAQCB2b2lkIFdlYlByb2Nlc3M6OndhaXRGb3JQZW5kaW5nUGFz
dGVib2FyZFdyaXRlc1RvRmluaXNoKGNvbnN0IFN0cmluZyYgcGFzdGVib2FyZAogI2lmIEVOQUJM
RShHUFVfUFJPQ0VTUykKIHZvaWQgV2ViUHJvY2Vzczo6cGxhdGZvcm1Jbml0aWFsaXplR1BVUHJv
Y2Vzc0Nvbm5lY3Rpb25QYXJhbWV0ZXJzKEdQVVByb2Nlc3NDb25uZWN0aW9uUGFyYW1ldGVycyYg
cGFyYW1ldGVycykKIHsKLSNpZiBIQVZFKFRBU0tfSURFTlRJVFlfVE9LRU4pCi0gICAgdGFza19p
ZF90b2tlbl90IGlkZW50aXR5VG9rZW47Ci0gICAga2Vybl9yZXR1cm5fdCBrciA9IHRhc2tfY3Jl
YXRlX2lkZW50aXR5X3Rva2VuKG1hY2hfdGFza19zZWxmKCksICZpZGVudGl0eVRva2VuKTsKLSAg
ICBpZiAoa3IgPT0gS0VSTl9TVUNDRVNTKQotICAgICAgICBwYXJhbWV0ZXJzLndlYlByb2Nlc3NJ
ZGVudGl0eVRva2VuID0gTWFjaFNlbmRSaWdodDo6YWRvcHQoaWRlbnRpdHlUb2tlbik7Ci0gICAg
ZWxzZQotICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihQcm9jZXNzLCAiQ2FsbCB0byB0YXNrX2Ny
ZWF0ZV9pZGVudGl0eV90b2tlbigpIGZhaWxlZDogJXtwcml2YXRlfXMgKCV4KSIsIG1hY2hfZXJy
b3Jfc3RyaW5nKGtyKSwga3IpOwotI2VuZGlmCisgICAgcGFyYW1ldGVycy53ZWJQcm9jZXNzSWRl
bnRpdHkgPSBQcm9jZXNzSWRlbnRpdHkgeyBQcm9jZXNzSWRlbnRpdHk6OkN1cnJlbnRQcm9jZXNz
IH07CiAKICAgICBwYXJhbWV0ZXJzLm92ZXJyaWRlTGFuZ3VhZ2VzID0gdXNlclByZWZlcnJlZExh
bmd1YWdlc092ZXJyaWRlKCk7CiB9CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29s
cy9DaGFuZ2VMb2cKaW5kZXggYTNkZmQzZDBlYzExODQwNjVlODhjZDcwMzJmMjYxOTBhN2E2YjRh
ZS4uM2NmNTM3YzRkY2I3YjI2OTk4ODNjNDM5YmEzZWNlMjg2MzJiMDFiYiAxMDA2NDQKLS0tIGEv
VG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisy
MDIxLTEyLTA4ICBLaW1tbyBLaW5udW5lbiAgPGtraW5udW5lbkBhcHBsZS5jb20+CisKKyAgICAg
ICAgSU9TdXJmYWNlIG1lbW9yeSBhdHRyaWJ1dGlvbiBpcyBoYXJkIHRvIHVzZSBpbiBjb25zdHJ1
Y3RvcnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIz
Mjk4OAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vODU1NDE5MTg+CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVXBkYXRlIGNvbnN0cnVjdG9yIGNhbGxp
bmcgYmFzZSBjbGFzcyBjb25zdHJ1Y3RvciwgYWRkIGVtcHR5CisgICAgICAgIFByb2Nlc3NlSWRl
bnRpdHkuCisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvY29jb2EvVGVz
dEdyYXBoaWNzQ29udGV4dEdMQ29jb2EubW06CisKIDIwMjEtMTItMDcgIEFkaXR5YSBLZWVydGhp
ICA8YWtlZXJ0aGlAYXBwbGUuY29tPgogCiAgICAgICAgIFtpT1NdIEFkZCBpbml0aWFsIHN1cHBv
cnQgZm9yIGZpbmQtaW4tcGFnZSBTUEkKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV2ViQ29yZS9jb2NvYS9UZXN0R3JhcGhpY3NDb250ZXh0R0xDb2NvYS5tbSBiL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9jb2NvYS9UZXN0R3JhcGhpY3NDb250ZXh0R0xD
b2NvYS5tbQppbmRleCBlMTkxMWRmNmMwOTNlMzhjOGQ0MmZhMTc5ZWZkNWU3NzJlYTY1ZGM0Li5k
MGYwYTYyMzFkYmMxMmU2OTE5MDAxM2E4OWNmNzNkNjg1OTFlYTU2IDEwMDY0NAotLS0gYS9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvY29jb2EvVGVzdEdyYXBoaWNzQ29udGV4dEdM
Q29jb2EubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL2NvY29hL1Rl
c3RHcmFwaGljc0NvbnRleHRHTENvY29hLm1tCkBAIC0zMiw2ICszMiw3IEBACiAjaW1wb3J0IDxN
ZXRhbC9NZXRhbC5oPgogI2ltcG9ydCA8V2ViQ29yZS9Db2xvci5oPgogI2ltcG9ydCA8V2ViQ29y
ZS9HcmFwaGljc0NvbnRleHRHTENvY29hLmg+CisjaW1wb3J0IDxXZWJDb3JlL1Byb2Nlc3NJZGVu
dGl0eS5oPgogI2ltcG9ydCA8b3B0aW9uYWw+CiAjaW1wb3J0IDx3dGYvSGFzaFNldC5oPgogI2lt
cG9ydCA8d3RmL01lbW9yeUZvb3RwcmludC5oPgpAQCAtNTAsNyArNTEsNyBAQCBwdWJsaWM6CiAg
ICAgUmVmUHRyPFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXJDb250ZW50c0Rpc3BsYXlEZWxlZ2F0ZT4g
bGF5ZXJDb250ZW50c0Rpc3BsYXlEZWxlZ2F0ZSgpIGZpbmFsIHsgcmV0dXJuIG51bGxwdHI7IH0K
IHByaXZhdGU6CiAgICAgVGVzdGVkR3JhcGhpY3NDb250ZXh0R0xDb2NvYShXZWJDb3JlOjpHcmFw
aGljc0NvbnRleHRHTEF0dHJpYnV0ZXMgYXR0cmlidXRlcykKLSAgICAgICAgOiBXZWJDb3JlOjpH
cmFwaGljc0NvbnRleHRHTENvY29hKFdURk1vdmUoYXR0cmlidXRlcykpCisgICAgICAgIDogV2Vi
Q29yZTo6R3JhcGhpY3NDb250ZXh0R0xDb2NvYShXVEZNb3ZlKGF0dHJpYnV0ZXMpLCB7IH0pCiAg
ICAgewogICAgIH0KIH07Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>446505</attachid>
            <date>2021-12-09 00:35:58 -0800</date>
            <delta_ts>2021-12-09 02:47:22 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-232988-20211209103555.patch</filename>
            <type>text/plain</type>
            <size>54757</size>
            <attacher name="Kimmo Kinnunen">kkinnunen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg2NzY2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODdmNDkyZGNjMGMwYTU1
Nzk1NTFhMjk3MDJlYTFmMjM2ZmE0N2UxYS4uZjMxNzM1ZDAwMTY1OGY1NmZkYWNiYTRhZDRhNzA2
NDEwMDM0MzA1YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUzIEBACisyMDIxLTEyLTA4ICBLaW1t
byBLaW5udW5lbiAgPGtraW5udW5lbkBhcHBsZS5jb20+CisKKyAgICAgICAgSU9TdXJmYWNlIG1l
bW9yeSBhdHRyaWJ1dGlvbiBpcyBoYXJkIHRvIHVzZSBpbiBjb25zdHJ1Y3RvcnMKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMjk4OAorICAgICAgICA8
cmRhcjovL3Byb2JsZW0vODU1NDE5MTg+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgQWRkIFdlYkNvcmU6OlByb2Nlc3NJZGVudGl0eSB0eXBlIHRoYXQg
Y2FuIGJlIHVzZWQgdG8gY29tbXVuaWNhdGUgbWVtb3J5IGF0dHJpYnV0aW9uLgorICAgICAgICBG
b3Igbm9uLUNvY29hIHBvcnRzLCB0aGlzIGlzIG51bGxwdHIuCisgICAgICAgIFRoaXMgaXMgdXNl
ZCBpbiBXZWJDb3JlIHRvIHNldCB0aGUgbWVtb3J5IGF0dHJpYnV0aW9uIG9mIElPU3VyZmFjZSBh
bmQgb2JqZWN0cworICAgICAgICB0aGF0IGhvbGQgSU9TdXJmYWNlcy4KKyAgICAgICAgVGhpcyBp
cyBpbnN0YW50aWF0ZWQgaW4gV2ViS2l0LgorICAgICAgICBDdXJyZW50bHkgdGhlIG9ubHkgdXNl
ZnVsIHdheSB0byBpbnN0YW50aWF0ZSBQcm9jZXNzSWRlbnRpdHkgaXMgYnkgcmVjZWl2aW5nCisg
ICAgICAgIHRoZSBQcm9jZXNzSWRlbnRpdHkgYXMgYSBtZXNzYWdlIGFuZCBjcmVhdGUgaXQgdGhp
cyB3YXkgZm9yIHRoZQorICAgICAgICBzZW5kZXIgcHJvY2Vzcy4KKworICAgICAgICBObyBuZXcg
dGVzdHMsIHJlZmFjdG9yLgorCisgICAgICAgICogSGVhZGVycy5jbWFrZToKKyAgICAgICAgKiBT
b3VyY2VzLnR4dDoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6
CisgICAgICAgICogcGxhdGZvcm0vTG9nZ2luZy5oOgorICAgICAgICBBZGQgV2ViQ29yZSBQcm9j
ZXNzIGxvZyB0YWcgc2luY2UgdGhlIGNvZGUgbW92ZWQgZnJvbSBXZWJLaXQgdG8gUHJvY2Vzc0lk
ZW50aXR5CisgICAgICAgIHVzZWQgdGhhdCB0YWcgdG8gbG9nLgorICAgICAgICAqIHBsYXRmb3Jt
L1Byb2Nlc3NJZGVudGl0eS5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6UHJvY2Vzc0lk
ZW50aXR5OjpQcm9jZXNzSWRlbnRpdHkpOgorICAgICAgICAoV2ViQ29yZTo6UHJvY2Vzc0lkZW50
aXR5Ojp0YXNrSWRUb2tlbiBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpQcm9jZXNzSWRlbnRp
dHk6OnNlbmRSaWdodCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpQcm9jZXNzSWRlbnRpdHk6
Om9wZXJhdG9yIGJvb2wgY29uc3QpOgorICAgICAgICAqIHBsYXRmb3JtL1Byb2Nlc3NJZGVudGl0
eS5oOiBBZGRlZC4KKyAgICAgICAgQWRkIHRoZSBQcm9jZXNzSWRlbnRpdHkgdHlwZSB0aGF0IGNh
biBiZSB1c2VkIHRvIGNvbW11bmljYXRlIG1lbW9yeSBhdHRyaWJ1dGlvbi4KKyAgICAgICAgKiBw
bGF0Zm9ybS9ncmFwaGljcy9SZW1vdGVWaWRlb1NhbXBsZS5oOgorICAgICAgICAoV2ViQ29yZTo6
UmVtb3RlVmlkZW9TYW1wbGU6OnNldE93bmVyc2hpcElkZW50aXR5KToKKyAgICAgICAgKiBwbGF0
Zm9ybS9ncmFwaGljcy9hbmdsZS9HcmFwaGljc0NvbnRleHRHTEFOR0xFLmg6CisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvR3JhcGhpY3NDb250ZXh0R0xDb2NvYS5oOgorICAgICAg
ICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0dyYXBoaWNzQ29udGV4dEdMQ29jb2EubW06Cisg
ICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHRHTENvY29hOjpjcmVhdGUpOgorICAgICAg
ICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0R0xDb2NvYTo6R3JhcGhpY3NDb250ZXh0R0xDb2Nv
YSk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHRHTEFOR0xFOjphbGxvY2F0ZUFu
ZEJpbmREaXNwbGF5QnVmZmVyQmFja2luZyk6CisgICAgICAgIEFkZCBhbiBleGFtcGxlIHVzZSB3
aGVyZSB0aGUgY29uc3RydWN0b3IgdGFrZXMgdGhlIG1lbW9yeSBhdHRyaWJ1dGlvbiB0b2tlbi4K
KyAgICAgICAgVGhpcyBtYXkgYmUgbmVlZGVkIGluIHRoZSBmdXR1cmUgd2hlbiB0aGUgdG9rZW4g
aXMgdXNlZCBhcyBhIHBhcmFtZXRlciBpbgorICAgICAgICB0aGUgQU5HTEUgY29udGV4dCBjcmVh
dGlvbi4KKyAgICAgICAgVXNlIHRoZSB0b2tlbiBpbiBjcmVhdGluZyB0aGUgSU9TdXJmYWNlLiBU
aGlzIGZpeGVzIGEgYnVnIHdoZXJlIFdlYkdMCisgICAgICAgIGJhY2sgYnVmZmVycyB3b3VsZCBu
b3QgYmUgYXR0cmlidXRlZCB1bnRpbCB0aGV5IHdlcmUgc2VudCB0byBXUC4KKyAgICAgICAgKiBw
bGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9JT1N1cmZhY2UuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9jb2NvYS9JT1N1cmZhY2UubW06CisgICAgICAgIChXZWJDb3JlOjpJT1N1cmZhY2U6
OnNldE93bmVyc2hpcElkZW50aXR5KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jb2Nv
YS9XZWJQcm9jZXNzR3JhcGhpY3NDb250ZXh0R0xDb2NvYS5tbToKKwogMjAyMS0xMi0wOCAgTXls
ZXMgQy4gTWF4ZmllbGQgIDxtbWF4ZmllbGRAYXBwbGUuY29tPgogCiAgICAgICAgIEZpeCBidWls
ZCBhZnRlciByMjg2NzU5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1Nv
dXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDZhMzEwY2UyNDM2ZTZlNWQyMjljOGNiMzQ1MmRl
ZDQwOGQ4NjE2MjMuLjcwNzZjOTcxNTE5MTRjMmYxYjQzYmI1ZjEzMWJhNWVjYWYxN2M0NTkgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsNTQgQEAKKzIwMjEtMTItMDggIEtpbW1vIEtpbm51bmVuICA8a2tp
bm51bmVuQGFwcGxlLmNvbT4KKworICAgICAgICBJT1N1cmZhY2UgbWVtb3J5IGF0dHJpYnV0aW9u
IGlzIGhhcmQgdG8gdXNlIGluIGNvbnN0cnVjdG9ycworICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMyOTg4CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS84
NTU0MTkxOD4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBSZW1vdmUgaWZkZWZzIGFuZCBkaXJlY3QgdXNlIG9mIHRhc2tfaWRfdG9rZW5fdC4KKyAgICAg
ICAgSW5zdGVhZCwgdXNlIFdlYkNvcmU6OlByb2Nlc3NJZGVudGlmaWVyLiBUaGlzIHdheSB0aGUK
KyAgICAgICAgY3Jvc3MtcGxhdGZvcm0gY29kZSBpcyBlYXNpZXIgdG8gYXV0aG9yLgorCisgICAg
ICAgICogR1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcDoKKyAgICAgICAg
KFdlYktpdDo6R1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6R1BVQ29ubmVjdGlvblRvV2ViUHJv
Y2Vzcyk6CisgICAgICAgICogR1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmg6
CisgICAgICAgIChXZWJLaXQ6OkdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OndlYlByb2Nlc3NJ
ZGVudGl0eSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OkdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nl
c3M6OndlYlByb2Nlc3NJZGVudGl0eVRva2VuIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKiBH
UFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZUdyYXBoaWNzQ29udGV4dEdMQ29jb2EuY3BwOgorICAg
ICAgICAoV2ViS2l0OjpSZW1vdGVHcmFwaGljc0NvbnRleHRHTENvY29hOjpSZW1vdGVHcmFwaGlj
c0NvbnRleHRHTENvY29hKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlR3JhcGhpY3NDb250ZXh0
R0xDb2NvYTo6cGxhdGZvcm1Xb3JrUXVldWVJbml0aWFsaXplKToKKyAgICAgICAgKFdlYktpdDo6
UmVtb3RlR3JhcGhpY3NDb250ZXh0R0xDb2NvYTo6cHJlcGFyZUZvckRpc3BsYXkpOgorICAgICAg
ICAqIEdQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlSW1hZ2VCdWZmZXIuaDoKKyAgICAgICAgKFdl
YktpdDo6UmVtb3RlSW1hZ2VCdWZmZXI6OnNldE93bmVyc2hpcElkZW50aXR5KToKKyAgICAgICAg
KFdlYktpdDo6UmVtb3RlSW1hZ2VCdWZmZXI6OnNldFByb2Nlc3NPd25lcnNoaXApOiBEZWxldGVk
LgorICAgICAgICAqIEdQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5j
cHA6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlbmRlcmluZ0JhY2tlbmQ6OlJlbW90ZVJlbmRl
cmluZ0JhY2tlbmQpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZW5kZXJpbmdCYWNrZW5kOjpj
cmVhdGVJbWFnZUJ1ZmZlcldpdGhRdWFsaWZpZWRJZGVudGlmaWVyKToKKyAgICAgICAgKiBHUFVQ
cm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQuaDoKKyAgICAgICAgKiBHUFVQ
cm9jZXNzL3dlYnJ0Yy9MaWJXZWJSVENDb2RlY3NQcm94eS5tbToKKyAgICAgICAgKFdlYktpdDo6
RnVuY3Rpb248dm9pZCk6CisgICAgICAgICogU2hhcmVkL0dQVVByb2Nlc3NDb25uZWN0aW9uUGFy
YW1ldGVycy5oOgorICAgICAgICAoV2ViS2l0OjpHUFVQcm9jZXNzQ29ubmVjdGlvblBhcmFtZXRl
cnM6OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OkdQVVByb2Nlc3NDb25uZWN0aW9u
UGFyYW1ldGVyczo6ZGVjb2RlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlh
Q2FwdHVyZU1hbmFnZXJQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYUNhcHR1
cmVNYW5hZ2VyUHJveHk6OlNvdXJjZVByb3h5OjpTb3VyY2VQcm94eSk6CisgICAgICAgIChXZWJL
aXQ6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6OlNvdXJjZVByb3h5OjpzZXRTaG91bGRB
cHBseVJvdGF0aW9uKToKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQ
cm94eTo6Y3JlYXRlTWVkaWFTb3VyY2VGb3JDYXB0dXJlRGV2aWNlV2l0aENvbnN0cmFpbnRzKToK
KyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6Y2xvbmUpOgor
ICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OjpTb3VyY2VQcm94
eTo6c2V0V2ViUHJvY2Vzc0lkZW50aXR5VG9rZW4pOiBEZWxldGVkLgorICAgICAgICAqIFVJUHJv
Y2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5Lmg6CisgICAgICAgIChXZWJL
aXQ6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6OkNvbm5lY3Rpb25Qcm94eTo6d2ViUHJv
Y2Vzc0lkZW50aXR5VG9rZW4gY29uc3QpOiBEZWxldGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9X
ZWJQcm9jZXNzUHJveHkuY3BwOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL0lt
YWdlQnVmZmVyU2hhcmVhYmxlQml0bWFwQmFja2VuZC5oOgorICAgICAgICAoV2ViS2l0OjpJbWFn
ZUJ1ZmZlclNoYXJlYWJsZUJpdG1hcEJhY2tlbmQ6OnNldE93bmVyc2hpcElkZW50aXR5KToKKyAg
ICAgICAgKiBXZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9jb2NvYS9JbWFnZUJ1ZmZlclNoYXJlYWJs
ZU1hcHBlZElPU3VyZmFjZUJhY2tlbmQuY3BwOgorICAgICAgICAoV2ViS2l0OjpJbWFnZUJ1ZmZl
clNoYXJlYWJsZU1hcHBlZElPU3VyZmFjZUJhY2tlbmQ6OnNldE93bmVyc2hpcElkZW50aXR5KToK
KyAgICAgICAgKFdlYktpdDo6SW1hZ2VCdWZmZXJTaGFyZWFibGVNYXBwZWRJT1N1cmZhY2VCYWNr
ZW5kOjpzZXRQcm9jZXNzT3duZXJzaGlwKTogRGVsZXRlZC4KKyAgICAgICAgKiBXZWJQcm9jZXNz
L0dQVS9ncmFwaGljcy9jb2NvYS9JbWFnZUJ1ZmZlclNoYXJlYWJsZU1hcHBlZElPU3VyZmFjZUJh
Y2tlbmQuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL2NvY29hL1dlYlByb2Nlc3NDb2NvYS5tbToK
KyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6cGxhdGZvcm1Jbml0aWFsaXplR1BVUHJvY2Vz
c0Nvbm5lY3Rpb25QYXJhbWV0ZXJzKToKKwogMjAyMS0xMi0wOCAgQnJhZHkgRWlkc29uICA8YmVp
ZHNvbkBhcHBsZS5jb20+CiAKICAgICAgICAgQWRkIGFiaWxpdHkgdG8gaW5qZWN0IG1lc3NhZ2Vz
IGludG8gd2VicHVzaGQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2Ug
Yi9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCmluZGV4IGM4YjYxMjM1NWZjYzBmYTA2NzQ5
ZDcwMWNkNDFjZDFmZWVjNDhiZGEuLjY4NWZhNWU0NmZiYzNlMWEwZmEzMWI5ZTU4NmU3M2NhMGUy
NTY4YWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKKysrIGIvU291
cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQpAQCAtMTI5MSw2ICsxMjkxLDcgQEAgc2V0KFdlYkNv
cmVfUFJJVkFURV9GUkFNRVdPUktfSEVBREVSUwogICAgIHBsYXRmb3JtL1BvcHVwTWVudUNsaWVu
dC5oCiAgICAgcGxhdGZvcm0vUG9wdXBNZW51U3R5bGUuaAogICAgIHBsYXRmb3JtL1Byb2Nlc3NJ
ZGVudGlmaWVyLmgKKyAgICBwbGF0Zm9ybS9Qcm9jZXNzSWRlbnRpdHkuaAogICAgIHBsYXRmb3Jt
L1Byb2Nlc3NRdWFsaWZpZWQuaAogICAgIHBsYXRmb3JtL1Byb21pc2VkQXR0YWNobWVudEluZm8u
aAogICAgIHBsYXRmb3JtL1B1YmxpY1N1ZmZpeC5oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9Tb3VyY2VzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CmluZGV4IGQ5NTdiY2Rh
OGFkYTRkYWVmNDA5MjBhMzU3NzQzOWVhYjAwNjg0ZGMuLjQ1OWVkMWYwMTRkNjk0NjQxMDRlY2Vk
ZDkxZGM0NmNkZjU4MmZhNWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0
CisrKyBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CkBAIC0xODg2LDYgKzE4ODYsNyBAQCBw
bGF0Zm9ybS9QbGF0Zm9ybVN0cmF0ZWdpZXMuY3BwCiBwbGF0Zm9ybS9QbGF0Zm9ybVdoZWVsRXZl
bnQuY3BwCiBwbGF0Zm9ybS9QcmV2aWV3Q29udmVydGVyLmNwcAogcGxhdGZvcm0vUHJvY2Vzc0lk
ZW50aWZpZXIuY3BwCitwbGF0Zm9ybS9Qcm9jZXNzSWRlbnRpdHkuY3BwCiBwbGF0Zm9ybS9SZWZl
cnJlclBvbGljeS5jcHAKIHBsYXRmb3JtL1JlbW90ZUNvbW1hbmRMaXN0ZW5lci5jcHAKIHBsYXRm
b3JtL1J1bnRpbWVBcHBsaWNhdGlvbkNoZWNrcy5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCAxZTk2ZWU2NTcyYWE0MjU4NTlk
ZDFlZTkzMDMyZTY4OWZiMGI4NTUxLi5kOWM5YTVlNTI0NzEyOGI5ZmM1YTRkYTBmMzY5YjYyMzgw
OWRjMGExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCkBAIC0yMzg4LDYgKzIzODgsNyBAQAogCQk3QkIzNEE0ODI1Mzc3NkNBMDAwMjlE
MDggLyogR3JhcGhpY3NDb250ZXh0R0xJbWFnZUV4dHJhY3Rvci5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0JCMzRBNDUyNTM3NzZDNjAwMDI5RDA4IC8q
IEdyYXBoaWNzQ29udGV4dEdMSW1hZ2VFeHRyYWN0b3IuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk3QkI2ODBCQTI1QkExQkU0MDAyQjg3MzggLyog
R3JhcGhpY3NDaGVja3NNYWMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDdCQjY4MEI4MjVCQTFCRTQwMDJCODczOCAvKiBHcmFwaGljc0NoZWNrc01hYy5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTdCRERB
MzFGMjc0RkEwMjEwMDM4NjU5RSAvKiBHcmFwaGljc0NvbnRleHRHTENvY29hLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3QkREQTMxRDI3NEY5REE1MDAz
ODY1OUUgLyogR3JhcGhpY3NDb250ZXh0R0xDb2NvYS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJV
VEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTdCRERBMzRDMjc1QTAxMzEwMDM4NjU5RSAvKiBQ
cm9jZXNzSWRlbnRpdHkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDdCRERBMzQ5Mjc1QTAxMzAwMDM4NjU5RSAvKiBQcm9jZXNzSWRlbnRpdHkuaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk3QkU3NDI3Mzgx
RkE5MDZGQkI0RjBGMkMgLyogSlNTVkdHcmFwaGljc0VsZW1lbnQuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk1MEM0QzAyQkVEODkzNkY4MThFMkY5OSAv
KiBKU1NWR0dyYXBoaWNzRWxlbWVudC5oICovOyB9OwogCQk3QkZGNTlGNDI3NTc3MjY3MDA3NzNE
MzkgLyogRGlzcGxheUNvbmZpZ3VyYXRpb25Nb25pdG9yLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3QkZGNTlFRjI3NTc3MUU4MDA3NzNEMzkgLyogRGlz
cGxheUNvbmZpZ3VyYXRpb25Nb25pdG9yLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAo
UHJpdmF0ZSwgKTsgfTsgfTsKIAkJN0MwMjlDNkUyNDkzQzhGODAwMjY4MjA0IC8qIENvbG9yVHlw
ZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdDMDI5
QzZEMjQ5M0M4RjgwMDI2ODIwNCAvKiBDb2xvclR5cGVzLmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTExNDI0LDYgKzExNDI1LDggQEAKIAkJN0JD
RDQyREMyNzA1Qzk0OTAwRUIyMTI3IC8qIEFOR0xFVXRpbGl0aWVzQ29jb2EuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gQU5HTEVVdGlsaXRpZXNDb2NvYS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk3QkREQTMxQzI3NEY5REE0MDAzODY1OUUgLyogR3JhcGhpY3NDb250ZXh0R0xDb2NvYS5tbSAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IEdyYXBoaWNzQ29udGV4dEdM
Q29jb2EubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdCRERBMzFEMjc0RjlEQTUw
MDM4NjU5RSAvKiBHcmFwaGljc0NvbnRleHRHTENvY29hLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IEdyYXBoaWNzQ29udGV4dEdMQ29jb2EuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJN0JEREEzNDkyNzVBMDEzMDAwMzg2NTlFIC8qIFByb2Nlc3NJZGVudGl0eS5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQcm9jZXNzSWRlbnRpdHkuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJN0JEREEzNEIyNzVBMDEzMDAwMzg2NTlFIC8qIFBy
b2Nlc3NJZGVudGl0eS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBQ
cm9jZXNzSWRlbnRpdHkuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3QkU3MjY1
QjI1NzYzQjhEMDBFODVEOTggLyogUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eUJhc2UuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eUJhc2UuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3QkZGNTlFRjI3NTc3MUU4MDA3NzNEMzkg
LyogRGlzcGxheUNvbmZpZ3VyYXRpb25Nb25pdG9yLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZXhwbGljaXRGaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmg7IGZpbGVFbmNvZGluZyA9
IDQ7IHBhdGggPSBEaXNwbGF5Q29uZmlndXJhdGlvbk1vbml0b3IuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJN0JGRjU5RjEyNzU3NzFFODAwNzczRDM5IC8qIERpc3BsYXlDb25maWd1
cmF0aW9uTW9uaXRvci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBE
aXNwbGF5Q29uZmlndXJhdGlvbk1vbml0b3IuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwpAQCAtMjk4NzYsNiArMjk4NzksOCBAQAogCQkJCUExQURBRjdDMjM2MEZEM0UwMDlDQjc3NiAv
KiBQcmV2aWV3Q29udmVydGVyUHJvdmlkZXIuaCAqLywKIAkJCQk1MUY2NDVEMjFGRUNEQkM4MDBC
NTRERUQgLyogUHJvY2Vzc0lkZW50aWZpZXIuY3BwICovLAogCQkJCTUxRjY0NUQzMUZFQ0RCQzgw
MEI1NERFRCAvKiBQcm9jZXNzSWRlbnRpZmllci5oICovLAorCQkJCTdCRERBMzRCMjc1QTAxMzAw
MDM4NjU5RSAvKiBQcm9jZXNzSWRlbnRpdHkuY3BwICovLAorCQkJCTdCRERBMzQ5Mjc1QTAxMzAw
MDM4NjU5RSAvKiBQcm9jZXNzSWRlbnRpdHkuaCAqLywKIAkJCQkxQ0M1NEFGQjI3MEY5MkRBMDA1
QkY4QkUgLyogUHJvY2Vzc1F1YWxpZmllZC5oICovLAogCQkJCUY0N0E2MzNDMUZGNkZENTAwMDgx
QjNDQyAvKiBQcm9taXNlZEF0dGFjaG1lbnRJbmZvLmggKi8sCiAJCQkJMDA4MUZFRkQxNkIwQTI0
NDAwOEFBQTdBIC8qIFB1YmxpY1N1ZmZpeC5oICovLApAQCAtMzY0NDEsNiArMzY0NDYsNyBAQAog
CQkJCUI3MUZFNkRGMTEwOTFDQjMwMERBRUY3NyAvKiBQcmludENvbnRleHQuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTZCMEEwN0YyMjFGQTRCNUMwMEQ1NzM5MSAvKiBQcml2YXRlQ2xpY2tNZWFzdXJl
bWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTFGNjQ1RDUxRkVDREJDRTAwQjU0REVEIC8qIFBy
b2Nlc3NJZGVudGlmaWVyLmggaW4gSGVhZGVycyAqLywKKwkJCQk3QkREQTM0QzI3NUEwMTMxMDAz
ODY1OUUgLyogUHJvY2Vzc0lkZW50aXR5LmggaW4gSGVhZGVycyAqLywKIAkJCQlBOEVBN0VCQzBB
MTk0NUQwMDBBOEVGNUYgLyogUHJvY2Vzc2luZ0luc3RydWN0aW9uLmggaW4gSGVhZGVycyAqLywK
IAkJCQkxQ0M1NEFGRTI3MEY5NkFFMDA1QkY4QkUgLyogUHJvY2Vzc1F1YWxpZmllZC5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJRTQyMDUwMTcyMTQxOTAxQjAwNjZFRjNCIC8qIFByb2Nlc3NXYXJtaW5n
LmggaW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xv
Z2dpbmcuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xvZ2dpbmcuaAppbmRleCAzZmJlNDE3
YmU5ODFiNzVlNzc5ZGUyMzhmYzRiZTA1YTZkNzMwZmFhLi5kYzBmNTA5OGI4N2YxODQ1NTI1YmUz
YzBiYTQxZjc2NzViMTQwNDdmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9M
b2dnaW5nLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTG9nZ2luZy5oCkBAIC05NCw2
ICs5NCw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICBNKFBsdWdpbnMpIFwKICAgICBNKFBv
cHVwQmxvY2tpbmcpIFwKICAgICBNKFByaXZhdGVDbGlja01lYXN1cmVtZW50KSBcCisgICAgTShQ
cm9jZXNzKSBcCiAgICAgTShQcm9ncmVzcykgXAogICAgIE0oUmVtb3RlSW5zcGVjdG9yKSBcCiAg
ICAgTShSZXF1ZXN0QW5pbWF0aW9uRnJhbWUpIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL1Byb2Nlc3NJZGVudGl0eS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Q
cm9jZXNzSWRlbnRpdHkuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmRlOGQzMmFiNGVlMmEwMDJiYzVkMDYxMzIw
NzdjNjY4ODRiZjgwMzkKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9Qcm9jZXNzSWRlbnRpdHkuY3BwCkBAIC0wLDAgKzEsNjUgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFO
WQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhF
TVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVk
ZSAiUHJvY2Vzc0lkZW50aXR5LmgiCisKKyNpbmNsdWRlICJMb2dnaW5nLmgiCisKKyNpZiBIQVZF
KFRBU0tfSURFTlRJVFlfVE9LRU4pCisjaW5jbHVkZSA8bWFjaC9tYWNoLmg+CisjZW5kaWYKKwor
bmFtZXNwYWNlIFdlYkNvcmUgeworCitQcm9jZXNzSWRlbnRpdHk6OlByb2Nlc3NJZGVudGl0eShD
dXJyZW50UHJvY2Vzc1RhZykKK3sKKyNpZiBIQVZFKFRBU0tfSURFTlRJVFlfVE9LRU4pCisgICAg
dGFza19pZF90b2tlbl90IGlkZW50aXR5VG9rZW47CisgICAga2Vybl9yZXR1cm5fdCBrciA9IHRh
c2tfY3JlYXRlX2lkZW50aXR5X3Rva2VuKG1hY2hfdGFza19zZWxmKCksICZpZGVudGl0eVRva2Vu
KTsKKyAgICBpZiAoa3IgPT0gS0VSTl9TVUNDRVNTKQorICAgICAgICBtX3Rhc2tJZFRva2VuID0g
TWFjaFNlbmRSaWdodDo6YWRvcHQoaWRlbnRpdHlUb2tlbik7CisgICAgZWxzZQorICAgICAgICBS
RUxFQVNFX0xPR19FUlJPUihQcm9jZXNzLCAidGFza19jcmVhdGVfaWRlbnRpdHlfdG9rZW4oKSBm
YWlsZWQ6ICV7cHJpdmF0ZX1zICgleCkiLCBtYWNoX2Vycm9yX3N0cmluZyhrciksIGtyKTsKKyNl
bmRpZgorfQorCitQcm9jZXNzSWRlbnRpdHk6Om9wZXJhdG9yIGJvb2woKSBjb25zdAoreworI2lm
IEhBVkUoVEFTS19JREVOVElUWV9UT0tFTikKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8Ym9vbD4o
bV90YXNrSWRUb2tlbik7CisjZWxzZQorICAgIHJldHVybiBmYWxzZTsKKyNlbmRpZgorfQorCisj
aWYgSEFWRShUQVNLX0lERU5USVRZX1RPS0VOKQorUHJvY2Vzc0lkZW50aXR5OjpQcm9jZXNzSWRl
bnRpdHkoTWFjaFNlbmRSaWdodCYmIHRhc2tJZFRva2VuKQorICAgIDogbV90YXNrSWRUb2tlbihX
VEZNb3ZlKHRhc2tJZFRva2VuKSkKK3sKK30KKyNlbmRpZgorCit9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9Qcm9jZXNzSWRlbnRpdHkuaCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL1Byb2Nlc3NJZGVudGl0eS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjExOTQ0MjIwNWYwZDQ0OTFkZjIx
ODNmY2RkOTBiYzY0MmE1OWM1MjQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9Qcm9jZXNzSWRlbnRpdHkuaApAQCAtMCwwICsxLDg2IEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFO
RCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAq
IEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRl
IDxvcHRpb25hbD4KKworI2lmIEhBVkUoVEFTS19JREVOVElUWV9UT0tFTikKKyNpbmNsdWRlIDx3
dGYvTWFjaFNlbmRSaWdodC5oPgorI2Vsc2UKKyNpbmNsdWRlIDx2YXJpYW50PgorI2VuZGlmCisK
K25hbWVzcGFjZSBXZWJDb3JlIHsKKworLy8gT2JqZWN0IHRvIGFjY2VzcyBwcm9vZiBvZiBwcm9j
ZXNzIGlkZW50aXR5LgorLy8gUHJvY2Vzc0lkZW50aWZpZXIgaWRlbnRpZmllcyBhIHByb2Nlc3Mu
CisvLyBQcm9jZXNzSWRlbnRpdHkgZ3JhbnRzIGFjY2VzcyB0byB0aGUgaWRlbnRpdHkuCisvLyBF
bXB0eSBQcm9jZXNzSWRlbnRpdHkgZG9lcyBub3QgZG8gYW55dGhpbmcuCitjbGFzcyBQcm9jZXNz
SWRlbnRpdHkgeworcHVibGljOgorICAgIC8vIENyZWF0ZXMgYW4gcHJvY2VzcyBpZGVudGl0eSBm
b3IgY3VycmVudCBwcm9jZXNzIG9yIGVtcHR5IG9uIGVycm9yLgorICAgIGVudW0gQ3VycmVudFBy
b2Nlc3NUYWcgeyBDdXJyZW50UHJvY2VzcyB9OworICAgIFdFQkNPUkVfRVhQT1JUIGV4cGxpY2l0
IFByb2Nlc3NJZGVudGl0eShDdXJyZW50UHJvY2Vzc1RhZyk7CisKKyAgICAvLyBDcmVhdGVzIGFu
IGVtcHR5IHByb2Nlc3MgaWRlbnRpdHkgdGhhdCBkb2VzIG5vdCBncmFudCBhbnkgYWNjZXNzLgor
ICAgIFByb2Nlc3NJZGVudGl0eSgpID0gZGVmYXVsdDsKKworICAgIC8vIFJldHVybnMgdHJ1ZSBm
b3IgYSBwcm9jZXNzIGlkZW50aXR5IG9yIGZhbHNlIG9uIGVtcHR5IGlkZW50aXR5LgorICAgIFdF
QkNPUkVfRVhQT1JUIG9wZXJhdG9yIGJvb2woKSBjb25zdDsKKworI2lmIEhBVkUoVEFTS19JREVO
VElUWV9UT0tFTikKKyAgICB0YXNrX2lkX3Rva2VuX3QgdGFza0lkVG9rZW4oKSBjb25zdCB7IHJl
dHVybiBtX3Rhc2tJZFRva2VuLnNlbmRSaWdodCgpOyB9CisjZW5kaWYKKworICAgIHRlbXBsYXRl
PHR5cGVuYW1lIEVuY29kZXI+IHZvaWQgZW5jb2RlKEVuY29kZXImKSBjb25zdDsKKyAgICB0ZW1w
bGF0ZTx0eXBlbmFtZSBEZWNvZGVyPiBzdGF0aWMgc3RkOjpvcHRpb25hbDxQcm9jZXNzSWRlbnRp
dHk+IGRlY29kZShEZWNvZGVyJik7CisKK3ByaXZhdGU6CisjaWYgSEFWRShUQVNLX0lERU5USVRZ
X1RPS0VOKQorICAgIFdFQkNPUkVfRVhQT1JUIFByb2Nlc3NJZGVudGl0eShNYWNoU2VuZFJpZ2h0
JiYgdGFza0lkVG9rZW4pOworICAgIE1hY2hTZW5kUmlnaHQgbV90YXNrSWRUb2tlbjsKKyNlbmRp
ZgorfTsKKwordGVtcGxhdGU8dHlwZW5hbWUgRW5jb2Rlcj4gdm9pZCBQcm9jZXNzSWRlbnRpdHk6
OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAoreworI2lmIEhBVkUoVEFTS19JREVOVElU
WV9UT0tFTikKKyAgICBlbmNvZGVyIDw8IG1fdGFza0lkVG9rZW47CisjZW5kaWYKK30KKwordGVt
cGxhdGU8dHlwZW5hbWUgRGVjb2Rlcj4gc3RkOjpvcHRpb25hbDxQcm9jZXNzSWRlbnRpdHk+IFBy
b2Nlc3NJZGVudGl0eTo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIpCit7CisjaWYgSEFWRShUQVNL
X0lERU5USVRZX1RPS0VOKQorICAgIHN0ZDo6b3B0aW9uYWw8TWFjaFNlbmRSaWdodD4gaWRlbnRp
dHlTZW5kUmlnaHQ7CisgICAgZGVjb2RlciA+PiBpZGVudGl0eVNlbmRSaWdodDsKKyAgICBpZiAo
aWRlbnRpdHlTZW5kUmlnaHQpCisgICAgICAgIHJldHVybiBQcm9jZXNzSWRlbnRpdHkgeyBXVEZN
b3ZlKCppZGVudGl0eVNlbmRSaWdodCkgfTsKKyNlbmRpZgorICAgIHJldHVybiBzdGQ6Om51bGxv
cHQ7Cit9CisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L1JlbW90ZVZpZGVvU2FtcGxlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9S
ZW1vdGVWaWRlb1NhbXBsZS5oCmluZGV4IGE2MTcwYjMyOGZjNDRhY2U2OTNkY2RiMzVlZTRkM2Nl
Njg3MzM4YTEuLjA4MWUyMzU2NWFjYzQ4NDBhODA0YzdkMDc0ZTZkZjIwNTk4MzlmMTcgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1JlbW90ZVZpZGVvU2FtcGxl
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvUmVtb3RlVmlkZW9TYW1w
bGUuaApAQCAtMzcsNiArMzcsOCBAQCB0eXBlZGVmIHN0cnVjdCBfX0NWQnVmZmVyKiBDVlBpeGVs
QnVmZmVyUmVmOwogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK2NsYXNzIFByb2Nlc3NJZGVudGl0
eTsKKwogY2xhc3MgUmVtb3RlVmlkZW9TYW1wbGUgewogcHVibGljOgogICAgIFJlbW90ZVZpZGVv
U2FtcGxlKCkgPSBkZWZhdWx0OwpAQCAtNDgsOSArNTAsNyBAQCBwdWJsaWM6CiAgICAgV0VCQ09S
RV9FWFBPUlQgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxSZW1vdGVWaWRlb1NhbXBsZT4gY3JlYXRl
KFJldGFpblB0cjxDVlBpeGVsQnVmZmVyUmVmPiYmLCBNZWRpYVRpbWUmJiBwcmVzZW50YXRpb25U
aW1lLCBNZWRpYVNhbXBsZTo6VmlkZW9Sb3RhdGlvbiA9IE1lZGlhU2FtcGxlOjpWaWRlb1JvdGF0
aW9uOjpOb25lKTsKICAgICBXRUJDT1JFX0VYUE9SVCBJT1N1cmZhY2VSZWYgc3VyZmFjZSgpIGNv
bnN0OwogCi0jaWYgSEFWRShJT1NVUkZBQ0VfU0VUX09XTkVSU0hJUF9JREVOVElUWSkKLSAgICB2
b2lkIHNldE93bmVyc2hpcElkZW50aXR5KHRhc2tfaWRfdG9rZW5fdCBuZXdPd25lcik7Ci0jZW5k
aWYKKyAgICB2b2lkIHNldE93bmVyc2hpcElkZW50aXR5KGNvbnN0IFByb2Nlc3NJZGVudGl0eSYp
OwogCiAgICAgY29uc3QgTWVkaWFUaW1lJiB0aW1lKCkgY29uc3QgeyByZXR1cm4gbV90aW1lOyB9
CiAgICAgdWludDMyX3QgdmlkZW9Gb3JtYXQoKSBjb25zdCB7IHJldHVybiBtX3ZpZGVvRm9ybWF0
OyB9CkBAIC0xMTksMTMgKzExOSwxMSBAQCBwcml2YXRlOgogICAgIGJvb2wgbV9taXJyb3JlZCB7
IGZhbHNlIH07CiB9OwogCi0jaWYgSEFWRShJT1NVUkZBQ0VfU0VUX09XTkVSU0hJUF9JREVOVElU
WSkKLWlubGluZSB2b2lkIFJlbW90ZVZpZGVvU2FtcGxlOjpzZXRPd25lcnNoaXBJZGVudGl0eSh0
YXNrX2lkX3Rva2VuX3QgbmV3T3duZXIpCitpbmxpbmUgdm9pZCBSZW1vdGVWaWRlb1NhbXBsZTo6
c2V0T3duZXJzaGlwSWRlbnRpdHkoY29uc3QgUHJvY2Vzc0lkZW50aXR5JiByZXNvdXJjZU93bmVy
KQogewogICAgIGlmIChtX2lvU3VyZmFjZSkKLSAgICAgICAgbV9pb1N1cmZhY2UtPnNldE93bmVy
c2hpcElkZW50aXR5KG5ld093bmVyKTsKKyAgICAgICAgbV9pb1N1cmZhY2UtPnNldE93bmVyc2hp
cElkZW50aXR5KHJlc291cmNlT3duZXIpOwogfQotI2VuZGlmCiAKIH0KIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYW5nbGUvR3JhcGhpY3NDb250ZXh0R0xB
TkdMRS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYW5nbGUvR3JhcGhpY3ND
b250ZXh0R0xBTkdMRS5oCmluZGV4IDQzZDVkMjkwZGQ2ODJjYTU5NjU2MDExMGE2NmE1YTdkYThm
ODUyYTAuLjk3NGViYjM1MWZjNjNkMzg0ZmQ0YTdjOTk3OWFmMGQyNjQ1ODM5YzAgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2FuZ2xlL0dyYXBoaWNzQ29udGV4
dEdMQU5HTEUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hbmdsZS9H
cmFwaGljc0NvbnRleHRHTEFOR0xFLmgKQEAgLTM2LDYgKzM2LDcgQEAKICNpZiBQTEFURk9STShD
T0NPQSkKICNpbmNsdWRlICJHcmFwaGljc0NvbnRleHRHTElPU3VyZmFjZVN3YXBDaGFpbi5oIgog
I2luY2x1ZGUgIklPU3VyZmFjZS5oIgorI2luY2x1ZGUgIlByb2Nlc3NJZGVudGl0eS5oIgogI2Vu
ZGlmCiAKIApAQCAtNDI3LDYgKzQyOCw3IEBAIHByb3RlY3RlZDoKICAgICBzdGQ6OnVuaXF1ZV9w
dHI8RXh0ZW5zaW9uc0dMQU5HTEU+IG1fZXh0ZW5zaW9uczsKIAogI2lmIFBMQVRGT1JNKENPQ09B
KQorICAgIC8vIEZJWE1FOiBNb3ZlIHRoZXNlIHRvIEdyYXBoaWNzQ29udGV4dEdMQ29jb2EuCiAg
ICAgR3JhcGhpY3NDb250ZXh0R0xJT1N1cmZhY2VTd2FwQ2hhaW4gbV9zd2FwQ2hhaW47CiAgICAg
RUdMRGlzcGxheSBtX2Rpc3BsYXlPYmogeyBudWxscHRyIH07CiAgICAgUGxhdGZvcm1HcmFwaGlj
c0NvbnRleHRHTCBtX2NvbnRleHRPYmogeyBudWxscHRyIH07CkBAIC00MzYsNiArNDM4LDcgQEAg
cHJvdGVjdGVkOgogICAgIC8vIFdoZW4gcHJlc2VydmVEcmF3aW5nQnVmZmVyID09IHRydWUsIHRo
aXMgaXMgYmxpdHRlZCB0byBkdXJpbmcgZGlzcGxheSBwcmVwYXJlLgogICAgIHN0ZDo6dW5pcXVl
X3B0cjxJT1N1cmZhY2U+IG1fZGlzcGxheUJ1ZmZlckJhY2tpbmc7CiAgICAgdm9pZCogbV9kaXNw
bGF5QnVmZmVyUGJ1ZmZlciB7IG51bGxwdHIgfTsKKyAgICBQcm9jZXNzSWRlbnRpdHkgbV9yZXNv
dXJjZU93bmVyOwogI2VuZGlmCiAjaWYgVVNFKENPT1JESU5BVEVEX0dSQVBISUNTKQogICAgIEdD
R0x1aW50IG1fY29tcG9zaXRvclRleHR1cmUgeyAwIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9HcmFwaGljc0NvbnRleHRHTENvY29hLmggYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9HcmFwaGljc0NvbnRleHRHTENv
Y29hLmgKaW5kZXggYTY0OGZjZDJlYzRmMGI5YjUxZTMwMjM2OWUwMTI0OWI1MmQ5YjRlNC4uOTFl
NjQ3MDgwM2E1NDhjNjFiOTU4Njc3NGJjYTk1NTE1ZDk1ZGQ4OCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvR3JhcGhpY3NDb250ZXh0R0xDb2NvYS5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0dyYXBoaWNzQ29u
dGV4dEdMQ29jb2EuaApAQCAtNDIsOSArNDIsMTEgQEAgY2xhc3MgR3JhcGhpY3NDb250ZXh0R0xD
VkNvY29hOwogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK2NsYXNzIFByb2Nlc3NJZGVudGl0eTsK
KwogY2xhc3MgV0VCQ09SRV9FWFBPUlQgR3JhcGhpY3NDb250ZXh0R0xDb2NvYSA6IHB1YmxpYyBH
cmFwaGljc0NvbnRleHRHTEFOR0xFIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmUHRyPEdyYXBo
aWNzQ29udGV4dEdMQ29jb2E+IGNyZWF0ZShXZWJDb3JlOjpHcmFwaGljc0NvbnRleHRHTEF0dHJp
YnV0ZXMmJik7CisgICAgc3RhdGljIFJlZlB0cjxHcmFwaGljc0NvbnRleHRHTENvY29hPiBjcmVh
dGUoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0R0xBdHRyaWJ1dGVzJiYsIFByb2Nlc3NJZGVudGl0
eSYmIHJlc291cmNlT3duZXIpOwogICAgIH5HcmFwaGljc0NvbnRleHRHTENvY29hKCk7CiAgICAg
SU9TdXJmYWNlKiBkaXNwbGF5QnVmZmVyKCk7CiAgICAgdm9pZCBtYXJrRGlzcGxheUJ1ZmZlcklu
VXNlKCk7CkBAIC03Niw5ICs3OCw4IEBAIHB1YmxpYzoKICAgICB2b2lkIHVwZGF0ZUNvbnRleHRP
bkRpc3BsYXlSZWNvbmZpZ3VyYXRpb24oKTsKICNlbmRpZgogcHJvdGVjdGVkOgotICAgIEdyYXBo
aWNzQ29udGV4dEdMQ29jb2EoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0R0xBdHRyaWJ1dGVzJiYp
OworICAgIEdyYXBoaWNzQ29udGV4dEdMQ29jb2EoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0R0xB
dHRyaWJ1dGVzJiYsIFByb2Nlc3NJZGVudGl0eSYmIHJlc291cmNlT3duZXIpOwogICAgIGJvb2wg
aXNWYWxpZCgpIGNvbnN0OwotCiAjaWYgRU5BQkxFKFZJREVPKQogICAgIHN0ZDo6dW5pcXVlX3B0
cjxHcmFwaGljc0NvbnRleHRHTENWQ29jb2E+IG1fY3Y7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0dyYXBoaWNzQ29udGV4dEdMQ29j
b2EubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9HcmFwaGljc0Nv
bnRleHRHTENvY29hLm1tCmluZGV4IDVhZjM1Y2MzOGE4YjI3MmY4ODE2ZmZlYmFjM2JkNzM3Y2Iw
NTBkMmUuLjlhYjJkNzQ0MTBhMDZiYzBkZTY0MTUwZThlMTIwM2UwNTNhZDU5NGIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0dyYXBoaWNzQ29udGV4
dEdMQ29jb2EubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2Ev
R3JhcGhpY3NDb250ZXh0R0xDb2NvYS5tbQpAQCAtMzUsNiArMzUsNyBAQAogI2ltcG9ydCAiR3Jh
cGhpY3NDb250ZXh0R0xJT1N1cmZhY2VTd2FwQ2hhaW4uaCIKICNpbXBvcnQgIkdyYXBoaWNzQ29u
dGV4dEdMT3BlbkdMTWFuYWdlci5oIgogI2ltcG9ydCAiTG9nZ2luZy5oIgorI2ltcG9ydCAiUHJv
Y2Vzc0lkZW50aXR5LmgiCiAjaW1wb3J0ICJSdW50aW1lQXBwbGljYXRpb25DaGVja3MuaCIKICNp
bXBvcnQgPENvcmVHcmFwaGljcy9DR0JpdG1hcENvbnRleHQuaD4KICNpbXBvcnQgPE1ldGFsL01l
dGFsLmg+CkBAIC0xOTIsMTkgKzE5MywyMiBAQCBzdGF0aWMgYm9vbCBuZWVkc0VBR0xPbk1hYygp
CiB9CiAjZW5kaWYKIAotUmVmUHRyPEdyYXBoaWNzQ29udGV4dEdMQ29jb2E+IEdyYXBoaWNzQ29u
dGV4dEdMQ29jb2E6OmNyZWF0ZShHcmFwaGljc0NvbnRleHRHTEF0dHJpYnV0ZXMmJiBhdHRyaWJ1
dGVzKQorUmVmUHRyPEdyYXBoaWNzQ29udGV4dEdMQ29jb2E+IEdyYXBoaWNzQ29udGV4dEdMQ29j
b2E6OmNyZWF0ZShHcmFwaGljc0NvbnRleHRHTEF0dHJpYnV0ZXMmJiBhdHRyaWJ1dGVzLCBQcm9j
ZXNzSWRlbnRpdHkmJiByZXNvdXJjZU93bmVyKQogewotICAgIGF1dG8gY29udGV4dCA9IGFkb3B0
UmVmKCpuZXcgR3JhcGhpY3NDb250ZXh0R0xDb2NvYShXVEZNb3ZlKGF0dHJpYnV0ZXMpKSk7Cisg
ICAgYXV0byBjb250ZXh0ID0gYWRvcHRSZWYoKm5ldyBHcmFwaGljc0NvbnRleHRHTENvY29hKFdU
Rk1vdmUoYXR0cmlidXRlcyksIFdURk1vdmUocmVzb3VyY2VPd25lcikpKTsKICAgICBpZiAoIWNv
bnRleHQtPmlzVmFsaWQoKSkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgcmV0dXJuIGNv
bnRleHQ7CiB9CiAKLUdyYXBoaWNzQ29udGV4dEdMQ29jb2E6OkdyYXBoaWNzQ29udGV4dEdMQ29j
b2EoR3JhcGhpY3NDb250ZXh0R0xBdHRyaWJ1dGVzJiYgY3JlYXRpb25BdHRyaWJ1dGVzKQorR3Jh
cGhpY3NDb250ZXh0R0xDb2NvYTo6R3JhcGhpY3NDb250ZXh0R0xDb2NvYShHcmFwaGljc0NvbnRl
eHRHTEF0dHJpYnV0ZXMmJiBjcmVhdGlvbkF0dHJpYnV0ZXMsIFByb2Nlc3NJZGVudGl0eSYmIHJl
c291cmNlT3duZXIpCiAgICAgOiBHcmFwaGljc0NvbnRleHRHTEFOR0xFKFdURk1vdmUoY3JlYXRp
b25BdHRyaWJ1dGVzKSkKIHsKICAgICBpZiAoIWlzVmFsaWQoKSkKICAgICAgICAgcmV0dXJuOwor
ICAgIC8vIEZJWE1FOiBNb3ZlIHRoaXMgdG8gaW5pdGlhbGl6ZXIgbGlzdCBvbmNlIG1fcmVzb3Vy
Y2VPd25lciBtb3ZlcyB0byBHcmFwaGljc0NvbnRleHRHTENvY29hLgorICAgIG1fcmVzb3VyY2VP
d25lciA9IFdURk1vdmUocmVzb3VyY2VPd25lcik7CisKICNpZiBQTEFURk9STShNQUMpCiAgICAg
YXV0byBhdHRyaWJ1dGVzID0gY29udGV4dEF0dHJpYnV0ZXMoKTsKICAgICBpZiAoIWF0dHJpYnV0
ZXMudXNlTWV0YWwgJiYgYXR0cmlidXRlcy5lZmZlY3RpdmVQb3dlclByZWZlcmVuY2UoKSA9PSBH
cmFwaGljc0NvbnRleHRHTFBvd2VyUHJlZmVyZW5jZTo6SGlnaFBlcmZvcm1hbmNlKQpAQCAtNTU3
LDcgKzU2MSw4IEBAIGJvb2wgR3JhcGhpY3NDb250ZXh0R0xBTkdMRTo6YWxsb2NhdGVBbmRCaW5k
RGlzcGxheUJ1ZmZlckJhY2tpbmcoKQogICAgIGF1dG8gYmFja2luZyA9IElPU3VyZmFjZTo6Y3Jl
YXRlKGdldEludGVybmFsRnJhbWVidWZmZXJTaXplKCksIERlc3RpbmF0aW9uQ29sb3JTcGFjZTo6
U1JHQigpKTsKICAgICBpZiAoIWJhY2tpbmcpCiAgICAgICAgIHJldHVybiBmYWxzZTsKLQorICAg
IGlmIChtX3Jlc291cmNlT3duZXIpCisgICAgICAgIGJhY2tpbmctPnNldE93bmVyc2hpcElkZW50
aXR5KG1fcmVzb3VyY2VPd25lcik7CiAgICAgYmFja2luZy0+bWlncmF0ZUNvbG9yU3BhY2VUb1By
b3BlcnRpZXMoKTsKIAogICAgIGNvbnN0IGJvb2wgdXNpbmdBbHBoYSA9IGNvbnRleHRBdHRyaWJ1
dGVzKCkuYWxwaGE7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jb2NvYS9JT1N1cmZhY2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nv
Y29hL0lPU3VyZmFjZS5oCmluZGV4IDU2NTI0NzgyMmRiYTI5Zjc2MDBiOTQwN2U2ZjRhY2I4YzFh
MDZhYWMuLjFlOWM3MzI4ZGRjNzU2YmM0NmUyOGYxYTVlYTRhZjU0M2M0YWE2YmYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0lPU3VyZmFjZS5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0lPU3VyZmFjZS5oCkBA
IC00Niw2ICs0Niw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIEdyYXBoaWNzQ29udGV4
dDsKIGNsYXNzIEhvc3RXaW5kb3c7CiBjbGFzcyBJbWFnZUJ1ZmZlcjsKK2NsYXNzIFByb2Nlc3NJ
ZGVudGl0eTsKIAogZW51bSBjbGFzcyBQaXhlbEZvcm1hdCA6IHVpbnQ4X3Q7CiBlbnVtIGNsYXNz
IFZvbGF0aWxpdHlTdGF0ZSA6IHVpbnQ4X3Q7CkBAIC0xNTksOSArMTYwLDcgQEAgcHVibGljOgog
ICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyB2b2lkIGNvbnZlcnRUb0Zvcm1hdChzdGQ6OnVuaXF1
ZV9wdHI8V2ViQ29yZTo6SU9TdXJmYWNlPiYmIGluU3VyZmFjZSwgRm9ybWF0LCBGdW5jdGlvbjx2
b2lkKHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpJT1N1cmZhY2U+KT4mJik7CiAjZW5kaWYgLy8g
SEFWRShJT1NVUkZBQ0VfQUNDRUxFUkFUT1IpCiAKLSNpZiBIQVZFKElPU1VSRkFDRV9TRVRfT1dO
RVJTSElQX0lERU5USVRZKQotICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0T3duZXJzaGlwSWRl
bnRpdHkodGFza19pZF90b2tlbl90IG5ld093bmVyKTsKLSNlbmRpZgorICAgIFdFQkNPUkVfRVhQ
T1JUIHZvaWQgc2V0T3duZXJzaGlwSWRlbnRpdHkoY29uc3QgUHJvY2Vzc0lkZW50aXR5Jik7CiAK
ICAgICB2b2lkIG1pZ3JhdGVDb2xvclNwYWNlVG9Qcm9wZXJ0aWVzKCk7CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0lPU3VyZmFjZS5tbSBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0lPU3VyZmFjZS5tbQppbmRleCAw
MTExNjVjZTExYWJjZTY3NWM0YjQ3YmY5MTVkNGM4MWU2Y2VlOTk1Li5jYmIzZjJiZGQ0YzNjY2I0
ZmRjOThmNmRjZTlmMTQ2OTBiZGVlMDEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jb2NvYS9JT1N1cmZhY2UubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY29jb2EvSU9TdXJmYWNlLm1tCkBAIC0zNCw2ICszNCw3IEBACiAjaW1w
b3J0ICJJbWFnZUJ1ZmZlci5oIgogI2ltcG9ydCAiTG9nZ2luZy5oIgogI2ltcG9ydCAiUGxhdGZv
cm1TY3JlZW4uaCIKKyNpbXBvcnQgIlByb2Nlc3NJZGVudGl0eS5oIgogI2ltcG9ydCA8cGFsL3Nw
aS9jZy9Db3JlR3JhcGhpY3NTUEkuaD4KICNpbXBvcnQgPHd0Zi9Bc3NlcnRpb25zLmg+CiAjaW1w
b3J0IDx3dGYvTWFjaFNlbmRSaWdodC5oPgpAQCAtNDg0LDE0ICs0ODUsMTggQEAgdm9pZCBJT1N1
cmZhY2U6OmNvbnZlcnRUb0Zvcm1hdChzdGQ6OnVuaXF1ZV9wdHI8SU9TdXJmYWNlPiYmIGluU3Vy
ZmFjZSwgRm9ybWF0IGYKIAogI2VuZGlmIC8vIEhBVkUoSU9TVVJGQUNFX0FDQ0VMRVJBVE9SKQog
Ci0jaWYgSEFWRShJT1NVUkZBQ0VfU0VUX09XTkVSU0hJUF9JREVOVElUWSkKLXZvaWQgSU9TdXJm
YWNlOjpzZXRPd25lcnNoaXBJZGVudGl0eSh0YXNrX2lkX3Rva2VuX3QgbmV3T3duZXIpCit2b2lk
IElPU3VyZmFjZTo6c2V0T3duZXJzaGlwSWRlbnRpdHkoY29uc3QgUHJvY2Vzc0lkZW50aXR5JiBy
ZXNvdXJjZU93bmVyKQogewotICAgIGF1dG8gcmVzdWx0ID0gSU9TdXJmYWNlU2V0T3duZXJzaGlw
SWRlbnRpdHkobV9zdXJmYWNlLmdldCgpLCBuZXdPd25lciwga0lPU3VyZmFjZU1lbW9yeUxlZGdl
clRhZ0dyYXBoaWNzLCAwKTsKKyAgICBBU1NFUlQocmVzb3VyY2VPd25lcik7CisjaWYgSEFWRShJ
T1NVUkZBQ0VfU0VUX09XTkVSU0hJUF9JREVOVElUWSkgJiYgSEFWRShUQVNLX0lERU5USVRZX1RP
S0VOKQorICAgIHRhc2tfaWRfdG9rZW5fdCBvd25lclRhc2tJZFRva2VuID0gcmVzb3VyY2VPd25l
ci50YXNrSWRUb2tlbigpOworICAgIGF1dG8gcmVzdWx0ID0gSU9TdXJmYWNlU2V0T3duZXJzaGlw
SWRlbnRpdHkobV9zdXJmYWNlLmdldCgpLCBvd25lclRhc2tJZFRva2VuLCBrSU9TdXJmYWNlTWVt
b3J5TGVkZ2VyVGFnR3JhcGhpY3MsIDApOwogICAgIGlmIChyZXN1bHQgIT0ga0lPUmV0dXJuU3Vj
Y2VzcykKLSAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoSU9TdXJmYWNlLCAiSU9TdXJmYWNlOjpz
ZXRPd25lcnNoaXBJZGVudGl0eTogRmFpbGVkIHRvIGNsYWltIG93bmVyc2hpcCBvZiBJT1N1cmZh
Y2UgJXAsIG5ld093bmVyOiAlZCwgZXJyb3I6ICVkIiwgbV9zdXJmYWNlLmdldCgpLCAoaW50KW5l
d093bmVyLCByZXN1bHQpOwotfQorICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihJT1N1cmZhY2Us
ICJJT1N1cmZhY2U6OnNldE93bmVyc2hpcElkZW50aXR5OiBGYWlsZWQgdG8gY2xhaW0gb3duZXJz
aGlwIG9mIElPU3VyZmFjZSAlcCwgdGFzayBpZCB0b2tlbjogJWQsIGVycm9yOiAlZCIsIG1fc3Vy
ZmFjZS5nZXQoKSwgKGludClvd25lclRhc2tJZFRva2VuLCByZXN1bHQpOworI2Vsc2UKKyAgICBV
TlVTRURfUEFSQU0ocmVzb3VyY2VPd25lcik7CiAjZW5kaWYKK30KIAogdm9pZCBJT1N1cmZhY2U6
Om1pZ3JhdGVDb2xvclNwYWNlVG9Qcm9wZXJ0aWVzKCkKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1dlYlByb2Nlc3NHcmFwaGljc0NvbnRleHRH
TENvY29hLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvV2ViUHJv
Y2Vzc0dyYXBoaWNzQ29udGV4dEdMQ29jb2EubW0KaW5kZXggMjU0MjYyMzBkZmVkYWQyYzVlYjkx
MDQyNGEwOGE3MmUzNzE3YjJkNy4uOGQ1ZDI1YWIxMGI0NWUzZjlhNmU4MzhhZTEwOTQxZTZmYzBl
NWUzOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2Ev
V2ViUHJvY2Vzc0dyYXBoaWNzQ29udGV4dEdMQ29jb2EubW0KKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvV2ViUHJvY2Vzc0dyYXBoaWNzQ29udGV4dEdMQ29jb2Eu
bW0KQEAgLTI5LDYgKzI5LDcgQEAKICNpZiBFTkFCTEUoV0VCR0wpCiAjaW1wb3J0ICJHcmFwaGlj
c0NvbnRleHRHTENvY29hLmgiIC8vIE5PTElOVAogI2ltcG9ydCAiR3JhcGhpY3NDb250ZXh0R0xP
cGVuR0xNYW5hZ2VyLmgiCisjaW1wb3J0ICJQcm9jZXNzSWRlbnRpdHkuaCIKICNpbXBvcnQgIldl
YkdMTGF5ZXIuaCIKICNpbXBvcnQgPHd0Zi9CbG9ja09iakNFeGNlcHRpb25zLmg+CiAKQEAgLTc3
LDcgKzc4LDcgQEAgcHJpdmF0ZToKIH07CiAKIFdlYlByb2Nlc3NHcmFwaGljc0NvbnRleHRHTENv
Y29hOjpXZWJQcm9jZXNzR3JhcGhpY3NDb250ZXh0R0xDb2NvYShHcmFwaGljc0NvbnRleHRHTEF0
dHJpYnV0ZXMmJiBhdHRyaWJ1dGVzKQotICAgIDogR3JhcGhpY3NDb250ZXh0R0xDb2NvYShXVEZN
b3ZlKGF0dHJpYnV0ZXMpKQorICAgIDogR3JhcGhpY3NDb250ZXh0R0xDb2NvYShXVEZNb3ZlKGF0
dHJpYnV0ZXMpLCB7IH0pCiAgICAgLCBtX3dlYkdMTGF5ZXIoY3JlYXRlV2ViR0xMYXllcihjb250
ZXh0QXR0cmlidXRlcygpKSkKIHsKICNpZiBQTEFURk9STShNQUMpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L0dQVVByb2Nlc3MvR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L0dQVVByb2Nlc3MvR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAKaW5kZXgg
OTJjM2NjOTdiNzY2NjQ2ZTA2ODQwMjgyYjEwZThkZjA1MjZiNjBjZS4uMmNhOTBmNTBjM2IxZTlh
NjFhZjcxZTc1NGM1ODBlM2M3Y2M1NjRjZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQ
cm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
R1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcApAQCAtMjA3LDEyICsyMDcs
MTEgQEAgcHJpdmF0ZToKICAgICAgICAgbV9wcm9jZXNzLnN0YXJ0Q2FwdHVyaW5nQXVkaW8oKTsK
ICAgICB9CiAjZW5kaWYKLSNpZiBIQVZFKElPU1VSRkFDRV9TRVRfT1dORVJTSElQX0lERU5USVRZ
KQotICAgIHN0ZDo6b3B0aW9uYWw8dGFza19pZF90b2tlbl90PiB3ZWJQcm9jZXNzSWRlbnRpdHlU
b2tlbigpIGNvbnN0IGZpbmFsCisKKyAgICBjb25zdCBQcm9jZXNzSWRlbnRpdHkmIHJlc291cmNl
T3duZXIoKSBjb25zdCBmaW5hbAogICAgIHsKLSAgICAgICAgcmV0dXJuIG1fcHJvY2Vzcy53ZWJQ
cm9jZXNzSWRlbnRpdHlUb2tlbigpOworICAgICAgICByZXR1cm4gbV9wcm9jZXNzLndlYlByb2Nl
c3NJZGVudGl0eSgpOwogICAgIH0KLSNlbmRpZgogCiAgICAgR1BVQ29ubmVjdGlvblRvV2ViUHJv
Y2VzcyYgbV9wcm9jZXNzOwogfTsKQEAgLTIyOCw5ICsyMjcsNyBAQCBHUFVDb25uZWN0aW9uVG9X
ZWJQcm9jZXNzOjpHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzKEdQVVByb2Nlc3MmIGdwdVByb2Nl
c3MsIFdlYgogICAgIDogbV9jb25uZWN0aW9uKElQQzo6Q29ubmVjdGlvbjo6Y3JlYXRlU2VydmVy
Q29ubmVjdGlvbihjb25uZWN0aW9uSWRlbnRpZmllciwgKnRoaXMpKQogICAgICwgbV9ncHVQcm9j
ZXNzKGdwdVByb2Nlc3MpCiAgICAgLCBtX3dlYlByb2Nlc3NJZGVudGlmaWVyKHdlYlByb2Nlc3NJ
ZGVudGlmaWVyKQotI2lmIEhBVkUoVEFTS19JREVOVElUWV9UT0tFTikKLSAgICAsIG1fd2ViUHJv
Y2Vzc0lkZW50aXR5VG9rZW4oV1RGTW92ZShwYXJhbWV0ZXJzLndlYlByb2Nlc3NJZGVudGl0eVRv
a2VuKSkKLSNlbmRpZgorICAgICwgbV93ZWJQcm9jZXNzSWRlbnRpdHkoV1RGTW92ZShwYXJhbWV0
ZXJzLndlYlByb2Nlc3NJZGVudGl0eSkpCiAgICAgLCBtX3JlbW90ZU1lZGlhUGxheWVyTWFuYWdl
clByb3h5KG1ha2VVbmlxdWVSZWY8UmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHk+KCp0aGlz
KSkKICAgICAsIG1fc2Vzc2lvbklEKHNlc3Npb25JRCkKICNpZiBQTEFURk9STShDT0NPQSkgJiYg
VVNFKExJQldFQlJUQykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9HUFVD
b25uZWN0aW9uVG9XZWJQcm9jZXNzLmggYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvR1BVQ29u
bmVjdGlvblRvV2ViUHJvY2Vzcy5oCmluZGV4IGUzOTIzZGI1NzM0ODFjOGU2OWE5YTc2MTI2MzI3
Mzc3MDlkZDk3ZmEuLmI0NTkwN2YyNTQzOGUzZDdiODhmNDc0NmNjNDgwOGVmNGY0MjdjZmUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9uVG9XZWJQcm9j
ZXNzLmgKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlBy
b2Nlc3MuaApAQCAtNDEsNiArNDEsNyBAQAogI2luY2x1ZGUgPFdlYkNvcmUvTm93UGxheWluZ01h
bmFnZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1BhZ2VJZGVudGlmaWVyLmg+CiAjaW5jbHVkZSA8
V2ViQ29yZS9Qcm9jZXNzSWRlbnRpZmllci5oPgorI2luY2x1ZGUgPFdlYkNvcmUvUHJvY2Vzc0lk
ZW50aXR5Lmg+CiAjaW5jbHVkZSA8cGFsL1Nlc3Npb25JRC5oPgogI2luY2x1ZGUgPHd0Zi9Mb2dn
ZXIuaD4KICNpbmNsdWRlIDx3dGYvTWFjaFNlbmRSaWdodC5oPgpAQCAtMTU1LDEwICsxNTYsNyBA
QCBwdWJsaWM6CiAgICAgdm9pZCBkaXNwYXRjaERpc3BsYXlXYXNSZWNvbmZpZ3VyZWRGb3JUZXN0
aW5nKCkgeyBkaXNwYXRjaERpc3BsYXlXYXNSZWNvbmZpZ3VyZWQoKTsgfTsKICNlbmRpZgogCi0j
aWYgSEFWRShUQVNLX0lERU5USVRZX1RPS0VOKQotICAgIHRhc2tfaWRfdG9rZW5fdCB3ZWJQcm9j
ZXNzSWRlbnRpdHlUb2tlbigpIGNvbnN0IHsgcmV0dXJuIHN0YXRpY19jYXN0PHRhc2tfaWRfdG9r
ZW5fdD4obV93ZWJQcm9jZXNzSWRlbnRpdHlUb2tlbi5zZW5kUmlnaHQoKSk7IH0KLSNlbmRpZgot
CisgICAgY29uc3QgV2ViQ29yZTo6UHJvY2Vzc0lkZW50aXR5JiB3ZWJQcm9jZXNzSWRlbnRpdHko
KSBjb25zdCB7IHJldHVybiBtX3dlYlByb2Nlc3NJZGVudGl0eTsgfQogI2lmIEVOQUJMRShFTkNS
WVBURURfTUVESUEpCiAgICAgUmVtb3RlQ0RNRmFjdG9yeVByb3h5JiBjZG1GYWN0b3J5UHJveHko
KTsKICNlbmRpZgpAQCAtMjgzLDkgKzI4MSw3IEBAIHByaXZhdGU6CiAgICAgSVBDOjpNZXNzYWdl
UmVjZWl2ZXJNYXAgbV9tZXNzYWdlUmVjZWl2ZXJNYXA7CiAgICAgUmVmPEdQVVByb2Nlc3M+IG1f
Z3B1UHJvY2VzczsKICAgICBjb25zdCBXZWJDb3JlOjpQcm9jZXNzSWRlbnRpZmllciBtX3dlYlBy
b2Nlc3NJZGVudGlmaWVyOwotI2lmIEhBVkUoVEFTS19JREVOVElUWV9UT0tFTikKLSAgICBNYWNo
U2VuZFJpZ2h0IG1fd2ViUHJvY2Vzc0lkZW50aXR5VG9rZW47Ci0jZW5kaWYKKyAgICBjb25zdCBX
ZWJDb3JlOjpQcm9jZXNzSWRlbnRpdHkgbV93ZWJQcm9jZXNzSWRlbnRpdHk7CiAjaWYgRU5BQkxF
KFdFQl9BVURJTykKICAgICBzdGQ6OnVuaXF1ZV9wdHI8UmVtb3RlQXVkaW9EZXN0aW5hdGlvbk1h
bmFnZXI+IG1fcmVtb3RlQXVkaW9EZXN0aW5hdGlvbk1hbmFnZXI7CiAjZW5kaWYKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVHcmFwaGljc0NvbnRl
eHRHTENvY29hLmNwcCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVH
cmFwaGljc0NvbnRleHRHTENvY29hLmNwcAppbmRleCAxMGE1MzYyOTljZjIzZWI5Zjg2ZjU3Mjdl
ODUyMzgzY2U4YTA0MDA4Li45ZDc2N2VjMjE2NTNlNzBlZTQ5OGI0ZTg5M2VmM2Q3NzhhMzAwNGRh
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlR3Jh
cGhpY3NDb250ZXh0R0xDb2NvYS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dy
YXBoaWNzL1JlbW90ZUdyYXBoaWNzQ29udGV4dEdMQ29jb2EuY3BwCkBAIC0yOSw2ICsyOSw3IEBA
CiAjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKSAmJiBFTkFCTEUoV0VCR0wpICYmIFBMQVRGT1JNKENP
Q09BKQogCiAjaW5jbHVkZSAiR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oIgorI2luY2x1ZGUg
PFdlYkNvcmUvUHJvY2Vzc0lkZW50aXR5Lmg+CiAjaW5jbHVkZSA8d3RmL01hY2hTZW5kUmlnaHQu
aD4KIAogbmFtZXNwYWNlIFdlYktpdCB7CkBAIC00NSw5ICs0Niw3IEBAIHB1YmxpYzoKICAgICB2
b2lkIHBsYXRmb3JtV29ya1F1ZXVlSW5pdGlhbGl6ZShXZWJDb3JlOjpHcmFwaGljc0NvbnRleHRH
TEF0dHJpYnV0ZXMmJikgZmluYWw7CiAgICAgdm9pZCBwcmVwYXJlRm9yRGlzcGxheShDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKFdURjo6TWFjaFNlbmRSaWdodCYmKT4mJikgZmluYWw7CiBwcml2YXRl
OgotI2lmIEhBVkUoSU9TVVJGQUNFX1NFVF9PV05FUlNISVBfSURFTlRJVFkpCi0gICAgdGFza19p
ZF90b2tlbl90IG1fd2ViUHJvY2Vzc0lkZW50aXR5VG9rZW47Ci0jZW5kaWYKKyAgICBjb25zdCBQ
cm9jZXNzSWRlbnRpdHkgbV9yZXNvdXJjZU93bmVyOwogfTsKIAogfQpAQCAtNjEsOSArNjAsNyBA
QCBSZWY8UmVtb3RlR3JhcGhpY3NDb250ZXh0R0w+IFJlbW90ZUdyYXBoaWNzQ29udGV4dEdMOjpj
cmVhdGUoR1BVQ29ubmVjdGlvblRvV2ViUAogCiBSZW1vdGVHcmFwaGljc0NvbnRleHRHTENvY29h
OjpSZW1vdGVHcmFwaGljc0NvbnRleHRHTENvY29hKEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3Mm
IGdwdUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MsIEdyYXBoaWNzQ29udGV4dEdMSWRlbnRpZmllciBn
cmFwaGljc0NvbnRleHRHTElkZW50aWZpZXIsIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmQmIHJlbmRl
cmluZ0JhY2tlbmQsIElQQzo6U3RyZWFtQ29ubmVjdGlvbkJ1ZmZlciYmIHN0cmVhbSkKICAgICA6
IFJlbW90ZUdyYXBoaWNzQ29udGV4dEdMKGdwdUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MsIGdyYXBo
aWNzQ29udGV4dEdMSWRlbnRpZmllciwgcmVuZGVyaW5nQmFja2VuZCwgV1RGTW92ZShzdHJlYW0p
KQotI2lmIEhBVkUoSU9TVVJGQUNFX1NFVF9PV05FUlNISVBfSURFTlRJVFkpCi0gICAgLCBtX3dl
YlByb2Nlc3NJZGVudGl0eVRva2VuKGdwdUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3Mud2ViUHJvY2Vz
c0lkZW50aXR5VG9rZW4oKSkKLSNlbmRpZgorICAgICwgbV9yZXNvdXJjZU93bmVyKGdwdUNvbm5l
Y3Rpb25Ub1dlYlByb2Nlc3Mud2ViUHJvY2Vzc0lkZW50aXR5KCkpCiB7CiAKIH0KQEAgLTcxLDcg
KzY4LDcgQEAgUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xDb2NvYTo6UmVtb3RlR3JhcGhpY3NDb250
ZXh0R0xDb2NvYShHUFVDb25uZWN0aW9uVG9XZWJQcm8KIHZvaWQgUmVtb3RlR3JhcGhpY3NDb250
ZXh0R0xDb2NvYTo6cGxhdGZvcm1Xb3JrUXVldWVJbml0aWFsaXplKFdlYkNvcmU6OkdyYXBoaWNz
Q29udGV4dEdMQXR0cmlidXRlcyYmIGF0dHJpYnV0ZXMpCiB7CiAgICAgYXNzZXJ0SXNDdXJyZW50
KG1fc3RyZWFtVGhyZWFkKTsKLSAgICBtX2NvbnRleHQgPSBHcmFwaGljc0NvbnRleHRHTENvY29h
OjpjcmVhdGUoV1RGTW92ZShhdHRyaWJ1dGVzKSk7CisgICAgbV9jb250ZXh0ID0gR3JhcGhpY3ND
b250ZXh0R0xDb2NvYTo6Y3JlYXRlKFdURk1vdmUoYXR0cmlidXRlcyksIFByb2Nlc3NJZGVudGl0
eSB7IG1fcmVzb3VyY2VPd25lciB9KTsKIH0KIAogdm9pZCBSZW1vdGVHcmFwaGljc0NvbnRleHRH
TENvY29hOjpwcmVwYXJlRm9yRGlzcGxheShDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdURjo6TWFj
aFNlbmRSaWdodCYmKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKQEAgLTgyLDEwICs3OSw2IEBAIHZv
aWQgUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xDb2NvYTo6cHJlcGFyZUZvckRpc3BsYXkoQ29tcGxl
dGlvbkhhbmRsZXI8dm9pZChXVEY6CiAgICAgTWFjaFNlbmRSaWdodCBzZW5kUmlnaHQ7CiAgICAg
aWYgKGRpc3BsYXlCdWZmZXIpIHsKICAgICAgICAgbV9jb250ZXh0LT5tYXJrRGlzcGxheUJ1ZmZl
ckluVXNlKCk7Ci0jaWYgSEFWRShJT1NVUkZBQ0VfU0VUX09XTkVSU0hJUF9JREVOVElUWSkKLSAg
ICAgICAgLy8gTWFyayB0aGUgSU9TdXJmYWNlIGFzIGJlaW5nIG93bmVkIGJ5IHRoZSBXZWJQcm9j
ZXNzIGV2ZW4gdGhvdWdoIGl0IHdhcyBjb25zdHJ1Y3RlZCBieSB0aGUgR1BVUHJvY2VzcyBzbyB0
aGF0IEpldHNhbSBrbm93cyB3aGljaCBwcm9jZXNzIHRvIGtpbGwuCi0gICAgICAgIGRpc3BsYXlC
dWZmZXItPnNldE93bmVyc2hpcElkZW50aXR5KG1fd2ViUHJvY2Vzc0lkZW50aXR5VG9rZW4pOwot
I2VuZGlmCiAgICAgICAgIHNlbmRSaWdodCA9IGRpc3BsYXlCdWZmZXItPmNyZWF0ZVNlbmRSaWdo
dCgpOwogICAgIH0KICAgICBjb21wbGV0aW9uSGFuZGxlcihXVEZNb3ZlKHNlbmRSaWdodCkpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZUltYWdl
QnVmZmVyLmggYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlSW1hZ2VC
dWZmZXIuaAppbmRleCBhM2Q0OTRmZThiZjZhMTk2NDdlZjE5MGM5ZGI0MDQyYWVjZTY3MjIwLi4z
NWI0NTI3MGI0NTg0MjQ4MDk4MTA0MmRjNzU1MzRmYmFiYWViZjJkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlSW1hZ2VCdWZmZXIuaAorKysgYi9T
b3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlSW1hZ2VCdWZmZXIuaApAQCAt
NjksMTMgKzY5LDExIEBAIHB1YmxpYzoKICAgICAgICAgICAgIGNvbnRleHQoKS5yZXN0b3JlKCk7
CiAgICAgfQogCi0jaWYgSEFWRShJT1NVUkZBQ0VfU0VUX09XTkVSU0hJUF9JREVOVElUWSkKLSAg
ICB2b2lkIHNldFByb2Nlc3NPd25lcnNoaXAodGFza19pZF90b2tlbl90IG5ld093bmVyKQorICAg
IHZvaWQgc2V0T3duZXJzaGlwSWRlbnRpdHkoY29uc3QgV2ViQ29yZTo6UHJvY2Vzc0lkZW50aXR5
JiByZXNvdXJjZU93bmVyKQogICAgIHsKICAgICAgICAgaWYgKG1fYmFja2VuZCkKLSAgICAgICAg
ICAgIG1fYmFja2VuZC0+c2V0UHJvY2Vzc093bmVyc2hpcChuZXdPd25lcik7CisgICAgICAgICAg
ICBtX2JhY2tlbmQtPnNldE93bmVyc2hpcElkZW50aXR5KHJlc291cmNlT3duZXIpOwogICAgIH0K
LSNlbmRpZgogCiBwcml2YXRlOgogICAgIGZyaWVuZCBjbGFzcyBSZW1vdGVSZW5kZXJpbmdCYWNr
ZW5kOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90
ZVJlbmRlcmluZ0JhY2tlbmQuY3BwIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNz
L1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQuY3BwCmluZGV4IGIwZGY1MzQzNDQ5NzgyZmE0Y2UzMWJj
ZjMzMmQ4ZmM1YmNjOGIxMDIuLjhkZmIyNWQ4MjkyNjk0YTJkODEyZGFjYWI5ODdhMGM5ZWJlMzhl
YmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVS
ZW5kZXJpbmdCYWNrZW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhp
Y3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5jcHAKQEAgLTg1LDYgKzg1LDcgQEAgUmVtb3RlUmVu
ZGVyaW5nQmFja2VuZDo6UmVtb3RlUmVuZGVyaW5nQmFja2VuZChHUFVDb25uZWN0aW9uVG9XZWJQ
cm9jZXNzJiBncHVDb24KICAgICAsIG1fc3RyZWFtQ29ubmVjdGlvbihJUEM6OlN0cmVhbVNlcnZl
ckNvbm5lY3Rpb246OmNyZWF0ZShncHVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNvbm5lY3Rpb24o
KSwgV1RGTW92ZShzdHJlYW1CdWZmZXIpLCBtX3dvcmtRdWV1ZS5nZXQoKSkpCiAgICAgLCBtX3Jl
bW90ZVJlc291cmNlQ2FjaGUoZ3B1Q29ubmVjdGlvblRvV2ViUHJvY2Vzcy53ZWJQcm9jZXNzSWRl
bnRpZmllcigpKQogICAgICwgbV9ncHVDb25uZWN0aW9uVG9XZWJQcm9jZXNzKGdwdUNvbm5lY3Rp
b25Ub1dlYlByb2Nlc3MpCisgICAgLCBtX3Jlc291cmNlT3duZXIoZ3B1Q29ubmVjdGlvblRvV2Vi
UHJvY2Vzcy53ZWJQcm9jZXNzSWRlbnRpdHkoKSkKICAgICAsIG1fcmVuZGVyaW5nQmFja2VuZElk
ZW50aWZpZXIoY3JlYXRpb25QYXJhbWV0ZXJzLmlkZW50aWZpZXIpCiB7CiAgICAgQVNTRVJUKFJ1
bkxvb3A6OmlzTWFpbigpKTsKQEAgLTE3NCwxMCArMTc1LDkgQEAgdm9pZCBSZW1vdGVSZW5kZXJp
bmdCYWNrZW5kOjpjcmVhdGVJbWFnZUJ1ZmZlcldpdGhRdWFsaWZpZWRJZGVudGlmaWVyKGNvbnN0
IEZsb2EKIAogICAgIGlmIChyZW5kZXJpbmdNb2RlID09IFJlbmRlcmluZ01vZGU6OkFjY2VsZXJh
dGVkKSB7CiAgICAgICAgIGlmIChhdXRvIGFjY2VsZXJhdGVkSW1hZ2VCdWZmZXIgPSBBY2NlbGVy
YXRlZFJlbW90ZUltYWdlQnVmZmVyOjpjcmVhdGUobG9naWNhbFNpemUsIHJlc29sdXRpb25TY2Fs
ZSwgY29sb3JTcGFjZSwgcGl4ZWxGb3JtYXQsICp0aGlzLCBpbWFnZUJ1ZmZlclJlc291cmNlSWRl
bnRpZmllcikpIHsKLSNpZiBIQVZFKElPU1VSRkFDRV9TRVRfT1dORVJTSElQX0lERU5USVRZKQog
ICAgICAgICAgICAgLy8gTWFyayB0aGUgSU9TdXJmYWNlIGFzIGJlaW5nIG93bmVkIGJ5IHRoZSBX
ZWJQcm9jZXNzIGV2ZW4gdGhvdWdoIGl0IHdhcyBjb25zdHJ1Y3RlZCBieSB0aGUgR1BVUHJvY2Vz
cyBzbyB0aGF0IEpldHNhbSBrbm93cyB3aGljaCBwcm9jZXNzIHRvIGtpbGwuCi0gICAgICAgICAg
ICBhY2NlbGVyYXRlZEltYWdlQnVmZmVyLT5zZXRQcm9jZXNzT3duZXJzaGlwKG1fZ3B1Q29ubmVj
dGlvblRvV2ViUHJvY2Vzcy0+d2ViUHJvY2Vzc0lkZW50aXR5VG9rZW4oKSk7Ci0jZW5kaWYKKyAg
ICAgICAgICAgIGlmIChtX3Jlc291cmNlT3duZXIpCisgICAgICAgICAgICAgICAgYWNjZWxlcmF0
ZWRJbWFnZUJ1ZmZlci0+c2V0T3duZXJzaGlwSWRlbnRpdHkobV9yZXNvdXJjZU93bmVyKTsKICAg
ICAgICAgICAgIGltYWdlQnVmZmVyID0gV1RGTW92ZShhY2NlbGVyYXRlZEltYWdlQnVmZmVyKTsK
ICAgICAgICAgfQogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9n
cmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmggYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nl
c3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5oCmluZGV4IGUzNTcxNWRkMTdmZWU2
NDM0NWIyMjYyZDY4Y2ViZWE0ZDc0YWI5OTYuLjlhMjZjNDI0YjkxMjExMDExOGI0MzYxODRkZTMw
YjhkMjhkZDE1MjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGlj
cy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmgKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNz
L2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQuaApAQCAtNDYsNiArNDYsNyBAQAogI2lu
Y2x1ZGUgPFdlYkNvcmUvRGlzcGxheUxpc3RJdGVtcy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRGlz
cGxheUxpc3RSZXBsYXllci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUHJvY2Vzc0lkZW50aWZpZXIu
aD4KKyNpbmNsdWRlIDxXZWJDb3JlL1Byb2Nlc3NJZGVudGl0eS5oPgogI2luY2x1ZGUgPHd0Zi9X
ZWFrUHRyLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTEzMyw2ICsxMzQsNyBAQCBwcml2
YXRlOgogICAgIFJlZjxJUEM6OlN0cmVhbVNlcnZlckNvbm5lY3Rpb24+IG1fc3RyZWFtQ29ubmVj
dGlvbjsKICAgICBSZW1vdGVSZXNvdXJjZUNhY2hlIG1fcmVtb3RlUmVzb3VyY2VDYWNoZTsKICAg
ICBSZWY8R1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcz4gbV9ncHVDb25uZWN0aW9uVG9XZWJQcm9j
ZXNzOworICAgIFdlYkNvcmU6OlByb2Nlc3NJZGVudGl0eSBtX3Jlc291cmNlT3duZXI7CiAgICAg
UmVuZGVyaW5nQmFja2VuZElkZW50aWZpZXIgbV9yZW5kZXJpbmdCYWNrZW5kSWRlbnRpZmllcjsK
ICAgICBJUEM6OlNlbWFwaG9yZSBtX2dldFBpeGVsQnVmZmVyU2VtYXBob3JlOwogICAgIFJlZlB0
cjxTaGFyZWRNZW1vcnk+IG1fZ2V0UGl4ZWxCdWZmZXJTaGFyZWRNZW1vcnk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mvd2VicnRjL0xpYldlYlJUQ0NvZGVjc1Byb3h5Lm1t
IGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL3dlYnJ0Yy9MaWJXZWJSVENDb2RlY3NQcm94eS5t
bQppbmRleCAxMzNlMjZlNDc0ZTFkMzE5MTYzZTU1NzE5OTJkMGMwYzcxOWRkZTE0Li4zMGZhMzBj
YjNkYzljOWI0MDFmMGM0ZWNmY2UyMTA4MWVjNDZlNWMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L0dQVVByb2Nlc3Mvd2VicnRjL0xpYldlYlJUQ0NvZGVjc1Byb3h5Lm1tCisrKyBiL1NvdXJj
ZS9XZWJLaXQvR1BVUHJvY2Vzcy93ZWJydGMvTGliV2ViUlRDQ29kZWNzUHJveHkubW0KQEAgLTc2
LDE1ICs3NiwxMCBAQCB2b2lkIExpYldlYlJUQ0NvZGVjc1Byb3h5OjpjbG9zZSgpCiAKIHN0YXRp
YyBGdW5jdGlvbjx2b2lkKENWUGl4ZWxCdWZmZXJSZWYgcGl4ZWxCdWZmZXIsIHVpbnQzMl90IHRp
bWVTdGFtcE5zLCB1aW50MzJfdCB0aW1lU3RhbXApPiBjcmVhdGVEZWNvZGVyQ2FsbGJhY2soUlRD
RGVjb2RlcklkZW50aWZpZXIgaWRlbnRpZmllciwgR1BVQ29ubmVjdGlvblRvV2ViUHJvY2VzcyYg
Z3B1Q29ubmVjdGlvblRvV2ViUHJvY2VzcykKIHsKLSAgICByZXR1cm4gW2Nvbm5lY3Rpb24gPSBS
ZWYgeyBncHVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNvbm5lY3Rpb24oKSB9LAotI2lmIEhBVkUo
SU9TVVJGQUNFX1NFVF9PV05FUlNISVBfSURFTlRJVFkpCi0gICAgICAgIHRva2VuID0gZ3B1Q29u
bmVjdGlvblRvV2ViUHJvY2Vzcy53ZWJQcm9jZXNzSWRlbnRpdHlUb2tlbigpLAotI2VuZGlmCi0g
ICAgICAgIGlkZW50aWZpZXJdKENWUGl4ZWxCdWZmZXJSZWYgcGl4ZWxCdWZmZXIsIHVpbnQzMl90
IHRpbWVTdGFtcE5zLCB1aW50MzJfdCB0aW1lU3RhbXApIHsKKyAgICByZXR1cm4gW2Nvbm5lY3Rp
b24gPSBSZWYgeyBncHVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNvbm5lY3Rpb24oKSB9LCByZXNv
dXJjZU93bmVyID0gZ3B1Q29ubmVjdGlvblRvV2ViUHJvY2Vzcy53ZWJQcm9jZXNzSWRlbnRpdHko
KSwgaWRlbnRpZmllcl0gKENWUGl4ZWxCdWZmZXJSZWYgcGl4ZWxCdWZmZXIsIHVpbnQzMl90IHRp
bWVTdGFtcE5zLCB1aW50MzJfdCB0aW1lU3RhbXApIHsKICAgICAgICAgaWYgKGF1dG8gc2FtcGxl
ID0gV2ViQ29yZTo6UmVtb3RlVmlkZW9TYW1wbGU6OmNyZWF0ZShwaXhlbEJ1ZmZlciwgTWVkaWFU
aW1lKHRpbWVTdGFtcE5zLCAxKSkpIHsKLSNpZiBIQVZFKElPU1VSRkFDRV9TRVRfT1dORVJTSElQ
X0lERU5USVRZKQotICAgICAgICAgICAgc2FtcGxlLT5zZXRPd25lcnNoaXBJZGVudGl0eSh0b2tl
bik7Ci0jZW5kaWYKKyAgICAgICAgICAgIGlmIChyZXNvdXJjZU93bmVyKQorICAgICAgICAgICAg
ICAgIHNhbXBsZS0+c2V0T3duZXJzaGlwSWRlbnRpdHkocmVzb3VyY2VPd25lcik7CiAgICAgICAg
ICAgICBjb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpMaWJXZWJSVENDb2RlY3M6OkNvbXBsZXRl
ZERlY29kaW5nIHsgaWRlbnRpZmllciwgdGltZVN0YW1wLCAqc2FtcGxlIH0sIDApOwogICAgICAg
ICB9CiAgICAgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0dQVVByb2Nlc3ND
b25uZWN0aW9uUGFyYW1ldGVycy5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvR1BVUHJvY2Vzc0Nv
bm5lY3Rpb25QYXJhbWV0ZXJzLmgKaW5kZXggMDk2ZmQwZTNiYTZjN2VjMTE3NzhmOTk0ZmZkNWU4
Njc3ZTIwZmM1Ni4uZWQzMDQ5NWIyNTIyODYxZjc0NjQ1MmZlOTA5MWI5NjU2MTEwNjc3MCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvR1BVUHJvY2Vzc0Nvbm5lY3Rpb25QYXJhbWV0
ZXJzLmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvR1BVUHJvY2Vzc0Nvbm5lY3Rpb25QYXJh
bWV0ZXJzLmgKQEAgLTI4LDE0ICsyOCwxMyBAQAogI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKIAog
I2luY2x1ZGUgIldlYkNvcmVBcmd1bWVudENvZGVycy5oIgorI2luY2x1ZGUgPFdlYkNvcmUvUHJv
Y2Vzc0lkZW50aXR5Lmg+CiAjaW5jbHVkZSA8d3RmL01hY2hTZW5kUmlnaHQuaD4KIAogbmFtZXNw
YWNlIFdlYktpdCB7CiAKIHN0cnVjdCBHUFVQcm9jZXNzQ29ubmVjdGlvblBhcmFtZXRlcnMgewot
I2lmIEhBVkUoVEFTS19JREVOVElUWV9UT0tFTikKLSAgICBNYWNoU2VuZFJpZ2h0IHdlYlByb2Nl
c3NJZGVudGl0eVRva2VuOwotI2VuZGlmCisgICAgV2ViQ29yZTo6UHJvY2Vzc0lkZW50aXR5IHdl
YlByb2Nlc3NJZGVudGl0eTsKICAgICBWZWN0b3I8U3RyaW5nPiBvdmVycmlkZUxhbmd1YWdlczsK
ICNpZiBFTkFCTEUoSVBDX1RFU1RJTkdfQVBJKQogICAgIGJvb2wgaWdub3JlSW52YWxpZE1lc3Nh
Z2VGb3JUZXN0aW5nIHsgZmFsc2UgfTsKQEAgLTQ2LDkgKzQ1LDcgQEAgc3RydWN0IEdQVVByb2Nl
c3NDb25uZWN0aW9uUGFyYW1ldGVycyB7CiAKICAgICB2b2lkIGVuY29kZShJUEM6OkVuY29kZXIm
IGVuY29kZXIpIGNvbnN0CiAgICAgewotI2lmIEhBVkUoVEFTS19JREVOVElUWV9UT0tFTikKLSAg
ICAgICAgZW5jb2RlciA8PCB3ZWJQcm9jZXNzSWRlbnRpdHlUb2tlbjsKLSNlbmRpZgorICAgICAg
ICBlbmNvZGVyIDw8IHdlYlByb2Nlc3NJZGVudGl0eTsKICAgICAgICAgZW5jb2RlciA8PCBvdmVy
cmlkZUxhbmd1YWdlczsKICNpZiBFTkFCTEUoSVBDX1RFU1RJTkdfQVBJKQogICAgICAgICBlbmNv
ZGVyIDw8IGlnbm9yZUludmFsaWRNZXNzYWdlRm9yVGVzdGluZzsKQEAgLTYwLDEyICs1NywxMCBA
QCBzdHJ1Y3QgR1BVUHJvY2Vzc0Nvbm5lY3Rpb25QYXJhbWV0ZXJzIHsKIAogICAgIHN0YXRpYyBz
dGQ6Om9wdGlvbmFsPEdQVVByb2Nlc3NDb25uZWN0aW9uUGFyYW1ldGVycz4gZGVjb2RlKElQQzo6
RGVjb2RlciYgZGVjb2RlcikKICAgICB7Ci0jaWYgSEFWRShUQVNLX0lERU5USVRZX1RPS0VOKQot
ICAgICAgICBzdGQ6Om9wdGlvbmFsPE1hY2hTZW5kUmlnaHQ+IHdlYlByb2Nlc3NJZGVudGl0eVRv
a2VuOwotICAgICAgICBkZWNvZGVyID4+IHdlYlByb2Nlc3NJZGVudGl0eVRva2VuOwotICAgICAg
ICBpZiAoIXdlYlByb2Nlc3NJZGVudGl0eVRva2VuKQorICAgICAgICBzdGQ6Om9wdGlvbmFsPFdl
YkNvcmU6OlByb2Nlc3NJZGVudGl0eT4gd2ViUHJvY2Vzc0lkZW50aXR5OworICAgICAgICBkZWNv
ZGVyID4+IHdlYlByb2Nlc3NJZGVudGl0eTsKKyAgICAgICAgaWYgKCF3ZWJQcm9jZXNzSWRlbnRp
dHkpCiAgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwotI2VuZGlmCiAKICAgICAgICAg
c3RkOjpvcHRpb25hbDxWZWN0b3I8U3RyaW5nPj4gb3ZlcnJpZGVMYW5ndWFnZXM7CiAgICAgICAg
IGRlY29kZXIgPj4gb3ZlcnJpZGVMYW5ndWFnZXM7CkBAIC04Niw5ICs4MSw3IEBAIHN0cnVjdCBH
UFVQcm9jZXNzQ29ubmVjdGlvblBhcmFtZXRlcnMgewogI2VuZGlmCiAKICAgICAgICAgcmV0dXJu
IEdQVVByb2Nlc3NDb25uZWN0aW9uUGFyYW1ldGVycyB7Ci0jaWYgSEFWRShUQVNLX0lERU5USVRZ
X1RPS0VOKQotICAgICAgICAgICAgV1RGTW92ZSgqd2ViUHJvY2Vzc0lkZW50aXR5VG9rZW4pLAot
I2VuZGlmCisgICAgICAgICAgICBXVEZNb3ZlKCp3ZWJQcm9jZXNzSWRlbnRpdHkpLAogICAgICAg
ICAgICAgV1RGTW92ZSgqb3ZlcnJpZGVMYW5ndWFnZXMpLAogI2lmIEVOQUJMRShJUENfVEVTVElO
R19BUEkpCiAgICAgICAgICAgICAqaWdub3JlSW52YWxpZE1lc3NhZ2VGb3JUZXN0aW5nLApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVyZU1h
bmFnZXJQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFD
YXB0dXJlTWFuYWdlclByb3h5LmNwcAppbmRleCAyYmIzYmNkYjU4MmRjODUzZjIwODNlY2U0NDcx
OTNjNDQxOTNlYzkyLi5iZGFmOThkMTBkZDM1OGJkZDdiZjc5MzNhYmQxNDg2NTA3Y2NlZDg2IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJl
TWFuYWdlclByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9Vc2Vy
TWVkaWFDYXB0dXJlTWFuYWdlclByb3h5LmNwcApAQCAtNTcsOSArNTcsMTAgQEAgY2xhc3MgVXNl
ck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6U291cmNlUHJveHkKICAgICAsIHByaXZhdGUgUmVh
bHRpbWVNZWRpYVNvdXJjZTo6VmlkZW9TYW1wbGVPYnNlcnZlciB7CiAgICAgV1RGX01BS0VfRkFT
VF9BTExPQ0FURUQ7CiBwdWJsaWM6Ci0gICAgU291cmNlUHJveHkoUmVhbHRpbWVNZWRpYVNvdXJj
ZUlkZW50aWZpZXIgaWQsIFJlZjxJUEM6OkNvbm5lY3Rpb24+JiYgY29ubmVjdGlvbiwgUmVmPFJl
YWx0aW1lTWVkaWFTb3VyY2U+JiYgc291cmNlKQorICAgIFNvdXJjZVByb3h5KFJlYWx0aW1lTWVk
aWFTb3VyY2VJZGVudGlmaWVyIGlkLCBSZWY8SVBDOjpDb25uZWN0aW9uPiYmIGNvbm5lY3Rpb24s
IFByb2Nlc3NJZGVudGl0eSYmIHJlc291cmNlT3duZXIsIFJlZjxSZWFsdGltZU1lZGlhU291cmNl
PiYmIHNvdXJjZSkKICAgICAgICAgOiBtX2lkKGlkKQogICAgICAgICAsIG1fY29ubmVjdGlvbihX
VEZNb3ZlKGNvbm5lY3Rpb24pKQorICAgICAgICAsIG1fcmVzb3VyY2VPd25lcihXVEZNb3ZlKHJl
c291cmNlT3duZXIpKQogICAgICAgICAsIG1fc291cmNlKFdURk1vdmUoc291cmNlKSkKICAgICB7
CiAgICAgICAgIG1fc291cmNlLT5hZGRPYnNlcnZlcigqdGhpcyk7CkBAIC0xMjUsOSArMTI2LDYg
QEAgcHVibGljOgogICAgIH0KIAogICAgIHZvaWQgc2V0U2hvdWxkQXBwbHlSb3RhdGlvbihib29s
IHNob3VsZEFwcGx5Um90YXRpb24pIHsgbV9zaG91bGRBcHBseVJvdGF0aW9uID0gdHJ1ZTsgfQot
I2lmIEhBVkUoSU9TVVJGQUNFX1NFVF9PV05FUlNISVBfSURFTlRJVFkpCi0gICAgdm9pZCBzZXRX
ZWJQcm9jZXNzSWRlbnRpdHlUb2tlbihzdGQ6Om9wdGlvbmFsPHRhc2tfaWRfdG9rZW5fdD4gdG9r
ZW4pIHsgbV93ZWJQcm9jZXNzSWRlbnRpdHlUb2tlbiA9IHRva2VuO30KLSNlbmRpZgogCiBwcml2
YXRlOgogICAgIHZvaWQgc291cmNlU3RvcHBlZCgpIGZpbmFsIHsKQEAgLTE4OCwxMCArMTg2LDgg
QEAgcHJpdmF0ZToKICAgICAgICAgfSBlbHNlCiAgICAgICAgICAgICByZW1vdGVTYW1wbGUgPSBS
ZW1vdGVWaWRlb1NhbXBsZTo6Y3JlYXRlKHNhbXBsZSk7CiAgICAgICAgIGlmIChyZW1vdGVTYW1w
bGUpIHsKLSNpZiBIQVZFKElPU1VSRkFDRV9TRVRfT1dORVJTSElQX0lERU5USVRZKQotICAgICAg
ICAgICAgaWYgKG1fd2ViUHJvY2Vzc0lkZW50aXR5VG9rZW4pCi0gICAgICAgICAgICAgICAgcmVt
b3RlU2FtcGxlLT5zZXRPd25lcnNoaXBJZGVudGl0eSgqbV93ZWJQcm9jZXNzSWRlbnRpdHlUb2tl
bik7Ci0jZW5kaWYKKyAgICAgICAgICAgIGlmIChtX3Jlc291cmNlT3duZXIpCisgICAgICAgICAg
ICAgICAgcmVtb3RlU2FtcGxlLT5zZXRPd25lcnNoaXBJZGVudGl0eShtX3Jlc291cmNlT3duZXIp
OwogICAgICAgICAgICAgbV9jb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpSZW1vdGVDYXB0dXJl
U2FtcGxlTWFuYWdlcjo6VmlkZW9TYW1wbGVBdmFpbGFibGUobV9pZCwgV1RGTW92ZSgqcmVtb3Rl
U2FtcGxlKSwgbWV0YWRhdGEpLCAwKTsKICAgICAgICAgfQogICAgIH0KQEAgLTI0NCw2ICsyNDAs
NyBAQCBwcml2YXRlOgogICAgIFJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIG1faWQ7CiAg
ICAgV2Vha1B0cjxQbGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXI+IG1fc2Vzc2lvbk1hbmFnZXI7
CiAgICAgUmVmPElQQzo6Q29ubmVjdGlvbj4gbV9jb25uZWN0aW9uOworICAgIFByb2Nlc3NJZGVu
dGl0eSBtX3Jlc291cmNlT3duZXI7CiAgICAgUmVmPFJlYWx0aW1lTWVkaWFTb3VyY2U+IG1fc291
cmNlOwogICAgIHN0ZDo6dW5pcXVlX3B0cjxDQVJpbmdCdWZmZXI+IG1fcmluZ0J1ZmZlcjsKICAg
ICBDQUF1ZGlvU3RyZWFtRGVzY3JpcHRpb24gbV9kZXNjcmlwdGlvbiB7IH07CkBAIC0yNTcsOSAr
MjU0LDYgQEAgcHJpdmF0ZToKICAgICBzaXplX3QgbV9mcmFtZUNodW5rU2l6ZSB7IDAgfTsKICAg
ICBNZWRpYVRpbWUgbV9zdGFydFRpbWU7CiAgICAgYm9vbCBtX3Nob3VsZFJlc2V0IHsgZmFsc2Ug
fTsKLSNpZiBIQVZFKFRBU0tfSURFTlRJVFlfVE9LRU4pCi0gICAgc3RkOjpvcHRpb25hbDx0YXNr
X2lkX3Rva2VuX3Q+IG1fd2ViUHJvY2Vzc0lkZW50aXR5VG9rZW47Ci0jZW5kaWYKIH07CiAKIFVz
ZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHko
VW5pcXVlUmVmPENvbm5lY3Rpb25Qcm94eT4mJiBjb25uZWN0aW9uUHJveHkpCkBAIC0zMjMsMTIg
KzMxNyw3IEBAIHZvaWQgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6Y3JlYXRlTWVkaWFT
b3VyY2VGb3JDYXB0dXJlRGV2aWNlV2l0aENvbnN0cmFpCiAgICAgICAgIH0KIAogICAgICAgICBB
U1NFUlQoIW1fcHJveGllcy5jb250YWlucyhpZCkpOwotICAgICAgICBhdXRvIHByb3h5ID0gbWFr
ZVVuaXF1ZTxTb3VyY2VQcm94eT4oaWQsIG1fY29ubmVjdGlvblByb3h5LT5jb25uZWN0aW9uKCks
IFdURk1vdmUoc291cmNlKSk7Ci0jaWYgSEFWRShJT1NVUkZBQ0VfU0VUX09XTkVSU0hJUF9JREVO
VElUWSkKLSAgICAgICAgaWYgKGRldmljZS50eXBlKCkgIT0gV2ViQ29yZTo6Q2FwdHVyZURldmlj
ZTo6RGV2aWNlVHlwZTo6TWljcm9waG9uZSkKLSAgICAgICAgICAgIHByb3h5LT5zZXRXZWJQcm9j
ZXNzSWRlbnRpdHlUb2tlbihtX2Nvbm5lY3Rpb25Qcm94eS0+d2ViUHJvY2Vzc0lkZW50aXR5VG9r
ZW4oKSk7Ci0jZW5kaWYKLQorICAgICAgICBhdXRvIHByb3h5ID0gbWFrZVVuaXF1ZTxTb3VyY2VQ
cm94eT4oaWQsIG1fY29ubmVjdGlvblByb3h5LT5jb25uZWN0aW9uKCksIFByb2Nlc3NJZGVudGl0
eSB7IG1fY29ubmVjdGlvblByb3h5LT5yZXNvdXJjZU93bmVyKCkgfSwgV1RGTW92ZShzb3VyY2Up
KTsKICAgICAgICAgbV9wcm94aWVzLmFkZChpZCwgV1RGTW92ZShwcm94eSkpOwogICAgIH0gZWxz
ZQogICAgICAgICBpbnZhbGlkQ29uc3RyYWludHMgPSBXVEZNb3ZlKHNvdXJjZU9yRXJyb3IuZXJy
b3JNZXNzYWdlKTsKQEAgLTM5NCw3ICszODMsNyBAQCB2b2lkIFVzZXJNZWRpYUNhcHR1cmVNYW5h
Z2VyUHJveHk6OmNsb25lKFJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIGNsb25lZElELAog
ICAgIE1FU1NBR0VfQ0hFQ0sobV9wcm94aWVzLmNvbnRhaW5zKGNsb25lZElEKSk7CiAgICAgTUVT
U0FHRV9DSEVDSyghbV9wcm94aWVzLmNvbnRhaW5zKG5ld1NvdXJjZUlEKSk7CiAgICAgaWYgKGF1
dG8qIHByb3h5ID0gbV9wcm94aWVzLmdldChjbG9uZWRJRCkpCi0gICAgICAgIG1fcHJveGllcy5h
ZGQobmV3U291cmNlSUQsIG1ha2VVbmlxdWU8U291cmNlUHJveHk+KG5ld1NvdXJjZUlELCBtX2Nv
bm5lY3Rpb25Qcm94eS0+Y29ubmVjdGlvbigpLCBwcm94eS0+c291cmNlKCkuY2xvbmUoKSkpOwor
ICAgICAgICBtX3Byb3hpZXMuYWRkKG5ld1NvdXJjZUlELCBtYWtlVW5pcXVlPFNvdXJjZVByb3h5
PihuZXdTb3VyY2VJRCwgbV9jb25uZWN0aW9uUHJveHktPmNvbm5lY3Rpb24oKSwgUHJvY2Vzc0lk
ZW50aXR5IHsgbV9jb25uZWN0aW9uUHJveHktPnJlc291cmNlT3duZXIoKSB9LCBwcm94eS0+c291
cmNlKCkuY2xvbmUoKSkpOwogfQogCiB2b2lkIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6
OnJlcXVlc3RUb0VuZChSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciBzb3VyY2VJRCkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVN
YW5hZ2VyUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNh
cHR1cmVNYW5hZ2VyUHJveHkuaAppbmRleCBhMDk0MjlkZjY3OTFlOTBmODRhOTM0OTVmYjBlZDI4
NWNjZWQwZDJjLi5mYTgyOWM3YzQ5MDNkNTFiNTdhNzg5NzE3ODQ3M2Y4MGNiZjI4NmRlIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFu
YWdlclByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlh
Q2FwdHVyZU1hbmFnZXJQcm94eS5oCkBAIC0zMiw2ICszMiw3IEBACiAjaW5jbHVkZSAiVXNlck1l
ZGlhQ2FwdHVyZU1hbmFnZXIuaCIKICNpbmNsdWRlIDxXZWJDb3JlL0NhcHR1cmVEZXZpY2UuaD4K
ICNpbmNsdWRlIDxXZWJDb3JlL09yaWVudGF0aW9uTm90aWZpZXIuaD4KKyNpbmNsdWRlIDxXZWJD
b3JlL1Byb2Nlc3NJZGVudGl0eS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUmVhbHRpbWVNZWRpYVNv
dXJjZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIu
aD4KICNpbmNsdWRlIDxwYWwvc3BpL2NvY29hL1RDQ1NQSS5oPgpAQCAtNTksOSArNjAsNyBAQCBw
dWJsaWM6CiAgICAgICAgIHZpcnR1YWwgYm9vbCB3aWxsU3RhcnRDYXB0dXJlKFdlYkNvcmU6OkNh
cHR1cmVEZXZpY2U6OkRldmljZVR5cGUpIGNvbnN0ID0gMDsKICAgICAgICAgdmlydHVhbCBMb2dn
ZXImIGxvZ2dlcigpID0gMDsKICAgICAgICAgdmlydHVhbCBib29sIHNldENhcHR1cmVBdHRyaWJ1
dGlvblN0cmluZygpIHsgcmV0dXJuIHRydWU7IH0KLSNpZiBIQVZFKElPU1VSRkFDRV9TRVRfT1dO
RVJTSElQX0lERU5USVRZKQotICAgICAgICB2aXJ0dWFsIHN0ZDo6b3B0aW9uYWw8dGFza19pZF90
b2tlbl90PiB3ZWJQcm9jZXNzSWRlbnRpdHlUb2tlbigpIGNvbnN0IHsgcmV0dXJuIHsgfTsgfTsK
LSNlbmRpZgorICAgICAgICB2aXJ0dWFsIGNvbnN0IFdlYkNvcmU6OlByb2Nlc3NJZGVudGl0eSYg
cmVzb3VyY2VPd25lcigpIGNvbnN0ID0gMDsKICNpZiBFTkFCTEUoQVBQX1BSSVZBQ1lfUkVQT1JU
KQogICAgICAgICB2aXJ0dWFsIHZvaWQgc2V0VENDSWRlbnRpdHkoKSB7IH0KICNlbmRpZgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcCBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAKaW5kZXggNjY1NmUyZGRk
ZDNiNDJjYzcwN2U4YTI4YjVkYTlhZGE3MDgwOTlmYi4uNjNlNmUxMzdmZmFjMGEyODkxMTA1Yzg5
ZTA3NmExMDFlNGFmZTZlMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
UHJvY2Vzc1Byb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNz
UHJveHkuY3BwCkBAIC0yMTYsNiArMjE2LDEzIEBAIHByaXZhdGU6CiAgICAgICAgIHJldHVybiB0
cnVlOwogICAgIH0KIAorICAgIGNvbnN0IFdlYkNvcmU6OlByb2Nlc3NJZGVudGl0eSYgcmVzb3Vy
Y2VPd25lcigpIGNvbnN0IGZpbmFsCisgICAgeworICAgICAgICAvLyBGSVhNRTogc2hvdWxkIG9i
dGFpbiBXZWJDb250ZW50IHByb2Nlc3MgaWRlbnRpdHkgZnJvbSBXZWJDb250ZW50LgorICAgICAg
ICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8V2ViQ29yZTo6UHJvY2Vzc0lkZW50aXR5PiBkdW1teTsK
KyAgICAgICAgcmV0dXJuIGR1bW15LmdldCgpOworICAgIH0KKwogICAgIFJlZlB0cjxMb2dnZXI+
IG1fbG9nZ2VyOwogICAgIFdlYlByb2Nlc3NQcm94eSYgbV9wcm9jZXNzOwogfTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvSW1hZ2VCdWZmZXJTaGFy
ZWFibGVCaXRtYXBCYWNrZW5kLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBo
aWNzL0ltYWdlQnVmZmVyU2hhcmVhYmxlQml0bWFwQmFja2VuZC5oCmluZGV4IDE4NDdmYTZmYmRl
NDA2ZWQ2YTZhZDA2MDQ5OGI4ODVjNWUzNmJiM2QuLmM1YjI2YzQwZTc0NjAzMjJkZmFmZTI5YjBj
ZTZlMzY0MTY3ZTcyYWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUv
Z3JhcGhpY3MvSW1hZ2VCdWZmZXJTaGFyZWFibGVCaXRtYXBCYWNrZW5kLmgKKysrIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9JbWFnZUJ1ZmZlclNoYXJlYWJsZUJpdG1h
cEJhY2tlbmQuaApAQCAtMzEsNiArMzEsMTAgQEAKICNpbmNsdWRlIDxXZWJDb3JlL1BsYXRmb3Jt
SW1hZ2VCdWZmZXJCYWNrZW5kLmg+CiAjaW5jbHVkZSA8d3RmL0lzb01hbGxvYy5oPgogCituYW1l
c3BhY2UgV2ViQ29yZSB7CitjbGFzcyBQcm9jZXNzSWRlbnRpdHk7Cit9CisKIG5hbWVzcGFjZSBX
ZWJLaXQgewogCiBjbGFzcyBTaGFyZWFibGVCaXRtYXA7CkBAIC02MSw2ICs2NSw3IEBAIHB1Ymxp
YzoKICAgICBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OlBpeGVsQnVmZmVyPiBnZXRQaXhlbEJ1ZmZl
cihjb25zdCBXZWJDb3JlOjpQaXhlbEJ1ZmZlckZvcm1hdCYgb3V0cHV0Rm9ybWF0LCBjb25zdCBX
ZWJDb3JlOjpJbnRSZWN0JikgY29uc3Qgb3ZlcnJpZGU7CiAgICAgdm9pZCBwdXRQaXhlbEJ1ZmZl
cihjb25zdCBXZWJDb3JlOjpQaXhlbEJ1ZmZlciYsIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmIHNy
Y1JlY3QsIGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBkZXN0UG9pbnQsIFdlYkNvcmU6OkFscGhh
UHJlbXVsdGlwbGljYXRpb24gZGVzdEZvcm1hdCkgb3ZlcnJpZGU7CiAKKyAgICB2b2lkIHNldE93
bmVyc2hpcElkZW50aXR5KGNvbnN0IFdlYkNvcmU6OlByb2Nlc3NJZGVudGl0eSYpIHsgfQogcHJp
dmF0ZToKICAgICB1bnNpZ25lZCBieXRlc1BlclJvdygpIGNvbnN0IG92ZXJyaWRlOwogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL2NvY29hL0ltYWdl
QnVmZmVyU2hhcmVhYmxlTWFwcGVkSU9TdXJmYWNlQmFja2VuZC5jcHAgYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL2NvY29hL0ltYWdlQnVmZmVyU2hhcmVhYmxlTWFwcGVk
SU9TdXJmYWNlQmFja2VuZC5jcHAKaW5kZXggYWZkMmM3YzA1Y2ZhZmQxMzk5MzQ0ZjVjNmE3NjRl
NDg4MGQyOGJkYS4uYjI5ZmM1NzI3ODk1MDMwZDQyZmRiNDI3YjE1ODQ0N2YwZDcxMDYzYiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9jb2NvYS9JbWFn
ZUJ1ZmZlclNoYXJlYWJsZU1hcHBlZElPU3VyZmFjZUJhY2tlbmQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvY29jb2EvSW1hZ2VCdWZmZXJTaGFyZWFibGVN
YXBwZWRJT1N1cmZhY2VCYWNrZW5kLmNwcApAQCAtNzcsMTMgKzc3LDExIEBAIEltYWdlQnVmZmVy
QmFja2VuZEhhbmRsZSBJbWFnZUJ1ZmZlclNoYXJlYWJsZU1hcHBlZElPU3VyZmFjZUJhY2tlbmQ6
OmNyZWF0ZUltYWdlCiAgICAgcmV0dXJuIEltYWdlQnVmZmVyQmFja2VuZEhhbmRsZShtX3N1cmZh
Y2UtPmNyZWF0ZVNlbmRSaWdodCgpKTsKIH0KIAotI2lmIEhBVkUoSU9TVVJGQUNFX1NFVF9PV05F
UlNISVBfSURFTlRJVFkpCi12b2lkIEltYWdlQnVmZmVyU2hhcmVhYmxlTWFwcGVkSU9TdXJmYWNl
QmFja2VuZDo6c2V0UHJvY2Vzc093bmVyc2hpcCh0YXNrX2lkX3Rva2VuX3QgcHJvY2Vzc0lkZW50
aXR5VG9rZW4pCit2b2lkIEltYWdlQnVmZmVyU2hhcmVhYmxlTWFwcGVkSU9TdXJmYWNlQmFja2Vu
ZDo6c2V0T3duZXJzaGlwSWRlbnRpdHkoY29uc3QgV2ViQ29yZTo6UHJvY2Vzc0lkZW50aXR5JiBy
ZXNvdXJjZU93bmVyKQogewogICAgIEFTU0VSVChzdXJmYWNlKCkpOwotICAgIHN1cmZhY2UoKS0+
c2V0T3duZXJzaGlwSWRlbnRpdHkocHJvY2Vzc0lkZW50aXR5VG9rZW4pOworICAgIHN1cmZhY2Uo
KS0+c2V0T3duZXJzaGlwSWRlbnRpdHkocmVzb3VyY2VPd25lcik7CiB9Ci0jZW5kaWYKIAogfSAv
LyBuYW1lc3BhY2UgV2ViS2l0CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9HUFUvZ3JhcGhpY3MvY29jb2EvSW1hZ2VCdWZmZXJTaGFyZWFibGVNYXBwZWRJT1N1cmZhY2VC
YWNrZW5kLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL2NvY29hL0lt
YWdlQnVmZmVyU2hhcmVhYmxlTWFwcGVkSU9TdXJmYWNlQmFja2VuZC5oCmluZGV4IGUxNGE1NDBl
Y2RkZDQ3MTE5MDhhN2MxNzFjM2EyNWViZmQ4MDhkYmUuLmVhODUyNWM1MTUwMTU1YmQwM2I1ODAw
NzNkNWYyMTM4NjQ4YjBlMGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9H
UFUvZ3JhcGhpY3MvY29jb2EvSW1hZ2VCdWZmZXJTaGFyZWFibGVNYXBwZWRJT1N1cmZhY2VCYWNr
ZW5kLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9jb2NvYS9J
bWFnZUJ1ZmZlclNoYXJlYWJsZU1hcHBlZElPU3VyZmFjZUJhY2tlbmQuaApAQCAtMzEsNiArMzEs
MTAgQEAKICNpbmNsdWRlIDxXZWJDb3JlL0ltYWdlQnVmZmVySU9TdXJmYWNlQmFja2VuZC5oPgog
I2luY2x1ZGUgPHd0Zi9Jc29NYWxsb2MuaD4KIAorbmFtZXNwYWNlIFdlYkNvcmUgeworY2xhc3Mg
UHJvY2Vzc0lkZW50aXR5OworfQorCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogY2xhc3MgU2hhcmVh
YmxlQml0bWFwOwpAQCAtNDYsOSArNTAsNyBAQCBwdWJsaWM6CiAKICAgICBJbWFnZUJ1ZmZlckJh
Y2tlbmRIYW5kbGUgY3JlYXRlSW1hZ2VCdWZmZXJCYWNrZW5kSGFuZGxlKCkgY29uc3Q7CiAKLSNp
ZiBIQVZFKElPU1VSRkFDRV9TRVRfT1dORVJTSElQX0lERU5USVRZKQotICAgIHZvaWQgc2V0UHJv
Y2Vzc093bmVyc2hpcCh0YXNrX2lkX3Rva2VuX3QpOwotI2VuZGlmCisgICAgdm9pZCBzZXRPd25l
cnNoaXBJZGVudGl0eShjb25zdCBXZWJDb3JlOjpQcm9jZXNzSWRlbnRpdHkmKTsKIH07CiAKIH0g
Ly8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L2NvY29hL1dlYlByb2Nlc3NDb2NvYS5tbSBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2Nv
YS9XZWJQcm9jZXNzQ29jb2EubW0KaW5kZXggNmE3ZmM3M2U5YTFjMDFlZGU4OGNhYzU5MjYxMzli
MzkxNjRiZjdiOC4uMTA1MjZhMTBjNTAzOTMxYjg2NzIyZDgwYjVlZDk3ZjVkMzgzMGE0YSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1dlYlByb2Nlc3NDb2NvYS5t
bQorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvV2ViUHJvY2Vzc0NvY29hLm1t
CkBAIC0xMjI2LDE0ICsxMjI2LDcgQEAgdm9pZCBXZWJQcm9jZXNzOjp3YWl0Rm9yUGVuZGluZ1Bh
c3RlYm9hcmRXcml0ZXNUb0ZpbmlzaChjb25zdCBTdHJpbmcmIHBhc3RlYm9hcmQKICNpZiBFTkFC
TEUoR1BVX1BST0NFU1MpCiB2b2lkIFdlYlByb2Nlc3M6OnBsYXRmb3JtSW5pdGlhbGl6ZUdQVVBy
b2Nlc3NDb25uZWN0aW9uUGFyYW1ldGVycyhHUFVQcm9jZXNzQ29ubmVjdGlvblBhcmFtZXRlcnMm
IHBhcmFtZXRlcnMpCiB7Ci0jaWYgSEFWRShUQVNLX0lERU5USVRZX1RPS0VOKQotICAgIHRhc2tf
aWRfdG9rZW5fdCBpZGVudGl0eVRva2VuOwotICAgIGtlcm5fcmV0dXJuX3Qga3IgPSB0YXNrX2Ny
ZWF0ZV9pZGVudGl0eV90b2tlbihtYWNoX3Rhc2tfc2VsZigpLCAmaWRlbnRpdHlUb2tlbik7Ci0g
ICAgaWYgKGtyID09IEtFUk5fU1VDQ0VTUykKLSAgICAgICAgcGFyYW1ldGVycy53ZWJQcm9jZXNz
SWRlbnRpdHlUb2tlbiA9IE1hY2hTZW5kUmlnaHQ6OmFkb3B0KGlkZW50aXR5VG9rZW4pOwotICAg
IGVsc2UKLSAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoUHJvY2VzcywgIkNhbGwgdG8gdGFza19j
cmVhdGVfaWRlbnRpdHlfdG9rZW4oKSBmYWlsZWQ6ICV7cHJpdmF0ZX1zICgleCkiLCBtYWNoX2Vy
cm9yX3N0cmluZyhrciksIGtyKTsKLSNlbmRpZgorICAgIHBhcmFtZXRlcnMud2ViUHJvY2Vzc0lk
ZW50aXR5ID0gUHJvY2Vzc0lkZW50aXR5IHsgUHJvY2Vzc0lkZW50aXR5OjpDdXJyZW50UHJvY2Vz
cyB9OwogCiAgICAgcGFyYW1ldGVycy5vdmVycmlkZUxhbmd1YWdlcyA9IHVzZXJQcmVmZXJyZWRM
YW5ndWFnZXNPdmVycmlkZSgpOwogfQpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9v
bHMvQ2hhbmdlTG9nCmluZGV4IDcxNDE3ODJmNDM3ZWE5ZDk3MDFlODRmNTAwNTZiZTE3ZDgzMzBm
MmUuLmU0Nzc1MzQ3OGNjZDAxMGRjNDQwYmU3Mzc1MGRlYjhjNjA2MjllYjUgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAor
MjAyMS0xMi0wOCAgS2ltbW8gS2lubnVuZW4gIDxra2lubnVuZW5AYXBwbGUuY29tPgorCisgICAg
ICAgIElPU3VyZmFjZSBtZW1vcnkgYXR0cmlidXRpb24gaXMgaGFyZCB0byB1c2UgaW4gY29uc3Ry
dWN0b3JzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0y
MzI5ODgKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzg1NTQxOTE4PgorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFVwZGF0ZSBjb25zdHJ1Y3RvciBjYWxs
aW5nIGJhc2UgY2xhc3MgY29uc3RydWN0b3IsIGFkZCBlbXB0eQorICAgICAgICBQcm9jZXNzZUlk
ZW50aXR5LgorCisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL2NvY29hL1Rl
c3RHcmFwaGljc0NvbnRleHRHTENvY29hLm1tOgorCiAyMDIxLTEyLTA4ICBCcmFkeSBFaWRzb24g
IDxiZWlkc29uQGFwcGxlLmNvbT4KIAogICAgICAgICBBZGQgYWJpbGl0eSB0byBpbmplY3QgbWVz
c2FnZXMgaW50byB3ZWJwdXNoZApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9XZWJDb3JlL2NvY29hL1Rlc3RHcmFwaGljc0NvbnRleHRHTENvY29hLm1tIGIvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL2NvY29hL1Rlc3RHcmFwaGljc0NvbnRleHRHTENvY29h
Lm1tCmluZGV4IDg3NmM3NDQ4MDhmNDM2MWUzY2Q1MmY1M2ZmZDZmNjAwM2E4YTBmODcuLmE5MTYy
Nzk4ZTZmMDdmNDc4YmMxMmJiZDgzZmMwNDViNDMyMzczNzQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9jb2NvYS9UZXN0R3JhcGhpY3NDb250ZXh0R0xDb2Nv
YS5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvY29jb2EvVGVzdEdy
YXBoaWNzQ29udGV4dEdMQ29jb2EubW0KQEAgLTMyLDYgKzMyLDcgQEAKICNpbXBvcnQgPE1ldGFs
L01ldGFsLmg+CiAjaW1wb3J0IDxXZWJDb3JlL0NvbG9yLmg+CiAjaW1wb3J0IDxXZWJDb3JlL0dy
YXBoaWNzQ29udGV4dEdMQ29jb2EuaD4KKyNpbXBvcnQgPFdlYkNvcmUvUHJvY2Vzc0lkZW50aXR5
Lmg+CiAjaW1wb3J0IDxvcHRpb25hbD4KICNpbXBvcnQgPHd0Zi9IYXNoU2V0Lmg+CiAjaW1wb3J0
IDx3dGYvTWVtb3J5Rm9vdHByaW50Lmg+CkBAIC02Nyw3ICs2OCw3IEBAIHN0YXRpYyBSZWZQdHI8
V2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0R0xDb2NvYT4gY3JlYXRlRGVmYXVsdFRlc3RDb250ZXh0
KFdlYkNvcmU6CiAgICAgYXR0cmlidXRlcy5zdGVuY2lsID0gZmFsc2U7CiAgICAgYXR0cmlidXRl
cy5hbHBoYSA9IHRydWU7CiAgICAgYXR0cmlidXRlcy5wcmVzZXJ2ZURyYXdpbmdCdWZmZXIgPSBm
YWxzZTsKLSAgICBhdXRvIGNvbnRleHQgPSBXZWJDb3JlOjpHcmFwaGljc0NvbnRleHRHTENvY29h
OjpjcmVhdGUoV1RGTW92ZShhdHRyaWJ1dGVzKSk7CisgICAgYXV0byBjb250ZXh0ID0gV2ViQ29y
ZTo6R3JhcGhpY3NDb250ZXh0R0xDb2NvYTo6Y3JlYXRlKFdURk1vdmUoYXR0cmlidXRlcyksIHsg
fSk7CiAgICAgaWYgKCFjb250ZXh0KQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICBjb250
ZXh0LT5yZXNoYXBlKGNvbnRleHRTaXplLndpZHRoKCksIGNvbnRleHRTaXplLmhlaWdodCgpKTsK
QEAgLTExOSwxNSArMTIwLDE1IEBAIFRFU1RfRihHcmFwaGljc0NvbnRleHRHTENvY29hVGVzdCwg
TUFZQkVfTXVsdGlwbGVHUFVzRGlmZmVyZW50UG93ZXJQcmVmZXJlbmNlTWV0CiAgICAgV2ViQ29y
ZTo6R3JhcGhpY3NDb250ZXh0R0xBdHRyaWJ1dGVzIGF0dHJpYnV0ZXM7CiAgICAgYXR0cmlidXRl
cy51c2VNZXRhbCA9IHRydWU7CiAgICAgRVhQRUNUX0VRKGF0dHJpYnV0ZXMucG93ZXJQcmVmZXJl
bmNlLCBXZWJDb3JlOjpHcmFwaGljc0NvbnRleHRHTFBvd2VyUHJlZmVyZW5jZTo6RGVmYXVsdCk7
Ci0gICAgYXV0byBkZWZhdWx0Q29udGV4dCA9IFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dEdMQ29j
b2E6OmNyZWF0ZShXZWJDb3JlOjpHcmFwaGljc0NvbnRleHRHTEF0dHJpYnV0ZXMgeyBhdHRyaWJ1
dGVzIH0pOworICAgIGF1dG8gZGVmYXVsdENvbnRleHQgPSBXZWJDb3JlOjpHcmFwaGljc0NvbnRl
eHRHTENvY29hOjpjcmVhdGUoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0R0xBdHRyaWJ1dGVzIHsg
YXR0cmlidXRlcyB9LCB7IH0pOwogICAgIEFTU0VSVF9ORShkZWZhdWx0Q29udGV4dCwgbnVsbHB0
cik7CiAKICAgICBhdHRyaWJ1dGVzLnBvd2VyUHJlZmVyZW5jZSA9IFdlYkNvcmU6OkdyYXBoaWNz
Q29udGV4dEdMUG93ZXJQcmVmZXJlbmNlOjpMb3dQb3dlcjsKLSAgICBhdXRvIGxvd1Bvd2VyQ29u
dGV4dCA9IFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dEdMQ29jb2E6OmNyZWF0ZShXZWJDb3JlOjpH
cmFwaGljc0NvbnRleHRHTEF0dHJpYnV0ZXMgeyBhdHRyaWJ1dGVzIH0pOworICAgIGF1dG8gbG93
UG93ZXJDb250ZXh0ID0gV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0R0xDb2NvYTo6Y3JlYXRlKFdl
YkNvcmU6OkdyYXBoaWNzQ29udGV4dEdMQXR0cmlidXRlcyB7IGF0dHJpYnV0ZXMgfSwgeyB9KTsK
ICAgICBBU1NFUlRfTkUobG93UG93ZXJDb250ZXh0LCBudWxscHRyKTsKIAogICAgIGF0dHJpYnV0
ZXMucG93ZXJQcmVmZXJlbmNlID0gV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0R0xQb3dlclByZWZl
cmVuY2U6OkhpZ2hQZXJmb3JtYW5jZTsKLSAgICBhdXRvIGhpZ2hQZXJmb3JtYW5jZUNvbnRleHQg
PSBXZWJDb3JlOjpHcmFwaGljc0NvbnRleHRHTENvY29hOjpjcmVhdGUoV2ViQ29yZTo6R3JhcGhp
Y3NDb250ZXh0R0xBdHRyaWJ1dGVzIHsgYXR0cmlidXRlcyB9KTsKKyAgICBhdXRvIGhpZ2hQZXJm
b3JtYW5jZUNvbnRleHQgPSBXZWJDb3JlOjpHcmFwaGljc0NvbnRleHRHTENvY29hOjpjcmVhdGUo
V2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0R0xBdHRyaWJ1dGVzIHsgYXR0cmlidXRlcyB9LCB7IH0p
OwogICAgIEFTU0VSVF9ORShoaWdoUGVyZm9ybWFuY2VDb250ZXh0LCBudWxscHRyKTsKIAogICAg
IEVYUEVDVF9ORShsb3dQb3dlckNvbnRleHQtPmdldFN0cmluZyhXZWJDb3JlOjpHcmFwaGljc0Nv
bnRleHRHTDo6UkVOREVSRVIpLCBoaWdoUGVyZm9ybWFuY2VDb250ZXh0LT5nZXRTdHJpbmcoV2Vi
Q29yZTo6R3JhcGhpY3NDb250ZXh0R0w6OlJFTkRFUkVSKSk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>446510</attachid>
            <date>2021-12-09 02:47:29 -0800</date>
            <delta_ts>2021-12-09 03:33:59 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-232988-20211209124727.patch</filename>
            <type>text/plain</type>
            <size>54821</size>
            <attacher name="Kimmo Kinnunen">kkinnunen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg2NzY2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODdmNDkyZGNjMGMwYTU1
Nzk1NTFhMjk3MDJlYTFmMjM2ZmE0N2UxYS4uODEzZmQ0NDdiMzIyNTY2NDc3NDk0MjliZjI1ZjVl
Y2Q1YjZhMTdjZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUzIEBACisyMDIxLTEyLTA4ICBLaW1t
byBLaW5udW5lbiAgPGtraW5udW5lbkBhcHBsZS5jb20+CisKKyAgICAgICAgSU9TdXJmYWNlIG1l
bW9yeSBhdHRyaWJ1dGlvbiBpcyBoYXJkIHRvIHVzZSBpbiBjb25zdHJ1Y3RvcnMKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMjk4OAorICAgICAgICA8
cmRhcjovL3Byb2JsZW0vODU1NDE5MTg+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQ2hyaXMgRHVt
ZXouCisKKyAgICAgICAgQWRkIFdlYkNvcmU6OlByb2Nlc3NJZGVudGl0eSB0eXBlIHRoYXQgY2Fu
IGJlIHVzZWQgdG8gY29tbXVuaWNhdGUgbWVtb3J5IGF0dHJpYnV0aW9uLgorICAgICAgICBGb3Ig
bm9uLUNvY29hIHBvcnRzLCB0aGlzIGlzIG51bGxwdHIuCisgICAgICAgIFRoaXMgaXMgdXNlZCBp
biBXZWJDb3JlIHRvIHNldCB0aGUgbWVtb3J5IGF0dHJpYnV0aW9uIG9mIElPU3VyZmFjZSBhbmQg
b2JqZWN0cworICAgICAgICB0aGF0IGhvbGQgSU9TdXJmYWNlcy4KKyAgICAgICAgVGhpcyBpcyBp
bnN0YW50aWF0ZWQgaW4gV2ViS2l0LgorICAgICAgICBDdXJyZW50bHkgdGhlIG9ubHkgdXNlZnVs
IHdheSB0byBpbnN0YW50aWF0ZSBQcm9jZXNzSWRlbnRpdHkgaXMgYnkgcmVjZWl2aW5nCisgICAg
ICAgIHRoZSBQcm9jZXNzSWRlbnRpdHkgYXMgYSBtZXNzYWdlIGFuZCBjcmVhdGUgaXQgdGhpcyB3
YXkgZm9yIHRoZQorICAgICAgICBzZW5kZXIgcHJvY2Vzcy4KKworICAgICAgICBObyBuZXcgdGVz
dHMsIHJlZmFjdG9yLgorCisgICAgICAgICogSGVhZGVycy5jbWFrZToKKyAgICAgICAgKiBTb3Vy
Y2VzLnR4dDoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6Cisg
ICAgICAgICogcGxhdGZvcm0vTG9nZ2luZy5oOgorICAgICAgICBBZGQgV2ViQ29yZSBQcm9jZXNz
IGxvZyB0YWcgc2luY2UgdGhlIGNvZGUgbW92ZWQgZnJvbSBXZWJLaXQgdG8gUHJvY2Vzc0lkZW50
aXR5CisgICAgICAgIHVzZWQgdGhhdCB0YWcgdG8gbG9nLgorICAgICAgICAqIHBsYXRmb3JtL1By
b2Nlc3NJZGVudGl0eS5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6UHJvY2Vzc0lkZW50
aXR5OjpQcm9jZXNzSWRlbnRpdHkpOgorICAgICAgICAoV2ViQ29yZTo6UHJvY2Vzc0lkZW50aXR5
Ojp0YXNrSWRUb2tlbiBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpQcm9jZXNzSWRlbnRpdHk6
OnNlbmRSaWdodCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpQcm9jZXNzSWRlbnRpdHk6Om9w
ZXJhdG9yIGJvb2wgY29uc3QpOgorICAgICAgICAqIHBsYXRmb3JtL1Byb2Nlc3NJZGVudGl0eS5o
OiBBZGRlZC4KKyAgICAgICAgQWRkIHRoZSBQcm9jZXNzSWRlbnRpdHkgdHlwZSB0aGF0IGNhbiBi
ZSB1c2VkIHRvIGNvbW11bmljYXRlIG1lbW9yeSBhdHRyaWJ1dGlvbi4KKyAgICAgICAgKiBwbGF0
Zm9ybS9ncmFwaGljcy9SZW1vdGVWaWRlb1NhbXBsZS5oOgorICAgICAgICAoV2ViQ29yZTo6UmVt
b3RlVmlkZW9TYW1wbGU6OnNldE93bmVyc2hpcElkZW50aXR5KToKKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy9hbmdsZS9HcmFwaGljc0NvbnRleHRHTEFOR0xFLmg6CisgICAgICAgICogcGxh
dGZvcm0vZ3JhcGhpY3MvY29jb2EvR3JhcGhpY3NDb250ZXh0R0xDb2NvYS5oOgorICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0dyYXBoaWNzQ29udGV4dEdMQ29jb2EubW06CisgICAg
ICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHRHTENvY29hOjpjcmVhdGUpOgorICAgICAgICAo
V2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0R0xDb2NvYTo6R3JhcGhpY3NDb250ZXh0R0xDb2NvYSk6
CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHRHTEFOR0xFOjphbGxvY2F0ZUFuZEJp
bmREaXNwbGF5QnVmZmVyQmFja2luZyk6CisgICAgICAgIEFkZCBhbiBleGFtcGxlIHVzZSB3aGVy
ZSB0aGUgY29uc3RydWN0b3IgdGFrZXMgdGhlIG1lbW9yeSBhdHRyaWJ1dGlvbiB0b2tlbi4KKyAg
ICAgICAgVGhpcyBtYXkgYmUgbmVlZGVkIGluIHRoZSBmdXR1cmUgd2hlbiB0aGUgdG9rZW4gaXMg
dXNlZCBhcyBhIHBhcmFtZXRlciBpbgorICAgICAgICB0aGUgQU5HTEUgY29udGV4dCBjcmVhdGlv
bi4KKyAgICAgICAgVXNlIHRoZSB0b2tlbiBpbiBjcmVhdGluZyB0aGUgSU9TdXJmYWNlLiBUaGlz
IGZpeGVzIGEgYnVnIHdoZXJlIFdlYkdMCisgICAgICAgIGJhY2sgYnVmZmVycyB3b3VsZCBub3Qg
YmUgYXR0cmlidXRlZCB1bnRpbCB0aGV5IHdlcmUgc2VudCB0byBXUC4KKyAgICAgICAgKiBwbGF0
Zm9ybS9ncmFwaGljcy9jb2NvYS9JT1N1cmZhY2UuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy9jb2NvYS9JT1N1cmZhY2UubW06CisgICAgICAgIChXZWJDb3JlOjpJT1N1cmZhY2U6OnNl
dE93bmVyc2hpcElkZW50aXR5KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9X
ZWJQcm9jZXNzR3JhcGhpY3NDb250ZXh0R0xDb2NvYS5tbToKKwogMjAyMS0xMi0wOCAgTXlsZXMg
Qy4gTWF4ZmllbGQgIDxtbWF4ZmllbGRAYXBwbGUuY29tPgogCiAgICAgICAgIEZpeCBidWlsZCBh
ZnRlciByMjg2NzU5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDZhMzEwY2UyNDM2ZTZlNWQyMjljOGNiMzQ1MmRlZDQw
OGQ4NjE2MjMuLmI1NzZlODcyNmVkNjRkNzBkMGMyOTRhZTQyZDI1OTc0NjUxNzY4ZjcgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsNTQgQEAKKzIwMjEtMTItMDggIEtpbW1vIEtpbm51bmVuICA8a2tpbm51
bmVuQGFwcGxlLmNvbT4KKworICAgICAgICBJT1N1cmZhY2UgbWVtb3J5IGF0dHJpYnV0aW9uIGlz
IGhhcmQgdG8gdXNlIGluIGNvbnN0cnVjdG9ycworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMyOTg4CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS84NTU0
MTkxOD4KKworICAgICAgICBSZXZpZXdlZCBieSBDaHJpcyBEdW1lei4KKworICAgICAgICBSZW1v
dmUgaWZkZWZzIGFuZCBkaXJlY3QgdXNlIG9mIHRhc2tfaWRfdG9rZW5fdC4KKyAgICAgICAgSW5z
dGVhZCwgdXNlIFdlYkNvcmU6OlByb2Nlc3NJZGVudGlmaWVyLiBUaGlzIHdheSB0aGUKKyAgICAg
ICAgY3Jvc3MtcGxhdGZvcm0gY29kZSBpcyBlYXNpZXIgdG8gYXV0aG9yLgorCisgICAgICAgICog
R1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcDoKKyAgICAgICAgKFdlYktp
dDo6R1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6R1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcyk6
CisgICAgICAgICogR1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmg6CisgICAg
ICAgIChXZWJLaXQ6OkdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OndlYlByb2Nlc3NJZGVudGl0
eSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OkdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6Ondl
YlByb2Nlc3NJZGVudGl0eVRva2VuIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKiBHUFVQcm9j
ZXNzL2dyYXBoaWNzL1JlbW90ZUdyYXBoaWNzQ29udGV4dEdMQ29jb2EuY3BwOgorICAgICAgICAo
V2ViS2l0OjpSZW1vdGVHcmFwaGljc0NvbnRleHRHTENvY29hOjpSZW1vdGVHcmFwaGljc0NvbnRl
eHRHTENvY29hKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlR3JhcGhpY3NDb250ZXh0R0xDb2Nv
YTo6cGxhdGZvcm1Xb3JrUXVldWVJbml0aWFsaXplKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3Rl
R3JhcGhpY3NDb250ZXh0R0xDb2NvYTo6cHJlcGFyZUZvckRpc3BsYXkpOgorICAgICAgICAqIEdQ
VVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlSW1hZ2VCdWZmZXIuaDoKKyAgICAgICAgKFdlYktpdDo6
UmVtb3RlSW1hZ2VCdWZmZXI6OnNldE93bmVyc2hpcElkZW50aXR5KToKKyAgICAgICAgKFdlYktp
dDo6UmVtb3RlSW1hZ2VCdWZmZXI6OnNldFByb2Nlc3NPd25lcnNoaXApOiBEZWxldGVkLgorICAg
ICAgICAqIEdQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlbmRlcmluZ0JhY2tlbmQ6OlJlbW90ZVJlbmRlcmluZ0Jh
Y2tlbmQpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZW5kZXJpbmdCYWNrZW5kOjpjcmVhdGVJ
bWFnZUJ1ZmZlcldpdGhRdWFsaWZpZWRJZGVudGlmaWVyKToKKyAgICAgICAgKiBHUFVQcm9jZXNz
L2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQuaDoKKyAgICAgICAgKiBHUFVQcm9jZXNz
L3dlYnJ0Yy9MaWJXZWJSVENDb2RlY3NQcm94eS5tbToKKyAgICAgICAgKFdlYktpdDo6RnVuY3Rp
b248dm9pZCk6CisgICAgICAgICogU2hhcmVkL0dQVVByb2Nlc3NDb25uZWN0aW9uUGFyYW1ldGVy
cy5oOgorICAgICAgICAoV2ViS2l0OjpHUFVQcm9jZXNzQ29ubmVjdGlvblBhcmFtZXRlcnM6OmVu
Y29kZSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OkdQVVByb2Nlc3NDb25uZWN0aW9uUGFyYW1l
dGVyczo6ZGVjb2RlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVy
ZU1hbmFnZXJQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYUNhcHR1cmVNYW5h
Z2VyUHJveHk6OlNvdXJjZVByb3h5OjpTb3VyY2VQcm94eSk6CisgICAgICAgIChXZWJLaXQ6OlVz
ZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6OlNvdXJjZVByb3h5OjpzZXRTaG91bGRBcHBseVJv
dGF0aW9uKToKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6
Y3JlYXRlTWVkaWFTb3VyY2VGb3JDYXB0dXJlRGV2aWNlV2l0aENvbnN0cmFpbnRzKToKKyAgICAg
ICAgKFdlYktpdDo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6Y2xvbmUpOgorICAgICAg
ICAoV2ViS2l0OjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OjpTb3VyY2VQcm94eTo6c2V0
V2ViUHJvY2Vzc0lkZW50aXR5VG9rZW4pOiBEZWxldGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9D
b2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5Lmg6CisgICAgICAgIChXZWJLaXQ6OlVz
ZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6OkNvbm5lY3Rpb25Qcm94eTo6d2ViUHJvY2Vzc0lk
ZW50aXR5VG9rZW4gY29uc3QpOiBEZWxldGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9j
ZXNzUHJveHkuY3BwOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL0ltYWdlQnVm
ZmVyU2hhcmVhYmxlQml0bWFwQmFja2VuZC5oOgorICAgICAgICAoV2ViS2l0OjpJbWFnZUJ1ZmZl
clNoYXJlYWJsZUJpdG1hcEJhY2tlbmQ6OnNldE93bmVyc2hpcElkZW50aXR5KToKKyAgICAgICAg
KiBXZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9jb2NvYS9JbWFnZUJ1ZmZlclNoYXJlYWJsZU1hcHBl
ZElPU3VyZmFjZUJhY2tlbmQuY3BwOgorICAgICAgICAoV2ViS2l0OjpJbWFnZUJ1ZmZlclNoYXJl
YWJsZU1hcHBlZElPU3VyZmFjZUJhY2tlbmQ6OnNldE93bmVyc2hpcElkZW50aXR5KToKKyAgICAg
ICAgKFdlYktpdDo6SW1hZ2VCdWZmZXJTaGFyZWFibGVNYXBwZWRJT1N1cmZhY2VCYWNrZW5kOjpz
ZXRQcm9jZXNzT3duZXJzaGlwKTogRGVsZXRlZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9n
cmFwaGljcy9jb2NvYS9JbWFnZUJ1ZmZlclNoYXJlYWJsZU1hcHBlZElPU3VyZmFjZUJhY2tlbmQu
aDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL2NvY29hL1dlYlByb2Nlc3NDb2NvYS5tbToKKyAgICAg
ICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6cGxhdGZvcm1Jbml0aWFsaXplR1BVUHJvY2Vzc0Nvbm5l
Y3Rpb25QYXJhbWV0ZXJzKToKKwogMjAyMS0xMi0wOCAgQnJhZHkgRWlkc29uICA8YmVpZHNvbkBh
cHBsZS5jb20+CiAKICAgICAgICAgQWRkIGFiaWxpdHkgdG8gaW5qZWN0IG1lc3NhZ2VzIGludG8g
d2VicHVzaGQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UgYi9Tb3Vy
Y2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCmluZGV4IGM4YjYxMjM1NWZjYzBmYTA2NzQ5ZDcwMWNk
NDFjZDFmZWVjNDhiZGEuLjY4NWZhNWU0NmZiYzNlMWEwZmEzMWI5ZTU4NmU3M2NhMGUyNTY4YWQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKKysrIGIvU291cmNlL1dl
YkNvcmUvSGVhZGVycy5jbWFrZQpAQCAtMTI5MSw2ICsxMjkxLDcgQEAgc2V0KFdlYkNvcmVfUFJJ
VkFURV9GUkFNRVdPUktfSEVBREVSUwogICAgIHBsYXRmb3JtL1BvcHVwTWVudUNsaWVudC5oCiAg
ICAgcGxhdGZvcm0vUG9wdXBNZW51U3R5bGUuaAogICAgIHBsYXRmb3JtL1Byb2Nlc3NJZGVudGlm
aWVyLmgKKyAgICBwbGF0Zm9ybS9Qcm9jZXNzSWRlbnRpdHkuaAogICAgIHBsYXRmb3JtL1Byb2Nl
c3NRdWFsaWZpZWQuaAogICAgIHBsYXRmb3JtL1Byb21pc2VkQXR0YWNobWVudEluZm8uaAogICAg
IHBsYXRmb3JtL1B1YmxpY1N1ZmZpeC5oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Tb3Vy
Y2VzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CmluZGV4IGQ5NTdiY2RhOGFkYTRk
YWVmNDA5MjBhMzU3NzQzOWVhYjAwNjg0ZGMuLjQ1OWVkMWYwMTRkNjk0NjQxMDRlY2VkZDkxZGM0
NmNkZjU4MmZhNWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CisrKyBi
L1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CkBAIC0xODg2LDYgKzE4ODYsNyBAQCBwbGF0Zm9y
bS9QbGF0Zm9ybVN0cmF0ZWdpZXMuY3BwCiBwbGF0Zm9ybS9QbGF0Zm9ybVdoZWVsRXZlbnQuY3Bw
CiBwbGF0Zm9ybS9QcmV2aWV3Q29udmVydGVyLmNwcAogcGxhdGZvcm0vUHJvY2Vzc0lkZW50aWZp
ZXIuY3BwCitwbGF0Zm9ybS9Qcm9jZXNzSWRlbnRpdHkuY3BwCiBwbGF0Zm9ybS9SZWZlcnJlclBv
bGljeS5jcHAKIHBsYXRmb3JtL1JlbW90ZUNvbW1hbmRMaXN0ZW5lci5jcHAKIHBsYXRmb3JtL1J1
bnRpbWVBcHBsaWNhdGlvbkNoZWNrcy5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCAxZTk2ZWU2NTcyYWE0MjU4NTlkZDFlZTkz
MDMyZTY4OWZiMGI4NTUxLi5kOWM5YTVlNTI0NzEyOGI5ZmM1YTRkYTBmMzY5YjYyMzgwOWRjMGEx
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCkBAIC0yMzg4LDYgKzIzODgsNyBAQAogCQk3QkIzNEE0ODI1Mzc3NkNBMDAwMjlEMDggLyog
R3JhcGhpY3NDb250ZXh0R0xJbWFnZUV4dHJhY3Rvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0JCMzRBNDUyNTM3NzZDNjAwMDI5RDA4IC8qIEdyYXBo
aWNzQ29udGV4dEdMSW1hZ2VFeHRyYWN0b3IuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9
IChQcml2YXRlLCApOyB9OyB9OwogCQk3QkI2ODBCQTI1QkExQkU0MDAyQjg3MzggLyogR3JhcGhp
Y3NDaGVja3NNYWMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDdCQjY4MEI4MjVCQTFCRTQwMDJCODczOCAvKiBHcmFwaGljc0NoZWNrc01hYy5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTdCRERBMzFGMjc0
RkEwMjEwMDM4NjU5RSAvKiBHcmFwaGljc0NvbnRleHRHTENvY29hLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3QkREQTMxRDI3NEY5REE1MDAzODY1OUUg
LyogR3JhcGhpY3NDb250ZXh0R0xDb2NvYS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CisJCTdCRERBMzRDMjc1QTAxMzEwMDM4NjU5RSAvKiBQcm9jZXNz
SWRlbnRpdHkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDdCRERBMzQ5Mjc1QTAxMzAwMDM4NjU5RSAvKiBQcm9jZXNzSWRlbnRpdHkuaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk3QkU3NDI3MzgxRkE5MDZG
QkI0RjBGMkMgLyogSlNTVkdHcmFwaGljc0VsZW1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk1MEM0QzAyQkVEODkzNkY4MThFMkY5OSAvKiBKU1NW
R0dyYXBoaWNzRWxlbWVudC5oICovOyB9OwogCQk3QkZGNTlGNDI3NTc3MjY3MDA3NzNEMzkgLyog
RGlzcGxheUNvbmZpZ3VyYXRpb25Nb25pdG9yLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA3QkZGNTlFRjI3NTc3MUU4MDA3NzNEMzkgLyogRGlzcGxheUNv
bmZpZ3VyYXRpb25Nb25pdG9yLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0
ZSwgKTsgfTsgfTsKIAkJN0MwMjlDNkUyNDkzQzhGODAwMjY4MjA0IC8qIENvbG9yVHlwZXMuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdDMDI5QzZEMjQ5
M0M4RjgwMDI2ODIwNCAvKiBDb2xvclR5cGVzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMg
PSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTExNDI0LDYgKzExNDI1LDggQEAKIAkJN0JDRDQyREMy
NzA1Qzk0OTAwRUIyMTI3IC8qIEFOR0xFVXRpbGl0aWVzQ29jb2EuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
QU5HTEVVdGlsaXRpZXNDb2NvYS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3QkRE
QTMxQzI3NEY5REE0MDAzODY1OUUgLyogR3JhcGhpY3NDb250ZXh0R0xDb2NvYS5tbSAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IEdyYXBoaWNzQ29udGV4dEdMQ29jb2Eu
bW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdCRERBMzFEMjc0RjlEQTUwMDM4NjU5
RSAvKiBHcmFwaGljc0NvbnRleHRHTENvY29hLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IEdyYXBoaWNzQ29udGV4dEdMQ29jb2EuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJN0JEREEzNDkyNzVBMDEzMDAwMzg2NTlFIC8qIFByb2Nlc3NJZGVudGl0eS5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQcm9jZXNzSWRlbnRpdHkuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJN0JEREEzNEIyNzVBMDEzMDAwMzg2NTlFIC8qIFByb2Nlc3NJ
ZGVudGl0eS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBQcm9jZXNz
SWRlbnRpdHkuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3QkU3MjY1QjI1NzYz
QjhEMDBFODVEOTggLyogUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eUJhc2UuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eUJhc2UuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3QkZGNTlFRjI3NTc3MUU4MDA3NzNEMzkgLyogRGlz
cGxheUNvbmZpZ3VyYXRpb25Nb25pdG9yLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZXhwbGljaXRGaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmg7IGZpbGVFbmNvZGluZyA9IDQ7IHBh
dGggPSBEaXNwbGF5Q29uZmlndXJhdGlvbk1vbml0b3IuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJN0JGRjU5RjEyNzU3NzFFODAwNzczRDM5IC8qIERpc3BsYXlDb25maWd1cmF0aW9u
TW9uaXRvci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBEaXNwbGF5
Q29uZmlndXJhdGlvbk1vbml0b3IuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAt
Mjk4NzYsNiArMjk4NzksOCBAQAogCQkJCUExQURBRjdDMjM2MEZEM0UwMDlDQjc3NiAvKiBQcmV2
aWV3Q29udmVydGVyUHJvdmlkZXIuaCAqLywKIAkJCQk1MUY2NDVEMjFGRUNEQkM4MDBCNTRERUQg
LyogUHJvY2Vzc0lkZW50aWZpZXIuY3BwICovLAogCQkJCTUxRjY0NUQzMUZFQ0RCQzgwMEI1NERF
RCAvKiBQcm9jZXNzSWRlbnRpZmllci5oICovLAorCQkJCTdCRERBMzRCMjc1QTAxMzAwMDM4NjU5
RSAvKiBQcm9jZXNzSWRlbnRpdHkuY3BwICovLAorCQkJCTdCRERBMzQ5Mjc1QTAxMzAwMDM4NjU5
RSAvKiBQcm9jZXNzSWRlbnRpdHkuaCAqLywKIAkJCQkxQ0M1NEFGQjI3MEY5MkRBMDA1QkY4QkUg
LyogUHJvY2Vzc1F1YWxpZmllZC5oICovLAogCQkJCUY0N0E2MzNDMUZGNkZENTAwMDgxQjNDQyAv
KiBQcm9taXNlZEF0dGFjaG1lbnRJbmZvLmggKi8sCiAJCQkJMDA4MUZFRkQxNkIwQTI0NDAwOEFB
QTdBIC8qIFB1YmxpY1N1ZmZpeC5oICovLApAQCAtMzY0NDEsNiArMzY0NDYsNyBAQAogCQkJCUI3
MUZFNkRGMTEwOTFDQjMwMERBRUY3NyAvKiBQcmludENvbnRleHQuaCBpbiBIZWFkZXJzICovLAog
CQkJCTZCMEEwN0YyMjFGQTRCNUMwMEQ1NzM5MSAvKiBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudC5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJNTFGNjQ1RDUxRkVDREJDRTAwQjU0REVEIC8qIFByb2Nlc3NJ
ZGVudGlmaWVyLmggaW4gSGVhZGVycyAqLywKKwkJCQk3QkREQTM0QzI3NUEwMTMxMDAzODY1OUUg
LyogUHJvY2Vzc0lkZW50aXR5LmggaW4gSGVhZGVycyAqLywKIAkJCQlBOEVBN0VCQzBBMTk0NUQw
MDBBOEVGNUYgLyogUHJvY2Vzc2luZ0luc3RydWN0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQkx
Q0M1NEFGRTI3MEY5NkFFMDA1QkY4QkUgLyogUHJvY2Vzc1F1YWxpZmllZC5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJRTQyMDUwMTcyMTQxOTAxQjAwNjZFRjNCIC8qIFByb2Nlc3NXYXJtaW5nLmggaW4g
SGVhZGVycyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xvZ2dpbmcu
aCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xvZ2dpbmcuaAppbmRleCAzZmJlNDE3YmU5ODFi
NzVlNzc5ZGUyMzhmYzRiZTA1YTZkNzMwZmFhLi5kYzBmNTA5OGI4N2YxODQ1NTI1YmUzYzBiYTQx
Zjc2NzViMTQwNDdmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Mb2dnaW5n
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTG9nZ2luZy5oCkBAIC05NCw2ICs5NCw3
IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICBNKFBsdWdpbnMpIFwKICAgICBNKFBvcHVwQmxv
Y2tpbmcpIFwKICAgICBNKFByaXZhdGVDbGlja01lYXN1cmVtZW50KSBcCisgICAgTShQcm9jZXNz
KSBcCiAgICAgTShQcm9ncmVzcykgXAogICAgIE0oUmVtb3RlSW5zcGVjdG9yKSBcCiAgICAgTShS
ZXF1ZXN0QW5pbWF0aW9uRnJhbWUpIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL1Byb2Nlc3NJZGVudGl0eS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Qcm9jZXNz
SWRlbnRpdHkuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmRlOGQzMmFiNGVlMmEwMDJiYzVkMDYxMzIwNzdjNjY4
ODRiZjgwMzkKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Qcm9j
ZXNzSWRlbnRpdHkuY3BwCkBAIC0wLDAgKzEsNjUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICog
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZ
LCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQor
ICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiUHJv
Y2Vzc0lkZW50aXR5LmgiCisKKyNpbmNsdWRlICJMb2dnaW5nLmgiCisKKyNpZiBIQVZFKFRBU0tf
SURFTlRJVFlfVE9LRU4pCisjaW5jbHVkZSA8bWFjaC9tYWNoLmg+CisjZW5kaWYKKworbmFtZXNw
YWNlIFdlYkNvcmUgeworCitQcm9jZXNzSWRlbnRpdHk6OlByb2Nlc3NJZGVudGl0eShDdXJyZW50
UHJvY2Vzc1RhZykKK3sKKyNpZiBIQVZFKFRBU0tfSURFTlRJVFlfVE9LRU4pCisgICAgdGFza19p
ZF90b2tlbl90IGlkZW50aXR5VG9rZW47CisgICAga2Vybl9yZXR1cm5fdCBrciA9IHRhc2tfY3Jl
YXRlX2lkZW50aXR5X3Rva2VuKG1hY2hfdGFza19zZWxmKCksICZpZGVudGl0eVRva2VuKTsKKyAg
ICBpZiAoa3IgPT0gS0VSTl9TVUNDRVNTKQorICAgICAgICBtX3Rhc2tJZFRva2VuID0gTWFjaFNl
bmRSaWdodDo6YWRvcHQoaWRlbnRpdHlUb2tlbik7CisgICAgZWxzZQorICAgICAgICBSRUxFQVNF
X0xPR19FUlJPUihQcm9jZXNzLCAidGFza19jcmVhdGVfaWRlbnRpdHlfdG9rZW4oKSBmYWlsZWQ6
ICV7cHJpdmF0ZX1zICgleCkiLCBtYWNoX2Vycm9yX3N0cmluZyhrciksIGtyKTsKKyNlbmRpZgor
fQorCitQcm9jZXNzSWRlbnRpdHk6Om9wZXJhdG9yIGJvb2woKSBjb25zdAoreworI2lmIEhBVkUo
VEFTS19JREVOVElUWV9UT0tFTikKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8Ym9vbD4obV90YXNr
SWRUb2tlbik7CisjZWxzZQorICAgIHJldHVybiBmYWxzZTsKKyNlbmRpZgorfQorCisjaWYgSEFW
RShUQVNLX0lERU5USVRZX1RPS0VOKQorUHJvY2Vzc0lkZW50aXR5OjpQcm9jZXNzSWRlbnRpdHko
TWFjaFNlbmRSaWdodCYmIHRhc2tJZFRva2VuKQorICAgIDogbV90YXNrSWRUb2tlbihXVEZNb3Zl
KHRhc2tJZFRva2VuKSkKK3sKK30KKyNlbmRpZgorCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9Qcm9jZXNzSWRlbnRpdHkuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L1Byb2Nlc3NJZGVudGl0eS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmY0ZTcyMWFjYWFmZWRmNzg0NDY3ZGFhNWJj
NzViMTllZGQ4ODFjYzEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9Qcm9jZXNzSWRlbnRpdHkuaApAQCAtMCwwICsxLDkwIEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkK
KyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1Q
TEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlIDxvcHRp
b25hbD4KKworI2lmIEhBVkUoVEFTS19JREVOVElUWV9UT0tFTikKKyNpbmNsdWRlIDx3dGYvTWFj
aFNlbmRSaWdodC5oPgorI2Vsc2UKKyNpbmNsdWRlIDx2YXJpYW50PgorI2VuZGlmCisKK25hbWVz
cGFjZSBXZWJDb3JlIHsKKworLy8gT2JqZWN0IHRvIGFjY2VzcyBwcm9vZiBvZiBwcm9jZXNzIGlk
ZW50aXR5LgorLy8gUHJvY2Vzc0lkZW50aWZpZXIgaWRlbnRpZmllcyBhIHByb2Nlc3MuCisvLyBQ
cm9jZXNzSWRlbnRpdHkgZ3JhbnRzIGFjY2VzcyB0byB0aGUgaWRlbnRpdHkuCisvLyBFbXB0eSBQ
cm9jZXNzSWRlbnRpdHkgZG9lcyBub3QgZG8gYW55dGhpbmcuCitjbGFzcyBQcm9jZXNzSWRlbnRp
dHkgeworcHVibGljOgorICAgIC8vIENyZWF0ZXMgYW4gcHJvY2VzcyBpZGVudGl0eSBmb3IgY3Vy
cmVudCBwcm9jZXNzIG9yIGVtcHR5IG9uIGVycm9yLgorICAgIGVudW0gQ3VycmVudFByb2Nlc3NU
YWcgeyBDdXJyZW50UHJvY2VzcyB9OworICAgIFdFQkNPUkVfRVhQT1JUIGV4cGxpY2l0IFByb2Nl
c3NJZGVudGl0eShDdXJyZW50UHJvY2Vzc1RhZyk7CisKKyAgICAvLyBDcmVhdGVzIGFuIGVtcHR5
IHByb2Nlc3MgaWRlbnRpdHkgdGhhdCBkb2VzIG5vdCBncmFudCBhbnkgYWNjZXNzLgorICAgIFBy
b2Nlc3NJZGVudGl0eSgpID0gZGVmYXVsdDsKKworICAgIC8vIFJldHVybnMgdHJ1ZSBmb3IgYSBw
cm9jZXNzIGlkZW50aXR5IG9yIGZhbHNlIG9uIGVtcHR5IGlkZW50aXR5LgorICAgIFdFQkNPUkVf
RVhQT1JUIG9wZXJhdG9yIGJvb2woKSBjb25zdDsKKworI2lmIEhBVkUoVEFTS19JREVOVElUWV9U
T0tFTikKKyAgICB0YXNrX2lkX3Rva2VuX3QgdGFza0lkVG9rZW4oKSBjb25zdCB7IHJldHVybiBt
X3Rhc2tJZFRva2VuLnNlbmRSaWdodCgpOyB9CisjZW5kaWYKKworICAgIHRlbXBsYXRlPHR5cGVu
YW1lIEVuY29kZXI+IHZvaWQgZW5jb2RlKEVuY29kZXImKSBjb25zdDsKKyAgICB0ZW1wbGF0ZTx0
eXBlbmFtZSBEZWNvZGVyPiBzdGF0aWMgc3RkOjpvcHRpb25hbDxQcm9jZXNzSWRlbnRpdHk+IGRl
Y29kZShEZWNvZGVyJik7CisKK3ByaXZhdGU6CisjaWYgSEFWRShUQVNLX0lERU5USVRZX1RPS0VO
KQorICAgIFdFQkNPUkVfRVhQT1JUIFByb2Nlc3NJZGVudGl0eShNYWNoU2VuZFJpZ2h0JiYgdGFz
a0lkVG9rZW4pOworICAgIE1hY2hTZW5kUmlnaHQgbV90YXNrSWRUb2tlbjsKKyNlbmRpZgorfTsK
KwordGVtcGxhdGU8dHlwZW5hbWUgRW5jb2Rlcj4gdm9pZCBQcm9jZXNzSWRlbnRpdHk6OmVuY29k
ZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAoreworI2lmIEhBVkUoVEFTS19JREVOVElUWV9UT0tF
TikKKyAgICBlbmNvZGVyIDw8IG1fdGFza0lkVG9rZW47CisjZWxzZQorICAgIFVOVVNFRF9QQVJB
TShlbmNvZGVyKTsKKyNlbmRpZgorfQorCit0ZW1wbGF0ZTx0eXBlbmFtZSBEZWNvZGVyPiBzdGQ6
Om9wdGlvbmFsPFByb2Nlc3NJZGVudGl0eT4gUHJvY2Vzc0lkZW50aXR5OjpkZWNvZGUoRGVjb2Rl
ciYgZGVjb2RlcikKK3sKKyNpZiBIQVZFKFRBU0tfSURFTlRJVFlfVE9LRU4pCisgICAgc3RkOjpv
cHRpb25hbDxNYWNoU2VuZFJpZ2h0PiBpZGVudGl0eVNlbmRSaWdodDsKKyAgICBkZWNvZGVyID4+
IGlkZW50aXR5U2VuZFJpZ2h0OworICAgIGlmIChpZGVudGl0eVNlbmRSaWdodCkKKyAgICAgICAg
cmV0dXJuIFByb2Nlc3NJZGVudGl0eSB7IFdURk1vdmUoKmlkZW50aXR5U2VuZFJpZ2h0KSB9Owor
I2Vsc2UKKyAgICBVTlVTRURfUEFSQU0oZW5jb2Rlcik7CisjZW5kaWYKKyAgICByZXR1cm4gc3Rk
OjpudWxsb3B0OworfQorCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9SZW1vdGVWaWRlb1NhbXBsZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvUmVtb3RlVmlkZW9TYW1wbGUuaAppbmRleCBhNjE3MGIzMjhmYzQ0YWNlNjkzZGNkYjM1
ZWU0ZDNjZTY4NzMzOGExLi4wODFlMjM1NjVhY2M0ODQwYTgwNGM3ZDA3NGU2ZGYyMDU5ODM5ZjE3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9SZW1vdGVWaWRl
b1NhbXBsZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1JlbW90ZVZp
ZGVvU2FtcGxlLmgKQEAgLTM3LDYgKzM3LDggQEAgdHlwZWRlZiBzdHJ1Y3QgX19DVkJ1ZmZlciog
Q1ZQaXhlbEJ1ZmZlclJlZjsKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCitjbGFzcyBQcm9jZXNz
SWRlbnRpdHk7CisKIGNsYXNzIFJlbW90ZVZpZGVvU2FtcGxlIHsKIHB1YmxpYzoKICAgICBSZW1v
dGVWaWRlb1NhbXBsZSgpID0gZGVmYXVsdDsKQEAgLTQ4LDkgKzUwLDcgQEAgcHVibGljOgogICAg
IFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8UmVtb3RlVmlkZW9TYW1wbGU+
IGNyZWF0ZShSZXRhaW5QdHI8Q1ZQaXhlbEJ1ZmZlclJlZj4mJiwgTWVkaWFUaW1lJiYgcHJlc2Vu
dGF0aW9uVGltZSwgTWVkaWFTYW1wbGU6OlZpZGVvUm90YXRpb24gPSBNZWRpYVNhbXBsZTo6Vmlk
ZW9Sb3RhdGlvbjo6Tm9uZSk7CiAgICAgV0VCQ09SRV9FWFBPUlQgSU9TdXJmYWNlUmVmIHN1cmZh
Y2UoKSBjb25zdDsKIAotI2lmIEhBVkUoSU9TVVJGQUNFX1NFVF9PV05FUlNISVBfSURFTlRJVFkp
Ci0gICAgdm9pZCBzZXRPd25lcnNoaXBJZGVudGl0eSh0YXNrX2lkX3Rva2VuX3QgbmV3T3duZXIp
OwotI2VuZGlmCisgICAgdm9pZCBzZXRPd25lcnNoaXBJZGVudGl0eShjb25zdCBQcm9jZXNzSWRl
bnRpdHkmKTsKIAogICAgIGNvbnN0IE1lZGlhVGltZSYgdGltZSgpIGNvbnN0IHsgcmV0dXJuIG1f
dGltZTsgfQogICAgIHVpbnQzMl90IHZpZGVvRm9ybWF0KCkgY29uc3QgeyByZXR1cm4gbV92aWRl
b0Zvcm1hdDsgfQpAQCAtMTE5LDEzICsxMTksMTEgQEAgcHJpdmF0ZToKICAgICBib29sIG1fbWly
cm9yZWQgeyBmYWxzZSB9OwogfTsKIAotI2lmIEhBVkUoSU9TVVJGQUNFX1NFVF9PV05FUlNISVBf
SURFTlRJVFkpCi1pbmxpbmUgdm9pZCBSZW1vdGVWaWRlb1NhbXBsZTo6c2V0T3duZXJzaGlwSWRl
bnRpdHkodGFza19pZF90b2tlbl90IG5ld093bmVyKQoraW5saW5lIHZvaWQgUmVtb3RlVmlkZW9T
YW1wbGU6OnNldE93bmVyc2hpcElkZW50aXR5KGNvbnN0IFByb2Nlc3NJZGVudGl0eSYgcmVzb3Vy
Y2VPd25lcikKIHsKICAgICBpZiAobV9pb1N1cmZhY2UpCi0gICAgICAgIG1faW9TdXJmYWNlLT5z
ZXRPd25lcnNoaXBJZGVudGl0eShuZXdPd25lcik7CisgICAgICAgIG1faW9TdXJmYWNlLT5zZXRP
d25lcnNoaXBJZGVudGl0eShyZXNvdXJjZU93bmVyKTsKIH0KLSNlbmRpZgogCiB9CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2FuZ2xlL0dyYXBoaWNzQ29u
dGV4dEdMQU5HTEUuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2FuZ2xlL0dy
YXBoaWNzQ29udGV4dEdMQU5HTEUuaAppbmRleCA0M2Q1ZDI5MGRkNjgyY2E1OTY1NjAxMTBhNjZh
NWE3ZGE4Zjg1MmEwLi45NzRlYmIzNTFmYzYzZDM4NGZkNGE3Yzk5NzlhZjBkMjY0NTgzOWMwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hbmdsZS9HcmFwaGlj
c0NvbnRleHRHTEFOR0xFLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
YW5nbGUvR3JhcGhpY3NDb250ZXh0R0xBTkdMRS5oCkBAIC0zNiw2ICszNiw3IEBACiAjaWYgUExB
VEZPUk0oQ09DT0EpCiAjaW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0R0xJT1N1cmZhY2VTd2FwQ2hh
aW4uaCIKICNpbmNsdWRlICJJT1N1cmZhY2UuaCIKKyNpbmNsdWRlICJQcm9jZXNzSWRlbnRpdHku
aCIKICNlbmRpZgogCiAKQEAgLTQyNyw2ICs0MjgsNyBAQCBwcm90ZWN0ZWQ6CiAgICAgc3RkOjp1
bmlxdWVfcHRyPEV4dGVuc2lvbnNHTEFOR0xFPiBtX2V4dGVuc2lvbnM7CiAKICNpZiBQTEFURk9S
TShDT0NPQSkKKyAgICAvLyBGSVhNRTogTW92ZSB0aGVzZSB0byBHcmFwaGljc0NvbnRleHRHTENv
Y29hLgogICAgIEdyYXBoaWNzQ29udGV4dEdMSU9TdXJmYWNlU3dhcENoYWluIG1fc3dhcENoYWlu
OwogICAgIEVHTERpc3BsYXkgbV9kaXNwbGF5T2JqIHsgbnVsbHB0ciB9OwogICAgIFBsYXRmb3Jt
R3JhcGhpY3NDb250ZXh0R0wgbV9jb250ZXh0T2JqIHsgbnVsbHB0ciB9OwpAQCAtNDM2LDYgKzQz
OCw3IEBAIHByb3RlY3RlZDoKICAgICAvLyBXaGVuIHByZXNlcnZlRHJhd2luZ0J1ZmZlciA9PSB0
cnVlLCB0aGlzIGlzIGJsaXR0ZWQgdG8gZHVyaW5nIGRpc3BsYXkgcHJlcGFyZS4KICAgICBzdGQ6
OnVuaXF1ZV9wdHI8SU9TdXJmYWNlPiBtX2Rpc3BsYXlCdWZmZXJCYWNraW5nOwogICAgIHZvaWQq
IG1fZGlzcGxheUJ1ZmZlclBidWZmZXIgeyBudWxscHRyIH07CisgICAgUHJvY2Vzc0lkZW50aXR5
IG1fcmVzb3VyY2VPd25lcjsKICNlbmRpZgogI2lmIFVTRShDT09SRElOQVRFRF9HUkFQSElDUykK
ICAgICBHQ0dMdWludCBtX2NvbXBvc2l0b3JUZXh0dXJlIHsgMCB9OwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvR3JhcGhpY3NDb250ZXh0R0xDb2Nv
YS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvR3JhcGhpY3NDb250
ZXh0R0xDb2NvYS5oCmluZGV4IGE2NDhmY2QyZWM0ZjBiOWI1MWUzMDIzNjllMDEyNDliNTJkOWI0
ZTQuLjkxZTY0NzA4MDNhNTQ4YzYxYjk1ODY3NzRiY2E5NTUxNWQ5NWRkODggMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0dyYXBoaWNzQ29udGV4dEdM
Q29jb2EuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9HcmFw
aGljc0NvbnRleHRHTENvY29hLmgKQEAgLTQyLDkgKzQyLDExIEBAIGNsYXNzIEdyYXBoaWNzQ29u
dGV4dEdMQ1ZDb2NvYTsKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCitjbGFzcyBQcm9jZXNzSWRl
bnRpdHk7CisKIGNsYXNzIFdFQkNPUkVfRVhQT1JUIEdyYXBoaWNzQ29udGV4dEdMQ29jb2EgOiBw
dWJsaWMgR3JhcGhpY3NDb250ZXh0R0xBTkdMRSB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZlB0
cjxHcmFwaGljc0NvbnRleHRHTENvY29hPiBjcmVhdGUoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0
R0xBdHRyaWJ1dGVzJiYpOworICAgIHN0YXRpYyBSZWZQdHI8R3JhcGhpY3NDb250ZXh0R0xDb2Nv
YT4gY3JlYXRlKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dEdMQXR0cmlidXRlcyYmLCBQcm9jZXNz
SWRlbnRpdHkmJiByZXNvdXJjZU93bmVyKTsKICAgICB+R3JhcGhpY3NDb250ZXh0R0xDb2NvYSgp
OwogICAgIElPU3VyZmFjZSogZGlzcGxheUJ1ZmZlcigpOwogICAgIHZvaWQgbWFya0Rpc3BsYXlC
dWZmZXJJblVzZSgpOwpAQCAtNzYsOSArNzgsOCBAQCBwdWJsaWM6CiAgICAgdm9pZCB1cGRhdGVD
b250ZXh0T25EaXNwbGF5UmVjb25maWd1cmF0aW9uKCk7CiAjZW5kaWYKIHByb3RlY3RlZDoKLSAg
ICBHcmFwaGljc0NvbnRleHRHTENvY29hKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dEdMQXR0cmli
dXRlcyYmKTsKKyAgICBHcmFwaGljc0NvbnRleHRHTENvY29hKFdlYkNvcmU6OkdyYXBoaWNzQ29u
dGV4dEdMQXR0cmlidXRlcyYmLCBQcm9jZXNzSWRlbnRpdHkmJiByZXNvdXJjZU93bmVyKTsKICAg
ICBib29sIGlzVmFsaWQoKSBjb25zdDsKLQogI2lmIEVOQUJMRShWSURFTykKICAgICBzdGQ6OnVu
aXF1ZV9wdHI8R3JhcGhpY3NDb250ZXh0R0xDVkNvY29hPiBtX2N2OwogI2VuZGlmCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9HcmFwaGljc0NvbnRl
eHRHTENvY29hLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvR3Jh
cGhpY3NDb250ZXh0R0xDb2NvYS5tbQppbmRleCA1YWYzNWNjMzhhOGIyNzJmODgxNmZmZWJhYzNi
ZDczN2NiMDUwZDJlLi45YWIyZDc0NDEwYTA2YmMwZGU2NDE1MGU4ZTEyMDNlMDUzYWQ1OTRiIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9HcmFwaGlj
c0NvbnRleHRHTENvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2NvY29hL0dyYXBoaWNzQ29udGV4dEdMQ29jb2EubW0KQEAgLTM1LDYgKzM1LDcgQEAKICNpbXBv
cnQgIkdyYXBoaWNzQ29udGV4dEdMSU9TdXJmYWNlU3dhcENoYWluLmgiCiAjaW1wb3J0ICJHcmFw
aGljc0NvbnRleHRHTE9wZW5HTE1hbmFnZXIuaCIKICNpbXBvcnQgIkxvZ2dpbmcuaCIKKyNpbXBv
cnQgIlByb2Nlc3NJZGVudGl0eS5oIgogI2ltcG9ydCAiUnVudGltZUFwcGxpY2F0aW9uQ2hlY2tz
LmgiCiAjaW1wb3J0IDxDb3JlR3JhcGhpY3MvQ0dCaXRtYXBDb250ZXh0Lmg+CiAjaW1wb3J0IDxN
ZXRhbC9NZXRhbC5oPgpAQCAtMTkyLDE5ICsxOTMsMjIgQEAgc3RhdGljIGJvb2wgbmVlZHNFQUdM
T25NYWMoKQogfQogI2VuZGlmCiAKLVJlZlB0cjxHcmFwaGljc0NvbnRleHRHTENvY29hPiBHcmFw
aGljc0NvbnRleHRHTENvY29hOjpjcmVhdGUoR3JhcGhpY3NDb250ZXh0R0xBdHRyaWJ1dGVzJiYg
YXR0cmlidXRlcykKK1JlZlB0cjxHcmFwaGljc0NvbnRleHRHTENvY29hPiBHcmFwaGljc0NvbnRl
eHRHTENvY29hOjpjcmVhdGUoR3JhcGhpY3NDb250ZXh0R0xBdHRyaWJ1dGVzJiYgYXR0cmlidXRl
cywgUHJvY2Vzc0lkZW50aXR5JiYgcmVzb3VyY2VPd25lcikKIHsKLSAgICBhdXRvIGNvbnRleHQg
PSBhZG9wdFJlZigqbmV3IEdyYXBoaWNzQ29udGV4dEdMQ29jb2EoV1RGTW92ZShhdHRyaWJ1dGVz
KSkpOworICAgIGF1dG8gY29udGV4dCA9IGFkb3B0UmVmKCpuZXcgR3JhcGhpY3NDb250ZXh0R0xD
b2NvYShXVEZNb3ZlKGF0dHJpYnV0ZXMpLCBXVEZNb3ZlKHJlc291cmNlT3duZXIpKSk7CiAgICAg
aWYgKCFjb250ZXh0LT5pc1ZhbGlkKCkpCiAgICAgICAgIHJldHVybiBudWxscHRyOwogICAgIHJl
dHVybiBjb250ZXh0OwogfQogCi1HcmFwaGljc0NvbnRleHRHTENvY29hOjpHcmFwaGljc0NvbnRl
eHRHTENvY29hKEdyYXBoaWNzQ29udGV4dEdMQXR0cmlidXRlcyYmIGNyZWF0aW9uQXR0cmlidXRl
cykKK0dyYXBoaWNzQ29udGV4dEdMQ29jb2E6OkdyYXBoaWNzQ29udGV4dEdMQ29jb2EoR3JhcGhp
Y3NDb250ZXh0R0xBdHRyaWJ1dGVzJiYgY3JlYXRpb25BdHRyaWJ1dGVzLCBQcm9jZXNzSWRlbnRp
dHkmJiByZXNvdXJjZU93bmVyKQogICAgIDogR3JhcGhpY3NDb250ZXh0R0xBTkdMRShXVEZNb3Zl
KGNyZWF0aW9uQXR0cmlidXRlcykpCiB7CiAgICAgaWYgKCFpc1ZhbGlkKCkpCiAgICAgICAgIHJl
dHVybjsKKyAgICAvLyBGSVhNRTogTW92ZSB0aGlzIHRvIGluaXRpYWxpemVyIGxpc3Qgb25jZSBt
X3Jlc291cmNlT3duZXIgbW92ZXMgdG8gR3JhcGhpY3NDb250ZXh0R0xDb2NvYS4KKyAgICBtX3Jl
c291cmNlT3duZXIgPSBXVEZNb3ZlKHJlc291cmNlT3duZXIpOworCiAjaWYgUExBVEZPUk0oTUFD
KQogICAgIGF1dG8gYXR0cmlidXRlcyA9IGNvbnRleHRBdHRyaWJ1dGVzKCk7CiAgICAgaWYgKCFh
dHRyaWJ1dGVzLnVzZU1ldGFsICYmIGF0dHJpYnV0ZXMuZWZmZWN0aXZlUG93ZXJQcmVmZXJlbmNl
KCkgPT0gR3JhcGhpY3NDb250ZXh0R0xQb3dlclByZWZlcmVuY2U6OkhpZ2hQZXJmb3JtYW5jZSkK
QEAgLTU1Nyw3ICs1NjEsOCBAQCBib29sIEdyYXBoaWNzQ29udGV4dEdMQU5HTEU6OmFsbG9jYXRl
QW5kQmluZERpc3BsYXlCdWZmZXJCYWNraW5nKCkKICAgICBhdXRvIGJhY2tpbmcgPSBJT1N1cmZh
Y2U6OmNyZWF0ZShnZXRJbnRlcm5hbEZyYW1lYnVmZmVyU2l6ZSgpLCBEZXN0aW5hdGlvbkNvbG9y
U3BhY2U6OlNSR0IoKSk7CiAgICAgaWYgKCFiYWNraW5nKQogICAgICAgICByZXR1cm4gZmFsc2U7
Ci0KKyAgICBpZiAobV9yZXNvdXJjZU93bmVyKQorICAgICAgICBiYWNraW5nLT5zZXRPd25lcnNo
aXBJZGVudGl0eShtX3Jlc291cmNlT3duZXIpOwogICAgIGJhY2tpbmctPm1pZ3JhdGVDb2xvclNw
YWNlVG9Qcm9wZXJ0aWVzKCk7CiAKICAgICBjb25zdCBib29sIHVzaW5nQWxwaGEgPSBjb250ZXh0
QXR0cmlidXRlcygpLmFscGhhOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY29jb2EvSU9TdXJmYWNlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jb2NvYS9JT1N1cmZhY2UuaAppbmRleCA1NjUyNDc4MjJkYmEyOWY3NjAwYjk0MDdlNmY0
YWNiOGMxYTA2YWFjLi4xZTljNzMyOGRkYzc1NmJjNDZlMjhmMWE1ZWE0YWY1NDNjNGFhNmJmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9JT1N1cmZh
Y2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9JT1N1cmZh
Y2UuaApAQCAtNDYsNiArNDYsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBHcmFwaGlj
c0NvbnRleHQ7CiBjbGFzcyBIb3N0V2luZG93OwogY2xhc3MgSW1hZ2VCdWZmZXI7CitjbGFzcyBQ
cm9jZXNzSWRlbnRpdHk7CiAKIGVudW0gY2xhc3MgUGl4ZWxGb3JtYXQgOiB1aW50OF90OwogZW51
bSBjbGFzcyBWb2xhdGlsaXR5U3RhdGUgOiB1aW50OF90OwpAQCAtMTU5LDkgKzE2MCw3IEBAIHB1
YmxpYzoKICAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgdm9pZCBjb252ZXJ0VG9Gb3JtYXQoc3Rk
Ojp1bmlxdWVfcHRyPFdlYkNvcmU6OklPU3VyZmFjZT4mJiBpblN1cmZhY2UsIEZvcm1hdCwgRnVu
Y3Rpb248dm9pZChzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6SU9TdXJmYWNlPik+JiYpOwogI2Vu
ZGlmIC8vIEhBVkUoSU9TVVJGQUNFX0FDQ0VMRVJBVE9SKQogCi0jaWYgSEFWRShJT1NVUkZBQ0Vf
U0VUX09XTkVSU0hJUF9JREVOVElUWSkKLSAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldE93bmVy
c2hpcElkZW50aXR5KHRhc2tfaWRfdG9rZW5fdCBuZXdPd25lcik7Ci0jZW5kaWYKKyAgICBXRUJD
T1JFX0VYUE9SVCB2b2lkIHNldE93bmVyc2hpcElkZW50aXR5KGNvbnN0IFByb2Nlc3NJZGVudGl0
eSYpOwogCiAgICAgdm9pZCBtaWdyYXRlQ29sb3JTcGFjZVRvUHJvcGVydGllcygpOwogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9JT1N1cmZhY2Uu
bW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9JT1N1cmZhY2UubW0K
aW5kZXggMDExMTY1Y2UxMWFiY2U2NzVjNGI0N2JmOTE1ZDRjODFlNmNlZTk5NS4uY2JiM2YyYmRk
NGMzY2NiNGZkYzk4ZjZkY2U5ZjE0NjkwYmRlZTAxMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvSU9TdXJmYWNlLm1tCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0lPU3VyZmFjZS5tbQpAQCAtMzQsNiArMzQsNyBA
QAogI2ltcG9ydCAiSW1hZ2VCdWZmZXIuaCIKICNpbXBvcnQgIkxvZ2dpbmcuaCIKICNpbXBvcnQg
IlBsYXRmb3JtU2NyZWVuLmgiCisjaW1wb3J0ICJQcm9jZXNzSWRlbnRpdHkuaCIKICNpbXBvcnQg
PHBhbC9zcGkvY2cvQ29yZUdyYXBoaWNzU1BJLmg+CiAjaW1wb3J0IDx3dGYvQXNzZXJ0aW9ucy5o
PgogI2ltcG9ydCA8d3RmL01hY2hTZW5kUmlnaHQuaD4KQEAgLTQ4NCwxNCArNDg1LDE4IEBAIHZv
aWQgSU9TdXJmYWNlOjpjb252ZXJ0VG9Gb3JtYXQoc3RkOjp1bmlxdWVfcHRyPElPU3VyZmFjZT4m
JiBpblN1cmZhY2UsIEZvcm1hdCBmCiAKICNlbmRpZiAvLyBIQVZFKElPU1VSRkFDRV9BQ0NFTEVS
QVRPUikKIAotI2lmIEhBVkUoSU9TVVJGQUNFX1NFVF9PV05FUlNISVBfSURFTlRJVFkpCi12b2lk
IElPU3VyZmFjZTo6c2V0T3duZXJzaGlwSWRlbnRpdHkodGFza19pZF90b2tlbl90IG5ld093bmVy
KQordm9pZCBJT1N1cmZhY2U6OnNldE93bmVyc2hpcElkZW50aXR5KGNvbnN0IFByb2Nlc3NJZGVu
dGl0eSYgcmVzb3VyY2VPd25lcikKIHsKLSAgICBhdXRvIHJlc3VsdCA9IElPU3VyZmFjZVNldE93
bmVyc2hpcElkZW50aXR5KG1fc3VyZmFjZS5nZXQoKSwgbmV3T3duZXIsIGtJT1N1cmZhY2VNZW1v
cnlMZWRnZXJUYWdHcmFwaGljcywgMCk7CisgICAgQVNTRVJUKHJlc291cmNlT3duZXIpOworI2lm
IEhBVkUoSU9TVVJGQUNFX1NFVF9PV05FUlNISVBfSURFTlRJVFkpICYmIEhBVkUoVEFTS19JREVO
VElUWV9UT0tFTikKKyAgICB0YXNrX2lkX3Rva2VuX3Qgb3duZXJUYXNrSWRUb2tlbiA9IHJlc291
cmNlT3duZXIudGFza0lkVG9rZW4oKTsKKyAgICBhdXRvIHJlc3VsdCA9IElPU3VyZmFjZVNldE93
bmVyc2hpcElkZW50aXR5KG1fc3VyZmFjZS5nZXQoKSwgb3duZXJUYXNrSWRUb2tlbiwga0lPU3Vy
ZmFjZU1lbW9yeUxlZGdlclRhZ0dyYXBoaWNzLCAwKTsKICAgICBpZiAocmVzdWx0ICE9IGtJT1Jl
dHVyblN1Y2Nlc3MpCi0gICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKElPU3VyZmFjZSwgIklPU3Vy
ZmFjZTo6c2V0T3duZXJzaGlwSWRlbnRpdHk6IEZhaWxlZCB0byBjbGFpbSBvd25lcnNoaXAgb2Yg
SU9TdXJmYWNlICVwLCBuZXdPd25lcjogJWQsIGVycm9yOiAlZCIsIG1fc3VyZmFjZS5nZXQoKSwg
KGludCluZXdPd25lciwgcmVzdWx0KTsKLX0KKyAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoSU9T
dXJmYWNlLCAiSU9TdXJmYWNlOjpzZXRPd25lcnNoaXBJZGVudGl0eTogRmFpbGVkIHRvIGNsYWlt
IG93bmVyc2hpcCBvZiBJT1N1cmZhY2UgJXAsIHRhc2sgaWQgdG9rZW46ICVkLCBlcnJvcjogJWQi
LCBtX3N1cmZhY2UuZ2V0KCksIChpbnQpb3duZXJUYXNrSWRUb2tlbiwgcmVzdWx0KTsKKyNlbHNl
CisgICAgVU5VU0VEX1BBUkFNKHJlc291cmNlT3duZXIpOwogI2VuZGlmCit9CiAKIHZvaWQgSU9T
dXJmYWNlOjptaWdyYXRlQ29sb3JTcGFjZVRvUHJvcGVydGllcygpCiB7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9XZWJQcm9jZXNzR3JhcGhpY3ND
b250ZXh0R0xDb2NvYS5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29h
L1dlYlByb2Nlc3NHcmFwaGljc0NvbnRleHRHTENvY29hLm1tCmluZGV4IDI1NDI2MjMwZGZlZGFk
MmM1ZWI5MTA0MjRhMDhhNzJlMzcxN2IyZDcuLjhkNWQyNWFiMTBiNDVlM2Y5YTZlODM4YWUxMDk0
MWU2ZmMwZTVlMzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2NvY29hL1dlYlByb2Nlc3NHcmFwaGljc0NvbnRleHRHTENvY29hLm1tCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1dlYlByb2Nlc3NHcmFwaGljc0NvbnRleHRH
TENvY29hLm1tCkBAIC0yOSw2ICsyOSw3IEBACiAjaWYgRU5BQkxFKFdFQkdMKQogI2ltcG9ydCAi
R3JhcGhpY3NDb250ZXh0R0xDb2NvYS5oIiAvLyBOT0xJTlQKICNpbXBvcnQgIkdyYXBoaWNzQ29u
dGV4dEdMT3BlbkdMTWFuYWdlci5oIgorI2ltcG9ydCAiUHJvY2Vzc0lkZW50aXR5LmgiCiAjaW1w
b3J0ICJXZWJHTExheWVyLmgiCiAjaW1wb3J0IDx3dGYvQmxvY2tPYmpDRXhjZXB0aW9ucy5oPgog
CkBAIC03Nyw3ICs3OCw3IEBAIHByaXZhdGU6CiB9OwogCiBXZWJQcm9jZXNzR3JhcGhpY3NDb250
ZXh0R0xDb2NvYTo6V2ViUHJvY2Vzc0dyYXBoaWNzQ29udGV4dEdMQ29jb2EoR3JhcGhpY3NDb250
ZXh0R0xBdHRyaWJ1dGVzJiYgYXR0cmlidXRlcykKLSAgICA6IEdyYXBoaWNzQ29udGV4dEdMQ29j
b2EoV1RGTW92ZShhdHRyaWJ1dGVzKSkKKyAgICA6IEdyYXBoaWNzQ29udGV4dEdMQ29jb2EoV1RG
TW92ZShhdHRyaWJ1dGVzKSwgeyB9KQogICAgICwgbV93ZWJHTExheWVyKGNyZWF0ZVdlYkdMTGF5
ZXIoY29udGV4dEF0dHJpYnV0ZXMoKSkpCiB7CiAjaWYgUExBVEZPUk0oTUFDKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3Bw
IGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3Bw
CmluZGV4IDkyYzNjYzk3Yjc2NjY0NmUwNjg0MDI4MmIxMGU4ZGYwNTI2YjYwY2UuLjJjYTkwZjUw
YzNiMWU5YTYxYWY3MWU3NTRjNTgwZTNjN2NjNTY0Y2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvR1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L0dQVVByb2Nlc3MvR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAKQEAgLTIwNywx
MiArMjA3LDExIEBAIHByaXZhdGU6CiAgICAgICAgIG1fcHJvY2Vzcy5zdGFydENhcHR1cmluZ0F1
ZGlvKCk7CiAgICAgfQogI2VuZGlmCi0jaWYgSEFWRShJT1NVUkZBQ0VfU0VUX09XTkVSU0hJUF9J
REVOVElUWSkKLSAgICBzdGQ6Om9wdGlvbmFsPHRhc2tfaWRfdG9rZW5fdD4gd2ViUHJvY2Vzc0lk
ZW50aXR5VG9rZW4oKSBjb25zdCBmaW5hbAorCisgICAgY29uc3QgUHJvY2Vzc0lkZW50aXR5JiBy
ZXNvdXJjZU93bmVyKCkgY29uc3QgZmluYWwKICAgICB7Ci0gICAgICAgIHJldHVybiBtX3Byb2Nl
c3Mud2ViUHJvY2Vzc0lkZW50aXR5VG9rZW4oKTsKKyAgICAgICAgcmV0dXJuIG1fcHJvY2Vzcy53
ZWJQcm9jZXNzSWRlbnRpdHkoKTsKICAgICB9Ci0jZW5kaWYKIAogICAgIEdQVUNvbm5lY3Rpb25U
b1dlYlByb2Nlc3MmIG1fcHJvY2VzczsKIH07CkBAIC0yMjgsOSArMjI3LDcgQEAgR1BVQ29ubmVj
dGlvblRvV2ViUHJvY2Vzczo6R1BVQ29ubmVjdGlvblRvV2ViUHJvY2VzcyhHUFVQcm9jZXNzJiBn
cHVQcm9jZXNzLCBXZWIKICAgICA6IG1fY29ubmVjdGlvbihJUEM6OkNvbm5lY3Rpb246OmNyZWF0
ZVNlcnZlckNvbm5lY3Rpb24oY29ubmVjdGlvbklkZW50aWZpZXIsICp0aGlzKSkKICAgICAsIG1f
Z3B1UHJvY2VzcyhncHVQcm9jZXNzKQogICAgICwgbV93ZWJQcm9jZXNzSWRlbnRpZmllcih3ZWJQ
cm9jZXNzSWRlbnRpZmllcikKLSNpZiBIQVZFKFRBU0tfSURFTlRJVFlfVE9LRU4pCi0gICAgLCBt
X3dlYlByb2Nlc3NJZGVudGl0eVRva2VuKFdURk1vdmUocGFyYW1ldGVycy53ZWJQcm9jZXNzSWRl
bnRpdHlUb2tlbikpCi0jZW5kaWYKKyAgICAsIG1fd2ViUHJvY2Vzc0lkZW50aXR5KFdURk1vdmUo
cGFyYW1ldGVycy53ZWJQcm9jZXNzSWRlbnRpdHkpKQogICAgICwgbV9yZW1vdGVNZWRpYVBsYXll
ck1hbmFnZXJQcm94eShtYWtlVW5pcXVlUmVmPFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5
PigqdGhpcykpCiAgICAgLCBtX3Nlc3Npb25JRChzZXNzaW9uSUQpCiAjaWYgUExBVEZPUk0oQ09D
T0EpICYmIFVTRShMSUJXRUJSVEMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nl
c3MvR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNz
L0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaAppbmRleCBlMzkyM2RiNTczNDgxYzhlNjlhOWE3
NjEyNjMyNzM3NzA5ZGQ5N2ZhLi5iNDU5MDdmMjU0MzhlM2Q3Yjg4ZjQ3NDZjYzQ4MDhlZjRmNDI3
Y2ZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvR1BVQ29ubmVjdGlvblRv
V2ViUHJvY2Vzcy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9u
VG9XZWJQcm9jZXNzLmgKQEAgLTQxLDYgKzQxLDcgQEAKICNpbmNsdWRlIDxXZWJDb3JlL05vd1Bs
YXlpbmdNYW5hZ2VyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9QYWdlSWRlbnRpZmllci5oPgogI2lu
Y2x1ZGUgPFdlYkNvcmUvUHJvY2Vzc0lkZW50aWZpZXIuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1By
b2Nlc3NJZGVudGl0eS5oPgogI2luY2x1ZGUgPHBhbC9TZXNzaW9uSUQuaD4KICNpbmNsdWRlIDx3
dGYvTG9nZ2VyLmg+CiAjaW5jbHVkZSA8d3RmL01hY2hTZW5kUmlnaHQuaD4KQEAgLTE1NSwxMCAr
MTU2LDcgQEAgcHVibGljOgogICAgIHZvaWQgZGlzcGF0Y2hEaXNwbGF5V2FzUmVjb25maWd1cmVk
Rm9yVGVzdGluZygpIHsgZGlzcGF0Y2hEaXNwbGF5V2FzUmVjb25maWd1cmVkKCk7IH07CiAjZW5k
aWYKIAotI2lmIEhBVkUoVEFTS19JREVOVElUWV9UT0tFTikKLSAgICB0YXNrX2lkX3Rva2VuX3Qg
d2ViUHJvY2Vzc0lkZW50aXR5VG9rZW4oKSBjb25zdCB7IHJldHVybiBzdGF0aWNfY2FzdDx0YXNr
X2lkX3Rva2VuX3Q+KG1fd2ViUHJvY2Vzc0lkZW50aXR5VG9rZW4uc2VuZFJpZ2h0KCkpOyB9Ci0j
ZW5kaWYKLQorICAgIGNvbnN0IFdlYkNvcmU6OlByb2Nlc3NJZGVudGl0eSYgd2ViUHJvY2Vzc0lk
ZW50aXR5KCkgY29uc3QgeyByZXR1cm4gbV93ZWJQcm9jZXNzSWRlbnRpdHk7IH0KICNpZiBFTkFC
TEUoRU5DUllQVEVEX01FRElBKQogICAgIFJlbW90ZUNETUZhY3RvcnlQcm94eSYgY2RtRmFjdG9y
eVByb3h5KCk7CiAjZW5kaWYKQEAgLTI4Myw5ICsyODEsNyBAQCBwcml2YXRlOgogICAgIElQQzo6
TWVzc2FnZVJlY2VpdmVyTWFwIG1fbWVzc2FnZVJlY2VpdmVyTWFwOwogICAgIFJlZjxHUFVQcm9j
ZXNzPiBtX2dwdVByb2Nlc3M7CiAgICAgY29uc3QgV2ViQ29yZTo6UHJvY2Vzc0lkZW50aWZpZXIg
bV93ZWJQcm9jZXNzSWRlbnRpZmllcjsKLSNpZiBIQVZFKFRBU0tfSURFTlRJVFlfVE9LRU4pCi0g
ICAgTWFjaFNlbmRSaWdodCBtX3dlYlByb2Nlc3NJZGVudGl0eVRva2VuOwotI2VuZGlmCisgICAg
Y29uc3QgV2ViQ29yZTo6UHJvY2Vzc0lkZW50aXR5IG1fd2ViUHJvY2Vzc0lkZW50aXR5OwogI2lm
IEVOQUJMRShXRUJfQVVESU8pCiAgICAgc3RkOjp1bmlxdWVfcHRyPFJlbW90ZUF1ZGlvRGVzdGlu
YXRpb25NYW5hZ2VyPiBtX3JlbW90ZUF1ZGlvRGVzdGluYXRpb25NYW5hZ2VyOwogI2VuZGlmCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlR3JhcGhp
Y3NDb250ZXh0R0xDb2NvYS5jcHAgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3Mv
UmVtb3RlR3JhcGhpY3NDb250ZXh0R0xDb2NvYS5jcHAKaW5kZXggMTBhNTM2Mjk5Y2YyM2ViOWY4
NmY1NzI3ZTg1MjM4M2NlOGEwNDAwOC4uOWQ3NjdlYzIxNjUzZTcwZWU0OThiNGU4OTNlZjNkNzc4
YTMwMDRkYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1Jl
bW90ZUdyYXBoaWNzQ29udGV4dEdMQ29jb2EuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJv
Y2Vzcy9ncmFwaGljcy9SZW1vdGVHcmFwaGljc0NvbnRleHRHTENvY29hLmNwcApAQCAtMjksNiAr
MjksNyBAQAogI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykgJiYgRU5BQkxFKFdFQkdMKSAmJiBQTEFU
Rk9STShDT0NPQSkKIAogI2luY2x1ZGUgIkdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaCIKKyNp
bmNsdWRlIDxXZWJDb3JlL1Byb2Nlc3NJZGVudGl0eS5oPgogI2luY2x1ZGUgPHd0Zi9NYWNoU2Vu
ZFJpZ2h0Lmg+CiAKIG5hbWVzcGFjZSBXZWJLaXQgewpAQCAtNDUsOSArNDYsNyBAQCBwdWJsaWM6
CiAgICAgdm9pZCBwbGF0Zm9ybVdvcmtRdWV1ZUluaXRpYWxpemUoV2ViQ29yZTo6R3JhcGhpY3ND
b250ZXh0R0xBdHRyaWJ1dGVzJiYpIGZpbmFsOwogICAgIHZvaWQgcHJlcGFyZUZvckRpc3BsYXko
Q29tcGxldGlvbkhhbmRsZXI8dm9pZChXVEY6Ok1hY2hTZW5kUmlnaHQmJik+JiYpIGZpbmFsOwog
cHJpdmF0ZToKLSNpZiBIQVZFKElPU1VSRkFDRV9TRVRfT1dORVJTSElQX0lERU5USVRZKQotICAg
IHRhc2tfaWRfdG9rZW5fdCBtX3dlYlByb2Nlc3NJZGVudGl0eVRva2VuOwotI2VuZGlmCisgICAg
Y29uc3QgUHJvY2Vzc0lkZW50aXR5IG1fcmVzb3VyY2VPd25lcjsKIH07CiAKIH0KQEAgLTYxLDkg
KzYwLDcgQEAgUmVmPFJlbW90ZUdyYXBoaWNzQ29udGV4dEdMPiBSZW1vdGVHcmFwaGljc0NvbnRl
eHRHTDo6Y3JlYXRlKEdQVUNvbm5lY3Rpb25Ub1dlYlAKIAogUmVtb3RlR3JhcGhpY3NDb250ZXh0
R0xDb2NvYTo6UmVtb3RlR3JhcGhpY3NDb250ZXh0R0xDb2NvYShHUFVDb25uZWN0aW9uVG9XZWJQ
cm9jZXNzJiBncHVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLCBHcmFwaGljc0NvbnRleHRHTElkZW50
aWZpZXIgZ3JhcGhpY3NDb250ZXh0R0xJZGVudGlmaWVyLCBSZW1vdGVSZW5kZXJpbmdCYWNrZW5k
JiByZW5kZXJpbmdCYWNrZW5kLCBJUEM6OlN0cmVhbUNvbm5lY3Rpb25CdWZmZXImJiBzdHJlYW0p
CiAgICAgOiBSZW1vdGVHcmFwaGljc0NvbnRleHRHTChncHVDb25uZWN0aW9uVG9XZWJQcm9jZXNz
LCBncmFwaGljc0NvbnRleHRHTElkZW50aWZpZXIsIHJlbmRlcmluZ0JhY2tlbmQsIFdURk1vdmUo
c3RyZWFtKSkKLSNpZiBIQVZFKElPU1VSRkFDRV9TRVRfT1dORVJTSElQX0lERU5USVRZKQotICAg
ICwgbV93ZWJQcm9jZXNzSWRlbnRpdHlUb2tlbihncHVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLndl
YlByb2Nlc3NJZGVudGl0eVRva2VuKCkpCi0jZW5kaWYKKyAgICAsIG1fcmVzb3VyY2VPd25lcihn
cHVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLndlYlByb2Nlc3NJZGVudGl0eSgpKQogewogCiB9CkBA
IC03MSw3ICs2OCw3IEBAIFJlbW90ZUdyYXBoaWNzQ29udGV4dEdMQ29jb2E6OlJlbW90ZUdyYXBo
aWNzQ29udGV4dEdMQ29jb2EoR1BVQ29ubmVjdGlvblRvV2ViUHJvCiB2b2lkIFJlbW90ZUdyYXBo
aWNzQ29udGV4dEdMQ29jb2E6OnBsYXRmb3JtV29ya1F1ZXVlSW5pdGlhbGl6ZShXZWJDb3JlOjpH
cmFwaGljc0NvbnRleHRHTEF0dHJpYnV0ZXMmJiBhdHRyaWJ1dGVzKQogewogICAgIGFzc2VydElz
Q3VycmVudChtX3N0cmVhbVRocmVhZCk7Ci0gICAgbV9jb250ZXh0ID0gR3JhcGhpY3NDb250ZXh0
R0xDb2NvYTo6Y3JlYXRlKFdURk1vdmUoYXR0cmlidXRlcykpOworICAgIG1fY29udGV4dCA9IEdy
YXBoaWNzQ29udGV4dEdMQ29jb2E6OmNyZWF0ZShXVEZNb3ZlKGF0dHJpYnV0ZXMpLCBQcm9jZXNz
SWRlbnRpdHkgeyBtX3Jlc291cmNlT3duZXIgfSk7CiB9CiAKIHZvaWQgUmVtb3RlR3JhcGhpY3ND
b250ZXh0R0xDb2NvYTo6cHJlcGFyZUZvckRpc3BsYXkoQ29tcGxldGlvbkhhbmRsZXI8dm9pZChX
VEY6Ok1hY2hTZW5kUmlnaHQmJik+JiYgY29tcGxldGlvbkhhbmRsZXIpCkBAIC04MiwxMCArNzks
NiBAQCB2b2lkIFJlbW90ZUdyYXBoaWNzQ29udGV4dEdMQ29jb2E6OnByZXBhcmVGb3JEaXNwbGF5
KENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV1RGOgogICAgIE1hY2hTZW5kUmlnaHQgc2VuZFJpZ2h0
OwogICAgIGlmIChkaXNwbGF5QnVmZmVyKSB7CiAgICAgICAgIG1fY29udGV4dC0+bWFya0Rpc3Bs
YXlCdWZmZXJJblVzZSgpOwotI2lmIEhBVkUoSU9TVVJGQUNFX1NFVF9PV05FUlNISVBfSURFTlRJ
VFkpCi0gICAgICAgIC8vIE1hcmsgdGhlIElPU3VyZmFjZSBhcyBiZWluZyBvd25lZCBieSB0aGUg
V2ViUHJvY2VzcyBldmVuIHRob3VnaCBpdCB3YXMgY29uc3RydWN0ZWQgYnkgdGhlIEdQVVByb2Nl
c3Mgc28gdGhhdCBKZXRzYW0ga25vd3Mgd2hpY2ggcHJvY2VzcyB0byBraWxsLgotICAgICAgICBk
aXNwbGF5QnVmZmVyLT5zZXRPd25lcnNoaXBJZGVudGl0eShtX3dlYlByb2Nlc3NJZGVudGl0eVRv
a2VuKTsKLSNlbmRpZgogICAgICAgICBzZW5kUmlnaHQgPSBkaXNwbGF5QnVmZmVyLT5jcmVhdGVT
ZW5kUmlnaHQoKTsKICAgICB9CiAgICAgY29tcGxldGlvbkhhbmRsZXIoV1RGTW92ZShzZW5kUmln
aHQpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1v
dGVJbWFnZUJ1ZmZlci5oIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90
ZUltYWdlQnVmZmVyLmgKaW5kZXggYTNkNDk0ZmU4YmY2YTE5NjQ3ZWYxOTBjOWRiNDA0MmFlY2U2
NzIyMC4uMzViNDUyNzBiNDU4NDI0ODA5ODEwNDJkYzc1NTM0ZmJhYmFlYmYyZCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZUltYWdlQnVmZmVyLmgK
KysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZUltYWdlQnVmZmVy
LmgKQEAgLTY5LDEzICs2OSwxMSBAQCBwdWJsaWM6CiAgICAgICAgICAgICBjb250ZXh0KCkucmVz
dG9yZSgpOwogICAgIH0KIAotI2lmIEhBVkUoSU9TVVJGQUNFX1NFVF9PV05FUlNISVBfSURFTlRJ
VFkpCi0gICAgdm9pZCBzZXRQcm9jZXNzT3duZXJzaGlwKHRhc2tfaWRfdG9rZW5fdCBuZXdPd25l
cikKKyAgICB2b2lkIHNldE93bmVyc2hpcElkZW50aXR5KGNvbnN0IFdlYkNvcmU6OlByb2Nlc3NJ
ZGVudGl0eSYgcmVzb3VyY2VPd25lcikKICAgICB7CiAgICAgICAgIGlmIChtX2JhY2tlbmQpCi0g
ICAgICAgICAgICBtX2JhY2tlbmQtPnNldFByb2Nlc3NPd25lcnNoaXAobmV3T3duZXIpOworICAg
ICAgICAgICAgbV9iYWNrZW5kLT5zZXRPd25lcnNoaXBJZGVudGl0eShyZXNvdXJjZU93bmVyKTsK
ICAgICB9Ci0jZW5kaWYKIAogcHJpdmF0ZToKICAgICBmcmllbmQgY2xhc3MgUmVtb3RlUmVuZGVy
aW5nQmFja2VuZDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGlj
cy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmNwcCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9n
cmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmNwcAppbmRleCBiMGRmNTM0MzQ0OTc4MmZh
NGNlMzFiY2YzMzJkOGZjNWJjYzhiMTAyLi44ZGZiMjVkODI5MjY5NGEyZDgxMmRhY2FiOTg3YTBj
OWViZTM4ZWJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3Mv
UmVtb3RlUmVuZGVyaW5nQmFja2VuZC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNz
L2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQuY3BwCkBAIC04NSw2ICs4NSw3IEBAIFJl
bW90ZVJlbmRlcmluZ0JhY2tlbmQ6OlJlbW90ZVJlbmRlcmluZ0JhY2tlbmQoR1BVQ29ubmVjdGlv
blRvV2ViUHJvY2VzcyYgZ3B1Q29uCiAgICAgLCBtX3N0cmVhbUNvbm5lY3Rpb24oSVBDOjpTdHJl
YW1TZXJ2ZXJDb25uZWN0aW9uOjpjcmVhdGUoZ3B1Q29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jb25u
ZWN0aW9uKCksIFdURk1vdmUoc3RyZWFtQnVmZmVyKSwgbV93b3JrUXVldWUuZ2V0KCkpKQogICAg
ICwgbV9yZW1vdGVSZXNvdXJjZUNhY2hlKGdwdUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3Mud2ViUHJv
Y2Vzc0lkZW50aWZpZXIoKSkKICAgICAsIG1fZ3B1Q29ubmVjdGlvblRvV2ViUHJvY2VzcyhncHVD
b25uZWN0aW9uVG9XZWJQcm9jZXNzKQorICAgICwgbV9yZXNvdXJjZU93bmVyKGdwdUNvbm5lY3Rp
b25Ub1dlYlByb2Nlc3Mud2ViUHJvY2Vzc0lkZW50aXR5KCkpCiAgICAgLCBtX3JlbmRlcmluZ0Jh
Y2tlbmRJZGVudGlmaWVyKGNyZWF0aW9uUGFyYW1ldGVycy5pZGVudGlmaWVyKQogewogICAgIEFT
U0VSVChSdW5Mb29wOjppc01haW4oKSk7CkBAIC0xNzQsMTAgKzE3NSw5IEBAIHZvaWQgUmVtb3Rl
UmVuZGVyaW5nQmFja2VuZDo6Y3JlYXRlSW1hZ2VCdWZmZXJXaXRoUXVhbGlmaWVkSWRlbnRpZmll
cihjb25zdCBGbG9hCiAKICAgICBpZiAocmVuZGVyaW5nTW9kZSA9PSBSZW5kZXJpbmdNb2RlOjpB
Y2NlbGVyYXRlZCkgewogICAgICAgICBpZiAoYXV0byBhY2NlbGVyYXRlZEltYWdlQnVmZmVyID0g
QWNjZWxlcmF0ZWRSZW1vdGVJbWFnZUJ1ZmZlcjo6Y3JlYXRlKGxvZ2ljYWxTaXplLCByZXNvbHV0
aW9uU2NhbGUsIGNvbG9yU3BhY2UsIHBpeGVsRm9ybWF0LCAqdGhpcywgaW1hZ2VCdWZmZXJSZXNv
dXJjZUlkZW50aWZpZXIpKSB7Ci0jaWYgSEFWRShJT1NVUkZBQ0VfU0VUX09XTkVSU0hJUF9JREVO
VElUWSkKICAgICAgICAgICAgIC8vIE1hcmsgdGhlIElPU3VyZmFjZSBhcyBiZWluZyBvd25lZCBi
eSB0aGUgV2ViUHJvY2VzcyBldmVuIHRob3VnaCBpdCB3YXMgY29uc3RydWN0ZWQgYnkgdGhlIEdQ
VVByb2Nlc3Mgc28gdGhhdCBKZXRzYW0ga25vd3Mgd2hpY2ggcHJvY2VzcyB0byBraWxsLgotICAg
ICAgICAgICAgYWNjZWxlcmF0ZWRJbWFnZUJ1ZmZlci0+c2V0UHJvY2Vzc093bmVyc2hpcChtX2dw
dUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MtPndlYlByb2Nlc3NJZGVudGl0eVRva2VuKCkpOwotI2Vu
ZGlmCisgICAgICAgICAgICBpZiAobV9yZXNvdXJjZU93bmVyKQorICAgICAgICAgICAgICAgIGFj
Y2VsZXJhdGVkSW1hZ2VCdWZmZXItPnNldE93bmVyc2hpcElkZW50aXR5KG1fcmVzb3VyY2VPd25l
cik7CiAgICAgICAgICAgICBpbWFnZUJ1ZmZlciA9IFdURk1vdmUoYWNjZWxlcmF0ZWRJbWFnZUJ1
ZmZlcik7CiAgICAgICAgIH0KICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVBy
b2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5oIGIvU291cmNlL1dlYktpdC9H
UFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQuaAppbmRleCBlMzU3MTVk
ZDE3ZmVlNjQzNDViMjI2MmQ2OGNlYmVhNGQ3NGFiOTk2Li45YTI2YzQyNGI5MTIxMTAxMThiNDM2
MTg0ZGUzMGI4ZDI4ZGQxNTIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mv
Z3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BV
UHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmgKQEAgLTQ2LDYgKzQ2LDcg
QEAKICNpbmNsdWRlIDxXZWJDb3JlL0Rpc3BsYXlMaXN0SXRlbXMuaD4KICNpbmNsdWRlIDxXZWJD
b3JlL0Rpc3BsYXlMaXN0UmVwbGF5ZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Byb2Nlc3NJZGVu
dGlmaWVyLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9Qcm9jZXNzSWRlbnRpdHkuaD4KICNpbmNsdWRl
IDx3dGYvV2Vha1B0ci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC0xMzMsNiArMTM0LDcg
QEAgcHJpdmF0ZToKICAgICBSZWY8SVBDOjpTdHJlYW1TZXJ2ZXJDb25uZWN0aW9uPiBtX3N0cmVh
bUNvbm5lY3Rpb247CiAgICAgUmVtb3RlUmVzb3VyY2VDYWNoZSBtX3JlbW90ZVJlc291cmNlQ2Fj
aGU7CiAgICAgUmVmPEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M+IG1fZ3B1Q29ubmVjdGlvblRv
V2ViUHJvY2VzczsKKyAgICBXZWJDb3JlOjpQcm9jZXNzSWRlbnRpdHkgbV9yZXNvdXJjZU93bmVy
OwogICAgIFJlbmRlcmluZ0JhY2tlbmRJZGVudGlmaWVyIG1fcmVuZGVyaW5nQmFja2VuZElkZW50
aWZpZXI7CiAgICAgSVBDOjpTZW1hcGhvcmUgbV9nZXRQaXhlbEJ1ZmZlclNlbWFwaG9yZTsKICAg
ICBSZWZQdHI8U2hhcmVkTWVtb3J5PiBtX2dldFBpeGVsQnVmZmVyU2hhcmVkTWVtb3J5OwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL3dlYnJ0Yy9MaWJXZWJSVENDb2RlY3NQ
cm94eS5tbSBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy93ZWJydGMvTGliV2ViUlRDQ29kZWNz
UHJveHkubW0KaW5kZXggMTMzZTI2ZTQ3NGUxZDMxOTE2M2U1NTcxOTkyZDBjMGM3MTlkZGUxNC4u
MzBmYTMwY2IzZGM5YzliNDAxZjBjNGVjZmNlMjEwODFlYzQ2ZTVjMSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9HUFVQcm9jZXNzL3dlYnJ0Yy9MaWJXZWJSVENDb2RlY3NQcm94eS5tbQorKysg
Yi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mvd2VicnRjL0xpYldlYlJUQ0NvZGVjc1Byb3h5Lm1t
CkBAIC03NiwxNSArNzYsMTAgQEAgdm9pZCBMaWJXZWJSVENDb2RlY3NQcm94eTo6Y2xvc2UoKQog
CiBzdGF0aWMgRnVuY3Rpb248dm9pZChDVlBpeGVsQnVmZmVyUmVmIHBpeGVsQnVmZmVyLCB1aW50
MzJfdCB0aW1lU3RhbXBOcywgdWludDMyX3QgdGltZVN0YW1wKT4gY3JlYXRlRGVjb2RlckNhbGxi
YWNrKFJUQ0RlY29kZXJJZGVudGlmaWVyIGlkZW50aWZpZXIsIEdQVUNvbm5lY3Rpb25Ub1dlYlBy
b2Nlc3MmIGdwdUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MpCiB7Ci0gICAgcmV0dXJuIFtjb25uZWN0
aW9uID0gUmVmIHsgZ3B1Q29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jb25uZWN0aW9uKCkgfSwKLSNp
ZiBIQVZFKElPU1VSRkFDRV9TRVRfT1dORVJTSElQX0lERU5USVRZKQotICAgICAgICB0b2tlbiA9
IGdwdUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3Mud2ViUHJvY2Vzc0lkZW50aXR5VG9rZW4oKSwKLSNl
bmRpZgotICAgICAgICBpZGVudGlmaWVyXShDVlBpeGVsQnVmZmVyUmVmIHBpeGVsQnVmZmVyLCB1
aW50MzJfdCB0aW1lU3RhbXBOcywgdWludDMyX3QgdGltZVN0YW1wKSB7CisgICAgcmV0dXJuIFtj
b25uZWN0aW9uID0gUmVmIHsgZ3B1Q29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jb25uZWN0aW9uKCkg
fSwgcmVzb3VyY2VPd25lciA9IGdwdUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3Mud2ViUHJvY2Vzc0lk
ZW50aXR5KCksIGlkZW50aWZpZXJdIChDVlBpeGVsQnVmZmVyUmVmIHBpeGVsQnVmZmVyLCB1aW50
MzJfdCB0aW1lU3RhbXBOcywgdWludDMyX3QgdGltZVN0YW1wKSB7CiAgICAgICAgIGlmIChhdXRv
IHNhbXBsZSA9IFdlYkNvcmU6OlJlbW90ZVZpZGVvU2FtcGxlOjpjcmVhdGUocGl4ZWxCdWZmZXIs
IE1lZGlhVGltZSh0aW1lU3RhbXBOcywgMSkpKSB7Ci0jaWYgSEFWRShJT1NVUkZBQ0VfU0VUX09X
TkVSU0hJUF9JREVOVElUWSkKLSAgICAgICAgICAgIHNhbXBsZS0+c2V0T3duZXJzaGlwSWRlbnRp
dHkodG9rZW4pOwotI2VuZGlmCisgICAgICAgICAgICBpZiAocmVzb3VyY2VPd25lcikKKyAgICAg
ICAgICAgICAgICBzYW1wbGUtPnNldE93bmVyc2hpcElkZW50aXR5KHJlc291cmNlT3duZXIpOwog
ICAgICAgICAgICAgY29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6TGliV2ViUlRDQ29kZWNzOjpD
b21wbGV0ZWREZWNvZGluZyB7IGlkZW50aWZpZXIsIHRpbWVTdGFtcCwgKnNhbXBsZSB9LCAwKTsK
ICAgICAgICAgfQogICAgIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9HUFVQ
cm9jZXNzQ29ubmVjdGlvblBhcmFtZXRlcnMuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0dQVVBy
b2Nlc3NDb25uZWN0aW9uUGFyYW1ldGVycy5oCmluZGV4IDA5NmZkMGUzYmE2YzdlYzExNzc4Zjk5
NGZmZDVlODY3N2UyMGZjNTYuLmVkMzA0OTViMjUyMjg2MWY3NDY0NTJmZTkwOTFiOTY1NjExMDY3
NzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0dQVVByb2Nlc3NDb25uZWN0aW9u
UGFyYW1ldGVycy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0dQVVByb2Nlc3NDb25uZWN0
aW9uUGFyYW1ldGVycy5oCkBAIC0yOCwxNCArMjgsMTMgQEAKICNpZiBFTkFCTEUoR1BVX1BST0NF
U1MpCiAKICNpbmNsdWRlICJXZWJDb3JlQXJndW1lbnRDb2RlcnMuaCIKKyNpbmNsdWRlIDxXZWJD
b3JlL1Byb2Nlc3NJZGVudGl0eS5oPgogI2luY2x1ZGUgPHd0Zi9NYWNoU2VuZFJpZ2h0Lmg+CiAK
IG5hbWVzcGFjZSBXZWJLaXQgewogCiBzdHJ1Y3QgR1BVUHJvY2Vzc0Nvbm5lY3Rpb25QYXJhbWV0
ZXJzIHsKLSNpZiBIQVZFKFRBU0tfSURFTlRJVFlfVE9LRU4pCi0gICAgTWFjaFNlbmRSaWdodCB3
ZWJQcm9jZXNzSWRlbnRpdHlUb2tlbjsKLSNlbmRpZgorICAgIFdlYkNvcmU6OlByb2Nlc3NJZGVu
dGl0eSB3ZWJQcm9jZXNzSWRlbnRpdHk7CiAgICAgVmVjdG9yPFN0cmluZz4gb3ZlcnJpZGVMYW5n
dWFnZXM7CiAjaWYgRU5BQkxFKElQQ19URVNUSU5HX0FQSSkKICAgICBib29sIGlnbm9yZUludmFs
aWRNZXNzYWdlRm9yVGVzdGluZyB7IGZhbHNlIH07CkBAIC00Niw5ICs0NSw3IEBAIHN0cnVjdCBH
UFVQcm9jZXNzQ29ubmVjdGlvblBhcmFtZXRlcnMgewogCiAgICAgdm9pZCBlbmNvZGUoSVBDOjpF
bmNvZGVyJiBlbmNvZGVyKSBjb25zdAogICAgIHsKLSNpZiBIQVZFKFRBU0tfSURFTlRJVFlfVE9L
RU4pCi0gICAgICAgIGVuY29kZXIgPDwgd2ViUHJvY2Vzc0lkZW50aXR5VG9rZW47Ci0jZW5kaWYK
KyAgICAgICAgZW5jb2RlciA8PCB3ZWJQcm9jZXNzSWRlbnRpdHk7CiAgICAgICAgIGVuY29kZXIg
PDwgb3ZlcnJpZGVMYW5ndWFnZXM7CiAjaWYgRU5BQkxFKElQQ19URVNUSU5HX0FQSSkKICAgICAg
ICAgZW5jb2RlciA8PCBpZ25vcmVJbnZhbGlkTWVzc2FnZUZvclRlc3Rpbmc7CkBAIC02MCwxMiAr
NTcsMTAgQEAgc3RydWN0IEdQVVByb2Nlc3NDb25uZWN0aW9uUGFyYW1ldGVycyB7CiAKICAgICBz
dGF0aWMgc3RkOjpvcHRpb25hbDxHUFVQcm9jZXNzQ29ubmVjdGlvblBhcmFtZXRlcnM+IGRlY29k
ZShJUEM6OkRlY29kZXImIGRlY29kZXIpCiAgICAgewotI2lmIEhBVkUoVEFTS19JREVOVElUWV9U
T0tFTikKLSAgICAgICAgc3RkOjpvcHRpb25hbDxNYWNoU2VuZFJpZ2h0PiB3ZWJQcm9jZXNzSWRl
bnRpdHlUb2tlbjsKLSAgICAgICAgZGVjb2RlciA+PiB3ZWJQcm9jZXNzSWRlbnRpdHlUb2tlbjsK
LSAgICAgICAgaWYgKCF3ZWJQcm9jZXNzSWRlbnRpdHlUb2tlbikKKyAgICAgICAgc3RkOjpvcHRp
b25hbDxXZWJDb3JlOjpQcm9jZXNzSWRlbnRpdHk+IHdlYlByb2Nlc3NJZGVudGl0eTsKKyAgICAg
ICAgZGVjb2RlciA+PiB3ZWJQcm9jZXNzSWRlbnRpdHk7CisgICAgICAgIGlmICghd2ViUHJvY2Vz
c0lkZW50aXR5KQogICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKLSNlbmRpZgogCiAg
ICAgICAgIHN0ZDo6b3B0aW9uYWw8VmVjdG9yPFN0cmluZz4+IG92ZXJyaWRlTGFuZ3VhZ2VzOwog
ICAgICAgICBkZWNvZGVyID4+IG92ZXJyaWRlTGFuZ3VhZ2VzOwpAQCAtODYsOSArODEsNyBAQCBz
dHJ1Y3QgR1BVUHJvY2Vzc0Nvbm5lY3Rpb25QYXJhbWV0ZXJzIHsKICNlbmRpZgogCiAgICAgICAg
IHJldHVybiBHUFVQcm9jZXNzQ29ubmVjdGlvblBhcmFtZXRlcnMgewotI2lmIEhBVkUoVEFTS19J
REVOVElUWV9UT0tFTikKLSAgICAgICAgICAgIFdURk1vdmUoKndlYlByb2Nlc3NJZGVudGl0eVRv
a2VuKSwKLSNlbmRpZgorICAgICAgICAgICAgV1RGTW92ZSgqd2ViUHJvY2Vzc0lkZW50aXR5KSwK
ICAgICAgICAgICAgIFdURk1vdmUoKm92ZXJyaWRlTGFuZ3VhZ2VzKSwKICNpZiBFTkFCTEUoSVBD
X1RFU1RJTkdfQVBJKQogICAgICAgICAgICAgKmlnbm9yZUludmFsaWRNZXNzYWdlRm9yVGVzdGlu
ZywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNh
cHR1cmVNYW5hZ2VyUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVXNl
ck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5jcHAKaW5kZXggMmJiM2JjZGI1ODJkYzg1M2YyMDgz
ZWNlNDQ3MTkzYzQ0MTkzZWM5Mi4uYmRhZjk4ZDEwZGQzNThiZGQ3YmY3OTMzYWJkMTQ4NjUwN2Nj
ZWQ4NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlh
Q2FwdHVyZU1hbmFnZXJQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29j
b2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5jcHAKQEAgLTU3LDkgKzU3LDEwIEBAIGNs
YXNzIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6OlNvdXJjZVByb3h5CiAgICAgLCBwcml2
YXRlIFJlYWx0aW1lTWVkaWFTb3VyY2U6OlZpZGVvU2FtcGxlT2JzZXJ2ZXIgewogICAgIFdURl9N
QUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgotICAgIFNvdXJjZVByb3h5KFJlYWx0aW1lTWVk
aWFTb3VyY2VJZGVudGlmaWVyIGlkLCBSZWY8SVBDOjpDb25uZWN0aW9uPiYmIGNvbm5lY3Rpb24s
IFJlZjxSZWFsdGltZU1lZGlhU291cmNlPiYmIHNvdXJjZSkKKyAgICBTb3VyY2VQcm94eShSZWFs
dGltZU1lZGlhU291cmNlSWRlbnRpZmllciBpZCwgUmVmPElQQzo6Q29ubmVjdGlvbj4mJiBjb25u
ZWN0aW9uLCBQcm9jZXNzSWRlbnRpdHkmJiByZXNvdXJjZU93bmVyLCBSZWY8UmVhbHRpbWVNZWRp
YVNvdXJjZT4mJiBzb3VyY2UpCiAgICAgICAgIDogbV9pZChpZCkKICAgICAgICAgLCBtX2Nvbm5l
Y3Rpb24oV1RGTW92ZShjb25uZWN0aW9uKSkKKyAgICAgICAgLCBtX3Jlc291cmNlT3duZXIoV1RG
TW92ZShyZXNvdXJjZU93bmVyKSkKICAgICAgICAgLCBtX3NvdXJjZShXVEZNb3ZlKHNvdXJjZSkp
CiAgICAgewogICAgICAgICBtX3NvdXJjZS0+YWRkT2JzZXJ2ZXIoKnRoaXMpOwpAQCAtMTI1LDkg
KzEyNiw2IEBAIHB1YmxpYzoKICAgICB9CiAKICAgICB2b2lkIHNldFNob3VsZEFwcGx5Um90YXRp
b24oYm9vbCBzaG91bGRBcHBseVJvdGF0aW9uKSB7IG1fc2hvdWxkQXBwbHlSb3RhdGlvbiA9IHRy
dWU7IH0KLSNpZiBIQVZFKElPU1VSRkFDRV9TRVRfT1dORVJTSElQX0lERU5USVRZKQotICAgIHZv
aWQgc2V0V2ViUHJvY2Vzc0lkZW50aXR5VG9rZW4oc3RkOjpvcHRpb25hbDx0YXNrX2lkX3Rva2Vu
X3Q+IHRva2VuKSB7IG1fd2ViUHJvY2Vzc0lkZW50aXR5VG9rZW4gPSB0b2tlbjt9Ci0jZW5kaWYK
IAogcHJpdmF0ZToKICAgICB2b2lkIHNvdXJjZVN0b3BwZWQoKSBmaW5hbCB7CkBAIC0xODgsMTAg
KzE4Niw4IEBAIHByaXZhdGU6CiAgICAgICAgIH0gZWxzZQogICAgICAgICAgICAgcmVtb3RlU2Ft
cGxlID0gUmVtb3RlVmlkZW9TYW1wbGU6OmNyZWF0ZShzYW1wbGUpOwogICAgICAgICBpZiAocmVt
b3RlU2FtcGxlKSB7Ci0jaWYgSEFWRShJT1NVUkZBQ0VfU0VUX09XTkVSU0hJUF9JREVOVElUWSkK
LSAgICAgICAgICAgIGlmIChtX3dlYlByb2Nlc3NJZGVudGl0eVRva2VuKQotICAgICAgICAgICAg
ICAgIHJlbW90ZVNhbXBsZS0+c2V0T3duZXJzaGlwSWRlbnRpdHkoKm1fd2ViUHJvY2Vzc0lkZW50
aXR5VG9rZW4pOwotI2VuZGlmCisgICAgICAgICAgICBpZiAobV9yZXNvdXJjZU93bmVyKQorICAg
ICAgICAgICAgICAgIHJlbW90ZVNhbXBsZS0+c2V0T3duZXJzaGlwSWRlbnRpdHkobV9yZXNvdXJj
ZU93bmVyKTsKICAgICAgICAgICAgIG1fY29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6UmVtb3Rl
Q2FwdHVyZVNhbXBsZU1hbmFnZXI6OlZpZGVvU2FtcGxlQXZhaWxhYmxlKG1faWQsIFdURk1vdmUo
KnJlbW90ZVNhbXBsZSksIG1ldGFkYXRhKSwgMCk7CiAgICAgICAgIH0KICAgICB9CkBAIC0yNDQs
NiArMjQwLDcgQEAgcHJpdmF0ZToKICAgICBSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciBt
X2lkOwogICAgIFdlYWtQdHI8UGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyPiBtX3Nlc3Npb25N
YW5hZ2VyOwogICAgIFJlZjxJUEM6OkNvbm5lY3Rpb24+IG1fY29ubmVjdGlvbjsKKyAgICBQcm9j
ZXNzSWRlbnRpdHkgbV9yZXNvdXJjZU93bmVyOwogICAgIFJlZjxSZWFsdGltZU1lZGlhU291cmNl
PiBtX3NvdXJjZTsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8Q0FSaW5nQnVmZmVyPiBtX3JpbmdCdWZm
ZXI7CiAgICAgQ0FBdWRpb1N0cmVhbURlc2NyaXB0aW9uIG1fZGVzY3JpcHRpb24geyB9OwpAQCAt
MjU3LDkgKzI1NCw2IEBAIHByaXZhdGU6CiAgICAgc2l6ZV90IG1fZnJhbWVDaHVua1NpemUgeyAw
IH07CiAgICAgTWVkaWFUaW1lIG1fc3RhcnRUaW1lOwogICAgIGJvb2wgbV9zaG91bGRSZXNldCB7
IGZhbHNlIH07Ci0jaWYgSEFWRShUQVNLX0lERU5USVRZX1RPS0VOKQotICAgIHN0ZDo6b3B0aW9u
YWw8dGFza19pZF90b2tlbl90PiBtX3dlYlByb2Nlc3NJZGVudGl0eVRva2VuOwotI2VuZGlmCiB9
OwogCiBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdl
clByb3h5KFVuaXF1ZVJlZjxDb25uZWN0aW9uUHJveHk+JiYgY29ubmVjdGlvblByb3h5KQpAQCAt
MzIzLDEyICszMTcsNyBAQCB2b2lkIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6OmNyZWF0
ZU1lZGlhU291cmNlRm9yQ2FwdHVyZURldmljZVdpdGhDb25zdHJhaQogICAgICAgICB9CiAKICAg
ICAgICAgQVNTRVJUKCFtX3Byb3hpZXMuY29udGFpbnMoaWQpKTsKLSAgICAgICAgYXV0byBwcm94
eSA9IG1ha2VVbmlxdWU8U291cmNlUHJveHk+KGlkLCBtX2Nvbm5lY3Rpb25Qcm94eS0+Y29ubmVj
dGlvbigpLCBXVEZNb3ZlKHNvdXJjZSkpOwotI2lmIEhBVkUoSU9TVVJGQUNFX1NFVF9PV05FUlNI
SVBfSURFTlRJVFkpCi0gICAgICAgIGlmIChkZXZpY2UudHlwZSgpICE9IFdlYkNvcmU6OkNhcHR1
cmVEZXZpY2U6OkRldmljZVR5cGU6Ok1pY3JvcGhvbmUpCi0gICAgICAgICAgICBwcm94eS0+c2V0
V2ViUHJvY2Vzc0lkZW50aXR5VG9rZW4obV9jb25uZWN0aW9uUHJveHktPndlYlByb2Nlc3NJZGVu
dGl0eVRva2VuKCkpOwotI2VuZGlmCi0KKyAgICAgICAgYXV0byBwcm94eSA9IG1ha2VVbmlxdWU8
U291cmNlUHJveHk+KGlkLCBtX2Nvbm5lY3Rpb25Qcm94eS0+Y29ubmVjdGlvbigpLCBQcm9jZXNz
SWRlbnRpdHkgeyBtX2Nvbm5lY3Rpb25Qcm94eS0+cmVzb3VyY2VPd25lcigpIH0sIFdURk1vdmUo
c291cmNlKSk7CiAgICAgICAgIG1fcHJveGllcy5hZGQoaWQsIFdURk1vdmUocHJveHkpKTsKICAg
ICB9IGVsc2UKICAgICAgICAgaW52YWxpZENvbnN0cmFpbnRzID0gV1RGTW92ZShzb3VyY2VPckVy
cm9yLmVycm9yTWVzc2FnZSk7CkBAIC0zOTQsNyArMzgzLDcgQEAgdm9pZCBVc2VyTWVkaWFDYXB0
dXJlTWFuYWdlclByb3h5OjpjbG9uZShSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciBjbG9u
ZWRJRCwKICAgICBNRVNTQUdFX0NIRUNLKG1fcHJveGllcy5jb250YWlucyhjbG9uZWRJRCkpOwog
ICAgIE1FU1NBR0VfQ0hFQ0soIW1fcHJveGllcy5jb250YWlucyhuZXdTb3VyY2VJRCkpOwogICAg
IGlmIChhdXRvKiBwcm94eSA9IG1fcHJveGllcy5nZXQoY2xvbmVkSUQpKQotICAgICAgICBtX3By
b3hpZXMuYWRkKG5ld1NvdXJjZUlELCBtYWtlVW5pcXVlPFNvdXJjZVByb3h5PihuZXdTb3VyY2VJ
RCwgbV9jb25uZWN0aW9uUHJveHktPmNvbm5lY3Rpb24oKSwgcHJveHktPnNvdXJjZSgpLmNsb25l
KCkpKTsKKyAgICAgICAgbV9wcm94aWVzLmFkZChuZXdTb3VyY2VJRCwgbWFrZVVuaXF1ZTxTb3Vy
Y2VQcm94eT4obmV3U291cmNlSUQsIG1fY29ubmVjdGlvblByb3h5LT5jb25uZWN0aW9uKCksIFBy
b2Nlc3NJZGVudGl0eSB7IG1fY29ubmVjdGlvblByb3h5LT5yZXNvdXJjZU93bmVyKCkgfSwgcHJv
eHktPnNvdXJjZSgpLmNsb25lKCkpKTsKIH0KIAogdm9pZCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdl
clByb3h5OjpyZXF1ZXN0VG9FbmQoUmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgc291cmNl
SUQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFD
YXB0dXJlTWFuYWdlclByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9Vc2Vy
TWVkaWFDYXB0dXJlTWFuYWdlclByb3h5LmgKaW5kZXggYTA5NDI5ZGY2NzkxZTkwZjg0YTkzNDk1
ZmIwZWQyODVjY2VkMGQyYy4uZmE4MjljN2M0OTAzZDUxYjU3YTc4OTcxNzg0NzNmODBjYmYyODZk
ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2Fw
dHVyZU1hbmFnZXJQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1Vz
ZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkuaApAQCAtMzIsNiArMzIsNyBAQAogI2luY2x1ZGUg
IlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9DYXB0dXJlRGV2
aWNlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9PcmllbnRhdGlvbk5vdGlmaWVyLmg+CisjaW5jbHVk
ZSA8V2ViQ29yZS9Qcm9jZXNzSWRlbnRpdHkuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1JlYWx0aW1l
TWVkaWFTb3VyY2UuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1JlYWx0aW1lTWVkaWFTb3VyY2VJZGVu
dGlmaWVyLmg+CiAjaW5jbHVkZSA8cGFsL3NwaS9jb2NvYS9UQ0NTUEkuaD4KQEAgLTU5LDkgKzYw
LDcgQEAgcHVibGljOgogICAgICAgICB2aXJ0dWFsIGJvb2wgd2lsbFN0YXJ0Q2FwdHVyZShXZWJD
b3JlOjpDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlKSBjb25zdCA9IDA7CiAgICAgICAgIHZpcnR1
YWwgTG9nZ2VyJiBsb2dnZXIoKSA9IDA7CiAgICAgICAgIHZpcnR1YWwgYm9vbCBzZXRDYXB0dXJl
QXR0cmlidXRpb25TdHJpbmcoKSB7IHJldHVybiB0cnVlOyB9Ci0jaWYgSEFWRShJT1NVUkZBQ0Vf
U0VUX09XTkVSU0hJUF9JREVOVElUWSkKLSAgICAgICAgdmlydHVhbCBzdGQ6Om9wdGlvbmFsPHRh
c2tfaWRfdG9rZW5fdD4gd2ViUHJvY2Vzc0lkZW50aXR5VG9rZW4oKSBjb25zdCB7IHJldHVybiB7
IH07IH07Ci0jZW5kaWYKKyAgICAgICAgdmlydHVhbCBjb25zdCBXZWJDb3JlOjpQcm9jZXNzSWRl
bnRpdHkmIHJlc291cmNlT3duZXIoKSBjb25zdCA9IDA7CiAjaWYgRU5BQkxFKEFQUF9QUklWQUNZ
X1JFUE9SVCkKICAgICAgICAgdmlydHVhbCB2b2lkIHNldFRDQ0lkZW50aXR5KCkgeyB9CiAjZW5k
aWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5j
cHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwCmluZGV4IDY2
NTZlMmRkZGQzYjQyY2M3MDdlOGEyOGI1ZGE5YWRhNzA4MDk5ZmIuLjYzZTZlMTM3ZmZhYzBhMjg5
MTEwNWM4OWUwNzZhMTAxZTRhZmU2ZTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
UHJvY2Vzc1Byb3h5LmNwcApAQCAtMjE2LDYgKzIxNiwxMyBAQCBwcml2YXRlOgogICAgICAgICBy
ZXR1cm4gdHJ1ZTsKICAgICB9CiAKKyAgICBjb25zdCBXZWJDb3JlOjpQcm9jZXNzSWRlbnRpdHkm
IHJlc291cmNlT3duZXIoKSBjb25zdCBmaW5hbAorICAgIHsKKyAgICAgICAgLy8gRklYTUU6IHNo
b3VsZCBvYnRhaW4gV2ViQ29udGVudCBwcm9jZXNzIGlkZW50aXR5IGZyb20gV2ViQ29udGVudC4K
KyAgICAgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFdlYkNvcmU6OlByb2Nlc3NJZGVudGl0eT4g
ZHVtbXk7CisgICAgICAgIHJldHVybiBkdW1teS5nZXQoKTsKKyAgICB9CisKICAgICBSZWZQdHI8
TG9nZ2VyPiBtX2xvZ2dlcjsKICAgICBXZWJQcm9jZXNzUHJveHkmIG1fcHJvY2VzczsKIH07CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL0ltYWdlQnVm
ZmVyU2hhcmVhYmxlQml0bWFwQmFja2VuZC5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQ
VS9ncmFwaGljcy9JbWFnZUJ1ZmZlclNoYXJlYWJsZUJpdG1hcEJhY2tlbmQuaAppbmRleCAxODQ3
ZmE2ZmJkZTQwNmVkNmE2YWQwNjA0OThiODg1YzVlMzZiYjNkLi5jNWIyNmM0MGU3NDYwMzIyZGZh
ZmUyOWIwY2U2ZTM2NDE2N2U3MmFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvR1BVL2dyYXBoaWNzL0ltYWdlQnVmZmVyU2hhcmVhYmxlQml0bWFwQmFja2VuZC5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvSW1hZ2VCdWZmZXJTaGFyZWFi
bGVCaXRtYXBCYWNrZW5kLmgKQEAgLTMxLDYgKzMxLDEwIEBACiAjaW5jbHVkZSA8V2ViQ29yZS9Q
bGF0Zm9ybUltYWdlQnVmZmVyQmFja2VuZC5oPgogI2luY2x1ZGUgPHd0Zi9Jc29NYWxsb2MuaD4K
IAorbmFtZXNwYWNlIFdlYkNvcmUgeworY2xhc3MgUHJvY2Vzc0lkZW50aXR5OworfQorCiBuYW1l
c3BhY2UgV2ViS2l0IHsKIAogY2xhc3MgU2hhcmVhYmxlQml0bWFwOwpAQCAtNjEsNiArNjUsNyBA
QCBwdWJsaWM6CiAgICAgc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpQaXhlbEJ1ZmZlcj4gZ2V0UGl4
ZWxCdWZmZXIoY29uc3QgV2ViQ29yZTo6UGl4ZWxCdWZmZXJGb3JtYXQmIG91dHB1dEZvcm1hdCwg
Y29uc3QgV2ViQ29yZTo6SW50UmVjdCYpIGNvbnN0IG92ZXJyaWRlOwogICAgIHZvaWQgcHV0UGl4
ZWxCdWZmZXIoY29uc3QgV2ViQ29yZTo6UGl4ZWxCdWZmZXImLCBjb25zdCBXZWJDb3JlOjpJbnRS
ZWN0JiBzcmNSZWN0LCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgZGVzdFBvaW50LCBXZWJDb3Jl
OjpBbHBoYVByZW11bHRpcGxpY2F0aW9uIGRlc3RGb3JtYXQpIG92ZXJyaWRlOwogCisgICAgdm9p
ZCBzZXRPd25lcnNoaXBJZGVudGl0eShjb25zdCBXZWJDb3JlOjpQcm9jZXNzSWRlbnRpdHkmKSB7
IH0KIHByaXZhdGU6CiAgICAgdW5zaWduZWQgYnl0ZXNQZXJSb3coKSBjb25zdCBvdmVycmlkZTsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9jb2Nv
YS9JbWFnZUJ1ZmZlclNoYXJlYWJsZU1hcHBlZElPU3VyZmFjZUJhY2tlbmQuY3BwIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9jb2NvYS9JbWFnZUJ1ZmZlclNoYXJlYWJs
ZU1hcHBlZElPU3VyZmFjZUJhY2tlbmQuY3BwCmluZGV4IGFmZDJjN2MwNWNmYWZkMTM5OTM0NGY1
YzZhNzY0ZTQ4ODBkMjhiZGEuLmIyOWZjNTcyNzg5NTAzMGQ0MmZkYjQyN2IxNTg0NDdmMGQ3MTA2
M2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvY29j
b2EvSW1hZ2VCdWZmZXJTaGFyZWFibGVNYXBwZWRJT1N1cmZhY2VCYWNrZW5kLmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL2NvY29hL0ltYWdlQnVmZmVyU2hh
cmVhYmxlTWFwcGVkSU9TdXJmYWNlQmFja2VuZC5jcHAKQEAgLTc3LDEzICs3NywxMSBAQCBJbWFn
ZUJ1ZmZlckJhY2tlbmRIYW5kbGUgSW1hZ2VCdWZmZXJTaGFyZWFibGVNYXBwZWRJT1N1cmZhY2VC
YWNrZW5kOjpjcmVhdGVJbWFnZQogICAgIHJldHVybiBJbWFnZUJ1ZmZlckJhY2tlbmRIYW5kbGUo
bV9zdXJmYWNlLT5jcmVhdGVTZW5kUmlnaHQoKSk7CiB9CiAKLSNpZiBIQVZFKElPU1VSRkFDRV9T
RVRfT1dORVJTSElQX0lERU5USVRZKQotdm9pZCBJbWFnZUJ1ZmZlclNoYXJlYWJsZU1hcHBlZElP
U3VyZmFjZUJhY2tlbmQ6OnNldFByb2Nlc3NPd25lcnNoaXAodGFza19pZF90b2tlbl90IHByb2Nl
c3NJZGVudGl0eVRva2VuKQordm9pZCBJbWFnZUJ1ZmZlclNoYXJlYWJsZU1hcHBlZElPU3VyZmFj
ZUJhY2tlbmQ6OnNldE93bmVyc2hpcElkZW50aXR5KGNvbnN0IFdlYkNvcmU6OlByb2Nlc3NJZGVu
dGl0eSYgcmVzb3VyY2VPd25lcikKIHsKICAgICBBU1NFUlQoc3VyZmFjZSgpKTsKLSAgICBzdXJm
YWNlKCktPnNldE93bmVyc2hpcElkZW50aXR5KHByb2Nlc3NJZGVudGl0eVRva2VuKTsKKyAgICBz
dXJmYWNlKCktPnNldE93bmVyc2hpcElkZW50aXR5KHJlc291cmNlT3duZXIpOwogfQotI2VuZGlm
CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvR1BVL2dyYXBoaWNzL2NvY29hL0ltYWdlQnVmZmVyU2hhcmVhYmxlTWFwcGVkSU9T
dXJmYWNlQmFja2VuZC5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9j
b2NvYS9JbWFnZUJ1ZmZlclNoYXJlYWJsZU1hcHBlZElPU3VyZmFjZUJhY2tlbmQuaAppbmRleCBl
MTRhNTQwZWNkZGQ0NzExOTA4YTdjMTcxYzNhMjVlYmZkODA4ZGJlLi5lYTg1MjVjNTE1MDE1NWJk
MDNiNTgwMDczZDVmMjEzODY0OGIwZTBiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvR1BVL2dyYXBoaWNzL2NvY29hL0ltYWdlQnVmZmVyU2hhcmVhYmxlTWFwcGVkSU9TdXJm
YWNlQmFja2VuZC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3Mv
Y29jb2EvSW1hZ2VCdWZmZXJTaGFyZWFibGVNYXBwZWRJT1N1cmZhY2VCYWNrZW5kLmgKQEAgLTMx
LDYgKzMxLDEwIEBACiAjaW5jbHVkZSA8V2ViQ29yZS9JbWFnZUJ1ZmZlcklPU3VyZmFjZUJhY2tl
bmQuaD4KICNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jLmg+CiAKK25hbWVzcGFjZSBXZWJDb3JlIHsK
K2NsYXNzIFByb2Nlc3NJZGVudGl0eTsKK30KKwogbmFtZXNwYWNlIFdlYktpdCB7CiAKIGNsYXNz
IFNoYXJlYWJsZUJpdG1hcDsKQEAgLTQ2LDkgKzUwLDcgQEAgcHVibGljOgogCiAgICAgSW1hZ2VC
dWZmZXJCYWNrZW5kSGFuZGxlIGNyZWF0ZUltYWdlQnVmZmVyQmFja2VuZEhhbmRsZSgpIGNvbnN0
OwogCi0jaWYgSEFWRShJT1NVUkZBQ0VfU0VUX09XTkVSU0hJUF9JREVOVElUWSkKLSAgICB2b2lk
IHNldFByb2Nlc3NPd25lcnNoaXAodGFza19pZF90b2tlbl90KTsKLSNlbmRpZgorICAgIHZvaWQg
c2V0T3duZXJzaGlwSWRlbnRpdHkoY29uc3QgV2ViQ29yZTo6UHJvY2Vzc0lkZW50aXR5Jik7CiB9
OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9jb2NvYS9XZWJQcm9jZXNzQ29jb2EubW0gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvY29jb2EvV2ViUHJvY2Vzc0NvY29hLm1tCmluZGV4IDZhN2ZjNzNlOWExYzAxZWRlODhjYWM1
OTI2MTM5YjM5MTY0YmY3YjguLjEwNTI2YTEwYzUwMzkzMWI4NjcyMmQ4MGI1ZWQ5N2Y1ZDM4MzBh
NGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9XZWJQcm9jZXNz
Q29jb2EubW0KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1dlYlByb2Nlc3ND
b2NvYS5tbQpAQCAtMTIyNiwxNCArMTIyNiw3IEBAIHZvaWQgV2ViUHJvY2Vzczo6d2FpdEZvclBl
bmRpbmdQYXN0ZWJvYXJkV3JpdGVzVG9GaW5pc2goY29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJkCiAj
aWYgRU5BQkxFKEdQVV9QUk9DRVNTKQogdm9pZCBXZWJQcm9jZXNzOjpwbGF0Zm9ybUluaXRpYWxp
emVHUFVQcm9jZXNzQ29ubmVjdGlvblBhcmFtZXRlcnMoR1BVUHJvY2Vzc0Nvbm5lY3Rpb25QYXJh
bWV0ZXJzJiBwYXJhbWV0ZXJzKQogewotI2lmIEhBVkUoVEFTS19JREVOVElUWV9UT0tFTikKLSAg
ICB0YXNrX2lkX3Rva2VuX3QgaWRlbnRpdHlUb2tlbjsKLSAgICBrZXJuX3JldHVybl90IGtyID0g
dGFza19jcmVhdGVfaWRlbnRpdHlfdG9rZW4obWFjaF90YXNrX3NlbGYoKSwgJmlkZW50aXR5VG9r
ZW4pOwotICAgIGlmIChrciA9PSBLRVJOX1NVQ0NFU1MpCi0gICAgICAgIHBhcmFtZXRlcnMud2Vi
UHJvY2Vzc0lkZW50aXR5VG9rZW4gPSBNYWNoU2VuZFJpZ2h0OjphZG9wdChpZGVudGl0eVRva2Vu
KTsKLSAgICBlbHNlCi0gICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKFByb2Nlc3MsICJDYWxsIHRv
IHRhc2tfY3JlYXRlX2lkZW50aXR5X3Rva2VuKCkgZmFpbGVkOiAle3ByaXZhdGV9cyAoJXgpIiwg
bWFjaF9lcnJvcl9zdHJpbmcoa3IpLCBrcik7Ci0jZW5kaWYKKyAgICBwYXJhbWV0ZXJzLndlYlBy
b2Nlc3NJZGVudGl0eSA9IFByb2Nlc3NJZGVudGl0eSB7IFByb2Nlc3NJZGVudGl0eTo6Q3VycmVu
dFByb2Nlc3MgfTsKIAogICAgIHBhcmFtZXRlcnMub3ZlcnJpZGVMYW5ndWFnZXMgPSB1c2VyUHJl
ZmVycmVkTGFuZ3VhZ2VzT3ZlcnJpZGUoKTsKIH0KZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxv
ZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCA3MTQxNzgyZjQzN2VhOWQ5NzAxZTg0ZjUwMDU2YmUx
N2Q4MzMwZjJlLi5lNDc3NTM0NzhjY2QwMTBkYzQ0MGJlNzM3NTBkZWI4YzYwNjI5ZWI1IDEwMDY0
NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MTYgQEAKKzIwMjEtMTItMDggIEtpbW1vIEtpbm51bmVuICA8a2tpbm51bmVuQGFwcGxlLmNvbT4K
KworICAgICAgICBJT1N1cmZhY2UgbWVtb3J5IGF0dHJpYnV0aW9uIGlzIGhhcmQgdG8gdXNlIGlu
IGNvbnN0cnVjdG9ycworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MjMyOTg4CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS84NTU0MTkxOD4KKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBVcGRhdGUgY29uc3RydWN0
b3IgY2FsbGluZyBiYXNlIGNsYXNzIGNvbnN0cnVjdG9yLCBhZGQgZW1wdHkKKyAgICAgICAgUHJv
Y2Vzc2VJZGVudGl0eS4KKworICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9j
b2NvYS9UZXN0R3JhcGhpY3NDb250ZXh0R0xDb2NvYS5tbToKKwogMjAyMS0xMi0wOCAgQnJhZHkg
RWlkc29uICA8YmVpZHNvbkBhcHBsZS5jb20+CiAKICAgICAgICAgQWRkIGFiaWxpdHkgdG8gaW5q
ZWN0IG1lc3NhZ2VzIGludG8gd2VicHVzaGQKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViQ29yZS9jb2NvYS9UZXN0R3JhcGhpY3NDb250ZXh0R0xDb2NvYS5tbSBiL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9jb2NvYS9UZXN0R3JhcGhpY3NDb250ZXh0
R0xDb2NvYS5tbQppbmRleCA4NzZjNzQ0ODA4ZjQzNjFlM2NkNTJmNTNmZmQ2ZjYwMDNhOGEwZjg3
Li5hOTE2Mjc5OGU2ZjA3ZjQ3OGJjMTJiYmQ4M2ZjMDQ1YjQzMjM3Mzc0IDEwMDY0NAotLS0gYS9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvY29jb2EvVGVzdEdyYXBoaWNzQ29udGV4
dEdMQ29jb2EubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL2NvY29h
L1Rlc3RHcmFwaGljc0NvbnRleHRHTENvY29hLm1tCkBAIC0zMiw2ICszMiw3IEBACiAjaW1wb3J0
IDxNZXRhbC9NZXRhbC5oPgogI2ltcG9ydCA8V2ViQ29yZS9Db2xvci5oPgogI2ltcG9ydCA8V2Vi
Q29yZS9HcmFwaGljc0NvbnRleHRHTENvY29hLmg+CisjaW1wb3J0IDxXZWJDb3JlL1Byb2Nlc3NJ
ZGVudGl0eS5oPgogI2ltcG9ydCA8b3B0aW9uYWw+CiAjaW1wb3J0IDx3dGYvSGFzaFNldC5oPgog
I2ltcG9ydCA8d3RmL01lbW9yeUZvb3RwcmludC5oPgpAQCAtNjcsNyArNjgsNyBAQCBzdGF0aWMg
UmVmUHRyPFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dEdMQ29jb2E+IGNyZWF0ZURlZmF1bHRUZXN0
Q29udGV4dChXZWJDb3JlOgogICAgIGF0dHJpYnV0ZXMuc3RlbmNpbCA9IGZhbHNlOwogICAgIGF0
dHJpYnV0ZXMuYWxwaGEgPSB0cnVlOwogICAgIGF0dHJpYnV0ZXMucHJlc2VydmVEcmF3aW5nQnVm
ZmVyID0gZmFsc2U7Ci0gICAgYXV0byBjb250ZXh0ID0gV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0
R0xDb2NvYTo6Y3JlYXRlKFdURk1vdmUoYXR0cmlidXRlcykpOworICAgIGF1dG8gY29udGV4dCA9
IFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dEdMQ29jb2E6OmNyZWF0ZShXVEZNb3ZlKGF0dHJpYnV0
ZXMpLCB7IH0pOwogICAgIGlmICghY29udGV4dCkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAg
ICAgY29udGV4dC0+cmVzaGFwZShjb250ZXh0U2l6ZS53aWR0aCgpLCBjb250ZXh0U2l6ZS5oZWln
aHQoKSk7CkBAIC0xMTksMTUgKzEyMCwxNSBAQCBURVNUX0YoR3JhcGhpY3NDb250ZXh0R0xDb2Nv
YVRlc3QsIE1BWUJFX011bHRpcGxlR1BVc0RpZmZlcmVudFBvd2VyUHJlZmVyZW5jZU1ldAogICAg
IFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dEdMQXR0cmlidXRlcyBhdHRyaWJ1dGVzOwogICAgIGF0
dHJpYnV0ZXMudXNlTWV0YWwgPSB0cnVlOwogICAgIEVYUEVDVF9FUShhdHRyaWJ1dGVzLnBvd2Vy
UHJlZmVyZW5jZSwgV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0R0xQb3dlclByZWZlcmVuY2U6OkRl
ZmF1bHQpOwotICAgIGF1dG8gZGVmYXVsdENvbnRleHQgPSBXZWJDb3JlOjpHcmFwaGljc0NvbnRl
eHRHTENvY29hOjpjcmVhdGUoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0R0xBdHRyaWJ1dGVzIHsg
YXR0cmlidXRlcyB9KTsKKyAgICBhdXRvIGRlZmF1bHRDb250ZXh0ID0gV2ViQ29yZTo6R3JhcGhp
Y3NDb250ZXh0R0xDb2NvYTo6Y3JlYXRlKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dEdMQXR0cmli
dXRlcyB7IGF0dHJpYnV0ZXMgfSwgeyB9KTsKICAgICBBU1NFUlRfTkUoZGVmYXVsdENvbnRleHQs
IG51bGxwdHIpOwogCiAgICAgYXR0cmlidXRlcy5wb3dlclByZWZlcmVuY2UgPSBXZWJDb3JlOjpH
cmFwaGljc0NvbnRleHRHTFBvd2VyUHJlZmVyZW5jZTo6TG93UG93ZXI7Ci0gICAgYXV0byBsb3dQ
b3dlckNvbnRleHQgPSBXZWJDb3JlOjpHcmFwaGljc0NvbnRleHRHTENvY29hOjpjcmVhdGUoV2Vi
Q29yZTo6R3JhcGhpY3NDb250ZXh0R0xBdHRyaWJ1dGVzIHsgYXR0cmlidXRlcyB9KTsKKyAgICBh
dXRvIGxvd1Bvd2VyQ29udGV4dCA9IFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dEdMQ29jb2E6OmNy
ZWF0ZShXZWJDb3JlOjpHcmFwaGljc0NvbnRleHRHTEF0dHJpYnV0ZXMgeyBhdHRyaWJ1dGVzIH0s
IHsgfSk7CiAgICAgQVNTRVJUX05FKGxvd1Bvd2VyQ29udGV4dCwgbnVsbHB0cik7CiAKICAgICBh
dHRyaWJ1dGVzLnBvd2VyUHJlZmVyZW5jZSA9IFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dEdMUG93
ZXJQcmVmZXJlbmNlOjpIaWdoUGVyZm9ybWFuY2U7Ci0gICAgYXV0byBoaWdoUGVyZm9ybWFuY2VD
b250ZXh0ID0gV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0R0xDb2NvYTo6Y3JlYXRlKFdlYkNvcmU6
OkdyYXBoaWNzQ29udGV4dEdMQXR0cmlidXRlcyB7IGF0dHJpYnV0ZXMgfSk7CisgICAgYXV0byBo
aWdoUGVyZm9ybWFuY2VDb250ZXh0ID0gV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0R0xDb2NvYTo6
Y3JlYXRlKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dEdMQXR0cmlidXRlcyB7IGF0dHJpYnV0ZXMg
fSwgeyB9KTsKICAgICBBU1NFUlRfTkUoaGlnaFBlcmZvcm1hbmNlQ29udGV4dCwgbnVsbHB0cik7
CiAKICAgICBFWFBFQ1RfTkUobG93UG93ZXJDb250ZXh0LT5nZXRTdHJpbmcoV2ViQ29yZTo6R3Jh
cGhpY3NDb250ZXh0R0w6OlJFTkRFUkVSKSwgaGlnaFBlcmZvcm1hbmNlQ29udGV4dC0+Z2V0U3Ry
aW5nKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dEdMOjpSRU5ERVJFUikpOwo=
</data>
<flag name="commit-queue"
          id="471935"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>446512</attachid>
            <date>2021-12-09 03:08:40 -0800</date>
            <delta_ts>2021-12-09 06:59:33 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-232988-20211209130838.patch</filename>
            <type>text/plain</type>
            <size>54821</size>
            <attacher name="Kimmo Kinnunen">kkinnunen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg2NzY2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODdmNDkyZGNjMGMwYTU1
Nzk1NTFhMjk3MDJlYTFmMjM2ZmE0N2UxYS4uODEzZmQ0NDdiMzIyNTY2NDc3NDk0MjliZjI1ZjVl
Y2Q1YjZhMTdjZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUzIEBACisyMDIxLTEyLTA4ICBLaW1t
byBLaW5udW5lbiAgPGtraW5udW5lbkBhcHBsZS5jb20+CisKKyAgICAgICAgSU9TdXJmYWNlIG1l
bW9yeSBhdHRyaWJ1dGlvbiBpcyBoYXJkIHRvIHVzZSBpbiBjb25zdHJ1Y3RvcnMKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMjk4OAorICAgICAgICA8
cmRhcjovL3Byb2JsZW0vODU1NDE5MTg+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQ2hyaXMgRHVt
ZXouCisKKyAgICAgICAgQWRkIFdlYkNvcmU6OlByb2Nlc3NJZGVudGl0eSB0eXBlIHRoYXQgY2Fu
IGJlIHVzZWQgdG8gY29tbXVuaWNhdGUgbWVtb3J5IGF0dHJpYnV0aW9uLgorICAgICAgICBGb3Ig
bm9uLUNvY29hIHBvcnRzLCB0aGlzIGlzIG51bGxwdHIuCisgICAgICAgIFRoaXMgaXMgdXNlZCBp
biBXZWJDb3JlIHRvIHNldCB0aGUgbWVtb3J5IGF0dHJpYnV0aW9uIG9mIElPU3VyZmFjZSBhbmQg
b2JqZWN0cworICAgICAgICB0aGF0IGhvbGQgSU9TdXJmYWNlcy4KKyAgICAgICAgVGhpcyBpcyBp
bnN0YW50aWF0ZWQgaW4gV2ViS2l0LgorICAgICAgICBDdXJyZW50bHkgdGhlIG9ubHkgdXNlZnVs
IHdheSB0byBpbnN0YW50aWF0ZSBQcm9jZXNzSWRlbnRpdHkgaXMgYnkgcmVjZWl2aW5nCisgICAg
ICAgIHRoZSBQcm9jZXNzSWRlbnRpdHkgYXMgYSBtZXNzYWdlIGFuZCBjcmVhdGUgaXQgdGhpcyB3
YXkgZm9yIHRoZQorICAgICAgICBzZW5kZXIgcHJvY2Vzcy4KKworICAgICAgICBObyBuZXcgdGVz
dHMsIHJlZmFjdG9yLgorCisgICAgICAgICogSGVhZGVycy5jbWFrZToKKyAgICAgICAgKiBTb3Vy
Y2VzLnR4dDoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6Cisg
ICAgICAgICogcGxhdGZvcm0vTG9nZ2luZy5oOgorICAgICAgICBBZGQgV2ViQ29yZSBQcm9jZXNz
IGxvZyB0YWcgc2luY2UgdGhlIGNvZGUgbW92ZWQgZnJvbSBXZWJLaXQgdG8gUHJvY2Vzc0lkZW50
aXR5CisgICAgICAgIHVzZWQgdGhhdCB0YWcgdG8gbG9nLgorICAgICAgICAqIHBsYXRmb3JtL1By
b2Nlc3NJZGVudGl0eS5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6UHJvY2Vzc0lkZW50
aXR5OjpQcm9jZXNzSWRlbnRpdHkpOgorICAgICAgICAoV2ViQ29yZTo6UHJvY2Vzc0lkZW50aXR5
Ojp0YXNrSWRUb2tlbiBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpQcm9jZXNzSWRlbnRpdHk6
OnNlbmRSaWdodCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpQcm9jZXNzSWRlbnRpdHk6Om9w
ZXJhdG9yIGJvb2wgY29uc3QpOgorICAgICAgICAqIHBsYXRmb3JtL1Byb2Nlc3NJZGVudGl0eS5o
OiBBZGRlZC4KKyAgICAgICAgQWRkIHRoZSBQcm9jZXNzSWRlbnRpdHkgdHlwZSB0aGF0IGNhbiBi
ZSB1c2VkIHRvIGNvbW11bmljYXRlIG1lbW9yeSBhdHRyaWJ1dGlvbi4KKyAgICAgICAgKiBwbGF0
Zm9ybS9ncmFwaGljcy9SZW1vdGVWaWRlb1NhbXBsZS5oOgorICAgICAgICAoV2ViQ29yZTo6UmVt
b3RlVmlkZW9TYW1wbGU6OnNldE93bmVyc2hpcElkZW50aXR5KToKKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy9hbmdsZS9HcmFwaGljc0NvbnRleHRHTEFOR0xFLmg6CisgICAgICAgICogcGxh
dGZvcm0vZ3JhcGhpY3MvY29jb2EvR3JhcGhpY3NDb250ZXh0R0xDb2NvYS5oOgorICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0dyYXBoaWNzQ29udGV4dEdMQ29jb2EubW06CisgICAg
ICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHRHTENvY29hOjpjcmVhdGUpOgorICAgICAgICAo
V2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0R0xDb2NvYTo6R3JhcGhpY3NDb250ZXh0R0xDb2NvYSk6
CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHRHTEFOR0xFOjphbGxvY2F0ZUFuZEJp
bmREaXNwbGF5QnVmZmVyQmFja2luZyk6CisgICAgICAgIEFkZCBhbiBleGFtcGxlIHVzZSB3aGVy
ZSB0aGUgY29uc3RydWN0b3IgdGFrZXMgdGhlIG1lbW9yeSBhdHRyaWJ1dGlvbiB0b2tlbi4KKyAg
ICAgICAgVGhpcyBtYXkgYmUgbmVlZGVkIGluIHRoZSBmdXR1cmUgd2hlbiB0aGUgdG9rZW4gaXMg
dXNlZCBhcyBhIHBhcmFtZXRlciBpbgorICAgICAgICB0aGUgQU5HTEUgY29udGV4dCBjcmVhdGlv
bi4KKyAgICAgICAgVXNlIHRoZSB0b2tlbiBpbiBjcmVhdGluZyB0aGUgSU9TdXJmYWNlLiBUaGlz
IGZpeGVzIGEgYnVnIHdoZXJlIFdlYkdMCisgICAgICAgIGJhY2sgYnVmZmVycyB3b3VsZCBub3Qg
YmUgYXR0cmlidXRlZCB1bnRpbCB0aGV5IHdlcmUgc2VudCB0byBXUC4KKyAgICAgICAgKiBwbGF0
Zm9ybS9ncmFwaGljcy9jb2NvYS9JT1N1cmZhY2UuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy9jb2NvYS9JT1N1cmZhY2UubW06CisgICAgICAgIChXZWJDb3JlOjpJT1N1cmZhY2U6OnNl
dE93bmVyc2hpcElkZW50aXR5KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9X
ZWJQcm9jZXNzR3JhcGhpY3NDb250ZXh0R0xDb2NvYS5tbToKKwogMjAyMS0xMi0wOCAgTXlsZXMg
Qy4gTWF4ZmllbGQgIDxtbWF4ZmllbGRAYXBwbGUuY29tPgogCiAgICAgICAgIEZpeCBidWlsZCBh
ZnRlciByMjg2NzU5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDZhMzEwY2UyNDM2ZTZlNWQyMjljOGNiMzQ1MmRlZDQw
OGQ4NjE2MjMuLmI1NzZlODcyNmVkNjRkNzBkMGMyOTRhZTQyZDI1OTc0NjUxNzY4ZjcgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsNTQgQEAKKzIwMjEtMTItMDggIEtpbW1vIEtpbm51bmVuICA8a2tpbm51
bmVuQGFwcGxlLmNvbT4KKworICAgICAgICBJT1N1cmZhY2UgbWVtb3J5IGF0dHJpYnV0aW9uIGlz
IGhhcmQgdG8gdXNlIGluIGNvbnN0cnVjdG9ycworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMyOTg4CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS84NTU0
MTkxOD4KKworICAgICAgICBSZXZpZXdlZCBieSBDaHJpcyBEdW1lei4KKworICAgICAgICBSZW1v
dmUgaWZkZWZzIGFuZCBkaXJlY3QgdXNlIG9mIHRhc2tfaWRfdG9rZW5fdC4KKyAgICAgICAgSW5z
dGVhZCwgdXNlIFdlYkNvcmU6OlByb2Nlc3NJZGVudGlmaWVyLiBUaGlzIHdheSB0aGUKKyAgICAg
ICAgY3Jvc3MtcGxhdGZvcm0gY29kZSBpcyBlYXNpZXIgdG8gYXV0aG9yLgorCisgICAgICAgICog
R1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcDoKKyAgICAgICAgKFdlYktp
dDo6R1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6R1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcyk6
CisgICAgICAgICogR1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmg6CisgICAg
ICAgIChXZWJLaXQ6OkdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OndlYlByb2Nlc3NJZGVudGl0
eSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OkdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6Ondl
YlByb2Nlc3NJZGVudGl0eVRva2VuIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKiBHUFVQcm9j
ZXNzL2dyYXBoaWNzL1JlbW90ZUdyYXBoaWNzQ29udGV4dEdMQ29jb2EuY3BwOgorICAgICAgICAo
V2ViS2l0OjpSZW1vdGVHcmFwaGljc0NvbnRleHRHTENvY29hOjpSZW1vdGVHcmFwaGljc0NvbnRl
eHRHTENvY29hKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlR3JhcGhpY3NDb250ZXh0R0xDb2Nv
YTo6cGxhdGZvcm1Xb3JrUXVldWVJbml0aWFsaXplKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3Rl
R3JhcGhpY3NDb250ZXh0R0xDb2NvYTo6cHJlcGFyZUZvckRpc3BsYXkpOgorICAgICAgICAqIEdQ
VVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlSW1hZ2VCdWZmZXIuaDoKKyAgICAgICAgKFdlYktpdDo6
UmVtb3RlSW1hZ2VCdWZmZXI6OnNldE93bmVyc2hpcElkZW50aXR5KToKKyAgICAgICAgKFdlYktp
dDo6UmVtb3RlSW1hZ2VCdWZmZXI6OnNldFByb2Nlc3NPd25lcnNoaXApOiBEZWxldGVkLgorICAg
ICAgICAqIEdQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlbmRlcmluZ0JhY2tlbmQ6OlJlbW90ZVJlbmRlcmluZ0Jh
Y2tlbmQpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZW5kZXJpbmdCYWNrZW5kOjpjcmVhdGVJ
bWFnZUJ1ZmZlcldpdGhRdWFsaWZpZWRJZGVudGlmaWVyKToKKyAgICAgICAgKiBHUFVQcm9jZXNz
L2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQuaDoKKyAgICAgICAgKiBHUFVQcm9jZXNz
L3dlYnJ0Yy9MaWJXZWJSVENDb2RlY3NQcm94eS5tbToKKyAgICAgICAgKFdlYktpdDo6RnVuY3Rp
b248dm9pZCk6CisgICAgICAgICogU2hhcmVkL0dQVVByb2Nlc3NDb25uZWN0aW9uUGFyYW1ldGVy
cy5oOgorICAgICAgICAoV2ViS2l0OjpHUFVQcm9jZXNzQ29ubmVjdGlvblBhcmFtZXRlcnM6OmVu
Y29kZSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OkdQVVByb2Nlc3NDb25uZWN0aW9uUGFyYW1l
dGVyczo6ZGVjb2RlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVy
ZU1hbmFnZXJQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYUNhcHR1cmVNYW5h
Z2VyUHJveHk6OlNvdXJjZVByb3h5OjpTb3VyY2VQcm94eSk6CisgICAgICAgIChXZWJLaXQ6OlVz
ZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6OlNvdXJjZVByb3h5OjpzZXRTaG91bGRBcHBseVJv
dGF0aW9uKToKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6
Y3JlYXRlTWVkaWFTb3VyY2VGb3JDYXB0dXJlRGV2aWNlV2l0aENvbnN0cmFpbnRzKToKKyAgICAg
ICAgKFdlYktpdDo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6Y2xvbmUpOgorICAgICAg
ICAoV2ViS2l0OjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OjpTb3VyY2VQcm94eTo6c2V0
V2ViUHJvY2Vzc0lkZW50aXR5VG9rZW4pOiBEZWxldGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9D
b2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5Lmg6CisgICAgICAgIChXZWJLaXQ6OlVz
ZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6OkNvbm5lY3Rpb25Qcm94eTo6d2ViUHJvY2Vzc0lk
ZW50aXR5VG9rZW4gY29uc3QpOiBEZWxldGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9j
ZXNzUHJveHkuY3BwOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL0ltYWdlQnVm
ZmVyU2hhcmVhYmxlQml0bWFwQmFja2VuZC5oOgorICAgICAgICAoV2ViS2l0OjpJbWFnZUJ1ZmZl
clNoYXJlYWJsZUJpdG1hcEJhY2tlbmQ6OnNldE93bmVyc2hpcElkZW50aXR5KToKKyAgICAgICAg
KiBXZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9jb2NvYS9JbWFnZUJ1ZmZlclNoYXJlYWJsZU1hcHBl
ZElPU3VyZmFjZUJhY2tlbmQuY3BwOgorICAgICAgICAoV2ViS2l0OjpJbWFnZUJ1ZmZlclNoYXJl
YWJsZU1hcHBlZElPU3VyZmFjZUJhY2tlbmQ6OnNldE93bmVyc2hpcElkZW50aXR5KToKKyAgICAg
ICAgKFdlYktpdDo6SW1hZ2VCdWZmZXJTaGFyZWFibGVNYXBwZWRJT1N1cmZhY2VCYWNrZW5kOjpz
ZXRQcm9jZXNzT3duZXJzaGlwKTogRGVsZXRlZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9n
cmFwaGljcy9jb2NvYS9JbWFnZUJ1ZmZlclNoYXJlYWJsZU1hcHBlZElPU3VyZmFjZUJhY2tlbmQu
aDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL2NvY29hL1dlYlByb2Nlc3NDb2NvYS5tbToKKyAgICAg
ICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6cGxhdGZvcm1Jbml0aWFsaXplR1BVUHJvY2Vzc0Nvbm5l
Y3Rpb25QYXJhbWV0ZXJzKToKKwogMjAyMS0xMi0wOCAgQnJhZHkgRWlkc29uICA8YmVpZHNvbkBh
cHBsZS5jb20+CiAKICAgICAgICAgQWRkIGFiaWxpdHkgdG8gaW5qZWN0IG1lc3NhZ2VzIGludG8g
d2VicHVzaGQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UgYi9Tb3Vy
Y2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCmluZGV4IGM4YjYxMjM1NWZjYzBmYTA2NzQ5ZDcwMWNk
NDFjZDFmZWVjNDhiZGEuLjY4NWZhNWU0NmZiYzNlMWEwZmEzMWI5ZTU4NmU3M2NhMGUyNTY4YWQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKKysrIGIvU291cmNlL1dl
YkNvcmUvSGVhZGVycy5jbWFrZQpAQCAtMTI5MSw2ICsxMjkxLDcgQEAgc2V0KFdlYkNvcmVfUFJJ
VkFURV9GUkFNRVdPUktfSEVBREVSUwogICAgIHBsYXRmb3JtL1BvcHVwTWVudUNsaWVudC5oCiAg
ICAgcGxhdGZvcm0vUG9wdXBNZW51U3R5bGUuaAogICAgIHBsYXRmb3JtL1Byb2Nlc3NJZGVudGlm
aWVyLmgKKyAgICBwbGF0Zm9ybS9Qcm9jZXNzSWRlbnRpdHkuaAogICAgIHBsYXRmb3JtL1Byb2Nl
c3NRdWFsaWZpZWQuaAogICAgIHBsYXRmb3JtL1Byb21pc2VkQXR0YWNobWVudEluZm8uaAogICAg
IHBsYXRmb3JtL1B1YmxpY1N1ZmZpeC5oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Tb3Vy
Y2VzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CmluZGV4IGQ5NTdiY2RhOGFkYTRk
YWVmNDA5MjBhMzU3NzQzOWVhYjAwNjg0ZGMuLjQ1OWVkMWYwMTRkNjk0NjQxMDRlY2VkZDkxZGM0
NmNkZjU4MmZhNWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CisrKyBi
L1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CkBAIC0xODg2LDYgKzE4ODYsNyBAQCBwbGF0Zm9y
bS9QbGF0Zm9ybVN0cmF0ZWdpZXMuY3BwCiBwbGF0Zm9ybS9QbGF0Zm9ybVdoZWVsRXZlbnQuY3Bw
CiBwbGF0Zm9ybS9QcmV2aWV3Q29udmVydGVyLmNwcAogcGxhdGZvcm0vUHJvY2Vzc0lkZW50aWZp
ZXIuY3BwCitwbGF0Zm9ybS9Qcm9jZXNzSWRlbnRpdHkuY3BwCiBwbGF0Zm9ybS9SZWZlcnJlclBv
bGljeS5jcHAKIHBsYXRmb3JtL1JlbW90ZUNvbW1hbmRMaXN0ZW5lci5jcHAKIHBsYXRmb3JtL1J1
bnRpbWVBcHBsaWNhdGlvbkNoZWNrcy5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCAxZTk2ZWU2NTcyYWE0MjU4NTlkZDFlZTkz
MDMyZTY4OWZiMGI4NTUxLi5kOWM5YTVlNTI0NzEyOGI5ZmM1YTRkYTBmMzY5YjYyMzgwOWRjMGEx
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCkBAIC0yMzg4LDYgKzIzODgsNyBAQAogCQk3QkIzNEE0ODI1Mzc3NkNBMDAwMjlEMDggLyog
R3JhcGhpY3NDb250ZXh0R0xJbWFnZUV4dHJhY3Rvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0JCMzRBNDUyNTM3NzZDNjAwMDI5RDA4IC8qIEdyYXBo
aWNzQ29udGV4dEdMSW1hZ2VFeHRyYWN0b3IuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9
IChQcml2YXRlLCApOyB9OyB9OwogCQk3QkI2ODBCQTI1QkExQkU0MDAyQjg3MzggLyogR3JhcGhp
Y3NDaGVja3NNYWMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDdCQjY4MEI4MjVCQTFCRTQwMDJCODczOCAvKiBHcmFwaGljc0NoZWNrc01hYy5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTdCRERBMzFGMjc0
RkEwMjEwMDM4NjU5RSAvKiBHcmFwaGljc0NvbnRleHRHTENvY29hLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3QkREQTMxRDI3NEY5REE1MDAzODY1OUUg
LyogR3JhcGhpY3NDb250ZXh0R0xDb2NvYS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CisJCTdCRERBMzRDMjc1QTAxMzEwMDM4NjU5RSAvKiBQcm9jZXNz
SWRlbnRpdHkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDdCRERBMzQ5Mjc1QTAxMzAwMDM4NjU5RSAvKiBQcm9jZXNzSWRlbnRpdHkuaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk3QkU3NDI3MzgxRkE5MDZG
QkI0RjBGMkMgLyogSlNTVkdHcmFwaGljc0VsZW1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk1MEM0QzAyQkVEODkzNkY4MThFMkY5OSAvKiBKU1NW
R0dyYXBoaWNzRWxlbWVudC5oICovOyB9OwogCQk3QkZGNTlGNDI3NTc3MjY3MDA3NzNEMzkgLyog
RGlzcGxheUNvbmZpZ3VyYXRpb25Nb25pdG9yLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA3QkZGNTlFRjI3NTc3MUU4MDA3NzNEMzkgLyogRGlzcGxheUNv
bmZpZ3VyYXRpb25Nb25pdG9yLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0
ZSwgKTsgfTsgfTsKIAkJN0MwMjlDNkUyNDkzQzhGODAwMjY4MjA0IC8qIENvbG9yVHlwZXMuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdDMDI5QzZEMjQ5
M0M4RjgwMDI2ODIwNCAvKiBDb2xvclR5cGVzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMg
PSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTExNDI0LDYgKzExNDI1LDggQEAKIAkJN0JDRDQyREMy
NzA1Qzk0OTAwRUIyMTI3IC8qIEFOR0xFVXRpbGl0aWVzQ29jb2EuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
QU5HTEVVdGlsaXRpZXNDb2NvYS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3QkRE
QTMxQzI3NEY5REE0MDAzODY1OUUgLyogR3JhcGhpY3NDb250ZXh0R0xDb2NvYS5tbSAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IEdyYXBoaWNzQ29udGV4dEdMQ29jb2Eu
bW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdCRERBMzFEMjc0RjlEQTUwMDM4NjU5
RSAvKiBHcmFwaGljc0NvbnRleHRHTENvY29hLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IEdyYXBoaWNzQ29udGV4dEdMQ29jb2EuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJN0JEREEzNDkyNzVBMDEzMDAwMzg2NTlFIC8qIFByb2Nlc3NJZGVudGl0eS5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQcm9jZXNzSWRlbnRpdHkuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJN0JEREEzNEIyNzVBMDEzMDAwMzg2NTlFIC8qIFByb2Nlc3NJ
ZGVudGl0eS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBQcm9jZXNz
SWRlbnRpdHkuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3QkU3MjY1QjI1NzYz
QjhEMDBFODVEOTggLyogUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eUJhc2UuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eUJhc2UuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3QkZGNTlFRjI3NTc3MUU4MDA3NzNEMzkgLyogRGlz
cGxheUNvbmZpZ3VyYXRpb25Nb25pdG9yLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZXhwbGljaXRGaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmg7IGZpbGVFbmNvZGluZyA9IDQ7IHBh
dGggPSBEaXNwbGF5Q29uZmlndXJhdGlvbk1vbml0b3IuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJN0JGRjU5RjEyNzU3NzFFODAwNzczRDM5IC8qIERpc3BsYXlDb25maWd1cmF0aW9u
TW9uaXRvci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBEaXNwbGF5
Q29uZmlndXJhdGlvbk1vbml0b3IuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAt
Mjk4NzYsNiArMjk4NzksOCBAQAogCQkJCUExQURBRjdDMjM2MEZEM0UwMDlDQjc3NiAvKiBQcmV2
aWV3Q29udmVydGVyUHJvdmlkZXIuaCAqLywKIAkJCQk1MUY2NDVEMjFGRUNEQkM4MDBCNTRERUQg
LyogUHJvY2Vzc0lkZW50aWZpZXIuY3BwICovLAogCQkJCTUxRjY0NUQzMUZFQ0RCQzgwMEI1NERF
RCAvKiBQcm9jZXNzSWRlbnRpZmllci5oICovLAorCQkJCTdCRERBMzRCMjc1QTAxMzAwMDM4NjU5
RSAvKiBQcm9jZXNzSWRlbnRpdHkuY3BwICovLAorCQkJCTdCRERBMzQ5Mjc1QTAxMzAwMDM4NjU5
RSAvKiBQcm9jZXNzSWRlbnRpdHkuaCAqLywKIAkJCQkxQ0M1NEFGQjI3MEY5MkRBMDA1QkY4QkUg
LyogUHJvY2Vzc1F1YWxpZmllZC5oICovLAogCQkJCUY0N0E2MzNDMUZGNkZENTAwMDgxQjNDQyAv
KiBQcm9taXNlZEF0dGFjaG1lbnRJbmZvLmggKi8sCiAJCQkJMDA4MUZFRkQxNkIwQTI0NDAwOEFB
QTdBIC8qIFB1YmxpY1N1ZmZpeC5oICovLApAQCAtMzY0NDEsNiArMzY0NDYsNyBAQAogCQkJCUI3
MUZFNkRGMTEwOTFDQjMwMERBRUY3NyAvKiBQcmludENvbnRleHQuaCBpbiBIZWFkZXJzICovLAog
CQkJCTZCMEEwN0YyMjFGQTRCNUMwMEQ1NzM5MSAvKiBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudC5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJNTFGNjQ1RDUxRkVDREJDRTAwQjU0REVEIC8qIFByb2Nlc3NJ
ZGVudGlmaWVyLmggaW4gSGVhZGVycyAqLywKKwkJCQk3QkREQTM0QzI3NUEwMTMxMDAzODY1OUUg
LyogUHJvY2Vzc0lkZW50aXR5LmggaW4gSGVhZGVycyAqLywKIAkJCQlBOEVBN0VCQzBBMTk0NUQw
MDBBOEVGNUYgLyogUHJvY2Vzc2luZ0luc3RydWN0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQkx
Q0M1NEFGRTI3MEY5NkFFMDA1QkY4QkUgLyogUHJvY2Vzc1F1YWxpZmllZC5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJRTQyMDUwMTcyMTQxOTAxQjAwNjZFRjNCIC8qIFByb2Nlc3NXYXJtaW5nLmggaW4g
SGVhZGVycyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xvZ2dpbmcu
aCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xvZ2dpbmcuaAppbmRleCAzZmJlNDE3YmU5ODFi
NzVlNzc5ZGUyMzhmYzRiZTA1YTZkNzMwZmFhLi5kYzBmNTA5OGI4N2YxODQ1NTI1YmUzYzBiYTQx
Zjc2NzViMTQwNDdmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Mb2dnaW5n
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTG9nZ2luZy5oCkBAIC05NCw2ICs5NCw3
IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICBNKFBsdWdpbnMpIFwKICAgICBNKFBvcHVwQmxv
Y2tpbmcpIFwKICAgICBNKFByaXZhdGVDbGlja01lYXN1cmVtZW50KSBcCisgICAgTShQcm9jZXNz
KSBcCiAgICAgTShQcm9ncmVzcykgXAogICAgIE0oUmVtb3RlSW5zcGVjdG9yKSBcCiAgICAgTShS
ZXF1ZXN0QW5pbWF0aW9uRnJhbWUpIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL1Byb2Nlc3NJZGVudGl0eS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Qcm9jZXNz
SWRlbnRpdHkuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmRlOGQzMmFiNGVlMmEwMDJiYzVkMDYxMzIwNzdjNjY4
ODRiZjgwMzkKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Qcm9j
ZXNzSWRlbnRpdHkuY3BwCkBAIC0wLDAgKzEsNjUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICog
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZ
LCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQor
ICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiUHJv
Y2Vzc0lkZW50aXR5LmgiCisKKyNpbmNsdWRlICJMb2dnaW5nLmgiCisKKyNpZiBIQVZFKFRBU0tf
SURFTlRJVFlfVE9LRU4pCisjaW5jbHVkZSA8bWFjaC9tYWNoLmg+CisjZW5kaWYKKworbmFtZXNw
YWNlIFdlYkNvcmUgeworCitQcm9jZXNzSWRlbnRpdHk6OlByb2Nlc3NJZGVudGl0eShDdXJyZW50
UHJvY2Vzc1RhZykKK3sKKyNpZiBIQVZFKFRBU0tfSURFTlRJVFlfVE9LRU4pCisgICAgdGFza19p
ZF90b2tlbl90IGlkZW50aXR5VG9rZW47CisgICAga2Vybl9yZXR1cm5fdCBrciA9IHRhc2tfY3Jl
YXRlX2lkZW50aXR5X3Rva2VuKG1hY2hfdGFza19zZWxmKCksICZpZGVudGl0eVRva2VuKTsKKyAg
ICBpZiAoa3IgPT0gS0VSTl9TVUNDRVNTKQorICAgICAgICBtX3Rhc2tJZFRva2VuID0gTWFjaFNl
bmRSaWdodDo6YWRvcHQoaWRlbnRpdHlUb2tlbik7CisgICAgZWxzZQorICAgICAgICBSRUxFQVNF
X0xPR19FUlJPUihQcm9jZXNzLCAidGFza19jcmVhdGVfaWRlbnRpdHlfdG9rZW4oKSBmYWlsZWQ6
ICV7cHJpdmF0ZX1zICgleCkiLCBtYWNoX2Vycm9yX3N0cmluZyhrciksIGtyKTsKKyNlbmRpZgor
fQorCitQcm9jZXNzSWRlbnRpdHk6Om9wZXJhdG9yIGJvb2woKSBjb25zdAoreworI2lmIEhBVkUo
VEFTS19JREVOVElUWV9UT0tFTikKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8Ym9vbD4obV90YXNr
SWRUb2tlbik7CisjZWxzZQorICAgIHJldHVybiBmYWxzZTsKKyNlbmRpZgorfQorCisjaWYgSEFW
RShUQVNLX0lERU5USVRZX1RPS0VOKQorUHJvY2Vzc0lkZW50aXR5OjpQcm9jZXNzSWRlbnRpdHko
TWFjaFNlbmRSaWdodCYmIHRhc2tJZFRva2VuKQorICAgIDogbV90YXNrSWRUb2tlbihXVEZNb3Zl
KHRhc2tJZFRva2VuKSkKK3sKK30KKyNlbmRpZgorCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9Qcm9jZXNzSWRlbnRpdHkuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L1Byb2Nlc3NJZGVudGl0eS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjJlOWRjYjg2Y2FkZjVmYjU2ODNjOGIxYjUz
NjgwNWFjMWU3OWZhMjEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9Qcm9jZXNzSWRlbnRpdHkuaApAQCAtMCwwICsxLDkwIEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkK
KyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1Q
TEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlIDxvcHRp
b25hbD4KKworI2lmIEhBVkUoVEFTS19JREVOVElUWV9UT0tFTikKKyNpbmNsdWRlIDx3dGYvTWFj
aFNlbmRSaWdodC5oPgorI2Vsc2UKKyNpbmNsdWRlIDx2YXJpYW50PgorI2VuZGlmCisKK25hbWVz
cGFjZSBXZWJDb3JlIHsKKworLy8gT2JqZWN0IHRvIGFjY2VzcyBwcm9vZiBvZiBwcm9jZXNzIGlk
ZW50aXR5LgorLy8gUHJvY2Vzc0lkZW50aWZpZXIgaWRlbnRpZmllcyBhIHByb2Nlc3MuCisvLyBQ
cm9jZXNzSWRlbnRpdHkgZ3JhbnRzIGFjY2VzcyB0byB0aGUgaWRlbnRpdHkuCisvLyBFbXB0eSBQ
cm9jZXNzSWRlbnRpdHkgZG9lcyBub3QgZG8gYW55dGhpbmcuCitjbGFzcyBQcm9jZXNzSWRlbnRp
dHkgeworcHVibGljOgorICAgIC8vIENyZWF0ZXMgYW4gcHJvY2VzcyBpZGVudGl0eSBmb3IgY3Vy
cmVudCBwcm9jZXNzIG9yIGVtcHR5IG9uIGVycm9yLgorICAgIGVudW0gQ3VycmVudFByb2Nlc3NU
YWcgeyBDdXJyZW50UHJvY2VzcyB9OworICAgIFdFQkNPUkVfRVhQT1JUIGV4cGxpY2l0IFByb2Nl
c3NJZGVudGl0eShDdXJyZW50UHJvY2Vzc1RhZyk7CisKKyAgICAvLyBDcmVhdGVzIGFuIGVtcHR5
IHByb2Nlc3MgaWRlbnRpdHkgdGhhdCBkb2VzIG5vdCBncmFudCBhbnkgYWNjZXNzLgorICAgIFBy
b2Nlc3NJZGVudGl0eSgpID0gZGVmYXVsdDsKKworICAgIC8vIFJldHVybnMgdHJ1ZSBmb3IgYSBw
cm9jZXNzIGlkZW50aXR5IG9yIGZhbHNlIG9uIGVtcHR5IGlkZW50aXR5LgorICAgIFdFQkNPUkVf
RVhQT1JUIG9wZXJhdG9yIGJvb2woKSBjb25zdDsKKworI2lmIEhBVkUoVEFTS19JREVOVElUWV9U
T0tFTikKKyAgICB0YXNrX2lkX3Rva2VuX3QgdGFza0lkVG9rZW4oKSBjb25zdCB7IHJldHVybiBt
X3Rhc2tJZFRva2VuLnNlbmRSaWdodCgpOyB9CisjZW5kaWYKKworICAgIHRlbXBsYXRlPHR5cGVu
YW1lIEVuY29kZXI+IHZvaWQgZW5jb2RlKEVuY29kZXImKSBjb25zdDsKKyAgICB0ZW1wbGF0ZTx0
eXBlbmFtZSBEZWNvZGVyPiBzdGF0aWMgc3RkOjpvcHRpb25hbDxQcm9jZXNzSWRlbnRpdHk+IGRl
Y29kZShEZWNvZGVyJik7CisKK3ByaXZhdGU6CisjaWYgSEFWRShUQVNLX0lERU5USVRZX1RPS0VO
KQorICAgIFdFQkNPUkVfRVhQT1JUIFByb2Nlc3NJZGVudGl0eShNYWNoU2VuZFJpZ2h0JiYgdGFz
a0lkVG9rZW4pOworICAgIE1hY2hTZW5kUmlnaHQgbV90YXNrSWRUb2tlbjsKKyNlbmRpZgorfTsK
KwordGVtcGxhdGU8dHlwZW5hbWUgRW5jb2Rlcj4gdm9pZCBQcm9jZXNzSWRlbnRpdHk6OmVuY29k
ZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAoreworI2lmIEhBVkUoVEFTS19JREVOVElUWV9UT0tF
TikKKyAgICBlbmNvZGVyIDw8IG1fdGFza0lkVG9rZW47CisjZWxzZQorICAgIFVOVVNFRF9QQVJB
TShlbmNvZGVyKTsKKyNlbmRpZgorfQorCit0ZW1wbGF0ZTx0eXBlbmFtZSBEZWNvZGVyPiBzdGQ6
Om9wdGlvbmFsPFByb2Nlc3NJZGVudGl0eT4gUHJvY2Vzc0lkZW50aXR5OjpkZWNvZGUoRGVjb2Rl
ciYgZGVjb2RlcikKK3sKKyNpZiBIQVZFKFRBU0tfSURFTlRJVFlfVE9LRU4pCisgICAgc3RkOjpv
cHRpb25hbDxNYWNoU2VuZFJpZ2h0PiBpZGVudGl0eVNlbmRSaWdodDsKKyAgICBkZWNvZGVyID4+
IGlkZW50aXR5U2VuZFJpZ2h0OworICAgIGlmIChpZGVudGl0eVNlbmRSaWdodCkKKyAgICAgICAg
cmV0dXJuIFByb2Nlc3NJZGVudGl0eSB7IFdURk1vdmUoKmlkZW50aXR5U2VuZFJpZ2h0KSB9Owor
I2Vsc2UKKyAgICBVTlVTRURfUEFSQU0oZGVjb2Rlcik7CisjZW5kaWYKKyAgICByZXR1cm4gc3Rk
OjpudWxsb3B0OworfQorCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9SZW1vdGVWaWRlb1NhbXBsZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvUmVtb3RlVmlkZW9TYW1wbGUuaAppbmRleCBhNjE3MGIzMjhmYzQ0YWNlNjkzZGNkYjM1
ZWU0ZDNjZTY4NzMzOGExLi4wODFlMjM1NjVhY2M0ODQwYTgwNGM3ZDA3NGU2ZGYyMDU5ODM5ZjE3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9SZW1vdGVWaWRl
b1NhbXBsZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1JlbW90ZVZp
ZGVvU2FtcGxlLmgKQEAgLTM3LDYgKzM3LDggQEAgdHlwZWRlZiBzdHJ1Y3QgX19DVkJ1ZmZlciog
Q1ZQaXhlbEJ1ZmZlclJlZjsKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCitjbGFzcyBQcm9jZXNz
SWRlbnRpdHk7CisKIGNsYXNzIFJlbW90ZVZpZGVvU2FtcGxlIHsKIHB1YmxpYzoKICAgICBSZW1v
dGVWaWRlb1NhbXBsZSgpID0gZGVmYXVsdDsKQEAgLTQ4LDkgKzUwLDcgQEAgcHVibGljOgogICAg
IFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8UmVtb3RlVmlkZW9TYW1wbGU+
IGNyZWF0ZShSZXRhaW5QdHI8Q1ZQaXhlbEJ1ZmZlclJlZj4mJiwgTWVkaWFUaW1lJiYgcHJlc2Vu
dGF0aW9uVGltZSwgTWVkaWFTYW1wbGU6OlZpZGVvUm90YXRpb24gPSBNZWRpYVNhbXBsZTo6Vmlk
ZW9Sb3RhdGlvbjo6Tm9uZSk7CiAgICAgV0VCQ09SRV9FWFBPUlQgSU9TdXJmYWNlUmVmIHN1cmZh
Y2UoKSBjb25zdDsKIAotI2lmIEhBVkUoSU9TVVJGQUNFX1NFVF9PV05FUlNISVBfSURFTlRJVFkp
Ci0gICAgdm9pZCBzZXRPd25lcnNoaXBJZGVudGl0eSh0YXNrX2lkX3Rva2VuX3QgbmV3T3duZXIp
OwotI2VuZGlmCisgICAgdm9pZCBzZXRPd25lcnNoaXBJZGVudGl0eShjb25zdCBQcm9jZXNzSWRl
bnRpdHkmKTsKIAogICAgIGNvbnN0IE1lZGlhVGltZSYgdGltZSgpIGNvbnN0IHsgcmV0dXJuIG1f
dGltZTsgfQogICAgIHVpbnQzMl90IHZpZGVvRm9ybWF0KCkgY29uc3QgeyByZXR1cm4gbV92aWRl
b0Zvcm1hdDsgfQpAQCAtMTE5LDEzICsxMTksMTEgQEAgcHJpdmF0ZToKICAgICBib29sIG1fbWly
cm9yZWQgeyBmYWxzZSB9OwogfTsKIAotI2lmIEhBVkUoSU9TVVJGQUNFX1NFVF9PV05FUlNISVBf
SURFTlRJVFkpCi1pbmxpbmUgdm9pZCBSZW1vdGVWaWRlb1NhbXBsZTo6c2V0T3duZXJzaGlwSWRl
bnRpdHkodGFza19pZF90b2tlbl90IG5ld093bmVyKQoraW5saW5lIHZvaWQgUmVtb3RlVmlkZW9T
YW1wbGU6OnNldE93bmVyc2hpcElkZW50aXR5KGNvbnN0IFByb2Nlc3NJZGVudGl0eSYgcmVzb3Vy
Y2VPd25lcikKIHsKICAgICBpZiAobV9pb1N1cmZhY2UpCi0gICAgICAgIG1faW9TdXJmYWNlLT5z
ZXRPd25lcnNoaXBJZGVudGl0eShuZXdPd25lcik7CisgICAgICAgIG1faW9TdXJmYWNlLT5zZXRP
d25lcnNoaXBJZGVudGl0eShyZXNvdXJjZU93bmVyKTsKIH0KLSNlbmRpZgogCiB9CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2FuZ2xlL0dyYXBoaWNzQ29u
dGV4dEdMQU5HTEUuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2FuZ2xlL0dy
YXBoaWNzQ29udGV4dEdMQU5HTEUuaAppbmRleCA0M2Q1ZDI5MGRkNjgyY2E1OTY1NjAxMTBhNjZh
NWE3ZGE4Zjg1MmEwLi45NzRlYmIzNTFmYzYzZDM4NGZkNGE3Yzk5NzlhZjBkMjY0NTgzOWMwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hbmdsZS9HcmFwaGlj
c0NvbnRleHRHTEFOR0xFLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
YW5nbGUvR3JhcGhpY3NDb250ZXh0R0xBTkdMRS5oCkBAIC0zNiw2ICszNiw3IEBACiAjaWYgUExB
VEZPUk0oQ09DT0EpCiAjaW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0R0xJT1N1cmZhY2VTd2FwQ2hh
aW4uaCIKICNpbmNsdWRlICJJT1N1cmZhY2UuaCIKKyNpbmNsdWRlICJQcm9jZXNzSWRlbnRpdHku
aCIKICNlbmRpZgogCiAKQEAgLTQyNyw2ICs0MjgsNyBAQCBwcm90ZWN0ZWQ6CiAgICAgc3RkOjp1
bmlxdWVfcHRyPEV4dGVuc2lvbnNHTEFOR0xFPiBtX2V4dGVuc2lvbnM7CiAKICNpZiBQTEFURk9S
TShDT0NPQSkKKyAgICAvLyBGSVhNRTogTW92ZSB0aGVzZSB0byBHcmFwaGljc0NvbnRleHRHTENv
Y29hLgogICAgIEdyYXBoaWNzQ29udGV4dEdMSU9TdXJmYWNlU3dhcENoYWluIG1fc3dhcENoYWlu
OwogICAgIEVHTERpc3BsYXkgbV9kaXNwbGF5T2JqIHsgbnVsbHB0ciB9OwogICAgIFBsYXRmb3Jt
R3JhcGhpY3NDb250ZXh0R0wgbV9jb250ZXh0T2JqIHsgbnVsbHB0ciB9OwpAQCAtNDM2LDYgKzQz
OCw3IEBAIHByb3RlY3RlZDoKICAgICAvLyBXaGVuIHByZXNlcnZlRHJhd2luZ0J1ZmZlciA9PSB0
cnVlLCB0aGlzIGlzIGJsaXR0ZWQgdG8gZHVyaW5nIGRpc3BsYXkgcHJlcGFyZS4KICAgICBzdGQ6
OnVuaXF1ZV9wdHI8SU9TdXJmYWNlPiBtX2Rpc3BsYXlCdWZmZXJCYWNraW5nOwogICAgIHZvaWQq
IG1fZGlzcGxheUJ1ZmZlclBidWZmZXIgeyBudWxscHRyIH07CisgICAgUHJvY2Vzc0lkZW50aXR5
IG1fcmVzb3VyY2VPd25lcjsKICNlbmRpZgogI2lmIFVTRShDT09SRElOQVRFRF9HUkFQSElDUykK
ICAgICBHQ0dMdWludCBtX2NvbXBvc2l0b3JUZXh0dXJlIHsgMCB9OwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvR3JhcGhpY3NDb250ZXh0R0xDb2Nv
YS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvR3JhcGhpY3NDb250
ZXh0R0xDb2NvYS5oCmluZGV4IGE2NDhmY2QyZWM0ZjBiOWI1MWUzMDIzNjllMDEyNDliNTJkOWI0
ZTQuLjkxZTY0NzA4MDNhNTQ4YzYxYjk1ODY3NzRiY2E5NTUxNWQ5NWRkODggMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0dyYXBoaWNzQ29udGV4dEdM
Q29jb2EuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9HcmFw
aGljc0NvbnRleHRHTENvY29hLmgKQEAgLTQyLDkgKzQyLDExIEBAIGNsYXNzIEdyYXBoaWNzQ29u
dGV4dEdMQ1ZDb2NvYTsKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCitjbGFzcyBQcm9jZXNzSWRl
bnRpdHk7CisKIGNsYXNzIFdFQkNPUkVfRVhQT1JUIEdyYXBoaWNzQ29udGV4dEdMQ29jb2EgOiBw
dWJsaWMgR3JhcGhpY3NDb250ZXh0R0xBTkdMRSB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZlB0
cjxHcmFwaGljc0NvbnRleHRHTENvY29hPiBjcmVhdGUoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0
R0xBdHRyaWJ1dGVzJiYpOworICAgIHN0YXRpYyBSZWZQdHI8R3JhcGhpY3NDb250ZXh0R0xDb2Nv
YT4gY3JlYXRlKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dEdMQXR0cmlidXRlcyYmLCBQcm9jZXNz
SWRlbnRpdHkmJiByZXNvdXJjZU93bmVyKTsKICAgICB+R3JhcGhpY3NDb250ZXh0R0xDb2NvYSgp
OwogICAgIElPU3VyZmFjZSogZGlzcGxheUJ1ZmZlcigpOwogICAgIHZvaWQgbWFya0Rpc3BsYXlC
dWZmZXJJblVzZSgpOwpAQCAtNzYsOSArNzgsOCBAQCBwdWJsaWM6CiAgICAgdm9pZCB1cGRhdGVD
b250ZXh0T25EaXNwbGF5UmVjb25maWd1cmF0aW9uKCk7CiAjZW5kaWYKIHByb3RlY3RlZDoKLSAg
ICBHcmFwaGljc0NvbnRleHRHTENvY29hKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dEdMQXR0cmli
dXRlcyYmKTsKKyAgICBHcmFwaGljc0NvbnRleHRHTENvY29hKFdlYkNvcmU6OkdyYXBoaWNzQ29u
dGV4dEdMQXR0cmlidXRlcyYmLCBQcm9jZXNzSWRlbnRpdHkmJiByZXNvdXJjZU93bmVyKTsKICAg
ICBib29sIGlzVmFsaWQoKSBjb25zdDsKLQogI2lmIEVOQUJMRShWSURFTykKICAgICBzdGQ6OnVu
aXF1ZV9wdHI8R3JhcGhpY3NDb250ZXh0R0xDVkNvY29hPiBtX2N2OwogI2VuZGlmCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9HcmFwaGljc0NvbnRl
eHRHTENvY29hLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvR3Jh
cGhpY3NDb250ZXh0R0xDb2NvYS5tbQppbmRleCA1YWYzNWNjMzhhOGIyNzJmODgxNmZmZWJhYzNi
ZDczN2NiMDUwZDJlLi45YWIyZDc0NDEwYTA2YmMwZGU2NDE1MGU4ZTEyMDNlMDUzYWQ1OTRiIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9HcmFwaGlj
c0NvbnRleHRHTENvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2NvY29hL0dyYXBoaWNzQ29udGV4dEdMQ29jb2EubW0KQEAgLTM1LDYgKzM1LDcgQEAKICNpbXBv
cnQgIkdyYXBoaWNzQ29udGV4dEdMSU9TdXJmYWNlU3dhcENoYWluLmgiCiAjaW1wb3J0ICJHcmFw
aGljc0NvbnRleHRHTE9wZW5HTE1hbmFnZXIuaCIKICNpbXBvcnQgIkxvZ2dpbmcuaCIKKyNpbXBv
cnQgIlByb2Nlc3NJZGVudGl0eS5oIgogI2ltcG9ydCAiUnVudGltZUFwcGxpY2F0aW9uQ2hlY2tz
LmgiCiAjaW1wb3J0IDxDb3JlR3JhcGhpY3MvQ0dCaXRtYXBDb250ZXh0Lmg+CiAjaW1wb3J0IDxN
ZXRhbC9NZXRhbC5oPgpAQCAtMTkyLDE5ICsxOTMsMjIgQEAgc3RhdGljIGJvb2wgbmVlZHNFQUdM
T25NYWMoKQogfQogI2VuZGlmCiAKLVJlZlB0cjxHcmFwaGljc0NvbnRleHRHTENvY29hPiBHcmFw
aGljc0NvbnRleHRHTENvY29hOjpjcmVhdGUoR3JhcGhpY3NDb250ZXh0R0xBdHRyaWJ1dGVzJiYg
YXR0cmlidXRlcykKK1JlZlB0cjxHcmFwaGljc0NvbnRleHRHTENvY29hPiBHcmFwaGljc0NvbnRl
eHRHTENvY29hOjpjcmVhdGUoR3JhcGhpY3NDb250ZXh0R0xBdHRyaWJ1dGVzJiYgYXR0cmlidXRl
cywgUHJvY2Vzc0lkZW50aXR5JiYgcmVzb3VyY2VPd25lcikKIHsKLSAgICBhdXRvIGNvbnRleHQg
PSBhZG9wdFJlZigqbmV3IEdyYXBoaWNzQ29udGV4dEdMQ29jb2EoV1RGTW92ZShhdHRyaWJ1dGVz
KSkpOworICAgIGF1dG8gY29udGV4dCA9IGFkb3B0UmVmKCpuZXcgR3JhcGhpY3NDb250ZXh0R0xD
b2NvYShXVEZNb3ZlKGF0dHJpYnV0ZXMpLCBXVEZNb3ZlKHJlc291cmNlT3duZXIpKSk7CiAgICAg
aWYgKCFjb250ZXh0LT5pc1ZhbGlkKCkpCiAgICAgICAgIHJldHVybiBudWxscHRyOwogICAgIHJl
dHVybiBjb250ZXh0OwogfQogCi1HcmFwaGljc0NvbnRleHRHTENvY29hOjpHcmFwaGljc0NvbnRl
eHRHTENvY29hKEdyYXBoaWNzQ29udGV4dEdMQXR0cmlidXRlcyYmIGNyZWF0aW9uQXR0cmlidXRl
cykKK0dyYXBoaWNzQ29udGV4dEdMQ29jb2E6OkdyYXBoaWNzQ29udGV4dEdMQ29jb2EoR3JhcGhp
Y3NDb250ZXh0R0xBdHRyaWJ1dGVzJiYgY3JlYXRpb25BdHRyaWJ1dGVzLCBQcm9jZXNzSWRlbnRp
dHkmJiByZXNvdXJjZU93bmVyKQogICAgIDogR3JhcGhpY3NDb250ZXh0R0xBTkdMRShXVEZNb3Zl
KGNyZWF0aW9uQXR0cmlidXRlcykpCiB7CiAgICAgaWYgKCFpc1ZhbGlkKCkpCiAgICAgICAgIHJl
dHVybjsKKyAgICAvLyBGSVhNRTogTW92ZSB0aGlzIHRvIGluaXRpYWxpemVyIGxpc3Qgb25jZSBt
X3Jlc291cmNlT3duZXIgbW92ZXMgdG8gR3JhcGhpY3NDb250ZXh0R0xDb2NvYS4KKyAgICBtX3Jl
c291cmNlT3duZXIgPSBXVEZNb3ZlKHJlc291cmNlT3duZXIpOworCiAjaWYgUExBVEZPUk0oTUFD
KQogICAgIGF1dG8gYXR0cmlidXRlcyA9IGNvbnRleHRBdHRyaWJ1dGVzKCk7CiAgICAgaWYgKCFh
dHRyaWJ1dGVzLnVzZU1ldGFsICYmIGF0dHJpYnV0ZXMuZWZmZWN0aXZlUG93ZXJQcmVmZXJlbmNl
KCkgPT0gR3JhcGhpY3NDb250ZXh0R0xQb3dlclByZWZlcmVuY2U6OkhpZ2hQZXJmb3JtYW5jZSkK
QEAgLTU1Nyw3ICs1NjEsOCBAQCBib29sIEdyYXBoaWNzQ29udGV4dEdMQU5HTEU6OmFsbG9jYXRl
QW5kQmluZERpc3BsYXlCdWZmZXJCYWNraW5nKCkKICAgICBhdXRvIGJhY2tpbmcgPSBJT1N1cmZh
Y2U6OmNyZWF0ZShnZXRJbnRlcm5hbEZyYW1lYnVmZmVyU2l6ZSgpLCBEZXN0aW5hdGlvbkNvbG9y
U3BhY2U6OlNSR0IoKSk7CiAgICAgaWYgKCFiYWNraW5nKQogICAgICAgICByZXR1cm4gZmFsc2U7
Ci0KKyAgICBpZiAobV9yZXNvdXJjZU93bmVyKQorICAgICAgICBiYWNraW5nLT5zZXRPd25lcnNo
aXBJZGVudGl0eShtX3Jlc291cmNlT3duZXIpOwogICAgIGJhY2tpbmctPm1pZ3JhdGVDb2xvclNw
YWNlVG9Qcm9wZXJ0aWVzKCk7CiAKICAgICBjb25zdCBib29sIHVzaW5nQWxwaGEgPSBjb250ZXh0
QXR0cmlidXRlcygpLmFscGhhOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY29jb2EvSU9TdXJmYWNlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jb2NvYS9JT1N1cmZhY2UuaAppbmRleCA1NjUyNDc4MjJkYmEyOWY3NjAwYjk0MDdlNmY0
YWNiOGMxYTA2YWFjLi4xZTljNzMyOGRkYzc1NmJjNDZlMjhmMWE1ZWE0YWY1NDNjNGFhNmJmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9JT1N1cmZh
Y2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9JT1N1cmZh
Y2UuaApAQCAtNDYsNiArNDYsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBHcmFwaGlj
c0NvbnRleHQ7CiBjbGFzcyBIb3N0V2luZG93OwogY2xhc3MgSW1hZ2VCdWZmZXI7CitjbGFzcyBQ
cm9jZXNzSWRlbnRpdHk7CiAKIGVudW0gY2xhc3MgUGl4ZWxGb3JtYXQgOiB1aW50OF90OwogZW51
bSBjbGFzcyBWb2xhdGlsaXR5U3RhdGUgOiB1aW50OF90OwpAQCAtMTU5LDkgKzE2MCw3IEBAIHB1
YmxpYzoKICAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgdm9pZCBjb252ZXJ0VG9Gb3JtYXQoc3Rk
Ojp1bmlxdWVfcHRyPFdlYkNvcmU6OklPU3VyZmFjZT4mJiBpblN1cmZhY2UsIEZvcm1hdCwgRnVu
Y3Rpb248dm9pZChzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6SU9TdXJmYWNlPik+JiYpOwogI2Vu
ZGlmIC8vIEhBVkUoSU9TVVJGQUNFX0FDQ0VMRVJBVE9SKQogCi0jaWYgSEFWRShJT1NVUkZBQ0Vf
U0VUX09XTkVSU0hJUF9JREVOVElUWSkKLSAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldE93bmVy
c2hpcElkZW50aXR5KHRhc2tfaWRfdG9rZW5fdCBuZXdPd25lcik7Ci0jZW5kaWYKKyAgICBXRUJD
T1JFX0VYUE9SVCB2b2lkIHNldE93bmVyc2hpcElkZW50aXR5KGNvbnN0IFByb2Nlc3NJZGVudGl0
eSYpOwogCiAgICAgdm9pZCBtaWdyYXRlQ29sb3JTcGFjZVRvUHJvcGVydGllcygpOwogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9JT1N1cmZhY2Uu
bW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9JT1N1cmZhY2UubW0K
aW5kZXggMDExMTY1Y2UxMWFiY2U2NzVjNGI0N2JmOTE1ZDRjODFlNmNlZTk5NS4uY2JiM2YyYmRk
NGMzY2NiNGZkYzk4ZjZkY2U5ZjE0NjkwYmRlZTAxMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvSU9TdXJmYWNlLm1tCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0lPU3VyZmFjZS5tbQpAQCAtMzQsNiArMzQsNyBA
QAogI2ltcG9ydCAiSW1hZ2VCdWZmZXIuaCIKICNpbXBvcnQgIkxvZ2dpbmcuaCIKICNpbXBvcnQg
IlBsYXRmb3JtU2NyZWVuLmgiCisjaW1wb3J0ICJQcm9jZXNzSWRlbnRpdHkuaCIKICNpbXBvcnQg
PHBhbC9zcGkvY2cvQ29yZUdyYXBoaWNzU1BJLmg+CiAjaW1wb3J0IDx3dGYvQXNzZXJ0aW9ucy5o
PgogI2ltcG9ydCA8d3RmL01hY2hTZW5kUmlnaHQuaD4KQEAgLTQ4NCwxNCArNDg1LDE4IEBAIHZv
aWQgSU9TdXJmYWNlOjpjb252ZXJ0VG9Gb3JtYXQoc3RkOjp1bmlxdWVfcHRyPElPU3VyZmFjZT4m
JiBpblN1cmZhY2UsIEZvcm1hdCBmCiAKICNlbmRpZiAvLyBIQVZFKElPU1VSRkFDRV9BQ0NFTEVS
QVRPUikKIAotI2lmIEhBVkUoSU9TVVJGQUNFX1NFVF9PV05FUlNISVBfSURFTlRJVFkpCi12b2lk
IElPU3VyZmFjZTo6c2V0T3duZXJzaGlwSWRlbnRpdHkodGFza19pZF90b2tlbl90IG5ld093bmVy
KQordm9pZCBJT1N1cmZhY2U6OnNldE93bmVyc2hpcElkZW50aXR5KGNvbnN0IFByb2Nlc3NJZGVu
dGl0eSYgcmVzb3VyY2VPd25lcikKIHsKLSAgICBhdXRvIHJlc3VsdCA9IElPU3VyZmFjZVNldE93
bmVyc2hpcElkZW50aXR5KG1fc3VyZmFjZS5nZXQoKSwgbmV3T3duZXIsIGtJT1N1cmZhY2VNZW1v
cnlMZWRnZXJUYWdHcmFwaGljcywgMCk7CisgICAgQVNTRVJUKHJlc291cmNlT3duZXIpOworI2lm
IEhBVkUoSU9TVVJGQUNFX1NFVF9PV05FUlNISVBfSURFTlRJVFkpICYmIEhBVkUoVEFTS19JREVO
VElUWV9UT0tFTikKKyAgICB0YXNrX2lkX3Rva2VuX3Qgb3duZXJUYXNrSWRUb2tlbiA9IHJlc291
cmNlT3duZXIudGFza0lkVG9rZW4oKTsKKyAgICBhdXRvIHJlc3VsdCA9IElPU3VyZmFjZVNldE93
bmVyc2hpcElkZW50aXR5KG1fc3VyZmFjZS5nZXQoKSwgb3duZXJUYXNrSWRUb2tlbiwga0lPU3Vy
ZmFjZU1lbW9yeUxlZGdlclRhZ0dyYXBoaWNzLCAwKTsKICAgICBpZiAocmVzdWx0ICE9IGtJT1Jl
dHVyblN1Y2Nlc3MpCi0gICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKElPU3VyZmFjZSwgIklPU3Vy
ZmFjZTo6c2V0T3duZXJzaGlwSWRlbnRpdHk6IEZhaWxlZCB0byBjbGFpbSBvd25lcnNoaXAgb2Yg
SU9TdXJmYWNlICVwLCBuZXdPd25lcjogJWQsIGVycm9yOiAlZCIsIG1fc3VyZmFjZS5nZXQoKSwg
KGludCluZXdPd25lciwgcmVzdWx0KTsKLX0KKyAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoSU9T
dXJmYWNlLCAiSU9TdXJmYWNlOjpzZXRPd25lcnNoaXBJZGVudGl0eTogRmFpbGVkIHRvIGNsYWlt
IG93bmVyc2hpcCBvZiBJT1N1cmZhY2UgJXAsIHRhc2sgaWQgdG9rZW46ICVkLCBlcnJvcjogJWQi
LCBtX3N1cmZhY2UuZ2V0KCksIChpbnQpb3duZXJUYXNrSWRUb2tlbiwgcmVzdWx0KTsKKyNlbHNl
CisgICAgVU5VU0VEX1BBUkFNKHJlc291cmNlT3duZXIpOwogI2VuZGlmCit9CiAKIHZvaWQgSU9T
dXJmYWNlOjptaWdyYXRlQ29sb3JTcGFjZVRvUHJvcGVydGllcygpCiB7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9XZWJQcm9jZXNzR3JhcGhpY3ND
b250ZXh0R0xDb2NvYS5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29h
L1dlYlByb2Nlc3NHcmFwaGljc0NvbnRleHRHTENvY29hLm1tCmluZGV4IDI1NDI2MjMwZGZlZGFk
MmM1ZWI5MTA0MjRhMDhhNzJlMzcxN2IyZDcuLjhkNWQyNWFiMTBiNDVlM2Y5YTZlODM4YWUxMDk0
MWU2ZmMwZTVlMzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2NvY29hL1dlYlByb2Nlc3NHcmFwaGljc0NvbnRleHRHTENvY29hLm1tCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1dlYlByb2Nlc3NHcmFwaGljc0NvbnRleHRH
TENvY29hLm1tCkBAIC0yOSw2ICsyOSw3IEBACiAjaWYgRU5BQkxFKFdFQkdMKQogI2ltcG9ydCAi
R3JhcGhpY3NDb250ZXh0R0xDb2NvYS5oIiAvLyBOT0xJTlQKICNpbXBvcnQgIkdyYXBoaWNzQ29u
dGV4dEdMT3BlbkdMTWFuYWdlci5oIgorI2ltcG9ydCAiUHJvY2Vzc0lkZW50aXR5LmgiCiAjaW1w
b3J0ICJXZWJHTExheWVyLmgiCiAjaW1wb3J0IDx3dGYvQmxvY2tPYmpDRXhjZXB0aW9ucy5oPgog
CkBAIC03Nyw3ICs3OCw3IEBAIHByaXZhdGU6CiB9OwogCiBXZWJQcm9jZXNzR3JhcGhpY3NDb250
ZXh0R0xDb2NvYTo6V2ViUHJvY2Vzc0dyYXBoaWNzQ29udGV4dEdMQ29jb2EoR3JhcGhpY3NDb250
ZXh0R0xBdHRyaWJ1dGVzJiYgYXR0cmlidXRlcykKLSAgICA6IEdyYXBoaWNzQ29udGV4dEdMQ29j
b2EoV1RGTW92ZShhdHRyaWJ1dGVzKSkKKyAgICA6IEdyYXBoaWNzQ29udGV4dEdMQ29jb2EoV1RG
TW92ZShhdHRyaWJ1dGVzKSwgeyB9KQogICAgICwgbV93ZWJHTExheWVyKGNyZWF0ZVdlYkdMTGF5
ZXIoY29udGV4dEF0dHJpYnV0ZXMoKSkpCiB7CiAjaWYgUExBVEZPUk0oTUFDKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3Bw
IGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3Bw
CmluZGV4IDkyYzNjYzk3Yjc2NjY0NmUwNjg0MDI4MmIxMGU4ZGYwNTI2YjYwY2UuLjJjYTkwZjUw
YzNiMWU5YTYxYWY3MWU3NTRjNTgwZTNjN2NjNTY0Y2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvR1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L0dQVVByb2Nlc3MvR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAKQEAgLTIwNywx
MiArMjA3LDExIEBAIHByaXZhdGU6CiAgICAgICAgIG1fcHJvY2Vzcy5zdGFydENhcHR1cmluZ0F1
ZGlvKCk7CiAgICAgfQogI2VuZGlmCi0jaWYgSEFWRShJT1NVUkZBQ0VfU0VUX09XTkVSU0hJUF9J
REVOVElUWSkKLSAgICBzdGQ6Om9wdGlvbmFsPHRhc2tfaWRfdG9rZW5fdD4gd2ViUHJvY2Vzc0lk
ZW50aXR5VG9rZW4oKSBjb25zdCBmaW5hbAorCisgICAgY29uc3QgUHJvY2Vzc0lkZW50aXR5JiBy
ZXNvdXJjZU93bmVyKCkgY29uc3QgZmluYWwKICAgICB7Ci0gICAgICAgIHJldHVybiBtX3Byb2Nl
c3Mud2ViUHJvY2Vzc0lkZW50aXR5VG9rZW4oKTsKKyAgICAgICAgcmV0dXJuIG1fcHJvY2Vzcy53
ZWJQcm9jZXNzSWRlbnRpdHkoKTsKICAgICB9Ci0jZW5kaWYKIAogICAgIEdQVUNvbm5lY3Rpb25U
b1dlYlByb2Nlc3MmIG1fcHJvY2VzczsKIH07CkBAIC0yMjgsOSArMjI3LDcgQEAgR1BVQ29ubmVj
dGlvblRvV2ViUHJvY2Vzczo6R1BVQ29ubmVjdGlvblRvV2ViUHJvY2VzcyhHUFVQcm9jZXNzJiBn
cHVQcm9jZXNzLCBXZWIKICAgICA6IG1fY29ubmVjdGlvbihJUEM6OkNvbm5lY3Rpb246OmNyZWF0
ZVNlcnZlckNvbm5lY3Rpb24oY29ubmVjdGlvbklkZW50aWZpZXIsICp0aGlzKSkKICAgICAsIG1f
Z3B1UHJvY2VzcyhncHVQcm9jZXNzKQogICAgICwgbV93ZWJQcm9jZXNzSWRlbnRpZmllcih3ZWJQ
cm9jZXNzSWRlbnRpZmllcikKLSNpZiBIQVZFKFRBU0tfSURFTlRJVFlfVE9LRU4pCi0gICAgLCBt
X3dlYlByb2Nlc3NJZGVudGl0eVRva2VuKFdURk1vdmUocGFyYW1ldGVycy53ZWJQcm9jZXNzSWRl
bnRpdHlUb2tlbikpCi0jZW5kaWYKKyAgICAsIG1fd2ViUHJvY2Vzc0lkZW50aXR5KFdURk1vdmUo
cGFyYW1ldGVycy53ZWJQcm9jZXNzSWRlbnRpdHkpKQogICAgICwgbV9yZW1vdGVNZWRpYVBsYXll
ck1hbmFnZXJQcm94eShtYWtlVW5pcXVlUmVmPFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5
PigqdGhpcykpCiAgICAgLCBtX3Nlc3Npb25JRChzZXNzaW9uSUQpCiAjaWYgUExBVEZPUk0oQ09D
T0EpICYmIFVTRShMSUJXRUJSVEMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nl
c3MvR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNz
L0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaAppbmRleCBlMzkyM2RiNTczNDgxYzhlNjlhOWE3
NjEyNjMyNzM3NzA5ZGQ5N2ZhLi5iNDU5MDdmMjU0MzhlM2Q3Yjg4ZjQ3NDZjYzQ4MDhlZjRmNDI3
Y2ZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvR1BVQ29ubmVjdGlvblRv
V2ViUHJvY2Vzcy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9u
VG9XZWJQcm9jZXNzLmgKQEAgLTQxLDYgKzQxLDcgQEAKICNpbmNsdWRlIDxXZWJDb3JlL05vd1Bs
YXlpbmdNYW5hZ2VyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9QYWdlSWRlbnRpZmllci5oPgogI2lu
Y2x1ZGUgPFdlYkNvcmUvUHJvY2Vzc0lkZW50aWZpZXIuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1By
b2Nlc3NJZGVudGl0eS5oPgogI2luY2x1ZGUgPHBhbC9TZXNzaW9uSUQuaD4KICNpbmNsdWRlIDx3
dGYvTG9nZ2VyLmg+CiAjaW5jbHVkZSA8d3RmL01hY2hTZW5kUmlnaHQuaD4KQEAgLTE1NSwxMCAr
MTU2LDcgQEAgcHVibGljOgogICAgIHZvaWQgZGlzcGF0Y2hEaXNwbGF5V2FzUmVjb25maWd1cmVk
Rm9yVGVzdGluZygpIHsgZGlzcGF0Y2hEaXNwbGF5V2FzUmVjb25maWd1cmVkKCk7IH07CiAjZW5k
aWYKIAotI2lmIEhBVkUoVEFTS19JREVOVElUWV9UT0tFTikKLSAgICB0YXNrX2lkX3Rva2VuX3Qg
d2ViUHJvY2Vzc0lkZW50aXR5VG9rZW4oKSBjb25zdCB7IHJldHVybiBzdGF0aWNfY2FzdDx0YXNr
X2lkX3Rva2VuX3Q+KG1fd2ViUHJvY2Vzc0lkZW50aXR5VG9rZW4uc2VuZFJpZ2h0KCkpOyB9Ci0j
ZW5kaWYKLQorICAgIGNvbnN0IFdlYkNvcmU6OlByb2Nlc3NJZGVudGl0eSYgd2ViUHJvY2Vzc0lk
ZW50aXR5KCkgY29uc3QgeyByZXR1cm4gbV93ZWJQcm9jZXNzSWRlbnRpdHk7IH0KICNpZiBFTkFC
TEUoRU5DUllQVEVEX01FRElBKQogICAgIFJlbW90ZUNETUZhY3RvcnlQcm94eSYgY2RtRmFjdG9y
eVByb3h5KCk7CiAjZW5kaWYKQEAgLTI4Myw5ICsyODEsNyBAQCBwcml2YXRlOgogICAgIElQQzo6
TWVzc2FnZVJlY2VpdmVyTWFwIG1fbWVzc2FnZVJlY2VpdmVyTWFwOwogICAgIFJlZjxHUFVQcm9j
ZXNzPiBtX2dwdVByb2Nlc3M7CiAgICAgY29uc3QgV2ViQ29yZTo6UHJvY2Vzc0lkZW50aWZpZXIg
bV93ZWJQcm9jZXNzSWRlbnRpZmllcjsKLSNpZiBIQVZFKFRBU0tfSURFTlRJVFlfVE9LRU4pCi0g
ICAgTWFjaFNlbmRSaWdodCBtX3dlYlByb2Nlc3NJZGVudGl0eVRva2VuOwotI2VuZGlmCisgICAg
Y29uc3QgV2ViQ29yZTo6UHJvY2Vzc0lkZW50aXR5IG1fd2ViUHJvY2Vzc0lkZW50aXR5OwogI2lm
IEVOQUJMRShXRUJfQVVESU8pCiAgICAgc3RkOjp1bmlxdWVfcHRyPFJlbW90ZUF1ZGlvRGVzdGlu
YXRpb25NYW5hZ2VyPiBtX3JlbW90ZUF1ZGlvRGVzdGluYXRpb25NYW5hZ2VyOwogI2VuZGlmCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlR3JhcGhp
Y3NDb250ZXh0R0xDb2NvYS5jcHAgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3Mv
UmVtb3RlR3JhcGhpY3NDb250ZXh0R0xDb2NvYS5jcHAKaW5kZXggMTBhNTM2Mjk5Y2YyM2ViOWY4
NmY1NzI3ZTg1MjM4M2NlOGEwNDAwOC4uOWQ3NjdlYzIxNjUzZTcwZWU0OThiNGU4OTNlZjNkNzc4
YTMwMDRkYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1Jl
bW90ZUdyYXBoaWNzQ29udGV4dEdMQ29jb2EuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJv
Y2Vzcy9ncmFwaGljcy9SZW1vdGVHcmFwaGljc0NvbnRleHRHTENvY29hLmNwcApAQCAtMjksNiAr
MjksNyBAQAogI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykgJiYgRU5BQkxFKFdFQkdMKSAmJiBQTEFU
Rk9STShDT0NPQSkKIAogI2luY2x1ZGUgIkdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaCIKKyNp
bmNsdWRlIDxXZWJDb3JlL1Byb2Nlc3NJZGVudGl0eS5oPgogI2luY2x1ZGUgPHd0Zi9NYWNoU2Vu
ZFJpZ2h0Lmg+CiAKIG5hbWVzcGFjZSBXZWJLaXQgewpAQCAtNDUsOSArNDYsNyBAQCBwdWJsaWM6
CiAgICAgdm9pZCBwbGF0Zm9ybVdvcmtRdWV1ZUluaXRpYWxpemUoV2ViQ29yZTo6R3JhcGhpY3ND
b250ZXh0R0xBdHRyaWJ1dGVzJiYpIGZpbmFsOwogICAgIHZvaWQgcHJlcGFyZUZvckRpc3BsYXko
Q29tcGxldGlvbkhhbmRsZXI8dm9pZChXVEY6Ok1hY2hTZW5kUmlnaHQmJik+JiYpIGZpbmFsOwog
cHJpdmF0ZToKLSNpZiBIQVZFKElPU1VSRkFDRV9TRVRfT1dORVJTSElQX0lERU5USVRZKQotICAg
IHRhc2tfaWRfdG9rZW5fdCBtX3dlYlByb2Nlc3NJZGVudGl0eVRva2VuOwotI2VuZGlmCisgICAg
Y29uc3QgUHJvY2Vzc0lkZW50aXR5IG1fcmVzb3VyY2VPd25lcjsKIH07CiAKIH0KQEAgLTYxLDkg
KzYwLDcgQEAgUmVmPFJlbW90ZUdyYXBoaWNzQ29udGV4dEdMPiBSZW1vdGVHcmFwaGljc0NvbnRl
eHRHTDo6Y3JlYXRlKEdQVUNvbm5lY3Rpb25Ub1dlYlAKIAogUmVtb3RlR3JhcGhpY3NDb250ZXh0
R0xDb2NvYTo6UmVtb3RlR3JhcGhpY3NDb250ZXh0R0xDb2NvYShHUFVDb25uZWN0aW9uVG9XZWJQ
cm9jZXNzJiBncHVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLCBHcmFwaGljc0NvbnRleHRHTElkZW50
aWZpZXIgZ3JhcGhpY3NDb250ZXh0R0xJZGVudGlmaWVyLCBSZW1vdGVSZW5kZXJpbmdCYWNrZW5k
JiByZW5kZXJpbmdCYWNrZW5kLCBJUEM6OlN0cmVhbUNvbm5lY3Rpb25CdWZmZXImJiBzdHJlYW0p
CiAgICAgOiBSZW1vdGVHcmFwaGljc0NvbnRleHRHTChncHVDb25uZWN0aW9uVG9XZWJQcm9jZXNz
LCBncmFwaGljc0NvbnRleHRHTElkZW50aWZpZXIsIHJlbmRlcmluZ0JhY2tlbmQsIFdURk1vdmUo
c3RyZWFtKSkKLSNpZiBIQVZFKElPU1VSRkFDRV9TRVRfT1dORVJTSElQX0lERU5USVRZKQotICAg
ICwgbV93ZWJQcm9jZXNzSWRlbnRpdHlUb2tlbihncHVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLndl
YlByb2Nlc3NJZGVudGl0eVRva2VuKCkpCi0jZW5kaWYKKyAgICAsIG1fcmVzb3VyY2VPd25lcihn
cHVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLndlYlByb2Nlc3NJZGVudGl0eSgpKQogewogCiB9CkBA
IC03MSw3ICs2OCw3IEBAIFJlbW90ZUdyYXBoaWNzQ29udGV4dEdMQ29jb2E6OlJlbW90ZUdyYXBo
aWNzQ29udGV4dEdMQ29jb2EoR1BVQ29ubmVjdGlvblRvV2ViUHJvCiB2b2lkIFJlbW90ZUdyYXBo
aWNzQ29udGV4dEdMQ29jb2E6OnBsYXRmb3JtV29ya1F1ZXVlSW5pdGlhbGl6ZShXZWJDb3JlOjpH
cmFwaGljc0NvbnRleHRHTEF0dHJpYnV0ZXMmJiBhdHRyaWJ1dGVzKQogewogICAgIGFzc2VydElz
Q3VycmVudChtX3N0cmVhbVRocmVhZCk7Ci0gICAgbV9jb250ZXh0ID0gR3JhcGhpY3NDb250ZXh0
R0xDb2NvYTo6Y3JlYXRlKFdURk1vdmUoYXR0cmlidXRlcykpOworICAgIG1fY29udGV4dCA9IEdy
YXBoaWNzQ29udGV4dEdMQ29jb2E6OmNyZWF0ZShXVEZNb3ZlKGF0dHJpYnV0ZXMpLCBQcm9jZXNz
SWRlbnRpdHkgeyBtX3Jlc291cmNlT3duZXIgfSk7CiB9CiAKIHZvaWQgUmVtb3RlR3JhcGhpY3ND
b250ZXh0R0xDb2NvYTo6cHJlcGFyZUZvckRpc3BsYXkoQ29tcGxldGlvbkhhbmRsZXI8dm9pZChX
VEY6Ok1hY2hTZW5kUmlnaHQmJik+JiYgY29tcGxldGlvbkhhbmRsZXIpCkBAIC04MiwxMCArNzks
NiBAQCB2b2lkIFJlbW90ZUdyYXBoaWNzQ29udGV4dEdMQ29jb2E6OnByZXBhcmVGb3JEaXNwbGF5
KENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV1RGOgogICAgIE1hY2hTZW5kUmlnaHQgc2VuZFJpZ2h0
OwogICAgIGlmIChkaXNwbGF5QnVmZmVyKSB7CiAgICAgICAgIG1fY29udGV4dC0+bWFya0Rpc3Bs
YXlCdWZmZXJJblVzZSgpOwotI2lmIEhBVkUoSU9TVVJGQUNFX1NFVF9PV05FUlNISVBfSURFTlRJ
VFkpCi0gICAgICAgIC8vIE1hcmsgdGhlIElPU3VyZmFjZSBhcyBiZWluZyBvd25lZCBieSB0aGUg
V2ViUHJvY2VzcyBldmVuIHRob3VnaCBpdCB3YXMgY29uc3RydWN0ZWQgYnkgdGhlIEdQVVByb2Nl
c3Mgc28gdGhhdCBKZXRzYW0ga25vd3Mgd2hpY2ggcHJvY2VzcyB0byBraWxsLgotICAgICAgICBk
aXNwbGF5QnVmZmVyLT5zZXRPd25lcnNoaXBJZGVudGl0eShtX3dlYlByb2Nlc3NJZGVudGl0eVRv
a2VuKTsKLSNlbmRpZgogICAgICAgICBzZW5kUmlnaHQgPSBkaXNwbGF5QnVmZmVyLT5jcmVhdGVT
ZW5kUmlnaHQoKTsKICAgICB9CiAgICAgY29tcGxldGlvbkhhbmRsZXIoV1RGTW92ZShzZW5kUmln
aHQpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1v
dGVJbWFnZUJ1ZmZlci5oIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90
ZUltYWdlQnVmZmVyLmgKaW5kZXggYTNkNDk0ZmU4YmY2YTE5NjQ3ZWYxOTBjOWRiNDA0MmFlY2U2
NzIyMC4uMzViNDUyNzBiNDU4NDI0ODA5ODEwNDJkYzc1NTM0ZmJhYmFlYmYyZCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZUltYWdlQnVmZmVyLmgK
KysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZUltYWdlQnVmZmVy
LmgKQEAgLTY5LDEzICs2OSwxMSBAQCBwdWJsaWM6CiAgICAgICAgICAgICBjb250ZXh0KCkucmVz
dG9yZSgpOwogICAgIH0KIAotI2lmIEhBVkUoSU9TVVJGQUNFX1NFVF9PV05FUlNISVBfSURFTlRJ
VFkpCi0gICAgdm9pZCBzZXRQcm9jZXNzT3duZXJzaGlwKHRhc2tfaWRfdG9rZW5fdCBuZXdPd25l
cikKKyAgICB2b2lkIHNldE93bmVyc2hpcElkZW50aXR5KGNvbnN0IFdlYkNvcmU6OlByb2Nlc3NJ
ZGVudGl0eSYgcmVzb3VyY2VPd25lcikKICAgICB7CiAgICAgICAgIGlmIChtX2JhY2tlbmQpCi0g
ICAgICAgICAgICBtX2JhY2tlbmQtPnNldFByb2Nlc3NPd25lcnNoaXAobmV3T3duZXIpOworICAg
ICAgICAgICAgbV9iYWNrZW5kLT5zZXRPd25lcnNoaXBJZGVudGl0eShyZXNvdXJjZU93bmVyKTsK
ICAgICB9Ci0jZW5kaWYKIAogcHJpdmF0ZToKICAgICBmcmllbmQgY2xhc3MgUmVtb3RlUmVuZGVy
aW5nQmFja2VuZDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGlj
cy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmNwcCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9n
cmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmNwcAppbmRleCBiMGRmNTM0MzQ0OTc4MmZh
NGNlMzFiY2YzMzJkOGZjNWJjYzhiMTAyLi44ZGZiMjVkODI5MjY5NGEyZDgxMmRhY2FiOTg3YTBj
OWViZTM4ZWJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3Mv
UmVtb3RlUmVuZGVyaW5nQmFja2VuZC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNz
L2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQuY3BwCkBAIC04NSw2ICs4NSw3IEBAIFJl
bW90ZVJlbmRlcmluZ0JhY2tlbmQ6OlJlbW90ZVJlbmRlcmluZ0JhY2tlbmQoR1BVQ29ubmVjdGlv
blRvV2ViUHJvY2VzcyYgZ3B1Q29uCiAgICAgLCBtX3N0cmVhbUNvbm5lY3Rpb24oSVBDOjpTdHJl
YW1TZXJ2ZXJDb25uZWN0aW9uOjpjcmVhdGUoZ3B1Q29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jb25u
ZWN0aW9uKCksIFdURk1vdmUoc3RyZWFtQnVmZmVyKSwgbV93b3JrUXVldWUuZ2V0KCkpKQogICAg
ICwgbV9yZW1vdGVSZXNvdXJjZUNhY2hlKGdwdUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3Mud2ViUHJv
Y2Vzc0lkZW50aWZpZXIoKSkKICAgICAsIG1fZ3B1Q29ubmVjdGlvblRvV2ViUHJvY2VzcyhncHVD
b25uZWN0aW9uVG9XZWJQcm9jZXNzKQorICAgICwgbV9yZXNvdXJjZU93bmVyKGdwdUNvbm5lY3Rp
b25Ub1dlYlByb2Nlc3Mud2ViUHJvY2Vzc0lkZW50aXR5KCkpCiAgICAgLCBtX3JlbmRlcmluZ0Jh
Y2tlbmRJZGVudGlmaWVyKGNyZWF0aW9uUGFyYW1ldGVycy5pZGVudGlmaWVyKQogewogICAgIEFT
U0VSVChSdW5Mb29wOjppc01haW4oKSk7CkBAIC0xNzQsMTAgKzE3NSw5IEBAIHZvaWQgUmVtb3Rl
UmVuZGVyaW5nQmFja2VuZDo6Y3JlYXRlSW1hZ2VCdWZmZXJXaXRoUXVhbGlmaWVkSWRlbnRpZmll
cihjb25zdCBGbG9hCiAKICAgICBpZiAocmVuZGVyaW5nTW9kZSA9PSBSZW5kZXJpbmdNb2RlOjpB
Y2NlbGVyYXRlZCkgewogICAgICAgICBpZiAoYXV0byBhY2NlbGVyYXRlZEltYWdlQnVmZmVyID0g
QWNjZWxlcmF0ZWRSZW1vdGVJbWFnZUJ1ZmZlcjo6Y3JlYXRlKGxvZ2ljYWxTaXplLCByZXNvbHV0
aW9uU2NhbGUsIGNvbG9yU3BhY2UsIHBpeGVsRm9ybWF0LCAqdGhpcywgaW1hZ2VCdWZmZXJSZXNv
dXJjZUlkZW50aWZpZXIpKSB7Ci0jaWYgSEFWRShJT1NVUkZBQ0VfU0VUX09XTkVSU0hJUF9JREVO
VElUWSkKICAgICAgICAgICAgIC8vIE1hcmsgdGhlIElPU3VyZmFjZSBhcyBiZWluZyBvd25lZCBi
eSB0aGUgV2ViUHJvY2VzcyBldmVuIHRob3VnaCBpdCB3YXMgY29uc3RydWN0ZWQgYnkgdGhlIEdQ
VVByb2Nlc3Mgc28gdGhhdCBKZXRzYW0ga25vd3Mgd2hpY2ggcHJvY2VzcyB0byBraWxsLgotICAg
ICAgICAgICAgYWNjZWxlcmF0ZWRJbWFnZUJ1ZmZlci0+c2V0UHJvY2Vzc093bmVyc2hpcChtX2dw
dUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MtPndlYlByb2Nlc3NJZGVudGl0eVRva2VuKCkpOwotI2Vu
ZGlmCisgICAgICAgICAgICBpZiAobV9yZXNvdXJjZU93bmVyKQorICAgICAgICAgICAgICAgIGFj
Y2VsZXJhdGVkSW1hZ2VCdWZmZXItPnNldE93bmVyc2hpcElkZW50aXR5KG1fcmVzb3VyY2VPd25l
cik7CiAgICAgICAgICAgICBpbWFnZUJ1ZmZlciA9IFdURk1vdmUoYWNjZWxlcmF0ZWRJbWFnZUJ1
ZmZlcik7CiAgICAgICAgIH0KICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVBy
b2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5oIGIvU291cmNlL1dlYktpdC9H
UFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQuaAppbmRleCBlMzU3MTVk
ZDE3ZmVlNjQzNDViMjI2MmQ2OGNlYmVhNGQ3NGFiOTk2Li45YTI2YzQyNGI5MTIxMTAxMThiNDM2
MTg0ZGUzMGI4ZDI4ZGQxNTIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mv
Z3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BV
UHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmgKQEAgLTQ2LDYgKzQ2LDcg
QEAKICNpbmNsdWRlIDxXZWJDb3JlL0Rpc3BsYXlMaXN0SXRlbXMuaD4KICNpbmNsdWRlIDxXZWJD
b3JlL0Rpc3BsYXlMaXN0UmVwbGF5ZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Byb2Nlc3NJZGVu
dGlmaWVyLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9Qcm9jZXNzSWRlbnRpdHkuaD4KICNpbmNsdWRl
IDx3dGYvV2Vha1B0ci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC0xMzMsNiArMTM0LDcg
QEAgcHJpdmF0ZToKICAgICBSZWY8SVBDOjpTdHJlYW1TZXJ2ZXJDb25uZWN0aW9uPiBtX3N0cmVh
bUNvbm5lY3Rpb247CiAgICAgUmVtb3RlUmVzb3VyY2VDYWNoZSBtX3JlbW90ZVJlc291cmNlQ2Fj
aGU7CiAgICAgUmVmPEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M+IG1fZ3B1Q29ubmVjdGlvblRv
V2ViUHJvY2VzczsKKyAgICBXZWJDb3JlOjpQcm9jZXNzSWRlbnRpdHkgbV9yZXNvdXJjZU93bmVy
OwogICAgIFJlbmRlcmluZ0JhY2tlbmRJZGVudGlmaWVyIG1fcmVuZGVyaW5nQmFja2VuZElkZW50
aWZpZXI7CiAgICAgSVBDOjpTZW1hcGhvcmUgbV9nZXRQaXhlbEJ1ZmZlclNlbWFwaG9yZTsKICAg
ICBSZWZQdHI8U2hhcmVkTWVtb3J5PiBtX2dldFBpeGVsQnVmZmVyU2hhcmVkTWVtb3J5OwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL3dlYnJ0Yy9MaWJXZWJSVENDb2RlY3NQ
cm94eS5tbSBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy93ZWJydGMvTGliV2ViUlRDQ29kZWNz
UHJveHkubW0KaW5kZXggMTMzZTI2ZTQ3NGUxZDMxOTE2M2U1NTcxOTkyZDBjMGM3MTlkZGUxNC4u
MzBmYTMwY2IzZGM5YzliNDAxZjBjNGVjZmNlMjEwODFlYzQ2ZTVjMSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9HUFVQcm9jZXNzL3dlYnJ0Yy9MaWJXZWJSVENDb2RlY3NQcm94eS5tbQorKysg
Yi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mvd2VicnRjL0xpYldlYlJUQ0NvZGVjc1Byb3h5Lm1t
CkBAIC03NiwxNSArNzYsMTAgQEAgdm9pZCBMaWJXZWJSVENDb2RlY3NQcm94eTo6Y2xvc2UoKQog
CiBzdGF0aWMgRnVuY3Rpb248dm9pZChDVlBpeGVsQnVmZmVyUmVmIHBpeGVsQnVmZmVyLCB1aW50
MzJfdCB0aW1lU3RhbXBOcywgdWludDMyX3QgdGltZVN0YW1wKT4gY3JlYXRlRGVjb2RlckNhbGxi
YWNrKFJUQ0RlY29kZXJJZGVudGlmaWVyIGlkZW50aWZpZXIsIEdQVUNvbm5lY3Rpb25Ub1dlYlBy
b2Nlc3MmIGdwdUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MpCiB7Ci0gICAgcmV0dXJuIFtjb25uZWN0
aW9uID0gUmVmIHsgZ3B1Q29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jb25uZWN0aW9uKCkgfSwKLSNp
ZiBIQVZFKElPU1VSRkFDRV9TRVRfT1dORVJTSElQX0lERU5USVRZKQotICAgICAgICB0b2tlbiA9
IGdwdUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3Mud2ViUHJvY2Vzc0lkZW50aXR5VG9rZW4oKSwKLSNl
bmRpZgotICAgICAgICBpZGVudGlmaWVyXShDVlBpeGVsQnVmZmVyUmVmIHBpeGVsQnVmZmVyLCB1
aW50MzJfdCB0aW1lU3RhbXBOcywgdWludDMyX3QgdGltZVN0YW1wKSB7CisgICAgcmV0dXJuIFtj
b25uZWN0aW9uID0gUmVmIHsgZ3B1Q29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jb25uZWN0aW9uKCkg
fSwgcmVzb3VyY2VPd25lciA9IGdwdUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3Mud2ViUHJvY2Vzc0lk
ZW50aXR5KCksIGlkZW50aWZpZXJdIChDVlBpeGVsQnVmZmVyUmVmIHBpeGVsQnVmZmVyLCB1aW50
MzJfdCB0aW1lU3RhbXBOcywgdWludDMyX3QgdGltZVN0YW1wKSB7CiAgICAgICAgIGlmIChhdXRv
IHNhbXBsZSA9IFdlYkNvcmU6OlJlbW90ZVZpZGVvU2FtcGxlOjpjcmVhdGUocGl4ZWxCdWZmZXIs
IE1lZGlhVGltZSh0aW1lU3RhbXBOcywgMSkpKSB7Ci0jaWYgSEFWRShJT1NVUkZBQ0VfU0VUX09X
TkVSU0hJUF9JREVOVElUWSkKLSAgICAgICAgICAgIHNhbXBsZS0+c2V0T3duZXJzaGlwSWRlbnRp
dHkodG9rZW4pOwotI2VuZGlmCisgICAgICAgICAgICBpZiAocmVzb3VyY2VPd25lcikKKyAgICAg
ICAgICAgICAgICBzYW1wbGUtPnNldE93bmVyc2hpcElkZW50aXR5KHJlc291cmNlT3duZXIpOwog
ICAgICAgICAgICAgY29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6TGliV2ViUlRDQ29kZWNzOjpD
b21wbGV0ZWREZWNvZGluZyB7IGlkZW50aWZpZXIsIHRpbWVTdGFtcCwgKnNhbXBsZSB9LCAwKTsK
ICAgICAgICAgfQogICAgIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9HUFVQ
cm9jZXNzQ29ubmVjdGlvblBhcmFtZXRlcnMuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0dQVVBy
b2Nlc3NDb25uZWN0aW9uUGFyYW1ldGVycy5oCmluZGV4IDA5NmZkMGUzYmE2YzdlYzExNzc4Zjk5
NGZmZDVlODY3N2UyMGZjNTYuLmVkMzA0OTViMjUyMjg2MWY3NDY0NTJmZTkwOTFiOTY1NjExMDY3
NzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0dQVVByb2Nlc3NDb25uZWN0aW9u
UGFyYW1ldGVycy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0dQVVByb2Nlc3NDb25uZWN0
aW9uUGFyYW1ldGVycy5oCkBAIC0yOCwxNCArMjgsMTMgQEAKICNpZiBFTkFCTEUoR1BVX1BST0NF
U1MpCiAKICNpbmNsdWRlICJXZWJDb3JlQXJndW1lbnRDb2RlcnMuaCIKKyNpbmNsdWRlIDxXZWJD
b3JlL1Byb2Nlc3NJZGVudGl0eS5oPgogI2luY2x1ZGUgPHd0Zi9NYWNoU2VuZFJpZ2h0Lmg+CiAK
IG5hbWVzcGFjZSBXZWJLaXQgewogCiBzdHJ1Y3QgR1BVUHJvY2Vzc0Nvbm5lY3Rpb25QYXJhbWV0
ZXJzIHsKLSNpZiBIQVZFKFRBU0tfSURFTlRJVFlfVE9LRU4pCi0gICAgTWFjaFNlbmRSaWdodCB3
ZWJQcm9jZXNzSWRlbnRpdHlUb2tlbjsKLSNlbmRpZgorICAgIFdlYkNvcmU6OlByb2Nlc3NJZGVu
dGl0eSB3ZWJQcm9jZXNzSWRlbnRpdHk7CiAgICAgVmVjdG9yPFN0cmluZz4gb3ZlcnJpZGVMYW5n
dWFnZXM7CiAjaWYgRU5BQkxFKElQQ19URVNUSU5HX0FQSSkKICAgICBib29sIGlnbm9yZUludmFs
aWRNZXNzYWdlRm9yVGVzdGluZyB7IGZhbHNlIH07CkBAIC00Niw5ICs0NSw3IEBAIHN0cnVjdCBH
UFVQcm9jZXNzQ29ubmVjdGlvblBhcmFtZXRlcnMgewogCiAgICAgdm9pZCBlbmNvZGUoSVBDOjpF
bmNvZGVyJiBlbmNvZGVyKSBjb25zdAogICAgIHsKLSNpZiBIQVZFKFRBU0tfSURFTlRJVFlfVE9L
RU4pCi0gICAgICAgIGVuY29kZXIgPDwgd2ViUHJvY2Vzc0lkZW50aXR5VG9rZW47Ci0jZW5kaWYK
KyAgICAgICAgZW5jb2RlciA8PCB3ZWJQcm9jZXNzSWRlbnRpdHk7CiAgICAgICAgIGVuY29kZXIg
PDwgb3ZlcnJpZGVMYW5ndWFnZXM7CiAjaWYgRU5BQkxFKElQQ19URVNUSU5HX0FQSSkKICAgICAg
ICAgZW5jb2RlciA8PCBpZ25vcmVJbnZhbGlkTWVzc2FnZUZvclRlc3Rpbmc7CkBAIC02MCwxMiAr
NTcsMTAgQEAgc3RydWN0IEdQVVByb2Nlc3NDb25uZWN0aW9uUGFyYW1ldGVycyB7CiAKICAgICBz
dGF0aWMgc3RkOjpvcHRpb25hbDxHUFVQcm9jZXNzQ29ubmVjdGlvblBhcmFtZXRlcnM+IGRlY29k
ZShJUEM6OkRlY29kZXImIGRlY29kZXIpCiAgICAgewotI2lmIEhBVkUoVEFTS19JREVOVElUWV9U
T0tFTikKLSAgICAgICAgc3RkOjpvcHRpb25hbDxNYWNoU2VuZFJpZ2h0PiB3ZWJQcm9jZXNzSWRl
bnRpdHlUb2tlbjsKLSAgICAgICAgZGVjb2RlciA+PiB3ZWJQcm9jZXNzSWRlbnRpdHlUb2tlbjsK
LSAgICAgICAgaWYgKCF3ZWJQcm9jZXNzSWRlbnRpdHlUb2tlbikKKyAgICAgICAgc3RkOjpvcHRp
b25hbDxXZWJDb3JlOjpQcm9jZXNzSWRlbnRpdHk+IHdlYlByb2Nlc3NJZGVudGl0eTsKKyAgICAg
ICAgZGVjb2RlciA+PiB3ZWJQcm9jZXNzSWRlbnRpdHk7CisgICAgICAgIGlmICghd2ViUHJvY2Vz
c0lkZW50aXR5KQogICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKLSNlbmRpZgogCiAg
ICAgICAgIHN0ZDo6b3B0aW9uYWw8VmVjdG9yPFN0cmluZz4+IG92ZXJyaWRlTGFuZ3VhZ2VzOwog
ICAgICAgICBkZWNvZGVyID4+IG92ZXJyaWRlTGFuZ3VhZ2VzOwpAQCAtODYsOSArODEsNyBAQCBz
dHJ1Y3QgR1BVUHJvY2Vzc0Nvbm5lY3Rpb25QYXJhbWV0ZXJzIHsKICNlbmRpZgogCiAgICAgICAg
IHJldHVybiBHUFVQcm9jZXNzQ29ubmVjdGlvblBhcmFtZXRlcnMgewotI2lmIEhBVkUoVEFTS19J
REVOVElUWV9UT0tFTikKLSAgICAgICAgICAgIFdURk1vdmUoKndlYlByb2Nlc3NJZGVudGl0eVRv
a2VuKSwKLSNlbmRpZgorICAgICAgICAgICAgV1RGTW92ZSgqd2ViUHJvY2Vzc0lkZW50aXR5KSwK
ICAgICAgICAgICAgIFdURk1vdmUoKm92ZXJyaWRlTGFuZ3VhZ2VzKSwKICNpZiBFTkFCTEUoSVBD
X1RFU1RJTkdfQVBJKQogICAgICAgICAgICAgKmlnbm9yZUludmFsaWRNZXNzYWdlRm9yVGVzdGlu
ZywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNh
cHR1cmVNYW5hZ2VyUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVXNl
ck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5jcHAKaW5kZXggMmJiM2JjZGI1ODJkYzg1M2YyMDgz
ZWNlNDQ3MTkzYzQ0MTkzZWM5Mi4uYmRhZjk4ZDEwZGQzNThiZGQ3YmY3OTMzYWJkMTQ4NjUwN2Nj
ZWQ4NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlh
Q2FwdHVyZU1hbmFnZXJQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29j
b2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5jcHAKQEAgLTU3LDkgKzU3LDEwIEBAIGNs
YXNzIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6OlNvdXJjZVByb3h5CiAgICAgLCBwcml2
YXRlIFJlYWx0aW1lTWVkaWFTb3VyY2U6OlZpZGVvU2FtcGxlT2JzZXJ2ZXIgewogICAgIFdURl9N
QUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgotICAgIFNvdXJjZVByb3h5KFJlYWx0aW1lTWVk
aWFTb3VyY2VJZGVudGlmaWVyIGlkLCBSZWY8SVBDOjpDb25uZWN0aW9uPiYmIGNvbm5lY3Rpb24s
IFJlZjxSZWFsdGltZU1lZGlhU291cmNlPiYmIHNvdXJjZSkKKyAgICBTb3VyY2VQcm94eShSZWFs
dGltZU1lZGlhU291cmNlSWRlbnRpZmllciBpZCwgUmVmPElQQzo6Q29ubmVjdGlvbj4mJiBjb25u
ZWN0aW9uLCBQcm9jZXNzSWRlbnRpdHkmJiByZXNvdXJjZU93bmVyLCBSZWY8UmVhbHRpbWVNZWRp
YVNvdXJjZT4mJiBzb3VyY2UpCiAgICAgICAgIDogbV9pZChpZCkKICAgICAgICAgLCBtX2Nvbm5l
Y3Rpb24oV1RGTW92ZShjb25uZWN0aW9uKSkKKyAgICAgICAgLCBtX3Jlc291cmNlT3duZXIoV1RG
TW92ZShyZXNvdXJjZU93bmVyKSkKICAgICAgICAgLCBtX3NvdXJjZShXVEZNb3ZlKHNvdXJjZSkp
CiAgICAgewogICAgICAgICBtX3NvdXJjZS0+YWRkT2JzZXJ2ZXIoKnRoaXMpOwpAQCAtMTI1LDkg
KzEyNiw2IEBAIHB1YmxpYzoKICAgICB9CiAKICAgICB2b2lkIHNldFNob3VsZEFwcGx5Um90YXRp
b24oYm9vbCBzaG91bGRBcHBseVJvdGF0aW9uKSB7IG1fc2hvdWxkQXBwbHlSb3RhdGlvbiA9IHRy
dWU7IH0KLSNpZiBIQVZFKElPU1VSRkFDRV9TRVRfT1dORVJTSElQX0lERU5USVRZKQotICAgIHZv
aWQgc2V0V2ViUHJvY2Vzc0lkZW50aXR5VG9rZW4oc3RkOjpvcHRpb25hbDx0YXNrX2lkX3Rva2Vu
X3Q+IHRva2VuKSB7IG1fd2ViUHJvY2Vzc0lkZW50aXR5VG9rZW4gPSB0b2tlbjt9Ci0jZW5kaWYK
IAogcHJpdmF0ZToKICAgICB2b2lkIHNvdXJjZVN0b3BwZWQoKSBmaW5hbCB7CkBAIC0xODgsMTAg
KzE4Niw4IEBAIHByaXZhdGU6CiAgICAgICAgIH0gZWxzZQogICAgICAgICAgICAgcmVtb3RlU2Ft
cGxlID0gUmVtb3RlVmlkZW9TYW1wbGU6OmNyZWF0ZShzYW1wbGUpOwogICAgICAgICBpZiAocmVt
b3RlU2FtcGxlKSB7Ci0jaWYgSEFWRShJT1NVUkZBQ0VfU0VUX09XTkVSU0hJUF9JREVOVElUWSkK
LSAgICAgICAgICAgIGlmIChtX3dlYlByb2Nlc3NJZGVudGl0eVRva2VuKQotICAgICAgICAgICAg
ICAgIHJlbW90ZVNhbXBsZS0+c2V0T3duZXJzaGlwSWRlbnRpdHkoKm1fd2ViUHJvY2Vzc0lkZW50
aXR5VG9rZW4pOwotI2VuZGlmCisgICAgICAgICAgICBpZiAobV9yZXNvdXJjZU93bmVyKQorICAg
ICAgICAgICAgICAgIHJlbW90ZVNhbXBsZS0+c2V0T3duZXJzaGlwSWRlbnRpdHkobV9yZXNvdXJj
ZU93bmVyKTsKICAgICAgICAgICAgIG1fY29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6UmVtb3Rl
Q2FwdHVyZVNhbXBsZU1hbmFnZXI6OlZpZGVvU2FtcGxlQXZhaWxhYmxlKG1faWQsIFdURk1vdmUo
KnJlbW90ZVNhbXBsZSksIG1ldGFkYXRhKSwgMCk7CiAgICAgICAgIH0KICAgICB9CkBAIC0yNDQs
NiArMjQwLDcgQEAgcHJpdmF0ZToKICAgICBSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciBt
X2lkOwogICAgIFdlYWtQdHI8UGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyPiBtX3Nlc3Npb25N
YW5hZ2VyOwogICAgIFJlZjxJUEM6OkNvbm5lY3Rpb24+IG1fY29ubmVjdGlvbjsKKyAgICBQcm9j
ZXNzSWRlbnRpdHkgbV9yZXNvdXJjZU93bmVyOwogICAgIFJlZjxSZWFsdGltZU1lZGlhU291cmNl
PiBtX3NvdXJjZTsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8Q0FSaW5nQnVmZmVyPiBtX3JpbmdCdWZm
ZXI7CiAgICAgQ0FBdWRpb1N0cmVhbURlc2NyaXB0aW9uIG1fZGVzY3JpcHRpb24geyB9OwpAQCAt
MjU3LDkgKzI1NCw2IEBAIHByaXZhdGU6CiAgICAgc2l6ZV90IG1fZnJhbWVDaHVua1NpemUgeyAw
IH07CiAgICAgTWVkaWFUaW1lIG1fc3RhcnRUaW1lOwogICAgIGJvb2wgbV9zaG91bGRSZXNldCB7
IGZhbHNlIH07Ci0jaWYgSEFWRShUQVNLX0lERU5USVRZX1RPS0VOKQotICAgIHN0ZDo6b3B0aW9u
YWw8dGFza19pZF90b2tlbl90PiBtX3dlYlByb2Nlc3NJZGVudGl0eVRva2VuOwotI2VuZGlmCiB9
OwogCiBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdl
clByb3h5KFVuaXF1ZVJlZjxDb25uZWN0aW9uUHJveHk+JiYgY29ubmVjdGlvblByb3h5KQpAQCAt
MzIzLDEyICszMTcsNyBAQCB2b2lkIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6OmNyZWF0
ZU1lZGlhU291cmNlRm9yQ2FwdHVyZURldmljZVdpdGhDb25zdHJhaQogICAgICAgICB9CiAKICAg
ICAgICAgQVNTRVJUKCFtX3Byb3hpZXMuY29udGFpbnMoaWQpKTsKLSAgICAgICAgYXV0byBwcm94
eSA9IG1ha2VVbmlxdWU8U291cmNlUHJveHk+KGlkLCBtX2Nvbm5lY3Rpb25Qcm94eS0+Y29ubmVj
dGlvbigpLCBXVEZNb3ZlKHNvdXJjZSkpOwotI2lmIEhBVkUoSU9TVVJGQUNFX1NFVF9PV05FUlNI
SVBfSURFTlRJVFkpCi0gICAgICAgIGlmIChkZXZpY2UudHlwZSgpICE9IFdlYkNvcmU6OkNhcHR1
cmVEZXZpY2U6OkRldmljZVR5cGU6Ok1pY3JvcGhvbmUpCi0gICAgICAgICAgICBwcm94eS0+c2V0
V2ViUHJvY2Vzc0lkZW50aXR5VG9rZW4obV9jb25uZWN0aW9uUHJveHktPndlYlByb2Nlc3NJZGVu
dGl0eVRva2VuKCkpOwotI2VuZGlmCi0KKyAgICAgICAgYXV0byBwcm94eSA9IG1ha2VVbmlxdWU8
U291cmNlUHJveHk+KGlkLCBtX2Nvbm5lY3Rpb25Qcm94eS0+Y29ubmVjdGlvbigpLCBQcm9jZXNz
SWRlbnRpdHkgeyBtX2Nvbm5lY3Rpb25Qcm94eS0+cmVzb3VyY2VPd25lcigpIH0sIFdURk1vdmUo
c291cmNlKSk7CiAgICAgICAgIG1fcHJveGllcy5hZGQoaWQsIFdURk1vdmUocHJveHkpKTsKICAg
ICB9IGVsc2UKICAgICAgICAgaW52YWxpZENvbnN0cmFpbnRzID0gV1RGTW92ZShzb3VyY2VPckVy
cm9yLmVycm9yTWVzc2FnZSk7CkBAIC0zOTQsNyArMzgzLDcgQEAgdm9pZCBVc2VyTWVkaWFDYXB0
dXJlTWFuYWdlclByb3h5OjpjbG9uZShSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciBjbG9u
ZWRJRCwKICAgICBNRVNTQUdFX0NIRUNLKG1fcHJveGllcy5jb250YWlucyhjbG9uZWRJRCkpOwog
ICAgIE1FU1NBR0VfQ0hFQ0soIW1fcHJveGllcy5jb250YWlucyhuZXdTb3VyY2VJRCkpOwogICAg
IGlmIChhdXRvKiBwcm94eSA9IG1fcHJveGllcy5nZXQoY2xvbmVkSUQpKQotICAgICAgICBtX3By
b3hpZXMuYWRkKG5ld1NvdXJjZUlELCBtYWtlVW5pcXVlPFNvdXJjZVByb3h5PihuZXdTb3VyY2VJ
RCwgbV9jb25uZWN0aW9uUHJveHktPmNvbm5lY3Rpb24oKSwgcHJveHktPnNvdXJjZSgpLmNsb25l
KCkpKTsKKyAgICAgICAgbV9wcm94aWVzLmFkZChuZXdTb3VyY2VJRCwgbWFrZVVuaXF1ZTxTb3Vy
Y2VQcm94eT4obmV3U291cmNlSUQsIG1fY29ubmVjdGlvblByb3h5LT5jb25uZWN0aW9uKCksIFBy
b2Nlc3NJZGVudGl0eSB7IG1fY29ubmVjdGlvblByb3h5LT5yZXNvdXJjZU93bmVyKCkgfSwgcHJv
eHktPnNvdXJjZSgpLmNsb25lKCkpKTsKIH0KIAogdm9pZCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdl
clByb3h5OjpyZXF1ZXN0VG9FbmQoUmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgc291cmNl
SUQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFD
YXB0dXJlTWFuYWdlclByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9Vc2Vy
TWVkaWFDYXB0dXJlTWFuYWdlclByb3h5LmgKaW5kZXggYTA5NDI5ZGY2NzkxZTkwZjg0YTkzNDk1
ZmIwZWQyODVjY2VkMGQyYy4uZmE4MjljN2M0OTAzZDUxYjU3YTc4OTcxNzg0NzNmODBjYmYyODZk
ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2Fw
dHVyZU1hbmFnZXJQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1Vz
ZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkuaApAQCAtMzIsNiArMzIsNyBAQAogI2luY2x1ZGUg
IlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9DYXB0dXJlRGV2
aWNlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9PcmllbnRhdGlvbk5vdGlmaWVyLmg+CisjaW5jbHVk
ZSA8V2ViQ29yZS9Qcm9jZXNzSWRlbnRpdHkuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1JlYWx0aW1l
TWVkaWFTb3VyY2UuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1JlYWx0aW1lTWVkaWFTb3VyY2VJZGVu
dGlmaWVyLmg+CiAjaW5jbHVkZSA8cGFsL3NwaS9jb2NvYS9UQ0NTUEkuaD4KQEAgLTU5LDkgKzYw
LDcgQEAgcHVibGljOgogICAgICAgICB2aXJ0dWFsIGJvb2wgd2lsbFN0YXJ0Q2FwdHVyZShXZWJD
b3JlOjpDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlKSBjb25zdCA9IDA7CiAgICAgICAgIHZpcnR1
YWwgTG9nZ2VyJiBsb2dnZXIoKSA9IDA7CiAgICAgICAgIHZpcnR1YWwgYm9vbCBzZXRDYXB0dXJl
QXR0cmlidXRpb25TdHJpbmcoKSB7IHJldHVybiB0cnVlOyB9Ci0jaWYgSEFWRShJT1NVUkZBQ0Vf
U0VUX09XTkVSU0hJUF9JREVOVElUWSkKLSAgICAgICAgdmlydHVhbCBzdGQ6Om9wdGlvbmFsPHRh
c2tfaWRfdG9rZW5fdD4gd2ViUHJvY2Vzc0lkZW50aXR5VG9rZW4oKSBjb25zdCB7IHJldHVybiB7
IH07IH07Ci0jZW5kaWYKKyAgICAgICAgdmlydHVhbCBjb25zdCBXZWJDb3JlOjpQcm9jZXNzSWRl
bnRpdHkmIHJlc291cmNlT3duZXIoKSBjb25zdCA9IDA7CiAjaWYgRU5BQkxFKEFQUF9QUklWQUNZ
X1JFUE9SVCkKICAgICAgICAgdmlydHVhbCB2b2lkIHNldFRDQ0lkZW50aXR5KCkgeyB9CiAjZW5k
aWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5j
cHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwCmluZGV4IDY2
NTZlMmRkZGQzYjQyY2M3MDdlOGEyOGI1ZGE5YWRhNzA4MDk5ZmIuLjYzZTZlMTM3ZmZhYzBhMjg5
MTEwNWM4OWUwNzZhMTAxZTRhZmU2ZTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
UHJvY2Vzc1Byb3h5LmNwcApAQCAtMjE2LDYgKzIxNiwxMyBAQCBwcml2YXRlOgogICAgICAgICBy
ZXR1cm4gdHJ1ZTsKICAgICB9CiAKKyAgICBjb25zdCBXZWJDb3JlOjpQcm9jZXNzSWRlbnRpdHkm
IHJlc291cmNlT3duZXIoKSBjb25zdCBmaW5hbAorICAgIHsKKyAgICAgICAgLy8gRklYTUU6IHNo
b3VsZCBvYnRhaW4gV2ViQ29udGVudCBwcm9jZXNzIGlkZW50aXR5IGZyb20gV2ViQ29udGVudC4K
KyAgICAgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFdlYkNvcmU6OlByb2Nlc3NJZGVudGl0eT4g
ZHVtbXk7CisgICAgICAgIHJldHVybiBkdW1teS5nZXQoKTsKKyAgICB9CisKICAgICBSZWZQdHI8
TG9nZ2VyPiBtX2xvZ2dlcjsKICAgICBXZWJQcm9jZXNzUHJveHkmIG1fcHJvY2VzczsKIH07CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL0ltYWdlQnVm
ZmVyU2hhcmVhYmxlQml0bWFwQmFja2VuZC5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQ
VS9ncmFwaGljcy9JbWFnZUJ1ZmZlclNoYXJlYWJsZUJpdG1hcEJhY2tlbmQuaAppbmRleCAxODQ3
ZmE2ZmJkZTQwNmVkNmE2YWQwNjA0OThiODg1YzVlMzZiYjNkLi5jNWIyNmM0MGU3NDYwMzIyZGZh
ZmUyOWIwY2U2ZTM2NDE2N2U3MmFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvR1BVL2dyYXBoaWNzL0ltYWdlQnVmZmVyU2hhcmVhYmxlQml0bWFwQmFja2VuZC5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvSW1hZ2VCdWZmZXJTaGFyZWFi
bGVCaXRtYXBCYWNrZW5kLmgKQEAgLTMxLDYgKzMxLDEwIEBACiAjaW5jbHVkZSA8V2ViQ29yZS9Q
bGF0Zm9ybUltYWdlQnVmZmVyQmFja2VuZC5oPgogI2luY2x1ZGUgPHd0Zi9Jc29NYWxsb2MuaD4K
IAorbmFtZXNwYWNlIFdlYkNvcmUgeworY2xhc3MgUHJvY2Vzc0lkZW50aXR5OworfQorCiBuYW1l
c3BhY2UgV2ViS2l0IHsKIAogY2xhc3MgU2hhcmVhYmxlQml0bWFwOwpAQCAtNjEsNiArNjUsNyBA
QCBwdWJsaWM6CiAgICAgc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpQaXhlbEJ1ZmZlcj4gZ2V0UGl4
ZWxCdWZmZXIoY29uc3QgV2ViQ29yZTo6UGl4ZWxCdWZmZXJGb3JtYXQmIG91dHB1dEZvcm1hdCwg
Y29uc3QgV2ViQ29yZTo6SW50UmVjdCYpIGNvbnN0IG92ZXJyaWRlOwogICAgIHZvaWQgcHV0UGl4
ZWxCdWZmZXIoY29uc3QgV2ViQ29yZTo6UGl4ZWxCdWZmZXImLCBjb25zdCBXZWJDb3JlOjpJbnRS
ZWN0JiBzcmNSZWN0LCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgZGVzdFBvaW50LCBXZWJDb3Jl
OjpBbHBoYVByZW11bHRpcGxpY2F0aW9uIGRlc3RGb3JtYXQpIG92ZXJyaWRlOwogCisgICAgdm9p
ZCBzZXRPd25lcnNoaXBJZGVudGl0eShjb25zdCBXZWJDb3JlOjpQcm9jZXNzSWRlbnRpdHkmKSB7
IH0KIHByaXZhdGU6CiAgICAgdW5zaWduZWQgYnl0ZXNQZXJSb3coKSBjb25zdCBvdmVycmlkZTsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9jb2Nv
YS9JbWFnZUJ1ZmZlclNoYXJlYWJsZU1hcHBlZElPU3VyZmFjZUJhY2tlbmQuY3BwIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9jb2NvYS9JbWFnZUJ1ZmZlclNoYXJlYWJs
ZU1hcHBlZElPU3VyZmFjZUJhY2tlbmQuY3BwCmluZGV4IGFmZDJjN2MwNWNmYWZkMTM5OTM0NGY1
YzZhNzY0ZTQ4ODBkMjhiZGEuLmIyOWZjNTcyNzg5NTAzMGQ0MmZkYjQyN2IxNTg0NDdmMGQ3MTA2
M2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvY29j
b2EvSW1hZ2VCdWZmZXJTaGFyZWFibGVNYXBwZWRJT1N1cmZhY2VCYWNrZW5kLmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL2NvY29hL0ltYWdlQnVmZmVyU2hh
cmVhYmxlTWFwcGVkSU9TdXJmYWNlQmFja2VuZC5jcHAKQEAgLTc3LDEzICs3NywxMSBAQCBJbWFn
ZUJ1ZmZlckJhY2tlbmRIYW5kbGUgSW1hZ2VCdWZmZXJTaGFyZWFibGVNYXBwZWRJT1N1cmZhY2VC
YWNrZW5kOjpjcmVhdGVJbWFnZQogICAgIHJldHVybiBJbWFnZUJ1ZmZlckJhY2tlbmRIYW5kbGUo
bV9zdXJmYWNlLT5jcmVhdGVTZW5kUmlnaHQoKSk7CiB9CiAKLSNpZiBIQVZFKElPU1VSRkFDRV9T
RVRfT1dORVJTSElQX0lERU5USVRZKQotdm9pZCBJbWFnZUJ1ZmZlclNoYXJlYWJsZU1hcHBlZElP
U3VyZmFjZUJhY2tlbmQ6OnNldFByb2Nlc3NPd25lcnNoaXAodGFza19pZF90b2tlbl90IHByb2Nl
c3NJZGVudGl0eVRva2VuKQordm9pZCBJbWFnZUJ1ZmZlclNoYXJlYWJsZU1hcHBlZElPU3VyZmFj
ZUJhY2tlbmQ6OnNldE93bmVyc2hpcElkZW50aXR5KGNvbnN0IFdlYkNvcmU6OlByb2Nlc3NJZGVu
dGl0eSYgcmVzb3VyY2VPd25lcikKIHsKICAgICBBU1NFUlQoc3VyZmFjZSgpKTsKLSAgICBzdXJm
YWNlKCktPnNldE93bmVyc2hpcElkZW50aXR5KHByb2Nlc3NJZGVudGl0eVRva2VuKTsKKyAgICBz
dXJmYWNlKCktPnNldE93bmVyc2hpcElkZW50aXR5KHJlc291cmNlT3duZXIpOwogfQotI2VuZGlm
CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvR1BVL2dyYXBoaWNzL2NvY29hL0ltYWdlQnVmZmVyU2hhcmVhYmxlTWFwcGVkSU9T
dXJmYWNlQmFja2VuZC5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9j
b2NvYS9JbWFnZUJ1ZmZlclNoYXJlYWJsZU1hcHBlZElPU3VyZmFjZUJhY2tlbmQuaAppbmRleCBl
MTRhNTQwZWNkZGQ0NzExOTA4YTdjMTcxYzNhMjVlYmZkODA4ZGJlLi5lYTg1MjVjNTE1MDE1NWJk
MDNiNTgwMDczZDVmMjEzODY0OGIwZTBiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvR1BVL2dyYXBoaWNzL2NvY29hL0ltYWdlQnVmZmVyU2hhcmVhYmxlTWFwcGVkSU9TdXJm
YWNlQmFja2VuZC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3Mv
Y29jb2EvSW1hZ2VCdWZmZXJTaGFyZWFibGVNYXBwZWRJT1N1cmZhY2VCYWNrZW5kLmgKQEAgLTMx
LDYgKzMxLDEwIEBACiAjaW5jbHVkZSA8V2ViQ29yZS9JbWFnZUJ1ZmZlcklPU3VyZmFjZUJhY2tl
bmQuaD4KICNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jLmg+CiAKK25hbWVzcGFjZSBXZWJDb3JlIHsK
K2NsYXNzIFByb2Nlc3NJZGVudGl0eTsKK30KKwogbmFtZXNwYWNlIFdlYktpdCB7CiAKIGNsYXNz
IFNoYXJlYWJsZUJpdG1hcDsKQEAgLTQ2LDkgKzUwLDcgQEAgcHVibGljOgogCiAgICAgSW1hZ2VC
dWZmZXJCYWNrZW5kSGFuZGxlIGNyZWF0ZUltYWdlQnVmZmVyQmFja2VuZEhhbmRsZSgpIGNvbnN0
OwogCi0jaWYgSEFWRShJT1NVUkZBQ0VfU0VUX09XTkVSU0hJUF9JREVOVElUWSkKLSAgICB2b2lk
IHNldFByb2Nlc3NPd25lcnNoaXAodGFza19pZF90b2tlbl90KTsKLSNlbmRpZgorICAgIHZvaWQg
c2V0T3duZXJzaGlwSWRlbnRpdHkoY29uc3QgV2ViQ29yZTo6UHJvY2Vzc0lkZW50aXR5Jik7CiB9
OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9jb2NvYS9XZWJQcm9jZXNzQ29jb2EubW0gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvY29jb2EvV2ViUHJvY2Vzc0NvY29hLm1tCmluZGV4IDZhN2ZjNzNlOWExYzAxZWRlODhjYWM1
OTI2MTM5YjM5MTY0YmY3YjguLjEwNTI2YTEwYzUwMzkzMWI4NjcyMmQ4MGI1ZWQ5N2Y1ZDM4MzBh
NGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9XZWJQcm9jZXNz
Q29jb2EubW0KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1dlYlByb2Nlc3ND
b2NvYS5tbQpAQCAtMTIyNiwxNCArMTIyNiw3IEBAIHZvaWQgV2ViUHJvY2Vzczo6d2FpdEZvclBl
bmRpbmdQYXN0ZWJvYXJkV3JpdGVzVG9GaW5pc2goY29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJkCiAj
aWYgRU5BQkxFKEdQVV9QUk9DRVNTKQogdm9pZCBXZWJQcm9jZXNzOjpwbGF0Zm9ybUluaXRpYWxp
emVHUFVQcm9jZXNzQ29ubmVjdGlvblBhcmFtZXRlcnMoR1BVUHJvY2Vzc0Nvbm5lY3Rpb25QYXJh
bWV0ZXJzJiBwYXJhbWV0ZXJzKQogewotI2lmIEhBVkUoVEFTS19JREVOVElUWV9UT0tFTikKLSAg
ICB0YXNrX2lkX3Rva2VuX3QgaWRlbnRpdHlUb2tlbjsKLSAgICBrZXJuX3JldHVybl90IGtyID0g
dGFza19jcmVhdGVfaWRlbnRpdHlfdG9rZW4obWFjaF90YXNrX3NlbGYoKSwgJmlkZW50aXR5VG9r
ZW4pOwotICAgIGlmIChrciA9PSBLRVJOX1NVQ0NFU1MpCi0gICAgICAgIHBhcmFtZXRlcnMud2Vi
UHJvY2Vzc0lkZW50aXR5VG9rZW4gPSBNYWNoU2VuZFJpZ2h0OjphZG9wdChpZGVudGl0eVRva2Vu
KTsKLSAgICBlbHNlCi0gICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKFByb2Nlc3MsICJDYWxsIHRv
IHRhc2tfY3JlYXRlX2lkZW50aXR5X3Rva2VuKCkgZmFpbGVkOiAle3ByaXZhdGV9cyAoJXgpIiwg
bWFjaF9lcnJvcl9zdHJpbmcoa3IpLCBrcik7Ci0jZW5kaWYKKyAgICBwYXJhbWV0ZXJzLndlYlBy
b2Nlc3NJZGVudGl0eSA9IFByb2Nlc3NJZGVudGl0eSB7IFByb2Nlc3NJZGVudGl0eTo6Q3VycmVu
dFByb2Nlc3MgfTsKIAogICAgIHBhcmFtZXRlcnMub3ZlcnJpZGVMYW5ndWFnZXMgPSB1c2VyUHJl
ZmVycmVkTGFuZ3VhZ2VzT3ZlcnJpZGUoKTsKIH0KZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxv
ZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCA3MTQxNzgyZjQzN2VhOWQ5NzAxZTg0ZjUwMDU2YmUx
N2Q4MzMwZjJlLi5lNDc3NTM0NzhjY2QwMTBkYzQ0MGJlNzM3NTBkZWI4YzYwNjI5ZWI1IDEwMDY0
NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MTYgQEAKKzIwMjEtMTItMDggIEtpbW1vIEtpbm51bmVuICA8a2tpbm51bmVuQGFwcGxlLmNvbT4K
KworICAgICAgICBJT1N1cmZhY2UgbWVtb3J5IGF0dHJpYnV0aW9uIGlzIGhhcmQgdG8gdXNlIGlu
IGNvbnN0cnVjdG9ycworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MjMyOTg4CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS84NTU0MTkxOD4KKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBVcGRhdGUgY29uc3RydWN0
b3IgY2FsbGluZyBiYXNlIGNsYXNzIGNvbnN0cnVjdG9yLCBhZGQgZW1wdHkKKyAgICAgICAgUHJv
Y2Vzc2VJZGVudGl0eS4KKworICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9j
b2NvYS9UZXN0R3JhcGhpY3NDb250ZXh0R0xDb2NvYS5tbToKKwogMjAyMS0xMi0wOCAgQnJhZHkg
RWlkc29uICA8YmVpZHNvbkBhcHBsZS5jb20+CiAKICAgICAgICAgQWRkIGFiaWxpdHkgdG8gaW5q
ZWN0IG1lc3NhZ2VzIGludG8gd2VicHVzaGQKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViQ29yZS9jb2NvYS9UZXN0R3JhcGhpY3NDb250ZXh0R0xDb2NvYS5tbSBiL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9jb2NvYS9UZXN0R3JhcGhpY3NDb250ZXh0
R0xDb2NvYS5tbQppbmRleCA4NzZjNzQ0ODA4ZjQzNjFlM2NkNTJmNTNmZmQ2ZjYwMDNhOGEwZjg3
Li5hOTE2Mjc5OGU2ZjA3ZjQ3OGJjMTJiYmQ4M2ZjMDQ1YjQzMjM3Mzc0IDEwMDY0NAotLS0gYS9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvY29jb2EvVGVzdEdyYXBoaWNzQ29udGV4
dEdMQ29jb2EubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL2NvY29h
L1Rlc3RHcmFwaGljc0NvbnRleHRHTENvY29hLm1tCkBAIC0zMiw2ICszMiw3IEBACiAjaW1wb3J0
IDxNZXRhbC9NZXRhbC5oPgogI2ltcG9ydCA8V2ViQ29yZS9Db2xvci5oPgogI2ltcG9ydCA8V2Vi
Q29yZS9HcmFwaGljc0NvbnRleHRHTENvY29hLmg+CisjaW1wb3J0IDxXZWJDb3JlL1Byb2Nlc3NJ
ZGVudGl0eS5oPgogI2ltcG9ydCA8b3B0aW9uYWw+CiAjaW1wb3J0IDx3dGYvSGFzaFNldC5oPgog
I2ltcG9ydCA8d3RmL01lbW9yeUZvb3RwcmludC5oPgpAQCAtNjcsNyArNjgsNyBAQCBzdGF0aWMg
UmVmUHRyPFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dEdMQ29jb2E+IGNyZWF0ZURlZmF1bHRUZXN0
Q29udGV4dChXZWJDb3JlOgogICAgIGF0dHJpYnV0ZXMuc3RlbmNpbCA9IGZhbHNlOwogICAgIGF0
dHJpYnV0ZXMuYWxwaGEgPSB0cnVlOwogICAgIGF0dHJpYnV0ZXMucHJlc2VydmVEcmF3aW5nQnVm
ZmVyID0gZmFsc2U7Ci0gICAgYXV0byBjb250ZXh0ID0gV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0
R0xDb2NvYTo6Y3JlYXRlKFdURk1vdmUoYXR0cmlidXRlcykpOworICAgIGF1dG8gY29udGV4dCA9
IFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dEdMQ29jb2E6OmNyZWF0ZShXVEZNb3ZlKGF0dHJpYnV0
ZXMpLCB7IH0pOwogICAgIGlmICghY29udGV4dCkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAg
ICAgY29udGV4dC0+cmVzaGFwZShjb250ZXh0U2l6ZS53aWR0aCgpLCBjb250ZXh0U2l6ZS5oZWln
aHQoKSk7CkBAIC0xMTksMTUgKzEyMCwxNSBAQCBURVNUX0YoR3JhcGhpY3NDb250ZXh0R0xDb2Nv
YVRlc3QsIE1BWUJFX011bHRpcGxlR1BVc0RpZmZlcmVudFBvd2VyUHJlZmVyZW5jZU1ldAogICAg
IFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dEdMQXR0cmlidXRlcyBhdHRyaWJ1dGVzOwogICAgIGF0
dHJpYnV0ZXMudXNlTWV0YWwgPSB0cnVlOwogICAgIEVYUEVDVF9FUShhdHRyaWJ1dGVzLnBvd2Vy
UHJlZmVyZW5jZSwgV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0R0xQb3dlclByZWZlcmVuY2U6OkRl
ZmF1bHQpOwotICAgIGF1dG8gZGVmYXVsdENvbnRleHQgPSBXZWJDb3JlOjpHcmFwaGljc0NvbnRl
eHRHTENvY29hOjpjcmVhdGUoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0R0xBdHRyaWJ1dGVzIHsg
YXR0cmlidXRlcyB9KTsKKyAgICBhdXRvIGRlZmF1bHRDb250ZXh0ID0gV2ViQ29yZTo6R3JhcGhp
Y3NDb250ZXh0R0xDb2NvYTo6Y3JlYXRlKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dEdMQXR0cmli
dXRlcyB7IGF0dHJpYnV0ZXMgfSwgeyB9KTsKICAgICBBU1NFUlRfTkUoZGVmYXVsdENvbnRleHQs
IG51bGxwdHIpOwogCiAgICAgYXR0cmlidXRlcy5wb3dlclByZWZlcmVuY2UgPSBXZWJDb3JlOjpH
cmFwaGljc0NvbnRleHRHTFBvd2VyUHJlZmVyZW5jZTo6TG93UG93ZXI7Ci0gICAgYXV0byBsb3dQ
b3dlckNvbnRleHQgPSBXZWJDb3JlOjpHcmFwaGljc0NvbnRleHRHTENvY29hOjpjcmVhdGUoV2Vi
Q29yZTo6R3JhcGhpY3NDb250ZXh0R0xBdHRyaWJ1dGVzIHsgYXR0cmlidXRlcyB9KTsKKyAgICBh
dXRvIGxvd1Bvd2VyQ29udGV4dCA9IFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dEdMQ29jb2E6OmNy
ZWF0ZShXZWJDb3JlOjpHcmFwaGljc0NvbnRleHRHTEF0dHJpYnV0ZXMgeyBhdHRyaWJ1dGVzIH0s
IHsgfSk7CiAgICAgQVNTRVJUX05FKGxvd1Bvd2VyQ29udGV4dCwgbnVsbHB0cik7CiAKICAgICBh
dHRyaWJ1dGVzLnBvd2VyUHJlZmVyZW5jZSA9IFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dEdMUG93
ZXJQcmVmZXJlbmNlOjpIaWdoUGVyZm9ybWFuY2U7Ci0gICAgYXV0byBoaWdoUGVyZm9ybWFuY2VD
b250ZXh0ID0gV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0R0xDb2NvYTo6Y3JlYXRlKFdlYkNvcmU6
OkdyYXBoaWNzQ29udGV4dEdMQXR0cmlidXRlcyB7IGF0dHJpYnV0ZXMgfSk7CisgICAgYXV0byBo
aWdoUGVyZm9ybWFuY2VDb250ZXh0ID0gV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0R0xDb2NvYTo6
Y3JlYXRlKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dEdMQXR0cmlidXRlcyB7IGF0dHJpYnV0ZXMg
fSwgeyB9KTsKICAgICBBU1NFUlRfTkUoaGlnaFBlcmZvcm1hbmNlQ29udGV4dCwgbnVsbHB0cik7
CiAKICAgICBFWFBFQ1RfTkUobG93UG93ZXJDb250ZXh0LT5nZXRTdHJpbmcoV2ViQ29yZTo6R3Jh
cGhpY3NDb250ZXh0R0w6OlJFTkRFUkVSKSwgaGlnaFBlcmZvcm1hbmNlQ29udGV4dC0+Z2V0U3Ry
aW5nKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dEdMOjpSRU5ERVJFUikpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>446546</attachid>
            <date>2021-12-09 06:59:41 -0800</date>
            <delta_ts>2021-12-09 11:58:05 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-232988-20211209165938.patch</filename>
            <type>text/plain</type>
            <size>55018</size>
            <attacher name="Kimmo Kinnunen">kkinnunen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg2Nzc0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjRmMDIyNzUwMTQ3ZDYx
Y2FmNGI4NGQ4OGVhZmY4NTRmNzBlYzRhZS4uZjk1OGZjNjBmNDE3YzUyNmVhNGI3Y2FjMjMzMTI3
YjYyMGVjODgzMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUzIEBACisyMDIxLTEyLTA4ICBLaW1t
byBLaW5udW5lbiAgPGtraW5udW5lbkBhcHBsZS5jb20+CisKKyAgICAgICAgSU9TdXJmYWNlIG1l
bW9yeSBhdHRyaWJ1dGlvbiBpcyBoYXJkIHRvIHVzZSBpbiBjb25zdHJ1Y3RvcnMKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMjk4OAorICAgICAgICA8
cmRhcjovL3Byb2JsZW0vODU1NDE5MTg+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQ2hyaXMgRHVt
ZXouCisKKyAgICAgICAgQWRkIFdlYkNvcmU6OlByb2Nlc3NJZGVudGl0eSB0eXBlIHRoYXQgY2Fu
IGJlIHVzZWQgdG8gY29tbXVuaWNhdGUgbWVtb3J5IGF0dHJpYnV0aW9uLgorICAgICAgICBGb3Ig
bm9uLUNvY29hIHBvcnRzLCB0aGlzIGlzIG51bGxwdHIuCisgICAgICAgIFRoaXMgaXMgdXNlZCBp
biBXZWJDb3JlIHRvIHNldCB0aGUgbWVtb3J5IGF0dHJpYnV0aW9uIG9mIElPU3VyZmFjZSBhbmQg
b2JqZWN0cworICAgICAgICB0aGF0IGhvbGQgSU9TdXJmYWNlcy4KKyAgICAgICAgVGhpcyBpcyBp
bnN0YW50aWF0ZWQgaW4gV2ViS2l0LgorICAgICAgICBDdXJyZW50bHkgdGhlIG9ubHkgdXNlZnVs
IHdheSB0byBpbnN0YW50aWF0ZSBQcm9jZXNzSWRlbnRpdHkgaXMgYnkgcmVjZWl2aW5nCisgICAg
ICAgIHRoZSBQcm9jZXNzSWRlbnRpdHkgYXMgYSBtZXNzYWdlIGFuZCBjcmVhdGUgaXQgdGhpcyB3
YXkgZm9yIHRoZQorICAgICAgICBzZW5kZXIgcHJvY2Vzcy4KKworICAgICAgICBObyBuZXcgdGVz
dHMsIHJlZmFjdG9yLgorCisgICAgICAgICogSGVhZGVycy5jbWFrZToKKyAgICAgICAgKiBTb3Vy
Y2VzLnR4dDoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6Cisg
ICAgICAgICogcGxhdGZvcm0vTG9nZ2luZy5oOgorICAgICAgICBBZGQgV2ViQ29yZSBQcm9jZXNz
IGxvZyB0YWcgc2luY2UgdGhlIGNvZGUgbW92ZWQgZnJvbSBXZWJLaXQgdG8gUHJvY2Vzc0lkZW50
aXR5CisgICAgICAgIHVzZWQgdGhhdCB0YWcgdG8gbG9nLgorICAgICAgICAqIHBsYXRmb3JtL1By
b2Nlc3NJZGVudGl0eS5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6UHJvY2Vzc0lkZW50
aXR5OjpQcm9jZXNzSWRlbnRpdHkpOgorICAgICAgICAoV2ViQ29yZTo6UHJvY2Vzc0lkZW50aXR5
Ojp0YXNrSWRUb2tlbiBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpQcm9jZXNzSWRlbnRpdHk6
OnNlbmRSaWdodCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpQcm9jZXNzSWRlbnRpdHk6Om9w
ZXJhdG9yIGJvb2wgY29uc3QpOgorICAgICAgICAqIHBsYXRmb3JtL1Byb2Nlc3NJZGVudGl0eS5o
OiBBZGRlZC4KKyAgICAgICAgQWRkIHRoZSBQcm9jZXNzSWRlbnRpdHkgdHlwZSB0aGF0IGNhbiBi
ZSB1c2VkIHRvIGNvbW11bmljYXRlIG1lbW9yeSBhdHRyaWJ1dGlvbi4KKyAgICAgICAgKiBwbGF0
Zm9ybS9ncmFwaGljcy9SZW1vdGVWaWRlb1NhbXBsZS5oOgorICAgICAgICAoV2ViQ29yZTo6UmVt
b3RlVmlkZW9TYW1wbGU6OnNldE93bmVyc2hpcElkZW50aXR5KToKKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy9hbmdsZS9HcmFwaGljc0NvbnRleHRHTEFOR0xFLmg6CisgICAgICAgICogcGxh
dGZvcm0vZ3JhcGhpY3MvY29jb2EvR3JhcGhpY3NDb250ZXh0R0xDb2NvYS5oOgorICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0dyYXBoaWNzQ29udGV4dEdMQ29jb2EubW06CisgICAg
ICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHRHTENvY29hOjpjcmVhdGUpOgorICAgICAgICAo
V2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0R0xDb2NvYTo6R3JhcGhpY3NDb250ZXh0R0xDb2NvYSk6
CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHRHTEFOR0xFOjphbGxvY2F0ZUFuZEJp
bmREaXNwbGF5QnVmZmVyQmFja2luZyk6CisgICAgICAgIEFkZCBhbiBleGFtcGxlIHVzZSB3aGVy
ZSB0aGUgY29uc3RydWN0b3IgdGFrZXMgdGhlIG1lbW9yeSBhdHRyaWJ1dGlvbiB0b2tlbi4KKyAg
ICAgICAgVGhpcyBtYXkgYmUgbmVlZGVkIGluIHRoZSBmdXR1cmUgd2hlbiB0aGUgdG9rZW4gaXMg
dXNlZCBhcyBhIHBhcmFtZXRlciBpbgorICAgICAgICB0aGUgQU5HTEUgY29udGV4dCBjcmVhdGlv
bi4KKyAgICAgICAgVXNlIHRoZSB0b2tlbiBpbiBjcmVhdGluZyB0aGUgSU9TdXJmYWNlLiBUaGlz
IGZpeGVzIGEgYnVnIHdoZXJlIFdlYkdMCisgICAgICAgIGJhY2sgYnVmZmVycyB3b3VsZCBub3Qg
YmUgYXR0cmlidXRlZCB1bnRpbCB0aGV5IHdlcmUgc2VudCB0byBXUC4KKyAgICAgICAgKiBwbGF0
Zm9ybS9ncmFwaGljcy9jb2NvYS9JT1N1cmZhY2UuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy9jb2NvYS9JT1N1cmZhY2UubW06CisgICAgICAgIChXZWJDb3JlOjpJT1N1cmZhY2U6OnNl
dE93bmVyc2hpcElkZW50aXR5KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9X
ZWJQcm9jZXNzR3JhcGhpY3NDb250ZXh0R0xDb2NvYS5tbToKKwogMjAyMS0xMi0wOSAgTXlsZXMg
Qy4gTWF4ZmllbGQgIDxtbWF4ZmllbGRAYXBwbGUuY29tPiBhbmQgRG9uIE9sbXN0ZWFkICA8ZG9u
Lm9sbXN0ZWFkQHNvbnkuY29tPgogCiAgICAgICAgIE1vdmUgVGV4dENvZGVjIGZpbGVzIGZyb20g
V2ViQ29yZS9wbGF0Zm9ybS90ZXh0IHRvIFdlYkNvcmUvUEFML3RleHQKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggZWZl
NDhiNGJmMGM5MzFmYmUxZmJkNTQxNzc3NGM1YWNjNjJkNDBiMC4uNmNhYzZhYTZmMTlmYWE0YjBj
ODcwZDRjYTk4Y2VjMTA0NjdmNGU0MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VM
b2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSw1NCBAQAorMjAyMS0x
Mi0wOCAgS2ltbW8gS2lubnVuZW4gIDxra2lubnVuZW5AYXBwbGUuY29tPgorCisgICAgICAgIElP
U3VyZmFjZSBtZW1vcnkgYXR0cmlidXRpb24gaXMgaGFyZCB0byB1c2UgaW4gY29uc3RydWN0b3Jz
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzI5ODgK
KyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzg1NTQxOTE4PgorCisgICAgICAgIFJldmlld2VkIGJ5
IENocmlzIER1bWV6LgorCisgICAgICAgIFJlbW92ZSBpZmRlZnMgYW5kIGRpcmVjdCB1c2Ugb2Yg
dGFza19pZF90b2tlbl90LgorICAgICAgICBJbnN0ZWFkLCB1c2UgV2ViQ29yZTo6UHJvY2Vzc0lk
ZW50aWZpZXIuIFRoaXMgd2F5IHRoZQorICAgICAgICBjcm9zcy1wbGF0Zm9ybSBjb2RlIGlzIGVh
c2llciB0byBhdXRob3IuCisKKyAgICAgICAgKiBHUFVQcm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dl
YlByb2Nlc3MuY3BwOgorICAgICAgICAoV2ViS2l0OjpHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNz
OjpHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzKToKKyAgICAgICAgKiBHUFVQcm9jZXNzL0dQVUNv
bm5lY3Rpb25Ub1dlYlByb2Nlc3MuaDoKKyAgICAgICAgKFdlYktpdDo6R1BVQ29ubmVjdGlvblRv
V2ViUHJvY2Vzczo6d2ViUHJvY2Vzc0lkZW50aXR5IGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6
R1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6d2ViUHJvY2Vzc0lkZW50aXR5VG9rZW4gY29uc3Qp
OiBEZWxldGVkLgorICAgICAgICAqIEdQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlR3JhcGhpY3ND
b250ZXh0R0xDb2NvYS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUdyYXBoaWNzQ29udGV4
dEdMQ29jb2E6OlJlbW90ZUdyYXBoaWNzQ29udGV4dEdMQ29jb2EpOgorICAgICAgICAoV2ViS2l0
OjpSZW1vdGVHcmFwaGljc0NvbnRleHRHTENvY29hOjpwbGF0Zm9ybVdvcmtRdWV1ZUluaXRpYWxp
emUpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVHcmFwaGljc0NvbnRleHRHTENvY29hOjpwcmVw
YXJlRm9yRGlzcGxheSk6CisgICAgICAgICogR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVJbWFn
ZUJ1ZmZlci5oOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVJbWFnZUJ1ZmZlcjo6c2V0T3duZXJz
aGlwSWRlbnRpdHkpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVJbWFnZUJ1ZmZlcjo6c2V0UHJv
Y2Vzc093bmVyc2hpcCk6IERlbGV0ZWQuCisgICAgICAgICogR1BVUHJvY2Vzcy9ncmFwaGljcy9S
ZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmNwcDoKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVuZGVy
aW5nQmFja2VuZDo6UmVtb3RlUmVuZGVyaW5nQmFja2VuZCk6CisgICAgICAgIChXZWJLaXQ6OlJl
bW90ZVJlbmRlcmluZ0JhY2tlbmQ6OmNyZWF0ZUltYWdlQnVmZmVyV2l0aFF1YWxpZmllZElkZW50
aWZpZXIpOgorICAgICAgICAqIEdQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFj
a2VuZC5oOgorICAgICAgICAqIEdQVVByb2Nlc3Mvd2VicnRjL0xpYldlYlJUQ0NvZGVjc1Byb3h5
Lm1tOgorICAgICAgICAoV2ViS2l0OjpGdW5jdGlvbjx2b2lkKToKKyAgICAgICAgKiBTaGFyZWQv
R1BVUHJvY2Vzc0Nvbm5lY3Rpb25QYXJhbWV0ZXJzLmg6CisgICAgICAgIChXZWJLaXQ6OkdQVVBy
b2Nlc3NDb25uZWN0aW9uUGFyYW1ldGVyczo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYktp
dDo6R1BVUHJvY2Vzc0Nvbm5lY3Rpb25QYXJhbWV0ZXJzOjpkZWNvZGUpOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5LmNwcDoKKyAgICAgICAg
KFdlYktpdDo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6U291cmNlUHJveHk6OlNvdXJj
ZVByb3h5KToKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6
U291cmNlUHJveHk6OnNldFNob3VsZEFwcGx5Um90YXRpb24pOgorICAgICAgICAoV2ViS2l0OjpV
c2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OjpjcmVhdGVNZWRpYVNvdXJjZUZvckNhcHR1cmVE
ZXZpY2VXaXRoQ29uc3RyYWludHMpOgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFDYXB0dXJl
TWFuYWdlclByb3h5OjpjbG9uZSk6CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYUNhcHR1cmVN
YW5hZ2VyUHJveHk6OlNvdXJjZVByb3h5OjpzZXRXZWJQcm9jZXNzSWRlbnRpdHlUb2tlbik6IERl
bGV0ZWQuCisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2Vy
UHJveHkuaDoKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6
Q29ubmVjdGlvblByb3h5Ojp3ZWJQcm9jZXNzSWRlbnRpdHlUb2tlbiBjb25zdCk6IERlbGV0ZWQu
CisgICAgICAgICogVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHA6CisgICAgICAgICogV2Vi
UHJvY2Vzcy9HUFUvZ3JhcGhpY3MvSW1hZ2VCdWZmZXJTaGFyZWFibGVCaXRtYXBCYWNrZW5kLmg6
CisgICAgICAgIChXZWJLaXQ6OkltYWdlQnVmZmVyU2hhcmVhYmxlQml0bWFwQmFja2VuZDo6c2V0
T3duZXJzaGlwSWRlbnRpdHkpOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL2Nv
Y29hL0ltYWdlQnVmZmVyU2hhcmVhYmxlTWFwcGVkSU9TdXJmYWNlQmFja2VuZC5jcHA6CisgICAg
ICAgIChXZWJLaXQ6OkltYWdlQnVmZmVyU2hhcmVhYmxlTWFwcGVkSU9TdXJmYWNlQmFja2VuZDo6
c2V0T3duZXJzaGlwSWRlbnRpdHkpOgorICAgICAgICAoV2ViS2l0OjpJbWFnZUJ1ZmZlclNoYXJl
YWJsZU1hcHBlZElPU3VyZmFjZUJhY2tlbmQ6OnNldFByb2Nlc3NPd25lcnNoaXApOiBEZWxldGVk
LgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL2NvY29hL0ltYWdlQnVmZmVyU2hh
cmVhYmxlTWFwcGVkSU9TdXJmYWNlQmFja2VuZC5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvY29j
b2EvV2ViUHJvY2Vzc0NvY29hLm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjpwbGF0
Zm9ybUluaXRpYWxpemVHUFVQcm9jZXNzQ29ubmVjdGlvblBhcmFtZXRlcnMpOgorCiAyMDIxLTEy
LTA5ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAogICAgICAgICBDb3B5IFNl
cnZpY2VXb3JrZXJOYXZpZ2F0aW9uUHJlbG9hZGVyIGVycm9yIHdoZW4gZmFpbGluZyBpdHMgU2Vy
dmljZVdvcmtlckZldGNoVGFzawpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvSGVhZGVycy5j
bWFrZSBiL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKaW5kZXggY2ZjNWFjYWVkZTYxNmU5
MTAxM2JkNTdiZjc1NTRhNTIzMjBmY2IyZS4uOTA0ZDI4NWI3OGE3MGFmNmMyOGE2MGQ1NWViOTcx
YWU4OGIzYmQzOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCkBAIC0xMjkxLDYgKzEyOTEsNyBAQCBzZXQo
V2ViQ29yZV9QUklWQVRFX0ZSQU1FV09SS19IRUFERVJTCiAgICAgcGxhdGZvcm0vUG9wdXBNZW51
Q2xpZW50LmgKICAgICBwbGF0Zm9ybS9Qb3B1cE1lbnVTdHlsZS5oCiAgICAgcGxhdGZvcm0vUHJv
Y2Vzc0lkZW50aWZpZXIuaAorICAgIHBsYXRmb3JtL1Byb2Nlc3NJZGVudGl0eS5oCiAgICAgcGxh
dGZvcm0vUHJvY2Vzc1F1YWxpZmllZC5oCiAgICAgcGxhdGZvcm0vUHJvbWlzZWRBdHRhY2htZW50
SW5mby5oCiAgICAgcGxhdGZvcm0vUHVibGljU3VmZml4LmgKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL1NvdXJjZXMudHh0IGIvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKaW5kZXggNTc4
NDY3YWNhZjcwMTBmZjM2OGU4MDBmM2Q3ZDcwYjgyMTNiYjQzMi4uNGI1ZDgzMGZjN2M2Mzk2MDA4
M2FjYWZjMzg4ODIyYzU5NjEyZmUwZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvU291cmNl
cy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKQEAgLTE4ODYsNiArMTg4Niw3
IEBAIHBsYXRmb3JtL1BsYXRmb3JtU3RyYXRlZ2llcy5jcHAKIHBsYXRmb3JtL1BsYXRmb3JtV2hl
ZWxFdmVudC5jcHAKIHBsYXRmb3JtL1ByZXZpZXdDb252ZXJ0ZXIuY3BwCiBwbGF0Zm9ybS9Qcm9j
ZXNzSWRlbnRpZmllci5jcHAKK3BsYXRmb3JtL1Byb2Nlc3NJZGVudGl0eS5jcHAKIHBsYXRmb3Jt
L1JlZmVycmVyUG9saWN5LmNwcAogcGxhdGZvcm0vUmVtb3RlQ29tbWFuZExpc3RlbmVyLmNwcAog
cGxhdGZvcm0vUnVudGltZUFwcGxpY2F0aW9uQ2hlY2tzLmNwcApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDI2ZjllOTUwZTUyY2M0
ZDdkYWY4ZWRkYmUyODlkNzAxNGZlMWNlZDAuLjlkZTk3ZDkwYTliZTE3ZTg1MmNlZWU2YTFiOWVh
ODJjODFkZWI1OGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oKQEAgLTIzODYsNiArMjM4Niw3IEBACiAJCTdCQjM0QTQ4MjUzNzc2Q0Ew
MDAyOUQwOCAvKiBHcmFwaGljc0NvbnRleHRHTEltYWdlRXh0cmFjdG9yLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3QkIzNEE0NTI1Mzc3NkM2MDAwMjlE
MDggLyogR3JhcGhpY3NDb250ZXh0R0xJbWFnZUV4dHJhY3Rvci5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTdCQjY4MEJBMjVCQTFCRTQwMDJCODcz
OCAvKiBHcmFwaGljc0NoZWNrc01hYy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gN0JCNjgwQjgyNUJBMUJFNDAwMkI4NzM4IC8qIEdyYXBoaWNzQ2hlY2tz
TWFjLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJ
N0JEREEzMUYyNzRGQTAyMTAwMzg2NTlFIC8qIEdyYXBoaWNzQ29udGV4dEdMQ29jb2EuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdCRERBMzFEMjc0RjlE
QTUwMDM4NjU5RSAvKiBHcmFwaGljc0NvbnRleHRHTENvY29hLmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJN0JEREEzNEMyNzVBMDEzMTAwMzg2NTlF
IC8qIFByb2Nlc3NJZGVudGl0eS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gN0JEREEzNDkyNzVBMDEzMDAwMzg2NTlFIC8qIFByb2Nlc3NJZGVudGl0eS5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTdCRTc0
MjczODFGQTkwNkZCQjRGMEYyQyAvKiBKU1NWR0dyYXBoaWNzRWxlbWVudC5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTUwQzRDMDJCRUQ4OTM2RjgxOEUy
Rjk5IC8qIEpTU1ZHR3JhcGhpY3NFbGVtZW50LmggKi87IH07CiAJCTdCRkY1OUY0Mjc1NzcyNjcw
MDc3M0QzOSAvKiBEaXNwbGF5Q29uZmlndXJhdGlvbk1vbml0b3IuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdCRkY1OUVGMjc1NzcxRTgwMDc3M0QzOSAv
KiBEaXNwbGF5Q29uZmlndXJhdGlvbk1vbml0b3IuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRF
UyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk3QzAyOUM2RTI0OTNDOEY4MDAyNjgyMDQgLyogQ29s
b3JUeXBlcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
N0MwMjlDNkQyNDkzQzhGODAwMjY4MjA0IC8qIENvbG9yVHlwZXMuaCAqLzsgc2V0dGluZ3MgPSB7
QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtMTE0MDcsNiArMTE0MDgsOCBAQAog
CQk3QkNENDJEQzI3MDVDOTQ5MDBFQjIxMjcgLyogQU5HTEVVdGlsaXRpZXNDb2NvYS5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBBTkdMRVV0aWxpdGllc0NvY29hLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTdCRERBMzFDMjc0RjlEQTQwMDM4NjU5RSAvKiBHcmFwaGljc0NvbnRleHRHTENvY29h
Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gR3JhcGhpY3NDb250
ZXh0R0xDb2NvYS5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0JEREEzMUQyNzRG
OURBNTAwMzg2NTlFIC8qIEdyYXBoaWNzQ29udGV4dEdMQ29jb2EuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gR3JhcGhpY3NDb250ZXh0R0xDb2NvYS5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQk3QkREQTM0OTI3NUEwMTMwMDAzODY1OUUgLyogUHJvY2Vzc0lkZW50
aXR5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFByb2Nlc3NJZGVudGl0eS5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk3QkREQTM0QjI3NUEwMTMwMDAzODY1OUUg
LyogUHJvY2Vzc0lkZW50aXR5LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IFByb2Nlc3NJZGVudGl0eS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdC
RTcyNjVCMjU3NjNCOEQwMEU4NUQ5OCAvKiBSZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5QmFz
ZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5QmFz
ZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdCRkY1OUVGMjc1NzcxRTgwMDc3
M0QzOSAvKiBEaXNwbGF5Q29uZmlndXJhdGlvbk1vbml0b3IuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBleHBsaWNpdEZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuaDsgZmlsZUVuY29k
aW5nID0gNDsgcGF0aCA9IERpc3BsYXlDb25maWd1cmF0aW9uTW9uaXRvci5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk3QkZGNTlGMTI3NTc3MUU4MDA3NzNEMzkgLyogRGlzcGxheUNv
bmZpZ3VyYXRpb25Nb25pdG9yLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IERpc3BsYXlDb25maWd1cmF0aW9uTW9uaXRvci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CkBAIC0yOTgwNCw2ICsyOTgwNyw4IEBACiAJCQkJQTFBREFGN0MyMzYwRkQzRTAwOUNC
Nzc2IC8qIFByZXZpZXdDb252ZXJ0ZXJQcm92aWRlci5oICovLAogCQkJCTUxRjY0NUQyMUZFQ0RC
QzgwMEI1NERFRCAvKiBQcm9jZXNzSWRlbnRpZmllci5jcHAgKi8sCiAJCQkJNTFGNjQ1RDMxRkVD
REJDODAwQjU0REVEIC8qIFByb2Nlc3NJZGVudGlmaWVyLmggKi8sCisJCQkJN0JEREEzNEIyNzVB
MDEzMDAwMzg2NTlFIC8qIFByb2Nlc3NJZGVudGl0eS5jcHAgKi8sCisJCQkJN0JEREEzNDkyNzVB
MDEzMDAwMzg2NTlFIC8qIFByb2Nlc3NJZGVudGl0eS5oICovLAogCQkJCTFDQzU0QUZCMjcwRjky
REEwMDVCRjhCRSAvKiBQcm9jZXNzUXVhbGlmaWVkLmggKi8sCiAJCQkJRjQ3QTYzM0MxRkY2RkQ1
MDAwODFCM0NDIC8qIFByb21pc2VkQXR0YWNobWVudEluZm8uaCAqLywKIAkJCQkwMDgxRkVGRDE2
QjBBMjQ0MDA4QUFBN0EgLyogUHVibGljU3VmZml4LmggKi8sCkBAIC0zNjM2Nyw2ICszNjM3Miw3
IEBACiAJCQkJQjcxRkU2REYxMTA5MUNCMzAwREFFRjc3IC8qIFByaW50Q29udGV4dC5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJNkIwQTA3RjIyMUZBNEI1QzAwRDU3MzkxIC8qIFByaXZhdGVDbGlja01l
YXN1cmVtZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQk1MUY2NDVENTFGRUNEQkNFMDBCNTRERUQg
LyogUHJvY2Vzc0lkZW50aWZpZXIuaCBpbiBIZWFkZXJzICovLAorCQkJCTdCRERBMzRDMjc1QTAx
MzEwMDM4NjU5RSAvKiBQcm9jZXNzSWRlbnRpdHkuaCBpbiBIZWFkZXJzICovLAogCQkJCUE4RUE3
RUJDMEExOTQ1RDAwMEE4RUY1RiAvKiBQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24uaCBpbiBIZWFkZXJz
ICovLAogCQkJCTFDQzU0QUZFMjcwRjk2QUUwMDVCRjhCRSAvKiBQcm9jZXNzUXVhbGlmaWVkLmgg
aW4gSGVhZGVycyAqLywKIAkJCQlFNDIwNTAxNzIxNDE5MDFCMDA2NkVGM0IgLyogUHJvY2Vzc1dh
cm1pbmcuaCBpbiBIZWFkZXJzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vTG9nZ2luZy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTG9nZ2luZy5oCmluZGV4IDNm
YmU0MTdiZTk4MWI3NWU3NzlkZTIzOGZjNGJlMDVhNmQ3MzBmYWEuLmRjMGY1MDk4Yjg3ZjE4NDU1
MjViZTNjMGJhNDFmNzY3NWIxNDA0N2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL0xvZ2dpbmcuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Mb2dnaW5nLmgKQEAg
LTk0LDYgKzk0LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgIE0oUGx1Z2lucykgXAogICAg
IE0oUG9wdXBCbG9ja2luZykgXAogICAgIE0oUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQpIFwKKyAg
ICBNKFByb2Nlc3MpIFwKICAgICBNKFByb2dyZXNzKSBcCiAgICAgTShSZW1vdGVJbnNwZWN0b3Ip
IFwKICAgICBNKFJlcXVlc3RBbmltYXRpb25GcmFtZSkgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vUHJvY2Vzc0lkZW50aXR5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL1Byb2Nlc3NJZGVudGl0eS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZGU4ZDMyYWI0ZWUyYTAwMmJjNWQw
NjEzMjA3N2M2Njg4NGJmODAzOQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL1Byb2Nlc3NJZGVudGl0eS5jcHAKQEAgLTAsMCArMSw2NSBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBB
TkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisg
KiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNp
bmNsdWRlICJQcm9jZXNzSWRlbnRpdHkuaCIKKworI2luY2x1ZGUgIkxvZ2dpbmcuaCIKKworI2lm
IEhBVkUoVEFTS19JREVOVElUWV9UT0tFTikKKyNpbmNsdWRlIDxtYWNoL21hY2guaD4KKyNlbmRp
ZgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1Byb2Nlc3NJZGVudGl0eTo6UHJvY2Vzc0lkZW50
aXR5KEN1cnJlbnRQcm9jZXNzVGFnKQoreworI2lmIEhBVkUoVEFTS19JREVOVElUWV9UT0tFTikK
KyAgICB0YXNrX2lkX3Rva2VuX3QgaWRlbnRpdHlUb2tlbjsKKyAgICBrZXJuX3JldHVybl90IGty
ID0gdGFza19jcmVhdGVfaWRlbnRpdHlfdG9rZW4obWFjaF90YXNrX3NlbGYoKSwgJmlkZW50aXR5
VG9rZW4pOworICAgIGlmIChrciA9PSBLRVJOX1NVQ0NFU1MpCisgICAgICAgIG1fdGFza0lkVG9r
ZW4gPSBNYWNoU2VuZFJpZ2h0OjphZG9wdChpZGVudGl0eVRva2VuKTsKKyAgICBlbHNlCisgICAg
ICAgIFJFTEVBU0VfTE9HX0VSUk9SKFByb2Nlc3MsICJ0YXNrX2NyZWF0ZV9pZGVudGl0eV90b2tl
bigpIGZhaWxlZDogJXtwcml2YXRlfXMgKCV4KSIsIG1hY2hfZXJyb3Jfc3RyaW5nKGtyKSwga3Ip
OworI2VuZGlmCit9CisKK1Byb2Nlc3NJZGVudGl0eTo6b3BlcmF0b3IgYm9vbCgpIGNvbnN0Cit7
CisjaWYgSEFWRShUQVNLX0lERU5USVRZX1RPS0VOKQorICAgIHJldHVybiBzdGF0aWNfY2FzdDxi
b29sPihtX3Rhc2tJZFRva2VuKTsKKyNlbHNlCisgICAgcmV0dXJuIGZhbHNlOworI2VuZGlmCit9
CisKKyNpZiBIQVZFKFRBU0tfSURFTlRJVFlfVE9LRU4pCitQcm9jZXNzSWRlbnRpdHk6OlByb2Nl
c3NJZGVudGl0eShNYWNoU2VuZFJpZ2h0JiYgdGFza0lkVG9rZW4pCisgICAgOiBtX3Rhc2tJZFRv
a2VuKFdURk1vdmUodGFza0lkVG9rZW4pKQoreworfQorI2VuZGlmCisKK30KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Byb2Nlc3NJZGVudGl0eS5oIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vUHJvY2Vzc0lkZW50aXR5LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMmU5ZGNiODZjYWRmNWZi
NTY4M2M4YjFiNTM2ODA1YWMxZTc5ZmEyMQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL1Byb2Nlc3NJZGVudGl0eS5oCkBAIC0wLDAgKzEsOTAgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElT
JycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9S
UyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAq
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lu
Y2x1ZGUgPG9wdGlvbmFsPgorCisjaWYgSEFWRShUQVNLX0lERU5USVRZX1RPS0VOKQorI2luY2x1
ZGUgPHd0Zi9NYWNoU2VuZFJpZ2h0Lmg+CisjZWxzZQorI2luY2x1ZGUgPHZhcmlhbnQ+CisjZW5k
aWYKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCisvLyBPYmplY3QgdG8gYWNjZXNzIHByb29mIG9m
IHByb2Nlc3MgaWRlbnRpdHkuCisvLyBQcm9jZXNzSWRlbnRpZmllciBpZGVudGlmaWVzIGEgcHJv
Y2Vzcy4KKy8vIFByb2Nlc3NJZGVudGl0eSBncmFudHMgYWNjZXNzIHRvIHRoZSBpZGVudGl0eS4K
Ky8vIEVtcHR5IFByb2Nlc3NJZGVudGl0eSBkb2VzIG5vdCBkbyBhbnl0aGluZy4KK2NsYXNzIFBy
b2Nlc3NJZGVudGl0eSB7CitwdWJsaWM6CisgICAgLy8gQ3JlYXRlcyBhbiBwcm9jZXNzIGlkZW50
aXR5IGZvciBjdXJyZW50IHByb2Nlc3Mgb3IgZW1wdHkgb24gZXJyb3IuCisgICAgZW51bSBDdXJy
ZW50UHJvY2Vzc1RhZyB7IEN1cnJlbnRQcm9jZXNzIH07CisgICAgV0VCQ09SRV9FWFBPUlQgZXhw
bGljaXQgUHJvY2Vzc0lkZW50aXR5KEN1cnJlbnRQcm9jZXNzVGFnKTsKKworICAgIC8vIENyZWF0
ZXMgYW4gZW1wdHkgcHJvY2VzcyBpZGVudGl0eSB0aGF0IGRvZXMgbm90IGdyYW50IGFueSBhY2Nl
c3MuCisgICAgUHJvY2Vzc0lkZW50aXR5KCkgPSBkZWZhdWx0OworCisgICAgLy8gUmV0dXJucyB0
cnVlIGZvciBhIHByb2Nlc3MgaWRlbnRpdHkgb3IgZmFsc2Ugb24gZW1wdHkgaWRlbnRpdHkuCisg
ICAgV0VCQ09SRV9FWFBPUlQgb3BlcmF0b3IgYm9vbCgpIGNvbnN0OworCisjaWYgSEFWRShUQVNL
X0lERU5USVRZX1RPS0VOKQorICAgIHRhc2tfaWRfdG9rZW5fdCB0YXNrSWRUb2tlbigpIGNvbnN0
IHsgcmV0dXJuIG1fdGFza0lkVG9rZW4uc2VuZFJpZ2h0KCk7IH0KKyNlbmRpZgorCisgICAgdGVt
cGxhdGU8dHlwZW5hbWUgRW5jb2Rlcj4gdm9pZCBlbmNvZGUoRW5jb2RlciYpIGNvbnN0OworICAg
IHRlbXBsYXRlPHR5cGVuYW1lIERlY29kZXI+IHN0YXRpYyBzdGQ6Om9wdGlvbmFsPFByb2Nlc3NJ
ZGVudGl0eT4gZGVjb2RlKERlY29kZXImKTsKKworcHJpdmF0ZToKKyNpZiBIQVZFKFRBU0tfSURF
TlRJVFlfVE9LRU4pCisgICAgV0VCQ09SRV9FWFBPUlQgUHJvY2Vzc0lkZW50aXR5KE1hY2hTZW5k
UmlnaHQmJiB0YXNrSWRUb2tlbik7CisgICAgTWFjaFNlbmRSaWdodCBtX3Rhc2tJZFRva2VuOwor
I2VuZGlmCit9OworCit0ZW1wbGF0ZTx0eXBlbmFtZSBFbmNvZGVyPiB2b2lkIFByb2Nlc3NJZGVu
dGl0eTo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIpIGNvbnN0Cit7CisjaWYgSEFWRShUQVNLX0lE
RU5USVRZX1RPS0VOKQorICAgIGVuY29kZXIgPDwgbV90YXNrSWRUb2tlbjsKKyNlbHNlCisgICAg
VU5VU0VEX1BBUkFNKGVuY29kZXIpOworI2VuZGlmCit9CisKK3RlbXBsYXRlPHR5cGVuYW1lIERl
Y29kZXI+IHN0ZDo6b3B0aW9uYWw8UHJvY2Vzc0lkZW50aXR5PiBQcm9jZXNzSWRlbnRpdHk6OmRl
Y29kZShEZWNvZGVyJiBkZWNvZGVyKQoreworI2lmIEhBVkUoVEFTS19JREVOVElUWV9UT0tFTikK
KyAgICBzdGQ6Om9wdGlvbmFsPE1hY2hTZW5kUmlnaHQ+IGlkZW50aXR5U2VuZFJpZ2h0OworICAg
IGRlY29kZXIgPj4gaWRlbnRpdHlTZW5kUmlnaHQ7CisgICAgaWYgKGlkZW50aXR5U2VuZFJpZ2h0
KQorICAgICAgICByZXR1cm4gUHJvY2Vzc0lkZW50aXR5IHsgV1RGTW92ZSgqaWRlbnRpdHlTZW5k
UmlnaHQpIH07CisjZWxzZQorICAgIFVOVVNFRF9QQVJBTShkZWNvZGVyKTsKKyNlbmRpZgorICAg
IHJldHVybiBzdGQ6Om51bGxvcHQ7Cit9CisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL1JlbW90ZVZpZGVvU2FtcGxlLmggYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9SZW1vdGVWaWRlb1NhbXBsZS5oCmluZGV4IGE2MTcwYjMyOGZjNDRh
Y2U2OTNkY2RiMzVlZTRkM2NlNjg3MzM4YTEuLjA4MWUyMzU2NWFjYzQ4NDBhODA0YzdkMDc0ZTZk
ZjIwNTk4MzlmMTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L1JlbW90ZVZpZGVvU2FtcGxlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvUmVtb3RlVmlkZW9TYW1wbGUuaApAQCAtMzcsNiArMzcsOCBAQCB0eXBlZGVmIHN0cnVjdCBf
X0NWQnVmZmVyKiBDVlBpeGVsQnVmZmVyUmVmOwogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK2Ns
YXNzIFByb2Nlc3NJZGVudGl0eTsKKwogY2xhc3MgUmVtb3RlVmlkZW9TYW1wbGUgewogcHVibGlj
OgogICAgIFJlbW90ZVZpZGVvU2FtcGxlKCkgPSBkZWZhdWx0OwpAQCAtNDgsOSArNTAsNyBAQCBw
dWJsaWM6CiAgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxSZW1vdGVW
aWRlb1NhbXBsZT4gY3JlYXRlKFJldGFpblB0cjxDVlBpeGVsQnVmZmVyUmVmPiYmLCBNZWRpYVRp
bWUmJiBwcmVzZW50YXRpb25UaW1lLCBNZWRpYVNhbXBsZTo6VmlkZW9Sb3RhdGlvbiA9IE1lZGlh
U2FtcGxlOjpWaWRlb1JvdGF0aW9uOjpOb25lKTsKICAgICBXRUJDT1JFX0VYUE9SVCBJT1N1cmZh
Y2VSZWYgc3VyZmFjZSgpIGNvbnN0OwogCi0jaWYgSEFWRShJT1NVUkZBQ0VfU0VUX09XTkVSU0hJ
UF9JREVOVElUWSkKLSAgICB2b2lkIHNldE93bmVyc2hpcElkZW50aXR5KHRhc2tfaWRfdG9rZW5f
dCBuZXdPd25lcik7Ci0jZW5kaWYKKyAgICB2b2lkIHNldE93bmVyc2hpcElkZW50aXR5KGNvbnN0
IFByb2Nlc3NJZGVudGl0eSYpOwogCiAgICAgY29uc3QgTWVkaWFUaW1lJiB0aW1lKCkgY29uc3Qg
eyByZXR1cm4gbV90aW1lOyB9CiAgICAgdWludDMyX3QgdmlkZW9Gb3JtYXQoKSBjb25zdCB7IHJl
dHVybiBtX3ZpZGVvRm9ybWF0OyB9CkBAIC0xMTksMTMgKzExOSwxMSBAQCBwcml2YXRlOgogICAg
IGJvb2wgbV9taXJyb3JlZCB7IGZhbHNlIH07CiB9OwogCi0jaWYgSEFWRShJT1NVUkZBQ0VfU0VU
X09XTkVSU0hJUF9JREVOVElUWSkKLWlubGluZSB2b2lkIFJlbW90ZVZpZGVvU2FtcGxlOjpzZXRP
d25lcnNoaXBJZGVudGl0eSh0YXNrX2lkX3Rva2VuX3QgbmV3T3duZXIpCitpbmxpbmUgdm9pZCBS
ZW1vdGVWaWRlb1NhbXBsZTo6c2V0T3duZXJzaGlwSWRlbnRpdHkoY29uc3QgUHJvY2Vzc0lkZW50
aXR5JiByZXNvdXJjZU93bmVyKQogewogICAgIGlmIChtX2lvU3VyZmFjZSkKLSAgICAgICAgbV9p
b1N1cmZhY2UtPnNldE93bmVyc2hpcElkZW50aXR5KG5ld093bmVyKTsKKyAgICAgICAgbV9pb1N1
cmZhY2UtPnNldE93bmVyc2hpcElkZW50aXR5KHJlc291cmNlT3duZXIpOwogfQotI2VuZGlmCiAK
IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYW5nbGUv
R3JhcGhpY3NDb250ZXh0R0xBTkdMRS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvYW5nbGUvR3JhcGhpY3NDb250ZXh0R0xBTkdMRS5oCmluZGV4IDQzZDVkMjkwZGQ2ODJjYTU5
NjU2MDExMGE2NmE1YTdkYThmODUyYTAuLjk3NGViYjM1MWZjNjNkMzg0ZmQ0YTdjOTk3OWFmMGQy
NjQ1ODM5YzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Fu
Z2xlL0dyYXBoaWNzQ29udGV4dEdMQU5HTEUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9hbmdsZS9HcmFwaGljc0NvbnRleHRHTEFOR0xFLmgKQEAgLTM2LDYgKzM2LDcg
QEAKICNpZiBQTEFURk9STShDT0NPQSkKICNpbmNsdWRlICJHcmFwaGljc0NvbnRleHRHTElPU3Vy
ZmFjZVN3YXBDaGFpbi5oIgogI2luY2x1ZGUgIklPU3VyZmFjZS5oIgorI2luY2x1ZGUgIlByb2Nl
c3NJZGVudGl0eS5oIgogI2VuZGlmCiAKIApAQCAtNDI3LDYgKzQyOCw3IEBAIHByb3RlY3RlZDoK
ICAgICBzdGQ6OnVuaXF1ZV9wdHI8RXh0ZW5zaW9uc0dMQU5HTEU+IG1fZXh0ZW5zaW9uczsKIAog
I2lmIFBMQVRGT1JNKENPQ09BKQorICAgIC8vIEZJWE1FOiBNb3ZlIHRoZXNlIHRvIEdyYXBoaWNz
Q29udGV4dEdMQ29jb2EuCiAgICAgR3JhcGhpY3NDb250ZXh0R0xJT1N1cmZhY2VTd2FwQ2hhaW4g
bV9zd2FwQ2hhaW47CiAgICAgRUdMRGlzcGxheSBtX2Rpc3BsYXlPYmogeyBudWxscHRyIH07CiAg
ICAgUGxhdGZvcm1HcmFwaGljc0NvbnRleHRHTCBtX2NvbnRleHRPYmogeyBudWxscHRyIH07CkBA
IC00MzYsNiArNDM4LDcgQEAgcHJvdGVjdGVkOgogICAgIC8vIFdoZW4gcHJlc2VydmVEcmF3aW5n
QnVmZmVyID09IHRydWUsIHRoaXMgaXMgYmxpdHRlZCB0byBkdXJpbmcgZGlzcGxheSBwcmVwYXJl
LgogICAgIHN0ZDo6dW5pcXVlX3B0cjxJT1N1cmZhY2U+IG1fZGlzcGxheUJ1ZmZlckJhY2tpbmc7
CiAgICAgdm9pZCogbV9kaXNwbGF5QnVmZmVyUGJ1ZmZlciB7IG51bGxwdHIgfTsKKyAgICBQcm9j
ZXNzSWRlbnRpdHkgbV9yZXNvdXJjZU93bmVyOwogI2VuZGlmCiAjaWYgVVNFKENPT1JESU5BVEVE
X0dSQVBISUNTKQogICAgIEdDR0x1aW50IG1fY29tcG9zaXRvclRleHR1cmUgeyAwIH07CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9HcmFwaGljc0Nv
bnRleHRHTENvY29hLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9H
cmFwaGljc0NvbnRleHRHTENvY29hLmgKaW5kZXggYTY0OGZjZDJlYzRmMGI5YjUxZTMwMjM2OWUw
MTI0OWI1MmQ5YjRlNC4uOTFlNjQ3MDgwM2E1NDhjNjFiOTU4Njc3NGJjYTk1NTE1ZDk1ZGQ4OCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvR3JhcGhp
Y3NDb250ZXh0R0xDb2NvYS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2NvY29hL0dyYXBoaWNzQ29udGV4dEdMQ29jb2EuaApAQCAtNDIsOSArNDIsMTEgQEAgY2xhc3Mg
R3JhcGhpY3NDb250ZXh0R0xDVkNvY29hOwogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK2NsYXNz
IFByb2Nlc3NJZGVudGl0eTsKKwogY2xhc3MgV0VCQ09SRV9FWFBPUlQgR3JhcGhpY3NDb250ZXh0
R0xDb2NvYSA6IHB1YmxpYyBHcmFwaGljc0NvbnRleHRHTEFOR0xFIHsKIHB1YmxpYzoKLSAgICBz
dGF0aWMgUmVmUHRyPEdyYXBoaWNzQ29udGV4dEdMQ29jb2E+IGNyZWF0ZShXZWJDb3JlOjpHcmFw
aGljc0NvbnRleHRHTEF0dHJpYnV0ZXMmJik7CisgICAgc3RhdGljIFJlZlB0cjxHcmFwaGljc0Nv
bnRleHRHTENvY29hPiBjcmVhdGUoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0R0xBdHRyaWJ1dGVz
JiYsIFByb2Nlc3NJZGVudGl0eSYmIHJlc291cmNlT3duZXIpOwogICAgIH5HcmFwaGljc0NvbnRl
eHRHTENvY29hKCk7CiAgICAgSU9TdXJmYWNlKiBkaXNwbGF5QnVmZmVyKCk7CiAgICAgdm9pZCBt
YXJrRGlzcGxheUJ1ZmZlckluVXNlKCk7CkBAIC03Niw5ICs3OCw4IEBAIHB1YmxpYzoKICAgICB2
b2lkIHVwZGF0ZUNvbnRleHRPbkRpc3BsYXlSZWNvbmZpZ3VyYXRpb24oKTsKICNlbmRpZgogcHJv
dGVjdGVkOgotICAgIEdyYXBoaWNzQ29udGV4dEdMQ29jb2EoV2ViQ29yZTo6R3JhcGhpY3NDb250
ZXh0R0xBdHRyaWJ1dGVzJiYpOworICAgIEdyYXBoaWNzQ29udGV4dEdMQ29jb2EoV2ViQ29yZTo6
R3JhcGhpY3NDb250ZXh0R0xBdHRyaWJ1dGVzJiYsIFByb2Nlc3NJZGVudGl0eSYmIHJlc291cmNl
T3duZXIpOwogICAgIGJvb2wgaXNWYWxpZCgpIGNvbnN0OwotCiAjaWYgRU5BQkxFKFZJREVPKQog
ICAgIHN0ZDo6dW5pcXVlX3B0cjxHcmFwaGljc0NvbnRleHRHTENWQ29jb2E+IG1fY3Y7CiAjZW5k
aWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0dy
YXBoaWNzQ29udGV4dEdMQ29jb2EubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jb2NvYS9HcmFwaGljc0NvbnRleHRHTENvY29hLm1tCmluZGV4IDVhZjM1Y2MzOGE4YjI3MmY4
ODE2ZmZlYmFjM2JkNzM3Y2IwNTBkMmUuLjlhYjJkNzQ0MTBhMDZiYzBkZTY0MTUwZThlMTIwM2Uw
NTNhZDU5NGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nv
Y29hL0dyYXBoaWNzQ29udGV4dEdMQ29jb2EubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY29jb2EvR3JhcGhpY3NDb250ZXh0R0xDb2NvYS5tbQpAQCAtMzUsNiArMzUs
NyBAQAogI2ltcG9ydCAiR3JhcGhpY3NDb250ZXh0R0xJT1N1cmZhY2VTd2FwQ2hhaW4uaCIKICNp
bXBvcnQgIkdyYXBoaWNzQ29udGV4dEdMT3BlbkdMTWFuYWdlci5oIgogI2ltcG9ydCAiTG9nZ2lu
Zy5oIgorI2ltcG9ydCAiUHJvY2Vzc0lkZW50aXR5LmgiCiAjaW1wb3J0ICJSdW50aW1lQXBwbGlj
YXRpb25DaGVja3MuaCIKICNpbXBvcnQgPENvcmVHcmFwaGljcy9DR0JpdG1hcENvbnRleHQuaD4K
ICNpbXBvcnQgPE1ldGFsL01ldGFsLmg+CkBAIC0xOTIsMTkgKzE5MywyMiBAQCBzdGF0aWMgYm9v
bCBuZWVkc0VBR0xPbk1hYygpCiB9CiAjZW5kaWYKIAotUmVmUHRyPEdyYXBoaWNzQ29udGV4dEdM
Q29jb2E+IEdyYXBoaWNzQ29udGV4dEdMQ29jb2E6OmNyZWF0ZShHcmFwaGljc0NvbnRleHRHTEF0
dHJpYnV0ZXMmJiBhdHRyaWJ1dGVzKQorUmVmUHRyPEdyYXBoaWNzQ29udGV4dEdMQ29jb2E+IEdy
YXBoaWNzQ29udGV4dEdMQ29jb2E6OmNyZWF0ZShHcmFwaGljc0NvbnRleHRHTEF0dHJpYnV0ZXMm
JiBhdHRyaWJ1dGVzLCBQcm9jZXNzSWRlbnRpdHkmJiByZXNvdXJjZU93bmVyKQogewotICAgIGF1
dG8gY29udGV4dCA9IGFkb3B0UmVmKCpuZXcgR3JhcGhpY3NDb250ZXh0R0xDb2NvYShXVEZNb3Zl
KGF0dHJpYnV0ZXMpKSk7CisgICAgYXV0byBjb250ZXh0ID0gYWRvcHRSZWYoKm5ldyBHcmFwaGlj
c0NvbnRleHRHTENvY29hKFdURk1vdmUoYXR0cmlidXRlcyksIFdURk1vdmUocmVzb3VyY2VPd25l
cikpKTsKICAgICBpZiAoIWNvbnRleHQtPmlzVmFsaWQoKSkKICAgICAgICAgcmV0dXJuIG51bGxw
dHI7CiAgICAgcmV0dXJuIGNvbnRleHQ7CiB9CiAKLUdyYXBoaWNzQ29udGV4dEdMQ29jb2E6Okdy
YXBoaWNzQ29udGV4dEdMQ29jb2EoR3JhcGhpY3NDb250ZXh0R0xBdHRyaWJ1dGVzJiYgY3JlYXRp
b25BdHRyaWJ1dGVzKQorR3JhcGhpY3NDb250ZXh0R0xDb2NvYTo6R3JhcGhpY3NDb250ZXh0R0xD
b2NvYShHcmFwaGljc0NvbnRleHRHTEF0dHJpYnV0ZXMmJiBjcmVhdGlvbkF0dHJpYnV0ZXMsIFBy
b2Nlc3NJZGVudGl0eSYmIHJlc291cmNlT3duZXIpCiAgICAgOiBHcmFwaGljc0NvbnRleHRHTEFO
R0xFKFdURk1vdmUoY3JlYXRpb25BdHRyaWJ1dGVzKSkKIHsKICAgICBpZiAoIWlzVmFsaWQoKSkK
ICAgICAgICAgcmV0dXJuOworICAgIC8vIEZJWE1FOiBNb3ZlIHRoaXMgdG8gaW5pdGlhbGl6ZXIg
bGlzdCBvbmNlIG1fcmVzb3VyY2VPd25lciBtb3ZlcyB0byBHcmFwaGljc0NvbnRleHRHTENvY29h
LgorICAgIG1fcmVzb3VyY2VPd25lciA9IFdURk1vdmUocmVzb3VyY2VPd25lcik7CisKICNpZiBQ
TEFURk9STShNQUMpCiAgICAgYXV0byBhdHRyaWJ1dGVzID0gY29udGV4dEF0dHJpYnV0ZXMoKTsK
ICAgICBpZiAoIWF0dHJpYnV0ZXMudXNlTWV0YWwgJiYgYXR0cmlidXRlcy5lZmZlY3RpdmVQb3dl
clByZWZlcmVuY2UoKSA9PSBHcmFwaGljc0NvbnRleHRHTFBvd2VyUHJlZmVyZW5jZTo6SGlnaFBl
cmZvcm1hbmNlKQpAQCAtNTU3LDcgKzU2MSw4IEBAIGJvb2wgR3JhcGhpY3NDb250ZXh0R0xBTkdM
RTo6YWxsb2NhdGVBbmRCaW5kRGlzcGxheUJ1ZmZlckJhY2tpbmcoKQogICAgIGF1dG8gYmFja2lu
ZyA9IElPU3VyZmFjZTo6Y3JlYXRlKGdldEludGVybmFsRnJhbWVidWZmZXJTaXplKCksIERlc3Rp
bmF0aW9uQ29sb3JTcGFjZTo6U1JHQigpKTsKICAgICBpZiAoIWJhY2tpbmcpCiAgICAgICAgIHJl
dHVybiBmYWxzZTsKLQorICAgIGlmIChtX3Jlc291cmNlT3duZXIpCisgICAgICAgIGJhY2tpbmct
PnNldE93bmVyc2hpcElkZW50aXR5KG1fcmVzb3VyY2VPd25lcik7CiAgICAgYmFja2luZy0+bWln
cmF0ZUNvbG9yU3BhY2VUb1Byb3BlcnRpZXMoKTsKIAogICAgIGNvbnN0IGJvb2wgdXNpbmdBbHBo
YSA9IGNvbnRleHRBdHRyaWJ1dGVzKCkuYWxwaGE7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9JT1N1cmZhY2UuaCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2NvY29hL0lPU3VyZmFjZS5oCmluZGV4IDU2NTI0NzgyMmRiYTI5Zjc2
MDBiOTQwN2U2ZjRhY2I4YzFhMDZhYWMuLjFlOWM3MzI4ZGRjNzU2YmM0NmUyOGYxYTVlYTRhZjU0
M2M0YWE2YmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nv
Y29hL0lPU3VyZmFjZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nv
Y29hL0lPU3VyZmFjZS5oCkBAIC00Niw2ICs0Niw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNs
YXNzIEdyYXBoaWNzQ29udGV4dDsKIGNsYXNzIEhvc3RXaW5kb3c7CiBjbGFzcyBJbWFnZUJ1ZmZl
cjsKK2NsYXNzIFByb2Nlc3NJZGVudGl0eTsKIAogZW51bSBjbGFzcyBQaXhlbEZvcm1hdCA6IHVp
bnQ4X3Q7CiBlbnVtIGNsYXNzIFZvbGF0aWxpdHlTdGF0ZSA6IHVpbnQ4X3Q7CkBAIC0xNTksOSAr
MTYwLDcgQEAgcHVibGljOgogICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyB2b2lkIGNvbnZlcnRU
b0Zvcm1hdChzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6SU9TdXJmYWNlPiYmIGluU3VyZmFjZSwg
Rm9ybWF0LCBGdW5jdGlvbjx2b2lkKHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpJT1N1cmZhY2U+
KT4mJik7CiAjZW5kaWYgLy8gSEFWRShJT1NVUkZBQ0VfQUNDRUxFUkFUT1IpCiAKLSNpZiBIQVZF
KElPU1VSRkFDRV9TRVRfT1dORVJTSElQX0lERU5USVRZKQotICAgIFdFQkNPUkVfRVhQT1JUIHZv
aWQgc2V0T3duZXJzaGlwSWRlbnRpdHkodGFza19pZF90b2tlbl90IG5ld093bmVyKTsKLSNlbmRp
ZgorICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0T3duZXJzaGlwSWRlbnRpdHkoY29uc3QgUHJv
Y2Vzc0lkZW50aXR5Jik7CiAKICAgICB2b2lkIG1pZ3JhdGVDb2xvclNwYWNlVG9Qcm9wZXJ0aWVz
KCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29h
L0lPU3VyZmFjZS5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0lP
U3VyZmFjZS5tbQppbmRleCAwMTExNjVjZTExYWJjZTY3NWM0YjQ3YmY5MTVkNGM4MWU2Y2VlOTk1
Li4wMWMzMmI4MjE1OTU0YTljMjU3MGFiMzFmZDM0OWFjMzI0MmQzNWJkIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9JT1N1cmZhY2UubW0KKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvSU9TdXJmYWNlLm1tCkBAIC0z
NCw2ICszNCw3IEBACiAjaW1wb3J0ICJJbWFnZUJ1ZmZlci5oIgogI2ltcG9ydCAiTG9nZ2luZy5o
IgogI2ltcG9ydCAiUGxhdGZvcm1TY3JlZW4uaCIKKyNpbXBvcnQgIlByb2Nlc3NJZGVudGl0eS5o
IgogI2ltcG9ydCA8cGFsL3NwaS9jZy9Db3JlR3JhcGhpY3NTUEkuaD4KICNpbXBvcnQgPHd0Zi9B
c3NlcnRpb25zLmg+CiAjaW1wb3J0IDx3dGYvTWFjaFNlbmRSaWdodC5oPgpAQCAtNDg0LDE0ICs0
ODUsMTggQEAgdm9pZCBJT1N1cmZhY2U6OmNvbnZlcnRUb0Zvcm1hdChzdGQ6OnVuaXF1ZV9wdHI8
SU9TdXJmYWNlPiYmIGluU3VyZmFjZSwgRm9ybWF0IGYKIAogI2VuZGlmIC8vIEhBVkUoSU9TVVJG
QUNFX0FDQ0VMRVJBVE9SKQogCi0jaWYgSEFWRShJT1NVUkZBQ0VfU0VUX09XTkVSU0hJUF9JREVO
VElUWSkKLXZvaWQgSU9TdXJmYWNlOjpzZXRPd25lcnNoaXBJZGVudGl0eSh0YXNrX2lkX3Rva2Vu
X3QgbmV3T3duZXIpCit2b2lkIElPU3VyZmFjZTo6c2V0T3duZXJzaGlwSWRlbnRpdHkoY29uc3Qg
UHJvY2Vzc0lkZW50aXR5JiByZXNvdXJjZU93bmVyKQogewotICAgIGF1dG8gcmVzdWx0ID0gSU9T
dXJmYWNlU2V0T3duZXJzaGlwSWRlbnRpdHkobV9zdXJmYWNlLmdldCgpLCBuZXdPd25lciwga0lP
U3VyZmFjZU1lbW9yeUxlZGdlclRhZ0dyYXBoaWNzLCAwKTsKKyNpZiBIQVZFKElPU1VSRkFDRV9T
RVRfT1dORVJTSElQX0lERU5USVRZKSAmJiBIQVZFKFRBU0tfSURFTlRJVFlfVE9LRU4pCisgICAg
QVNTRVJUKHJlc291cmNlT3duZXIpOworICAgIHRhc2tfaWRfdG9rZW5fdCBvd25lclRhc2tJZFRv
a2VuID0gcmVzb3VyY2VPd25lci50YXNrSWRUb2tlbigpOworICAgIGF1dG8gcmVzdWx0ID0gSU9T
dXJmYWNlU2V0T3duZXJzaGlwSWRlbnRpdHkobV9zdXJmYWNlLmdldCgpLCBvd25lclRhc2tJZFRv
a2VuLCBrSU9TdXJmYWNlTWVtb3J5TGVkZ2VyVGFnR3JhcGhpY3MsIDApOwogICAgIGlmIChyZXN1
bHQgIT0ga0lPUmV0dXJuU3VjY2VzcykKLSAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoSU9TdXJm
YWNlLCAiSU9TdXJmYWNlOjpzZXRPd25lcnNoaXBJZGVudGl0eTogRmFpbGVkIHRvIGNsYWltIG93
bmVyc2hpcCBvZiBJT1N1cmZhY2UgJXAsIG5ld093bmVyOiAlZCwgZXJyb3I6ICVkIiwgbV9zdXJm
YWNlLmdldCgpLCAoaW50KW5ld093bmVyLCByZXN1bHQpOwotfQorICAgICAgICBSRUxFQVNFX0xP
R19FUlJPUihJT1N1cmZhY2UsICJJT1N1cmZhY2U6OnNldE93bmVyc2hpcElkZW50aXR5OiBGYWls
ZWQgdG8gY2xhaW0gb3duZXJzaGlwIG9mIElPU3VyZmFjZSAlcCwgdGFzayBpZCB0b2tlbjogJWQs
IGVycm9yOiAlZCIsIG1fc3VyZmFjZS5nZXQoKSwgKGludClvd25lclRhc2tJZFRva2VuLCByZXN1
bHQpOworI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0ocmVzb3VyY2VPd25lcik7CiAjZW5kaWYKK30K
IAogdm9pZCBJT1N1cmZhY2U6Om1pZ3JhdGVDb2xvclNwYWNlVG9Qcm9wZXJ0aWVzKCkKIHsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1dlYlByb2Nl
c3NHcmFwaGljc0NvbnRleHRHTENvY29hLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY29jb2EvV2ViUHJvY2Vzc0dyYXBoaWNzQ29udGV4dEdMQ29jb2EubW0KaW5kZXggMjU0
MjYyMzBkZmVkYWQyYzVlYjkxMDQyNGEwOGE3MmUzNzE3YjJkNy4uOGQ1ZDI1YWIxMGI0NWUzZjlh
NmU4MzhhZTEwOTQxZTZmYzBlNWUzOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY29jb2EvV2ViUHJvY2Vzc0dyYXBoaWNzQ29udGV4dEdMQ29jb2EubW0KKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvV2ViUHJvY2Vzc0dyYXBo
aWNzQ29udGV4dEdMQ29jb2EubW0KQEAgLTI5LDYgKzI5LDcgQEAKICNpZiBFTkFCTEUoV0VCR0wp
CiAjaW1wb3J0ICJHcmFwaGljc0NvbnRleHRHTENvY29hLmgiIC8vIE5PTElOVAogI2ltcG9ydCAi
R3JhcGhpY3NDb250ZXh0R0xPcGVuR0xNYW5hZ2VyLmgiCisjaW1wb3J0ICJQcm9jZXNzSWRlbnRp
dHkuaCIKICNpbXBvcnQgIldlYkdMTGF5ZXIuaCIKICNpbXBvcnQgPHd0Zi9CbG9ja09iakNFeGNl
cHRpb25zLmg+CiAKQEAgLTc3LDcgKzc4LDcgQEAgcHJpdmF0ZToKIH07CiAKIFdlYlByb2Nlc3NH
cmFwaGljc0NvbnRleHRHTENvY29hOjpXZWJQcm9jZXNzR3JhcGhpY3NDb250ZXh0R0xDb2NvYShH
cmFwaGljc0NvbnRleHRHTEF0dHJpYnV0ZXMmJiBhdHRyaWJ1dGVzKQotICAgIDogR3JhcGhpY3ND
b250ZXh0R0xDb2NvYShXVEZNb3ZlKGF0dHJpYnV0ZXMpKQorICAgIDogR3JhcGhpY3NDb250ZXh0
R0xDb2NvYShXVEZNb3ZlKGF0dHJpYnV0ZXMpLCB7IH0pCiAgICAgLCBtX3dlYkdMTGF5ZXIoY3Jl
YXRlV2ViR0xMYXllcihjb250ZXh0QXR0cmlidXRlcygpKSkKIHsKICNpZiBQTEFURk9STShNQUMp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvR1BVQ29ubmVjdGlvblRvV2Vi
UHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvR1BVQ29ubmVjdGlvblRvV2Vi
UHJvY2Vzcy5jcHAKaW5kZXggOTJjM2NjOTdiNzY2NjQ2ZTA2ODQwMjgyYjEwZThkZjA1MjZiNjBj
ZS4uMmNhOTBmNTBjM2IxZTlhNjFhZjcxZTc1NGM1ODBlM2M3Y2M1NjRjZSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNw
cApAQCAtMjA3LDEyICsyMDcsMTEgQEAgcHJpdmF0ZToKICAgICAgICAgbV9wcm9jZXNzLnN0YXJ0
Q2FwdHVyaW5nQXVkaW8oKTsKICAgICB9CiAjZW5kaWYKLSNpZiBIQVZFKElPU1VSRkFDRV9TRVRf
T1dORVJTSElQX0lERU5USVRZKQotICAgIHN0ZDo6b3B0aW9uYWw8dGFza19pZF90b2tlbl90PiB3
ZWJQcm9jZXNzSWRlbnRpdHlUb2tlbigpIGNvbnN0IGZpbmFsCisKKyAgICBjb25zdCBQcm9jZXNz
SWRlbnRpdHkmIHJlc291cmNlT3duZXIoKSBjb25zdCBmaW5hbAogICAgIHsKLSAgICAgICAgcmV0
dXJuIG1fcHJvY2Vzcy53ZWJQcm9jZXNzSWRlbnRpdHlUb2tlbigpOworICAgICAgICByZXR1cm4g
bV9wcm9jZXNzLndlYlByb2Nlc3NJZGVudGl0eSgpOwogICAgIH0KLSNlbmRpZgogCiAgICAgR1BV
Q29ubmVjdGlvblRvV2ViUHJvY2VzcyYgbV9wcm9jZXNzOwogfTsKQEAgLTIyOCw5ICsyMjcsNyBA
QCBHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzKEdQ
VVByb2Nlc3MmIGdwdVByb2Nlc3MsIFdlYgogICAgIDogbV9jb25uZWN0aW9uKElQQzo6Q29ubmVj
dGlvbjo6Y3JlYXRlU2VydmVyQ29ubmVjdGlvbihjb25uZWN0aW9uSWRlbnRpZmllciwgKnRoaXMp
KQogICAgICwgbV9ncHVQcm9jZXNzKGdwdVByb2Nlc3MpCiAgICAgLCBtX3dlYlByb2Nlc3NJZGVu
dGlmaWVyKHdlYlByb2Nlc3NJZGVudGlmaWVyKQotI2lmIEhBVkUoVEFTS19JREVOVElUWV9UT0tF
TikKLSAgICAsIG1fd2ViUHJvY2Vzc0lkZW50aXR5VG9rZW4oV1RGTW92ZShwYXJhbWV0ZXJzLndl
YlByb2Nlc3NJZGVudGl0eVRva2VuKSkKLSNlbmRpZgorICAgICwgbV93ZWJQcm9jZXNzSWRlbnRp
dHkoV1RGTW92ZShwYXJhbWV0ZXJzLndlYlByb2Nlc3NJZGVudGl0eSkpCiAgICAgLCBtX3JlbW90
ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5KG1ha2VVbmlxdWVSZWY8UmVtb3RlTWVkaWFQbGF5ZXJN
YW5hZ2VyUHJveHk+KCp0aGlzKSkKICAgICAsIG1fc2Vzc2lvbklEKHNlc3Npb25JRCkKICNpZiBQ
TEFURk9STShDT0NPQSkgJiYgVVNFKExJQldFQlJUQykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvR1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmggYi9Tb3VyY2UvV2ViS2l0
L0dQVVByb2Nlc3MvR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oCmluZGV4IGUzOTIzZGI1NzM0
ODFjOGU2OWE5YTc2MTI2MzI3Mzc3MDlkZDk3ZmEuLmI0NTkwN2YyNTQzOGUzZDdiODhmNDc0NmNj
NDgwOGVmNGY0MjdjZmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9HUFVD
b25uZWN0aW9uVG9XZWJQcm9jZXNzLmgKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQ
VUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaApAQCAtNDEsNiArNDEsNyBAQAogI2luY2x1ZGUgPFdl
YkNvcmUvTm93UGxheWluZ01hbmFnZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1BhZ2VJZGVudGlm
aWVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Qcm9jZXNzSWRlbnRpZmllci5oPgorI2luY2x1ZGUg
PFdlYkNvcmUvUHJvY2Vzc0lkZW50aXR5Lmg+CiAjaW5jbHVkZSA8cGFsL1Nlc3Npb25JRC5oPgog
I2luY2x1ZGUgPHd0Zi9Mb2dnZXIuaD4KICNpbmNsdWRlIDx3dGYvTWFjaFNlbmRSaWdodC5oPgpA
QCAtMTU1LDEwICsxNTYsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBkaXNwYXRjaERpc3BsYXlXYXNS
ZWNvbmZpZ3VyZWRGb3JUZXN0aW5nKCkgeyBkaXNwYXRjaERpc3BsYXlXYXNSZWNvbmZpZ3VyZWQo
KTsgfTsKICNlbmRpZgogCi0jaWYgSEFWRShUQVNLX0lERU5USVRZX1RPS0VOKQotICAgIHRhc2tf
aWRfdG9rZW5fdCB3ZWJQcm9jZXNzSWRlbnRpdHlUb2tlbigpIGNvbnN0IHsgcmV0dXJuIHN0YXRp
Y19jYXN0PHRhc2tfaWRfdG9rZW5fdD4obV93ZWJQcm9jZXNzSWRlbnRpdHlUb2tlbi5zZW5kUmln
aHQoKSk7IH0KLSNlbmRpZgotCisgICAgY29uc3QgV2ViQ29yZTo6UHJvY2Vzc0lkZW50aXR5JiB3
ZWJQcm9jZXNzSWRlbnRpdHkoKSBjb25zdCB7IHJldHVybiBtX3dlYlByb2Nlc3NJZGVudGl0eTsg
fQogI2lmIEVOQUJMRShFTkNSWVBURURfTUVESUEpCiAgICAgUmVtb3RlQ0RNRmFjdG9yeVByb3h5
JiBjZG1GYWN0b3J5UHJveHkoKTsKICNlbmRpZgpAQCAtMjgzLDkgKzI4MSw3IEBAIHByaXZhdGU6
CiAgICAgSVBDOjpNZXNzYWdlUmVjZWl2ZXJNYXAgbV9tZXNzYWdlUmVjZWl2ZXJNYXA7CiAgICAg
UmVmPEdQVVByb2Nlc3M+IG1fZ3B1UHJvY2VzczsKICAgICBjb25zdCBXZWJDb3JlOjpQcm9jZXNz
SWRlbnRpZmllciBtX3dlYlByb2Nlc3NJZGVudGlmaWVyOwotI2lmIEhBVkUoVEFTS19JREVOVElU
WV9UT0tFTikKLSAgICBNYWNoU2VuZFJpZ2h0IG1fd2ViUHJvY2Vzc0lkZW50aXR5VG9rZW47Ci0j
ZW5kaWYKKyAgICBjb25zdCBXZWJDb3JlOjpQcm9jZXNzSWRlbnRpdHkgbV93ZWJQcm9jZXNzSWRl
bnRpdHk7CiAjaWYgRU5BQkxFKFdFQl9BVURJTykKICAgICBzdGQ6OnVuaXF1ZV9wdHI8UmVtb3Rl
QXVkaW9EZXN0aW5hdGlvbk1hbmFnZXI+IG1fcmVtb3RlQXVkaW9EZXN0aW5hdGlvbk1hbmFnZXI7
CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9S
ZW1vdGVHcmFwaGljc0NvbnRleHRHTENvY29hLmNwcCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vz
cy9ncmFwaGljcy9SZW1vdGVHcmFwaGljc0NvbnRleHRHTENvY29hLmNwcAppbmRleCAxMGE1MzYy
OTljZjIzZWI5Zjg2ZjU3MjdlODUyMzgzY2U4YTA0MDA4Li45ZDc2N2VjMjE2NTNlNzBlZTQ5OGI0
ZTg5M2VmM2Q3NzhhMzAwNGRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mv
Z3JhcGhpY3MvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xDb2NvYS5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZUdyYXBoaWNzQ29udGV4dEdMQ29jb2EuY3Bw
CkBAIC0yOSw2ICsyOSw3IEBACiAjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKSAmJiBFTkFCTEUoV0VC
R0wpICYmIFBMQVRGT1JNKENPQ09BKQogCiAjaW5jbHVkZSAiR1BVQ29ubmVjdGlvblRvV2ViUHJv
Y2Vzcy5oIgorI2luY2x1ZGUgPFdlYkNvcmUvUHJvY2Vzc0lkZW50aXR5Lmg+CiAjaW5jbHVkZSA8
d3RmL01hY2hTZW5kUmlnaHQuaD4KIAogbmFtZXNwYWNlIFdlYktpdCB7CkBAIC00NSw5ICs0Niw3
IEBAIHB1YmxpYzoKICAgICB2b2lkIHBsYXRmb3JtV29ya1F1ZXVlSW5pdGlhbGl6ZShXZWJDb3Jl
OjpHcmFwaGljc0NvbnRleHRHTEF0dHJpYnV0ZXMmJikgZmluYWw7CiAgICAgdm9pZCBwcmVwYXJl
Rm9yRGlzcGxheShDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdURjo6TWFjaFNlbmRSaWdodCYmKT4m
JikgZmluYWw7CiBwcml2YXRlOgotI2lmIEhBVkUoSU9TVVJGQUNFX1NFVF9PV05FUlNISVBfSURF
TlRJVFkpCi0gICAgdGFza19pZF90b2tlbl90IG1fd2ViUHJvY2Vzc0lkZW50aXR5VG9rZW47Ci0j
ZW5kaWYKKyAgICBjb25zdCBQcm9jZXNzSWRlbnRpdHkgbV9yZXNvdXJjZU93bmVyOwogfTsKIAog
fQpAQCAtNjEsOSArNjAsNyBAQCBSZWY8UmVtb3RlR3JhcGhpY3NDb250ZXh0R0w+IFJlbW90ZUdy
YXBoaWNzQ29udGV4dEdMOjpjcmVhdGUoR1BVQ29ubmVjdGlvblRvV2ViUAogCiBSZW1vdGVHcmFw
aGljc0NvbnRleHRHTENvY29hOjpSZW1vdGVHcmFwaGljc0NvbnRleHRHTENvY29hKEdQVUNvbm5l
Y3Rpb25Ub1dlYlByb2Nlc3MmIGdwdUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MsIEdyYXBoaWNzQ29u
dGV4dEdMSWRlbnRpZmllciBncmFwaGljc0NvbnRleHRHTElkZW50aWZpZXIsIFJlbW90ZVJlbmRl
cmluZ0JhY2tlbmQmIHJlbmRlcmluZ0JhY2tlbmQsIElQQzo6U3RyZWFtQ29ubmVjdGlvbkJ1ZmZl
ciYmIHN0cmVhbSkKICAgICA6IFJlbW90ZUdyYXBoaWNzQ29udGV4dEdMKGdwdUNvbm5lY3Rpb25U
b1dlYlByb2Nlc3MsIGdyYXBoaWNzQ29udGV4dEdMSWRlbnRpZmllciwgcmVuZGVyaW5nQmFja2Vu
ZCwgV1RGTW92ZShzdHJlYW0pKQotI2lmIEhBVkUoSU9TVVJGQUNFX1NFVF9PV05FUlNISVBfSURF
TlRJVFkpCi0gICAgLCBtX3dlYlByb2Nlc3NJZGVudGl0eVRva2VuKGdwdUNvbm5lY3Rpb25Ub1dl
YlByb2Nlc3Mud2ViUHJvY2Vzc0lkZW50aXR5VG9rZW4oKSkKLSNlbmRpZgorICAgICwgbV9yZXNv
dXJjZU93bmVyKGdwdUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3Mud2ViUHJvY2Vzc0lkZW50aXR5KCkp
CiB7CiAKIH0KQEAgLTcxLDcgKzY4LDcgQEAgUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xDb2NvYTo6
UmVtb3RlR3JhcGhpY3NDb250ZXh0R0xDb2NvYShHUFVDb25uZWN0aW9uVG9XZWJQcm8KIHZvaWQg
UmVtb3RlR3JhcGhpY3NDb250ZXh0R0xDb2NvYTo6cGxhdGZvcm1Xb3JrUXVldWVJbml0aWFsaXpl
KFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dEdMQXR0cmlidXRlcyYmIGF0dHJpYnV0ZXMpCiB7CiAg
ICAgYXNzZXJ0SXNDdXJyZW50KG1fc3RyZWFtVGhyZWFkKTsKLSAgICBtX2NvbnRleHQgPSBHcmFw
aGljc0NvbnRleHRHTENvY29hOjpjcmVhdGUoV1RGTW92ZShhdHRyaWJ1dGVzKSk7CisgICAgbV9j
b250ZXh0ID0gR3JhcGhpY3NDb250ZXh0R0xDb2NvYTo6Y3JlYXRlKFdURk1vdmUoYXR0cmlidXRl
cyksIFByb2Nlc3NJZGVudGl0eSB7IG1fcmVzb3VyY2VPd25lciB9KTsKIH0KIAogdm9pZCBSZW1v
dGVHcmFwaGljc0NvbnRleHRHTENvY29hOjpwcmVwYXJlRm9yRGlzcGxheShDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKFdURjo6TWFjaFNlbmRSaWdodCYmKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKQEAg
LTgyLDEwICs3OSw2IEBAIHZvaWQgUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xDb2NvYTo6cHJlcGFy
ZUZvckRpc3BsYXkoQ29tcGxldGlvbkhhbmRsZXI8dm9pZChXVEY6CiAgICAgTWFjaFNlbmRSaWdo
dCBzZW5kUmlnaHQ7CiAgICAgaWYgKGRpc3BsYXlCdWZmZXIpIHsKICAgICAgICAgbV9jb250ZXh0
LT5tYXJrRGlzcGxheUJ1ZmZlckluVXNlKCk7Ci0jaWYgSEFWRShJT1NVUkZBQ0VfU0VUX09XTkVS
U0hJUF9JREVOVElUWSkKLSAgICAgICAgLy8gTWFyayB0aGUgSU9TdXJmYWNlIGFzIGJlaW5nIG93
bmVkIGJ5IHRoZSBXZWJQcm9jZXNzIGV2ZW4gdGhvdWdoIGl0IHdhcyBjb25zdHJ1Y3RlZCBieSB0
aGUgR1BVUHJvY2VzcyBzbyB0aGF0IEpldHNhbSBrbm93cyB3aGljaCBwcm9jZXNzIHRvIGtpbGwu
Ci0gICAgICAgIGRpc3BsYXlCdWZmZXItPnNldE93bmVyc2hpcElkZW50aXR5KG1fd2ViUHJvY2Vz
c0lkZW50aXR5VG9rZW4pOwotI2VuZGlmCiAgICAgICAgIHNlbmRSaWdodCA9IGRpc3BsYXlCdWZm
ZXItPmNyZWF0ZVNlbmRSaWdodCgpOwogICAgIH0KICAgICBjb21wbGV0aW9uSGFuZGxlcihXVEZN
b3ZlKHNlbmRSaWdodCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dy
YXBoaWNzL1JlbW90ZUltYWdlQnVmZmVyLmggYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3Jh
cGhpY3MvUmVtb3RlSW1hZ2VCdWZmZXIuaAppbmRleCBhM2Q0OTRmZThiZjZhMTk2NDdlZjE5MGM5
ZGI0MDQyYWVjZTY3MjIwLi4zNWI0NTI3MGI0NTg0MjQ4MDk4MTA0MmRjNzU1MzRmYmFiYWViZjJk
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlSW1h
Z2VCdWZmZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3Rl
SW1hZ2VCdWZmZXIuaApAQCAtNjksMTMgKzY5LDExIEBAIHB1YmxpYzoKICAgICAgICAgICAgIGNv
bnRleHQoKS5yZXN0b3JlKCk7CiAgICAgfQogCi0jaWYgSEFWRShJT1NVUkZBQ0VfU0VUX09XTkVS
U0hJUF9JREVOVElUWSkKLSAgICB2b2lkIHNldFByb2Nlc3NPd25lcnNoaXAodGFza19pZF90b2tl
bl90IG5ld093bmVyKQorICAgIHZvaWQgc2V0T3duZXJzaGlwSWRlbnRpdHkoY29uc3QgV2ViQ29y
ZTo6UHJvY2Vzc0lkZW50aXR5JiByZXNvdXJjZU93bmVyKQogICAgIHsKICAgICAgICAgaWYgKG1f
YmFja2VuZCkKLSAgICAgICAgICAgIG1fYmFja2VuZC0+c2V0UHJvY2Vzc093bmVyc2hpcChuZXdP
d25lcik7CisgICAgICAgICAgICBtX2JhY2tlbmQtPnNldE93bmVyc2hpcElkZW50aXR5KHJlc291
cmNlT3duZXIpOwogICAgIH0KLSNlbmRpZgogCiBwcml2YXRlOgogICAgIGZyaWVuZCBjbGFzcyBS
ZW1vdGVSZW5kZXJpbmdCYWNrZW5kOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9j
ZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQuY3BwIGIvU291cmNlL1dlYktpdC9H
UFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQuY3BwCmluZGV4IGIwZGY1
MzQzNDQ5NzgyZmE0Y2UzMWJjZjMzMmQ4ZmM1YmNjOGIxMDIuLjhkZmIyNWQ4MjkyNjk0YTJkODEy
ZGFjYWI5ODdhMGM5ZWJlMzhlYmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vz
cy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5jcHAKQEAgLTg1LDYg
Kzg1LDcgQEAgUmVtb3RlUmVuZGVyaW5nQmFja2VuZDo6UmVtb3RlUmVuZGVyaW5nQmFja2VuZChH
UFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzJiBncHVDb24KICAgICAsIG1fc3RyZWFtQ29ubmVjdGlv
bihJUEM6OlN0cmVhbVNlcnZlckNvbm5lY3Rpb246OmNyZWF0ZShncHVDb25uZWN0aW9uVG9XZWJQ
cm9jZXNzLmNvbm5lY3Rpb24oKSwgV1RGTW92ZShzdHJlYW1CdWZmZXIpLCBtX3dvcmtRdWV1ZS5n
ZXQoKSkpCiAgICAgLCBtX3JlbW90ZVJlc291cmNlQ2FjaGUoZ3B1Q29ubmVjdGlvblRvV2ViUHJv
Y2Vzcy53ZWJQcm9jZXNzSWRlbnRpZmllcigpKQogICAgICwgbV9ncHVDb25uZWN0aW9uVG9XZWJQ
cm9jZXNzKGdwdUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MpCisgICAgLCBtX3Jlc291cmNlT3duZXIo
Z3B1Q29ubmVjdGlvblRvV2ViUHJvY2Vzcy53ZWJQcm9jZXNzSWRlbnRpdHkoKSkKICAgICAsIG1f
cmVuZGVyaW5nQmFja2VuZElkZW50aWZpZXIoY3JlYXRpb25QYXJhbWV0ZXJzLmlkZW50aWZpZXIp
CiB7CiAgICAgQVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsKQEAgLTE3NCwxMCArMTc1LDkgQEAg
dm9pZCBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kOjpjcmVhdGVJbWFnZUJ1ZmZlcldpdGhRdWFsaWZp
ZWRJZGVudGlmaWVyKGNvbnN0IEZsb2EKIAogICAgIGlmIChyZW5kZXJpbmdNb2RlID09IFJlbmRl
cmluZ01vZGU6OkFjY2VsZXJhdGVkKSB7CiAgICAgICAgIGlmIChhdXRvIGFjY2VsZXJhdGVkSW1h
Z2VCdWZmZXIgPSBBY2NlbGVyYXRlZFJlbW90ZUltYWdlQnVmZmVyOjpjcmVhdGUobG9naWNhbFNp
emUsIHJlc29sdXRpb25TY2FsZSwgY29sb3JTcGFjZSwgcGl4ZWxGb3JtYXQsICp0aGlzLCBpbWFn
ZUJ1ZmZlclJlc291cmNlSWRlbnRpZmllcikpIHsKLSNpZiBIQVZFKElPU1VSRkFDRV9TRVRfT1dO
RVJTSElQX0lERU5USVRZKQogICAgICAgICAgICAgLy8gTWFyayB0aGUgSU9TdXJmYWNlIGFzIGJl
aW5nIG93bmVkIGJ5IHRoZSBXZWJQcm9jZXNzIGV2ZW4gdGhvdWdoIGl0IHdhcyBjb25zdHJ1Y3Rl
ZCBieSB0aGUgR1BVUHJvY2VzcyBzbyB0aGF0IEpldHNhbSBrbm93cyB3aGljaCBwcm9jZXNzIHRv
IGtpbGwuCi0gICAgICAgICAgICBhY2NlbGVyYXRlZEltYWdlQnVmZmVyLT5zZXRQcm9jZXNzT3du
ZXJzaGlwKG1fZ3B1Q29ubmVjdGlvblRvV2ViUHJvY2Vzcy0+d2ViUHJvY2Vzc0lkZW50aXR5VG9r
ZW4oKSk7Ci0jZW5kaWYKKyAgICAgICAgICAgIGlmIChtX3Jlc291cmNlT3duZXIpCisgICAgICAg
ICAgICAgICAgYWNjZWxlcmF0ZWRJbWFnZUJ1ZmZlci0+c2V0T3duZXJzaGlwSWRlbnRpdHkobV9y
ZXNvdXJjZU93bmVyKTsKICAgICAgICAgICAgIGltYWdlQnVmZmVyID0gV1RGTW92ZShhY2NlbGVy
YXRlZEltYWdlQnVmZmVyKTsKICAgICAgICAgfQogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmggYi9Tb3Vy
Y2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5oCmlu
ZGV4IGUzNTcxNWRkMTdmZWU2NDM0NWIyMjYyZDY4Y2ViZWE0ZDc0YWI5OTYuLjlhMjZjNDI0Yjkx
MjExMDExOGI0MzYxODRkZTMwYjhkMjhkZDE1MjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
R1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmgKKysrIGIvU291cmNl
L1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQuaApAQCAt
NDYsNiArNDYsNyBAQAogI2luY2x1ZGUgPFdlYkNvcmUvRGlzcGxheUxpc3RJdGVtcy5oPgogI2lu
Y2x1ZGUgPFdlYkNvcmUvRGlzcGxheUxpc3RSZXBsYXllci5oPgogI2luY2x1ZGUgPFdlYkNvcmUv
UHJvY2Vzc0lkZW50aWZpZXIuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1Byb2Nlc3NJZGVudGl0eS5o
PgogI2luY2x1ZGUgPHd0Zi9XZWFrUHRyLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTEz
Myw2ICsxMzQsNyBAQCBwcml2YXRlOgogICAgIFJlZjxJUEM6OlN0cmVhbVNlcnZlckNvbm5lY3Rp
b24+IG1fc3RyZWFtQ29ubmVjdGlvbjsKICAgICBSZW1vdGVSZXNvdXJjZUNhY2hlIG1fcmVtb3Rl
UmVzb3VyY2VDYWNoZTsKICAgICBSZWY8R1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcz4gbV9ncHVD
b25uZWN0aW9uVG9XZWJQcm9jZXNzOworICAgIFdlYkNvcmU6OlByb2Nlc3NJZGVudGl0eSBtX3Jl
c291cmNlT3duZXI7CiAgICAgUmVuZGVyaW5nQmFja2VuZElkZW50aWZpZXIgbV9yZW5kZXJpbmdC
YWNrZW5kSWRlbnRpZmllcjsKICAgICBJUEM6OlNlbWFwaG9yZSBtX2dldFBpeGVsQnVmZmVyU2Vt
YXBob3JlOwogICAgIFJlZlB0cjxTaGFyZWRNZW1vcnk+IG1fZ2V0UGl4ZWxCdWZmZXJTaGFyZWRN
ZW1vcnk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mvd2VicnRjL0xpYldl
YlJUQ0NvZGVjc1Byb3h5Lm1tIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL3dlYnJ0Yy9MaWJX
ZWJSVENDb2RlY3NQcm94eS5tbQppbmRleCAxMzNlMjZlNDc0ZTFkMzE5MTYzZTU1NzE5OTJkMGMw
YzcxOWRkZTE0Li4zMGZhMzBjYjNkYzljOWI0MDFmMGM0ZWNmY2UyMTA4MWVjNDZlNWMxIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mvd2VicnRjL0xpYldlYlJUQ0NvZGVjc1By
b3h5Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy93ZWJydGMvTGliV2ViUlRDQ29k
ZWNzUHJveHkubW0KQEAgLTc2LDE1ICs3NiwxMCBAQCB2b2lkIExpYldlYlJUQ0NvZGVjc1Byb3h5
OjpjbG9zZSgpCiAKIHN0YXRpYyBGdW5jdGlvbjx2b2lkKENWUGl4ZWxCdWZmZXJSZWYgcGl4ZWxC
dWZmZXIsIHVpbnQzMl90IHRpbWVTdGFtcE5zLCB1aW50MzJfdCB0aW1lU3RhbXApPiBjcmVhdGVE
ZWNvZGVyQ2FsbGJhY2soUlRDRGVjb2RlcklkZW50aWZpZXIgaWRlbnRpZmllciwgR1BVQ29ubmVj
dGlvblRvV2ViUHJvY2VzcyYgZ3B1Q29ubmVjdGlvblRvV2ViUHJvY2VzcykKIHsKLSAgICByZXR1
cm4gW2Nvbm5lY3Rpb24gPSBSZWYgeyBncHVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNvbm5lY3Rp
b24oKSB9LAotI2lmIEhBVkUoSU9TVVJGQUNFX1NFVF9PV05FUlNISVBfSURFTlRJVFkpCi0gICAg
ICAgIHRva2VuID0gZ3B1Q29ubmVjdGlvblRvV2ViUHJvY2Vzcy53ZWJQcm9jZXNzSWRlbnRpdHlU
b2tlbigpLAotI2VuZGlmCi0gICAgICAgIGlkZW50aWZpZXJdKENWUGl4ZWxCdWZmZXJSZWYgcGl4
ZWxCdWZmZXIsIHVpbnQzMl90IHRpbWVTdGFtcE5zLCB1aW50MzJfdCB0aW1lU3RhbXApIHsKKyAg
ICByZXR1cm4gW2Nvbm5lY3Rpb24gPSBSZWYgeyBncHVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNv
bm5lY3Rpb24oKSB9LCByZXNvdXJjZU93bmVyID0gZ3B1Q29ubmVjdGlvblRvV2ViUHJvY2Vzcy53
ZWJQcm9jZXNzSWRlbnRpdHkoKSwgaWRlbnRpZmllcl0gKENWUGl4ZWxCdWZmZXJSZWYgcGl4ZWxC
dWZmZXIsIHVpbnQzMl90IHRpbWVTdGFtcE5zLCB1aW50MzJfdCB0aW1lU3RhbXApIHsKICAgICAg
ICAgaWYgKGF1dG8gc2FtcGxlID0gV2ViQ29yZTo6UmVtb3RlVmlkZW9TYW1wbGU6OmNyZWF0ZShw
aXhlbEJ1ZmZlciwgTWVkaWFUaW1lKHRpbWVTdGFtcE5zLCAxKSkpIHsKLSNpZiBIQVZFKElPU1VS
RkFDRV9TRVRfT1dORVJTSElQX0lERU5USVRZKQotICAgICAgICAgICAgc2FtcGxlLT5zZXRPd25l
cnNoaXBJZGVudGl0eSh0b2tlbik7Ci0jZW5kaWYKKyAgICAgICAgICAgIGlmIChyZXNvdXJjZU93
bmVyKQorICAgICAgICAgICAgICAgIHNhbXBsZS0+c2V0T3duZXJzaGlwSWRlbnRpdHkocmVzb3Vy
Y2VPd25lcik7CiAgICAgICAgICAgICBjb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpMaWJXZWJS
VENDb2RlY3M6OkNvbXBsZXRlZERlY29kaW5nIHsgaWRlbnRpZmllciwgdGltZVN0YW1wLCAqc2Ft
cGxlIH0sIDApOwogICAgICAgICB9CiAgICAgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
U2hhcmVkL0dQVVByb2Nlc3NDb25uZWN0aW9uUGFyYW1ldGVycy5oIGIvU291cmNlL1dlYktpdC9T
aGFyZWQvR1BVUHJvY2Vzc0Nvbm5lY3Rpb25QYXJhbWV0ZXJzLmgKaW5kZXggMDk2ZmQwZTNiYTZj
N2VjMTE3NzhmOTk0ZmZkNWU4Njc3ZTIwZmM1Ni4uZWQzMDQ5NWIyNTIyODYxZjc0NjQ1MmZlOTA5
MWI5NjU2MTEwNjc3MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvR1BVUHJvY2Vz
c0Nvbm5lY3Rpb25QYXJhbWV0ZXJzLmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvR1BVUHJv
Y2Vzc0Nvbm5lY3Rpb25QYXJhbWV0ZXJzLmgKQEAgLTI4LDE0ICsyOCwxMyBAQAogI2lmIEVOQUJM
RShHUFVfUFJPQ0VTUykKIAogI2luY2x1ZGUgIldlYkNvcmVBcmd1bWVudENvZGVycy5oIgorI2lu
Y2x1ZGUgPFdlYkNvcmUvUHJvY2Vzc0lkZW50aXR5Lmg+CiAjaW5jbHVkZSA8d3RmL01hY2hTZW5k
UmlnaHQuaD4KIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKIHN0cnVjdCBHUFVQcm9jZXNzQ29ubmVj
dGlvblBhcmFtZXRlcnMgewotI2lmIEhBVkUoVEFTS19JREVOVElUWV9UT0tFTikKLSAgICBNYWNo
U2VuZFJpZ2h0IHdlYlByb2Nlc3NJZGVudGl0eVRva2VuOwotI2VuZGlmCisgICAgV2ViQ29yZTo6
UHJvY2Vzc0lkZW50aXR5IHdlYlByb2Nlc3NJZGVudGl0eTsKICAgICBWZWN0b3I8U3RyaW5nPiBv
dmVycmlkZUxhbmd1YWdlczsKICNpZiBFTkFCTEUoSVBDX1RFU1RJTkdfQVBJKQogICAgIGJvb2wg
aWdub3JlSW52YWxpZE1lc3NhZ2VGb3JUZXN0aW5nIHsgZmFsc2UgfTsKQEAgLTQ2LDkgKzQ1LDcg
QEAgc3RydWN0IEdQVVByb2Nlc3NDb25uZWN0aW9uUGFyYW1ldGVycyB7CiAKICAgICB2b2lkIGVu
Y29kZShJUEM6OkVuY29kZXImIGVuY29kZXIpIGNvbnN0CiAgICAgewotI2lmIEhBVkUoVEFTS19J
REVOVElUWV9UT0tFTikKLSAgICAgICAgZW5jb2RlciA8PCB3ZWJQcm9jZXNzSWRlbnRpdHlUb2tl
bjsKLSNlbmRpZgorICAgICAgICBlbmNvZGVyIDw8IHdlYlByb2Nlc3NJZGVudGl0eTsKICAgICAg
ICAgZW5jb2RlciA8PCBvdmVycmlkZUxhbmd1YWdlczsKICNpZiBFTkFCTEUoSVBDX1RFU1RJTkdf
QVBJKQogICAgICAgICBlbmNvZGVyIDw8IGlnbm9yZUludmFsaWRNZXNzYWdlRm9yVGVzdGluZzsK
QEAgLTYwLDEyICs1NywxMCBAQCBzdHJ1Y3QgR1BVUHJvY2Vzc0Nvbm5lY3Rpb25QYXJhbWV0ZXJz
IHsKIAogICAgIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPEdQVVByb2Nlc3NDb25uZWN0aW9uUGFyYW1l
dGVycz4gZGVjb2RlKElQQzo6RGVjb2RlciYgZGVjb2RlcikKICAgICB7Ci0jaWYgSEFWRShUQVNL
X0lERU5USVRZX1RPS0VOKQotICAgICAgICBzdGQ6Om9wdGlvbmFsPE1hY2hTZW5kUmlnaHQ+IHdl
YlByb2Nlc3NJZGVudGl0eVRva2VuOwotICAgICAgICBkZWNvZGVyID4+IHdlYlByb2Nlc3NJZGVu
dGl0eVRva2VuOwotICAgICAgICBpZiAoIXdlYlByb2Nlc3NJZGVudGl0eVRva2VuKQorICAgICAg
ICBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OlByb2Nlc3NJZGVudGl0eT4gd2ViUHJvY2Vzc0lkZW50
aXR5OworICAgICAgICBkZWNvZGVyID4+IHdlYlByb2Nlc3NJZGVudGl0eTsKKyAgICAgICAgaWYg
KCF3ZWJQcm9jZXNzSWRlbnRpdHkpCiAgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0Owot
I2VuZGlmCiAKICAgICAgICAgc3RkOjpvcHRpb25hbDxWZWN0b3I8U3RyaW5nPj4gb3ZlcnJpZGVM
YW5ndWFnZXM7CiAgICAgICAgIGRlY29kZXIgPj4gb3ZlcnJpZGVMYW5ndWFnZXM7CkBAIC04Niw5
ICs4MSw3IEBAIHN0cnVjdCBHUFVQcm9jZXNzQ29ubmVjdGlvblBhcmFtZXRlcnMgewogI2VuZGlm
CiAKICAgICAgICAgcmV0dXJuIEdQVVByb2Nlc3NDb25uZWN0aW9uUGFyYW1ldGVycyB7Ci0jaWYg
SEFWRShUQVNLX0lERU5USVRZX1RPS0VOKQotICAgICAgICAgICAgV1RGTW92ZSgqd2ViUHJvY2Vz
c0lkZW50aXR5VG9rZW4pLAotI2VuZGlmCisgICAgICAgICAgICBXVEZNb3ZlKCp3ZWJQcm9jZXNz
SWRlbnRpdHkpLAogICAgICAgICAgICAgV1RGTW92ZSgqb3ZlcnJpZGVMYW5ndWFnZXMpLAogI2lm
IEVOQUJMRShJUENfVEVTVElOR19BUEkpCiAgICAgICAgICAgICAqaWdub3JlSW52YWxpZE1lc3Nh
Z2VGb3JUZXN0aW5nLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2Ev
VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5LmNwcAppbmRleCAyYmIzYmNkYjU4
MmRjODUzZjIwODNlY2U0NDcxOTNjNDQxOTNlYzkyLi5iZGFmOThkMTBkZDM1OGJkZDdiZjc5MzNh
YmQxNDg2NTA3Y2NlZDg2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2Nv
YS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5LmNwcApAQCAtNTcsOSAr
NTcsMTAgQEAgY2xhc3MgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6U291cmNlUHJveHkK
ICAgICAsIHByaXZhdGUgUmVhbHRpbWVNZWRpYVNvdXJjZTo6VmlkZW9TYW1wbGVPYnNlcnZlciB7
CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6Ci0gICAgU291cmNlUHJveHko
UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgaWQsIFJlZjxJUEM6OkNvbm5lY3Rpb24+JiYg
Y29ubmVjdGlvbiwgUmVmPFJlYWx0aW1lTWVkaWFTb3VyY2U+JiYgc291cmNlKQorICAgIFNvdXJj
ZVByb3h5KFJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIGlkLCBSZWY8SVBDOjpDb25uZWN0
aW9uPiYmIGNvbm5lY3Rpb24sIFByb2Nlc3NJZGVudGl0eSYmIHJlc291cmNlT3duZXIsIFJlZjxS
ZWFsdGltZU1lZGlhU291cmNlPiYmIHNvdXJjZSkKICAgICAgICAgOiBtX2lkKGlkKQogICAgICAg
ICAsIG1fY29ubmVjdGlvbihXVEZNb3ZlKGNvbm5lY3Rpb24pKQorICAgICAgICAsIG1fcmVzb3Vy
Y2VPd25lcihXVEZNb3ZlKHJlc291cmNlT3duZXIpKQogICAgICAgICAsIG1fc291cmNlKFdURk1v
dmUoc291cmNlKSkKICAgICB7CiAgICAgICAgIG1fc291cmNlLT5hZGRPYnNlcnZlcigqdGhpcyk7
CkBAIC0xMjUsOSArMTI2LDYgQEAgcHVibGljOgogICAgIH0KIAogICAgIHZvaWQgc2V0U2hvdWxk
QXBwbHlSb3RhdGlvbihib29sIHNob3VsZEFwcGx5Um90YXRpb24pIHsgbV9zaG91bGRBcHBseVJv
dGF0aW9uID0gdHJ1ZTsgfQotI2lmIEhBVkUoSU9TVVJGQUNFX1NFVF9PV05FUlNISVBfSURFTlRJ
VFkpCi0gICAgdm9pZCBzZXRXZWJQcm9jZXNzSWRlbnRpdHlUb2tlbihzdGQ6Om9wdGlvbmFsPHRh
c2tfaWRfdG9rZW5fdD4gdG9rZW4pIHsgbV93ZWJQcm9jZXNzSWRlbnRpdHlUb2tlbiA9IHRva2Vu
O30KLSNlbmRpZgogCiBwcml2YXRlOgogICAgIHZvaWQgc291cmNlU3RvcHBlZCgpIGZpbmFsIHsK
QEAgLTE4OCwxMCArMTg2LDggQEAgcHJpdmF0ZToKICAgICAgICAgfSBlbHNlCiAgICAgICAgICAg
ICByZW1vdGVTYW1wbGUgPSBSZW1vdGVWaWRlb1NhbXBsZTo6Y3JlYXRlKHNhbXBsZSk7CiAgICAg
ICAgIGlmIChyZW1vdGVTYW1wbGUpIHsKLSNpZiBIQVZFKElPU1VSRkFDRV9TRVRfT1dORVJTSElQ
X0lERU5USVRZKQotICAgICAgICAgICAgaWYgKG1fd2ViUHJvY2Vzc0lkZW50aXR5VG9rZW4pCi0g
ICAgICAgICAgICAgICAgcmVtb3RlU2FtcGxlLT5zZXRPd25lcnNoaXBJZGVudGl0eSgqbV93ZWJQ
cm9jZXNzSWRlbnRpdHlUb2tlbik7Ci0jZW5kaWYKKyAgICAgICAgICAgIGlmIChtX3Jlc291cmNl
T3duZXIpCisgICAgICAgICAgICAgICAgcmVtb3RlU2FtcGxlLT5zZXRPd25lcnNoaXBJZGVudGl0
eShtX3Jlc291cmNlT3duZXIpOwogICAgICAgICAgICAgbV9jb25uZWN0aW9uLT5zZW5kKE1lc3Nh
Z2VzOjpSZW1vdGVDYXB0dXJlU2FtcGxlTWFuYWdlcjo6VmlkZW9TYW1wbGVBdmFpbGFibGUobV9p
ZCwgV1RGTW92ZSgqcmVtb3RlU2FtcGxlKSwgbWV0YWRhdGEpLCAwKTsKICAgICAgICAgfQogICAg
IH0KQEAgLTI0NCw2ICsyNDAsNyBAQCBwcml2YXRlOgogICAgIFJlYWx0aW1lTWVkaWFTb3VyY2VJ
ZGVudGlmaWVyIG1faWQ7CiAgICAgV2Vha1B0cjxQbGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXI+
IG1fc2Vzc2lvbk1hbmFnZXI7CiAgICAgUmVmPElQQzo6Q29ubmVjdGlvbj4gbV9jb25uZWN0aW9u
OworICAgIFByb2Nlc3NJZGVudGl0eSBtX3Jlc291cmNlT3duZXI7CiAgICAgUmVmPFJlYWx0aW1l
TWVkaWFTb3VyY2U+IG1fc291cmNlOwogICAgIHN0ZDo6dW5pcXVlX3B0cjxDQVJpbmdCdWZmZXI+
IG1fcmluZ0J1ZmZlcjsKICAgICBDQUF1ZGlvU3RyZWFtRGVzY3JpcHRpb24gbV9kZXNjcmlwdGlv
biB7IH07CkBAIC0yNTcsOSArMjU0LDYgQEAgcHJpdmF0ZToKICAgICBzaXplX3QgbV9mcmFtZUNo
dW5rU2l6ZSB7IDAgfTsKICAgICBNZWRpYVRpbWUgbV9zdGFydFRpbWU7CiAgICAgYm9vbCBtX3No
b3VsZFJlc2V0IHsgZmFsc2UgfTsKLSNpZiBIQVZFKFRBU0tfSURFTlRJVFlfVE9LRU4pCi0gICAg
c3RkOjpvcHRpb25hbDx0YXNrX2lkX3Rva2VuX3Q+IG1fd2ViUHJvY2Vzc0lkZW50aXR5VG9rZW47
Ci0jZW5kaWYKIH07CiAKIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6OlVzZXJNZWRpYUNh
cHR1cmVNYW5hZ2VyUHJveHkoVW5pcXVlUmVmPENvbm5lY3Rpb25Qcm94eT4mJiBjb25uZWN0aW9u
UHJveHkpCkBAIC0zMjMsMTIgKzMxNyw3IEBAIHZvaWQgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQ
cm94eTo6Y3JlYXRlTWVkaWFTb3VyY2VGb3JDYXB0dXJlRGV2aWNlV2l0aENvbnN0cmFpCiAgICAg
ICAgIH0KIAogICAgICAgICBBU1NFUlQoIW1fcHJveGllcy5jb250YWlucyhpZCkpOwotICAgICAg
ICBhdXRvIHByb3h5ID0gbWFrZVVuaXF1ZTxTb3VyY2VQcm94eT4oaWQsIG1fY29ubmVjdGlvblBy
b3h5LT5jb25uZWN0aW9uKCksIFdURk1vdmUoc291cmNlKSk7Ci0jaWYgSEFWRShJT1NVUkZBQ0Vf
U0VUX09XTkVSU0hJUF9JREVOVElUWSkKLSAgICAgICAgaWYgKGRldmljZS50eXBlKCkgIT0gV2Vi
Q29yZTo6Q2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6TWljcm9waG9uZSkKLSAgICAgICAgICAg
IHByb3h5LT5zZXRXZWJQcm9jZXNzSWRlbnRpdHlUb2tlbihtX2Nvbm5lY3Rpb25Qcm94eS0+d2Vi
UHJvY2Vzc0lkZW50aXR5VG9rZW4oKSk7Ci0jZW5kaWYKLQorICAgICAgICBhdXRvIHByb3h5ID0g
bWFrZVVuaXF1ZTxTb3VyY2VQcm94eT4oaWQsIG1fY29ubmVjdGlvblByb3h5LT5jb25uZWN0aW9u
KCksIFByb2Nlc3NJZGVudGl0eSB7IG1fY29ubmVjdGlvblByb3h5LT5yZXNvdXJjZU93bmVyKCkg
fSwgV1RGTW92ZShzb3VyY2UpKTsKICAgICAgICAgbV9wcm94aWVzLmFkZChpZCwgV1RGTW92ZShw
cm94eSkpOwogICAgIH0gZWxzZQogICAgICAgICBpbnZhbGlkQ29uc3RyYWludHMgPSBXVEZNb3Zl
KHNvdXJjZU9yRXJyb3IuZXJyb3JNZXNzYWdlKTsKQEAgLTM5NCw3ICszODMsNyBAQCB2b2lkIFVz
ZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6OmNsb25lKFJlYWx0aW1lTWVkaWFTb3VyY2VJZGVu
dGlmaWVyIGNsb25lZElELAogICAgIE1FU1NBR0VfQ0hFQ0sobV9wcm94aWVzLmNvbnRhaW5zKGNs
b25lZElEKSk7CiAgICAgTUVTU0FHRV9DSEVDSyghbV9wcm94aWVzLmNvbnRhaW5zKG5ld1NvdXJj
ZUlEKSk7CiAgICAgaWYgKGF1dG8qIHByb3h5ID0gbV9wcm94aWVzLmdldChjbG9uZWRJRCkpCi0g
ICAgICAgIG1fcHJveGllcy5hZGQobmV3U291cmNlSUQsIG1ha2VVbmlxdWU8U291cmNlUHJveHk+
KG5ld1NvdXJjZUlELCBtX2Nvbm5lY3Rpb25Qcm94eS0+Y29ubmVjdGlvbigpLCBwcm94eS0+c291
cmNlKCkuY2xvbmUoKSkpOworICAgICAgICBtX3Byb3hpZXMuYWRkKG5ld1NvdXJjZUlELCBtYWtl
VW5pcXVlPFNvdXJjZVByb3h5PihuZXdTb3VyY2VJRCwgbV9jb25uZWN0aW9uUHJveHktPmNvbm5l
Y3Rpb24oKSwgUHJvY2Vzc0lkZW50aXR5IHsgbV9jb25uZWN0aW9uUHJveHktPnJlc291cmNlT3du
ZXIoKSB9LCBwcm94eS0+c291cmNlKCkuY2xvbmUoKSkpOwogfQogCiB2b2lkIFVzZXJNZWRpYUNh
cHR1cmVNYW5hZ2VyUHJveHk6OnJlcXVlc3RUb0VuZChSZWFsdGltZU1lZGlhU291cmNlSWRlbnRp
ZmllciBzb3VyY2VJRCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29h
L1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkuaAppbmRleCBhMDk0MjlkZjY3OTFl
OTBmODRhOTM0OTVmYjBlZDI4NWNjZWQwZDJjLi5mYTgyOWM3YzQ5MDNkNTFiNTdhNzg5NzE3ODQ3
M2Y4MGNiZjI4NmRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9V
c2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5oCkBAIC0zMiw2ICszMiw3IEBA
CiAjaW5jbHVkZSAiVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIuaCIKICNpbmNsdWRlIDxXZWJDb3Jl
L0NhcHR1cmVEZXZpY2UuaD4KICNpbmNsdWRlIDxXZWJDb3JlL09yaWVudGF0aW9uTm90aWZpZXIu
aD4KKyNpbmNsdWRlIDxXZWJDb3JlL1Byb2Nlc3NJZGVudGl0eS5oPgogI2luY2x1ZGUgPFdlYkNv
cmUvUmVhbHRpbWVNZWRpYVNvdXJjZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUmVhbHRpbWVNZWRp
YVNvdXJjZUlkZW50aWZpZXIuaD4KICNpbmNsdWRlIDxwYWwvc3BpL2NvY29hL1RDQ1NQSS5oPgpA
QCAtNTksOSArNjAsNyBAQCBwdWJsaWM6CiAgICAgICAgIHZpcnR1YWwgYm9vbCB3aWxsU3RhcnRD
YXB0dXJlKFdlYkNvcmU6OkNhcHR1cmVEZXZpY2U6OkRldmljZVR5cGUpIGNvbnN0ID0gMDsKICAg
ICAgICAgdmlydHVhbCBMb2dnZXImIGxvZ2dlcigpID0gMDsKICAgICAgICAgdmlydHVhbCBib29s
IHNldENhcHR1cmVBdHRyaWJ1dGlvblN0cmluZygpIHsgcmV0dXJuIHRydWU7IH0KLSNpZiBIQVZF
KElPU1VSRkFDRV9TRVRfT1dORVJTSElQX0lERU5USVRZKQotICAgICAgICB2aXJ0dWFsIHN0ZDo6
b3B0aW9uYWw8dGFza19pZF90b2tlbl90PiB3ZWJQcm9jZXNzSWRlbnRpdHlUb2tlbigpIGNvbnN0
IHsgcmV0dXJuIHsgfTsgfTsKLSNlbmRpZgorICAgICAgICB2aXJ0dWFsIGNvbnN0IFdlYkNvcmU6
OlByb2Nlc3NJZGVudGl0eSYgcmVzb3VyY2VPd25lcigpIGNvbnN0ID0gMDsKICNpZiBFTkFCTEUo
QVBQX1BSSVZBQ1lfUkVQT1JUKQogICAgICAgICB2aXJ0dWFsIHZvaWQgc2V0VENDSWRlbnRpdHko
KSB7IH0KICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJv
Y2Vzc1Byb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5j
cHAKaW5kZXggNjY1NmUyZGRkZDNiNDJjYzcwN2U4YTI4YjVkYTlhZGE3MDgwOTlmYi4uNjNlNmUx
MzdmZmFjMGEyODkxMTA1Yzg5ZTA3NmExMDFlNGFmZTZlMSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwCkBAIC0yMTYsNiArMjE2LDEzIEBAIHByaXZhdGU6
CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KIAorICAgIGNvbnN0IFdlYkNvcmU6OlByb2Nl
c3NJZGVudGl0eSYgcmVzb3VyY2VPd25lcigpIGNvbnN0IGZpbmFsCisgICAgeworICAgICAgICAv
LyBGSVhNRTogc2hvdWxkIG9idGFpbiBXZWJDb250ZW50IHByb2Nlc3MgaWRlbnRpdHkgZnJvbSBX
ZWJDb250ZW50LgorICAgICAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8V2ViQ29yZTo6UHJvY2Vz
c0lkZW50aXR5PiBkdW1teTsKKyAgICAgICAgcmV0dXJuIGR1bW15LmdldCgpOworICAgIH0KKwog
ICAgIFJlZlB0cjxMb2dnZXI+IG1fbG9nZ2VyOwogICAgIFdlYlByb2Nlc3NQcm94eSYgbV9wcm9j
ZXNzOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhp
Y3MvSW1hZ2VCdWZmZXJTaGFyZWFibGVCaXRtYXBCYWNrZW5kLmggYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvR1BVL2dyYXBoaWNzL0ltYWdlQnVmZmVyU2hhcmVhYmxlQml0bWFwQmFja2VuZC5o
CmluZGV4IDE4NDdmYTZmYmRlNDA2ZWQ2YTZhZDA2MDQ5OGI4ODVjNWUzNmJiM2QuLmM1YjI2YzQw
ZTc0NjAzMjJkZmFmZTI5YjBjZTZlMzY0MTY3ZTcyYWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvSW1hZ2VCdWZmZXJTaGFyZWFibGVCaXRtYXBCYWNr
ZW5kLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9JbWFnZUJ1
ZmZlclNoYXJlYWJsZUJpdG1hcEJhY2tlbmQuaApAQCAtMzEsNiArMzEsMTAgQEAKICNpbmNsdWRl
IDxXZWJDb3JlL1BsYXRmb3JtSW1hZ2VCdWZmZXJCYWNrZW5kLmg+CiAjaW5jbHVkZSA8d3RmL0lz
b01hbGxvYy5oPgogCituYW1lc3BhY2UgV2ViQ29yZSB7CitjbGFzcyBQcm9jZXNzSWRlbnRpdHk7
Cit9CisKIG5hbWVzcGFjZSBXZWJLaXQgewogCiBjbGFzcyBTaGFyZWFibGVCaXRtYXA7CkBAIC02
MSw2ICs2NSw3IEBAIHB1YmxpYzoKICAgICBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OlBpeGVsQnVm
ZmVyPiBnZXRQaXhlbEJ1ZmZlcihjb25zdCBXZWJDb3JlOjpQaXhlbEJ1ZmZlckZvcm1hdCYgb3V0
cHV0Rm9ybWF0LCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0JikgY29uc3Qgb3ZlcnJpZGU7CiAgICAg
dm9pZCBwdXRQaXhlbEJ1ZmZlcihjb25zdCBXZWJDb3JlOjpQaXhlbEJ1ZmZlciYsIGNvbnN0IFdl
YkNvcmU6OkludFJlY3QmIHNyY1JlY3QsIGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBkZXN0UG9p
bnQsIFdlYkNvcmU6OkFscGhhUHJlbXVsdGlwbGljYXRpb24gZGVzdEZvcm1hdCkgb3ZlcnJpZGU7
CiAKKyAgICB2b2lkIHNldE93bmVyc2hpcElkZW50aXR5KGNvbnN0IFdlYkNvcmU6OlByb2Nlc3NJ
ZGVudGl0eSYpIHsgfQogcHJpdmF0ZToKICAgICB1bnNpZ25lZCBieXRlc1BlclJvdygpIGNvbnN0
IG92ZXJyaWRlOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dy
YXBoaWNzL2NvY29hL0ltYWdlQnVmZmVyU2hhcmVhYmxlTWFwcGVkSU9TdXJmYWNlQmFja2VuZC5j
cHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL2NvY29hL0ltYWdlQnVm
ZmVyU2hhcmVhYmxlTWFwcGVkSU9TdXJmYWNlQmFja2VuZC5jcHAKaW5kZXggYWZkMmM3YzA1Y2Zh
ZmQxMzk5MzQ0ZjVjNmE3NjRlNDg4MGQyOGJkYS4uYjI5ZmM1NzI3ODk1MDMwZDQyZmRiNDI3YjE1
ODQ0N2YwZDcxMDYzYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9n
cmFwaGljcy9jb2NvYS9JbWFnZUJ1ZmZlclNoYXJlYWJsZU1hcHBlZElPU3VyZmFjZUJhY2tlbmQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvY29jb2EvSW1h
Z2VCdWZmZXJTaGFyZWFibGVNYXBwZWRJT1N1cmZhY2VCYWNrZW5kLmNwcApAQCAtNzcsMTMgKzc3
LDExIEBAIEltYWdlQnVmZmVyQmFja2VuZEhhbmRsZSBJbWFnZUJ1ZmZlclNoYXJlYWJsZU1hcHBl
ZElPU3VyZmFjZUJhY2tlbmQ6OmNyZWF0ZUltYWdlCiAgICAgcmV0dXJuIEltYWdlQnVmZmVyQmFj
a2VuZEhhbmRsZShtX3N1cmZhY2UtPmNyZWF0ZVNlbmRSaWdodCgpKTsKIH0KIAotI2lmIEhBVkUo
SU9TVVJGQUNFX1NFVF9PV05FUlNISVBfSURFTlRJVFkpCi12b2lkIEltYWdlQnVmZmVyU2hhcmVh
YmxlTWFwcGVkSU9TdXJmYWNlQmFja2VuZDo6c2V0UHJvY2Vzc093bmVyc2hpcCh0YXNrX2lkX3Rv
a2VuX3QgcHJvY2Vzc0lkZW50aXR5VG9rZW4pCit2b2lkIEltYWdlQnVmZmVyU2hhcmVhYmxlTWFw
cGVkSU9TdXJmYWNlQmFja2VuZDo6c2V0T3duZXJzaGlwSWRlbnRpdHkoY29uc3QgV2ViQ29yZTo6
UHJvY2Vzc0lkZW50aXR5JiByZXNvdXJjZU93bmVyKQogewogICAgIEFTU0VSVChzdXJmYWNlKCkp
OwotICAgIHN1cmZhY2UoKS0+c2V0T3duZXJzaGlwSWRlbnRpdHkocHJvY2Vzc0lkZW50aXR5VG9r
ZW4pOworICAgIHN1cmZhY2UoKS0+c2V0T3duZXJzaGlwSWRlbnRpdHkocmVzb3VyY2VPd25lcik7
CiB9Ci0jZW5kaWYKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvY29jb2EvSW1hZ2VCdWZmZXJTaGFyZWFi
bGVNYXBwZWRJT1N1cmZhY2VCYWNrZW5kLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BV
L2dyYXBoaWNzL2NvY29hL0ltYWdlQnVmZmVyU2hhcmVhYmxlTWFwcGVkSU9TdXJmYWNlQmFja2Vu
ZC5oCmluZGV4IGUxNGE1NDBlY2RkZDQ3MTE5MDhhN2MxNzFjM2EyNWViZmQ4MDhkYmUuLmVhODUy
NWM1MTUwMTU1YmQwM2I1ODAwNzNkNWYyMTM4NjQ4YjBlMGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvY29jb2EvSW1hZ2VCdWZmZXJTaGFyZWFibGVN
YXBwZWRJT1N1cmZhY2VCYWNrZW5kLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQ
VS9ncmFwaGljcy9jb2NvYS9JbWFnZUJ1ZmZlclNoYXJlYWJsZU1hcHBlZElPU3VyZmFjZUJhY2tl
bmQuaApAQCAtMzEsNiArMzEsMTAgQEAKICNpbmNsdWRlIDxXZWJDb3JlL0ltYWdlQnVmZmVySU9T
dXJmYWNlQmFja2VuZC5oPgogI2luY2x1ZGUgPHd0Zi9Jc29NYWxsb2MuaD4KIAorbmFtZXNwYWNl
IFdlYkNvcmUgeworY2xhc3MgUHJvY2Vzc0lkZW50aXR5OworfQorCiBuYW1lc3BhY2UgV2ViS2l0
IHsKIAogY2xhc3MgU2hhcmVhYmxlQml0bWFwOwpAQCAtNDYsOSArNTAsNyBAQCBwdWJsaWM6CiAK
ICAgICBJbWFnZUJ1ZmZlckJhY2tlbmRIYW5kbGUgY3JlYXRlSW1hZ2VCdWZmZXJCYWNrZW5kSGFu
ZGxlKCkgY29uc3Q7CiAKLSNpZiBIQVZFKElPU1VSRkFDRV9TRVRfT1dORVJTSElQX0lERU5USVRZ
KQotICAgIHZvaWQgc2V0UHJvY2Vzc093bmVyc2hpcCh0YXNrX2lkX3Rva2VuX3QpOwotI2VuZGlm
CisgICAgdm9pZCBzZXRPd25lcnNoaXBJZGVudGl0eShjb25zdCBXZWJDb3JlOjpQcm9jZXNzSWRl
bnRpdHkmKTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1dlYlByb2Nlc3NDb2NvYS5tbSBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9jb2NvYS9XZWJQcm9jZXNzQ29jb2EubW0KaW5kZXggNmE3ZmM3M2U5YTFj
MDFlZGU4OGNhYzU5MjYxMzliMzkxNjRiZjdiOC4uMTA1MjZhMTBjNTAzOTMxYjg2NzIyZDgwYjVl
ZDk3ZjVkMzgzMGE0YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29h
L1dlYlByb2Nlc3NDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2Ev
V2ViUHJvY2Vzc0NvY29hLm1tCkBAIC0xMjI2LDE0ICsxMjI2LDcgQEAgdm9pZCBXZWJQcm9jZXNz
Ojp3YWl0Rm9yUGVuZGluZ1Bhc3RlYm9hcmRXcml0ZXNUb0ZpbmlzaChjb25zdCBTdHJpbmcmIHBh
c3RlYm9hcmQKICNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCiB2b2lkIFdlYlByb2Nlc3M6OnBsYXRm
b3JtSW5pdGlhbGl6ZUdQVVByb2Nlc3NDb25uZWN0aW9uUGFyYW1ldGVycyhHUFVQcm9jZXNzQ29u
bmVjdGlvblBhcmFtZXRlcnMmIHBhcmFtZXRlcnMpCiB7Ci0jaWYgSEFWRShUQVNLX0lERU5USVRZ
X1RPS0VOKQotICAgIHRhc2tfaWRfdG9rZW5fdCBpZGVudGl0eVRva2VuOwotICAgIGtlcm5fcmV0
dXJuX3Qga3IgPSB0YXNrX2NyZWF0ZV9pZGVudGl0eV90b2tlbihtYWNoX3Rhc2tfc2VsZigpLCAm
aWRlbnRpdHlUb2tlbik7Ci0gICAgaWYgKGtyID09IEtFUk5fU1VDQ0VTUykKLSAgICAgICAgcGFy
YW1ldGVycy53ZWJQcm9jZXNzSWRlbnRpdHlUb2tlbiA9IE1hY2hTZW5kUmlnaHQ6OmFkb3B0KGlk
ZW50aXR5VG9rZW4pOwotICAgIGVsc2UKLSAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoUHJvY2Vz
cywgIkNhbGwgdG8gdGFza19jcmVhdGVfaWRlbnRpdHlfdG9rZW4oKSBmYWlsZWQ6ICV7cHJpdmF0
ZX1zICgleCkiLCBtYWNoX2Vycm9yX3N0cmluZyhrciksIGtyKTsKLSNlbmRpZgorICAgIHBhcmFt
ZXRlcnMud2ViUHJvY2Vzc0lkZW50aXR5ID0gUHJvY2Vzc0lkZW50aXR5IHsgUHJvY2Vzc0lkZW50
aXR5OjpDdXJyZW50UHJvY2VzcyB9OwogCiAgICAgcGFyYW1ldGVycy5vdmVycmlkZUxhbmd1YWdl
cyA9IHVzZXJQcmVmZXJyZWRMYW5ndWFnZXNPdmVycmlkZSgpOwogfQpkaWZmIC0tZ2l0IGEvVG9v
bHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IGE4ZTg3MWIwYWYxYTM0YjA1NzIw
MDFiM2NhMzc5ZDYwYjkxMDVlMjkuLmE3NDY4NGYyOGQ3ZTk1MjIwODY3NDA0OTQwNWQ5YjM1N2Q3
MmNlMWUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwxNiBAQAorMjAyMS0xMi0wOCAgS2ltbW8gS2lubnVuZW4gIDxra2lubnVuZW5A
YXBwbGUuY29tPgorCisgICAgICAgIElPU3VyZmFjZSBtZW1vcnkgYXR0cmlidXRpb24gaXMgaGFy
ZCB0byB1c2UgaW4gY29uc3RydWN0b3JzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0yMzI5ODgKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzg1NTQxOTE4
PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFVwZGF0
ZSBjb25zdHJ1Y3RvciBjYWxsaW5nIGJhc2UgY2xhc3MgY29uc3RydWN0b3IsIGFkZCBlbXB0eQor
ICAgICAgICBQcm9jZXNzZUlkZW50aXR5LgorCisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0
cy9XZWJDb3JlL2NvY29hL1Rlc3RHcmFwaGljc0NvbnRleHRHTENvY29hLm1tOgorCiAyMDIxLTEy
LTA5ICBNeWxlcyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+IGFuZCBEb24gT2xt
c3RlYWQgIDxkb24ub2xtc3RlYWRAc29ueS5jb20+CiAKICAgICAgICAgTW92ZSBUZXh0Q29kZWMg
ZmlsZXMgZnJvbSBXZWJDb3JlL3BsYXRmb3JtL3RleHQgdG8gV2ViQ29yZS9QQUwvdGV4dApkaWZm
IC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL2NvY29hL1Rlc3RHcmFw
aGljc0NvbnRleHRHTENvY29hLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3Jl
L2NvY29hL1Rlc3RHcmFwaGljc0NvbnRleHRHTENvY29hLm1tCmluZGV4IDg3NmM3NDQ4MDhmNDM2
MWUzY2Q1MmY1M2ZmZDZmNjAwM2E4YTBmODcuLmE5MTYyNzk4ZTZmMDdmNDc4YmMxMmJiZDgzZmMw
NDViNDMyMzczNzQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29y
ZS9jb2NvYS9UZXN0R3JhcGhpY3NDb250ZXh0R0xDb2NvYS5tbQorKysgYi9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYkNvcmUvY29jb2EvVGVzdEdyYXBoaWNzQ29udGV4dEdMQ29jb2EubW0K
QEAgLTMyLDYgKzMyLDcgQEAKICNpbXBvcnQgPE1ldGFsL01ldGFsLmg+CiAjaW1wb3J0IDxXZWJD
b3JlL0NvbG9yLmg+CiAjaW1wb3J0IDxXZWJDb3JlL0dyYXBoaWNzQ29udGV4dEdMQ29jb2EuaD4K
KyNpbXBvcnQgPFdlYkNvcmUvUHJvY2Vzc0lkZW50aXR5Lmg+CiAjaW1wb3J0IDxvcHRpb25hbD4K
ICNpbXBvcnQgPHd0Zi9IYXNoU2V0Lmg+CiAjaW1wb3J0IDx3dGYvTWVtb3J5Rm9vdHByaW50Lmg+
CkBAIC02Nyw3ICs2OCw3IEBAIHN0YXRpYyBSZWZQdHI8V2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0
R0xDb2NvYT4gY3JlYXRlRGVmYXVsdFRlc3RDb250ZXh0KFdlYkNvcmU6CiAgICAgYXR0cmlidXRl
cy5zdGVuY2lsID0gZmFsc2U7CiAgICAgYXR0cmlidXRlcy5hbHBoYSA9IHRydWU7CiAgICAgYXR0
cmlidXRlcy5wcmVzZXJ2ZURyYXdpbmdCdWZmZXIgPSBmYWxzZTsKLSAgICBhdXRvIGNvbnRleHQg
PSBXZWJDb3JlOjpHcmFwaGljc0NvbnRleHRHTENvY29hOjpjcmVhdGUoV1RGTW92ZShhdHRyaWJ1
dGVzKSk7CisgICAgYXV0byBjb250ZXh0ID0gV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0R0xDb2Nv
YTo6Y3JlYXRlKFdURk1vdmUoYXR0cmlidXRlcyksIHsgfSk7CiAgICAgaWYgKCFjb250ZXh0KQog
ICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICBjb250ZXh0LT5yZXNoYXBlKGNvbnRleHRTaXpl
LndpZHRoKCksIGNvbnRleHRTaXplLmhlaWdodCgpKTsKQEAgLTExOSwxNSArMTIwLDE1IEBAIFRF
U1RfRihHcmFwaGljc0NvbnRleHRHTENvY29hVGVzdCwgTUFZQkVfTXVsdGlwbGVHUFVzRGlmZmVy
ZW50UG93ZXJQcmVmZXJlbmNlTWV0CiAgICAgV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0R0xBdHRy
aWJ1dGVzIGF0dHJpYnV0ZXM7CiAgICAgYXR0cmlidXRlcy51c2VNZXRhbCA9IHRydWU7CiAgICAg
RVhQRUNUX0VRKGF0dHJpYnV0ZXMucG93ZXJQcmVmZXJlbmNlLCBXZWJDb3JlOjpHcmFwaGljc0Nv
bnRleHRHTFBvd2VyUHJlZmVyZW5jZTo6RGVmYXVsdCk7Ci0gICAgYXV0byBkZWZhdWx0Q29udGV4
dCA9IFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dEdMQ29jb2E6OmNyZWF0ZShXZWJDb3JlOjpHcmFw
aGljc0NvbnRleHRHTEF0dHJpYnV0ZXMgeyBhdHRyaWJ1dGVzIH0pOworICAgIGF1dG8gZGVmYXVs
dENvbnRleHQgPSBXZWJDb3JlOjpHcmFwaGljc0NvbnRleHRHTENvY29hOjpjcmVhdGUoV2ViQ29y
ZTo6R3JhcGhpY3NDb250ZXh0R0xBdHRyaWJ1dGVzIHsgYXR0cmlidXRlcyB9LCB7IH0pOwogICAg
IEFTU0VSVF9ORShkZWZhdWx0Q29udGV4dCwgbnVsbHB0cik7CiAKICAgICBhdHRyaWJ1dGVzLnBv
d2VyUHJlZmVyZW5jZSA9IFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dEdMUG93ZXJQcmVmZXJlbmNl
OjpMb3dQb3dlcjsKLSAgICBhdXRvIGxvd1Bvd2VyQ29udGV4dCA9IFdlYkNvcmU6OkdyYXBoaWNz
Q29udGV4dEdMQ29jb2E6OmNyZWF0ZShXZWJDb3JlOjpHcmFwaGljc0NvbnRleHRHTEF0dHJpYnV0
ZXMgeyBhdHRyaWJ1dGVzIH0pOworICAgIGF1dG8gbG93UG93ZXJDb250ZXh0ID0gV2ViQ29yZTo6
R3JhcGhpY3NDb250ZXh0R0xDb2NvYTo6Y3JlYXRlKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dEdM
QXR0cmlidXRlcyB7IGF0dHJpYnV0ZXMgfSwgeyB9KTsKICAgICBBU1NFUlRfTkUobG93UG93ZXJD
b250ZXh0LCBudWxscHRyKTsKIAogICAgIGF0dHJpYnV0ZXMucG93ZXJQcmVmZXJlbmNlID0gV2Vi
Q29yZTo6R3JhcGhpY3NDb250ZXh0R0xQb3dlclByZWZlcmVuY2U6OkhpZ2hQZXJmb3JtYW5jZTsK
LSAgICBhdXRvIGhpZ2hQZXJmb3JtYW5jZUNvbnRleHQgPSBXZWJDb3JlOjpHcmFwaGljc0NvbnRl
eHRHTENvY29hOjpjcmVhdGUoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0R0xBdHRyaWJ1dGVzIHsg
YXR0cmlidXRlcyB9KTsKKyAgICBhdXRvIGhpZ2hQZXJmb3JtYW5jZUNvbnRleHQgPSBXZWJDb3Jl
OjpHcmFwaGljc0NvbnRleHRHTENvY29hOjpjcmVhdGUoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0
R0xBdHRyaWJ1dGVzIHsgYXR0cmlidXRlcyB9LCB7IH0pOwogICAgIEFTU0VSVF9ORShoaWdoUGVy
Zm9ybWFuY2VDb250ZXh0LCBudWxscHRyKTsKIAogICAgIEVYUEVDVF9ORShsb3dQb3dlckNvbnRl
eHQtPmdldFN0cmluZyhXZWJDb3JlOjpHcmFwaGljc0NvbnRleHRHTDo6UkVOREVSRVIpLCBoaWdo
UGVyZm9ybWFuY2VDb250ZXh0LT5nZXRTdHJpbmcoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0R0w6
OlJFTkRFUkVSKSk7Cg==
</data>
<flag name="commit-queue"
          id="472018"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>446581</attachid>
            <date>2021-12-09 11:56:42 -0800</date>
            <delta_ts>2021-12-09 23:17:16 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-232988-20211209215640.patch</filename>
            <type>text/plain</type>
            <size>54880</size>
            <attacher name="Kimmo Kinnunen">kkinnunen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg2NzkxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTI1YmNiODZiMmU1NjBk
ZTkyZTM1NzI0Mzc5OWNiNTMyM2JiZmViZi4uYzdkZDBmNmNlZTdjMjY5Nzg3OTZiNDkxNDUxZjRi
ZjlhMTFiNDI0MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUzIEBACisyMDIxLTEyLTA4ICBLaW1t
byBLaW5udW5lbiAgPGtraW5udW5lbkBhcHBsZS5jb20+CisKKyAgICAgICAgSU9TdXJmYWNlIG1l
bW9yeSBhdHRyaWJ1dGlvbiBpcyBoYXJkIHRvIHVzZSBpbiBjb25zdHJ1Y3RvcnMKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMjk4OAorICAgICAgICA8
cmRhcjovL3Byb2JsZW0vODU1NDE5MTg+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQ2hyaXMgRHVt
ZXouCisKKyAgICAgICAgQWRkIFdlYkNvcmU6OlByb2Nlc3NJZGVudGl0eSB0eXBlIHRoYXQgY2Fu
IGJlIHVzZWQgdG8gY29tbXVuaWNhdGUgbWVtb3J5IGF0dHJpYnV0aW9uLgorICAgICAgICBGb3Ig
bm9uLUNvY29hIHBvcnRzLCB0aGlzIGlzIG51bGxwdHIuCisgICAgICAgIFRoaXMgaXMgdXNlZCBp
biBXZWJDb3JlIHRvIHNldCB0aGUgbWVtb3J5IGF0dHJpYnV0aW9uIG9mIElPU3VyZmFjZSBhbmQg
b2JqZWN0cworICAgICAgICB0aGF0IGhvbGQgSU9TdXJmYWNlcy4KKyAgICAgICAgVGhpcyBpcyBp
bnN0YW50aWF0ZWQgaW4gV2ViS2l0LgorICAgICAgICBDdXJyZW50bHkgdGhlIG9ubHkgdXNlZnVs
IHdheSB0byBpbnN0YW50aWF0ZSBQcm9jZXNzSWRlbnRpdHkgaXMgYnkgcmVjZWl2aW5nCisgICAg
ICAgIHRoZSBQcm9jZXNzSWRlbnRpdHkgYXMgYSBtZXNzYWdlIGFuZCBjcmVhdGUgaXQgdGhpcyB3
YXkgZm9yIHRoZQorICAgICAgICBzZW5kZXIgcHJvY2Vzcy4KKworICAgICAgICBObyBuZXcgdGVz
dHMsIHJlZmFjdG9yLgorCisgICAgICAgICogSGVhZGVycy5jbWFrZToKKyAgICAgICAgKiBTb3Vy
Y2VzLnR4dDoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6Cisg
ICAgICAgICogcGxhdGZvcm0vTG9nZ2luZy5oOgorICAgICAgICBBZGQgV2ViQ29yZSBQcm9jZXNz
IGxvZyB0YWcgc2luY2UgdGhlIGNvZGUgbW92ZWQgZnJvbSBXZWJLaXQgdG8gUHJvY2Vzc0lkZW50
aXR5CisgICAgICAgIHVzZWQgdGhhdCB0YWcgdG8gbG9nLgorICAgICAgICAqIHBsYXRmb3JtL1By
b2Nlc3NJZGVudGl0eS5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6UHJvY2Vzc0lkZW50
aXR5OjpQcm9jZXNzSWRlbnRpdHkpOgorICAgICAgICAoV2ViQ29yZTo6UHJvY2Vzc0lkZW50aXR5
Ojp0YXNrSWRUb2tlbiBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpQcm9jZXNzSWRlbnRpdHk6
OnNlbmRSaWdodCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpQcm9jZXNzSWRlbnRpdHk6Om9w
ZXJhdG9yIGJvb2wgY29uc3QpOgorICAgICAgICAqIHBsYXRmb3JtL1Byb2Nlc3NJZGVudGl0eS5o
OiBBZGRlZC4KKyAgICAgICAgQWRkIHRoZSBQcm9jZXNzSWRlbnRpdHkgdHlwZSB0aGF0IGNhbiBi
ZSB1c2VkIHRvIGNvbW11bmljYXRlIG1lbW9yeSBhdHRyaWJ1dGlvbi4KKyAgICAgICAgKiBwbGF0
Zm9ybS9ncmFwaGljcy9SZW1vdGVWaWRlb1NhbXBsZS5oOgorICAgICAgICAoV2ViQ29yZTo6UmVt
b3RlVmlkZW9TYW1wbGU6OnNldE93bmVyc2hpcElkZW50aXR5KToKKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy9hbmdsZS9HcmFwaGljc0NvbnRleHRHTEFOR0xFLmg6CisgICAgICAgICogcGxh
dGZvcm0vZ3JhcGhpY3MvY29jb2EvR3JhcGhpY3NDb250ZXh0R0xDb2NvYS5oOgorICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0dyYXBoaWNzQ29udGV4dEdMQ29jb2EubW06CisgICAg
ICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHRHTENvY29hOjpjcmVhdGUpOgorICAgICAgICAo
V2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0R0xDb2NvYTo6R3JhcGhpY3NDb250ZXh0R0xDb2NvYSk6
CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHRHTEFOR0xFOjphbGxvY2F0ZUFuZEJp
bmREaXNwbGF5QnVmZmVyQmFja2luZyk6CisgICAgICAgIEFkZCBhbiBleGFtcGxlIHVzZSB3aGVy
ZSB0aGUgY29uc3RydWN0b3IgdGFrZXMgdGhlIG1lbW9yeSBhdHRyaWJ1dGlvbiB0b2tlbi4KKyAg
ICAgICAgVGhpcyBtYXkgYmUgbmVlZGVkIGluIHRoZSBmdXR1cmUgd2hlbiB0aGUgdG9rZW4gaXMg
dXNlZCBhcyBhIHBhcmFtZXRlciBpbgorICAgICAgICB0aGUgQU5HTEUgY29udGV4dCBjcmVhdGlv
bi4KKyAgICAgICAgVXNlIHRoZSB0b2tlbiBpbiBjcmVhdGluZyB0aGUgSU9TdXJmYWNlLiBUaGlz
IGZpeGVzIGEgYnVnIHdoZXJlIFdlYkdMCisgICAgICAgIGJhY2sgYnVmZmVycyB3b3VsZCBub3Qg
YmUgYXR0cmlidXRlZCB1bnRpbCB0aGV5IHdlcmUgc2VudCB0byBXUC4KKyAgICAgICAgKiBwbGF0
Zm9ybS9ncmFwaGljcy9jb2NvYS9JT1N1cmZhY2UuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy9jb2NvYS9JT1N1cmZhY2UubW06CisgICAgICAgIChXZWJDb3JlOjpJT1N1cmZhY2U6OnNl
dE93bmVyc2hpcElkZW50aXR5KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9X
ZWJQcm9jZXNzR3JhcGhpY3NDb250ZXh0R0xDb2NvYS5tbToKKwogMjAyMS0xMi0wOSAgQWxhbiBC
dWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CiAKICAgICAgICAgW0xGQ11bSUZDXSBBZGQgc3VwcG9y
dCBmb3IgaW5rIG92ZXJmbG93IG9uIGJpZGkgaW5saW5lIGJveGVzCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDliMzFl
NDk3ZDU0NGFkZjhhZGE2NDkzYjI0YTI5OTUyYzM2YTVkYjAuLjBjMTI3MGUyZjA4Y2JjZWIwZWM4
ZjMzZTNiODVhYjg3ZmRmOGZhMWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9n
CisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTQgQEAKKzIwMjEtMTIt
MDggIEtpbW1vIEtpbm51bmVuICA8a2tpbm51bmVuQGFwcGxlLmNvbT4KKworICAgICAgICBJT1N1
cmZhY2UgbWVtb3J5IGF0dHJpYnV0aW9uIGlzIGhhcmQgdG8gdXNlIGluIGNvbnN0cnVjdG9ycwor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMyOTg4Cisg
ICAgICAgIDxyZGFyOi8vcHJvYmxlbS84NTU0MTkxOD4KKworICAgICAgICBSZXZpZXdlZCBieSBD
aHJpcyBEdW1lei4KKworICAgICAgICBSZW1vdmUgaWZkZWZzIGFuZCBkaXJlY3QgdXNlIG9mIHRh
c2tfaWRfdG9rZW5fdC4KKyAgICAgICAgSW5zdGVhZCwgdXNlIFdlYkNvcmU6OlByb2Nlc3NJZGVu
dGlmaWVyLiBUaGlzIHdheSB0aGUKKyAgICAgICAgY3Jvc3MtcGxhdGZvcm0gY29kZSBpcyBlYXNp
ZXIgdG8gYXV0aG9yLgorCisgICAgICAgICogR1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9uVG9XZWJQ
cm9jZXNzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6R1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6
R1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcyk6CisgICAgICAgICogR1BVUHJvY2Vzcy9HUFVDb25u
ZWN0aW9uVG9XZWJQcm9jZXNzLmg6CisgICAgICAgIChXZWJLaXQ6OkdQVUNvbm5lY3Rpb25Ub1dl
YlByb2Nlc3M6OndlYlByb2Nlc3NJZGVudGl0eSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OkdQ
VUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OndlYlByb2Nlc3NJZGVudGl0eVRva2VuIGNvbnN0KTog
RGVsZXRlZC4KKyAgICAgICAgKiBHUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZUdyYXBoaWNzQ29u
dGV4dEdMQ29jb2EuY3BwOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVHcmFwaGljc0NvbnRleHRH
TENvY29hOjpSZW1vdGVHcmFwaGljc0NvbnRleHRHTENvY29hKToKKyAgICAgICAgKFdlYktpdDo6
UmVtb3RlR3JhcGhpY3NDb250ZXh0R0xDb2NvYTo6cGxhdGZvcm1Xb3JrUXVldWVJbml0aWFsaXpl
KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlR3JhcGhpY3NDb250ZXh0R0xDb2NvYTo6cHJlcGFy
ZUZvckRpc3BsYXkpOgorICAgICAgICAqIEdQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlSW1hZ2VC
dWZmZXIuaDoKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlSW1hZ2VCdWZmZXI6OnNldE93bmVyc2hp
cElkZW50aXR5KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlSW1hZ2VCdWZmZXI6OnNldFByb2Nl
c3NPd25lcnNoaXApOiBEZWxldGVkLgorICAgICAgICAqIEdQVVByb2Nlc3MvZ3JhcGhpY3MvUmVt
b3RlUmVuZGVyaW5nQmFja2VuZC5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlbmRlcmlu
Z0JhY2tlbmQ6OlJlbW90ZVJlbmRlcmluZ0JhY2tlbmQpOgorICAgICAgICAoV2ViS2l0OjpSZW1v
dGVSZW5kZXJpbmdCYWNrZW5kOjpjcmVhdGVJbWFnZUJ1ZmZlcldpdGhRdWFsaWZpZWRJZGVudGlm
aWVyKToKKyAgICAgICAgKiBHUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tl
bmQuaDoKKyAgICAgICAgKiBHUFVQcm9jZXNzL3dlYnJ0Yy9MaWJXZWJSVENDb2RlY3NQcm94eS5t
bToKKyAgICAgICAgKFdlYktpdDo6RnVuY3Rpb248dm9pZCk6CisgICAgICAgICogU2hhcmVkL0dQ
VVByb2Nlc3NDb25uZWN0aW9uUGFyYW1ldGVycy5oOgorICAgICAgICAoV2ViS2l0OjpHUFVQcm9j
ZXNzQ29ubmVjdGlvblBhcmFtZXRlcnM6OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6
OkdQVVByb2Nlc3NDb25uZWN0aW9uUGFyYW1ldGVyczo6ZGVjb2RlKToKKyAgICAgICAgKiBVSVBy
b2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5jcHA6CisgICAgICAgIChX
ZWJLaXQ6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6OlNvdXJjZVByb3h5OjpTb3VyY2VQ
cm94eSk6CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6OlNv
dXJjZVByb3h5OjpzZXRTaG91bGRBcHBseVJvdGF0aW9uKToKKyAgICAgICAgKFdlYktpdDo6VXNl
ck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6Y3JlYXRlTWVkaWFTb3VyY2VGb3JDYXB0dXJlRGV2
aWNlV2l0aENvbnN0cmFpbnRzKToKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhQ2FwdHVyZU1h
bmFnZXJQcm94eTo6Y2xvbmUpOgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFDYXB0dXJlTWFu
YWdlclByb3h5OjpTb3VyY2VQcm94eTo6c2V0V2ViUHJvY2Vzc0lkZW50aXR5VG9rZW4pOiBEZWxl
dGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclBy
b3h5Lmg6CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6OkNv
bm5lY3Rpb25Qcm94eTo6d2ViUHJvY2Vzc0lkZW50aXR5VG9rZW4gY29uc3QpOiBEZWxldGVkLgor
ICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwOgorICAgICAgICAqIFdlYlBy
b2Nlc3MvR1BVL2dyYXBoaWNzL0ltYWdlQnVmZmVyU2hhcmVhYmxlQml0bWFwQmFja2VuZC5oOgor
ICAgICAgICAoV2ViS2l0OjpJbWFnZUJ1ZmZlclNoYXJlYWJsZUJpdG1hcEJhY2tlbmQ6OnNldE93
bmVyc2hpcElkZW50aXR5KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9jb2Nv
YS9JbWFnZUJ1ZmZlclNoYXJlYWJsZU1hcHBlZElPU3VyZmFjZUJhY2tlbmQuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpJbWFnZUJ1ZmZlclNoYXJlYWJsZU1hcHBlZElPU3VyZmFjZUJhY2tlbmQ6OnNl
dE93bmVyc2hpcElkZW50aXR5KToKKyAgICAgICAgKFdlYktpdDo6SW1hZ2VCdWZmZXJTaGFyZWFi
bGVNYXBwZWRJT1N1cmZhY2VCYWNrZW5kOjpzZXRQcm9jZXNzT3duZXJzaGlwKTogRGVsZXRlZC4K
KyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9jb2NvYS9JbWFnZUJ1ZmZlclNoYXJl
YWJsZU1hcHBlZElPU3VyZmFjZUJhY2tlbmQuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL2NvY29h
L1dlYlByb2Nlc3NDb2NvYS5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6cGxhdGZv
cm1Jbml0aWFsaXplR1BVUHJvY2Vzc0Nvbm5lY3Rpb25QYXJhbWV0ZXJzKToKKwogMjAyMS0xMi0w
OSAgQnJhZHkgRWlkc29uICA8YmVpZHNvbkBhcHBsZS5jb20+CiAKICAgICAgICAgQWRkIGFiaWxp
dHkgdG8gaW5qZWN0IG1lc3NhZ2VzIGludG8gd2VicHVzaGQKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL0hlYWRlcnMuY21ha2UgYi9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCmluZGV4
IGNmYzVhY2FlZGU2MTZlOTEwMTNiZDU3YmY3NTU0YTUyMzIwZmNiMmUuLjkwNGQyODViNzhhNzBh
ZjZjMjhhNjBkNTVlYjk3MWFlODhiM2JkMzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0hl
YWRlcnMuY21ha2UKKysrIGIvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQpAQCAtMTI5MSw2
ICsxMjkxLDcgQEAgc2V0KFdlYkNvcmVfUFJJVkFURV9GUkFNRVdPUktfSEVBREVSUwogICAgIHBs
YXRmb3JtL1BvcHVwTWVudUNsaWVudC5oCiAgICAgcGxhdGZvcm0vUG9wdXBNZW51U3R5bGUuaAog
ICAgIHBsYXRmb3JtL1Byb2Nlc3NJZGVudGlmaWVyLmgKKyAgICBwbGF0Zm9ybS9Qcm9jZXNzSWRl
bnRpdHkuaAogICAgIHBsYXRmb3JtL1Byb2Nlc3NRdWFsaWZpZWQuaAogICAgIHBsYXRmb3JtL1By
b21pc2VkQXR0YWNobWVudEluZm8uaAogICAgIHBsYXRmb3JtL1B1YmxpY1N1ZmZpeC5oCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL1NvdXJj
ZXMudHh0CmluZGV4IDU3ODQ2N2FjYWY3MDEwZmYzNjhlODAwZjNkN2Q3MGI4MjEzYmI0MzIuLjRi
NWQ4MzBmYzdjNjM5NjAwODNhY2FmYzM4ODgyMmM1OTYxMmZlMGUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL1NvdXJjZXMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CkBA
IC0xODg2LDYgKzE4ODYsNyBAQCBwbGF0Zm9ybS9QbGF0Zm9ybVN0cmF0ZWdpZXMuY3BwCiBwbGF0
Zm9ybS9QbGF0Zm9ybVdoZWVsRXZlbnQuY3BwCiBwbGF0Zm9ybS9QcmV2aWV3Q29udmVydGVyLmNw
cAogcGxhdGZvcm0vUHJvY2Vzc0lkZW50aWZpZXIuY3BwCitwbGF0Zm9ybS9Qcm9jZXNzSWRlbnRp
dHkuY3BwCiBwbGF0Zm9ybS9SZWZlcnJlclBvbGljeS5jcHAKIHBsYXRmb3JtL1JlbW90ZUNvbW1h
bmRMaXN0ZW5lci5jcHAKIHBsYXRmb3JtL1J1bnRpbWVBcHBsaWNhdGlvbkNoZWNrcy5jcHAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
aiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRl
eCAyNmY5ZTk1MGU1MmNjNGQ3ZGFmOGVkZGJlMjg5ZDcwMTRmZTFjZWQwLi45ZGU5N2Q5MGE5YmUx
N2U4NTJjZWVlNmExYjllYTgyYzgxZGViNThhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0yMzg2LDYgKzIzODYsNyBAQAogCQk3
QkIzNEE0ODI1Mzc3NkNBMDAwMjlEMDggLyogR3JhcGhpY3NDb250ZXh0R0xJbWFnZUV4dHJhY3Rv
ci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0JCMzRB
NDUyNTM3NzZDNjAwMDI5RDA4IC8qIEdyYXBoaWNzQ29udGV4dEdMSW1hZ2VFeHRyYWN0b3IuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk3QkI2ODBC
QTI1QkExQkU0MDAyQjg3MzggLyogR3JhcGhpY3NDaGVja3NNYWMuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdCQjY4MEI4MjVCQTFCRTQwMDJCODczOCAv
KiBHcmFwaGljc0NoZWNrc01hYy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07CiAJCTdCRERBMzFGMjc0RkEwMjEwMDM4NjU5RSAvKiBHcmFwaGljc0NvbnRl
eHRHTENvY29hLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA3QkREQTMxRDI3NEY5REE1MDAzODY1OUUgLyogR3JhcGhpY3NDb250ZXh0R0xDb2NvYS5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTdCRERBMzRD
Mjc1QTAxMzEwMDM4NjU5RSAvKiBQcm9jZXNzSWRlbnRpdHkuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdCRERBMzQ5Mjc1QTAxMzAwMDM4NjU5RSAvKiBQ
cm9jZXNzSWRlbnRpdHkuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OwogCQk3QkU3NDI3MzgxRkE5MDZGQkI0RjBGMkMgLyogSlNTVkdHcmFwaGljc0VsZW1l
bnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk1MEM0
QzAyQkVEODkzNkY4MThFMkY5OSAvKiBKU1NWR0dyYXBoaWNzRWxlbWVudC5oICovOyB9OwogCQk3
QkZGNTlGNDI3NTc3MjY3MDA3NzNEMzkgLyogRGlzcGxheUNvbmZpZ3VyYXRpb25Nb25pdG9yLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3QkZGNTlFRjI3
NTc3MUU4MDA3NzNEMzkgLyogRGlzcGxheUNvbmZpZ3VyYXRpb25Nb25pdG9yLmggKi87IHNldHRp
bmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJN0MwMjlDNkUyNDkzQzhG
ODAwMjY4MjA0IC8qIENvbG9yVHlwZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDdDMDI5QzZEMjQ5M0M4RjgwMDI2ODIwNCAvKiBDb2xvclR5cGVzLmgg
Ki87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTExNDA3
LDYgKzExNDA4LDggQEAKIAkJN0JDRDQyREMyNzA1Qzk0OTAwRUIyMTI3IC8qIEFOR0xFVXRpbGl0
aWVzQ29jb2EuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQU5HTEVVdGlsaXRpZXNDb2NvYS5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk3QkREQTMxQzI3NEY5REE0MDAzODY1OUUgLyogR3JhcGhp
Y3NDb250ZXh0R0xDb2NvYS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0
aCA9IEdyYXBoaWNzQ29udGV4dEdMQ29jb2EubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTdCRERBMzFEMjc0RjlEQTUwMDM4NjU5RSAvKiBHcmFwaGljc0NvbnRleHRHTENvY29hLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEdyYXBoaWNzQ29udGV4dEdMQ29jb2Eu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJN0JEREEzNDkyNzVBMDEzMDAwMzg2NTlF
IC8qIFByb2Nlc3NJZGVudGl0eS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQ
cm9jZXNzSWRlbnRpdHkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJN0JEREEzNEIy
NzVBMDEzMDAwMzg2NTlFIC8qIFByb2Nlc3NJZGVudGl0eS5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBQcm9jZXNzSWRlbnRpdHkuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk3QkU3MjY1QjI1NzYzQjhEMDBFODVEOTggLyogUmVtb3RlR3JhcGhpY3ND
b250ZXh0R0xQcm94eUJhc2UuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVtb3RlR3JhcGhpY3ND
b250ZXh0R0xQcm94eUJhc2UuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3QkZG
NTlFRjI3NTc3MUU4MDA3NzNEMzkgLyogRGlzcGxheUNvbmZpZ3VyYXRpb25Nb25pdG9yLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZXhwbGljaXRGaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmg7IGZpbGVFbmNvZGluZyA9IDQ7IHBhdGggPSBEaXNwbGF5Q29uZmlndXJhdGlvbk1vbml0
b3IuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0JGRjU5RjEyNzU3NzFFODAwNzcz
RDM5IC8qIERpc3BsYXlDb25maWd1cmF0aW9uTW9uaXRvci5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBEaXNwbGF5Q29uZmlndXJhdGlvbk1vbml0b3IuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMjk4MDQsNiArMjk4MDcsOCBAQAogCQkJCUExQURB
RjdDMjM2MEZEM0UwMDlDQjc3NiAvKiBQcmV2aWV3Q29udmVydGVyUHJvdmlkZXIuaCAqLywKIAkJ
CQk1MUY2NDVEMjFGRUNEQkM4MDBCNTRERUQgLyogUHJvY2Vzc0lkZW50aWZpZXIuY3BwICovLAog
CQkJCTUxRjY0NUQzMUZFQ0RCQzgwMEI1NERFRCAvKiBQcm9jZXNzSWRlbnRpZmllci5oICovLAor
CQkJCTdCRERBMzRCMjc1QTAxMzAwMDM4NjU5RSAvKiBQcm9jZXNzSWRlbnRpdHkuY3BwICovLAor
CQkJCTdCRERBMzQ5Mjc1QTAxMzAwMDM4NjU5RSAvKiBQcm9jZXNzSWRlbnRpdHkuaCAqLywKIAkJ
CQkxQ0M1NEFGQjI3MEY5MkRBMDA1QkY4QkUgLyogUHJvY2Vzc1F1YWxpZmllZC5oICovLAogCQkJ
CUY0N0E2MzNDMUZGNkZENTAwMDgxQjNDQyAvKiBQcm9taXNlZEF0dGFjaG1lbnRJbmZvLmggKi8s
CiAJCQkJMDA4MUZFRkQxNkIwQTI0NDAwOEFBQTdBIC8qIFB1YmxpY1N1ZmZpeC5oICovLApAQCAt
MzYzNjcsNiArMzYzNzIsNyBAQAogCQkJCUI3MUZFNkRGMTEwOTFDQjMwMERBRUY3NyAvKiBQcmlu
dENvbnRleHQuaCBpbiBIZWFkZXJzICovLAogCQkJCTZCMEEwN0YyMjFGQTRCNUMwMEQ1NzM5MSAv
KiBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTFGNjQ1RDUx
RkVDREJDRTAwQjU0REVEIC8qIFByb2Nlc3NJZGVudGlmaWVyLmggaW4gSGVhZGVycyAqLywKKwkJ
CQk3QkREQTM0QzI3NUEwMTMxMDAzODY1OUUgLyogUHJvY2Vzc0lkZW50aXR5LmggaW4gSGVhZGVy
cyAqLywKIAkJCQlBOEVBN0VCQzBBMTk0NUQwMDBBOEVGNUYgLyogUHJvY2Vzc2luZ0luc3RydWN0
aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQ0M1NEFGRTI3MEY5NkFFMDA1QkY4QkUgLyogUHJv
Y2Vzc1F1YWxpZmllZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTQyMDUwMTcyMTQxOTAxQjAwNjZF
RjNCIC8qIFByb2Nlc3NXYXJtaW5nLmggaW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL0xvZ2dpbmcuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xv
Z2dpbmcuaAppbmRleCAzZmJlNDE3YmU5ODFiNzVlNzc5ZGUyMzhmYzRiZTA1YTZkNzMwZmFhLi5k
YzBmNTA5OGI4N2YxODQ1NTI1YmUzYzBiYTQxZjc2NzViMTQwNDdmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9Mb2dnaW5nLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vTG9nZ2luZy5oCkBAIC05NCw2ICs5NCw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICBN
KFBsdWdpbnMpIFwKICAgICBNKFBvcHVwQmxvY2tpbmcpIFwKICAgICBNKFByaXZhdGVDbGlja01l
YXN1cmVtZW50KSBcCisgICAgTShQcm9jZXNzKSBcCiAgICAgTShQcm9ncmVzcykgXAogICAgIE0o
UmVtb3RlSW5zcGVjdG9yKSBcCiAgICAgTShSZXF1ZXN0QW5pbWF0aW9uRnJhbWUpIFwKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Byb2Nlc3NJZGVudGl0eS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9Qcm9jZXNzSWRlbnRpdHkuY3BwCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmRlOGQz
MmFiNGVlMmEwMDJiYzVkMDYxMzIwNzdjNjY4ODRiZjgwMzkKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Qcm9jZXNzSWRlbnRpdHkuY3BwCkBAIC0wLDAgKzEsNjUg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAq
IENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBP
UiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
CisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVk
ZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiUHJvY2Vzc0lkZW50aXR5LmgiCisKKyNpbmNsdWRlICJM
b2dnaW5nLmgiCisKKyNpZiBIQVZFKFRBU0tfSURFTlRJVFlfVE9LRU4pCisjaW5jbHVkZSA8bWFj
aC9tYWNoLmg+CisjZW5kaWYKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitQcm9jZXNzSWRlbnRp
dHk6OlByb2Nlc3NJZGVudGl0eShDdXJyZW50UHJvY2Vzc1RhZykKK3sKKyNpZiBIQVZFKFRBU0tf
SURFTlRJVFlfVE9LRU4pCisgICAgdGFza19pZF90b2tlbl90IGlkZW50aXR5VG9rZW47CisgICAg
a2Vybl9yZXR1cm5fdCBrciA9IHRhc2tfY3JlYXRlX2lkZW50aXR5X3Rva2VuKG1hY2hfdGFza19z
ZWxmKCksICZpZGVudGl0eVRva2VuKTsKKyAgICBpZiAoa3IgPT0gS0VSTl9TVUNDRVNTKQorICAg
ICAgICBtX3Rhc2tJZFRva2VuID0gTWFjaFNlbmRSaWdodDo6YWRvcHQoaWRlbnRpdHlUb2tlbik7
CisgICAgZWxzZQorICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihQcm9jZXNzLCAidGFza19jcmVh
dGVfaWRlbnRpdHlfdG9rZW4oKSBmYWlsZWQ6ICV7cHJpdmF0ZX1zICgleCkiLCBtYWNoX2Vycm9y
X3N0cmluZyhrciksIGtyKTsKKyNlbmRpZgorfQorCitQcm9jZXNzSWRlbnRpdHk6Om9wZXJhdG9y
IGJvb2woKSBjb25zdAoreworI2lmIEhBVkUoVEFTS19JREVOVElUWV9UT0tFTikKKyAgICByZXR1
cm4gc3RhdGljX2Nhc3Q8Ym9vbD4obV90YXNrSWRUb2tlbik7CisjZWxzZQorICAgIHJldHVybiBm
YWxzZTsKKyNlbmRpZgorfQorCisjaWYgSEFWRShUQVNLX0lERU5USVRZX1RPS0VOKQorUHJvY2Vz
c0lkZW50aXR5OjpQcm9jZXNzSWRlbnRpdHkoTWFjaFNlbmRSaWdodCYmIHRhc2tJZFRva2VuKQor
ICAgIDogbV90YXNrSWRUb2tlbihXVEZNb3ZlKHRhc2tJZFRva2VuKSkKK3sKK30KKyNlbmRpZgor
Cit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Qcm9jZXNzSWRlbnRpdHku
aCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Byb2Nlc3NJZGVudGl0eS5oCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
Ljk1MmU1NjQ4ZWFiNTA1Njc3NzlhYmIwNTBlY2ZmMjUwMGZkMjU1ZGMKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Qcm9jZXNzSWRlbnRpdHkuaApAQCAtMCwwICsx
LDkxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
CisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklU
UzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3By
YWdtYSBvbmNlCisKKyNpbmNsdWRlIDxvcHRpb25hbD4KKworI2lmIEhBVkUoVEFTS19JREVOVElU
WV9UT0tFTikKKyNpbmNsdWRlIDx3dGYvTWFjaFNlbmRSaWdodC5oPgorI2Vsc2UKKyNpbmNsdWRl
IDx2YXJpYW50PgorI2VuZGlmCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworLy8gT2JqZWN0IHRv
IGFjY2VzcyBwcm9vZiBvZiBwcm9jZXNzIGlkZW50aXR5LgorLy8gUHJvY2Vzc0lkZW50aWZpZXIg
aWRlbnRpZmllcyBhIHByb2Nlc3MuCisvLyBQcm9jZXNzSWRlbnRpdHkgZ3JhbnRzIGFjY2VzcyB0
byB0aGUgaWRlbnRpdHkuCisvLyBFbXB0eSBQcm9jZXNzSWRlbnRpdHkgZG9lcyBub3QgZG8gYW55
dGhpbmcuCitjbGFzcyBQcm9jZXNzSWRlbnRpdHkgeworcHVibGljOgorICAgIC8vIENyZWF0ZXMg
YW4gcHJvY2VzcyBpZGVudGl0eSBmb3IgY3VycmVudCBwcm9jZXNzIG9yIGVtcHR5IG9uIGVycm9y
LgorICAgIGVudW0gQ3VycmVudFByb2Nlc3NUYWcgeyBDdXJyZW50UHJvY2VzcyB9OworICAgIFdF
QkNPUkVfRVhQT1JUIGV4cGxpY2l0IFByb2Nlc3NJZGVudGl0eShDdXJyZW50UHJvY2Vzc1RhZyk7
CisKKyAgICAvLyBDcmVhdGVzIGFuIGVtcHR5IHByb2Nlc3MgaWRlbnRpdHkgdGhhdCBkb2VzIG5v
dCBncmFudCBhbnkgYWNjZXNzLgorICAgIFByb2Nlc3NJZGVudGl0eSgpID0gZGVmYXVsdDsKKwor
ICAgIC8vIFJldHVybnMgdHJ1ZSBmb3IgYSBwcm9jZXNzIGlkZW50aXR5IG9yIGZhbHNlIG9uIGVt
cHR5IGlkZW50aXR5LgorICAgIFdFQkNPUkVfRVhQT1JUIG9wZXJhdG9yIGJvb2woKSBjb25zdDsK
KworI2lmIEhBVkUoVEFTS19JREVOVElUWV9UT0tFTikKKyAgICB0YXNrX2lkX3Rva2VuX3QgdGFz
a0lkVG9rZW4oKSBjb25zdCB7IHJldHVybiBtX3Rhc2tJZFRva2VuLnNlbmRSaWdodCgpOyB9Cisj
ZW5kaWYKKworICAgIHRlbXBsYXRlPHR5cGVuYW1lIEVuY29kZXI+IHZvaWQgZW5jb2RlKEVuY29k
ZXImKSBjb25zdDsKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBEZWNvZGVyPiBzdGF0aWMgc3RkOjpv
cHRpb25hbDxQcm9jZXNzSWRlbnRpdHk+IGRlY29kZShEZWNvZGVyJik7CisKK3ByaXZhdGU6Cisj
aWYgSEFWRShUQVNLX0lERU5USVRZX1RPS0VOKQorICAgIFdFQkNPUkVfRVhQT1JUIFByb2Nlc3NJ
ZGVudGl0eShNYWNoU2VuZFJpZ2h0JiYgdGFza0lkVG9rZW4pOworICAgIE1hY2hTZW5kUmlnaHQg
bV90YXNrSWRUb2tlbjsKKyNlbmRpZgorfTsKKwordGVtcGxhdGU8dHlwZW5hbWUgRW5jb2Rlcj4g
dm9pZCBQcm9jZXNzSWRlbnRpdHk6OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAorewor
I2lmIEhBVkUoVEFTS19JREVOVElUWV9UT0tFTikKKyAgICBlbmNvZGVyIDw8IG1fdGFza0lkVG9r
ZW47CisjZWxzZQorICAgIFVOVVNFRF9QQVJBTShlbmNvZGVyKTsKKyNlbmRpZgorfQorCit0ZW1w
bGF0ZTx0eXBlbmFtZSBEZWNvZGVyPiBzdGQ6Om9wdGlvbmFsPFByb2Nlc3NJZGVudGl0eT4gUHJv
Y2Vzc0lkZW50aXR5OjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKK3sKKyNpZiBIQVZFKFRBU0tf
SURFTlRJVFlfVE9LRU4pCisgICAgc3RkOjpvcHRpb25hbDxNYWNoU2VuZFJpZ2h0PiBpZGVudGl0
eVNlbmRSaWdodDsKKyAgICBkZWNvZGVyID4+IGlkZW50aXR5U2VuZFJpZ2h0OworICAgIGlmIChp
ZGVudGl0eVNlbmRSaWdodCkKKyAgICAgICAgcmV0dXJuIFByb2Nlc3NJZGVudGl0eSB7IFdURk1v
dmUoKmlkZW50aXR5U2VuZFJpZ2h0KSB9OworICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisjZWxz
ZQorICAgIFVOVVNFRF9QQVJBTShkZWNvZGVyKTsKKyAgICByZXR1cm4gUHJvY2Vzc0lkZW50aXR5
IHsgfTsKKyNlbmRpZgorfQorCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9SZW1vdGVWaWRlb1NhbXBsZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvUmVtb3RlVmlkZW9TYW1wbGUuaAppbmRleCBhNjE3MGIzMjhmYzQ0YWNlNjkzZGNk
YjM1ZWU0ZDNjZTY4NzMzOGExLi4wODFlMjM1NjVhY2M0ODQwYTgwNGM3ZDA3NGU2ZGYyMDU5ODM5
ZjE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9SZW1vdGVW
aWRlb1NhbXBsZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1JlbW90
ZVZpZGVvU2FtcGxlLmgKQEAgLTM3LDYgKzM3LDggQEAgdHlwZWRlZiBzdHJ1Y3QgX19DVkJ1ZmZl
ciogQ1ZQaXhlbEJ1ZmZlclJlZjsKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCitjbGFzcyBQcm9j
ZXNzSWRlbnRpdHk7CisKIGNsYXNzIFJlbW90ZVZpZGVvU2FtcGxlIHsKIHB1YmxpYzoKICAgICBS
ZW1vdGVWaWRlb1NhbXBsZSgpID0gZGVmYXVsdDsKQEAgLTQ4LDkgKzUwLDcgQEAgcHVibGljOgog
ICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8UmVtb3RlVmlkZW9TYW1w
bGU+IGNyZWF0ZShSZXRhaW5QdHI8Q1ZQaXhlbEJ1ZmZlclJlZj4mJiwgTWVkaWFUaW1lJiYgcHJl
c2VudGF0aW9uVGltZSwgTWVkaWFTYW1wbGU6OlZpZGVvUm90YXRpb24gPSBNZWRpYVNhbXBsZTo6
VmlkZW9Sb3RhdGlvbjo6Tm9uZSk7CiAgICAgV0VCQ09SRV9FWFBPUlQgSU9TdXJmYWNlUmVmIHN1
cmZhY2UoKSBjb25zdDsKIAotI2lmIEhBVkUoSU9TVVJGQUNFX1NFVF9PV05FUlNISVBfSURFTlRJ
VFkpCi0gICAgdm9pZCBzZXRPd25lcnNoaXBJZGVudGl0eSh0YXNrX2lkX3Rva2VuX3QgbmV3T3du
ZXIpOwotI2VuZGlmCisgICAgdm9pZCBzZXRPd25lcnNoaXBJZGVudGl0eShjb25zdCBQcm9jZXNz
SWRlbnRpdHkmKTsKIAogICAgIGNvbnN0IE1lZGlhVGltZSYgdGltZSgpIGNvbnN0IHsgcmV0dXJu
IG1fdGltZTsgfQogICAgIHVpbnQzMl90IHZpZGVvRm9ybWF0KCkgY29uc3QgeyByZXR1cm4gbV92
aWRlb0Zvcm1hdDsgfQpAQCAtMTE5LDEzICsxMTksMTEgQEAgcHJpdmF0ZToKICAgICBib29sIG1f
bWlycm9yZWQgeyBmYWxzZSB9OwogfTsKIAotI2lmIEhBVkUoSU9TVVJGQUNFX1NFVF9PV05FUlNI
SVBfSURFTlRJVFkpCi1pbmxpbmUgdm9pZCBSZW1vdGVWaWRlb1NhbXBsZTo6c2V0T3duZXJzaGlw
SWRlbnRpdHkodGFza19pZF90b2tlbl90IG5ld093bmVyKQoraW5saW5lIHZvaWQgUmVtb3RlVmlk
ZW9TYW1wbGU6OnNldE93bmVyc2hpcElkZW50aXR5KGNvbnN0IFByb2Nlc3NJZGVudGl0eSYgcmVz
b3VyY2VPd25lcikKIHsKICAgICBpZiAobV9pb1N1cmZhY2UpCi0gICAgICAgIG1faW9TdXJmYWNl
LT5zZXRPd25lcnNoaXBJZGVudGl0eShuZXdPd25lcik7CisgICAgICAgIG1faW9TdXJmYWNlLT5z
ZXRPd25lcnNoaXBJZGVudGl0eShyZXNvdXJjZU93bmVyKTsKIH0KLSNlbmRpZgogCiB9CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2FuZ2xlL0dyYXBoaWNz
Q29udGV4dEdMQU5HTEUuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2FuZ2xl
L0dyYXBoaWNzQ29udGV4dEdMQU5HTEUuaAppbmRleCA0M2Q1ZDI5MGRkNjgyY2E1OTY1NjAxMTBh
NjZhNWE3ZGE4Zjg1MmEwLi45NzRlYmIzNTFmYzYzZDM4NGZkNGE3Yzk5NzlhZjBkMjY0NTgzOWMw
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hbmdsZS9HcmFw
aGljc0NvbnRleHRHTEFOR0xFLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvYW5nbGUvR3JhcGhpY3NDb250ZXh0R0xBTkdMRS5oCkBAIC0zNiw2ICszNiw3IEBACiAjaWYg
UExBVEZPUk0oQ09DT0EpCiAjaW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0R0xJT1N1cmZhY2VTd2Fw
Q2hhaW4uaCIKICNpbmNsdWRlICJJT1N1cmZhY2UuaCIKKyNpbmNsdWRlICJQcm9jZXNzSWRlbnRp
dHkuaCIKICNlbmRpZgogCiAKQEAgLTQyNyw2ICs0MjgsNyBAQCBwcm90ZWN0ZWQ6CiAgICAgc3Rk
Ojp1bmlxdWVfcHRyPEV4dGVuc2lvbnNHTEFOR0xFPiBtX2V4dGVuc2lvbnM7CiAKICNpZiBQTEFU
Rk9STShDT0NPQSkKKyAgICAvLyBGSVhNRTogTW92ZSB0aGVzZSB0byBHcmFwaGljc0NvbnRleHRH
TENvY29hLgogICAgIEdyYXBoaWNzQ29udGV4dEdMSU9TdXJmYWNlU3dhcENoYWluIG1fc3dhcENo
YWluOwogICAgIEVHTERpc3BsYXkgbV9kaXNwbGF5T2JqIHsgbnVsbHB0ciB9OwogICAgIFBsYXRm
b3JtR3JhcGhpY3NDb250ZXh0R0wgbV9jb250ZXh0T2JqIHsgbnVsbHB0ciB9OwpAQCAtNDM2LDYg
KzQzOCw3IEBAIHByb3RlY3RlZDoKICAgICAvLyBXaGVuIHByZXNlcnZlRHJhd2luZ0J1ZmZlciA9
PSB0cnVlLCB0aGlzIGlzIGJsaXR0ZWQgdG8gZHVyaW5nIGRpc3BsYXkgcHJlcGFyZS4KICAgICBz
dGQ6OnVuaXF1ZV9wdHI8SU9TdXJmYWNlPiBtX2Rpc3BsYXlCdWZmZXJCYWNraW5nOwogICAgIHZv
aWQqIG1fZGlzcGxheUJ1ZmZlclBidWZmZXIgeyBudWxscHRyIH07CisgICAgUHJvY2Vzc0lkZW50
aXR5IG1fcmVzb3VyY2VPd25lcjsKICNlbmRpZgogI2lmIFVTRShDT09SRElOQVRFRF9HUkFQSElD
UykKICAgICBHQ0dMdWludCBtX2NvbXBvc2l0b3JUZXh0dXJlIHsgMCB9OwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvR3JhcGhpY3NDb250ZXh0R0xD
b2NvYS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvR3JhcGhpY3ND
b250ZXh0R0xDb2NvYS5oCmluZGV4IGE2NDhmY2QyZWM0ZjBiOWI1MWUzMDIzNjllMDEyNDliNTJk
OWI0ZTQuLjkxZTY0NzA4MDNhNTQ4YzYxYjk1ODY3NzRiY2E5NTUxNWQ5NWRkODggMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0dyYXBoaWNzQ29udGV4
dEdMQ29jb2EuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9H
cmFwaGljc0NvbnRleHRHTENvY29hLmgKQEAgLTQyLDkgKzQyLDExIEBAIGNsYXNzIEdyYXBoaWNz
Q29udGV4dEdMQ1ZDb2NvYTsKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCitjbGFzcyBQcm9jZXNz
SWRlbnRpdHk7CisKIGNsYXNzIFdFQkNPUkVfRVhQT1JUIEdyYXBoaWNzQ29udGV4dEdMQ29jb2Eg
OiBwdWJsaWMgR3JhcGhpY3NDb250ZXh0R0xBTkdMRSB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJl
ZlB0cjxHcmFwaGljc0NvbnRleHRHTENvY29hPiBjcmVhdGUoV2ViQ29yZTo6R3JhcGhpY3NDb250
ZXh0R0xBdHRyaWJ1dGVzJiYpOworICAgIHN0YXRpYyBSZWZQdHI8R3JhcGhpY3NDb250ZXh0R0xD
b2NvYT4gY3JlYXRlKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dEdMQXR0cmlidXRlcyYmLCBQcm9j
ZXNzSWRlbnRpdHkmJiByZXNvdXJjZU93bmVyKTsKICAgICB+R3JhcGhpY3NDb250ZXh0R0xDb2Nv
YSgpOwogICAgIElPU3VyZmFjZSogZGlzcGxheUJ1ZmZlcigpOwogICAgIHZvaWQgbWFya0Rpc3Bs
YXlCdWZmZXJJblVzZSgpOwpAQCAtNzYsOSArNzgsOCBAQCBwdWJsaWM6CiAgICAgdm9pZCB1cGRh
dGVDb250ZXh0T25EaXNwbGF5UmVjb25maWd1cmF0aW9uKCk7CiAjZW5kaWYKIHByb3RlY3RlZDoK
LSAgICBHcmFwaGljc0NvbnRleHRHTENvY29hKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dEdMQXR0
cmlidXRlcyYmKTsKKyAgICBHcmFwaGljc0NvbnRleHRHTENvY29hKFdlYkNvcmU6OkdyYXBoaWNz
Q29udGV4dEdMQXR0cmlidXRlcyYmLCBQcm9jZXNzSWRlbnRpdHkmJiByZXNvdXJjZU93bmVyKTsK
ICAgICBib29sIGlzVmFsaWQoKSBjb25zdDsKLQogI2lmIEVOQUJMRShWSURFTykKICAgICBzdGQ6
OnVuaXF1ZV9wdHI8R3JhcGhpY3NDb250ZXh0R0xDVkNvY29hPiBtX2N2OwogI2VuZGlmCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9HcmFwaGljc0Nv
bnRleHRHTENvY29hLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2Ev
R3JhcGhpY3NDb250ZXh0R0xDb2NvYS5tbQppbmRleCA1YWYzNWNjMzhhOGIyNzJmODgxNmZmZWJh
YzNiZDczN2NiMDUwZDJlLi45YWIyZDc0NDEwYTA2YmMwZGU2NDE1MGU4ZTEyMDNlMDUzYWQ1OTRi
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9HcmFw
aGljc0NvbnRleHRHTENvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2NvY29hL0dyYXBoaWNzQ29udGV4dEdMQ29jb2EubW0KQEAgLTM1LDYgKzM1LDcgQEAKICNp
bXBvcnQgIkdyYXBoaWNzQ29udGV4dEdMSU9TdXJmYWNlU3dhcENoYWluLmgiCiAjaW1wb3J0ICJH
cmFwaGljc0NvbnRleHRHTE9wZW5HTE1hbmFnZXIuaCIKICNpbXBvcnQgIkxvZ2dpbmcuaCIKKyNp
bXBvcnQgIlByb2Nlc3NJZGVudGl0eS5oIgogI2ltcG9ydCAiUnVudGltZUFwcGxpY2F0aW9uQ2hl
Y2tzLmgiCiAjaW1wb3J0IDxDb3JlR3JhcGhpY3MvQ0dCaXRtYXBDb250ZXh0Lmg+CiAjaW1wb3J0
IDxNZXRhbC9NZXRhbC5oPgpAQCAtMTkyLDE5ICsxOTMsMjIgQEAgc3RhdGljIGJvb2wgbmVlZHNF
QUdMT25NYWMoKQogfQogI2VuZGlmCiAKLVJlZlB0cjxHcmFwaGljc0NvbnRleHRHTENvY29hPiBH
cmFwaGljc0NvbnRleHRHTENvY29hOjpjcmVhdGUoR3JhcGhpY3NDb250ZXh0R0xBdHRyaWJ1dGVz
JiYgYXR0cmlidXRlcykKK1JlZlB0cjxHcmFwaGljc0NvbnRleHRHTENvY29hPiBHcmFwaGljc0Nv
bnRleHRHTENvY29hOjpjcmVhdGUoR3JhcGhpY3NDb250ZXh0R0xBdHRyaWJ1dGVzJiYgYXR0cmli
dXRlcywgUHJvY2Vzc0lkZW50aXR5JiYgcmVzb3VyY2VPd25lcikKIHsKLSAgICBhdXRvIGNvbnRl
eHQgPSBhZG9wdFJlZigqbmV3IEdyYXBoaWNzQ29udGV4dEdMQ29jb2EoV1RGTW92ZShhdHRyaWJ1
dGVzKSkpOworICAgIGF1dG8gY29udGV4dCA9IGFkb3B0UmVmKCpuZXcgR3JhcGhpY3NDb250ZXh0
R0xDb2NvYShXVEZNb3ZlKGF0dHJpYnV0ZXMpLCBXVEZNb3ZlKHJlc291cmNlT3duZXIpKSk7CiAg
ICAgaWYgKCFjb250ZXh0LT5pc1ZhbGlkKCkpCiAgICAgICAgIHJldHVybiBudWxscHRyOwogICAg
IHJldHVybiBjb250ZXh0OwogfQogCi1HcmFwaGljc0NvbnRleHRHTENvY29hOjpHcmFwaGljc0Nv
bnRleHRHTENvY29hKEdyYXBoaWNzQ29udGV4dEdMQXR0cmlidXRlcyYmIGNyZWF0aW9uQXR0cmli
dXRlcykKK0dyYXBoaWNzQ29udGV4dEdMQ29jb2E6OkdyYXBoaWNzQ29udGV4dEdMQ29jb2EoR3Jh
cGhpY3NDb250ZXh0R0xBdHRyaWJ1dGVzJiYgY3JlYXRpb25BdHRyaWJ1dGVzLCBQcm9jZXNzSWRl
bnRpdHkmJiByZXNvdXJjZU93bmVyKQogICAgIDogR3JhcGhpY3NDb250ZXh0R0xBTkdMRShXVEZN
b3ZlKGNyZWF0aW9uQXR0cmlidXRlcykpCiB7CiAgICAgaWYgKCFpc1ZhbGlkKCkpCiAgICAgICAg
IHJldHVybjsKKyAgICAvLyBGSVhNRTogTW92ZSB0aGlzIHRvIGluaXRpYWxpemVyIGxpc3Qgb25j
ZSBtX3Jlc291cmNlT3duZXIgbW92ZXMgdG8gR3JhcGhpY3NDb250ZXh0R0xDb2NvYS4KKyAgICBt
X3Jlc291cmNlT3duZXIgPSBXVEZNb3ZlKHJlc291cmNlT3duZXIpOworCiAjaWYgUExBVEZPUk0o
TUFDKQogICAgIGF1dG8gYXR0cmlidXRlcyA9IGNvbnRleHRBdHRyaWJ1dGVzKCk7CiAgICAgaWYg
KCFhdHRyaWJ1dGVzLnVzZU1ldGFsICYmIGF0dHJpYnV0ZXMuZWZmZWN0aXZlUG93ZXJQcmVmZXJl
bmNlKCkgPT0gR3JhcGhpY3NDb250ZXh0R0xQb3dlclByZWZlcmVuY2U6OkhpZ2hQZXJmb3JtYW5j
ZSkKQEAgLTU1Nyw3ICs1NjEsOCBAQCBib29sIEdyYXBoaWNzQ29udGV4dEdMQU5HTEU6OmFsbG9j
YXRlQW5kQmluZERpc3BsYXlCdWZmZXJCYWNraW5nKCkKICAgICBhdXRvIGJhY2tpbmcgPSBJT1N1
cmZhY2U6OmNyZWF0ZShnZXRJbnRlcm5hbEZyYW1lYnVmZmVyU2l6ZSgpLCBEZXN0aW5hdGlvbkNv
bG9yU3BhY2U6OlNSR0IoKSk7CiAgICAgaWYgKCFiYWNraW5nKQogICAgICAgICByZXR1cm4gZmFs
c2U7Ci0KKyAgICBpZiAobV9yZXNvdXJjZU93bmVyKQorICAgICAgICBiYWNraW5nLT5zZXRPd25l
cnNoaXBJZGVudGl0eShtX3Jlc291cmNlT3duZXIpOwogICAgIGJhY2tpbmctPm1pZ3JhdGVDb2xv
clNwYWNlVG9Qcm9wZXJ0aWVzKCk7CiAKICAgICBjb25zdCBib29sIHVzaW5nQWxwaGEgPSBjb250
ZXh0QXR0cmlidXRlcygpLmFscGhhOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY29jb2EvSU9TdXJmYWNlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jb2NvYS9JT1N1cmZhY2UuaAppbmRleCA1NjUyNDc4MjJkYmEyOWY3NjAwYjk0MDdl
NmY0YWNiOGMxYTA2YWFjLi4xZTljNzMyOGRkYzc1NmJjNDZlMjhmMWE1ZWE0YWY1NDNjNGFhNmJm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9JT1N1
cmZhY2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9JT1N1
cmZhY2UuaApAQCAtNDYsNiArNDYsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBHcmFw
aGljc0NvbnRleHQ7CiBjbGFzcyBIb3N0V2luZG93OwogY2xhc3MgSW1hZ2VCdWZmZXI7CitjbGFz
cyBQcm9jZXNzSWRlbnRpdHk7CiAKIGVudW0gY2xhc3MgUGl4ZWxGb3JtYXQgOiB1aW50OF90Owog
ZW51bSBjbGFzcyBWb2xhdGlsaXR5U3RhdGUgOiB1aW50OF90OwpAQCAtMTU5LDkgKzE2MCw3IEBA
IHB1YmxpYzoKICAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgdm9pZCBjb252ZXJ0VG9Gb3JtYXQo
c3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OklPU3VyZmFjZT4mJiBpblN1cmZhY2UsIEZvcm1hdCwg
RnVuY3Rpb248dm9pZChzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6SU9TdXJmYWNlPik+JiYpOwog
I2VuZGlmIC8vIEhBVkUoSU9TVVJGQUNFX0FDQ0VMRVJBVE9SKQogCi0jaWYgSEFWRShJT1NVUkZB
Q0VfU0VUX09XTkVSU0hJUF9JREVOVElUWSkKLSAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldE93
bmVyc2hpcElkZW50aXR5KHRhc2tfaWRfdG9rZW5fdCBuZXdPd25lcik7Ci0jZW5kaWYKKyAgICBX
RUJDT1JFX0VYUE9SVCB2b2lkIHNldE93bmVyc2hpcElkZW50aXR5KGNvbnN0IFByb2Nlc3NJZGVu
dGl0eSYpOwogCiAgICAgdm9pZCBtaWdyYXRlQ29sb3JTcGFjZVRvUHJvcGVydGllcygpOwogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9JT1N1cmZh
Y2UubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9JT1N1cmZhY2Uu
bW0KaW5kZXggMDExMTY1Y2UxMWFiY2U2NzVjNGI0N2JmOTE1ZDRjODFlNmNlZTk5NS4uMDFjMzJi
ODIxNTk1NGE5YzI1NzBhYjMxZmQzNDlhYzMyNDJkMzViZCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvSU9TdXJmYWNlLm1tCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0lPU3VyZmFjZS5tbQpAQCAtMzQsNiArMzQs
NyBAQAogI2ltcG9ydCAiSW1hZ2VCdWZmZXIuaCIKICNpbXBvcnQgIkxvZ2dpbmcuaCIKICNpbXBv
cnQgIlBsYXRmb3JtU2NyZWVuLmgiCisjaW1wb3J0ICJQcm9jZXNzSWRlbnRpdHkuaCIKICNpbXBv
cnQgPHBhbC9zcGkvY2cvQ29yZUdyYXBoaWNzU1BJLmg+CiAjaW1wb3J0IDx3dGYvQXNzZXJ0aW9u
cy5oPgogI2ltcG9ydCA8d3RmL01hY2hTZW5kUmlnaHQuaD4KQEAgLTQ4NCwxNCArNDg1LDE4IEBA
IHZvaWQgSU9TdXJmYWNlOjpjb252ZXJ0VG9Gb3JtYXQoc3RkOjp1bmlxdWVfcHRyPElPU3VyZmFj
ZT4mJiBpblN1cmZhY2UsIEZvcm1hdCBmCiAKICNlbmRpZiAvLyBIQVZFKElPU1VSRkFDRV9BQ0NF
TEVSQVRPUikKIAotI2lmIEhBVkUoSU9TVVJGQUNFX1NFVF9PV05FUlNISVBfSURFTlRJVFkpCi12
b2lkIElPU3VyZmFjZTo6c2V0T3duZXJzaGlwSWRlbnRpdHkodGFza19pZF90b2tlbl90IG5ld093
bmVyKQordm9pZCBJT1N1cmZhY2U6OnNldE93bmVyc2hpcElkZW50aXR5KGNvbnN0IFByb2Nlc3NJ
ZGVudGl0eSYgcmVzb3VyY2VPd25lcikKIHsKLSAgICBhdXRvIHJlc3VsdCA9IElPU3VyZmFjZVNl
dE93bmVyc2hpcElkZW50aXR5KG1fc3VyZmFjZS5nZXQoKSwgbmV3T3duZXIsIGtJT1N1cmZhY2VN
ZW1vcnlMZWRnZXJUYWdHcmFwaGljcywgMCk7CisjaWYgSEFWRShJT1NVUkZBQ0VfU0VUX09XTkVS
U0hJUF9JREVOVElUWSkgJiYgSEFWRShUQVNLX0lERU5USVRZX1RPS0VOKQorICAgIEFTU0VSVChy
ZXNvdXJjZU93bmVyKTsKKyAgICB0YXNrX2lkX3Rva2VuX3Qgb3duZXJUYXNrSWRUb2tlbiA9IHJl
c291cmNlT3duZXIudGFza0lkVG9rZW4oKTsKKyAgICBhdXRvIHJlc3VsdCA9IElPU3VyZmFjZVNl
dE93bmVyc2hpcElkZW50aXR5KG1fc3VyZmFjZS5nZXQoKSwgb3duZXJUYXNrSWRUb2tlbiwga0lP
U3VyZmFjZU1lbW9yeUxlZGdlclRhZ0dyYXBoaWNzLCAwKTsKICAgICBpZiAocmVzdWx0ICE9IGtJ
T1JldHVyblN1Y2Nlc3MpCi0gICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKElPU3VyZmFjZSwgIklP
U3VyZmFjZTo6c2V0T3duZXJzaGlwSWRlbnRpdHk6IEZhaWxlZCB0byBjbGFpbSBvd25lcnNoaXAg
b2YgSU9TdXJmYWNlICVwLCBuZXdPd25lcjogJWQsIGVycm9yOiAlZCIsIG1fc3VyZmFjZS5nZXQo
KSwgKGludCluZXdPd25lciwgcmVzdWx0KTsKLX0KKyAgICAgICAgUkVMRUFTRV9MT0dfRVJST1Io
SU9TdXJmYWNlLCAiSU9TdXJmYWNlOjpzZXRPd25lcnNoaXBJZGVudGl0eTogRmFpbGVkIHRvIGNs
YWltIG93bmVyc2hpcCBvZiBJT1N1cmZhY2UgJXAsIHRhc2sgaWQgdG9rZW46ICVkLCBlcnJvcjog
JWQiLCBtX3N1cmZhY2UuZ2V0KCksIChpbnQpb3duZXJUYXNrSWRUb2tlbiwgcmVzdWx0KTsKKyNl
bHNlCisgICAgVU5VU0VEX1BBUkFNKHJlc291cmNlT3duZXIpOwogI2VuZGlmCit9CiAKIHZvaWQg
SU9TdXJmYWNlOjptaWdyYXRlQ29sb3JTcGFjZVRvUHJvcGVydGllcygpCiB7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9XZWJQcm9jZXNzR3JhcGhp
Y3NDb250ZXh0R0xDb2NvYS5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nv
Y29hL1dlYlByb2Nlc3NHcmFwaGljc0NvbnRleHRHTENvY29hLm1tCmluZGV4IDI1NDI2MjMwZGZl
ZGFkMmM1ZWI5MTA0MjRhMDhhNzJlMzcxN2IyZDcuLjhkNWQyNWFiMTBiNDVlM2Y5YTZlODM4YWUx
MDk0MWU2ZmMwZTVlMzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2NvY29hL1dlYlByb2Nlc3NHcmFwaGljc0NvbnRleHRHTENvY29hLm1tCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1dlYlByb2Nlc3NHcmFwaGljc0NvbnRl
eHRHTENvY29hLm1tCkBAIC0yOSw2ICsyOSw3IEBACiAjaWYgRU5BQkxFKFdFQkdMKQogI2ltcG9y
dCAiR3JhcGhpY3NDb250ZXh0R0xDb2NvYS5oIiAvLyBOT0xJTlQKICNpbXBvcnQgIkdyYXBoaWNz
Q29udGV4dEdMT3BlbkdMTWFuYWdlci5oIgorI2ltcG9ydCAiUHJvY2Vzc0lkZW50aXR5LmgiCiAj
aW1wb3J0ICJXZWJHTExheWVyLmgiCiAjaW1wb3J0IDx3dGYvQmxvY2tPYmpDRXhjZXB0aW9ucy5o
PgogCkBAIC03Nyw3ICs3OCw3IEBAIHByaXZhdGU6CiB9OwogCiBXZWJQcm9jZXNzR3JhcGhpY3ND
b250ZXh0R0xDb2NvYTo6V2ViUHJvY2Vzc0dyYXBoaWNzQ29udGV4dEdMQ29jb2EoR3JhcGhpY3ND
b250ZXh0R0xBdHRyaWJ1dGVzJiYgYXR0cmlidXRlcykKLSAgICA6IEdyYXBoaWNzQ29udGV4dEdM
Q29jb2EoV1RGTW92ZShhdHRyaWJ1dGVzKSkKKyAgICA6IEdyYXBoaWNzQ29udGV4dEdMQ29jb2Eo
V1RGTW92ZShhdHRyaWJ1dGVzKSwgeyB9KQogICAgICwgbV93ZWJHTExheWVyKGNyZWF0ZVdlYkdM
TGF5ZXIoY29udGV4dEF0dHJpYnV0ZXMoKSkpCiB7CiAjaWYgUExBVEZPUk0oTUFDKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3Mu
Y3BwIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3Mu
Y3BwCmluZGV4IDkyYzNjYzk3Yjc2NjY0NmUwNjg0MDI4MmIxMGU4ZGYwNTI2YjYwY2UuLjJjYTkw
ZjUwYzNiMWU5YTYxYWY3MWU3NTRjNTgwZTNjN2NjNTY0Y2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvR1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L0dQVVByb2Nlc3MvR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAKQEAgLTIw
NywxMiArMjA3LDExIEBAIHByaXZhdGU6CiAgICAgICAgIG1fcHJvY2Vzcy5zdGFydENhcHR1cmlu
Z0F1ZGlvKCk7CiAgICAgfQogI2VuZGlmCi0jaWYgSEFWRShJT1NVUkZBQ0VfU0VUX09XTkVSU0hJ
UF9JREVOVElUWSkKLSAgICBzdGQ6Om9wdGlvbmFsPHRhc2tfaWRfdG9rZW5fdD4gd2ViUHJvY2Vz
c0lkZW50aXR5VG9rZW4oKSBjb25zdCBmaW5hbAorCisgICAgY29uc3QgUHJvY2Vzc0lkZW50aXR5
JiByZXNvdXJjZU93bmVyKCkgY29uc3QgZmluYWwKICAgICB7Ci0gICAgICAgIHJldHVybiBtX3By
b2Nlc3Mud2ViUHJvY2Vzc0lkZW50aXR5VG9rZW4oKTsKKyAgICAgICAgcmV0dXJuIG1fcHJvY2Vz
cy53ZWJQcm9jZXNzSWRlbnRpdHkoKTsKICAgICB9Ci0jZW5kaWYKIAogICAgIEdQVUNvbm5lY3Rp
b25Ub1dlYlByb2Nlc3MmIG1fcHJvY2VzczsKIH07CkBAIC0yMjgsOSArMjI3LDcgQEAgR1BVQ29u
bmVjdGlvblRvV2ViUHJvY2Vzczo6R1BVQ29ubmVjdGlvblRvV2ViUHJvY2VzcyhHUFVQcm9jZXNz
JiBncHVQcm9jZXNzLCBXZWIKICAgICA6IG1fY29ubmVjdGlvbihJUEM6OkNvbm5lY3Rpb246OmNy
ZWF0ZVNlcnZlckNvbm5lY3Rpb24oY29ubmVjdGlvbklkZW50aWZpZXIsICp0aGlzKSkKICAgICAs
IG1fZ3B1UHJvY2VzcyhncHVQcm9jZXNzKQogICAgICwgbV93ZWJQcm9jZXNzSWRlbnRpZmllcih3
ZWJQcm9jZXNzSWRlbnRpZmllcikKLSNpZiBIQVZFKFRBU0tfSURFTlRJVFlfVE9LRU4pCi0gICAg
LCBtX3dlYlByb2Nlc3NJZGVudGl0eVRva2VuKFdURk1vdmUocGFyYW1ldGVycy53ZWJQcm9jZXNz
SWRlbnRpdHlUb2tlbikpCi0jZW5kaWYKKyAgICAsIG1fd2ViUHJvY2Vzc0lkZW50aXR5KFdURk1v
dmUocGFyYW1ldGVycy53ZWJQcm9jZXNzSWRlbnRpdHkpKQogICAgICwgbV9yZW1vdGVNZWRpYVBs
YXllck1hbmFnZXJQcm94eShtYWtlVW5pcXVlUmVmPFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlclBy
b3h5PigqdGhpcykpCiAgICAgLCBtX3Nlc3Npb25JRChzZXNzaW9uSUQpCiAjaWYgUExBVEZPUk0o
Q09DT0EpICYmIFVTRShMSUJXRUJSVEMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVBy
b2Nlc3MvR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oIGIvU291cmNlL1dlYktpdC9HUFVQcm9j
ZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaAppbmRleCBlMzkyM2RiNTczNDgxYzhlNjlh
OWE3NjEyNjMyNzM3NzA5ZGQ5N2ZhLi5iNDU5MDdmMjU0MzhlM2Q3Yjg4ZjQ3NDZjYzQ4MDhlZjRm
NDI3Y2ZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvR1BVQ29ubmVjdGlv
blRvV2ViUHJvY2Vzcy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9HUFVDb25uZWN0
aW9uVG9XZWJQcm9jZXNzLmgKQEAgLTQxLDYgKzQxLDcgQEAKICNpbmNsdWRlIDxXZWJDb3JlL05v
d1BsYXlpbmdNYW5hZ2VyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9QYWdlSWRlbnRpZmllci5oPgog
I2luY2x1ZGUgPFdlYkNvcmUvUHJvY2Vzc0lkZW50aWZpZXIuaD4KKyNpbmNsdWRlIDxXZWJDb3Jl
L1Byb2Nlc3NJZGVudGl0eS5oPgogI2luY2x1ZGUgPHBhbC9TZXNzaW9uSUQuaD4KICNpbmNsdWRl
IDx3dGYvTG9nZ2VyLmg+CiAjaW5jbHVkZSA8d3RmL01hY2hTZW5kUmlnaHQuaD4KQEAgLTE1NSwx
MCArMTU2LDcgQEAgcHVibGljOgogICAgIHZvaWQgZGlzcGF0Y2hEaXNwbGF5V2FzUmVjb25maWd1
cmVkRm9yVGVzdGluZygpIHsgZGlzcGF0Y2hEaXNwbGF5V2FzUmVjb25maWd1cmVkKCk7IH07CiAj
ZW5kaWYKIAotI2lmIEhBVkUoVEFTS19JREVOVElUWV9UT0tFTikKLSAgICB0YXNrX2lkX3Rva2Vu
X3Qgd2ViUHJvY2Vzc0lkZW50aXR5VG9rZW4oKSBjb25zdCB7IHJldHVybiBzdGF0aWNfY2FzdDx0
YXNrX2lkX3Rva2VuX3Q+KG1fd2ViUHJvY2Vzc0lkZW50aXR5VG9rZW4uc2VuZFJpZ2h0KCkpOyB9
Ci0jZW5kaWYKLQorICAgIGNvbnN0IFdlYkNvcmU6OlByb2Nlc3NJZGVudGl0eSYgd2ViUHJvY2Vz
c0lkZW50aXR5KCkgY29uc3QgeyByZXR1cm4gbV93ZWJQcm9jZXNzSWRlbnRpdHk7IH0KICNpZiBF
TkFCTEUoRU5DUllQVEVEX01FRElBKQogICAgIFJlbW90ZUNETUZhY3RvcnlQcm94eSYgY2RtRmFj
dG9yeVByb3h5KCk7CiAjZW5kaWYKQEAgLTI4Myw5ICsyODEsNyBAQCBwcml2YXRlOgogICAgIElQ
Qzo6TWVzc2FnZVJlY2VpdmVyTWFwIG1fbWVzc2FnZVJlY2VpdmVyTWFwOwogICAgIFJlZjxHUFVQ
cm9jZXNzPiBtX2dwdVByb2Nlc3M7CiAgICAgY29uc3QgV2ViQ29yZTo6UHJvY2Vzc0lkZW50aWZp
ZXIgbV93ZWJQcm9jZXNzSWRlbnRpZmllcjsKLSNpZiBIQVZFKFRBU0tfSURFTlRJVFlfVE9LRU4p
Ci0gICAgTWFjaFNlbmRSaWdodCBtX3dlYlByb2Nlc3NJZGVudGl0eVRva2VuOwotI2VuZGlmCisg
ICAgY29uc3QgV2ViQ29yZTo6UHJvY2Vzc0lkZW50aXR5IG1fd2ViUHJvY2Vzc0lkZW50aXR5Owog
I2lmIEVOQUJMRShXRUJfQVVESU8pCiAgICAgc3RkOjp1bmlxdWVfcHRyPFJlbW90ZUF1ZGlvRGVz
dGluYXRpb25NYW5hZ2VyPiBtX3JlbW90ZUF1ZGlvRGVzdGluYXRpb25NYW5hZ2VyOwogI2VuZGlm
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlR3Jh
cGhpY3NDb250ZXh0R0xDb2NvYS5jcHAgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhp
Y3MvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xDb2NvYS5jcHAKaW5kZXggMTBhNTM2Mjk5Y2YyM2Vi
OWY4NmY1NzI3ZTg1MjM4M2NlOGEwNDAwOC4uOWQ3NjdlYzIxNjUzZTcwZWU0OThiNGU4OTNlZjNk
Nzc4YTMwMDRkYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNz
L1JlbW90ZUdyYXBoaWNzQ29udGV4dEdMQ29jb2EuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BV
UHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVHcmFwaGljc0NvbnRleHRHTENvY29hLmNwcApAQCAtMjks
NiArMjksNyBAQAogI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykgJiYgRU5BQkxFKFdFQkdMKSAmJiBQ
TEFURk9STShDT0NPQSkKIAogI2luY2x1ZGUgIkdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaCIK
KyNpbmNsdWRlIDxXZWJDb3JlL1Byb2Nlc3NJZGVudGl0eS5oPgogI2luY2x1ZGUgPHd0Zi9NYWNo
U2VuZFJpZ2h0Lmg+CiAKIG5hbWVzcGFjZSBXZWJLaXQgewpAQCAtNDUsOSArNDYsNyBAQCBwdWJs
aWM6CiAgICAgdm9pZCBwbGF0Zm9ybVdvcmtRdWV1ZUluaXRpYWxpemUoV2ViQ29yZTo6R3JhcGhp
Y3NDb250ZXh0R0xBdHRyaWJ1dGVzJiYpIGZpbmFsOwogICAgIHZvaWQgcHJlcGFyZUZvckRpc3Bs
YXkoQ29tcGxldGlvbkhhbmRsZXI8dm9pZChXVEY6Ok1hY2hTZW5kUmlnaHQmJik+JiYpIGZpbmFs
OwogcHJpdmF0ZToKLSNpZiBIQVZFKElPU1VSRkFDRV9TRVRfT1dORVJTSElQX0lERU5USVRZKQot
ICAgIHRhc2tfaWRfdG9rZW5fdCBtX3dlYlByb2Nlc3NJZGVudGl0eVRva2VuOwotI2VuZGlmCisg
ICAgY29uc3QgUHJvY2Vzc0lkZW50aXR5IG1fcmVzb3VyY2VPd25lcjsKIH07CiAKIH0KQEAgLTYx
LDkgKzYwLDcgQEAgUmVmPFJlbW90ZUdyYXBoaWNzQ29udGV4dEdMPiBSZW1vdGVHcmFwaGljc0Nv
bnRleHRHTDo6Y3JlYXRlKEdQVUNvbm5lY3Rpb25Ub1dlYlAKIAogUmVtb3RlR3JhcGhpY3NDb250
ZXh0R0xDb2NvYTo6UmVtb3RlR3JhcGhpY3NDb250ZXh0R0xDb2NvYShHUFVDb25uZWN0aW9uVG9X
ZWJQcm9jZXNzJiBncHVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLCBHcmFwaGljc0NvbnRleHRHTElk
ZW50aWZpZXIgZ3JhcGhpY3NDb250ZXh0R0xJZGVudGlmaWVyLCBSZW1vdGVSZW5kZXJpbmdCYWNr
ZW5kJiByZW5kZXJpbmdCYWNrZW5kLCBJUEM6OlN0cmVhbUNvbm5lY3Rpb25CdWZmZXImJiBzdHJl
YW0pCiAgICAgOiBSZW1vdGVHcmFwaGljc0NvbnRleHRHTChncHVDb25uZWN0aW9uVG9XZWJQcm9j
ZXNzLCBncmFwaGljc0NvbnRleHRHTElkZW50aWZpZXIsIHJlbmRlcmluZ0JhY2tlbmQsIFdURk1v
dmUoc3RyZWFtKSkKLSNpZiBIQVZFKElPU1VSRkFDRV9TRVRfT1dORVJTSElQX0lERU5USVRZKQot
ICAgICwgbV93ZWJQcm9jZXNzSWRlbnRpdHlUb2tlbihncHVDb25uZWN0aW9uVG9XZWJQcm9jZXNz
LndlYlByb2Nlc3NJZGVudGl0eVRva2VuKCkpCi0jZW5kaWYKKyAgICAsIG1fcmVzb3VyY2VPd25l
cihncHVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLndlYlByb2Nlc3NJZGVudGl0eSgpKQogewogCiB9
CkBAIC03MSw3ICs2OCw3IEBAIFJlbW90ZUdyYXBoaWNzQ29udGV4dEdMQ29jb2E6OlJlbW90ZUdy
YXBoaWNzQ29udGV4dEdMQ29jb2EoR1BVQ29ubmVjdGlvblRvV2ViUHJvCiB2b2lkIFJlbW90ZUdy
YXBoaWNzQ29udGV4dEdMQ29jb2E6OnBsYXRmb3JtV29ya1F1ZXVlSW5pdGlhbGl6ZShXZWJDb3Jl
OjpHcmFwaGljc0NvbnRleHRHTEF0dHJpYnV0ZXMmJiBhdHRyaWJ1dGVzKQogewogICAgIGFzc2Vy
dElzQ3VycmVudChtX3N0cmVhbVRocmVhZCk7Ci0gICAgbV9jb250ZXh0ID0gR3JhcGhpY3NDb250
ZXh0R0xDb2NvYTo6Y3JlYXRlKFdURk1vdmUoYXR0cmlidXRlcykpOworICAgIG1fY29udGV4dCA9
IEdyYXBoaWNzQ29udGV4dEdMQ29jb2E6OmNyZWF0ZShXVEZNb3ZlKGF0dHJpYnV0ZXMpLCBQcm9j
ZXNzSWRlbnRpdHkgeyBtX3Jlc291cmNlT3duZXIgfSk7CiB9CiAKIHZvaWQgUmVtb3RlR3JhcGhp
Y3NDb250ZXh0R0xDb2NvYTo6cHJlcGFyZUZvckRpc3BsYXkoQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZChXVEY6Ok1hY2hTZW5kUmlnaHQmJik+JiYgY29tcGxldGlvbkhhbmRsZXIpCkBAIC04MiwxMCAr
NzksNiBAQCB2b2lkIFJlbW90ZUdyYXBoaWNzQ29udGV4dEdMQ29jb2E6OnByZXBhcmVGb3JEaXNw
bGF5KENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV1RGOgogICAgIE1hY2hTZW5kUmlnaHQgc2VuZFJp
Z2h0OwogICAgIGlmIChkaXNwbGF5QnVmZmVyKSB7CiAgICAgICAgIG1fY29udGV4dC0+bWFya0Rp
c3BsYXlCdWZmZXJJblVzZSgpOwotI2lmIEhBVkUoSU9TVVJGQUNFX1NFVF9PV05FUlNISVBfSURF
TlRJVFkpCi0gICAgICAgIC8vIE1hcmsgdGhlIElPU3VyZmFjZSBhcyBiZWluZyBvd25lZCBieSB0
aGUgV2ViUHJvY2VzcyBldmVuIHRob3VnaCBpdCB3YXMgY29uc3RydWN0ZWQgYnkgdGhlIEdQVVBy
b2Nlc3Mgc28gdGhhdCBKZXRzYW0ga25vd3Mgd2hpY2ggcHJvY2VzcyB0byBraWxsLgotICAgICAg
ICBkaXNwbGF5QnVmZmVyLT5zZXRPd25lcnNoaXBJZGVudGl0eShtX3dlYlByb2Nlc3NJZGVudGl0
eVRva2VuKTsKLSNlbmRpZgogICAgICAgICBzZW5kUmlnaHQgPSBkaXNwbGF5QnVmZmVyLT5jcmVh
dGVTZW5kUmlnaHQoKTsKICAgICB9CiAgICAgY29tcGxldGlvbkhhbmRsZXIoV1RGTW92ZShzZW5k
UmlnaHQpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9S
ZW1vdGVJbWFnZUJ1ZmZlci5oIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1Jl
bW90ZUltYWdlQnVmZmVyLmgKaW5kZXggYTNkNDk0ZmU4YmY2YTE5NjQ3ZWYxOTBjOWRiNDA0MmFl
Y2U2NzIyMC4uMzViNDUyNzBiNDU4NDI0ODA5ODEwNDJkYzc1NTM0ZmJhYmFlYmYyZCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZUltYWdlQnVmZmVy
LmgKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZUltYWdlQnVm
ZmVyLmgKQEAgLTY5LDEzICs2OSwxMSBAQCBwdWJsaWM6CiAgICAgICAgICAgICBjb250ZXh0KCku
cmVzdG9yZSgpOwogICAgIH0KIAotI2lmIEhBVkUoSU9TVVJGQUNFX1NFVF9PV05FUlNISVBfSURF
TlRJVFkpCi0gICAgdm9pZCBzZXRQcm9jZXNzT3duZXJzaGlwKHRhc2tfaWRfdG9rZW5fdCBuZXdP
d25lcikKKyAgICB2b2lkIHNldE93bmVyc2hpcElkZW50aXR5KGNvbnN0IFdlYkNvcmU6OlByb2Nl
c3NJZGVudGl0eSYgcmVzb3VyY2VPd25lcikKICAgICB7CiAgICAgICAgIGlmIChtX2JhY2tlbmQp
Ci0gICAgICAgICAgICBtX2JhY2tlbmQtPnNldFByb2Nlc3NPd25lcnNoaXAobmV3T3duZXIpOwor
ICAgICAgICAgICAgbV9iYWNrZW5kLT5zZXRPd25lcnNoaXBJZGVudGl0eShyZXNvdXJjZU93bmVy
KTsKICAgICB9Ci0jZW5kaWYKIAogcHJpdmF0ZToKICAgICBmcmllbmQgY2xhc3MgUmVtb3RlUmVu
ZGVyaW5nQmFja2VuZDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFw
aGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmNwcCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vz
cy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmNwcAppbmRleCBiMGRmNTM0MzQ0OTc4
MmZhNGNlMzFiY2YzMzJkOGZjNWJjYzhiMTAyLi44ZGZiMjVkODI5MjY5NGEyZDgxMmRhY2FiOTg3
YTBjOWViZTM4ZWJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhp
Y3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9j
ZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQuY3BwCkBAIC04NSw2ICs4NSw3IEBA
IFJlbW90ZVJlbmRlcmluZ0JhY2tlbmQ6OlJlbW90ZVJlbmRlcmluZ0JhY2tlbmQoR1BVQ29ubmVj
dGlvblRvV2ViUHJvY2VzcyYgZ3B1Q29uCiAgICAgLCBtX3N0cmVhbUNvbm5lY3Rpb24oSVBDOjpT
dHJlYW1TZXJ2ZXJDb25uZWN0aW9uOjpjcmVhdGUoZ3B1Q29ubmVjdGlvblRvV2ViUHJvY2Vzcy5j
b25uZWN0aW9uKCksIFdURk1vdmUoc3RyZWFtQnVmZmVyKSwgbV93b3JrUXVldWUuZ2V0KCkpKQog
ICAgICwgbV9yZW1vdGVSZXNvdXJjZUNhY2hlKGdwdUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3Mud2Vi
UHJvY2Vzc0lkZW50aWZpZXIoKSkKICAgICAsIG1fZ3B1Q29ubmVjdGlvblRvV2ViUHJvY2Vzcyhn
cHVDb25uZWN0aW9uVG9XZWJQcm9jZXNzKQorICAgICwgbV9yZXNvdXJjZU93bmVyKGdwdUNvbm5l
Y3Rpb25Ub1dlYlByb2Nlc3Mud2ViUHJvY2Vzc0lkZW50aXR5KCkpCiAgICAgLCBtX3JlbmRlcmlu
Z0JhY2tlbmRJZGVudGlmaWVyKGNyZWF0aW9uUGFyYW1ldGVycy5pZGVudGlmaWVyKQogewogICAg
IEFTU0VSVChSdW5Mb29wOjppc01haW4oKSk7CkBAIC0xNzQsMTAgKzE3NSw5IEBAIHZvaWQgUmVt
b3RlUmVuZGVyaW5nQmFja2VuZDo6Y3JlYXRlSW1hZ2VCdWZmZXJXaXRoUXVhbGlmaWVkSWRlbnRp
Zmllcihjb25zdCBGbG9hCiAKICAgICBpZiAocmVuZGVyaW5nTW9kZSA9PSBSZW5kZXJpbmdNb2Rl
OjpBY2NlbGVyYXRlZCkgewogICAgICAgICBpZiAoYXV0byBhY2NlbGVyYXRlZEltYWdlQnVmZmVy
ID0gQWNjZWxlcmF0ZWRSZW1vdGVJbWFnZUJ1ZmZlcjo6Y3JlYXRlKGxvZ2ljYWxTaXplLCByZXNv
bHV0aW9uU2NhbGUsIGNvbG9yU3BhY2UsIHBpeGVsRm9ybWF0LCAqdGhpcywgaW1hZ2VCdWZmZXJS
ZXNvdXJjZUlkZW50aWZpZXIpKSB7Ci0jaWYgSEFWRShJT1NVUkZBQ0VfU0VUX09XTkVSU0hJUF9J
REVOVElUWSkKICAgICAgICAgICAgIC8vIE1hcmsgdGhlIElPU3VyZmFjZSBhcyBiZWluZyBvd25l
ZCBieSB0aGUgV2ViUHJvY2VzcyBldmVuIHRob3VnaCBpdCB3YXMgY29uc3RydWN0ZWQgYnkgdGhl
IEdQVVByb2Nlc3Mgc28gdGhhdCBKZXRzYW0ga25vd3Mgd2hpY2ggcHJvY2VzcyB0byBraWxsLgot
ICAgICAgICAgICAgYWNjZWxlcmF0ZWRJbWFnZUJ1ZmZlci0+c2V0UHJvY2Vzc093bmVyc2hpcCht
X2dwdUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MtPndlYlByb2Nlc3NJZGVudGl0eVRva2VuKCkpOwot
I2VuZGlmCisgICAgICAgICAgICBpZiAobV9yZXNvdXJjZU93bmVyKQorICAgICAgICAgICAgICAg
IGFjY2VsZXJhdGVkSW1hZ2VCdWZmZXItPnNldE93bmVyc2hpcElkZW50aXR5KG1fcmVzb3VyY2VP
d25lcik7CiAgICAgICAgICAgICBpbWFnZUJ1ZmZlciA9IFdURk1vdmUoYWNjZWxlcmF0ZWRJbWFn
ZUJ1ZmZlcik7CiAgICAgICAgIH0KICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQ
VVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5oIGIvU291cmNlL1dlYktp
dC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQuaAppbmRleCBlMzU3
MTVkZDE3ZmVlNjQzNDViMjI2MmQ2OGNlYmVhNGQ3NGFiOTk2Li45YTI2YzQyNGI5MTIxMTAxMThi
NDM2MTg0ZGUzMGI4ZDI4ZGQxNTIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nl
c3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
R1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmgKQEAgLTQ2LDYgKzQ2
LDcgQEAKICNpbmNsdWRlIDxXZWJDb3JlL0Rpc3BsYXlMaXN0SXRlbXMuaD4KICNpbmNsdWRlIDxX
ZWJDb3JlL0Rpc3BsYXlMaXN0UmVwbGF5ZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Byb2Nlc3NJ
ZGVudGlmaWVyLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9Qcm9jZXNzSWRlbnRpdHkuaD4KICNpbmNs
dWRlIDx3dGYvV2Vha1B0ci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC0xMzMsNiArMTM0
LDcgQEAgcHJpdmF0ZToKICAgICBSZWY8SVBDOjpTdHJlYW1TZXJ2ZXJDb25uZWN0aW9uPiBtX3N0
cmVhbUNvbm5lY3Rpb247CiAgICAgUmVtb3RlUmVzb3VyY2VDYWNoZSBtX3JlbW90ZVJlc291cmNl
Q2FjaGU7CiAgICAgUmVmPEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M+IG1fZ3B1Q29ubmVjdGlv
blRvV2ViUHJvY2VzczsKKyAgICBXZWJDb3JlOjpQcm9jZXNzSWRlbnRpdHkgbV9yZXNvdXJjZU93
bmVyOwogICAgIFJlbmRlcmluZ0JhY2tlbmRJZGVudGlmaWVyIG1fcmVuZGVyaW5nQmFja2VuZElk
ZW50aWZpZXI7CiAgICAgSVBDOjpTZW1hcGhvcmUgbV9nZXRQaXhlbEJ1ZmZlclNlbWFwaG9yZTsK
ICAgICBSZWZQdHI8U2hhcmVkTWVtb3J5PiBtX2dldFBpeGVsQnVmZmVyU2hhcmVkTWVtb3J5Owpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL3dlYnJ0Yy9MaWJXZWJSVENDb2Rl
Y3NQcm94eS5tbSBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy93ZWJydGMvTGliV2ViUlRDQ29k
ZWNzUHJveHkubW0KaW5kZXggMTMzZTI2ZTQ3NGUxZDMxOTE2M2U1NTcxOTkyZDBjMGM3MTlkZGUx
NC4uMzBmYTMwY2IzZGM5YzliNDAxZjBjNGVjZmNlMjEwODFlYzQ2ZTVjMSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9HUFVQcm9jZXNzL3dlYnJ0Yy9MaWJXZWJSVENDb2RlY3NQcm94eS5tbQor
KysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mvd2VicnRjL0xpYldlYlJUQ0NvZGVjc1Byb3h5
Lm1tCkBAIC03NiwxNSArNzYsMTAgQEAgdm9pZCBMaWJXZWJSVENDb2RlY3NQcm94eTo6Y2xvc2Uo
KQogCiBzdGF0aWMgRnVuY3Rpb248dm9pZChDVlBpeGVsQnVmZmVyUmVmIHBpeGVsQnVmZmVyLCB1
aW50MzJfdCB0aW1lU3RhbXBOcywgdWludDMyX3QgdGltZVN0YW1wKT4gY3JlYXRlRGVjb2RlckNh
bGxiYWNrKFJUQ0RlY29kZXJJZGVudGlmaWVyIGlkZW50aWZpZXIsIEdQVUNvbm5lY3Rpb25Ub1dl
YlByb2Nlc3MmIGdwdUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MpCiB7Ci0gICAgcmV0dXJuIFtjb25u
ZWN0aW9uID0gUmVmIHsgZ3B1Q29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jb25uZWN0aW9uKCkgfSwK
LSNpZiBIQVZFKElPU1VSRkFDRV9TRVRfT1dORVJTSElQX0lERU5USVRZKQotICAgICAgICB0b2tl
biA9IGdwdUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3Mud2ViUHJvY2Vzc0lkZW50aXR5VG9rZW4oKSwK
LSNlbmRpZgotICAgICAgICBpZGVudGlmaWVyXShDVlBpeGVsQnVmZmVyUmVmIHBpeGVsQnVmZmVy
LCB1aW50MzJfdCB0aW1lU3RhbXBOcywgdWludDMyX3QgdGltZVN0YW1wKSB7CisgICAgcmV0dXJu
IFtjb25uZWN0aW9uID0gUmVmIHsgZ3B1Q29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jb25uZWN0aW9u
KCkgfSwgcmVzb3VyY2VPd25lciA9IGdwdUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3Mud2ViUHJvY2Vz
c0lkZW50aXR5KCksIGlkZW50aWZpZXJdIChDVlBpeGVsQnVmZmVyUmVmIHBpeGVsQnVmZmVyLCB1
aW50MzJfdCB0aW1lU3RhbXBOcywgdWludDMyX3QgdGltZVN0YW1wKSB7CiAgICAgICAgIGlmIChh
dXRvIHNhbXBsZSA9IFdlYkNvcmU6OlJlbW90ZVZpZGVvU2FtcGxlOjpjcmVhdGUocGl4ZWxCdWZm
ZXIsIE1lZGlhVGltZSh0aW1lU3RhbXBOcywgMSkpKSB7Ci0jaWYgSEFWRShJT1NVUkZBQ0VfU0VU
X09XTkVSU0hJUF9JREVOVElUWSkKLSAgICAgICAgICAgIHNhbXBsZS0+c2V0T3duZXJzaGlwSWRl
bnRpdHkodG9rZW4pOwotI2VuZGlmCisgICAgICAgICAgICBpZiAocmVzb3VyY2VPd25lcikKKyAg
ICAgICAgICAgICAgICBzYW1wbGUtPnNldE93bmVyc2hpcElkZW50aXR5KHJlc291cmNlT3duZXIp
OwogICAgICAgICAgICAgY29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6TGliV2ViUlRDQ29kZWNz
OjpDb21wbGV0ZWREZWNvZGluZyB7IGlkZW50aWZpZXIsIHRpbWVTdGFtcCwgKnNhbXBsZSB9LCAw
KTsKICAgICAgICAgfQogICAgIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9H
UFVQcm9jZXNzQ29ubmVjdGlvblBhcmFtZXRlcnMuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0dQ
VVByb2Nlc3NDb25uZWN0aW9uUGFyYW1ldGVycy5oCmluZGV4IDA5NmZkMGUzYmE2YzdlYzExNzc4
Zjk5NGZmZDVlODY3N2UyMGZjNTYuLmVkMzA0OTViMjUyMjg2MWY3NDY0NTJmZTkwOTFiOTY1NjEx
MDY3NzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0dQVVByb2Nlc3NDb25uZWN0
aW9uUGFyYW1ldGVycy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0dQVVByb2Nlc3NDb25u
ZWN0aW9uUGFyYW1ldGVycy5oCkBAIC0yOCwxNCArMjgsMTMgQEAKICNpZiBFTkFCTEUoR1BVX1BS
T0NFU1MpCiAKICNpbmNsdWRlICJXZWJDb3JlQXJndW1lbnRDb2RlcnMuaCIKKyNpbmNsdWRlIDxX
ZWJDb3JlL1Byb2Nlc3NJZGVudGl0eS5oPgogI2luY2x1ZGUgPHd0Zi9NYWNoU2VuZFJpZ2h0Lmg+
CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCiBzdHJ1Y3QgR1BVUHJvY2Vzc0Nvbm5lY3Rpb25QYXJh
bWV0ZXJzIHsKLSNpZiBIQVZFKFRBU0tfSURFTlRJVFlfVE9LRU4pCi0gICAgTWFjaFNlbmRSaWdo
dCB3ZWJQcm9jZXNzSWRlbnRpdHlUb2tlbjsKLSNlbmRpZgorICAgIFdlYkNvcmU6OlByb2Nlc3NJ
ZGVudGl0eSB3ZWJQcm9jZXNzSWRlbnRpdHk7CiAgICAgVmVjdG9yPFN0cmluZz4gb3ZlcnJpZGVM
YW5ndWFnZXM7CiAjaWYgRU5BQkxFKElQQ19URVNUSU5HX0FQSSkKICAgICBib29sIGlnbm9yZUlu
dmFsaWRNZXNzYWdlRm9yVGVzdGluZyB7IGZhbHNlIH07CkBAIC00Niw5ICs0NSw3IEBAIHN0cnVj
dCBHUFVQcm9jZXNzQ29ubmVjdGlvblBhcmFtZXRlcnMgewogCiAgICAgdm9pZCBlbmNvZGUoSVBD
OjpFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogICAgIHsKLSNpZiBIQVZFKFRBU0tfSURFTlRJVFlf
VE9LRU4pCi0gICAgICAgIGVuY29kZXIgPDwgd2ViUHJvY2Vzc0lkZW50aXR5VG9rZW47Ci0jZW5k
aWYKKyAgICAgICAgZW5jb2RlciA8PCB3ZWJQcm9jZXNzSWRlbnRpdHk7CiAgICAgICAgIGVuY29k
ZXIgPDwgb3ZlcnJpZGVMYW5ndWFnZXM7CiAjaWYgRU5BQkxFKElQQ19URVNUSU5HX0FQSSkKICAg
ICAgICAgZW5jb2RlciA8PCBpZ25vcmVJbnZhbGlkTWVzc2FnZUZvclRlc3Rpbmc7CkBAIC02MCwx
MiArNTcsMTAgQEAgc3RydWN0IEdQVVByb2Nlc3NDb25uZWN0aW9uUGFyYW1ldGVycyB7CiAKICAg
ICBzdGF0aWMgc3RkOjpvcHRpb25hbDxHUFVQcm9jZXNzQ29ubmVjdGlvblBhcmFtZXRlcnM+IGRl
Y29kZShJUEM6OkRlY29kZXImIGRlY29kZXIpCiAgICAgewotI2lmIEhBVkUoVEFTS19JREVOVElU
WV9UT0tFTikKLSAgICAgICAgc3RkOjpvcHRpb25hbDxNYWNoU2VuZFJpZ2h0PiB3ZWJQcm9jZXNz
SWRlbnRpdHlUb2tlbjsKLSAgICAgICAgZGVjb2RlciA+PiB3ZWJQcm9jZXNzSWRlbnRpdHlUb2tl
bjsKLSAgICAgICAgaWYgKCF3ZWJQcm9jZXNzSWRlbnRpdHlUb2tlbikKKyAgICAgICAgc3RkOjpv
cHRpb25hbDxXZWJDb3JlOjpQcm9jZXNzSWRlbnRpdHk+IHdlYlByb2Nlc3NJZGVudGl0eTsKKyAg
ICAgICAgZGVjb2RlciA+PiB3ZWJQcm9jZXNzSWRlbnRpdHk7CisgICAgICAgIGlmICghd2ViUHJv
Y2Vzc0lkZW50aXR5KQogICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKLSNlbmRpZgog
CiAgICAgICAgIHN0ZDo6b3B0aW9uYWw8VmVjdG9yPFN0cmluZz4+IG92ZXJyaWRlTGFuZ3VhZ2Vz
OwogICAgICAgICBkZWNvZGVyID4+IG92ZXJyaWRlTGFuZ3VhZ2VzOwpAQCAtODYsOSArODEsNyBA
QCBzdHJ1Y3QgR1BVUHJvY2Vzc0Nvbm5lY3Rpb25QYXJhbWV0ZXJzIHsKICNlbmRpZgogCiAgICAg
ICAgIHJldHVybiBHUFVQcm9jZXNzQ29ubmVjdGlvblBhcmFtZXRlcnMgewotI2lmIEhBVkUoVEFT
S19JREVOVElUWV9UT0tFTikKLSAgICAgICAgICAgIFdURk1vdmUoKndlYlByb2Nlc3NJZGVudGl0
eVRva2VuKSwKLSNlbmRpZgorICAgICAgICAgICAgV1RGTW92ZSgqd2ViUHJvY2Vzc0lkZW50aXR5
KSwKICAgICAgICAgICAgIFdURk1vdmUoKm92ZXJyaWRlTGFuZ3VhZ2VzKSwKICNpZiBFTkFCTEUo
SVBDX1RFU1RJTkdfQVBJKQogICAgICAgICAgICAgKmlnbm9yZUludmFsaWRNZXNzYWdlRm9yVGVz
dGluZywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRp
YUNhcHR1cmVNYW5hZ2VyUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2Ev
VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5jcHAKaW5kZXggMmJiM2JjZGI1ODJkYzg1M2Yy
MDgzZWNlNDQ3MTkzYzQ0MTkzZWM5Mi4uYmRhZjk4ZDEwZGQzNThiZGQ3YmY3OTMzYWJkMTQ4NjUw
N2NjZWQ4NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVXNlck1l
ZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
Q29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5jcHAKQEAgLTU3LDkgKzU3LDEwIEBA
IGNsYXNzIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6OlNvdXJjZVByb3h5CiAgICAgLCBw
cml2YXRlIFJlYWx0aW1lTWVkaWFTb3VyY2U6OlZpZGVvU2FtcGxlT2JzZXJ2ZXIgewogICAgIFdU
Rl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgotICAgIFNvdXJjZVByb3h5KFJlYWx0aW1l
TWVkaWFTb3VyY2VJZGVudGlmaWVyIGlkLCBSZWY8SVBDOjpDb25uZWN0aW9uPiYmIGNvbm5lY3Rp
b24sIFJlZjxSZWFsdGltZU1lZGlhU291cmNlPiYmIHNvdXJjZSkKKyAgICBTb3VyY2VQcm94eShS
ZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciBpZCwgUmVmPElQQzo6Q29ubmVjdGlvbj4mJiBj
b25uZWN0aW9uLCBQcm9jZXNzSWRlbnRpdHkmJiByZXNvdXJjZU93bmVyLCBSZWY8UmVhbHRpbWVN
ZWRpYVNvdXJjZT4mJiBzb3VyY2UpCiAgICAgICAgIDogbV9pZChpZCkKICAgICAgICAgLCBtX2Nv
bm5lY3Rpb24oV1RGTW92ZShjb25uZWN0aW9uKSkKKyAgICAgICAgLCBtX3Jlc291cmNlT3duZXIo
V1RGTW92ZShyZXNvdXJjZU93bmVyKSkKICAgICAgICAgLCBtX3NvdXJjZShXVEZNb3ZlKHNvdXJj
ZSkpCiAgICAgewogICAgICAgICBtX3NvdXJjZS0+YWRkT2JzZXJ2ZXIoKnRoaXMpOwpAQCAtMTI1
LDkgKzEyNiw2IEBAIHB1YmxpYzoKICAgICB9CiAKICAgICB2b2lkIHNldFNob3VsZEFwcGx5Um90
YXRpb24oYm9vbCBzaG91bGRBcHBseVJvdGF0aW9uKSB7IG1fc2hvdWxkQXBwbHlSb3RhdGlvbiA9
IHRydWU7IH0KLSNpZiBIQVZFKElPU1VSRkFDRV9TRVRfT1dORVJTSElQX0lERU5USVRZKQotICAg
IHZvaWQgc2V0V2ViUHJvY2Vzc0lkZW50aXR5VG9rZW4oc3RkOjpvcHRpb25hbDx0YXNrX2lkX3Rv
a2VuX3Q+IHRva2VuKSB7IG1fd2ViUHJvY2Vzc0lkZW50aXR5VG9rZW4gPSB0b2tlbjt9Ci0jZW5k
aWYKIAogcHJpdmF0ZToKICAgICB2b2lkIHNvdXJjZVN0b3BwZWQoKSBmaW5hbCB7CkBAIC0xODgs
MTAgKzE4Niw4IEBAIHByaXZhdGU6CiAgICAgICAgIH0gZWxzZQogICAgICAgICAgICAgcmVtb3Rl
U2FtcGxlID0gUmVtb3RlVmlkZW9TYW1wbGU6OmNyZWF0ZShzYW1wbGUpOwogICAgICAgICBpZiAo
cmVtb3RlU2FtcGxlKSB7Ci0jaWYgSEFWRShJT1NVUkZBQ0VfU0VUX09XTkVSU0hJUF9JREVOVElU
WSkKLSAgICAgICAgICAgIGlmIChtX3dlYlByb2Nlc3NJZGVudGl0eVRva2VuKQotICAgICAgICAg
ICAgICAgIHJlbW90ZVNhbXBsZS0+c2V0T3duZXJzaGlwSWRlbnRpdHkoKm1fd2ViUHJvY2Vzc0lk
ZW50aXR5VG9rZW4pOwotI2VuZGlmCisgICAgICAgICAgICBpZiAobV9yZXNvdXJjZU93bmVyKQor
ICAgICAgICAgICAgICAgIHJlbW90ZVNhbXBsZS0+c2V0T3duZXJzaGlwSWRlbnRpdHkobV9yZXNv
dXJjZU93bmVyKTsKICAgICAgICAgICAgIG1fY29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6UmVt
b3RlQ2FwdHVyZVNhbXBsZU1hbmFnZXI6OlZpZGVvU2FtcGxlQXZhaWxhYmxlKG1faWQsIFdURk1v
dmUoKnJlbW90ZVNhbXBsZSksIG1ldGFkYXRhKSwgMCk7CiAgICAgICAgIH0KICAgICB9CkBAIC0y
NDQsNiArMjQwLDcgQEAgcHJpdmF0ZToKICAgICBSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmll
ciBtX2lkOwogICAgIFdlYWtQdHI8UGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyPiBtX3Nlc3Np
b25NYW5hZ2VyOwogICAgIFJlZjxJUEM6OkNvbm5lY3Rpb24+IG1fY29ubmVjdGlvbjsKKyAgICBQ
cm9jZXNzSWRlbnRpdHkgbV9yZXNvdXJjZU93bmVyOwogICAgIFJlZjxSZWFsdGltZU1lZGlhU291
cmNlPiBtX3NvdXJjZTsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8Q0FSaW5nQnVmZmVyPiBtX3JpbmdC
dWZmZXI7CiAgICAgQ0FBdWRpb1N0cmVhbURlc2NyaXB0aW9uIG1fZGVzY3JpcHRpb24geyB9OwpA
QCAtMjU3LDkgKzI1NCw2IEBAIHByaXZhdGU6CiAgICAgc2l6ZV90IG1fZnJhbWVDaHVua1NpemUg
eyAwIH07CiAgICAgTWVkaWFUaW1lIG1fc3RhcnRUaW1lOwogICAgIGJvb2wgbV9zaG91bGRSZXNl
dCB7IGZhbHNlIH07Ci0jaWYgSEFWRShUQVNLX0lERU5USVRZX1RPS0VOKQotICAgIHN0ZDo6b3B0
aW9uYWw8dGFza19pZF90b2tlbl90PiBtX3dlYlByb2Nlc3NJZGVudGl0eVRva2VuOwotI2VuZGlm
CiB9OwogCiBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OjpVc2VyTWVkaWFDYXB0dXJlTWFu
YWdlclByb3h5KFVuaXF1ZVJlZjxDb25uZWN0aW9uUHJveHk+JiYgY29ubmVjdGlvblByb3h5KQpA
QCAtMzIzLDEyICszMTcsNyBAQCB2b2lkIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6OmNy
ZWF0ZU1lZGlhU291cmNlRm9yQ2FwdHVyZURldmljZVdpdGhDb25zdHJhaQogICAgICAgICB9CiAK
ICAgICAgICAgQVNTRVJUKCFtX3Byb3hpZXMuY29udGFpbnMoaWQpKTsKLSAgICAgICAgYXV0byBw
cm94eSA9IG1ha2VVbmlxdWU8U291cmNlUHJveHk+KGlkLCBtX2Nvbm5lY3Rpb25Qcm94eS0+Y29u
bmVjdGlvbigpLCBXVEZNb3ZlKHNvdXJjZSkpOwotI2lmIEhBVkUoSU9TVVJGQUNFX1NFVF9PV05F
UlNISVBfSURFTlRJVFkpCi0gICAgICAgIGlmIChkZXZpY2UudHlwZSgpICE9IFdlYkNvcmU6OkNh
cHR1cmVEZXZpY2U6OkRldmljZVR5cGU6Ok1pY3JvcGhvbmUpCi0gICAgICAgICAgICBwcm94eS0+
c2V0V2ViUHJvY2Vzc0lkZW50aXR5VG9rZW4obV9jb25uZWN0aW9uUHJveHktPndlYlByb2Nlc3NJ
ZGVudGl0eVRva2VuKCkpOwotI2VuZGlmCi0KKyAgICAgICAgYXV0byBwcm94eSA9IG1ha2VVbmlx
dWU8U291cmNlUHJveHk+KGlkLCBtX2Nvbm5lY3Rpb25Qcm94eS0+Y29ubmVjdGlvbigpLCBQcm9j
ZXNzSWRlbnRpdHkgeyBtX2Nvbm5lY3Rpb25Qcm94eS0+cmVzb3VyY2VPd25lcigpIH0sIFdURk1v
dmUoc291cmNlKSk7CiAgICAgICAgIG1fcHJveGllcy5hZGQoaWQsIFdURk1vdmUocHJveHkpKTsK
ICAgICB9IGVsc2UKICAgICAgICAgaW52YWxpZENvbnN0cmFpbnRzID0gV1RGTW92ZShzb3VyY2VP
ckVycm9yLmVycm9yTWVzc2FnZSk7CkBAIC0zOTQsNyArMzgzLDcgQEAgdm9pZCBVc2VyTWVkaWFD
YXB0dXJlTWFuYWdlclByb3h5OjpjbG9uZShSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciBj
bG9uZWRJRCwKICAgICBNRVNTQUdFX0NIRUNLKG1fcHJveGllcy5jb250YWlucyhjbG9uZWRJRCkp
OwogICAgIE1FU1NBR0VfQ0hFQ0soIW1fcHJveGllcy5jb250YWlucyhuZXdTb3VyY2VJRCkpOwog
ICAgIGlmIChhdXRvKiBwcm94eSA9IG1fcHJveGllcy5nZXQoY2xvbmVkSUQpKQotICAgICAgICBt
X3Byb3hpZXMuYWRkKG5ld1NvdXJjZUlELCBtYWtlVW5pcXVlPFNvdXJjZVByb3h5PihuZXdTb3Vy
Y2VJRCwgbV9jb25uZWN0aW9uUHJveHktPmNvbm5lY3Rpb24oKSwgcHJveHktPnNvdXJjZSgpLmNs
b25lKCkpKTsKKyAgICAgICAgbV9wcm94aWVzLmFkZChuZXdTb3VyY2VJRCwgbWFrZVVuaXF1ZTxT
b3VyY2VQcm94eT4obmV3U291cmNlSUQsIG1fY29ubmVjdGlvblByb3h5LT5jb25uZWN0aW9uKCks
IFByb2Nlc3NJZGVudGl0eSB7IG1fY29ubmVjdGlvblByb3h5LT5yZXNvdXJjZU93bmVyKCkgfSwg
cHJveHktPnNvdXJjZSgpLmNsb25lKCkpKTsKIH0KIAogdm9pZCBVc2VyTWVkaWFDYXB0dXJlTWFu
YWdlclByb3h5OjpyZXF1ZXN0VG9FbmQoUmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgc291
cmNlSUQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVk
aWFDYXB0dXJlTWFuYWdlclByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9V
c2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5LmgKaW5kZXggYTA5NDI5ZGY2NzkxZTkwZjg0YTkz
NDk1ZmIwZWQyODVjY2VkMGQyYy4uZmE4MjljN2M0OTAzZDUxYjU3YTc4OTcxNzg0NzNmODBjYmYy
ODZkZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlh
Q2FwdHVyZU1hbmFnZXJQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29h
L1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkuaApAQCAtMzIsNiArMzIsNyBAQAogI2luY2x1
ZGUgIlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9DYXB0dXJl
RGV2aWNlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9PcmllbnRhdGlvbk5vdGlmaWVyLmg+CisjaW5j
bHVkZSA8V2ViQ29yZS9Qcm9jZXNzSWRlbnRpdHkuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1JlYWx0
aW1lTWVkaWFTb3VyY2UuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1JlYWx0aW1lTWVkaWFTb3VyY2VJ
ZGVudGlmaWVyLmg+CiAjaW5jbHVkZSA8cGFsL3NwaS9jb2NvYS9UQ0NTUEkuaD4KQEAgLTU5LDkg
KzYwLDcgQEAgcHVibGljOgogICAgICAgICB2aXJ0dWFsIGJvb2wgd2lsbFN0YXJ0Q2FwdHVyZShX
ZWJDb3JlOjpDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlKSBjb25zdCA9IDA7CiAgICAgICAgIHZp
cnR1YWwgTG9nZ2VyJiBsb2dnZXIoKSA9IDA7CiAgICAgICAgIHZpcnR1YWwgYm9vbCBzZXRDYXB0
dXJlQXR0cmlidXRpb25TdHJpbmcoKSB7IHJldHVybiB0cnVlOyB9Ci0jaWYgSEFWRShJT1NVUkZB
Q0VfU0VUX09XTkVSU0hJUF9JREVOVElUWSkKLSAgICAgICAgdmlydHVhbCBzdGQ6Om9wdGlvbmFs
PHRhc2tfaWRfdG9rZW5fdD4gd2ViUHJvY2Vzc0lkZW50aXR5VG9rZW4oKSBjb25zdCB7IHJldHVy
biB7IH07IH07Ci0jZW5kaWYKKyAgICAgICAgdmlydHVhbCBjb25zdCBXZWJDb3JlOjpQcm9jZXNz
SWRlbnRpdHkmIHJlc291cmNlT3duZXIoKSBjb25zdCA9IDA7CiAjaWYgRU5BQkxFKEFQUF9QUklW
QUNZX1JFUE9SVCkKICAgICAgICAgdmlydHVhbCB2b2lkIHNldFRDQ0lkZW50aXR5KCkgeyB9CiAj
ZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94
eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwCmluZGV4
IDY2NTZlMmRkZGQzYjQyY2M3MDdlOGEyOGI1ZGE5YWRhNzA4MDk5ZmIuLjYzZTZlMTM3ZmZhYzBh
Mjg5MTEwNWM4OWUwNzZhMTAxZTRhZmU2ZTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2ViUHJvY2Vzc1Byb3h5LmNwcApAQCAtMjE2LDYgKzIxNiwxMyBAQCBwcml2YXRlOgogICAgICAg
ICByZXR1cm4gdHJ1ZTsKICAgICB9CiAKKyAgICBjb25zdCBXZWJDb3JlOjpQcm9jZXNzSWRlbnRp
dHkmIHJlc291cmNlT3duZXIoKSBjb25zdCBmaW5hbAorICAgIHsKKyAgICAgICAgLy8gRklYTUU6
IHNob3VsZCBvYnRhaW4gV2ViQ29udGVudCBwcm9jZXNzIGlkZW50aXR5IGZyb20gV2ViQ29udGVu
dC4KKyAgICAgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFdlYkNvcmU6OlByb2Nlc3NJZGVudGl0
eT4gZHVtbXk7CisgICAgICAgIHJldHVybiBkdW1teS5nZXQoKTsKKyAgICB9CisKICAgICBSZWZQ
dHI8TG9nZ2VyPiBtX2xvZ2dlcjsKICAgICBXZWJQcm9jZXNzUHJveHkmIG1fcHJvY2VzczsKIH07
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL0ltYWdl
QnVmZmVyU2hhcmVhYmxlQml0bWFwQmFja2VuZC5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L0dQVS9ncmFwaGljcy9JbWFnZUJ1ZmZlclNoYXJlYWJsZUJpdG1hcEJhY2tlbmQuaAppbmRleCAx
ODQ3ZmE2ZmJkZTQwNmVkNmE2YWQwNjA0OThiODg1YzVlMzZiYjNkLi5jNWIyNmM0MGU3NDYwMzIy
ZGZhZmUyOWIwY2U2ZTM2NDE2N2U3MmFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvR1BVL2dyYXBoaWNzL0ltYWdlQnVmZmVyU2hhcmVhYmxlQml0bWFwQmFja2VuZC5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvSW1hZ2VCdWZmZXJTaGFy
ZWFibGVCaXRtYXBCYWNrZW5kLmgKQEAgLTMxLDYgKzMxLDEwIEBACiAjaW5jbHVkZSA8V2ViQ29y
ZS9QbGF0Zm9ybUltYWdlQnVmZmVyQmFja2VuZC5oPgogI2luY2x1ZGUgPHd0Zi9Jc29NYWxsb2Mu
aD4KIAorbmFtZXNwYWNlIFdlYkNvcmUgeworY2xhc3MgUHJvY2Vzc0lkZW50aXR5OworfQorCiBu
YW1lc3BhY2UgV2ViS2l0IHsKIAogY2xhc3MgU2hhcmVhYmxlQml0bWFwOwpAQCAtNjEsNiArNjUs
NyBAQCBwdWJsaWM6CiAgICAgc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpQaXhlbEJ1ZmZlcj4gZ2V0
UGl4ZWxCdWZmZXIoY29uc3QgV2ViQ29yZTo6UGl4ZWxCdWZmZXJGb3JtYXQmIG91dHB1dEZvcm1h
dCwgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYpIGNvbnN0IG92ZXJyaWRlOwogICAgIHZvaWQgcHV0
UGl4ZWxCdWZmZXIoY29uc3QgV2ViQ29yZTo6UGl4ZWxCdWZmZXImLCBjb25zdCBXZWJDb3JlOjpJ
bnRSZWN0JiBzcmNSZWN0LCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgZGVzdFBvaW50LCBXZWJD
b3JlOjpBbHBoYVByZW11bHRpcGxpY2F0aW9uIGRlc3RGb3JtYXQpIG92ZXJyaWRlOwogCisgICAg
dm9pZCBzZXRPd25lcnNoaXBJZGVudGl0eShjb25zdCBXZWJDb3JlOjpQcm9jZXNzSWRlbnRpdHkm
KSB7IH0KIHByaXZhdGU6CiAgICAgdW5zaWduZWQgYnl0ZXNQZXJSb3coKSBjb25zdCBvdmVycmlk
ZTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9j
b2NvYS9JbWFnZUJ1ZmZlclNoYXJlYWJsZU1hcHBlZElPU3VyZmFjZUJhY2tlbmQuY3BwIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9jb2NvYS9JbWFnZUJ1ZmZlclNoYXJl
YWJsZU1hcHBlZElPU3VyZmFjZUJhY2tlbmQuY3BwCmluZGV4IGFmZDJjN2MwNWNmYWZkMTM5OTM0
NGY1YzZhNzY0ZTQ4ODBkMjhiZGEuLmIyOWZjNTcyNzg5NTAzMGQ0MmZkYjQyN2IxNTg0NDdmMGQ3
MTA2M2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3Mv
Y29jb2EvSW1hZ2VCdWZmZXJTaGFyZWFibGVNYXBwZWRJT1N1cmZhY2VCYWNrZW5kLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL2NvY29hL0ltYWdlQnVmZmVy
U2hhcmVhYmxlTWFwcGVkSU9TdXJmYWNlQmFja2VuZC5jcHAKQEAgLTc3LDEzICs3NywxMSBAQCBJ
bWFnZUJ1ZmZlckJhY2tlbmRIYW5kbGUgSW1hZ2VCdWZmZXJTaGFyZWFibGVNYXBwZWRJT1N1cmZh
Y2VCYWNrZW5kOjpjcmVhdGVJbWFnZQogICAgIHJldHVybiBJbWFnZUJ1ZmZlckJhY2tlbmRIYW5k
bGUobV9zdXJmYWNlLT5jcmVhdGVTZW5kUmlnaHQoKSk7CiB9CiAKLSNpZiBIQVZFKElPU1VSRkFD
RV9TRVRfT1dORVJTSElQX0lERU5USVRZKQotdm9pZCBJbWFnZUJ1ZmZlclNoYXJlYWJsZU1hcHBl
ZElPU3VyZmFjZUJhY2tlbmQ6OnNldFByb2Nlc3NPd25lcnNoaXAodGFza19pZF90b2tlbl90IHBy
b2Nlc3NJZGVudGl0eVRva2VuKQordm9pZCBJbWFnZUJ1ZmZlclNoYXJlYWJsZU1hcHBlZElPU3Vy
ZmFjZUJhY2tlbmQ6OnNldE93bmVyc2hpcElkZW50aXR5KGNvbnN0IFdlYkNvcmU6OlByb2Nlc3NJ
ZGVudGl0eSYgcmVzb3VyY2VPd25lcikKIHsKICAgICBBU1NFUlQoc3VyZmFjZSgpKTsKLSAgICBz
dXJmYWNlKCktPnNldE93bmVyc2hpcElkZW50aXR5KHByb2Nlc3NJZGVudGl0eVRva2VuKTsKKyAg
ICBzdXJmYWNlKCktPnNldE93bmVyc2hpcElkZW50aXR5KHJlc291cmNlT3duZXIpOwogfQotI2Vu
ZGlmCiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL2NvY29hL0ltYWdlQnVmZmVyU2hhcmVhYmxlTWFwcGVk
SU9TdXJmYWNlQmFja2VuZC5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGlj
cy9jb2NvYS9JbWFnZUJ1ZmZlclNoYXJlYWJsZU1hcHBlZElPU3VyZmFjZUJhY2tlbmQuaAppbmRl
eCBlMTRhNTQwZWNkZGQ0NzExOTA4YTdjMTcxYzNhMjVlYmZkODA4ZGJlLi5lYTg1MjVjNTE1MDE1
NWJkMDNiNTgwMDczZDVmMjEzODY0OGIwZTBiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvR1BVL2dyYXBoaWNzL2NvY29hL0ltYWdlQnVmZmVyU2hhcmVhYmxlTWFwcGVkSU9T
dXJmYWNlQmFja2VuZC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhp
Y3MvY29jb2EvSW1hZ2VCdWZmZXJTaGFyZWFibGVNYXBwZWRJT1N1cmZhY2VCYWNrZW5kLmgKQEAg
LTMxLDYgKzMxLDEwIEBACiAjaW5jbHVkZSA8V2ViQ29yZS9JbWFnZUJ1ZmZlcklPU3VyZmFjZUJh
Y2tlbmQuaD4KICNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jLmg+CiAKK25hbWVzcGFjZSBXZWJDb3Jl
IHsKK2NsYXNzIFByb2Nlc3NJZGVudGl0eTsKK30KKwogbmFtZXNwYWNlIFdlYktpdCB7CiAKIGNs
YXNzIFNoYXJlYWJsZUJpdG1hcDsKQEAgLTQ2LDkgKzUwLDcgQEAgcHVibGljOgogCiAgICAgSW1h
Z2VCdWZmZXJCYWNrZW5kSGFuZGxlIGNyZWF0ZUltYWdlQnVmZmVyQmFja2VuZEhhbmRsZSgpIGNv
bnN0OwogCi0jaWYgSEFWRShJT1NVUkZBQ0VfU0VUX09XTkVSU0hJUF9JREVOVElUWSkKLSAgICB2
b2lkIHNldFByb2Nlc3NPd25lcnNoaXAodGFza19pZF90b2tlbl90KTsKLSNlbmRpZgorICAgIHZv
aWQgc2V0T3duZXJzaGlwSWRlbnRpdHkoY29uc3QgV2ViQ29yZTo6UHJvY2Vzc0lkZW50aXR5Jik7
CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9jb2NvYS9XZWJQcm9jZXNzQ29jb2EubW0gYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvY29jb2EvV2ViUHJvY2Vzc0NvY29hLm1tCmluZGV4IDZhN2ZjNzNlOWExYzAxZWRlODhj
YWM1OTI2MTM5YjM5MTY0YmY3YjguLjEwNTI2YTEwYzUwMzkzMWI4NjcyMmQ4MGI1ZWQ5N2Y1ZDM4
MzBhNGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9XZWJQcm9j
ZXNzQ29jb2EubW0KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1dlYlByb2Nl
c3NDb2NvYS5tbQpAQCAtMTIyNiwxNCArMTIyNiw3IEBAIHZvaWQgV2ViUHJvY2Vzczo6d2FpdEZv
clBlbmRpbmdQYXN0ZWJvYXJkV3JpdGVzVG9GaW5pc2goY29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJk
CiAjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQogdm9pZCBXZWJQcm9jZXNzOjpwbGF0Zm9ybUluaXRp
YWxpemVHUFVQcm9jZXNzQ29ubmVjdGlvblBhcmFtZXRlcnMoR1BVUHJvY2Vzc0Nvbm5lY3Rpb25Q
YXJhbWV0ZXJzJiBwYXJhbWV0ZXJzKQogewotI2lmIEhBVkUoVEFTS19JREVOVElUWV9UT0tFTikK
LSAgICB0YXNrX2lkX3Rva2VuX3QgaWRlbnRpdHlUb2tlbjsKLSAgICBrZXJuX3JldHVybl90IGty
ID0gdGFza19jcmVhdGVfaWRlbnRpdHlfdG9rZW4obWFjaF90YXNrX3NlbGYoKSwgJmlkZW50aXR5
VG9rZW4pOwotICAgIGlmIChrciA9PSBLRVJOX1NVQ0NFU1MpCi0gICAgICAgIHBhcmFtZXRlcnMu
d2ViUHJvY2Vzc0lkZW50aXR5VG9rZW4gPSBNYWNoU2VuZFJpZ2h0OjphZG9wdChpZGVudGl0eVRv
a2VuKTsKLSAgICBlbHNlCi0gICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKFByb2Nlc3MsICJDYWxs
IHRvIHRhc2tfY3JlYXRlX2lkZW50aXR5X3Rva2VuKCkgZmFpbGVkOiAle3ByaXZhdGV9cyAoJXgp
IiwgbWFjaF9lcnJvcl9zdHJpbmcoa3IpLCBrcik7Ci0jZW5kaWYKKyAgICBwYXJhbWV0ZXJzLndl
YlByb2Nlc3NJZGVudGl0eSA9IFByb2Nlc3NJZGVudGl0eSB7IFByb2Nlc3NJZGVudGl0eTo6Q3Vy
cmVudFByb2Nlc3MgfTsKIAogICAgIHBhcmFtZXRlcnMub3ZlcnJpZGVMYW5ndWFnZXMgPSB1c2Vy
UHJlZmVycmVkTGFuZ3VhZ2VzT3ZlcnJpZGUoKTsKIH0KZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5n
ZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCA0YTIyZWMyMzM4YTg5YjZlZjQzNDY2M2VjYzM5
ODA3MmM3ZWEyMjAxLi45ZDAyNjY3Y2RkM2ZhYzE0OWQwNzdjYWViNmM3OTMwY2M4OGNiN2FlIDEw
MDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMTYgQEAKKzIwMjEtMTItMDggIEtpbW1vIEtpbm51bmVuICA8a2tpbm51bmVuQGFwcGxlLmNv
bT4KKworICAgICAgICBJT1N1cmZhY2UgbWVtb3J5IGF0dHJpYnV0aW9uIGlzIGhhcmQgdG8gdXNl
IGluIGNvbnN0cnVjdG9ycworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MjMyOTg4CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS84NTU0MTkxOD4KKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBVcGRhdGUgY29uc3Ry
dWN0b3IgY2FsbGluZyBiYXNlIGNsYXNzIGNvbnN0cnVjdG9yLCBhZGQgZW1wdHkKKyAgICAgICAg
UHJvY2Vzc2VJZGVudGl0eS4KKworICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29y
ZS9jb2NvYS9UZXN0R3JhcGhpY3NDb250ZXh0R0xDb2NvYS5tbToKKwogMjAyMS0xMi0wOSAgUnlh
biBIYWRkYWQgIDxyeWFuaGFkZGFkQGFwcGxlLmNvbT4KIAogICAgICAgICBCcmluZyB1cCBhbm90
aGVyIGlPUyBHUFUgUHJvY2Vzc2VzIHRlc3RlcgpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJDb3JlL2NvY29hL1Rlc3RHcmFwaGljc0NvbnRleHRHTENvY29hLm1tIGIv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL2NvY29hL1Rlc3RHcmFwaGljc0NvbnRl
eHRHTENvY29hLm1tCmluZGV4IDg3NmM3NDQ4MDhmNDM2MWUzY2Q1MmY1M2ZmZDZmNjAwM2E4YTBm
ODcuLmE5MTYyNzk4ZTZmMDdmNDc4YmMxMmJiZDgzZmMwNDViNDMyMzczNzQgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9jb2NvYS9UZXN0R3JhcGhpY3NDb250
ZXh0R0xDb2NvYS5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvY29j
b2EvVGVzdEdyYXBoaWNzQ29udGV4dEdMQ29jb2EubW0KQEAgLTMyLDYgKzMyLDcgQEAKICNpbXBv
cnQgPE1ldGFsL01ldGFsLmg+CiAjaW1wb3J0IDxXZWJDb3JlL0NvbG9yLmg+CiAjaW1wb3J0IDxX
ZWJDb3JlL0dyYXBoaWNzQ29udGV4dEdMQ29jb2EuaD4KKyNpbXBvcnQgPFdlYkNvcmUvUHJvY2Vz
c0lkZW50aXR5Lmg+CiAjaW1wb3J0IDxvcHRpb25hbD4KICNpbXBvcnQgPHd0Zi9IYXNoU2V0Lmg+
CiAjaW1wb3J0IDx3dGYvTWVtb3J5Rm9vdHByaW50Lmg+CkBAIC02Nyw3ICs2OCw3IEBAIHN0YXRp
YyBSZWZQdHI8V2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0R0xDb2NvYT4gY3JlYXRlRGVmYXVsdFRl
c3RDb250ZXh0KFdlYkNvcmU6CiAgICAgYXR0cmlidXRlcy5zdGVuY2lsID0gZmFsc2U7CiAgICAg
YXR0cmlidXRlcy5hbHBoYSA9IHRydWU7CiAgICAgYXR0cmlidXRlcy5wcmVzZXJ2ZURyYXdpbmdC
dWZmZXIgPSBmYWxzZTsKLSAgICBhdXRvIGNvbnRleHQgPSBXZWJDb3JlOjpHcmFwaGljc0NvbnRl
eHRHTENvY29hOjpjcmVhdGUoV1RGTW92ZShhdHRyaWJ1dGVzKSk7CisgICAgYXV0byBjb250ZXh0
ID0gV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0R0xDb2NvYTo6Y3JlYXRlKFdURk1vdmUoYXR0cmli
dXRlcyksIHsgfSk7CiAgICAgaWYgKCFjb250ZXh0KQogICAgICAgICByZXR1cm4gbnVsbHB0cjsK
ICAgICBjb250ZXh0LT5yZXNoYXBlKGNvbnRleHRTaXplLndpZHRoKCksIGNvbnRleHRTaXplLmhl
aWdodCgpKTsKQEAgLTExOSwxNSArMTIwLDE1IEBAIFRFU1RfRihHcmFwaGljc0NvbnRleHRHTENv
Y29hVGVzdCwgTUFZQkVfTXVsdGlwbGVHUFVzRGlmZmVyZW50UG93ZXJQcmVmZXJlbmNlTWV0CiAg
ICAgV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0R0xBdHRyaWJ1dGVzIGF0dHJpYnV0ZXM7CiAgICAg
YXR0cmlidXRlcy51c2VNZXRhbCA9IHRydWU7CiAgICAgRVhQRUNUX0VRKGF0dHJpYnV0ZXMucG93
ZXJQcmVmZXJlbmNlLCBXZWJDb3JlOjpHcmFwaGljc0NvbnRleHRHTFBvd2VyUHJlZmVyZW5jZTo6
RGVmYXVsdCk7Ci0gICAgYXV0byBkZWZhdWx0Q29udGV4dCA9IFdlYkNvcmU6OkdyYXBoaWNzQ29u
dGV4dEdMQ29jb2E6OmNyZWF0ZShXZWJDb3JlOjpHcmFwaGljc0NvbnRleHRHTEF0dHJpYnV0ZXMg
eyBhdHRyaWJ1dGVzIH0pOworICAgIGF1dG8gZGVmYXVsdENvbnRleHQgPSBXZWJDb3JlOjpHcmFw
aGljc0NvbnRleHRHTENvY29hOjpjcmVhdGUoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0R0xBdHRy
aWJ1dGVzIHsgYXR0cmlidXRlcyB9LCB7IH0pOwogICAgIEFTU0VSVF9ORShkZWZhdWx0Q29udGV4
dCwgbnVsbHB0cik7CiAKICAgICBhdHRyaWJ1dGVzLnBvd2VyUHJlZmVyZW5jZSA9IFdlYkNvcmU6
OkdyYXBoaWNzQ29udGV4dEdMUG93ZXJQcmVmZXJlbmNlOjpMb3dQb3dlcjsKLSAgICBhdXRvIGxv
d1Bvd2VyQ29udGV4dCA9IFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dEdMQ29jb2E6OmNyZWF0ZShX
ZWJDb3JlOjpHcmFwaGljc0NvbnRleHRHTEF0dHJpYnV0ZXMgeyBhdHRyaWJ1dGVzIH0pOworICAg
IGF1dG8gbG93UG93ZXJDb250ZXh0ID0gV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0R0xDb2NvYTo6
Y3JlYXRlKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dEdMQXR0cmlidXRlcyB7IGF0dHJpYnV0ZXMg
fSwgeyB9KTsKICAgICBBU1NFUlRfTkUobG93UG93ZXJDb250ZXh0LCBudWxscHRyKTsKIAogICAg
IGF0dHJpYnV0ZXMucG93ZXJQcmVmZXJlbmNlID0gV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0R0xQ
b3dlclByZWZlcmVuY2U6OkhpZ2hQZXJmb3JtYW5jZTsKLSAgICBhdXRvIGhpZ2hQZXJmb3JtYW5j
ZUNvbnRleHQgPSBXZWJDb3JlOjpHcmFwaGljc0NvbnRleHRHTENvY29hOjpjcmVhdGUoV2ViQ29y
ZTo6R3JhcGhpY3NDb250ZXh0R0xBdHRyaWJ1dGVzIHsgYXR0cmlidXRlcyB9KTsKKyAgICBhdXRv
IGhpZ2hQZXJmb3JtYW5jZUNvbnRleHQgPSBXZWJDb3JlOjpHcmFwaGljc0NvbnRleHRHTENvY29h
OjpjcmVhdGUoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0R0xBdHRyaWJ1dGVzIHsgYXR0cmlidXRl
cyB9LCB7IH0pOwogICAgIEFTU0VSVF9ORShoaWdoUGVyZm9ybWFuY2VDb250ZXh0LCBudWxscHRy
KTsKIAogICAgIEVYUEVDVF9ORShsb3dQb3dlckNvbnRleHQtPmdldFN0cmluZyhXZWJDb3JlOjpH
cmFwaGljc0NvbnRleHRHTDo6UkVOREVSRVIpLCBoaWdoUGVyZm9ybWFuY2VDb250ZXh0LT5nZXRT
dHJpbmcoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0R0w6OlJFTkRFUkVSKSk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>446669</attachid>
            <date>2021-12-09 23:17:24 -0800</date>
            <delta_ts>2021-12-10 00:25:46 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-232988-20211210091722.patch</filename>
            <type>text/plain</type>
            <size>54877</size>
            <attacher name="Kimmo Kinnunen">kkinnunen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg2NzkxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTI1YmNiODZiMmU1NjBk
ZTkyZTM1NzI0Mzc5OWNiNTMyM2JiZmViZi4uYzdkZDBmNmNlZTdjMjY5Nzg3OTZiNDkxNDUxZjRi
ZjlhMTFiNDI0MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUzIEBACisyMDIxLTEyLTA4ICBLaW1t
byBLaW5udW5lbiAgPGtraW5udW5lbkBhcHBsZS5jb20+CisKKyAgICAgICAgSU9TdXJmYWNlIG1l
bW9yeSBhdHRyaWJ1dGlvbiBpcyBoYXJkIHRvIHVzZSBpbiBjb25zdHJ1Y3RvcnMKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMjk4OAorICAgICAgICA8
cmRhcjovL3Byb2JsZW0vODU1NDE5MTg+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQ2hyaXMgRHVt
ZXouCisKKyAgICAgICAgQWRkIFdlYkNvcmU6OlByb2Nlc3NJZGVudGl0eSB0eXBlIHRoYXQgY2Fu
IGJlIHVzZWQgdG8gY29tbXVuaWNhdGUgbWVtb3J5IGF0dHJpYnV0aW9uLgorICAgICAgICBGb3Ig
bm9uLUNvY29hIHBvcnRzLCB0aGlzIGlzIG51bGxwdHIuCisgICAgICAgIFRoaXMgaXMgdXNlZCBp
biBXZWJDb3JlIHRvIHNldCB0aGUgbWVtb3J5IGF0dHJpYnV0aW9uIG9mIElPU3VyZmFjZSBhbmQg
b2JqZWN0cworICAgICAgICB0aGF0IGhvbGQgSU9TdXJmYWNlcy4KKyAgICAgICAgVGhpcyBpcyBp
bnN0YW50aWF0ZWQgaW4gV2ViS2l0LgorICAgICAgICBDdXJyZW50bHkgdGhlIG9ubHkgdXNlZnVs
IHdheSB0byBpbnN0YW50aWF0ZSBQcm9jZXNzSWRlbnRpdHkgaXMgYnkgcmVjZWl2aW5nCisgICAg
ICAgIHRoZSBQcm9jZXNzSWRlbnRpdHkgYXMgYSBtZXNzYWdlIGFuZCBjcmVhdGUgaXQgdGhpcyB3
YXkgZm9yIHRoZQorICAgICAgICBzZW5kZXIgcHJvY2Vzcy4KKworICAgICAgICBObyBuZXcgdGVz
dHMsIHJlZmFjdG9yLgorCisgICAgICAgICogSGVhZGVycy5jbWFrZToKKyAgICAgICAgKiBTb3Vy
Y2VzLnR4dDoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6Cisg
ICAgICAgICogcGxhdGZvcm0vTG9nZ2luZy5oOgorICAgICAgICBBZGQgV2ViQ29yZSBQcm9jZXNz
IGxvZyB0YWcgc2luY2UgdGhlIGNvZGUgbW92ZWQgZnJvbSBXZWJLaXQgdG8gUHJvY2Vzc0lkZW50
aXR5CisgICAgICAgIHVzZWQgdGhhdCB0YWcgdG8gbG9nLgorICAgICAgICAqIHBsYXRmb3JtL1By
b2Nlc3NJZGVudGl0eS5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6UHJvY2Vzc0lkZW50
aXR5OjpQcm9jZXNzSWRlbnRpdHkpOgorICAgICAgICAoV2ViQ29yZTo6UHJvY2Vzc0lkZW50aXR5
Ojp0YXNrSWRUb2tlbiBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpQcm9jZXNzSWRlbnRpdHk6
OnNlbmRSaWdodCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpQcm9jZXNzSWRlbnRpdHk6Om9w
ZXJhdG9yIGJvb2wgY29uc3QpOgorICAgICAgICAqIHBsYXRmb3JtL1Byb2Nlc3NJZGVudGl0eS5o
OiBBZGRlZC4KKyAgICAgICAgQWRkIHRoZSBQcm9jZXNzSWRlbnRpdHkgdHlwZSB0aGF0IGNhbiBi
ZSB1c2VkIHRvIGNvbW11bmljYXRlIG1lbW9yeSBhdHRyaWJ1dGlvbi4KKyAgICAgICAgKiBwbGF0
Zm9ybS9ncmFwaGljcy9SZW1vdGVWaWRlb1NhbXBsZS5oOgorICAgICAgICAoV2ViQ29yZTo6UmVt
b3RlVmlkZW9TYW1wbGU6OnNldE93bmVyc2hpcElkZW50aXR5KToKKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy9hbmdsZS9HcmFwaGljc0NvbnRleHRHTEFOR0xFLmg6CisgICAgICAgICogcGxh
dGZvcm0vZ3JhcGhpY3MvY29jb2EvR3JhcGhpY3NDb250ZXh0R0xDb2NvYS5oOgorICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0dyYXBoaWNzQ29udGV4dEdMQ29jb2EubW06CisgICAg
ICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHRHTENvY29hOjpjcmVhdGUpOgorICAgICAgICAo
V2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0R0xDb2NvYTo6R3JhcGhpY3NDb250ZXh0R0xDb2NvYSk6
CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHRHTEFOR0xFOjphbGxvY2F0ZUFuZEJp
bmREaXNwbGF5QnVmZmVyQmFja2luZyk6CisgICAgICAgIEFkZCBhbiBleGFtcGxlIHVzZSB3aGVy
ZSB0aGUgY29uc3RydWN0b3IgdGFrZXMgdGhlIG1lbW9yeSBhdHRyaWJ1dGlvbiB0b2tlbi4KKyAg
ICAgICAgVGhpcyBtYXkgYmUgbmVlZGVkIGluIHRoZSBmdXR1cmUgd2hlbiB0aGUgdG9rZW4gaXMg
dXNlZCBhcyBhIHBhcmFtZXRlciBpbgorICAgICAgICB0aGUgQU5HTEUgY29udGV4dCBjcmVhdGlv
bi4KKyAgICAgICAgVXNlIHRoZSB0b2tlbiBpbiBjcmVhdGluZyB0aGUgSU9TdXJmYWNlLiBUaGlz
IGZpeGVzIGEgYnVnIHdoZXJlIFdlYkdMCisgICAgICAgIGJhY2sgYnVmZmVycyB3b3VsZCBub3Qg
YmUgYXR0cmlidXRlZCB1bnRpbCB0aGV5IHdlcmUgc2VudCB0byBXUC4KKyAgICAgICAgKiBwbGF0
Zm9ybS9ncmFwaGljcy9jb2NvYS9JT1N1cmZhY2UuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy9jb2NvYS9JT1N1cmZhY2UubW06CisgICAgICAgIChXZWJDb3JlOjpJT1N1cmZhY2U6OnNl
dE93bmVyc2hpcElkZW50aXR5KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9X
ZWJQcm9jZXNzR3JhcGhpY3NDb250ZXh0R0xDb2NvYS5tbToKKwogMjAyMS0xMi0wOSAgQWxhbiBC
dWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CiAKICAgICAgICAgW0xGQ11bSUZDXSBBZGQgc3VwcG9y
dCBmb3IgaW5rIG92ZXJmbG93IG9uIGJpZGkgaW5saW5lIGJveGVzCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDliMzFl
NDk3ZDU0NGFkZjhhZGE2NDkzYjI0YTI5OTUyYzM2YTVkYjAuLjBjMTI3MGUyZjA4Y2JjZWIwZWM4
ZjMzZTNiODVhYjg3ZmRmOGZhMWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9n
CisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTQgQEAKKzIwMjEtMTIt
MDggIEtpbW1vIEtpbm51bmVuICA8a2tpbm51bmVuQGFwcGxlLmNvbT4KKworICAgICAgICBJT1N1
cmZhY2UgbWVtb3J5IGF0dHJpYnV0aW9uIGlzIGhhcmQgdG8gdXNlIGluIGNvbnN0cnVjdG9ycwor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMyOTg4Cisg
ICAgICAgIDxyZGFyOi8vcHJvYmxlbS84NTU0MTkxOD4KKworICAgICAgICBSZXZpZXdlZCBieSBD
aHJpcyBEdW1lei4KKworICAgICAgICBSZW1vdmUgaWZkZWZzIGFuZCBkaXJlY3QgdXNlIG9mIHRh
c2tfaWRfdG9rZW5fdC4KKyAgICAgICAgSW5zdGVhZCwgdXNlIFdlYkNvcmU6OlByb2Nlc3NJZGVu
dGlmaWVyLiBUaGlzIHdheSB0aGUKKyAgICAgICAgY3Jvc3MtcGxhdGZvcm0gY29kZSBpcyBlYXNp
ZXIgdG8gYXV0aG9yLgorCisgICAgICAgICogR1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9uVG9XZWJQ
cm9jZXNzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6R1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6
R1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcyk6CisgICAgICAgICogR1BVUHJvY2Vzcy9HUFVDb25u
ZWN0aW9uVG9XZWJQcm9jZXNzLmg6CisgICAgICAgIChXZWJLaXQ6OkdQVUNvbm5lY3Rpb25Ub1dl
YlByb2Nlc3M6OndlYlByb2Nlc3NJZGVudGl0eSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OkdQ
VUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OndlYlByb2Nlc3NJZGVudGl0eVRva2VuIGNvbnN0KTog
RGVsZXRlZC4KKyAgICAgICAgKiBHUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZUdyYXBoaWNzQ29u
dGV4dEdMQ29jb2EuY3BwOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVHcmFwaGljc0NvbnRleHRH
TENvY29hOjpSZW1vdGVHcmFwaGljc0NvbnRleHRHTENvY29hKToKKyAgICAgICAgKFdlYktpdDo6
UmVtb3RlR3JhcGhpY3NDb250ZXh0R0xDb2NvYTo6cGxhdGZvcm1Xb3JrUXVldWVJbml0aWFsaXpl
KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlR3JhcGhpY3NDb250ZXh0R0xDb2NvYTo6cHJlcGFy
ZUZvckRpc3BsYXkpOgorICAgICAgICAqIEdQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlSW1hZ2VC
dWZmZXIuaDoKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlSW1hZ2VCdWZmZXI6OnNldE93bmVyc2hp
cElkZW50aXR5KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlSW1hZ2VCdWZmZXI6OnNldFByb2Nl
c3NPd25lcnNoaXApOiBEZWxldGVkLgorICAgICAgICAqIEdQVVByb2Nlc3MvZ3JhcGhpY3MvUmVt
b3RlUmVuZGVyaW5nQmFja2VuZC5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlbmRlcmlu
Z0JhY2tlbmQ6OlJlbW90ZVJlbmRlcmluZ0JhY2tlbmQpOgorICAgICAgICAoV2ViS2l0OjpSZW1v
dGVSZW5kZXJpbmdCYWNrZW5kOjpjcmVhdGVJbWFnZUJ1ZmZlcldpdGhRdWFsaWZpZWRJZGVudGlm
aWVyKToKKyAgICAgICAgKiBHUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tl
bmQuaDoKKyAgICAgICAgKiBHUFVQcm9jZXNzL3dlYnJ0Yy9MaWJXZWJSVENDb2RlY3NQcm94eS5t
bToKKyAgICAgICAgKFdlYktpdDo6RnVuY3Rpb248dm9pZCk6CisgICAgICAgICogU2hhcmVkL0dQ
VVByb2Nlc3NDb25uZWN0aW9uUGFyYW1ldGVycy5oOgorICAgICAgICAoV2ViS2l0OjpHUFVQcm9j
ZXNzQ29ubmVjdGlvblBhcmFtZXRlcnM6OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6
OkdQVVByb2Nlc3NDb25uZWN0aW9uUGFyYW1ldGVyczo6ZGVjb2RlKToKKyAgICAgICAgKiBVSVBy
b2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5jcHA6CisgICAgICAgIChX
ZWJLaXQ6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6OlNvdXJjZVByb3h5OjpTb3VyY2VQ
cm94eSk6CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6OlNv
dXJjZVByb3h5OjpzZXRTaG91bGRBcHBseVJvdGF0aW9uKToKKyAgICAgICAgKFdlYktpdDo6VXNl
ck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6Y3JlYXRlTWVkaWFTb3VyY2VGb3JDYXB0dXJlRGV2
aWNlV2l0aENvbnN0cmFpbnRzKToKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhQ2FwdHVyZU1h
bmFnZXJQcm94eTo6Y2xvbmUpOgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFDYXB0dXJlTWFu
YWdlclByb3h5OjpTb3VyY2VQcm94eTo6c2V0V2ViUHJvY2Vzc0lkZW50aXR5VG9rZW4pOiBEZWxl
dGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclBy
b3h5Lmg6CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6OkNv
bm5lY3Rpb25Qcm94eTo6d2ViUHJvY2Vzc0lkZW50aXR5VG9rZW4gY29uc3QpOiBEZWxldGVkLgor
ICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwOgorICAgICAgICAqIFdlYlBy
b2Nlc3MvR1BVL2dyYXBoaWNzL0ltYWdlQnVmZmVyU2hhcmVhYmxlQml0bWFwQmFja2VuZC5oOgor
ICAgICAgICAoV2ViS2l0OjpJbWFnZUJ1ZmZlclNoYXJlYWJsZUJpdG1hcEJhY2tlbmQ6OnNldE93
bmVyc2hpcElkZW50aXR5KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9jb2Nv
YS9JbWFnZUJ1ZmZlclNoYXJlYWJsZU1hcHBlZElPU3VyZmFjZUJhY2tlbmQuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpJbWFnZUJ1ZmZlclNoYXJlYWJsZU1hcHBlZElPU3VyZmFjZUJhY2tlbmQ6OnNl
dE93bmVyc2hpcElkZW50aXR5KToKKyAgICAgICAgKFdlYktpdDo6SW1hZ2VCdWZmZXJTaGFyZWFi
bGVNYXBwZWRJT1N1cmZhY2VCYWNrZW5kOjpzZXRQcm9jZXNzT3duZXJzaGlwKTogRGVsZXRlZC4K
KyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9jb2NvYS9JbWFnZUJ1ZmZlclNoYXJl
YWJsZU1hcHBlZElPU3VyZmFjZUJhY2tlbmQuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL2NvY29h
L1dlYlByb2Nlc3NDb2NvYS5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6cGxhdGZv
cm1Jbml0aWFsaXplR1BVUHJvY2Vzc0Nvbm5lY3Rpb25QYXJhbWV0ZXJzKToKKwogMjAyMS0xMi0w
OSAgQnJhZHkgRWlkc29uICA8YmVpZHNvbkBhcHBsZS5jb20+CiAKICAgICAgICAgQWRkIGFiaWxp
dHkgdG8gaW5qZWN0IG1lc3NhZ2VzIGludG8gd2VicHVzaGQKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL0hlYWRlcnMuY21ha2UgYi9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCmluZGV4
IGNmYzVhY2FlZGU2MTZlOTEwMTNiZDU3YmY3NTU0YTUyMzIwZmNiMmUuLjkwNGQyODViNzhhNzBh
ZjZjMjhhNjBkNTVlYjk3MWFlODhiM2JkMzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0hl
YWRlcnMuY21ha2UKKysrIGIvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQpAQCAtMTI5MSw2
ICsxMjkxLDcgQEAgc2V0KFdlYkNvcmVfUFJJVkFURV9GUkFNRVdPUktfSEVBREVSUwogICAgIHBs
YXRmb3JtL1BvcHVwTWVudUNsaWVudC5oCiAgICAgcGxhdGZvcm0vUG9wdXBNZW51U3R5bGUuaAog
ICAgIHBsYXRmb3JtL1Byb2Nlc3NJZGVudGlmaWVyLmgKKyAgICBwbGF0Zm9ybS9Qcm9jZXNzSWRl
bnRpdHkuaAogICAgIHBsYXRmb3JtL1Byb2Nlc3NRdWFsaWZpZWQuaAogICAgIHBsYXRmb3JtL1By
b21pc2VkQXR0YWNobWVudEluZm8uaAogICAgIHBsYXRmb3JtL1B1YmxpY1N1ZmZpeC5oCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL1NvdXJj
ZXMudHh0CmluZGV4IDU3ODQ2N2FjYWY3MDEwZmYzNjhlODAwZjNkN2Q3MGI4MjEzYmI0MzIuLjRi
NWQ4MzBmYzdjNjM5NjAwODNhY2FmYzM4ODgyMmM1OTYxMmZlMGUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL1NvdXJjZXMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CkBA
IC0xODg2LDYgKzE4ODYsNyBAQCBwbGF0Zm9ybS9QbGF0Zm9ybVN0cmF0ZWdpZXMuY3BwCiBwbGF0
Zm9ybS9QbGF0Zm9ybVdoZWVsRXZlbnQuY3BwCiBwbGF0Zm9ybS9QcmV2aWV3Q29udmVydGVyLmNw
cAogcGxhdGZvcm0vUHJvY2Vzc0lkZW50aWZpZXIuY3BwCitwbGF0Zm9ybS9Qcm9jZXNzSWRlbnRp
dHkuY3BwCiBwbGF0Zm9ybS9SZWZlcnJlclBvbGljeS5jcHAKIHBsYXRmb3JtL1JlbW90ZUNvbW1h
bmRMaXN0ZW5lci5jcHAKIHBsYXRmb3JtL1J1bnRpbWVBcHBsaWNhdGlvbkNoZWNrcy5jcHAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
aiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRl
eCAyNmY5ZTk1MGU1MmNjNGQ3ZGFmOGVkZGJlMjg5ZDcwMTRmZTFjZWQwLi45ZGU5N2Q5MGE5YmUx
N2U4NTJjZWVlNmExYjllYTgyYzgxZGViNThhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0yMzg2LDYgKzIzODYsNyBAQAogCQk3
QkIzNEE0ODI1Mzc3NkNBMDAwMjlEMDggLyogR3JhcGhpY3NDb250ZXh0R0xJbWFnZUV4dHJhY3Rv
ci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0JCMzRB
NDUyNTM3NzZDNjAwMDI5RDA4IC8qIEdyYXBoaWNzQ29udGV4dEdMSW1hZ2VFeHRyYWN0b3IuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk3QkI2ODBC
QTI1QkExQkU0MDAyQjg3MzggLyogR3JhcGhpY3NDaGVja3NNYWMuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdCQjY4MEI4MjVCQTFCRTQwMDJCODczOCAv
KiBHcmFwaGljc0NoZWNrc01hYy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07CiAJCTdCRERBMzFGMjc0RkEwMjEwMDM4NjU5RSAvKiBHcmFwaGljc0NvbnRl
eHRHTENvY29hLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA3QkREQTMxRDI3NEY5REE1MDAzODY1OUUgLyogR3JhcGhpY3NDb250ZXh0R0xDb2NvYS5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTdCRERBMzRD
Mjc1QTAxMzEwMDM4NjU5RSAvKiBQcm9jZXNzSWRlbnRpdHkuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdCRERBMzQ5Mjc1QTAxMzAwMDM4NjU5RSAvKiBQ
cm9jZXNzSWRlbnRpdHkuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OwogCQk3QkU3NDI3MzgxRkE5MDZGQkI0RjBGMkMgLyogSlNTVkdHcmFwaGljc0VsZW1l
bnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk1MEM0
QzAyQkVEODkzNkY4MThFMkY5OSAvKiBKU1NWR0dyYXBoaWNzRWxlbWVudC5oICovOyB9OwogCQk3
QkZGNTlGNDI3NTc3MjY3MDA3NzNEMzkgLyogRGlzcGxheUNvbmZpZ3VyYXRpb25Nb25pdG9yLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3QkZGNTlFRjI3
NTc3MUU4MDA3NzNEMzkgLyogRGlzcGxheUNvbmZpZ3VyYXRpb25Nb25pdG9yLmggKi87IHNldHRp
bmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJN0MwMjlDNkUyNDkzQzhG
ODAwMjY4MjA0IC8qIENvbG9yVHlwZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDdDMDI5QzZEMjQ5M0M4RjgwMDI2ODIwNCAvKiBDb2xvclR5cGVzLmgg
Ki87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTExNDA3
LDYgKzExNDA4LDggQEAKIAkJN0JDRDQyREMyNzA1Qzk0OTAwRUIyMTI3IC8qIEFOR0xFVXRpbGl0
aWVzQ29jb2EuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQU5HTEVVdGlsaXRpZXNDb2NvYS5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk3QkREQTMxQzI3NEY5REE0MDAzODY1OUUgLyogR3JhcGhp
Y3NDb250ZXh0R0xDb2NvYS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0
aCA9IEdyYXBoaWNzQ29udGV4dEdMQ29jb2EubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTdCRERBMzFEMjc0RjlEQTUwMDM4NjU5RSAvKiBHcmFwaGljc0NvbnRleHRHTENvY29hLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEdyYXBoaWNzQ29udGV4dEdMQ29jb2Eu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJN0JEREEzNDkyNzVBMDEzMDAwMzg2NTlF
IC8qIFByb2Nlc3NJZGVudGl0eS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQ
cm9jZXNzSWRlbnRpdHkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJN0JEREEzNEIy
NzVBMDEzMDAwMzg2NTlFIC8qIFByb2Nlc3NJZGVudGl0eS5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBQcm9jZXNzSWRlbnRpdHkuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk3QkU3MjY1QjI1NzYzQjhEMDBFODVEOTggLyogUmVtb3RlR3JhcGhpY3ND
b250ZXh0R0xQcm94eUJhc2UuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVtb3RlR3JhcGhpY3ND
b250ZXh0R0xQcm94eUJhc2UuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3QkZG
NTlFRjI3NTc3MUU4MDA3NzNEMzkgLyogRGlzcGxheUNvbmZpZ3VyYXRpb25Nb25pdG9yLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZXhwbGljaXRGaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmg7IGZpbGVFbmNvZGluZyA9IDQ7IHBhdGggPSBEaXNwbGF5Q29uZmlndXJhdGlvbk1vbml0
b3IuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0JGRjU5RjEyNzU3NzFFODAwNzcz
RDM5IC8qIERpc3BsYXlDb25maWd1cmF0aW9uTW9uaXRvci5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBEaXNwbGF5Q29uZmlndXJhdGlvbk1vbml0b3IuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMjk4MDQsNiArMjk4MDcsOCBAQAogCQkJCUExQURB
RjdDMjM2MEZEM0UwMDlDQjc3NiAvKiBQcmV2aWV3Q29udmVydGVyUHJvdmlkZXIuaCAqLywKIAkJ
CQk1MUY2NDVEMjFGRUNEQkM4MDBCNTRERUQgLyogUHJvY2Vzc0lkZW50aWZpZXIuY3BwICovLAog
CQkJCTUxRjY0NUQzMUZFQ0RCQzgwMEI1NERFRCAvKiBQcm9jZXNzSWRlbnRpZmllci5oICovLAor
CQkJCTdCRERBMzRCMjc1QTAxMzAwMDM4NjU5RSAvKiBQcm9jZXNzSWRlbnRpdHkuY3BwICovLAor
CQkJCTdCRERBMzQ5Mjc1QTAxMzAwMDM4NjU5RSAvKiBQcm9jZXNzSWRlbnRpdHkuaCAqLywKIAkJ
CQkxQ0M1NEFGQjI3MEY5MkRBMDA1QkY4QkUgLyogUHJvY2Vzc1F1YWxpZmllZC5oICovLAogCQkJ
CUY0N0E2MzNDMUZGNkZENTAwMDgxQjNDQyAvKiBQcm9taXNlZEF0dGFjaG1lbnRJbmZvLmggKi8s
CiAJCQkJMDA4MUZFRkQxNkIwQTI0NDAwOEFBQTdBIC8qIFB1YmxpY1N1ZmZpeC5oICovLApAQCAt
MzYzNjcsNiArMzYzNzIsNyBAQAogCQkJCUI3MUZFNkRGMTEwOTFDQjMwMERBRUY3NyAvKiBQcmlu
dENvbnRleHQuaCBpbiBIZWFkZXJzICovLAogCQkJCTZCMEEwN0YyMjFGQTRCNUMwMEQ1NzM5MSAv
KiBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTFGNjQ1RDUx
RkVDREJDRTAwQjU0REVEIC8qIFByb2Nlc3NJZGVudGlmaWVyLmggaW4gSGVhZGVycyAqLywKKwkJ
CQk3QkREQTM0QzI3NUEwMTMxMDAzODY1OUUgLyogUHJvY2Vzc0lkZW50aXR5LmggaW4gSGVhZGVy
cyAqLywKIAkJCQlBOEVBN0VCQzBBMTk0NUQwMDBBOEVGNUYgLyogUHJvY2Vzc2luZ0luc3RydWN0
aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQ0M1NEFGRTI3MEY5NkFFMDA1QkY4QkUgLyogUHJv
Y2Vzc1F1YWxpZmllZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTQyMDUwMTcyMTQxOTAxQjAwNjZF
RjNCIC8qIFByb2Nlc3NXYXJtaW5nLmggaW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL0xvZ2dpbmcuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xv
Z2dpbmcuaAppbmRleCAzZmJlNDE3YmU5ODFiNzVlNzc5ZGUyMzhmYzRiZTA1YTZkNzMwZmFhLi5k
YzBmNTA5OGI4N2YxODQ1NTI1YmUzYzBiYTQxZjc2NzViMTQwNDdmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9Mb2dnaW5nLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vTG9nZ2luZy5oCkBAIC05NCw2ICs5NCw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICBN
KFBsdWdpbnMpIFwKICAgICBNKFBvcHVwQmxvY2tpbmcpIFwKICAgICBNKFByaXZhdGVDbGlja01l
YXN1cmVtZW50KSBcCisgICAgTShQcm9jZXNzKSBcCiAgICAgTShQcm9ncmVzcykgXAogICAgIE0o
UmVtb3RlSW5zcGVjdG9yKSBcCiAgICAgTShSZXF1ZXN0QW5pbWF0aW9uRnJhbWUpIFwKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Byb2Nlc3NJZGVudGl0eS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9Qcm9jZXNzSWRlbnRpdHkuY3BwCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmRlOGQz
MmFiNGVlMmEwMDJiYzVkMDYxMzIwNzdjNjY4ODRiZjgwMzkKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Qcm9jZXNzSWRlbnRpdHkuY3BwCkBAIC0wLDAgKzEsNjUg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAq
IENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBP
UiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
CisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVk
ZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiUHJvY2Vzc0lkZW50aXR5LmgiCisKKyNpbmNsdWRlICJM
b2dnaW5nLmgiCisKKyNpZiBIQVZFKFRBU0tfSURFTlRJVFlfVE9LRU4pCisjaW5jbHVkZSA8bWFj
aC9tYWNoLmg+CisjZW5kaWYKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitQcm9jZXNzSWRlbnRp
dHk6OlByb2Nlc3NJZGVudGl0eShDdXJyZW50UHJvY2Vzc1RhZykKK3sKKyNpZiBIQVZFKFRBU0tf
SURFTlRJVFlfVE9LRU4pCisgICAgdGFza19pZF90b2tlbl90IGlkZW50aXR5VG9rZW47CisgICAg
a2Vybl9yZXR1cm5fdCBrciA9IHRhc2tfY3JlYXRlX2lkZW50aXR5X3Rva2VuKG1hY2hfdGFza19z
ZWxmKCksICZpZGVudGl0eVRva2VuKTsKKyAgICBpZiAoa3IgPT0gS0VSTl9TVUNDRVNTKQorICAg
ICAgICBtX3Rhc2tJZFRva2VuID0gTWFjaFNlbmRSaWdodDo6YWRvcHQoaWRlbnRpdHlUb2tlbik7
CisgICAgZWxzZQorICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihQcm9jZXNzLCAidGFza19jcmVh
dGVfaWRlbnRpdHlfdG9rZW4oKSBmYWlsZWQ6ICV7cHJpdmF0ZX1zICgleCkiLCBtYWNoX2Vycm9y
X3N0cmluZyhrciksIGtyKTsKKyNlbmRpZgorfQorCitQcm9jZXNzSWRlbnRpdHk6Om9wZXJhdG9y
IGJvb2woKSBjb25zdAoreworI2lmIEhBVkUoVEFTS19JREVOVElUWV9UT0tFTikKKyAgICByZXR1
cm4gc3RhdGljX2Nhc3Q8Ym9vbD4obV90YXNrSWRUb2tlbik7CisjZWxzZQorICAgIHJldHVybiBm
YWxzZTsKKyNlbmRpZgorfQorCisjaWYgSEFWRShUQVNLX0lERU5USVRZX1RPS0VOKQorUHJvY2Vz
c0lkZW50aXR5OjpQcm9jZXNzSWRlbnRpdHkoTWFjaFNlbmRSaWdodCYmIHRhc2tJZFRva2VuKQor
ICAgIDogbV90YXNrSWRUb2tlbihXVEZNb3ZlKHRhc2tJZFRva2VuKSkKK3sKK30KKyNlbmRpZgor
Cit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Qcm9jZXNzSWRlbnRpdHku
aCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Byb2Nlc3NJZGVudGl0eS5oCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
Ljk1MmU1NjQ4ZWFiNTA1Njc3NzlhYmIwNTBlY2ZmMjUwMGZkMjU1ZGMKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Qcm9jZXNzSWRlbnRpdHkuaApAQCAtMCwwICsx
LDkxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
CisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklU
UzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3By
YWdtYSBvbmNlCisKKyNpbmNsdWRlIDxvcHRpb25hbD4KKworI2lmIEhBVkUoVEFTS19JREVOVElU
WV9UT0tFTikKKyNpbmNsdWRlIDx3dGYvTWFjaFNlbmRSaWdodC5oPgorI2Vsc2UKKyNpbmNsdWRl
IDx2YXJpYW50PgorI2VuZGlmCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworLy8gT2JqZWN0IHRv
IGFjY2VzcyBwcm9vZiBvZiBwcm9jZXNzIGlkZW50aXR5LgorLy8gUHJvY2Vzc0lkZW50aWZpZXIg
aWRlbnRpZmllcyBhIHByb2Nlc3MuCisvLyBQcm9jZXNzSWRlbnRpdHkgZ3JhbnRzIGFjY2VzcyB0
byB0aGUgaWRlbnRpdHkuCisvLyBFbXB0eSBQcm9jZXNzSWRlbnRpdHkgZG9lcyBub3QgZG8gYW55
dGhpbmcuCitjbGFzcyBQcm9jZXNzSWRlbnRpdHkgeworcHVibGljOgorICAgIC8vIENyZWF0ZXMg
YW4gcHJvY2VzcyBpZGVudGl0eSBmb3IgY3VycmVudCBwcm9jZXNzIG9yIGVtcHR5IG9uIGVycm9y
LgorICAgIGVudW0gQ3VycmVudFByb2Nlc3NUYWcgeyBDdXJyZW50UHJvY2VzcyB9OworICAgIFdF
QkNPUkVfRVhQT1JUIGV4cGxpY2l0IFByb2Nlc3NJZGVudGl0eShDdXJyZW50UHJvY2Vzc1RhZyk7
CisKKyAgICAvLyBDcmVhdGVzIGFuIGVtcHR5IHByb2Nlc3MgaWRlbnRpdHkgdGhhdCBkb2VzIG5v
dCBncmFudCBhbnkgYWNjZXNzLgorICAgIFByb2Nlc3NJZGVudGl0eSgpID0gZGVmYXVsdDsKKwor
ICAgIC8vIFJldHVybnMgdHJ1ZSBmb3IgYSBwcm9jZXNzIGlkZW50aXR5IG9yIGZhbHNlIG9uIGVt
cHR5IGlkZW50aXR5LgorICAgIFdFQkNPUkVfRVhQT1JUIG9wZXJhdG9yIGJvb2woKSBjb25zdDsK
KworI2lmIEhBVkUoVEFTS19JREVOVElUWV9UT0tFTikKKyAgICB0YXNrX2lkX3Rva2VuX3QgdGFz
a0lkVG9rZW4oKSBjb25zdCB7IHJldHVybiBtX3Rhc2tJZFRva2VuLnNlbmRSaWdodCgpOyB9Cisj
ZW5kaWYKKworICAgIHRlbXBsYXRlPHR5cGVuYW1lIEVuY29kZXI+IHZvaWQgZW5jb2RlKEVuY29k
ZXImKSBjb25zdDsKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBEZWNvZGVyPiBzdGF0aWMgc3RkOjpv
cHRpb25hbDxQcm9jZXNzSWRlbnRpdHk+IGRlY29kZShEZWNvZGVyJik7CisKK3ByaXZhdGU6Cisj
aWYgSEFWRShUQVNLX0lERU5USVRZX1RPS0VOKQorICAgIFdFQkNPUkVfRVhQT1JUIFByb2Nlc3NJ
ZGVudGl0eShNYWNoU2VuZFJpZ2h0JiYgdGFza0lkVG9rZW4pOworICAgIE1hY2hTZW5kUmlnaHQg
bV90YXNrSWRUb2tlbjsKKyNlbmRpZgorfTsKKwordGVtcGxhdGU8dHlwZW5hbWUgRW5jb2Rlcj4g
dm9pZCBQcm9jZXNzSWRlbnRpdHk6OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAorewor
I2lmIEhBVkUoVEFTS19JREVOVElUWV9UT0tFTikKKyAgICBlbmNvZGVyIDw8IG1fdGFza0lkVG9r
ZW47CisjZWxzZQorICAgIFVOVVNFRF9QQVJBTShlbmNvZGVyKTsKKyNlbmRpZgorfQorCit0ZW1w
bGF0ZTx0eXBlbmFtZSBEZWNvZGVyPiBzdGQ6Om9wdGlvbmFsPFByb2Nlc3NJZGVudGl0eT4gUHJv
Y2Vzc0lkZW50aXR5OjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKK3sKKyNpZiBIQVZFKFRBU0tf
SURFTlRJVFlfVE9LRU4pCisgICAgc3RkOjpvcHRpb25hbDxNYWNoU2VuZFJpZ2h0PiBpZGVudGl0
eVNlbmRSaWdodDsKKyAgICBkZWNvZGVyID4+IGlkZW50aXR5U2VuZFJpZ2h0OworICAgIGlmIChp
ZGVudGl0eVNlbmRSaWdodCkKKyAgICAgICAgcmV0dXJuIFByb2Nlc3NJZGVudGl0eSB7IFdURk1v
dmUoKmlkZW50aXR5U2VuZFJpZ2h0KSB9OworICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisjZWxz
ZQorICAgIFVOVVNFRF9QQVJBTShkZWNvZGVyKTsKKyAgICByZXR1cm4gUHJvY2Vzc0lkZW50aXR5
IHsgfTsKKyNlbmRpZgorfQorCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9SZW1vdGVWaWRlb1NhbXBsZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvUmVtb3RlVmlkZW9TYW1wbGUuaAppbmRleCBhNjE3MGIzMjhmYzQ0YWNlNjkzZGNk
YjM1ZWU0ZDNjZTY4NzMzOGExLi4wODFlMjM1NjVhY2M0ODQwYTgwNGM3ZDA3NGU2ZGYyMDU5ODM5
ZjE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9SZW1vdGVW
aWRlb1NhbXBsZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1JlbW90
ZVZpZGVvU2FtcGxlLmgKQEAgLTM3LDYgKzM3LDggQEAgdHlwZWRlZiBzdHJ1Y3QgX19DVkJ1ZmZl
ciogQ1ZQaXhlbEJ1ZmZlclJlZjsKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCitjbGFzcyBQcm9j
ZXNzSWRlbnRpdHk7CisKIGNsYXNzIFJlbW90ZVZpZGVvU2FtcGxlIHsKIHB1YmxpYzoKICAgICBS
ZW1vdGVWaWRlb1NhbXBsZSgpID0gZGVmYXVsdDsKQEAgLTQ4LDkgKzUwLDcgQEAgcHVibGljOgog
ICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8UmVtb3RlVmlkZW9TYW1w
bGU+IGNyZWF0ZShSZXRhaW5QdHI8Q1ZQaXhlbEJ1ZmZlclJlZj4mJiwgTWVkaWFUaW1lJiYgcHJl
c2VudGF0aW9uVGltZSwgTWVkaWFTYW1wbGU6OlZpZGVvUm90YXRpb24gPSBNZWRpYVNhbXBsZTo6
VmlkZW9Sb3RhdGlvbjo6Tm9uZSk7CiAgICAgV0VCQ09SRV9FWFBPUlQgSU9TdXJmYWNlUmVmIHN1
cmZhY2UoKSBjb25zdDsKIAotI2lmIEhBVkUoSU9TVVJGQUNFX1NFVF9PV05FUlNISVBfSURFTlRJ
VFkpCi0gICAgdm9pZCBzZXRPd25lcnNoaXBJZGVudGl0eSh0YXNrX2lkX3Rva2VuX3QgbmV3T3du
ZXIpOwotI2VuZGlmCisgICAgdm9pZCBzZXRPd25lcnNoaXBJZGVudGl0eShjb25zdCBQcm9jZXNz
SWRlbnRpdHkmKTsKIAogICAgIGNvbnN0IE1lZGlhVGltZSYgdGltZSgpIGNvbnN0IHsgcmV0dXJu
IG1fdGltZTsgfQogICAgIHVpbnQzMl90IHZpZGVvRm9ybWF0KCkgY29uc3QgeyByZXR1cm4gbV92
aWRlb0Zvcm1hdDsgfQpAQCAtMTE5LDEzICsxMTksMTEgQEAgcHJpdmF0ZToKICAgICBib29sIG1f
bWlycm9yZWQgeyBmYWxzZSB9OwogfTsKIAotI2lmIEhBVkUoSU9TVVJGQUNFX1NFVF9PV05FUlNI
SVBfSURFTlRJVFkpCi1pbmxpbmUgdm9pZCBSZW1vdGVWaWRlb1NhbXBsZTo6c2V0T3duZXJzaGlw
SWRlbnRpdHkodGFza19pZF90b2tlbl90IG5ld093bmVyKQoraW5saW5lIHZvaWQgUmVtb3RlVmlk
ZW9TYW1wbGU6OnNldE93bmVyc2hpcElkZW50aXR5KGNvbnN0IFByb2Nlc3NJZGVudGl0eSYgcmVz
b3VyY2VPd25lcikKIHsKICAgICBpZiAobV9pb1N1cmZhY2UpCi0gICAgICAgIG1faW9TdXJmYWNl
LT5zZXRPd25lcnNoaXBJZGVudGl0eShuZXdPd25lcik7CisgICAgICAgIG1faW9TdXJmYWNlLT5z
ZXRPd25lcnNoaXBJZGVudGl0eShyZXNvdXJjZU93bmVyKTsKIH0KLSNlbmRpZgogCiB9CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2FuZ2xlL0dyYXBoaWNz
Q29udGV4dEdMQU5HTEUuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2FuZ2xl
L0dyYXBoaWNzQ29udGV4dEdMQU5HTEUuaAppbmRleCA0M2Q1ZDI5MGRkNjgyY2E1OTY1NjAxMTBh
NjZhNWE3ZGE4Zjg1MmEwLi45NzRlYmIzNTFmYzYzZDM4NGZkNGE3Yzk5NzlhZjBkMjY0NTgzOWMw
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hbmdsZS9HcmFw
aGljc0NvbnRleHRHTEFOR0xFLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvYW5nbGUvR3JhcGhpY3NDb250ZXh0R0xBTkdMRS5oCkBAIC0zNiw2ICszNiw3IEBACiAjaWYg
UExBVEZPUk0oQ09DT0EpCiAjaW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0R0xJT1N1cmZhY2VTd2Fw
Q2hhaW4uaCIKICNpbmNsdWRlICJJT1N1cmZhY2UuaCIKKyNpbmNsdWRlICJQcm9jZXNzSWRlbnRp
dHkuaCIKICNlbmRpZgogCiAKQEAgLTQyNyw2ICs0MjgsNyBAQCBwcm90ZWN0ZWQ6CiAgICAgc3Rk
Ojp1bmlxdWVfcHRyPEV4dGVuc2lvbnNHTEFOR0xFPiBtX2V4dGVuc2lvbnM7CiAKICNpZiBQTEFU
Rk9STShDT0NPQSkKKyAgICAvLyBGSVhNRTogTW92ZSB0aGVzZSB0byBHcmFwaGljc0NvbnRleHRH
TENvY29hLgogICAgIEdyYXBoaWNzQ29udGV4dEdMSU9TdXJmYWNlU3dhcENoYWluIG1fc3dhcENo
YWluOwogICAgIEVHTERpc3BsYXkgbV9kaXNwbGF5T2JqIHsgbnVsbHB0ciB9OwogICAgIFBsYXRm
b3JtR3JhcGhpY3NDb250ZXh0R0wgbV9jb250ZXh0T2JqIHsgbnVsbHB0ciB9OwpAQCAtNDM2LDYg
KzQzOCw3IEBAIHByb3RlY3RlZDoKICAgICAvLyBXaGVuIHByZXNlcnZlRHJhd2luZ0J1ZmZlciA9
PSB0cnVlLCB0aGlzIGlzIGJsaXR0ZWQgdG8gZHVyaW5nIGRpc3BsYXkgcHJlcGFyZS4KICAgICBz
dGQ6OnVuaXF1ZV9wdHI8SU9TdXJmYWNlPiBtX2Rpc3BsYXlCdWZmZXJCYWNraW5nOwogICAgIHZv
aWQqIG1fZGlzcGxheUJ1ZmZlclBidWZmZXIgeyBudWxscHRyIH07CisgICAgUHJvY2Vzc0lkZW50
aXR5IG1fcmVzb3VyY2VPd25lcjsKICNlbmRpZgogI2lmIFVTRShDT09SRElOQVRFRF9HUkFQSElD
UykKICAgICBHQ0dMdWludCBtX2NvbXBvc2l0b3JUZXh0dXJlIHsgMCB9OwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvR3JhcGhpY3NDb250ZXh0R0xD
b2NvYS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvR3JhcGhpY3ND
b250ZXh0R0xDb2NvYS5oCmluZGV4IGE2NDhmY2QyZWM0ZjBiOWI1MWUzMDIzNjllMDEyNDliNTJk
OWI0ZTQuLjkxZTY0NzA4MDNhNTQ4YzYxYjk1ODY3NzRiY2E5NTUxNWQ5NWRkODggMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0dyYXBoaWNzQ29udGV4
dEdMQ29jb2EuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9H
cmFwaGljc0NvbnRleHRHTENvY29hLmgKQEAgLTQyLDkgKzQyLDExIEBAIGNsYXNzIEdyYXBoaWNz
Q29udGV4dEdMQ1ZDb2NvYTsKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCitjbGFzcyBQcm9jZXNz
SWRlbnRpdHk7CisKIGNsYXNzIFdFQkNPUkVfRVhQT1JUIEdyYXBoaWNzQ29udGV4dEdMQ29jb2Eg
OiBwdWJsaWMgR3JhcGhpY3NDb250ZXh0R0xBTkdMRSB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJl
ZlB0cjxHcmFwaGljc0NvbnRleHRHTENvY29hPiBjcmVhdGUoV2ViQ29yZTo6R3JhcGhpY3NDb250
ZXh0R0xBdHRyaWJ1dGVzJiYpOworICAgIHN0YXRpYyBSZWZQdHI8R3JhcGhpY3NDb250ZXh0R0xD
b2NvYT4gY3JlYXRlKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dEdMQXR0cmlidXRlcyYmLCBQcm9j
ZXNzSWRlbnRpdHkmJiByZXNvdXJjZU93bmVyKTsKICAgICB+R3JhcGhpY3NDb250ZXh0R0xDb2Nv
YSgpOwogICAgIElPU3VyZmFjZSogZGlzcGxheUJ1ZmZlcigpOwogICAgIHZvaWQgbWFya0Rpc3Bs
YXlCdWZmZXJJblVzZSgpOwpAQCAtNzYsOSArNzgsOCBAQCBwdWJsaWM6CiAgICAgdm9pZCB1cGRh
dGVDb250ZXh0T25EaXNwbGF5UmVjb25maWd1cmF0aW9uKCk7CiAjZW5kaWYKIHByb3RlY3RlZDoK
LSAgICBHcmFwaGljc0NvbnRleHRHTENvY29hKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dEdMQXR0
cmlidXRlcyYmKTsKKyAgICBHcmFwaGljc0NvbnRleHRHTENvY29hKFdlYkNvcmU6OkdyYXBoaWNz
Q29udGV4dEdMQXR0cmlidXRlcyYmLCBQcm9jZXNzSWRlbnRpdHkmJiByZXNvdXJjZU93bmVyKTsK
ICAgICBib29sIGlzVmFsaWQoKSBjb25zdDsKLQogI2lmIEVOQUJMRShWSURFTykKICAgICBzdGQ6
OnVuaXF1ZV9wdHI8R3JhcGhpY3NDb250ZXh0R0xDVkNvY29hPiBtX2N2OwogI2VuZGlmCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9HcmFwaGljc0Nv
bnRleHRHTENvY29hLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2Ev
R3JhcGhpY3NDb250ZXh0R0xDb2NvYS5tbQppbmRleCA1YWYzNWNjMzhhOGIyNzJmODgxNmZmZWJh
YzNiZDczN2NiMDUwZDJlLi45YWIyZDc0NDEwYTA2YmMwZGU2NDE1MGU4ZTEyMDNlMDUzYWQ1OTRi
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9HcmFw
aGljc0NvbnRleHRHTENvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2NvY29hL0dyYXBoaWNzQ29udGV4dEdMQ29jb2EubW0KQEAgLTM1LDYgKzM1LDcgQEAKICNp
bXBvcnQgIkdyYXBoaWNzQ29udGV4dEdMSU9TdXJmYWNlU3dhcENoYWluLmgiCiAjaW1wb3J0ICJH
cmFwaGljc0NvbnRleHRHTE9wZW5HTE1hbmFnZXIuaCIKICNpbXBvcnQgIkxvZ2dpbmcuaCIKKyNp
bXBvcnQgIlByb2Nlc3NJZGVudGl0eS5oIgogI2ltcG9ydCAiUnVudGltZUFwcGxpY2F0aW9uQ2hl
Y2tzLmgiCiAjaW1wb3J0IDxDb3JlR3JhcGhpY3MvQ0dCaXRtYXBDb250ZXh0Lmg+CiAjaW1wb3J0
IDxNZXRhbC9NZXRhbC5oPgpAQCAtMTkyLDE5ICsxOTMsMjIgQEAgc3RhdGljIGJvb2wgbmVlZHNF
QUdMT25NYWMoKQogfQogI2VuZGlmCiAKLVJlZlB0cjxHcmFwaGljc0NvbnRleHRHTENvY29hPiBH
cmFwaGljc0NvbnRleHRHTENvY29hOjpjcmVhdGUoR3JhcGhpY3NDb250ZXh0R0xBdHRyaWJ1dGVz
JiYgYXR0cmlidXRlcykKK1JlZlB0cjxHcmFwaGljc0NvbnRleHRHTENvY29hPiBHcmFwaGljc0Nv
bnRleHRHTENvY29hOjpjcmVhdGUoR3JhcGhpY3NDb250ZXh0R0xBdHRyaWJ1dGVzJiYgYXR0cmli
dXRlcywgUHJvY2Vzc0lkZW50aXR5JiYgcmVzb3VyY2VPd25lcikKIHsKLSAgICBhdXRvIGNvbnRl
eHQgPSBhZG9wdFJlZigqbmV3IEdyYXBoaWNzQ29udGV4dEdMQ29jb2EoV1RGTW92ZShhdHRyaWJ1
dGVzKSkpOworICAgIGF1dG8gY29udGV4dCA9IGFkb3B0UmVmKCpuZXcgR3JhcGhpY3NDb250ZXh0
R0xDb2NvYShXVEZNb3ZlKGF0dHJpYnV0ZXMpLCBXVEZNb3ZlKHJlc291cmNlT3duZXIpKSk7CiAg
ICAgaWYgKCFjb250ZXh0LT5pc1ZhbGlkKCkpCiAgICAgICAgIHJldHVybiBudWxscHRyOwogICAg
IHJldHVybiBjb250ZXh0OwogfQogCi1HcmFwaGljc0NvbnRleHRHTENvY29hOjpHcmFwaGljc0Nv
bnRleHRHTENvY29hKEdyYXBoaWNzQ29udGV4dEdMQXR0cmlidXRlcyYmIGNyZWF0aW9uQXR0cmli
dXRlcykKK0dyYXBoaWNzQ29udGV4dEdMQ29jb2E6OkdyYXBoaWNzQ29udGV4dEdMQ29jb2EoR3Jh
cGhpY3NDb250ZXh0R0xBdHRyaWJ1dGVzJiYgY3JlYXRpb25BdHRyaWJ1dGVzLCBQcm9jZXNzSWRl
bnRpdHkmJiByZXNvdXJjZU93bmVyKQogICAgIDogR3JhcGhpY3NDb250ZXh0R0xBTkdMRShXVEZN
b3ZlKGNyZWF0aW9uQXR0cmlidXRlcykpCiB7CiAgICAgaWYgKCFpc1ZhbGlkKCkpCiAgICAgICAg
IHJldHVybjsKKyAgICAvLyBGSVhNRTogTW92ZSB0aGlzIHRvIGluaXRpYWxpemVyIGxpc3Qgb25j
ZSBtX3Jlc291cmNlT3duZXIgbW92ZXMgdG8gR3JhcGhpY3NDb250ZXh0R0xDb2NvYS4KKyAgICBt
X3Jlc291cmNlT3duZXIgPSBXVEZNb3ZlKHJlc291cmNlT3duZXIpOworCiAjaWYgUExBVEZPUk0o
TUFDKQogICAgIGF1dG8gYXR0cmlidXRlcyA9IGNvbnRleHRBdHRyaWJ1dGVzKCk7CiAgICAgaWYg
KCFhdHRyaWJ1dGVzLnVzZU1ldGFsICYmIGF0dHJpYnV0ZXMuZWZmZWN0aXZlUG93ZXJQcmVmZXJl
bmNlKCkgPT0gR3JhcGhpY3NDb250ZXh0R0xQb3dlclByZWZlcmVuY2U6OkhpZ2hQZXJmb3JtYW5j
ZSkKQEAgLTU1Nyw3ICs1NjEsOCBAQCBib29sIEdyYXBoaWNzQ29udGV4dEdMQU5HTEU6OmFsbG9j
YXRlQW5kQmluZERpc3BsYXlCdWZmZXJCYWNraW5nKCkKICAgICBhdXRvIGJhY2tpbmcgPSBJT1N1
cmZhY2U6OmNyZWF0ZShnZXRJbnRlcm5hbEZyYW1lYnVmZmVyU2l6ZSgpLCBEZXN0aW5hdGlvbkNv
bG9yU3BhY2U6OlNSR0IoKSk7CiAgICAgaWYgKCFiYWNraW5nKQogICAgICAgICByZXR1cm4gZmFs
c2U7Ci0KKyAgICBpZiAobV9yZXNvdXJjZU93bmVyKQorICAgICAgICBiYWNraW5nLT5zZXRPd25l
cnNoaXBJZGVudGl0eShtX3Jlc291cmNlT3duZXIpOwogICAgIGJhY2tpbmctPm1pZ3JhdGVDb2xv
clNwYWNlVG9Qcm9wZXJ0aWVzKCk7CiAKICAgICBjb25zdCBib29sIHVzaW5nQWxwaGEgPSBjb250
ZXh0QXR0cmlidXRlcygpLmFscGhhOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY29jb2EvSU9TdXJmYWNlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jb2NvYS9JT1N1cmZhY2UuaAppbmRleCA1NjUyNDc4MjJkYmEyOWY3NjAwYjk0MDdl
NmY0YWNiOGMxYTA2YWFjLi4xZTljNzMyOGRkYzc1NmJjNDZlMjhmMWE1ZWE0YWY1NDNjNGFhNmJm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9JT1N1
cmZhY2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9JT1N1
cmZhY2UuaApAQCAtNDYsNiArNDYsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBHcmFw
aGljc0NvbnRleHQ7CiBjbGFzcyBIb3N0V2luZG93OwogY2xhc3MgSW1hZ2VCdWZmZXI7CitjbGFz
cyBQcm9jZXNzSWRlbnRpdHk7CiAKIGVudW0gY2xhc3MgUGl4ZWxGb3JtYXQgOiB1aW50OF90Owog
ZW51bSBjbGFzcyBWb2xhdGlsaXR5U3RhdGUgOiB1aW50OF90OwpAQCAtMTU5LDkgKzE2MCw3IEBA
IHB1YmxpYzoKICAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgdm9pZCBjb252ZXJ0VG9Gb3JtYXQo
c3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OklPU3VyZmFjZT4mJiBpblN1cmZhY2UsIEZvcm1hdCwg
RnVuY3Rpb248dm9pZChzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6SU9TdXJmYWNlPik+JiYpOwog
I2VuZGlmIC8vIEhBVkUoSU9TVVJGQUNFX0FDQ0VMRVJBVE9SKQogCi0jaWYgSEFWRShJT1NVUkZB
Q0VfU0VUX09XTkVSU0hJUF9JREVOVElUWSkKLSAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldE93
bmVyc2hpcElkZW50aXR5KHRhc2tfaWRfdG9rZW5fdCBuZXdPd25lcik7Ci0jZW5kaWYKKyAgICBX
RUJDT1JFX0VYUE9SVCB2b2lkIHNldE93bmVyc2hpcElkZW50aXR5KGNvbnN0IFByb2Nlc3NJZGVu
dGl0eSYpOwogCiAgICAgdm9pZCBtaWdyYXRlQ29sb3JTcGFjZVRvUHJvcGVydGllcygpOwogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9JT1N1cmZh
Y2UubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9JT1N1cmZhY2Uu
bW0KaW5kZXggMDExMTY1Y2UxMWFiY2U2NzVjNGI0N2JmOTE1ZDRjODFlNmNlZTk5NS4uMDFjMzJi
ODIxNTk1NGE5YzI1NzBhYjMxZmQzNDlhYzMyNDJkMzViZCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvSU9TdXJmYWNlLm1tCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0lPU3VyZmFjZS5tbQpAQCAtMzQsNiArMzQs
NyBAQAogI2ltcG9ydCAiSW1hZ2VCdWZmZXIuaCIKICNpbXBvcnQgIkxvZ2dpbmcuaCIKICNpbXBv
cnQgIlBsYXRmb3JtU2NyZWVuLmgiCisjaW1wb3J0ICJQcm9jZXNzSWRlbnRpdHkuaCIKICNpbXBv
cnQgPHBhbC9zcGkvY2cvQ29yZUdyYXBoaWNzU1BJLmg+CiAjaW1wb3J0IDx3dGYvQXNzZXJ0aW9u
cy5oPgogI2ltcG9ydCA8d3RmL01hY2hTZW5kUmlnaHQuaD4KQEAgLTQ4NCwxNCArNDg1LDE4IEBA
IHZvaWQgSU9TdXJmYWNlOjpjb252ZXJ0VG9Gb3JtYXQoc3RkOjp1bmlxdWVfcHRyPElPU3VyZmFj
ZT4mJiBpblN1cmZhY2UsIEZvcm1hdCBmCiAKICNlbmRpZiAvLyBIQVZFKElPU1VSRkFDRV9BQ0NF
TEVSQVRPUikKIAotI2lmIEhBVkUoSU9TVVJGQUNFX1NFVF9PV05FUlNISVBfSURFTlRJVFkpCi12
b2lkIElPU3VyZmFjZTo6c2V0T3duZXJzaGlwSWRlbnRpdHkodGFza19pZF90b2tlbl90IG5ld093
bmVyKQordm9pZCBJT1N1cmZhY2U6OnNldE93bmVyc2hpcElkZW50aXR5KGNvbnN0IFByb2Nlc3NJ
ZGVudGl0eSYgcmVzb3VyY2VPd25lcikKIHsKLSAgICBhdXRvIHJlc3VsdCA9IElPU3VyZmFjZVNl
dE93bmVyc2hpcElkZW50aXR5KG1fc3VyZmFjZS5nZXQoKSwgbmV3T3duZXIsIGtJT1N1cmZhY2VN
ZW1vcnlMZWRnZXJUYWdHcmFwaGljcywgMCk7CisjaWYgSEFWRShJT1NVUkZBQ0VfU0VUX09XTkVS
U0hJUF9JREVOVElUWSkgJiYgSEFWRShUQVNLX0lERU5USVRZX1RPS0VOKQorICAgIEFTU0VSVChy
ZXNvdXJjZU93bmVyKTsKKyAgICB0YXNrX2lkX3Rva2VuX3Qgb3duZXJUYXNrSWRUb2tlbiA9IHJl
c291cmNlT3duZXIudGFza0lkVG9rZW4oKTsKKyAgICBhdXRvIHJlc3VsdCA9IElPU3VyZmFjZVNl
dE93bmVyc2hpcElkZW50aXR5KG1fc3VyZmFjZS5nZXQoKSwgb3duZXJUYXNrSWRUb2tlbiwga0lP
U3VyZmFjZU1lbW9yeUxlZGdlclRhZ0dyYXBoaWNzLCAwKTsKICAgICBpZiAocmVzdWx0ICE9IGtJ
T1JldHVyblN1Y2Nlc3MpCi0gICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKElPU3VyZmFjZSwgIklP
U3VyZmFjZTo6c2V0T3duZXJzaGlwSWRlbnRpdHk6IEZhaWxlZCB0byBjbGFpbSBvd25lcnNoaXAg
b2YgSU9TdXJmYWNlICVwLCBuZXdPd25lcjogJWQsIGVycm9yOiAlZCIsIG1fc3VyZmFjZS5nZXQo
KSwgKGludCluZXdPd25lciwgcmVzdWx0KTsKLX0KKyAgICAgICAgUkVMRUFTRV9MT0dfRVJST1Io
SU9TdXJmYWNlLCAiSU9TdXJmYWNlOjpzZXRPd25lcnNoaXBJZGVudGl0eTogRmFpbGVkIHRvIGNs
YWltIG93bmVyc2hpcCBvZiBJT1N1cmZhY2UgJXAsIHRhc2sgaWQgdG9rZW46ICVkLCBlcnJvcjog
JWQiLCBtX3N1cmZhY2UuZ2V0KCksIChpbnQpb3duZXJUYXNrSWRUb2tlbiwgcmVzdWx0KTsKKyNl
bHNlCisgICAgVU5VU0VEX1BBUkFNKHJlc291cmNlT3duZXIpOwogI2VuZGlmCit9CiAKIHZvaWQg
SU9TdXJmYWNlOjptaWdyYXRlQ29sb3JTcGFjZVRvUHJvcGVydGllcygpCiB7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9XZWJQcm9jZXNzR3JhcGhp
Y3NDb250ZXh0R0xDb2NvYS5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nv
Y29hL1dlYlByb2Nlc3NHcmFwaGljc0NvbnRleHRHTENvY29hLm1tCmluZGV4IDI1NDI2MjMwZGZl
ZGFkMmM1ZWI5MTA0MjRhMDhhNzJlMzcxN2IyZDcuLjhkNWQyNWFiMTBiNDVlM2Y5YTZlODM4YWUx
MDk0MWU2ZmMwZTVlMzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2NvY29hL1dlYlByb2Nlc3NHcmFwaGljc0NvbnRleHRHTENvY29hLm1tCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1dlYlByb2Nlc3NHcmFwaGljc0NvbnRl
eHRHTENvY29hLm1tCkBAIC0yOSw2ICsyOSw3IEBACiAjaWYgRU5BQkxFKFdFQkdMKQogI2ltcG9y
dCAiR3JhcGhpY3NDb250ZXh0R0xDb2NvYS5oIiAvLyBOT0xJTlQKICNpbXBvcnQgIkdyYXBoaWNz
Q29udGV4dEdMT3BlbkdMTWFuYWdlci5oIgorI2ltcG9ydCAiUHJvY2Vzc0lkZW50aXR5LmgiCiAj
aW1wb3J0ICJXZWJHTExheWVyLmgiCiAjaW1wb3J0IDx3dGYvQmxvY2tPYmpDRXhjZXB0aW9ucy5o
PgogCkBAIC03Nyw3ICs3OCw3IEBAIHByaXZhdGU6CiB9OwogCiBXZWJQcm9jZXNzR3JhcGhpY3ND
b250ZXh0R0xDb2NvYTo6V2ViUHJvY2Vzc0dyYXBoaWNzQ29udGV4dEdMQ29jb2EoR3JhcGhpY3ND
b250ZXh0R0xBdHRyaWJ1dGVzJiYgYXR0cmlidXRlcykKLSAgICA6IEdyYXBoaWNzQ29udGV4dEdM
Q29jb2EoV1RGTW92ZShhdHRyaWJ1dGVzKSkKKyAgICA6IEdyYXBoaWNzQ29udGV4dEdMQ29jb2Eo
V1RGTW92ZShhdHRyaWJ1dGVzKSwgeyB9KQogICAgICwgbV93ZWJHTExheWVyKGNyZWF0ZVdlYkdM
TGF5ZXIoY29udGV4dEF0dHJpYnV0ZXMoKSkpCiB7CiAjaWYgUExBVEZPUk0oTUFDKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3Mu
Y3BwIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3Mu
Y3BwCmluZGV4IDkyYzNjYzk3Yjc2NjY0NmUwNjg0MDI4MmIxMGU4ZGYwNTI2YjYwY2UuLjJjYTkw
ZjUwYzNiMWU5YTYxYWY3MWU3NTRjNTgwZTNjN2NjNTY0Y2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvR1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L0dQVVByb2Nlc3MvR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAKQEAgLTIw
NywxMiArMjA3LDExIEBAIHByaXZhdGU6CiAgICAgICAgIG1fcHJvY2Vzcy5zdGFydENhcHR1cmlu
Z0F1ZGlvKCk7CiAgICAgfQogI2VuZGlmCi0jaWYgSEFWRShJT1NVUkZBQ0VfU0VUX09XTkVSU0hJ
UF9JREVOVElUWSkKLSAgICBzdGQ6Om9wdGlvbmFsPHRhc2tfaWRfdG9rZW5fdD4gd2ViUHJvY2Vz
c0lkZW50aXR5VG9rZW4oKSBjb25zdCBmaW5hbAorCisgICAgY29uc3QgUHJvY2Vzc0lkZW50aXR5
JiByZXNvdXJjZU93bmVyKCkgY29uc3QgZmluYWwKICAgICB7Ci0gICAgICAgIHJldHVybiBtX3By
b2Nlc3Mud2ViUHJvY2Vzc0lkZW50aXR5VG9rZW4oKTsKKyAgICAgICAgcmV0dXJuIG1fcHJvY2Vz
cy53ZWJQcm9jZXNzSWRlbnRpdHkoKTsKICAgICB9Ci0jZW5kaWYKIAogICAgIEdQVUNvbm5lY3Rp
b25Ub1dlYlByb2Nlc3MmIG1fcHJvY2VzczsKIH07CkBAIC0yMjgsOSArMjI3LDcgQEAgR1BVQ29u
bmVjdGlvblRvV2ViUHJvY2Vzczo6R1BVQ29ubmVjdGlvblRvV2ViUHJvY2VzcyhHUFVQcm9jZXNz
JiBncHVQcm9jZXNzLCBXZWIKICAgICA6IG1fY29ubmVjdGlvbihJUEM6OkNvbm5lY3Rpb246OmNy
ZWF0ZVNlcnZlckNvbm5lY3Rpb24oY29ubmVjdGlvbklkZW50aWZpZXIsICp0aGlzKSkKICAgICAs
IG1fZ3B1UHJvY2VzcyhncHVQcm9jZXNzKQogICAgICwgbV93ZWJQcm9jZXNzSWRlbnRpZmllcih3
ZWJQcm9jZXNzSWRlbnRpZmllcikKLSNpZiBIQVZFKFRBU0tfSURFTlRJVFlfVE9LRU4pCi0gICAg
LCBtX3dlYlByb2Nlc3NJZGVudGl0eVRva2VuKFdURk1vdmUocGFyYW1ldGVycy53ZWJQcm9jZXNz
SWRlbnRpdHlUb2tlbikpCi0jZW5kaWYKKyAgICAsIG1fd2ViUHJvY2Vzc0lkZW50aXR5KFdURk1v
dmUocGFyYW1ldGVycy53ZWJQcm9jZXNzSWRlbnRpdHkpKQogICAgICwgbV9yZW1vdGVNZWRpYVBs
YXllck1hbmFnZXJQcm94eShtYWtlVW5pcXVlUmVmPFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlclBy
b3h5PigqdGhpcykpCiAgICAgLCBtX3Nlc3Npb25JRChzZXNzaW9uSUQpCiAjaWYgUExBVEZPUk0o
Q09DT0EpICYmIFVTRShMSUJXRUJSVEMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVBy
b2Nlc3MvR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oIGIvU291cmNlL1dlYktpdC9HUFVQcm9j
ZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaAppbmRleCBlMzkyM2RiNTczNDgxYzhlNjlh
OWE3NjEyNjMyNzM3NzA5ZGQ5N2ZhLi5iNDU5MDdmMjU0MzhlM2Q3Yjg4ZjQ3NDZjYzQ4MDhlZjRm
NDI3Y2ZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvR1BVQ29ubmVjdGlv
blRvV2ViUHJvY2Vzcy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9HUFVDb25uZWN0
aW9uVG9XZWJQcm9jZXNzLmgKQEAgLTQxLDYgKzQxLDcgQEAKICNpbmNsdWRlIDxXZWJDb3JlL05v
d1BsYXlpbmdNYW5hZ2VyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9QYWdlSWRlbnRpZmllci5oPgog
I2luY2x1ZGUgPFdlYkNvcmUvUHJvY2Vzc0lkZW50aWZpZXIuaD4KKyNpbmNsdWRlIDxXZWJDb3Jl
L1Byb2Nlc3NJZGVudGl0eS5oPgogI2luY2x1ZGUgPHBhbC9TZXNzaW9uSUQuaD4KICNpbmNsdWRl
IDx3dGYvTG9nZ2VyLmg+CiAjaW5jbHVkZSA8d3RmL01hY2hTZW5kUmlnaHQuaD4KQEAgLTE1NSwx
MCArMTU2LDcgQEAgcHVibGljOgogICAgIHZvaWQgZGlzcGF0Y2hEaXNwbGF5V2FzUmVjb25maWd1
cmVkRm9yVGVzdGluZygpIHsgZGlzcGF0Y2hEaXNwbGF5V2FzUmVjb25maWd1cmVkKCk7IH07CiAj
ZW5kaWYKIAotI2lmIEhBVkUoVEFTS19JREVOVElUWV9UT0tFTikKLSAgICB0YXNrX2lkX3Rva2Vu
X3Qgd2ViUHJvY2Vzc0lkZW50aXR5VG9rZW4oKSBjb25zdCB7IHJldHVybiBzdGF0aWNfY2FzdDx0
YXNrX2lkX3Rva2VuX3Q+KG1fd2ViUHJvY2Vzc0lkZW50aXR5VG9rZW4uc2VuZFJpZ2h0KCkpOyB9
Ci0jZW5kaWYKLQorICAgIGNvbnN0IFdlYkNvcmU6OlByb2Nlc3NJZGVudGl0eSYgd2ViUHJvY2Vz
c0lkZW50aXR5KCkgY29uc3QgeyByZXR1cm4gbV93ZWJQcm9jZXNzSWRlbnRpdHk7IH0KICNpZiBF
TkFCTEUoRU5DUllQVEVEX01FRElBKQogICAgIFJlbW90ZUNETUZhY3RvcnlQcm94eSYgY2RtRmFj
dG9yeVByb3h5KCk7CiAjZW5kaWYKQEAgLTI4Myw5ICsyODEsNyBAQCBwcml2YXRlOgogICAgIElQ
Qzo6TWVzc2FnZVJlY2VpdmVyTWFwIG1fbWVzc2FnZVJlY2VpdmVyTWFwOwogICAgIFJlZjxHUFVQ
cm9jZXNzPiBtX2dwdVByb2Nlc3M7CiAgICAgY29uc3QgV2ViQ29yZTo6UHJvY2Vzc0lkZW50aWZp
ZXIgbV93ZWJQcm9jZXNzSWRlbnRpZmllcjsKLSNpZiBIQVZFKFRBU0tfSURFTlRJVFlfVE9LRU4p
Ci0gICAgTWFjaFNlbmRSaWdodCBtX3dlYlByb2Nlc3NJZGVudGl0eVRva2VuOwotI2VuZGlmCisg
ICAgY29uc3QgV2ViQ29yZTo6UHJvY2Vzc0lkZW50aXR5IG1fd2ViUHJvY2Vzc0lkZW50aXR5Owog
I2lmIEVOQUJMRShXRUJfQVVESU8pCiAgICAgc3RkOjp1bmlxdWVfcHRyPFJlbW90ZUF1ZGlvRGVz
dGluYXRpb25NYW5hZ2VyPiBtX3JlbW90ZUF1ZGlvRGVzdGluYXRpb25NYW5hZ2VyOwogI2VuZGlm
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlR3Jh
cGhpY3NDb250ZXh0R0xDb2NvYS5jcHAgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhp
Y3MvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xDb2NvYS5jcHAKaW5kZXggMTBhNTM2Mjk5Y2YyM2Vi
OWY4NmY1NzI3ZTg1MjM4M2NlOGEwNDAwOC4uOWQ3NjdlYzIxNjUzZTcwZWU0OThiNGU4OTNlZjNk
Nzc4YTMwMDRkYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNz
L1JlbW90ZUdyYXBoaWNzQ29udGV4dEdMQ29jb2EuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BV
UHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVHcmFwaGljc0NvbnRleHRHTENvY29hLmNwcApAQCAtMjks
NiArMjksNyBAQAogI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykgJiYgRU5BQkxFKFdFQkdMKSAmJiBQ
TEFURk9STShDT0NPQSkKIAogI2luY2x1ZGUgIkdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaCIK
KyNpbmNsdWRlIDxXZWJDb3JlL1Byb2Nlc3NJZGVudGl0eS5oPgogI2luY2x1ZGUgPHd0Zi9NYWNo
U2VuZFJpZ2h0Lmg+CiAKIG5hbWVzcGFjZSBXZWJLaXQgewpAQCAtNDUsOSArNDYsNyBAQCBwdWJs
aWM6CiAgICAgdm9pZCBwbGF0Zm9ybVdvcmtRdWV1ZUluaXRpYWxpemUoV2ViQ29yZTo6R3JhcGhp
Y3NDb250ZXh0R0xBdHRyaWJ1dGVzJiYpIGZpbmFsOwogICAgIHZvaWQgcHJlcGFyZUZvckRpc3Bs
YXkoQ29tcGxldGlvbkhhbmRsZXI8dm9pZChXVEY6Ok1hY2hTZW5kUmlnaHQmJik+JiYpIGZpbmFs
OwogcHJpdmF0ZToKLSNpZiBIQVZFKElPU1VSRkFDRV9TRVRfT1dORVJTSElQX0lERU5USVRZKQot
ICAgIHRhc2tfaWRfdG9rZW5fdCBtX3dlYlByb2Nlc3NJZGVudGl0eVRva2VuOwotI2VuZGlmCisg
ICAgY29uc3QgUHJvY2Vzc0lkZW50aXR5IG1fcmVzb3VyY2VPd25lcjsKIH07CiAKIH0KQEAgLTYx
LDkgKzYwLDcgQEAgUmVmPFJlbW90ZUdyYXBoaWNzQ29udGV4dEdMPiBSZW1vdGVHcmFwaGljc0Nv
bnRleHRHTDo6Y3JlYXRlKEdQVUNvbm5lY3Rpb25Ub1dlYlAKIAogUmVtb3RlR3JhcGhpY3NDb250
ZXh0R0xDb2NvYTo6UmVtb3RlR3JhcGhpY3NDb250ZXh0R0xDb2NvYShHUFVDb25uZWN0aW9uVG9X
ZWJQcm9jZXNzJiBncHVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLCBHcmFwaGljc0NvbnRleHRHTElk
ZW50aWZpZXIgZ3JhcGhpY3NDb250ZXh0R0xJZGVudGlmaWVyLCBSZW1vdGVSZW5kZXJpbmdCYWNr
ZW5kJiByZW5kZXJpbmdCYWNrZW5kLCBJUEM6OlN0cmVhbUNvbm5lY3Rpb25CdWZmZXImJiBzdHJl
YW0pCiAgICAgOiBSZW1vdGVHcmFwaGljc0NvbnRleHRHTChncHVDb25uZWN0aW9uVG9XZWJQcm9j
ZXNzLCBncmFwaGljc0NvbnRleHRHTElkZW50aWZpZXIsIHJlbmRlcmluZ0JhY2tlbmQsIFdURk1v
dmUoc3RyZWFtKSkKLSNpZiBIQVZFKElPU1VSRkFDRV9TRVRfT1dORVJTSElQX0lERU5USVRZKQot
ICAgICwgbV93ZWJQcm9jZXNzSWRlbnRpdHlUb2tlbihncHVDb25uZWN0aW9uVG9XZWJQcm9jZXNz
LndlYlByb2Nlc3NJZGVudGl0eVRva2VuKCkpCi0jZW5kaWYKKyAgICAsIG1fcmVzb3VyY2VPd25l
cihncHVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLndlYlByb2Nlc3NJZGVudGl0eSgpKQogewogCiB9
CkBAIC03MSw3ICs2OCw3IEBAIFJlbW90ZUdyYXBoaWNzQ29udGV4dEdMQ29jb2E6OlJlbW90ZUdy
YXBoaWNzQ29udGV4dEdMQ29jb2EoR1BVQ29ubmVjdGlvblRvV2ViUHJvCiB2b2lkIFJlbW90ZUdy
YXBoaWNzQ29udGV4dEdMQ29jb2E6OnBsYXRmb3JtV29ya1F1ZXVlSW5pdGlhbGl6ZShXZWJDb3Jl
OjpHcmFwaGljc0NvbnRleHRHTEF0dHJpYnV0ZXMmJiBhdHRyaWJ1dGVzKQogewogICAgIGFzc2Vy
dElzQ3VycmVudChtX3N0cmVhbVRocmVhZCk7Ci0gICAgbV9jb250ZXh0ID0gR3JhcGhpY3NDb250
ZXh0R0xDb2NvYTo6Y3JlYXRlKFdURk1vdmUoYXR0cmlidXRlcykpOworICAgIG1fY29udGV4dCA9
IEdyYXBoaWNzQ29udGV4dEdMQ29jb2E6OmNyZWF0ZShXVEZNb3ZlKGF0dHJpYnV0ZXMpLCBQcm9j
ZXNzSWRlbnRpdHkgeyBtX3Jlc291cmNlT3duZXIgfSk7CiB9CiAKIHZvaWQgUmVtb3RlR3JhcGhp
Y3NDb250ZXh0R0xDb2NvYTo6cHJlcGFyZUZvckRpc3BsYXkoQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZChXVEY6Ok1hY2hTZW5kUmlnaHQmJik+JiYgY29tcGxldGlvbkhhbmRsZXIpCkBAIC04MiwxMCAr
NzksNiBAQCB2b2lkIFJlbW90ZUdyYXBoaWNzQ29udGV4dEdMQ29jb2E6OnByZXBhcmVGb3JEaXNw
bGF5KENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV1RGOgogICAgIE1hY2hTZW5kUmlnaHQgc2VuZFJp
Z2h0OwogICAgIGlmIChkaXNwbGF5QnVmZmVyKSB7CiAgICAgICAgIG1fY29udGV4dC0+bWFya0Rp
c3BsYXlCdWZmZXJJblVzZSgpOwotI2lmIEhBVkUoSU9TVVJGQUNFX1NFVF9PV05FUlNISVBfSURF
TlRJVFkpCi0gICAgICAgIC8vIE1hcmsgdGhlIElPU3VyZmFjZSBhcyBiZWluZyBvd25lZCBieSB0
aGUgV2ViUHJvY2VzcyBldmVuIHRob3VnaCBpdCB3YXMgY29uc3RydWN0ZWQgYnkgdGhlIEdQVVBy
b2Nlc3Mgc28gdGhhdCBKZXRzYW0ga25vd3Mgd2hpY2ggcHJvY2VzcyB0byBraWxsLgotICAgICAg
ICBkaXNwbGF5QnVmZmVyLT5zZXRPd25lcnNoaXBJZGVudGl0eShtX3dlYlByb2Nlc3NJZGVudGl0
eVRva2VuKTsKLSNlbmRpZgogICAgICAgICBzZW5kUmlnaHQgPSBkaXNwbGF5QnVmZmVyLT5jcmVh
dGVTZW5kUmlnaHQoKTsKICAgICB9CiAgICAgY29tcGxldGlvbkhhbmRsZXIoV1RGTW92ZShzZW5k
UmlnaHQpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9S
ZW1vdGVJbWFnZUJ1ZmZlci5oIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1Jl
bW90ZUltYWdlQnVmZmVyLmgKaW5kZXggYTNkNDk0ZmU4YmY2YTE5NjQ3ZWYxOTBjOWRiNDA0MmFl
Y2U2NzIyMC4uMzViNDUyNzBiNDU4NDI0ODA5ODEwNDJkYzc1NTM0ZmJhYmFlYmYyZCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZUltYWdlQnVmZmVy
LmgKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZUltYWdlQnVm
ZmVyLmgKQEAgLTY5LDEzICs2OSwxMSBAQCBwdWJsaWM6CiAgICAgICAgICAgICBjb250ZXh0KCku
cmVzdG9yZSgpOwogICAgIH0KIAotI2lmIEhBVkUoSU9TVVJGQUNFX1NFVF9PV05FUlNISVBfSURF
TlRJVFkpCi0gICAgdm9pZCBzZXRQcm9jZXNzT3duZXJzaGlwKHRhc2tfaWRfdG9rZW5fdCBuZXdP
d25lcikKKyAgICB2b2lkIHNldE93bmVyc2hpcElkZW50aXR5KGNvbnN0IFdlYkNvcmU6OlByb2Nl
c3NJZGVudGl0eSYgcmVzb3VyY2VPd25lcikKICAgICB7CiAgICAgICAgIGlmIChtX2JhY2tlbmQp
Ci0gICAgICAgICAgICBtX2JhY2tlbmQtPnNldFByb2Nlc3NPd25lcnNoaXAobmV3T3duZXIpOwor
ICAgICAgICAgICAgbV9iYWNrZW5kLT5zZXRPd25lcnNoaXBJZGVudGl0eShyZXNvdXJjZU93bmVy
KTsKICAgICB9Ci0jZW5kaWYKIAogcHJpdmF0ZToKICAgICBmcmllbmQgY2xhc3MgUmVtb3RlUmVu
ZGVyaW5nQmFja2VuZDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFw
aGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmNwcCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vz
cy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmNwcAppbmRleCBiMGRmNTM0MzQ0OTc4
MmZhNGNlMzFiY2YzMzJkOGZjNWJjYzhiMTAyLi44ZGZiMjVkODI5MjY5NGEyZDgxMmRhY2FiOTg3
YTBjOWViZTM4ZWJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhp
Y3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9j
ZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQuY3BwCkBAIC04NSw2ICs4NSw3IEBA
IFJlbW90ZVJlbmRlcmluZ0JhY2tlbmQ6OlJlbW90ZVJlbmRlcmluZ0JhY2tlbmQoR1BVQ29ubmVj
dGlvblRvV2ViUHJvY2VzcyYgZ3B1Q29uCiAgICAgLCBtX3N0cmVhbUNvbm5lY3Rpb24oSVBDOjpT
dHJlYW1TZXJ2ZXJDb25uZWN0aW9uOjpjcmVhdGUoZ3B1Q29ubmVjdGlvblRvV2ViUHJvY2Vzcy5j
b25uZWN0aW9uKCksIFdURk1vdmUoc3RyZWFtQnVmZmVyKSwgbV93b3JrUXVldWUuZ2V0KCkpKQog
ICAgICwgbV9yZW1vdGVSZXNvdXJjZUNhY2hlKGdwdUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3Mud2Vi
UHJvY2Vzc0lkZW50aWZpZXIoKSkKICAgICAsIG1fZ3B1Q29ubmVjdGlvblRvV2ViUHJvY2Vzcyhn
cHVDb25uZWN0aW9uVG9XZWJQcm9jZXNzKQorICAgICwgbV9yZXNvdXJjZU93bmVyKGdwdUNvbm5l
Y3Rpb25Ub1dlYlByb2Nlc3Mud2ViUHJvY2Vzc0lkZW50aXR5KCkpCiAgICAgLCBtX3JlbmRlcmlu
Z0JhY2tlbmRJZGVudGlmaWVyKGNyZWF0aW9uUGFyYW1ldGVycy5pZGVudGlmaWVyKQogewogICAg
IEFTU0VSVChSdW5Mb29wOjppc01haW4oKSk7CkBAIC0xNzQsMTAgKzE3NSw5IEBAIHZvaWQgUmVt
b3RlUmVuZGVyaW5nQmFja2VuZDo6Y3JlYXRlSW1hZ2VCdWZmZXJXaXRoUXVhbGlmaWVkSWRlbnRp
Zmllcihjb25zdCBGbG9hCiAKICAgICBpZiAocmVuZGVyaW5nTW9kZSA9PSBSZW5kZXJpbmdNb2Rl
OjpBY2NlbGVyYXRlZCkgewogICAgICAgICBpZiAoYXV0byBhY2NlbGVyYXRlZEltYWdlQnVmZmVy
ID0gQWNjZWxlcmF0ZWRSZW1vdGVJbWFnZUJ1ZmZlcjo6Y3JlYXRlKGxvZ2ljYWxTaXplLCByZXNv
bHV0aW9uU2NhbGUsIGNvbG9yU3BhY2UsIHBpeGVsRm9ybWF0LCAqdGhpcywgaW1hZ2VCdWZmZXJS
ZXNvdXJjZUlkZW50aWZpZXIpKSB7Ci0jaWYgSEFWRShJT1NVUkZBQ0VfU0VUX09XTkVSU0hJUF9J
REVOVElUWSkKICAgICAgICAgICAgIC8vIE1hcmsgdGhlIElPU3VyZmFjZSBhcyBiZWluZyBvd25l
ZCBieSB0aGUgV2ViUHJvY2VzcyBldmVuIHRob3VnaCBpdCB3YXMgY29uc3RydWN0ZWQgYnkgdGhl
IEdQVVByb2Nlc3Mgc28gdGhhdCBKZXRzYW0ga25vd3Mgd2hpY2ggcHJvY2VzcyB0byBraWxsLgot
ICAgICAgICAgICAgYWNjZWxlcmF0ZWRJbWFnZUJ1ZmZlci0+c2V0UHJvY2Vzc093bmVyc2hpcCht
X2dwdUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MtPndlYlByb2Nlc3NJZGVudGl0eVRva2VuKCkpOwot
I2VuZGlmCisgICAgICAgICAgICBpZiAobV9yZXNvdXJjZU93bmVyKQorICAgICAgICAgICAgICAg
IGFjY2VsZXJhdGVkSW1hZ2VCdWZmZXItPnNldE93bmVyc2hpcElkZW50aXR5KG1fcmVzb3VyY2VP
d25lcik7CiAgICAgICAgICAgICBpbWFnZUJ1ZmZlciA9IFdURk1vdmUoYWNjZWxlcmF0ZWRJbWFn
ZUJ1ZmZlcik7CiAgICAgICAgIH0KICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQ
VVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5oIGIvU291cmNlL1dlYktp
dC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQuaAppbmRleCBlMzU3
MTVkZDE3ZmVlNjQzNDViMjI2MmQ2OGNlYmVhNGQ3NGFiOTk2Li45YTI2YzQyNGI5MTIxMTAxMThi
NDM2MTg0ZGUzMGI4ZDI4ZGQxNTIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nl
c3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
R1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmgKQEAgLTQ2LDYgKzQ2
LDcgQEAKICNpbmNsdWRlIDxXZWJDb3JlL0Rpc3BsYXlMaXN0SXRlbXMuaD4KICNpbmNsdWRlIDxX
ZWJDb3JlL0Rpc3BsYXlMaXN0UmVwbGF5ZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Byb2Nlc3NJ
ZGVudGlmaWVyLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9Qcm9jZXNzSWRlbnRpdHkuaD4KICNpbmNs
dWRlIDx3dGYvV2Vha1B0ci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC0xMzMsNiArMTM0
LDcgQEAgcHJpdmF0ZToKICAgICBSZWY8SVBDOjpTdHJlYW1TZXJ2ZXJDb25uZWN0aW9uPiBtX3N0
cmVhbUNvbm5lY3Rpb247CiAgICAgUmVtb3RlUmVzb3VyY2VDYWNoZSBtX3JlbW90ZVJlc291cmNl
Q2FjaGU7CiAgICAgUmVmPEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M+IG1fZ3B1Q29ubmVjdGlv
blRvV2ViUHJvY2VzczsKKyAgICBXZWJDb3JlOjpQcm9jZXNzSWRlbnRpdHkgbV9yZXNvdXJjZU93
bmVyOwogICAgIFJlbmRlcmluZ0JhY2tlbmRJZGVudGlmaWVyIG1fcmVuZGVyaW5nQmFja2VuZElk
ZW50aWZpZXI7CiAgICAgSVBDOjpTZW1hcGhvcmUgbV9nZXRQaXhlbEJ1ZmZlclNlbWFwaG9yZTsK
ICAgICBSZWZQdHI8U2hhcmVkTWVtb3J5PiBtX2dldFBpeGVsQnVmZmVyU2hhcmVkTWVtb3J5Owpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL3dlYnJ0Yy9MaWJXZWJSVENDb2Rl
Y3NQcm94eS5tbSBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy93ZWJydGMvTGliV2ViUlRDQ29k
ZWNzUHJveHkubW0KaW5kZXggMTMzZTI2ZTQ3NGUxZDMxOTE2M2U1NTcxOTkyZDBjMGM3MTlkZGUx
NC4uMzBmYTMwY2IzZGM5YzliNDAxZjBjNGVjZmNlMjEwODFlYzQ2ZTVjMSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9HUFVQcm9jZXNzL3dlYnJ0Yy9MaWJXZWJSVENDb2RlY3NQcm94eS5tbQor
KysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mvd2VicnRjL0xpYldlYlJUQ0NvZGVjc1Byb3h5
Lm1tCkBAIC03NiwxNSArNzYsMTAgQEAgdm9pZCBMaWJXZWJSVENDb2RlY3NQcm94eTo6Y2xvc2Uo
KQogCiBzdGF0aWMgRnVuY3Rpb248dm9pZChDVlBpeGVsQnVmZmVyUmVmIHBpeGVsQnVmZmVyLCB1
aW50MzJfdCB0aW1lU3RhbXBOcywgdWludDMyX3QgdGltZVN0YW1wKT4gY3JlYXRlRGVjb2RlckNh
bGxiYWNrKFJUQ0RlY29kZXJJZGVudGlmaWVyIGlkZW50aWZpZXIsIEdQVUNvbm5lY3Rpb25Ub1dl
YlByb2Nlc3MmIGdwdUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MpCiB7Ci0gICAgcmV0dXJuIFtjb25u
ZWN0aW9uID0gUmVmIHsgZ3B1Q29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jb25uZWN0aW9uKCkgfSwK
LSNpZiBIQVZFKElPU1VSRkFDRV9TRVRfT1dORVJTSElQX0lERU5USVRZKQotICAgICAgICB0b2tl
biA9IGdwdUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3Mud2ViUHJvY2Vzc0lkZW50aXR5VG9rZW4oKSwK
LSNlbmRpZgotICAgICAgICBpZGVudGlmaWVyXShDVlBpeGVsQnVmZmVyUmVmIHBpeGVsQnVmZmVy
LCB1aW50MzJfdCB0aW1lU3RhbXBOcywgdWludDMyX3QgdGltZVN0YW1wKSB7CisgICAgcmV0dXJu
IFtjb25uZWN0aW9uID0gUmVmIHsgZ3B1Q29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jb25uZWN0aW9u
KCkgfSwgcmVzb3VyY2VPd25lciA9IGdwdUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3Mud2ViUHJvY2Vz
c0lkZW50aXR5KCksIGlkZW50aWZpZXJdIChDVlBpeGVsQnVmZmVyUmVmIHBpeGVsQnVmZmVyLCB1
aW50MzJfdCB0aW1lU3RhbXBOcywgdWludDMyX3QgdGltZVN0YW1wKSB7CiAgICAgICAgIGlmIChh
dXRvIHNhbXBsZSA9IFdlYkNvcmU6OlJlbW90ZVZpZGVvU2FtcGxlOjpjcmVhdGUocGl4ZWxCdWZm
ZXIsIE1lZGlhVGltZSh0aW1lU3RhbXBOcywgMSkpKSB7Ci0jaWYgSEFWRShJT1NVUkZBQ0VfU0VU
X09XTkVSU0hJUF9JREVOVElUWSkKLSAgICAgICAgICAgIHNhbXBsZS0+c2V0T3duZXJzaGlwSWRl
bnRpdHkodG9rZW4pOwotI2VuZGlmCisgICAgICAgICAgICBpZiAocmVzb3VyY2VPd25lcikKKyAg
ICAgICAgICAgICAgICBzYW1wbGUtPnNldE93bmVyc2hpcElkZW50aXR5KHJlc291cmNlT3duZXIp
OwogICAgICAgICAgICAgY29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6TGliV2ViUlRDQ29kZWNz
OjpDb21wbGV0ZWREZWNvZGluZyB7IGlkZW50aWZpZXIsIHRpbWVTdGFtcCwgKnNhbXBsZSB9LCAw
KTsKICAgICAgICAgfQogICAgIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9H
UFVQcm9jZXNzQ29ubmVjdGlvblBhcmFtZXRlcnMuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0dQ
VVByb2Nlc3NDb25uZWN0aW9uUGFyYW1ldGVycy5oCmluZGV4IDA5NmZkMGUzYmE2YzdlYzExNzc4
Zjk5NGZmZDVlODY3N2UyMGZjNTYuLmVkMzA0OTViMjUyMjg2MWY3NDY0NTJmZTkwOTFiOTY1NjEx
MDY3NzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0dQVVByb2Nlc3NDb25uZWN0
aW9uUGFyYW1ldGVycy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0dQVVByb2Nlc3NDb25u
ZWN0aW9uUGFyYW1ldGVycy5oCkBAIC0yOCwxNCArMjgsMTMgQEAKICNpZiBFTkFCTEUoR1BVX1BS
T0NFU1MpCiAKICNpbmNsdWRlICJXZWJDb3JlQXJndW1lbnRDb2RlcnMuaCIKKyNpbmNsdWRlIDxX
ZWJDb3JlL1Byb2Nlc3NJZGVudGl0eS5oPgogI2luY2x1ZGUgPHd0Zi9NYWNoU2VuZFJpZ2h0Lmg+
CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCiBzdHJ1Y3QgR1BVUHJvY2Vzc0Nvbm5lY3Rpb25QYXJh
bWV0ZXJzIHsKLSNpZiBIQVZFKFRBU0tfSURFTlRJVFlfVE9LRU4pCi0gICAgTWFjaFNlbmRSaWdo
dCB3ZWJQcm9jZXNzSWRlbnRpdHlUb2tlbjsKLSNlbmRpZgorICAgIFdlYkNvcmU6OlByb2Nlc3NJ
ZGVudGl0eSB3ZWJQcm9jZXNzSWRlbnRpdHk7CiAgICAgVmVjdG9yPFN0cmluZz4gb3ZlcnJpZGVM
YW5ndWFnZXM7CiAjaWYgRU5BQkxFKElQQ19URVNUSU5HX0FQSSkKICAgICBib29sIGlnbm9yZUlu
dmFsaWRNZXNzYWdlRm9yVGVzdGluZyB7IGZhbHNlIH07CkBAIC00Niw5ICs0NSw3IEBAIHN0cnVj
dCBHUFVQcm9jZXNzQ29ubmVjdGlvblBhcmFtZXRlcnMgewogCiAgICAgdm9pZCBlbmNvZGUoSVBD
OjpFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogICAgIHsKLSNpZiBIQVZFKFRBU0tfSURFTlRJVFlf
VE9LRU4pCi0gICAgICAgIGVuY29kZXIgPDwgd2ViUHJvY2Vzc0lkZW50aXR5VG9rZW47Ci0jZW5k
aWYKKyAgICAgICAgZW5jb2RlciA8PCB3ZWJQcm9jZXNzSWRlbnRpdHk7CiAgICAgICAgIGVuY29k
ZXIgPDwgb3ZlcnJpZGVMYW5ndWFnZXM7CiAjaWYgRU5BQkxFKElQQ19URVNUSU5HX0FQSSkKICAg
ICAgICAgZW5jb2RlciA8PCBpZ25vcmVJbnZhbGlkTWVzc2FnZUZvclRlc3Rpbmc7CkBAIC02MCwx
MiArNTcsMTAgQEAgc3RydWN0IEdQVVByb2Nlc3NDb25uZWN0aW9uUGFyYW1ldGVycyB7CiAKICAg
ICBzdGF0aWMgc3RkOjpvcHRpb25hbDxHUFVQcm9jZXNzQ29ubmVjdGlvblBhcmFtZXRlcnM+IGRl
Y29kZShJUEM6OkRlY29kZXImIGRlY29kZXIpCiAgICAgewotI2lmIEhBVkUoVEFTS19JREVOVElU
WV9UT0tFTikKLSAgICAgICAgc3RkOjpvcHRpb25hbDxNYWNoU2VuZFJpZ2h0PiB3ZWJQcm9jZXNz
SWRlbnRpdHlUb2tlbjsKLSAgICAgICAgZGVjb2RlciA+PiB3ZWJQcm9jZXNzSWRlbnRpdHlUb2tl
bjsKLSAgICAgICAgaWYgKCF3ZWJQcm9jZXNzSWRlbnRpdHlUb2tlbikKKyAgICAgICAgc3RkOjpv
cHRpb25hbDxXZWJDb3JlOjpQcm9jZXNzSWRlbnRpdHk+IHdlYlByb2Nlc3NJZGVudGl0eTsKKyAg
ICAgICAgZGVjb2RlciA+PiB3ZWJQcm9jZXNzSWRlbnRpdHk7CisgICAgICAgIGlmICghd2ViUHJv
Y2Vzc0lkZW50aXR5KQogICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKLSNlbmRpZgog
CiAgICAgICAgIHN0ZDo6b3B0aW9uYWw8VmVjdG9yPFN0cmluZz4+IG92ZXJyaWRlTGFuZ3VhZ2Vz
OwogICAgICAgICBkZWNvZGVyID4+IG92ZXJyaWRlTGFuZ3VhZ2VzOwpAQCAtODYsOSArODEsNyBA
QCBzdHJ1Y3QgR1BVUHJvY2Vzc0Nvbm5lY3Rpb25QYXJhbWV0ZXJzIHsKICNlbmRpZgogCiAgICAg
ICAgIHJldHVybiBHUFVQcm9jZXNzQ29ubmVjdGlvblBhcmFtZXRlcnMgewotI2lmIEhBVkUoVEFT
S19JREVOVElUWV9UT0tFTikKLSAgICAgICAgICAgIFdURk1vdmUoKndlYlByb2Nlc3NJZGVudGl0
eVRva2VuKSwKLSNlbmRpZgorICAgICAgICAgICAgV1RGTW92ZSgqd2ViUHJvY2Vzc0lkZW50aXR5
KSwKICAgICAgICAgICAgIFdURk1vdmUoKm92ZXJyaWRlTGFuZ3VhZ2VzKSwKICNpZiBFTkFCTEUo
SVBDX1RFU1RJTkdfQVBJKQogICAgICAgICAgICAgKmlnbm9yZUludmFsaWRNZXNzYWdlRm9yVGVz
dGluZywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRp
YUNhcHR1cmVNYW5hZ2VyUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2Ev
VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5jcHAKaW5kZXggMmJiM2JjZGI1ODJkYzg1M2Yy
MDgzZWNlNDQ3MTkzYzQ0MTkzZWM5Mi4uYmRhZjk4ZDEwZGQzNThiZGQ3YmY3OTMzYWJkMTQ4NjUw
N2NjZWQ4NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVXNlck1l
ZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
Q29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5jcHAKQEAgLTU3LDkgKzU3LDEwIEBA
IGNsYXNzIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6OlNvdXJjZVByb3h5CiAgICAgLCBw
cml2YXRlIFJlYWx0aW1lTWVkaWFTb3VyY2U6OlZpZGVvU2FtcGxlT2JzZXJ2ZXIgewogICAgIFdU
Rl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgotICAgIFNvdXJjZVByb3h5KFJlYWx0aW1l
TWVkaWFTb3VyY2VJZGVudGlmaWVyIGlkLCBSZWY8SVBDOjpDb25uZWN0aW9uPiYmIGNvbm5lY3Rp
b24sIFJlZjxSZWFsdGltZU1lZGlhU291cmNlPiYmIHNvdXJjZSkKKyAgICBTb3VyY2VQcm94eShS
ZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciBpZCwgUmVmPElQQzo6Q29ubmVjdGlvbj4mJiBj
b25uZWN0aW9uLCBQcm9jZXNzSWRlbnRpdHkmJiByZXNvdXJjZU93bmVyLCBSZWY8UmVhbHRpbWVN
ZWRpYVNvdXJjZT4mJiBzb3VyY2UpCiAgICAgICAgIDogbV9pZChpZCkKICAgICAgICAgLCBtX2Nv
bm5lY3Rpb24oV1RGTW92ZShjb25uZWN0aW9uKSkKKyAgICAgICAgLCBtX3Jlc291cmNlT3duZXIo
V1RGTW92ZShyZXNvdXJjZU93bmVyKSkKICAgICAgICAgLCBtX3NvdXJjZShXVEZNb3ZlKHNvdXJj
ZSkpCiAgICAgewogICAgICAgICBtX3NvdXJjZS0+YWRkT2JzZXJ2ZXIoKnRoaXMpOwpAQCAtMTI1
LDkgKzEyNiw2IEBAIHB1YmxpYzoKICAgICB9CiAKICAgICB2b2lkIHNldFNob3VsZEFwcGx5Um90
YXRpb24oYm9vbCBzaG91bGRBcHBseVJvdGF0aW9uKSB7IG1fc2hvdWxkQXBwbHlSb3RhdGlvbiA9
IHRydWU7IH0KLSNpZiBIQVZFKElPU1VSRkFDRV9TRVRfT1dORVJTSElQX0lERU5USVRZKQotICAg
IHZvaWQgc2V0V2ViUHJvY2Vzc0lkZW50aXR5VG9rZW4oc3RkOjpvcHRpb25hbDx0YXNrX2lkX3Rv
a2VuX3Q+IHRva2VuKSB7IG1fd2ViUHJvY2Vzc0lkZW50aXR5VG9rZW4gPSB0b2tlbjt9Ci0jZW5k
aWYKIAogcHJpdmF0ZToKICAgICB2b2lkIHNvdXJjZVN0b3BwZWQoKSBmaW5hbCB7CkBAIC0xODgs
MTAgKzE4Niw4IEBAIHByaXZhdGU6CiAgICAgICAgIH0gZWxzZQogICAgICAgICAgICAgcmVtb3Rl
U2FtcGxlID0gUmVtb3RlVmlkZW9TYW1wbGU6OmNyZWF0ZShzYW1wbGUpOwogICAgICAgICBpZiAo
cmVtb3RlU2FtcGxlKSB7Ci0jaWYgSEFWRShJT1NVUkZBQ0VfU0VUX09XTkVSU0hJUF9JREVOVElU
WSkKLSAgICAgICAgICAgIGlmIChtX3dlYlByb2Nlc3NJZGVudGl0eVRva2VuKQotICAgICAgICAg
ICAgICAgIHJlbW90ZVNhbXBsZS0+c2V0T3duZXJzaGlwSWRlbnRpdHkoKm1fd2ViUHJvY2Vzc0lk
ZW50aXR5VG9rZW4pOwotI2VuZGlmCisgICAgICAgICAgICBpZiAobV9yZXNvdXJjZU93bmVyKQor
ICAgICAgICAgICAgICAgIHJlbW90ZVNhbXBsZS0+c2V0T3duZXJzaGlwSWRlbnRpdHkobV9yZXNv
dXJjZU93bmVyKTsKICAgICAgICAgICAgIG1fY29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6UmVt
b3RlQ2FwdHVyZVNhbXBsZU1hbmFnZXI6OlZpZGVvU2FtcGxlQXZhaWxhYmxlKG1faWQsIFdURk1v
dmUoKnJlbW90ZVNhbXBsZSksIG1ldGFkYXRhKSwgMCk7CiAgICAgICAgIH0KICAgICB9CkBAIC0y
NDQsNiArMjQwLDcgQEAgcHJpdmF0ZToKICAgICBSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmll
ciBtX2lkOwogICAgIFdlYWtQdHI8UGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyPiBtX3Nlc3Np
b25NYW5hZ2VyOwogICAgIFJlZjxJUEM6OkNvbm5lY3Rpb24+IG1fY29ubmVjdGlvbjsKKyAgICBQ
cm9jZXNzSWRlbnRpdHkgbV9yZXNvdXJjZU93bmVyOwogICAgIFJlZjxSZWFsdGltZU1lZGlhU291
cmNlPiBtX3NvdXJjZTsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8Q0FSaW5nQnVmZmVyPiBtX3JpbmdC
dWZmZXI7CiAgICAgQ0FBdWRpb1N0cmVhbURlc2NyaXB0aW9uIG1fZGVzY3JpcHRpb24geyB9OwpA
QCAtMjU3LDkgKzI1NCw2IEBAIHByaXZhdGU6CiAgICAgc2l6ZV90IG1fZnJhbWVDaHVua1NpemUg
eyAwIH07CiAgICAgTWVkaWFUaW1lIG1fc3RhcnRUaW1lOwogICAgIGJvb2wgbV9zaG91bGRSZXNl
dCB7IGZhbHNlIH07Ci0jaWYgSEFWRShUQVNLX0lERU5USVRZX1RPS0VOKQotICAgIHN0ZDo6b3B0
aW9uYWw8dGFza19pZF90b2tlbl90PiBtX3dlYlByb2Nlc3NJZGVudGl0eVRva2VuOwotI2VuZGlm
CiB9OwogCiBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OjpVc2VyTWVkaWFDYXB0dXJlTWFu
YWdlclByb3h5KFVuaXF1ZVJlZjxDb25uZWN0aW9uUHJveHk+JiYgY29ubmVjdGlvblByb3h5KQpA
QCAtMzIzLDEyICszMTcsNyBAQCB2b2lkIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6OmNy
ZWF0ZU1lZGlhU291cmNlRm9yQ2FwdHVyZURldmljZVdpdGhDb25zdHJhaQogICAgICAgICB9CiAK
ICAgICAgICAgQVNTRVJUKCFtX3Byb3hpZXMuY29udGFpbnMoaWQpKTsKLSAgICAgICAgYXV0byBw
cm94eSA9IG1ha2VVbmlxdWU8U291cmNlUHJveHk+KGlkLCBtX2Nvbm5lY3Rpb25Qcm94eS0+Y29u
bmVjdGlvbigpLCBXVEZNb3ZlKHNvdXJjZSkpOwotI2lmIEhBVkUoSU9TVVJGQUNFX1NFVF9PV05F
UlNISVBfSURFTlRJVFkpCi0gICAgICAgIGlmIChkZXZpY2UudHlwZSgpICE9IFdlYkNvcmU6OkNh
cHR1cmVEZXZpY2U6OkRldmljZVR5cGU6Ok1pY3JvcGhvbmUpCi0gICAgICAgICAgICBwcm94eS0+
c2V0V2ViUHJvY2Vzc0lkZW50aXR5VG9rZW4obV9jb25uZWN0aW9uUHJveHktPndlYlByb2Nlc3NJ
ZGVudGl0eVRva2VuKCkpOwotI2VuZGlmCi0KKyAgICAgICAgYXV0byBwcm94eSA9IG1ha2VVbmlx
dWU8U291cmNlUHJveHk+KGlkLCBtX2Nvbm5lY3Rpb25Qcm94eS0+Y29ubmVjdGlvbigpLCBQcm9j
ZXNzSWRlbnRpdHkgeyBtX2Nvbm5lY3Rpb25Qcm94eS0+cmVzb3VyY2VPd25lcigpIH0sIFdURk1v
dmUoc291cmNlKSk7CiAgICAgICAgIG1fcHJveGllcy5hZGQoaWQsIFdURk1vdmUocHJveHkpKTsK
ICAgICB9IGVsc2UKICAgICAgICAgaW52YWxpZENvbnN0cmFpbnRzID0gV1RGTW92ZShzb3VyY2VP
ckVycm9yLmVycm9yTWVzc2FnZSk7CkBAIC0zOTQsNyArMzgzLDcgQEAgdm9pZCBVc2VyTWVkaWFD
YXB0dXJlTWFuYWdlclByb3h5OjpjbG9uZShSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciBj
bG9uZWRJRCwKICAgICBNRVNTQUdFX0NIRUNLKG1fcHJveGllcy5jb250YWlucyhjbG9uZWRJRCkp
OwogICAgIE1FU1NBR0VfQ0hFQ0soIW1fcHJveGllcy5jb250YWlucyhuZXdTb3VyY2VJRCkpOwog
ICAgIGlmIChhdXRvKiBwcm94eSA9IG1fcHJveGllcy5nZXQoY2xvbmVkSUQpKQotICAgICAgICBt
X3Byb3hpZXMuYWRkKG5ld1NvdXJjZUlELCBtYWtlVW5pcXVlPFNvdXJjZVByb3h5PihuZXdTb3Vy
Y2VJRCwgbV9jb25uZWN0aW9uUHJveHktPmNvbm5lY3Rpb24oKSwgcHJveHktPnNvdXJjZSgpLmNs
b25lKCkpKTsKKyAgICAgICAgbV9wcm94aWVzLmFkZChuZXdTb3VyY2VJRCwgbWFrZVVuaXF1ZTxT
b3VyY2VQcm94eT4obmV3U291cmNlSUQsIG1fY29ubmVjdGlvblByb3h5LT5jb25uZWN0aW9uKCks
IFByb2Nlc3NJZGVudGl0eSB7IG1fY29ubmVjdGlvblByb3h5LT5yZXNvdXJjZU93bmVyKCkgfSwg
cHJveHktPnNvdXJjZSgpLmNsb25lKCkpKTsKIH0KIAogdm9pZCBVc2VyTWVkaWFDYXB0dXJlTWFu
YWdlclByb3h5OjpyZXF1ZXN0VG9FbmQoUmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgc291
cmNlSUQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVk
aWFDYXB0dXJlTWFuYWdlclByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9V
c2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5LmgKaW5kZXggYTA5NDI5ZGY2NzkxZTkwZjg0YTkz
NDk1ZmIwZWQyODVjY2VkMGQyYy4uZmE4MjljN2M0OTAzZDUxYjU3YTc4OTcxNzg0NzNmODBjYmYy
ODZkZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlh
Q2FwdHVyZU1hbmFnZXJQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29h
L1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkuaApAQCAtMzIsNiArMzIsNyBAQAogI2luY2x1
ZGUgIlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9DYXB0dXJl
RGV2aWNlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9PcmllbnRhdGlvbk5vdGlmaWVyLmg+CisjaW5j
bHVkZSA8V2ViQ29yZS9Qcm9jZXNzSWRlbnRpdHkuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1JlYWx0
aW1lTWVkaWFTb3VyY2UuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1JlYWx0aW1lTWVkaWFTb3VyY2VJ
ZGVudGlmaWVyLmg+CiAjaW5jbHVkZSA8cGFsL3NwaS9jb2NvYS9UQ0NTUEkuaD4KQEAgLTU5LDkg
KzYwLDcgQEAgcHVibGljOgogICAgICAgICB2aXJ0dWFsIGJvb2wgd2lsbFN0YXJ0Q2FwdHVyZShX
ZWJDb3JlOjpDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlKSBjb25zdCA9IDA7CiAgICAgICAgIHZp
cnR1YWwgTG9nZ2VyJiBsb2dnZXIoKSA9IDA7CiAgICAgICAgIHZpcnR1YWwgYm9vbCBzZXRDYXB0
dXJlQXR0cmlidXRpb25TdHJpbmcoKSB7IHJldHVybiB0cnVlOyB9Ci0jaWYgSEFWRShJT1NVUkZB
Q0VfU0VUX09XTkVSU0hJUF9JREVOVElUWSkKLSAgICAgICAgdmlydHVhbCBzdGQ6Om9wdGlvbmFs
PHRhc2tfaWRfdG9rZW5fdD4gd2ViUHJvY2Vzc0lkZW50aXR5VG9rZW4oKSBjb25zdCB7IHJldHVy
biB7IH07IH07Ci0jZW5kaWYKKyAgICAgICAgdmlydHVhbCBjb25zdCBXZWJDb3JlOjpQcm9jZXNz
SWRlbnRpdHkmIHJlc291cmNlT3duZXIoKSBjb25zdCA9IDA7CiAjaWYgRU5BQkxFKEFQUF9QUklW
QUNZX1JFUE9SVCkKICAgICAgICAgdmlydHVhbCB2b2lkIHNldFRDQ0lkZW50aXR5KCkgeyB9CiAj
ZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94
eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwCmluZGV4
IDY2NTZlMmRkZGQzYjQyY2M3MDdlOGEyOGI1ZGE5YWRhNzA4MDk5ZmIuLjYzZTZlMTM3ZmZhYzBh
Mjg5MTEwNWM4OWUwNzZhMTAxZTRhZmU2ZTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2ViUHJvY2Vzc1Byb3h5LmNwcApAQCAtMjE2LDYgKzIxNiwxMyBAQCBwcml2YXRlOgogICAgICAg
ICByZXR1cm4gdHJ1ZTsKICAgICB9CiAKKyAgICBjb25zdCBXZWJDb3JlOjpQcm9jZXNzSWRlbnRp
dHkmIHJlc291cmNlT3duZXIoKSBjb25zdCBmaW5hbAorICAgIHsKKyAgICAgICAgLy8gRklYTUU6
IHNob3VsZCBvYnRhaW4gV2ViQ29udGVudCBwcm9jZXNzIGlkZW50aXR5IGZyb20gV2ViQ29udGVu
dC4KKyAgICAgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFdlYkNvcmU6OlByb2Nlc3NJZGVudGl0
eT4gZHVtbXk7CisgICAgICAgIHJldHVybiBkdW1teS5nZXQoKTsKKyAgICB9CisKICAgICBSZWZQ
dHI8TG9nZ2VyPiBtX2xvZ2dlcjsKICAgICBXZWJQcm9jZXNzUHJveHkmIG1fcHJvY2VzczsKIH07
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL0ltYWdl
QnVmZmVyU2hhcmVhYmxlQml0bWFwQmFja2VuZC5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L0dQVS9ncmFwaGljcy9JbWFnZUJ1ZmZlclNoYXJlYWJsZUJpdG1hcEJhY2tlbmQuaAppbmRleCAx
ODQ3ZmE2ZmJkZTQwNmVkNmE2YWQwNjA0OThiODg1YzVlMzZiYjNkLi5jNWIyNmM0MGU3NDYwMzIy
ZGZhZmUyOWIwY2U2ZTM2NDE2N2U3MmFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvR1BVL2dyYXBoaWNzL0ltYWdlQnVmZmVyU2hhcmVhYmxlQml0bWFwQmFja2VuZC5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvSW1hZ2VCdWZmZXJTaGFy
ZWFibGVCaXRtYXBCYWNrZW5kLmgKQEAgLTMxLDYgKzMxLDEwIEBACiAjaW5jbHVkZSA8V2ViQ29y
ZS9QbGF0Zm9ybUltYWdlQnVmZmVyQmFja2VuZC5oPgogI2luY2x1ZGUgPHd0Zi9Jc29NYWxsb2Mu
aD4KIAorbmFtZXNwYWNlIFdlYkNvcmUgeworY2xhc3MgUHJvY2Vzc0lkZW50aXR5OworfQorCiBu
YW1lc3BhY2UgV2ViS2l0IHsKIAogY2xhc3MgU2hhcmVhYmxlQml0bWFwOwpAQCAtNjEsNiArNjUs
NyBAQCBwdWJsaWM6CiAgICAgc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpQaXhlbEJ1ZmZlcj4gZ2V0
UGl4ZWxCdWZmZXIoY29uc3QgV2ViQ29yZTo6UGl4ZWxCdWZmZXJGb3JtYXQmIG91dHB1dEZvcm1h
dCwgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYpIGNvbnN0IG92ZXJyaWRlOwogICAgIHZvaWQgcHV0
UGl4ZWxCdWZmZXIoY29uc3QgV2ViQ29yZTo6UGl4ZWxCdWZmZXImLCBjb25zdCBXZWJDb3JlOjpJ
bnRSZWN0JiBzcmNSZWN0LCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgZGVzdFBvaW50LCBXZWJD
b3JlOjpBbHBoYVByZW11bHRpcGxpY2F0aW9uIGRlc3RGb3JtYXQpIG92ZXJyaWRlOwogCisgICAg
dm9pZCBzZXRPd25lcnNoaXBJZGVudGl0eShjb25zdCBXZWJDb3JlOjpQcm9jZXNzSWRlbnRpdHkm
KSB7IH0KIHByaXZhdGU6CiAgICAgdW5zaWduZWQgYnl0ZXNQZXJSb3coKSBjb25zdCBvdmVycmlk
ZTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9j
b2NvYS9JbWFnZUJ1ZmZlclNoYXJlYWJsZU1hcHBlZElPU3VyZmFjZUJhY2tlbmQuY3BwIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9jb2NvYS9JbWFnZUJ1ZmZlclNoYXJl
YWJsZU1hcHBlZElPU3VyZmFjZUJhY2tlbmQuY3BwCmluZGV4IGFmZDJjN2MwNWNmYWZkMTM5OTM0
NGY1YzZhNzY0ZTQ4ODBkMjhiZGEuLmIyOWZjNTcyNzg5NTAzMGQ0MmZkYjQyN2IxNTg0NDdmMGQ3
MTA2M2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3Mv
Y29jb2EvSW1hZ2VCdWZmZXJTaGFyZWFibGVNYXBwZWRJT1N1cmZhY2VCYWNrZW5kLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL2NvY29hL0ltYWdlQnVmZmVy
U2hhcmVhYmxlTWFwcGVkSU9TdXJmYWNlQmFja2VuZC5jcHAKQEAgLTc3LDEzICs3NywxMSBAQCBJ
bWFnZUJ1ZmZlckJhY2tlbmRIYW5kbGUgSW1hZ2VCdWZmZXJTaGFyZWFibGVNYXBwZWRJT1N1cmZh
Y2VCYWNrZW5kOjpjcmVhdGVJbWFnZQogICAgIHJldHVybiBJbWFnZUJ1ZmZlckJhY2tlbmRIYW5k
bGUobV9zdXJmYWNlLT5jcmVhdGVTZW5kUmlnaHQoKSk7CiB9CiAKLSNpZiBIQVZFKElPU1VSRkFD
RV9TRVRfT1dORVJTSElQX0lERU5USVRZKQotdm9pZCBJbWFnZUJ1ZmZlclNoYXJlYWJsZU1hcHBl
ZElPU3VyZmFjZUJhY2tlbmQ6OnNldFByb2Nlc3NPd25lcnNoaXAodGFza19pZF90b2tlbl90IHBy
b2Nlc3NJZGVudGl0eVRva2VuKQordm9pZCBJbWFnZUJ1ZmZlclNoYXJlYWJsZU1hcHBlZElPU3Vy
ZmFjZUJhY2tlbmQ6OnNldE93bmVyc2hpcElkZW50aXR5KGNvbnN0IFdlYkNvcmU6OlByb2Nlc3NJ
ZGVudGl0eSYgcmVzb3VyY2VPd25lcikKIHsKICAgICBBU1NFUlQoc3VyZmFjZSgpKTsKLSAgICBz
dXJmYWNlKCktPnNldE93bmVyc2hpcElkZW50aXR5KHByb2Nlc3NJZGVudGl0eVRva2VuKTsKKyAg
ICBzdXJmYWNlKCktPnNldE93bmVyc2hpcElkZW50aXR5KHJlc291cmNlT3duZXIpOwogfQotI2Vu
ZGlmCiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL2NvY29hL0ltYWdlQnVmZmVyU2hhcmVhYmxlTWFwcGVk
SU9TdXJmYWNlQmFja2VuZC5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGlj
cy9jb2NvYS9JbWFnZUJ1ZmZlclNoYXJlYWJsZU1hcHBlZElPU3VyZmFjZUJhY2tlbmQuaAppbmRl
eCBlMTRhNTQwZWNkZGQ0NzExOTA4YTdjMTcxYzNhMjVlYmZkODA4ZGJlLi5lYTg1MjVjNTE1MDE1
NWJkMDNiNTgwMDczZDVmMjEzODY0OGIwZTBiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvR1BVL2dyYXBoaWNzL2NvY29hL0ltYWdlQnVmZmVyU2hhcmVhYmxlTWFwcGVkSU9T
dXJmYWNlQmFja2VuZC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhp
Y3MvY29jb2EvSW1hZ2VCdWZmZXJTaGFyZWFibGVNYXBwZWRJT1N1cmZhY2VCYWNrZW5kLmgKQEAg
LTMxLDYgKzMxLDEwIEBACiAjaW5jbHVkZSA8V2ViQ29yZS9JbWFnZUJ1ZmZlcklPU3VyZmFjZUJh
Y2tlbmQuaD4KICNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jLmg+CiAKK25hbWVzcGFjZSBXZWJDb3Jl
IHsKK2NsYXNzIFByb2Nlc3NJZGVudGl0eTsKK30KKwogbmFtZXNwYWNlIFdlYktpdCB7CiAKIGNs
YXNzIFNoYXJlYWJsZUJpdG1hcDsKQEAgLTQ2LDkgKzUwLDcgQEAgcHVibGljOgogCiAgICAgSW1h
Z2VCdWZmZXJCYWNrZW5kSGFuZGxlIGNyZWF0ZUltYWdlQnVmZmVyQmFja2VuZEhhbmRsZSgpIGNv
bnN0OwogCi0jaWYgSEFWRShJT1NVUkZBQ0VfU0VUX09XTkVSU0hJUF9JREVOVElUWSkKLSAgICB2
b2lkIHNldFByb2Nlc3NPd25lcnNoaXAodGFza19pZF90b2tlbl90KTsKLSNlbmRpZgorICAgIHZv
aWQgc2V0T3duZXJzaGlwSWRlbnRpdHkoY29uc3QgV2ViQ29yZTo6UHJvY2Vzc0lkZW50aXR5Jik7
CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9jb2NvYS9XZWJQcm9jZXNzQ29jb2EubW0gYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvY29jb2EvV2ViUHJvY2Vzc0NvY29hLm1tCmluZGV4IDZhN2ZjNzNlOWExYzAxZWRlODhj
YWM1OTI2MTM5YjM5MTY0YmY3YjguLjEwNTI2YTEwYzUwMzkzMWI4NjcyMmQ4MGI1ZWQ5N2Y1ZDM4
MzBhNGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9XZWJQcm9j
ZXNzQ29jb2EubW0KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1dlYlByb2Nl
c3NDb2NvYS5tbQpAQCAtMTIyNiwxNCArMTIyNiw3IEBAIHZvaWQgV2ViUHJvY2Vzczo6d2FpdEZv
clBlbmRpbmdQYXN0ZWJvYXJkV3JpdGVzVG9GaW5pc2goY29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJk
CiAjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQogdm9pZCBXZWJQcm9jZXNzOjpwbGF0Zm9ybUluaXRp
YWxpemVHUFVQcm9jZXNzQ29ubmVjdGlvblBhcmFtZXRlcnMoR1BVUHJvY2Vzc0Nvbm5lY3Rpb25Q
YXJhbWV0ZXJzJiBwYXJhbWV0ZXJzKQogewotI2lmIEhBVkUoVEFTS19JREVOVElUWV9UT0tFTikK
LSAgICB0YXNrX2lkX3Rva2VuX3QgaWRlbnRpdHlUb2tlbjsKLSAgICBrZXJuX3JldHVybl90IGty
ID0gdGFza19jcmVhdGVfaWRlbnRpdHlfdG9rZW4obWFjaF90YXNrX3NlbGYoKSwgJmlkZW50aXR5
VG9rZW4pOwotICAgIGlmIChrciA9PSBLRVJOX1NVQ0NFU1MpCi0gICAgICAgIHBhcmFtZXRlcnMu
d2ViUHJvY2Vzc0lkZW50aXR5VG9rZW4gPSBNYWNoU2VuZFJpZ2h0OjphZG9wdChpZGVudGl0eVRv
a2VuKTsKLSAgICBlbHNlCi0gICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKFByb2Nlc3MsICJDYWxs
IHRvIHRhc2tfY3JlYXRlX2lkZW50aXR5X3Rva2VuKCkgZmFpbGVkOiAle3ByaXZhdGV9cyAoJXgp
IiwgbWFjaF9lcnJvcl9zdHJpbmcoa3IpLCBrcik7Ci0jZW5kaWYKKyAgICBwYXJhbWV0ZXJzLndl
YlByb2Nlc3NJZGVudGl0eSA9IFByb2Nlc3NJZGVudGl0eSB7IFByb2Nlc3NJZGVudGl0eTo6Q3Vy
cmVudFByb2Nlc3MgfTsKIAogICAgIHBhcmFtZXRlcnMub3ZlcnJpZGVMYW5ndWFnZXMgPSB1c2Vy
UHJlZmVycmVkTGFuZ3VhZ2VzT3ZlcnJpZGUoKTsKIH0KZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5n
ZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCA0YTIyZWMyMzM4YTg5YjZlZjQzNDY2M2VjYzM5
ODA3MmM3ZWEyMjAxLi40OGQ4MTBhZmM1OGQ0YWFjYWU1ZGU1NDFlOTAxNzcyYjYzZmIxNDk4IDEw
MDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMTYgQEAKKzIwMjEtMTItMDggIEtpbW1vIEtpbm51bmVuICA8a2tpbm51bmVuQGFwcGxlLmNv
bT4KKworICAgICAgICBJT1N1cmZhY2UgbWVtb3J5IGF0dHJpYnV0aW9uIGlzIGhhcmQgdG8gdXNl
IGluIGNvbnN0cnVjdG9ycworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MjMyOTg4CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS84NTU0MTkxOD4KKworICAg
ICAgICBSZXZpZXdlZCBieSBDaHJpcyBEdW1lei4KKworICAgICAgICBVcGRhdGUgY29uc3RydWN0
b3IgY2FsbGluZyBiYXNlIGNsYXNzIGNvbnN0cnVjdG9yLCBhZGQgZW1wdHkKKyAgICAgICAgUHJv
Y2Vzc2VJZGVudGl0eS4KKworICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9j
b2NvYS9UZXN0R3JhcGhpY3NDb250ZXh0R0xDb2NvYS5tbToKKwogMjAyMS0xMi0wOSAgUnlhbiBI
YWRkYWQgIDxyeWFuaGFkZGFkQGFwcGxlLmNvbT4KIAogICAgICAgICBCcmluZyB1cCBhbm90aGVy
IGlPUyBHUFUgUHJvY2Vzc2VzIHRlc3RlcgpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJDb3JlL2NvY29hL1Rlc3RHcmFwaGljc0NvbnRleHRHTENvY29hLm1tIGIvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL2NvY29hL1Rlc3RHcmFwaGljc0NvbnRleHRH
TENvY29hLm1tCmluZGV4IDg3NmM3NDQ4MDhmNDM2MWUzY2Q1MmY1M2ZmZDZmNjAwM2E4YTBmODcu
LmE5MTYyNzk4ZTZmMDdmNDc4YmMxMmJiZDgzZmMwNDViNDMyMzczNzQgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9jb2NvYS9UZXN0R3JhcGhpY3NDb250ZXh0
R0xDb2NvYS5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvY29jb2Ev
VGVzdEdyYXBoaWNzQ29udGV4dEdMQ29jb2EubW0KQEAgLTMyLDYgKzMyLDcgQEAKICNpbXBvcnQg
PE1ldGFsL01ldGFsLmg+CiAjaW1wb3J0IDxXZWJDb3JlL0NvbG9yLmg+CiAjaW1wb3J0IDxXZWJD
b3JlL0dyYXBoaWNzQ29udGV4dEdMQ29jb2EuaD4KKyNpbXBvcnQgPFdlYkNvcmUvUHJvY2Vzc0lk
ZW50aXR5Lmg+CiAjaW1wb3J0IDxvcHRpb25hbD4KICNpbXBvcnQgPHd0Zi9IYXNoU2V0Lmg+CiAj
aW1wb3J0IDx3dGYvTWVtb3J5Rm9vdHByaW50Lmg+CkBAIC02Nyw3ICs2OCw3IEBAIHN0YXRpYyBS
ZWZQdHI8V2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0R0xDb2NvYT4gY3JlYXRlRGVmYXVsdFRlc3RD
b250ZXh0KFdlYkNvcmU6CiAgICAgYXR0cmlidXRlcy5zdGVuY2lsID0gZmFsc2U7CiAgICAgYXR0
cmlidXRlcy5hbHBoYSA9IHRydWU7CiAgICAgYXR0cmlidXRlcy5wcmVzZXJ2ZURyYXdpbmdCdWZm
ZXIgPSBmYWxzZTsKLSAgICBhdXRvIGNvbnRleHQgPSBXZWJDb3JlOjpHcmFwaGljc0NvbnRleHRH
TENvY29hOjpjcmVhdGUoV1RGTW92ZShhdHRyaWJ1dGVzKSk7CisgICAgYXV0byBjb250ZXh0ID0g
V2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0R0xDb2NvYTo6Y3JlYXRlKFdURk1vdmUoYXR0cmlidXRl
cyksIHsgfSk7CiAgICAgaWYgKCFjb250ZXh0KQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAg
ICBjb250ZXh0LT5yZXNoYXBlKGNvbnRleHRTaXplLndpZHRoKCksIGNvbnRleHRTaXplLmhlaWdo
dCgpKTsKQEAgLTExOSwxNSArMTIwLDE1IEBAIFRFU1RfRihHcmFwaGljc0NvbnRleHRHTENvY29h
VGVzdCwgTUFZQkVfTXVsdGlwbGVHUFVzRGlmZmVyZW50UG93ZXJQcmVmZXJlbmNlTWV0CiAgICAg
V2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0R0xBdHRyaWJ1dGVzIGF0dHJpYnV0ZXM7CiAgICAgYXR0
cmlidXRlcy51c2VNZXRhbCA9IHRydWU7CiAgICAgRVhQRUNUX0VRKGF0dHJpYnV0ZXMucG93ZXJQ
cmVmZXJlbmNlLCBXZWJDb3JlOjpHcmFwaGljc0NvbnRleHRHTFBvd2VyUHJlZmVyZW5jZTo6RGVm
YXVsdCk7Ci0gICAgYXV0byBkZWZhdWx0Q29udGV4dCA9IFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4
dEdMQ29jb2E6OmNyZWF0ZShXZWJDb3JlOjpHcmFwaGljc0NvbnRleHRHTEF0dHJpYnV0ZXMgeyBh
dHRyaWJ1dGVzIH0pOworICAgIGF1dG8gZGVmYXVsdENvbnRleHQgPSBXZWJDb3JlOjpHcmFwaGlj
c0NvbnRleHRHTENvY29hOjpjcmVhdGUoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0R0xBdHRyaWJ1
dGVzIHsgYXR0cmlidXRlcyB9LCB7IH0pOwogICAgIEFTU0VSVF9ORShkZWZhdWx0Q29udGV4dCwg
bnVsbHB0cik7CiAKICAgICBhdHRyaWJ1dGVzLnBvd2VyUHJlZmVyZW5jZSA9IFdlYkNvcmU6Okdy
YXBoaWNzQ29udGV4dEdMUG93ZXJQcmVmZXJlbmNlOjpMb3dQb3dlcjsKLSAgICBhdXRvIGxvd1Bv
d2VyQ29udGV4dCA9IFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dEdMQ29jb2E6OmNyZWF0ZShXZWJD
b3JlOjpHcmFwaGljc0NvbnRleHRHTEF0dHJpYnV0ZXMgeyBhdHRyaWJ1dGVzIH0pOworICAgIGF1
dG8gbG93UG93ZXJDb250ZXh0ID0gV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0R0xDb2NvYTo6Y3Jl
YXRlKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dEdMQXR0cmlidXRlcyB7IGF0dHJpYnV0ZXMgfSwg
eyB9KTsKICAgICBBU1NFUlRfTkUobG93UG93ZXJDb250ZXh0LCBudWxscHRyKTsKIAogICAgIGF0
dHJpYnV0ZXMucG93ZXJQcmVmZXJlbmNlID0gV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0R0xQb3dl
clByZWZlcmVuY2U6OkhpZ2hQZXJmb3JtYW5jZTsKLSAgICBhdXRvIGhpZ2hQZXJmb3JtYW5jZUNv
bnRleHQgPSBXZWJDb3JlOjpHcmFwaGljc0NvbnRleHRHTENvY29hOjpjcmVhdGUoV2ViQ29yZTo6
R3JhcGhpY3NDb250ZXh0R0xBdHRyaWJ1dGVzIHsgYXR0cmlidXRlcyB9KTsKKyAgICBhdXRvIGhp
Z2hQZXJmb3JtYW5jZUNvbnRleHQgPSBXZWJDb3JlOjpHcmFwaGljc0NvbnRleHRHTENvY29hOjpj
cmVhdGUoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0R0xBdHRyaWJ1dGVzIHsgYXR0cmlidXRlcyB9
LCB7IH0pOwogICAgIEFTU0VSVF9ORShoaWdoUGVyZm9ybWFuY2VDb250ZXh0LCBudWxscHRyKTsK
IAogICAgIEVYUEVDVF9ORShsb3dQb3dlckNvbnRleHQtPmdldFN0cmluZyhXZWJDb3JlOjpHcmFw
aGljc0NvbnRleHRHTDo6UkVOREVSRVIpLCBoaWdoUGVyZm9ybWFuY2VDb250ZXh0LT5nZXRTdHJp
bmcoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0R0w6OlJFTkRFUkVSKSk7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>